msracver / Deformable-ConvNets
- воскресенье, 7 мая 2017 г. в 03:12:42
Python
Deformable Convolutional Networks
The major contributors of this repository include Yuwen Xiong, Haozhi Qi, Guodong Zhang, Yi Li, Jifeng Dai, Bin Xiao and Yichen Wei.
This is an official implementation for Deformable Convolutional Networks (Deformable ConvNets). It is worth noticing that:
Deformable ConvNets is initially described in an arxiv tech report.
R-FCN is initially described in a NIPS 2016 paper.
© Microsoft, 2017. Licensed under an Apache-2.0 license.
If you find Deformable ConvNets useful in your research, please consider citing:
@article{dai17dcn,
Author = {Jifeng Dai, Haozhi Qi, Yuwen Xiong, Yi Li, Guodong Zhang, Han Hu, Yichen Wei},
Title = {Deformable Convolutional Networks},
Journal = {arXiv preprint arXiv:1703.06211},
Year = {2017}
}
@inproceedings{dai16rfcn,
Author = {Jifeng Dai, Yi Li, Kaiming He, Jian Sun},
Title = {{R-FCN}: Object Detection via Region-based Fully Convolutional Networks},
Conference = {NIPS},
Year = {2016}
}
training data | testing data | mAP@0.5 | mAP@0.7 | time | |
---|---|---|---|---|---|
R-FCN, ResNet-v1-101 | VOC 07+12 trainval | VOC 07 test | 79.6 | 63.1 | 0.16s |
Deformable R-FCN, ResNet-v1-101 | VOC 07+12 trainval | VOC 07 test | 82.3 | 67.8 | 0.19s |
training data | testing data | mAP | mAP@0.5 | mAP@0.75 | mAP@S | mAP@M | mAP@L | |
---|---|---|---|---|---|---|---|---|
R-FCN, ResNet-v1-101 | coco trainval | coco test-dev | 32.1 | 54.3 | 33.8 | 12.8 | 34.9 | 46.1 |
Deformable R-FCN, ResNet-v1-101 | coco trainval | coco test-dev | 35.7 | 56.8 | 38.3 | 15.2 | 38.8 | 51.5 |
Running time is counted on a single Maxwell Titan X GPU (mini-batch size is 1 in inference).
MXNet from the offical repository. We tested our code on MXNet@(commit 62ecb60). Due to the rapid development of MXNet, it is recommended to checkout this version if you encounter any issues. We may maintain this repository periodically if MXNet adds important feature in future release.
Python packages might missing: cython, opencv-python >= 3.2.0, easydict. If pip
is set up on your system, those packages should be able to be fetched and installed by running
pip install Cython
pip install opencv-python==3.2.0.6
pip install easydict==1.6
For Windows users, Visual Studio 2015 is needed to compile cython module.
Any NVIDIA GPUs with at least 4GB memory should be OK.
git clone https://github.com/msracver/Deformable-ConvNets.git
cmd .\init.bat
. For Linux user, run sh ./init.sh
. The scripts will build cython module automatically and create some folders../rfcn/operator_cxx
to $(YOUR_MXNET_FOLDER)/src/operator/contrib
and recompile MXNet../external/mxnet/$(YOUR_MXNET_PACKAGE)
, and modify MXNET_VERSION
in ./experiments/rfcn/cfgs/*.yaml
to $(YOUR_MXNET_PACKAGE)
. Thus you can switch among different versions of MXNet quickly.To use the demo with our trained model (on COCO trainval), please download the model manually from OneDrive, and put it under folder model/
.
Make sure it looks like this:
./model/rfcn_dcn_coco-0000.params
./model/rfcn_coco-0000.params
To run the demo, run
python ./rfcn/demo.py
By default it will run Deformable R-FCN and gives several prediction results, to run R-FCN, use
python ./rfcn/demo.py --rfcn_only
We will release the visualizaiton tool which visualizes the deformation effects soon.
Please download COCO and VOC 2007+2012 dataset, and make sure it looks like this:
./data/coco/
./data/VOCdevkit/VOC2007/
./data/VOCdevkit/VOC2012/
Please download ImageNet-pretrained ResNet-v1-101 model manually from OneDrive, and put it under folder ./model
. Make sure it looks like this:
./model/pretrained_model/resnet_v1_101-0000.params
./experiments/rfcn/cfgs
.python experiments\rfcn\rfcn_end2end_train_test.py --cfg experiments\rfcn\cfgs\resnet_v1_101_coco_trainval_rfcn_dcn_end2end_ohem.yaml
A cache folder would be created automatically to save the model and the log under output/rfcn_dcn_coco/
.Code has been tested under: