部署环境:win10 +CUDA 10.0 + vs2017 + opencv 3.4.0 

代码版本是 https://github.com/AlexeyAB/darknet  

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1、初始准备

  (1)下载代码

  (2)确保 VS2017 安装了 VC++ v140工具集,如果没有安装,打开 Visual Studio Installer  ——修改——选中 c++ 在右侧找到 vc++ v140  如下图所示

  win10 下的YOLO v3 的编译与使用 人工智能 第1张

2、修改项目文件

  (1)如果环境不是 CUDA10.0 (安装了CUDA9.0等),文本编辑器打开  darknet.vcxproj  搜索 CUDA 10.0 字样 ,一共两处 (CUDA 和 10.0 中间有个空格)将 CUDA 10.0  换成你安装的 CUDA 版本 例如( CUDA 9.0 )

  (2)如果是 CUDA 9.0 ,还需要把  ;compute_75,sm_75   换成   ;compute_70,sm_70  

3、项目配置

  (1)打开 darknet.sln (没有 GPU 的 打开 darknet_no_gpu.sln 前面修改也是修改对应无 GPU 的 vcxproj 项目文件 ) ,第一次打开会提示 重新定向项目 这里 windows sdk  选择 10.0  ,平台工具集选择 无升级    

                win10 下的YOLO v3 的编译与使用 人工智能 第2张

  (2)设置 程序 release X64

    win10 下的YOLO v3 的编译与使用 人工智能 第3张

  (3)右击 darknet ——属性

     a) 确定平台工具集是 V140

      win10 下的YOLO v3 的编译与使用 人工智能 第4张

      b)设置VC++目录(包含目录和库目录),分别设置为 OpenCV 的 安装目录  中的

        C:\opencv\opencv\build\include

        C:\opencv\opencv\build\include\opencv

        C:\opencv\opencv\build\include\opencv2

        和 C:\opencv\opencv\build\x64\vc14

        win10 下的YOLO v3 的编译与使用 人工智能 第5张

      c) 设置链接器 

        链接器——输入——附加依赖项 点开后  直接添加  C:\opencv\opencv\build\x64\vc14 目录中的 lib 文件的名称 (这里是 opencv_world340.lib )

      win10 下的YOLO v3 的编译与使用 人工智能 第6张

      d)分别点击应用和确定

4、开始编译

  (1)darknet项目右击 生成 

  (2)将 C:\opencv\opencv\build\x64\vc14 目录下的 opencv_ffmpeg340_64.dll  和  opencv_world340.dll 复制到  darknet-master\build\darknet\x64  目录下

  (3)几种编译报错的 解决方法

    a )MSB8036 The Windows SDK version 8.1 was not found. 

     解决方法: 这是由于目标版本问题,右击项目 —— 常规——将目标版本选中有的那个(这里是10.0.17763.0)

                        win10 下的YOLO v3 的编译与使用 人工智能 第7张

    b ) MSB4019 未找到导入的项目“***Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.0.targets”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。 darknet \darknet-master\build\darknet\darknet.vcxproj 301

      解决方法:将 NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\visual_studio_integration\MSBuildExtensions  文件夹 中的所有文件 复制到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations 中重新编译即可

    c ) opencv2/core/core.hpp : No such file or directory 

      解决方法:右击项目 —— 将配置改成 release  平台改成 x64 

         win10 下的YOLO v3 的编译与使用 人工智能 第8张

 

5 使用测试

     在源码页面下载yolov3的 yolov3.weights 也可以自己下载其他权重测试

    win10 下的YOLO v3 的编译与使用 人工智能 第9张

    进入 darknet-master\build\darknet\x64  目录 打开命令行 输入  ./darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25

    然后输入图片路径即可检测图片      ( -thresh 0.25  代表检测阈值,概率高于0.25的画框

    win10 下的YOLO v3 的编译与使用 人工智能 第10张

 

      其他 检测命令  

    检测视频 ./darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25 test.MP4

       检测网络像头: ./darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25 相机网络地址

    其他检测可参照 github 网址

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄