在这篇文章里面总结一下ssd-caffe
的安装使用,测试以及如何使用自己的测试样本,CUDA和OpenCV的安装在这里不再介绍,实验环境Ubuntu16.04
1 . 安装并测试ssd-caffe
1.1 从git官网克隆ssd-caffe
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
1.2 编译安装caffe
caffe的编译安装建议参考caffe官网
安装所有依赖:
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
如果编译过程提示BLAS无法使用可以安装OpenBLAS
复制并修改
Makefile.config
cp Makefile.config.example Makefile.config gedit Makefile.config
修改内容
USE_CUDNN := 1 #使用cudnn加速,没有cudnn或者CPU运行则注释掉 OPENCV_VERSION := 3 #opencv版本 WITH_PYTHON_LAYER := 1 #使用python接口 将 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
还有一些在网上查阅到的修改,不知道具体的作用,可作参考:
caffe根目录下的
Makefile
将: NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 更改: NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 将: LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 更改: LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
更改
/usr/local/cuda/include/host_config.h
将 #error-- unsupported GNU version! gcc versions later than 4.9 are not supported! 改为 //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
编译测试ssd
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH. make -j8 make py make test -j8 # (Optional) make runtest -j8
在
make py
的时候可能会出现提示如下错误python/caffe/_caffe.cpp:47:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录 compilation terminated. Makefile:681: recipe for target 'python/caffe/_caffe.so' failed make: *** [python/caffe/_caffe.so] Error 1
遇到上面情况安装python-numpy即可
sudo apt-get install python-numpy
如果
runtest
无法编译,尝试添加sudo
,可能你在cuda的安装过程中有些文件的权限遇到了问题添加PYTHONPATH
gedit ~/.bashrc
在尾部添加如下内容export PYTHONPATH=/home/YOUR_NAME/caffe/python:$PYTHONPATH
测试ssd
可以直接测试以下两个命令,无需下载数据集:
python examples/ssd/ssd_pascal_webcam.py #需摄像头 python examples/ssd/ssd_pascal_video.py