基于深度学习的年龄与性别预测系统

作品简介


项目概述

本项目实现了一个基于深度学习的年龄与性别多任务预测系统,使用 UTKFace 数据集,采用 PyTorch 训练 ResNet 多任务模型,可对人脸图片、视频、摄像头画面进行年龄回归与性别分类。系统支持图形界面(PyQt5)和命令行双模式操作,提供了完整的模型训练、预测、管理功能。

主要特性

  • 多任务预测:同时预测年龄(回归)和性别(分类)
  • 多种输入支持:支持图片、视频、摄像头实时预测
  • 深度学习模型:基于 ResNet18/34/50 的多任务学习架构
  • 人脸检测:集成 YOLOv8 进行人脸检测,提高预测准确性
  • 图形界面:基于 PyQt5 的现代化 GUI,支持浅色/深色主题
  • 命令行支持:提供完整的命令行操作接口
  • 模型管理:支持模型的保存、加载、删除、比较等功能
  • 训练监控:实时显示训练进度和损失曲线
  • 数据预处理:自动去重和整理 UTKFace 数据集
  • CUDA 加速:支持 GPU 加速训练和推理

技术栈

  • 深度学习框架:PyTorch
  • 计算机视觉:OpenCV, Pillow
  • 人脸检测:Ultralytics YOLOv8
  • GUI 框架:PyQt5
  • 数据处理:scikit-learn, matplotlib
  • 其他工具:tqdm, keyboard, netron

项目结构

AgeGenderVision-main/
├── assets/                        # 图形界面资源文件
│   ├── dark.qss                   # 深色主题样式表
│   ├── light.qss                  # 浅色主题样式表
│   └── svg/                       # 图标资源
├── convention/                    # 数据传输类
├── data/                          # 数据目录
│   ├── UTKFace/                   # UTKFace数据集
│   └── models.json                # 模型信息文件
├── models/                        # 训练好的模型存储目录
├── panels/                        # GUI面板组件
│   ├── main_panel.py              # 主面板
│   ├── train_panel.py             # 训练面板
│   ├── model_list_panel.py        # 模型列表面板
│   ├── predict_image_panel.py     # 图片预测面板
│   ├── predict_camera_panel.py    # 摄像头预测面板
│   ├── predict_video_panel.py     # 视频预测面板
│   └── ...                        # 其他面板
├── services/                      # 服务层
├── threads/                       # 线程类
├── utils/                         # 工具类
├── widgets/                       # 自定义UI组件
├── camera_predict.py              # 摄像头预测脚本
├── check_and_deduplicate_utkface.py # 数据去重脚本
├── main.py                        # 命令行主程序
├── photo_predict.py               # 图片预测脚本
├── qt5_main.py                    # GUI主程序
├── requirements.txt               # 依赖列表
├── train_age_gender_multitask.py  # 训练脚本
├── video_predict.py               # 视频预测脚本
└── yolov8m-face.pt               # YOLO人脸检测模型




















创作时间: