為什么以及如何使用Efinix FPGA進行AI/ML成像第2部分:圖像捕獲和處理


作者:Adam Taylor
編者注:FPGA 架構的新方法帶來了更細粒度的控制和更大的靈活性,可以滿足機器學習 (ML) 和人工智能 (AI) 的需求。這個由兩部分組成的系列的第 1 部分介紹了Efinix的一種此類架構以及如何使用開發(fā)板開始使用它。在這里,第 2 部分討論將開發(fā)板連接到外部設備和外設(例如相機),以及如何利用 FPGA 消除圖像處理瓶頸。
FPGA 在許多應用中發(fā)揮著關鍵作用,從工業(yè)控制和安全到機器人、航空航天和汽車。由于可編程邏輯內核的靈活性及其廣泛的接口功能,F(xiàn)PGA 的一個不斷增長的用例是圖像處理,可以在其中部署機器學習 (ML)。由于其并行邏輯結構,F(xiàn)PGA 非常適合實現(xiàn)具有多個高速攝像頭接口的解決方案。此外,F(xiàn)PGA 還支持在邏輯中使用專用處理管道,從而消除與基于 CPU 或 GPU 的解決方案相關的共享資源瓶頸。
對 Efinix 的Titanium FPGA的第二次觀察將檢查 FPGA 的Ti180 M484開發(fā)板附帶的參考圖像處理應用程序。目的是了解設計的組成部分,并確定 FPGA 技術在哪些方面可以消除瓶頸或為開發(fā)人員帶來其他好處。
基于 Ti180 M484 的參考設計
從概念上講,參考設計(圖 1)從多個移動行業(yè)處理器接口 (MIPI) 攝像頭接收圖像,在 LPDDR4x 中執(zhí)行幀緩沖,然后將圖像輸出到高清多媒體接口 (HDMI) 顯示器。 FPGA 夾層卡 (FMC) 和板上的四個Samtec QSE接口用于提供相機輸入和 HDMI 輸出。

圖 1:從概念上講,Ti180 M484 參考設計從多個 MIPI 相機接收圖像,在 LPDDR4x 中執(zhí)行幀緩沖,然后將圖像輸出到 HDMI 顯示器。 >(圖片來源:Efinix)
FMC至 QSE 擴展卡與 HDMI 子卡一起使用以提供輸出視頻路徑,而三個 QSE 連接器用于連接 DFRobot SEN0494 MIPI相機。如果多個 MIPI 攝像頭不可用,則可以通過環(huán)回單個攝像頭通道來使用單個攝像頭來模擬其他攝像頭。
從高層次上看,此應用程序可能看起來很簡單。然而,以高幀率接收多個高清 (HD) MIPI 流具有挑戰(zhàn)性。這就是 FPGA 技術的優(yōu)勢所在,因為它允許設計人員并行利用多個 MIPI 流。
參考設計的架構利用 FPGA 的并行和順序處理結構。并行結構用于實現(xiàn)圖像處理流水線,而 RISC-V 處理器提供用于 FPGA 查找表 (LUT) 的順序處理。
在許多基于 FPGA 的圖像處理系統(tǒng)中,圖像處理流水線可以分為兩個元素,即輸入流和輸出流。輸入流連接到相機/傳感器接口,處理功能應用于傳感器的輸出。這些功能可以包括拜耳轉換、自動白平衡和其他增強功能。在輸出流中,圖像已準備好顯示。這包括更改顏色空間(例如,RGB 到 YUV)和對所需輸出格式(例如 HDMI)的后處理。
通常,輸入圖像處理鏈以傳感器像素時鐘速率運行。這與以輸出顯示頻率處理的輸出鏈具有不同的時序。
幀緩沖區(qū)用于將輸入連接到輸出處理管道,通常存儲在外部高性能存儲器中,例如 LPDDR4x。該幀緩沖器在輸入和輸出管道之間解耦,允許以適當?shù)臅r鐘頻率通過直接存儲器訪問來訪問幀緩沖器。
Ti180 參考設計使用與上述概念類似的方法。輸入圖像處理管道實現(xiàn)了一個 MIPI 相機串行接口 2 (CSI-2) 接收器知識產權 (IP) 內核,它建立在 MIPI 物理層 (MIPI D-PHY) 的輸入/輸出 (I/O) 之上鈦FPGA。 MIPI 是一個具有挑戰(zhàn)性的接口,因為除了低速和高速通信之外,它還使用同一差分對上的單端和差分信號。在 FPGA I/O 中集成 MIPI D-PHY 降低了電路卡設計的復雜性,同時還減少了物料清單 (BOM)。
收到來自攝像頭的圖像流后,參考設計將 MIPI CSI-2 RX 的輸出轉換為高級可擴展接口 (AXI) 流。 AXI Stream 是一種單向高速接口,可提供從主機到從機的數(shù)據(jù)流。提供用于在主設備和從設備之間傳輸?shù)奈帐中盘?tvalid 和 tready)以及邊帶信號。這些邊帶信號可用于傳送圖像定時信息,例如幀開始和行結束。
AXI Stream 是圖像處理應用的理想選擇,使 Efinix 能夠提供一系列圖像處理 IP,然后可以根據(jù)應用的需要輕松集成到處理鏈中。
MIPI CSI-2圖像數(shù)據(jù)和時序信號接收后,轉換為AXI Stream,輸入直接內存訪問(DMA)模塊,將圖像幀寫入LPDDR4x,作為幀緩存。
該 DMA 模塊在藍寶石片上系統(tǒng) (SoC) 內的 FPGA 中的 RISC-V 內核的控制下運行。除了為 DMA 寫入通道提供必要信息以將圖像數(shù)據(jù)正確寫入 LPDDR4x 之外,該 SoC 還提供停止和啟動 DMA 寫入等控制。這包括有關存儲位置的信息以及以字節(jié)為單位定義的圖像的寬度和高度。
參考設計中的輸出通道在 RISC-V SoC 的控制下從 LPDDR4x 幀緩沖區(qū)讀取圖像信息。數(shù)據(jù)作為 AXI 流從 DMA IP 輸出,然后從傳感器提供的 RAW 格式轉換為 RGB 格式(圖 2),并準備通過板載 Analog Devices 的 ADV7511 HDMI 發(fā)射器 輸出。

圖 2:參考設計輸出的示例圖像。 (圖片來源:亞當·泰勒)
DMA 的使用還使 Sapphire SoC RISC-V 能夠訪問存儲在幀緩沖區(qū)中的圖像,以及抽象統(tǒng)計數(shù)據(jù)和圖像信息。 Sapphire SoC 還能夠將疊加層寫入 LPDDR4x,以便它們可以與輸出視頻流合并。
現(xiàn)代 CMOS 圖像傳感器 (CIS) 具有多種操作模式,可配置為提供片上處理,以及多種不同的輸出格式和時鐘方案。此配置通常通過 I2C 接口提供。在 Efinix 參考設計中,這種與 MIPI 相機的 I2C 通信由 Sapphire SoC RISC-V 處理器提供。
將 RISC-V 處理器集成到 Titanium FPGA 中可減少最終解決方案的整體尺寸,因為它無需實施會增加設計風險的復雜 FPGA 狀態(tài)機,也無需實施會增加 BOM 的外部處理器。
包含處理器還支持使用額外的 IP 與 MicroSD 卡進行通信。這使得現(xiàn)實世界的應用程序可能需要存儲圖像以供以后分析。
總體而言,Ti180 參考設計的架構經過優(yōu)化,可實現(xiàn)緊湊、低成本但高性能的解決方案,使開發(fā)人員能夠通過系統(tǒng)集成降低 BOM 成本。
參考設計的主要優(yōu)勢之一是它們可用于在定制硬件上啟動應用程序開發(fā),使開發(fā)人員能夠采用設計的關鍵元素并根據(jù)需要進行定制。這包括使用 Efinix 的 TinyML 流程來實現(xiàn)在 FPGA 上運行的基于視覺的 TinyML 應用程序的能力。這可以利用 FPGA 邏輯的并行特性和將自定義指令輕松添加到 RISC-V 處理器的能力,從而允許在 FPGA 邏輯中創(chuàng)建加速器。
執(zhí)行
正如第 1 部分中所討論的,Efinix 架構的獨特之處在于它使用可交換邏輯和路由 (XLR) 單元來提供路由和邏輯功能。像參考設計這樣的視頻系統(tǒng)是一個混合系統(tǒng),邏輯和布線都很繁重:需要大量的邏輯來實現(xiàn)圖像處理功能,并且需要大量的布線來以所需的頻率連接 IP 單元。
該參考設計在設備中使用了大約 42% 的 XLR 單元,為添加提供了充足的空間,包括自定義應用程序,例如 edge ML。
塊 RAM 和數(shù)字信號處理 (DSP) 塊的使用也非常高效,僅使用 640 個 DSP 塊中的 4 個和 40% 的內存塊(圖 3)。
圖 3:Efinix 架構上的資源分配顯示僅使用了 42% 的 XLR 單元,為其他進程留下了充足的空間。 (圖片來源:亞當·泰勒)
在設備 IO 上,LPDDR4x 的 DDR 接口用于為 Sapphire SoC 和圖像幀緩沖區(qū)提供應用程序內存。所有設備專用的 MIPI 資源都與 50% 的鎖相環(huán)一起使用(圖 4)。
圖 4:所用接口和 I/O 資源的快照。 (圖片來源:亞當·泰勒)
通用 I/O (GPIO) 用于提供 I2C 通信以及連接到 Sapphire SoC 的多個接口,包括 NOR FLASH、USB UART 和 SD 卡。 HSIO 用于向 ADC7511 HDMI 發(fā)送器提供高速視頻輸出。
使用 FPGA 進行設計的關鍵要素之一不僅是在 FPGA 內實施和適配設計,而且能夠將邏輯設計置于 FPGA 內并在布線時實現(xiàn)所需的時序性能。
單時鐘域 FPGA 設計的時代早已一去不復返了。 Ti180 參考設計中有幾種不同的時鐘,它們都以高頻運行。最終時序表顯示了系統(tǒng)內時鐘達到的最大頻率。這就是要求的時序性能也可以在約束中看到(圖 5),HDMI 輸出時鐘的最大時鐘頻率為 148.5 兆赫茲 (MHz)。

圖 5:參考設計的時鐘約束。 (圖片來源:亞當·泰勒)
針對約束的時序實現(xiàn)顯示了 Titanium FPGA XLR 結構的潛力,因為它減少了可能的路由延遲,從而提高了設計性能(圖 6)。
圖 6:針對約束的時序實現(xiàn)顯示了 Titanium FPGA XLR 結構在減少可能的路由延遲方面的潛力,從而提高了設計性能。 (圖片來源:亞當·泰勒)
結論
Ti180 M484 參考設計清楚地展示了 Efinix FPGA 的功能,尤其是 Ti180。該設計利用多個獨特的 I/O 結構來實現(xiàn)支持多個傳入 MIPI 流的復雜圖像處理路徑。該圖像處理系統(tǒng)在軟核藍寶石 SoC 的控制下運行,該系統(tǒng)實現(xiàn)了應用程序的必要順序處理元素。
責任編輯:David
【免責聲明】
1、本文內容、數(shù)據(jù)、圖表等來源于網(wǎng)絡引用或其他公開資料,版權歸屬原作者、原發(fā)表出處。若版權所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業(yè)目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。