HOG人体检测器:在背景减除图像上误检测的假阳性问题

4
我正在处理一个需要检测场景中人物的项目。最初,在原始帧上运行HOG检测器时,一个特定的背景对象被检测为人物,并在所有帧上出现,导致我得到3021个误报检测结果。
所以我采取了逻辑步骤,通过对所有帧应用背景减法器(BackgroundSubtractorMOG2)来消除静态背景。结果帧看起来像这样:
然后这些掩码图像被添加(使用bitwise_and)到原始图像中,以便将白色像素替换为构成人物的像素。
然后我在这些图像上运行HOG检测器,结果如下:
正如你所看到的,由于某种原因,有很多误报检测结果。我认为进行背景减法会比在原始图像上使用HOG给我带来更好的结果。
请问有谁能告诉我为什么这种方法会产生如此多的误报检测结果?还有,如何改进背景减法后的检测效果?

1
不是答案,但是我给你点赞的原因是你在帖子中放了示例图片。 - T-Heron
1
你能添加这段代码吗?我会对原始图像运行hog算法,计算前景像素的数量,并拒绝任何前景比例过低的检测结果。 - Micka
1个回答

2
问题在于你通过移除背景改变了图像的本质。因此,HOG检测器是使用正常图像进行训练的,没有人工黑色像素,现在你正在提供人工修改后的图像,因此它表现得很奇怪(虽然还不理解图像顶部的检测)。
如果您想在背景减除之上使用HOG检测器,则应该使用从背景减除的图像中获取的特征来训练HOG分类器。
您可以尝试一件事情(如果这不会降低您的应用程序性能),即在具有和不具有背景的两个图像上使用HOG检测器,并仅接受在两个图像上重叠显着的检测结果,这可能会从两个图像中删除一些误报。
PS:HOG专门设计用于在原始图像上工作,通过检测强边缘并将其与SVM模型进行测试。通过去除背景,我们正在创建人工边缘,这有点违背使用HOG的目的。但我认为您可以通过执行我在前面段落中建议的操作来消除假检测。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接