ArcFace在论文CVPR2019的论文《Arcface: Additive angular margin loss for deep face recognition》中提出,ArcFace是针对人脸识别的一种损失函数。本文对ArcFace进行简单的介绍。

ArcFace是对传统softmax的改进,先看传统的softmax:

【华为云技术分享】ArcFace简介_华为云

为了方便表示,下面将b_j设置为0。另外,【华为云技术分享】ArcFace简介_华为云_02,这里theta_j是W_j和x_i之间的夹角。通过归一化,将W_j和x_i的模固定为1,并添加上缩放因子s,则上面的损失可以变为:

【华为云技术分享】ArcFace简介_华为云_03

另外,为了使类内对象紧致,类间对象分离,加上角度的margin m,则得到ArcFace的最终形式:

【华为云技术分享】ArcFace简介_华为云_04

论文中给出的伪码如下:

【华为云技术分享】ArcFace简介_华为云_05

作者:冰糖柠萌