相机标定方法、装置及电子设备
技术领域
本申请涉及计算机视觉技术领域,尤其涉及一种相机标定方法、装置及电子设备。
背景技术
在计算机视觉领域,为了获得理想的三维(3D)效果,需要确定各相机之间的相对位置。现有技术中的相机标定方法,通常需借助一个标准的标定板(如标准棋格板),用双目/多目相机同时对该标定板进行多次采样,以采集到足够的样本图像。在采样样本图像时,要尽可能多地改变标定板摆放的姿态和位置,且在采样样本图像时需要一定的技巧以便采集到的样本图像更加有效,因此该种标定方法需要在专业的实验室环境来实现,标定过程时间长。
发明内容
有鉴于此,本申请提供一种新的技术方案,可以避免标定过程中的人工干预,提高相机标定的效率。
为实现上述目的,本申请提供技术方案如下:
根据本申请的第一方面,提出了一种相机标定方法,包括:
确定第一相机拍摄的第一原始图像与第二相机拍摄的第二原始图像之间相匹配的第一特征点集和第二特征点集;
基于所述第一相机的第一组外参数,将所述第一特征点集映射到参考映射面,得到第一映射点集;
从所述第二相机的第二组外参数的初始值开始,按照预设方式以预设步长调整上一次迭代得到的第二组外参数,得到设定数量的第二组外参数;
基于调整后的所述设定数量的第二组外参数,将所述第二特征点集映射到所述参考映射面,得到所述设定数量的第二映射点集;
计算所述设定数量的第二映射点集中每一个映射点与所述第一映射点集中相匹配的映射点之间的距离偏差,得到所述设定数量的偏差总和;
当基于所述设定数量的偏差总和确定需要终止迭代时,基于所述上一次迭代得到的第二组外参数、所述设定数量的偏差总和以及所述第二组外参数各自对应的预设步长,标定所述第二相机的相机外参数。
根据本申请的第二方面,提出了一种相机标定装置,包括:
第一确定模块,用于确定第一相机拍摄的第一原始图像与第二相机拍摄的第二原始图像之间相匹配的第一特征点集和第二特征点集;
第一映射模块,用于基于所述第一相机的第一组外参数,将所述第一确定模块确定的所述第一特征点集映射到参考映射面,得到第一映射点集;
参数调整模块,用于从所述第二相机的第二组外参数的初始值开始,按照预设方式以预设步长调整上一次迭代得到的第二组外参数,得到设定数量的第二组外参数;
第二映射模块,用于基于所述参数调整模块调整后的所述设定数量的第二组外参数,将所述第一确定模块确定的所述第二特征点集映射到参考映射面,得到所述设定数量的第二映射点集;
第一计算模块,用于计算所述第二映射模块得到的所述设定数量的第二映射点集中每一个第二映射点与所述第一映射模块得到的所述第一映射点集中相匹配的映射点之间的距离偏差,得到所述设定数量的偏差总和;
外参数标定模块,用于当基于所述第一计算模块计算得到的所述设定数量的偏差总和确定需要终止迭代时,基于所述上一次迭代得到的第二组外参数、所述第一计算模块计算得到的所述设定数量的偏差总和以及所述第二组外参数各自对应的预设步长,标定所述第二相机的相机外参数。
根据本申请的第三方面,提出了一种电子设备,所述电子设备包括:
处理器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器,用于执行上述第一方面提供的相机标定方法。
由以上技术方案可见,本申请可以通过第一相机和第二相机各自拍摄的原始图像上提取图像特征点,基于相匹配的特征点按预设迭代的方式对第二组外参数进行迭代,由于原始图像的拍摄不需人工手动调整以及干预第一相机和第二相机的姿态和位置,即可利用第一相机和第二相机捕捉到的原始图像中的场景内容标定第二相机的外参数,极大地缩短了对第二相机的外参数的标定过程,提高了相机标定的效率,有利于双目以及多目摄像设备的大批量生产。
附图说明
图1为本发明提供的相机标定方法中第一相机和第二相机的场景图;
图2A为本发明的一示例性实施例提供的相机标定方法的流程示意图;
图2B示出了根据图2A所示实施例的第一原始图像和第二原始图像的示意图;
图2C示出了根据图2A所示实施例的第一特征点集中的P点映射到参考映射面上的D点的示意图;
图3为本发明的又一示例性实施例提供的相机标定方法的流程示意图;
图4A为本发明的另一示例性实施例提供的相机标定方法的流程示意图;
图4B为图4A所示实施例中参考映射面与成像平面之间的对应关系的示意图;
图5A为通过第二相机的外参数的初始值将第二原始图像投影到参考映射面得到的投影图像的示意图;
图5B为通过本发明标定后的外参数将第二原始图像投影到参考映射面得到的投影图像的示意图;
图6为本发明的一示例性实施例提供的相机标定装置的结构示意图;
图7为本发明的另一示例性实施例提供的相机标定装置的结构示意图;
图8为本发明的又一示例性实施例提供的相机标定装置的结构示意图;
图9为本发明的再一示例性实施例提供的相机标定装置的结构示意图;
图10示出了根据本发明的一示例性实施例的电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1为本发明提供的相机标定方法中第一相机和第二相机的场景图;如图1所示,本申请中的相机标定指确定第二相机12相对于第一相机11在空间中的平移关系和旋转关系,第一相机11和第二相机12的光心之间的距离为d。其中,第一相机11和第二相机12各自具有相机内参数和相机外参数,其中,相机内参数是与相机自身特性相关的参数(例如,相机的焦距、像素大小),在第一相机11和第二相机12的相机内参数已经确定的情形下,并且第一相机11的相机内参数已经固定的前提下(例如,第一相机11的相机外参数默认设置为[0,90,0,0,0,0]T),需要对第二相机12的外参数进行标定,相机外参数可以包括第二相机12的光轴相对于第一相机11的相机坐标系XYZ的三轴的旋转角α、β、γ,以及第二相机12的光心相对第一相机11的相机坐标系XYZ的三轴的平移参数t1、t2、t3。
下面对本申请所采用的理论基础进行说明。对于原始图像中的一点P,可通过对相机模型参数(包括相机的内参数和外参数),得到该点P在相机坐标系下的空间坐标C(x,y,z),其中,相机模型参数可由相机内参数确定,具体的标定方法可参见现有技术的描述,在此不再详述。
根据世界坐标系与相机坐标系之间的关系C=RW+T,得到W=R-1(C-T),由此可由P点得到P点在世界坐标系下的空间坐标点。
其中,
表示旋转矩阵;T=[t
1 t
2 t
3]
T,表示平移向量;W表示世界坐标系下的空间点坐标,C表示相机坐标系下的空间点坐标。
在参考映射面为映射球面的情形下,由W得到P点对应的映射点D点在参考映射面上的坐标(rφ,rθ),由于W包含了r,φ,θ(以分别为映射球面的半径、经度和纬度)三个参数,由于映射球面的半径可以事先通过标定相机镜头的方式得到,可视为已知量,因此可确定原始图像的P点到映射平面上的D点之间的映射关系,在相机的内参数固定的前提下,将原始图像上的P点映射得到映射球面上的D点就依赖α,β,γ,t1,t2,t3外参数。
对于图1所示的第一相机11和第二相机12,假定第一相机11的六个外参数固定,即[0,90,0,0,0,0]T,第二相机的六个外参数[α,β,γ,t1,t2,t3]T可变,其中,D点为第一相机拍摄的原始图像对应的参考映射面上的位置坐标,D’点为第二相机拍摄的原始图像对应的参考映射面上的位置坐标,那么D点与D’点之间的距离偏差与α,β,γ,t1,t2,t3这六个参数相关,当将第一映射平面和参考映射面上的全部对应映射点对之间的距离差累加起来时,即可得到本申请中关于偏差总和f=|D1-D′1|+|D2-D′2|+…+|DN-D′N|的表达式。
为对本申请进行进一步说明,提供下列实施例:
图2A为本发明的一示例性实施例提供的相机标定方法的流程示意图,图2B示出了根据图2A所示实施例的第一原始图像和第二原始图像的示意图,图2C示出了根据图2A所示实施例的第一特征点集中的P点映射到参考映射面上的D点的示意图;本实施例可应用在具有双目相机或者多目相机上,本实施例结合图1进行示例性说明,如图2A所示,包括如下步骤:
步骤201,确定第一相机拍摄的第一原始图像与第二相机拍摄的第二原始图像之间相匹配的第一特征点集和第二特征点集;
步骤202,基于第一相机采用的第一组外参数,将第一特征点集映射到参考映射平面,得到第一映射点集;
步骤203,从第二相机采用的第二组外参数的初始值开始,按照预设方式以预设步长调整上一次迭代得到的第二组外参数,得到设定数量的第二组外参数;
步骤204,基于调整后的设定数量的第二组外参数,将第二特征点集映射到参考映射面,得到设定数量的第二映射点集;
步骤205,计算设定数量的第二映射点集中每一个映射点与第一映射点集中相匹配的映射点之间的距离偏差,得到设定数量的偏差总和;
步骤206,当基于设定数量的偏差总和确定需要终止迭代时,基于上一次迭代得到的第二组外参数、设定数量的偏差总和以及第二组外参数各自对应的预设步长,标定第二相机的相机外参数,流程结束。
在上述步骤201中,在一实施例中,如图1所示,第一相机11和第二相机12可以具有相同类型的镜头,例如,第一相机11和第二相机12的镜头均为鱼眼镜头或者均为广角镜头。通过第一相机11和第二相机12分别拍摄场景,得到如图2B所示第一原始图像21和第二原始图像22。在一实施例中,可以基于现有技术中的特征点提取算法得到第一原始图像21和第二原始图像22中的特征点(特征点可以为SIFT特征点),例如,第一原始图像21中识别到的第一特征点集为(P1、P2、…、PN),第二原始图像22中识别到的第二特征点集为(P′1、P′2、…、P′N),其中,N表示第一特征点集和第二特征点集中包含的特征点的数量,对于第一特征点集和第二特征点集之间相匹配的特征点,可以标记为(P1-P′1、P2-P′2、…、PN-P′N),其中,图2B中所示的连接第一原始图像21和第二原始图像22中的特征点的线条的端点表示第一原始图像21和第二原始图像22中相匹配的特征点,本领域技术人员可以理解的是,可以通过第一原始图像21和第二原始图像22的像素坐标来表示各自所包含的特征点。
在上述步骤202中,在一实施例中,设定第一相机11为被参照相机,第一相机11采用的第一组外参数可设置为[0,90,0,0,0,0]T,采用第一组外参数将第一特征点集映射到参考映射面上,得到第一映射点集为(D1、D2、…、DN),其中,第一特征点集中的P1对应第一映射点集中的D1,以此类推,第一特征点集中的PN对应第一映射点集中的DN。在一实施例中,参考映射面可以为第一相机对应的映射球面,参考映射面也可以为通过将映射球面根据经纬度进行平面映射得到的平面,通过对第一相机的镜头标定得到映射球面对应的半径,本领域技术人员可以理解的是,可通过现有技术中关于世界坐标系、相机坐标系以及图像坐标系之间的转换数学模型将第一特征点集映射到参考映射面上,本申请不做详述。如图2C所示,当将左侧的原始图像中的特征点P,经过步骤202的映射后,可将特征点P映射到右侧的映射平面中的映射点D,由此可得到特征点P与映射点D之间的对应关系。
在上述步骤203中,第二相机12作为待标定相机,可将第二相机12采用的第二组外参数的初始值设定为[α,β,γ,t1,t2,t3]T=[0,90,0,0,0,0]T;在一实施例中,可以将第二组外参数根据6个参数所表示的物理意义进行分组,将具有相同物理意义的参数设置为相同的预设步长,例如,对于第二组外参数中表示旋转角度的参数α,β,γ,迭代步长Δs可以通过试验的方式得到,对于第二组外参数中表示平移量的参数t1,t2,t3,迭代步长Δm可以通过试验的方式得到。在另一实施例中,可以对每一个参数设置一个对应的预设步长,从而可以基于不同的预设步长,调整各参数的迭代过程,在确保整个迭代过程收敛更快的同时,提高第二组外参数的标定精度。
在一实施例中,预设方式可以为逐一对上一次迭代得到的第二组外参数中的参数进行调整,例如,对第二组外参数中的参数按照预设步长进行累加,也可以对第二组外参数中的参数减去一个预设步长,例如,上一次迭代得到的第二组外参数为[0.11,90.2,0.13,4.1,5.3,4.7]T,将[0.11,90.2,0.13,4.1,5.3,4.7]T中α累加一个与α对应的预设步长0.1,再分别对[0.11,90.2,0.13,4.1,5.3,4.7]T中的β和γ累加一个各自对应的预设步长0.1,得到2组的第二组外参数,类似地,对t1、t2、t3同样进行累加,得到3组第二组外参数。在另一实施例中,可以先对[α,β,γ,t1,t2,t3]T中的α、β和γ累加一个各自对应的预设步长0.1,得到1组第二组外参数,类似地,对t1、t2、t3进行累加,得到另1组第二组外参数。在一实施例中,设定数量的第二组外参数中包含的第二组外参数的个数与对各参数进行分组累加的分组情形确定,例如,若分别对上述6个外参数进行一一累加,则可对应6组第二组外参数,若依据具有相同物理意义的参数进行分组累加,则可对应2组第二组外参数。
在上述步骤204中,例如,依次基于上述步骤203得到的6组第二组外参数,将第二特征点集(P′1、P′2、…、P′N)映射到参考映射面上,得到对应的6个第二映射点集(D′1(α)、D′2(α)、…、D′N(α))、(D′1(β)、D′2(β)、…、D′N(β))、(D′1(γ)、D′2(γ)、…、D′N(γ))、(D′1(t1)、D′2(t1)、…、D′N(t1))、(D′1(t2)、D′2(t2)、…、D′N(t2))、(D′1(t3)、D′2(t3)、…、D′N(t3))。在一实施例中,参考映射面为第一相机的镜头标定得到的映射球面,如图2C所示,在第一相机11和第二相机12均为鱼眼镜头的情形下,分别将第一原始图像21和第二原始图像22映射到映射球面23上,得到映射图像24和映射图像25,其中,第一原始图像21上的特征点211在映射球面23上对应映射点241,第二原始图像22上的特征点221在映射球面23上对应映射点251,以此类推,多个不同的特征点可以对应多个不同的映射点。需要说明的是,图2C中的第一原始图像21和第二原始图像22的矩形形状仅为示例性说明,第一原始图像21和第二原始图像22可以为任何形状的图像,本申请对此不做限制。
在另一实施例中,参考映射面为球面坐标系根据经纬度进行平面映射得到的平面,其中,第一相机的镜头和第二相机的镜头的类型相同。需要说明的是,可通过现有技术中关于世界坐标系、相机坐标系以及图像坐标系之间的转换数学模型将第一特征点集映射到参考映射面上,本申请不做详述。
在上述步骤205中,计算6个第二映射点集分别与第一映射点集之间的偏差总和,得到6个偏差总和,分别为:
fα(i)=|D1-D′1(α)|+|D2-D′2(α)|+…+|DN-D′N(α)|,其中,fα(i)表示第i次累加参数α时迭代得到第二组外参数得到的偏差总和;
fβ(i)=|D1-D′1(β)|+|D2-D′2(β)|+…+|DN-D′N(β)|,其中,fβ(i)表示第i次累加参数β时迭代得到第二组外参数得到的偏差总和;
fγ(i)=|D1-D′1(γ′)|+|D2-D′2(γ′)|+…+|DN-D′N(γ′)|,其中,fγ(i)表示第i次累加参数γ时迭代得到第二组外参数得到的偏差总和;
其中,
表示第i次累加参数t
1时迭代得到第二组外参数得到的偏差总和;
其中,
表示第i次累加参数t
2时迭代得到第二组外参数得到的偏差总和;
其中,
表示第i次累加参数t
3时迭代得到第二组外参数得到的偏差总和。
在上述步骤206中,在一实施例中,可以基于上述步骤205得到的6个偏差总和与上一次迭代的偏差总和之间的差值绝对值,例如,在累加参数α时,得到本次计算出的偏差总和与上一次迭代得到的偏差总和之间的差值绝对值|fα(i)-fα(i-1)|,对其余5个参数,与累加参数α时处理方式类似,从而可得到6个偏差总和各自对应的差值绝对值。当该6个差值绝对值的总和小于或者等于第一预设阈值(ε1)时,表示迭代过程基本趋于稳定,可终止迭代,即:
在另一实施例中,可以确定本次迭代得到的设定数量的偏差总和是否均小于或者等于各自对应的预设阈值来确定是否需要终止迭代,例如,对于由于分别累加参数α、参数β、参数γ、参数t
1、参数t
2、参数t
3迭代得到的6组第二组外参数,得到的偏差总和分别为:f
α(i)、f
β(i)、f
γ(i)、
若满足如下条件可表示基于累加后的各个参数映射得到的第二映射点集与第一映射点集之间的整体距离偏差较为接近,可终止迭代:
其中,ε2-ε7中各个预设阈值可以相同也可以不相同,本申请对ε2-ε7的具体值不做限制。
在另一实施例中,当基于各自对应的偏差总和确定不需要终止迭代时,确定对第二组外参数进行迭代的总次数;当总次数大于或者等于第三预设阈值时,确定终止对第二组外参数的迭代过程。例如,在基于各自对应的偏差总和确定不需要终止迭代的前提下,若截止到当前迭代过程对应的总次数为4次,第三预设阈值为5,则可继续执行步骤203,若迭代总次数为5,等于第三预设阈值5,则可终止迭代过程,并基于步骤206得到对第二相机的标定结果,由此可以通过总次数的方式限制迭代过程,由此提高标定相机的效率。
由上述描述可知,本发明实施例通过上述步骤201-步骤206,可以通过第一相机和第二相机拍摄的原始图像上提取图像特征点,基于相匹配的特征点按预设方式对第二组外参数进行迭代,由于原始图像的拍摄不需人工手动调整以及干预第一相机和第二相机的姿态和位置,即可利用第一相机和第二相机捕捉到的原始图像中的场景内容标定第二相机的外参数,极大地缩短了对第二相机的外参数的标定过程,提高了相机标定的效率,有利于双目以及多目摄像设备的大批量生产。
图3为本发明的又一示例性实施例提供的相机标定方法的流程示意图;本实施例在上述图2A所示实施例的基础上,以如何对第二相机的外参数进行标定为例并结合图1进行示例性说明,如图3所示,包括如下步骤:
步骤301,对第二组外参数中的任意一个参数,确定本次迭代时该参数对应的偏差总和与上一次迭代时该参数对应的偏差总和之间的差值绝对值,得到设定数量的差值;
步骤302,确定设定数量的差值与相应参数对应的预设步长的比值,得到设定数量的比值;
步骤303,确定设定数量的比值各自对应的权重系数;
步骤304,基于上一次迭代得到的第二组外参数、设定数量的参数各自对应的权重系数以及设定数量的比值,标定第二相机的相机外参数。
在步骤301中,例如,对于第二组外参数中的参数α,本次迭代时参数α对应的偏差总和为:
fα(i)=|D1-D′1(α)|+|D2-D′2(α)|+…+|DN-D′N(α)|,其中,i表示本次迭代的次数,D′1(α),D′1(α),…,D′1(α)表示基于本次迭代累加得到的α对应的第二组外参数将第二特征点集映射到参考映射面上的映射点的坐标位置。
参数α在上一次迭代时对应的偏差总和为:
fα(i-1)=|D1-D′1(α,Δs)|+|D2-D′2(α,Δs)|+…+|DN-D′N(α,Δs)|,其中,i-1表示上一次迭代的次数,D′1(α,Δs),D′1(α,Δs),…,D′1(α,Δs)表示基于上一次迭代累加得到的α对应的第二组外参数将第二特征点集映射到参考映射面上的映射点的坐标位置。
通过上述计算,可得到的关于参数α对应的偏差总和上一次迭代时参数α对应的偏差总和之间的差值为f
α(i)-f
α(i-1)。与参数α类似的方法,可得到的参数β、参数γ、参数t
1、参数t
2、参数t
3各自对应的差值:f
β(i)-f
β(i-1)、f
γ(i)-f
γ(i-1)、
在步骤302中,例如,对于第二组外参数中的参数α,参数α在累加时对应的预设步长为Δs,则参数α对应的比值为
与参数α类似的方法,可得到的参数β、参数γ、参数t
1、参数t
2、参数t
3各自对应的比值:
本领域技术人员可以理解的是,示出的预设步长Δs以及Δm的具体值,对于不同的参数而言,可以相同也可以不相同,本申请对预设步长的具体值不做限制。
在步骤303中,各个比值各自对应的权重系数可以相同也可以不相同,本申请对各个参数对应的权重系数的具体值不做限制。
在步骤304中,标定得到的第二相机的相机外参数为:
其中,k表示权重系数对应的向量,权重系数的数量与比值的数量相同,k值越小,表示迭代过程缓慢,迭代次数可增多,振动幅度会减小,得到的最终相机外参数的精度会更高,k值越大,表示迭代过程会加快,迭代次数可减少,振动幅度会增加,得到的最终相机外参数的精度会受到影响。
本实施例中,通过权重系数可调整迭代过程的缓慢,并可根据相机的具体情形灵活控制迭代过程,以确保最终得到的第二相机标定的外参数能够使拍摄的图像具有更好的视觉效果。
图4A为本发明的另一示例性实施例提供的相机标定方法的流程示意图,图4B为图4A所示实施例中参考映射面与成像平面之间的对应关系的示意图;本实施例在上述图2A所示实施例的基础上,以如何基于第二相机标定得到的外参数得到第二映射表为例并结合图2C进行示例性说明,如图4A所示,包括如下步骤:
步骤401,在参考映射面上按照预设采样间隔,确定多个第二采样点坐标;
步骤402,基于标定得到的第二相机的相机外参数,确定多个第二采样点在第二相机所在的成像平面上对应的多个第二像素点坐标;
步骤403,将多个第二采样点坐标和多个第二像素点坐标之间的坐标对应关系记录在第二相机的第二映射表中。
在步骤401中,在一实施例中,预设采样间隔可以根据具体对图像处理时的精度的要求来定,当精度要求不高时,预设采样间隔可以设置的大一些,当精度要求高时,预设采样间隔可以设置的小一些,例如,对于图4B所示的参考映射面41,大小为1000*1000,预设采样间隔为50个像素点,则多个第二采样点的个数为20*20。
在步骤402中,对于参考映射面41上的任意一个采样点411,可通过第二相机标定后的外参数以及第二相机已知的内参数,基于与上述计算第二映射点集相反的过程,得到该点M在第二相机所在的成像平面(也可称为像平面)42上对应的像素点坐标421,相应的,对于参考映射面41上的全部采样点,可以计算得到成像平面42上的对应的像素点坐标。
在步骤403中,例如,多个第二采样点坐标(P′1、P′2、…、P′N)与多个第二像素点坐标(D″1、D″2、…、D″N)之间的坐标对应关系记录到第二映射表中,例如,当N为400时,表示参考映射面和第二相机的成像平面有400个坐标位置对应,因此可基于该400个坐标位置之间的对应关系,直接将第二相机在后续采集的图像上的相应位置像素点的图像投影到参考映射面上,避免通过现有技术中的世界坐标系、相机坐标系以及图像坐标系的坐标转换理论重新计算特征点对应的映射点,简化了计算过程。
类似地,对于第一相机21而言,同样可以在第一映射平面上按照预设采样间隔,确定多个第一采样点坐标;基于第一相机的第一组外参数,确定多个第一采样点在第一相机所在的第一成像平面上对应的多个第一像素点坐标;将多个第一采样点坐标和多个第一像素点坐标之间的坐标对应关系记录在第一相机的第一映射表中。
通过第一映射表和第二映射表即可得到第一相机和第二相机各自的映射平面,由第一映射平面和参考映射面上的采样点为已匹配好的点,因此这些采样点具有特定的视觉差信息,从而方便后续图像拼接等处理。
本实施例中,可采用第一映射表和第二映射表来记录参考映射面和相机的成像平面之间的坐标对应关系,当需要对双目或者多目相机的全景图像进行拼接时,将相机拍摄的原始图像直接映射到参考映射面上,无需重复计算特征点到参考映射面之间的映射关系,简化了图像处理的计算过程。
图5A为通过第二相机的外参数的初始值将第二原始图像投影到参考映射面得到的投影图像的示意图,图5B为通过本发明标定后的外参数将第二原始图像投影到参考映射面得到的投影图像的示意图;对于图2B所示的原始的第二原始图像22,基于第二相机12的外参数的初始值[α,β,γ,t1,t2,t3]T=[0,90,0,0,0,0]T,对第二原始图像22映射到参考映射面上,将第一原始图像和参考图像重叠后得到图5A所示的图像,从图5A所示的图像中可明显看到,远处大楼与近处小树都比较模糊,即存在视差,图像效果不佳。
通过本申请提供的相机标定方法,对第二相机12的外参数进行标定,最终的标定结果为[α,β,γ,t1,t2,t3]T=[0.31,89.02,0.22,1.76,3.59,3.63]T,基于第二相机12标定后的外参数,将第二原始图像22映射到参考映射面,得到新的映射图像,再与第一相机11拍摄的第一原始图像重叠后得到图5B所示的图像,从图5B所示的图像中可明显看到,远处的大楼在位置上对齐了,说明视差减小。
图6为本发明的一示例性实施例提供的相机标定装置的结构示意图;如图6所示,该相机标定装置可以包括:第一确定模块61、第一映射模块62、参数调整模块63、第二映射模块64、第一计算模块65、外参数标定模块66。其中:
第一确定模块61,用于确定第一相机拍摄的第一原始图像与第二相机拍摄的第二原始图像之间相匹配的第一特征点集和第二特征点集;
第一映射模块62,用于基于第一相机的第一组外参数,将第一确定模块61确定的第一特征点集映射到参考映射面,得到第一映射点集;
参数调整模块63,用于从第二相机的第二组外参数的初始值开始,按照预设方式以预设步长调整上一次迭代得到的第二组外参数,得到设定数量的第二组外参数;
第二映射模块64,用于基于参数调整模块63调整后的设定数量的第二组外参数,将第一确定模块61确定的第二特征点集映射到参考映射面,得到设定数量的第二映射点集;
第一计算模块65,用于计算第二映射模块64得到的设定数量的第二映射点集中每一个映射点与第一映射模块62得到的第一映射点集中相匹配的映射点之间的距离偏差,得到设定数量的偏差总和;
外参数标定模块66,用于当基于第一计算模块65计算得到的设定数量的偏差总和确定需要终止迭代时,基于上一次迭代得到的第二组外参数、第一计算模块计算65得到的设定数量的偏差总和以及第二组外参数各自对应的预设步长,标定第二相机的相机外参数。
图7为本发明的另一示例性实施例提供的相机标定装置的结构示意图,如图7所示,在上述图6所示实施例的基础上,外参数标定模块66包括:
第一确定单元661,用于对第二组外参数中的任意一个参数,确定本次迭代时该参数对应的偏差总和与上一次迭代时该参数对应的偏差总和之间的差值,得到设定数量的差值;
第二确定单元662,用于确定第一确定单元661确定的设定数量的差值与相应参数对应的预设步长的比值,得到设定数量的比值;
第三确定单元663,用于确定第二确定单元662确定的设定数量的比值各自对应的权重系数;
标定单元664,用于基于上一次迭代得到的第二组外参数、第三确定单元663确定的设定数量的参数各自对应的权重系数以及第二确定单元662确定的设定数量的比值,标定第二相机的相机外参数。
图8为本发明的又一示例性实施例提供的相机标定装置的结构示意图,如图8所示,在上述图6或图7所示实施例的基础上,参数调整模块63可包括:
第四确定单元631,用于确定第二组外参数中每一个参数在上一次迭代得到的第二组外参数以及各自对应的预设步长;
累加单元632,用于将上一次迭代得到的第二组外参数中任意一个参数累加一个第四确定单元631确定的该任意一个参数对应的预设步长,并确保第二组外参数中的其它参数保持不变,得到累加后的设定数量的第二组外参数。
在一实施例中,相机标定装置还可包括:
第二计算模块67,用于计算第一计算模块65计算的偏差总和与上一次迭代得到的偏差总和之间的差值绝对值,得到设定数量的差值绝对值;
第二确定模块68,用于若第二计算模块67确定的设定数量的差值绝对值均小于或者等于各自对应的第一预设阈值,确定需要终止迭代;或者,
第三确定模块69,用于若基于第一计算模块65计算的偏差总和均小于或者等于各自对应的第二预设阈值,确定需要终止迭代。
图9为本发明的再一示例性实施例提供的相机标定装置的结构示意图,如图9所示,在上述图6-图8任一所示实施例的基础上,相机标定装置还可包括:
第四确定模块70,用于当基于第一计算模块65计算的偏差总和确定不需要终止迭代时,确定对第二组外参数进行迭代的总次数;
第五确定模块71,用于当第四确定模块70确定的总次数大于或者等于第三预设阈值时,确定终止对第二组外参数的迭代过程。
在一实施例中,参考映射面为第一相机的镜头标定得到的映射球面;或者,参考映射面为球面坐标系根据经纬度进行平面映射得到的平面,其中,第一相机的镜头和第二相机的镜头的类型相同。
在一实施例中,相机标定装置还可包括:
第六确定模块72,用于在参考映射面上按照预设采样间隔,确定多个第一采样点坐标;
第七确定模块73,用于基于第一相机的第一组外参数,确定第六确定模块72确定的多个第一采样点在第一相机所在的第一成像平面上对应的多个第一像素点坐标;
第一记录模块74,用于将第六确定模块72确定的多个第一采样点坐标和第七确定模块73确定的多个第一像素点坐标之间的坐标对应关系记录在第一相机的第一映射表中。
在一实施例中,相机标定装置还可包括:
第八确定模块75,用于在参考映射面上按照预设采样间隔,确定多个第二采样点坐标;
第九确定模块76,用于基于外参数标定模块66标定得到的第二相机的相机外参数,确定第八确定模块75确定的多个第二采样点在第二相机所在的成像平面上对应的多个第二像素点坐标;
第二记录模块77,用于将第八确定模块75确定的多个第二采样点坐标和第九确定模块76确定的多个第二像素点坐标之间的坐标对应关系记录在第二相机的第二映射表中。
图10示出了根据本发明的一示例性实施例的电子设备的结构示意图;对应于上述图2A-图4A的相机标定方法,如图10所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成上述图6-图9任一所示实施例提供的相机标定装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以上处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。