Advertisement

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

阅读量:

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。

全部评论 (0)

还没有任何评论哟~