论文链接:http://www.robots.ox.ac.uk/~vgg/publications/2015/Parkhi15/parkhi15.pdf
两个目标:
-
制作大量的人脸识别数据集(超过2百万),只需要极少数人力
-
探索用于人脸识别和验证的不同网络结构,包括探索人脸对齐,度量学习,使用新的数据集训练。结果是,得到了一个更简单和高效的网络,并收获了接近SOTA结果。
数据集搜集:自动化+人工组合->制作数据集
网络训练:
-
先作为一个分类任务,训练。然后分类层移除,网络输出可以作为身份验证的score,通过欧几里得距离来比较他们。通过在欧几里得空间的triple loss的训练任务,可显著提升效果。分类任务使训练容易和快。
-
通过triple loss学习人脸嵌入特征:
将(1)训练得到的输出 ,L2归一化投影到一个D维超球面空间:
-
是投影操作,是训练中最小化经验triple loss学习的参数,注意,该层训练没有bias。
-
,是任意size的嵌入特征描述(文中设置L=1024)
Training:
A、B、C三个网络:
A:分类,最后一层FC输出为2622/1024。
2622:softmax N维分类
1024:triplet loss L维度量嵌入
B:增加2层conv
C:增加5层conv
A从头训,B C 在A的基础上添加额外FC层,随机初始化,继续训练。
在学习嵌入时,除最后一层FC用于识别投影训练,其余层冻结。
Testing:
计算嵌入描述 之间的欧几里何距离用于人脸验证。距离低于设定阈值,则认为是同一个人。这个阈值不是由上述的训练程序提供的,而是单独学习,以最大限度地提高验证准确性