基于Caffe框架下MTCNN网络进行人脸检测(1):编译caffeV1.0

首先是编译Caffe

前提条件:

  1. 英伟达驱动,CUDA,CUDNN都已经部署完成
  2. opencv编译安装好

安装依赖

sudo apt-get update && apt-get install -q -y \
    libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler \
    libatlas-base-dev libgflags-dev libgoogle-glog-dev \
    liblmdb-dev libopenblas-dev \
    python-tk libpython2.7-dev python-pip \
    python-scipy  python-matplotlib && \
apt-get install -q -y --no-install-recommends libboost-all-dev && \

下载caffe源码,安装其他的python依赖包,这些其实都是为了后面使用pycaffe所需要的依赖,来源自caffe/python/requirements.txt只是版本上有所变化,因为pip install -r python/requirements.txt会出现问题。

pip install 'Cython>=0.19.2'
pip install 'ipython<4.0.0'
pip install 'networkx==2.2'
pip install 'scikit-image<0.14'
pip install 'h5py>=2.2.0'
pip install 'leveldb>=0.191'
pip install 'nose>=1.3.0'
pip install 'pandas>=0.12.0,<0.13'
pip install -U 'python-dateutil>=1.4,<2'
pip install 'protobuf>=2.5.0'
pip install 'python-gflags>=2.0'
pip install 'pyyaml>=3.10'
cp Makefile.config.example Makefile.config

修改Makefile.configMakefile

Makefile.config:

#USE_CUDNN:= 1
修改成:
USE_CUDNN:= 1

#OPENCV_VERSION:= 3
修改为:
OPENCV_VERSION:= 3

#WITH_PYTHON_LAYER:= 1 
修改为:
WITH_PYTHON_LAYER := 1

CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
                -gencode arch=compute_20,code=sm_21 \
                -gencode arch=compute_30,code=sm_30 \
                -gencode arch=compute_35,code=sm_35 \
                -gencode arch=compute_50,code=sm_50 \
                -gencode arch=compute_52,code=sm_52 \
                -gencode arch=compute_60,code=sm_60 \
                -gencode arch=compute_61,code=sm_61 \
                -gencode arch=compute_61,code=compute_61
修改为:
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \
                -gencode arch=compute_35,code=sm_35 \
                -gencode arch=compute_50,code=sm_50 \
                -gencode arch=compute_52,code=sm_52 \
                -gencode arch=compute_60,code=sm_60 \
                -gencode arch=compute_61,code=sm_61 \
                -gencode arch=compute_61,code=compute_61

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

Makefile:
ifeq ($(USE_HDF5), 1)
        LIBRARIES += hdf5_hl hdf5
修改为:
ifeq ($(USE_HDF5), 1)
       LIBRARIES += hdf5_serial_hl hdf5_serial

编译以及测试

make all -j8
make test -j8
sudo make runtest -j8

编译python接口:

make pycaffe
添加环境变量后就可以使用
export PYTHONPATH=/home/caffe/python:$PYTHONPATH

添加新评论