原文地址:https://arxiv.org/pdf/1902.07327.pdf
这是一篇2019的cvpr paper,在视频人脸识别中,输入一组图片,输出的单个特征向量。主要是增加了一个聚合模块,用来学习component feature的质量。在feature的前一层,同时输出feature和quality信息,以提高后续metric learning的精度。
摘要
我们提出了一种新的视频人脸识别方法。我们的分量特征聚合网络(C-FAN)接受对象的一组面部图像作为输入,并输出单个特征向量作为用于识别任务的集合的面部表示。整个网络分两步进行训练:(i)训练基本CNN进行静止图像人脸识别; (ii)将聚合模块添加到基础网络以学习每个特征组件的质量值,其自适应地将深特征向量聚合成单个向量以表示视频中的面部。 C-FAN自动学习保留具有高质量分数的显着面部特征,同时抑制具有低质量分数的特征。三个基准数据集,YouTube Faces [39],IJB-A [13]和IJB-S [12]的实验结果表明,所提出的C-FAN网络能够为视频生成512维的紧凑特征向量通过有效地聚合所有视频帧的特征向量来实现现有技术的性能。
Contributions
- 分量特征聚合网络(C-FAN),分别聚合深特征向量的每个分量,从而更好地表示视频人脸识别。
- 由C-FAN预测的质量分数与视觉图像质量相关。
- 我们在监控基准IJB-S [12]和其他两个面部识别基准,YouTube Faces [39]和IJB-A [13]上实现了最先进的性能。
想法来源
在视频识别时,有很多图片是好事,但是很多大的pose和blur也会造成数据的noise,影响识别性能。
因此一个非常重要的问题就是如何把视频帧中丰富信息聚合起来。
一个很直接的方法就是average pooling,把feature们取平均。多张图片就是如下形式
但是呢,当图片数量N不足够大的时候,上面的式子就不再成立了。
因此,有人提出了weight scalar的方式,如下所示
但是呢,人脸中不同的component包含不同数量的id信息,而且他们的noise之间是弱相关的。此时w的引入就又不能支持了,因此作者提出给每个component都加,如下
网络框架
文章的整体网络框架如图所示,输入的image template是同一个人的一组不同图像。经过一个CNN结构。
这里有一个trick是利用feature的前一层,分为两路处理,一路做特征提取,得到fi;另外一路做特征聚合,得到qi,在做一次softmax。得到wij如下
作者利用last feature的前一层是为了包含更多的信息。
然后将fi和wij做内积得到最终的representation
Aggregation Module
作者主要就是加了这个模块,很简单却很实用。这个层是由一个BN层加一个FC层构成。用来学习如何聚合feature,其损失函数是一个triplet loss
实验结果
看作者的实验效果,还是非常work的