unsky / FPN

Feature Pyramid Networks for Object Detection
524 stars 263 forks source link
feature-pyramid-network fpn object-detection

Feature Pyramid Network on caffe

This is the unoffical version Feature Pyramid Network for Feature Pyramid Networks for Object Detection https://arxiv.org/abs/1612.03144

results

FPN(resnet50)-end2end result is implemented without OHEM and train with pascal voc 2007 + 2012 test on 2007

merged rcnn

mAP@0.5 aeroplane bicycle bird boat bottle bus car cat chair cow
0.788 0.8079 0.8036 0.8010 0.7293 0.6743 0.8680 0.8766 0.8967 0.6122 0.8646
diningtable dog horse motorbike person pottedplant sheep sofa train tv
0.7330 0.8855 0.8760 0.8063 0.7999 0.5138 0.7905 0.7755 0.8637 0.7736

shared rcnn

mAP@0.5 aeroplane bicycle bird boat bottle bus car cat chair cow
0.7833 0.8585 0.8001 0.7970 0.7174 0.6522 0.8668 0.8768 0.8929 0.5842 0.8658
diningtable dog horse motorbike person pottedplant sheep sofa train tv
0.7022 0.8891 0.8680 0.7991 0.7944 0.5065 0.7896 0.7707 0.8697 0.7653

framework

megred rcnn framework

Network overview: link

shared rcnn

Network overview: link

the red and yellow are shared params

about the anchor size setting

In the paper the anchor setting is Ratios: [0.5,1,2],scales :[8,]

With the setting and P2~P6, all anchor sizes are [32,64,128,512,1024],but this setting is suit for COCO dataset which has so many small targets.

But the voc dataset targets are range [128,256,512].

So, we desgin the anchor setting:Ratios: [0.5,1,2],scales :[8,16], this is very import for voc dataset.

usage

download voc07,12 dataset ResNet50.caffemodel and rename to ResNet50.v2.caffemodel

cp ResNet50.v2.caffemodel data/pretrained_model/

In my expriments, the codes require ~10G GPU memory in training and ~6G in testing. your can design the suit image size, mimbatch size and rcnn batch size for your GPUS.

compile caffe & lib

cd caffe-fpn
mkdir build
cd build
cmake ..
make -j16 all
cd lib
make 

train & test

shared rcnn

./experiments/scripts/FP_Net_end2end.sh 1 FPN pascal_voc
./test.sh 1 FPN pascal_voc

megred rcnn

 ./experiments/scripts/FP_Net_end2end_merge_rcnn.sh 0 FPN pascal_voc
 ./test_mergercnn.sh 0 FPN pascal_voc

0 1 is GPU id.

TODO List

feature pyramid networks for object detection

Lin, T. Y., Dollár, P., Girshick, R., He, K., Hariharan, B., & Belongie, S. (2016). Feature pyramid networks for object detection. arXiv preprint arXiv:1612.03144.