點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)

先通過圖像匹配進(jìn)行目標(biāo)識(shí)別(各種車型、行人、物體等),再通過目標(biāo)在圖像中的大小去估算目標(biāo)距離。這就要求在估算距離之前首先對(duì)目標(biāo)進(jìn)行準(zhǔn)確識(shí)別,是汽車還是行人,是貨車、SUV還是小轎車。準(zhǔn)確識(shí)別是準(zhǔn)確估算距離的第一步。要做到這一點(diǎn),就需要建立并不斷維護(hù)一個(gè)龐大的樣本特征數(shù)據(jù)庫(kù),保證這個(gè)數(shù)據(jù)庫(kù)包含待識(shí)別目標(biāo)的全部特征數(shù)據(jù)。比如在一些特殊地區(qū),為了專門檢測(cè)大型動(dòng)物,必須先行建立大型動(dòng)物的數(shù)據(jù)庫(kù);而對(duì)于另外某些區(qū)域存在一些非常規(guī)車型,也要先將這些車型的特征數(shù)據(jù)加入到數(shù)據(jù)庫(kù)中。如果缺乏待識(shí)別目標(biāo)的特征數(shù)據(jù),就會(huì)導(dǎo)致系統(tǒng)無(wú)法對(duì)這些車型、物體、障礙物進(jìn)行識(shí)別,從而也就無(wú)法準(zhǔn)確估算這些目標(biāo)的距離。單/雙目方案的優(yōu)點(diǎn)與難點(diǎn)
從上面的介紹,單目系統(tǒng)的優(yōu)勢(shì)在于成本較低,對(duì)計(jì)算資源的要求不高,系統(tǒng)結(jié)構(gòu)相對(duì)簡(jiǎn)單;缺點(diǎn)是:(1)需要不斷更新和維護(hù)一個(gè)龐大的樣本數(shù)據(jù)庫(kù),才能保證系統(tǒng)達(dá)到較高的識(shí)別率;(2)無(wú)法對(duì)非標(biāo)準(zhǔn)障礙物進(jìn)行判斷;(3)距離并非真正意義上的測(cè)量,準(zhǔn)確度較低。通過對(duì)兩幅圖像視差的計(jì)算,直接對(duì)前方景物(圖像所拍攝到的范圍)進(jìn)行距離測(cè)量,而無(wú)需判斷前方出現(xiàn)的是什么類型的障礙物。所以對(duì)于任何類型的障礙物,都能根據(jù)距離信息的變化,進(jìn)行必要的預(yù)警或制動(dòng)。雙目攝像頭的原理與人眼相似。人眼能夠感知物體的遠(yuǎn)近,是由于兩只眼睛對(duì)同一個(gè)物體呈現(xiàn)的圖像存在差異,也稱“視差”。物體距離越遠(yuǎn),視差越小;反之,視差越大。視差的大小對(duì)應(yīng)著物體與眼睛之間距離的遠(yuǎn)近,這也是3D電影能夠使人有立體層次感知的原因。上圖中的人和椰子樹,人在前,椰子樹在后,最下方是雙目相機(jī)中的成像。其中,右側(cè)相機(jī)成像中人在樹的左側(cè),左側(cè)相機(jī)成像中人在樹的右側(cè),這是因?yàn)殡p目的角度不一樣。再通過對(duì)比兩幅圖像就可以知道人眼觀察樹的時(shí)候視差小,而觀察人時(shí)視差大。因?yàn)闃涞木嚯x遠(yuǎn),人的距離近。這就是雙目三角測(cè)距的原理。雙目系統(tǒng)對(duì)目標(biāo)物體距離感知是一種絕對(duì)的測(cè)量,而非估算。根據(jù)上述推導(dǎo),要求得空間點(diǎn)P離相機(jī)的距離(深度)z,必須知道:1、相機(jī)焦距f,左右相機(jī)基線b(可以通過先驗(yàn)信息或者相機(jī)標(biāo)定得到)。2、視差 :
,即左相機(jī)像素點(diǎn)(xl, yl)和右相機(jī)中對(duì)應(yīng)點(diǎn)(xr, yr)的關(guān)系,這是雙目視覺的核心問題。重點(diǎn)來看一下視差(disparity),視差是同一個(gè)空間點(diǎn)在兩個(gè)相機(jī)成像中對(duì)應(yīng)的x坐標(biāo)的差值,它可以通過編碼成灰度圖來反映出距離的遠(yuǎn)近,離鏡頭越近的灰度越亮;對(duì)于左圖中的一個(gè)像素點(diǎn),如何確定該點(diǎn)在右圖中的位置?需要在整個(gè)圖像中地毯式搜索嗎?當(dāng)然不用,此時(shí)需要用到極線約束。如上圖所示。O1,O2是兩個(gè)相機(jī),P是空間中的一個(gè)點(diǎn),P和兩個(gè)相機(jī)中心點(diǎn)O1、O2形成了三維空間中的一個(gè)平面PO1O2,稱為極平面(Epipolar plane)。極平面和兩幅圖像相交于兩條直線,這兩條直線稱為極線(Epipolar line)。P在相機(jī)O1中的成像點(diǎn)是P1,在相機(jī)O2中的成像點(diǎn)是P2,但是P的位置是未知的。我們的目標(biāo)是:對(duì)于左圖的P1點(diǎn),尋找它在右圖中的對(duì)應(yīng)點(diǎn)P2,這樣就能確定P點(diǎn)的空間位置。極線約束(Epipolar Constraint)是指當(dāng)空間點(diǎn)在兩幅圖像上分別成像時(shí),已知左圖投影點(diǎn)p1,那么對(duì)應(yīng)右圖投影點(diǎn)p2一定在相對(duì)于p1的極線上,這樣可以極大的縮小匹配范圍。即P2一定在對(duì)應(yīng)極線上,所以只需要沿著極線搜索便可以找到P1的對(duì)應(yīng)點(diǎn)P2。上面是兩相機(jī)共面且光軸平行,參數(shù)相同的理想情況,當(dāng)相機(jī)O1,O2不是在同一直線上怎么辦呢?事實(shí)上,這種情況非常常見,因?yàn)橛行﹫?chǎng)景下兩個(gè)相機(jī)需要獨(dú)立固定,很難保證光心完全水平,即使固定在同一個(gè)基板上也會(huì)由于裝配的原因?qū)е鹿庑牟煌耆剑缦聢D所示:兩個(gè)相機(jī)的極線不平行,并且不共面。這種情況下拍攝的兩張左右圖片,如下圖所示。左圖中三個(gè)十字標(biāo)志的點(diǎn),右圖中對(duì)應(yīng)的極線是右圖中的三條白色直線,也就是對(duì)應(yīng)的搜索區(qū)域。我們看到這三條直線并不是水平的,如果進(jìn)行逐點(diǎn)搜索效率非常低。圖像矯正是通過分別對(duì)兩張圖片用單應(yīng)性矩陣(homography matrix)變換得到,目的是把兩個(gè)不同方向的圖像平面(下圖中灰色平面)重新投影到同一個(gè)平面且光軸互相平行(下圖中黃色平面),這樣轉(zhuǎn)化為理想情況的模型。經(jīng)過圖像矯正后,左圖中的像素點(diǎn)只需要沿著水平的極線方向搜索對(duì)應(yīng)點(diǎn)就可以了。從下圖中我們可以看到三個(gè)點(diǎn)對(duì)應(yīng)的視差(紅色雙箭頭線段)是不同的,越遠(yuǎn)的物體視差越小,越近的物體視差越大。圖像校正后的結(jié)果。紅色雙箭頭線段是對(duì)應(yīng)點(diǎn)的視差上面的主要工作是在極線上尋找匹配點(diǎn),但是由于要保證兩個(gè)相機(jī)參數(shù)完全一致是不現(xiàn)實(shí)的,并且外界光照變化和視角不同的影響,使得單個(gè)像素點(diǎn)魯棒性很差。所以匹配工作是一項(xiàng)很重要的事情,這也關(guān)系著雙目視覺測(cè)距的準(zhǔn)確性。相機(jī)鏡頭畸變校正原理及方法,之前介紹過,這個(gè)基本是通用的,可以用張正友校準(zhǔn)法。雙目測(cè)距的優(yōu)點(diǎn)與難點(diǎn)
從上面的介紹看出,雙目系統(tǒng)優(yōu)勢(shì):(1)成本比單目系統(tǒng)要高,但尚處于可接受范圍內(nèi),并且與激光雷達(dá)等方案相比成本較低;(2)沒有識(shí)別率的限制,因?yàn)閺脑砩蠠o(wú)需先進(jìn)行識(shí)別再進(jìn)行測(cè)算,而是對(duì)所有障礙物直接進(jìn)行測(cè)量;(3)直接利用視差計(jì)算距離,精度比單目高;(4)無(wú)需維護(hù)樣本數(shù)據(jù)庫(kù),因?yàn)閷?duì)于雙目沒有樣本的概念。(1)計(jì)算量非常大,對(duì)計(jì)算單元的性能要求非常高,這使得雙目系統(tǒng)的產(chǎn)品化、小型化的難度較大。所以在芯片或FPGA上解決雙目的計(jì)算問題難度比較大。國(guó)際上使用雙目的研究機(jī)構(gòu)或廠商,絕大多數(shù)是使用服務(wù)器進(jìn)行圖像處理與計(jì)算,也有部分將算法進(jìn)行簡(jiǎn)化后,使用FPGA進(jìn)行處理。(2)雙目的配準(zhǔn)效果,直接影響到測(cè)距的準(zhǔn)確性。a. 對(duì)環(huán)境光照非常敏感。雙目立體視覺法依賴環(huán)境中的自然光線采集圖像,而由于光照角度變化、光照強(qiáng)度變化等環(huán)境因素的影響,拍攝的兩張圖片亮度差別會(huì)比較大,這會(huì)對(duì)匹配算法提出很大的挑戰(zhàn)。b. 不適用于單調(diào)缺乏紋理的場(chǎng)景。由于雙目立體視覺法根據(jù)視覺特征進(jìn)行圖像匹配,所以對(duì)于缺乏視覺特征的場(chǎng)景(如天空、白墻、沙漠等)會(huì)出現(xiàn)匹配困難,導(dǎo)致匹配誤差較大甚至匹配失敗。c. 計(jì)算復(fù)雜度高。該方法需要逐像素匹配;又因?yàn)樯鲜龆喾N因素的影響,為保證匹配結(jié)果的魯棒性,需要在算法中增加大量的錯(cuò)誤剔除策略,因此對(duì)算法要求較高,想要實(shí)現(xiàn)可靠商用難度大,計(jì)算量較大。d. 相機(jī)基線限制了測(cè)量范圍。測(cè)量范圍和基線(兩個(gè)攝像頭間距)關(guān)系很大:基線越大,測(cè)量范圍越遠(yuǎn);基線越小,測(cè)量范圍越近。所以基線在一定程度上限制了該深度相機(jī)的測(cè)量范圍。下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~