两张图片怎么分辨是一个人,两张图片怎么辨别是不是一个人

首页 > 实用技巧 > 作者:YD1662024-02-26 18:06:11

利用神经网络学习高度抽象的人脸特征,然后将特征表示为特征向量,通过比较特征向量之间的欧式距离来判定两张照片是否是同一个人

9人脸特征提取-深度学习法

两张图片怎么分辨是一个人,两张图片怎么辨别是不是一个人(9)

总体思路是把人脸识别人物当分类任务来训练,通过在损失函数上施加约束,让相同的人的照片提取的特征距离尽可能近,不是同一个人的照片的提取的特征距离尽可能的远

第一个Logit的地方输出的是人脸的特征向量,一般是128维或者512维,浮点向量。这个Logit前面是CNN分类网络,这个Logit后面的部分是通过在损失函数上施加约束来训练模型,让模型区分相同的人和不同的人,后面的部分只需要在训练阶段计算,推理阶段是不需要的。

10 人脸特征提取-Metric Learning

基于深度学习的人脸特征提取方法主要有两类,一类Metric Learning,另一个是Additive Margin,这两类方法的底层原理都是一样的,就是“通过训练网络,让相同人的特征距离尽可能近,不同人的特征距离尽可能的远”。

两张图片怎么分辨是一个人,两张图片怎么辨别是不是一个人(10)

孪生网络和Triplet都属于 Metric Learning这类方法。左边孪生网络顾名思义,就是有两个网络,一个网络训练让相同的人之间的距离尽可能的近,另一个网络让不同人之间的距离尽可能远。

右边Triplet网络是对孪生网络的改进,将样本组织为锚点、正样本、负样本的元组,通过训练网络让锚点与正样本之间的距离尽可能的近,锚点与负样本之间的距离尽可能的远,并且至少远于一个阀值阿尔法。

11 人脸特征提取-Additive Margin

Additive Margin这类方法主要是在分类模型的基础,通过控制损失函数来达到“让相同人的特征距离尽可能近,让不同人的特征距离尽可能远”的目标。

前面介绍的Metric Learning的方法最大的问题在于:需要重新组织样本,模型最终能否收敛很大程度上取决于采样是不是合理。基于Additive Margin的方法则不需要这一步,完全将人脸特征提取当做分类任务来训练,参数的设置也不需要太多trick,Additive Margin的方法大都是在损失函数上做文章。

两张图片怎么分辨是一个人,两张图片怎么辨别是不是一个人(11)

最近几年,这个类方法研究的比较多,上面这个图中的softmax,Sphereface,Cosface,ArcFace都是Additive Margin方法,可以看出它都是通过改进损失函数,来实现“让相同人的特征距离尽可能近,让不同人的特征距离尽可能远”这个目标

上面这个图中,颜色相同的点表示一个人,不同的点表示不同的人,这个图的展示比较形象,可以看出最后一个超球体的效果非常不错

Additive Margin正在成为主流, InsightFace也属于这一类,损失函数正是这个ArcFace。

大家可用思考一下,为什么分类方法不能直接用于人脸识别?这里不做详细讨论了。

12 人脸特征提取-效果评估

我们再来看一下怎样评估人脸特征提取算法的效果。

两张图片怎么分辨是一个人,两张图片怎么辨别是不是一个人(12)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.