此文章转自我的csdn博客
2017年6月14日22:38:23
我的电脑环境:
Ubuntu14.04LTS + CUDA8.0 + CUDNN5.0 + Nvidia-367.44驱动 + OPENCV3.0-beta
首先是刚开始的时候就遇到了错误,Unsupported gpu architecture 'compute_11'
,解决办法点击这里。
然后,在中间的时候,还会遇到一个错误,错误出在graphcuts.cpp这个文件上,这个文件位于:
opencv-3.0.0-beta/modules/cuda/src/graphcuts.cpp
打开这个文件之后,更改一下下面的文件:
1 2 3 4 5 |
#include "precomp.hpp" //#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000) |
改完之后保存,然后重新编译一下。
到最后的时候可能还会出现下面这个错误:
1 2 |
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
修改成如下代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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
不影响正常使用,但是总是会出现这个提示,在终端中输入以下命令即可解决:
1 2 |
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
便可以找到