Ubuntu笔记(五)-Ubuntu20.04安装Darknet

Ubuntu嵌入式Qt编程+目标检测项目实战_超详细教程(亲自实践)

Ubuntu笔记(五)-Ubuntu20.04安装Darknet和测试

本文作者Lawrence,位置未经作者允许禁止转载,谢谢!
以下所有内容,均来源于亲自实战和查询相关资料。


前言

本文主要介绍Darknet基本知识,实战Ubuntu20.04虚拟机上完成的安装和测试。


一、Darknet是什么?

Darknet 是一个用 C 和 CUDA 编写的开源神经网络框架。它快速、易于安装,并支持 CPU 和 GPU 计算。Darknet是一个比较小众的深度学习框架,主要靠作者团队维护,独有的优点:

  1. 易于安装:在makefile里面选择自己需要的附加项(cuda,cudnn,opencv等)直接make即可,几分钟完成安装;
  2. 没有任何依赖项:整个框架都用C语言进行编写,可以不依赖任何库,连opencv作者都编写了可以对其进行替代的函数;
  3. 结构明晰,源代码查看、修改方便:其框架的基础文件都在src文件夹,而定义的一些检测、分类函数则在example文件夹,可根据需要直接对源代码进行查看和修改;
  4. 友好python接口:虽然darknet使用c语言进行编写,但是也提供了C++/python的接口,通过python函数,能够使用python直接对训练好的.weight格式的模型进行调用;
  5. 易于移植:该框架部署到机器本地十分简单,且可以根据机器情况,使用cpu和gpu,特别是检测识别任务的本地端部署,darknet会显得异常方便。
    在这里插入图片描述

关于darknet有如下两个版本,pjreddie版本AlexeyAB,在github上发布的源码。
pjreddie版本是鼻祖,非常经典,一开始在github上最热的开源项目,在linux系统下做的:

  • 下载并备齐:darknet、选配yolov3.weights + yolov3.cfg、…
    依赖环境:C++、OpenCV、python、… 编译情况:下载源文件,需要make进行编译后,才能使用
    支持:linux系统(最先支持) + windows + CPU + GPU(可适用于英伟达)

不过,发展到2022年,个人认为已经淘汰了,它只支持Yolov3版本,而Alexey大神版本的,支持yolov3,v4,v7,不仅进一步优化了Darknet,而且支持windows和linux。
一开始github在windows系统下做的,现在各个大神改版也有在linux下使用了。

  • 下载并备齐:darknet、选配yolov3,4,7.weights + yolov3,4,7.cfg、…
    依赖环境:C++、OpenCV、python、… 编译情况:下载源文件,需要make进行编译后,才能使用
    支持:windows系统(最先支持) + linux + CPU + GPU(可适用于英伟达)

安装Darknet前,最后已经配置好opencv4,可以参照本人之前的博客笔记,darknet 的运行结果会直接显示,因此建议先 安装 opencv。

二、Darknet安装

1.CPU版本的安装

在Ubuntu上,命令行依次执行如下命令,

git clone https://github.com/AlexeyAB/darknet
cd darknet

**修改MAkeFile文件:**修改相应的参数,对于一般的电脑,修改如下几个参数:

(1)GPU=1,采用GPU加速,采用CUDA进行编译;
(2)CUDNN=1,采用cuDNN v5-v7进行编译,进行加速训练;
(3)CUDNN_HALF=1,在Volta, Xavier及更高版本上使用;
(4)OPENCV=1,使用OpenCV,支持各个版本的OpenCV(4.x/3.x/2.4.x)(5)LIBSO=1,是否生成动态链接库文件,用于C++工程调用。

本人使用的是CPU版本,对于的参数修改如下:

GPU=0
CUDNN=0
CUDNN_HALF=0
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

# set GPU=1 and CUDNN=1 to speedup on GPU
# set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher
# set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)
# set ZED_CAMERA=1 to enable ZED SDK 3.0 and above
# set ZED_CAMERA_v2_8=1 to enable ZED SDK 2.X

修改完后,在darknet目录下,进行编译

cd darknet
sudo make

如下图所示,表面Darknet安装成功。
在这里插入图片描述

总之。要看Darknet的应用环境了,如果是嵌入式边缘计算,动态实时性检测要求比较低,或者时在虚拟机Ubuntu上使用,建议安装CPU版本,如果是工业应用或者算力要求比较高,需要GPU加速计算的,则安装GPU版本,安装时主要体现在Makefile文件中参数的设置。目前来说本专栏的项目都是在CPU环境下运行检测模型,暂时不用GPU,如果有机会的话,专栏后续会更新GPU版本的安装详细步骤的踩坑实录。

2、GPU版本的安装

2.1、安装cuda和cudnn

暂无,后续再更新。

2.2、修改MakeFile文件

暂无,后续再更新。
可参考其他博客安装步骤:
https://blog.csdn.net/qq_28640763/article/details/109259713

3.Darknet源码常用的执行命令

/darknet$
(1)测试一张图片---detect
./darknet detect cfg/yolov3.cfg weights/yolov3.weights data/person.jpg
./darknet detector test cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights data/person.jpg

(2)测试本地视频---demo
./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights wp_video/person002.mp4

(3)测试usb视频---
./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights

(4)测试rstp视频---
./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg weights/yolov3.weights rtsp://admin:[email protected]?.??/H.264/ch1/sub/av_stream -i 0 -thresh 0.25

./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg weights/yolov3.weights rtsp://admin:[email protected]?.??/H.264/ch1/sub/av_stream -i 0

-----------to test many pics------------------------
./darknet detect cfg/yolov3.cfg weights/yolov3.weights -i 2 #CPU  enter
Enter Image Path:

./darknet detect cfg/yolov3.cfg weights/yolov3.weights -i 0 #GPU  enter
Enter Image Path: 

4、测试是否安装成功

首先,下载好对应的权重文件,下载地址:https://github.com/AlexeyAB/darknet/releases/tag/yolov4
作者主要下载了Yolov4,7的weights文件,利用步骤3中的Darknet源码常用命令:

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

进行测试,如下图所示,表示Darknet测试成功
在这里插入图片描述


总结

本文Darknet的安装和简单测试,记录了安装时候踩过的坑,后续所有目标检测功能测试都是基于此环境下进行实战演练。后续文章将主要介绍Yolov4和v7的使用,Qt中C++调用,亲自实战,有问题欢迎大家评论并联系我,喜欢的话记得点赞哦!

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lawrence_ly16

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值