在win10下编译darknet-yolov4-cpu版_lp_oreo的博客-程序员宝宝

技术标签: 目标检测  

这篇博客是在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文件,但是一运行就崩,暂时还没有解决。

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38316300/article/details/107495832

智能推荐

用yolov4训练自己的目标检测模型-基于pytorch实现_CrystalheartLi的博客-程序员宝宝_yolov4训练自己的模型

1,首先下载yolov4模型文件2,准备数据集在下载好的yolov4文件夹的同级目录下创建projects/YOLO文件夹,然后将自己标注好的数据放入文件夹,最后的目录结构如下图(为了方便,每个文件夹及文件中只保留了3条数据)其中imgs文件夹下为原图像文件lables文件夹是存放标签的文件夹,每个txt文件下的内容类似这样:imgs.cache先不用管train.txt和val.txt存放了训练集图像路径和验证集图像路径,二个txt文件下的内容均类似这样:3,修改配置文件修改data

J.U.C之重入锁:ReentrantLock_weixin_30252709的博客-程序员宝宝

此篇博客所有源码均来自JDK 1.8ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比synchronized更强大、灵活的锁机制,可以减少死锁发生的概率。 API介绍如下:一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定...

【C语言】验证哥德巴赫猜想_慕雪华年的博客-程序员宝宝_验证哥德巴赫猜想c语言

文章目录问题来源题目要求如何判断素数?主函数完整代码+效果演示写代码中的误解总结问题来源这是学校的一个作业,原题如下题目先给出了哥德巴赫猜想的背景知识(我还真不知道)2000以内的正偶数都能分解成两个质数(素数)之和题目要求下面来梳理一下题目的要求:输出样式为a=b+c,使用%4d=%4d+%4d输出每行输出4个,每行最后一个输出无空格每个偶数只需要一个结果即可(后续较大的偶数有很多种解)弄懂了题目要求,下面就来一步一步写代码如何判断素数?在上篇博客里面提到了如何判断素数=

机器学习速成课程笔记4:降低损失 (Reducing Loss)_快乐成长吧的博客-程序员宝宝

快速翻阅,快速学习上一个笔记中介绍了损失的概念。在本单元中,您将了解机器学习模型如何以迭代方式降低损失。为了训练模型,我们需要一种可降低模型损失的好方法。迭代方法是一种广泛用于降低损失的方法,而且使用起来简单有效。学习目标 了解如何使用迭代方法来训练模型。全面了解梯度下降法和一些变体,包括:小批量梯度下降法、随机梯度下降法尝试不同的学习速率。如何降低损失?...

cs231n-notes-Lecture-9:AlexNet/VGGNet/GoogleNet/ResNet_Ravi-Jay的博客-程序员宝宝

Lecture 9 CNN ArchitecturesAlexNetVGGNetSmall filtersWhy?Stack of three 3x3 conv (stride 1) layers has same effective receptive field as one 7x7 conv layerBut deeper, more non-linearitiesAn...

什么是新技术_影儿的博客-程序员宝宝_什么是新技术

什么才算是新技术? 它是对现存世界的敏锐观察, 对人类所面临的本质性难题的深入思考和挑战, 突破传统解决模式, 以全新的方式解决以往难以解决的、或者无法想象的问题。 它不是修修补补, 不是微创新, 它是新生的力量, 是想象力的释放和大胆的尝试和变革。

随便推点

算法:队列与广度优先搜索(迷宫问题)_s1mba的博客-程序员宝宝

队列也是一组元素的集合,也提供两种基本操作:Enqueue(入队)将元素添加到队尾,Dequeue(出队)从队头取出元素并返回。就像排队买票一样,先来先服务,先入队的人也是先出队的,这种方式称为FIFO(First In First Out,先进先出),有时候队列本身也被称为FIFO。下面我们用队列解决迷宫问题。程序如下:(参考《linux c 编程一站式学习》) C++

java写给前端的接口文档_GitHub - TateBrownJava/APIJSON: 后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构!..._毁男孩的小图纸的博客-程序员宝宝

APIJSON????后端接口和文档自动化,前端(客户端) 定制返回JSON的数据和结构! APIJSON是一种为API而生的JSON网络传输协议。为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目,尤其是互联网创业项目和企业自用项目。通过自动化API,前端可以定制任何数据、...

HashMap 常用方法总结_Damon爱吃西兰花的博客-程序员宝宝

常用方法:clear() 删除 hashMap 中的所有键/值对 clone() 复制一份 hashMap isEmpty() 判断 hashMap 是否为空 size() 计算 hashMap 中键/值对的数量 put() 将键/值对添加到 hashMap 中 putAll() 将所有键/值对添加到 hashMap 中 putIfAbsent() 如果 hashMap 中不存在指定的键,则将指定的键/值对插入到 hashMap 中。

06:循环数_欲晓~的博客-程序员宝宝

06:循环数 总时间限制: 1000ms 内存限制: 65536kB 描述 若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时, 会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。例如,数字 142857 是循环数,因为: 142857 *1 = 1428

CentOS7下swap分区创建(添加),删除,更改及扩大_json_craze的博客-程序员宝宝

使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意)

为cocos2d-x添加快速OBB盒碰撞检测_hortor_iphone的博客-程序员宝宝

原理:       根据 Stefan Gottschalk的理论(Collision Queries using Oriented Bounding Boxes, Ph.D. Thesis, Department of Computer Science, Unive

推荐文章

热门文章

相关标签