實(shí)時(shí)性語(yǔ)義分割算法大盤(pán)點(diǎn)

極市導(dǎo)讀
?語(yǔ)義圖像分割是計(jì)算機(jī)視覺(jué)中發(fā)展最快的領(lǐng)域之一,有著廣泛的應(yīng)用。本文以24篇相關(guān)論文作為切入點(diǎn),總結(jié)匯總了多種實(shí)時(shí)性語(yǔ)義分割的算法,非常值得分享收藏。>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿
語(yǔ)義分割論文
分類(lèi),即將圖像中最具代表性的物體歸為某一個(gè)類(lèi); 帶有定位的分類(lèi),對(duì)分類(lèi)任務(wù)的一個(gè)擴(kuò)展,使用邊界框?qū)?duì)象框起來(lái)在分類(lèi); 目標(biāo)檢測(cè),對(duì)多個(gè)不同類(lèi)型的對(duì)象進(jìn)行分類(lèi)和定位; 語(yǔ)義分割,是對(duì)圖像中的每個(gè)像素進(jìn)行分類(lèi)和定位; 實(shí)例分割,是語(yǔ)義分割的擴(kuò)展,在實(shí)例分割中,相同類(lèi)型的不同對(duì)象被視為不同的對(duì)象; 全景分割,結(jié)合語(yǔ)義分割和實(shí)例分割,所有像素被分配一個(gè)類(lèi)標(biāo)簽,所有對(duì)象實(shí)例都被獨(dú)立分割
【1】自主駕駛車(chē)輛實(shí)時(shí)語(yǔ)義分割的比較研究


【2】高效的語(yǔ)義分割CNN設(shè)計(jì)技術(shù)分析




1x1卷積降維,減少卷積的輸入通道數(shù) Group convolution Depth-wise Separable convolution

【3】基于空間稀疏性的實(shí)時(shí)語(yǔ)義圖像分割




【4】ENet:一種用于實(shí)時(shí)語(yǔ)義分割的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)


【5】ICNet用于高分辨率圖像的實(shí)時(shí)語(yǔ)義分割


【6】加速自動(dòng)駕駛的語(yǔ)義分割



【7】高效卷積網(wǎng)絡(luò)用于實(shí)時(shí)語(yǔ)義分割






【8】ERFNet:用于實(shí)時(shí)語(yǔ)義分割的高效殘差分解卷積網(wǎng)絡(luò)


【9】EDANet:用于實(shí)時(shí)語(yǔ)義分割的高效的非對(duì)稱(chēng)卷積密集模塊



【10】ESPNet:擴(kuò)展卷積的高效空間金字塔語(yǔ)義分割


【11】ESPNetv2:一個(gè)輕量級(jí)、高效、通用的卷積神經(jīng)網(wǎng)絡(luò)

【12】輕量級(jí)語(yǔ)義分段的集中綜合卷積



【13】用于實(shí)時(shí)語(yǔ)義分割的雙向分割網(wǎng)絡(luò)
《BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1808.00897.pdf
本文的出發(fā)點(diǎn)是因?yàn)橐酝墓ぷ髦械?.感受野太小 2.空間信息的損失
關(guān)于空間信息
空間信息(Spatial information)主要指的是圖像的局部細(xì)節(jié)信息,尤其是對(duì)于邊緣豐富的圖像。由于卷積網(wǎng)絡(luò)規(guī)模大,一般要求輸入圖像尺寸較小,需要對(duì)原始圖像進(jìn)行Crop或者Resize,這個(gè)過(guò)程會(huì)損失細(xì)節(jié)的空間信息。通過(guò)設(shè)置只包含3個(gè)網(wǎng)絡(luò)的Spacial Path,可保留豐富的空間信息,進(jìn)而將低緯度的空間細(xì)節(jié)信息與高緯度的信息整合。
網(wǎng)絡(luò)框架:

右邊為特征融合模塊(FFM):
Spatial Path 捕獲的空間信息編碼了絕大多數(shù)的豐富細(xì)節(jié)信息,Context Path 的輸出特征主要編碼語(yǔ)境信息。兩路網(wǎng)絡(luò)的特征并不相同,因此不能簡(jiǎn)單地加權(quán)兩種特征,要用一個(gè)獨(dú)特的特征融合模塊以融合這些特征。
實(shí)驗(yàn)結(jié)果:

【14】用于實(shí)時(shí)語(yǔ)義分割的輕量級(jí)精細(xì)網(wǎng)
《Light-Weight RefineNet for Real-Time Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1810.03272v1.pdf
論文提出了RefineNet 的輕量化版本Light-Weight RefineNet ,針對(duì)實(shí)時(shí)分割任務(wù),將速度從20FPS提升到了55FPS(GPU,512*512輸入,Mean IOU 81.1%,PASCAL VOC測(cè)試集)。
網(wǎng)絡(luò)結(jié)構(gòu):



RefineNet 的總體網(wǎng)絡(luò)結(jié)構(gòu),分為下采樣的encoder部分和上采樣的decoder部分。網(wǎng)絡(luò)主要包含4個(gè)模塊,RCU,CRP,F(xiàn)USION,CLF。為了輕量化該網(wǎng)絡(luò),分別使用RCU-LW,CRP-LW。
FUSION-LW替換了原始網(wǎng)絡(luò)的RCU,CRP,F(xiàn)USION。通過(guò)后續(xù)的實(shí)驗(yàn)作者又發(fā)現(xiàn)RCU對(duì)于網(wǎng)絡(luò)的精度提升效果微弱,因此將RCU模塊也去掉了。
為什么去掉RCU模塊,網(wǎng)絡(luò)精度影響很???
因?yàn)椋?/span>
(1)雖然RCU模塊中的3*3卷積使得網(wǎng)絡(luò)具有更大的感受野,但是通過(guò)shortcut結(jié)構(gòu),底層特征和高層特征也可以共享。
(2)CRP模塊也可以獲得上下文的信息。
可以從下圖看出,RCU模塊對(duì)精度提升微弱,而CRP模塊對(duì)精度提升明顯。

模型參數(shù)比較:

基于ResNet101的基礎(chǔ)結(jié)構(gòu)的RefineNet,第一個(gè)為傳統(tǒng)的RefineNet,第二個(gè)為帶RCU的RefineNet,第三個(gè)為不帶RCU的RefineNet??梢?jiàn)RefineNet-101-LW相比RefineNet-101將參數(shù)量和運(yùn)算量都大大降低。
【15】ShelfNet用于實(shí)時(shí)語(yǔ)義分割
《ShelfNet for Real-time Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1811.11254v1.pdf
該文章提出了一種全新的架構(gòu)——ShelfNet,利用多個(gè)編碼-解碼結(jié)構(gòu)對(duì) 來(lái)改善網(wǎng)絡(luò)中的信息流動(dòng)。
同一個(gè)殘差塊的兩個(gè)卷積層貢獻(xiàn)權(quán)重,在不影響精度的條件下,減少參數(shù)量;
在多個(gè)Benckmark上得到驗(yàn)證
模型結(jié)構(gòu):

ShelfNet可以看作是FCNs的集合。一些信息流路徑的例子用不同的顏色標(biāo)記。每個(gè)路徑相當(dāng)于一個(gè)FCN(除了在ResNet主干中有池化層)。與FCN集合的等價(jià)性使ShelfNet能夠用一個(gè)小的神經(jīng)網(wǎng)絡(luò)來(lái)執(zhí)行精確的分割。

【16】LadderNet:用于醫(yī)學(xué)圖像分割的基于U-NET的多路徑網(wǎng)絡(luò)
《LadderNet: MULTI-PATH NETWORKS BASED ON U-NET FOR MEDICAL IMAGE SEGMENTATION》
鏈接:https://arxiv.org/pdf/1810.07810.pdf
模型結(jié)構(gòu):

1、3是編碼器分支,2、4是解碼器分支,A-E是不同級(jí)的特征。整個(gè)模型沒(méi)有使用池化層,用的是一個(gè)步長(zhǎng)為2的卷積層代替,通道數(shù)在編碼器部分逐級(jí)翻倍。
可以看出這是兩個(gè)U-Net相連,有兩個(gè)U形(12, 34),而這兩個(gè)U形之間的A-D級(jí)采用跳接連接起來(lái)。U-Net網(wǎng)絡(luò)是,跳接用的是融合,也就是通道數(shù)相加,但是這里用的直接求和的模式(要求通道數(shù)必須一樣)。
但增加更多的encoder-decoder分支會(huì)導(dǎo)致參數(shù)增加,訓(xùn)練變得困難,所以作者又采用了Shared-weights residual block(參數(shù)共享殘差塊),如下圖所示。

【17】ShuffleSeg實(shí)時(shí)語(yǔ)義分割網(wǎng)絡(luò)
《SHUFFLESEG: REAL-TIME SEMANTIC SEGMENTATION NETWORK》
鏈接:https://arxiv.org/pdf/1803.03816.pdf
嗯。。。這篇文章沒(méi)深刻說(shuō)的,哈哈。
該架構(gòu)將分成兩個(gè)主要模塊進(jìn)行解釋?zhuān)贺?fù)責(zé)提取特征的編碼模塊,負(fù)責(zé)在網(wǎng)絡(luò)中進(jìn)行上采樣以計(jì)算最終類(lèi)別的概率圖的解碼模塊。

1)基于ShuffleNet (Shufflenet: An extremely efficient convolutional neural network for mobile devices) 提出的分割網(wǎng)絡(luò)
2)編碼器使用ShuffleNet 單元,解碼器綜合了 UNet、FCN8s 和 Dilation Frontend 的結(jié)構(gòu);速度快,沒(méi)有什么創(chuàng)新。。。。
【18】RTSeg:實(shí)時(shí)語(yǔ)義分割比較研究
《RTSeg: REAL-TIME SEMANTIC SEGMENTATION COMPARATIVE STUDY》
鏈接:https://arxiv.org/pdf/1803.02758.pdf
提供特征提取和解碼方法,稱(chēng)為元架構(gòu);
給出了計(jì)算精度和計(jì)算效率之間的權(quán)衡;
Shufflenet比segment減少了143x gflops;
模型結(jié)構(gòu):


使用空洞卷積代替下采樣的feature map,空洞卷積確保網(wǎng)絡(luò)維持足夠的感受野而不需要通過(guò)pooling和stride conv來(lái)破壞像素結(jié)構(gòu);
Meta-Architectures
1)SkipNet meta-architecture;
2)U-Net meta-architecture;
3)Dilation Frontend meta-architecture;
【19】ContextNet:實(shí)時(shí)為語(yǔ)義分割探索上下文和細(xì)節(jié)
《ContextNet: Exploring Context and Detail for Semantic Segmentation in Real-time》
鏈接:https://arxiv.org/pdf/1805.04554.pdf
模型結(jié)構(gòu):

ContextNet利用更深層的網(wǎng)絡(luò),增加的層數(shù)有助于學(xué)習(xí)更復(fù)雜和抽象的特征,從而提高準(zhǔn)確性,但也增加了運(yùn)行時(shí)間。聚合來(lái)自多個(gè)分辨率的上下文信息是有益的,結(jié)合了多個(gè)級(jí)別的信息以提高性能。
Depth-wise Convolution to Improve Run-time:
深度可分離卷積將標(biāo)準(zhǔn)卷積(Conv2d)分解為深度上的卷積(DWConv),也稱(chēng)為空間或通道上的卷積,然后是1×1的點(diǎn)卷積層。因此,跨通道和空間相關(guān)性的計(jì)算是獨(dú)立的,這大大減少了參數(shù)的數(shù)量,導(dǎo)致更少的浮點(diǎn)運(yùn)算和快速的執(zhí)行時(shí)間。
ContextNet利用了DWConv,輸入下采樣的子網(wǎng)使用了DWConv的瓶頸殘差塊。
Capturing Global and Local Context:
ContextNet有兩個(gè)分支,一個(gè)是全分辨率(h×w),另一個(gè)是低分辨率(如h/4 w/4),輸入圖像高度h,寬度w。每個(gè)分支都有不同的職責(zé);后者捕捉圖像的全局上下文,前者為更高分辨率的分割提供細(xì)節(jié)信息。
為了快速提取特征,語(yǔ)義豐富的特征只從最低可能的分辨率提??;
局部上下文的特征通過(guò)一個(gè)非常淺的分支從全分辨率輸入中分離出來(lái),然后與低分辨率的結(jié)果相結(jié)合。
【20】CGNet:一個(gè)輕量級(jí)的上下文引導(dǎo)的語(yǔ)義分割網(wǎng)絡(luò)
《CGNet: A Light-weight Context Guided Network for Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1811.08201.pdf
該文分析了語(yǔ)義分割的內(nèi)在特性,提出了學(xué)習(xí)局部特征和周?chē)舷挛牡穆?lián)合特征,并進(jìn)一步改進(jìn)全局上下文的聯(lián)合特征的CG塊。有效的利用 local feature, surrounding context and global context。其中的CG塊,在各個(gè)階段有效地捕獲上下文信息。CGNet的主干是專(zhuān)門(mén)為提高分割精度而定制的,以減少參數(shù)的數(shù)量和節(jié)省內(nèi)存占用。在相同數(shù)量的參數(shù)下,提出的CGNet顯著優(yōu)于現(xiàn)有的分割網(wǎng)絡(luò)(如ENet和ESPNet)。
模型結(jié)構(gòu):

在CG block引入殘差學(xué)習(xí),兩種方式:local residual learning (LRL) 和global residual learning (GRL),如下圖所示:

由CG block定義CGNet:較少的卷積層和較少的通道數(shù),從而減少參數(shù)量。


個(gè)人觀點(diǎn):
1)CGNet進(jìn)一步拓展了non-local的概念,從local,surrounding和global三個(gè)層次獲取空間特征間的關(guān)聯(lián)。
2)在CGNet的stage2和stage3都使用GC block,區(qū)別于non-local中只有resnet部分stage和部分blcok之間引入non-local機(jī)制。
【21】用于自動(dòng)駕駛的實(shí)時(shí)語(yǔ)義分割解碼器的設(shè)計(jì)
《Design of Real-time Semantic Segmentation Decoder for Automated Driving》
鏈接:https://arxiv.org/pdf/1901.06580.pdf
本文是采用編碼解碼結(jié)構(gòu),編碼器是獨(dú)立的10層VGG。

使用stride 2卷積后的max-pooling來(lái)減少空間問(wèn)題,這樣就減少了超參數(shù)的數(shù)量和運(yùn)行時(shí)。顯然,這是為了分割精度的權(quán)衡,但對(duì)于檢測(cè)、分類(lèi)等其他任務(wù)則不是這樣??紤]到該編碼器是功能獨(dú)立的,需要在解碼器方面通過(guò)廣泛學(xué)習(xí)語(yǔ)義特征來(lái)克服空間信息探索的差距。

非瓶頸層的設(shè)計(jì)如下圖所示。它同時(shí)包含1D和3D卷積核。一維核主要一次從一個(gè)方向提取信息,三維核主要從較大的接受區(qū)域收集特征。之后通過(guò)不同大小的多個(gè)kernel來(lái)尋找密集的信息,例如3×3, 5×5和1×1。接下來(lái),融合使用不同內(nèi)核提取的特征。該方法有助于總結(jié)從不同接受區(qū)域收集到的語(yǔ)義特征。合成的特征再一次與輸入特征融合到同一個(gè)非瓶頸層。在所提出的非瓶頸層中,多個(gè)跳轉(zhuǎn)連接到特征融合塊,這有助于處理高梯度流,因?yàn)樵诜聪騻鞑r(shí),傳入的梯度分布在所有路徑中。

我們知道解碼器做得更寬,運(yùn)行時(shí)間會(huì)大幅提高。因此,定期減少特征圖的數(shù)量是負(fù)擔(dān)不起的,也超出了模型的預(yù)算。
【22】DSNet:用于實(shí)時(shí)駕駛場(chǎng)景的語(yǔ)義分割
《DSNet: DSNet for Real-Time Driving Scene Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1812.07049v1.pdf
DSNet是一種高效且強(qiáng)大的單元和非對(duì)稱(chēng)的編解碼器架構(gòu)。采用混合擴(kuò)張卷積方案來(lái)克服網(wǎng)格化問(wèn)題。
DSNet詳細(xì)結(jié)構(gòu)如下表:

參考ShuffleNet V2總結(jié)了輕量框架指導(dǎo)準(zhǔn)則如下:
準(zhǔn)則1:等信道寬度最小化內(nèi)存訪問(wèn)成本(MAC)
準(zhǔn)則2:過(guò)多的組卷積增加MAC
準(zhǔn)則3:網(wǎng)絡(luò)碎片化降低并行度
準(zhǔn)則4:Element-wise操作不可忽略
DSNet單元模塊:

采用ENet的初始單元,使用最大池和步長(zhǎng)2的卷積對(duì)輸入進(jìn)行下采樣。深度可分卷積替換為擴(kuò)張型卷積,以擴(kuò)大接收域,這對(duì)語(yǔ)義分割至關(guān)重要。
【23】Fast-SCNN:快速語(yǔ)義分割網(wǎng)絡(luò)
《Fast-SCNN: Fast Semantic Segmentation Network》
鏈接:https://arxiv.org/pdf/1902.04502.pdf
我們知道在語(yǔ)義分割中較大的接受野對(duì)于學(xué)習(xí)目標(biāo)類(lèi)之間的復(fù)雜關(guān)聯(lián)(即全局上下文)很重要,圖像中的空間細(xì)節(jié)對(duì)于保持目標(biāo)邊界是必要的,需要特定的設(shè)計(jì)來(lái)平衡速度和準(zhǔn)確性(而不是重新定位分類(lèi)DCNNs)。
模型框架:

two-branch 網(wǎng)絡(luò),它在低分辨率位置使用一個(gè)較深的 branch 來(lái)捕捉環(huán)境信息,在高分辨率位置使用一個(gè)較淺的 branch 來(lái)學(xué)習(xí)細(xì)節(jié)信息。然后,將這二者融合起來(lái),形成最終的語(yǔ)義分割結(jié)果。
本文的主要貢獻(xiàn):
1)提出了一個(gè)實(shí)時(shí)語(yǔ)義分割算法 Fast-SCNN,在高清圖像上準(zhǔn)確率為68%,速度為123.5幀每秒;
2)調(diào)整了 skip connection,提出了一個(gè)淺層的 learning to downsample 模塊,可以快速而高效地通過(guò) multi-branch 來(lái)提取低層次特征;
3)設(shè)計(jì)了low capacity Fast-SCNN,對(duì)于small capacity網(wǎng)絡(luò)而言,多訓(xùn)練幾個(gè) epoch的效果和在ImageNet上進(jìn)行預(yù)訓(xùn)練是一樣的。
之前的PSPNet 中的金字塔池化模塊和DeepLab中的 atrous 空間金字塔池化(ASPP)用于 encode 和利用全局信息。與目標(biāo)檢測(cè)類(lèi)似,速度是語(yǔ)義分割系統(tǒng)設(shè)計(jì)中的一個(gè)重要因素?;贔CN,SegNet 引入了一個(gè)聯(lián)合 encoder-decoder 模型,是最早的高效率分割模型之一。延續(xù)SegNet,ENet 也設(shè)計(jì)了 encoder-decoder ,層數(shù)較少,降低計(jì)算成本。然后,two-branch 和 multi-branch 系統(tǒng)出現(xiàn)了。ICNet, ContextNet, BiSeNet, GUN 通過(guò)一個(gè)較深的 branch 在低分辨率輸入上學(xué)習(xí)全局信息,通過(guò)一個(gè)較淺的 branch 在高分辨率圖像上學(xué)習(xí)細(xì)節(jié)信息。但是,SOTA 的語(yǔ)義分割仍具挑戰(zhàn),通常需要高性能GPU。受 two-branch 啟發(fā),F(xiàn)ast-SCNN 加入了一個(gè)共享的淺層網(wǎng)絡(luò)來(lái)編碼細(xì)節(jié)信息,在低分辨率輸入上高效地學(xué)習(xí)全局信息。

詳細(xì)網(wǎng)絡(luò)如下表:

【24】ShuffleNet V2:語(yǔ)義分割的一個(gè)有效解決方案:具有可分卷積
《An efficient solution for semantic segmentation: ShuffleNet V2 with atrous separ:able convolutions》
鏈接:https://arxiv.org/pdf/1902.07476v1.pdf
本文設(shè)計(jì)的4個(gè)出發(fā)點(diǎn):
當(dāng)通道寬度不相等時(shí),內(nèi)存訪問(wèn)成本(MAC)就會(huì)增加,因此通道寬度應(yīng)該保持相等。
在提升MAC時(shí),應(yīng)該避免過(guò)度使用組卷積。
為了保持較高的并行度,應(yīng)該避免網(wǎng)絡(luò)碎片化。
諸如ReLU、Add、AddBias等元素明智操作是不可忽略的,應(yīng)該減少。
本文貢獻(xiàn):
在語(yǔ)義分割任務(wù)上使用ShuffleNetV2、DPC編碼器以及一個(gè)全新的解碼模塊實(shí)現(xiàn)了SOT的計(jì)算效率,在Cityscapes測(cè)試數(shù)據(jù)集上達(dá)到了70.33%的mIoU;
所提出的模型和實(shí)現(xiàn)完全兼容TensorFlow Lite,能夠在Android和iOS移動(dòng)手機(jī)平臺(tái)實(shí)時(shí)運(yùn)行;
TensorFlow的網(wǎng)絡(luò)實(shí)現(xiàn)以及訓(xùn)練模型都是開(kāi)源的。
模型結(jié)構(gòu):

如上圖所示,使用了ShufflenetV2框架來(lái)提取特征,然后接入DeepLabV3編碼器,最后使用雙線性縮放作為新的解碼器來(lái)生成分割掩模。網(wǎng)絡(luò)的設(shè)計(jì)與修改都是在ImageNet數(shù)據(jù)集上驗(yàn)證后作出的選擇。
特征提取之后使用DPC編碼器。文章提供了兩種不同架構(gòu)的DPC,一個(gè)是DPC基礎(chǔ)模塊,另一個(gè)是基于MobileNetV2的DPC模塊,細(xì)節(jié)如下圖所示:

編碼器輸出之后會(huì)經(jīng)過(guò)1×1卷積層降維,然后緊接著Dropout層、雙線性縮放和最后的分類(lèi)ArgMax。其中解碼部分采用的簡(jiǎn)單的雙線性縮放操作將特征圖縮放到原圖尺寸。
模型詳細(xì)結(jié)構(gòu)如下表所示:

推薦閱讀
從注意力機(jī)制出發(fā),上海交大提出實(shí)時(shí)語(yǔ)義分割新網(wǎng)絡(luò)LRNNet
南郵提出實(shí)時(shí)語(yǔ)義分割的輕量級(jí)網(wǎng)絡(luò):LEDNET,可達(dá) 71 FPS!70.6% class mIoU!即將開(kāi)源

