第二章 車道偵測系統
2.1 道路模型
2.1.1 路面模型
本 文 主 要 將 路 面 視 為 三 度 空 間 中 之 一 平 面 ( xyz
domain) , 再 透 過 映 射 公 式 將 其 投 影 到 影 像 平 面 ( u v−
domain)。 圖 (2.1)、 (2.2)為 道 路 模 型 示 意 圖 。
ˆy
圖 2.1 路 面 模 型 圖
ˆy
圖 2.2 路 面 模 型 剖 面 圖 2.1.2 車道模型
θ
u z
y u
v z
x y
θ
以 上 的 特 徵 , 但 道 路 發 展 常 受 制 於 地 形 地 物 影 響 , 在 複 雜 地 形 中 車 道 並 非 簡 單 的 直 線 或 是 二 次 曲 線 所 能 表 示 。 如 連 續 彎 路 、 上 下 坡 彎 路 , 或 是 環 山 道 路 等 , 二 次 曲 線 已 無 法 精 確 模 擬 之 。 故 本 文 更 精 確 的 將 車 道 模 擬 為 斜 平 面 上 之 三 次 多 項 式,並 參 數 化 為 x b y= ⋅ + ⋅ + ⋅ +3 ˆ3 b y2 ˆ2 b y b1 ˆ 0、 yˆ = +(z y) (tan= θ + ⋅1) y,藉 由 道 路 偵 測 演 算 法 偵 測 標 線 位 置 來 決 定b0、b1、b2、b3參 數 以 獲 得 道 路 變 化 趨 勢 。 在 運 算 複 雜 度 方 面 , 應 用 最 佳 化 技 巧 , 巧 妙 的 將 矩 陣 運 算 中 運 算 量 與 階 數 n 的 關 係 , 從 原 本 的 指 數 成 長 降 為 線 性 成 長 , 使 得 在 硬 體 實 現 上 所 需 資 源 (硬 體 空 間 、 計 算 時 間 )大 幅 降 低 。
ˆy
圖 2.3 二 次 曲 線 模 擬 車 道 中 心 線 圖 x
2.2 車道偵測演算法
2.2.1 座標轉換關係式
本 文 將 路 面 模 擬 為 三 度 空 間 中 之 一 平 面 , 其 中 x定 義 為 平 行u v− 平 面 之 方 向 、 y定 義 為 垂 直u v− 平 面 之 方 向 、 z為 自 地 面 垂 直 向 上 之 高 度 座 標、且 路 面 傾 斜 角 為θ(如 圖 2.1、2.2 所 示 )。 故 x、 y、 z、u、 v具 有 以 下 轉 換 關 係 式 :
1.三 度 空 間 中 道 路 平 面 與 傾 斜 角 關 係 式
ˆ ( ) (tan 1)
y = +z y = θ + ⋅y ( 2.1 )
此關係式可將三度空間<x、y、z>與影像空間<u、v>關係式轉 變成道路空間<x、ˆy>與影像空間<u、v>關係(2D 對 2D 映射),其中 傾角θ為常數參數。
2.道 路 空 間 <x、 y>至影 像 空 間 <u、v>映射關 係 式
tan ( )
u u u
z H y H
u e e T y
y y
θ
− ⋅ −
= = = ( 2.2 )
v
v e x
= y =T x yv( , ) ( 2.3 ) 其中eu、ev為鏡頭參數,eu表示像距與一個像素高的比值,ev表 示像距與一個像素寬的比值,正常的光學鏡頭水平與垂直放大倍率為 相同(eu =ev)。H表示鏡頭中心(影像空間原點)到地平面(z=0)之高 度。
3.影 像 空 間 <u、v>至三 度 空 間 <x、 y、 z>映射關 係 式
3 3 2
( 2.10 )
3 3 2
3 3 2 2 2
( 2.26 )
2.3 車道偵測流程
車 道 偵 測 模 式 分 為 初 始 偵 測 模 式 與 連 續 偵 測 模 式 , 若 無 前 張 影 像 資 訊 時 使 用 初 始 偵 測 模 式 偵 測 影 像 , 反 之 則 使 用 連 續 偵 測 模 式 偵 測 。
2.3.1 初始偵測模式
初 始 偵 測 模 式 流 程 如 圖 2.4 所 示 , 首 先 執 行 初 始 資 訊 程 序 , 依 據 影 像 u 分 割 成 幾 個 區 塊 (zone), 如 圖 2.5 所 示 。 由 下 至 上 逐 區 塊 搜 尋 標 線 資 訊 (初 始 模 式 ), 每 區 塊 搜 索 結 束 後 累 計 偵 測 資 訊 , 直 至 累 計 超 過 15 列 標 線 資 訊 為 止 。 在 初 始 資 訊 程 序 中 使 用 初 始 參 數 (首 先 使 用 A 樣 板 )計 算 搜 尋 區 間 ROI,
程 序 成 功 結 束 後 即 更 新 道 路 模 型 參 數W、WM、tanθ 及 多 項 式 參 數b 、0 b 、1 b 、2 b3後 進 入 連 續 資 訊 程 序 。 若 初 始 程 序 失 敗 則 更 換 初 始 ROI 樣 板 重 新 搜 尋 (共 有 六 種 初 始 ROI 樣 板,A、M、P、Q、
R、 L 依 序 更 換 。 如 圖 2.6 所 示 )。
在 連 續 資 訊 程 序 中 依 據 初 始 資 訊 程 序 更 新 後 的 參 數 進 行 ROI 的 計 算 , 搜 索 方 式 使 用 連續模式, 在 結 束 每 個 區 間 搜 尋 後 馬 上 更 新 道 路 模 型 參 數 及 多 項 式 參 數 供 下 一 區 間 使 用 。 連 續 資 訊 程 序 主 要 分 為 兩 段 進 行 , 第 一 段 自 初 始 資 訊 程 序 結 束 列 開 始 向 前 搜 尋 (index 遞 減 搜 索 ),第 二 段 主 要 搜 索 初 始 資 訊 程 序 未 搜 索 的 區 間 為 主 (index 遞 增 搜 索 )。程 序 結 束 後 若 累 計 標 線 資 訊 已 達 標 準 (滿 足 45 列 單 邊 或 雙 邊 搜 尋 成 功 、 且 最 少 30 列 雙 邊 搜 尋 成 功 )則 判 斷 為 偵 測 成 功 。 若 判 斷 為 偵 測 失 敗 則 更 換 初 始 ROI 樣 板 重 新 偵 測 , 直 至 六 種 初 始 ROI 樣 板 全 部 偵 測 結 束 。
2.3.2 連續偵測模式
連 續 偵 測 模 式 將 前 張 影 像 偵 測 結 果 當 成 初 始 參 數 , 跳 過 初 始 資 訊 程 序 , 直 接 進 入 連 續 資 訊 程 序 。 判 斷 偵 測 成 功 、 失 敗 標 準 同 初 始 偵 測 模 式 。 若 偵 測 失 敗 則 重 新 執 行 初 始 偵 測 模 式 , 重 新 偵 測 一 次 。 連 續 偵 測 模 式 影 像 區 塊 分 割 同 圖 2.5 所 示 。 連 續 偵 測 模 式 流 程 如 圖 2.7 所 示 。
圖 2.5 道 路 偵 測 區 間 劃 分 圖
◆參數初始化程序:
依據初始參數設定道路模型參數:路 面 寬 度W 、 標 線 寬 度
WM、傾 角 參 數 tanθ,多 項 式 參 數:b 、0 b 、1 b 、2 b ,3 以及平均 亮度參數pre brightness_ 。在 初 始 偵 測 模 式 中 初 始 參 數 為 初 始 ROI 樣 板 , 在 連 續 偵 測 模 式 中 初 始 參 數 為 前 一 影 像 偵 測 結 束 更 新 後 之 參 數 結 果。另 外eu、H為 固 定 常 數,由 影 像 擷 取 環 境 決 定 之 。
(A) 泛 用 型 ROI (M) 直 線 型 ROI
(P) 偏 左 型 ROI (Q) 偏 右 型 ROI
(L) 左 彎 型 ROI (R) 右 彎 型 ROI
圖 2.6 六 種 初 始 ROI 樣 板
圖 2.4 初 始 偵 測 模 式 流 程 圖
圖 2.7 連 續 偵 測 模 式 流 程 圖
參數初始化1
初 始 資 訊 程 序
初 始 資 訊 搜尋成功
連 續 資 訊 程 序 更 換 初 始 ROI 樣 板
(A、 M、 P、 Q、 R、 L 依 序 更 換 )
yes no
雙邊點位 >30 and
雙邊加單邊點位 > 45
偵 測 成 功 yes no
偵 測 失 敗 ROI 樣 板 =L
yes no
參數初始化1
連 續 資 訊 程 序
yes no 連 續 資 訊
搜尋成功
偵 測 成 功 初 始 偵 測 模 式
圖 2.8 初 始 資 訊 程 序 流 程 圖
搜 尋 成 功 zone+1
row = zone_beginning
計 算 ROI2
搜 尋 ROI3
分 析 搜 尋 資 訊 4 (雙 邊 分 析 模 式 )
row = zone_end
zone = final_zone or dual_counter > 15 row +1
yes no
yes no
dual_counter > 15 yes no
搜 尋 失 敗
zone = 0
更 新 道 路 模 型 、 多 項 式 參 數 5
在連續偵測模式中
◆ROI 計算程序:
ROI 計算分為三種模式:初始模式、單一模式、連續模式。在初始 資訊程序下使用初始模式。在 連 續 資訊程序中 前列搜尋成功使用 連續模式,反之則為單一模式。
初始模式:使用初始 ROI 樣板相對應之參數。
單一模式:使用(2.28)、(2.30)計算。權值weight=2。
連續模式:使用(2.31)式計算。權值weight=4。
◆搜尋 ROI 程序:
在目前的興趣區間(ROI)內使用邊緣偵測方式(mask[1 –1])搜尋道 路標線,由於道路標線與週遭環境亮度具有高反差特徵、標線上亮 度相差不大、片 段 連 續、且標線線 寬 固 定。藉由以上特徵搜尋道 路標線。流程如圖 2.10 所示。搜尋結果存入暫存區,結束分析程 序後,結果為真再則丟入資料堆疊區供更新參數程序使用。
◆分析搜尋資訊程序:
此程序主要功能為判斷在 ROI 內所搜尋到的標線資訊是否為真。搜 尋 ROI 分成兩種模式:雙 邊 模式、單邊模式。在初始資訊程序使用 下雙 邊 模式。在 連 續 資訊程序中 使用單邊模式。流程分別如圖 2.11、2.12 所示。
◆更新道路模型、多項式參數程序:
使用(2.22)~(2.24)計算更新道 路 模 型 參 數W、 tanθ, 使用 (2.16)~(2.21)計算更新多 項 式 參 數b 、0 b 、1 b 、2 b ,3 而WM只 有 在 初 始 資 訊 程 序 完 成 時 更 新 , 使 用 方 式 為 直 接 將 搜 尋 到 線 寬 資 訊 取 平 均 值 運 算 後 更 新 , 參數變化如圖 2.13 所示。
1 20
Threxhold = grey_level (路面與標線灰階差距臨界值) 2 10
Threxhold = grey_level (標線表面灰度變化容許值) 4 40
Threxhold = grey_level (標線平均亮度變化容許值)
圖 2.10 搜尋 ROI 標線程序流程圖
Row_Image[MR]+Threxhold2 yes
MR~ML平均灰度 >
Row_Image[ML]+Threxhold2 yes
3 75
Threxhold = cm (路寬變化容許值) 4 40
Threxhold = grey_level (標線平均灰度變化容許值)
圖 2.11 雙邊分析模式流程圖
no
yes
yes
yes
yes
儲存搜尋資訊 (標線座標、線寬、亮度)
更新W、WM、tanθ
counter =1
yes
判斷為 True 判斷為 False
no no
no
no
雙邊分析模式
Counter+1、dual_counter+1
ROIR搜尋成功
ROIL 搜尋成功
路寬變化 < Threxhold3
左右標線亮度差<Threxhold4
yes
3 75
Threxhold = cm (路寬變化容許值) 4 40
Threxhold = grey_level (標線平均灰度變化容許值)
圖 2.12 單邊分析模式流程圖
(a) 初始資訊程序結果 (b) 連續資訊程序第一段結果
(c) 連續資訊程序第二段結果 (d) 初始偵測模式結果
(e) 搜尋 ROI 程序示意圖
圖 2.13 車道偵測流程示意圖
第三章 車道偵測處理器
sign 1-bit,雙 精 度 為 64 位 元 (exponent 11-bit、mantissa 52-bit、
sign 1-bit), 但 道 路 偵 測 演 算 法 並 不 需 如 此 高 之 精 度 , 以 24
3.1.2 三次多項式
本 文 中 主 要 將 車 道 模 擬 為 斜 平 面 上 之 三 次 多 項 式
3 2
3 ˆ 2 ˆ 1 ˆ 0
x b y= ⋅ + ⋅ + ⋅ +b y b y b 、 yˆ (≡ +z y) (tan= θ + ⋅1) y,其 中b0、b1、b2、b3、
tanθ 為回傳 PC 端之偵測資訊。全部皆以 24 位 元 浮 點 數 格 式 儲 存 之 。 若 以 量 化 後 數 值 代 入 三 次 多 項 式 計 算 , 於 前 方 100 公 尺 處 ( y=104cm), 在 b3 =10−8情 形 下 (實 際 彎 曲 車 道 b3遠 小 於10−8),
量 化 誤 差 為 2−15×10−8×(10 )4 3 ≈3(cm)。
(2.8)式 中u、v為 整 數 型 態 影 像 座 標 , 以 16-bit 二 補 數 整 數 格 式 儲 存 之 。eu、 H為 固 定 參 數 , 以 24 位 元 浮 點 數 格 式 儲 存eu, 以 16-bit 二 補 數 整 數 格 式 儲 存 H。 若 以 量 化 後 數 值
b0、b1、b2、b3、eu、 H、 tanθ、u代 入 (2.8)式 中 計 算 結 果v之 誤 差 量 小 於 0.5 pix。 因 此 量 化 誤 差 並 不 影 響 運 算 結 果 , 滿 足 演 算 法 要 求 。
3.1.3 寬度比例關係式
(2.9)式 中 ∆v(單 位 pix)、 ∆x(單 位 cm)皆 為 整 數 型 態 資 料,以 16-bit 二 補 數 整 數 格 式 儲 存 之。以 量 化 後 數 值 eu、H、
tanθ、u、∆x、∆v代 入 (2.9b)、 (2.9c)中 計 算 結 果 ∆v、 ∆x之 誤 差 量 皆 小 於 0.5 (cm)。 因 此 量 化 誤 差 並 不 影 響 運 算 結 果 , 滿 足 演 算 法 要 求 。
3.1.4 多項式參數
(2.17)式 中vR、vL為 標 線 搜 尋 程 序 中 所 搜 尋 到 的 左 右 標 線 中 心 影 像 座 標 , 為 整 數 型 態 (16-bit 二 補 數 整 數 格 式 )。 而 最 小 平 方 近 似 法 輸 出 結 果 P0、 P1、 P2、 P3、∆, 若 以 24 位 元 浮 點
數 格 式 儲 存,將Coef0 =P0/∆、Coef1 =P1/∆、Coef2 = P2/∆、Coef3 =P3/∆
代 入 (2.18)、(2.19)、(2.20)中 計 算b3、b2、b1、b0參數時所產生 的誤差量約為實際b3之1.53 10× −4倍。於 前 方 100 公 尺 處 ( y=104cm),
在 b3 =10−8 情 形 下 ( 實 際 彎 曲 車 道 b3遠 小 於10−8) , 量 化 誤 差 為
15 4 8 4 3
2− × +(1 1.53 10 ) 10× − × − ×(10 ) ≈3.05(cm)。 道 路 偵 測 演 算 法 運 算 只 多 出 約0.05(cm)的 累 進 誤 差 。
3.1.5 道路模型
(2.22)式 中 (vR,uM)、(vL,uM)為 標 線 搜 尋 程 序 中 所 搜 尋 到 的 左 右 標 線 中 心 影 像 座 標,為 整 數 型 態 (16-bit 二 補 數 整 數 格 式 )。而 2 階 最 小 平 方 近 似 法 輸 出 結 果 Cwm1、Cwm2以 24 位 元 浮 點 數 格 式 儲 存,由 (2.23)、(2.24)式 計 算 儲 存W、tanθ參數。W以 整 數 型 態 儲 存 (16-bit 二 補 數 整 數 格 式 )、 tanθ以 24 位 元 浮 點 數 格 式 儲 存。運 算 結 果 累 進 誤 差 皆 遠 小 於 1,因 此 量 化 誤 差 並 不 影 響 運 算 結 果 。
3.1.6 興趣區間(ROI)
(2.27)~(2.31)中 輸 出 結 果 ROI為 標 線 影 像 座 標 範 圍 預 估 值 , 整 數 型 態 儲 存 (16-bit 二 補 數 整 數 格 式 )。 以 量 化 後 數 值 代 入 (2.27)~(2.31) 式 中 計 算 , 運 算 結 果 之 誤 差 量 皆 遠 小 於 1, 因 此 量 化 誤 差 並 不 影 響 運 算 結 果 。
3.2 運算單元與運算暫存器
本 文 中 使 用 16 位 元 二 補 數 加 (減 )法 器 、 shift-adder 乘 法 器 (常 數 乘 法 )、 16x16 乘 法 器 (變 數 乘 法 )、 16÷16 除 法 器 , 為 運 算 基 本 元 件 , 以 及 衍 生 出 的 24 位 元 浮 點 數 加 (減 )法 器 、 24 位 元 浮 點 數 乘 法 器 、 24 位 元 浮 點 數 除 法 器 , 來 實 現 道 路 偵 測 演 算 法 中 四 則 運 算 部 分 。
(一 ) 24 位 元 浮 點 數 乘 法 器
浮 點 數 格 式 本 身 非 常 容 易 設 計 乘 (除 )法 器 , 但 是 加 (減 ) 法 器 設 計 上 就 比 較 麻 煩 (跟 二 補 數 格 式 剛 好 相 反 )。 24 位 元 浮 點 數 乘 法 器 結 構 如 圖 3.2 所 示,其 中 A 為 被 乘 數、B 為 乘 數 。 首 先 Mantissa 部分先由〝 16x16 無 號 乘 法 器 運 算 〞 (運算前必須 先在 Mantissa 最高位元前面補上〝 1〞 還原 16-bit 原始資訊 ),所 得乘 積 部 份 再 經 由 〝 Leading Zeros Detector〞 計 算 乘 積 部 份 有 多 少 高 位 元 為〝 0〞,之 後 丟 入〝 Left Shifter〞作 左 移 運 算 (浮 點 數 格 式 : 16-bit Mantissa 最高位元必須為〝 1〞 )。
指 數 (Exponent)部 分 直 接 執 行 EA+EB- 127 運 算 後,再 減 去 〝 Leading Zeros Detector 〞 計 數 的 位 移 值 後 輸 出 即 為 Exponent , 而 〝 Exponent Corrector 〞 即 是 執 行 此 運 算 之 元 件 。 另 外 Sign bit 部 分 直 接 作 XOR 運 算 輸 出 即 可 。
圖 3.2 24 位 元 浮 點 數 乘 法 器
16x16 無 號 乘 法 器 1.MA 1.MB
Left Shifter Leading Zeros
Detector EA + EB - 127
運算器 EA EB
Exponent Corrector
Mantissa Exponent
SA SB
Sign bit
31÷16 無 號 除 法 器 1.MA 1.MB
Left Shifter Leading Zeros
Detector EA EB
Exponent Corrector
Mantissa Exponent
SA SB
Sign bit
EA - EB + 127 運算器
(二 ) 24 位 元 浮 點 數 除 法 器
24 位 元 浮 點 數 除 法 器 除 了 將〝EA+EB- 127 運 算 器 〞換 成
〝EA-EB+ 127 運 算 器 〞,〝 16x16 無 號 乘 法 器 〞 換 成 〝 31÷16 無 號 除 法 器 (餘 數 直 接 丟 棄 )〞 外 , 其 餘 結 構 同 24 位 元 浮 點 數 乘 法 器 , 如 圖 3.3 所 示 。
(三 ) 24 位 元 浮 點 數 加 (減 )法 器
24 位 元 浮 點 數 加 (減 )法 器 結 構 如 圖 3.4 所 示 。 A 為 被 加 (減 )數、B 為 加 (減 )數,〝 Shift Amount Generator〞執 行 8-bit 二 補 數 減 法,若 A≦ B 則 將 -(EA-EB)結 果 傳 至〝 Right Shifter A〞,MA執行 Shift 運 算 。 若 A>B 則 將 EA-EB結 果 傳 至 〝 Right Shifter B〞,MB執行 Shift 運 算 。〝 Magnitude Generator〞
為 一 比 較 器 , 產 生 的 邏 輯 訊 號 驅 動 多 工 器 執 行 A±B 或 是 B±A 的 運 算 選 擇 , 亦 作 為 〝 Sign Generator〞 產 生 〝 +/-select〞
為 一 比 較 器 , 產 生 的 邏 輯 訊 號 驅 動 多 工 器 執 行 A±B 或 是 B±A 的 運 算 選 擇 , 亦 作 為 〝 Sign Generator〞 產 生 〝 +/-select〞