目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速

先上图啊~


图中看的出来,我自定义了三种 目标:1、卤鸭掌,2、蘑菇力 3、炫迈

FPS8.9-13  根据GPU的不同而处理效果不同,1080ti可达到25-30fps

现实步骤如下:

1、下载darknet-master ()如果您访问受限制或者下载太慢,可以由此链接下载

2、选取正确的cuda9.1和cudnn7.0并下载(nivda官网开发者社区有,不过cudnn7.0的下载界面在维护,百度一下,资源就有)

这里我选取的版本为

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第1张图片

3、安装cuda9.1,除非高手,否则请务必按照默认路径安装

4、将cudnn7.0压缩包解压后的文件复制到cuda9.1安装目录的对应位置。

即将解压后的文件夹中的cndnn64_7.dll、cudnn.h、cudnn.lib分别复制到

C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin

C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include

C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\x64


5、配置cudnn在windows的环境变量

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第2张图片


6、下载安装opencv3.4.0 winpack版(注意:3.4.1会存在bug,不推荐使用,可以使用较低版本)并解压安装到c盘 下,命名为Opencv,如果你安装正确,应当在c盘下看到与我相似的目录,如下图

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第3张图片


7、对darknet进行编译,在步骤1中下载解压得到的文件夹中打开build文件夹

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第4张图片


再进入到下图所示目录

进入到darknet目录之后打开.vcxproj文件或者.sln文件 如果你的vs不是vs2015,而是更高版本的2017,打开时会提示两个是否升级的提示框, 本千万别点升级(当然,前提是在vs2017中安装好2015版本的工具集v140),否则会出现巨多错误。另外注意,我们用到了GPU所以不能选择_no_gpu的版本

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第5张图片

然后你需要找到自己所对应版本的oepncv的相关几个dll文件,----------------------------------------------------------------------opencv_world320.dll and opencv_ffmpeg320_64.dll (or opencv_world340.dll and opencv_ffmpeg340_64.dll) in C:\opencv_3.0\opencv\build\x64\vc14\bin and put it near with darknet.exe

复制到darknet-master2\darknet-master\build\darknet\x64这个目录中去,因为这个目录默认是darknet.exe产生的位置



接下来 配置属性表以配置包含opencv附加库目录、cudnn包含头文件等等。方法在github的截图如下,我就不翻译了,偷个懒,好开心~

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第6张图片

唯一要注意的地方,是把红框中的两处改为自己opencv版本的路径

8.进行build ,生成 exe文件 

9.对自己的样本图片进行标注 标注的目标是得到一个 包含目标物体图片样本 的txt描述文件 去 “喂”给神经网络, 这个txt描述文件包含的内容有: 目标的高度、宽度 ;目标所在的照片的高度、宽度,

就是这四项 :

当然,这四项都是以比例的方式出现的 ,计算公示如下: 

= /  or  = /

这样,我们为每一个样本照片 都创建一个 txt描述文件,我们需要保证txt文件和照片同名,比如:有一个样本照片为img1.jpg,那么你就需要在你的另一个文件夹里创建一个 名为img1.txt的文件。如果你为每个照片都做了这样的操作, 你会 得到和我类似的一个文件夹 ,如下所示:


目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第7张图片

那么,这些 txt文件是如何得到的呢?

我是这样做的, 用一个比较普遍的标注工具 叫 LabelImg

用它,我们可以将每个照片中的目标信息提取出来,提取出来之后会得到一个xml文件 ,如下图所示

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第8张图片

那么,这个xml包含了我们所需的txt文件中的一切, 那么我们需要做的就是用python 快速准确地将这个 xml文件中的信息提取,并写入到同名的txt文件中去,python 代码如下:

有三个py文件组成,三个文件如下图所示

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第9张图片

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第10张图片

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第11张图片

目标检测 yolov3 自定义目标检测 win10+vs2017+gpu加速_第12张图片

你可能感兴趣的:(yolov3,yolo,深度学习,自定义目标检测,目标检测)