Siam Mask

Paper : Fast Online Object Tracking and Segmentation: A Unifying Approach
Code : official

摘要

作者提出了SiamMask 的結構,可以根據上一幀的bounding box的信息對下一幀的分割掩膜進行預測, 然後再在掩膜的基礎上生成該幀對應的bounding box。與其他Segmentation 的方法相比,該結構採用bbox進行mask預測,因此速度會快很多。SiamMask的實現方法比較簡單,在SiamRPN的基礎上在新增一個分支進行mask的生成,創新點比較小。

網絡結構

在這裏插入圖片描述
網絡的整體結構如圖所示,作者在SiamRPN的兩個分支之外,添加了一個新的分支用來進行Mask的預測。爲了使得到的score map/response map容納更大的信息,Siam Mask 中在互相關的一步採用的是depth-wise cross-correlation 層,可以輸出一個多通道的response map。

Depth-wise Cross-correlation :

  • 通過類似深度可分離卷積的方法,逐通道計算correlation結果,這樣的好處是可以得到一個通道數非1的輸出。
    在這裏插入圖片描述

損失函數:在訓練期間,每個RoW(Region of a candidate window)都用ground truth 標籤 yn{±1}y_n\in \{\pm 1\} 標記,並且還與大小爲 w×hw\times h 的ground truth mask cnc_n 相關聯。 令cnij{±1}c^{ij}_{n}\in \{\pm1\}表示與第 nn 個候選RoW中的對象掩模的像素 (i,j)(i,j) 相對應的標籤。 掩碼預測任務的損失函數 Lmask\mathcal L_\text{mask} 是所有RoW上的二進制logistic迴歸損失
Lmask(θ,ϕ)=n(1+yn2whi,jlog(1+ecnijmnij)) \mathcal L_\text{mask}(\theta,\phi) = \sum_n (\frac{1+y_n}{2wh}\sum_{i,j}\log(1+e^{-c_n^{ij}m_n^{ij}}))

其中,1+yn2\frac{1+y_n}{2} 表示只考慮 yn=1y_n=1 的情況

對於mask預測分支,hϕh_\phi 網絡由兩個1*1 的卷積層組成,輸出通道數分別爲256和63*63。作者設計了兩種SiamMask的結構,一種結構具有三個分支,一種結構具有兩個分支,損失函數分別爲
L2B=λ1Lmask+λ2LsimL3B=λ1Lmask+λ2Lscore+λ3Lbox \\\mathcal L_\text{2B} = \lambda_1 \cdot \mathcal L_\text{mask}+\lambda_2\cdot \mathcal L_\text{sim} \\\mathcal L_\text{3B} = \lambda_1 \cdot \mathcal L_\text{mask}+\lambda_2\cdot \mathcal L_\text{score}+\lambda_3\cdot \mathcal L_\text{box}

其中,Lsim\mathcal L_\text{sim} 表示SiamFC提出的損失函數。正例和負例的label方式如下:對於anchor box,與ground-truth 的IoU在0.6以上時標記爲正例,否則爲負例。對於bbox和score分支,使用兩個1*1的卷積核進行計算。

使用Mask生成bbox的方式有三種:

  • 對齊的min-max bbox
  • 最小矩形包圍盒MBR
  • 自動生成的優化矩形包圍盒
    在這裏插入圖片描述
    優化矩形包圍盒:

argminbbox{cost(bbox)=αx∉bbox[Mask(x)>0]+xbbox[Mask(x)=0]}subject to 1Mfx∉bbox[Mask(x)>0]<Θf,1bboxxbbox[Mask(x)=0]<Θb \\\arg\min_{\text{bbox}} \{\text{cost}(\text{bbox}) = \alpha \sum_{x\not \in \text{bbox}}[\text{Mask}(x)>0]+\sum_{x\in \text{bbox}}[\text{Mask}(x) = 0]\} \\ \text{subject to }\frac{1}{M_f}\sum_{x\not \in \text{bbox}}[\text{Mask}(x)>0]<\Theta_f,\frac{1}{|\text{bbox}|}\sum_{x \in \text{bbox}}[\text{Mask}(x) = 0]<\Theta_b

其中 MfM_f 表示對象的像素數。

An intuitive interpretation of the cost function is that we want to find a bounding box which minimizes a weighted sum of the number of object pixels outside of the bounding box and the number of background pixels inside the bounding box, with percentage of excluded object pixels and included background pixels constrained by Θf and Θb .

網絡架構:對於這兩個Siam Mask,使用ResNet-50直到第4階段的最終卷積層作爲我們的主幹網絡。 爲了在更深的層中獲得較高的空間分辨率,我們通過使用步幅爲1的卷積將輸出步幅減小爲8。此外,我們通過使用dilated conv來增加感受野大小。 在我們的模型中,我們向共享主幹網絡添加一個非共享的調整層(具有256個輸出的1×1 conv)。

推斷:在兩個分支的SiamMask中,對於第一個視頻幀之後的每個視頻幀,我們使用 min-max 框來擬合輸出蒙版,並將其用作裁剪下一幀搜索區域的參考。 相反,在三分支SiamMask中,我們利用box分支的最高得分輸出作爲參考。

遮罩修飾模塊:爲了產生更精確的對象蒙版,使用多個由上採樣層和跳過連接組成的修飾模塊合併了低分辨率和高分辨率特徵。 下圖給出了修飾模塊U3的示例,展示瞭如何使用堆疊式精煉模塊生成掩模。

在這裏插入圖片描述
在這裏插入圖片描述
失敗案例:我們討論了SiamMask失敗的兩種情況:運動模糊和“非對象”實例。 儘管本質上有所不同,但這兩種情況可以說是由於訓練集中完全缺乏相似的訓練樣本而引起的,它們集中在可以從前景中明確區分的對象上。

在這裏插入圖片描述

總結

作者的實驗部分做的比較常規,對於Object Tracing部分的實驗,作者達到了SOTA的效果;對於Object Segmentation的實驗,作者表示儘管我表現不行但是我能做實時。實時主要是SiamFC結構造成的,而Object Tracing的表現提升在我看來不一定很有參考價值,該模型可以在兩任務的數據集上同時訓練,相當於做了一個超大的數據增廣,而且Mask本身就比bbox要多提供很多信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章