第二章 光学基础与成像原理

说实话,做视觉系统这么多年,我最大的感触是——很多人一上来就调算法、跑模型,却连镜头怎么成像都没搞明白。结果呢?项目翻车,图像糊成一片,还以为是代码写错了。

这一章,咱们就把成像这件事彻底说透。你想想看,一个仿生视觉系统,说白了就是模仿人眼。人眼怎么看的,机器就怎么拍。搞懂这个,后面所有设计都会顺很多。

2.1 光的本质与视觉感知

光是什么?教科书上说,光是一种电磁波。嗯,这话没错,但做工程的人更关心的是——光怎么影响我们看到的图像。

我个人习惯把光分成三部分来理解:

  • 波长:决定了颜色。可见光范围大概380nm到780nm。低于这个叫紫外,高于这个叫红外。
  • 强度:决定了亮度。强度越高,图像越亮。
  • 方向:决定了阴影和纹理。这个在3D视觉里特别重要。

我在项目中遇到过一件事:一个客户说他们的相机在室内拍得好好的,一到室外就过曝。后来发现,他们根本没考虑环境光的动态范围。说白了,就是没搞懂光的强度变化有多大。

核心概念:人眼能适应的亮度范围大约是10个数量级,而普通CMOS传感器只有3-4个数量级。这就是为什么机器永远无法完全替代人眼——至少在动态范围上不行。

2.2 透镜成像原理

透镜成像,这是整个视觉系统的基石。我记得刚入行时,师傅跟我说了一句话,至今记忆犹新:「透镜就是眼睛的晶状体,传感器就是视网膜。」

透镜成像的核心公式很简单:

1/f = 1/u + 1/v

其中:

  • f = 焦距
  • u = 物距(物体到透镜的距离)
  • v = 像距(透镜到成像面的距离)

嗯,这里要注意:当物距远大于焦距时,像距约等于焦距。这就是为什么远处的物体能清晰成像在焦平面上。

实战经验:选镜头时,焦距决定了视场角。我一般这样估算——焦距越短,看得越宽,但细节越少;焦距越长,看得越远,但视野越窄。做安防监控,常用4mm到12mm;做工业检测,常用25mm到50mm。

为什么会这样?因为透镜本质上是把空间信息压缩到二维平面上。你想想看,一个三维世界,通过一个凸透镜,就变成了一个二维图像。这个过程里,深度信息丢失了——除非你用双目或者结构光。

2.3 光圈、快门与曝光

曝光三要素,这是每个做视觉的人必须刻在脑子里的东西。我刚开始做嵌入式视觉时,总觉得曝光是相机自动搞定的,直到有一次在强光下拍出来的图像全是白的……

咱们一个一个说:

光圈

光圈控制进光量。用F值表示,F值越小,光圈越大,进光越多。F1.4比F2.8进光量多一倍。

我曾经犯过一个错:为了追求低光照下的图像亮度,把光圈开到最大。结果呢?景深太浅,只有中间一小块是清晰的,边缘全糊了。后来我学乖了——光圈不是越大越好,要看应用场景。

快门

快门控制曝光时间。快门速度越快,运动物体越清晰,但进光越少。1/1000秒能冻结快速运动,1/30秒就可能拍出运动模糊。

做工业视觉时,我一般这样选:

  • 静态物体:1/30到1/60秒
  • 低速运动:1/100到1/250秒
  • 高速运动:1/1000秒以上

曝光

曝光是光圈、快门、ISO三者的组合。ISO是传感器的感光度,ISO越高,噪点越多。

避坑指南:我曾经在一个项目中,为了省成本用了低端传感器,结果ISO一高,图像全是噪点,算法根本跑不动。后来换了高ISO性能好的传感器,问题才解决。记住——传感器质量决定了你的曝光上限。

2.4 传感器工作原理(CCD/CMOS)

传感器是视觉系统的「视网膜」。目前主流就两种:CCD和CMOS。我做了这么多年,两种都用过,各有千秋。

特性 CCD CMOS
成像质量 高,噪点少 中等,噪点多
功耗
速度
成本
集成度 高(可集成ADC、ISP)

我个人习惯:做高端工业检测,用CCD;做消费级产品,用CMOS。为什么?因为CCD的像素一致性更好,适合精确测量;CMOS虽然噪点多,但速度快、功耗低、成本低,适合嵌入式系统。

传感器的工作原理其实不复杂:

  1. 光子打到像素上,产生电子
  2. 电子被收集在像素的势阱中
  3. 读出电路把电子数转换成电压
  4. ADC把电压转换成数字信号

嗯,这里有个关键点:像素大小决定了感光能力。像素越大,感光越好,但分辨率越低。这就是为什么手机摄像头像素越来越高,但夜景还是不如单反——因为单反的像素大得多。

核心结论:选传感器时,不要只看像素数。像素大小、动态范围、帧率、噪声水平,这些都比像素数重要。我见过太多人只看「2000万像素」就下单,结果拍出来的图像还不如800万像素的工业相机。

知识体系总览

下面这张图,是我自己总结的光学与成像知识体系。每次做新项目,我都会先过一遍这个框架,确保没有遗漏。

光学基础与成像原理知识体系 成像系统 光的本质 波长 · 强度 · 方向 可见光380-780nm 透镜成像 1/f = 1/u + 1/v 焦距 · 物距 · 像距 曝光三要素 光圈 · 快门 · ISO F值 · 曝光时间 · 感光度 传感器 CCD vs CMOS 像素 · 动态范围 · 帧率 核心原则:理解物理限制,才能设计好视觉系统 光 → 透镜 → 曝光 → 传感器 → 数字图像

这张图把本章的核心内容串起来了。从光的本质出发,经过透镜成像,再到曝光控制,最后落到传感器上。每一步都有物理限制,每一步都影响最终图像质量。

做视觉系统,说白了就是跟光打交道。你理解光,就能用好镜头;你理解传感器,就能选对硬件。这两样搞定了,后面的算法才有意义。

我的建议:如果你刚开始做视觉项目,先别急着调算法。拿个相机,手动调调光圈、快门、ISO,看看图像怎么变。这个手感,比看一百篇论文都有用。


专注资料整理