|
汽車視野系統識別道路標誌:第1部分——基本功能" b- }# X6 P1 J9 L% x( f' L
" ~# x; M: y& X" |7 ~) {) b
這種圖像處理仍是高端選項,需要政府和汽車行業領袖們聯合推動,逐漸形成大規模市場機會。該技術是圖像識別的應用實例之一,可用於汽車和工業設計的許多領域。
) l( E$ ?0 X$ Q! m) R! K交通標誌識別基於模式識別演算法,機器視野專家們對這種演算法有深刻理解。毫無疑問,經典模式識別演算法甚至能讓高級的通用微處理器相形見拙。對於這種類型的信號處理應用,選擇具有這種體系結構的處理器是有利的:可有效處理搜索交通標誌圖像的連續視頻流帶來的特殊計算和I/O挑戰。同樣以最大速度和最高效率對這些演算法進行編碼也是基本要求。 2 w, A0 T6 m3 Y6 `9 S0 \
本文詳細描述在Blackfin?處理器上實現的一種基於攝像頭的交通標誌識別系統。該處理器是Analog Devices公司生產的一種低功率低成本的嵌入式DSP。我們將介紹一種高效軟體的設計,並展示如何利用篩選模組演算法來實現標誌識別應用。文中比較了這些結果,隨後描述了為獲得最理想的計算性能該採取的步驟。 $ s0 q. [7 r& `# G1 ~! V7 @; O
一種基於攝像頭的駕駛員輔助系統 # P( @: r3 Q/ n5 Q8 A$ n u
基於攝像頭的模式識別系統一般由一個視頻攝像頭和一個監控器組成,二者連接到同一個處理器的I/O介面上,該處理器控制系統的運行並進行必要的信號處理。通常需要外部SDRAM提供視頻處理要求的足夠存儲空間,用於從輸入的視頻流中提取道路標誌資訊。下圖示出了這種系統的模組圖。雖然最終應用不一定配置顯示器,但它是應用程式開發和顯示的一種有用工具。
5 P& b# m# t# T# l
) w7 W# y D8 d) I圖像感測器 5 O! t0 |9 ^( r' t# h6 U5 @
8 L% b6 M# c& O: T: g領先的汽車產商們將合格的CMOS圖像感測器用作駕駛員輔助系統的視頻源。目前,大多數攝像頭抓取VGA大小(640 x 480象素)的灰度圖片,灰階深度達10比特。幀頻一般是30幀每秒,CMOS感測器的高度靈敏性使之既可在陰暗光線下和夜間使用,也可在炫目的陽光下和近距離光線下使用。 / Q, C8 @* v5 Q L
未來的系統需要具有較大畫面面積和彩色功能的感測器。本設計實例中的攝像頭以亮度/色度YUV差分圖像格式傳輸彩色圖像。大多數感測器由一個外部時鐘產生器驅動,通過一個寬度高達10比特的同步並行資料匯流排提供圖像資料。兩個附加信號使線長和圖像高度能夠一致。 ! N# W- C* n* ?' M% I& z5 @8 T
TFT顯示器 1 ~/ {0 d$ P/ ?; V
LCD TFT顯示器在汽車儀錶板領域應用普遍,它要求RGB格式的圖像資料。每個顯示單元要求輸入3種顯示顏色(紅、綠和藍)的值。在視頻系統中圖像捕獲和顯示器之間格式不匹配很常見,著名的色彩空間轉換演算法可使RGB和YUV格式互相轉化。下圖顯示了TFT顯示器與處理器的連接。 ( o7 p) ]. Y/ Z
+ T) Y- |& C" v) l# p7 H, N. e9 c& `
* N0 `7 w: m( F& q
1 ?7 y' H" _( W9 k5 O多核嵌入式處理器使信號處理速度加快
& O2 H! o7 ]( X5 q' N駕駛員輔助系統實例中應用的中央處理器為Blackfin BF561。Blackfin體系結構專為信號和圖像處理而開發,它擁有算數和邏輯單元(ALU),允許同時執行多份資料指令流。如前所述,由於具有高效的信號處理指令組和硬體特徵,利用專為信號處理應用設計的處理器可確保篩選模組和模式匹配演算法有效靈活運行。BF561是一種雙核處理器,具有兩個對稱的處理器內核,因此實際具有兩倍的原始計算能力。
7 ^6 R4 |8 s* r% D我們已提過用於圖像捕獲和顯示視頻介面的並行I/O埠。此外,Blackfin處理器還提供大量其他介面,如I2C和NAND快閃記憶體介面,用於普通的系統級介面及在特殊應用環境中工作的介面,如汽車系統中通常需要CAN匯流排和MOST匯流排。 ) {2 ~" u. ?6 |8 E
軟體架構 4 v% I6 |; X2 l& k2 H' u
我們下面利用軟體架構這個名詞來指代控制系統的軟體。它是指包含系統狀態機的控制代碼。這種控制代碼設定所有的介面;以預先確定的順序調用必不可少的篩選模組;開始直接記憶體存取(DMA)資料轉化;以及使暫停或重複處理的事件同步。 ! ]; d) I! C% c; x; Z
處理器內核
8 v- }8 p7 W# G: U3 Q, s: S處理器內核執行控制軟體,實施數學計算。每個Blackfin處理器內核擁有兩個ALU,最多允許同時進行四個運算。讀寫操作從記憶體中檢索計算所需資料,並存儲結果。下面顯示的是一個具有最大寬度的指令。該指令在每個處理器內核上同時進行兩個獨立的乘法運算,隨後進行加法和兩次取操作。
& u$ p& d- D: h3 [
3 q+ }5 o/ ^" q6 ? F若位址衝突,不能安排這個最大寬度的指令,可以執行該並行指令的一部分。下面是幾個例子:
0 i. z+ T5 Y( p) D/ V3 Y
6 Z$ R2 F! A5 P- l可以並行執行的操作類型有無數種,部分取決於硬體執行情況。 / ]; I( p" |; E. ]7 o- o* V
. a) i' v* K7 x2 h" X
利用DMA和交通標誌識別
4 j. B) C4 O9 N% J( Z% k4 B; Y t4 v" d5 D; f! }3 `
DMA通道利用最小的CPU週期,從內部或外部記憶體傳輸資料。可以利用DMA傳輸重新組織資料。在圖像處理應用軟體(代表感測器拍攝的二維平面像)中常可以發現二維資料場,許多經典的篩選操作包含對這些資料場進行矩陣乘積(2D轉換)。 " U) o9 ]/ f( I- D$ c0 N
由於這種DMA通道獨立於處理器內核運行,那麼處理當前資料的同時可以取下一個資料組。此外,由於DMA控制器保證DMA通道同步,則即使它們在訪問同一個記憶體,幾個DMA通道也可以同時工作。
( {% f* v) h) t. I" d5 H* Q* V如下圖所示,DMA轉移初始,系統向DMA控制器的兩個寄存器寫入資料。然後DMA控制器利用一個詳細說明將處理事件的存儲敘詞表。敘詞表含有目標或/和資料源位址以及要轉移的要素的數目,以及在只需要資料的子集時,可能的位址跳轉。數百兆比特資料的轉移可從向DMA控制器中的兩個寄存器寫入開始。 - i" t$ v8 c* _( C
存儲系統
: s6 q3 Q* J. R3 L$ h! RBlackfin處理器將記憶體分為三級。一級記憶體(L1)允許以處理器內核的時鐘頻率訪問。根據處理器的不同,這種時鐘頻率可以高達600 MHz。這種處理器可以執行在一個時鐘週期內從L1記憶體中讀取資料的指令。二級記憶體(L2)允許以處理器內核的時鐘頻率的一半的速度訪問。因此,讀取資料需要兩個處理器時鐘頻率。三級記憶體(L3)代表外部記憶體。連接的SDRAM記憶體可以以高達133 MHz的頻率工作。讀取這種記憶體需要幾個處理器週期。為確保高效處理,對時間要求嚴格的資料和指令應存儲在最快的空閒記憶體中。
6 m7 d9 ^3 n) a/ _5 i0 b交通標誌識別處理模組
X# ^8 ?, k1 x X將交通標誌識別的問題作為程式方塊序列來考慮很有幫助,如下所述: 3 Z! I: m- L9 Y! g( V! P1 H
1、視頻介面(PPI)接收視頻圖像並將它們通過DMA通道存入記憶體。
' g. M& i" ]7 g0 ]2、Sobel邊緣檢測器篩選圖像,僅邊緣仍然可見。只有高頻圖像部分通過。從剩下的圖像中,計算邊緣厚度和邊緣方向。 % i2 @; G: S9 n* E4 M$ ?1 x
3、利用Sobel篩選模組中的向量場,Hough變換產生一個具有可能圓圈集合的向量場。 " l7 `; W( X; c- @/ h
4、簇狀構造收集臨近點,確定所有可能圓圈的高度並存儲它們的位置資訊。
0 x! d6 Q3 Q3 W' U5 A0 ?5、基於簇狀結構步驟的位置資訊,圓圈探測器利用從Sobel篩選模組處理步驟獲得的邊緣資料,提取圓圈。這時已識別通用型的圓形交通標誌,但還未識別圓圈內部的數字(限速)。 : z: y" O6 _; V: U, C% J
6、在數位識別模組,讀取圓形交通標誌,縮小並與標誌上使用的數位圖像資料庫中的圖案或樣本比較。具有最高相似性的數字將位於列表的最高位置。 - ?! [; @9 p. ]" q! _
7、選擇具有最大可能性的交通標誌圖像,拷貝到要傳輸的視頻圖像上。利用該標誌圖像創建一個視頻覆蓋層。顯示器縱向顯示資料。
- {, c* b' z4 h8 v# u% @5 {7 O. y必須執行三個附加步驟:從YUV格式到RGB格式的彩色空間轉換;從VGA縮小到顯示格式(本例中為VGA/4);以及旋轉。通過第二個平行介面將圖像傳送到TFT顯示器。下麵的圖像表格中示出了這些步驟。
/ G0 q* V! k& E( o |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|