# 基于视觉的年龄性别预测系统 该项目是一个基于图像的年龄和性别预测系统。它使用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. **可视化**: 在视频帧上绘制人脸矩形框,并显示预测的性别、年龄和年龄组信息。