一、概述
接触过人脸识别的应该没有谁不知道这篇文章的。文章设计了一种新的Loss方式,提高人脸识别的准确度。
Snipaste_2020-05-12_15-26-45.jpg
二、Loss介绍
Snipaste_2020-05-12_16-52-38.jpg这个Loss中N表示的是样本数,也就是每次迭代训练的时候输入图片的总数,就等于当个GPU训练时候的BatchSize大小。S是一个常量,论文中提到设置该值的大小为64。设置这个常量的原因是因为尺度归一化之后w*x的值得范围[-1,1],值太小了,反向求导的时候没办法收敛。具体的解释可以参考NormFace。m就是margin了。那么这个Loss为什么可以work呢?要想loss变小,那就只能log值增大。log值增大的前提是
image.png
变大,根据余弦函数性质就需要角度要变小,加了margin之后角度还要更小。这样就可以让特征更加的紧凑。特征紧凑了同一个人的不同人脸之间的角度就近了,相似度就高了。不同人的人脸之间的角度就远了,相似度也就低了。
三、总结
论文中做了很多的实验和对比,得出的结论就是仅仅使用arcface就可以取得很不错的效果。个人觉得人脸识别这块还是数据第一、网络结构第二、Loss第三。
网友评论