2013-07-09 125 views
5

我还没有发现使用OpenCV的培训新的潜在的SVM模型检测的任何方法。我目前正在使用xml文件中给出的现有模型,但我想训练自己的模型。OpenCV的 - 培训新模式LatentSVMDetector

是否有这样做的任何方法?

谢谢,

Gil。

+0

你找到一个解决办法? – Misaki

回答

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/),我没有尝试过自己。

+0

您是否在说我可以使用“Discriminatively trained deformable part models”来训练潜伏的SVM,然后在OpenCV中加载文件并使用它来检测我的对象? – definera

+0

@ Crash-ID,作者的代码只能用于训练一个matlab模型。您不能在OpenCV中使用该模型。我还在寻找一个将matlab模型转换为opencv中的xml格式的代码。 – killogre

+0

@killogre你'可能'能够使用mat2opencvxml.m在这里找到︰https://github.com/Itseez/opencv_extra/tree/master/testdata/cv/dpm做转换(我没有尝试过,所以我不知道) – Scott

0

我认为这里作者的代码的八度版本中有一个函数 (Octave Version of DPM)。在步骤#5,

mat2opencvxml('./INRIA/inriaperson_final.mat', 'inriaperson_cascade_cv.xml');

我会尝试,让你知道结果。


编辑

  • 我试图.mat文件从之前.xml文件我提到的倍频版本转换,并与内置的OpenCV的.xml模型和建设的结果2 xmls是不同的(标签,#组件,..),似乎这个版本的八度dpm生成后来opencv版本(我使用2.4)的xml文件。

  • VOC-release3.1是与opencv2.4.14相匹配的一个。我试图使用opencv中提供的mat2xml函数将已经过训练的模型转换为此版本,并且结果xml文件已成功加载并使用opencv。下面是一些有用的链接:

mat2xml code

VOC-release-3.1

How To Train DPM on a New Object