All Programmable SoC 嵌入式視覺 感測器融合 ADAS

感測器融合技術襄助 嵌入式視覺應用耳聰目明

身處在一個感測器快速增加的時代,事實上現今的感測器已經普遍到一般人未能察覺,其實在日常所使用的手機裡,都有好幾種不同類型的感測器。這些感測器功用含括檢測壓力、溫度、加速度與重力等簡單的變化,或是其他更高階的應用如全球衛星定位系統(GPS)、雷達(Radar)、光達(LiDAR)和影像感測器等。
善用感測器融合 對應用進行決策

感測器融合(Sensor Fusion)是指藉由從幾種不同的感測器中取得數據,來產生無法靠單一感測器所提供的訊息。這些訊息可再做進一步處理和分析,或在必要時能針對終端應用進行決策。感測器融合分為以下兩大類: 

・即時感測器融合 

產生的數據在收集與融合後,會根據取得的訊息即時制定決策。 

・離線感測器融合 

產生的數據在收集與融合後,會在之後的某一時間點再進行決策。 

就嵌入式視覺系統和感測器融合應用而言,大部分的應用為即時感測器融合。 

同/異質感測器輔助 開展嵌入式視覺應用

嵌入式視覺應用正在迅速成長,其包含從機器人、先進駕駛輔助系統(ADAS)到擴增實境(AR)等廣泛應用(圖1)。這些嵌入式視覺應用對終端應用的運行有很大的貢獻,藉由進一步融合由嵌入式視覺系統與來自不同或多個感測器所提供的訊息,有助於更加理解環境,進而提升特定應用的效能。 

圖1 ADAS異質感測器融合實例

資料來源:賽靈思

許多嵌入式視覺應用只使用單一影像感測器來監控一個方向,例如汽車前方的監測作業。利用此類影像感測器可以偵測、分類和追蹤物件,然而,只使用單一感測器意味著無法測得影像中物件的距離,也就是說,只能偵測和追蹤到另一輛車或行人,倘若不借助另一個感測器就無法確定是否存在碰撞風險。在這種情況下便需要另一個如雷達或光達的感測器來提供與已偵測到之物件的距離。由於這種方法須將來自多個不同類型感測器的訊息進行融合,因此稱為異質感測器融合。 

另一種解決方案則是透過第二個影像感測器,來提供立體視覺。這種方案是讓兩個影像感測器朝著相同方向,但相隔一點距離,利用類似人眼的方式,透過視差確定物件在視野中的深度。像這樣使用多個相同類型的影像感測器,稱為同質感測器融合。 

當然,實際的應用會決定須使用哪種架構和感測器類型,來符合駕駛需求,這包括對深度感知的需求範圍、測量精度、環境光與天氣條件、運行成本以及複雜程度的考量。 

嵌入式視覺不僅可用於物件偵測和防撞,也可用於收集交通號誌訊息,來做為導航系統的一部分,其他像是用於醫療領域中融合X光、核磁共振(MRI)和電腦斷層(CT)等多種不同影像,或安全監測中融合可見光和紅外影像等,都是嵌入式視覺的不同應用實例。 

一般認為嵌入式視覺的應用只能利用可見電磁光譜,但其實很多應用皆有融合可見電磁光譜以外的資料。 

導入感測器融合 高效處理資料/影像

處理影像時若不進行融合,系統會耗費相當大的運算能力,因其必須執行一系列的預處理功能。例如在進行彩色影像感測時,處理的項目便包括彩色濾波插值、色彩空間轉換/重取樣及影像修正等。之後,還必須將其導入感測器融合的演算法中,以先前提及的物件偵測為例,會須要進行背景相減、閾值和輪廓偵測,其中,也包含利用最簡單或運算較密集的HoG/SVM分類器來定位物件。 

隨著幀率和影像尺寸增加,運行於預處理影像與擷取訊息所需的運算能力也會隨之增加。 

然而,從影像中擷取所需訊息還只是其中一部分,若使用異質融合,尚須對來自第二個感測器的訊息進行配置、驅動、接收和提取。如果選擇同質系統,則會須要為第二個影像感測器再進行與第一個感測器相同的影像處理流程。 

當此兩組資料被處理與篩選過後,才可用來確定與物件之實際距離,這才可稱為真正的融合。 

All Programmable SoC/FPGA加快處理流程

在嵌入式視覺系統中,使用完全可編程邏輯(All Programmable)現場可編程閘陣列(FPGA)或All Programmable系統單晶片(SoC)來進行影像處理是相當常見的,它們既用於傳統的嵌入式視覺應用,也非常適合用於嵌入式視覺融合的應用。 

無論是選擇FPGA或SoC,嵌入式視覺應用通常會使用特定處理器進行監測、控制與通訊。如果選用All Programmable SoC,將會是有許多周邊設備支援與介面標準的硬體;若使用All Programmable FPGA,便會是像MicroBlaze一樣有許多客製化周邊產品與介面支援的軟體。 

對於嵌入式視覺感測器融合應用,可進一步利用其為許多感測器提供簡單介面,例如加速計、壓力計、陀螺儀甚至是GPS感測器,皆可透過以All Programmable Zynq-7000和MicroBlaze處理器所驅動的串列周邊介面(SPI)和積體電路匯流排(I2C)介面進行串流。這使軟體能夠快速且方便地從不同類型的感測器中獲得所需訊息,並提供給可擴展的架構。 

當在擷取處理影像所需的資料時,感測器可輕易地在可編程邏輯架構中進行作業,此外,可編程邏輯架構還可用於如雷達和光達等異質感測器,或同質感測器中的多種情況進行處理流程。 

當使用All Programmable Zynq-7000或All Programmable UltraScale+ MPSoC時,處理器存儲器與可編程邏輯之間緊密耦合的架構,能讓應用軟體取用已融合的資料集,來進一步處理和制定決策。在用於獨立感測器鏈時,其能在可編程邏輯中平行運行,這對在需要同步操作的情況如立體視覺影像處理而言非常有利。 

為了加速可編程邏輯的融合應用,可利用高階合成(HLS)技術來開發能直接用於其架構中的演算法。 

針對實際應用 採用最適架構 

為了開發先前所介紹的物件偵測和距離演算法,可利用All Programmable SoC來展示同質和異質的解決方案。儘管兩種解決方案使用的感測器類型不同,其最終目的都是將兩組資料集放在處理系統的雙倍資料傳輸速率(DDR)記憶體中,並同時最佳化可編程邏輯架構的效能。 

進行同質物件偵測時,系統須要使用相同的感測器類型,此案例中指的便是互補式金屬氧化物半導體(CMOS)影像感測器。其優勢在於只須要開發一條影像處理鏈,便能在可編程邏輯架構下為兩個影像感測器進行相同的具現化(Instantiated)。 

同質架構是執行立體視覺系統的條件之一,其須要兩個影像感測器同步運行。透過在可編程邏輯架構中同時執行兩個影像處理鏈與定時限制,其將有助於滿足需同時運行兩個感測器的苛刻要求。 

儘管視差運算需要進行密集處理,但擁有可對相同的影像處理鏈處理兩次的能力,可顯著地節省開發成本。 

圖2為同質解決方案的架構,其展示兩條運行於可用之IP模組的影像處理鏈。影像資料透過客製化的感測器介面IP模組來收集,並從平行模式轉換為AXI串流,這樣就能輕鬆將影像處理鏈進行擴展,並可利用高效能AXI互連(Interconnect)及視訊直接記憶體存取(Video DMA),將結果從影像處理鏈傳送到處理器系統(PS)的DDR記憶體。 

圖2 同質解決方案之架構示意圖
若在考慮採用不同類型感測器的異質實例時,可將上文介紹的影像感測器物件偵測架構與雷達距離偵測相結合(圖3)。透過執行雷達,以下有兩個解決方案:脈衝(都卜勒)或連續波。最終選擇哪種解決方案取決於終端應用的需求,不過這兩種解決方案大同小異。 

圖3 採用不同類型感測器的異質解決方案
雷達解決方案的架構可分成訊號的產生和接收兩個部分。訊號的產生會生成連續波訊號或待傳輸的脈衝訊號,無論哪種解決方案都須要利用生產訊號的IP模組與高速類比數位轉換器進行介面連接。 

訊號的接收也須要使用高速類比數位轉換器來接收連續波或脈衝訊號。當處理訊號時,這兩種解決方案都必須透過可編程邏輯架構來進行傅立葉轉換(FFT)頻譜分析法,之後可藉由直接記憶體存取(DMA),將得到的資料集傳送到處理器系統的DDR記憶體。 

無論選擇執行哪種架構,兩組資料集的融合演算法都是透過處理器系統軟體來執行。此外,這些融合演算法對處理頻寬要求較高,創造更高效能的其中一種方法是使用現有的工具組,例如SDSoC開發環境。 

SDSoC可藉由利用Vivado HLS和連結框架無縫地在處理器與SoC可編程邏輯之間傳輸軟體功能,Vivado HLS與連結框架對軟體開發人員而言都是容易取得的。當然,若運用高階合成技術為同質和異質解決方案開發處理鏈功能,還可進一步針對特定的運行方案創建客製化SDSoC平台進行擴展,然後藉助SDSoC功能來利用未被占用的邏輯資源,進而加速整體嵌入式視覺系統的效能。 

系統/工具陸續到位 嵌入式視覺開發加速 

感測器融合已向下扎根,現今嵌入式視覺系統與感測器正迅速成長。All Programmable FPGA和SoC所提供的功能使不同類型的感測器可按指令進行平行或同步運行,同時,其還可利用SoC處理系統或軟核處理器來執行資料融合與決策。可以預見,系統和高階合成工具如SDSoC和Vivado HLS,為工程設計團隊帶來多項優勢,讓應用開發可如預期時程進行。 

(本文作者任職於賽靈思)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!