faster r-cnn(tensorflow版本)训练VOC数据集、测试、检测指南

使用的faster r-cnn代码github地址

https://github.com/endernewton/tf-faster-rcnn

git下载:

git clone https://github.com/endernewton/tf-faster-rcnn.git

1.准备工作

首先根据自己的显卡调整默认计算能力,打开/lib/setup.py文件,第130行的'-arch=sm_52'改变成你自己显卡的计算能力值

比如本文使用的显卡是gtx1080ti,就改成'-arch=sm_61'

具体计算能力从如下地址查找

https://blog.csdn.net/huixingshao/article/details/82215703

之后进行编译,依次执行

cd tf-faster-rcnn/lib

make clean

make

cd ..

2.训练VOC数据集

将下载好的VOC数据集放在/data文件夹下面

/data/VOCdevkit2007/VOC2007/

里面放入三个文件

如若自己创建的数据集,也可以建立软连接的形式

使用命令

ln -s 自建创建的数据集地址 VOCdevkit2007

例如

ln -s /home/omnisky/DATASET/自建数据集/VOCdevkit2007 VOCdevkit2007
下载预训练好的vgg16权重,依次执行

mkdir -p data/imagenet_weights
cd data/imagenet_weights
wget -v http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
tar -xzvf vgg_16_2016_08_28.tar.gz
mv vgg_16.ckpt vgg16.ckpt
cd ../..

这时候下载好的vgg16预训练权重就存放在data/imagenet_weights文件夹中

如若下载不下来,请在百度网盘中下载,地址

https://pan.baidu.com/s/1dHW8-My1shD36Phsd9YMFg

分享码:gk10

如若你使用的是自己创建的VOC数据集,还需更改以下几个东西:

打开/lib/datasets/pascal_voc.py文件

将数据集类别名称改成你自己的

self._classes = ('__background__',  # always index 0
                     'aeroplane', 'bicycle', 'bird', 'boat',
                     'bottle', 'bus', 'car', 'cat', 'chair',
                     'cow', 'diningtable', 'dog', 'horse',
                     'motorbike', 'person', 'pottedplant',
                     'sheep', 'sofa', 'train', 'tvmonitor')

其中'__background__',作为第一个不能删除

如若想修改一些参数配置,可打开/data/model/config.py文件

若想修改训练或者测试时的迭代次数,打开/experiments/scripts//experiments/train_faster_rcnn.sh或者test_faster_rcnn.sh文件,

其中的

pascal_voc)
    TRAIN_IMDB="voc_2007_trainval"
    TEST_IMDB="voc_2007_test"
    STEPSIZE="[50000]"
    ITERS=70000
    ANCHORS="[8,16,32]"
    RATIOS="[0.5,1,2]"

红色的数字是迭代次数,修改成你想要的,根据自己创建的数据集大小更改

如果,你已经训练过一次,在训练的话,需要删除以下几个文件才能进行下一次训练

清空/output/vgg16文件夹中的内容

清空/data/cache文件夹中的内容

最后执行命令进行训练

./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16

3.测试

训练完成后程序会自动的测试,但如果你不小心关闭或者出了一些问题不需要担心,以下方法可以再次进行测试

首先根据/out/vgg16/voc_2007_trainval文件中的不同迭代次数的权重选择你要测试使用的权重,

在/experiments/scripts//experiments/test_faster_rcnn.sh文件中更改

其中的

pascal_voc)
    TRAIN_IMDB="voc_2007_trainval"
    TEST_IMDB="voc_2007_test"
    STEPSIZE="[50000]"
    ITERS=70000
    ANCHORS="[8,16,32]"
    RATIOS="[0.5,1,2]"

红色的数字是迭代次数,修改成你想要的

之后执行命令进行测试

./experiments/scripts/test_faster_rcnn.sh 0 pascal_voc vgg16

4.检测

如若想要检测出图片的话,需要执行/tools/demo.py文件

需要在demo.py文件中做出以下的更改

修改数据集类别名称

CLASSES = ('__background__','aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair','cow', 'diningtable', 'dog', 'horse','motorbike', 'person', 'pottedplant','sheep', 'sofa', 'train', 'tvmonitor')

其中第一类别'__background__',不能删除

修改数据集类别数量,在第141行

net.create_architecture("TEST", 21,tag='default', anchor_scales=[8, 16, 32])

其中红字是需要修改的,注意要算上'__background__'这一个类别,所以要在你自己数据集的总类别数上加1

修改需要测试的图片名称

在148行,将你要检测的图片名称加入im_names中

且将你要检测的图片放入/data/demo文件夹中

如若遇到tensorflow版本导致训练后的权重保存格式问题,可修改第120行的tfmodel

改成

tfmodel = os.path.join('/home/omnisky/project/tf-faster-rcnn/output/vgg16/voc_2007_trainval/default/vgg16_faster_rcnn_iter_70000.ckpt')

最后执行命令

python /tools/demo.py

5.批量检测

将其中的148行的im_names = [……]删除,更改为下面的代码即可

test_image_path = '检测图片存储的位置'
im_names = os.listdir(test_image_path)

最后执行命令

python /tools/demo.py

faster r-cnn训练、测试、检测(含批量检测图片)相关推荐

  1. Faster R CNN

    Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...

  2. 行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码)

    行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码) 目录 行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码) 1. 前言 2. 人体检测数据集说 ...

  3. 致远OA文件上传漏洞(含批量检测POC)

    文章目录 文件上传 wpsAssistServlet 任意文件上传 漏洞描述 漏洞影响 网络测绘 批量检测POC ajax.do 任意文件上传 CNVD-2021-01627漏洞 漏洞描述 漏洞影响 ...

  4. 致远OA敏感信息泄露漏洞合集(含批量检测POC)

    文章目录 前言 敏感信息泄露 A6 status.jsp 信息泄露漏洞 漏洞描述 漏洞影响 网络测绘 漏洞复现 POC 批量检测 getSessionList.jsp Session泄漏漏洞 漏洞描述 ...

  5. 【目标检测】批量裁剪图片小脚本

    需求 我的需求是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高. 思路 1. 先使用PIL.Image.size获取输入图片的宽高. 2.宽高除以2得到中心点坐标 3.根据指定宽高,以中心点向四周拓展 ...

  6. 人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码)

    人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 目录 人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 1. 前言 2. 人脸检测和行人检 ...

  7. 行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测)

    行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测) 目录 行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测) 1. 前言 2. 人体检测数据集说明 ...

  8. 跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测)

    跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测) 目录 跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测) 1. 前言 2. 跌倒检测数据集说明 3. 基于Y ...

  9. 人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接)

    人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接) 目录 人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接) 1. 前言 2. VOC数据集 3. COCO ...

最新文章

  1. Object-C代码练习【自定义对象的归档】
  2. ASA SSL ××× Anyconnect SBL(Start Before Logon)用于在外网登录域(上)
  3. puppet kick 功能
  4. 使用javascript在客户端获取URL参数值的函数
  5. 【重识 HTML + CSS】盒子模型相关知识点
  6. 【CoRL 2018】通过元策略优化的MBRL算法
  7. 阿里弹性云手机正式公测
  8. mmap 文件不能为空
  9. 伺服驱动伺服电机选型究竞有哪些问题要注意??
  10. QCC303x调试笔记-修改自定义提示音
  11. Charles 手机https抓包
  12. 花了一万多买的web前端全套教程,现在分享给大家
  13. codewars练习记录15 js
  14. 一款 Material Design 风格的妹子福利 App.
  15. 【阿里巴巴-飞猪旅行-内推】2020年应届实习生招聘
  16. 移动OA,为企业提供更高效的办公模式
  17. strcat、strcpy、strcmp三种函数用法
  18. Altium Designer 导入PCB库
  19. 数据库----------约束、主键约束
  20. 2022年湖北省大学生电子设计竞赛A题(单项交流电子负载)赛后总结

热门文章

  1. AI会P图:你来描述,我来P
  2. watir安装及中文支持问题
  3. 美赛数学建模 | 信息检索与竞赛工具 降低信息差
  4. 如何建造一个虚拟帝国?感官世界与人机交互需完美配合
  5. snkrs暂时无法链接服务器,安卓snkrs一直出错了怎么解决 苹果snkrs无法连接服务器什么原因...
  6. 【Linux高级驱动】网卡驱动分析
  7. minSdk(API 26) deviceSdk(API 17)
  8. 数据分析有什么证书吗?多数小伙伴都认可CPDA
  9. Android中获取唯一的id
  10. 机器人卫士密码箱密码忘了怎么办_《忠诚的机器人卫士》教学设计(丽)