Skip to content
forked from JDAI-CV/centerX

This repo is implemented based on detectron2 and centernet

License

Notifications You must be signed in to change notification settings

cydiachen/centerX

 
 

Repository files navigation

This repo is implemented based on detectron2 and CenterNet

What's new

  • Support imgaug data augmentation
  • Support swa
  • Support Knowledge Distill, teacher-student, designed by myself
  • Support other LR_SCHEDULER
  • Support Optimizer RangerLars, not convergence in COCO
  • We provide some examples and scripts to convert centerX to Caffe, ONNX and TensorRT format in projects/speedup

What's comming

  • [️✔] Support simple inference
  • [✔] Support to caffe, onnx, tensorRT
  • Support keypoints

Requirements

  • Python >= 3.7
  • PyTorch >= 1.5
  • torchvision that matches the PyTorch installation.
  • OpenCV
  • pycocotools
pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
  • GCC >= 4.9
gcc --version
  • detectron2
pip install -U 'git+https://github.com/CPFLAME/detectron2.git'
pip install git+https://github.com/pabloppp/pytorch-tools -U

Data prepare

the same as detectron2

Training

modify your yamls in run.sh

sh run.sh

Testing and Evaluation

modify your yamls in run.sh, add eval-only and MODEL.WEIGHTS in your setting

sh run.sh

Performance

coco

This repo use less training time to get a competitive performance compared to other versions

Backbone ResNet-50

Code mAP epoch
centerX 33.2 70
centerX 34.3 140
centernet-better 34.9 140

Backbone ResNet-18

centerX_KD means ResNet-50(33.2) as teacher, ResNet-18(27.9) as student, Knowledge Distill for 70 epoch in coco.

Code mAP epoch
centerX 30.2 140
centerX 27.9 70
centerX_KD 31.0 70
centernet-better 29.8 140
centernet 28.1 140

crowd human

  • optim: SGD
  • lr: 0.02
  • scheduler: WarmupMultiStepLR ,drop 0.1 in (50, 62) for 80 epoch; (90 ,120) for 140 epoch
  • train size: 512 max size
  • test size: 512 max size
  • batch size: 64
  • woGT: KD only use teacher loss
Backbone mAP mAP50 mAP75 epoch teacher student_pretrain
resdcn18 31.2 56.6 30.8 80 - -
resdcn18_swa 31.1 56.6 30.4 80 - -
resdcn18_syncBN 31.3 56.6 30.7 80 - -
resdcn18_imgaug 29.6 54.7 28.9 80 - -
resdcn18_KD 34.5 60.2 34.3 80 resdcn50 resdcn18
resdcn18_KD_woGT 33.0 58.3 32.7 80 resdcn50 resdcn18
resdcn18_KD_woGT_scratch 32.8 58.1 32.6 140 resdcn50 imagenet
resdcn50 35.1 61.2 35.3 80 - -

KD exp

crowd human KD

Generalization performance for Knowledge Distill

Backbone crowd mAP coco_person mAP epoch teacher student_pretrain train_set
resdcn50 35.1 35.7 80 - - crowd
resdcn18(baseline) 31.2 31.2 80 - - crowd
resdcn18_KD 34.5 34.9 80 resdcn50 resdcn18 crowd
resdcn18_KD_woGT_scratch 32.8 34.2 140 resdcn50 imagenet crowd
resdcn18_KD_woGT_scratch 34.1 36.3 140 resdcn50 imagenet crowd+coco

multi teacher KD

Backbone mAP crowd mAP coco_car epoch teacher student_pretrain train_set
1.resdcn50 35.1 - 80 - - crowd
2.resdcn18 31.7 - 70 - - crowd
3.resdcn50 - 31.6 70 - - coco_car
4.resdcn18 - 27.8 70 - - coco_car
resdcn18_KD_woGT_scratch 31.6 29.4 140 1,3 imagenet crowd+coco_car
Backbone mAP crowd_human mAP widerface epoch teacher student_pretrain train_set
1.resdcn50 35.1 - 80 - - crowd
2.resdcn18 31.7 - 70 - - crowd
3.resdcn50 - 32.9 70 - - widerface
4.resdcn18 - 29.6 70 - - widerface
5.resdcn18_ignore_nolabel 29.1 24.2 140 - - crowd+wider
6.resdcn18_pseudo_label 28.9 27.7 140 - - crowd+wider
7.resdcn18_KD_woGT_scratch 31.3 32.1 140 1,3 imagenet crowd+wider

License

centerX is released under the Apache 2.0 license.

Acknowledgement

About

This repo is implemented based on detectron2 and centernet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.0%
  • Shell 2.0%