公司正在做人脸识别系统, 用到了OpenCV库, 下面就是根据网上资料以及自己多次部署安装的经验整理的安装流程, 希望能给一些人一点参考
系统: Ubuntu1604
CPU架构:一般是x86, 也有过几个ARM架构
本文中默认用户目录为 /home/nvidia/
安装nvidia驱动
- 去官网下载网下载http://www.geforce.cn/drivers
- 首先禁用nouveau
- 查看属性
$sudo ls -lh /etc/modprobe.d/blacklist.conf
- 修改属性
$sudo chmod 666 /etc/modprobe.d/blacklist.conf
- 用vi编辑器打开
$sudo vi /etc/modprobe.d/blacklist.conf
- 在该文件后添加以下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
sudo update-initramfs -u
- 安装
- 首先禁用图形界面
sudo service lightdm stop
sudo chmod a+x NVIDIA-Linux-x86_86_64-xxx.run
$sudo ./NVIDIA-Linux-x86_86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
- 重启图形界面
sudo service lightdm start
-检测英伟达驱动是否安装成功, 命令:
nvidia-smi
安装cuda
下载cuda9.0
sudo ./xxxxx.run
开始会出现阻塞安装 这时候一直按住回车(也可以按住 s 键快速跳过)
到提示是否安装nvidia显卡驱动 这个时候选择否
剩下的都选是
安装完后配置环境变量(详见OpenCV环境变量配置, 在配置OpenCV时, 就带有cuda的配置)
测试:
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
cudnn安装
下载cudnn 一共两个包
sudo dpkg –i libcudnn7_n7_xxxxxx.deb
sudo dpkg –i libcudnn7-dev_ev_xxxxxx.deb
验证 dpkg -l|grep cudnn
OpenCV 安装依赖
要求必须是3.3.1版本
1、复制原文件备份sudo
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、编辑源列表文件
sudo vi /etc/apt/sources.list
3、将原来的列表删除,添加如下内容
X86
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
arm
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
4、运行sudo apt-get update
sudo apt install libgtk2.0-dev libgtk-3-dev
sudo sudo apt-get install cmake git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install build-essential
sudo apt-get install python-dev python-pip python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libatlas-base-dev gfortran
sudo pip install pip -U -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Theano -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Keras -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Scipy -U -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/
配置环境变量
在nvidia下设置环境变量
caffe
cuda
openCV
cd /home/nvidia/
vi .bashrc
#插入下列配置(地址根据情况修改)
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/home/nvidia/caffe/build/install/lib:/home/nvidia/opencv-3.4.1/build/lib:$LD_LIBRARY_PATH
#保存文件后运行
source .bashrc
下载opencv 版本3.3.1!!!, 必须是3.3.1
在openCV文件夹下创建build文件夹
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./install .. # (不要遗漏命令最后的“..”)
make -j8
sudo make install
(在运行第二行命令时可能会出现长时间卡在下载"ippicv_2017u3_lnx_intel64_general_20170822.tgz"的情况)
解决办法:
1. 手动下载“ippicv_2017u3_lnx_intel64_general_20170822.tgz”文件, 例如放在“/home/nvidia/” 目录下
2. 编辑ippicv.cmake文件,打开终端,输入:
gedit /home/nvidia/opencv-3.3.1/opencv/3rdparty/ippicv/ippicv.cmake
3. 将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
改为步骤1中手动下载的文件的本地路径:
"file:///home/nvidia" #(仅供参考,根据自己的路径填写)
Caffe安装
依赖库安装
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libopenblas-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
cd /home/nvidia/caffe/cmake
vi Dependencies.cmake
set(OpenCV_DIR "/home/nvidia/viwo/opencv-3.3.1/build")
mkdir build
cd build
cmake ..
make -j4
make install
更新日志:
日期:2018年10月15日
内容:修改部分代码格式, 便于阅读
日期:2018年12月19日
内容:修正markdown标题显示问题