本发明涉及机器人视觉技术领域,尤其是涉及一种相机外参标定方法、设备及系统。
背景技术:
现有技术中的相机外参标定方法,通常利用标志器来标定相机坐标系相对于所选参照物体上坐标系的旋转矩阵和平移矩阵,需要多次拍摄标志器,获取多个角度的标志器图像,利用这些图像进行相机外参标定。然而这种方法只在相机能够看到标志器的前提下才能实现,当相机无法看到标志器时,显然不能直接标定出相机坐标系相对于标志器上坐标系的外参矩阵;当前较为广泛采用的解决办法是借助平面镜,让相机拍摄到标志器在平面镜中所成的像,并将平面镜移动到多个不同的位置和姿态(位姿),通过再次进行拍摄的方法计算出相机的外参矩阵。
当前在借助平面镜实现相机外参标定这个问题上,平面镜的数量以及平面镜相对相机摆放的位姿是否需要预先确定,主要呈现出两种不同的方法:一种是,在不同的位姿下摆放5块平面镜,平面镜相对相机的位姿不需要预先确定;另一种是,在不同的位姿下摆放3块平面镜,平面镜相对相机的位姿需要预先确定。其中,前一种方式,要求摆放的平面镜数目较多,与其对应的工作量也较大;后一种方式,因为相机坐标系的原点即光心位置未知,导致平面镜相对于相机的位姿难以精确测得。
技术实现要素:
有鉴于此,本发明的目的在于提供一种相机外参标定方法、设备及系统,能够有效提高相机外参标定的效率和精确度。
第一方面,本发明实施例提供了一种相机外参标定方法,所述方法包括:
当平面镜旋转多次至不同的角度时,采集相机多次拍摄的标定图像;所述标定图像为标志器在所述平面镜中所成的图像;
将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程;
根据所述平面镜处于两个不同角度下时所在平面的交线,与对应的镜面标志点之间的位置关系,建立第二方程;所述镜面标志点为所述标志器中对应的实际标志点在所述平面镜中成的像;
根据所述标定图像中的标志点在像素坐标系中的坐标,确定所述镜面标志点在所述相机坐标系中的坐标;
联立所述第一方程和所述第二方程,并根据所述镜面标志点在相机坐标系中的坐标,求得所述旋转矩阵和平移矩阵。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述标志器包括预先设置的至少4个实际标志点,所述标志器坐标系是以所述实际标志点所组成的图案的中心为原点建立的。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程为:
pi=r·lpi+t
其中,i为所述标志器中的第i个实际标志点,i=1,2,……,n;pi为所述实际标志点在相机坐标系下的坐标,lpi为所述实际标志点在标志器坐标系下的坐标,r为所述实际标志点所在的标志器坐标系转换到相机坐标系的旋转矩阵,t为所述实际标志点所在的标志器坐标系转换到相机坐标系的平移矩阵。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程的步骤之后,所述方法还包括:
将所述标志器中的实际标志点和对应的镜面标志点在所述相机坐标系中的坐标,与所述平面镜和所述相机之间的位置关系:
代入所述第一方程,得到:
其中,
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述根据两个不同角度下的所述平面镜所在平面的交线,与所述的两个不同角度下的平面镜中对应的镜面标志点之间的位置关系,建立第二方程的步骤,包括:
两个不同角度下的所述平面镜所在平面的交线,与所述两个不同角度下的平面镜中对应的镜面标志点的连线垂直,建立所述第二方程为:
其中,
cmm'为所述两个不同角度下的平面镜所在平面的交线:
cmm'=nm×nm'
其中,nm和nm'分别为两个不同角度下的平面镜所在平面的法向量。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述像素坐标系是以所述标定图像的中心为原点建立的。
结合第一方面的第一种或第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述根据所述镜面标志点在所述相机坐标系下的相对位置关系,以及所述标定图像中的标志点在像素坐标系中的坐标,得到所述镜面标志点在所述相机坐标系中的坐标的步骤,包括:
根据预先设置的所述实际标志点在所述标志器坐标系中的相对位置关系,得到所述镜面标志点在所述相机坐标系下的相对位置关系;
根据所建立的像素坐标系,得到所述标定图像中的标志点在像素坐标系中的坐标;
根据所述镜面标志点在所述相机坐标系下的相对位置关系,以及所述标定图像中的标志点在像素坐标系中的坐标,通过pnp算法求得所述镜面标志点在所述相机坐标系中的坐标。
第二方面,本发明实施例还提供一种相机外参标定设备,所述设备包括存储器、处理器和数据接口;
所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤;
所述数据接口,用于传输标定图像至所述处理器,由所述处理器对所述标定图像进行处理。
第三方面,本发明实施例还提供一种相机外参标定系统,所述系统包括:平面镜、标志器、机器人、相机、旋转台和第二方面中所述的相机外参标定设备;
所述标志器和相机安装于所述机器人上;所述平面镜安装于所述旋转台上;所述旋转台用于所述平面镜旋转多次至不同的角度,以使所述相机多次拍摄所述标志器在平面镜中所成的标定图像,对相机外参数进行标定。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,所述旋转台包括至少3个预设的旋转角度。
本发明实施例带来了以下有益效果:
本发明实施例提供的相机外参标定方法、设备及系统,首先采集了相机多次拍摄的标志器在不同角度下的平面镜中所成的标定图像;然后将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程,根据两个不同角度下的平面镜所在平面的交线,以及平面镜中对应的镜面标志点之间的位置关系,建立第二方程;由镜面标志点在相机坐标系下的相对位置关系,以及标定图像中的标志点在像素坐标系中的坐标,得到镜面标志点在相机坐标系中的坐标;通过联立第一方程和第二方程,并根据镜面标志点在相机坐标系中的坐标,求得旋转矩阵和平移矩阵。能够有效提高相机外参标定的效率和精确度。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种相机外参标定方法的流程图;
图2为本发明实施例提供的一种相机外参标定方法的原理图;
图3为本发明实施例提供的一种相机外参标定方法的原理图;
图4为本发明实施例提供的一种相机外参标定设备的结构框图;
图5为本发明实施例提供的一种相机外参标定系统的结构示意图。
图标:
1-机器人;2-相机;3-标志器;4-旋转台;5-平面镜。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在借助平面镜实现相机外参标定这个问题上,平面镜的数量以及平面镜相对相机摆放的位姿是否需要预先确定,主要呈现出两种不同的方法:一种是,在不同的位姿下摆放5块平面镜,平面镜相对相机的位姿不需要预先确定;另一种是,在不同的位姿下摆放3块平面镜,平面镜相对相机的位姿需要预先确定。其中,前一种方式,要求摆放的平面镜数目较多,与其对应的工作量也较大;后一种方式,因为相机坐标系的原点即光心位置未知,导致平面镜相对于相机的位姿难以精确测得。基于此,本发明实施例提供的一种相机外参标定方法、设备及系统,操作简单,并且能够有效提高相机外参标定的效率和精确度。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种相机外参标定方法进行详细介绍。
实施例一
本实施例提供了一种相机外参标定方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。以下对本实施例进行详细介绍。
图1示出了本发明实施例所提供的一种相机外参标定方法的流程图,如图1所示,该方法包括如下步骤:
s100,当平面镜旋转多次至不同的角度时,采集相机多次拍摄的标定图像;所述标定图像为标志器在所述平面镜中所成的图像。
平面镜至少旋转至3个不同的角度,平面镜每旋转一次至不同的角度,相机则拍摄标志器在平面镜中所成的像为标定图像,至少包括3张标定图像。
s102,将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程。
标志器包括预先设置的至少4个实际标志点,标志器坐标系是以实际标志点所组成的图案的中心为原点建立的,由此可以得到实际标志点在标志器坐标系中的坐标,以及各实际标志点在标志器坐标系中的相互位置关系。
参照图2所示,图2给出了本发明实施例提供的一种相机外参标定方法的原理图。可选的,假设pi为实际标志点在相机坐标系下的坐标,lpi为实际标志点在标志器坐标系下的坐标,将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程:
pi=r·lpi+t(1)
其中,i为标志器中的第i个实际标志点,i=1,2,……,n;r为实际标志点所在的标志器坐标系转换到相机坐标系的旋转矩阵,t为实际标志点所在的标志器坐标系转换到相机坐标系的平移矩阵。
另外,假设平面镜所在的平面为πm,实际标志点在平面镜中所成的像为镜面标志点;
标志器中的实际标志点和对应的镜面标志点在相机坐标系中的坐标,与平面镜和相机之间存在以下关系:
将此关系代入第一方程,得到:
s104,根据所述平面镜处于两个不同角度下时所在平面的交线,与对应的镜面标志点之间的位置关系,建立第二方程。
参照图3所示,图3给出了本发明实施例提供的另一种相机外参标定方法的原理图。假设两个不同角度下的平面镜所在平面πm和πm'的交线为cmm',根据两个相交平面的性质,可以得到交线与两个不同角度下的平面镜中对应的镜面标志点的连线垂直,由此建立第二方程为:
其中,i=1,2,……,n;
cmm'=nm×nm'(5)
其中,nm和nm'分别为两个不同角度下的平面镜所在平面πm和πm'的法向量。
s106,根据所述标定图像中的标志点在像素坐标系中的坐标,确定所述镜面标志点在所述相机坐标系中的坐标。
像素坐标系是以标定图像的中心为原点建立的,由此,可以得到标定图像中的标志点在像素坐标系中的坐标。
根据预先设置的实际标志点在标志器坐标系中的相对位置关系,以及标定图像中的标志点在像素坐标系中的坐标,通过pnp算法可以求得镜面标志点在相机坐标系中的坐标。可选的,pnp算法可以通过opencv中的solvepnp函数实现。
s108,联立第一方程和第二方程,并根据镜面标志点在相机坐标系中的坐标,求得旋转矩阵和平移矩阵。
根据第二方程以及求得的各镜面标志点在相机坐标系中的坐标,可以计算得到cmm',此外,因为两个不同角度下的平面镜所在平面的交线为cmm'与两个不同角度下的平面镜所在平面的法向量垂直,则有:
从而求得法向量nm。
当平面镜旋转至k个不同的角度时,每两个相邻角度下的平面镜共形成k-1个交线,共有k-1个形如式(6)的方程,将k-1个方程合并为:
sj·nj=0(7)
其中,sj=(cj1cj2...cj(j-1)cjj...cj(k-1))t,sj是一个(k-1)*3的矩阵。
进而求得各个角度下的平面镜所在平面的法向量nj。
当有n个实际标志点和旋转k个不同角度的平面镜时,将计算出的镜面标志点在相机坐标系中的坐标
az=b(8)
其中,
其中,r1、r2和r3为旋转矩阵r的第一、二、三列。
由此可知,式(8)中有12+k个位置参数和3*n*k个方程,当k≥3,且3*n*k≥12+k时,对式(8)进行求解得到多组符合条件的解。
再通过对多组解进行重投影,得到误差最小的解为满足条件的解。从而求得旋转矩阵和平移矩阵,实现相机外参标定。可选的,对多组解进行重投影可以通过opencv中的projectpoints函数实现。
本发明实施例提供的相机外参标定方法,首先采集了相机多次拍摄的标志器在不同角度下的平面镜中所成的标定图像;然后将标志器中的实际标志点在标志器坐标系中的坐标转换到相机坐标系,并建立由旋转矩阵和平移矩阵表示的第一方程,根据两个不同角度下的平面镜所在平面的交线,以及平面镜中对应的镜面标志点之间的位置关系,建立第二方程;由镜面标志点在相机坐标系下的相对位置关系,以及标定图像中的标志点在像素坐标系中的坐标,得到镜面标志点在相机坐标系中的坐标;通过联立第一方程和第二方程,并根据镜面标志点在相机坐标系中的坐标,求得旋转矩阵和平移矩阵。能够有效提高相机外参标定的效率和精确度。
实施例二
在上述实施例的基础上,本公开实施例还提供了一种相机外参标定设备,如图4所示,该相机外参标定设备包括处理器110、与处理器110连接的存储器120、数据接口130等。
存储器120可用于存储软件程序,如本发明实施例中的相机外参标定方法对应的程序指令,以及处理器110通过运行存储在存储器120的软件程序,从而执行对应的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据控制系统的使用所创建的数据(比如所建立的第一方程和第二方程)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是相机外参标定设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行各种功能和处理数据,从而对相机外参标定系统进行整体监控。可选的,处理器110可包括一个或多个处理单元。
数据接口130可以包括usb接口、串口、红外线接口或蓝牙接口,用于传输标定图像至处理器110,由处理器110对标定图像进行数据处理。
进一步地,本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述相机外参标定方法。
实施例三
在上述实施例的基础上,本公开实施例还提供了一种相机外参标定系统,如图5所示,该系统包括:机器人1、相机2、标志器3、旋转台4、平面镜5和上述实施例所提供的相机外参标定设备;
标志器3和相机2安装于机器人1上;平面镜5安装于旋转台4上;旋转台4用于平面镜5旋转多次至不同的角度,以使相机2多次拍摄标志器在平面镜5中所成的标定图像。
可选的,相机外参标定设备可以设置在相机内部,用于对相机外参数进行标定。
旋转台包括至少三个预设的旋转角度,以使平面镜5至少旋转至三个不同的角度。
机器人1包括相互连接的底座和机身。标志器3固定安装在底座上;相机2为2d相机,固定安装在机身外壁的中间部位,用于拍摄标志器3在平面镜5中所成的标定图像;
可选的,相机2和标志器3可以固定安装在机器人1的同侧,以便于相机2能够完整拍摄到标志器3在平面镜5中所成的标定图像。
标志器3上包括至少四个预先设置的标志点,标志点处于标志器3的同一平面上。
可选的,标志器3可以为矩形,标志器3上的各个标志点可以组成简单的几何图形。可选的,标志器3中包含四个标志点,标志点可以为圆形,四个标志点组成一个矩形,以便于以标志点组成的矩形中心为原心建立坐标系,并获得各个标志点圆心在自身坐标系中的坐标。
可选的,标志器3还可以是黑白棋盘格,标志点为黑白矩形相交处的角点,可以以黑白棋盘格的中心为原点建立标志器坐标系,并获得各角点在标志器坐标系中的坐标。
以机器人底座的中心为原心建立机器人坐标系,在安装标志器时,机器人坐标系与标志器坐标系的位置关系已预先确定,又根据上述实施例提供的相机外参标定方法,求得标志器坐标系相对于相机坐标系的旋转矩阵和平移矩阵,可以得到相机坐标系相对于机器人坐标系的变换矩阵,从而将相机坐标系转换到机器人坐标系,可以实现机器人的精确导航。
本发明实施例提供的相机外参标定系统,与上述实施例提供的相机外参标定方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“内部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。