张琦, 王庆
(西北工业大学 计算机学院, 陕西 西安 710072)
光场以空间光线为基本单元,通过对光线位置和角度信息的离散采样,可实现重聚焦、变视点等新颖应用,是计算摄像学的理论创新点和技术突破口[1]。相较于传统相机,光场相机[2]可通过单次拍摄实现对场景的多视点观测,有助于提高计算机视觉领域诸多应用性能,例如姿态估计[3]、三维重建[4]、全景拼接[5]、视觉里程计[6]等。为了支撑上述应用,光场相机参数的精确标定至关重要,研究人员提出了多种光场相机标定方法,这些方法可根据标定板类型(角点、线、二次曲线)分为3类。
Dansereau等[7]构建了光场相机记录光线与空间光线的映射关系,建立了基于点到光线距离的光线外投影误差,并以此标定光场相机参数。Zhang等[8]提出了六参数的光场相机多投影中心模型,分析了光场相机光线采样对场景结构的影响,推导了三维空间点投影变换矩阵,提出了光场相机标定方法。Zhang等[9]研究了光场相机的光线采样和变换过程,提出了光场相机光线空间投影模型,并以此标定光场相机参数。与此不同,Bok等[10]利用从光场微透镜图像中提取的直线特征标定光场相机,推导了六参数的光场相机投影模型,继而估计光场相机内参数。但是由于光场成像存在空间与角度分辨率折衷问题,导致角点和直线特征检测不准确,影响了光场相机标定的精度。相较于点和直线,二次曲线由于其简易的数学模型和丰富的边缘点使得其特征提取更为稳定。二次曲线作为一种特殊的几何目标,由于其特征提取的可靠性在光场相机标定中发挥了重要作用。Zhang等[11]研究了多投影中心模型对二次曲线和平面的映射,推导了共心二次曲线的共自配极三角形,分析其性质并在光场中重建共自配极三角形,以此标定光场相机。但是,该类标定方法由于要求二次曲线共心而不够灵活。
本文旨在设计一种离心圆标定板,并研究基于离心圆共自配极三角形的光场相机标定方法。通过分析离心圆极点-极线关系,研究了离心圆共自配极三角形的性质,并重建离心圆共自配极三角形。根据光场相机多投影中心模型对平面及二次曲面的映射,本文提出基于离心圆的光场相机标定算法。仿真和真实数据上的实验结果表明了该方法可精确标定光场相机。
在二维射影空间中,点x和二次曲线C可定义一条直线l=Cx,该直线l被称为x关于C的极线,反之x为l关于C的极点[13]。给定一个三角形,如果它的3个顶点是对应3条边关于二次曲线C的极点,则称这种三角形为关于C的自配极三角形。圆的自配极三角形有一重要性质:圆有无穷多个自配极三角形,且其中一个顶点为无穷远点,其所对应边过圆心。若多个二次曲线所对应的自配极三角形相同,称其为共自配极三角形[14]。
双平行平面坐标[15]可用于光线参数化及描述光线变换。假设r=(s,t,x,y)T为光线双平行平面坐标,其中(s,t)T是视点平面绝对坐标,即光线与视点平面的交点,表示光线的位置,(x,y)T是图像平面相对坐标,即光线与图像平面的交点相对于视点坐标(s,t)T的偏移量,表示光线方向。在光场相机多投影中心模型下,三维空间点X=(X,Y,Z)T被映射到投影中心为(s,t,0)T的子孔径图像点(x,y)T[8]
(1)
式中,f为双平行平面间距。
K是光场相机内参矩阵,描述光场相机记录光线(i,j,u,v)T与相机坐标系下光线(s,t,x,y)T的变换
(2)
式中,(ki,kj,ku,kv,u0,v0)T是光场相机内参数。此外,通过旋转矩阵R=(r1,r2,r3)∈SO(3)和平移向量这t=(tx,ty,tz)T∈R3描述光场相机姿态变换
X=RXw+t
(3)
式中,X和Xw为空间点在相机标系和世界坐标系下坐标。根据(1)~(3)式,多投影中心模型对平面和二次曲线的映射为
(4)
(5)
式中:~表示相差一个缩放因子;Hij为场景平面与光场任意视点(i,j)T子孔径图像间平面单应。tst=(s,t,0)T指光场内任意2个子孔径图像的平移向量,(s,t)T=Kij(i,j)T。
相较于棋盘格角点和直线特征提取,离心圆由于其丰富的边缘点和简易数学模型,易于检测和重建,本节将推导离心圆共自配极三角形的唯一性,并给出了其位置特点。
定理1离心圆共自配极三角形有且仅有一个,该三角形的一个顶点为无穷远点,其对应边过2个离心圆的圆心。
证明假设abc为C1的自配极三角形,其中顶点a和边lbc为关于C1的极点-极线关系。若a在C1上,则lbc与C1相切于点a,则点a,b,c在同一条直线上,无法构成三角形。若a在C1内,则lbc在C1外,从而,点b,c在C1外。若a在C1外,lbc与C1相交,则出现3种情况:点b,c在C1外、点b,c在C1内或一个在内一个在外。①若点b,c均在C1外,则其对应的边与C1必有交点,而该条件不成立。②若点b,c在C1内,其所对应的边与C1无交点,而点a在C1外,该条件不成立。因此,abc的3个顶点的位置特点为2个在C1外,1个在C1内。
假设abc为离心圆C1和C2的共自配极三角形,则其3个顶点中的2个分别在C1和C2内,1个在离心圆外,如图1所示。根据第1.1小节所述,C1与C2的自配极三角形有一顶点为无穷远点,且其对边过圆心,因此C1与C2的共自配极三角形有且仅有1个,其外顶点c落在无穷远线上,其对边lab过C1与C2的圆心。
图1 离心圆共自配极三角形
接下来从代数角度推导离心圆共自配极三角形的几何意义,给定离心圆C1和C2
(6)
(7)
式中,(x0,y0)T为C2的圆心,r为离心圆半径。
λ1=1⟺l1=(-y0,x0,0)T
(8)
首先在平面标定板上绘制如图1所示的离心圆并记录圆心及半径的参数。通常,离心圆标定板设为世界坐标系OXwYw平面,并设C1圆心为坐标系原点。微透镜图像、子孔径图像、对极平面图为光场的降维表达方法,其中子孔径图像是光场固定视点坐标的二维图像。子孔径图像由于其分辨率较高而易于提取标定特征,常被用于光场相机标定。根据1组离心圆和光场子孔径图像上离心圆的对应,本节提出了基于离心圆的光场相机标定方法,包括基于共自配极三角形的线性初始化和基于光场Sampson误差的非线性优化。
(9)
(10)
在完成光场内外参的线性估计后,引入光场相机径向畸变模型
(14)
在完成对光场相机径向畸变建模后,为了能优化光场相机内参数p=(ki,kj,ku,kv,u0,v0)T,外参数Rp,tp和畸变参数d=(k1,k2,k3,k4)T,引入光场Sampson距离
(15)
利用Rodrigues公式[16]参数化旋转矩阵R,并通过LM算法[17]非线性优化(15)式。算法1描述了基于离心圆的光场相机标定方法。
算法1 基于离心圆共自配极三角形的光场相机标定算法
输入: 标定板离心圆Cn,n=1,..,N
输出: 光场相机内参数P=(ki,kj,ku,kv,u0,v0)T
输入: 光场相机外参数Rp,tp,p=1,2…,P
畸变系数d=(k1,k2,k3,k4)T
1) for 每个姿态p下的光场 do
2) for 每个子孔径图像 do
3) 根据定理1和(8)式重建离心圆共自配极三角形
4) 根据(10)式计算光场单应Hij
5) end for
6) end for
7) 利用旋转向量正交性和Cholesky分解从Hij中计算光场相机内参数(ku,kv,u0,v0)T
8) for 每个姿态p下的光场do
9) 根据(11)~(13)式计算光场相机内参数(ki,kj)T和外参数Rp,tp
10) end for
11) 初始化光场相机畸变参数d=(0,0,0,0)T
12) 使用LM优化算法非线性优化(15)式
本节通过仿真数据与真实数据的实验结果及分析,验证本文提出的基于离心圆的光场相机标定算法的准确性。
本小节在仿真数据上验证了本文所提标定算法,根据(3)~(5)式,利用Matlab生成仿真光场数据,相机内参数为ki=1.4×10-4,kj=1.5×10-4,ku=2.0×10-3,kv=1.9×10-3,u0=-0.59和v0=-0.52。在仿真实验中,分别使用2种离心圆标定板,如图2所示。此外,设置用于标定的光场数量为3,每个光场中共有7×7个视点,光场相机姿态分别是(6°,28°,-8°),(12°,-10°,15°)和(-5°,5°,-27°)。在每个子孔径图像的图像点(u,v)T上加入均值为零标准差为σ的高斯噪声,变化范围是0.1至1.5像素,步进间隔为0.1像素。对于每组噪声数据,分别重复150次实验。
图2 离心圆标定板类型
图3展示了内参数估计值的相对误差。其中,相对误差随着噪声的增加而呈近线性增加。当噪声固定时,相对误差随着离心圆数量的增加而降低。其中,高斯噪声0.5像素是光场相机标定过程中所处噪声上限。如图3所示,当噪声固定在0.5像素时,内参数(ki,kj)T的相对误差小于0.23%,(ku,kv)T和(u0,v0)T的相对误差小于0.12%。因此,这些结果都证明了本文所提标定方法的鲁棒性。
图3 噪声实验
表1列出了光场相机标定过程中离心圆投影点和离心圆光场子孔径图像间Sampson均方误差,包括线性初始化、无畸变非线性优化和带畸变非线性优化的结果。实验结果表明,本文所提标定方法得到了较为准确的初值估计结果。在无畸变非线性优化中,各个数据集的Sampson误差均有明显的下降,这展示了所定义的投影点到二次曲线Sampson距离及其代价函数(见(15)式)的有效性。另外,随着畸变模型的引入,本文所提标定方法的Sampson均方误差有明显下降,这证明了畸变模型(见(14)式)的作用。
表1 基于离心圆的光场相机标定方法的Sampson均方误差
为了与基于角点和直线特征的光场相机标定基准算法对比,在离心圆中寻找其与重建共自配极三角形的交点,并计算光线外投影均方误差和重投影均方误差。表2展示了本文所提标定算法与基准算法在光线外投影和重投影误差上对比结果。
表2 基于离心圆的光场相机标定算法对比结果
此外,表3列出了离心圆光场数据集的内参数估计结果。其中,数据集Circle-1和Circle-2的内参数估计结果相似的原因是因为二者使用了相同的光场相机参数配置,数据集Circle-3和Circle-4的相机参数配置也是相同的但与数据集Circle-1和Circle-2的不同,因此前2组内参数估计结果与后2组不同。图4呈现了离心圆光场数据集的相机姿态估计结果。图中的光场相机姿态均朝向离心圆标定板且分布在距标定板0.3~0.5 m范围内,证明了相机姿态估计结果符合光场数据采集基本配置。根据表1和图4所示的数据集Circle-1和Circle-2上的标定误差和相机姿态分布可发现,光场相机均匀采集标定板数据有助于提高标定结果的准确性。从数据集Circle-3和Circle-4上的标定误差和相机姿态分布可知,增加标定光场数据有助于提高标定结果的准确性。此外,根据标定算法所计算的内外参重建了任意2个光场中心视点图像间平面单应,图5为光场中心视点图像单应校正结果。进一步,为了验证光场中心视点单应校正结果的准确性,利用离心圆图像点间重投影误差对校正结果进行评价,如图5所示。在图5括号中列出了光场中心视点单应校正的重投影均方根误差结果。上述结果均验证了本文所提出标定算法的准确性。
图4 光场相机姿态估计结果
图5 光场中心视点图像单位校正结果
表3 光场相机标定方法的内参数估计结果
根据离心圆共自配极三角形的性质,本文提出了基于离心圆共自配极三角形的光场相机标定方法。通过分析关于离心圆的极点-极线关系,文章推导了离心圆共自配极三角形的性质。此外,根据光场相机多投影中心模型对平面及二次曲面的映射,本文通过离心圆光场子孔径图像重建共自配极三角形并计算平面单应,继而提出了基于离心圆的光场相机标定算法,包括光场相机内外参数的线性初始化和非线性优化方法。仿真和真实数据实验结果表明,离心圆标定板可稳定提取特征并精确标定光场相机。