0
本文作者: skura | 2019-03-18 15:21 |
雷鋒網 AI 科技評論按,本文作者劉環(huán)宇,系浙江大學控制科學與工程自動化系碩士,曠視科技研究院算法研究員,全景分割算法 OANet 第一作者,研究方向包括全景分割、語義分割等。同時,他也是 2018 COCO + Mapillary 全景分割比賽曠視 Detection 組冠軍團隊成員。
本文原載于知乎,雷鋒網獲授權轉載。
前言
在計算機視覺中,圖像語義分割(Semantic Segmentation)的任務是預測每個像素點的語義類別;實例分割(Instance Segmentation)的任務是預測每個實例物體包含的像素區(qū)域。全景分割 [1] 最先由 FAIR 與德國海德堡大學聯(lián)合提出,其任務是為圖像中每個像素點賦予類別 Label 和實例 ID,生成全局的、統(tǒng)一的分割圖像。
接下來我們將全面解讀全景分割任務,下面這張思維導圖有助于大家整體把握全景分割任務特性:
全景分割解讀思維導圖
首先,我們將分析全景分割任務的評價指標及基本特點,并介紹目前最新的研究進展;然后介紹我們發(fā)表于 CVPR 2019 的工作 Occlusion Aware Network (OANet),以及曠視研究院 Detection 組參與的 2018 COCO Panoptic Segmentation 比賽工作介紹;最后對全景分割當前研究進行總結與分析。
任務與前沿進展解讀
全景分割任務,從任務目標上可以分為 object instance segmentation 子任務與 stuff segmentation 子任務。全景分割方法通常包含三個獨立的部分:object instance segmentation 部分,stuff segmentation 部分,兩子分支結果融合部分;通常 object instance segmentation 網絡和 stuff segmentation 網絡相互獨立,網絡之間不會共享參數(shù)或者圖像特征,這種方式不僅會導致計算開銷較大,也迫使算法需要使用獨立的后處理程序融合兩支預測結果,并導致全景分割無法應用在工業(yè)中。
因此,可以從以下幾個角度分析與優(yōu)化全景分割算法
(1)網絡框架搭建;
(2)子任務融合;
(3)全景輸出預測;
這三個問題分別對應的是全景分割算法中的三個重要環(huán)節(jié),下面我們將分別分析這些問題存在的難點,以及近期相關工作提出的改進方法與解決方案。
全景分割評價指標
FAIR 研究團隊 [1] 為全景分割定了新的評價標準 PQ (panoptic segmentation) 、SQ ( segmentation quality)、RQ (recognition quality),計算公式如下:
PQ 評價指標計算公式
其中,RQ 是檢測中應用廣泛的 F1 score,用來計算全景分割中每個實例物體識別的準確性,SQ 表示匹配后的預測 segment 與標注 segment 的 mIOU,如下圖所示,只有當預測 segment 與標注 segment 的 IOU 嚴格大于 0.5 時,認為兩個 segment 是匹配的。
全景分割預測結果與真實標注匹配圖解 [1]
從上面的公式能夠看到,在預測與標注匹配后的分割質量 SQ 計算時,評價指標 PQ 只關注每個實例的分割質量,而不考慮不同實例的大小,即大物體與小物體的分割結果對最終的 PQ 結果影響相同。Yang et al. [6] 注意到在一些應用場景中更關注大物體的分割結果,如肖像分割中大圖的人像分割、自動駕駛中近距離的物體等,提出了 PC (Parsing Covering) 評價指標,計算公式如下:
PC 評價指標計算公式
其中,R, R' 分別表示對應類別的預測 segments 與真實 segments,|R| 表示對應類別的實例在真實標注中像素點數(shù)量,Ni 表示類別為 i 的真實標注像素點總和。通過對大的實例物體賦予更大的權重,使評價指標能夠更明顯地反映大物體的分割指標。
網絡框架搭建
由于 object instance segmentation 子任務與 stuff segmentation 子任務分別屬于兩個不同的視覺預測任務,其輸入數(shù)據(jù)及數(shù)據(jù)增強方式、訓練優(yōu)化策略與方法、網絡結構與方法具有較大的不同,如何將兩個子任務融合并統(tǒng)一網絡結構、訓練策略,是解決該問題的關鍵。
FAIR 研究團隊提出了一種簡潔有效的網絡結構 Panoptic FPN [2],在網絡框架層面將語義分割的全卷積網絡(FCN)[3] 和實例分割網絡 Mask RCNN [4] 統(tǒng)一起來,設計了單一網絡同時預測兩個子任務,網絡結構如下圖所示。
Panoptic FPN 網絡框架圖
該網絡結構能夠有效預測 object instance segmentation 子任務與 stuff segmentation 子任務。在 Mask RCNN 網絡與 FPN [5] 的基礎上,作者設計了簡單而有效的 stuff segmentation 子分支:在 FPN 得到的不同層級的特征圖基礎上,使用不同的網絡參數(shù)得到相同大小的特征圖,并對特征圖進行加法合并,最后使用雙線性插值上采樣至原圖大小,并進行 stuff 類別預測。
MIT 與谷歌等聯(lián)合提出 DeeperLab [6],使用 bottom-to-up 的方法,同時實現(xiàn) object instance segmentation 子任務與 stuff segmentation 子任務,其網絡結構如下圖所示:
DeeperLab 網絡結構圖
該網絡包含了 encoder、decoder 與 prediction 三個環(huán)節(jié),其中,encoder 和 decoder 部分對兩個子任務均是共享的,為了增強 encoder 階段的特征,在 encoder 的末尾使用了 ASPP (Atrous Spatial Pyramid Pooling) 模塊 [7];而在 decoder 階段,首先使用 1×1 卷積對低層特征圖與 encoder 輸出的特征圖進行降維,并使用內存消耗較少的 space-to-depth [8, 9] 操作替代上采樣操作對低層特征圖進行處理,從而將低層特征圖(大小為原圖 1/4)與 encoder 輸出的特征圖(大小為原圖 1/16)拼接起來;最后,使用兩層 7×7 的大卷積核增加感受野,然后通過 depth-to-space 操作降低特征維度。
為了得到目標實例預測,作者采用類似 [10, 11, 12] 的使用基于關鍵點表示的方法,如下圖所示,在 object instance segmentation 子分支頭部,分別預測了 keypoint heatmap(圖 a)、long-range offset map(圖 b)、short-range offset map(圖 c)、middle-range offset map(圖 d)四種輸出,得到像素點與每個實例關鍵點之間的關系,并依此融合形成類別不可知的不同實例,最后得到全景分割的結果。
object instance segmentation 子分支頭部預測目標
子任務融合
雖然通過特征共享機制與網絡結構設計,能夠將 object instance segmentation 子任務與 stuff segmentation 子任務統(tǒng)一起來,但是這兩個子分支之間的相互聯(lián)系與影響并沒有得到充分的探究,例如:兩個子分支的任務是否能夠達到相互增益或者單向增益的效果?或者如何設計將兩個子分支的中間輸出或者預測關聯(lián)起來?這一部分問題我們可以統(tǒng)一將它稱作兩個子任務的相互提升與促進。
中科院自動化研究所提出了 AUNet [13],文中設計了 PAM(Proposal Attention Module)與 MAM(Mask Attention Module)模塊,分別基于 RPN 階段的特征圖與 object instance segmentation 輸出的前景分割區(qū)域,為 stuff segmentation 提供了物體層級注意力與像素層級注意力,其網絡結構圖如下圖所示:
AUNet 網絡結構圖
為了使 object instance segmentation 的預測輸出與 stuff segmentation 預測輸出保持一致性,豐田研究院設計了 TASCNet [14],其網絡結構如下圖所示:
TASCNet 網絡結構圖
網絡首先將 object instance segmentation 子分支得到的實例前景掩膜區(qū)域,映射到原圖大小的特征圖中,得到全圖尺寸下的實例前景掩膜區(qū)域,并與 stuff segmentation 預測的實例前景掩膜進行對比,使用 L2 損失函數(shù)最小化兩個掩膜的殘差。
全景輸出預測
Object instance segmentation 子分支與 stuff segmentation 子分支的預測結果在融合的過程中,一般通過啟發(fā)式算法(heuristic algorithm)處理相沖突的像素點,例如簡單地以 object instance segmentation 子分支的預測結果為準,并以 object instance segmentation 子分支的檢測框得分作為不同實例的合并依據(jù)。
這種方式依據(jù)簡單的先驗邏輯判斷,并不能較好地解決全景分割復雜的合并情況,因此,如何設計有效的模塊解決 object instance segmentation 子分支與 stuff segmentation 子分支到全景分割輸出的融合過程,也是全景分割任務中的重要問題。
Uber 與港中文聯(lián)合提出了 UPSNet [15],其網絡結構圖如下圖所示:
UPSNet 網絡結構圖
將 object instance segmentation 子分支與 stuff segmentation 子分支的輸出通過映射變換,可得到全景頭部輸出的特征張量,該張量大小為 (Ninst+ Nstuff)×H×W,其中,N_{inst} 為動態(tài)變量,表示一張圖像中實例的數(shù)量,Nstuff 表示 stuff 類別個數(shù),對于每張圖像其數(shù)值是相同的,下文使用 Xthing 和 Xstuff 分別表示這兩種特征張量。此外,網絡對像素進行了未知類別的預測(Unknown Prediction),從而使得網絡能夠將部分像素點判斷為未知類別并在測試的時候進行忽略,避免做出錯誤的類別導致 PQ 指標下降。
在得到 object instance segmentation 子分支與 stuff segmentation 子分支的輸出后,經過如下圖所示的變換,映射成 Xthing 和 Xstuff。
panoptic segmentation head 示意圖
Xstuff 可以直接從不規(guī)則類別分割的輸出中提取,Xthing 中的第 i 個實例的掩膜區(qū)域可由 Xmaski + Ymaski 獲得,其中 Xmaski 表示第 i 個實例對應的真實標注框與標注類別在 stuff segmentation 子分支輸出截取的掩膜區(qū)域,Ymaski 表示第 i 個實例對應的 instance segmentation 子分支得到的掩膜區(qū)域映射到原圖的掩膜區(qū)域,最后使用標準的逐像素點的交叉熵損失函數(shù)對全景頭部輸出的張量進行監(jiān)督訓練。
Occlusion Aware Network 專欄解讀
論文鏈接:
An End-to-End Network for Panoptic Segmentation
Motivation
在全景分割相關實驗中,我們發(fā)現(xiàn),依據(jù)現(xiàn)有的啟發(fā)式算法進行 object instance segmentation 子分支與 stuff segmentation 子分支的預測合并,會出現(xiàn)不同實例之間的遮擋現(xiàn)象。為了解決不同實例之間的遮擋問題,我們提出了 Occlusion Aware Network(OANet),并設計了空間排序模塊(Spatial Ranking Module),該模塊能夠通過網絡學習得到新的排序分數(shù),并為全景分割的實例分割提供排序依據(jù)。
網絡結構設計
我們提出的端到端的全景分割網絡結構如下圖所示,該網絡融合 object instance segmentation 子分支與 stuff segmentation 子分支的基礎網絡特征,在一個網絡中同時實現(xiàn)全景分割的訓練與預測。在訓練過程中,對于 stuff segmentation 我們同時進行了 object 類別與 stuff 類別的監(jiān)督訓練,實驗表明這種設計有助于 stuff 的預測。
OANet 網絡結構圖
采用一種類似語義分割的方法,我們提出一個簡單但非常有效的算法,稱作 Spatial Ranking Module,能夠較好地處理遮擋問題,其網絡結構如下所示:
Spatial Ranking Module 網絡結構圖
我們首先將輸入的實例分割結果映射到原圖大小的張量之中,該張量的維度是實例物體類別的數(shù)量,不同類別的實例分割掩膜會映射到對應的通道上。張量中所有像素點位置的初始化數(shù)值為零,實例分割掩膜映射到的位置其值設為 1;在得到該張量后,使用大卷積核 [16] 進行特征提取,得到空間排序得分圖;最后,我們計算出每個實例對象的空間排序得分,如下所示:
這里,Si; j; cls 表示類別為 cls 的、像素點(i; j)中的得分值,需要注意的是 Si; j; cls 已被歸一化為概率,mi; j 是掩膜像素點指示符,表示像素點(i; j)是否屬于實例,每個實例的空間排序得分由預測的掩碼區(qū)域所有像素點的排序分數(shù)平均得到,Pobjs 表示最終得到的每個實例的排序得分,并將此得分用于全景輸出。
如下圖所示,若使用目前通用的啟發(fā)式融合算法,即僅基于實例分割的檢測框的置信度作為遮擋處理依據(jù),如圖所示,行人檢測框的置信度要明顯高于領帶檢測框的置信度,當兩個實例發(fā)生重疊時,領帶的實例會被行人實例遮擋;當加入空間排序得分模塊后,我們通過該模塊可以預測得到兩個實例的空間排序分數(shù),依據(jù)空間排序分數(shù)得到的排序會更可靠,PQ 會有更大改善。
空間排序模塊流程示意圖
實驗分析
我們對 stuff segmentation 分支的監(jiān)督信號進行了剝離實驗,如下表所示,實驗表明,同時進行 object 類別與 stuff 類別的監(jiān)督訓練,能夠為 stuff segmentation 提供更多的上下文信息,并改進預測結果。
為了探究 object instance segmentation 子分支與 stuff segmentation 子分支的共享特征方式,我們設計了不同的共享結構并進行實驗,如下表所示,實驗表明,共享基礎模型特征與 FPN 結構的連接處特征,能夠提高全景分割指標 PQ。
為了探究我們提出的 spatial ranking module 算法的有效性,我們在不同基礎模型下進行了實驗,如下表所示,其中,w/ spatial ranking module 表示使用我們提出的空間排序模塊得到的結果,從實驗結果中可以看到,空間排序模塊能夠在不同的基礎模型下大幅提高全景分割的評測結果。
為了測試不同卷積設置對學習處理遮擋的影響,進行了如下實驗,結果表明,提高卷積的感受野可以幫助網絡學習獲得更多的上下文特征,并取得更好的結果。
下表是本文提出的算法與現(xiàn)有公開指標的比較,從結果中可以看到,本文提出的算法能夠取得最優(yōu)的結果。
總結與分析
從上文的文獻分析來看,全景分割任務的不同重要問題均得到了廣泛探究,但是全景分割任務依然是有挑戰(zhàn)性、前沿的場景理解問題,目前仍存在一些問題需要進行探究:
第一,由于全景分割可通過分別預測實例分割子任務與不規(guī)則類別分割子任務、兩個子任務預測結果融合得到,整個算法流程中包含較多的細節(jié)與后處理操作,包括 segments 的過濾、啟發(fā)式融合算法、ignore 像素點的判斷等。這些細節(jié)對全景分割指標有較大的影響,在一定程度上也阻礙了不同算法的對比與評測;
第二,全景分割評測指標雖然能夠較好地評測全景分割中實例物體檢測準確度,以及實例物體與不規(guī)則類別的分割準確度,但是該評測指標更側重每個實例,并沒有關注每個實例之間的區(qū)別。文獻 [6] 提出了對大物體有更好的評測指標 PC (Parsing Covering),使得大物體的分割效果對最終的評測指標影響更大,在一些關注大物體的任務如肖像分割、自動駕駛中更為有效;
第三,全景分割中子任務的融合問題,目前研究依然較多地將全景分割看做是 object instance segmentation 與 stuff segmentation 兩個子任務的合集,如何從全局、統(tǒng)一的分割問題出發(fā),針對性設計符合全景分割的統(tǒng)一網絡,具有重要的意義。
參考文獻
[1] Kirillov A, He K, Girshick R, et al. Panoptic segmentation[J]. arXiv preprint arXiv:1801.00868, 2018.
[2] Kirillov A, Girshick R, He K, et al. Panoptic Feature Pyramid Networks[J]. arXiv preprint arXiv:1901.02446, 2019.
[3] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 3431-3440.
[4] He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.
[5] Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.
[6] Yang T J, Collins M D, Zhu Y, et al. DeeperLab: Single-Shot Image Parser[J]. arXiv preprint arXiv:1902.05093, 2019.
[7] Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 40(4): 834-848.
[8] Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1874-1883.
[9] Sajjadi M S M, Vemulapalli R, Brown M. Frame-recurrent video super-resolution[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 6626-6634.
[10] Papandreou G, Zhu T, Chen L C, et al. PersonLab: Person pose estimation and instance segmentation with a bottom-up, part-based, geometric embedding model[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 269-286.
[11] Tychsen-Smith L, Petersson L. Denet: Scalable real-time object detection with directed sparse sampling[C] // Proceedings of the IEEE International Conference on Computer Vision. 2017: 428-436.
[12] Law H, Deng J. Cornernet: Detecting objects as paired keypoints [C] // Proceedings of the European Conference on Computer Vision (ECCV). 2018: 734-750.
[13] Li Y, Chen X, Zhu Z, et al. Attention-guided unified network for panoptic segmentation[J]. arXiv preprint arXiv:1812.03904, 2018.
[14] Li J, Raventos A, Bhargava A, et al. Learning to fuse things and stuff[J]. arXiv preprint arXiv:1812.01192, 2018.
[15] Xiong Y, Liao R, Zhao H, et al. UPSNet: A Unified Panoptic Segmentation Network[J]. arXiv preprint arXiv:1901.03784, 2019.
[16] Peng C, Zhang X, Yu G, et al. Large Kernel Matters--Improve Semantic Segmentation by Global Convolutional Network[C] // Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4353-4361.
雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知。