【Machine Learning】【Python】六、Edge Boxes + SVM + NMS for Localization ---- 《SVM物体分类和定位检测》

前言

总觉得SW效果不好,就尝试用了下EdgeBoxes,速度提升一点点,不明显,平均1.1帧吧。但是框出物体的稳定程度和框正物体的准确率高很多,误检测相对也少了。

最新代码地址GitHub:https://github.com/HandsomeHans/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这个算法了。


检测代码

你可能感兴趣的:(Python,Machine,Learning,《SVM物体分类和定位检测》)