掌桥专利:专业的专利平台
掌桥专利
首页

一种基于单目事件相机立体视觉的异构硬件加速系统

文献发布时间:2024-04-18 19:52:40


一种基于单目事件相机立体视觉的异构硬件加速系统

技术领域

本发明涉及数据处理技术领域,具体涉及一种基于单目事件相机立体视觉的异构硬件加速系统。

背景技术

事件相机是近年来新兴的一种生物启发式视觉传感器。传统相机以帧为单位按固定的频率采集图像;而事件相机的每个感光单元异步地测量每个像素接受光照的亮度变化。当一个像素位置发生的亮度变化超过既定的阈值时,会在当前位置触发一个“事件”,每个事件由对应亮度变化的时间戳、像素位置和极性三部分信息编码组成。事件相机将其捕捉到的亮度变化以事件流的格式输出。与传统相机相比,事件相机具有高时间分辨率和低延迟、高动态范围、低能耗和低数据量等特点,在机器人、便携设备等平台上,以及在处理高速、高动态光照渲染任务时具有很高的应用潜力。

MVS(立体视觉)是一种计算机视觉技术,其主要任务是:给定一组二维照片,在材料、观测位置和光照条件已知的条件下,创建照片中场景和物体对应的三维模型。EMVS(基于单目事件相机的立体视觉)就是使用单目事件相机作为视觉传感器的立体视觉技术。EMVS在诸如无人驾驶、航空航天、遥感测绘、增强现实等诸多领域有着很强的应用潜力,并且是基于单目事件相机的SLAM系统的重要组成部分。对于一个基于单目事件相机的SLAM系统,EMVS功能模块的性能对系统整体性能有很大的影响。

得益于事件相机具有的低功耗、低响应延迟等优点,基于事件相机的EMVS算法很适合部署在无人机、机器人等平台上,用于在终端实现环境感知与地图构建等任务。然而,在嵌入式平台上部署EMVS算法存在诸多技术上的问题与挑战,包括:①EMVS属于计算密集型算法,若想要在终端实现实时运行,则对系统的计算性能有较高要求;②目前的嵌入式平台受限于电源功率、电池容量和计算资源,搭载的通用处理器计算性能较弱,难以实时运行EMVS算法;③由于事件相机的输出数据格式与传统相机不同,目前已有的基于MVS算法的硬件加速器无法用于加速EMVS算法。

发明内容

针对现有技术中的问题,本发明实施例提供一种基于单目事件相机立体视觉的异构硬件加速系统,能够至少部分地解决现有技术中存在的问题。

一方面,本发明提出一种基于单目事件相机立体视觉的异构硬件加速系统,包括:

事件相机传感器模块、处理器系统、FPGA硬件加速模块和外部存储空间;所述处理器系统分别与所述事件相机传感器模块、所述FPGA硬件加速模块和所述外部存储空间相连接;其中:

所述事件相机传感器模块配备有单目事件相机,用于采集场景信息并提供原始事件数据;

所述处理器系统用于接收所述原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数、驱动和调度所述FPGA硬件加速模块、访问所述外部存储空间并进行数据传输;

所述FPGA硬件加速模块用于对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;

所述外部存储空间用于存储输入事件数据和DSI数据。

其中,所述处理器系统包括彼此相连的通用处理器和控制存储单元;所述控制存储单元包括彼此相连的DMA单元和DRAM控制器;其中:

所述通用处理器用于处理所述原始事件坐标和所述通用处理器预计算好的参数;

所述DMA单元用于进行处理器内存与所述外部存储空间之间、以及所述外部存储空间与所述FPGA硬件加速模块的输入缓存之间的数据传输;

所述DRAM控制器用于接收所述DMA单元和所述FPGA加速模块发出的数据传输控制信号,然后控制所述外部存储空间进行相应的数据读取与写入操作。

其中,所述FPGA硬件加速模块包括彼此相连的基准投影模块和比例投影模块;其中:

所述基准投影模块用于将所述原始事件数据向观测空间中的基准平面进行反向投影,得到事件在基准平面上的反向投影坐标;

所述比例投影模块用于将事件在基准平面上的反向投影坐标投影至观测空间的各个深度,得到观测空间中的反向投影射线分布;

统计每个空间体素网格中通过的反向投影射线数量。

其中,所述基准投影模块利用所述EMVS算法的算子层次的并行性和事件层次的并行性,实现加速所述EMVS算法的计算过程。

其中,所述比例投影模块利用所述EMVS算法的算子层次的并行性、事件层次的并行性和DSI层次的并行性,实现加速所述EMVS算法的计算过程。

其中,所述基准投影模块包括AXI总线接口、输入缓存、基准投影处理单元、中间缓存和基准投影模块控制器;其中:

所述AXI总线接口分别连接所述DMA单元和所述输入缓存,用于通过所述DMA单元将所述原始事件坐标和所述通用处理器预计算好的参数输入至所述输入缓存中;

所述输入缓存分别连接所述AXI总线接口、所述基准投影模块控制器、所述基准投影处理单元和所述比例投影模块,用于存储所述原始事件坐标和所述通用处理器预计算好的参数,接收所述基准投影模块控制器发送的控制信号,将存储数据发送至所述基准投影处理单元和所述比例投影模块;

所述基准投影处理单元分别连接所述输入缓存、所述基准投影模块控制器和所述中间缓存,用于接收所述存储数据,通过对所述存储数据进行矩阵/向量乘加计算以及归一化计算,实现将所述原始事件数据向观测空间中基准平面的反向投影计算,接收所述基准投影模块控制器发送的控制信号,将通过反向投影计算得到的事件在基准平面上的反向投影坐标输入至所述中间缓存中;

所述中间缓存分别连接所述基准投影处理单元、所述基准投影模块控制器和所述比例投影模块,用于存储事件在基准平面上的反向投影坐标,接收所述基准投影模块控制器发送的控制信号,将缓存数据发送至所述比例投影模块;

所述基准投影模块控制器通过所述通用处理器与所述处理器系统相连接,分别连接所述比例投影模块、所述输入缓存、所述基准投影处理单元和所述中间缓存,用于收发所述通用处理器的控制信号、用于收发所述比例投影模块的控制信号,以及向所述输入缓存、所述基准投影处理单元和所述中间缓存分别发送控制信号。

其中,所述比例投影模块包括中间数据分配单元、比例投影处理单元、输出缓存、DSI数据更新单元和比例投影模块控制器;其中:

所述中间数据分配单元分别通过所述输入缓存和所述中间缓存与所述基准投影模块相连接,分别连接所述比例投影模块控制器和所述比例投影处理单元,用于将所述输入缓存中的比例投影计算所需参数和所述中间缓存中的事件在基准平面上的反向投影坐标分配至所述比例投影处理单元、用于接收所述比例投影模块控制器的控制信号;

所述比例投影处理单元分别连接所述中间数据分配单元、所述比例投影模块控制器和所述输出缓存,用于进行事件从基准平面向观测空间各个深度的反向投影计算、搜索反向投影射线在各个深度穿过的DSI网格、生成DSI投票地址,用于接收所述比例投影模块控制器的控制信号,用于将所述DSI投票地址输入至所述输出缓存;

所述输出缓存分别连接所述比例投影处理单元、所述DSI数据更新单元和所述比例投影模块控制器,用于存储所述DSI投票地址,用于接收所述比例投影模块控制器的控制信号,用于传输所述DSI投票地址至所述DSI数据更新单元;

所述DSI数据更新单元通过所述DRAM控制器与所述处理器系统相连接、分别连接所述输出缓存和所述比例投影模块控制器,用于使用所述输出缓存中的DSI投票地址更新所述外部存储空间存储的DSI数据,用于接收所述比例投影模块控制器的控制信号;

所述比例投影模块控制器通过所述通用处理器与所述处理器系统相连接、通过所述基准投影模块控制器与所述基准投影模块相连接;分别连接所述中间数据分配单元、所述比例投影处理单元、所述输出缓存和所述DSI数据更新单元,用于收发所述通用处理器的控制信号,用于收发所述基准投影模块的控制信号,以及向所述中间数据分配单元、所述比例投影处理单元、所述输出缓存和所述DSI数据更新单元分别发送控制信号。

其中,所述基准投影处理单元包括彼此相连的矩阵/向量乘加单元和归一化单元;其中:

所述矩阵/向量乘加单元用于对所述存储数据进行矩阵/向量乘加计算,得到矩阵/向量乘加计算结果;

所述归一化单元用于对所述矩阵/向量乘加计算结果进行归一化计算,将归一化计算结果作为事件在基准平面上的反向投影坐标。

其中,所述比例投影处理单元包括依次相连的标量乘加单元、最邻近DSI网格搜索单元和投票地址生成单元;其中:

所述标量乘加单元用于进行事件从基准平面向观测空间各个深度的反向投影计算;

所述最邻近DSI网格搜索单元用于根据反向投影计算结果搜索反向投影射线在各个深度穿过的DSI网格;

所述投票地址生成单元用于根据反向投影射线在各个深度穿过的DSI网格的搜索结果,生成DSI投票地址。

一方面,本发明提出一种使用上述基于单目事件相机立体视觉的异构硬件加速系统的异构硬件加速方法,包括:

采集场景信息并提供原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数;

对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;

存储输入事件数据和DSI数据。

本发明实施例提供的基于单目事件相机立体视觉的异构硬件加速系统包括事件相机传感器模块、处理器系统、FPGA硬件加速模块和外部存储空间;所述处理器系统分别与所述事件相机传感器模块、所述FPGA硬件加速模块和所述外部存储空间相连接;其中:所述事件相机传感器模块配备有单目事件相机,用于采集场景信息并提供原始事件数据;所述处理器系统用于接收所述原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数、驱动和调度所述FPGA硬件加速模块、访问所述外部存储空间并进行数据传输;所述FPGA硬件加速模块用于对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;所述外部存储空间用于存储输入事件数据和DSI数据,能够提高EMVS算法的运行速度,降低系统运行功耗,提高系统性能功耗比,进而解决EMVS算法难以在功耗受限的嵌入式平台上部署并实时运行的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明一实施例提供的基于单目事件相机立体视觉的异构硬件加速系统的结构示意图。

图2是本发明另一实施例提供的基于单目事件相机立体视觉的异构硬件加速系统的结构示意图。异构硬件加速方法

图3是本发明实施例异构硬件加速方法的流程示意图。

图4是本发明实施例提供的FPGA硬件加速模块运行时的流水线示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

相关术语说明如下:

事件相机:Event Camera,一种生物启发式的新型视觉传感器;事件相机的每个感光单元异步地测量每个像素接受光照的亮度变化,将捕捉到的亮度变化以事件流的格式输出。

MVS:Multi View Stereo,即立体视觉,一种计算机视觉技术;给定一组二维照片,在材料、观测位置和光照条件已知的条件下,创建照片中场景和物体对应的三维模型。

EMVS:Event-based Monocular Multi View Stereo,即基于单目事件相机的立体视觉,使用单目事件相机作为视觉传感器的立体视觉技术。

SLAM:Simultaneous Localization And Mapping的缩写,即同时定位与地图构建;指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境模型,同时估计自己的运动。

DSI:Disparity Space Image的缩写,即视差空间图;在EMVS算法中用于表示经过体素化的观测空间以及存储空间中各位置光线密度的数据结构。

数据量化:Data Quantization,一种数据压缩方法;将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值。

FPGA:Field Programmable Gate Array的缩写,即现场可编程逻辑门阵列。

PS:Programmable System的缩写,即可编程处理器系统;在FPGA异构开发平台中表示搭载通用处理器和控制器的部分。

PL:Programmable Logic的缩写,即可编程逻辑;在FPGA异构开发平台中表示可定制FPGA计算加速模块的部分。

DRAM:Dynamic Random Access Memory的缩写,即动态随机存取存储器;通常作为FPGA等嵌入式平台存储较大量临时数据的存储媒介。

BRAM:Block Random Access Memory的缩写,即块状随机存取存储器。

DMA:Direct Memory Access的缩写,即直接存储器访问单元。

AXI:Advanced eXtensible Interface的缩写,即高级可扩展接口;是由ARM公司提出的一种总线协议。

图1是本发明一实施例提供的基于单目事件相机立体视觉的异构硬件加速系统的结构示意图,如图1所示,本发明实施例提供的基于单目事件相机立体视觉的异构硬件加速系统,包括:

事件相机传感器模块1、处理器系统2、FPGA硬件加速模块3和外部存储空间4;所述处理器系统2分别与所述事件相机传感器模块1、所述FPGA硬件加速模块3和所述外部存储空间4相连接;其中:

所述事件相机传感器模块1配备有单目事件相机,用于采集场景信息并提供原始事件数据;

所述处理器系统2用于接收所述原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数、驱动和调度所述FPGA硬件加速模块3、访问所述外部存储空间4并进行数据传输;

所述FPGA硬件加速模块3用于对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;

所述外部存储空间4用于存储输入事件数据和DSI数据。具体说明如下:

事件相机传感器模块1可以配备一个单目事件相机,用于采集场景信息并提供原始事件数据。处理器系统2包括一个嵌入式通用处理器21和控制存储单元22,用于处理EMVS算法未被加速的部分(包括上述原始事件坐标和通用处理器预计算好的参数)、驱动和调度FPGA硬件加速模块3、访问外部存储空间4并进行数据传输。FPGA硬件加速模块3包括基准投影模块31和比例投影模块32,用于对EMVS算法中计算量最大且计算耗时最多的环节(包括上述事件反向投影环节和空间射线密度统计环节)进行加速。外部存储空间可以包括DRAM,用于存储输入事件数据和DSI数据。

如图2所示,进一步地,所述处理器系统2包括彼此相连的通用处理器21和控制存储单元22;所述控制存储单元22包括彼此相连的DMA单元和DRAM控制器;其中:

所述通用处理器21用于处理所述原始事件坐标和所述通用处理器预计算好的参数;

所述DMA单元用于进行处理器内存与所述外部存储空间4之间、以及所述外部存储空间4与所述FPGA硬件加速模块3的输入缓存之间的数据传输;

所述DRAM控制器用于接收所述DMA单元和所述FPGA加速模块3发出的数据传输控制信号,然后控制所述外部存储空间4进行相应的数据读取与写入操作。

说明如下:

处理器系统2(PS)包括通用处理器21、DMA单元和DRAM控制器。其中,通用处理器21为一个嵌入式CPU(如ARM CPU),具有较低的功耗,负责处理算法中计算量较小的环节,并通过驱动程序配置DMA单元与FPGA硬件加速模块3。DMA单元的功能是进行处理器内存与外部存储空间4之间、以及外部存储空间4与FPGA硬件加速模块3的输入缓存之间的数据传输,在被通用处理器21配置完毕后便可自行完成数据传输工作,不占用通用处理器21,以此提高数据传输效率和系统整体工作效率。DRAM控制器的功能是接收DMA单元和FPGA硬件加速模块3发出的数据传输控制信号,然后控制DRAM进行相应的数据读取与写入操作。

进一步地,所述FPGA硬件加速模块3包括彼此相连的基准投影模块31和比例投影模块32;其中:

所述基准投影模块31用于将所述原始事件数据向观测空间中的基准平面进行反向投影,得到事件在基准平面上的反向投影坐标;

所述比例投影模块32用于将事件在基准平面上的反向投影坐标投影至观测空间的各个深度,得到观测空间中的反向投影射线分布;

统计每个空间体素网格中通过的反向投影射线数量。

进一步地,所述基准投影模块31利用所述EMVS算法的算子层次的并行性和事件层次的并行性,实现加速所述EMVS算法的计算过程。

进一步地,所述比例投影模块32利用所述EMVS算法的算子层次的并行性、事件层次的并行性和DSI层次的并行性,实现加速所述EMVS算法的计算过程。说明如下:

基准投影模块31:此模块的功能是将事件相机采集到的原始事件向观测空间中的一个基准平面进行反向投影,得到事件在基准平面上的反向投影坐标(简称“基准投影”)。该模块的特点是利用了EMVS算法算子层次的并行性(即可以通过同时部署多个ALU对矩阵和向量的运算进行加速,如乘法器阵列、加法器树等)和事件层次的并行性(不同事件在参与运算时相互间不存在数据依赖,因此可以被并行处理,且计算过程可以完全流水化),对算法进行加速。

比例投影模块32:此模块的功能是将事件在基准平面上的反向投影坐标按照一种近似的比例运算关系投影至观测空间的各个深度,得到观测空间中的反向投影射线分布(简称“比例投影”);然后统计每个空间体素网格中通过的反向投影射线数量,即对DSI进行投票。该模块的特点是利用了EMVS算法算子层次的并行性、事件层次的并行性和DSI层次的并行性(DSI网格数据之间不存在相互依赖,因此同一事件向不同DSI网格的反向投影与投票等操作可以被并行处理),对算法进行加速。

进一步地,所述基准投影模块31包括AXI总线接口、输入缓存、基准投影处理单元、中间缓存和基准投影模块控制器;其中:

所述AXI总线接口分别连接所述DMA单元和所述输入缓存,用于通过所述DMA单元将所述原始事件坐标和所述通用处理器预计算好的参数输入至所述输入缓存中;

所述输入缓存分别连接所述AXI总线接口、所述基准投影模块控制器、所述基准投影处理单元和所述比例投影模块32,用于存储所述原始事件坐标和所述通用处理器预计算好的参数,接收所述基准投影模块控制器发送的控制信号,将存储数据发送至所述基准投影处理单元和所述比例投影模块32;

所述基准投影处理单元分别连接所述输入缓存、所述基准投影模块控制器和所述中间缓存,用于接收所述存储数据,通过对所述存储数据进行矩阵/向量乘加计算以及归一化计算,实现将所述原始事件数据向观测空间中基准平面的反向投影计算,接收所述基准投影模块控制器发送的控制信号,将通过反向投影计算得到的事件在基准平面上的反向投影坐标输入至所述中间缓存中;

所述中间缓存分别连接所述基准投影处理单元、所述基准投影模块控制器和所述比例投影模块32,用于存储事件在基准平面上的反向投影坐标,接收所述基准投影模块控制器发送的控制信号,将缓存数据发送至所述比例投影模块32;

所述基准投影模块控制器通过所述通用处理器21与所述处理器系统2相连接,分别连接所述比例投影模块32、所述输入缓存、所述基准投影处理单元和所述中间缓存,用于收发所述通用处理器21的控制信号、用于收发所述比例投影模块32的控制信号,以及向所述输入缓存、所述基准投影处理单元和所述中间缓存分别发送控制信号。具体说明如下:

AXI总线接口:遵循AXI协议的总线接口模块,通过DMA单元将原始事件坐标和通用处理器预计算好的参数输入至输入缓存中。

输入缓存:存储原始事件坐标和通用处理器预计算好的参数;该部分的特点是采取乒乓缓存结构,每组缓存可以包括两块相同的缓存,交替进行数据的输入和输出,以此减少输入输出延迟,例如:在时间T时刻通过缓存A进行数据的输入,以及通过缓存B进行数据的输出。

基准投影处理单元:基准投影模块中负责计算的单元,包括矩阵/向量乘加单元和归一化单元,进行原始事件向观测空间中基准平面的反向投影计算;该部分的特点是内部部署了多个计算单元,计算流程高度并行化且完全流水化,具有很高的运算效率。

中间缓存:可以包括BRAM,存储事件在基准平面上的反向投影坐标;该部分的特点是采取乒乓缓存结构,减少输入输出延迟。具体可以参照上述输入缓存的相关说明,不再赘述。

基准投影模块控制器:有限状态机硬件控制器,控制基准投影模块工作;该部分的特点是被通用处理器21配置完毕并启动后,无需通用处理器21再进行控制。

进一步地,所述比例投影模块32包括中间数据分配单元、比例投影处理单元、输出缓存、DSI数据更新单元和比例投影模块控制器;其中:

所述中间数据分配单元分别通过所述输入缓存和所述中间缓存与所述基准投影模块相连接,分别连接所述比例投影模块控制器和所述比例投影处理单元,用于将所述输入缓存中的比例投影计算所需参数和所述中间缓存中的事件在基准平面上的反向投影坐标分配至所述比例投影处理单元、用于接收所述比例投影模块控制器的控制信号;

所述比例投影处理单元分别连接所述中间数据分配单元、所述比例投影模块控制器和所述输出缓存,用于进行事件从基准平面向观测空间各个深度的反向投影计算、搜索反向投影射线在各个深度穿过的DSI网格、生成DSI投票地址,用于接收所述比例投影模块控制器的控制信号,用于将所述DSI投票地址输入至所述输出缓存;

所述输出缓存分别连接所述比例投影处理单元、所述DSI数据更新单元和所述比例投影模块控制器,用于存储所述DSI投票地址,用于接收所述比例投影模块控制器的控制信号,用于传输所述DSI投票地址至所述DSI数据更新单元;

所述DSI数据更新单元通过所述DRAM控制器与所述处理器系统2相连接、分别连接所述输出缓存和所述比例投影模块控制器,用于使用所述输出缓存中的DSI投票地址更新所述外部存储空间4存储的DSI数据,用于接收所述比例投影模块控制器的控制信号;

所述比例投影模块控制器通过所述通用处理器21与所述处理器系统2相连接、通过所述基准投影模块控制器与所述基准投影模块31相连接;分别连接所述中间数据分配单元、所述比例投影处理单元、所述输出缓存和所述DSI数据更新单元,用于收发所述通用处理器21的控制信号,用于收发所述基准投影模块31的控制信号,以及向所述中间数据分配单元、所述比例投影处理单元、所述输出缓存和所述DSI数据更新单元分别发送控制信号。具体说明如下:

中间数据分配单元:将输入缓存中的比例投影计算所需参数和中间缓存中的事件在基准平面上的反向投影坐标分配给各个比例投影处理单元(比例投影处理单元可以有多个);该部分的特点可以是根据部署的比例投影处理单元个数,进行并行数据分配。

比例投影处理单元:比例投影模块中负责计算的单元,包括标量乘加单元、最邻近DSI网格搜索单元和投票地址生成单元,依次进行事件从基准平面向观测空间各个深度的反向投影计算、搜索反向投影射线在各个深度穿过的DSI网格(即需要更新的DSI网格)、生成DSI投票地址(即需要更新的DSI网格坐标);该部分的特点是内部部署了多个计算单元,计算流程高度并行化且完全流水化,且比例投影处理单元可并行部署多组,同时计算一个事件对多个DSI深度层的反向投影与投票,具有很高的运算效率。

输出缓存:可以包括BRAM,存储DSI投票地址;该部分的特点是采取乒乓缓存结构,减少输入输出延迟。具体可以参照上述输入缓存的相关说明,不再赘述。

DSI数据更新单元:使用输出缓存中的DSI投票地址,更新DRAM中存储的DSI数据;该部分的特点是通过PS端的DRAM控制器直接访问DRAM进行数据更新,无需通用处理器21介入,提高了访存效率。

比例投影模块控制器:有限状态机硬件控制器,控制比例投影模块工作;该部分的特点是被通用处理器21配置完毕并启动后,无需通用处理器21再进行控制。

进一步地,所述基准投影处理单元包括彼此相连的矩阵/向量乘加单元和归一化单元;其中:

所述矩阵/向量乘加单元用于对所述存储数据进行矩阵/向量乘加计算,得到矩阵/向量乘加计算结果;

所述归一化单元用于对所述矩阵/向量乘加计算结果进行归一化计算,将归一化计算结果作为事件在基准平面上的反向投影坐标。可参照上述说明,不再赘述。

进一步地,所述比例投影处理单元包括依次相连的标量乘加单元、最邻近DSI网格搜索单元和投票地址生成单元;其中:

所述标量乘加单元用于进行事件从基准平面向观测空间各个深度的反向投影计算;

所述最邻近DSI网格搜索单元用于根据反向投影计算结果搜索反向投影射线在各个深度穿过的DSI网格;

所述投票地址生成单元用于根据反向投影射线在各个深度穿过的DSI网格的搜索结果,生成DSI投票地址。可参照上述说明,不再赘述。

此外,为了提高系统计算速度、节省存储空间和数据传输带宽、节约硬件计算资源,在基于单目事件相机立体视觉的异构硬件加速系统中,本发明制订并采用了一套专用的数据量化策略,将参与运算的浮点型数据量化为定点型数据,同时对于不同计算阶段的事件坐标,本发明采取混合精度量化的方式来保证计算准确度。具体的量化策略如下:

①输入事件原始像素坐标:从32位浮点型数据量化为16位定点型数据,其中整数部分占9位,小数部分占7位;

②事件经过基准投影后,在观测空间基准平面上的反向投影坐标:从32位浮点型数据量化为16位定点型数据,其中整数部分占9位,小数部分占7位;

③事件经过比例投影后,在观测空间其他深度上的反向投影坐标:从32位浮点型数据量化为8位定点型数据,其中整数部分占8位,小数部分占0位;

④基准投影计算中使用的参数:从32位浮点型数据量化为32位定点型数据,其中整数部分占11位,小数部分占21位;

⑤比例投影计算中使用的参数:从32位浮点型数据量化为32位定点型数据,其中整数部分占11位,小数部分占21位;

⑥各个DSI网格中通过的反向投影射线数量:从32位浮点型数据量化为16位定点型数据,其中整数部分占16位,小数部分占0位。

上述①、④、⑤和⑥在通用处理器21中处理、上述②在基准投影处理单元中处理、上述③在比例投影处理单元中处理。

本发明实施例提供的基于单目事件相机立体视觉的异构硬件加速系统包括事件相机传感器模块、处理器系统、FPGA硬件加速模块和外部存储空间;所述处理器系统分别与所述事件相机传感器模块、所述FPGA硬件加速模块和所述外部存储空间相连接;其中:所述事件相机传感器模块配备有单目事件相机,用于采集场景信息并提供原始事件数据;所述处理器系统用于接收所述原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数、驱动和调度所述FPGA硬件加速模块、访问所述外部存储空间并进行数据传输;所述FPGA硬件加速模块用于对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;所述外部存储空间用于存储输入事件数据和DSI数据,能够提高EMVS算法的运行速度,降低系统运行功耗,提高系统性能功耗比,进而解决EMVS算法难以在功耗受限的嵌入式平台上部署并实时运行的问题。

本发明实施例提供一种使用上述基于单目事件相机立体视觉的异构硬件加速系统的异构硬件加速方法,所述异构硬件加速方法包括:

采集场景信息并提供原始事件数据,根据所述原始事件数据处理EMVS算法计算所需的原始事件坐标和通用处理器预计算好的参数;

对所述EMVS算法中的事件反向投影环节和空间射线密度统计环节进行加速;

存储输入事件数据和DSI数据。

如图3所示,对上述方法具体说明如下:

系统开始工作时,事件相机传感器模块对场景进行观测并输出原始事件流。通用处理器接收原始事件流并进行事件聚合操作,将事件流划分为若干事件帧,并依次判断每个新到来的事件帧是否为关键帧(判断标准为新事件帧的相机位姿与当前关键帧对应的相机位姿间的距离是否超出一个既定阈值),同时配置DMA单元将事件帧和对应的相机位姿参数存储在外部存储空间的DRAM中。

若新到来的事件帧不是关键帧(即新事件帧为普通帧),通用处理器会预计算事件反向投影环节所需参数,然后配置DMA单元将该事件帧中的事件原始坐标、事件帧对应的相机位姿参数和预计算参数发送给FPGA硬件加速模块。随后通用处理器配置并启动FPGA加速模块,FPGA加速模块进行事件反向投影计算(包括基准投影和比例投影)和空间射线密度统计(即对DSI进行投票)并更新存储在DRAM中的DSI数据。

若新到来的事件帧是关键帧,通用处理器首先会进行场景结构检测,即通过寻找目前的DSI中反向投影射线密度局部最大值所在的网格估计空间中存在三维实体的位置;随后重置DSI数据,将观测空间的参考坐标系更新为新关键帧对应的观测坐标系;随后将场景结构检测环节提取出的存在空间三维实体的DSI网格坐标转化为空间点云,并更新半稠密三维点云地图。此后进行事件反向投影和空间射线密度统计环节,与普通帧的工作方式相同。

如图4所示,对FPGA硬件加速模块运行时的流水线说明如下:

进行“事件反向投影”和“空间射线密度统计”环节时,FPGA加速模块中的基准投影模块和比例投影模块按照流水化的模式进行工作,如图4所示。其中的矩形代表FPGA加速模块工作流程中的各个任务环节,CP代表基准投影,PP代表比例投影,R代表空间射线密度统计。对于输入的普通事件帧,两个加速模块同时工作,无需等待流水线清空。此时每帧的实际处理时间等于“比例投影”和“空间射线密度统计”两个任务的处理时间,而“基准投影”的处理时间被覆盖。

进一步对上述方法具体说明如下:

s1.系统启动并初始化。

s2.事件相机传感器模块对场景进行观测,输出原始事件到处理器系统。

s3.处理器系统中的通用处理器接收原始事件流并进行事件聚合操作,将事件流划分为若干事件帧,并依次判断每个新到来的事件帧是否为关键帧。

s4.通用处理器配置DMA单元将事件帧和对应的相机位姿参数存储在外部存储空间的DRAM中。

s5.若新到来的事件帧是关键帧,通用处理器依次进行场景结构检测、重置DSI数据、将场景结构信息转化为空间点云、更新半稠密三维点云地图。(若新到来的事件帧是普通帧则不进行此步)

s6.通用处理器预计算事件反向投影环节所需参数。

s7.通用处理器配置DMA单元将输入事件帧中的事件原始坐标、事件帧对应的相机位姿参数和预计算参数输入到基准投影模块的输入缓存中。

s8.通用处理器配置并启动基准投影模块和比例投影模块。

s9.基准投影模块控制器控制基准投影模块进行工作。

s10.基准投影处理单元从输入缓存处读取原始事件坐标和预计算参数,进行原始事件向观测空间中基准平面的反向投影计算,将计算结果输出到中间缓存。

s11.比例投影模块控制器控制比例投影模块进行工作。

s12.中间数据分配单元从输入缓存中读取比例投影计算所需参数,从中间缓存中读取事件在基准平面上的反向投影坐标,分配给各个比例投影处理单元。

s13.比例投影处理单元依次进行事件从基准平面向观测空间各个深度的反向投影计算、搜索反向投影射线在各个深度穿过的DSI网格、生成DSI投票地址,将将计算结果输出到输出缓存。

s14.DSI数据更新单元读取输出缓存中的DSI投票地址,更新DRAM中存储的DSI数据。

s15.系统按上述方式运行直到观测过程结束,最终得到的半稠密三维点云地图即为对场景的立体重建结果。

本发明实施例提供的系统及方法具备以下有益效果:

本发明提出的基于单目事件相机立体视觉的异构硬件加速系统在运行典型的EMVS算法应用时,系统的整体性能功耗比很高,在具有较快计算速度的同时具有极低的功耗,与传统通用处理器相比具有显著优势。使用该加速系统可以满足EMVS在低功耗嵌入式平台上实时运行的场景需求,有利于发掘EMVS在机器人、无人机等小型终端设备上的应用潜力,对未来无人系统智能感知技术的发展具备重要的意义。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116333236