笔者环境:ububtu 14.04 ,OpenCv:2.4.9 Cuda:7.5
Cuda 安装推荐.deb 方法,过程比较简单
获取CUDA安装包,安装包请自行去NVidia官网下载。
sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
sudo apt-get update
sudo apt-get install -y cuda
export CUDA_HOME=/usr/local/cuda-7.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
前方高能
这样做会导致开不了机,可能跟机子有关,就是这货,害我折腾了一天。取代方法为:直接在 .bashrc 里面添加环境变量
#export PATH=$PATH:/usr/local/cuda-7.5/bin
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:lib
记得 source .bashrc
注意:箭头所指地方的数字下方需要用到
1、进入/usr/local/cuda/samples , 执行以下命令来build samples
sudo make all -j4
过程大概10分钟,全部编译完成后, 进入 samples/bin/x86_64/linux/release, 运行deviceQuery
./deviceQuery
如果出现显卡信息, 则驱动及显卡安装成功:
sudo apt-get install libatlas-base-dev
这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV
下载该脚本,进入Ubuntu/2.4 目录, 给所有shell脚本加上可执行权限
chmod +x *.sh
然后安装最新版本 (当前为2.4.9)
sudo ./opencv2_4_9.sh
脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概半小时左右。
注意,中途可能会报错
opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization
解决方法在此:http://code.opencv.org/issues/3814 下载 NCVPixelOperations.hpp
替换掉opencv2.4.9内的文件, 重新build。
建议: 编译之前先替换这个文件,然后, opencv2_4_9.sh 里面的 cmake 也需要加个显卡的计算容量,这个容量就是上面箭头所指的那个地方的数字,图是别人的,是3.0,我的是5.0,也就是在 cmake 那一句那里找个地方加上这句话
-D CUDA_ARCH_BIN="5.0"
,不然的话,编译的时候回产生 “compute 11 。。。的错误”
编译完之后,居然没有生存 cv.py 和 cv2.so 这两个文件,cv2.so 是用来给 python 调用的so文件,在没有装 cuda 的时候,编译会生成,又是一个诡异的地方…
如果有这两个文件(没有装cuda的时候,编译opencv会生成这个两个文件),直接将其放在 python 的site-package 目录下,就可以 import cv2 并正常使用了
Anaconda
bash Anaconda-2.3.0-Linux-x86_64.sh
安装完添加anaconda 目录下的 bin 到环境变量
1、Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:
tar zxvf glog-0.3.3.tar.gz
./configure
make
sudo make install
2、 其他依赖项
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
再根据caffe官网安装其他python 依赖项
sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
sudo apt-get install -y protobuf-c-compiler protobuf-compiler
进入caffe 根目录
cp Makefile.config.example Makefile.config
这里只安装 python 接口
修改 Makefile.config
vim Makefile.config
修改 python include 路径为 anaconda include 的路径,只需要注释掉 python include路径,反注释掉 ANACONDA_HOME 和 其下面的PYTHON_INCLUDE 的路径即可
make all -j4
make pycaffe -j4
注意:pycaffe 安装完,要添加 caffe 目录下的python到环境变量,然后还要安装 python版protobuf
wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
解压,编译,安装
tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make check
make install
继续安装protobuf的python模块(如果不用python,可跳过这一步)
cd ./python
python setup.py build
python setup.py test
python setup.py install
验证Python模块是否被正确安装
cd ./python
python setup.py build
python setup.py test
python setup.py install
验证Python模块是否被正确安装
python
import google.protobuf
如果没有报错,说明安装正常。
这样才可正常 import caffe