陳宗桂,董曉軍,曾令容,張英俊
(湖南醫(yī)藥學(xué)院,湖南 懷化 418000)
醫(yī)學(xué)影像設(shè)備在近十年中得到迅速的發(fā)展,并廣泛應(yīng)用于臨床診斷和治療中。由于不同影像設(shè)備存在多種成像模式如解剖成像和功能成像。CT成像設(shè)備采集的圖像為臨床醫(yī)師提供解剖形態(tài)信息,分辨率高。核醫(yī)學(xué)成像設(shè)備采集的圖像為臨床醫(yī)師提供功能代謝信息,但是圖像模糊,分辨率差[1-2]。通過圖像配準(zhǔn)技術(shù)把不同成像模式下表達(dá)的影像信息融合在一起,給醫(yī)生提供更豐富的臨床信息,以提高臨床疾病的診斷和治療水平。為此,許多人員對(duì)圖像配準(zhǔn)算法進(jìn)行大量研究,提出很多改進(jìn)的算法,如基于面積的算法[3-4]、聚類算法[5-6]、特征檢測(cè)算法、結(jié)合矩陣降維處理算法[7]、差分搜索算法[8]等。但是這些匹配算法都有一個(gè)共同點(diǎn):對(duì)尺度變化、旋轉(zhuǎn)變化、光照變化和仿射變換等方面的圖像配準(zhǔn)存在局限。Lowe等[9-10]在尺度空間理論的基礎(chǔ)上提出高效且穩(wěn)定的尺度不變特征變換算法,即SIFT(scale invariant feature transform)。SIFT算法是一種檢測(cè)和描述圖像局部特征的方法。它是通過尋找一種空間變換,使在不同時(shí)間點(diǎn)、不同視角或由不同探測(cè)器采集同一場(chǎng)景的兩幅圖像之間的對(duì)應(yīng)點(diǎn)達(dá)到空間位置的一致[11-13]。在醫(yī)學(xué)圖像處理中,當(dāng)一種成像設(shè)備采集的影像信息不能滿足臨床診斷需要時(shí),可以把不同模式下的成像融合在一起。例如,通過醫(yī)學(xué)圖像配準(zhǔn)把MR設(shè)備上采集的軟組織信息和PET設(shè)備采集組織的功能代謝信息融合在一起[14-15]。劉璐等采用尺度不變特征變換算法對(duì)所獲取的疵病圖像進(jìn)行配準(zhǔn)、拼接,得到完整的疵病圖像。研究結(jié)果表明SIFT算法可以高效完成圖像配準(zhǔn),具有較好的穩(wěn)定性,并且配準(zhǔn)精確度高[16]。該文在傳統(tǒng)SIFT算法的基礎(chǔ)上采用32維特征向量對(duì)關(guān)鍵點(diǎn)進(jìn)行描述,同時(shí)采用隨機(jī)抽樣一致算法剔除不穩(wěn)定的點(diǎn)。為了提高計(jì)算機(jī)處理的工作效率,通過雙向匹配保留有效的關(guān)鍵點(diǎn),這使得關(guān)鍵點(diǎn)數(shù)量可控,精度高。
在圖像配準(zhǔn)中,通過尺度變換特征不變算法提取兩幅圖像特征點(diǎn)。該算法是在不同的尺度空間中尋找極值點(diǎn),并通過高斯差分函數(shù)在極值點(diǎn)的二階泰勒展開式精確確定極值點(diǎn)的位置和尺度。然后以關(guān)鍵點(diǎn)為中心,在8×8的采樣窗內(nèi),計(jì)算每一個(gè)4×4的模塊內(nèi)8個(gè)方向的梯度累加值即特征描述符。最后,計(jì)算兩幅待配準(zhǔn)圖像上關(guān)鍵點(diǎn)的相關(guān)性。該算法提取關(guān)鍵點(diǎn)的過程如圖1所示。
圖1 SIFT算法流程
高斯金字塔的目的是在不同的尺度空間上查找極值點(diǎn)以得到尺度不變的特征點(diǎn)。多尺度空間是不同高斯核與原圖像濾波后產(chǎn)生,是尺度空間的一種表現(xiàn)形式。一個(gè)圖像的尺度空間L(x,y,σ)可表示為原圖像I(x,y)與一個(gè)可變尺度的2維高斯函數(shù)G(x,y,σ)的卷積運(yùn)算,如式(1):
L(x,y,σ)=G(x,y,σ)*I(x,y)
(1)
(2)
式中,G(x,y,σ)是尺度可變高斯函數(shù),(x,y)是像素點(diǎn)的位置坐標(biāo)。σ大小決定圖像的平滑程度,它是構(gòu)建不同尺度空間的關(guān)鍵。為了得到不隨尺度變化的特征點(diǎn),需要選擇合適的尺度因子平滑進(jìn)而建立尺度空間。
高斯差分金字塔的構(gòu)造如圖2所示。
圖2 高斯金字塔圖像及高斯差分圖像的構(gòu)建
通過不同的高斯函數(shù)與原圖像進(jìn)行高斯卷積,得到高斯金字塔圖像的第一階。第二階圖像是對(duì)第一階圖像降采樣得到。以此類推,后面每一階圖像都是由先前那一階圖像降采樣得到。為了有效檢測(cè)不同尺度空間上穩(wěn)定的極值點(diǎn),該算法使用了高斯差分(difference of Gaussian,DoG)尺度空間即相鄰兩尺度空間函數(shù)之差。根據(jù)式(3)將同一階相鄰圖像兩兩相減得到高斯差分函數(shù)。
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)
=L(x,y,kσ)-L(x,y,σ)
(3)
式中,G(x,y,σ)為差分尺度空間函數(shù),k為尺度因子的常量系數(shù)。
選某一尺度空間上的一個(gè)像素點(diǎn),將該點(diǎn)與同一圖片上相鄰8個(gè)像素點(diǎn)和相鄰尺度空間上18個(gè)相鄰點(diǎn)進(jìn)行比較。當(dāng)其大于(或者小于)所有相鄰點(diǎn)時(shí),該點(diǎn)就確定為關(guān)鍵點(diǎn)。如圖3所示,以黑點(diǎn)為檢測(cè)點(diǎn),將它和周圍的8個(gè)灰色的點(diǎn)還有上一層的9個(gè)點(diǎn)與下一層的9個(gè)點(diǎn),共26個(gè)像素點(diǎn)進(jìn)行比較。由于檢測(cè)到的關(guān)鍵點(diǎn)是離散空間上不連續(xù)的點(diǎn),因此采用高斯差分函數(shù)在極值點(diǎn)X0=(x0,y0,σ0)的二階泰勒展開式進(jìn)行精確定位,求得極值點(diǎn)和特征點(diǎn)的偏移量,如式(4):
(4)
其中,X=(x,y,σ)T表示極值點(diǎn)和特征點(diǎn)之間的位置和尺度偏移量。要精確定位關(guān)鍵點(diǎn)的位置,必須對(duì)式(4)求一階偏導(dǎo)并讓方程等于零可得:
(5)
(6)
圖3 不同尺度空間上的特征點(diǎn)檢測(cè)
為了使描述符具有旋轉(zhuǎn)不變性,在以關(guān)鍵點(diǎn)為中心、3×1.5σ為半徑的區(qū)域計(jì)算每一個(gè)關(guān)鍵點(diǎn)的方向向量θ和梯度幅值m。直方圖以45°為間隔依次統(tǒng)計(jì)0°~360°內(nèi)每一個(gè)關(guān)鍵點(diǎn)的梯度幅值分布,將統(tǒng)計(jì)結(jié)果最大值代表的方向作為關(guān)鍵點(diǎn)的主方向。
m(x,y)={[L(x+1,y)-L(x-1,y)]2+[L(x,
y+1)-L(x,y-1)]2}1/2
(7)
(8)
為了增強(qiáng)特征描述算子的魯棒性,需要保留關(guān)鍵點(diǎn)的輔方向即超過關(guān)鍵點(diǎn)梯度方向最大值80%的方向。一個(gè)關(guān)鍵點(diǎn)可以有多個(gè)輔方向。
通過在極值點(diǎn)位置的二階泰勒展開式精確確定關(guān)鍵點(diǎn)位置和尺度。為了提高配準(zhǔn)的準(zhǔn)確性,還需要了解關(guān)鍵點(diǎn)鄰域像素對(duì)關(guān)鍵點(diǎn)的影響。因此,以關(guān)鍵點(diǎn)的主方向?yàn)榛鶞?zhǔn)方向,將整幅圖像旋轉(zhuǎn)到關(guān)鍵點(diǎn)的主方向上,以確保所得特征描述符的旋轉(zhuǎn)不變性。然后,以關(guān)鍵點(diǎn)為中心取8×8的窗口,在4×4的小窗口內(nèi)計(jì)算8個(gè)方向的梯度直方圖,每個(gè)梯度信息就是一個(gè)描述符,如圖4所示。采集窗口的中央表示采樣的關(guān)鍵點(diǎn),每個(gè)小格表示同一尺度內(nèi)關(guān)鍵點(diǎn)鄰域像素。其中,每一個(gè)小格內(nèi)的箭頭方向表示該鄰域像素的梯度方向信息。最后將8×8窗口按4×4的窗口劃分得到4個(gè)模塊,并計(jì)算每個(gè)模塊內(nèi)8個(gè)梯度方向的直方圖累加,如圖4所示。每個(gè)模塊對(duì)應(yīng)8個(gè)方向的梯度信息即形成8維特征描述符。一個(gè)關(guān)鍵點(diǎn)包含4個(gè)模塊,則每個(gè)關(guān)鍵點(diǎn)就對(duì)應(yīng)32維特征描述符。這種結(jié)合鄰域像素的方向信息對(duì)關(guān)鍵點(diǎn)方向信息的影響,提高了算法的抗噪能力和配準(zhǔn)的準(zhǔn)確性。對(duì)于特征匹配中需要定位的誤差,也提供了一定的容錯(cuò)能力。此外,為了減少光照對(duì)配準(zhǔn)的影響,對(duì)所有的特征向量進(jìn)行歸一化。
圖4 圖像梯度及特征點(diǎn)描述
傳統(tǒng)SIFT算法大都采用歐氏距離作為兩個(gè)關(guān)鍵點(diǎn)的相似性度量進(jìn)行匹配,并且采用遍歷搜索確定關(guān)鍵點(diǎn)位置,計(jì)算量較大。為了提高檢測(cè)關(guān)鍵點(diǎn)的效率和匹準(zhǔn)精度,該文采用高維向量的最近鄰搜索算法(fast approximate nearest neighbor search library,F(xiàn)LANN)。該算法檢測(cè)效率高,計(jì)算量小。通過FLANN算法檢測(cè)到關(guān)鍵點(diǎn)后,采用式(9)計(jì)算兩幅待配準(zhǔn)圖像上關(guān)鍵點(diǎn)的相似性。若圖像I1的關(guān)鍵點(diǎn)描述符數(shù)為M,待配準(zhǔn)圖像I2的關(guān)鍵點(diǎn)描述符數(shù)為N,根據(jù)式(9)度量兩個(gè)關(guān)鍵點(diǎn)的相似性。首先計(jì)算圖像I1上關(guān)鍵點(diǎn)描述符與圖像I2上關(guān)鍵點(diǎn)描述符的乘積作為分子。再次,計(jì)算圖像I1上關(guān)鍵點(diǎn)描述符平方和的平方根與圖像I2上關(guān)鍵點(diǎn)描述符平方和的平方根,將兩者的乘積作為分母。若二者比值小于閾值(取0.95~0.98),則兩個(gè)關(guān)鍵點(diǎn)配準(zhǔn)成功;否則配準(zhǔn)失敗,如式(9)。理論上兩幅圖上的場(chǎng)景完全相同時(shí),對(duì)應(yīng)的關(guān)鍵點(diǎn)一致,相關(guān)性R=1。
R(i,j)=
(9)
式中,S和T分別是兩幅圖像中的關(guān)鍵點(diǎn)描述符,R是相關(guān)系數(shù)。本研究中的匹配采用的是距離比值法,可能導(dǎo)致出現(xiàn)一對(duì)多的匹配結(jié)果。因而,該文利用雙向匹配,避免出現(xiàn)一對(duì)多的匹配結(jié)果和消除錯(cuò)誤的關(guān)鍵點(diǎn)。其方法為:分別從圖像I1和待配準(zhǔn)圖像I2上進(jìn)行FLANN搜索關(guān)鍵點(diǎn)匹配。然后再從待配準(zhǔn)圖像I2到圖像I1進(jìn)行FLANN搜索匹配。同時(shí)計(jì)算兩次配準(zhǔn)關(guān)鍵點(diǎn)的坐標(biāo)和。當(dāng)兩次搜索匹配結(jié)果的坐標(biāo)和一致,則把兩點(diǎn)當(dāng)作匹配點(diǎn),否則剔除,由此得到一一對(duì)應(yīng)的關(guān)鍵點(diǎn)匹配。
本研究通過積分對(duì)圖像濾波,分別用不同的積分矩形區(qū)3×3、5×5、7×7、9×9、11×11表示同一階中的不同尺度圖像。然后通過降采樣得到不同階的圖像,同一階圖像兩兩相減得到高斯差分圖像。
傳統(tǒng)的SIFT算法每一個(gè)關(guān)鍵點(diǎn)采用128個(gè)描述符,即兩幅圖像就需要計(jì)算128×M維向量和128×N維向量的乘積,并對(duì)該向量的比值排序。計(jì)算耗時(shí),算法效率低。大部分的時(shí)間都用在計(jì)算兩幅圖像上關(guān)鍵點(diǎn)最鄰近歐氏距離的比值。為了改善這一狀況,該文以關(guān)鍵點(diǎn)為中心取8×8的窗口,在4×4的小窗口內(nèi)計(jì)算8個(gè)方向的梯度直方圖,這樣一個(gè)關(guān)鍵點(diǎn)就可以用32維的描述符表示。最后對(duì)每一個(gè)關(guān)鍵點(diǎn)的梯度向量信息進(jìn)行歸一化,以保證光照不變性。
傳統(tǒng)SIFT算法在圖像配準(zhǔn)中提取大量的局部關(guān)鍵點(diǎn),這些關(guān)鍵點(diǎn)可能只有少量具有實(shí)際意義。而多余的關(guān)鍵點(diǎn)不能反映圖像的結(jié)構(gòu)特征,導(dǎo)致數(shù)據(jù)冗余,容易產(chǎn)生誤匹配。隨機(jī)抽樣一致(random sample consensus,RANSAC)算法可以剔除不穩(wěn)定的點(diǎn),提高配準(zhǔn)的準(zhǔn)確性。RANSAC算法計(jì)算過程穩(wěn)定,對(duì)不滿足要求的關(guān)鍵點(diǎn)進(jìn)行有序性篩除,剔除錯(cuò)誤關(guān)鍵點(diǎn)能力較好。但RANSAC算法對(duì)參數(shù)估計(jì)是通過不斷進(jìn)行迭代和測(cè)試完成的,且初始模型參數(shù)是對(duì)隨機(jī)抽取的數(shù)據(jù)計(jì)算得到,不確定性比較大;若隨機(jī)抽取的初始數(shù)據(jù)誤差較大,則算法有效性被嚴(yán)重影響。該文采用改進(jìn)的隨機(jī)抽樣一致性算法對(duì)所有的關(guān)鍵點(diǎn)進(jìn)行測(cè)試,并把其中不滿足條件的關(guān)鍵點(diǎn)對(duì)剔除。同時(shí)選擇優(yōu)質(zhì)的關(guān)鍵點(diǎn)對(duì)作為數(shù)據(jù)集合代表,以減小模型參數(shù)不穩(wěn)定性和誤匹配,提高圖像配準(zhǔn)的準(zhǔn)確性。這樣不僅可以減少迭代計(jì)算的次數(shù),而且計(jì)算得到的參數(shù)更準(zhǔn)確。
為了提高配準(zhǔn)精確性,在第一次關(guān)鍵點(diǎn)配準(zhǔn)成功之后再增加一次配準(zhǔn)。第一次配準(zhǔn)結(jié)束后計(jì)算兩個(gè)關(guān)鍵點(diǎn)行列方向的坐標(biāo)和,然后交換兩幅圖像的順序。第二次匹配時(shí),再計(jì)算兩個(gè)關(guān)鍵點(diǎn)行列方向的坐標(biāo)和。當(dāng)兩次匹配得到兩個(gè)關(guān)鍵點(diǎn)的坐標(biāo)之和相等時(shí),就把這兩個(gè)點(diǎn)保留下來。研究表明經(jīng)過兩次匹配可以刪除大量錯(cuò)誤關(guān)鍵點(diǎn)和較大地提高配準(zhǔn)的準(zhǔn)確性。
采用MR設(shè)備采集顱腦圖像。通過MATLAB軟件編寫的程序?qū)崿F(xiàn)對(duì)2幅圖像配準(zhǔn),圖像大小均為1 280×1 280。為了驗(yàn)證改進(jìn)算法的有效性,通過傳統(tǒng)的SIFT算法和改進(jìn)的算法提取不同場(chǎng)景MR圖像關(guān)鍵點(diǎn),比較兩種算法的運(yùn)算時(shí)間和匹配率,如圖5所示。左邊是采用改進(jìn)SIFT算法對(duì)兩幅圖像進(jìn)行配準(zhǔn)。改進(jìn)后SIFT算法提取關(guān)鍵點(diǎn)數(shù)量減少,兩幅圖像特征點(diǎn)的配準(zhǔn)時(shí)間也顯著減少。右邊是傳統(tǒng)SIFT算法對(duì)兩幅圖像進(jìn)行配準(zhǔn)。傳統(tǒng)的SIFT算法提取的關(guān)鍵點(diǎn)數(shù)量多且大部分時(shí)間都用在計(jì)算二者的擬合度。通過改進(jìn)的SIFT算法對(duì)兩組不同角度和不同灰階的MR圖像進(jìn)行配準(zhǔn),效果良好,誤匹配的點(diǎn)數(shù)為0,如圖6所示。此外,為了驗(yàn)證改進(jìn)后SIFT算法的魯棒性,給原圖像添加高斯噪聲并通過本算法進(jìn)行配準(zhǔn),如圖7所示。從圖7可知從兩幅圖像上提取的特征點(diǎn)完全一致,誤匹配關(guān)鍵點(diǎn)數(shù)為0。改進(jìn)后的SIFT算法魯棒性較好。
(a)傳統(tǒng)SIFT算法 (b)改進(jìn)SIFT算法
(a)不同角度的圖像 (b)不同灰階的圖像
圖7 原圖像與添加噪聲圖像的匹準(zhǔn)結(jié)果
為了測(cè)試算法運(yùn)行速度,從不同步驟比較改進(jìn)算法與傳統(tǒng)SIFT算法所需的運(yùn)行時(shí)間,結(jié)果見表1。
表1 比較兩種算法中每一個(gè)步驟運(yùn)行所需時(shí)間 s
針對(duì)圖像發(fā)生旋轉(zhuǎn)、幾何變化以及光照變化的情況進(jìn)行實(shí)驗(yàn)。比較不同情況下兩種算法對(duì)圖像的配準(zhǔn)率影響,如表2所示。
表2 比較兩種算法的匹準(zhǔn)效率 %
由表1和表2數(shù)據(jù)可知,雖然改進(jìn)算法和傳統(tǒng)SIFT算法得到的結(jié)果相近,但是改進(jìn)的SIFT算法對(duì)圖像關(guān)鍵點(diǎn)提取和配準(zhǔn)所用時(shí)間明顯小于前者,這大大提高了算法的實(shí)用性。
改進(jìn)的SIFT算法采用積分濾波的方式構(gòu)造不同尺度的圖像。實(shí)驗(yàn)結(jié)果證明,改進(jìn)的算法在保持原算法匹配精度的基礎(chǔ)上,采用RANSAC算法剔除不穩(wěn)定的關(guān)鍵點(diǎn),提高了改進(jìn)SIFT算法效率。采用雙向配準(zhǔn),保留有效的關(guān)鍵點(diǎn),縮短配準(zhǔn)的時(shí)間,克服了傳統(tǒng)SIFT算法計(jì)算過程復(fù)雜度高的問題且魯棒性較好。但是,該算法提取待匹配圖像上的關(guān)鍵點(diǎn)和度量其相似性的過程復(fù)雜、處理速度慢。因此,下一步工作是改進(jìn)關(guān)鍵點(diǎn)的相似性度量方法和關(guān)鍵點(diǎn)的提取方法進(jìn)而縮短工作時(shí)間。