情绪识别数据集(包含25w张图片) yolo格式
类别:Anger、Contempt、Disgust、Fear、Happy、Neutral、Sad、Surprise 八种 训练数据已划分,配置文件稍做路径改动即可训练。 训练集:171010 验证集:54060 测试集:27550 共计25w张人脸图片(免责申明:采集于互联网),压缩后文件总大小:7GB 另外:提供yolov8训练结果(内含模型 识别精度:90%)
情绪识别数据集 (Emotion Recognition Dataset)
描述: 本数据集旨在支持对人脸情绪的自动识别,特别适用于情感分析、人机交互、心理健康监测等领域。通过使用该数据集训练的模型可以帮助理解和分析人们的情绪状态,从而在多种应用场景中提供有价值的洞见。
类别:
Anger
(愤怒)Contempt
(轻蔑)Disgust
(厌恶)Fear
(恐惧)Happy
(快乐)Neutral
(中性)Sad
(悲伤)Surprise
(惊讶)
数据量:
- 总图片数: 250,000张
- 训练集: 171,010张
- 验证集: 54,060张
- 测试集: 27,550张
文件格式:
- 图像采用常见的格式(如JPEG, PNG等)。
- 标注文件采用YOLO格式,即每个图像对应一个文本文件,其中包含边界框坐标及类别标签。例如,对于
Happy
类别的标注,文本文件中的每一行将按照以下格式表示:<class_id> <x_center> <y_center> <width> <height>
,其中<class_id>
为0到7(代表不同的情绪类别),其余参数均为归一化后的浮点数值。
数据集结构
确保您的数据集目录结构如下所示(这只是一个示例结构,您可以根据实际情况调整):
emotion_recognition_dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ │ └── ...
│ ├── val/
│ │ ├── img171011.jpg
│ │ ├── img171012.jpg
│ │ └── ...
│ ├── test/
│ │ ├── img225071.jpg
│ │ ├── img225072.jpg
│ │ └── ...
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ ├── img2.txt
│ │ └── ...
│ ├── val/
│ │ ├── img171011.txt
│ │ ├── img171012.txt
│ │ └── ...
│ ├── test/
│ │ ├── img225071.txt
│ │ ├── img225072.txt
│ │ └── ...
└── data.yaml
data.yaml
配置文件
创建一个名为 data.yaml
的配置文件,内容如下:
train: ./emotion_recognition_dataset/images/train
val: ./emotion_recognition_dataset/images/val
test: ./emotion_recognition_dataset/images/test # 如果需要测试集路径
nc: 8 # 类别数量
names: ['Anger', 'Contempt', 'Disgust', 'Fear', 'Happy', 'Neutral', 'Sad', 'Surprise'] # 类别名称
使用方法
1. 准备环境
确保安装了必要的Python库,如ultralytics
(用于YOLOv8)和其他相关依赖:
pip install ultralytics
2. 修改配置文件
根据实际路径修改 data.yaml
文件中的路径。
3. 训练脚本
以下是一个使用YOLOv8进行训练的Python脚本示例:
from ultralytics import YOLO
# 设置设备
device = 'cuda' if torch.cuda.is_available() else 'cpu'
# 加载预训练模型或从头开始训练
model = YOLO('yolov8n.pt') # 使用预训练的YOLOv8n模型
# model = YOLO() # 从头开始训练
# 开始训练
results = model.train(
data='path/to/data.yaml', # 指定数据集配置文件路径
epochs=100, # 训练轮次
batch=16, # 批处理大小
imgsz=640, # 输入图像尺寸
workers=8, # 数据加载线程数
device=device, # 使用GPU设备编号,默认为0
project='emotion_recognition', # 保存结果的项目名称
name='exp', # 实验名称
exist_ok=True # 如果存在相同实验名,覆盖旧的结果
)
# 可视化训练结果
results.plot()
# 保存模型
model.save('emotion_recognition_model.pt')
训练结果
模型: YOLOv8
性能指标:
- 准确率 (Accuracy): [根据实际结果填写]
- 精确度 (Precision): [根据实际结果填写]
- 召回率 (Recall): [根据实际结果填写]
- F1分数 (F1 Score): [根据实际结果填写]
- 平均精度均值 (mAP@0.5:0.95): 90%
模型文件:
- 提供了YOLOv8的预训练模型文件,可以直接用于推理或进一步微调。
总结
这个情绪识别数据集提供了丰富的标注图像,适合用于训练和评估基于深度学习的情绪识别模型。通过使用YOLOv8框架,可以有效地识别和分类人脸的情绪状态。提供的预训练模型已经达到了90%的识别精度,可以在实际应用中提供可靠的检测结果。
可视化与评估
YOLOv8提供了丰富的工具来进行训练过程的可视化和评估。训练完成后,可以在输出目录中找到训练日志、图表以及最佳模型权重文件。这些资源有助于分析模型的性能,并进行进一步的优化。