宋孟良,張國(guó)偉,盧秋紅,張?zhí)K蘇
(1.上海電力大學(xué) 自動(dòng)化工程學(xué)院,上海200082;2.上海合時(shí)智能科技有限公司,上海201100;3.上海太陽(yáng)能工程技術(shù)研究中心有限公司,上海201100)
目前,機(jī)器視覺(jué)發(fā)展迅速并廣泛應(yīng)用于各個(gè)領(lǐng)域。圖像的特征點(diǎn)提取與匹配屬于機(jī)器視覺(jué)的基礎(chǔ)組成部分,在圖像配準(zhǔn)、視覺(jué)SLAM、三維重建等多個(gè)領(lǐng)域都起著重要的作用[1-3]。特征匹配的結(jié)果是下一個(gè)環(huán)節(jié)的輸入數(shù)據(jù),是其他圖像處理的前提和關(guān)鍵[4]。因此,在特征匹配中減少誤匹配的數(shù)量并提高特征匹配的正確率與效率會(huì)對(duì)實(shí)際應(yīng)用產(chǎn)生較大的影響。
在SIFT[5]中,作者提出一種基于KNN的比例誤匹配篩選方法,但這種方法魯棒性較差。Fischler等[6]提出基于統(tǒng)計(jì)模型的經(jīng)典方法RANSAC(Random Sample Consensus),該方法可以在包含“局外點(diǎn)”的數(shù)據(jù)中,通過(guò)迭代有效地得到高精度的數(shù)學(xué)模型,該方法具有一定的魯棒性,但是迭代次數(shù)沒(méi)有上限計(jì)算時(shí)間較長(zhǎng),當(dāng)數(shù)據(jù)整體錯(cuò)誤率較高時(shí),其計(jì)算結(jié)果也會(huì)有較高的錯(cuò)誤率。文獻(xiàn)[7]中,將前兩種算法相融合,減少了RANSAC的迭代次數(shù)并且提高了正確匹配率。文獻(xiàn)[8]中,提出了一種改進(jìn)RANSAC的方法,通過(guò)改進(jìn)損失函數(shù)使模型考慮到了不同匹配的誤差,相比于傳統(tǒng)方法提高了模型的估算精度。文獻(xiàn)[9]在文獻(xiàn)[8]的基礎(chǔ)上使用具有更大概率的“內(nèi)點(diǎn)”的數(shù)據(jù)點(diǎn)來(lái)指導(dǎo)數(shù)據(jù)采樣,并且在估算單應(yīng)矩陣時(shí)使用這些點(diǎn)作為先驗(yàn)知識(shí),進(jìn)一步提高了模型估算的精度。文獻(xiàn)[10]中,將所有匹配點(diǎn)以先驗(yàn)知識(shí)為依據(jù)進(jìn)行排序,將“內(nèi)點(diǎn)”概率大的點(diǎn)排在前面,有序地進(jìn)行采樣而不是隨機(jī)進(jìn)行,進(jìn)一步提高了算法的運(yùn)行速度和魯棒性。文獻(xiàn)[11]中,為了解決大比例的誤匹配會(huì)影響模型精度問(wèn)題,以一個(gè)更好的模型為基礎(chǔ)進(jìn)行局部?jī)?yōu)化,以克服大比例誤匹配對(duì)模型精度的影響。
為了兼顧魯棒性和計(jì)算速度,本文在前人的基礎(chǔ)上提出了一種快速的誤匹配篩選算法,融合使用Otsu算法和RANSAC算法,在保證正確率與充足匹配對(duì)的情況下提高了算法的計(jì)算速度。最后在TMU數(shù)據(jù)集上驗(yàn)證了該方法的有效性。
在特征匹配中,假設(shè)待匹配圖像矩陣的個(gè)數(shù)為n元素值,用個(gè)數(shù)為n的元素值(x1,x2,…,xn)組成該圖像的特征組,特征組構(gòu)成了n維空間,特征組中的元素值構(gòu)成了每一維的數(shù)值。在n維空間下,待匹配的兩張圖像的特征點(diǎn)的集合分別記為A與B:

最大類(lèi)間方差法是由日本學(xué)者大津展之[12]于1979年提出的,是一種自適應(yīng)的閾值確定方法,簡(jiǎn)稱(chēng)Otsu,該方法的本質(zhì)上是一種分類(lèi)算法。
本文將該算法應(yīng)用于特征點(diǎn)的誤匹配篩選,具體算法如下。
假設(shè)2張圖片特征匹配完成后得到的所有匹配對(duì)的數(shù)量為N,將匹配對(duì)歐式距離映射為d∈[0,255],歐氏距離等級(jí)為d的匹配對(duì)的個(gè)數(shù)為nd,則每個(gè)等級(jí)的歐氏距離出現(xiàn)的概率為pd=nd/N;假設(shè)最佳閾值為t,則根據(jù)閾值t將所有匹配對(duì)劃分為正確匹配與錯(cuò)誤匹配2類(lèi):

歐氏距離越小則說(shuō)明匹配對(duì)是正確匹配的概率越高,則正確匹配對(duì)對(duì)應(yīng)的范圍為Right∈(0,T)。
圖像特征點(diǎn)匹配初次匹配完成后得到的特征點(diǎn)包含大量的錯(cuò)誤匹配,本文利用所有特征匹配對(duì)的平均歐氏距離進(jìn)行初次篩選,提高算法的運(yùn)行效率[13]。在1.2節(jié)中基于歐式距離的Otsu算法中,根據(jù)式(1)~式(3)可知:


由此可得|μ-μR(t)|-|μ-μW(t)|>0,即表明,特征匹配對(duì)的歐氏距離均值μ更接近于錯(cuò)誤匹配所對(duì)應(yīng)的歐式距離均值μR(t),即更接近于錯(cuò)誤匹配對(duì)應(yīng)的峰值,則說(shuō)明Otsu算法的最佳閾值在本算法中處于2個(gè)峰值之間的峰谷處,即T∈(0,μ),μ大于T,表明所有的匹配對(duì)中歐氏距離大于μ的匹配對(duì)應(yīng)該剔除。
在特征匹配完成后,待匹配的2張圖像之間特征帶點(diǎn)的對(duì)應(yīng)關(guān)系確定。此時(shí)圖片A與圖片B之間存在對(duì)應(yīng)關(guān)系A(chǔ)=H·B,矩陣H是一個(gè)3×3的最佳單應(yīng)性矩陣,通常令h33歸一化矩陣。

式中:S為圖像尺度參數(shù);(x′,y′)為圖像A角點(diǎn)位置;(x,y)為圖像B角點(diǎn)位置。
假設(shè)樣本數(shù)(即特征匹配對(duì)的總數(shù))為M,從數(shù)據(jù)集中隨機(jī)抽取m個(gè)樣本,因?yàn)閱螒?yīng)性矩陣H中共有8個(gè)未知數(shù),至少需要8個(gè)線性方程組求解,所以m≥4,根據(jù)樣本計(jì)算得到的模型后將滿(mǎn)足該模型的特征匹配對(duì)的個(gè)數(shù)與重投影誤差,通過(guò)多次迭代使得重投影誤差最小的模型即為所求。
雖然RANSAC具有較強(qiáng)的魯棒性,但是該算法的迭代次數(shù)沒(méi)有上限算法,運(yùn)行時(shí)間較長(zhǎng),限制迭代次數(shù)可能會(huì)導(dǎo)致無(wú)法得到最優(yōu)模型。為了進(jìn)一步提高RANSAC的算法運(yùn)行速度與模型精度,我們采用文獻(xiàn)[10]中的算法思想,將2次篩選后的特征匹配對(duì)根據(jù)歐式距離從大到小依次排序后,對(duì)RANSAC進(jìn)行優(yōu)化。
為了解決圖像特征帶點(diǎn)誤匹配篩選算法魯棒性較差、耗時(shí)較長(zhǎng)等問(wèn)題,本文提出了基于歐氏距離的特征匹配對(duì)誤匹配篩選算法。首先,使用歐氏距離作為圖像特征匹配對(duì)的置信度,特征匹配對(duì)的歐氏距離越小則說(shuō)明特征匹配對(duì)的置信度越高,然后在歐氏距離的基礎(chǔ)上構(gòu)建Otsu算法,通過(guò)平均歐式距離進(jìn)行初次篩選,然后通過(guò)迭代計(jì)算得到最佳閾值T,在二次篩選完成后將剩余匹配對(duì)根據(jù)歐氏距離排序,最后通過(guò)RANSAC算法迭代計(jì)算出最優(yōu)模型。
為了驗(yàn)證本文提出的誤匹配算法的有效性,在德國(guó)慕尼黑大學(xué)TUM數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)平臺(tái)采用Windows10操作系統(tǒng)、AMD Ryzen 2600 Six-Core Processor(3400 MHz)、16GB DDR4 RAM,不使用GPU加速,編程環(huán)境為Visual Studio2017。
為了驗(yàn)證算法的有效性,我們分別對(duì)Otsu算法及基于Otsu的閾值篩選算法進(jìn)行實(shí)驗(yàn)。選取圖像為ORBSLAM中使用的TMU數(shù)據(jù)集。該數(shù)據(jù)集是汽車(chē)行駛中的實(shí)際路況,圖像分辨率為800×900,采樣頻率為10 fps,兩張圖像之間的時(shí)間間隔為18 ms以上,提取的特征匹配對(duì)的數(shù)量為500。

圖2 平均歐氏距離的篩選結(jié)果
由實(shí)驗(yàn)結(jié)果可以觀察到,在Otsu算法篩選后仍然存在一些誤匹配,并不能直接使用得到的結(jié)果,因此需要與RANSAC算法融合進(jìn)一步篩選。

圖3 傳統(tǒng)RANSAC篩選結(jié)果

圖4 本文算法篩選結(jié)果

表1 算法性能對(duì)比
由圖1、圖2中實(shí)驗(yàn)結(jié)果可知,本文提出的基于歐氏距離的Otsu篩選算法及平均歐氏距離篩選算法的有效性,可以篩選掉大量的錯(cuò)誤匹配。
由圖3、圖4及表1中的結(jié)果可知,本文提出的融合算法可以有效地進(jìn)行誤匹配篩選,并且能夠保留較多的特征匹配對(duì),算法得到的篩選結(jié)果正確率較高,與傳統(tǒng)RANSAC算法相對(duì)比,本文算法的運(yùn)行速度大幅度上升,篩選結(jié)果正確率也有所提高。與傳統(tǒng)RANSAC算法相比,本文算法篩選后的匹配對(duì)數(shù)量有所下降,但是比其他種類(lèi)的算法保留的匹配對(duì)數(shù)量要多,并且斜率較為固定,具有良好的自適應(yīng)性。與傳統(tǒng)RANSAC算法相比,本文算法運(yùn)行時(shí)間大幅度減小,對(duì)篩選數(shù)據(jù)進(jìn)行排序,提升了算法的運(yùn)行速度。由表1中實(shí)驗(yàn)結(jié)果可知,本文算法在處理500個(gè)匹配對(duì)時(shí)運(yùn)行時(shí)間基本在5 ms左右,能夠滿(mǎn)足實(shí)時(shí)性要求,與其他算法相比,本文算法的正確率較高。
針對(duì)傳統(tǒng)的特征匹配對(duì)誤匹配篩選算法魯棒性差、效率低等問(wèn)題,本文提出了一種快速的特征點(diǎn)誤匹配篩選算法。在特征匹配對(duì)的歐氏距離基礎(chǔ)上,引入Otsu算法對(duì)數(shù)據(jù)進(jìn)行初次篩選和二次篩選,大大提升了算法的篩選效率,不僅快速得到了篩選結(jié)果,而且保證了充足的匹配對(duì)數(shù)量,提升了算法的魯棒性;另外,進(jìn)一步提升了RANSAC的運(yùn)行速度和算法精度,對(duì)篩選后數(shù)據(jù)進(jìn)行排序。在TUM數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)表明本文算法比傳統(tǒng)算法具有更好的魯棒性和實(shí)時(shí)性。