Faster RCNN(Tensorflow)的配置可以参考我的博客,
本文分为三部分:
- 数据集制作
- 代码修改
- 训练和测试
一、环境配置:
1、环境
- win10系统,显卡GeForce GTX 960M;
- TensorFlow-gpu 1.13.0-rc2,CUDA 10.0,Cudnn 7.4.2;
- python 3.5.2
- Faster RCNN的下载地址:
<p><a href="https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5" rel="nofollow" target="_blank">https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5</a></p>
</li>
二、制作数据集
数据集的图片来源于https://github.com/datitran/raccoon_dataset,数据集里有200张浣熊的照片;数据集的格式类似于VOC2007的格式,Annotations文件夹里是制作好的标签,JPEGImages文件夹里是源图像,ImageSets\Main 文件夹里是生成的txt文件
VOC2007下的文件夹
批量命名文件(格式:00000x.jpg),并且图片的尺寸不能太大,将重命名的源图像放在JPEGImages文件夹里,使用labelImg工具将图像标注,生成xml文件,保存在Annotation文件夹里,操作步骤:
打开labelImg,在OpenDir中,选择JPEGimage文件夹
(1)W键快捷creatbox,进行框选待测图片中的检测目标;
(2)输入目标的标签,后面和config.py,pascal_voc.py等调整时匹配;
(2)左侧save到Annotations文件夹下,存为xml文件(放到Annotations里);
(3)下一张图片继续,直至结束。
批量命名图片的代码:
三、代码修改
标签修改:代码位于lib\datasets\pascal_voc.py,pascal_voc.py脚本第34行,不要更改_background_,将34行中的标签替换成自己的标签,这里只用到了一个标签:raccoon。
标签修改
训练参数修改:代码位于lib\config\config.py文件中,可以更改训练的总步数(max_iters)、权值衰减(weight_decay)、学习率(learning_rate)、批次大小(batch_size)等参数。
训练参数修改
四、训练和测试
参数修改完后,运行train.py,模型训练完后,模型保存在..\default\voc_2007_trainval\default中,把四个文件拷贝出来放到output\vgg16\voc_2007_trainval\default文件夹中,并进行重命名,如下图所示。
生成的模型
测试代码修改:修改主目录里的demo.py脚本,修改标签的个数(1个背景,1个标签),同时把需要测试的图片放在data\demo文件夹里,图片的名称为6位数字。
修改的参数
最后测试的结果如下图所示: