行业研究报告-人脸检测算法综述(编辑修改稿)内容摘要:

窗口,保留下来的候选检测窗口将会被归一化到 24x24 作为 24 的输入,这将进一步剔除掉剩下来的将近 90%的检测窗口。 和之前的过程一样,通过 24calibration 矫正检测窗口,并应用 NMS 进一步合并减少检测窗口的数量。 将通过之前所有层级的检测窗口对应的图像区域归一化到 48x48 送入 48 进行分类得到进一步过滤的人脸候选窗口。 然后利用 NMS 进行窗口合并,送入48calibration 矫正检测窗口作为最后的输出。 12x12, 24x24, 48x48 尺寸作为输入的分类 CNN 网络结构,其中输出为 2类 人脸和非人脸。 12x12, 24x24, 48x48 尺寸作为输入的矫正( calibration) CNN 网络结构。 其中输出为 45 中种矫正模式的类别。 文中影响区域位置和大小的因素有三种:尺度、 X 方向偏移、 Y 方向 偏移。 总共构成了 5x3x3=45 种模式。 上一级检测网络输出的人脸位置( x,y,w,h)通过以下公式进行校正: 校正网络的结构如下图所示: Cascade CNN 一定程度上解决了传统方法在开放场景中对光照、角度等敏感的问题,但是该框架的第一级还是基于密集滑动窗口的方式进行窗口过滤,在高分辨率存在大量小人脸( tiny face)的图片上限制了算法的性能上限。 DenseBox 文献 [18]提出了一种称为 DenseBox 的目标检测算法,适合人脸这类小目标的检测。 这种方法使用全卷积网络,在同一个网络 中直接预测目标矩形框和目标类别置信度。 通过在检测的同时进行关键点定位,进一步提高了检测精度。 检测时的流程如下: ,将各种尺度的图像送入卷积网络中处理,以检测不同大小的目标。 ,对特征图像进行上采样然后再进行卷积,得到最终的输出图像,这张图像包含了每个位置出现目标的概率,以及目标的位置、大小信息。 ,得到最终的检测结果。 在检测时卷积网络接受 的输入图像,产生 5个通道的 输出图像。 假设目标矩形左上角 的坐标为 ,右下角 的坐标为。 输出图像中位于点 处的像素用 5 维向量描述了一个目标的矩形框和置信度信息: 第一个分量是候选框是一个目标的置信度,后面 4项分别为本像素的位置与矩形框左上角、右下角的距离。 每个像素都转化成一个矩形框和置信度值,然后对置信度值大于指定阈值的矩形框进行非最大抑制,得到最终检测结果。 backbone 从 VGG 19 网络改进得到,包含 16 个卷积层。 前 12个卷积层用 VGG 19的模型进行初始化。 卷积层 conv4_4 的的输出被送入 4 个 的卷积层中。 第一组的两个卷积层产生 1 通道的输出图像 作为置信度得分;第二组的两个卷积层产生4 通道的输出图像作为矩形框的 4个坐标。 网络的输出有两个并列的分支,分别表示置信度和矩形框位置预测值。 整个网络的结构如下图所示: DenseBox 的网络结构 为了提高检测精度,采用了多尺度融合的策略。 将 conv3_4 和 conv_4_4 的卷积结果拼接起来送入后面处理。 由于两个层的输出图像大小不同,在这里用了上采样和线性插值对小的图像进行放大,将两种图像尺寸变为相等。 由于输出层有两个并列分支,损失函数由两部分组成。 第一部分输出值为分类置信度即本位置是一个目标的概率, 用 表示。 真实的类别标签值为 ,取值为 0或者 1,分别表示是背景和目标。 分类损失函数定义为: 损失函数的第二部分是矩形框预测误差,假设预测值为 ,真实值为 ,它们的4 个分量均为当前像素与矩形框左上角和右下角的距离。 定位损失函数定义为: 总损失函数为这两部分加权求和。 训练时样本标注方案如下:对于任何一个位置,如果它和真实目标矩形框的重叠比大于指定阈值,则标注为 1,否则标注为 0;对位置的标注根据每个像素与目标矩形框 4 条边的距离计算。 FacenessNet FacenessNet[19]是一个典型的由粗到精的工作流,借助了多个基于 DCNN 网络的 facial parts 分类器对人脸进行打分,然后根据每个部件的得分进行规则分析得到 Proposal 的人脸区域,最后通过一个 Refine 的网络得到最终的人脸检测结果。 整体流程如图 Faceness( b)。 Faceness( a) Faceness( bamp。 c) 系统主要包含了 2个阶段 : 第 1 阶段 :生成 partness map,由局部推理出人脸候选区域。 根据 attributeaware 深度网络生成人脸部件 map 图 (partness map),如上图Faceness(a)中的颜色图,文章共使用了 5 个部件 :hair,eye,nose,mouth,beard. 通过 part 的结合计算人脸的 部件之间是有相对位置关系的 ,比如头发在眼睛上方 ,嘴巴在鼻子下方 ,因此利用部件的 spatial arrangement 可以计算 face likeliness. 通过这个打分对原始的人脸 proposal 进行重排序 . 如图 Faceness(b)。 第 2 阶段 : Refining the face hypotheses 上一阶段 proposal 生成的候选框已经有较高的召回率,通过训练一个人脸分类和边界回归的 CNN 可以进一步提升其效果。 Faceness 的整体性能在当时看来非常令人兴奋。 此前学术界在 FDDB 上取得的最好检测精度是在 100 个误检时达到 84%的检测率, Faceness 在 100 个误检时,检测率接近 88%,提升了几乎 4个百分点;除了算法本身的精度有很大提升,作者还做了很多工程上的优化比如:通过多个网络共享参数,降低网络参数量 83%;采用多任务的训练方式同一网络实现不同任务等。 MTCNN MTCNN[20]顾名思义是多任 务的一个方法,它将人脸区域检测和人脸关键点检测放在了一起,同 Cascade CNN 一样也是基于 cascade 的框架,但是整体思路更加巧妙合理, MTCNN 总体来说分为三个部分: PNet、 RNet 和 ONet,如下图所示: Cascade CNN 第一级的 12 需要在整张图片上做密集窗口采样进行分类,缺陷非常明显; MTCNN 在测试第一阶段的 PNet 是全卷积网络( FCN),全卷积网络的优点在于可以输入任意尺寸的图像,同时使用卷积运算代替了滑动窗口运算,大幅提高了效率。 下图为不同尺度图像经过 PNet 的密集分类 响应图,亮度越高代表该区域是人脸的概率越大( dense prediction response map)。 除了增加人脸 5 个关键点的回归任务,另外在 calibration 阶段采用了直接回归真实位置坐标的偏移量的思路替代了 Cascade CNN 中的固定模式分类方式,整个思路更为合理。 MTCNN 的整体设计思路很好,将人脸检测和人脸对齐集成到了一个框架中实现,另外整体的复杂度得到了很好的控制,可以在中端手机上跑 20~30FPS。 该方法目前在很多工业级场景中得到了应用。 先抛出一张据说是目前世界上人数最 多的合照吓吓大家。 一眼望过去能估计下有多少人吗。 因为本文对小目标人脸检测有很多独到的理解,我们下面会多花点笔墨去分析。 HR 之前我们讲过的一些方法都没有针对小目标去分析,小目标检测依然是检测领域的一个难题, [21]本文作者提出的检测器通过利用尺度,分辨。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。