本文最后更新于:2024年6月26日 下午
相机镜头成像过程是将 3D 世界光线投影到 2D 感光元件上,过程中难免有失真畸变,本文记录相关内容。
畸变
- 畸变(Distortion)也称为失真,是由于光阑球差的影响,不同视场的主光线通过光学系统后与高斯像面的交点高度不等于理想像高,两者之差就是畸变。因此畸变只改变轴外物点在理想面上的成像位置,使像的形状产生失真,但不影响像的清晰度。
- 对于理想光学系统,在一对共轭的物像平面上,像的放大率是一个常数。但是对于实际的光学系统,当视场较大或很大时,像的放大率就要随视场而异,这样就会使像相对于物体失去相似性。这种使像变形的成像缺陷称为畸变。
- 畸变定义为实际像高与理想像高差,而在实际应用中经常将其与理想像高之比的百分数来表示畸变,称为相对畸变,即:
- 从公式可以看出,畸变有正负之分。如下图a 所示,一垂直于光轴的正方形平面物体,当镜头具有正畸变时,如下图b所示,称为枕型畸变;当镜头具有负畸变时,如下图c所示,称为桶型畸变。
畸变分类
- 通常来说镜头的畸变分为径向畸变和切向畸变两类。图像径向畸变是图像像素点以畸变中心为中心点,沿着径向产生的位置偏差,从而导致图像中所成的像发生形变。径向畸变分为桶形畸变和枕形畸变。
径向畸变
- 桶形畸变(Barrel Distortion),又称桶形失真,是由镜头中透镜物理性能以及镜片组结构引起的成像画面呈桶形膨胀状的失真现象。我们在使用广角镜头或使用变焦镜头的广角端时,最容易察觉桶形失真现象。
下面是桶形畸变的真实场景,本该是垂直的房屋,却发生了变形。
-
枕形畸变(Pincushion Distortion),又称枕形失真,它是由镜头引起的画面向中间“收缩”的现象。我们在使用长焦镜头或使用变焦镜头的长焦端时,最容易察觉枕形失真现象。
-
胡子畸变( Mustache Distortion ), 当上述两种类型混合在一幅图像时,被称为胡须扭曲或复杂的扭曲。它开始时是靠近图像中心的桶形变形,然后逐渐转变为朝向图像外围的针形变形,使得画面上半部分的水平线看起来像把手胡子。
切向畸变
- 切向畸变(Tangential Distortion)是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。我们一般只考虑径向畸变。
下图是切向畸变的示意图。
图示
下图是镜头畸变的对比示意图,第一幅图像是无畸变,第二幅图像是切向畸变,第三幅图像是桶形畸变,第四幅图像是枕形畸变。
径向畸变产生的原因
- 径向畸变的常见原因是因为在镜头系统中引入光圈,光圈的位置决定了失真的类别与程度。
对于恒定的物体尺寸 $y$,图像尺寸 $h$ 有所不同 。
- 像点的位置由主光线(实线)确定,主光线是穿过光圈中心的光线。当光圈位于透镜上时,也就是中间那幅图像,主光线穿过光学中心,并以与入射角相同的角度离开透镜。这样的系统不会使图像失真,因此没有畸变。
- 否则光圈处于透镜前/后,靠近边缘的成像会变小/大,对于一条不穿过图像中心的直线来说,直线接近图像边缘的部分距离中心较远,这个距离会因为畸变而变短/长,因此产生桶形/枕形畸变。
畸变的度量
- 畸变通常有两种计算方法:光学畸变(Optical Distortion)和TV畸变(TV Distortion)。如下图所示,其计算方法为:
- 在一幅图上,两种计算方法为:
- 如何利用镜头畸变的参数来计算测量误差?
举例:
若相机芯片为 2/3’(对角线为 $11mm$,像元尺寸为 $3.45um$)
某镜头光学畸变率为 $dist=0.05%$, 有 $y=5.5mm$
则 $Δy=dist·y=0.05% \times 5.5mm=2.75µm$。
故此畸变导致像发生了 $2.75µm$ 的偏移,小于一个像素。
-
镜头经验:
- 不同焦距的不同镜头的畸变率基本遵循着焦距越大畸变越小的规律。在焦距大于85mm时畸变很小。
- 低焦距镜头(8mm) TV畸变可以达到 1 - 2%,中焦距镜头(25mm)TV畸变可以达到 0.1%左右
- 优质的工业变焦镜头 畸变一般都会小于 2%
- 远心镜头光学畸变可以达到 < 0.01%
参考资料
- https://www.qinxing.xyz/posts/b7ea425d/
- https://blog.csdn.net/u014652390/article/details/50324347
- https://blog.csdn.net/qq_45618521/article/details/120682212?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-120682212-blog-50324347.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1-120682212-blog-50324347.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=2
- https://docs.opencv.org/4.5.5/d9/d0c/group__calib3d.html#ga69f2545a8b62a6b0fc2ee060dc30559d
- https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html
- https://ori.codes/artificial-intelligence/camera-calibration/camera-distortions/
- https://www.jianshu.com/p/2341da36aa8e
- https://en.wikipedia.org/wiki/Distortion_(optics)#cite_note-brown-4
- https://blog.csdn.net/zb1165048017/article/details/71104241
- https://blog.csdn.net/qq_27237013/article/details/82426094
- http://www.zjynb.com/Article/zjybkgxjtp.html
- https://www.likecs.com/show-204264213.html
文章链接:
https://www.zywvvd.com/notes/study/camera-imaging/photo-distortion/photo-distortion/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付