利用自动表情编码挖掘自发面部行为
立即解锁
发布时间: 2025-08-22 01:17:08 阅读量: 1 订阅数: 3 


人类与机器交互的多模态分析
### 利用自动表情编码挖掘自发面部行为
在人类的面部表情研究中,不同类型的面部表情源于大脑的不同区域。意志性面部运动源自大脑皮层运动带,而自发面部表情则起源于大脑皮层下区域。这两种不同的神经通路不仅在面部肌肉的支配模式上存在差异,所产生的面部表情在动态变化上也各不相同。
#### 1. 面部表情的神经起源与差异
- **神经通路差异**:皮层系统倾向于对下脸部的某些肌肉提供更强的神经支配,而皮层下系统则主要对上脸部的某些肌肉进行更强的神经支配。
- **表情动态差异**:皮层下引发的自发面部表情具有同步、平滑、对称、一致和反射性的特点;而皮层引发的摆拍表情则受实时意志控制,不够平滑,动态变化更大。
鉴于面部表情存在这两种不同的神经通路,我们有理由预期在诸如疼痛或困倦等状态的真实表达和摆拍表达之间会存在差异。这对于开发用于检测真实疼痛或驾驶员困倦等状态的计算机视觉模型具有重要意义,模型应基于受试者实际经历这些状态时的表情样本进行机器学习训练。
#### 2. 计算机表情识别工具箱(CERT)
CERT是一个用户独立的全自动系统,用于实时识别面部动作编码系统(FACS)中的面部动作。该系统能够自动检测视频流中的正面人脸,并对每一帧的20个动作单元进行编码。
##### 2.1 实时人脸和特征检测
- **人脸检测系统**:采用了基于生成框架的增强技术,对Viola和Jones的工作进行了扩展。改进包括使用Gentleboost而非AdaBoost、智能特征搜索和新颖的级联训练程序。该人脸检测器的源代码可在http://kolmogorov.sourceforge.net 免费获取。在CMU - MIT数据集上,其检测准确率达到90%,误报率为百万分之一,在有控制的光照和背景条件下,检测准确率更高。
- **图像预处理**:系统目前在3GHz奔腾IV处理器上以每秒24帧的速度处理320x240的图像。自动定位的人脸被重新缩放为96x96像素,通过自动眼睛检测对齐眼睛位置后,图像经过一组具有8个方向和9个空间频率的Gabor滤波器,输出幅度传递给动作单元分类器。
##### 2.2 自动面部动作分类
这是一个两阶段系统:
- **第一阶段**:开发用于检测动作单元的自动化系统CERT。训练数据来自三个摆拍数据集和一个自发表情数据集,每个数据集的面部表情都由认证的FACS编码员进行编码。
- **Cohn - Kanade DFAT - 504数据集**:包含100名大学生按照实验者指示进行的23种面部展示,包括七种基本情绪的表达。
- **Ekman和Hager收集的数据集**:24名受试者在FACS专家指导下进行面部动作展示,并通过镜子练习,视频由两名认证的FACS编码员验证AU内容。
- **MMI数据库的子集**:来自20名受试者的50个视频。
- **FACS - 101数据集**:33名受试者接受关于政治观点的访谈,两分钟的视频被FACS编码。
- **第二阶段**:将CERT应用于特定状态的自发示例,并对CERT的输出进行机器学习。为20种面部动作分别训练了20个线性支持向量机,采用一对一的方式检测每个动作的存在。
下表展示了部分AU在摆拍和自发面部动作中的检测性能(A’值):
| AU | 名称 | 摆拍 | 自发 |
| --- | --- | --- | --- |
| 1 | 内眉扬起 | 0.90 | 0.88 |
| 2 | 外眉扬起 | 0.94 | 0.81 |
| 4 | 眉毛下压 | 0.98 | 0.73 |
| 5 | 上眼睑抬起 | 0.98 | 0.80 |
| 6 | 脸颊抬起 | 0.85 | 0.89 |
| 7 | 眼睑收紧 | 0.96 | 0.77 |
| 9 | 鼻子皱起 | 0.99 | 0.88 |
| 10 | 上唇抬起 | 0.98 | 0.78 |
| 12 | 唇角上拉 | 0.97 | 0.92 |
| 14 | 酒窝肌 | 0.90 | 0.77 |
| 15 | 唇角下拉 | 0.80 | 0.83 |
| 17 | 下巴抬起 | 0.92 | 0.80 |
| 18 | 嘴唇撅起 | 0.87 | 0.70 |
| 20 | 嘴唇拉伸 | 0.98 | 0.60 |
| 23 | 嘴唇收紧 | 0.89 | 0.63 |
| 24 | 嘴唇挤压 | 0.84 | 0.80 |
| 25 | 嘴唇分开 | 0.98 | 0.71 |
| 26 | 下颌下垂 | 0.98 | 0.71 |
| 1,1 + 4 | 痛苦眉 | 0.94 | 0.70 |
| 1 + 2 + 4 | 恐惧眉 | 0.95 | 0.63 |
| 平均 | | 0.93 | 0.77 |
系统的输出是一个实数值,表示每个分类器到分离超平面的距离,该距离包含了动作单元强度的信息。在评估性能时,采用ROC曲线下面积(A’),因为它不受目标与非目标比例以及决策阈值的影响,能更准确地反映系统的判别能力。
CERT系统逐帧输出N个通道的面部动作信息,可用于挖掘人类行为。通过将CERT应用于受试者自发表达特定状态的面部视频,我们可以了解与该状态相关的面部行为,并通过机器学习直接训练针对特定状态的检测器。
#### 3. 真实与伪装疼痛表情的分类
在医学领域,区分真实疼痛和伪装疼痛是一个重要问题。一些研究表明,慢性疼痛患者中伪装疼痛的比例高达10%,在诉讼情境中比例更高。目前,医生缺乏可靠的方法来区分真假疼痛,普通人和临床医生仅通过观察面部表情判断疼痛的准确性都很低。然而,使用面部动作编码系统(FACS)的多项研究表明,面部存在区分真实和摆拍疼痛的信息。
##### 3.1 人类受试者实验方法
- **数据收集**:对26名大学生(6名男性和20名女性)在真实疼痛、伪装疼痛和基线三种条件下进行视频数据收集。真实疼痛通过将手臂浸入50摄氏度的冷水中诱导,基线和伪装疼痛条件下水温为200摄氏度。受试者按基线、伪装疼痛、真实疼痛的顺序将前臂浸入水中60秒,在伪装疼痛条件下,要求他们操纵面部表情以让“专家相信他们处于实际疼痛中”,并使用数码摄像机记录面部表情。
- **观察者判断**:视频收集完成后,让170名未经面部表情测量训练的本科生观看视频并猜测是真实还是伪装疼痛,他们的平均准确率为49.1%(标准差13.7%),表明普通人仅通过观察面部表情难以区分真假疼痛。
##### 3.2 人类专家FACS编码
为评估自动化系统的有效性,邀请一名认证的FACS专家对部分视频进行编码。对每个受试者的伪装疼痛和真实疼痛条件下的最后500帧视频进行编码,这一过程耗时60个人工小时,历时三个多月。通过对每个动作单元的帧总和及加权总和进行配对t检验,发现只有动作单元4(眉毛下压)在两种条件下有显著差异(p <.01),这与自动化系统的分析结果一致。
##### 3.3 自动化编码
- **特征差异分析**
- **真实疼痛与基线对比**:计算每个受试者和每个AU检测器的Z分数,发现真实疼痛时Z分数较高的动作包括嘴巴张开和下颌下垂(25和26)、颧肌拉动唇角(12)、鼻子皱起(9),以及程度较轻的嘴唇抬起(10)和脸颊抬起(6),这些动作与冷压疼痛相关。
- **伪装疼痛与基线对比**:在伪装疼痛时,面部活动相对更多,Z分数较高的动作有眉毛下压(4)、痛苦眉(1或1 + 4)、内眉扬起(1)、嘴巴张开和下颌下垂(25和26)、脸颊抬起(6)、嘴唇抬起(10)、恐惧眉(1 + 2 + 4)、鼻子皱起(9)、嘴巴拉伸(20)和下眼睑抬起(7)。
- **真实疼痛与伪装疼痛对比**:主要差异体现在动作单元4(眉毛下压)、痛苦眉(1或1 + 4)和内眉扬起(1)的输出上。个体差异分析显示,26名受试者中,9人在伪装疼痛时眉毛下压活动更明显,而真实疼痛时无一人有此情况;7人在伪装疼痛时脸颊抬起更明显,6人内眉扬起和恐惧眉组合更明显。配对t检验表明,在20个测试动作中,动作单元4在p <.001时有显著差异,动作单元7和痛苦眉在p <.05时有边缘显著差异。通过主成分分析发现,区分真假疼痛的最大方差归因于两个组合,动作单元4的方差排第三。
- **自动区分真假疼痛**
- **机器学习方法**:为了以独立于受试者的方式区分真实和伪装疼痛表情,应用机器学习方法。基于20通道输出流训练第二层分类器,比较了SVM、Adaboost和线性判别分析,发现具有径向基函数核的非线性SVM性能最佳。
- **可靠性过滤**:在学习之前,系统根据眼睛位置的平滑度进行自动可靠性估计,将眼睛位置突然移动2个或更多像素的帧标记为不可靠并排除在训练和测试之外。可靠性过滤对性能影响较小,重新分析后Z分数提高了约0.1。通过留一法交叉验证评估系统对新受试者的泛化性能。
综上所述,通过自动化系统对真实和伪装疼痛表情进行分析,能够发现两者之间的差异,并可以利用机器学习方法实现对真假疼痛表情的有效区分。这为医学领域提供了一种潜在的辅助诊断工具,有助于更准确地判断患者的疼痛状态。
### 利用自动表情编码挖掘自发面部行为
#### 4. 驾驶员疲劳检测中的应用
在交通安全领域,驾驶员疲劳检测至关重要。疲劳驾驶会显著增加交通事故的风险,因此准确检测驾驶员的疲劳状态对于保障道路安全具有重要意义。我们可以利用上述的CERT系统和相关的面部动作分析方法来实现对驾驶员疲劳状态的检测。
##### 4.1 数据收集与预处理
为了训练用于驾驶员疲劳检测的模型,需要收集大量驾驶员在不同疲劳状态下的面部视频数据。可以在实际驾驶环境或模拟驾驶环境中进行数据采集,确保数据具有代表性。
收集到的数据需要进行预处理,包括人脸检测、特征提取等步骤。使用CERT系统中的实时人脸和特征检测模块,自动检测视频中的人脸,并将其调整为合适的大小和姿态。然后通过Gabor滤波器提取面部特征,为后续的动作单元分类提供输入。
##### 4.2 动作单元训练
除了之前训练的20个动作单元外,还针对驾驶员疲劳研究额外训练了13个动作单元,如下表所示:
| AU | 名称 |
| --- | --- |
| 8 | 嘴唇相向 |
| 11 | 鼻唇沟加深器 |
| 13 | 尖锐唇拉器 |
| 16 | 下唇下拉 |
| 19 | 舌头伸出 |
| 22 | 嘴唇漏斗状 |
| 27 | 嘴巴拉伸 |
| 28 | 嘴唇吸吮 |
| 30 | 下颌侧向移动 |
| 32 | 咬合 |
| 38 | 鼻孔扩张 |
| 39 | 鼻孔收缩 |
| 45 | 眨眼 |
为这些动作单元分别训练线性支持向量机分类器,以检测它们在驾驶员面部表情中的出现情况。
##### 4.3 疲劳状态分类
将CERT系统应用于驾驶员面部视频,得到每个动作单元的输出。通过分析这些输出,可以识别与疲劳状态相关的面部动作模式。
例如,在疲劳状态下,驾驶员可能会出现频繁眨眼(AU 45)、嘴巴张开(AU 25、26)等动作。可以使用机器学习算法,如支持向量机、Adaboost等,对这些动作单元的输出进行分析,训练一个疲劳状态分类器。
为了评估分类器的性能,可以使用交叉验证的方法,将数据集分为训练集和测试集,在测试集上验证分类器的准确率、召回率等指标。
#### 5. 总结与展望
通过对自发面部行为的挖掘和自动表情编码技术的应用,我们在区分真实与伪装疼痛表情以及驾驶员疲劳检测等方面取得了一定的成果。
在疼痛表情分类中,自动化系统能够发现真实和伪装疼痛表情之间的差异,特别是动作单元4(眉毛下压)等在区分两者时具有重要作用。通过机器学习方法,可以实现对真假疼痛表情的有效区分,为医学诊断提供了新的手段。
在驾驶员疲劳检测中,利用CERT系统和额外训练的动作单元,可以识别与疲劳状态相关的面部动作模式,为交通安全提供了潜在的保障。
然而,目前的研究还存在一些局限性。例如,在不同的光照条件、面部姿态和个体差异等因素的影响下,系统的性能可能会受到一定的影响。未来的研究可以进一步优化系统,提高其在复杂环境下的鲁棒性。
同时,可以探索更多的应用场景,如情绪识别、心理健康评估等。通过不断拓展自动表情编码技术的应用范围,我们可以更好地理解人类的情感和行为,为各个领域提供更有价值的信息。
以下是一个简单的流程图,展示了从面部视频数据收集到疲劳状态分类的整体流程:
```mermaid
graph LR
A[面部视频数据收集] --> B[人脸检测与特征提取]
B --> C[动作单元分类]
C --> D[疲劳状态分类]
D --> E[性能评估]
```
总之,自动表情编码技术为我们挖掘自发面部行为提供了强大的工具,未来有望在更多领域发挥重要作用。
0
0
复制全文
相关推荐








