CN117523009B - 一种双目相机标定方法、系统、装置及存储介质 - Google Patents
一种双目相机标定方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN117523009B CN117523009B CN202410009740.5A CN202410009740A CN117523009B CN 117523009 B CN117523009 B CN 117523009B CN 202410009740 A CN202410009740 A CN 202410009740A CN 117523009 B CN117523009 B CN 117523009B
- Authority
- CN
- China
- Prior art keywords
- camera
- binocular camera
- value
- target plane
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012360 testing method Methods 0.000 claims abstract description 97
- 238000012937 correction Methods 0.000 claims abstract description 65
- 238000003384 imaging method Methods 0.000 claims abstract description 7
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 16
- 239000003550 marker Substances 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 14
- 238000005457 optimization Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000005259 measurement Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请涉及一种双目相机标定方法、系统、装置及存储介质,其属于机器视觉中的相机标定技术领域,该方法包括:获取双目相机的初始相机参数;基于双目相机采用初始相机参数对目标平面进行成像得到测试图像,测试图像中包含有目标平面上的两个标记点;通过测试图像得到目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1;获取目标平面上两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;通过w1和w0得到第一修正值,通过w1和w0、z0和z1得到第二修正值;输出第一修正值和第二修正值。本申请具有提高大基线的双目相机标定准确度的效果。
Description
技术领域
本申请涉及机器视觉中的相机标定技术领域,尤其是涉及一种双目相机标定方法、系统、装置及存储介质。
背景技术
目前基于双目测距的应用越来越多,不同的测距量程,会选择不同焦距、像元大小的相机。在实际使用时,双目测距的深度计算公式为:,其中baseline为双目相机的基线,f为双目相机的相机焦距,disparity为双目相机的视差。由此可知,若想要在提高测距距离,即增加深度时,同步保障双目相机的测距精度,则通常需要增加双目相机的基线。
而在使用双目相机测距前,都会对双目相机进行标定,获得双目相机的内部参数和外部参数,内部参数主要是左右相机的内部参数和畸变系数。外部参数主要是左右相机之间的旋转矩阵和平移向量。当前,相机标定技术主要使用张正友的相机标定方式,即使用黑白相间的标定板,通过相机拍摄标定板不同位置图像,建立图像角点的像素坐标和标定板角点世界坐标的关系,分解得到相机内部参数。
对双目相机进行标定时,若双目相机的基线比较小,左右两个相机的视野和单个相机的视野比较接近,则可以使用张正友相机标定方式,近距离标定双目相机的内部参数和外部参数。而当双目相机的基线较大时,可以继续在双目相机共同的视野范围内进行标定,如保持大基线的双目相机不动,而使用较大的相机标定板或者构建一个大的三维立体标定场。这种标定方式不仅标定过程比较繁琐,构建大的三维标定场还需要考虑精度和环境的因素,这就对标定装置和标定环境提出了更多要求。
发明内容
为了解决大基线的双目相机标定准确度低的问题,本申请提供一种双目相机标定方法、系统、装置及存储介质。
在本申请的第一方面,提供了一种双目相机标定方法。该方法包括:
获取双目相机的初始相机参数;
基于所述双目相机采用所述初始相机参数对目标平面进行成像得到测试图像,所述双目相机的基线与所述目标平面平行,所述目标平面上设置有两个标记点,所述测试图像中包含有所述目标平面上的两个所述标记点;
通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,所述目标标记点为所述两个标记点中的其中一个标记点;
获取所述目标平面上所述两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;
通过w1和w0得到第一修正值,通过w1和w0、z1和z0得到第二修正值;
输出所述第一修正值和所述第二修正值。
通过采用上述技术方案,本申请在获取双目相机的初始相机参数的基础上,首先是在目标平面上设置两个标记点,然后获取双目相机测得的目标平面上的两个标记点之间的距离w1、双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,再根据目标平面上两个标记点之间的实际距离w0、世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0来优化双目相机的参数。一方面,本申请所选择的标记点较少,仅为两个,能够减少其他点的干扰,提高所得的w1的准确度,进而保障优化的准确度。另一方面,本申请充分考虑现实应用环境,包括计算测试图像中包含的目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,即优化时涉及多个参数,以使得优化的准确度更高,进而使得在优化后所采用的双目相机在测距时的精度更高。
在一种可能的实现方式中:所述测试图像包括左图像和右图像,所述左图像由左相机输出,所述右图像由右相机输出,所述左图像和所述右图像中均包含有所述目标平面上的两个标记点;
所述通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1,包括:
采用特征提取算法识别所述左图像和所述右图像中同名的标记点;
基于所述初始相机参数计算所述同名的标记点位于双目相机坐标系下的坐标;
通过所述同名的标记点位于双目相机坐标系下的坐标计算得到所述测试距离w1。
在一种可能的实现方式中:通过如下计算公式计算所述测试距离w1:
w1=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2),
其中,[x1,y1,z1]为同名的第一标记点位于双目相机坐标系下的坐标,[x2,y2,z2]为同名的第二标记点位于双目相机坐标系下的坐标,所述第一标记点和所述第二标记点组成所述目标平面上的两个标记点。
通过采用上述技术方案,首先提取出同名的标记点,再分别获取同名的标记点位于左相机坐标系和右相机坐标系下的坐标,来计算得到测试距离w1,以保障计算所得的测试距离w1的准确度。
在一种可能的实现方式中:所述测试图像包括左图像和右图像,所述左图像由左相机输出,所述右图像由右相机输出,所述左图像和所述右图像中均包含有所述目标平面上的两个标记点;
所述通过所述测试图像得到双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,包括:
获取所述左图像和所述右图像中同名的目标标记点的像素坐标;
计算所述同名的目标标记点到双目相机坐标系下左相机视线中心点的测试距离z1。
在一种可能的实现方式中:所述通过w1和w0得到第一修正值,包括:
计算同名的标记点分别在左相机坐标系下的像素值y1和右相机坐标系下的像素值y2;
计算所述像素值y1和所述像素值y2的差值;
根据如下计算公式:α=weight1*w1/w0,调整α值,直至所述差值小于或者等于预设精度值为止,并输出调整后的α值作为第一修正值;
所述weight1是超参数。
在一种可能的实现方式中:所述通过w1和w0、z1和z0得到第二修正值,包括:
计算w1和w0的差值得到第一差值;
计算z1和z0的差值得到第二差值;
根据所述第一差值和所述第二差值得到所述第二修正值。
在一种可能的实现方式中:所述根据所述第一差值和所述第二差值得到所述第二修正值,包括:
在且/>时,输出disparity1对应的β值作为第二修正值;
其中,│w1-w0│是所述第一差值的绝对值,所述│z1-z0│是所述第二差值的绝对值,p和q均为预设值,β值为右相机旋转矩阵在右图像的像素x方向上的第二修正值。
在本申请的第二方面,提供了一种双目相机标定系统。该系统包括:
第一获取模块,用于获取双目相机的初始相机参数;
数据测试模块,用于基于所述双目相机采用所述初始相机参数对目标平面进行成像得到测试图像,所述双目相机的基线与所述目标平面平行,所述目标平面上设置有两个标记点,所述测试图像中包含有所述目标平面上的两个所述标记点:
数据计算模块,用于通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,所述目标标记点为所述两个标记点中的其中一个标记点;
第二获取模块,用于获取所述目标平面上所述两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;
数据处理模块,用于通过w1和w0得到第一修正值,通过w1和w0、z1和z0得到第二修正值;
数据输出模块,用于输出所述第一修正值和所述第二修正值。
在本申请的第三方面,提供了一种双目相机标定装置。该装置包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现上述任一种双目相机标定方法。
在本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一种双目相机标定方法。
综上所述,本申请包括以下至少一种有益技术效果:
本申请在获取双目相机的初始相机参数的基础上,首先是在目标平面上设置两个标记点,然后获取双目相机测得的目标平面上的两个标记点之间的距离w1、双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,再根据目标平面上两个标记点之间的实际距离w0、世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0来优化双目相机的参数。一方面,本申请所选择的标记点较少,仅为两个,能够减少其他点的干扰,提高所得的w1的准确度,进而保障优化的准确度。另一方面,本申请充分考虑现实应用环境,包括计算测试图像中包含的目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,即优化时涉及多个参数,以使得优化的准确度更高,进而使得在优化后所采用的双目相机在测距时的精度更高。
附图说明
图1是本申请的实施例的示例性运行环境的示意图。
图2是本申请实施例的一种双目相机标定方法的流程图。
图3是本申请方法实施例的确定目标平面的示意图。
图4是本申请实施例的一种双目相机标定系统框图。
附图标记说明:10、标定测试终端;11、第一获取模块;12、数据测试模块;13、数据计算模块;14、第二获取模块;15、数据处理模块;16、数据输出模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
图1示出了能够在其中实现本申请的实施例的示例性运行环境的示意图,该运行环境包括标定测试终端和双目相机,其中双目相机分为左相机和右相机,标定测试终端分别与左相机和右相机通信连接。
标定测试终端内设置有相机标定组件,相机标定组件为标定测试终端中的应用程序,其能够识别初次投入使用的双目相机并智能控制双目相机进行近距离标定,以获得双目相机的初始相机参数,同时,若双目相机为大基线的双目相机,则可以继续进一步优化大基线的双目相机的参数,以保障大基线的双目相机实现远距离测距。
需要说明的是,在实际使用时,所选择的双目相机中的左右相机的型号、参数、批次均应该相同,以降低双目相机在标定时由相机本身差异带来的误差。
还需要说明的是,图1所示的运行环境仅是解释性的,绝不是为了限制本发明实施例的应用或用途。例如,该运行环境中可以包括多个标定测试终端和多个双目相机。
图2示出了根据本申请实施例的一种双目相机标定方法的流程图,该方法由图1中的标定测试终端执行。具体地,双目相机标定方法的主要流程描述如下。
步骤S100、获取双目相机的初始相机参数。
在得到双目相机后,将双目相机固定在同一个滑轨上,双目相机的左相机和右相机位置相对平行,固定位置后需要保障后续的测试过程中,不会发生左相机和右相机的相对位置变化及二者碰撞的事故。
固定双目相机的左相机和右相机后,对每一个相机进行单独标定,主要的目的是获得每一个相机的内部参数。以标定其中一个相机的内部参数过程为例:首先,查询相机的型号对应的像元尺寸大小,根据相机的焦距、水平视角和垂直视角,计算相机的标定距离,即在相机的视线范围内和视线清晰度临界点处,将该临界点作为相机的标定距离。该临界点可以通过设定大数据模型来进行判断,由大数据模型分析相机所拍摄的图像的清晰度而得到该临界点。另外,如果相机是带可调节胶圈的摄像头,则需要调整相机的清晰度,直到摄像头的清晰度界于清楚和模糊的临界点时,得到相机的标定距离。然后,在该标定距离处,放置黑白相间的标定板,标定板格子大小为5cm,在其他示例中,标定板的格子还可以在5cm上下浮动,本申请在此不作限制。最后,启动相机对标定板进行成像,本示例中每一个相机拍摄的图像为15张左右。
在左相机和右相机均拍摄得到图像后,标定测试终端10根据标定板法向量分布情况、标定板角点分布情况分别标定左相机和右相机。具体地,标定测试终端10标定左右相机中的一个相机的模型为:
,
其中s为尺度因子,fx、fy为焦距分别在x,y方向的分量,为相机主点坐标,/>为世界坐标系下点的坐标,/>为相机坐标下点的坐标,d=[k1、k2、k3、p1、p2]为相机畸变系数,本示例选择的是5个畸变系数进行相机标定,因为畸变参数过度,容易发生过拟合,使得标定的结果在标定距离很好,其它距离下误差相较于标定距离处的误差来说变大。另外,A=[fx,fy]相关参数满足下面矩阵变换的要求:
,
,/>。
需要说明的是,上述的函数A为该相机的焦距分别在x、y方向的分量,而d为该相机的畸变系数,所以通过上述的计算过程,能够得到该相机的内部参数,也就是说,内部参数包括内参矩阵和畸变系数。同理,也可以使用上述的标定模型,标定双目相机中的另一个相机的内部参数,本申请不再赘述。
在得到左相机的内部参数和右相机的内部参数后,再继续标定双目相机的外部参数。具体地,先将标定板放置于左相机和右相机的视线范围内且位于左相机和右相机的清晰度处于清晰的范围内,保持标定板静止。然后,使用双目相机同时拍摄标定板,并获取双目相机拍摄所得的图像。接着再调整标定板的角度和位置,重复上述的过程,直到左相机和右相机均拍摄有丰富的图像为止。
需要说明的是,在拍摄图像时,需要保障左图像和右图像中呈现的标定板角点都可以正常识别,且拍摄的图像数量大于25张,以便于通过多张图像来提高标定双目相机的外部参数的准确度。
在本示例中,基于左相机的内部参数和右相机的内部参数下,再使用跨平台计算机视觉库(opencv)双目标定函数进行双目标定,即根据标定的投影误差和标定板在相机坐标系的法向量分布情况,删减双目图像,使得最终保留的图像在16张左右,最后计算双目相机的外部参数。为了便于说明标定双目相机的外部参数的过程,举例如下:
假如实际环境的空间中有一点p,其在世界坐标系下的坐标为pw,则世界坐标在左相机的坐标系和右相机的坐标系下就可以分别被表示为:
其中Pι、Pr需要满足:
,即/>,。
其中,R为双目相机的旋转矩阵,旋转矩阵R可以分解为两个旋转矩阵相乘。T为左相机和右相机的平移向量。在本示例中,为了加快在左图像和右图像中同名点的搜索效率,通常会进行双目立体校正,即通过opencv的stereoRectify()函数将旋转矩阵R分解为R1,R2,再将R1和R2分解为五个立体角,分别为β_1,γ_1,α_r,β_r,γ_r,而用α_r代表左图像和右图像的α的总体角度。
由此可知,双目相机的外部参数包括旋转矩阵和平移向量。
步骤S200、基于双目相机采用初始相机参数对目标平面进行成像得到测试图像,双目相机的基线与所述目标平面平行,目标平面上设置有两个标记点,测试图像中包含有目标平面上的两个标记点。
具体地,首先在双目相机的量程范围内,选定一个和双目相机的基线平行的平面作为目标平面,并在该目标平面上放置一个水平木板或者其他的标志物,在标志物上选择两个点,贴上标记作为标记点,为了便于区分,本申请将其中一个标记点称为第一标记点,另一个称为第二标记点。然后利用双目相机在初始相机参数下,对目标平面进行成像得到测试图像,且由于目标平面在双目相机的量程范围内,所以拍摄所得的测试图像中包含有目标平面上的第一标记点和第二标记点。为了便于说明,举例如图3所示,其中点A为第一标记点,点B为第二标记点,点A和点B所在的平面为目标平面,双目相机的摄像头朝向目标平面设置,且双目相机的基线与目标平面平行。图3中,点A和点B之间的距离用w表示,双目相机的基线用L表示,点A到左相机的距离为深度并用z表示,如图3中的虚线所示。
在本示例中,将左相机拍摄目标平面所得的图像称为左图像,而将右相机拍摄目标平面所得的图像称为右图像,左右相机同一时刻拍摄目标平面得到的左图像和右图像作为一组图像,其中一组图像也称为测试图像,即需要根据左右相机同一时刻拍摄目标平面得到的一组图像来优化双目相机的参数。
步骤S300、通过测试图像得到目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,目标标记点为两个标记点中的其中一个标记点。
由步骤S200可知,此处的测试图像为一组图像,即测试图像包括左图像和右图像。针对所得的左图像和右图像,计算目标平面上两个标记点之间的测试距离w1,包括如下步骤:
步骤S311、采用特征提取算法识别左图像和右图像中同名的标记点;
步骤S312、基于初始相机参数计算同名的标记点位于双目相机坐标系下的坐标;
步骤S313、通过同名的标记点位于双目相机坐标系下的坐标计算得到测试距离w1,包括:w1=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2),
其中,[x1,y1,z1]为同名的第一标记点位于双目相机坐标系下的坐标,[x2,y2,z2]为同名的第二标记点位于双目相机坐标系下的坐标,第一标记点和第二标记点组成目标平面上的两个标记点。
简单来说,计算目标平面上两个标记点之间的测试距离w1的过程为:首先,可以使用传统的特征点提取算法,也可以使用深度学习提取算法来提取左图像和右图像中同名的标记点,也就是建立左图像和右图像中相同标记点的关联关系。然后,根据步骤S100获得的初始相机参数,计算同名的标记点位于双目坐标系下的坐标,其中,[x1,y1,z1]为同名的第一标记点位于双目相机坐标系下的坐标,[x2,y2,z2]为同名的第二标记点位于双目相机坐标系下的坐标,最后,通过欧式距离计算公式计算目标平面上两个标记点的测试距离:w1=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2)。
另外,依据测试图像来计算双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1的步骤如下:
步骤S321、获取左图像和右图像中同名的目标标记点的像素坐标,并进行去畸变;
步骤S322、计算同名的目标标记点到双目相机坐标系下左相机视线中心点的测试距离z1。
上述的目标标记点为目标平面上的两个标记点中的其中一个标记点,在本示例中,以第一标记点作为目标标记点,所以计算的是第一标记点到双目相机坐标系下左相机视线中心点的距离。在其他示例中,还可以以第二标记点作为目标标记点。为了便于说明,以下以第一标记点作为目标标记点为例,具体说明计算该测试距离的过程:首先,使用传统的特征点提取算法或者深度学习提取算法来提取左图像和右图像中第一标记点,然后,根据双目相机的旋转矩阵和平移向量来计算目标平面上第一标记点至左相机视线中心点的距离z1,即z1为双目相机坐标系下左相机视线中心点到第一标记点的测试距离。
需要说明的是,为了保障计算所得的测试距离z1的准确度,提取的是目标标记点的圆内中心作为该目标标记点的位置。
步骤S400、获取目标平面上两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0。
在本示例中,确定目标平面上标记的两个标记点后,采用测距传感器或者卷尺测量两个标记点之间的距离,并将该距离作为两个标记点的实际距离w0。同时,使用激光测距仪或者其他的测距传感器测量左相机视线中心点到目标平面上的目标标记点的距离,将该距离作为实际距离z0。
步骤S500、通过w1和w0得到第一修正值,通过w1和w0、z1和z0得到第二修正值。
在一个具体的示例中,首先以左相机为基准,通过w1和w0动态调整右相机在y方向上的角度大小得到第一修正值;再在左相机和右相机在y方向上的角度大小一致的情况下,再通过w1和w0、z1和z0动态调整右相机在x方向上的角度大小得到第二修正值。
其中,通过w1和w0得到第一修正值的过程包括:首先,计算同名的标记点分别在左相机坐标系下的像素值y1和右相机坐标系下的像素值y2,然后计算像素值y1和像素值y2的差值,再根据:α=weight1*w1/w0,weight1是超参数,调整α值,直至y1和y2的差值小于或者等于预设精度值为止时,输出调整后的α值作为第一修正值。
需要说明的是,为了加快α的收敛速度,可以提前设定角度值调节范围,角度值调节范围的最小值为0,最大值为weight3*FOV,FOV是双目相机的水平视角值。例如,水平视角FOV=60,weight3=0.01,则weight3*FOV=0.6,而角度值调节范围的最小值为0,所以角度值调节范围为0-0.6,因此右相机在y方向上调整的角度值要位于0至0.6范围内。
另外,通过w1和w0、z1和z0得到第二修正值的过程包括:首先计算w1和w0的差值、z1和z0的差值,然后在且/>时,输出disparity1对应的β值作为第二修正值,其中,│w1-w0│是w1和w0的差值的绝对值,│z1-z0│是z1和z0的差值的绝对值,p和q均为预设值,β值为调整双目相机旋转矩阵在图像像素x方向上的第二修正值。若不满足上述条件,则继续调整双目相机的右相机在x方向上的角度值,直至/>且/>为止,然后,输出disparity1对应的β值作为第二修正值。
需要说明的是,上述调整右相机的β值的依据是:调整右相机的β值时,左右相机对于同名标记点的视差会变化,所以两个标记点的测试距离w1会发生变化,同时根据深度计算公式中disparity与β的对应关系,深度值depth也发生变化,即测试距离z1也发生变化。因此,一直调整右相机的β值,以使得w1和w0的差值、z1和z0的差值均低于其各自对应的预设值为止。
在本示例中,上述的预设值p和q相等且为1%,在其他示例中,预设值还可以根据需要设置为其他大小的数值。
除上述的以左相机为基准外,在实际使用时,还可以将输出在y方向上值最小的标记点的图像的相机作为基准相机,然后调整输出在y方向上值较大的标记点的图像的相机的α值,使得左右相机在y方向上的极线差值小于设定的阈值,以得到第一修正值;最后,再基于所得的第一修正值的情况下,通过w1和w0、z1和z0的差值动态调整左相机或右相机在x方向上的极线差值大小得到第二修正值,此处得到第二修正值与上述得到第二修正值的过程相同,所以此处不再进行赘述。
步骤S600、输出第一修正值和第二修正值。
得到第一修正值和第二修正值后,输出第一修正值和第二修正值,以便于根据第一修正值和第二修正值调整双目相机的参数,再根据调整后的双目相机拍摄的标定板图像,构建投影误差最小优化函数,以优化旋转矩阵和平行向量。当满足截至条件时,停止优化,生成双目相机最终的参数文件,以使得双目相机后续采用该参数文件拍摄得到准确度较高的图像。
另外,针对所得到的最终的参数文件,本申请还提供了验证最终的参数文件的测距精度,精度计算公式为:
,其中,dreal是两个标记点之间的实际距离,dcal是使用双目相机测距计算得到的测试距离。因此,在实际使用时,用户就可以根据对测距精度的需求为双目相机选择一个合适的参数文件,从而保障参数文件符合用户的测距精度需求。
为了便于说明上述的标定过程,本申请举例如下:
假如标定的单目相机的内参矩阵和畸变系数如下:
,
,
,
,
其中,Rleft为左相机的内参矩阵,Rright为右相机的内参矩阵,dleft为左相机畸变系数,而dright为右相机的畸变系数;
而双目相机的旋转矩阵和平移向量分别为:
,
。
采用上述的方法优化后,得到的双目相机的参数为:
,
。
在验证时,第一标记点距离双目相机的距离为19490mm,下面是双目相机使用初始相机参数和优化后的参数计算得到的结果对表:
表1 测距结果对比表:
实际距离 | 初始标定距离 | 最终标定距离 | |
标记点 | 1675mm | 1780mm | 1665mm |
表2 测距精确度对比表:
初始标定验证 | 最终标定验证 | |
标记点 | 0.06268 | 0.00597 |
由表1和表2可知,使用优化后的参数提升了测距精度,使得双目相机更好的应用于现实环境中。
图4示出了根据本申请的实施例的一种双目相机标定系统的方框图,该系统包括第一获取模块11、数据测试模块12、数据计算模块13、第二获取模块14、数据处理模块15和输出数据模块16。
第一获取模块11,用于获取双目相机的初始相机参数;
数据测试模块12,用于基于双目相机采用初始相机参数对目标平面进行成像得到测试图像,双目相机的基线与目标平面平行,目标平面上设置有两个标记点,测试图像中包含有目标平面上的两个标记点:
数据计算模块13,用于通过测试图像得到目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,目标标记点为两个标记点中的其中一个标记点;
第二获取模块14,用于获取目标平面上两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;
数据处理模块15,用于通过w1和w0得到第一修正值,通过w1和w0、z1和z0得到第二修正值;
数据输出模块16,用于输出第一修正值和第二修正值。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取模块11、数据测试模块12、数据计算模块13、第二获取模块14、数据处理模块15和输出数据模块16。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一获取模块11还可以被描述为“用于获取双目相机的初始相机参数的模块”。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
为了更好地执行上述方法的程序,本申请还提供一种双目相机标定装置,该装置包括存储器和处理器。
其中,存储器可用于存储指令、程序、代码、代码集或指令集。存储器可以包括存储程序区和存储数据区,其中存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令以及用于实现上述双目相机标定方法的指令等;存储数据区可存储上述双目相机标定方法中涉及到的数据等。
处理器可以包括一个或者多个处理核心。处理器通过运行或执行存储在存储器内的指令、程序、代码集或指令集,调用存储在存储器内的数据,执行本申请的各种功能和处理数据。处理器可以为特定用途集成电路、数字信号处理器、数字信号处理装置、可编程逻辑装置、现场可编程门阵列、中央处理器、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。
本申请还提供一种计算机可读存储介质,例如包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该计算机可读存储介质存储有能够被处理器加载并执行上述双目相机标定方法的计算机程序。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (7)
1.一种双目相机标定方法,其特征在于,包括:
获取双目相机的初始相机参数;
基于所述双目相机采用所述初始相机参数对目标平面进行成像得到测试图像,所述双目相机的基线与所述目标平面平行,所述目标平面上设置有两个标记点,所述测试图像中包含有所述目标平面上的两个所述标记点;
通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,所述目标标记点为所述两个标记点中的其中一个标记点;
获取所述目标平面上所述两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;
通过w1和w0得到第一修正值,包括:
计算同名的标记点分别在左相机坐标系下的像素值y1和右相机坐标系下的像素值y2;计算所述像素值y1和所述像素值y2的差值;根据如下计算公式:α=weight1*w1/w0,调整α值,直至所述差值小于或者等于预设精度值为止,并输出调整后的α值作为第一修正值;所述weight1是超参数;
通过w1和w0、z1和z0得到第二修正值,包括:计算w1和w0的差值得到第一差值;计算z1和z0的差值得到第二差值;根据所述第一差值和所述第二差值得到所述第二修正值,包括:
在且/>时,输出disparity1对应的β值作为第二修正值;
否则,继续调整双目相机的右相机在x方向上的角度值,直至且为止,输出disparity1对应的β值作为第二修正值;
其中,│w1-w0│是所述第一差值的绝对值,所述│z1-z0│是所述第二差值的绝对值,所述p和q均为预设值,β值为右相机旋转矩阵在图像像素x方向上的第二修正值,baseline为双目相机的基线长度,f为双目相机的相机焦距;
输出所述第一修正值和所述第二修正值。
2.根据权利要求1所述的双目相机标定方法,其特征在于,所述测试图像包括左图像和右图像,所述左图像由左相机输出,所述右图像由右相机输出,所述左图像和所述右图像中均包含有所述目标平面上的两个标记点;
所述通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1,包括:
采用特征提取算法识别所述左图像和所述右图像中同名的标记点;
基于所述初始相机参数计算所述同名的标记点位于双目相机坐标系下的坐标;
通过所述同名的标记点位于双目相机坐标系下的坐标计算得到所述测试距离w1。
3.根据权利要求2所述的双目相机标定方法,其特征在于,通过如下计算公式计算所述测试距离w1:
w1=sqrt((x1-x2)2+(y1-y2)2+(z1-z2)2),
其中,[x1,y1,z1]为同名的第一标记点位于双目相机坐标系下的坐标,[x2,y2,z2]为同名的第二标记点位于双目相机坐标系下的坐标,所述第一标记点和所述第二标记点组成所述目标平面上的两个标记点。
4.根据权利要求1所述的双目相机标定方法,其特征在于,所述测试图像包括左图像和右图像,所述左图像由左相机输出,所述右图像由右相机输出,所述左图像和所述右图像中均包含有所述目标平面上的两个标记点;
所述通过所述测试图像得到双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,包括:
获取所述左图像和所述右图像中同名的目标标记点的像素坐标;
计算所述同名的目标标记点到双目相机坐标系下左相机视线中心点的测试距离z1。
5.一种双目相机标定系统,其特征在于,包括:
第一获取模块(11),用于获取双目相机的初始相机参数;
数据测试模块(12),用于基于所述双目相机采用所述初始相机参数对目标平面进行成像得到测试图像,所述双目相机的基线与所述目标平面平行,所述目标平面上设置有两个标记点,所述测试图像中包含有所述目标平面上的两个所述标记点:
数据计算模块(13),用于通过所述测试图像得到所述目标平面上两个标记点之间的测试距离w1和双目相机坐标系下左相机视线中心点到目标平面上的目标标记点的测试距离z1,所述目标标记点为所述两个标记点中的其中一个标记点;
第二获取模块(14),用于获取所述目标平面上所述两个标记点之间的实际距离w0和世界坐标系下左相机视线中心点到目标平面上的目标标记点的实际距离z0;数据处理模块(15),用于通过w1和w0得到第一修正值,包括:计算同名的标记点分别在左相机坐标系下的像素值y1和右相机坐标系下的像素值y2;计算所述像素值y1和所述像素值y2的差值;根据如下计算公式:α=weight1*w1/w0,调整α值,直至所述差值小于或者等于预设精度值为止,并输出调整后的α值作为第一修正值;所述weight1是超参数;通过w1和w0、z1和z0得到第二修正值,包括:计算w1和w0的差值得到第一差值;计算z1和z0的差值得到第二差值;根据所述第一差值和所述第二差值得到所述第二修正值,包括:在且时,输出disparity1对应的β值作为第二修正值;否则,继续调整双目相机的右相机在x方向上的角度值,直至/>且为止,输出disparity1对应的β值作为第二修正值;其中,│w1-w0│是所述第一差值的绝对值,所述│z1-z0│是所述第二差值的绝对值,所述p和q均为预设值,β值为右相机旋转矩阵在图像像素x方向上的第二修正值,baseline为双目相机的基线长度,f为双目相机的相机焦距;
数据输出模块(16),用于输出所述第一修正值和所述第二修正值。
6.一种双目相机标定装置,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410009740.5A CN117523009B (zh) | 2024-01-04 | 2024-01-04 | 一种双目相机标定方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410009740.5A CN117523009B (zh) | 2024-01-04 | 2024-01-04 | 一种双目相机标定方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117523009A CN117523009A (zh) | 2024-02-06 |
CN117523009B true CN117523009B (zh) | 2024-04-16 |
Family
ID=89755284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410009740.5A Active CN117523009B (zh) | 2024-01-04 | 2024-01-04 | 一种双目相机标定方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117523009B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103256896A (zh) * | 2013-04-19 | 2013-08-21 | 大连理工大学 | 一种高速滚转体位姿测量方法 |
CN106780623A (zh) * | 2016-12-14 | 2017-05-31 | 厦门理工学院 | 一种机器人视觉系统快速标定方法 |
CN107093195A (zh) * | 2017-03-10 | 2017-08-25 | 西北工业大学 | 一种激光测距与双目相机结合的标记点定位方法 |
CN110296691A (zh) * | 2019-06-28 | 2019-10-01 | 上海大学 | 融合imu标定的双目立体视觉测量方法与系统 |
CN111028284A (zh) * | 2019-10-31 | 2020-04-17 | 浙江未来技术研究院(嘉兴) | 一种基于同名标记点的双目视觉立体匹配方法及装置 |
CN112258571A (zh) * | 2020-09-25 | 2021-01-22 | 上海数川数据科技有限公司 | 一种基于单目视觉的室内行人定位方法 |
CN112991465A (zh) * | 2021-03-26 | 2021-06-18 | 禾多科技(北京)有限公司 | 相机标定方法、装置、电子设备和计算机可读介质 |
CN116922028A (zh) * | 2022-04-08 | 2023-10-24 | 清华大学 | 一种航空发动机低涡长轴自动化精密对中方法及系统 |
-
2024
- 2024-01-04 CN CN202410009740.5A patent/CN117523009B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103256896A (zh) * | 2013-04-19 | 2013-08-21 | 大连理工大学 | 一种高速滚转体位姿测量方法 |
CN106780623A (zh) * | 2016-12-14 | 2017-05-31 | 厦门理工学院 | 一种机器人视觉系统快速标定方法 |
CN107093195A (zh) * | 2017-03-10 | 2017-08-25 | 西北工业大学 | 一种激光测距与双目相机结合的标记点定位方法 |
CN110296691A (zh) * | 2019-06-28 | 2019-10-01 | 上海大学 | 融合imu标定的双目立体视觉测量方法与系统 |
CN111028284A (zh) * | 2019-10-31 | 2020-04-17 | 浙江未来技术研究院(嘉兴) | 一种基于同名标记点的双目视觉立体匹配方法及装置 |
CN112258571A (zh) * | 2020-09-25 | 2021-01-22 | 上海数川数据科技有限公司 | 一种基于单目视觉的室内行人定位方法 |
CN112991465A (zh) * | 2021-03-26 | 2021-06-18 | 禾多科技(北京)有限公司 | 相机标定方法、装置、电子设备和计算机可读介质 |
CN116922028A (zh) * | 2022-04-08 | 2023-10-24 | 清华大学 | 一种航空发动机低涡长轴自动化精密对中方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于双线投影与线面约束的3D扫描测量系统研究;王鹏;史瑞泽;钟小峰;孙长库;;红外与激光工程;20170425(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117523009A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510551B (zh) | 一种远距离大视场条件下相机参数的标定方法及系统 | |
CN111210468A (zh) | 一种图像深度信息获取方法及装置 | |
CN110809786A (zh) | 校准装置、校准图表、图表图案生成装置和校准方法 | |
CN108629810B (zh) | 双目相机的标定方法、装置及终端 | |
CN110490943B (zh) | 4d全息捕捉系统的快速精确标定方法、系统及存储介质 | |
CN113592957A (zh) | 一种多激光雷达和多相机联合标定方法及系统 | |
CN111383264B (zh) | 一种定位方法、装置、终端及计算机存储介质 | |
CN113298886B (zh) | 一种投影仪的标定方法 | |
KR20240089161A (ko) | 촬영 측정 방법, 장치, 기기 및 저장 매체 | |
CN114299156A (zh) | 无重叠区域下多相机的标定与坐标统一方法 | |
CN112229323A (zh) | 基于手机单目视觉的棋盘格合作目标的六自由度测量方法及其应用 | |
CN114359406A (zh) | 自动对焦双目摄像头的标定、3d视觉及深度点云计算方法 | |
CN116091625A (zh) | 一种基于双目视觉的基准标记位姿估计方法 | |
CN114926538A (zh) | 单目激光散斑投影系统的外参数标定方法和装置 | |
CN115187612A (zh) | 一种基于机器视觉的平面面积测量方法、装置及系统 | |
CN111583342A (zh) | 一种基于双目视觉的目标快速定位方法及装置 | |
CN117523009B (zh) | 一种双目相机标定方法、系统、装置及存储介质 | |
CN111292380B (zh) | 图像处理方法及装置 | |
CN115719387A (zh) | 3d相机标定方法、点云图像获取方法及相机标定系统 | |
CN113587895B (zh) | 双目测距方法及装置 | |
CN113240749B (zh) | 一种面向海上舰船平台无人机回收的远距离双目标定与测距方法 | |
CN115239816A (zh) | 一种相机标定方法、系统、电子设备及存储介质 | |
CN115311369A (zh) | 一种低成本适用少量重合区域的高精度多rgb-d相机的外参标定方法 | |
CN115018922A (zh) | 畸变参数标定方法、电子设备和计算机可读存储介质 | |
Zamanakos et al. | A cooperative LiDAR-camera scheme for extrinsic calibration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |