CN109215082B - 一种相机参数标定方法、装置、设备及*** - Google Patents
一种相机参数标定方法、装置、设备及*** Download PDFInfo
- Publication number
- CN109215082B CN109215082B CN201710522139.6A CN201710522139A CN109215082B CN 109215082 B CN109215082 B CN 109215082B CN 201710522139 A CN201710522139 A CN 201710522139A CN 109215082 B CN109215082 B CN 109215082B
- Authority
- CN
- China
- Prior art keywords
- checkerboard
- point
- camera
- chequers
- corner
- 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
Images
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- 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
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
- G06T2207/30208—Marker matrix
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
Abstract
本发明实施例提供了一种相机参数标定方法、装置、设备及***,本方案中,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数;第一方面,标定图像中包含多个棋盘格,也就不需要多次调整棋盘格标靶位置或姿态、多次采集针对棋盘格标靶的标定图像,提高了标定效率;第二方面,多次采集针对棋盘格标靶的标定图像,造成的采集误差较大,应用本方案,减小了采集误差。
Description
技术领域
本发明涉及相机标定技术邻域,特别是涉及一种相机参数标定方法、装置、设备及***。
背景技术
在图像测量过程以及机器视觉应用中,为确定空间物体表面中点的三维几何位置与图像中像素点的对应关系,通常需要建立相机成像的几何模型,这些几何模型参数就是相机参数,求解相机参数的过程称之为相机标定。
现有的相机标定算法中,通常需要多次调整棋盘格标靶位置或姿态,每次调整位置后,采集棋盘格标靶的图像,得到棋盘格标靶的不同位置或姿态多张图像,基于这多张图像,求解相机参数。
应用上述方案,需要多次调整棋盘格标靶位置或姿态,多次采集棋盘格标靶的图像,效率较低。
发明内容
本发明实施例的目的在于提供一种相机参数标定方法、设备及***,以提高标定效率。
为达到上述目的,本发明实施例提供一种相机参数标定方法,包括:
获取待标定相机采集到的针对多个棋盘格标靶的标定图像;
在所述标定图像中,确定第一棋盘格角点;
根据所确定的第一棋盘格角点,生成多个棋盘格;
将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
根据所述第二棋盘格角点与所述第一棋盘格角点的投影关系,计算所述待标定相机的参数。
为达到上述目的,本发明实施例还提供一种相机参数标定装置,包括:
第一获取模块,用于获取待标定相机采集到的针对多个棋盘格标靶的标定图像;
第一确定模块,用于在所述标定图像中,确定第一棋盘格角点;
生成模块,用于根据所确定的第一棋盘格角点,生成多个棋盘格;
转换模块,用于将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
第一计算模块,用于根据所述第二棋盘格角点与所述第一棋盘格角点的投影关系,计算所述待标定相机的参数。
为达到上述目的,本发明实施例还提供一种电子设备,包括处理器和存储器,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一种相机参数标定方法。
为达到上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种相机参数标定方法。
为达到上述目的,本发明实施例还提供一种相机标定***,所述***包括:待标定相机及处理设备;其中,
所述待标定相机,用于针对多个棋盘格标靶进行图像采集,得到标定图像;
所述处理设备,用于获取待标定相机采集到的针对多个棋盘格标靶的标定图像;在所述标定图像中,确定第一棋盘格角点;根据所确定的第一棋盘格角点,生成多个棋盘格;将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;根据所述第二棋盘格角点与所述第一棋盘格角点的投影关系,计算所述待标定相机的参数。所述待标定相机的参数。
应用本发明所示实施例,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数,不需要多次调整棋盘格标靶位置或姿态,也不需要多次采集棋盘格标靶的图像,提高了标定效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本邻域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的相机参数标定方法的第一种流程示意图;
图2为本发明实施例提供的棋盘格角点示意图;
图3为本发明实施例提供的一种确定棋盘格角点的流程示意图;
图4为本发明实施例提供的图像滤波模板示意图;
图5为本发明实施例提供的一种生成棋盘格的流程示意图;
图6为本发明实施例提供的相机参数标定方法的第二种流程示意图;
图7为本发明实施例提供的一种相机参数标定装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图;
图9为本发明实施例提供的相机标定***的第一种结构示意图;
图10为本发明实施例提供的相机标定***的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本邻域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种相机参数标定方法、装置、设备及***。下面首先介绍相机参数标定方法,该方法可以应用于待标定相机,也可以应用于与待标定相机通信连接的其他电子设备,具体不做限定。该待标定相机可以为单目相机,也可以为双目相机,也可以为多目相机,可以为针孔相机,也可以为鱼眼相机,等等,具体不做限定。
图1为本发明实施例提供的相机参数标定方法的第一种流程示意图,包括:
S101:获取待标定相机采集到的针对多个棋盘格标靶的标定图像;
S102:在该标定图像中,确定第一棋盘格角点;
S103:根据所确定的第一棋盘格角点,生成多个棋盘格;
S104:将该多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
S105:根据该第二棋盘格角点与该第一棋盘格角点的投影关系,计算该待标定相机的参数。
应用本发明图1所示实施例,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数;第一方面,标定图像中包含多个棋盘格,也就不需要多次调整棋盘格标靶位置或姿态、多次采集针对棋盘格标靶的标定图像,提高了标定效率;第二方面,多次采集针对棋盘格标靶的标定图像,造成的采集误差较大,应用本方案,减小了采集误差。
下面对图1所示实施例进行详细说明:
S101:获取待标定相机采集到的针对多个棋盘格标靶的标定图像。
如果本实施例的执行主体为待标定相机,该相机可以针对多个棋盘格标靶进行图像采集,得到标定图像;如果执行主体为其他具有处理功能的电子设备,该设备可以接收待标定相机发送的标定图像,该标定图像为待标定相机针对多个棋盘格标靶进行图像采集得到的。
在本发明实施例中,预先设置多个棋盘格标靶,这多个棋盘格标靶的姿态及位置各不相同,较佳的,这多个棋盘格标靶所在的平面与成像平面的夹角可以在30度-45度之间,而且各个棋盘格标靶所在的平面互不平行。
为了区分描述,本实施例中将真实世界里的棋盘格称为棋盘格标靶,图像中的棋盘格称为棋盘格。
S102:在该标定图像中,确定第一棋盘格角点。
棋盘格角点可以理解为黑棋盘格与白棋盘格的交点,比如图2中的P点。棋盘格角点具有一些角点独有的特征,利用这些特征,可以在标定图像的像素点中,识别出棋盘格角点。
在本实施例中,为了方便描述,将标定图像像素点中的棋盘格角点称为第一棋盘格角点。
作为一种实施方式,S102可以包括:
利用预先设定的图像滤波模板,对所述标定图像进行滤波;
根据滤波结果,计算所述标定图像中的每个像素点的角点似然性;
基于所述每个像素点的角点似然性,确定所述标定图像中的第一棋盘格角点。
在本实施方式中,确定第一棋盘格角点的具体过程可以如图3所示,包括:
S301:利用预先设定的至少一种图像滤波模板,对该标定图像进行滤波,得到至少一组滤波后的图像,其中,每种图像滤波模板中包含多个图像滤波模板,所述每种图像滤波模板对应一组滤波后的图像,所述每种图像滤波模板为针对棋盘格角点的特征设定的;
S302:计算每组滤波后的图像的均值图像;
S303:计算每组滤波后的图像与其均值图像的差值信息;
S304:根据该差值信息,计算该标定图像中每个像素点的角点似然性;
S305:基于每个像素点的角点似然性,确定该标定图像中的第一棋盘格角点。
在本实施方式中,可以针对棋盘格角点的特征设定图像滤波模板。举例来说,如图4所示,可以预先设定两种图像滤波模板(模板组1和模板组2),每一种图像滤波模板都包含四个图像滤波模板,本邻域技术人员可以理解,第一种图像滤波模板(模板组1)可以检测轴对称的角点,第二种图像滤波模板(模板组2)可以检测相对于水平方向(或竖直方向)旋转了45度的角点。
S101获取的标定图像是针对姿态位置各异的多个棋盘格标靶采集到的,棋盘格标靶可能处于倾斜位置,使标定图像中的棋盘格不再为轴对称图形,因此,利用上述第二种图像滤波模板可以检测出这些不再为轴对称图形的棋盘格。
图4中的图像滤波模板仅为举例说明,并不构成限定,比如,也可以将模板组1中的A和B组成一个模板,C和D组成一个模板,也就是说第一种图像滤波模板包含两个图像滤波模板,这样也可以检测出轴对称的角点。
仍以图4为例进行说明:
假设均值图像为Iuf,其中,为经过第i种模板中的A 模板滤波后的图像,为经过第i种模板中的B模板滤波后的图像,为经过第i 种模板中的C模板滤波后的图像,为经过第i种模板中的D模板滤波后的图像, i为1或2。
假设标定图像中的像素点的角点似然性为IC,
角点似然性可以理解为像素点为角点的概率,基于每个像素点的像素点,可以确定标定图像中的第一棋盘格角点。。
举例来说,可以通过非极大值抑制算法,在IC中提取出角点似然性较大的像素点作为第一棋盘格角点。具体的,可以在IC中确定局部极大值点,将除局部极大值点之外点的似然性置为0。
或者,也可以先在IC中提取出角点似然性较大的像素点作为候选像素点,再从候选像素点中进一步选择第一棋盘格角点。具体的,可以针对每个候选像素点,计算该候选像素点的梯度得分和/或亮度得分;其中,梯度得分表示该候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、亮度得分表示该候选像素点的灰度值与棋盘格角点的灰度值的相似度;基于梯度得分和/ 或亮度得分,在候选像素点中选择第一棋盘格角点。
举例来说,可以预先根据角点的边缘方向构造一个或多个n*n的模板Tg,角点的边缘方向即为图2中的V1、V2方向,Tg中的边缘方向上值为1,其余部分值为0,可以将模板Tg中角点梯度幅值与该候选像素点在n*n邻域内的像素点梯度幅值的点积和作为该候选像素点的梯度得分。
可以预先根据角点的边缘方向构造一个或多个n*n的滤波模板f,可以将模板f中角点像素值与该候选像素点在n*n邻域内像素值的点积和作为像素点的亮度得分。
可以针对梯度得分与亮度得分的乘积设定阈值,如果候选像素点的梯度得分与亮度得分的乘积大于该阈值,则将该候选像素点作为第一棋盘格角点。
作为一种实施方式,针对梯度得分与亮度得分的乘积设定的阈值可以为 0.02。
作为一种实施方式,在计算候选像素点的梯度得分和/或亮度得分之前,可以先对候选像素点进行优化,然后再计算优化后的候选像素点的梯度得分和/ 或亮度得分。
优化过程可以包括:将候选像素点邻域内梯度幅值最大的两个方向确定为所述候选像素点的边缘方向;对所述候选像素点的边缘方向及位置进行优化。
如图2中所示,对于角点P来说,其梯度幅值最大的两个方向,即为V1、 V2方向,V1、V2方向即为P点的边缘方向。
举例来说,针对标定图像中的每个候选像素点,可以基于Sobel边缘检测算法,提取该像素点的水平梯度du和垂直梯度dv,梯度幅值为梯度方向为比如,可以将π划分为32份,也就是取1/32个圆的方向进行计算,可以针对某候选像素点,统计该候选像素点21*21邻域内的梯度幅值直方图,该直方图中最大的两个值对应的两个角度方向即为该候选像素点的边缘方向。
另外,可以基于上述角度方向,对候选像素点作进一步的筛选,比如,将 cos(v1,v2)≥0.25的候选像素点删除,减少候选像素点的数量,减少后续计算量。
可以采用下式对边缘方向进行优化:
其中,p为像素点,为像素点p优化后的边缘方向,vi为像素点p优化前的边缘方向,g表示像素点p的梯度,g=(du,dv)T,Np为像素点p的n*n邻域内同时满足以及norm(gq)>τ2的点,可以理解为vi与g的余弦值,gq表示Np中的像素点q的梯度向量(du,dv)。也就是说,通过使得邻域中所有目标点的梯度方向和、与当前角点边缘方向的余弦值的和达到最小,来确立像素点p的最佳方向。目标点同时满足两个条件:1、目标点的梯度方向与像素点边缘方向夹角大于cos-1τ1;2、目标点的梯度幅值大于τ2。作为一种实施方式,τ1=0.25,τ2=0.1。
S103:根据所确定的第一棋盘格角点,生成多个棋盘格。
S102中确定出标定图像中的棋盘格角点(第一棋盘格角点)后,可以基于这些棋盘格角点,进行棋盘格生长,从而得到多个棋盘格。
作为一种实施方式,S103的具体过程可以如图5所示,包括:
S501:在每个第一棋盘格角点中,依次确定当前角点;
S502:针对每个当前角点,确定该当前角点的第一预设数量个相邻点,所述第一预设数量个相邻点均属于第一棋盘格角点;
S503:利用最小化能量函数,计算该当前角点与该第一预设数量个相邻点构成的初始单元的能量。
S504:判断该初始单元的能量是否小于预设阈值;如果否,返回执行S501;如果是,执行S505。
S505:基于该初始单元进行棋盘格生长,得到该当前角点对应的棋盘格。
可以遍历每个第一棋盘格角点,也就是说,可以依次将每个第一棋盘格角点中作为当前角点。
举例来说,第一预设数量可以为8,可以根据当前角点的边缘方向,确定当前角点的8个相邻点,这8个相邻点都属于S102中确定出的第一棋盘格角点。也就是说,初始单元可以为3*3的棋盘格。或者,初始单元也可以为其他规格的棋盘格(n*n),第一预设数量为n*n-1。
利用最小化能量函数,计算该当前角点与该第一预设数量个相邻点构成的初始单元的能量,棋盘格的生长的目的是使得棋盘格的能量取到最小值,棋盘格能量E定义如下:
初始单元也属于棋盘格,利用上式也可以计算初始单元的能量。对于最小化能量函数来说,可以设定一个最大值(该预设阈值),比如,该最大值可以为0。如果计算得到的初始单元的能量大于等于0,则S504判断结果为否,返回执行S501-S504,也就是重新确定当前角点,基于新的当前角点,构成新的初始单元,直至初始单元的能量小于该预设阈值。
初始单元的能量小于该预设阈值后,基于该初始单元进行棋盘格生长,得到该当前角点对应的棋盘格。具体的,可以针对初始单元的四个生长方向中的每个方向,确定该方向的候选角点;确定候选角点的第二预设数量个相邻点;计算候选角点与第二预设数量个相邻点构成的生长单元的能量;选择能量最小的生长单元作为生长结果;判断生长结果的能量是否大于所述初始单元的能量;如果大于,在该方向中停止生长;如果不大于,基于该生长结果继续生长。
初始单元也属于棋盘格,有四个生长方向,可以在每个方向中确定候选角点,比如,对于3*3的初始单元,每个生长方向上有四个角点,延着生长方向来看,依次将这四个角点记为1、2、3、4,则可以将2、3、4这三个点作为候选角点。基于这三个候选角点,确定每个候选角点的第二预设数量个相邻点,这第二预设数量个相邻点也属于S102中确定出的第一棋盘格角点。
每个候选角点与其对应的第二预设数量个相邻点构成新的棋盘格单元,这里称为生长单元。计算生长单元的能量,具体的,可以利用上述算式 E=Ecorners+Estruct来计算生长单元的能量。
生长过程中要使E达到最小,因此,如里这生长单元的能量小于初始单元的能量,则接受本次生长结果,并基于本次生长结果继续生长,否则,在该方向中停止生长。
可以理解,基于生长结果继续生长,与基于初始单元进行生长类似,将该生长结果称为生长单元:
将针对该生长单元的四个生长方向中的每个方向,确定该方向的候选角点;确定候选角点的第二预设数量个相邻点,该第二预设数量个相邻点均属于第一棋盘格角点;计算候选角点与第二预设数量个相邻点构成的新的生长单元的能量;选择能量最小的新的生长单元作为生长结果;判断生长结果的能量是否大于该生长单元的能量(也就是生长前的棋盘格的能量);如果大于,在该方向中停止生长;如果不大于,基于该生长结果继续生长。
如此循环,直至在各个方向上均停止生长。
作为一种实施方式,在生长过程中,可以将生长得到的棋盘格存储在棋盘格序列中;得到当前角点对应的棋盘格之后,判断棋盘格序列是否为空;如果是,将该当前角点对应的棋盘格添加至棋盘格序列;如果否,判断该当前角点对应的棋盘格与棋盘格序列中的棋盘格是否存在重叠的角点;如果不存在,将该当前角点对应的棋盘格添加至棋盘格序列;如果存在,确定重叠的角点所在的棋盘格序列中的目标棋盘格;判断该当前角点对应的棋盘格的能量是否小于目标棋盘格的能量;如果小于,在棋盘格序列中,用该当前角点对应的棋盘格替换目标棋盘格。
举例来说,假设基于第一个当前角点进行生长(第一次生长)得到棋盘格 X,此时,棋盘格序列为空,将X添加至棋盘格序列。基于第二个当前角点进行生长(第二次生长)得到棋盘格Y,此时,棋盘格序列不为空,判断Y与棋盘格序列中的X是否存在重叠角点:如果不存在,将Y添加至棋盘格序列,棋盘格序列中仅包含X和Y;如果存在,判断Y的能量是否小于X的能量,如果小于,在棋盘格序列中,将Y替换掉X,也就是说,棋盘格序列中仅包含Y。
如此循环,每次生长过程同上,不再赘述。当所有方向都停止生长后,棋盘格序列中包含多个棋盘格。
需要说明的是,S101获取的标定图像中对应多个棋盘格标靶,理想状态下, S103生成的棋盘格与这多个棋盘格标靶是一致的,或者,在生长过程中会出现一些偏差,即便存在这些偏差,S103生成的棋盘格与这多个棋盘格标靶也是存在对应关系的,S103中也生成了多个棋盘格。
S104:将该多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点。
这里所说的棋盘格世界坐标系指的是棋盘格所在世界的坐标系,区别于后续内容中的采集器世界坐标系。
具体的,可以针对所生成的每个棋盘格,在该棋盘格中选择坐标系原点,其中,该坐标系原点、以及该棋盘格所在平面构成该棋盘格的棋盘格世界坐标系;以该坐标系为基准,计算该棋盘格中每个第一棋盘格角点对应的第二棋盘格角点的坐标。
在本实施例中,针对每个棋盘格,都建立各自对应的棋盘格世界坐标系。
选择棋盘格世界坐标系原点的方式有多种,比如,可以随机地将生成的棋盘格中的任意一个棋盘格角点作为坐标系原点,或者,也可以检测棋盘格中的棋盘格角点,将检测到的第一个角点作为坐标系原点,等等,具体不做限定。
将棋盘格所在平面作为棋盘格世界坐标系的XY平面,由坐标系原点发出的垂直于XY平面的射线为Z轴,这样,便构成了棋盘格世界坐标系。以坐标系原点为基准,计算该棋盘格中除坐标系原点之外的第一棋盘格角点在棋盘格世界坐标系中的坐标。计算得到了坐标,也就等同于将棋盘格转换到了棋盘格世界坐标系。为了方便描述,将棋盘格世界坐标系中的棋盘格角点称为第二棋盘格角点。也就是说,第一棋盘格角点为标定图像中的像素点,第二棋盘格角点为棋盘格世界坐标系中的棋盘格角点。
S105:根据该第二棋盘格角点与该第一棋盘格角点的投影关系,计算该待标定相机的参数。
本领域技术人员可以理解,相机的参数一般包含相机内参、相机外参及畸变参数。可以利用LM(Levenberg-Marquardt)算法,优化求解这些参数。
作为一种实施方式,S105可以包括:
对相机内参、相机外参及畸变参数进行初始化;
利用第一目标函数,对初始化后的相机内参、相机外参及畸变参数优化求解;
所述第一目标函数为:
其中,rms为重投影误差,第一目标函数的目标为:重投影误差最小,n为棋盘格的数量,mi为第i个棋盘格中的角点数量,mij表示第i个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点,A表示相机内参, D表示畸变参数,Ri表示相机外参中第i个棋盘格世界坐标系到采集器世界坐标系的旋转参数,Ti表示相机外参中第i个棋盘格世界坐标系到采集器世界坐标系的平移参数,表示将第二棋盘格角点Mij经过A、D、Ri和Ti变换后的投影点,该投影点可以理解为在像平面中的投影像素点坐标。
首先进行参数初始化:
对于相机内参来说,相机内参一般包括主点和焦距;可以利用张氏标定法中的闭环方程,求解初始主点和初始焦距;或者,也可以利用opencv(Open Source ComputerVision Library,开源计算机视觉库)中的方法,将主点位置初始化为图像中心,并采用提取灭点的方式计算初始焦距;或者,也可以直接给定初始主点和初始焦距,等等,具体不做限定。
对于畸变参数来说,可以初始化为0,或者,也可以根据实际情况,确定畸变参数的种类及初始值。
对于相机外参来说,可以利用相机内参的初始值以及畸变参数的初始值,通过solvePnP函数,求解相机外参数的初始值。
然后利用上述第一目标函数,对上述三种参数的初始值进行优化求解,得到最终的相机参数。上述第一目标函数的目标是使重投影误差rms最小,重投影误差也就是第一棋盘格角点mij与其对应的第二棋盘格角点Mj的投影点的误差,第二棋盘格角点Mj的投影点即为将第二棋盘格角点Mj经过相机内参A、畸变参数D和相机外参Ri和Ti变化后的点
应用本发明图1所示实施例,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数;第一方面,标定图像中包含多个棋盘格,也就不需要多次调整棋盘格标靶位置或姿态、多次采集针对棋盘格标靶的标定图像,提高了标定效率;第二方面,多次采集针对棋盘格标靶的标定图像,造成的采集误差较大,应用本方案,减小了采集误差。
图1所示实施例中,主要基于获取到的一张标定图像求解相机参数,如果对单目相机进行参数标定,通过图1实施例,则得到了最终的相机参数,如果对双目相机(两个采集器)或者多目相机(两个以上的采集器)进行参数标定,通过图1实施例,可以得到一个采集器的相机参数。
本发明实施例还提供图6所示实施例,基于多个采集器采集到的标定图像求解相机参数,图6所示实施例主要应用于双目相机或者多目相机。在图6所示实施例中,待标定相机包含多个采集器,每个采集器针对同一组棋盘格标靶进行图像采集,同一组棋盘格标靶中包含多个棋盘格标靶,获取到的标定图像包含多个采集器采集的标定图像。
图6为本发明实施例提供的相机参数标定方法的第二种流程示意图,包括:
S601:获取待标定相机的多个采集器采集的标定图像。
根据上面内容描述,预先设置多个棋盘格标靶,这多个棋盘格标靶的姿态及位置各不相同,较佳的,这多个棋盘格标靶所在的平面与成像平面的夹角可以在30度-45度之间,而且各个棋盘格标靶所在的平面互不平行。
如果该相机为双目相机,则采集到两张标定图像,理想状态下,这两张标定图像中包含的多个棋盘格(真实世界里的棋盘格称为棋盘格标靶,图像中的棋盘格称为棋盘格)是一致的,或者,在采集过程中出现一些偏差,即便存在这些偏差,这两张标定图像中包含的多个棋盘格也是存在对应关系的。
如果该相机多目相机,则每个采集器采集一张标定图像,获取到多张标定图像,同理,这多张标定图像中包含的多个棋盘格也是存在对应关系的。
S602:分别在每个采集器采集的标定图像中,确定第一棋盘格角点。
S603:在每张标定图像中,根据该标定图像中的第一棋盘格角点,生成一组棋盘格。
其中,所述一组棋盘格中包含多个棋盘格。这一组棋盘格与上述预先设置的多个棋盘格标靶是相对应的。
S604:将每组棋盘格进行匹配,根据匹配结果,确定每组棋盘格之间的角点对应关系。
图6所示实施例中,相机包含多个采集器,需要确定不同采集器采集到的标定图像中棋盘格之间的对应关系。可以理解,每张标定图像中包含一组棋盘格,对于某张标定图像中的某一个棋盘格,需要在其它图像中找到与该棋盘格对应的棋盘格,此外还需要确定这两个棋盘格中角点的对应关系。
作为一种实施方式,S604可以包括:
针对每两组棋盘格,在第一组棋盘格和第二组棋盘格中,每次选择两对棋盘格;其中,每对棋盘格包含第一棋盘格和第二棋盘格,第一棋盘格为第一组棋盘格中的棋盘格,第二棋盘格为第二组棋盘格中的棋盘格;
利用每次选择的两对棋盘格,根据相似性变化矩阵,计算所述第一组棋盘格和第二组棋盘格的变化关系;
根据所述变化关系,将第一组棋盘格中每个棋盘格的中心点投影到所述第二组棋盘格,得到多个投影点;
针对每个投影点,在所述第二组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点;
根据每个投影点及其对应的目标中心点,确定该次选择对应的匹配组合,所述匹配组合中包含所述第一组棋盘格中每个棋盘格与所述第二组棋盘格中每个棋盘格之间的一一对应关系;
在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合;
确定所述目标匹配组合中棋盘格之间的角点对应关系。
确定各组棋盘格之间的角点对应关系,可以两两确定。以P、Q两组棋盘格为例进行说明(P组为第一组,Q组为第二组):每次在P组中选择两个棋盘格,在Q组中选择两个棋盘格,P组中的一个棋盘格与Q组中的一个棋盘格组成一对棋盘格,这样,便选择出两对棋盘格。假设P、Q两组棋盘格中都包含9个棋盘格,则可以利用穷举法,每次选择两对棋盘格,也就是可以进行C2 9次选择。
以一次选择下的一对棋盘格为例进行说明,假设该对棋盘格中包含P组棋盘格中的棋盘格1和Q组棋盘格中的棋盘格2。确定棋盘格1的中心点P1和棋盘格 2的中心点P2,中心点也可以理解为均值点。具体的,可以利用相似性变化矩阵P2=HSP1,计算P、Q两组棋盘格之间的变化关系HS。
将P组棋盘格中的9个棋盘格的中心点根据HS投影到Q组棋盘格,得到9个投影点。针对每个投影点,在Q组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点。这样,确定出9个点对,每个点对中包含一个投影点及一个目标中心点,该投影点对应的棋盘格(P组棋盘格中的棋盘格) 与目标中心点所在的棋盘格(Q组棋盘格中的棋盘格)存在对应关系,也就是存在9对棋盘格之间的对应关系。这9对棋盘格之间的对应关系构成了一个匹配组合,也就是说,基于每次选择,可以确定出一个匹配组合,C2 9次选择,便可以确定出C2 9个匹配组合。在这C2 9个匹配组合中,确定匹配程度最高的目标匹配组合。
具体的,针对每次选择对应的匹配组合,计算该匹配组合对应的仿射变化系数;根据所述仿射变化系数,将所述第一组棋盘格中的角点投影到所述第二组棋盘格中,得到投影后角点;针对该匹配组合下的每对棋盘格,对该对棋盘格进行旋转,每次旋转后,计算该对棋盘格中所述投影后角点与所述第二组棋盘格中的角点的角点距离;确定该对棋盘格的最小角点距离;确定每对棋盘格的中心点偏移距离;根据每对棋盘格的最小角点距离及中心点偏移距离,计算每个匹配组合的匹配得分;将匹配得分最高的匹配组合作为目标匹配组合。
以一种匹配组合为例进行说明,计算P组棋盘格与Q组棋盘格之间的仿射变化系数。具体的,可以确定P组棋盘格的中心点(均值点)PA、以及Q组棋盘格的中心点(均值点)PB。根据PB=APA,计算得到仿射变化系数A。PA中可以包含P组中多个棋盘格的中心点,PB中可以包含Q组中多个棋盘格的中心点。
将P组棋盘格中的每个角点根据仿射变化系数A投影到Q组棋盘格中,得到投影后角点。
针对该匹配组合下的每对棋盘格,对该对棋盘格进行旋转,可以进行多次旋转,每次旋转后,计算投影后角点与Q组棋盘格中的角点的角点距离。具体的,可以利用计算角点距离,其中,distancep表示角点距离,n表示角点数量,PL为第二组棋盘格中的角点,PLR为第一组棋盘格角点投影到第一组棋盘中的点,C为棋盘格所有角点。确定该对棋盘格的最小角点距离。
确定每对棋盘格的中心点偏移距离。该中心点偏移距离主要考虑棋盘格的整体偏移距离,具体的,可以利用distanceC=CP-CP′计算该偏移距离,其中, distanceC表示该偏移距离,CP表示第一组棋盘格的中心点,CP′表示将Cp投影到第二组棋盘格中得到的投影后角点。
根据每对棋盘格的最小角点距离及中心点偏移距离,计算每个匹配组合的匹配得分,具体的,可以利用计算匹配得分,Score表示匹配得分,distancep表示上述角点距离,distanceC表示上述偏移距离,n为匹配的棋盘格数量(上述例子中为9),n1和n2可以为设定的间距值,比如,n1可以设定为第二组棋盘格中最大间距的0.2倍,n2为第二组棋盘格中的最大间距,或者,也可以设定为其他值,具体不做限定。
将匹配得分最高的组合作为目标匹配组合,确定目标匹配组合中棋盘格之间的角点对应关系。也可以这样理解,假设空间中存在一个点,该点投影到第一组棋盘格中,成为点1,投影到第二组棋盘格中,成为点2,确定点1及点2的对应关系,即为确定目标匹配组合中棋盘格之间的角点对应关系。根据该角点对应关系,可以进而确定采集器采集到的标定图像之间的旋转平移关系。
可以理解,如果待标定相机为双目相机,则上述第一组棋盘格为其中一个采集器采集到的标定图像中的棋盘格组,第二组棋盘格为另一个采集到的标定图像中的棋盘格组,应用上述实施例,便确定出两个采集器采集的标定图像之间的角点对应关系。
如果待标定相机为多目相机,应用上述实施例,分别确定每两个采集器采集的标定图像之间的角点对应关系,这样,也可以确定出多目相机中每个采集器之间的角点对应关系。
S605:将每个棋盘格转换至自身的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点。
S606:根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算该待标定相机的参数。
本领域技术人员可以理解,双目相机、多目相机的参数一般相机内参、相机外参、畸变参数及每个采集器之间的旋转平移参数。可以利用LM算法,优化求解这些参数。
作为一种实施方式,S605可以包括:
对相机内参、相机外参及畸变参数进行初始化;
根据所述角点对应关系,确定每个棋盘格对应的采集器世界坐标系之间的旋转关系的初始值和平移关系的初始值;
利用第二目标函数,对所述相机内参、相机外参、畸变参数及每个采集器世界坐标系之间的旋转关系和平移关系优化求解;
其中,rms为重投影误差,所述第二目标函数的目标为:所述重投影误差最小,mi为第i个棋盘格中的角点数量,k、l均表示采集器标识,q表示所述待标定相机中包含的采集器的数量,nkl表示标识为l的采集器与标识为k的采集器之间共视棋盘格标靶的数量,mlij表示标识为l的采集器采集到的标定图像中第i 个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点, Al表示标识为l的采集器的相机内参,Dl表示标识为l的采集器的畸变参数,Rki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的旋转参数,Tki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的平移参数,Rkl表示标识为l 的采集器与标识为k的采集器世界坐标系之间的旋转关系,Tkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的平移关系,其中,标识为k的采集器的相机外参包括:Rki,Tki;表示将第二棋盘格角点Mij经过Al、Dl、Rki、Tki、Rkl和Tkl变换后的投影点,该投影点可以理解为在像平面中的投影像素点坐标。
首先进行参数初始化:
对于相机内参来说,相机内参一般包括主点和焦距;可以利用张氏标定法中的闭环方程,求解初始主点和初始焦距;或者,也可以利用opencv(Open Source ComputerVision Library,开源计算机视觉库),将主点位置初始化为图像中心,并采用提取灭点的方式计算初始焦距;或者,也可以直接给定初始主点和初始焦距,等等,具体不做限定。
对于畸变参数来说,可以初始化为0,或者,也可以根据实际情况,确定畸变参数的种类及初始值。
对于相机外参来说,可以利用第一棋盘格角点和第二棋盘格角点,通过 solvePnP函数,求解相机外参数的初始值,即利用空间中某个棋盘格的角点和对应的标定图像中的角点,求解出该棋盘格世界坐标系到相机坐标系的旋转和平移关系。
对于采集器之间的旋转平移关系来说,可以利用上述棋盘格世界坐标系到各个采集器世界坐标系之间的旋转平移关系来确定。以双目相机来说,对于空间中的某个棋盘格的中的某个点,其在该棋盘格世界坐标系中的点为P,假设在其中一个采集器世界坐标系的投影点为Px,在另一个采集器世界坐标系中的投影点为Py,则利用Px=RxP+Tx、Py=RyP+Ty,可以推出 Py=RyR-1 xPx+Ty-RyR-1 xTx=RPx+T,其中,R表示采集器世界坐标系之间的旋转关系,T表示采集器世界坐标系之间的平移关系,Rx、Tx表示该棋盘格世界坐标系到一个采集器世界坐标系之间的旋转平移参数,Ry、Ty表示该棋盘格世界坐标系到另一个采集器的世界坐标系之间的旋转平移参数。这里Rx、Tx和Ry、 Ty通过上面的solvePnP的方式计算得到。
可以理解,对于两个采集器采集的标定图像中的每对棋盘格来说,都可以确定出一个旋转平移关系,可以对这些旋转平移关系取中值,将中值作为这两个采集器的旋转平移关系的初始值。
然后利用上述第二目标函数,对上述几种参数的初始值进行优化求解,得到最终的相机参数。上述第二目标函数的目标是使重投影误差rms最小,重投影误差也就是第一棋盘格角点mlij与其对应的第二棋盘格角点Mj的投影点的误差,第二棋盘格角点Mj的投影点即为将第二棋盘格角点Mij经过相机内参Al、畸变参数Dl、相机外参Rki和Tki、采集器世界坐标系之间的旋转平移关系Rkl和Tkl变换后的投影点,该投影点可以理解为在像平面中的投影像素点坐标。
利用上述第二目标函数,可以求解多目相机的参数,也可以求解双目相机的参数。下面再针对双目相机,给出一个具体的目标函数。为了方便描述,将双目相机的两个采集器分为左采集器和右采集器,针对双目标机的目标函数具体可以为:
其中,n为棋盘格的数量,mi为第i个棋盘格中的角点数量,mLij表示左采集器采集到的标定图像中第i个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点,AL表示左采集器的相机内参,DL表示左采集器的畸变参数,RLi表示第i个棋盘格的棋盘格坐标系到左采集器世界坐标系的旋转参数,TLi表示第i个棋盘格的棋盘格坐标系到左采集器世界坐标系平移参数, mRij表示右采集器采集到的标定图像中第i个棋盘格中第j个第一棋盘格角点, AR表示右采集器的相机内参,DR表示右采集器的畸变参数,R表示左右采集器世界坐标系之间的旋转关系,T表示左右采集器世界坐标系之间的平移关系,表示将第二棋盘格角点Mij经过相机内参AL、畸变参数DL和相机外参RLi和TLi变化后在左采集器的相机像平面的投影点,表示将第二棋盘格角点Mij经过相机内参AR、畸变参数DR、左采集器的相机外参RLi和TLi、左右采集器之间的旋转关系R,左右采集器之间的平移关系T变化后在右采集器的相机像平面的投影点。
应用本发明图6所示实施例,双目相机或者多目相机针对多个棋盘格标靶进行图像采集,得到多张标定图像,每张标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数,不需要多次调整棋盘格标靶位置或姿态,也不需要多次采集棋盘格标靶的图像,提高了标定效率。
作为一种实施方式,在S605之后,可以获取所述待标定相机的每个采集器采集到的校验图像,所述校验图像为该采集器针对所述同一组棋盘格标靶采集到的;
根据计算得到的相机参数,利用预设校正算法对每张校验图像进行校正;
分别在每张校正后的校验图像中确定特征点,并将不同校验图像中存在对应关系的特征点组成特征点组;
计算每个特征点组中特征点的校正误差;
判断所述校正误差是否满足第六预设条件;
如果是,将计算得到的参数确定为最终相机参数;
如果否,调整所述多个棋盘格标靶,并返回执行S801。
本实施方式中,得到相机参数后,对该相机参数进行校验,如果通过校验,则将该相机参数作为最终相机参数,如果未通过校验,则调整多个棋盘格标靶的位置和/姿态,重新进行标定,也就是重新执行图6实施例。
以双目相机为例,双目相机采集一组双目图像(假设为左图像和右图像) 作为校验图像;根据上述方案中计算得到的相机参数,并使用预设校正算法对该双目图像进行校正;然后在校正后的双目图像中分别确定特征点,并将左图像中的特征点与右图像中的特征点进行匹配,匹配的特征点组成特征点组。
作为一种实施方式,每个特征点组包含的特征点可以分别属于不同的校验图像。比如,确定左图像中的特征点1与右图像中的特征点2为匹配的特征点,将特征点1与特征点2组成特征点组。
或者,每个特征点组包含的特征点也可以属于相同的校验图像。比如,确定左图像中的特征点1与右图像中的特征点2为匹配的特征点,确定左图像中的特征点3与右图像中的特征点4为匹配的特征点,将特征点1、特征点2、特征点 3、特征点4组成特征点组。
为了提高校验的准确性,可以在每张图像中选择多个特征点,且这些特征点在图像中均匀分布。确定出多个特征点组后,计算每个特征点组中特征点的校正误差。
举例来说,该预设校正算法可以为BouguetMCT算法,校正误差可以包含两方面,一方面垂直方向的误差,另一方面水平方向的误差。本领域技术人员可以理解,图像的视差、深度差与水平方向的误差相关,如果校验水平方向的误差满足要求,可以认为图像的视差、深度差也满足要求。
可以针对Ealign设定其对应的阈值,比如0.5pix(像素单位)。
计算平方向的误差,可以针对每一特征点组,根据该组中各特征点水平坐标的差异计算得到视差d,根据上述计算得到的相机参数,计算标定图像中各像素点在世界坐标系中的三维坐标,根据该三维坐标,计算各像素点间的距离,将计算得到的距离与真实世界中的实际距离进行比较,根据该比较结果,确定水平方向的误差。
如果这两方面的投影误差都分别小于其对应的阈值,则通过校验,计算得到的相机参数有效,将该计算得到的参数确定为最终相机参数。
与上述方法实施例相对应,本发明实施例还提供一种相机参数标定装置,如图7所示,包括:
第一获取模块701,用于获取待标定相机采集到的针对多个棋盘格标靶的标定图像;
第一确定模块702,用于在所述标定图像中,确定第一棋盘格角点;
生成模块703,用于根据所确定的第一棋盘格角点,生成多个棋盘格;
转换模块704,用于将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
第一计算模块705,用于根据所述第二棋盘格角点与所述第一棋盘格角点的投影关系,计算所述待标定相机的参数。
作为一种实施方式,第一确定模块702,包括:
滤波子模块,用于利用预先设定的图像滤波模板,对所述标定图像进行滤波;
计算子模块,用于根据滤波结果,计算所述标定图像中的每个像素点的角点似然性;
确定子模块,用于基于所述每个像素点的角点似然性,确定所述标定图像中的第一棋盘格角点。
作为一种实施方式,所述滤波子模块,具体用于:
利用预先设定的至少一种图像滤波模板,对所述标定图像进行滤波,得到至少一组滤波后的图像,其中,每种图像滤波模板中包含多个图像滤波模板,所述每种图像滤波模板对应一组滤波后的图像,所述每种图像滤波模板为针对棋盘格角点的特征设定的;
所述计算子模块,具体用于:
计算每组滤波后的图像的均值图像;
计算每组滤波后的图像与其均值图像的差值信息;
根据所述差值信息,计算所述标定图像中每个像素点的角点似然性。
作为一种实施方式,所述确定子模块,包括:
第一确定单元,用于基于所述每个像素点的角点似然性,确定所述标定图像中的候选像素点;
第一计算单元,用于针对每个候选像素点,计算所述候选像素点的梯度得分和/或亮度得分;其中,所述梯度得分表示所述候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、所述亮度得分表示所述候选像素点的灰度值与棋盘格角点的灰度值的相似度;
第一选择单元,用于基于所述梯度得分和/或亮度得分,在候选像素点中选择第一棋盘格角点。
作为一种实施方式,所述确定子模块,还可以包括:
优化单元,用于将所述候选像素点邻域内梯度幅值最大的两个方向确定为所述候选像素点的边缘方向;对所述候选像素点的边缘方向及位置进行优化;
所述第一计算单元,具体用于:计算每个优化后的候选像素点的梯度得分和/或亮度得分;其中,所述梯度得分表示候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、所述亮度得分表示候选像素点的灰度值与棋盘格角点的灰度值的相似度。
作为一种实施方式,生成模块703,包括:
第二确定单元,用于在所确定的每个第一棋盘格角点中,依次确定当前角点;
第三确定单元,用于针对每个当前角点,确定该当前角点的第一预设数量个相邻点,所述第一预设数量个相邻点均属于第一棋盘格角点;
第二计算单元,用于利用最小化能量函数,计算所述当前角点与所述第一预设数量个相邻点构成的初始单元的能量;
第一判断单元,用于判断所述初始单元的能量是否小于预设阈值;如果否,触发所述第二确定单元;如果是,触发继续生长单元;
继续生长单元,用于基于所述初始单元进行棋盘格生长,得到该当前角点对应的棋盘格。
可以理解的是在本一个可选的装置实施例中,模块包含子模块,子模块包含单元,该“继续生长单元”即为子模块下的单元,而初始单元、生长单元中的单元为棋盘格单元,二者含义不同。
作为一种实施方式,所述继续生长单元,具体可以用于:
针对所述初始单元的四个生长方向中的每个方向,确定该方向的候选角点;
确定所述候选角点的第二预设数量个相邻点,所述第二预设数量个相邻点均属于第一棋盘格角点;
计算所述候选角点与所述第二预设数量个相邻点构成的生长单元的能量;
选择能量最小的生长单元作为生长结果;
判断所述生长结果的能量是否大于所述初始单元的能量;
如果大于,在该方向中停止生长;
如果不大于,基于所述生长结果继续生长。
作为一种实施方式,生成模块703,还可以包括:
第二判断单元,用于判断棋盘格序列是否为空;如果是,触发添加单元,如果否,触发第三判断单元;
添加单元,用于将该当前角点对应的棋盘格添加至所述棋盘格序列;
第三判断单元,用于判断该当前角点对应的棋盘格与所述棋盘格序列中的棋盘格是否存在重叠的角点;如果不存在,触发所述添加单元,如果存在,触发第四判断单元;
第四判断单元,用于确定所述重叠的角点所在的所述棋盘格序列中的目标棋盘格;判断该当前角点对应的棋盘格的能量是否小于所述目标棋盘格的能量;如果小于,触发替换单元;
替换单元,用于在所述棋盘格序列中,用该当前角点对应的棋盘格替换所述目标棋盘格。
作为一种实施方式,所述待标定相机包含多个采集器,每个采集器针对同一组棋盘格标靶进行图像采集,所述同一组棋盘格标靶中包含多个棋盘格标靶,所述标定图像包含所述多个采集器采集的标定图像;
第一确定模块702,具体可以用于:
分别在每个采集器采集的标定图像中,确定第一棋盘格角点;
所述生成模块,具体用于:
在每张标定图像中,根据该标定图像中的第一棋盘格角点,生成一组棋盘格,所述一组棋盘格中包含多个棋盘格;
所述装置还可以包括:
匹配模块,用于将每组棋盘格进行匹配,根据匹配结果,确定每组棋盘格之间的角点对应关系;
第一计算模块705,具体可以用于:
根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数。
作为一种实施方式,所述匹配模块,包括:
第二选择单元,用于针对每两组棋盘格,在第一组棋盘格和第二组棋盘格中,每次选择两对棋盘格;其中,每对棋盘格包含第一棋盘格和第二棋盘格,第一棋盘格为第一组棋盘格中的棋盘格,第二棋盘格为第二组棋盘格中的棋盘格;
第三计算单元,用于利用每次选择的两对棋盘格,根据相似性变化矩阵,计算所述第一组棋盘格和第二组棋盘格的变换关系;
投影单元,用于根据所述变换关系,将第一组棋盘格中每个棋盘格的中心点投影到所述第二组棋盘格,得到多个投影点;
第四确定单元,用于针对每个投影点,在所述第二组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点;
第五确定单元,用于根据每个投影点及其对应的目标中心点,确定该次选择对应的匹配组合,所述匹配组合中包含所述第一组棋盘格中每个棋盘格与所述第二组棋盘格中每个棋盘格之间的一一对应关系;
第六确定单元,用于在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合;
第七确定单元,用于确定所述目标匹配组合中棋盘格之间的角点对应关系。
作为一种实施方式,所述第六确定单元,具体用于:
针对每次选择对应的匹配组合,计算该匹配组合对应的仿射变化系数;
根据所述仿射变化系数,将所述第一组棋盘格中的角点投影到所述第二组棋盘格中,得到投影后角点;
针对该匹配组合下的每对棋盘格,对该对棋盘格进行旋转,每次旋转后,计算该对棋盘格中所述投影后角点与所述第二组棋盘格中的角点的角点距离;确定该对棋盘格的最小角点距离;
确定每对棋盘格的中心点偏移距离;
根据每对棋盘格的最小角点距离及中心点偏移距离,计算每个匹配组合的匹配得分;
将匹配得分最高的匹配组合作为目标匹配组合。
作为一种实施方式,转换模块704,具体可以用于:
针对所生成的每个棋盘格,在该棋盘格中选择坐标系原点,其中,所述坐标系原点、以及该棋盘格所在平面构成该棋盘格的棋盘格世界坐标系;
以所述坐标系原点为基准,计算该棋盘格中每个第一棋盘格角点对应的第二棋盘格角点的坐标。
作为一种实施方式,所述参数包含相机内参、相机外参及畸变参数;第一计算模块705,具体可以用于:
对相机内参、相机外参及畸变参数进行初始化;
利用第一目标函数,对初始化后的相机内参、相机外参及畸变参数优化求解;
所述第一目标函数为:
其中,rms为重投影误差,所述第一目标函数的目标为:所述重投影误差最小,n为棋盘格的数量,mi为第i个棋盘格中的角点数量,mij表示第i个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点,A表示相机内参,D表示畸变参数,Ri表示相机外参中第i个棋盘格世界坐标系到采集器世界坐标系的旋转参数,Ti表示相机外参中第i个棋盘格世界坐标系到采集器世界坐标系的平移参数,表示将第二棋盘格角点Mij经过A、D、 Ri和Ti变换后的投影点。
作为一种实施方式,所述参数包含相机内参、相机外参、畸变参数及每个采集器之间的旋转平移参数;第一计算模块705,具体可以用于:
对相机内参、相机外参及畸变参数进行初始化;
根据所述角点对应关系,确定每个棋盘格对应的采集器世界坐标系之间的之间的旋转关系的初始值和平移关系的初始值;
利用第二目标函数,对所述相机内参、相机外参、畸变参数及每个采集器世界坐标系之间的旋转关系和平移关系优化求解;
所述第二目标函数为:
其中,rms为重投影误差,所述第二目标函数的目标为:所述重投影误差最小,mi为第i个棋盘格中的角点数量,k、l均表示采集器标识,q表示所述待标定相机中包含的采集器的数量,nkl表示标识为l的采集器与标识为k的采集器之间共视棋盘格标靶的数量,mlij表示标识为l的采集器采集到的标定图像中第i 个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点, Al表示标识为l的采集器的相机内参,Dl表示标识为l的采集器的畸变参数,Rki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的旋转参数,Tki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的平移参数,Rkl表示标识为l 的采集器与标识为k的采集器世界坐标系之间的旋转关系,Tkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的平移关系,其中,标识为k的采集器的相机外参包括:Rki,Tki;表示将第二棋盘格角点Mij经过Al、Dl、Rki、Tki、Rkl和Tkl变换后的投影点。
作为一种实施方式,所述装置还可以包括:
第二获取模块,用于获取所述待标定相机的每个采集器采集到的校验图像,所述校验图像为该采集器针对所述同一组棋盘格标靶采集到的;
校正模块,用于根据计算得到的相机参数,利用预设校正算法对每张校验图像进行校正;
第二确定模块,用于分别在每张校正后的校验图像中确定特征点,并将不同校验图像中存在对应关系的特征点组成特征点组;
第二计算模块,用于计算每个特征点组中特征点的校正误差;
判断模块,用于基于所述校正误差,判断计算得到的相机参数是否有效;如果有效,将计算得到的相机参数确定为最终相机参数;如果否,触发调整模块;
调整模块,用于调整所述多个棋盘格标靶,并触发所述第一获取模块。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801和存储器802,其中,
存储器802,用于存放计算机程序;
处理器801,用于执行存储器802上所存放的程序时,实现本发明实施例提供的相机参数标定方法。
应用本发明图8所示实施例,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数;第一方面,标定图像中包含多个棋盘格,也就不需要多次调整棋盘格标靶位置或姿态、多次采集针对棋盘格标靶的标定图像,提高了标定效率;第二方面,多次采集针对棋盘格标靶的标定图像,造成的采集误差较大,应用本方案,减小了采集误差。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的相机参数标定方法。
与上述方法实施例相对应,本发明实施例还提供一种相机标定***,如图 9所示,包括:待标定相机901及处理设备902;其中,
待标定相机901,用于针对多个棋盘格标靶进行图像采集,得到标定图像;
处理设备902,用于获取待标定相机901采集到的针对多个棋盘格标靶的标定图像;在所述标定图像中,确定第一棋盘格角点;根据所确定的第一棋盘格角点,生成多个棋盘格;将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;根据所述第二棋盘格角点与所述第一棋盘格角点的投影关系,计算所述待标定相机的参数。所述待标定相机的参数。
作为一种实施方式,如图10所示,待标定相机与处理设备可以通过网线、交换机等设备通信连接,处理设备中还可以设置交互软件,可以通过该交互软件,展示待标定相机采集到的图像,或者通过该交互软件,进行其他数据交互等等,具体不做限定。
或者,待标定相机与处理设备可以通过USB接口或者相机本身的接口直接相连,不需要通过交换机和网线,这也是合理的。本发明实施例并不对待标定相机与处理设备的连接方式进行限定。
应用本发明实施例,相机针对多个棋盘格标靶进行图像采集,得到标定图像,也就是说标定图像中包含多个棋盘格,基于包含多个棋盘格的标定图像,求解相机参数;第一方面,标定图像中包含多个棋盘格,也就不需要多次调整棋盘格标靶位置或姿态、多次采集针对棋盘格标靶的标定图像,提高了标定效率;第二方面,多次采集针对棋盘格标靶的标定图像,造成的采集误差较大,应用本方案,减小了采集误差。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (23)
1.一种相机参数标定方法,其特征在于,包括:
获取待标定相机采集到的针对多个棋盘格标靶的标定图像;所述待标定相机包含多个采集器,每个采集器针对同一组棋盘格标靶进行图像采集,所述同一组棋盘格标靶中包含多个棋盘格标靶,所述标定图像包含所述多个采集器采集的标定图像;
分别在每个采集器采集的标定图像中,确定第一棋盘格角点;
在每张标定图像中,根据该标定图像中的第一棋盘格角点,生成一组棋盘格,所述一组棋盘格中包含多个棋盘格;
针对每两组棋盘格,在第一组棋盘格和第二组棋盘格中,每次选择两对棋盘格;其中,每对棋盘格包含第一棋盘格和第二棋盘格,第一棋盘格为第一组棋盘格中的棋盘格,第二棋盘格为第二组棋盘格中的棋盘格;
利用每次选择的两对棋盘格,根据相似性变化矩阵,计算所述第一组棋盘格和第二组棋盘格的变换关系;
根据所述变换关系,将第一组棋盘格中每个棋盘格的中心点投影到所述第二组棋盘格,得到多个投影点;
针对每个投影点,在所述第二组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点;
根据每个投影点及其对应的目标中心点,确定该次选择对应的匹配组合,所述匹配组合中包含所述第一组棋盘格中每个棋盘格与所述第二组棋盘格中每个棋盘格之间的一一对应关系;
在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合;
确定所述目标匹配组合中棋盘格之间的角点对应关系;
将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数。
2.根据权利要求1所述的方法,其特征在于,分别在每个采集器采集的标定图像中,确定第一棋盘格角点,包括:
分别在每个采集器采集的标定图像中,利用预先设定的图像滤波模板,对所述标定图像进行滤波;
根据滤波结果,计算所述标定图像中的每个像素点的角点似然性;
基于所述每个像素点的角点似然性,确定所述标定图像中的第一棋盘格角点。
3.根据权利要求2所述的方法,其特征在于,所述利用预先设定的图像滤波模板,对所述标定图像进行滤波,包括:
利用预先设定的至少一种图像滤波模板,对所述标定图像进行滤波,得到至少一组滤波后的图像,其中,每种图像滤波模板中包含多个图像滤波模板,所述每种图像滤波模板对应一组滤波后的图像,所述每种图像滤波模板为针对棋盘格角点的特征设定的;
所述根据滤波结果,计算所述标定图像中的每个像素点的角点似然性,包括:
计算每组滤波后的图像的均值图像;
计算每组滤波后的图像与其均值图像的差值信息;
根据所述差值信息,计算所述标定图像中每个像素点的角点似然性。
4.根据权利要求2所述的方法,其特征在于,所述基于所述每个像素点的角点似然性,确定所述标定图像中的第一棋盘格角点,包括:
基于所述每个像素点的角点似然性,确定所述标定图像中的候选像素点;
针对每个候选像素点,计算所述候选像素点的梯度得分和/或亮度得分;其中,所述梯度得分表示所述候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、所述亮度得分表示所述候选像素点的灰度值与棋盘格角点的灰度值的相似度;
基于所述梯度得分和/或亮度得分,在候选像素点中选择第一棋盘格角点。
5.根据权利要求4所述的方法,其特征在于,在所述计算所述候选像素点的梯度得分和/或亮度得分之前,还包括:
将所述候选像素点邻域内梯度幅值最大的两个方向确定为所述候选像素点的边缘方向;
对所述候选像素点的边缘方向及位置进行优化;
所述计算所述候选像素点的梯度得分和/或亮度得分,包括:
计算优化后的候选像素点的梯度得分和/或亮度得分。
6.根据权利要求1所述的方法,其特征在于,所述在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合,包括:
针对每次选择对应的匹配组合,计算该匹配组合对应的仿射变化系数;
根据所述仿射变化系数,将所述第一组棋盘格中的角点投影到所述第二组棋盘格中,得到投影后角点;
针对该匹配组合下的每对棋盘格,对该对棋盘格进行旋转,每次旋转后,计算该对棋盘格中所述投影后角点与所述第二组棋盘格中的角点的角点距离;确定该对棋盘格的最小角点距离;
确定每对棋盘格的中心点偏移距离;
根据每对棋盘格的最小角点距离及中心点偏移距离,计算每个匹配组合的匹配得分;
将匹配得分最高的匹配组合作为目标匹配组合。
7.根据权利要求1所述的方法,其特征在于,所述将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点,包括:
针对所生成的每个棋盘格,在该棋盘格中选择坐标系原点,其中,所述坐标系原点、以及该棋盘格所在平面构成该棋盘格的棋盘格世界坐标系;
以所述坐标系原点为基准,计算该棋盘格中每个第一棋盘格角点对应的第二棋盘格角点的坐标。
8.根据权利要求1所述的方法,其特征在于,所述参数包含相机内参、相机外参及畸变参数;所述根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数,包括:
对相机内参、相机外参及畸变参数进行初始化;
利用第一目标函数,对初始化后的相机内参、相机外参及畸变参数优化求解;
所述第一目标函数为:
9.根据权利要求1所述的方法,其特征在于,所述参数包含相机内参、相机外参、畸变参数及每个采集器之间的旋转平移参数;所述根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数,包括:
对相机内参、相机外参及畸变参数进行初始化;
根据所述角点对应关系,确定每个棋盘格对应的采集器世界坐标系之间的之间的旋转关系的初始值和平移关系的初始值;
利用第二目标函数,对所述相机内参、相机外参、畸变参数及每个采集器世界坐标系之间的旋转关系和平移关系优化求解;
所述第二目标函数为:
其中,rms为重投影误差,所述第二目标函数的目标为:所述重投影误差最小,mi为第i个棋盘格中的角点数量,k、l均表示采集器标识,q表示所述待标定相机中包含的采集器的数量,nkl表示标识为l的采集器与标识为k的采集器之间共视棋盘格标靶的数量,mlij表示标识为l的采集器采集到的标定图像中第i个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点,Al表示标识为l的采集器的相机内参,Dl表示标识为l的采集器的畸变参数,Rki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的旋转参数,Tki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的平移参数,Rkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的旋转关系,Tkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的平移关系,其中,标识为k的采集器的相机外参包括:Rki,Tki;表示将第二棋盘格角点Mij经过Al、Dl、Rki、Tki、Rkl和Tkl变换后的投影点。
10.根据权利要求1所述的方法,其特征在于,在所述根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数之后,还包括:
获取所述待标定相机的每个采集器采集到的校验图像,所述校验图像为该采集器针对所述同一组棋盘格标靶采集到的;
根据计算得到的相机参数,利用预设校正算法对每张校验图像进行校正;
分别在每张校正后的校验图像中确定特征点,并将不同校验图像中存在对应关系的特征点组成特征点组;
计算每个特征点组中特征点的校正误差;
基于所述校正误差,判断计算得到的相机参数是否有效;
如果有效,将计算得到的相机参数确定为最终相机参数;
如果否,调整所述多个棋盘格标靶,并返回执行所述获取待标定相机采集到的针对多个棋盘格标靶的标定图像的步骤。
11.一种相机参数标定装置,其特征在于,包括:
第一获取模块,用于获取待标定相机采集到的针对多个棋盘格标靶的标定图像;所述待标定相机包含多个采集器,每个采集器针对同一组棋盘格标靶进行图像采集,所述同一组棋盘格标靶中包含多个棋盘格标靶,所述标定图像包含所述多个采集器采集的标定图像;
第一确定模块,用于分别在每个采集器采集的标定图像中,确定第一棋盘格角点;
生成模块,用于在每张标定图像中,根据该标定图像中的第一棋盘格角点,生成一组棋盘格,所述一组棋盘格中包含多个棋盘格;
匹配模块,用于将每组棋盘格进行匹配,根据匹配结果,确定每组棋盘格之间的角点对应关系;
转换模块,用于将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
第一计算模块,用于根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数;
其中,所述匹配模块,包括:
第二选择单元,用于针对每两组棋盘格,在第一组棋盘格和第二组棋盘格中,每次选择两对棋盘格;其中,每对棋盘格包含第一棋盘格和第二棋盘格,第一棋盘格为第一组棋盘格中的棋盘格,第二棋盘格为第二组棋盘格中的棋盘格;
第三计算单元,用于利用每次选择的两对棋盘格,根据相似性变化矩阵,计算所述第一组棋盘格和第二组棋盘格的变换关系;
投影单元,用于根据所述变换关系,将第一组棋盘格中每个棋盘格的中心点投影到所述第二组棋盘格,得到多个投影点;
第四确定单元,用于针对每个投影点,在所述第二组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点;
第五确定单元,用于根据每个投影点及其对应的目标中心点,确定该次选择对应的匹配组合,所述匹配组合中包含所述第一组棋盘格中每个棋盘格与所述第二组棋盘格中每个棋盘格之间的一一对应关系;
第六确定单元,用于在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合;
第七确定单元,用于确定所述目标匹配组合中棋盘格之间的角点对应关系。
12.根据权利要求11所述的装置,其特征在于,所述第一确定模块,包括:
滤波子模块,用于分别在每个采集器采集的标定图像中,利用预先设定的图像滤波模板,对所述标定图像进行滤波;
计算子模块,用于根据滤波结果,计算所述标定图像中的每个像素点的角点似然性;
确定子模块,用于基于所述每个像素点的角点似然性,确定所述标定图像中的第一棋盘格角点。
13.根据权利要求12所述的装置,其特征在于,所述滤波子模块,具体用于:
利用预先设定的至少一种图像滤波模板,对所述标定图像进行滤波,得到至少一组滤波后的图像,其中,每种图像滤波模板中包含多个图像滤波模板,所述每种图像滤波模板对应一组滤波后的图像,所述每种图像滤波模板为针对棋盘格角点的特征设定的;
所述计算子模块,具体用于:
计算每组滤波后的图像的均值图像;
计算每组滤波后的图像与其均值图像的差值信息;
根据所述差值信息,计算所述标定图像中每个像素点的角点似然性。
14.根据权利要求12所述的装置,其特征在于,所述确定子模块,包括:
第一确定单元,用于基于所述每个像素点的角点似然性,确定所述标定图像中的候选像素点;
第一计算单元,用于针对每个候选像素点,计算所述候选像素点的梯度得分和/或亮度得分;其中,所述梯度得分表示所述候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、所述亮度得分表示所述候选像素点的灰度值与棋盘格角点的灰度值的相似度;
第一选择单元,用于基于所述梯度得分和/或亮度得分,在候选像素点中选择第一棋盘格角点。
15.根据权利要求14所述的装置,其特征在于,所述确定子模块,还包括:
优化单元,用于将所述候选像素点邻域内梯度幅值最大的两个方向确定为所述候选像素点的边缘方向;对所述候选像素点的边缘方向及位置进行优化;
所述第一计算单元,具体用于:计算每个优化后的候选像素点的梯度得分和/或亮度得分;其中,所述梯度得分表示候选像素点的灰度变化方向与棋盘格角点的灰度变化方向的相似度、所述亮度得分表示候选像素点的灰度值与棋盘格角点的灰度值的相似度。
16.根据权利要求11所述的装置,其特征在于,所述第六确定单元,具体用于:
针对每次选择对应的匹配组合,计算该匹配组合对应的仿射变化系数;
根据所述仿射变化系数,将所述第一组棋盘格中的角点投影到所述第二组棋盘格中,得到投影后角点;
针对该匹配组合下的每对棋盘格,对该对棋盘格进行旋转,每次旋转后,计算该对棋盘格中所述投影后角点与所述第二组棋盘格中的角点的角点距离;确定该对棋盘格的最小角点距离;
确定每对棋盘格的中心点偏移距离;
根据每对棋盘格的最小角点距离及中心点偏移距离,计算每个匹配组合的匹配得分;
将匹配得分最高的匹配组合作为目标匹配组合。
17.根据权利要求11所述的装置,其特征在于,所述转换模块,具体用于:
针对所生成的每个棋盘格,在该棋盘格中选择坐标系原点,其中,所述坐标系原点、以及该棋盘格所在平面构成该棋盘格的棋盘格世界坐标系;
以所述坐标系原点为基准,计算该棋盘格中每个第一棋盘格角点对应的第二棋盘格角点的坐标。
18.根据权利要求11所述的装置,其特征在于,所述参数包含相机内参、相机外参及畸变参数;所述第一计算模块,具体用于:
对相机内参、相机外参及畸变参数进行初始化;
利用第一目标函数,对初始化后的相机内参、相机外参及畸变参数优化求解;
所述第一目标函数为:
19.根据权利要求11所述的装置,其特征在于,所述参数包含相机内参、相机外参、畸变参数及每个采集器之间的旋转平移参数;所述第一计算模块,具体用于:
对相机内参、相机外参及畸变参数进行初始化;
根据所述角点对应关系,确定每个棋盘格对应的采集器世界坐标系之间的之间的旋转关系的初始值和平移关系的初始值;
利用第二目标函数,对所述相机内参、相机外参、畸变参数及每个采集器世界坐标系之间的旋转关系和平移关系优化求解;
所述第二目标函数为:
其中,rms为重投影误差,所述第二目标函数的目标为:所述重投影误差最小,mi为第i个棋盘格中的角点数量,k、l均表示采集器标识,q表示所述待标定相机中包含的采集器的数量,nkl表示标识为l的采集器与标识为k的采集器之间共视棋盘格标靶的数量,mlij表示标识为l的采集器采集到的标定图像中第i个棋盘格中第j个第一棋盘格角点,Mij表示第i个棋盘格中第j个第二棋盘格角点,Al表示标识为l的采集器的相机内参,Dl表示标识为l的采集器的畸变参数,Rki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的旋转参数,Tki表示标识为k的采集器采集的标定图像中第i个棋盘格的棋盘格世界坐标系到采集器世界坐标系的平移参数,Rkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的旋转关系,Tkl表示标识为l的采集器与标识为k的采集器世界坐标系之间的平移关系,其中,标识为k的采集器的相机外参包括:Rki,Tki;表示将第二棋盘格角点Mij经过Al、Dl、Rki、Tki、Rkl和Tkl变换后的投影点。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述待标定相机的每个采集器采集到的校验图像,所述校验图像为该采集器针对所述同一组棋盘格标靶采集到的;
校正模块,用于根据计算得到的相机参数,利用预设校正算法对每张校验图像进行校正;
第二确定模块,用于分别在每张校正后的校验图像中确定特征点,并将不同校验图像中存在对应关系的特征点组成特征点组;
第二计算模块,用于计算每个特征点组中特征点的校正误差;
判断模块,用于基于所述校正误差,判断计算得到的相机参数是否有效;如果有效,将计算得到的相机参数确定为最终相机参数;如果否,触发调整模块;
调整模块,用于调整所述多个棋盘格标靶,并触发所述第一获取模块。
21.一种电子设备,其特征在于,包括处理器和存储器,
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-10任一所述的方法步骤。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一所述的方法步骤。
23.一种相机标定***,其特征在于,所述***包括:待标定相机及处理设备;其中,
所述待标定相机,用于针对多个棋盘格标靶进行图像采集,得到标定图像;所述待标定相机包含多个采集器,每个采集器针对同一组棋盘格标靶进行图像采集,所述同一组棋盘格标靶中包含多个棋盘格标靶,所述标定图像包含所述多个采集器采集的标定图像;
所述处理设备,用于获取待标定相机采集到的针对多个棋盘格标靶的标定图像;分别在每个采集器采集的标定图像中,确定第一棋盘格角点;在每张标定图像中,根据该标定图像中的第一棋盘格角点,生成一组棋盘格,所述一组棋盘格中包含多个棋盘格;
针对每两组棋盘格,在第一组棋盘格和第二组棋盘格中,每次选择两对棋盘格;其中,每对棋盘格包含第一棋盘格和第二棋盘格,第一棋盘格为第一组棋盘格中的棋盘格,第二棋盘格为第二组棋盘格中的棋盘格;
利用每次选择的两对棋盘格,根据相似性变化矩阵,计算所述第一组棋盘格和第二组棋盘格的变换关系;
根据所述变换关系,将第一组棋盘格中每个棋盘格的中心点投影到所述第二组棋盘格,得到多个投影点;
针对每个投影点,在所述第二组棋盘格的每个棋盘格的中心点中,确定与该投影点距离最小的目标中心点;
根据每个投影点及其对应的目标中心点,确定该次选择对应的匹配组合,所述匹配组合中包含所述第一组棋盘格中每个棋盘格与所述第二组棋盘格中每个棋盘格之间的一一对应关系;
在每次选择对应的匹配组合中,确定匹配程度最高的目标匹配组合;
确定所述目标匹配组合中棋盘格之间的角点对应关系;
将所述多个棋盘格转换至各自的棋盘格世界坐标系,得到每个棋盘格的第二棋盘格角点;
根据每张标定图像对应的第二棋盘格角点以及第一棋盘格角点、以及所确定的角点对应关系,计算所述待标定相机的参数。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710522139.6A CN109215082B (zh) | 2017-06-30 | 2017-06-30 | 一种相机参数标定方法、装置、设备及*** |
EP18825102.9A EP3648055B1 (en) | 2017-06-30 | 2018-06-26 | Camera parameter calibration method, device, apparatus, and system |
PCT/CN2018/092808 WO2019001410A1 (zh) | 2017-06-30 | 2018-06-26 | 一种相机参数标定方法、装置、设备及*** |
US16/627,621 US11158089B2 (en) | 2017-06-30 | 2018-06-26 | Camera parameter calibration method, device, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710522139.6A CN109215082B (zh) | 2017-06-30 | 2017-06-30 | 一种相机参数标定方法、装置、设备及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109215082A CN109215082A (zh) | 2019-01-15 |
CN109215082B true CN109215082B (zh) | 2021-06-22 |
Family
ID=64741131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710522139.6A Active CN109215082B (zh) | 2017-06-30 | 2017-06-30 | 一种相机参数标定方法、装置、设备及*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US11158089B2 (zh) |
EP (1) | EP3648055B1 (zh) |
CN (1) | CN109215082B (zh) |
WO (1) | WO2019001410A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3557523B1 (de) * | 2018-04-18 | 2021-07-28 | B&R Industrial Automation GmbH | Verfahren zur erzeugung eines korrekturmodells einer kamera zur korrektur eines abbildungsfehlers |
CN110111393B (zh) * | 2019-03-31 | 2023-10-03 | 惠州市德赛西威汽车电子股份有限公司 | 一种汽车全景标定方法、装置及*** |
CN110223356A (zh) * | 2019-06-10 | 2019-09-10 | 于兴虎 | 一种基于能量生长的单目相机全自动标定方法 |
CN110378967B (zh) * | 2019-06-20 | 2023-09-22 | 江苏理工学院 | 一种光栅投射与立体视觉结合的虚拟靶标标定方法 |
CN110503693B (zh) * | 2019-08-07 | 2021-10-22 | Oppo广东移动通信有限公司 | 参数标定方法、装置、电子设备以及存储介质 |
CN110443856A (zh) * | 2019-08-12 | 2019-11-12 | 广州图语信息科技有限公司 | 一种3d结构光模组标定方法、存储介质、电子设备 |
CN110636273A (zh) * | 2019-10-15 | 2019-12-31 | 歌尔股份有限公司 | 调整投影画面的方法、装置、可读存储介质及投影仪 |
CN112822481A (zh) * | 2019-11-15 | 2021-05-18 | 南京深视光点科技有限公司 | 立体摄像机的校正品质的检测方法及检测*** |
CN112907675B (zh) * | 2019-11-19 | 2022-05-24 | 浙江商汤科技开发有限公司 | 图像采集设备的标定方法、装置、***、设备及存储介质 |
CN111047650B (zh) * | 2019-12-02 | 2023-09-01 | 北京深测科技有限公司 | 一种用于飞行时间相机的参数标定方法 |
CN112907677B (zh) * | 2019-12-04 | 2023-07-25 | 杭州海康威视数字技术股份有限公司 | 一种单帧图像的相机标定方法、装置及存储介质 |
CN113034604A (zh) * | 2019-12-25 | 2021-06-25 | 南京极智嘉机器人有限公司 | 标定***、方法及自导引机器人 |
CN113052912A (zh) * | 2019-12-27 | 2021-06-29 | 上海海思技术有限公司 | 摄像机标定方法和装置 |
CN113160320A (zh) * | 2020-01-20 | 2021-07-23 | 北京芯海视界三维科技有限公司 | 用于相机参数标定的棋盘角点检测方法和装置 |
CN111272102A (zh) * | 2020-05-06 | 2020-06-12 | 中国空气动力研究与发展中心低速空气动力研究所 | 一种线激光扫描三维测量标定方法 |
CN111612853B (zh) * | 2020-05-25 | 2023-08-08 | 追觅创新科技(苏州)有限公司 | 相机参数标定方法及装置 |
WO2021238923A1 (zh) * | 2020-05-25 | 2021-12-02 | 追觅创新科技(苏州)有限公司 | 相机参数标定方法及装置 |
CN111540028B (zh) * | 2020-07-07 | 2020-10-16 | 昆山丘钛微电子科技有限公司 | 一种棋盘格测试图的绘制方法、装置、设备及介质 |
CN114170302A (zh) * | 2020-08-20 | 2022-03-11 | 北京达佳互联信息技术有限公司 | 相机外参标定方法、装置、电子设备及存储介质 |
CN111739090B (zh) * | 2020-08-21 | 2020-12-04 | 歌尔光学科技有限公司 | 视场的位置确定方法及装置和计算机可读存储介质 |
CN112164107B (zh) * | 2020-10-14 | 2023-06-09 | 上海汽车集团股份有限公司 | 一种端到端相机建模方法及装置 |
CN112233187B (zh) * | 2020-10-20 | 2022-06-03 | 深圳无境智能机器人有限公司 | 一种方便稳定的rgbd相机外参数标定方法 |
CN112465916A (zh) * | 2020-11-27 | 2021-03-09 | 浙江光珀智能科技有限公司 | 一种基于全视场平面标定板的rgbd双目标定方法及*** |
CN113112548B (zh) * | 2020-12-23 | 2022-08-19 | 合肥工业大学 | 基于编码立体靶标的双目摄像机内外参数的快速标定方法 |
CN112750168B (zh) * | 2021-01-11 | 2023-09-26 | 上海科技大学 | 事件相机内参的标定方法、装置、计算机设备和存储介质 |
CN112767496B (zh) * | 2021-01-22 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 标定方法、设备及*** |
CN112734861A (zh) * | 2021-01-28 | 2021-04-30 | 歌尔光学科技有限公司 | 标定板结构及相机的标定方法 |
CN114913237A (zh) * | 2021-02-09 | 2022-08-16 | 北京盈迪曼德科技有限公司 | 一种基于单张图像多标定板的相机标定方法及*** |
CN113269839B (zh) * | 2021-05-21 | 2023-10-27 | 深圳一清创新科技有限公司 | 一种相机标定方法、平台、装置及电子设备 |
CN113112553B (zh) * | 2021-05-26 | 2022-07-29 | 北京三快在线科技有限公司 | 双目相机的参数标定方法、装置、电子设备及存储介质 |
CN113298882B (zh) * | 2021-06-07 | 2022-12-20 | 四川大学 | 一种用于显微三维形貌测量***的摄像机标定装置和方法 |
CN113362398B (zh) * | 2021-06-30 | 2022-07-15 | 广州文远知行科技有限公司 | 确定相机内参误差的方法、***、设备和存储介质 |
CN113610927B (zh) * | 2021-08-06 | 2022-04-15 | 镁佳(北京)科技有限公司 | 一种avm摄像头参数标定方法、装置及电子设备 |
CN113589263B (zh) * | 2021-08-06 | 2023-10-31 | 北京易航远智科技有限公司 | 一种多个同源传感器联合标定方法及*** |
CN113610930B (zh) * | 2021-08-13 | 2023-10-20 | 深圳臻像科技有限公司 | 一种大场景相机阵列传递标定方法、***及存储介质 |
CN113610932B (zh) * | 2021-08-20 | 2024-06-04 | 苏州智加科技有限公司 | 双目相机外参标定方法和装置 |
US11625860B1 (en) * | 2021-09-07 | 2023-04-11 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Camera calibration method |
CN113642565B (zh) * | 2021-10-15 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 对象检测方法、装置、设备及计算机可读存储介质 |
CN114466173A (zh) * | 2021-11-16 | 2022-05-10 | 海信视像科技股份有限公司 | 投影设备及自动投入幕布区域的投影显示控制方法 |
CN114170323A (zh) * | 2021-12-07 | 2022-03-11 | 合肥英睿***技术有限公司 | 图像拍摄装置的参数标定方法、设备及存储介质 |
NO20220397A1 (en) * | 2022-03-31 | 2023-10-02 | The Social Gaming Group Ip B V | Camera-based system for game recognition |
CN114795079B (zh) * | 2022-05-06 | 2023-04-14 | 广州为实光电医疗科技有限公司 | 一种医用内窥镜双摄模组的匹配校准方法及装置 |
CN116883516B (zh) * | 2023-09-07 | 2023-11-24 | 西南科技大学 | 相机参数标定方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930544A (zh) * | 2012-11-05 | 2013-02-13 | 北京理工大学 | 一种车载摄像机的参数标定*** |
CN105096317A (zh) * | 2015-07-03 | 2015-11-25 | 吴晓军 | 一种复杂背景中的高性能相机全自动标定方法 |
CN105488810A (zh) * | 2016-01-20 | 2016-04-13 | 东南大学 | 一种聚焦光场相机内外参数标定方法 |
EP3070675A1 (en) * | 2015-03-20 | 2016-09-21 | Ricoh Company, Ltd. | Image processor for correcting deviation of a coordinate in a photographed image at appropriate timing |
CN106846415A (zh) * | 2017-01-24 | 2017-06-13 | 长沙全度影像科技有限公司 | 一种多路鱼眼相机双目标定装置及方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040104935A1 (en) * | 2001-01-26 | 2004-06-03 | Todd Williamson | Virtual reality immersion system |
US7084386B2 (en) * | 2003-05-02 | 2006-08-01 | International Business Machines Corporation | System and method for light source calibration |
US8326022B2 (en) * | 2008-05-22 | 2012-12-04 | Matrix Electronic Measuring Properties, Llc | Stereoscopic measurement system and method |
GB2465792A (en) * | 2008-11-28 | 2010-06-02 | Sony Corp | Illumination Direction Estimation using Reference Object |
US8368762B1 (en) * | 2010-04-12 | 2013-02-05 | Adobe Systems Incorporated | Methods and apparatus for camera calibration based on multiview image geometry |
US8872897B2 (en) * | 2011-05-11 | 2014-10-28 | Intel Corporation | Camera calibration using an easily produced 3D calibration pattern |
US9188973B2 (en) * | 2011-07-08 | 2015-11-17 | Restoration Robotics, Inc. | Calibration and transformation of a camera system's coordinate system |
US9462263B2 (en) * | 2011-11-07 | 2016-10-04 | Intel Corporation | Calibrating a one-dimensional coded light 3D acquisition system |
US8619144B1 (en) * | 2012-03-14 | 2013-12-31 | Rawles Llc | Automatic camera calibration |
US20130259403A1 (en) * | 2012-04-03 | 2013-10-03 | Oluwatosin Osinusi | Flexible easy-to-use system and method of automatically inserting a photorealistic view of a two or three dimensional object into an image using a cd,dvd or blu-ray disc |
US10008007B2 (en) * | 2012-09-20 | 2018-06-26 | Brown University | Method for generating an array of 3-D points |
US8866912B2 (en) * | 2013-03-10 | 2014-10-21 | Pelican Imaging Corporation | System and methods for calibration of an array camera using a single captured image |
EP3510562A1 (en) * | 2016-09-07 | 2019-07-17 | Starship Technologies OÜ | Method and system for calibrating multiple cameras |
-
2017
- 2017-06-30 CN CN201710522139.6A patent/CN109215082B/zh active Active
-
2018
- 2018-06-26 WO PCT/CN2018/092808 patent/WO2019001410A1/zh active Application Filing
- 2018-06-26 EP EP18825102.9A patent/EP3648055B1/en active Active
- 2018-06-26 US US16/627,621 patent/US11158089B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930544A (zh) * | 2012-11-05 | 2013-02-13 | 北京理工大学 | 一种车载摄像机的参数标定*** |
EP3070675A1 (en) * | 2015-03-20 | 2016-09-21 | Ricoh Company, Ltd. | Image processor for correcting deviation of a coordinate in a photographed image at appropriate timing |
CN105096317A (zh) * | 2015-07-03 | 2015-11-25 | 吴晓军 | 一种复杂背景中的高性能相机全自动标定方法 |
CN105488810A (zh) * | 2016-01-20 | 2016-04-13 | 东南大学 | 一种聚焦光场相机内外参数标定方法 |
CN106846415A (zh) * | 2017-01-24 | 2017-06-13 | 长沙全度影像科技有限公司 | 一种多路鱼眼相机双目标定装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3648055A1 (en) | 2020-05-06 |
US11158089B2 (en) | 2021-10-26 |
WO2019001410A1 (zh) | 2019-01-03 |
CN109215082A (zh) | 2019-01-15 |
US20200151908A1 (en) | 2020-05-14 |
EP3648055B1 (en) | 2022-08-03 |
EP3648055A4 (en) | 2020-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109215082B (zh) | 一种相机参数标定方法、装置、设备及*** | |
CN106553195B (zh) | 工业机器人抓取过程中的物体6自由度定位方法及*** | |
Wu et al. | Camera calibration from the quasi-affine invariance of two parallel circles | |
CN106683071B (zh) | 图像的拼接方法和装置 | |
CN107679537A (zh) | 一种基于轮廓点orb特征匹配的无纹理空间目标姿态估计算法 | |
US9025862B2 (en) | Range image pixel matching method | |
CN110008779B (zh) | 一种立体二维码处理方法及装置 | |
CN105303615A (zh) | 一种图像二维拼接与三维表面重建的组合方法 | |
CN110992263B (zh) | 一种图像拼接方法及*** | |
CN105551020B (zh) | 一种检测目标物尺寸的方法及装置 | |
CN110738618B (zh) | 一种基于双目相机的不规则堆料体积测量方法 | |
CN102592124A (zh) | 文本图像的几何校正方法、装置和双目立体视觉*** | |
CN107690650B (zh) | 用于将3d场景重构为3d模型的方法 | |
CN108389157A (zh) | 一种三维全景图像快速拼接方法 | |
CN104240229B (zh) | 一种红外双目相机自适应极线校正方法 | |
CN110059602B (zh) | 一种基于正投影特征变换的俯视人脸矫正方法 | |
CN113192179A (zh) | 一种基于双目立体视觉的三维重建方法 | |
CN107798702A (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
CN105335952B (zh) | 匹配代价计算方法和装置、以及视差值计算方法和设备 | |
CN104331890B (zh) | 一种全局视差估计方法和*** | |
Yuan et al. | 3D reconstruction of background and objects moving on ground plane viewed from a moving camera | |
CN110084743A (zh) | 基于多航带起始航迹约束的图像拼接与定位方法 | |
CN114202632A (zh) | 网格线性结构恢复方法、装置、电子设备及存储介质 | |
CN107680035A (zh) | 一种参数标定方法和装置、服务器及可读存储介质 | |
Bellavia et al. | Image orientation with a hybrid pipeline robust to rotations and wide-baselines |
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 |