阿里云多媒体作者 AI 团队
极市平台编辑
阿里云多媒体今年 AI 团队参加了 MFR 口罩人物身份鉴定全球挑战赛,在5条赛道中获得1个冠军、1个亚军和2个第三名。本文分享了团队的冠军计划,详细介绍了他们在数据、模型、损失函数等方面的解决方案。
1. 引言
10月11日至17日,国际计算机视觉会议备受期待 ICCV 2021 (International Conference on Computer Vision) 全球计算机视觉领域的研究计算机视觉领域研究人员的广泛关注。
阿里云多媒体今年 AI 团队(由阿里云视频云和达摩院视觉团队组成)参加 MFR 在全球口罩人物身份鉴定挑战赛中,条赛道中一举夺得冠军、亚军、第三名,展现了我们在人物身份鉴定领域深厚的技术积累和行业领先的技术优势。
2. 竞赛介绍
MFR帝国理工学院、清华大学战赛由帝国理工学院、清华大学和InsightFace.AI全球联合举办的挑战赛主要是为了解决新冠肺炎疫情期间佩戴口罩给人物身份识别算法带来的挑战。比赛从6月1日开始到10月11日结束,持续了4个多月,吸引了来自世界各地的近400支球队。这是迄今为止人物身份识别领域规模最大、参与人数最多的权威赛事。据官方统计,比赛总提交次数超过1万次,各队竞争异常激烈。
2.1 训练数据集
本次比赛的培训数据集只能使用官方提供的三个数据集,不允许使用其他额外的数据集和预培训模型,以确保每个算法比较的公平性和公正性。官方提供的三个数据集是ms1m小规模数据集、glint360k中等规模数据集和webface260m大规模数据集,每个数据集中包含的人物ID如下表所示数如下表所示:
2.2 评测数据集
本次比赛的评价数据集包含万亿量级的正负样本,是业内规模最大、信息最全的权威评价数据集。值得注意的是,所有评估数据集都不对外开放,只在后台提供界面进行自动评估,避免算法过拟合测试数据集。
InsightFace如下表所示:
WebFace260M如下表所示:
2.3 评测指标
本次比赛的评价指标不仅包括性能指标,还包括特征维度和推理时间的限制,更接近真实的业务场景。详细的评估指标如下表所示:
3. 解决方案
下面,我们将从数据、模型、损失函数等方面逐一解构我们的解决方案。
3.1 基于自学习的数据清洗
众所周知,与人物身份识别相关的训练数据广泛存在噪声数据,例如,同一人物的图片分散到不同人物ID下面,多个角色的图片混合在同一个角色中ID下,数据集中的噪声会对识别模型的性能产生较大影响。针对上述问题,我们提出了基于自学习的数据清洗框架,如下图所示:
首先,我们使用原始数据训练初始模型M然后使用该模型提取特征,ID合并、类间清洗、类内清洗等一系列操作。对每个角色ID,我们使用DBSCAN聚类算法计算中心特征,然后使用中心特征进行相似性检索。这一步使用的高维向量特征检索引擎是达摩研究所开发的Proxima,它能快速准确地召回Doc中与Query最相似的记录topK个结果。然后,我们使用清洁数据集来训练新模型M1.然后重复数据清洗和新模型培训过程。通过不断迭代自学,数据质量越来越高,模型性能越来越强。具体来说,类间清洗和类内清洗的示意图如下图所示:
值得注意的是,在我们的清洁过程中,我们先清洁类间,然后清洁类内CAST[1]数据清洗框架不同,完成类间清洗后可更新ID中心特点使整个清洁过程更加完整,清洁效果更好。我们正在验证数据清洗对最终性能的影响ms1m结果如下表所示:
表中的阈值是指类内清洗的相似度阈值,可见阈值设置过低(如0.05)噪音没有清洗干净,所以性能不是最好的;当阈值设置过高(如0.50)当噪声被清洗时,很难清洗样本,导致模型泛化能力减弱,但评估数据集性能下降。因此,选择中间阈值0.25,既清洗了大量噪声,又保留了困难样本,在各项评测指标上均达到最佳性能。此外,我们还画出了不同相似度阈值与剩余图片数的关系,如下图所示:
3.2 生成戴口罩数据
为了解决戴口罩数据不足的问题,一个可行的方案是在现有的无口罩图像上绘制口罩。但目前大部分绘制方案都属于位置贴图式,生成的戴口罩图像不够真实,缺乏灵活性。PRNet[2,3]思路,采用图像融合方案[4]获取更符合真实情况的口罩图像,如下图所示,
该方案的原理是将口罩图像和原图像通过3D分别生成重建UV Texture Map,然后借助纹理空间合成口罩图像。在数据生成过程中,我们使用了8种口罩,这意味着我们可以在现有的数据集上生成8种不同风格的口罩图像。基于UV映射方案克服了中原图像与口罩图像之间不理想的连接和变形等问题。此外,由于渲染过程的存在,戴口罩图像可以获得不同的渲染效果,如调整口罩角度和光照效果。如下图所示:
在生成口罩数据培训模型的过程中,我们发现口罩数据的比例对模型性能有不同程度的影响。因此,我们将口罩数据的比例分别设置为5%、10%、15%、20%和25%。实验结果如下表所示:
从上表可以看出,当戴口罩的数据比例为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如下图所示:
我们基于IR-SE使用基线骨干网络Zen-NAS搜索三个模型结构相关的变量:Input层层的通道数,Block层的通道数不同Block堆叠次数的限制是,搜索的骨干网络满足了各轨道的推理时间限制。有趣的发现是:Zen-NAS在ms1m小数据集赛道的性能和性能IR-SE-100几乎没有区别,但在WebFace260M这种大数据集赛道的性能将明显优于基线。原因可能是搜索空间增大后,NAS可搜索范围增加,搜索更强模型的概率增加。
3.4 损失函数
本次比赛我们采用的基线损失函数是Curricular Loss[7]在训练过程中,损失函数模拟了课程学习的思想,并按照样本从易到难的顺序进行训练。然而,由于训练数据集通常极度不平衡,流行人物包含数千张图片,而不受欢迎人物通常只包含一张图片。为了解决数据不平衡带来的长尾问题,我们将Balanced Softmax Loss[8]的思想引入Curricular Loss提出了一个新的损失函数:Balanced Curricular Loss,表达式如下图所示:
在ms1m我们在赛道上进行了比较Balanced Curricular Loss (BCL) 与原始Curricular Loss (CL) 结果如下表所示:
可以看出Balanced Curricular Loss相对于Curricular Loss,无论在Mask还是MR-ALL上述指标均有较大提高,充分证明了其有效性。
3.5 知识蒸馏
由于比赛限制了模型的推理时间,模型的加班时间将被直接取消。因此,我们使用知识蒸馏将大模型强大的表达能力传递给小模型,然后使用小模型进行推理,以满足推理时间的要求。我们在本次比赛中使用的知识蒸馏框架如下图所示:
其中,蒸馏损失最简单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的示意图如下所示:
采用Partial FC,可同时使用模型并行与数据并行,使得之前无法训练的大模型可以正常训练,另外可采用负样本采样的方式,进一步加大训练的batch size,缩短模型训练周期。
3.7 其它技巧
在整个竞赛过程中,我们先后尝试了不同数据增强、标签重构及学习率改变等策略,其中有效的策略如下图所示:
4. 竞赛结果
此次竞赛我们mind_ft队在InsightFace和WebFace260M共5个赛道中获得1个冠军(WebFace260M SFR)、1个亚军(InsightFace unconstrained)和2个季军(WebFace260M Main和InsightFace ms1m)。其中,WebFace260M赛道官方排行榜的最终结果截图如下所示:
在竞赛结束之后的Workshop中,我们受邀在全球范围内分享此次竞赛的解决方案。此外,我们在此次竞赛中投稿的论文,也被同步收录于ICCV 2021 Workshop[10]。最后,展示一下我们在此次竞赛中收获的荣誉证书:
5. EssentialMC2 介绍与开源
EssentialMC2,实体时空关系推理多媒体认知计算,是达摩院MinD-数智媒体组对于视频理解技术的一个长期研究结果沉淀的核心算法架构。核心内容包括表征学习MHRL、关系推理MECR2和开集学习MOSL3三大基础模块,三者分别对应从基础表征、关系推理和学习方法三个方面对视频理解算法框架进行优化。基于这三大基础模块,我们总结了一套适合于大规模视频理解算法研发训练的代码框架,并进行开源,开源工作中包含了组内近期发表的优秀论文和算法赛事结果。
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.
本文仅做学术分享,如有侵权,请联系删文。
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.相机模型与标定(单目+双目+鱼眼)
扫码添加小助手微信,可
也可申请加入我们的细分方向交流群,目前主要有、、、、、等微信群。
一定要备注:
▲长按加微信群或投稿
▲长按关注公众号
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题