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

用于图像处理的神经网络加速器装置、三维重建方法

文献发布时间:2024-04-18 19:53:33


用于图像处理的神经网络加速器装置、三维重建方法

技术领域

本发明涉及计算机领域,具体来说,涉及神经网络加速器领域,更具体地说,涉及一种用于图像处理的加速器装置及基于此的三维重建加速控制方法。

背景技术

机器视觉的发展涉及神经网络对大量数据的处理。随着大数据处理技术与深度学习算法的融合,机器视觉越来越需要更高性能的处理器芯片对大量图片信息进行处理,尤其在三维重建方面。在图像处理的嵌入式系统中,系统性能与功耗的平衡是需要重点考虑的因素。然而,传统的中央处理器由于缺乏指令处理的并行性使其在面对图像数据处理时显得吃力;而传统的图像处理器由于其通用性使其运行大数据载荷的神经网络模型时,具有较高的功耗。

由此,神经网络加速器以其对神经网络运算的高性能、低功耗的特点被广泛嵌入终端设备用于完成图像并行运算,并成为了一种在终端加速图像处理算法的典型加速器。随着不同结构的神经网络算法的提出,各种各样针对神经网络算法加速的神经网络加速器被设计出来,但是,由于神经网络加速器往往需要针对特定的网络模型进行适应性优化,针对不同神经网路的加速器具有不同的挑战。

其中,针对连续帧图像进行三维重建的神经网络加速器由于其运算的载荷大与并行性要求高的特点,更需要对加速器结构与数据处理顺序进行适应性设计。在现有技术下,三维重建神经网络首先通过建立多视图图像间的特征点匹配,寻找并匹配不同视图图像的同一空间点;然后在获取同一空间点在两幅图像中的视差后,通过几何关系进行空间点的深度预测,以进行稠密点云重建;最后进行深度融合以生成三维物体的表面模型。此类重建数据量庞大且计算复杂度较高,难以部署在边缘设备上,无法很好的满足实时性要求。因此,针对三维重建算力高的问题,在满足模型实时性运行的要求下,需要设计专门硬件加速器装置以及运行算法方案。

发明内容

因此,本发明的目的在于克服上述现有技术的缺陷,提供一种新的用于图像处理的神经网络加速器装置、三维重建方法。

根据本发明的第一方面,提供一种用于图像处理的神经网络加速器装置,所述装置包括:乘累加运算模块,其配置有多个矩阵运算单元,用于进行连续乘累加运算;数据存储模块,其被配置为多级存储结构,用于对数据进行分层多级存储并进行数据共享;数据管理模块,用于进行运算数据的调用与存储空间的分配;通用处理器,用于进行外参矩阵求解运算;辅助运算模块,用于进行乘累加运算、外参矩阵求解运算以外的其他不能分解的运算。

优选的,所述乘累加运算模块包括三个矩阵运算单元,每个矩阵运算单元配置一个对应的数据缓存单元,其中,所述每个矩阵运算单元用于进行乘法运算,所述每个数据缓存单元用于直接与其对应的矩阵运算单元进行数据交换。

优选的,所述每个矩阵单元包括多个处理单元和多个阵列寄存器,所述每个处理单元至少包括一个乘法器和一个加法器,所述多个阵列寄存器用于进行处理单元处理的中间数据的搬运。

优选的,所述乘累加运算模块、通用处理器、辅助运算模块可被配置为流水线模式。

优选的,所述数据存储模块包括二级缓存区和主存,其中:所述二级缓存区直接与所述乘累加模块中的各个数据缓存单元相联,用于存储各个数据缓存单元存不下的数据;所述主存直接与所述二级缓存区直接相联,用于存储所述二级缓存区存不下的大规模数据。

优选的,所述数据管理模块包括寄存器单元、选通器单元、DMA控制器单元、数据暂存单元,其中:所述寄存器单元用于进行中间数据的搬运;所述选通器单元用于对所述多个矩阵单元进行选通以实现多级流水线操作;所述DMA控制器单元用于进行图像数据在DMA通路上的排列以及搬运;所述数据暂存单元用于在数据传输高峰期进行搬运数据的暂存。

优选的,所述通用处理器被配置为用于求解多项式、求解雅可比矩阵、计算图像相邻帧时刻的外参Rt旋转矩阵。

优选的,所述辅助运算模块包括:逻辑运算单元,用进行多种逻辑运算操作,至少包括与、或、非、异或、对比、和/或、移位逻辑操作;算数运算单元,用进行无法分解的小规模数据运算,至少包括加、减、乘、除、平方、和/或、根号算数操作;激活函数运算单元,用于进行数据的激活运算,至少包括ReLU激活函数、二值激活函数、和/或、Sigmoid激活函数的激活运算;数据排列单元,用于调用所述数据管理模块中的数据进行运算数据排列,包括求最大值排列、求最小值排列、和/或、数据排序排列;池化操作单元,用于辅助所述矩阵运算单元进行神经网络中的池化计算;上采样单元,用于辅助所述矩阵运算单元进行神经网络中的上采样计算。

根据本发明的第二方面,提供一种基于本发明第一方面所述装置的三维重建方法,所述方法包括将所述装置配置为多级流水线模式,并将乘累加运算模块中的多个矩阵运算单元配置为负责特征点匹配、多个矩阵运算单元配置为负责深度预测、多个矩阵运算单元配置为负责深度融合,获取摄像头外设采集到的连续帧图像RGB信息和摄像头矫正信息后,针对每一帧图像执行如下步骤:S1、负责特征点匹配的矩阵运算单元、数据管理模块和通用处理器基于图像RGB信息和摄像头的矫正信息进行特征点匹配操作,并将特征点匹配结果传递给负责深度预测的矩阵运算单元以及负责深度融合的矩阵运算单元;S2、负责深度预测的矩阵运算单元、数据管理模块和辅助运算模块基于RGB图像信息以及特征点匹配结果进行深度预测操作,并将深度预测结果传递给负责深度融合的矩阵运算单元;S3、负责深度融合的矩阵运算单元、数据管理模块和辅助运算模块基于RGB图像信息、特征点匹配结果以及深度预测结果进行深度融合操作以得到三维点云信息。

优选的,根据特征点匹配、深度预测、深度融合所需的时种周期进行矩阵单元的分配,以使特征点匹配、深度预测、深度融合形成的流水线各节点时钟周期均衡。

优选的,获取到摄像头外设采集到的连续帧图像RGB信息后,由数据管理模块进行调用以将其存入主存。

优选的,数据管理模块接收到上一次三维重建运算完成的信号后,将当前帧图像RGB信息从主存复制到二级缓存区。

优选的,所述步骤S1包括:S11、数据管理模块将当前帧图像RGB信息从二级缓存区复制到负责特征点匹配的矩阵单元对应的数据缓存单元中;S12、在接收到负责特征点匹配的矩阵单元完成上一次特征点匹配完成信号后,将对应数据缓存单元中的当前帧图像和上一帧图像的RGB信息传输给负责特征点匹配的矩阵单元并删除数据缓存单元中存储的上上一帧图像的RGB信息;S13、负责特征点匹配的矩阵单元基于其对应数据缓存单元中的当前帧图像和上一帧图像的RGB信息进行特征点匹配,特征点匹配完成后将匹配像素点存入对应的数据缓存单元并向数据管理模块发送特征点匹配完成信号;S14、数据管理模块接收到负责特征点匹配的矩阵单元对当前帧图像的特征点匹配完成信号以及通用处理器上一次Rt旋转矩阵计算完成信号后,将数据缓存单元中存储的匹配像素点与主存中的摄像头矫正信息传输给通用处理器;S15、通用处理器基于数据管理模块传输的匹配像素点与摄像头矫正信息进行外参Rt旋转矩阵的计算,并在计算完成想数据管理模块发送Rt旋转矩阵计算完成信号;S16、数据管理模块接收到Rt旋转矩阵计算完成信号后,将计算好的连续两帧时刻摄像头的外参Rt旋转矩阵信息存入二级缓存区。

优选的,所述步骤S2包括:S21、数据管理模块将当前帧图像RGB信息、Rt旋转矩阵信息从二级缓存区复制到负责深度预测的矩阵单元对应的数据缓存单元中;S22、数据管理模块在接收到负责深度预测的矩阵单元完成上一次深度预测完成信号后,将对应数据缓存单元中的当前帧图像和一个或多个历史帧图像的RGB信息传输给负责特征点匹配的矩阵单元并删除数据缓存单元中存储的未用到的图像的RGB信息;S23、负责深度预测的矩阵单元基于其对应数据缓存单元中的当前帧图像RGB信息、Rt旋转矩阵信息、一个或多个历史帧图像的RGB信息进行深度预测,预测完成后向数据管理模块发送深度预测完成信号;S24、数据管理模块接收到深度预测完成信号后,深度预测得到的深度信息、置信度信息存入二级缓存区。

优选的,所述步骤S3包括:S31、数据管理模块将上一帧图像RGB矩阵信息、当前帧图像RGB矩阵信息、预测的深度信息、置信度信息以及Rt矩阵信息从二级缓存区复制到负责深度融合的矩阵单元对应的数据缓存单元中;S32、数据管理模块在接收到上一次深度融合操作完成的信号后,将对应缓存单元中的上一帧图像RGB矩阵信息、当前帧图像RGB矩阵信息、预测的深度信息、置信度信息以及Rt矩阵信息传输给负责深度融合的矩阵单元;S33、负责深度融合的矩阵单元基于上一次深度融合操作完成的信号后,将对应缓存单元中的上一帧图像RGB矩阵信息、当前帧图像RGB矩阵信息、预测的深度信息、置信度信息以及Rt矩阵信息进行深度融合,融合未完成后向数据管理模块发出深度融合完成信号;S34、数据管理模块接收到深度融合完成信号后,将深度融合得到的三维点云信息存入主存。

与现有技术相比,本发明的优点在于:本发明将特征点匹配、深度预测以及深度融合三个运算载荷大的运算主体分配给三个矩阵运算单元。通过对各矩阵运算单元的运算时间、算子比例进行合理分配,可使各矩阵运算单元间的运算互不干扰,达到三级流水线的并行处理效果。并行处理的架构提升了加速器针对三维重建任务中图像处理的高效性与兼容性。

附图说明

以下参照附图对本发明实施例作进一步说明,其中:

图1为根据本发明实施例的用于图像处理的加速器装置框架结构示意图;

图2为根据本发明实施例的用于图像处理器的加速器装置具体结构示意图;

图3为根据本发明实施例的基于本发明的加速器装置的三维重建原理示意图;

图4为根据本发明实施例的三维重建流程示意图;

图5为根据本发明实施例的三维重建时间流示意图

图6为根据本发明实施例的三维重建过程中运算载荷分配示意图。

具体实施方式

为了使本发明的目的,技术方案及优点更加清楚明白,以下通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

为了解决现有技术中提到的三维重建神经网络加速器存在的问题,本发明参考乘累加阵列的可拓展性与流水线处理技术的并行性特点,提出一种基于乘累加阵列的用于图像处理的加速器装置,基于该装置,能够将三维重建中的特征点匹配、深度预测以及深度融合并行处理,并实现流水线处理架构。不仅能够适用于三维重建,也适用于其他视觉图像处理领域。

为了更好的理解本发明,下面结合附图和实施例详细说明本发明。

根据本发明的一个实施例,如图1所示,本发明的一种用于图像处理的加速器装置包括:乘累加运算模块,其配置有多个矩阵运算单元,用于进行连续乘累加运算;数据存储模块,其被配置为多级存储结构,用于对数据进行分层多级存储并进行数据共享;数据管理模块,用于进行运算数据的调用与存储空间的分配;通用处理器,用于进行外参矩阵求解运算;辅助运算模块,用于进行乘累加运算、外参矩阵求解运算以外的其他不能分解的运算。本发明装置中设计了乘累加运算模块、通用处理器以及辅助运算模块,并课将其组合为流水线处理架构,使得加速器不仅可以实现多种视觉算法的并行操作,并能进一步提升算法运行速度。此外,考虑到三维重建神经网络的输入数据为摄像头外设采集的连续帧图像信息,为避免数据容量过大而导致内部存储空间容量不足的情况,本发明在满足算法数据运行所需要的基本数据需求的基础上,将加速器内部的存储空间按数据存取速度划分为多级存储,并通过数据管理模块合理分配数据存储空间以最大化合理利用存储空间,提升加速器运行效率。

其中,仍旧参照图1,所述乘累加运算模块用于实现三维重建算法中大规模连续乘加运算,实现的乘累加运算包括但不限于图像卷积特征提取、神经网络的卷积操作、经分解的深度融合算法、绝对值运算、求根号运算。其中,一个乘累加运算模块包括多个矩阵运算单元,每个矩阵单元配置一个对应的数据缓存单元(本发明实施例中数据缓存单元采用SRAM)。

根据本发明的一个实施例,如图2所示,所示其至少包括三个矩阵运算单元及其匹配的SRAM,每个矩阵运算单元矩阵运算单元可以由脉动阵列、并行Booth算法乘法器阵列、Wallace树型乘法器阵列、查表法乘法器阵列、或者经设计的专用集成电路等可进行大规模连续乘加运算的结构组成,不同的矩阵运算阵列的共性在于在单位周期内可并行地或以流水线的形式分时复用地处理一定数量的乘法运算,同时,乘累加阵列需要具备一定程度的可拓展性,用于提升系统的硬件算力以满足不同三维重建模型的实时性要求。其中,本发明实施例中以脉动阵列为矩阵运算单元进行展开描述,采用其他乘累加阵列效果亦是相同,但需要对外接口一致以满足系统兼容性要求,对于其他阵列就不重复赘述。一个脉动阵列包括多个处理单元(PE)与若干寄存器。每个PE可以由Booth乘法器、查找表乘法器、Wallace树型乘法器等可用于进行乘法运算的乘法器与流水线加法树、并行加法器阵列等可用于进行累加运算的加法器组成。其中,一个处理单元包括但不限于一个乘法器与一个加法器。进一步地,脉动阵列的处理单元在处理图像数据过程中通过寄存器实时缓存中间结果,并根据输入矩阵的大小周期性地向SRAM数据缓存单元输出运算结果。

根据本发明的一个实施例,仍旧参考图2,所示所述数据存储模块用于实现加速器数据的存储与共享,数据存储模块包括但不限于由二级缓存区、主存构成的多级存储结构(此时,乘累加运算模块中的SRAM相当于速度最快的一级缓存,二级缓存区的速度次之,主存的速度最慢)。其中,二级缓存区直接与SRAM数据缓存单元相连,用于存放SRAM数据缓存单元储存不下的数据以实现矩阵运算单元之间的数据共享;主存直接与二级缓存区相连,用于存放二级缓存区存放不下的数据、连续帧图像信息以及实物三维点云信息等。SRAM数据缓存单元属于各个模块的私有缓存单元,用于与固定模块进行高速数据交换。二级缓存区、主存属于公共存储单元。二级缓存区以较高的速度进行模块间数据共享;主存用于进行大规模数据的存储。本发明通过设置多级存储可以兼顾系统数据访存速度快与容量大的需求。

根据本发明的一个实施例,仍旧参考图2,所述数据管理模块用于进行运算数据的调用与存储空间的分配。其中,所述数据管理模块包括但不限于至少一个寄存器单元(一个寄存器单元可包括多个寄存器,可分别称之为第一寄存器、第二寄存器、…、第N寄存器)、至少一个选通器单元(一个选通器单元可包括多个选通器,可分别称之为第一选通器、第二选通器、…、第N选通器)、至少一个DMA控制器单元(一个DMA控制器单元可包括多个控制器,可分别称之为第一控制器、第二控制器、…、第N控制器)以及至少一个数据暂存单元。其中,DMA控制器单元为直接存储器访问模块,用于减缓数据处理高峰时期通用处理器的数据传输压力。数据管理模块直接与通用处理器、辅助运算模块、各级存储模块、外设相连接。其中,寻址寄存器模块用于进行小规模中间运算数据的搬运;数据选通器,用于选择数据通路以配合完成多级流水线操作;DMA控制器单元,用于进行大规模图像矩阵数据在DMA通路上的排列以及搬运;数据暂存单元,用于在数据传输的高峰时期进行搬运数据的暂存。

根据本发明的一个实施例,所述通用处理器用于进行的操作包括但不限于求解多项式、求解雅可比矩阵以及计算相邻帧时刻摄像头的外参Rt旋转矩阵。

根据本发明的一个实施例,所述辅助运算模块用于进行图像处理神经网络中较难分解的运算。其中,辅助运算模块包括但不限于逻辑运算单元、算数运算单元、激活函数运算单元、数据排列单元、池化操作单元以及上采样单元。其中,逻辑运算单元,用于进行多种逻辑运算操作,包括但不限于逻辑‘与’单元、逻辑‘或’单元、逻辑‘非’单元、‘异或’大于、‘对比’操作单元、‘移位’操作单元等以分别用于进行‘与’、‘或’、‘非’、‘异或’、‘对比’、‘移位’逻辑操作作。算数运算单元,用于进行难以分解的小规模运算,包括但不限于加法运算单元、减法运算单元、乘法运算单元、除法运动单元以用于实现但不限于‘加’、‘减’、‘乘’、‘除’、‘平方’、‘根号’算数操作。激活函数单元,用于进行数据的激活运算,包括但不限于ReLU激活单元、二值激活单元、线性激活单元、Sigmoid激活单元等以用于实现‘ReLU函数’、‘二值激活函数’、‘线性激活函数’、‘Sigmoid激活函数’算数操作。数据排列单元,通过调用数据管理模块中的数据进行运算数据的排列,其可进行运算包括但不限于求最大值、最小值、数据排序。池化操作单元以及上采样单元用于辅助矩阵运算单元进行神经网络中的池化和上采样计算。

基于本发明所提出的加速器装置,本发明进一步提出了一种基于该装置的三维重建方法,在该方法中,将三维重建中的特征点匹配、深度预测以及深度融合三个运算载荷大的运算主体分配给不同的矩阵运算单元(如果是三个矩阵运算单元,就将三个矩阵运算单元分别用于进行特征点匹配、深度预测以及深度融合,如果是三个以上的矩阵运算单元,则可以将多个矩阵运算单元分成三部分),通过数据管理模块进行数据调用可以将三维重建过程在本发明的加速器装置上分割成三级流水线结构,从而提升三维重建的并行性和计算效率。本发明后续实施例中以乘累加运算模块包括三个脉动阵列为例进行说明,并且以脉动阵列1(对应的数据缓存为SRAM1)进行特征点匹配、脉动阵列2(对应的数据缓存为SRAM2)进行深度预测、脉动阵列3(对应的数据缓存为SRAM3)进行深度融合为例进行展开。概括来说,在进行特征点匹配时,脉动阵列1接收图像RGB矩阵信息,进行特征点匹配,运算完成后,数据管理模块将匹配好的像素点输入通用处理器;通用处理器接收匹配好的像素点与来自摄像头的矫正信息,进行Rt旋转矩阵的计算,运算完成后,数据管理模块将计算好的Rt旋转矩阵分别输入负责深度预测的脉动阵列2与负责深度融合的脉动阵列3。在进行深度预测时,脉动阵列2接收图像RGB矩阵信息与Rt旋转矩阵信息后,进行深度预测的运算;同时,对于不易分解的运算,由数据管理模块将运算交给辅助运算模块进行计算;深度预测运算完成后,数据管理模块将脉动阵列2与辅助运算模块的运算结果输入至负责深度融合的脉动阵列3。在进行深度融合时,脉动阵列3接收图像RGB矩阵信息、Rt旋转矩阵信息与深度预测得到的深度信息、置信度信息,进行图像深度信息的点云融合运算;同时,对于不易分解的运算,由数据管理模块将运算交由辅助运算模块进行计算。点云融合运算完成后,数据管理模块将脉动阵列3与辅助运算模块的运算结果存储至主存,并后续输出至屏幕外设上。通过合理分配三个矩阵运算单元算子数目比例,本发明使得部分1特征点匹配、部分2深度预测、部分3深度融合运算并发进行,达到三级流水的效果。

为了更好的理解本发明的加速器装置在三维重建领域的应用,下面结合附图对三维重建过程进行详细说明。

如图3所示,以加速器装置包含三个矩阵运算单元为例,将其用在进行三维重建中时,各模块的工作模式如下:

脉动阵列1与SRAM单元1通过数据通路1进行数据交换,交换的数据包括但不限于第(n-1)帧图像RGB矩阵信息、第n帧图像RGB矩阵信息、第(n-1)帧图像与第n帧图像进行特征点匹配运算的像素点。交换的数据用于进行特征点匹配中乘累加运算。

SRAM单元1与数据存储模块、数据管理模块进行数据交换(SRAM单元1可直接与数据存储模块进行数据交换,亦可通过数据管理模块中转数据与数据存储模块进行数据交换),交换的数据包括但不限于第n帧图像RGB矩阵信息、第(n-1)帧图像与第n帧图像特征点匹配运算匹配好的像素点。

脉动阵列2与SRAM单元2通过数据通路2进行数据交换。交换的数据包括但不限于第n帧图像RGB矩阵信息、第n帧图像的进行特征提取运算的中间数据、源图像特征矩阵、参考图像特征矩阵。交换的数据用于进行深度预测中乘累加运算。

SRAM单元2与数据存储模块、数据管理模块进行数据交换(SRAM单元2可直接与数据存储模块进行数据交换,亦可通过数据管理模块中转与数据存储模块进行数据交换)。交换的数据包括但不限于第n帧图像RGB矩阵信息、Rt矩阵信息、参考图像特征矩阵、Rt矩阵信息。

脉动阵列3与SRAM单元3通过数据通路3进行数据交换。交换的数据包括但不限于第(n-1)帧图像RGB矩阵、第n帧图像RGB矩阵、深度、置信度或者Rt矩阵。交换的数据用于进行深度融合中乘累加运算。

SRAM单元3与数据存储模块、数据管理模块进行数据交换(SRAM单元3可直接与数据存储模块进行数据交换,亦可通过数据管理模块中转与数据存储模块进行数据交换)。交换的数据包括但不限于第(n-1)帧图像RGB矩阵信息、第n帧图像RGB矩阵信息、预测的深度信息、置信度信息以及Rt矩阵信息。

数据存储模块与数据管理模块之间存在数据通路,交换的数据包括但不限于连续帧图像RGB信息、特征点匹配运算所需数据、深度预测运算所需数据、深度融合运算所需数据。

数据管理模块内部。寄存器单元、选通器单元、DMA控制器单元与数据暂存单元之间存在数据通路,该数据通路用于数据传输高峰时期的数据暂存(数据运输高峰时期,数据通路传输拥塞,为了避免由数据拥塞引起的运算暂停,会将运算完的数据暂存于数据暂存模块,等待数据通路不那么拥塞时,将数据传输出)。

通用处理器与数据管理模块之间通过数据通路4进行数据交换。交换的数据包括但不限于指令码、数据存储地址、匹配像素点(用于进行Rt旋转矩阵运算)、摄像头矫正信息(用于进行Rt旋转矩阵运算)、摄像头的外参Rt旋转矩阵信息(Rt旋转矩阵运算完数据)等。用于进行数据搬运控制、进行部分少量数据的科学运算。

辅助运算模块与数据管理模块之间通过数据通路5进行数据交换,交换数据包括但不限于深度预测中不可分解为乘累加运算操作所需的中间数据(源图像特征矩阵、参考图像特征矩阵或Rt矩阵)、深度融合中不可分解为乘累加运算操作所需的中间数据(第(n-1)帧图像RGB矩阵、第n帧图像RGB矩阵、深度、置信度或者Rt矩阵)。

数据管理模块与外设之间通过数据通路6进行数据交换。交换的数据包括但不限于点云数据、连续帧图像RGB矩阵信息。用于与外设进行数据交换。数据管理模块中,寄存器单元用于进行数据搬运过程中数据的暂存。选通器单元用于流水线进行过程中的模块选择空闲模块,并进行数据传输。

根据本发明的一个实施例,将如图3所示的加速器装置用于三维重建时,其流程为:

总步骤1:摄像头外设采集连续帧图像RGB信息,并通过数据管理模块的调用将连续帧图像RGB信息存入主存。

总步骤2:数据管理模块接收到上一次三维重建运算完成的信号后,将当前帧图像(假设当前帧图像按时间先后排序为n,后续简称为第n帧图像)RGB信息以矩阵的形式复制至二级缓存区。

部分1,特征点匹配:

分步骤1:数据管理模块将第n帧图像RGB矩阵信息复制到SRAM单元1中,等待脉动阵列1完成上一次特征点匹配操作。

分步骤2:数据管理模块接收到脉动阵列1上一次特征点匹配操作完成信号后,将SRAM单元1内第(n-1)帧图像与第n帧图像RGB矩阵信息通过数据通路1依次输入脉动阵列1进行特征点匹配的神经网络运算;同时删除SRAM单元1内第(n-2)帧图像的所有信息。

分步骤3:脉动阵列1完成特征点匹配运算后,将两帧图像匹配的像素点缓存入SRAM单元1,同时,向数据管理模块发出特征点匹配操作完成信号。

分步骤4:数据管理模块在接收到脉动阵列1的特征点匹配操作完成信号并且接收到通用处理器上一次Rt旋转矩阵计算完成信号后,将SRAM单元1中的匹配像素点与主存中的摄像头矫正信息通过数据通路4输入通用处理器。

分步骤5:通用处理器在接收到数据管理模块传输的匹配像素点与摄像头矫正信息后,进行外参Rt旋转矩阵的计算。Rt旋转矩阵计算完成后,通用处理器向数据管理模块发出Rt旋转矩阵计算完成信号。

分步骤6:数据管理模块接收到Rt旋转矩阵计算完成信号后,将计算好的连续两帧时刻(注:第(n-1)帧与第n帧)摄像头的外参Rt旋转矩阵信息缓存入二级缓存区。

部分1完成。

部分2,深度预测:

分步骤1,数据管理模块将第n帧图像RGB矩阵信息、Rt矩阵信息复制到SRAM单元2中,等待脉动阵列2完成上一次深度预测操作。

分步骤2:数据管理模块接收到脉动阵列2上一次深度预测完成信号后,将SRAM单元2内第n帧图像RGB矩阵信息输入脉动阵列2进行深度预测初始化操作。同时删除SRAM单元2内第(n-2)帧图像的所有信息。

分步骤3:脉动阵列2进行深度预测初始化操作。初始化操作包括但不限于进行第n帧图像的特征提取、源图像特征矩阵的生成与二级缓存区中参考图像特征矩阵的更新。其中,源图像特征矩阵为第n帧图像的特征矩阵,参考图像特征矩阵包括但不限于第(n-1)帧、第(n-2)帧图像的特征矩阵。脉动阵列2完成深度预测初始化操作后,将源图像特征矩阵与参考图像特征矩阵输入SRAM单元2中缓存。

分步骤4:进行本次深度预测操作前,通用处理器判断上一次深度预测操作是否已经结束。如果已经结束,则向脉动阵列2与辅助运算模块发出指令进行本次深度预测操作;如果未结束,则等待上一次深度预测操作结束后,再向脉动阵列2与辅助运算模块发出指令进行本次深度预测操作。

分步骤5:脉动阵列2与辅助运算模块进行深度预测运算。在深度预测运算每个分步骤执行前,通用处理器进行算法运算分析,如果该运算可分解为乘累加运算,则输入脉动阵列2进行运算;如果该运算不可分解为乘累加运算,则输入辅助运算模块进行运算。在深度预测运行过程中,通用处理器会依据分步骤计算需要将源图像特征矩阵、参考图像特征矩阵或Rt矩阵等信息送入脉动阵列2或辅助运算模块进行深度预测操作。运算完成后,通用处理器向数据管理模块发出深度预测操作完成的信号,并将运算得出的深度信息与置信度信息缓存进入SRAM单元2。数据管理模块接收到深度预测完成信号后,将预测的深度信息复制至二级缓存区缓存。

部分2完成。

部分3,深度融合:

分步骤1,数据管理模块将第(n-1)帧图像RGB矩阵信息、第n帧图像RGB矩阵信息、预测的深度信息、置信度信息以及Rt矩阵信息从二级缓存区复制到SRAM单元3中,等待脉动阵列3完成上一次深度融合操作。

分步骤2:进行深度融合操作前,通用处理器首先判断上一次深度融合操作是否已经结束。如果已经结束,则向脉动阵列3与辅助运算模块发出指令进行本次深度融合操作;如果未结束,则等待上一次深度融合操作结束后,再向脉动阵列3与辅助运算模块发出指令进行本次深度融合操作。

分步骤3:脉动阵列3与辅助运算模块进行深度融合运算。在深度融合运算每个分步骤执行前,通用处理器进行算法运算分析,如果下一步运算可分解为乘累加运算,则输入脉动阵列3进行运算;如果下一步运算不可分解为乘累加运算,则输入辅助运算模块进行运算。在深度融合运行过程中,通用处理器会依据分步骤计算需要将第(n-1)帧图像RGB矩阵、第n帧图像RGB矩阵、深度、置信度或者Rt矩阵等信息送入脉动阵列2或辅助运算模块进行深度融合操作。同时,脉动整列3、通用处理器依据第(n-1)帧图像RGB矩阵、第n帧图像RGB矩阵进行回环检测,并以回环检测结果指导深度融合过程(如未发现回环,则正常进行深度融合;如发现回环,则进行回环矫正操作)。运算完成后,通用处理器向数据管理模块发出深度融合操作完成的信号,并将三维点云信息缓存进入SRAM单元3。数据管理模块接收到深度融合完成信号后,将三维点云信息输入主存进行存储,等待后续外设屏幕调用需要。同时,数据管理模块删除二级缓存区中第(n-2)帧图像所有信息,并向自己发出本次三维重建完成信号(操作包括但不限于:将寄存器某位置1或者置0)。

其中,需要说明的是,三维重建过程中,各部位操作所需的时间不一样,如图5所示,其展示了不同操作所需的时间,可以看出,特征点匹配运算比深度预测要快一点,因此,为了更好的实现流水线处理,可以配置多个深度预测单元即将多个矩阵单元配置为用于执行深度预测操作,由选通器判断那个深度预测单元空闲则将数据传输给该空闲单元,如果都不空闲则将数据输入数据暂存单元进行数据暂存。DMA控制器单元主要用于数据运算高峰时期的数据传输或者大批量的数据传输。通用处理器与寄存器单元的处于工作高峰状态时,则通过DMA控制器单元进行数据传输。大批量数据传输时,比如连续帧图像RGB特征矩阵,使用通用处理器与数据管理模块进行数据传输效率低下,此时使用DMA控制器单元进行大批量数据搬运。

如图6所示为所提供的一个实施例的加速器系统运算载荷分配图,反映系统中运算载荷分配与数据流向。其中,运算载荷及其分配的硬件单元包括:

脉动阵列1,用于进行特征点匹配运算,得出匹配像素信息;

脉动阵列2,用于进行深度预测,得出图像深度信息与置信度信息;

脉动阵列3,用于进行深度融合,得出三维点云信息;

通用处理器,用于进行多项式的计算,得出摄像头外参Rt旋转矩阵;

辅助运算模块,用于进行三维重建中较难分解的运算。

数据流向包括:

数据流向1:连续帧图像分别输入至脉动阵列1、脉动阵列2和脉动阵列3;

数据流向2:匹配像素与相机矫正信息输入至通用处理器;

数据流向3:Rt旋转矩阵输入至脉动阵列2和脉动阵列3;

数据流向4:辅助运算模块与脉动阵列2、脉动阵列3进行双向运算的数据交换;

数据流向5:图像深度信息与置信度信息输入至矩阵运算单元3;

数据流向6:三维点云信息输出至外设。

如图6所示为所提供的一个实施例的三维重建加速器的三级流水线时间流图,反映系统三级流水实施过程中的具体硬件资源分配与运行时间分布。

为最大限度使三维重建算法流畅运行,需要根据加速器三维重建运算载荷的分布合理分配自身硬件资源。其中,该实施例假设特征点匹配与Rt旋转矩阵的运算各占用一个运行周期;深度预测与深度融合各占用两个运行周期。

此时硬件资源分配的比例,包括:x个特征匹配运算单元、x个Rt旋转矩阵运算单元、2x个深度预测运算单元以及2x个深度融合运算单元。

数据流向为:

首先,进行特征点匹配运算。随后,进行Rt旋转矩阵运算。然后,依据选通器选择深度预测单元进行运算;选通器判断哪些深度预测单元处于空闲状态,并在找到第一个空闲的深度预测单元后将数据传输给该深度预测单元进行运算。最后,依据选通器选择深度融合单元进行运算;选通器判断哪些深度融合单元处于空闲状态,并在找到第一个空闲的深度融合单元后将数据传输给该深度预测单元进行运算。

与现有技术相比,本控制方法的优点在于:本发明将特征点匹配、深度预测以及深度融合三个运算载荷大的运算主体分配给三个矩阵运算单元。通过对各矩阵运算单元的运算时间、算子比例进行合理分配,可使各矩阵运算单元间的运算互不干扰,达到三级流水线的并行处理效果。并行处理的架构提升了加速器针对三维重建任务中图像处理的高效性与兼容性。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术分类

06120116338833