DeepID2文章加深理解
来源:互联网 发布:知柏地黄丸主治什么 编辑:程序博客网 时间:2024/03/29 14:51
Deep Learning Face Representation by Joint
Identification-Verification(DeepID2)
简介:人脸识别的关键是建立有效的特征表达,关键减小同一个人照片之间的差异(类内差异),同时增大不同人照片之间的差异(类间差异)。本文提出同时使用人脸识别信号和人脸验证信号作为监督信号。人脸识别通过DeepID2提取不同人脸的特征,增大类间差异;人脸验证通过DeepID2提取相同人脸的特征,减小类内差异。LFW的检测率为99.15%,相比较于DeepID1,误码率减少了67%。
背景:在人脸识别时,由于姿态、光照、表情、年龄、遮挡等原因,程序会将同一个人的多张图片识别为不同的人,这大大提升了人脸识别的难度。因此需要减小类内差异,增大类间差异。研究表明,类内差异与类间差异是复杂的、高度非线性,因此不能用简单的线性模型来描述它。
人脸识别(IDentification):输入一张图片,从大量的身份类别中找到该图的身份。
人脸验证(Verification):比较两张人脸图片的身份是否相同。
训练阶段,给予带有标签的人脸图像,在DeepID层提取特征,映射到其中一个身份上。测试阶段,DeepID2特征可被用于人脸验证。人脸识别信号可以将不同身份的DeepID2特征分开,拥有非常强的身份关联性与类间差异;人脸验证信号可以克服人脸识别信号的缺点,它可以使相同身份提取的DeepID2特征更加接近,而不同身份提取的特征远离,对DeepID2每个元素的强有力约束也有利于减少类内差异。
DeepID一代与二代的网络结构对比:
DeepID网络结构:
DeepID2网络结构:
DeepID2特点:
第三层卷积层:权值局部共享
第四层卷积层(局部连接层):注意,说明卷积采用局部连接,没有用到全部60张特征图,卷积的权值也是完全不共享
DeepID层:同时对Max-pooling layer3和Convolutional layer4全连接
激活函数采用:ReLU
公示表达:
①、DeepID2特征提取(卷积):,是输入的patch,是等待训练的卷积参数。
②、人脸识别信号通过DeepID层的n维softmax层来实现,输出是n维的概率分布。通过最小化交叉熵损失函数(the cross-entropy loss)来训练。
是之前提取的DeepID2特征;是目标的身份类;是softmax层的参数;是目标概率分布();是预测概率分布。
③、人脸验证信号使得相同身份图像提取的DeepID身份更加相似,有效减小类内差异。人脸验证信号常用的是L1/L2范数和余弦相似度。
基于L2范数的验证函数:
和是从两张图片中提取的DeepID2向量;当时,说明和来自于同一身份,此时我们需要最小化两个DeepID2向量的L2距离。当则是不同身份,尽可能的让两个向量之间的距大于阈值;是待学习的阈值参数。
基于L1范数的验证函数(摘自另外一篇文章):
基于余弦相似度的验证函数:
其中是余弦相似度;是待学习的参数,分别表示缩放参数和位移参数;是sigmoid函数;判断是否为同一人。
我们的目的是为了学习中的参数,参数、、的更新通过随机梯度下降法,但是参数除外,因为其导数永远大于0,参数通过训练期间寻求样本的最低验证误差来调整。
算法:
目的是通过调整参数、、来求得误差函数的最小值。
算法验证:
1、使用SDM算法得到21个人脸标记,通过相似度变换进行人脸校准。
2、把一张图通过改变角度姿势、patch大小、颜色通道处理后,裁剪得到200个面部patches。
3、用200个深度卷积网络对这200张patches以及其水平旋转图进行特征提取,每个卷积网络生成2个160维DeepID2向量。
4、为了减少冗余并且加快训练速度,使用“前向后向贪心算法”筛选出25个有效且互补的DeepID2,形成25*160=4000维的DeepID2向量,最后通过PCA降到180维。
5、用提取的DeepID2训练联合贝叶斯模型,通过两张人脸图像的联合概率来判断是否属于同一个人。联合贝叶斯模型可表示为,表示类间差异,表示类内差异,都符合高斯分布,且由训练数据估算得到。人脸验证通过对数似然比实现。
实验操作:
1、扩大CelebFaces数据库,使用CelebFaces+数据库训练,包含202599张图和10177个身份。
2、随机选取8192个身份,标记为CelebFaces+A,用于训练DeepID2;剩下的1985个身份,标记为CelebFaces+B,用于特征选取和训练联合贝叶斯模型。
3、当CelebFaces+A训练DeepID2时,CelebFaces+B被用作验证集,并决定学习速率、训练迭代次数和超参数。
4、CelebFaces+B分出1485用于训练集,500用于验证集以进行特征选取。
5、最后使用整个CelebFaces+B来训练联合贝叶斯模型,并且使用筛选后的DeepID2特征来对LFW数据集进行测试。
具体细节:
1、调查超参数的作用:
①、,验证信号消失,只有识别信号;增加,验证信号逐渐主导训练过程;,只有验证信号。
②、由下图可得,当在0.05周围时,验证信号精确度最高。
③、用LDA(主题模型算法)来解释上述现象:
类间散射矩阵:
其中是第i个身份的所有图像特征均值,是整个数据集的图像特征均值,是第i个身份的图像数量(一共有个人,每个人的图片数量都不同)。
类内散射矩阵:
其中是第i个身份的特征集合,是第i个身份的特征均值,是不同身份的数量。
注意:类内/类间变量的方差是对应散射矩阵的特征值
④、方差分析:
当,特征包含类内、类间差异。其中类间差异有利于区分不同身份,但是数量级较大的类内差异则属于噪声,干扰人脸识别与验证
当,类间差异的多样性保持不变,与红色曲线相比,绿色在某些维度上方差更大;但类内差异无论在大小还是多样性上都大大减小,更有利于人脸识别验证
当,由于没有了识别信号,特征的多样性将会消失,区分不同身份会变的困难。因此类内、类间差异只存在于低纬度,性能大大降低。
⑤、PCA降维分析:
通过PCA降至二维,数据来源于LFW六个人的大量人脸图像。当,即使各个群落的中心分开的较为明显,但是由于类内差异太大,导致不同群落的点混合,难以区分;当,类内差异明显减小,群落可以被区分;当,由于识别信号消失,群落的中心点崩溃,导致各个群落明显重叠,难以区分。
2、考察信息量的影响:
训练过程,身份识别的对象从32到8192以指数增长,人脸验证由8192个训练样本生成。增加的样本数量生成了更为丰富的身份信息,有利于DeepID2形成不同的类间差异,有助于不同身份的区分。
3、调查验证向量:
为了调查验证信号是否能够减少类内差异,进行三组实验:第一组给所有样本对加上基于L2范数的验证信号,记为L2;第二组只给正样本对(属于同一个人)加上验证信号,记为L2+;第三组只给负样本对(不属于同一个人)加上验证信号,记为L2-。并在测试集上观察DeepID2的人脸验证精确度。
结论:L2+只减少了同一个人的两张图片的DeepID2距离(缩小了类内差异),L2-只增加了极为相似的两个人图片的DeepID2距离(增加了类间差异)。因此可以证明验证信号有效地减小类内差异。并且相比之下,L2的验证效果最好。
4、系统流程和方法对比:
系统流程:
a、一张人脸图片筛选patches,进行DeepID2特征提取。
b、通过交叉验证(cross-validation)选取合适的维度,进行PCA降维。
c、在整个CelebFaces+B中训练联合贝叶斯模型,并用LFW中6000个样本对来测试。
d、通过联合贝叶斯模型得到极大似然比,与阈值作对比以用于人脸验证。
e、重复特征提取七次,每次选取的样本相互独立,分别训练七个联合贝叶斯模型。
f、用这七个联合贝叶斯模型对每一个样本对进行测试,再用SVM融合七个模型的测试
结果,最后实现了99.15%的精确度。
Patches与精确度、时间的关系:
方法对比:
- DeepID2文章加深理解
- DeepID2文章加深理解
- deepID2
- hdu4034floyd加深理解
- sql 语言理解加深
- synchronized 关键字 加深理解
- Visitor模式加深理解
- 加深理解BroadcastRecever
- 学习shiro很好的文章===加深了对shiro授权的理解 (认证就是登录好理解)
- DeepID1 DeepID2 DeepID2+ DeepID3
- 加深对组件的理解
- minifilter框架理解加深了
- 对scanf的加深理解
- serialVersionUID加深理解(例子)
- iOS内存管理加深理解
- 加深对JAVA的理解
- 加深理解UIView,UIResponder,UIController
- 正则表达式自已加深理解
- opengles
- String,StringBuffer,StringBuilder的区别(优缺点)
- 设计模式的学习
- FreeSwitch loglevel说明及设置
- java打包jar后,使之一直在linux上运行,不随终端退出而关闭
- DeepID2文章加深理解
- 最好的8个 Java RESTful 框架
- 依赖注入原理(为什么需要依赖注入)
- Laravel 5.* 安装 Sentry 用户权限管理依赖包
- Mybatis实体类别名自动扫描
- 关于Eclipse中项目提示错误而文件不显示错误问题的解决
- theano中的index好怪异。。比如最大似然估计的损失计算部分。
- 图--深度优先遍历
- hdu 1874 畅通工程续 最短路