硬核科普:人脸识别系统 帮你把脸刷明白(6)
扫一扫
分享文章到微信
扫一扫
关注99科技网微信公众号
卷积神经网络在图像分类问题上取得成功之后,很快被用于人脸检测,在精度上超越之前的AdaBoost框架。此外直接用滑动窗口进行人脸检测的方案计算量太大很难达到实时,使用卷积网络进行人脸检测的方法采用各种手段优化这个问题。 Cascade CNN[8]借鉴AdaBoost人脸检测器思想,其也包含了多个分类器,这些分类器采用级联结构进行组织。不同的地方在于,Cascade CNN采用卷积网络作为每一级的分类器。首先使用一个小型网络12-net对输入图像进行密集人脸候选区域搜索,检测区域是12×12,搜索步长是4个像素,快速排除90%的非人脸区域,剩余的检测窗口送入12-calibration-net调整它的尺寸和位置。然后采用非极大值抑制(NMS)合并高度重叠的检测窗口,保留下来的候选检测窗口将会被归一化到24x24送入24-net。24-net将进一步剔除掉剩下来的将近90%的检测窗口。和之前的过程一样,通过24-calibration-net矫正检测窗口,并应用NMS进一步合并减少检测窗口的数量。保留下来的候选检测窗口也将会被归一化到48x48送入48-net进行分类得到进一步过滤的人脸候选窗口。然后利用NMS进行窗口合并,送入48-calibration-net矫正检测窗口作为最后的输出( 算法结构见图13 )。 图13 Cascade CNN[8]算法pipeline 一些论文认为,在人脸检测中加入一些辅助任务构成多任务学习可以提高检测性能。MTCNN[9]在人脸检测任务中加入人脸关键点检测,通过两个任务协同提高检测性能。同Cascade CNN一样也是基于Cascade的框架。MTCNN总体来说可分为三个部分:P-Net、R-Net和O-Net( 见图14 )。MTCNN利用一个浅层网络P-Net快速产生候选窗口,利用一个稍微复杂网络R-Net排除掉大量非人脸窗口,最后利用一个更强大的网络O-Net进一步改善结果,并联合输出人脸关键点位置。与Cascade CNN[8]的12-net需要在整张图片上做密集窗口采样进行分类不同,MTCNN在测试第一阶段的PNet是全卷积网络(FCN, Fully Convolutional Networks),全卷积网络的优点在于可以输入任意尺寸的图像,同时使用卷积运算代替了滑动窗口运算,大幅提高了检测的效率。 图14 MTCNN算法pipeline[9] MTCNN算法在FDDB以及WIDER FACE上取得了当时SOTA的结果( 见图15 )。详情可参见论文[9]。 图15 MTCNN[9]评测的结果,(a) FDDB;(b-d) 3 subsets of WIDER FACE. 在实际落地应用中,需要寻求实时性和准确性的折中,因为高准确率的网络往往有大量的计算,速度较慢。 FaceBoxes[10]是一个足够轻量的人脸检测器,由中科院李子青教授团队2017年提出,如文章题目所指旨在实现CPU下的实时人脸检测,图16给出了相应的算法pipeline。其针对MTCNN存在的问题:1)检测速度会受到人脸数量的影响;2)多阶段训练,过程复杂;3) 速度还是较慢,提出了以下几个创新点:
99科技网:http://www.99it.com.cn
