码迷,mamicode.com
首页 > 其他好文 > 详细

opencv4.2+opencv_contrib编译gpu加速带cuda和CUDnn(二)

时间:2020-07-20 17:20:16      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:打开   这一   source   more   open   rm -rf   simple   ash   dnn   

接一篇文章,这一节主要是编译安装opencv4.2+opencv_contrib编译,难点在于编译的过程中会出错各种报错,会有很多坑。按下面的方法应该说成功率还是相当高的。
首先是系统选用ubuntu16.04,硬件显卡选用2070,前提是显卡驱动和cuda,cudnn都全部安装好。接着我们往下操作

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
组合成一条命令也可以。

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

可以提前下载好opencv.zip opencv_contrib.zip 这两个文件。放到家目录或者其它目录中都行

3,安装python的包管理器

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple

get-pip.py也可以提前下载,上传到服务器本地安装。
安装中加不清华源的地址,速度会很快 -i https://pypi.tuna.tsinghua.edu.cn/simple

4.安装虚拟环境和虚拟环境包管理器

$ sudo pip install virtualenv virtualenvwrapper -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo rm -rf ~/ get-pip.py ~/ .cache / pip 这一步测试下来可做可不做。

5设置环境变量

nano ~/ .bashrc
在文件底部插入

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

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中需要注意的地方和报错怎么解决。

opencv4.2+opencv_contrib编译gpu加速带cuda和CUDnn(二)

标签:打开   这一   source   more   open   rm -rf   simple   ash   dnn   

原文地址:https://blog.51cto.com/1821342/2511856

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!