README.md 4.5 KB
Newer Older
1
# PaddleDetection
2

Y
Yang Zhang 已提交
3
The goal of PaddleDetection is to provide easy access to a wide range of object
4
detection models in both industry and research settings. We design
Y
Yang Zhang 已提交
5 6
PaddleDetection to be not only performant, production-ready but also highly
flexible, catering to research needs.
7 8 9


<div align="center">
Y
Yang Zhang 已提交
10
  <img src="demo/output/000000570688.jpg" />
11 12 13 14 15
</div>


## Introduction

Q
qingqing01 已提交
16
Features:
17

Y
Yang Zhang 已提交
18
- Production Ready:
Q
qingqing01 已提交
19 20

  Key operations are implemented in C++ and CUDA, together with PaddlePaddle's
Y
Yang Zhang 已提交
21
highly efficient inference engine, enables easy deployment in server environments.
22

Y
Yang Zhang 已提交
23
- Highly Flexible:
Q
qingqing01 已提交
24 25

  Components are designed to be modular. Model architectures, as well as data
Y
Yang Zhang 已提交
26 27
preprocess pipelines, can be easily customized with simple configuration
changes.
28

Y
Yang Zhang 已提交
29
- Performance Optimized:
Q
qingqing01 已提交
30 31

  With the help of the underlying PaddlePaddle framework, faster training and
Y
Yang Zhang 已提交
32 33
reduced GPU memory footprint is achieved. Notably, Yolo V3 training is
much faster compared to other frameworks. Another example is Mask-RCNN
Q
qingqing01 已提交
34 35
(ResNet50), we managed to fit up to 4 images per GPU (Tesla V100 16GB) during
multi-GPU training.
36

Y
Yang Zhang 已提交
37
Supported Architectures:
38

G
Guanghua Yu 已提交
39 40 41 42 43
|                    | ResNet | ResNet-vd <sup>[1](#vd)</sup> | ResNeXt-vd | SENet | MobileNet | DarkNet |
|--------------------|:------:|------------------------------:|:----------:|:-----:|:---------:|:-------:|
| Faster R-CNN       | ✓      |                             ✓ | x          | ✓     | ✗         | ✗       |
| Faster R-CNN + FPN | ✓      |                             ✓ | ✓          | ✓     | ✗         | ✗       |
| Mask R-CNN         | ✓      |                             ✓ | x          | ✓     | ✗         | ✗       |
W
wangguanzhong 已提交
44
| Mask R-CNN + FPN   | ✓      |                             ✓ | ✓          | ✓     | ✗         | ✗       |
G
Guanghua Yu 已提交
45 46 47 48
| Cascade R-CNN      | ✓      |                             ✗ | ✗          | ✗     | ✗         | ✗       |
| RetinaNet          | ✓      |                             ✗ | ✗          | ✗     | ✗         | ✗       |
| Yolov3             | ✓      |                             ✗ | ✗          | ✗     | ✓         | ✓       |
| SSD                | ✗      |                             ✗ | ✗          | ✗     | ✓         | ✗       |
49

Q
qingqing01 已提交
50
<a name="vd">[1]</a> [ResNet-vd](https://arxiv.org/pdf/1812.01187) models offer much improved accuracy with negligible performance cost.
51

Y
Yang Zhang 已提交
52
Advanced Features:
53

Y
Yang Zhang 已提交
54 55 56 57
- [x] **Synchronized Batch Norm**: currently used by Yolo V3.
- [x] **Group Norm**: pretrained models to be released.
- [x] **Modulated Deformable Convolution**: pretrained models to be released.
- [x] **Deformable PSRoI Pooling**: pretrained models to be released.
58

59 60
**NOTE:** Synchronized batch normalization can only be used on multiple GPU devices, can not be used on CPU devices or single GPU device.

61 62 63

## Model zoo

W
wangguanzhong 已提交
64
Pretrained models are available in the PaddlePaddle [PaddleDetection model zoo](docs/MODEL_ZOO.md).
Y
Yang Zhang 已提交
65

66 67 68

## Installation

Y
Yang Zhang 已提交
69 70
Please follow the [installation guide](docs/INSTALL.md).

71 72 73

## Get Started

Y
Yang Zhang 已提交
74
For inference, simply run the following command and the visualized result will
Q
qingqing01 已提交
75
be saved in `output`.
76 77 78 79

```bash
export PYTHONPATH=`pwd`:$PYTHONPATH
python tools/infer.py -c configs/mask_rcnn_r50_1x.yml \
J
jerrywgz 已提交
80 81
    -o weights=https://paddlemodels.bj.bcebos.com/object_detection/mask_rcnn_r50_1x.tar \
    --infer_img=demo/000000570688.jpg
82 83
```

Y
Yang Zhang 已提交
84
For detailed training and evaluation workflow, please refer to [GETTING_STARTED.md](docs/GETTING_STARTED.md).
85

Y
Yang Zhang 已提交
86
We also recommend users to take a look at the [IPython Notebook demo](demo/mask_rcnn_demo.ipynb)
87

Y
Yang Zhang 已提交
88
Further information can be found in these documentations:
89

Y
Yang Zhang 已提交
90 91
- [Introduction to the configuration workflow.](docs/CONFIG.md)
- [Guide to custom dataset and preprocess pipeline.](docs/DATA.md)
92 93


Y
Yang Zhang 已提交
94
##  Todo List
95

Y
Yang Zhang 已提交
96 97 98
Please note this is a work in progress, substantial changes may come in the
near future.
Some of the planned features include:
99

Y
Yang Zhang 已提交
100 101 102 103 104
- [ ] Mixed precision training.
- [ ] Distributed training.
- [ ] Inference in 8-bit mode.
- [ ] User defined operations.
- [ ] Larger model zoo.
105 106


Y
Yang Zhang 已提交
107
## Updates
108

W
wangguanzhong 已提交
109 110 111 112 113 114 115 116
#### 7/29/2019

- Update Chinese docs for PaddleDetection
- Fix bug in R-CNN models when train and test at the same time
- Add ResNext101-vd + Mask R-CNN + FPN models
- Add Yolo v3 on VOC models

#### 7/3/2019
Q
qingqing01 已提交
117

Y
Yang Zhang 已提交
118 119 120
- Initial release of PaddleDetection and detection model zoo
- Models included: Faster R-CNN, Mask R-CNN, Faster R-CNN+FPN, Mask
  R-CNN+FPN, Cascade-Faster-RCNN+FPN, RetinaNet, Yolo v3, and SSD.
121 122 123 124


## Contributing

Y
Yang Zhang 已提交
125
Contributions are highly welcomed and we would really appreciate your feedback!!