Tensorflow+Faster RCNN训练自己的数据集

Faster RCNN(Tensorflow)的配置可以参考我的博客,https://blog.csdn.net/kebi199312/article/details/88368904

本文分为三部分:

  • 数据集制作
  • 代码修改
  • 训练和测试

一、环境配置:

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.pypascal_voc.py等调整时匹配;

扫描二维码关注公众号,回复: 6645180 查看本文章

(2)左侧save到Annotations文件夹下,存为xml文件(放到Annotations里);

(3)下一张图片继续,直至结束。

批量命名图片的代码:


  
  
  1. import os
  2. path = "JPEGImages"
  3. filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
  4. count= 0
  5. for file in filelist:
  6. print(file)
  7. for file in filelist: #遍历所有文件
  8. Olddir=os.path.join(path,file) #原来的文件路径
  9. if os.path.isdir(Olddir): #如果是文件夹则跳过
  10. continue
  11. filename=os.path.splitext(file)[ 0] #文件名
  12. filetype=os.path.splitext(file)[ 1] #文件扩展名
  13. Newdir=os.path.join(path,str(count).zfill( 6)+filetype) #用字符串函数zfill 以0补全所需位数
  14. os.rename(Olddir,Newdir) #重命名
  15. count+= 1

三、代码修改

标签修改:代码位于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位数字。

                                                                                    修改的参数 

最后测试的结果如下图所示:

Faster RCNN(Tensorflow)的配置可以参考我的博客,https://blog.csdn.net/kebi199312/article/details/88368904

猜你喜欢

转载自blog.csdn.net/kellyroslyn/article/details/92760384