本文我们部署的人脸识别算法模型主要包括两部分:
- 第一部分为人脸检测算法模型,该模型将图片中的人脸进行识别,返回人脸的位置信息;
- 第二部分为人脸特征表示算法模型,也称之为识别模型 。这个部分将crop出的人脸图像embedding到一个固定维度大小的向量,然后利用该向量与底库进行比对,完成人脸识别的整体流程 。
文章插图
在实现过程中,我们采用了基于Retinaface+resnet50+arcface的算法完成人脸图像的特征提取,其中Retinaface作为检测模型,resnet50+arcface作为特征提取模型 。
在镜像中,运行训练的脚本有两个,分别对应人脸检测的训练和人脸识别的训练 。
run_face_detection_train.sh
该脚本的启动命令为
shrun_face_detection_train.shdata_pathmodel_output_path
其中model_output_path为模型输出的路径,data_path为人脸检测训练集的输入路径,输入的图片路径结构如下:
detection_train_data/ train/ images/ label.txt val/ images/ label.txt test/ images/ label.txt
run_face_recognition_train.sh
该脚本的启动命令为
shrun_face_recognition_train.shdata_pathmodel_output_path
其中model_output_path为模型输出的路径,data_path为人脸检测训练集的输入路径,输入的图片路径结构如下:
recognition_train_data/ cele.idx cele.lst cele.rec property
run_generate_data_base.sh
该脚本的启动命令为:
shrun_generate_data_base.shdata_pathdetect_model_pathrecognize_model_pathdb_output_path
其中data_path为底库输入路径,detect_model_path为检测模型输入路径,recognize_model_path为识别模型输入路径,db_output_path为底库输出路径 。
run_face_recognition.sh
该脚本的启动命令为:
shrun_generate_data_base.shdata_pathdb_pathdetect_model_pathrecognize_model_path
其中data_path为测试图片输入路径,db_path为底库路径,detect_model_path为检测模型的输入路径,recognize_model_path为识别模型的输入路径
训练过程华为云ModelArts有训练作业的功能,可以用来作模型训练以及对模型训练的参数和版本进行管理 。这个功能对于多版本迭代开发的开发者有一定的帮助 。训练作业中有预置的一些镜像和算法,当前对于常用的框架均有预置镜像(包括Caffe, MXNet, Pytorch, TensorFlow )和华为自己的昇腾芯片的引擎镜像(Ascend-Powered-Engine) 。
本文我们会基于ModelArts的自定义镜像特性,上传自己在本机调试完毕的完整镜像,利用华为云的GPU资源训练模型 。
我们是想在华为云上的ModelArts基于网站上常见的明星的数据训练完成一个人脸识别模型 。在这个过程中,由于人脸识别网络是工程师自己设计的网络结构,所以需要通过自定义镜像进行上传 。所以整个人脸训练的过程分为以下九步:
- 构建本地Docker环境
- 从华为云下载基础镜像
- 根据自己需求构建自定义镜像环境
- 导入训练数据到自定义镜像
- 导入人脸识别底库到自定义镜像
- 导入预训练模型到自定义镜像
- 上传自定义镜像到SWR
- 使用华为云训练作业进行训练
- 使用华为云进行推理工作
Docker环境可以在本地计算机进行构建,也可以在华为云上购买一台弹性云服务器进行Docker环境构建 。全过程参考Docker官方的文档进行:
https://docs.docker.com/engine/install/binaries/#install-static-binaries
从华为云下载基础镜像
官网说明网址:
https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0085.html#modelarts_23_0085__section19397101102
我们训练需要使用到的是MXNet的环境,首先需要从华为云上下载相对应的自定义镜像的基础镜像 。官网给出的下载命令如下:
- 原来伍珂玥和单依纯都参加过《我想和你唱》,当时伍珂玥叫伍翠华
- 《超级飞侠》第十一季,你看懂了吗?带你了解动漫主题与寓意
- 学习历史的感受
- etc怎么办理 etc怎么办理划算
- iPhone密码忘了解锁方法 忘记iphone锁屏密码怎么办
- 什么是百度指数带你了解什么是百度指数
- 用户画像是什么?一文带你讲透:什么是用户画像
- 公务员招考较多的专业 公务员考试中,这三个热门专业招人多,考生值得了解嘛
- 医疗险年限不够是否会影响退休金领取?一分钟了解
- Win10输入法栏不见了解决方法 win10输入法的选字框不见了