摘 要: 提出了一種局部稠密匹配與人工干預相結(jié)合的測距方案,利用非特征點與特征點的位置關(guān)系,構(gòu)建“最小矩形”以縮小匹配范圍,再應用NCC(歸一化互相關(guān))算法對非特征點進行稠密立體匹配,最后根據(jù)雙目測距原理直接獲取非特征點的距離信息。該方法能任意選取圖像上的非特征點進行實時距離測量,具有精度高、速度快和操作性強等優(yōu)點。
關(guān)鍵詞: 雙目立體視覺;非特征點測距;NCC算法
雙目立體視覺測距[1]技術(shù)作為機器視覺領(lǐng)域的一個研究熱點,目前已廣泛應用于機器人、三維測量、虛擬現(xiàn)實等領(lǐng)域。特別在機器人應用領(lǐng)域,實現(xiàn)機器人路徑規(guī)劃和避障[2]的一個關(guān)鍵技術(shù)就是準確測量機器人到障礙物的距離。目前常用的測距方法主要有:紅外測距、激光測距、微波雷達測距等主動測距[3]方案和雙目立體視覺測距、單目測距等被動測距[4]方案。其中,主動測距方案一般需要額外的能量發(fā)射裝置和合適的傳播介質(zhì),所以不適用于惡劣條件下工作的機器人;而被動測距方案中的雙目立體視覺測距在一定程度上實現(xiàn)了人眼的視覺感知功能,具有探測范圍寬、目標信息完整、不需配備額外裝置等優(yōu)點,在機器人定位導航、避障等研究領(lǐng)域得到了越來越廣泛的應用。
雙目測距技術(shù)的關(guān)鍵在于特征點匹配[5],因為匹配精度直接影響測距的精度。為了減少匹配的不確定性,提高匹配效率,國內(nèi)外眾多專家學者應用了約束假設(shè),而約束一般可分為兩類:(1)基于圖像幾何的約束[6],例如位置、朝向等;(2)基于場景的約束[7],例如場景中物體的性狀和相互關(guān)系。依據(jù)這些基本約束并結(jié)合實際情況選擇合適的解決方案,使得目前的特征點匹配技術(shù)日臻完善。但針對非特征點的立體匹配,尤其是紋理缺乏、特征缺失的圖像區(qū)域,如何匹配其中的非特征點是一個研究難點。目前國內(nèi)外常用的解決方案是對視差圖[8]進行修補或者對整幅圖像在區(qū)域增長的基礎(chǔ)上進行稠密匹配[9]等。這樣可以解決一部分實際問題,但不適用于移動機器人實時測距這一應用背景,因為修補視差圖需對環(huán)境有一定先驗知識,而移動機器人在緊急救援工作中對惡劣環(huán)境是沒有先驗知識的。另一方面,由于稠密匹配需要計算所有像點的像素灰度值并與待匹配點及其鄰域像素的灰度值進行對比,計算量龐大,耗時過長的同時亦增加了系統(tǒng)誤差。
基于移動機器人實時導航、測距這一應用背景,本文研究了一種針對非特征點的雙目測距方案,以獲取需測距的非特征點的距離信息為目的,利用非特征點與已精準匹配的特征點的位置關(guān)系,結(jié)合匹配中的順序一致性約束,構(gòu)造了“最小矩形”,以縮小匹配點的搜索范圍,再利用NCC稠密匹配算法做立體匹配,最后結(jié)合雙目相機的標定參數(shù),利用雙目測距原理實現(xiàn)對非特征點的實時測距。實驗結(jié)果表明,這種方法在降低運算量的同時提高了測量的準確度,而且充分利用了人機交互界面的友好性和反饋功能,適用于具體的工程實踐。
1.2 非特征點匹配
在實際工程中,機器人操作者希望快速獲取圖像中某一點的實際距離,當該點為非特征點時,首要問題是找到該點的匹配點。
以圖1為例,左圖像中用1*、2*、…標示已精確匹配的特征點,其在右圖像中對應的匹配點用*1′、*2′…標示。A、B、C分別代表3種情況的非特征點:點A代表第一種情況,即該點附近5像素的鄰域內(nèi)有一個以上的特征點;點B代表第二種情況,即該點附近5像素鄰域內(nèi)沒有特征點,但是30像素鄰域內(nèi)有兩個或兩個以上的特征點;點C代表了第三種情況,即該點的30像素鄰域內(nèi)均無特征點。右圖像上,人工估計了非特征點的匹配點所在的區(qū)域,用a、b、c標示;而通過非特征點匹配算法得到的匹配點則用A′、B′、C′標示。下文具體介紹3種情況下的匹配方案。
情況1:先將點A的匹配點A′的搜索區(qū)域劃定在右圖像上以點1*的精確匹配點*1′為中心的21×21的矩形區(qū)域內(nèi),再用 NCC算法在該區(qū)域內(nèi)計算匹配點A′。最后再與右圖像上人工確定的搜索區(qū)域的中心點a進行比較,相距在12個像素之內(nèi)認為算法正確,否則視該點為第三種情況。
情況2:將B點附近的精確匹配點按照距離大小排列,確定距離最近的兩個匹配點2*和3*,依據(jù)順序不變性原理,用這兩個匹配點構(gòu)成“最小矩形”,且B點在矩形內(nèi)部。“最小矩形”的確定步驟如下:
(1)計算匹配的特征點到非特征點B的距離,從距離最小的特征匹配點開始,依次與B 點坐標進行比較,直到找到一個與B點坐標不同的點,即為構(gòu)建“最小矩形”的一個頂點(圖1中2*)。
(3)以找到的兩個特征點為頂點構(gòu)建“最小矩形”,在矩形范圍內(nèi)用NCC算法確定非特征點的匹配點(圖1中的B′點),再與右圖像上人工確定的搜索區(qū)域中心點(圖1中b點)做比較,若距離在12像素以內(nèi)認為算法正確,否則視該點為第三種情況。
情況3:對點C直接利用機器人操作中人機交互的便利性,人工在右圖像上確定搜索區(qū)域,該區(qū)域是以點c為中心的21×21鄰域。該非特征點位于低紋理區(qū)域,因此不適合用前兩種情況來搜索匹配點,所以采用信任人工的方案,在人工確定的搜索區(qū)域做立體匹配,其另一優(yōu)點是可以直接避免對雙目盲點區(qū)域的匹配搜索工作。此外還可以對前兩種方案進行校正和糾錯。
圖3顯示了非特征點測距過程,左圖像上任意點選了一些非特征點(*1~*17),右圖像上人工選取了立體匹配搜索區(qū)域的中心點(+1~+17),本文對任意選取的17個非特征點進行距離測量,并與實測值進行比較,統(tǒng)計對照結(jié)果如表3所示。
分析可知,該方案對任意點的測距結(jié)果與實測距離基本吻合,整體誤差在5%以內(nèi)。經(jīng)過多次實驗可知,對實測距離為5 m以內(nèi)的非特征點,計算值與實際值的誤差在2%以內(nèi),6 m以外的點測距結(jié)果誤差較大,特別是8 m以外的點誤差甚至超過4%,這是因為計算模型將攝像機作為線性模型考慮,所以誤差是由距離增大時其非線性表現(xiàn)明顯造成的。但從整體來看,該方案的測距結(jié)果在允許的誤差范圍內(nèi)。
本文在vs2008版本的C++實現(xiàn)平臺下對多組分辨率為640×480的圖片進行了測距實驗,并與常用的視差圖測距方案對比,結(jié)果顯示本方案平均耗時12 ms,而視差圖方案平均耗時160 ms,可見該方案提高了實時性。
由以上結(jié)論可知,該測距方案簡便可行,能滿足機器人導航中對任意非特征點進行實時測距的要求。
本文研究的非特征點雙目測距方案以移動機器人導航、避障為應用背景,充分考慮了待測距的非特征點
與周圍已匹配特征點的位置關(guān)系,構(gòu)建了“最小矩形”以縮小匹配點的搜索范圍,并充分利用人機交互界面的友好性,加以人工干預以矯正匹配的精確度,順利完成了對非特征點的測距工作。該方案的優(yōu)點是不用生成稠密視差圖,減少計算量的同時提高了算法的準確性和實時性;且能夠任意選取圖像上的點進行距離測量,操作方便,直觀性更強;可以人工對匹配點進行校準控制,反饋功能更強。但系統(tǒng)的穩(wěn)定性還有待提高。
參考文獻
[1] 祝琨,楊唐文,阮秋琦,等.基于雙目視覺的運動物體實時跟蹤與測距[J].機器人,2009,31(4):327-334.
[2] 梁冰,洪炳镕,曙光.自主機器人視覺與行為模型及避障研究[J].電子學報,2003,31(21):266-269.
[3] 徐德,譚民.機器人視覺測量與控制「M].北京:國防工業(yè)出版社,2008.
[4] Xiong Chao,Tian Xiaofang,Lu Qiyong.Real-time binocular matching and depth measurement based on competing schema[J].Computer Engineering and Applications,2006,42(1):83-85.
[5] 郭龍源.計算機視覺立體匹配相關(guān)理論與算法研究[D].南京:南京理工大學,2009.
[6] 王立中,麻碩士,薛河儒,等.一種改進的SIFT特征點匹配算法[J].內(nèi)蒙古大學學報,2009,40(5):615-619.
[7] 劉盛夏.基于相位信息的立體圖像匹配研究[D].上海:上海交通大學,2010.