【发布时间】:2013-07-06 23:52:00
【问题描述】:
我还没有找到任何方法来使用 openCV 训练新的潜在 svm 检测器模型。我目前正在使用 xml 文件中给出的现有模型,但我想自己训练。
有什么方法可以做到吗?
谢谢,
吉尔。
【问题讨论】:
-
您找到解决方案了吗?
标签: opencv
我还没有找到任何方法来使用 openCV 训练新的潜在 svm 检测器模型。我目前正在使用 xml 文件中给出的现有模型,但我想自己训练。
有什么方法可以做到吗?
谢谢,
吉尔。
【问题讨论】:
标签: opencv
到目前为止,OpenCV 中只实现了 DPM 检测,而不是训练。
如果你想训练自己的模型,最可靠的方法是使用Felzenszwalb和Girshick的matlab代码(大部分重的东西都是用C实现的)(http://www.cs.berkeley.edu/~rbg/latent/)(http://www.rossgirshick.info/latent/)可靠且运行速度相当快
如果你想只用 C 语言来做,这里有一个我自己没有尝试过的实现 (http://libccv.org/doc/doc-dpm/)。
【讨论】:
我觉得这里作者代码的八度版本有一个函数 (Octave Version of DPM)。它在第 5 步中,
mat2opencvxml('./INRIA/inriaperson_final.mat', 'inriaperson_cascade_cv.xml');
我会试一试,然后告诉你结果。
编辑
我尝试将.mat文件从我之前提到的八度版本转换为.xml文件,并将结果与内置的opencv .xml模型进行比较,2个xmls的构造不同(标签,#components,..),这个版本的 octave dpm 似乎为更高版本的 opencv 生成 xml 文件(我使用的是 2.4)。
VOC-release3.1 与 opencv2.4.14 匹配。我尝试使用 opencv 中可用的 mat2xml 函数从这个版本转换已经训练的模型,结果 xml 文件已成功加载并与 opencv 一起使用。以下是一些有用的链接:
【讨论】: