掌桥专利:专业的专利平台
掌桥专利
首页

一种不依赖于机械摆放的三维重建加速方法、系统及设备

文献发布时间:2023-06-19 11:19:16


一种不依赖于机械摆放的三维重建加速方法、系统及设备

技术领域

本发明属于三维重建技术领域,具体涉及了一种基于不依赖于机械摆放的三维重建加速的方法、系统及设备。

背景技术

三维重建技术是计算机视觉技术的重要分支之一,是计算机视觉和工业测量领域相结合的一个热门研究领域,在生产生活中得到了越来越广泛的应用。三维重建技术主要分为被动式视觉和主动式视觉两类。被动式视觉系统利用视觉传感器,被动的感应目标物体表面反射的环境光成像,该方法适用于光照充足的场景;主动式视觉系统带有可控制的主动光源,主动向目标物体表面投射已知编码的光信号,并由视觉传感器感应光信号成像。

目前,结构光技术是实现物体表面三维重建最可靠而有效的技术。结构光技术是主动式三维重建技术的一种,该技术通过投影仪将结构光编码图案投射到被测目标物体表面,再通过相机捕获结构光图像,通过对结构光图像进行解码处理,再基于三角测量原理计算得到物体表面的三维点云数据,实现三维重建。

三维点云数据是由物体表面的空间点坐标等数据组成的,结构光三维重建原理主要是求解物体表面的空间点坐标。在投影仪和相机的机械摆放位置存在夹角时,空间坐标点求解公式是一个含有三个变量的函数,三个变量分别为相机坐标系中像素的行坐标、列坐标和投影仪坐标系中像素的行坐标或列坐标中的任意一个,空间点坐标由三个变量来唯一确定。并且三个变量均为相机、投影仪分辨率范围内的整数,因此可以预先计算出三个变量的每个值分别对应的空间点坐标,并生成记录表单,后续只需要根据记录表单来查找对应空间点坐标即可,避免了计算,加速了三维重建。但是由于三个变量的记录表单,需要占用巨大的磁盘和内存空间,一般设备无法承受。

因此,现有技术中通过将相机与投影仪的机械位置对齐的方式,使两者各维方向对齐来将三个变量的求解公式降解为两个变量的求解公式,使记录表单被压缩几百倍后在本地存储。

但是这种方式虽然加速了三维重建,却必须依赖于投影仪和相机的机械摆放位置,由于受到机械加工精度的制约,机械加工的误差会导致摆放误差,进而影响三维重建的精度。

发明内容

为了解决现有技术中的上述问题,即在加速三维重建的同时不依赖于机械摆放,保证三维重建精度的问题,本发明提供了一种不依赖于机械摆放的三维重建加速方法。

本发明的第一方面提出了一种不依赖于机械摆放的三维重建加速方法,所述方法包括:

获取相机任意角度拍摄的被测物体表面的投影图案;

确定所述投影图案中每个像素点对应的物点分别在在相机图像坐标系中的第一坐标数据和投影仪图像坐标系中的第二坐标数据;其中,所述第一坐标数据为物点在相机归一化成像平面上对应的像点的坐标数据;所述第二坐标数据为物点在投影仪归一化成像平面上对应的像点的坐标数据;

根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值;其中,所述预设记录表单参数为第一坐标数据对应的方向向量在投影仪坐标系中的向量数据;

根据所述深度值、第一坐标数据计算得到每个像素点对应的物点在相机坐标系中的三维坐标数据,称作空间点坐标数据;

利用各个空间点坐标数据形成的三维点云数据进行三维重建。

可选地,第一坐标数据的确定步骤包括:

通过预设标定法得到相机内参矩阵如下:

其中,K

根据投影图案、相机分辨率确定像素点个数和每个物点在相机初始成像平面中对应的像点的初始坐标数据(u

利用相机内参矩阵中的各参数和各物点初始坐标数据 (u

其中,u

可选地,第二坐标数据的确定步骤包括:

通过预设标定法得到投影仪内参矩阵如下:

其中,Kp是投影仪内参矩阵,f

根据投影图案的图像序列和预设解码规则确定每个物点在投影仪初始成像平面中对应的像点的初始坐标数据(u

利用投影仪内参矩阵中的各参数和各物点的初始坐标数据 (u

其中,u

可选地,所述预设表单参数通过以下方法计算得到:

通过预设标定法得到位姿矩阵如下:

其中,

提取位姿矩阵中的旋转矩阵参数;

通过旋转矩阵参数和第一坐标数据按照以下公式计算得到每个像素点对应的预设记录表单参数(R

可选地,所述根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值包括:

获取位姿矩阵中的位移向量参数和第二坐标数据的列坐标;

在预设记录表单中查找与每个像素点对应的预设记录表单参数;

根据第二坐标数据的列坐标、位姿矩阵中的位移向量参数和预设记录表单参数按照如下公式计算得到每个像素点对应的物点的深度值:

其中,d

可选地,所述根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值包括:

获取位姿矩阵中的位移向量参数和第二坐标数据的行坐标;

在预设记录表单中查找与每个像素点对应的预设记录表单参数;

根据第二坐标数据的行坐标、位姿矩阵中的位移向量参数和预设记录表单参数按照如下公式计算得到每个像素点的深度值:

其中,d

可选地,根据所述深度值、第一坐标数据按照以下公式计算空间点坐标数据(x

其中,d

本发明第二方面提供一种不依赖于机械摆放的三维重建加速系统,包括:

获取单元,用于获取相机任意角度拍摄的被测物体表面的投影图案;

确定单元,用于确定所述投影图案中每个像素点对应的物点分别在相机图像坐标系中的第一坐标数据和在投影仪图像坐标系中的第二坐标数据;其中,所述第一坐标数据为物点在相机归一化成像平面上对应的像点的坐标数据;所述第二坐标数据为物点在投影仪归一化成像平面上对应的像点的坐标数据;

第一计算单元,用于根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值;其中,所述预设记录表单参数为第一坐标数据对应的方向向量在投影仪坐标系中的向量数据;

第二计算单元;用于根据所述深度值、第一坐标数据计算得到每个像素点对应的物点在相机坐标系中的三维坐标数据,称作空间点坐标数据;

重建单元,用于利用各个空间点坐标数据形成的三维点云数据进行三维重建。

本发明的第三方面,提出了一种设备,包括:

至少一个处理器;以及

与至少一个所述处理器通信连接的存储器;其中,

所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现第一方面任一项所述的不依赖于机械摆放的三维重建加速方法。

本发明的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现第一方面任一项所述的不依赖于机械摆放的三维重建加速方法。

本发明的有益效果:本申请可以对相机任意角度拍摄的投影图案进行处理,不依赖于相机和投影仪的机械摆放,并且在空间点坐标数据求解时可以通过在预设记录表单中查找预设记录表单参数来帮助加速求解,避免重复计算,并且该预设记录表单参数是空间点坐标数据求解中的一个中间参数,占用存储空间较小,满足设备使用需求。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请实施例提供的不依赖于机械摆放的三维重建加速方法流程示意图;

图2是本申请实施例提供的不依赖于机械摆放的三维重建加速系统的示意图;

图3是用于实现本申请方法、系统、设备实施例的服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本发明提供一种不依赖于机械摆放的三维重建加速方法,本方法包括:

获取相机任意角度拍摄的被测物体表面的投影图案;

确定所述投影图案中每个像素点对应的物点分别在在相机图像坐标系中的第一坐标数据和投影仪图像坐标系中的第二坐标数据;其中,所述第一坐标数据为物点在相机归一化成像平面上对应的像点的坐标数据;所述第二坐标数据为物点在投影仪归一化成像平面上对应的像点的坐标数据;

根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值;其中,所述预设记录表单参数为第一坐标数据对应的方向向量在投影仪坐标系中的向量数据;

根据所述深度值、第一坐标数据计算得到每个像素点对应的物点在相机坐标系中的三维坐标数据,称作空间点坐标数据;

利用各个空间点坐标数据形成的三维点云数据进行三维重建。

为了更清晰地对本发明不依赖于机械摆放的三维重建加速的方法进行说明,下面结合图1对本发明实施例中各步骤展开详述。

本发明第一实施例的不依赖于机械摆放的三维重建加速的方法,包括步骤S101-步骤S105,各步骤详细描述如下:

S101、获取相机任意角度拍摄的被测物体表面的投影图案。

在本申请实施例中,投影仪将带有编码序列的结构光图案投射到被测物体表面,被测物体是具有一定形状、颜色和结构的实物。由于物体的表面不是光滑的,所以结构光图案在物体表面会发生变形,由相机拍摄该变形后的结构光图案即本申请所指的投射图案,并发送给计算机端,由计算机获取该投影图案,并进行解码。

在本申请实施例,不对相机和投影仪的机械摆放位置进行限制,所以相机可以任意角度来拍摄。

S102、确定所述投影图案中每个像素点对应的物点分别在相机图像坐标系中的第一坐标数据和在投影仪图像坐标系中的第二坐标数据;其中,所述第一坐标数据为物点在相机归一化成像平面上对应的像点的坐标数据;所述第二坐标数据为物点在投影仪归一化成像平面上对应的像点的坐标数据。

在该步骤中,由于所有照片等都是由像素点组成的,所以投影图案也是由若干个像素点组成的。而像素点的个数是由相机分辨率确定的。例如,相机的分辨率是2048X1536,即表示在宽度方向上有2048 个像素点,在长度方向上有1536个像素点,而2048X1536=3145728,即共有31445728个像素点。

物点是物体表面的实点,投影图案中每个像素点对应一个物点。

可选地,第一坐标数据的确定步骤包括:

通过预设标定法得到相机内参矩阵如下:

其中,K

根据投影图案、相机分辨率确定像素点个数和每个物点在相机初始成像平面中对应的像点的初始坐标数据(u

利用相机内参矩阵中的各参数和各物点初始坐标数据 (u

公式(1);

其中,u

可选地,第二坐标数据的确定步骤包括:

通过预设标定法得到投影仪内参矩阵如下:

其中,Kp是投影仪内参矩阵,f

根据投影图案的图像序列和预设解码规则确定每个物点在投影仪初始成像平面中对应的像点的初始坐标数据(u

在一个示例中,例如可以通过预设解码规则得到投影仪相对于某个基点的坐标偏移量,根据偏移量和基点坐标就能确定物点在投影仪初始成像平面中对应的像点的初始坐标数据。

利用投影仪内参矩阵中的各参数和各物点的初始坐标数据 (u

公式(2);

其中,u

需要说明的是,在公式(2)中,只需要求解其中一个坐标即可,即第二坐标数据中的列坐标x

需要说明的是,本申请实施例是将相机视作小孔成像模型,将被测物体表面的物点通过小孔成像原理投射在相机光心后的成像平面上,该成像平面称为相机初始平面成像,在该相机初始成像平面上的坐标叫作相机初始坐标,为了归一化焦距把初始成像平面放到相机之前,该平面叫作归一化成像平面。投影仪初始成像平面也是相同原理,在此不再赘述。

S103、根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值;其中,所述预设记录表单参数为第一坐标数据对应的方向向量在投影仪坐标系中的向量数据。

可选地,所述预设表单参数通过以下方法计算得到:

通过预设标定法得到位姿矩阵如下:

其中,

提取位姿矩阵中的旋转矩阵参数;

通过旋转矩阵参数和第一坐标数据按照以下公式计算得到每个像素点对应的预设记录表单参数(R

在本申请实施例中,预设记录表单参数(R

其中,预设记录表单参数(R

可选地,所述根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值包括:

获取位姿矩阵中的位移向量参数和第二坐标数据的列坐标;

在预设记录表单中查找与每个像素点对应的预设记录表单参数;

根据第二坐标数据的行坐标、位姿矩阵中的位移向量参数和预设记录表单参数按照如下公式计算得到每个像素点对应的物点的深度值:

可选地,所述根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值包括:

获取位姿矩阵中的位移向量参数和第二坐标数据的列坐标;

在预设记录表单中查找与每个像素点对应的预设记录表单参数;

根据第二坐标数据的列坐标、位姿矩阵中的位移向量参数和预设记录表单参数按照如下公式计算得到每个像素点对应的物点的深度值:

公式(5)。

在本申请的一个变形实施例中,为了统一方便工作人员查看或满足常规公式的撰写习惯,公式(4)和公式(5)也可以分别用如下公式替代:

其中,

相应地,在预设记录表单中就可以将参数(A

S104、根据所述深度值、第一坐标数据计算得到每个像素点对应的物点在相机坐标系中的三维坐标数据,称作空间点坐标数据。

可选地,根据所述深度值、第一坐标数据按照以下公式计算空间点坐标数据(x

S105、利用各个空间点坐标数据形成的三维点云数据进行三维重建。

下面给出一个具体的完整的实施例,包括如下步骤:

第一步,通过传统相机标定法获得相机内参矩阵、投影仪内参矩阵和位姿矩阵,分别如下所示:

第二步,在投影图案中随机采样三个像素点,根据相机分辨率确定该像素点对应的物点在相机像素坐标系中的初始坐标数据分别为 (206,329)、(251,157)和(532,395);

第三步,利用公式(2)计算得到第一坐标数据;

第四步,利用公式(3)计算得到预设记录表单参数 (R

经过上述步骤,计算所得预设记录表单如下表:

表1:

第五步,根据预设解码规则得到投影仪像素坐标偏移量S,根据偏移量S确定投影仪相机像素坐标系下的三个初始坐标数据;

第六步,利用公式(2)计算得到第二坐标数据的列坐标;

第七步,利用公式(5)和表1数据计算得到三个像素点的深度;

第八步,利用公式(6)计算得到空间点坐标;

第九步,利用非加速方式计算得到空间点坐标(x′,y′,z′),并分别记录加速和非加速的计算时间。其对比数据如下表:

表2:

基于同样的发明构思,本发明第二方面提供一种不依赖于机械摆放的三维重建加速系统,如图2所示,包括:

获取单元201,获取相机任意角度拍摄的被测物体表面的投影图案;

确定单元202,用于确定所述投影图案中每个像素点对应的物点分别在在相机图像坐标系中的第一坐标数据和投影仪图像坐标系中的第二坐标数据;其中,所述第一坐标数据为物点在相机归一化成像平面上对应的像点的坐标数据;所述第二坐标数据为物点在投影仪归一化成像平面上对应的像点的坐标数据;

第一计算单元203,用于根据第二坐标数据、位姿矩阵参数和预设记录表单参数计算每个像素点对应的物点在相机坐标系中的深度值;其中,所述预设记录表单参数为第一坐标数据对应的方向向量在投影仪坐标系中的向量数据;

第二计算单元204,用于根据所述深度值、第一坐标数据计算得到每个像素点对应的物点在相机坐标系中的三维坐标数据,称作空间点坐标数据;

重建单元205,用于利用各个空间点坐标数据形成的三维点云数据进行三维重建。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的不依赖于机械摆放的三维重建加速系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

基于同样的发明构思,本发明第三实施例的一种设备,包括:

至少一个处理器;以及

与至少一个所述处理器通信连接的存储器;其中,

所述存储器存储有可被所述处理器执行的指令,所述指令用于被所述处理器执行以实现上述不依赖于机械摆放的三维重建加速的方法。

本发明第四实施例的一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于被所述计算机执行以实现上述的不依赖于机械摆放的三维重建加速的方法。

所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

下面参考图3,其示出了用于实现本申请方法、系统、设备实施例的服务器的计算机系统的结构示意图。图3示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图3所示,计算机系统包括中央处理单元(CPU, Central Processing Unit)301,其可以根据存储在只读存储器(ROM, Read Only Memory)302中的程序或者从存储部分308加载到随机访问存储器(RAM,Random Access Memory)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有系统操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O, Input/Output)接口305也连接至总线304。

以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN(局域网,Local AreaNetwork)卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

相关技术
  • 一种不依赖于机械摆放的三维重建加速方法、系统及设备
  • 一种导航系统中不依赖于地图的一键通服务方法和系统
技术分类

06120112879330