Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%

上周在Windows 10+CUDA10.1的环境下,安装成功dlib19.17,并且跑了一个Python测试程序,480*360的图片上,三个人脸,最快运行时间:0.047427秒,相当于20帧/秒(由于YOLO v3测试程序是C++编写的EXE,因此只取了最快时间进行比较,没有使用Python测试程序的平均时间0.061795秒,相当于16帧/秒)。

在HP笔记本上安装Anaconda3+CUDA10.1+dlib19.17的过程请参考:

https://blog.csdn.net/weixin_41943311/article/details/91866987

在opencv3.4.1+dlib19.17环境中测试人脸识别请参考:

https://blog.csdn.net/weixin_41943311/article/details/91983263

晚上听高手说,YOLO v3更快。于是,今天在Windows 10+CUDA10.1的环境下跑一跑YOLO v3试试,用同样的480*360的图片,三个人脸,在缺省的配置条件下,运行时间:0.043134秒,大约比dlib19.17快10%。

如果直接将PyCharm集成环境中调用dlib19.17的Python程序与YOLO v3的darknet.exe的运行速度进行对比,则YOLO v3的速度大约比dlib19.17快30%。

因为YOLO v3是编译成EXE文件在Windows上运行,因此相关软件的安装和配置,与之前Anaconda3安装的Python3.6.7环境和opencv3.4.1不会发生冲突。

我的HP笔记本(带GPU:NVIDIA GeForce GTX 1060 with Max-Q Design)已经安装了Microsoft Visual Studio 2015 update3和CUDA10.1,相关的安装过程这里就不再重复,感兴趣的同学可以参考前面的文章。下面的主要工作是安装opencv3.4.0、编译YOLO v3的主程序darknet.exe并进行一个简单的测试。

(1)安装opencv 3.4.0

下载地址:https://opencv.org/releases/

安装文件:opencv-3.4.0-vc14_vc15.exe

说明:因为opencv3.41在编译时会遇到很多问题,所以这里只安装opencv3.4.0。更高版本我没有测试过,不清楚兼容性如何。

选择目录安装完软件以后,设置一下环境变量(系统变量):

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第1张图片

(2)编译darknet.exe

YOLO v3下载地址:https://github.com/AlexeyAB/darknet

安装文件:darknet-master.zip

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第2张图片

将下载的文件包解压缩,使用Microsoft Visual Studio 2015 update3编译。

以下内容参考:https://www.cnblogs.com/songhouhou/p/10805976.html

(2.1)修改darknet.vcxproj文件

进入darknet-master\build\darknet目录,用记事本打开darknet.vcxproj,将所有CUDA 10.0修改为自己对应的CUDA版本,这里使用CUDA 10.1,故改为10.1。(共有两处需要修改)

(2.2)打开darknet.sln

(2.2.1)将项目修改为Release x64

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第3张图片

(2.2.2)配置包含目录 + 库目录 + 链接器

 包含目录:在darknet项目上点击鼠标右键->属性,弹出如下界面:然后VC++目录-->包含目录-->编辑

添加的目录:...\opencv\build\include(...代表opencv的安装路径,下文同理)

...\opencv\build\include\opencv

...\opencv\build\include\opencv2

https://img2018.cnblogs.com/blog/1576802/201905/1576802-20190503181430638-2059777769.png

库目录:方法与包含目录类似,添加的目录为:...\opencv\build\x64\vc14\lib

https://img2018.cnblogs.com/blog/1576802/201905/1576802-20190503181518180-1827206277.png

链接器:添加目录...\opencv\build\x64\vc14\lib下库的名字:opencv_world340.lib

https://img2018.cnblogs.com/blog/1576802/201905/1576802-20190503181735318-2029250684.png

(2.2.3)右键darknet,选择属性,进入CUDA C/C++中的Code Generation,删掉compute_75,sm_75(此步极为关键,要不然必出错)

https://img2018.cnblogs.com/blog/1576802/201905/1576802-20190503181904067-258639938.png

(2.3)右键darknet,选择生成

编译成功,会在darknet\build\darknet\x64下得到darknet.exe。

(3)做一下人脸识别的测试

(3.1)下载yolov3.weights

下载地址:https://pjreddie.com/media/files/yolov3.weights

文件:yolo3.weights

将yolo3.weights复制到darknet.exe所在的工作目录下(如:F:\AI\darknet-master\build\darknet\x64)。

(3.2)复制opencv3.4.0的动态链接库

把opencv的安装目录(如:F:\AI\opencv\build\x64\vc14\bin)下的opencv_world340.dll 和 opencv_ffmpeg340_64.dll 复制到 darknet.exe所在的工作目录下(如:F:\AI\darknet-master\build\darknet\x64)。

(3.3)测试

在darknet\build\darknet\x64下按住shift键,点击鼠标右键选择“在此处打开Powershell 窗口(s)”

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第4张图片

在命令行输入 .\darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

如果看到以下结果,说明你成功的配好了YOLO v3:

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第5张图片

我们把狗狗的图片(F:\AI\darknet-master\build\darknet\x64\data\dog.jpg)修改为上周用于dlib19.17测试的图片,480*360的图片,三个人脸,在缺省的配置条件下,最快运行时间:0.043134秒,简单测算一下,大约比dlib19.17快10%。

如果直接将PyCharm集成环境中调用dlib19.17的Python程序与YOLO v3的darknet.exe的运行速度进行对比,则YOLO v3的速度大约比dlib19.17快30%。

测试记录如下(单位:毫秒):

(1)45.824000,(2)43.965000,(3)43.614000,(4)44.004000,(5)43.635000,(6)43.876000,(7)43.166000,(8)43.134000,(9)43.916000,(10)43.492000。

平均值为:43.8626毫秒,即:0.0438626秒;最快运行时间为:43.134毫秒,即:0.043134秒。

Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%_第6张图片

(完)

你可能感兴趣的:(Windows 10+ CUDA10.1,安装YOLO v3(编译生成darknet.exe),简单测试的结果比dlib19.17快约10%)