2、安装caffe SSD:
(1)安装依赖: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
(2)克隆caffe仓库,并复制一份Makefile.conifg:
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
cp Makefile.config.example Makefile.config
(3) 修改Makefile.config:
vi Makefile.config
# 这里我是使用CPU版本的,因此修改如下行
# CPU-only switch (uncomment to build without GPU support).
CPU_ONLY := 1
# 接下来修改配置是OPENCV可用(这里有个问题就是,当我取消注释掉USE_OPENCV := 0,在后续执行时,依然会提醒我OPENCV这个模块没有找到。
# 查看Makefile文件,发现编译OPENCV与否的判断条件是判断USE_OPENCV是否为1,于是修改其为USE_OPENCV := 1,再次编译就通过了,修改为如下
# 行)
# uncomment to disable IO dependencies and corresponding data layers
USE_OPENCV := 1
# 这里我使用的是OPENCV3,所以修改为如下行
# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3
(4)好像看起来一切都准备好了,尝试编译
make all
(5)可能会遇到的问题:
(5.1)错误如下:src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No such file or directory compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/layers/hdf5_data_layer.o' failed
通常情况下,我们在上面已经安装了hdf5.h,但是好像系统不知道去哪找hdf5.h这个头文件。
$ ls /usr/lib/x86_64-linux-gnu/ | grep libhdf5_seria
# 你会看到如下内容

# 我们建立一个软连接
sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.10.1.0 /usr/lib/x86_64-linux-gnu/libhdf5.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.10.0.2 /usr/lib/x86_64-linux-gnu/libhdf5_hl.so
# 这里需要我们修改Makefile.config的文件,使其能够找到hdf5.h
vi Makefile.config
# 将对应行修改为如下行
# Change INCLUDE_DIRS to add hdf5 files, if you have problem with hdf5.h package, please see Step-4.3.
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/hdf5/serial
# 再次编译
make all
(5.2) 可能你也会遇到一些其他错误,如liblmdb not found、glog not found等。安装对应的包即可
(6)一切顺利的话,跑一个test,测试一下:
make test
make runtest
# 全OK的话,就成功了。
# 这里为了使用Python直接使用caffe,把Python也编进去
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make pycaffe
# 这里可能会遇到这个错误(CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp python/caffe/_caffe.cpp:10:31: fatal error:
# numpy/arrayobject.h: No such file or directory compilation terminated.
# Makefile:501: recipe for target 'python/caffe/_caffe.so' failed)
# 原因是numpy被安装到了一个不同路径,所以找不到numpy/arrayobject.h
vim Makefile.config
# 将对应行修改为如下行
PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
# 再次make,这次应该就OK了,接下来我们通过编辑bashrc文件,将这个caffe 模块加到$PYTHONPATH
sudo vim ~/.bashrc
# 将加粗部分替换为你的caffe下的Python路径
export PYTHONPATH=/home/hostname/caffe/python:$PYTHONPATH
source ~/.bashrc
# 测试一下,import成功就OK了
Python
import caffe |