Recommend improved code: https://github.com/DetectionTeamUCAS
A Tensorflow implementation of R-DFPN detection framework based on FPN.
Other rotation detection method reference R2CNN, RRPN and R2CNN_HEAD
If useful to you, please star to support my work. Thanks.
Citing R-DFPN
If you find R-DFPN useful in your research, please consider citing:
@article{yangxue_r-dfpn:http://www.mdpi.com/2072-4292/10/1/132
Author = {Xue Yang, Hao Sun, Kun Fu, Jirui Yang, Xian Sun, Menglong Yan and Zhi Guo},
Title = {{R-DFPN}: Automatic Ship Detection in Remote Sensing Images from Google Earth of Complex Scenes Based on Multiscale Rotation Dense Feature Pyramid Networks},
Journal = {Published in remote sensing},
Year = {2018}
}
ubuntu(Encoding problems may occur on windows) + python2 + tensorflow1.2 + cv2 + cuda8.0 + GeForce GTX 1080
If you want to use cpu, you need to modify the parameters of NMS and IOU functions use_gpu = False in cfgs.py
You can also use docker environment, command: docker pull yangxue2docker/tensorflow3_gpu_cv2_sshd:v1.0
Clone the repository
git clone https://github.com/yangxue0827/R-DFPN_FPN_Tensorflow.git
The data is VOC format, reference here
data path format ($DFPN_ROOT/data/io/divide_data.py)
├── VOCdevkit
│ ├── VOCdevkit_train
│ ├── Annotation
│ ├── JPEGImages
│ ├── VOCdevkit_test
│ ├── Annotation
│ ├── JPEGImages
cd $R-DFPN_ROOT/data/io/
python convert_data_to_tfrecord.py --VOC_dir='***/VOCdevkit/VOCdevkit_train/' --save_name='train' --img_format='.jpg' --dataset='ship'
1、Unzip the weight $R-DFPN_ROOT/output/res101_trained_weights/*.rar
2、put images in $R-DFPN_ROOT/tools/inference_image
3、Configure parameters in $R-DFPN_ROOT/libs/configs/cfgs.py and modify the project's root directory
4、image slice
cd $R-DFPN_ROOT/tools
python inference.py
5、big image
cd $FPN_ROOT/tools
python demo.py --src_folder=.\demo_src --des_folder=.\demo_des
1、Modify $R-DFPN_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 $R-DFPN_ROOT/data/pretrained_weights
3、
cd $R-DFPN_ROOT/tools
python train.py
cd $R-DFPN_ROOT/tools
python test.py
eval(Not recommended, Please refer here
cd $R-DFPN_ROOT/tools
python ship_eval.py
tensorboard --logdir=$R-DFPN_ROOT/output/res101_summary/