這是專欄《圖像分割模型》的第11篇文章。在這里,我們將共同探索解決分割問題的主流網絡結構和設計思想。
本文介紹了用于實例分割任務的模型結構——。
作者 | 孫叔橋
編輯 | 言有三
本期論文
《 to 》
1 實例分割
區別于本系列之前介紹的語義分割任務,實例分割任務有其自己的任務需求與度量矩陣。簡單來講,語義分割只分割視野內目標的類型,而實例分割則不僅分割類型,同時還需要分割同類型的目標是否為同一個實例。
舉個例子,下面圖片中所有的目標都是“貓”,但只有藍色的那只是你家的,其他都是借來拍照湊數的。那么,拍照結束回家時,只能分辨眼前的目標是否是“貓”已經不夠了,還需要能夠知道哪只是自己的。否則,別家的主人可能會請你喝茶。
由此可以看出,在某些應用場景下,我們需要對視野內相同實例進行區別標注,比如cat1,cat2,等。這時就可以用到實例分割的網絡,比如本文中會介紹的。
2
網絡其實實現了三個任務:前背景分割、前景語義分割與前景實例分割。這三個任務是基于同一個網絡結構進行的,只是各自有單獨的分支。下圖是的網絡模型概況:
與大部分分割網絡相同,同樣應用了VGG模型作為特征提取的主要模塊,在訓練中也用了下訓練得到的VGG參數初始化這一部分模型。
隨后,用兩條分支來分別實現分割任務和前景目標識別任務。下面我們來具體看一下這兩個分支:
(1) 分割部分
分割部分要實現的是對圖塊內場景的類別的識別,由一個1x1卷積層后接分類層實現。這里的分類是稠密的,也就是對每一個像素都有其對應的標注。
這里需要注意的是,為了實現實例分割用ai切割圖片,分割部分的分支必須能夠看到輸入圖塊的所有信息,從而在多個目標同時存在時判斷是否屬于同一個我們需要的目標。比如下圖中有多頭大象:
但是我們只希望標注出其中的一頭:
(2) 前景Score部分
網絡的第二個分支要完成的任務是,判斷一個圖塊是否滿足下面兩個要求:
這一部分由一個2x2的最大池化層,后接兩個全連接層組成。最終的輸出是一個目標score,用來顯示該目標是否滿足上面的要求。
3 訓練細節
的訓練過程對于分割任務是很有借鑒意義的。這里,網絡的兩個分支共同訓練,損失函數如下:
除了基本的分割要求,還做了一個限定,使得在測試推理階段,網絡會嘗試對所有的圖塊都進行分割,即使該圖塊中不存在目標。為了實現這個目的,其采用的策略是,對于不存在目標的圖塊用ai切割圖片,只訓練分割分支。
下圖是的訓練輸入,包括圖塊(左圖)、是否是目標(右圖)和目標類型(顏色框)。
網絡與VGG-A相同,接收的RGB輸入尺寸為,生成的特征尺寸為。由于網絡結構導致輸出尺寸小于原始尺寸(分割分支為1/16,目標分支為1/32),因此需要應用雙線性插值將結果恢復成原始尺寸。這么做的原因是考慮到網絡的體量和計算量。這個設定下,約包含75M的參數。
4 實驗結果
在MS COCO數據集下進行了測試,下圖是測試結果:
這里選擇的學習率為0.001,batch size為32,動量0.9,權重下降0.00005,訓練需要5天左右。
下表是分割結果比較:
歡迎大家加入圖像分割星球
總結
本期我們一起了解了用于實例分割任務的。然而,除了語義分割與實例分割,分割任務中還有一個“新來的”——全景分割。那么全景分割與它們有何不同,又該如何實現呢?我們下回見!
本周直播(點擊圖片跳轉)
今日網絡結構
有三AI生態
更多精彩內容請關注知乎專欄《有三AI學院》
轉載文章請后臺聯系
侵權必究
往期精選