多深度相机的标定方法、装置、设备及存储介质与流程

文档序号:26142709发布日期:2021-08-03 14:27阅读:121来源:国知局
多深度相机的标定方法、装置、设备及存储介质与流程

本申请实施例涉及相机标定领域,特别涉及一种多深度相机的标定方法、装置、设备及存储介质。



背景技术:

深度相机作为一种能够同时获取到环境色彩以及深度信息的相机,被广泛应用于三维环境建模等领域。

在多深度相机的应用场景下,由于不同深度相机所处位置不同,且各自的相机姿态存在差异,因此需要对不同深度相机的外参进行标定,确定不同深度相机之间的位姿关系。相关技术中,对多深度相机进行标定时,需要借助环境中设置的标定物以及标准人体模型。



技术实现要素:

本申请实施例提供了一种多深度相机的标定方法、装置、设备及存储介质。所述技术方案如下:

一方面,本申请实施例提供了一种多深度相机的标定方法,所述方法包括:

构建目标环境对应的目标环境点云;

基于各个待标定深度相机在所述目标环境中采集到的图像,构建各个所述待标定深度相机对应的待配准环境点云;

对所述待配准环境点云和所述目标环境点云进行点云配准,得到各个所述待标定深度相机对应的目标变换矩阵,所述目标变换矩阵用于表示从所述待配准环境点云变换至所述目标环境点云的变换方式;

基于各个所述待标定深度相机对应的所述目标变换矩阵,对各个所述待标定深度相机进行标定。

另一方面,本申请实施例提供了一种多深度相机的标定装置,所述装置包括:

第一构建模块,用于构建目标环境对应的目标环境点云;

第二构建模块,用于基于各个待标定深度相机在所述目标环境中采集到的图像,构建各个所述待标定深度相机对应的待配准环境点云;

配准模块,用于对所述待配准环境点云和所述目标环境点云进行点云配准,得到各个所述待标定深度相机对应的目标变换矩阵,所述目标变换矩阵用于表示从所述待配准环境点云变换至所述目标环境点云的变换方式;

标定模块,用于基于各个所述待标定深度相机对应的所述目标变换矩阵,对各个所述待标定深度相机进行标定。

另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上述方面所述的多深度相机的标定方法。

另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的多深度相机的标定方法。

另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的多深度相机的标定方法。

本申请实施例中,通过构建目标环境对应的目标环境点云,并基于待标定深度相机在目标环境中采集到的图像构建待配准环境点云,从而以目标环境点云为基准,对待配准环境点云和目标环境点云进行点云配准,得到从待配准点云变换至目标环境点云所采用的目标变换矩阵,进而基于各个待标定深度相机各自对应的目标变换矩阵,实现多深度相机的标定;整个标定过程中,无需使用深度相机以外的标定物和标准人体模型,简化了相机标定流程并扩大了相机标定的适用场景;同时,不同待标定深度相机均以目标环境点云为基准进行标定,保证了标定时参考对象的一致性,提高了标定准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请一个示例性实施例提供的实施环境的示意图;

图2示出了本申请一个示例性实施例提供的多深度相机的标定方法的流程图;

图3是本申请一个示例性实施例示出的多深度相机标定过程的实施示意图;

图4是本申请一个示例性实施例示出的目标环境点云构建过程的流程图;

图5是相机坐标系与像素坐标系中坐标点之间转换关系的示意图;

图6是相邻两帧彩色图像中匹配特征点投射至世界坐标系过程的示意图;

图7是本申请一个示例性实施例示出的点云配准过程的流程图;

图8是本申请一个示例性实施例示出的第二配准过程的实施示意图;

图9示出了本申请一个实施例提供的多深度相机的标定装置的结构框图;

图10示出了本申请一个示例性实施例提供的计算机设备的结构方框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

为了方便理解,下面对本申请实施例中涉及的名词进行说明。

点云(pointcloud):通过测量仪器采集得到的物体外观表面的点数据集合被称为点云,其中,点数据包含坐标信息和颜色信息。本申请实施例中的点云基于深度相机采集到的彩色图像和深度图像构建得到。

本申请实施例中,构建的点云包括目标环境点云和待配准环境点云,其中,目标环境点云为目标环境的全量点云,而待配准环境点云则是目标环境的局部点云,即待配准环境点云为目标环境点云的子集。

点云配准:对源点云进行旋转平移变换,使源点云变换到与目标点云相同坐标系的过程被称为点云配准,相应的,旋转平移变换过程中采用的矩阵即为变换矩阵。

内参(cameraintrinsics)矩阵:用于对相机坐标系下坐标点与像素坐标系下坐标点进行转换的矩阵被称为内参矩阵,表示为其中,fx和fy为焦距参数,cx和cy为主点偏移。通常情况下,内参矩阵通过离线标定,且标定后不会发生变化。

外参(cameraextrinsics)矩阵:用于对相机坐标系下坐标点与世界坐标系下坐标点进行转换的矩阵被称为外参矩阵,表示为t,由旋转矩阵r和平移矩阵t构成。本申请实施例涉及的标定,即根据各个深度相机各自的外参矩阵,确定相互之间位姿关系的过程。

请参考图1,其示出了本申请一个示例性实施例提供的实施环境的示意图,该实施环境中包括:待标定深度相机110以及计算机设备120。

待标定深度相机110是同时具有彩色图像以及深度图像采集功能的相机,其中,彩色图像中包含所拍摄环境的红绿蓝(red-green-blue,rgb)信息,深度图像中包含拍摄环境的深度(depth)信息。

在一些实施例中,待标定深度相机110中包含用于采集彩色图像的rgb相机模组,以及用于采集深度图像的深度相机模组,且彩色相机模组对应的内参矩阵为kr,深度相机模组对应的内参矩阵为kd,kr和kd均通过离线标定得到,为相机模组的固有属性,而rgb相机模组与深度相机模组之间的转换矩阵(用于在rgb相机模组坐标系与深度相机模组坐标系之间进行转换)为该转换矩阵中包含旋转矩阵r和平移矩阵t。

本申请实施例中,待标定深度相机指未经过外参标定的深度相机。如图1所示,多个待标定深度相机110(图中以4个为例进行说明)分别设置在同一环境中的不同位置,且各个待标定深度相机110的姿态可能不同,因此需要对各个待标定深度相机110进行外参标定,从而确定出待标定深度相机110相互之间的位姿关系。

各个待标定深度相机110通过有线或无线方式与计算机设备120相连,并通过该连接与计算机设备120进行数据传输。

计算机设备120是用于对各个待标定深度相机110采集到的图像进行处理,从而对各个待标定深度相机110进行外参标定的电子设备,该电子设备可以是个人计算机、工作站或者便携式计算机等等,本实施例对此不作限定。

在一种可能的实施方式中,计算机设备120中设置有目标环境对应的目标环境点云。进行外参标定时,计算机设备120获取到待标定深度相机110在目标环境中采集到的图像后,生成该图像对应的待标定环境点云,从而以目标环境点云为基准,对待标定环境点云进行点云配准,确定出待配准环境点云变换至所述目标环境点云采用的变换矩阵。确定出每个待标定深度相机110各自对应的变换矩阵后,计算机设备120即可根据变换矩阵确定出待标定深度相机之间的外参矩阵,实现外参标定。

关于目标环境点云的构建方式,在一种可能的实施方式中,如图1所示,标定人员使用深度相机130对目标环境进行拍摄(围绕着目标环境进行拍摄),从而利用计算机设备对拍摄过程中采集到的一系列深度图像和彩色图像进行点云构建,得到目标环境的目标环境点云。

在其他可能的实施方式中,待标定深度相机110可以将采集到的图像上报至服务器,由服务器对待标定深度相机110进行外参标定,本实施例对此不作限定。为了方便描述,本申请各个实施例中,以标定方法由图1中的计算机设备120执行为例进行说明。

请参考图2,其示出了本申请一个示例性实施例提供的多深度相机的标定方法的流程图,该方法可以包括如下步骤:

步骤201,构建目标环境对应的目标环境点云。

本申请实施例中,当需要对设置在目标环境中的多个深度相机进行外参标定时,计算机设备首先需要构建目标环境对应的目标环境点云。其中,目标环境点云为目标环境的全量点云。

可选的,该目标环境点云基于从不同拍摄角度拍摄的图像(均是对目标环境进行拍摄)构建得到。关于目标环境点云的具体构建过程,下述实施例进行进行详述。

步骤202,基于各个待标定深度相机在目标环境中采集到的图像,构建各个待标定深度相机对应的待配准环境点云。

在一种可能的实施方式中,待标定深度相机设置在目标环境中的不同位置,用于从不同角度拍摄目标环境。对于各个待标定深度相机,待标定深度相机对目标环境进行拍摄后,将同一时刻下采集到的彩色图像和深度图像发送至计算机设备,由计算机设备基于彩色图像和深度图像构建该待标定深度相机对应的待配准环境点云。

其中,由于待标定深度相机固定设置,因此该待配准环境点云为目标环境的局部点云。

步骤203,对待配准环境点云和目标环境点云进行点云配准,得到各个待标定深度相机对应的目标变换矩阵,目标变换矩阵用于表示从待配准环境点云变换至目标环境点云的变换方式。

由于目标环境点云和待配准环境点云均是针对同一环境的点云,因此目标环境电点云和待配准环境点云中存在相互匹配的点,且由于图像采集时深度相机的位姿不同,因此目标环境电点云和待配准环境点云中的匹配点需要经过位姿变换才能够重合。

在一种可能的实施方式中,计算机设备确定待配准环境点云与目标环境点云中的匹配点,从而基于匹配点之间的相对位置关系,拟合得到将待配准环境点云变换至目标环境点云时所采用的目标变换矩阵,实现点云匹配。其中,目标变换矩阵包括旋转矩阵和平移矩阵。

可选的,计算机设备可以对目标环境点云和待配准环境点云进行单次点云配准,或者,可以对目标环境点云和待配准环境点云进行逐级多次点云配准,逐步提高点云配准的准确度。

步骤204,基于各个待标定深度相机对应的目标变换矩阵,对各个待标定深度相机进行标定。

通过上述步骤,计算机设备确定出各个待标定深度相机各自对应的目标变换矩阵,由于各个待标定深度相机的点云配准过程都是以同一目标环境点云为基准,因此基于待标定深度相机各自对应的目标变换矩阵,计算机设备可以进一步确定出不同待标定深度相机之间的位姿关系,从而实现对各个待标定深度相机的外参标定,得到各个待标定深度相机之间的旋转平移关系。

示意性的,如图3所示,当存在n个待标定深度相机时,计算机设备首先构建目标环境点云31,然后通过第一待标定深度相机32采集第一图像33,基于第一图像33构建第一待配准环境点云34,进而对第一待配准环境点云34和目标环境点云31进行点云配准,得到第一目标矩阵35。类似的,通过第n待标定深度相机36采集第二图像37,基于第二图像37构建第二待配准环境点云38,进而对第二待配准环境点云38和目标环境点云31进行点云配准,得到第n目标矩阵39。对于第一待标定深度相机32和第n待标定深度相机36进行外参标定时,计算机设备基于第一目标变换矩阵35和第n目标变换矩阵39即可得到两者之间的相机间位姿关系310。

可选的,对第一待标定深度相机和第二待标定深度相机进行外参标定时,计算机设备获取第一待标定深度相机对应的第一目标变换矩阵,以及第二待标定深度相机对应的第二目标变换矩阵,从而基于第二目标变换矩阵的逆矩阵以及第一目标变换矩阵,标定第一待标定深度相机至第二待标定深度相机的外参。

示意性的,当第一目标变换矩阵为t1,而第二目标变换矩阵为t2时,第一待标定深度相机至第二待标定深度相机的外参即为t2-1t1。

显然,采用本申请实施例提供的方案,仅借助深度相机就能够实现多深度相机的标定,无需借助额外的标定物,一方面简化了标定流程,另一方面能够避免标定物对深度相机的视野在成遮挡,提高标定的准确性,并使相机标定方案能够适用于更多场景。

综上所述,本申请实施例中,通过构建目标环境对应的目标环境点云,并基于待标定深度相机在目标环境中采集到的图像构建待配准环境点云,从而以目标环境点云为基准,对待配准环境点云和目标环境点云进行点云配准,得到从待配准点云变换至目标环境点云所采用的目标变换矩阵,进而基于各个待标定深度相机各自对应的目标变换矩阵,实现多深度相机的标定;整个标定过程中,无需使用深度相机以外的标定物和标准人体模型,简化了相机标定流程并扩大了相机标定的适用场景;同时,不同待标定深度相机均以目标环境点云为基准进行标定,保证了标定时参考对象的一致性,提高了标定准确性。

关于上述实施例中目标环境点云的构建过程,在一种可能的实施方式中,如4所示,上述步骤201可以包括如下步骤:

步骤201a,获取深度相机在目标环境中采集到的彩色图像和深度图像,彩色图像和深度图像由深度相机在运动过程中采集得到。

在一种可能的实施方式中,进行多深度相机标定前,标定人员使用深度相机从不同个拍摄角度对目标环境进行拍摄,从而得到不同位姿状态下的多帧彩色图像和深度图像。示意性的,如图1所示,标定人员可以手持深度相机130围绕目标环境一周进行拍摄。

在一些实施例中,深度相机为运动过程中采集到的彩色图像和深度图像设置时间戳,以便后续计算机设备基于该时间戳提取同一时刻下采集到的彩色图像和深度图像,进而基于彩色图像和深度图像构建该时刻所拍摄到环境对应的环境点云。

步骤201b,基于彩色图像和深度图像,确定深度相机在运动过程中的位姿变化情况。

由于深度相机运动过程中位姿会发生变化,而进行目标环境点云构建时需要基于统一的位姿状态,因此在构建目标环境点云过程中,计算机设备需要基于不同采集时刻下的彩色图像和深度图像,确定出深度相机的位姿变化情况,以便后续基于该位姿变化情况进行位姿统一。在一种可能的实施方式中,本步骤可以包括如下步骤。

一、确定各帧彩色图像中的特征点。

在一种可能的实施方式中,计算机设备从各帧彩色图像中提取尺度不变特征变换(scale-invariantfeaturetransform,sift)特征点,由于sift特征点具有尺度以及旋转不变性,因此后续可以利用sift特征点进行定位。

在其他可能的实施方式中,计算机设备还可以从彩色图像中提取其他类型的特征点,本申请实施例对此不作限定。

二、确定相邻两帧彩色图像中特征点之间的距离误差,距离误差用于表征相邻两帧彩色图像中同一特征点投射至世界坐标系后投射点之间的距离差异。

对应相邻两帧彩色图像(相邻时刻采集得到)中的同一特征点,将两帧彩色图像中的特征点投射至世界坐标系后,得到的投射点应该相互重合(因为对应物体表面的同一个点)。因此本申请实施例中,计算机设备将相邻两帧彩色图像中同一特征点投射至世界坐标系,从而基于投射点之间的距离确定拍摄相邻两帧图像时待标定深度相机的位姿变化情况。

在一种可能的实施方式中,对于相邻的第i帧彩色图像(与第i帧深度图像对应)以及第j帧彩色图像(与第j帧深度图像对应),计算机设备通过光流跟踪,对第i帧彩色图像和第j帧彩色图像中的特征点进行匹配,得到两帧彩色图像之间的特征点对。其中,每个特征点对包含属于第i帧彩色图像中的第一特征点以及属于第j帧彩色图像中的第二特征点。

由于提取到的特征点位于像素坐标系,因此计算机设备需要进一步将特征点由像素坐标系变换至世界坐标系。可选的,计算机设备利用深度图像的深度信息,特征点由像素坐标系变换至相机坐标系,然后利用位姿变换矩阵(即外参矩阵)由相机坐标系变换为世界坐标系。

在一种可能的实施方式中,计算机设备基于第i帧深度图像,确定特征点对中第一特征点在相机坐标系下第一相机坐标,并基于第j帧深度图像,确定特征点对中第二特征点在相机坐标系下的第二相机坐标。

示意性的,相机坐标系与像素坐标系中坐标点之间的转换关系如图5所示。对于深度图像中的坐标点p(xc,yc,zc),计算机设备可以通过深度相机模组与rgb相机模组之间的变换矩阵t,得到彩色图像中对应像素点的深度d(d=zc)。基于图5所示的相似关系,坐标点p与彩色图像中特征点p之间的坐标转换关系可以表示为:

其中,kr为rgb相机的内参矩阵,x、y为彩色图像中特征点p的坐标。

相应的,计算机设备利用第i帧深度图像中的深度信息,确定出第一特征点的深度后,即可利用第一特征点在第i帧彩色图像中的坐标以及rgb相机模组的内参矩阵,通过上述坐标转换关系确定出第一特征点在相机坐标系下的第一相机坐标。类似的,计算机设备采用相同的方式,确定出第二特征点在相机坐标系下的第二相机坐标。

确定出特征点在相机坐标下的坐标后,计算机设备通过第i帧彩色图像对应的第i位姿变换矩阵,将第一相机坐标转换为第一世界坐标,通过第j帧彩色图像对应的第j位姿变换矩阵,将第二相机坐标转换为第二世界坐标。其中,第i位姿变换矩阵是处于拍摄第i帧彩色图像的位姿状态时,对相机坐标系和世界坐标系进行变换时采用的外参矩阵;第j位姿变换矩阵是处于拍摄第j帧彩色图像的位姿状态时,对相机坐标系和世界坐标系进行变换时采用的外参矩阵。

进一步的,计算机设备基于第一世界坐标和第二世界坐标,确定第一特征点和第二特征点之间的距离误差。后续优化位姿变换矩阵过程中,即以最小化距离误差为目标。

可选的,该距离误差可以为第一世界坐标和第二世界坐标之间的l2范数距离,本实施例对此不作限定。

示意性的,第i帧彩色图像和第j帧彩色图像中匹配特征点投射至世界坐标系的过程如图6所示,匹配特征点之间的距离误差可以表示为:

其中,c(i,j)为第i帧彩色图像和第j帧彩色图像中特征点对的集合,tiw为第i位姿变换矩阵,第j位姿变换矩阵,pi,k为相机坐标系下,第i帧彩色图像中第k个特征点的坐标,pj,l为相机坐标系下,第j帧彩色图像中第l个特征点的坐标。

三、确定相邻两帧彩色图像中像素点之间的光度误差,光度误差用于表征目标环境中同一点在相邻两帧彩色图像中对应像素点之间的光度差异。

在光度不变的假设下,两帧彩色图像中,对应像素点的光度应该保持一致,因此本实施例中,计算机设备还可以确定目标环境中的点在相邻两帧彩色图像中对应的两个像素点,从根据两个像素点的光度确定光度误差,以便后续以光度误差为依据进行位姿变化矩阵优化。在一种可能的实施方式中,本步骤可以包括如下步骤:

一、确定目标环境中同一点在相邻两帧彩色图像中对应的第一像素点和第二像素点。

在一种可能的实施方式中,当相邻两帧彩色图像为第i帧彩色图像和第j帧彩色图像时,计算机设备确定第i帧彩色图像和第j帧彩色图像中,具有相同世界坐标的第一像素点和第二像素点。

二、基于第一像素点的灰度值和第二像素点的灰度值,确定第一像素点和第二像素点之间的光度误差。

进一步的,计算机设备从彩色图像中分别获取第一像素点和第二像素点各自对应的灰度值,从而将两个像素点之间灰度值的差值确定为光度误差。对于相邻两帧彩色图像,计算机设备重复执行上述过程,从而将各个像素点对对应的光度误差和确定为相邻两帧彩色图像的光度误差。

示意性的,相邻两帧彩色图像的光度误差可以表示为:

其中,π为rgb相机模组的内参矩阵,di,k为第i帧彩色图像中第k个像素点在相机坐标系下的坐标,tiw第i位姿变换矩阵,用于将世界坐标系变换为拍摄第j帧彩色图像时的相机坐标系,ii用于第i帧彩色图像中像素点的光度,ij用于第j帧彩色图像中像素点的光度。

三、通过最小化距离误差和光度误差,确定深度相机采集相邻两帧图像时的位姿变化矩阵。

为了提高确定出的位姿变化矩阵的准确性,以提高后续构建得到的目标环境点云的质量,本申请实施例中,计算机设备基于距离误差以及光度误差进行位置变化矩阵优化,从而确定深度相机采集相邻两者图像时的位姿变化矩阵。

其中,计算机设备以最小化距离误差和光度误差为目标,对不同采集时刻的位姿变化矩阵进行优化。

步骤201c,基于彩色图像、深度图像以及位姿变化情况,构建目标环境对应的目标环境点云。

在一种可能的实施方式中,确定出不同时刻下深度相机的位姿变化情况(即位姿变化矩阵)后,计算机设备基于同一时刻下的彩色图像、深度图像以及位姿变化矩阵进行点云构建。通过对不同时刻对应的点云进行点云融合,即可得到目标环境对应的目标环境点云。

本实施例中,计算机设备通过对相邻两帧彩色图像中的特征点进行匹配,确定匹配特征点之间的距离误差,通过确定相邻两帧彩色图像中像素点之间的光度误差,从而以距离误差和光度误差作为位姿变化矩阵的优化依据,提高构建目标环境点云过程中确定出的位姿变化矩阵的准确性,有助于提高目标环境点云的点云质量,进而提高后续基于目标环境点云进行外参标定的准确性。

为了提高点云配准的准确性和效率,计算机设备采用两段式点云配准。在一种可能的实施方式中,计算机设备对待配准环境点云和目标环境点云进行第一配准,得到待标定深度相机对应的中间变换矩阵;进一步的,基于中间变换矩阵,计算机设备对待配准环境点云和目标环境点云进行第二配准,得到待标定深度相机对应的目标变换矩阵。

其中,第二配准的配准精度高于第一配准的配准精度,即利用目标变换矩阵对待配准环境点云变换后,变换后待配准环境点云与目标环境点云的匹配度,高于利用中间变换矩阵对待配准环境点云变换后,变换后待配准环境点云与目标环境点云的匹配度。

下面采用示意性的实施例分别对第一配准以及第二配准的过程进行说明。

请参考图7,其示出了本申请一个示例性实施例提供的点云配准过程的流程图,该过程可以包括如下步骤(步骤701至703为粗配准过程,步骤704至707为精配准过程):

步骤701,确定待配准环境点云中的采样点。

由于待配准环境点云中包含大量点,若对各个点均进行配准,运算量过大,因此计算机设备需要从待配准点云中选取部分采样点进行配准。

在一种可能的实施方式中,为了避免选取的采样点过于集中,计算机设备在选取采样点时,需要确保采样点之间的距离(比如欧式距离)大于距离阈值。

可选的,若待配准环境点云中的点过多时,计算机设备还可以先对待配准环境点云进行下采样处理,本实施例对此不作限定。

步骤702,基于采样点的快速点特征直方图(fastpointfeaturehistograms,fpfh)特征,确定目标环境点云中采样点对应的目标点,目标点与采样点具有相似的fpfh特征。

在一种可能的实施方式中,计算机设备通过调用点云库(pointcloudlibrary,pcl)库,确定采样点的fpfh特征,从而基于该fpfh特征,从目标环境点云中查找与采样点具有相似fpfh特征的目标点,作为采样点粗配准时的参考点。

可选的,若目标环境点云中存在至少两个与采样点相似的候选点,计算机设备从中随机选取一个作为目标点。

步骤703,通过最小化采样点与目标点之间的距离,得到待标定深度相机对应的中间变换矩阵。

在一种可能的实施方式中,计算机初始化变换矩阵,并通过该变换矩阵对采样点进行变换(旋转平移)。进一步的,计算机设备计算变换后采样点与目标点之间的距离(比如欧式距离),从而基于该距离反向调整变换矩阵,以缩小变换后采样点与目标点之间的距离,直至满足收敛条件,并将满足收敛条件时的变换矩阵确定为中间变换矩阵。

可选的,在粗配准过程中,计算机设备可以使用huber罚函数对粗配准性能进行评价,从而降低异常采样点对粗配准造成的影响。

由于粗配准过程中可能会进行下采样,导致部分特征点丢失,且基于fpfh特征进行相似点匹配的误差较大,因此本实施例中,完成粗配准后,计算机设备需要在粗配准结果的基础上,进一步进行精配准。

步骤704,基于中间变换矩阵,将待配准环境点云中的待配准点变换至目标环境点云的坐标系。

在一种可能的实施方式中,计算机设备基于粗配准得到的中间变换矩阵,将待配准环境点云中的各个待配准点变换至目标环境点云所在的坐标系。需要注意的时,此处并非仅对采样点进行变换,而是对待配准点云中的各个待配准点均进行变换。

步骤705,对于变换后的各个待配准点,从目标环境点云中,确定与变换后待配准点对应的两个最近邻点,两个最近邻点是目标环境点云中与待配准点之间距离最小的两个点。

假设深度相机向上运动,通过点到点之间的距离确定匹配点时,将匹配到靠上的点,但是实际上深度相机向上运动,因此正确的匹配点应该是靠下的点。因此为了进一步提高精配准的准确性,本实施例中,对于变换后的各个待配准点,计算机设备并非基于点到点之间的距离进行精配准,而是基于点到直线的距离进行精配准。相应的,计算机设备进行精配准时,通过计算待配准点与目标环境点云中各点之间的距离,确定距离最近的两个最近邻点。

示意性的,如图8所示,sref为目标环境点云,sobj为待配准点云,对于待配准点云pj,目标环境点云中与pj距离最近的两个最近邻点分别为pi和pi+1。

步骤706,基于待配准点至两个最近邻点之间连线的距离,确定待配准点的配准误差。

进一步的,计算机设备将待配准点与最近邻点之间连线的距离确定为待配准点的配准误差,从而对各个待配准点的配准误差进行累加,得到待配准点云与目标环境点云之间的配准误差。示意性的,该配准误差可以表示为:

其中,pj为待配准点,pi为最近邻点,v(i)为两个最近邻点之间连线的法向量,ti为目标变换矩阵,且ti目标变换矩阵的初始为中间变换矩阵。

步骤707,通过最小化配准误差,得到待标定深度相机对应的目标变换矩阵。

进一步的,计算机设备通过调整中间变换矩阵,以最小化配准误差,从而在配准误差满足误差收敛条件时,将调整后的中间变换矩阵确定为目标变换矩阵。

本实施例中,计算机设备首先基于采样点对待配准点云和目标环境点云进行粗配准,然后在粗配准结果基础上,进一步对待配准点云和目标环境点云进行精配准,得到目标变换矩阵,既能够提高点云配准的准确性,又能够提高点云匹配的速率。

此外,本实施例中,在精配准过程中,计算机设备采用待配准点与最近邻点之间连线的距离作为配准误差,而非采用点到点之间的距离作为配准误差,进一步提高了精配准的准确性,并有助于提高算法的收敛速度,加快点云配准速度。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图9,其示出了本申请一个实施例提供的多深度相机的标定装置的结构框图。该装置具有实现上述方法实施例中由计算机设备执行的功能,该功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图9所示,该装置可以包括:

第一构建模块901,用于构建目标环境对应的目标环境点云;

第二构建模块902,用于基于各个待标定深度相机在所述目标环境中采集到的图像,构建各个所述待标定深度相机对应的待配准环境点云;

配准模块903,用于对所述待配准环境点云和所述目标环境点云进行点云配准,得到各个所述待标定深度相机对应的目标变换矩阵,所述目标变换矩阵用于表示从所述待配准环境点云变换至所述目标环境点云的变换方式;

标定模块904,用于基于各个所述待标定深度相机对应的所述目标变换矩阵,对各个所述待标定深度相机进行标定。

可选的,所述配准模块903,包括:

粗配准单元,用于对所述待配准环境点云和所述目标环境点云进行第一配准,得到所述待标定深度相机对应的中间变换矩阵;

精配准单元,用于基于所述中间变换矩阵,对所述待配准环境点云和所述目标环境点云进行第二配准,得到所述待标定深度相机对应的所述目标变换矩阵,所述第二配准的配准精度高于所述第一配准的配准精度。

可选的,所述精配准单元,具体用于:

基于所述中间变换矩阵,将所述待配准环境点云中的待配准点变换至所述目标环境点云的坐标系;

对于变换后的各个所述待配准点,从所述目标环境点云中,确定与变换后所述待配准点对应的两个最近邻点,所述两个最近邻点是所述目标环境点云中与所述待配准点之间距离最小的两个点;

基于所述待配准点至所述两个最近邻点之间连线的距离,确定所述待配准点的配准误差;

通过最小化所述配准误差,得到所述待标定深度相机对应的所述目标变换矩阵。

可选的,所述粗配准单元,具体用于:

确定所述待配准环境点云中的采样点;

基于所述采样点的fpfh特征,确定所述目标环境点云中所述采样点对应的目标点,所述目标点与所述采样点具有相似的fpfh特征;

通过最小化所述采样点与所述目标点之间的距离,得到所述待标定深度相机对应的所述中间变换矩阵。

可选的,所述第一构建模块901,包括:

图像获取单元,用于获取深度相机在所述目标环境中采集到的彩色图像和深度图像,所述彩色图像和所述深度图像由所述深度相机在运动过程中采集得到;

位姿确定单元,用于基于所述彩色图像和所述深度图像,确定所述深度相机在运动过程中的位姿变化情况;

构建单元,用于基于所述彩色图像、所述深度图像以及所述位姿变化情况,构建所述目标环境对应的所述目标环境点云。

可选的,所述位姿确定单元,用于:

确定各帧所述彩色图像中的特征点;

确定相邻两帧彩色图像中特征点之间的距离误差,所述距离误差用于表征相邻两帧彩色图像中同一特征点投射至世界坐标系后投射点之间的距离差异;

确定相邻两帧彩色图像中像素点之间的光度误差,所述光度误差用于表征所述目标环境中同一点在相邻两帧彩色图像中对应像素点之间的光度差异;

通过最小化所述距离误差和所述光度误差,确定所述深度相机采集相邻两帧图像时的位姿变化矩阵。

可选的,相邻两帧彩色图像为第i帧彩色图像和第j帧彩色图像,且第i帧彩色图像与第i帧深度图像对应,第j帧彩色图像与第j帧深度图像对应;

确定相邻两帧彩色图像中特征点之间的距离误差时,所述位置确定单元,具体用于:

通过光流跟踪,对所述第i帧彩色图像与所述第j帧彩色图像中的特征点进行匹配,得到特征点对;

基于所述第i帧深度图像确定所述特征点对中第一特征点在相机坐标系下的第一相机坐标,基于所述第j帧深度图像确定所述特征点对中第二特征点在相机坐标系下的第二相机坐标;

通过所述第i帧彩色图像对应的第i位姿变换矩阵,将所述第一相机坐标转换为第一世界坐标,通过所述第j帧彩色图像对应的第j位姿变换矩阵,将所述第二相机坐标转换为第二世界坐标;

基于所述第一世界坐标和所述第二世界坐标,确定所述第一特征点和所述第二特征点之间的所述距离误差。

可选的,确定相邻两帧彩色图像中像素点之间的光度误差时,所述位置确定单元,具体用于:

确定所述目标环境中同一点在相邻两帧彩色图像中对应的第一像素点和第二像素点;

基于所述第一像素点的灰度值和所述第二像素点的灰度值,确定所述第一像素点和所述第二像素点之间的所述光度误差。

可选的,所述标定模块904,具体用于:

获取第一待标定深度相机对应的第一目标变换矩阵,以及第二待标定深度相机对应的第二目标变换矩阵;

基于所述第二目标变换矩阵的逆矩阵以及所述第一目标变换矩阵,标定所述第一待标定深度相机至所述第二待标定深度相机的外参。

综上所述,本申请实施例中,通过构建目标环境对应的目标环境点云,并基于待标定深度相机在目标环境中采集到的图像构建待配准环境点云,从而以目标环境点云为基准,对待配准环境点云和目标环境点云进行点云配准,得到从待配准点云变换至目标环境点云所采用的目标变换矩阵,进而基于各个待标定深度相机各自对应的目标变换矩阵,实现多深度相机的标定;整个标定过程中,无需使用深度相机以外的标定物和标准人体模型,简化了相机标定流程并扩大了相机标定的适用场景;同时,不同待标定深度相机均以目标环境点云为基准进行标定,保证了标定时参考对象的一致性,提高了标定准确性。

请参考图10,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。该计算机设备1000可以是智能手机、平板电脑、可穿戴式设备等。本申请中的计算机设备1000可以包括一个或多个如下部件:处理器1010和存储器1020。

处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个计算机设备1000内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行计算机设备1400的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)、神经网络处理器(neural-networkprocessingunit,npu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责触摸显示屏1030所需要显示的内容的渲染和绘制;npu用于实现人工智能(artificialintelligence,ai)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块芯片进行实现。

存储器1020可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory,rom)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备1000的使用所创建的数据等。

可选的,计算机设备1000设置有通信组件,该通信组件用于与深度相机进行通信,从而获取深度相机采集到的图像。

除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备1000的结构并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备1000中还包括显示屏、输入输出组件、电源等部件,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上各个实施例所述的多深度相机的标定方法。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的多深度相机的标定方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1