杜 港,侯凌燕,佟 強(qiáng),楊大利
(北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京 100101)
圖像拼接是圖像處理的一個(gè)重要領(lǐng)域,指的是將兩張或多張有重疊像素的圖像經(jīng)過(guò)一系列操作組成一張廣角圖像[1],目前廣泛應(yīng)用于遙感影像配準(zhǔn)、計(jì)算機(jī)視覺(jué)、醫(yī)學(xué)圖像處理、視覺(jué)SLAM 以及嵌入式設(shè)備等領(lǐng)域,如相機(jī)在拍攝時(shí)由于拍攝空間和相機(jī)視角局限性的影響,導(dǎo)致單張圖像獲取信息有限,需要利用圖像拼接的方式獲得包含信息更加豐富圖像。圖像拼接主要分為基于頻域的拼接方法和基于時(shí)域的拼接方法兩類?;陬l域的拼接方法是通過(guò)傅里葉變換將圖像變換至頻域,然后根據(jù)圖像間的互功率譜求解出平移矢量,最后根據(jù)平移矢量實(shí)現(xiàn)圖像拼接[2]?;跁r(shí)域的拼接方法又分為基于灰度拼接和基于圖像特征點(diǎn)拼接兩類方法,基于灰度的理論研究較早但實(shí)際應(yīng)用相對(duì)較少,主要是通過(guò)驗(yàn)證圖像的灰度相關(guān)性來(lái)實(shí)現(xiàn)圖像拼接,該方法在解決圖像畸變大、不連續(xù)等問(wèn)題時(shí)存在困難,因此,基于灰度的拼接方法難以獲得較好的拼接結(jié)果[3];基于圖像特征點(diǎn)的拼接方法主要通過(guò)計(jì)算圖像特征點(diǎn)的位置關(guān)系求解出圖像的變換關(guān)系,再根據(jù)變換關(guān)系實(shí)現(xiàn)圖像拼接,該方法具有計(jì)算速度快、魯棒性強(qiáng)的優(yōu)勢(shì),可以獲得較好的拼接結(jié)果[4]。目前,圖像拼接主要是基于特征點(diǎn)拼接實(shí)現(xiàn)的。
常用的特征點(diǎn)提取方法有SIFT(Scale In?variant Feature Transform)[5-6]、SURF(Speeded Up Robust Features)[7-8]以 及ORB(Oriented FAST and Rotated BRIEF)[9-10]等方法。SIFT 算法是由Lowe 等人提出的,文獻(xiàn)[11-12]將該方法結(jié)合RANSAC[13]算法應(yīng)用在圖像拼接中,該算法對(duì)尺度縮放、旋轉(zhuǎn)、亮度變化保持不變性,對(duì)仿射變換、視角變化、噪聲也保持一定程度的穩(wěn)定性,但是因?yàn)槭褂枚啻蔚母咚咕矸e,使得其存在運(yùn)算量較大,運(yùn)行時(shí)間較長(zhǎng)的缺點(diǎn),尤其是在算力有限的嵌入式設(shè)備上很難滿足實(shí)時(shí)性。SURF 算法是由Bay 等人提出的,文獻(xiàn)[3,14]將該方法分別結(jié) 合PROSAC[15]算 法 和RANSAC 算 法 應(yīng) 用 在圖像拼接中。SURF 算法是SIFT 算法的一種改進(jìn),它使用盒狀濾波器代替高斯卷積,再配合上積分圖像,大幅減小了特征點(diǎn)的提取時(shí)間,但其檢測(cè)到的特征點(diǎn)比SIFT 算法要多,因此其進(jìn)行特征點(diǎn)匹配時(shí)相對(duì)耗時(shí),依然存在運(yùn)行時(shí)間較長(zhǎng)的缺點(diǎn),同樣無(wú)法較好地在算力有限的嵌入式設(shè)備上滿足實(shí)時(shí)性。ORB 算法是由Rublee 等人提出的,文獻(xiàn)[4]將該方法結(jié)合RANSAC 算法應(yīng)用在圖像拼接中。該算法是一種較為簡(jiǎn)單的利用二進(jìn)制特征描述符進(jìn)行特征點(diǎn)提取的算法,其顯著特點(diǎn)是速度超快,具有旋轉(zhuǎn)不變性,在一定程度上不受噪聲和圖像變換的影響,雖然在算力較低的嵌入式設(shè)備上滿足實(shí)時(shí)性,但存在不具備尺度不變性且特征點(diǎn)匹配準(zhǔn)確率較低的問(wèn)題。
為了解決這些問(wèn)題,本文提出了一種基于BRISK 和改進(jìn)RANSAC 算法的方法來(lái)實(shí)現(xiàn)圖像拼接。首先,針對(duì)特征點(diǎn)的檢測(cè)速度問(wèn)題,本文使 用BRISK(Binary Robust Invariant Scalable Keypoints)[16]算 法 進(jìn) 行 特 征 點(diǎn) 檢 測(cè)。然 后,為 了在特征點(diǎn)精匹配中得到更多的特征點(diǎn)匹配對(duì)數(shù),本文提出了一種基于RANSAC 算法的改進(jìn)算法:(1)先隨機(jī)地從粗匹配點(diǎn)對(duì)中選擇4 個(gè)點(diǎn)對(duì)計(jì)算單應(yīng)性矩陣H,再根據(jù)單應(yīng)性矩陣H計(jì)算統(tǒng)計(jì)出內(nèi)點(diǎn)數(shù),再根據(jù)內(nèi)點(diǎn)擬合出新的單應(yīng)性矩陣,以此循環(huán),直至內(nèi)點(diǎn)的個(gè)數(shù)不再增加為循環(huán)的結(jié)束,將此操作執(zhí)行多次,內(nèi)點(diǎn)數(shù)最大所對(duì)應(yīng)的單應(yīng)性矩陣為最終結(jié)果;(2)對(duì)RANSAC 的內(nèi)點(diǎn)將歐氏距離判斷改成面積判斷。實(shí)驗(yàn)結(jié)果證明,本文提出的方法可以縮短特征點(diǎn)檢測(cè)的運(yùn)行時(shí)間且得到更多的內(nèi)點(diǎn)數(shù),從而提高準(zhǔn)確度。
圖像拼接的原理為找到兩幅圖像中相對(duì)應(yīng)的位置,然后經(jīng)過(guò)對(duì)待拼接圖像的投影變換,將兩幅圖像置于同一圖像坐標(biāo)系中,從而完成圖像拼接。本文中尋找對(duì)應(yīng)位置使用到BRISK 算法;投影變換關(guān)系需使用單應(yīng)性矩陣表示。
BRISK 算法是由Stefan 等人提出的,該方法和SURF 算法、SIFT 算法一樣,具有尺度不變性和旋轉(zhuǎn)不變性,但運(yùn)行速度優(yōu)于SURF 算法、SIFT 算法。該方法在運(yùn)行速度上的優(yōu)勢(shì),主要?dú)w結(jié)于采用基于FAST 方法進(jìn)行特征點(diǎn)檢測(cè)和使用類似于BRIEF 方法的二值位字符串描述符。
BRISK 方法構(gòu)建了由n個(gè)組層和n個(gè)組間層組成的尺度空間金字塔(n值一般為4),這樣保證了BRISK 方法的尺度不變性。若用t表示圖像的尺度,則各層的尺度公式可由式(1)表示:
BRISK 方 法 先 使 用FAST9-16[17]方 法 和FAST5-8[18]方法進(jìn)行特征點(diǎn)提取,然后對(duì)特征點(diǎn)的得分值在相鄰的兩個(gè)尺度空間上進(jìn)行非極大值抑制,其中得分值為角點(diǎn)響應(yīng)值。最后,再使用最小二乘法結(jié)合得分值擬合得到特征點(diǎn)的亞像素坐標(biāo)以及對(duì)應(yīng)的尺度。
BRISK 方法的特征點(diǎn)描述符創(chuàng)建是以特征點(diǎn)為中心,圍繞特征點(diǎn)有4 個(gè)同心圓,每個(gè)同心圓的圓周上分布著數(shù)量不同的采樣像素,從內(nèi)而外分別為10,14,15,20,加上特征點(diǎn)一共是60 個(gè)采樣點(diǎn),將這60 個(gè)采樣點(diǎn)兩兩進(jìn)行組合,可得到1 770 個(gè)組合。所對(duì)應(yīng)的數(shù)學(xué)表示形式見(jiàn)式(2):
A={(Pi,Pj)∈R2×R2∣i≤N,j
(2)式中,R2代表二元組,Pi、Pj為60 個(gè)采樣點(diǎn)中的一個(gè)。在BRISK 中,根據(jù)采樣點(diǎn)間的距離長(zhǎng)短,從A中取出集合S和L。S和L的定義見(jiàn)式(3):
在單應(yīng)性矩陣H中,h9是尺度,且恒為1,故共有8 個(gè)未知數(shù)。由上述式(8)~(13)知,一對(duì)映射點(diǎn)對(duì)可推導(dǎo)出兩個(gè)等式,則至少需要4 對(duì)點(diǎn)就可以解出單應(yīng)性矩陣H。換言之,要將一副圖像投影變換為另一幅圖像,至少需要知道投影變換前后4 對(duì)點(diǎn)的映射關(guān)系。
在計(jì)算單應(yīng)性矩陣H時(shí),如果已知的映射點(diǎn)對(duì)只有4 對(duì)時(shí),可通過(guò)上述公式直接求解出H的值;但當(dāng)對(duì)應(yīng)點(diǎn)超過(guò)4 對(duì)時(shí),可使用最小二乘法,使得反向投影錯(cuò)誤率的值最小,來(lái)擬合求解單應(yīng)性矩陣H,反向投影錯(cuò)誤率的求解過(guò)程見(jiàn)式(14):
式中:h1……h(huán)9為對(duì)應(yīng)的單應(yīng)性矩陣H的9 個(gè)值,x'i、y'i為變換后的特征點(diǎn)坐標(biāo)值,x'i為橫坐標(biāo),y'i為縱坐標(biāo)。xi、yi為變換前的特征點(diǎn)坐標(biāo)值,xi為橫坐標(biāo),yi為縱坐標(biāo)。
由于輸入的兩幅圖像存在亮度等方面的差異,在完成圖像拼接后,新生成的圖像會(huì)存在明顯的拼接痕跡,影響視覺(jué)直觀效果,需要采用加權(quán)平滑算法來(lái)實(shí)現(xiàn)兩幅圖像間的融合過(guò)渡。融合方法見(jiàn)公式(15):
RANSAC 算法的主要作用是剔除掉特征點(diǎn)錯(cuò)誤匹配對(duì),算法所對(duì)應(yīng)的流程圖如圖1(a)所示。其主要步驟為:
圖1 改進(jìn)前后的RANSAC 算法Fig. 1 RANSAC algorithm before and after improvement
(1)從粗匹配結(jié)果中,隨機(jī)的選取4 對(duì)非線性特征點(diǎn)匹配對(duì)組成集合M;
(2)使用集合M計(jì)算出單應(yīng)性矩陣H;
(3)使用H對(duì)粗匹配結(jié)果中的所有匹配對(duì)進(jìn)行驗(yàn)證,統(tǒng)計(jì)內(nèi)點(diǎn)個(gè)數(shù)(內(nèi)點(diǎn)為小于預(yù)設(shè)閾值的匹配對(duì));
(4)若當(dāng)前內(nèi)點(diǎn)數(shù)大于當(dāng)前最優(yōu)單應(yīng)性矩陣的內(nèi)點(diǎn)數(shù),則對(duì)當(dāng)前最優(yōu)單應(yīng)性矩陣進(jìn)行更新,反之,不更新;
(5)根據(jù)當(dāng)前最優(yōu)單應(yīng)性矩陣的內(nèi)點(diǎn)數(shù)更新迭代總次數(shù),若當(dāng)前迭代次數(shù)小于總迭代次數(shù),返回執(zhí)行步驟(1),反之,則當(dāng)前最優(yōu)單應(yīng)性矩陣為最終結(jié)果。
根據(jù)上述的RANSAC 算法可知,在粗匹配的結(jié)果中匹配到的內(nèi)點(diǎn)數(shù)越多,則認(rèn)為當(dāng)前模型越好,所以可以通過(guò)循環(huán)增大集合M,使其可以擬合更多的匹配點(diǎn)對(duì),從而使得最終結(jié)果可以計(jì)算到更多的匹配對(duì),故將算法做以下改進(jìn),算法所對(duì)應(yīng)的流程圖如圖1(b)所示。
(1)從粗匹配結(jié)果中,隨機(jī)的選取4 對(duì)非線性特征點(diǎn)匹配對(duì)組成集合M;
(2)使用集合M計(jì)算出單應(yīng)性矩陣H;
(3)使用H對(duì)粗匹配結(jié)果中的所有匹配對(duì)進(jìn)行驗(yàn)證,將內(nèi)點(diǎn)加入到集合M中;
(4)若集合M的點(diǎn)對(duì)數(shù)增加,則返回步驟(2)繼續(xù)執(zhí)行;若集合M保持不變,則執(zhí)行步驟(5);
(5)若集合M的點(diǎn)對(duì)數(shù)大于當(dāng)前最優(yōu)單應(yīng)性矩陣的點(diǎn)對(duì)數(shù),則對(duì)當(dāng)前最優(yōu)單應(yīng)性矩陣進(jìn)行更新,反之,不更新;
(6)根據(jù)當(dāng)前最優(yōu)單應(yīng)性矩陣的內(nèi)點(diǎn)數(shù)更新迭代總次數(shù),若當(dāng)前迭代次數(shù)小于總迭代次數(shù),返回執(zhí)行步驟(1),反之,則當(dāng)前最優(yōu)單應(yīng)性矩陣為最終結(jié)果。
在RANSAC 算法中,判斷一個(gè)匹配對(duì)是否為內(nèi)點(diǎn)(正確匹配對(duì))的依據(jù)是:像素點(diǎn)(X,Y)經(jīng)過(guò)單應(yīng)性矩陣H投影變換得到的值與實(shí)際值的差應(yīng)小于等于閾值。
當(dāng)閾值取到足夠大,接近無(wú)窮,那么此時(shí)任意選擇的4 個(gè)初值所求出來(lái)的結(jié)果都將使匹配對(duì)滿足情況,均被置成內(nèi)點(diǎn),無(wú)法達(dá)到將錯(cuò)誤匹配對(duì)剔除的目的,從而導(dǎo)致最終拼接效果不佳。
當(dāng)閾值取到足夠小,甚至是等于0 時(shí),則此時(shí)將會(huì)使絕大部分匹配對(duì)都不滿足情況,滿足情況的匹配對(duì)將會(huì)變得寥寥無(wú)幾,并且將大部分正確匹配對(duì)剔除,使得最終內(nèi)點(diǎn)結(jié)果占實(shí)際正確匹配對(duì)的比例太低,得到的內(nèi)點(diǎn)將無(wú)法代表整體正確匹配對(duì),使得結(jié)果的偶然性增大,導(dǎo)致拼接效果不佳。
當(dāng)閾值取到合適值時(shí),此時(shí)錯(cuò)誤匹配對(duì)將會(huì)被剔除,正確匹配對(duì)被置成內(nèi)點(diǎn)保留,且內(nèi)點(diǎn)結(jié)果占實(shí)際正確匹配對(duì)的比例較高,可用得到的內(nèi)點(diǎn)代表整體正確匹配對(duì),使得最終效果更佳。
為了提高單應(yīng)性矩陣的準(zhǔn)確度,必須選擇合適的閾值。由于在特征點(diǎn)檢測(cè)BRISK 算法中得到的特征點(diǎn)的像數(shù)值是近似值而非精確值,所以此時(shí)就必須允許誤差的存在。雖然得到的像數(shù)值是近似值,但由BRISK 算法可知,該近似值與精確值的差距在一個(gè)像素之內(nèi),故將閾值設(shè)置為1,且需將原內(nèi)點(diǎn)判定方法由歐式距離改為面積判斷,即將式(16):
實(shí)驗(yàn)在Python3.7 和Opencv3.4.5 下完成,硬件環(huán)境為:Windows10操作系統(tǒng),主頻2.20 GHz的Core i7-8750H 處理器、內(nèi)存為8 GB 的筆記本電腦。本文共設(shè)計(jì)了3 組實(shí)驗(yàn):實(shí)驗(yàn)一用于驗(yàn)證BRISK 算法相對(duì)于SURF 算法、SIFT 算法以及ORB 算法在特征點(diǎn)檢測(cè)時(shí)間以及特征點(diǎn)匹配準(zhǔn)確率上的優(yōu)勢(shì);實(shí)驗(yàn)二用于驗(yàn)證本文改進(jìn)的RANSAC 算法相對(duì)于傳統(tǒng)RANSAC 算法以及PROSAC 算法在特征點(diǎn)匹配對(duì)和平均反向投影誤差上的優(yōu)勢(shì);實(shí)驗(yàn)三用于驗(yàn)證本文所使用的算法相對(duì)于其他常用算法的整體執(zhí)行時(shí)間優(yōu)勢(shì)。
本文的實(shí)驗(yàn)數(shù)據(jù)來(lái)源包括兩部分:自主拍攝和網(wǎng)上收集。實(shí)驗(yàn)數(shù)據(jù)共有18 幅圖像,分為9 組,內(nèi)容包括人物、樓宇、道路、自然風(fēng)景等。
首先讀入一組圖像,對(duì)圖像使用BRISK 算法進(jìn)行特征點(diǎn)提取,對(duì)得到的特征點(diǎn)使用KNNmatch 進(jìn)行初始匹配,由于粗匹配的結(jié)果中依然含有錯(cuò)誤匹配對(duì),無(wú)法直接使用最小二乘法來(lái)計(jì)算單應(yīng)性矩陣H,因此還需將匹配結(jié)果通過(guò)RANSAC 算法進(jìn)行錯(cuò)誤匹配對(duì)剔除,再將精匹配結(jié)果使用最小二乘法求得單應(yīng)性矩陣H,最后根據(jù)求得的矩陣H對(duì)圖像進(jìn)行轉(zhuǎn)換拼接融合。流程圖如圖2 所示。
圖2 實(shí)驗(yàn)流程Fig. 2 Experimental process
4.3.1 特征點(diǎn)的正確匹配對(duì)的數(shù)量
使用RANSAC 算法進(jìn)行特征點(diǎn)錯(cuò)誤匹配對(duì)剔除時(shí),不僅會(huì)剔除掉錯(cuò)誤的匹配對(duì),同時(shí)也會(huì)將部分正確的匹配對(duì)進(jìn)行剔除,尤其是在閾值要求嚴(yán)格的情況下,更容易將正確的匹配對(duì)進(jìn)行誤剔除。即在計(jì)算單應(yīng)性矩陣H時(shí),使用到的正確匹配對(duì)是整體的一部分,這一部分正確匹配對(duì)的數(shù)量越大,越可以代表整體正確匹配對(duì),所以相對(duì)保留的正確匹配對(duì)越多越好。所以在閾值要求嚴(yán)格的情況下,特征點(diǎn)的正確匹配對(duì)數(shù)量越多,得到的單應(yīng)性矩陣H越準(zhǔn)確。
4.3.2 平均反向投影錯(cuò)誤率
平均反向投影錯(cuò)誤率可用來(lái)評(píng)估算法的匹配精度。平均反向投影錯(cuò)誤率的計(jì)算式見(jiàn)式(18):
4.4.1 實(shí)驗(yàn)一
該實(shí)驗(yàn)的設(shè)計(jì)目的為驗(yàn)證BRISK 算法相對(duì)于SURF 算 法、SIFT 算 法 以 及ORB 算 法 的 優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果如圖3、圖4 所示。
圖3 各算法提取特征點(diǎn)的時(shí)間對(duì)比Fig. 3 Time comparison of feature points extracted by each algorithm
圖4 各算法的特征點(diǎn)匹配準(zhǔn)確率Fig. 4 Matching accuracy of each keypoint detection al?gorithm
圖3 的 折 線 圖 是 由BRISK 算 法、SURF 算法、SIFT 算法以及ORB 算法對(duì)圖像進(jìn)行特征點(diǎn)檢測(cè)所需時(shí)間的比較,各種算法的運(yùn)行時(shí)間為10 次執(zhí)行時(shí)間取平均值為結(jié)果。由圖3 的各種特征點(diǎn)檢測(cè)算法的時(shí)間對(duì)比結(jié)果可以發(fā)現(xiàn),ORB算法的執(zhí)行時(shí)間最少,BRISK 算法的執(zhí)行時(shí)間低于SURF 算法、SIFT 算法,為次優(yōu)結(jié)果。
圖4 的柱狀圖是由BRISK 算法、SURF 算法、SIFT 算法以及ORB 算法對(duì)圖像進(jìn)行特征點(diǎn)匹配后,得到的特征點(diǎn)匹配準(zhǔn)確率,其中特征點(diǎn)匹配準(zhǔn)確率為經(jīng)過(guò)RANSAC 算法得到的匹配對(duì)個(gè)數(shù)除以粗匹配對(duì)個(gè)數(shù)。由圖4 可知,在當(dāng)前閾值下,ORB 算法的匹配準(zhǔn)確率最低,尤其在第2、8 組數(shù)據(jù)上,匹配準(zhǔn)確率僅有0.02;BRISK 算法的匹配準(zhǔn)確率在各組數(shù)據(jù)上均優(yōu)于SURF 算法、ORB 算法,在第3、4、7 組數(shù)據(jù)上優(yōu)于SIFT 算法。
由圖3、圖4 可知,雖然BRISK 算法的執(zhí)行時(shí)間稍弱于ORB 算法,但其在匹配準(zhǔn)確率上有著更為優(yōu)秀的結(jié)果。BRISK 算法在執(zhí)行時(shí)間和匹配準(zhǔn)確率上均優(yōu)于SURF 算法。與SIFT 算法相比,BRISK 算法雖然只有3 組數(shù)據(jù)在匹配準(zhǔn)確率上占優(yōu)勢(shì),但是在執(zhí)行時(shí)間上各組數(shù)據(jù)均優(yōu)于SIFT 算法,總體上可認(rèn)為BRISK 算法優(yōu)于SIFT算法。綜上,在當(dāng)前閾值下,BRISK 算法相對(duì)于SURF 算 法、SIFT 算 法 以 及ORB 算 法 具 有 明 顯的優(yōu)勢(shì)。
4.4.2 實(shí)驗(yàn)二
該實(shí)驗(yàn)的設(shè)計(jì)目的為驗(yàn)證本文改進(jìn)的RANSAC 算法相對(duì)于傳統(tǒng)RANSAC 算法以及PROSAC 算法的優(yōu)勢(shì),實(shí)驗(yàn)結(jié)果如圖5 和表1所示。
圖5 特征點(diǎn)的正確匹配對(duì)數(shù)目的比較結(jié)果Fig. 5 Comparison of the number of correct matching pairs of keypoints
圖5 柱狀圖是經(jīng)過(guò)剔除錯(cuò)誤匹配對(duì)算法后保留的特征點(diǎn)最終匹配對(duì)數(shù)。粗匹配為經(jīng)過(guò)KNNmatch 匹配算法得到的匹配結(jié)果,傳統(tǒng)的RANSAC 算 法、改 進(jìn) 的RANSAC 算 法、PRO?SAC 算法分別為將粗匹配結(jié)果經(jīng)過(guò)對(duì)應(yīng)的算法得到的最終正確匹配對(duì)個(gè)數(shù)。從圖5 中數(shù)據(jù)可以發(fā)現(xiàn),在每一組中,都剔除掉了大量的錯(cuò)誤匹配對(duì),但改進(jìn)后的RANSAC 算法所保留的正確匹配對(duì)的個(gè)數(shù)大于傳統(tǒng)的RANSAC 算法的結(jié)果,也大于PROSAC 算法的結(jié)果。
表1 是經(jīng)過(guò)剔除錯(cuò)誤匹配對(duì)算法后計(jì)算得到單應(yīng)性矩陣H,再利用其求得平均反向投影錯(cuò)誤率的結(jié)果,傳統(tǒng)的RANSAC 算法、改進(jìn)的RANSAC算法、PROSAC 算法分別為經(jīng)過(guò)對(duì)應(yīng)算法求得的平均反向投影錯(cuò)誤率。從表1 中數(shù)據(jù)可以發(fā)現(xiàn),在每一組中,改進(jìn)后的RANSAC 算法得到的平均反向投影錯(cuò)誤率小于傳統(tǒng)的RANSAC 算法,同時(shí)也小于PROSAC 算法的結(jié)果。由實(shí)驗(yàn)數(shù)據(jù)可知:相對(duì)于傳統(tǒng)的RANSAN 算法,本文改進(jìn)的RANSAC 算法在平均反向投影錯(cuò)誤率減少了約10%。
表1 平均反向投影錯(cuò)誤率的比較結(jié)果Tab.1 Comparison of the average back-projection error rate
如圖5、表1 所示,改進(jìn)的RANSAC 算法的在特征點(diǎn)的正確匹配對(duì)數(shù)目和平均反向投影錯(cuò)誤率上都具有優(yōu)越性。以圖像組數(shù)1 為例,其對(duì)應(yīng)的圖像處理過(guò)程如圖6 所示。
由圖6(d)可以發(fā)現(xiàn),經(jīng)過(guò)特征點(diǎn)粗匹配后,匹配結(jié)果中存在部分錯(cuò)誤匹配對(duì);圖6(e)、(f)、(g)分別為粗匹配結(jié)果使用改進(jìn)后的RANSAC算法、傳統(tǒng)的RANSAC 算法以及PROSAC 算法進(jìn)行剔除后的結(jié)果,括號(hào)內(nèi)的數(shù)值為匹配對(duì)個(gè)數(shù)。可以發(fā)現(xiàn),改進(jìn)后的RANSAC 算法得到的結(jié)果均為正確匹配對(duì),且數(shù)量上優(yōu)于傳統(tǒng)的RANSAC 算 法 和PROSAC 算 法;由 圖6(c)可知,最終得到的拼接結(jié)果過(guò)渡較為自然,無(wú)明顯接縫。
圖6 圖像拼接比較Fig. 6 Image mosaicing comparison
4.4.3 實(shí)驗(yàn)三
為了驗(yàn)證本文算法在時(shí)間方面的有效性,本實(shí)驗(yàn)將本文所用方法與較為常用的SIFT+RANSAC 方法、SIFT+PROSAC 方法、SURF+RANSAC 方 法、SURF+PROSAC 方 法 進(jìn) 行 圖像拼接的整體時(shí)間比較,整體時(shí)間主要包括特征點(diǎn)檢測(cè)時(shí)間、特征點(diǎn)粗匹配時(shí)間、精匹配時(shí)間以及圖像投影變換時(shí)間。實(shí)驗(yàn)結(jié)果如表2 所示,其中各拼接方法執(zhí)行時(shí)間為10 次執(zhí)行時(shí)間取平均值的結(jié)果。
從表2 中數(shù)據(jù)可以發(fā)現(xiàn),本文的圖像拼接方法的執(zhí)行時(shí)間優(yōu)于SIFT+RANSAC 方法、SIFT+PROSAC 方法、SURF+RANSAC 方法、SURF+PROSAC 方法。本文的圖像拼接方法的時(shí)間占比約為上述方法的50%,尤其是在第3 組和7 組數(shù)據(jù)上,執(zhí)行時(shí)間僅為其他算法的1/3,體現(xiàn)了本文方法的優(yōu)越性。
表2 各拼接方法執(zhí)行時(shí)間比較Tab.2 Comparison of execution time of each algorithm(ms)
針對(duì)圖像拼接的特征點(diǎn)檢測(cè)時(shí)間優(yōu)化和最終匹配對(duì)優(yōu)化問(wèn)題,本文提出了一種圖像拼接方法。該方法先使用BRISK 算法進(jìn)行特征點(diǎn)檢測(cè),有效縮短了特征點(diǎn)檢測(cè)的運(yùn)算時(shí)間;然后改進(jìn)了RANSAC 錯(cuò)誤匹配對(duì)剔除方法,使得在相同的條件下,可以得到的內(nèi)點(diǎn)數(shù)大于原RANSAC 算法,從而提高圖像拼接的準(zhǔn)確度。實(shí)驗(yàn)結(jié)果表明,BRISK 算法相對(duì)于SURF算法、SIFT 算法以及ORB 算法在特征點(diǎn)檢測(cè)時(shí)間以及特征點(diǎn)匹配準(zhǔn)確率上具有優(yōu)勢(shì);本文改進(jìn)的RANSAC 算法使得內(nèi)點(diǎn)個(gè)數(shù)增加,平均反向投影錯(cuò)誤率相對(duì)于原算法減小了10%左右;本文提出的拼接方法的執(zhí)行耗時(shí)約為常用的SIFT+RANSAC 方 法、SIFT+PROSAC 方 法、SURF+RANSAC 方法、SURF+PROSAC 方法的50%。本文提出的方法能夠?qū)崟r(shí)、準(zhǔn)確地進(jìn)行圖像拼接。
本文提出的算法主要針對(duì)于兩幅圖像的拼接,對(duì)于多幅圖像拼接問(wèn)題還需要更多深入的研究,如多幅圖像拼接的圖像曝光補(bǔ)償?shù)葐?wèn)題。