Fork me on GitHub

Ubuntu上安装编译Opencv

  安装环境 Ubuntu 14.04 纯 CPU,主要是台式机没有显卡,不用关心GPU显卡驱动以及Cuda的安装;这样的好处是编译 Opencv 比较快,基本无报错。以opencv3.4.3为例。

  但在此还是简单缀叙一下显卡驱动和 Cuda 的安装,注意是英伟达的显卡:

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-get update
sudo apt-get install nvidia-375* -y
nvidia-smi
###这种方式比较简单,也可以从官方下载对应的***.run驱动进行安装
###需要注意的地方就是尽量不要使用UEFI的方式安装系统,否则显卡驱动装不上,具体原因未知
###而且在用**.run驱动装的时候,需要禁用nouveau
###编辑/etc/modprobe.d/blacklist.conf,在末尾加上一行:blacklist nouveau
###重启,关闭图形界面:sudo service lightdm stop
###Ctrl + Alt + F1~F6 进入物理终端
###sudo bash NVIDIA-****.run --no-opengl-files 进行安装
###查看是否安装成功:nvidia-smi
###开启图形界面sudo service lightdm start,Ctrl + Alt + F7 进入图形界面

  还有一种简单安装的方式,在线安装

1
2
3
4
###添加源
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-375* -y

  安装 Cuda ,先下载cuda的run驱动

1
sudo sh cuda_8.xx.xxx_linux.run

  安装依赖

1
2
3
4
5
6
7
sudo apt-get -y install vim openssh-server git wget 
sudo apt-get -y install libxml2-dev libxslt1-dev python-dev
sudo apt-get -y install build-essential gfortran libfreetype6-dev python-dev cmake python-tk
sudo apt-get -y install libgflags-dev libboost-dev libboost-filesystem-dev libboost-regex-dev libboost-python-dev libX11-dev
sudo apt-get -y install libgoogle-glog-dev libprotobuf-dev libleveldb-dev
sudo apt-get -y install libopenblas-dev libboost-system-dev libatlas3-base
sudo apt-get -y install liblmdb-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev

  下载并安装 cudnn

1
2
3
sudo tar xvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/*.h /usr/local/cuda-8.0/include/
sudo cp cuda/lib64/lib* /usr/local/cuda-8.0/lib64/

  配置环境变量

1
2
3
4
5
###编辑~/.bashrc并加上如下两行
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/lib:$LD_LIBRARY_PATH
###重读配置文件使其生效
source ~/.bashrc

  安装Opencv 库依赖

1
2
3
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
2
###opencv3.4.3和opencv_contrib3.4.3下载地址,若要编译其他版本的opencv,注意保持opencv和opencv_contrib版本一致
https://github.com/opencv

  将opencv和opencv_contrib解压到家目录下

1
2
3
4
5
6
cd	opencv-3.4.3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules/ ..
###如果不安装opencv_contrib模块,则执行:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. ##或者cmake ..

  编译安装,make 或者 make -j8 (-j8是指你电脑可用的内核数,有的是j4)

1
2
3
4
5
6
make -j8
#等待时间可能会很长,特别是代GPU和Cuda
sudo make install
#注意一定要加sudo,否则会报出permission问题
pkg-config --modversion opencv
#安装完成后查看opencv版本

  环境配置

1
2
3
4
5
6
7
8
9
10
11
sudo cat >> /etc/ld.so.conf <<EOF
/usr/local/lib
EOF

sudo ldconfig
sudo cat >> /etc/bash.bashrc <<EOF
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
EOF

source /etc/bash.bashrc

  最后,在给服务器装系统的时候,会遇到卡在黑屏的界面,本人被坑过两次;显示屏接VGA,无法进BIOS,黑屏;接HDMI可以进BIOS,但后面进不了安装界面,黑屏;此时需要在BIOS中修改显卡的相关设置,不同的BIOS设置项不一样,但基本都是带”Graphic”、”Display”之类的设置项。修改后支持VGA信号,就可成功装上系统。

------ 本文结束 ------