王淑霞,周波
黑龍江科技大學(xué)計(jì)算機(jī)與信息工程學(xué)院
一種基于RANSAC算法的單應(yīng)矩陣估計(jì)方法
王淑霞,周波
黑龍江科技大學(xué)計(jì)算機(jī)與信息工程學(xué)院
在視覺(jué)測(cè)量、攝像機(jī)標(biāo)定和三維重建等領(lǐng)域中,單應(yīng)矩陣都起著至關(guān)重要的應(yīng)用作用。但在求解單應(yīng)矩陣時(shí),圖像之間的特征點(diǎn)常常出現(xiàn)誤匹配的現(xiàn)象,針對(duì)該情況本文運(yùn)用RANSAC (Random Sampling Consensus)算法解決特征點(diǎn)誤匹配問(wèn)題,描述了從圖像的特征提取、特征點(diǎn)匹配到求解單應(yīng)矩陣的完整的處理過(guò)程,并對(duì)算法有效性進(jìn)行了驗(yàn)證。方法簡(jiǎn)單、快速、易實(shí)現(xiàn),對(duì)提高計(jì)算機(jī)視覺(jué)應(yīng)用穩(wěn)定性具有一定的理論意義和實(shí)用價(jià)值。
單應(yīng)矩陣;RANSAC方法;計(jì)算機(jī)視覺(jué)
單應(yīng)性矩陣在圖像與計(jì)算機(jī)視覺(jué)處理方面有著重要的作用,單應(yīng)性矩陣反映了平面圖像之間的對(duì)應(yīng)關(guān)系。單應(yīng)性矩陣已被廣泛用于視覺(jué)測(cè)量、圖像拼接、圖像配準(zhǔn)和三維重構(gòu)等領(lǐng)域中[1]。
目前關(guān)于單應(yīng)矩陣的估計(jì)有以下三種方法即代數(shù)方法、統(tǒng)計(jì)估計(jì)方法[2]和幾何方法。代數(shù)方法是基于代數(shù)距離的最小化方法,也稱(chēng)為線性估計(jì)方法。統(tǒng)計(jì)估計(jì)方法是一種在概率模型下進(jìn)行估計(jì)的方法。幾何方法是基于幾何距離的最小化方法,該方法是非線性的,需要進(jìn)行迭代計(jì)算。
上述方法算法簡(jiǎn)單,但是在精度要求嚴(yán)格的情況下效果并不是很理想。所以本文采用隨機(jī)采樣一致性(RANSAC)方法,首先通過(guò)特征點(diǎn)對(duì)計(jì)算單應(yīng)矩陣,然后利用隨機(jī)采樣一致性(RANSAC)方法配準(zhǔn)誤差來(lái)衡量匹配的精度,篩選后得出最優(yōu)單應(yīng)性關(guān)系。同時(shí)此方法對(duì)于一些包含錯(cuò)誤數(shù)據(jù)的情況也能給出較好的估計(jì)。
OpenCV中幾種定位與表示關(guān)鍵點(diǎn)的函數(shù)。"FAST"、"STAR"、"SIFT"、"SURF"、"Dense"、"SimpleBlob"等。
本文圖像特征為圓點(diǎn),需提取圓點(diǎn)中心坐標(biāo),通過(guò)參數(shù)Area控制斑點(diǎn)的面積大小、參數(shù)circularity控制半點(diǎn)圓形度,圓形度為1表示斑點(diǎn)為圓形,圓形度貼近1表示斑點(diǎn)近似圓形,計(jì)算公式為:
單應(yīng)矩陣是兩幅圖像之間的相互關(guān)系,也就是說(shuō),一張圖像上的任意一個(gè)點(diǎn)都可以在另一張圖像上找到對(duì)應(yīng)的點(diǎn),而且對(duì)應(yīng)點(diǎn)唯一,反之亦然。
如果給定一個(gè)單應(yīng)H={hij},一個(gè)單應(yīng)中只有8個(gè)自由元素,一般令右下角的那個(gè)元素h33=1來(lái)歸一化。8個(gè)未知數(shù),需要四對(duì)點(diǎn)能夠求解,是因?yàn)橐粚?duì)點(diǎn)提供兩個(gè)方程。我們假設(shè)有兩個(gè)圖像上的點(diǎn)[x1,y1]T和[x2,y2]T,它們的齊次坐標(biāo)為:[x1,y1,1]T和[x2,y2,1]T帶到上面的推導(dǎo)可以得到:
把這兩個(gè)式子重新組織一下,得到等價(jià)的矩陣形式:
Au=v如果有四對(duì)不共線匹配點(diǎn)對(duì),這個(gè)方程組就能夠得到8行,存在唯一解,如果多于四對(duì)點(diǎn),比如本文有7對(duì)點(diǎn),方程就到14行,就可以最小二乘求解H。
RANSAC算法有一個(gè)基本的假設(shè),給定一組正確的數(shù)據(jù),存在可以計(jì)算出符合這些數(shù)據(jù)的模型參數(shù)的方法。
(1)取4個(gè)點(diǎn)對(duì)為假設(shè)的局內(nèi)點(diǎn),計(jì)算單應(yīng)矩陣。
(2)用(1)得到的單應(yīng)矩陣測(cè)試所有其它點(diǎn),如果某個(gè)點(diǎn)對(duì)適應(yīng)于單應(yīng)矩陣,即映射誤差較小,可認(rèn)為也是局內(nèi)點(diǎn)。
(3)如果被歸類(lèi)為局內(nèi)點(diǎn)的數(shù)據(jù)足夠多,那么得到的單應(yīng)矩陣就是合理的。
(4)用所有的局內(nèi)點(diǎn)去重新估計(jì)單應(yīng)矩陣。
(5)最后通過(guò)評(píng)估局內(nèi)點(diǎn)與單應(yīng)矩陣映射誤差進(jìn)行評(píng)估模型。
(6)以上過(guò)程被重復(fù)執(zhí)行固定的次數(shù),每次生成的單應(yīng)矩陣或是因?yàn)榫謨?nèi)點(diǎn)太少而被舍棄,或是因?yàn)楸痊F(xiàn)有模型更好而被選用。
通過(guò)迭代隨機(jī)選取局內(nèi)點(diǎn)計(jì)算單應(yīng)矩陣,能夠?qū)⒄`匹配的外點(diǎn)剔除,提高了單應(yīng)矩陣的精度。
本實(shí)驗(yàn)計(jì)算機(jī)硬軟件配置為Microsof Windows 7操作系統(tǒng)、OpenCV開(kāi)發(fā)環(huán)境、Intel奔騰四核N3530、內(nèi)存容量4G、顯存容量1G。攝像頭是采用相同分辨率為1280*1024的2個(gè)微視MVC1000MF黑白攝像頭,鏡頭為兩個(gè)Pentax百萬(wàn)像素鏡頭,拍攝的兩幅圖像如圖4-1所示。
實(shí)驗(yàn)結(jié)果:
圖4-1 特征點(diǎn)圖像
圖4-2 RANSAC糾正的匹配圖像
單應(yīng)矩陣為:
本文對(duì)單應(yīng)矩陣的估計(jì)問(wèn)題進(jìn)行了深入研究,并提出了基于隨機(jī)采樣一致性(RANSAC)算法的魯棒估計(jì)算法。通過(guò)OpenCV中SimpleBlob函數(shù)設(shè)定適當(dāng)閾值來(lái)精確定位特征點(diǎn),在特征匹配方面運(yùn)用RANSAC算法對(duì)包含有外點(diǎn)的匹配點(diǎn)對(duì)進(jìn)行了參數(shù)估計(jì),提高了算法的魯棒性。實(shí)驗(yàn)結(jié)果表明此算法可以快速、高精度的計(jì)算得到兩張圖像之間的單應(yīng)矩陣。
[1]鄭順義,張祖勛,翟瑞芳.基于非量測(cè)相機(jī)的復(fù)雜物體三維重建[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版)2008,33(5):446-449.
[2]曾慧,鄧小明,趙訓(xùn)坡,等.基于線對(duì)應(yīng)的單應(yīng)矩陣估計(jì)及其在視覺(jué)測(cè)量中的應(yīng)用[J].自動(dòng)化學(xué)報(bào),2007,33(5).
王淑霞(1982-),女,黑龍江安達(dá)人,碩士研究生,黑龍江科技大學(xué)在讀。