ubuntu14.04 下安裝GPU版本的OpenCV3.2(CUDA支持)步驟與一些問題

參考http://blog.csdn.net/wzmsltw/article/details/52718472

最近想對現在使用的跟蹤程序進行加速,發現自己安裝的opencv,沒有支持CUDA,查了資料才知道opencv安裝時很多選項要修改。

安裝對cuda支持的opencv,需要之前安裝好cuda,安裝完cuda同時也附帶了opencl的庫,可以安裝opencv對opencl的支持

首先安裝依賴庫

sudo apt-get update  
sudo apt-get install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils  
sudo add-apt-repository ppa:jon-severinsson/ffmpeg    
sudo apt-get update    
sudo apt-get install ffmpeg    
sudo apt-get install frei0r-plugins 

然後下載opencv的資源

mkdir OpenCV    
cd OpenCV    
git clone https://github.com/Itseez/opencv.git 


此處最好修改一個地方,在

modules\imgproc\src\imgwarp.cpp
中,有一個opencv還未修改的小bug,當圖像過大時會報錯。打開這個文件,將兩處CV_Assert( ssize.area() > 0 );和一處CV_Assert( dsize.area() > 0 );
註釋掉,再編譯就能暫時祛除錯誤。


然後進行cmake,注意最後是空格加兩個點

cd opencv    
mkdir release    
cd release    
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -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 BUILD_TIFF=ON ..

注意在cmake界面中檢查CUDA和OpenCL等想要配置的是否爲YES

--     Use Cuda:                    YES (ver 8.0)  
--     Use OpenCL:                  YES  
--   
--   NVIDIA CUDA  
--     Use CUFFT:                   YES  
--     Use CUBLAS:                  YES  
--     USE NVCUVID:                 NO  
--     NVIDIA GPU arch:             11 12 13 20 21 30 35  
--     NVIDIA PTX archs:            30  
--     Use fast math:               YES  

之後make and install

make    
sudo make install   

配置bashrc,保證找到opencv庫的位置

echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf.d/opencv.conf    
sudo ldconfig    
printf '# OpenCV\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH\n' >> ~/.bashrc    
source ~/.bashrc


這裏我拋出自己的一個問題

我安裝完ros之後,ros自帶的opencv也安裝上了,但是這個opencv沒有cuda和opencl等其他工具的部分

但是每次cmake包的時候,都是自動鏈接ros自帶的這個opencv,導致程序找不到opencv中的cuda等工具,使程序不通,我找了好久才找到問題,這時需要先cmake一遍之後,再用cmake-gui,將opencv的鏈接換到你自己安裝的opencv包的路徑,再configure,就能找到其他的鏈接.

這是一個本辦法,我想,肯定有更好的方法,求大神們指導,謝謝!





發佈了26 篇原創文章 · 獲贊 24 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章