人脸表情识别,是美颜sdk中大部分功能实现的前提,例如贴纸、妆容在人脸的位置,都需要人脸表情识别技术的修正才能达到“准确”,那么,人脸表情识别在美颜sdk中是有这几种实现方式?
一、人脸检测
人脸检测基本上是所有人脸有关的任务中都会包含的一个预处理模块,它把人脸从复杂的图像中提取出来,后续只需专注于提取人脸的相关特征,从而有效提升相关任务的效果。最常用的人脸提取方法是Viola和Jones在2001年提出的Viola-Jones(下面简称V&J)目标检测器,它基于类Haar特征以及Adaboost分类器实现了一个实时目标检测的框架。同时由于Haar特征更适合于人脸,因此其作为人脸检测工具被更多人熟知。OpenCV中的Haar分类器就是基于Viola-Jones方法的一个改进版本。
当然还有基于深度学习的人脸检测算法,如多任务级联卷积神经网络(MTCNN),或者直接用目标检测的相关算法进行人脸的检测,如Faster-CNN、SSD等进行。因此,对于人脸检测方法,可根据不同情况选择:V&J是人脸检测方法中最常见的选择,MTCNN在保证实时性的同时,在人脸检测和人脸对齐的几个具有挑战性的基准测试中胜过V&J。V&J可以在受控的数据集中稳定地检测到人脸。在非受控条件表情数据库中实验人脸表情识别方法通常是使用MTCNN。
二、脸部归一化
如果是在非受控条件下,人脸数据很可能会受到姿态变换、光线、遮挡等问题的干扰,在这些情况下,人脸表达情绪的核心区域(眼睛、嘴巴)的信息就会缺失,从而大大影响模型训练/测试的效果。因此,一些研究者考虑采用一些方法将人脸转换为归一化的人脸,再进行表情识别模型的训练。
关于归一化,可以分为光照归一化、姿态归一化、去除遮挡这几个步骤,由于文章篇幅原因,这里就不再做过多介绍了。
三、数据增强
最后一种预处理也是所有深度学习任务最常用的预处理方式:数据增强。深度学习需要足够多的训练数据才能保证算法模型的准确性与泛化能力,在表情识别领域,即便是研究得最久远的基于图片的人脸表情识别,目前最大的数据集AffectNet是40多万张图,跟ImageNet、VGGFace2等数据集相比还是小巫见大巫,至于其他更小众的表情识别(如微表情识别)则更是少之又少。
以上,就是人脸表情识别在美颜sdk中的几种实现方式,如果你对美颜sdk开发有需求,欢迎咨询客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。