从看脸到读心:深度理解人的视觉技术走到哪了?

🤖 由 文心大模型 生成的文章摘要
本文整理自微信公众号“AI科技评论”(ID:aitechtalk),作者蒋宝尚。
“视觉智能已经从最初的看脸走向了对人的更深层次的分析。更为准确的说,人脸识别在过去的5年时间里面,有了一个跨越式的进步,人脸识别之战基本上已经接近尾声,以后更多的考虑如何将应用落地,如何将技术应用到各站业务场景。
以下为正文,Enjoy~”
AI正在尝试攻克“读心术”。随着人脸识别为代表的“看脸”技术已经逐渐走向成熟,越来越多的科学家正在攻克这个难题。利用AI算法,捕捉面部特征所承载的多维信息,分析推断一个人精神状况,从人工智能的角度就变成了输入表情,输出性格、情绪、心理活动的“函数”映射问题。其中输入的特征可以是微表情,也可以是视线等;输出结果可以是喜怒哀乐等情绪。
举例来说,荷兰阿姆斯特丹大学的尼克·瑟比博士曾利用现代的深度学习方法对蒙娜丽莎的“情绪"进行破解,发现蒙娜丽莎有83%的快乐,9%的厌恶,6%的恐惧,还有2%的愤怒。
蒙娜丽莎情绪分析或许有些“玩”的意味,但是它背后所采用的技术对于医学、情感陪伴、金融保险都有非常重要的意义。例如客观化、易于实施的自闭症儿童早期诊断技术、能读懂老人情感和状态的机器人交互技术、对司机危险驾驶行为的监控和报技术等等。
具体来看,目前医学上在精神疾病的诊断更多依赖于量表测试和医生面诊,诊断结果更偏向主观性。看病就医时,中医通过“望闻问切”的“望”来了解患者的病征,作出诊断;而心理医生面诊时也会通过观察病人面容来判断病人在精神层面的状态。以抑郁症患者为例,传统方法下,医生通常会采取三种检查手段来判断病人是否患有抑郁症以及患病的程度,分别是:面诊、量表测试和脑电波测试。而采用计算机视觉技术可有助实现非接触性检查。
抑郁症分析
我们先来看人工智能在抑郁症分析上的应用。
AI在自闭症儿童早期诊断上,整个过程大致有两个步骤:首先是利用各种传感器,记录社交行为或个体行为过程;然后通过AI技术分析儿童的行为特征。
两个步骤各有难点,例如眼神捕捉的传感器就不能用普通的摄像头,而需要比较贵重的眼动仪。采用AI分析技术的时候,需要考虑视点特征,例如看图时的关注点模式,视线的移动模式;表情特征,例如表情丰富度,表情模仿能力,表情解读能力;社交特征,例如眼神对视多少,互动方式等等。这里面用的技术包括:视线估计技术,表情识别技术面部动作识别数据挖掘技术等等。
目前关于此类分析,已经得出了一些孤独症(ASD)视点特征结论:
ASD视点特征结论
基于此,AI 在抑郁症诊断上的应用也不断凸显,来自澳大利亚堪培拉大学以及新南威尔士大学和ANU等就采用人工定义特征的方法分别对30个重度抑郁症患者和30个健康人进行了测试。
具体而言,人工定义的特征包括语音与语言特征,例如词汇数量,停顿数,说话时长;眼神特征,例如东张西望,眨眼率;头部姿态特征,例如头朝向变化率,各个朝向的时长。
此项测试实验结果表明,如果用副语言特征就会做到83%,用眼动行为能做到73%,用头部估计能做到63%,融合之后能够做到88%的精度。因为只有60个人的数据,且有30个是重度抑郁症,所以这个结果差强人意。
但人工定义特征更多的是传统的“专家模式”,2018年,采用深度学习的方法,《IEEE Transactions on Affective Computing》期刊中的一项工作将表征信息和动态信息分两路馈送到CNN网络里面,然后输出一个抑郁分数(Depression Score)。训练数据是AVEC2013的一个子集,包含82个人的150段视频。整个结果做到了7.58的MAE精度。
更进一步,斯坦福大学的李飞飞,2018在NeurIPS上也曾介绍了一项基于3D表情和语音的抑郁症评估,核心是用多模态的数据进行分析。模型由两个技术部分组成:(i)一个句子级的“概要”嵌入(嵌入的目的是“概括”一个可变长度的序列,将它变为固定大小的数字向量。)和(ii)一个因果卷积网络(C-CNN)。实验分为两部分。首先与现有测量抑郁症症状严重程度的工作进行了比较,预测PHQ评分,并输出关于患者是否患有重度抑郁症的二元分类,通常PHQ评分大于或等于10。对模型进行消融研究之后特异性和敏感度分别做到了82.6%和83.3%。
心率分析
除了抑郁症,学界也在想办法通过看脸分析心率,作为人体最基础的一种生理信号之一,能反映人的身体健康状况甚至情绪状态。传统的心率测量通常依赖于接触式的传感器,比如较为精准的心电图以及便携式的指夹式心率仪等,这些方法心率估计的精度通常较好,但同时因为需要接触人体皮肤,限制了其使用的便利性。
远距离/非接触式光体积变化描记图法估计能够克服这个限制,背后的原理非常清楚,即每一次心跳都会有相应的血流量变化对应,这表现在脸上,即皮肤对光线吸收的周期性变化。当然,这个信号非常微弱。
此类工作在国际上已经有一段时间的发展了。
2008年是一个节点,在此之前主要还是做接触式的心率分析。2008年之后开始有一些工作,基于摄像头拍摄人的面部,通过周期性变化来估计心跳的次数。
最初的方式是基于独立元分析:先找出心率的周期性信号,然后通过傅里叶变换、频率分析等,估计出周期/频率。
上述的工作主要是基于物理模型,从脸部皮肤中分割出一个典型的区域,然后提取颜色变化信息,进行频谱分析,然后估计人的生理特征。
深度学习的出现再次改变了这个领域的研究方法。
2018年,中科院计算所山世光研究员提出了一种基于深度学习的方法:直接把提取信号送到神经网络中进行学习。
具体而言,其提出的是一个名为RhythmNet的端到端的可训练心率评估器,利用AI和光电容积脉搏波描记法来应对头部运动和光线变化方面的挑战。整个过程分为三部分:在ImageNet上预训练,然后将数据馈送到深度神经网络里面,最后对真实人脸心率信号精调。
但是训练过程中数据量小成了约束。当时最大的人脸心率数据集也不超过50人,深度模型容易过拟合。于是他想到人为加上弱周期性的信号去完成预训练,如此便能生成大量的数据。实验结果在标准数据集上HRrmse做到了4.49(最好的指标是6.23)。
但是用来训练的数据存在一个问题——人的心率分布是不均衡的。大多数人的心率都集中在60到90之间。120、130此类的数据非常少。用这样的数据做训练,显然会存在偏差。
山世光采用的方法是对人脸心率数据增广,即在时域中进行上、下采样,这样训练集里面的心率的数据范围就会更加的广泛,且能获得相对更均匀的心率数据。
微表情分析
对微表情的研究,方法上类似人脸识别,包含检测和识别两个具体问题。
具体来说,就是先从一段长视频中把发生微表情的视频片段检测出来,然后识别该微表情属于哪一类微表情。
微表情检测,就是指在一段视频流中,检测出是否包含微表情,并标记微表情的起点(onset)、峰值(apex)和终点(offset)。起点(onset) 是指微表情出现的时间;峰值(apex) 是指微表情幅度最大的时间; 终点(offset) 是指微表情消失的时间。
微表情识别是指给定一个已经分割好的微表情片断,通过某种算法,识别该微表情的情绪种类(例如厌恶、悲伤、惊讶、愤怒、恐惧、快乐等)。如同三维动态表情识别一样,其处理的对象是视频片断,而不只是单幅图像。对其处理过程中,不仅要考虑空间上的模式,还要考虑时间上的模式。所以许多微表情识别的算法都考虑了时空模式。
事实上对于微表情研究,最难的是如何收集足够多的、质量高的微表情数据集。目前,微表情现有的数据库样本量都非常小,公开发表的微表情样本只有不到800个。因此微表情研究是典型的小样本问题。这也是造成当前基于深度学习的方法在微表情问题上无法完全发挥出它应有威力的主要原因。
中科院计算所山世光提到过一项基于视频流的自监督特征表达方法,通过巧妙利用自监督约束信号,得到提纯的面部动作特征用于微表情识别。
总体的框架
区别于当前人脸区域分块、注意力机制等方法学习人脸局部区域的AU特征,这类方法在训练阶段需要利用精确标注的AU标签,由于目前业界发布的AU数据集人数及图像总量不足,采用监督学习方法训练得到的模型往往呈现出在特定数据集上的过拟合现象,他们提出了一种能够在不依赖AU标签的前提下,从人脸视频数据中自动学习AU表征的方法(Twin-Cycle Autoencoder,简称TCAE)。TCAE用于后续的AU识别任务时,只需要利用训练数据训练一个分类器即可,显著减少了所需的训练数据,并提升了模型的泛化能力。
考虑到两帧人脸图像之间的运动信息包含了AU以及头部姿态的运动分量,TCAE通过利用巧妙的自监督约束信号,使得模型能够分离出AU变化引起的运动分量,以及头部姿态变化引起的运动分量,从而得到提纯的AU特征。与其他监督方法,TCAE可以利用大量的无标注人脸视频,这类视频是海量的。与半监督或者弱监督方法相比, TCAE采用了自监督信号进行模型训练,避免了对数据或者标签的分布做出任何假设。
无论是抑郁症分析,还是微表情识别,从国内、国外的研究进展看,视觉智能已经从最初的看脸走向了对人的更深层次的分析。更为准确的说,人脸识别在过去的5年时间里面,有了一个跨越式的进步,人脸识别之战基本上已经接近尾声,以后更多的考虑如何将应用落地,如何将技术应用到各站业务场景。