tjy/Emotion/FacialEmotion/README.md

35 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 基于视觉的表情识别系统
该项目是一个基于图像的表情识别系统。它使用MobileViT在人脸表情数据集上进行训练,然后可以从摄像头输入的视频中检测人脸,并为每个检测到的人脸预测表情类型共支持8类表情。
## 核心文件
- `class_indices.json`: 包含表情类型标签和对应数值编码的映射。
- `predict_api.py`: 包含图像预测模型的加载、预处理和推理逻辑。
- `video.py`: 视频处理和可视化的主要脚本。
- `best.pth`: 训练的模型权重文件。
## 使用方法
1. 确保已安装所需的Python库,包括`opencv-python`、`torch`、`torchvision`、`Pillow`和`dlib`。
2. 运行`video.py`脚本。
3. 脚本将打开默认摄像头,开始人脸检测和表情预测。
4. 检测到的人脸周围会用矩形框标注,并显示预测的表情类型和置信度分数。
5. 按`q`键退出程序。
## 模型介绍
该项目使用MobileViT作为基础模型,对人脸表情图像数据集进行训练,以预测人脸图像的表情类型。模型输出包含8个值,分别对应各表情类型的概率。
### 数据集介绍
该项目使用的表情图像数据集来自网络开源数据数据集包含35887张标注了皮肤病类型的人体皮肤图像。
## 算法流程
1. **人脸检测**: 使用Dlib库中的预训练人脸检测器在视频帧中检测人脸。
2. **预处理**: 对检测到的人脸图像进行缩放、裁剪和标准化等预处理,以满足模型的输入要求。
3. **推理**: 将预处理后的图像输入到预训练的Mobile-ViT模型中,获得不同表情类型的概率预测结果。
4. **后处理**: 选取概率最高的类别作为最终预测结果。
5. **可视化**: 在视频帧上绘制人脸矩形框,并显示预测的表情类型和置信度分数。