Darknet——yolo3训练自己的数据集+在ros环境下实现目标检测实战教程(一)——环境配置

文章目录

  • 前言
  • 一、Darknet简介
  • 二、环境要求
  • 三、准备工作
  • 四、正式安装
    • 安装显卡驱动
    • 安装cuda
  • 总结


前言

这是基于轻量级深度学习框架darknet的yolo3模型实践在ros平台下实现训练自己的数据集来进行目标识别的过程记录。本文主要手把手带你配置darknet框架需要的环境配置。


一.Darknet简介:

Darknet是一个轻量级深度学习框架,是一个完全基于C与CUDA的开源深度学习框架,其主要特点就是容易安装,在makefile里面选择自己的附加项(cuda cudnn opencv等)之后直接make就可以了,没有任何依赖项(OpenCV都可以不用),移植性非常好,支持CPU与GPU两种计算方式。

二.环境要求:

1.cuda(非必须,也可以用cpu)

2.opencv(ros自带即可)

三.准备工作:

3.1.验证自己的电脑是否有一个可以支持CUDA的GPU:

 $lspci | grep -i nvidia

3.2.验证自己的Linux版本是否支持 CUDA:

$uname -m && cat /etc/*release

3.3.验证系统是否安装了gcc :

$gcc –v

3.4.验证系统是否安装了kernel header 和 package development:

$sudo apt-get install linux-headers-$(uname -r)

四.正式安装

(一).安装显卡驱动:

注意:尽量不要选择系统推荐安装,不然cuda的使用可能会出问题,系统使用可能没问题。

4.1.1.查看自己的显卡型号(如我的是GeForce GTX1660 super):

在nvidia官网查找自己显卡型号的linux64-bit系统驱动程序:

https://www.nvidia.cn/geforce/drivers/

4.1.2.安装一些nvidia依赖的软件:

$sudo dpkg --add-architecture i386
$sudo apt update
$sudo apt install build-essential libc6:i386

4.1.3.禁用nouverau:

Ubuntu系统默认安装了一个开源驱动:nouveau,但是这个驱动会和nvidia驱动不相容,需要禁用,不然nvidia驱动安装会报错。

方法如下:

1.禁用bios中的secure boot,因为secure boot会阻止第三方源安装的驱动,禁用不会带来多大隐患。

2.创建配置文件:

$sudo gedit /etc/modprobe.d/blacklist_nouveau.conf

文件中添加:

blacklist nouveau

options nouveau modeset=0

刷新内核:

$sudo update-initramfs -u

然后reboot重启,然后输入以下命令验证生效:

$lsmod | grep nouveau//没有输出,则禁用成功

禁用成功后就可以安装显卡驱动sudo sh 下载下来的.run文件,安装完成后就重启。

查看是否安装成功:

$nvidia-smi

可以看到显卡驱动的版本470.63.01和cuda的推荐版本11.4:

Darknet——yolo3训练自己的数据集+在ros环境下实现目标检测实战教程(一)——环境配置_第1张图片

 (二)cuda安装:

4.2.1.由上面$nvidia-smi命令看到推荐版本的cuda版本,到官网下载:https://developer.nvidia.com/cuda-downloads

4.2.2.以runfile(local)的方式安装会减少出错:

$wget https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux.run
$sudo sh cuda_11.4.1_470.57.02_linux.run

安装项里不要选择安装驱动,因为之前已经安装过了,避免出错,其他都yes。

4.2.3.设置环境变量:

在~/.bashrc文件(用的zsh就是.zshrc文件)添加如下路径:

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64
$export PATH=$PATH:/usr/local/cuda-11.4/bin
$export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.4

添加完之后source一下:

$sudo source ~/.bashrc	//(用zsh改成.zshrc)

4.2.4.检查是否安装成功:

$cd /usr/local/cuda-11.4/samples/1_Utilities/deviceQuery
$sudo make
$./deviceQuery

result 为pass 则为成功:

Darknet——yolo3训练自己的数据集+在ros环境下实现目标检测实战教程(一)——环境配置_第2张图片

 ps:想要更快可以把cudnn装上,修改make文件编译后测试:

到官网下载合适的cudnn版本:https://developer.nvidia.com/rdp/cudnn-download

需要注册登陆,然后解压,进入到相应目录,执行:

$sudo cp cuda/include/cudnn.h /usr/local/cuda-11.4/include
$sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.4/lib64
$sudo chmod a+r /usr/local/cuda-11.4/include/cudnn.h 
$sudo chmod a+r /usr/local/cuda-11.4/lib64/libcudnn*

查看cudnn版本:

$cat /usr/local/cuda-11.4/include/cudnn.h | grep CUDNN_MAJOR -A 2

总结

到此,darknet所需要的环境就准备就绪了,接下来是darknet包的安装、编译和测试使用。

你可能感兴趣的:(深度学习,深度学习,linux)