日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Transformer】DPT: Vision Transformer for Dense Prediction

發(fā)布時間:2023/12/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Transformer】DPT: Vision Transformer for Dense Prediction 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 一、背景和動機(jī)
    • 二、方法
      • 2.1 Transformer encoder
      • 2.2 Convolutional decoder
      • 2.3 處理不同輸入大小
    • 三、效果
      • 3.1 單目深度估計
      • 3.2 語義分割


論文鏈接: https://arxiv.org/pdf/2103.13413.pdf
代碼鏈接: https://github.com/intel-isl/DPT

一、背景和動機(jī)

現(xiàn)有的密集預(yù)測模型大都是基于卷積神經(jīng)網(wǎng)絡(luò)的模型,基本上都把網(wǎng)絡(luò)分為兩部分:

  • encoder:也就是 backbone
  • decoder:也就是 head

關(guān)于密集預(yù)測的研究,很多都集中在對解碼頭的改進(jìn)中,backbone的結(jié)構(gòu)沒有大的突破,如果 encoder 中丟了很多信息,那么 decoder 再好也無法將其恢復(fù)。

卷積網(wǎng)絡(luò)會通過下采樣的方式來增大感受野并提取多尺度的圖像特征,但是下采樣會丟失掉圖像的一些信息,decoder 也難以恢復(fù)。這些信息對分類等粗粒度的任務(wù)可能沒那么重要,但對密集預(yù)測任務(wù)比較重要。

當(dāng)然也有一些方法對這種信息丟失的問題做了改進(jìn),如使用高分辨率的輸入,使用膨脹卷積來增大感受野,在 encoder 和 decoder 之間使用跳連等。但這些方法或者需要很多的卷積堆疊,或者需要很大的計算量。

所以,本文中,作者提出了一種 dense prediction transformer(DPT),是一種基于 transformer 的 encoder-decoder 結(jié)構(gòu)的密集預(yù)測結(jié)構(gòu)。本文中,作者基于深度預(yù)測和語義分割來進(jìn)行實驗對比。

二、方法

DPT 的總體結(jié)構(gòu)如圖1左側(cè)所示,作者使用 ViT 作為 backbone。

2.1 Transformer encoder

作者使用 ViT 作為 encoder 結(jié)構(gòu),把原圖切分為不重疊的 token,然后使用 MHSA 獲得這些經(jīng)過編碼的 token 之間的 attention。

transformer 處理后,token 的數(shù)量是不變的,且它們之間的 attention 是一對一的,每個 token 都可以獲得和其他 token 的關(guān)系,能夠獲得全局感受野下的特征,空間分辨率也不會改變。

作者使用三種 ViT 變體進(jìn)行實驗:

  • base:每個 patch 被拉平為 768 維
  • large:每個 patch 被拉平為 1024 維,
  • hybrid:將 ResNet50 的輸出特征作為輸入
  • patch size p=16p=16p=16

由于patch embedding 會將每個patch拉平至比其像素維度大的維度,這就表示 embedding 過程能夠?qū)W習(xí)到一下有益于任務(wù)的特征。

2.2 Convolutional decoder

Decoder 過程是為了把這一系列的 token 轉(zhuǎn)換成不同分辨率的 image-like 特征表達(dá),然后將這些特征聚合起來進(jìn)行最終的密集預(yù)測。

作者提出了一個 three-stage Reassemble operation 來從 transformer encoder 的任意層恢復(fù) image-like 的特征表達(dá):

  • sss:是恢復(fù)的特征表達(dá)相對于原始輸入圖像的比率
  • D^\hat{D}D^:輸出特征維度

主要過程:

① 首先,將 token 從 Np+1N_p+1Np?+1 映射為 NpN_pNp?

該操作是為了處理 readout token(類似于 ViT 中的 cls token)

該 token 是為了分類而用的,能夠提取全局信息,作者驗證了三種不同的處理方式:

  • 直接忽略該 readout token
  • 將 readout token 加在其他token上
  • 將 readout token 直接 concat 到其他 token 上,然后再將其影射到 D 維

結(jié)果如表 7 所示:

② 之后,根據(jù)初始 patch 的position,將其分別放到對應(yīng)的位置上,得到 image-like 的特征表達(dá)


③ 最后,使用 1x1的卷積改變通道,后面接一個 3x3 的卷積進(jìn)行 resize

如何提取多尺度:

作者從 4 個不同的 stage 提取得到了 4 種不同分辨率的特征圖。淺層的 stage 映射到大分辨率的特征圖。

  • ViT Large:從 {5, 12, 18, 24} stage 來提取 token
  • ViT Base:從 {3, 6, 9 ,12} stage 來提取 token
  • ViT Hybrid:從 {9, 12} stage 來提取 token
  • D^=256\hat{D}=256D^=256

如何聚合多尺度的特征:

作者使用 RefineNet-based 特征融合block(圖1右側(cè)),然后在每個 fusion stage 逐漸進(jìn)行2倍上采樣,最終的分辨率為原始分辨率的 1/2,不同任務(wù)的 head 是不同的,如圖 1 所示。

2.3 處理不同輸入大小

類似于全卷積網(wǎng)絡(luò),DPT 能夠接受不同大小的輸入。

假設(shè)圖像大小除以 p,embedding 過程會產(chǎn)生 NpN_pNp? 個 tokens,NpN_pNp? 會根據(jù)圖像大小的不同而變化。transformer 可以處理不同尺寸的輸入序列,但position是與圖像大小有關(guān)的,作者參照 ViT 的方法,即使用插值的方法,將 position embedding 線性影射到需要的大小。

三、效果

3.1 單目深度估計


3.2 語義分割


總結(jié)

以上是生活随笔為你收集整理的【Transformer】DPT: Vision Transformer for Dense Prediction的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。