点云模型构建方法、装置、设备及存储介质转让专利

申请号 : CN202110240320.4

文献号 : CN112837419B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 冯友计江明轩周立阳姜翰青章国锋

申请人 : 浙江商汤科技开发有限公司

摘要 :

本公开涉及一种点云模型构建方法、装置、设备及存储介质,包括:获取全景图像集中的全景图像的第一特征;根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系;根据所述至少一组图像对及对应的匹配结果构建点云模型。由于采用全景图像进行匹配并进一步根据匹配的结果构建点云模型,因此能够减少图像集的图像数量,从而提高匹配效率和建模效率,且全景图像对应的空间的范围较大,因此能够提高全景图像间的匹配效果,进而提高构建点云模型的精度和质量。

权利要求 :

1.一种点云模型构建方法,其特征在于,包括:

获取全景图像集中的全景图像的第一特征;

根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系,所述匹配结果包括第一本质矩阵;

根据所述至少一组图像对及对应的匹配结果构建点云模型;

所述根据所述至少一组图像对及对应的匹配结果构建点云模型,包括:根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定所述初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;

多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;

每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。

2.根据权利要求1所述的点云模型构建方法,其特征在于,所述获取全景图像集中的全景图像的第一特征,包括:确定所述全景图像对应的多张透视图像,其中,多张透视图像对应的空间的集合为全景图像对应的空间;

获取所述多张透视图像中的至少一张透视图像的第二特征;

根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,其中,所述透视图像与所述全景图像的对应位置对应相同的空间;

根据至少一个所述第一子特征确定所述全景图像的第一特征。

3.根据权利要求2所述的点云模型构建方法,其特征在于,所述确定所述全景图像对应的多张透视图像,包括:获取所述全景图像对应的单位球面,并确定全景图像的像素点坐标与单位球面的点坐标间的第一映射关系;

根据所述单位球面确定多张透视图像,并确定透视图像的像素点坐标与单位球面的点坐标间的第二映射关系,其中,所述多张透视图像对应的球面点的集合为单位球面;

根据所述第一映射关系和所述第二映射关系确定全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系,并根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息。

4.根据权利要求3所述的点云模型构建方法,其特征在于,所述透视图像的第二特征包括第二特征点和对应的第二描述子;

所述根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,包括:根据所述透视图像的第二特征点的坐标和所述第三映射关系确定所述全景图像的第一特征点的坐标;

根据所述透视图像的第二特征点对应的第二描述子确定所述全景图像的第一特征点对应的第一描述子。

5.根据权利要求4所述的点云模型构建方法,其特征在于,所述第一特征包括第一特征点和对应的第一描述子;

所述根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,包括:根据每个全景图像与对应的待匹配的全景图像确定多组图像对;

根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对,其中,每组所述特征点对包括两个对应匹配且分属两个全景图像的第一特征点;

根据所述多组特征点对确定第一本质矩阵,并利用所述第一本质矩阵对所述多组特征点对进行过滤,得到所述图像对对应的匹配结果。

6.根据权利要求5所述的点云模型构建方法,其特征在于,所述根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对后,还包括:获取每组所述图像对的两个全景图像的特征点对的数量;

过滤特征点对的数量符合预设的第一条件的图像对。

7.根据权利要求5或6所述的点云模型构建方法,其特征在于,根据所述多组特征点对确定第一本质矩阵,包括:根据所述特征点对中的两个第一特征点的角度误差确定所述特征点对的角度误差,其中,所述第一特征点的角度误差为所述第一特征点对应的单位球面的球面点与单位球面的光心的连线和外极平面间的夹角;

以对应的所述特征点对的角度误差为残差项,多次根据预设数目的所述特征点对确定本质矩阵;

确定每个所述本质矩阵对应的内点数,并确定内点数最多的本质矩阵为所述第一本质矩阵。

8.根据权利要求7所述的点云模型构建方法,其特征在于,所述确定每个所述本质矩阵对应的内点数,包括:根据所述本质矩阵确定所述图像对的每组特征点对的角度误差;

确定所述角度误差符合预设的第二条件的特征点对为内点;

根据所有内点确定所述本质矩阵对应的内点数。

9.根据权利要求7或8所述的点云模型构建方法,其特征在于,所述利用所述第一本质矩阵对多组特征点对进行过滤,包括:根据所述第一本质矩阵确定所述图像对的每组特征点对的角度误差;

过滤所述角度误差符合预设的第三条件的特征点对。

10.根据权利要求5‑9任一项所述的点云模型构建方法,其特征在于,还包括:获取所述图像对的特征点对的两个第一特征点在所属全景图像的坐标;

根据所述全景图像对应的第三映射关系以及所述全景图像上的属于特征点对的第一特征点的坐标,确定与特征点对相关的透视图像,其中,所述与特征点对相关的透视图像为存在与属于特征点对的第一特征点相对应的第二特征点的透视图像;

利用所述与特征点对相关的透视图像对所述图像对进行过滤。

11.根据权利要求10所述的点云模型构建方法,其特征在于,所述利用所述与特征点对相关的透视图像对所述图像对进行过滤,包括:响应于所述图像对的至少一个全景图像对应的与特征点对相关的透视图像为连续的多张图像,且所述连续的多张图像的数量小于预设的过滤阈值,过滤所述图像对。

12.根据权利要求11所述的点云模型构建方法,其特征在于,所述根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,包括:按照特征点对的数量从大到小的顺序依次选择图像对,每次选择图像对后均根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,直至选择的图像对满足所述初始化条件,确定选择的图像对为初始图像对。

13.根据权利要求12所述的点云模型构建方法,其特征在于,所述根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,包括:根据所述图像对的第一本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,其中,所述位移变量包括旋转变量和平移变量;

响应于数量最多的一组三维点的数量大于预设的第一数量阈值,确定对应的位移变量为第一位移变量;

从多次计算得到的本质矩阵中选择内点数大于或等于点数阈值的本质矩阵,分别根据每个本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,保留每个本质矩阵的数量最多的一组三维点对应的位移变量;

在每个本质矩阵保留的位移变量与所述第一位移变量间的差异满足预设范围的情况下,确定所述图像对满足所述初始化条件。

14.根据权利要求1所述的点云模型构建方法,其特征在于,还包括:通过最小化初始的三维点在初始图像对的两个全景图像上的重投影误差,优化每个全景图像的相机位姿以及初始的三维点的位置;和/或,每次确定注册图像的相机位姿后,通过最小化三维点在所述注册图像上的重投影误差优化所述注册图像的相机位姿;和/或,每次将所述注册图像的特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点后,通过最小化每个三维点在每个已注册图像上的重投影误差,优化每个已注册图像的相机位姿以及每个三维点的位置。

15.根据权利要求5所述的点云模型构建方法,其特征在于,还包括:根据每个全景图像对应的空间确定对应的待匹配的全景图像;或,

根据预设的搭配规则确定每个全景图像对应的待匹配的全景图像。

16.一种点云模型构建装置,其特征在于,包括:

获取模块,用于获取全景图像集中的全景图像的第一特征;

匹配模块,用于根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系,所述匹配结果包括第一本质矩阵;

构建模块,用于根据所述至少一组图像对及对应的匹配结果构建点云模型;

所述构建模块具体用于:

根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定所述初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;

多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;

每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。

17.一种电子设备,其特征在于,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求1至15任一项所述的方法。

18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至15任一所述的方法。

说明书 :

点云模型构建方法、装置、设备及存储介质

技术领域

[0001] 本公开涉及三维建模技术领域,尤其涉及一种点云模型构建方法、装置、设备及存储介质。

背景技术

[0002] 随着人工智能技术的发展,空间建模技术原来越丰富,精度越来越高。运动恢复结构技术能够利用多张图像构建三维点云模型,其可以广泛用于物理空间数字化、高精度地图构建和增强现实等领域。相关技术中,多张图像间的匹配效果不佳,进而导致依次构建的点云模型精度低,质量差。

发明内容

[0003] 本公开提供一种点云模型构建方法、装置、设备及存储介质。
[0004] 根据本公开实施例的第一方面,提供一种点云模型构建方法,包括:
[0005] 获取全景图像集中的全景图像的第一特征;
[0006] 根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系;
[0007] 根据所述至少一组图像对及对应的匹配结果构建点云模型。
[0008] 在一个实施例中,所述获取全景图像集中的全景图像的第一特征,包括:
[0009] 确定所述全景图像对应的多张透视图像,其中,多张透视图像对应的空间的集合为全景图像对应的空间;
[0010] 获取所述多张透视图像中的至少一张透视图像的第二特征;
[0011] 根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,其中,所述透视图像与所述全景图像的对应位置对应相同的空间;
[0012] 根据至少一个所述第一子特征确定所述全景图像的第一特征。
[0013] 在一个实施例中,所述确定所述全景图像对应的多张透视图像,包括:
[0014] 获取所述全景图像对应的单位球面,并确定全景图像的像素点坐标与单位球面的点坐标间的第一映射关系;
[0015] 根据所述单位球面确定多张透视图像,并确定透视图像的像素点坐标与单位球面的点坐标间的第二映射关系,其中,所述多张透视图像对应的球面点的集合为单位球面;
[0016] 根据所述第一映射关系和所述第二映射关系确定全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系,并根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息。
[0017] 在一个实施例中,所述透视图像的第二特征包括第二特征点和对应的第二描述子;
[0018] 所述根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,包括:
[0019] 根据所述透视图像的第二特征点的坐标和所述第三映射关系确定所述全景图像的第一特征点的坐标;
[0020] 根据所述透视图像的第二特征点对应的第二描述子确定所述全景图像的第一特征点对应的第一描述子。
[0021] 在一个实施例中,所述第一特征包括第一特征点和对应的第一描述子;
[0022] 所述根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,包括:
[0023] 根据每个全景图像与对应的待匹配的全景图像确定多组图像对;
[0024] 根据所述图像对的两个全景图像的第一描述子确定多组特征点对,其中,每组所述特征点对包括两个对应匹配且分属两个全景图像的第一特征点;
[0025] 根据所述多组特征点对确定第一本质矩阵,并利用所述第一本质矩阵对所述多组特征点对进行过滤,得到所述图像对对应的匹配结果。
[0026] 在一个实施例中,所述根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对后,还包括:
[0027] 获取所述图像对的两个全景图像的特征点对的数量;
[0028] 过滤特征点对的数量符合预设的第一条件的图像对。
[0029] 在一个实施例中,根据所述多组特征点对确定第一本质矩阵,包括:
[0030] 根据所述特征点对中的两个第一特征点的角度误差确定所述特征点对的角度误差,其中,所述第一特征点的角度误差均为所述第一特征点对应的单位球面的球面点与单位球面的光心的连线和外极平面间的夹角;
[0031] 以对应的所述特征点对的角度误差为残差项,多次根据预设数目的所述特征点对确定本质矩阵;
[0032] 确定每个所述本质矩阵的内点数,并确定内点数最多的本质矩阵为所述第一本质矩阵。
[0033] 在一个实施例中,所述确定每个所述本质矩阵对应的内点数,包括:
[0034] 根据所述本质矩阵确定所述图像对的每组特征点对的角度误差;
[0035] 确定所述角度误差符合预设的第二条件的特征点对为内点;
[0036] 根据所有内点确定所述本质矩阵对应的内点数。
[0037] 在一个实施例中,所述利用所述第一本质矩阵对多组特征点对进行过滤,包括:
[0038] 根据所述第一本质矩阵确定所述图像对的每组特征点对的角度误差;
[0039] 过滤所述角度误差符合预设的第三条件的特征点对。
[0040] 在一个实施例中,还包括:
[0041] 获取所述图像对的特征点对的两个第一特征点在所属全景图像的坐标;
[0042] 根据所述全景图像对应的第三映射关系以及所述全景图像上的属于特征点对的第一特征点的坐标,确定与特征点对相关的透视图像,其中,所述与特征点对相关的透视图像为存在与属于特征点对的第一特征点相对应的第二特征点的透视图像;
[0043] 利用所述与特征点对相关的透视图像对所述图像对进行过滤。
[0044] 在一个实施例中,所述利用所述属于与特征点对相关的透视图像对所述图像对进行过滤,包括:
[0045] 响应于所述图像对的至少一个全景图像对应的与特征点对相关的透视图像为连续的多张图像,且所述连续的多张图像的数量小于预设的过滤阈值,过滤所述图像对。
[0046] 在一个实施例中,所述根据所述至少一组图像对及对应的匹配结果构建点云模型,包括:
[0047] 根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定所述初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;
[0048] 多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;
[0049] 每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。
[0050] 在一个实施例中,所述根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,包括:
[0051] 按照特征点对的数量从大到小的顺序依次选择图像对,每次选择图像对后均根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,直至选择的图像对满足所述初始化条件,确定选择的图像对为初始图像对。
[0052] 在一个实施例中,所述根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,包括:
[0053] 根据所述图像对的第一本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,其中,所述位移变量包括旋转变量和平移变量;
[0054] 响应于数量最多的一组三维点的数量大于预设的第一数量阈值,确定对应的位移变量为第一位移变量;
[0055] 从多次计算得到的本质矩阵中选择内点数大于或等于点数阈值的本质矩阵,分别根据每个本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,保留每个本质矩阵的数量最多的一组三维点对应的位移变量;
[0056] 在每个本质矩阵保留的位移变量与所述第一位移变量间的差异满足预设范围的情况下,确定所述图像对满足所述初始化条件。
[0057] 在一个实施例中,还包括:
[0058] 通过最小化初始的三维点在初始图像对的两个全景图像上的重投影误差,优化每个全景图像的相机位姿以及初始的三维点的位置;和/或,
[0059] 每次确定注册图像的相机位姿后,通过最小化三维点在所述注册图像上的重投影误差优化所述注册图像的相机位姿;和/或,
[0060] 每次将所述注册图像的特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点后,通过最小化每个三维点在每个已注册图像上的重投影误差,优化每个已注册图像的相机位姿以及每个三维点的位置。
[0061] 在一个实施例中,还包括:
[0062] 根据每个全景图像对应的空间确定对应的待匹配的全景图像;或,[0063] 根据预设的搭配规则确定每个全景图像对应的待匹配的全景图像。
[0064] 根据本公开实施例的第二方面,提供一种点云模型构建装置,包括:
[0065] 获取模块,用于获取全景图像集中的全景图像的第一特征;
[0066] 匹配模块,用于根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,
[0067] 所述匹配结果指示两个全景图像的第一特征间的对应关系;
[0068] 构建模块,用于根据所述至少一组图像对及对应的匹配结果构建点云模型。
[0069] 在一个实施例中,所述获取模块具体用于:
[0070] 确定所述全景图像对应的多张透视图像,其中,多张透视图像对应的空间的集合为全景图像对应的空间;
[0071] 获取所述多张透视图像中的至少一张透视图像的第二特征;
[0072] 根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,其中,所述透视图像与所述全景图像的对应位置对应相同的空间;
[0073] 根据至少一个所述第一子特征确定所述全景图像的第一特征。
[0074] 在一个实施例中,所述获取模块用于确定所述全景图像对应的多张透视图像时,具体用于:
[0075] 获取所述全景图像对应的单位球面,并确定全景图像的像素点坐标与单位球面的点坐标间的第一映射关系;
[0076] 根据所述单位球面确定多张透视图像,并确定透视图像的像素点坐标与单位球面的点坐标间的第二映射关系,其中,所述多张透视图像对应的球面点的集合为单位球面;
[0077] 根据所述第一映射关系和所述第二映射关系确定全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系,并根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息。
[0078] 在一个实施例中,所述透视图像的第二特征包括第二特征点和对应的第二描述子;
[0079] 所述获取模块用于根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征时,具体用于:
[0080] 根据所述透视图像的第二特征点的坐标和所述第三映射关系确定所述全景图像的第一特征点的坐标;
[0081] 根据所述透视图像的第二特征点对应的第二描述子确定所述全景图像的第一特征点对应的第一描述子。
[0082] 在一个实施例中,所述第一特征包括第一特征点和对应的第一描述子;
[0083] 所述匹配模块具体用于:
[0084] 根据每个全景图像与对应的待匹配的全景图像确定多组图像对;
[0085] 根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对,其中,每组所述特征点对包括两个对应匹配且分属两个全景图像的第一特征点;
[0086] 根据所述多组特征点对确定第一本质矩阵,并利用所述第一本质矩阵对所述多组特征点对进行过滤,得到所述图像对对应的匹配结果。
[0087] 在一个实施例中,所述匹配模块用于根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对后,还用于:
[0088] 获取每组所述图像对的两个全景图像的特征点对的数量;
[0089] 过滤特征点对的数量符合预设的第一条件的图像对。
[0090] 在一个实施例中,所述匹配模块用于根据所述多组特征点对确定第一本质矩阵时,具体用于:
[0091] 根据所述特征点对中的两个第一特征点的角度误差确定所述特征点对的角度误差,其中,所述第一特征点的角度误差为所述第一特征点对应的单位球面的球面点与单位球面的光心的连线和外极平面间的夹角;
[0092] 以对应的所述特征点对的角度误差为残差项,多次根据预设数目的所述特征点对确定本质矩阵;
[0093] 确定每个所述本质矩阵对应的内点数,并确定内点数最多的本质矩阵为所述第一本质矩阵。
[0094] 在一个实施例中,所述匹配模块用于确定每个所述本质矩阵对应的内点数时,具体用于:
[0095] 根据所述本质矩阵确定所述图像对的每组特征点对的角度误差;
[0096] 确定所述角度误差符合预设的第二条件的特征点对为内点;
[0097] 根据所有内点确定所述本质矩阵对应的内点数。
[0098] 在一个实施例中,所述匹配模块用于利用所述第一本质矩阵对多组特征点对进行过滤时,具体用于:
[0099] 根据所述第一本质矩阵确定所述图像对的每组特征点对的角度误差;
[0100] 过滤所述角度误差符合预设的第三条件的特征点对。
[0101] 在一个实施例中,所述匹配模块还用于:
[0102] 获取所述图像对的特征点对的两个第一特征点在所属全景图像的坐标;
[0103] 根据所述全景图像对应的第三映射关系以及所述全景图像上的属于特征点对的第一特征点的坐标,确定与特征点对相关的透视图像,其中,所述与特征点对相关的透视图像为存在与属于特征点对的第一特征点相对应的第二特征点的透视图像;
[0104] 利用所述与特征点对相关的透视图像对所述图像对进行过滤。
[0105] 在一个实施例中,所述匹配模块用于利用所述与特征点对相关的透视图像对所述图像对进行过滤时,具体用于:
[0106] 响应于所述图像对的至少一个全景图像对应的与特征点对相关的透视图像为连续的多张图像,且所述连续的多张图像的数量小于预设的过滤阈值,过滤所述图像对。
[0107] 在一个实施例中,所述构建模块具体用于:
[0108] 根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定所述初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;
[0109] 多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;
[0110] 每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。
[0111] 在一个实施例中,所述构建模块用于根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对时,具体用于:
[0112] 按照特征点对的数量从大到小的顺序依次选择图像对,每次选择图像对后均根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,直至选择的图像对满足所述初始化条件,确定选择的图像对为初始图像对。
[0113] 在一个实施例中,所述构建模块用于根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件时,具体用于:
[0114] 根据所述图像对的第一本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,其中,所述位移变量包括旋转变量和平移变量;
[0115] 响应于数量最多的一组三维点的数量大于预设的第一数量阈值,确定对应的位移变量为第一位移变量;
[0116] 从多次计算得到的本质矩阵中选择内点数大于或等于点数阈值的本质矩阵,分别根据每个本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,保留每个本质矩阵的数量最多的一组三维点对应的位移变量;
[0117] 在每个本质矩阵保留的位移变量与所述第一位移变量间的差异满足预设范围的情况下,确定所述图像对满足所述初始化条件。
[0118] 在一个实施例中,所述构建模块还用于:
[0119] 通过最小化初始的三维点在初始图像对的两个全景图像上的重投影误差,优化每个全景图像的相机位姿以及初始的三维点的位置;和/或,
[0120] 每次确定注册图像的相机位姿后,通过最小化三维点在所述注册图像上的重投影误差优化所述注册图像的相机位姿;和/或,
[0121] 每次将所述注册图像的特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点后,通过最小化每个三维点在每个已注册图像上的重投影误差,优化每个已注册图像的相机位姿以及每个三维点的位置。
[0122] 在一个实施例中,所述匹配模块还用于:
[0123] 根据每个全景图像对应的空间确定对应的待匹配的全景图像;或,[0124] 根据预设的搭配规则确定每个全景图像对应的待匹配的全景图像。
[0125] 根据本公开实施例的第三方面,提供一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时基于第一方面所述的方法构建点云模型。
[0126] 根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面所述的方法。
[0127] 根据上述实施例可知,通过全景图像组成全景图像集,进一步根据第一特征匹配全景图像集中的全景图像,并将完成第一特征匹配的两个全景图像作为一组图像对,从而确定至少一组图像对及对应的匹配结果,最后根据确定的至少一组图像对及对应的匹配结果构建点云模型。由于采用全景图像进行匹配并进一步根据匹配的结果构建点云模型,因此能够减少图像集的图像数量,从而提高匹配效率和建模效率,且全景图像对应的空间的范围较大,因此能够提高全景图像间的匹配效果,进而提高构建点云模型的精度和质量。
[0128] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0129] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0130] 图1是本公开实施例示出的点云模型构建方法的流程图;
[0131] 图2是本公开实施例示出的全景图像的示意图;
[0132] 图3是本公开实施例示出的获取全景图像的第一特征的方式的示意图;
[0133] 图4是本公开实施例示出的确定图像对及对应的匹配结果的方式的示意图;
[0134] 图5是本公开实施例示出的角度误差的示意图;
[0135] 图6是本公开实施例示出的比较初始化条件和特征点对及第一本质矩阵的方式的示意图;
[0136] 图7是本公开实施例示出的点云模型构建装置的结构图;
[0137] 图8是本公开实施例示出的电子设备的结构示意图。

具体实施方式

[0138] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0139] 在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0140] 应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0141] 随着人工智能技术的发展,空间建模技术原来越丰富,精度越来越高。运动恢复结构技术能够利用多张图像构建三维点云模型,其可以广泛用于物理空间数字化、高精度地图构建和增强现实等领域。相关技术中,多张图像间的匹配效果不佳,进而导致依次构建的点云模型精度低,质量差。
[0142] 基于此,第一方面,本公开至少一个实施例提供了一种点云模型构建方法,请参照图1,其示出了该方法的流程,包括步骤S101至步骤S103。
[0143] 其中,所述点云模型为与空间对应的三维模型,空间可以指现实世界。现实世界中的各个物体在模型中以对应的点云表示,点云即为三维点构成的点的集合。
[0144] 另外,该方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)手持设备、计算设备、车载设备、可穿戴设备等,该方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可以通过服务器执行该方法,服务器可以为本地服务器、云端服务器等。
[0145] 在步骤S101中,获取全景图像集中的全景图像的第一特征。
[0146] 其中,全景图像集内包括多个全景图像,全景图像可以是多种角度的全景图像,例如360°全景图像;全景图像可以是由球面相机所获取的图像,或者多个鱼眼相机获取的拼接的图像按照等距矩形投影方式得到的图像,请参照附图2,其示例性的示出了一个全景图像。每个全景图像对应建模空间的一个局部子空间,而且全景图像对应的局部子空间的尺寸大于相同参数下的普通图像对应的局部子空间的尺寸,所述全景图像集的全部全景图像对应的局部子空间可以组成整个建模空间;不同的全景图像对应的局部子空间可以存在重合区域。
[0147] 本步骤中,可以采用预先训练的神经网络获取全景图像的第一特征,也可以采用其他方式获取全景图像的第一特征,本公开对获取方式无意作出具体限制。可以获取全景图像集中每个全景图像的第一特征。
[0148] 在步骤S102中,根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系。
[0149] 其中,第一特征匹配,是指两个全景图像存在对应于相同空间的第一特征点,即一个全景图像的至少一个第一特征点与另一个全景图像的至少一个第一特征点,对应现实世界中相同的空间。
[0150] 本步骤中,可以采用暴力匹配的方式对全景图像集内的全景图像进行匹配,也就是采用遍历的方式进行匹配,例如,可以依次取每一个全景图像,并将其与其他每个全景图像进行匹配;两个全景图像进行匹配时,利用两个全景图像的第一特征进行匹配,也就是根据两个全景图像的第一特征的匹配结果确定全景图像的匹配结果。两个全景图像的第一特征完成匹配,也就是两个全景图像完成了特征匹配,则这两张图像可以确定为一组图像对,同时将两个全景图像的第一特征的对应关系确定为匹配结果。
[0151] 其中,每个全景图像可以和另一个全景图像组成图像对,也可以分别和另多个全景图像组成多组图像对,也就是说,每个全景图像组成图像对后,并未被锁定,还可以继续与其他全景图像组成新的图像对。
[0152] 在步骤S103中,根据所述至少一组图像对及对应的匹配结果构建点云模型。
[0153] 本步骤中,利用上述步骤S102中的匹配结果进行点云模型的构建。建模的过程也就是运动恢复结构过程,包括相机注册和点云重建,相机注册就是恢复全景图像集内每一个全景图像的相机运动参数(例如,可以采用相机位姿进行表示),点云重建就是恢复对应的局部子空间(即步骤S102中提到的局部子空间)的三维结构的点云。
[0154] 在一个示例中,可以采用增量式重建的方式构建点云模型。
[0155] 本公开的实施例中,通过全景图像组成全景图像集,进一步根据第一特征匹配全景图像集中的全景图像,并将完成特征匹配的两个全景图像作为一组图像对,从而确定至少一组图像对及对应的匹配结果,最后根据确定的至少一组图像对及对应的匹配结果构建点云模型。由于采用全景图像进行匹配并进一步根据匹配的结果构建点云模型,因此能够减少图像集的图像数量,从而提高匹配效率和建模效率,且全景图像对应的空间的范围较大,因此能够提高全景图像间的匹配效果,进而提高构建点云模型的精度和质量。
[0156] 在本公开的一些实施例中,可以采用下述方式获取全景图像集的全景图像的第一特征,请参照附图3,其示出了上述获取方式的流程,包括步骤S301至步骤S304。
[0157] 在步骤S301中,确定所述全景图像对应的多张透视图像,其中,多张透视图像对应的空间的集合为全景图像对应的空间。
[0158] 在一个示例中,可以采用下述方式确定多张透视图像:首先,获取所述全景图像对应的单位球面,并确定全景图像的像素点坐标与单位球面的点坐标间的第一映射关系;接下来,根据所述单位球面确定多张透视图像,并确定透视图像的像素点坐标与单位球面的点坐标间的第二映射关系,其中,所述多张透视图像对应的球面点的集合为单位球面;最后,根据所述第一映射关系和所述第二映射关系确定全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系,并根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息。
[0159] 其中,获取全景图像对应的单位球面,可以是将全景图像反投射回单位球面。根据单位球面确定多张透视图像,可以是以单位球面的球心为光心的虚拟透视相机拍摄单位球面,并将所得到的图像确定为透视图像;拍摄单位球面时,可以使虚拟相机按照一定的角度等间隔旋转,每旋转一次拍摄一张透视图像,直至拍摄完整个球面,获取到覆盖所有视角的多张透视图像,例如,每旋转60°拍摄一张透视图像,则需要拍摄六张透视图像才能拍摄完整个球面;可以将虚拟相机的视场(Field of view,FOV)和焦距设置为常用的图像采集设备(例如手机、数码相机等)的参数,以接近常用的图像采集设备获取的图像。
[0160] 全景图像的像素点坐标与单位球面的点坐标间的第一映射关系可以采用下述公式(1)进行表示:
[0161]
[0162] 其中,(sx,sy,sz)是单位球面的点坐标,(u,v)是全景图像的像素点坐标,w是全景图像的宽,h是全景图像的高。
[0163] 与单位球面的坐标系相同的虚拟相机获取到的透视图像的像素点坐标与单位球面的点坐标间的第二映射关系可以采用下述公式(2)进行表示:
[0164]
[0165] 其中,(sx,sy,sz)是单位球面的点坐标,(x,y)是透视图图像的像素点坐标, 是透视图像的宽,为透视图像的高,f为虚拟相机的焦距。
[0166] 相对于单位球面的坐标系旋转了一定角度的虚拟相机获取到的透视图像的像素点坐标与单位球面的点坐标间的第二映射关系可以采用下述公式(3)进行表示:
[0167]
[0168] 其中,(s′x,s′y,s′z)T=R(sx,sy,sz)T是单位球面的坐标点(sx,sy,sz)经虚拟相机的逆旋转矩阵R变换后的坐标,(x,y)是透视图像上的坐标, 是透视图像的宽,为透视图像的高,f为虚拟相机的焦距。
[0169] 本公开实施例中,虚拟相机的多个拍摄角度中,有一个角度与单位球面的坐标系相同,因此该角度下,全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系可以通过联立上述公式(1)和公式(2)得到;其他角度下,全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系可以通过联立上述公式(1)和公式(3)得到。
[0170] 其中,根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息,可以是将全景图像的像素点的像素信息直接确定为透视图像的对应像素点的像素信息,也可以通过对全景图像的像素点进行采样和/或双线性插值得到透视图像的像素信息。像素信息可以是像素点的亮度值,或者是像素点的各个颜色通道(如红、绿、蓝三个通道)的值。
[0171] 在步骤S302中,获取所述多张透视图像中的至少一张透视图像的第二特征。
[0172] 本步骤中,可以采用预先训练的神经网络提取透视图像的第二特征,也可以采用其他方式提取透视图像的第二特征,本公开对提取方式无意作出具体限制。可以获取全景图像对应的的每个透视图像的第二特征。
[0173] 在一个示例中,第二特征为第二特征点及对应的第二描述子,也就是说,透视图像内的全部的第二特征点及对应的第二描述子构成透视图像的第二特征。
[0174] 在步骤S303中,根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,其中,所述透视图像与所述全景图像的对应位置对应相同的空间。
[0175] 其中,所述透视图像与所述全景图像的对应位置对应相同的空间,也就是说,透视图像与全景图像的对应位置对应单面球面上相同的球面点集合。
[0176] 其中,第一子特征可以包括全景图像的对应位置内全部的第一特征点及对应的第一描述子。
[0177] 在与步骤S302的示例对应的示例中,可以采用下述方式确定全景图像的对应位置的第一子特征:首先,根据所述透视图像的第二特征点的坐标和所述第三映射关系确定所述全景图像的第一特征点的坐标;接下来,根据所述透视图像的第二特征点对应的第二描述子确定所述全景图像的第一特征点对应的第一描述子。
[0178] 其中,第二特征点对应的全景图像上的点即为第一特征点,也就是所,第一特征点和第二特征点相对应,或者说第一特征点对应的单位球面的球面点与第二特征点对应的单位球面的球面点一致。可以将第二特征点对应的第二描述子直接作为对应的第一特征点的第一描述子。
[0179] 在步骤S304中,根据至少一个所述第一子特征确定所述全景图像的第一特征。
[0180] 其中,全景图像的第一特征包括全景图像内全部的第一特征点及对应的第一描述子。
[0181] 本公开的实施例中,通过全景图像与单位球面之间的映射关系以及单位球面与透视图像间的映射关系,确定了全景图像与透视图像间的映射关系,也就是以单位球面为媒介将全景图像拆分为多张透视图像,并且进一步通过提取透视图像的第二特征以及将第二特征点反向映射回全景图像的第一特征点,实现全景图像的第一特征的提取。
[0182] 在本公开的一些实施例中,所述第一特征包括第一特征点和对应的第一描述子,相对应的,可以采用下述方式根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,请参照附图4,其示出了上述确定方式的流程,包括步骤S401至步骤S403。
[0183] 在步骤S401中,根据每个全景图像与对应的待匹配的全景图像确定多组图像对。
[0184] 本步骤中,两个全景图像组成一组图像对。可以根据每个全景图像对应的空间确定对应的待匹配的全景图像;或根据预设的搭配规则确定每个全景图像对应的待匹配的全景图像。也就是说,确定一个全景图像的待匹配的全景图像时,可以将与该个全景图像的对应空间存在重合的全景图像作为待匹配的全景图像,还可以按照预设的搭配规则确定,预设的搭配规则可以根据上述原则确定,例如根据对应的空间顺序对全景图像进行编号,然后将每个全景图像之后的预设数量(例如10张)的全景图像作为待匹配的全景图像。还可以将一个全景图像之外的其他全部全景图像均作为该个全景图像的待匹配全景图像。
[0185] 在步骤S402中,根据所述图像对的两个全景图像的第一描述子确定多组特征点对,其中,每组所述特征点对包括两个对应匹配且分属两个全景图像的第一特征点。
[0186] 本步骤中,可以先为图像对的第一个全景图像中的每个第一描述子在第二个全景图像中寻找欧氏距离最近的第一描述子,然后再反过来,为图像对的第二个全景图像中的每个第一描述子在第一个全景图像中寻找欧氏距离最近的第一描述子,若第一个全景图像中的某个第一描述子和第二个全景图像中的某个第一描述子互为另一个全景图像中的欧氏距离最近的第一描述子,则认为上述两个第一描述子匹配,进而确定上述两个第一描述子对应的两个第一特征点匹配,也就是两个第一特征点完成特征匹配,组成特征点对。
[0187] 本步骤中,按照上述方式确定图像对的两个全景图像间的全部特征点对后,还可以统计特征点对的数量,再预设第一条件,并利用第一条件过滤步骤S401中确定的多组图像对,也就是可以利用第一条件去除部分图像对。在一个示例中,第一条件可以为小于第二数量阈值,也就是过滤特征点对的数量小于第二数量阈值的图像对,即去除特征点对的数量小于第二数量阈值的图像对,例如,可以将第二数量阈值设置为5或10等,本公开实施例对第二数量阈值的具体数值无意作出具体限制。通过过滤掉部分图像对,能够减少对匹配度低的图像对的后续操作,从而可以降低操作的复杂程度,同时提高处理的效率。
[0188] 其中,每组特征点对表示了两个第一特征点的对应关系,多组特征点对构成了图像对的匹配结果。
[0189] 在步骤S403中,根据所述多组特征点对确定第一本质矩阵,并利用所述第一本质矩阵对所述多组特征点对进行过滤,得到所述图像对对应的匹配结果。
[0190] 本步骤中,可以采用下述方式确定第一本质矩阵:首先,根据所述特征点对中的两个第一特征点的角度误差确定所述特征点对的角度误差,其中,所述第一特征点的角度误差为该第一特征点对应的单位球面的球面点与单位球面的光心的连线和外极平面间的夹角;接下来,以对应的所述特征点对的角度误差为残差项,多次根据预设数目的所述特征点对计算本质矩阵;最后,确定每个所述本质矩阵对应的内点数,并确定内点数最多的本质矩阵为所述第一本质矩阵。
[0191] 其中,每组特征点对的两个第一特征点对应的单位球面的点坐标,以及本质矩阵满足下述公式(4)所示出的关系:
[0192] (sx′,sy′,sz′)E(sx,sy,sz)T=0                          (4)[0193] 上述公式(4)中,E为本质矩阵,S′=(sx′,sy′,sz′)为第一个全景图像中的第一特征点对应的单位球面的点坐标,S=(sx,sy,sz)为第二个全景图像中的第一特征点对应的单位球面的点坐标。
[0194] 其中,确定两个第一特征点的角度误差中的较大者为特征点对的角度误差,也就是按照下式(5)确定特征点对的角度误差:
[0195]
[0196] 上述公式(5)中, 即为第二个全景图像的第一特征点的角度误差,也就是第二个全景图像上第一特征点对应的球面点S’和光心O2的连线与对应的外极平面之间的夹角,其中,对应的外极平面为第一个全景图像上的第一特征点对应的球面点S与光心O1的连线和两个光心Q1和Q2的连线构成的平面。相对应的,请参照附图5,
[0197] 即为第一个全景图像的第一特征点的角度误差,也就是第一个全景图像上第一特征点对应的球面点和光心的连线与对应的外极平面之间的夹角,其中,对应的外极平面为第二个全景图像上的第一特征点对应的球面点与光心的连线和两个光心的连线构成的平面。本公开实施例中采用角度误差和球面误差能更好的适应全景图像的相机模型。
[0198] 其中,以特征点对的角度误差为残差项通过RANSAC(Random Sample Consensus)和5点算法可以计算出多个本质矩阵,每5组特征点对即可计算出一个本质矩阵,因此利用上述方式可以得出多个本质矩阵。
[0199] 其中,可按照下述方式确定本质矩阵对应的内点数:首先,根据所述本质矩阵计算所述图像对的每组特征点对的角度误差;接下来,确定所述角度误差符合预设的第二条件的特征点对为内点;最后,根据所有内点确定所述本质矩阵对应的内点数。也就是利用上述公式(5)和本质矩阵确定每组特征点对的角度误差;预设第二条件,并利用第二条件筛选内点,在一个实例中,第二条件可以是角度误差小于第一角度阈值,也就是确定小于第一角度阈值的角度误差对应的特征点对为内点。
[0200] 本步骤中,可以采用下述方式利用所述第一本质矩阵对所述多组特征点对进行过滤:首先,根据所述第一本质矩阵确定所述图像对的每组特征点对的角度误差;接下来,过滤角度误差符合预设的第三条件的特征点对。
[0201] 其中,可以利用上述公式(5)和第一本质矩阵计算每组特征点对的角度误差;预设第三条件,并利用第三条件筛选特征点对,在一个实例中,第三条件可以是角度误差大于或等于第二角度阈值(如大于或等于0.4度),也就是过滤大于或等于第二角度阈值的角度误差对应的特征点对,即去除大于或等于第二角度阈值的角度误差对应的特征点对,保留小于第二角度阈值的角度误差对应的特征点对。
[0202] 本公开实施例中,通过对图像对进行特征匹配确定图像对之间的特征点对,并进一步根据特征点对确定第一本质矩阵,最后再用第一本质矩阵过滤上述特征点对,并且在确定第一本质矩阵和过滤特征点对时均使用了角度误差,因此相较于其他本质矩阵,与第一本质矩阵一致的特征点对最多,且过滤步骤将与第一本质矩阵不一致的特征点对去除,不仅提高了第一本质矩阵的准确度,而且在去除错误的特征点对的前提下,最大程度的提高了特征点对的数量,进而提高了图像对的两个全景图像的匹配精度和准确度。而且利用全景图像360度的视角覆盖提升图像之间的特征匹配数量,降低弱纹理区域相机注册失败的几率。
[0203] 在本公开的一些实施例中,在完成每组图像对的第一本质矩阵计算及特征点对过滤后,还可以利用第一特征点的分布来判断两个全景图像的匹配是否由重复的纹理造成,并进一步对多组图像对进行过滤,具体可以采用下述方式:首先,获取所述图像对的特征点对的两个第一特征点在所属全景图像的坐标;接下来,根据所述全景图像对应的第三映射关系以及所述全景图像上的属于特征点对的第一特征点的坐标,确定与特征点对相关的透视图像,其中,所述与特征点对相关的透视图像为存在与属于特征点对的第一特征点相对应的第二特征点的透视图像;最后,利用所述与特征点对相关的透视图像对所述图像对进行过滤。
[0204] 还可以预设第三数量阈值,并确定透视图像包括的对应于特征点对的第二特征点的数量,当该数量大于或等于上述第三数量阈值时,透视图像才确定为与特征点对相关的透视图像,例如,可以将上述第三数量阈值设置为5,这样可以避免少量噪声匹配带来的错误统计。
[0205] 其中,响应于所述图像对的至少一个全景图像对应的与特征点对相关的透视图像为连续的多张图像,且所述连续的多张图像的数量小于预设的过滤阈值,过滤所述图像对。也就是说,当与特征点对相关的第一特征点对应的第二特征点都集中在部分透视图像,且这部分透视图像的数量小于预设的过滤阈值,则认为这两个全景图像的匹配是由重复纹理造成的错误匹配,因此过滤掉该图像对,也就是去除该图像对。过滤阈值可以根据透视图像的总量和预设的第一比例确定,例如透视图像的总量为6,预设的第一比例为0.5,则认为与特征点对相关的透视图像的数量小于3时,则过滤掉该图像对。
[0206] 本公开的实施例中,完成特征匹配的第一特征点均对应于透视图像的第二特征点,因此通过确定第二特征点的分布可以判断两个全景图像的匹配是否由重复纹理造成,且通过去除噪声匹配可进一步提高上述判断的准确性,排除错误匹配的图像对。重复纹理大多是局部的,利用全景图像之间全局的匹配情况尽量排除错误匹配,避免据此进行相机注册的错误率。
[0207] 在本公开的一些实施例中,可以采用下述方式根据所述至少一组图像对及对应的匹配结果构建点云模型:首先,根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;接下来,多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;并且,在每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。
[0208] 其中,确定初始图像对时,可以按照特征点对的数量从大到小的顺序依次选择图像对,每次选择图像对后均根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,直至选择的图像对满足所述初始化条件,确定选择的图像对为初始图像对。
[0209] 而且,可以采用下述方式根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,请参照附图6,其示出上述方式的流程,包括步骤S601至步骤S604。
[0210] 在步骤S601中,根据所述图像对的第一本质矩阵确定至少一组(例如四组)位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,其中,所述位移变量包括旋转变量和平移变量。
[0211] 其中,旋转变量可以用3*3的矩阵R表示,平移变量用3维的向量T表示。计算各组三维点X在第i个全景图像(即第一个或第二个全景图像)中的重投影误差时,可以采用下述公式:
[0212]
[0213] 上述公式中:S=(sx,sy,sz)为第一特征点对应的单位球面的点坐标,X为三维点坐标向量,f为虚拟透视相机的焦距,令P=[Ri|Ti]为第i个全景图像的相机矩阵,在初始化时,R1=I为单位矩阵,T1=0为零向量,R2=R,T2=T,且R和T分别为该组三维点对应的旋转变量和平移变量。
[0214] 其中,根据各组三维点的重投影误差和三角化角度过滤所述三维点时,可以设置第三角度阈值和第四角度阈值,然后保留在两个全景图像中的重投影误差都小于第三角度阈值且三角化角度大于第四角度阈值的三维点。
[0215] 在步骤S602中,响应于数量最多的一组三维点的数量大于预设的第一数量阈值,确定对应的位移变量为第一位移变量。
[0216] 在步骤S603中,从多次计算得到的本质矩阵中选择内点数大于或等于点数阈值的本质矩阵,分别根据每个本质矩阵确定至少一组(例如四组)位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,保留每个本质矩阵的数量最多的一组三维点对应的位移变量。
[0217] 其中,可以在步骤S403计算得到多个本质矩阵并确定第一本质矩阵后,保留其余的本质矩阵,留作本步骤使用;或者在本步骤中再次利用与步骤S403中相同的方式计算得到多个本质矩阵。
[0218] 其中,可以预设第二比例,然后利用第一本质矩阵的内点数与上述第二比例确定点数阈值;可以将第一本质矩阵的内点数与第二比例的乘积作为点数阈值,例如,可以将第二比例预设为0.6,但本公开无意对第二比例的具体数值做出限制。
[0219] 本步骤对选择出的本质矩阵执行的操作与步骤S601至步骤S602的操作相同,为每个本质矩阵保留一个位移变量。
[0220] 在步骤S604中,在每个本质矩阵保留的位移变量与所述第一位移变量间的差异满足预设范围的情况下,确定所述图像对满足所述初始化条件。
[0221] 其中,本质矩阵保留的位移变量与第一位移变量间的差异,可以采用两个位移变量的方向夹角表示,方向夹角以两个位移变量的旋转矩阵的乘积得到;预设范围可以是用一个预设的第五角度阈值表示,也就是小于第五角度阈值为满足预设范围;因此当每个本质矩阵保留的位移变量与第一位移变量的方向夹角均小于第五角度阈值,确定所述图像对满足所述初始化条件。
[0222] 当图像对不满足初始化条件时,采用步骤S601至步骤S604,继续判断其他图像对是否满足初始化条件。
[0223] 上述判断初始化条件的过程中,对每个本质矩阵的多个解的判定,可以让初始化条件的判断结果更加稳定。
[0224] 另外,还可以通过最小化初始的三维点在初始图像对的两个全景图像上的重投影误差,优化每个全景图像的相机位姿以及初始的三维点的位置;
[0225] 另外,每次确定注册图像的相机位姿后,还可以通过最小化三维点在所述注册图像上的重投影误差优化所述注册图像的相机位姿;
[0226] 另外,每次将所述注册图像的特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点后,还可以通过最小化每个三维点在每个已注册图像上的重投影误差,优化每个已注册图像的相机位姿以及每个三维点的位置。
[0227] 上述优化,可以采用如下损失函数进行优化:
[0228]
[0229] 上述公式(7)中,S=(sx,sy,sz)为第一特征点对应的单位球面的点坐标,Xi为第i个三维点的坐标向量,f为虚拟透视相机的焦距,令P=[Ri|Ti]为第i个全景图像的相机矩阵,在初始化时,R1=I为单位矩阵,T1=0为零向量,R2=R,T2=T,且R和T分别为该三维点对应的旋转变量和平移变量,m为全景图像的个数,n为三维点的个数。
[0230] 上述确定图像的相机位姿,可以采用RANSAC(Random Sample Consensus)和P3P算法进行。
[0231] 基于上述对点云模型构建方法的描述可知,该方法可以利用全景图像进行相机注册和点云重建,从而完成点云模型的构建,而且基于全景图构建的点云模型比传统的基于普通透视图构建的点云模型精度更高、对重复纹理的鲁棒性更好、场景重建更全面。可选的,可以利用该方法构建视觉高精度地图,为自动驾驶、AR提供定位用的视觉特征和三维地标点,还可以利用该方法构建特定场景的三维模型,供场景展示和VR应用,例如旅游景点、博物馆、展览馆的AR/VR导览,或者构建某一建筑、某一街区或某一城市的三维模型、AR特效等。
[0232] 根据本公开实施例的第二方面,提供一种点云模型构建装置,请参照附图7,其示出了该装置的结构,包括:
[0233] 获取模块701,用于获取全景图像集中的全景图像的第一特征;
[0234] 匹配模块702,用于根据所述第一特征确定所述全景图像集中的至少一组图像对及对应的匹配结果,其中,所述图像对包括第一特征匹配的两个全景图像,所述匹配结果指示两个全景图像的第一特征间的对应关系;
[0235] 构建模块703,用于根据所述至少一组图像对及对应的匹配结果构建点云模型。
[0236] 在一个实施例中,所述获取模块具体用于:
[0237] 确定所述全景图像对应的多张透视图像,其中,多张透视图像对应的空间的集合为全景图像对应的空间;
[0238] 获取所述多张透视图像中的至少一张透视图像的第二特征;
[0239] 根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征,其中,所述透视图像与所述全景图像的对应位置对应相同的空间;
[0240] 根据至少一个所述第一子特征确定所述全景图像的第一特征。
[0241] 在一个实施例中,所述获取模块用于确定所述全景图像对应的多张透视图像时,具体用于:
[0242] 获取所述全景图像对应的单位球面,并确定全景图像的像素点坐标与单位球面的点坐标间的第一映射关系;
[0243] 根据所述单位球面确定多张透视图像,并确定透视图像的像素点坐标与单位球面的点坐标间的第二映射关系,其中,所述多张透视图像对应的球面点的集合为单位球面;
[0244] 根据所述第一映射关系和所述第二映射关系确定全景图像的像素点坐标与透视图像的像素点坐标间的第三映射关系,并根据全景图像的像素点的像素信息和所述第三映射关系确定透视图像的像素点的像素信息。
[0245] 在一个实施例中,所述透视图像的第二特征包括第二特征点和对应的第二描述子;
[0246] 所述获取模块用于根据所述透视图像的第二特征确定所述全景图像的对应位置的第一子特征时,具体用于:
[0247] 根据所述透视图像的第二特征点的坐标和所述第三映射关系确定所述全景图像的第一特征点的坐标;
[0248] 根据所述透视图像的第二特征点对应的第二描述子确定所述全景图像的第一特征点对应的第一描述子。
[0249] 在一个实施例中,所述第一特征包括第一特征点和对应的第一描述子;
[0250] 所述匹配模块具体用于:
[0251] 根据每个全景图像与对应的待匹配的全景图像确定多组图像对;
[0252] 根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对,其中,每组所述特征点对包括两个对应匹配且分属两个全景图像的第一特征点;
[0253] 根据所述多组特征点对确定第一本质矩阵,并利用所述第一本质矩阵对所述多组特征点对进行过滤,得到所述图像对对应的匹配结果。
[0254] 在一个实施例中,所述匹配模块用于根据每组所述图像对的两个全景图像的第一描述子确定多组特征点对后,还用于:
[0255] 获取每组所述图像对的两个全景图像的特征点对的数量;
[0256] 过滤特征点对的数量符合预设的第一条件的图像对。
[0257] 在一个实施例中,所述匹配模块用于根据所述多组特征点对确定第一本质矩阵时,具体用于:
[0258] 根据所述特征点对中的两个第一特征点的角度误差确定所述特征点对的角度误差,其中,所述第一特征点的角度误差为所述第一特征点对应的单位球面的球面点与单位球面的光心的连线和外极平面间的夹角;
[0259] 以对应的所述特征点对的角度误差为残差项,多次根据预设数目的所述特征点对确定本质矩阵;
[0260] 确定每个所述本质矩阵对应的内点数,并确定内点数最多的本质矩阵为所述第一本质矩阵。
[0261] 在一个实施例中,所述匹配模块用于确定每个所述本质矩阵对应的内点数时,具体用于:
[0262] 根据所述本质矩阵确定所述图像对的每组特征点对的角度误差;
[0263] 确定所述角度误差符合预设的第二条件的特征点对为内点;
[0264] 根据所有内点确定所述本质矩阵对应的内点数。
[0265] 在一个实施例中,所述匹配模块用于利用所述第一本质矩阵对多组特征点对进行过滤时,具体用于:
[0266] 根据所述第一本质矩阵确定所述图像对的每组特征点对的角度误差;
[0267] 过滤所述角度误差符合预设的第三条件的特征点对。
[0268] 在一个实施例中,所述匹配模块还用于:
[0269] 获取所述图像对的特征点对的两个第一特征点在所属全景图像的坐标;
[0270] 根据所述全景图像对应的第三映射关系以及所述全景图像上的属于特征点对的第一特征点的坐标,确定与特征点对相关的透视图像,其中,所述与特征点对相关的透视图像为存在与属于特征点对的第一特征点相对应的第二特征点的透视图像;
[0271] 利用所述与特征点对相关的透视图像对所述图像对进行过滤。
[0272] 在一个实施例中,所述匹配模块用于利用所述与特征点对相关的透视图像对所述图像对进行过滤时,具体用于:
[0273] 响应于所述图像对的至少一个全景图像对应的与特征点对相关的透视图像为连续的多张图像,且所述连续的多张图像的数量小于预设的过滤阈值,过滤所述图像对。
[0274] 在一个实施例中,所述构建模块具体用于:
[0275] 根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对,并确定所述初始图像对的每个全景图像的相机位姿,以及将所述初始图像对的第一特征点对进行三角化,形成初始三维点;
[0276] 多次根据第一三维点对应的第一特征点和每个未注册图像的第一特征点间的匹配关系,确定一个未注册图像为注册图像,直至全景图像集中的每个全景图像均为已注册图像,其中,所述未注册图像为全部第一特征点均未三角化的全景图像,所述已注册图像为存在第一特征点被三角化的全景图像,所述第一三维点包括所述初始三维点,或包括所述初始三维点和所述已注册图像的第一特征点三角化形成的三维点;
[0277] 每次确定注册图像后,确定所述注册图像的相机位姿,并将所述注册图像的第一特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点,所述第三特征点为所述已注册图像中与所述注册图像的第一特征点匹配的第一特征点。
[0278] 在一个实施例中,所述构建模块用于根据预设的初始化条件和每组图像对的特征点对及第一本质矩阵确定一组图像对为初始图像对时,具体用于:
[0279] 按照特征点对的数量从大到小的顺序依次选择图像对,每次选择图像对后均根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件,直至选择的图像对满足所述初始化条件,确定选择的图像对为初始图像对。
[0280] 在一个实施例中,所述构建模块用于根据所述特征点对及所述第一本质矩阵,确定所述图像对是否满足所述初始化条件时,具体用于:
[0281] 根据所述图像对的第一本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,其中,所述位移变量包括旋转变量和平移变量;
[0282] 响应于数量最多的一组三维点的数量大于预设的第一数量阈值,确定对应的位移变量为第一位移变量;
[0283] 从多次计算得到的本质矩阵中选择内点数大于或等于点数阈值的本质矩阵,分别根据每个本质矩阵确定至少一组位移变量,并针对每组位移变量分别三角化特征点对的特征点,以形成各组位移变量对应的三维点,以及根据各组三维点的重投影误差和三角化角度过滤所述三维点,保留每个本质矩阵的数量最多的一组三维点对应的位移变量;
[0284] 在每个本质矩阵保留的位移变量与所述第一位移变量间的差异满足预设范围的情况下,确定所述图像对满足所述初始化条件。
[0285] 在一个实施例中,所述构建模块还用于:
[0286] 通过最小化初始的三维点在初始图像对的两个全景图像上的重投影误差,优化每个全景图像的相机位姿以及初始的三维点的位置;和/或,
[0287] 每次确定注册图像的相机位姿后,通过最小化三维点在所述注册图像上的重投影误差优化所述注册图像的相机位姿;和/或,
[0288] 每次将所述注册图像的特征点进行三角化以形成对应的三维点,以及将已注册图像的第三特征点进行三角化以形成对应的三维点后,通过最小化每个三维点在每个已注册图像上的重投影误差,优化每个已注册图像的相机位姿以及每个三维点的位置。
[0289] 在一个实施例中,所述匹配模块还用于:
[0290] 根据每个全景图像对应的空间确定对应的待匹配的全景图像;或,[0291] 根据预设的搭配规则确定每个全景图像对应的待匹配的全景图像。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在第一方面有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0292] 请参照附图8,根据本公开实施例的第三方面,提供一种电子设备,所述电子设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时基于第一方面所述的方法构建点云模型。
[0293] 根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现第一方面所述的方法。计算机可读存储介质可以是易失性或非易失性存储介质。
[0294] 本公开还提供一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的点云模型构建方法的指令。
[0295] 该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
[0296] 在本公开中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
[0297] 本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0298] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。