1.本技术涉及机器人定位和建图技术领域,具体涉及一种目标定位方法、装置、存储介质及终端。
背景技术:2.同时定位和建图(simultaneous localization and mapping,slam)是通过多传感器数据的融合,实现对环境的建图和对自身的定位的技术。该技术可以通过将惯性测量单元(inertial measurement unit,imu)和摄像头采集的图像数据相结合以实现对物体的精确定位。
3.在近些年的研究中,slam技术的定位速度和精度都得到了广泛提升。其中,开源的视觉惯性目标定位系统(open visual inertial system,openvins)由于速度快,兼容性强,模块功能强大,得到了较为广泛的应用。
4.然而,在一些场景下,在openvins中进行物体定位,存在定位不够精准的问题。
技术实现要素:5.本技术提供了一种目标定位方法、装置、存储介质及终端,该方法能够提升定位的精度。
6.第一方面,本技术提供一种目标定位方法,方法包括:
7.获取于不同位置拍摄待定位特征点得到的多张彩色图像以及与每一彩色图像对应的深度图像;
8.对所述多张彩色图像进行误差筛选,得到多张目标图像;
9.提取所述待定位特征点在每一目标图像对应的深度图像中的深度值,并基于所述多张目标图像中的选中图像对所述深度值进行投影转化,得到多个目标深度值;
10.计算所述多个目标深度值的平均深度值,以及确定所述待定位特征点在所述选中图像中的坐标值;
11.根据所述选中图像、所述平均深度值以及所述坐标值对所述待定位特征点进行定位。
12.相应地,本技术第二方面提供一种目标定位装置,装置包括:
13.获取模块,用于获取于不同位置拍摄待定位特征点得到的多张彩色图像以及与每一彩色图像对应的深度图像;
14.筛选模块,用于对所述多张彩色图像进行误差筛选,得到多张目标图像;
15.提取模块,用于提取所述待定位特征点在每一目标图像对应的深度图像中的深度值,并基于所述多张目标图像中的选中图像对所述深度值进行投影转化,得到多个目标深度值;
16.计算模块,用于计算所述多个目标深度值的平均深度值,以及确定所述待定位特征点在所述选中图像中的坐标值;
17.第一定位模块,用于根据所述选中图像、所述平均深度值以及所述坐标值对所述待定位特征点进行定位。
18.第三方面,本技术还提供一种目标定位方法,方法包括:
19.在待定位物体中采样多个待定位特征点;
20.确定观测图像帧数量大于预设阈值的待定位特征点为目标待定位特征点;
21.根据第一方面提供的目标定位方法对所述目标待定位特征点进行定位,得到每一目标待定位特征点的定位信息;
22.基于每一目标待定位特征点的定位信息对所述待定位物体进行定位。
23.相应地,本技术第四方面提供一种目标定位装置,装置包括:
24.采样模块,用于在待定位物体中采样多个待定位特征点;
25.确定模块,用于确定观测图像帧数量大于预设阈值的待定位特征点为目标待定位特征点;
26.第二定位模块,用于根据第一方面提供的目标定位方法对所述目标待定位特征点进行定位,得到每一目标待定位特征点的定位信息;
27.第三定位模块,用于基于每一目标待定位特征点的定位信息对所述待定位物体进行定位。
28.第五方面,本技术提供了一种存储介质,其上存储有计算机程序,当该计算机程序被电子设备的处理器加载时执行如本技术提供的任一目标定位方法中的步骤。
29.第六方面,本技术还提供了一种电子设备,该电子设备包括处理器和存储器,存储器储存有计算机程序,处理器通过加载存储器储存的计算机程序执行如本技术提供的任一目标定位方法中的步骤。
30.采用本技术所提供的技术方案,即获取于不同位置拍摄待定位特征点得到的多张彩色图像以及与每一彩色图像对应的深度图像;对多张彩色图像进行误差筛选,得到多张目标图像;提取待定位特征点在每一目标图像对应的深度图像中的深度值,并基于多张目标图像中的选中图像对深度值进行投影转化,得到多个目标深度值;计算多个目标深度值的平均深度值,以及确定待定位特征点在选中图像中的坐标值;根据选中图像、平均深度值以及坐标值对待定位特征点进行定位。以此,本技术通过采集待定位特征点的深度图像,可以直接在观测帧中读取出待定位特征点的深度值。再由位姿变换转换为选中图像下的深度,相对于采用多帧构建线性方程组的求解方式可以获得更为准确的深度信息,从而可以提升目标定位的精度。
附图说明
31.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本技术实施例提供的目标定位方法的一流程示意图。
33.图2是多个观测相机对特征点进行观测的示意图。
34.图3是定位效果对比图。
35.图4本技术实施例提供的目标定位装置的结构框图。
36.图5是本技术实施例提供的终端的结构框图。
具体实施方式
37.应当说明的是,本技术中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
38.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
39.本技术实施例提供一种目标定位方法、装置、存储介质及终端,其中目标定位方法的执行主体可以是本技术实施例提供的目标定位装置,或者集成了该目标定位装置的电子设备,其中该目标定位装置可以采用硬件或者软件的方式实现。其中,电子设备可以是移动终端。其中,该移动终端可以为智能手机、平板、车载终端或者智能穿戴式设备等。
40.请参照图1,图1为本技术实施例提供的目标定位方法的流程示意图,如图1所示,本技术实施例提供的目标定位方法的流程可以如下:
41.在110中,获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像。
42.在本技术实施例中,目标定位方法可以应用于目标定位装置中,目标定位装置具体可以装载在终端中。终端可以为智能手机、平板、车载终端或者其他智能穿戴式设备。
43.其中,在相关技术中,定位任务的一个很重要的部分便是获取观测到的特征点的三维(3dimension,3d)深度,通常一个特征点往往会被多个不同视角的观测相机观测到,通过相机位姿的相对关系,可以由三角化求出特征点的3d深度。slam技术中,可以依赖多个特征点的3d空间信息对物体自身进行定位,因此,特征点的3d空间信息的准确定对slam中物体自身定位的准确性至关重要。
44.目前的slam定位方案中,openvins以其定位速度快、适配性强等特点受到业界的广泛使用。在openvins中,三角化采用了3d笛卡尔坐标系三角化方法,将特征点在锚帧中进行三角化。下面对该过程进行详细的介绍。
45.如图2所示,为多个观测相机对特征点进行观测的示意图,如图所示,特征点被m+1个相机观测到,其中可以选择相机a观测到的图像帧为锚帧,或者选择特征点对应的第一帧观测帧(按照观测到特征点的时间顺序排序)为锚帧。
46.第一步:计算出特征点深度的初值。
47.特征点pf除了可以被相机a观测到,还可以被其他观测相机观测到,其他观测相机的位姿记为ci,其中i=1,2...,m。特征点pf在锚帧中的坐标为apf,在观测相机ci中的坐标为
ci
pf。相机帧ci到锚帧的旋转为相机帧ci到锚帧的平移为ap
ci
。相机帧和锚帧对特征点pf的观测存在如下关系:
[0048][0049][0050]
在没有噪声的情况下,相机帧中的归一化图像坐标为
ci
b,深度为
ci
z,锚帧中特征点的归一化坐标abf,深度azf,图像帧特征点到锚帧中的归一化图像坐标映射关系为:
[0051][0052]
其中,
ci
zf为特征点与相机帧ci对应的深度,
cibf
为特征点在相机帧ci中的归一化坐标。ab
ci
→f为从相机帧映射到锚帧下的特征点坐标。
[0053]
为消除无关的自由度,定义与ab
ci
→f正交的向量该向量的三行都与ab
ci
→f垂直,即对公式(3)的变换关系左乘变换矩阵ani,构建出两个仅和深度azf有关的方程:
[0054][0055]
将多个相机观测的约束放到一起,构建出如下的深度约束方程:
[0056][0057]
对方程(3)进行如下的变换:
[0058][0059]
可以得到1m*1m的系统,通过标量除法可快速求解azf,即:
[0060][0061]
其中,openvins中还增加了三角化特征的有效性检查,即特征点需要在相机正前方,并且不能离相机太远。
[0062]
第二步,特征点逆深度非线性优化。
[0063]
在初步获得特征点深度估计后,采用非线性最小二乘对深度估计值做进一步优化。用特征点的逆深度表示,可以获得更好的数值稳定性,并帮助收敛。在大多数情形下,室内场景经过2到3次迭代后可收敛。最小二乘问题的构建如下:定义锚帧图像归一化坐标ua=axf/azf,va=ayf/azf,逆深度ρa=1/azf。将特征的映射重写为如下形式:
[0064][0065]
然后构建测量方程:
[0066][0067]
由于特征点可以在多个相机位姿下观测到,观测方程如下:
[0068][0069]
因此,可以构建出最小二乘方程和雅可比:
[0070][0071][0072][0073]
然后,采用高斯牛顿法或者列文伯格马夸尔特方法对最小二乘问题进行迭代求解,最终得出优化深度。
[0074]
根据上述描述可知,在openvins中对特征点进行定位,需要进行复杂的计算,其中,每个特征点需要有5帧以上的观测才能进行计算,在大旋转等变化快的场景,同一个特征点的观测帧可能少于5,会导致这些特征点在三角化时不可用,从而导致定位在这些场景表现不好。在这样的情形下提取的特征点对位姿估计没有贡献,降低了系统的定位精度和鲁棒性。而且,每个特征点的初始深度,需要构建复杂线性方程求解。通过高斯牛顿方法优化3d特征点深度,需要首先构建最小二乘问题,然后是雅克比矩阵,进而构建增量,迭代,直至收敛或达到最大迭代次数,速度慢,结果容易受噪声影响,如果其中一个观测误差大,会
影响最终的优化结果。即openvins中对特征点进行定位的精度不高而且效率较低,进而使得openvins技术在slam中的表现不佳。
[0075]
为解决上述对特征点定位精度不高且效率较低的问题,本技术提供了一种目标定位方法,以期能够提升特征点定位的精度和效率,从而可以进一步提升slam中对对象自身定位的精度以及定位效率,下面对本技术提供的方案进行详细描述。
[0076]
在本技术实施例中,同样需要对同一特征点获取其多个相机视角的观测帧,只是在每个观测视角下,会同时获取特征点对应的彩色图像和深度图像。其中彩色图像即rgb图像,采集rgb图像的相机可以为单目相机也可以为双目相机。采集深度图像的相机具体可以为飞行时间(time of flight,tof)深度相机或者结构光深度相机。
[0077]
在对待定位特征点进行定位时,目标定位装置可以获取从不同位置拍摄待定位特征点得到的多张rgb图像以及多张深度图像。其中,rgb图像与深度图像一一对应,即rgb图像与对应的深度图像是于同一位置且同一时间进行拍摄得到的。为保证定位的准确性,此处的多张可以为至少三张。
[0078]
在120中,提取待定位特征点在彩色图像对应的深度图像中的深度值,并基于多张彩色图像中的选中的图像对深度值进行投影转化,得到多个目标深度值。
[0079]
在本技术实施例中,获取到待定位特征点的彩色图像以及对应的深度图像后,便可以基于待定位特征点的彩色图像以及深度图像来计算待定位特征点的深度值。具体地,可以先提取待定位特征点在每一深度图像中的深度值,然后将深度值投影到选中的观测帧(如前述锚帧)中,得到每一深度值在锚帧中的投影深度。
[0080]
其中,为了进一步保证目标定位的准确性,避免异常图像对定位结果造成干扰,本技术实施例在目标定位装置获取到待定位特征点的多张rgb图像后,可以进一步对这些rgb图像进行筛选,去除掉一些干扰图像,具体地,可以为去除掉重投影误差得到剩下的多张目标图像。然后基于这些目标图像进行精准的目标定位。即可以对同一特征点的多个观测帧进行重投影误差筛选,保留重投影误差较小的观测的深度值。
[0081]
其中,在一些实施例中,对多张彩色图像进行误差筛选,得到多张目标图像,包括:
[0082]
1、在多张彩色图像中确定选中的图像;
[0083]
2、基于选中的图像对多张彩色图像中除选中图像外的图像进行位姿转化,得到多张转化图像;
[0084]
3、在多张转化图像中确定与选中图像误差小于预设阈值的多张目标转化图像;
[0085]
4、根据多张目标转化图像对应的彩色图像与选中图像确定多张目标图像。
[0086]
其中,在本技术实施例中,对多张rgb图像进行筛选,具体可以为先在多帧rgb图像中确定一张选中的图像,此处选中的图像可以为前述锚帧。锚帧也可以理解为参考帧。具体可以选择待定位特征点的第一个观测帧为锚帧。然后,可以基于锚帧对其他的rgb图像进行位姿转化,得到每一图像对应的转化图像。然后进一步确定位姿转化后与锚帧的误差小于预设阈值的图像为合格的图像,而转化后与锚帧的误差大于预设阈值的图像则为不合格的图像。进一步地,确定上述合格的图像与锚帧组成目标图像。
[0087]
在一些实施例中,在多张转化图像中确定与选中图像误差小于预设阈值的多张目标转化图像,包括:
[0088]
3.1、计算每一转化图像与选中图像之间的重投影误差;
[0089]
3.2、确定重投影误差小于预设阈值的转化图像为目标转化图像。
[0090]
其中,在本技术实施例中,确定位姿转化后的转化图像与锚帧之间的误差的具体方法可以为计算转化图像与锚帧之间的重投影误差。其中,重投影误差指真实三维空间点在图像平面上的投影(也就是图像上的像素点)和重投影(其实是用我们的计算值得到的虚拟的像素点)的差值。因为种种原因计算得到的值和实际情况不会完全相符,也就是这个差值不可能恰好为0,此时也就需要将这些差值的和最小化获取最优的相机位姿参数及三维空间点的坐标。
[0091]
在计算得到转化图像与选中图像之间的重投影误差后,确定重投影误差小于预设阈值的转化图像为目标转化图像,这些目标转化图像对应的rgb图像和锚帧组成了目标图像。然后可以提取这些目标图像对应的深度图像中待定位特征点的深度值以计算带定位特征点的深度。即根据观测帧和锚帧之间的位姿转换关系,将观测帧中观测到的特征点转换到锚帧坐标系下,得到投影的像素坐标位置,与锚帧中观测到的该特征点的位置,计算出误差值(即重投影误差)。由于位姿信息不可能百分之百准确,以及特征点的提取存在误差,投影位置和锚帧中特征点的位置并不能完全重合,因此存在重投影误差。
[0092]
在一些实施例中,计算每一转化图像与选中图像之间的重投影误差,包括:
[0093]
3.1.1、获取待定位特征点在每一转化图像对应的彩色图像中的第一坐标值,以及获取待定位特征点在每一转化图像对应的深度图像中的第一深度值;
[0094]
3.1.2、获取每一转化图像位姿转化对应的旋转参数和平移参数;
[0095]
3.1.3、基于第一坐标值、第一深度值、旋转参数和平移参数计算每一转化图像的表征参数;
[0096]
3.1.4、计算每一转化图像的表征参数与选中图像的目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0097]
其中,在本技术实施例中,转化图像与锚帧之间的重投影误差的计算,具体可以为先获取待定位特征点在每一转化图像对应的彩色图像中的第一坐标值以及待定位特征点在每一转化图像对应的深度图像中的第一深度值。其中,转化图像对应的深度图像中的深度值,为转化图像对应的rgb图像相匹配的深度图像中待定位特征点的深度值经投影到锚帧中得到的深度值。
[0098]
然后,再获取每一转化图像位姿转化对应的旋转参数和平移参数,再进一步基于上述第一坐标值、第一深度值、旋转参数和平移参数计算表征每一转化图像的表征参数,然后计算每一转化图像的表征参数与锚帧对应的目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0099]
具体地,确定每一个观测与锚帧观测之间的重投影误差包括:先在观测图像中提取特征点,对不同帧图像进行特征点匹配,确定特征点的对应关系。获取多帧图像之间的旋转和平移参数。基于特征点的对应关系和所在帧之间的旋转和平移关系,将观测中中的观测点,投影到锚帧中,得到投影坐标。计算观测点投影到锚帧中的坐标与锚帧中观测点的坐标之间的差异,获取到观测帧中观测点到锚帧中观测点的重投影误差。
[0100]
在一些实施例中,计算每一转化图像的表征参数与选中图像的目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差,包括:
[0101]
3.1.4.1.、获取待定位特征点在选中图像中的第二坐标值,以及获取待定位特征
点在选中图像对应的深度图像中的第二深度值;
[0102]
3.1.4.2、计算第二坐标值和第二深度值的乘积,得到选中图像对应的目标表征参数;
[0103]
3.1.4.3、计算每一转化图像的表征参数与目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0104]
其中,在本技术实施例中,锚帧的目标表征参数也可以通过待定位特征点在锚帧中的坐标值以及在锚帧对应的深度图像中的深度值计算得到。具体地,目标定位装置可以先获取待定位特征点在锚帧中的第二坐标值以及待定位特征点在锚帧对应的深度图像中的第二深度值,然后计算第二坐标值和第二深度值的乘积,便可以得到锚帧对应的目标表征参数。然后可以据此计算每一转化图像的表征参数和目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0105]
具体地,假设拍摄待定位特征点的rgb图像有m帧,其中m≥3。选取观测到特征点的第一个观测帧作为锚帧,然后读取锚帧中该特征点的深度值da。在其他观测帧中也读取该特征点的深度值di。并通过位姿间的转换关系,将特征点变换到锚帧下,计算重投影误差,如果重投影误差e大于一定的阈值,舍弃该帧图像中的观测。如果重投影误差e在阈值范围内,将该特征点的投影深度adi记录下来,共n帧(n《m)。重投影误差的计算公式如下:
[0106][0107]
e=ad
iabf-d
aabf
ꢀꢀ
公式(15)
[0108]
其中,在确定了多张目标图像(即锚帧和与锚帧之间的重投影误差小于预设阈值的转化图像对应的rgb图像)后,便可以进一步提取每一目标图像对应的深度图像中待定位特征点的深度值。然后,将锚帧以外的目标图像对应的深度值基于锚帧进行投影转化,得到投影深度,即前述投影深度adi。可以理解的是,此处投影深度adi也可以为从每一转化图像对应的深度图像中提取待定位特征点的深度值得到。多(n-1)个投影深度adi和锚帧中待定位特征点的深度值da构成了多个目标深度值。
[0109]
在130中,计算多个目标深度值的平均深度值,以及确定待定位特征点在选中的图像中的坐标值。
[0110]
其中,在确定了多个目标深度值之后,可以进一步计算得到的多个目标深度值的平均深度值d
avg
,作为待定位特征点的深度值。如下:
[0111][0112]
进一步地,还可以获取待定位特征点在锚帧中的坐标值。
[0113]
在140中,根据选中图像、平均深度值以及坐标值对待定位特征点进行定位。
[0114]
其中,在确定了锚帧、待定位特征点相对于锚帧的深度值,即前述平均深度值以及待定位特征点在锚帧中的坐标值之后,便可以根据锚帧、平均深度值以及待定位特征点在锚帧中的坐标值对待定位特征点进行准确定位,即可以确定特征点的准确3d空间位置信息。如下:
[0115]apf=d
avgabf
公式(17)
[0116]
其中,在一些实施例中,本技术提供的目标定位方法还包括:
[0117]
1、获取选中图像在世界坐标系中的目标位姿;
[0118]
2、基于目标位姿、平均深度值以及坐标值进行坐标转化,得到待定位特征点在世界坐标系下的定位信息。
[0119]
其中,在本技术实施例中,在确定了待定位特征点相对于锚帧的3d位置后,还可以进一步将该位置转换到世界坐标系下,得到世界坐标系下待定位特征点的定位信息。具体地,可以先获取锚帧在世界坐标系中的位姿,然后基于该目标位姿、待定位特征点相对于锚帧的深度以及待定位特征点在锚帧中的坐标进行坐标转化,得到待定位特征点在世界坐标系下的定位信息。如下:
[0120][0121]
其中,gp为待定位特征点在世界坐标系下的3d信息,为锚帧的旋转参数,gpa为锚帧的平移参数。
[0122]
通过本技术提供的目标定位方法,对一个特征点在小于5帧的观测帧的情况下也可以直接由观测帧的深度图,读取特征点的深度,即通过有限的观测值,便可以得到特征点较为精确的深度信息,从而提高了特征点的利用率,增强了大旋转等场景下鲁棒性,提高了系统的定位精度。而且通过深度传感器采集的深度图像,在特征点处深度图有效的情况下,可以直接在观测帧中读取出3d特征点的深度值。由位姿变换转换为锚帧下的深度,比用多帧构建线性方程组的求解方式速度快。经过重投影误差的校验,可以将深度误差大的帧剔除,保证最终的3d特征点的深度求解的准确性。此外根据多帧的深度信息,进行统计平均,最终获得3d特征点深度,而且可以滤除测量噪声,保证了观测点深度值的精度。保证了速度和精度。省去了复杂的最小二乘问题的构建和求解过程。
[0123]
openvins对imu噪声敏感,在imu噪声大的情况下,位姿容易漂移。在大旋转的情况下,特征点的观测帧有限,难以保证足够多的3d特征点可以通过三角化方法初始化。加入深度信息后,3d特征点具有了额外的约束,在大旋转等特征点观测帧数量不足的情况下,也能初始化出足够多的特征点,减少特征点不足带来的漂移,增加了定位的精度和稳定性。通过引入深度图,避免了通过构建线性方程求解深度,并构建最小二乘问题,优化3d特征点初始化,提升了速度。同时引入额外的重投影误差约束,以及统计平均的优化方式,提升了深度求解的精度。
[0124]
在一些实施例中,基于目标位姿、平均深度值以及坐标值进行坐标转化,得到待定位特征点在世界坐标系下的定位信息之后,还包括:
[0125]
根据多个待定位特征点在世界坐标系下的定位信息对待定位物体进行空间定位,得到待定位物体的位置信息。
[0126]
其中,由于slam的任务是对物体自身进行定位和建图的任务,对自身进行定位和建图需要基于准确的特征点3d信息实现。本技术前述提供的目标定位方法,可以对特征点进行快速且准确的定位,即可以快速地获得特征点的准确的3d信息。进一步地,可以遍历定位空间中的每一特征点,便可以确定了定位空间中每一特征点的准确的3d信息,进而便可以基于定位空间中准确的3d信息对定位空间中的物体进行准确的定位和建图。例如,当需要对一辆自动驾驶汽车进行定位时,那只需获取与其关联的多个特征点的3d信息,然后基于该自动驾驶汽车与这多个特征点的相对位置关系和特征点的3d信息便可以对该自动驾驶汽车进行准确的定位。
[0127]
即本技术提供的目标定位方法,还可以大大提升在slam任务中对物体进行定位的
准确性。
[0128]
此外,如表1和图3所示,为基于本技术提供的目标定位方法对机器狗的数据进行采集的方法与传统openvins进行对比的示意表和示意图。
[0129]
算法平均耗时统计(ms)轨迹出现明显漂移比例openvins13.0314/5本技术方法12.1881/5
[0130]
表1定位效果对比表
[0131]
如图3所示,当机器狗围绕会议桌行走一圈回到其实位置,采用本技术提供的方法对机器狗的位置进行定位发生的轨迹漂移明显减小。而且如表1所示,采用本技术提供的方法,定位耗时也明显较少,定位速度得到了有效的提升。
[0132]
根据上述描述可知,本技术提供的目标定位方法,通过获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;提取待定位特征点在每一彩色图像对应的深度图像中的深度值,并基于多张彩色图像中的选中图像对深度值进行投影转化,得到多个目标深度值;计算多个目标深度值的平均深度值,以及确定待定位特征点在选中的图像中的坐标值;根据选中的图像、平均深度值以及坐标值对待定位特征点进行定位。以此,本技术根据深度图像的深度值,以及彩色图像特之间的位姿约束和特征点映射关系,可以更快速和准确地获取观测帧中待定特征点的深度值。相对于采用多帧构建线性方程组的求解方式可以获得更为准确的深度信息,从而可以提升目标定位的精度。
[0133]
请参照图4,图4为本技术实施例提供的目标定位装置200的一结构示意图。该目标定位装置200应用于本技术提供的电子设备。如图4所示,该目标定位装置200可以包括:
[0134]
获取模块210,用于获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;
[0135]
提取模块220,用于提取待定位特征点在每一彩色图像对应的深度图像中的深度值,并基于多张目标图像中的选中图像对深度值进行投影转化,得到多个目标深度值;
[0136]
计算模块230,用于计算多个目标深度值的平均深度值,以及确定待定位特征点在选中图像中的坐标值;
[0137]
第一定位模块240,用于根据选中的图像、平均深度值以及坐标值对待定位特征点进行定位。
[0138]
可选地,在一些实施例中,提取模块,包括:
[0139]
筛选子模块,用于对所述多张彩色图像进行筛选,得到多张目标图像;
[0140]
提取子模块,用于提取所述待定位特征点在所述多张目标图像对应的深度图像中的深度值,并基于所述多张目标图像中选中的图像对所述深度值进行投影转化,得到多个目标深度值。
[0141]
可选地,在一些实施例中,筛选子模块,包括:
[0142]
第一确定单元,用于在多张彩色图像中确定选中图像;
[0143]
转化单元,用于基于选中图像对多张彩色图像中除选中图像外的图像进行位姿转化,得到多张转化图像;
[0144]
第二确定单元,用于在多张转化图像中确定与选中图像误差小于预设阈值的多张目标转化图像;
[0145]
第三确定单元,用于根据多张目标转化图像对应的彩色图像与选中图像确定多张目标图像。
[0146]
可选地,在一些实施例中,第二确定子单元,包括:
[0147]
计算子单元,用于计算每一转化图像与选中图像之间的重投影误差;
[0148]
确定子单元,用于确定重投影误差小于预设阈值的转化图像为目标转化图像。
[0149]
可选地,在一些实施例中,计算子单元,还用于:
[0150]
获取待定位特征点在每一转化图像对应的彩色图像中的第一坐标值,以及获取待定位特征点在每一转化图像对应的深度图像中的第一深度值;
[0151]
获取每一转化图像位姿转化对应的旋转参数和平移参数;
[0152]
基于第一坐标值、第一深度值、旋转参数和平移参数计算每一转化图像的表征参数;
[0153]
计算每一转化图像的表征参数与选中图像的目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0154]
可选地,在一些实施例中,计算子单元,还用于:
[0155]
获取待定位特征点在选中图像中的第二坐标值,以及获取待定位特征点在选中图像对应的深度图像中的第二深度值;
[0156]
计算第二坐标值和第二深度值的乘积,得到选中图像对应的目标表征参数;
[0157]
计算每一转化图像的表征参数与目标表征参数之间的差值,得到每一转化图像与选中图像之间的重投影误差。
[0158]
可选地,在一些实施例中,本技术提供的目标定位装置还包括:
[0159]
获取子模块,用于获取选中图像在世界坐标系中的目标位姿;
[0160]
转化子模块,用于基于目标位姿、平均深度值以及坐标值进行坐标转化,得到待定位特征点在世界坐标系下的定位信息。
[0161]
在一些实施例中,本技术提供的目标定位装置还包括:
[0162]
定位子模块,用于根据多个所述待定位特征点在世界坐标系下的定位信息对待定位物体进行空间定位,得到待定位物体的位置信息。
[0163]
应当说明的是,本技术实施例提供的目标定位装置200与上文实施例中图1所示的目标定位方法属于同一构思,其具体实现过程详见以上相关实施例,此处不再赘述。
[0164]
根据上述描述可知,本技术提供的目标定位装置,通过获取模块210获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;提取模块220提取待定位特征点在每一彩色图像对应的深度图像中的深度值,并基于多张彩色图像中的选中的图像对深度值进行投影转化,得到多个目标深度值;计算模块230计算多个目标深度值的平均深度值,以及确定待定位特征点在选中的图像中的坐标值;定位模块240根据选中的图像、平均深度值以及坐标值对待定位特征点进行定位。以此,本技术根据深度图像的深度值,以及彩色图像特之间的位姿约束和特征点映射关系,可以更快速和准确地获取观测帧中待定特征点的深度值。相对于采用多帧构建线性方程组的求解方式可以获得更为准确的深度信息,从而可以提升目标定位的精度。
[0165]
本技术实施例还提供一种存储介质,其上存储有计算机程序,当其存储的计算机程序在本技术实施例提供的电子设备的处理器上执行时,使得电子设备的处理器执行以上
任一适于电子设备的目标定位方法中的步骤。其中,存储介质可以是磁碟、光盘、只读存储器(read only memory,rom)或者随机存取器(random access memory,ram)等。
[0166]
本技术还提供一种终端,请参照图5,终端300包括处理器310和存储器320。
[0167]
本技术实施例中的处理器310可以是通用处理器,比如arm架构的处理器。存储器320中存储有计算机程序,其可以为高速随机存取存储器,还可以为非易失性存储器,比如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。相应地,存储器320还可以包括存储器控制器,以提供处理器301对存储器320的访问。处理器310通过执行存储器320中的计算机程序,用于执行以上任一目标定位方法,比如:
[0168]
获取于待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;提取待定位特征点在每一彩色图像对应的深度图像中的深度值,并基于多张彩色图像中选中的图像对深度值进行投影转化,得到多个目标深度值;计算多个目标深度值的平均深度值,以及确定待定位特征点在选中图像中的坐标值;根据选中的图像、平均深度值以及坐标值对待定位特征点进行定位。
[0169]
以上对本技术所提供的一种目标定位方法、装置、存储介质及终端进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
技术特征:1.一种目标定位方法,其特征在于,所述方法包括:获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;提取所述待定位特征点在彩色图像对应的深度图像中的深度值,并基于所述多张彩色图像中选中的图像对所述深度值进行投影转化,得到多个目标深度值;计算所述多个目标深度值的平均深度值,以及确定所述待定位特征点在所述选中的图像中的坐标值;根据所述选中的图像、所述平均深度值以及所述坐标值对所述待定位特征点进行定位。2.根据权利要求1所述的方法,其特征在于,所述提取所述待定位特征点在彩色图像对应的深度图像中的深度值,并基于所述多张彩色图像中选中的图像对所述深度值进行投影转化,得到多个目标深度值,包括:对所述多张彩色图像进行筛选,得到多张目标图像;提取所述待定位特征点在所述多张目标图像对应的深度图像中的深度值,并基于所述多张目标图像中选中的图像对所述深度值进行投影转化,得到多个目标深度值。3.根据权利要求2所述的方法,其特征在于,所述对所述多张彩色图像进行筛选,得到多张目标图像,包括:在所述多张彩色图像中确定选中图像;基于所述选中图像对所述多张彩色图像中除所述选中图像外的图像进行位姿转化,得到多张转化图像;在所述多张转化图像中确定与所述选中图像误差小于预设阈值的多张目标转化图像;根据所述多张目标转化图像对应的彩色图像与所述选中图像确定多张目标图像。4.根据权利要求3所述的方法,其特征在于,所述在所述多张转化图像中确定与所述选中图像误差小于预设阈值的多张目标转化图像,包括:计算每一转化图像与所述选中图像之间的重投影误差;确定所述重投影误差小于预设阈值的转化图像为目标转化图像。5.根据权利要求4所述的方法,其特征在于,所述计算每一转化图像与所述选中图像之间的重投影误差,包括:获取所述待定位特征点在每一转化图像对应的彩色图像中的第一坐标值,以及获取所述待定位特征点在每一转化图像对应的深度图像中的第一深度值;获取每一转化图像位姿转化对应的旋转参数和平移参数;基于所述第一坐标值、所述第一深度值、所述旋转参数和所述平移参数计算每一转化图像的表征参数;计算每一转化图像的表征参数与所述选中图像的目标表征参数之间的差值,得到每一转化图像与所述选中图像之间的重投影误差。6.根据权利要求5所述的方法,其特征在于,所述计算每一转化图像的表征参数与所述选中图像的目标表征参数之间的差值,得到每一转化图像与所述选中图像之间的重投影误差,包括:获取所述待定位特征点在所述选中图像中的第二坐标值,以及获取所述待定位特征点在所述选中图像对应的深度图像中的第二深度值;
计算所述第二坐标值和所述第二深度值的乘积,得到所述选中图像对应的目标表征参数;计算每一转化图像的表征参数与所述目标表征参数之间的差值,得到每一转化图像与所述选中图像之间的重投影误差。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述选中图像在世界坐标系中的目标位姿;基于所述目标位姿、所述平均深度值以及所述坐标值进行坐标转化,得到所述待定位特征点在所述世界坐标系下的定位信息。8.根据权利要求7所述的方法,其特征在于,所述基于所述目标位姿、所述平均深度值以及所述坐标值进行坐标转化,得到所述待定位特征点在所述世界坐标系下的定位信息之后,还包括:根据多个所述待定位特征点在世界坐标系下的定位信息对待定位物体进行空间定位,得到所述待定位物体的位置信息。9.一种目标定位装置,其特征在于,所述装置包括:获取模块,用于获取待定位特征点的多张彩色图像以及与彩色图像对应的深度图像;提取模块,用于提取所述待定位特征点在彩色图像对应的深度图像中的深度值,并基于所述多张彩色图像的选中的图像对所述深度值进行投影转化,得到多个目标深度值;计算模块,用于计算所述多个目标深度值的平均深度值,以及确定所述待定位特征点在所述选中的图像中的坐标值;第一定位模块,用于根据所述选中的图像、所述平均深度值以及所述坐标值对所述待定位特征点进行定位。10.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被电子设备的处理器加载时执行如权利要求1-8中任一项所述的目标定位方法中的步骤。11.一种终端,所述终端包括处理器和存储器,所述存储器储存有计算机程序,其特征在于,所述处理器通过加载所述计算机程序执行如权利要求1-8中任一项所述的目标定位方法中的步骤。
技术总结一种目标定位方法、装置、存储介质及终端,方法通过采用本申请所提供的技术方案,即获取于不同位置拍摄待定位特征点得到的多张彩色图像以及与每一彩色图像对应的深度图像;对多张彩色图像进行误差筛选,得到多张目标图像;提取待定位特征点在每一目标图像对应的深度图像中的深度值,并基于多张目标图像中的选中图像对深度值进行投影转化,得到多个目标深度值;计算多个目标深度值的平均深度值,以及确定待定位特征点在选中图像中的坐标值;根据选中图像、平均深度值以及坐标值对待定位特征点进行定位。该方法可以有效提升对特征点进行定位的定位效率,进而可以提升对物体自身进行定位的定位效率。位的定位效率。位的定位效率。
技术研发人员:刘平
受保护的技术使用者:OPPO广东移动通信有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1