Opencv 猪人检测器:为什么背景地物被检测为人?

Opencv 猪人检测器:为什么背景地物被检测为人?,opencv,computer-vision,detection,Opencv,Computer Vision,Detection,我正在做一个项目,涉及检测不同画面中的人。检测器能够检测帧序列中的大多数人 但它有时会检测到静止的背景物体作为人。我真的很想知道为什么会发生这种情况,以及探测器当前的工作如何导致这些误报 怎样才能消除这些误报呢 假阳性检测样本: 正如论文作者在标题中所暗示的:“我们离解决行人检测还有多远?”,我们还没有解决实际场景中的视觉行人检测问题,事实上,有些人认为它永远不会完全解决 在城市场景中检测人可能是计算机视觉中最困难的任务之一。场景中充斥着混乱、随机和不可预测的元素,行人可能被遮挡,他们可能被隐藏

我正在做一个项目,涉及检测不同画面中的人。检测器能够检测帧序列中的大多数人

但它有时会检测到静止的背景物体作为人。我真的很想知道为什么会发生这种情况,以及探测器当前的工作如何导致这些误报

怎样才能消除这些误报呢

假阳性检测样本:

正如论文作者在标题中所暗示的:“我们离解决行人检测还有多远?”,我们还没有解决实际场景中的视觉行人检测问题,事实上,有些人认为它永远不会完全解决

在城市场景中检测人可能是计算机视觉中最困难的任务之一。场景中充斥着混乱、随机和不可预测的元素,行人可能被遮挡,他们可能被隐藏在阴影中,或是在照相机无法看到的黑暗环境中。事实上,视觉行人检测仍然是迄今为止最重要的挑战之一

您甚至没有使用最先进的方法,正如您在下图中所看到的,HOG已经很久没有成为这项任务的最佳算法了

(图片由Piotr Dollar、Christian Wojek、Bernt Schiele和Pietro Perona拍摄)

这篇论文已经有点过时了,但是你可以看到,即使是性能最好的算法在图像数据集中的表现也不出色,更不用说真实场景了

那么,为了回答您的问题,您可以做些什么来改进它的性能呢?视情况而定。如果您可以在特定场景中做出一些假设,使问题变得更简单,那么您就可以消除一些误报。另一种改善效果的方法,也是每个独立驾驶辅助系统所做的,就是融合不同的传感器信息来帮助视觉系统。大多数使用激光雷达和雷达为相机提供可观看的位置,这有助于算法的性能和速度

因此,正如您所看到的,它非常依赖于应用程序。如果您的应用程序应该在一个简单的场景中工作,那么背景减法算法将有助于消除错误检测。您还可以使用错误检测的数据引导分类器,以提高其性能

但要知道一件事:不管你怎么努力,计算机视觉并不是百分之百的。它总是在接受误报和系统健壮性之间取得平衡

干杯


编辑:回答标题中的问题,为什么背景对象被检测为人?因为HOG是关于评估图像边缘的,所以您可能会将HOG特征发送给SVM,对吗?在您提供的图像中检测到的垂直杆与人类共享一些视觉特性,例如其垂直边。这就是为什么这些算法在交通标志和其他垂直元素方面失败很多的原因,正如你在我关于这个主题的硕士论文中所看到的:

因为没有传感器是完美的。尝试将探测器与不同的技术相结合,如背景减法、地平面假设等。嗨,佩德罗,谢谢你的回复。在我试图解决这个问题时,我对所有图像应用了背景减法。之后,我将遮罩图像添加到原始图像中,以便白色像素被人的像素替换。然后我在这些框架上运行了猪探测器。但令我惊讶的是,结果非常糟糕。出现了更多的假阳性。出于某种奇怪的原因,探测器一直在黑色背景下探测人。我可能会写另一个关于这个问题的问题,用图片详细解释。这是其他问题的链接:()