陳曉楠 王凱欣 孫傳恕 劉曉凱 畢京平 彭 勇
1(大連海事大學信息科學技術學院 遼寧 大連 116026) 2(大連醫(yī)科大學附屬第二醫(yī)院 遼寧 大連 116027) 3(大連理工大學水利工程學院 遼寧 大連 116024)
2019年1月,國家癌癥中心發(fā)布的最新全國癌癥統(tǒng)計數(shù)據(jù)顯示,2015年全國的惡性腫瘤新發(fā)病例數(shù)達392.9萬例,其中肺癌發(fā)病率占全國首位,發(fā)病病例高達78.7萬[1]。肺癌已嚴重威脅到人們的生命健康。目前,CT(Computer Tomography)是早期肺癌檢測中最為有效的醫(yī)學影像檢查手段之一[2]。隨著科技水平的不斷進步,醫(yī)學影像切片的厚度越來越小,使得最終獲得的切片數(shù)據(jù)量越來越大,導致放射科醫(yī)生每天要閱讀數(shù)以千計的CT圖像,高的閱讀量與診斷結果的準確率就產(chǎn)生了矛盾。為了盡量減少在前期由于主觀因素而造成的漏診、誤診現(xiàn)象,出現(xiàn)了計算機輔助診斷(Computer Aided Diagnosis,CAD)系統(tǒng),CAD系統(tǒng)可以綜合分析肺部醫(yī)學圖像,給醫(yī)師提供“第二意見”[3]。
肺癌在早期一般表現(xiàn)為肺結節(jié)[4]。近年來,已有大量針對實質性結節(jié)分割算法的研究,而對磨玻璃型肺結節(jié)的分割方法中,如K近鄰[5]、模糊聚類[6]、神經(jīng)網(wǎng)絡[7-8]、隨機游走[9]等,都不能準確而高效地得到完整的GGO,且研究發(fā)現(xiàn)GGO的癌變率遠遠高于其他實質型結節(jié)。因此,研究GGO的分割對于肺癌的篩選和診斷具有更高的應用價值。
2003年,Ren等[10]首次提出超像素的概念,在近幾年逐漸興起,并成為目標識別、智能解釋、目標跟蹤、圖像分割、人工智能等領域的研究熱點。Achanta等[11]通過對目前超像素算法的比較分析提出一種簡單有效的超像素分割方法——簡單的線性迭代聚類(Simple Linear Iterative Clustering,SLIC)。該算法在區(qū)域緊密度、規(guī)則度以及算法的復雜度和準確率上都優(yōu)于其他超像素方法,但在邊緣貼和性上表現(xiàn)欠佳。DBSCAN是一種基于密度的空間聚類算法[12],該算法將達到一定密度閾值的塊劃分成多個區(qū)域,并在含有較多噪聲或干擾的數(shù)據(jù)中找到相近的塊并將其聚為一類,且可能由于GGO密度分布不均勻,導致一次密度聚類不能將其完整地分為一類。本文提出基于邊緣敏感的SLIC和二次密度聚類的GGO分割方法,首先將邊緣檢測結果與SLIC相結合,改變初始聚類中心的選擇標準,得到新的聚類中心,其次在傳統(tǒng)密度聚類的基礎上引入二次密度聚類的思想。實驗結果顯示,本文提出的算法具有較高的準確率和靈敏度。
本文在對含有GGO的圖像進行分割之前,先對圖像進行了預處理,去掉肺壁、衣物和機床等組織,得到肺實質輪廓。接著,對得到的肺實質進行邊緣檢測,將檢測結果融入到SLIC產(chǎn)生的初始超像素塊中,并且用區(qū)域質心代替其原始聚類中心,對圖像進行過分割,然后對分割結果進行密度聚類,定位到GGO所在的簇,最后,對定位到的簇進行二次密度聚類,得到最終的GGO分割結果。算法的具體流程如圖1所示。
圖1 系統(tǒng)總體流程
由于醫(yī)學圖像的復雜性,在分割GGO之前,要將肺部區(qū)域分割出來,去掉無關的信息,例如肺壁、衣物、機床等。應用改進的區(qū)域生長和模糊C均值聚類相結合的方法分割肺區(qū)域,并用形態(tài)學的方法對區(qū)域邊界進行修補。
首先,將圖像二值化,并根據(jù)二值化結果在含有最多空洞的區(qū)域中選擇種子點,并選擇此點作為生長的起點,進行自動區(qū)域生長并獲得初始的肺實質輪廓。其次,由于輪廓邊界具有模糊性,因此對初始輪廓進行邊界展寬,且肺實質、肺壁、背景三部分具有較大的灰度差異,所以計算展寬的區(qū)域的灰度直方圖,找到直方圖的峰值,在展寬區(qū)域中選擇對應峰值的像素點作為初始聚類中心,對圖像進行聚類,得到肺實質。最后,為防止粘連肺壁組織對結果的影響,對聚類得到的肺實質用形態(tài)學方法進行邊界修補。肺實質處理結果如圖2所示。
(a) 原始圖像 (b) 聚類后圖像
SLIC計算量較小且克服了以往算法產(chǎn)生的超像素數(shù)量不可控的缺點。SLIC將圖像轉化到CIELAB空間,并提取圖像的五維特征向量V=[l,a,b,x,y],其中:[l,a,b]為像素顏色特征;[x,y]為位置特征。因此SLIC既考慮到了圖像中像素之間顏色的相似性,又考慮到了位置的相近性。
dc=(lj-li)2+(aj-ai)2+(bj-bi)2
(1)
ds=(xj-xi)2+(yj-yi)2
(2)
(3)
式中:dc和ds分別表示像素的顏色距離和空間距離;i表示聚類中心;j表示聚類中心搜索范圍內的像素;m表示空間距離與顏色距離的權重系數(shù),一般在1~40之間,值越大,分割后的超像素越緊湊,值越小,生成的超像素越不規(guī)則。
在SLIC初始化時,初始超像素塊中如果包含圖像邊界,叫跨邊界初始超像素,如果直接進行聚類,會產(chǎn)生跨邊界超像素,此時超像素邊界不會很好地貼合圖像邊界??邕吔绯袼厝鐖D3所示。
圖3 跨邊界超像素
為了提高跨邊界超像素的邊界黏附性,提出基于邊緣敏感的SLIC分割算法。該算法結合區(qū)域檢測算子,判斷初始超像素塊是否為跨邊界初始超像素塊,若為跨邊界初始超像素塊,還需確保圖像邊緣與超像素塊邊緣形成閉合,若不閉合,則延長至距離最近的超像素塊邊緣使之閉合,用跨邊界初始超像素的區(qū)域質心代替其原始的聚類中心進行聚類。新的聚類中心確定規(guī)則如下:
(1) 如果原始聚類中心的S×S搜索區(qū)域內存在圖像邊界,刪除原始的聚類中心,并使邊界與超像素塊邊界閉合,選擇區(qū)域的質心作為初始聚類中心,如圖4中的Bi。
(2) 如果原始聚類中心的S×S搜索區(qū)域內不存在圖像邊界,保留原始聚類中心不變,如圖4中的Ci。
圖4 聚類中心選擇示意圖
在分割算法中,需要根據(jù)k值,將圖片劃分為大小相等、排列整齊的超像素,本文選擇k=1 000,因為此時的初始超像素塊與GGO的大小最為相似,并選擇每個超像素的中心點作為初始聚類中心。
對原始圖像進行邊緣檢測時,本文選擇LoG邊緣檢測算子,該算子克服了一般微分運算對噪聲敏感的缺點。然后將檢測得到的圖像邊緣和SLIC分割算法產(chǎn)生的初始超像素塊相結合,更新原始的聚類中心,產(chǎn)生超像素過分割結果。
與傳統(tǒng)的SLIC算法相同,選擇聚類中心的2S×2S鄰域,對屬于該區(qū)域的像素進行搜索,通過計算像素與聚類中心的距離D,將每個像素歸為距離相近的聚類中心。每當加入新的像素時,更新聚類中心為區(qū)域的均值,并重新計算新舊聚類中心的剩余誤差。當剩余誤差足夠小時,迭代結束,刪除此時面積過小的孤立區(qū)域,因為此時可能為血管干擾,并將其合并到相鄰的超像素塊中,得到最終的分割結果。
1.4.1DBSCAN算法分析
DBSCAN是一種基于密度的空間聚類算法,該算法通過引入密度可達的概念,將像素鄰域內包含大于一定數(shù)量的點定義為核心點,相鄰核心點直接密度可達,所有相互密度可達的點合并為一個簇,不屬于任何一簇的點視為噪聲數(shù)據(jù),直到?jīng)]有新的點添加到任何簇時,該過程結束。DBSCAN的幾個重要概念:
(1) Eps鄰域:以給定的對象為圓心,Eps為半徑的區(qū)域,稱為該對象的Eps鄰域。
(2) 核心對象:若對象的Eps鄰域內的樣本個數(shù)不小于Minpts,那么對象為核心對象。
(3) Minpts:核心對象在其Eps鄰域內包含的最小點數(shù)。
(4) 直接密度可達:樣本中的兩個點p和q,若p是核心對象,且q在p的Eps鄰域內,則稱p對q直接密度可達。
(5) 密度可達:對于樣本集合C,給定一串樣本點p1,p2,…,pn,p=p1,q=pn,若對象pi從pi-1直接密度可達,則對象q從對象p密度可達。
由于GGO與背景之間的對比度較低,且可能會存在密度不均勻的情況,使得在第一次密度聚類時,不能將全部的GGO包含在一類之中或GGO靠近邊界的部分會和背景劃分為一類,從而得不到完整的分割結果,因此本文提出一種二次密度聚類的方法。在第一次聚類后,根據(jù)超像素的類圓度、均勻度、密度小于血管的特性初步定位到GGO;根據(jù)鄰域矩陣,只對定位到的GGO進行二次密度聚類,得到最終的結果。
1.4.2一次密度聚類
本文將DBSCAN聚類算法用于超像素而非像素[13]。將超像素作為核心對象,根據(jù)SLIC產(chǎn)生的超像素生成鄰域矩陣,計算該超像素與其周圍超像素之間的距離,若滿足距離要求則將其合并到一個簇中,然后以新合并的超像素作為起點,重復上述過程,直到?jīng)]有超像素加入到任何簇,得到聚類結果。由于經(jīng)SLIC后產(chǎn)生的超像素塊與其周圍超像素塊的距離相近,因此在第一次密度聚類計算距離時只計算顏色距離,計算公式如下:
d(i,j)=(lmj-lmi)2+(amj-ami)2+(bmj-bmi)2
(4)
式中:i、j為超像素;lm、am、bm為超像素三個顏色特征分量的均值。
經(jīng)過聚類后,GGO仍然存在于含有實質的背景之中。因此,通過計算超像素的類圓度、標準差得到候選的GGO,然后根據(jù)GGO密度小于血管的特性得到GGO的精確定位。類圓度的度量標準如下:
(5)
式中:a是指目標的面積;p是指目標的周長。m越接近于1,則表示目標越接近于圓形。所以,候選GGO的確定規(guī)則如下:
(6)
式中:b為每個超像素的標準差;k為所有超像素中標準差的最小值。
選擇其中z值最大的三個類作為GGO的候選,在候選的GGO中選擇密度最小的區(qū)域,得到GGO的準確定位。
1.4.3二次密度聚類
針對第一次密度聚類時不能將GGO完整地分割在一個簇中的問題,本文提出二次密度聚類的方法,即在第一次密度聚類后,得到GGO的準確定位,以此超像素作為二次密度聚類的起始簇,只對該簇進行聚類。通過計算起始簇到其他簇的距離,根據(jù)閾值大小判斷其他簇是否能夠與起始簇合并。此外,要對第一次密度聚類后的圖像要重新計算簇的鄰域矩陣,確保滿足閾值條件的簇為起始簇的鄰域簇,否則,該簇不滿足合并條件。采用五維特征向量來衡量兩者之間的距離D′:
(7)
(8)
(9)
本文所用的含有GGO的肺部CT影像數(shù)據(jù)集均來源于大連醫(yī)科大學第二附屬醫(yī)院。數(shù)據(jù)集中包含19個序列,每個序列平均包含300幅CT圖像,所有圖片的像素均為512×512,其中每幅包含有GGO的圖像都由經(jīng)驗豐富的醫(yī)生標注。實驗平臺為64位Windows 8操作系統(tǒng),MATLAB R2016a,2.0 GHz處理器,4 GB內存。
本文提出將邊緣信息融入到傳統(tǒng)的SLIC算法中,并對跨邊界初始超像素更新其聚類中心,本文算法與傳統(tǒng)的SLIC分割結果對比圖如圖5所示。從圖中可以看出,原始SLIC產(chǎn)生的超像素不能很好地貼和邊緣,使產(chǎn)生的結果中含有無關信息,而本文提出的算法具有較好的邊界黏附性。
(a) 傳統(tǒng)的SLIC (b) 邊緣敏感SLIC圖5 SLIC和邊緣敏感SLIC分割結果對比圖
對于二次密度聚類的合并閾值,本文采用一種自適應閾值的方法。即通過計算第一次密度聚類得到的起始簇與其他簇的距離,對得到的距離大小進行排序,并繪制折線圖,找到第一個斜率突變點。根據(jù)多次實驗驗證,選擇閾值為30,即當不存在突變點或突變點大于30時,選擇距離為30,否則選擇突變點處的距離為合并閾值。距離排序后的折線圖如圖6所示,縱坐標表示起始簇與其他簇的距離,橫坐標表示距離對應下每一個簇的密度聚類類別。
(a) 含有距離小于30的簇
圖6(a)表示密度分布不均勻或靠近邊緣區(qū)與背景對比度較低的GGO,此時,初始簇與鄰域簇的差別較小,距離較近,根據(jù)自適應確定閾值的方法,此時的閾值為24.75。放大部分為第一個斜率突變點附近。圖6(b)表示密度分布均勻的GGO,經(jīng)一次密度聚類后能夠得到完整的分割結果,因此與其他簇的距離較大,此時距離閾值設為30。放大部分為距離較小的前10個點。
為驗證本文算法的有效性,從影像數(shù)據(jù)集中隨機抽取50幅含有GGO的圖片進行實驗,肺結節(jié)的部分處理結果如圖7所示。
(a) 原始肺部圖像
由圖7(b)可以看出,經(jīng)過預處理之后,圖像中只剩肺實質部分,而與肺實質無關的組織(比如肺壁、機床以及患者衣物等)被去除,所以在進行超像素分割時,除肺實質外其他位置被視為背景,且被分割為接近標準的四邊形。這樣可以減少無關組織對于結果的影響。圖7(d)為使用SLIC得到的結果,可以看出,由于原始SLIC邊界黏附性較差,不融入邊界信息的SLIC得到的結果會產(chǎn)生過分割或欠分割,得到的結果較差。圖7(e)為密度聚類所得到的結果,由于GGO可能會存在局部密度不均勻,且邊界與背景的亮度差異過小,使得在聚類時無法將完整的GGO聚為一個簇,所以要進行第二次密度聚類,以定位到的GGO為初始簇,只對該簇進行聚類,得到完整的GGO分割結果。
此外,要保證在第一次密度聚類后GGO邊界區(qū)域不與背景劃為一簇,要使第一次聚類的距離閾值盡量小,經(jīng)過多次實驗驗證,第一次密度聚類的距離閾值設為8。圖7(f)為本文算法分割得到的GGO,可以看出,本文算法能更加準確地得到GGO。
為了檢測本文算法的準確率,采用準確率(Segment Accuracy,SA)和靈敏度(Sensitivity)作為算法的評價標準。將放射科專家手動分割結果作為評判的“金標準”,將“金標準”與本文分割算法所得到的結果進行對比,計算面積重疊度,得到算法的準確率[14]。準確率定義為:
(10)
式中:S1為本文算法的分割結果;S2為專家手動分割結果。SA的值越接近于1,代表分割準確率越高。
靈敏度的概念定義為將實際的結節(jié)像素點正確判斷為感興趣區(qū)域(金標準)結節(jié)像素點的比例。定義TP為檢測出真結節(jié)的個數(shù);FN為沒有檢測出真結節(jié)的個數(shù),因此靈敏度可以表示為:
(11)
算法的交叉對比結果如表1所示,其中第一行為原始SLIC+DBSCAN算法所得結果,可以看出,該算法的準確率和靈敏度都較低;第二行為基于邊緣敏感的SLIC+DBSCAN算法所得結果,可以看出,該算法靈敏度提高到了86%,比原始算法提高了24個百分點;第三行為SLIC+二次DBSCAN算法所得結果,可以看出,這種算法的準確率提高到了75.22%,比原始算法提高了19.05個百分點;第四行為本文算法,即基于邊緣敏感的SLIC+二次DBSCAN,可以看出,該算法的準確率提高到了90.17%,比原始算法提高了34個百分點,靈敏度提高到了84%,比原始算法提高了22個百分點。
表1 算法準確率交叉驗證結果 %
不同算法得到結果如表2所示,可以看出,本文算法的分割準確率和靈敏度均高于文獻[15]提出的算法;與文獻[6]所提出的算法相比,本文算法在靈敏度上雖然略低,但是在分割準確率上要遠高于該算法。
表2 算法準確率對比 %
本文提出一種基于邊緣敏感的SLIC和二次密度聚類相結合的算法對GGO進行分割。針對傳統(tǒng)的SLIC產(chǎn)生的超像素邊界黏附性較差的問題,提出基于邊緣敏感的SLIC,其分割結果能夠很好地貼合邊界,為后續(xù)的聚類奠定基礎。隨后,利用DBSCAN定位到GGO所在的簇,由于GGO可能會存在密度分布不均勻或邊緣對比度過低等原因,導致在密度聚類后只得到部分GGO,為提高分割的完整性,提出二次密度聚類,只對GGO所在的簇進行聚類,得到完整的GGO。實驗結果表明,本文算法能夠更好地貼和圖像邊界且具有較高的準確率和有效性,在圖像分割領域具有良好的應用前景。在實驗過程中發(fā)現(xiàn),孤立型GGO的分割準確率要高于肺壁黏連型GGO,下一步可針對孤立型GGO改進該算法模型。