傳感器在我們的世界經(jīng)歷了快速的推廣,事實上,傳感器現(xiàn)在已經(jīng)非常普遍,以至于我們每個人日常所使用的手機(jī)里都有好幾種不同類型的傳感器。這些傳感器有的能檢測壓力、溫度、加速度和重力的簡單變化,同樣也有更為高級的傳感器,例如GPS、RADAR、LIDAR和圖像傳感器。
傳感器融合是指從幾種不同的傳感器中提取數(shù)據(jù),以生成靠單個傳感器無法提供的信息。隨后,可以對該信息做進(jìn)一步處理和分析。并根據(jù)最終應(yīng)用,必要時還可用傳感器來制定決策。傳感器融合分為兩大類:
●實時傳感器融合——提取并融合傳感器數(shù)據(jù),并根據(jù)得到的信息實時制定決策。
●離線傳感器融合——這種方案是提取并融合傳感器數(shù)據(jù),但在過后的某個時間制定決策。
就嵌入式視覺系統(tǒng)和傳感器融合應(yīng)用而言,大部分應(yīng)用適合實時傳感器融合。
嵌入式視覺應(yīng)用
嵌入式視覺應(yīng)用正在經(jīng)歷迅猛增長,涉及領(lǐng)域廣泛,從機(jī)器人、高級駕駛員輔助系統(tǒng)(ADAS)到增強(qiáng)現(xiàn)實,不一而足。這些嵌入式視覺應(yīng)用對最終應(yīng)用的成功運行有很大幫助。將嵌入式視覺系統(tǒng)提供的信息與來自不同傳感器或多個傳感器的信息進(jìn)行融合,有助于更好理解環(huán)境,從而提升所選應(yīng)用的性能。
很多嵌入式視覺應(yīng)用只使用一個圖像傳感器來監(jiān)控一個方向,例如只監(jiān)測汽車的前方。利用這樣的圖像傳感器可以檢測、分類和跟蹤對象。然而,由于只使用一個傳感器,因此就無法測量與圖像中對象的距離。也就是說,我們可以檢測和跟蹤到另一個車輛或行人,但如果不借助另一個傳感器,我們就無法確定是否存在碰撞風(fēng)險。本例中我們需要另一個傳感器,例如RADAR或LIDAR,該傳感器能提供與已檢測到的對象的距離。由于這種方法能夠?qū)碜远鄠€不同類型傳感器的信息融合,因此稱為異構(gòu)傳感器融合。
ADAS異構(gòu)傳感器融合實例
另一種方案是提供第二個圖像傳感器,以實現(xiàn)立體視覺。這種方案是讓兩個圖像傳感器朝著相同方向,但分開一小段距離,就像人的兩個眼睛那樣,通過視差確定對象在視場中的深度。像這樣使用多個相同類型的圖像傳感器,稱為同構(gòu)傳感器融合。
當(dāng)然,這里需要根據(jù)駕駛條件確定架構(gòu)和傳感器類型的選擇。這包括深度感的范圍、測量精度、環(huán)境光和天氣條件、實現(xiàn)成本以及實現(xiàn)復(fù)雜程度。
嵌入式視覺不僅可用于對象檢測和汽車防撞,還可以作為導(dǎo)航系統(tǒng)的一部分,用來收集交通標(biāo)志信息。另外,還可融合醫(yī)用X光、MRI和CT等多種不同圖像,或者融合安防與監(jiān)視設(shè)備中的可見光和紅外圖像。
我們通常認(rèn)為嵌入式視覺應(yīng)用只使用可見電磁光譜,其實很多嵌入式視覺應(yīng)用能融合來自可見電磁光譜以外的數(shù)據(jù)。
處理要求
如果不進(jìn)行融合,處理圖像時就需要相當(dāng)大的計算能力,這是因為系統(tǒng)要執(zhí)行一系列預(yù)處理功能。例如在使用彩色圖像傳感器時,這些處理任務(wù)包括顏色濾波插值、色彩空間轉(zhuǎn)換/重采樣以及圖像校正。除此之外,我們還要執(zhí)行傳感器融合算法本身的處理任務(wù),在之前使用的對象檢測實例中,我們需要執(zhí)行背景減法、閾值和輪廓檢測,以使用最簡單方案定位對象,或者可能需要更強(qiáng)的 HoG/SVM 分類器。
隨著幀率和圖像尺寸增加,預(yù)處理圖像和提取信息所需的處理能力也會隨之增加。
然而,從圖像中提取所需的信息還只是任務(wù)的一部分,如果使用異構(gòu)融合,我們還需對來自第二個傳感器的信息進(jìn)行配置、驅(qū)動、接收和提取。如果我們選擇同構(gòu)系統(tǒng),則需要為第二個圖像傳感器再次執(zhí)行與第一個傳感器相同的圖像處理流水線。
這樣能提供兩組數(shù)據(jù),必須對這兩組數(shù)據(jù)進(jìn)行處理以確定與對象的實際距離,這才是真正的融合。
All Programmable SoC或FPGA的優(yōu)勢
在嵌入式視覺系統(tǒng)中,一般使用All Programmable FPGA或All Programmable SoC來實現(xiàn)圖像處理流水線。如果它們能用于傳統(tǒng)嵌入式視覺應(yīng)用,那么也適用于嵌入式視覺融合應(yīng)用。
無論選擇FPGA還是SoC,嵌入式視覺應(yīng)用通常使用處理器進(jìn)行監(jiān)視、控制和通信。如果選用All Programmable SoC,那么中間有一個硬核,并有很多支持外設(shè)和接口標(biāo)準(zhǔn)。如果使用All Programmable FPGA,就會使用一個軟核,例如 MicroBlazeTM,并采用更加定制化的外設(shè)和接口支持。
對于嵌入式視覺傳感器融合應(yīng)用,我們可進(jìn)一步利用處理器為所用的眾多傳感器提供簡單接口。例如,加速計、壓力計、陀螺儀和 GPS 傳感器都配有串行外設(shè)接口(SPI)和內(nèi)部集成電路(I2C)接口,都得到All Programmable Zynq?-7000和MicroBlaze軟核處理器的支持。這使軟件能夠快速、方便地從不同類型的傳感器獲得所需信息,并提供給可擴(kuò)展架構(gòu)。
在可編程邏輯架構(gòu)中可輕松實現(xiàn)用于從圖像傳感器提取信息的圖像處理流水線,此外,可編程邏輯架構(gòu)還可用來為其他異構(gòu)傳感器(例如 RADAR 和 LIDAR)或者同構(gòu)系統(tǒng)中的多種情況實現(xiàn)處理流水線。
當(dāng)使用All Programmable Zynq-7000 或 All Programmable UltraScale+TMMPSoC時,處理器存儲器與可編程邏輯之間緊密耦合的架構(gòu)允許應(yīng)用軟件訪問所得到的數(shù)據(jù)集,以便進(jìn)一步處理和制定決策。獨立傳感器鏈可在可編程邏輯中實現(xiàn),而且可并行運行,這對于立體視覺等需要同步操作的情況非常有利。
為了加速在可編程邏輯中實現(xiàn)的融合應(yīng)用的交付進(jìn)程,我們可利用高層次綜合(HLS)開發(fā)可直接在可編程邏輯架構(gòu)中實現(xiàn)的算法。
實例架構(gòu)
開發(fā)前面介紹的對象檢測和距離算法,利用All Programmable SoC演示同構(gòu)和異構(gòu)方案。盡管兩種方案使用的傳感器類型不用,但這兩種架構(gòu)的最終目標(biāo)都是將兩個數(shù)據(jù)集放在處理系統(tǒng)的DDR內(nèi)存,同時將可編程邏輯架構(gòu)的性能最大化。
實現(xiàn)同構(gòu)對象檢測系統(tǒng)需要使用相同的傳感器類型,這里是CMOS成像傳感器。這樣做的優(yōu)勢是只需要開發(fā)一條圖像處理鏈,這個圖像處理鏈可以為兩個圖像傳感器在可編程邏輯架構(gòu)中實例化兩次。
同構(gòu)架構(gòu)實現(xiàn)立體視覺系統(tǒng)的條件之一是要求兩個圖像傳感器同步在可編程邏輯架構(gòu)中并行實現(xiàn)兩個圖像處理鏈并使用具有適當(dāng)約束的相同時鐘,這樣有助于滿足這一苛刻的要求。
盡管視差計算需要進(jìn)行密集處理,但兩次實現(xiàn)相同的圖像處理鏈的能力可顯著節(jié)省開發(fā)成本。
上圖給出了同構(gòu)方案的架構(gòu),其中兩條圖像處理鏈主要基于可用的 IP 模塊。圖像數(shù)據(jù)采用定制的傳感器接口IP 模塊捕獲,并從并行格式轉(zhuǎn)換為AXI流媒體。這樣能實現(xiàn)輕松可擴(kuò)展的圖像處理鏈;我們可以利用高性能 AXI 互連以及視頻DMA將結(jié)果從圖像處理鏈傳送到PS DDR。
考慮采用不同類型傳感器的異構(gòu)實例, 我們可將上面介紹的圖像傳感器對象檢測架構(gòu)與RADAR 距離檢測相結(jié)合。對于RADAR的實現(xiàn),我們有兩個選擇:脈沖方案(多普勒)或者連續(xù)波。具體選擇哪種方案取決于最終應(yīng)用要求,不過,這兩種方法大同小異。
RADAR的架構(gòu)可分成兩部分:信號生成和信號接收。信號生成部分負(fù)責(zé)生成連續(xù)波信號或者待傳輸?shù)拿}沖信號,無論哪種方案都需要利用信號生成 IP 模塊與高速數(shù)模轉(zhuǎn)換器進(jìn)行接口連接。
信號接收部分也需要使用高速模數(shù)轉(zhuǎn)換器來捕獲接收到的連續(xù)波或脈沖信號。說到信號處理,這兩種方案都需要使用通過可編程邏輯架構(gòu)實現(xiàn)的FFT分析方法;同樣,我們可使用DMA將得到的數(shù)據(jù)集傳送到PS DDR。
無論選擇哪種實現(xiàn)架構(gòu),兩個數(shù)據(jù)集的融合算法都是通過軟件用PS來執(zhí)行。另外,這些融合算法對處理帶寬要求較高,實現(xiàn)更高性能的一種方法是使用現(xiàn)有工具集功能,尤其是設(shè)計環(huán)境 SDSoCTM。
SDSoC可利用Vivado HLS和連接框架(二者對軟件開發(fā)人員都是透明的)無縫地在處理器與SoC可編程邏輯之間傳輸軟件功能。當(dāng)然,我們可利用高層次綜合為同構(gòu)和異構(gòu)實現(xiàn)方式的處理鏈開發(fā)功能。我們還可進(jìn)一步擴(kuò)展,針對所選的實現(xiàn)方案創(chuàng)建定制SDSoC平臺,然后借助SDSoC功能,利用未占用的邏輯資源進(jìn)一步加速整個嵌入式視覺系統(tǒng)性能的提升。
結(jié)論
傳感器融合已經(jīng)扎根,同時,嵌入式視覺系統(tǒng)正在迅速增長,傳感器快速推廣和普及。All Programmable FPGA 和 SoC 提供的功能使多種類型的傳感器可并行運行并按要求實現(xiàn)同步;同時,利用 SoC 處理系統(tǒng)或軟核處理器來執(zhí)行數(shù)據(jù)融合和決策活動。
系統(tǒng)和高層次綜合工具(如 SDSoC 和 Vivado HLS),為工程設(shè)計團(tuán)隊帶來了多種優(yōu)勢,可確保如期進(jìn)行應(yīng)用開發(fā)。
評論
查看更多