我正在实施Viola-Jones人脸检测器来检测静止图像中的脸部,并且它对于具有与我的训练大小相同大小的图像是可行的。但是我不知道面部检测器如何适用于多个尺寸的面孔?
如果我的图像的训练尺寸是24 * 24并且如果我想检测30 * 30的探测器窗口中的面部,我需要如何重新调整haar-feature以使其适用于30 * 30尺寸的探测器窗口工作具有相同的阈值。
还有一件事,哈尔特征的位置是否也随着不同大小的探测器窗口而变化,如果是的话怎么样?
答案 0 :(得分:3)
假设您正在使用x
,y
,w
和h
变量表示在Haar小波内找到的矩形,其中x
和{{1 }}表示矩形的左上角相对于探测器的左上边界,y
其宽度和w
高度。您可以使用以下伪代码将每个Haar小波矩形的h
因子重新缩放整个检测器:
s
因此,我们假设单个Haar-lke功能的基本大小为24x24像素。此特征由2个矩形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
和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)
。