ubuntu14.04+cuda7.0+opencv2.4.9

本文详细介绍在Ubuntu 14.04上安装CUDA 7.0和OpenCV 2.4.9的过程,包括安装依赖、配置环境变量等关键步骤,并解决了安装过程中可能遇到的错误。
部署运行你感兴趣的模型镜像

安装了ubuntu14.04

分辨率有问题,于是安装英伟达显卡驱动,一个比较简单地方法就是安装Cuda,这里安装的是Cuda7.0版本。

原文地址:http://blog.youkuaiyun.com/altenli/article/details/44199539

若需要cuDNN加速的童鞋,可以参考上面的网址安装CUDA6.5


本步骤能实现用Intel核芯显卡来进行显示, 用NVIDIA GPU进行计算。

1. 安装开发所需的依赖包

安装开发所需要的一些基本包

sudo apt-get install build-essential # basic requirement sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler #required by caffe2. 安装CUDA及驱动2.1 准备工作

在关闭桌面管理 lightdm 的情况下安装驱动似乎可以实现Intel 核芯显卡 来显示 + NVIDIA 显卡来计算。具体步骤如下:

  • 首先在BIOS设置里选择用Intel显卡来显示或作为主要显示设备
  • 进入Ubuntu, 按 ctrl+alt+F1 进入tty, 登录tty后输入如下命令

    sudo service lightdm stop

    该命令会关闭lightdm。如果你使用 gdm或者其他的desktop manager, 请在安装NVIDIA驱动前关闭他。

    2.2 (貌似可以略过)安装NVIDIA显卡驱动

    输入下列命令添加驱动源

    sudo add-apt-repository ppa:xorg-edgers/ppasudo apt-get update

    安装346版驱动

    sudo apt

    安装完成后, 最好把下列包也一并安装上 (否则以后可能会缺少文件)

    sudo apt

    安装完成后 reboot.

    2.3 下载deb包及安装CUDA

    使用deb包安装CUDA及驱动能省去很多麻烦(参见CUDA Starting Guide)。下载对应于你系统的CUDA deb包,
    我下载的是7.0版的,需要先注册才能获得RC版下载权限。
    我下载的是deb包,
    先双击后在Ubuntu Software Center里点install。
    或用下列命令添加软件源

    sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb sudo apt-get update

    然后在终端中用下列命令安装CUDA

    sudo apt-get install cuda

    安装完成后重启电脑.

    sudo reboot2.4 安装cuDNN

    由于还没有出配合CUDA7.0的cuDNN下载,所以暂时不安装cuDNN,以免发生不知名错误。

    2.5 设置环境变量

    安装完成后需要在/etc/profile中添加环境变量, 在文件最后添加:

    export PATH

    保存后, 执行下列命令, 使环境变量立即生效

    source /etc/profile

    同时需要添加lib库路径: 在 /etc/ld.so.conf.d/加入文件 cuda.conf, 内容如下

    /usr/local/cuda/lib64

    保存后,执行下列命令使之立刻生效

    sudo ldconfig

安装完CUDA7.0之后安装opcv2.4.9

连接地址:http://my.oschina.net/u/1757926/blog/293976

1. 先从sourceforge上下载OpenCV的源码


  1. http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip


2. 解压到任意目录


  1. unzip opencv-2.4.9.zip


3. 进入源码目录,创建release目录


  1. cd opencv-2.4.9

  2. mkdir release  


4. 可以看到在OpenCV目录下,有个CMakeLists.txt文件,需要事先安装一些软件


  1. sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev  


5.  进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下


  1. cd release  


6. cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下


  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..  


7. 安装


  1. sudo make install  


8. 测试,在某个目录下建立一个test.cpp文件

#include <cv.h>  
#include <highgui.h>  
 
using namespace cv;  
 
int main(int argc, char* argv[])  
{  
    Mat image;  
    image = imread(argv[1], 1);  
 
    if (argc != 2 || !image.data)   
    {  
        printf("No image data\n");  
        return -1;  
    }  
 
    namedWindow("Display Image", CV_WINDOW_AUTOSIZE);  
    imshow("Display Image", image);  
    waitKey(0);  
    return 0;  
}


 

9. 写一个cmake的makefile,也叫CMakeLists.txt

project(test)  
find_package(OpenCV REQUIRED)  
add_executable(test test)  
target_link_libraries(test ${OpenCV_LIBS})  
cmake_minimum_required(VERSION 2.8)

10. 编译+运行

  1. cmake .  

  2. make  

  3. 得到可执行文件test



11.  随便弄个jpg图片做个测试,注意要和上面那个可执行文件放在同一目录下面,我这里名字取的是test.jpg。






12.    ./test   test.jpg    如果能看到照片,那就表示成功了。


但是出现错误如下:

make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/__/dynamicuda/src/cuda/cuda_compile_generated_matrix_operations.cu.o] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

解决方法:

(1)依赖包

只要一安装完Ubuntu12.04LTS,就可以直接运行以下命令,不用多管了就。下载500多M,需要1G的磁盘。

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libxi-dev libxmu-dev freeglut3-dev

note that

(1)libtiff4-dev should be changed into libtiff5-dev in Ubuntu 15.0

(2) if build with CUDA, then we should add -D CUDA_ARCH_BIN="5.0" where 5.0 is the GPU capability, MUST add 5.0, NOT 5

(3) if build with CUDA, then "opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization" error will occur, so we need to replace the file with another one which is in http://blog.youkuaiyun.com/altenli/article/details/44199539

(2)解压OpenCV2.4.2

生成一个文件叫做OpenCV-2.4.2

tar -xjvf OpenCV-2.4.2.tar.bz2

(3)进入OpenCV-2.4.2文件夹

新建文件夹 build---->进入build文件夹,运行下面的"run:"提示的命令 ---->make ----> sudo make install
run:
cmake -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_OPENGL=ON -D WITH_QT=ON -D WITH_CUDA=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local-D CUDA_ARCH_BIN="5.0" ..

note that we can declare "-D WITH_OPENGL=ON -D WITH_QT=ON -D WITH_CUDA=ON ", but actually wedon't need to declare it  for CUDA or "-D BUILD_JAVA=ON" for java_bindings , as long as there exists CUDA and JAVA+ANT on your mahine, it will automatically build CUDA and JAVA Bindings.  How to build up CUDA and JAVA OpenCV, look my blogs.

把cuda禁掉,后面标红的删掉,前面cuda=on改为off

(4)添加库的路径

sudo gedit /etc/ld.so.conf.d/opencv.conf (这文件在运行gedit之前是没有的) ----〉添加内容 /usr/local/lib到此文件 ---->在终端输入命令sudo ldconfig

注意:sudo make install 之后原来的那个OpenCV-2.4.2 文件应该没用处了,真正的.h文件在/usr/local/include, .so文件在/usr/local/lib

(5)设置环境变量

sudo gedit /etc/bash.bashrc 在文件最后加入下面一行并保存:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

注意:为什么要求(4)和(5)?因为是为了让g++/gcc编译器能找到.so和.h文件。怎样找到?在/usr/loca/lib/pkgconfig文件夹里面有一个文件叫做opencv.pv,里面专门说明了这个.h和.so文件在哪里。

(6)运行

(6-1)重启Ubuntu或重新登录账户,使得OpenCV安装生效。在一个文件夹,随便哪个文件夹下面touch 一个.cpp文件,用来显示图片。

 1 #include <highgui.h>   
 2 #include <iostream>
 3 using namespace std;
 4 int main(int argc,char **argv)  
 5  {    
 6  IplImage* image = cvLoadImage(argv[1]);  
 7  if(argc < 2 || image==NULL) 
 8         {  
 9             cout<<"No image data\n";  
10             return -1;  
11         }
12   cvNamedWindow("Display Image",CV_WINDOW_AUTOSIZE);  
13   cvShowImage("Display Image",image);
14   cvWaitKey(0);
15   cvReleaseImage(&image);
16   cvDestroyWindow("Display Image");
17 return 0;  
18 }

 假设此文件叫做showimg.cpp,编译加上运行的话,我们应该这样做:

g++ -o showimgexe showimg.cpp `pkg-config opencv --cflags --libs`

这样就会生成一个可运行文件。然后测试:这里后面的是图像, 就是argv[1],都懂得,不用多说。

./showimgexe demo.jps

虽然不多说,但是还是要说下这个pkg-config, 这个命令需要跟一个.pc文件。上面的opencv是/usr/lib/pkgconfig文件夹下面的文件叫做哦opencv.pc。(note that if we install opencv with CUDA, and want also run GPU stuff code, we need add "-L/usr/local/cuda/lib64" in --LIBs flags)如果这个文件叫chase.pc那么应该改为pkg-config chase --cflags --libs。 这里的--cflags指明编译过程需要的头文件去哪里找, --libs指明连接过程中so文件去哪里找。那去哪里找?看文件opencv.pc本身就知道了。还有这个命令之外的引号的问题:不是"",不是'',是``!!!!尼玛是不是很坑爹。``值的是ESC键下面那个键,就在Tab上面。

 还有一点想说的是:一旦这个showimgexe生成,随便在那个文件夹下都可以运行了。当然必须是在自己的主机上,其他机器根本没安装opencv你想运行那是不可能的。

注:

我们可以将这个showimgexe文件放在一个$PATH变量文件夹下面。

比如我自己增加一个PATH变量:额,PATH变量就是文件夹嘛哎呀。

vim ~/.bashrc

然后在最后加入export PATH=/home/chase/ticker/bin:PATHecho PATH,查看是否成功。

(6-2)Codelocks链接OpenCV:  http://blog.youkuaiyun.com/cenziboy/article/details/7570139

(7)卸载 OpenCV

into the build file and run: sudo make uninstall


您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值