首页 文章

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

提问于
浏览
3

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

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

谢谢 .

1 回答

  • 3

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

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

    预计会有某种颜色吗?您可以获取样本对象的颜色直方图 . 然后,您可以使用距离函数将HaarDetectObjects返回的每个检测与此样本直方图进行比较(对于距离函数,名称"Bhattacharyya distance"和"Mahalanobis distance"在我的脑海中浮现,但我无法对此提出任何专业知识.OpenCv确实有但是,support for histograms,包括CompareHist函数) .

    关于物体的轮廓,纹理,几何......你能说些什么吗?任何可以减少到数字并与“地面 Value ”相比的东西都可以提供帮助 .

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

相关问题