siamese network(暹罗网络)--Learning a similarity metric discriminatively, with application to face verification

这篇paper主要是利用Siamese网络做人脸相似度判别,可以用于人脸识别哦,因为我觉得这篇文献的网络结构图画的比较漂亮,比较容易看懂,所以就用这一篇文章,简单讲解Siamese网络的思想。其网络如下图所示,有两个分支分别输入图片x1、x2(须知:这两个分支其实是相同的,同一个cnn模型,同样的参数,文献只是为了方便阅读,所以才画成两个分支,因为他们采用的是权重共享),包含卷积、池化等相关运算。双分支有点难理解,我们还是用单分支来理解吧,说的简单一点把,siamese 网络分成前半部分、后半部分。前半部分用于特征提取,我们可以让两张图片,分别输入我们这个网络的前半部分,然后分别得到一个输出特征向量Gw(x1)、Gw(x2),接着我们构造两个特征向量距离度量,作为两张图片的相似度计算函数(如公式1所示)。

                          Siamese网络 

如上图所示,我们要判断图片X1和X2是否相似,于是我们构建了一个网络映射函数Gw(x),然后把x1、x2分别作为参数自变量,我们可以得到Gw(x1)、Gw(x2),也就是得到用于评价X1、X2是否相似的特征向量。然后我们的目的就是要使得函数:

 

然后利用这个损失函数,对网络进行训练,就可以判别两张人脸的相似度了。上面过程中网络的两个分支所用的是同一个函数,也就是权值、网络结构是同一个,我们完全可以把Gw(x)看成是一个特征提取器,因此siamese network网络其实就是一个提取一直图片的特征算子的过程,然后再网络的最后一层,是用于定义了特征向量间相似度的损失函数

参考文献:http://blog.csdn.net/hjimce/article/details/50098483

posted on 2017-09-26 12:38  MissSimple  阅读(5324)  评论(2编辑  收藏  举报

导航