0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么以及如何将 Efinix FPGA 用于 AI/ML 成像第 2 部分:图像采集和处理

海阔天空的专栏 来源:Adam Taylor 作者:Adam Taylor 2023-10-03 14:45 次阅读

作者:Adam Taylor

编者按:全新的 FPGA 架构方法带来了更精细的控制和更大的灵活性,以满足机器学习 (ML) 和人工智能AI) 的需求。本系列文章包括两部分,第 1部分介绍了 Efinix 一款此类架构的产品,以及如何借助开发板开始使用该产品。本文是第 2 部分,讨论了开发板与外部器件和外设(如摄像头)的连接,以及如何利用
FPGA 消除图像处理的瓶颈。

工业控制和安全到机器人、航空航天和汽车,FPGA 在许多应用中扮演着重要角色。凭借可编程逻辑内核的灵活性及其广泛的接口能力,FPGA 在可以部署机器学习(ML) 的影像处理中的应用日渐广泛。由于其并行逻辑结构,FPGA 非常适合用来实现具有多个高速摄像头接口的解决方案。此外,FPGA还能在逻辑中使用专门的处理管道,从而消除与基于 CPUGPU 的解决方案相关的共享资源瓶颈。

本文将再次介绍 Efinix 的 Titanium FPGA,并探讨该 FPGA 的 Ti180 M484开发板附带的参考图像处理应用。其目的是了解设计的构成部分,并明确 FPGA 技术能够消除哪些方面的瓶颈或为开发人员带来其他好处。

基于 Ti180 M484 的参考设计

从概念上看,该参考设计(图 1)接收来自几个移动行业处理器接口 (MIPI) 摄像头的图像,在 LPDDR4x
中执行帧缓冲,然后将图像输出到高清多媒体接口 (HDMI) 显示器。利用一个 FPGA 夹层卡 (FMC) 和开发板上的四个 Samtec QSE接口提供摄像头输入和 HDMI 输出。

1.png

FMC 转 QSE 扩展卡与 HDMI 子卡配合使用,提供输出视频路径,而 3 个 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)内核,该内核建立在支持 MIPI 物理层 (MIPI D-PHY) 的 Titanium FPGA 输入/输出 (I/O) 之上。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 帧缓冲区读取图像信息。数据作为 AXI 流从 DMA IP输出,然后从传感器提供的 RAW 格式转换为 RGB 格式(图 2),并准备通过板载 Analog Devices 的 ADV7511 HDMI发射器输出。

2.png

借助 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状态机,也不需要会增加 BOM 的外部处理器。

集成该处理器后,还可以支持额外的 IP 与 MicroSD 卡进行通信。这能够支持可能需要存储图像以供日后分析的现实应用。

总的来说,Ti180 参考设计的架构经过优化,可实现紧凑、低成本但高性能的解决方案,使开发人员能够通过系统集成降低 BOM 成本。

参考设计的主要优点之一是可用于在定制硬件上启动应用开发,使开发人员能够利用设计的关键元素,并以此为基础进行所需的定制。这包括能够利用 Efinix 的TinyML 流程来实现运行于 FPGA 上的视觉 TinyML 应用。这既可利用 FPGA 逻辑的并行特性,又可轻松地将自定义指令添加至 RISC-V处理器中,从而能够在 FPGA 逻辑内创建加速器。

实现

正如第 1 部分所述,Efinix 架构的独特之处在于,它使用可交换逻辑和路由 (XLR)单元来提供路由和逻辑功能。像上述参考设计这样的视频系统属于逻辑和路由都很复杂的混合系统:需要大量的逻辑来实现图像处理功能,还需要广泛的路由来以所需的频率连接IP 单元。

该参考设计使用了器件内约 42% 的 XLR 单元,留下了充足的空间来添加内容,包括边缘 ML 等定制应用。

RAM数字信号处理 (DSP) 块的使用也非常高效,只使用了 640 个 DSP 块中的 4 个和 40% 的存储块(图 3)。

3.png

在器件 IO 上,LPDDR4x 的 DDR 接口用于为 Sapphire SoC 提供应用存储器以及提供图像帧缓冲区。所有器件专用的 MIPI 资源与50% 的锁相环一起使用(图 4)。
4.png

通用 I/O (GPIO) 用于提供 I²C 通信以及几个连接到 Sapphire SoC 的接口,包括 NOR FLASH、USB UARTSD卡。HSIO 用于向 ADC7511 HDMI 发射器提供高速视频输出。

采用 FPGA 进行设计的一个关键因素是,不仅要在 FPGA 中实现和拟合设计,还要能够在 FPGA内放置逻辑设计,并在路由时达到所需的时序性能。

单时钟域 FPGA 设计的时代已经一去不复返了。在 Ti180参考设计中,有几个不同的时钟,都以高频率运行。最终时序表显示了系统内时钟达到的最大频率。在此表中也可以看到时钟约束中要求的时序性能(图 5),其中 HDMI输出时钟的最大时钟频率为 148.5 MHz。

5.png

针对时钟约束的时序实现显示了 Titanium FPGA XLR 结构的潜力,因为它减少了可能的路由延迟,从而提高了设计性能(图 6)。

6.png

总结

Ti180 M484 参考设计清楚地展示了 Efinix FPGA 的能力,尤其是 Ti180。该设计利用几个独特的 I/O
结构来实现复杂的图像处理路径,支持多个传入的 MIPI 流。此图像处理系统在软核 Sapphire SoC的控制下运行,实现了该应用必需的顺序处理元素。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601670
  • HDMI
    +关注

    关注

    32

    文章

    1658

    浏览量

    151627
  • AI
    AI
    +关注

    关注

    87

    文章

    30072

    浏览量

    268337
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97159
  • ML
    ML
    +关注

    关注

    0

    文章

    144

    浏览量

    34597
收藏 人收藏

    评论

    相关推荐

    FPGA的B超成像系统图像采集的原理和实现

    FPGA的B超成像系统图像采集的原理和实现 1、引言 医学超声诊断成像技术大多数采用超声脉冲回波法,即利用探头产生超声波进入人体,由人体
    发表于 04-21 10:02 1531次阅读
    <b class='flag-5'>FPGA</b>的B超<b class='flag-5'>成像</b>系统<b class='flag-5'>图像</b><b class='flag-5'>采集</b>的原理和实现

    基于FPGA的实时视频图像采集处理系统

    设计了一种基于FPGA的实时视频图像采集处理电路系统。采用FPGA作为整个系统的控制和图像数据
    发表于 02-10 02:43 2w次阅读
    基于<b class='flag-5'>FPGA</b>的实时视频<b class='flag-5'>图像</b><b class='flag-5'>采集</b><b class='flag-5'>处理</b>系统

    为什么以及如何使用 Efinix FPGA 进行 AI/ML 成像 1 部分:入门

    编者按:FPGA 架构的新方法带来了更细粒度的控制和更大的灵活性,以满足机器学习 (ML) 和人工智能 (AI) 的需求。这个由两部分组成的系列的
    的头像 发表于 04-24 14:49 9094次阅读
    为什么<b class='flag-5'>以及</b>如何使用 <b class='flag-5'>Efinix</b> <b class='flag-5'>FPGA</b> 进行 <b class='flag-5'>AI</b>/<b class='flag-5'>ML</b> <b class='flag-5'>成像</b> — <b class='flag-5'>第</b> 1 <b class='flag-5'>部分</b>:入门

    为什么以及如何将 Efinix FPGA 用于 AI/ML 成像 1 部分:入门指南

    Efinix 的一款此类架构,以及如何借助开发板快速入门。 2 部分讨论了开发板与外部器件和外设(如摄像头)的连接。 从工业控制和安全到
    的头像 发表于 10-03 14:45 714次阅读
    为什么<b class='flag-5'>以及</b><b class='flag-5'>如何将</b> <b class='flag-5'>Efinix</b> <b class='flag-5'>FPGA</b> <b class='flag-5'>用于</b> <b class='flag-5'>AI</b>/<b class='flag-5'>ML</b> <b class='flag-5'>成像</b> — <b class='flag-5'>第</b> 1 <b class='flag-5'>部分</b>:入门指南

    新冒出来的Efinix会革掉FPGA的命么?

    具有专用功能的每个电路板格(这些电路板格被称为可交换逻辑和路由处理器)的基础上,每一个电路板格都可以根据特定目的被编程。颠覆了过去FPGA的基本架构。也就是说,Efinix的新FPGA
    发表于 11-01 20:08

    FPGA图像缓存部分电路是怎么写的

    FPGA 采集到的图像数据保存到缓存中,为后端对图像的进一步处理提供数据。下面提供一种
    发表于 12-10 09:54

    如何实现视频采集与DVI成像设计?

    视频采集是进行图像及图形处理的第一步,目前视频采集系统一般由FPGA和DSP组成,FPGA作为视
    发表于 08-14 07:17

    如何在ML403 FPGA开发板上实现图像处理

    我正在尝试在ML403 FPGA开发板上实现图像处理。我知道如何进行图像处理但是,我很困惑
    发表于 11-07 09:20

    【HarmonyOS HiSpark AI Camera】AI图像开发

    夜间成效效果比较差,影响模型的推理识别,影响识别效果。目前在调研其它硬件配套比较完善的AI识别硬件方案,看是否能运用到实际项目当中。项目计划①根据文档资料,调通摄像头采集以及AI神经网
    发表于 09-25 10:11

    基于FPGA的远程图像采集系统设计

    基于FPGA的远程图像采集系统设计 图像信息的获取和传输是图像处理系统的重要组成
    发表于 11-23 21:03 1254次阅读
    基于<b class='flag-5'>FPGA</b>的远程<b class='flag-5'>图像</b><b class='flag-5'>采集</b>系统设计

    基于FPGA的网络图像采集处理系统设计

    本文介绍了一种基于FPGA的网络图像处理系统设计和实现方法。系统主要包括图像采集模块、RAM控制模块、JPEG编码器3
    发表于 02-08 14:41 1897次阅读
    基于<b class='flag-5'>FPGA</b>的网络<b class='flag-5'>图像</b><b class='flag-5'>采集</b><b class='flag-5'>处理</b>系统设计

    基于FPGA图像采集处理

    基于FPGA图像采集处理,是一个适合初学者学习的书籍。 内容详细完整。
    发表于 03-04 15:48 50次下载

    基于FPGA与USB的CMOS图像获取与采集系统设计

    实现了基于FPGA与USB的CMOS图像获取与采集系统的设计。介绍了成像系统的结构、CMOS图像获取时序的VHDL程序实现、包含
    发表于 09-22 16:53 23次下载

    使用FPGA实现激光散射图像采集卡及图像处理装置的技术详细说明

    本发明涉及基于FPGA的激光散射图像采集以及基于FPGA的激光散射图像
    发表于 11-22 08:00 2次下载
    使用<b class='flag-5'>FPGA</b>实现激光散射<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡及<b class='flag-5'>图像</b><b class='flag-5'>处理</b>装置的技术详细说明

    利用FPGA设计基于LVDS的图像数据采集传输系统

    点击上方 蓝字 关注我们 引言 图像信息的获取和传输是图像处理系统的重要组成部分,直接影响图像处理
    的头像 发表于 09-28 10:35 1689次阅读