师佳佳 薛赛飞 李小龙 张旭 韩芳
摘要:鱼眼镜头作为一种超广角镜头,具有鱼眼镜头焦距小,视角开阔等特点,使得鱼眼镜头在获得大信息量图像的同时,也带来严重的畸变,需要经过校正才能达到更好的视觉效果,因此研究鱼眼图像校正问题具有重要的现实意义。本文主要介绍了鱼眼图像的不同校正方法,并重点研究了基于等距投影模型的鱼眼图像校正算法,最后通过对比实验,验证了等距投影模型的校正算法在鱼眼校正中的优势。
关键词:鱼眼图像;等距投影;校正算法
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2022)02-0076-03
鱼眼相机由于具有超广角镜头,视觉范围广阔,信息量大,对于近距离拍摄大范围景物非常便捷,易于实现大范围的180°全向无死角监控,在虚拟现实、智能交通、安防监控、智能机器人视觉导航等众多领域得到广泛的应用。但是,由于鱼眼镜头是采用多镜组结构设计,这些镜组在获得超大视场成像的同时,也带来了严重的径向畸变。为了达到更好的视觉效果,同时适应特定的应用场合,通常需要对鱼眼图像进行校正,校正方法通常包括两个步骤[1,2]:坐标变换和鱼眼图像插值,前者是建立失真图像与校正图像之间的坐标变换关系,后者是对坐标变换后产生的空像素进行插值填充。
基于鱼眼相机的图像校正算法有不同的分类方法,按照校正算法是否涉及点的空间信息,分为2D校正和3D校正算法[3,4,5],其中,2D校正算法不涉及点的空间信息,直接确定鱼眼图像与校正图像之间的对应点的坐标变换关系,而3D校正算法是从3D空间的角度来考虑鱼眼图像的校正。按照是否借助外部设备进行标定,分为基于投影变换的校正方法和基于标定的校正方法[6],基于投影变换的校正算法是基于已有投影模型,采用多项式拟合优化目标函数的方法,估计模型参数,导出校正图像;基于标定的校正算法,主要借助于标定设备如标定板对鱼眼图像内外参数进行标定等。对于图像校正算法,目前已有很多相关的研究。郑亮等[7]基于已有的九点非迭代优化算法,提出一种自标定算法,利用核密度估计方法选择最优参数代入畸变模型,实现鱼眼自标定和自动校正。何向东等[8]提出一种基于拼接算法的鱼眼图像畸变校正方法,杨晶晶等[9]根据投影的不变性原理,推导出畸变直线的斜率,提出一种基于几何性质的鱼眼镜头成像的校正算法。本文研究基于投影变换模型的3D校正分析方法,并使用不同的校正算法对鱼眼镜头图像进行校正,对校正结果进行对比分析。
1 基于投影变换的鱼眼图像的3D校正方法
1.1 鱼眼镜头的设计模型
根据投影函数的不同,鱼眼相机的设计模型一般分为5种[6]:透视投影等积投影、等距投影、体视投影和正交投影。
鱼眼镜头标定中使用最多的是等距投影模型,其投影函数如公式(1)所示:
[r=fθ] (1)
其中,r是像高(鱼眼图像上像点与镜头主轴之间的距离), f是镜头的焦距,[θ]是入射角(景物入射光线与主轴的夹角)。
由于实际的鱼眼镜头并不会精确的符合定义的投影模型,在实际标定中,一般会使用取 r关于θ泰勒展开式的前5项来近似鱼眼镜头的实际投影函数,如公式(2)所示:
[rθ=ikiθ2i+1≈i=04kiθ2i+1=k0θ+k1θ3+k2θ5+k3θ7+k4θ9] (2)
1.2 鱼眼镜头的校正算法
鱼眼镜头结构复杂,在研究其成像过程时,通常将其简化为单位球面。如图1所示:
假定OcXcYcZc为相机坐标系,OXY为成像面,其中OOc=f。
A为相机坐标系中的一点,入射角为θ,若按针孔模型投影其像点为A0(a,b),不存在畸变。
令OA’=rd, OA0=r,根据图中几何关系可得式(3)。
[θ=atan (r/f)] (3)
由于鱼眼镜头的畸变,实际的成像点将为[A']
由等距投影模型公式(1)得:
[rd=fθ] (4)
设校正后的图像的宽度和高度分别为w和h,P[(x,y)]是其中的任一点,其对应的鱼眼图像中的点为[P'x',y'],其中中心点分别为O, [O']。假设校正后的图像的光学中心与图像的几何中心O重合。
[θ=arctanrdf] (5)
下面分析P對应像点的位置:
由于图像的坐标系统与实际读取像素时的坐标系统具有不同的原点,因此,首先需要平移坐标,并得到P与原点的距离如下:
[OP=x−w22+y−ℎ22] (6)
根据式(5),得到P点的入射角为:
[θ=arctanOPf=arctanx−w22+y−ℎ22f] (7)
由(4)可得:
[OP'=farctanx−w22+y−ℎ22f] (8)
根据极坐标变换公式,可得[P']点对应的坐标值,由于相机坐标系和图像坐标系具有不同的原点,这里也要进行坐标的平移。式(8)中的f可表示为:f=2r/π
当图像是单位球时,变换后的图像的尺寸要大于原始的鱼眼图像。在这里我们采用反向计算的方法,从校正好的目标图像出发,对于目标图像每一点[P(x,y)],反向计算出鱼眼图像上对应点的[P']的坐标,取出该坐标对应的像素值作为P点的像素值即可。
综上,算法的流程如下所示:
设校正后的图像的宽度和高度分别为w和h,取R=max(w,h)/2
对每一个像素A(x,y)执行如下操作
Step1 坐标平移 x=x-w/2, y=y-h/2
Step2 计算A到原点的距离:[r=x2+y2]
Step3 计算A点的入射角:[θ=arctanrf]
Step4 计算像点[A']到原点的距离:[r'=fθ]
Step5 计算像点[A']的坐标:[x'=x×r'r], [y'=y×r'r]
Step6坐标平移[x'=x+w/2y'=y+ℎ/2]
算法中,笔者直接使用了理想的等距投影模型对鱼眼图像的成像进行分析,没有采用式(2),一方面会降低校正的精度,但另一方面减少了计算的复杂度。在后面的验证实验中发现,仅使用理想的等距投影模型,校正结果还是比较满意的。
2 鱼眼图像校正实验
本文采用pycharm工具,基于python语言,在Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz处理器上完成算法的仿真实验。实验选用经纬度映射法作为参照,实验中不使用标定设备。
实验中首先对鱼眼图像进行预处理,提取有效图像区域,如图2所示(第一列为直接从鱼眼相机读取的图像,第二列为提取的图像有效区域)
对图(2)中预处理后图像分别执行本文的算法和经纬度映射校正算法,结果如图3所示:
对比图3中两个算法的运行结果,不难发现,在本文的校正算法中,校正后图中的桌子各边均为直线,标定板各边也为直线(标定板在文中仅仅是为了对比二个校正算法的执行结果),而执行经纬度校验算法的执行结果图中桌子的两边、标定板的四条边仍然弯曲比较严重。显然,文中的算法要明显优于经纬度样验算法。
3 结论
本文主要研究采用等距投影模型的校正算法,该算法运用了图像中点、线元素的空间变换的原理,可以更简便、快速地得到校正图像,从文中对算法的描述上看,该种算法计算量较小,校正过程简单快速,相比于2D 校正在精度方面优势比较明显,本文中我们直接采用了等距投影的理想模型,因此在校正精度上还有一定的提升空间,这也是作者下一步继续研究的方向。
参考文献:
[1] Ngo H T,Asari V K.A pipelined architecture for real-time correction of barrel distortion in wide-angle camera images[J].IEEE Transactions on Circuits and Systems for Video Technology,2005,15(3):436-444.
[2] 杭鹏程,余艳梅,陶青川.基于空间索引搜索的鱼眼图像校正方法[J].现代计算机,2020(32):38-42.
[3] 张伟.鱼眼图像校正算法研究[D].南京:南京邮电大学, 2011.
[4] 赵红旭.鱼眼图像校正算法的研究与实现[D].上海:上海交通大学,2011.
[5] 刘鹏,肖斌,邹丕振,等.鱼眼图像畸变的2D校正[J].鲁东大学学报(自然科学版),2020,36(2):137-141.
[6] 刘金亮.基于鱼眼相机实时全景拼接算法的研究[D].北京:中国人民公安大学,2019.
[7] 郑亮,陶乾.鱼眼镜头自標定和畸变校正的实现[J].计算机工程,2016,42(9):252-256.
[8] 何志东,张建伟,梁斌斌.一种基于拼接算法的鱼眼图像畸变校正方法[J].现代计算机,2020(3):57-62.
[9] 杨晶晶,陈更生,尹文波.一种基于几何性质的鱼眼图像校正算法[J].计算机工程,2012,38(3):203-205.
【通联编辑:唐一东】
1561501705235