关于镜头畸变问题的总结

1、问题背景
最近在做的项目有畸变校正的需求,但测试镜头畸变时,发现畸变的形态不太正常。如下图所示中间向内凹、四周向外凸,感觉像是曲线型的。但常见的畸变就两种,一种是向内收的枕形畸变,另一种是向外凸的桶形畸变,所以本篇文章主要是对这个问题做一个分析,以及总结一下什么是畸变、畸变是怎么产生的、畸变的计算。
2、问题分析
关于畸变,是属于像差的一种,肯定是和镜头相关的。遇到我上面的问题具体该怎么处理呢?最简单的方法就是对着图卡(一般是点阵图/棋盘格)去拍 raw 图,将有问题现象的 raw 图反馈给镜头厂去确认。
一开始我是給的上面点阵图的那张 raw,他们反馈看现象是不太正常,但说我拍歪了,让再摆正重新拍一张。随即又拍了张摆正的解析力卡的 raw 给他们,因为是确认边缘直线变曲线的问题,所以用其他图卡能复现现象也行。
如下是这颗模组的规格,反馈说是这颗镜头的视场角是120度,属于广角镜头,只要畸变<10.5%就是正常的,确实短焦距的广角镜头是会容易出现明显的桶形畸变,但目前看到的这种曲线的畸变,就不太确定是什么了。
镜头厂那边实测,模拟给出的结论就是桶形畸变,也是满足镜头的设计要求的。并做了如下解释,如下图所示是反映镜头畸变的曲线图、网格图。从畸变曲线看,是单调递增的,且是负值,所以是单纯的桶形畸变。
曲线图上,在 2.2mm像高内,畸变都比较小,2.2mm 开始,畸变就变的比较大,应该是内视场畸变和外视场畸变差异过大导致的视差。
我的理解是类似于在一个一圈一圈的圆环里面画直线,会感觉直线变形了一样。
如上网格图也是一样,内视场的畸变很小,而到边角部分的畸变明显变大所以视觉上就感觉中间不直了一样。
3、知识延申:关于畸变的相关概念
a、什么是畸变
畸变是指物体所成的像在形状上的变形,它并不会影响像的清晰度,而只影响像与物的相似性。如下示意图所示,常见的畸变类型有桶形畸变和枕形畸变。
那什么时候是桶形畸变,什么时候又是枕形畸变呢?以如下简单的示意图为例,将靠近镜头中心部分所成的像视为内视场(y1),边缘部分为外视场(y2)。当内视场的放大倍率 :y1/h1 > 外视场的放大倍率:y2/h2时,所成的像是从中心是往外放大的,也就是桶形畸变。 反之则是枕形畸变。
而具体出现桶形畸变还是枕形畸变,取决于光圈的位置,当光圈在透镜前面或后面时,会限制光线的行为。
当光圈在镜头前面,像的高度减小了,也就是像缩小了,就造成了桶形失真。复杂的镜头,例如后焦距广角镜头,往往就会出现桶形失真,因为前组镜头会充当后组的光圈。
当光圈在镜头后面,像的高度增加了,也就是放大了,就是枕形失真。远焦镜头的后组为负,会导致枕形失真。
下面这幅图片是对应的三维图,更加清晰的看出光圈与镜头的关系。
b、畸变产生的原因
从上面的概念我们了解到,畸变产生的根本原因是镜头像场中央区的放大倍率和边缘区的放大倍率不一致导致, 那为什么不一致呢?
请看如下这个光路图,A和B一个是轴上点,一个是轴外点。过B点作辅助光轴,也就是这个虚线,与像面交于B0′,B0′点即为B点的理想像点。另一方面,B点若是以细光束成像,则像点是B′点,注意,细光束成像是没有球差和慧差的,但是有场曲,所以B在细光束下成像像点实际在B', B′B0′为B点的场曲。
当B点以主光线成像时,看黄色主光线,这时注意,主光线是宽光束,存在球差和慧差,所以宽光束成像时,黄色主光线交辅轴于B1′点,所以B1′B′为B点的球差。
所以,综合球差慧差场曲的影响,主光线最终经B1′点交像面于Bz′点,那实际像点Bz’就偏离了理想像点B0′。再看看位于光轴上的A点,主光线与光轴重合,主光线的像点与理想像点在像面的中心点A′重合,因此轴上点成像没有偏差,但是轴外点的像高和理想像高有差异,造成中心和边缘的放大倍率不同,这就产生了畸变。所以,由以上分析可以看出,畸变的形成既有场曲的因素也有球差的因素。
注: 篇幅有限,这里就不再解释关于球差,慧差,场曲的概念了,后续文章会再单独描述;
c、关于畸变的计算
再回到上面镜头的spec,描述了镜头的 TV 畸变是10.5%,光学畸变是20%, 那这两者的区别是什么,具体是 如何 计算的?
1)、关于光学畸变:
光学畸变是对应镜头的指标,描述的是物体所成像的理想位置和实际位置的偏差,如下光路图中的轴外一点B,实际像点Bz',理想像点为B0′。可以用理想像高y’,和实际像高 yz’ 的比值来描述偏离程度,
公式为:( yz'-y' ) / y' x 100%
可以用此项目中的镜头规格来做具体的验证,镜头的光学畸变是随视场范围变化而变化的,所以规格书给出的20%是最大的光学畸变值,所以我们要计算出最大的理想像高,也就是计算当是最大视场范围时成像时的理想像高是多少。
最大的视场角如上规格书,对角线方向的 FOV 值为120° (如下图 ɵ = 60° ),焦距 f 是2.13mm,理想像高为:tan 60° x 2.13 = 3.689mm;
而最大实际像高就是 sensor 对角线长的一半:5.867 / 2 = 2.934mm;
则镜头最大光学畸变为:(2.934-3.689)/ 3.689 x 100% = - 20% ;
2)、关于 TV 畸变:
TV 畸变是对应所拍摄出的图片而言的,体现图像的变形程度,我们平常用 imatest 软件所测试的就是TV畸变的值。 TV 是 Transverse Vertical,横向竖向的意思。
关于TV畸变的计算它有SMIA 和 Traditional TV distortion 两种,如下示意图所示:
SMIA TV Distortion = 100% * ( A-B )/B ; A = ( A1+A2 )/2
Traditional TV distortion = 100% * ∆H/H
如上 SMIA TV Distortion 计算中, A = ( A1+A2 )/2 = H+2 ∆H,B = H,则 100% *(A-B)/B = 2 ∆H/H,所以  SMIA TV Distortion = 2x  Traditional TV distortion。
还是以此项目中用到的镜头来做具体的验证,规格书中给出的TV 畸变值是10.5%,且是SMIA TV 畸变;
如下是实拍的棋盘格的图,用来计算 SMIA TV畸变,拍两条横向直线,让他们与图像的上下边相切。两条直线与图像左侧相交,得到两个坐标,计算出纵向像素差A1。同样的方法可以得到右侧的纵向像素差A2。两条直线间的距离就是图像的高B,畸变值就是((A1+A2)/2 - B)/B。
用画图工具打开后,就可以得到每个点的像素位置,如下图的坐标所示,先算出左侧的像素差(2944-176=2768),右侧的像素差(2937-169=2768),中间的像素差为3120,可以计算出畸变值为:((2768+2768)/2 - 3120)/3120 = -11.2%),结果有点误差,但也不大,实际测试一般都是用 imatest 软件去计算,能了解一下具体是怎么计算的就可以了。
参考文章:
大画成像成像镜头光学课程
  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 图像畸变校正算法是一种用于纠正图像中的畸变问题的方法。在图像采集过程中,由于镜头的限制或光学系统的缺陷,图像可能会出现畸变,如畸变形变、边缘失真等。这些畸变会导致图像质量下降,影响到后续图像处理和分析的准确性。 图像畸变校正算法一般分为几何校正和色彩校正两个方面。几何校正主要处理图像中物体的形态失真问题,它通过对图像中的控制点进行检测和标定,计算出畸变的误差模型,并通过插值的方法对图像进行重构,从而达到校正的目的。常用的几何校正算法有如多项式畸变模型、鱼眼畸变模型、极线校正等。 色彩校正则是处理图像中颜色失真的问题,旨在使图像的颜色还原真实场景中的颜色。色彩校正算法一般采用预定义的颜色校正矩阵或标定矩阵,通过将图像中的各个像素值乘以一个矩阵进行调整,使得图像的颜色保持不变或恢复到原始真实的颜色。 图像畸变校正算法在计算机视觉、机器人视觉、遥感图像处理等领域具有广泛的应用。它能够提高图像的质量,准确地提取图像中的信息,并为后续的图像处理和分析提供可靠的基础。然而,对于不同的畸变类型和场景,选择合适的畸变校正算法是非常重要的,同时需要根据实际情况进行参数调整和优化,以获得最佳的校正效果。 ### 回答2: 图像畸变校正算法主要用于纠正由相机透镜等光学元件引起的畸变,使图像中的目标物体在校正后能够保持准确的形状和尺寸。常见的畸变类型有径向畸变和切向畸变。径向畸变是由于透镜曲率半径不同造成的,使得图像中心的物体比边缘的物体畸变更严重;切向畸变是由于光线在相机透镜和图像平面之间发生偏移而引起的。 在图像畸变校正算法中,常用的方法是通过计算畸变矫正矩阵进行处理。首先,需要根据相机的成像原理和几何关系建立相机的相机模型,包括相机内参(透镜焦距、主点位置等)和相机外参(相机的位置和姿态等)。接下来,利用畸变标定板或已知的畸变矫正参数对相机进行标定,得到相机的畸变参数。 对于径向畸变的校正,可以通过将图像中的点从畸变坐标系转换到校正坐标系来实现。针对切向畸变,可以通过对图像的每个像素点应用切向畸变矫正模型进行校正。 最后,通过将图像中的每个点进行校正,使得畸变的影响尽可能小,从而获得校正后的图像。 总结来说,图像畸变校正算法主要通过建立相机模型、校正畸变参数以及将图像中的点进行逆畸变转换等步骤来实现。这种算法广泛应用于工业检测、三维重建以及计算机机器视觉等领域,提高了图像质量和测量精度。 ### 回答3: c 图像畸变校正算法是一种用于修正图像中出现的畸变问题的方法。图像畸变是由于相机镜头的光学特性或物体与相机之间的位置关系引起的图像变形。畸变问题会导致图像失真,影响图像的质量和准确性,因此需要对图像进行畸变校正。 畸变校正算法通常通过将输入图像坐标映射到输出图像坐标来实现。这种映射可以基于相机镜头的参数和畸变模型进行计算。常见的畸变模型包括径向畸变和切向畸变。 径向畸变是由于相机镜头的形状导致的变形,表现为图像中心附近的物体较为清晰,但远离图像中心的物体会被压缩或拉伸。校正径向畸变的方法包括逆畸变和正畸变。 逆畸变是通过将坐标从畸变图像映射到无畸变图像来实现,可以使用相机的畸变参数以及逆变换函数来进行计算。正畸变则是通过将坐标从无畸变图像映射到畸变图像来实现。这些校正方法需要准确的相机参数和逆变换函数,以确保校正结果的准确性。 切向畸变是由于相机镜头和图像平面之间的不平行关系而引起的变形,会导致图像中的直线出现弯曲。校正切向畸变通常采用仿射变换和极线校正方法。仿射变换通过调整图像坐标的变换矩阵来校正切向畸变。极线校正方法则是通过对畸变图像上的极线进行调整,使得直线变为平行线。 总而言之,c 图像畸变校正算法是一种用于修正图像中的畸变问题的方法,通过映射输入图像坐标到输出图像坐标实现。常见的畸变校正方法包括逆畸变和正畸变,以及仿射变换和极线校正。这些方法需要准确的相机参数和逆变换函数,以确保校正结果的准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值