🫥用于分析面部表情的快速机器学习指南

type
status
date
slug
summary
tags
category
icon
password
本文来自:A quick machine learning guide to analyze facial expressions | Guillermo Hidalgo Gadea,安装教程随着 DeepLabCut 官方的更新,有些已经不可用,仅供参考。
本文章使用无监督机器学习进行面部表情分析。
在过去的一年里,我们都在使用 zoom、webex 和 skype 来跟上工作、会议或课程的步伐。我们大多数人可能比我们更频繁,持续时间更长。我们这些在虚拟会议中使用摄像头的人会注意到一件事:我们自己的脸部视频,不停地回头看我们。老实说,通常看起来很奇怪。我们总是这样吗?让我们来了解一下。通过这个简短的指南,您可以通过一些面部表情分析来升级您的下一次缩放会议,以检查您在与计算机交谈时最常见的面孔。
从技术上讲,您只需要使用智能手机、运动摄像头或网络摄像头录制简单的面部视频。不过,为了让事情变得更有趣,我使用了同步的双摄像头设置进行多视图录制和 3D 重建。但是,您可以保持分析的 2D 状态,只需沿途更改几个参数即可。
Video preview

使用 DeepLabCut 进行无标记跟踪

现在您在虚拟会议期间录制了自己,您将需要在许多帧的图像坐标中跟踪眉毛、嘴唇、嘴角等的运动。这就是您想要查看 DeepLabCut 的地方。Deeplabcut 是一个开源软件包,用于基于深度神经网络迁移学习的无标记姿态估计(Mathis 等人,2020 年)。安装起来有些棘手,但他们在去年通过在线研讨会和教程编译了非常广泛的资源。您绝对不会后悔花时间学习使用DeepLabCut(查看这个简单的3步安装指南)。
安装后,您要开始一个新项目,加载视频并手动标记几帧。您可能希望从其他流行的人脸检测方法(如 OpenFace)中检查有用的人脸标志。
notion image
手动标记一些视频帧后,您可以开始训练自己的模型。或者,您可以使用我的预训练模型,看看它是否也会跟踪您(请参阅此处)。现在,您自己的深度神经网络模型已经学会了检测您的自定义标签,您可以分析整个视频(以及您将录制的每个未来面部视频),以便快速而稳健地进行无标记姿势估计。
注意:您可能希望使用来自朋友和同事的多个视频,甚至一些不同的视频,以使您的模型更加健壮。您可能希望最终模型能够学习一种更抽象的“左眼”形式,而不仅仅是从非常具体的角度检测自己的左眼。

使用 Anipose 进行三角测量和 3D 重建

尽管 DeepLabCut 最近实现了自己的 3D 姿态估计,但我建议使用 Anipose 进行稳健的三角测量和 3D 重建。Anipose是一个开源工具包,专门开发用于组合来自不同角度的多个DeepLabCut视频,并在相机三角测量后生成流畅的3D跟踪。如果您设法安装了 DeepLabCut,那么安装 Anipose 应该很容易。请查看其网站上的安装指南和操作方法。
Video preview
希望最终产品看起来像这样。除了酷炫的视频输出外,您还将拥有一个包含时间序列数据的长 csv 文件。每条线将由给定帧上每个标记的 x、y 和 z 坐标组成。这是要在 R 中为最后一个分析步骤打开的数据。

用于时间序列数据分类的隐马尔可夫模型

马尔可夫链是一种非常简单的无监督机器学习随机模型。直觉是对许多未知状态的分类,这些状态可以从一种状态过渡到另一种状态(例如,微笑后通常是一张中性的脸),也可以自我过渡到一种延长的状态(例如,悲伤的脸通常在微笑之前保持)。隐马尔可夫模型进一步假设状态本身是不可观察/隐藏的(例如,幸福),但可以用其他可观察变量(例如,笑脸)来描述。
在 Phython 中加载数据并运行一些快速预处理后,您需要使用以下代码使用时间序列数据训练马尔可夫模型:
检查我的 Python 脚本以继续操作。然后,您可以使用新训练的 HMM 对自己的时间序列数据进行分类,以从视频中提取最显眼的面部表情。从这里开始,天空就是极限。您可能想查看计算神经行为学中的一些出色工作以获得一些灵感( Luxem 等人,2020 年;Marshall 等人,2021 年)。但对于初学者来说,绘制每个类的平均面部表情可能很有用:
notion image
您甚至可能想分析原始坐标以计算头部运动和速度等运动学。您可以尝试找到面部表情之间的相似之处和不同之处,以及在典型的面部表情序列中找到顺序。
notion image
最后但并非最不重要的一点是,我建议您计算每种面部表情的绝对频率和相对频率,以了解您在 Zoom 会议中做特定怪异表情的频率。
训练您的第一个 DeepLabCut 模型 – 分步示例Brain rhythms have come of age
  • Twikoo