摘 要: 針對(duì)目前圖像拼接算法存在對(duì)于圖像配準(zhǔn)過(guò)程中對(duì)應(yīng)特征點(diǎn)對(duì)難以準(zhǔn)確匹配的問(wèn)題,提出了一個(gè)通過(guò)改進(jìn)的SURF算法提取圖像特征點(diǎn),然后對(duì)得到的特征點(diǎn)進(jìn)行描述,利用快速RANSAC算法配準(zhǔn)圖像,最后采用像素加權(quán)的方法進(jìn)行圖像融合。實(shí)驗(yàn)結(jié)果表明,提出的改進(jìn)SURF方法有效地提高了特征點(diǎn)提取的準(zhǔn)確性,去除了錯(cuò)誤的匹配點(diǎn)對(duì),將整個(gè)拼接過(guò)程的效率從之前的13.03對(duì)/秒提升到15.20對(duì)/秒。
關(guān)鍵詞: 特征提取;圖像拼接;SURF;對(duì)稱性
0 引言
在日常生活中人們往往需要一幅大范圍的全景圖像,以此來(lái)獲得更多的信息。然而,由于鏡頭拍攝角度的局限性,一般只能得到局部的圖像,而全景成像的硬件設(shè)備一般比較昂貴。所以,人們就想利用多幅圖像拼接成一幅大的圖像,這樣就可以獲取寬視角、高分辨率的全景圖像。圖像拼接本質(zhì)上是對(duì)待拼接圖像的重疊部分進(jìn)行圖像配準(zhǔn)和圖像融合,其一般步驟是:(1)獲取圖像序列;(2)圖像預(yù)處理,去除噪聲和圖像畸變校正;(3)圖像配準(zhǔn),用算法對(duì)圖像進(jìn)行配準(zhǔn)定位,是圖像拼接的關(guān)鍵步驟;(4)圖像融合,消除拼接的接縫;(5)輸出拼接完成的圖像[1-2]。
當(dāng)前圖像拼接的方法主要是包括基于區(qū)域的方法和基于特征的方法?;趨^(qū)域的方法應(yīng)用重疊區(qū)域的所有信息進(jìn)行計(jì)算,因此,它的精度比較高。但是,該方法要使用大量的像素信息,因此計(jì)算量很大,并且對(duì)光照很敏感[1]。而基于特征的方法則是利用兩幅圖像重疊區(qū)域的點(diǎn)、線或者其他的特征信息來(lái)估算兩幅圖像的對(duì)應(yīng)關(guān)系。目前,基于不變特征的物體匹配、識(shí)別的研究比較多,比如SIFT算法和SURF算法[3-4]。這些不變特征對(duì)于尺度、旋轉(zhuǎn)、光照都具有很高的魯棒性。對(duì)于SIFT算法,其特征描述向量維度(128維)較高,計(jì)算量較大[5]。而SURF算法是一種快速魯棒性算法,其特征描述向量維度(64)也相對(duì)較高[6]。針對(duì)特征描述符維度高、計(jì)算量大的情況,本文提出了一種改進(jìn)的SURF算法。該方法主要是將對(duì)稱性得分加入到SURF算法的框架中,其中對(duì)稱性得分就是指每個(gè)特征點(diǎn)和其鄰域內(nèi)點(diǎn)的像素值之差求和。用對(duì)稱性得分的最小值來(lái)表示特征描述符,降低了特征描述的維度,提高了算法的效率。通過(guò)對(duì)采用算法改進(jìn)前后特征點(diǎn)對(duì)匹配結(jié)果進(jìn)行的對(duì)比實(shí)驗(yàn),從特征點(diǎn)對(duì)提取數(shù)量、時(shí)間、匹配率驗(yàn)證了本算法的正確性。
1 SURF算法的介紹及其改進(jìn)
1.1 特征點(diǎn)的提取與匹配
基于特征的圖像拼接算法對(duì)于特征點(diǎn)提取的效率和精確度要求比較高。傳統(tǒng)SURF算法使用64維的特征向量作為后期進(jìn)行特征匹配的向量,雖然比SIFT算法計(jì)算量小、速度快,但是計(jì)算效率還不是很高,并且對(duì)于特征點(diǎn)的提取精確度不高降低了圖像拼接的效率。所以,本文提出了一種改進(jìn)的SURF算法,使用局部對(duì)稱性來(lái)表示特征向量,而對(duì)稱性具有尺度、旋轉(zhuǎn)和光照的不變特性。首先,根據(jù)Hessian矩陣求出圖像的SURF特征點(diǎn):
其中,是二階高斯導(dǎo)數(shù)g與圖像在p點(diǎn)處的卷積,由上式可以得到Hessian矩陣的行列式如式(2)所示。
det(H)=LxxLyy-L2xy(2)
通過(guò)Hessian矩陣行列式的計(jì)算可以初步得到SURF算法的特征點(diǎn)。
對(duì)于SURF特征向量使用箱式濾波器(如圖1所示)近似代替二階高斯導(dǎo)數(shù),用積分圖像來(lái)加速卷積運(yùn)算,因此提高了Hessian矩陣的計(jì)算效率[6-7]。實(shí)驗(yàn)中使用9×9的箱式濾波器來(lái)提取局部最大值[8],因此,式(2)可以寫(xiě)成:
det(Happrox)=Dxx×Dyy-(0.9Dxy)2(3)
其中,Dxx、Dxy、Dyy、Dxy分別近似代替Lxx、Lyy、Lxy。如果det為負(fù)值,并且特征值是異號(hào),那該點(diǎn)就不是局部極值點(diǎn);如果det為正值,并且特征值同號(hào),則該點(diǎn)為局部極值點(diǎn)。
其次,當(dāng)提取到SURF特征點(diǎn)后,就需要對(duì)特征點(diǎn)進(jìn)行特征向量的描述,以便于后期的特征匹配。對(duì)于局部圖像區(qū)域中的任意一點(diǎn)p(x,y),如果關(guān)于一條直線是滿足軸對(duì)稱,則可以得到如下公式:
I(x+x′,y)=I(x-x′,y)
I(x,y+y′)=I(x,y-y′)(4)
其中,x′和y′表示點(diǎn)p到對(duì)稱軸的距離。為了計(jì)算對(duì)稱性得分,定義一個(gè)函數(shù)Mp,q(q),它表示圖像上的點(diǎn)q(x,y)關(guān)于對(duì)稱軸的對(duì)應(yīng)點(diǎn)p(x,y)。如果對(duì)于圖像上p點(diǎn)的局部區(qū)域表現(xiàn)出軸對(duì)稱的屬性,就會(huì)有I(q)=I(Mp,q(q))。
以p點(diǎn)為圓心,6 s(s代表當(dāng)前圖像尺度)為半徑定義一個(gè)圓,則對(duì)于點(diǎn)p和其鄰域范圍內(nèi)的任意一點(diǎn)之間的圖像強(qiáng)度差異函數(shù)可以定義為:
d(p,q)=|I(p)-I(q)|(5)
接下來(lái),使用高斯模板來(lái)定義一個(gè)權(quán)重函數(shù)(r),它決定了p點(diǎn)周圍的鄰域點(diǎn)對(duì)對(duì)稱性得分的貢獻(xiàn)值。其中,r代表鄰域點(diǎn)到p點(diǎn)的距離,代表權(quán)重模板的尺度[9]。最后,計(jì)算60°區(qū)域的扇形窗口內(nèi)所有點(diǎn)的距離,使用最小距離SD作為一個(gè)向量:
最后,以p點(diǎn)為中心定義一個(gè)邊長(zhǎng)為20 s的正方形區(qū)域,將它進(jìn)一步分成4×4的子區(qū)域,對(duì)于每一個(gè)子區(qū)域計(jì)算它在5 s尺度的最小距離SD。因此,對(duì)于4×4的子區(qū)域,最終將形成16維的特征向量。在匹配階段,使用歐式距離來(lái)求取兩個(gè)特征向量的相似度。一個(gè)n維的歐式距離函數(shù)表示如下:
其中,xi1表示第一個(gè)點(diǎn)的第i維的坐標(biāo),xi2表示第二個(gè)點(diǎn)的第i維坐標(biāo),i=1,2,…16。
當(dāng)計(jì)算出的閾值接近之前設(shè)定的閾值,就可以得到兩個(gè)點(diǎn)匹配。由于這個(gè)向量是16維的,最多只需要計(jì)SDmin16次,因此整個(gè)匹配的速度與原始SURF算法相比有了提升。
1.2 圖像拼接和融合
通過(guò)提取到的特征點(diǎn)對(duì),計(jì)算出兩幅圖像對(duì)應(yīng)的單應(yīng)性矩陣。把輸入圖像按照單應(yīng)性矩陣映射到參考圖像中,就完成了圖像的拼接[10]。對(duì)于圖像融合采取最基本的取兩張圖像的平均值,但是這樣會(huì)有明顯的拼接縫[11]。使用如下公式計(jì)算重疊區(qū)域的像素值:
其中,d1、d2分別代表重疊區(qū)域中的點(diǎn)到重疊區(qū)域左邊界和右邊界的距離,img1pixel、img2pixel分別代表重疊區(qū)域左邊圖像和右邊圖像的對(duì)應(yīng)像素點(diǎn)的像素值。經(jīng)過(guò)式(8)的計(jì)算,就可以實(shí)現(xiàn)平滑過(guò)渡。
2 實(shí)驗(yàn)結(jié)果及結(jié)論
本實(shí)驗(yàn)是在Win XP、主頻1.83 GHz、CPU和內(nèi)存 1 GB的主機(jī)上運(yùn)行的,使用VS2008+OpenCV來(lái)實(shí)現(xiàn)圖像拼接算法。實(shí)驗(yàn)中的圖像尺度大小為640×480。本次實(shí)驗(yàn)用來(lái)驗(yàn)證算法改進(jìn)前后特征點(diǎn)對(duì)匹配的情況,如圖2、圖3所示。
圖2、圖3中,圖(a)表示從圖像中提取的待匹配的特征點(diǎn),而圖(b)表示兩幅圖像對(duì)應(yīng)的特征點(diǎn)匹配對(duì)。從圖2和圖3的對(duì)比實(shí)驗(yàn)來(lái)看,圖2原始SURF算法提取的特征點(diǎn)對(duì)相比圖3改進(jìn)后的SURF算法要多,但是原始算法提取的特征點(diǎn)對(duì)存在錯(cuò)誤的匹配對(duì),而且從特征點(diǎn)對(duì)提取的效率來(lái)看,原始SURF算法要比改進(jìn)后的SURF算法低,如表1所示。
最終,圖像的拼接結(jié)果如圖4所示。
3 結(jié)論
本文主要是對(duì)原始SURF算法在特征提取階段采用對(duì)稱性的特征,這種對(duì)稱性具有旋轉(zhuǎn)、尺度不變性,對(duì)光照也有很強(qiáng)的魯棒性。從實(shí)驗(yàn)結(jié)果來(lái)看,本文算法將提取的特征點(diǎn)對(duì)數(shù)目從132對(duì)減少到71對(duì),相應(yīng)的特征匹配時(shí)間從10.13 s減少到4.67 s,而算法的效率從13.03對(duì)/秒提高到15.20對(duì)/秒。因此,實(shí)驗(yàn)結(jié)果表明,文中提出的方法有效地提高了特征點(diǎn)提取的準(zhǔn)確性和整個(gè)拼接過(guò)程的效率。
參考文獻(xiàn)
[1] 徐正光,田清,張利欣.圖像拼接方法探討[J].微計(jì)算機(jī)信息,2006,22(30):255-256.
[2] MATTHEW B, DAVID G. L. Automatic panoramic image stitching using invariant features[J]. International Journal of Computer Vision, 2007:59-73.
[3] 鄭海珍.圖像拼接技術(shù)的研究與應(yīng)用[D].杭州:杭州電子科技大學(xué),2009.
[4] 蔡麗歡,廖英豪,郭東輝.圖像拼接方法及其關(guān)鍵技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(3):1-5.
[5] Jing Xing, Miao Zhenjiang. An improved algorithm on image stitching based on SIFT features[C]. ICICIC′07, Second Internation Conference on Innovative Computing, Information and Control, 2007:453-456.
[6] BAY H, TUYTELAARS T, VAN GOOL L. SURF: speeded up robust features[C]. European Conference on computer Vision, 2006:404-417.
[7] 周軍太,龍永紅.一種改進(jìn)SURF算法的圖像配準(zhǔn)[J].湖南工業(yè)大學(xué)學(xué)報(bào),2011,25(2):95-99.
[8] PARK H, MITSUMINE H, FUJII M. Fast detection of features by reducing the number of box filtering in SURF[C]. IEICE ransactions on Information and Systems, 2011,725-728.
[9] HAUAGGE D C, SNAVELY N. Image matching using local symmetry features[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2012:206-213.
[10] Yi Zhuang, Hu Xinrong, Wang Jianchun. The implenment of an image stitching algorithm based on feature extraction[C]. International Conference on Education Technology and Training, 2009:327-330.
[11] 李柏林.基于特征點(diǎn)圖像拼接的配準(zhǔn)算法研究[D].天津:天津大學(xué),2008.