• Stars
    star
    547
  • Rank 80,697 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An easy to understand and better performance version of CenterNet

CenterNet

This repo is implemented based on my dl_lib, some parts of code in my dl_lib is based on detectron2.

Motivation

Objects as Points is one of my favorite paper in object detection area. However, its code is a little difficult to understand. I believe that CenterNet could get higher pts and implemented in a more elegant way, so I write this repo.

Performance

This repo use less training time to get a better performance, it nearly spend half training time and get 1~2 pts higher mAP compared with the old repo. Here is the table of performance.

Backbone mAP FPS V100 FPS trained model
ResNet-18 29.8 92 113 google drive
ResNet-50 34.9 57 71 google drive
ResNet-101 36.8 43 50 google drive

What's New?

  • treat config as a object. You could run your config file and check the config value, which is really helpful for debug.
  • Common training / testing scripts in default. you just need to invoke dl_train/test --num-gpus x in your playground and your projects only need to include all project-specific configs and network modules.
  • Performance report is dumped automaticly. After your training is over, we will evaluate your model automatically and generate a markdown file.
  • Vectorize some operations. This improves the speed and efficiency.

What's comming

  • Support DLA backbone
  • Support Hourglass backbone
  • Support KeyPoints dataset

Get started

Requirements

  • Python >= 3.6
  • PyTorch >= 1.3
  • 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

Installation

Make sure that your get at least one gpu when compiled. Run:

pip install -e .

Training

For example, if you want to train CenterNet with resnet-18 backbone, run:

cd playground/centernet.res18.coco.512size
dl_train --num-gpus 8

After training process, a README.md file will be generated automatically and this file will report your model's performance.

NOTE: For ResNet-18 and ResNet-50 backbone, we suppose your machine has over 150GB Memory for training. If your memory is not enough, please change NUM_WORKER (in config.py) to a smaller value.

Testing and Evaluation

dl_test --num-gpus 8 

test downloaded model:

dl_test --num-gpus 8  MODEL.WEIGHTS path/to/your/save_dir/ckpt.pth 

Acknowledgement

Coding style

please refer to google python coding style

Citing CenterNet-better

If you use CenterNet-better in your research or wish to refer to the baseline results published in this repo, please use the following BibTeX entry.

@misc{wang2020centernet_better,
  author =       {Feng Wang},
  title =        {CenterNet-better},
  howpublished = {\url{https://github.com/FateScript/CenterNet-better}},
  year =         {2020}
}