Faster-Rcnn在windows下制作并训练自己的数据集

时间:2024-04-03 13:57:20

1.制作自己的数据集:(仿VOC2007数据集)


在文件夹 “faster_rcnn-master\制作自己的数据集” 下操作

<步骤>:

  ①图片批量重命名
  ②手动框定目标,生成txt文件,包括:图片名,类别标签,左上角坐标,右下角坐标(有时候也可能是左下角,右上角)
  ③制作xml文件
  ④制作4个txt文件:train.txt   test.txt   val.txt  trainval.txt

<实现方法>(所有实现环境均在win7下):

①使用小咸鱼博主http://blog.csdn.net/sinat_30071459/article/details/50723212的方案,在文件夹“1_小咸鱼博主-csdn\VOC2007”。


     1.批量重命名,运行VOC2007rename.m
        img文件夹下,应还有一个子文件夹存放图片,例:.\img\BirdCat\000003.jpg (命名最好还是6位,4位的话尝试过,程序报错不知道是不是这个原因)

     2.目标框定并生成output.txt
         a.在文件夹“.\lbimg_ver2”下,内附word使用说明。
         b.cmd操作:(不要&)
              & cd.\VOC2007\lbimg_ver2                       (应是.exe完整路径,这里简写)
              &LabelPicture.exe .\VOC2007\img\BirdCat         (应是存放图片的完整路径)
         c.对每张图片手动框定目标后,生成的output.txt保存在BirdCat的文件夹下,格式例:000003.jpg cat 26 75 130 156

      3.生成xml,运行VOC2007xml.m
           改路径,生成的xml文件保存在Annotations文件夹里。

      4.生成txt,运行VOC2007txt.m
          改路径,生成的txt文件保存在.\ImageSets\Main 文件夹
               test.txt        (占全部样本数量的50%)
               trainval.txt    (50%)
               train.txt       (25%)
               val.txt         (25%)

      5.准备与VOC2007格式相同的数据集
          此时VOC2007文件夹下,存放的是我们需要的三个文件夹:
              Annotations
              ImageSets
             JPEGImages

②使用“2_VOC2007样本制作工具-exe全套”文件夹-----用这个!!

    优点:简单暴力,制作数据集时自己真正使用的就是这个工具,直接生成VOC2007相同格式的数据集
    缺点:跳过output.txt这个步骤,故没有output.txt这个文档。
    
    运行.\bin文件夹下的VOCdate.exe,
        a.打开图片存放的文件夹.\img\test,进行重命名操作;
        b.然后选中每张图片进行目标框定,该文件夹下会生成相应的xml文件;
        c.选中文件夹,点击“生成VOC样式”,生成的文件夹faster_rcnn_VOC_ZF_2017_0914存放在.\img下,这正是最终我们所需要的:Annotations, ImageSets,JPEGImages

2.训练自己的数据集

<步骤>  

  ①自行下载好VOCdevkit2007,解压在.\faster_rcnn-master\datasets文件夹下;
  ②将.\VOCdevkit2007\VOC2007 文件夹清空,将制作好的数据集(Annotations,ImageSets,JPEGImages)拷贝进来。
  ③进行.m文件和网络模型的修改,参照小咸鱼 http://blog.csdn.net/sinat_30071459/article/details/50546891  

  ④运行.\experiments\script_faster_rcnn_VOC2007_ZF.m(在win10+GTX1060环境下,大概5个小时)---ps:大家时间都这么久吗?隐隐觉得哪里不对


      遇到bug:错误使用proposal_prepare_image_roidb>scale_rois (line 110) 两个输入数组的单一维度必须相互匹配
      解决方法,参照:http://www.cnblogs.com/zjutzz/p/5983160.html(一定记得清除.\faster_rcnn-master\imdb\cache 文件夹里的文件)


3.测试:

①打开faster_rcnn-master\experiments\script_faster_rcnn_demo.m,修改路径为:
     model_dir = fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC2007_ZF')

②将测试图片放在该路径下 faster_rcnn-master\output,再将script_faster_rcnn_demo.m中测试图片名字改成自己的图片名:
      im_names = {'000001.jpg', '000002.jpg', '000003.jpg'};  

③运行script_faster_rcnn_demo.m,得到检测结果。

Faster-Rcnn在windows下制作并训练自己的数据集Faster-Rcnn在windows下制作并训练自己的数据集Faster-Rcnn在windows下制作并训练自己的数据集Faster-Rcnn在windows下制作并训练自己的数据集Faster-Rcnn在windows下制作并训练自己的数据集