我正在尝试使用基于面向对象直方图(HOG)特征类型的OpenCV级联分类器 - 例如论文“使用一系列面向梯度直方图进行快速人体检测”。
在网上搜索,我发现OpenCV的Cascade分类器只支持HAAR / LBP功能类型(OpenCV Cascade Classification)。
提前致谢!
编辑1
我一直在搜索,当我终于在android-opencv中发现Cascade Classifier中有一个允许它使用HOG功能的中继时。但我不知道它是否有效......
链接:http://code.opencv.org/projects/opencv/repository/revisions/6853
编辑2
我没有测试过上面的fork,因为我的问题已经改变了。但我发现了一个有趣的链接,将来可能会非常有用(当我回到这个问题时)。
此页面包含论文“直方图的直方图”的源代码 人体检测“。此外,更多信息。http://pascal.inrialpes.fr/soft/olt/
答案 0 :(得分:3)
如果您使用OpenCV-Python,那么您可以选择使用一些额外的库,例如scikits.image,它们具有直方图的内置渐变内置函数。
几个月前我必须完全解决同样的问题,并在此project page记录了大部分工作(包括HoG的非常基本的Python实现,以及使用PyCUDA的HoG的GPU实现)。那里有代码。在C ++中使用GPU代码应该相当容易修改。
答案 1 :(得分:1)
现在似乎也可以在非python代码中使用。 2.4.3中的opencv_traincascade有一个HOG featuretype选项(我没试过):
[-featureType <{HAAR(default), LBP, HOG}>]
答案 2 :(得分:1)
是的,您可以cv::CascadeClassifier
使用HOG
功能。要执行此操作,只需使用hogcascade_pedestrians.xml
中找到的opencv_src-dir/data/hogcascades
加载它。
与hogcascade
进行比较后,分类器工作得更快,结果更好,haarcascade
...