目录
4.3 DenseBox——一种端到端的目标检测方法... 10
4.7 检测小面孔(Finding Tiny Faces). 17
深度学习人脸检测概述
1 引言
人脸检测(Face Detection),就是给一幅图像,找出图像中的所有人脸位置,通常用一个矩形框框起来,输入是一幅图像img,输出是若干个包含人脸的矩形框位置(x,y,w,h),图1-1是一个图像的人脸检测结果。
人脸检测对于我们人类非常容易,出于社会生活的需要,我们大脑中有专门的人脸检测模块,对人脸非常敏感,即使小孩子画的简笔画,大脑也能轻易检测出人脸和各自的表情。但是计算机对于人脸的检测却是一个相对较难的问题。虽然人脸的结构是确定的,由眉毛、眼睛、鼻子和嘴等部位组成,近似是一个刚体,但由于姿态和表情的变化,不同人的外观差异,光照,遮挡的影响,所以通过计算机准确的检测处于各种条件下的人脸是一件相对困难的事情。
人脸检测算法要解决以下几个核心问题:
(1)人脸可能出现在图像中的任何一个位置。
(2)人脸可能有不同的大小。
(3)人脸在图像中可能有不同的视角和姿态。
(4)人脸可能部分被遮挡
图1-1 人脸检测效果
2 人脸检测技术的发展与现状
自动人脸检测是围绕自动人脸图像分析的所有应用的基础,包括但不限于:人脸识别和验证,监控场合的人脸跟踪,面部表情分析,面部属性识别(性别/年龄识别,颜值评估),面部光照调整和变形,面部形状重建,图像视频检索,数字相册的组织和演示。
从问题的领域来看,人脸检测属于目标检测领域,更细化为特定类别目标检测领域。特定类别目标检测即仅检测图像中某一类特定目标,如人脸检测,行人检测,车辆检测等等,特定类别目标检测核心是1(目标)+1(背景)=2分类问题。这类检测通常模型比较小,速度要求非常高,这里问题的基本要求就是CPU real-time。
从人脸检测技术发展来看,深度学习技术在其中起了非常大的作用。在深度学习阶段,经典检测算法都是针对通用目标提出的,比如性能更好的Faster-RCNN, R-FCN系列,速度更快的YOLO, SSD系列,强大的深度学习只要一个CNN就可以搞定多类别检测任务。虽然这些都是多类别方法,但它们都可以用来解决单类别问题,目前人脸检测、行人检测等特定目标检测问题的State-of-the-art(SOTA)都是这类方法的针对性改进。
虽然基于深度学习的通用目标检测技术已经比较成熟,效果也比较好,但是在实际应用过程中还是存在诸多问题。比如,Faster-RCNN系列模型的优点是性能高,缺点是速度慢,在GPU上都无法实时,无法满足人脸检测对速度的极高要求,既然性能不是问题,这类方法的研究重点是提高效率。SSD系列方法的优势是速度快,在GPU上能实时,缺点是对密集小目标的检测比较差,而人脸刚好是密集小目标,这类方法的研究重点是提高密集小目标的检测性能,同时速度也需要尽可能快,GPU实时算法在应用中依然受限。
3 人脸检测算法相关工作
人脸检测算法的相关工作包括评价指标和人脸检测常用数据库
3.1 评价指标
评价一个人脸检测算法好坏的常用指标主要有以下