HRNet-Object-Detection
This is the official code of High-Resolution Representations for Object Detection. We extend the high-resolution representation (HRNet) by augmenting the high-resolution representation by aggregating the (upsampled) representations from all the parallel convolutions, leading to stronger representations. We build a multi-level representation from the high resolution and apply it to the Faster R-CNN, Mask R-CNN and Cascade R-CNN framework. This proposed approach achieves superior results to existing single-model networks on COCO object detection.
Performance
ImageNet pretrained models
HRNetV2 ImageNet pretrained models are now available! Codes and pretrained models are in HRNets for Image Classification
All models are trained on COCO train2017 set and evaluated on COCO val2017 set. Detailed settings or configurations are in configs/hrnet
.
Note: Models are trained with the newly released code and the results have minor differences with that in the paper.
Current results will be updated soon and more models and results are comming.
Quick start
Environment
This code is developed using on Python 3.6 and PyTorch 1.0.0 on Ubuntu 16.04 with NVIDIA GPUs. Training and testing are
performed using 4 NVIDIA P100 GPUs with CUDA 9.0 and cuDNN 7.0. Other platforms or GPUs are not fully tested.
Install
- Install PyTorch 1.0 following the official instructions
- Install
mmcv
pip install mmcv
- Install
pycocotools
git clone https://github.com/cocodataset/cocoapi.git \
&& cd cocoapi/PythonAPI \
&& python setup.py build_ext install \
&& cd ../../
- Install
mmdetection-hrnet
git clone https://github.com/HRNet/HRNet-Object-Detection.git
cd mmdetection-hrnet
# compile CUDA extensions.
chmod +x compile.sh
./compile.sh
# run setup
python setup.py install
# or install locally
python setup.py install --user
For more details, see INSTALL.md
HRNetV2 pretrained models
cd mmdetection-hrnet
# Download pretrained models into this folder
mkdir hrnetv2_pretrained
Datasets
Please download the COCO dataset from cocodataset. If you use zip
format, please specify CocoZipDataset
in config files or CocoDataset
if you unzip the downloaded dataset.
Train (multi-gpu training)
Please specify the configuration file in configs
(learning rate should be adjusted when the number of GPUs is changed).
python -m torch.distributed.launch --nproc_per_node <GPUS NUM> tools/train.py <CONFIG-FILE> --launcher pytorch
# example:
python -m torch.distributed.launch --nproc_per_node 4 tools/train.py configs/hrnet/faster_rcnn_hrnetv2p_w18_1x.py --launcher pytorch
Test
python tools/test.py <CONFIG-FILE> <MODEL WEIGHT> --gpus <GPUS NUM> --eval bbox --out result.pkl
# example:
python tools/test.py configs/hrnet/faster_rcnn_hrnetv2p_w18_1x.py work_dirs/faster_rcnn_hrnetv2p_w18_1x/model_final.pth --gpus 4 --eval bbox --out result.pkl