CN117237181A - 基于自动微分的光束平差计算方法、装置、设备及介质 - Google Patents
基于自动微分的光束平差计算方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117237181A CN117237181A CN202311474982.3A CN202311474982A CN117237181A CN 117237181 A CN117237181 A CN 117237181A CN 202311474982 A CN202311474982 A CN 202311474982A CN 117237181 A CN117237181 A CN 117237181A
- Authority
- CN
- China
- Prior art keywords
- matrix
- calculating
- iteration
- error
- beam adjustment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 52
- 230000004069 differentiation Effects 0.000 title claims abstract description 31
- 239000011159 matrix material Substances 0.000 claims abstract description 103
- 239000013598 vector Substances 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 5
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 abstract description 5
- 230000006872 improvement Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于自动微分的光束平差计算方法、装置、设备及介质。方法包括:将原始数据上载至图形处理器,将原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,操作线程用于控制图形处理器进行多流协同计算;设定LM算法的可信域半径,根据可信域半径对各误差边块进行LM求解迭代,得到多个残差向量;通过操作线程对各残差向量进行自动微分,得到多个雅可比矩阵,通过操作线程对各雅可比矩阵进行计算,得到多个海森矩阵;将雅可比矩阵与海森矩阵作为初始观测数据保存于图形处理器,并根据初始观测数据计算每次迭代的求解质量,将求解质量保存于中央处理器。本申请实现了显存开销的削减,同时计算速度也获得了显著提升。
Description
技术领域
本发明涉及数字图像处理技术领域,尤其涉及一种基于自动微分的光束平差计算方法、装置、设备及介质。
背景技术
在基于照片的三维重建中,会通过若干方法提取出多张照片共同观测到的特征点,并且基于各种多视几何方法,对所有照片的位姿以及所有特征点的空间坐标进行初步推断,但往往推断是有一定误差的。常见的一种误差度量方式,是将空间中的特征点通过投影函数投影到某张照片上得到二维坐标,这个二维坐标距离图片中该特征点的原始二维坐标的距离,就是重投影误差。
现有技术中一般是通过光束平差法降低重投影误差。最经常用于求解光束平差法的开源求解器是Ceres Solver,它提供了一种名为Jet的自动微分方法,是用来求解光束平差法默认调用的微分法。基于这种方法,2021年的论文MegBA提出了纯GPU(GraphicsProcessing Unit,图形处理器)的光束平差法,其中自动微分实现了Jet类似的Jet向量。但是,论文MegBA中用于自动微分的数据结构显存开销非常巨大,对于较大的算例根本无法运行,计算效率较低。
发明内容
有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种基于自动微分的光束平差计算方法、装置、设备及介质。
本发明提供如下技术方案:
第一方面,本公开实施例中提供了一种基于自动微分的光束平差计算方法,所述方法包括:
将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;
设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;
通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;
将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。
进一步地,所述根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量,包括:
根据残差计算公式预测出所述误差边块上的三维点在相机模型中的预测值,获取所述误差边块上的三维点在投影模型中的真实值,获取所述相机模型的旋转矩阵、平移向量与焦距,并根据所述预测值、所述真实值、所述旋转矩阵、所述平移向量与所述焦距,计算出对应的残差向量。
进一步地,所述残差计算公式为:
式中,P为所述预测值,R为所述旋转矩阵,X为所述三维点,t为所述平移向量,PZ为所述真实值,p为负像素坐标,为正像素坐标,f为所述焦距,r为所述残差向量,k1和k2为预设径向畸变参数。
进一步地,所述对各所述雅可比矩阵进行计算,得到多个海森矩阵,包括:
计算所述雅可比矩阵与所述雅可比矩阵的转置矩阵的积值,将所述积值作为所述海森矩阵。
进一步地,所述对各所述雅可比矩阵进行计算,得到多个海森矩阵之后,还包括:
根据所述可信域半径处理所述海森矩阵的对角元素;
根据所述对角元素、所述海森矩阵与所述残差向量形成预设线性方程组,通过舒尔消元法简化所述预设线性方程组,并通过共轭梯度算法求解预设线性方程组,计算出自变量改变量,通过所述投影模型根据所述三维点与所述自变量改变量的和值计算优化残差向量;
将所述优化残差向量的二范数与所述残差向量进行比较,以调整所述可信域半径。
进一步地,所述预设线性方程组为:
式中,为所述海森矩阵的对角元素,/>为所述自变量改变量,/>为所述转置矩阵,r为所述残差向量。
进一步地,所述将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器,包括:
将每进行完一次迭代得到的雅可比矩阵与海森矩阵作为所述初始观测数据保存于所述图形处理器;
根据所述初始观测数据与所述自变量改变量计算每次迭代的求解质量,将所述求解质量保存于所述中央处理器,并清除所述图形处理器中的雅可比矩阵,其中,所述中央处理器用于 LM 算法流程控制。
第二方面,本公开实施例中提供了一种基于自动微分的光束平差计算装置,所述装置包括:
开启模块,用于将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;
迭代模块,用于设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;
计算模块,用于通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;
存储模块,用于将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。
第三方面,本公开实施例中提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中所述的基于自动微分的光束平差计算方法的步骤。
第四方面,本公开实施例中提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的基于自动微分的光束平差计算方法的步骤。
本申请的有益效果:
本申请实施例提供的基于自动微分的光束平差计算方法,方法包括:
将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。本申请实现了显存开销的削减,同时计算速度也获得了显著提升。
为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种基于自动微分的光束平差计算方法的流程图;
图2示出了本申请实施例提供的一种基于自动微分的光束平差装置的结构示意图;
图3示出了本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。相反,当元件被称作“直接在”另一元件“上”时,不存在中间元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在模板的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例1
如图1所示,为本申请实施例中的一种基于自动微分的光束平差计算方法的流程图,本申请实施例提供的基于自动微分的光束平差计算方法包括以下步骤:
步骤S110,将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算。
在本实施例中,首先原始数据上载至图形处理器,然后将原始数据中重投影误差的误差边分为多个误差边块,而不是像现有技术中同时对所有误差边进行自动微分,大大减少了显存需求。
此外,在图形处理器中开启多个操作线程,每个操作线程使用一个CUDA(ComputeUnified Device Architecture)流,让不同的操作线程来提交不同的误差边块的计算任务,可以控制误差边块的粒度,避免了集中的计算任务,在一定程度上缓解了原子加的冲突,提高了总体性能。
步骤S120,设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量。
具体地,设定一个初始的可信域半径,然后进入LM求解迭代流程:首先根据残差计算公式预测出误差边块上的三维点在相机模型中的预测值P,并获取三维点在投影模型中的真实值PZ,获取相机模型的旋转矩阵R、平移向量t与焦距f,根据预测值P与真实值PZ计算出三维点在投影模型中的负像素坐标p,再根据预设径向畸变参数k1和k2计算出残差向量,并得到了以图像中心为原点,x轴右正y轴上正的正像素坐标/>,具体的残差计算公式如下:
式中,P为所述预测值,R为所述旋转矩阵,X为所述三维点,t为所述平移向量,PZ为所述真实值,p为负像素坐标,为正像素坐标,f为所述焦距,r为所述残差向量,k1和k2为预设径向畸变参数。
可以理解的是,在本实施例中,相机模型采用针孔模型,具体采用的模型可根据实际情况确定,本申请实施例对此不作限定。
步骤S130,通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵。
可以理解的是,为了实现自动微分,本申请引入Jet,它表示了一个因变量,以及和它相关的若干自变量的导数。在只有单个自变量的情况下,Jet数据结构是一个二元组{,/>},同时存储了变量本身/>和导数/>。以乘法为例,一般来说。在本申请Jet数据结构会这样执行{/>,/>}×{,/>}={/>,/>};当有多个自变量(如两个)的时候,Jet数据结构则变成如下:{/>,[/>,/>]}。对于每个自变量,运算法则和上面只有一个自变量的时候相同。Jet Vector(Jet 的向量)数据结构也做法非常简单。利用了在常规BA问题中每条误差边的投影模型完全相同的特性,将不同的Jet按行叠加起来就可以了。
进一步地,由于自动微分的存在,在计算出残差向量r之后,雅可比矩阵J将会自然得出。并计算雅可比矩阵的转置矩阵/>,并计算雅可比矩阵/>与转置矩阵/>的积值,将所述积值作为海森矩阵/>,即/>。
需要说明的是,本实施例使用一部分操作线程来提交误差边块的雅可比矩阵的计算任务,使用剩余部分操作线程来提交误差边块的海森矩阵的计算任务,这样就可以控制误差边块的粒度,这样一部分操作线程控制的CUDA流在计算雅可比矩阵,另一部分在计算海森矩阵,避免了集中的海森矩阵计算,在一定程度上缓解了原子加的冲突,提高了总体性能。
计算出海森矩阵后,根据可信域半径处理海森矩阵的对角元素/>,然后根据对角元素/>、转置矩阵/>与残差向量/>形成预设线性方程组,通过舒尔消元法简化所述预设线性方程组,并通过共轭梯度算法求解预设线性方程组,求解出每次迭代的自变量改变量/>,其中,预设线性方程组为:
式中,为所述海森矩阵的对角元素,/>为所述自变量改变量,/>为所述海森矩阵的转置矩阵,r为所述残差向量。
接着将三维点与自变量改变量/>的和值作为新的三维点,即/>,再根据投影模型针对新的三维点计算出新的优化残差向量,查看优化残差向量的二范数,将优化残差向量的二范数与步骤S120中计算得到的残差向量进行比较。
如果优化残差向量的二范数比原来的残差向量高,则缩小可信域半径,并且对进行回滚;如果优化残差向量的二范数比原来的残差向量低,则根据雅可比矩阵J和自变量改变量/>计算可信域半径/>的放大倍率,对可信域半径/>进行放大。
需要说明的是,LM算法中可信域半径的计算公式如下:
式中,为缩放系数,/>为海森矩阵H对角元素的最大值。
每次LM迭代中,首先计算出海森矩阵H,然后根据上式即可计算出本次迭代的可信域半径。
在迭代过程中,若优化残差向量比原来的残差向量增大,则将缩小一定倍数(如10倍),并回退迭代;若优化残差向量比原来的残差向量减少,则将/>放大一定倍数(如2倍),增大可信域范围,这样通过调整/>从而动态调整可信域半径/>,实现LM算法的收敛。
步骤S140,将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器,其中,所述中央处理器用于 LM 算法流程控制。
可以理解的是,LM算法中求解质量的计算,会需要雅可比矩阵J和自变量改变量。由于雅可比矩阵J的存储需要大量的空间,因此本申请不会在GPU图形处理器上保存完整的雅可比矩阵J,而是在计算出每一段误差边块的雅可比矩阵J和海森矩阵H之后,将雅可比矩阵J和海森矩阵H作为初始观测数据保存于GPU图形处理器,然后再根据初始观测数据于自变量改变量/>计算每次迭代的求解质量,将求解质量保存于CPU中央处理器,当传输完成的时候就会在GPU图形处理器中释放这一段误差边块的雅可比矩阵J。
此外,由于求解质量的计算在CPU中央处理器上需要一定的时间,所以可以在下一次LM迭代中GPU图形处理器进行雅可比矩阵J和海森矩阵H计算的同时,在CPU中央处理器上计算本次LM迭代的求解质量。
通过上述方法不仅实现了显存开销的削减,同时也利用上了CPU的算力,支持CPU-GPU协同计算,相比最新开源的基于自动微分的GPU光束平差法,显存开销大约为1/10,计算速度提升了1.5倍。
本申请实施例提供的基于自动微分的光束平差计算方法,通过将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。本申请实现了显存开销的削减,同时计算速度也获得了显著提升。
实施例2
如图2所示,为本申请实施例中的一种基于自动微分的光束平差装置200的结构示意图,其装置包括:
开启模块210,用于将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;
迭代模块220,用于设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;
计算模块230,用于通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;
存储模块240,用于将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。
可选地,上述基于自动微分的光束平差装置200还包括:
迭代子模块,用于根据残差计算公式预测出所述误差边块上的三维点在相机模型中的预测值,获取所述误差边块上的三维点在投影模型中的真实值,获取所述相机模型的旋转矩阵、平移向量与焦距,并根据所述预测值、所述真实值、所述旋转矩阵、所述平移向量与所述焦距,计算出对应的残差向量。
可选地,上述基于自动微分的光束平差装置200还包括:
计算子模块,用于计算所述雅可比矩阵与所述雅可比矩阵的转置矩阵的积值,将所述积值作为所述海森矩阵。
可选地,上述基于自动微分的光束平差装置200还包括:
处理模块,用于根据所述可信域半径处理所述海森矩阵的对角元素;
第三计算子模块,用于根据所述对角元素、所述海森矩阵与所述残差向量形成预设线性方程组,通过舒尔消元法简化所述预设线性方程组,并通过共轭梯度算法求解预设线性方程组,计算出自变量改变量,通过所述投影模型根据所述三维点与所述自变量改变量的和值计算优化残差向量;
调整模块,用于将所述优化残差向量的二范数与所述残差向量进行比较,以调整所述可信域半径。
可选地,上述基于自动微分的光束平差装置200还包括:
第一存储子模块,用于将每进行完一次迭代得到的雅可比矩阵与海森矩阵作为所述初始观测数据保存于所述图形处理器;
第二存储子模块,用于根据所述初始观测数据与所述自变量改变量计算每次迭代的求解质量,将所述求解质量保存于所述中央处理器,并清除所述图形处理器中的雅可比矩阵,其中,所述中央处理器用于 LM 算法流程控制。
本申请实施例提供的基于自动微分的光束平差装置,实现了显存开销的削减,同时计算速度也获得了显著提升。
实施例3
本申请实施例还提供一种计算机设备。具体请参阅图3,图3为本实施例计算机设备基本结构框图。
所述计算机设备3包括通过系统总线相互通信连接存储器31、处理器32、网络接口33。需要指出的是,图中仅示出了具有组件31-33的计算机设备3,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器 (Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D插槽兼容性测试存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器31可以是所述计算机设备3的内部存储单元,例如该计算机设备3的硬盘或内存。在另一些实施例中,所述存储器31也可以是所述计算机设备3的外部存储设备,例如该计算机设备3上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)等。当然,所述存储器31还可以既包括所述计算机设备3的内部存储单元也包括其外部存储设备。本实施例中,所述存储器31通常用于存储安装于所述计算机设备3的操作系统和各类应用软件,例如插槽兼容性测试方法的计算机可读指令等。此外,所述存储器31还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器32在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他基于自动微分的光束平差芯片。该处理器32通常用于控制所述计算机设备3的总体操作。本实施例中,所述处理器32用于运行所述存储器31中存储的计算机可读指令或者处理数据,例如运行所述插槽兼容性测试方法的计算机可读指令。
所述网络接口33可包括无线网络接口或有线网络接口,该网络接口33通常用于在所述计算机设备3与其他电子设备之间建立通信连接。
本实施例中提供的计算机设备可以执行上述基于自动微分的光束平差计算方法,本实施例在此不再赘述。此处基于自动微分的光束平差计算方法可以是上述各个实施例的基于自动微分的光束平差计算方法。
实施例4
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中基于自动微分的光束平差计算方法的步骤,本实施例在此不再赘述。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质可以是非易失性存储介质,也可以是易失性存储介质,例如所述存储介质可以为:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于自动微分的光束平差计算方法,其特征在于,所述方法包括:
将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;
设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;
通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;
将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。
2.根据权利要求1所述的基于自动微分的光束平差计算方法,其特征在于,所述根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量,包括:
根据残差计算公式预测出所述误差边块上的三维点在相机模型中的预测值,获取所述误差边块上的三维点在投影模型中的真实值,获取所述相机模型的旋转矩阵、平移向量与焦距,并根据所述预测值、所述真实值、所述旋转矩阵、所述平移向量与所述焦距,计算出对应的残差向量。
3.根据权利要求2所述的基于自动微分的光束平差计算方法,其特征在于,所述残差计算公式为:
式中,P为所述预测值,R为所述旋转矩阵,X为所述三维点,t为所述平移向量,PZ为所述真实值,p为负像素坐标,为正像素坐标,f为所述焦距,r为所述残差向量,k1和k2为预设径向畸变参数。
4.根据权利要求3所述的基于自动微分的光束平差计算方法,其特征在于,所述对各所述雅可比矩阵进行计算,得到多个海森矩阵,包括:
计算所述雅可比矩阵与所述雅可比矩阵的转置矩阵的积值,将所述积值作为所述海森矩阵。
5.根据权利要求4所述的基于自动微分的光束平差计算方法,其特征在于,所述对各所述雅可比矩阵进行计算,得到多个海森矩阵之后,还包括:
根据所述可信域半径处理所述海森矩阵的对角元素;
根据所述对角元素、所述海森矩阵与所述残差向量形成预设线性方程组,通过舒尔消元法简化所述预设线性方程组,并通过共轭梯度算法求解预设线性方程组,计算出自变量改变量,通过所述投影模型根据所述三维点与所述自变量改变量的和值计算优化残差向量;
将所述优化残差向量的二范数与所述残差向量进行比较,以调整所述可信域半径。
6.根据权利要求5所述的基于自动微分的光束平差计算方法,其特征在于,所述预设线性方程组为:
式中,为所述海森矩阵的对角元素,/>为所述自变量改变量,/>为所述转置矩阵,r为所述残差向量。
7.根据权利要求6所述的基于自动微分的光束平差计算方法,其特征在于,所述将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器,包括:
将每进行完一次迭代得到的雅可比矩阵与海森矩阵作为所述初始观测数据保存于所述图形处理器;
根据所述初始观测数据与所述自变量改变量计算每次迭代的求解质量,将所述求解质量保存于所述中央处理器,并清除所述图形处理器中的雅可比矩阵,其中,所述中央处理器用于 LM 算法流程控制。
8.一种基于自动微分的光束平差计算装置,其特征在于,所述装置包括:
开启模块,用于将原始数据上载至图形处理器,将所述原始数据中重投影误差的误差边分为多个误差边块,并开启多个操作线程,所述操作线程用于控制所述图形处理器进行多流协同计算;
迭代模块,用于设定LM算法的可信域半径,根据所述可信域半径对各所述误差边块进行LM求解迭代,得到多个残差向量;
计算模块,用于通过所述操作线程对各所述残差向量进行自动微分,得到多个雅可比矩阵,通过所述操作线程对各所述雅可比矩阵进行计算,得到多个海森矩阵;
存储模块,用于将所述雅可比矩阵与所述海森矩阵作为初始观测数据保存于所述图形处理器,并根据所述初始观测数据计算每次迭代的求解质量,将所述求解质量保存于中央处理器。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的基于自动微分的光束平差计算方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的基于自动微分的光束平差计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474982.3A CN117237181B (zh) | 2023-11-08 | 2023-11-08 | 基于自动微分的光束平差计算方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311474982.3A CN117237181B (zh) | 2023-11-08 | 2023-11-08 | 基于自动微分的光束平差计算方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117237181A true CN117237181A (zh) | 2023-12-15 |
CN117237181B CN117237181B (zh) | 2024-03-29 |
Family
ID=89086324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311474982.3A Active CN117237181B (zh) | 2023-11-08 | 2023-11-08 | 基于自动微分的光束平差计算方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117237181B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928605A (zh) * | 2019-11-14 | 2020-03-27 | 天津大学 | 一种基于Zynq FPGA的光束平差法硬件加速器 |
CN111028125A (zh) * | 2019-11-14 | 2020-04-17 | 天津大学 | 一种用于slam的已知自身位姿的光束平差法fpga加速器 |
US20200349341A1 (en) * | 2019-04-30 | 2020-11-05 | Samsung Electronics Co., Ltd. | Performing an iterative bundle adjustment for an imaging device |
CN114202454A (zh) * | 2021-11-01 | 2022-03-18 | 北京旷视科技有限公司 | 图优化方法、系统、计算机程序产品以及存储介质 |
CN114998090A (zh) * | 2022-06-01 | 2022-09-02 | 西安电子科技大学 | 一种光束法平差算法数字图像处理的加速方法及系统 |
-
2023
- 2023-11-08 CN CN202311474982.3A patent/CN117237181B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200349341A1 (en) * | 2019-04-30 | 2020-11-05 | Samsung Electronics Co., Ltd. | Performing an iterative bundle adjustment for an imaging device |
CN110928605A (zh) * | 2019-11-14 | 2020-03-27 | 天津大学 | 一种基于Zynq FPGA的光束平差法硬件加速器 |
CN111028125A (zh) * | 2019-11-14 | 2020-04-17 | 天津大学 | 一种用于slam的已知自身位姿的光束平差法fpga加速器 |
CN114202454A (zh) * | 2021-11-01 | 2022-03-18 | 北京旷视科技有限公司 | 图优化方法、系统、计算机程序产品以及存储介质 |
CN114998090A (zh) * | 2022-06-01 | 2022-09-02 | 西安电子科技大学 | 一种光束法平差算法数字图像处理的加速方法及系统 |
Non-Patent Citations (2)
Title |
---|
ZHICHAO YE 等: "CoLi-BA: Compact Linearization based Solver for Bundle Adjustment", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, vol. 28, no. 11, pages 3727 - 3736, XP011924393, DOI: 10.1109/TVCG.2022.3203119 * |
罗杨宇 等: "基于光束平差法的双目视觉里程计研究", 控制与决策, vol. 31, no. 11, pages 1936 - 1944 * |
Also Published As
Publication number | Publication date |
---|---|
CN117237181B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109741287B (zh) | 图像导向滤波方法及装置 | |
WO2023035531A1 (zh) | 文本图像超分辨率重建方法及其相关设备 | |
CN109191512A (zh) | 双目图像的深度估计方法及装置、设备、程序及介质 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN108399634B (zh) | 基于云端计算的rgb-d数据生成方法及装置 | |
CN110956131A (zh) | 单目标追踪方法、装置及系统 | |
CN113240578B (zh) | 图像特效的生成方法、装置、电子设备及存储介质 | |
WO2014117559A1 (en) | 3d-rendering method and device for logical window | |
CN111062884A (zh) | 一种图像增强方法、装置、存储介质和终端设备 | |
US20160182807A1 (en) | Image Defocus Blur Estimation | |
CN112634172A (zh) | 一种利用二维图像生成三维模型的3d打印方法及装置 | |
CN110765799A (zh) | 客户端扫码识别方法、装置、设备及存储介质 | |
CN113327193A (zh) | 图像处理方法、装置、电子设备和介质 | |
CN116468632A (zh) | 一种基于自适应特征保持的网格去噪方法及装置 | |
CN113516697B (zh) | 图像配准的方法、装置、电子设备及计算机可读存储介质 | |
CN113506305B (zh) | 三维点云数据的图像增强方法、语义分割方法及装置 | |
CN117237181B (zh) | 基于自动微分的光束平差计算方法、装置、设备及介质 | |
CN113361380A (zh) | 人体关键点检测模型训练方法、检测方法及装置 | |
CN111091083B (zh) | 基于图像的人脸尺度计算方法、装置及电子设备 | |
CN102625046B (zh) | 照相防抖装置及方法 | |
CN108520259B (zh) | 一种前景目标的提取方法、装置、设备及存储介质 | |
CN115908116A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
US11910068B2 (en) | Panoramic render of 3D video | |
CN115935909A (zh) | 一种文件生成方法、装置及电子设备 | |
CN114119831A (zh) | 积雪模型的渲染方法、装置、电子设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |