雙目立體視覺(jué)是機(jī)器視覺(jué)的一種重要形式,它是基于視差原理并由多幅圖像獲取物體三維幾何信息的方法。雙目立體視覺(jué)系統(tǒng)一般由雙攝像機(jī)從不同角度同時(shí)獲得被測(cè)物的兩幅數(shù)字圖像,或由單攝像機(jī)在不同時(shí)刻從不同角度獲得被測(cè)物的兩幅數(shù)字圖像,并基于視差原理恢復(fù)出物體
HALCON是在世界范圍內(nèi)廣泛使用的機(jī)器視覺(jué)軟件。它擁有滿足您各類機(jī)器視覺(jué)應(yīng)用需求的完善的開(kāi)發(fā)庫(kù)。HALCON也包含Blob分析、形態(tài)學(xué)、模式識(shí)別、測(cè)量、三維攝像機(jī)定標(biāo)、雙目立體視覺(jué)等杰出的高級(jí)算法。HALCON支持Linux和Windows,并且可以通過(guò)C、C++、C#、Visual Basic和Delphi語(yǔ)言訪問(wèn)。另外HALCON與硬件無(wú)關(guān),支持大多數(shù)圖像采集卡及帶有DirectShow和IEEE 1394驅(qū)動(dòng)的采集設(shè)備,用戶可以利用其開(kāi)放式結(jié)構(gòu)快速開(kāi)發(fā)圖像處理和機(jī)器視覺(jué)應(yīng)用軟件。
一.雙目立體視覺(jué)相關(guān)基本理論介紹
1.1 雙目立體視覺(jué)原理
雙目立體視覺(jué)三維測(cè)量是基于視差原理,圖1所示為簡(jiǎn)單的平視雙目立體成像原理圖,兩攝像機(jī)的投影中心的連線的距離,即基線距為b。攝像機(jī)坐標(biāo)系的原點(diǎn)在攝像機(jī)鏡頭的光心處,坐標(biāo)系如圖1所示。事實(shí)上攝像機(jī)的成像平面在鏡頭的光心后,圖1中將左右成像平面繪制在鏡頭的光心前f處,這個(gè)虛擬的圖像平面坐標(biāo)系O1uv的u軸和v軸與和攝像機(jī)坐標(biāo)系的x軸和y軸方向一致,這樣可以簡(jiǎn)化計(jì)算過(guò)程。左右圖像坐標(biāo)系的原點(diǎn)在攝像機(jī)光軸與平面的交點(diǎn)O1和O2??臻g中某點(diǎn)P在左圖像和右圖像中相應(yīng)的坐標(biāo)分別為P1(u1,v1)和P2(u2,v2)。假定兩攝像機(jī)的圖像在同一個(gè)平面上,則點(diǎn)P圖像坐標(biāo)的Y坐標(biāo)相同,即v1=v2。由三角幾何關(guān)系得到:
上式中(xc,yc,zc)為點(diǎn)P在左攝像機(jī)坐標(biāo)系中的坐標(biāo),b為基線距,f為兩個(gè)攝像機(jī)的焦距,(u1,v1)和(u2,v2)分別為點(diǎn)P在左圖像和右圖像中的坐標(biāo)。
視差定義為某一點(diǎn)在兩幅圖像中相應(yīng)點(diǎn)的位置差:
由此可計(jì)算出空間中某點(diǎn)P在左攝像機(jī)坐標(biāo)系中的坐標(biāo)為:
因此,只要能夠找到空間中某點(diǎn)在左右兩個(gè)攝像機(jī)像面上的相應(yīng)點(diǎn),并且通過(guò)攝像機(jī)標(biāo)定獲得攝像機(jī)的內(nèi)外參數(shù),就可以確定這個(gè)點(diǎn)的三維坐標(biāo)。
1.2 雙目立體視覺(jué)的系統(tǒng)結(jié)構(gòu)以及精度分析
由上述雙目視覺(jué)系統(tǒng)的基本原理可知,為了獲得三維空間中某點(diǎn)的三維坐標(biāo),需要在左右兩個(gè)攝像機(jī)像面上都存在該點(diǎn)的相應(yīng)點(diǎn)。立體視覺(jué)系統(tǒng)的一般結(jié)構(gòu)為交叉擺放的兩個(gè)攝像機(jī)從不同角度觀測(cè)同一被測(cè)物體。圖2和圖3分別為實(shí)物圖與原理圖。這樣通過(guò)求得兩個(gè)圖像中相應(yīng)點(diǎn)的圖像坐標(biāo),便可以由雙目立體視覺(jué)測(cè)量原理求取三維空間坐標(biāo)。事實(shí)上,獲取兩幅圖像也可以由一個(gè)攝像機(jī)實(shí)現(xiàn),如一個(gè)攝像機(jī)通過(guò)給定方式的運(yùn)動(dòng),在不同位置觀測(cè)同一個(gè)靜止的物體,或者通過(guò)光學(xué)成像方式將兩幅圖像投影到一個(gè)攝像機(jī),都可以滿足要求。
各種雙目視覺(jué)系統(tǒng)結(jié)構(gòu)各有優(yōu)缺點(diǎn),這些結(jié)構(gòu)適用于不同的應(yīng)用場(chǎng)合。對(duì)要求大測(cè)量范圍和較高測(cè)量精度的場(chǎng)合,采用基于雙攝像機(jī)的雙目立體視覺(jué)系統(tǒng)比較合適;對(duì)測(cè)量范圍要求比較小,對(duì)視覺(jué)系統(tǒng)體積和質(zhì)量要求嚴(yán)格,需要高速度實(shí)時(shí)測(cè)量對(duì)象,基于光學(xué)成像的單攝像機(jī)雙目立體視覺(jué)系統(tǒng)便成為最佳選擇。
基于雙攝像機(jī)的雙目立體視覺(jué)系統(tǒng)必須安裝在一個(gè)穩(wěn)定的平臺(tái)上,在進(jìn)行雙目視覺(jué)系統(tǒng)標(biāo)定以及應(yīng)用該系統(tǒng)進(jìn)行測(cè)量時(shí),要確保攝像機(jī)的內(nèi)參(比如焦距)和兩個(gè)攝像機(jī)相對(duì)位置關(guān)系不能夠發(fā)生變化,如果任何一項(xiàng)發(fā)生變化,則需要重新對(duì)雙目立體視覺(jué)系統(tǒng)進(jìn)行標(biāo)定。
視覺(jué)系統(tǒng)的安裝方法影響測(cè)量結(jié)果的精度。測(cè)量的精度可由下式得出:
上式中⊿z表示測(cè)量得出的被測(cè)點(diǎn)與立體視覺(jué)系統(tǒng)之間距離的精度,z指被測(cè)點(diǎn)與立體視覺(jué)系統(tǒng)的絕對(duì)距離,f指攝像機(jī)的焦距,b表示雙目立體視覺(jué)系統(tǒng)的基線距,⊿d表示被測(cè)點(diǎn)視差精度。
為了得到更高的精度,應(yīng)該使攝像機(jī)的焦距以及基線長(zhǎng)度增大,同時(shí)應(yīng)該使被測(cè)物體盡可能的靠近立體視覺(jué)系統(tǒng)。另外這個(gè)精度和視差的精度有直接的關(guān)系。在HALCON中一般情況下視差結(jié)果可以精確到1/5~1/10個(gè)像素,如果一個(gè)像素代表7.4μm那么視差的精度可以達(dá)到1μm。圖4表示深度測(cè)量的精度和各個(gè)參數(shù)之間的關(guān)系(假設(shè)視差精度為1μm)。
如果b和z之間的比值過(guò)大,立體圖像對(duì)之間的交迭區(qū)域?qū)⒎浅P?,這樣就不能夠得到足夠的物體表面信息。b/z可以取的最大值取決于物體的表面特征。一般情況下,如果物體高度變化不明顯,b/z可以取的大一些;如果物體表面高度變化明顯,則b/z的值要小一些。無(wú)論在任何情況下,要確保立體圖像對(duì)之間的交迭區(qū)域足夠大并且兩個(gè)攝像機(jī)應(yīng)該大約對(duì)齊,也就是說(shuō)每個(gè)攝像機(jī)繞光軸旋轉(zhuǎn)的角度不能太大。
1.3 雙目立體視覺(jué)系統(tǒng)標(biāo)定
攝像機(jī)內(nèi)參數(shù)的標(biāo)定和單目視覺(jué)系統(tǒng)標(biāo)定一致,雙目立體視覺(jué)系統(tǒng)的標(biāo)定主要是指攝像機(jī)的內(nèi)部參數(shù)標(biāo)定后確定視覺(jué)系統(tǒng)的結(jié)構(gòu)參數(shù)R和T(即兩個(gè)攝像機(jī)之間的位置關(guān)系,R和T分別為旋轉(zhuǎn)矩陣和平移向量)。一般方法是采用標(biāo)準(zhǔn)的2D或3D精密靶標(biāo),通過(guò)攝像機(jī)圖像坐標(biāo)與三維世界坐標(biāo)的對(duì)應(yīng)關(guān)系求得這些參數(shù)。具體的標(biāo)定過(guò)程【3】如下:
1、將標(biāo)定板放置在一個(gè)適當(dāng)?shù)奈恢?,使它能夠在兩個(gè)攝像機(jī)中均可以完全成像。通過(guò)標(biāo)定確定兩個(gè)攝像機(jī)的內(nèi)部參數(shù)以及他們的外部參數(shù)(R1、T1與R2、T2),則R1、T1表示左攝像機(jī)與世界坐標(biāo)系的相對(duì)位置,R2、T2表示右攝像機(jī)與世界坐標(biāo)系的相對(duì)位置。
2、假定空間中任意一點(diǎn)在世界坐標(biāo)系、左攝像機(jī)坐標(biāo)系和右攝像機(jī)坐標(biāo)系下的非齊次坐標(biāo)分別為xw、x1、x2,則:
消去xw,得到:
兩個(gè)攝像機(jī)之間的位置關(guān)系R、T可以用以下關(guān)系式表示:
1.4 雙目立體視覺(jué)中的對(duì)應(yīng)點(diǎn)匹配
由雙目立體視覺(jué)系統(tǒng)原理可以看出雙目立體視覺(jué)是建立在對(duì)應(yīng)點(diǎn)的視差基礎(chǔ)之上,因此左右圖像中各點(diǎn)的匹配關(guān)系成為雙目立體視覺(jué)技術(shù)的一個(gè)極其重要的問(wèn)題。然而,對(duì)于實(shí)際的立體圖像對(duì),求解對(duì)應(yīng)問(wèn)題極富挑戰(zhàn)性,可以說(shuō)是雙目立體視覺(jué)中最困難的一步。為了能夠增加匹配結(jié)果的準(zhǔn)確性以及匹配算法的速度,在匹配過(guò)程中通常會(huì)加入下列幾種約束:
(1) 極線約束。在此約束下,匹配點(diǎn)已經(jīng)位于兩副圖像中相應(yīng)的極線上。
(2) 唯一性約束。兩副圖像中的對(duì)應(yīng)的匹配點(diǎn)應(yīng)該有且僅有一個(gè)。
(3) 視差連續(xù)性約束。除了遮擋區(qū)域和視差不連續(xù)區(qū)域外,視差的變化都是平滑的。
(4) 順序一致性約束。位于一副圖像極線上的系列點(diǎn),在另一幅圖像中極線上有相同的順序。
圖像匹配的方法有基于圖像灰度(區(qū)域)的匹配、基于圖像特征的匹配和基于解釋的匹配或者多種方法結(jié)合的匹配【3】。
二.使用HALCON進(jìn)行雙目立體視覺(jué)測(cè)量
本節(jié)以電路板高度測(cè)量為例,講述在HALCON中如何方便快捷地實(shí)現(xiàn)高效雙目立體視覺(jué)測(cè)量(圖像為640*480)。
2.1 雙目立體視覺(jué)系統(tǒng)安裝
根據(jù)1.2節(jié)中對(duì)雙目立體視覺(jué)系統(tǒng)結(jié)構(gòu)分析以及精度的分析,在確保兩個(gè)立體圖像對(duì)有足夠大的交迭區(qū)域的同時(shí),根據(jù)待測(cè)物體表面形態(tài)以及精度要求設(shè)計(jì)合理的雙目立體視覺(jué)系統(tǒng)安裝方案(圖2)。然后將雙目立體視覺(jué)系統(tǒng)安裝在一個(gè)穩(wěn)定的平臺(tái)上,確保開(kāi)始標(biāo)定后,攝像機(jī)的焦距以及攝像機(jī)的相對(duì)關(guān)系都不發(fā)生變化。
2.2 雙目立體視覺(jué)系統(tǒng)標(biāo)定
為了進(jìn)行視覺(jué)系統(tǒng)的標(biāo)定,需要得到空間點(diǎn)的三維坐標(biāo)以及該點(diǎn)在左右兩幅圖像中坐標(biāo)的對(duì)應(yīng)關(guān)系,另外還需要給定兩個(gè)攝像機(jī)的初始參數(shù)。拍攝標(biāo)定板圖像時(shí),要保證標(biāo)定板在左右兩個(gè)攝像機(jī)中都能夠完整成像。
如果使用HALCON標(biāo)準(zhǔn)標(biāo)定板,首先可以通過(guò)函數(shù)find_caltab()在標(biāo)定板圖像中分離出標(biāo)定板區(qū)域,然后利用find_marks_and_pose()算子,該算子通過(guò)亞象素閾值、亞象素邊緣提取、圓心確定等一系列操作計(jì)算標(biāo)定板上每個(gè)點(diǎn)的圖像坐標(biāo)以及標(biāo)定板與攝像機(jī)之間大約的位置關(guān)系,即攝像機(jī)的外參初始值。其中使用find_caltab()分離標(biāo)定板區(qū)域運(yùn)算時(shí)間大約為5ms,find_marks_and_pose()計(jì)算標(biāo)定板上49個(gè)標(biāo)志點(diǎn)的坐標(biāo)大約需要時(shí)間為40ms,計(jì)算坐標(biāo)精度為亞象素級(jí),如某標(biāo)志點(diǎn)在左攝像機(jī)圖像坐標(biāo)系中坐標(biāo)為(198.612619165, 344.142354438),右攝像機(jī)圖像坐標(biāo)系中相應(yīng)點(diǎn)坐標(biāo)為(212.140195587, 226.377754012)。
如果使用自定義的標(biāo)定板,可以使用HALCON中的圖像濾波、亞象素邊緣及線提取、亞象素輪廓處理等基本函數(shù)開(kāi)發(fā)算法求取標(biāo)志點(diǎn)的坐標(biāo)并估算攝像機(jī)的外參初始值。
獲得標(biāo)志點(diǎn)相應(yīng)的坐標(biāo)以及攝像機(jī)的起始參數(shù)后,通過(guò)調(diào)用函數(shù)binocular_calibration()來(lái)確定兩個(gè)攝像機(jī)的內(nèi)參數(shù)、外參數(shù)以及兩個(gè)攝像機(jī)之間的相對(duì)位置關(guān)系。通過(guò)539個(gè)標(biāo)志點(diǎn)坐標(biāo)的對(duì)應(yīng)關(guān)系計(jì)算出攝像機(jī)各個(gè)參數(shù)需要的時(shí)間為1.6094s,計(jì)算誤差約為0.02個(gè)象素。
2.3 校正立體圖像對(duì)
為了能夠更精確地進(jìn)行匹配,提高運(yùn)算的效率,在獲得攝像機(jī)的內(nèi)外參數(shù)后首先對(duì)立體圖像對(duì)進(jìn)行校正。校正的過(guò)程其實(shí)就是將圖像投影到一個(gè)公共的圖像平面上,這個(gè)公共的圖像平面方向由雙目立體視覺(jué)系統(tǒng)基線與原始兩個(gè)圖像平面交線的叉集確定。
校正后的圖像可以看作是一個(gè)虛擬的立體視覺(jué)系統(tǒng)(圖5)采集的圖像對(duì)。這個(gè)視覺(jué)系統(tǒng)中攝像機(jī)的光心與實(shí)際攝像機(jī)一致,只是通過(guò)繞光心的旋轉(zhuǎn)使光軸平行,并且視覺(jué)系統(tǒng)中兩個(gè)攝像機(jī)的焦距相同。這個(gè)虛擬的立體視覺(jué)系統(tǒng)就是雙目立體視覺(jué)原理中提到的最簡(jiǎn)單的平視雙目視覺(jué)模型。
HALCON中將標(biāo)定過(guò)程中獲得的攝像機(jī)的內(nèi)參以及兩個(gè)攝像機(jī)相對(duì)位置關(guān)系作為參數(shù)傳遞給函數(shù)gen_binocular_rectification_map(),再將獲得的兩個(gè)圖像的映射圖傳遞給函數(shù)map_ image(),即可得到校正后的兩幅圖像,并可獲得校正后虛擬立體視覺(jué)系統(tǒng)中兩個(gè)攝像機(jī)的內(nèi)參和外參。其中函數(shù)gen_binocular_rectification_map()耗時(shí)約為0.3488s,map_image()耗時(shí)約為0.0050s。
2.4 獲得圖像中三維信息
為了得到圖像中某點(diǎn)的三維信息,需要在另一幅圖像中找到該點(diǎn)的對(duì)應(yīng)點(diǎn)坐標(biāo)。因此想獲得物體的深度信息,首先需要對(duì)校正后的立體圖像對(duì)進(jìn)行匹配。由于經(jīng)過(guò)校正后,兩幅圖像中的對(duì)應(yīng)點(diǎn)在圖像的同一行中,因此在匹配時(shí)只需要在相應(yīng)的行中尋找匹配點(diǎn)。為了得到更佳的匹配結(jié)果,如果被測(cè)物體表面沒(méi)有明顯的特征信息,則需要測(cè)量時(shí)在物體表面增加特征點(diǎn)。另外要避免被測(cè)物體上重復(fù)圖案在同一行中。
將校正后的圖像以及虛擬立體視覺(jué)系統(tǒng)中的攝像機(jī)內(nèi)外參數(shù)傳遞給binocular_disparity(), 這時(shí)可以設(shè)置匹配窗大小、相似度計(jì)算方式等參數(shù),在匹配中使用圖像金字塔提高匹配速度,并且可以自我檢測(cè)匹配結(jié)果的正確性。函數(shù)返回一個(gè)視差圖 (物體表面三維信息的表示)和一個(gè)匹配分值圖(表示匹配結(jié)果的準(zhǔn)確程度),函數(shù)的運(yùn)行時(shí)間約為0.6051s。
函數(shù)binocular_distance()與binocular_disparity()類似,只不過(guò)返回一個(gè)深度圖(物體表面在第一個(gè)攝像機(jī)坐標(biāo)系中的深度信息)和一個(gè)匹配分值圖。圖6~圖9顯示了HALCON中利用雙目立體視覺(jué)測(cè)量電路板三維信息的過(guò)程。
HALCON中另外還有很多關(guān)于立體視覺(jué)的函數(shù),可以獲得圖像中某點(diǎn)的三維坐標(biāo),另外可以校正傾斜對(duì)高度測(cè)量的影響等。
三. 總結(jié)
以視覺(jué)系統(tǒng)為基礎(chǔ)的三維外形輪廓的非接觸式、高速測(cè)量是一個(gè)重要的研究方向,雙目立體視覺(jué)方法是其中一種最常用的方法。本文介紹了雙目立體視覺(jué)的基本原理,實(shí)現(xiàn)方法以及標(biāo)定和匹配等相關(guān)技術(shù),并通過(guò)一個(gè)典型應(yīng)用案例講述了如何使用HALCON方便快速地搭建高效的雙目立體視覺(jué)系統(tǒng)。雙目立體視覺(jué)系統(tǒng)的應(yīng)用領(lǐng)域非常廣泛,為了能夠?qū)⑦@些技術(shù)應(yīng)用在實(shí)際的工程中,需要盡可能提高算法的效率與精度。在HALCON中通過(guò)校正立體視覺(jué)系統(tǒng)的方法,簡(jiǎn)化了匹配的復(fù)雜度,通過(guò)使用圖像金字塔以及各種約束提高了算法速度和精度。在已知攝像機(jī)內(nèi)外參的情況下,由兩個(gè)立體圖像對(duì)中恢復(fù)三維模型需要約1.3s。
另外,HALCON中不僅有匹配、識(shí)別、定位、測(cè)量和三維等性能杰出的高級(jí)算法,還提供了一系列(的)高效的圖像處理基本函數(shù),如濾波、亞象素邊緣、亞象素輪廓、Blob、分割、形態(tài)學(xué)、分類器、幾何變換,用戶可以通過(guò)這些基本函數(shù)來(lái)搭建各種應(yīng)用中高效實(shí)用的算法。
參考文獻(xiàn)
Machine Vision in World Coordinates by MVTec Software GmbH, Germany
2 HALCON/HDevelop Reference Manual by MVTec Software GmbH, Germany
3 張廣軍 機(jī)器視覺(jué) 科學(xué)出版社 北京 2005
4 馬頌德,張正友 計(jì)算機(jī)視覺(jué) 科學(xué)出版社 北京 1998
5 周富強(qiáng) 雙目立體視覺(jué)檢測(cè)的關(guān)鍵技術(shù)研究 北京航空航天大學(xué)博士后研究工作報(bào)告 2002
聯(lián)系客服