【本期推荐专题】从三大主流前端技术出发,看看它们各自特性,以及如何从业务特性出发,选择合适的框架。
image.png

摘要:我们基于MindSpore设计了一种人脸识别算法,以解决口罩遮挡场景下的人脸识别问题。该算法的开源代码已经在MindSpore上首发了。

本文分享自华为云社区《不用摘口罩也知道你是谁,MindSpore训练口罩人脸识别模型》,原文作者:chengxiaoli。

人脸识别的目标是确定人脸图像的身份。随着智慧城市的建设,人脸识别的应用场景越来越多样,比如嫌疑人追踪、定位走失的老人儿童等。随着新型冠状病毒在全球范围内的爆发,为了公共卫生安全,越来越多的人在公共场所佩戴口罩以降低感染传染性疾病的风险。

传统的人脸分析方法主要提取整张脸部的全局特征进行分析,口罩遮挡场景下,面部的部分重要部位(比如下颌等)被口罩覆盖住,提取整张脸的全局特征将会引入大量噪声。因此,口罩遮挡场景下的人脸分析任务亟需新的解决方案。我们基于MindSpore设计了一种人脸识别算法,以解决口罩遮挡场景下的人脸识别问题。该算法的开源代码已经在MindSpore上首发了。

算法框架

目前还没有针对口罩人脸的大规模的训练数据集,为解决训练数据不足的问题,我们基于已有的公开人脸数据集生成口罩人脸数据作为训练数据。流程如下:

(1)采用已有的人脸关键点检测算法(比如Dlib)检测出无遮挡人脸图片上的多个关键点位置;

(2)标注出口罩佩戴区域(鼻尖以下区域)的关键点位置;

(3)在口罩示例图片(比如N95口罩)上手动标注关键点,并和人脸口罩佩戴区域的关键点一一对应;

(4)根据口罩示例图片的关键点位置,对其做三角剖分,将口罩示例图片划分为多个小三角形;

(5)根据口罩示例图片和人脸图片的关键点对应关系,将口罩示例图片上的每个小三角形区域仿射变换到人脸图片上,并进行平滑操作,生成口罩人脸图片。

我们在人脸公开数据集WebFace上生成了8种不同风格的口罩人脸,将其与原始未佩戴口罩的人脸图片混合,作为训练数据。
image.png

算法框架如图所示,考虑到口罩人脸中的许多重要信息被口罩遮挡,我们提出了基于潜在区域检测的二分支网络模型以提取更具判别力的特征。其中,局部分支对潜在区域提取局部特征,全局分支对原图提取全局特征。
image.png

实验结果

我们搜集了实际的口罩人脸数据集PKU-Masked-Face Dataset作为测试集,该测试集共有10301张属于1018个不同身份的人脸图片。大多数身份有至少5张佩戴口罩和5张不佩戴口罩的共计5个视角的人脸图片,5个视角分别为:正面、左面、右面、俯视、仰视。口罩人脸图片作为查询图像库,正常人脸图片作为待匹配图像库。

测试集链接:
https://pkuml.org/resources/p...

基于MindSpore实现的算法模型实验结果如下表所示,其中Baseline为采用WebFace原始数据训练的ResNet50基准模型,MG是采用WebFace增强数据训练的ResNet50模型,LPD为我们提出的潜在区域检测模型。
image.png

MindSpore代码实现

二分支网络结构代码:
image.png

其中global_out和partial_out分别对应对原图提取的全局特征和潜在区域提取的局部特征,两部分共用特征提取主干层。
image.png

潜在区域检测LPD模块的具体实现:
image.png

其中输入为原始图片,输出为未被遮挡人脸区域边界坐标。

该代码基于MindSpore框架实现,运行的硬件环境为Ascend910。算法解决了口罩遮挡场景下的人脸识别问题,对基准模型性能提升明显,实验结果如上表达到业界领先水平。

点击关注,第一时间了解华为云新鲜技术~


华为云开发者联盟
1.4k 声望1.8k 粉丝

生于云,长于云,让开发者成为决定性力量