faster r-cnn训练、测试、检测(含批量检测图片)
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训练、测试、检测(含批量检测图片)相关推荐
- Faster R CNN
Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...
- 行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码)
行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码) 目录 行人检测(人体检测)2:YOLOv5实现人体检测(含人体检测数据集和训练代码) 1. 前言 2. 人体检测数据集说 ...
- 致远OA文件上传漏洞(含批量检测POC)
文章目录 文件上传 wpsAssistServlet 任意文件上传 漏洞描述 漏洞影响 网络测绘 批量检测POC ajax.do 任意文件上传 CNVD-2021-01627漏洞 漏洞描述 漏洞影响 ...
- 致远OA敏感信息泄露漏洞合集(含批量检测POC)
文章目录 前言 敏感信息泄露 A6 status.jsp 信息泄露漏洞 漏洞描述 漏洞影响 网络测绘 漏洞复现 POC 批量检测 getSessionList.jsp Session泄漏漏洞 漏洞描述 ...
- 【目标检测】批量裁剪图片小脚本
需求 我的需求是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高. 思路 1. 先使用PIL.Image.size获取输入图片的宽高. 2.宽高除以2得到中心点坐标 3.根据指定宽高,以中心点向四周拓展 ...
- 人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码)
人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 目录 人脸检测和行人检测2:YOLOv5实现人脸检测和行人检测(含数据集和训练代码) 1. 前言 2. 人脸检测和行人检 ...
- 行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测)
行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测) 目录 行人检测(人体检测)3:Android实现人体检测(含源码,可实时人体检测) 1. 前言 2. 人体检测数据集说明 ...
- 跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测)
跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测) 目录 跌倒检测和识别3:Android实现跌倒检测(含源码,可实时跌倒检测) 1. 前言 2. 跌倒检测数据集说明 3. 基于Y ...
- 人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接)
人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接) 目录 人脸检测和人体检测(行人检测)1:人脸检测和人体检测数据集(含下载链接) 1. 前言 2. VOC数据集 3. COCO ...
最新文章
- Object-C代码练习【自定义对象的归档】
- ASA SSL ××× Anyconnect SBL(Start Before Logon)用于在外网登录域(上)
- puppet kick 功能
- 使用javascript在客户端获取URL参数值的函数
- 【重识 HTML + CSS】盒子模型相关知识点
- 【CoRL 2018】通过元策略优化的MBRL算法
- 阿里弹性云手机正式公测
- mmap 文件不能为空
- 伺服驱动伺服电机选型究竞有哪些问题要注意??
- QCC303x调试笔记-修改自定义提示音
- Charles 手机https抓包
- 花了一万多买的web前端全套教程,现在分享给大家
- codewars练习记录15 js
- 一款 Material Design 风格的妹子福利 App.
- 【阿里巴巴-飞猪旅行-内推】2020年应届实习生招聘
- 移动OA,为企业提供更高效的办公模式
- strcat、strcpy、strcmp三种函数用法
- Altium Designer 导入PCB库
- 数据库----------约束、主键约束
- 2022年湖北省大学生电子设计竞赛A题(单项交流电子负载)赛后总结
热门文章
- AI会P图:你来描述,我来P
- watir安装及中文支持问题
- 美赛数学建模 | 信息检索与竞赛工具 降低信息差
- 如何建造一个虚拟帝国?感官世界与人机交互需完美配合
- snkrs暂时无法链接服务器,安卓snkrs一直出错了怎么解决 苹果snkrs无法连接服务器什么原因...
- 【Linux高级驱动】网卡驱动分析
- minSdk(API 26) deviceSdk(API 17)
- 数据分析有什么证书吗?多数小伙伴都认可CPDA
- Android中获取唯一的id
- 机器人卫士密码箱密码忘了怎么办_《忠诚的机器人卫士》教学设计(丽)