我正在开展一个需要检测场景中人物的项目.
最初在原始帧上运行HOG检测器后,特定背景对象被检测为所有帧上的人,给出了3021个误报检测.
所以我采取了逻辑步骤,通过对所有帧应用背景减法器(BackgroundSubtractorMOG2)来删除静态背景.
生成的帧看起来像这样:
然后将这些掩模图像(使用bitwise_and)添加到原始图像,从而将白色像素替换为构成人的像素.
样品:
然后我在这些图像上运行了HOG检测器,结果如下:
正如您所看到的,由于某种原因,存在大量误报检测.我认为做背景减法会比在原始图像上使用HOG给我更好的结果.
有人可以告诉我为什么这种方法有这么多的误报?还有什么可以改善背景减影图像的检测?
最佳答案 问题是您通过删除背景来改变图像的性质.因此,HOG探测器使用正常图像进行训练,没有人工黑色像素,现在你正在为人工改变的图像提供它,所以它会以一种奇怪的方式执行是正常的(仍然不理解顶部的检测)虽然图像..)
如果要在背景减法的顶部使用HOG检测器,则应使用从背景减影图像中获取的特征训练HOG分类器.
您可以尝试的一件事(如果这不会破坏您的应用程序的性能),就是在两个图像上使用HOG检测器,有背景和没有背景,并且只接受在两者上都显着重叠的检测,这可能会消除一些误报两个图像.
PS:HOG专门设计用于通过检测强边缘并针对SVM模型测试它们来处理原始图像.通过去除背景,我们创造了人工边缘,这有点打败了使用HOG的目的.但我认为您可以通过执行上一段中的建议来使用它来删除错误检测.