2022年計(jì)算機(jī)視覺空洞卷積_第1頁
2022年計(jì)算機(jī)視覺空洞卷積_第2頁
2022年計(jì)算機(jī)視覺空洞卷積_第3頁
2022年計(jì)算機(jī)視覺空洞卷積_第4頁
2022年計(jì)算機(jī)視覺空洞卷積_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

「計(jì)算機(jī)視覺」空洞卷積

目錄

.一、空洞卷積的提出

.二、空洞卷積原理

.三、空洞卷積問題

O感受野跳躍

O小尺度物體檢測

.四、網(wǎng)絡(luò)設(shè)計(jì)研究

?五、常用框架API介紹

oTensorFlow接口

oMXNet接口

?六、參考X

回到頂部

一、空洞卷積的提出

空洞卷積(atrousconvolutions)又名擴(kuò)張卷積(dilatedconvolutions),向卷積層引入了

一個稱為“擴(kuò)張率(dilationrate)”的新參數(shù),該參數(shù)定義了卷積核處理數(shù)據(jù)時各值的間距。

該結(jié)構(gòu)的目的是在不用pooling(pooling層會導(dǎo)致信息損失)且計(jì)算量相當(dāng)?shù)那闆r下,提供

更大的感受野。順便一提,卷積結(jié)構(gòu)的主要問題如下:

池化層不可學(xué)

內(nèi)部數(shù)據(jù)結(jié)構(gòu)喪失;空間層級化信息喪失。

小物體信息無法重建(假設(shè)有四個poolinglayer則任何小于2"4=16pixel的物體信息

將理論上無法重建。)

而空洞卷積就有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的保存和防止使用down-sampling這樣的特性,優(yōu)點(diǎn)明顯。

回到頂部

二、空洞卷積原理

如下如,卷積核沒有紅點(diǎn)標(biāo)記位置為0,紅點(diǎn)標(biāo)記位置同正常卷積核。

假設(shè)原始特征為featO,首先使用擴(kuò)張率為1的空洞卷積生成featl,featl上一點(diǎn)相對featO

感受野為3x3(如圖a);

然后使用擴(kuò)張率為2的空洞卷積處理featl生成feat2(如圖b),使第一次空洞卷積的卷

積核大小等于第二次空洞卷積的一個像素點(diǎn)的感受野,圖b即featl上一個點(diǎn)綜合了圖a即

featO上3x3地域的信息,則生成的feat2感受野為7x7,即整個圖b深色地域;

第三次處理同上,第二次空洞卷積的整個卷積核大小等于第三次空洞卷積的一個像素點(diǎn)的感

受野,圖c即feat2上每個點(diǎn)綜合了featO上7x7的信息(感受野),則采納擴(kuò)張率為3的

空洞卷積,生成的feat3每一個點(diǎn)感受野為15x15。

相比擬之下,使用stride為1的一般3x3卷積,三層之后感受野僅僅為(kernel-1)xlayer+1=7。

回到頂部

三、空洞卷積問題

感受野跳躍

我們對同一張圖連續(xù)三次使用擴(kuò)張率為1的空洞卷積,觀察整張圖的中心點(diǎn)的感受野(如

下列圖)

很明顯,感受野不連續(xù)(我們上一小結(jié)的例子就沒這個問題,所以空洞卷積依賴網(wǎng)絡(luò)設(shè)計(jì))。

小尺度物體檢測

類似第一個問題,仍舊需要調(diào)整擴(kuò)張率的組合來解決這個問題。

回到頂部

四、網(wǎng)絡(luò)設(shè)計(jì)研究

第一個特性是,疊加卷積的dilationrate不能有大于1的公約數(shù)。比方2,4,6則不是一個

好的三層卷積,依舊會出現(xiàn)griddingeffect?

第二個特性是,我們將dilationrate設(shè)計(jì)成鋸齒狀結(jié)構(gòu),例如1,2,5,1,2,5循環(huán)結(jié)構(gòu)。

第三個特性是,我們需要滿足一下這個式子:

其中是i層的dilationrate而是指在i層的最大dilationrate,那么假設(shè)總共

有n層的話,默認(rèn)。假設(shè)我們應(yīng)用于kernel為kxk的話,我們的目標(biāo)則是,

這樣我們至少可以用dilationrate1即standardconvolution的方法來覆蓋掉全部洞。

一個簡單的例子:dilationrate1,2,5with3x3kernel(可行的方案):

而這樣的鋸齒狀本身的性質(zhì)就比擬好的來同時滿足小物體大物體的分割要求(小dilation

rate來關(guān)懷近距離信息,大dilationrate來關(guān)懷遠(yuǎn)距離信息)。

單分支設(shè)計(jì)的研究

通向標(biāo)準(zhǔn)化設(shè)計(jì):HybridDilatedConvolution(HDC),可以很好的滿足分割需要,如下列圖

所示,

多分支研究解決多尺度分割

僅僅(在一個卷積分支網(wǎng)絡(luò)下)使用dilatedconvolution去抓取多尺度物體是一個不正統(tǒng)的

方法.比方說,我們用一個HDC的方法來獵取一個大(近)車輛的信息,然而對于一個

?。ㄟh(yuǎn))車輛的信息都不再受用。假設(shè)我們再去用小dilatedconvolution的方法重新獵取

小車輛的信息,則這么做非常的冗余。

基于港中文和商湯組的PSPNet里的Poolingmodule(其網(wǎng)絡(luò)同樣獲得當(dāng)年的SOTA結(jié)

果),ASPP則在網(wǎng)絡(luò)decoder上對于不同尺度上用不同大小的dilationrate來抓去多尺

度信息,每個尺度則為一個獨(dú)立的分支,在網(wǎng)絡(luò)最后把他合并起來再接一個卷積層輸出預(yù)測

label。這樣的設(shè)計(jì)則有效防止了在encoder上冗余的信息的獵取,直接關(guān)注與物體之間之

內(nèi)的相關(guān)性。

回到頂部

五、常用框架API介紹

TensorFlow接口

conv2d(value,filters,rate,padding,name=None)

value:指需要做卷積的輸入圖像,要求是一個4維Tensor,具有batch,height,width,

channels]這樣的shape,具體含義是訓(xùn)練時一個batch的圖片數(shù)量,圖片高度,圖片寬度,

圖像通道數(shù)]

filters:相當(dāng)于CNN中的卷積核,要求是一個4維Tensor,具有filter_height,filter_width,

channels,out_channels]這樣的shape,具體含義是卷積核的高度,卷積核的寬度,圖像通

道數(shù),卷積核個數(shù)],同理這里第三維channels,就是參數(shù)value的第四維

rate:要求是一個int型的正數(shù),正常的卷積操作應(yīng)該會有stride(即卷積核的滑動步長),

但是空洞卷積是沒有stride參數(shù)的,這一點(diǎn)尤其要注意。取而代之,它使用了新的rate參

數(shù),那么rate參數(shù)有什么用呢?它定義為我們在輸入圖像上卷積時的采樣間隔,你可以理

解為卷積核當(dāng)中穿插了(rate-1)數(shù)量的“0”,把原來的卷積核插出了很多“洞洞”,這樣做

卷積時就相當(dāng)于對原圖像的采樣間隔變大了。具體怎么插得,可以看后面更加詳細(xì)的描述。

此時我們很簡單得出rate=1時,就沒有0插入,此時這個函數(shù)就變成了一般卷積。

padding:string類型的量,只能是"SAME"VALID"其中之一,這個值決定了不同邊

緣填充方法。

函數(shù)默認(rèn)stride=1,無法改變。

結(jié)果返回一個Tensor,填充方法為“VALID”時,返回

batch,height-2x(filter_width-1),width-2x(filter_height-1),out_channels]KlTensor,填充方法

為"SAME"時,返回batch,height,width,out_channels]的Tensor。

測試代碼如下:

1img=tf.constant(value=l],2],3],4]],

2

31],2],3],4]],

41],2],3],4]]]],dtype=tf.i

5img=tf.concat(values=img,img],axis=3)

6

7filter=tf.constant(value=l,shape=3,3,2,5],dtype=tf.float32)

8out_imgl=tf.nn.atrous_conv2d(value=img,filters=filter,rate=l,padding』

9out_img2=tf.nn.atrous_conv2d(value=img,filters=filter,rate=l,padding』

10out_img3=tf.nn.atrous_conv2d(value=img,filters=filter,rate=2,padding』

11error

12out_img4=tf.nn.atrous_conv2d(value=img,filters=filter,rate=2,padding=,V/

13withtf.Session()assess:

14print(frate=l,SAMEmoderesult:?)

15print(sess.run(out_imgl))

16printCrate=l,VALIDmoderesult:*)

17print(sess.run(out_img2))

18printCrate=2,SAMEmoderesult:')

19print(sess.run(out_img3))errorprint5rate=2,VALIDmoderesult:'

print(sess.run(out_img4))

擴(kuò)張率為1時,空洞卷積等價(jià)于一般卷積。對于SAME和VALID模式計(jì)算方法如下列圖所

示,

擴(kuò)張率為2的VALID模式計(jì)算過程,

擴(kuò)張率為2的VALID模式會報(bào)錯,此時卷積核大于圖片,無法卷積。

MXNet接口

MXNet卷積操作自帶擴(kuò)張率參數(shù),詳見文檔。

MXNet的通道存儲與TensorFlow不太一致,所以我們打印一下(比照上面的圖,可以體會

到為什么除了tf外大多框架把通道放在第二維),

1importmxnetasmx

2importmxnet.ndarrayasnd

3

4img=nd.array(1],2],3],4]],

51],2],3L4]]>

61],2],3],4]L

7U,2],3L4]]]])

8img=nd.concat(img,img,dim=-l)

9img=nd.transpose(img,axes=(0,3,1,2))

10

11w=nd.ones(5,2,3,3])

12b=nd.array(0for_inrange(5)])

13img

1.2.3.4.]

1.2.3.4.]

1.2.3.4.]

1.2.3.4.]]

1.2.3.4.]

1.2.3.4.]

1.2.3.4.]

1.2.3.4.]]]]

<NDArrayIx2x4x4@cpu(0)>

1nd.Convolution(img,w,b,kernel=w.shape2:],num_filter=w.shapeO],stride=(l,1

pad=(l,1),dilate=(l,1))

12.24.36.28.]

18.36.54.42.]

18.36.54.42.]

12.24.36.28.]]

12.24.36.28.]

18.36.54.42.]

18.36.54.42.]

12.24.36.28.]]

12.24.36.28.]

18.36.54.42.]

18.36.54.42.]

12.24.36.28.]]

12.24.36.28.]

18.36.54.42.]

1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論