基于相机平移矩阵奇异值分解的极线校正

2024-02-29 14:38李守业胡茂海李天冉段哲一
红外技术 2024年2期
关键词:极线内参畸变

李守业,胡茂海,李天冉,段哲一

(南京理工大学 电子工程与光电技术学院,江苏 南京 210094)

0 引言

立体视觉技术已经应用于生活和生产的各个领域[1-4]。立体匹配是在双目图像中寻找同名点的过程,是立体视觉的核心问题。在实际应用中,由于相机结构的误差,很难保证两个相机的主轴完全理想平行,因此直接对图像进行立体匹配非常耗时,而且误差较大。极线校正可以对双目图像进行校正投影变换,使图像投影到公共的平行相机基线的空间平面,对应的极线位于同一水平线上,并且没有垂直视差,从软件层面校正了机械上的偏差。这样立体匹配问题可以优化为一维扫描线上的搜索问题,缩短匹配所需的时间,提高匹配的精度。

目前,国内外学者已提出了各类极线校正算法。Bouguet 等提出了一种先将左右相机旋转到同一平面再进行校正的算法[5];Andrea Fusiello 等提出了一种立体图像对的外极线校正方法,该方法通过基于6 个自由度的代价函数的最小化,强制执行由无穷远处平面引起的校正变换[6];Hartley 等提出的校正方法中右视图的变换是由基本矩阵推导出的,并且接近于图像中心附近的刚性变换,但左校正图像通常有较大的仿射失真[7-9],林国余等对该算法进行了改进[10],提高了校正的精度,减小了校正图像失真;John Mallon 等提出了一种基于估计的基本矩阵从不同的角度对立体图像进行未校准平面校正的鲁棒方法[11];Wenhuan Wu等提出了一种对具有已知固有参数的两种不同相机拍摄的一对立体图像进行极线校正的方法,利用基于估计的基础矩阵的向量值,得到了两个校正变换的封闭解析解[12]。各类算法虽然能够完成双目图像的极线校正,但是在面对左右相机内参、外参相差过大等情况时,仍然存在校正精度低、图像形变严重、算法运行缓慢等缺点。

为了弥补上述算法的不足,本文提出了一种基于相机平移矩阵奇异值分解的极线校正方法。实验结果表明本文算法具有高鲁棒性,实现简单,运行速度快,实现了高精度低畸变的双目图像极线校正,可以有效完成后续的立体匹配过程。

1 对极几何

对极几何描述了两幅视图之间的内在映射关系,在立体视觉中占据了重要的地位。如图1所示,物点P在两幅图像上所呈的像点分别是P1、P2。点P、P1、P2与相机光心C1、C2是共面的,这5 个点组成的平面为极平面π。C1与C2的连线是基线。右相机的光心C2在左相机的像平面的像点e1称为左极点,左相机的光心C1在右相机的像平面的像点e2称为右极点。P1与e1的连线是左极线I1,P2与e2的连线是右极线I2。双目相机原始图像中,极线I1和I2存在着垂直视差,不利于立体匹配的搜索过程;经过极线校正后,图像的极线平行,有助于立体匹配的计算。

图1 对极几何Fig.1 Epipolar geometry

任意对应的像点P1、P2,它们总是满足一个关系式:

式中:F是一个3×3 的2 秩矩阵,约束了一对像点的位置关系,称作基础矩阵。假设Il是左图像的一条极线,那么F*Il=Ir是另一图像对应的外极线。极点与基础矩阵满足:Fe1=0=FTe2。假设K1、K2分别是左右相机的内参矩阵;R、T分别是双目相机间相对的旋转矩阵和平移向量;a是一个任意常数,代表比例因子,基础矩阵的表达式为:

F包含了相机的内参和外参。[T]x是平移向量T的反对称形式,称为平移矩阵,[T]x的表达式为:

令E=K2TFK1,得到本质矩阵E,只包含相机的外参,表达式为:

2 极线校正

本文极线校正的流程如图2所示,第一步:计算一个新的旋转矩阵Rn,校正后的左右相机旋转矩阵为Rn,图像极点在无穷远处并且极线平行;第二步:确定校正后双目相机的新内参矩阵Mn;第三步:原像素坐标系的像点P1、P2通过内参矩阵M1、M2得到归一化坐标表示的图像点m1=M1-1P1、m2=M2-1P2,再通过变换矩阵RL、RR将归一化坐标m1、m2转换到校正后的相机坐标系中,乘以物点在新的相机坐标系的Z向量的倒数α1、α2,得到新相机坐标系中的归一化坐标m1′=α1RLm1、m2′=α2RRm2;第四步:通过新的内参矩阵Mn将点m1′、m2′转换到新的像素坐标系上,得到校正点P1′=Mnm1′、P2′=Mnm2′。左右图像校正的变换矩阵H1、H2表达式分别为:

图2 极线校正流程Fig.2 Epipolar correction process

H1=α1MnRnR1-1M1-1=α1MnRLM1-1

H2=α2MnRnR2-1M2-1=α2MnRRM2-1

本文在2.1 小节给出求解Rn的方法,在2.2 小节给出求解Mn的方法。

2.1 求解Rn 的方法

设Mn是校正过的内参矩阵,Rn是校正过的旋转矩阵,M1、M2、R1、R2分别是左右相机的内参矩阵和旋转矩阵,RL、RR分别是左右相机的变换矩阵,F0是校正后的基础矩阵,α1、α2是校正过程中物点在校正的相机坐标系Rn的Z向量的倒数。像点P1、P2,在经过极线校正后有:

极线校正后的理想双目相机极线平行,极点e1=e2=a[1 0 0]T,a为任意常数,基础矩阵F0可以表示为:

结合基础矩阵约束关系(3),可以得到:H2TF0H1=F代入H1、H2,得到:

根据基础矩阵和本质矩阵的转换关系,式(6)等式右侧可以转换为:

那么E0的表达式为:

所以式(6)可以转换为:

在实际的奇异值分解中,求得的平移矩阵[T]x奇异值∂1,∂2并不完全相等。为了减小校正的误差,本文定义一个奇异值的校正矩阵Q:

因此校正后的旋转矩阵Rn表示为:

另外,对于任意围绕X轴旋转的旋转矩阵Rx,有RxTE0Rx=E0,这意味着,在校正过程中,有无数个可以使用的变换H1和H2。为了使图像在旋转过程中畸变尽量小,要使校正过程中原始左相机绕X轴的旋转为0。旋转矩阵RL可以分解为围绕Z、Y、X轴依次旋转的3 个旋转矩阵。如果旋转分别围绕X、Y和Z轴,欧拉角分别为ω、θ和ψ,则各矩阵如下:

RL是先绕Z轴旋转,然后绕Y轴旋转,最后绕X轴旋转。

对于左相机ω=artan(RL(2,3)/RL(3,3)),因此在校正后旋转矩阵Rn的左侧同时乘以RxT,以减小误差和畸变。因此Rn的表达式为:

2.2 求解Mn 的方法

为此,本文提出了一个新内参矩阵确定标准:假设一幅M×N的图像,取原来图像中的4 个点原点O(0,0,1)、行角点A(M,0,1)、列角点B(0,N,1)、中心点G(M/2,N/2,1)。这4 个点经过校正变换H1后分别为:A1、B1、C1、G1。

第一步确定倾斜因子S。假设点A、B、O经过Ht=α1RnR1-1M1-1变换到校正相机坐标系归一化坐标后坐标分别为A′、B′、O′,A′O′=(x1,y1,0),B′O′=(x2,y2,0)。使图像的偏斜尽可能小,令A′O′、B′O′经Mn变换后垂直:(MnA′O′)T(MnB′O′)=0,求得:

第三步将校正后的图像移到视场中心。假设G1的坐标是(p,q,l),令L=M/2-p,H=N/2-q。更改新的内参矩阵为:

这样确立内参Mn可以使校正后的图像在视场中心,且校正产生畸变与偏斜都较小。

3 实验结果与分析

本文采用了SYNTIM 数据库的图像进行实验。该数据库包含了分辨率分别为512×512 和768×576的双目图像,同时提供了每对图像的内外参数。本文从极线校正的误差、图像的形变、算法运行速度3 个角度来评价极线校正方法。

校正产生的失真用图像的畸变[14]ESV和图像的偏斜Esk表示。ESV是图像校正前后的面积比,ESV的表达式是:

Esk是图像校正前后内角的变化,Esk的表示式是:

选取SYNTIM 数据库中Rubik、Sport 等20 对图像,分别计算它们通过文献[5]Bouguet 法、文献[6]Fusiello 法、文献[9]Hartley 法、文献[11]Mallon 法、文献[12]Wu 法和本文方法进行校正的误差、畸变、偏斜、运行时间,如图3所示。可以发现使用本文方法校正的图像校正的误差较小;校正几乎不产生畸变;校正的偏斜也比较小,且没有出现过8°以上的大偏斜。

图3 20 对图像使用不同方法的误差(a)、畸变(b)、偏斜(c)、运行时间(d)Fig.3 Rectification error(a),scale variance(b),skewness(c)and runtime(d)of different methods for 20 images

图像的误差、畸变、偏斜、运行时间的平均值如表1所示(其中最优的数据以粗体标出)。本文方法所校正的图像平均校正误差0.5940 像素、图像平均校正畸变1.0062,是表格方法中最优的,平均图像偏斜2.3941°仅此于Bouguet 方法。在表1 显示的结果中,Bouguet 校正的偏斜量与本文相当,但本文校正结果仍然更加精确。本文算法平均用时0.2302 s,与Bouguet、Fusiello、Wu 校正算法用时相近。Hartley校正方法需要对图像进行特征点识别,运行速度较慢,平均用时为0.8473 s;Mallon 校正方法需要使用最小二乘法求解右图像的校正矩阵,并求解最优化过程,平均用时为1.305 s,运行速度是表格方法中最慢的。相对于Hartley 校正方法和Mallon 校正方法,本文算法用时更少。

表1 平均误差、畸变、偏斜、运行时间Table 1 Average error,scale,variance,skewness and runtime

同时,本文也利用极线的斜率来评估了校正的误差。图4 是SYNTIM 数据库中Rubik 图像,以及通过各个方法校正后的Rubik 图像。画出它们的极线,并计算极线的斜率绝对值的平均值,其中:图4(a)是未校正前的图像,图像中的极线并不平行,平均斜率为1.23×10-2;图4(b)~图4(f)分别是使用Bouguet、Fusiello、Hartley、Mallon、Wu 校正方法校正后的Rubik 图像。图4(g)是使用本文方法校正的Rubik 图像,极线的斜率为平均2.39×10-7,是几幅图像中斜率最小的,说明图像的极线最为平行。同时经过本文方法校正的Rubik 图像几乎没有畸变,偏斜大约为2.11°,符合极线校正的要求。

图4 画出极线的Rubik 图像及极线斜率(a)原始图像(斜率=1.23×10-2)(b)Bouguet 方法(斜率=3.82×10-7)(c)Fusiello 方法(斜率=2.71×10-7)(d)Hartley 方法(斜率=3.95×10-5)(e)Mallon 方法(斜率=3.19×10-7)(f)Wu 方法(斜率=1.48×10-6)(g)本文推荐方法(斜率=2.39×10-7)Fig.4 Rubik image with polar line drawn and polar line slope(a)Original image(Slope=1.23×10-2);(b)Bouguet’s method(Slope=3.82×10-7);(c)Fusiello’s method(Slope=2.71×10-7);(d)Hartley’s method(Slope=3.95×10-5);(e)Mallon’s method(Slope=3.19×10-7);(f)Wu’s method(Slope=1.48×10-6);(g)Proposed rectification method(Slope=2.39×10-7)

4 结语

本文提出了一种双目图像极线校正的方法,首先利用基于RANSAC 框架的鲁棒性估计算法对原始匹配点进行筛选,剔除错误匹配点,将筛选出的正确匹配点作为有效点集进行计算;然后通过对平移向量的反对称矩阵求奇异值分解,得到校正后的旋转矩阵,并根据校正前后的图像位置关系,重新确立新的内参矩阵,使图像的失真性最小。实验结果表明本文算法平均校正误差在0.6 像素内、图像的畸变接近于1、平均偏斜在2.4°左右、平均运行时间为0.2302 s;相比于参考文献中的极线校正方法,本文算法在校正精度、图像形变、运行速度方面具有一定优势,满足了极线校正的需求,优化了立体匹配算法。未来的研究工作将会围绕如何进一步提高极线校正的精度从而提高立体视觉匹配的精度来进行。

猜你喜欢
极线内参畸变
破解定值有妙法,极点极线显神威
一道高考试题的背景简介
内参报道如何在全媒体时代“出圈”
在Lightroom中校正镜头与透视畸变
办好党报内参的思考与探索
内参影响力与媒体公信力
辐射诱导染色体畸变的快速FISH方法的建立
《癌变·畸变·突变》2014年第26卷索引
《癌变·畸变·突变》第六届编委会第2次会议纪要
2013 年《三农内参》订阅简则