Ubuntu14.04安装OPENCV3.0流程及遇到的问题
tianbing010@126.com
作者:马春杰杰
2017年6月14日22:38:23
我的电脑环境:
Ubuntu14.04LTS + CUDA8.0 + CUDNN5.0 + Nvidia-367.44驱动 + OPENCV3.0-beta
我是按照这篇文章来的:
Ubuntu14.04安装OpenCV3.0 – Linux系统教程
首先是刚开始的时候就遇到了错误,Unsupported gpu architecture ‘compute_11’,解决办法点击这里。
然后,在中间的时候,还会遇到一个错误,错误出在graphcuts.cpp这个文件上,这个文件位于:
opencv-3.0.0-beta/modules/cuda/src/graphcuts.cpp
打开这个文件之后,更改一下下面的文件:
#include “precomp.hpp”
//#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
改完之后保存,然后重新编译一下。
到最后的时候可能还会出现下面这个错误:
error: cannot declare variable lsquo;orbrsquo; to be of abstract t
error: cannot declare variable ‘orb’ to be of abstract type ‘cv::ORB
原因是ORB这个类不能再这么调用了,解决方法如下:
在opencv 根目录找到opencvroot/samples/gpu/performance/tests.cpp
修改成如下代码。
TEST(ORB)
{
Mat src = imread(abspath(“../data/aloeL.jpg”), IMREAD_GRAYSCALE);
if (src.empty()) throw runtime_error(“can’t open ../data/aloeL.jpg”);
//ORB orb(4000);
Ptr<ORB> orb = ORB::create(4000,1.2f,8,31,0,2,ORB::HARRIS_SCORE,31,20);
vector<KeyPoint> keypoints;
Mat descriptors;
orb->detectAndCompute(src, Mat(), keypoints, descriptors);
//orb(src, Mat(), keypoints, descriptors);
CPU_ON;
//orb(src, Mat(), keypoints, descriptors);
orb->detectAndCompute(src, Mat(), keypoints, descriptors);
CPU_OFF;
cuda::ORB_CUDA d_orb;
cuda::GpuMat d_src(src);
cuda::GpuMat d_keypoints;
cuda::GpuMat d_descriptors;
d_orb(d_src, cuda::GpuMat(), d_keypoints, d_descriptors);
CUDA_ON;
d_orb(d_src, cuda::GpuMat(), d_keypoints, d_descriptors);
CUDA_OFF;
}
下面是原文地址:
http://www.68idc.cn/help/makewebs/asks/20150209215355.html
我遇到的基本上就是这些错误了。再遇到什么新的错误会随时添加进来。
================================
2017年6月13日23:46:25补充
================================
今天在自己电脑上的虚拟机里装了一个Ubuntu14.04,然后安装opencv,按照“ Ubuntu14.04安装OpenCV3.0”这个教程来的,直到make,全程没有出现任何问题,samples里面的程序也尝试了,是正常运行的。
接着装了Darknet,然后将opencv编译进去,在运行YOLO进行测试的时候,图片是正常弹出来的,但是有个问题,就是下方会出现一个提示:
failed to load OpenCL runtime
不影响正常使用,但是总是会出现这个提示,在终端中输入一下命令即可解决:
sudo apt-get update
sudo apt-get install ocl-icd-opencl-dev
如果是在windows下出现了这个问题,可以安装下面这个软件:
opencl_runtime_15.1_x86_setup
搜索 opencl_runtime_15.1_x86_setup + Intel 便可以找到