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