【问题标题】:Efficiently integrate detection results高效整合检测结果
【发布时间】:2014-01-30 12:31:41
【问题描述】:

在Viola and Jones's 论文第 5.6 节中,作者提到他们集成了检测器在扫描图像中的人脸时所做的多个检测。在这种情况下,检测只是位于图像上方的矩形区域,检测器认为存在人脸。积分是重叠矩形区域的简单组合。这很有用,因为检测器在扫描图像时可能会围绕单个人脸产生许多检测。

请注意,许多检测可能不会与其他检测重叠,因此可以有多个集成检测。例如,考虑一张有两张脸的图像,A 和B。还要考虑图像具有区域C 和D,它们与人脸非常相似,但不是人脸。在这种情况下,检测器可能会产生 3 次面部 A 重叠检测、5 次面部 B 重叠检测、1 次区域 C 检测和 10 次区域 D 重叠检测。考虑到一个区域的检测与另一个区域的检测不重叠,集成过程应该产生一个最终的面部检测A,另一个面部检测B,另一个单一的区域检测C和另一个单一的检测。检测区域D。应该向用户显示这 4 个集成检测。

因此,为了整合检测,有必要将它们分成重叠检测的子集。但是我们应该将与子集中已经存在的任何检测重叠的任何检测添加到子集中。对检测列表的简单迭代将表现不佳 (Ω(n²))。

那么我的问题是:什么数据结构和算法允许快速集成检测?请提供一些关于您提到的方法的文学证据(例如论文或书籍参考) .

【问题讨论】:

  • 您最想容忍哪些错误?
  • @stark 不确定你的意思。根据论文,所有重叠的检测都集成到一个检测中。真阳性和假阳性都会发生这种情况。
  • 如果它们都同样有效,那么就随机选择一个
  • 我只是改进了这个问题,因为我没有明确表达我的观点。
  • OpenCV 为此任务使用了一个名为groupRectangles() 的函数,其核心使用K-means 聚类。

标签: algorithm data-structures face-detection viola-jones


【解决方案1】:

您是否进行了基准测试?

重叠检测真的是性能瓶颈吗?不要过早优化。

您是否考虑过按 x 坐标对矩形数据进行排序?那么重叠检测应该相当便宜。

【讨论】:

    【解决方案2】:

    我认为 R-trees 应该可以解决问题。

    【讨论】:

    • R 树用于空间索引。在您的情况下,每个节点都是一个矩形。你可以从中制作一棵R树。这是一个很好的链接cs.sfu.ca/CourseCentral/454/jpei/slides/R-Tree.pdf
    • 我怀疑 R-trees 会有所帮助。它们是面向磁盘的数据结构。在每一页中,您仍然会有 O(n^2) 比较,并且在 8k 页面中您可以容纳很多像素矩形...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多