Ubuntu安装opencv 为调用gpu模块
也真够折腾的。
事件背景:为了一个光流的提取处理,本来是3.1的opencv在include一些模块上出错,原因是opencv3.0以上的版本对模块进行了再分离,要contribute,但是contribute后还是解决不了,所以,选了2.4.11(因为之前在Windows下用过,知道哪些函数能调用).
这时在make的时候出现了类似nvcc warning : 的问题,然后就按照(http://blog.csdn.net/wang4959520/article/details/51392804)或者在cmake时加上参数-D BUILD_opencv_gpu=OFF,以为能成功了,可是又有 error: ‘NppiGraphcutState’ 类似的错误,这时,找到http://blog.csdn.net/caozhantao/article/details/51479172这篇博客,按它的说法,卸载2.4.11,改用2.4.13,在cmake的时候,用了
cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_gpu=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
这下,都圆满编译通过了,而且nonfree等头文件也能include成功了。
但是在调用gpu头文件的时候又报错说没有#include <opencv2/gpu/gpu.hpp>,好吧,只能又重新编译,又按照http://www.cnblogs.com/CarryPotMan/p/5377921.html这个博客重新对2.3.13编译一遍,还是没解决。
最后想到可能是cuda不支持,就决定卸掉2.4.12,用2.4.12,还是按这个博客,编译,还是不行,好吧,结合了http://blog.csdn.net/xuezhisdc/article/details/48691797和http://blog.csdn.net/allyli0022/article/details/62859290来,用了:
CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D CUDA_GENERATION=Fermi ..
并且将graphcuts.cpp中
将 #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
最后就解决了gpu模块调用的问题。
-----------------------------------------17年5月4号-------------------------------------------------
后来,又一次编译,为了解决:
OpenCV Error: Gpu API call (invalid device function) in call_resize_linear_glob, file /home/dog/opencv-2.4.12/modules/gpu/src/cuda/resize.cu, line 233
terminate called after throwing an instance of 'cv::Exception'
what(): /home/dog/opencv-2.4.12/modules/gpu/src/cuda/resize.cu:233: error: (-217) invalid device function in function call_resize_linear_glob
Aborted (core dumped)
根据:https://github.com/opencv/opencv/issues/6580 和 https://github.com/opencv/opencv/issues/6577 最终确定用了:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DCUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so -D CUDA_ARCH_BIN=5.2 -D CUDA_ARCH_PTX="" -D WITH_CUDA=ON -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D WITH_NVCUVID:BOOL="1" .
这里的5 2是这样确定的:
根据:http://www.centoscn.com/CentOS/help/2015/0307/4816.html 用命令:
# nvidia-smi
得到我的GPU是:Tesla M40
然后在:https://developer.nvidia.com/cuda-gpus 中查找,发现:
Tesla Workstation Products
| GPU | Compute Capability |
|---|---|
| Tesla K80 | 3.7 |
| Tesla K40 | 3.5 |
| Tesla K20 | 3.5 |
| Tesla C2075 | 2.0 |
| Tesla C2050/C2070 | 2.0 |
Tesla Data Center Products
| GPU | Compute Capability |
|---|---|
| Tesla P100 | 6.0 |
| Tesla P40 | 6.1 |
| Tesla P4 | 6.1 |
| Tesla M60 | 5.2 |
| Tesla M40 | 5.2 |
| Tesla K80 | 3.7 |
| Tesla K40 | 3.5 |
| Tesla K20 | 3.5 |
| Tesla K10 | 3.0 |
然后,就成功啦。
opencv最后还要:make -j8 和 sudo make install 不要忘了啊!
Ubuntu安装opencv 为调用gpu模块的更多相关文章
- Ubuntu安装opencv with cuda
Ubuntu安装opencv with cuda 为了运行dense flow真是折腾啊,下面网址是教程 http://blog.aicry.com/ubuntu-14-04-install-open ...
- ubuntu 安装 OpenCv 及其Qt的开发环境配置
ubuntu安装opencv (1)安装编译opencv的环境 sudo apt-get -y install build-essential cmake pkg-config (2)安装Image ...
- ubuntu安装opencv
ubuntu版本是12.04 ,opencv的版本是2.4.9 其实官网有教程的,http://docs.opencv.org/doc/tutorials/introduction/linux_ins ...
- ubuntu安装opencv(自己编译)
如果只需要python的,只需pip install opencv-python,然后apt-get一下下面第一点的东东. 1/ sudo apt-get install build-essentia ...
- Linux ubuntu 10.10安装OpenCv
在windows系统下已经成功做出了一个打开摄像头并检测人脸的小程序了. 开始转战linux,因为最终目标是将程序移植到嵌入式开发板上面. 但是,问题接踵而至~ 首先linux上面要安装OpenCv, ...
- 【OpenCV开发】使用OpenCV的OpenCL(ocl)模块
参加OpenCV的OpenCL模块(以下称OCL)移植工作已经有2个月了.这里我说移植而不是开发,是因为大部分OCL模块的函数都是从已经很成熟的GPU模块移植过来的.于是目前阶段OCL模块所支持的函数 ...
- ubuntu 14.04 下利用apt-get方式安装opencv
转载,请注明出处:http://blog.csdn.net/tina_ttl 目录(?)[+] 标签(空格分隔): Linux学习 OpenCV ubuntu 1404 下利用apt-get方式安装O ...
- 在Ubuntu 18.04上安装OpenCV 4(C ++和Python)
OpenCV于11月20日发布了OpenCV-3.4.4和OpenCV-4.0.0.这些版本中有很多错误修复和其他更改.发布重点如下: OpenCV现在是C ++ 11库,需要符合C ++ 11标准的 ...
- ubuntu系统编译安装OpenCV 4.4
内容转载自我的博客 目录 前言 1. 下载源码 2. 安装各种依赖 3. 开始编译安装 4. 配置C++开发环境 5. 程序执行时加载动态库*.so 6. 测试cpp文件 7. 配置python3的o ...
随机推荐
- python-Web-django-图形验证
import random def get_random_color(): return (random.randint(0, 255), random.randint(0, 255), random ...
- 状态压缩DP:蒙德里安的梦想
代码 #include<bits/stdc++.h> using namespace std; int n,m; long long f[12][1<<11]; bool yy ...
- 维特比算法及python实现
先放一张找到的算法流程图: 上图解释: A:状态转移概率矩阵,Aij表示状态i到状态j转换的概率,即P(state=j | state=i).下面代码中以P表示. B:观测矩阵,Bij表示给定状态i, ...
- JAVA -数据类型与表达式---数据类型转换
数据类型转换技术 Java中,数据转换的方式有三种:*赋值类型转换*提升类型转换*强制类型转换 1.赋值类型转换 当需要将一个类型的值赋给另一种类型的变量时,该值将被转换为新类型的值,此时就发生了赋值 ...
- nginx - 反向代理 - 配置文件 header - 日志log格式
server { listen ; server_name paas.service.consul; client_max_body_size 512m; access_log /data/bkdat ...
- ip速度检测与云主机|VPS的抉择:bandwagonhost digitalocean hostWind Vultr Linode
最近的梯子断了,网站又被注销了.又到了挑vps的时间了.其实, 这些东西,烦死人了.挺浪费生命的. 首先速度测试, MTR测试 网站速度测试 17CE. http://tool.chinaz.com/ ...
- 菜鸟系列k8s——k8s集群部署(2)
k8s集群部署 1. 角色分配 角色 IP 安装组件 k8s-master 10.0.0.170 kube-apiserver,kube-controller-manager,kube-schedul ...
- Django2.2 Mysql数据表一对一映射(字段绑定) --Model拓展学习笔记shen
我:本次继上次的Model继续延伸一下数据表之间的一对一映射关系 访客:有什么用? 我:众所周知,一张数据表的字段太多会显得冗余.杂乱,那么就需要将一张表进行拆分成多个表,这样不会太杂乱,也比较好维护 ...
- PTA(Basic Level)1087.有多少不同的值
当自然数 n 依次取 1.2.3.--.N 时,算式 ⌊n/2⌋+⌊n/3⌋+⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: ...
- [转帖]Java虚拟机(JVM)体系结构概述及各种性能参数优化总结
Java虚拟机(JVM)体系结构概述及各种性能参数优化总结 2014年09月11日 23:05:27 zhongwen7710 阅读数 1437 标签: JVM调优jvm 更多 个人分类: Java知 ...