生成点云地图的方法、计算机系统和装置转让专利

申请号 : CN201680002448.4

文献号 : CN106688017B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 潘慈辉赵开勇马岳文姚尧

申请人 : 深圳市大疆创新科技有限公司

摘要 :

提供了一种生成点云地图的方法、计算机系统和装置。该方法包括:初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度;根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差;根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图;根据该第一图片对应的深度图,生成稠密点云地图。本发明实施例的生成点云地图的方法、计算机系统和装置,能够有效地生成稠密点云地图。

权利要求 :

1.一种生成点云地图的方法,其特征在于,包括:

初始化第一图片中的每一个像素的空间参数,其中,所述第一图片为二维图片集中的任一图片,所述空间参数至少包括像素对应的三维空间点的深度;其中,所述初始化第一图片中的每一个像素的空间参数,包括:根据所述二维图片集,生成稀疏点云地图,根据所述稀疏点云地图,初始化所述第一图片中的每一个像素的空间参数;或者,根据所述二维图片集中的第二图片对应的深度图,初始化所述第一图片中的每一个像素的空间参数;

根据匹配误差函数更新所述第一图片中的每一个像素的空间参数,其中,所述匹配误差函数关联像素对应的三维空间点的误差;

根据所述第一图片中的每一个像素的更新后的空间参数,确定所述第一图片对应的深度图;

根据所述第一图片对应的深度图,生成稠密点云地图。

2.根据权利要求1所述的方法,其特征在于,所述空间参数包括像素对应的三维空间点的深度和所述三维空间点的法向量。

3.根据权利要求1所述的方法,其特征在于,所述根据所述二维图片集,生成稀疏点云地图,包括:根据所述二维图片集,采用运动恢复结构的方法生成所述稀疏点云地图。

4.根据权利要求1所述的方法,其特征在于,所述根据所述稀疏点云地图,初始化所述第一图片中的每一个像素的空间参数,包括:对于所述第一图片中的第一像素,采用以所述稀疏点云地图中的参考点为中心的高斯分布,初始化所述第一像素的空间参数,其中所述参考点对应的像素距离所述第一像素最近。

5.根据权利要求1所述的方法,其特征在于,所述第一图片与所述第二图片的拍摄参数的差别满足第一预定条件。

6.根据权利要求5所述的方法,其特征在于,所述第一预定条件为:所述第一图片与所述第二图片的拍摄参数的差别为,所述二维图片集中的所有图片与所述第二图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,所述第一阈值小于所述第二阈值。

7.根据权利要求1所述的方法,其特征在于,所述匹配误差函数根据所述第一图片中的每一个像素的空间参数,所述第一图片的拍摄参数和所述二维图片集中的第三图片的拍摄参数确定,其中,所述第三图片与所述第一图片的拍摄参数的差别满足第二预定条件。

8.根据权利要求7所述的方法,其特征在于,所述第二预定条件为:所述第三图片与所述第一图片的拍摄参数的差别为,所述二维图片集中的所有图片与所述第一图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,所述第一阈值小于所述第二阈值。

9.根据权利要求7所述的方法,其特征在于,所述匹配误差函数为,其中,B表示以像素为中心的方形窗口,上划线表示取平均,Hij表示像素i和j之间的单应性矩阵,Hij根据所述第一图片中的每一个像素的空间参数,所述第一图片的拍摄参数和所述第三图片的拍摄参数确定。

10.根据权利要求5至9中任一项所述的方法,其特征在于,所述拍摄参数包括相机位置和相机朝向。

11.根据权利要求1至9中任一项所述的方法,其特征在于,所述根据匹配误差函数更新所述第一图片中的每一个像素的空间参数,包括:对于所述第一图片中的第一像素,根据所述匹配误差函数和第二像素的空间参数,更新所述第一像素的空间参数,其中,所述第二像素为与所述第一像素相邻且已更新空间参数的像素。

12.根据权利要求11所述的方法,其特征在于,所述根据所述匹配误差函数和第二像素的空间参数,更新所述第一像素的空间参数,包括:对于所述第一像素,若采用所述第二像素的空间参数得到的所述匹配误差函数的取值小于采用所述第一像素的空间参数得到的所述匹配误差函数的取值,则将所述第一像素的空间参数更新为所述第二像素的空间参数。

13.根据权利要求11所述的方法,其特征在于,所述根据匹配误差函数更新所述第一图片中的每一个像素的空间参数,还包括:将所述第一像素的空间参数在预定范围内变化,若采用变化后的空间参数得到的所述匹配误差函数的取值变小,则将所述第一像素的空间参数更新为所述变化后的空间参数。

14.根据权利要求13所述的方法,其特征在于,在所述第一像素的空间参数收敛到稳定值后,更新下一个像素的空间参数。

15.根据权利要求11所述的方法,其特征在于,更新所述第一图片中的每一个像素的空间参数的更新方向为从所述第一图片的左上到右下,和/或,从所述第一图片的右下到左上。

16.根据权利要求15所述的方法,其特征在于,在所述更新方向为从所述第一图片的左上到右下时,所述第二像素为所述第一像素的左边、左上和上边的像素中的至少一个像素;

或者,

在所述更新方向为从所述第一图片的右下到左上时,所述第二像素为所述第一像素的右边、右上和下边的像素中的至少一个像素。

17.根据权利要求1至9中任一项所述的方法,其特征在于,所述根据所述第一图片中的每一个像素的更新后的空间参数,确定所述第一图片对应的深度图,包括:在所述第一图片中的每一个像素的空间参数收敛到稳定值后,根据所述第一图片中的每一个像素的空间参数,确定所述第一图片对应的深度图。

18.根据权利要求1至9中任一项所述的方法,其特征在于,在根据所述第一图片对应的深度图,生成稠密点云地图之前,所述方法还包括:移除所述第一图片对应的深度图中的不可信点。

19.根据权利要求18所述的方法,其特征在于,所述不可信点包括所述第一图片中的第三像素和第四像素中的至少一个对应的深度图点,其中,对于所述第三像素,采用收敛后的空间参数得到的所述匹配误差函数的取值大于第一预定值;

所述第四像素对应的深度图中的深度,与所述第四像素对应的三维空间点相对于所述二维图片集中的第四图片的深度的差别大于第二预定值。

20.根据权利要求1至9中任一项所述的方法,其特征在于,所述根据所述第一图片对应的深度图,生成稠密点云地图,包括:通过融合所述二维图片集中的多张图片对应的深度图,生成所述稠密点云地图。

21.根据权利要求1至9中任一项所述的方法,其特征在于,所述根据所述第一图片对应的深度图,生成稠密点云地图,包括:通过融合所述二维图片集中的所有图片对应的深度图,生成所述稠密点云地图。

22.根据权利要求21所述的方法,其特征在于,在生成所述稠密点云地图之前,移除被遮挡点和冗余点。

23.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:根据所述稠密点云地图,生成三维地图。

24.一种计算机系统,其特征在于,包括:

存储器,用于存储计算机可执行指令;

处理器,用于访问所述存储器,并执行所述计算机可执行指令,以进行根据权利要求1至23中任一项所述的方法中的操作。

25.一种生成点云地图的装置,其特征在于,包括:

初始化模块,用于初始化第一图片中的每一个像素的空间参数,其中,所述第一图片为二维图片集中的任一图片,所述空间参数至少包括像素对应的三维空间点的深度;其中,所述初始化模块具体用于:根据所述二维图片集,生成稀疏点云地图,根据所述稀疏点云地图,初始化所述第一图片中的每一个像素的空间参数;或者,根据所述二维图片集中的第二图片对应的深度图,初始化所述第一图片中的每一个像素的空间参数;

更新模块,用于根据匹配误差函数更新所述第一图片中的每一个像素的空间参数,其中,所述匹配误差函数关联像素对应的三维空间点的误差;

深度图生成模块,用于根据所述第一图片中的每一个像素的更新后的空间参数,确定所述第一图片对应的深度图;

点云地图生成模块,用于根据所述第一图片对应的深度图,生成稠密点云地图。

26.根据权利要求25所述的装置,其特征在于,所述空间参数包括像素对应的三维空间点的深度和所述三维空间点的法向量。

27.根据权利要求25所述的装置,其特征在于,所述初始化模块具体用于:根据所述二维图片集,采用运动恢复结构的装置生成所述稀疏点云地图。

28.根据权利要求25所述的装置,其特征在于,所述初始化模块具体用于:对于所述第一图片中的第一像素,采用以所述稀疏点云地图中的参考点为中心的高斯分布,初始化所述第一像素的空间参数,其中所述参考点对应的像素距离所述第一像素最近。

29.根据权利要求25所述的装置,其特征在于,所述第一图片与所述第二图片的拍摄参数的差别满足第一预定条件。

30.根据权利要求29所述的装置,其特征在于,所述第一预定条件为:所述第一图片与所述第二图片的拍摄参数的差别为,所述二维图片集中的所有图片与所述第二图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,所述第一阈值小于所述第二阈值。

31.根据权利要求25所述的装置,其特征在于,所述匹配误差函数根据所述第一图片中的每一个像素的空间参数,所述第一图片的拍摄参数和所述二维图片集中的第三图片的拍摄参数确定,其中,所述第三图片与所述第一图片的拍摄参数的差别满足第二预定条件。

32.根据权利要求31所述的装置,其特征在于,所述第二预定条件为:所述第三图片与所述第一图片的拍摄参数的差别为,所述二维图片集中的所有图片与所述第一图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,所述第一阈值小于所述第二阈值。

33.根据权利要求31所述的装置,其特征在于,所述匹配误差函数为,其中,B表示以像素为中心的方形窗口,上划线表示取平均,Hij表示像素i和j之间的单应性矩阵,Hij根据所述第一图片中的每一个像素的空间参数,所述第一图片的拍摄参数和所述第三图片的拍摄参数确定。

34.根据权利要求29至33中任一项所述的装置,其特征在于,所述拍摄参数包括相机位置和相机朝向。

35.根据权利要求25至33中任一项所述的装置,其特征在于,所述更新模块具体用于:对于所述第一图片中的第一像素,根据所述匹配误差函数和第二像素的空间参数,更新所述第一像素的空间参数,其中,所述第二像素为与所述第一像素相邻且已更新空间参数的像素。

36.根据权利要求35所述的装置,其特征在于,所述更新模块具体用于:对于所述第一像素,若采用所述第二像素的空间参数得到的所述匹配误差函数的取值小于采用所述第一像素的空间参数得到的所述匹配误差函数的取值,则将所述第一像素的空间参数更新为所述第二像素的空间参数。

37.根据权利要求35所述的装置,其特征在于,所述更新模块具体用于:将所述第一像素的空间参数在预定范围内变化,若采用变化后的空间参数得到的所述匹配误差函数的取值变小,则将所述第一像素的空间参数更新为所述变化后的空间参数。

38.根据权利要求37所述的装置,其特征在于,所述更新模块具体用于:在所述第一像素的空间参数收敛到稳定值后,更新下一个像素的空间参数。

39.根据权利要求35所述的装置,其特征在于,更新所述第一图片中的每一个像素的空间参数的更新方向为从所述第一图片的左上到右下,和/或,从所述第一图片的右下到左上。

40.根据权利要求39所述的装置,其特征在于,在所述更新方向为从所述第一图片的左上到右下时,所述第二像素为所述第一像素的左边、左上和上边的像素中的至少一个像素;

或者,

在所述更新方向为从所述第一图片的右下到左上时,所述第二像素为所述第一像素的右边、右上和下边的像素中的至少一个像素。

41.根据权利要求25至33中任一项所述的装置,其特征在于,所述深度图生成模块具体用于:在所述第一图片中的每一个像素的空间参数收敛到稳定值后,根据所述第一图片中的每一个像素的空间参数,确定所述第一图片对应的深度图。

42.根据权利要求25至33中任一项所述的装置,其特征在于,所述装置还包括:移除模块,用于移除所述第一图片对应的深度图中的不可信点。

43.根据权利要求42所述的装置,其特征在于,所述不可信点包括所述第一图片中的第三像素和第四像素中的至少一个对应的深度图点,其中,对于所述第三像素,采用收敛后的空间参数得到的所述匹配误差函数的取值大于第一预定值;

所述第四像素对应的深度图中的深度,与所述第四像素对应的三维空间点相对于所述二维图片集中的第四图片的深度的差别大于第二预定值。

44.根据权利要求25至33中任一项所述的装置,其特征在于,所述点云地图生成模块具体用于:通过融合所述二维图片集中的多张图片对应的深度图,生成所述稠密点云地图。

45.根据权利要求25至33中任一项所述的装置,其特征在于,所述点云地图生成模块具体用于:通过融合所述二维图片集中的所有图片对应的深度图,生成所述稠密点云地图。

46.根据权利要求45所述的装置,其特征在于,所述点云地图生成模块具体用于:在生成所述稠密点云地图之前,移除被遮挡点和冗余点。

47.根据权利要求25至33中任一项所述的装置,其特征在于,所述装置还包括:三维地图生成模块,用于根据所述稠密点云地图,生成三维地图。

说明书 :

生成点云地图的方法、计算机系统和装置

[0001] 版权申明
[0002] 本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。

技术领域

[0003] 本发明涉及信息技术领域,并且更具体地,涉及一种生成点云地图的方法、计算机系统和装置。

背景技术

[0004] 现有的地图构建一般采用同步定位和地图构建技术,即机器人通过运动过程中重复观测到的地图特征定位自身的位置和姿势,再根据自身位置和姿势来构建地图,达到同时定位和地图构建的目的。在此思想下,地图和定位这两个方面被捆绑到一个循环之中,以此支持双方在各自进程中求得连续解,不同进程中的相互迭代反馈对双方都会有影响。使用这一种方法生成的地图都是以点云形式存在,一般只是个大概轮廓,不够精细,即只能生成稀疏或者半稠密点云地图。
[0005] 然而上述非稠密的地图很有可能会漏掉导航中有着重要意义的特征,例如漏掉红绿灯,或者无法提供准确的是否能够允许通过的信息,所以上述方案并不能胜任生成较为精准地图或者生成较为真实的视觉模型的任务。
[0006] 因此,如何有效地生成稠密点云地图,成为亟待解决的一个技术问题。

发明内容

[0007] 本发明实施例提供了一种生成点云地图的方法、计算机系统和装置,能够有效地生成稠密点云地图。
[0008] 第一方面,提供了一种生成点云地图的方法,包括:初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度;根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差;根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图;根据该第一图片对应的深度图,生成稠密点云地图。
[0009] 第二方面,提供了一种计算机系统,该计算机系统包括:存储器,用于存储计算机可执行指令;处理器,用于访问该存储器,并执行该计算机可执行指令,以进行如下操作:初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度;根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差;根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图;根据该第一图片对应的深度图,生成稠密点云地图。
[0010] 第三方面,提供了一种生成点云地图的装置,包括:初始化模块,用于初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度;更新模块,用于根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差;深度图生成模块,用于根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图;点云地图生成模块,用于根据该第一图片对应的深度图,生成稠密点云地图。
[0011] 第四方面,提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行上述第一方面的方法。
[0012] 本发明实施例的技术方案,通过对二维图片集中的任一图片中的每一个像素的空间参数进行初始化处理,并根据匹配误差函数更新图片中的每一个像素的空间参数,再根据图片中的每一个像素的更新后的空间参数,确定图片对应的深度图,并进一步生成稠密点云地图,可以得到像素粒度的、较准确的稠密点云地图,从而能够有效地生成稠密点云地图。

附图说明

[0013] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014] 图1是应用本发明实施例的技术方案的架构图。
[0015] 图2是本发明一个实施例的生成点云地图的方法的示意性流程图。
[0016] 图3是本发明另一个实施例的生成点云地图的方法的示意性流程图。
[0017] 图4是本发明又一个实施例的生成点云地图的方法的示意性流程图。
[0018] 图5是本发明实施例的计算机系统的示意性框图。
[0019] 图6是本发明一个实施例的生成点云地图的装置的示意性框图。
[0020] 图7是本发明另一个实施例的生成点云地图的装置的示意性框图。

具体实施方式

[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0022] 应理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
[0023] 还应理解,本发明实施例中的公式只是一种示例,而非限制本发明实施例的范围,该公式可以进行变形,这些变形也应属于本发明保护的范围。
[0024] 还应理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0025] 图1是应用本发明实施例的技术方案的架构图。
[0026] 如图1所示,系统110可以从二维图片集120得到稠密点云地图130。具体地,系统110可以采用本发明实施例的技术方案对二维图片集120进行处理,生成稠密点云地图130。
[0027] 二维图片集120可以是对物体进行多角度拍摄得到的图片集。本发明对拍摄二维图片集120的拍摄设备不做限定,其可以为任意拍摄设备。作为一个举例,该拍摄设备可以为无人机中的拍摄设备。拍摄设备得到的二维图片集120提供给系统110以进行处理。
[0028] 系统110为具有处理功能的系统,例如,计算机系统。系统110可以包括至少一个处理器111。该处理器111可以执行本发明实施例的技术方案,例如,对二维图片集120进行处理,生成稠密点云地图。该处理器111可以为任意种类的处理器,本发明对此不做限定。系统110还可以包括至少一个存储器112。该存储器112可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令,二维图片集120的数据等。该存储器112可以为任意种类的存储器,本发明对此也不做限定。
[0029] 采用本发明实施例的技术方案生成的稠密点云地图130的精度高,例如,每个像素都可以有对应的三维空间点,因此不会遗漏重要的信息。
[0030] 图2示出了本发明实施例的生成点云地图的方法200的示意性流程图。该方法200可以由图1中的系统110执行。
[0031] 210,初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度。
[0032] 在本发明实施例中,对于二维图片集中的任一图片(表示为第一图片),处理的粒度为像素级,即处理针对第一图片中的每一个像素。
[0033] 在步骤210中,初始化第一图片中的每一个像素的空间参数。也就是说,对于第一图片中的每一个像素,先进行初始化处理,得到每一个像素的空间参数的初始值,以便于后续进行更新,进而得到每一个像素的空间参数的最终值。
[0034] 像素的空间参数可以用于生成深度图,因此,该空间参数至少包括像素对应的三维空间点的深度。
[0035] 可选地,该空间参数包括像素对应的三维空间点的深度和该三维空间点的法向量。在像素对应的三维空间点的深度的基础上,再加上该三维空间点的法向量,这样,后续生成的稠密点云地图或者进一步生成的三维地图,能够更加准确。
[0036] 可选地,在本发明一个实施例中,初始化第一图片中的每一个像素的空间参数可以采用以下方式:
[0037] 根据该二维图片集,生成稀疏点云地图;
[0038] 根据该稀疏点云地图,初始化该第一图片中的每一个像素的空间参数。
[0039] 具体而言,对第一图片中的每一个像素的空间参数初始化处理可以利用稀疏点云地图。从二维图片集生成稀疏点云地图的方式可以采用已有的技术,例如,可以采用运动恢复结构(Structure from Motion,SfM)的方法生成该稀疏点云地图,但本发明对此并不限定。
[0040] 由于稀疏点云地图中的点比较稀疏,因此较多像素没有在稀疏点云地图中直接对应的点。在这种情况下,可以采用高斯分布的方式进行初始化处理。
[0041] 可选地,对于该第一图片中的第一像素,采用以该稀疏点云地图中的参考点为中心的高斯分布,初始化该第一像素的空间参数,其中该参考点对应的像素距离该第一像素最近。
[0042] 也就是说,对于每一个像素,选取一个参考点,该参考点对应的像素距离该像素最近,采用以该参考点为中心的高斯分布,初始化该像素的空间参数。
[0043] 上述根据稀疏点云地图初始化像素的空间参数的方式,可以用于该二维图片集中选取的第一张图片;若已经得到了该二维图片集中选取的前一张图片对应的深度图,则可以直接根据该深度图,对下一张图片进行初始化处理。
[0044] 可选地,在本发明另一个实施例中,初始化第一图片中的每一个像素的空间参数可以采用以下方式:
[0045] 根据该二维图片集中的第二图片对应的深度图,初始化该第一图片中的每一个像素的空间参数。
[0046] 也就是说,若已经得到了第二图片对应的深度图,则可以根据该第二图片对应的深度图,初始化该第一图片中的每一个像素的空间参数。
[0047] 该第二图片和该第一图片可以为从该二维图片集中选取的满足预定条件的图片。可选地,该第一图片与该第二图片的拍摄参数的差别满足第一预定条件。
[0048] 可选地,该拍摄参数可以包括相机位置和相机朝向,该拍摄参数也可以表示为相机位移和相机转角,本发明对此不做限定。
[0049] 例如,该第一预定条件可以为:该第一图片与该第二图片的拍摄参数的差别为,该二维图片集中的所有图片与该第二图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,该第一阈值小于该第二阈值。
[0050] 上述第二图片与第一图片的关系可以为基准图片和参考图片的关系。在对某一图片进行处理时,该图片为基准图片,该二维图片集中的任一图片都可以为基准图片。对于基准图片,再选取其对应的参考图片。可选地,参考图片可以与基准图片有类似的视角,并且两者的基准线既不是太大也不是太小。
[0051] 例如,可以首先使用运动恢复结构的方法计算出稀疏点云和每张图片对于基准图片的相机转角和相机位移,剔除掉转角过大或过小(例如,小于5度,大于60度),位移过大或过小(例如,大于平均位移的两倍或小于平均位移的二十分之一)的图片,将剩下的图片按照转角和位移的乘积由小到大依次排列,选取该乘积最小的作为参考图片,另外,可选取除参考图片外该乘积序列前若干张(例如,可选取8张)图片作为备用检验图片。
[0052] 举例来说,若图片1作为基准图片时,图片2为图片1的参考相片,对于图片1,若其为第一张处理的图片,即,没有其他图片对于的深度图,则可以根据稀疏点云地图对图片1进行初始化处理,后续再进一步得到图片1对应的深度图;在对图片2进行处理时,已有图片1对应的深度图,则可以直接根据图片1对应的深度图,对图片2进行初始化处理。
[0053] 应理解,第二图片也可以为该二维图片集中的其他任一图片,本发明对此并不限定。也就是说,只要已经有了该二维图片集中某一图片对应的深度图,则可以直接根据该深度图,对第一图片进行初始化处理。
[0054] 220,根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差。
[0055] 在对第一图片中的每一个像素的空间参数进行初始化后,接下来对每一个像素的空间参数进行更新,以得到最终值。初始化后的空间参数可能与实际的空间参数有差别,通过更新处理可以使空间参数接近或达到实际值(该实际值表示真实的三维空间点对应的空间参数的值)。
[0056] 在本发明实施例中,采用匹配误差函数进行空间参数的更新处理。该匹配误差函数关联像素对应的三维空间点的误差。也就是说,该匹配误差函数可以反映空间参数的当前值与实际值的差别,这样,基于该匹配误差函数进行空间参数的更新处理,可以使空间参数收敛到实际值。
[0057] 可选地,该匹配误差函数可以根据该第一图片中的每一个像素的空间参数,该第一图片的拍摄参数和该二维图片集中的第三图片的拍摄参数确定。
[0058] 该第三图片可以为该第一图片的参考图片。即该第三图片与该第一图片的拍摄参数的差别可以为,该二维图片集中的所有图片与该第一图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,该第一阈值小于该第二阈值。
[0059] 应理解,该第三图片也可以为该二维图片集中的其他任一图片,本发明对此并不限定。
[0060] 可选地,该匹配误差函数可以为,
[0061]
[0062] 其中,B表示以像素为中心的方形窗口,上划线表示取平均,Hij表示像素i和j之间的单应性矩阵,Hij根据该第一图片中的每一个像素的空间参数,该第一图片的拍摄参数和该第三图片的拍摄参数确定。上述式(1)中,与q相关的各项表示相应像素对应的灰度值。
[0063] 上述式(1)中的Hij可以根据该第一图片中的每一个像素的空间参数,该第一图片的拍摄参数和该第三图片的拍摄参数确定。在像素的空间参数为实际值时,上述式(1)的匹配误差函数的取值为零;在像素的空间参数偏离实际值越大时,该匹配误差函数的取值越大。因此,可以按照使该匹配误差函数的取值变小的趋向,更新每一个像素的空间参数。
[0064] 可选地,在本发明一个实施例中,对于该第一图片中的第一像素,根据该匹配误差函数和第二像素的空间参数,更新该第一像素的空间参数,其中,该第二像素为与该第一像素相邻且已更新空间参数的像素。
[0065] 也就是说,对于每一个像素,可以根据与其相邻且已进行了更新的像素的空间参数进行更新。
[0066] 可选地,更新该第一图片中的每一个像素的空间参数的更新方向可以为从该第一图片的左上到右下,和/或,从该第一图片的右下到左上。
[0067] 可选地,在该更新方向为从该第一图片的左上到右下时,该第二像素可以为该第一像素的左边、左上和上边的像素中的至少一个像素;或者,
[0068] 在该更新方向为从该第一图片的右下到左上时,该第二像素可以为该第一像素的右边、右上和下边的像素中的至少一个像素。
[0069] 可选地,对于该第一像素,若采用该第二像素的空间参数得到的该匹配误差函数的取值小于采用该第一像素的空间参数得到的该匹配误差函数的取值,则将该第一像素的空间参数更新为该第二像素的空间参数。
[0070] 也就是说,在对第一像素的空间参数进行更新时,可比较第一像素分别采用第一像素的空间参数和第二像素的空间参数得到的匹配误差函数的取值,选择所得到的匹配误差函数的取值较小的空间参数作为第一像素的空间参数。
[0071] 可选地,在本发明另一个实施例中,还可以将该第一像素的空间参数在预定范围内变化,若采用变化后的空间参数得到的该匹配误差函数的取值变小,则将该第一像素的空间参数更新为该变化后的空间参数。
[0072] 具体而言,对每一像素的空间参数的更新,还可以采用在预定范围内变化的方式,即,将每个像素的空间参数在预定范围内变化,若变化后,所得到的匹配误差函数的取值变小,则将该像素的空间参数更新为变化后的空间参数。可选地,还可以重复上述过程,另外还可以减小所变化的范围,直到该像素的空间参数最终收敛到某个稳定值,使得匹配误差函数的取值最小。
[0073] 上述根据相邻像素的空间参数进行更新的方式与在预定范围内变化的更新方式可以结合,即,对于每一个像素,可以先采用根据相邻像素的空间参数进行更新的方式,再采用在预定范围内变化的更新方式,在该像素的空间参数收敛到稳定值后,再更新下一个像素的空间参数。
[0074] 应理解,上述两种更新方式也可以单独实施,本发明对此并不限定。
[0075] 下面举例说明像素的空间参数的更新过程。应理解,这只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
[0076] 对于基准相片中的每个像素,选取以这个像素为中心的方形窗口,所选的方形窗口为一个w*w的方形像素块,对窗口中每一个元素,通过单应性矩阵计算与该元素对应的像素。其中,单应性矩阵可以通过基准相片和参考相片的拍摄参数,以及像素的空间参数计算得到。然后基于这种像素间的对应关系,计算匹配误差函数的取值。然后使用以下点云迭代匹配的方法来求解匹配误差函数的最小值。
[0077] 举例来说,可以区分奇数标号的迭代和偶数标号的迭代,对奇数标号的迭代,从基准相片的左上角开始通过行向右下角移动,对偶数标号的迭代,从右下角开始通过行向左上角移动。在奇数标号的迭代中,对每个像素,比较其采用当前的空间参数与采用当前像素的左边,左上,和上边的像素的空间参数所对应的匹配误差函数的取值,若匹配误差函数的取值更小,则采用使得匹配误差函数的取值更小的那个空间参数取代当前的空间参数。在偶数标号的迭代中,进行类似的操作,只是将比较的对象改成当前像素的右边,右下,和下边的像素。
[0078] 在每个迭代中,在进行了比较和取代之后,再次进行对每个像素在当前空间参数附近范围内的均匀随机赋值。比较新赋值情况下的匹配误差函数的取值,若发现匹配误差函数的取值变小则用所得的随机赋值代替当前的空间参数,重复上面过程若干次,并可减小随机赋值的范围直到空间参数最终收敛到某个稳定值,使得匹配误差函数的取值最小。
[0079] 230,根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图。
[0080] 在通过前述步骤得到第一图片中的每一个像素的更新后的空间参数后,可根据更新后的空间参数,生成该第一图片对应的深度图。
[0081] 可选地,可在该第一图片中的每一个像素的空间参数收敛到稳定值后,根据该第一图片中的每一个像素的空间参数,确定该第一图片对应的深度图。
[0082] 通过之前的更新过程,每一个像素的更新后的空间参数接近或达到实际值,因此能够得到像素粒度的比较精确的深度图。
[0083] 对于二维图片集中的任一图片,都可以采用上述方式得到该图片对应的深度图。这样,可以根据这些深度图,再进一步生成稠密点云地图。
[0084] 可选地,在本发明一个实施例中,如图3所示,该方法200还可以包括:
[0085] 250,移除该第一图片对应的深度图中的不可信点。
[0086] 生成的深度图中,可能会有误差较大的点,需要将其移除。
[0087] 可选地,该不可信点可以包括该第一图片中的第三像素和第四像素中的至少一个对应的深度图点,
[0088] 其中,对于该第三像素,采用收敛后的空间参数得到的该匹配误差函数的取值大于第一预定值;
[0089] 该第四像素对应的深度图中的深度,与该第四像素对应的三维空间点相对于该二维图片集中的第四图片的深度的差别大于第二预定值。
[0090] 具体而言,若收敛之后的空间参数对应的匹配误差函数的取值仍然大于第一预定值,则认为对应的点为不可信点,应该将其移除。另外,对第一图片中的每一个点,将其投射到三维空间点中,计算其相对于第四图片(例如,第四图片可以为备用检验图片)的深度,将该深度与深度图中的深度比较,若两者间的相对误差较大,则认为对应的点为不可信点,应该移除。
[0091] 类似地,对于二维图片集中的任一图片,都可以采用上述方式移除不可信点。
[0092] 240,根据该第一图片对应的深度图,生成稠密点云地图。
[0093] 在通过前述步骤得到二维图片集中的图片对应的深度图后,可以根据该深度图,生成稠密点云地图。可以采用二维图片集中的所有图片对应的深度图,也可以采用二维图片集中的部分图片对应的深度图,本发明对此不做限定。
[0094] 可选地,在本发明一个实施例中,可以通过融合该二维图片集中的多张图片对应的深度图,生成该稠密点云地图。
[0095] 可选地,在本发明一个实施例中,可以通过融合该二维图片集中的所有图片对应的深度图,生成该稠密点云地图。
[0096] 可选地,在生成稠密点云地图之前,可以移除被遮挡点和冗余点。
[0097] 具体而言,可以使用深度值来检查某点是否被遮挡,若被遮挡则应该移除。另外若两个点非常接近,则可以认为是计算误差带来的,实际应为同一个点,应该移除一个冗余点。经过移除之后,将深度图融合成新的稠密点云地图。
[0098] 应理解,本发明对由深度图生成稠密点云地图的方式并不限定,也可以采用其他由深度图生成点云地图的方式。
[0099] 可选地,在本发明一个实施例中,如图4所示,该方法200还可以包括:
[0100] 260,根据该稠密点云地图,生成三维地图。
[0101] 稠密点云地图还可以进一步用于生成三维地图。本发明对由稠密点云地图生成三维地图的方式不做限定。另外,在空间参数包括像素对应的三维空间点的深度和该三维空间点的法向量时,在生成三维地图时还可以结合该三维空间点的法向量,从而生成更加准确的三维地图。
[0102] 本发明实施例的生成点云地图的方法,通过对二维图片集中的任一图片中的每一个像素的空间参数进行初始化处理,并根据匹配误差函数更新图片中的每一个像素的空间参数,再根据图片中的每一个像素的更新后的空间参数,确定图片对应的深度图,并进一步生成稠密点云地图,可以得到像素粒度的、较准确的稠密点云地图,从而能够有效地生成稠密点云地图。
[0103] 上文中详细描述了本发明实施例的生成点云地图的方法,下面将描述本发明实施例的计算机系统和生成点云地图的装置。
[0104] 图5示出了本发明实施例的计算机系统500的示意性框图。该计算机系统500可以为图1中的系统110。
[0105] 如图5所示,该计算机系统500可以包括处理器510和存储器520。
[0106] 应理解,该计算机系统500还可以包括其他计算机系统中通常所包括的部件,例如,输入输出设备、通信接口等,本发明对此并不限定。
[0107] 存储器520用于存储计算机可执行指令。
[0108] 存储器520可以是各种种类的存储器,例如可以包括高速随机存取存储器(Random Access Memory,RAM),还可以包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,本发明对此并不限定。
[0109] 处理器510用于访问该存储器520,并执行该计算机可执行指令,以进行上述本发明实施例的生成点云地图的方法中的操作。
[0110] 处理器510可以包括微处理器,现场可编程门阵列(Field-Programmable Gate Array,FPGA),中央处理器(Central Processing unit,CPU),图形处理器(Graphics Processing Unit,GPU)等,本发明对此并不限定。
[0111] 图6示出了本发明实施例的生成点云地图的装置600的示意性框图。该装置600可以执行上述本发明实施例的生成点云地图的方法。该装置600可以设置于图1中的系统110中。
[0112] 如图6所示,该装置600可以包括:
[0113] 初始化模块610,用于初始化第一图片中的每一个像素的空间参数,其中,该第一图片为二维图片集中的任一图片,该空间参数至少包括像素对应的三维空间点的深度;
[0114] 更新模块620,用于根据匹配误差函数更新该第一图片中的每一个像素的空间参数,其中,该匹配误差函数关联像素对应的三维空间点的误差;
[0115] 深度图生成模块630,用于根据该第一图片中的每一个像素的更新后的空间参数,确定该第一图片对应的深度图;
[0116] 点云地图生成模块640,用于根据该第一图片对应的深度图,生成稠密点云地图。
[0117] 本发明实施例的生成点云地图的装置,通过对二维图片集中的任一图片中的每一个像素的空间参数进行初始化处理,并根据匹配误差函数更新图片中的每一个像素的空间参数,再根据图片中的每一个像素的更新后的空间参数,确定图片对应的深度图,并进一步生成稠密点云地图,可以得到像素粒度的、较准确的稠密点云地图,从而能够有效地生成稠密点云地图。
[0118] 可选地,在本发明一个实施例中,该空间参数包括像素对应的三维空间点的深度和该三维空间点的法向量。
[0119] 可选地,在本发明一个实施例中,该初始化模块610具体用于:
[0120] 根据该二维图片集,生成稀疏点云地图;
[0121] 根据该稀疏点云地图,初始化该第一图片中的每一个像素的空间参数。
[0122] 可选地,在本发明一个实施例中,该初始化模块610具体用于:
[0123] 根据该二维图片集,采用运动恢复结构的装置生成该稀疏点云地图。
[0124] 可选地,在本发明一个实施例中,该初始化模块610具体用于:
[0125] 对于该第一图片中的第一像素,采用以该稀疏点云地图中的参考点为中心的高斯分布,初始化该第一像素的空间参数,其中该参考点对应的像素距离该第一像素最近。
[0126] 可选地,在本发明一个实施例中,该初始化模块610具体用于:
[0127] 根据该二维图片集中的第二图片对应的深度图,初始化该第一图片中的每一个像素的空间参数。
[0128] 可选地,在本发明一个实施例中,该第一图片与该第二图片的拍摄参数的差别满足第一预定条件。
[0129] 可选地,在本发明一个实施例中,该第一预定条件为:
[0130] 该第一图片与该第二图片的拍摄参数的差别为,该二维图片集中的所有图片与该第二图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,该第一阈值小于该第二阈值。
[0131] 可选地,在本发明一个实施例中,该匹配误差函数根据该第一图片中的每一个像素的空间参数,该第一图片的拍摄参数和该二维图片集中的第三图片的拍摄参数确定,其中,该第三图片与该第一图片的拍摄参数的差别满足第二预定条件。
[0132] 可选地,在本发明一个实施例中,该第二预定条件为:
[0133] 该第三图片与该第一图片的拍摄参数的差别为,该二维图片集中的所有图片与该第一图片的拍摄参数的差别中不小于第一阈值且不大于第二阈值的最小差别,其中,该第一阈值小于该第二阈值。
[0134] 可选地,在本发明一个实施例中,该匹配误差函数为,
[0135]
[0136] 其中,B表示以像素为中心的方形窗口,上划线表示取平均,Hij表示像素i和j之间的单应性矩阵,Hij根据该第一图片中的每一个像素的空间参数,该第一图片的拍摄参数和该第三图片的拍摄参数确定。
[0137] 可选地,在本发明一个实施例中,该拍摄参数包括相机位置和相机朝向。
[0138] 可选地,在本发明一个实施例中,该更新模块620具体用于:
[0139] 对于该第一图片中的第一像素,根据该匹配误差函数和第二像素的空间参数,更新该第一像素的空间参数,其中,该第二像素为与该第一像素相邻且已更新空间参数的像素。
[0140] 可选地,在本发明一个实施例中,该更新模块620具体用于:
[0141] 对于该第一像素,若采用该第二像素的空间参数得到的该匹配误差函数的取值小于采用该第一像素的空间参数得到的该匹配误差函数的取值,则将该第一像素的空间参数更新为该第二像素的空间参数。
[0142] 可选地,在本发明一个实施例中,该更新模块620具体用于:
[0143] 将该第一像素的空间参数在预定范围内变化,若采用变化后的空间参数得到的该匹配误差函数的取值变小,则将该第一像素的空间参数更新为该变化后的空间参数。
[0144] 可选地,在本发明一个实施例中,该更新模块620具体用于:
[0145] 在该第一像素的空间参数收敛到稳定值后,更新下一个像素的空间参数。
[0146] 可选地,在本发明一个实施例中,更新该第一图片中的每一个像素的空间参数的更新方向为从该第一图片的左上到右下,和/或,从该第一图片的右下到左上。
[0147] 可选地,在本发明一个实施例中,在该更新方向为从该第一图片的左上到右下时,该第二像素为该第一像素的左边、左上和上边的像素中的至少一个像素;或者,[0148] 在该更新方向为从该第一图片的右下到左上时,该第二像素为该第一像素的右边、右上和下边的像素中的至少一个像素。
[0149] 可选地,在本发明一个实施例中,该深度图生成模块630具体用于:
[0150] 在该第一图片中的每一个像素的空间参数收敛到稳定值后,根据该第一图片中的每一个像素的空间参数,确定该第一图片对应的深度图。
[0151] 可选地,在本发明一个实施例中,如图7所示,该装置600还包括:
[0152] 移除模块650,用于移除该第一图片对应的深度图中的不可信点。
[0153] 可选地,在本发明一个实施例中,该不可信点包括该第一图片中的第三像素和第四像素中的至少一个对应的深度图点,
[0154] 其中,对于该第三像素,采用收敛后的空间参数得到的该匹配误差函数的取值大于第一预定值;
[0155] 该第四像素对应的深度图中的深度,与该第四像素对应的三维空间点相对于该二维图片集中的第四图片的深度的差别大于第二预定值。
[0156] 可选地,在本发明一个实施例中,该点云地图生成模块640具体用于:
[0157] 通过融合该二维图片集中的多张图片对应的深度图,生成该稠密点云地图。
[0158] 可选地,在本发明一个实施例中,该点云地图生成模块640具体用于:
[0159] 通过融合该二维图片集中的所有图片对应的深度图,生成该稠密点云地图。
[0160] 可选地,在本发明一个实施例中,该点云地图生成模块640具体用于:
[0161] 在生成该稠密点云地图之前,移除被遮挡点和冗余点。
[0162] 可选地,在本发明一个实施例中,如图7所示,该装置600还包括:
[0163] 三维地图生成模块660,用于根据该稠密点云地图,生成三维地图。
[0164] 本发明实施例的计算机系统和生成点云地图的装置可对应于本发明实施例的生成点云地图的方法的执行主体,并且计算机系统和生成点云地图的装置中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
[0165] 本发明实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码可以用于指示执行上述本发明实施例的生成点云地图的方法。
[0166] 应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0167] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0168] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0169] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0170] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0171] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0172] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。