傳感器在我們的世界經歷了快速的推廣,事實上,傳感器現在已經非常普遍,以至于我們每個人日常所使用的手機里都有好幾種不同類型的傳感器。這些傳感器有的能檢測壓力、溫度、加速度和重力的簡單變化,同樣也有更為高級的傳感器,例如 GPS、RADAR、LIDAR 和圖像傳感器。
傳感器融合是指從幾種不同的傳感器中提取數據,以生成靠單個傳感器無法提供的信息。隨后,可以對該信息做進一步處理和分析。并根據最終應用,必要時還可用傳感器來制定決策。傳感器融合分為兩大類 :
· 實時傳感器融合——提取并融合傳感器數據,并根據得到的信息實時制定決策。
· 離線傳感器融合——這種方案是提取并融合傳感器數據,但在過后的某個時間制定決策。
就嵌入式視覺系統和傳感器融合應用而言,大部分應用適合實時傳感器融合。
嵌入式視覺應用
嵌入式視覺應用正在經歷迅猛增長,涉及領域廣泛,從機器人、高級駕駛員輔助系統 (ADAS) 到增強現實,不一而足。這些嵌入式視覺應用對最終應用的成功運行有很大幫助。將嵌入式視覺系統提供的信息與來自不同傳感器或多個傳感器的信息進行融合,有助于更好理解環境,從而提升所選應用的性能。
很多嵌入式視覺應用只使用一個圖像傳感器來監控一個方向,例如只監測汽車的前方。利用這樣的圖像傳感器可以檢測、分類和跟蹤對象。然而,由于只使用一個傳感器,因此就無法測量與圖像中對象的距離。也就是說,我們可以檢測和跟蹤到另一個車輛或行人,但如果不借助另一個傳感器,我們就無法確定是否存在碰撞風險。本例中我們需要另一個傳感器,例如 RADAR 或 LIDAR,該傳感器能提供與已檢測到的對象的距離。由于這種方法能夠將來自多個不同類型傳感器的信息融合,因此稱為異構傳感器融合。
另一種方案是提供第二個圖像傳感器,以實現立體視覺。這種方案是讓兩個圖像傳感器朝著相同方向,但分開一小段距離,就像人的兩個眼睛那樣,通過視差確定對象在視場中的深度。像這樣使用多個相同類型的圖像傳感器,稱為同構傳感器融合。
當然,這里需要根據駕駛條件確定架構和傳感器類型的選擇。這包括深度感的范圍、測量精度、環境光和天氣條件、實現成本以及實現復雜程度。
嵌入式視覺不僅可用于對象檢測和汽車防撞,還可以作為導航系統的一部分,用來收集交通標志信息。另外,還可融合醫用 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 傳感器都配有串行外設接口 (SPI) 和內部集成電路(I2C)接口,都得到 All Programmable Zynq?-7000 和 MicroBlaze 軟核處理器的支持。這使軟件能夠快速、方便地從不同類型的傳感器獲得所需信息,并提供給可擴展架構。