2018年7月24日

基于形状和外观的序列化网络来检测移动设备上的实时人脸属性

摘要

在计算机视觉中,对面部属性的分类已经引起了研究人员和企业的浓厚兴趣。基于深度神经网络的方法现在被广泛用于此类任务,并且已经达到了比以前人工设计的方法更高的检测精度。我们的论文报告了在检测人脸属性时,预处理和人脸图像对齐是如何影响准确率的得分的。更重要的是,它展示了将人脸的形状和外观结合起来,组织成一个卷积神经网络序列,与之前在FER+数据集上的工作相比,如何提高人脸属性的分类分数。

虽然该领域的大多数研究都试图通过平均化多个非常深的网络来提高检测精度,但暴露的工作集中在建立efficient模型,同时保持高的精度分数。通过利用脸部形状组件和依靠一个efficient浅层CNN架构,我们揭开了在移动浏览器上第一个可用的、高度准确的实时实现。

链接到论文AMDO 2018: 73-84, Nicolas Livet, George Berkowski

介绍/内容

多年来,基于图像和图像序列的人脸属性探索一直是人们关注的话题。几十年来,人们精心设计了许多方法,试图以尽可能高的精确度来解决这个问题。然而,大多数人工设计的方法在处理现实生活中的 "野蛮人脸 "问题时,似乎变得不那么有效。人工制作的方法通常与一些机器学习原理相结合,例如LBP+SVM[1]或SIFT/HOG+SVM[2]。

与最近的大多数方法相比,我们的方法包括评估更深的架构或平均多个深度模型,我们的方法包括使用浅层CNN架构和先验信息进行情绪分类。我们的目标是在移动浏览器上实现稳健和实时的面部属性(所示例子中的情绪)检测。

数据集

所介绍的架构是在FER+数据集[FER]上进行训练和结果评估的,该数据集于2013年首次发布,后来通过更好的注释进行改进。FER数据集包含约30,000个样本,使其成为最完整的野外人脸情感数据集之一。

请注意,对于我们的训练和测试阶段,我们摆脱了传统的CK+数据集[CK+],因为准确率分数已经饱和了。CK+和其他传统的数据集只提供非常有约束性的图像,有。

  • 有限的样本数(SFEW)。
  • 姿势有限(CK+,JAFFE)。
  • 有限的照明变化(全部)。
  • 脸部多样性有限(如JAFFE)。

CK+(Extended Cohn-Kanade表达式数据集)几十年来一直是比较准确率的首选数据集。我们可以看到它是如何在最近的技术中达到饱和的。

然而,FER+数据集远非完美,包括几个偏见/问题。

  • 使用人脸检测器构建实例,该检测器以特定方式裁剪人脸。
  • 低质量和低分辨率的裁剪图像包含压缩伪影、混叠、 ...
  • 没有提供原始图像。
  • 大部分正面的人脸都是可用的(因为人脸检测器往往无法检测到侧面的人脸)。


为了减少这种偏差的影响,对数据集进行了如下预处理。

  1. 使用超级分辨率CNN架构[SRCNN]对图像进行上采样(2倍)和增强(去除噪音、jpeg伪影)。
  2. 然后通过逐步镜像和模糊像素来扩大边界,得到128x128的人脸图像。
  3. 清洁的增强实例最终是在随机投影变换的基础上构建的(在训练阶段)。

三个简单的预处理步骤来减少FER+数据集偏差的影响(图像放大、边界扩展和最后的随机裁剪。

建筑学

我们决定依靠现代的mobilenet架构[MOBNET],而不是依靠越来越深的、平均的CNN架构。这样的架构包括几个点状/深度可分离的过滤器,从而优化了推理时的计算(见图)。

我们最快的架构是基于点状/深度运算符的。它是在截断的Mobilenet-0.5架构基础上构建的。

然而,较浅的架构不能与非常深的VGG或Resnet-50架构竞争。这就是为什么要向网络提供补充信息,为系统提供先验知识的原因,目的是尽可能地接近用深度架构获得的结果。

塑造先前的架构

一个补充通道被构建并添加到RGB或灰色输入图像中。这个通道包含了由其内部地标描述的脸部形状。这是一个我们命名为形状先验热图的图像,因为它包含了脸部地标附近的一个(重新缩放的)高斯峰值响应(见图)。

我们的面部情绪检测架构分为两步:首先对面部地标进行定位(在这项工作中没有描述,一些结果见www.deepar.ai),然后根据面部地标的定位来检测情绪。下面的插图描述了我们完整的架构。

结果

毫不奇怪,形状先验有助于提高FER+数据集的准确率。在浅层CNN架构上进行推断时,情况更是如此。

我们使用VGG架构在FER+数据集上的准确率比最先进的水平有所提高。

在我们的实验中,使用形状先验在浅层架构上有很大的改进(这里是在Mobilenet-0.5上)。

我们已经在不同的架构上对我们的方法进行了基准测试。为了使我们的应用在移动浏览器上实现实时性,我们开发了一个优化的点式1×1和深度式3×3卷积的实现,依靠Emscripten 工具来构建JavaScript比特码。尽管我们的实现可以进一步优化(例如,通过利用SIMD指令),我们的原生安卓应用在谷歌Pixel 2上达到了300fps,在同一设备上使用Chrome网络浏览器达到了近100fps(更多结果请参考表1的最后几栏)。

总结

我们的工作讨论了现有的数据集,它们各自的缺点,以及如何准备数据以提高传递给学习过程的信息质量。我们展示了如何将面部特征检测系统的结果转化为面部形状热图图像,以及如何将一个形状的面部与它的外观结合起来,学习修改过的CNN模型。使用这种方法,FER+数据集上的准确性分数得到了大幅提高。

对非离散标签分布进行评估的平滑损失(Huber Loss)的选择为我们的系统带来了在不同情感属性之间进行插值的能力。我们的架构和内部实施利用了古老的可分离的点式1×1和深度式3×3卷积器的优势。我们能够部署一个人脸跟踪器,并结合一个在移动浏览器架构上实时工作的人脸情绪检测器。

参考文献

[1] 使用局部二进制模式进行动态纹理识别并应用于面部表情 - G. Zhao & All

[2] 面部表情识别和定向梯度直方图:一项综合研究 - P. Carcagnì & All

[FER+] 利用众包标签分布训练深度网络进行面部表情识别 - E. Barsoum

[CK+] 扩展的Cohn-Kanade数据集(CK+)。一个完整的行动单元和情感指定表达的数据集 - P. Lucey

[SRCNN]使用深度卷积网络的图像超级分辨率 - 董超,陈变劳,IEEE会员,何开明,IEEE会员,唐晓鸥,IEEE会员

[MOBNET] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications - A. G. Howard & All

从DeepAR获取最新信息

我们写关于AR案例研究、见解和我们正在创造的最新AR技术。

成功了!🎉 䗗䗗䗗䗗䗗䗗䗗
哎呀!出了点差错。请再试一次。
外部链接

准备好开始使用DeepAR了吗?

免费创建一个账户,并在几分钟内集成SDK。我们甚至有大量的预制集成,使你的生活更轻松。或者如果你愿意,可以在这里与我们联系。

头上有心形AR效果的女人--她在LUURVE。兴奋的男人头顶上有烟花的AR过滤器
女子呕吐出一道彩虹。至少最后会有一盆金子......或者是甜玉米?眼睛上有心形AR效果的女人。她也在luuurve中。