丁國紳,喬延利,易維寧,杜麗麗,方 薇*
(1.中國科學院 安徽光學精密機械研究所 通用光學定標與表征技術(shù)重點實驗室,安徽 合肥 230031;2.中國科學技術(shù)大學,安徽 合肥 230026)
圖像的局部特征是計算機視覺中非常重要的概念,諸多計算機視覺的應用都是基于對圖像局部特征信息的提取與匹配技術(shù),比如人臉識別、地圖導航、3D建模、影像分割等等[1-4]。依據(jù)局部特征的類型,圖像特征提取技術(shù)大致可分為基于點、線和區(qū)域特征三類,經(jīng)典算法包括LOG(Laplacian of Gaussian)算子[5]和HOG(Histogram of Oriented Gridients)算子[6]、尺度不變特征變換(Scale-invariant Feature Transform,SIFT)[7]。其中,基于線特征和區(qū)域特征的方法大多對圖像尺度和視點的變化較為敏感,基于點特征的圖像特征提取方法則對圖像的旋轉(zhuǎn)、視點、尺度等變化敏感性較低。1977年,Moravec提出了特征點的概念并在后續(xù)文章[8]中將其應用于圖像匹配。在Moravec角點檢測方法被提出之后,各種角點檢測算子相繼被提出,具有代表性的是Harris算子[9]和SIFT算子。Harris算子根據(jù)像素點灰度的一階差分計算圖像中每個點的特征值,然后在指定鄰域大小的圖像塊中選擇最優(yōu)的點作為當前圖像塊的特征描述符,對旋轉(zhuǎn)和灰度值變化不敏感,是一種相對穩(wěn)定的圖像特征提取方法。1999年Lowe[10]提出了SIFT算子, SIFT算子的性能相比于Harris算子有了很大地提升,最顯著的就是其具有尺度不變性。因此SIFT算子一經(jīng)提出就受到了研究者的普遍關(guān)注[11-13]。
SIFT算子對圖像的尺度、旋轉(zhuǎn)、視點和仿射變換具有良好的穩(wěn)定性,被廣泛應用于圖像的特征提取與匹配領(lǐng)域。隨著應用研究的深入,SIFT方法的不足也逐漸顯露:提取的圖像特征點數(shù)量太少難以滿足實際工作的需要;采用鄰域內(nèi)的圖像塊信息作為特征描述符,雖然能夠描述目標特征點,但在一幅圖像中很有可能存在具有相似特征的不同點,因此僅僅采用鄰域信息作為特征描述符可能會導致誤匹配。針對這些問題,許多研究者提出了各種改進方法。Zhao等[14]從曝光度出發(fā),通過調(diào)整不同灰度級的曝光效應,提升圖像對比度;曾巒等[11]首先校正了對比度控制系數(shù),然后利用改進的RANSAC(Random Sample Consensus)方法找到匹配模型的初始參數(shù),完成圖像自動匹配;耿慶田等[13]將圖像不變矩理論引入特征點檢測,剔除無效特征點,同時將鄰域圖像塊劃分為多個同心圓,構(gòu)建全局特征點;Yu等[15]在尺度空間構(gòu)造過程中嵌入了滾動指導濾波器來生成多尺度圖像,在保持邊緣的消隱方面取得了較好的效果,改進后的非線性多尺度空間構(gòu)建策略為低信噪比的高質(zhì)量特征點監(jiān)測提供了依據(jù)。
本文針對上述SIFT方法的不足,提出一種基于高光譜圖像的SIFT圖像特征提取與匹配算法,提升了算法的特征檢測與匹配性能。
SIFT算法是David Lowe在1999年發(fā)表并于2004年進行完善的基于尺度空間不變性的圖像特征檢測方法,SIFT特征描述符是基于目標圖像的局部特征信息而與圖像的旋轉(zhuǎn)、仿射和尺度的變化無關(guān),因此該算法受到了廣大研究者的青睞并進行了深入研究。SIFT特征描述符的構(gòu)造主要分為以下幾個步驟。
對目標圖像進行多尺度特征變換,得到不同尺度因子下的圖像序列。圖像的尺度空間L(xi,yi,σo)表示為原始圖像I(xi,yi)與尺度漸變的二維高斯函數(shù)G(xi,yi,σo)的卷積運算的結(jié)果:
G(xi,yi,σo)=
(1)
L(xi,yi,σo)=G(xi,yi,σo)*I(xi,yi),
(2)
將原始圖像不斷進行降采樣,第i+1組的第1層圖像由第i組的倒數(shù)第3層直接降采樣得到,不需要進行高斯模糊。金字塔的層數(shù)由原始圖像和最頂層圖像的大小共同決定,如式(3)所示:
O=log2{min(M,N)}-k,
k∈[0,log2{min(M,N)}]
(3)
其中:M,N表示原始圖像的大小,k為頂層圖像大小的對數(shù)值。
相比于圖像梯度特征和角特征,高斯拉普拉斯函數(shù)的極值特征更加穩(wěn)定,而尺度歸一化的高斯拉普拉斯函數(shù)與高斯差分函數(shù)的性質(zhì)非常接近,因此不同尺度下(Difference of Gaussian,DOG)的高斯差分圖像構(gòu)成了高斯圖像差分金字塔,用來檢測圖像極值點。比較DOG空間中的第2層至倒數(shù)第2層的每一層圖像上的每一個像
素點與其鄰近的26個像素點的大小,即本層圖像的相鄰8個點和上下相鄰尺度對應位置的9個像素點,得到圖像的局部極值點。
經(jīng)過特征點檢測得到的只是一系列離散的特征點,真實空間中的特征點位置需要插值擬合才能被更加精確地確定。為此,對DOG尺度函數(shù)進行了子象元插值。對于任意函數(shù)f(x),其泰勒展開式如式(4)所示:
(4)
因此可以得到DOG函數(shù)的泰勒展開函數(shù):
(5)
其中X表示極值點的位置向量。令D′(X)=0,得到極值點的偏移向量:
(6)
另外,DOG算子在邊緣處產(chǎn)生的極值點很不穩(wěn)定,為了去除邊緣效應,設定了邊緣極值點的主曲率閾值,在此閾值范圍內(nèi)的極值點被保留下來,超出閾值的極值點都被剔除。
在得到特征點的位置信息之后,就要確定特征點的方向,保證特征向量的旋轉(zhuǎn)不變性。以當前特征點作為旋轉(zhuǎn)中心,計算給定鄰域范圍內(nèi)的圖像梯度分布值,其模值和方向計算公式分別如式(7)和式(8)所示:
(7)
θ(xi,yi)=tan-1((L(xi,yi+1)-L(xi,yi-1))/(L(xi+1,yi)-L(xi-1,yi))).
(8)
將給定半徑的圓形鄰域依次均分為36個子方向,每個方向包含10°以內(nèi)的梯度值信息,統(tǒng)計得到累加梯度值最大的一組,再經(jīng)拋物線插值即確定了特征點的主方向。
劃分特征點給定半徑的鄰域區(qū)域為4×4個子區(qū)域,每個子區(qū)域平均分成8個方向,計算每個子區(qū)域的每個方向上的梯度累加值,得到128維的向量,即為該特征點的特征描述符。為了降低光照對特征描述符的影響,對生成的描述符H進行了歸一化操作。H即為目標特征點的128維的特征描述符。
(9)
傳統(tǒng)SIFT算法的圖像尺度空間的構(gòu)建是依賴圖像的高斯模糊實現(xiàn)的。給定一幅待提取特征的原始圖像,將其與具有不同模糊系數(shù)的二維高斯函數(shù)分別進行卷積運算,得到不同模糊系數(shù)下的高斯卷積圖像。再對原始層倒數(shù)第3層的圖像進行降采樣,然后同樣將其與具有不同模糊系數(shù)的高斯函數(shù)進行卷積得到第2組圖像,以此類推構(gòu)造圖像金字塔。雖然構(gòu)造了圖像尺度空間,但由于空間中除原始圖像外的每一幅圖像都是通過高斯模糊或高斯模糊加降采樣的方式得到,尺度空間越大圖像越平滑,丟失的細節(jié)信息越多,因此隨著模糊程度的增加,能提取到的有用的圖像特征越少。
高光譜圖像是指光譜分辨率達到10 nm以上的光譜圖像,在不同波段下對同一目標區(qū)域同時成像,各波段下的圖像在相同位置具有不同的DN(Digital Number)值,波段間隔越小,圖像間的DN值差異越小。
受高光譜圖像性質(zhì)的啟發(fā),本文重新構(gòu)造了圖像的尺度空間,首次提出用高光譜圖像構(gòu)造圖像金字塔的方式,具體操作如下:
(1)在可見光波段范圍內(nèi),選取一組高光譜圖像作為圖像金字塔的原始層圖像,本層中的每一幅圖像都未經(jīng)高斯卷積操作;
(2)第2組中的每一層圖像都是由原始層圖像不經(jīng)過高斯模糊直接降采樣得到,以此類推構(gòu)造圖像金字塔;
(3)各組中相鄰的兩層圖像相減得到高斯差分金字塔。
圖1為圖像尺度空間構(gòu)造示意圖。
圖1 圖像尺度空間構(gòu)建Fig.1 Image scale space construction
從高斯金字塔的構(gòu)建到特征描述符的生成都是為了完成后續(xù)的特征提取與匹配工作,然而不管是傳統(tǒng)SIFT算法還是許多針對SIFT算法展開的一系列研究都無法避免誤匹配現(xiàn)象[11,13,15]。這些算法通過各種改進措施增強特征描述符的魯棒性,提高特征提取與匹配的效率,但在構(gòu)造特征描述符時大都是采集目標特征點給定鄰域內(nèi)的圖像塊信息特征,僅以統(tǒng)計學的角度來比較目標特征點與待匹配特征點的相似程度,而沒有考慮目標特征點在原圖像中的位置信息。因此本文擴展了描述符向量,使其包含了能夠表征描述符的位置向量,在進行特征點匹配時分為粗匹配與細匹配兩個步驟。
圖2 基準匹配二維示意圖Fig.2 2D diagrammatic sketch of basic matching
(ly-my)x+(mx-lx)y+
my(lx-mx)-mx(ly-my)=0,
(10)
(ny-py)x+(px-nx)y+
py(nx-px)-px(ny-py)=0,
(11)
令ly-my=a1,mx-lx=b1,my(lx-mx)-mx(ly-my)=c1,ny-py=a2,px-nx=b2,py(nx-px)-px(ny-py)=c2,則交點f的坐標為:
(12)
令r1=|nf|/|np|,r2=|mf|/|ml|,則:
r1=((nx-fx)2+
(ny-fy)2)/((nx-px)2+(ny-py)2),
(13)
r2=((mx-fx)2+
(my-fy)2)/((mx-lx)2+(my-ly)2).
(14)
由于圖像在變換過程中,各個點的相對位置不變,因而存在以下關(guān)系:
|nf|/|np|=|n′f′|/|n′p′|,
(15)
則交點f′的坐標為:
(16)
(17)
(18)
(19)
最后判斷ξ是否在容許誤差范圍內(nèi),據(jù)此判斷是否執(zhí)行剔除操作。
由于本文是首次將高光譜圖像用來構(gòu)造圖金字塔,因此實驗圖像采用的是規(guī)格為IS210-0.4-1.0-L的Brimrose高光譜成像光譜儀拍攝得到。仿真環(huán)境為Windows 7(64位)操作系統(tǒng),Intel R Core TM i5-2430M CPU @ 3.20 GHz處理器,4.00 GB內(nèi)存,MATLAB R2018a編碼。為了驗證所提改進算法的可行性及算法性能,本文采用傳統(tǒng)SIFT算法和改進算法進行同步實驗,驗證改進算法的性能。論文實驗中用到的測試圖像鏈接為:https://pan.baidu.com/s/1WFyu3Yv4Jp2bnU28amSyAg
對比實驗分為4組,第1~3組采用了同一組高光譜圖像,對應的波段間隔分別為25 nm、35 nm和50 nm,驗證波段間隔的大小對特征點采集的影響;第4組采用了低曝光率下波段間隔為50 nm的高光譜圖像,與第3組實驗進行對比,驗證高光譜相機的曝光率對特征點采集的影響。圖3和圖4是在波段間隔為50和25,最近鄰與次近鄰比值分別為0.8和1.0時傳統(tǒng)SIFT算法在每層圖像上的匹配結(jié)果圖和最近鄰與次近鄰比值為1.0時改進算法在高光譜圖像金字塔和高光譜圖像金字塔以及位置準則下的匹配結(jié)果圖。為保證匹配精度,位置準則的判定閾值設定為2。
從各組實驗(圖3和圖4)的圖(a)和圖(b)可以看出,基于單波段圖像的傳統(tǒng)SIFT算法提取到的特征點數(shù)量非常有限,而且存在許多誤匹配。兩組圖(c)表示在改變圖像金字塔的構(gòu)造方式下,算法提取到的特征點與匹配效果,顯然基于3.1節(jié)的圖像金字塔構(gòu)造方式能大大提高檢測特征點的數(shù)量。相應的圖(d)表示在構(gòu)造了基于高光譜圖像的圖像金字塔之后又采用了基于位置準則的特征提取與匹配方法的最終結(jié)果,可以看出算法無論是在特征點提取的數(shù)量還是在匹配的效果上都得到了很大提升。
圖3 波段間隔為50時的特征點匹配結(jié)果Fig.3 Matching results of feature points at 50 band intervals
圖4 波段間隔為25時的特征點匹配結(jié)果Fig.4 Matching results of feature points at 25 band intervals
表1 特征點匹配結(jié)果
Tab.1 Matching results of feature points
表1給出了在特征描述符的最近鄰與次近鄰比值分別在0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.05時傳統(tǒng)SIFT算法檢測到的中間波段圖像的匹配對數(shù)量(包括誤匹配)、正確匹配對數(shù)量和本文算法檢測到的匹配對數(shù)量。由于低波段和高波段的圖像能見度低,SIFT算法的輸入是單波段圖像,因而為保證實驗公平性此處選擇中間波段圖像。通過理論分析與人工校驗,本文算法最終的匹配對所包含的誤匹配數(shù)量為0對。根據(jù)實驗結(jié)果可以發(fā)現(xiàn),隨著最近鄰與次近鄰比值的增大,SIFT算法所提取與匹配到的特征點數(shù)量在不斷增加,但誤匹配數(shù)量也隨之增加,與Lowe的實驗現(xiàn)象一致。另外,本文所提改進算法在特征點數(shù)量的提取上有了很大提高,證明將高光譜圖像作為圖像金字塔的構(gòu)造方式是積極有效的;而且沒有誤匹配,證明我們的基于位置準則的雙重匹配策略也是切實可行的。圖5是特征匹配對最近鄰與次近鄰比值在0.6~1.05時傳統(tǒng)SIFT算法在所有波段下特征點的平均正確匹配對數(shù)量與本文算法的正確匹配對數(shù)量曲線,更能直觀地反映出改進算法在性能上的提升程度。
圖5 平均正確匹配數(shù)量曲線Fig.5 Average correct matching quantity curve
時間花銷是衡量算法效率的一個積極指標。經(jīng)過統(tǒng)計,本文算法的時間花銷相比于傳統(tǒng)SIFT算法與文獻[16-17]的程度相當。不過本文旨在提出一種新的思路來拓展SIFT算法的優(yōu)化方向,對于時間花銷的優(yōu)化將在下一步的工作中進行。綜合來看,本文算法有效提升了算法的特征點提取與匹配能力。
圖像的特征點提取與匹配是圖像處理領(lǐng)域最重要的操作之一。本文針對傳統(tǒng)SIFT算法所存在的提取特征點數(shù)量少、誤匹率高的缺陷,提出了一種新的解決辦法。在圖像金字塔的構(gòu)造方式上,摒棄了使用單一圖像經(jīng)不同程度高斯模糊產(chǎn)生不同尺度下的圖像組的做法,將不同波段的高光譜圖像進行直接降采樣生成圖像金字塔,以保證能提取到更多的原始信息。為了擺脫匹配階段正確匹配對數(shù)量與誤匹配率的束縛,我們提出了雙重匹配的策略。在粗匹配階段依然延續(xù)最近鄰與次近鄰的比值作為匹配判斷標準,但此處的閾值設定有了較大的提升,能夠包含更多的正確匹配對。在完成粗匹配操作之后,對匹配結(jié)果按相似性程度進行排序,完成第二階段的精細匹配操作。實驗結(jié)果也顯示了本文所做改進方式無論在特征點的提取數(shù)量方面還是在特征點的匹配精度方面都起到了很大的作用,提高了算法的有效性。下一步工作將基于本文的研究,將重點放在算法的效率優(yōu)化上,進一步全面整合改進措施,提高算法的整體性能。