5

我还没有找到任何方法来使用 openCV 训练新的潜在 svm 检测器模型。我目前正在使用 xml 文件中给出的现有模型,但我想自己训练。

有什么方法可以这样做吗?

谢谢,

吉尔。

4

2 回答 2

8

到目前为止,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/ )。

于 2013-07-09T21:53:55.540 回答
0

我认为这里作者代码的八度版本中有一个功能(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 一起使用。以下是一些有用的链接:

mat2xml代码

VOC-release-3.1

如何在新对象上训练 DPM

于 2017-10-03T12:57:03.187 回答