目标检测跟踪中的Siamese孪生网络与普通卷积网络(VGG、ResNet)有什么区别?

1、什么是 Siamese 网络?

Siamese网络又叫孪生网络,是一种特殊的神经网络架构,由一对(或多对)共享参数的子网络组成,用于学习输入样本之间的相似性或关系。最早在 1994 年由 Bromley 等人提出,最初被用于签名验证任务。目前广泛应用于目标检测跟踪领域中,基本已经作为目标跟踪的backbone了,提出了很多基于Siamese网络的改进跟踪策略。如:

SiamRPN++:利用深度网络实现Siamese视觉跟踪的进化-CSDN博客

论文速读:SiamRPN++,利用深度网络实现Siamese视觉跟踪的进化-CSDN博客

1.1、核心特性

共享参数(Shared Weights):

  • Siamese 网络的两部分(或多个部分)是完全相同的,具有相同的网络结构和权重。也就是说,无论输入什么样本,Siamese 网络会提取相同的特征。

接受一对输入(Input Pair):

  • 网络接受两个输入样本对(如 x1 和 x2),分别通过共享权重的网络分支进行特征提取。

相似度度量(Similarity Metric):

  • 输出层会计算两个输入的特征向量之间的相似度(如欧氏距离、余弦相似度等),表示这两个输入是否属于同一个类别或存在某种关系。

2、常见任务

Siamese 网络被广泛应用于以下任务:

验证任务(Verification Tasks): 例如人脸验证(是否是同一个人)、签名验证。

匹配任务(Matching Tasks): 如图像检索、推荐系统。

目标跟踪(Tracking): 如 SiamRPN 和 SiamRPN++。

度量学习(Metric Learning): 学习样本之间的相似性度量。

3、Siamese 网络的结构与流程

以一个人脸验证任务为例:

  1. 输入:
    • 输入两个图片 x1 和 x2(例如两张人脸)。
  2. 共享特征提取:
    • 两张图片分别通过共享权重的网络提取特征向量 f(x1)和 f(x2)。
  3. 特征比较:
    • 在特征空间中比较 f(x1)和 f(x2)的相似性(例如计算欧氏距离 ||f(x1) - f(x2)||)。
  4. 输出:
    • 输出一个相似度分数(如 0 表示不相似,1 表示完全相似)。

4、什么是视觉跟踪任务?

在视觉跟踪任务中,模型的输出通常是一张响应图(response map),也就是一个二维矩阵,每个位置对应一个概率值,表示目标出现在该位置的可能性。

4.1、具体步骤

  1. 输入图像
    • 模型接收两部分输入:一个是目标模板图像(通常是初始帧中的目标区域),另一个是搜索区域图像(当前帧的大范围区域)。
  2. 特征提取
    • 模型通过卷积神经网络提取两部分输入的特征。
  3. 相似性计算
    • 利用特征之间的相似性(通常通过交叉相关或卷积操作)生成响应图,表示目标可能出现在搜索区域的每个位置的概率。
  4. 归一化
    • 将响应图中的值归一化为概率形式(如softmax处理),使得所有位置的概率和为1。

4.2、预测分布的形式

  • 响应图是一个二维矩阵。例如,如果搜索区域被划分为 25×25的网格,响应图的大小也是 25×25。
  • 矩阵中的每个值表示目标出现在对应网格位置的概率。

4.3、具体示例

假设我们有以下场景:

  • 搜索区域:目标可能位于一个 255×255 像素的图像中。
  • 响应图大小: 25×25(通过模型下采样或分块生成)。

响应图可能是这样的:

|----------|-----------|-----------|---------|------------|
| 网格位置 | (1,1) | (1,2) | ... | (1,25) |
| 第1行 | 0.01 | 0.02 | ... | 0.01 |
| 第2行 | 0.03 | 0.05 | ... | 0.02 |
| ... | ... | ... | ... | ... |
| 第25行 | 0.01 | 0.02 | ... | 0.60 |

  • 这个矩阵的总和为1,表示概率分布。
  • 如果目标出现在右下角(如 (25,25)),那么靠近这个位置的概率值会更高。

5、Siamese 网络与普通卷积网络(如 VGG、ResNet)的区别

  1. 任务目标不同:
    • 普通卷积网络:
      • 用于分类、回归等任务,输出通常是固定类别的概率分布。例如,ResNet 对图像分类任务的输出是一个包含类别概率的向量。
    • Siamese 网络:
      • 用于学习样本之间的关系,输出通常是一个相似性分数或距离。
  2. 输入结构不同:
    • 普通卷积网络:
      • 接受单一输入图像 x。
    • Siamese 网络:
      • 接受两个输入(或更多),例如输入样本对 (x1,x2)。
  3. 共享权重机制:
    • 普通卷积网络:
      • 没有共享权重,每个输入单独通过完整的网络。
    • Siamese 网络:
      • 两个分支的权重完全共享,确保提取的特征具有一致性。
  4. 输出和损失函数:
    • 普通卷积网络:
      • 输出是类别概率,使用交叉熵损失(Cross Entropy Loss)。
    • Siamese 网络:
      • 输出是相似性分数或距离,使用对比损失(Contrastive Loss)或三元组损失(Triplet Loss)。

6、举例说明:Siamese 网络与普通卷积网络的应用

场景 1:人脸分类(普通卷积网络)

假设你想识别人脸属于哪个特定的已知人物:

  1. 使用 ResNet 或 VGG 提取人脸特征。
  2. 分类层输出类别分布,例如:
    • 输入图片是"张三",输出结果:张三:0.9,李四:0.05,王五:0.05。
  3. 网络只需对固定类别的数据进行分类,不适合处理类别数量动态变化的场景。

场景 2:人脸验证(Siamese 网络)

假设你想验证两张人脸是否是同一个人:

  1. 两张图片 x1 和 x2 输入到 Siamese 网络的两个分支。
  2. 提取特征向量 f(x1) 和 f(x2)。
  3. 计算相似度,例如欧氏距离: d = ||f(x1) - f(x2)||
    • 如果 d<阈值,认为两张图片是同一个人。
    • 如果 d>阈值,认为两张图片不是同一个人。
  4. 这种方法无需明确类别信息,可以处理开放类别场景(如从未见过的新人的验证)。

例如,人脸识别场景中,如果你需要在一个大规模数据库中快速找到与给定人脸最相似的人,Siamese 网络会更高效和灵活。

相关推荐
阿里云大数据AI技术3 分钟前
Al Search x ES Agent Builder:让数据活起来,从搜索走向行动
人工智能·elasticsearch·agent
Cenxi8 分钟前
Python字符串方法练习手册
人工智能·python
摘星星的屋顶12 分钟前
2026年8月31日~2026年9月13日周报
人工智能·学习
数字新视界22 分钟前
动环监控可视化技术在机房管理智能化中的实际应用剖析
大数据·人工智能·数据中心·微模块机房·模块化机房
武子康25 分钟前
小智的 MQTT 已连接,为什么还不能说话?从音频通道看协议选择
人工智能·llm·agent
智塑未来25 分钟前
FPGA开发板选型:研发交付能力怎么看
人工智能·fpga开发
朴实赋能1 小时前
AI拒答机制实战:心理咨询危机识别Agent三层防护、五级分层与六类智能体拆解
大数据·人工智能·多agent协同·心理咨询ai·心理危机识别·ai拒答机制·隐私匿名化
史一试1 小时前
Agent开发第6步:实现 SSE 编解码
人工智能
熊猫钓鱼>_>1 小时前
【SenseNova U1.5 Lite实战】鸿蒙校园工具开发者适配原生统一多模态大模型全记录
人工智能·华为·ai·harmonyos·媒体·sensenova
龙亘川1 小时前
智慧景区建设实践|文旅热度持续走高,景区如何把流量稳稳转化为口碑?
大数据·人工智能·科技·信息可视化·智慧城市