石陸魁,杜偉昉,馬紅祺,張 軍+
(1.河北工業(yè)大學(xué) 人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津 300401;2.河北工業(yè)大學(xué) 河北省大數(shù)據(jù)計算重點實驗室,天津 300401)
基于傳統(tǒng)機器學(xué)習(xí)的肺癌檢測方法依賴于人為標注的感興趣區(qū)域,而且需要按照預(yù)先設(shè)定的特征提取方法來提取病灶特征,難以實現(xiàn)自動化[1-4]?;谏疃葘W(xué)習(xí)的肺癌檢測方法通過網(wǎng)絡(luò)自主學(xué)習(xí)并提取特征[5,6],排除了人為因素的影響。Dou等[7]提出一種使用三維卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)來減少自動檢測肺結(jié)節(jié)中假陽性的方法。與二維神經(jīng)網(wǎng)絡(luò)相比,三維網(wǎng)絡(luò)架構(gòu)可以提取更豐富的空間信息,從而獲得更具代表性的特征。Ju-lian 等[8]用32×32×32大小的圖像塊作為3D-CNN的輸入,對肺部CT圖像進行結(jié)節(jié)和惡性檢測,在肺癌檢測任務(wù)上取得了不錯的結(jié)果,但其未考慮其它尺度的輸入大小對檢測任務(wù)的影響。另外,由于標注CT圖像的專業(yè)性強,帶標注的數(shù)據(jù)不足,而且肺結(jié)節(jié)大小各異且征象較為復(fù)雜,使得結(jié)節(jié)檢測存在一定困難。同時由于小尺度輸入的結(jié)節(jié)檢測網(wǎng)絡(luò)很難獲取到大區(qū)域病灶的整體特征,從而影響肺癌的識別。針對上述問題,本文在3D-CNN基礎(chǔ)上,基于遷移學(xué)習(xí)提出了一種多尺度和特征融合的肺癌識別方法。在Kaggle Data Science Bowl 2017數(shù)據(jù)集[9]上驗證了該方法的有效性。
在Kaggle Data Science Bowl 2017競賽中,Julian等提出了一種3D-CNN模型,用來檢測肺結(jié)節(jié)。該結(jié)節(jié)檢測模型為多任務(wù)學(xué)習(xí)模型,在進行結(jié)節(jié)概率預(yù)測的同時可評估其惡性程度。網(wǎng)絡(luò)模型如圖1所示。
圖1 3D-CNN結(jié)節(jié)檢測模型
該模型基于行為識別網(wǎng)絡(luò)C3D,共包含9個卷積層和5個池化層。模型中前六層卷積、第七層卷積分別采用3×3×3、2×2×2大小的卷積核,最后兩個并列的卷積層卷積核大小為1×1×1。前7個卷積層均采用relu激活函數(shù),用于預(yù)測結(jié)節(jié)概率的卷積層采用sigmoid函數(shù),預(yù)測惡性程度的卷積層未使用激活函數(shù)。池化層多采用最大池化。
該模型采用遷移學(xué)習(xí)方法,首先用32×32×32大小的肺結(jié)節(jié)數(shù)據(jù)訓(xùn)練該模型;然后,在預(yù)測階段,通過向網(wǎng)絡(luò)輸入同樣大小的圖像來判斷該區(qū)域包含惡性信息的可能性;最后,基于此信息和結(jié)節(jié)坐標等其它特征,估計該患者發(fā)展成肺癌的概率。訓(xùn)練數(shù)據(jù)來自LUNA16數(shù)據(jù)集[10]。根據(jù)結(jié)節(jié)的輪廓點坐標從CT中切割出三維肺結(jié)節(jié)訓(xùn)練3D-CNN?;贚UNA16數(shù)據(jù)集切取的訓(xùn)練集樣本類型和數(shù)量見表1。
表1 訓(xùn)練集樣本
LUNA16數(shù)據(jù)集和Kaggle數(shù)據(jù)集的特點如下:
(1)LUNA16是LIDC數(shù)據(jù)集的一個子集,包含了888個病例的CT影像,其中共有1186個結(jié)節(jié),直徑范圍為3 mm~30 mm,這些結(jié)節(jié)分別由4名影像科醫(yī)生進行標注。在注釋文件中給出了4名放射學(xué)專家對每張CT片中出現(xiàn)的結(jié)節(jié)的定義,包括結(jié)節(jié)的主要CT征象,如毛刺征、分葉征、鈣化等以及結(jié)節(jié)的惡性程度。對于直徑大于等于 3 mm 的結(jié)節(jié),給出了輪廓點的坐標,直徑小于3 mm的結(jié)節(jié)給出了中心點的坐標;
(2)Kaggle Data Science Bowl 2017數(shù)據(jù)集共包含2101個病例CT影像。它是一個two-stage的比賽,兩個階段用的測試集不同。其中,stage1中包含1595個具有癌癥標簽的CT影像,1397個作為訓(xùn)練集,198個作為驗證集;stage2中包含506個無癌癥標簽的數(shù)據(jù)。與LUNA16數(shù)據(jù)集不同的是,此數(shù)據(jù)集沒有標記結(jié)節(jié)。
肺結(jié)節(jié)的檢測結(jié)果影響著最終肺癌識別的準確性,而輸入圖片的尺寸對檢測模型的性能影響相當明顯。肺結(jié)節(jié)通常是指肺實質(zhì)內(nèi)直徑不超過3 cm的類圓形病灶,臨床上把直徑大于3 cm的病灶稱為肺部腫塊。一般認為,肺結(jié)節(jié)的直徑越大,其為惡性的概率越大(直徑大于3 cm的病灶多為惡性),從而發(fā)展成癌癥的可能性越大。Julian等僅用32×32×32大小的圖像塊作為輸入,對于直徑大于3 cm的病灶,只能局部投入網(wǎng)絡(luò),導(dǎo)致網(wǎng)絡(luò)提取不到其概貌特征。另外,Kaggle數(shù)據(jù)集中存在大于3 cm的肺腫塊,其致病人患癌的概率大大升高。要想檢測到此類區(qū)域,需向網(wǎng)絡(luò)輸入更大尺度的圖像。
Julian等提出的模型是一個特殊的卷積神經(jīng)網(wǎng)絡(luò)——全卷積網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN),與經(jīng)典的CNN只能輸入特定尺寸的圖像不同,F(xiàn)CN可以接受任意尺寸的輸入圖像,小尺度輸入時網(wǎng)絡(luò)注重細節(jié)特征,大尺度輸入時網(wǎng)絡(luò)能夠抓住概貌特征。
為了檢測不同大小的結(jié)節(jié)、充分描述結(jié)節(jié)的詳細特征,基于Julian等提出的預(yù)訓(xùn)練的3D-CNN,用多尺度輸入方式在Kaggle數(shù)據(jù)集上檢測結(jié)節(jié),建立基于多尺度和特征融合的肺癌識別模型。為了減小漏診的概率,首先以滑窗的方式檢測肺結(jié)節(jié),然后提取結(jié)節(jié)特征并預(yù)測得到結(jié)節(jié)的概率和惡性程度,最后根據(jù)網(wǎng)絡(luò)提取的特征用XGBoost算法預(yù)測肺癌。
結(jié)節(jié)檢測網(wǎng)絡(luò)輸出結(jié)果的好壞在一定程度上受限于輸入圖像尺寸的大小。其主要影響如下:
(1)當網(wǎng)絡(luò)輸入圖像較小時,如輸入圖像塊尺度為32×32×32時,其適用于提取小結(jié)節(jié)的特征,也可提取大結(jié)節(jié)的分葉、毛刺、棘突等細微特征的形狀和分布,但其獲取不到大結(jié)節(jié)或肺腫塊的整體特征;
(2)當網(wǎng)絡(luò)輸入圖像較大時,如輸入圖像塊尺度為64×64×64時,其適用于描述肺結(jié)節(jié)和肺腫塊的體積、概貌等整體特征。
為此,根據(jù)肺結(jié)節(jié)和肺腫塊的直徑大小,測試圖像采用3種不同尺度,分別為32×32×32、48×48×48、64×64×64。不同尺度的圖像塊投入網(wǎng)絡(luò)會得到不同大小的輸出結(jié)果,3個不同尺度圖像塊的網(wǎng)絡(luò)實際輸出結(jié)果大小分別為1×1×1、2×2×2、3×3×3。為降低肺結(jié)節(jié)的漏檢率,取網(wǎng)絡(luò)最后輸出特征圖中體素的最大值作為檢測到的結(jié)節(jié)最終特征,如圖2所示,當以48×48×48的圖像塊輸入時,網(wǎng)絡(luò)最后輸出一個2×2×2大小的特征圖,取8個體素中的最大值作為該圖像塊的結(jié)節(jié)概率或惡性程度。
圖2 網(wǎng)絡(luò)輸出結(jié)果的選取方式
在3個尺度下,均以CT圖像中惡性程度最大的結(jié)節(jié)作為每個病例肺癌識別的主要依據(jù)。在肺癌識別階段,首先將多尺度的結(jié)節(jié)檢測結(jié)果進行組合,然后利用XGBoost回歸模型預(yù)測患肺癌的概率。小尺度和大尺度之間相互補充,對不同大小結(jié)節(jié)的特征提取都取得較好的結(jié)果。基于多尺度的肺癌識別模型如圖3所示。
圖3 基于多尺度的肺癌識別模型
特征融合方法可以降低單一特征固有缺陷對識別任務(wù)的影響,實現(xiàn)多特征互補,提高整體表達能力,使圖像識別方法具有更好的魯棒性和更準確的識別結(jié)果?;谏疃葘W(xué)習(xí)的特征融合通常是把網(wǎng)絡(luò)隱層提取到的特征圖進行融合,然后將融合后的特征投入分類器得到最終結(jié)果。
由于結(jié)節(jié)檢測網(wǎng)絡(luò)最后提取出的特征太少,不能滿足XGBoost回歸模型的訓(xùn)練,使得肺癌預(yù)測結(jié)果不甚滿意。為了改進這一不足,將網(wǎng)絡(luò)提取的瓶頸層特征和輸出層特征融合來進行肺癌預(yù)測。以32×32×32大小的圖像塊作為網(wǎng)絡(luò)輸入時為例,將瓶頸層64個1×1×1的特征和網(wǎng)絡(luò)最后輸出的結(jié)節(jié)概率、惡性程度和區(qū)域坐標等特征融合,即將所有的特征向量按照串行的方式組合在一起,形成一個新的特征向量,再識別肺癌。融合后的特征不僅包含結(jié)節(jié)的陽性概率和惡性程度兩個屬性,還包含了深度神經(jīng)網(wǎng)絡(luò)提取到的多個高級特征,對肺部病灶的特征描述更加全面,有利于集成分類器對病變做出診斷。
多個尺度特征融合時,每個尺度的瓶頸層和輸出層特征融合后,再將3個尺度的特征相組合。該方法可從病灶的細節(jié)特征、概貌特征、細節(jié)加概貌特征3個角度檢測不同大小的病灶區(qū)域,從而降低肺結(jié)節(jié)的漏診率。當結(jié)節(jié)檢測網(wǎng)絡(luò)輸入圖像塊的尺寸為48×48×48和64×64×64時,網(wǎng)絡(luò)提取的瓶頸層和輸出層的特征圖尺寸大于1×1×1,最終的取值方式參見2.1節(jié)的網(wǎng)絡(luò)輸出結(jié)果的選取方式。基于多尺度和特征融合的肺癌識別模型如圖4所示。
圖4 基于多尺度和特征融合的肺癌識別模型
另外,一個已訓(xùn)練的XGBoost模型能夠自動計算特征重要性,在多尺度和特征融合的基礎(chǔ)上,對多個尺度融合后的特征按照特征重要性程度自動進行選擇來訓(xùn)練集成分類器,這在一定程度上擴大了有效特征的決策權(quán),減小了噪聲特征對分類器訓(xùn)練的影響,對肺癌預(yù)測更為有利。圖5以7個特征為例展示了XGBoost模型給出的肺癌識別中每個特征的特征重要性得分,分數(shù)越高表明該特征對肺癌識別的決策權(quán)越大。
圖5 特征重要性
根據(jù)深度神經(jīng)網(wǎng)絡(luò)提取出Kaggle數(shù)據(jù)集中所有病人的結(jié)節(jié)信息等特征,用訓(xùn)練集的特征和對應(yīng)的癌癥標簽訓(xùn)練XGBoost回歸模型,再在測試集上進行癌癥預(yù)測。
結(jié)節(jié)的惡性程度與其體積、部位、邊緣特征等密切相關(guān),惡性越大表明該患者已患肺癌或未來一段時間內(nèi)患癌的可能性極大,所以結(jié)節(jié)的惡性程度是識別肺癌的重要特征。Julian等的肺癌預(yù)測方法是用病人惡性最大的結(jié)節(jié)特征訓(xùn)練XGBoost模型并預(yù)測肺癌。從結(jié)節(jié)惡性程度角度出發(fā),本文在多尺度和特征融合基礎(chǔ)上,設(shè)計了兩種多尺度的肺癌識別策略。兩種策略均采用病人惡性程度最大的結(jié)節(jié)特征向量訓(xùn)練XGBoost模型,然后在3個尺度下檢測出的每個病人的所有結(jié)節(jié)上做預(yù)測,取病人在各尺度下所有結(jié)節(jié)中的最大預(yù)測概率作為該病人的癌癥預(yù)測結(jié)果。最后以病人為單位,對3個尺度的癌癥預(yù)測結(jié)果取均值作為最終的患癌概率。兩種肺癌識別策略的區(qū)別如下:
多尺度差異性識別策略:從3個尺度的差異性角度出發(fā),3個不同尺度分別對應(yīng)訓(xùn)練3個XGBoost回歸模型。在每個尺度下,利用各自的XGBoost模型在病人的所有結(jié)節(jié)上預(yù)測患癌概率。
多尺度互補性識別策略:從3個尺度的互補性角度出發(fā),3個尺度共同訓(xùn)練同一XGBoost回歸模型,利用該模型在3個尺度下分別做預(yù)測。
為驗證所提模型的有效性,在Kaggle Data Science Bowl 2017數(shù)據(jù)集上進行了測試。目的是根據(jù)這些既無結(jié)節(jié)標記也無癌癥標簽的CT影像預(yù)測出它未來一年內(nèi)患肺癌的概率。實驗利用Ubuntu16.04系統(tǒng)進行仿真,CPU配置為Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz,GPU配置為兩張Nvidia的Tesla P100顯卡,使用CUDA8.0和cuDNN6.0并行計算,在Keras2.2.4深度學(xué)習(xí)框架上構(gòu)建網(wǎng)絡(luò)模型,其后端為TensorFlow1.4,代碼運行于Python3.5環(huán)境下。
實驗結(jié)果的評價標準是將預(yù)測集506個病人的肺癌預(yù)測結(jié)果提交到Kaggle官網(wǎng),官網(wǎng)反饋一個損失值,損失值越低,說明肺癌識別方法越有效。該損失值的計算公式為
(1)
為了方便肺癌識別結(jié)果比較,除采用LogLoss作為評價指標外,本文在stage1的198個驗證集上還采用了敏感性(Sensitivity)、特異性(Specificity)和準確率(Accuracy)這3種度量方式,公式定義分別如下所示
(2)
(3)
(4)
其中,TP表示肺癌被正確分類的個數(shù);FP表示非肺癌卻被識別為肺癌的個數(shù);FN表示肺癌被分類為非肺癌的個數(shù);TN表示非肺癌被正確分類的個數(shù)。
將Kaggle數(shù)據(jù)集的stage1和stage2數(shù)據(jù)投入訓(xùn)練好的3D-CNN后,網(wǎng)絡(luò)會檢測出每個病人的所有候選肺結(jié)節(jié),且檢測出的結(jié)節(jié)概率大小不一,為了更高效地識別肺癌,僅采用概率大于0.6的結(jié)節(jié)來進行肺癌預(yù)測。本文在Julian等方法的基礎(chǔ)上進行了改進,且在改進前復(fù)現(xiàn)了其方法,得到LogLoss值為0.419 46。本文以LogLoss作為主要評價指標,敏感性、特異性和準確率為輔助評價指標。驗證集的最終結(jié)果以0.5為臨界值:若預(yù)測概率大于等于0.5,則判定為肺癌;若小于0.5,則判定為非肺癌。臨界值的選擇會在一定程度上影響肺癌的識別結(jié)果,所以驗證集的評估結(jié)果僅供參考。實驗包括3個部分:多尺度的有效性驗證、特征融合的有效性驗證和對比實驗。
為了驗證多尺度輸入對肺癌識別效果的影響,根據(jù)前面提到的多尺度輸入方法進行結(jié)節(jié)檢測,再進一步識別肺癌。首先,在32、48、64這3個尺度下分別進行了結(jié)節(jié)檢測和肺癌預(yù)測,在肺癌識別階段,用到網(wǎng)絡(luò)提取的結(jié)節(jié)的最大惡性、最大惡性結(jié)節(jié)的z軸坐標和Julian等的可疑組織檢測器檢測出的mass特征。然后,將網(wǎng)絡(luò)在3個尺度下輸出的特征進行組合后識別肺癌。另外,Julian等用3D-CNN檢測結(jié)節(jié)時的批次大小為128,本文改進實驗的批次大小均為64。所以復(fù)現(xiàn)結(jié)果和32尺度輸入的結(jié)果稍有不同,但差異不大。多尺度輸入時的實驗結(jié)果見表2。
表2 多尺度的肺癌識別結(jié)果
實驗結(jié)果表明,3個尺度的特征組合在一定程度上降低了預(yù)測集的損失。另外,敏感性較其它3個單尺度有所提高,降低了漏診率;特異性較單尺度時稍有降低;肺癌識別的準確率優(yōu)于單尺度。
由于網(wǎng)絡(luò)末層提取的特征單一,不足以描述病灶的詳細特征,本實驗從多個角度出發(fā),將網(wǎng)絡(luò)瓶頸層提取的64個特征和網(wǎng)絡(luò)輸出的特征相融合,經(jīng)數(shù)據(jù)歸一化處理后再預(yù)測肺癌。本節(jié)實驗進行肺癌識別的特征有:每個病人惡性最大結(jié)節(jié)的瓶頸層64個特征、輸出層兩個特征、z軸坐標和Julian等的mass特征。首先,針對單尺度進行了特征融合;其次,將3個尺度的融合后的特征進行組合來預(yù)測肺癌;然后,在3個尺度特征組合的基礎(chǔ)上,按照特征的重要性自動提取前90個特征識別肺癌;最后,按照多尺度差異性識別策略和多尺度互補性識別策略分別進行了實驗。表3列出了兩種識別策略的樣本量大小,即檢測出的符合條件的肺結(jié)節(jié)數(shù)量。特征融合的實驗結(jié)果見表4。
從實驗結(jié)果可以看出,在單尺度下,特征融合后的結(jié)果普遍好于特征融合之前。3個尺度的特征融合時,驗證
表3 兩種多尺度肺癌識別策略的數(shù)據(jù)集大小
表4 特征融合的肺癌識別結(jié)果
集的識別結(jié)果要優(yōu)于融合之前,但是損失值卻高于先前,原因是瓶頸層的特征存在噪聲干擾。所以,在3個尺度特征融合的基礎(chǔ)上,按照特征重要性選擇了部分有效特征,實驗結(jié)果表明該方法優(yōu)于選擇特征之前,也好于特征融合之前。從損失值上可看出,多尺度差異性識別策略和互補性識別策略都達到了較好的識別效果,多尺度互補性識別效果尤為顯著,進一步驗證了所提出的多尺度方法的有效性。
近兩千支隊伍參加了Kaggle舉辦的Data Science Bowl 2017競賽,官網(wǎng)公布了部分隊伍的排名結(jié)果。近兩年,一些醫(yī)學(xué)圖像領(lǐng)域的專家、學(xué)者也對此數(shù)據(jù)集做了相關(guān)實驗。為了更好地與本文的實驗結(jié)果相比較,表5給出了部分競賽排名結(jié)果。比賽結(jié)束后,第一名團隊改變了訓(xùn)練方案,得到了更優(yōu)的結(jié)果0.3989,然而其在分類精度上仍有待提高[5]。本文實驗結(jié)果不僅好于Julian本人的方法,且優(yōu)于其整個團隊[6]的識別結(jié)果。
表5 競賽排名
為了進一步驗證所提模型的有效性,與其它文獻中的模型進行比較,結(jié)果見表6。表中“-”標志表示文獻未給出該評價指標的實驗結(jié)果。
表6 同其它模型的比較結(jié)果
實驗結(jié)果表明,與其它文獻中的方法相比,本文所提方法取得了較高的分類精度,且優(yōu)于Kaggle競賽中第一名的結(jié)果;在敏感性上,結(jié)果不太理想,會增加肺癌的漏診率;在特異性上,取得了滿意的結(jié)果??傮w上,所提方法在肺癌識別任務(wù)上成效較為理想。
通過肺部CT圖像可以檢測出肺部疾病,幫助患者及時得到有效治療。本文為提高肺癌的識別精度,提出了一種基于多尺度和特征融合的肺癌識別方法。實驗結(jié)果表明,多尺度的方法更能完善惡性結(jié)節(jié)的有效特征,特征融合方法能夠充分描述結(jié)節(jié)的詳細特征,均有利于后續(xù)的癌癥診斷。所提出的方法在Kaggle數(shù)據(jù)集上損失值更低,且識別精度較高。
未來工作可深入研究并改進3D深度神經(jīng)網(wǎng)絡(luò)算法,同時構(gòu)建更為有效的病理特征以提高肺癌識別的敏感性。另外,早期患者的隨診情況也對肺癌識別起到關(guān)鍵作用。若肺結(jié)節(jié)在短期內(nèi)變化明顯,其致癌風(fēng)險極高。所以,對病人多個階段的肺部CT圖像進行識別并關(guān)聯(lián)也是未來研究的一個方向。