ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享

作者丨阿里云多媒体 AI 团队

编辑丨极市平台

导读

 

今年阿里云多媒体 AI 团队参加了 MFR 口罩人物身份鉴别全球挑战赛,并在总共5个赛道中,一举拿下1个冠军、1个亚军和2个季军。本文为该团队的冠军方案分享,详细介绍了他们在数据、模型、损失函数等方面的解决方案。

a6681da2cf3ccb0159a6d85a3144e506.png

1. 引言

10月11-17日,万众期待的国际计算机视觉大会 ICCV 2021 (International Conference on Computer Vision) 在线上如期举行,受到全球计算机视觉领域研究者的广泛关注。

今年阿里云多媒体 AI 团队(由阿里云视频云和达摩院视觉团队组成)参加了 MFR 口罩人物身份鉴别全球挑战赛,并在总共5个赛道中,一举拿下1个冠军、1个亚军和2个季军,展现了我们在人物身份鉴别领域深厚的技术积淀和业界领先的技术优势。

2. 竞赛介绍

MFR口罩人物身份鉴别全球挑战赛是由帝国理工学院、清华大学和InsightFace.AI联合举办的一次全球范围内的挑战赛,主要为了解决新冠疫情期间佩戴口罩给人物身份鉴别算法带来的挑战。竞赛从6月1日开始至10月11日结束,历时4个多月,共吸引了来自全球近400支队伍参赛,是目前为止人物身份鉴别领域规模最大、参与人数最多的权威赛事。据官方统计,此次竞赛收到的总提交次数超过10000次,各支队伍竞争异常激烈。

2.1 训练数据集

此次竞赛的训练数据集只能使用官方提供的3个数据集,不允许使用其它额外数据集以及预训练模型,以保证各算法对比的公平公正性。官方提供的3个数据集,分别是ms1m小规模数据集、glint360k中等规模数据集和webface260m大规模数据集,各数据集包含的人物ID数和图片数如下表所示:

5d909908670ca65f7d8ce154ab08866d.png

2.2 评测数据集

此次竞赛的评测数据集包含的正负样本对规模在万亿量级,是当前业界规模最大、包含信息最全的权威评测数据集。值得注意的是所有评测数据集均不对外开放,只提供接口在后台进行自动测评,避免算法过拟合测试数据集。

InsightFace赛道评测数据集的详细统计信息如下表所示:

7a1cb9e34cc2d9014ee586c241a7783d.png

WebFace260M赛道评测数据集的详细统计信息如下表所示:

60739872ab519c6d10c36cdd9dd92659.png

2.3 评测指标

此次竞赛的评测指标不仅有性能方面的指标,而且还包含特征维度和推理时间的限制,因此更加贴近真实业务场景。详细的评测指标如下表所示:

b5ae85d54bfb87227e3f4d6a69ac0ef8.png

0d70fa545d2115c9c49def1adc4e697f.png

3. 解决方案

下面,我们将从数据、模型、损失函数等方面,对我们的解决方案进行逐一解构。

3.1 基于自学习的数据清洗

众所周知,人物身份鉴别相关的训练数据集中广泛存在着噪声数据,例如同一人物图片分散到不同人物ID下、多个人物图片混合在同一人物ID下,数据集中的噪声会对识别模型的性能产生较大影响。针对上述问题,我们提出了基于自学习的数据清洗框架,如下图所示:

36918ab485b488b9a1141cc351350be3.png

首先,我们使用原始数据训练初始模型M0,然后使用该模型进行特征提取、ID合并、类间清洗和类内清洗等一系列操作。对于每个人物ID,我们使用DBSCAN聚类算法去计算中心特征,然后使用中心特征进行相似度检索,这一步使用的高维向量特征检索引擎是达摩院自研的Proxima,它可以快速、精准地召回Doc中与Query记录相似度最高的topK个结果。紧接着,我们使用清洗完成的数据集,训练新的模型M1,然后重复数据清洗及新模型训练过程,通过不断进行迭代自学习方式,使得数据质量越来越高,模型性能也随之越来越强。具体来看,类间清洗和类内清洗的示意图如下图所示:

6509e6b7eb48458a6a8b967b2e1beabd.png

值得注意的是,我们的清洗流程中先进行类间清洗、再进行类内清洗,与CAST[1]数据清洗框架不同,这样在完成类间清洗后可以更新新的ID中心特征,使得整个清洗过程更加完备,清洗效果也更好。为了验证数据清洗对最终性能的影响,我们在ms1m数据集上做了一系列对比实验,结果如下表所示:

d1ac3bc822a5cf6dbb1c074c2c663031.png

表中的阈值指的是类内清洗的相似度阈值,可以看出当阈值设置过低(如0.05)时,噪声没有被清洗干净,因此性能表现不是最佳;而当阈值设置过高(如0.50)时,噪声被清洗的同时难样本也被清洗了,导致模型泛化能力变弱,在评测数据集上性能反而下降。因此选择一个中间阈值0.25,既清洗了大量噪声,又保留了困难样本,在各项评测指标上均达到最佳性能。此外,我们还画出了不同相似度阈值与剩余图片数的关系,如下图所示:

2f4477f788507c98b937cb2db2bb4dca.png

3.2 戴口罩数据生成

为解决戴口罩数据不足的问题,一种可行的方案是在已有的无口罩图像上绘制口罩。然而,目前大部分的绘制方案属于位置贴图式,这种方案生成的戴口罩图像不够真实且缺乏灵活性。因此,我们借鉴PRNet[2,3]的思路,采用一种图像融合方案[4]来获取更符合真实情况的戴口罩图像,如下图所示,

12c745c1d388f65216ae99a46e616ded.png

该方案的原理是将口罩图像和原图像通过3D重建分别生成UV Texture Map,然后借助纹理空间合成戴口罩图像。在数据生成过程中,我们使用了8种类型的口罩,意味着我们可在已有的数据集上对应生成8种不同风格的戴口罩图像。基于UV映射的方案克服了传统平面投影方式中原图像和口罩图像间的不理想衔接和变形等问题。此外,由于渲染过程的存在,戴口罩图像可以获得不同的渲染效果,比如调整口罩角度及光照效果等。生成的戴口罩图像示例如下图所示:

c5b1a689f482982913427202e7a69ee3.png

在生成戴口罩数据训练模型的过程中,我们发现戴口罩数据的比例对模型性能有不同程度的影响。因此,我们将戴口罩数据占比分别设置为5%、10%、15%、20%和25%,实验结果如下表所示:

2a773e565eaeb576d98bfd993ae4507c.png

从上表中发现,当戴口罩数据比例为5%时,模型在MR-ALL评测集上的性能最高;当戴口罩数据比例调整至25%时,对Mask戴口罩评测集的性能提升明显,但在MR-ALL上的性能下降明显。这说明当混合戴口罩数据和正常数据进行训练时,其比例是影响模型性能的重要参数。最终,我们选择戴口罩数据比例为15%,在戴口罩和正常数据上的性能达到一个较好平衡。

3.3 基于NAS的骨干网络

不同骨干网络对特征提取的能力差异较大,在人物身份鉴别领域,业界常用的基线骨干网络是在ArcFace[5]中提出的IR-100。在此次竞赛中,我们采用达摩院提出的Zero-shot NAS (Zen-NAS[6]) 范式,在模型空间搜索具有更强表征能力的骨干网络。Zen-NAS区别于传统NAS方法,它使用Zen-Score代替搜索模型的性能评测分数,值得注意的是Zen-Score与模型最终的性能指标成正比关系,因此整个搜索过程非常高效。Zen-NAS的核心算法结构如下图所示:

46a83d948578f2a43618980ad21835ec.png

我们基于IR-SE基线骨干网络,使用Zen-NAS搜索3个模型结构相关的变量,分别是:Input层的通道数、Block层的通道数和不同Block层堆叠的次数,限制条件是搜索出的骨干网络满足各赛道的推理时间约束。一个有趣的发现是:Zen-NAS搜索出的骨干网络,在ms1m小数据集赛道上的性能表现与IR-SE-100几乎无差异,但在WebFace260M这样的大数据集赛道,性能表现会明显优于基线。原因可能是搜索空间增大后,NAS可搜索的范围随之增大,搜索到更强大模型的概率也随之增加。

3.4 损失函数

此次竞赛我们采用的基线损失函数为Curricular Loss[7],该损失函数在训练过程中模拟课程学习的思想,按照样本从易到难的顺序进行训练。然而,由于训练数据集通常是极度不平衡的,热门人物包含的图片数多达数千张,而冷门人物包含的图片数往往只有1张。为解决数据不均衡带来的长尾问题,我们将Balanced Softmax Loss[8]的思想引入Curricular Loss中,提出一个新的损失函数:Balanced Curricular Loss,其表达式如下图所示:

在ms1m赛道上,我们对比了Balanced Curricular Loss (BCL) 与原始Curricular Loss (CL) 的性能,结果如下表所示:

677acc4ea0c758583421b9d45c497a26.png

可以看出Balanced Curricular Loss相对于Curricular Loss,无论在Mask还是MR-ALL上的指标均有较大幅度的提升,充分证明了其有效性。

3.5 知识蒸馏

由于此次比赛对模型的推理时间有约束,模型超时会被直接取消成绩。因此,我们采用知识蒸馏的方式,将大模型强大的表征能力传递给小模型,然后使用小模型进行推理,以满足推理时间的要求。此次竞赛我们采用的知识蒸馏框架如下图所示:

a6e1b0f8c505f231600b16099544d3e7.png

其中,蒸馏损失采用最简单的L2 Loss,用以传递教师模型的特征信息,同时学生模型使用Balanced Curricular Loss训练,最终的损失函数是蒸馏损失与训练损失的加权和。经过知识蒸馏后,学生模型在评测数据集上的部分指标,甚至超过了教师模型,同时推理时间大大缩短,在ms1m小数据集赛道的性能有较大提升。

3.6 模型和数据同时并行

WebFace260M大数据集赛道的训练数据ID数量>200万、总图片数>4000万,导致传统的多机多卡数据并行训练方式已难以容纳完整的模型。Partial FC[9]采用将FC层均匀分散到不同GPU上,每个GPU负责计算存储在自己显存单元的sub FC层结果,最终通过所有GPU间的同步通信操作,得到近似的full FC层结果。Partial FC的示意图如下所示:

ec83474413813ec56289a9e188c6fa34.png

采用Partial FC,可同时使用模型并行与数据并行,使得之前无法训练的大模型可以正常训练,另外可采用负样本采样的方式,进一步加大训练的batch size,缩短模型训练周期。

3.7 其它技巧

在整个竞赛过程中,我们先后尝试了不同数据增强、标签重构及学习率改变等策略,其中有效的策略如下图所示:

522a671fa03cbc6f7cc933cf9c2d3652.png

4. 竞赛结果

此次竞赛我们mind_ft队在InsightFace和WebFace260M共5个赛道中获得1个冠军(WebFace260M SFR)、1个亚军(InsightFace unconstrained)和2个季军(WebFace260M Main和InsightFace ms1m)。其中,WebFace260M赛道官方排行榜的最终结果截图如下所示:

159f3fa2e921fa482d8681e8d6d69b1c.png

在竞赛结束之后的Workshop中,我们受邀在全球范围内分享此次竞赛的解决方案。此外,我们在此次竞赛中投稿的论文,也被同步收录于ICCV 2021 Workshop[10]。最后,展示一下我们在此次竞赛中收获的荣誉证书:

c3866d092e2ac7b473c78e9411559da4.png

5. EssentialMC2 介绍与开源

EssentialMC2,实体时空关系推理多媒体认知计算,是达摩院MinD-数智媒体组对于视频理解技术的一个长期研究结果沉淀的核心算法架构。核心内容包括表征学习MHRL、关系推理MECR2和开集学习MOSL3三大基础模块,三者分别对应从基础表征、关系推理和学习方法三个方面对视频理解算法框架进行优化。基于这三大基础模块,我们总结了一套适合于大规模视频理解算法研发训练的代码框架,并进行开源,开源工作中包含了组内近期发表的优秀论文和算法赛事结果。

cdefa47ff87969f9373829a5c3d6f087.png

essmc2是EssentialMC2配套的一整套适合大规模视频理解算法研发训练的深度学习训练框架代码包,开源的主要目标是希望提供大量可验证的算法和预训练模型,支持使用者以较低成本快速试错,同时希望在视频理解领域内建立一个有影响力的开源生态,吸引更多贡献者参与项目建设。essmc2的主要设计思路是“配置即对象”,通过简要明了的配置文件配合注册器的设计模式(Registry),可以将众多模型定义文件、优化器、数据集、预处理pipeline等参数以配置文件的形式快速构造出对象并使用,本质上贴合深度学习的日常使用中不断调参不断实验的场景。同时通过一致性的视角实现单机和分布式的无缝切换,使用者仅需定义一次,便可在单机单卡、单机多卡、分布式环境下进行切换,同时实现简单易用与高可移植性的特性。

目前essmc2的开源工作已经发布了第一个可用版本,欢迎大家试用,后续我们会增加更多算法和预训练模型。

链接地址:https://github.com/alibaba/EssentialMC2。

本文作者:

王莽,阿里巴巴达摩院多模态理解&数智媒体组算法专家,2017年博士毕业于中国科学技术大学信息科学技术学院。研究方向包括视频内容精细化理解及结构化、视频多模态推理、视频智能摘要等。相关工作发表在ICCV、AAAI等国际顶级会议上,申请国内外专利10+篇,相关技术成果通过阿里云视频云对外提供服务,日均处理视频时长>10万小时。

参考文献:

[1] Zheng Zhu, et al. Webface260m: A benchmark unveilingthe power of million-scale deep face recognition. CVPR 2021.

[2] Yao Feng, et al. Joint 3d face reconstruction and dense alignment with position map regression network. ECCV, 2018.

[3] Jun Wang et al. Facex-zoo: A pytorch toolbox for face recognition. arxiv, abs/2101.04407, 2021.

[4] Jiankang Deng et al. Masked Face Recognition Challenge: The InsightFace Track Report. arXiv, abs/2108.08191, 2021.

[5] Jiankang Deng, et al. Arcface: Additive angular margin loss for deep face recognition. CVPR 2019.

[6] Ming Lin, et al. Zen-NAS: A Zero-Shot NAS for High-Performance Image Recognition. ICCV 2021.

[7] Yuge Huang et al. Curricularface: Adaptive curriculum learning loss for deep face recognition. CVPR 2020.

[8] Jiawei Ren et al. Balanced meta-softmax for long-tailed visual recognition. NeurIPS, 2020.

[9] Xiang An, et al. Partial fc: Training 10 million identities on a single machine. ICCV 2021.

[10] Tao Feng, et al. Towards Mask-robust Face Recognition. ICCV 2021.

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

0d7c79a496eab88d6ed612756836cc58.png

▲长按加微信群或投稿

f182a992c6189f26cbfe9a4b99630a9c.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

a1629fff9e0a8aa42688a067d26fab13.png

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值