Darknet在ubuntu下的安装与应用
下面介绍安装OPENCV、CUDA和CUDNN以及Darknet的安装
OPENCV的安装
- 首先安装依赖环境
sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
- 下载oepncv
https://opencv.org/releases/,点击Sources 下载.zip格式
或者点击GitHub进入下图所示
点击红框可以进入历史Releases版本,如下图所示,也可以下载tar.gz版本
将下载的文件放入 home路径下,mkdir 一个新文件夹opencv,放在里面进行解压,tar zxvf 目标文件,假如解压后的文件是opencv 3.4.16,那么进入该文件后新建一个bulid文件夹,进入build文件夹进行cmake
# 1.cmake: Release表示选项,其中有debug和Release两个选项,=/usr/local 表示安装的路径,..表示上一级目录,因为现在在build目录下,CMakeLists.txt文件在上一层,我们需要对其进行连接
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
# 2.make:-j8表示开8个线程
sudo make -j8
# 3.install:如果安转失败则执行make clean进行清除
sudo make install
# 4.配置环境:打开.bashrc文件
vim ~/.bashrc
# 5.增加opencv环境
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
# 6.刷新一下
source ~/.bashrc
上图表示添加/usr/local 路径下面的cuda或者lib 库到本账户里,也就是配置环境,保存退出后,执行source /.bashrc,如果在目录下的话,执行source .bashrc即可。
NVIDIA显卡驱动和CUDA安装
-
下载NVIDIA驱动
nvidia驱动下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn,进入后如下图所示,根据自己的显卡选择并下载
-
安装nvidia驱动
把nouveau加入黑名单,nouveau是第三方开发的NVIDIA显卡驱动,linux系统自带,目的是适配大多数显卡,但是一旦需要用高级功能,比如训练模型,就必须要装cuda,这与nouveau冲突,据说会出现黑屏、无限循环登录等问题,所以要根据下述命令首先禁用
sudo chmod 666 /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
# 在文件blacklist-nouveau.conf中加入如下内容
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvdiafb
# 刷新一下
sudo update-initramfs -u
# 重启系统执行下面的指令,如果没有输出则表示禁用完成
lsmod | grep nouveau
# 卸载之前安装的nvidia驱动
sudo nvidia-uninstall
# 关闭图形界面 按Ctrl+Alt+F2~F6(F2到F6按哪个都行,一般是F6,都试试,总之进入无图形界面)
sudo service lightdm stop #2022/7月19测试没有安装lightdm的话可以不执行
# 提示unit lightdm.service not loaded,先执行下面的安装然后再stop
sudo apt-get install lightdm # 这里很奇怪,没有还要安装,安装后提示选择gm3(记不清了)或lightdm(我选的lightdm),#2022/7月19测试没有安装lightdm的话可以不执行
# 安装驱动
# 给驱动文件赋予执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-375.20.run
sudo ./NVIDIA-Linux-x86_64-375.20.run
# 安装完成后启动图形界面
sudo service lightdm start
# 按Ctrl+Alt+F1 回到图形界面(有人说按F7,不确定就挨个试试)
- 安装CUDA
下载cuda,官方历史版本cuda10.2无法打开,cuda下载地址https://developer.nvidia.cn/cuda-downloads,如下图所示
点击上图中的红框可以进入历史版本下载界面,下载runfile文件,据说deb文件容易安装出错
按上图安装完成cuda后需要配置cuda环境,vim ~/.bashrc打开.bashrc文件在最后添加下面两行程序
# 下面两个是增加的cuda环境
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
# PATH 表示执行文件目录,比如nvcc指令
# LD_LIBRARY_PATH 表示lib库目录
# /usr/local/cuda/bin是路径,:$PATH和:$LD_LIBRARY_PATH是固定写法
# 保存并推出文本编辑然后刷新一下
source ~/.bashrc
cudnn的安装
cudnn 下载地址https://developer.nvidia.com/cudnn,下载cudnn需要登录
下载与cuda版本对饮的cudnn,解压,然后进入解压后的文件夹内复制include 和lib文件中的所有文件至 /usr/local/cuda/include /usr/local/cuda/lib
xz -d ***.tar.xz # 解压tar.xz为tar文件
tar -xv ***.tar #解压tar文件
sudo cp include/*.h /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64/
这里有个有意思的事情,在/usr/local/目录下 执行ls查看列表,能看见cuda和cuda-10.2(你装的版本),其实cuda是一个快捷方式,指向了cuda-10.2可能是为了方便,因为darknet中的Makefile文件中都是写的cuda,这样比较通用。
darknet安装及使用
- 修改darknetMakefile文件参数
将darknet放入/home目录下,进入darknet文件夹
编辑Makefile文件,vim Makefile,将下图中红框部分修改为1,表示使用的意思
如果下述列表中没有你的算力值,可以根据自己的显卡往下增加修改算力
算力查看去官网:https://developer.nvidia.com/cuda-gpus
- 编译darknet
在makefile文件所在路径下执行 make指令进行编译,顺利的话完成。否则使用 make clean清除上次make生成的.o文件。ldd darknet可以查看那些库没有找到,看那些库后面写着 not found,这表明你的lib库安装或者环境配置有问题。
- 训练模型
编译完成后就可以 写一个train.sh脚本进行训练。下述命令含义参加windows下的darknet使用,-gpus 0,1表示使用2个块显卡
./darknet detector train data/detect.data data/yolov3.cfg data/yolov3.weight -gpus 0,1
最后请注意,ubuntu下图片路径中只能是‘/’这个符号如果出现’'那么训练的时候无法读取图片
gpus 0,1表示使用2个块显卡
./darknet detector train data/detect.data data/yolov3.cfg data/yolov3.weight -gpus 0,1
最后请注意,ubuntu下图片路径中只能是‘/’这个符号如果出现’'那么训练的时候无法读取图片