2026/9/1 23:57:09

基于 IMDB-WIKI 人脸数据集的年龄与性别预测项目-python+IMDB-WIKI(无数据集)

基于 IMDB-WIKI 人脸数据集的年龄与性别预测项目-python+IMDB-WIKI(无数据集) 本项目为前几天收费帮学妹做的一个项目在工作环境中基本使用不到但是很多学校把这个当作编程入门的项目来做故分享出本项目供初学者参考。一、项目描述基于 IMDB-WIKI 人脸数据集的年龄与性别预测项目基于 IMDB-WIKI 人脸数据集的年龄与性别预测项目,采用 ResNet18 轻量回归版模型,从原始数据集分层抽样 3714 张图,2 个 epoch 约 10 分钟即可完成训练,在 CPU 上即可流畅运行推理。二、项目功能人脸检测与对齐:基于 MTCNN(P/R/ONet 三阶段)检测人脸及 5 个关键点,仿射变换对齐到 112×112 标准人脸。年龄/性别预测:模型同时输出回归年龄值与性别分类(0 女 1 男)。命令行批量推理:demo.py 自动处理 images/ 下所有 *_raw.jpg,输出 sample_preds.json。快速训练脚本:train_fast.py 内置分层抽样、数据增强、每 epoch 保存、超时早停,可一键复现模型。Tkinter 桌面 GUI:app_tk.py 支持图片/文件夹选择、批量预测、左侧原图带人脸框标注预览、右侧结果表格、导出 Excel/JSON。结果导出:支持 .xlsx(pandas)与 .json 两种格式。三、运行环境操作系统:Windows(已验证)/ Linux / macOS 均可Python:3.8 (本机 3.13)硬件:CPU 即可,GPU 可选(CUDA 自动启用)Python 依赖:pip install torch torchvision opencv-python numpy scipy pillow pandas openpyxl外部数据(仅重新训练时需要):imdb_meta.tar imdb_crop.tar,从 https://data.vision.ee.ethz.ch/cvl/rrothe/imdb-wiki/ 下载四、项目技术网络结构:ResNet18 主干(去 avgpool/fc) AvgPool2d 两路分支:fc1→age_pred(回归单值) fc2→gen_pred(2 分类)预训练:加载 ImageNet 权重做迁移学习,加快收敛损失函数:L1Loss(年龄回归) CrossEntropyLoss(性别分类)联合相加优化器:SGD(momentum0.9, weight_decay5e-4, lr1e-3)数据增强:水平翻转随机增广人脸对齐:5 关键点仿射变换到固定模板推理兼容修复:补 AvgPool2d.divisor_override、torch.load(weights_onlyFalse)、np.load(allow_pickleTrue) 等适配新版 PyTorch/NumPy/OpenCVGUI 框架:Tkinter(Treeview 表格 PhotoImage 预览,无第三方依赖)以上系统源码经过技术整理与调试确保能正常运行五、项目截图