Feature Pyramid Networks for Object Detection
November 30, 2018 · View on GitHub
Recommend an improved version of FPN: https://github.com/DetectionTeamUCAS
A Tensorflow implementation of FPN detection framework.
You can refer to the paper Feature Pyramid Networks for Object Detection
Rotation detection method baesd on FPN reference R2CNN, RRPN and R2CNN_HEAD and R-DFPN
If useful to you, please star to support my work. Thanks.
Configuration Environment
ubuntu(Encoding problems may occur on windows) + python2 + tensorflow1.2 + cv2 + cuda8.0 + GeForce GTX 1080
You can also use docker environment, command: docker pull yangxue2docker/tensorflow3_gpu_cv2_sshd:v1.0
Installation
Clone the repository
git clone https://github.com/yangxue0827/FPN_Tensorflow.git
Make tfrecord
The data is VOC format, reference here
data path format ($FPN_ROOT/data/io/divide_data.py)
├── VOCdevkit
│ ├── VOCdevkit_train
│ ├── Annotation
│ ├── JPEGImages
│ ├── VOCdevkit_test
│ ├── Annotation
│ ├── JPEGImages
cd $FPN_ROOT/data/io/
python convert_data_to_tfrecord.py --VOC_dir='***/VOCdevkit/VOCdevkit_train/' --save_name='train' --img_format='.jpg' --dataset='ship'
Demo
1、Unzip the weight FPN_ROOT/tools/inference_image
3、Configure parameters in $FPN_ROOT/libs/configs/cfgs.py and modify the project's root directory
4、image slice
cd $FPN_ROOT/tools
python inference.py
5、big image
cd $FPN_ROOT/tools
python demo.py --src_folder=.\demo_src --des_folder=.\demo_des
Train
1、Modify FPN_ROOT/data/pretrained_weights
3、
cd $FPN_ROOT/tools
python train.py
Test tfrecord
cd $FPN_ROOT/tools
python $FPN_ROOT/tools/test.py
eval(Not recommended, Please refer here)
cd $FPN_ROOT/tools
python ship_eval.py
Summary
tensorboard --logdir=$FPN_ROOT/output/res101_summary/

Graph

Test results
airplane


sar_ship


ship


Note
This code works better when detecting single targets, but not suitable for multi-target detection tasks. Recommend improved code: https://github.com/DetectionTeamUCAS/FPN_Tensorflow.