雙目攝像頭測距演算法
輸入輸出介面
input:
(3)攝像頭標定引數(中心位置(x,y)和5個畸變
係數(2徑向,2切向,1稜向),浮點型float)
(4)攝像頭初始化引數(攝像頭初始位置和三個座標方向
的旋轉角度,車輛寬度高度車速等等,浮點型float)
output:
(3)左右兩幀影象image/video 匹配後的深度資訊(浮點型float)
(4)目標物與攝像頭的距離 (浮點型float)
1.功能定義
雙目測距實際操作分4個步驟:相機標定——雙目校正——雙目匹配——計算深度資訊。
相機標定:攝像頭由於光學透鏡的特性使得成像存在著徑向畸變,可由三個引數k1,k2,k3確定;由於裝配方面的誤差,感測器與光學鏡頭之間並非完全平行,因此成像存在切向畸變,可由兩個引數p1,p2確定。單個攝像頭的定標主要是計算出攝像頭的內參(焦距f和成像原點cx,cy、五個畸變引數(一般只需要計算出k1,k2,p1,p2,對於魚眼鏡頭等徑向畸變特別大的才需要計算k3))以及外參(標定物的世界座標)。而雙目攝像頭定標不僅要得出每個攝像頭的內部引數,還需要通過標定來測量兩個攝像頭之間的相對位置(即右攝像頭相對於左攝像頭的旋轉矩陣r、平移向量t)。
雙目校正:雙目校正是根據攝像頭定標後獲得的單目內參資料(焦距、成像原點、畸變係數)和雙目相對位置關係(旋轉矩陣和平移向量),分別對左右檢視進行消除畸變和行對準,使得左右檢視的成像原點座標一致(cv_calib_zero_disparity標誌位設定時發生作用)、兩攝像頭光軸平行、左右成像平面共面、對極線行對齊。這樣一幅影象上任意一點與其在另一幅影象上的對應點就必然具有相同的行號,只需在該行進行一維搜尋即可匹配到對應點。
雙目匹配:雙目匹配的作用是把同一場景在左右檢視上對應的像點匹配起來,這樣做的目的是為了得到視差圖。雙目匹配被普遍認為是立體視覺中最困難也是最關鍵的問題。得到視差資料,通過上述原理中的公式就可以很容易的計算出深度資訊。
2.技術路線方案
雙目視覺廣泛應用在機械人導航,精密工業測量、物體識別、虛擬實境、場景重建,勘測領域。
雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或者多個點觀察乙個物體,獲取在不同視角下的影象,根據影象之間畫素的匹配關係,通過三角測量原理計算出畫素之間的偏移來獲取物體的三維資訊。
它的物理原理是這樣的,首先請看下圖:
圖1. 雙目測距
如圖1,p是待測物體上的某一點,or與ot分別是兩個相機的光心,點p在兩個相機感光器上的成像點分別為p和p』(相機的成像平面經過旋轉後放在了鏡頭前方),f為相機焦距,b為兩相機中心距,z為我們想求得的深度資訊,設點p到點p』的距離為dis,則:
根據相似三角形原理:
可得:公式中,焦距f和攝像頭中心距b可通過標定得到,因此,只要獲得了
(即視差d)的值即可求得深度資訊,即:
假設目標點在左檢視中的座標為(x,y),在左右檢視上形成的視差為d,目標點在以左攝像頭光心為原點的世界座標系中的座標為(x,y,z),則存在所示的變換矩陣q,使得。
為了精確地求得某個點在三維空間裡的距離z,我們需要獲得的引數有焦距f、視差d、攝像頭中心距b。如果還需要獲得x座標和y座標的話,那麼還需要額外知道左右像平面的座標系與立體座標系中原點的偏移cx和cy。其中f,d,cx和cy可以通過立體標定獲得初始值,並通過立體校準優化,使得兩個攝像頭在數學上完全平行放置,並且左右攝像頭的cx,cy和f相同。而立體匹配所做的工作,就是在之前的基礎上,求取最後乙個變數:視差d。從而最終完成求乙個點三維座標所需要的準備工作。在清楚了上述原理之後,我們也就知道了,所有的這幾步:標定、校準和匹配,都是圍繞著如何更精確地獲得 f,d,b,cx 和cy 而設計的。
標定:攝像頭標定一般都需要乙個放在攝像頭前的特製的標定參照物(棋盤紙),攝像頭獲取該物體的影象,並由此計算攝像頭的內外引數。標定參照物上的每乙個特徵點相對於世界座標系的位置在製作時應精確測定,世界座標系可選為參照物的物體座標系。在得到這些已知點在影象上的投影位置後,可計算出攝像頭的內外引數。
校準與匹配:雙目攝像頭標定不僅要得出每個攝像頭的內部引數,還需要通過標定來測量兩個攝像頭之間的相對位置。要計算目標點在左右兩個檢視上形成的視差,首先要把該點在左右檢視上兩個對應的像點匹配起來。然而,在二維空間上匹配對應點是非常耗時的,為了減少匹配搜尋範圍,我們可以利用極線約束使得對應點的匹配由二維搜尋降為一維搜尋。而雙目校正的作用就是要把消除畸變後的兩幅影象嚴格地行對應,使得兩幅影象的對極線恰好在同一水平線上,這樣一幅影象上任意一點與其在另一幅影象上的對應點就必然具有相同的行號,只需在該行進行一維搜尋即可匹配到對應點。
圖2. 雙目校正與匹配
3.關鍵技術引數和效能指標
利用雙目攝像頭的資料估計車輛和車輛距離。假設攝像頭解析度1280´720畫素,焦距1458畫素,角度誤差小於0.5度。下表描述精度指標:
表1. 指標
攝像頭測距
深度檢測主要技術方法 1.雙目匹配 雙rgb攝像頭 可選的照明系統 三角測量原理即目標點在左右兩幅檢視中成像的橫座標之間存在的差異 視差disparity 與目標點到成像平面的距離成反比例的關係 z ft d 得到深度資訊。雙目匹配採用三角測量原理完全基於影象處理技術,通過尋找兩個影象中的相同的特徵...
雙攝像頭測距
開篇之前,首先要感謝maxwellsdemon和wobject,沒有和你們的討論,也就沒有此篇的成文。說到雙攝像頭測距,首先要複習一下測距原理,把learning opencv翻到416和418頁,可以看到下面兩幅圖 圖1.雙攝像頭模型俯檢視 圖2,雙攝像頭模型立體檢視 圖1解釋了雙攝像頭測距的原理...
攝像頭測距實現
普通攝像頭利用人臉識別技術與景深應用實現測距 今天看到有人問能不能用攝像頭來檢測距離,我剛開始覺得這幾乎是個不可能的事情,大家都知道這幾天都不讓出門,就窩在家裡想這個事。靈光一現,為什麼不將人臉識別與測距結合起來就可以實現了。具體演算法原理暫不公開 人臉識別可以使用opencv自帶的,也可以使用開源...