深度学习的各种骚套路机器学习

faster-RCNN_TF训练自己的数据集

2020-06-24  本文已影响0人  大海龟啦啦啦

我使用的faster-RCNN的代码是最原始的一个python版本(https://github.com/smallcorgi/Faster-RCNN_TF
给自己标记数据的工具为LabelImg(https://github.com/tzutalin/labelImg),关于怎么用这个工具制作自己的数据集,参见(https://www.jianshu.com/p/4451e6cc1d67

因为俺也是初学者嘛,不怎么会改代码,因此我把自己的数据直接处理成了VOC2007的结构,这样我只需要去修改classes的类别,不用担心文件的路径。

修改的文件

  1. Faster-RCNN_TF/lib/datasets/pascal_voc.py

    修改红色的地方,可以把其中的类改成自己定义的那些类,但是第一行的background不能动,那个相当于是背景类。
    如果你想强行来训练PNG图片的话,就把图中黄色圈圈的jpg改成png
  2. Faster-RCNN_TF/lib/networks/VGGnet_train.py



    改成你的类别数 + 1,因为有一个背景类别。

  3. Faster-RCNN_TF/lib/networks/VGGnet_test.py



    同上进行修改。

  4. Faster-RCNN_TF/tools/demo.py



    同1中进行修改即可

注:修改完了之后要删除修改的文件对应的pyc编译文件

训练自己的数据

训练前要把官方的数据替换掉,如果你拿原始数据训练过,还需要把load的数据和模型删掉。
需要删除的文件在这三个目录下面:

Faster-RCNN_TF/output/faster_rcnn_end2end/voc_2007_trainval/
Faster-RCNN_TF/data/cache/
Faster-RCNN_TF/data/VOCdevkit2007/annotations_cache/

准备进行训练

进入Faster-RCNN_TF/lib目录make一下,再进入Faster-RCNN_TF目录执行

./experiments/scripts/faster_rcnn_end2end.sh gpu 0 VGG16 pascal_voc

训练到最后会报错,提示 --weights: expected one argument, 这时候需要添加我们训练好的模型路径。在训练阶段,这个问题可以通过修改shell脚本faster_rcnn_end2end.sh来解决,做如下修改:

--weights ${NET_FINAL} \
修改为
--weights output/faster_rcnn_end2end/voc_2007_trainval/VGGnet_fast_rcnn_iter_70000.ckpt \

这样即可完成我们自己数据集的训练和测试!!

上一篇下一篇

猜你喜欢

热点阅读