成像基础:小孔成像模型、透镜成像原理与像差分类

各位同学好,我是老张。今天咱们聊聊成像基础。说实话,这部分内容看着像理论课,但你要是搞懂了,后面调镜头、做标定的时候,能少走不少弯路。

我刚开始做机器视觉那会儿,总觉得理论是书本上的事,实际干活靠经验就行。结果有一次,一个高精度测量项目,怎么调都差那么几个像素。折腾了两天,最后发现是镜头畸变没处理好。嗯,从那以后,我再也不敢小看这些基础原理了。

小孔成像模型:最朴素的相机

先说说小孔成像。你想想看,一个黑盒子,前面戳个小孔,光线穿过小孔,在后面的屏幕上形成倒像。这就是最原始的相机。

小孔成像模型有几个特点:

  • 线性关系:物体大小和像的大小成比例,比例系数就是放大率
  • 没有畸变:理论上小孔成像没有几何畸变,因为光线是直线传播的
  • 景深无限:不管物体多远,都能清晰成像

但问题来了——小孔太小,进光量不够,成像太暗。所以实际相机都用透镜。不过小孔模型作为数学抽象,在标定算法里还是核心。说白了,我们做畸变校正,本质上就是找一个映射,把透镜拍出来的图像,映射回小孔模型下的理想图像。

核心要点:小孔成像模型是理想模型,透镜成像是现实模型。畸变校正就是让现实向理想靠拢。

透镜成像原理:从理想走向现实

透镜成像,说白了就是用凸透镜把光线汇聚到一点。高斯成像公式大家都学过:

1/f = 1/u + 1/v

其中 f 是焦距,u 是物距,v 是像距。这个公式在理想情况下成立,但实际镜头是多个透镜的组合,而且每个透镜都有加工误差。

我记得有一次,客户要求测量精度到0.01mm。我选了一款号称"低畸变"的工业镜头,结果实测畸变还是超过了0.5%。后来才发现,那个镜头在标称的"最佳工作距离"下确实畸变小,但稍微偏离一点,畸变就上来了。所以我现在选镜头,都会要求厂家提供全视场的畸变曲线,而不是只看中心区域。

像差分类:五种常见的"不完美"

透镜成像不可能完美,总会有各种像差。我习惯把像差分成两大类:单色像差和色差。今天重点讲单色像差,一共五种。

先看一张图,帮你快速建立整体认知:

五种单色像差分类图 像差 (单色) 球差 彗差 像散 场曲 畸变 这五种像差中,畸变是我们做标定最关心的

1. 球差

球差,说白了就是透镜边缘和中心对光线的折射能力不一样。边缘光线聚焦得近一些,中心光线聚焦得远一些。结果就是一个点光源,在像面上成了一个模糊的圆斑。

我在项目中遇到过,用大光圈镜头拍高反光的金属表面,边缘总是发虚。后来缩小光圈,球差就明显改善了。所以做高精度测量,我一般建议用F8以上的光圈。

2. 彗差

彗差这个名字很形象——点光源经过透镜后,像点拖出一条尾巴,像彗星一样。这通常是因为透镜的光轴没有对准,或者透镜本身有偏心。

避坑指南:我曾经买过一批廉价镜头,装到相机上发现画面左上角总是有拖尾。一开始以为是传感器问题,后来换了镜头就好了。嗯,镜头组装工艺不好,彗差就会很明显。

3. 像散

像散比较有意思。一个十字形的物体,水平线条和垂直线条不能同时清晰。你调焦让水平清晰了,垂直就模糊了;反过来也一样。

为什么会这样?因为透镜在不同方向上的曲率半径不一样。这就像你用一个椭球形的镜片,一个方向聚焦快,另一个方向聚焦慢。

4. 场曲

场曲,就是像面不是平的,而是弯的。你想想看,透镜本身是球面,它成的像自然也是球面。但我们的传感器是平的,这就矛盾了。

实际表现就是:画面中心清晰了,边缘就模糊;边缘调清晰了,中心又模糊。做大幅面测量时,场曲特别头疼。我一般会用景深来弥补,或者干脆用远心镜头。

5. 畸变

终于说到畸变了。这是咱们做标定最关心的像差。畸变不影响清晰度,但影响几何位置。说白了,就是直线拍出来变弯了。

畸变分两种:

  • 桶形畸变:画面向外鼓,像桶一样。常见于广角镜头
  • 枕形畸变:画面向内凹,像枕头。常见于长焦镜头

我的经验:做标定时,畸变模型一般用多项式拟合。最常用的是Brown模型,包含径向畸变和切向畸变。径向畸变用r²、r⁴、r⁶三项就够了,再多就容易过拟合。

像差对比一览

像差类型 主要表现 常见原因 对测量影响
球差 点光源成模糊圆斑 透镜球面形状 降低分辨率
彗差 点光源拖尾 透镜偏心/倾斜 不对称模糊
像散 不同方向清晰度不同 透镜非对称曲率 方向性模糊
场曲 中心和边缘不能同时清晰 像面弯曲 视场不均匀
畸变 直线变曲线 透镜设计/组装 几何位置误差

注意:畸变是唯一一种不影响图像清晰度、但严重影响测量精度的像差。很多新手只关注镜头分辨率,忽略了畸变,结果测量数据偏差很大。我建议,做测量项目之前,先做一次畸变标定。

小结

今天讲了成像基础,从小孔模型到透镜原理,再到五种像差。说白了,这些知识就是帮你理解:镜头为什么拍出来和理想不一样?知道了原因,才能对症下药。

下一章咱们会深入讲畸变校正的具体方法,包括标定板设计、特征点提取、畸变参数求解。到时候我会拿实际项目的数据出来,手把手带大家走一遍流程。


专注资料整理