韓 沖
(陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院智能制造學(xué)院,陜西 西安 710300)
SIFT算法是求得兩幅圖像對(duì)應(yīng)點(diǎn)的一種有效方法。但是傳統(tǒng)的SIFT算法求出的匹配點(diǎn)過(guò)于繁雜,并且包含許多錯(cuò)誤的匹配點(diǎn)。因此,對(duì)于圖像處理的基礎(chǔ)矩陣選取合適的匹配點(diǎn)將成為三維重構(gòu)的一大難題。
RANSAC是隨機(jī)采樣序列的一種方法,從所有正確與錯(cuò)誤匹配點(diǎn)混雜的數(shù)據(jù)中,通過(guò)數(shù)學(xué)的思想來(lái)剔除錯(cuò)誤匹配點(diǎn)[1]。用RANSAC剔除SIFT錯(cuò)誤匹配點(diǎn)的方法包括以下三步:
1)計(jì)算基礎(chǔ)矩陣。在SIFT匹配結(jié)果中隨機(jī)選取8個(gè)0匹配點(diǎn)作為正確匹配點(diǎn)。
2)計(jì)算對(duì)極線距離d。利用基礎(chǔ)矩陣來(lái)求得。
3)重復(fù)N次1、2步并記錄數(shù)據(jù)。正確匹配點(diǎn)的判斷標(biāo)準(zhǔn)是對(duì)極線距離d小于一定的門限值,將得出的數(shù)據(jù)記錄。
構(gòu)建模型參數(shù)。根據(jù)數(shù)理統(tǒng)計(jì)相關(guān)知識(shí),在置信度為p=0.99下,通過(guò)N次重復(fù)取得至少有一次不含錯(cuò)誤匹配點(diǎn)采樣。隨機(jī)采樣的次數(shù)為:

其中:ε為錯(cuò)誤匹配概率,ε的計(jì)算公式為ε=I/S(表示S個(gè)匹配點(diǎn)中共有I個(gè)錯(cuò)誤匹配點(diǎn));p為置信度,本文置信度為0.99。
RANSAC算法的每一次循環(huán)包括一次基礎(chǔ)矩陣的計(jì)算和S次代價(jià)函數(shù)(距離d的計(jì)算),則RANSAC算法所需的總時(shí)間t為:

用數(shù)學(xué)思想來(lái)簡(jiǎn)單描述一下對(duì)極幾何關(guān)系。在空間中隨機(jī)一個(gè)點(diǎn)X在兩個(gè)圖像上的投影分別為x點(diǎn)和x',投影出的這兩個(gè)點(diǎn)x和x'即為一組匹配點(diǎn)。C和C'是相機(jī)的光心,它們的連線交兩個(gè)圖像于點(diǎn)e和e',e和e'和稱為對(duì)極點(diǎn)。在圖像1中,點(diǎn)e與點(diǎn)x的連線l稱為圖像1的一條對(duì)極線,對(duì)應(yīng)的,l'為圖像2的一條對(duì)極線。


對(duì)極幾何關(guān)系就是一個(gè)含有9個(gè)未知數(shù)的齊次線性方程組成,因此,至少知道8個(gè)匹配點(diǎn)就可以求得了。
用RANSAC方法剔除錯(cuò)誤的匹配點(diǎn)后得到一系列的正確匹配點(diǎn),但是用此方法得到的是稀疏的匹配點(diǎn),此方法在處理較高精度的曲面圖像有一定局限性。因此,常采用相對(duì)稀疏的匹配點(diǎn)來(lái)求取相關(guān)參數(shù),利用稠密匹配點(diǎn)對(duì)標(biāo)定好的圖像完成三維重構(gòu)[2]。
本文采用Quasi稠密匹配,可以完成模型表面的三維重構(gòu),獲得像素級(jí)的匹配結(jié)果。具體的Quasi稠密匹配算法的步驟為:
1)首先選擇初始匹配種子點(diǎn)。主要是利用離散的稀疏匹配點(diǎn)并通過(guò)對(duì)極約束的方法選擇初始匹配種子點(diǎn)。
2)通過(guò)RANSAC方法選取正確的匹配點(diǎn)作為種子點(diǎn)。
3)種子點(diǎn)需要滿足一定的闕值,把不能滿足闕值的點(diǎn)從種子列表中剔除。
4)剔除完剩余的種子點(diǎn)之后,重新尋找新的匹配點(diǎn),再將新的匹配點(diǎn)加入到種子列表當(dāng)中。
5)計(jì)算各個(gè)種子點(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方法對(duì)SIFT匹配結(jié)果進(jìn)行篩選。
3)利用Quasi稠密匹配的方法對(duì)RANSC結(jié)果進(jìn)行傳播,得到匹配點(diǎn)。

圖1 圖像匹配結(jié)果
SIFT匹配(得到338個(gè)匹配點(diǎn))采用圖像大小1 024×768完成,算法對(duì)應(yīng)參數(shù)為:

由于前文提到的SIFT算法會(huì)出現(xiàn)許多錯(cuò)誤的匹配點(diǎn),使用RANSC方法求得最佳的基本矩陣后,為驗(yàn)證圖像處理的有效性故隨機(jī)選取5個(gè)點(diǎn)對(duì)應(yīng)的對(duì)極線,那么如何判斷何為錯(cuò)誤匹配點(diǎn),如圖2所示。

圖2 點(diǎn)的對(duì)極線分布
由圖3可以得出結(jié)論,1點(diǎn)并不在對(duì)極線上,根據(jù)要求,1點(diǎn)就是要篩選出去的錯(cuò)誤匹配點(diǎn),根據(jù)Quasi稠密匹配原理,需要將錯(cuò)誤匹配點(diǎn)剔除出去。

圖3 剔除錯(cuò)誤匹配點(diǎn)后的RANSAC實(shí)驗(yàn)結(jié)果
影響匹配結(jié)果導(dǎo)致錯(cuò)誤匹配點(diǎn)的原因有很多,可能是計(jì)算結(jié)果的差異,也可能是噪聲等環(huán)境因素,那么衡量匹配點(diǎn)正確的參數(shù)如何計(jì)算,因此,本文引入正確率[3]。


圖4 RANSC方法與SIFT算法正確率比較
但是此公式在不同場(chǎng)合下計(jì)算得出的結(jié)論卻并不相同,會(huì)導(dǎo)致匹配正確率的幅度變化很大,因此,本文又在不同的實(shí)驗(yàn)條件下來(lái)做相同的實(shí)驗(yàn),如圖4所示。
通過(guò)圖5可以得出,隨著誤差閾值的減小,基于RANSC的Quasi對(duì)極稠密匹配方法算法得到的匹配點(diǎn)與SIFT算法相比,正確率有明顯提高。其Quasi稠密匹配結(jié)果如圖5所示。

圖5 稠密匹配結(jié)果
由此可以看出圖中稠密匹配點(diǎn)很多,無(wú)法一一用連線來(lái)表示,只能用白色的點(diǎn)來(lái)表示。但是通過(guò)此圖可以清晰的看出物體表面的信息,故本文用到的方法可以解決三維重構(gòu)問題[4]。
基于RANSAC方法對(duì)極稠密匹配的三維重構(gòu),主要采用RANSAC方法對(duì)極幾何算法,在運(yùn)用SIFT算法得到的結(jié)果下篩選出來(lái)錯(cuò)誤的匹配點(diǎn),得到更精準(zhǔn)的匹配點(diǎn)。再采用Quasi稠密匹配的方法,經(jīng)過(guò)三步最終篩選出既可以滿足要求又能夠充分反映物體表面信息的致密匹配點(diǎn),最終解決三維重構(gòu)問題。此研究對(duì)解決該問題有一定借鑒意義。