yolo专属深度学习框架darknet的安装记录

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浏览器,因为在浏览英文网页时,鼠标右键可以看到翻译中文模式,如下

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

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

猜你喜欢

转载自blog.csdn.net/lishan132/article/details/106347679
今日推荐