多深度相机外部参数标定方法、装置及存储介质
技术领域
本发明涉及数据处理领域,具体涉及一种多深度相机外部参数标定方法、装置及存储介质。
背景技术
全息体素视频(Volumetric Video)是一种全息视频类型,一般由多个RGBD(红绿蓝深度)相机(简称深度相机)环绕被摄对象,并同时对被摄对象进行拍摄,以获取被摄对象各个角度的色彩和深度信息,然后再基于这些色彩和深度信息融合成三维立体视频,这种三维立体视频即称为全息视频。要将多个深度相机之间的彩色和深度信息融合到一起,以生成完整的全息视频,不但需要深度相机各自的相机内部参数(简称相机内参),还需相互之间精准的相机外部参数。这里的相机内参指的是相机所拍摄到的图像中的像素与相机坐标系的3D点之间的关系,而相机外部参数则指的是相机坐标系内的3D点和公共世界坐标系之间的关系。
现有的多个深度相机的外部参数标定方法通常会通过两两相机标定得到,但是在对现有技术的研究和实践过程中,本发明的发明人发现,现有的标定方法受深度相机位置影响较大,比如,有3台深度相机,编号为1、2、3,由于深度相机1和深度相机3在正对面,无法同时拍摄标定板的同一面,所以,在标定时,就需要先标定深度相机1和深度相机2,再标定深度相机2和深度相机3,然后利用这两次标定的结果计算深度相机1和深度相机3的外部参数,也就是说,此时深度相机1和深度相机3所标定的结果会累积两次标定的误差。可见,在一些场景下,现有方案较容易产生累积误差,导致外部参数标定的准确不高,进而影响后续全息视频的生成效果。
发明内容
本发明实施例提供一种可准确对深度相机的外部参数进行标定的多深度相机外部参数标定方法及装置,以解决现有的多深度相机的外部参数标定的准确性较差的技术问题。
本发明实施例提供一种多深度相机外部参数标定方法,其包括:
使用多个深度相机拍摄同一标定板,所述标定板包括正面和反面,所述正面的图像与反面的图像为镜面关系,所述标定板的厚度小于设定值;
对所述深度相机所拍摄到的标定板图像进行图像特征点提取;其中位于所述标定板正反面相同位置的特征点作为同一特征点;
将设定的深度相机作为坐标系原点的已标定深度相机;
获取所述已标定深度相机的图像特征点,并根据所述已标定深度相机的内参以及图像特征点的二维坐标,计算所述已标定深度相机的图像特征点的三维坐标;
基于所述已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机;并获取具有相同图像特征点的未标定深度相机的图像特征点的三维坐标;
根据所述已标定深度相机的图像特征点的三维坐标、所述已标定深度相机的外参以及所述具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定所述具有相同图像特征点的未标定深度相机的外参,并将设定了外参的深度相机设置为已标定深度相机;返回确定具有相同图像特征点的未标定深度相机的步骤,直至所有所述深度相机均为已标定深度相机;
基于所述已标定深度相机的外参,计算每个所述深度相机的邻近区域中的所有深度相机中任意两个深度相机之间的图像特征点误差值;
使用高斯牛顿法,通过对所述深度相机的外参进行修正,调整所述邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件;以及
将所述修正后的外参设置为所述深度相机的标定外参。
在本发明所述的多深度相机外部参数标定方法中,通过以下公式计算所述已标定深度相机的图像特征点的三维坐标:
其中x、y、z为所述已标定深度相机的图像特征点的三维坐标;u、v为所述已标定深度相机的图像特征点二维坐标,d为所述已标定深度相机的图像特征点的深度值,f为所述已标定深度相机的镜头焦距,cx为所述已标定深度相机的光心横坐标,cy为所述已标定深度相机的光心纵坐标。
在本发明所述的多深度相机外部参数标定方法中,通过以下公式设定具有相同图像特征点的未标定深度相机的外参:
其中R1为所述未标定深度相机相对所述已标定深度相机的相对旋转矩阵,T1为所述未标定深度相机相对所述已标定深度相机的相对平移向量,Rw为所述已标定深度相机相对坐标系原点的已标定旋转矩阵,Tw为所述已标定深度相机相对坐标系原点的已标定平移向量;Rdes为所述未标定深度相机相对坐标系原点的未标定旋转矩阵,Tdes为所述未标定深度相机相对坐标系原点的未标定平移向量。
在本发明所述的多深度相机外部参数标定方法中,所述计算每个所述深度相机的邻近区域中的所有深度相机中任意两个深度相机之间的图像特征点误差值的步骤包括:
获取每个所述深度相机的邻近区域中的所有深度相机;
通过以下公式计算每个邻近区域中任意两个深度相机之间的图像特征点误差能量:
其中P1为第一深度相机的第一预定特征点的三维坐标,P2为与所述第一深度相机处于同一邻近区域的第二深度相机的第二预定特征点的三维坐标,Edist为第一预定特征点和第二预定特征点的欧拉距离,P1norm为第一预定特征点的单位法线,P2norm为第一预定特征点的单位法线,W1 、W2为噪声常数,E为第一深度相机和第二深度相机的图像特征点误差能量;
将与第一深度相机的第一预定特征点的图像特征点误差能量最小的第二深度相机的第二预定特征点作为第一预定特征点的匹配特征点;
通过以下公式计算第一深度相机的第一预定特征点与第二深度相机的匹配特征点的图像特征点误差值:
其中P
1为第一深度相机的第一预定特征点的三维坐标,P
3为与所述第一深度相机处于
同一邻近区域的第二深度相机的匹配特征点,
为第一预定特征点的单位法线的转置
向量。
在本发明所述的多深度相机外部参数标定方法中,通过以下公式,对所述深度相机的外参进行修正,调整所述邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件:
其中cost_m为邻近区域中任意两个深度相机的匹配特征点的图像特征点误差值,deriver_m为对应的图像特征点误差值关于旋转向量和平移向量的导数,△为所述深度相机的外参的调整量。
在本发明所述的多深度相机外部参数标定方法中,所述调整所述邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件的步骤包括:
调整所述邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和小于第一设定值或调整次数大于第二设定值。
在本发明所述的多深度相机外部参数标定方法中,所述方法还包括:
获取所述第一深度相机中与所述第一预定特征点最近的三个图像特征点;
基于获取的三个图像特征点确定一单位平面;
将通过所述第一预定特征点且垂直于所述单元平面的直线作为所述第一预定特征点的单位法线。
在本发明所述的多深度相机外部参数标定方法中,所述对所述深度相机所拍摄到的标定板图像进行图像特征点提取;其中位于所述标定板正反面相同位置的特征点作为同一特征点的步骤包括:
根据所述标定板正面的图像与反面的图像对标定图像组进行识别,以筛选出包含所述标定板的图像,得到标定板图像;
使用标定板对应的特征点检测算法对得到的标定板图像进行特征点提取,并检测出每个特征点的图像坐标;
将位于所述标定板正面的特征点的图像坐标,与位于所述标定板反面的特征点的图像坐标一致的特征点作为同一特征点。
本发明实施例还提供一种多深度外部参数标定装置,其包括:
拍摄模块,用于使用多个深度相机拍摄同一标定板,所述标定板包括正面和反面,所述正面的图像与反面的图像为镜面关系,所述标定板的厚度小于设定值;
特征点提取模块,用于对所述深度相机所拍摄到的标定板图像进行图像特征点提取;其中位于所述标定板正反面相同位置的特征点作为同一特征点;
已标定深度相机设定模块,用于将设定的深度相机作为坐标系原点的已标定深度相机;
已标定三维坐标计算模块,用于获取所述已标定深度相机的图像特征点,并根据所述已标定深度相机的内参以及图像特征点的二维坐标,计算所述已标定深度相机的图像特征点的三维坐标;
未标定三维坐标获取模块,用于基于所述已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机;并获取具有相同图像特征点的未标定深度相机的图像特征点的三维坐标;
外参标定模块,用于根据所述已标定深度相机的图像特征点的三维坐标、所述已标定深度相机的外参以及所述具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定所述具有相同图像特征点的未标定深度相机的外参,并将设定了外参的深度相机设置为已标定深度相机;返回确定具有相同图像特征点的未标定深度相机的步骤,直至所有所述深度相机均为已标定深度相机;
误差值计算模块,用于基于所述已标定深度相机的外参,计算每个所述深度相机的邻近区域中的所有深度相机中任意两个深度相机之间的图像特征点误差值;
修正模块,用于使用高斯牛顿法,通过对所述深度相机的外参进行修正,调整所述邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件;以及
外参标定模块,用于将所述修正后的外参设置为所述深度相机的标定外参。
本发明实施例还提供一种计算机可读存储介质,其内存储有处理器可执行指令,所述指令由一个或一个以上处理器加载,以执行上述的多深度相机外部参数标定方法。
相较于现有技术,本发明的多深度相机外部参数标定方法及装置通过设定同一标定板的正反面相同位置的特征点作为同一特征点,并通过最小化图像特征点误差值对深度相机的外参进行修正,提高了多深度相机的外部参数标定的准确性;有效解决了现有的多深度相机的外部参数标定的准确性较差的技术问题。
附图说明
图1a为本发明的多深度相机外部参数标定方法的一实施例的流程图;
图1b为本发明的多深度相机外部参数标定方法对应的多深度相机系统的结构示意图;
图1c为本发明的多深度相机外部参数标定方法对应的标定板的正反面图像示意图;
图2为本发明的多深度相机外部参数标定方法的一实施例的步骤S102的流程图;
图3为本发明的多深度相机外部参数标定方法的一实施例的步骤S107的流程图;
图4为本发明的多深度相机外部参数标定装置的一实施例的结构示意图;
图5为本发明的多深度相机外部参数标定方法及装置的具体实施例的实施流程图;
图6为本发明的多深度相机外部参数标定装置所在的电子设备的工作环境结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的多深度相机外部参数标定方法及标定装置可设置在任何的电子设备中,用于对多深度摄像机系统的多个深度摄像机进行外部参数的标定操作。该电子设备包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。该多深度相机外部参数标定装置优选为多深度相机系统,可对多个深度相机的外部参数进行有效修正,提高了多深度相机系统的输出的画面质量以及降低了多深度相机系统的画面处理的资源消耗。
请参照图1a,图1a为本发明的多深度相机外部参数标定方法的一实施例的流程图。本实施例的多深度相机外部参数标定方法可使用上述的电子设备进行实施,本实施例的多深度相机外部参数标定方法包括:
步骤S101,使用多个深度相机拍摄同一标定板,标定板包括正面和反面,正面的图像与反面的图像为镜面关系,标定板的厚度小于设定值;
步骤S102,对深度相机所拍摄到的标定板图像进行图像特征点提取;其中位于标定板正反面相同位置的特征点作为同一特征点;
步骤S103,将设定的深度相机作为坐标系原点的已标定深度相机;
步骤S104,获取已标定深度相机的图像特征点,并根据已标定深度相机的内参以及图像特征点的二维坐标,计算已标定深度相机的图像特征点的三维坐标;
步骤S105,基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机;并获取具有相同图像特征点的未标定深度相机的图像特征点的三维坐标;
步骤S106,根据已标定深度相机的图像特征点的三维坐标、已标定深度相机的外参以及具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定具有相同图像特征点的未标定深度相机的外参,并将设定了外参的深度相机设置为已标定深度相机;返回步骤S105,直至所有所述深度相机均为已标定深度相机;
步骤S107,基于已标定深度相机的外参,计算每个深度相机的邻近区域中的所有深度相机中任意两个深度相机之间的图像特征点误差值;
步骤S108,使用高斯牛顿法,通过对深度相机的外参进行修正,调整邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件;
步骤S109,将修正后的外参设置为深度相机的标定外参。
下面详细描述本发明实施例的多深度相机外部参数标定方法的各步骤的具体流程。
在步骤S101中,电子设备(如多深度相机系统)使用多个深度相机拍摄同一标定板,从而获取与深度相机对应的多个标定板图像。
该深度相机可为测量参照物的颜色(红绿蓝等)以及深度的相机。具体的,多个深度相机可以不同的拍摄高度以及拍摄角度拍摄同一参照物,以得到多张不同高度和角度的参照物照片,以对多个深度相机进行外部参数的标定。
如图1b中的多深度相机系统包括第一深度相机、第二深度相机、第三深度相机、第四深度相机、……、第九深度相机以及第十深度相机。上述十个深度相机11的拍摄角度均不同,这里设定十个深度相机11均匀的分布在标定板12的周围,十个深度相机11的拍摄高度可以设置相同或不同。
标定板12包括正面和反面,标定板的正面图像和反面图像为镜面关系,这里设定标定板正反面相同位置的特征点作为同一特征点,具体请参照图1c,其中标定板的正面图像的图像特征点A1、B1、C1与标定板的反面图像的图像特征点A2、B2、C2为同一特征点。为了进一步减少标定板的正面图像和反面图像的同一特征点的差异,标定板的厚度应小于设定值,该设定值一般为1.5-2.5毫米。
由于对标定板的正面图像和反面图像进行了同一特征点设置,这样使得任意两个深度相机均可拍摄到多个相同的图像特征点,以便对两个深度相机之间的外参(外部参数)差异进行计算,而不需要通过另外的深度相机的相机图像来间接计算两个深度相机之间的外参差异。
在步骤S102中,电子设备对步骤S101中深度相机所拍摄的标定板图像进行图像特征点提取,这里的图像特征点优选为不同颜色图像的交界处,以便对图像特征点进行准确定位,因此标定板图像优选为棋盘格图像。
具体请参照图2,图2为本发明的多深度相机外部参数标定方法的一实施例的步骤S102的流程图。该步骤S102包括:
步骤S201,电子设备根据标定板正面的图像与反面的图像对标定图像进行识别,以筛选出包含标定板的图像,得到标定板图像;
步骤S202,电子设备使用标定板对应的特征点检测算法对得到的标定板图像进行特征点提取,并检测出每个特征点的图像坐标;
步骤S203,电子设备将位于标定板正面的特征点的图像坐标,与位于标定板反面的特征点的图像坐标一致的特征点作为同一特征点。
在步骤S103中,电子设备将设定的深度相机作为坐标系原点的已标定深度相机,即设定坐标系原点的深度相机的外部参数,以便基于该已标定深度相机的外部参数来标定其他未标定深度相机的外部参数。这里已标定深度相机的外部参数包括用于表示已标定深度相机旋转量的已标定旋转矩阵以及用于表示已标定相机平移量的已标定平移向量。
在步骤S104中,电子设备获取已标定深度相机的标定板图像的图像特征点,并根据已标定深度相机的内参以及图像特征点的二维坐标,计算已标定深度相机的图像特征点的三维坐标。
具体的,可通过以下公式计算已标定深度相机的图像特征点的三维坐标:
其中x、y、z为已标定深度相机的图像特征点的三维坐标;u、v为已标定深度相机的图像特征点的二维坐标,d为已标定深度相机的图像特征点的深度值,f为已标定深度相机的镜头焦距,cx为已标定深度相机的光心横坐标,cy为已标定深度相机的光心纵坐标。
在步骤S105中,电子设备基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机,并根据该未标定深度相机的内参以及相同图像特征点的二维坐标,获取该未标定深度相机的相同图像特征点的三维坐标,具体计算公式如步骤S104中所示。
在步骤S106中,电子设备根据步骤S104获取的已标定深度相机的图像特征点的三维坐标、步骤S103获取的已标定深度相机的外参、以及步骤S105获取的具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定具有相同图像特征点的未标定深度相机的外参。
首先电子设备基于同一系列图像特征点在已标定深度相机和未标定深度相机的三维坐标,计算未标定深度相机相对已标定深度相机的相对旋转矩阵R1以及相对平移向量T1,即该图像特征点在已标定深度相机对应的坐标系转换到未标定深度相机对应的坐标系的旋转变换量以及平移变换量。
随后通过以下公式来计算具有相同图像特征点的未标定深度相机的外参:
其中R1为未标定深度相机相对已标定深度相机的相对旋转矩阵,T1为未标定深度相机相对已标定深度相机的相对平移向量,Rw为已标定深度相机相对坐标系原点的已标定旋转矩阵,Tw为已标定深度相机相对坐标系原点的已标定平移向量;Rdes为未标定深度相机相对坐标系原点的未标定旋转矩阵,Tdes为未标定深度相机相对坐标系原点的未标定平移向量,*表示矩阵乘法。
这样即设定好了未标定深度相机的外参,随后电子设备将设定好外参的未标定深度相机设定为已标定深度相机。
随后返回步骤S105,再次基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机,并根据该未标定深度相机的内参以及相同图像特征点的二维坐标,获取该未标定深度相机的相同图像特征点的三维坐标,并重复执行步骤S106直至所有的深度相机均为已标定深度相机。
在步骤S107中,电子设备基于步骤S106获取的已标定深度相机的外参,计算每个深度相机的邻近区域中所有深度相机中任意两个深度相机之间的图像特征点误差值。
具体请参照图3,图3为本发明的多深度相机外部参数标定方法的一实施例的步骤S107的流程图。该步骤S107包括:
步骤S301,电子设备获取每个深度相机的邻近区域中的所有深度相机。即获取每个深度相机的已标定旋转矩阵,并基于深度相机的已标定旋转矩阵、和其他深度相机相对该深度相机的相对旋转矩阵计算其他深度相机与该深度相机的旋转向量。该旋转向量为一三维向量,随后对该三维向量取模,当该三维向量的模值小于设定值时(即深度相机与其他深度相机的光轴夹角小于设定值时),认为其他深度相机位于该设定深度相机的邻近区域中。这样即可计算出每个深度相机的邻近区域的所有深度相机。
步骤S302,电子设备通过以下公式计算每个邻近区域中任意两个深度相机之间的图像特征点误差能量,其中第一深度相机和第二深度相机为任意两个深度相机,第一深度相机包括多个第一预定特征点,第二深度相机包括多个第二预定特征点,由于第一深度相机和第二深度相机拍摄的标定板图像的是相同的,因此第一预定特征点和第二预定特征点的也是一一匹配对应的。
其中P1为第一深度相机的第一预定特征点的三维坐标,P2为与所述第一深度相机处于同一邻近区域的第二深度相机的第二预定特征点的三维坐标,Edist为第一预定特征点和第二预定特征点的欧拉距离,P1norm为第一预定特征点的单位法线,P2norm为第一预定特征点的单位法线,W1 、W2为噪声常数,E为第一深度相机和第二深度相机的图像特征点误差能量。
通过以上公式可计算第一深度相机的第一预定特征点与第二深度相机的第二预定特征点之间的图像特征点误差能量。
具体的,可通过以下步骤获取第一预定特征点的单位法线。
一、获取第一深度相机中与第一预定特征点最近的三个图像特征点;
二、基于获取的三个图像特征点确定一单位平面;
三、将通过第一预定特征点且垂直于单位平面的直线作为第一预定特征点的单位法线。
步骤S303,电子设备将第一深度相机的第一预定特征点的图像特征点误差能量最小的第二深度相机的第二预定特征点作为第一预定特征点的匹配特征点。如一个第二预定特征点成为多个第一预定特征点的匹配特征点,则将该第二预定特征点设定为具有最小的图像特征点误差能量的第一预定特征点的匹配特征点,同时将该第二预定特征点从待匹配特征点中删除。
这样可将第一深度相机的所有第一预定特征点和第二深度相机的所有第二预定特征点进行匹配操作。
步骤S304,电子设备通过以下公式计算第一深度相机的第一预定特征点和第二深度相机的匹配特征点的图像特征点误差值:
其中P1为第一深度相机的第一预定特征点的三维坐标,P3为与所述第一深度相机处于同一邻近区域的第二深度相机的匹配特征点,为第一预定特征点的单位法线的转置向量。
将第一深度相机的所有第一预定特征点与第二深度相机的匹配特征点的图像特征点误差值进行累加即为第一深度相机和第二深度相机之间的图像特征点误差值costall。
在步骤S108中,电子设备使用高斯牛顿法,通过对深度相机的外参进行修正,调整邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件。
这里的预设条件可为误差值和小于第一设定值或调整次数大于第二设定值。
具体的,可通过以下公式计算深度相机的外参调整量:
其中costall_m为邻近区域中任意两个深度相机的匹配特征点的图像特征点误差值,deriverall_m为对应的图像特征点误差值关于旋转向量和平移向量的导数;△为深度相机的外参的调整量。
其中costall_1至costall_m为m个匹配特征点的图像特征点误差值,deriverall_1至deriverall_m为m个图像特征点误差值关于旋转向量和平移向量的导数。通过不断调整△使得每个邻近区域中的所有图像特征点误差值和小于第一设定值,或调整次数大于第二设定值。
这样即完成了所有深度相机的外参修正过程。
在步骤S109中,电子设备将步骤S108中获取的修正后的外参设置为深度相机的标定外参。
这样即完成了多深度相机系统的深度相机外部参数的标定过程。
本实施例的多深度相机外部参数标定方法通过设定同一标定板的正反面相同位置的特征点作为同一特征点,并通过最小化图像特征点误差值对深度相机的外参进行修正,提高了多深度相机的外部参数标定的准确性。
本发明还提供一种多深度相机外部参数标定装置,请参照图4,图4为本发明的多深度相机外部参数标定装置的一实施例的结构示意图。本实施例的多深度相机外部参数标定装置可使用上述的多深度相机外部参数标定方法进行实施。
本实施例的多深度相机外部参数标定装置40包括拍摄模块41、特征点提取模块42、已标定深度相机设定模块43、已标定三维坐标计算模块44、未标定三维坐标获取模块45、外参标定模块46、误差值计算模块47、修正模块48以及外参标定模块49。
拍摄模块用41于使用多个深度相机拍摄同一标定板,标定板包括正面和反面,正面的图像与反面的图像为镜面关系,标定板的厚度小于设定值;特征点提取模块42用于对深度相机所拍摄到的标定板图像进行图像特征点提取;其中位于标定板正反面相同位置的特征点作为同一特征点;已标定深度相机设定模块43用于将设定的深度相机作为坐标系原点的已标定深度相机;已标定三维坐标计算模块44用于获取已标定深度相机的图像特征点,并根据已标定深度相机的内参以及图像特征点的二维坐标,计算已标定深度相机的图像特征点的三维坐标;未标定三维坐标获取模块45用于基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机;并获取具有相同图像特征点的未标定深度相机的图像特征点的三维坐标;外参标定模块46用于根据已标定深度相机的图像特征点的三维坐标、已标定深度相机的外参以及具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定具有相同图像特征点的未标定深度相机的外参,并将设定了外参的深度相机设置为已标定深度相机;返回确定具有相同图像特征点的未标定深度相机的步骤,直至所有深度相机均为已标定深度相机;误差值计算模块47用于基于已标定深度相机的外参,计算每个深度相机的邻近区域中的所有深度相机中任意两个深度相机之间的图像特征点误差值;修正模块48用于使用高斯牛顿法,通过对深度相机的外参进行修正,调整邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件;;外参标定模块49用于将修正后的外参设置为深度相机的标定外参。
本实施例的多深度相机外部参数标定装置40使用时,首先拍摄模块41使用多个深度相机拍摄同一标定板,从而获取与深度相机对应的多个标定板图像。
标定板包括正面和反面,标定板的正面图像和反面图像为镜面关系,这里设定标定板正反面相同位置的特征点作为同一特征点。为了进一步减少标定板的正面图像和反面图像的同一特征点的差异,标定板的厚度应小于设定值,该设定值一般为1.5-2.5毫米。
由于对标定板的正面图像和反面图像进行了同一特征点设置,这样使得任意两个深度相机均可拍摄到多个相同的图像特征点,以便对两个深度相机之间的外参(外部参数)差异进行计算,而不需要通过另外的深度相机的相机图像来间接计算两个深度相机之间的外参差异。
随后特征点提取模块42对深度相机所拍摄的标定板图像进行图像特征点提取,这里的图像特征点优选为不同颜色图像的交界处,以便对图像特征点进行准确定位,因此标定板图像优选为棋盘格图像。
然后已标定深度相机设定模块43将设定的深度相机作为坐标系原点的已标定深度相机,即设定坐标系原点的深度相机的外部参数,以便基于该已标定深度相机的外部参数来标定其他未标定深度相机的外部参数。这里已标定深度相机的外部参数包括用于表示已标定深度相机旋转量的已标定旋转矩阵以及用于表示已标定相机平移量的已标定平移向量。
随后已标定三维坐标计算模块44获取已标定深度相机的标定板图像的图像特征点,并根据已标定深度相机的内参以及图像特征点的二维坐标,计算已标定深度相机的图像特征点的三维坐标。
然后未标定三维坐标获取模块45基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机,并根据该未标定深度相机的内参以及相同图像特征点的二维坐标,获取该未标定深度相机的相同图像特征点的三维坐标。
随后外参标定模块46根据已标定深度相机的图像特征点的三维坐标、已标定深度相机的外参、以及具有相同图像特征点的未标定深度相机的图像特征点的三维坐标,设定具有相同图像特征点的未标定深度相机的外参。
随后外参标定模块46将设定好外参的未标定深度相机设定为已标定深度相机。
随后返回未标定三维坐标获取模块45,再次基于已标定深度相机的图像特征点确定具有相同图像特征点的未标定深度相机,并根据该未标定深度相机的内参以及相同图像特征点的二维坐标,获取该未标定深度相机的相同图像特征点的三维坐标,外参标定模块46重复将设定好外参的未标定深度相机设定为已标定深度相机,直至所有的深度相机均为已标定深度相机。
然后误差值计算模块47基于已标定深度相机的外参,计算每个深度相机的邻近区域中所有深度相机中任意两个深度相机之间的图像特征点误差值。
随后修正模块48使用高斯牛顿法,通过对深度相机的外参进行修正,调整邻近区域中的所有图像特征点误差值组成的向量以及图像特征点误差值的梯度值组成的向量,以使得所有图像特征点误差值和达到预设条件。
这里的预设条件可为误差值和小于第一设定值或调整次数大于第二设定值。这样即完成了所有深度相机的外参修正过程。
最后外参标定模块49将获取的修正后的外参设置为深度相机的标定外参。
这样即完成了多深度相机系统40的深度相机外部参数的标定过程。
本实施例的多深度相机外部参数标定装置的具体工作原理与上述的多深度相机外部参数标定方法的实施例的具体工作原理相同或相似,具体请参照上述多深度相机外部参数标定方法的实施例的详细描述。
本实施例的多深度相机外部参数标定装置通过设定同一标定板的正反面相同位置的特征点作为同一特征点,并通过最小化图像特征点误差值对深度相机的外参进行修正,提高了多深度相机的外部参数标定的准确性。
下面通过一具体实施例说明本发明的多深度相机外部参数标定方法及装置的工作原理。请参照图5,图5为本发明的多深度相机外部参数标定方法及装置的具体实施例的实施流程图。
本实施例的多深度外部参数标定方法及装置可使用上述的多深度相机系统进行实施,该多深度相机系统的多深度相机的外部参数标定流程包括:
步骤S501,将棋盘格标定板放入拍摄区域,所有的深度相机同时拍摄照片;随后调整标定板的位置,拍摄多组照片。
采集的标定板图像组数越多越好,至少要保证所有图像中,每个深度相机都有拍摄到标定板,可将标定板设置在所有深度相机中间,不断调整旋转标定板进行拍摄。
步骤S502,对各组照片进行标定板检测,提取特征点;并根据标定板的正方面标记对特征点进行排序。
可使用中文文字标记标定板的正反面,特征点排序的目的是将正反面相同位置的特征点坐标对齐,保证同名特征点一一对应即可。特征点的三维坐标获取可分为两个步骤:
1、输入深度相机采集的红外图像,使用棋盘格标定板对应的棋盘格特征点检测算法,检测出每个特征点的图像坐标,可用(u,v)表示。
2、根据深度相机的内参f、cx、cy(分别为焦距、光心x坐标,光心y坐标)和当前图像(u,v)位置对应的深度值d,计算得到3D坐标(x,y,z)。
步骤S503,将任意一个深度相机设为世界坐标原点,并标记该相机为“已标定”,其他相机标定为“未标定”。
由于多深度相机标定是确定所有深度相机空间中的位置和姿态,而位置和姿态是相对的,因此需要选取一个深度相机作为世界坐标系的原点。
步骤S504,对于每组深度相机,判断他们是否在同一组照片中,同时拍摄到棋盘格标定板。如存在同时拍摄到的情况,提取这些特征点坐标进行标定计算,并将标定后的深度相机标记为“已标定”。
具体的,首先收集所有的2个深度相机同时拍摄到的同名特征点坐标(即同时拍摄到标定板图像中的特征点);得到了很多匹配的三维特征点,再使用“RANSAC求解三维仿射变换”算法,分解出“已标定”相机到“未标定”相机的外参,如用R1,T1表示;最终再结合已标定相机相对世界坐标原点的外参(如用Rw、Tw表示),计算出“未标定”相机相对世界坐标原点的外参(如用Rdes、Tdes表示);这样一台“未标定”相机就标定完成了。
步骤S505,再依次在“未标定”相机中依次选择相机,对“未标定”深度相机进行标定计算,直至所有深度相机都标记为“已标定”。最终所有深度相机都获得了一个初始的标定结果。
步骤S506,对深度相机的初始标定结果进行迭代优化,以获取更加精确的标定结果。
具体的, 首先有深度相机1和深度相机2,它们之间的相对外参为R12、T12,为深度相机1的旋转矩阵的转置,R2为深度相机2的旋转矩阵,T1、T2为深度相机1和深度相机2的平移向量。
其次设定一阈值th1来判断深度相机是否邻近,比如确定深度相机的光轴夹角在60度以内为邻近,则可将th1的值设置为:60/180*3.14=1.0467。
以深度相机1和深度相机2为例,R12为深度相机1和深度相机2的旋转矩阵,使用“罗格里格旋转公式”将R12转换为旋转向量r12,r12为一个三维向量,对r12取模,即计算| r12|,随后通过| r12|是否小于th1来确定深度相机1和深度相机2是否邻近。
随后基于深度相机1中的特征点的三维坐标以及深度相机2中的特征点的三维坐标计算深度相机1的图像特征点和深度相机2的图像特征点之间的图像特征点误差能量;并进一步计算深度相机1和深度相机2之间的图像特征点误差值。
最后,获取所有两两深度相机之间的图像特征点误差值costall_m,以及所有两两深度相机之间的图像特征点误差值关于旋转向量和平移向量的导数deriverall_m;使用高斯牛顿法对上述的误差值和导数进行不断调整,使得误差值缩小。通过不断减少误差值,使得该误差值小于设定阈值或循环达到一定次数,即停止调整。具体的高斯牛顿法的求解公式请参照下述公式:
其中costall_m为邻近区域中任意两个深度相机的匹配特征点的图像特征点误差值,deriverall_m为对应的图像特征点误差值关于旋转向量和平移向量的导数;△为深度相机的外参的调整量。
假设有N个相机,△为长度为6N的列向量(每个深度相机的外参均使用三维旋转向量和三维平移向量表示),其中r为所有图像特征点误差值组成的列向量,J为所有导数组成的列向量。
这样即完成了本实施例的多深度外部参数标定方法及装置的多深度相机的外部参数标定流程。
本发明的多深度相机外部参数标定方法及装置通过设定同一标定板的正反面相同位置的特征点作为同一特征点,正反面的同一特征点可以视为空间中的同一位置,提供了更强的标定约束,减少了累积误差,使得标定时拍摄的照片更少。
直接提取利用特征点的三维坐标,相对于传统的二维图像标定方法,结果更加准确,同时特征点的三维坐标是基于二维图像纹理获取,因此纹理上也会有很好的对齐效果。
通过最小化图像特征点误差值对深度相机的外参进行修正,提高了多深度相机的外部参数标定的准确性;有效解决了现有的多深度相机的外部参数标定的准确性较差的技术问题。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
图6和随后的讨论提供了对实现本发明所述的多深度相机外部参数标定装置所在的电子设备的工作环境的简短、概括的描述。图6的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备612包括但不限于可穿戴设备、头戴设备、医疗健康平台、个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图6图示了包括本发明的多深度相机外部参数标定装置中的一个或多个实施例的电子设备612的实例。在一种配置中,电子设备612包括至少一个处理单元616和存储器618。根据电子设备的确切配置和类型,存储器618可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图6中由虚线614图示。
在其他实施例中,电子设备612可以包括附加特征和/或功能。例如,设备612还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图6中由存储装置620图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置620中。存储装置620还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器618中由例如处理单元616执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器618和存储装置620是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备612访问的任何其他介质。任意这样的计算机存储介质可以是电子设备612的一部分。
电子设备612还可以包括允许电子设备612与其他设备通信的通信连接626。通信连接626可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备612连接到其他电子设备的其他接口。通信连接626可以包括有线连接或无线连接。通信连接626可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备612可以包括输入设备624,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备612中也可以包括输出设备622,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备624和输出设备622可以经由有线连接、无线连接或其任意组合连接到电子设备612。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备612的输入设备624或输出设备622。
电子设备612的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一个实施例中,电子设备612的组件可以通过网络互连。例如,存储器618可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络628访问的电子设备630可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备612可以访问电子设备630并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备612可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备612处执行并且一些指令可以在电子设备630处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以实施例揭露如上,实施例前的序号仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。