⽬录
自动充电电动车
前⾔
需要的基础:了解深度学习分类器原理。
主题:以深度学习中的ArcFace算法为案例,获得对度量学习领域举⼀反三的领悟。
1 度量学习简介
度量学习(Metric Learning)通俗的说就是相似度学习。例如,如果要计算两张⼈脸图⽚的相似度,如何度量图⽚之间的相似度,并使得不同⼈的⼈脸图⽚相似度⼩⽽相同⼈的⼈脸图⽚相似度⼤就是度量学习的⽬标。 综上,以⼈脸识别(不是⼈脸检测)为例⼦,⽤程序和算法实现此功能,要解决3个问题:
1. ⽤什么东西作为某⼀个⼈的⼈脸的特征基准?
1. 答案:因为不同的拍摄视⾓、不同的表情、不同的光照、不同阶段的年龄等都会导致⼈脸形态和细节ip调度系统
发⽣较⼤变化,所以,⽤⼀
张标准⼈脸图像并不能作为某个⼈的特征基准。在ARCFace算法中,⽤⼀个⾼维度向量(如1x512)来定义和存储他的⼈脸信息。类似于DNA这种编码⽅式能够存储⼈类的形态和细节差异。当然,这种建模解决问题⽅式,肯定让⼈还有很多疑问,这⾥不细究,它只是当前科技发展中实践出来的SOTA⽅法⽽已。
2. 如何获得这种特征基准?
1. 答案:卷积神经⽹络能够提取图像的特征,既然如此,我们就可以⽤⼤量带标注的训练样本,外加误差度量公式,以及损失函
数,去训练这个神经⽹络特征提取器把单个⼈的所有⼈脸图像转换成⽤⼀个特征向量去表⽰。 3. 有了基准,怎么计算相似度值?
1. 答案:最简单的度量⽅法,就是计算特征向量每⼀维度距离差的平⽅和。
2 ARCFace介绍
bbzs
3 实际应⽤时的探讨
探讨1:类似于⼈脸识别这样的应⽤,从0到落地应⽤的⼤概流程是怎样的?
1. 案例假设:假设为⼀个⼩区或⼀个公司搭建⼀个⼈脸识别门禁系统。
2. 第1步——训练⼈脸特征提取器:使⽤开源⼈脸数据集,基于ARCFace这样的度量学习算法,训练好⼀个特征提取器(如resnet,输⼊⼀张⼈脸图,输出512维度特征向量)。
3. 第2步——建库:⼩区所有⽤户提供1张或多张⼈脸相⽚,把每个⼈的相⽚输⼊特征提取器,转换成⼀个512维度的向量,把这个特征向量存储在数据库中,与⼈员信息绑定,作为这个⼈的基准特征向量。
4. 第3步——使⽤:建好库后,后续这个⽤户刷脸门禁时,图像会送⼊ARCFace算法,提取成⼀个512维度的特征向量,然后这个特征向量会和系统⼈脸数据库中所有⽤户的基准⼈脸特征向量进⾏度量(使⽤矩阵计算,哪怕是千万级⽤户,普通电脑也可在0.1秒内度量计算完毕)。如果发现与⼈脸数据库中某个⼈的相似度值超过阈值(这个阈值的选择,也是⼯程应⽤的关键),即表⽰此刻刷脸的⼈,就是⼩区⽤户。
探讨2:怎么评估这个特征提取器⽹络训练好了?
电石发气量
绿豆肽1. 要满⾜两个条件:
1. 第⼀:同⼀个⼈的不同照⽚输⼊特征提取器⽹络,得到的特征向量,通过距离度量公式,它们的距离差很⼩。
2. 第⼆:不同⼈的照⽚输⼊特征提取器⽹络,得到的特征向量,通过距离度量公式,它们的距离差很⼤。
探讨3:为什么卷积输出特征图或全连接层的输出结果能代表某⼀个类的信息?
探讨4:如何评估模型或项⽬效果?
以XXX度量为案例,流程如下:
备注:
train集和val集由103⼈构成,每个⼈⼤概⼏千张XXX图像。
女儿墙泛水
第104号、105号⼈数据不参与模型的训练,⼤概⼏⼗张XXX图像。