TensorFlow下用自己的数据训练Fater-RCNN

环境:Linux系统,GPU

1.首先在GitHub上找到这个源码 ,然后根据下面的ReadMe教程一步步跑通,建议先用VOC2007数据集训练,可以先把迭代次(在/FRCN_ROOT/experiments/scripts/faster_rcnn_end2end.sh文件下)数从7000改成100,只是测试有没有问题,节省时间,中途会遇到一些错误,你可以根据源码上面的issue来找解决方案,一般错误都能找到

                                                   

2.如果第1步训练完没有问题,那么就可以开始制作自己的数据集了(数据标签尽量用小写字母),只是把数据集相应文件夹替换成你自己的数据就可以,制作数据集教程在这里 ,里面讲的很详细,工具也都有,

3.制作完之后就要修改自己源码的相应代码了,毕竟分的类数什么的不一样,所以要修改一下,修改也十分简单,

    3.1,Faster_RCNN/lib/datasets/pascal_voc.py文件 修改成自己的类

     中间需要注意一点,如果你的标签像我一样用了大写字母,那么运行测试的时候会报错,解决办法见文末

  3.2 ,/Faster_RCNN/lib/networks/VGGnet_train.py 文件

    3.3 /Faster_RCNN/lib/networks/VGGnet_test.py 文件

            

4.如果你之前训练过一些数据的话,那么还要删除一些缓存内容

       4.1,Faster_RCNN/data/cache
       4.2,Faster_RCNN/output/faster_rcnn_end2end

       4.3,Faster_RCNN/data/VOCdevkit2007/annotations_cache/annots.pkl

5.修改demo.py,以便使用自己的数据来测试,然后保存,由于demo.py里面原来只是选取/FRCN_ROOT/data/demo文件夹下的文件进行测试,所有我们要把这个文件夹下的图片替换成自己的测试图片,然后运行demo.py进行测试的时候是只显示出测试好的图片,而不保存测试好的图片,所有要把这个该一下,改成保存测试好的图片,如下图:

             

            

             

训练:

6.然后执行训练,在训练之前,你可以按照第1步的方法,先将训练次数调小,如果训练成功,再重复第4步,调大迭代次数(一般是70000)训练,在FRCN_ROOT文件夹下执行:

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

测试:

7.执行下面命令:

cd $FRCN_ROOT
python ./tools/demo.py --model /home/FENGsl/Faster_RCNN/output/faster_rcnn_end2end/voc_2007_trainval/VGGnet_fast_rcnn_iter_70000.ckpt

问题描述:

1.如果你做数据集的时候把标签的写成的大写字母,会出现KeyError错误提示。

   解决办法:找到下面的地方

cls = self._class_to_ind[obj.find('name').text.lower().strip()]  

  把lower()去掉即可。

2.如果你用了远程服务器来训练,那么图片是不能显示的,会出现RuntimeError: Invalid DISPLAY variable,

  解决办法:需要修改demo.py文件,中间两行

from utils.timer import Timer
import matplotlib.pyplot as plt
plt.switch_backend('agg')
import numpy as np

                             谢谢大家,我的表演结束,来欣赏我的一些测试结果:

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值