陳宗桂,董曉軍,曾令容,張英俊
(湖南醫藥學院,湖南 懷化 418000)
醫學影像設備在近十年中得到迅速的發展,并廣泛應用于臨床診斷和治療中。由于不同影像設備存在多種成像模式如解剖成像和功能成像。CT成像設備采集的圖像為臨床醫師提供解剖形態信息,分辨率高。核醫學成像設備采集的圖像為臨床醫師提供功能代謝信息,但是圖像模糊,分辨率差[1-2]。通過圖像配準技術把不同成像模式下表達的影像信息融合在一起,給醫生提供更豐富的臨床信息,以提高臨床疾病的診斷和治療水平。為此,許多人員對圖像配準算法進行大量研究,提出很多改進的算法,如基于面積的算法[3-4]、聚類算法[5-6]、特征檢測算法、結合矩陣降維處理算法[7]、差分搜索算法[8]等。但是這些匹配算法都有一個共同點:對尺度變化、旋轉變化、光照變化和仿射變換等方面的圖像配準存在局限。Lowe等[9-10]在尺度空間理論的基礎上提出高效且穩定的尺度不變特征變換算法,即SIFT(scale invariant feature transform)。SIFT算法是一種檢測和描述圖像局部特征的方法。它是通過尋找一種空間變換,使在不同時間點、不同視角或由不同探測器采集同一場景的兩幅圖像之間的對應點達到空間位置的一致[11-13]。在醫學圖像處理中,當一種成像設備采集的影像信息不能滿足臨床診斷需要時,可以把不同模式下的成像融合在一起。例如,通過醫學圖像配準把MR設備上采集的軟組織信息和PET設備采集組織的功能代謝信息融合在一起[14-15]。劉璐等采用尺度不變特征變換算法對所獲取的疵病圖像進行配準、拼接,得到完整的疵病圖像。研究結果表明SIFT算法可以高效完成圖像配準,具有較好的穩定性,并且配準精確度高[16]。該文在傳統SIFT算法的基礎上采用32維特征向量對關鍵點進行描述,同時采用隨機抽樣一致算法剔除不穩定的點。為了提高計算機處理的工作效率,通過雙向匹配保留有效的關鍵點,這使得關鍵點數量可控,精度高。
在圖像配準中,通過尺度變換特征不變算法提取兩幅圖像特征點。該算法是在不同的尺度空間中尋找極值點,并通過高斯差分函數在極值點的二階泰勒展開式精確確定極值點的位置和尺度。然后以關鍵點為中心,在8×8的采樣窗內,計算每一個4×4的模塊內8個方向的梯度累加值即特征描述符。最后,計算兩幅待配準圖像上關鍵點的相關性。該算法提取關鍵點的過程如圖1所示。

圖1 SIFT算法流程
高斯金字塔的目的是在不同的尺度空間上查找極值點以得到尺度不變的特征點。多尺度空間是不同高斯核與原圖像濾波后產生,是尺度空間的一種表現形式。一個圖像的尺度空間L(x,y,σ)可表示為原圖像I(x,y)與一個可變尺度的2維高斯函數G(x,y,σ)的卷積運算,如式(1):
L(x,y,σ)=G(x,y,σ)*I(x,y)
(1)
(2)
式中,G(x,y,σ)是尺度可變高斯函數,(x,y)是像素點的位置坐標。σ大小決定圖像的平滑程度,它是構建不同尺度空間的關鍵。為了得到不隨尺度變化的特征點,需要選擇合適的尺度因子平滑進而建立尺度空間。
高斯差分金字塔的構造如圖2所示。

圖2 高斯金字塔圖像及高斯差分圖像的構建
通過不同的高斯函數與原圖像進行高斯卷積,得到高斯金字塔圖像的第一階。第二階圖像是對第一階圖像降采樣得到。以此類推,后面每一階圖像都是由先前那一階圖像降采樣得到。為了有效檢測不同尺度空間上穩定的極值點,該算法使用了高斯差分(difference of Gaussian,DoG)尺度空間即相鄰兩尺度空間函數之差。根據式(3)將同一階相鄰圖像兩兩相減得到高斯差分函數。
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)
=L(x,y,kσ)-L(x,y,σ)
(3)
式中,G(x,y,σ)為差分尺度空間函數,k為尺度因子的常量系數。
選某一尺度空間上的一個像素點,將該點與同一圖片上相鄰8個像素點和相鄰尺度空間上18個相鄰點進行比較。當其大于(或者小于)所有相鄰點時,該點就確定為關鍵點。如圖3所示,以黑點為檢測點,將它和周圍的8個灰色的點還有上一層的9個點與下一層的9個點,共26個像素點進行比較。由于檢測到的關鍵點是離散空間上不連續的點,因此采用高斯差分函數在極值點X0=(x0,y0,σ0)的二階泰勒展開式進行精確定位,求得極值點和特征點的偏移量,如式(4):
(4)
其中,X=(x,y,σ)T表示極值點和特征點之間的位置和尺度偏移量。要精確定位關鍵點的位置,必須對式(4)求一階偏導并讓方程等于零可得:
(5)

(6)


圖3 不同尺度空間上的特征點檢測
為了使描述符具有旋轉不變性,在以關鍵點為中心、3×1.5σ為半徑的區域計算每一個關鍵點的方向向量θ和梯度幅值m。直方圖以45°為間隔依次統計0°~360°內每一個關鍵點的梯度幅值分布,將統計結果最大值代表的方向作為關鍵點的主方向。
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)
為了增強特征描述算子的魯棒性,需要保留關鍵點的輔方向即超過關鍵點梯度方向最大值80%的方向。一個關鍵點可以有多個輔方向。
通過在極值點位置的二階泰勒展開式精確確定關鍵點位置和尺度。為了提高配準的準確性,還需要了解關鍵點鄰域像素對關鍵點的影響。因此,以關鍵點的主方向為基準方向,將整幅圖像旋轉到關鍵點的主方向上,以確保所得特征描述符的旋轉不變性。然后,以關鍵點為中心取8×8的窗口,在4×4的小窗口內計算8個方向的梯度直方圖,每個梯度信息就是一個描述符,如圖4所示。采集窗口的中央表示采樣的關鍵點,每個小格表示同一尺度內關鍵點鄰域像素。其中,每一個小格內的箭頭方向表示該鄰域像素的梯度方向信息。最后將8×8窗口按4×4的窗口劃分得到4個模塊,并計算每個模塊內8個梯度方向的直方圖累加,如圖4所示。每個模塊對應8個方向的梯度信息即形成8維特征描述符。一個關鍵點包含4個模塊,則每個關鍵點就對應32維特征描述符。這種結合鄰域像素的方向信息對關鍵點方向信息的影響,提高了算法的抗噪能力和配準的準確性。對于特征匹配中需要定位的誤差,也提供了一定的容錯能力。此外,為了減少光照對配準的影響,對所有的特征向量進行歸一化。

圖4 圖像梯度及特征點描述
傳統SIFT算法大都采用歐氏距離作為兩個關鍵點的相似性度量進行匹配,并且采用遍歷搜索確定關鍵點位置,計算量較大。為了提高檢測關鍵點的效率和匹準精度,該文采用高維向量的最近鄰搜索算法(fast approximate nearest neighbor search library,FLANN)。該算法檢測效率高,計算量小。通過FLANN算法檢測到關鍵點后,采用式(9)計算兩幅待配準圖像上關鍵點的相似性。若圖像I1的關鍵點描述符數為M,待配準圖像I2的關鍵點描述符數為N,根據式(9)度量兩個關鍵點的相似性。首先計算圖像I1上關鍵點描述符與圖像I2上關鍵點描述符的乘積作為分子。再次,計算圖像I1上關鍵點描述符平方和的平方根與圖像I2上關鍵點描述符平方和的平方根,將兩者的乘積作為分母。若二者比值小于閾值(取0.95~0.98),則兩個關鍵點配準成功;否則配準失敗,如式(9)。理論上兩幅圖上的場景完全相同時,對應的關鍵點一致,相關性R=1。
R(i,j)=
(9)
式中,S和T分別是兩幅圖像中的關鍵點描述符,R是相關系數。本研究中的匹配采用的是距離比值法,可能導致出現一對多的匹配結果。因而,該文利用雙向匹配,避免出現一對多的匹配結果和消除錯誤的關鍵點。其方法為:分別從圖像I1和待配準圖像I2上進行FLANN搜索關鍵點匹配。然后再從待配準圖像I2到圖像I1進行FLANN搜索匹配。同時計算兩次配準關鍵點的坐標和。當兩次搜索匹配結果的坐標和一致,則把兩點當作匹配點,否則剔除,由此得到一一對應的關鍵點匹配。
本研究通過積分對圖像濾波,分別用不同的積分矩形區3×3、5×5、7×7、9×9、11×11表示同一階中的不同尺度圖像。然后通過降采樣得到不同階的圖像,同一階圖像兩兩相減得到高斯差分圖像。
傳統的SIFT算法每一個關鍵點采用128個描述符,即兩幅圖像就需要計算128×M維向量和128×N維向量的乘積,并對該向量的比值排序。計算耗時,算法效率低。大部分的時間都用在計算兩幅圖像上關鍵點最鄰近歐氏距離的比值。為了改善這一狀況,該文以關鍵點為中心取8×8的窗口,在4×4的小窗口內計算8個方向的梯度直方圖,這樣一個關鍵點就可以用32維的描述符表示。最后對每一個關鍵點的梯度向量信息進行歸一化,以保證光照不變性。
傳統SIFT算法在圖像配準中提取大量的局部關鍵點,這些關鍵點可能只有少量具有實際意義。而多余的關鍵點不能反映圖像的結構特征,導致數據冗余,容易產生誤匹配。隨機抽樣一致(random sample consensus,RANSAC)算法可以剔除不穩定的點,提高配準的準確性。RANSAC算法計算過程穩定,對不滿足要求的關鍵點進行有序性篩除,剔除錯誤關鍵點能力較好。但RANSAC算法對參數估計是通過不斷進行迭代和測試完成的,且初始模型參數是對隨機抽取的數據計算得到,不確定性比較大;若隨機抽取的初始數據誤差較大,則算法有效性被嚴重影響。該文采用改進的隨機抽樣一致性算法對所有的關鍵點進行測試,并把其中不滿足條件的關鍵點對剔除。同時選擇優質的關鍵點對作為數據集合代表,以減小模型參數不穩定性和誤匹配,提高圖像配準的準確性。這樣不僅可以減少迭代計算的次數,而且計算得到的參數更準確。
為了提高配準精確性,在第一次關鍵點配準成功之后再增加一次配準。第一次配準結束后計算兩個關鍵點行列方向的坐標和,然后交換兩幅圖像的順序。第二次匹配時,再計算兩個關鍵點行列方向的坐標和。當兩次匹配得到兩個關鍵點的坐標之和相等時,就把這兩個點保留下來。研究表明經過兩次匹配可以刪除大量錯誤關鍵點和較大地提高配準的準確性。
采用MR設備采集顱腦圖像。通過MATLAB軟件編寫的程序實現對2幅圖像配準,圖像大小均為1 280×1 280。為了驗證改進算法的有效性,通過傳統的SIFT算法和改進的算法提取不同場景MR圖像關鍵點,比較兩種算法的運算時間和匹配率,如圖5所示。左邊是采用改進SIFT算法對兩幅圖像進行配準。改進后SIFT算法提取關鍵點數量減少,兩幅圖像特征點的配準時間也顯著減少。右邊是傳統SIFT算法對兩幅圖像進行配準。傳統的SIFT算法提取的關鍵點數量多且大部分時間都用在計算二者的擬合度。通過改進的SIFT算法對兩組不同角度和不同灰階的MR圖像進行配準,效果良好,誤匹配的點數為0,如圖6所示。此外,為了驗證改進后SIFT算法的魯棒性,給原圖像添加高斯噪聲并通過本算法進行配準,如圖7所示。從圖7可知從兩幅圖像上提取的特征點完全一致,誤匹配關鍵點數為0。改進后的SIFT算法魯棒性較好。

(a)傳統SIFT算法 (b)改進SIFT算法

(a)不同角度的圖像 (b)不同灰階的圖像

圖7 原圖像與添加噪聲圖像的匹準結果
為了測試算法運行速度,從不同步驟比較改進算法與傳統SIFT算法所需的運行時間,結果見表1。

表1 比較兩種算法中每一個步驟運行所需時間 s
針對圖像發生旋轉、幾何變化以及光照變化的情況進行實驗。比較不同情況下兩種算法對圖像的配準率影響,如表2所示。

表2 比較兩種算法的匹準效率 %
由表1和表2數據可知,雖然改進算法和傳統SIFT算法得到的結果相近,但是改進的SIFT算法對圖像關鍵點提取和配準所用時間明顯小于前者,這大大提高了算法的實用性。
改進的SIFT算法采用積分濾波的方式構造不同尺度的圖像。實驗結果證明,改進的算法在保持原算法匹配精度的基礎上,采用RANSAC算法剔除不穩定的關鍵點,提高了改進SIFT算法效率。采用雙向配準,保留有效的關鍵點,縮短配準的時間,克服了傳統SIFT算法計算過程復雜度高的問題且魯棒性較好。但是,該算法提取待匹配圖像上的關鍵點和度量其相似性的過程復雜、處理速度慢。因此,下一步工作是改進關鍵點的相似性度量方法和關鍵點的提取方法進而縮短工作時間。