DAC2022|Eventor:基于单目事件相机的立体视觉高效能FPGA加速器

网络交换FPGA 2022-07-22 21:23
本文介绍我们最近一项发表在DAC 2022会议上的工作《Eventor: An Efficient Event-Based Monocular Multi-View Stereo Accelerator on FPGA Platform》

Paper: https://arxiv.org/abs/2203.15439

Part 1

摘要

事件相机(Event Camera)是一种生物启发式的新型视觉传感器,也被称作动态视觉传感器(DVS,Dynamic Vision Sensor),它根据外部场景亮度的动态变化进行采样,具有独特的异步性和输出数据的稀疏性。由于其低延迟、低功耗、高动态范围、低数据冗余等优点,事件相机在小型移动终端的计算机视觉算法部署上具有广阔应用前景。基于单目事件相机的立体视觉算法(Event-based Monocular Multi-view Stereo, EMVS)利用一个运动轨迹已知的事件相机所产生的事件流,估计观测场景的半稠密三维空间结构,是基于单目事件相机的SLAM系统的重要组成部分,其运行效率直接关系到系统整体的性能表现。然而,若想在计算资源与电源功率均受限的嵌入式平台上部署EMVS算法并实时运行,目前的通用处理器则难以满足需求。


为了解决此问题,我们采取软硬件协同优化策略,提出了一种基于单目事件相机的立体视觉高效能FPGA加速器:Eventor。Eventor配备有高度并行化且完全流水化的FPGA硬件加速模块,用于加速EMVS算法中最关键且耗时的部分;此外,Eventor还集成了一个嵌入式ARM处理器用于处理算法的其他部分,并驱动和调度FPGA加速模块。同时,我们使用算法重构、近似计算和混合精度数据量化等策略,对Eventor所搭载的EMVS软件算法进行了优化,使其对硬件更加友好。最终实现的实验评估结果表明,运行EMVS算法时,Eventor的性能功耗比可以达到 Intel i5 CPU 的24倍,满足了在嵌入式平台上低功耗实时运行的要求。


Part 2

研究背景

事件相机

事件相机是近年来新兴的一种生物启发式视觉传感器,具备类脑感知的属性。不同于传统相机以帧为单位按固定的频率采集图像,事件相机的每个感光单元异步地测量每个像素接受光照的亮度变化。当一个像素位置发生的亮度变化超过既定的阈值时,会在当前位置触发一个“事件”(event),每个事件由对应亮度变化的像素位置、时间戳和极性三部分信息编码组成:

事件相机将其捕捉到的亮度变化以事件流的格式输出。


图1 事件相机实物与原理示意图[1]

由于事件相机根据外部场景亮度的动态变化进行采样而非在内部时钟控制下以固定频率采样,因此与传统相机相比,事件相机具有独特的异步性,在获取视觉信息的方式上存在范式的转变。同时,因为只有捕捉到亮度变化的像素会产生数据输出,相比于按固定帧率输出完整稠密图像的传统相机,事件相机输出的事件流具有独特的稀疏性;并且在场景光照条件不变的情况下,事件相机会天然地捕捉与其存在相对运动的物体的边缘。


图2 事件相机与传统相机的输出对比示意图[2]


事件相机具有高时间分辨率和低延迟、高动态范围、低能耗和低数据冗余等特点,在机器人、便携设备等平台上,以及在处理高速、高动态光照渲染(High Dynamic Range, HDR)任务时具有很高的应用潜力。


图3 事件相机与传统相机观测现实场景的输出对比[2]


基于单目事件相机的立体视觉算法(EMVS)

立体视觉算法(Multi-view Stereo, MVS)的任务可以概括为“给定一组二维照片,在相机观测位置、场景光照条件和物体表面材料已知的条件下,创建照片中内容对应的三维模型”。而基于单目事件相机的立体视觉算法(EMVS)就是使用一个单目事件相机完成上述任务。只不过由于事件相机并不输出完整的二维图片而是持续输出事件流,所以不同于传统MVS算法可以得到稠密的场景重建模型,EMVS算法得到的重建结果通常是半稠密的。


图4 EMVS算法示意图


图5 一个典型的EMVS系统对现实场景进行重建的效果演示[2]


问题与挑战:EMVS在边缘嵌入式设备上的部署

为了发掘EMVS在机器人、无人机等小型终端设备上的应用潜力,我们需要考虑算法在嵌入式平台上的部署;然而,想要实现该目标会面临诸多困难与挑战:

  1. 算法特点对系统计算速度的要求:EMVS算法通常作为SLAM算法的后端建图部分,为了使系统整体实现实时运行,并充分发挥事件相机低延迟的优势,EMVS功能模块的事件处理速率需要满足实时性要求(在使用分辨率为240*180的DAVIS事件相机时,通常认为事件处理速率应高于1.8 M events/s);而EMVS算法属于计算密集型算法,若想达到目标计算速度,则对算法部署平台的计算性能有较高要求,目前已有的EMVS算法即使是在桌面级CPU/GPU上的运行速度也很难满足要求。

  2. 算法部署平台对系统资源与功耗的限制:嵌入式平台体积较小,计算资源和电源功耗十分有限,因此需要高能效的处理器(即具有较高的性能功耗比);桌面级CPU/GPU作为目前已有的EMVS算法部署平台,其面积和功耗均超出嵌入式平台的承载能力;而嵌入式通用处理器(如ARM CPU)虽然满足低功耗要求,但其计算性能十分有限,无法实时运行EMVS。

  3. 新计算范式对新加速器架构的需求:由于事件相机的输出与传统相机存在较大差异,基于事件数据的EMVS算法在传统MVS算法的基础上引入了全新的计算范式;目前已有的工作主要集中在算法层面的研究,缺少面向硬件及系统层面的优化;同时已有的针对传统MVS算法的硬件加速器也因为计算范式的不同,难以直接应用于EMVS算法的加速。


Part 3

Evetor加速器:软硬件协同优化


基于上文提到的问题与挑战,我们采取软硬件协同优化的策略,针对EMVS算法设计了高效能FPGA硬件加速器——Eventor

基础算法框架

Eventor的算法框架改进于一种目前已有的EMVS算法,由Henri Rebecq等人提出,其核心为一种基于事件的空间扫描方法(Event-based Space-Sweep Method)。


该EMVS算法首先将单目事件相机输出的事件流划分为若干事件帧(Event Frame),每一事件帧包含一定数量的事件,并且对应一个已知的相机位姿。算法以关键帧对应的相机坐标系为基准,对观测空间进行划分,创建离散化空间体素网格;随后将事件反向投影到观测空间中,统计每个空间体素网格中通过的反向投影射线数量;最后通过寻找射线密度局部最大值所在的网格,来估计空间中存在三维实体的位置。


存储观测空间各个体素网格中通过射线数量的数据结构被称为DSI (Disparity Space Image).


该算法与其他EMVS算法相比,有着相对较高的内部并行性、较低的计算冗余度和耦合性,最适合作为EMVS在嵌入式平台上部署的基础算法。为了确定限制算法整体性能的瓶颈,我们在DAVIS事件相机数据集上对目标算法进行了测试分析,结果表明“事件反向投影”(Event Back-Projection)和“体素化空间射线计数”(Volumetric Ray-Counting)占据了85%以上的算法运行时间。因此我们设计了FPGA硬件加速模块,主要对这两个环节进行加速。

图6 Eventor采用的基础EMVS算法流程图

图7 基于事件的空间扫描方法的动画演示


软件算法优化

为了使目标EMVS算法对硬件加速更加友好,我们首先对其进行了软件算法方面的优化。我们采用了三种优化策略:算法重构、近似计算和混合精度数据量化


在进行优化之前,我们对“事件反向投影”“体素化空间射线计数”这两个关键环节进行了划分,将其分解为若干子任务。“事件反向投影”可以分为“向基准平面的事件反向投影”(Canonical Event Back-Projection,简称为基准投影)和“成比例的事件反向投影”(Proportional Event Back-Projection,简称为比例投影)及对应的参数计算环节。EMVS算法先将各事件帧中的事件反向投影到观测空间中的一个基准平面上,再使用基准平面上的投影坐标按照一种近似的比例运算关系将事件投影至空间的各个深度,遵循这种两步投影的方式将事件反向投影到观测空间中。


  • 算法重构:我们调整了“事件去畸变矫正”“计算比例投影参数”这两个环节在算法中所处的阶段。该策略可以优化算法的访存行为、有效提高算法的访存效率,并且在后续的硬件加速器设计中可以减少加速模块与外部存储空间之间的数据传输次数。同时,经过算法重构,我们使计算最为密集的四个子任务在流程中相邻,以便使用FPGA加速模块进行流水化加速。


图8 Eventor对原始EMVS算法框架进行重构的示意图


  • 近似计算:在“体素化空间射线计数”环节,算法会统计通过每个空间体素网格(也即DSI网格)的反向投影射线数量(这一过程也被称为对DSI网格进行“投票”)。可选的投票方法有双线性投票(事件在深度平面上的每个投影坐标会更新与其邻近的4个网格)和最邻近投票(每个投影坐标只更新与其最邻近的1个网格)。其中,最邻近投票策略具有更低的计算复杂度和对硬件更加友好的存储访问模式,并且计算精度上的损失对EMVS系统而言属于可接受的范围内,因此我们选取最邻近投票的策略作为一种近似计算的方法,优化该部分的性能。

图9 两种DSI投票方法的示意图以及精度对比


  • 混合精度数据量化:原始EMVS算法框架中参与运算的数据均为浮点型,我们采取数据量化策略将其量化为定点型;并且对于不同计算阶段的事件坐标,我们采取混合精度量化的方式来保证计算准确度。通过数据量化,在后续的加速器设计与实现中,我们节省了高达50%的存储空间和数据传输带宽,并且FPGA加速模块中的计算逻辑也得以简化。在计算准确度方面,量化后的EMVS框架与原始框架的误差几乎可以忽略。
  • 表格中列出的数据含义从上至下依次为:输入事件原始像素坐标;事件经过基准投影后的投影坐标;事件经过比例投影后的投影坐标;基准投影计算中使用的单应矩阵参数;比例投影计算中使用的参数;各个DSI网格中通过的反向投影射线数量。

图10 Eventor采取的混合精度数据量化策略和量化前后算法精度对比


硬件加速器设计

基于优化后的EMVS算法框架,我们设计并实现了Eventor加速器的硬件部分。


为了设计专用计算硬件来有效地加速EMVS算法,我们首先分析了EMVS算法中可以被利用的计算并行性,并以此指导Eventor的硬件架构设计。EMVS的计算并行性可以按照粒度从细到粗划分为三个层次:


  • 算子层次的并行性:可以通过同时部署多个ALU对矩阵和向量的运算进行加速,如乘法器阵列、加法器树等;

  • 事件层次的并行性:不同事件在参与运算时相互间不存在数据依赖,因此可以被并行处理,且计算过程可以完全流水化;

  • DSI层次的并行性:DSI网格数据之间不存在相互依赖,因此同一事件向不同DSI网格的反向投影与投票等操作可以被并行处理。


图11 EMVS算法中三个层次并行性的示意图


Eventor是一个ARM-FPGA异构加速器,架构如图12所示。其顶层可分为处理器系统 (Processing System, PS)、可编程逻辑 (Programmable Logic, PL)和外部存储空间 (External Memory) 三部分。处理器系统部分部署有一个嵌入式ARM处理器、DMA单元和DRAM控制器;可编程逻辑部分部署有两个FPGA计算加速模块。


Eventor开始工作时,ARM处理器配置DMA单元,将输入数据从DRAM搬运到FPGA加速模块的输入缓存中;随后ARM处理器配置并启动FPGA加速模块;FPGA加速模块开始计算并更新存储在DRAM中的DSI数据。


Eventor配备有两个FPGA计算加速模块:基准投影模块(Canonical Projection Module) 和比例投影模块 (Proportional Projection Module)。前者负责”向基准平面的事件反向投影“任务,后者负责”成比例的事件反向投影“和“体素化空间射线计数”任务。


基准投影模块:

    • 缓存:输入缓存,存储输入事件坐标和预计算参数;中间缓存,存储事件基准投影后的坐标;采用乒乓缓存结构,减少输入输出延迟;

    • 处理单元 (PE_Z0) :配有矩阵向量乘加单元(Matrix-Vector Multiply-Accumulate Units)和归一化函数单元;

    • 控制器:有限状态机控制器,被配置完毕并启动后,无需ARM再进行控制;

    • 利用并行性:算子层次的并行性事件层次的并行性


比例投影模块:

    • 缓存:输出缓存,存储DSI投票地址(即需要更新的DSI网格坐标);采用乒乓缓存结构;

    • 数据分配单元 (Data Allocator):将输入缓存中的比例投影参数和中间缓存中的事件投影坐标分配给各个处理单元;

    • 处理单元 (PE_Zi):配有标量乘加单元 (Scalar Multiply-Accumulate Units) ,最邻近网格搜索单元,投票地址生成单元;并行部署多组,同时计算一个事件对多个DSI深度层的反向投影与投票;

    • 投票执行单元 (Vote Execute Unit):使用输出缓存中的DSI投票地址,更新DRAM中存储的DSI数据;

    • 控制器:有限状态机控制器,被配置完毕并启动后,无需ARM再进行控制;

    • 利用并行性:算子层次的并行性、事件层次的并行性、DSI层次的并行性。


图12 Eventor加速器的硬件架构


Eventor的基准投影模块和比例投影模块按照流水化的模式进行工作。对于输入的普通事件帧,两个加速模块同时工作,无需等待流水线清空。此时每帧的实际处理时间等于”成比例的事件反向投影“和“体素化空间射线计数”两个任务的处理时间,而”向基准平面的事件反向投影“的处理时间被覆盖。这种流水化的工作流程同样利用了事件层次的并行性

图13 基准投影模块和比例投影模块的流水化工作流程


Part 4

实验验证与分析


我们在FPGA异构开发平台上实现了Eventor,并使用DAVIS事件相机数据集对Eventor的计算准确度和效能表现进行了评估。

实验设置

硬件实现:

    • FPGA异构开发平台:Xilinx Zynq XC7Z020 SoC

    • Eventor时钟频率:FPGA加速模块为130MHz,DDR为533MHz


数据集:

    • DAVIS事件相机数据集:[Mueggler et al., The event-camera dataset and simulator: Event-based data for pose estimation, visual odometry, and SLAM. IJRR’17.]

    • 事件相机分辨率:240×180

    • 使用的事件相机模拟器生成样例:

      simulation_3planessimulation_3walls

    • 使用的事件相机实拍样例:slider_closeslider_far

图14 实验使用的 Xilinx Zynq XC7Z020 SoC 和 Eventor 的开发板资源使用情况

计算准确度分析

我们使用DAVIS数据集中的四个样例(包括两个事件相机实拍样例和两个事件相机模拟器生成的样例)对我们优化后的硬件友好型EMVS框架进行了计算准确度测试,测试指标为平均深度估计误差。图15为原始EMVS框架和Eventor采取的改良后的EMVS框架的计算误差对比。实验结果表明,我们的EMVS框架对所有样例的计算误差均低于5%,且与原始框架相比最大的误差值仅有1.78%;在部分场景中,我们的EMVS框架拥有更高的精度。上述结果可以证明我们的EMVS框架的计算准确度满足实际应用要求。

图15 原始EMVS框架和Eventor采取的改良EMVS框架的计算准确度对比


图16为使用我们的改良EMVS框架对simulation_3planes样例进行立体视觉重建的效果。该样例通过事件相机模拟器生成,观测场景为三个深度不同的平面。重建得到参考视点的置信图(统计参考视点各视线上的光线密度)、半稠密遮罩图(记录被物体边缘触发的视线位置)和最终重建得到的半稠密深度图如图所示。

图16 Eventor采取的改良EMVS框架对simulation_3planes样例进行立体视觉重建的效果展示

Eventor效能评估

我们以原始EMVS算法框架在Intel i5-7300HQ CPU上的实现作为基准,对Eventor的效能(包括计算性能、系统功耗和系统的性能功耗比)进行评估。下表列出了二者在算法运行时间事件处理速率系统功耗三方面的数据对比。可以看到与i5 CPU相比,Eventor的事件处理速率并无显著优势,但在系统功耗上Eventor远低于i5 CPU;考虑系统整体的性能功耗比,Eventor是i5 CPU的24倍以上。同时Eventor的事件处理速率高于1.8 M events/s, 满足EMVS算法实际运行时的实时性要求。

综上所述,Eventor的整体表现满足EMVS算法在资源和功率受限的嵌入式平台上实时运行的要求。


Part 5

总结


本工作提出了一种高效能的EMVS加速器——Eventor,并且在Zynq FPGA平台上完成了实现和测试。我们采取软硬件协同优化的策略来优化系统整体效能,最终实现的Eventor与Intel i5 CPU相比,性能功耗比提高了24倍,满足EMVS算法在资源和功率受限的嵌入式平台上实时运行的要求。


部分图片与演示引用自

[1] Gallego G, Delbrück T, Orchard G, et al. Event-based vision: A survey. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 44(1): 154-180.

[2] Rebecq H, Gallego G, Mueggler E, et al. EMVS: Event-based multi-view stereo - 3D reconstruction with an event camera in real-time. IJCV’18.


以下为本工作在DAC 2022会议上的Talk Video:



李明峻

mingjun@buaa.edu.cn

北京航空航天大学计算机学院

ACT研究所智能计算课题组


研究兴趣:

视觉SLAM、硬件加速器设计、软硬件协同优化


作者 / 李明峻

编辑 / 李明峻

审核 / 杨建磊


















网络交换FPGA 秉承“工匠”精神,专注网络与交换领域FPGA开发与芯片实现,记录、分享与交流技术上的点点滴滴,与大家共同进步成长。
评论 (0)
  • 在科技飞速发展的当下,机器人领域的每一次突破都能成为大众瞩目的焦点。这不,全球首届人形机器人半程马拉松比赛刚落下帷幕,赛场上的 “小插曲” 就掀起了一阵网络热潮。4月19日,北京亦庄的赛道上热闹非凡,全球首届人形机器人半程马拉松在这里激情开跑。20支机器人队伍带着各自的“参赛选手”,踏上了这21.0975公里的挑战之路。这场比赛可不简单,它将机器人放置于真实且复杂的动态路况与环境中,对机器人在运动控制、环境感知和能源管理等方面的核心技术能力进行了全方位的检验。不仅要应对长距离带来的续航挑战,还要
    用户1742991715177 2025-04-22 20:42 101浏览
  •   陆地边防事件紧急处置系统平台解析   北京华盛恒辉陆地边防事件紧急处置系统平台是整合监测、预警、指挥等功能的智能化综合系统,致力于增强边防安全管控能力,快速响应各类突发事件。以下从系统架构、核心功能、技术支撑、应用场景及发展趋势展开全面解读。   应用案例   目前,已有多个陆地边防事件紧急处置系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润陆地边防事件紧急处置系统。这些成功案例为陆地边防事件紧急处置系统的推广和应用提供了有力支持。   一、系统架构   感知层:部
    华盛恒辉l58ll334744 2025-04-23 11:22 119浏览
  • 一、技术背景与市场机遇在智能家居高速发展的今天,用户对家电设备的安全性、智能化及能效表现提出更高要求。传统取暖器因缺乏智能感知功能,存在能源浪费、安全隐患等痛点。WTL580-C01微波雷达感应模块的诞生,为取暖设备智能化升级提供了创新解决方案。该模块凭借微波雷达技术优势,在精准测距、环境适应、能耗控制等方面实现突破,成为智能取暖器领域的核心技术组件。二、核心技术原理本模块采用多普勒效应微波雷达技术,通过24GHz高频微波信号的发射-接收机制,实现毫米级动作识别和精准测距。当人体进入4-5米有效
    广州唯创电子 2025-04-23 08:41 140浏览
  • 一、行业背景与市场需求高血压作为全球发病率最高的慢性病之一,其早期监测与管理已成为公共卫生领域的重要课题。世界卫生组织数据显示,全球超13亿人受高血压困扰,且患者群体呈现年轻化趋势。传统血压计因功能单一、数据孤立等缺陷,难以满足现代健康管理的需求。在此背景下,集语音播报、蓝牙传输、电量检测于一体的智能血压计应运而生,通过技术创新实现“测量-分析-管理”全流程智能化,成为慢性病管理的核心终端设备。二、技术架构与核心功能智能血压计以电子血压测量技术为基础,融合物联网、AI算法及语音交互技术,构建起多
    广州唯创电子 2025-04-23 09:06 155浏览
  •   后勤实验仿真系统平台深度解析   北京华盛恒辉后勤实验仿真系统平台依托计算机仿真技术,是对后勤保障全流程进行模拟、分析与优化的综合性工具。通过搭建虚拟场景,模拟资源调配、物资运输等环节,为后勤决策提供数据支撑,广泛应用于军事、应急管理等领域。   应用案例   目前,已有多个后勤实验仿真系统平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润后勤实验仿真系统平台。这些成功案例为后勤实验仿真系统平台的推广和应用提供了有力支持。   一、核心功能   (一)后勤资源模拟
    华盛恒辉l58ll334744 2025-04-23 15:39 122浏览
  • 前言本文主要演示基于TL3576-MiniEVM评估板HDMI OUT、DP 1.4和MIPI的多屏同显、异显方案,适用开发环境如下。Windows开发环境:Windows 7 64bit、Windows 10 64bitLinux开发环境:VMware16.2.5、Ubuntu22.04.5 64bitU-Boot:U-Boot-2017.09Kernel:Linux-6.1.115LinuxSDK:LinuxSDK-[版本号](基于rk3576_linux6.1_release_v
    Tronlong 2025-04-23 13:59 111浏览
  •   电磁频谱数据综合管理平台系统解析   一、系统定义与目标   北京华盛恒辉电磁频谱数据综合管理平台融合无线传感器、软件定义电台等前沿技术,是实现无线电频谱资源全流程管理的复杂系统。其核心目标包括:优化频谱资源配置,满足多元通信需求;运用动态管理与频谱共享技术,提升资源利用效率;强化频谱安全监管,杜绝非法占用与干扰;为电子战提供频谱监测分析支持,辅助作战决策。   应用案例   目前,已有多个电磁频谱数据综合管理平台在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润电磁频谱数
    华盛恒辉l58ll334744 2025-04-23 16:27 153浏览
  •   无人机结构仿真与部件拆解分析系统平台解析   北京华盛恒辉无人机结构仿真与部件拆解分析系统无人机技术快速发展的当下,结构仿真与部件拆解分析系统平台成为无人机研发测试的核心工具,在优化设计、提升性能、降低成本等方面发挥关键作用。以下从功能、架构、应用、优势及趋势展开解析。   应用案例   目前,已有多个无人机结构仿真与部件拆解分析系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润无人机结构仿真与部件拆解分析系统。这些成功案例为无人机结构仿真与部件拆解分析系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-23 15:00 164浏览
  •   复杂电磁环境模拟系统平台解析   一、系统概述   北京华盛恒辉复杂电磁环境模拟系统平台是用于还原真实战场或特定场景电磁环境的综合性技术平台。该平台借助软硬件协同运作,能够产生多源、多频段、多体制的电磁信号,并融合空间、时间、频谱等参数,构建高逼真度的电磁环境,为电子对抗、通信、雷达等系统的研发、测试、训练及评估工作提供重要支持。   应用案例   目前,已有多个复杂电磁环境模拟系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润复杂电磁环境模拟系统。这些成功案例为复杂电
    华盛恒辉l58ll334744 2025-04-23 10:29 166浏览
  • 故障现象一辆2016款奔驰C200L车,搭载274 920发动机,累计行驶里程约为13万km。该车组合仪表上的防侧滑故障灯、转向助力故障灯、安全气囊故障灯等偶尔异常点亮,且此时将挡位置于R挡,中控显示屏提示“后视摄像头不可用”,无法显示倒车影像。 故障诊断用故障检测仪检测,发现多个控制单元中均存储有通信类故障代码(图1),其中故障代码“U015587 与仪表盘的通信存在故障。信息缺失”出现的频次较高。 图1 存储的故障代码1而组合仪表中存储有故障代码“U006488 与用户界
    虹科Pico汽车示波器 2025-04-23 11:22 89浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦