摘要
在醫學語義分割中,卷積操作的固有局部性,導致U型網絡在建模長期依賴方面顯示出局限性。transformer被設計用於序列到序列的預測,由於其固有的全局注意力機制,使其可作為可選網絡結構。但transformer低級細節不足,可能導致本地化能力有限。
本文提出TransUNet,比transformer和Unet都要好,可作為醫學圖像分割的替代方案。transformer從cnn的特征圖編碼圖像塊,作為輸入序列,用於提取全局特征。解碼器上采樣編碼特征,與高分辨率CNN特征結合,進行精確定位。
代碼已開源:https://github.com/Beckschen/TransUNet
方法
transformer作為編碼器
-
圖像序列化
與【4】相同,首先進行切分,將輸入x變為平面的2維patch序列,每個patch大小PxP,數量N=(HW)/P2,即序列長度。
-
patch嵌入
使用可訓練線性投影,將向量化的patch Xp映射到潛在的d維嵌入空間.
為編碼patch空間信息,學習特定的位置嵌入,與patch嵌入相加,保留位置信息
E是Patch嵌入投影,Epos代表位置嵌入
transformer編碼器由L層多頭自注意力(MSA)和多層感知機塊(MLP)組成,所以第l層的輸出為:
LN代表層歸一化,ZL是編碼的圖像表征,transformer層的結構如圖1(a)所示。
TransUNet
利用一個混合了CNN-Transformer結構作為編碼器,並且用一個級聯的上采樣器保證精確預測。
-
CNN-transformer混合作為編碼器
CNN首先用於特征提取器產生一個特征圖,作為輸出。
patch嵌入應用到(CNN的)特征圖對應的1x1的patches上,而不是原圖。
-
級聯的上采樣器(CUP)
包含多個上采樣步驟,以解碼輸入特征,用於輸出最后的分割掩碼。
在將隱藏特征序列變為H/P x H/P x D,我們通過級聯多個上采樣塊來實現從H/P × W/P到H×W的全分辨率,每個塊依次由一個2×上采樣算子、3×3卷積層和ReLU層組成。
我們可以看到,CUP和混合編碼器形成了一個u型架構,通過跳過連接,可以在不同的分辨率級別上實現特征聚合。CUP的詳細結構以及中間的跳躍連接如圖1(b).
實驗和討論
實現細節:
簡單數據增強:隨機旋轉和翻轉
ViT:12層transformer層;
R50-ViT:ResNet-50和ViT
輸入:224x224,patch為16x16
4個上采樣塊
公眾號