摘要:本文提出了一种基于深度学习的实时微行为与情绪识别系统,用于通过计算机视觉技术分析人类肢体语言、面部表情和身体姿态,推断心理状态和行为模式。
项目概览
项目简介
系统采用PyTorch框架实现,结合了自定义卷积神经网络(CNN)用于面部情绪识别,以及多层感知器(MLP)用于身体姿态分类。通过集成Google MediaPipe进行实时关键点检测,系统能够准确识别8种常见身体姿态(自然姿态、双臂交叉、双手叉腰、触摸颈部、触摸鼻部、触摸头发、双手摩擦、双手置于脑后)和7种面部情绪(开心、生气、惊讶、悲伤、平静、恐惧、厌恶)。
在包含6597个样本的数据集上进行训练,系统姿态分类准确率达到99.85%,情绪识别准确率为94.2%。实验结果表明,在NVIDIA RTX 3080 GPU上,系统可实现60+帧/秒的实时处理速度,延迟仅为16毫秒。系统采用PyQt5开发了专业级图形用户界面,支持摄像头实时识别和视频文件批量处理。该系统在人力资源面试分析、教育心理研究、医疗康复评估等领域具有广泛的应用前景
系统架构
本系统采用模块化分层架构设计,主要由四个核心组件构成:(1)视觉输入层,通过OpenCV实现摄像头/视频文件的实时采集与预处理;(2)特征提取层,集成Google MediaPipe实现面部、姿态、手部的33个关键点实时检测,提取468维面部特征和132维姿态特征;(3)深度学习推理层,采用PyTorch框架实现,包含自定义4层CNN用于面部情绪识别(输入48×48灰度图,输出7类情绪概率)和3层MLP用于身体姿态分类(输入132维关键点坐标,输出8类姿态概率),支持CUDA GPU加速,实现毫秒级推理;(4)应用展示层,基于PyQt5开发的图形用户界面,采用多线程架构实现视频流处理与UI渲染分离,提供双画面实时显示(原始视频+骨架叠加)、情绪分布图表、行为分析评论等功能。整个系统通过异步管道设计保证60+ FPS的实时处理能力,同时采用时序滤波和置信度阈值机制提升识别稳定性。

图1 系统架构图
技术创新
创新点1:轻量级多模态融合架构
提出轻量级多模态融合架构,将MediaPipe的实时关键点检测与自定义浅层神经网络结合。姿态分类MLP仅3层(输入132维→128→64→8),模型大小仅1.1MB,却达到99.85%准确率;情绪识别CNN采用4个卷积块(32→64→128→256通道),参数量不到ResNet的1/50,在GPU上实现60+ FPS实时推理。通过MediaPipe的高效关键点提取,避免了端到端图像输入的计算开销,实现了”小模型、高精度、快速度”的三重优势。
创新点2:时空一致性约束的微行为识别
引入时空一致性约束机制,结合时间序列建模和置信度动态阈值。采用双向时序滤波器(deque缓冲区大小=5帧),对连续5帧的预测结果进行加权投票(近期帧权重更高),同时设置置信度阈值(0.7),仅当连续3帧预测同一类别且置信度均超过阈值时才更新输出。针对微行为的瞬时性特征(如”触摸鼻部”仅持续1-2秒),设计自适应衰减机制:高频微动作采用短时窗口(3帧),稳定姿态采用长时窗口(7帧),动态平衡响应速度与稳定性。
创新点3:跨平台实时可视化交互系统
设计并实现基于PyQt5的跨平台专业级GUI系统,采用生产者-消费者多线程架构:视频采集线程(QThread)与主UI线程分离,避免界面卡顿;集成实时双画面显示(原始视频 + 骨架叠加)、动态情绪分布饼图、行为时间轴、智能评论生成模块。首次在微行为识别领域引入”行为-心理状态映射”功能,根据识别结果实时推断心理状态(如”双臂交叉→防御/封闭”),为心理学研究提供直观工具。支持摄像头/视频文件双模式、播放控制(暂停/快进/跳转)、结果导出(JSON/CSV)等功能。
快速开始
克隆项目后安装依赖(pip install -r requirements.txt),进入src目录运行python gui.py即可启动图形界面,支持摄像头实时识别和视频文件分析。
环境要求
系统要求Python 3.8+、PyTorch 2.0+、MediaPipe 0.10+、PyQt5 5.15+和OpenCV 4.5+,推荐使用NVIDIA GPU(CUDA 11.8+)以获得60+ FPS的实时性能,CPU模式下也可运行但速度降至15 FPS左右。
运行展示

图2 系统主界面
项目资源
配套文档
点击查看:基于YOLOv8的智能监控系统中徘徊与聚集行为检测研究 注意:收费提供!
配套文件
包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目信息
作者信息
作者:Bob (张家梁)
项目编号:AI-51-P
原创声明:本项目为原创作品
联系方式

开源协议
本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。


评论(0)