deeplab 系列文章

deeplab v1 :semantic image segmentation with deep convolutional nets and fully connected CRFs

對于傳統(tǒng)的DCNN網(wǎng)絡(luò)來說,其實都是具有不變性的這個特征的,深度學(xué)習(xí)是十分適合高階的計算機視覺任務(wù)。但是,對于底層的比如semantic segmentation的任務(wù)來說,是十分不利的。
目前的兩個大問題就是:1,降采樣問題。2,不變形問題。
對于降采樣問題,我們使用’atrous'新型卷積來實現(xiàn)。不變性問題,我們加入CRF來對圖像進行優(yōu)化,最終得到不錯的結(jié)果。

網(wǎng)絡(luò)結(jié)構(gòu):我們在VGG16中,去掉了最后兩個max pooling層,加入了‘a(chǎn)trous’方法。


image.png
image.png

pipline:


image.png

CRF算法:


image.png

這里要再仔細(xì)看下。

DeepLabv2:Semantic Image Segmentation with Deep Convolutional Nets,Atrous Convolution,and Fully Connected CRFs

這篇文章主要的看點是:1,在tensorflow中以模塊化方式,實現(xiàn)了'atrous convolution',作為一個非常有效的工具。2,實現(xiàn)了ASPP,‘a(chǎn)trous spatial pyramid pooling',能夠十分魯棒地實現(xiàn)圖像分割。3,利用CRF優(yōu)化 ,推出Dense CRF。

1,模塊化實現(xiàn)‘a(chǎn)trous pooling’

由于這種卷積方法,很好地平衡了accurate localization(small field-of-view)和context assimilation(large field-of-view)。在具體實現(xiàn)上有兩種方法,一種是upsample the filter 或者是對圖像稀疏采樣,這種不太好。第二種,The second method, originally proposed by [82] and used in [3], [16] is to subsample the
input feature map by a factor equal to the atrous convolution rate r , deinterlacing it to produce r2 reduced resolution maps, one for each of the r×r possible shifts. 利用tensorflow實現(xiàn)了這種方法。


image.png

image.png

2,實現(xiàn)多尺度ASPP

多個尺度的洞卷積,并行執(zhí)行。實現(xiàn)最終結(jié)果。


image.png

3,不在使用傳統(tǒng)的CRF方法,而是利用dense CRF的方法,得到較為優(yōu)秀的結(jié)果。

DeeplabV3:Rethinking Atrous Convolution for Semantic Image Segmentation

這篇文章主要是改進了級聯(lián)的方式,綜合運用串行和并行的方式,實現(xiàn)對多尺度物體分割。
這里,我們加入output_stride,從而來表示最終得到的圖片與輸入尺度的大小對比。然后使用更加深的網(wǎng)絡(luò)對圖像進行深度分割。



image.png

加入這種多尺度的方法主要是由于當(dāng)空洞卷積越大的時候,他每次卷積的時候的有效權(quán)重就會越?。╬adding)的原因。所以我們應(yīng)用多尺度的方法,最后加入average pooling的方法,取得一個好的結(jié)果。

Deeplab V3+:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

由于在encoder的時候會更加關(guān)注多尺度的紋理信息,在decoder的時候可以使得邊界更加光滑,我們使用這種結(jié)構(gòu)。同時我們在encoder結(jié)構(gòu)中加入Xception 模型和深度卷積,可以更加快速地實現(xiàn)分割。


image.png

1,Atrous convolution

這里不在贅述,主要是看這個公式。


image.png

2,depthwise separable convolution

為了降低計算量,我們這里可以按照mobile net的方法,先做depthwise的卷積,然后再做1*1的卷積。我們這里把depthwise的卷積改成atrous separable convolution.

3,使用Deeplabv3作為 encoder:

我們加入output stride來決定最后輸出的尺度比例。只要使用的ASPP的模塊。

4,加入decoder:

之前我們直接使用bilinearly upsampled的方法,但是這樣的結(jié)果就導(dǎo)致細(xì)節(jié)并不鋒利。這里我們使用如圖的方法。

5,Modified Aligned Xception

使用目前最新的aligned Xception,但是做了細(xì)微的修改。1,更深的Xception。2,把所有max pooling全都換成depthwise separable convolution with striding。3,在每一個3×3的深度卷積之后都加入BN和ReLU。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容