一、畸变基础:什么是广角镜头畸变?
大家好,我是你们这门课的主讲。在计算机视觉领域摸爬滚打了十几年,我处理过最多的图像问题,就是畸变。尤其是广角镜头,拍出来的照片边缘总是弯弯曲曲的,看着就别扭。今天咱们就来聊聊,这到底是怎么回事。
说白了,广角镜头畸变就是镜头把直线拍成了曲线。你想想看,一个笔直的建筑边缘,到了照片里却变成了向外凸或向内凹的弧线。这不是镜头坏了,而是物理规律决定的。
核心定义:畸变(Distortion)是光学系统对物体成像时,由于镜头设计、制造工艺或物理限制,导致像的几何形状与理想投影之间产生偏差的现象。它不影响图像的清晰度,但会改变物体的形状和位置关系。
1.1 桶形畸变:为什么会鼓起来?
桶形畸变,顾名思义,就是图像看起来像被塞进了一个桶里——中间鼓,边缘收。我最早接触这个现象是在做全景拼接项目时,拍出来的照片边缘总是对不上,后来才发现是桶形畸变在捣鬼。
成因分析:
- 镜头设计时,为了获得更宽的视场角,光线入射角过大
- 镜头前组镜片对边缘光线的折射率与中心不一致
- 说白了,就是边缘的光线被"压"到了更靠近中心的位置
视觉特征:
- 直线向外弯曲,像被吹胀的气球
- 图像中心区域正常,越往边缘畸变越严重
- 常见于广角镜头、鱼眼镜头、手机前置摄像头
我记得有一次做车载环视系统,四个广角摄像头拼接出来的画面,地面标线全是弯的。嗯,那就是典型的桶形畸变。后来我通过标定和校正,才把那些弯线拉直。
1.2 枕形畸变:为什么会凹进去?
枕形畸变正好相反,图像边缘向内收缩,看起来像枕头的形状。这种畸变在长焦镜头里更常见,但广角镜头在某些变焦段也会出现。
成因分析:
- 镜头后组镜片对边缘光线的放大率大于中心
- 说白了,就是边缘被"拉伸"了,导致中心相对收缩
- 变焦镜头在长焦端更容易出现
视觉特征:
- 直线向内弯曲,像被吸进去一样
- 图像中心区域正常,边缘向内收缩
- 常见于长焦镜头、投影仪、某些变焦镜头的长焦端
我曾经在做一个高精度测量项目时,用了一款变焦镜头。在长焦端拍标定板,发现棋盘格角点位置全偏了。一开始我以为是标定板有问题,折腾了两天才发现是枕形畸变在作怪。从那以后,我每次做测量前都会先检查畸变类型。
1.3 两种畸变的对比
| 对比项 | 桶形畸变 | 枕形畸变 |
|---|---|---|
| 弯曲方向 | 向外凸出 | 向内凹陷 |
| 常见场景 | 广角、鱼眼镜头 | 长焦、变焦镜头 |
| 边缘效果 | 图像被压缩 | 图像被拉伸 |
| 校正难度 | 相对容易 | 相对复杂 |
| 对测量影响 | 边缘物体变小 | 边缘物体变大 |
你可能会问,为什么广角镜头更容易出现桶形畸变?其实很简单。广角镜头为了把更宽的视野塞进小小的传感器里,必须对边缘光线做"压缩"处理。这个压缩过程,就导致了桶形畸变。
1.4 畸变背后的数学模型
虽然咱们是实战课,但基本的数学原理还是要懂的。畸变模型通常用多项式来描述:
// 径向畸变模型
x_distorted = x * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)
y_distorted = y * (1 + k1 * r² + k2 * r⁴ + k3 * r⁶)
// 其中:
// (x, y) 是理想坐标
// (x_distorted, y_distorted) 是实际畸变坐标
// r² = x² + y² 是径向距离
// k1, k2, k3 是畸变系数
这个公式看着复杂,其实说白了就是:离中心越远(r越大),畸变越严重。k1控制主要畸变,k2和k3用来修正高阶畸变。我在实际项目中,一般只用k1和k2就够了,k3很少用到。
个人经验:在做相机标定时,我建议至少采集15-20张不同角度的标定板图像。太少的话,畸变系数算不准;太多的话,边际效益递减。我一般控制在20-25张,效果最好。
1.5 知识体系总览
为了让你对整个畸变知识有个全局认识,我画了张图:
避坑指南:我曾经犯过一个低级错误——用手机拍标定板,结果手机镜头本身就有畸变,标定出来的参数全是错的。记住:标定用的相机和实际拍摄用的相机必须是同一台,镜头焦距也不能变。
1.6 为什么我们要关心畸变?
你可能会想,畸变不就是图像弯了点吗?又不是不能用。嗯,这话在朋友圈发发照片确实没问题。但在计算机视觉领域,畸变是个大问题:
- 测量精度:1个像素的畸变,在3米外可能对应几厘米的误差
- 三维重建:畸变会导致点云位置偏移,重建出来的模型变形
- 目标检测:边缘物体的位置和形状都变了,检测框会不准
- 图像拼接:多张图拼在一起,畸变不一致会导致接缝明显
说白了,如果你只是拍拍照,畸变校正可有可无。但如果你要做测量、识别、重建,那畸变校正就是绕不开的一步。
好了,这一章我们聊了畸变的基本概念、两种主要类型(桶形和枕形)、它们的成因和视觉特征,还看了背后的数学模型。下一章,我会带你亲手做一次相机标定,把畸变系数算出来。到时候你就知道,那些弯弯曲曲的线是怎么被拉直的了。
公众号:蓝海资料掘金营,微信deep3321