电脑配置
系统:Ubuntu16.04 GPU:NVIDIA GTX1050Ti
安装步骤
1.安装相关依赖项
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install--no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2.安装NVIDIA驱动
去官网(https://www.nvidia.com/Download/index.aspx?lang=en-us)查看适合自己显卡的驱动,选择版本的时候一般以选择的CUDA版本为准,例如CUDA8.0最低要求驱动版本为375,酌情降低推荐的驱动版本;安装显卡驱动有多种方式,本文采用的方式是:
1)卸载之前安装的驱动版本:
sudo apt-get remove --purge nvidia*
2)禁用ubuntu原有驱动nouveau:
sudo gedit /etc/modprobe.d/blacklist.conf
文件末尾加入
blacklist nouveau
options nouveau modeset=0
更新内核:
sudo update-initramfs -u
3)关闭图形界面:sudo service lightdm stop,进入纯文本界面(也可通过CTRL+ALT+F1/F2/F3……),输入用户名和密码登录;
4)命令行安装驱动:
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-375 #注意在这里指定自己的驱动版本!
5)安装完成后重启,输入sudo nvidia-smi 查看结果
3.安装CUDA
选择合适版本--官网下载(https://developer.nvidia.com/cuda-downloads),这里选择CUDA8.0;
- sudo sh cuda_8.0.27_linux.run,开头是一长串使用协议说明会有一系列提示,当安装提示是否安装CUDA对应驱动版本是要选择no,其余默认即可;
- 配置环境变量:sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
3. 测试CUDA的例程序:进入/home下CUDA例程序包,目录为/samples/1_Utilities/deviceQuery
make
./deviceQuery输出一系列信息
4.安装cuDNN
-
官网(https://developer.nvidia.com/rdp/cudnn-download)下载cuDNN,要注册账号,本次下载cuDNN5.1 for CUDA 8.0,即cuDNNv5.1 Library for Linux
-
解压之后,安装步骤即把cuDNN拷贝进对应的CUDA目录,
cd cuDNN解压之后的include目录
sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件
再cd进入lib64目录下的动态文件进行复制和链接:
sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接
动态库后的数字按实际情况来写
5.安装opencv3.1
-
Opencv官网下载安装压缩包,解压到/home目录下
-
在cmake之前要确保python的一些依赖包已安装,首先是pip,然后pip install protobuf, sudo apt-get install python-skimage
-
sudo apt-get update sudo apt-get upgrade sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-devlibswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip --fix-missing
-
cd ~/opencv mkdir build cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake过程中会有一个文件下载不下来,拷贝压缩包中文件到/home/whu-hk/opencv-3.1.0/3rdparty/ippicv/downloads/linux-…….目录下
文件名为ippicv_linux_20151201.tgz
3.Opencv3.1与CUDA8.0不兼容,
修改~/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp文件
//#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER)注释掉这一行,改成下面这行:
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000)
4.make -j4(电脑核数),编译通过之后sudomake install
5. exportOpenCV_DIR=~/opencv-3.1.0/build目录
sudo /bin/bash -c'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
6.测试是否安装成功:
python
>>>importcv2
>>>cv2.__version__
'3.1.0'
>>>
6.配置ssd(ssd采用caffe嵌入的方式)
-
sudo apt-get install git
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd检验是否是ssd分支
2.修改Makefile.config(重要步骤)
cd ~/caffe
cp Makefile.config.example Make.config
gedit Makefile.config
#USE_CUDNN := 1取消注释
#OPENCV_VERSION := 3取消注释
#WITH_PYTHON_LAYER:=1 取消注释
将# Whatever else youfind you need goes here.下面的
INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS :=$(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS :=$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS :=$(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
3)修改makefile文件
NVCCFLAGS+=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS +=-D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
4)编辑/usr/local/cuda/include/host_config.h
将其中的第115行注释掉:
将#error-- unsupportedGNU version! gcc versions later than 4.9 are not supported!
改为//#error--unsupported GNU version! gcc versions later than 4.9 are notsupported!
5)mkdir build
cd build
cmake ..
make all -j4
sudo make install
make runtest
make pycaffe
6)编译发生的错误
"libcudart.so.8.0cannot open shared object file: No such file or directory"
解决办法是将一些文件复制到/usr/local/lib文件夹下:
#注意自己CUDA的版本号!
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
7)sudo gedit ~/.bashrc
export PYTHONPATH=$PYTHONPATH:~/caffe-ssd/python
source ~/.bashrc
测试:终端下输入python
>>import caffe若无报错则安装正确
>>import cv2
>>cv2.__version__ 输出“3.1.0”则opencv安装正确