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,j?logSi,j?+(1?yi,j?)log(1?Si,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,j?SmoothL1(Δ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?=?Hm?Wm?1?u,v?[Mu,v??logM^u,v?+(1?Mu,v??)log(1?M^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?=λcls?Lcls?+λreg?Lreg?+λmask?Lmask?
常見設定: λ 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.pswp.cn/pingmian/78452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78452.shtml
英文地址,請注明出處:http://en.pswp.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…