先說一下單/雙目的測距原理區(qū)別:
單目測距原理:
先通過圖像匹配進行目標(biāo)識別(各種車型、行人、物體等),再通過目標(biāo)在圖像中的大小去估算目標(biāo)距離。這就要求在估算距離之前首先對目標(biāo)進行準(zhǔn)確識別,是汽車還是行人,是貨車、SUV還是小轎車。準(zhǔn)確識別是準(zhǔn)確估算距離的第一步。要做到這一點,就需要建立并不斷維護一個龐大的樣本特征數(shù)據(jù)庫,保證這個數(shù)據(jù)庫包含待識別目標(biāo)的全部特征數(shù)據(jù)。比如在一些特殊地區(qū),為了專門檢測大型動物,必須先行建立大型動物的數(shù)據(jù)庫;而對于另外某些區(qū)域存在一些非常規(guī)車型,也要先將這些車型的特征數(shù)據(jù)加入到數(shù)據(jù)庫中。如果缺乏待識別目標(biāo)的特征數(shù)據(jù),就會導(dǎo)致系統(tǒng)無法對這些車型、物體、障礙物進行識別,從而也就無法準(zhǔn)確估算這些目標(biāo)的距離。
單/雙目方案的優(yōu)點與難點
從上面的介紹,單目系統(tǒng)的優(yōu)勢在于成本較低,對計算資源的要求不高,系統(tǒng)結(jié)構(gòu)相對簡單;缺點是:(1)需要不斷更新和維護一個龐大的樣本數(shù)據(jù)庫,才能保證系統(tǒng)達到較高的識別率;(2)無法對非標(biāo)準(zhǔn)障礙物進行判斷;(3)距離并非真正意義上的測量,準(zhǔn)確度較低。
雙目檢測原理:
通過對兩幅圖像視差的計算,直接對前方景物(圖像所拍攝到的范圍)進行距離測量,而無需判斷前方出現(xiàn)的是什么類型的障礙物。所以對于任何類型的障礙物,都能根據(jù)距離信息的變化,進行必要的預(yù)警或制動。雙目攝像頭的原理與人眼相似。人眼能夠感知物體的遠(yuǎn)近,是由于兩只眼睛對同一個物體呈現(xiàn)的圖像存在差異,也稱“視差”。物體距離越遠(yuǎn),視差越小;反之,視差越大。視差的大小對應(yīng)著物體與眼睛之間距離的遠(yuǎn)近,這也是3D電影能夠使人有立體層次感知的原因。
上圖中的人和椰子樹,人在前,椰子樹在后,最下方是雙目相機中的成像。其中,右側(cè)相機成像中人在樹的左側(cè),左側(cè)相機成像中人在樹的右側(cè),這是因為雙目的角度不一樣。再通過對比兩幅圖像就可以知道人眼觀察樹的時候視差小,而觀察人時視差大。因為樹的距離遠(yuǎn),人的距離近。這就是雙目三角測距的原理。雙目系統(tǒng)對目標(biāo)物體距離感知是一種絕對的測量,而非估算。
理想雙目相機成像模型
根據(jù)三角形相似定律:
(1)
由式(1),解方程得:
(2)
z=b*f/d, x=z*xl/d, y=z*y/f (3)
根據(jù)上述推導(dǎo),要求得空間點P離相機的距離(深度)z,必須知道:
1、相機焦距f,左右相機基線b(可以通過先驗信息或者相機標(biāo)定得到)。
2、視差 :,即左相機像素點(xl, yl)和右相機中對應(yīng)點(xr, yr)的關(guān)系,這是雙目視覺的核心問題。
重點來看一下視差(disparity),視差是同一個空間點在兩個相機成像中對應(yīng)的x坐標(biāo)的差值,它可以通過編碼成灰度圖來反映出距離的遠(yuǎn)近,離鏡頭越近的灰度越亮;
極線約束
對于左圖中的一個像素點,如何確定該點在右圖中的位置?需要在整個圖像中地毯式搜索嗎?當(dāng)然不用,此時需要用到極線約束。
如上圖所示。O1,O2是兩個相機,P是空間中的一個點,P和兩個相機中心點O1、O2形成了三維空間中的一個平面PO1O2,稱為極平面(Epipolar plane)。極平面和兩幅圖像相交于兩條直線,這兩條直線稱為極線(Epipolar line)。
P在相機O1中的成像點是P1,在相機O2中的成像點是P2,但是P的位置是未知的。我們的目標(biāo)是:對于左圖的P1點,尋找它在右圖中的對應(yīng)點P2,這樣就能確定P點的空間位置。
極線約束(Epipolar Constraint)是指當(dāng)空間點在兩幅圖像上分別成像時,已知左圖投影點p1,那么對應(yīng)右圖投影點p2一定在相對于p1的極線上,這樣可以極大的縮小匹配范圍。即P2一定在對應(yīng)極線上,所以只需要沿著極線搜索便可以找到P1的對應(yīng)點P2。
非理性情況:
上面是兩相機共面且光軸平行,參數(shù)相同的理想情況,當(dāng)相機O1,O2不是在同一直線上怎么辦呢?事實上,這種情況非常常見,因為有些場景下兩個相機需要獨立固定,很難保證光心完全水平,即使固定在同一個基板上也會由于裝配的原因?qū)е鹿庑牟煌耆?,如下圖所示:兩個相機的極線不平行,并且不共面。
這種情況下拍攝的兩張左右圖片,如下圖所示。左圖中三個十字標(biāo)志的點,右圖中對應(yīng)的極線是右圖中的三條白色直線,也就是對應(yīng)的搜索區(qū)域。我們看到這三條直線并不是水平的,如果進行逐點搜索效率非常低。
圖像矯正技術(shù)
圖像矯正是通過分別對兩張圖片用單應(yīng)性矩陣(homography matrix)變換得到,目的是把兩個不同方向的圖像平面(下圖中灰色平面)重新投影到同一個平面且光軸互相平行(下圖中黃色平面),這樣轉(zhuǎn)化為理想情況的模型。
經(jīng)過圖像矯正后,左圖中的像素點只需要沿著水平的極線方向搜索對應(yīng)點就可以了。從下圖中我們可以看到三個點對應(yīng)的視差(紅色雙箭頭線段)是不同的,越遠(yuǎn)的物體視差越小,越近的物體視差越大。
上面的主要工作是在極線上尋找匹配點,但是由于要保證兩個相機參數(shù)完全一致是不現(xiàn)實的,并且外界光照變化和視角不同的影響,使得單個像素點魯棒性很差。所以匹配工作是一項很重要的事情,這也關(guān)系著雙目視覺測距的準(zhǔn)確性。
雙目視覺的工作流程
相機鏡頭畸變校正原理及方法,之前介紹過,這個基本是通用的,可以用張正友校準(zhǔn)法。
雙目測距的優(yōu)點與難點
從上面的介紹看出,雙目系統(tǒng)優(yōu)勢:(1)成本比單目系統(tǒng)要高,但尚處于可接受范圍內(nèi),并且與激光雷達等方案相比成本較低;(2)沒有識別率的限制,因為從原理上無需先進行識別再進行測算,而是對所有障礙物直接進行測量;(3)直接利用視差計算距離,精度比單目高;(4)無需維護樣本數(shù)據(jù)庫,因為對于雙目沒有樣本的概念。
雙目系統(tǒng)的難點:
(1)計算量非常大,對計算單元的性能要求非常高,這使得雙目系統(tǒng)的產(chǎn)品化、小型化的難度較大。所以在芯片或FPGA上解決雙目的計算問題難度比較大。國際上使用雙目的研究機構(gòu)或廠商,絕大多數(shù)是使用服務(wù)器進行圖像處理與計算,也有部分將算法進行簡化后,使用FPGA進行處理。
(2)雙目的配準(zhǔn)效果,直接影響到測距的準(zhǔn)確性。
2.1、對環(huán)境光照非常敏感。雙目立體視覺法依賴環(huán)境中的自然光線采集圖像,而由于光照角度變化、光照強度變化等環(huán)境因素的影響,拍攝的兩張圖片亮度差別會比較大,這會對匹配算法提出很大的挑戰(zhàn)。
2.2、不適用于單調(diào)缺乏紋理的場景。由于雙目立體視覺法根據(jù)視覺特征進行圖像匹配,所以對于缺乏視覺特征的場景(如天空、白墻、沙漠等)會出現(xiàn)匹配困難,導(dǎo)致匹配誤差較大甚至匹配失敗。
2.3、計算復(fù)雜度高。該方法需要逐像素匹配;又因為上述多種因素的影響,為保證匹配結(jié)果的魯棒性,需要在算法中增加大量的錯誤剔除策略,因此對算法要求較高,想要實現(xiàn)可靠商用難度大,計算量較大。
2.4、相機基線限制了測量范圍。測量范圍和基線(兩個攝像頭間距)關(guān)系很大:基線越大,測量范圍越遠(yuǎn);基線越小,測量范圍越近。所以基線在一定程度上限制了該深度相機的測量范圍。
責(zé)任編輯:xj
原文標(biāo)題:雙目視覺測距原理,數(shù)學(xué)推導(dǎo)及三維重建資源
文章出處:【微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
測距
+關(guān)注
關(guān)注
2文章
102瀏覽量
19603 -
三維重建
+關(guān)注
關(guān)注
0文章
26瀏覽量
9895 -
雙目
+關(guān)注
關(guān)注
0文章
2瀏覽量
5773
原文標(biāo)題:雙目視覺測距原理,數(shù)學(xué)推導(dǎo)及三維重建資源
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論