Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现
Win7/10/Centos7各平台下YOLOv3目标检测CPU+GPU的实现
最近由于项目原因接触到机器视觉方面的知识,在这做个有关使用YOLOv3目标检测实操笔记。以便后续查看。
直接先上点干货看看效果:
YOLOv3经典检测图[dog.jpg]
自己找的图和视频检测结果:
好了晒完图了,虽然检测结果有瑕疵,但感觉还可以哈- -
下面开始进入主题在Win7/10 Centos下怎么实现这个牛逼的功能!!!
一、CentOS7+CPU上的实现步骤:
YOLOv3官网的地址还是要放出来震慑下的:
官网:https://pjreddie.com/darknet/yolo/
在官网上介绍了在Linux{Centos}或者Mac如何使用YOLOv3的步骤:如下图:
照着步骤一步步下来Linux上是可以实现的,不过官网这个是使用CPU来进行检测得到的结果,至于GPU部分并没有说得很清晰,所以后面会说一下如何使用GPU实现检测的;
使用购买的腾讯云服务器Centos7环境下做的测试,结果如下:
git clone下来的目录文件
其中yolov3.weight权重文件地址如下:
https://pjreddie.com/media/files/yolov3.weights
如使用Tiny YOLOv3版本下载权重文件地址如下:
https://pjreddie.com/media/files/yolov3-tiny.weights
存放的要检测的数据放在darket/data/目录下 可放被检测的图片和视频文件。
dog.jpg 就是上面第一张被检测的经典源文件。- -
执行检测命令及结果如下
检测的结果体现方式:名称 : 相识度 dog: 100% truck:92% bicycle:99%
检测结果图片所在的路径:darket/ predictions.jpg;每次检测不同的源图片结果都会覆盖掉之前的【这个覆盖的问题后面看能否解决,先记录着】
因为购买的腾讯云上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
(5)下载的OpenCV解压文件夹直接放入C盘目录:
配置环境变量如下:
在Path下添加OpenCv的 bin 、lib、darket的x64 路径
1、CPU实现部分:
将git clone 下来的AlexeyAB项目解压到电脑任意目录。如下
打开CMake软件配置如下,将选中darket目录下。点击Configure
运行结果如下:继续点击"Generate"按钮,最后点击"Open Project"按钮,程序会默认打开Visual Studio工具
选择“Release”+“x64”,右键点击“ALL_BUILD”,在右键菜单中,选择“生成”,结果如下图所示:(这里前提先把Visual Studio 安装好)
右键点击“INSTALL”,在右键菜单中,选择“生成”,如下图所示
两次运行都是编译成功的话会在darket目录下生成darket.exe执行程序,这样我们就可以用于目标检测了。需要检测的图片和视频一般放在data目录下
检测目标使用方法:cmd命令切换到darknet目录下
本地图片:
darknet.exe detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
本地视频:
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 实时视频流检测