共计 1905 个字符,预计需要花费 5 分钟才能阅读完成。
背景介绍
微表情识别是计算机视觉中一个极具挑战性的研究方向,它通过分析人类面部短暂且细微的表情变化(通常持续仅 1 /25 到 1 / 5 秒)来推断真实情绪。这类技术在心理学研究、安全审讯、临床诊断等领域有重要应用。

CASME(Chinese Academy of Sciences Micro-expression)是由中国科学院心理研究所构建的微表情数据集,包含 35 名受试者在受控实验室环境下记录的 195 个微表情样本。其特点包括:
- 使用 60fps 高速摄像机采集,确保捕捉到快速的表情变化
- 提供 AUs(动作单元)标注和情绪类别标签(如高兴、厌恶等)
- 包含原始视频序列和经过裁剪的面部 ROI 区域
数据预处理
CASME 数据集采用分层文件夹结构存储,预处理时需要特别注意以下环节:
-
文件结构解析:
CASME2/rawvideo/ ├── sub01/ │ ├── EP02_01.avi │ └── EP02_01_au.txt └── sub02/ ├── EP05_03.avi └── EP05_03_emotion.txt -
关键数据加载代码(使用 OpenCV 和 Pandas):
import cv2 import pandas as pd def load_casme_sample(video_path, label_path): # 读取视频帧 cap = cv2.VideoCapture(video_path) frames = [] while cap.isOpened(): ret, frame = cap.read() if not ret: break frames.append(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) # 读取标签信息 labels = pd.read_csv(label_path, sep='\t') return np.array(frames), labels -
标准化处理:
- 帧序列归一化到 [0,1] 范围
- 使用 MTCNN 进行人脸对齐和裁剪
- 采用滑动窗口生成固定长度的时序片段
模型实现
基于 PyTorch 的简单 CNN-LSTM 混合架构:
import torch
import torch.nn as nn
class MicroExpressionCNN(nn.Module):
def __init__(self, num_classes):
super().__init__()
self.features = nn.Sequential(nn.Conv2d(3, 32, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2),
nn.Conv2d(32, 64, kernel_size=3, padding=1),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.lstm = nn.LSTM(64*28*28, 128, batch_first=True)
self.classifier = nn.Linear(128, num_classes)
def forward(self, x): # x: (B,T,C,H,W)
batch_size, timesteps = x.shape[0], x.shape[1]
x = x.view(-1, *x.shape[2:]) # 合并批次和时间维度
x = self.features(x)
x = x.view(batch_size, timesteps, -1)
_, (h_n, _) = self.lstm(x)
return self.classifier(h_n.squeeze(0))
避坑指南
- 帧率不一致问题:
-
部分视频实际帧率与标注不符,建议使用
cv2.CAP_PROP_FPS进行验证 -
标签文件格式:
- 不同版本的数据集标签分隔符可能不同(制表符 / 逗号)
-
AU 编码需要转换为 one-hot 向量
-
内存管理:
- 原始视频加载可能占用大量内存,建议使用生成器逐步读取
- 考虑先提取光流特征减少存储压力
扩展思考
- 时序建模改进:
- 使用 3D CNN 替代 2D CNN+LSTM
-
引入注意力机制捕捉关键帧
-
数据增强策略:
- 基于 FACS 系统的合成微表情生成
-
时序插值增强
-
多模态融合:
- 结合面部 landmark 点运动轨迹
- 融合生理信号(如 ECG、GSR)
学习资源推荐
- 官方数据集说明文档:CASME2_Codebook.pdf
- 经典论文推荐:《Micro-expression Recognition with Expression-State Constrained Spatio-Temporal Feature Representations》
- 进阶工具包:Py-FEAT(面部表情分析工具箱)
通过本指南的基础实践后,建议尝试在 SAMM 或 MMEW 等更大规模数据集上验证模型效果,并关注 ICMI、ACII 等顶会的相关前沿研究。
正文完
