QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》

一、运行环境

  • win 10
  • vs 2017(若是vs 2019,则需要安装更高版本的qt,可自行百度安装配置即可)
  • qt 5.9.x
  • opencv >= 3.0  (optional)
  • cuda >= 10.0(optional)
  • cudnn >= 7.0 for cuda 10(optional)

     黑体为必要的运行环境。

二、下载安装Qt 5.9.x

  • 下载地址:Qt 5.9.x。笔者下载的是5.9.6版本(只要是5.9系列均可),点击“...x86-5.9.6.exe”文件进行下载:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第1张图片

  • 下载完成后双击qt安装包,进入安装页面:
qt安装页面
step 1 点击“next”
step 2 “注册”-->“邮箱验证”-->“登陆”
step 3 “下一步”
step 4 选择“安装路径”,自定义,选择空文件夹,点击“next”
step 5

点击展开 Qt 5.9.6,勾选如下三项(vs版本不同则勾选版本对应的三项)

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第2张图片

tools组件按默认设置,无操作

点击“下一步”

step 6 接受“协议”,点击“下一步”
step 7

点击“下一步”,完成“安装”

三、VS2017安装Qt vs tools

  • 打开VS2017,选择工具 -> 拓展和更新:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第3张图片

  • 选择联机->搜索qt->下载qt vs tools:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第4张图片

  • 下载完毕后点击“关闭”。
  • 重启vs 2017,会出现如下界面,点击“修改”,安装完毕后点击“关闭”,进入vs:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第5张图片

四、VS2017配置Qt

  • 进入vs 2017,菜单栏点击“qt vs tools”,选择“qt options”,点击“add”添加:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第6张图片

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第7张图片

  • 配置系统环境变量:

  • 增加以下路径(根据自己qt安装的具体路径修改):

  • 测试配置是否成功。打开vs 2017,菜单栏选择“文件”-“新建”-“项目”:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第8张图片

  • 右击.ui文件,点击“打开方式”,将qt designer设为默认值,再双击.ui文件就可以打开qt designer:

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第9张图片

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第10张图片

  • 如果是打开别人的qt项目,由于qt版本可能不一致会导致相关 头文件 没有默认导入,可以打开“qt project settings”,点击“qt modules”,勾选需要的模块(例如:core、gui、widgets):

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第11张图片

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第12张图片

五、编译yolo为C++ dll文件

     yolov4项目地址:darknetAB

  • 下载项目到本地:

      QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第13张图片

  • 下载权重文件:yolov4.weight   提取码:4mic

 

  • GPU版本: 需已安装cuda、cudnn。vs打开  darknet-master\build\darknet\yolo_cpp_dll.sln 文件,右击“项目”->“属性”->"C\C++"->“预处理器”->"预处理器定义",首行添加“CUDNN"。接着以“x64  release”方式编译(即菜单栏“生成”->“生成解决方案”):

    QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第14张图片

    

  • 若cuda版本不是10.0,则以记事本方式打开  darknet-master\build\darknet\yolo_cpp_dll.vcxproj,组合键ctrl+f搜索“cuda 10.0”,将两处“cuda 10.0”改为自己的cuda版本,例如“cuda 10.1”,之后重新编译yolo_cpp_dll.sln。

 

  • CPU版本:  vs打开 darknet-master\build\darknet\yolo_cpp_dll_no_gpu.sln 文件,以“x64  release”方式编译(即菜单栏“生成”->“生成解决方案”)。

 

  • 编译完成后,将在 darknet-master\build\darknet\x64 路径下得到以下文件,同一时间只能选择”gpu“或者”cpu“版本中的一种编译使用,因为编译生成的文件名字是一样的:

     QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第15张图片

    编译得到的文件为备用使用。对于GPU版本,笔者的cuda版本是10.1,若自己的cuda版本不是10.1,那么需要将生成的dll和lib文件分别替换到  ./3rdparty/libdarknet/bin/release/gpu   和   ./3rdparty/libdarknet/lib   文件夹下。

六、qt编写图形界面,并加载动态链接库

  • 项目地址:Yolov4-QtGUI
  • 项目结构:

        -   3rdparty 存放相关头文件和库文件,下载链接:3rdparty    提取码:f1vo    (解压到Yolov4-QtGUI项目目录下)

        -   assets 存放测试结果图片等

        -   config 存放属性文件

        -   QtGuiDemo 存放主文件。

        -   x64   (将下载的权重文件yolov4.weight放置在 x64\model 目录下)

       QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第16张图片

  • vs打开  Yolov4-QtGUI\QtGuiDemo.sln 文件

 

  • GPU版本:修改属性文件yolov4.prop,"链接器”->"输入"->"附加依赖项"->yolo_cpp_dll_cpu.lib 。在"release x64"模式下,菜单栏点击"生成"->"生成解决方案",并将 

       -  3rdparty\libdarknet\bin 路径下的  pthreadGC2.dll、pthreadVC2.dll  

       -  3rdparty\libdarknet\bin\release\gpu 路径下的 yolo_cpp_dll.dll

       -  3rdparty\libopencv\bin 路径下的  opencv_world342.dll  

     复制到Yolov4-QtGUI\x64\release目录下。

     

   QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第17张图片

 

  • CPU版本:修改属性文件yolov4.prop,"链接器”->"输入"->"附加依赖项"->yolo_cpp_dll_cpu.lib。在"release x64"模式下,菜单栏点击"生成"->"生成解决方案",并将 

       -  3rdparty\libdarknet\bin 路径下的  pthreadGC2.dll、pthreadVC2.dll  

       -  3rdparty\libdarknet\bin\release\cpu 路径下的 yolo_cpp_dll.dll

       -  3rdparty\libopencv\bin 路径下的  opencv_world342.dll  

     复制到Yolov4-QtGUI\x64\release目录下。 

     QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第18张图片

 

  • 运行项目。双击x64\Release目录下的exe文件。

七、FAQ

QtGUI+YOLOv4+VS2017 《图形界面+目标检测 cpu版本&gpu版本》_第19张图片

八、发行版

  • cpu version:yolov4_cpu   提取码:l3eh   

        权重文件:yolov4.weight    提取码:4mic       解压到./model目录下

  • gpu version:yolov4_gpu  提取码:d6lz   

解压后运行release目录下的exe文件即可

 

运行结果截图:

 

参考文章:https://blog.csdn.net/gaojixu/article/details/82185694

                  https://blog.csdn.net/fan2273/article/details/78262952

参考项目:https://github.com/jmu201521121021/FaceDetector-Base-Yolov3-spp

                 https://github.com/jmu201521121021/QtGuiDemo

 

你可能感兴趣的:(vs2017,Qt,yolo)