安装双系统复现darknet+ubuntu16.04+cuda9.0+cudnn7.1+opencv2.4.13.6实现yolov3demo

复现darknet

复现https://github.com/pjreddie/darknet中代码

笔记本环境:
gpu:GTX 1050 Ti(mobile)
cpu:intel i7-7700HQ
内存:16GB
Ubuntu版本:16.04
NVIDIA驱动版本:384
cuda版本:cuda_9.0.176_384.81_linux
cudnn版本:cudnn-9.0-linux-x64-v7.1
opencv源码版本:2.4.13.6

安装顺序如下:

1.在Windows下安装Ubuntu双系统
2.安装NVIDIA驱动
3.安装CUDA并配置CUDnn
4.安装Opencv并设置环境变量
5.安装Darknet

安装Ubuntu16.04

这里使用16.04版本主要原因是该版本最稳定且相关文档较多,易于操作,作者也尝试在Ubuntu18.04和20.04下进行复现,均遇到阻碍查询解决方法无果后放弃这两个版本。
a.制作ubuntu系统启动U盘,使用软件UltralSO
b.在Windows下创建相应分区,作者在双硬盘的情况下于第一块硬盘最后划分大约200M的efi系统分区,在第二块硬盘中划分相对较大的空闲分区存放Ubuntu系统
c.进入BIOS关闭Secure Boot,再由U盘启动进行安装。在安装界面选项条移至Install Ubuntu并按e进入编辑启动指令,在Linux开头行最后删除—并用nomodeset替换
d.按照指示继续安装,并按需安排分区大小
e.等待安装完成并重启

安装NVIDIA驱动

a.ubuntu-drivers devices 查看gpu和推荐的驱动版本
b. 选择自动安装驱动sudo ubuntu-drivers autoinstall安装双系统复现darknet+ubuntu16.04+cuda9.0+cudnn7.1+opencv2.4.13.6实现yolov3demo_第1张图片
这里能在重启后看到自己的显卡信息

安装cuda并配置cudnn

该操作针对Ubuntu 18.04,因其预装GCC的版本为7.3,而cuda编译需要更低的版本,这里对gcc进行手动降级至4.8版本。
而本人最后选择16.04 做一遍该操作以防出现新的问题。
1.对gcc降级:sudo apt-get install gcc-4.8
2.对g++降级:sudo apt-get install g++-4.8
3.然后进入到/usr/bin目录下输入:ls -l gcc*

cd /usr/bin
ls -l gcc* 

显示结果如下:

lrwxrwxrwx 1 root root 7th 3月  20 11:38 /usr/bin/gcc -> gcc-7.3  

表示gcc链接到gcc-7.3, 需要将它改为链接到gcc-4.8

sudo mv gcc gcc.bak #备份
sudo ln -s gcc-4.8 gcc #重新链接

将g++链接到g++4.8:

sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++

4.在/usr/bin目录下查看gcc和g++版本
ls -l gcc*
ls -l g++*
显示gcc和g++均链接到4.8版本,则说明安装成功

下载CUDA和CUDnn,推荐寻找资源,官网的源已被删除。

安装CUDA

按照官网的指令步骤进行安装
配置环境,将以下两条加入.barshrc文件中。
打开.barshrc

sudo vim ~/.barshrc

在最后面加入下面两条语句

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}      
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

配置cudnn

进入下载目录并解压在当前目录:

cd /home/qrt/Downloads
tar zxvf cudnn-9.0-linux-x64-v7.1.tgz

复制cudnn里的文件到cuda相关文件夹内

sudo cp /home/djy/Downloads/cuda/include/cudnn.h    /usr/local/cuda-9.0/include
sudo cp /home/djy/Downloads/cuda/lib64/libcudnn*    /usr/local/cuda-9.0/lib64
sudo chmod a+r /home/djy/Downloads/cuda/include/cudnn.h   /usr/local/cuda-9.0/lib64/ libcudnn*

安装opencv

下载Opencv,推荐使用梯子,选择2.4.13.6版本sources文件下载
下载并解压至/home/djy/Downloads目录下,然后将文件夹重命名为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

修改opencv配置文件
1.进入到opencv/cmake 目录下,找到OpenCVDetectCUDA.cmake文件并打开,定位到26行,修改set(HAVE_CUDA 1)为set(HAVE_CUDA 0)。
2.进入到opencv 目录下,找到CMakeList.txt文件并打开,定位到176,177行,将ON改为OFF然后保存。
在opencv目录下新建build文件夹,然后执行以下命令:

cd build    #进入到build文件夹
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..    #开始编译
make -j8   
sudo make install -j8

没有出现报错信息则说明opencv配置成功了

安装darknet

1)可以按照官网上面的步骤来安装:https://pjreddie.com/darknet/yolo/

git clone https://github.com/pjreddie/darknet     下载代码
cd darknet                                   进入darknet目录
make                                        编译

2)下载权重,然后保存在darknet的目录下

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

在darknet目录下打开终端,输入:

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

就可以进行测试了,如下图:
安装双系统复现darknet+ubuntu16.04+cuda9.0+cudnn7.1+opencv2.4.13.6实现yolov3demo_第2张图片
下面是对darknet目录下的Makefile文件进行的一些修改
每次修改完都需要重新编译
(1)如需使用gpu运算,修改如下,然后保存。
在这里插入图片描述
修改完后一定要重新编译,在darknet目录下打开终端,输入:

make clean
make -j8

(2)根据自己电脑的硬件可在Makefile中对ARCH进行修改
在这里插入图片描述

你可能感兴趣的:(ubuntu)