ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置

本片博客的安装环境是ubuntu16.04系统和已经安装好的GPU驱动,GPU安装驱动请自行完成。
安装好驱动之后执命令查看安装的驱动版本:

sudo nvidia-smi

可以看到我的驱动是384.130版
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第1张图片

1. 安装CUDA

cuda的下载

我这里选择cuda-8.0.44进行下载。这个是下载cuda的链接地址:https://developer.nvidia.com/cuda-80-download-archive
下载下来的文件放到**/home**目录下,大家也可以选择适合自己电脑的CUDA版本进行下载。
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第2张图片

cuda的安装

执行下面的命令进行安装:

sudo sh cuda_8.0.44_linux.run

注意在安装的时候首先要一直按enter键完成安装文档的阅读,然后选择 **accept ** 接下来会出现让你选择是否安装nvidia361驱动,因为前面驱动已经安装好了,所以这里要选择no,不安装默认驱动

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?#就是这里要选择no
cuda环境的配置

打开**~/.bashrc** 文件,并添加3句命令到文件的末尾。

sudo vim ~/.bashrc         #打开.bashrc文件

export CUDA_HOME=/usr/local/cuda-8.0    #将export这3句添加到文件的末尾。
export PATH=$PATH:${CUDA_HOME}/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CUDA_HOME}/lib64

如下图所示:
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第3张图片

source ~/.bashrc   #执行命令使.bashrc文件配置生效
测试cuda是否安装成功

同样在/home根目录下执行下面的命令,测试是否成功安装CUDA,若执行完命令显示GPU的相关信息表示安装成功。

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery #由自己电脑目录决定
sudo make
sudo ./deviceQuery

2. 安装cudnn

cudnn的安装更加简单,其实就是复制文件和建立软连接。

cudnn的下载

cudnn的下载链接如下,需要注册,然后再登录进去,选择适合自己的版本下载
https://developer.nvidia.com/rdp/cudnn-download
我这里下载的是cudnn6.0版本的,登陆进去之后选择Archived cuDNN Releases 然后选择cudnn v6.0…for CUDA 8.0下载
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第4张图片
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第5张图片

cudnn的安装

下载完成之后解压到/home目录下,文件夹重命名为cudnn6,然后执行下面的命令进行安装

vim setupcudnn.sh    #新建一个shell脚本文件,文件里面复制下面的内容进去
#!/bin/bash

echo "remove libcudnn* file of /usr/local/cuda/lib64"
sudo rm -rf /usr/local/cuda/lib64/libcudnn.s*   #删除旧版本cudnn

echo "copy cudnn.h to usr/local/cuda/include"
sudo cp /home/user_name/cudnn6/include/cudnn.h /usr/local/cuda/include   #复制cudnn.h文件到/usr/local/cuda/include目录下,这里的user_name改为自己的用户名
sudo chmod 777 -R /usr/local/cuda/include    #对复制后的文件解除权限

echo "copy lib* to usr/local/cuda/lib64"
sudo cp /home/user_name/cudnn6/lib64/lib* /usr/local/cuda/lib64    #同上
sudo chmod 777 -R /usr/local/cuda/lib64    #同上

sudo ldconfig   #对所有的复制和解除权限操作执行生效

然后保存setupcudnn.sh文件的内容,并执行下面的命令进行安装:

sudo bash setupcudnn.sh   #执行setupcudnn.sh脚本中的命令,安装cudnn

**注意:**这里将安装命令写成脚本文件的好处是,后面如果要进行其他cudnn版本的安装,只要稍加修改这个脚本,然后运行就可以迅速完成安装。例如要安装cudnn7版本,下载cudnn7,解压文件重命名为cudnn7,把脚本文件里的cudnn6修改为cudnn7,然后执行sudo bash setupcudnn.sh 就完成了安装。


3. 安装Opencv3.1.0

opencv的下载

下载地址https://opencv.org/releases.html
选择3.1.0版本sources下载,解压到/home根目录下,文件夹重命名为opencv
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第6张图片

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编译配置文件
    进入到opencv/cmake 目录下,找到OpenCVDetectCUDA.cmake文件并打开,定位到21行,修改set(HAVE_CUDA 1)set(HAVE_CUDA 0)
    这里修改的目的是为了避免后面执行sudo make install出现如下的错误信息。
nvcc warning : The 'compute_20', 'compute_20','sm_21' architectures are deprecated

备注:出现上面的错误信息的原因是使用CUDA配置opencv引起的。将HAVE_CUDA 设为0之后,在后面的编译过程中就会关闭CUDA,解决这个问题。

进入到opencv 目录下,找到CMakeList.txt文件并打开,定位到176,177行,将ON改为OFF

  • 安装opencv
    opencv目录下新建build文件夹。
cd build    #进入到build文件夹
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..    #开始编译
make -j8   
sudo make install -j8

执行完上面的命令就完成了opencv的安装,执行下面的命令测试是否安装成功,如果不出现报错信息就说明安装成功。

python
import cv2
备注:

错误1: fata error: LAPACKE_H_PATH-NOTFOUND when building OpenCV 3.1
解决办法:sudo apt-get install liblapacke-dev checkinstall
在安装的过程中可能还会还会出现其他各种各样的错误信息,这就靠自己依靠网络资源寻找解决方案了。一般从报错的信息提示入手,不断的卸载,安装,不断的尝试不同的方法,问题都会解决的。
小技巧:

  • 在安装过程中若出现不明问题,可以执行sudo find / -iname "*opencv*查找opencv安装路径,把*opencv*替换成*lib*就可以查找缺失的某个库文件,从而为解决问题寻找思路。
  • 卸载opencv,一般是先删除下载下来的opencv文件夹,然后进入到/usr/lib/,/usr/bin/,/usr/share/,/usr/include/,/usr/include删除含有OpenCV的文件夹即可。

4. 安装yolov3

darknet的安装

yolov3是在darknet平台上实现的,darknet安装教程按照官网步骤就可以了,官网链接https://pjreddie.com/darknet/install/

git clone https://github.com/pjreddie/darknet.git    #从github上下载darknet安装包
  • darknet的MakeFile配置
    进入到下载下来的darknet文件夹下,打开Makefile,对如下几个地方进行修改
    ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第7张图片
    ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第8张图片
备注

这里的ARCH= -gencode arch=compute_61,code=[sm_61,compute_61]根据自己的GPU型号的计算能力进行设置,可以通过下面链接查找GPU的计算能力。GTX1080Ti的计算能力是6.1,所以设置为61,其他型号的对照修改吧。
https://developer.nvidia.com/cuda-gpus
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第9张图片

  • darknet的安装
    darknet目录下,执行
make -j8
  • darknet的测试
    同样在darknet目录下,执行
wget https://pjreddie.com/media/files/yolov3.weights   #下载权重文件
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg  #使用下载的权重文件进行图片检测

运行成功后会出现下面的图片,并在darknet目录下生成predictions.png文件
ubuntu16.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置_第10张图片

至此教程结束。


你可能感兴趣的:(yolo)