本申请实施例涉及摄像头标定领域,尤其涉及一种多摄像头标定方法、装置、设备及存储介质。
背景技术:
相机标定是为了确定立体空间中所在的点与摄像机拍摄图像内所对应的像素点之间的对应关系,一般是为了计算出相机内参及相机外参的矩阵。
目前常用的方法一般是棋盘标定方法,其方法将棋盘打印在纸张上,利用摄像头对棋盘拍摄若干的照片,然后对拍摄的图片进行检测棋盘,最终返回相机的内参和外参。
但由于棋盘标定方法是对单个摄像头进行标定,只能在一次校准中使用单一棋盘,导致在存在多摄像头需要进行标定时,需要对这些摄像头逐个进行标定,降低了标定效率。
技术实现要素:
本申请实施例提供一种多摄像头标定方法、装置、设备及存储介质,以提高摄像头标定效率。
在第一方面,本申请实施例提供了一种多摄像头标定方法,包括:
确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;
基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;
基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;
基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
进一步的,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵,包括:
获取多个摄像头的内部参数矩阵;
获取多个摄像头拍摄的在不同放置位置的第一目标纸张的第一图像数据,所述第一目标纸张的每个放置位置均位于两个或以上的摄像头的可视区域中;
基于所述第一图像数据,将多个摄像头的内部参数矩阵和第一目标纸张的尺寸数据输入apriltag,由apriltag输出多个摄像头对于多个第一目标纸张的第一外部参数矩阵。
进一步的,所述基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系,包括:
根据公式ta-c=ta-b*(tc-b)t将每个摄像头的第一外部参数矩阵转化为相对于其他摄像头的第二外部参数矩阵,其中ta-b表示父节点到第一目标纸张的第一外部参数矩阵,tc-b表示子节点到第一目标纸张的第一外部参数矩阵,ta-c表示父节点到子节点的第二外部参数矩阵;
基于每个摄像头相对于其他摄像头的第二外部参数矩阵确定摄像头之间的映射关系。
进一步的,所述基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵,包括:
以固定位置的第二目标纸张为原点建立世界坐标系;
获取其中一个摄像头拍摄第二目标纸张的第二图像数据;
基于所述第二图像数据,计算所述摄像头对于第二目标纸张的第三外部参数矩阵。
进一步的,所述基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵,包括:
基于所述第三外部参数矩阵和所述映射关系,分别将每个摄像头的第一外部参数转化为相对于第二目标纸张的第三外部参数矩阵。
进一步的,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵之后,还包括:
以摄像头id为键值并以第一外部参数矩阵为内容创建map。
进一步的,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵,包括:
基于ros消息发布机制,确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵。
在第二方面,本申请实施例提供了一种多摄像头标定装置,包括第一参数获取模块、映射关系确定模块、第二参数获取模块和第三参数获取模块,其中:
第一参数获取模块,用于确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;
映射关系确定模块,用于基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;
第二参数获取模块,用于基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;
第三参数获取模块,用于基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
在第三方面,本申请实施例提供了一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的多摄像头标定方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的多摄像头标定方法。
本申请实施例通过计算不同位置的第一目标纸张确定的多个摄像头的第一外部参数矩阵,并基于第一外部参数确定每个摄像头相对于其他摄像头的第二外部参数矩阵从而建立摄像头之间的映射关系,并在得到其中一个摄像头相对于固定位置的第二目标纸张的第三外部参数矩阵后,基于该映射关系可确定其他摄像头相对于第二目标纸张的第三外部参数矩阵,从而得到所有摄像头基于同于坐标系下的内部参数和外部参数,并提高了多个摄像头标定的效率。
附图说明
图1是本申请实施例提供的一种多摄像头标定方法的流程图;
图2是本申请实施例提供的另一种多摄像头标定方法的流程图;
图3是本申请实施例提供的一种多摄像头标定装置的结构示意图;
图4是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种多摄像头标定方法的流程图,本申请实施例提供的多摄像头标定方法可以由多摄像头标定装置来执行,该多摄像头标定装置可以通过硬件和/或软件的方式实现。并集成在计算机设备中。
下述以多摄像头标定装置执行多摄像头标定方法为例进行描述。参考图1,该多摄像头标定方法包括:
s101:确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵。
其中,内部参数矩阵是为了方便计算图像中的像素点坐标(x,y)与物体相对于摄像头焦点的坐标(x,y,z)所建立的映射映射关系,为了保持其线性关系,将其齐次化。在本实施例中,内部参数矩阵采用opencv中的定义,包含fx、fy、u和v,其中fx=摄像头焦距*沿x轴的图像中每个像素代表的实际物理长度(单位mm),fy同理,u和v表示图像中心坐标与图像原点(opencv中定义图像左上角为原点)坐标的像素差。具体的,内部参数矩阵为:
进一步的,由于内部参数矩阵仅能计算出物体相对于摄像头焦点的坐标,而多个摄像头对同一物体所得到的坐标都是基于其本身,各不相同。为了保持稳定,本实施例定义一个固定坐标系,也就是虚拟一个摄像头将它固定在某一位置,以这个摄像头的坐标系定义物体的具体坐标,并将其作为世界坐标系。根据欧几里得空间定义,空间中的一个点(x1,y1,z1)移动到另一个点(x2,y2,z2)可以通过旋转及平移实现。设pc是p在相机坐标系坐标,pw是其在世界坐标系下的坐标,可以使用一个旋转矩阵r和一个平移向量t,将pc变换为pw:pc=r*pw t(其中r是3*3的旋转矩阵,t是3*1的平移向量)。同样为了保持其线性关系,将其齐次化,得外部参数矩阵:
示例性的,相机的内部参数矩阵一般在出厂时已确定,可通过调用相机的sdk文件获取相机的内部参数矩阵。
进一步的,将多个第一目标纸张放置在不同的位置中,并且保证每张第一目标纸张均位于两个或以上的摄像头可视区域中,同时,每个摄像头均可拍摄到至少一张第一目标纸张。分别获取每个摄像头拍摄的图片数据和深度数据,并基于摄像头的内部参数矩阵,调用外部参数计算工具获取摄像头对于多个第一目标纸张的外部参数矩阵。
s102:基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系。
示例性的,在获取每个摄像头对于多个第一目标纸张的外部参数矩阵后,将基于同一第一目标纸张之间的摄像头的第一外部参数矩阵换算成基于同一摄像头的第二外部参数矩阵。
具体的,对于同一第一目标纸张,确定其中一个摄像头为所有摄像头的父节点(例如将第一个检测到第一目标纸张的摄像头的父节点),其他摄像头为子节点。进一步的,将所有检测到同一第一目标纸张的摄像头关联,即每个摄像头至少有一个关联节点,并所有摄像头能形成一条链,相互关联。然后基于检测到同一第一目标纸张的摄像头之间进行第一外部参数矩阵的转化,将第一外部参数矩阵转化为从一个摄像头到另一个摄像头的第二外部参数矩阵。进一步的,在计算出各摄像头之间的第二外部参数矩阵后,将第二外部参数矩阵转化成所有子节点相对于同一个父节点的第二外部参数矩阵。
进一步的,在确定所有子节点相对于同一个父节点的第二外部参数矩阵后,将所有子节点相对于同一个父节点的第二外部参数矩阵确定为摄像头之间的映射关系。
s103:基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵。
示例性的,将第二目标纸张放置在一个固定位置中,且该固定位置的坐标已知,同时该固定位置位于至少一个摄像头的可视区域中。
进一步的,获取其中一个可检测到第二目标纸张的摄像头拍摄的图片数据和深度数据,并通过外部参数计算工具计算该摄像头对于第二目标纸张的第三外部参数矩阵。
s104:基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
示例性的,在计算出其中一个摄像头的第三外部参数矩阵后,基于摄像头之间的映射关系,将其他所有摄像头映射到第二目标纸张所在的坐标系中,从而计算得出其他摄像头对于第二目标纸张的第三外部参数矩阵,此时,所有摄像头的外部参数矩阵均基于第二目标纸张所在的坐标系。
上述,通过计算不同位置的第一目标纸张确定的多个摄像头的第一外部参数矩阵,并基于第一外部参数确定每个摄像头相对于其他摄像头的第二外部参数矩阵从而建立摄像头之间的映射关系,并在得到其中一个摄像头相对于固定位置的第二目标纸张的第三外部参数矩阵后,基于该映射关系可确定其他摄像头相对于第二目标纸张的第三外部参数矩阵,从而得到所有摄像头基于同于坐标系下的内部参数和外部参数,并提高了多个摄像头标定的效率。
图2为本申请实施例提供的另一种多摄像头标定方法的流程图,该多摄像头标定方法是对上述多摄像头标定方法的具体化。参考图2,该多摄像头标定方法包括:
s201:获取多个摄像头的内部参数矩阵。
具体的,本实施例利用深度摄像头作为检测摄像头,如利用realsensed435作为检测摄像头,由于realsens出厂时便已经计算出其内部参数矩阵,可以通过realsensesdk直接调用摄像头的内部参数矩阵。假设默认参数经检查有误,可通过intel提供的深度摄像头校准工具进行了内部标定,从而获得摄像头内部参数矩阵。另外,还可利用张正友棋盘标定法计算摄像头内部参数矩阵(包括fx、fy、u和v)。
s202:获取多个摄像头拍摄的在不同放置位置的第一目标纸张的第一图像数据,所述第一目标纸张的每个放置位置均位于两个或以上的摄像头的可视区域中。
其中,本申请所提供的目标纸张为根据apriltag要求的编码规格(tag36h11、tag16h5)生成的apriltag目标纸张,将其原规格地打印在指定规格的纸张上(例如a4纸),形成目标纸张。
具体的,将第一目标纸张放在不同的放置位置,并且第一目标纸张的每个放置位置应保证位于两个或以上的摄像头的可视区域中,同时,保证每个摄像头均应可至少检测到一次第一目标纸张。
进一步的,获取每个摄像头拍摄第一目标纸张的第一图像数据,本申请所提供的图像数据包括图像数据和深度数据。此时,每个放置位置上的第一目标纸张均被至少两个摄像头检测到并拍摄,并且每个摄像头至少拍摄到一张第一目标纸张。
s203:基于所述第一图像数据,将多个摄像头的内部参数矩阵和第一目标纸张的尺寸数据输入apriltag,由apriltag输出多个摄像头对于多个第一目标纸张的第一外部参数矩阵。
其中,apriltag是由theaprilroboticslaboratoryattheuniversityofmichigan开发并开源的一个视觉校准系统,可用于检测目标的方向、id、相对于摄像头的位置以及摄像头的外部参数。
具体的,在确定摄像头的第一图像数据后,将每个摄像头的第一图像数据、每个摄像头的内部参数矩阵(fx、fy、u和v)、第一目标纸张的尺寸输入apriltag程序中,由apriltag对输入的数据进行处理得到摄像头对于检测到的第一目标纸张的第一外部参数矩阵(包括旋转矩阵r及偏置矩阵t),并计算旋转矩阵r及偏置矩阵t对应的转置矩阵rt及tt。
可选的,在一个实施例中,在获取第一外部参数之后,可将第一外部参数保存在map(亦称字典或dict,是键值对的集合,里面存储了若干键值,而通过键值可以获取到对应的内容)中。即在获取第一外部参数之后,还包括:以摄像头id为键值并以第一外部参数矩阵为内容创建map。
例如,假设map保存有dict={1:‘a’,2:‘b’},那么dict[1]=a,dict[2]=b,即分别通过键值1和2可确定内容a和b。假设有三个摄像头,分别对每个摄像头命名唯一的id,并确定map内键值为摄像头id,map对应的内容为对应id的摄像头在apriltag中获得的第一外部参数矩阵。通过map可提高后续第一外部参数矩阵的查找速度,提高摄像头标定效率。
可选的,在一个实施例中,多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵的确定可基于ros消息发布机制进行,即摄像头和多摄像头标定装置之间基于ros消息发布机制进行数据交互。
具体的,为了保证时间的同步及一致性,利用ros消息发布机制,将摄像头产生的图像包装成ros的sensor_msgs.msg.image类,其数据结构为{摄像头id,产生图片时的时间,图像数据(rgb和depth)},其中rgb和depth分别为图片数据和深度数据,然后利用rostopic监听工具对所有摄像头图像数据进行获取并输入到apriltag程序中进行检测,并将检测结果包装成ros的std_msgs.msg.string类,其数据结构为{摄像头id,检测图片的产生时间,检测结果r和t}。借助ros的消息发布机制,可以快速地一次性标定多个深度摄像头并获取内外参。
s204:根据公式ta-c=ta-b*(tc-b)t将每个摄像头的第一外部参数矩阵转化为相对于其他摄像头的第二外部参数矩阵。
其中,ta-b表示父节点到第一目标纸张的第一外部参数矩阵,tc-b表示子节点到第一目标纸张的第一外部参数矩阵,ta-c表示父节点到子节点的第二外部参数矩阵。
具体的,将其中一个摄像头确定为所有摄像头的父节点(例如将第一个检测到第一目标纸张的摄像头的父节点),其他摄像头为子节点。进一步的,将所有检测到同一第一目标纸张的摄像头关联,即每个摄像头至少有一个关联节点,并所有摄像头能形成一条链,相互关联。
然后根据公式ta-c=ta-b*(tc-b)t将检测到同一第一目标纸张的摄像头之间进行第一外部参数矩阵的转化,将第一外部参数矩阵转化为从一个摄像头到另一个摄像头的第二外部参数矩阵。进一步的,在计算出各摄像头之间的第二外部参数矩阵后,将第二外部参数矩阵转化成所有子节点相对于同一个父节点的第二外部参数矩阵。
进一步的,在确定所有子节点相对于同一个父节点的第二外部参数矩阵后,将所有子节点相对于同一个父节点的第二外部参数矩阵确定为摄像头之间的映射关系。
s205:基于每个摄像头相对于其他摄像头的第二外部参数矩阵确定摄像头之间的映射关系。
具体的,在计算出各摄像头之间的第二外部参数矩阵后,将第二外部参数矩阵转化成所有子节点相对于同一个父节点的第二外部参数矩阵,并将所有子节点相对于同一个父节点的第二外部参数矩阵确定为摄像头之间的映射关系。
s206:以固定位置的第二目标纸张为原点建立世界坐标系。
具体的,将第二目标纸张放置在一个固定位置,且该固定位置应该位于至少一个摄像头的可视区域中,并以该固定位置为原点,建立世界坐标系。
s207:获取其中一个摄像头拍摄第二目标纸张的第二图像数据,并基于所述第二图像数据,计算所述摄像头对于第二目标纸张的第三外部参数矩阵。
具体的,控制可检测到第二目标纸张的摄像头进行拍摄,获取第二图像数据(包括图片数据和深度数据),并将第二图像数据、该摄像头的内部参数矩阵(fx、fy、u和v)、第二目标纸张的尺寸输入apriltag程序中,由apriltag对输入的数据进行处理得到摄像头对于第二目标纸张的第二外部参数矩阵(包括旋转矩阵r及偏置矩阵t)。
s208:基于所述第三外部参数矩阵和所述映射关系,分别将每个摄像头的第一外部参数转化为相对于第二目标纸张的第三外部参数矩阵。
具体的,在计算出其中一个摄像头的第三外部参数矩阵后,基于摄像头之间的映射关系,将其他所有摄像头映射到第二目标纸张所在的坐标系中,从而计算得出其他摄像头对于第二目标纸张的第三外部参数矩阵,即将每个摄像头的第一外部参数转化为相对于第二目标纸张的第三外部参数矩阵。此时,所有摄像头的外部参数矩阵均基于第二目标纸张所在的坐标系。
例如,假设有3个摄像头,分别为c1、c2和c3,第一目标纸张为a,摄像头的外部参数矩阵为t,tc1-a代表以c1摄像头焦点为原点的坐标系移动到以a为原点的坐标系的外部参数矩阵,其中坐标系的建立可根据右手定则进行,摄像头则以深度为z轴,a的z轴则为纸张的正面垂直朝上方向。
假设某一时刻c1和c2同时检测到了a并计算出相应的r和t,以及相应的转置矩阵rt和tt,则将c1作为父节点,c2作为子节点。通过步骤s203的计算可以得到tc1-a和tc2-a,而tc1-c2可以看作向量的加法,即先将c1的坐标系通过旋转和平移移动到a,然后再从a移动到c2,即将c1到a的第一外部参数矩阵转化为c1到c2的第二外部参数矩阵的计算公式为tc1-c2=tc1-a*(tc2-a)t,从而建立了c1坐标系内的点映射到c2坐标系的点的第二外部参数矩阵。
假设在第二次检测时,c2和c3同时检测到了a并计算出相应的r和t,以及相应的转置矩阵rt和tt,则通过步骤s203的计算可以获得tc2-c3的外部参数矩阵,同理做向量的加法可以计算得到tc1-c3的第二外部参数矩阵,并将所有摄像头对应的第二外部参数矩阵确定为摄像头之间的映射关系。
进一步的,得到所有摄像头相对于其他摄像头的外参矩阵后,将a放置到空间中的某一固定位置且被至少一个摄像头检测到,以该固定位置为原点,建立的坐标系为世界坐标系w。假设检测到该点的摄像头为c1,则可计算得到摄像头c1到w的第三外部参数矩阵tc1-w,根据c1与其他摄像头之间的映射关系,可以分别计算得到其他摄像头到w的第三外部参数矩阵tc2-w和tc3-w。至此,所有摄像头图像中的点都可以基于内部参数矩阵和第三外部参数矩阵得到基于世界坐标系w的坐标。
上述,通过计算不同位置的第一目标纸张确定的多个摄像头的第一外部参数矩阵,并基于第一外部参数确定每个摄像头相对于其他摄像头的第二外部参数矩阵从而建立摄像头之间的映射关系,并在得到其中一个摄像头相对于固定位置的第二目标纸张的第三外部参数矩阵后,基于该映射关系可确定其他摄像头相对于第二目标纸张的第三外部参数矩阵,从而得到所有摄像头基于同于坐标系下的内部参数和外部参数,并提高了多个摄像头标定的效率。同时,通过利用apriltag带有的id属性,可以确定每个摄像头所检测的具体目标以保证检测目标的准确性及唯一性,并借助ros的消息发布机制,可以快速地一次性标定多个深度摄像头并获取内外参,提高摄像头标定效率。
图3为本申请实施例提供的一种多摄像头标定装置的结构示意图。参考图3,该多摄像头标定装置包括第一参数获取模块31、映射关系确定模块32、第二参数获取模块33和第三参数获取模块34。
其中,第一参数获取模块31,用于确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;
映射关系确定模块32,用于基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;
第二参数获取模块33,用于基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;
第三参数获取模块34,用于基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
上述,通过计算不同位置的第一目标纸张确定的多个摄像头的第一外部参数矩阵,并基于第一外部参数确定每个摄像头相对于其他摄像头的第二外部参数矩阵从而建立摄像头之间的映射关系,并在得到其中一个摄像头相对于固定位置的第二目标纸张的第三外部参数矩阵后,基于该映射关系可确定其他摄像头相对于第二目标纸张的第三外部参数矩阵,从而得到所有摄像头基于同于坐标系下的内部参数和外部参数,并提高了多个摄像头标定的效率。
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的多摄像头标定装置。图4是本申请实施例提供的一种计算机设备的结构示意图。参考图4,该计算机设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;所述存储器42,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如上述实施例提供的多摄像头标定方法。其中输入装置43、输出装置44、存储器42和处理器41可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的多摄像头标定方法对应的程序指令/模块(例如,多摄像头标定装置中的第一参数获取模块31、映射关系确定模块32、第二参数获取模块33和第三参数获取模块34)。存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的多摄像头标定方法。
上述提供的多摄像头标定装置和计算机设备可用于执行上述实施例提供的多摄像头标定方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的多摄像头标定方法,该多摄像头标定方法包括:确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如dram、ddrram、sram、edoram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的多摄像头标定方法,还可以执行本申请任意实施例所提供的多摄像头标定方法中的相关操作。
上述实施例中提供的多摄像头标定装置、设备及存储介质可执行本申请任意实施例所提供的多摄像头标定方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的多摄像头标定方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
1.一种多摄像头标定方法,其特征在于,包括:
确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;
基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;
基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;
基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
2.根据权利要求1所述的多摄像头标定方法,其特征在于,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵,包括:
获取多个摄像头的内部参数矩阵;
获取多个摄像头拍摄的在不同放置位置的第一目标纸张的第一图像数据,所述第一目标纸张的每个放置位置均位于两个或以上的摄像头的可视区域中;
基于所述第一图像数据,将多个摄像头的内部参数矩阵和第一目标纸张的尺寸数据输入apriltag,由apriltag输出多个摄像头对于多个第一目标纸张的第一外部参数矩阵。
3.根据权利要求1所述的多摄像头标定方法,其特征在于,所述基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系,包括:
根据公式ta-c=ta-b*(tc-b)t将每个摄像头的第一外部参数矩阵转化为相对于其他摄像头的第二外部参数矩阵,其中ta-b表示父节点到第一目标纸张的第一外部参数矩阵,tc-b表示子节点到第一目标纸张的第一外部参数矩阵,ta-c表示父节点到子节点的第二外部参数矩阵;
基于每个摄像头相对于其他摄像头的第二外部参数矩阵确定摄像头之间的映射关系。
4.根据权利要求1所述的多摄像头标定方法,其特征在于,所述基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵,包括:
以固定位置的第二目标纸张为原点建立世界坐标系;
获取其中一个摄像头拍摄第二目标纸张的第二图像数据;
基于所述第二图像数据,计算所述摄像头对于第二目标纸张的第三外部参数矩阵。
5.根据权利要求1所述的多摄像头标定方法,其特征在于,所述基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵,包括:
基于所述第三外部参数矩阵和所述映射关系,分别将每个摄像头的第一外部参数转化为相对于第二目标纸张的第三外部参数矩阵。
6.根据权利要求1-5任一项所述的多摄像头标定方法,其特征在于,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵之后,还包括:
以摄像头id为键值并以第一外部参数矩阵为内容创建map。
7.根据权利要求1-5任一项所述的多摄像头标定方法,其特征在于,所述确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵,包括:
基于ros消息发布机制,确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵。
8.一种多摄像头标定装置,其特征在于,包括第一参数获取模块、映射关系确定模块、第二参数获取模块和第三参数获取模块,其中:
第一参数获取模块,用于确定多个摄像头的内部参数矩阵以及对于多个第一目标纸张的第一外部参数矩阵;
映射关系确定模块,用于基于所述第一外部参数矩阵,确定每个摄像头对于其他摄像头的第二外部参数矩阵,并确定摄像头之间的映射关系;
第二参数获取模块,用于基于固定位置的第二目标纸张,计算检测到所述第二目标纸张的摄像头对于第二目标纸张的第三外部参数矩阵;
第三参数获取模块,用于基于所述第三外部参数矩阵和所述映射关系,确定每个摄像头对于第二目标纸张的第三外部参数矩阵。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的多摄像头标定方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的多摄像头标定方法。
技术总结