江蘇衛生健康職業學院 武 芳 王鴻雁
醫學圖像是疾病診斷的重要依據,醫學圖像分割通常是由醫學專家手動完成,耗時長,分割準確程度受主觀因素影響較大,非常依賴醫生的經驗。日益增加的閱片量,迫切需要一種自動分割方法來緩解醫生的圖像分割壓力。
傳統的圖像分割方法是根據圖像灰度值的突變進行圖像分割,或根據預定義的規則進行分割,這種分割算法計算速度快,不需要標注數據,對樣本數量無要求,是一種非監督分割方法。但是大部分的算法對圖像中的噪聲比較敏感,如閾值處理和區域生長算法等,比較常用的Otsu方法分割后,較細的分割區域往往不連續,通常還需要配合形態學等方法進行后續處理,但是分割的精度低、魯棒性差。深度學習中的卷積神經網絡(CNN)是一種有監督學習方法,具有比傳統方法最高的分割精度,其網絡最后一層為全連接層,輸出類別概率,該網絡層數多,模型復雜,易過擬合,計算量大,占用資源較高,常用于多分類和自然圖像語義分割,在醫學圖像處理中多用于疾病診斷;醫學圖像的分割是分割目標和背景的二分類問題,全卷積神經網絡(FCN)將CNN的最后一層改為反卷積層,輸出尺寸輸入尺寸相同,是一種端對端(end to end)的網絡,由于上采樣層的倍率過大,導致部分重要細節信息丟失,同時,該網絡忽略了像素之間的聯系,不適用于醫學圖像對細節和位置高精度的要求。與FCN同年面世的U-Net網絡,也是一種全卷積神經網絡,與FCN具有相同的設計思路,但是有多次上采樣,并且在上采樣中使用2倍率,可以提取圖像的精細特征,結構中創造性的使用了跳連,充分考慮了像素之間的聯系,具有較高的分割精度,網絡的泛化能力較強。另外,由于較好的分割性能和代碼開源的便利,現在的研究者在對醫學圖像進行分割之前都會先用U-Net試一下效果,然后再進行改進。從面世至今,國內外的引用量近萬次,被廣泛應用于各部位血管成像、脊柱及四肢關節病變、頭頸部、腹盆腔臟器等醫學圖像分割任務中。本文總結了U-Net結構上的優秀改進,并提出了一些建議,為研究學者更好的改進U-Net并應用于醫學圖像分割提供參考。
U-Net主要由三部分組成:編碼器(encoder)、解碼器(decoder)和跳連(skip connection),形如“U”。其中,編碼器為下采樣獲得圖像的深層細節特征,遵循卷積網絡的典型結構:由卷積層和最大池化層組成,在特征提取過程中,使用多個卷積核提取不同形態特征,通過池化降維去除冗余信息,減少圖像尺寸。U-Net中卷積層使用兩個3×3unpadded卷積,每個卷積層后跟一個修正線性單元(ReLU)和一個2×2最大池操作,步長為2,實現圖像尺寸的收縮。為了彌補池化損失的特征,在池化后將卷積通道數增加一倍。解碼器為上采樣獲取圖像的淺層位置特征,通過2×2反卷積(又稱轉置卷積)實現尺寸擴展,同時將通道數量減半。每次上采樣結果與對應裁剪后的下采樣特征映射相堆疊,倍增的通道讓網絡將上下文信息傳播到更高分辨率的層。最后一層為1×1的卷積層,輸出一個分割結果。
對于醫學圖像來說,適當地應用剛性變換和輕微的彈性變形仍然可以產生生物學上合理的圖像。對于網絡的輸入及小樣本圖像的處理,作者首先對可用的訓練圖像使用合理的彈性變形來擴充數據,通過重疊平鋪策略對圖像進行無縫分割,利用鏡像輸入圖像外推缺失的上下文,最后實現輸入圖像與分割尺寸相同,規避了一些網絡輸入尺寸固定的缺點。U-Net的體系結構和數據擴充使得學習模型只需要少量的標注樣本,就具有很好的泛化性能。
與2D相比3D網絡提取的特征更加豐富,精度更高。臨床實踐中有大量的三維圖像,包括大尺寸的圖像和大量的切片,3D網絡更適合臨床圖像的處理,但是3D網絡參數多,計算量大,2D與3D相融合的網絡更有前景。
對于CT圖像分割,由于圖像是由一個個切片組成,3D操作可以同時對相鄰的三個切片提取特征,分割效果更準確,但是3D中小尺寸目標的分割是擴展網絡維度方面需要改進的重點之一,可以從以下幾點入手:減少下采樣環節,用卷積塊替換池化,保留更多小的特征信息;融入多尺度表示結構、深度監督、感知生成對抗網絡(GANs)等;多尺寸、多通道輸入,通過輸入不同尺度的圖像信息,增強輸入特征。對于3D網絡的巨額計算量,減少卷積核的尺寸,可以從一定程度上緩解。
將標準卷積改為空洞率不同的卷積,在不增加參數的前提下,擴大了感受野,更有效地捕獲全局上下文;用可形變的卷積核代替固定的卷積核,更適應特征的非線性提取。用自注意力模塊代替卷積操作,將卷積特征映射與通過自注意力產生的一組特征映射串聯起來,用這種自注意力機制來擴充卷積算子,損失更少的重要信息。殘差塊可以緩解梯度退化問題。Inception塊將多個不同的卷積路徑并聯起來,其網絡基本思想由網絡自行確定使用哪個路徑。密集連接更適用于多模態特征提取,多個模態之間的密集連接可以更好地模擬不同模態之間的關系,通過在所有層之間使用直接連接來促進信息和梯度在整個網絡中的流動。融入注意力機制的SE模塊:注意力機制經過注意力門對各通道的權重進行計算。該模型能自動學習形狀、大小迥異的目標結構,抑制不相關特征,突出顯示對特定任務有用的特征,從而提高預測模型的靈敏度和準確度。
卷積1×1操作可以實現升維和降維,合理的使用可以提高網絡的非線性提取能力,增強網絡的魯棒性。空洞卷積可以提高細節提取能力,對于同時使用不同空洞率的卷積級聯時,空洞率應該設置為1、2、5等效果更好。對于層數較深的網絡,使用殘差連接可以緩解梯度消失。Inception適用于多尺寸特征提取,在使用時需要考慮其計算成本,盡量使用小卷積核堆疊代替大卷積核。對于增強特征、抑制背景的任務在編碼和解碼階段可以多考慮使用attention、SE及特征金字塔模塊。卷積塊注意力模型(CBAM)同時考慮通道域和空間域,特征的提取和定位效果都比較好,可以應用于各種小目標提取任務中,如腫瘤、結節等。
在網絡中加入批量歸一化或實例歸一化,有助于提高網絡精度,減少網絡計算量、提高訓練的速度、避免過擬合。激活函數:ReLU用來去除梯度變化的負值,正值部分梯度較大(恒為1),避免梯度消失,減少計算量,收斂速度快,是應用的最多的激活函數。在高維進行ReLU運算,信息的丟失較少,低維使用ReLU運算,容易造成信息的丟失,可以用線性激活函數代替。LeakyReLU使用一個參數控制當梯度為非正時輸出非零,或者使用較小的學習率,避免死亡ReLU問題。對于ReLU的梯度爆炸問題,還可以通過改變右側的取值來抑制。網絡中的損失函數主要是交叉熵、Dice、IoU loss和焦點損失函數,交叉熵是圖像分割中使用最多的損失函數,在損失函數中,圖像像素被平等的學習,所以無法解決醫學圖像中常出現的類別不均衡問題。基于dice coefficient的損失函數(Dice loss)是一種soft dice loss,將dice coefficient化為可以最小化的損失函數,用1-Dice表示。IoU loss和Dice loss定義相似,一般用于目標檢測中,是預測檢測框和真實檢測框的交并比。焦點損失函數(focal loss),是對交叉熵損失函數的一種改進,對于困難樣本的學習更有利,也用于樣本不均衡問題。
使用BN可以加快網絡收斂速度。SELU是ELU乘大于1的lambda,該函數使樣本分布自動歸一化到0均值和單位方差,這種自歸一化保證訓練過程中梯度不會爆炸或消失,運算速度比Batch Normalization+ReLU更快。Dice loss、IoU loss和GDL適合樣本極度不均情況,在醫學類圖像中使用廣泛,但是在樣本均衡的情況下使用會對反向傳播造成不利的影響,不能保證訓練穩定性。在醫學圖像分割中混合損失函數應用的更為廣泛,其集各類損失函數優點,以交叉熵為基本函數,配合Dice類的損失函數,通過調整各種函數權重,可以提升不同類型任務的分割性能。
本文總結了近年U-Net網絡結構方面的改進,及網絡性能方面的提升,對數據增強、提升速度的算法和模型泛化能力方面未涉及。U-Net目前不僅在醫學圖像分割方面應用廣泛,在如道路裂縫檢測、食品自動識別、秸稈檢測、遙感圖像分割、農作物籽粒分割等領域也大受歡迎。未來,更多結合其它領域圖像的特點,學習新興的網絡模塊思想,對U-Net網絡進行合理的改進,讓U-Net助人工智能一臂之力!