专栏首页AI科技大本营的专栏深度学习在人脸检测中的应用 | CSDN 博文精选

深度学习在人脸检测中的应用 | CSDN 博文精选

作者 | 梁志成、刘鹏、陈方杰

责编 | 唐小引

转载自CSDN(ID:csdnnews)

在目标检测领域,可以划分为人脸检测与通用目标检测,往往人脸这方面会有专门的算法(包括人脸检测、人脸识别、人脸其他属性的识别等),并且和通用目标检测(识别)会有一定的差别。这主要来源于人脸的特殊性(譬如有时候目标比较小、人脸之间特征不明显、遮挡问题等),本文将主要从人脸检测方面来讲解目标检测。

目前主要的人脸检测方法分类

当前,人脸检测方法主要包含两个区域:传统人脸检测算法和基于深度学习的人脸检测算法。传统人脸检测算法主要可以分为 4 类:

  • 基于知识的人脸检测方法;
  • 基于模型的人脸检测方法;
  • 基于特征的人脸检测方法;
  • 基于外观的人脸检测方法。

2006 年,Hinton 首次提出深度学习(Deep Learning)的概念,它是通过组合低层的特征形成更高层的抽象特征。随后研究者将深度学习应用在人脸检测领域,主要集中在基于卷积神经网络(CNN)的人脸检测研究,如基于级联卷积神经网络的人脸检测(Cascade CNN)、基于多任务卷积神经网络的人脸检测(MTCNN)、Facebox 等,很大程度上提高了人脸检测的鲁棒性。

当然,像 Faster RCNN、YOLO、SSD 等通用目标检测算法也有用在人脸检测领域,也可以实现比较不错的结果,但是和专门人脸检测算法比还是有差别。

如何检测图片中不同大小的人脸?

传统人脸检测算法中针对不同大小人脸主要有两个策略:

  • 缩放图片的大小(图像金字塔如图 1 所示);

图 1 图像金字塔

  • 缩放滑动窗的大小(如图 2 所示)。

图 2 缩放滑动窗口

基于深度学习的人脸检测算法中,针对不同大小人脸主要也有两个策略,但和传统人脸检测算法有点区别,主要包括:

  • 缩放图片大小:不过也可以通过缩放滑动窗的方式,基于深度学习的滑动窗人脸检测方式效率会很慢存在多次重复卷积,所以要采用全卷积神经网络(FCN),用 FCN 将不能用滑动窗的方法。
  • 通过 anchor box 的方法:如图 3 所示,不要和图 2 混淆,这里是通过特征图预测原图的 anchorbox 区域,具体在 Facebox 中有描述。

图 3 anchor box

如何设定算法检测最小人脸尺寸?

主要是看滑动窗的最小窗口和 anchorbox 的最小窗口。

  • 滑动窗的方法

假设通过 12×12 的滑动窗,不对原图做缩放的话,就可以检测原图中 12×12 的最小人脸。

但是往往通常给定最小人脸 a=40、或者 a=80,以这么大的输入训练 CNN 进行人脸检测不太现实,速度会很慢,并且下一次需求最小人脸 a=30*30 又要去重新训练,通常还会是 12×12 的输入,为满足最小人脸框 a,只需要在检测的时候对原图进行缩放即可:w=w×12/a。

  • anchorbox 的方法

原理类似,这里主要看 anchorbox 的最小 box,通过可以通过缩放输入图片实现最小人脸的设定。

如何定位人脸的位置

  • 滑动窗的方式:

滑动窗的方式是基于分类器识别为人脸的框的位置确定最终的人脸。

图 4 滑动窗

  • FCN 的方式:

通过特征图映射到原图的方式确定最终识别为人脸的位置,特征图映射到原图人脸框是要看特征图相比较于原图有多少次缩放(缩放主要查看卷积的步长和池化层)。

假设特征图上(2,3)的点,可粗略计算缩放比例为 8 倍,原图中的点应该是(16,24);如果训练的 FCN 为 12*12 的输入,对于原图框位置应该是(16,24,12,12)。

当然这只是估计位置,具体的在构建网络时要加入回归框的预测,主要是相对于原图框的一个平移与缩放。

  • 通过 anchor box 的方式:

通过特征图映射到图的窗口,通过特征图映射到原图到多个框的方式确定最终识别为人脸的位置。

如何通过一个人脸的多个框确定最终人脸框位置?

图 5 通过 NMS 得到最终的人脸位置

NMS 改进版本有很多,最原始的 NMS 就是判断两个框的交集。如果交集大于设定的阈值,将删除其中一个框。

那么两个框应该怎么选择删除哪一个呢? 因为模型输出有概率值,一般会优选选择概率小的框删除。

基于级联卷积神经网络的人脸检测(Cascade CNN)

  • Cascade CNN 的框架结构是什么?

级联结构中有 6 个 CNN,3 个 CNN 用于人脸非人脸二分类,另外 3 个 CNN 用于人脸区域的边框校正。

给定一幅图像,12-net 密集扫描整幅图片,拒绝 90% 以上的窗口。剩余的窗口输入到 12-calibration-net 中调整大小和位置,以接近真实目标。接着输入到 NMS 中,消除高度重叠窗口。下面网络与上面类似。

  • Cascade CNN 人脸校验模块原理是什么?

该网络用于窗口校正,使用三个偏移变量:

Xn:水平平移量,Yn:垂直平移量,Sn:宽高比缩放。

候选框口(x,y,w,h)中,(x,y)表示左上点坐标,(w,h)表示宽和高。

我们要将窗口的控制坐标调整为:

这项工作中,我们有种模式。偏移向量三个参数包括以下值:

同时对偏移向量三个参数进行校正。

  • 训练样本应该如何准备?

人脸样本;

非人脸样本。

  • 级联的好处

最初阶段的网络可以比较简单,判别阈值可以设得宽松一点,这样就可以在保持较高召回率的同时排除掉大量的非人脸窗口;

最后阶段网络为了保证足够的性能,因此一般设计的比较复杂,但由于只需要处理前面剩下的窗口,因此可以保证足够的效率;

级联的思想可以帮助我们去组合利用性能较差的分类器,同时又可以获得一定的效率保证。

基于多任务卷积神经网络的人脸检测(MTCNN)

MTCNN 模型有三个子网络,分别是 P-Net,R-Net,O-Net。

为了检测不同大小的人脸,开始需要构建图像金字塔,先经过 PNet 模型,输出人脸类别和边界框(边界框的预测为了对特征图映射到原图的框平移和缩放得到更准确的框),将识别为人脸的框映射到原图框位置可以获取 patch,之后每一个 patch 通过 resize 的方式输入到 RNet,识别为人脸的框并且预测更准确的人脸框,最后 RNet 识别为人脸的的每一个 patch 通过 resize 的方式输入到 ONet,跟 RNet 类似,关键点是为了在训练集有限情况下使模型更鲁棒。

还要注意一点:构建图像金字塔的的缩放比例要保留,为了将边界框映射到最开始原图上。

Facebox

(1)Rapidly Digested Convolutional Layers(RDCL)

在网络前期,使用 RDCL 快速的缩小 feature map 的大小。 主要设计原则如下:

  • Conv1, Pool1, Conv2 和 Pool2 的 stride 分别是 4, 2, 2 和 2。这样整个 RDCL 的 stride 就是 32,可以很快把 feature map 的尺寸变小。
  • 卷积(或 pooling)核太大速度就慢,太小覆盖信息又不足。权衡之后,将 Conv1, Pool1, Conv2 和 Pool2 的核大小分别设为 7x7,3x3,5x5,3x3。
  • 使用 CReLU 来保证输出维度不变的情况下,减少卷积核数量。

(2)Multiple Scale Convolutional Layers(MSCL)

在网络后期,使用 MSCL 更好地检测不同尺度的人脸。 主要设计原则有:

  • 类似于 SSD,在网络的不同层进行检测;
  • 采用 Inception 模块。由于 Inception 包含多个不同的卷积分支,因此可以进一步使得感受野多样化。

(3)Anchor densification strategy

为了 anchor 密度均衡,可以对密度不足的 anchor 以中心进行偏移加倍,如下图所示:

作者简介:

梁志成,全球 AI 挑战赛百强选手,《深度学习 500 问》作译者,CSDN 博客专家及签约讲师。

刘鹏,稿定科技计算机视觉工程师,《深度学习 500 问》作译者。

陈方杰,上海大学硕士,《深度学习 500 问》作译者。

CSDN 博客原文:

https://blog.csdn.net/lzc4869/article/details/94666784

欢迎所有开发者朋友入驻 CSDN 博客,技术之路,共同进步。

(*本文为 AI科技大本营转载文章,转载请联系原作者)

本文分享自微信公众号 - AI科技大本营(rgznai100)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网红直播时的瘦脸、磨皮等美颜功能是如何实现的?

    随着移动设备的发展,美颜已成为多媒体内容生成链路中不可缺少的一种基本能力,尤其是在来疯直播秀场业务的场景下,主播的颜值就意味着生产力,直接影响主播及平台的收入。

    AI科技大本营
  • 独家 | 雷军如何秒变军装帅哥?关于腾讯天天P图的8个技术问答(文末有彩蛋)

    作者 | 周翔 近日,小米科技董事长兼 CEO 雷军在微博上放出多张军装照, 还真是有浓浓的红军年代感...。 实际上,这是人民日报为了建军 90 周年策划的一...

    AI科技大本营
  • 又一名逃犯在张学友演唱会被 AI 捕获,人送绰号“热心歌神张先生”

    据悉,先后有两名嫌犯在张学友演唱会上,被智慧安保人像识别功能锁定,抓捕归案。网友分析称犯罪嫌疑人大多是 30 岁 - 40 岁左右的人群,这个年龄段的人都爱张学...

    AI科技大本营
  • 一篇文章搞懂人脸识别的十个概念

    人脸技术基本概念介绍 1. 人脸检测   “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。   人脸检测算法的输入是一张图片,...

    小莹莹
  • 【杂谈】如果你想快速系统掌握计算机视觉大部分领域,学习人脸图像是唯一选择

    笔者是从传统图像算法开始进入计算机视觉行业的,那一批人基本上都是从人脸图像和文本图像开始学,而如今很多计算机视觉从业者却从来没有接触过人脸图像相关的算法,或许真...

    用户1508658
  • 一篇文章搞懂人脸识别的十个概念

    笔者整理了一些常见人脸技术的基本概念,主要用于帮助非基础研究读者对人脸相关技术有一个更深入的了解,方便后续的交流与合作。

    汪铖杰
  • 推荐|研究人脸识别技术必须知道的十个基本概念

    1. 人脸检测 “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。 人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人...

    IT派
  • 一篇文章搞懂人脸识别的十个概念

    作者:汪铖杰 首发于 腾讯云技术社区 量子位 已获授权编辑发布 优图实验室研究人脸技术多年,不仅在技术方面有很好的积累,而且在公司内外的业务中有众多应用。笔者作...

    量子位
  • 利用渐进校准网络(PCN)的实时角度无关人脸检测

    然后现在的很多人脸检测器比如我们介绍过的MTCNN,FaceBoxes,RetinaFace等等都实现了高精度的实时人脸检测,但这些算法往往都是在直立的人脸上表...

    BBuf
  • 人脸识别应用之“变脸”

    “照片分享”是社交场景中比重很大的一部分,当然现在来看视频(特别是短视频)也变得越来越多,而照片又以人像为主,所以我们看到如QQ空间、微博、微信朋友圈里,自拍、...

    智能算法

扫码关注云+社区

领取腾讯云代金券