3D U2-Net

探索了一種有前途的通用體系結構,該體系結構可以處理多種醫學分割任務,並且可以擴展用於新任務,而無需考慮不同的器官和成像方式。我們的3D通用U-Net(3D U2-Net)建立在可分離的卷積基礎上,假設來自不同域的圖像具有特定於域的空間相關性,可以使用逐通道卷積進行探測,同時還可以使用逐點卷積來建模跨通道相關性卷積。

介紹

先前的多項工作探索了多任務分割,其中所有感興趣的器官都出現在同一圖像中,作者考慮了一個更現實和更具挑戰性的場景:對於給定的數據集,僅掃描人體的局部區域被掃描,並且圖像中僅一個或幾個解剖結構被標註。

Bilen等認爲可能存在跨不同視覺域的通用數據表示。 他們推出了一項名爲 “ Visual Decathlon Challenge ”(https://www.robots.ox.ac.uk/∼vgg/decathlon/.)的新競賽,旨在同時建模十個不同樣式和內容的視覺域,例如,互聯網圖像,手寫字符,草圖,浮游生物等。他們將這種新主題稱爲 “multi-domain learning”,其工作僅專注於圖像分類。作者由此想到建立一個可以處理來自不同領域的醫學細分任務的單一神經網絡。

方法

  • 深度可分離卷積(Depthwise Separable Convolutions):
    深度可分離卷積

從 Inception module 到 depthwise separable convolutions

Xception 的論文中提到,對於卷積來說,卷積核可以看做一個三維的濾波器:通道維+空間維(Feature Map 的寬和高),常規的卷積操作其實就是實現通道相關性和空間相關性的聯合映射。Inception 模塊的背後存在這樣的一種假設:卷積層通道間的相關性和空間相關性是可以退耦合的,將它們分開映射,能達到更好的效果(the fundamental hypothesis behind Inception is that cross-channel correlations and spatial correlations are sufficiently decoupled that it is preferable not to map them jointly.)。

以上的圖中,Figure 1 是一個典型的 Inception 模塊,它先在通道相關性上利用 1×1 卷積將輸入的 Feature Map 映射到幾個維度比原來更小的空間上,相當於每個通道圖乘上不同的因子做線性組合,再用 3×3 卷積這些小空間,對它的空間和通道相關性同時做映射。以第二個分支爲例,假設 Input 是 28×28×192 的 Feature Maps,在通道相關性上利用 32 個 1×1×192 的卷積核做線性組合,得到 28×28×32 大小的 Feature Maps,再對這些 Feature Maps 做 256 個 3×3×32 的卷積,即聯合映射所有維度的相關性,就得到 28×28×256 的 Feature Maps 結果。可以發現,這個結果其實跟直接卷積 256 個3×3×192 大小的卷積核是一樣。也就是說,Inception 的假設認爲用 32 個 1×1×192 和 256 個 3×3×32 的卷積核退耦級聯的效果,與直接用 256個 3×3×192 卷積核等效。而兩種方式的參數量則分別爲32×1×1×192 + 256×3×3×32 = 79872 和 256×3×3×192 = 442368。

Figure 2 是簡化後的 Inception 模塊(僅使用3×3卷積並去除 Avg pooling),基於 Figure 2 的簡化模塊可以將所有的 1×1 卷積核整合成一個大的 1×1 卷積,如將 3 組 32 個 1×1×192 的卷積核重組爲 96個 1×1×192 的卷積核,後續再接3組 3×3卷積,3×3卷積的輸入爲前序輸出的1/3(Figure 3)。Xception 論文進而提出在 Figure 3 的基礎上,是否可以做出進一步的假設:通道相關性和空間相關性是完全可分的,由此得到 Figure 4 中的 “extreme” Inception。如 Figure 4 所示,先進行 1×1 的通道相關性卷積,後續接的 3×3 卷積的個數與 1×1 卷積的輸出通道數相同。

Figure 4 中的 Inception 模塊與本文的主角-深度可分離卷積就近乎相似了,但仍然存在兩點區別:

1、深度可分離卷積先進行 channel-wise 的空間卷積,再進行1×1 的通道卷積,Inception則相反;
2、Inception中,每個操作後會有一個ReLU的非線性激活,而深度可分離卷積則沒有。

回過頭來看一下從常規卷積 -> 典型的Inception -> 簡化的Inception -> “極限”Inception,實際上是輸入通道分組的一個變化過程。常規卷積可看做將輸入通道當做整體,不做任何分割;Inception則將通道分割成3至4份,進行1×1的卷積操作;“極限”Inception則每一個通道都對應一個1×1的卷積。

引入深度可分離卷積的 Inception,稱之爲 Xception(Extreme Inception),其結構圖如下,圖中的SeparableConv即是深度可分離卷積,另外可以看出每個模塊均採用殘差連接(開頭和結尾的幾個除外):

Xception architecture

Xception 作爲 Inception v3 的改進版,在 ImageNet 和 JFT 數據集上有一定的性能提升,但是參數量和速度並沒有太大的變化,因爲Xception 的目的不在於模型的壓縮。下圖是 ImageNet 上 1000 類分類網絡的訓練參數和訓練速度對比:

MobileNet 中的 depthwise separable convolutions

MobileNet 是Google推出的一款高效的移動端輕量化網絡,其核心即是深度可分離卷積。

按照前文所述,深度可分離卷積將傳統的卷積分解爲一個深度卷積(depthwise convolution)+ 一個 1×1的卷積(pointwise convolution)。如下圖所示,(a)是傳統卷積,(b)、(c)分別對應深度可分離卷積的深度卷積和 1×1的卷積:

假設輸入特徵圖大小爲 D_F×D_F×M,輸出特徵圖大小爲 D_F×D_F×N,卷積核大小爲 D_K×D_K,則傳統卷積的計算量爲:

D_K×D_K×M×N×D_F×D_F

深度可分離卷積的計算量爲深度卷積和 1×1 卷積的計算量之和:

D_K×D_K×M×D_F×D_F+M×N×D_F×D_F

深度可分離卷積與傳統卷積的計算量之比爲:

{D_K×D_K×M×D_F×D_F+M×N×D_F×D_F}/{D_K×D_K×M×N×D_F×D_F} = 1/N + 1/{D_K^2}

以上文中 28×28×192 的輸入,28×28×256 的輸出爲例,卷積核大小爲 3×3,兩者的計算量之比爲:

39889920/346816512 = 0.1150

深度可分離卷積的計算量縮減爲傳統卷積的 1/9 左右。

下圖是傳統卷積(左)與MobileNet中深度可分離卷積(右)的結構對比。Depth-wise卷積和1×1卷積後都增加了BN層和ReLU的激活層。

Deep-wise結合1×1的卷積方式代替傳統卷積不僅在理論上會更高效,而且由於大量使用1×1的卷積,可以直接使用高度優化的矩陣相乘(如GEMM)來完成,並且1×1的卷積不需要im2col的預處理操作,大大提升運算效率。MobileNet 中有約95%的乘加運算來自1×1卷積(同時也佔總參數量的75%):

MobileNet的整體結構如下圖所示,共含有28個網絡層:

爲了滿足模型更小、速度更快的應用需求,MobileNet 提出了寬度因子 \alpha 和分辨率因子 \rho兩個超參數。前者用於控制輸入輸出的通道數,後者則用於控制輸入輸出的分辨率。加入超參數後的深度可分離卷積的計算量爲:

D_K×D_K× {\alpha}M× {\rho}D_F× {\rho}D_F+ {\alpha}M× {\alpha}N× {\rho}D_F× {\rho}D_F

理論上,加入超參數後的計算量約爲加入前的 \frac{1}{{\alpha}^2*{\rho}^2}:

 

  • 域適配器(Domain Adapter ):由特定於域的參數和共享參數組成,並且由可分離卷積來代替標準卷積。
    域適配器

模型架構如下所示:
模型架構

實驗結果

實驗結果

總結

在 UNet 中每一層插入一個小模塊,用可分離卷積代替普通卷積操作,爲每個域設置一組專有的卷積參數,達到共享網絡的目的。

code: https://github.com/huangmozhilv/u2net_torch

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章