README.md 5.71 KB
Newer Older
pangjm's avatar
pangjm committed
1

Kai Chen's avatar
Kai Chen committed
2
3
4
# MMDetection

**News**: We released the technical report on [ArXiv](https://arxiv.org/abs/1906.07155).
Dahua Lin's avatar
Dahua Lin committed
5

Kai Chen's avatar
Kai Chen committed
6
## Introduction
Dahua Lin's avatar
Dahua Lin committed
7

Kai Chen's avatar
Kai Chen committed
8
The master branch works with **PyTorch 1.1** or higher.
Kai Chen's avatar
Kai Chen committed
9

Kai Chen's avatar
Kai Chen committed
10
11
mmdetection is an open source object detection toolbox based on PyTorch. It is
a part of the open-mmlab project developed by [Multimedia Laboratory, CUHK](http://mmlab.ie.cuhk.edu.hk/).
Dahua Lin's avatar
Dahua Lin committed
12

Kai Chen's avatar
Kai Chen committed
13
14
![demo image](demo/coco_test_12510.jpg)

Kai Chen's avatar
Kai Chen committed
15
### Major features
Dahua Lin's avatar
Dahua Lin committed
16
17
18

- **Modular Design**

Kai Chen's avatar
Kai Chen committed
19
  We decompose the detection framework into different components and one can easily construct a customized object detection framework by combining different modules.
pangjm's avatar
pangjm committed
20

Dahua Lin's avatar
Dahua Lin committed
21
22
- **Support of multiple frameworks out of box**

Kai Chen's avatar
Kai Chen committed
23
  The toolbox directly supports popular and contemporary detection frameworks, *e.g.* Faster RCNN, Mask RCNN, RetinaNet, etc.
Kai Chen's avatar
Kai Chen committed
24

Kai Chen's avatar
Kai Chen committed
25
- **High efficiency**
Kai Chen's avatar
Kai Chen committed
26

Kai Chen's avatar
Kai Chen committed
27
  All basic bbox and mask operations run on GPUs now. The training speed is faster than or comparable to other codebases, including [Detectron](https://github.com/facebookresearch/Detectron), [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark) and [SimpleDet](https://github.com/TuSimple/simpledet).
pangjm's avatar
pangjm committed
28

Dahua Lin's avatar
Dahua Lin committed
29
30
- **State of the art**

Kai Chen's avatar
Kai Chen committed
31
  The toolbox stems from the codebase developed by the *MMDet* team, who won [COCO Detection Challenge](http://cocodataset.org/#detection-leaderboard) in 2018, and we keep pushing it forward.
Kai Chen's avatar
Kai Chen committed
32

Kai Chen's avatar
Kai Chen committed
33
Apart from MMDetection, we also released a library [mmcv](https://github.com/open-mmlab/mmcv) for computer vision research, which is heavily depended on by this toolbox.
Kai Chen's avatar
Kai Chen committed
34
35
36

## License

Kai Chen's avatar
Kai Chen committed
37
This project is released under the [Apache 2.0 license](LICENSE).
Kai Chen's avatar
Kai Chen committed
38

Kai Chen's avatar
Kai Chen committed
39
## Changelog
Kai Chen's avatar
Kai Chen committed
40

Kai Chen's avatar
Kai Chen committed
41
42
v1.0rc1 was released in 13/12/2019, with more than 20 bug fixes and 30 improvements and new features.
Please refer to [CHANGELOG.md](docs/CHANGELOG.md) for details and history versions.
Kai Chen's avatar
Kai Chen committed
43

Kai Chen's avatar
Kai Chen committed
44
45
## Benchmark and model zoo

Kai Chen's avatar
Kai Chen committed
46
Supported methods and backbones are shown in the below table.
47
Results and models are available in the [Model zoo](docs/MODEL_ZOO.md).
Kai Chen's avatar
Kai Chen committed
48

Kai Chen's avatar
Kai Chen committed
49
50
51
52
53
54
55
56
57
58
59
60
|                    | ResNet   | ResNeXt  | SENet    | VGG      | HRNet |
|--------------------|:--------:|:--------:|:--------:|:--------:|:-----:|
| RPN                | ✓        | ✓        | ☐        | ✗        | ✓     |
| Fast R-CNN         | ✓        | ✓        | ☐        | ✗        | ✓     |
| Faster R-CNN       | ✓        | ✓        | ☐        | ✗        | ✓     |
| Mask R-CNN         | ✓        | ✓        | ☐        | ✗        | ✓     |
| Cascade R-CNN      | ✓        | ✓        | ☐        | ✗        | ✓     |
| Cascade Mask R-CNN | ✓        | ✓        | ☐        | ✗        | ✓     |
| SSD                | ✗        | ✗        | ✗        | ✓        | ✗     |
| RetinaNet          | ✓        | ✓        | ☐        | ✗        | ✓     |
| GHM                | ✓        | ✓        | ☐        | ✗        | ✓     |
| Mask Scoring R-CNN | ✓        | ✓        | ☐        | ✗        | ✓     |
Kai Chen's avatar
Kai Chen committed
61
| Double-Head R-CNN  | ✓        | ✓        | ☐        | ✗        | ✓     |
Kai Chen's avatar
Kai Chen committed
62
| Grid R-CNN (Plus)  | ✓        | ✓        | ☐        | ✗        | ✓     |
Kai Chen's avatar
Kai Chen committed
63
64
65
| Hybrid Task Cascade| ✓        | ✓        | ☐        | ✗        | ✓     |
| Libra R-CNN        | ✓        | ✓        | ☐        | ✗        | ✓     |
| Guided Anchoring   | ✓        | ✓        | ☐        | ✗        | ✓     |
Kai Chen's avatar
Kai Chen committed
66
67
68
69
| FCOS               | ✓        | ✓        | ☐        | ✗        | ✓     |
| RepPoints          | ✓        | ✓        | ☐        | ✗        | ✓     |
| Foveabox           | ✓        | ✓        | ☐        | ✗        | ✓     |
| FreeAnchor         | ✓        | ✓        | ☐        | ✗        | ✓     |
Kai Chen's avatar
Kai Chen committed
70

Kai Chen's avatar
Kai Chen committed
71
Other features
Kai Chen's avatar
Kai Chen committed
72
- [x] DCNv2
Kai Chen's avatar
Kai Chen committed
73
- [x] Group Normalization
74
- [x] Weight Standardization
Kai Chen's avatar
Kai Chen committed
75
76
- [x] OHEM
- [x] Soft-NMS
Kai Chen's avatar
Kai Chen committed
77
78
- [x] Generalized Attention
- [x] GCNet
Cao Yuhang's avatar
Cao Yuhang committed
79
- [x] Mixed Precision (FP16) Training
Kai Chen's avatar
Kai Chen committed
80
81


Kai Chen's avatar
Kai Chen committed
82
83
## Installation

84
Please refer to [INSTALL.md](docs/INSTALL.md) for installation and dataset preparation.
Kai Chen's avatar
Kai Chen committed
85

Kai Chen's avatar
Kai Chen committed
86

Kai Chen's avatar
Kai Chen committed
87
## Get Started
Kai Chen's avatar
Kai Chen committed
88

89
Please see [GETTING_STARTED.md](docs/GETTING_STARTED.md) for the basic usage of MMDetection.
Kai Chen's avatar
Kai Chen committed
90

Kai Chen's avatar
Kai Chen committed
91
92
## Contributing

93
We appreciate all contributions to improve MMDetection. Please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the contributing guideline.
Kai Chen's avatar
Kai Chen committed
94

Kai Chen's avatar
Kai Chen committed
95
96
## Acknowledgement

97
MMDetection is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks.
Kai Chen's avatar
Kai Chen committed
98
99
We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new detectors.

Kai Chen's avatar
Kai Chen committed
100
101
102

## Citation

Kai Chen's avatar
Kai Chen committed
103
If you use this toolbox or benchmark in your research, please cite this project.
Kai Chen's avatar
Kai Chen committed
104
105

```
Kai Chen's avatar
Kai Chen committed
106
@article{mmdetection,
Kai Chen's avatar
Kai Chen committed
107
  title   = {{MMDetection}: Open MMLab Detection Toolbox and Benchmark},
Kai Chen's avatar
Kai Chen committed
108
109
110
111
112
113
114
115
  author  = {Chen, Kai and Wang, Jiaqi and Pang, Jiangmiao and Cao, Yuhang and
             Xiong, Yu and Li, Xiaoxiao and Sun, Shuyang and Feng, Wansen and
             Liu, Ziwei and Xu, Jiarui and Zhang, Zheng and Cheng, Dazhi and
             Zhu, Chenchen and Cheng, Tianheng and Zhao, Qijie and Li, Buyu and
             Lu, Xin and Zhu, Rui and Wu, Yue and Dai, Jifeng and Wang, Jingdong
             and Shi, Jianping and Ouyang, Wanli and Loy, Chen Change and Lin, Dahua},
  journal= {arXiv preprint arXiv:1906.07155},
  year={2019}
Kai Chen's avatar
Kai Chen committed
116
117
}
```
Kai Chen's avatar
Kai Chen committed
118
119
120
121


## Contact

Kai Chen's avatar
Kai Chen committed
122
This repo is currently maintained by Kai Chen ([@hellock](http://github.com/hellock)), Yuhang Cao ([@yhcao6](https://github.com/yhcao6)), Wenwei Zhang ([@ZwwWayne](https://github.com/ZwwWayne)), Jiangmiao Pang ([@OceanPang](https://github.com/OceanPang)) and Jiaqi Wang ([@myownskyW7](https://github.com/myownskyW7)).