视觉特征点的深度恢复方法、装置、电子设备和存储介质与流程

文档序号:33420753发布日期:2023-03-10 23:40阅读:63来源:国知局
视觉特征点的深度恢复方法、装置、电子设备和存储介质与流程

1.本公开涉及自动驾驶技术领域,尤其涉及一种视觉特征点的深度恢复方法、装置、电子设备和存储介质。


背景技术:

2.定位技术是自动驾驶技术中的核心技术,视觉即时定位与地图构建(simultaneous localization and mapping,简称slam)是实现自动驾驶定位的主要方法之一。在视觉slam的定位与建图过程中,需要恢复出周围环境中各真实路标点的坐标信息,这就需要对视觉图像中的视觉特征点进行准确的深度恢复。
3.现有技术中视觉特征点的恢复深度方法,通常包括利用单目相机的三角测量法、利用双目相机的立体匹配算法或利用rgbd相机的红外传感方法。其中,利用单目相机的三角测量法应用较为广泛,该方法中通过采集视觉图像帧和激光点云帧,并建立视觉图像帧中的视觉特征点与激光点云帧中的激光点的关联关系,确定与每个视觉特征点关联的多个激光点,然后对上述多个激光点进行平面拟合,并可以基于平面拟合后得到的拟合平面进行深度计算,然而发明人在实现本发明的过程中发现,上述与每个视觉特征点关联的多个激光点存在曲率偏大的尖锐激光点,会影响深度计算结果的准确性。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种视觉特征点的深度恢复方法、装置、电子设备和存储介质。
5.第一方面,本公开提供了一种视觉特征点的深度恢复方法,所述方法包括:
6.获取视觉图像帧和激光点云帧,所述视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
7.建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
8.对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
9.基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
10.第二方面,本公开还提供了一种单目视觉初始化方法,包括:
11.确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
12.基于如上述所述的视觉特征点的深度恢复方法,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
13.基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他
视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
14.第三方面,本公开还提供了一种视觉特征点的深度恢复装置,包括:
15.第一获取模块,用于获取视觉图像帧和激光点云帧,所以视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
16.对应关系建立模块,用于建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
17.筛选模块,用于对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
18.深度计算模块,用于基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
19.第四方面,本公开还提供了一种单目视觉初始化装置,包括:
20.参考帧确定模块,用于确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
21.激光深度获取模块,用于如上所述的视觉特征点的深度恢复所述的装置,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
22.三角化深度获取模块,用于基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
23.第五方面,本公开还提供了一种电子设备,所述电子设备包括:
24.一个或多个处理器;
25.存储装置,用于存储一个或多个程序;
26.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的视觉特征点的深度恢复方法或单目视觉初始化方法。
27.第六方面,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的视觉特征点的深度恢复方法或单目视觉初始化方法。
28.本公开实施例提供的技术方案与现有技术相比具有如下优点:
29.本公开实施例提供的技术方案通过设置对视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云,其可以过滤掉包括曲率偏大的尖锐激光点的目标点云,在后续计算时,不会使用到包括曲率偏大的尖锐激光点的目标点云,也就不会受到尖锐激光点的影响,因此,可以提高最终得到的视觉特征点的激光深度的准确率。
附图说明
30.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
31.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为本公开实施例提供的一种视觉特征点的深度恢复方法的流程图;
33.图2为本公开实施例提供的一种点云局部曲率的示意图;
34.图3为图1中s120的一种实现方法的流程图;
35.图4为本公开实施例提供的一种归一化平面的示意图;
36.图5为本公开实施例提供的一种采集设备采集激光点云帧的示意图;
37.图6为本公开实施例提供的一种用于实现s140的方法的流程图;
38.图7为本公开实施例提供的一种用于实现s210的方法的流程图;
39.图8和图9为本公开实施例提供的两种基于平滑目标点云拟合出的局部表面的示意图;
40.图10为本公开实施例提供的另一种用于实现s140的方法的流程图;
41.图11为本公开实施例提供的一种根据激光点平面的法向量确定视觉特征点的激光深度的原理的示意图;
42.图12为本公开实施例提供的一种单目视觉初始化方法的流程图;
43.图13为本公开实施例提供的一种滑动窗口的示意图;
44.图14为本公开实施例中的一种视觉特征点的深度恢复装置的结构示意图;
45.图15为本公开实施例中的一种单目视觉初始化装置的结构示意图;
46.图16为本公开实施例中的一种电子设备的结构示意图。
具体实施方式
47.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
48.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
49.图1为本公开实施例提供的一种视觉特征点的深度恢复方法的流程图,该方法可以由视觉特征点的深度恢复装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,该电子设备具体包括但不限于智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备以及交通工具等。如图1所示,该方法具体可以包括:
50.s110、获取视觉图像帧和激光点云帧,视觉图像帧包括多个视觉特征点,激光点云帧包括多个激光点。
51.采集视觉图像帧和激光点云帧的设备为采集设备。采集设备上配置有相机和激光雷达。在采集设备中,相机和激光雷达的相对位置可以固定。采集设备在采集视觉图像帧和激光点云帧的过程为采集过程。采集过程中,采集设备周围环境中的物体为目标物体。
52.视觉特征点是视觉图像帧中的点,与构成目标物体的点对应,是构成目标物体的
点的图像化表示结果,其携带有在相机坐标系下的坐标信息。在自动驾驶场景下,目标物体可以为防护栏、车道线以及道路周围的建筑物等。
53.激光点是激光雷达形成的激光在遇到目标物体以后反射,形成的回波信号,其携带有在激光雷达坐标系下的坐标信息。激光点与在目标物体上形成回波信号(即激光点自身)的入射点对应。
54.本步骤中所获取的视觉图像帧和激光点云帧具有对应关系。
55.在一个实施例中,一个视觉图像帧与多个激光点云帧对应。具体地,具有对应关系的视觉图像帧的采集时间与多个激光点云帧中每一个激光点云帧的采集时间之差的绝对值小于或等于设定时间阈值。即,在误差允许的范围内容,可以近似认为具有对应关系的一个视觉图像帧与多个激光点云帧是在同一极短的时段采集的。在这个极短的时间内,采集设备虽然存在位移,但是位移极短,在误差允许的范围内,该位移可以忽略不计。
56.在一个实施例中,在执行本步骤之后,可选地,对每一帧激光点云帧进行预处理,滤除掉点云中深度无穷远的无效点、远离点云主体的稀疏离群点以及激光测量噪声点;对每一帧视觉图像帧进行畸变校正,补偿图像像素因透镜成像产生的位置偏移。这样设置有助于使得最终得到的激光深度准确。
57.s120、建立视觉图像帧中的视觉特征点和激光点云帧中的激光点的对应关系,对应关系包括与每个视觉特征点对应的n个激光点,对应的n个激光点构成视觉特征点的目标点云,n为大于等于3的正整数。
58.由于视觉特征点与构成目标物体的具体的点对应,激光点也与构成目标物体的具体的点对应。本步骤的目的是将对应于构成目标物体的同一点的视觉特征点和激光点对应。
59.示例性地,视觉图像帧中包括视觉特征点a和视觉特征b,视觉特征点a对应于车道线的起点,视觉特征b对应于车道线的终点。激光点云帧中,包括激光点1-20,其中激光点1-5对应于车道线的起点,激光点10-20对应于车道线的终点。在执行本步骤时,建立视觉特征点a与激光点1-5的对应关系,建立视觉特征点b与激光点10-20的对应关系。则激光点1-5构成视觉特征点a的目标点云,激光点10-20构成视觉特征点b的目标点云。
60.s130、对视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云。
61.平滑目标点云是指不包括存在曲率偏大的尖锐激光点的点云。
62.在实际中,具体可作为平滑条件的判断条件有多种,本技术对此不作限制。在一个实施例中,可以设置本步骤的实现方法包括:计算目标点云中每个激光点对应的点云局部曲率;若至少5个激光点对应的局部点云曲率均小于第一设定阈值,则目标点云符合平滑条件。
63.示例性地,激光点101-200构成视觉特征点c的目标点云,分别计算激光点101-200中每个激光点对应的点云局部曲率。若激光点101-200中存在5个激光点对应的点云局部曲率均小于第一设定阈值,则认为由激光点101-200所构成的目标点云符合平滑条件,后续将基于激光点101-200中至少部分激光点携带的坐标信息,计算视觉特征点a的激光深度。
64.进一步地,计算目标点云中每个激光点对应的点云局部曲率,包括:
[0065][0066]
其中,c即为当前激光点的点云局部曲率,xr为当前激光点对应的激光点集,|xr|表示激光点集中激光点的个数,ri表示当前激光点的深度,rj表示激光点集中其他激光点的深度。若当前正在计算某个激光点对应的点云局部曲率,该激光点即为当前激光点。当前激光点的深度ri可基于当前激光点在激光雷达坐标系下的坐标信息计算得到。激光点集中其他激光点的深度可基于其他激光点在激光雷达坐标系下的坐标信息计算得到。
[0067]
图2为本公开实施例提供的一种点云局部曲率的示意图。参见图2,对于任意激光点,其对应的点云局部曲率c越大,说明该激光点周围的点云越粗糙;c越小,说明该激光点周围的点云越平滑。
[0068]
在确定当前激光点对应的激光点集时,可选地,确定与当前激光点关联的关联激光点;将当前激光点和与当前激光点关联的关联激光点共同作为当前激光点对应的激光点集中的元素,以形成与当前激光点对应的激光点集。
[0069]
确定与当前激光点关联的关联激光点的方法有多种,本技术对此不作限制。示例性地,确定与当前激光点关联的关联激光点的方法,包括:选取与当前激光点在同一激光扫描线上,且位于当前激光点左右两侧各预设数量个激光点,将所选取的激光点作为与当前激光点关联的关联激光点。其中,激光扫描线为激光雷达通过旋转形成的线状的扫描光束。
[0070]
s140、基于符合平滑条件的平滑目标点云进行深度计算,以获取视觉特征点的激光深度。
[0071]
上述技术方案通过设置对视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云,意味着过滤掉包括曲率偏大的尖锐激光点的目标点云,在后续计算时,不会使用到包括曲率偏大的尖锐激光点的目标点云,也就不会受到尖锐激光点的影响,因此,可以提高最终得到的视觉特征点的激光深度的准确率。
[0072]
在上述技术方案中,用于实现s120的方法有多种,本技术对此不作限制。示例性地,图3为图1中s120的一种实现方法的流程图,该实现方法对应获取的激光点云帧为不同时刻采集的多个激光点云帧的情况。用于实现s120的方法包括:
[0073]
s121、将不同时刻采集的激光坐标系下的多个激光点云帧转换到世界坐标系下。
[0074]
s122、对世界坐标系下的多个激光点云帧进行累加,以得到累加后的局部点云地图。
[0075]
s123、基于累加后的局部点云地图获取视觉图像帧的采集时刻的相机坐标系下的局部点云地图。
[0076]
s124、将视觉图像帧中的视觉特征点和视觉图像帧的采集时刻的相机坐标系下的局部点云地图中的激光点均投影到相机归一化平面上。
[0077]
s125、获得与每个视觉特征点对应的多个激光点,对应的多个激光点与视觉特征点在归一化平面上的距离小于或等于第二设定阈值。
[0078]
示例性地,已知激光雷达与相机的外参为tj时刻的采集的视觉图像帧与tg时刻至th时刻采集的激光点云帧对应。
[0079]
设在ti时刻的激光点云帧为其中,g≤i≤h,i-g=kt,k正整数,t为激光雷达周
期性地采集激光点云帧的时间间隔。通过对视觉里程计的位姿进行插值,可以得到ti时刻相机坐标系到世界坐标系的变换矩阵将激光点云帧从ti时刻的激光雷达坐标系变换到ti时刻的相机坐标系,再变换到世界坐标系,这一过程可表示为
[0080][0081]
其中,即为ti时刻在世界坐标系下的激光点云帧。将一段时间内的激光点云帧(即与同一视觉图像帧对应的各激光点云帧)均按照上述过程变换到世界坐标系下,并累加到一起构成局部点云地图
[0082][0083]
对于tj时刻的视觉图像帧,通过tj时刻相机坐标系到世界坐标系的变换矩阵将局部点云地图mw变换到tj时刻的相机坐标系下
[0084][0085]
由此便可得到任意时刻相机坐标系下的激光点云局部地图mc,即得到各激光点在相机坐标系下的坐标信息。
[0086]
将tj时刻的视觉图像帧中的视觉特征点和相机坐标系下的激光点云局部地图mc中的激光点均投影到相机归一化平面上。具体地,无论是以tj时刻的视觉图像帧中的视觉特征点还是以相机坐标系下的激光点云局部地图mc中的激光点为投影对象,由于已知投影对象在相机坐标系下的坐标信息,将投影对象在相机坐标系下的各坐标轴上的坐标值除以该坐标信息最后一维的数值(即该点距离相机成像平面的深度),所得到的坐标信息为投影对象在相机归一化平面上的坐标信息,即相当于将投影对象投影在相机归一化平面上。
[0087]
在一个实施例中,设置对于任一视觉特征点,在相机归一化平面上,以视觉特征点的投影为中心,以第二设定阈值为边长,所限定的区域为该视觉特征点的邻域范围。任一视觉特征点与投影在其邻域范围中的激光点对应。图4为本公开实施例提供的一种归一化平面的示意图。示例性地,参见图4,该归一化平面包括视觉特征点的投影a和激光点的投影b。在图4中,每一个视觉特征点投影a的外侧都绘制有加粗的正方形线框e,该加粗的正方形线框e代表该视觉特征点的邻域范围边界线。每一个视觉特征点a与投影在其邻域范围中的激光点b对应。
[0088]
上述技术方案中,通过对世界坐标系下的多个激光点云帧进行累加,以得到累加后的局部点云地图,后续基于局部点云地图与视觉特征点进行数据关联,来恢复视觉特征点的深度。与仅使用视觉图像帧采集时刻邻近的某一时刻的单个激光点云帧来恢复视觉特征点深度的技术相比,采用本技术中的局部点云地图,可以解决单帧激光点云稀疏的问题,提高了激光点云在相机坐标系下的点云密度,扩大了点云在相机归一化平面上的投影区域,使得视觉特征点深度恢复的结果更加准确、可靠。
[0089]
在一些实施例中,可选地,s125可替换为:确定与视觉特征点在归一化平面上的距离小于或等于第二设定阈值的激光点,作为视觉特征点的邻域激光点;在邻域激光点中确定符合前景条件的激光点作为与视觉特征点对应的n个激光点。
[0090]
假设tj时刻的采集的视觉图像帧与tg时刻至th时刻采集的激光点云帧对应。g≤i≤h,i-g=kt,k正整数,t为激光雷达周期性地采集激光点云帧的时间间隔。即对tj时刻采
集的视觉图像帧中的视觉特征点的激光深度进行计算时,需要依赖tg时刻至th时刻采集的激光点云帧中的激光点。
[0091]
图5为本公开实施例提供的一种采集设备采集激光点云帧的示意图。参见图5,在ti时刻,物体p的p1部分处于显露(即不被遮挡)的状态,ti时刻采集的激光点云帧包括因p1部分反射形成的激光点。接着,随着时间的推移,采集设备不断移动。在tj时刻,物体p的p1部分被物体q遮挡,tj时刻采集的激光点云帧不包括因p1部分反射形成的激光点,但包括因物体q反射形成的激光点。
[0092]
由于tj时刻,p1部分被遮挡,tj时刻的采集的视觉图像帧中不包括与p1部分对应的视觉特征点,但包括物体q对应的视觉特征点。但是在执行s122时,会将ti时刻采集的激光点云帧和tj时刻采集的激光点云帧进行累加,得到的累加后的局部点云地图包括因p1部分反射形成的激光点,进而使得物体q对应的视觉特征点的邻域激光点包括因p1部分反射形成的激光点。显然如果基于因p1部分反射形成的激光点计算物体q对应的视觉特征点的激光深度,会导致所计算出的激光深度不准确。上述技术方案中的前景条件用于滤去因该被遮挡的物体形成的激光点(如图4中因p1部分反射形成的激光点),解决了多帧激光点云叠加后不可见的被遮挡点云存在深度值的问题,可以使得最终所恢复出的激光深度准确。
[0093]
可选地,在邻域激光点中确定符合前景条件的激光点作为与视觉特征点对应的n个激光点,包括:确定邻域激光点中各个激光点到相机光心的欧式距离;根据各个激光点到相机光心的欧式距离确定最小欧式距离;确定各个激光点中到相机光心的欧氏距离与最小欧式距离的差值小于或等于第三设定阈值的激光点作为与视觉特征点对应的n个激光点。
[0094]
可选地,根据各个激光点到相机光心的欧式距离确定最小欧式距离,具体可以包括:将各个激光点到相机光心的欧式距离按照由小到大的排序,形成欧式距离队列;将位于欧式距离队列第一位的欧式距离作为最小欧式距离。
[0095]
本技术对第三设定阈值的具体取值不作限制。示例性地,可以设置第三设定阈值为2m。
[0096]
由于相对于遮挡物,被遮挡的物体往往相对相机较远,通过设置确定各个激光点中到相机光心的欧氏距离与最小欧式距离的差值小于或等于第三设定阈值的激光点作为与视觉特征点对应的n个激光点。可以有效剔除因被遮挡物反射形成的激光点,进而使得最终得到的视觉特征点的激光深度准确。
[0097]
在上述技术方案的基础上,可用于实现s140的方法有多种,本技术对此不作限制。图6为本公开实施例提供的一种用于实现s140的方法的流程图。参见图6,该用于实现s140的方法,包括:
[0098]
s210、判断平滑目标点云是否符合第一平面拟合条件。
[0099]
s220、在平滑目标点云符合第一平面拟合条件时,基于平滑目标点云进行深度计算。
[0100]
平滑目标点云符合第一平面拟合条件,意味着基于平滑目标点云可以拟合出平面。平滑目标点云不符合第一平面拟合条件,意味着基于平滑目标点云无法拟合出平面。
[0101]
由于在平滑目标点云符合第一平面拟合条件时,基于平滑目标点云进行深度计算,可以避免不合理的平面拟合结果对视觉特征点深度恢复的影响,可以确保最终所得到的视觉特征点的激光深度信息准确。
[0102]
图7为本公开实施例提供的一种用于实现s210的方法的流程图。参见图7,该用于实现s210的方法包括:
[0103]
s211、根据平滑目标点云中的n个激光点构建局部表面。
[0104]
s212、获取局部表面的协方差矩阵。
[0105]
s213、对协方差矩阵进行特征值分解,得到大小依次排列的第一特征向量的特征值、第二特征向量的特征值和第三特征向量的特征值,若第一特征向量的特征值与第二特征向量的特征值之比小于第四设定阈值,则平滑目标点云符合第一平面拟合条件。
[0106]
示例性地,图8和图9为本公开实施例提供的两种基于平滑目标点云拟合出的局部表面的示意图。参见图8和图9,假设平滑目标点云中的k个激光点构成了一个点云的局部表面p,局部表面的协方差矩阵反映了该点云局部的几何特征,定义点云的局部表面协方差矩阵为
[0107][0108]
其中p表示局部表面的几何中心,具体形式为
[0109][0110]
对协方差矩阵σ进行特征值分解,得到3个特征向量n、m与v,以及3个特征向量分别对应的按照由小到大升序排列的特征值λ1、λ2与λ3,特征向量n与v分别代表局部表面p的法线方向与主线方向。
[0111]
设挑选出来的若干平滑激光点组成局部表面集合pi,根据上述局部表面协方差矩阵计算集合pi内所有点的协方差矩阵,并对协方差矩阵进行特征值分解。分析局部表面协方差矩阵特征值分解的结果,如果中间特征值λ2远大于最小特征值λ1,则说明最小特征值λ1对应的特征向量n的模长远小于另外两个特征向量的模长。该局部表面符合图9的平面几何特征,此时可以认为将该局部表面内的所有激光点可以拟合成为平面。
[0112]
图10为本公开实施例提供的另一种用于实现s140的方法的流程图。参见图10,该用于实现s140的方法,包括:
[0113]
s310、根据视觉特征点对应的符合平滑条件的n个激光点进行拟合得到激光点平面。
[0114]
s320、确定激光点平面的法向量。
[0115]
示例性地,在相机坐标系下,将某一视觉特征点对应的符合平滑条件的5个激光点表示为由空间几何学可知,三维空间内平面的一般方程可表示为
[0116]
ax+by+cz+d=0
[0117]
其中向量n=(a,b,c)
t
是该平面的法向量,d通常可取-1。将5个平滑激光点带入三维空间内平面的一般方程,可组成超定线性方程组
[0118]
an=c。
[0119]
其中系数矩阵常数矩阵c=[-1,

,-1]
t
∈r5,对该超定线性方程组进行qr分解(即正交三角分解)即可解得平面法向量n。此时便获得了用于视觉特
征点深度恢复的激光点平面方程以及该平面方程的法向量。若5个激光点中任一个点的坐标满足
[0120][0121]
则表明平面拟合效果不好,不进行插值恢复视觉特征点深度。其中ε是设定阈值。
[0122]
s330、根据激光点平面的法向量确定视觉特征点的激光深度。
[0123]
可选地,可以根据如下公式获取视觉特征点的激光深度d:
[0124][0125]
其中,n为激光点平面的法向量,x为视觉特征点在相机归一化平面上的坐标,ac为其中一个激光点在相机坐标系下的坐标。
[0126]
之所以可以根据上式计算视觉特征点的激光深度的原因是:
[0127]
定义相机光心与视觉特征点连成的射线与激光点平面的交点在相机坐标系z轴上的坐标值作为该视觉特征点的深度。图11为本公开实施例提供的一种根据激光点平面的法向量确定视觉特征点的激光深度的原理的示意图。参见图11,设相机的光心为oc,视觉特征点在归一化平面上的坐标为
[0128][0129]
激光点平面上任意3个激光点在相机坐标系下的坐标分别为ac、bc与cc,空间点dc为相机光心发出的射线ocx与激光点平面的交点,则线段||ocdc||在相机坐标系z轴上的投影长度即为视觉特征点x的激光深度值。已知向量dc=dx,而平面内的任意向量与该平面的法向量的数量积均为0,由此可得
[0130]
(d
c-ac)
·
n=(dx-ac)
·
n=0。
[0131]
对上式进行变换,可以得到视觉特征点激光深度d的求解公式即为式而视觉特征点对应的空间点在相机坐标系下的坐标为[duc,dvc,d]
t

[0132]
需要说明的是,将上述技术特征进行组合,使得本技术提供的视觉特征点的深度恢复方法包括一次或多次筛选步骤。如利用平滑条件进行筛选的步骤、利用前景条件进行筛选的步骤、或利用第一平面拟合条件进行筛选的步骤。由于一次或多次筛选步骤的作用,会使得视觉图像帧中仅部分视觉特征点可基于本技术提供的视觉特征点的深度恢复方法恢复激光深度。基于此,可与设置视觉特征点具有两种属性的深度通道,分别称为激光深度与三角化深度。对于可以采用本公开实施例提供的任一方法得到激光深度的视觉特征点,其激光深度等于根据本公开实施例提供的任一方法最终计算得到的计算结果,表示该特征点的激光深度有效。对于不可以采用本公开实施例提供的任一方法得到激光深度的视觉特征点,设置其激光深度为-1,表示该特征点的激光深度无效,此时只能使用三角测量法恢复其三角化深度。
[0133]
使用三角测量法恢复视觉特征点的三角化深度的方法为现有技术,此处不再赘述。
[0134]
图12为本公开实施例提供的一种单目视觉初始化方法的流程图。该方法可以由单
目视觉初始化装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备以及交通工具等。参见图12,该方法包括:
[0135]
s510、确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧。
[0136]
由于视觉图像帧中包括不可以采用本公开实施例提供的任一方法得到激光深度的视觉特征点。对于此类视觉特征点,需要使用三角测量法恢复其三角化深度。而三角测量法需要估计出不同视觉图像帧采集时刻采集设备的位姿变化结果。参考视觉图像帧用作为参考对象,来估计用于单目视觉初始化的多个视觉图像帧中除参考视觉图像帧外的其他视觉图像帧之间采集时刻采集设备的位姿变化。
[0137]
本步骤的实现方法有多种,本技术对此不作限制。示例性地,可以选取多个视觉图像帧中的任意一帧作为参考视觉图像帧。
[0138]
在一个实施例中,本步骤的实现方法包括:对滑动窗口内的各视觉图像帧与当前视觉图像帧进行特征识别,若第l个视觉图像帧到当前图像帧中连续跟踪到的视觉特征点的数量大于或等于第一预设值,且第l个视觉图像帧到当前视觉图像帧的视差大于或等于第二预设值个像素,则确定第l个视觉图像帧为参考视觉图像帧。
[0139]
其中,滑动窗口用于对视觉图像帧序列进行初步筛选,得到用作为单目视觉初始化的视觉图像帧。图13为本公开实施例提供的一种滑动窗口的示意图。滑动窗口中各视觉图像帧在采集时间上是连续的,其可容纳的视觉图像帧的最大值是固定的。当滑动窗口中已容纳的视觉图像帧的个数等于其可容纳的视觉图像帧的最大值时,每有一个新的视觉图像帧(新的视觉图像帧的采集时间晚于当前滑动窗口中任意一个视觉图像帧的采集时间)添加到滑动窗口中,就需要从滑动窗口中去除一个采集时间最早的视觉图像帧。
[0140]
当前图像帧是滑动窗口中采集时间最晚的视觉图像帧。在后文中,将当前图像帧简称为当前帧。
[0141]
继续参见图13,若滑动窗口内的最新的帧(即第10帧)为当前帧,最旧帧为第0帧。从第0帧开始,检查每一帧与当前帧的特征对应关系,如果某一帧与当前帧之间持续跟踪的视觉特征点超过30个,并且这一帧与当前帧的视差大于20个像素,则认为从这一帧开始到当前帧之间存在稳定的特征跟踪并且两帧之间存在足够的视差。此时选择这一帧作为视觉初始化的参考视觉图像帧。
[0142]
s520、基于本公开实施例提供的视觉特征点的深度恢复方法,确定多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度。
[0143]
s530、基于参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定其他视觉图像帧的位姿估计结果,并基于其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,第二视觉特征点为不能够进行深度恢复的视觉特征点。
[0144]
可选地,假设第l个视觉图像帧为参考视觉图像帧,其他视觉图像帧包括当前视觉图像帧、参考视图像帧l到当前视觉图像帧之间的x个第一视觉图像帧和第0帧到参考视觉图像帧l之间的y个第二视觉图像帧。本步骤的实现方法包括:基于参考视觉图像帧的第一视觉特征点的激光深度,以及当前视觉图像帧的第一视觉特征点的激光深度,确定当前视
觉图像帧的位姿估计结果,并基于当前视觉图像帧的位姿估计结果,利用三角测量法确定当前视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;基于参考视觉图像帧的第一视觉特征点的激光深度,以及从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的第一视觉特征点的激光深度,依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,并基于从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;基于参考视觉图像帧的第一视觉特征点的激光深度,以及从第l-1帧起到第0帧的y个第二视觉图像帧的第一视觉特征点的激光深度,依次确定从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,并基于从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l-1帧起到第0帧的y个第二视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度。
[0145]
可选地,确定其他视觉图像帧的位姿估计结果,可以包括:利用perspective-n-point算法确定其他视觉图像帧的位姿估计结果。相比于对极几何约束,采用perspective-n-point算法可以避免尺度不确定性,尺度漂移等问题,得到不带有尺度缩放的位姿估计结果。由于位姿估计结果不带有尺度缩放,后续在使用三角测量法恢复出的第二视觉特征点的三角化深度更为准确,可以提高初始化的精度、速度与鲁棒性。
[0146]
继续参见图13,示例性地,从第l+1帧开始向当前帧方向循环,采用pnp算法在第l+n(n=1,2,3
……
)帧与参考帧之间进行位姿估计,基于估计出的位姿,使用三角测量法恢复出第l+n帧与当前帧共同观测的第二视觉特征点的三角化深度,重复进行上述步骤直到当前帧的前一帧为止;设置新的循环,从第l-n(n=1,2,3
……
)帧开始向第0帧方向重复进行类似的步骤,直到将滑动窗口内所有帧相对于参考帧的位姿均估计出来,将所有第二视觉特征点均三角化为止。最后对滑动窗口内的所有帧做光束平差法,重新优化所有帧的位姿以及所有特征点的三角化深度。
[0147]
本技术提供的单目视觉初始化方法,以本公开实施例提供的任一视觉特征点的深度恢复方法为基础,结合现有的三角测量法,可以对视觉图像帧中的所有视觉特征点进行深度恢复。由于通过本公开实施例提供的任一视觉特征点的深度恢复方法得到的深度信息较为准确,其初始化的最终结果精度与鲁棒性也较高。
[0148]
上述单目视觉初始化方法在执行的过程中,对环境光亮度、光线照射方向等无要求,可应用于阳光充足的室外场景。
[0149]
采用本技术提供的技术方案,在已知视觉地图的定位过程中只需要单目相机,此时双目相机冗余,并且双目相机存在定期更换重新标定的问题,而单目相机与激光雷达融合的系统不会造成传感器配置的浪费。
[0150]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0151]
图14为本公开实施例中的一种视觉特征点的深度恢复装置的结构示意图。本公开
实施例所提供的视觉特征点的深度恢复装置可以电子设备中。参见图14,该视觉特征点的深度恢复装置具体包括:
[0152]
第一获取模块610,用于获取视觉图像帧和激光点云帧,所以视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
[0153]
对应关系建立模块620,用于建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
[0154]
筛选模块630,用于对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
[0155]
深度计算模块640,用于基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
[0156]
进一步地,筛选模块630,用于:
[0157]
计算所述目标点云中每个激光点对应的点云局部曲率;
[0158]
若至少5个激光点对应的局部点云曲率均小于第一设定阈值,则所述目标点云符合平滑条件。
[0159]
进一步地,筛选模块630,用于:
[0160][0161]
其中,c即为当前激光点的点云局部曲率,xr为所述当前激光点对应的激光点集,xr表示所述激光点集中激光点的个数,ri表示所述当前激光点的深度,rj表示所述激光点集中其他激光点的深度。
[0162]
进一步地,获取的所述激光点云帧为不同时刻采集的多个激光点云帧,所述装置还包括累计模块;
[0163]
所述累计模块,用于:
[0164]
将所述不同时刻采集的激光坐标系下的多个激光点云帧转换到世界坐标系下;
[0165]
对所述世界坐标系下的多个激光点云帧进行累加,以得到累加后的局部点云地图;
[0166]
所述对应关系建立模块,用于:
[0167]
基于所述累加后的局部点云地图获取所述视觉图像帧的采集时刻的相机坐标系下的局部点云地图;
[0168]
将所述视觉图像帧中的视觉特征点和所述视觉图像帧的采集时刻的相机坐标系下的局部点云地图中的激光点均投影到相机归一化平面上;
[0169]
获得与每个视觉特征点对应的多个激光点,所述对应的多个激光点与所述视觉特征点在归一化平面上的距离小于或等于第二设定阈值。
[0170]
进一步地,所述对应关系建立模块,用于:
[0171]
确定与所述视觉特征点在归一化平面上的距离小于或等于第二设定阈值的激光点,作为所述视觉特征点的邻域激光点;
[0172]
在所述邻域激光点中确定符合前景条件的激光点作为与所述视觉特征点对应的n
个激光点。
[0173]
进一步地,所述对应关系建立模块,用于:
[0174]
确定所述邻域激光点中各个激光点到相机光心的欧式距离;
[0175]
根据所述各个激光点到相机光心的欧式距离确定最小欧式距离;
[0176]
确定各个激光点中到所述相机光心的欧氏距离与所述最小欧式距离的差值小于或等于第三设定阈值的激光点作为与所述视觉特征点对应的n个激光点。
[0177]
进一步地,所述深度计算模块,用于:
[0178]
判断所述平滑目标点云是否符合第一平面拟合条件;
[0179]
并在所述平滑目标点云符合第一平面拟合条件时,基于所述平滑目标点云进行深度计算。
[0180]
进一步地,所述深度计算模块,用于:
[0181]
根据所述平滑目标点云中的n个激光点构建局部表面;
[0182]
获取所述局部表面的协方差矩阵;
[0183]
对所述协方差矩阵进行特征值分解,得到大小依次排列的第一特征向量的特征值、第二特征向量的特征值和第三特征向量的特征值,若所述第一特征向量的特征值与所述第二特征向量的特征值之比小于第四设定阈值,则所述平滑目标点云符合所述第一平面拟合条件。
[0184]
进一步地,所述深度计算模块,用于:
[0185]
根据所述视觉特征点对应的符合平滑条件的n个激光点进行拟合得到激光点平面;
[0186]
确定所述激光点平面的法向量;
[0187]
根据所述激光点平面的法向量确定所述视觉特征点的激光深度。
[0188]
进一步地,所述深度计算模块,用于:
[0189]
根据如下公式获取所述视觉特征点的激光深度d:
[0190][0191]
其中,n为激光点平面的法向量,x为视觉特征点在相机归一化平面上的坐标,ac为其中一个激光点在相机坐标系下的坐标。
[0192]
本公开实施例提供的视觉特征点的深度恢复装置,可执行本公开方法实施例所提供的视觉特征点的深度恢复方法中的步骤,具备执行步骤和有益效果,此处不再赘述。
[0193]
图15为本公开实施例中的一种单目视觉初始化装置的结构示意图。本公开实施例所提供的单目视觉初始化装置可以电子设备中。参见图15,该单目视觉初始化装置具体包括:
[0194]
参考帧确定模块710,用于确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
[0195]
激光深度获取模块720,用于基于如上所述的视觉特征点的深度恢复所述的装置,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
[0196]
三角化深度获取模块730,用于基于所述参考视觉图像帧的第一视觉特征点的激
光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
[0197]
进一步地,参考帧确定模块,用于:
[0198]
对滑动窗口内的各视觉图像帧与当前视觉图像帧进行特征识别,若第l个视觉图像帧到当前图像帧中连续跟踪到的视觉特征点的数量大于或等于第一预设值,且第l个视觉图像帧到当前视觉图像帧的视差大于或等于第二预设值个像素,则确定所述第l个视觉图像帧为参考视觉图像帧。
[0199]
进一步地,所述其他视觉图像帧包括当前视觉图像帧、所述参考视觉图像帧l到所述当前视觉图像帧之间的x个第一视觉图像帧和第0帧到所述参考视觉图像帧l之间的y个第二视觉图像帧;
[0200]
三角化深度获取模块,用于:
[0201]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及当前视觉图像帧的第一视觉特征点的激光深度,确定所述当前视觉图像帧的位姿估计结果,并基于所述当前视觉图像帧的位姿估计结果,利用三角测量法确定当前视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;
[0202]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的第一视觉特征点的激光深度,依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,并基于所述从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;
[0203]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及从第l-1帧起到第0帧的y个第二视觉图像帧的第一视觉特征点的激光深度,依次确定从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,并基于所述从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l-1帧起到第0帧的y个第二视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度。
[0204]
进一步地,三角化深度获取模块,用于利用perspective-n-point算法确定所述其他视觉图像帧的位姿估计结果。
[0205]
本公开实施例提供的单目视觉初始化装置,可执行本公开方法实施例所提供的单目视觉初始化方法中的步骤,具备执行步骤和有益效果,此处不再赘述。
[0206]
图16为本公开实施例中的一种电子设备的结构示意图。下面具体参考图16,其示出了适于用来实现本公开实施例中的电子设备1000的结构示意图。本公开实施例中的电子设备1000可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴电子设备等等的移动终端以及诸如数字tv、台式计算机、智能家居设备等等的固定终端。图16示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0207]
如图16所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)
1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储装置1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理以实现如本公开所述的实施例的视觉特征点的深度恢复方法或单目视觉初始化方法。在ram 1003中,还存储有电子设备1000操作所需的各种程序和信息。处理装置1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
[0208]
通常,以下装置可以连接至i/o接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换信息。虽然图16示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0209]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码,从而实现如上所述的视觉特征点的深度恢复方法或单目视觉初始化方法。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从rom 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。
[0210]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的信息信号,其中承载了计算机可读的程序代码。这种传播的信息信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0211]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0212]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
[0213]
获取视觉图像帧和激光点云帧,所述视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
[0214]
建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
[0215]
对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
[0216]
基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
[0217]
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
[0218]
确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
[0219]
基于上述视觉特征点的深度恢复方法,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
[0220]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
[0221]
可选的,当上述一个或者多个程序被该电子设备执行时,该电子设备还可以执行上述实施例所述的其他步骤。
[0222]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0223]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。
[0224]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0225]
根据本公开的一个或多个实施例,本公开提供了一种电子设备,包括:
[0226]
一个或多个处理器;
[0227]
存储器,用于存储一个或多个程序;
[0228]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开提供的任一所述的视觉特征点的深度恢复方法或单目视觉初始化方法。
[0229]
根据本公开的一个或多个实施例,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开提供的任一所述的视觉特征点的深度恢复方法或单目视觉初始化方法。
[0230]
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如上所述的视觉特征点的深度恢复方法或单目视觉初始化方法。
[0231]
方案1、一种视觉特征点的深度恢复方法,所述方法包括:
[0232]
获取视觉图像帧和激光点云帧,所述视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
[0233]
建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
[0234]
对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
[0235]
基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
[0236]
方案2、根据方案1所述的方法,对所述视觉特征点的目标点云进行筛选,以获取符合平滑条件的平滑目标点云,包括:
[0237]
计算所述目标点云中每个激光点对应的点云局部曲率;
[0238]
若至少5个激光点对应的局部点云曲率均小于第一设定阈值,则所述目标点云符合平滑条件。
[0239]
方案3、根据方案2所述的方法,所述计算所述目标点云中每个激光点对应的点云局部曲率,包括:
[0240][0241]
其中,c即为当前激光点的点云局部曲率,xr为所述当前激光点对应的激光点集,|xr|表示所述激光点集中激光点的个数,ri表示所述当前激光点的深度,rj表示所述激光点集中其他激光点的深度。
[0242]
方案4、根据方案1所述的方法,获取的所述激光点云帧为不同时刻采集的多个激光点云帧,所述方法还包括:
[0243]
将所述不同时刻采集的激光坐标系下的多个激光点云帧转换到世界坐标系下;
[0244]
对所述世界坐标系下的多个激光点云帧进行累加,以得到累加后的局部点云地图;
[0245]
所述建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,包括:
[0246]
基于所述累加后的局部点云地图获取所述视觉图像帧的采集时刻的相机坐标系下的局部点云地图;
[0247]
将所述视觉图像帧中的视觉特征点和所述视觉图像帧的采集时刻的相机坐标系下的局部点云地图中的激光点均投影到相机归一化平面上;
[0248]
获得与每个视觉特征点对应的多个激光点,所述对应的多个激光点与所述视觉特征点在归一化平面上的距离小于或等于第二设定阈值。
[0249]
方案5、根据方案4所述的方法,所述获得与每个视觉特征点对应的n个激光点,包括:
[0250]
确定与所述视觉特征点在归一化平面上的距离小于或等于第二设定阈值的激光点,作为所述视觉特征点的邻域激光点;
[0251]
在所述邻域激光点中确定符合前景条件的激光点作为与所述视觉特征点对应的n个激光点。
[0252]
方案6、根据方案5所述的方法,所述在所述邻域激光点中确定符合前景条件的激光点作为与所述视觉特征点对应的n个激光点,包括:
[0253]
确定所述邻域激光点中各个激光点到相机光心的欧式距离;
[0254]
根据所述各个激光点到相机光心的欧式距离确定最小欧式距离;
[0255]
确定各个激光点中到所述相机光心的欧氏距离与所述最小欧式距离的差值小于或等于第三设定阈值的激光点作为与所述视觉特征点对应的n个激光点。
[0256]
方案7、根据方案1所述的方法,所述基于所述符合平滑条件的平滑目标点云进行深度计算,包括:
[0257]
判断所述平滑目标点云是否符合第一平面拟合条件;
[0258]
并在所述平滑目标点云符合第一平面拟合条件时,基于所述平滑目标点云进行深度计算。
[0259]
方案8、根据方案7所述的方法,所述判断所述平滑目标点云是否符合第一平面拟合条件,包括:
[0260]
根据所述平滑目标点云中的n个激光点构建局部表面;
[0261]
获取所述局部表面的协方差矩阵;
[0262]
对所述协方差矩阵进行特征值分解,得到大小依次排列的第一特征向量的特征值、第二特征向量的特征值和第三特征向量的特征值,若所述第一特征向量的特征值与所述第二特征向量的特征值之比小于第四设定阈值,则所述平滑目标点云符合所述第一平面拟合条件。
[0263]
方案9、根据方案1所述的方法,所述基于符合平滑条件的平滑目标点云进行深度计算,包括:
[0264]
根据所述视觉特征点对应的符合平滑条件的平滑目标点云中的n个激光点进行拟合得到激光点平面;
[0265]
确定所述激光点平面的法向量;
[0266]
根据所述激光点平面的法向量确定所述视觉特征点的激光深度。
[0267]
方案10、根据方案9所述的方法,所述根据所述激光点平面的法向量确定所述视觉特征点的深度,包括:
[0268]
根据如下公式获取所述视觉特征点的激光深度d:
[0269][0270]
其中,n为激光点平面的法向量,x为视觉特征点在相机归一化平面上的坐标,ac为其中一个激光点在相机坐标系下的坐标。
[0271]
方案11、一种单目视觉初始化方法,包括:
[0272]
确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
[0273]
基于方案1-10任一所述的方法,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
[0274]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
[0275]
方案12、根据方案11所述的方法,所述确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧,包括:
[0276]
对滑动窗口内的各视觉图像帧与当前视觉图像帧进行特征识别,若第l个视觉图像帧到当前图像帧中连续跟踪到的视觉特征点的数量大于或等于第一预设值,且第l个视觉图像帧到当前视觉图像帧的视差大于或等于第二预设值个像素,则确定所述第l个视觉图像帧为参考视觉图像帧。
[0277]
方案13、根据方案12所述的方法,所述其他视觉图像帧包括当前视觉图像帧、所述参考视觉图像帧l到所述当前视觉图像帧之间的x个第一视觉图像帧和第0帧到所述参考视觉图像帧l之间的y个第二视觉图像帧;
[0278]
所述基于参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,包括:
[0279]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及当前视觉图像帧的第一视觉特征点的激光深度,确定所述当前视觉图像帧的位姿估计结果,并基于所述当前视觉图像帧的位姿估计结果,利用三角测量法确定当前视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;
[0280]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的第一视觉特征点的激光深度,依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,并基于所述从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l+1帧起到当前视觉图像帧的x个第一视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度;
[0281]
基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及从第l-1帧起到第0
帧的y个第二视觉图像帧的第一视觉特征点的激光深度,依次确定从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,并基于所述从第l-1帧起到第0帧的y个第二视觉图像帧的位姿估计结果,利用三角测量法依次确定从第l-1帧起到第0帧的y个第二视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度。
[0282]
方案14、根据方案11所述的方法,所述确定所述其他视觉图像帧的位姿估计结果,包括:
[0283]
利用perspective-n-point算法确定所述其他视觉图像帧的位姿估计结果。
[0284]
方案15、一种视觉特征点的深度恢复装置,包括:
[0285]
第一获取模块,用于获取视觉图像帧和激光点云帧,所以视觉图像帧包括多个视觉特征点,所述激光点云帧包括多个激光点;
[0286]
对应关系建立模块,用于建立所述视觉图像帧中的视觉特征点和所述激光点云帧中的激光点的对应关系,所述对应关系包括与每个视觉特征点对应的n个激光点,所述对应的n个激光点构成所述视觉特征点的目标点云,n为大于等于3的正整数;
[0287]
筛选模块,用于对所述视觉特征点的目标点云进行筛选,以筛选得到符合平滑条件的平滑目标点云;
[0288]
深度计算模块,用于基于所述符合平滑条件的平滑目标点云进行深度计算,以获取所述视觉特征点的激光深度。
[0289]
方案16、一种单目视觉初始化装置,包括:
[0290]
参考帧确定模块,用于确定进行单目视觉初始化的多个视觉图像帧中的参考视觉图像帧;
[0291]
激光深度获取模块,用于基于方案15所述的视觉特征点的深度恢复的装置,确定所述多个视觉图像帧中能够进行深度恢复的第一视觉特征点的激光深度;
[0292]
三角化深度获取模块,用于基于所述参考视觉图像帧的第一视觉特征点的激光深度,以及其他视觉图像帧的第一视觉特征点的激光深度,确定所述其他视觉图像帧的位姿估计结果,并基于所述其他视觉图像帧的位姿估计结果,利用三角测量法确定其他视觉图像帧中与参考视觉图像帧中共同观测的第二视觉特征点的三角化深度,所述第二视觉特征点为不能够进行深度恢复的视觉特征点。
[0293]
方案17、一种电子设备,其特征在于,所述电子设备包括:
[0294]
一个或多个处理器;
[0295]
存储装置,用于存储一个或多个程序;
[0296]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如方案1-10或者方案11-14中任一项所述的方法。
[0297]
方案18、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如方案1-10或者方案11-14中任一项所述的方法。
[0298]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1