另外,直方图数组Hist的某个bin中的样本权重的改变,不应该仅仅影响当前的bin,也应该对周围相邻的bin造成影响。比如,在统计一个地区人群的身高分布的时候,如果只有一个样本x=1.65m,我们可以在Hist数组中对应1.6<=x<1.7这一个bin里投上一票,但是1.5<=x<1.6和1.7<=x<1.8两个bin的得票为0。其实不应该这样,根据身高应该是连续分布的这一假设,从样本x=1.65m可以安全地推断出世上也应该有身高1.59和1.71的人,这样左右两个相邻的bin的值就不应为0,应该也受到x=1.65m这个样本的影响,这种影响可以假设是服从高斯分布,即越远的bin受影响越小。这其实是另一种常见的概率密度估计的非参数方法,kernel density estimation(KDE)。我们的人脸检测应用由于样本足够多,所以没有考虑这一方法。也就是说,每个特征值在投票的时候,只对一个bin起作用,不影响相邻的那两个。
三.根据当前分类结果改变样本的权重并选择“好”的特征 对于人脸检测问题,我们希望两类(faces and nonfaces)模式特征的分布离得比较远,或者看起来分得比较开。举例来说,假设我们在所有样本上提取如下3种特征,此时feature pool尺寸是3,我们要从里面选2个最好的特征:
其中hp =[ln(p( f1 | w+ )) - ln(p( f1 | w- ))] 可以看成是特征f1的置信度曲线,它是曲线wp和wn的相同x坐标处的p值的比值的对数。也就是说,当我们计算得到一个样本的特征值,在这个曲线上查表,如果ln(p( f1 | w+ ))>ln(p( f1 | w- )),表示样本更象人脸,置信度结果为正数;当ln(p( f1 | w+ ))<ln(p( f1 | w- )),样本更象非人脸,置信度结果为负数;当ln(p( f1 | w+ ))=ln(p( f1 | w- ))置信度为0。
[1] Bo WU, Haizhou AI, Chang HUANG, Shihong LAO, Fast Rotation Invariant Multi-View Face Detection Based on Real Adaboost, In Proc. the 6th IEEE Conf. on Automatic Face and Gesture Recognition (FG 2004), Seoul, Korea, May 17-19, 2004. http://media.cs.tsinghua.edu.cn/~imagevision/publications.htm