情绪识别论文阅读——Eyemotion
Eyemotion: Classifying facial expressions in VR using eye-tracking cameras
问题: 当你戴着一个VR头盔(头戴显示器)时,你的大半张脸都被遮住了。你的朋友在虚拟世界里看到的只是一个冷冰冰的卡通头像(Avatar),根本看不到你真实的皱眉、微笑、惊讶等表情。这就像隔着墙和人聊天,失去了面对面交流的丰富性,社交体验大打折扣。
解决方案:既然看不到整张脸,那就只看眼睛来猜出整个表情。
- 借用现成的设备: 他们没用任何外接摄像头,而是巧妙地利用了现在很多高端VR头盔里自带的一个小摄像头。
- 收集“表情”数据: 他们请了23个人戴上VR头盔,并让他们做出各种表情(比如开心、惊讶、厌恶等)。同时,头盔里的红外摄像头就一直拍下他们眼睛的照片。这样,他们就得到了一套非常独特的数据库:成千上万张“眼睛照片”和对应的“表情标签”。
- 教AI学习: 他们使用了卷积神经网络(CNN) 模型。
- 个性化提升(关键创新点): 他们发现每个人的眼睛和表达习惯都不一样。为了让AI更准,他们加入了一个**“个性化”** 步骤。简单说,就是让新用户先对着头盔做几个标准表情,让AI快速学习一下这个用户的独有特点,之后AI对这个用户的判断准确率就能立刻提高大约4%。这就像给AI做了一个简单的“用户人脸校准”。
- 实时变脸(应用): 最后,他们把这个技术用了起来。当你在VR里聊天时,系统实时分析你的眼睛,猜出你的表情,然后立刻让你在虚拟世界里的Avatar做出对应的丰富表情。
**核心创新点:**别人做表情识别,要么需要看全脸,要么需要加装一堆奇怪的传感器。而该论文的方法,只用VR设备自带的、现成的一个小摄像头,就能实现不错的表情识别效果,而且还做了一个很巧妙的‘个性化’功能来让它更准。
数据
精细肌肉动作(Facial Action Units - AUs): 这是科学家定义的一套编码系统,用来精确描述面部肌肉的细微运动。比如:
- AU1+2LAU1+2LAU1+2L:左眉上扬
- AU4AU4AU4:眉毛下拉并皱起(像在烦恼或集中精力)
- AU44AU44AU44:眯眼(squint)
- AU46LAU46LAU46L:左眼 wink(单眼眨)
- AU6AU6AU6:脸颊上扬(笑起来苹果肌会动)
- …等等。
基本情绪表情(Emotive Expressions): 这就是我们普通人更容易理解的整体情绪,比如:
- 中性(Neutral)
- 愤怒(Anger)
- 惊讶(Surprise)
- 开心(Happiness)
如何收集数据?
表演-模仿”流水线:
- 提供样板: 先录好了专业演员做各种表情的视频。
- 用户模仿: 参与者来到实验室,看着屏幕上的演员视频,模仿着做出同样的表情。
- 自动打标: 因为用户是在“模仿”,所以系统就知道,在他模仿的这段时间里,摄像头拍到的所有眼睛图像,对应的就是当前这个表情标签。这样就实现了海量数据的自动、准确标注,完全不需要人工一张张去标。
- 增加多样性: 为了让数据更丰富,他们还会让用户在做表情时,眼睛跟着一个随机移动的靶点看(这样眼球位置就有变化),或者让他们摘下头盔再重新戴上(模拟日常生活中头盔佩戴位置会滑动的情况)。
清洗和增强
- 数据清洗(Data Cleanup):
- 问题: 用户在实验过程中会不由自主地眨眼,这些眨眼图片会干扰AI学习“故意做的表情”(比如wink)。
- 解决方案: 他们训练了一个小的AI分类器,专门用来识别和过滤掉所有“眼睛闭上”的图片,只留下眼睛睁开的有效数据。
- 数据增强(Data Augmentation):
- 问题: 数据量可能还是不够多,AI容易学“死记硬背”(过拟合)。
- 解决方案: 对现有的图片进行一些微小的、合乎情形的改动,来创造出“新”图片。比如:
- 把图片稍微旋转一点点(因为人头也会微微晃动)。
- 稍微调整一下亮度(模拟不同人的肤色和反光)。
- 他们做得非常谨慎。比如他们绝不会把图片左右翻转,因为“左眼wink”翻转后就变成“右眼wink”了,标签就错了。
个性化:
不同人的眼睛外观差异巨大(比如眼皮单双、眼窝深浅、眼睛大小),这些差异与表情无关,但却会干扰AI的判断。
- 核心思想: 减去用户的“中性脸”。
- 具体步骤:
- 让一个新用户戴上头盔,保持一个中性(毫无表情)的脸部状态几秒钟,系统会拍下这几秒钟的眼睛图像。
- 将这些中性图像取平均值,得到一张属于这个用户的 “平均中性眼睛图像”(Mean Neutral Image)。这张图代表了他/她独一无二的、无表情时的基准状态。
- 之后,无论这个用户做什么表情,AI在分析时,都会先用当前的表情图像减去这张“平均中性图像”(如公式1所示)。
- 效果:
- 减法操作之后,图像中只剩下相对于中性状态的变化部分。
- 这样,用户固有的、与表情无关的特征(比如深眼窝)被大大削弱了,而因做表情而产生的肌肉运动(比如笑起来眼周皱起)则被凸显出来。