目标检测跟踪中的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 网络会更高效和灵活。

相关推荐
爱研究的小牛22 分钟前
Opus Clip AI技术浅析(二):上传与预处理
人工智能·aigc
人工智能培训咨询叶梓29 分钟前
多跳问答中的语言模型知识编辑增强
人工智能·深度学习·机器学习·语言模型·自然语言处理·检索增强·多跳
hellocode_31 分钟前
如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力
人工智能·gpt·ai·chatgpt
FL162386312937 分钟前
电力场景电力设备漏油检测数据集VOC+YOLO格式1114张36类别
人工智能·深度学习·yolo
AI完全体42 分钟前
【AI日记】25.01.11 Weights & Biases | AI 笔记 notion
人工智能·笔记·机器学习·读书·notion·kaggle 比赛
python-码博士1 小时前
深度学习知识点:LSTM
人工智能·深度学习·lstm
liruiqiang051 小时前
机器学习之基本概念 - 特征、标签、样本
人工智能·机器学习
程序员正茂1 小时前
Win10微调大语言模型ChatGLM2-6B
人工智能·语言模型·自然语言处理·chatglm2-6b
赛逸展张胜1 小时前
CES Asia 2025科技盛宴,AI智能体成焦点
大数据·人工智能·科技
刘争Stanley1 小时前
训练一只AI:深度学习在自然语言处理中的应用
人工智能·深度学习·算法·链表·自然语言处理·贪心算法·排序算法