本技术涉及捆绑调整优化,特别涉及一种捆绑调整计算架构的计算方法、装置和电子设备。
背景技术:
1、感知定位能力是支撑无人系统完成复杂任务的基础。gps等外部定位方案的精度受限,且无法较好地在室内环境发挥作用。因此,在未知环境中依靠自身里程计完成自主定位尤为重要,是无人机规划、决策、协作的基础能力。
2、ba(bundle adjustment,捆绑调整)优化是一种优化视觉定位精度的技术,在视觉定位里程计等感知任务中广泛使用。一般的视觉定位处理,是通过对两帧图像进行特征提取和匹配,估计两帧图像之间系统的位姿变化和视觉特征点的空间位置。然而,这种估算局部时间内相机运动以及特征点的位置的方式,在较长时间的运动过程中非常容易产生轨迹漂移。因此,需要引入ba优化模型,针对过去较长时间内的所有观测数据,建立一个非线性最小二乘问题,通过最小化重投影误差来获得最优运动估计。
3、然而,ba优化过程带来了高昂的计算成本,导致cpu难以实时运算;并且具备稀疏特性,导致gpu难以高效处理。因此,针对各类资源受限的小型无人系统,有必要设计高效的ba优化加速器以支撑各类视觉感知任务。
4、目前的ba优化加速器方案主要分为两类。一类直接将ba优化中的数据当作稠密矩阵处理,基于并行计算阵列完成;另一类注意到ba优化中的数据稀疏性,但是通过离线统计的方式,先分析当前场景的数据特性,再决定硬件模块的设计参数。
5、然而,上面提到的两类现有方案,均存在资源利用效率低、开销大的问题。对于第一类基于并行计算阵列的方案,虽然能够同时完成其他通用计算任务,但是忽视了ba优化的数据稀疏性,导致硬件资源开销大;对于第二类方案,虽然通过离线分析当前场景的特性能获得针对该场景的优秀设计,但是迁移到不同场景任务时加速器的计算效率低,硬件模块的参数需要重新设计。
技术实现思路
1、本技术提供一种捆绑调整计算架构的计算方法、装置和电子设备,以解决目前的ba优化加速器方案存在资源利用效率低、开销大的问题。
2、本技术第一方面实施例提供一种捆绑调整计算架构的计算方法,所述捆绑调整计算架构包括现场可编程门阵列fpga(field programmable gate array)加速器,其中,方法包括以下步骤:获取多个gtg计算序列和多个ftf计算序列;将每个gtg计算序列划分为多个第一子任务,并将每个ftf计算序列划分为多个第二子任务;基于所有第一子任务的优先级和所述所有第二子任务的优先级,动态分配所述每个gtg计算序列对应的多个第一子任务和所述每个ftf计算序列对应的多个第二子任务至多个矩阵乘模块,并基于分配结果,利用所述fpga加速器进行捆绑调整优化计算。
3、可选地,所述获取多个gtg计算序列和多个ftf计算序列,包括:获取cpu端的视觉传感器测量数据,并基于所述视觉传感器测量数据生成jacobin矩阵;合并所述jacobin矩阵中属于同一空间点的矩阵行得到多组chunk块;将多组chunk块发送至预设通信模块得到所述多个ftf计算序列,并将所述chunk块从所述预设通信模块发送至所述fpga加速器中得到所述多个gtg计算序列。
4、可选地,在基于分配结果,利用所述fpga加速器进行捆绑调整优化计算时,包括:基于所述每个gtg计算序列对应的多个第一子任务和所述每个ftf计算序列对应的多个第二子任务,利用舍尔消元处理算法和所述fpga加速器进行捆绑调整优化计算,其中,所述舍尔消元处理算法为:
5、s=ftf-gtg;
6、其中,s为舍尔消元的计算结果。
7、可选地,任一第一子任务的优先级高于所有第二子任务的优先级。
8、可选地,所述每个gtg计算序列对应的多个第一子任务的数量均大于所述每个ftf计算序列对应的多个第二子任务的数量。
9、本技术第二方面实施例提供一种捆绑调整计算架构的计算装置,所述捆绑调整计算架构包括现场可编程门阵列fpga加速器,包括:获取模块,用于获取多个gtg计算序列和多个ftf计算序列;划分模块,用于将每个gtg计算序列划分为多个第一子任务,并将每个ftf计算序列划分为多个第二子任务;计算模块,用于基于所有第一子任务的优先级和所述所有第二子任务的优先级,动态分配所述每个gtg计算序列对应的多个第一子任务和所述每个ftf计算序列对应的多个第二子任务至多个矩阵乘模块,并基于分配结果,利用所述fpga加速器进行捆绑调整优化计算。
10、可选地,所述获取模块,还用于:获取cpu端的视觉传感器测量数据,并基于所述视觉传感器测量数据生成jacobin矩阵;合并所述jacobin矩阵中属于同一空间点的矩阵行得到多组chunk块;将多组chunk块发送至预设通信模块得到所述多个ftf计算序列,并将所述chunk块从所述预设通信模块发送至所述fpga加速器中得到所述多个gtg计算序列。
11、可选地,在基于分配结果,利用所述fpga加速器进行捆绑调整优化计算时,所述计算模块,还用于:基于所述每个gtg计算序列对应的多个第一子任务和所述每个ftf计算序列对应的多个第二子任务,利用舍尔消元处理算法和所述fpga加速器进行捆绑调整优化计算,其中,所述舍尔消元处理算法为:
12、s=ftf-gtg;
13、其中,s为舍尔消元的计算结果。
14、可选地,任一第一子任务的优先级高于所有第二子任务的优先级。
15、可选地,所述每个gtg计算序列对应的多个第一子任务的数量均大于所述每个ftf计算序列对应的多个第二子任务的数量。
16、本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的捆绑调整计算架构的计算方法。
17、本技术第四方面实施例提供一种计算机程序产品,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的捆绑调整计算架构的计算方法。
18、上述实施方式中,获取多个gtg计算序列和多个ftf计算序列,将每个gtg计算序列划分为多个第一子任务,并将每个ftf计算序列划分为多个第二子任务,基于所有第一子任务的优先级和所有第二子任务的优先级,动态分配每个gtg计算序列对应的多个第一子任务和每个ftf计算序列对应的多个第二子任务至多个矩阵乘模块,并基于分配结果,利用fpga加速器进行捆绑调整优化计算。由此,解决了目前的ba优化加速器方案存在资源利用效率低、开销大的问题,最大化处理单元pe(processing element,处理单元)的利用率,以便在占用硬件资源较少的情况下更高效地完成ba优化的计算,并且由于计算负载是动态分割和分配的,使得在不同场景任务下,计算负载的不同规模不会导致硬件计算效率的降低。
19、本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
20、附图说明
21、本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
22、图1为根据本技术实施例提供的一种捆绑调整计算架构的计算方法的流程图;
23、图2为根据本技术一个实施例的负载分配结构的示意图;
24、图3为根据本技术一个实施例的捆绑调整计算架构的计算方法的流程图;
25、图4为根据本技术实施例的捆绑调整计算架构的计算装置的示例图;
26、图5为根据本技术实施例的电子设备结构的示意图。
1.一种捆绑调整计算架构的计算方法,其特征在于,所述捆绑调整计算架构包括现场可编程门阵列fpga加速器,其中,方法包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述获取多个gtg计算序列和多个ftf计算序列,包括:
3.根据权利要求1所述的方法,其特征在于,在基于分配结果,利用所述fpga加速器进行捆绑调整优化计算时,包括:
4.根据权利要求3所述的方法,其特征在于,任一第一子任务的优先级高于所有第二子任务的优先级。
5.根据权利要求1所述的方法,其特征在于,所述每个gtg计算序列对应的多个第一子任务的数量均大于所述每个ftf计算序列对应的多个第二子任务的数量。
6.一种捆绑调整计算架构的计算装置,其特征在于,所述捆绑调整计算架构包括现场可编程门阵列fpga加速器,其中,包括:
7.根据权利要求6所述的装置,其特征在于,所述获取模块,还用于:
8.根据权利要求6所述的装置,其特征在于,在基于分配结果,利用所述fpga加速器进行捆绑调整优化计算时,所述计算模块,还用于:
9.一种电子设备,其特征在于,包括存储器、处理器;
10.一种计算机程序产品,所述计算机可读存储介质存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的捆绑调整计算架构的计算方法。