项目简介
本项目构建了一个集人脸识别与人脸质量评估功能于一体的系统。在提取人脸特征向量的同时,能够给出明确的定量质量评分。通过在特征提取网络上添加质量网络分支,无需训练带有质量标签的数据即可实现人脸质量评估,为实际场景中的人脸识别提供了更可靠的保障。
项目的主要特性和功能
- 特征提取与质量评分并行:在进行人脸特征向量提取时,同步输出人脸的定量质量评分。
- 多阶段训练:通过多次训练不同模块(特征训练、质量训练等),逐步优化模型性能。
- 可视化监控:利用tensorboard对训练过程中的损失进行可视化监控,方便及时调整参数。
- 模型转换与推理部署:支持将训练好的模型转换为onnx格式,可通过计算欧式余弦相似度进行人脸识别推理。
安装使用步骤
环境准备
- 获取训练镜像
recognition
:可使用docker pull fanacio/recognition:v0
命令拉取,或使用本地保存的镜像recognition.tar
。 - 获取
rec2img
镜像:使用docker pull fanacio/rec2img
命令拉取,或使用本地保存的镜像rec2img.tar
。 - 确保执行环境为A10显卡服务器(2卡机)、ubuntu18.04系统,显卡驱动版本为470.141.03。
数据集准备
- 将数据集格式从bin及rec转换为img格式,推荐使用方法二:
- 下载镜像:
docker pull fanacio/rec2img
(也可使用本地镜像rec2img.tar
)。 - 制作docker:
docker run -u 0 -it -p 3285:22 --gpus all --privileged --net=bridge --ipc=host --pid=host -v /data/data/fanyichao/model_trainging/:/home bitnami/mxnet:latest /bin/bash
。 - 转换数据集:进入
rec2images
目录,执行python rec2image.py --include faces_webface_112x112/ --output images
。
- 下载镜像:
- 生成训练文件列表:进入
dataset
目录,执行python generate_file_list.py
,并修改文件中的路径参数。
预训练权重下载
可从模型下载地址下载预训练权重,也可使用已下载好存放在pre_weights
目录下的权重。
测试预训练权重
执行python test_quality.py --backbone pre_weights/backbone.pth --quality pre_weights/quality.pth --file test_faces
,结果将保存在quality_result
目录中。
开始训练
- 第一次特征训练:
- 配置
config.py
文件,设置合适的参数,如BATCH_SIZE
、BACKBONE_LR
等。 - 执行
python train_feature.py
,若报错缺少bcolz
库,使用conda install bcolz
进行安装。 - 训练结果保存在
backbone_resume.pth
目录下,将生成的权重文件重命名为backbone_resume_part1.pth
和head_resume_part1.pth
。
- 配置
- 质量训练:
- 再次配置
config.py
文件,设置BACKBONE_RESUME_ROOT
和HEAD_RESUME_ROOT
为上一步重命名后的文件路径。 - 执行
python train_quality.py
,训练结果保存在backbone_resume.pth
目录下,将生成的权重文件重命名为pretrained_qulity_resume.pth
和pretrained_backbone_resume.pth
。
- 再次配置
- 第二次特征训练:
- 配置
config.py
文件,设置PRETRAINED_BACKBONE
和PRETRAINED_QUALITY
为上一步重命名后的文件路径。 - 执行
python train_feature.py
,最终所有权重保存在backbone_resume.pth
目录下,根据tensorboard观察结果选择最佳的pth权重。
- 配置
可视化工具使用
进入./head_resume.pth
目录,执行tensorboard --logdir . --bind_all
,在本地浏览器打开相应链接进行训练损失的可视化监控。
模型转换与部署
在test.py
文件中设置pytorch2onnx开关,完成转onnx操作,转出两个onnx模型,一个用于识别,两个结合用于人脸质量评估。可通过计算欧式余弦相似度进行人脸识别推理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】