沙春偉 蔡鵬德
摘要:雙目立體視覺是計算機視覺研究最重要的組成部分之一。該文旨在構(gòu)建一個雙目視覺系統(tǒng)用來測量相機與物體的距離。通過雙目相機進行圖像采集,使用Matlab Calibration Toolbox工具對相機標(biāo)定,然后進行左右圖像校正,最后對校正的圖像進行立體匹配,得到被測物體的視差圖及其物體的3D坐標(biāo)。實驗表明:這個方案具有可行性,為下一步的實驗研究提供了很大的幫助和基礎(chǔ)。
關(guān)鍵詞:雙目立體視覺;相機標(biāo)定;立體匹配;視差
中圖分類號:TP18? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2022)07-0081-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):<H:\飛翔打包文件\電腦2022年第七期打包文件1\8.05xs202207\Image\image13.png>
測量物體距離的方法有很多種。最常用的方法是激光測距儀、超聲波測量等[1]。這些方法具有良好的精度,但它也需要持續(xù)的人工協(xié)助,而且很難在工業(yè)自動化、導(dǎo)航中應(yīng)用。通過使用立體視覺等被動方法進行距離測量,可以使其自動檢測和確定物體距離以及物體幾何形狀。
1 雙目測距原理
雙目立體相機對物體表面進行圖像采集,采集的左右視圖間有像素差,也就是視差,將得到的視差取出來,依據(jù)三角測量原理,可以獲得深度距離。圖1是視差測距原理圖,[p]是目標(biāo)物體上的某一個點,[OL]是左相機光心,[OR]是右相機光心, [p1]是點[p]在左相機的成像點,[pr]是在右相機的成像點,相機焦距為[f],左右相機中心距離為[b],深度距離就是[Z]。設(shè)[D]為[p1]和[pr]兩點之間的距離,那么[D=b-X1-X2],
由三角形相似原理可知:[b-(Xl-Xr)b=Z-fZ=>Z=fb(Xl-Xr)]。公式中[Xl-Xr]就是要求取的視差,由視差就可以得到深度距離,[f]和[b]這些參數(shù)由相機標(biāo)定得到。
根據(jù)公式可以看出,深度距離(Depthdistance)和視差(Disparity)成反比。深度越大,視差越小;深度越大,相同視差范圍對應(yīng)的深度范圍閱讀大。一個視差對應(yīng)一個深度,一個深度對應(yīng)一個視差,視差(Disparity)和深度(Depth)是一一對應(yīng)的關(guān)系。
2 立體相機標(biāo)定
對一個三維世界中的一個物體來說,它的坐標(biāo)系應(yīng)該是在世界坐標(biāo)系下面。用一個相機拍攝物體,首先把世界坐標(biāo)系下的物體轉(zhuǎn)化到相機坐標(biāo)系下,然后根據(jù)相機坐標(biāo)系建立的原則,Z軸和相機的光軸是重合的,另外兩個軸從肉眼上是看不到的。世界坐標(biāo)系下的點可以通過剛體變換到相機坐標(biāo)系(對于相機來說,拍攝的物體PA,Z軸坐標(biāo)是Z在圖像坐標(biāo)系下、成像平面上的,根據(jù)圖2小孔成像原理,PA成像在Z等于f的平面上,投射到BP’)。
世界坐標(biāo)系到相機坐標(biāo)系是一個剛體變換,是由一個旋轉(zhuǎn)矩陣和一個平移矩陣唯一確定的剛體變換。
公式(1)是把世界坐標(biāo)系下的點轉(zhuǎn)換到相機坐標(biāo)系下的點。
公式(2)是把相機坐標(biāo)系下的點轉(zhuǎn)到圖像物理坐標(biāo)系下的點。
公式(3)是把圖像物理坐標(biāo)系下的點轉(zhuǎn)到圖像像素坐標(biāo)系下的點。
經(jīng)過上面的幾步變換,從世界坐標(biāo)系經(jīng)過三次矩陣連乘,就可以把世界坐標(biāo)系的一個3D的點變成一個像素坐標(biāo)系下一個2D的一個像素。這就是常說的像素模型,也就是小孔成像的一個模型。
相機是存在畸變的,比如說:魚眼鏡頭的畸變就比較嚴重??梢钥吹?,正常的物體是橫平豎直,在相機里由于畸變的存在,可能會產(chǎn)生彎曲。有兩種彎曲情況,常用的畸變模型,也只考慮了徑向畸變和切向畸變。徑向畸變是一個以多項式的表達式解釋的,公式(4)為畸變表達式。
式中[K1,K2,K3]為需要標(biāo)定參數(shù)的切向畸變參數(shù);[P1,P2]為需要標(biāo)定參數(shù)的徑向畸變參數(shù)。
標(biāo)定需要拍攝很多張照片,每一張照片需要改變相機的姿態(tài),每一次姿態(tài)對應(yīng)一組外態(tài)。筆者使用基于棋盤的張氏表達法,采集50組照片。筆者使用Matlab中的calibration toolbox工具進行標(biāo)定,此工具操作簡單,而且精度不錯。標(biāo)定結(jié)果如下:
式中Ml,Mr為左相機內(nèi)參和右相機內(nèi)參,Dl和Dr為左相機畸變參數(shù)和右相機畸變參數(shù),R是相機旋轉(zhuǎn)矩陣,T是相機平移矩陣。
3 立體校正
立體校正是調(diào)整角度和相機之間的距離以獲得正面平行排列的過程。這個過程是任何立體成像算法中的關(guān)鍵步驟。此步驟的輸出是校正和雙目行對齊的圖像,圖3為立體校正。
4 立體匹配和測距
立體匹配是立體視覺從圖像生成3D點云的常規(guī)手段,有不同的方法[2]。例如,基于區(qū)域的立體匹配、基于特征的立體匹配和基于像素的立體匹配,每種方法都有各自的優(yōu)點和缺點。
在空間中的同一個點,同時在兩個視圖上成像,就形成了一個雙目立體在兩張視圖上成像的像素點叫作同名點對,同名點對代表空間當(dāng)中同一個點。立體匹配要解決的問題,就是要在圖像中尋找這些同名點對。根據(jù)同名點對數(shù)量的多少,可以分為稀疏立體匹配和稠密立體匹配。稀疏立體匹配就是尋找有限個同名點對,而稠密立體匹配就是盡可能把圖像中所有像素的同名點對都要尋找出來[3]。
不同匹配算法,效果差別很大。立體匹配算法主要步驟可以分為四種:匹配代價計算[3](Match cost computation);代價聚合[4](Cost Aggregation);視差計算(Disparity Computation);視差優(yōu)化(Disparity Refinement)。對于匹配代價的計算一般使用圖像灰度信息進行判斷,同時也有用卷積神經(jīng)網(wǎng)絡(luò)進行圖像塊間的相互運算,它們對輸入左右視圖的圖像塊進行權(quán)值共享的特征提取網(wǎng)絡(luò),再把這兩個圖像塊的特征拼接在一起,再輸出它們之間的相似度。通過匹配代價計算后,尋找匹配代價最小的視差位置,確定當(dāng)前的視差。這種策略往往會受到圖像的影響,需要用代價聚合調(diào)整初始的匹配代價。經(jīng)過代價計算,能夠定位最小代價值。最小匹配的代價對應(yīng)的視差值即為最優(yōu)視差。WTA(贏家通吃)就是統(tǒng)計一個最小匹配代價值,然后把最小匹配的代價值所對應(yīng)的視差值當(dāng)作真值輸出。視差優(yōu)化就是指像素優(yōu)化,左右一致性檢查、小連通區(qū)域剔除、視差填充、弱紋理優(yōu)化、平滑濾波。左視圖匹配一個視差圖后,右視圖也匹配一個視差圖,這兩個視差圖一一對應(yīng)。比如左視圖像素P找到右視圖Q為同名點,右視圖像素Q也找到左視圖P為同名點,這兩個就對上通過了,如果兩個找到的不一致,就不通過。一致性檢查可以去除很多錯誤,在應(yīng)用中必須要做。
本文選擇半全局匹配算法[5]SGM(Semi Global Matching),SGM算法結(jié)合了局部匹配算法和全局匹配算法的各個優(yōu)點,使立體匹配更加優(yōu)化。圖4是得到的視差圖,圖5是偽彩色視差圖,圖6是測距結(jié)果。
5 結(jié)論
本文介紹了一種雙目立體相機測距系統(tǒng)的方法,它結(jié)合了基于Matlab calibration toolbox工具的相機標(biāo)定和基于vs2019環(huán)境下的OpenCV進行立體匹配。根據(jù)實驗結(jié)果,SGM匹配算法對測距系統(tǒng)的實施具有一定的可塑性。
參考文獻:
[1] 郭攀,杜鴻.機器人雙目測距算法研究[J].無線互聯(lián)科技,2018,15(5):99-101.
[2] Wei G Q,Brauer W,Hirzinger G.Intensity- and gradient-based stereo matching using hierarchical Gaussian basis functions[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,20(11):1143-1160.
[3] 耿英楠. 立體匹配技術(shù)的研究[D].吉林大學(xué),2014.
[4] 閆利,王芮,劉華,陳長軍.基于改進代價計算和自適應(yīng)引導(dǎo)濾波的立體匹配[J].光學(xué)學(xué)報,2018,38(11):257-267.
[5] 寧曉斐. 雙目立體視覺中半全局立體匹配算法的研究[D].遼寧大學(xué),2014.
【通聯(lián)編輯:唐一東】
收稿日期:2021-11-15
作者簡介:沙春偉(1997—),男,江蘇泰州人,碩士,研究方向為計算機視覺;蔡鵬德(1994—),男,甘肅武威人,碩士,研究方向為圖像處理與深度學(xué)習(xí)。