项目简介
本项目构建了一个集人脸识别与人脸质量评估功能于一体的系统。在提取人脸特征向量的同时,能够给出明确的定量质量评分。通过在特征提取网络上添加质量网络分支,无需训练带有质量标签的数据即可实现人脸质量评估,为实际场景中的人脸识别提供了更可靠的保障。
项目的主要特性和功能
- 特征提取与质量评分并行:在进行人脸特征向量提取时,同步输出人脸的定量质量评分。
- 多阶段训练:通过多次训练不同模块(特征训练、质量训练等),逐步优化模型性能。
- 可视化监控:利用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】