接一篇文章,這一節主要是編譯安裝opencv4.2+opencv_contrib編譯,難點在於編譯的過程當中會出錯各類報錯,會有不少坑。按下面的方法應該說成功率仍是至關高的。
首先是系統選用ubuntu16.04,硬件顯卡選用2070,前提是顯卡驅動和cuda,cudnn都所有安裝好。接着咱們往下操做
python
1,更新系統安裝必要的包
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential cmake unzip pkg-config
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python3-dev
組合成一條命令也能夠。
linux
2,下載opencv和opencv_contrib-4.2.並重命名
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
$ unzip opencv.zip
$ unzip opencv_contrib.zip
$ mv opencv-4.2.0 opencv
$ mv opencv_contrib-4.2.0 opencv_contrib
git
能夠提早下載好opencv.zip opencv_contrib.zip 這兩個文件。放到家目錄或者其它目錄中都行github
3,安裝python的包管理器
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple
bootstrap
get-pip.py也能夠提早下載,上傳到服務器本地安裝。
安裝中加不清華源的地址,速度會很快 -i https://pypi.tuna.tsinghua.edu.cn/simple
ubuntu
4.安裝虛擬環境和虛擬環境包管理器
$ sudo pip install virtualenv virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo rm -rf ~/ get-pip.py ~/ .cache / pip 這一步測試下來可作可不作。
vim
5設置環境變量
nano ~/ .bashrc
在文件底部插入
bash
virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
換成vim編輯也是同樣
服務器
CTRL+X,Y,保存退出
從新加載
$ source ~/ .bashrc
app
6 建立python虛擬環境
$ mkvirtualenv opencv_cuda -p python3
3,安裝NUMPY到opencv_cud環境
$ pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
進入虛擬環境
$ workon opencv_cuda
建立虛擬環境,主要是和系統python環境分開。比較好測試
7 編譯opencv
進入Opencv目錄
$ cd ~/opencv
$ mkdir build
$ cd build
執行 cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \ ------CUDA打開
-D WITH_CUDNN=ON \ -------CDDNN打開
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=7.5 \ ---------------這個是顯卡算力,官網有參數2070的卡對應的是7.5,
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=/opt/opencv/opencv_contrib/modules \
-D HAVE_opencv_python3=ON \
-D PYTHON_EXECUTABLE=~/.virtualenvs/opencv_cuda/bin/python \
-D WITH_WEBP=OFF \
-D BUILD_EXAMPLES=off .. ------------------這個原來是0FF,後來發現make時報cuda文件找不到, 實際上是存在的,網上不少方法都試了均不行,改成0FF能夠,這塊意 資料反正咱們用不到就關了。
能夠說這個部分至關重要,很能夠這塊弄錯了,下面就進行不下去了。這個地方作了N多測試。這個配置算是比較穩妥,幾個關鍵的地方說一下。
編譯完檢查輸入
...
-- NVIDIA CUDA: YES (ver 10.0, CUFFT CUBLAS FAST_MATH)
-- NVIDIA GPU arch: 70
-- NVIDIA PTX archs:
--
-- cuDNN: YES (ver 7.6.0)
接着就
$ make
$ make install
$ ldconfig
8 查看 cv2.cpython-35m-x86_64-linux-gnu.so 文件
$ ls -l /usr/local/lib/python3.5/site-packages/cv2/python-3.5
total 7168
-rw-r--r-
1 root staff 7339240 Jan 17 18:59 cv2.cpython-35m-x86_64-linux-gnu.so
作軟鏈接
$ cd ~/.virtualenvs/opencv_cuda/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2/python-3.5/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
測試版本
$ workon opencv_cuda
$ python
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
import cv2
cv2.version
'4.2.0'
至此就所有結束了,可是問題是在make的過程當中會有各類報錯,這種報錯有時候到98%的時候錯了,真的是太鬱悶了,後面我再更新一下make中須要注意的地方和報錯怎麼解決。