王淑霞,周波
黑龍江科技大學計算機與信息工程學院
一種基于RANSAC算法的單應矩陣估計方法
王淑霞,周波
黑龍江科技大學計算機與信息工程學院
在視覺測量、攝像機標定和三維重建等領域中,單應矩陣都起著至關重要的應用作用。但在求解單應矩陣時,圖像之間的特征點常常出現誤匹配的現象,針對該情況本文運用RANSAC (Random Sampling Consensus)算法解決特征點誤匹配問題,描述了從圖像的特征提取、特征點匹配到求解單應矩陣的完整的處理過程,并對算法有效性進行了驗證。方法簡單、快速、易實現,對提高計算機視覺應用穩定性具有一定的理論意義和實用價值。
單應矩陣;RANSAC方法;計算機視覺
單應性矩陣在圖像與計算機視覺處理方面有著重要的作用,單應性矩陣反映了平面圖像之間的對應關系。單應性矩陣已被廣泛用于視覺測量、圖像拼接、圖像配準和三維重構等領域中[1]。
目前關于單應矩陣的估計有以下三種方法即代數方法、統計估計方法[2]和幾何方法。代數方法是基于代數距離的最小化方法,也稱為線性估計方法。統計估計方法是一種在概率模型下進行估計的方法。幾何方法是基于幾何距離的最小化方法,該方法是非線性的,需要進行迭代計算。
上述方法算法簡單,但是在精度要求嚴格的情況下效果并不是很理想。所以本文采用隨機采樣一致性(RANSAC)方法,首先通過特征點對計算單應矩陣,然后利用隨機采樣一致性(RANSAC)方法配準誤差來衡量匹配的精度,篩選后得出最優單應性關系。同時此方法對于一些包含錯誤數據的情況也能給出較好的估計。
OpenCV中幾種定位與表示關鍵點的函數。"FAST"、"STAR"、"SIFT"、"SURF"、"Dense"、"SimpleBlob"等。
本文圖像特征為圓點,需提取圓點中心坐標,通過參數Area控制斑點的面積大小、參數circularity控制半點圓形度,圓形度為1表示斑點為圓形,圓形度貼近1表示斑點近似圓形,計算公式為:

單應矩陣是兩幅圖像之間的相互關系,也就是說,一張圖像上的任意一個點都可以在另一張圖像上找到對應的點,而且對應點唯一,反之亦然。
如果給定一個單應H={hij},一個單應中只有8個自由元素,一般令右下角的那個元素h33=1來歸一化。8個未知數,需要四對點能夠求解,是因為一對點提供兩個方程。我們假設有兩個圖像上的點[x1,y1]T和[x2,y2]T,它們的齊次坐標為:[x1,y1,1]T和[x2,y2,1]T帶到上面的推導可以得到:

把這兩個式子重新組織一下,得到等價的矩陣形式:

Au=v如果有四對不共線匹配點對,這個方程組就能夠得到8行,存在唯一解,如果多于四對點,比如本文有7對點,方程就到14行,就可以最小二乘求解H。
RANSAC算法有一個基本的假設,給定一組正確的數據,存在可以計算出符合這些數據的模型參數的方法。
(1)取4個點對為假設的局內點,計算單應矩陣。
(2)用(1)得到的單應矩陣測試所有其它點,如果某個點對適應于單應矩陣,即映射誤差較小,可認為也是局內點。
(3)如果被歸類為局內點的數據足夠多,那么得到的單應矩陣就是合理的。
(4)用所有的局內點去重新估計單應矩陣。
(5)最后通過評估局內點與單應矩陣映射誤差進行評估模型。
(6)以上過程被重復執行固定的次數,每次生成的單應矩陣或是因為局內點太少而被舍棄,或是因為比現有模型更好而被選用。
通過迭代隨機選取局內點計算單應矩陣,能夠將誤匹配的外點剔除,提高了單應矩陣的精度。
本實驗計算機硬軟件配置為Microsof Windows 7操作系統、OpenCV開發環境、Intel奔騰四核N3530、內存容量4G、顯存容量1G。攝像頭是采用相同分辨率為1280*1024的2個微視MVC1000MF黑白攝像頭,鏡頭為兩個Pentax百萬像素鏡頭,拍攝的兩幅圖像如圖4-1所示。
實驗結果:

圖4-1 特征點圖像

圖4-2 RANSAC糾正的匹配圖像
單應矩陣為:

本文對單應矩陣的估計問題進行了深入研究,并提出了基于隨機采樣一致性(RANSAC)算法的魯棒估計算法。通過OpenCV中SimpleBlob函數設定適當閾值來精確定位特征點,在特征匹配方面運用RANSAC算法對包含有外點的匹配點對進行了參數估計,提高了算法的魯棒性。實驗結果表明此算法可以快速、高精度的計算得到兩張圖像之間的單應矩陣。
[1]鄭順義,張祖勛,翟瑞芳.基于非量測相機的復雜物體三維重建[J].武漢大學學報(信息科學版)2008,33(5):446-449.
[2]曾慧,鄧小明,趙訓坡,等.基于線對應的單應矩陣估計及其在視覺測量中的應用[J].自動化學報,2007,33(5).
王淑霞(1982-),女,黑龍江安達人,碩士研究生,黑龍江科技大學在讀。