王亞剛,郗怡媛,2,潘曉英,2+
1.西安郵電大學 計算機學院,西安710121
2.西安郵電大學 陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點實驗室,西安710121
結(jié)腸癌是世界范圍內(nèi)發(fā)病率最高的三大癌癥之一,也是導致癌癥死亡的常見病因。2012年,國際癌癥研究機構(gòu)在全世界登記了1 370 600 例新病例和693 900例死亡病歷[1]。當疾病發(fā)展到晚期時,結(jié)腸癌的5年生存率低于7%,但在早期診斷的病例中,如果治療成功,其5 年生存率就會提高到90%以上[2]。結(jié)腸癌早期篩查的黃金標準就是使用結(jié)腸鏡檢測腸道中的息肉[3],每提升1%的息肉檢出率,腸癌發(fā)病率將會降低3%[4]。在傳統(tǒng)的息肉檢測方法中需要操作者達到高度的手眼協(xié)調(diào),盡管如此,還是會有25%的息肉在視頻檢查中被漏檢[5]。因此,采用計算機輔助診斷系統(tǒng)來降低息肉漏檢率就顯得尤為重要。
結(jié)腸鏡下的息肉自動檢測方法有很多,大致可以分為兩類:基于紋理、顏色的方法以及基于形狀的方法[6]。文獻[7]提出一種基于紋理檢測腸道息肉的方法,使用窗谷堆積中值深度(window median depth of valleys accumulation,WM-DOVA)能量圖來獲得與息肉相關(guān)的連續(xù)邊界,進而定位息肉區(qū)域。文獻[8]基于息肉的形狀,采用主成分追蹤的方法對圖像進行低秩稀疏分解,再通過Chan-Vese算法對息肉圖像進行分割??偟膩碚f,這兩類方法無法同時將息肉區(qū)域包含的所有特征進行有效結(jié)合,只是單一地考慮特征的一部分,會導致分割結(jié)果存在一定的局限性。
隨著計算機技術(shù)的發(fā)展,深度學習技術(shù)已被成功地應(yīng)用于結(jié)腸鏡視頻中的息肉檢測。文獻[9]采用深度卷積神經(jīng)網(wǎng)絡(luò)作為模型,以交叉熵作為模型的最優(yōu)損失函數(shù)來檢測結(jié)腸鏡下的息肉。Nguyen等[10]提出一種基于編碼器-解碼器網(wǎng)絡(luò)的息肉圖像分割方法,有效提高了結(jié)腸鏡下的息肉檢出率并為后續(xù)網(wǎng)絡(luò)結(jié)構(gòu)的改進提供了重要思路。Wang等[11]提出了一種16層的語義分割SegNet網(wǎng)絡(luò)以進一步提高息肉分割的精度及網(wǎng)絡(luò)的魯棒性。2015年,Park等[12]采用卷積神經(jīng)網(wǎng)絡(luò)對不同尺度下的特征進行學習,再通過全連接網(wǎng)絡(luò)將結(jié)腸鏡圖像中的像素分為息肉像素和非息肉像素。2018年,Xiao等[13]研究使用DeepLabv3與長短期記憶網(wǎng)絡(luò)相結(jié)合的方法對腸道息肉進行分割,與現(xiàn)有的DeepLabv3 模型相比,分割效果有一定提升但總體精度仍然較低。
與傳統(tǒng)方法相比,現(xiàn)有的深度學習技術(shù)在息肉檢測方面表現(xiàn)更好,能夠較為全面地提取息肉區(qū)域包含的特征。但也存在一些問題:(1)結(jié)腸鏡視頻拍攝過程中由于腸道粘液導致的息肉反光現(xiàn)象會對分割結(jié)果造成影響[8];(2)目前已采用的由人工設(shè)計的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)存在繁瑣且人工調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)使得網(wǎng)絡(luò)性能不足的問題[14]。
針對上述存在的問題,本文提出一種基于改進DeepLabv3+網(wǎng)絡(luò)的腸道息肉分割方法,將其應(yīng)用到結(jié)腸鏡下的息肉圖像分割問題中。與現(xiàn)有的基于深度學習的息肉分割方法相比,本文在以下兩方面提出創(chuàng)新:
(1)在數(shù)據(jù)預(yù)處理方面,首先對息肉圖像進行去反光處理,解決圖像反光區(qū)域?qū)Ψ指罱Y(jié)果產(chǎn)生的影響;再將通過Grab Cut算法得到的粗分割結(jié)果與去反光處理后的圖像進行疊加,以增強息肉位置的信號強度。
(2)在網(wǎng)絡(luò)結(jié)構(gòu)方面,首先在DeepLabv3+網(wǎng)絡(luò)的編碼器部分引入通過神經(jīng)架構(gòu)搜索(neural architecture search,NAS)得到的最優(yōu)密集預(yù)測單元(dense prediction cell,DPC),多尺度捕獲圖像特征信息;然后在解碼器部分采用3層深度可分離卷積,實現(xiàn)對空間信息和深度信息的去耦,有效減少上采樣過程中的信息丟失,提高結(jié)腸鏡下的息肉圖像分割精度。
Fig.1 Grab Cut algorithm theory圖1 Grab Cut 算法原理
Grab Cut 是由微軟公司提出的一種圖像分割算法,是對Rother 等人提出的Graph Cut 算法的改進和擴展[15]。算法原理如圖1所示,首先以用戶給定的目標區(qū)域邊界作為初始信息,將框外像素視為已知背景像素,內(nèi)部像素標記為未知像素;然后采用K-means算法對前景與背景進行聚類,根據(jù)聚類后的顏色分布,來獲取每個像素的新標簽;最后將這些標簽與對應(yīng)像素作為下一次迭代的輸入。經(jīng)過數(shù)次迭代后直至模型收斂,得到最終的分割結(jié)果[16]。
本文采用Grab Cut 算法對結(jié)腸鏡圖像中的息肉區(qū)域進行預(yù)提取,獲取息肉位置的粗分割結(jié)果,并將其與原圖疊加以增強息肉位置的信號強度。
目前,大量基于深度學習的圖像分割研究證明了基于卷積神經(jīng)網(wǎng)絡(luò)的深度學習模型在圖像語義分割應(yīng)用中的有效性[17]。
DeepLabv3+是目前最新的語義分割網(wǎng)絡(luò)之一,它采用具有多尺度的卷積層以及編碼器-解碼器結(jié)構(gòu)相結(jié)合的方式提高分割準確率。如圖2所示,編碼器部分首先在Xception 模塊中利用不同通道的可分離卷積層提取圖像特征,再通過空間金字塔結(jié)構(gòu)(atrous spatial pyramid pooling,ASPP)中不同速率的并行空洞卷積捕獲到該特征空間信息,并通過1×1卷積進行通道壓縮。
Fig.2 DeepLabv3+network model圖2 DeepLabv3+網(wǎng)絡(luò)模型
在解碼器部分,首先對提取到的多尺度特征信息進行4倍雙線性插值上采樣,再與Xception中提取到的原始特征進行結(jié)合,然后利用3×3 卷積對合并后總的特征信息進行簡單特征融合,最后對特征采用4倍雙線性插值上采樣得到分割結(jié)果。
圖3 為DeepLabv3+的息肉圖像分割結(jié)果,從圖中可以看出,該網(wǎng)絡(luò)可以較好地獲取到息肉邊界,但是息肉內(nèi)部存在著分割不完全的現(xiàn)象。原因有二:一是ASPP架構(gòu)在該數(shù)據(jù)集上表現(xiàn)不理想;二是解碼器部分未能對疊加后的特征進行充分融合。針對上述問題,本文對DeepLabv3+網(wǎng)絡(luò)進行了改進。
Fig.3 DeepLabv3+segmentation results圖3 DeepLabv3+分割結(jié)果
與原始DeepLabv3+網(wǎng)絡(luò)相比,本文在以下兩方面進行改進。首先將基于神經(jīng)架構(gòu)搜索的密集預(yù)測單元引入DeepLabv3+網(wǎng)絡(luò),在編碼過程中通過最優(yōu)DPC架構(gòu)捕獲多尺度特征信息;然后在解碼器中,將特征融合部分的3×3 卷積改進為3層深度可分離卷積,以實現(xiàn)對空間信息和深度信息的去耦,減少上采樣過程中的信息丟失的問題。
神經(jīng)架構(gòu)搜索是一種通過訓練網(wǎng)絡(luò)控制器來生成網(wǎng)絡(luò)架構(gòu)的算法。與傳統(tǒng)的由人工設(shè)計網(wǎng)絡(luò)架構(gòu)的方法相比,神經(jīng)架構(gòu)搜索無需反復手工設(shè)計實驗,且由該算法得到的網(wǎng)絡(luò)架構(gòu)目前在多個數(shù)據(jù)集上表現(xiàn)出了優(yōu)于手工設(shè)計架構(gòu)的卓越性能。文獻[18]通過在一周的時間內(nèi)搜索370 個GPU 上的2.8×104個密集預(yù)測單元,得到了一種最優(yōu)的DPC架構(gòu),它在多個數(shù)據(jù)集的表現(xiàn)上均優(yōu)于ASPP 模型。該架構(gòu)包括1×1卷積、采樣率分別為6×3、18×15、6×21、1×1、1×6,內(nèi)核為3 的卷積以及不同尺度的平均池化層。如圖4中的DPC模塊所示,將5種不同采樣率的卷積層進行多種組合,以提取圖像多尺度特征,將各個分支結(jié)果結(jié)合作為DPC架構(gòu)的輸出。如圖5所示,通過每個操作的L1 正則化權(quán)重可以看出采樣率為1×6的卷積對輸出貢獻最大。
Fig.4 Improved DeepLabv3+network model圖4 改進的DeepLabv3+網(wǎng)絡(luò)模型
Fig.5 L1 regularization weights for each operation圖5 單個操作L1正則化權(quán)重
本文在解碼器部分采用3 層深度可分離卷積對深度信息和空間信息去耦,以逐步獲取精細的分割結(jié)果。深度可分離卷積將原始卷積在保持通道分離的情況下分為深度卷積和一個1×1 的逐點卷積。深度卷積的一個卷積核只對一個通道操作,即每個通道獨立進行卷積運算。逐點卷積將上一步得到的多個特征圖在深度方向上加權(quán)組合。與傳統(tǒng)卷積相比將深度信息和空間信息拆分處理,能夠?qū)崿F(xiàn)對空間信息和深度信息的去耦,有效減少上采樣過程中的信息丟失[19]。如圖6 所示,在612 張圖像的CVCClinicDB數(shù)據(jù)集上,分別采用1~7層深度可分離卷積訓練DeepLabv3+網(wǎng)絡(luò),通過實驗最終平均交并比(mean intersection over union,MIoU)對比可知采用3層深度可分離卷積的網(wǎng)絡(luò)性能最優(yōu)。
Fig.6 Impact of network layer selection on MIoU圖6 網(wǎng)絡(luò)層數(shù)選擇對MIoU的影響
表1 展示了不同網(wǎng)絡(luò)結(jié)構(gòu)所對應(yīng)的結(jié)果對比??梢钥闯觯隓PC 架構(gòu)和深度可分離卷積都能夠有效提高分割精度。
Table 1 Network structure comparison results表1 網(wǎng)絡(luò)結(jié)構(gòu)對比結(jié)果
圖7介紹了基于改進DeepLabv3+網(wǎng)絡(luò)的腸道息肉分割算法的主要技術(shù)流程。本研究流程可分為數(shù)據(jù)預(yù)處理、模型訓練以及結(jié)果對比分析三個階段。
數(shù)據(jù)預(yù)處理部分主要包括:(1)對息肉圖像的去反光處理;(2)通過Grab Cut 算法得到息肉的粗分割結(jié)果;(3)將粗分割結(jié)果與原圖疊加得到疊加后的Image圖像;(4)單通道標簽的制作;(5)訓練集、測試集的劃分以及格式轉(zhuǎn)換。
在模型訓練部分將預(yù)處理后的適用于TensorFlow深度學習框架的TF格式圖像輸入改進的DeepLabv3+網(wǎng)絡(luò)中,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)及圖像參數(shù)調(diào)整網(wǎng)絡(luò)訓練參數(shù)。網(wǎng)絡(luò)在編碼器部分捕獲多尺度特征得到特征映射圖,在解碼器部分將其恢復到原始空間分辨率,最后保存得到的分割模型參數(shù)。
Fig.7 Flow chart of improved DeepLabv3+network in intestinal polyp segmentation圖7 改進DeepLabv3+網(wǎng)絡(luò)的息肉分割算法流程圖
在結(jié)果對比分析部分,將待分割息肉圖像經(jīng)過數(shù)據(jù)預(yù)處理部分的圖像去反光、獲取粗分割結(jié)果并與原圖疊加以及數(shù)據(jù)格式的轉(zhuǎn)換后,輸入分割模型中,得到驗證集的分割結(jié)果。采用5折交叉驗證的方法,將分割結(jié)果與待分割圖像標簽進行匹配計算,通過MIoU 等5 個指標來評價分割結(jié)果,并與其他方法比較,得到最終結(jié)論。
本實驗采用CVC-ClinicDB 數(shù)據(jù)集,該數(shù)據(jù)集是由醫(yī)學圖像計算與計算機輔助干預(yù)國際會議(Medical Image Computing and Computer-Assisted Intervention,MICCAI)于2015 年發(fā)布的一個公共數(shù)據(jù)集,數(shù)據(jù)集包含612 張384×288 大小的結(jié)腸鏡檢查圖像,以及與息肉圖像相對應(yīng)的Ground truth。
數(shù)據(jù)預(yù)處理部分包含兩個階段:一是對圖像進行去反光處理;二是對處理后的圖像進行粗分割并將結(jié)果與原圖疊加以提高目標區(qū)域的信號強度。
由于人體腹腔中存在大量粘液,在結(jié)腸檢查時會引起反光,表現(xiàn)在結(jié)腸鏡圖像中為白色區(qū)域[20]。該區(qū)域在圖像分割時會極大地影響分割精度。為了降低此影響,對息肉圖像進行去反光處理。首先定位圖像中的高強度值像素點,對圖像中所有像素進行平均強度計算,根據(jù)計算結(jié)果設(shè)置閾值為0.8,將強度值大于閾值的像素點識別為鏡面反光像素并加以存儲;然后在原圖像的各個通道上進行中值濾波,中值濾波是一種非線性濾波,與其他濾波方法相比,它能夠很好地保護圖像的邊緣信息,且不會造成圖像模糊而導致特征丟失[21],多次實驗最終選取濾波核大小為25;最后,將檢測到的反光像素替換為相應(yīng)的中值濾波值,結(jié)果如圖8所示。
Fig.8 Comparison of image de-reflection processing圖8 圖像去反光處理對比
接下來使用迭代的Grab Cut 算法得到息肉區(qū)域的粗分割結(jié)果并與原圖疊加。結(jié)果如圖9所示,其中圖9(a)為經(jīng)過去反光處理的息肉圖像,圖9(b)為算法得到的息肉初步輪廓,疊加后的圖像如圖9(c)所示。
Fig.9 Grab Cut processed image results圖9 Grab Cut處理圖像結(jié)果
實驗在nvidia dgx-1服務(wù)器,TensorFlow1.10.0環(huán)境下進行,該服務(wù)器配置8 臺Tesla V100 GPU,每塊顯卡內(nèi)存為512 GB。實驗將輸入圖像與特征圖之比設(shè)為8,取采樣步長為(12,24,36),將網(wǎng)絡(luò)分類數(shù)設(shè)為2以區(qū)分息肉區(qū)域與非息肉區(qū)域,圖像輸入大小為385×385,批處理大小為4。
本文采用5個指標對分割結(jié)果進行評價:平均交并比、Dice系數(shù)(dice coefficient,Dice)、敏感度(sensitivity,Sens)、精確率(precision,Prec)以及F1值(F1-score,F(xiàn)1)。
其中,TP為被正確分割的息肉區(qū)域像素數(shù)目;FP為被錯誤分割為息肉區(qū)域的背景像素數(shù)目;FN為錯誤標記為背景的息肉像素數(shù)目;X為改進的DeepLabv3+網(wǎng)絡(luò)分割結(jié)果集;Y為原始息肉圖像的標注結(jié)果集。
5.4.1 不同處理方法對結(jié)果的影響
實驗隨機取數(shù)據(jù)集中的80%作為訓練集,10%作為測試集,10%為驗證集,并采用5 折交叉驗證。為了驗證數(shù)據(jù)預(yù)處理方法及網(wǎng)絡(luò)改進對分割結(jié)果產(chǎn)生的影響,將原始未處理圖像、去反光圖像、Grab Cut粗分割結(jié)果、預(yù)處理圖像(去反光+粗分割結(jié)果疊加)與原始DeepLabv3+、改進DeepLabv3+網(wǎng)絡(luò)分別進行結(jié)合,得到多組實驗結(jié)果,表2 展示了不同方法對分割結(jié)果的影響。
Table 2 Comparison of results with different methods表2 不同處理方法結(jié)果對比
實驗結(jié)果表明,與直接采用原始DeepLabv3+網(wǎng)絡(luò)對未處理圖像進行分割相比,本文所采用的方法在各項指標的數(shù)值上分別提升了0.050(Dice)、0.060(Sens)、0.064(Prec)、0.062(F1)、0.074(MIoU)。同時,從其他對比實驗中也能夠看出,采用兩步圖像預(yù)處理方法以及網(wǎng)絡(luò)的改進均不同程度地提升了分割精度,證明了本文提出方法的有效性。息肉圖像驗證集部分分割結(jié)果如圖10所示。
Fig.10 Results of partial segmentation圖10 部分分割結(jié)果
5.4.2 不同算法對比結(jié)果
為了驗證本文所提出網(wǎng)絡(luò)的性能,使用5種已有的算法與之進行比較,算法對比結(jié)果如表3所示。
Table 3 Comparison of different algorithms segmentation results表3 不同算法分割結(jié)果對比
對比發(fā)現(xiàn),本文所提出的方法在平均交并比、Dice系數(shù)、敏感度、精確率以及F1值上都不同程度地優(yōu)于其他算法。與原DeepLabv3+網(wǎng)絡(luò)相比,密集預(yù)測單元與深度可分離卷積相結(jié)合,捕獲多尺度特征信息的同時在解碼器部分對解碼的信息進行去耦,減少了分割過程中的不完全分割現(xiàn)象。證明本文方法對腸道息肉圖像分割在精度上有一定提升,對深度學習在腸道息肉圖像的處理和分析具有借鑒意義。
本文提出了一種基于改進DeepLabv3+網(wǎng)絡(luò)的腸道息肉分割算法,在數(shù)據(jù)預(yù)處理部分采用中值濾波去反光處理減少反光像素對分割結(jié)果的影響,然后疊加Grab Cut 圖像層以增強息肉位置信號強度。在網(wǎng)絡(luò)結(jié)構(gòu)部分,將通過神經(jīng)架構(gòu)搜索得到的最優(yōu)密集預(yù)測單元引入該網(wǎng)絡(luò),并在解碼器部分使用3層深度可分離卷積,解決圖像分割不完全的問題同時提高分割精度。實驗最終的MIoU 值達到0.947,其余指標也均高于0.935。不過仍有很多問題需要完善,如算法的計算量較大、復雜度較高等。未來將通過算法優(yōu)化及數(shù)據(jù)處理進一步提高結(jié)腸鏡下的息肉圖像分割效果,將計算機智能輔診系統(tǒng)更好地應(yīng)用到醫(yī)學診斷中。