本文系统为Ubuntu16.04 ×64位

1 GPU驱动安装

GPU的使用对于大数据集的目标识别来说非常重要,一开始的时候嫌麻烦就没装,导致跑图片数据的时候,非常非常的慢。再加上电脑配置不行,设置的迭代次数比较小,基本是没有办法将数据跑出来的。

NVIDIA驱动的安装一共有三种方法:

  1. 从NVDIA官网下载你系统对应的驱动包,然后禁用你系统自带的驱动,再安装下载的驱动包。这种方法的风险特别大,当下网络上的很多方法也是这个,我第一次安装时就是采用的这种方法,但是,在你禁用系统自带的驱动并重启之后,你会使得你的电脑进入黑屏,再也无法开机,也可能时因为我当时还比较小白,最后我并没有解决这个问题,最后导致重装了系统。
  2. 在系统终端根据官方ppa源刷新软件库并安装最新的驱动。这个方法我也没有成功,主要的原因是因为国内的网络没有办法从国外网站上下载并更新,可以也非常的慢。
  3. 软件和更新处直接安装最新驱动。这也是最为简单,成功率比较高的方法:
    (1) 打开终端,输入sudo apt-get update 更新源。
    (2) 系统设置——最后一行“系统”中的软件和更新——附加驱动——让其自动搜索之后,选择最新的驱动——应用更改。

安装完成之后,输入 sudo nvidia-smi 可以显示驱动版本即证明安装成功。以下是我安装的NVIDIA驱动版本号:

图像识别用pc摄像头 图像识别需要什么配置_图像识别用pc摄像头

2 安装CUDA

cuda的下载

从官网中下载: https://developer.nvidia.com/cuda-toolkit 下面是我下载时的系统选择,大家可以根据自己的电脑配置选择不同的版本。

图像识别用pc摄像头 图像识别需要什么配置_bash_02

我cuda8.0和cuda9.0都下载过,在不同的电脑上安装,所以版本可以根据自己的需要进行选择。下载下来之后是一个.run文件。

安装cuda

进入到保存的.run文件的文件夹下,并执行下面命令进行安装:

sudo sh cuda_8.0.27_linux.run

在安装的过程中,会有一个很长的安装文档的阅读,超出你终端可以显示的行数,所以你看不到结尾,当时就以为在等待安装,其实后来发现不是。后面通过新建一个Info.txt文档,执行以下代码将安装输出打印到该文档。

sudo sh cuda_8.0.27_linux.run >> Info.txt

这样就可以将很长的文档说明输出到Info.txt文档中,然后在终端上继续会显示安装过程:

图像识别用pc摄像头 图像识别需要什么配置_yolo_03


输入accept即可。

后面还会有几个问题需要你选择,除了出现让你选择是否安装nvidia驱动要选择no外,其余的都选择yes.

配置cuda环境
使用以下命令打开 ~/.bashrc 文件

sudo vim ~/.bashrc

在文件最后添加以下三句命令:

export CUDA_HOME=/usr/local/cuda-8.0 
export PATH=$PATH:${CUDA_HOME}/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CUDA_HOME}/lib64

保存退出。
执行命令使.bashrc文件配置生效:

source ~/.bashrc

测试cuda是否安装成功
执行下面的命令,测试是否成功安装CUDA:

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

若执行完命令显示以下GPU的相关信息表示安装成功:

图像识别用pc摄像头 图像识别需要什么配置_图像识别用pc摄像头_04

3 安装cudnn

NVIDIA cudnn是用于深度神经网络的GPU加速原语库。

下载

官网链接:https://developer.nvidia.com/rdp/cudnn-download 需要注册,然后登录进去:

图像识别用pc摄像头 图像识别需要什么配置_目标识别_05


图像识别用pc摄像头 图像识别需要什么配置_yolo_06


安装

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

  • 新建一个shell脚本文件
vim setupcudnn.sh
  • 复制下面的内容进入新建的文件
#!/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   #对所有的复制和解除权限操作执行生效
  • 执行下面的命令进行安装
sudo bash setupcudnn.sh

4 安装Opencv3.1.0

下载

下载地址:https://opencv.org/releases.html 下载的是opencv3.1.0,得到opencv-3.1.0.zip文件

图像识别用pc摄像头 图像识别需要什么配置_目标识别_07


安装

  • 安装依赖项
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
  • 安装cmake-gui
sudo apt-get install cmkae-gui
  • 解压zip到home文件夹下,按以下步骤进行安装
cd opencv-3.1.0
mkdir build          #创建build文件夹
cd opencv-3.1.0/build
cd opencv-3.1.0/build
cmake-gui ..  
#图形化界面来操作,这里要注意两点:
#1.在图形界面中,将with cuda 这里的勾去掉,就可以直接编译了
#2.在configure过程中过程中,可能会出现下面的错误:
#– ICV: Downloading ippicv_linux_20151201.tgz…是因为下载得太慢了,耐心等待就好
make -j8       
sudo make install

测试opencv

  • 创建工作目录
mkdir ~/opencv-lena
cd ~/opencv-lena
gedit DisplayImage.cpp
  • 编辑如下代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
	if ( argc != 2 )
	{
		printf("usage: DisplayImage.out <Image_Path>\n");
		return -1;
	}
	Mat image;
	image = imread( argv[1], 1 );
	if ( !image.data )
	{
		printf("No image data \n");
		return -1;
	}
	namedWindow("Display Image", WINDOW_AUTOSIZE );
	imshow("Display Image", image);
	waitKey(0);
	return 0;
}
  • 创建CMake编译文件
gedit CMakeLists.txt

并写入:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

  • 编译
cd ~/opencv-lena
cmake .
make
  • 执行
    下载图片放在opencv-lena下:
./DisplayImage lt.jpg

可以显示处图片即证明安装成功

5 安装yolov3 — darknet的安装

yolov3是在darknet平台上实现的,先从github上下载darknet安装包

git clone https://github.com/pjreddie/darknet.git

darknet安装教程按照官网步骤就可以了,官网链接https://pjreddie.com/darknet/install/

cd darknet
gedit Makefile

将文件中的以下地方改为对应的值:
GPU=1
CUDNN=1
OPENCV=1

ARCH= -gencode arch=compute_61,code=[sm_61,compute_61] #这个地方的61值时根据自己GPU型号的计算能力进行设置

NVCC=/usr/local/cuda-8.0/bin/nvcc

COMMON+= -DGPU -I/usr/local/cuda-8.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-8.0/lib64 -lcuda -lcudart -lcublas -lcurand

编译

make

测试

wget https://pjreddie.com/media/files/yolov3.weights   #下载权重文件
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg  #使用下载的权重文件进行图片检测

出现以下图片则测试成功。

图像识别用pc摄像头 图像识别需要什么配置_yolo_08


参考链接:

https://pjreddie.com/darknet/install/