3

信息:

我想使用 OpenCV 的 HOG 检测来识别可以在各种方向看到的对象。唯一的问题是,我似乎无法找到一个合理的特征检测器或分类器来以旋转和缩放不变的方式检测这一点(正如前臂等物体所需要的那样)。

前期工作:

让我们专注于本次讨论的前臂。前臂可以有多个方向,主要的不同特征可能是它的轮廓边缘。前臂图像可能指向图像中的任何方向,因此很复杂。到目前为止,我已经对使用 HOG 描述符来解决这个问题进行了一些深入的研究,但我发现在我的正面训练集中前臂产生的各种姿势在实际图像中产生非常低的检测分数。我怀疑问题是每个正图像产生的梯度在保存到直方图中时不会产生非常一致的结果。我已经查看了许多关于该主题的研究论文,试图解决或即兴解决这个问题,包括来自 Dalal & Triggs [链接] 的原件:http://lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf似乎检测整个人类的假设并不一定适用于检测个体特征(特别是假设所有人类都站起来似乎表明 HOG 不是像前臂那样进行旋转不变检测的好方法)。

笔记:

如果可能的话,我想避开任何非自由的解决方案,例如那些与 Sift、Surf 或 Haar 有关的解决方案。

问题:

检测图像中旋转和缩放不变对象的好的解决方案是什么?特别是对于这个例子,什么是检测图像中前臂所有方向的好解决方案?

4

1 回答 1

3

我使用 hog 来检测人的头部和肩膀。要训​​练特定部分,您必须给出它的位置。如果你使用 opencv,你可以裁剪只包含你想要的训练部分的样本,并确保所有的训练样本共享相同的大小。例如,我将图像剪辑为仅包含头部和肩部,并将它们全部调整为 64x64。其他开源代码可能要求您将位置作为输入参数传递,基本相同。

你在尝试判别训练的可变形零件模型吗?http://www.cs.berkeley.edu/~rbg/latent/ 你可以在那里找到答案。

于 2014-02-04T04:30:28.493 回答