Feature Pyramid Networks for Object Detection
https://github.com/DetectionTeamUCAS
Recommend an improved version of FPNοΌ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/output/res101_trained_weights/*.rar
2γput images in $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/libs/lable_name_dict/***_dict.py, corresponding to the number of categories in the configuration file
2γdownload pretrain weight(resnet_v1_101_2016_08_28.tar.gz or resnet_v1_50_2016_08_28.tar.gz) from here, then extract to folder $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
here)
eval(Not recommended, Please refercd $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.