【问题标题】:OpenCV - training new LatentSVMDetector ModelsOpenCV - 训练新的 LatentSVMDetector 模型
【发布时间】:2013-07-06 23:52:00
【问题描述】:

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

有什么方法可以做到吗?

谢谢,

吉尔。

【问题讨论】:

  • 您找到解决方案了吗?

标签: opencv


【解决方案1】:

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

【讨论】:

  • 你是说我可以使用“判别训练的可变形零件模型”来训练一个潜在的 SVM,然后在 OpenCV 中加载文件并用它来检测我的对象吗?
  • @Crash-ID,作者的代码只能用来训练一个matlab模型。您不能在 OpenCV 中使用该模型。我也在寻找将matlab模型转换为opencv中的xml格式的代码。
  • @killogre 你“可能”可以使用 mat2opencvxml.m 在这里找到:github.com/Itseez/opencv_extra/tree/master/testdata/cv/dpm 进行转换(我没有尝试过,所以我不确定)
  • @kamjagin 第一个链接现在不起作用。第二个是解释如何训练matlab模型,并没有将其转换为opencv xml模型。
【解决方案2】:

我觉得这里作者代码的八度版本有一个函数 (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 一起使用。以下是一些有用的链接:

mat2xml code

VOC-release-3.1

How To Train DPM on a New Object

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2017-08-19
    • 2017-03-28
    • 2023-01-03
    相关资源
    最近更新 更多