Opencv Haar Cascade 简单物体的训练/检测

Opencv Haar Cascade training / detection for simple objects

我正计划为白色杯子、红色球和蓝色冰球制作级联检测器。由于这些物体的形状非常简单,我想知道在训练中与寻找复杂物体(例如汽车/面孔)之间是否存在任何参数差异?此外,在训练 pos 图像中,我有不同光照条件下的对象和对象处于阴影下的实例。

对于训练负片图像,我注意到图像尺寸可能会有所不同。但是,对于正图像,它们必须是固定大小。

我计划使用 100x100 pos 图像来帮助检测 20-30 英尺外的物体,当我在 5 英尺以内/在物体的正上方(离地面 3 英尺 appx)时,200x200 pos 图像用于检测物体).这是否意味着我必须训练 6 个不同的 XML?每个对象 2 个,因为它是针对 100x100 和 200x200 训练的?

简答:是

长答案:可能:

你要这样想,分类器要为正例图像建立一组特征,然后用这些特征来判断你的检测图像是否相同。如果您要大幅移动检测角度,那么您将需要一个不同的分类器。

举个例子:

如果在 20 英尺外你的杯子看起来像这样:

与关联的 background/lighting 等,如果你的杯子看起来像这样(可能在 5 英尺外但角度不同),它将是一个非常不同的分类器:

现在,综上所述,如果您的杯子只有大号和小号版本,那么您可能只需要一个。但是,您需要为每个对象使用不同的分类器 (cup/ball/puck)


图片不是我的 - 取自 Google