首先声明参考博客:https://blog.csdn.net/beyond_xnsx/article/details/79771690?tdsourcetag=s_pcqq_aiomsg

实践过程主线参考这篇博客,相应地方进行了变通。接下来记载我的实践过程。

一、GPU版的TensorFlow的安装

准备工作:

笔者电脑是Windows10企业版操作系统,在这之前已经通过Anaconda安装了python3.5.2和CPU版本的TensorFlow1.12.0。Anaconda就跟普通的软件一样,下载完图形化界面引导式安装就可以,不会的百度一大堆,这里就不说这个了。     笔者也不确定CPU版TensorFlow和GPU版的TensorFlow可以并存否,不过据我资料搜索显示可以并存,不过,笔者也是初学,为了安全起见,就决定先卸载掉CPU版的TensorFlow,在Anaconda Prompt中输入pip uninstall TensorFlow,有时候可能显示没有找到或无法卸载之类的提示,为了保险,笔者进入Anaconda文件系统内部(笔者的路径:D:\DevelopmentTools\Anaconda3\Lib\site-packages),手动将TensorFlow和TensorBoard两个文件夹删除掉了,也就是说这个完全可以手动删除,但要把相关的删除干净为好,不一定非得要命令行卸载。    下面开始GPU版TensorFlow的安装:

1、英伟达(NVIDIA)CUDA和CuDnn的安装

英伟达显卡更多是面向游戏用户的,所以并未直接在驱动中内置关于深度学习的组件,所以需要将用于支持深度学习的组件添加进NVIDIA驱动或安装包,这里有两个东西:CUDA和CuDnn。

笔者电脑的GPU是NVIDIA GeForce GTX 1060 with Max-Q Design,所以首先查看下自己的GPU是否支持CUDA功能,如果支持,那么CUDA和CuDnn不同版本选择和GPU型号没有关系,主要看其和TensorFlow版本的兼容性,如果版本不兼容,会产生一系列问题,令人琢磨不透,这个还是要弄清楚才好。笔者最终选择的是CUDA9.0和CdDnn9.0,对应选择的TensorFlow版本是1.10.0。下一步来讲TensorFlow安装

CUDN网盘链接:链接:https://pan.baidu.com/s/1VAw1bMtSyUmJ4Uv7X44MsA      提取码:mgam

CuDnn网盘链接:链接:https://pan.baidu.com/s/175b0OId84-xbzhq24eAv5w          提取码:q7ni

CUDN的安装用cuda_9.0.176_win10.exe就和普通软件安装一样,目录使用默认的,环境变量自动添加。然后将cuda9.0+cudnn-9.0-windows10-x64-v7.1.zip解压到一个目录等待使用即可,如下:

 
 然后到C盘的NVIDIA安装文件夹下,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0,将解压文件夹下的对应目录下的文件拷贝进下面目录下的同名对应文件夹下,如下:
cudnn64_7.dll 拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
cudnn 拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
cudnn 拷贝到:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64

这里,就完成了GPU端的相关内容。    下面进入TensorFlow的安装。

2、TensorFlow-gpu的安装

进入Anaconda Prompt命令行下,使用pip install --ignore-installed --upgrade tensorflow-gpu==1.10.0来安装,会自动下载安装的。这里需要注意的是版本号是否兼容,这里使用的是TensorFlow-gpu-1.10.0和CUDA9.0,其它版本需要查证版本兼容问题,而且这里安装会提示不兼容的错误的,还有之前若有CPU版TensorFlow可能会有不确定的问题,我是卸载删除干净之后才进行安装的。

3、测试

在命令行中,进入python,并输入以下代码:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
输出:
b’ Hello, TensorFlow!

出现如上界面信息,没有明显的异常错误信息,就表示TensorFlow-gpu安装成功。  下面进入FasterRCNN相关内容。

二、下载并部署FasterRCNN的源码

代码GitHub链接:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

这里还有一点,需要安装cython, python-opencv, easydict三个包,同理,在Anaconda Prompt命令行下,用pip来安装,如果以有opencv,就不用安装python-opencv了。

下载完,直接用PyCharm打开即可,

三、数据集

可以收集自己的数据,进行标注,使用labelImg-master工具进行标注,按照VOC2007规范化数据图片及标注结果的xml文件。我这里将组中集体合作标注的数据集修改了又修改,但是最终还是没能正确使用起来,我修改的内容就是那些未被标注的图片和标注不兼容的图片,前者是直接将未被标注的图片和相关文件删除掉,后者是重新标注。 自己标注的数据集总是有问题,目前还没有解决,之后会更新。

最终使用公有数据集进行训练,如下:

下载数据集

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
将三个文件同时解压到VOCdevkit2007目录下(三个都解压到一个文件夹下),并将VOCdevkit2007目录存放于data目录下
文件名和路径结构一定要设置对,否则会报错

然后就用此数据集替换项目代码中的数据集,以本人的pycharm项目路径为例,如:D:\IDE\PyCharm\Project\Faster-RCNN-TensorFlow-Python3.5-master\data\VOCdevkit2007\VOC2007

直接替换即可。

四、预训练模型植入

简单讲,这里相当于一个迁移学习,因为自己从零开始训练一个模型很费劲,关键是要想训练出比较准确或者说很准确的模型,那要耗费很高的GPU资源和更多的时间,所以这里就是运用别人训练了一部分的一个模型,叫做预训练模型,选择Vgg16预训练模型,下载链接:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

解压并改名为vgg16.ckpt(原来是vgg_16.ckpt)存放在Faster-RCNN-TensorFlow-Python3.5-master\data\imagenet_weights\目录下(注:这个imagenet_weights文件夹并不存在,自己新建一个即可),解压后一定要改名为vgg16.ckpt 而不是vgg_16.ckpt否则会报错:

五、开始训练

这时,就可以运行train.py了,我大约训练了七八个小时吧,我是凌晨12点睡觉前开始训练,早上起来就训练好了,

六、运行demo.py

然后运行demo.py,就可以对文件夹下的六张图片进行标注并显示了

FasterRCNN目标检测实践纪实的更多相关文章

  1. Caffe使用step by step:faster-rcnn目标检测matlab代码

    faster-rcnn是MSRA在物体检测最新的研究成果,该研究成果基于RCNN,fast rcnn以及SPPnet,对之前目标检测方法进行改进,faster-rcnn项目地址.首先,faster r ...

  2. faster-rcnn 目标检测 数据集制作

    本文的目标是制作目标检测的数据集 使用的工具是 python + opencv 实现目标 1.批量图片重命名,手动框选图片中的目标,将目标框按照一定格式保存到txt中 图片名格式(批量) .jpg . ...

  3. 目标检测:yolo-v3与faster-rcnn

    一. 算法背景 1. 机器视觉实际应用往往涉及包含多个物体的复杂场景,基于深度卷积神经网络的特征提取器,需要结合其他算法来准确定位多个目标,并进行识别. 2. 工业领域,目标检测算法在安防和质检系统都 ...

  4. Faster-rcnn实现目标检测

      Faster-rcnn实现目标检测 前言:本文浅谈目标检测的概念,发展过程以及RCNN系列的发展.为了实现基于Faster-RCNN算法的目标检测,初步了解了RCNN和Fast-RCNN实现目标检 ...

  5. caffe框架下目标检测——faster-rcnn实战篇操作

    原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1) ...

  6. 使用Faster-Rcnn进行目标检测(实践篇)转载

    原 文链接:http://blog.csdn.net/gavin__zhou/article/details/52052915 原理 上一篇文章,已经说过了,大家可以参考一下,Faster-Rcnn进 ...

  7. 目标检测之Faster-RCNN的pytorch代码详解(模型准备篇)

    十月一的假期转眼就结束了,这个假期带女朋友到处玩了玩,虽然经济仿佛要陷入危机,不过没关系,要是吃不上饭就看书,吃精神粮食也不错,哈哈!开个玩笑,是要收收心好好干活了,继续写Faster-RCNN的代码 ...

  8. 目标检测之Faster-RCNN的pytorch代码详解(模型训练篇)

    本文所用代码gayhub的地址:https://github.com/chenyuntc/simple-faster-rcnn-pytorch  (非本人所写,博文只是解释代码) 好长时间没有发博客了 ...

  9. 深度学习笔记之使用Faster-Rcnn进行目标检测 (原理篇)

    不多说,直接上干货! Object Detection发展介绍 Faster rcnn是用来解决计算机视觉(CV)领域中Object Detection的问题的.经典的解决方案是使用: SS(sele ...

随机推荐

  1. 如何解决VC "应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe"问题

    引用链接 http://blog.csdn.net/pizi0475/article/details/7790992 应用程序事件日志中: “C:\windows\system32\test.exe” ...

  2. bzoj 4177 Mike的农场

    bzoj 4177 Mike的农场 思维有些江化了,一上来就想费用流做法,但其实就是个最小割啊. 考虑先将所有的收益拿到,再减去不能拿的以及三元组 \((i,j,k)\) 产生的代价.即,先让 \(a ...

  3. NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

    NET Core 实战:使用 NLog 将日志信息记录到 MongoDB https://www.cnblogs.com/danvic712/p/10226557.html ASP.NET Core ...

  4. Objective-C教程备忘单

    终极版本的Objective-C教程备忘单帮助你进行iOS开发. 想开始创建你的第一个iOS应用程序么?那么看一下这篇很棒的教程吧:Create your first iOS 7 Hello Worl ...

  5. LG2831 愤怒的小鸟

    题意 分析 看n的范围只有18,考虑状压dp. 用\(f(s)\)表示过集合s中的点所需最小的抛物线数量. 然后枚举点对算抛物线,判断其他点是否在抛物线上来转移. 细节 判断能否构成抛物线只需要判断斜 ...

  6. streamsets 丢踢无关数据

    对于不需要的数据,streamsets 可以方便的设置丢踢,我们可以通过定义require 字段或者前置条件进行配置 require(必须字段) 必须字段是必须存在一条record 中的,对于不存在的 ...

  7. graphql 文档 docker 镜像

    因为一些原因 graphql 的官方文档无法查看,后者查看不能是方便,所以在官方github 的文档基础上添加了容器构建, 方便进行查看,对于公司内部使用学习会比较好 原理 很简单,openresty ...

  8. 什么是Spark(四)运算过程中的黑科技

    Spark在运算过程中提供了一套完整的机制用来提高效率. 1. 用于收集信息的Accumulator,自带增量,用于spark全局收集数据:共享数据: 2. 用于提高传输速率的broadcast机制: ...

  9. Phonegap 工作原理

    1.Phonegap是什么 PhoneGap 是一个基于HTML和JavaScript的应用开发平台,使用它可以构建本地应用.你可以把PhoneGap看作一个正方形的web view containe ...

  10. erp中三大订单CO、PO、MO

    ERP即 企业资源计划 (Enterprise Resource Planning),由美国 Gartner Group 公司于1990年提出. ERP系统是指建立在信息技术基础上,以系统化的管理思想 ...