是的,首先让我给出一些背景信息。希望我的解释不会太混乱。
我正在使用面部检测算法,该算法返回一个矩形,表示实时视频流中的面部边界。这会每帧返回一个矩形(如果检测到面部)。
在任何情况下,我要做的是获得一个矩形,代表所讨论的面部移动的平均区域。我保留了这些矩形的列表,我正在尝试计算所述平均值。
我试图通过平均所有x,y,宽度和高度来计算一个简单的平均矩形,但是这个方法得到的矩形越长,“面部”在同一个地方或多或少地停留的时间就越长。 / p>
我最近的尝试是从每个脸部的中心点列表中获取一个矩形,但是当单个脸部位置靠近图像边缘时,这会严重偏斜。
无论如何,我希望通过这里发布的内容可能是针对已经存在的算法的建议,可能有助于解决此问题。我一直试图查看加权平均值,但我不完全确定要寻找什么。任何帮助将不胜感激。
通常看起来像一组矩形:
我想得到什么(绿色矩形):
答案 0 :(得分:1)
“我最近的尝试是从每个脸部的中心点列表中获取一个矩形,但当单个脸部位置靠近图像边缘时,这会严重偏斜。”
这是正确的思路,但你想看看平均数的数学。一个极端的价值就是抛弃结果。您可能想要排除IQR之外的值(http://www.mathwords.com/o/outlier.htm)。这应该可以帮助你实现你所追求的目标。
答案 1 :(得分:1)
从你的示例图片中你想要的并不是真正的平均值(因为它的宽度和高度都大于所有给定的矩形),而是一个矩形,它限制了所有给定的面部位置矩形,排除了一些异常值,我将其定义为异常值不与列表中任何其他矩形重叠的矩形。我的方法是首先找到所有异常值并将它们从列表中排除,然后使用列表中剩余的最高和最低x和y坐标创建一个矩形以绑定所有其他异常值。