嵌入式視覺(jué)應用中的傳感器融合
傳感器在我們的世界經(jīng)歷了快速的推廣,事實(shí)上,傳感器現在已經(jīng)非常普遍,以至于我們每個(gè)人日常所使用的手機里都有好幾種不同類(lèi)型的傳感器。這些傳感器有的能檢測壓力、溫度、加速度和重力的簡(jiǎn)單變化,同樣也有更為高級的傳感器,例如 GPS、RADAR、LIDAR 和圖像傳感器。
本文引用地址:http://dyxdggzs.com/article/201701/343261.htm傳感器融合是指從幾種不同的傳感器中提取數據,以生成靠單個(gè)傳感器無(wú)法提供的信息。隨后,可以對該信息做進(jìn)一步處理和分析。并根據最終應用,必要時(shí)還可用傳感器來(lái)制定決策。傳感器融合分為兩大類(lèi) :
·實(shí)時(shí)傳感器融合——提取并融合傳感器數據,并根據得到的信息實(shí)時(shí)制定決策。
·離線(xiàn)傳感器融合——這種方案是提取并融合傳感器數據,但在過(guò)后的某個(gè)時(shí)間制定決策。
就嵌入式視覺(jué)系統和傳感器融合應用而言,大部分應用適合實(shí)時(shí)傳感器融合。
嵌入式視覺(jué)應用正在經(jīng)歷迅猛增長(cháng),涉及領(lǐng)域廣泛,從機器人、高級駕駛員輔助系統 (ADAS) 到增強現實(shí),不一而足。這些嵌入式視覺(jué)應用對最終應用的成功運行有很大幫助。將嵌入式視覺(jué)系統提供的信息與來(lái)自不同傳感器或多個(gè)傳感器的信息進(jìn)行融合,有助于更好理解環(huán)境,從而提升所選應用的性能。
很多嵌入式視覺(jué)應用只使用一個(gè)圖像傳感器來(lái)監控一個(gè)方向,例如只監測汽車(chē)的前方。利用這樣的圖像傳感器可以檢測、分類(lèi)和跟蹤對象。然而,由于只使用一個(gè)傳感器,因此就無(wú)法測量與圖像中對象的距離。也就是說(shuō),我們可以檢測和跟蹤到另一個(gè)車(chē)輛或行人,但如果不借助另一個(gè)傳感器,我們就無(wú)法確定是否存在碰撞風(fēng)險。本例中我們需要另一個(gè)傳感器,例如 RADAR 或 LIDAR,該傳感器能提供與已檢測到的對象的距離。由于這種方法能夠將來(lái)自多個(gè)不同類(lèi)型傳感器的信息融合,因此稱(chēng)為異構傳感器融合。

ADAS 異構傳感器融合實(shí)例
另一種方案是提供第二個(gè)圖像傳感器,以實(shí)現立體視覺(jué)。這種方案是讓兩個(gè)圖像傳感器朝著(zhù)相同方向,但分開(kāi)一小段距離,就像人的兩個(gè)眼睛那樣,通過(guò)視差確定對象在視場(chǎng)中的深度。像這樣使用多個(gè)相同類(lèi)型的圖像傳感器,稱(chēng)為同構傳感器融合。
當然,這里需要根據駕駛條件確定架構和傳感器類(lèi)型的選擇。這包括深度感的范圍、測量精度、環(huán)境光和天氣條件、實(shí)現成本以及實(shí)現復雜程度。
嵌入式視覺(jué)不僅可用于對象檢測和汽車(chē)防撞,還可以作為導航系統的一部分,用來(lái)收集交通標志信息。另外,還可融合醫用 X 光、MRI 和 CT 等多種不同圖像,或者融合安防與監視設備中的可見(jiàn)光和紅外圖像。
我們通常認為嵌入式視覺(jué)應用只使用可見(jiàn)電磁光譜,其實(shí)很多嵌入式視覺(jué)應用能融合來(lái)自可見(jiàn)電磁光譜以外的數據。
處理要求
如果不進(jìn)行融合,處理圖像時(shí)就需要相當大的計算能力,這是因為系統要執行一系列預處理功能。例如在使用彩色圖像傳感器時(shí),這些處理任務(wù)包括顏色濾波插值、色彩空間轉換/重采樣以及圖像校正。除此之外,我們還要執行傳感器融合算法本身的處理任務(wù),在之前使用的對象檢測實(shí)例中,我們需要執行背景減法、閾值和輪廓檢測,以使用最簡(jiǎn)單方案定位對象,或者可能需要更強的 HoG/SVM 分類(lèi)器。
隨著(zhù)幀率和圖像尺寸增加,預處理圖像和提取信息所需的處理能力也會(huì )隨之增加。
然而,從圖像中提取所需的信息還只是任務(wù)的一部分,如果使用異構融合,我們還需對來(lái)自第二個(gè)傳感器的信息進(jìn)行配置、驅動(dòng)、接收和提取。如果我們選擇同構系統,則需要為第二個(gè)圖像傳感器再次執行與第一個(gè)傳感器相同的圖像處理流水線(xiàn)。
這樣能提供兩組數據,必須對這兩組數據進(jìn)行處理以確定與對象的實(shí)際距離,這才是真正的融合。
All Programmable SoC 或 FPGA 的優(yōu)勢
在嵌入式視覺(jué)系統中,一般使用 All Programmable FPGA 或 All Programmable SoC 來(lái)實(shí)現圖像處理流水線(xiàn)。如果它們能用于傳統嵌入式視覺(jué)應用,那么也適用于嵌入式視覺(jué)融合應用。
無(wú)論選擇 FPGA 還是 SoC,嵌入式視覺(jué)應用通常使用處理器進(jìn)行監視、控制和通信。如果選用 All Programmable SoC,那么中間有一個(gè)硬核,并有很多支持外設和接口標準。如果使用 All Programmable FPGA,就會(huì )使用一個(gè)軟核,例如 MicroBlaze?,并采用更加定制化的外設和接口支持。
對于嵌入式視覺(jué)傳感器融合應用,我們可進(jìn)一步利用處理器為所用的眾多傳感器提供簡(jiǎn)單接口。例如,加速計、壓力計、陀螺儀和 GPS 傳感器都配有串行外設接口 (SPI) 和內部集成電路(I2C)接口,都得到 All Programmable Zynq?-7000 和 MicroBlaze 軟核處理器的支持。這使軟件能夠快速、方便地從不同類(lèi)型的傳感器獲得所需信息,并提供給可擴展架構。
在可編程邏輯架構中可輕松實(shí)現用于從圖像傳感器提取信息的圖像處理流水線(xiàn),此外,可編程邏輯架構還可用來(lái)為其他異構傳感器(例如 RADAR 和 LIDAR)或者同構系統中的多種情況實(shí)現處理流水線(xiàn)。
當使用 All Programmable Zynq-7000 或 All Programmable UltraScale+? MPSoC 時(shí),處理器存儲器與可編程邏輯之間緊密耦合的架構允許應用軟件訪(fǎng)問(wèn)所得到的數據集,以便進(jìn)一步處理和制定決策。獨立傳感器鏈可在可編程邏輯中實(shí)現,而且可并行運行,這對于立體視覺(jué)等需要同步操作的情況非常有利。
為了加速在可編程邏輯中實(shí)現的融合應用的交付進(jìn)程,我們可利用高層次綜合 (HLS) 開(kāi)發(fā)可直接在可編程邏輯架構中實(shí)現的算法。
實(shí)例架構
開(kāi)發(fā)前面介紹的對象檢測和距離算法,利用 All Programmable SoC 演示同構和異構方案。盡管兩種方案使用的傳感器類(lèi)型不用,但這兩種架構的最終目標都是將兩個(gè)數據集放在處理系統的 DDR 內存,同時(shí)將可編程邏輯架構的性能最大化。
實(shí)現同構對象檢測系統需要使用相同的傳感器類(lèi)型,這里是 CMOS 成像傳感器。這樣做的優(yōu)勢是只需要開(kāi)發(fā)一條圖像處理鏈,這個(gè)圖像處理鏈可以為兩個(gè)圖像傳感器在可編程邏輯架構中實(shí)例化兩次。
同構架構實(shí)現立體視覺(jué)系統的條件之一是要求兩個(gè)圖像傳感器同步在可編程邏輯架構中并行實(shí)現兩個(gè)圖像處理鏈并使用具有適當約束的相同時(shí)鐘,這樣有助于滿(mǎn)足這一苛刻的要求。
盡管視差計算需要進(jìn)行密集處理,但兩次實(shí)現相同的圖像處理鏈的能力可顯著(zhù)節省開(kāi)發(fā)成本。

上圖給出了同構方案的架構,其中兩條圖像處理鏈主要基于可用的 IP 模塊。圖像數據采用定制的傳感器接口 IP 模塊捕獲,并從并行格式轉換為 AXI 流媒體。這樣能實(shí)現輕松可擴展的圖像處理鏈;我們可以利用高性能 AXI 互連以及視頻 DMA 將結果從圖像處理鏈傳送到 PS DDR。
考慮采用不同類(lèi)型傳感器的異構實(shí)例, 我們可將上面介紹的圖像傳感器對象檢測架構與 RADAR 距離檢測相結合。對于 RADAR 的實(shí)現,我們有兩個(gè)選擇:脈沖方案(多普勒)或者連續波。具體選擇哪種方案取決于最終應用要求,不過(guò),這兩種方法大同小異。

RADAR 的架構可分成兩部分:信號生成和信號接收。信號生成部分負責生成連續波信號或者待傳輸的脈沖信號,無(wú)論哪種方案都需要利用信號生成 IP 模塊與高速數模轉換器進(jìn)行接口連接。
信號接收部分也需要使用高速模數轉換器來(lái)捕獲接收到的連續波或脈沖信號。說(shuō)到信號處理,這兩種方案都需要使用通過(guò)可編程邏輯架構實(shí)現的 FFT 分析方法;同樣,我們可使用 DMA 將得到的數據集傳送到 PS DDR。
無(wú)論選擇哪種實(shí)現架構,兩個(gè)數據集的融合算法都是通過(guò)軟件用 PS 來(lái)執行。另外,這些融合算法對處理帶寬要求較高,實(shí)現更高性能的一種方法是使用現有工具集功能,尤其是設計環(huán)境 SDSoC?。
SDSoC 可利用 Vivado HLS 和連接框架(二者對軟件開(kāi)發(fā)人員都是透明的)無(wú)縫地在處理器與 SoC 可編程邏輯之間傳輸軟件功能。當然,我們可利用高層次綜合為同構和異構實(shí)現方式的處理鏈開(kāi)發(fā)功能。我們還可進(jìn)一步擴展,針對所選的實(shí)現方案創(chuàng )建定制 SDSoC 平臺,然后借助 SDSoC 功能,利用未占用的邏輯資源進(jìn)一步加速整個(gè)嵌入式視覺(jué)系統性能的提升。
結論
傳感器融合已經(jīng)扎根,同時(shí),嵌入式視覺(jué)系統正在迅速增長(cháng),傳感器快速推廣和普及。All Programmable FPGA 和 SoC 提供的功能使多種類(lèi)型的傳感器可并行運行并按要求實(shí)現同步;同時(shí),利用 SoC 處理系統或軟核處理器來(lái)執行數據融合和決策活動(dòng)。
系統和高層次綜合工具(如 SDSoC 和 Vivado HLS),為工程設計團隊帶來(lái)了多種優(yōu)勢,可確保如期進(jìn)行應用開(kāi)發(fā)。
評論