1.本发明涉及三维重建技术领域,具体涉及一种三维重建网格的特征过滤方法、系统及电子设备。
背景技术:
2.三维重建中,通常每个图像上面有大量的特征点,这些特征点在物理空间中对应着三维点。三维重建过程中需要进行ba优化(bundle adjustment,光束平差法),使用三维点进行投影找出最合适的相机位姿,优化目标是最小化重复投影误差。
3.在进行ba优化的过程中,通常将所有特征点都参与运算,然而,大量的特征点数量会导致解算速度大幅减慢,并且,一些低质量的特征点还会降低解算的精度。
4.针对ba优化过程中大量的特征点数量导致解算速度大幅减慢、低质量特征点降低解算精度的问题,目前尚未提出有效的解决方案。
技术实现要素:
5.本发明的主要目的在于提供一种三维重建网格的特征过滤方法及系统,以解决现有ba优化过程中大量的特征点数量导致解算速度大幅减慢、低质量特征点降低解算精度的问题。
6.为了实现上述目的,本发明的第一方面提供了一种三维重建网格的特征过滤方法,包括:
7.将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;
8.判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;
9.如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;
10.基于所述三维点集合过滤图像上的特征点。
11.可选地,如果未覆盖所述网格中的所有子网格,则在预设范围内,自适应调整所述网格的结构,以使调整后的网格中每个子网格都有对应的三维点。
12.进一步地,所述自适应调整所述网格的结构包括:
13.确定所述网格中未被投影覆盖的子网格;
14.删除所述未被投影覆盖的子网格所在的行和/或列,得到调整后的网格,其中,所述调整后的网格和所述网格均为矩形。
15.可选地,在将预设三维物体的图像上的特征点映射到网格中之前,所述方法还包括:
16.获取预设三维物体的图像;
17.根据所述图像的参数设置网格的尺度。
18.进一步地,所述根据所述图像的参数配置网格的尺度包括:
19.根据图像的宽和高设置网格的宽和高。
20.可选地,在将预设三维物体的图像上的特征点映射到网格中之后,所述方法还包括:
21.判断所述图像上是否包含映射到网格中同一子网格的不同特征点;
22.如果包含,则对映射到网格中同一子网格的不同特征点进行特征匹配,得到图像上所述不同特征点与其他特征点之间的连接关系;
23.根据所述连接关系计算所述不同特征点中各特征点连接的其他特征点数量;
24.从所述不同特征点中选择连接其他特征点数量最多的特征点,并将所述不同特征点中连接其他特征点数量最多的特征点与所述网格中的同一子网格对应。
25.进一步地,所述判断所述图像上是否包含映射到网格中同一子网格的不同特征点,包括:
26.根据图像上的特征点的坐标(u,v),按下述公式确定特征点映射到网格中的坐标(ug,vg):
[0027][0028][0029]
其中,wi为图像的宽,wg为网格的宽,hi为图像的高,hg为网格的高;
[0030]
判断所述图像上是否包含映射到网格中的坐标对应同一子网格的不同特征点。
[0031]
本发明的第二方面提供了一种三维重建网格的特征过滤系统,包括:
[0032]
映射单元,用于将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;
[0033]
判断单元,用于判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;
[0034]
三维点汇集单元,用于如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;
[0035]
过滤单元,用于基于所述三维点集合过滤图像上的特征点。
[0036]
本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的三维重建网格的特征过滤方法。
[0037]
本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的三维重建网格的特征过滤方法。
[0038]
在本发明实施例提供的三维重建网格的特征过滤方法中,将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;基于所述三维点集合过滤图像上的特征点。本发明通过选择每个子网格对应的三维点,可以选取高质量特征点,
减少了低质量点对解算精度的影响,提高了解算精度;并且,通过高质量特征点的三维点集合对特征点进行过滤,有效地减少了特征点的数量,提高了解算速度,解决了现有ba优化过程中大量的特征点数量导致解算速度大幅减慢、低质量特征点降低解算精度的问题。
附图说明
[0039]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]
图1为本发明实施例提供的三维重建网格的特征过滤方法流程示意图;
[0041]
图2为本发明实施例提供的图像上包含映射到网格中同一子网格的两个特征点的示意图;
[0042]
图3为本发明实施例提供的网格中所有子网格的状态图;
[0043]
图4为本发明实施例提供的自适应调整网格结构的示意图;
[0044]
图5为本发明实施例提供的三维重建网格的特征过滤系统框图;
[0045]
图6为本发明实施例提供的电子设备框图。
具体实施方式
[0046]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0047]
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0048]
在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的系统、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
[0049]
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
[0050]
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个系统、元件或组成部分之间内部的连通。
对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0051]
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0052]
在进行ba优化的过程中,通常将所有特征点都参与运算,然而,大量的特征点数量会导致解算速度大幅减慢,并且,一些低质量的特征点还会降低解算的精度。针对ba优化过程中大量的特征点数量导致解算速度大幅减慢、低质量特征点降低解算精度的问题,目前尚未提出有效的解决方案。
[0053]
为了解决上述问题,本发明实施例提供了一种三维重建网格的特征过滤方法,如图1所示,该方法包括如下的步骤s101至步骤s104:
[0054]
步骤s101:将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;
[0055]
具体的,在步骤s101中将预设三维物体的图像上的特征点映射到网格中之前,所述方法还包括:
[0056]
获取预设三维物体的图像;
[0057]
根据所述图像的参数设置网格的尺度。在已知当前图像image的参数的情况下,根据图像的参数设定网格的尺度,其中,图像的参数包括图像的宽、图像的高。
[0058]
其中,所述根据所述图像的参数配置网格的尺度包括:根据图像的宽和高设置网格的宽和高。
[0059]
具体的,在步骤s101中将预设三维物体的图像上的特征点映射到网格中之后,所述方法还包括:
[0060]
判断所述图像上是否包含映射到网格中同一子网格的不同特征点;
[0061]
如果包含,则对映射到网格中同一子网格的不同特征点进行特征匹配,得到图像上所述不同特征点与其他特征点之间的连接关系;
[0062]
根据所述连接关系计算所述不同特征点中各特征点连接的其他特征点数量;
[0063]
从所述不同特征点中选择连接其他特征点数量最多的特征点,并将所述不同特征点中连接其他特征点数量最多的特征点与所述网格中的同一子网格对应。
[0064]
所述不同特征点中,连接其他特征点数量最多的特征点具有相对更高质量,选择这种特征点可以减少低质量点对解算结果的影响,提高结算精度;因此,对于映射到网格中同一子网格的不同特征点,从不同特征点中选择连接其他特征点数量最多的特征点,与映射的同一子网格对应。
[0065]
其中,所述判断所述图像上是否包含映射到网格中同一子网格的不同特征点,包括:
[0066]
根据图像上的特征点的坐标(u,v),按下述公式确定特征点映射到网格中的坐标(ug,vg):
[0067][0068][0069]
其中,wi为图像的宽,wg为网格的宽,hi为图像的高,hg为网格的高;
[0070]
判断所述图像上是否包含映射到网格中的坐标对应同一子网格的不同特征点。
[0071]
当图像上不同特征点对应同一子网格时,所述不同特征点的个数可以为两个或多个,当两个特征点对应同一子网格时,如图2所示:
[0072]
其中,图像image的宽、高为:wi和hi,网格grid的宽、高为:wg和hg,图像上的三个特征点feature1、feature2、feature3的坐标分别为:(u1,v1)、(u2,v2)、(u3,v3),将三个特征点feature按照上述公式分别映射到网格中,(u1,v1)和(u2,v2)基于以上公式预算得到和这两个坐标对应同一个网格,即feature1和feature2映射到了同一个网格中,此时feature1对应的三维点p1,feature2对应三维点p2,如果p1、p2不相等时,说明发生了碰撞,此时计算每个三维点连接的特征点数量,选择特征点数量最大者p2。
[0073]
进一步的,当发生了碰撞时,在grid中同一子网格中的两个特征点feature,他们都对应有自己的有效的三维点且不相同,也就说明现实空间的两个不同的三维点在grid上的投影在一个子网格中,这种现象称为“碰撞”,碰撞发生后,就要进行选择,选择一个更好的三维点。在特征匹配环节会对特征点进行匹配,匹配完成之后,就得到了各个图像内部特征点之间的关系,然后计算每个三维点连接的特征点数量。连接其他特征点数量最多的特征点具有相对更高质量,因此,选择这种特征点可以减少低质量点对解算结果的影响,提高结算精度。
[0074]
步骤s102:判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;
[0075]
步骤s103:如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;
[0076]
步骤s104:基于所述三维点集合过滤图像上的特征点。
[0077]
网格中的所有子网格的状态如图3所示,如果覆盖所述网格中的所有子网格,子网格状态如grid(1)情况,三维点在grid上投影可以覆盖所有的子网格,grid的每一个子网格都对应一个有效的三维点pi,进而获得一个有效的三维点集合,然后基于这个三维点集合过滤每个图像上的特征点,可以大幅减少特征点的数量,加速计算,提高解算速度;同时因为所选择的三维点质量较高,因此也能有效的保证最终的精度效果,提高解算精度。
[0078]
进一步的,如果未覆盖所述网格中的所有子网格,则在预设范围内,自适应调整所述网格的结构,以使调整后的网格中每个子网格都有对应的三维点。如果未覆盖所述网格中的所有子网格,子网格状态如grid(2)情况,三维点在grid上的投影没有覆盖所有的子网格,在波动空间允许范围内,自适应调整网格的结构。
[0079]
其中,所述自适应调整所述网格的结构包括:
[0080]
确定所述网格中未被投影覆盖的子网格;
[0081]
删除所述未被投影覆盖的子网格所在的行和/或列,得到调整后的网格,其中,所述调整后的网格和所述网格均为矩形。
[0082]
当自适应调整所述网格的结构时,如图4所示,调整前的网格和调整后的网格均为矩形,调整前是m*n grid,调整后为x*y grid_adjust,保证t
x
≤x≤m,ty≤y≤n,(x=m,y=n的时候退化到初始网格),其中t
x
,ty表示波动空间的下限阈值,保证grid的每一个子网格都有对应的三维点;例如,调整前的网格grid为6行7列6*7,调整后的网格grid_adjust为4行5列4*5,以使调整后的网格中每个子网格都有对应的三维点。
[0083]
本发明通过网格的方式,快速自适应过滤特征点,从而提升ba解算的速度和精度,在保证解算精度的情况下,大幅提升运算的速度。
[0084]
从以上的描述中,可以看出,本发明实现了如下技术效果:
[0085]
本发明通过选择每个子网格对应的三维点,可以选取高质量特征点,减少了低质量点对解算精度的影响,提高了解算精度;
[0086]
并且,通过高质量特征点的三维点集合对特征点进行过滤,有效地减少了特征点的数量,提高了解算速度,解决了现有ba优化过程中大量的特征点数量导致解算速度大幅减慢、低质量特征点降低解算精度的问题。
[0087]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0088]
本发明实施例还提供了一种用于实施上述三维重建网格的特征过滤方法的三维重建网格的特征过滤系统,如图5所示,该系统包括:
[0089]
映射单元51,用于将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;
[0090]
判断单元52,用于判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;
[0091]
三维点汇集单元53,用于如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;
[0092]
过滤单元54,用于基于所述三维点集合过滤图像上的特征点。
[0093]
本发明实施例还提供了一种电子设备,如图6所示,该电子设备包括一个或多个处理器61以及存储器62,图6中以一个处理器61为例。
[0094]
该控制器还可以包括:输入装置63和输出装置64。
[0095]
处理器61、存储器62、输入装置63和输出装置64可以通过总线或者其他方式连接,图6中以通过总线连接为例。
[0096]
处理器61可以为中央处理器(central processing unit,简称为cpu),处理器61还可以为其他通用处理器、数字信号处理器(digital signal processor,简称为dsp)、专用集成电路(application specific integrated circuit,简称为asic)、现场可编程门阵列(field-programmable gate array,简称为fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
[0097]
存储器62作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器61通过运行存储在存储器62中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的三维重建网格的特征过滤方法。
[0098]
存储器62可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器62可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存
储器62可选包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0099]
输入装置63可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置64可包括显示屏等显示设备。
[0100]
一个或者多个模块存储在存储器62中,当被一个或者多个处理器61执行时,执行如图1所示的方法。
[0101]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,简称为rom)、随机存储记忆体(random access memory,简称为ram)、快闪存储器(flash memory,简称为fm)、硬盘(hard disk drive,简称为hdd)或固态硬盘(solid-state drive,简称为ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0102]
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种三维重建网格的特征过滤方法,其特征在于,包括:将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;基于所述三维点集合过滤图像上的特征点。2.根据权利要求1所述的方法,其特征在于,如果未覆盖所述网格中的所有子网格,则在预设范围内,自适应调整所述网格的结构,以使调整后的网格中每个子网格都有对应的三维点。3.根据权利要求2所述的方法,其特征在于,所述自适应调整所述网格的结构包括:确定所述网格中未被投影覆盖的子网格;删除所述未被投影覆盖的子网格所在的行和/或列,得到调整后的网格,其中,所述调整后的网格和所述网格均为矩形。4.根据权利要求1所述的方法,其特征在于,在将预设三维物体的图像上的特征点映射到网格中之前,所述方法还包括:获取预设三维物体的图像;根据所述图像的参数设置网格的尺度。5.根据权利要求4所述的方法,其特征在于,所述根据所述图像的参数配置网格的尺度包括:根据图像的宽和高设置网格的宽和高。6.根据权利要求1所述的方法,其特征在于,在将预设三维物体的图像上的特征点映射到网格中之后,所述方法还包括:判断所述图像上是否包含映射到网格中同一子网格的不同特征点;如果包含,则对映射到网格中同一子网格的不同特征点进行特征匹配,得到图像上所述不同特征点与其他特征点之间的连接关系;根据所述连接关系计算所述不同特征点中各特征点连接的其他特征点数量;从所述不同特征点中选择连接其他特征点数量最多的特征点,并将所述不同特征点中连接其他特征点数量最多的特征点与所述网格中的同一子网格对应。7.根据权利要求6所述的方法,其特征在于,所述判断所述图像上是否包含映射到网格中同一子网格的不同特征点,包括:根据图像上的特征点的坐标(u,v),按下述公式确定特征点映射到网格中的坐标(u
g
,v
g
):):其中,w
i
为图像的宽,w
g
为网格的宽,h
i
为图像的高,h
g
为网格的高;判断所述图像上是否包含映射到网格中的坐标对应同一子网格的不同特征点。
8.一种三维重建网格的特征过滤系统,其特征在于,包括:映射单元,用于将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;判断单元,用于判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;三维点汇集单元,用于如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;过滤单元,用于基于所述三维点集合过滤图像上的特征点。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7任意一项所述的三维重建网格的特征过滤方法。10.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-7任意一项所述的三维重建网格的特征过滤方法。
技术总结
本发明公开了一种三维重建网格的特征过滤方法、系统及电子设备,其中方法包括:将预设三维物体的图像上的特征点映射到网格中,其中,所述图像上的特征点对应物理空间中的三维点;判断特征点映射到网格上的投影是否覆盖所述网格中的所有子网格;如果覆盖所述网格中的所有子网格,则根据所述网格中每个子网格对应的三维点,得到三维点集合;基于所述三维点集合过滤图像上的特征点。本发明通过选择每个子网格对应的三维点,可以选取高质量特征点,减少了低质量点对解算精度的影响,提高了解算精度;并且,通过高质量特征点的三维点集合对特征点进行过滤,有效地减少了特征点的数量,提高了解算速度。高了解算速度。高了解算速度。
技术研发人员:由清圳
受保护的技术使用者:埃洛克航空科技(北京)有限公司
技术研发日:2021.11.11
技术公布日:2022/3/8