
009、镜头设计的几何光学第一课——为什么不是所有的光都能成像以及F数背后的物理约束去年秋天在产线盯一款车载前视摄像头的量产导入夜视样机在暗场下画面中心清晰、边缘发虚而且光圈从F1.6收到F2.8之后边缘画质反而更差了。当时产线工程师的第一反应是“对焦没对准”把马达驱动来回扫了好几遍无果。后来我让他们把镜头拆下来用平行光管打一个点光源直接看像面上的弥散斑——问题立刻暴露这不是对焦的问题是光阑位置和镜组像差平衡被打破了。这个案例特别适合作为几何光学第一课的开场。因为很多人对镜头设计的理解停留在“玻璃堆叠”和“MTF曲线”上但真正决定一颗镜头能不能用的往往是最基础的几何光学约束——不是所有的光都能成像而F数就是那个把“能成像的光”和“不能成像的光”分开的物理闸门。从一根光线说起孔径光阑才是真正的“门卫”先抛开复杂的像差理论回到最朴素的几何光学模型。一个理想光学系统物方一点发出的光线经过镜头后汇聚到像方一点这是高斯光学告诉我们的。但现实中没有理想系统镜头是由多片透镜组成的每一片透镜都有口径光线经过每一片时都可能被拦截。那么问题来了哪一片透镜的口径决定了最终有多少光能到达像面答案是孔径光阑——那个真正限制光束宽度的元件。它不一定是物理上口径最小的那片而是通过前后镜组的映射关系在物方或像方看起来“最小”的那个开口。这个映射关系就是光瞳。这里踩过一个坑早期做安防定焦镜头时我一度以为把镜筒内壁车小一点就能减小光圈结果画面边缘出现了严重的渐晕。后来才明白光阑位置如果不在正确的轴向位置上它改变的不是F数而是视场角的遮挡——边缘视场的光线被切掉了中心视场的光线反而没变。这就是为什么镜头设计里孔径光阑的位置往往和镜组的对称性、像差校正策略强耦合而不是随便找个地方放个垫片。F数不是“光圈大小”而是“能成像光线的角度范围”F数定义为焦距与入瞳直径之比f/D。这个定义本身很简单但它的物理含义远比“光圈大小”深刻。它描述的是物方轴上点发出的、能通过系统到达像面的那束光其锥角的正切值等于1/(2F)。换句话说F数决定了系统能接收多大角度的光线。这个角度约束直接决定了衍射极限。艾里斑半径约等于1.22λFF数越大衍射斑越大分辨率越低。但F数越小球差、彗差、场曲这些与孔径高次方相关的像差就越严重。所以F数不是自由选择的参数它是在衍射极限和几何像差之间做权衡的“平衡点”。在车载镜头设计里这个权衡尤其残酷。夜视场景需要大光圈小F数来进光但大光圈下边缘视场的像差会急剧恶化。我们当时那颗镜头F1.6时边缘MTF只有中心的三分之一收到F2.8后边缘MTF反而提升到中心的一半——但中心MTF下降了。这就是典型的球差和彗差随孔径变化的非线性行为小光圈时边缘视场的主光线角度大场曲和像散主导大光圈时边缘视场的轴外光束宽度大彗差和倍率色差主导。两者对F数的响应方向相反。为什么不是所有的光都能成像光瞳与渐晕的物理本质回到开篇那个案例。产线工程师反复对焦无效是因为他们默认“所有通过镜头的光都能参与成像”。但几何光学告诉我们只有通过入瞳、出瞳且不被镜组边缘拦截的光线才能到达像面。当光阑位置设计不当或镜组口径不足时轴外视场的光束会被部分拦截这就是渐晕。渐晕不是“画质变差”那么简单它改变了像面的照度分布。理想情况下像面照度按cos⁴ω定律衰减ω是视场角但渐晕会加剧这个衰减导致边缘更暗。更麻烦的是渐晕还会改变有效F数——边缘视场的有效F数比中心大这意味着边缘的衍射极限更差景深更大对焦位置偏移的表现也更复杂。我们当时那颗镜头的问题恰恰是光阑位置太靠前导致轴外光束在下方的镜组边缘被切掉了一部分。从MTF曲线上看边缘视场的子午和弧矢曲线分离严重而且随着光圈收缩分离反而加剧——因为小光圈下主光线角度没变但光束宽度变小被拦截的比例反而更高。这就是为什么F2.8时边缘画质比F1.6更差——不是像差变差了而是有效孔径变小导致衍射极限恶化同时渐晕比例上升。从F数到像差平衡一个真实的调优案例那颗车载镜头最终怎么解决的我们把孔径光阑向后移动了约3mm同时调整了第二、第三片透镜的曲率半径和间距让轴外光束在光阑前后的高度分布更对称。具体做法是用Zemax的“全局优化”跑了一轮但约束条件里加了“边缘视场在F1.6和F2.8下的子午/弧矢MTF差值小于0.1”这个硬指标。手动微调了光阑位置每次移动0.5mm观察渐晕图和相对照度曲线。最终方案是光阑后移2.8mm同时把第三片透镜从球面改成偶次非球面用非球面系数来补偿轴外像差。这里有个经验不要迷信全局优化。全局优化能找到局部最优解但往往牺牲了某个视场或某个光圈下的表现。真正量产级的镜头设计必须手动干预光阑位置和镜组对称性因为F数、视场角、渐晕、像差这几者是强耦合的优化算法很难同时满足所有约束。方法论沉淀F数不是“选出来的”是“算出来的”很多工程师选镜头时直接看F数觉得F1.4一定比F2.0好。但实际项目中F数往往是被系统级需求反推出来的。比如车载前视摄像头需要探测距离200米外的行人传感器像素尺寸3μm那么根据衍射极限和信噪比要求F数必须小于某个值才能保证足够的角分辨率和进光量。但F数太小景深不够对焦精度要求极高而且边缘像差难以校正。所以我的建议是在项目定义阶段先列出所有系统级约束——探测距离、视场角、传感器尺寸、像素尺寸、最低照度、对焦范围、温度漂移——然后反推F数的可行区间。这个区间往往很窄比如车载前视通常是F1.4到F2.0之间。然后在这个区间内用几何光学做初步的像差平衡看哪个F数下全视场、全孔径的MTF都能接受。别一上来就追求大光圈。大光圈意味着镜片口径大、厚度大、重量大、成本高而且对装配公差极其敏感。我们做过统计F1.4的镜头比F2.0的镜头量产良率低15%到20%因为镜片偏心公差和倾斜公差对像质的影响随孔径增大而急剧放大。个人经验几何光学第一课先学会“看光路”最后说点课本上不讲的。做镜头设计或调试最重要的能力不是算公式而是“看光路”。拿到一颗镜头先用平行光管和刀口仪看焦点位置再用干涉仪看波前最后用MTF测试仪看全视场表现。每一步都在验证几何光学的某个基本假设——光阑位置对不对、光瞳有没有偏移、渐晕有没有超标。如果你在产线遇到画质问题第一反应不要是“算法去噪”或“ISP调参”先问三个问题光阑位置在哪边缘视场的光束有没有被拦截F数在边缘视场是不是变了这三个问题能解决80%的“莫名画质劣化”问题。记住F数不是镜头上印的那个数字它是整个光学系统对光线“准入资格”的物理裁决。理解了这一点你才算真正跨进了几何光学的大门。