Viola-Jones 人脸检测器如何处理多种尺寸的人脸?
Posted
技术标签:
【中文标题】Viola-Jones 人脸检测器如何处理多种尺寸的人脸?【英文标题】:How Viola-Jones face detector work for multiple size of faces? 【发布时间】:2013-10-06 10:51:00 【问题描述】:我正在实施 Viola-Jones 人脸检测器来检测静止图像中的人脸,它适用于与我的训练大小相同大小的图像。但是我不知道面部检测器如何处理多种尺寸的面部?
如果我的图像的训练大小是 24*24,并且如果我想在 30*30 的检测器窗口中检测人脸,我需要重新调整 haar 特征,以便它适用于 30*30 大小的检测器窗口工作具有相同的阈值。
还有一件事,Haar-feature 的位置是否也会随着不同大小的检测器窗口而变化,如果是,如何变化?
【问题讨论】:
【参考方案1】:假设你用 x
、y
、w
和 h
变量表示在 Haar 小波中找到的矩形,其中 x
和 y
表示矩形的左上角 相对于探测器的左上边界,w
的宽度和h
的高度。您可以使用以下伪代码对每个 Haar 小波矩形按 s
因子重新缩放整个检测器:
for all rectangle i in the Haar wavelet do
tempRectangle = rectangle[i];
tempRectangle.x = tempRectangle.x * s
tempRectangle.y = tempRectangle.y * s
tempRectangle.h = tempRectangle.h * s
tempRectangle.w = tempRectangle.w * s
//Read the pixels contained in tempRectangle region and
//calculate this rectangle's contribution to the feature value
//considering the respective weight of rectangle[i].
end for
因此,我们假设单个 Haar-lke 特征的基本尺寸为 24x24 像素。这样的特征由r1=(10,15,8,4)
和r2=(4, 8, 8, 4)
两个矩形组成,其中r=(x,y,w,h)
。当您将检测器重新缩放s=1.25
时,此特征矩形应变为r1=(12.5, 18.75, 10, 5)
和r2=(5, 10, 10, 5)
。
【讨论】:
嗨,你的意思是,如果对于 24*24 检测器窗口,我的 haar 特征为 (x,y,w,h)=(10,15,8,4) 那么如果我增加检测器窗口乘以 1.25,haar 特征值变为 (x,y,w,h)=(12.5,18.75,10,5)。是这样吗? 您能否举例说明一下。谢谢! 您能否举例说明一下。 “计算这个矩形对特征值的贡献”是什么意思? 我编辑了答案以提供更详细的示例。关于“计算这个矩形的贡献......”的评论只是一个声明,如果你在计算类似 Haar 的特征值的同时重新缩放检测器,那么在放置 cmets 的地方可能会发生正常的类似 Haar 的特征值计算。如果您只想重新调整检测器窗口及其特征,您可以简单地忽略这些 cmets。以上是关于Viola-Jones 人脸检测器如何处理多种尺寸的人脸?的主要内容,如果未能解决你的问题,请参考以下文章