亚洲欧美日本A∨在线观看_黑人video粗暴亚裔_JAPANESE日本丰满少妇_九九精品91久久久久久再现_国产MD视频一区二区三区

首頁 > 聚焦 >

【論文筆記】DeepLab系列_天天熱頭條

發(fā)表時間:2023-05-21 10:28:21 來源:博客園

【深度學(xué)習(xí)】總目錄

DeepLab系列是谷歌團(tuán)隊(duì)提出的一系列語義分割算法。DeepLab v1于2014年推出,隨后2017到2018年又相繼推出了DeepLab v2,DeepLab v3以及DeepLab v3+。


(資料圖片)

DeepLab v1《Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs》兩個創(chuàng)新點(diǎn)是空洞卷積(Atros Convolution)和基于全連接條件隨機(jī)場(Fully Connected CRF),通過兩個模塊級聯(lián),在PASCAL語義分割挑戰(zhàn)中獲得了第一,準(zhǔn)確率超過第二名7.2%。DeepLab v2《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》,提出了空洞空間金字塔池化(Atros Spatial Pyramid Pooling,ASPP)。DeepLab v3《Rethinking Atrous Convolution for Semantic Image Segmentation》,重新討論了空洞卷積的使用,改進(jìn)了ASPP結(jié)構(gòu),并把CRFs后處理給移除掉了。DeepLab v3+《Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation》,仿照U-Net的結(jié)構(gòu)添加了一個向上采樣的解碼器模塊,用來優(yōu)化邊緣的精度。語義分割面臨的挑戰(zhàn)信號下采樣:連續(xù)的池化或下采樣操作會導(dǎo)致圖像的分辨率大幅度下降,從而損失了原始信息,且在上采樣過程中難以恢復(fù)。空間不變性:以獲取圖像中物體為核心的決策,必然需要空間不變性/不敏感,固有地限制了模型的空間精度。換句話說,對于同一張圖片進(jìn)行空間變換(如平移、旋轉(zhuǎn)),其圖片分類結(jié)果是不變的。但對于圖像分割,對一張圖片進(jìn)行空間變換后,其結(jié)果是改變的。多尺度特征:將不同尺度的特征圖送入網(wǎng)絡(luò)做融合,對于整個網(wǎng)絡(luò)性能的提升很大,但是由于圖像金字塔的多尺度輸入,造成計算時保存了大量的梯度,從而導(dǎo)致對硬件的要求很高。1×1">DeepLab V11×1">亮點(diǎn):空洞卷積

空洞卷積也叫擴(kuò)張卷積或者膨脹卷積,簡單來說就是在卷積核元素之間加入一些空格(零)來擴(kuò)大卷積核的過程。相同kernel size的空洞卷積和標(biāo)準(zhǔn)卷積的權(quán)重shape是一樣的,二者的差異在于空洞卷積改變了輸入的采樣方法, 標(biāo)準(zhǔn)卷積是連續(xù)地、不間隔地采樣,而空洞卷積是跳躍式地采樣,跳躍的步長就是dilation(r)。當(dāng)r=1時,空洞卷積和普通卷積一樣。當(dāng)r=2時,如下圖所示,空洞卷積的感受野大小為7x7,r=3時,感受野大小為15x15。

亮點(diǎn):CRF(Conditional Random Field)

輸入圖像經(jīng)過多層卷積下采樣后會導(dǎo)致分辨率大幅下降,這使得像素的位置信息丟失,導(dǎo)致還原圖像尺寸的過程pixel的定位有偏失,體現(xiàn)為pixel-wise的最終預(yù)測結(jié)果不準(zhǔn)確,這最主要表現(xiàn)在物體的邊緣位置。為了解決這個問題作者采用了fully-connected CRF方法,將網(wǎng)絡(luò)的輸出作為CRF的輸入,利用不同位置的像素類別信息關(guān)系,通過建立概率圖的方式,有效緩解了邊緣定位不準(zhǔn)確的問題。在DeepLab V3中移除了。

網(wǎng)絡(luò)結(jié)構(gòu)

(1)使用VGG16作為backbone,和FCN網(wǎng)絡(luò)一樣將全連接層的權(quán)重轉(zhuǎn)成了卷積層的權(quán)重,構(gòu)成全卷積網(wǎng)絡(luò)。第一個全連接層的改空洞卷積,通道數(shù)為1024,卷積核大小為3×3(FCN中是7×7),dilate rate設(shè)為12時(LargeFOV)效果比設(shè)為4時好。對于第二個全連接層(FC2)卷積核個數(shù)也由4096采樣成1024。

(2)Maxpool略有不同,VGG論文中是kernel=2,stride=2,但在DeepLabV1中是kernel=3,stride=2,padding=1。

(3)skip subsampling:將最后兩個Maxpool層的stride全部設(shè)置成1,不再下采樣。并且最后三個3×3卷積采用了空洞卷積,系數(shù)r=2。

實(shí)驗(yàn)

下表為在PASCAL VOC2012驗(yàn)證集上,改變第一個全連接層kernel size和空洞卷積rate后網(wǎng)絡(luò)的性能和訓(xùn)練速度。

DeepLab-CRF-7x7:直接將FC1按照FCN論文中的方法轉(zhuǎn)換成7x7大小的卷積層,并且膨脹因子r=4(receptive field=224)。DeepLab-CRF:將7x7下采樣到4x4大小的卷積層,同樣膨脹因子r=4(receptive field=128),可以看到參數(shù)減半,訓(xùn)練速度翻倍,但mean IOU下降了約4個點(diǎn)。DeepLab-CRF-4x4:在DeepLab-CRF的基礎(chǔ)上把膨脹因子r改成了8(receptive field=224),mean IOU又提升了回去了。DeepLab-CRF-LargeFOV:將7x7下采樣到3x3大小的卷積層,膨脹因子r=12(receptive field=224),相比DeepLab-CRF-7x7,參數(shù)減少了6倍,訓(xùn)練速度提升了3倍多,mean IOU不變。DeepLab V2亮點(diǎn): ASPP(Atrous Spatial Pyramid Pooling)

上圖(a)為DeepLab-LargeFOV主干網(wǎng)絡(luò)VGG16最后的全連接改卷積的部分,圖(b)將Pool5輸出的特征層并聯(lián)4個分支,每個分支分別通過一個3x3的空洞卷積層,1x1的卷積層,1x1的卷積層(卷積核的個數(shù)等于num_classes)。最后將四個分支的結(jié)果進(jìn)行Add融合即可。 如右圖 所示,為了對中心像素(橙色)進(jìn)行分類,ASPP通過使用具有不同rate的多個空洞卷積來獲得多尺度特征。不同顏色的框表示中心像素在不同rate下的感受野。如果是以ResNet101做為Backbone的話,每個分支只有一個3x3的膨脹卷積層,卷積核的個數(shù)等于num_classes。

在論文中有給出兩個ASPP的配置,ASPP-S(四個分支膨脹系數(shù)分別為2,4,8,12)和ASPP-L(四個分支膨脹系數(shù)分別為6,12,18,24),下表是對比LargeFOV、ASPP-S以及ASPP-L的效果。這里只看CRF之前的(beforeCRF)對比,ASPP-L優(yōu)于ASPP-S優(yōu)于LargeFOV。

網(wǎng)絡(luò)結(jié)構(gòu)

(1)以ResNet101作為backbone,將Layer3中的Bottleneck1的3×3卷積(stride=2)的stride設(shè)置為1,即不在進(jìn)行下采樣,同時3x3卷積層全部采用空洞卷積,系數(shù)為2。在Layer4中也是一樣,取消了下采樣,所有的3x3卷積層全部采用空洞卷積,系數(shù)為4。

(2)在backbone輸出的Feature Map上并聯(lián)四個分支,每個分支的第一層都是使用的空洞卷積,但不同的分支使用的膨脹系數(shù)不同(即每個分支的感受野不同,從而具有解決目標(biāo)多尺度的問題)。當(dāng)以ResNet101為Backbone時,每個分支只有一個3x3的空洞卷積層,卷積核的個數(shù)等于num_classes。

實(shí)驗(yàn)MSC表示多尺度輸入,即先將圖像縮放到0.5、0.7和1.0三個尺度,然后分別送入網(wǎng)絡(luò)預(yù)測得到score maps,最后融合這三個score maps(對每個位置取三個score maps的最大值)。COCO就代表在COCO數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練。Aug代表數(shù)據(jù)增強(qiáng),這里就是對輸入的圖片在0.5到1.5之間隨機(jī)縮放。

使用ResNet-101取代VGG16作為backbone后,mIOU由65.76%提升到68.72。MSC提升了2.55%,COCO預(yù)訓(xùn)練提升了2.01%,數(shù)據(jù)增強(qiáng)提升了1.6%,LargeFOV(3×3空洞卷積,rate=12)提升了0.6%,池化金字塔提升了0.8%,利用CRF后處理后達(dá)到了77.69%。

DeepLab V3

文中有給出兩個模型,分別是cascadedmodelASPPmodel,在cascadedmodel中是沒有使用ASPP模塊的,在ASPPmodel中是沒有使用cascadedblocks模塊的。作者說ASPPmodel比cascadedmodel略好點(diǎn)。包括在Github上開源的一些代碼,大部分也是用的ASPPmodel。

Cascaded model

上圖中,Block1,Block2,Block3,Block4是原始ResNet網(wǎng)絡(luò)中的層結(jié)構(gòu),后面又增加了額外的Block5,Block6,Block7,結(jié)構(gòu)和Block4一樣,即由三個殘差結(jié)構(gòu)構(gòu)成。如圖(a)中所示,這么設(shè)計的原因是引入的stride使在更深的block中捕獲long range information變得容易。比如圖(a)中整個圖像特征可以總結(jié)在最后一個小分辨率特征圖中。但是連續(xù)的stride削弱細(xì)節(jié)信息,因此加入空洞卷積,并且根據(jù)output_stride調(diào)整空洞卷積的rate。圖(b)是論文中提出的cascadedmodel,但在Block4中將第一個殘差結(jié)構(gòu)里的3x3卷積層以及捷徑分支上的1x1卷積層步距stride由2改成了1(即不再進(jìn)行下采樣),并且所有殘差結(jié)構(gòu)里3x3的普通卷積層都換成了空洞卷積層。

從下表可以看出,隨著添加更多的block,模型性能會提高,但提高的幅度會變小。增加block7使得ResNet-50略微降低了性能,但仍提高了ResNet-101的性能。

下表為以ResNet-50為backbone使用7個block時不同output_stride下的mIOU。當(dāng)output_stride增大且應(yīng)用空洞卷積時,mIOU從20.29%提升到75.18%,說明在語義分割中使用更多block級聯(lián)時空洞卷積是很有必要的。

上面blocks中真正采用的膨脹系數(shù)應(yīng)該是圖中的rate乘上這里的Multi-Grid參數(shù)。下表是以cascadedmodel(ResNet101作為Backbone為例)為實(shí)驗(yàn)對象,研究采用不同數(shù)量的cascadedblocks模型以及cascadedblocks采用不同的Multi-Grid參數(shù)的效果。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)采用三個額外的Block時(即額外添加Block5,Block6和Block7)將Multi-Grid設(shè)置成(1, 2, 1)效果最好。

Parallel model(ASPP)

雖然論文大篇幅的內(nèi)容都在講cascaded model以及對應(yīng)的實(shí)驗(yàn),但實(shí)際使用的最多的還是ASPP model,ASPP model結(jié)構(gòu)如下圖所示:

這里的ASPP結(jié)構(gòu)有5個并行分支,分別是一個1x1的卷積層,三個3x3的膨脹卷積層,以及一個全局平均池化層(后面還跟有一個1x1的卷積層,然后通過雙線性插值的方法還原回輸入的W和H)。然后通過Concat的方式將這5個分支的輸出進(jìn)行拼接(沿著channels方向),最后在通過一個1x1的卷積層進(jìn)一步融合信息。

在并行分支加入image-level feature是因?yàn)樽髡邽榱私鉀Q空洞卷積帶來的一個問題:

隨著空洞卷積的rate增大,卷積核有效參數(shù)越來越少。比如標(biāo)準(zhǔn)卷積conv3×3,rate=1,只有在feature map最外面一圈會有卷積核參數(shù)超出邊界而無效,當(dāng)rate變大,越來越多外圈的位置是有卷積核參數(shù)失效的,用極限思想思考一下,如果rate=size(feature map),那么每次卷積都是卷核中心對應(yīng)的feature map像素點(diǎn)被計算了,卷積核參數(shù)也只有中心那個點(diǎn)沒有失效,退化成了1×1卷積核

為了解決這一問題,并且包含全局上下文信息,作者在并聯(lián)結(jié)構(gòu)中加入image-level feature。做法是先對輸入的feature map全局平均池化(global average pooling),后接256通道的1×1卷積層,BN層,最后用戶雙線性插值的方法上采樣到目標(biāo)大小,即與ASPP輸出的feature map尺寸相同。

下表是ASPP模型在output_stride=16的情況下,multi-grid和image-level features的效果。首先,在三個3×3卷積的并行分支中采用rate=(6,12,18),然后block4中使用三種不同的multi-grid,可以看出multi-grid=(1,2,4)效果最好。多加一個并行分支rate=24會使得mIOU下降0.12%,使用image-level features可以提升0.63%。

兩個模型比MG代表Multi-Grid,剛剛在上面也有說在ASPP model中采用MG(1, 2, 4)是最好的。ASPP三個3×3的空洞卷積rate分別為6,12,18Image Pooling代表在ASPP中加入全局平均池化層分支。OS代表output_stride,在訓(xùn)練時將output_stride設(shè)置成16,驗(yàn)證時將output_stride設(shè)置成8效果會更好。MS代表多尺度,和DeepLabV2中類似。不過在DeepLab V3中采用的尺度更多scales = {0.5, 0.75, 1.0, 1.25, 1.5, 1.75}。Flip代表增加一個水平翻轉(zhuǎn)后的圖像輸入。COCO代表在COCO數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練。挑選COCO數(shù)據(jù)集中有VOC定義的類別的圖,將VOC中不包含的類別當(dāng)作背景類。

ASPP模型的效果(79.77%)好于Cascaded模型(79.35%),所以deeplab v3一般也是指ASPP的結(jié)構(gòu)。

DeepLab V3+

空間金字塔池化模塊網(wǎng)絡(luò)能夠通過不同空洞率的、具有不同感受野的空洞卷積或池化操作,編碼多尺度上下文信息,而編碼器-解碼器結(jié)構(gòu)可以通過逐步恢復(fù)空間信息來捕獲更清晰的目標(biāo)邊界。deeplab v3+結(jié)合了這兩種方法的優(yōu)點(diǎn)。添加了解碼器模塊細(xì)化分割結(jié)果,特別是沿著對象邊界。同時進(jìn)一步探索了Xception模型,并將深度可分離卷積應(yīng)用于空間空間金字塔池化和解碼器模塊,從而得到一個更快更強(qiáng)的編解碼器網(wǎng)絡(luò)。

空洞可分離卷積(atrous seperable convolution)

上圖中(a)是深度卷積,單獨(dú)的為每個channel進(jìn)行卷積操作;(b)是點(diǎn)卷積用來融合channel間的信息。(a)和(b)就組成了深度可分離卷積。那如果將(a)中的標(biāo)準(zhǔn)卷積操作替換為空洞卷積,如圖(c)所示就實(shí)現(xiàn)了帶有空洞卷積的深度可分離卷積,論文稱之為空洞可分離卷積(atrous seperable convolution)。論文應(yīng)用空洞可分離卷積極大的減少所提出模型的計算復(fù)雜度與此同時維持了與原模型相似或者更好的模型效果。

Encoder

將Deeplab v3作為編碼器模塊,輸出特征圖包含256個通道數(shù)。DeepLab v3+以Xception作為骨干網(wǎng)絡(luò),并對其進(jìn)行了微調(diào)(如下圖所示):

更深的Xception結(jié)構(gòu),原始middleflow迭代8次,微調(diào)后迭代16次所有maxpooling結(jié)構(gòu)被stride=2的深度可分離卷積替代每個3x3的depthwiseconvolution后都跟BNReluDecoder

DeepLabv3直接將特征上采樣16倍,無法成功地恢復(fù)目標(biāo)分割的細(xì)節(jié)。因此,作者提出了一個簡單而有效的解碼器模塊,如下圖紅色框內(nèi)。編碼器特征首先提前上采樣4倍,然后與網(wǎng)絡(luò)主干中具有相同空間分辨率的相應(yīng)低級特征連接。同時應(yīng)用一個1×1的卷積調(diào)整通道數(shù)(256個),在連接之后,應(yīng)用幾個3×3卷積來細(xì)化特征,然后使用雙線性插值,將特征上采樣4倍。

評估decoder中1×1卷積的作用

使用resnet-101,Conv2的特征圖和256個3×3卷積,分別將low level features減少到8,16,32,48,64通道數(shù),其中48通道效果更好。

設(shè)計3×3卷積結(jié)構(gòu)

concat特征圖之后,利用2個256通道的3×3卷積效果比用1個和3個要好,減少通道數(shù)或者減小kernel size都會使得效果變差。下面的Conv3是指,將特征圖上采樣兩倍和Conv3特征圖concat,再與Conv2特征圖concat。

效果

當(dāng)使用Xception作為DeepLabv3+的backbone時,為了比較精度和速度的變化,觀察了mIOU以及Multiply-Adds。得益于空洞卷積,模型在訓(xùn)練時能夠在不同分辨率下獲取特征以及在模型驗(yàn)證時使用單一模型。

OS代表output_stride,在訓(xùn)練時將output_stride設(shè)置成16,驗(yàn)證時將output_stride設(shè)置成8效果會更好。Decoder表示是否使用本文提出的decoder模塊MS代表多尺度,和DeepLabV2中類似。不過在DeepLab V3中采用的尺度更多scales = {0.5, 0.75, 1.0, 1.25, 1.5, 1.75}。Flip代表增加一個水平翻轉(zhuǎn)后的圖像輸入。SC表示是否采用深度可分離卷積在ASPP以及decoder模塊中COCO代表在COCO數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練。挑選COCO數(shù)據(jù)集中有VOC定義的類別的圖,將VOC中不包含的類別當(dāng)作背景類。JFT表示模型是否在JFT上預(yù)訓(xùn)練

以resnet-101為骨干網(wǎng)絡(luò)時mIOU為80.57%,相同策略下以Xception為骨干網(wǎng)絡(luò)時為81.63%,Decoder提升了0.29%。

參考

1.DeepLabV3網(wǎng)絡(luò)簡析

2.DeepLab系列(v1,v2,v3,v3+)總結(jié)

3.我對DeepLab V3的理解(基于V1和V2)

4.DeepLab系列

5.DeepLabv3+

標(biāo)簽:

Copyright ©  2015-2022 太平洋產(chǎn)業(yè)網(wǎng)版權(quán)所有  備案號:豫ICP備2022016495號-17   聯(lián)系郵箱:93 96 74 66 9@qq.com