【发布时间】: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