原理圖示

原理很簡(jiǎn)單,利用了相似三角形計(jì)算距離,所以雙目測(cè)距的主要任務(wù)在于前期攝像頭的定標(biāo)、雙目圖像點(diǎn)的特征匹配上。
常用做法具體步驟
1.雙目定標(biāo)和校正,獲得攝像頭的參數(shù)矩陣
攝像頭定標(biāo)一般都需要一個(gè)放在攝像頭前的特制的標(biāo)定參照物(棋盤(pán)紙),攝像頭獲取該物體的圖像,并由此計(jì)算攝像頭的內(nèi)外參數(shù)。標(biāo)定參照物上的每一個(gè)特征點(diǎn)相對(duì)于世界坐標(biāo)系的位置在制作時(shí)應(yīng)精確測(cè)定,世界坐標(biāo)系可選為參照物的物體坐標(biāo)系。在得到這些已知點(diǎn)在圖像上的投影位置后,可計(jì)算出攝像頭的內(nèi)外參數(shù)。

如上公式所示,攝像頭由于光學(xué)透鏡的特性使得成像存在著徑向畸變,可由三個(gè)參數(shù)k1,k2,k3確定;由于裝配方面的誤差,傳感器與光學(xué)鏡頭之間并非完全平行,因此成像存在切向畸變,可由兩個(gè)參數(shù)p1,p2確定。
具體操作:
cvStereoRectify 執(zhí)行雙目校正
initUndistortRectifyMap 分別生成兩個(gè)圖像校正所需的像素映射矩陣
cvremap 分別對(duì)兩個(gè)圖像進(jìn)行校正
2.立體匹配,獲得視差圖:
具體操作:
預(yù)處理: 圖像歸一化,減少亮度差別,增強(qiáng)紋理
stereoBM生成視差圖
匹配過(guò)程: 滑動(dòng)sad窗口,沿著水平線(xiàn)進(jìn)行匹配搜索,由于校正后左右圖片平行,左圖的特征可以在右圖對(duì)應(yīng)行找到最佳匹配
再過(guò)濾: 去除壞的匹配點(diǎn) 通過(guò)uniquenessratio
輸出視差圖disparity:如果左右匹配點(diǎn)比較稠密,匹配點(diǎn)多,得到的圖像與原圖相似度比較大, 如果匹配點(diǎn)比較稀疏,得到的點(diǎn)與原圖 相似度比較小
3.得出測(cè)距:
根據(jù)提取的特征點(diǎn)上用上述雙目測(cè)距的相似三角算法得出距離。
小車(chē)中的實(shí)際應(yīng)用
- SIFT特征提取算法對(duì)左右圖像點(diǎn)提取特征
- knnMatch取k=2找到左右圖片最佳匹配
- 再過(guò)濾去除壞的匹配點(diǎn)
- 對(duì)于剩下的點(diǎn)使用相似三角形計(jì)算公式得到圖片各點(diǎn)景深標(biāo)在圖上
- 最終小車(chē)避障可根據(jù)其中少數(shù)點(diǎn)進(jìn)行判斷,或者取均值。