韓 沖
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院智能制造學(xué)院,陜西 西安 710300)
SIFT算法是求得兩幅圖像對應(yīng)點(diǎn)的一種有效方法。但是傳統(tǒng)的SIFT算法求出的匹配點(diǎn)過于繁雜,并且包含許多錯誤的匹配點(diǎn)。因此,對于圖像處理的基礎(chǔ)矩陣選取合適的匹配點(diǎn)將成為三維重構(gòu)的一大難題。
RANSAC是隨機(jī)采樣序列的一種方法,從所有正確與錯誤匹配點(diǎn)混雜的數(shù)據(jù)中,通過數(shù)學(xué)的思想來剔除錯誤匹配點(diǎn)[1]。用RANSAC剔除SIFT錯誤匹配點(diǎn)的方法包括以下三步:
1)計(jì)算基礎(chǔ)矩陣。在SIFT匹配結(jié)果中隨機(jī)選取8個0匹配點(diǎn)作為正確匹配點(diǎn)。
2)計(jì)算對極線距離d。利用基礎(chǔ)矩陣來求得。
3)重復(fù)N次1、2步并記錄數(shù)據(jù)。正確匹配點(diǎn)的判斷標(biāo)準(zhǔn)是對極線距離d小于一定的門限值,將得出的數(shù)據(jù)記錄。
構(gòu)建模型參數(shù)。根據(jù)數(shù)理統(tǒng)計(jì)相關(guān)知識,在置信度為p=0.99下,通過N次重復(fù)取得至少有一次不含錯誤匹配點(diǎn)采樣。隨機(jī)采樣的次數(shù)為:
其中:ε為錯誤匹配概率,ε的計(jì)算公式為ε=I/S(表示S個匹配點(diǎn)中共有I個錯誤匹配點(diǎn));p為置信度,本文置信度為0.99。
RANSAC算法的每一次循環(huán)包括一次基礎(chǔ)矩陣的計(jì)算和S次代價函數(shù)(距離d的計(jì)算),則RANSAC算法所需的總時間t為:
用數(shù)學(xué)思想來簡單描述一下對極幾何關(guān)系。在空間中隨機(jī)一個點(diǎn)X在兩個圖像上的投影分別為x點(diǎn)和x',投影出的這兩個點(diǎn)x和x'即為一組匹配點(diǎn)。C和C'是相機(jī)的光心,它們的連線交兩個圖像于點(diǎn)e和e',e和e'和稱為對極點(diǎn)。在圖像1中,點(diǎn)e與點(diǎn)x的連線l稱為圖像1的一條對極線,對應(yīng)的,l'為圖像2的一條對極線。
對極幾何關(guān)系就是一個含有9個未知數(shù)的齊次線性方程組成,因此,至少知道8個匹配點(diǎn)就可以求得了。
用RANSAC方法剔除錯誤的匹配點(diǎn)后得到一系列的正確匹配點(diǎn),但是用此方法得到的是稀疏的匹配點(diǎn),此方法在處理較高精度的曲面圖像有一定局限性。因此,常采用相對稀疏的匹配點(diǎn)來求取相關(guān)參數(shù),利用稠密匹配點(diǎn)對標(biāo)定好的圖像完成三維重構(gòu)[2]。
本文采用Quasi稠密匹配,可以完成模型表面的三維重構(gòu),獲得像素級的匹配結(jié)果。具體的Quasi稠密匹配算法的步驟為:
1)首先選擇初始匹配種子點(diǎn)。主要是利用離散的稀疏匹配點(diǎn)并通過對極約束的方法選擇初始匹配種子點(diǎn)。
2)通過RANSAC方法選取正確的匹配點(diǎn)作為種子點(diǎn)。
3)種子點(diǎn)需要滿足一定的闕值,把不能滿足闕值的點(diǎn)從種子列表中剔除。
4)剔除完剩余的種子點(diǎn)之后,重新尋找新的匹配點(diǎn),再將新的匹配點(diǎn)加入到種子列表當(dāng)中。
5)計(jì)算各個種子點(diǎn)間的匹配關(guān)系,不斷循環(huán)完成3),直到種子列表中的種子點(diǎn)數(shù)為0,完成此循環(huán)。
由以上論述的標(biāo)定原理,制定具體的實(shí)驗(yàn)步驟:
1)選擇兩幅圖像作為原始圖像,采用SIFT算法進(jìn)行特征點(diǎn)的提取和匹配,如圖1所示。
2)利用RANSAC方法對SIFT匹配結(jié)果進(jìn)行篩選。
3)利用Quasi稠密匹配的方法對RANSC結(jié)果進(jìn)行傳播,得到匹配點(diǎn)。
圖1 圖像匹配結(jié)果
SIFT匹配(得到338個匹配點(diǎn))采用圖像大小1 024×768完成,算法對應(yīng)參數(shù)為:
由于前文提到的SIFT算法會出現(xiàn)許多錯誤的匹配點(diǎn),使用RANSC方法求得最佳的基本矩陣后,為驗(yàn)證圖像處理的有效性故隨機(jī)選取5個點(diǎn)對應(yīng)的對極線,那么如何判斷何為錯誤匹配點(diǎn),如圖2所示。
圖2 點(diǎn)的對極線分布
由圖3可以得出結(jié)論,1點(diǎn)并不在對極線上,根據(jù)要求,1點(diǎn)就是要篩選出去的錯誤匹配點(diǎn),根據(jù)Quasi稠密匹配原理,需要將錯誤匹配點(diǎn)剔除出去。
圖3 剔除錯誤匹配點(diǎn)后的RANSAC實(shí)驗(yàn)結(jié)果
影響匹配結(jié)果導(dǎo)致錯誤匹配點(diǎn)的原因有很多,可能是計(jì)算結(jié)果的差異,也可能是噪聲等環(huán)境因素,那么衡量匹配點(diǎn)正確的參數(shù)如何計(jì)算,因此,本文引入正確率[3]。
圖4 RANSC方法與SIFT算法正確率比較
但是此公式在不同場合下計(jì)算得出的結(jié)論卻并不相同,會導(dǎo)致匹配正確率的幅度變化很大,因此,本文又在不同的實(shí)驗(yàn)條件下來做相同的實(shí)驗(yàn),如圖4所示。
通過圖5可以得出,隨著誤差閾值的減小,基于RANSC的Quasi對極稠密匹配方法算法得到的匹配點(diǎn)與SIFT算法相比,正確率有明顯提高。其Quasi稠密匹配結(jié)果如圖5所示。
圖5 稠密匹配結(jié)果
由此可以看出圖中稠密匹配點(diǎn)很多,無法一一用連線來表示,只能用白色的點(diǎn)來表示。但是通過此圖可以清晰的看出物體表面的信息,故本文用到的方法可以解決三維重構(gòu)問題[4]。
基于RANSAC方法對極稠密匹配的三維重構(gòu),主要采用RANSAC方法對極幾何算法,在運(yùn)用SIFT算法得到的結(jié)果下篩選出來錯誤的匹配點(diǎn),得到更精準(zhǔn)的匹配點(diǎn)。再采用Quasi稠密匹配的方法,經(jīng)過三步最終篩選出既可以滿足要求又能夠充分反映物體表面信息的致密匹配點(diǎn),最終解決三維重構(gòu)問題。此研究對解決該問題有一定借鑒意義。