王亞剛,郗怡媛,2,潘曉英,2+
1.西安郵電大學 計算機學院,西安710121
2.西安郵電大學 陜西省網絡數據分析與智能處理重點實驗室,西安710121
結腸癌是世界范圍內發病率最高的三大癌癥之一,也是導致癌癥死亡的常見病因。2012年,國際癌癥研究機構在全世界登記了1 370 600 例新病例和693 900例死亡病歷[1]。當疾病發展到晚期時,結腸癌的5年生存率低于7%,但在早期診斷的病例中,如果治療成功,其5 年生存率就會提高到90%以上[2]。結腸癌早期篩查的黃金標準就是使用結腸鏡檢測腸道中的息肉[3],每提升1%的息肉檢出率,腸癌發病率將會降低3%[4]。在傳統的息肉檢測方法中需要操作者達到高度的手眼協調,盡管如此,還是會有25%的息肉在視頻檢查中被漏檢[5]。因此,采用計算機輔助診斷系統來降低息肉漏檢率就顯得尤為重要。
結腸鏡下的息肉自動檢測方法有很多,大致可以分為兩類:基于紋理、顏色的方法以及基于形狀的方法[6]。文獻[7]提出一種基于紋理檢測腸道息肉的方法,使用窗谷堆積中值深度(window median depth of valleys accumulation,WM-DOVA)能量圖來獲得與息肉相關的連續邊界,進而定位息肉區域。文獻[8]基于息肉的形狀,采用主成分追蹤的方法對圖像進行低秩稀疏分解,再通過Chan-Vese算法對息肉圖像進行分割。總的來說,這兩類方法無法同時將息肉區域包含的所有特征進行有效結合,只是單一地考慮特征的一部分,會導致分割結果存在一定的局限性。
隨著計算機技術的發展,深度學習技術已被成功地應用于結腸鏡視頻中的息肉檢測。文獻[9]采用深度卷積神經網絡作為模型,以交叉熵作為模型的最優損失函數來檢測結腸鏡下的息肉。Nguyen等[10]提出一種基于編碼器-解碼器網絡的息肉圖像分割方法,有效提高了結腸鏡下的息肉檢出率并為后續網絡結構的改進提供了重要思路。Wang等[11]提出了一種16層的語義分割SegNet網絡以進一步提高息肉分割的精度及網絡的魯棒性。2015年,Park等[12]采用卷積神經網絡對不同尺度下的特征進行學習,再通過全連接網絡將結腸鏡圖像中的像素分為息肉像素和非息肉像素。2018年,Xiao等[13]研究使用DeepLabv3與長短期記憶網絡相結合的方法對腸道息肉進行分割,與現有的DeepLabv3 模型相比,分割效果有一定提升但總體精度仍然較低。
與傳統方法相比,現有的深度學習技術在息肉檢測方面表現更好,能夠較為全面地提取息肉區域包含的特征。但也存在一些問題:(1)結腸鏡視頻拍攝過程中由于腸道粘液導致的息肉反光現象會對分割結果造成影響[8];(2)目前已采用的由人工設計的神經網絡結構存在繁瑣且人工調整網絡結構參數使得網絡性能不足的問題[14]。
針對上述存在的問題,本文提出一種基于改進DeepLabv3+網絡的腸道息肉分割方法,將其應用到結腸鏡下的息肉圖像分割問題中。與現有的基于深度學習的息肉分割方法相比,本文在以下兩方面提出創新:
(1)在數據預處理方面,首先對息肉圖像進行去反光處理,解決圖像反光區域對分割結果產生的影響;再將通過Grab Cut算法得到的粗分割結果與去反光處理后的圖像進行疊加,以增強息肉位置的信號強度。
(2)在網絡結構方面,首先在DeepLabv3+網絡的編碼器部分引入通過神經架構搜索(neural architecture search,NAS)得到的最優密集預測單元(dense prediction cell,DPC),多尺度捕獲圖像特征信息;然后在解碼器部分采用3層深度可分離卷積,實現對空間信息和深度信息的去耦,有效減少上采樣過程中的信息丟失,提高結腸鏡下的息肉圖像分割精度。

Fig.1 Grab Cut algorithm theory圖1 Grab Cut 算法原理
Grab Cut 是由微軟公司提出的一種圖像分割算法,是對Rother 等人提出的Graph Cut 算法的改進和擴展[15]。算法原理如圖1所示,首先以用戶給定的目標區域邊界作為初始信息,將框外像素視為已知背景像素,內部像素標記為未知像素;然后采用K-means算法對前景與背景進行聚類,根據聚類后的顏色分布,來獲取每個像素的新標簽;最后將這些標簽與對應像素作為下一次迭代的輸入。經過數次迭代后直至模型收斂,得到最終的分割結果[16]。
本文采用Grab Cut 算法對結腸鏡圖像中的息肉區域進行預提取,獲取息肉位置的粗分割結果,并將其與原圖疊加以增強息肉位置的信號強度。
目前,大量基于深度學習的圖像分割研究證明了基于卷積神經網絡的深度學習模型在圖像語義分割應用中的有效性[17]。
DeepLabv3+是目前最新的語義分割網絡之一,它采用具有多尺度的卷積層以及編碼器-解碼器結構相結合的方式提高分割準確率。如圖2所示,編碼器部分首先在Xception 模塊中利用不同通道的可分離卷積層提取圖像特征,再通過空間金字塔結構(atrous spatial pyramid pooling,ASPP)中不同速率的并行空洞卷積捕獲到該特征空間信息,并通過1×1卷積進行通道壓縮。

Fig.2 DeepLabv3+network model圖2 DeepLabv3+網絡模型
在解碼器部分,首先對提取到的多尺度特征信息進行4倍雙線性插值上采樣,再與Xception中提取到的原始特征進行結合,然后利用3×3 卷積對合并后總的特征信息進行簡單特征融合,最后對特征采用4倍雙線性插值上采樣得到分割結果。
圖3 為DeepLabv3+的息肉圖像分割結果,從圖中可以看出,該網絡可以較好地獲取到息肉邊界,但是息肉內部存在著分割不完全的現象。原因有二:一是ASPP架構在該數據集上表現不理想;二是解碼器部分未能對疊加后的特征進行充分融合。針對上述問題,本文對DeepLabv3+網絡進行了改進。

Fig.3 DeepLabv3+segmentation results圖3 DeepLabv3+分割結果
與原始DeepLabv3+網絡相比,本文在以下兩方面進行改進。首先將基于神經架構搜索的密集預測單元引入DeepLabv3+網絡,在編碼過程中通過最優DPC架構捕獲多尺度特征信息;然后在解碼器中,將特征融合部分的3×3 卷積改進為3層深度可分離卷積,以實現對空間信息和深度信息的去耦,減少上采樣過程中的信息丟失的問題。
神經架構搜索是一種通過訓練網絡控制器來生成網絡架構的算法。與傳統的由人工設計網絡架構的方法相比,神經架構搜索無需反復手工設計實驗,且由該算法得到的網絡架構目前在多個數據集上表現出了優于手工設計架構的卓越性能。文獻[18]通過在一周的時間內搜索370 個GPU 上的2.8×104個密集預測單元,得到了一種最優的DPC架構,它在多個數據集的表現上均優于ASPP 模型。該架構包括1×1卷積、采樣率分別為6×3、18×15、6×21、1×1、1×6,內核為3 的卷積以及不同尺度的平均池化層。如圖4中的DPC模塊所示,將5種不同采樣率的卷積層進行多種組合,以提取圖像多尺度特征,將各個分支結果結合作為DPC架構的輸出。如圖5所示,通過每個操作的L1 正則化權重可以看出采樣率為1×6的卷積對輸出貢獻最大。

Fig.4 Improved DeepLabv3+network model圖4 改進的DeepLabv3+網絡模型

Fig.5 L1 regularization weights for each operation圖5 單個操作L1正則化權重
本文在解碼器部分采用3 層深度可分離卷積對深度信息和空間信息去耦,以逐步獲取精細的分割結果。深度可分離卷積將原始卷積在保持通道分離的情況下分為深度卷積和一個1×1 的逐點卷積。深度卷積的一個卷積核只對一個通道操作,即每個通道獨立進行卷積運算。逐點卷積將上一步得到的多個特征圖在深度方向上加權組合。與傳統卷積相比將深度信息和空間信息拆分處理,能夠實現對空間信息和深度信息的去耦,有效減少上采樣過程中的信息丟失[19]。如圖6 所示,在612 張圖像的CVCClinicDB數據集上,分別采用1~7層深度可分離卷積訓練DeepLabv3+網絡,通過實驗最終平均交并比(mean intersection over union,MIoU)對比可知采用3層深度可分離卷積的網絡性能最優。

Fig.6 Impact of network layer selection on MIoU圖6 網絡層數選擇對MIoU的影響
表1 展示了不同網絡結構所對應的結果對比。可以看出,引入DPC 架構和深度可分離卷積都能夠有效提高分割精度。

Table 1 Network structure comparison results表1 網絡結構對比結果
圖7介紹了基于改進DeepLabv3+網絡的腸道息肉分割算法的主要技術流程。本研究流程可分為數據預處理、模型訓練以及結果對比分析三個階段。
數據預處理部分主要包括:(1)對息肉圖像的去反光處理;(2)通過Grab Cut 算法得到息肉的粗分割結果;(3)將粗分割結果與原圖疊加得到疊加后的Image圖像;(4)單通道標簽的制作;(5)訓練集、測試集的劃分以及格式轉換。
在模型訓練部分將預處理后的適用于TensorFlow深度學習框架的TF格式圖像輸入改進的DeepLabv3+網絡中,根據網絡結構及圖像參數調整網絡訓練參數。網絡在編碼器部分捕獲多尺度特征得到特征映射圖,在解碼器部分將其恢復到原始空間分辨率,最后保存得到的分割模型參數。

Fig.7 Flow chart of improved DeepLabv3+network in intestinal polyp segmentation圖7 改進DeepLabv3+網絡的息肉分割算法流程圖
在結果對比分析部分,將待分割息肉圖像經過數據預處理部分的圖像去反光、獲取粗分割結果并與原圖疊加以及數據格式的轉換后,輸入分割模型中,得到驗證集的分割結果。采用5折交叉驗證的方法,將分割結果與待分割圖像標簽進行匹配計算,通過MIoU 等5 個指標來評價分割結果,并與其他方法比較,得到最終結論。
本實驗采用CVC-ClinicDB 數據集,該數據集是由醫學圖像計算與計算機輔助干預國際會議(Medical Image Computing and Computer-Assisted Intervention,MICCAI)于2015 年發布的一個公共數據集,數據集包含612 張384×288 大小的結腸鏡檢查圖像,以及與息肉圖像相對應的Ground truth。
數據預處理部分包含兩個階段:一是對圖像進行去反光處理;二是對處理后的圖像進行粗分割并將結果與原圖疊加以提高目標區域的信號強度。
由于人體腹腔中存在大量粘液,在結腸檢查時會引起反光,表現在結腸鏡圖像中為白色區域[20]。該區域在圖像分割時會極大地影響分割精度。為了降低此影響,對息肉圖像進行去反光處理。首先定位圖像中的高強度值像素點,對圖像中所有像素進行平均強度計算,根據計算結果設置閾值為0.8,將強度值大于閾值的像素點識別為鏡面反光像素并加以存儲;然后在原圖像的各個通道上進行中值濾波,中值濾波是一種非線性濾波,與其他濾波方法相比,它能夠很好地保護圖像的邊緣信息,且不會造成圖像模糊而導致特征丟失[21],多次實驗最終選取濾波核大小為25;最后,將檢測到的反光像素替換為相應的中值濾波值,結果如圖8所示。

Fig.8 Comparison of image de-reflection processing圖8 圖像去反光處理對比
接下來使用迭代的Grab Cut 算法得到息肉區域的粗分割結果并與原圖疊加。結果如圖9所示,其中圖9(a)為經過去反光處理的息肉圖像,圖9(b)為算法得到的息肉初步輪廓,疊加后的圖像如圖9(c)所示。

Fig.9 Grab Cut processed image results圖9 Grab Cut處理圖像結果
實驗在nvidia dgx-1服務器,TensorFlow1.10.0環境下進行,該服務器配置8 臺Tesla V100 GPU,每塊顯卡內存為512 GB。實驗將輸入圖像與特征圖之比設為8,取采樣步長為(12,24,36),將網絡分類數設為2以區分息肉區域與非息肉區域,圖像輸入大小為385×385,批處理大小為4。
本文采用5個指標對分割結果進行評價:平均交并比、Dice系數(dice coefficient,Dice)、敏感度(sensitivity,Sens)、精確率(precision,Prec)以及F1值(F1-score,F1)。

其中,TP為被正確分割的息肉區域像素數目;FP為被錯誤分割為息肉區域的背景像素數目;FN為錯誤標記為背景的息肉像素數目;X為改進的DeepLabv3+網絡分割結果集;Y為原始息肉圖像的標注結果集。
5.4.1 不同處理方法對結果的影響
實驗隨機取數據集中的80%作為訓練集,10%作為測試集,10%為驗證集,并采用5 折交叉驗證。為了驗證數據預處理方法及網絡改進對分割結果產生的影響,將原始未處理圖像、去反光圖像、Grab Cut粗分割結果、預處理圖像(去反光+粗分割結果疊加)與原始DeepLabv3+、改進DeepLabv3+網絡分別進行結合,得到多組實驗結果,表2 展示了不同方法對分割結果的影響。

Table 2 Comparison of results with different methods表2 不同處理方法結果對比
實驗結果表明,與直接采用原始DeepLabv3+網絡對未處理圖像進行分割相比,本文所采用的方法在各項指標的數值上分別提升了0.050(Dice)、0.060(Sens)、0.064(Prec)、0.062(F1)、0.074(MIoU)。同時,從其他對比實驗中也能夠看出,采用兩步圖像預處理方法以及網絡的改進均不同程度地提升了分割精度,證明了本文提出方法的有效性。息肉圖像驗證集部分分割結果如圖10所示。

Fig.10 Results of partial segmentation圖10 部分分割結果
5.4.2 不同算法對比結果
為了驗證本文所提出網絡的性能,使用5種已有的算法與之進行比較,算法對比結果如表3所示。

Table 3 Comparison of different algorithms segmentation results表3 不同算法分割結果對比
對比發現,本文所提出的方法在平均交并比、Dice系數、敏感度、精確率以及F1值上都不同程度地優于其他算法。與原DeepLabv3+網絡相比,密集預測單元與深度可分離卷積相結合,捕獲多尺度特征信息的同時在解碼器部分對解碼的信息進行去耦,減少了分割過程中的不完全分割現象。證明本文方法對腸道息肉圖像分割在精度上有一定提升,對深度學習在腸道息肉圖像的處理和分析具有借鑒意義。
本文提出了一種基于改進DeepLabv3+網絡的腸道息肉分割算法,在數據預處理部分采用中值濾波去反光處理減少反光像素對分割結果的影響,然后疊加Grab Cut 圖像層以增強息肉位置信號強度。在網絡結構部分,將通過神經架構搜索得到的最優密集預測單元引入該網絡,并在解碼器部分使用3層深度可分離卷積,解決圖像分割不完全的問題同時提高分割精度。實驗最終的MIoU 值達到0.947,其余指標也均高于0.935。不過仍有很多問題需要完善,如算法的計算量較大、復雜度較高等。未來將通過算法優化及數據處理進一步提高結腸鏡下的息肉圖像分割效果,將計算機智能輔診系統更好地應用到醫學診斷中。