APP下载

基于光束法平差的双线阵系统标定技术

2024-02-29郭迎超王国珲

计算机测量与控制 2024年2期
关键词:双线光束畸变

郭迎超,王国珲

(西安工业大学 光电工程学院,西安 710021)

0 引 言

随着科技发展,机器视觉在人类生产过程中越来越重要,提高生产的灵活性和自动化程度是机器视觉最基本的特点,一部分人类难以工作的危险环境或者人类难以满足要求的场所,机器视觉将会是一个很好的替代选项。线阵相机[1-6]就是只有一行或一列像元阵列的相机,它的经济条件实惠,拍摄视场大,像元尺寸灵活,帧频率高,十分适合一维动态高精密目标的测量,可以满足许多测量生产的高精度现场要求,故而需要对线阵相机进行更高精度的标定[7]。

由于线阵相机自身特殊的物理性质,标定物[8-9]不能使用类似面阵相机的常规标定物(如棋盘格),因此,一些学者设计了特殊的标定物。由于线阵相机标定方法特殊,导致对其优化重投影误差算法的发展缓慢,大大影响了线阵相机的精准度。本文利用光束平差法模型来降低线阵系统中的重投影误差。光束法平差[10-15](bundle adjustment)又叫束调整、捆集调整,它主要是将多个相机的位姿和测量点的三维坐标作为未知参数求解,其本质是一个优化模型。将相机拍出照片中的特征点像素坐标作为观测数据后利用最优化算法得到最优的相机参数和世界点坐标。目前优化算法发展已经多种多样,经常使用的优化算法有粒子群算法,Gauss-Newton法、列文伯格-马夸尔特(LM,Levenberg-Marquardt)法,粒子群算法是一种群体算法,它可以在全局搜索到最优的解,但每次的解都不一定相同,对于多维复杂的式子优化精度较低。Gauss-Newton法是对Newton法的改良,它解决了Newton法计算量过大的问题,但需要求解公式的Jacobian矩阵正定且非奇异。LM算法又属于信赖域算法,信赖域算法指的是以算法每次迭代的初始位置作为前提,设立出一个可以信赖的最大位移区间,通过在该位移区间中寻找目标函数的近似函数来求解得到真正的位移。目前,光束法平差发展迅速,广泛应用在同步定位和地图构建[16-17](SLAM)、运动推断结构(SFM)和遥感遥测等领域。

本文研究了线阵相机的数学模型和一般的非线性标定方法,随后利用光束法平差进一步优化了相机参数,提高了系统的标定精度。

1 双线阵系统成像模型

该系统基于立体交汇原理[18],由两个视场共面放置的线阵相机组成,构建双线阵系统的数学模型,Ow-XwYwZw是世界坐标系,左右线阵相机的相机坐标系分别为Oc1-Xc1Yc1Zc1和Oc2-Xc2Yc2Zc2。空间中有一点Pw(Xw,Yw,Zw),在左右相机中都有投影,其投影关系[19]为:

Pc1=R1Pw+T1

(1)

Pc2=R2Pw+T2

(2)

其中:Pc1和Pc2为点Pw分别在左右相机坐标系中的坐标。R1,T1和R2,T1是世界坐标系转换到左右相机坐标系的旋转矩阵和平移矩阵。R和T是描述左右相机位姿关系的旋转矩阵和平移矩阵。

线阵相机可以视为特殊情况下的面阵相机,由于线阵相机成像像元只有一行,故而对于左线阵相机坐标Pc1(Xc1,Yc1,Zc1)成像模型为:

(3)

2 双线阵系统标定

2.1 直接线性标定法求取相机内外参数

图1为目标世界坐标经过相机变换为像素坐标的成像模型图,由于线阵相机只有一个维度,故而可以忽视掉世界坐标系中与线阵相机视场正交的维度,线阵相机世界坐标到相机坐标的转换和相机坐标到像素坐标的转换[20]可以得出相机世界坐标到像素坐标的转换关系,在实验时将双线阵相机视场与标定靶面平行,则可忽视双目相机中的ZW,故而可以得出线阵相机的成像数学模型:

(4)

图1 线阵相机成像模型图

式中,l11,l12,l13,l31,l32,l34与线阵相机内参系数和外参系数有关,他们确定了摄像机的成像特性,通过多个空间特征点(Xi,Yi)和他们一一对应的像素坐标ui可以解出l11,l12,l13,l31,l32,l34的值,通过对这6个未知数的分解,可以得到各个线阵摄像机的内参数(fx,fy,α,β)和外参数(R,T)。另外,在理想情况下,如果已知双线阵相机各自的l11,l12,l13,l31,l32,l34,便可以得到双线阵相机所拍摄图像的世界坐标。联立矩阵,可以将像素坐标信息表示为:

(5)

此时,方程中含有6个未知数,因此需要6个或者以上的像素坐标与世界坐标的对应关系,就可以计算得出L中所有的元素。在对线阵相机标定时,通常会将所制作的标定物上采集已知世界坐标特征点的数量大于6个,从而建立起的方程数量大过未知数的数量,再利用最小二乘法的计算方式计算出方程的解,这样做不但可以计算出每个未知数的结果,而且还可以提高计算精度。为了简化运算,将L中所有元素除以l34,并将设计实验中获取到的N个特征点的像素坐标u和世界坐标XW,YW代入上式获得新的矩阵方程:

(6)

通过N个特征点和式(6),可以利用线性方程组求解方法求解出L矩阵,L矩阵包含了线阵相机模型中的内参系数和外参系数,整理可得:

(7)

联立式(7)即可将单个线阵相机内参数和外参数表示出来,这就是直接线性标定方法,将相机的各个系数表达出来:

(8)

综上所述,由单个线阵相机的直接线性变换标定方法推导出线阵相机基本标定原理,得到线阵相机的内参系数和外参系数。但该方法只是理想条件下所能获得的线阵相机系数,没有考虑在实际应用中镜头自身所存在的畸变。

在实际标定过程中,因为各种物理现实中的问题,镜头都会存在一些畸变,而与理想状态下的线阵摄像机模型不符合。根据畸变的成因主要将畸变种类分为径向畸变,离心畸变和薄棱镜畸变。径向畸变主要是因为透镜在生产加工时发生形变导致的,图像像素点沿着畸变中心径向产生偏差。离心畸变主要是因为系统光学中心和几何中心不一致所导致的。薄棱镜畸变则是因为设计时就存在的缺陷或者加工时的误差所导致。为此,为了降低畸变导致的误差,建立线阵相机的畸变模型对其做一定的处理,为了方便计算简化畸变数学模型,结果为:

(9)

为了减少镜头畸变对图像所造成的误差,将畸变数学模型作为最优化算法中的目标函数迭代求出相机的畸变参数k1,k2。

2.2 双目联合标定

利用实验和算法将两架线阵相机各自的内参系数,外参系数还有畸变系数一一求解出来后,还需要求出两台相机的相对位姿信息,也就是对双线阵系统进行联合标定。具体做法是同时对两架线阵相机进行标定后,得到两架相机各自的相机坐标系对同一个世界坐标系的旋转矩阵和平移向量,利用计算求出的结果根据下面的公式计算,便可以求出两架相机的相对位置关系,完成联合标定。当两架线阵相机对同一个世界坐标系下的标定物时获取的外参(旋转矩阵和平移矩阵)分别为:R1,R2,T1,T2,两架相机的相机坐标系为Pc1,Pc2时,可以得到两个线阵相机之间的关系:

(10)

2.3 基于光束平差法的相机参数优化

对于双线阵成像系统,在得到左相机的像素坐标后,可以利用左右相机内参系数和位姿关系求得右相机的重投影坐标,其公式为:

(11)

光束平差法本质是一个优化模型,它的目的是优化重投影误差。光束法平差的目的就是利用已知的多个相机信息找出最优的相机位姿信息和空间点坐标,使两次投影之间误差最小。如图2所示,从特征点(六面体的角点)发射出的光线经过两个相机成像在像平面上,理论上特征点PW,实际成像点P1还有投影中心Oc应该连成一条直线,但是现实世界中因为噪音误差等各种因素影响,每条光线基本不可能准确汇聚到投影中心Oc上,利用多台相机位姿信息计算出另一台相机的理想成像点,优化相机参数和目标空间点坐标,使实际成像点尽可能地靠近理想成像点。由此,可得到光束法平差算法的目标函数:

(12)

图2 光束平差模型

因为LM算法能够便捷地求得最优解,所以通过LM算法优化光束平差法,对其进行相机中各个系数的优化求解,寻找最优的相机系数。LM算法全称Levenberg-Marquardt(列文伯格-马夸尔特)算法,是一种基于最小二乘法的优化算法。迭代公式是最小二乘问题的核心,为:

xk+1=xk+αgk

(13)

其中:gk为收敛的方向,α为收敛的步长,LM算法在牛顿法和高斯牛顿法的基础上做出了改进,利用Jacobian矩阵近似Hessian矩阵解决了牛顿法计算量过大的问题,提高了算法效率,又利用信赖域和增量转换矩阵的方法解决了高斯牛顿法中当迭代步长不满秩或者非正定时导致算法无法迭代的问题,LM法的迭代公式为:

xk+1=xk-(JTJ+μD)-1gk

(14)

LM迭代步长在高斯牛顿法生成的一个近似被信任区间内,这就是LM法又被称为信赖域算法的原因,通常,μ被称为信赖域半径,当μ为0时,LM法就与高斯牛顿法没有区别,D为增量转换矩阵,为了减少计算量,在LM算法中增量转换矩阵通常用使用单位矩阵I来代替。另外,J为Jacobian矩阵,它类似于多元函数的导数,其表达式为:

(15)

其中,LM法详细步骤如下:

1)将非线性相机标定过程中得到的相机参数设为初始值,设置迭代终止的阈值,第一次迭代k=0。

2)计算JTJ,根据增量方程△x=(JTJ+μD)-1gk,求解得出△x。

3)计算ρ:

(16)

若ρ大于3/4,则μ=2μ,若ρ小于1/4,则μ=0.5μ。这是利用目标函数和近似模型函数的比值来判断迭代的有效性。

4)若误差小于迭代设置的阈值或者到达最大迭代次数,则结束循环,否则令k=k+1从第二步继续迭代循环。

3 实验

3.1 实验平台搭建

图像采集系统主要由铝型材搭建成的支架,标定板系统还有两架线阵相机以及图像采集卡组成。实验所用的线阵相机为德国Balser公司所生产的黑白线阵相机,型号为Basler sprint spL2048-140 km。相机镜头采用的是尼康公司型号为14 mm f/2.8D ED AF Nikkor的定焦镜头,图像采集卡选用的是X64-Xcelera-CL-PX4Full(OR-X4C0-XPF00)采集卡,它是X64-Xcelera系列的采集卡,可以充分发挥PCI-Express(Peripheral Component Interconnect Express)采集平台的优势。PCI-Express平台不需要字体总线负载,几乎不占用CPU运算便可以完成图像的采集与上传功能,图像向计算机上传的速度可以达到1 GB/s。

实验采用汇聚式双目视觉模型,实验所用双线阵系统与其数学模型如图3(b)所示,通过标定靶标和标定板建立起目标特征点像素坐标和空间坐标之间一一对应的点对关系。线阵系统是对空间中一维的点成像,因为其成像的特殊性,在一般情况下很难将成像与拍摄目标准确对应。为了满足这个要求,就必须设计和制作出特殊的标定物,标定靶和标定板设计的好坏尤为重要,它们会直接影响到标定的准确度,增加不必要的误差。

图3 标定板与标定靶标示意图

由于线阵相机成像画面是一维的,这就需要标定板必须表面光滑并且拥有较高的平整度,这样它才可以提供足够精准度的世界坐标位置信息,最大化减少获取到每一个特征点世界坐标时候的误差,满足线阵相机高精度的标定要求。所以采用了有较高平整度的镀锌铁板当作本实验的标定板,另外,由于镀锌铁板有较强的磁性,它可以将标定靶牢固地垂直吸附固定在标定板上。实验利用铝型材做出一个1 850 mm高,1 225 mm长的平台,平台底部装有轮子方便移动。将一个长1 300 mm,宽900 mm的镀锌铁制标定板左右两点固定在平台两侧距离地面900 mm的铝型材支架上,标定板上粘贴一张1 050 mm×750 mm的坐标纸,通过在坐标纸上建立坐标系,从纸上的刻度来方便快速地获取到世界坐标信息。利用一个内部镶嵌有磁铁的钢尺作为标定靶标,钢尺可以牢牢吸附在标定板上,钢尺上每隔100 mm放置一个标定柱,总共8个,标定柱由一个长60 mm的圆柱和一个直径为10 mm的底盘组成。利用坐标纸上的刻度校准钢尺的位置,确定好每一个标定柱的坐标信息后利用双线阵系统获得原始图像,获取到一幅原始图像后更换位置校准,再次采集图像,从而获取到足够数量的点对。

然后,利用双线阵系统采集钢尺在不同刻度下的多幅图像,对其进行图像处理后,获取到每一个标定柱的图像像素中心坐标。得到世界坐标信息与求得的图像像素坐标信息后,通过公式(8)的计算,从而获得初始理想双线阵系统的内参与外参。按照汇聚式双目视觉模型摆放好标定板和两架线阵相机的位置,图3(a)为实验搭建图。摆放时应注意标定板应垂直于地面,左右相机视场与标定板所在平面应平行,并且尽量使左右相机视场共面。

由于线阵相机的视场近似于一条线,拍摄出的图像无法通过照片准确地对应到实际物件中,对摆放相机位姿调整相机视场造成了一定的困难,本实验通过对架设相机的设备进行特殊结构设计解决该问题,在相机上方安装一个带有直线的激光器,以模拟和指示相机的视场。用这条直线手动调整激光器,使其与线阵相机的视场重合,这样激光器发射的激光就可以用来模拟线阵相机视场。在其上方安装一个线性红外激光器作为辅助光源。实验开始前,用投影仪将校准板的平面与水平面对齐,然后调整校准板的左右两侧与水平面平行。使用校准板所在的平面作为参考,使用激光器发射的线激光器模拟线性阵列相机的视场,从而调整左相机和右相机的视场以使其平面与校准板所在平面平行。然后,进行局部微调,以确保左线阵相机和右线阵相机视场完全重叠。

当左右线阵相机视场基本共面后,即可开始线阵相机的标定实验。随后利用Basler CCT+软件配置相机,使用CamExper软件采集图像,通过调试软件,可以得到清晰完整的8根标定柱图像时,即完成一次原始图像采集。本次实验总共移动了6次标定靶标,得到了56个标定柱的世界坐标,利用两架线阵相机拍摄了14张图片,得到了112个特征点坐标,世界坐标与两架线阵相机得到的标定柱特征点各自构成了一一对应的点对关系。

3.2 图像预处理与中心坐标提取

由于外部光照、阴影、空气中杂质和复杂环境等因素的影响,难以有效识别和提取各个标定柱的像素坐标。这些影响无法利用实验进行消除,故而通过利用对图像的预处理,来消除图像中不需要的数据。目前,比较常见的处理方法有背景差分法,模板匹配和光流法。这些方法因为较为成熟而受到广泛的应用。

由于线阵相机标定拍摄实验是在静态的背景下拍摄原始图像,不需要固定的模板,因此模板匹配法并不适合于对本实验图像进行预处理。光流法抗外部噪音效果较差,运算量巨大,并且本实验成像并不随着时间变化而变化,因此光流法也不适合本实验。背景差分法计算量较小,定位精度较高并且操作简单,本实验在进行图像采集时,背景是固定不变的,因此背景差分法是一种效果卓越的处理方法。本实验采用背景差分法对8根标定柱进行检测,消除固有背景对目标标定物的影响。

背景差分法主要是将两张同一背景的图像相比较,去掉同一区域,将灰度效果不同的部分与原始图像进行分离,得出的信息就是标定柱信息。其实现如式(17)所示:

fc(x,y)=fa(x,y)-fb(x,y)

(17)

其中:fc为背景差分后的特征点图像,fa和fb为原始图像和背景图像。

图像形态学处理是一种基于图像结构和几何形状分析的非线性处理算法。它可以通过图像自身的结构元素定量修改图像的几何特征,算法结构简单,降噪效果极佳。腐蚀,膨胀,闭运算和开运算是形态学处理算法中的4种基本运算。腐蚀运算主要是去除掉图像中包含的噪音和毛刺,使图像边界像里收缩。膨胀运算主要是将微小缺失的像素点填补,将目标与周围像素点合并,使图像边界向外扩展。A是目标标定柱原始图像,B是结构元素。式(18)为腐蚀运算,式(19)为膨胀运算:

A⊖B={x|[(B)x⊆A}

(18)

(19)

腐蚀运算和膨胀运算经常一起用于图像处理领域,形态学的开运算是先将目标图像进行腐蚀运算,然后再对其进行膨胀运算,闭运算则恰恰相反,是先将目标图像进行膨胀运算后,再对得到的图像进行腐蚀运算。开运算主要是将目标图像中小于结构元素的区域和孤立点滤除掉,平滑目标轮廓边缘。闭运算则是将目标图像中小于结构元素的空洞,断点填充连接起来,达到对目标缺失区域的填补效果。开运算和闭运算与单纯的腐蚀膨胀运算比起来,目标图像原有的特征可以得到保持。开运算的定义公式为式(20),闭运算的定义公式为式(21):

A∘B=(A⊖B)⊕B

(20)

A·B=(A⊕B)⊖B

(21)

按照图4所示的流程对图像进行处理,依次进行背景差分法,灰度化,二值化及图像形态学处理后得到处理后的图像,根据实验所获取图像的性质,采用半径为5个像素点的结构元素对二值化后的图像进行开运算,得到如图5第二张图的效果。

图5 标定图像特征点提取

图6 光束法平差优化前后重投影误差对比

最后再通过形心法得到各个目标特征点中心坐标,视为检测到的像素点,处理结果如图5最后一张图所示。形心法可以快速方便简洁精度较高的计算出原始图像中的中心像素坐标,如式(22)所示:

(22)

4.3 实验结果分析

使用前文所推导出的直接线性变换法得到理想情况下的相机数据,再使用优化算法对标定参数进行参数优化,得到相机的内参系数(fx,fy,α,β)、畸变系数(k1,k2)见表1,相机外参系数(R,T)见表2。

表1 相机内参和畸变参数的标定结果(光束法平差优化前)

表2 双线阵系统外参数的标定结果(光束法平差优化前)

在双线阵系统,光束平差法主要是以传统的非线性标定方法得到的相机内参系数,外参系数和畸变系数为基础,将他们与世界坐标作为优化目标组成一集合作为优化初值,结合LM最优化算法不断迭代更新该集合直至重投影误差最小。优化后的标定参数结果见表3。优化后的世界坐标见表4。

表3 双线阵系统外参数的标定结果(优化后)

表4 双线阵系统经过光束平差法优化后的世界坐标

图4为使用光束法平差前后的重投影误差变化对比图。未使用光束法平差前,系统的各个特征点重投影误差不但数值很大,而且变化幅度也很大,平均值为0.662 1 pixel,而使用了光束平差法优化了之后,系统的重投影误差逐渐降低并稳定在0.165 4 pixel附近.

表5分析计算使用光束法平差优化后的重投影误差。双线阵系统标定的重投影误差比优化前减少了。因此使用光束平差法对双线阵系统进行优化是必要的。

表5 法平差优化前后重投影误差对比

4 结束语

使用自制的铝型材支架,镀锌铁板标定板和内含磁铁的不锈钢靶标对双线阵系统进行标定,利用形心法检测图像中的目标数并精确提取到每个不锈钢柱的像素坐标。利用基于直接线性变换法和LM算法对双线阵系统进行标定,得到双线阵系统的内参系数,外参系数和畸变系数。为了更好地表征该系统在现实物理空间中的定位误差,使用光束平差法对双线阵系统的参数和特征点的世界坐标进行迭代优化,优化后双线阵系统重投影误差为0.165 4 pixel,相比于一般的双线阵相机标定方法减少了75.01%,提高了双线阵系统的标定精度。

猜你喜欢

双线光束畸变
中老铁路双线区段送电成功
诡异的UFO光束
在Lightroom中校正镜头与透视畸变
双线自动闭塞轨道电路故障时发车进路准备的探讨
激光共焦显微光束的偏转扫描
双线模式下概念教学的探讨
激光探索
高职动漫专业双线教学模式的构建与实践
辐射诱导染色体畸变的快速FISH方法的建立
LMCCD影像光束法平差实验