• 沒有找到結果。

系統實作內容

在文檔中 安全是唯一的路 (頁 8-24)

3-1 軟硬體使用

軟體: CUDA、OpenCV、MATLAB

硬體: NVIDIA Jetson TX1 or PC with NVIDIA Graphics Cards、

ZED Stereo Camera

圖2-4-1、系統設計流程圖

3-2 系統架構與流程

圖3-2-1 是系統整體抽象層面上的架構與流程圖,以目標來說,本專題目 標是實時規劃安全行車路徑,需要感知車輛周遭環境,追蹤和預測物件是否會 與自己碰撞,並規劃出最安全的行車路徑。以下為各部份做介紹,而3-3 節將 詳細介紹演算法流程。

1. ZED Camera 及 Jetson TX1

ZED Camera 是一個雙鏡頭攝影機,可搭配 NVIDIA Jetson TK1、TX1 或 者NVIDIA Graphics Cards 使用 CUDA 來生成緻密深度圖,原廠提供的 SDK 本只可量測到最遠 20 公尺且有誤差,在自行校正後最遠可達 70 公尺的距離 並保持 10%以下的最大誤差;而 Jetson TX1 優點在於擁有一般家用 PC 顯示 卡的效能但整體功耗在20W 以內,非常適合在車輛上使用。

2. 雙鏡頭深度計算、單鏡頭測距與障礙物偵測

利用雙鏡頭產生如圖3-2-2 的深度圖,藉由單鏡頭測距,回推實際地面距 離在畫面中的位置,再參考以上兩者資訊,找出真正的障礙物。

圖3-2-2、深度計算與障礙物偵測 (左上:實際畫面、左下:深度圖、

右下:障礙物偵測) 圖3-2-1、系統架構流程

3. 俯視環境重建

大多數自動駕駛解決方案,都是使用LiDAR 或者多鏡頭生成三維點雲空 間,其運算量十分龐大,分析上也較為困難,我們認為路面行駛車輛只須注 意前後左右的方向,而俯瞰圖可以減少資訊量,駕駛或者系統不需要了解前 方障礙物是什麼,只需知道不能撞上任何物體,也簡化分析上的困難。利用 障礙物偵分離出車輛周遭應該注意的物件,並以其深度值從相機模型回推物 件的世界座標,重建車輛的俯瞰畫面。並將車道定位的結果標示在俯瞰圖上。

圖3-2-3 的俯視圖中,灰色為被障礙物遮擋的視線,而綠色為可行車的空間。

4. 車道定位、物件移動路徑預測、風險指數估計與路徑規劃最佳化

以車道定位為輔,追蹤所有分離物件的距離及偏移變化,以提前預判其 移動路徑是否會與本車的前進路徑相交會,再評估其風險指數、是否可能發 生碰撞,最後依照情形決定進行避障或者煞車。

圖3-2-4 為範例圖,圖中中間車輛為本車,紅色方塊為障礙物偵測結果,

紅色與綠色箭頭長度為物件預測路徑與速度,黑色箭頭為本車建議行車路徑 與速度。左圖中,前車因不明原因減速,左車道為逆向車道,右車道有車輛 快速接近,因此建議繼續直行並減速;右圖中,有車輛從左前方逆向而來,

而右車道無物體,因此建議往右車道移動,避免和逆向車發生碰撞。

圖3-2-3、前向鏡頭偵測結果與俯視環境示意圖

?

圖3-2-4、物件預測路徑和建議行車路徑示意圖

3-3 所使用演算法探討與文獻回顧

3-3-1 單鏡頭測距

單鏡頭測距大致可分為兩種,第一種是先建模再測距,如文獻[2]透過相機 模型的內部參數、外部參數、畸變係數,求得世界坐標與影像坐標的幾何關係,

便可以得到相機與目標物體的真實距離;第二種則先測距再建模,如文獻[3]

透過量測畫面中像素(Pixel)所對應的真實距離,使用數據回歸模型求得影像坐 標與距離的函數關係。

有一簡單模型只須相機高度、焦距以及與地面水平夾角,再利用其模型幾 何關係,將物體呈現在影像座標上的像素換算成實際的距離,來達成測距的效 果,或將想知道的距離回推到影像座標上。

1. 單鏡頭測距模型幾何關係推導:

a. 參考圖 3-3-1,先假設一攝影機其透鏡光軸延伸至地面距離為 ,攝影機 高度為 ,光軸與地面夾角 ,而成像水平線在影像座標上為 ,我們假 設 為影像中心水平線。其關係式為

b. 現在想得知距離 位在影像座標的何處,其夾角為 ,則

c. 再假設攝影機焦距 , 為所測距離的影像座標,可以得到

d. 即可求得

圖3-3-1、單鏡頭測距幾何模型

2. 實際驗證

在圖3-3-2 實際距離中,每公尺放置一標記物,而白線為幾何模型推算後 的位置,可以看出,因為忽略相機成像以及透鏡所產生的失真,導致近距離部 分有較明顯的誤差,但這簡單模型仍有其精準度。

就如2-2 小節現有技術分析中所提到,單鏡頭在偵測物體時,需要事先決 定要判斷何種物體,才能進行影像辨識的建模,測距的精準度在於影像辨識的 ROI 是否可精確地框住,也要確保能完全偵測到被測物,且單鏡頭測距需假設 鏡頭與地面夾角不會改變,導致數據偶有錯誤或者遺漏,較適合用在近距離且 只偵測少數被測物的情況。

綜上所述,我們並不直接使用此方法來做物體的測距,而是只去找出畫面 中平面道路的位置,並結合雙鏡頭深度視覺來達到障礙物偵測的效果。

圖3-3-2、驗證結果

3-3-2 雙鏡頭測距

雙鏡頭的深度計算大致可分為三大步驟:雙鏡頭影像校正、比對代價估算 及相機模型三角測量:

1. 相機模型(Camera Model)與三角測量

如圖3-3-3,假設已知被測物體 在左右鏡頭中的視差距離 (pixel),

相機焦距為 (pixel/mm),兩鏡頭光心之間的距離 (mm),即可計算被測 物體與鏡頭距離為 (mm)。

圖3-3-3、三角量測

不過在找出視差之前,需先完成相機模型。有三個坐標系統:世界座 標系統(World Coordinate System, WCS)、相機座標系統(Camera Coordinate System, CCS)、影像座標系統(Image Coordinate System, ICS)。

將WCS 轉為 CCS 的矩陣稱為外部參數矩陣(Extrinsic Parameters),由 三維旋轉矩陣 和平移矩陣 所組成,通常會把 WCS 設為其中一台相機的 CCS,便只需要求另一個相機的外參矩陣,而將 CCS 轉為 ICS 的矩陣稱為 內部參數矩陣(Intrinsic Parameters),由 和 方向焦距上,每單位距離的像 素數 、光心位置在IS 上的座標 。式3-1 是 WCS 與 ICS 的轉換 矩陣。

(式 3-1)

圖3-3-4、三種座標系統

2. 比對代價(Matching Cost)估算

比對代價估算是去搜尋被測物體在雙鏡頭中對應的位置,計算兩像素 在影像座標中的差距,便是被測物體的視差。代價(Cost)依類型可分為:

(a) pixel-based [4]: Absolute Intensity Differences(AD), Squared Intensity Differences (SD), Color Distances(CD), Sampling-Insensitive Absolute Differences(Birchfield and Tomasi, BT) [5]

(b) window-based: Sum of Absolute Differences (SAD), Sum of Squared Differences (SSD), Normalized Cross correlation(NCC), Rank and Census Transforms

(c) Mutual Information(MI)

圖3-3-5 是測試圖以及模擬深度圖,圖 3-3-6 是計算的深度圖,其中,

BT 是 AD 的優化版,藉由線性插值函數,來減少因影像像素的離散性,而 造成比對代價估算時的誤差。SAD/SSD 是 AD/SD 的視窗版本,藉由累加 視窗範圍內的代價,提高信噪比來減少大部分的錯誤匹配。

圖3-3-6、AD(左)、BT(中)、SAD(右)

而比對演算法也分成三大類:區域(Local)、全域(Global)、半全域 (Semi-Global),區域演算法最常用的是 Winner-Take-All(WTA),尋找極線上 範圍內的代價極值為匹配點,可用在所有代價上,但對於低紋理區域的匹 配錯誤率較高,如圖3-3-6 SAD 的右上角;全域演算法則去考慮整張影像,

定義一能量函數並基於像素求其全局最優解,可解決WTA 對影像中低紋理 區域的匹配問題,常見的演算法有Belief Propagation(BP)、Graph Cuts(GC)、

圖3-3-5、tsukuba(左)、groundtruth(右)

Dynamic Programming(DP);半全域演算法利用了區域 WTA 及全域 DP 的 觀念,以左影像中一條水平像素為基準,向右影像中相同水平位置的像素 進行比對,再透過多個一維方向做DP 影像匹配,模擬二維影像的全域匹配 最佳化。

文 獻[6]-[7]對目前立體視覺演算法做了比較與評估,[6]主要使用 pixel-based 和 window-based,區域和全域演算法並加入了代價優化前景膨 脹效應濾除,和後處理如相似點濾除、孤立點濾除;[7]測試了 window-based 和 MI,增加測試半全域演算法,並加入前處理如 Laplacian of Gaussian (LoG)、Rank、Mean filter。

在做文獻回顧並實際編寫程式去生成深度圖後,我們了解到雙鏡頭深 Distortion)與切向畸變(Tangent Distortion),以及雙鏡頭的極線(Epipolar line) 對齊。

極線對齊則是為了減少視差估算的比對時間,在二維影像上去比對所

圖3-3-9、校正前後的數據

3-3-4 障礙物偵測

在這裡我們利用雙鏡頭所生成的視差圖以及單鏡頭測距模型來達成,圖 3-3-9 為前向鏡頭畫面示意圖,假設每一公尺實際距離所在影像座標畫面畫一紅 線,中心水平線為地平線,藍色長方體為障礙物,當我將每條紅色線之間的地 面深度值數值設為各設為與底部紅色線對應距離後,其深度圖如 3-3-11 示意 圖,而障礙物會位在 2~3 公尺之間,其深度值都為 2 公尺,此時如果已知 3 公 尺水平線位在何處,便可往上找出非地面區域,如圖3-3-12 橘色框處為障礙物。

為了增加視差圖中各個物件的連續性,首先如圖 3-3-13 將取得視差圖的位 元深度(Bit Depth)從 8 bits 降為 4 bits,讓整張視差圖可直接分出 16 層,再來將 每層抽出,並利用單鏡頭測距模型,推算圖 3-3-14 中所在層紅線對應的影像座 標位置,便可往上找出障礙物,至於搜尋框的寬度,則可根據偵測精度的要求 做調整,如圖3-3-15 寬度為 15 pixel 的實際偵測結果。

圖3-3-13、減少位元深度

圖3-3-14、找出地面範圍

圖3-3-10、前向鏡頭示意圖 圖3-3-11、深度圖示意圖 圖3-3-12、障礙物偵測示意圖

圖3-3-15、障礙物偵測最終結果

此偵測的方法目標是找出畫面橫軸中所有離車輛最近的障礙物,因此準確 率的計算方式為:統計正確找出離車輛最近的障礙物的框,去除以總框數。我 們收集了各種行車環境下的測試影片,並挑出每個影片的一部分影像作紀錄,

如圖3-3-16 是各個環境下的障礙物偵測結果,其搜尋框的寬度為 5 pixel。表一 中統計50 張具有障礙物畫面的偵測結果,我們發現準確率可達到 93.6%。

TP FP FN

23329 683 1588

Recall Precision

93.6% 97.2%

表一、準確率分析,其中 TP(True Positives)正確辨識為障礙物,FP(False Positives) 不是障礙物卻被認為是,FN(False Negatives)是障礙物卻沒有被辨識到。

至於6.4%的錯誤,主要來自高度較低的障礙物,如圖 3-3-16(b)左下角處的 安全島。因車輛在行駛時,不可避免地會使相機輕微的上下晃動,使相機與地 面角度是有小幅度變化的,而目前的單鏡頭測距模型是根據固定的角度做計 算,所以為了避免出現過多誤判,實際在演算法中有加入最小障礙物影像高度,

以此過濾大部分的誤判。因此像安全島在畫面中可能所佔影像面積過小,而沒 有被成功辨識成障礙物。

圖3-3-16(a)、高速公路

圖3-3-16(b)、市區大道

圖3-3-16(c)、小巷道

在文檔中 安全是唯一的路 (頁 8-24)

相關文件