Arcface-PyTorch 完整实操:5 步搞定人脸识别模型训练与 LFW 评估
Arcface-PyTorch 完整实操:5 步搞定人脸识别模型训练与 LFW 评估
【免费下载链接】arcface-pytorch这是一个arcface-pytorch的源码,可以用于训练自己的模型。项目地址: https://gitcode.com/gh_mirrors/arc/arcface-pytorch
Arcface-PyTorch 是一套基于 PyTorch 的人脸识别模型实现,核心用途是判断两张人脸是否属于同一人,并支持用 Arcface 损失函数训练自己的权重。本文按"环境核对 → 权重下载 → 数据准备 → 标注生成 → 训练 → 评估"的完整流水线带你走一遍,每条命令和常见坑点都列清楚了,照做即可跑通。
快速速查:先记住这几条命令
| 你想做的事 | 对应文件 / 命令 |
|---|---|
| 获取源码 | git clone https://gitcode.com/gh_mirrors/arc/arcface-pytorch |
| 跑人脸比对预测 | python predict.py |
| 生成训练标注 | python txt_annotation.py |
| 启动训练 | python train.py |
| LFW 数据集评估 | python eval_LFW.py |
下面逐段展开细节。
环境版本核对清单
装环境前先看这张表,版本不匹配是报错的最大来源:
| 组件 | 版本要求 | 安装方式 |
|---|---|---|
| Python | 3.6 及以上 | 官方渠道安装 |
| PyTorch | 1.2.0 及以上 | pip install torch==1.2.0 |
| 其余 Python 依赖 | 以 requirements.txt 为准 | pip install -r requirements.txt |
⚠️ PyTorch 版本过低时,train.py里 fp16 混合精度、部分算子会直接报错,建议严格按上表安装。
源码获取与预训练权重就位
- 克隆仓库并进入目录:
git clone https://gitcode.com/gh_mirrors/arc/arcface-pytorch cd arcface-pytorch- 下载已训练好的权值,百度网盘链接: 链接: https://pan.baidu.com/s/1ElJlfmMwOGX699MsgLY8qA 提取码: z3rq 解压后把
.pth文件放进model_data/目录(仓库里已有arcface_mobilefacenet.pth,若缺失需补上)。
⚠️ 提取码是区分大小写的z3rq,权重文件必须落在model_data/下,放错目录会导致predict.py与eval_LFW.py加载权重时直接找不到文件。
数据集下载与目录放置
训练和评估依赖两个数据集:
- CASIA-WebFaces:用于训练,解压后放进项目根目录的
datasets/路径下; - LFW:用于评估,解压后放进项目根目录。
百度网盘链接: 链接: https://pan.baidu.com/s/1qMxFR8H_ih0xmY-rKgRejw 提取码: bcrq
⚠️ 两个数据集都要解压到项目根目录这一层,多套一层文件夹后,train.py和eval_LFW.py里写死的相对路径(如lfw)就全部失效了。
生成训练标注 cls_train.txt
代码要求人脸图片按"人"分目录存放,结构如下:
|- datasets |- people0 |- 123.jpg |- 234.jpg |- people1 |- 345.jpg |- 456.jpg整理好后运行标注脚本,它会自动扫描datasets/并输出cls_train.txt(每行格式为"类别编号;图片绝对路径"):
python txt_annotation.py选择主干网络并启动训练
打开train.py,训练前重点核对以下配置:
- backbone:主干特征提取网络,可选
mobilefacenet、mobilenetv1、iresnet18/34/50/100/200,其中 MobileNet 系和 IResNet 系是两套典型架构; - model_path:指向已训练的
.pth文件,想从 0 开始训练则留空""; - batch_size:默认 64,显存不足时调小(受 BatchNorm 限制不能为 1);
- input_shape:默认
[112, 112, 3],与评估、预测保持一致。
配置无误后启动训练:
python train.pyLFW 评估:训练质量怎么验证
eval_LFW.py中先设置与训练一致的主干网络和权重路径(backbone+model_path),然后运行:
python eval_LFW.py脚本会遍历 LFW 配对样本,输出验证准确率并生成 ROC 曲线,默认保存到model_data/roc_test.png:
曲线越贴近左上角,说明模型在"真阳性率-假阳性率"权衡上表现越好,参考权重在 LFW 上的准确率可达 98%~99% 区间。
人脸比对预测怎么用
想快速验证效果,直接运行预测脚本:
python predict.py终端会提示输入两张图片路径,依次填入:
img/1_001.jpg img/1_002.jpg程序返回的数值即两张人脸属于同一人的相似度概率。若换用自己训练的权重,记得先修改arcface.py里的model_path与backbone,二者必须对应。
到这里,环境、权重、数据、标注、训练、评估六个环节你已经全部走通:现在你可以直接预测任意两张人脸的相似度,在 LFW 上量化模型表现,也能更换 backbone、调整训练参数,训练一套属于自己数据集的人脸识别权重。
【免费下载链接】arcface-pytorch这是一个arcface-pytorch的源码,可以用于训练自己的模型。项目地址: https://gitcode.com/gh_mirrors/arc/arcface-pytorch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
