我写一下作者的要求以及我自己使用的版本号,–后就是我的版本号。
1.CMake >=3.12: --CMake 3.16.6 https://cmake.org/download/
2.CUDA 10.0: --CUDA 10.0 https://developer.nvidia.com/cuda-toolkit-archive
3.OpenCV >= 2.4: --Opencv3.2.0https://sourceforge.net/projects/opencvlibrary/
4.cuDNN >= 7.0 for CUDA 10.0:–CUDNN 7.6 https://developer.nvidia.com/rdp/cudnn-archive
5.GPU 算力>= 3.0 --我的显卡GTX860M,算力是5.0https://en.wikipedia.org/wiki/CUDA#GPUs_supported
6.MSVC (Visual Studio 2.15、2017、2019)–VS2017 https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community
7.今天的主角Yolo v4的源码:https://github.com/AlexeyAB/darknet.git
这个源码下的很慢,因为是国外的服务器,教大家一个小技巧,自己到码云gitee上使用自己的github账号登录,绑定一下github,进入gitee中,点击右上角的“+”号,再点击“从Github/GitLab导入仓库”,把项目网址输进去,导入就好了,然后用GIT克隆到自己的电脑上就行了,克隆的文件一般在C盘的Users的用户名文件夹下,我的是C:\Users\Administrator,有一个darknet文件夹,就是它了。速度嗖嗖的~~
8.yolov4.weight yolov4的权重文件https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
默认所有的读者有一定的编程基础以及英语阅读能力,安装过程不想讲的太详细,因为按照我的步骤不会出现问题,我遇到的问题会着重讲的。如果按照我的步骤,出现问题(那是不可能的),可以联系我,我尽力帮助大家。还有就是,我不会给我的源码的,地址都给你们了,你们就自己挨个去拿就完事了(懒惰的人不配得到我的帮助),所有需要的都告诉你们了,没有别的包或者文件要下载之类的了。
1.CMake3.16.6:直接安装,一路默认,中间有一个窗口会问你是否需要把CMake添加到你的环境变量中,可选可不选,害怕出错的就选上,反正我没选~
2.CUDA10.0:到官网下载10.0的版本,别看你的显卡版本支持不支持了,我GTX860M笔记本都跑起来了,难道还能比我的显卡还辣鸡的吗???GPU算力跟我(5)一样的,直接装10.0,基本都支持的,。
安装过程有精简和自定义两种,懒人就选精简,一路默认;不想多装包的就选自定义,根据自己需求选包,网上教程一堆,我就不详细说了(因为我选的精简)。安装的时候,CUDA会自动把自己配置到环境变量中的,不用手动添加。
3.Opencv 3.2.0:官网下载安装3.X最新的吧,想下载我这个版本的也行,尽量下载比较高一点的版本吧,因为我在编译时有一个opencv的警告,不过不影响我这次的yolov4的测试;不过最好不要下载4.X的Opencv版本太新了,懂的人都懂,不懂的人按我说的做就完事了。安装完成后,手动配置Opencv的环境变量,注意,跟你以前的配置路径可能不一样,是把lib(D:\opencv\build\x64\vc15\lib)文件配置到环境变量中,不是bin文件,跟我们学习Opencv的时候,配置的路径不一样。新建一个系统变量叫做OpenCV_DIR ,把你的路径添加进去。
4.CUDNN 7.6 :官网下载解压,是一个文件夹,把解压的文件夹中的所有文件夹,复制到CUDA的安装目录下,就是NVIDIA GPU Computing Toolkit的CUDA的v10.0的文件夹下,我的路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 如果安装CUDA没有自定义安装路径的话,跟我的路径是基本一样的。
5.VS2017 :官网上下载安装,选择包的时候,勾选用于C++的桌面开发那一项,其他的根据自己需求勾选,然后就是漫长等待完成。
1.打开CMake-gui,添加源文件地址和编译文件地址,全部都添加darknet文件夹,就是yolov4的源码文件。我的是C:/Users/Administrator/darknet
2.点击Configure按钮,弹出一个框,第一项选择你下载的VS版本,我的是VS2017;第二项选择X64;第三项跳过,第四项选择Use default native compilers ,默认的编译,其他的特殊编译,交叉编译没试过,有兴趣的同学可以试试。
点击Configure按钮后,出现一片红色的,再点击一下Configure按钮,所有红色消失,并且控制台出现Configure done;(这里我有个小问题就是,编译完成后,编译没有报错,控制台也没有报错,不过有一个好像是警告之类的,大概意思说我的darknet是好的,但是uselib_track不能用;还有就是请从具有CUDA支持的源代码重新生成OpenCV以启用它);然后点击Generate按钮,出现Generate done后,点击Open Project,CMake会打开VS2017,
3.在VS2017中,选择Release和X64,再点击生成菜单栏的生成,点击生成解决方案,然后默默等待控制台不要报错,完成后,跟我所有的版本一样的同学,会有5个完成和一个跳过没有报错,如果出现6个完成,没有报错,没有跳过的同学(我就很羡慕)。我觉得应该和我编译时的那个警告有关系,不过不影响我们测试好吧,最后是能玩转起来的。
1.进入到darknet文件夹下,有一个Release文件夹,打开,把里面的darknet.exe复制出来,复制到darknet文件夹下build的darknet的x64文件夹下(我的是C:\Users\Administrator\darknet\build\darknet\x64),然后把权重文件也复制到这里,也就是我们的yolov4.weight文件
2.Win+R 打开终端,cd到这个文件夹下C:\Users\Administrator\darknet\build\darknet\x64 ,或者直接在这个文件夹下按住Shift+右键,选择“在此文件夹打开Powershell窗口” ,准备我们的测试。这个是图片的检测,先输入命令
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
然后会让你输入图片的地址,在x64文件夹下有几张图片,我们输入dog.jpg 后,就会出现结果,这样就出现了我们可爱的框框了~~~
3.如果想要检测视频的话,把视频复制到x64文件夹下,在打开终端,cd到C:\Users\Administrator\darknet\build\darknet\x64文件夹下,输入以下代码就可以检测视频了,注意把test.mp4修改为自己的视频名字,或者把你的视频名字改为test,就此就大功告成了。
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4
yolov4的准确率确实要比yolov3的要高,因为我们用过yolov3的都知道,用这张图片检测的话,只有三个框,不会检测出右上角的垃圾桶,这次yolov4检测出4个框,说明召回率又提高了;至于速度,暂时不提(本人笔记本跑yolov3检测视频,FPS平均是8.1,跑yolov4检测视频,FPS平均是4.9),都与作者的30,40,50,60,相差甚远好吧。好了,这次就分享到这,以后会继续更新,如何制作样本,以及训练我们的数据的。感谢各位的阅读,觉得有用的就关注加收藏哦~~