人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状
一、简述
微表情是一种特殊的面部表情,与普通的表情相比,微表情主要有以下特点:
- 持续时间短,通常只有1/25s~1/3s;
- 动作强度低,难以察觉;
- 在无意识状态下产生,通常难以掩饰或伪装;
- 对微表情的分析通常需要在视频中,而普通表情在图像中就可以分析。
由于微表情在无意识状态下自发产生,难以掩饰或伪装,通常与真实情感直接相关,所以微表情在情感分析中较为可靠,应用前景广阔;另一方面,由于人为识别微表情比较困难,训练难度大且成功率不高,因此需要计算机进行微表情自动识别。
目前微表情识别的工作难点主要有两方面:
- 微表情的持续时间短、动作强度低,特征难以提取,因此需要进行合适的数据预处理与特征提取;
- 由于微表情的数据采集与鉴定存在困难,现有的微表情数据集较少,这使得深度学习在微表情识别中的应用存在困难。
现有的的微表情识别方法通常基于传统机器学习,设计一种手工特征(Handcrafted Feature)来提取微表情片段中的特征,依照数据预处理——特征提取——特征分类的框架进行微表情分类。随着近年来深度学习在计算机视觉中的发展,使用深度学习方法进行微表情识别的尝试也逐渐增多。
下面我将从数据集、数据预处理、传统方法、深度方法四个角度来简单介绍微表情识别工作。
二、数据集
CASME II数据集包含247条微表情视频片段(在我实际使用的版本中包含255条),使用200FPS的高速摄像机进行拍摄,视频片段的面部分辨率可以达到约280*340像素。CASME II数据集将微表情分为5类进行标注,分别是快乐(Happiness)、恶心(Disgust)、惊讶(Surprise)、压抑(Repression)、其他(Others);除此之外,CASME II数据集中还标注了微表情活动的起点(Onset)、峰值点(Apex)与结束(Offset),其中Apex对于微表情识别有所帮助;除了对情感进行标注外,CASME II数据集还标注了每个微表情的AU(面部活动单元),AU可以作为对微表情进行分类的依据。
- 对于CASME II数据集的详细介绍可以参照下文:
CASME II: An Improved Spontaneous Micro-Expression Database and the Baseline Evaluationjournals.plos.org/plosone/article?id=10.1371/journal.pone.0086041编辑
除此之外,目前比较常用的微表情数据集还有SMIC与比较新的SAMM等。对于不同的微表情数据集,主要的区别在于帧率、分辨率与标注方式。
三、数据预处理
在提取微表情的特征前,通常要对微表情视频片段进行数据预处理,首先就是人脸预处理,包括裁剪人脸等;随后,还要进行其他数据预处理,以便于特征的提取。
- 常使用的数据预处理包括使用TIM算法进行时域图像插值、使用EVM算法进行动作放大。
1.人脸预处理
在裁剪人脸时,比较经典的方法是使用ASM或其他算法提取人脸特征点,以左眼的位置以及双眼间的距离作为基准,控制人脸裁剪的位置与范围;
由于微表情数据集中的数据采集自多名受试者,而不同受试者的面部特征分布有所不同,因此为了减少不同受试者之间面部的差异,可以基于面部特征点对所有片段进行面部配准(face register),效果如下图所示:

(a)标准面部 (b)面部配准前的图像 (c)面部配准后的图像
简单来说,face register首先选择一张脸作为标准人脸图像,提取其特征点;对于每个视频片段,提取视频片段中第一帧的面部特征点,并计算一个映射函数(此处使用LWM算法),将这帧图像的特征点映射到标准图像的特征点上;最后,将此映射作用在视频中的所有帧上。这种方法可以使所有视频片段中的人脸特征点位置相同,从而减少不同人脸的差异。
- 使用python的dlib库识别人脸特征点,进行face register,经过实验发现register可以提高模型在10-fold验证时的效果,但降低了模型在LOSO验证时的效果。由于dlib对于人脸特征点的识别并不是那么准,因此上述现象也可能是由dlib的误差导致。
2.时域图像插值(TIM算法)
由于微表情持续时间较短,我们希望有一种方法能在保持微表情特征的同时,延长微表情的持续时间,这样有利于特征的稳定提取,因此我们需要对视频片段进行时域上的插值,增加微表情片段所包含的图像数,相当于变相延长了微表情的持续时间。
由于在现实世界中,人的表情是连续变化的,但是在摄像机拍摄的视频中所包含的图像帧是不连续的。我们可以将现实世界中的连续表情变化视为图像空间上的一条连续曲线,曲线的每一个点都代表着人脸在一个瞬间时的表情,而摄像机拍摄的视频则可以视为在这条连续曲线上进行采样。只要能找到这条曲线,并在曲线上重新进行更加密集的采样,便能用更多的图像表示同一段表情。
时域插值模型(Temporal Interpolation Model,TIM)算法是一种时域上的图像插值算法。该方法首先将视频片段视为一个图(graph),并用图中的节点代表一帧图像,视频中相邻的帧在图中也是相邻的节点,视频中不相邻的帧在图中也不相邻;随后,使用图嵌入(graph embedding)算法将该图嵌入到一个低维的流形中,最后代入图像向量,计算出这条高维的连续曲线。在曲线上重新进行采样,便可以得到插值后的图像序列。
- TIM算法的细节可以参考下文:
相关文章:
人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状
一、简述 微表情是一种特殊的面部表情,与普通的表情相比,微表情主要有以下特点: 持续时间短,通常只有1/25s~1/3s;动作强度低,难以察觉;在无意识状态下产生,通常难以掩饰或伪装;对微表情的分析通常需要在视频中,而普通表情在图像中就可以分析。由于微表情在无意识状态…...
耿恭坚守城池的方法
疏勒城之战中,耿恭坚守城池的方法主要有以下几点: 选择有利地势:耿恭深知疏勒城依山傍水、地势险要,易守难攻,于是果断放弃金满城,移师至疏勒城据守,为长期坚守创造了良好的地理条件.运用心理战…...
小兔鲜项目总结——项目亮点
目录 1、基于业务的逻辑组件拆分思想2、长页面吸顶交互的实现3、自定义图片懒加载指令并封装为插件4、画板插槽组件等业务通用组件封装5、通用逻辑函数的封装6、列表无限加载7、路由缓存问题的处理 小兔鲜项目其实在暑假之前就已经做完了,但是一直没有空做总结&…...
Cesium的ClearCommand的流程
ClearCommand是在每帧渲染前可以将显存的一些状态置为初始值,就如同把擦黑板。当然也包括在绘制过程中擦掉部分的数据,就如同画家在开始绘制的时候会画导览线(如透视线),轮廓出来后这些导览线就会被擦除。 我画了一个…...
Fakelocation Server服务器/专业版 ubuntu
前言:需要Ubuntu系统 Fakelocation开源文件系统需求 Ubuntu | Fakelocation | 任务一 任务一 更新Ubuntu(安装下载不再赘述) sudo -i # 提权 sudo apt update # 更新软件包列表 sudo apt upgrade # 升级已安装的软…...
Spring AI Alibaba 快速入门
Spring AI Alibaba 实现了与阿里云通义模型的完整适配,接下来,我们将学习如何使用 spring ai alibaba 开发一个基于通义模型服务的智能聊天应用。 一、快速体验示例 注意:因为 Spring AI Alibaba 基于 Spring Boot 3.x 开发,因此…...
Docker Registry(镜像仓库)详解
Docker Registry(镜像仓库)详解 Docker Registry,即Docker镜像仓库,是Docker生态系统中一个至关重要的组件。它负责存储、管理和分发Docker镜像,为Docker容器提供镜像资源。本文将深入探讨Docker Registry的功能、结构…...
RTOS学习笔记---“二值信号量”和“互斥信号量”
在实时操作系统(RTOS)中,“二值信号量”和“互斥信号量”是两种常见的同步机制,用于线程之间的协调与资源管理。尽管它们有相似之处,都基于信号量概念,但它们的用途和行为存在重要区别。 1. 二值信号量&…...
Oracle-物化视图基本操作
-- 物化视图 -- 与普通视图的区别:真实存在数据的 普通视图的数据在基表 物化视图看成是, 一个定时运行的计算JOB一个存计算结果的表 创建时生成数据: 分为两种:build immediate 和 build deferred, build immediate是在创…...
(功能测试)测试报告
其中的统计分析和测试结果确认是必须要有的; 测试过程回顾:测试的时间和阶段,是否出现延期,与预期的任务计划是否匹配; !统计分析:统计写多少用例,用例覆盖情况如何(100%…...
【LeetCode每日一题】——746.使用最小花费爬楼梯
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 简单 三【题目编号】 746.使用最小花费爬楼梯 四【题目描述】 给你一…...
程序里sendStringParametersAsUnicode=true的配置导致sql server cpu使用率高问题处理
一 问题描述 近期生产环境几台sql server从库cpu使用率总是打满,发现抓的带变量值的慢sql,手动代入变量值执行并不慢,秒级返回,不知道问题出在哪里。 二 问题排查 用扩展事件或者sql profiler抓慢sql,抓到了变量值&…...
Vue3 el-table 默认选中 传入的数组
一、效果: 二、官网是VUE2 现更改为Vue3写法 <template><el-table:data"tableData"border striperow-key"id"ref"tableRef":cell-style"{ text-align: center }":header-cell-style"{background: #b7babd…...
最后一个单词的长度
题目详情: 解题思路: 用两个变量分别存储当前值和上次值,就可保证当前移动时记录字符个数,当遇到空格时,这次值保存到上次值,并清空。 代码解析: /* 最后一个单词的长度 */ #include <st…...
2024-11-19 kron积
若A[a11 a12; a21 a22]; B[b11 b12; b21 b22]; 则C[a11*b11 a12*b11 a21*b11 a22*b11; a11*b12 a12*b12 a21*b12 a22*b12; a11*b21 a12*b21 a21*b21 a22*b21; a11*b22 a12*b22 a21*b22 a22*b22] 用MATLAB实现 方法1: A [a11 a12; a21 a22]; B [b11 b12; b21 b22]…...
Redis ⽀持哪⼏种数据类型?适⽤场景,底层结构
目录 Redis 数据类型 一、String(字符串) 二、Hash(哈希) 三、List(列表) 四、Set(集合) 五、ZSet(sorted set:有序集合) 六、BitMap 七、HyperLogLog 八、GEO …...
树莓派2 安装raspberry os 并修改成固定ip
安装 安装raspberry os 没啥说的,到树莓派官网,下载制作启动映像盘的软件: https://www.raspberrypi.com/software/ 下载后,直接安装该软件,然后运行,选择好开发板的型号和操作系统型号,按照…...
11月第3周AI资讯
阅读时间:3-4min 更新时间:2024.9.9-2024.9.13 目录 DIAMOND:扩散模型在世界构建中的应用 阿里云推出Qwen2.5-Turbo:高效长文本处理,性价比卓越 微软:AI已实现几乎无限的记忆 Comfyui_Object_Migration一致性换衣模型 DeepSeek发布R1-Lite-Preview:推理AI竞争愈发…...
一次封装,解放双手:Requests如何实现0入侵请求与响应的智能加解密
引言 之前写了 Requests 自动重试的文章,突然想到,之前还用到过 Requests 自动加解密请求的逻辑,分享一下。之前在做逆向的时候,发现一般医院的小程序请求会这么玩,请求数据可能加密也可能不加密,但是返回…...
Notepad++--在开头快速添加行号
原文网址:Notepad--在开头快速添加行号_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Notepad怎样在开头快速添加行号。 需求 原文件 想要的效果 方法 1.添加点号 Alt鼠标左键,从首行选中首列下拉,选中需要添加序号的所有行的首列ÿ…...
手机也能跑AI?实测3B以下小模型在安卓/iOS端的部署教程(附性能对比)
手机端AI模型实战:3B以下小模型在安卓/iOS的部署与优化指南 当ChatGPT需要数据中心级算力支撑时,你可能没想到自己的手机也能运行类似技术。本文将带你探索移动端AI部署的完整方案——从Termux环境配置到CoreML模型转换,实测Redmi Note 12 Tu…...
让屏幕标注像在纸上写字一样自然:gInk 三分钟上手指南
让屏幕标注像在纸上写字一样自然:gInk 三分钟上手指南 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk 你是否曾经在线上会议中,想快速圈出PPT的重…...
PX4-Autopilot固定翼无人机编队飞行:深度实战与高效部署指南
PX4-Autopilot固定翼无人机编队飞行:深度实战与高效部署指南 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot PX4-Autopilot作为开源无人机飞控系统的领导者,为固定翼无人机编…...
5分钟搭建原神私服:KCN-GenshinServer终极指南
5分钟搭建原神私服:KCN-GenshinServer终极指南 【免费下载链接】KCN-GenshinServer 基于GC制作的原神一键GUI多功能服务端。 项目地址: https://gitcode.com/gh_mirrors/kc/KCN-GenshinServer 还在为复杂的命令行配置而头疼吗?想要轻松拥有自己的…...
Phi-4-mini-reasoning部署案例:科研团队构建内部逻辑验证辅助工具链
Phi-4-mini-reasoning部署案例:科研团队构建内部逻辑验证辅助工具链 1. 项目背景与模型介绍 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出等场景。与通用聊天模型不同,它…...
轻量工具如何承载复杂项目?揭秘GanttProject的极简主义哲学
轻量工具如何承载复杂项目?揭秘GanttProject的极简主义哲学 【免费下载链接】ganttproject Official GanttProject repository 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 在项目管理领域,存在一个普遍的矛盾:专业工具…...
百度网盘提取码智能方案:从繁琐搜索到效率革命的技术跃迁
百度网盘提取码智能方案:从繁琐搜索到效率革命的技术跃迁 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 问题诊断:资源获取的现代困境 时间成本的指数级浪费 传统提取码查找流程涉及多平台切换、关键…...
DLSS Swapper终极指南:三大智能矩阵,重新定义游戏性能优化
DLSS Swapper终极指南:三大智能矩阵,重新定义游戏性能优化 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾为游戏卡顿而烦恼?当最新的3A大作在4K分辨率下帧率骤降࿰…...
敲敲云零代码平台一键部署实战:命令安装 vs Docker 安装
敲敲云提供两种一键部署方式,一条命令即可完成私有化部署,全程约 3 分钟。本文记录实际操作过程 部署前准备 服务器配置建议: 4 核 8GB 内存,50GB SSD 系统盘。支持系统:TencentOS、Alibaba Cloud Linux、CentOS Stre…...
一个insert()调用背后的921行C++——OpenCV Delaunay三角剖分源码全解析
看这段代码: Subdiv2D subdiv(Rect(0, 0, 600, 600)); subdiv.insert(Point2f...
