嵌入式视觉的概念及关键因素
用 FPGA 或 All Programmable SoC 方案时,将这些框架与 HLS 结合使用,能够高效开发出嵌入式视觉应用,并通过硬件在闭环中快速演示。
图像经过处理流水线后,数据从系统的输出方式也很重要,我们有三种选择。
· 利用视频图形阵列 (VGA)、高清多媒体接口 (HDMI)、串行数字接口 (SDI) 或 DisplayPort 等标准将图像输出到显示器。很多电动车采用触摸式显示屏对系统进行控制和配置。
· 将图像或从图像中提取的信息传送到另一个系统,该系统像云处理应用那样使用图像或提取出的信息
· 将图像存储在非易失存储介质中,供以后访问。
对于绝大多数方式而言,在完成成像链后,我们都需要确定图像格式化方式,以便使用。此时,我们需要决定是否使用诸如 H.264(MPEG-4 Part 10 高级视频编码)或 H.265(高效率视频编码)等行业标准图像/视频压缩算法对图像进行编码,这些实现方案通常称为编解码器。编解码器能提高通信和网络带宽的使用效率,或降低实现高保真度所需的存储空间,因为编码通常存在较大失真[2]。如果因使用编解码器导致失真度无法接受,还可以按原始格式发送和存储图像,或者以无损格式进行编码。
大多数编解码器所使用的色彩空间都与图像传感器输出的色彩空间(前提是系统使用彩色器件)不同。嵌入式视觉中常用的色彩空间是:
· 红、绿、蓝 — 包含 RGB 信息作为图像传感器的输出,常用作 VGA 等简单接口的输出
· YUV — 包含亮度 (Y) 和色度 (U 和 V),该色彩空间用于大多数编解码器和一些显示标准。常用的 YUV 格式为 YUV4:4:4 和 YUV4:2:2。两种格式的区别在于:4:4:4 格式下,每像素由 8 位表示,得到 24 位像素。在 4:2:2 格式下,U 值和 V 值在像素之间共享,得到 16 位像素,可节省存储空间。
另一个对图像处理链和 SWAP-C 具有很大影响的决策是:大部分图像处理链应该在哪实现:
· 在边缘,即在嵌入式视觉系统之内。这样会提高系统的功耗和处理/存储要求,但能够实现更快的响应。在边缘处理将在大部分嵌入式应用(例如高级驾驶员辅助、机器视觉等)中成为主导。
· 在云中,这需要嵌入式视觉系统捕获图像,并且利用网络技术将图像发送到云。可在云中处理的典型应用包括医疗成像或科研应用。这类应用中,处理非常密集,且不需要实时结果。
为实现处理链,处于嵌入式视觉系统核心的处理内核不仅要能控制所选的图像传感器,还要能接收和实现图像处理流水线,并通过指定网络基础设施传送图像或发送到选定的显示器。考虑到这些严苛要求,因此经常要选择 FPGA,或者越来越多的情况下需要使用 All Programmable 片上系统,例如 Zynq 器件。
Zynq 器件将两个高性能 ARM A9 处理器与 FPGA 架构相结合。这样使得处理系统 (PS) 可用来通过 GigE、PCIe 或 CAN 等接口与主机系统通信,同时执行系统的一般管理和日常事务。器件的另一半,即可编程逻辑 (PL) 可用来接收和处理图像,充分利用 FPGA 架构的并行处理特性。如果要求通过网络基础设施传送图像,那么可使用 Zynq 中的直接存储器访问 (DMA) 控制器高效地将图像数据从 PL 移动到 PS DDR 存储器。图像到了 PS DDR 存储器内,可利用所选传输介质的 DMA 控制器进一步访问。
当然,一旦图像处在 PS DDR,高性能 A9 处理器也可提供进一步的处理操作。Zynq 架构的特点在于还可将处理后的图像从 PS DDR 移回 PL 中的图像流水线。
传感器融合
很多嵌入式视觉系统还要求能够集成更多传感器数据以更好地感知环境。这包括使用很多同类传感器(同类传感器融合)扩大视场,例如高级驾驶员辅助系统的全景功能;或者整合多个不同类型的传感器(异构传感器融合)提供可见光谱下无法看到的视觉内容,例如在常规图像传感器数据上叠加红外信息。
很多情况下,需要将嵌入式视觉应用的输出与其他传感器数据进行融合,使产生的图像包含多个不同传感器的信息。最简单的传感器融合应用是将不同频谱的图像相结
- CEVA-CV:实现嵌入式视觉应用(01-18)
- 高性能DSP的嵌入式视觉应用:借机器一双慧眼(03-05)
- ADI技术市场经理畅谈嵌入式系统发展(02-26)
- 基于DSP的自动避障小车(04-05)
- 双口RAM在DSP与ICCD通信系统中的应用(02-09)
- 基于单片机的线阵CCD实时检测系统的开发(03-28)