欢迎来到网际学院,让您的头脑满载而归!

Windows下 YOLOv3配置教程

发布日期:2018-12-25 08:53:58 作者:管理员 阅读:489

Date:         2018-04-05YOLOv3翻译yolo官网目录硬件环境安装教程下载darknet修改darknet.vcxproj修改dark

Date:         2018-04-05YOLOv3翻译yolo官网目录硬件环境安装教程下载darknet修改darknet.vcxproj修改darknet.sln打开darknet.sln准备测试YOLOv3图像目标检测YOLOv3视频目标检测YOLOv2视频目标检测YOLOv2-Tiny-VOC视频目标检测安装Yolo_mark参考系统环境Win10Visual Studio 2013CUDA 8.0cudnn 5.1OpenCV3.3.1()和OpenCV2.4.13(x64)安装教程下载darknet打开cmd命令提示符,输入下述命令,下载AlexeyAB/darknet(假设你已经安装好git环境)git clone https://github.com/AlexeyAB/darknet然后根据下图进行操作修改darknet.vcxproj打开darknet/build/darknet/darknet.vcxproj,将14全部替换为12打开darknet.vcxproj,将CUDA 9.1全部替换为CUDA 8.0修改OpenCV路径,其中x64版本最重要,至于x86版本属于可选。因为建议使用x64版本对于x64版本将C:\opencv_3.0\opencv\build\include替换为D:\OpenCV\OpenCV3.3.1\OpenCV3.3.1_Contrib_VS2013_x64\install\include对于x86版本将C:\opencv_2.4.9\opencv\build\include替换为D:\OpenCV\OpenCV2.4.9\OpenCV2.4.9_VS2013\install\include将C:\opencv_2.4.9\opencv\build\x86\vc12\lib替换为:D:\OpenCV\OpenCV2.4.9\OpenCV2.4.9_VS2013\install\x86\vc12\lib将compute_52,sm_52替换为compute_50,sm_50(不知道可行不可行,不知道必要不必要)改好后,部分代码如下修改darknet.sln将Visual Studio 2015的属性修改为Visual Studio 2013(当前VS版本)的属性修改为:打开darknet.sln以防止万一,加上OpenCV3.3.1的属性表将当前解决方案设置为Release x64配置好OpenCV路径后,随便打开几个.c文件快速浏览一下编译darknet工程编译过程中,你会发现此时可能出现下述问题,如果没有出现,那就基本直接编译成功。如果发生问题,可以参考下述解决方案:注:我是自己用CMake和Visual Studio 2013重新编译的OpenCV,所以.lib和.dll命名与官方提供的动态链接库名称不一样,如果你直接用官方编译好的库,那么可以省很多事。查找world关键字,发现在detector.c中,有将#ifndef CV_VERSION_EPOCH到#endif注释掉,因为我已经添加好了属性表,所以不用在程序中显式声明使用哪个lib。这里其实取决你的OpenCV是如何配置的,如果是使用官方提供编译好的OpenCV,那么就不需要改这些内容了;如果是自己用CMake编译的,那么请参考刚刚描述的内容。然后重新编译接下来,就是见证奇迹的时刻:上述是x64版本的darknet配置过程,如果你想配置x86版本,其实步骤类似,只需要将属性表替换即可。这里可以看一下我是如何继续配置x86版本的。同理,添加x86版本的OpenCV属性表,我这里使用的是OpenCV2.4.9 x86,并将当前工程的状态切换成Release x86:然后编译当前x86工程接下来,就是再次见证奇迹的时刻但...还是遇到问题了原来我电脑里没有x86版的cublas.lib,这个就尴尬了,但这个不重要,其实我已经配置好了x64版本,这个x86只是尝试。如果你依旧坚持,那么可以下载x86版本的cublas.lib,或者你电脑里本身就有,这就更美滋滋了。再看一下darknet\build\darknet\x64文件夹,哇塞,那个darknet.exe就是你梦寐以求的!!!准备下载yolov3.weights链接1(百度云):链接:https://pan.baidu.com/s/1OsuaURd2jjA9_fX50w651g 密码:chmq连接2(官网):https://pjreddie.com/media/files/yolov3.weights测试打开cmd命令提示符,切换到F:\Projects\Object Detection\YOLO\Darknet\Linux_Windows\darknet\build\darknet\x64路径下YOLOv3图像目标检测输入:darknet.exe detector test data\coco.data yolov3.cfg .\weights\yolov3.weightsF:\Projects\Object Detection\YOLO\Darknet\Linux_Windows\darknet\build\darknet\x64\data\dog.jpgF:\Projects\Object Detection\YOLO\Darknet\Linux_Windows\darknet\build\darknet\x64\data\giraffe.jpg上述是针对多幅图像的检测YOLOv3视频目标检测接下来,介绍一下使用网络摄像头来检测的命令darknet.exe detector demo data\coco.data yolov3.cfg weights\yolov3.weightsdarknet.exe detector demo data\coco.data cfg\yolov3.cfg weights\yolov3.weights -c 0上述两种命令都不能正常运行,出现下述问题:上github查询该问题,发现有一些人和我一样,使用网络摄像头检测时,出现问题:https://github.com/AlexeyAB/darknet/issues/551对当前问题.exe进行调试,发现断点调到http_stream.cpp中的第217行的cpp_cap.isOpenCV()处(和上述github问题吻合)。其实就是get_webcam_frame函数的形参传入值有问题!仔细查看变量状态,此时cap有问题,居然是NULL???那么怎么修改呢???问题:摄像头亮着,但程序崩溃到底怎么解决呢?这里我们参考下述方法,使用OpenCV2.4.13我们将darknet文件夹复制一份,重命名为darknet-opencv2此时,尝试将已添加的OpenCV3.3.1属性表删除,添加OpenCV2.4.13(x64)版本的属性表;再将darknet工程属性里的OpenCV include和lib路径进行修改再对源码进行编译然后对打开darknet解决方案,对工程进行重新编译—>生成。出现下述情况,即表示编译成功!接下来,打开cmd命令提示符,切换至darknet-opencv2\build\darknet\x64路径下,输入使用网络摄像头来检测的命令darknet.exe detector demo data\coco.data yolov3.cfg weights\yolov3.weightsdarknet.exe detector demo data\coco.data cfg\yolov3.cfg weights\yolov3.weights -c 0YOLOv2视频目标检测.\darknet.exe detector demo cfg\coco.data cfg\yolov2.cfg weights\yolov2.weights注:奇怪,为什么YOLOv2的FPS比YOLOv3的还高YOLOv2-Tiny-VOC视频目标检测.\darknet.exe detector demo cfg\voc.data cfg\yolov2-tiny-voc.cfg weights\yolov2-tiny-voc.weights注:FPS虽然很高,但这检测率太差了...安装Yolo_markhttps://github.com/AlexeyAB/Yolo_markgit clone https://github.com/AlexeyAB/Yolo_mark打开yolo_mark.sln,将环境设置为v120(可选)删掉不必要的opencv环境路径添加OpenCV3的属性表将main.cpp下述内容修改:但编译时居然还会出错,但机智的Amusi直接对yolo_mark的Release x64进行了OpenCV重新配置再次编译进入Yolo_mark\x64\Release文件夹下,双击yolo_mark.cmd,即可看见参考[1]darnet官网(只支持Linux):https://github.com/pjreddie/darknet[2]yolo官网:https://pjreddie.com/darknet/yolo/[3]【参考】darnet fork版(支持Linux和Windows):https://github.com/AlexeyAB/darknet[4]知乎YOLOv3:https://www.zhihu.com/question/269909535/answer/351658032[5]CSDN:https://blog.csdn.net/lilai619/article/details/79695109[6]YOLOv3翻译:https://blog.csdn.net/amusi1994/article/details/79698890
---------------------
作者:阿木寺
来源:CSDN
原文:https://blog.csdn.net/amusi1994/article/details/80261735
版权声明:本文为博主原创文章,转载请附上博文链接!

Copyright oneie ©2014-2017 All Rights Reserved. 所有资料来源于互联网对相关版权责任概不负责。如发现侵犯了您的版权请与我们联系。 网际学院 版权所有
免责声明  商务合作及投稿请联系 QQ:86662817