代码复现:遥感旋转目标检测(可训练自己的数据集)

follow了上交博士大佬yangxue的两个方法,这篇仅记录复现过程中碰到的问题,具体论文的介绍就不写了,大佬自己的知乎已经写得非常详细了。

SCRDet:https://zhuanlan.zhihu.com/p/107400817

CSL:https://zhuanlan.zhihu.com/p/111493759

复现的第一个方法:https://github.com/DetectionTeamUCAS/R2CNN-Plus-Plus_Tensorflow

在Ubuntu16.04下

1、tensorflow >= 1.2
2、cuda8.0
3、python2.7 (anaconda2 recommend)
4、opencv(cv2)
5、tfplot

实测tensorflow-gpu==1.2和1.4都可以使用,cuda8需要本地编译安装,anaconda3下创建python2.7环境即可

实际安装tf的时候,conda没办法直接安装这么低版本的tensorflow-gpu,于是从pypi下载了wheel本地安装,其他一些依赖包会自动安装。

pip install tensorflow_gpu-1.4.0-cp27-cp27mu-manylinux1_x86_64.wheel

另外需要注意的是,这个版本的tf配了numpy1.16.3,安装opencv的时候主要要控制版本,否则numpy版本对不上就报错,经过尝试之后,opencv-python安装3.3.1.11即可

pip install opencv-python==3.3.1.11

cuda8需要本地编译,在conda环境中安装cudatoolikit8在后续编译中报错,另外conda虚拟环境内还需要一个cudnn才能正常import tensorflow

conda install cudnn==5.1.10

cython的安装其实不用严格控制版本,保险起见和文件夹的文件对应,cython选择0.25.2

还有一个tfplot需要安装,直接pip

conda install cython==0.25.2

pip install tensorflow-plot

最后按照作者的流程,把预训练的权重放在对应文件夹即可,贴心的给了百度云,感谢大佬

训练自己的数据集也非常简单,如果数据集的annotation是txt并且是[x1,y1,x2,y2,x3,y3,x4,y4,class,more]这样的,在data/io文件夹下有直接的工具可以用txt2xml.py,转成xml之后根据作者步骤生成tfrecord即可,github中步骤很详细。

准备好数据后按照github的提示依次修改几个文件中的配置即可开始训练。

另一个方法CSLhttps://github.com/Thinklab-SJTU/CSL_RetinaNet_Tensorflow的配置就很简单了

conda create -n xxx python=3.6
conda activate xxx
conda install tensorflow-gpu=1.13.1
conda install cudatoolkit==10.0
conda install cudnn==7.6.5
pip install opencv-python
pip install tensorflow-plot

训练自己的数据集和上一个方法很类似,这个支持多GPU。

猜你喜欢

转载自blog.csdn.net/hesongzefairy/article/details/109162527
今日推荐