基于Faster-RCNN-TF的gpu运行总结(自己准备数据集)(训练篇)
来源:互联网 发布:淘宝达人 知乎 编辑:程序博客网 时间:2024/06/14 04:24
最近经过一段对tensorflow和faster-rcnn的学习,并且亲身去跑了两个不同框架下的faster-rcnn代码,所以就在这里做一下总结。
这里,我就主要记录一下自己在跑tensorflow框架下的faster-rcnn。
首先,就是硬件要求,因为自己是做计算机图像,目标识别,所以最重要的一个提升效率的装备就是GPU,也就是显卡。现在能在GPU上进行运算,可以让我们的时间成本大大降低,当然,仅在CPU下也可以去跑,只是时间有些浪费。当然,自己还没有解决能并行GPU的运算,所以这里只能做到使用一块GPU。
具体环境要求:
1.Ubuntu 16.04系统、CUDA 8.0和cudnn(可以支持NVIDIA的GPU运算,当然有很多人在说这个环境,可以再参考其他相关文章)
2.python版本opencv和gpu版本的tensorflow
自己的python版本是2.7的, 所以自己就找了2.7版本的opencv和tensorflow(必须是gpu版,因为我们要使用gpu),当然至于去哪里找,大家都很清楚,我就不多说了。
那么我们有了硬件和具体环境,就开始我们的目标识别之旅吧!
一、数据集准备
二、程序和环境编译
我的建议是大家在运行前,先理解faster-rcnn结构,然后去看它的python版本和matlab版本代码,最后在下载faster-rcnn-tf的程序,这样会让我们在修改的时候节省很多时间,同时,也让自己的思路清晰。对于faster-rcnn-tf的程序,在github上有很多,所以大家自己选择一个,最主要的文件夹如下图:
data-----------------这里是用来存放你的数据图片的
experiments------这个文件夹决定了你要采用什么样的方式去训练你的数据,大家都知道,faster-rcnn提供了两种训练方式:
1.交替训练(alt_opt)
2.近似联合训练(end-to-end)
这里我们就使用的是第二种,因为它速度更快,同时也能保证准确率,但是两者修改代码是不一样的。
lib--------------------存放python的接口文件,如需要数据读入等。
tools-----------------存放的是训练、测试等python文件,这里是我们的重点。
output是用来存放自己训练好的模型的,所以在未训练前,里面是空的。我建议大家要仔细阅读README.md文件,可以很好的帮助我们运行程序。
我们现在已经有程序代码了,然后我们现在先建立Cython环境
进入终端,我们找到Faster-rcnn-TF的文件夹
点击回车,如果大家之前的软件环境都有的话,这一步会完成编译。
之后,我们需要下载一个已经训练好的模型,用来测试它的demo.py(也就是例程),这里直接用它README.md中给的网站下载就可以了,然后把模型放在tools/model(新建model文件夹)文件夹中就可以,方便我们调用。另外,这个程序是基于voc2007数据集训练的,所以它训练的是21类,测试例程的模型也是区分21类物体的。
这里,对于model模型存放的位置,大家根据自己修改,另外,对于tensorflow版本的模型来讲,它由三个文件(后缀名为data-00000-of-00001、index、meta)组成,所以大家只需要写到ckpt即可。这里我使用的是自己训练好的一个模型,所以大家凑合看即可。如果demo.py运行顺利,我们就可以训练自己的数据模型了。
三、训练
- 基于Faster-RCNN-TF的gpu运行总结(自己准备数据集)(训练篇)
- Faster RCNN 训练自己的数据集
- Faster-RCNN训练自己的数据集
- Faster-RCNN训练自己的数据集
- faster Rcnn训练自己的数据集
- Faster-Rcnn训练自己的数据集
- faster rcnn训练自己的数据集demo和训练过程error总结
- 使用faster rcnn训练自己的数据-制作数据集
- 用自己的数据训练Faster-RCNN
- faster-rcnn安装,训练自己的数据
- py-faster-rcnn训练自己的数据
- faster rcnn 训练自己的数据
- 使用自己的数据训练Faster-RCNN
- 【faster-rcnn】训练自己的数据集时的坑
- 【faster-rcnn】训练自己的数据集时的坑
- 【faster-rcnn】训练自己的数据集时的坑
- Faster-RCNN 训练自己数据集的坑记录
- 用py-faster-rcnn训练自己的VOC数据集
- 异常-常见的异常
- LeetCode(28) Implement strStr()
- swagger2快速搭建《一》
- MyEclipse下复制web项目或更改项目名称后重新部署到Tomcat后找不到项目页面解放方法
- (转载)安卓开发中非常炫的效果集合
- 基于Faster-RCNN-TF的gpu运行总结(自己准备数据集)(训练篇)
- 安装Mysql官方的sakila数据库
- Android 冷启动 热启动
- Arrays类——Arrays.asList()方法使用
- iOS TableView显示出现:Warning once only: Detected a case where constraints ambiguously suggest a height
- instrument 文档研究
- Spring-Boot允许跨域请求
- 缓存技术的详解
- cron定时任务-mysql备份