雙目視差測(cè)距中的圖像配準(zhǔn)技術(shù)研究1
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
光電測(cè)距技術(shù)從光源的角度可以分為兩種:主動(dòng)測(cè)距和被動(dòng)測(cè)距。主動(dòng)測(cè)距需要人造光源照射目標(biāo)物體,通過(guò)反射回來(lái)的光的紋理等特征,或直接計(jì)算光的傳播時(shí)間來(lái)確定目標(biāo)的距離。相對(duì)于主動(dòng)測(cè)距的是無(wú)人造光源照射的被動(dòng)測(cè)距,它利用自然光輻射分析得到目標(biāo)的距離。因此,被動(dòng)測(cè)距具有防信息泄露,隱蔽性好,測(cè)距快速靈活,自動(dòng)化程度高,小巧輕便,容易使用等優(yōu)點(diǎn),在機(jī)器人視覺(jué)、航空測(cè)距、智能交通、軍事等領(lǐng)域有較大的應(yīng)用價(jià)值。
利用三角視差原理,人類(lèi)能通過(guò)雙眼獲取環(huán)境三維信息中的深度信息。運(yùn)用幾個(gè)相機(jī)對(duì)同一景物從不同位置拍照獲取圖像,進(jìn)行圖像處理得到視差,進(jìn)而從視差中恢復(fù)距離。在這個(gè)過(guò)程中,圖像配準(zhǔn)是關(guān)鍵步驟之一。對(duì)視差測(cè)距的約束也主要體現(xiàn)在所采用的配準(zhǔn)策略上。圖像配準(zhǔn)就是通過(guò)確定兩幅圖像的幾何變換參數(shù),建立兩幅圖像之間的對(duì)應(yīng)關(guān)系,對(duì)其中一幅圖像進(jìn)行幾何變換的過(guò)程。在影像分析、機(jī)器視覺(jué)、三維重建等方面,圖像配準(zhǔn)技術(shù)是圖像分析和處理的基本問(wèn)題。本文就雙目視差測(cè)距中的圖像配準(zhǔn)問(wèn)題進(jìn)行了探討,設(shè)計(jì)實(shí)驗(yàn)系統(tǒng)并用BlockMatching方法對(duì)圖像進(jìn)行匹配,測(cè)得目標(biāo)距離。
1雙目視差測(cè)距模型
圖1所示為雙目立體視覺(jué)測(cè)距系統(tǒng)原理圖。
圖1 雙目立體視覺(jué)測(cè)距系統(tǒng)原理圖
左右兩個(gè)相機(jī)平行放置,光軸距離為師即基線(xiàn)距離)。Q為被測(cè)物體上的一點(diǎn),到像平面的垂直距離為L(zhǎng),f為組合物鏡焦距。Q在左右相機(jī)上的成像點(diǎn)分別為Q1、Q2,由相似三角形可知:
由上兩式可得出目標(biāo)點(diǎn)到相機(jī)的距離為:
其中,x1-x2為目標(biāo)點(diǎn)Q在左右圖像上成像的位置差即視差,可由圖像配準(zhǔn)得到;b為基線(xiàn)距離,由相機(jī)標(biāo)定確定;f為相機(jī)給定參數(shù)。
2幾種圖像配準(zhǔn)方法比較
立體匹配算法大致可分為兩類(lèi):一類(lèi)為基于區(qū)域的算法,這種算法的優(yōu)點(diǎn)是很容易恢復(fù)出高紋理區(qū)域的視差圖,速度快,占用內(nèi)存少,但在低紋理區(qū)域效果不好,會(huì)產(chǎn)生大量誤匹配,導(dǎo)致邊界模糊。另一類(lèi)為基于全局的算法,此算法一般用平滑性約束和相容性約束來(lái)構(gòu)成一個(gè)評(píng)價(jià)函數(shù),再通過(guò)各種最優(yōu)算法求得評(píng)價(jià)函數(shù)的最小值。這種算法由于是全局尋優(yōu),因而它的匹配準(zhǔn)確性較高,但匹配速度很慢。
2.1BlockMatching塊匹配法
BlockMatching(BM)模塊匹配法是一種基于區(qū)域的局部匹配算法。該算法使用SAD(SumofAbsoluteDifference)"絕對(duì)誤差累計(jì)”的小窗口來(lái)查找立體校正后左右兩幅圖像之間的匹配點(diǎn),圖2所示為SAD算法的示意圖。
構(gòu)造小窗口后,用該窗口覆蓋左攝像頭的圖像,選擇出窗口覆蓋區(qū)域內(nèi)的所有像素點(diǎn);同樣用該窗口覆蓋右攝像頭的圖像并選擇出覆蓋區(qū)域的像素點(diǎn)。左邊覆蓋區(qū)域減去右邊覆蓋區(qū)域,求出所有像素點(diǎn)差的絕對(duì)值的和即SAD值。然后移動(dòng)右邊圖像的窗口,再次計(jì)算SAD值。找到一定范圍內(nèi)的最小的SAD值對(duì)應(yīng)的右圖像素塊就是左圖最佳匹配像素塊。由匹配塊與當(dāng)前塊的相對(duì)位置計(jì)算出運(yùn)動(dòng)位移,所得運(yùn)動(dòng)位移即為當(dāng)前塊的運(yùn)動(dòng)矢量,通過(guò)運(yùn)動(dòng)矢量得到視差值。BM模塊匹配法就是通過(guò)在整幅圖上使用SAD滑動(dòng)窗口完成對(duì)其中一幅圖像中特征點(diǎn)的匹配。
2.2GraphCut圖切割匹配法
GraphCut圖切割法是OpenCV中另一種基于全局的匹配算法,它首先對(duì)參考圖像進(jìn)行Canny檢測(cè),再用初始窗口對(duì)每個(gè)像素用自適應(yīng)窗口算法進(jìn)行計(jì)算?;谌值钠ヅ渌惴ㄓ捎谑侨謱?yōu),因而可以獲得較高的匹配準(zhǔn)確性,特別是采用GraphCut圖切割思想的算法精度很高。但是,由于圖切割方法所建立的網(wǎng)格圖包含了大量的節(jié)點(diǎn)和邊緣,每個(gè)像素都需要遍歷該像素所有可能的像素差來(lái)計(jì)算視差,這占用了大量的時(shí)間,降低了效率。因此,GraphCut圖切割算法不適用于要求快速處理的實(shí)時(shí)性場(chǎng)合。
3雙目立體視覺(jué)BlockMatching塊匹配法的實(shí)現(xiàn)
3.1實(shí)驗(yàn)環(huán)境
該實(shí)驗(yàn)主要通過(guò)搭建硬軟件環(huán)境,結(jié)合計(jì)算機(jī)編程實(shí)現(xiàn)基于區(qū)域的局部匹配算法凱根據(jù)系統(tǒng)要求,本實(shí)驗(yàn)選定SunTime130萬(wàn)像素CCD彩色數(shù)碼工業(yè)相機(jī)與1/2"C口8~50mm手動(dòng)光圈鏡頭。在雙相機(jī)系統(tǒng)上利用拍攝的標(biāo)定板進(jìn)行標(biāo)定和匹配得出數(shù)據(jù)。以VS2008+OpenCV2.3.1為編程環(huán)境,進(jìn)行匹配測(cè)距實(shí)驗(yàn)。
實(shí)驗(yàn)硬件系統(tǒng)如圖3所示,兩組相機(jī)平行放置于長(zhǎng)度為30cm的標(biāo)尺條上,下方用滑輪固定,可以根據(jù)需要調(diào)整兩相機(jī)的間距。標(biāo)尺條固定在三角架上,三腳架上自帶兩個(gè)水平儀,以將系統(tǒng)調(diào)至水平。兩相機(jī)通過(guò)USB數(shù)據(jù)線(xiàn)連接到兩臺(tái)計(jì)算機(jī)進(jìn)行圖像處理和計(jì)算。
3.2相機(jī)標(biāo)定
標(biāo)定板為7X7的黑白棋盤(pán)格,每格尺寸為25.4mmX25.4mm。左右相機(jī)同時(shí)對(duì)標(biāo)定板拍照,得到14對(duì)共28張圖像。用OpenCV中的cvStereoCalibrate函數(shù)對(duì)相機(jī)鏡頭進(jìn)行標(biāo)定,可以得到相機(jī)系統(tǒng)的內(nèi)外參數(shù).Af和Aright為左右相機(jī)鏡頭內(nèi)部參數(shù)矩陣(焦距、成像原點(diǎn)),燦和給岫為畸變系數(shù),外部參數(shù)由旋轉(zhuǎn)矩陣R和平移向量T表示,它們共同確定了左右相機(jī)的相對(duì)位置關(guān)系,圖4所示是左右相機(jī)的位置關(guān)系圖。之后的雙目校正cvStereoRectify函數(shù)利用標(biāo)定得到的內(nèi)外參數(shù)分別對(duì)左右視圖進(jìn)行消除畸變和行對(duì)準(zhǔn),以使左右視圖的成像原點(diǎn)坐標(biāo)一致、兩攝像頭光軸平行、左右成像平面共面、對(duì)極線(xiàn)行對(duì)齊。
標(biāo)定得到的相機(jī)系統(tǒng)內(nèi)外參數(shù)如下:
內(nèi)部參數(shù):
標(biāo)定得到T向量在X方向上的坐標(biāo)為28.8cm。旋轉(zhuǎn)矩陣R接近單位矩陣,說(shuō)明兩相機(jī)之間基本保持平行,符合雙目視差模型要求。
3.3立體匹配
得到相機(jī)內(nèi)外參數(shù)之后,就可以用BlockMatching法對(duì)目標(biāo)圖像進(jìn)行匹配計(jì)算視差。對(duì)圖像中距離測(cè)距系統(tǒng)5m(實(shí)測(cè))處的黃色便利貼進(jìn)行測(cè)距,過(guò)程如圖5所示。其中,圖5(a)為目標(biāo)圖像的左右相機(jī)匹配過(guò)程中的視圖,圖5(b)為計(jì)算參數(shù)界面。通過(guò)BlockMatching方法得到視差值d,再利用函數(shù)cvReprojectImageTo3D標(biāo)定得到的內(nèi)外參數(shù)結(jié)合視差d可以恢復(fù)出目標(biāo)的三維信息。由圖5可見(jiàn)計(jì)算出的距離為494cm,與實(shí)際距離有1.2%的相對(duì)誤差。
用該實(shí)驗(yàn)系統(tǒng)分別對(duì)3m,5m,10m,15m,25m的景物進(jìn)行拍照,并對(duì)每組圖像上的兩個(gè)點(diǎn)進(jìn)行測(cè)距,所得到的10組數(shù)據(jù)如表1所列。
4結(jié)語(yǔ)
相比主動(dòng)測(cè)距,基于三角視差的雙CCD被動(dòng)測(cè)距具有儀器簡(jiǎn)單,適用場(chǎng)合廣泛,保密性好的優(yōu)勢(shì)。本文研究的基于區(qū)域的局部匹配算法BlockMatching,使用SAD“絕對(duì)誤差累計(jì)”小窗口,查找經(jīng)過(guò)校正后的左右兩幅圖像之間的匹配點(diǎn),它匹配速度快,幀處理速度在5幀/s以上,并且精度較高,在10m的距離內(nèi),誤差都是小于2.0%。整個(gè)測(cè)距系統(tǒng)有較強(qiáng)的實(shí)用性。但同時(shí),隨著距離的增大,由于標(biāo)定誤差、光線(xiàn)和人為因素等的影響,精度也有所下降。另外,立體匹配只查找兩幅圖像之間的強(qiáng)匹配點(diǎn),也是誤差隨距離增大的重要原因。
20211020_616ff8bf18640__雙目視差測(cè)距中的圖像配準(zhǔn)技術(shù)研究1