孟晉潔, 程遠志
(哈爾濱工業(yè)大學 計算機科學與技術學院, 哈爾濱 150001)
研究指出,肺癌已經(jīng)成為中國發(fā)病率最高的癌癥[1]。而且由于被檢查出患有肺癌的患者大多數(shù)都已進入癌癥晚期,致使肺癌的預后非常差,5年存活率只有16.1%[2]。但隨著目前科技發(fā)展,已有文獻表明:如果能盡早使用計算機斷層掃描技術(Computed Tomography scans, CT)檢查出肺部問題,就能夠進行有效的治療。
總地來說,肺結節(jié)是指直徑在3~30 mm的肺內(nèi)類球形結節(jié),這是肺癌早期的明顯特征,如果能及時發(fā)現(xiàn)并診斷其良惡性,根據(jù)后續(xù)跟蹤情況輔以手術治療,對惡性肺結節(jié)進行切除,5年存活率能夠提高到60%[3]。有經(jīng)驗的醫(yī)生可以對肺結節(jié)進行準確判斷,但考慮到一張CT圖像一般有200張以上的切片,長時間根據(jù)多個特征對肺結節(jié)進行判斷容易產(chǎn)生視覺疲勞,很可能發(fā)生漏判、錯判。因此,利用計算機輔助診斷技術(Computer Aided Diagnosis, CAD)提前給出肺結節(jié)的良惡性的分類結果供醫(yī)生參考引證,幫助醫(yī)生更全面地了解肺部病情,就能夠提高效率和減少最終的誤判風險。
目前,對肺結節(jié)良惡性分類存在著很多難點。首先,肺結節(jié)和周圍血管、肌肉組織的灰度值十分接近,有的肺結節(jié)會粘連在血管、肺壁上,難以分割;其次,肺結節(jié)良惡性的區(qū)別特征不太明顯,有些惡性結節(jié)和良性結節(jié)的影像非常類似,結節(jié)的形態(tài)、密度千變?nèi)f化,有的血管和結節(jié)本身的毛刺特征十分類似,對分類是個很大的挑戰(zhàn);最后,如何利用小樣本去構造效果較好的分類模型,也是需要攻克的研究難題。
國內(nèi)外已然涌現(xiàn)對肺結節(jié)分類的許多研究。Dhara等人[4]利用57個形狀和紋理混合的特征,利用傳統(tǒng)的支持向量機(Support Vector Machine, SVM),使用871個來自肺部影像數(shù)據(jù)庫聯(lián)盟(Lung Image Database Consortium, LIDC)的肺結節(jié),得到95.05%的分類準確度,但該方法特征過于稀少,并且容易產(chǎn)生過擬合。Kaya等人[5]利用病理和其它共155個特征與基于潛在狄利克雷分布(Latent Dirichlet Allocation, LDA)、支持向量機SVM、k近鄰(k-Nearest Neighbour, kNN)、提升方法(Adaboost)、隨機森林(Random Forest, RF)的集成分類器,對來自LIDC的2 635個肺結節(jié)進行分類,實驗結果表明RF和SVM分類器的分類效果要明顯好于LDA、Adaboost、kNN,比較貼近本文提出的算法,但是該方法卻需要大量的樣本進行訓練,并且也不適合樣本數(shù)目較少、而特征較多的肺結節(jié)分類。Zhao等人[6]放棄了傳統(tǒng)算法,采用靈活卷積神經(jīng)網(wǎng)絡對LIDC的743個肺結節(jié)進行分類,取得了82.2%的準確度,適用于小規(guī)模的數(shù)據(jù)庫和小的肺結節(jié),但卻需要不斷地去優(yōu)化網(wǎng)絡的參數(shù)才能達到最好的性能,訓練比較費時。John等人[7]對肺結節(jié)的特征進行了大量研究[7],使用基礎的閾值分割算法來體現(xiàn)特征的優(yōu)越性,分割效果較好。Li等人[8]利用深度卷積神經(jīng)網(wǎng)絡的新型算法對LIDC的40 772個肺結節(jié)、21 720個非肺結節(jié)進行訓練,取得了較好的結果,但是同時也表現(xiàn)出深度模型比傳統(tǒng)算法需要更多的數(shù)據(jù)、更長的時間去訓練的弊端。Li等人[9]提出了一種改進的RF算法分類肺結節(jié),對LIDC的肺結節(jié)數(shù)據(jù)良惡性分類靈敏度取得了92%的業(yè)界領先數(shù)值,對廣州軍區(qū)總醫(yī)院的肺結節(jié)數(shù)據(jù)平均靈敏度也獲得了85%的較高結果值,說明RF對肺結節(jié)的分類是合理、且有效的,但該方法需要的數(shù)據(jù)集也十分龐大。
綜上論述可知,本文針對小樣本的胸部CT訓練圖像集,首先利用區(qū)域生長和形態(tài)學方法對肺結節(jié)CT圖像進行了自動分割,然后根據(jù)肺結節(jié)形成和發(fā)展的特點,提取了語義信息、形態(tài)學信息、圖像學信息組合成的肺結節(jié)良惡病理特征,最后利用改進的隨機森林作為分類器進行肺結節(jié)良惡性分類,從而達到輔助診斷的目的。
肺結節(jié)通過皮樣細胞的堆積進行生長,一般由多核巨噬細胞、大量淋巴細胞組成,因此肺結節(jié)在CT圖像中通常呈現(xiàn)為一個高密度的灰白色類球體,如圖1所示,圖(a)、圖(b)、圖(c)分別展示了肺結節(jié)在橫向、側向、縱向上的切片影像,在這些切片影像中肺結節(jié)為一個實心圓,圖(d)展示了肺結節(jié)的3D立體形態(tài),從模型中可以看出肺結節(jié)類似一顆肺中的小球,至此對肺結節(jié)有了感官上的認識。
圖1 一般肺結節(jié)在CT圖像中的形態(tài)
良性肺結節(jié)和惡性肺結節(jié)雖然難以做到完全區(qū)分,但也有一些比較清晰的基于病理學、統(tǒng)計學的辨識特征。根據(jù)尺寸大小劃分,直徑小于5 mm的肺結節(jié)通常為良性結節(jié),直徑大于等于15 mm的肺結節(jié)通常為惡性結節(jié);根據(jù)分葉情況來區(qū)分,惡性結節(jié)通常沿各個方向生長的速度不一致,表面呈現(xiàn)凹凸結構分葉,越深的分葉惡性程度越高;根據(jù)鈣化特征來區(qū)分,良性結節(jié)通常呈現(xiàn)中心、分層、爆米花式的鈣化,鈣化面積較大、較均勻,因而亮度很高,惡性結節(jié)通常在邊緣呈針狀、小面積、形狀迥異的鈣化;根據(jù)球形程度劃分,一般來說良性結節(jié)球形程度較高,表面光滑,惡性結節(jié)球形程度較低,甚至發(fā)展成長條形,表面粗糙;根據(jù)毛刺多少來劃分,惡性結節(jié)表面通常有針尖狀的突起,像毛刷一樣密集分布,這是惡性結節(jié)的典型特征;根據(jù)密度來劃分,直徑大于8 mm的實性結節(jié)存在惡性的可能,直徑大于5 mm的密度極小(類似磨玻璃看不清楚)的磨玻璃結節(jié)存在更大的惡性的可能;根據(jù)空洞程度來劃分,惡性結節(jié)內(nèi)部通常會產(chǎn)生壞死、液化,并將這些液化物質通過痰的形式排出體外,造成結節(jié)內(nèi)空洞,空洞越嚴重說明惡化程度越高;根據(jù)邊界清晰程度劃分,一般肺結節(jié)周圍出現(xiàn)模糊的現(xiàn)象,就是癌細胞開始侵入良性肺結節(jié)引起一系列反應并開始長出毛刺造成的,這也是惡化的表現(xiàn),邊界越模糊、惡化程度越高;根據(jù)位置劃分,位于肺上葉的肺結節(jié)惡性概率更高。經(jīng)典的良性肺結節(jié)和惡性肺結節(jié)如圖2所示。
圖2 經(jīng)典的良性肺結節(jié)(左)和惡性肺結節(jié)(右)切片圖像
Fig. 2 Benign pulmonary nodules (left) and malignant pulmonary nodules (right)
梅奧臨床人員提出了一個肺部結節(jié)惡性病變預測模型[10],研究6個獨立的肺結節(jié)惡化因素,并可利用式(1)和式(2)計算出肺結節(jié)的惡性程度:
(1)
α=-6.827 2+(0.039 1×A)+(0.791 7×S)+(1.338 8×H)+(0.127 4×D)+(1.040 7×B)+(0.783 8×U) .
(2)
其中,e為自然對數(shù);A為年齡(歲);S為是否現(xiàn)在或者曾經(jīng)吸煙(是=1,否=0);H為是否有5年以上的胸腔惡性腫瘤史(是=1,否=0);D表示肺結節(jié)的直徑(mm);B表示肺結節(jié)邊緣是否有毛刺特征(是=1,否=0);U表示肺結節(jié)是否位于肺上葉(是=1,否=0)。從前文設計模型中可以看出,這些病理特征對于判斷肺結節(jié)的良惡性是非常有用的。
首先,提取肺結節(jié)區(qū)域。假設給定一幅CT圖像的所有橫向切片,以CT圖像左上角為原點,橫向向右為x軸,縱向向下為y軸建立坐標系,同時給定肺結節(jié)中心點(cx,cy)和肺結節(jié)所在切片did。定義以肺結節(jié)中心點為中心,中心點所在切片為中心切片,以2×NW+1個單位為寬,2×NW+1個單位為高,前后各PNUM個切片、即2×PNUM+1為長所構成的長方體為肺結節(jié)區(qū)域。尤需一提的是,研究中需要重視解決邊界問題。如果肺結節(jié)區(qū)域的寬、高超出CT圖像邊界,需要進行偏移處理,使得肺結節(jié)中心點和肺結節(jié)區(qū)域中心點重合。為表述方便,一幅CT橫向切片中取得的肺結節(jié)區(qū)域切片即如圖3所示,左圖假設y方向兩側都觸及了邊界,造成原本應該取得2×NW+1的高,只取得了陰影面積的高,陰影面積的中心點(cx’,cy’)未能與(cx,cy)重合,為了使二者逐漸接近、直至重合,需要將y1偏離一個off,y2偏離一個off,研究中推得的off的計算公式為:
offup=floor((2×NW+1)-(y2'-y1'+1)/2),
(3)
offdown=ceil((2×NW+1)-(y2'-y1'+1)/2).
(4)
圖3 超出邊界示意圖(左)和進行偏移處理后(右)
Fig. 3 Beyond the boundary (left) and after the offset adjustment processing (right)
將提取的圖像由高灰度級(一般為-1 024~1 024)轉為標準灰度級(0~255),并將超出邊界的區(qū)域設置為背景(0),這樣就將肺結節(jié)基本分割出來了,粗分割完成。
然后以中心點(cx,cy)為種子,以2×NW+1為寬,2×NW+1為高,theta為灰度值相似度度量,肺結節(jié)區(qū)域中心切片進行區(qū)域生長,得到初步分割結果。然而結節(jié)旁邊灰度值相似的血管、肺組織等物質也可能被區(qū)域生長選中,因此需要以3×3的模板進行一次腐蝕和膨脹,去除周圍組織的連通性。腐蝕和膨脹只進行一次,這樣可以很好地避免毛刺等特征在腐蝕和膨脹的過程中被丟棄。最后再次進行區(qū)域生長,得到最終的肺結節(jié)分割結果。分割肺結節(jié)完整流程圖如圖4所示。
圖4 肺結節(jié)分割流程圖
Fig. 4 Flow chart of pulmonary nodule segmentation
基于前面的肺結節(jié)良惡性特點,首先可以提取出語義特征,詳述如下:
(1)圓形程度,表明肺結節(jié)類圓的程度,從長條形(圓=0)變化到橢圓形(圓=2)、再變化到圓形(圓=4)。通常惡性肺結節(jié)呈現(xiàn)長條形,良性肺結節(jié)呈現(xiàn)圓形。
(2)貼壁程度,表明肺結節(jié)和肺部組織粘連的程度,從完全獨立(貼=0)變化到完全粘連(貼=4)。
(3)毛刺突起程度,表明肺結節(jié)周圍針狀物質的粗細程度和數(shù)量,從無毛刺(毛=0)變化到有非常多細毛刺(毛=4)。通常惡性肺結節(jié)具有非常多細毛刺,良性肺結節(jié)則表面光滑。
(4)內(nèi)部空洞程度,表明肺結節(jié)內(nèi)部空洞的大小和數(shù)量,從無空洞(洞=0)變化到有非常多的大的空洞(洞=4)。通常惡性肺結節(jié)具有非常多的大的空洞,良性肺結節(jié)則實心的居多。
(5)固態(tài)程度,表明肺結節(jié)呈現(xiàn)固態(tài)的程度,從非固態(tài)(固=0)變化到固態(tài)(固=4)。通常惡性肺結節(jié)呈現(xiàn)液態(tài),良性肺結節(jié)呈現(xiàn)固態(tài)。
(6)邊緣清晰程度,表明肺結節(jié)邊緣清晰的程度,從非常模糊(清=0)變化到非常清晰(清=4)。通常惡性肺結節(jié)邊緣模糊,良性肺結節(jié)邊緣清晰。
(7)分葉情況,表明肺結節(jié)分葉的數(shù)目和程度,從無分葉(葉=0)變化到有分葉(葉=4)。通常惡性肺結節(jié)有很深的分葉,而良性肺結節(jié)則均勻生長。
(8)切片均勻變化程度,表明肺結節(jié)的形狀是否規(guī)則,從完全隨機(均=0)變化到部分均勻(均=2),最后到非常均勻(均=4)。通常惡性結節(jié)呈現(xiàn)不規(guī)則立方體導致切片圖像的尺寸、面積發(fā)生劇烈改變,良性結節(jié)從中心切片到兩側切片的尺寸和面積應該是從大到小均勻變化的。
其次,可以提取出一些形態(tài)學的數(shù)值特征,分述如下:
(1)坐標位置。表明肺結節(jié)在肺部的位置。位于肺上葉的肺結節(jié)惡性居多。
(2)切片位置。同樣表明肺結節(jié)在肺部的位置。
(3)尺寸??赏ㄟ^肺結節(jié)占整個肺結節(jié)區(qū)域寬高面積的比例來計算,通常惡性肺結節(jié)尺寸較大,良性肺結節(jié)尺寸較小。研究推得數(shù)學公式如下:
(5)
(4)密度變化。表明肺結節(jié)的密度變化情況。通常良性肺結節(jié)密度變化較小,而惡性肺結節(jié)密度變化劇烈,通過灰度值的方差可以很好地反映這一情況,為了避免較少的灰度值產(chǎn)生較大的干擾,取[0.1×maxGrayLevel,maxGrayLevel]之間的灰度值進行方差計算,相應數(shù)學公式可表示為:
密度變化=var(肺結節(jié)灰度值向量) .
(6)
此外,也可以提取一些圖像學特征。諸如,haar特征,表明了肺結節(jié)邊界的變化情況,采用了5種模板生成的100個隨機長寬、隨機位置的haar特征,haar模板如圖5所示。而haar模板的生成算法可參考如下設計代碼。
圖5 5種haar模板
算法 1 haar特征模板隨機生成算法
[haarID,leftupx,leftupy,w] =genHaarTemplate(px,py,haarIDs)
num← 0;
FORi← 1:length(haarIDs)
ws←隨機抽取px×py矩形內(nèi)不重復的、基于haarID模板的、合法的寬度
FORj← 1:length(ws)
[leftupx,leftupy] ← 根據(jù)寬度、haarID模板,隨機抽取不重復的合法的左上角坐標
num←num+ 1;
rs(num) ← [haarIDs(i),leftupx,leftupy,ws(j)]
ENDFOR
ENDFOR
RETURNrs
最后,如果有良好條件可以獲取到一些臨床信息,也可以加入作為一部分特征,可對此表述如下:
(1)患病年齡。低于35歲的患者肺部的肺結節(jié)大多為良性。
(2)吸煙。吸煙者肺結節(jié)惡化的可能性高于非吸煙者10~20倍。
(3)性別。一般男性肺結節(jié)為惡性的人數(shù)高于女性。
(4)生活環(huán)境。生活環(huán)境如果遭受污染,比如經(jīng)常有PM2.5的天氣,那么肺結節(jié)為惡性的可能性很大。
綜合上述特征形成了肺結節(jié)的病理特征,見表1。
肺結節(jié)灰度值變化范圍較寬,為了避免haar特征對整個特征向量產(chǎn)生影響,并增加RF的穩(wěn)定性,針對肺結節(jié)的特點,本文提出一種加權的隨機森林(Weighted Random Forest, WRF)算法。將特征分為2部分,一部分為全部的語義特征、全部的形態(tài)特征、全部的臨床特征(可選)、haar特征α個,另一部分完全為haar特征β個,兩部分haar特征不重疊,分別訓練m組RF(記為MRF)和n組RF(記為NRF)。每組RF中有tn棵相互獨立的決策樹,采用有放回的抽樣形式處理訓練數(shù)據(jù),并且在NRF中對β個haar特征也采用隨機抽取的方式,抽取fn(0.5tn 表1 肺結節(jié)病理特征 算法2 肺結節(jié)良惡性加權隨機森林分類器訓練算法 [WRF] =genHaarTemplate(trainFea,m,n,tn,fn,Δ,α,β) [trainFeaM,trainFeaN] ←splitFea(trainFea,α,β) FORi← 1:M FORj←1:TN dtm(i) ←trainCART(trainFeaM,Δ) ENDFOR ENDFOR FORi← 1:N FORj← 1:TN [selNum,selTrainFeaN] ←randomSelectFea(trainFeaN); dtn(i) ←trainCART(trainFeaM,Δ) selNums(j) ←selNum ENDFOR ENDFOR RETURN [dtm,dtn,selNums] 在測試階段,將提取出來的特征向量分別輸入所有的MRF、NRF的RF分類器中,假設Ymi是每組MRF的分類結果(概率形式),Yni是每組NRF的分類結果(概率形式),采用加權投票的方式獲得最終的分類結果Ci,為此將用到如下數(shù)學公式: (7) 其中,Ci=0表示良性肺結節(jié),Ci=1表示惡性肺結節(jié)。肺結節(jié)良惡性WRF的測試算法的運行設計參見如下。 算法3 肺結節(jié)良惡性加權隨機森林分類器測試算法 [C] =genHaarTemplate(testFea,WRF) FORi← 1:M Ym(i) ←testMRF(testFea,WRF{dtm}); ENDFOR FORi← 1:N testNFea←extFea(testFea,WRF{selNums}) Yn(i) ←testNRF(testFea,WRF{dtn}) ENDFOR C← 0.5*sum(Ym) /M+ 0.5*sum(Yn) /N; RETURNC 本次實驗采用了Lungx肺結節(jié)分類挑戰(zhàn)賽(LUNGx SPIE-AAPM-NCI Lung Nodule Classification Challenge)的數(shù)據(jù)[12],訓練數(shù)據(jù)來源于美國國家癌癥研究所(National Cancer Institute, NCI)2014年11月26日的癌癥影像檔案(The Cancer Imaging Archive , TCIA)[13],一共10張胸部CT圖像,5名男性患者,5名女性患者,中位年齡65歲。5個良性肺結節(jié),5個惡性肺結節(jié),共10個肺結節(jié),良惡性判斷結論是由多個放射科醫(yī)生根據(jù)病例評估和后續(xù)跟蹤檢查得出的。測試階段一共用到60張胸部CT圖像,23名男性患者,37名女性患者,平均年齡60.5歲。37個良性肺結節(jié),36個惡性肺結節(jié),共73個肺結節(jié)[14]。CT圖像以Dicom的格式保存,每張切片大小均為512×512像素,附帶肺結節(jié)的位置和良惡性判斷數(shù)據(jù),統(tǒng)計結果見表2。 表2 訓練和測試CT圖像中的肺結節(jié)信息 Tab. 2 Pulmonary nodules informations for training and testing CT images 大賽的組織者精心設計了這些數(shù)據(jù),良惡性比例都是被平衡過的,非常適合WRF算法。但同時也對分類帶來了挑戰(zhàn),對此可做闡釋分析如下。 (1)訓練數(shù)據(jù)集非常少。 (2)包括肺結節(jié)的尺寸都是被平衡過的,惡性結節(jié)也會有很小的尺寸,良性結節(jié)也會有很大的尺寸,這是為了避免通過尺寸來構造簡單的分類器進行良惡性判斷,盡管這種尺寸判斷在實際應用中分類精確度很高[15]。 (3)DICOM頭文件信息不允許使用,無法使用包括性別、年齡在內(nèi)的分類特征,即便使用了也不會有太大效果,因為在性別和年齡上的數(shù)據(jù)也非常平衡。 設定前后切片數(shù)目PNUM=10,半寬NW=25,CT切片邊界MAXW=512,MAXH=512,theta=0.15,對肺結節(jié)圖像進行分割,分割的效果如圖6所示,左側為轉換灰度級后的圖像,還有很多粘連血管或者獨立血管影像。中間圖像為第一次區(qū)域生長后的圖像,還有一部分粘連血管沒有清除。右側為腐蝕膨脹運算后再次區(qū)域生長的圖像,可以看出粘連的血管已經(jīng)被分割掉,并且完整地保留了肺結節(jié)邊緣的形狀信息和內(nèi)部的灰度信息。 圖6 訓練圖像的圖像分割效果示意圖 設定α=30,β=70。訓練m=1組MRF,n=5組NRF,每個RF中產(chǎn)生tn=50棵樹,NRF中隨機選擇fn=[30,60]個haar特征,Δ=1,采用受試者工作特征曲線 (receiver operating characteristic curve, ROC)來對比直接使用隨機森林(所有參數(shù)一致)、使用SVM(所有參數(shù)一致)和本文提出的WRF算法的分類效果,如圖7所示。 圖7 ROC曲線對比圖 由圖7可以看出,使用相同數(shù)據(jù)、相同分割方法、相同特征的WRF相對于RF、SVM的效果都要好得多。使用相同數(shù)據(jù)的參賽者的曲線下面積(Area Under Curve,AUC)值范圍為[0.50, 0.68],表3羅列了部分分類方法的AUC值,AUC在[0.60,0.68]區(qū)間內(nèi)的分類方法只有3組,而WRF的AUC值高達0.608 86,已經(jīng)達到很高的水平,并且遠遠優(yōu)于其中在分類器上同樣使用隨機森林算法進行分類的最高AUC值0.56[15],說明了本算法的優(yōu)越性。 表3 相同數(shù)據(jù)集分類方法效果對比 Tab. 3 Comparison of the effect of classification methods on the same data set 編號分割方法分類器AUC值1基于體素分割SVM0.502區(qū)域生長WEKA0.503圖割RF0.564區(qū)域生長+形態(tài)學WRF(本文)0.615半自動閾值SVR0.68 本文提出了一種基于病理特征和改進隨機森林的肺結節(jié)良惡性分類方法,首先利用肺結節(jié)及其周圍組織的特性,采用灰度級轉換、兩步區(qū)域生長和一步形態(tài)學腐蝕膨脹將肺結節(jié)完整地分割出來,最大程度地保留了原始特征;然后逐步提取出語義信息、形態(tài)學信息、圖像學信息、臨床信息作為特征;最后為了充分利用這些小樣本高維度特征,提出了一種集成加權的改進隨機森林算法WRF。在Lungx數(shù)據(jù)集上的實驗結果表明,WRF算法相比于其它算法、尤其對于使用RF分類器的算法而言有更好的分類效果。在未來的工作中,需要提取更多在分割步驟中被忽略的特征,同時對比更多機器學習方法在肺結節(jié)良惡性分類上的效果,進一步探索WRF算法在肺結節(jié)輔助診斷中具有廣闊重要前景的各類技術研發(fā)及實踐應用。3 實驗結果與分析
3.1 實驗數(shù)據(jù)
3.2 實驗結果
4 結束語