程國建+趙媛+強新建+魏新善
摘要:利用SIFT(Scale-invariant feature transform尺度不變特征轉(zhuǎn)換)和SURF(speed up robust features加速健壯特征)算法對巖石圖像進行匹配研究。通過對選取的不同尺寸、不同分辨率的巖石圖片進行對比試驗,觀察兩種算法中的匹配點對數(shù)及匹配時間的變化,發(fā)現(xiàn)SURF算法在巖石圖像匹配中更具有穩(wěn)定性,這對進一步探討和改進巖石圖像匹配提供了研究基礎(chǔ)。
關(guān)鍵詞:SIFT;SURF;巖石圖像;圖像匹配
中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)06-0202-02
1 概述
巖石是地質(zhì)作用的產(chǎn)物,又是地質(zhì)作用的對象,因此巖石是研究各種地質(zhì)構(gòu)造和地貌的物質(zhì)基礎(chǔ);它記錄了過去發(fā)生的地質(zhì)事件,對研究地質(zhì)演變有重大的意義;同時,巖石圖像是目前礦物巖石類研究的主要來源,它對實現(xiàn)大幅度提高原油采收率、油氣藏的宏觀性質(zhì)如滲透率等的研究很有意義,同時也有利于巖石的深度信息挖掘,隨著巖石開采技術(shù)的進步和顯微成像技術(shù)的不斷發(fā)展,可利用的巖石鑄體薄片圖像也越來越多[1]。
基于特征點的配準(zhǔn)算法是基于局部特征的巖石鑄體薄片圖像配準(zhǔn)的基礎(chǔ),特征點的提取和描述又是進行圖像匹配的基礎(chǔ)和關(guān)鍵[2]。巖石鑄體薄片圖像的自動配準(zhǔn)目前研究較少,尚未得到較好的解決。SIFT算法是由 David Lowe 于 1999 年提出的用于興趣點的檢測和描述的算法,該算法具有旋轉(zhuǎn)、尺度縮放、亮度變化的不變性,同時對視角變化、仿射變換、噪聲也保持一定程度的穩(wěn)定性,但該算法復(fù)雜度較高,且受光照強度的變化影響較大。SURF算法是對SIFT算法的一種改進,繼承了SIFT算法的大部分優(yōu)點,不同之處在于它用Hessian矩陣代替高斯差分尺度空間檢測特征值,具有比SIFT算法更快的速度,可以達到實時性要求。
2 特征檢測與匹配
2.1 SIFT算法
SIFT算子是以尺度空間的構(gòu)造為基礎(chǔ)的局部特征描述子,在構(gòu)建好的尺度空間的基礎(chǔ)上搜索尺度空間中的極值點(特征點),然后確定極值點的尺度信息以及位置,再確定極值點的方向(其鄰域梯度的主方向),最終得到具有魯棒性的128維的特征描述子。整個SIFT算法可以分為以下幾個部分:
2.1.1 尺度空間生成/特征點檢測
首先通過尺度空間極值檢測初步確定關(guān)鍵點位置和所在尺度,然后定位特征點位置??煞譃橐韵氯齻€步驟:
建立高斯金字塔:使用高斯濾波函數(shù)對圖像進行高斯濾波。圖像在尺度空間下的表示可由圖像與高斯核卷積得到高斯圖像:
根據(jù)尺度函數(shù)建立高斯金字塔,金字塔第一階的第一層為原圖像。
建立DOG高斯金字塔:利用高斯金字塔同一階上兩相鄰層的尺度空間函數(shù)之差得到DOG高斯差分金字塔的一層,如圖1(右)所示。表達式定義為:
極值點檢測:將中間檢測點與上下層及同層的共26個像素點進行對比,如果該點的值最大或者最小,則將該點作為圖像在該尺度下的一個候選關(guān)鍵點。
2.1.2 精確定位關(guān)鍵點
計算所求極值點相對于關(guān)鍵點的偏移量,若任意一個偏移量超過0.5,則說明擬合關(guān)鍵點應(yīng)該在原關(guān)鍵點的相鄰位置,在該DoG層不斷迭代擬合,確定新關(guān)鍵點位置,直至偏移量都小于0.5(即穩(wěn)定的關(guān)鍵點)為止。極值檢測得到的所有候選關(guān)鍵點,必須通過兩步檢驗才能確定關(guān)鍵點:一是它必須與周圍的像素有明顯的差異,即低對比度的點不要;二是不能有邊緣點。
2.1.3 特征描述
確定特征點主方向:計算特征點的鄰域梯度,使用直方圖將0°~360°分為36個柱,每10°一個柱,柱高為對應(yīng)梯度方向的累加值[3]。使用梯度直方圖的峰值代表該特征點處鄰域梯度的主方向,即作為該特征點的方向。當(dāng)有另一個相當(dāng)于主峰值80%能量的峰值時,則將這個方向認(rèn)為是該特征點的輔方向。
生成SIFT特征向量:為了使描述符具有旋轉(zhuǎn)不變性,需要利用圖像的局部特征為每一個關(guān)鍵點分配一個方向。以特征點為中心取8*8的窗口,中央黑點為當(dāng)前特征點的位置,每個小格代表特征點鄰域所在尺度空間的一個像素,箭頭方向代表該像素的梯度方向,箭頭長度代表梯度模值。在每個4*4的圖像小塊上計算8個方向的梯度方向直方圖,繪制每個梯度方向的累加值,形成一個種子點。圖像中一個特征點由4個種子點組成,每個種子點有8個方向向量信息,共產(chǎn)生32個數(shù)據(jù)。
一般情況下為了增強抗噪能力和匹配穩(wěn)健性,通常將鄰域范圍設(shè)為16*16,產(chǎn)生4*4的種子點,此時每個關(guān)鍵點的信息就包含在128維特征向量里(4*4*8=128)。
2.1.4 SIFT特征向量的匹配
SIFT特征向量匹配的依據(jù)是相似性度量。采用優(yōu)先k-d樹查找各特征點的近似最近鄰特征點[4]。兩特征點中如果最近鄰與次近鄰的比值小于某個閾值則接受此點作為匹配點,當(dāng)閾值降低時SIFT匹配點對數(shù)目較少,但匹配更加穩(wěn)定。
2.2 SURF算法
SURF算子選取圖像在尺度空間上的極值點作為候選特征點。SURF算子采用Hessian矩陣行列式近似值來構(gòu)造金字塔。提取SURF特征點需要四個步驟:提取SURF特征、特征點定位、確定主方向、生成特征點描述符[5]。
2.2.1特征點檢測
一般情況下通過三步來檢測特征點:建立積分圖像、使用箱式濾波器建立圖像的尺度空間,然后在尺度空間上對特征點進行定位。
SURF采用的是Hessian矩陣行列式近似值圖像,圖像中每個像素點的Hessian矩陣如下:
在構(gòu)造Hessian矩陣構(gòu)造前為了保證特征點具有尺度不變性,先對其進行高斯濾波,濾波后再進行Hessian計算,公式如下:
求Hessian事先要進行高斯平滑,然后求二階導(dǎo)數(shù),針對離散的像素點它是由模板卷積形成的。
SURF不同于SIFT,SIFT中同層圖片大小相同,不同層之間圖片尺寸不同,所以進行高斯模糊時高斯模板大小是一直不變的。但SURF中圖片大小一直處于不變狀態(tài),不同層得到的待檢測圖片是通過改變高斯模糊尺寸得到的。
當(dāng)Hessian矩陣的行列式值大于某個給定的閾值時,將它作為下一步判定的點,取該點上下層及同層中的點進行對比,只有比26個響應(yīng)值(同層8個點和上下兩個尺度層的9個點)都大的點才能被選為特征點。
2.2.2 特征描述
特征描述從兩點來進行:為了使算法具有旋轉(zhuǎn)不變性,先計算得出特征點的主方向(統(tǒng)計特征點鄰域內(nèi)的Haar小波特征代替了直方圖梯度統(tǒng)計),接下來將特征點的鄰域旋轉(zhuǎn)到主方向,對特征點進行描述。在特征點周圍取4*4矩形區(qū)域(方向沿特征點主方向),統(tǒng)計每個子區(qū)域像素的水平方向和垂直方向的Haar小波特征,Haar小波特征分為:水平方向值之和、垂直方向值之和、水平方向絕對值之和垂直方向絕對值之和(,,,)。將這四個值作為每個子區(qū)域塊的特征向量,所以總共會生成64(4*4*4=64)維向量作為SURF描述子。
2.2.3 特征匹配
特征點提取的準(zhǔn)確程度將直接影響匹配結(jié)果。生成特征描述子后,先通過Hessian矩陣的跡來進行初始判斷,加快匹配速度,然后采用歐氏距離來度量兩個特征向量的匹配[6]。算法先計算最近鄰的歐氏距離,然后計算次近鄰歐氏距離,計算兩者之間的比值,當(dāng)比值處于某一給定的可接受的范圍內(nèi)時,該點才會被認(rèn)為是在匹配點集中。
3 SURF和SIFT算法主要的不同之處
SIFT算法在使用時直接使用圖像本身,而SURF算法是先計算出積分圖像,然后對積分圖像進行操作。我們知道,凡是使用過積分圖像的算法在執(zhí)行速度上都會有明顯的提升,這是因為在一定區(qū)域內(nèi)計算灰度值之和時,只需進行簡單的加減運算即可完成,可以大大提高算法效率。
4 試驗方法及結(jié)果分析
測試數(shù)據(jù)集來自“鄂爾多斯盆地致密砂巖巖石鑄體薄片”顯微圖片,相鄰圖像兩兩建立匹配關(guān)系。采集圖像時我們設(shè)置顯微鏡放大倍數(shù)為200X,圖像重疊區(qū)域大小為52%,掃描位置和區(qū)域為15mm*15mm,聚焦方式為5-15次多點對焦。再根據(jù)采集需要設(shè)置相機分辨率。實驗開發(fā)環(huán)境:Intel i7-4790 CPU 、8GB計算機、Windows7 64bit操作系統(tǒng)、MATLAB R2013
本實驗用SIFT和SURF分別對同一組薄片的不同分辨率的圖片進行測試,記錄匹配點對數(shù)和匹配時間。
待匹配圖像第一組巖石薄片的256*192/34KB的圖像,SIFT算法匹配點對數(shù)為126,匹配時間為0.830785s;SURF算法匹配點對數(shù)為29,匹配時間為0.729542s。
待匹配圖像第一組巖石薄片的512*384/142KB的圖像,SIFT算法匹配點對數(shù)為615,匹配時間為4.871552s;SURF算法匹配點對數(shù)為30,匹配時間為2.590403s。
待匹配圖像第二組巖石薄片的256*192/36KB的圖像,SIFT算法匹配點對數(shù)為198,匹配時間為0.892777s;SURF算法匹配點對數(shù)為29,匹配時間為0.734661s。
待匹配圖像第二組巖石薄片的512*384/136KB的圖像,SIFT算法匹配點對數(shù)為908,匹配時間為3.018182s;SURF算法匹配點對數(shù)為28,匹配時間為2.74686s。
從實驗結(jié)果來看,在圖像質(zhì)量相同的情況下,SIFT匹配點個數(shù)遠遠大于SURF,匹配時間較SURF來說也比較長。隨著圖像質(zhì)量的變好,SIFT匹配點個數(shù)呈現(xiàn)驟增趨勢,匹配時間也在增長,雖然SURF匹配時間也隨圖像質(zhì)量變好而增長,但SURF匹配點對數(shù)基本保持平穩(wěn),誤配率沒有較明顯的變化。我們發(fā)現(xiàn),在圖像質(zhì)量很好占用空間較大時,SIFT匹配時間遠遠大于同等質(zhì)量下的SURF匹配時間。我們所采集的巖石鑄體薄片顯微圖像一般占用空間較大,而且都在高分辨率下采集,所以使用SURF對巖石圖像進行拼接可能過是我們后期要繼續(xù)進行的工作。
5 結(jié)論
本文采用巖石鑄體薄片顯微圖像作為實驗研究對象,分別采用SIFT和SURF算法自動提取特征點,對比兩種算法在處理巖石顯微圖像時生成的特征點數(shù)量和算法運行時間,根據(jù)對比結(jié)果選擇比較適合巖石圖像自身特點的算法,為后期深入研究巖石圖像配準(zhǔn)與拼接提供更加堅實的基礎(chǔ)數(shù)據(jù)和平臺條件。
參考文獻:
[1] 劉燁,程國建,馬微,等.基于鑄體薄片圖像顏色空間與形態(tài)學(xué)梯度的巖石分類[J].中南大學(xué)學(xué)報,2016,47(7).
[2] 基于特征的圖像匹配算法研究[D].鄭剛.國防科技大學(xué),2011.
[3] 楊世沛,陳杰,周莉,等.一種基于SIFT的圖像特征匹配方法[J].電子測量技術(shù),2014,37(6):50-53.
[4] 楊艷偉.基于SIFT特征點的圖像拼接技術(shù)研究[D].西安電子科技大學(xué),2009.
[5] 堯思遠,王曉明,左帥.基于SURF的特征點快速匹配算法[J].激光與紅外,2014,44(3).
[6] 劉橋,楊正坤,李晗.基于SURF算法的醫(yī)學(xué)圖像特征點匹配[J].電子科技,2014,27(5).