用opencv过滤掉对象检测的误报

时间:2011-08-06 11:00:08

标签: opencv computer-vision object-detection

我使用opencv的HaarDetectObjects(...)来检测图像中的对象。该函数返回图像中可能包含对象的区域的坐标,问题是我只想检测图像中对象的单个实例,而我无法知道函数返回的结果是哪个“最好”。有没有办法可以按实际包含对象的概率对结果进行排序?或者可能定义结果必须通过的某种阈值?基本上,我需要一种过滤误报的方法。

我不限于使用opencv或HaarDetectObjects,如果有人建议使用其他库或其他对象检测方法,欢迎使用。

谢谢。

1 个答案:

答案 0 :(得分:3)

您是否可以利用任何领域特定的知识?

如果预期对象具有一定的大小或最有可能处于某个位置,您可以定义一个非常简单的索引来衡量每个检测距离该大小/位置的距离,这样就可以了检测实际上是对象的概率。

预计会有某种颜色吗?您可以获取样本对象的颜色直方图。然后,你可以使用距离函数比较HaarDetectObjects返回到此样本直方图的每个检测(对于距离函数,我脑海中浮现出名称“Bhattacharyya距离”和“Mahalanobis距离”,但我不能声称任何专业知识但是,OpenCv确实有support for histograms,包括一个CompareHist函数。)

关于物体的轮廓,纹理,几何形状,你能说些什么吗?任何可以减少到数字并与“地面价值”相比的东西都会有所帮助。

当然,所有这些都受到处理限制。就计算时间而言,其中一些建议可能会或可能不会有点贵。这可能会也可能不会影响您的应用程序,具体取决于您是否有硬件或实时限制。