天天看點

用于醫學圖像分割的深度神經網絡

作者:作家楊文山

圖像分割的定義是将輸入圖像劃分為不同的部分,劃分後的部分和給定圖像中定義的感興趣區域(RoI)有着密切的聯系,這種做法的目的是以有意義的形式表示輸入圖像,完成RoI區域、測量組織體積、衡量惡性良性腫瘤大小以及确定藥物劑量等功能。

圖像分割技術在醫療領域應用極多,包括惡性良性腫瘤邊界提取,癌症檢測等等。

深度學習是人工智能中最基本的方法之一,主要實作方法是建構神經網絡中的各種層。人工神經網絡(ANN)包含輸入層、隐藏層和輸出層,前者負責接收輸入信号,隐藏層負責實作計算功能,輸出層則擔負着決策的作用。

深度學習的神經網絡具體結構如圖1所示。

用于醫學圖像分割的深度神經網絡

圖1 人工神經網絡(ANN)模型

因用于圖像分割任務的不同深度學習神經網絡的歸納如圖2所示。

用于醫學圖像分割的深度神經網絡

圖2 Deep learning架構

卷積神經網絡

卷積神經網絡或CNN(見圖3)由三個主要神經層組合而成:卷積層、池化層和全連接配接層。

用于醫學圖像分割的深度神經網絡

圖3 卷積神經網絡架構

上述結構已引入了卷積層(Convolutional Layer)和池化層(Pooling Layer)為特色,進而能夠對圖像中的特征進行學習,完成分析。

以下對CNN組成部分進行介紹:

  1. 卷積層:此層處于CNN結構的核心地位,其主要功能是對圖像中的子特征進行提取,生成特征圖(Feature Map)。
  2. 激活函數:卷積層之後通常會應用有着非線性的激活函數,比如ReLU(Rectified Linear Unit)、Sigmoid和Tanh等,能夠增加網絡學習模式的複雜程度。
  3. 池化層:主要有最大池化(Max Pooling)和平均池化(Average Pooling)兩種池化操作,主要目的是為了降低特征圖的次元。
  4. 全連接配接層:這個部分的主要目标為通過完成分類或回歸任務将預測結果輸出。
  5. 損失函數:常用來表示實際輸出與真實标簽的差異程度,交叉熵損失函數(Cross-Entropy Loss)和均方差損失函數(Mean Square Error Loss)等均為廣泛使用的類型。

卷積層和池化層的堆疊可以使CNN提取圖像的進階特征,并在後續的全連接配接層中進行分類或回歸任務,并且可以利用反向傳播算法以及最小化損失函數對于網絡參數進行學習,這種操作可以對模型的準确性進行提升。

完全卷積網絡

在這種結構中,隻存在卷積層,将傳統卷積網絡的最後一個全連接配接層轉換為全卷積層,可以将CNN架構中現有的不同結構修改為FCN。設計的模型可以輸出空間分割圖,并且可以從全尺寸的輸入圖像中進行密集的像素化預測,而不是進行更新檔化預測。

該模型使用跳躍連接配接,對最後一層的特征圖進行上采樣,并将其與前幾層的特征圖融合。是以,該模型隻需一次就能産生一個詳細的分割結果。然而,傳統的FCN模型有以下限制: 它對實時推理來說速度不快,而且不能有效地考慮全局資訊。

在FCN中,由于通過交替的卷積層和集合層的傳播,在輸出端生成的特征圖的分辨率被降低了。這導緻了FCN中的低分辨率預測,對象邊界模糊不清。

以下是FCN的關鍵組成部分:

  1. 卷積層和池化層:FCN仍然使用卷積層和池化層進行特征提取和降維。這些層幫助網絡學習圖像中的特征,并保留白間資訊。
  2. 轉置卷積層(反卷積層):傳統的卷積操作是将特征圖的尺寸逐漸縮小,而轉置卷積層可以将低分辨率的特征圖通過插值和卷積操作擴大到與輸入圖像相同的尺寸。
  3. 跳躍連接配接(Skip Connection):跳躍連接配接将來自淺層的特征圖與來自深層的特征圖進行逐元素相加或級聯操作,使得網絡可以同時利用不同層級的特征資訊。
  4. 上采樣和插值:為了進一步提高分割結果的精度,FCN通常使用上采樣和插值操作來增加分割輸出的分辨率。這些操作可以通過插值方法(如雙線性插值)或轉置卷積層實作。

在訓練過程中,FCN完成了對于圖像的特征提取以及分割的程度達到了像素級别,這一方面使之實作了端到端的圖像分割任務。總的來說,完全卷積網絡這種深度學習模型已經在在圖像分割領域獲得了顯著成果,許多圖像分割任務都以此作為基礎模型。

U-NET

U-Net是一種用于語義分割任務的卷積神經網絡(CNN)架構,架構特點是對稱的U形結構,由編碼器(Encoder)和解碼器(Decoder)組成。以下是U-Net的主要組成部分:

  1. 編碼器(Encoder):這個部分主要實作通過分析輸入的圖像,達到提取特征以及逐漸降低分辨率的目的。
  2. 解碼器(Decoder):此部分針對特征圖進行反卷積或者插值的上采樣操作,達到擴大特征圖的尺寸增加圖像的細節表達能力的目的。
  3. 跳躍連接配接(Skip Connection):U-Net中的這個部分負責實作将來自編碼器與解碼器的特征圖一一連接配接,以達到解碼器可以利用來自不同層級的特征資訊,進而提高圖像分割精度。
  4. 最後一層:這一層通常是一個卷積層,通過1x1卷積核來映射特征圖到所需的輸出通道數(例如二進制分割或多類别分割)。
  1. Net模型有一個下采樣和上采樣部分。

上采樣部分進行去卷積以減少計算的特征圖的數量,由下采樣或收縮部分産生的特征圖被輸入到上采樣部分,以避免任何資訊的損失。對稱的上采樣部分提供精确的定位。該模型生成一個分割圖,對圖像中存在的每個像素進行分類。

  1. Net模型具有以下優點: U-Net模型可以使用有限數量的标記訓練圖像對圖像進行有效分割,U-Net結構結合了從下采樣路徑獲得的位置資訊和從上采樣路徑獲得的上下文資訊,以預測一個公平的分割圖。
  2. Net模型的限制在于,當輸入圖像的大小被限制在572×572,在較深的U-Net模型的中間層,學習速度普遍減慢,這導緻網絡忽略了具有抽象特征的層。

由于U-Net的結構設計,它在醫學圖像分割任務中取得了很好的性能,尤其适用于小樣本、低對比度和不均勻照明等挑戰性情況下的分割問題,目前它已被大量用于諸如器官,惡性良性腫瘤以及細胞分割等圖像分割任務。

V-NET

V-Net是一種用于三維醫學圖像分割的卷積神經網絡(CNN)架構,主要應用于處理三維體積資料的圖像分割任務,其架構是在U-Net架構之上的擴充,以下是V-Net的主要組成部分:

  1. 3D U-Net結構:V-Net的核心結構是一個3D版本的U-Net,與2D U-Net類似,V-Net中的編碼器和解碼器之間也使用跳躍連接配接來利用不同層級的特征資訊。
  2. 卷積和池化層:V-Net中使用了3D卷積和池化層,以處理三維體積資料。3D卷積操作通過在三個方向上滑動卷積核來提取特征。3D池化操作則在三個方向上進行降采樣,以減小特征圖的尺寸。
  3. 跳躍連接配接:V-Net中的跳躍連接配接與U-Net類似,通過将來自編碼器的特征圖與解碼器的特征圖進行連接配接,以幫助網絡恢複細節和保持語義一緻性。
  4. 卷積核大小:由于V-Net處理的是三維體積資料,是以在網絡的各個層級上使用較大的卷積核是常見的選擇。這樣有助于捕捉三維體積中的空間關系和局部上下文。
  5. 損失函數:V-Net通常使用交叉熵損失函數或Dice損失函數來度量分割結果與真實标簽之間的差異。這些損失函數用于優化網絡參數,并指導網絡學習進行準确的分割。

Net被廣泛應用于醫學圖像分割任務,如惡性良性腫瘤分割、腦部結構分割、心髒分割等。由于其專門針對三維體積資料的設計,V-Net在處理大尺寸和高次元醫學圖像時具有優勢,并取得了在這些任務中的良好性能。

區域卷積網絡

區域卷積網絡(Region Convolutional Neural Network,簡稱R-CNN)于2014年提出,作為目标檢測領域的重要成果,是一種用于目标檢測和物體識别的卷積神經網絡(CNN)架構,其主要目标是将檢測任務分解為候選區域生成和目标分類與邊界框回歸。

圖4顯示了R-CNN結構中的執行過程。

用于醫學圖像分割的深度神經網絡

圖4 R-CNN架構

以下是R-CNN的主要組成部分:

  1. 候選區域生成:首先,R-CNN使用一種選擇性搜尋(Selective Search)等方法在輸入圖像中生成一組候選區域。這些候選區域是可能包含物體的矩形區域。
  2. 特征提取:對于每個候選區域,R-CNN将其裁剪為固定大小,并通過預訓練的CNN模型(如AlexNet或VGGNet)提取特征。通常,這些特征是通過卷積層和全連接配接層的組合而得到的。
  3. 目标分類和邊界框回歸:使用提取的特征,R-CNN對每個候選區域進行目标分類和邊界框回歸。首先,它使用一個支援向量機(SVM)分類器來将每個候選區域配置設定給特定的目标類别。然後,使用回歸器對每個候選區域進行邊界框的微調,以更準确地框定目标的位置。
  4. CNN的訓練過程是端到端的。首先,在預訓練的CNN模型上進行無監督的特征微調。然後,使用有标注的訓練資料對SVM分類器和邊界框回歸器進行有監督的微調。

區域卷積網絡已被用于物體檢測和分割任務。一些文章中提出的R-CNN架構使用選擇性搜尋過程為邊界盒生成區域建議網絡,然後,這些區域建議被扭曲成标準方塊,并被轉發到CNN,進而生成特征向量圖作為輸出。

輸出密集層由從圖像中提取的特征組成,然後将這些特征輸入分類算法,以便對位于區域建議網絡中的物體進行分類。

該算法還預測偏移值,以提高區域建議或邊界框的精度水準。但由于以下原因,基本RCN模型的使用受到限制: 它不能實時實施,因為在測試圖像中對2000個區域建議的分類任務進行網絡訓練需要47秒左右。 

選擇性搜尋算法是一種預先确定的算法。是以,學習不會發生在這個階段。這可能會導緻産生不利的候選區域建議。

盡管R-CNN在目标檢測任務上取得了較好的性能,但由于其候選區域生成和獨立處理每個候選區域的特征提取過程較為繁瑣,導緻計算效率較低。

為了改進這一問題,後續出現了Fast R-CNN、Faster R-CNN和Mask R-CNN等方法,它們在R-CNN的基礎上進行了優化和擴充,進一步提高了目标檢測的效率和準确性。

快速R-CNN

快速 R-CNN(Fast R-CNN)是一種改進的目标檢測算法,它是 R-CNN 的一種優化版本。Fast R-CNN 在 R-CNN 的基礎上進行了改進,旨在提高目标檢測的速度和準确性。

以下是 Fast R-CNN 的關鍵改進點:

  1. 候選區域生成:Fast R-CNN 不再使用選擇性搜尋等方法生成候選區域。相反,它将整個輸入圖像輸入到卷積神經網絡(如 VGGNet 或 ResNet)中,通過卷積和池化操作提取圖像特征。
  2. 候選區域池化(RoI Pooling):Fast R-CNN 引入了候選區域池化層,用于從卷積特征圖中提取固定大小的特征向量。這個池化操作可以在不同尺寸和比例的候選區域上進行,使得不同大小的目标可以被準确地映射到固定大小的特征向量。
  3. 特征融合和分類:Fast R-CNN 在候選區域池化之後,通過連接配接一個全連接配接層進行特征融合和目标分類。這個全連接配接層用于對候選區域進行分類,并輸出目标的類别機率。
  4. 邊界框回歸:類别分類之後,Fast R-CNN 使用一個邊界框回歸器對候選區域進行邊界框的微調,以獲得更準确的目标框。

Fast R-CNN 的訓練過程包括兩個階段。首先,通過對預訓練的卷積神經網絡進行微調,将其轉化為目标檢測網絡。然後,使用标注的訓練資料對分類器和回歸器進行訓練。

Fast R-CNN 的優勢在于它将特征提取和分類回歸過程進行了整合,進而大幅度提高了目标檢測的速度。

相比于 R-CNN,Fast R-CNN 通過共享卷積特征的計算,避免了對每個候選區域進行單獨的特征提取,大大減少了計算量。同時,Fast R-CNN 在準确性方面也取得了較好的結果,成為目标檢測領域的重要算法之一。

DeepLab模型

DeepLab是一種用于語義分割任務的深度學習模型,最初由Google團隊于2016年提出。DeepLab通過結合卷積神經網絡(CNN)和空洞卷積(Dilated Convolution)等技術,實作了高效而準确的圖像分割。

DeepLab模型采用預先訓練好的CNN模型ResNet-101/VGG-16與Atrous卷積來提取圖像的特征。

使用Atrous卷積有以下好處: 它控制了CNN中特征響應的分辨率,它将圖像分類網絡轉換為密集的特征提取器,而不需要學習任何更多的參數 采用條件随機場(CRF)來産生精細的分割輸出。

DeepLabv1是DeepLab的一種變體,在DeepLabv1中,輸入的圖像通過帶有一個或兩個反卷積層的深度CNN層(見圖5)。這就産生了一個粗略的特征圖。

然後,通過使用雙線性插值過程,将該特征圖上升到原始圖像的大小。插值後的資料被應用于完全連接配接的條件随機場,以獲得最終的分割圖像。

用于醫學圖像分割的深度神經網絡

圖5 DeepLab架構

以下是DeepLab模型的一些關鍵特點和技術:

  1. 空洞卷積:DeepLab采用了空洞卷積(也稱為膨脹卷積或空洞卷積)來擴大感受野,以捕捉更大範圍的上下文資訊。傳統的卷積操作隻考慮局部鄰域的資訊,而空洞卷積通過在卷積核之間引入間隔(dilation)來擴大卷積核的有效接受野。這樣可以在不增加參數和計算量的情況下,增加感受野的範圍。
  2. 多尺度特征融合:DeepLab使用多個并行的空洞卷積分支來處理不同尺度的特征圖。這些分支具有不同的空洞率,以捕捉不同尺度下的上下文資訊。然後,通過将這些分支的特征圖進行融合,以生成具有更豐富上下文資訊的特征表示。
  3. 融合金字塔池化(ASPP):為了進一步增強全局上下文資訊的捕捉能力,DeepLab引入了融合金字塔池化(ASPP)子產品。ASPP子產品使用多個不同尺度的空洞卷積操作來捕獲不同層次的上下文資訊,然後将這些資訊進行融合,生成豐富的特征表示。
  4. 反卷積上采樣:DeepLab使用反卷積(或轉置卷積)操作對最終的特征圖進行上采樣,将其恢複到輸入圖像的尺寸。這樣可以将分割結果映射到原始圖像的每個像素位置,實作像素級别的語義分割。

在 DeepLabv2 模型中,多個空洞卷積以不同的擴張率應用于輸入特征圖。輸出融合在一起。 Atrous spatial pyramid pooling (ASPP) 以不同的尺度分割對象。

ResNet 模型使用具有不同膨脹率的空洞卷積。通過使用空洞卷積,可以通過減少參數數量和計算複雜性來捕獲來自大有效場的資訊。

DeepLabv3是DeepLabv2的擴充,向空洞空間金字塔池(ASPP)子產品添加了圖像級特征。它還利用批量歸一化來輕松訓練網絡。

DeepLabv3+模型将DeepLabv3的ASPP子產品與編碼器和解碼器結構相結合。該模型使用 Xception 模型進行特征提取。該模型還采用空洞和深度可分離卷積來加快計算速度。解碼器部分合并了對應于結構細節和語義資訊的低級和進階特征。

DeepLabv3+由編碼和解碼子產品組成。編碼路徑使用空洞卷積和主幹網絡(如 MobileNetv2、PNASNet、ResNet和Xception)從輸入圖像中提取所需資訊。解碼路徑使用來自編碼器路徑的資訊重建具有相關次元的輸出。

DeepLab模型在許多圖像分割任務中取得了顯著的性能,特别是在細粒度的語義分割任務上。它已經應用于各種領域,如醫學圖像分割、自動駕駛、遙感圖像分析等,并在學術界和工業界得到廣泛的應用和研究。

目前基于深度學習的醫學領域同時也面臨着許多的挑戰,比如資料收集,深度學習網絡模型需要大量資料,且訓練所需的資料都應該有良好的注釋。

這些資料集在各種基于DL的醫療程式中發揮着重要作用。然而在醫學圖像進行中,收集大量帶注釋的醫學圖像是一件非常困難的事。此外,對醫學圖像進行注釋既乏味又昂貴,需要專業知識。

目前隻有幾個大型資料集是公開可用的,仍然需要更具挑戰性的資料集,以達到更好地訓練 DL 模型并能夠處理密集對象的目的。通常,現有的3D資料集不是很大,而且很少是合成的,是以更具挑戰性的資料集的需求迫在眉睫。

圖像分割技術已經從手動圖像分割發展到使用機器學習和深度學習方法的自動分割, 基于 ML/DL 的方法可以對大量圖像進行分割,它有助于識别圖像中有意義的對象和診斷疾病。

此外,仍然需要一種有效的解決方案來提高圖像分割模型的性能,是以,未來的研究人員可以探索各種新的深度學習模型設計。

随着技術的進步,深度學習在圖像分割中起到了非常重要的作用。

目前的工作将有助于研究人員在醫學領域設計神經網絡架構以診斷疾病。同時,研究人員将意識到在基于深度學習的醫學圖像分割領域可能面臨的挑戰和最先進的解決方案。

繼續閱讀