For the Hourglass based CenterNet, please refer to HgCenterNet
The trained models are temporarily unavailable, but you can train the code using reasonable computational resource.
by Kaiwen Duan, Song Bai, Lingxi Xie, Honggang Qi, Qingming Huang and Qi Tian
The code to train and evaluate the proposed PyCenterNet is available here. For more technical details, please refer to our arXiv paper.
There are two mainstreams for object detection: top-down and bottom-up. The state-of-the-art approaches mostly belong to the first category. In this paper, we demonstrate that the bottom-up approaches are as competitive as the top-down and enjoy higher recall. Our approach, named CenterNet, detects each object as a triplet keypoints (top-left and bottom-right corners and the center keypoint). We firstly group the corners by some designed cues and further confirm the objects by the center keypoints. The corner keypoints equip the approach with the ability to detect objects of various scales and shapes and the center keypoint avoids the confusion brought by a large number of false-positive proposals. Our approach is a kind of anchor-free detector because it does not need to define explicit anchor boxes. We adapt our approach to the backbones with different structures, i.e., the 'hourglass' like networks and the the 'pyramid' like networks, which detect objects on a single-resolution feature map and multi-resolution feature maps, respectively. On the MS-COCO dataset, CenterNet with Res2Net-101 and Swin-Transformer achieves APs of 53.7% and 57.1%, respectively, outperforming all existing bottom-up detectors and achieving state-of-the-art. We also design a real-time CenterNet, which achieves a good trade-off between accuracy and speed with an AP of 43.6% at 30.5 FPS.
If you encounter any problems in using our code, please contact Kaiwen Duan: kaiwenduan@outlook.com
Method | Backbone | AP | AP50 | AP75 | APS | APM | APL | AR1 | AR10 | AR100 | ARS | ARM | ARL |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PyCenterNet | R-50 | 46.4 | 63.7 | 50.3 | 27.1 | 48.9 | 58.8 | 36.2 | 60.0 | 64.2 | 41.1 | 68.5 | 81.9 |
PyCenterNet | R-101 | 47.7 | 65.1 | 51.9 | 27.8 | 50.5 | 60.6 | 37.1 | 61.1 | 65.4 | 41.6 | 70.0 | 83.4 |
PyCenterNet | R-101-DCN | 49.8 | 67.3 | 54.1 | 29.1 | 52.6 | 64.2 | 37.8 | 62.0 | 66.3 | 43.6 | 70.8 | 84.0 |
PyCenterNet | X-101 | 49.3 | 67.0 | 53.7 | 30.1 | 52.2 | 62.1 | 37.5 | 61.8 | 66.0 | 43.9 | 70.2 | 83.2 |
PyCenterNet | X-101-DCN | 50.8 | 68.6 | 55.4 | 30.7 | 53.4 | 65.3 | 38.2 | 62.7 | 66.9 | 44.9 | 71.0 | 84.6 |
PyCenterNet | R2-101 | 50.2 | 67.9 | 54.7 | 30.5 | 53.4 | 63.2 | 38.1 | 62.7 | 67.0 | 44.8 | 71.6 | 84.0 |
PyCenterNet | R2-101-DCN | 51.5 | 69.2 | 56.2 | 31.0 | 54.4 | 65.7 | 38.5 | 63.1 | 67.5 | 45.6 | 71.7 | 84.6 |
PyCenterNet(MS) | R2-101-DCN | 53.7 | 70.9 | 59.7 | 35.1 | 56.0 | 66.7 | 39.8 | 66.6 | 71.8 | 54.3 | 74.5 | 86.2 |
PyCenterNet | Swin-L | 53.2 | 71.4 | 57.4 | 33.2 | 56.2 | 68.7 | 39.2 | 61.6 | 64.0 | 43.2 | 67.7 | 80.7 |
PyCenterNet(MS) | Swin-L | 57.1 | 73.7 | 62.4 | 38.7 | 59.2 | 71.3 | 40.9 | 67.4 | 72.2 | 54.8 | 75.1 | 86.8 |
'MS'– multi-scale testing
Method | Backbone | FPS | APval | APtest |
---|---|---|---|---|
YOLOv3 | Darknet-53 | 26 | - | 33.0 |
FCOS-RT | R-50 | 38 | 40.2 | 40.2 |
Objects as Points | DLA-34 | 52 | 37.4 | 37.3 |
CPNDet | DLA-34 | 26.2 | 41.6 | 41.8 |
CenterNet-RT | R-50 | 30.5 | 43.2 | 43.6 |
The master branch works with PyTorch 1.5.0
The dataset directory should be like this:
├── data
│ ├── coco
│ │ ├── annotations
│ │ ├── images
├── train2017
├── val2017
├── test2017
cd code
cd mmpycocotools
python setup.py develop
cd ..
cd mmcv
MMCV_WITH_OPS=1 pip install -e .
cd ..
python setup.py develop
Our CenterNet is based on mmdetection. Please check with existing dataset for Training and Evaluation.