前言#
總覺得 SW 效果不好,就嘗試用了下 EdgeBoxes,速度提升一點點,不明顯,平均 1.1 幀吧。但是框出物體的穩定程度和框正物體的準確率高很多,誤檢測相對也少了。
** 最新代碼地址 GitHub: ** https://github.com/HansRen1024/SVM-classification-localization
配置 EdgeBoxes#
原作者只開源了 matlab 代碼,在 github 找到了通過生成.so 庫文件並調用的開源項目。
地址是: https://github.com/samarth-robo/edges
EdgeBoxes 安裝流程:
先安裝 numpy-opencv-converter
git clone https://github.com/samarth-robo/numpy-opencv-converter.git
cd numpy-opencv-converter/build
cmake ..
make
再安裝 cvmatio
git clone https://github.com/samarth-robo/cvmatio.git
cd cvmatio/build
cmake ..
make
make install
這裡可能編譯不通過,說找不到 numpy/ndarrayobject.h 頭文件。
將 /usr/local/lib/python2.7/side-
packages/numpy/core/include/ 目錄中的 numpy 目錄複製到 /usr/local/include 即可
sudo cp -r /usr/local/lib/python2.7/side-packages/numpy/core/include/numpy /usr/local/include
最後安裝 edge
git clone https://github.com/samarth-robo/edges.git
cd edges/cpp
修改CMakeList.txt
將 CVMATIO_PATH 和 NUMPY_OPENCV_CONVERTER_PATH 路徑改成上面安裝好的路徑。
cd build
cmake ..
make -j6
編譯好之後,將 build 目錄中的 edge_boxes_python.so 拷貝到要調用這個庫文件的.py 文件目錄下
同時要將../cpp/external/gop_1.3/data/ 目錄中的 sf.dat 文件一起拷貝過去。
這樣在我們的.py 文件中就可以正常調用 EdgeBoxes 這個算法了。