萬(wàn)振環(huán)
(廈門醫(yī)學(xué)院, 廈門 361000)
CT圖像在肝臟腫瘤等疾病的診斷中具有十分重要的作用。通過(guò)造影劑的顯影作用,在肝臟動(dòng)脈和肝臟門靜脈兩個(gè)不同相位期,可以獲得兩組清晰的肝內(nèi)血管影像序列。肝臟診斷中對(duì)肝臟CT圖像同一位置兩組相位期圖像對(duì)比觀察分析很有必要,兩組圖像可以通過(guò)體外標(biāo)記點(diǎn)來(lái)粗略配準(zhǔn),也可以基于肝臟CT圖像局部特征、基于圖像灰度統(tǒng)計(jì)、基于變換域等要素進(jìn)行精確配準(zhǔn)。基于圖像特征的配準(zhǔn)方法不受灰度的影響,通過(guò)提取點(diǎn)特征、線特征或者面特征對(duì)圖像進(jìn)行匹配,魯棒性強(qiáng),匹配效果好[1-2]。
尺度不變特征變換(SIFT)[3-4],加速魯棒特征(SURF)[5]、快速定向二進(jìn)制描述(ORB)[6]等算法,通過(guò)使用基于描述符的度量,而不是直接比較像素強(qiáng)度,匹配過(guò)程得到了顯著改進(jìn)。SIFT算子是目前學(xué)術(shù)界認(rèn)可的較為穩(wěn)定的特征匹配算子,具有較好的魯棒性,降低特征點(diǎn)的描述符維度會(huì)導(dǎo)致特征點(diǎn)攜帶的圖像信息減少,減弱算法魯棒性。由于SIFT算子使用了高斯差分(difference of Gaussian,DoG)算子,因而具有較強(qiáng)的邊緣響應(yīng),即使使用高級(jí)描述符,匹配過(guò)程也可能導(dǎo)致錯(cuò)誤匹配。這些錯(cuò)誤匹配需要識(shí)別和刪除,隨機(jī)樣本一致性(RANSAC)算法是一種非常流行的魯棒擬合算法,可以用于消除虛假匹配。本研究結(jié)合肝臟CT圖像特點(diǎn),提出了一種基于特征點(diǎn)聚類區(qū)域分塊的SIFT快速匹配算法,在一定程度上降低了SIFT算法匹配階段迭代次數(shù)和計(jì)算時(shí)間,剔除錯(cuò)誤匹配,能夠準(zhǔn)確、快速、穩(wěn)定的實(shí)現(xiàn)動(dòng)靜脈期兩組肝臟CT圖像的配準(zhǔn),提高了圖像配準(zhǔn)精度。
CT多期相增強(qiáng)掃描是肝臟診斷的常見(jiàn)檢查方法,對(duì)比觀察相同位置肝臟動(dòng)脈和靜脈管道,水平軸狀切面是肝臟CT檢查中最常用的斷層面[7]。肝臟的動(dòng)脈、靜脈管道與肝實(shí)質(zhì)在CT掃描時(shí)在成像數(shù)值上接近,不容易區(qū)分,利用造影劑流經(jīng)動(dòng)、靜脈具有時(shí)間間隔的特點(diǎn),通過(guò)造影劑的顯影作用,在造影劑流經(jīng)肝動(dòng)脈和肝門靜脈的兩個(gè)不同相位期,可以獲得兩組清晰的臟內(nèi)血管影像序列,見(jiàn)圖1。
圖1 肝臟CT多相期掃描圖像(a) .肝動(dòng)脈期;(b).門靜脈期Fig.1 Multiphase CT scan of liver
通常一組CT掃描序列圖像數(shù)量在150幅以上,CT圖像連續(xù)以等間距沿脊柱從上往下掃描,兩個(gè)相期的掃描起始位置并不能確保從相同位置開始,患者兩次掃描間期的位移也會(huì)導(dǎo)致兩組圖像序列位置有錯(cuò)位。配準(zhǔn)即是以動(dòng)脈期有診斷意義的一幅圖像作為參考圖像,依次與靜脈期的序列圖像匹配,通過(guò)SIFT算法特征點(diǎn)匹配數(shù)量確定實(shí)際正確靜脈期對(duì)應(yīng)位置圖像的過(guò)程。原CT序列對(duì)應(yīng)編號(hào)的動(dòng)脈期與靜脈期圖像見(jiàn)圖2,使用SIFT算法配準(zhǔn)后動(dòng)脈期圖像與實(shí)際正確靜脈期圖像見(jiàn)圖3,從圖中可以看出兩個(gè)相期圖像實(shí)際對(duì)應(yīng)位置序號(hào)是有錯(cuò)位的。
圖2 CT不同相期序列對(duì)應(yīng)編號(hào)圖像(a).肝動(dòng)脈期(序號(hào)80);(b).門靜脈期(序號(hào)80)Fig.2 Corresponding number images of different CT phase sequences
圖3 SIFT算法配準(zhǔn)的對(duì)應(yīng)位置圖像(a).動(dòng)脈期(序號(hào)80);(b).門靜脈期(序號(hào)74)Fig.3 SIFT algorithm for registration of corresponding position images
David在2004年總結(jié)完善了SIFT算法,用于檢測(cè)和描述圖像的局部特征。SIFT算法的實(shí)質(zhì)是在多個(gè)尺度空間上查找局部數(shù)據(jù)的極值點(diǎn),使用位置、尺度、旋轉(zhuǎn)不變量等來(lái)描述特征點(diǎn),并用向量表示特征點(diǎn)的方向,這些特征點(diǎn)不會(huì)因?yàn)楣庹?、位移、旋轉(zhuǎn)、縮放、仿射而變化。該算法的主要流程可以概括為,特征點(diǎn)檢測(cè)和特征點(diǎn)匹配兩個(gè)主要步驟。特征點(diǎn)檢測(cè)過(guò)程模擬人的視覺(jué)系統(tǒng)構(gòu)建圖像尺度空間,在領(lǐng)域內(nèi)統(tǒng)計(jì)直方圖梯度并確定特征點(diǎn)方向,采用向量的形式描述特征點(diǎn)。
尺度空間L(x,y,)用卷積定義,由帶有尺度變化的高斯函數(shù)G(x,y,k)與原圖像I(x,y)做卷積運(yùn)算,k為尺度變化量,見(jiàn)式(1)。
L(x,y,σ)=G(x,y,kσ)*I(x,y)
(1)
尺度空間通過(guò)圖像的模糊程度來(lái)模擬人的視網(wǎng)膜上成像過(guò)程,尺度空間在實(shí)現(xiàn)時(shí)使用比高斯拉普拉斯算子更為高效的高斯差分算子(DoG)金字塔表示,特征點(diǎn)由DoG空間的局部極值點(diǎn)D(x,y,)組成,見(jiàn)式(2),在實(shí)際計(jì)算時(shí)使用高斯金字塔每組相鄰上下層圖像相減得到高斯差分圖像,再進(jìn)行極值檢測(cè)。極值點(diǎn)是離散空間的極值點(diǎn),通過(guò)擬合三維二次函數(shù)來(lái)精確確定特征點(diǎn)的位置和尺度,同時(shí)去除低對(duì)比度和邊緣的不穩(wěn)定點(diǎn)[8]。
D(x,y,σ)=(G(x,y,σ)-G(x,y,σ))*I(x,y)=L(x,y,kσ)-L(x,y,σ)
(2)
SIFT算法采用圖像梯度的方法求取局部結(jié)構(gòu)的穩(wěn)定方向,梯度模和方向見(jiàn)式(3),完成特征點(diǎn)的梯度計(jì)算后使用直方圖統(tǒng)計(jì)領(lǐng)域內(nèi)像素的梯度和方向,確定主方向,含有位置、尺度和方向的特征點(diǎn)即是圖像的SIFT特征點(diǎn)[9-10]。
m(x,y)=
(3)
Lowe建議SIFT描述子在特征點(diǎn)尺度空間4×4的窗口中計(jì)算8個(gè)方向的梯度信息,用128維特征向量表示,歸一化處理后特征向量具有旋轉(zhuǎn)不變性、尺度不變性和一定的光照不變性。
SIFT算法根據(jù)特征點(diǎn)描述子之間的歐式距離判斷描述子之間的相似性。將一幅圖的特征描述子與第二幅圖的特征描述子進(jìn)行比較,并檢測(cè)特征描述子間的最小歐式距離,如果最小距離小于特定閾值,則將對(duì)應(yīng)的特征點(diǎn)視為匹配。此外,還利用RANSAC算法接收匹配步驟輸出的對(duì)應(yīng)集,用以去除錯(cuò)誤匹配,一般來(lái)說(shuō),RANSAC是一個(gè)迭代過(guò)程。
SIFT算法應(yīng)用于兩幅指定圖像的配準(zhǔn)時(shí),計(jì)算量是可以接受的。當(dāng)圖像特征點(diǎn)的數(shù)量達(dá)到數(shù)千上萬(wàn),或者是圖像需要與多幅圖像進(jìn)行匹配比對(duì)時(shí),匹配過(guò)程的計(jì)算就構(gòu)成了沉重的處理負(fù)擔(dān),需要巨大的資源,錯(cuò)誤匹配率增加。從SIFT算法提出至今,針對(duì)算法的完善改進(jìn)主要集中在SIFT特征點(diǎn)提取和特征點(diǎn)匹配兩個(gè)方面。
在屏住呼吸,且保持平躺不動(dòng)的情況下,患者完成肝臟CT掃描?;颊呖梢越埔暈閯傮w,生成的橫斷面序列掃描圖像具有連續(xù)變換的特點(diǎn),動(dòng)脈期選定圖像與靜脈期序列目標(biāo)圖像依次匹配。在一對(duì)匹配圖像中,假設(shè)匹配圖像中檢出了n個(gè)SIFT特征點(diǎn){xi|i=1,2,3,……,n},在待匹配圖像中檢出了m個(gè)特征點(diǎn){yj|j=1,2,3, ……m},則對(duì)于匹配圖像中的任意一個(gè)128維的特征點(diǎn)xi={xi1,xi2,xi3,……xi128}來(lái)說(shuō),需要遍歷待匹配圖像的所有SIFT特征點(diǎn),通過(guò)式(4)計(jì)算找出最鄰點(diǎn)和次鄰點(diǎn),當(dāng)最鄰點(diǎn)距離小于次鄰點(diǎn)并且滿足一定的匹配閾值distRatio時(shí),可以認(rèn)為xi與yj是一對(duì)正確匹配對(duì)。
(4)
顯然計(jì)算過(guò)程耗費(fèi)了很大的時(shí)間,并且在匹配過(guò)程中檢測(cè)出的特征點(diǎn)越多越耗時(shí),錯(cuò)誤匹配的概率越高。
圖像上的像素坐標(biāo)系之間的關(guān)系可由圖像之間的變換模型確定,圖像之間的變換模型主要有剛體變換、仿射變換、彈性變換、流體變換、B樣條變換和投影變換等[11]。剛性變換P包括平移、旋轉(zhuǎn)這兩種幾何變換。對(duì)于近似剛體的胸腹腔橫斷面CT掃描圖像,可以使用剛體變換處理圖像后再配準(zhǔn)[12]。設(shè)原圖像上一點(diǎn)X=(x,y,z)經(jīng)過(guò)平移和旋轉(zhuǎn)變換后X′=(x′,y′,z′),CT圖像連續(xù)的沿脊柱從上到下掃描,可以將三維空間內(nèi)的旋轉(zhuǎn)簡(jiǎn)化為二維空間的變換,只考慮z軸方向的旋轉(zhuǎn),見(jiàn)式(5),其中θ為z軸旋轉(zhuǎn)角度,tx為圖像水平平移量,ty為垂直平移量 ,tz為縱向平移量。
(5)
剛體變換不改變圖像點(diǎn)與點(diǎn)之間距離具有相對(duì)性,兩幅圖像的匹配可以通過(guò)分塊來(lái)降低計(jì)算,減少錯(cuò)誤匹配率,提高匹配效率。SIFT算法特征點(diǎn)表示為:T=[im, des, loc],其中im為灰度圖像,des為128維向量,loc是位置、尺度和方向等信息,根據(jù)特征點(diǎn)位置距離對(duì)特征點(diǎn)位置進(jìn)行聚類區(qū)域分塊,改進(jìn)分塊算法如下:
(1)選取K個(gè)初始聚類質(zhì)心c1,c2,…,ck,計(jì)算特征點(diǎn)兩兩間坐標(biāo)距離,選取最小距離的兩個(gè)特征點(diǎn)中一個(gè)作為初始聚類質(zhì)心c1,選取距離c1最遠(yuǎn)的特征點(diǎn)作為第二個(gè)質(zhì)心點(diǎn)c2,選取距離c1和c2最遠(yuǎn)的點(diǎn)作為c3,依次計(jì)算c4,c5,…,ck。
(2)所有的SIFT特征點(diǎn)都計(jì)算與這k個(gè)聚類質(zhì)心點(diǎn)的距離,根據(jù)距離將特征點(diǎn)分配到距離最近質(zhì)心的一類。
(3)算出每個(gè)簇平均值,用這個(gè)點(diǎn)作為新的質(zhì)心,重復(fù)步驟(2)直至迭代穩(wěn)定,實(shí)驗(yàn)中迭代次數(shù)設(shè)置為3 000,完成區(qū)域分塊。
考慮到肝臟CT掃描圖像的結(jié)構(gòu)特點(diǎn),將區(qū)域劃分為3~4塊,見(jiàn)圖4。
圖4 區(qū)域分塊示意圖Fig.4 Area block diagram
肝臟CT圖像配準(zhǔn)的流程包括圖像獲取和選擇、預(yù)處理、區(qū)域分塊、區(qū)域圖像配準(zhǔn)、統(tǒng)計(jì)圖像特征點(diǎn)匹配數(shù)量、確定最優(yōu)配準(zhǔn)圖像等環(huán)節(jié),基于區(qū)域分塊的SIFT圖像配準(zhǔn)主要流程見(jiàn)圖5。分塊區(qū)域使用SIFT算法配準(zhǔn)后,統(tǒng)計(jì)各分塊的特征點(diǎn)匹配數(shù)量總和,序列圖像依次配準(zhǔn)后,依據(jù)圖像的匹配數(shù)量總和即可確定與動(dòng)脈期參考圖像對(duì)應(yīng)的正確靜脈期圖像,從而確定動(dòng)脈期圖像序列與靜脈期圖像序列的對(duì)應(yīng)關(guān)系。
圖5 肝臟CT圖像區(qū)域分塊配準(zhǔn)流程Fig.5 Regional block registration procedure for liver CT images
為驗(yàn)證提出的基于K-means聚類的區(qū)域分塊SIFT算法性能,選取有診斷意義的序號(hào)為80的動(dòng)脈期圖像,采用改進(jìn)算法將聚類分為4塊后,依次與靜脈期序列圖像組成155組進(jìn)行了相關(guān)測(cè)試,聚類分塊后其中一個(gè)塊區(qū)域特征點(diǎn)匹配見(jiàn)圖6。
圖6 聚類分塊后SIFT配準(zhǔn)Fig.6 SIFT registration after clustering and blocking
統(tǒng)計(jì)動(dòng)脈期序號(hào)80的圖像對(duì)應(yīng)靜脈期圖像序列前后20組圖像分塊匹配情況,數(shù)據(jù)見(jiàn)表1。
表1 改進(jìn)后SIFT算法與原算法匹配結(jié)果對(duì)比表Table 1 Comparison of matching results between improved SIFT algorithm and original algorithm
從表1可以看出SIFT算法和改進(jìn)的SIFT算法均能實(shí)現(xiàn)肝臟CT圖像的配準(zhǔn),確定正確的序列對(duì)應(yīng)關(guān)系。改進(jìn)算法在SIFT特征點(diǎn)檢測(cè)階段沒(méi)有做優(yōu)化,改進(jìn)的算法增加了特征點(diǎn)匹配過(guò)程中的聚類分塊迭代計(jì)算時(shí)間,由于分塊后特征點(diǎn)的比對(duì)范圍縮小在對(duì)應(yīng)塊內(nèi)進(jìn)行,總的特征點(diǎn)匹配比對(duì)時(shí)間有所減少,改進(jìn)后算法總耗時(shí)有所減少。特征點(diǎn)比對(duì)在對(duì)應(yīng)塊內(nèi)進(jìn)行,避免了跨塊區(qū)域間的錯(cuò)誤匹配,可以調(diào)整比對(duì)過(guò)程中特征向量空間余弦相似度的比值系數(shù),在保證SIFT算法魯棒性的前提下,匹配對(duì)數(shù)量明顯增多,錯(cuò)誤的匹配對(duì)也得到了有效剔除。
圖像配準(zhǔn)技術(shù)是當(dāng)前計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn),在臨床應(yīng)用中具有廣泛應(yīng)用,主要用于疾病診斷與分析、術(shù)前規(guī)劃、術(shù)中引導(dǎo)和術(shù)后療效量化評(píng)估[13]。本研究針對(duì)傳統(tǒng)SIFT算法的匹配階段計(jì)算量大容易出現(xiàn)誤匹配的問(wèn)題,利用聚類分塊方法對(duì)特征點(diǎn)比對(duì)進(jìn)行了優(yōu)化,剔除了錯(cuò)誤匹配對(duì),降低了肝臟CT圖像配準(zhǔn)中錯(cuò)誤匹配對(duì)對(duì)配準(zhǔn)結(jié)果的影響。