zoukankan      html  css  js  c++  java
  • Win10+YOLOv3完整安装过程(亲测可运行)

    最近了解并尝试在Win10安装YOLOv3,参考了十几篇文章,发现每个人都有自己的安装方式,最初尝试用cmake编译,虽然安装完成,但无法使用GPU,坑非常多,经2天努力终于安装成功,分享并记录自己的安装过程,供大家参考。

    系统:Win10

    显卡:GeForce RTX2070 with Max-Q Design

    其它:CUDA10.2,cuDNN7.6.5,VS2019,OpenCV3.4.0(opencv版本不能高于3.4.0)

    1、显卡驱动下载和安装

    打开NVIDIA官网驱动程序下载页面,选择适合你显卡的驱动,下载并安装。

     

    选择自定义安装:

    登录账户,没有就注册一个:

    点击“跳过”:

    确认“NVIDIA Studio Driver”安装成功。

    2、VS2019下载和安装

    切记,先安装VS2019,再安装CUDA。

    微软官方下载VS2019社区版

    选择“.Net桌面开发”、“使用C++的桌面开发”、“通用Windwos平台开发”三项,点击右下角安装:

    安装成功后,根据提示重启电脑。

    3、CUDA的下载和安装

    点击:https://developer.nvidia.com/cuda-toolkit-archive,选择cuda10.2版本

     

    下载完成后,双击打开,开始安装。

    选择自定义安装:

    全部勾选,点击下一步:

    使用默认的安装路径:

    安装成功后,会看到CUDA向已安装的Visual Studio2019中写入了Nsight工具,所以我才强调必须先安装CS2019,再安装CUDA。

    3.1、配置CUDA环境变量

    右键“我的电脑”选择属性,点击“高级系统设置”->“环境变量”。

    可以看到CUDA默认写入了2条环境变量信息,但这些还不够,点击新建,添加以下环境变量:

     

    变量名:CUDA_BIN_PATH
    变量值:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.2in
    变量名:CUDA_LIB_PATH
    变量值:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.2libx64
    变量名:CUDA_SDK_BIN_PATH
    变量值:C:ProgramDataNVIDIA CorporationCUDA Samplesv10.2inwin64
    变量名:CUDA_SDK_LIB_PATH
    变量值:C:ProgramDataNVIDIA CorporationCUDA Samplesv10.2commonlibx64
    变量名:CUDA_SDK_PATH
    变量值:C:ProgramDataNVIDIA CorporationCUDA Samplesv10.2
    

     根据你CUDA的实际安装路径配置变量值,但我建议你安装CUDA时使用默认的路径,避免出现各种奇葩问题。

    然后在系统变量中找到Path,双击打开并加入以下变量值:

    %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.2libx64
    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.2include
    C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.2extrasCUPTIlib64
    C:ProgramDataNVIDIA CorporationCUDA Samplesv10.2inwin64
    C:ProgramDataNVIDIA CorporationCUDA Samplesv10.2commonlibx64
    

     

    然后打开控制台,输入:nvcc -V

    如果输出CUDA版本等相关信息,说明CUDA安装成功。

    4、CUDNN下载和安装

    点击:https://developer.nvidia.com/rdp/cudnn-download 注册个账户,然后下载Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2

    下载完成后,解压cudnn-10.2-windows10-x64-v7.6.5.32.zip,将解压后的文件,覆盖到CUDA的安装目录下,如图:

    5、OpenCV下载和安装

    点击:https://opencv.org/opencv-3-4/ 下载3.4.0版本的OpenCV。

    下载完成后双击打开,该exe是个自解压程序,选择一个解压目录,解压完成后,将解压出来的opencv文件夹复制到c盘根目录下。

    然后在环境变量Path中加入以下值:

    C:opencvuildx64vc15in
    

    6、YOLO下载和编译

    点击https://github.com/AlexeyAB/darknet 下载YOLO。

     

    下载到本地后,解压,将darknet-master重命名为darknet,保存到D盘。

    6.1、复制编译依赖文件

    c:/opencv/build/x64/vc15/bin目录下的opencv_ffmpeg340_64.dll、opencv_world340.dll复制到D:darknetuilddarknetx64目录下:

    进入D:darknetuilddarknet目录,用VS2019打开darknet.sln,首次打开可能会出现以下错误:

    没关系,确定后,关闭VS2019,重新用VS2019打开darknet.sln即可,打开后此处选择Release X64。

    右键darknet工程,选择属性。

    将“常规”下的Windows SDK版本选为10.0,将平台工具集选为Visual Studio2019(v142),点击应用。

    然后点击VC++目录,编辑包含目录,将以下路径添加到包含目录中:

    C:opencvuildincludeopencv2
    C:opencvuildincludeopencv
    C:opencvuildinclude
    

     如果你的opencv路径和我不一样,请修改成你自己的路径。

    然后点击库目录,把以下内容添加到库目录中:

    C:opencvuildx64vc14lib
    

     

    然后点击链接器->输入,在附加依赖项中添加:

    C:opencvuildx64vc14libopencv_world340.lib
    

     

    然后点击确定保存,并退出VS2019。

    用记事本或文本编辑器打开darknet.vcxproj。

    将CUDA 10.0,替换为CUDA 10.2,共两处

    用VS2019打开darknet.sln,再次确保此处为Release X64,然后右键点击项目选择生成。

    编译过程可能会出现很多警告,但只要最终提示生成:成功1个,失败0个,则表示编译成功。

    6.2、下载YOLOv3预训练权重文件

    进入https://pjreddie.com/media/files/yolov3.weights 下载yolov3.weights文件,再将yolov3.weights放在D:darknetuilddarknetx64目录下。

    如果下载慢,选择迅雷下载。

    6.3、运行YOLO

    控制台进入D:darknetuilddarknetx64目录,输入命令:

    darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

    执行过程,如果出现CUDA版本信息,说明YOLO可以通过GPU来进行目标识别了。

    7、注意事项

    如果先安装的CUDA,后安装的VS2019,可能会出现无法使用GPU进行训练和识别的问题,可以将CUDA的安装程序“cuda_10.2.89_441.22_win10.exe”解压,然后在解压后的文件夹中找到CUDAVisualStudioIntegrationextrasvisual_studio_integrationMSBuildExtensions目录,将目录中的四个文件复制到C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildMicrosoftVCv160BuildCustomizations目录下,然后重新编译工程。

  • 相关阅读:
    IOS 学习笔记(2) 视图UINavigationController
    [转] IOS中AppDelegate中的生命周期事件的调用条件
    IOS 学习笔记(1) 视图UIViewController
    IOS 单例模式的学习
    object-c 协议(Protocols)和代理(Delegation)的学习
    object-c 内存管理机制的学习
    Object-c Block的使用及说明
    KVO 的使用和举例
    魔豆电子相框
    魔豆应用开发傻瓜书——helloworld
  • 原文地址:https://www.cnblogs.com/codeit/p/13253449.html
Copyright © 2011-2022 走看看