在ubuntu18.04配置darknet(opencv+cuda+cudnn)

ubuntu18.04安装darknet(使用GPU)

ubuntu是购买了服务器,用vscode进行远程连接
说多了都是泪!

注意事项

由于服务器下载较慢,建议在本机下载好以后上传到服务器中

安装顺序

  • opencv
  • CUDA
  • darknet

如果安装顺序不对,会出现很多麻烦,openCV一定要在cuda前面安装,不然报错很难解决只能重装系统!!!(目前我也安装失败了)

1、Opencv源码下载

OpenCV网站:https://github.com/opencv

找到opencv和opencv_contrib库

在这里插入图片描述

在releases中找到需要的版本

请添加图片描述

在opencv_contrib选择相对应的包下载即可

下载完成后将二者合并放在/home/目录下

请添加图片描述

安装依赖
#更新源,安装软件包
sudo apt update && sudo apt install -y cmake g++ wget unzip

#安装依赖
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
创建build文件夹并执行cmake
#创建一个文件夹
mkdir build
cd build
#注意文件包的路径和名称是否和命令对应
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.15/modules ..
#这里会从github上下载一些文件,如果终端加入代理的话会很快,没有代理需要自己下载文件。只要终端不报红色就没啥问题。
编译
make -j8 #性能不好的电脑可以选择-j4,数字越大编译的速度越快
安装到系统
sudo make install

添加路径

sudo gedit /etc/ld.so.conf.d/opencv.conf

写入:

/usr/local/lib

之后再终端输入以下命令:(安装完成某个工程后生成许多动态库,该命令是为了让这些动态链接库为系统所共享)

sudo ldconfig

使其保存并生效,再在终端输入:

sudo gedit /etc/bash.bashrc

在文件后末尾输入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

退出保存,更新环境变量:

source /etc/bash.bashrc
测试安装的文件

进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:

cd ../samples/cpp/example_cmake
cmake .
make
./opencv_example

2、在服务器安装cuda和cuDNN

首先用sudo apt-get --purge remove cuda-*卸载预装好的的cuda和cudnn,然后去cuda官网下载点这里

img

然后按照图片上一样(不要输入指令下载会很慢)

请添加图片描述

把下载好的三个文件传到服务器中

然后下载cudnn相应版本并上传(点这里 需要注册完之后然后下载)

上传完毕后打开终端到上传文件夹:

sudo sh cuda_10.2.89_440.33.01_linux.run

出现一个界面后,输入accept回车,不要安装driver,下方向键选择到driver这个选项然后回车,然后向下选择到install回车,安装完成后会出现summary,只要没报错就无伤大雅

加入环境变量

gedit ~/.bashrc
# 在最后加入两行:(按照安装提示修改成自己的路径)
	export PATH=/usr/local/cuda/bin:$PATH
	export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 保存退出之后,运行:
source ~/.bashrc

接着

sudo sh cuda_10.2.1_linux.run
sudo sh cuda_10.2.2_linux.run

接下来和上面的流程一样

安装cuDNN

tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz #注意自己的文件版本
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

至次,gpu环境配置完成

3、下载darknet源码

首先判断电脑下载的是哪个版本的cuda和cuDNN,因为darknet有两个版本,第一个版本不支持8以上的cuDNN

查看cuda版本
nvcc —V
查看cudnn版本

由于版本不同,所以都可以试试

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

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
1

sudo find -name "cudnn_version.h"

sudo cat [这里换成上一个命令得到的位置] | grep CUDNN_MAJOR -A 2
下载源码

1、https://gitcode.net/mirrors/pjreddie/darknet?utm_source=csdn_github_accelerator

2、https://gitcode.net/mirrors/alexeyab/darknet?utm_source=csdn_github_accelerator

当cuDNN大于8.0用第二种,不然会有报错编译不通过

开始配置
修改Makefile文件
GPU=1      #使用gpu
CUDNN=1    #支持cuda
CUDNN_HALF=0  
OPENCV=1   #使用opencv
AVX=0     
OPENMP=1	# 使用多线程训练
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0
修改完后再daknet根目录下可以开始编译

(每次修改配置后需要清理重新编译)

make clean && make -j8
测试是否编译成功
./darknet
#若出现 usage:./darknet<fuction>,则证明成功
测试实例

先去官网下载官方权重文件

https://github.com/AlexeyAB/darknet/releases/tag/yolov4

请添加图片描述

下载出来的权重文件放到darknet根目录的cfg文件夹中,输入命令

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

请添加图片描述

出现以上内容就安装成功了

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值