一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图优化系统、方法、计算机程序产品以及存储介质与流程

2022-12-13 20:00:36 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,更具体地涉及一种图优化系统、一种图优化方法、一种计算机程序产品以及一种存储介质。


背景技术:

2.图优化技术把一个常规的优化问题以图(graph)的形式来表述。图是由顶点和边组成的结构,例如其可以是地图、路线图、人脸图等。具体例如,线路图中的特征点以及人脸图中的关键点等都可以看作图的顶点。每个顶点之间可以根据不同的规则进行连线以获得拓扑图。图优化可以认为是对这些拓扑图中的顶点数据以及采集这些图所利用的相机的位姿信息等参数进行误差分析并优化的过程。图优化技术在三维(3d)视觉、同步定位与建图(slam)的后端优化等领域有着广泛的应用。其应用范围包括但不限于例如大规模地图重建、高精度地图重建等。
3.一般地,在执行图优化的过程中需要求解稀疏线性方程。现有的图优化系统通常仅包括一个图形处理器(gpu),依赖该gpu的计算能力对稀疏线性方程求解。具体地,在求解稀疏线性方程时,该gpu往往首先利用舒尔消元法对该稀疏线性方程进行消元,之后对消元后得到的消元线性方程进行求解。而在利用舒尔消元法进行消元的过程中包括一系列计算操作,进而可能产生并存储大量的中间数据。因此,上述消元过程可能会占用大量的内存,而内存占用过多必然对gpu的处理速度造成较大影响,从而降低图优化的效率。此外,随着稀疏线性方程的规模的增大,舒尔消元过程中涉及到的中间数据也更多。在中间数据的数量超过内存所能承载的阈值时,该gpu将无法实现对稀疏线性方程的求解,进而,无法实现图优化。
4.因此,亟需一种新的技术方案以解决上述技术问题。


技术实现要素:

5.考虑到上述问题而提出了本技术。根据本技术的一个方面,提供了一种图优化系统,包括:第一计算装置和多个第二计算装置,第一计算装置用于:获取图的顶点数据;对图的顶点数据进行分块处理,以获得多组分块顶点数据,并将每组分块顶点数据一对一地存储到多个第二计算装置;自多个第二计算装置分别接收优化后的分块顶点数据,并基于优化后的分块顶点数据,重建图;第二计算装置用于:基于各自存储的分块顶点数据执行第一计算操作以获得计算数据,并基于计算数据以及从多个第二计算装置中的其他第二计算装置获得的计算数据确定优化后的分块顶点数据。
6.示例性地,第一计算装置还用于获取用于计算图的重投影误差的目标函数;对于第i个第二计算装置,第i个第二计算装置基于所存储的分块顶点数据执行第一计算操作以获得计算数据,并基于计算数据以及从多个第二计算装置中的其他第二计算装置获得的计算数据确定优化后的分块顶点数据,通过以下方式实现:基于所存储的分块顶点数据以及目标函数,计算分块重投影误差、分块重投影误差关于分块顶点数据的分块雅可比矩阵;基
于分块重投影误差,构建关于分块雅可比矩阵的分块稀疏线性方程;以及基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据确定优化后的分块顶点数据,其中,第i个第二计算装置的计算数据是基于分块重投影误差、分块雅可比矩阵和分块稀疏线性方程执行第二计算操作获得的。
7.示例性地,第i个第二计算装置基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据确定优化后的分块顶点数据,通过以下方式实现:基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据执行第三计算操作,确定使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量;判断第一增量是否满足图重建条件;对于第一增量不满足图重建条件的情况,基于第一增量更新当前的分块顶点数据,以再次确定使图的重投影误差最小的顶点数据相对于更新后的顶点数据的第一增量,重复上述操作直至最新确定的第一增量满足图重建条件;基于满足图重建条件的第一增量更新当前的分块顶点数据,以获得优化后的分块顶点数据。
8.示例性地,第i个第二计算装置基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据执行第三计算操作,确定使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量,通过以下方式实现:利用共轭梯度法基于第i个第二计算装置的计算数据以及其他第二计算装置的计算数据执行第四计算操作,确定第一向量和第二向量中的任意一个向量,其中,第一向量和第二向量能够拼接形成第一增量;基于第一向量和第二向量中的所确定的向量,计算第一向量和第二向量中的另一个向量,以确定第一增量。
9.示例性地,第i个第二计算装置基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据执行第三计算操作,确定使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量时,其中,对于al的乘积的计算通过以下方式实现:将运算式a中的对应的数据右乘向量l,以获得乘积向量;与其他第二计算装置进行通信,并将乘积向量和经由通信获得的其他第二计算装置的乘积向量进行累加,以获得al的乘积;其中,a表示关于矩阵e的运算式,e表示用于采集顶点数据的图像采集装置的位置信息与图的角点的位置信息之间的约束矩阵,图的顶点数据中包括图的角点的位置信息,l表示任意向量,ei表示分块约束矩阵,n表示第二计算装置的个数。
10.示例性地,第一计算装置对图的顶点数据进行分块处理,通过以下方式实现:根据第二计算装置的个数,对图的顶点数据进行平均分块处理。
11.根据本技术的第二方面,还提供了一种图优化方法,包括:
12.利用第一计算装置获取图的顶点数据,并且对图的顶点数据进行分块处理,以获得多组分块顶点数据,并将每组分块顶点数据一对一地存储到多个第二计算装置;
13.利用第二计算装置基于各自存储的分块顶点数据执行第一计算操作以获得计算数据,与其他第二计算装置之间进行通信,并基于计算数据以及经由通信获得的其他第二计算装置的计算数据确定优化后的分块顶点数据;
14.利用第一计算装置基于优化后的分块顶点数据,重建图。
15.根据本技术的第三方面,还提供了一种计算机程序产品,包括程序指令,程序指令在运行时用于执行如前所述的图优化方法。
16.根据本技术的第四方面,还提供了一种存储介质,在存储介质上存储了程序指令,
程序指令在运行时用于执行如前所述的图优化方法。
17.在上述技术方案中,对整个图的顶点数据进行分块处理,使得每块顶点数据可以利用不同的计算装置分别独立更新,以获得优化后的分块顶点数据,进而基于这些优化后的分块顶点数据完成整个图的重建。由于对于单个计算装置来说,其数据处理量有限,所以避免了由于中间数据较多而导致的系统崩溃问题,保证了图优化的顺利进行,而且,显著提高了图优化的效率。
附图说明
18.通过结合附图对本技术实施例进行更详细的描述,本技术的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本技术实施例的进一步理解,并且构成说明书的一部分,与本技术实施例一起用于解释本技术,并不构成对本技术的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
19.图1示出了根据本技术一个实施例的图优化系统的示意性框图;以及
20.图2示出了根据本技术一个实施例的图优化方法的示意性流程图。
具体实施方式
21.近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(slam)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
22.为了使得本技术的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本技术的示例实施例。显然,所描述的实施例仅仅是本技术的一部分实施例,而不是本技术的全部实施例,应理解,本技术不受这里描述的示例实施例的限制。基于本技术中描述的实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本技术的保护范围之内。
23.为了解决上述至少部分技术问题,本技术提出了一种图优化系统,利用一个第一计算装置和多个第二计算装置对图中的顶点数据等进行分块处理运算。可以理解,有关一个大矩阵的乘法运算可以拆解为若干个小矩阵的乘法运算并对乘法运算的结果求和的加法运算。因此,在图优化的计算过程中,关于顶点数据的计算处理都是线性的,所以可以对其进行分块处理,而不影响计算的准确性。例如针对稀疏线性方程求解的过程中,若涉及到
大矩阵的乘法运算,可以按照前述原理对其进行拆解,以使不同计算装置分别执行各自的乘法运算,之后这些计算装置进行通信以实现对这些乘法运算结果的加和,从而获得大矩阵的乘法运算结果。具体地,通过分块处理将稀疏线性方程拆解为多个子稀疏线性方程,将上述这些子稀疏线性方程分配给不同的计算装置进行求解。由此,在保证数据正确性的前提下,能实现大规模高精地图重建。
24.图1示出了根据本技术一个实施例的图优化系统100的示意性框图。该图优化系统100可用于高精地图重建、快速三维重建、大规模地图重建等场景。
25.如图1所示,图优化系统100可以包括一个第一计算装置110和多个第二计算装置120。
26.示例性地,第一计算装置110可以用于获取图的顶点数据。第一计算装置110可以是中央处理器(cpu)。例如,可以将图像采集装置拍摄的某个物体上的各个角点等感兴趣点、图像采集装置所在的位置点等称为特征点。图的顶点包括这些直接采集的特征点以及根据这些特征点利用三角化技术等计算的特征点。视特征点不同,图的顶点数据可以包括特征点坐标和相机位姿信息等。特征点坐标是指图上的特征点在世界坐标系中的位置坐标。世界坐标系可以是任一基准坐标系,例如直角坐标系。相机位姿信息中可以包括相机位置信息,即相机在世界坐标系中的位置坐标;其还可以包括相机在世界坐标系下的旋转角度等姿态信息。可以理解,特征点坐标和相机位置坐标均为三维空间下的位置坐标。对于直接采集的特征点,可以通过使用光学相机、激光雷达、惯性加速度计等传感器采集图的顶点数据,第一计算装置110可以自前述装置或设备等获取图的顶点数据。可选地,对于计算获得的特征点,第一计算装置110可以基于直接采集的特征点进行相关计算从而获取图的顶点数据。
27.第一计算装置110在获取图的顶点数据之后可以对其进行分块处理,以获得多组分块顶点数据,并将每组分块顶点数据一对一地存储到多个第二计算装置120。
28.可选地,根据第二计算装置120的个数,对图的顶点数据进行平均分块处理。例如,第二计算装置120可以是gpu。在一个实施例中,可以包括5个gpu。这些gpu的计算能力可以相同。可以将图的顶点数据进行5等分,以获得5组分块顶点数据。其中,每组分块顶点数据可以分别一对一地存储到这5个gpu中。由此,对图的顶点数据进行平均分块处理不仅算法简单容易实现,同时还可以保证后续每个第二计算装置120的计算过程以及需要处理的数据量均相同,进而可以保证所有第二计算装置120的数据处理效率相同,即可以同步输出结果。由此,充分利用图优化系统的计算资源,提高图优化系统的图优化速度。
29.替代地,还可以将第二计算装置120再细分为主第二计算装置和副第二计算装置。具体地,主第二计算装置的相关参数,例如,流处理器的数量、核心频率等均高于副第二计算装置的相关参数。可以理解,在第二计算装置120是gpu的情况下,对于gpu而言,流处理器的数量越多或核心频率越高等均可以表示其对数据的处理能力越高。因此,可以根据前述第二计算装置120的相关参数为主第二计算装置和副第二计算装置分配不同的分块顶点数据。即,按照主第二计算装置和副第二计算装置对数据的处理能力,对图的顶点数据进行分块处理。其中,主第二计算装置中存储的分块顶点数据的数据量大于副第二计算装置中存储的分块顶点数据的数据量。由此,可以保证每个第二计算装置120对数据的处理能力在最大程度上被利用,同时避免了第二计算装置120对数据的处理能力不足而导致图优化无法
顺利实现的现象的发生。
30.第二计算装置120在存储了分块顶点数据之后,可以基于各自存储的分块顶点数据执行第一计算操作以获得计算数据,并基于计算数据以及从多个第二计算装置120中的其他第二计算装置120获得的计算数据确定优化后的分块顶点数据。
31.例如,在图优化系统100中的每个第二计算装置120彼此之间可以进行通信,以实现数据交互。具体地,多个第二计算装置120可以同时基于各自存储的分块顶点数据执行第一计算操作,进而获得各自的计算数据。这些第二计算装置120之间进行一次通信,经由通信其中一个第二计算装置120可以获取来自其他第二计算装置120的计算数据。之后,每个第二计算装置120可以对自身计算获得的计算数据以及经由通信获得的其他第二计算装置120的计算数据进行累加、累乘或累加后再乘特定系数等一系列计算操作,以获得新的计算数据。第二计算装置120可以将该新的计算数据与各自存储的分块顶点数据相加,以获得各自的优化后的分块顶点数据。
32.第一计算装置110还可以用于自多个第二计算装置120分别接收优化后的分块顶点数据,并基于优化后的分块顶点数据,重建图。
33.在第二计算装置120计算获得优化后的分块顶点数据之后,可以将各自的优化后的分块顶点数据发送至第一计算装置110。第一计算装置110在接收到来自多个第二计算装置120的优化后的分块顶点数据后,可以基于前述分块处理的规则对接收到的多组优化后的分块顶点数据进行拼接,以获得优化后的图的顶点数据。基于该优化后的图的顶点数据,可以实现对图的重建。
34.在上述技术方案中,可以将对图的分块顶点数据所执行的计算操作分配到多个第二计算装置120上分别执行,由此不仅可以保证图优化可以顺利且准确地执行,同时可以避免在图优化过程中,内存占用过多而导致图优化的效率降低的现象的发生。将上述计算过程分配到多个第二计算装置120上同步执行,在极大程度上提高了图优化的效率。
35.示例性地,第一计算装置110还可以用于获取用于计算图的重投影误差的目标函数。例如,第一计算装置110可以利用鼠标或键盘等输入装置自用户获取目标函数。目标函数可以表示一种或多种运算法则,基于该目标函数对分块顶点数据中的各个参数进行计算,以获得优化后的分块顶点数据。用户可以根据需要对目标函数进行自定义。
36.例如,对于第i个第二计算装置120,第i个第二计算装置120基于所存储的分块顶点数据执行第一计算操作以获得计算数据,并基于计算数据以及从多个第二计算装置120中的其他第二计算装置120获得的计算数据确定优化后的分块顶点数据,可以通过以下方式实现:基于所存储的分块顶点数据以及目标函数,计算分块重投影误差、分块重投影误差关于分块顶点数据的分块雅可比矩阵;基于分块重投影误差,构建关于分块雅可比矩阵的分块稀疏线性方程;基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据确定优化后的分块顶点数据,其中,第i个第二计算装置的计算数据是基于分块重投影误差、分块雅可比矩阵和分块稀疏线性方程执行第二计算操作获得的。
37.其中,重投影误差表示顶点数据和对应的实际的顶点数据之间的误差。相应地,分块重投影误差可以表示当前第二计算装置120存储的分块顶点数据和对应的实际的分块顶点数据之间的误差,例如,当前获取的分块特征点坐标和对应的实际的分块特征点坐标之间的差。可选地,第二计算装置120还可以自第一计算装置110获取目标函数。可以利用目标
函数,计算所存储的分块顶点数据的分块投影误差。可以对当前获取的分块特征点坐标分别根据链式求导法则针对特征点坐标中的参数一一求导,以获得每个分块特征坐标例如x和y对应的导数。之后,在对所获得的导数一一对应地执行加法运算,以将加法运算后获得的所有导数和作为矩阵元素。基于这些矩阵元素,构建分块重投影误差关于分块顶点数据的分块雅可比矩阵。
38.可以对该目标函数进行二阶泰勒展开,以获得二阶泰勒展开表达式。接着,针对该二阶泰勒展开表达式计算一阶导数零点,以构建关于分块雅可比矩阵的分块稀疏线性方程。具体地,第二计算装置120可以基于分块重投影误差及分块雅可比矩阵,利用如下公式确定分块海森矩阵hi和常数向量g:hi=j
itji
和其中ri表示第i个第二计算装置120计算获得的分块重投影误差,ji表示第i个第二计算装置120计算获得的分块重投影误差关于第i组分块顶点数据的第i个分块雅可比矩阵。接着,第二计算装置120基于分块海森矩阵hi和常数向量g,建立分块稀疏线性方程hiδxi=g。其中,δxi表示使分块重投影误差最小的分块顶点数据相对于第i个第二计算装置所存储的分块顶点数据的第二增量。可以理解,基于上述过程确定的分块海森矩阵hi和常数向量g可以分别存储在各自对应的第二计算装置120中。进一步地,第二计算装置120还可以基于第一计算装置110对图的顶点数据进行分块处理的分块规则,对分块海森矩阵hi和常数向量g进行分块处理。其中,
39.理论上,通过求解分块稀疏线性方程hiδxi=g,可以获得第i个第二计算装置120的计算数据,即δxi。之后,可以计算以获得累加结果。最后,将累加结果与对应的分块顶点数据相加,以获得优化后的分块顶点数据。
40.第二计算装置120可以基于分块重投影误差、分块雅可比矩阵和分块稀疏线性方程确定优化后的分块顶点数据。在此过程中,对于每个第二计算装置120而言,基于分块重投影误差、分块雅可比矩阵和分块稀疏线性方程执行的第二计算操作可以包括各种计算操作。例如第二计算操作可以包括矩阵右乘向量的计算操作,由此可以获得各自的乘积向量。其中,计算数据可以包括对应的第二计算装置120计算获得的乘积向量。多个第二计算装置120进行通信,基于各自的乘积向量与经由通信从其他第二计算装置获得的乘积向量可以确定优化后的分块顶点数据。
41.根据上述技术方案,可以基于分块重投影误差构建出关于分块雅可比矩阵的分块稀疏线性方程,为后续求解稀疏线性方程提供一定的理论基础。进而,保证了最后获得的优化后的分块顶点数据的合理性与可靠性。
42.示例性地,第i个第二计算装置120基于第i个第二计算装置120的计算数据以及从其他第二计算装置120获得的计算数据确定优化后的分块顶点数据,可以通过以下方式实现:基于第i个第二计算装置120的计算数据以及从其他第二计算装置120获得的计算数据执行第三计算操作,确定使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量;判断第一增量是否满足图重建条件;对于第一增量不满足所述图重建条件的情况,基于第一增量更新当前的分块顶点数据,以再次确定使图的重投影误差最小的顶点数据相对于更新后的顶点数据的第一增量,重复上述操作直至最新确定的第一增量满足图重建条
件;基于满足图重建条件的第一增量更新当前的分块顶点数据,以获得优化后的分块顶点数据。其中,基于第一增量更新当前的分块顶点数据可以包括更新调整图像采集装置的位置信息、旋转角度等位姿信息和/或特征点的位置信息等。进而,可以基于调整后的图像采集装置的位姿信息和/或特征点坐标,实现对图的重建。
43.根据本技术的一个实施例,可以基于分块稀疏线性方程hiδxi=g,求解关于雅可比矩阵的稀疏线性方程hδx=g。可以理解,将多个分块海森矩阵hi相加可以获得总的海森矩阵h。具体地,可以令对应地,总的海森矩阵即,即,其中数据的下标i表示第i个第二计算装置120的相关数据,hi表示第i个第二计算装置120计算出的分块海森矩阵,n表示第二计算装置120的个数。δx表示使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量。基于第i个第二计算装置的计算数据以及从其他第二计算装置获得的计算数据执行第三计算操作可以确定第一增量。通过第三计算操作确定了第一增量之后,可以判断第一增量是否满足图重建条件。例如,图重建条件可以是第一增量是否小于或等于条件阈值。可选地,条件阈值可以根据经验设置为例如1*10-6
、1*10-7
等任意合理数值。当第一增量小于或等于条件阈值时,此时第一增量满足图重建条件。反之,当第一增量大于条件阈值时,则不满足图重建条件。对于第一增量不满足图重建条件的情况,首先将第一增量增加到当前的分块顶点数据上,以对当前的分块顶点数据进行更新。进而,利用更新后的分块顶点数据再次执行上述计算过程,可以获得使图的重投影误差最小的相对于更新后的顶点数据的第一增量。再次对该第一增量进行判断,直至最新确定的第一增量满足图重建条件,则停止上述循环计算过程,以获得当前的第一增量。对于第一增量满足图重建条件的情况,将当前的第一增量增加到当前的分块顶点数据上,以对当前的分块顶点数据进行更新。可以理解,此时更新后的分块顶点数据即为优化后的分块顶点数据。
44.由此,针对第一增量合理设置条件阈值,即图重建条件,可以保证最终重建的图的精度最大化,保证了图优化的效果。
45.示例性地,第i个第二计算装置120基于第i个第二计算装置120的计算数据以及从其他第二计算装置120获得的计算数据执行第三计算操作,确定使图的重投影误差最小的顶点数据相对于当前的顶点数据的第一增量,可以通过以下方式实现:利用共轭梯度法基于第i个第二计算装置的计算数据以及其他第二计算装置的计算数据执行第四计算操作,确定第一向量和第二向量中的任意一个向量,其中,第一向量和第二向量能够拼接形成第一增量;基于第一向量和第二向量中的所确定的向量,计算第一向量和第二向量中的另一个向量,以确定第一增量。
46.在该实施例中,第二计算装置120可以基于第一计算装置110对图的顶点数据进行分块处理的分块规则,对第一增量进行分块处理,以获得其中,可以将δxc视为第一向量,将δx
p
视为第二向量。假设,针对稀疏线性方程hδx=g,即利用舒尔消元法执行消元操作,可以获得消元后的方程例如[b-ec-1et
]δxc=v-ec-1
w。为了
便于描述和理解,令a=[b-ec-1et
],b=v-ec-1
w,即消元后的方程为aδxc=b。利用共轭梯度法对该方程进行求解,可以获得δxc。
[0047]
具体地,首先对δxc随机初始化,将其赋为x0。令r0=b-ax0,其中,r0和x0中的“0”表示循环的次数为0,即此时为第一次循环。
[0048]
其中,对于al的乘积的计算可以通过以下方式实现:将运算式a中的对应的数据右乘向量l,以获得乘积向量;与其他第二计算装置120进行通信,并将乘积向量和经由通信获得的其他第二计算装置120的乘积向量进行累加,以获得al的乘积。其中,a表示关于矩阵e的运算式,e表示用于采集顶点数据的图像采集装置的位置信息与图的角点的位置信息之间的约束矩阵,图的顶点数据中包括图的角点的位置信息,l表示任意向量,ei表示分块约束矩阵,n表示第二计算装置的个数。
[0049]
在前文所述的实施例中,a=[b-ec-1et
],向量l是前述x0。下面以此实施例为例,对a右乘一个任意向量l的具体计算过程进行详细描述。具体地,b-ec-1et
右乘向量x0可以展开为bl-ec-1et
x0。首先计算σ
(1)
=e
t
x0,其中,每个第二计算装置120可以计算并存储多个第二计算装置120彼此之间进行一次通信,将各自的分块约束矩阵的转置与其他第二计算装置的分块约束矩阵的转置进行累加,可以获得e
t
。本领域普通技术人员可以理解,在执行矩阵的加法运算时,每个矩阵的维度应该是一样的。即,在该实施例中,可以使每个分块约束矩阵ei的维度相同。具体地,可以利用0对每个分块约束矩阵的转置的相应位置进行补齐,以保证矩阵的加法操作能够执行。进而将e
t
与向量x0相乘获得σ
(1)
。可以理解,每个第二计算装置120计算获得的σ
(1)
是相同的。接着计算σ
(2)
=c-1et
x0=c-1
σ
(1)
。由于每个第二计算装置120中存储的c都一样,因此这一步骤计算获得的σ
(2)
也是相同的。再接着,计算σ
(3)
=ec-1et
x0=eσ
(2)
,其中每个第二计算装置中存储有ei,多个第二计算装置120彼此之间进行一次通信,将各自的分块约束矩阵与其他第二计算装置的分块约束矩阵进行累加,可以获得e,进而将e与σ
(2)
相乘可以获得σ
(3)
。类似地,每个第二计算装置120中存储的b也都是一样的,因此计算获得的σ
(4)
=bx0也是一样的。最后,计算σ
(5)
=σ
(4)-σ
(3)
,即可实现对b-ec-1et
右乘一个向量x0的求解。可以理解,最终每个第二计算装置120计算获得的关于ax0的乘积均是相同的。
[0050]
根据上述技术方案,将大量的计算和存储操作分配到多个第二计算装置执行,可以有效解决单个计算装置无法求解大规模稀疏线性方程的问题,保证了图优化可以顺利执行。
[0051]
可以理解,根据前述技术方案可以计算获得r0=b-ax0中的ax0,之后再计算r0=b-ax0中的b。可以理解,也可以先计算b,再计算ax0。在本技术的实施例中,针对ax0和b的计算顺序仅仅是示例性的,并不意味着对二者计算顺序的限定。此外,前文所述的运算式a右乘向量x0仅仅是示例性的,a可以是包含e、e
t
、e-1
等的任意合理的关于矩阵e的运算式。
[0052]
例如,可以通过以下方式计算获得b,即v-ec-1
w。具体地,首先计算中间变量μ=c-1
w,进而计算λi=eiμ。每个第二计算装置120计算获得各自的λi之后,彼此之间可以进行一次通信。将经由通信获得的其他第二计算装置120的乘积向量与自身计算获得的乘积向量累加可以获得最后计算b=v-λ。
[0053]
基于前述获得的ax0与b可以确定r0。此时开始循环,令zn=b-1rn
。代入r0可以计算出z0。再令ρn=<rn,zn>,其中,“《》”表示其中的两个向量的内积运算。代入r0和z0可以计算ρ0,之后再计算pn。在第一次循环时,令pn=zn,此时n=0,即p0=z0。在计算出pn之后,再令qn=apn、αn=ρn/pn,qn>,将相关参数代入之后可以求解获得qn和αn。可以理解,可以按照前述运算式a右乘一个向量的计算方法,计算apn。接着,再计算x
n 1
=xn αnpn、r
n 1
=r
n-α
nqn
。在上述计算过程中,可以判断ρn是否小于特定阈值。如果判断为真,即ρn小于特定阈值,则输出x
n 1
。反之,令n=n 1,进入下一次循环。其中,特定阈值可以根据经验设置为1-100之间的任意数值。在下一次循环中,输入为r1。利用前述类似的方法可以计算获得ρ1,之后再计算p1。在第二次及以后的循环中,令βn=ρn/ρ
n-1
以及pn=zn βnp
n-1
。计算出pn后的过程与前述过程类似,为了简洁在此不再赘述。由此,基于上述循环过程,最终可以计算获得x
n 1
,即δxc。
[0054]
在确定第一向量δxc之后,可以利用如下计算过程获得第二向量δx
p
。具体地,首先计算中间变量,令每个第二计算装置120计算获得各自的γi之后,彼此之间可以进行一次通信。将经由通信获得的其他第二计算装置的乘积向量与自身计算获得的乘积向量累加可以获得之后再计算中间变量δ=w-γ。最后计算获得δx
p
=c-1
δ。在求解出第一向量δxc和δx
p
之后,可以基于前述分块规则将二者拼接起来,以形成第一增量。
[0055]
上述计算方法可以实现对大型线性方程的求解,同时计算过程中所存储的中间数据的数据量较小,稳定性高,结果更准确。进而,可以保证对图的有效且准确的优化。
[0056]
在上述实施例计算第一增量的过程中,首先计算第一向量δxc,然后再计算第二向量δx
p
。可以理解,通过舒尔消元法还可以将稀疏线性方程消元,以获得关于第二向量δx
p
的线性方程。从而在这个实施例中,首先对第二向量δx
p
进行求解,之后再计算第一向量δxc。基于所求的第一向量δxc和第二向量δx
p
可以获得第一增量。具体求解过程与前文类似,在此不再赘述。
[0057]
根据本技术的另一方面,还提供了一种图优化方法。图2示出了根据本技术一个实施例的图优化方法200的示意性流程图。如图2所示,方法200可以包括以下步骤。
[0058]
步骤s210,利用第一计算装置获取图的顶点数据,并且对图的顶点数据进行分块处理,以获得多组分块顶点数据,并将每组分块顶点数据一对一地存储到多个第二计算装置。
[0059]
步骤s220,利用第二计算装置基于各自存储的分块顶点数据执行第一计算操作以获得计算数据,与其他第二计算装置之间进行通信,并基于计算数据以及经由通信获得的其他第二计算装置的计算数据确定优化后的分块顶点数据。
[0060]
步骤s230,利用第一计算装置基于优化后的分块顶点数据,重建图。
[0061]
根据本技术的又一方面,还提供了一种计算机程序产品,包括程序指令,程序指令在运行时用于执行如前所述的图优化方法。
[0062]
根据本技术的再一方面,还提供了一种存储介质,在存储介质上存储了程序指令,程序指令在运行时用于执行如前所述的图优化方法。
[0063]
本领域普通技术人员通过阅读上述有关图优化系统的相关描述可以理解图优化
方法、计算机程序产品和存储介质的具体细节以及有益效果,为了简洁在此不再赘述。
[0064]
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本技术的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本技术的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本技术的范围之内。
[0065]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0066]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
[0067]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本技术的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0068]
类似地,应当理解,为了精简本技术并帮助理解各个发明方面中的一个或多个,在对本技术的示例性实施例的描述中,本技术的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本技术的方法解释成反映如下意图:即所要求保护的本技术要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本技术的单独实施例。
[0069]
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0070]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本技术的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0071]
本技术的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本技术实施例的图优化系统的一些或者全部功能。本技术还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本技术的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0072]
应该注意的是上述实施例对本技术进行说明而不是对本技术进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本技术可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0073]
以上所述,仅为本技术的具体实施方式或对具体实施方式的说明,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献