每当讲起美颜SDK相关技术,必定逃不过人脸表情识别,毕竟它是美颜SDK中大多数功能的基础,例如用户们常用的贴纸、面具等,都得需要人脸识别来确定人脸以及五官的位置,这样才能保证美颜功能的准确释放。而本篇我们将要探讨的话题也是人脸识别技术里的一个分支——人脸表情识别,而本文讨论的重点是人脸表情识别在美颜SDK中的几种实现方式。
一、人脸检测
首先讲一下第一种实现方式“人脸检测”,如今的人脸检测大部分都是人脸相关任务中内置的预处理模块,可以把人脸从复杂的图像目标中提取出,最后再将专注于提取人脸的相关特征,以此达到提升相关任务的效果,其中最为常用且常见的人脸提取法为“Viola”和“Jones”在2000年初提出的Viola-Jpnes,下文小编用“V”“J”简称。整体而言,它们基于类Haar特征以及Adaboost分类器,以此实现实时目标检测框架。另一方面,由于Haar更适合与人脸项目,所以作为人脸检测工具他被更多人熟知。
另外,还有基于深度学习的人脸检测算法,如多任务级联卷积神经网络(MTCNN),或者是用目标检测的相关算法实行人脸的检测,例如:Faster-CNN、SSD等。综上所述,对于人脸检测方法,可依照不同的环境选择:VJ是人脸检测方法中最常用的选择,MTCNN在保证实时性的同时,人脸检测和人脸对齐的几个难度较大的基准测试中强于VJ。其次,VJ可以在受控的数据集中稳定地检测到人脸,在非受控条件表情数据库中实验人脸表情识别方法通常是使用MTCNN。
二、归一化
如果在非受控的情况下,人脸数据很可能会受到姿态变换、光线、遮挡等复杂情况的影响,而在这些情况下,人脸表达情绪的核心区域(眼睛、嘴巴)的信息可能会缺失,从而大大影响模型训练以及测试的效果。所以,一些研究者考虑采用一些方法将人脸转换为归一化的人脸,再进行表情识别模型的训练。
关于归一化,可以分为光照归一化、姿态归一化、去除遮挡这几个步骤,由于文章篇幅原因,小编就不过多介绍了。
三、数据增强
最后一种预处理是所有深度学习任务最常见且常用的预处理方式:数据增强。深度学习需要足够多的训练数据才能保证算法模型的准确性与泛化能力,在表情识别领域,即便是研究得最久远的基于图片的人脸表情识别,目前最大的数据集AffectNet有40多万张图,跟ImageNet、VGGFace2等数据集相比还是差了太远,其他更小众的表情识别甚至到微表情识别则更是少之又少。
以上,就是人脸表情识别在美颜SDK中的几种应用,如果你对美颜SDK开发有需求,欢迎咨询客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。