原理圖示
原理很簡單缚柏,利用了相似三角形計算距離砾肺,所以雙目測距的主要任務在于前期攝像頭的定標凑术、雙目圖像點的特征匹配上翩蘸。
常用做法具體步驟
1.雙目定標和校正,獲得攝像頭的參數(shù)矩陣
攝像頭定標一般都需要一個放在攝像頭前的特制的標定參照物(棋盤紙)淮逊,攝像頭獲取該物體的圖像催首,并由此計算攝像頭的內(nèi)外參數(shù)。標定參照物上的每一個特征點相對于世界坐標系的位置在制作時應精確測定泄鹏,世界坐標系可選為參照物的物體坐標系郎任。在得到這些已知點在圖像上的投影位置后,可計算出攝像頭的內(nèi)外參數(shù)命满。
如上公式所示涝滴,攝像頭由于光學透鏡的特性使得成像存在著徑向畸變,可由三個參數(shù)k1,k2,k3確定胶台;由于裝配方面的誤差歼疮,傳感器與光學鏡頭之間并非完全平行,因此成像存在切向畸變诈唬,可由兩個參數(shù)p1,p2確定韩脏。
具體操作:
cvStereoRectify 執(zhí)行雙目校正
initUndistortRectifyMap 分別生成兩個圖像校正所需的像素映射矩陣
cvremap 分別對兩個圖像進行校正
2.立體匹配,獲得視差圖:
具體操作:
預處理: 圖像歸一化铸磅,減少亮度差別赡矢,增強紋理
stereoBM生成視差圖
匹配過程: 滑動sad窗口杭朱,沿著水平線進行匹配搜索,由于校正后左右圖片平行吹散,左圖的特征可以在右圖對應行找到最佳匹配
再過濾: 去除壞的匹配點 通過uniquenessratio
輸出視差圖disparity:如果左右匹配點比較稠密弧械,匹配點多,得到的圖像與原圖相似度比較大空民, 如果匹配點比較稀疏刃唐,得到的點與原圖 相似度比較小
3.得出測距:
根據(jù)提取的特征點上用上述雙目測距的相似三角算法得出距離。
小車中的實際應用
- SIFT特征提取算法對左右圖像點提取特征
- knnMatch取k=2找到左右圖片最佳匹配
- 再過濾去除壞的匹配點
- 對于剩下的點使用相似三角形計算公式得到圖片各點景深標在圖上
- 最終小車避障可根據(jù)其中少數(shù)點進行判斷界轩,或者取均值画饥。