【人脸识别】FROM:提升遮挡状态下的人脸识别效果
论文题目:《End2End Occluded Face Recognition by Masking Corrupted Features》
论文地址:https://arxiv.org/pdf/2108.09468v3.pdf
代码地址:https://github.com/haibo-qiu/from
1.前言
人脸识别技术已经取得了显著的进展,主要归功于以下三个因素:
- loss functions: Center loss、CosFace、ArcFace etc. (损失函数)
- carefully designed convolutional neural network architectures (CNNs): ResNet etc.(网络设计)
- large-scale training datasets: LFW、WebFace etc.(数据集)
人脸识别技术在真实场景中面临的主要挑战:
- extreme illumination (极端的光线)
- rare head pose (罕见的头部姿态)
- lowresolutions, and occlusions (低分辨率以及遮挡)
目前为了缓解因遮挡造成的效果下降主要采用两种方式:Recovering and Removing。
- Recovering means recovering the occluded facial parts first, and then performing recognition on the recovered face images.
(恢复是指先恢复被遮挡的面部部位,然后对恢复后的人脸图像进行识别)- Removing represents first removing the features that are corrupted by occlusions, and then utilizing the remaining clean
features for recognition.(删除表示首先删除被遮挡损坏的特征,然后利用剩余的干净特征进行识别)
图1:上半部分可视化了面部图像上的九种不同遮挡。 下半部分展示了基线和我们的方法之间的准确性比较。 请注意,右边的图例表示不同遮挡的遮挡程度(例如,(4)-0.12 表示遮挡嘴巴的面积占人脸图像总面积的 12%)。从上图可以大致看出:1)面部遮挡明显影响到了模型效果;2)不同的遮挡区域和遮挡面积造成模型效果下降的程度不一样(例如眼睛被遮挡会显著降低准确率);3)本文提出的算法不仅可以在遮挡状态下明显超过baseline的效果,而且在未遮挡状态下也能保持相当的效果。
2.FROM
2.1.整体架构
FROM的整体结构如图 2 所示,FROM是一种新颖的单网络端到端方法。 它以一小批随机遮挡和无遮挡(未配对)的面部图像作为输入,并生成金字塔特征,然后将其用于解码特征掩码。 然后,获得的掩码通过乘法mask损坏的元素来清理深层特征,以进行最终识别。
FROM 的核心思想是学习准确的特征掩码以有效地清除损坏的特征。
2.2.Mask Decoder
FROM 的原理是学习一个 Mask Decoder 来生成特征掩码,用于精确去除由遮挡引起的损坏特征。 如图 2 所示,它将特征金字塔提取器获得的 conv 特征图 X3 中的遮挡信息解码为特征掩码 M。 期望通过逐元素乘积来屏蔽 X1 的损坏特征元素,以生成清洁的特征 X’1 以供后续识别。 如图 3a 所示,Mask Decoder 被实现为一个简单的“Conv-PReLU-BN-Conv-Sigmoid”结构,其中“Sigmoid”函数用于将输出特征掩码约束到 (0, 1)。 请注意,两个“Conv”层的步幅都设置为 2,以缩小 4 倍分辨率以与 X1 的大小完全匹配。
简而言之,Mask Decoder结构就类似于一个注意力机制模块,让网络去学习出一个合适的权重矩阵来mask掉原特征图中损坏的特征。(只是注意力机制是让网络自适应的去学习,而Mask Decoder后续还有一个Occlusion Pattern Predictor来监督它的学习)在得到权重矩阵M之后,与原特征图进行一个乘积的操作,来mask掉损坏特征以更好的进行后续的识别。
2.3.Occlusion Pattern Predictor
为了鼓励 Mask Decoder 生成与输入人脸图像的遮挡模式相关的掩码,我们将模块 Occlusion Pattern Predictor 引入我们的网络以监督特征掩码学习。 如图 2 所示,它将学习到的特征掩码作为输入并预测遮挡模式向量,然后使用 softmax 损失对其进行分类。 它有一个简单的“BNDropout-FC-BN”结构,其输出通道等于图 3b 中遮挡模式的数量(比如你只想预测口罩遮挡这一个类型,最后的FC层节点个数就设置为2,即二分类是否戴口罩)。 因此,Mask Decoder 被训练生成掩码:1)与输入图像的遮挡相关; 2) 正确屏蔽掉对人脸识别有害的损坏特征。 虽然第一点是通过引入遮挡模式预测器实现的,但第二点是通过应用于掩蔽特征的人脸识别损失(本文中的 CosFace 损失 [4])来监督的。
2.3.1.Proximate Occlusion Patterns
为了探究遮挡模式,提出邻近性。相邻块在实际应用中通常具有相似的遮挡状态(例如,如果嘴巴被遮挡,那么鼻子也很有可能被遮挡)。具体操作如下图所示:
当人脸图像被分成 4 × 4 块时,邻近遮挡模式的示例(左)和每个遮挡大小的模式数量(右)。 数值矩阵中 (i, j) 位置的值表示大小为 i × j 的遮挡模式的数量。通过总结矩阵的所有值,我们有 101 种遮挡模式(100 种被遮挡和另外 1 种未被遮挡)。
举例说明:当图像被分成4 x 4时。以左上角为坐标原点,比如左上角的16,意思就是(1x1)大小的块遮挡模式有16种,同理,右下角的1,意思就是(4x4)大小的块遮挡模式只有1种。
2.3.2.Pattern Prediction
生成的特征掩码应该用于正确预测相应的参考模式。 特别是,在训练阶段,我们有每个图像的遮挡位置。 对于每个图像 Xi,我们通过将其遮挡位置与 226(当 K = 5)遮挡模式匹配来获得其遮挡模式 Yi。 我们的匹配策略是计算遮挡和 226 个参考模式之间的 IoU 分数,然后选择具有最大 IoU 分数的模式作为相应的标签。 从遮挡模式预测器获得遮挡特征向量后,我们采用传统的 softmax 损失及其遮挡模式 Yi,公式如下:
简而言之,就是对于训练数据要确定好遮挡模式,才能进行后续的分类计算。首先,按照预先设定好的K值(也就是图像怎么切,有多少种遮挡模式),将训练数据的真实遮挡情况与设定好的遮挡模式计算iou,这一步是确定图片属于那种类型的遮挡,以便确定好分类标签。然后就是计算分类损失就好了。注意:遮挡模式预测器最终FC层的维度一定要与你设定好的遮挡模式的个数一致。
2.4.总损失
3. 实验
3.1. 遮挡数据集构建
AR 人脸数据集示例和我们合成遮挡的人脸图像。 第一行图像在 WebFace 上以 1 : 0.5 : 5 的随机比例被遮挡。 第二行和第三行图像在 LFW 和 Facescrub 上分别被 1.0、1.5、2.0 遮挡。 最后一行图像来自 AR Face 数据集。
3.2.训练细节
训练阶段可以分为两个步骤。 首先,我们使用具有较大margin的cosine loss在 WebFace 数据集上学习主干网络(即图 2 中的上部分支)。 主干网络训练了 40 个 epoch,初始学习率为 0.1,batch size 为 512。使用权重衰减为 0.0005 和动量为 0.9 的 SGD,在第 15 和 30 个 epoch 将学习率降低 10 倍。然后我们将训练好的来自步骤 1 的模型作为我们的预训练模型,并在 OccWebFace 数据集上微调整个网络,包括特征金字塔提取器、掩码解码器和遮挡模式预测器,该数据集是通过从 1.0 : 0.5 : 5.0 中随机选择作为 Alg1 中的 Scale s 和来自原始 WebFace 数据集的每个图像的遮挡器构建的。
3.3.部分实验结果
3.3.1.Ablation Study
对比权重向量M矩阵的值是使用sigmoid,还是大于某个值直接置为1,反之置为0,意思也就是抑制还是删除(损坏特征)。实验证明抑制好于删除。
K4, K5, K6的表现基本相同,K3略落后。考虑到速度和精度的权衡,我们采用K = 5(即将人脸图像划分为5 × 5网格)进行其余实验。
λ=0.5, λ=1具有较好的精度
3.3.2.Comparision to Baselines
1)带Mask Decoder的Baseline_x0002_MD的性能比Baseline-Aug好,这可能是由额外的网络参数带来的。
2)我们首先发现Baseline- aug的性能略差于Baseline,这可能是由于其遮挡数据微调过程中存在过拟合问题。
3.3.3.Effects of Different Occluded Areas
另一个观察结果是,模型在左脸和右脸上的表现非常相似,这可能有助于训练人脸图像的翻转增强。
3.3.4.Benchmark on RMF2, LFW-SM and O_LFW
occluded faces (N-O) and occluded face pairs (O-O)
3.3.5.Benchmark on Megaface Challenge 1
同样值得注意的是,PDSN的56.34%的精度是50个遮挡区域的平均精度,然而,在他们的论文中没有详细说明。因此,在相同的配置下,我们无法得到公平比较的结果。但是,我们在随机位置遮挡上上获得了60.84%的准确率,这比50个区域更不受约束,也更困难,使我们的结果更有说服力。
3.3.6.Benchmark on AR Face Dataset
1)对于SphereFace,我们使用public code及其预训练的模型 。
2)对于CosFace和ArcFace,我们自己用相应的损失训练模型,并得到实验结果。
【人脸识别】FROM:提升遮挡状态下的人脸识别效果相关推荐
- 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度
模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度 发表于2015-03-30 23:46| 6209次阅读| 来源CSDN| 8 条评论| 作者霍强 模式识别微软亚洲研究院微软OCR文字 ...
- 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
摘要:OCR识别可分为两步:首先是文本检测,将文字从图片中提取出来:然后对文本进行识别.此次的突破主要是在文本检测环节的两个子阶段:先采用对比极值区域CER检测方法,再采用基于浅层神经网络的文字/非文 ...
- 细谈在非WIFI状态下显示GIF缩略图效果
对配置文件读取操作的测试 为了对编写的配置文件读取操作程序进行测试,定义了员工信息结构体和雇主信息结构体,分别用于存放从配置文件中读取到的员工信息和雇主信息.在main函数中将获取到的信息打印出来, ...
- c++ 人脸识别_应用层下的人脸识别(四):人脸研判
作者根据多年人脸识别项目经验,总结了人脸识别技术在安防.商业领域应用及产品设计细节,汇总成应用层下的人脸识别系列文章.本文为系列文章的第四篇,从什么是人脸研判及人脸研判类型和应用两方面介绍相关内容. ...
- 人脸识别最低像素_一种低分辨率条件下的人脸识别方法与流程
本发明涉及生物识别技术领域,具体涉及一种低分辨率条件下的人脸识别方法. 背景技术: 从上个世纪六十年代以来,人脸识别算法获得了长期的发展,从对单一背景的针对性研究到现在对各种复杂条件的适应,如表情.姿 ...
- 人脸识别闸机助力线下展览与演出
人脸识别在疫情期间表现出非接触.便捷性和安全性等优势,让多领域产品选择搭载该技术,由此衍生出人脸识别门禁.人脸识别测温仪.人脸识别通行闸机.人脸支付终端等,在安防.交通.旅游.教育.警务等领域获得广泛 ...
- 应用层下的人脸识别(二):人脸库
本文作者根据多年人脸识别项目经验,总结了人脸识别技术在安防.商业领域应用及产品设计细节,汇总成应用层下的人脸识别系列文章. 本文为系列文章的第二篇,介绍人脸库的相关内容.人脸库是人脸识别的基础,建立人 ...
- 3D人脸识别准确率提升,成未来发展趋势
https://www.toutiao.com/a6678896218048823811/ 随着技术升级,生物识别技术已经被应用到越来越多的行业当中,渗透人们生活的方方面面,你的面部.眼睛.步态乃至表 ...
- android放弃人脸解锁,【新机】安卓12系统界面亮相:超圆润 | iPhone 屏下3D人脸识别渲染图,逼死强迫症...
来源:大米评测 最近谷歌亲儿子系列Pixel6/6Pro渲染图已经正式曝光,从整体的ID外观来看,后盖这一条黑色相机模组,配合黑色中框+顶部橙色点缀,确实很有辨识度,同时因为正面采用了单摄小孔设计,整 ...
最新文章
- (循环练习题) 五只猴子分桃子
- 使用 supervisor 管理进程
- UVA11825 Hackers' Crackdown
- Map的使用和遍历方法示例
- java soap服务_「java调用webservice」java调用webservice接口 三种方法 - seo实验室
- 开源规则引擎Drools、URule简介
- What is ReactOS
- 多层介质中广义反射系数与广义透射系数的计算与编程思路
- 在Excel中使用翻译公式 (有道API)
- 2022年“研究生科研素养提升”系列公益讲座在线测评试题及解析
- progress中的数据库访问
- String 深入理解
- Java正则表达式提取字符的方法实例
- 什么软件去视频水印 拍抖音技巧视频教程
- thumbnail的处理流程和读取缩略图thumbnail所在sample的index的方法
- 血清、血浆、全血、脑脊液、尿液——临床标本大全
- Python 帮你批量生成手机号码
- 【 Visual C++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写
- matlab2阶系统,基于Matlab/Simulink的二阶控制系统仿真研究
- MySQL基础(五)
热门文章
- 双足机器人重心在头部_波士顿动力双足机器人Atlas放出逆天体操表演
- jQuery —— JavaScript 库
- 4.4 like通配符关键字过滤查询数据
- 基于微信小程序的外卖点餐平台的设计与实现-计算机毕业设计源码+LW文档
- htcm7刷linux,htc one m7刷官方原版recovery的教程
- UDDi注册中心的实现
- android概述和环境搭建
- Veri3.SDF后仿真时序检查
- Veri2. VCS behavioral analysis for the un-driven port
- 【机器学习】DecisionTreeClassifier与红酒数据集