【深度学习】Panoptic FCN:真正End-to-End的全景分割
在計(jì)算機(jī)視覺中,所有視覺可見的事物都可以描述成thing和stuff兩種形式(thing指的是可數(shù)物體如人、動物、工具,stuff指的是具有相似結(jié)構(gòu)或材料的非晶態(tài)區(qū)域如草、天空、道路),從而延申出了兩類經(jīng)典的計(jì)算機(jī)視覺任務(wù):語義分割和實(shí)例分割。其中語義分割的任務(wù)是預(yù)測每個像素點(diǎn)的語義類別(即預(yù)測stuff),而實(shí)例分割的任務(wù)是預(yù)測每個實(shí)例物體包含的像素區(qū)域(即預(yù)測thing),分別如上圖b和c所示。然而從圖片中可以看出,語義分割和實(shí)例分割都不足以完備的描述出一副圖像中的視覺信息,2019年FAIR首次提出全景分割的概念,全景分割任務(wù)需要同時預(yù)測出每個像素點(diǎn)賦予類別Label和實(shí)例ID(即同時預(yù)測thing和stuff,如圖d所示),如果能夠很好的解決全景分割任務(wù),那么就能夠完備的描述出一幅圖像的視覺信息,對于無人駕駛、VR等場景來說,完備的場景解析是非常有意義的。
下面主要先介紹一下全景分割的一些主要指標(biāo),然后回顧一下之前流行的box-based和box-free的全景分割算法(以Panoptic FPN和DeeperLab為例),最后重點(diǎn)講一下中2021CVPR Oral的Panoptic FCN,個人認(rèn)為是目前真正意義上的第一個End-to-End全景分割,非常精彩!
01
評價(jià)指標(biāo)
FAIR為全景分割設(shè)計(jì)了新的評價(jià)標(biāo)準(zhǔn) PQ (panoptic segmentation) 、SQ ( segmentation quality)、RQ (recognition quality) ,計(jì)算公式如下:
其中,RQ是檢測中應(yīng)用廣泛的 F1 score,用來計(jì)算全景分割中每個實(shí)例物體識別的準(zhǔn)確性,SQ 表示匹配后的預(yù)測 segment與標(biāo)注 segment 的 mIOU,如下圖所示,只有當(dāng)預(yù)測 segment 與標(biāo)注 segment 的 IOU 嚴(yán)格大于 0.5 時,認(rèn)為兩個 segment 是匹配的。
從上面的公式能夠看到,在預(yù)測與標(biāo)注匹配后的分割質(zhì)量 SQ 計(jì)算時,評價(jià)指標(biāo)PQ只關(guān)注每個實(shí)例的分割質(zhì)量,而不考慮不同實(shí)例的大小,即大物體與小物體的分割結(jié)果對最終的PQ結(jié)果影響相同。然而在一些應(yīng)用場景中更關(guān)注大物體的分割結(jié)果,如肖像分割中大圖的人像分割、自動駕駛中近距離的物體等,于是進(jìn)一步提出了 PC (Parsing Covering) 評價(jià)指標(biāo),計(jì)算公式如下:
其中,???分別表示對應(yīng)類別的預(yù)測 segments 與真實(shí) segments, 表示對應(yīng)類別的實(shí)例在真實(shí)標(biāo)注中像素點(diǎn)數(shù)量, ??表示類別為i的真實(shí)標(biāo)注像素點(diǎn)總和。通過對大的實(shí)例物體賦予更大的權(quán)重,??使評價(jià)指標(biāo)能夠更明顯地反映大物體的分割指標(biāo)。
02
Panoptic FPN
Panoptic FPN是全景分割box-based的經(jīng)典方法,box-based的全景分割基本都跟Panoptic FPN非常類似,這里以Panoptic FPN為例,介紹一下box-based的全景分割常規(guī)做法。
如上圖所示,Panoptic FPN使用FPN作為backbone部分,來提取多尺度的語義信息,然后后續(xù)接一個instance segmentation branch,來預(yù)測instance,實(shí)際上fpn+instance segmentation branch等同于mask rcnn,其中instance segmentation branch由一個box branch和一個instance branch組成,instance的預(yù)測過程是先通過box branch預(yù)測出box,然后通過預(yù)測box的范圍在instance branch預(yù)測出instance,這就是box-based全景分割的由來。Panoptic FPN在mask rcnn的基礎(chǔ)上再增加一個semantic segmentation branch,來預(yù)測出semantic。instance segmentation branch和semantic segmentation branch的輸出分別對應(yīng)thing和stuff。
另外由于box-based的全景分割通過兩個branch分別預(yù)測thing和stuff,會導(dǎo)致出現(xiàn)兩個branch預(yù)測結(jié)果有重合區(qū)域,需要引入后處理過程來去重。Panoptic FPN設(shè)計(jì)的后處理過程和NMS很類似:
(1)根據(jù)不同實(shí)例的置信度來去除重疊部分
(2)以實(shí)例優(yōu)先原則去除實(shí)例和語義分割輸出之間的重疊部分
(3)去除stuff標(biāo)記為“其他”或者給定面積閾值下的區(qū)域
之后的box-based全景分割算法大多數(shù)都是圍繞著如何改進(jìn)后處理還有不同branch如何進(jìn)行信息融合進(jìn)行的。但是無論怎么改進(jìn),box-based的全景分割存在一個天然的缺陷,最終的預(yù)測結(jié)果主要取決于box branch的預(yù)測精度,并且box branch的feature map尺寸受限制。
03
DeeperLab
DeeperLab是全景分割box-free的經(jīng)典方法,去除了類似Panoptic FPN的box預(yù)測部分,直接預(yù)測出thing和stuff。相比Panoptic FPN等方法,去除了box branch預(yù)測精度的影響,并且能在更大feature map上進(jìn)行全景分割。
DeeperLab包含Encoder、Decoder 和 Prediction 三個部分,其中,Encoder 和 Decoder 兩個部分是參數(shù)共享的。在Encoder部分,末尾使用了ASPP模塊來增加特征表達(dá)能力;在Decoder部分,通過使用S2D和D2S模塊來高效的融合不同尺度的特征。
為了得到目標(biāo)實(shí)例預(yù)測,作者使用基于關(guān)鍵點(diǎn)的方法,在 object instance segmentation branch,同時預(yù)測了 keypoint heatmap、long-range offset map、short-range offset map和middle-range offset map四種輸出,得到像素點(diǎn)與每個實(shí)例關(guān)鍵點(diǎn)之間的關(guān)系,并依此融合形成類別未知的不同實(shí)例,另外semantic segmantion branch預(yù)測出語義信息,最后結(jié)合兩個branch輸出得到全景分割的結(jié)果。
04
Panoptic FCN
上述的以Panoptic FPN為代表的box-based全景分割還有以DeeperLab為代表的box-free全景分割都是將thing和stuff拆分成兩個branch來進(jìn)行預(yù)測的,這必然會引入更多的后處理還有設(shè)計(jì)不同branch信息融合的操作,整個系統(tǒng)顯的即冗余又復(fù)雜。個人認(rèn)為Panoptic FCN是真正意義上的第一個end-to-end全景分割,通過將thing和stuff統(tǒng)一成特征描述子kernels來進(jìn)行預(yù)測,同時省去了復(fù)雜后處理還有不同branch信息融合的操作,是全景分割發(fā)展歷程中的集大成者。
Panoptic FCN主要由Kernel Generator、Kernel Fusion和Feature Encoder三個部分組成。Panoptic FCN先通過引入kernel generator來為thing和stuff生成kernel weights,然后通過kernel fusion對多個stage的kernel weights進(jìn)行合并,feature encoder用來對高分辨率feature進(jìn)行編碼,最后將得到的kernels和編碼feature卷積得到最終預(yù)測結(jié)果。
Kernel Generator
kernel generator由kernel head和position head兩個branch構(gòu)成,首先通過position head同時預(yù)測thing和stuff的位置(其中,thing通過預(yù)測center來定位和分類,stuff通過region來定位和分類),然后根據(jù)thing和stuff的位置,從kernel head中產(chǎn)生kernel weights。這里有一個細(xì)節(jié)是,thing通過定位的點(diǎn)從kernel head對應(yīng)的點(diǎn)抽取kernel weight,而stuff通過定位的區(qū)域mask和kernel head相乘得到kernel weight,這樣子thing和stuff的kernel weight維度能夠保持相同。
Kernel Fusion
kernel fusion將不同stage產(chǎn)生的kernel weights進(jìn)行合并,保證thing的實(shí)例感知和stuff的語義一致性。簡單來說通過對不同stage的kernel weights平均池化產(chǎn)生所有thing和stuff的kernel weights,然后通過閾值來去除相似的kernel weight,最后產(chǎn)生M個thing的kernel weights和N個stuff的kernel weights。具體細(xì)節(jié)可以看開源code。
Feature Encoder
feature encoder首先對高分辨率feature進(jìn)行編碼得到編碼feature,然后用kernel fusion得到的M+N個kernel weights對encoded feature進(jìn)行卷積,得到最終的預(yù)測結(jié)果,其中每個輸出通道表示一個thing或者stuff的mask預(yù)測。和SOLO類似,Panoptic FCN的kernel head和feature encoder都引入了coord,有利于和position head特征進(jìn)行位置對齊,對精度的提升非常大。
實(shí)驗(yàn)結(jié)果
最終得到的實(shí)驗(yàn)結(jié)果,速度和精度的平衡超過了之前的全景分割算法。
Panoptic FCN是第一個將thing和stuff進(jìn)行統(tǒng)一預(yù)測,這對于如何解全景分割任務(wù)具有重大意義。
Reference
1. Panoptic Segmentation
2. Panoptic Feature Pyramid Networks
3. DeeperLab: Single-Shot Image Parser
4. Fully Convolutional Networks for Panoptic Segmentation
PPT: 一作ppt放在smarter公眾號上,回復(fù)Panoptic FCN即可獲得
paper: Fully Convolutional Networks for Panoptic Segmentation
code: https://github.com/yanwei-li/PanopticFCN
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請掃碼:總結(jié)
以上是生活随笔為你收集整理的【深度学习】Panoptic FCN:真正End-to-End的全景分割的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何禁用、隐藏、显示Windows11上
- 下一篇: 温州大学《深度学习》课程课件(一)