tjy/AgeAndGender/README.md

33 lines
1.9 KiB
Markdown
Raw Permalink 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.

# 基于视觉的年龄性别预测系统
该项目是一个基于图像的年龄和性别预测系统。它使用ResNet50模型在MegaAge-Asian数据集上进行训练,然后可以从摄像头输入的视频中检测人脸,并为每个检测到的人脸预测年龄、性别和年龄组。
## 文件结构
- `AgeGenderPredictor.py`: 包含年龄性别预测模型的加载、预处理和推理逻辑。
- `megaage_model_epoch99.pth`: 在MegaAge-Asian数据集上训练的模型权重文件。
## 使用方法
1. 确保已安装所需的Python库,包括`opencv-python`、`torch`、`torchvision`和`Pillow`。
2. 运行`AgeGenderPredictor.py`脚本。
3. 脚本将打开默认摄像头,开始人脸检测和年龄性别预测。
4. 检测到的人脸周围会用矩形框标注,并显示预测的性别、年龄和年龄组信息。
5. 按`q`键退出程序。
## 模型介绍
该项目使用ResNet50作为基础模型,对MegaAge-Asian数据集进行训练,以预测人脸图像的年龄和性别。最终模型输出包含3个值,分别对应男性概率、女性概率和估计年龄值。
### MegaAge-Asian数据集
MegaAge-Asian是一个大规模的人脸图像数据集,由商汤发布总数有40000张图像。数据集中的图像包含了不同年龄和性别的亚洲人脸年龄范围从1岁到70岁。
## 算法流程
1. **人脸检测**: 使用OpenCV内置的Haar级联人脸检测器在视频帧中检测人脸。
2. **预处理**: 对检测到的人脸图像进行缩放、裁剪和标准化等预处理,以满足模型的输入要求。
3. **推理**: 将预处理后的图像输入到预训练的ResNet50模型中,获得性别概率和年龄值的预测结果。
4. **后处理**: 根据性别概率确定性别标签,将年龄值映射到具体的年龄组。
5. **可视化**: 在视频帧上绘制人脸矩形框,并显示预测的性别、年龄和年龄组信息。