Arcface-PyTorch 从零实战:训练并评估属于你的人脸识别模型
【免费下载链接】arcface-pytorch这是一个arcface-pytorch的源码,可以用于训练自己的模型。项目地址: https://gitcode.com/gh_mirrors/arc/arcface-pytorch
跟着这份教程一步步操作,你就能用 Arcface-PyTorch 完成一套完整的人脸识别模型训练,并在 LFW 基准数据集上验证它的识别精度,最终收获一个可直接复用的 .pth 权重文件。全程拆成 5 个小步骤,每一步都有明确的成功标志,卡住了可以直接翻到文末的排查清单。⚠️ 唯一前提是电脑里有一个能正常运行的 Python 环境。
前置条件:环境清单
| 要求项 | 版本/配置 | 说明 |
|---|---|---|
| Python | 3.6 或更高 | 脚本运行环境,版本不能低于 3.6 |
| PyTorch | 1.2.0 | 深度学习训练框架,安装命令锁定 torch==1.2.0 |
| GPU | 可选 | 没有显卡时可在脚本中切换 CPU 模式,但训练会很慢 |
训练框架自带 MobileFaceNet、MobileNetV1、IResNet 等多种主干可选,装环境阶段不用纠结,训练时再定。
从零到跑通的分步操作
拉取代码并一次装好依赖
先把仓库代码拿到本地并进入目录:
git clone https://gitcode.com/gh_mirrors/arc/arcface-pytorch cd arcface-pytorch验证点:当前目录下能看到 train.py、eval_LFW.py 和 model_data 文件夹。
接着两条命令安装依赖:
pip install torch==1.2.0 pip install -r requirements.txt验证点:终端输出 Successfully installed torch-1.2.0,第二条命令没有报错行。若仓库里没有 requirements.txt,请以仓库实际为准,手动补齐代码里 import 的第三方库。
⚠️ 底稿锁死 PyTorch 1.2.0,混装 2.x 等新版本容易在训练和加载权重时出怪错,建议单独建虚拟环境再装。
把预训练权重放进 model_data
从网盘下载预训练权重包,解压到model_data目录:
- 下载地址:https://pan.baidu.com/s/1ElJlfmMwOGX699MsgLY8qA ,提取码z3rq
验证点:model_data 里多出了 .pth 权重文件。注意仓库自带 arcface_mobilefacenet.pth,如果你只想跑通评估流程,这一步可以跳过。
数据集归位并生成训练清单
下载 CASIA-WebFaces(训练用)和 LFW(评估用)两个数据集,解压到项目根目录,解完应得到两块内容:
datasets/:每个人一个子文件夹,人脸照片直接放在里面,如 datasets/people0/xxx.jpglfw/:评估集
然后在根目录执行:
python txt_annotation.py验证点:根目录生成 cls_train.txt,每行格式为"标签;图片路径",行数与数据集里的人脸图片总数一致。
选好主干再启动训练
打开 train.py,挑一个 backbone,并保证 model_path 与它对应,然后执行:
python train.py验证点:终端先打印训练参数汇总(类别数、backbone、学习率等),随后按 Epoch 滚动输出 loss,logs/ 文件夹开始持续产生权重文件。
在 LFW 基准数据集上打分
打开 eval_LFW.py,填入你训练用的 backbone 和 model_path,再执行:
python eval_LFW.py验证点:终端输出最终 accuracy,且 model_data/roc_test.png 被重新生成,效果类似下图。
常见坑位与快速排查
- torch 版本装错:报导入或加载类错误时,先确认装的是 torch==1.2.0,用虚拟环境锁死版本最省心。
- 显存不足(CUDA out of memory):默认 batch_size 为 64,按显卡显存往下调;注意 BatchNorm 的约束,最小只能设 2,不能设 1。
- 数据集或权重放错位置:datasets、lfw、model_data 不在根目录对应位置时,训练评估都会抛文件找不到的错误,先对照目录结构再排查代码。
- backbone 与权重对不上:改了 backbone 忘了同步 model_path,加载权重时会提示 Backbone 部分未载入,评估结果也不可信,两者必须一一对应。
下一步看哪里
- train.py:训练入口,学习率、优化器、学习率衰减策略与多卡配置全在这里。
- nets/:ArcFace 模型结构、损失函数与各主干网络的实现源码。
- utils/dataloader.py:数据读取与随机增广逻辑,改数据策略就看它。
【免费下载链接】arcface-pytorch这是一个arcface-pytorch的源码,可以用于训练自己的模型。项目地址: https://gitcode.com/gh_mirrors/arc/arcface-pytorch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考