我还没有找到任何方法来使用 openCV 训练新的潜在 svm 检测器模型。我目前正在使用 xml 文件中给出的现有模型,但我想自己训练。
有什么方法可以这样做吗?
谢谢,
吉尔。
我还没有找到任何方法来使用 openCV 训练新的潜在 svm 检测器模型。我目前正在使用 xml 文件中给出的现有模型,但我想自己训练。
有什么方法可以这样做吗?
谢谢,
吉尔。
到目前为止,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/ )。
我认为这里作者代码的八度版本中有一个功能(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 一起使用。以下是一些有用的链接: