加速傳感器融合嵌入式視覺應用
傳感器在我們的世界經(jīng)歷了快速的推廣,事實上,傳感器現(xiàn)在已經(jīng)非常普遍,以至于我們每個人日常所使用的手機里都有好幾種不同類型的傳感器。這些傳感器能檢測壓力、溫度、加速度和重力的簡單變化,還有更高級的傳感器,例如 GPS、RADAR、LIDAR 和圖像傳感器。
本文引用地址:http://www.ex-cimer.com/article/201807/384225.htm傳感器融合是指從幾種不同的傳感器中提取數(shù)據(jù),以生成靠單個傳感器無法提供的信息。隨后,可以對該信息做進一步處理和分析。并根據(jù)最終應用,必要時還可用傳感器來制定決策。傳感器融合分為兩大類:
實時傳感器融合 – 提取并融合傳感器數(shù)據(jù),并根據(jù)得到的信息實時制定決策。
離線傳感器融合 – 這種方案是提取并融合傳感器數(shù)據(jù),但在過后的某個時間制定決策。
就嵌入式視覺系統(tǒng)和傳感器融合應用而言,大部分應用適合實時傳感器融合。
嵌入式視覺應用
嵌入式視覺應用正在經(jīng)歷迅猛增長,涉及領域廣泛,從機器人、高級駕駛員輔助系統(tǒng) (ADAS) 到增強現(xiàn)實,不一而足。這些嵌入式視覺應用對最終應用的成功運行有很大幫助。將嵌入式視覺系統(tǒng)提供的信息與來自不同傳感器或多個傳感器的信息進行融合,有助于更好理解環(huán)境,從而提升所選應用的性能。
很多嵌入式視覺應用只使用一個圖像傳感器來監(jiān)控一個方向,例如只監(jiān)測汽車的前方。利用這樣的圖像傳感器能夠檢測、分類和跟蹤物體。然而,由于只使用一個傳感器,因此就無法測量與圖像中對象的距離。也就是說,我們可以檢測和跟蹤到另一個車輛或行人,但如果不借助另一個傳感器,我們就無法確定是否存在碰撞風險。本例中,我們還需要另一個能提供與檢測到的對象的距離的傳感器,如 RADAR 或 LIDAR。由于這種方法能夠?qū)碜远鄠€不同類型傳感器的信息融合,因此稱為異構(gòu)傳感器融合。
圖 1- ADAS異構(gòu)傳感器融合實例
另一種方案是提供第二個圖像傳感器,以實現(xiàn)立體視覺。這種方案是讓兩個圖像傳感器朝著相同方向,但分開一小段距離,就像人的兩個眼睛那樣,通過視差確定對象在視場中的深度。像這樣使用多個相同類型的圖像傳感器,稱為同構(gòu)傳感器融合。
當然,本例中的應用針對所用的架構(gòu)和所選的傳感器類型確定駕駛要求。這包括深度感的范圍、測量精度、環(huán)境光和天氣條件、實現(xiàn)成本以及實現(xiàn)復雜程度。
嵌入式視覺不僅可用于對象檢測和汽車防撞,還可以作為導航系統(tǒng)的一部分,用來識別交通標志信息。未來還可融合更多種不同圖像,例如醫(yī)用 X 光、MRI(核磁共振成像)和 CT,或者安防和觀察應用的可見圖像和紅外圖像。
我們通常認為嵌入式視覺應用只使用可見電磁光譜,其實很多嵌入式視覺應用能融合來自可見電磁光譜以外的數(shù)據(jù)。
器件選擇
在嵌入式視覺系統(tǒng)中,通常使用 All Programmable Zynq-7000 或 Zynq UltraScale+ MPSoC 器件來實現(xiàn)圖像處理流水線。如果這些器件能用于傳統(tǒng)的嵌入式視覺應用,那么也適用于嵌入式視覺融合應用。處理器系統(tǒng)與可編程邏輯的緊密結(jié)合能消除傳統(tǒng) CPU/GPU 實現(xiàn)方案中出現(xiàn)的瓶頸、確定性降低和時延增加問題??删幊踢壿?IO 結(jié)構(gòu)的靈活性支持實現(xiàn)到高帶寬接口(如圖像傳感器、RADAR 和 LIDAR 等)的任意連接。
圖 2 - 傳統(tǒng) CPU/GPU 方案與 All Programmable Zynq-7000 / Zynq UltraScale+ MPSoC 的對比
對于嵌入式視覺傳感器融合應用,我們可進一步利用處理器系統(tǒng)提供連接眾多低帶寬傳感器的接口。例如,加速計、磁力儀、陀螺儀和 GPS 傳感器都配有串行外設接口 (SPI) 和內(nèi)部集成電路 (i2c) 接口,都得到 All Programmable Zynq-7000 和 Zynq UltraScale+ MPSoC 器件的支持。這使軟件能夠快速、簡便地從多種不同類型的傳感器中獲取所需信息,并提供給可擴展架構(gòu)。需要一種方法能夠利用行業(yè)標準框架(如 OpenXV、OpenCV 和 Caffe)開發(fā)傳感器融合應用,這時可使用 reVISION 堆棧。
reVISION 堆棧
reVISION 堆棧使開發(fā)人員能夠?qū)崿F(xiàn)計算機視覺和機器學習技術。在這里,針對 Zynq-7000 和 Zynq UltraScale+ MPSoC 的高級框架和庫同樣適用。為此,reVISION 將支持平臺、應用和算法開發(fā)的多種資源完美結(jié)合在一起。該堆棧分為三個不同等級:
1. 平臺開發(fā) – 這是堆棧的最底層,也是其余堆棧層的構(gòu)建基礎。該層為 SDSoC 工具提供平臺定義。
2. 算法開發(fā) – 堆棧的中間層,為實現(xiàn)所需算法提供支持。該層還可為在可編程邏輯實現(xiàn)圖像處理和機器學習推斷引擎加速提供支持。
3. 應用開發(fā) – 堆棧的最高層,為行業(yè)標準框架提供支持。這樣能夠開發(fā)出可利用平臺開發(fā)層和算法開發(fā)層的應用。
堆棧的算法層和應用層旨在支持傳統(tǒng)圖像處理流程和機器學習流程。在算法層,支持使用 OpenCV 庫開發(fā)圖像處理算法。這包括:能將多種 OpenCV 功能(包括 OpenVX 內(nèi)核子集)在可編程邏輯中實現(xiàn)加速。為支持機器學習,算法開發(fā)層提供幾種可以放在 PL 中用以實現(xiàn)機器學習推斷引擎的預定義硬件功能。然后,應用開發(fā)層訪問并使用這些圖像處理算法和機器學習推理引擎,以創(chuàng)建最終應用并為高級框架(例如 OpenVX 和 Caffe)提供支持。
圖 3- reVISION 堆棧
reVISION 堆棧的功能提供所有必要元素,用以實現(xiàn)傳感器融合應用所需的算法。
架構(gòu)實例
開發(fā)之前介紹的對象檢測和距離算法時,利用 reVISION 堆棧來演示同構(gòu)和異構(gòu)方案。這使傳感器融合算法能夠在高層面實現(xiàn)。然后,可找出算法的性能瓶頸,并在可編程邏輯中實現(xiàn)加速。
要想利用 reVISION 堆棧,我們首先要創(chuàng)建一個可提供接口和基礎可編程邏輯設計的平臺定義,以便將圖像和其他傳感器數(shù)據(jù)發(fā)送到處理器系統(tǒng)的存儲空間。
要實現(xiàn)同構(gòu)對象檢測系統(tǒng)需要使用相同的傳感器類型,這里是 CMOS 圖像傳感器。這樣做的優(yōu)勢是只需要開發(fā)一條圖像處理鏈。這個圖像處理鏈可以為兩個圖像傳感器在可編程邏輯架構(gòu)中實例化兩次。
同構(gòu)架構(gòu)實現(xiàn)立體視覺系統(tǒng)的條件之一是要求兩個圖像傳感器同步。在可編程邏輯架構(gòu)中并行實現(xiàn)兩個圖像處理鏈并使用具有適當約束的相同時鐘,這樣有助于滿足這一苛刻的要求。
由于視差計算需要進行大量處理,因而兩次實現(xiàn)相同的圖像處理鏈能夠大幅節(jié)省開發(fā)成本。
圖 4- All Programmable FPGA 中的同構(gòu)傳感器融合
上圖給出了同構(gòu)方案的架構(gòu),其中兩條圖像處理鏈主要基于可用的 IP 模塊。使用定制的傳感器接口 IP 模塊捕捉圖像數(shù)據(jù),并從并行格式轉(zhuǎn)換為 AXI 數(shù)據(jù)流。這樣能實現(xiàn)輕松可擴展的圖像處理鏈;我們可使用高性能 AXI 互連以及視頻 DMA 將結(jié)果從圖像處理鏈傳送到處理器系統(tǒng) DDR。
當我們考慮采用不同傳感器類型的異構(gòu)實例時,可將以上介紹的圖像傳感器對象檢測架構(gòu)與 RADAR 距離檢測相結(jié)合。對于 RADAR 的實現(xiàn),我們有兩個選擇:脈沖方案(多普勒)或連續(xù)波。具體選擇哪種方案取決于最終應用要求,不過,這兩種方法大同小異。
圖 5- 異構(gòu)傳感器融合
RADAR 方案的架構(gòu)可分成兩部分:信號發(fā)生和信號接收。信號發(fā)生端負責產(chǎn)生要傳送的連續(xù)波信號或脈沖。兩種方案都需要信號發(fā)生 IP 模塊來連接高速數(shù)模轉(zhuǎn)換器。
信號接收端需要使用高速模數(shù)轉(zhuǎn)換器來捕捉接收到的連續(xù)波或脈沖信號。說到信號處理,這兩種方案都需要使用通過可編程邏輯架構(gòu)實現(xiàn)的 FFT 分析方法;同樣,我們可使用 DMA 將得到的數(shù)據(jù)集傳送到 PS DDR。
無論選擇哪種實現(xiàn)架構(gòu),只要我們創(chuàng)建了可由處理器系統(tǒng)訪問的傳感器數(shù)據(jù)以及 reVISION 平臺,我們就可以利用 reVISION 堆棧更高級的算法層和應用層來開發(fā)傳感器融合系統(tǒng)。
在這些更高層級上,我們可利用高級語言和行業(yè)標準框架開發(fā)應用。reVISION 能為嵌入式視覺和機器學習應用提供可隨時加速的庫和預定義的宏,以實現(xiàn)應用加速。這里采用平臺設計中未使用的資源,這要得益于將高層次綜合與連接框架相結(jié)合的 SDSoC 系統(tǒng)優(yōu)化編譯器。
以采用兩個圖像傳感器的異構(gòu)方案為例,標準開發(fā)方法是創(chuàng)建用來確定深度信息的立體視差圖。通常,這通過 OpenCV 的立體快匹配(Stereo Block Matching) 功能來實現(xiàn)。reVISION 提供一個能加速的立體快匹配(Stereo Block Matching) 功能,可在可編程邏輯中實現(xiàn)加速。該功能可將兩個圖像結(jié)合,以生成構(gòu)成異構(gòu)實例核心的視差和深度信息。
圖 6- reVISION 加速的 StereoLBM 功能
結(jié)論
傳感器融合已經(jīng)扎根,同時,嵌入式視覺系統(tǒng)正在迅速增長,傳感器快速推廣和普及。reVISION 允許利用行業(yè)標準框架在更高層面開發(fā)應用,因此一旦開發(fā)出基礎平臺,就能更快速地開發(fā)傳感器融合。
評論