相机标定架、基于标定架的单幅图像相机标定方法及系统
技术领域
本申请涉及到相机标定
技术领域
,具体而言,涉及相机标定架、基于标定架的单幅图像相机标定方法及系统,如自动驾驶汽车和特定工况下的相机标定。背景技术
在计算机视觉中,用二维图像进行三维重构需要摄像机标定才能从二维图像中提取三维结构信息。而摄像机标定的目的在于确定摄像机的内外参数以及畸变系数,从而为计算机视觉奠定基础。摄像机标定的方法不仅要非常精确地求解出摄像机的内外参数和畸变系数,同时也要满足各种应用场景的实际需求。关于摄像机标定不单纯在三维重构中应用,在各种场景下都有了很多应用,例如机器人导航、工业控制和医疗诊断等,5G时代各应用场景将更会蓬勃兴起。
目前现有的相机标定方法确定内外参数大部分需要迭代计算、多张图像、需要非线性方法计算正交矩阵或减少内参数个数等,这使得计算不够快速准确且标定板的设计过于复杂。
发明内容
本申请实施例提供了相机标定架、基于标定架的单幅图像相机标定方法及系统,以至少解决现有标定技术确定内外参数需要非线性方法计算正交矩阵的问题,通过正交分解清晰化了内外参数的因果关联。
根据本申请的一个方面,提供了一种相机标定架,包括:三根长度已知的直线棒,其中,所述三根直线棒中的每一根上均设置有三个圆球,其中的两个圆球设置在该直线棒的两端,另一个圆球设置在该直线棒的中间某确定位置,所述三个圆球将所述直线棒分为长度已知的两段,所述三个圆球的直径已知;所述三根直线棒所在的平面为不同的平面。
进一步地,所述三根直线棒的长度相同或不同。
进一步地,所述每一根上的三个圆球的直径相同或不同。
进一步地,所述三根直线棒上的所有圆球的直径相同或不同。
根据本申请的另一个方面,提供了一种基于标定架的单幅图像相机标定方法,包括:获取标定图像,其中,所述图像为对所述的相机标定架进行拍照得到的一张照片;获取所述三根直线棒上的圆球的亚像素中心点坐标;根据每个直线棒的圆球的中心点坐标共线以及物点到相机平面的距离构造世界坐标到所述标定图像的二维像素坐标的第一方程;将所述三根直线棒分别对应的三个第一方程作为方程组求解得到相机的第一外参数;构造每个圆球对应的世界坐标到所述标定图像的二维像素坐标的第二方程;将九个圆球对应的第二方程作为方程组进行求解得到所述相机的内参数;根据所述内参数和外参数的对应关系,得到所述第二外参数;根据所述外参数矩阵,由内参数矩阵唯一的正交解分解出图像坐标系的尺度因子和偏斜参数。
进一步地,还包括:使用所述内参数、所述第一外参数和所述第二外参数对所述相机进行标定。
进一步地,所述第一外参数包括:旋转矩阵R和平移矩阵t的第三个分量;和/或,所述第二外参数包括:所述平移矩阵t的第一个分量和第二个分量;和/或,所述内参数包括:图像坐标系的尺度因子、图像主点坐标和偏斜参数。
根据本申请的再一个方面,提供了一种基于标定架的单幅图像相机标定系统,包括:所述的标定架以及相机,其中,所述相机用于对所述标定架进行拍照。
根据本申请的又一个方面,提供了一种基于标定架的单幅图像相机标定系统,包括:软件以及相机,其中,所述相机用于对所述的标定架进行拍照,所述软件用于执行所述的基于标定架的单幅图像相机标定方法。
进一步地,所述系统安装在需要标定的车辆或其他设备上。
在本申请实施例中,采用了三根长度已知的直线棒,其中,所述三根直线棒中的每一根上均设置有三个圆球,其中的两个圆球设置在该直线棒的两端,另一个圆球设置在该直线棒的中间某确定位置,所述三个圆球将所述直线棒分为长度已知的两段,所述三个圆球的直径已知;所述三根直线棒所在的平面为不同的平面。通过本申请解决了现有标定技术确定内外参数需要非线性方法计算正交矩阵的问题,通过正交分解清晰化了内外参数的因果关联。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于标定架的单幅图像相机标定方法的流程图;
图2是根据本申请实施例的比例关系的示意图;
图3是根据本申请实施例的相机标定方法的场景示意图;
图4是根据本申请实施例的标定架的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为了获取清晰图像现在的相机基本都有自动对焦的功能,因此多张照片的标定不再适合,为了避免由于摄像机拍摄不同照片时由于对焦导致计算出的摄像机内参数改变带来的标定误差,一张照片的标定成为必然的一种趋势,但目前一张图像确定内参数的方法都必须减少内参数来进行标定,从而与实际问题有差距,为了在有六个内参数情形下精确的计算出摄像机的内外参数,本实施例采用图4所示的标定方式只需拍摄一张照片就可以完成相机标定,设备简单容易获取,该发明属于三维标定物的标定方法。由于该方法只使用单一图像,因此该相机标定非常快速,可以在高速实时的标定场景中适用。与传统的方法相比,所提出的方法更加灵活。与自标定相比,该方法具有较好的鲁棒性。如图4所示,本实施例设计了一种3D的高精度标定架(或者也称为标定模板),即由三根不共面的直线棒组成,每根直线棒由三个圆球点分成距离已知的两段,只要相机放置在合适位置且只拍一张照片就能解决标定问题。
本实施例涉及的相机标定模板的设计及相机标定方法,适用于带标定架的运动相机拍摄物体的单幅图像标定,如自动驾驶汽车和特定工况下的移动相机标定。
在本实施例中提供了一种相机标定架,包括:三根长度已知的直线棒,其中,所述三根直线棒中的每一根上均设置有三个圆球,其中的两个圆球设置在该直线棒的两端,另一个圆球设置在该直线棒的中间某确定位置,所述三个圆球将所述直线棒分为长度已知的两段,所述三个圆球的直径已知;所述三根直线棒所在的平面为不同的平面。
作为一个可选的实施方式,所述三根直线棒的长度相同或不同。所述每一根上的三个圆球的直径相同或不同。为了更好的进行计算,在一个优选实施方式中,所述三根直线棒上的所有圆球的直径均相同。
通过本实施例,只需要单幅图像、不需要迭代计算、不需要非线性方法计算正交矩阵,结合亚像素获取标定特征点可以高精度快速计算出实时的内外参数,适合处理多摄像头和变焦的各种静止或运动的场景。
在本实施例中提供了一种基于标定架的单幅图像相机标定方法,图1是根据本申请实施例的基于标定架的单幅图像相机标定方法的流程图,如图1所示,该方法的流程包括以下步骤:
步骤S102,获取标定图像,其中,所述图像为对所述的相机标定架进行拍照得到的一张照片;
步骤S104,获取所述三根直线棒上的圆球的亚像素中心点坐标;
步骤S106,根据每个直线棒的圆球的中线点坐标共线以及物点到相机平面的距离构造世界坐标到所述标定图像的二维像素坐标的第一方程;
步骤S108,将所述三根直线棒分别对应的三个第一方程作为方程组求解得到相机的第一外参数;
步骤S110,构造每个圆球对应的世界坐标到所述标定图像的二维像素坐标的第二方程;
步骤S112,将九个圆球对应的第二方程作为方程组进行求解得到所述相机的内参数;
步骤S114,根据所述内参数和外参数的对应关系,得到所述第二外参数;
步骤S116,根据所述外参数矩阵,由内参数矩阵唯一的正交解分解出图像坐标系的尺度因子和偏斜参数。
通过上述步骤,一张图上可以存在九个点,利用这九个点的方程就可以求解出相应的内外参数。
作为一个可选的实施方式,使用所述内参数、所述第一外参数和所述第二外参数对所述相机进行标定。
优选地,所述第一外参数包括:旋转矩阵R和平移矩t的第三个分量;和/或,所述第二外参数包括:所述平移矩阵t的第一个分量和第二个分量;和/或,所述内参数包括:图像坐标系的尺度因子、图像主点坐标和偏斜参数。例如,相机标定的内参数可以是五个:α、β是图像(u,v)坐标系的尺度因子,(u0,v0)是图像主点坐标,γ为偏斜参数。
通过本实施例,提供了一种相机空间标定架的设计及发明一种新的与之匹配的标定方法。本实施例用新设计的标定架和相匹配的标定方法实现了内外参数的标定。本实施例首先设计了一种3D的高精度标定架,即由三根不共面的直线棒组成,每根直线棒由三个圆球点分成距离已知的两段,所以只要相机放置在合适位置且只拍一张照片就能解决标定问题,本实施例提出的标定方法计算内外参数只需要线性组求解方程和简单公式计算,避免了非线性迭代计算带来的误差。此种标定是单一图像的摄像机标定且计算简单,因此该相机标定非常快速,可以在高速实时的标定场景中适用。该标定方法更具灵活性,鲁棒性和实用性。
在本实施例中提供了一种基于标定架的单幅图像相机标定系统,包括:所述的标定架以及相机,其中,所述相机用于对所述标定架进行拍照。
在本实施例中提供了一种基于标定架的单幅图像相机标定系统,包括:软件以及相机,其中,所述相机用于对所述的标定架进行拍照,所述软件用于执行所述的基于标定架的单幅图像相机标定方法。图3是根据本申请实施例的相机标定方法的场景示意图,如图3所示,所述系统可以安装在需要标定的车辆上,作为一个可选的实施方式,也可以安装在需要标定的其他设备上。
通过本实施例,解决了现有标定技术确定内外参数需要非线性方法计算正交矩阵的问题,通过正交分解清晰化了内外参数的因果关联。
下面结合附图和具体实施例介绍本申请的实现方式。
首先说明相机标定的理论模型。假设成像中畸变的影响提前已经预处理,设普通相机成像原理为针孔成像模型:
针对相机平面坐标系增加一个旋转当θ取任意值时即表示相机平面上的坐标系可以任意选取。相机平面上的直角坐标系的选取与成像无关,考虑到
可知此时的外参数矩阵为因此对应的内参数矩阵为也就是相机平面坐标系选取不一样时影响到了内外参数矩阵。因为
当相机平面的直角坐标系随意选取时,不妨设内参数矩阵为因此一个三维点投影到二维图像点对应的公式如下:
s是一个比例因子,s=l3x+m3y+n3z+z′0表示物点到相机平面的距离,(R,t)是外参数,R是一个3×3的旋转矩阵,t是一个平移矩阵,K是内参数矩阵,α,β是图像(u,v)坐标系的尺度因子,(u0,v0)是图像主点坐标,ω,γ为偏斜参数。
设物空间有共线的三点A,B,C,其所在直线记为L1,三点对应的空间坐标也用相同字母表示。则可设令λA=1-λ,λB=λ,则有C=λAA+λBB。
图2是根据本申请实施例的比例关系的示意图,如图2所示,利用如图2三点共线以及物点到相机平面的距离,结合相似三角形相似比有关系式:
因点坐标的比例关系式C=λAA+λBB与坐标系无关,所以在小孔坐标系下仍有C=λAA+λBB即
此时的成像关系式为这里为P点在小孔坐标系下坐标,为对应像坐标。所以两边乘以K,得用(1.4)式代入上式得:
因而有结合(1.3)式得:
若有物空间的三条类似于L1的不共面的线Li,i=1,2,3,如图3所示。分别记对应线上的三点为Ai,Bi,Ci,i=1,2,3,结合(1.7)式,可得方程组:
联立求解,可得向量从而利用其模长为可得z′0,从而也可求得(l3,m3,n3)。因为向量[l1 m1 n1],[l2 m2 n2]与[l3 m3 n3]两两互相垂直,内积为0,则[l1 m1n1]和[l2 m2 n2]可根据[l3 m3 n3]可构造出,得外参数旋转矩阵R以及t的第三个分量z′0。
内参数矩阵和外参数t按如下方式进行讨论:
成像公式为:
设因为有
因而有
因有九个点,可以得九个以上的方程,将前八个都减去第九个,得八个方程构成的方程组:
令
则有:
通过以上广义逆矩阵就可以求出相机的内参数,再将内参数结果代入到(1.10)式就可以求出外参数t的前两个分量[x′0 y′0]。
结合公式:
利用两点坐标可以求出
再由内参数中的子矩阵的如下分解:
可以将相机成像模型写为:
在此种标定方法中相机的内外参数都是通过线性公式解出,确保了计算的准确性及运算时间,该相机标定非常快速。
下面结合附图和具体实施例介绍本申请的相机标定板的设计及相机标定方法的实现方式。
在本实施例中提供了一种相机标定板的设计及相机标定方法,图3是根据本申请实施例的相机标定方法的场景示意图,如图3所示,所述方法通过以下步骤实现:
步骤一:先找到三根长度已知的直线棒,在每根直线棒上串三个半径已知的圆球(半径可以相同也可以不同),两个圆球串在直线棒的两端一个串在直线棒的中间某确定位置,把直线棒分成距离已知的两段;
步骤二:在自动驾驶车辆前合适位置放置这三根直线棒使得三根直线棒分别处于不同的平面,放置于需要标定相机的视野范围内并且需要测量圆球中心点的世界坐标;
步骤三:通过相机获取标定板的图像,用相应软件提取图像的RGB数据,获取图像中三个直线棒上圆球的亚像素中心点坐标;
步骤四:根据上述提出的相机标定方法计算出相机的内外参数完成相机标定。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。