SSD安装

本人环境ubuntu16.04(仅cpu)

下载SSD项目

1
2
3
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

安装caffe相关依赖包

1
2
3
4
5
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 libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install liblapack-dev liblapack3 libopenblas-base libopenblas-dev

配置

1
cp Makefile.config.example Makefile.config
  • 修改Makefile.config:
1
# CPU_ONLY:=1`改为`CPU_ONLY:=1
  • 在INCLUDE_DIRS和LIBRARY_DIRS后面分别加上/usr/include/hdf5/serial/usr/lib/x86_64-linux-gnu/hdf5/serial
1
2
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
  • 进入python文件夹安装需要的包

    1
    for req in $(cat requirements.txt); do sudo -H pip install $req; done
  • 将该python文件夹的路径添加到PYTHONPATH中

1
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

在Makefile文件的195行:

1
2
ifeq($(USE_OPENCV),1)
LIBRARIES+=

在LIBRARIES后面添加opencv_videoio和opencv_imgcodecs

  • 编译中途出错,建议make clean,再重新编译

编译

1
2
3
4
make -j8
make py
make test -j8
make runtest -j8

运行demo

下载训练好的模型文件放到models文件夹内,运行

1
python examples/ssd/ssd_detect.py

效果如下

终端上打印的为:[xmin,ymin,xmax,ymax,label,score,label_name]

xmin,ymin,xmax,ymax为矩形框的范围,表示方式是图像宽高的百分比