人脸识别系统
应用:
一人脸确认
1V1确认是否是一个人
二人脸ID
1VN 大库里找到输入图片是谁
人脸->特征向量
想让不同的向量拥有“相似度”概念
类内距离;类间距离
单张图经过人脸识别的pipeline
人脸检测
人脸关键点定位Landmark
人脸对齐Alignment(用来降低人脸几何形变,降低识别系统的复杂度)
人脸识别(得到特征向量)
要有这么一个函数
图像空间->特征空间的映射,相似度超过一个距离阈值
TAR: N次自己和自己比较,通过的概率
FAR:其他人和自己比较,成功解锁的概率
第二类身份确认场景中
Top-K命中率(不需阈值,只要相对关系对就行)
2000年,手工类 LBP等 , 勉强可以半配合式;
中间流程较长,不够鲁棒80~90%
2013年之后,效果极大提高98%~99%
2014DeepFace
2014DeepID
原理:在大数据上训分类网络,在没见过的人脸也出现较好的效果
全局分类器
Google的2015FaceNet
同一个人类内距离近,不同类间距离远
使用Triplet Loss
使用Anchor Negative Positive三元组来训练
每次只训练局部
(对于每个人图片不多的情况,效果比简单的分类器效果提升快)
2017 SphereFace
改进基于多分类的识别系统。分类网络那个路线。
改进 Large margin softmax
二分类中不能只以左右半球部分划分,而是约束训练数据,训练集中到一个小区域。那么对未见过的人脸识别也会好。
提升比较明显,且方法比较鲁棒
2018 CosFace
分类网络那个路线。对Large Margin 提升,但不在角度上,而是在cos值
训练更稳定;避开了直接训角度的周期性
2019CVPR ArcFace
分类网络那个路线。对角度不是乘法的约束,而是加法的约束,比2017那个训练稳定,效果较好。
2016 NPairLoss
两两图片都可以形成一个Pair,更高效的使用一个batch里面的数据,
On个batch可以产生了N方个loss 提高了学习效率
local learning本身噪声角度,NPair Loss之后,N个负样本的梯度对这个anchor的噪声会降低。(1V1噪声较大)
2018 ECCV GridFace
修正几何形变
产业界的挑战:
1不同手机传感器生成图像,成像质量千差百怪。如何得到对数据以来低一些的网络。
2低功耗,离线跑(FPGA)
3数据标注(人工匹配准确度很差,低于模型)
4现实生活中FAR要1e-8,意味着5e10乘1e-8则一天500个错误
5距离不对齐挑战(有人的特征聚集的好有的人不好,阈值的话某些个体误报率会很高)
如果能知道人脸特征分布的密度,那么可以在密度高的地方可以拉开一些,这样每个人方差就会小很多
利用未标注的大量数据,看成与训练集同源,对距离进行一个修正
对任意两张图像都做一个距离修正。把两个距离修正通过超参组合起来
代码较简单,对图像Q , P
按照预定阈值
理论分析:对任意误报率进行距离修正,在其他误报率也会有修正效果
误报率在每个人上波动很大,灰色部分
修正之后变成橙色的部分
其他数据集上也有提升效果,可以作为通用实际应用场景的后处理,进行方差的降低,提高准确率的性能
计算摄影
我们的图片在被拍摄出来时就已经经过图像传感器的计算才得到的。