使用 Efinix FPGA 於人工智慧/機器學習成像的優勢及方法 - 第 2 篇:擷取和處理圖片
資料提供者:DigiKey 歐洲編輯群
2023-05-05
編者說明:全新 FPGA 架構法帶來更精細的控制和更高靈活性,可滿足機器學習 (ML) 和人工智慧 (AI) 的需求。此系列文章分為兩篇,第 1 篇介紹 Efinix 一款此類架構的產品,以及如何利用開發板著手使用此產品。第 2 篇則探討如何將開發板介接到攝影機等外部裝置及周邊裝置,以及如何善用 FPGA 來消除影像處理時遇到的瓶頸。
FPGA 在許多應用中都扮演著重要的角色,如工業控制與安全、機器人、航太與汽車應用等。由於其可編程邏輯核心極具靈活性,且具備廣泛的介接功能,已有越來越多 FPGA 用於影像處理使用案例,此類應用可部署機器學習 (ML)。其具有平行邏輯結構,因此非常適合用來實作含多個高速攝影機介面的解決方案。此外,FPGA 使用專用的邏輯處理管線,故可消除以 CPU 或 GPU 為基礎之解決方案相關的共用資源瓶頸。
本文接著將仔細檢視 Efinix 的 Titanium FPGA,查看具備 FPGA Ti180 M484 開發板的參考影像處理應用。如此可瞭解設計的組成,並識別 FPGA 技術能如何協助消除瓶頸,或為開發人員帶來其他優勢。
Ti180 M484 架構公版設計
概念上,公版設計 (圖 1) 接收多個行動產業處理器介面 (MIPI) 攝影機的影像,在 LPDDR4x 中執行訊框緩衝,然後將影像輸出到高解析度多媒體介面 (HDMI) 顯示器。一個 FPGA 夾層卡 (FMC) 和板上的四個 Samtec QSE 介面,可用來提供攝影機輸入和 HDMI 輸出。
圖 1:概念上,Ti180 M484 公版設計接收來自多個 MIPI 攝影機的影像,在 LPDDR4x 中執行訊框緩衝,然後將影像輸出到 HDMI 顯示器。(圖片來源:Efinix)
FMC 轉 QSE 擴充卡可搭配 HDMI 子卡使用,提供輸出視訊路徑,而三個 QSE 連接器則是用來與 DFRobot SEN0494 MIPI 攝影機進行介面連接。如果沒有多部 MIPI 攝影機,可使用單一攝影機,藉由回授單一攝影機頻道模擬其他攝影機。
在較高層級上,此種應用看起來可能相當簡單。然而,以高訊框率接收多個高解析度 (HD) MIPI 串流具有相當難度。這正是 FPGA 技術的優勢所在,因為它能讓設計人員同時利用多個 MIPI 串流。
公版設計的架構會利用 FPGA 的平行與序列這兩種處理結構。平行結構用於實作影像處理管線,而 RISC-V 處理器則提供用於 FPGA 查找表 (LUT) 的序列處理功能。
影像處理管線可以在許多 FPGA 影像處理系統內分割成兩個元素,亦即輸入和輸出串流。輸入串流連接到攝影機/感測器介面,而處理函數則套用至感測器的輸出。這些函數可以包括 Bayer 轉換、自動白平衡和其他增強功能。在輸出串流中,影像已準備好顯示了。這包括改變色彩空間 (例如,RGB 改為 YUV),以及進行後處理以成為所需輸出格式,例如 HDMI。
輸入影像處理鏈通常以感測器像素時脈率運作。這與輸出鏈的計時不同,輸出鏈是以輸出顯示頻率處理。
訊框緩衝區可將輸入連接到輸出處理管線,此管線通常存放在外部高效能記憶體 (如 LPDDR4x) 中。此訊框緩衝區會在輸入和輸出管線之間進行解耦,因此可在適當時脈頻率下,從記憶體直接存取訊框緩衝區。
Ti180 公版設計採用與上述概念類似的方法。輸入影像處理管線執行 MIPI 攝影機序列介面 2 (CSI-2) 接收器智慧財產 (IP) 核心;此核心建構在 Titanium FPGA 的輸入/輸出 (I/O) 上,其具備 MIPI 實體層 (MIPI D-PHY) 功能。MIPI 是一種高難度的介面,因為它在同一差動對上,除了使用低速和高速通訊外,還使用單端和差動訊號傳輸。將 MIPI D-PHY 整合在 FPGA I/O 中,可降低電路卡設計的複雜度,同時減少物料清單 (BOM) 的零件數量。
公版設計收到攝影機的影像串流後,會將 MIPI CSI -2 RX 的輸出轉換為進階延伸介面 (AXI) 串流。AXI 串流是一種單向高速介面,可提供從主控元件到從控元件的資料流。除了提供主控元件與從控元件之間傳輸的握手訊號 (tvalid 和 tready) 以外,還會提供邊帶訊號。這些邊帶訊號可用於傳輸影像計時訊號,例如訊框的起點和管線末端。
AXI 串流非常適合用於影像處理應用,可以讓 Efinix 提供一系列影像處理 IP,再根據應用需求輕鬆整合至處理鏈中。
MIPI CSI -2 影像資料和計時訊號接受後,會轉換成 AXI 串流並輸入到直接記憶體存取 (DMA) 模組中,而該模組則將影像訊框寫入 LPDDR4x 並充當訊框緩衝區。
此 DMA 模組是在 Sapphire 系統單晶片 (SoC) 內 FPGA 中的 RISC-V 核心控制下運作。此 SoC 可提供停止和啓動 DMA 寫入等控制功能,此外還為 DMA 寫入通道提供必要資訊,以便將影像資料正確地寫入 LPDDR4x。這些資訊包括記憶體位置,以及以位元組為單位所定義之影像的寬度和高度。
公版設計中的輸出通道從 RISC-V SoC 控制下的 LPDDR4x 訊框緩衝區中讀取影像資訊。這些資料是來自 DMA IP 的 AXI 串流輸出,然後從感測器提供的 RAW 格式,轉換成 RGB 格式 (圖 2),並用於透過 Analog Devices 的板載 ADV7511 HDMI 發射器輸出。
圖 2:公版設計的樣本影像輸出。(圖片來源:Adam Taylor)
使用 DMA 也能使 Sapphire SoC RISC-V 存取儲存在訊框緩衝區中的影像,以及抽象化統計資訊和影像資訊。Sapphire SoC 也能將重疊寫入 LPDDR4x,以便重疊與輸出視訊串流合併。
現代 CMOS 影像感測器 (CIS) 具有數種操作模式,而且可以對其進行設定,以提供晶片上處理的能力,以及數種不同的輸出格式和時脈結構。此配置通常透過 I²C 介面提供。在 Efinix 公版設計中,此種與 MIPI 攝影機的 I²C 通訊是由 Sapphire SoC RISC-V 處理器提供。
在 Titanium FPGA 內部整合 RISC-V 處理器,可減少最終解決方案的整體尺寸,因為不需要實作會增加設計風險的複雜 FPGA 狀態機,也不需要會導致增加物料清單的外部處理器。
納入處理器後,也能以額外的 IP 來支援與 MicroSD 卡的通訊。這可以實現實際的應用,能在這些應用中儲存影像以供日後分析。
整體而言,Ti180 公版設計的架構已經過最佳化,可達到精巧、低成本、高效能的解決方案,讓開發人員透過系統整合降低物料清單成本。
公版設計的關鍵優點之一是讓開發人員開始自訂硬體上的應用開發流程,能取用設計的關鍵要素為開發基礎,進行所需的客製化。這包括能夠使用 Efinix 的 TinyML 流程,以實作在 FPGA 上執行視覺型 TinyML 應用程式的能力。既可利用 FPGA 邏輯的平行特性,也可以輕鬆將自訂指令新增到 RISC-V 處理器,在 FPGA 邏輯內建立加速器。
實作
如同第 1 篇所討論,Efinix 架構之所以獨一無二,乃是因為它使用 eXchangeable Logic and Routing (XLR) 元件來提供路由和邏輯功能。公版設計等視訊系統是一種混合複雜邏輯或複雜路由的系統:實作影像處理功能需要廣泛的邏輯;而在所需頻率下連接 IP 單元,則需要廣泛的路由。
公版設計使用元件內約 42% 的 XLR 單元,因而留下足夠空間可供新增項目,包括邊緣機器學習等自訂應用。
使用區塊 RAM 和數位訊號處理 (DSP) 區塊也非常有效率,只會使用 640 個 DSP 區塊中的 4 個,和 40% 的記憶體區塊 (圖 3)。
|
圖 3:Efinix 架構上的資源分配僅顯示使用了 42% 的 XLR 單元,為增加額外流程留下充足的空間。(圖片來源:Adam Taylor)
在元件 IO 中,LPDDR4x 的 DDR 介面用來為 Sapphire SoC 和影像訊框緩衝區提供應用程式記憶體。所有元件專用的 MIPI 資源都會與 50% 的鎖相迴路一起使用 (圖 4)。
|
圖 4:所用之介面和 I/O 資源的快照。(圖片來源:Adam Taylor)
一般用途 I/O (GPIO) 用於提供 I²C 通訊以及連接到 Sapphire SoC 的數個介面,包括 NOR FLASH、USB UART 和 SD 卡。HSIO 是用來為 ADC7511 HDMI 發射器提供高速視訊輸出。
使用 FPGA 進行設計的關鍵要素之一,不僅是在 FPGA 內實作並裝配設計,而且還能將邏輯設計置於 FPGA 內,並在路由時達到所需的計時效能。
單一時域 FPGA 設計的時代早已過去。Ti180 公版設計內含有數種不同時脈,全都是在高頻率下執行。最後的計時表顯示系統內時脈達到的最大頻率。此表也能看出在限制下所要求的計時效能 (圖 5),這些條件針對 HDMI 輸出時脈有 148.5 MHz 的最大時脈頻率。
圖 5:公版設計的時脈限制。(圖片來源:Adam Taylor)
對照限制進行的計時實作顯示 Titanium FPGA XLR 結構的潛力,其能減少可能的路由延遲,進而提高設計效能 (圖 6)。
|
圖 6:對照限制進行的計時實作顯示 Titanium FPGA XLR 結構的潛力:減少可能的路由延遲,進而提高設計效能。(圖片來源:Adam Taylor)
結論
Ti180 M484 公版設計清楚展示 Efinix FPGA 的功能,尤其是 Ti180。此設計利用數個獨特的 I/O 結構來實作複雜的影像處理路徑,以支援多個傳入的 MIPI 串流。此影像處理系統是在軟核心 Sapphire SoC 的控制下運作,而此 Sapphire SoC 則實作應用所必要的序列處理元件。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。