SiamMask中的分类分支、回归分支与Mask分支,有何本质差异?

SiamMask中的分类分支、回归分支与Mask分支,有何本质差异?

    • 一、引言
    • 二、分支定位与任务目标
    • 三、网络结构与感受野设计
      • 3.1 分类分支(Classification Head)
      • 3.2 回归分支(Regression Head)
      • 3.3 Mask分支(Mask Head)
    • 四、输入特征与输出形式
    • 五、损失函数与监督信号
      • 5.1 分类分支损失
      • 5.2 回归分支损失
      • 5.3 Mask分支损失
      • 5.4 总损失
    • 六、三者协同工作流程
    • 七、实验对比与可视化示例
    • 八、小结与展望

本文是“Siam 系列网络深度解析”之三,重点对比并深入剖析SiamMask在跟踪与分割任务中,分类分支、回归分支和Mask分支的不同设计思路、网络结构与训练策略。


一、引言

SiamMask以多任务学习的方式,实现了目标跟踪(Tracking)与目标分割(Segmentation)的统一框架。模型共有三条并行分支:分类分支(Classification Head)、回归分支(Regression Head)和Mask分支(Mask Head)。虽然它们都基于同一个深度相关特征图 g ∈ R C × H × W g\in\mathbb R^{C\times H\times W} gRC×H×W,并且都执行二分类或回归操作,但在设计目标网络结构输入/输出粒度损失函数训练方式等方面均存在本质区别。

本篇文章将从以下角度展开:

  1. 分支定位与任务目标
  2. 网络结构与感受野设计
  3. 输入特征与输出形式
  4. 损失函数与监督信号
  5. 三者协同工作流程
  6. 实验对比与可视化示例

二、分支定位与任务目标

分支任务目标输出意义
分类分支判断某空间位置是否为目标中心前景概率热力图 S ∈ [ 0 , 1 ] 1 × H × W \mathbf S\in[0,1]^{1\times H\times W} S[0,1]1×H×W
回归分支回归Anchor相对于真实框的偏移量边界框偏移量 Δ = ( l , t , r , b ) ∈ R 4 × H × W \Delta=(l,t,r,b)\in\mathbb R^{4\times H\times W} Δ=(l,t,r,b)R4×H×W
Mask分支对目标区域进行像素级前景/背景分割掩膜概率图 M ^ ∈ [ 0 , 1 ] 1 × H m × W m \hat M\in[0,1]^{1\times H_m\times W_m} M^[0,1]1×Hm×Wm
  • 分类分支:提供一个粗粒度的定位信号,告诉模型“目标的大致中心在哪里”。
  • 回归分支:基于分类分支给定的位置,从每个Anchor出发,用4个通道精确地回归边界框。
  • Mask分支:在回归出的目标框内部,生成高分辨率的像素级掩膜,实现精细分割。

三、网络结构与感受野设计

3.1 分类分支(Classification Head)

  • 典型实现:1~2层 3 × 3 3\times3 3×3卷积 + Sigmoid
  • 感受野:适中,关注当前位置的上下文信息,以便区分前景/背景
  • 输出分辨率:与输入特征等大(如 H × W = 17 × 17 H\times W=17\times17 H×W=17×17 25 × 25 25\times25 25×25

示例代码

self.cls_conv = nn.Conv2d(C, C, kernel_size=3, padding=1)
self.cls_score = nn.Conv2d(C, 1, kernel_size=1)
# forward:
feat = F.relu(self.cls_conv(g))    # [B,C,H,W]
score = torch.sigmoid(self.cls_score(feat))  # [B,1,H,W]

3.2 回归分支(Regression Head)

  • 典型实现:同样是2~3层小卷积 + 无激活
  • 感受野:与分类相近,但关注边缘位置的特征变化以便回归准确
  • 输出分辨率 4 × H × W 4\times H\times W 4×H×W,对应每个位置的 l , t , r , b l,t,r,b l,t,r,b

示例代码

self.reg_conv = nn.Conv2d(C, C, kernel_size=3, padding=1)
self.reg_offset = nn.Conv2d(C, 4, kernel_size=1)
# forward:
feat = F.relu(self.reg_conv(g))   # [B,C,H,W]
offset = self.reg_offset(feat)    # [B,4,H,W]

3.3 Mask分支(Mask Head)

  • 典型实现:U-Net风格或多层卷积 + 上采样
  • 感受野:更大,需要捕捉目标内部与边界细节
  • 输出分辨率:高于跟踪特征图,通常为 63 × 63 63\times63 63×63或更高
  • 关键组件:RoIAlign/Crop → 一系列卷积与反卷积 → Sigmoid

示例代码

# RoIAlign后得到局部特征 [B,C,H,W]
x = roi_align(feature_map, boxes, output_size=(H,W))
x = F.relu(self.conv1(x))
x = F.relu(self.conv2(x))
x = F.convTranspose2d(x, ...)  # 上采样
mask = torch.sigmoid(self.conv_final(x))  # [B,1,H_m,W_m]

四、输入特征与输出形式

分支输入特征输出形式下游依赖
分类分支全局 DW-XCorr 特征 g g g热力图 S \mathbf S S决定回归与Mask的位置
回归分支全局 DW-XCorr 特征 g g g偏移量 Δ \Delta Δ生成最终边界框
Mask分支RoIAlign 裁剪特征掩膜 M ^ \hat M M^精细分割
  • 分类分支回归分支共享同一输入: g ∈ R C × H × W g\in\mathbb R^{C\times H\times W} gRC×H×W
  • Mask分支通过RoIAlign从回归出的候选框中裁剪特征,得到局部高分辨率特征,用于掩膜预测。

五、损失函数与监督信号

5.1 分类分支损失

二元交叉熵:
L c l s = − ∑ i , j [ y i , j log ⁡ S i , j + ( 1 − y i , j ) log ⁡ ( 1 − S i , j ) ] \mathcal L_{cls} = -\sum_{i,j}\bigl[y_{i,j}\log S_{i,j} + (1-y_{i,j})\log(1 - S_{i,j})\bigr] Lcls=i,j[yi,jlogSi,j+(1yi,j)log(1Si,j)]

  • y i , j ∈ { 0 , 1 } y_{i,j}\in\{0,1\} yi,j{0,1}:某位置是否为前景Anchor
  • 监督信号稀疏,仅中心Anchor或与GT匹配的Anchor为正样本

5.2 回归分支损失

Smooth L1 Loss:
L r e g = ∑ c ∈ { l , t , r , b } ∑ i , j S m o o t h L 1 ( Δ c , i , j − Δ c , i , j ∗ ) \mathcal L_{reg} = \sum_{c\in\{l,t,r,b\}} \sum_{i,j} \mathrm{SmoothL1}(\Delta_{c,i,j} - \Delta^*_{c,i,j}) Lreg=c{l,t,r,b}i,jSmoothL1(Δc,i,jΔc,i,j)

  • Δ ∗ \Delta^* Δ:Ground-Truth边界框与Anchor的真实偏移

5.3 Mask分支损失

像素级二元交叉熵:
L m a s k = − 1 H m W m ∑ u , v [ M u , v ∗ log ⁡ M ^ u , v + ( 1 − M u , v ∗ ) log ⁡ ( 1 − M ^ u , v ) ] \mathcal L_{mask} = -\frac{1}{H_mW_m}\sum_{u,v}\bigl[M^*_{u,v}\log\hat M_{u,v} + (1-M^*_{u,v})\log(1-\hat M_{u,v})\bigr] Lmask=HmWm1u,v[Mu,vlogM^u,v+(1Mu,v)log(1M^u,v)]

  • M u , v ∗ ∈ { 0 , 1 } M^*_{u,v}\in\{0,1\} Mu,v{0,1}:像素级前景/背景标签

5.4 总损失

多任务加权:
L t o t a l = λ c l s L c l s + λ r e g L r e g + λ m a s k L m a s k \mathcal L_{total} = \lambda_{cls}\mathcal L_{cls} + \lambda_{reg}\mathcal L_{reg} + \lambda_{mask}\mathcal L_{mask} Ltotal=λclsLcls+λregLreg+λmaskLmask
常见设定: λ c l s = 1 , λ r e g = 1.2 , λ m a s k = 32 \lambda_{cls}=1,\lambda_{reg}=1.2,\lambda_{mask}=32 λcls=1,λreg=1.2,λmask=32


六、三者协同工作流程

  1. 特征提取:模板与搜索图通过Backbone、FPN提取多尺度特征。
  2. DW-XCorr:得到全局匹配特征图 g g g
  3. 分类分支:生成热力图 S \mathbf S S,选取得分最高的位置作为候选Anchor。
  4. 回归分支:对候选Anchor回归偏移,得到精确边界框。
  5. Mask分支:对每个候选框进行RoIAlign裁剪,预测高分辨率掩膜。

七、实验对比与可视化示例

下面对比三者输出:

  • 分类热力图:低分辨率,但清晰标出目标中心
  • 回归框:粗略定位目标范围
  • Mask掩膜:高分辨率,精确描绘目标轮廓
+----------------------+----------------------+----------------------+
|    Classification    |     BBox Regression  |        Mask          |
+----------------------+----------------------+----------------------+
|    17×17 heatmap     |    4×17×17 offsets   |     63×63 mask       |
+----------------------+----------------------+----------------------+

(此处可插入示意图:热力图、边框图、掩膜图)


八、小结与展望

  • 分类分支聚焦“哪个位置是目标”,为后续模块提供定位基准;
  • 回归分支细化Anchor到精确框,实现尺度与位移回归;
  • Mask分支在局部框内做细粒度分割,获得目标轮廓。

三者分工明确、协同高效,共同构成了SiamMask的跟踪+分割能力。

下篇我们将撰写:

《分类分支 vs Mask分支:为什么不能一个分支包办所有任务?》
敬请期待!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

threejs学习day02

场景、相机、渲染器 一、创建3D场景 // 引入threejs import * as THREE from three// 创建一个三维场景scene const scene new THREE.Scene();// 给三维场景添加物品 const geometry new THREE.BoxGeometry(100,100,100) // 形状 const meterial new THREE.MeshBasicMat…

K8S Pod 常见数据存储方案

假设有如下三个节点的 K8S 集群: k8s31master 是控制节点 k8s31node1、k8s31node2 是工作节点 容器运行时是 containerd 一、理论介绍 1.1、Volumes 卷 Kubernetes 的卷是 pod 的⼀个组成部分,因此像容器⼀样在 pod 的规范(pod.spec&#x…

【MySQL数据库】函数操作

目录 1,日期函数 2,字符串函数 3,数学函数 1,日期函数 样例: 获得年月日 select current_date(); 获取时分秒 select current_time(); 获得时间戳 select current_timestamp(); 在日期的基础上加日期 在2025年4月27…

【每日随笔】文化属性 ① ( 天机 | 强势文化与弱势文化 | 文化属性的形成与改变 | 强势文化 具备的特点 )

文章目录 一、文化属性1、天机2、文化属性的强势文化与弱势文化强势文化弱势文化 二、文化属性的形成与改变1、文化属性形成2、文化属性改变3、文化知识的阶层 三、强势文化 具备的 特点 一、文化属性 1、天机 如果想要 了解这个世界的 底层架构 , 就需要掌握 洞察事物本质 的能…

【Fifty Project - D18】

感觉自己就不是计划星球人,虽然fifty project要求每天早上完成一天的计划,但是对于一个p人脑子,强制自己按照计划行事真的太难了。我也理解在早晨花费时间做好一天的计划有很多好处,但是实际行动起来完成率极低。p人的世界里变动太…

Linux系统编程 day11 锁 (两天没有更新了,中期完就休息了)

锁的注意事项 1、尽量保证锁的粒度,越小越好。(访问共享数据前,加锁,访问结束后立即解锁) 2、互斥锁,本质是结构体,但是可以看成整数,初值为1。(pthread_mutex_init调用成功) 3、加锁: --操作…

【Maven】特殊pom.xml配置文件 - BOM

文章目录 特殊pom.xml配置文件 - BOM一、例子二、注意事项1.特殊的子pom.xml文件2.dependencyManagement 特殊pom.xml配置文件 - BOM 仅用于集中管理项目依赖版本 在 Maven 中,BOM 用于定义一个项目的依赖版本的集合,通常用于管理一组共享的依赖版本。这…

《代码整洁之道》第5章 格式 - 笔记

你应该选择一套管理代码格式的简单规则。如果是团队,应该选择一套团队一致同意采用的简单格式规则。 最重要的原则:一致性(Consistency)! 没有完美的格式规范,但有统一的规范。 整个团队(或者…

C++ 类与对象(中)—— 默认成员函数与运算符重载的深度解析:构造函数,析构函数,拷贝构造函数,赋值运算符重载,普通取地址重载,const取地址重载

在 C 中,类的默认成员函数是编译器自动生成的重要机制,合理利用这些函数可以简化代码编写,同时避免资源管理错误。本文将从构造函数、析构函数、拷贝构造函数、赋值运算符重载等核心内容展开,结合具体案例深入解析。 一、默认成员…

【KWDB创作者计划】_企业级多模数据库实战:用KWDB实现时序+关系数据毫秒级融合(附代码、性能优化与架构图)

一、技术背景与行业痛点 1.1 多模数据融合挑战 场景痛点: 工业物联网设备每秒产生百万级传感器数据(时序数据)。需关联设备档案(关系数据)生成设备健康报告,传统方案需多数据库跳转,延迟>5…

w~嵌入式C语言~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/13870376 一、STM32怎么选型 什么是 STM32 STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指S…

Multisim使用教程详尽版--(2025最新版)

一、Multisim14前言 1.1、主流电路仿真软件 1. Multisim:NI开发的SPICE标准仿真工具,支持模拟/数字电路混合仿真,内置丰富的元件库和虚拟仪器(示波器、频谱仪等),适合教学和竞赛设计。官网:艾…

分布式理论和事务

微服务和分布式 微服务 是一种软件架构风格,它将应用程序拆分成一系列小型、独立的服务,每个服务专注于单一功能,彼此通过轻量级通信机制(如 API)进行交互。微服务通常是松耦合的,可以独立开发、部署和扩展…

JAVA:红黑树应用的技术指南

🌳 1、简述 红黑树是一种自平衡二叉查找树(Self-Balancing Binary Search Tree),被广泛应用于操作系统调度、Java集合、数据库索引等核心模块中。本文将从 基本原理 入手,结合 实际应用场景与代码实例,带你…

【Pandas】pandas DataFrame rfloordiv

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…

【数据可视化-26】基于人口统计与社会经济数据的多维度可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个…

WinForm真入门(18)——DateTimePicker‌控件解析

一、基本概念‌ ‌DateTimePicker‌ 是 Windows 窗体中用于选择日期和时间的控件,支持以下交互方式: 通过下拉日历选择日期通过上下按钮调整时间直接输入日期或时间 适用于需要规范日期格式、限制日期范围或快速输入的场景(如预约系统、数据…

AVFormatContext 再分析

说明 :将 avfromatContext 的变量依次打印分析,根据ffmpeg 给的说明,猜测,结合网上的文章字节写测试代码分析。 从常用到不常用依次分析 1. unsigned int nb_streams; 代表 avfromatContext 中 AVStream **streams 的个数 /** …

计算机网络-运输层(1)

计算机网络-运输层(1) 文章目录 计算机网络-运输层(1)5.1 运输层概述5.2 运输层端口号、复用与分用端口号基本概念端口号特性端口号分类重要说明 5.3 UDP与TCP协议对比关键区别说明 5.1 运输层概述 计算机网络体系结构中的物理层、数据链路层以及网络层共同解决了主机通过异构…

2025 FIC wp

这次比赛计算机和手机大部分题目都比较常规 第一和第四部分有点让人摸不着头脑 比赛的时候第一部分有四个题没出 第四部分基本都没怎么出 现在复盘一下 把我当时做题的心得和获取的新知识记录一下 互联网取证的部分就先学习一下别的师傅 检材 链接:https://pan.bai…