作者 | 张德兵,格灵深瞳首席科学家&算法部负责人
来源 | 转载自知乎张德兵
最近两个月,格灵深瞳首席科学家&算法部负责人张德兵与算法团队参加了全球人脸识别算法测试(FRVT、Face Recognition Vendor Test)。虽然是第一次参加此比赛,格灵深瞳还是取得了不错的成绩,排名世界前五,在国内领先,且具体的成绩接近世界最好水平(见表一)。
赛后,张德兵回忆了竞赛的准备过程并记录下来,希望激励团队在不久的将来能够更上一层楼,以下为参赛记录:
表一:FRVT 1:1 最新排名的前20名(基于第四列的跨14岁嫌疑人识别结果排序)
先介绍一下 FRVT。FRVT 由美国国家标准与技术研究院主办,号称是当今全球规模最大、标准最严、竞争最激烈、最权威的人脸识别算法竞赛,到目前为止,全球已经有近百家公司和研究机构参与了此项测试,包括VisionLabs(俄罗斯)、Ever AI(美国)、Vocord(俄罗斯)、 依图、商汤、旷视、海康、大华、腾讯等等。关于这个比赛,网上也能找到很多介绍,我大概总结一下我觉得比较重要的几个点:
图一,签证照片,嫌疑人照片和自然场景的拍摄照片
FRVT对以上每种场景都会进行单独的评测,然后给出一个最终的排名表。在早期的排名表中,是以签证照片识别结果的优劣对大家进行排名的,最近几次的评测则改成了以跨年龄嫌疑人照片的识别结果优劣进行排名。我个人认为,所有这些场景都是挺重要的,在实际应用中都会用到,都不能有短板。且随着人脸识别技术的不断提升,非配合式的自然场景识别肯定是未来需求的大趋势,只有真正做好非配合且无场景限制下的识别才能支持解锁更多的、更广泛的、更大规模的各行各业应用。
比赛前:
一直以来,我们对于刷LFW或者MegaFace之类数据集的就没有太大的兴趣,因为大家都知道,这里面的各种排名其实也都有不公平或者不合理的地方。FRVT则非常专业(看看它上百页的测试报告也能感觉到这一点)。但是对于FRVT竞赛,我个人一直下意识的认为Visa签证照片涉及到了上百个国家的人脸照片,如果没有类似的数据做训练,结果应该很难能做到非常好。而收集相关数据又挑战巨大。
首先想收集覆盖这么多国家的人脸数据已经是非常困难了;其次, 就算收集到一些数据,跟签证的场景也会差别很大;且经过一些尝试后发现,在现阶段,想大量采集签证场景的真实数据几乎是不可能的。另外,当看到以往成绩较好的一些厂商的结果后,在团队自己内部制作的中国人测试集上对比估算了一下,也发现我们在低误识率下的召回率还是明显要差一些,所以就一直没有尝试。
直到4月份的某一天,当我看到ArcFace在NIST上表现是超出预期的好(github.com/deepinsight/),我才突然意识到,FRVT对于我们的难度很可能被高估了。有了ArcFace这个baseline,感觉就踏实了很多。我个人猜测排名靠前的厂商也不一定真有多少能覆盖到众多国家的签证数据,大家可能更多的还是在用一些开源数据和自己的业务数据来训练的。
同时我们也注意到了大部分厂商其实还并不能在每个任务上都得到很好的结果,有明显的domain差异带来的识别率下降,所以也能多少猜出来一些可能用了什么样的数据之类的信息。
比赛中:
既然如此,那必须要试一下了。
首先仿照ArcFace在开源数据上做一些baseline的模型出来作为参照。这里要强调一下,丰富的测试集对于衡量模型效果是非常必要的。在平时的产品研发中,我们已经积累了大量的多场景测试集,可以测试到非常低的误识别率(我们也发布过一个人脸测试平台,支持接近万亿分之一低误识率且非常高效率的在线模型评测,trillionpairs.deepglint.com,该测试平台也支持了ICCV 2019 的人脸识别 workshop 竞赛 insightface-challenge.com)
接下来就是把长期以来产品研发中积累下来的模型结构设计经验,分布式模型训练经验,数据集融合经验和CPU平台上的高效inference经验快速移植到官方指定的测试环境下。
在这个过程中,我们根据以往的经验,在这个特定比赛任务上,不断的试验各种模型优化策略、数据集融合策略,也包括调整和尝试各种模型结构、超参数、迭代次数、损失函数等等。因为要试验验证的细节非常多,我们先以很高优先级,走通了基于fp16的训练方式,使得训练速度提升了几乎一倍。
这段时间在印象里是过得飞快,但大家都非常兴奋,因为高效率的试验使得我们几乎每隔几天就能看到新的提高。但时间总是很有限,在我们迭代了几十个模型后,就已经六月初,临近比赛结束了。虽然感觉还有很多的想法没有试验完,但是也没办法,差不多就打算选个最好的模型提交了。当时根据我们的自测,结果还凑合,按照ArcFace之前成绩的估算,应该大概率能进入前五名(按FRVT 4月份的成绩)。
之后恰好是CVPR 2019的会议时间(6.15-6.21),FRVT相关的一切基本准备就绪后(只差最后的确认提交),我就带着几个瞳学去了Long Beach,去了解最新的学术动态去了。没想到还没等到开会,就收到了小伙伴新的消息,在半精度模型训练的过程中,发现了一处隐藏的bug,在复杂Loss和数据源的情况下会造成模型训练的不稳定。于是,中美两地开始不分白天黑夜的紧急修改(倒也省得倒时差了),一阵忙活之后,又看到了非常显著的提升,那种感觉是非常不错的。
之后就按照官方要求进行了最终的邮件提交,之后就一直没有什么信息了,直到7.3号,比赛结果出来,看到三项的结果都超过了依图。如果按照4月份的排名,这个成绩基本上能跟当时的VisionLabs并列第一。不过因为VisionLabs也有了小幅提升,然后又冒出来一个成绩还挺不错的Ever AI,所以我们在7.3号最新的榜单里是世界第三名(按公司来看) 或者世界第四名(按模型提交数来看)。只看国内的话,是顺利的暂列第一了(大部分任务都超过了友商,当然在签证照片上还逊色依图,在儿童照片上比旷世差一点)。
我觉得我们有一个比较大的优势是在所有任务上表现都相对比较一致,不像大部分友商的提交,会在某些场景表现得比较差,似乎是出现了一些domain的偏向性,这在实际应用中,有可能会遇到一些问题。仔细看一下结果我们会发现,在这方面Ever AI其实做得更加优秀,非常值得我们学习。
最后再做一个总结吧,简单分三个方面:
一:感谢
二:不足
三:未来
人脸识别在真实场景的应用效果,其实远不是一个比赛能够完全衡量的。人脸识别发展到现在,也包括基于人脸识别而衍生出来的行人ReID等以图搜图技术,其实离真正解决工业界大规模的应用都还有不小的距离,万路、十万路、乃至百万路的刚需,仍在前面等着我们去不断优化和探索。
当然,因为涉及到公司内部的很多研发细节,这里无法更加详细的介绍具体技术,但我们非常期待对相关技术有浓厚兴趣、有独特想法、有很强执行力的朋友加入我们,你将有机会了解到所有的技术细节,并与我们一起进一步推进相关研究,做更多有意义的事情。另外,本文的很多内容都是我个人的一些理解和分析,应邀匆忙整理了一下,有些疏漏或者错误也是难免的,如有发现,欢迎指出。
格灵深瞳算法团队:格灵深瞳核心团队,负责公司所有产品线的各类不同算法的支持(安防、零售、智能相机、机器人等等,检测、跟踪、识别、检索、商品推荐、数据挖掘、定位和导航等)。同时关注前沿算法研发和踏实的产品落地,拥有大规模的业务数据积累。
作者介绍:
张德兵,格灵深瞳首席科学家和算法部负责人。发表学术论文多篇,并多次担任NIPS、ICML、ICLR、CVPR、ICCV、ECCV、AAAI 和 IJCAI 等学术会议审稿人,推动了深度学习和机器学习技术落地。
原文链接: https://zhuanlan.zhihu.com/p/72518307
(*本文为 AI科技大本营转载文章,转载请联系原作者)