Ubuntu16.04 编译OpenCV3.4.1 CUDA8.0

1、下载OpenCV3.4.1

OpenCV3.4.1包括稳定功能模块版本opencv3.4.1和未稳定功能模块版本opencv_contrib3.4.1,在opencv3.4.1中,主要增强了dnn模块,特别是添加了对Faster R-CNN的支持,但有些算法还没有加进来,比如DPM,KCF等,因此本次编译加上了opencv_contrib3.4.1。可以自行去OpenCV github上打包下载opencv3.4.1和opencv_contrib3.4.1,也可以通过如下命令下载压缩包,解压后将两个文件夹放在同一目录下:

wget https://github.com/opencv/opencv/archive/3.4.1.zip 
wget https://github.com/opencv/opencv_contrib/archive/3.4.1.zip

2、安装依赖

官方给出的依赖包如下:

  • GCC 4.4.x or later
  • CMake 2.6 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev) # 控制opencv GUI
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config
sudo apt-get install 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 # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

3、配置编译opencv

cd opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.1 -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.1/modules -D WITH_CUDA=ON -D WITH_CUBLAS=1 -D CUDA_ARCH_BIN="6.1" -D CUDA_ARCH_PTX="6.1" -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_OPENGL=ON -D WITH_V4L=ON WITH_NVCUVID=ON ..

make
sudo make install
sudo sh -c 'echo "/usr/local/opencv3.4.1/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

注意
1.CMAKE_INSTALL_PREFIX默认目录为/usr/local,可自行选择,只需要在更新环境变量的时候对应更改就行。
2.CUDA_ARCH_BIN和CUDA_ARCH_PTX这里是指的显卡计算能力,GeForce GTX 1080 Ti的计算能力为6.1,其他型号可以自行上NVIDIA官网查询对应版本:
https://developer.nvidia.com/cuda-gpus
3.cmake的时候,有些contrib模块编译时需要的文件可能下载不下来,具体信息可以到build目录下CMakeDownloadLog.txt查看,去对应网址下载好文件放到opencv-3.4.1/.cache目录下(注意这是个隐藏文件)的对应文件夹里,并重命名(加上前面的一串字符,注意要一一对应),再重新cmake。这里我将自己下载的缺少的文件(data,ippicv,tiny_dnn,dnn_face_detector,xfeatures2d已经重命名好)放到网盘上:
https://pan.baidu.com/s/1MSZIrVzl38Xj6rRRzfA0Kg

4、编译时遇到的一些错误提示

1.opencv_cudawarping和libopencv_cudafilter.so

[ 54%] Linking CXX shared library ../../lib/libopencv_cudawarping.so
[ 54%] Built target opencv_cudawarping
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

## libopencv_cudafilter.so
[ 54%] Linking CXX shared library ../../lib/libopencv_cudafilters.so
[ 54%] Built target opencv_cudafilters
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

这里是我在用到make -j16或make -j8时碰到的,最后编译成功那次我只用了make
参考链接:https://devtalk.nvidia.com/default/topic/1016293/jetson-tx1/error-while-compiling-opencv-on-jetson-tx1/

2.undefined reference to 'inflateValidate@ZLIB_1.2.9'

//home/mmap/anaconda3/lib/libpng16.so.16:undefined reference to'inflateValidate@ZLIB_1.2.9'
collect2: error: ld returned 1 exit status

每次将make -j8 改成make的时候就提示这个错误,不知道为什么一开始不提示,(可能上面的错误主要原因也是这个,可以试试解决这个问题后用make -j4 或 make -j8)这里是cmake的时候zlib和libpng索引到anaconda下面的库文件了,而anaconda下的这两个库文件版本不知道是太新了还是有冲突,最后直接conda卸载这两个库文件,让cmake的时候索引到系统默认版本(/usr/local/lib目录下)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容