1. 程式人生 > >No.2 ssd-caffe(1):編譯、安裝、測試

No.2 ssd-caffe(1):編譯、安裝、測試

在這篇文章裡面總結一下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