一种使用Cuda加速大规模BA并行优化方法技术

技术编号:34037228 阅读:40 留言:0更新日期:2022-07-06 12:36
本发明专利技术公开了一种使用Cuda加速大规模BA并行优化方法,包括如下步骤:S1、构建系统的能量残差方程;S2、求解线性方程组;S2

【技术实现步骤摘要】
一种使用Cuda加速大规模BA并行优化方法


[0001]本专利技术涉及巡检机器人算法
,具体指一种使用Cuda加速大规模BA并行优化方法。

技术介绍

[0002]BA(Bundle Adjustment)是许多视觉SLAM和激光SLAM的核心组件。它是经典的计算机视觉问题之一,已经被研究人员研究了60多年。虽然存在不同的公式,但潜在的问题总是相同的:给定一组近似的点(地标)位置,从许多不同姿势的相机观察,什么是实际的地标位置和相机姿势。人们已经可以用少量的图像计算出准确的3D位置。然而,有了更多可用的图像,我们将得到更完整的重建。随着大规模网络图片库的出现,需要解决大规模的捆绑调整问题,即成千上万的图片和成千上万的地标。大规模线性方程组的求解一直都是科学计算里的重要问题。随着图形处理器(GPU)硬件架构的不断发展,GPU的功能已经衍生到GPU通用计算领域。GPU作为CPU的协处理器完成大规模密集型计算任务,计算能力与小规模的集群相当。相比集群,GPU在功耗和成本上占有优势。2007年NVIDIA推出CUDA并行计算平台,降低了使用GPU加速计算的难度,科员人员可以更方便的使用GPU加速计算科研中的问题,这使得越来越多的领域开始引入GPU计算。
[0003]在BA优化问题中,其核心算法是对大规模线性方程组Ax=b的求解。同时,通过对实际数据的分析可知,线性方程组中的系数矩阵A通常为稀疏矩阵,SLAM系统大型稀疏矩阵的稠密度通常小于1%,如果不能有效的利用矩阵的稀疏性,在使用计算机处理大型稀疏矩阵操作时会把大量的存储和计算资源浪费在无效的零元上,导致处理效率低下缓慢,并且部分超大规模稀疏矩阵甚至无法使用传统的稠密矩阵算法来进行求解。

技术实现思路

[0004]本专利技术根据现有技术的不足,提出一种使用Cuda加速大规模BA并行优化方法,极大的提高了线性方程求解的并行度,有效的提高线性方程组求解效率,进而提高了全局位姿与观测点的优化效率。
[0005]为了解决上述技术问题,本专利技术的技术方案为:
[0006]一种使用Cuda加速大规模BA并行优化方法,包括如下步骤:
[0007]S1、构建系统的能量残差方程
[0008]S1

1定义世界坐标系下的点x
p
,通过旋转角度R和平移变换t,将点x
p
投影成像素坐标x
p
';
[0009]S1

2构建x
p
的像素坐标x
l
与投影的像素坐标x
p
'构成的系统误差方程r=(x
l

Rx
p
′‑
t)=(x
l

x
p

);
[0010]S1

3通过Levenberg

Marquardt算法最小化残差方程r,有
[0011][0012]其中,r=r(x0),Δx=x

x0;
[0013]S2、求解线性方程组
[0014]S2

1对J
l
进行QR分解,有
[0015][0016]S2

2使用QR分解边缘化线性方程组;
[0017]S3、将求解得到Δx
p
,Δx
l
代入原系统方程实现BA优化。
[0018]作为优选,所述步骤2
‑2[0019]将上式(2)中的Q左乘公式(1),有
[0020][0021]再将Q=(Q1,Q2)带入上式(3)中,实现系统的零空间边缘化,完成未知量Δx
p
,Δx
l
求解的解耦。
[0022]作为优选,所述步骤2

2还包括
[0023]将上式(3)通过QR分解成方程组Emin1(Δx
p
)、Emin2(Δx
p
,Δx
l
),先求解方程组Emin1(Δx
p
),得到Δx
p
,接着再将Δx
p
带入方程组Emin2(Δx
p
,Δx
l
)求出Δx
l

[0024]作为优选,所述步骤S2还包括步骤S2
‑3[0025]使用Cuda模型,实现对方程组Emin1(Δx
p
)、Emin2(Δx
p
,Δx
l
)的加速求解。
[0026]作为优选,所述步骤S2

1中,
[0027]设J
l
为m
×
n的满秩矩阵,m≥n,矩阵J
l
秩的大小为n,矩阵J
l
分解为m
×
m正交矩阵Q和m
×
n上三角矩阵R,由于R的下(m

n)行为零,将R和Q划分为:
[0028][0029]其中R1为n
×
n大小的上三角矩阵,Q1大小为m
×
n,Q2大小为m
×
(m

n)。
[0030]作为优选,所述Q2的列构成了A的左零空间,即
[0031]作为优选,所述步骤2

2中,利用上式(4)的QR分解,以及L2范数在正交变换下的不变性,将上式(3)变型为:
[0032][0033]作为优选,通过上述(5)进行QR分解得到
[0034]方程组Emin1(Δx
p
):
[0035][0036]方程组Emin2(Δx
p
,Δx
l
):
[0037][0038]本专利技术具有以下的特点和有益效果:
[0039]采用上述技术方案,该方法在代数上等同于常用的Schur补码技巧,提高了计算的数值稳定性,并允许用单精度浮点数解决大规模束平差问题。使用零空间边缘化作为传统舒尔补算法的替代方法,使得线性方程组Ax=b求解具有良好的并行性。与此同时,针对零空间边缘化后的线性方程组,使用基于GPU的稀疏对称矩阵的线性方程求解,这极大的提高了线性方程求解的并行度,有效的提高线性方程组求解效率,对硬件配置要求不高,不需要额外的设备去加速求解,一定程度上降低了硬件设备的成本,从而有效的摆脱现有硬件资源的限制,实现大规模三维场景三维重建过程中的优化,并且极大的提高了优化效率,在涉及本方案的slam工业场景中,极大的提高三维场景重建的速度,提高了全局位姿与观测点的优化效率,优化结果能够作为重建出更大规模三维场景稀疏三维点云的基础。
附图说明
[0040]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种使用Cuda加速大规模BA并行优化方法,其特征在于,包括如下步骤:S1、构建系统的能量残差方程S1

1定义世界坐标系下的点x
p
,通过旋转角度R和平移变换t,将点x
p
投影成像素坐标x
p
';S1

2构建x
p
的像素坐标x
l
与投影的像素坐标x
p
'构成的系统误差方程r=(x
l

Rx
p
'

t)=(x
l

x
p
');S1

3通过Levenberg

Marquardt算法最小化残差方程r,有其中,S2、求解线性方程组S2

1对J
l
进行QR分解,有S2

2使用QR分解边缘化线性方程组;S3、将求解得到Δx
p
,Δx
l
代入原系统方程实现BA优化。2.根据权利要求1所述的使用Cuda加速大规模BA并行优化方法,其特征在于,所述步骤2

2将上式(2)中的Q左乘公式(1),有再将Q=(Q1,Q2)带入上式(3)中,实现系统的零空间边缘化,完成未知量Δx
p
,Δx
l
求解的解耦。3.根据权利要求2所述的使用Cuda加速大规模BA并行优化方法,其特征在于,所述步骤2

2还包括将上式(3)通过QR分解成方程组Emin1(Δx
p
)、Emin2(Δx
p
,Δx
l
),先求解方程组Emin1(Δx
p
...

【专利技术属性】
技术研发人员:吴秋轩周忠容曾平良田杨阳毛万登孟秦源张波涛袁少光耿俊成赵健吕强仲朝亮罗艳斌
申请(专利权)人:国网河南省电力公司电力科学研究院国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1