4

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

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

谢谢你。

4

1 回答 1

3

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

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

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

关于物体的轮廓、纹理、几何形状……你有什么可以说的吗?任何可以简化为数字并与“基本值”进行比较的东西都会有所帮助。

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

于 2011-08-06T12:44:19.623 回答