什么樣的積極創新可以幫助您設計出這樣一個系統——它能夠提醒用戶有兒童在游泳池中溺水,或是有入侵者試圖闖入住宅或者辦公場所?這種技術還能夠提醒駕駛員道路上即將發生的危險,甚至可以制止他們并線、加速及其它可能會給自身或他人帶來危險的操作。它能夠給軍用無人機或其他機器人配上電子“眼”,使這些設備部分實現甚至完全實現自動化操作。它能夠協助內科醫生診斷患者的病情。它能夠準確地進行面部識別,隨后啟動一系列操作(例如自動登錄用戶賬號,或者獲取相關新聞及其它信息),解讀姿態, 甚至覺察人的情緒狀態。與GPS、指南針、加速計、陀螺儀和其他功能配合,它還能夠提供數據強化(data augmented) 的場景再現。
上面談到的應用實例都采用了一項共同的技術,即嵌入式視覺。該技術正準備書寫新一代電子系統的成功篇章。嵌入式視覺最初應用于組裝生產線檢測、光學字符識別、機器人、監視和軍用系統等傳統的計算機視覺應用。不過近年來,隨著關鍵技術構建塊成本的不斷下降以及功能的不斷豐富,嵌入式視覺技術不斷向主要的大批量市場加速滲透。
例如,在日益豐富和不斷提高的應用需求的推動下,圖像傳感器的分辨率、低亮度性能、幀速率、尺寸、功耗和成本等關鍵特性都有著明顯的改善。同樣,嵌入式視覺應用也要求處理器具備高性能、低成本、低功耗以及靈活的可編程功能。這些理想的特性在不計其數的產品設計中正日漸變為現實。最新一代光學系統、照明模塊、易失性和非易失性存儲器以及I/O 標準也正在實現類似的特性優化。因此,算法到了迎接挑戰的關口,需要充分利用這些硬件性能的改進來提供更穩健可靠的分析結果。
嵌入式視覺指的是能夠通過視覺方式理解其所處環境的機器。“嵌入式”的意思指內置圖像傳感器的非通用型計算機系統。比如,嵌入式可以是手機、平板電腦、監視系統、地面或者具備飛行能力的機器人、安裝有一套 360°攝像頭的車輛或者是醫療診斷設備。它也可以是有線或者無線用戶界面外設。這方面微軟針對 Xbo x360 游戲機提供的 Kinect 可能是最好的例證,上市頭 2 個月就銷售出 800萬件。
FPGA 的商機:案例研究
可供選用的穩健可靠的嵌入式視覺處理產品豐富多樣,如微處理器與嵌入式控制器、專用 SoC、DSP、圖形處理器、ASIC 和 FPGA。FPGA 是一款用于實現嵌入式視覺技術的極富吸引力的芯片平臺,因為它將 ASIC的高性能和低功耗硬件以及可運行在CPU、GPU 或 DSP 上的軟件算法的靈活性和快速上市優勢集于一身。在嵌入式視覺市場處于襁褓時期的當前階段,靈活性具有特別重要的意義。因為為了支持多樣化的算法選擇,迅速完成缺陷修正和特性集改進是一種常態,而非偶然。FPGA 的硬件可配置能力也便于讓設計經簡單直觀修改就能適用于支持各種串行和并行(以及模擬和數字)接口的圖像傳感器。
嵌入式視覺聯盟是由世界各地的開發商和提供商組成的統一的全球性聯盟,其宗旨是以豐富、迅速和高效的方式將嵌入式視覺的潛力變為現實(見側邊欄)。該聯盟的兩個創始成員 (BDTI) 伯克利設計技術公司和賽靈思已聯合開發出一個參考設計,用于證實嵌入式視覺技術不可估量的市場前景以及 FPGA 在實現該前景中可能發揮的作用。這個項目的目的是探索系統設計人員在開發高度復雜的智能視覺平臺時可進行的典型架構決策,該平臺所包含的元件需要高強度硬件處理和復雜的軟件及算法控制。
BDTI 和賽靈思對設計進行了分區,其中 FPGA 架構負責處理數字信號處理密集型運算,而 CPU 則負責處理復雜的控制和預測算法。在這個探索性實現方案中,CPU 電路板通過以太網接口連接到 FPGA 開發板。FPGA 執行高帶寬處理,僅有元數據通過網絡 (network tether) 進行交換。該項目還探索了軟硬件同步開發,故要求在最終的 FPGA 硬件實現之前使用精準的仿真模型。
第一階段:道路標志檢測
項目的第一階段和第二階段均采用了兩個基于 PC 的專門功能:正在開發中的賽靈思視頻 IP 模塊的仿真模型和一個由 BDTI 開發的處理應用(見圖 1)。輸入數據為 720p 高清分辨率、60 fps 的 YUV 編碼視頻流,代表車輛正前方攝像頭可能采集到的圖像。其目的是識別(雖然沒有采用光學字符職別技術“讀取”,但這項功能可以自然延伸出來)視頻幀中的四種類型的對象,以輔助駕駛員駕駛:
? 綠色方向標志
? 黃色和桔紅色危險標志
? 藍色信息標志
? 桔紅色安全錐
賽靈思提供的 IP 模塊仿真模型負責輸出用于識別每幀中各顏色像素組的位置和大小的元數據,這些也是最終硬件 IP 模塊生成的元數據。許多嵌入式視覺系統的精度受多種外部因素的影響,比如成像傳感器的噪聲、突然的照度變化以及難以預測的外部運動。對本項目的必要要求之一是要求FPGA 硬件在盡量節約硬件資源的情況下,借助能夠容忍大量外部干擾且不降低檢測精確度的預測性軟件,在有大量外部干擾的條件下完成圖像處理并生成元數據。
BDTI 針對這種特定應用,對這些IP 模塊豐富的配置參數集進行了優化,而且 BDTI 的后處理算法還提供了進一步的優化和預測功能。例如,在某些情況下,該硬件只能部分識別一幀中的對象,但應用層軟件使用跟蹤算法能夠繼續預測對象的位置。這種方法非常有效,因為在許多情況下物理探測無法做到持續不斷,因此軟件智能層對提供持續的預測起著關鍵作用。
再舉一個例子。高速公路綠色指路標志上的黑色或白色字符可能會擾亂 IP 模塊普通的圖像分析功能,會將路標錯誤地分解成多像素的子集合(見圖 2)。根據該應用中使用的成像傳感器的質量和設置,IP 模塊還會混淆紅色和桔紅色,從而將其他車輛的尾燈或剎車燈誤認為交通錐或交通標識。
因此,BDTI 開發的針對特定應用定制的算法可用于進一步處理賽靈思提供的元數據。例如,BDTI 的算法知道什么樣的標志看上去應該是怎么樣的(大小、形狀、顏色、圖案、在幀中的位置等),故而能夠將相關的像素集群組合成更大的群組。類似的,這些算法也能判斷什么時候應該去除看似顏色相近但并非標志的像素集群,比如前面提及的車輛剎車燈。
第二階段:行人檢測與跟蹤
在項目的第一階段中,攝像頭處于運動狀態而待識別的對象(即道路標志)處于靜止狀態。第二階段主要針對安全應用,攝像頭處于靜止狀態而對象(本例中為行人)則未必。對這種情況,視頻分析算法就不能依靠預設的顏色、圖案或其它對象特征,因為行人可以穿著各種衣物,可以高矮胖瘦各異,可以膚色、頭發顏色和發型不同(另外還可能戴著遮擋頭發的帽子、墨鏡等裝飾物)。軟件還需要解決另一個難題,不僅需要識別和跟蹤行人,還需要在行人穿越一道數字“絆網”,進入視頻幀的特定區域時發出警報(見圖 3)。
項目第二階段與第一階段采用的硬件配置完全相同,只是軟件有所變化。視頻流饋送到視頻分析 IP 核的仿真模型中,所生成的元數據傳輸到二級算法器件供進一步處理。此時面臨的難題包括:
? 解決不必要的噪聲和適當的對象分割之間根本性的權衡取舍問題
? 對象不斷變化的形態(外形和結構)
? 對象不斷變化的運動狀態,包括行人間的運動狀態變化以及特定行人隨時間的運動狀態變化
? 元數據消失。比如當行人停止行走,被中間的障礙物遮擋或者是與背景圖案混為一體
? 有其他對象出現在場景中,包括靜態和動態的
? 行人與攝像頭之間的距離不斷發生變化
? 人群中個別行人與群體的運動矢量對比,主體運動矢量和反向運動矢量的對比
就“絆網”的實現,四種不同的視頻流對視頻分析算法的調試和優化尤其有效:
? 以相反方向行走的“近處”行人
? 以不同方向行走的“近處”行人
? 一個“遠處”行人和一輛行駛的卡車,從某種角度看,兩者大小相仿
?“遠處”的多名行人與一輛駛近的卡車,卡車看上去比人群大
第三階段:硬件轉換及未來發展
項目的最后階段采用賽靈思真正的視頻分析 IP 模塊(代替之前使用的仿真模塊),運行在 Spartan ?-3A 3400 視頻入門套件上。MicroBlaze?軟核處理器嵌入在 Spartan-3A FPGA內,采用額外的專用功能模塊予以強化,并實現了網絡協議棧。該網絡協議棧主要負責處理高數位率和以太網分組的元數據并將其傳輸到 BDTI 開發的第二級處理算法,同時實現道路標志檢測和行人檢測與跟蹤功能。雖然這些算法之前在基于 X86 的 PC 上運行,BDTI 已成功地將它們移植到基于ARM? Cor tex TM-A8 的硬件平臺(BeagleBoard) 上(見圖 4)。
對已經熟悉賽靈思產品計劃的用戶來說,可能立即就會想到將 FPGA 和Cortex-A8 CPU 集成在單個芯片上的ZynqTM 可擴展處理平臺。能不能在單個 Zynq 器件上運行整個視頻分析參考設計呢? 答復顯然是肯定的, 因為Zynq 產品系列的各器件包含有足夠的可編程邏輯資源,同時 BDTI 算法對ARM CPU 核來說負載適中。
嵌入式視覺正在為系統開發商及其半導體和軟件供應商書寫新一篇重大的技術成功篇章。正如本文中介紹的案例研究所示,FPGA 以及 FPGA 與 CPU組合的 SoC 能夠成為實現嵌入式視覺算法極富吸引力的芯片平臺。
評論
查看更多