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所示)。
- 效果:
- 减法操作之后,图像中只剩下相对于中性状态的变化部分。
- 这样,用户固有的、与表情无关的特征(比如深眼窝)被大大削弱了,而因做表情而产生的肌肉运动(比如笑起来眼周皱起)则被凸显出来。