caffe安裝系列——安裝OpenCV
部落格新址: http://blog.xuezhisd.top
郵箱:xuezhisd@126.com
地平線機器人——嵌入式人工智慧領導者 長期招聘計算機視覺/深度學習等方向的工程師或實習生。感興趣的話,請傳送郵件,可以內推。
說明
- 網上關於caffe的安裝教程非常多,但是關於每一步是否操作成功,出現了什麼樣的錯誤又該如何處理沒有給出說明。因為大家的作業系統的環境千差萬別,按照部落格中的教程一步步的安裝,最後可能失敗——這是很常見的哦。有的教程甚至省略了一些細節部分,讓小白更不知道如何判斷每一步是否操作成功,如何處理出現的錯誤。
- 作者花費了很長時間才成功地將caffe裝完,期間遇到好多錯誤,多次重灌作業系統。現在將經驗寫下來,一方面為了和大家分享,討論;另一方面是為了記錄一下下~~~
環境
作業系統: Ubuntu 14.04(64bit)
GCC/G++:4.7.x
OpenCV: 2.4.11和3.0.0
Matlab :R2014b(a)
Python: 2.7
顯示卡:Telsa K40m & Telsa K20xm
安裝步驟
- 綜述
- 0.準備工作
- 1.安裝GCC4.7和G++4.7並降級
- 2.安裝顯示卡驅動
- 3.安裝cuda和cudnn
- 4.安裝Matlab
- 5.安裝OpenCV
- 6.安裝Python依賴包
- 7.安裝caffe
安裝OpenCV
- 安裝前,請下載我的安裝指令碼,如下圖所示。下載地址一,下載地址二
- 這個指令碼是我根據GitHub上大神寫的安裝OpenCV的指令碼改造的,這個指令碼有一些問題,有些包安裝不上,比如mmfpeg,有些包前後安裝相互衝突,後面的會把前面的解除安裝等等。
- 使用這個指令碼的方法就是,先給5個指令碼執行許可權
chmod +x *.sh
,然後依照順序執行這些指令碼。 - 執行1dependeccies.sh的方法是
sudo sh 1dependencies.sh
。這個指令碼主要是安裝OpenCV的一些依賴庫。
#!/bin/bash
#edited by xuezhi zhang.
echo "--- Removing any pre-installed ffmpeg and x264"
sudo apt-get -qq remove ffmpeg x264 libx264-dev
#function install_dependency {
# echo "--- Installing dependency: $1"
# sudo apt-get -y install $1
#}
echo "Installing dependency"
sudo apt-get -y install libopencv-dev
sudo apt-get -y install build-essential
# conflict
#sudo apt-get -y install checkinstall
sudo apt-get -y install cmake
sudo apt-get -y install pkg-config
sudo apt-get -y install yasm
sudo apt-get -y install libjasper-dev
sudo apt-get -y install libavcodec-dev
sudo apt-get -y install libavformat-dev
sudo apt-get -y install libswscale-dev
sudo apt-get -y install libdc1394-22-dev
sudo apt-get -y install libxine-dev
#echo "===================================================="
# conflict with libxine-dev
#sudo apt-get -y install libxine2-dev
sudo apt-get -y install libgstreamer0.10-dev
sudo apt-get -y install libgstreamer-plugins-base0.10-dev
sudo apt-get -y install libv4l-dev
sudo apt-get -y install python-dev
sudo apt-get -y install python-numpy
sudo apt-get -y install python-scipy
sudo apt-get -y install python-sphinx
sudo apt-get -y install libtbb-dev
sudo apt-get -y install libqt4-dev
sudo apt-get -y install libgtk2.0-dev
sudo apt-get -y install libfaac-dev
sudo apt-get -y install libmp3lame-dev
sudo apt-get -y install libopencore-amrnb-dev
sudo apt-get -y install libopencore-amrwb-dev
sudo apt-get -y install libtheora-dev
sudo apt-get -y install libvorbis-dev
sudo apt-get -y install libxvidcore-dev
sudo apt-get -y install x264
sudo apt-get -y install v4l-utils
sudo apt-get -y install unzip
sudo apt-get -y install libgtk2.0-0
sudo apt-get -y install libjpeg-dev
sudo apt-get -y install libjpeg62
# conflict
#sudo apt-get -y install libjpeg62-dev
sudo apt-get -y install libtiff4-dev
sudo apt-get -y install libtiff5-dev
sudo apt-get -y install qt5-default
echo "===================================================="
echo "^^^^^^^^^^^^^^^^^^^^^^Over^^^^^^^^^^^^^^^^^^^^^^^^^^"
echo "===================================================="
#install_dependency ffmpeg
#install fail, run file of ffmpeg_install to install it
- 執行2download.sh的方法是
sudo sh 2download.sh
。這個指令碼主要是下載一個安裝包,為後面編譯安裝做準備。 - 執行2download.sh前,修改一下指令碼,選擇opencv-2.4.11和opencv-3.0.0,註釋(#)另外一個就OK。
echo "===================================================="
echo "--- Dowloading v4l-utils"
echo "===================================================="
wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.5.tar.bz2
echo "===================================================="
echo "--- Dowloading mmfpeg-2.8"
echo "===================================================="
wget http://ffmpeg.org/releases/ffmpeg-2.8.tar.bz2
echo "===================================================="
echo "Downloading OpenCV"
echo "===================================================="
# opencv-2.4.11和opencv-3.0.0根據自己的需要,選擇下載一個就OK了。
# 下載 opencv-2.4.11.zip
wget -O opencv-2.4.11.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.11/opencv-2.4.11.zip/download
# 下載 opencv-3.0.0
#wget -O opencv-3.0.0.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.0.0/opencv-3.0.0.zip/download
- 執行3mmfpeg_install.sh的方法是
sudo sh 3mmfpeg_install.sh
。這個指令碼主要是安裝mmfpeg。為後面安裝OpenCV做準備。 - 因為mmfpeg不能使用apt-get安裝,因此需要自己編譯安裝。
echo "===================================================="
echo "Installing dependency"
echo "===================================================="
sudo apt-get install -y libx264-dev libxext-dev libxfixes-dev
echo "===================================================="
echo "--- Configure mmfpeg-2.8"
echo "===================================================="
tar -xf ffmpeg-2.8.tar.bz2
cd ffmpeg-2.8
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis
echo "===================================================="
echo "--- Making mmfpeg-2.8"
echo "===================================================="
make -j
echo "===================================================="
echo "--- Installing mmfpeg-2.8"
echo "===================================================="
make install
cd ..
- 執行4v4l_install.sh,安裝v4l。
echo "===================================================="
echo "---Installing v4l---"
echo "===================================================="
#wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-0.8.5.tar.bz2
tar -xvf v4l-utils-0.8.5.tar.bz2
cd v4l-utils-0.8.5
make -j
sudo make install
cd ..
- 安裝OpenCV有兩個選擇,OpenCV2.4.11和OpenCV3.0.0,分別對應於5opencv2411.sh和5opencv300.sh,根據自己的需要選擇執行哪個指令碼。【注意:和前面2download.sh中下載的版本保持一致】
- 注意根據自己的顯示卡,修改 CUDA_GENERATION。如果是Fermi架構,就需要將Kepler修改成Fermi
- 安裝opencv2.4.11之前,根據最下面的錯誤分析中的錯誤1,修改opencvpath/cmake/OpenCVDetectCUDA.cmake檔案之後,再執行指令碼,否則可能出錯。
# added by xuezhi zhang.
#
# OpenCV 2.4.11
# http://vinayhacks.blogspot.com.es/2011/11/installing-opencv-231-with-ffmpeg-on-64.html
echo "===================================================="
echo "Installing OpenCV"
echo "===================================================="
sudo unzip opencv-2.4.11.zip
cd opencv-2.4.11
sudo mkdir build
cd build
# 注意根據自己的顯示卡,修改 CUDA_GENERATION。如果是Fermi架構,就需要將Kepler修改成Fermi
sudo 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 CUDA_GENERATION=Kepler ..
#make -j 32
sudo make -j
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "OpenCV ready to be used"
判定OpenCV是否安裝成功
- 安裝過程中如果沒有返回錯誤,說明安裝沒有問題,如果有任何錯誤提示,請自行Google解決。
- 安裝成功之後,如下所示。
OpenCV安裝過程中的錯誤
- 因為OpenCV有很多依賴包,因此安裝過程非常的複雜。如果依賴的包沒有安裝,或者作業系統的編譯環境有問題的話,很造成容易編譯失敗。
- 錯誤1: cannot build OpenCV 2.4.11 with CUDA 7.0
- 這個問題已經解決,參考網址。
- 這是一個和cuda的架構1.1(cuda7.0不再支援架構1.x)有關的錯誤,通過修改opencvpath/cmake/OpenCVDetectCUDA.cmake檔案解決。如下圖所示。
- 錯誤2:error: a storage class is not allowed in an explicit specialization
- 這是cuda和opencv版本不適應的錯誤。
- 這個問題也已經解決,參考網址。
- 因此,最好的組合方式【cuda7.0 + opencv3.0.】和【cuda6.5+opencv2.4.11】。這兩種組合方法,我都已經在Ubuntu14.04作業系統(64位版本)上成功地安裝了。
- 網上安裝OpenCV的教程很多都是通過Install-OpenCV指令碼來安裝的,但我在使用過程中發現會出現問題,而網路教程有沒有說明遇到問題如何解決,因此很坑。最終,藉助Google,解決的所有問題,成功安裝了所有依賴和OpenCV3.0。因此,如果大家遇到什麼編譯錯誤,不要害怕,google一下,一般別人已經遇到這個問題,併成功地解決了。
參考
《Caffe + Ubuntu 15.04 + CUDA 7.0 新手安裝配置指南》——歐新宇
opencv 專案
我的opencv安裝指令碼
GitHub上的opencv安裝指令碼
相關文章
- mac 安裝opencv homebrew安裝MacOpenCV
- Ubuntu 14 Caffe安裝(無GPU)UbuntuGPU
- python安裝opencvPythonOpenCV
- Ubuntu 16.04 下安裝配置caffeUbuntu
- python如何安裝OpenCV?PythonOpenCV
- windows安裝cmake、opencv、qtWindowsOpenCVQT
- Linux下安裝OpenCVLinuxOpenCV
- Mac下安裝node-opencvMacOpenCV
- 樹莓派opencv的安裝樹莓派OpenCV
- Ubuntu 14.04 下安裝 OpenCVUbuntuOpenCV
- opencv4.5 帶cuda 安裝OpenCV
- Caffe + Ubuntu 15.04 + CUDA 7.0 安裝以及配置Ubuntu
- Caffe學習系列(21):caffe圖形化操作工具digits的安裝與執行Git
- PostgreSQL 10.12 安裝系列 - 原始碼安裝SQL原始碼
- Ubuntu環境Anaconda安裝opencvUbuntuOpenCV
- apt-get install **安裝opencvapt-getOpenCV
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- Python3 安裝Opencv方法PythonOpenCV
- opencv3.2 安裝說明書OpenCV
- Windows10 下caffe-Windows安裝與配置Windows
- PostgreSQL 10.12 安裝系列 - 本地RPM安裝SQL
- codis安裝 (java 安裝 + zookeeper 安裝 + go 安裝 + codis 安裝JavaGo
- ubuntu系統編譯安裝OpenCV 4.4Ubuntu編譯OpenCV
- 給ROCK64安裝OpenCV3OpenCV
- PostgreSQL 10.12 安裝系列 - Yum+rpm 安裝SQL
- Openshift 4.4 靜態 IP 離線安裝系列:初始安裝
- 龍芯go之路(二)-安裝opencv-goGoOpenCV
- ubuntu下安裝python-opencv(待續)UbuntuPythonOpenCV
- opencv python3.6安裝和測試OpenCVPython
- agx orin nx 安裝 opencv4.9 cuda 版本OpenCV
- 安裝npm 解除安裝npm 安裝apidocNPMAPI
- DevOps系列四(Docker安裝)devDocker
- mysql安裝 (yum 安裝)MySql
- MMM安裝、MHA安裝
- mysql安裝------RPM包安裝及解除安裝MySql
- oracle安裝:OUI安裝Oracle(圖形介面安裝)OracleUI
- window7下caffe安裝與mnist資料集測試
- 安裝配置 Ubuntu 14.04 + CUDA8.0 + cuDNN v5 + caffeUbuntuDNN