攝影機(jī)是以高畫(huà)質(zhì)如實(shí)捕捉數(shù)據(jù)資料最精密的機(jī)器。如同人類的眼睛,攝影機(jī)可以捕捉細(xì)膩的影像和生動(dòng)的畫(huà)質(zhì),其他的感測(cè)器如雷達(dá)、超音波和雷射,都無(wú)法呈現(xiàn)如此美麗的細(xì)節(jié)。從全球各地洞穴發(fā)現(xiàn)的數(shù)萬(wàn)年前史前繪畫(huà),可以證明圖像和繪畫(huà)輔以感官視覺(jué)是傳遞精確資訊的最佳方法。
有人說(shuō),科技界下一個(gè)最富挑戰(zhàn)性的尖端工程,就是即時(shí)機(jī)器視覺(jué)和智慧化。其應(yīng)用包括但不限於:即時(shí)醫(yī)療分析(手術(shù)機(jī)器人)、擁有自主智能的工業(yè)用機(jī)器和汽車。此系列文章將聚焦在自主先進(jìn)駕駛輔助系統(tǒng)(ADAS)應(yīng)用,並探討為何攝影機(jī)和立體視覺(jué)是汽車可以安全又自主地「看見(jiàn)」和「駕駛」的關(guān)鍵。
如何選擇攝影機(jī)?
ADAS需要攝影機(jī)的關(guān)鍵應(yīng)用如圖一所示,有些應(yīng)用只需一套視覺(jué)系統(tǒng),例如前置、後置和側(cè)置攝影機(jī),即可偵測(cè)車道、行人、辨識(shí)交通號(hào)誌、偵測(cè)盲點(diǎn)和車道。其他如融合雷達(dá)數(shù)據(jù)和攝影感測(cè)器的智能主動(dòng)車距控制巡航系統(tǒng)(ACC),在面對(duì)複雜的情況如市區(qū)交通、彎曲道路或高速駕駛時(shí),更顯重要。

圖一 : 汽車ADAS的攝影機(jī)感測(cè)器應(yīng)用:(a)前置攝影機(jī)—車道偵測(cè)、行人偵測(cè)、交通號(hào)誌辨識(shí)和緊急煞車(b)側(cè)置和後置攝影機(jī)—停車輔助、盲點(diǎn)偵測(cè)和兩側(cè)來(lái)車警示系統(tǒng)(Cross Traffic Alert) |
|
攝影機(jī)所拍攝的真實(shí)世界是三維的。而真實(shí)世界中不同景深的物體,在錄影感測(cè)器的二維映射世界中看起來(lái)會(huì)彼此相鄰。圖二顯示的是Middlebury圖片集的照片;顯然地,照片前景的摩托車比後方的儲(chǔ)物箱靠近攝影機(jī)大約兩公尺。請(qǐng)注意圖中標(biāo)註的點(diǎn)1和點(diǎn)2。背景中的紅箱子(點(diǎn)1)看起來(lái)就在摩托車叉的旁邊,即使紅箱子距離攝影機(jī)至少二公尺遠(yuǎn)。人類的頭腦具有透視的能力,能夠讓我們從2D場(chǎng)景判斷景深的遠(yuǎn)近,不過(guò)對(duì)汽車的前置攝影機(jī)來(lái)說(shuō),透視分析並不容易。

圖二 : 2014年Middlebury圖片集照片。前景中的摩托車比儲(chǔ)物櫃靠近攝影機(jī),儘管在2D平面圖所有的物體看起來(lái)都相鄰。 |
|
如果我們安裝一支攝影感測(cè)器,拍攝到的影片必須進(jìn)行後製處理和分析,這個(gè)系統(tǒng)就叫做單眼(Single-eyed)系統(tǒng);擁有兩支獨(dú)立攝影機(jī)的系統(tǒng),則稱為立體視覺(jué)系統(tǒng)。單眼攝影機(jī)系統(tǒng)的分析能力可以正確辨識(shí)行徑路線中的車道、行人、交通號(hào)誌以及其他車輛,但該系統(tǒng)比較無(wú)法做到的是,從它的單眼感測(cè)器所接收的2D平面影像來(lái)計(jì)算真實(shí)世界的3D影像。對(duì)生來(lái)就有兩隻眼睛的人類和大多數(shù)較進(jìn)化的動(dòng)物來(lái)看,這並不令人意外。
分析單眼攝影機(jī)拍攝的影片(影像)高階流程和演算法來(lái)看,第一階段是影像預(yù)處理步驟,透過(guò)影像(通常指的是每一個(gè)像素)濾波器,除去感測(cè)器噪音和其他不需要的訊息。這個(gè)階段也會(huì)把從攝影機(jī)感測(cè)器接收到的BAYER數(shù)據(jù)格式,轉(zhuǎn)換成可以讓接下來(lái)的步驟進(jìn)行分析的YUV或RGB格式。
完成第一階段特徵預(yù)除(邊緣、哈爾、賈伯濾波、方向梯度直方圖)後,第二和第三階段會(huì)進(jìn)一步分析影像,透過(guò)分割、光流、區(qū)塊比對(duì)和模式辨識(shí)等演算法找出感興趣區(qū)域(Regions of Interest)。最後一個(gè)階段運(yùn)用先前階段產(chǎn)生的區(qū)域資訊和特徵資料,針對(duì)感興趣區(qū)域的物體級(jí)別做出智能分析決策。這個(gè)簡(jiǎn)短的解釋不完全說(shuō)明ADAS影像處理演算法,但由於本文的目的是要凸顯立體視覺(jué)系統(tǒng)所帶來(lái)的額外挑戰(zhàn)和強(qiáng)大的功能,區(qū)塊演算法的相關(guān)資訊已足以讓我們深入地探討這個(gè)主題。
單眼攝影機(jī)如何從2D數(shù)據(jù)測(cè)量物體距離?
單眼攝影機(jī)有兩種方法進(jìn)行距離測(cè)量。第一個(gè)方法是根據(jù)一個(gè)簡(jiǎn)單的原理:物體愈近在鏡頭裡看起來(lái)愈大,在畫(huà)面中所佔(zhàn)的畫(huà)素面積也愈大。假設(shè)有個(gè)物體被認(rèn)定是汽車,它的面積可以透過(guò)計(jì)算覆蓋其上的最大矩形面積得出。矩形面積愈大,物體(例如汽車)就愈靠近攝影機(jī)。緊急剎車演算法即是藉由計(jì)算畫(huà)面裡兩個(gè)物體的距離,是否比預(yù)設(shè)的安全數(shù)值還要近,來(lái)決定是否要啟動(dòng)防撞或駕駛?cè)司敬胧?/span>
這個(gè)方法的優(yōu)點(diǎn)是簡(jiǎn)單明瞭,不過(guò)卻有幾項(xiàng)缺點(diǎn)。首先,物體必須先被正確的辨識(shí),否則無(wú)法正確計(jì)算物體的距離。例如圖三的情境,有三個(gè)行人圖形。行人1是個(gè)高個(gè)子,行人2是個(gè)小男孩,這兩個(gè)行人與攝影機(jī)的距離相同。行人3距離攝影機(jī)較遠(yuǎn),也是個(gè)高個(gè)子。物體偵測(cè)演算法辨識(shí)後會(huì)在這三位行人上畫(huà)出矩形。很不幸的,覆蓋在離攝影機(jī)較近的小男孩(行人2)身上的矩形面積與覆蓋在離攝影機(jī)較遠(yuǎn)的高個(gè)子(行人3)身上的面積是相同的。因此,2D影像中的物體畫(huà)素面積並非計(jì)算物體與攝影機(jī)距離的完美可靠指標(biāo)。另一個(gè)問(wèn)題是,倘若場(chǎng)景中的物體無(wú)法被辨識(shí),距離就無(wú)法確定,因?yàn)樵撗菟惴o(wú)法得知物體的畫(huà)素面積。有許多原因造成物體無(wú)法被辨識(shí),例如遮擋、光線、圖像偽影。

圖三 : 此虛擬圖顯示移動(dòng)汽車的攝影機(jī)所拍攝到3位行人。行人3和行人2的畫(huà)素面積一樣大,但行人2卻比行人3距離汽車近得多。 |
|
使用單眼攝影機(jī)計(jì)算物體距離的第二個(gè)方法稱為從運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)原理 (structure-from-motion, SFM)。由於攝影機(jī)理論上是在移動(dòng)中,透過(guò)比對(duì)連續(xù)拍攝的畫(huà)面可以找出重要特徵。對(duì)極幾何原理(Epipolar geometry)先定義一個(gè)約束參數(shù),從移動(dòng)中(或翻轉(zhuǎn)中)的攝影機(jī)連續(xù)拍攝的二個(gè)畫(huà)面中,找出一個(gè)畫(huà)素點(diǎn),約束參數(shù)就是此點(diǎn)在3D空間移動(dòng)的方向。圖四即為SFM計(jì)算距離的高階數(shù)據(jù)流程。

圖四 : SFM計(jì)算距離的高階數(shù)據(jù)流程。稀疏光流(OF)可以被稠密光流(圖像上所有畫(huà)素點(diǎn)的光流)計(jì)算取代。上述光流假設(shè)是30fps。 |
|
(本文作者Aish Dubey任職於德州儀器)
**刊頭圖(Source:YouTube)