darknet是yolo算法的作者Joseph Redmon使用c语言编写的一个开源卷积神经网络训练框架

如果项目中用到了yolo卷积神经网络模型,darknet框架是你的不二之选

darknet项目开源地址:https://github.com/pjreddie/darknet

darknet作者(也是yolo的主要作者)维护官网:https://pjreddie.com/darknet/

darknet作者给出的安装教程:https://pjreddie.com/darknet/install/

Linux操作小提示:

1、linux下绝大部分命令都可以通过tab键补全,一次tab不行就两次,特别遇到打开比较长的文件名目录时,非常高效,输入开头几个字母,剩下的交给tab键

2、linux终端中复制操作为ctrl+insert(或者ctrl+shift+c),粘贴操作min为shift+insert(或者ctrl+shift+v)

安装前的说明:

想要使用GPU加速功能,显卡必须是NVIDIA的,同时必须在真实硬盘上的操作系统上才能使用,不能使用虚拟机

没有NVIDIA的GPU,也可以使用darknet,只是训练速度相对不快。

一、Linux下安装darknet

ctrl+Alt+T打开一个linux终端,输入以下命令

git clone https://github.com/pjreddie/darknet.git

这条命令将会从github上克隆darknet最新的版本文件到当前目录下

你也可以先通过cd命令进入到指定的目录下,再使用git clone命令,将darknet下载到指定的目录

出现错误,未安装git,按照提示进行修复

sudo apt-get update
sudo apt install git

再次运行git clone命令,成功clone到本地,可以在当前目录下看到darknet文件夹

下载的darknet文件夹还无法直接使用,需要先编译一下,生成二进制文件,再由计算机执行二进制文件,才能运行框架

下面开始编译darknet,编译之前需要先安装make(一个自动化的编译工具),如果已安装make,可省略这一步

sudo apt install make
sudo apt install make-guile

又出现错误了,按照网上教程,删除这两个文件

sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo rm -r -f /var/lib/dpkg/lock
sudo rm -r -f /var/cache/apt/archives/lock
sudo rm -r -f /var/cache/apt/archives

依次安装make和make-guile,也可以只安装make,安装make后可通过命令行操作,安装make-guile后可以在GUI界面操作

进入darknet目录,执行make命令,出现错误,gcc也没安装

原谅这是我是刚安装好的linux,只安装了一个搜狗输入法和wps

sudo apt install gcc

再执行make命令进行编译,结果发现g++也没安装,

但这对于我这样的新手来说,error是家常便饭

继续安装g++

sudo apt install g++

再次执行make,终于成功了

make工具会根据darknet目录下已经存在的Makefile文件来编译源程序文件(darknet源程序用C语言编写),并生成二进制文件

Makefile文件制定了编译的一系列规则,当改变Makefile文件内容后,需要再次执行make命令才能生效

make完成之后,darknet文件目录下多出了一些文件,其中,darknet为二进制文件,可以看成是darknet框架的运行文件,*.a为静态链接库,*.so为动态链接库

测试安装结果,运行darknet框架,.表示当前目录(..表示上一级目录),darknet就是上一步make生成的二进制文件

./darknet

当出现图中所示结果时,说明我们已经能够使用darknet框架,可以开始yolo训练之旅了

我们可以先使用imtest命令测试图像加载和显示,看一下效果

测试图片为data目录下的egle.jpg,你也可以尝试其它图片

./darknet imtest data/eagle.jpg

出现了一堆长相一样的老鹰的图像,测试成功

根据提示信息,发现我们没有安装OpenCV

我们最好安装一下OpneCv,因为这样可以方便的加载各种格式的图像和视频,还可以调用摄像头

如果不安装OpenCV,也是可以使用darknet的,此时请直接跳到第三步。

(OpencV的作用就是更方便的加载图像和视频,如果不用OpenCV,框架也可以正常运行)

二、OpenCV安装

OpenCV官方安装教程  https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

执行cd命令,跳转到指定目录下,(..表示回到上一级目录)

OpencV有稳定版和最新版两种,本文使用最新版本,详情请看OpenCv官网

1、从github上克隆最新的OpenCV核心库到本地

cd ..
git clone https://github.com/opencv/opencv.git

当发现下载速度比较慢的时候可以考虑直接从github上下载zip文件到本地

下载地址:https://github.com/opencv/opencv

2、克隆OpenCV的扩展库OpenCV_Contrib到本地,如果不安装扩展库,也是可以使用OpenCV的,但是建议安装

git clone https://github.com/opencv/opencv_contrib.git

同样,如果觉得下载过慢,可以直接到github下载zip文件到本地

github 下载地址:https://github.com/opencv/opencv_contrib

移动扩展库文件到opencv目录下,并提取文件(解压)

终端解压命令:unzip 文件名,也可鼠标右键提取文件

注意文件名后缀,git clone时没有master后缀,使用zip下载时有master后缀

3、添加opencv所需要的依赖库

下面三条命令是官方给出的

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

第一条命令安装了一个build-essential库,可以方便的进行编译

编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。

第二条命令安装了一个cmake、git等等软件,其中cmake是一个跨平台的编译工具,比make更加高级

第二条命令安装了一些库,包括python等等

执行第三条安装命令时出错,主要是libjasper-dev无法安装,需要添加镜像源,执行下面的命令解决

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update

再执行第三条命令

4、开始编译OpenCV

在opencv目录下创建文件夹 build(可以根据自己习惯命名为其他名字)

cd opencv
mkdir build
cd build

在编译前查看opencv_contrib文件夹名称,如果采用git下载,那就是这个名称

如果是zip下载后解压,文件名就是opencv_contrib_master,可以考虑重命名为opencv_contrib

使用cmake编译opencv及其扩展库源文件到当前目录下,OpenCV默认安装路径为/usr/local

注意命令中结尾的扩展库源文件名要与实际保持一致,请自行确认

如果没有下载扩展库,那么OPENCV_EXTRA...及之后的命令不再需要

在build目录下,执行下面命令

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

cmake能够生成一系列的cmake等文件和最终的MAkefile文件,再由make工具调用Makefile等文件进行最后的编译

cmake成功

使用make编译opencv

cd opencv/build
make

编译过程非常漫长,如果处理器有多个核的话,可以将make替换为以下命令加快编译速度

make -j4

参数4代表使用4核,根据自己的硬件情况选择 ,make命令默认使用1核

make编译成功

注意:可能会发生internal compiler error: Killed (program cc1plus)错误

这是因为虚拟机内存不足,可以考虑暂时给虚拟机分配大一点的内存,编译完成后再恢复原来的设置

在bulid目录执行以下命令,安装使用opencv所需要的库

sudo make install

5、测试安装结果

输入下面命令可查看当前OpencV安装版本

opencv_version

6、在Python中使用opencv

python
import cv2

当没有出现任何错误提示时,表示我们可以在python程序中使用OpenCV

7、在darknet中使用opencv

如果安装了OpenCV,并且要启用opencv的话,打开darknet目录下的Makefile文件,将第三行改为OPENCV=1

修改Makefile文件后需要再次make,才能生效

make

make之后出现以下错误信息,没有发现opencv

解决办法,安装一个OpencV依赖包libopencv-dev

sudo apt install libopencv-dev

再次make后成功

如果上述还不能解决,尝试以下解决办法

安装搜索工具mlocate

sudo apt-get install mlocate

定位文件opencv.pc

locate *opencv.pc*

选择一个添加到环境变量中

sudo gedit /etc/profile

在文件的最后一行加上类似这样的一句

export PKG_CONFIG_PATH=/home/lishan/miniconda3/lib/pkgconfig/:$PKG_CONFIG_PATH

注意:请根据自己搜索到的路径设置,上面是我的路径,仅供参考

加载环境变量,再次编译(以后每次编译前都要先加载环境变量文件)

source /etc/profile
make

三、CUDA安装

只有NVIDIA的显卡(一般以GTX、RTX开头)才支持CUDA,如果没有NVIDIA的显卡,请直接到第四步

CUDA是英伟达推出的通用并行计算架构(这个通用意思是支持英伟达自家的所有显卡),利用这个架构,可以把一部分计算工作交给GPU,特别是图像处理中的大规模矩阵运算,这样可以加快模型的训练和处理速度。

使用命令下面查询当前主机上的显卡设备

lspci | grep VGA

遗憾的是,虚拟机上的显卡是模拟的,所以即使主机安装了NVIDIA的显卡,在虚拟机中还是无法安装CUDA

所以,要想安装cuda,并使用gpu加速,必须将linux系统安装在真实硬盘上,同时显卡得是NVIDIA的才行

四、yolo下载

在darknet-->cfg目录下(config的缩写),可以看到yolo模型各种版本的配置文件

只有配置文件还不行,需要下载yolo网络训练权重文件

我们下载yolov3的权重文件(已经训练好的文件),执行以下命令

cd darknet
wget https://pjreddie.com/media/files/yolov3.weights

权重文件237MB左右,同样,如果觉得下载过慢,可以使用一些下载工具,比如xdown,复制链接,下载即可

再从windows下复制粘贴文件到darknet目录下

当然你可以放在任意位置,但是要记住它的路径,因为后面需要用到这个文件

回过头来,在darknet->data文件夹下有几张示例图片,比如这张经典的小狗

我们将尝试使用刚才下载的yolov3权重文件和yolov3的配置文件对这张小狗进行检测

运行一下检测效果

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

刚才的命令是一个简写版,它与下面的完整版的命令功能一致

./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

上面的命令表示:运行darknet框架进行测试,其中

数据指向文件为./darknet/cfg/coco.data(默认)

网络配置文件为./darknet/cfg/yolo3.cfg

网络权重文件为./darknet/yolov3.weights

待检测图片为./darknet/data/dog.jpg

输出检测图片默认保存在darknet目录下

下面是见证奇迹的时刻

识别到三个物体,分别是dog、truck、bicycle,花费时间33秒左右,如果使用GPU,这个时间要短一些

保存的图片在darknet目录下,名字为predictions.jpg

你可以尝试使用data目录下的其他图片进行检测

未完待续,下一节我们将讨论yolo模型的一些理论知识

附1 xdown下载链接(只支持windows):https://xdown.org/

附2 XDM下载链接(支持windows、linux、mac)https://subhra74.github.io/xdm/

安装命令:

#进入文件所在目录,根据自己情况修改
cd 下载/xdm-setup-7.2.10#运行安装脚本
sudo sh install.sh

双击启动XDM

新建一个下载任务,粘贴下载链接

附3:Chrome浏览器的中文翻译

进行深度学习时,我们不可避免的会浏览英文网页,对于英语基础不是很好的朋友来说,这似乎是一种痛苦。

所以我推荐使用Chrome浏览器,因为在浏览英文网页时,鼠标右键可以看到翻译中文模式,如下

但是我还是建议大家克服英语的恐惧,从一些常见的单词慢慢熟悉,通过单词翻译软件,有意识的记忆,

日积月累,英语网页的阅读速度会慢慢提高

yolo专属深度学习框架darknet的安装记录相关推荐

  1. DL框架之darknet:深度学习框架darknet的简介、安装、使用方法的详细攻略

    DL框架之darknet:深度学习框架darknet的简介.安装.使用方法的详细攻略 目录 darknet的简介 darknet的安装 darknet的使用方法 1.YOLO: Real-Time O ...

  2. 深度学习框架Keras的安装

    原文链接:https://blog.csdn.net/qingzhuochenfu/article/details/51187603 本人已经将最新博客更新转移至个人网站了,欢迎来访~~ SCP-17 ...

  3. [PyTroch系列-1]:PyTroch深度学习框架的详细安装过程

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[PyTroch系列-1]:PyTroch深度学习框架的详细安装过程_文火冰糖(王文兵)的博客-C ...

  4. Theano深度学习框架之Lasagne安装及入门

    1.Lasagne简单介绍 lasagne意味千层饼,是基于theano之上主要用于建立和训练神经网络的深度学习库.Lasagne is a lightweight library to build ...

  5. TVM:深度学习框架编译器的安装踩坑集

    目录 一.引言 二.流程 三.踩坑 四.备注 一.引言 4月底的时候,花了一天时间安装TVM这个东西.那时,上来就弄TVM 0.8的版本,但因为具体安装的流程不是很懂,所以出现了一些莫名其妙的问题.后 ...

  6. CV:Win10下深度学习框架安装之Tensorflow/tensorflow_gpu+Cuda+Cudnn(最清楚/最快捷)之详细攻略(图文教程)

    CV:Win10下深度学习框架安装之Tensorflow/tensorflow_gpu+Cuda+Cudnn(最清楚/最快捷)之详细攻略(图文教程) 导读 本人在Win10下安装深度学习框架Tenso ...

  7. 深度学习入门笔记系列(一)——深度学习框架 tensorflow 的介绍与安装

    本系列将分为 8 篇 .今天是第一篇 ,工欲善其事必先利其器 ,先简单讲讲当前的主流深度学习框架 TensorFlow 及其安装方法 . 我们知道 ,深度学习研究的热潮持续高涨 ,许多的开源深度学习框 ...

  8. DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装、使用方法之详细攻略

    DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介.安装.使用方法之详细攻略 目录 深度学习框架Deeplearning4j的简介 1.Deep ...

  9. Win10深度学习框架及GPU运算环境搭建(CUDA10.0+Cudnn 7.6.5+pytroch1.2+tensorflow 1.14.0)

    一.深度学习为什么要搭建GPU运算环境? 熟悉深度学习的人都知道,深度学习是需要训练的,所谓的训练就是在成千上万个变量中寻找最佳值的计算,所需计算的数据量异常庞大.CPU是一个有多种功能的优秀领导者. ...

最新文章

  1. python网站设计理念_简单介绍下python Django框架的历史,设计理念及优势_Django讲解2...
  2. Centos7:mysql5.6安装,配置及使用(RPM方式)
  3. 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?
  4. 体验Vs2005 beta2 测试工具
  5. 复制粘贴之后出现问号怎么办_网页没办法复制粘贴?老司机传授这3招太赞了,全网任意免费复制...
  6. mybatis配置文件祥解(mybatis.xml)
  7. 中标麒麟(linux)下Qt调用python数据转换
  8. 【POJ 1733】Parity game【带权并查集维护奇偶】
  9. Android 代码中执行adb shell命令
  10. 生物医学基础--人体阻抗模型
  11. 从春运迁徙图看疫情变化
  12. spring cloud 全家桶 简单介绍
  13. AutoSAR系列讲解(入门篇)5.2-描述文件
  14. virtual dimention简单改进版
  15. 高精度高性能PI值计算程序设计和验证
  16. AFNetworking 使用说明
  17. 百度网盘资源怎么分享群链接下载?
  18. 可以听歌玩游戏看股票背单词的ROS开发工具?小鱼:就差能点外卖了~
  19. Developing circuit
  20. 收藏:Shapecollage:超好用的拼图工具

热门文章

  1. Vue + Echarts(v5.版本)的简单组件封装(折线图、柱状图、散点图、饼/环形图、仪表盘、雷达图)
  2. SSRF学习-gopher协议学习
  3. Android ListView 设置分割线的设置
  4. 国内外计算机视觉的差距在哪里?
  5. 计算机 诊断卡原理,主板诊断卡.常见跑码.及维修故障说明:
  6. RTX的LDAP验证程序(含源码)
  7. 番茄钟java代码_Linux 番茄时钟 定时(示例代码)
  8. Schatten-p
  9. java作业:根据三角形的3条边长,判断其是直角、钝角,还是锐角三角形。
  10. ADS129X芯片——模拟功能