DeepID

DeepFace

主要思想

人脸识别,检测-对齐-提取-分类

假设一旦人脸完成对齐,每个面部区域位置在像素级时固定的,因此可以直接从原始像素RGB中学习;

主要贡献:

人脸识别网络DNN,便于推广;3D人脸对齐系统;

人脸对齐

基于基准点的人脸解析三维建模,利用翘曲面部裁剪得到3D正面面部;

3D对齐,使用传统的LBP直方图,设置阈值并以某一像素点为中心领域内像素点一起和阈值比较,大于阈值时就将其变为1小于阈值变为0,直方图统计各区域像素出现的次数;然后进行图片纹理化并提取对应的特征,对提取的特征使用SVR处理提取人脸及六个基本点;根据六个基本点做仿射变化,再根据3D模型得到67个面部关键点,根据这些点做三角划分最终得出对应的3D人脸。

在这里插入图片描述

a.检测到人脸和6个基本点;

b.二维对齐;LFW-a方法;

c.使用Delaunay 三角在人脸上划分出67个关键点,并在边缘处采用添加三角形方式避免不连续;

d.转化为2D平面并和原始2D进行比较时需要的标准3D人脸模型;

e.3D-2D转化,黑色部分表示不可见的三角形,对应不可见的三角形处理采用的是对称方式解决;

f.通过3D模型产生的67个基准点进行分段映射使人脸边弯曲,对人脸进行对齐处理;使用通用的三维形状模型,注册一个三维仿射摄像机,将二维裁剪平面变为一个三维图像;

g.生成2D人脸;

h.根据2D生成3D人脸,分段仿射变换来实现正面化;

2D-3D转变是拟合的一个摄像机,没有针对全透视和非刚性变形建模,为了避免网络崩溃,在每个3D参考基准点加入r中相应的残差;

仿射变换:向量空间进行一次线性变换并接上一个平移,变换成另一个向量空间;

人脸表示

采用DNN结构对对齐后的人脸进行处理,输入为3D人脸和RGB图片:

在这里插入图片描述

1、C1、M2、C3提取低级特征,简单的边缘和纹理;(前端自适应处理阶段)

由于多层pooling会导致信息丢失,包括细节面部结构和微纹理的准确位置,因此只在第一层加入max-poling;

2、L4、L5、L6是局部连接的,不共享参数,特征图的每个位置都学习一组不同的过滤器;每一个局部连接层的输出单元都会收到一个非常大的输入patch影响;

不共享是因为不同区域有不同的统计特性,因此卷积的空间平稳性假设不成立;

空间平稳性:特征无论在图像中哪个位置,卷积核都能检测到,并且池化返回感受野中的最大值,最大值移动但仍在这个感受野中,那么池化层也会输出相同的最大值;

3、F7全连接层,softmax分类层;将每个输出单元的特征抓取,即使是人脸图像相聚较远的部分;

实验细节

最小化每个训练样本的交叉熵损失,最大限度提高分类概率;

网络产生的特征非常稀疏,ReLU在每一级都有;

学习一个无监督度量,可以泛化到其他数据集;

DeepID1

主要思想

从输入人脸中扣除一些face patches,然后把这些patch输入同一个结构不同参数的ConvNet中提取160维DeepID特征,然后把这些DeepID特征联合起来就是整张人脸的特征,将整张脸的特征送入分类器就可以作人脸验证了;

在这里插入图片描述

通过face identification来学习深度模型的高级人脸身份特征DeepID,通过少量隐藏变量表示大量不同身份,获得高度紧凑和有判别度的特征;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RetCubqu-1655803674901)(image-20220620171320937.png)]

实验结论

1、使用多个patch比只有整张人脸效果要好

DeepID2-2014

主要思想

通过从不同身份中提取的DeepID2,face indentification扩大不同人之间的差距;通过从同一个人提取到的DeepID2,face verification缩小同一个人的差距;

人脸识别是分类任务,人脸验证时判断两张图片是否时同一个人;

训练网络时,同时使用了分类损失信号和验证损失信号两种信号来监督训练,DeepID1只用分类信号判别;

由于不同的DeepId2可以通过函数g映射到相同的身份,识别信号对从相同身份中提取的DeepID2的约束相对较弱;所以针对出现不同的人时,g不再适用;因此需要同一个人提取的DeepID2向量距离很近,而不同人的DeepID2相差很远;这就是验证损失信号的作用;

人脸识别损失

f是DeepID2向量,t是目标类,Oid是softmax 层参数,pi是目标概率分布,p^是预测的概率分布;

在这里插入图片描述

人脸验证损失

使用L2 norm,fi、fj是两张人脸的DeepID2向量,yij=1表示fi fj属于同一张人脸,反之;不同人脸向量之间的距离要大于边界值m;Ove是损失函数中学到的常量;

在这里插入图片描述

使用L1 norm,d表示fi fj余弦距离,Ove={w,b}是学习得到的缩放平移参数;

在这里插入图片描述

在这里插入图片描述

整体算法

学习过程中O都需要,但测试只用到Oc提取特征;

在这里插入图片描述

网络结构

四层卷积,前三层卷积后都有一层max pooling,第三层卷积在2*2本地共享权值(?),第四层是完全不共享;越后的网络层提取越多全局特征;

DeepID2层与第三层和第四层卷积全连接,输入多尺度特征;

ReLU在每一层卷积和DeepID2层后都有(?);

在这里插入图片描述

实验细节

使用SDM算法作人脸对齐,有21个人脸标点;

将人脸图像裁剪成400个patch;

为了减少DeepID2大量特征之间的冗余,使用正向-反向贪婪算法选择少量有效互补的DeepID2向量,节省特征提取时间;(最后选择25个160维DeepID2 向量)

使用二分贝叶斯模型作人脸验证;

实验结论

1、人脸验证及人脸识别损失都有用;0.05时最有效;

2、越多的人脸数据有利于得到有效的DeepID2;

3、人脸验证损失主要减少相同人脸向量之间的方差;在识别信号之外添加验证信号时,人脸验证准确性一般都会提高;

DeepID2+

主要思想

在DeepID2基础上,增加网络中间层的维度和对浅层卷积增加监督训练的方法;

这篇文章主要是解释神经网络为什么会有这种功能;

网络神经元输出有适度的稀疏性(不同人有不同活跃的神经元子集,单个神经元对特定的身份或属性具有较高的识别精度),适度的稀疏性有助于最大化输出特征的辨别力,甚至在二值化后,网络的输出还能保证良好的识别精度;

高层神经元对个体相关的属性比较敏感,对于同一个人的人脸来说,总有一些特定的高层神经元输出要么一直处于激活状态,要么一直处于抑制状态;

虽然没有训练遮挡,但是对遮挡鲁棒性很强;推测原因是高层神经元捕获全局特征,对局部变化不太敏感;

网络结构

相较于DeepID2,DeepID2+在四个卷积层中每一层都有128个特征映射,最后的特征表示由160维变为512维;训练数据集变大了;将原来的160维链接第三层和第四层变成512维连接所有卷积层;

训练针对FC-n层,Dropout=0.5

通过阈值化方法将神经元激活转换为二进制编码,与贝叶斯相比,牺牲也很少1%;神经元的激活和一直已经包含了大量的判别信息,二进制编码存储空间少、搜索很快;
DeepID2+

实验结论

1、确实能找到对几个特点兴奋的神经元,例如性别种族;LBP对特征响应就没有这么明显;

2、连接层越多,对于遮挡的识别效果就越好;眼睛被遮挡/遮挡超过50%后影响很大;

DeepID3

主要思想

提出两种网络结构,网络深度加深,出现连续两个conv layer直接两联的情况,使网络具有更大的receptive fields和更复杂的nonlinearity,同时还能限制参数的数量;
受到VGG和GoogleNet的启发,增加网络的深度,性能确实变好;
在这里插入图片描述

实验发现:
1、左边的性能要更好一点;

2、LFW中有三对错误的标签,改过来之后发现DeepID3没有得到提高,可能是因为DeepID2已经做到极致了,需要更大的数据集来验证;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小橘AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值