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

Kai Chen's avatar
Kai Chen committed
2
# mmdetection
Dahua Lin's avatar
Dahua Lin committed
3

Kai Chen's avatar
Kai Chen committed
4
## Introduction
Dahua Lin's avatar
Dahua Lin committed
5

6
The master branch works with **PyTorch 1.1** or higher. If you would like to use PyTorch 0.4.1,
Kai Chen's avatar
Kai Chen committed
7
8
please checkout to the [pytorch-0.4.1](https://github.com/open-mmlab/mmdetection/tree/pytorch-0.4.1) branch.

Kai Chen's avatar
Kai Chen committed
9
10
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
11

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

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

- **Modular Design**

pangjm's avatar
pangjm committed
18
19
  One can easily construct a customized object detection framework by combining different components.

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

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

- **Efficient**

  All basic bbox and mask operations run on GPUs now.
Kai Chen's avatar
Kai Chen committed
27
  The training speed is nearly 2x faster than Detectron and comparable to maskrcnn-benchmark.
pangjm's avatar
pangjm committed
28

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

pangjm's avatar
pangjm committed
31
  This was the codebase of the *MMDet* team, who won the [COCO Detection 2018 challenge](http://cocodataset.org/#detection-leaderboard).
Kai Chen's avatar
Kai Chen committed
32

Kai Chen's avatar
Kai Chen committed
33
34
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
35
36
37

## License

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

Kai Chen's avatar
Kai Chen committed
40
41
## Updates

Kai Chen's avatar
Kai Chen committed
42
v0.6.0 (14/04/2019)
Kai Chen's avatar
Kai Chen committed
43
44
- Up to 30% speedup compared to the model zoo.
- Support both PyTorch stable and nightly version.
Kai Chen's avatar
Kai Chen committed
45
46
- Replace NMS and SigmoidFocalLoss with Pytorch CUDA extensions.

Kai Chen's avatar
Kai Chen committed
47
48
49
v0.6rc0(06/02/2019)
- Migrate to PyTorch 1.0.

Kai Chen's avatar
Kai Chen committed
50
51
52
53
v0.5.7 (06/02/2019)
- Add support for Deformable ConvNet v2. (Many thanks to the authors and [@chengdazhi](https://github.com/chengdazhi))
- This is the last release based on PyTorch 0.4.1.

Kai Chen's avatar
Kai Chen committed
54
55
56
57
v0.5.6 (17/01/2019)
- Add support for Group Normalization.
- Unify RPNHead and single stage heads (RetinaHead, SSDHead) with AnchorHead.

Kai Chen's avatar
Kai Chen committed
58
59
60
61
62
63
v0.5.5 (22/12/2018)
- Add SSD for COCO and PASCAL VOC.
- Add ResNeXt backbones and detection models.
- Refactoring for Samplers/Assigners and add OHEM.
- Add VOC dataset and evaluation scripts.

Kai Chen's avatar
Kai Chen committed
64
65
66
v0.5.4 (27/11/2018)
- Add SingleStageDetector and RetinaNet.

Kai Chen's avatar
Kai Chen committed
67
68
v0.5.3 (26/11/2018)
- Add Cascade R-CNN and Cascade Mask R-CNN.
Kai Chen's avatar
Kai Chen committed
69
- Add support for Soft-NMS in config files.
Kai Chen's avatar
Kai Chen committed
70

Kai Chen's avatar
Kai Chen committed
71
72
73
74
v0.5.2 (21/10/2018)
- Add support for custom datasets.
- Add a script to convert PASCAL VOC annotations to the expected format.

Kai Chen's avatar
Kai Chen committed
75
76
77
78
v0.5.1 (20/10/2018)
- Add BBoxAssigner and BBoxSampler, the `train_cfg` field in config files are restructured.
- `ConvFCRoIHead` / `SharedFCRoIHead` are renamed to `ConvFCBBoxHead` / `SharedFCBBoxHead` for consistency.

Kai Chen's avatar
Kai Chen committed
79
80
## Benchmark and model zoo

Kai Chen's avatar
Kai Chen committed
81
82
83
84
85
Supported methods and backbones are shown in the below table.
Results and models are available in the [Model zoo](MODEL_ZOO.md).

|                    | ResNet   | ResNeXt  | SENet    | VGG      |
|--------------------|:--------:|:--------:|:--------:|:--------:|
pangjm's avatar
pangjm committed
86
87
88
89
90
91
| RPN                | ✓        | ✓        | ☐        | ✗        |
| Fast R-CNN         | ✓        | ✓        | ☐        | ✗        |
| Faster R-CNN       | ✓        | ✓        | ☐        | ✗        |
| Mask R-CNN         | ✓        | ✓        | ☐        | ✗        |
| Cascade R-CNN      | ✓        | ✓        | ☐        | ✗        |
| Cascade Mask R-CNN | ✓        | ✓        | ☐        | ✗        |
Kai Chen's avatar
Kai Chen committed
92
| SSD                | ✗        | ✗        | ✗        | ✓        |
pangjm's avatar
pangjm committed
93
| RetinaNet          | ✓        | ✓        | ☐        | ✗        |
94
| Hybrid Task Cascade| ✓        | ✓        | ☐        | ✗        |
95
| FCOS               | ✓        | ✓        | ☐        | ✗        |
96
| Libra R-CNN        | ✓        | ✓        | ☐        | ✗        |
Kai Chen's avatar
Kai Chen committed
97

Kai Chen's avatar
Kai Chen committed
98
Other features
Kai Chen's avatar
Kai Chen committed
99
- [x] DCNv2
Kai Chen's avatar
Kai Chen committed
100
- [x] Group Normalization
101
- [x] Weight Standardization
Kai Chen's avatar
Kai Chen committed
102
103
- [x] OHEM
- [x] Soft-NMS
Kai Chen's avatar
Kai Chen committed
104
- [ ] Mixed Precision (FP16) Training (coming soon)
Kai Chen's avatar
Kai Chen committed
105
106


Kai Chen's avatar
Kai Chen committed
107
108
## Installation

Kai Chen's avatar
Kai Chen committed
109
Please refer to [INSTALL.md](INSTALL.md) for installation and dataset preparation.
Kai Chen's avatar
Kai Chen committed
110

Kai Chen's avatar
Kai Chen committed
111

Kai Chen's avatar
Kai Chen committed
112
## Get Started
Kai Chen's avatar
Kai Chen committed
113

Kai Chen's avatar
Kai Chen committed
114
Please see [GETTING_STARTED.md](GETTING_STARTED.md) for the basic usage of mmdetection.
Kai Chen's avatar
Kai Chen committed
115

Kai Chen's avatar
Kai Chen committed
116
117
118
119
## Contributing

We appreciate all contributions to improve mmdetection. Please refer to [CONTRIBUTING.md](CONTRIBUTING.md) for the contributing guideline.

Kai Chen's avatar
Kai Chen committed
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135

## Citation

If you use our codebase or models in your research, please cite this project.
We will release a paper or technical report later.

```
@misc{mmdetection2018,
  author =       {Kai Chen and Jiangmiao Pang and Jiaqi Wang and Yu Xiong and Xiaoxiao Li
                  and Shuyang Sun and Wansen Feng and Ziwei Liu and Jianping Shi and
                  Wanli Ouyang and Chen Change Loy and Dahua Lin},
  title =        {mmdetection},
  howpublished = {\url{https://github.com/open-mmlab/mmdetection}},
  year =         {2018}
}
```