简介

今年的CVPR大会看到了好多带“siamese”关键词或者同类的词的文章,之前不了解这个网络,今学习并总结如下。

以后学习到新的与之有关的网络再行更新。

1. Siamese网络

Siamese网络:通过网络学习到两个图片之间的相似度函数。算法的原理利用神经网络提取描述算子,得到特征向量,然后利用两个图片的特征向量判断相似度,这个有点像sift,只不过是利用CNN进行提取特征,并且用特征向量进行构造损失函数,进行网络训练。

见:详解Siamese网络

感觉这篇博客介绍该网络的作用,损失函数等非常通俗易懂,值得推荐。

扩展:one-shot学习

One-shot Learning,一次学习。训练集中,每个类别都有样本,但都只是少量样本。知乎上一个解释感觉很直白:Zero-shot learning 指的是我们之前没有这个类别的训练样本。但是我们可以学习到一个映射X->Y。如果这个映射足够好的话,我们就可以处理没有看到的类了。 比如,我们在训练时没有看见过狮子的图像,但是我们可以用这个映射得到狮子的特征。一个好的狮子特征,可能就和猫,老虎等等比较接近,和汽车,飞机比较远离。

与迁移学习(transfer learning)、领域自适应(Domin Adaptation)用处较接近。

2. 相关网络

2.1 人脸识别

论文:Learning a similarity metric discriminatively, with application to face verification,CVPR2005.


其网络为,有两个分支分别输入图片x1、x2(须知:这两个分支其实是相同的,同一个cnn模型,同样的参数,文献只是为了方便阅读,所以才画成两个分支,因为他们采用的是权重共享),包含卷积、池化等相关运算。

siamese 网络分成前半部分、后半部分。前半部分用于特征提取,我们可以让两张图片,分别输入我们这个网络的前半部分,然后分别得到一个输出特征向量Gw(x1)、Gw(x2),接着我们构造两个特征向量距离度量,作为两张图片的相似度计算函数。

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

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

详见:Siamese architecture Siamese网络

2.2 基于2-Channel network的图片相似度判别

论文: Learning to Compare Image Patches via Convolutional Neural Networks,CVPR2015.

先在这里解释下为什么作者要把它称之为:2-channel networks。理解了2-channel这个词,有助于我们后面理解算法。从上面Siamese 网络,我们可以看到这个网络有两个分支组成,因为我们是要比较两张图片patch1、patch2的相似度,所以Siamese 网络的大体思路,就是让patch1、patch2分别经过网络,进行提取特征向量,然后在最后一层对两个两个特征向量做一个相似度损失函数,进行网络训练,这个后面在给进行比较详细的讲解,总的来说Siamese 对于两张图片patch1、patch2的特征提取过程是相互独立的,我们也可以把Siamese 网络称之为“2-branches networks”。那么paper所提出的算法:2-channel networks 又是什么意思呢?本来patch1、patch2是两张单通道灰度图像、它们各不相干,于是作者的想法就是把patch1、patch2合在一起,把这两张图片,看成是一张双通道的图像。也就是把两个(1,64,64)单通道的数据,放在一起,成为了(2,64,64)的双通道矩阵,然后把这个矩阵数据作为网络的输入,这就是所谓的:2-channel。

详见:Siamese architecture Siamese网络
深度学习(十六)基于2-channel network的图片相似度判别

CV | Siamese网络相关推荐

  1. siamese网络_CVPR 2019手写签名认证的逆鉴别网络

    点击我爱计算机视觉标星,更快获取CVML新技术 本文简要介绍CVPR2019论文"Inverse Discriminative Networks for Handwritten Signat ...

  2. siamese改进_[CVPR2019]我对Siamese网络的一点思考(SiamMask)

    今年的CVPR的结果已经完全公布,我参与的两篇文章SiamMask和SiamRPN++均被接收. SiamMask的测试代码:foolwood/SiamMask 以下正文: 在两年前,当我们提起视觉跟 ...

  3. 深度学习Caffe实战笔记(6)Windows caffe平台用Siamese网络跑自己的数据

    终于到了介绍如何使用Siamese网络跑自己的数据了,在网上.论坛上.群里关于用Siamese网络的资料很多,但是实战的资料很少,难道是因为太容易了吗?反正博主查阅了各种地方,几乎没有找到Siames ...

  4. MPASNET:用于视频场景中无监督深度人群分割的运动先验感知SIAMESE网络

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  5. 4.3 Siamese 网络-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.2 One-Shot 学习 回到目录 4.4 Triplet 损失 Siamese 网络 (Siamese Network) 上个视频中你学到的函数 ddd 的作用就是输 ...

  6. Siamese网络(孪生神经网络)详解

    SiameseFC Siamese网络(孪生神经网络) 本文参考文章: Siamese背景 Siamese网络解决的问题 要解决什么问题? 用了什么方法解决? 应用的场景: Siamese的创新 Si ...

  7. 智慧交通day04-特定目标车辆追踪02:Siamese网络+单样本学习

    1.Siamese网络 Siamese network就是"连体的神经网络",神经网络的"连体"是通过共享权值来实现的,如下图所示.共享权值意味着两边的网络权重 ...

  8. 深度学习笔记(43) Siamese网络

    深度学习笔记(43) Siamese网络 1. Siamese网络 2. 建立人脸识别系统 3. 训练网络 1. Siamese网络 深度学习笔记(42) 人脸识别 提到的函数ddd的作用: 输入两张 ...

  9. 【深度学习】图像匹配Siamese网络实验记录

    图像匹配Siamese网络实验记录 Ⅰ. Siamese 网络介绍 Ⅱ. 数据集 AT&T 分拣行李匹配图像 Ⅲ. 实验记录 A. 模型1 1. 实验1 2. 实验2 3. 实验3 B. 模型 ...

最新文章

  1. 微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
  2. SpringBoot实战之SpringBoot自动配置原理
  3. vscode 常用插件
  4. Hystrix简介– Hello World
  5. java 空接口_学Java,java接口搞明白了吗?大牛让你一文搞清楚
  6. script地下状态栏效果
  7. 嘉兴市计算机技工学校,嘉兴市高级技工学校2021年招生简章
  8. 完成这些事情后再做决定 、
  9. 拓扑排序----Kahn算法和字典序最小的拓扑排序
  10. Maven 入门 (2)—— 创建Maven项目
  11. Atitit 知识与数据 信息 加工方法总结 目录 1.1. 信息加工是指通过判别、筛选、分类、排序、分析和研究等一系列过程 1 1.2. 首先通过聚类信息 专题化 分组聚合 1 1.3. 多种聚
  12. linux:云端 ubuntu下挂载数据盘
  13. SAM4E单片机之旅——4、LED闪烁之PWM
  14. 【项目实战1】封装虚拟机(封装母盘,建立子虚拟机)
  15. 企业微信端开启debug模式
  16. 3.cesium雨、雪、雾天气场景效果
  17. 项目沟通管理和项目干系人管理
  18. D语言(dlang)编写单片机(cortex-m系列)应用需要用到的技巧
  19. 【原创】BERT知识融合
  20. UVa 10603 - Fille

热门文章

  1. 个人知识管理工具一览及相关经验技巧
  2. BFC机制关联浮动与脱离标准流
  3. linux系统的编码怎么看,linux查看系统编码和修改系统编码
  4. Openflow协议读书笔记
  5. OpenFlow协议是什么
  6. FANUC机器人PRIO-063故障报警原因分析及解决办法
  7. [Java 8 HashMap 详解系列]7.HashMap 中的红黑树原理
  8. linux下ftp管控,proftpd使用
  9. HBase2.1.0分页查询(支持跳页)
  10. python高级编程 python 笔记1