SOLO:Segmenting Objects by Locations閱讀筆記

論文下載地址: https://arxiv.org/abs/1912.04488

論文摘要:

       當前實例分割算法大部分是先檢測後分割的框架,例如Mask-RCNN算法。或者先進行語義分割,然後再通過聚類算法來進行分類。論文提出了一種實例類別概念,實例類別根據實例的位置和大小爲實例中的每個像素分配類別,從而很好地將實例分割轉換爲可分類解決的問題。論文提出的犯法可以達到和Mask-RCNN一樣的精度。

引言:

       實例分割不僅需要確認圖片中實例的個數,還需要在像素級對實例進行分割。實例分割主要分爲兩類,一類是自上而下,一類是自下而上。   自上而下主要流程是檢測,然後在檢測的基礎上進行語義分割。自下而上的主要看流程是先進行分割(對每一個像素進行分類),然後都是用聚類等算法將像素進行聚類實例分割。           

        作者分析一張圖片中不同實例之間的真正的區別是什麼,通過分析COCO數據集發現,98.3%的實例的中心點像素值相差30像素,剩餘的1.7%中的40.5%中的圖像對大小比例爲1.5倍。作者得出結論大多數圖片中不同的實例擁有不同的中心點或者不同的大小尺度。因此作者通過實例位置和實例大小來進行實例分割。

       實例位置:將特徵圖劃分爲S*S大小的網格,每個實例會關聯一個網格。就像語義分割的類別分類一樣,中心位置的類別也是通過通道層面來決定的,每一個輸出通道負責一箇中心位置類別並且相應的通道映射應該預測屬於該類別的對象的實例掩碼。

       實例大小:引入FCN特徵金字塔結構來解決實例大小問題。

SOLO算法結構:

  1. 整體流程

      將特徵圖分爲S*S網格,如果實例中心落到網格里面,那麼這個網格就負責兩個功能:1.實例的類別。2.實例的分割掩碼。

 

2. 語義類別

       對於每一個網格,SOLO會預測C維的來預測實例類別,C爲類別的數量。因此語義類別的網絡輸出爲S*S*C維度的(每個單元格都會有一個類別的輸出)。

3. 實例掩碼

       在語義類別預測的同時,每個網格單元還將生成相應的實例掩碼。輸出的實例掩碼大小爲H*W*(S*S)。在實例掩碼這部分一般直接採用FCN網絡結構來進行分割操作,但是傳統的卷積具有平移不變性,然而我們需要的模型要具有空間可變性(因爲我們分割的掩碼是基於S*S的網格的,並且需要用不同的通道來分割)。論文直接將像素座標進行歸一化,創建一個與輸入具有相同空間大小的張量,包含像素座標,被歸一化爲-1到1。將這個張量和輸入特徵連接在一起傳到下面的網絡層中。通過簡單的讓卷積層訪問它的座標將空間功能增加到FCN上。

SOLO 學習訓練:

1. 標籤分配

       S*S的網格中有一個網格落在ground truth mask的中心位置就認爲該網格是正樣本,反之爲負樣本。得到實例的質心位置(n,m),w和h分別表示mask的長和寬,那麼該實例的中心位置就是(n,m,w1,h1),其中w1= β*w,h1=β*h,β在論文中的取值爲0.2,也就是說中心位置其實是一個小的矩形框。

2. Loss損失函數

                    的損失函數是Focal loss      

            

           N表示正樣本的數量。p*和m*表示實例的類別和mask。d表示的是Dice loss。γ固定值爲3。

檢測結果:

 

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