[人脸检测]Scale-Aware Face Detection(未完)

字数 4112阅读 2100

https://arxiv.org/pdf/1706.09876.pdf

存疑惑的地方:

1.SPN的输出怎么利用的,及后面的检测部分怎么根据SPN的proposal来缩放的?

2.样本怎么产生的,是手工标注的人脸上五个部位吗?


摘要

基于CNN的人脸检测在处理尺度不同的人脸检测时是非常低效的。They rely on either fitting a large single model to faces across a large scale range or multi-scale testing。(这句话没看懂表达什么意思。。。)上面这两种方法都是计算代价很大的。我们提出了尺度感知的人脸检测(SAFD),SAFD明确使用CNN处理尺度问题,用更少的计算代价达到了更好的性能。在进行检测之前,一个高效的CNN预测人脸的尺度分布直方图,之后尺度直方图指引对图片的缩放。由于人脸缩放后将会在大约统一的尺度,这样即使是很小的CNN也能精确的检测到。实际上,通过每张图少于两次的缩放AFW中超过99%的人脸可以被覆盖(这句话表达的意思不太清楚)。在FDDB,MALF和AFW也进行实验验证了SAFD的优势。

1.引言

大意:人脸检测需要能处理尺度位姿和外形的变化。CNN的检测方法能够很好的处理位姿和外形的变化,但是对于尺度的变化却很少考虑到。CNN天然不具有尺度不变性,一个CNN可以通过扩展不同尺度变换的训练,但是需要更多的参数更复杂的结构,关注尺度问题的工作很少看到,一个可能的原因就是在学术研究里,图形金字塔上简单的多尺度测试可以用来避免尺度问题达到好的精度,然而多尺度测试导致了很大的计算代价,另一种方式是拟合一个CNN模型适应多尺度问题,这也会增加模型的尺寸和计算量。

 为了解决这个问题,我们考虑明确的估计尺度,如果我们知道每张图片中的人脸的尺寸,我们可以resize图片到最适合CNN检测器的尺度
,这样可以不用覆盖到尺度引起的变化,因此小网络也能达到更好的效果,也避免了在图像金字塔所有尺度的测试,节省了计算量。如图一所示。

这样,人脸检测过程可以分解为人脸尺度估计和单尺度检测。

尺度提取阶段通过一个轻量级全卷积网络实现,叫做scale proposal network(SPN),这个网络能够从一个任意尺寸的输入图片生成一个全局人脸尺度直方图,网络最后是一个max-pooling层,因此网络的输出是一个固定长度的向量。直方图向量编码了人脸在特定尺度的存在的概率,输入图片之后根据直方图被resize来保证所有的脸在有效的检测范围里,SPN可以用ground truth直方图向量的图像级监督来进行训练,不需要提供人脸的位置信息。

第二阶段是单尺度人脸检测,训练集图片的人脸尺度已经在检测之前被归一化到一个narrow的范围,因此一个覆盖narrow的尺度范围的简单的检测器可以达到很高的性能。在所有实验中,我们使用RPN(region proposal network)作为检测器,因为RPN简单速度快而且在人脸检测的任务中精度高,只有一个目标类别。

通过这种两个阶段的SA-RPN方法,平均计算代价减少性能达到了state-of-art的性能。原因主要有两个方面:一方面当人脸占据了一张图片的大部分的时候,可以被下采样来节省检测的计算量,当人脸比最优的范围小的时候,上采样使得检测更容易。

Contributions:

1.提出分解人脸检测问题成为两个子问题:尺度估计和单尺度检测,每个子问题都计算量少,整体的计算量降低了却达到了和FDDB,MALF和AFW相当的state-of-art的性能。

2.我们介绍SPN用于生成细粒度尺度的proposal,网络可以用图片级 的监督方式很简单的训练。

相关工作

基于CNN的人脸检测出现在1990s, 那时候的一些模型仍然广泛使用,但是虽然他们性能也很好,但是计算代价大,速度慢。

......

大的人脸需要较大的感受野的网络,较小的人脸需要较小的感受野的网络。

3.scale-aware detection pipeline

如图2所示,我们的方法包含两个阶段:把人脸检测问题分解成两个子问题,全局尺度proposal提取和单尺度检测

全局尺度提取阶段是用来估计图片中所有出现的人脸的可能的尺寸和为每个尺度proposal分配一个置信度得分。之后图片根据尺度proposal来做scale,使用单尺度RPN检测人脸,如果一张图片中生成了多中尺度proposal,就会scale和detect多次,combine结果生成最终的检测结果。

3.1Scale proposal network(SPN)

我们定义scale proposal是一系列估计的人脸尺寸和他们的置信度的集合,人脸尺寸的定义在Section4.2讨论,在scale proposal阶段,scale proposals是通过SPN生成的,SPN是一个特定设计的卷积神经网络用最少的人为引入的约束来生成scale直方图。

SPN是一个全卷积网络,在最后一个卷积层后面接了一个全局max-pooling层用于从一个任意尺寸的输入图片生成固定长度的直方图向量,figure3展示了SPN的结构。输入是下采样的图片,生成一个尺度响应热度图(大小w*h*n),在热度图的全局max-pooling之后,热度图减小为1×1×n的直方图向量,每一个向量元素对应图片上有该尺寸范围人脸的概率。直方图向量可以被解释成一个scale-vs-probability直方图,输出特征的长度等于尺度直方图的bins个数,直方图被sigmoid函数归一化,从而每一个元素在[0,1]之间,代表着概率值。

尺度直方图的详细解释如下:对于一个有n个取尺度对数后相等间隔大小的bin,左边缘对应尺寸为s0的人脸尺寸,右边缘对应人脸尺寸sn,直方图向量h定义为:


对于以上提到的网络结构,全局max-pooling层成为一个响应聚合器,丢弃了位置信息,从所有的位置提取了每个直方图bin的最大响应,这是一个很大的优势,因为他移除了代表标准RPN的位置约束。RPN的训练过程固有假设如果在输入图片的投影位置接近目标中心,在分类热度图上的响应会高。然而,在SPN中人脸的尺度估计响应可以在热度图的任意位置,忽视位置信息帮助网络选择性的学习人脸和内容的强代表特征,即使人脸比感受野的尺寸更大或者更小,这样的安排使得来自多个人脸部分的响应独立的贡献到尺度估计中,仅仅最高的响应才会被选择,这样提高了鲁棒性,这种RPN的训练策略将在4.1节讨论。 

3.2 Scaling strategy generation

在一张图片中也许会有超过一个人脸,为了减少计算量,我们希望尺寸相近的人脸能够在a single pass被检测器检测到。多亏了SPN生成的高分辨率尺度估计,这可以很容易通过非极大值抑制(NMS)实现。

当估计的尺度直方图有较多的bins的时候,(比如2^3和2^9之间有60个bin,每个bin有2^0.1的间隔),直方图会噪声比较大,而且一张图片中人脸的出现通常会给对应的bin带来高的响应,这使得不能简单的阈值化高响应。如图4。

为了从直方图提取有用的信号,直方图通过使用利用一个大小为检测器覆盖范围一半长度的滑动窗口移除均值的方法。这降低了高频噪声,而且spike获得了足够的分辨率。之后一个一维NMS用来从平滑了的直方图提取峰值,峰值的位置对应了人脸的尺寸,峰值的高度被认为是他们的置信度得分。NMS的窗口大小设置成比检测器覆盖范围稍微小一些,以便不会丢失有用的信号(比如另一张脸产生的尺度响应)。

在NMS之后就只有一小部分尺度proposal剩下,置信度大于一定阈值的proposal被选来作为最终的proposal,图片将会在检测之前做对应size的裁剪,尽管以上提到的策略不能保证得到每张图片最小数目的尺度,这个次优的方案也已经达到在保持最终proposal数目较少的情况下得到较高的召回率。

3.3single-scale RPN

我们用RPN作为人脸检测器,尽管任何检测器都可以表现相当,RPN是全卷积网络有两个输出分支,分类分支和bounding box回归分支,每个分支可能有一个或多个子分支,处理不同尺度的目标,每个子分支的参考box成为anchor box,详细RPN的信息可以参考[30].

因为人脸的尺寸变化已经在第一阶段做了处理,我们只使用有一个anchor的RPN。最大的可以检测的人脸尺寸设置为最小的可检测人脸尺寸的二倍,这种配置足够在保持平均zoom低和RPN计算量小的同时,有高的精度,我们使用的RPN称为单尺度RPN,因为他只有一个anchor,有较小的人脸尺寸。

4.实现细节

4.1全局监督

SPN的输出直方图向量直接用sigmoid交叉熵监督:

与RPN的训练过程不同,SPN训练过程中没有位置信息,训练期间,每一次迭代梯度仅仅反向传播通过最高响应的位置,尽管SPN是随即初始化训练的,最初几次迭代的位置选择可能不是总是正确的,只要数据是有效的,在经过数千次的试错的时候总会到正确的位置。由于不相关位置的相似的特征不会是所有的训练样本产生的,全局监督下的SPN将会自动学习可以generalized的特征,也会快速拒绝最可能引起负尺度样本的特征。

没有位置约束是全局监督的一个理想的特性,当训练全卷积检测器或者语义网络的时候,ground truth样本的位置使用一些策略分配在热度图上,这些人为生成的ground truth样本对训练过程引入了强约束,一个例子就是对于RPN,热度图的位置必须对应输入图像中同样的位置,通过移除这些约束,允许网络学习适应好的特征和自身合适的响应,可以提升性能。全局监督的一个明显的好处就是使得有较小感受野的网络能够为比感受野大几倍的人脸生成正确的尺度proposal,降低网络的需求。全监督下的SPN能够根据人脸部位的丰富特征自动生成scale proposal,如图5。

全局监督另一个好处就是它固有的难例挖掘特征,全局max pooling总是选择最高的响应位置用于反向传播,因此最高的响应负样本将总是在每一次迭代都会被选择。

尽管scale proposal也可以由一个更复杂的宽范围的单一视角检测器生成,比如一个多anchorRPN,但是它的速度比不上SPN。

4.2 Ground truth preparation

bounding box定义:

用于生成ground truth直方图的人脸的尺寸定义为方形bounding box的边长,这样的一个问题是如何定义人脸的bounding box,使它在训练样本中保持一致。bounding box标定中的鼻子可能会妨害SPN的性能,两个阶段中任何bounding box的错位都可能严重影响性能。

然而手工进行人脸bounding box标注是一个主观的事情,容易引入噪声,我们更倾向于从更客观标记的5点面部的标注中使用下面的转换推导出边界框,我们定义的boundingbox总是方形的。

Ground truth generatuion:

最直观的从人脸尺寸推导出ground truth的方式是将直方图作为多元二进制分类器,设置每张人脸的对应bin为正值,但是这种最近邻的方式非常容易受噪声影响,即使使用的是噪声非常少的手工协议。虽然我们可以成功的让最近邻方法在非常大的合并间隔生效,但是他的性能随着合并间隔的降低下降的很快,甚至会导致SPN不收敛。

基于以上原因,我们采用一种更稳定的方法生成ground truth直方图向量,对于每一个ground truth人脸,我们采用高斯函数:

这样做,模型对于由不完美ground truth引入的噪声会更加免疫
,因为高斯函数提供了一个软边界。theta的选择主要依赖于ground truth的误差分布和检测窗口的大小,我们的例子中使用的是theta=0.4。

如果一张图片出现了超过一张人脸,ground truth直方图是通过每个个体人脸的ground truth直方图对应元素求maximum生成,与max pooling相通。

4.3Receptive field problem

像所有的全卷积网络一样,在SPN中全局max pooling之前的热度图的感受野是有限的,但是不像RPN,SPN的感受野的限制不会阻碍网络精确估计人脸尺寸,人脸尺寸比感受野大很多倍。这是因为一个尺寸较大的人脸的局部区域包含足够的信息推断整张脸的尺寸。尽管我们使用的网络的感受野是108×108像素,它能够敏感估计到512×512像素的人脸尺寸。

4.4 Training RPN

单尺度RPN的训练是直接的,检测范围内所有的人脸被认为是正样本,检测范围以外的人脸属于负样本。

5.Experiments

推荐阅读更多精彩内容