于蓮芝,劉海寧
(上海理工大學(xué) 光電信息與計算機(jī)工程學(xué)院,上海 200093)
計算機(jī)斷層掃描(ComputerTomography,CT)技術(shù)與醫(yī)學(xué)影像處理技術(shù)的快速發(fā)展,極大地幫助了醫(yī)生對病人病情做出及時、正確的診斷,并且能夠提升放射科醫(yī)師的工作效率與診斷準(zhǔn)確性.在構(gòu)成完整的計算機(jī)輔助診斷系統(tǒng)[1]所有環(huán)節(jié)中,肺實質(zhì)分割[2]這一環(huán)節(jié)可以有效的排除諸如胸廓、心臟、檢查床等無關(guān)影響因素的干擾[3],從而提高輔助診斷系統(tǒng)的精確性.
肺部CT圖像分割算法主要以基于閾值的方法為主,這種方法雖然能夠?qū)ψ笥曳蔚拇笾螺喞M(jìn)行快速的分割,但是往往將諸如胸膜結(jié)節(jié)此類的病變結(jié)節(jié)漏分、錯分[4],而這些信息往往是醫(yī)療工作人員診斷病情的關(guān)鍵所在[5].胸膜結(jié)節(jié)在CT圖像中的密度與其他器官組織,尤其是肺邊緣組織密度十分接近.胸膜結(jié)節(jié)的形狀大小及位置均存在很大的差異性[6],要解決這類結(jié)節(jié)的分割問題需要重新設(shè)計一種針對此類結(jié)節(jié)分割問題的算法.
目前針對胸膜結(jié)節(jié)的分割算法,大多還是基于傳統(tǒng)圖像分割算法中的閾值分割[7]和區(qū)域生長的方法或者是幾種方法的組合,其分割思想大致為:第一步對肺部CT影像圖像進(jìn)行粗分割,得到肺實質(zhì)的大概輪廓,再經(jīng)過形態(tài)學(xué)膨脹腐蝕和孔填充運(yùn)算得到相對精確的輪廓,以此來彌補(bǔ)在第一步分割過程中因病變導(dǎo)致錯誤分割而缺失的部分.針對傳統(tǒng)閾值分割算法對此類分割問題的不足,研究人員又提出了很多更加優(yōu)化的分割算法:文獻(xiàn)[8]提出了一種基于邊界逼近的分割方法,依據(jù)圖形學(xué)中的Graham 掃描算法得到最小凸多邊形端點的序列,提出了一種邊界逼近的方法,根據(jù)h與W值對凸多邊形端點序列進(jìn)行修正,雖然該算法對含有胸膜結(jié)節(jié)的肺實質(zhì)能夠進(jìn)行有效的分割,但該算法需要根據(jù)特定的肺部影像進(jìn)行h與W參數(shù)的設(shè)定,魯棒性較差;文獻(xiàn)[9]中提到的“滾球算法”基本原理是:用球半徑為R的球?qū)]有分割的肺輪廓進(jìn)行修補(bǔ),判斷是否進(jìn)行輪廓修補(bǔ)的依據(jù)是滾動過程中球內(nèi)的點是否互為連通.該算法球中半徑R依照經(jīng)驗設(shè)定,經(jīng)常出現(xiàn)過修補(bǔ)的現(xiàn)象;文獻(xiàn)[10]提出了一種雙項鏈碼的算法來對邊界點進(jìn)行篩選,并將候選點輸入到訓(xùn)練好的SVM分類器中,得到需要進(jìn)行輪廓修補(bǔ)的邊界點,并用直線將這些邊界點連接起來,從而達(dá)到修補(bǔ)邊界的目的,但由于肺部結(jié)構(gòu)的不確定性,對于一些特殊的胸膜結(jié)節(jié)將肺部區(qū)域斷開的情況則不能進(jìn)行很好的分割;該算法無法將此類情況的邊界進(jìn)行修補(bǔ);文獻(xiàn)[11]中提出了一種基于改進(jìn)凸包算法的肺實質(zhì)分割方法,首先運(yùn)用傳統(tǒng)分割方法對肺部輪廓進(jìn)行粗提取,在此基礎(chǔ)上采用Graham二維凸包經(jīng)典算法分別處理左肺和右肺,得到結(jié)果存放在邊緣堆棧中,利用改進(jìn)算法篩選出正確的邊緣,并得到掩模圖像.該算法有效地去除了肺部CT圖像中的縱膈部分,邊緣清晰準(zhǔn)確,但對于肺部內(nèi)輪廓出現(xiàn)病灶的情況經(jīng)常出現(xiàn)欠分割,算法精確度差;文獻(xiàn)[12]中提出了一種快速邊界行進(jìn)算法來分割肺實質(zhì),該算法結(jié)合D-P算法和自適應(yīng)邊界行進(jìn)算法,有效地分離胸膜與縱膈相連的肺結(jié)節(jié),大大的降低了肺部分割的時間開銷,但容易受到局部噪聲的影響,魯棒性差.文獻(xiàn)[13]提出了一種融合Harris角點檢測算法,首先運(yùn)用最大類間方差法將CT圖像轉(zhuǎn)化為二值圖像,然后運(yùn)用凸包檢測以及角點檢測方法來修正邊界,從而得到完整的模板,該算法不依賴手動設(shè)置參數(shù),具有很好的自適應(yīng)性,但是在某些非連通的區(qū)域分割效果不是很好.
圖1 算法程序流程圖Fig.1 Algorithm program flow chart
針對上述不足,為了解決肺部CT圖像中存在的胸膜結(jié)節(jié)被錯誤排除的問題,本文依據(jù)LIDC數(shù)據(jù)集中每組病人的CT影像特點得出:肺部輪廓在框架上輕微且均勻地擴(kuò)張或收縮,不管肺部輪廓的變化模式如何變化,胸膜結(jié)節(jié)均具有一致的外觀,由此提出了一種基于活動輪廓模型的貝葉斯方法,該方法是基于上一幀圖像或相鄰的上一幀圖像或者是相鄰幀的圖像中分割的肺部輪廓來預(yù)測待分割的肺部輪廓.本算法的流程圖如圖1所示.通過本文提出的貝葉斯方法,在多幀圖像之間對肺的輪廓進(jìn)行預(yù)測和更新,之后提取CV模型[14]和貝葉斯方法結(jié)果中的差異之處,最后利用凹點檢測算法和圓/橢圓霍夫變換來檢測分離出來的差異圖像中是否含有胸膜結(jié)節(jié)或者肺壁,最后將病變結(jié)節(jié)信息添加到CV模型分割的輪廓中形成完整的輪廓線.
首先為了分割肺的輪廓,本文采用了CV模型[14].CV模型算法的基本原理是:構(gòu)建的能量驅(qū)動函數(shù)通過演化是其達(dá)到最小,能量函數(shù)把目標(biāo)分割圖像分成分割對象與分割背景兩個部分,分別是Ωi和Ωo,肺部CT圖像空間中CV模型的能量泛函[14]定義為:
(1)
其中:C是需要演化的目標(biāo)分割對象的輪廓線;I表示的是目標(biāo)分割圖像;μ和υ分別表示為輪廓線的長度加權(quán)值與曲線內(nèi)部對象的區(qū)域面積加權(quán)值;Area(inside(C))是曲線內(nèi)部所包圍的面積;Length(C)表示的是輪廓曲線的絕對值長度;c1和c2代表的是擬合中心,分別代表的是分割圖像與分割背景的圖像灰度平均值.使用水平集合函數(shù)[15]將式(1)中的曲線C替換掉,則可以將求解能量泛函問題轉(zhuǎn)化成求解水平集演化方程的問題.文中算法的水平集函數(shù)φ選用了距離符號函數(shù)來表示(SignedDistanceFunction,SDF),定義如公式(2):
(2)
其中:參數(shù)d表示是高維空間中的點到水平集的距離,負(fù)數(shù)表示在輪廓內(nèi).本文中采用歐式距離函數(shù)表示,使用公式(2)替換后得到含有水平集合的能量泛函表達(dá)式:
(3)
其中:H(φ)表示單位階躍函數(shù);H′(φ)表示狄拉克測度函數(shù).單位階躍函數(shù)和狄拉克測度函數(shù)涉及到數(shù)值計算方面的轉(zhuǎn)換,單位階躍函數(shù)和狄拉克測度函數(shù)的表達(dá)式如式(4)和式(5)所示.
(4)
(5)
其中:ε表示是常量,可以根據(jù)實驗效果設(shè)定最優(yōu)值.依據(jù)變分原理對能量泛函式(1)進(jìn)行數(shù)學(xué)推導(dǎo),得到能量泛函的偏微分方程如下:
(6)
最小化式(6)即可得到最優(yōu)的零水平集,也是所求的最優(yōu)輪廓.對于初始化曲線,采用式(7)的方程,這樣c1和c2就能從初始曲線不斷更新迭代.
(7)
肺部CT圖像經(jīng)過CV模型分割過后,可以看到肺實質(zhì)內(nèi)部區(qū)域的結(jié)節(jié)和組織都能夠被有效的分離.為了將它們分離出來,選擇了兩個最長的輪廓線,分別對應(yīng)了左肺和右肺的輪廓.圖2(a)和圖2(b)圖均為CV模型分割正常肺的輪廓線,可以看出分割輪廓精準(zhǔn),具有不錯的效果;圖2(c)圖是CV模型分割含有胸膜結(jié)節(jié)的肺,分割輪廓能夠把胸膜結(jié)節(jié)的一部分包含進(jìn)去,說明CV模型對此類結(jié)節(jié)具有一定的分割能力,而在圖2(d)圖中,由于胸膜結(jié)節(jié)的灰度和周圍組織的灰度十分接近,CV模型的分割結(jié)果完全繞過了胸膜結(jié)節(jié),將之排除在外.為了解決圖1(d)中出現(xiàn)的這種情況,本文將采用貝葉斯模型來減少胸膜結(jié)節(jié)的錯誤分割問題.
圖2 使用CV模型的分割結(jié)果Fig.2 Results segmented using the CV model
(8)
(9)
(10)
(11)
由式(10)和式(11)可以得到:
(12)
(13)
(14)
至此,根據(jù)連續(xù)的CT圖像輪廓狀態(tài)向量建立了貝葉斯?fàn)顟B(tài)估計器,在下面一節(jié)將介紹貝葉斯?fàn)顟B(tài)估計器的預(yù)測與更新.
圖3 (a)預(yù)測曲線.外側(cè)為收縮輪廓線,內(nèi)側(cè)為擴(kuò)張輪廓線;(b)第n幀輪廓線;(c)預(yù)測輪廓線與十分吻合;與的重合部分Fig.3 (a)Predicted curve.Outside is the contraction contour and inner is the expansion contour;(b)Nth frame outline;
通過將更新后的輪廓與實際輪廓線對比得到的差異化輪廓,如圖4(a),可以得知被分開的區(qū)域包含了真正的結(jié)節(jié),也包含了不相關(guān)的線段,凸包等等,如圖4(b),所以最終的肺部輪廓線可以通過添加真正的結(jié)節(jié)來修正.
圖4 (a)局部細(xì)節(jié)輪廓;(b)差異化輪廓Fig.4 (a)Local detail contour; (b)Differentiated contour
為了篩選出真正的結(jié)節(jié),首先需要判斷這些候選結(jié)節(jié)輪廓中是否包含到待更新輪廓中心的凹點.定義每個候選結(jié)節(jié)輪廓的輪廓點為:
(15)
其中:I是所有候選結(jié)節(jié)輪廓的個數(shù),J是第i個候選結(jié)節(jié)的邊界點個數(shù).
圖5 (a)計算來判定是否包含凹點;(b)所有候選結(jié)節(jié);(c)霍夫變換篩選后的結(jié)節(jié)Fig.5 (a)Calculate the to determine if concave points are included;(b)All candidate nodules;(c)Hough transform selected nodules
在所有的候選結(jié)節(jié)輪廓中,本文采用霍夫變換篩選其中的圓形輪廓或者類圓輪廓.計算篩選出來的包含凹點的候選結(jié)節(jié)輪廓的圓相似度,設(shè)定相似度大于0.5的輪廓,如圖5所示,圖5(b)是經(jīng)過預(yù)測更新過后第n幀待分割CT圖像中所有候選結(jié)節(jié)的二值圖像,從圖可以看出二值圖像包含了需要分割的胸膜結(jié)節(jié)以及其他無關(guān)的部分;圖5(c)則是通過霍夫變換并設(shè)置合適閾值將感興趣的胸膜結(jié)節(jié)部分篩選出來.最后把篩選出來的真正的結(jié)節(jié)添加到待更新輪廓上,即可以得到包含胸膜結(jié)節(jié)肺實質(zhì)完整輪廓分割圖像.
實驗的數(shù)據(jù)來自公開數(shù)據(jù)集LIDC的1010位病人的肺部CT影像.由于本算法考慮的是對含有胸膜結(jié)節(jié)的分割性能,故從1010位病人中共計244,527張CT影像中挑選出了32位病人含有胸膜結(jié)節(jié)的CT影像源數(shù)據(jù).源數(shù)據(jù)中CT圖像的大小都是512像素乘以512像素.仿真實驗平臺所搭載的操作系統(tǒng)是Windows10,主頻參數(shù)為2GHz,內(nèi)存參數(shù)是8GB.開發(fā)環(huán)境為Matlab2016b.
將本文算法與文獻(xiàn)中第1節(jié)中提到的CV模型方法、“滾球法”、邊界逼近、“角點檢測”的分割算法作對比,根據(jù)放射科醫(yī)師提供的分割結(jié)果金標(biāo)準(zhǔn)判斷分割效果.文獻(xiàn)[8]提到的基于邊界跟蹤的算法設(shè)定合理的h值與W值.水平集方法的初始演化矩形設(shè)置為寬為150像素,高200像素,迭代次數(shù)為300次.文獻(xiàn)[9]提到的“滾球法”的半徑參數(shù)設(shè)置為最優(yōu)的10.文獻(xiàn)[13]提到的角點檢測算法無需手動設(shè)置參數(shù).
為定量分析實驗結(jié)果的優(yōu)劣,本文采取數(shù)據(jù)集中32位病人存在病灶的樣本圖像,基于統(tǒng)計學(xué)原理將分割結(jié)果與目標(biāo)圖像的Ground Truth的面積進(jìn)行測試對比.
本文分別采用了準(zhǔn)確率(Precision)、召回率(Recall)、F值(F-Measures)、DSC(dice similarity coefficient)這4種評測指標(biāo)[16]對本文提及算法進(jìn)行實驗結(jié)果評估.DSC表示兩個集合的相似性,在本文中是用于比較分割輪廓與醫(yī)生手動分割的金標(biāo)準(zhǔn)輪廓的相似程度,DSC指標(biāo)的取值范圍是0~1,0表示兩個集合之間沒有相關(guān)性,1表示兩個集合之間有著很高的相似性,4種指標(biāo)在本文中的表達(dá)公式如下:
(16)
(17)
(18)
(19)
其中:TP表示將正類預(yù)測成正類數(shù);FP表示將負(fù)類預(yù)測成正類的數(shù)目;FN表示將正類預(yù)測成負(fù)類數(shù);α是P和R的權(quán)重系數(shù),一般取1,就是常見的F1,也即是:
(20)
4.3.1 實驗結(jié)果分析
如圖6所示,在相同的實驗平臺和開發(fā)環(huán)境中,針對前面提到的CV模型、“滾球算法”、“邊界逼近算法”,“角點檢測算法”做出了實驗結(jié)果對比,用醫(yī)生分割的金標(biāo)準(zhǔn)分割結(jié)果為評判標(biāo)準(zhǔn),判斷是否能夠正確的分離出包含胸膜結(jié)節(jié)的外部輪廓線.圖6(a)組實驗結(jié)果中CV模型分割結(jié)果對正常肺部區(qū)域(左肺)能夠精準(zhǔn)分割,但是未能將右肺中胸膜結(jié)節(jié)一起分割開來;“滾球”模型包含部分結(jié)節(jié)信息,分割邊緣不太光滑;“邊界逼近算法”分割結(jié)果能夠很好的將胸膜結(jié)節(jié)分割出來,但是分割細(xì)節(jié)處理的不夠好,圖6(a)中最后一幅圖是本文算法的分割結(jié)果,分割輪廓光滑自然,能夠正確包含胸膜結(jié)節(jié),比較接近醫(yī)生手動分割的結(jié)果.
4.3.2 量化結(jié)果分析
圖6 算法分割結(jié)果對比.(a)、(b)兩組實驗結(jié)果從左到右依次表示的是原始圖像、CV模型算法分割結(jié)果、“滾球模型”分割結(jié)果、“邊界逼近”算法分割結(jié)果和本文算法分割結(jié)果Fig.6 Comparison of several algorithm segmentation results.(a),(b)The experimental results of the two groups from left to right represent the original image,the CV model algorithm segmentation result,the“rolling ball model”segmentation result,the“boundary approximation”algorithm segmentation result and the algorithm segmentation result.
為了定量分析本文算法在分割胸膜結(jié)節(jié)的有效性,在相同實驗條件下,分別繪制不同分割算法的P-R曲線.如圖7所示,橫坐標(biāo)為Recall,縱坐標(biāo)為Precision,圖中實線曲線為本文算法的P-R預(yù)測曲線,均將基于邊界逼近、滾球法、角點檢測算法的曲線包圍,說明本文算法優(yōu)于其他三種算法.
圖7 不同算法的P-R曲線Fig.7 P-R curve of different methods
為進(jìn)一步的驗證本文提出的方法,將測試數(shù)據(jù)集擴(kuò)大到N=234,分別計算不同分割算法的DSC指標(biāo),實驗結(jié)果如表1所示,滾球模型算法的DSC平均值在0.734,標(biāo)準(zhǔn)差為0.114,
表1 四種不同方法的DSC指標(biāo)比較Table 1 Comparison of DSC indicators of four different methods
明顯高于其他幾種算法,而邊緣逼近算法要比滾球算法稍微高一點,但是分布也不穩(wěn)定,魯棒性差.本文提出的算法在DSC指標(biāo)上,結(jié)果穩(wěn)定分布在0.95到0.97之間,平均值在0.962,最高的也能達(dá)到0.98以上,說明分割結(jié)果與醫(yī)生手動分割的金標(biāo)準(zhǔn)相似度高,算法精確度高,具有很強(qiáng)的適應(yīng)性.
表2表示的是使用不同分割算法對數(shù)據(jù)集進(jìn)行仿真實驗的評判結(jié)果.可以看出,單獨使用CV模型算法結(jié)節(jié)分割準(zhǔn)確率很低,只有24.5%;使用滾球法和邊界逼近的算法,在準(zhǔn)確率和召回率比較CV模型有了很大的提升,其中邊界逼近算法的召回率還略高于本文算法,角點檢測算法與本文分割效果相似,但在非連通區(qū)域分割效果上差于本文算法,本文算法的結(jié)節(jié)分割正確率都高于文中所列算法,三種綜合指標(biāo)均高于90%,因此在整體上較文中其他對比算法有更好的分割精度和效果.
表2 本文算法以及幾種對比算法的分割精度Table 2 Comparison of average segmentation accuracy of different segmentation methods
本文提出了基于CV模型的含胸膜結(jié)節(jié)的肺實質(zhì)分割方法,基于CV模型初步分割出肺部輪廓,以此為基礎(chǔ)建立貝葉斯預(yù)測更新模型,提取相鄰幀的信息添加到修正輪廓上,最后得到包含病變結(jié)節(jié)信息的肺實質(zhì)完整輪廓線.實驗結(jié)果表明,本算法采用貝葉斯模型的預(yù)測更新方法,較好的彌補(bǔ)了其他算法的欠分割、過分割的不足 ,保留了病變結(jié)節(jié)的邊緣信息,對于完善計算機(jī)輔助診斷系統(tǒng)具有一定的實用價值.