insightface关键部分解析

参考这两篇博客:

  1. https://blog.csdn.net/u013841196/article/details/89921479

  2. https://blog.csdn.net/qq_34914551/article/details/86515184?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

Insightface:

在这里插入图片描述
Centre loss主要惩罚了深层特征与其相应的欧几里得空间类中心之间的距离,以实现类内紧凑性。
SphereFace假设在最后一个完全连接的层中的线性变换矩阵可以用角空间中的类中心来表示,并且以乘法方式惩罚深度特征与其相应的权重之间的角度。

DCNN特征和最后一个完全连接的层之间的点积等于特征和权重归一化之后的余弦距离。利用余弦函数(arc-cosine function)计算人脸特征和目标权重之间的夹角。然后,在目标角度上增加一个附加的角余量,通过余弦函数再次得到目标logit。最后,用一个固定的特征范数重新缩放所有logits,并且后续步骤与softmax loss中的步骤完全相同。

传统的softmax loss损失函数:
在这里插入图片描述
这里做了一个变换,将
在这里插入图片描述
变成了
在这里插入图片描述
就是向量内积的结果是向量各自的模相乘,在乘上向量夹角的cos值。那么向量相乘得到的结果其实就是xi对应在第j类的夹角。
然后使用L2正则化处理Wj使得||Wj||=1,L2正则化就是将Wj向量中的每个值都分别除以Wj的模,从而得到新的Wj,新的Wj的模就是1,实际上是个方向向量。再乘以一个scale参数s,这就获得了logit,再经过softmax获得probability。
在这里插入图片描述

并且将cos(θyi)用cos(θyi+m)替代,这部分是ArcFace的核心

在这里插入图片描述
—————————————————————————
那么insigface对使用了cos(m1θ+m2)的约束,如果
对于cos(m1θ+m2)+m3,其泰勒展开式
m1:(二阶约束)
在这里插入图片描述
m2:(一阶约束)
在这里插入图片描述
m3:(0阶约束)
在这里插入图片描述
对于m1、m2、m3约束能力是逐步下降的,因为m1中,m是x^2的系数,m2中,m是x的系数,m3中,m不是x的系数,调整不同的值来看效果:
在这里插入图片描述
从结果可以看出,m1、m2、m3一起约束会有比较好的效果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值