Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

                                 Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

最近由于项目原因接触到机器视觉方面的知识,在这做个有关使用YOLOv3目标检测实操笔记。以便后续查看。

直接先上点干货看看效果:

YOLOv3经典检测图[dog.jpg]

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

自己找的图和视频检测结果:

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

好了晒完图了,虽然检测结果有瑕疵,但感觉还可以哈- -

下面开始进入主题在Win7/10 Centos下怎么实现这个牛逼的功能!!!

 

一、CentOS7+CPU上的实现步骤:

YOLOv3官网的地址还是要放出来震慑下的:

官网:https://pjreddie.com/darknet/yolo/

在官网上介绍了在Linux{Centos}或者Mac如何使用YOLOv3的步骤:如下图:

照着步骤一步步下来Linux上是可以实现的,不过官网这个是使用CPU来进行检测得到的结果,至于GPU部分并没有说得很清晰,所以后面会说一下如何使用GPU实现检测的;

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

使用购买的腾讯云服务器Centos7环境下做的测试,结果如下:

git clone下来的目录文件

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

其中yolov3.weight权重文件地址如下:

https://pjreddie.com/media/files/yolov3.weights

 

如使用Tiny YOLOv3版本下载权重文件地址如下:

https://pjreddie.com/media/files/yolov3-tiny.weights

 

存放的要检测的数据放在darket/data/目录下 可放被检测的图片和视频文件。

dog.jpg 就是上面第一张被检测的经典源文件。- -

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

执行检测命令及结果如下

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

检测的结果体现方式:名称 : 相识度 dog: 100% truck:92% bicycle:99%

检测结果图片所在的路径:darket/ predictions.jpg;每次检测不同的源图片结果都会覆盖掉之前的【这个覆盖的问题后面看能否解决,先记录着】

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

因为购买的腾讯云上Centos服务器不带有GPU,所以GPU加速部分使用了Win系统来测试;下面是记录的操作步骤。

 

二、Win10/7系统 + CPU/【GPU】上的实现步骤

Win系统上使用AlexeyAB大神优化的YOLOv3开源项目之作darknet,献上链接:https://github.com/AlexeyAB/darknet#how-to-use

准备的安装依赖项软件:

(1)CMake https://cmake.org/download/

(2)OpenCV https://opencv.org/releases/

(3)Visual Studio https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

(4)NVIDIA驱动

4.1 CUDA:https://developer.nvidia.com/cuda-toolkit-archive

4.2 CUDNN:https://developer.nvidia.com/cuDNN

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

(5)下载的OpenCV解压文件夹直接放入C盘目录:

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

配置环境变量如下:

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

在Path下添加OpenCv的 bin 、lib、darket的x64 路径

 

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

1、CPU实现部分:

将git clone 下来的AlexeyAB项目解压到电脑任意目录。如下

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

打开CMake软件配置如下,将选中darket目录下。点击Configure

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

运行结果如下:继续点击"Generate"按钮,最后点击"Open Project"按钮,程序会默认打开Visual Studio工具

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

选择“Release”+“x64”,右键点击“ALL_BUILD”,在右键菜单中,选择“生成”,结果如下图所示:(这里前提先把Visual Studio 安装好)

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

右键点击“INSTALL”,在右键菜单中,选择“生成”,如下图所示

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

两次运行都是编译成功的话会在darket目录下生成darket.exe执行程序,这样我们就可以用于目标检测了。需要检测的图片和视频一般放在data目录下

 

检测目标使用方法:cmd命令切换到darknet目录下

本地图片:

darknet.exe detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现

 

本地视频:

darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights data/xxx.mp4

视频检测的结果另保存

darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output data/xxx.mp4 -out_filename result.mp4

-out_filename result.mp4:另保存视频的名字

 

如果电脑性能差的话可以使用微小模型yolov3-tiny,FPS会好很多,但检测精度就会损失;

图片:darknet.exe detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg

视频:darknet.exe detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights data/xxx.mp4

 

检测的视频结果博客貌似不能放上去。我将放置哔哩和腾讯上观看。

谢谢,欢迎留言交流学习!

 

下篇将记录手机(或摄像头)RTMP/RTSP 实时视频流检测