当前位置: 代码迷 >> 综合 >> 在win10下编译darknet-yolov4-cpu版
  详细解决方案

在win10下编译darknet-yolov4-cpu版

热度:9   发布时间:2023-12-15 16:46:22.0

这篇博客是在win7下只使用cpu进行推理。使用gpu进行推理的可以参考我的上一篇博客。


主要步骤分为:

(1) 安装opencv,将其加到环境变量中,并且在vs2015中配置opencv

(2) 编译darknet_no_gou.sln文件,遇到bug就解决它。编译完之后,你就可以使用darknet进行推理了

(3) 编译yolo_cpp_dll_no_gpu.slnyolo_console_dll.sln文件。先编译前者,然后编译后者。

 

0 安装opencv

安装opencv的内容我参考我的上一篇博客,在这边我就不赘述了。

 

1 编译darknet_no_gou.sln

在vs2015中打开darknet_no_gou.sln工程文件,然后光标放在工程文件上,点击右键生成。

工程项目生成成功之后,在..darknet\build\darknet\x64文件夹下打开终端,运行下面的命令:

darknet_no_gpu.exe detector test data/coco.data cfg/yolov4.cfg backup/yolov4.weights

在这边我遇到了一个问题:

我参考了这位老哥的博客,然后下载了相关文件,然后将msvcp120d.dll文件放到了..darknet\build\darknet\x64文件中了,问题解决了。

检测效果如下:

我们看一下cpu的检测速度和精度:

我们看一下,一张图片的检测速度是3s左右,还是有点慢的,后面尝试用一下tensorrt加速。

 

2 编译yolo_cpp_dll_no_gpu.sln

下面,我们需要将darknet生成一个动态链接库,方便后面在终端或者在其他项目中使用这个动态链接库。

在vs2015中打开这个文件,然后生成相关项目,就会在该文件夹目录下面新增一个yolo_cpp_dll_no_gpu.dll文件。

 

3 编译yolo_console_dll.sln

下面,我们在终端中使用上面生成的动态链接库,进行推理

(1)首先,我们要将在..darknet\build\darknet\x64生成的yolo_console_dll.sln文件放到和yolo_console_dll.sln工程文件同目录下。也就是将yolo_console_dll.sln文件复制到..darknet\build\darknet目录下。

(2)然后,将yolo_cpp_dll_no_gpu.lib这个静态库添加到工程项目中。点击工程项目,然后右键属性。

在【链接器】- 【输入】- 【附加依赖项】中输入下面这个内容:

yolo_cpp_dll_no_gpu.lib

下面是具体内容: 

(3)在工程项目中删除yolo_cpp_dll.lib,这个文件使用的是gpu进行推理,因此我们用不到,需要删除掉。

(4)点击生成文件,就可以在终端中使用darknet动态链接库进行推理了

这边有个bug,就是可以生成exe文件,但是一运行就崩,暂时还没有解决。

 

 

 

  相关解决方案