基于Res Net网络的鱼眼镜头标定仿真研究

2021-07-05 07:45李有强高忠鹏
桂林电子科技大学学报 2021年2期
关键词:鱼眼畸变标定

李有强, 吴 军,2, 高忠鹏

(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.桂林电子科技大学 广西光电信息处理重点实验室,广西 桂林 541004)

鱼眼镜头作为视场角范围可达到甚至超过180°的超广角摄影机,拍摄的影像包含的信息丰富,被广泛运用到视屏监控、虚拟现实、自动驾驶、工业检测和医学检测等领域中[1],然而鱼眼图像伴有严重的非线性图形畸变,从而导致难以执行大多数的计算机视觉任务,比如目标检测与识别、目标跟踪、场景重建、场景分割[2-5]等任务。因此,需对鱼眼图像进行畸变校正,以满足应用需求,而获得一套高精度的鱼眼镜头标定参数是完成以上任务的前提和关键步骤。

现有对鱼眼镜头标定的方法可分为传统算法的标定方法和基于深度学习算法的标定方法。在传统的方法中,大多是手动标记和自动检测一系列特征点,结合镜头光学成像过程的几何约束来求解一个复杂的非线性方程,解析的参数就是镜头标定参数。如以棋盘格为标定板的张氏标定法[6],在此基础上,林颖等[7]将成像过程中投影球面单位视化,求解镜头标定参数初值,再进行优化,得到最终标定参数;吴泽俊等[8]利用空间直线投影为投影球面上为大圆的几何约束,通过多张视图标定内参。上述方法均需求解繁杂的数学模型。随着神经网络被广泛应用在处理计算机视觉(CV)任务中,崔鹏飞等[9]将BP神经网络应用于鱼镜头标定中,将鱼眼图像的特征点坐标作为网络的输入,输出为该特征点对应的空间点坐标,网络模型训练完成保存下来的连接权重就是需求解的镜头标定参数;针对浅层神经网络(SNN)标定方法手动提取特征复杂,且SNN 非线性拟合能力有限等问题,向鹏等[10]引入深度神经网络(DNN)对摄影机进行标定,输入、输出层分别为图像像素坐标与世界坐标系对应点的齐次坐标。随着卷积神经网络(CNN)广泛应用在处理CV 任务中,基于深度学习的标定方法也成为了另一种鱼眼镜头标定方法,分为有监督学习和无监督学习方式,相同的是使用这2种学习方式的标定方法均通过人工合成鱼眼图像为标签数据来获得大量的样本集意在训练的网络泛化能力更强,合成的鱼眼图像输入到CNN,进行特征提取,输出为鱼眼镜头的畸变参数。在有监督学习方式中,Pan等[11]和Li等[12]通过多项式逼近模型合成鱼眼图像训练CNN 对畸变系数进行估计。在此基础上,为达到变焦鱼眼镜头的效果,Rong等[13]通过单模型网络隐含学习给定失真类型的失真参数,联合多模型网络在不知失真类型的情况下进行流回归分类,通过可选择的模型进行更精确的失真参数学习;Xue等[14]以鱼眼图像上的扭曲线校准后为直线的约束,将学习校准直线的网络作为估计鱼眼镜头的标定参数网络的第四维输入,整流全局网络对鱼眼镜头参数进行估计;Yin等[15]使用语义分割技术提取鱼眼图像的高层语义特征,用来指导CNN 学习,得到更精确的畸变参数估计值;在无监督的学习方式中,Yang等[16]是通过几何优先级的双向损失进行无监督鱼眼畸变图像校正学习,利用预测参数将无失真的理想鱼眼图像投影为待预测的畸变鱼眼图像,作为前向损失,再计算校正图像和无失真理想图像的损失作为后向损失,在双向损失的约束下进行无监督学习,估计出失真参数。

本研究以有监督的学习方式,根据鱼眼图像的几何畸变反应在数字图像上即为像素点位置(坐标)变化的特征,1)样本集的构建:基于球面投影模型的鱼眼镜头成像过程中特征点坐标变换关系,自动构建视场广角可达180°的仿真鱼眼图像、特征点坐标数据集及鱼眼镜头内部参数,其中,特征点坐标数据集为:鱼眼图像畸变坐标(u,v)、鱼眼图像立方盒展开校正坐标(x,y);鱼眼镜头内参为(kp,k2,f,u0,v0)。2)网络的构建:基于Res Net鱼眼镜头内部参数估计网络,将鱼眼图像坐标和立方盒校正展开坐标联合为(u,v,x,y)坐标矩阵来训练网络,完成鱼眼镜头内参的回归预测任务,该网络是以残差网络Res Net50的前2个layers为backbone作为特征提取层,决策层是连续堆叠8个全连接(fc)网络来完成对鱼眼镜头参数的估计,最后利用网络预测的镜头参数对鱼眼图像进行立方盒展开校正,获得校正图像。具体的算法结构如图1所示。

图1 算法结构

1 仿真数据集的构建

待标定的鱼眼镜头的参数为:(k1,k2,f,u0,v0),其中:(k1,k2)为鱼眼镜头径向畸变系数;f为鱼眼镜头的等效焦距,令f=R(R为球面投影半径);(u0,v0)为鱼眼镜头的主点坐标。根据黄有度等[17]提出的鱼眼图像透视变换模型,再结合黄明益等[18]提出的鱼眼镜头将空间直线映射到投影球面上为大圆的理论,以及王玲容等[19]提出的鱼眼图像立方盒展开方法,建立一种简单的从透视投影图像变换到鱼眼图像可逆的变换模型。如图2所示,在空间中构建一个2R×2R×R的立方盒,通过球面投影公式将每个面上的特征点分别投影至底面对应区域鱼眼图像上。具体为:由立方盒上的一点P1(x,y,z)指向原点O的射线,与投影球面x2+y2+z2=R2相交于一点,再把这一点正投影到一个与Z轴(光轴)垂直的平面,得到平面点P2(u-,v-),即为空间点P1(x,y,z)在鱼眼图像上的理想投影。各坐标系特征点投影关系为

图2 球面成像模型

从鱼眼图像重投影为立方盒:

由于鱼眼镜头成像主要受径向畸变系数的影响,引入径向畸变系数,将理想投影图像变换为畸变鱼眼图像P3(u,v):

获得镜头标定参数后,先通过式(5)将畸变鱼眼图像校正为理想鱼眼图像,再通过式(3)将球面重投影到空间立方盒对应面上,最后以立方盒top面为底面展开,得到校正图像。综上,各特征点坐标与鱼眼镜头参数的关系可表示为:[u,v,x,y]T=[k1,k2,f,u0,v0]T,N为转换矩阵,由网络学习得到。根据以上的理论推导,可由球面投影模型逆变换关系自动构建大批量视角达180°的鱼眼图像仿真数据集。首先随机生成鱼眼镜头内部参数,然后构建畸变鱼眼图像与立方盒校正展开图像,最后提取畸变鱼眼图像上椭圆弧(线)上特征点坐标(点)及对应立方盒上展开直线特征点坐标。为保证数据集具有普适性,随机构建不同角度、长度、特征点间隔3种不同类型的数据集:鱼眼图像椭圆弧特征点坐标、立方盒展开直线特征点坐标联合为(u,v,x,y)训练数据,鱼眼镜头参数(k1,k2,f,u0,v0)为标签数据。构建的3种训练数据集可视化如图3、4、5所示。

图3 网格直线

图4 任意角度直线

图5 任意长度直线

2 基于Res Net鱼眼镜头内部参数估计网络的构建

基于何凯明等[20]提出的Res Net网络构建鱼眼镜头内部参数估计网络,其中残差模块如图6所示。x为最开始输入数据,设H(x)为需拟合的原始函数,记堆叠多个网络层来逼近H(x)时存在的误差为F(x)=H(x)-x,F(x)即为残差函数,假设F(x)可以拟合任何函数的网络结构,则原始函数可表示为H(x)=F(x)-x的恒等映射,由于拟合残差函数F(x)比直接拟合原始函数H(x)更容易,将残差模块引入深度卷积网络中,可解决深层网络结构中梯度消失、爆炸问题,提高网络的性能。

图6 残差模块

图7为基于Res Net网络构建深度神经网络预测鱼眼镜头参数。首先根据数据集的特征将4维坐标(u,v,x,y)处理为3通道伪图像数据输入,由于数据集的类型是坐标点,并非实际图片通道类型数据,为了充分发挥二维卷积提取图像细节特征的强大性能,需要构建深度神经网络才能学习到多参数输入至多参数输出的映射关系,但过深的网络层容易导致过拟合。因此,借助Res Net50 残差网络的瓶颈块bottleneck[3,4]为backbone作为特征提取层,共计22层,bottleneck由Conv1×1、Conv3×3、Conv1×1连续堆叠,在特征图通道数相同时,网络结构的参数量比Conv3×3、Conv3×3减少约20倍,使网络的训练速度更快;在bottleneck的残差跳接中,由于Conv block输入和输出的通道数不同,导致残差块不能连续串联,它的作用是改变网络通道大小;identity block输入维度和输出通道数相同,可串联,作用是加深网络。决策层为8层全连接层,加入BN 层,再经激活函数ReLU 映射,最终输出鱼眼镜头的5个参数(k1,k2,f,u0,v0)。

图7 Res Net网络鱼眼镜头内参标定结构

3 实验与分析

3.1 实验

1)参数设置。实验环境为Ubuntu18.04系统,pytorch1.4.0深度学习框架,使用单个8 Gi B 的NVIDIA GTX2080Ti的显卡运算。训练构建的Res Net网络拟合特征点坐标(u,v,x,y)到鱼眼镜头内部参数(k1,k2,f,u0,v0)的映射关系矩阵N,令鱼眼镜头有效焦距f=R(球面投影有效半径)。110 000张图像为训练集,2 000张为验证集,100张为测试集。设置超参数:迭代轮数为60,批量大小为5,学习率为0.001,动量为0.7,优化器为SGD。由于数据集属于稀疏矩阵,进行卷积时局部互联性并不强,由此选用平均绝对误差(MAE)损失函数,防止网络由于细微变化变得敏感而不利于网络的平滑收敛,且畸变系数k1,k2数量级在[10-6,10-13],其他3个参数数量级在[0,102],采用小数定标规范的方法将数据集规范化到[0,1]。

2)设计损失函数:

其中:Pp为预测参数;Pt为标签参数;m为图像总数;w为全部参数的权重。因估计5个参数,需调整每个参数对应的权重v j,经过多次调试,将w设置为1.0,v1~5分别为0.3,0.4,0.1,0.1,0.1进行训练。

3)鱼眼镜头参数预测结果如表1、2所示。

3.2 仿真鱼眼图像在网络模型上的推理

由以上的校正展开及精度评估可得出:1)由表1、2统计得出,预测值与真值非常接近,鱼眼镜头的5个参数的平均相对误差(MRE)准确性高,其中f,u0,v0均达到0.001级,而k1,k2属于细微值,也能达到0.01级,训练的网络模型达到应用要求;2)对于仿真网格、任意角度、任意长度3类鱼眼图像,分别将其特征点坐标在训练好的模型上进行推理,得到相应的标定参数,再利用该参数将鱼眼图像进行立方盒校正展开,并进行直线拟合误差精度评估。图8所示的待测鱼眼图像从图像中心到边缘椭圆弧均被校正为直线,校正效果如图9所示;误差精度评估如表3所示,其均方根误差RMSE均在1/3个像素以内。综上,基于Res Net网络的鱼眼镜头标定达到应用要求。

表3 仿真数据鱼眼镜头参数推理、立方盒校正展开直线拟合误差

图8 待测仿真鱼眼图像

图9 网络预测参数立方盒校正展开

表1 前20张图像估计的参数预测值与真值对比 pixel

表2 前20张图像估计鱼眼镜头内参平均相对误差统计pixel

4 结束语

根据鱼眼图像的几何畸变体现在数字图像上即为像素点位置的变化的关系,自动构建仿真鱼眼图像,将其特征点的坐标及对应的校正坐标联合为输入训练数据集,镜头参数为标签数据,对Res Net网络改进,完成对鱼眼镜头的标定。通过实验得出以下结论:1)通过特征点坐标转换关系自动构建仿真数据集,可解决训练网络时大批量样本标注及训练样本视场角难以达到180°的问题;2)Res Net鱼眼镜头参数估计网络,基本特征层采用了Res Net50的深度可分离卷积结构,有效地避免了深层网络梯度消失的问题,决策层是神经元节点阶梯下降的全连接层结构,完成参数的估计,虽然在训练过程中全连接层并未使用dropout层以防止过拟合,但网络的测试精度很高,说明该网络性能良好;3)基于神经网络鱼眼镜头标定,通过深度残差网络可解决深度网络梯度消失不收敛的问题。

猜你喜欢
鱼眼畸变标定
基于能量变分法的曲线组合箱梁畸变效应分析
基于条纹分析技术的镜头畸变校正实验设计
面向鱼眼图像的人群密度估计
大型焊接容器局部热处理防畸变工装优化设计
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
《癌变·畸变·突变》中国科技核心期刊收录证书
使用朗仁H6 Pro标定北汽绅宝转向角传感器
CT系统参数标定及成像—2
CT系统参数标定及成像—2