馬巧梅,梁昊然,郎雅琨
(1.中北大學 軟件學院,山西 太原 030051;2.山西省軍民融合軟件技術工程研究中心,山西 太原 030051)
計算機輔助診斷(computer aided detection,CAD)系統(tǒng)可以幫助醫(yī)生提高診斷速度和準確率。早期肺結節(jié)檢測通過提取圖像特征,結合機器學習相關的分類器對結節(jié)分類[1-4]。隨著醫(yī)學成像技術的發(fā)展,傳統(tǒng)的檢測方法難以適應當前大量復雜的數(shù)據(jù)集,同時手工提取特征的步驟較為復雜,無法有效挖掘圖像中豐富的信息。
隨著深度學習的發(fā)展,將該方法應用在肺結節(jié)檢測中可以獲得比淺層學習更好的特征表示能力[5]。卷積神經網絡提取的抽象特征對圖像分類和物體粗略定位有效,但很難精細分割物體輪廓。為解決上述問題,相繼提出了SegNet[6]和U-Net[7]等僅使用卷積層進行語義分割的網絡。U-Net網絡為醫(yī)學圖像精準分割定位提供解決思路,在肺結節(jié)檢測中取得了較好的檢測效果[8-10]。本文針對現(xiàn)有肺結節(jié)檢測模型精度低、漏診率和誤診率高等問題提出了融合深度殘差網絡[11]的肺結節(jié)檢測算法,在LUNA16[12]數(shù)據(jù)集上驗證取得了良好的檢測結果。
本文提出了融合殘差模塊的肺結節(jié)檢測算法,主要包括以下步驟:①候選結節(jié)檢測階段:采用提出的RU-Net網絡分割肺部CT圖像,獲得候選結節(jié);②假陽性減少階段:采用基于3D CNN的分類網絡,將候選結節(jié)分類得到真實肺結節(jié)。
候選結節(jié)檢測階段的主要目的是以較快的檢測速度和較高的敏感度盡可能多的在肺部CT圖像中檢測到所有候選結節(jié)。本文提出了二維RU-Net候選結節(jié)檢測模型,該網絡在充分節(jié)省時間和空間的利用下提高了檢測精度和敏感度,模型框架如圖1所示。
圖1 RU-Net候選結節(jié)檢測模型框架
1.1.1 數(shù)據(jù)預處理
肺部CT圖像是對整個胸腔區(qū)域的掃描圖像,包含了肺部及其之外的其它組織和器官。為提高檢測精度和速度,同時防止檢測過程中肺部之外其它組織器官對肺結節(jié)檢測的干擾,需要對數(shù)據(jù)進行預處理操作,分割肺實質部分。
CT采集后所得的數(shù)值為X射線衰減值[13],單位為亨氏單位(hounsfield unit,HU),表示CT圖像上組織結構的相對密度。根據(jù)圖像的HU值可以區(qū)分肺、血液、骨骼和其它組織器官,HU值計算公式如下
(1)
式中:μ為吸收系數(shù)或衰減系數(shù),與X射線強度有關。其中,CT圖像中肺部區(qū)域的HU值在-500左右,需要過濾掉空氣、骨骼和其它組織器官等像素信息。
本文對LUNA16數(shù)據(jù)集進行數(shù)據(jù)預處理,首先提取肺部感興趣區(qū)域進行二值化,通過像素亮度分布分離圖像區(qū)域;結合圖像形態(tài)學操作的腐蝕和膨脹消除肺部的小空洞區(qū)域;標記連通區(qū)域獲得肺部掩模,與原始圖像進行與操作;最終通過歸一化處理將圖像像素強度范圍裁剪為[-1000, 400],并將其標準化為[0, 255]。預處理具體步驟如圖2所示。
圖2 數(shù)據(jù)集預處理步驟
1.1.2 提出的RU-Net網絡結構
U-Net網絡是由編碼器(encoder)和解碼器(decoder)構成的U型對稱結構,分別用來提取語義特征和用于精確定位,網絡在結構上包含下采樣、上采樣和跳轉連接3個重要特點。編碼器部分由卷積和池化操作構成,通過下采樣逐步提取圖像特征獲得高層抽象信息;解碼器通過反卷積層逐級上采樣,恢復圖像細節(jié)和空間維度信息;編碼器和解碼器之間通過跳轉連接融合特征,使上采樣結合淺層卷積特征獲得更多高分辨率信息,從而完善細節(jié)信息恢復圖像并提高分割精度。然而原始U-Net結構存在不足之處,如易導致空間信息丟失、編碼器和解碼器間存在語義鴻溝[14]和對特征表達不準確等問題。針對在醫(yī)學圖像分割方面的缺陷,研究人員提出了如MultiResUNet[14]和CE-Net[15]等改進結構,在不同醫(yī)學圖像數(shù)據(jù)集上都取得了較好的效果。
本文針對上述問題,融合改進的深度殘差模塊提出了RU-Net網絡:①將下采樣和上采樣中的卷積層由殘差單元替代,增強特征提取性能,獲得豐富的結節(jié)特征;②在跳轉連接中加入串聯(lián)的殘差塊,減弱低層特征直接同高層特征拼接而產生的語義鴻溝。
殘差網絡主要由殘差單元構成,當神經網絡輸入為x,輸出特征為H(x)時,其學習到的殘差為F(x)=H(x)-x。在網絡中增加y=x的同等映射,通過跳轉連接將F(x)和x逐元素相加,最終將原函數(shù)轉換為F(x)+x構成一個殘差單元如圖3(a)所示。本文采用的殘差單元包括兩個3×3的卷積層,在卷積操作之前采用批量標準化(batch normalization,BN)和ReLU(rectified linear unit)激活函數(shù)處理如圖3(b)所示。殘差單元通過跳轉連接將梯度自由傳遞到較低層,防止梯度消失或爆炸,核大小為3×3使參數(shù)較少且計算速度更快有利于提取局部特征。采用BN操作使網絡的輸入保持相同分布,提升網絡訓練速度,避免產生梯度消失問題。在U-Net網絡中添加殘差單元,使網絡增加一定深度提高檢測準確率,同時緩解了深度增加造成梯度消失和梯度爆炸等問題,保證模型良好的性能。
圖3 殘差單元
跳轉連接將淺層特征與深層特征拼接以保留空間特征,然而兩組特征之間可能存在語義差異,造成編碼器和解碼器之間產生語義鴻溝,對預測產生不利影響。為彌補特征差異造成的細節(jié)丟失,本文采用殘差跳轉連接替換原始網絡中的跳轉連接,以改進編碼器和解碼器之間的特征映射。在跳轉連接中增加串聯(lián)的殘差塊,減少特征之間的語義差距,每個殘差塊都由3×3和1×1的卷積層通過跳轉連接相加構成,具體結構如圖4所示。
圖4 殘差跳轉連接
由于編碼器通過下采樣操作不斷加深特征提取,編碼器和解碼器之間特征的語義差異也逐漸減小。因此在跳轉連接的路徑上對3條路徑采用殘差跳轉連接,分別串聯(lián)了3,2和1個殘差塊,對差距最小的兩組特征直接采用跳轉連接進行拼接融合。通過改進跳轉連接結構可以更好保存淺層細節(jié)信息,同時結合深層信息獲得更精確的特征信息,提高對結節(jié)的檢測性能。
本文提出的RU-Net網絡中,卷積層均由3×3的卷積核構成,每層卷積核的數(shù)量為32,64,128,256和512,分別沿網絡層排序。網絡每層均包含卷積層和殘差塊,該網絡除輸出層外均由ReLU激活函數(shù)構成,用于加速訓練和防止過擬合,同時增加BN操作加速訓練速度提高網絡泛化能力。輸出層由Sigmoid激活函數(shù)構成公式如下
(2)
式中:x為輸入,f(x)為輸出。
1.1.3 改進的損失函數(shù)
肺結節(jié)的分割任務主要針對肺部CT中的小目標圖像進行,往往一幅圖像中只有極少的候選結節(jié),且候選結節(jié)的像素比例較小,這造成了圖像類別不均衡問題,使網絡訓練較為困難。在醫(yī)學圖像的檢測任務中,假陰性比假陽性更難以容忍,使用不均衡數(shù)據(jù)訓練模型可能導致預測結果嚴重偏向于高精度但低敏感度的問題。為解決候選結節(jié)檢測在分割中類別極度不均衡問題,本文對比使用不同的損失函數(shù),以提高檢測敏感度。
原始U-Net分割網絡使用基于Dice系數(shù)的損失函數(shù),采用Dice距離對比兩個樣本元素之間像素級的相似性,Dice系數(shù)公式如下
(3)
式中:P表示預測值,G表示真實標簽。
Dice系數(shù)可以處理背景和分割區(qū)域之間面積對比不均衡問題,基于Dice系數(shù)的損失函數(shù)在訓練準確度上表現(xiàn)較好,但可能會丟失部分真實結節(jié),造成訓練結果的不可信。在候選結節(jié)檢測任務中,需要盡可能多地保留真實結節(jié)以提高檢測敏感度,因此本文針對損失函數(shù)進行改進。
為解決醫(yī)學圖像分割數(shù)據(jù)不平衡問題,Salehi等[16]提出了一種基于Tversky系數(shù)的廣義損失函數(shù),其中Tversky系數(shù)定義如下
(4)
式中:|P-G|表示假陽性(FP),|G-P|表示假陰性(FN),通過調整α和β兩個超參數(shù)可以控制FP和FN之間的權衡,實現(xiàn)高度不平衡數(shù)據(jù)在準確率和敏感度之間的平衡。
Tversky系數(shù)是一種廣義系數(shù),當α=β=0.5時,該系數(shù)為Dice系數(shù);當α=β=1時,該系數(shù)為Jaccard系數(shù)。本文為提高候選結節(jié)檢測敏感度,盡可能多地獲得候選結節(jié),結合Dice系數(shù)和Tversky系數(shù)特點,將基于Tversky系數(shù)的損失函數(shù)應用在候選結節(jié)檢測任務中。通過實驗對比不同超參數(shù)取值對像素分類的敏感度,確定最終參數(shù)值。本方法使模型在保證一定檢測準確率的前提下,增加了在分類階段的候選結節(jié),為假陽性減少階段提供豐富的候選結節(jié)信息。
肺結節(jié)檢測任務中,在候選結節(jié)檢測階段為提高檢測敏感度往往會出現(xiàn)較高的假陽性。為了從大量候選結節(jié)中準確鑒別出真實結節(jié),需要去除假陽性結節(jié)。肺結節(jié)形態(tài)特征是小的、類球形的、局限性的不正常組織,具有復雜的空間上下文環(huán)境。由于采用二維卷積神經網絡往往不能充分利用三維空間上下文信息,容易忽略CT圖像中肺結節(jié)在連續(xù)切片中的變化信息。因此,本文構造基于三維卷積神經網絡(3D CNN)的分類模型,充分利用結節(jié)豐富的空間上下文信息,獲得更具鑒別能力的特征,從而準確鑒別出真實肺結節(jié),具體結構如圖5所示。
圖5 三維卷積神經網絡分類模型框架
本階段截取以二維候選結節(jié)為中心的矩形區(qū)域,將該區(qū)域切片堆疊轉換為三維圖像,作為訓練數(shù)據(jù)集輸入3D CNN網絡中進行分類。本文采用的3D CNN網絡通過三維卷積層和三維最大池化層組合構成,從而充分提取結節(jié)的空間特征信息,最后通過全連接層輸出特征,由Softmax層輸出分類結果。3D卷積層為減少訓練參數(shù),均采用3×3×3的卷積核提取結節(jié)特征,每層卷積核的數(shù)量為64,128,256和512。網絡中每層的輸出特征圖與卷積核進行卷積運算,提取更高層的特征表示,卷積的計算過程可以定義為
(5)
在不同的3D卷積層中,交替采用3D最大池化層對卷積層提取特征進行下采樣,選取區(qū)域內的最大值進行特征抽取,從而減少網絡訓練中的數(shù)據(jù)和參數(shù)量。最后將所有全連接層中的神經元與相鄰層神經元相連,計算類別概率進行分類。在網絡結構中引入dropout和L2正則化等方法防止過擬合,提高模型的泛化能力。在模型中采用二元交叉熵函數(shù)度量分類損失。
2.1.1 數(shù)據(jù)集
本文提出的肺結節(jié)檢測算法實驗采用LUNA16數(shù)據(jù)集進行驗證,該數(shù)據(jù)集來源于最大公共肺結節(jié)數(shù)據(jù)集LIDC-IDRI,包括1018個低劑量的肺部CT影像。LUNA16數(shù)據(jù)集去除切片厚度大于3 mm、切片space不一致和缺失部分切片的CT圖像,剩下數(shù)據(jù)包括888個CT掃描,數(shù)據(jù)集中的肺結節(jié)注釋選取4名專業(yè)放射科醫(yī)生中至少3位標注的1186個結節(jié)作為參考標準,去除小于3 mm肺結節(jié)。
2.1.2 數(shù)據(jù)增強
LUNA16數(shù)據(jù)集為CT掃描圖像,標注信息包括肺結節(jié)的位置信息和直徑大小等,圖像大小為512×512像素。在深度學習中,比較成功的神經網絡需要大量的參數(shù),而使得這些參數(shù)正確工作需要大量的數(shù)據(jù)進行訓練。采用深度學習方法訓練醫(yī)學圖像的主要問題是數(shù)據(jù)集較少,為增加訓練過程中的樣本數(shù)量,防止模型過擬合,提高模型泛化能力,需要對樣本進行數(shù)據(jù)增強操作。本文數(shù)據(jù)增強方法主要采用圖像旋轉、圖像平移和圖像翻轉等操作。圖像旋轉通過旋轉中心點隨機旋轉30°到180°,圖像翻轉通過水平和垂直翻轉。利用數(shù)據(jù)增強方法防止模型過擬合,提高肺結節(jié)的檢測性能。
根據(jù)給定的標簽和預測結果對比,本文采用準確率(Accuracy)、敏感度(Sensitivity)和特異度(Specificity)作為評估指標對網絡性能進行評價,具體定義如下
(6)
(7)
(8)
式中分別表示為真陽性(true positive,TP)、假陽性(false positive,F(xiàn)P)、真陰性(true negative,TN)、假陰性(false negative,F(xiàn)N)。其中,定義陽性(positive,P)為惡性結節(jié),陰性(negative,N)為良性結節(jié),具體預測結果描述見表1。
表1 預測結果
針對候選結節(jié)檢測階段的評估指標主要采用Dice系數(shù)對分割性能進行評價,評估預測分割結果與真實標簽掩模的相似度;采用敏感度評估模型檢測全部候選結節(jié)中真實結節(jié)個數(shù)所占比例,反映發(fā)現(xiàn)病人的能力,敏感度越高,漏診率越低。分割性能好的模型應該具有較高的Dice系數(shù)和敏感度。在假陽性減少階段,采用準確率和敏感度對網絡模型進行評估,分類性能好的網絡可以獲得更高的準確率和敏感度。
實驗中所有網絡模型均使用Python3.6編寫,在Keras(tensorflow backend)深度學習框架下搭建,同時使用GPU加速網絡模型的訓練。網絡中均采用ReLU作為激活函數(shù),并使用Adam作為算法優(yōu)化器(初始學習率為0.0001)。為防止在模型在訓練過程中出現(xiàn)過擬合等問題,在網絡中適當加入Dropout層,并在卷積層中使用L2正則化。本文所提出的網絡模型在候選結節(jié)檢測階段和假陽性減少階段都進行了獨立的訓練和測試,獲得了較為理想的實驗結果。
2.3.1 候選結節(jié)檢測結果
本文在候選結節(jié)檢測階段,針對提出的RU-Net網絡,在相同數(shù)據(jù)集LUNA16下設計多組對比實驗驗證其性能。實驗主要包括模型自身改進效果的對比實驗,以及與其它肺結節(jié)檢測系統(tǒng)在本階段的檢測性能對比實驗。通過所設計的幾組對比實驗,驗證RU-Net網絡在候選結節(jié)檢測階段的分割性能。
在候選結節(jié)檢測任務中,為減小訓練數(shù)據(jù)集圖像類別不均衡問題,獲取更高的敏感度,引入Tversky系數(shù)作為損失函數(shù)??刂圃撓禂?shù)的兩個超參數(shù)α和β可以調整假陽性和假陰性之間的權衡,經過實驗驗證提高β的權重可以獲得更高的敏感度,改善模型訓練中數(shù)據(jù)不均衡問題,有效降低假陰性并提高敏感度。為了對比評估Tversky損失函數(shù)和Dice損失函數(shù)在候選結節(jié)檢測方面的性能,本文在原始U-Net網絡上訓練了不同的α和β取值,見表2。
表2 U-Net網絡上訓練Tversky損失函數(shù)不同的α和β值
結果表明,敏感度和特異度之間的平衡由損失函數(shù)的參數(shù)控制;損失一定的精確度,可以提高像素分類的敏感度;當超參數(shù)取α=0.1,β=0.9時可以獲得較低的損失和較高的敏感度,對比將超參數(shù)設置為α=β=0.5時的Dice損失函數(shù)檢測敏感度更高。為在候選結節(jié)檢測階段獲得更高的敏感度,盡可能多地檢測到結節(jié),本文將采用α=0.1,β=0.9的基于Tversky系數(shù)的損失函數(shù)進行對比實驗。
本文將RU-Net網絡與U-Net網絡進行對比實驗,驗證候選結節(jié)檢測模型改進算法的有效性。首先,在相同的損失函數(shù)Dice系數(shù)下對3種模型的分割性能進行比較,實驗對比了原始U-Net網絡、融合殘差單元的ResUNet改進結構、融合殘差單元和殘差跳轉連接的RU-Net改進結構。另外,對比了這3種結構采用改進的損失函數(shù)的分割性能。實驗評估了在相同的數(shù)據(jù)集下6組不同模型的性能指標,見表3。
表3 候選結節(jié)檢測模型性能比較
實驗結果表明,提出的RU-Net網絡可以獲得更高的Dice系數(shù)和特異度;采用改進的損失函數(shù)在犧牲一定相似度的情況下,可以大幅度提高檢測模型的敏感度。在算法效率方面,實驗對比了所提算法在檢測單張肺部CT圖像時所需的平均時間,隨著網絡的加深及檢測敏感度的提升,檢測時間也會相應增加。RU-Net網絡檢測單張圖像平均用時為0.030 s,在時間效率上相對優(yōu)于其它3D網絡算法。通過實驗驗證,本文提出的RU-Net網絡獲得了更高的敏感度和相對較好的Dice系數(shù),在候選結節(jié)檢測任務性能上優(yōu)于其它模型。
同時對比了目前在肺結節(jié)檢測方法中相同階段的模型性能,Liao等[8]采用改進的3D CNN結構檢測可疑候選結節(jié);Xie等[17]在候選結節(jié)檢測階段采用改進的Faster R-CNN網絡;ZNET[12]使用U-Net網絡進行檢測;鄧忠豪等[10]改進了U-Net++的網絡結構和損失函數(shù)檢測候選結節(jié);另外朱輝等[18]利用多尺度特征結構的U-Net對肺結節(jié)進行分割。對比實驗采用LUNA16數(shù)據(jù)集,本文提出算法在Dice系數(shù)和敏感度上均優(yōu)于其它算法,結果見表4。
表4 不同候選結節(jié)檢測模型性能對比
實驗結果表明,本文提出的RU-Net網絡取得了0.7344的Dice系數(shù)和95.21%的敏感度,與其它網絡結構相比在兩個評估指標上均有所提高。
圖6顯示了本文提出的RU-Net網絡在候選結節(jié)檢測階段采用基于Tversky系數(shù)的損失函數(shù)(超參數(shù)取α=0.1,β=0.9)的分割結果。其中第1行為原始CT圖像,第2行為采用RU-Net網絡獲得的候選結節(jié)分割結果,第3行為在CT圖像上標出的候選結節(jié)檢測結果。
圖6 候選結節(jié)分割結果
經過以上幾組對比實驗,驗證了提出的RU-Net網絡在候選結節(jié)檢測階段可以獲得更高的分割相似度和檢測敏感度,為下一階段提供了豐富的結節(jié)信息。候選結節(jié)檢測階段可以較為準確地分割結節(jié)。然而,檢測中仍然存在較多的假陽性結節(jié),需要對提取的候選結節(jié)進行結節(jié)和非結節(jié)的分類,以降低假陽性獲得真實結節(jié)。
2.3.2 假陽性減少結果
在假陽性減少階段,主要采用3D CNN網絡對結節(jié)和非結節(jié)進行分類,去除假陽性結節(jié)獲得真實肺結節(jié)。Liao等[8]設計了3D CNN網絡檢測肺結節(jié);DeepLung[19]分別設計了兩個深度3D DPN用來進行結節(jié)檢測和分類;Xie等[17]在假陽性減少階段采用boosting方法進行分類,該系統(tǒng)在檢測和分類階段均采用2D CNN結構,在節(jié)省時間和空間的利用上優(yōu)于其它算法;Gong等[9]采用基于擠壓-激勵網絡和殘差網絡的3D CNN進行候選檢測和降低假陽性。實驗對比了本文提出方法與不同肺結節(jié)檢測系統(tǒng)之間的性能,實驗結果見表5。
表5 不同肺結節(jié)檢測系統(tǒng)性能對比
結果表明,本文在假陽性減少階段采用3D CNN網絡,最終獲得了96.79%的平均準確率和96.19%的平均敏感度,提高了肺結節(jié)檢測算法的性能。
在肺結節(jié)檢測任務中,算法檢測效率是需要考慮的重要內容,高效的檢測算法可以更好的在臨床上輔助醫(yī)生做出診斷。本文采用2D和3D相結合的檢測方法,在時間和空間效率上均具有優(yōu)勢。時間效率方面,所提算法在單張CT圖像上的平均處理時間僅為0.030 s;空間效率方面,候選結節(jié)檢測和假陽性減少階段分別采用2D和3D網絡,在取得較好檢測結果的同時大大減少對計算資源的占用,更高效準確地檢測肺結節(jié)。
本文針對肺結節(jié)檢測問題提出一種融合殘差模塊的肺結節(jié)檢測算法,實現(xiàn)了對肺結節(jié)快速、高效、準確的檢測。提出RU-Net網絡檢測候選結節(jié),通過改進網絡結構和損失函數(shù),提高模型的檢測速度和敏感度;采用3D CNN網絡分類候選結節(jié)減少假陽性,提高對真實結節(jié)的識別率。實驗結果表明,本文方法對比其它檢測算法,在檢測敏感度和準確率上均占優(yōu),同時具有更好的檢測效率,可以在臨床上輔助醫(yī)生做出診斷。由于醫(yī)學圖像的特殊性且缺乏大量的數(shù)據(jù)集進行訓練,訓練過程中易出現(xiàn)過擬合問題,對肺結節(jié)檢測模型精度有一定影響。針對這一問題,將進一步結合多模態(tài)、多尺度的融合模型進行改進,提高肺結節(jié)檢測性能。