远心镜头这名字,做机器视觉的人基本都听过,但真正把它用明白的人,说实话不算多。我最早接触远心镜头,是在做精密零部件尺寸测量项目的时候,当时用普通工业镜头加背光源,测一个直径20mm的金属垫片,结果换了两批来料,测出来的尺寸数据能差出0.15mm。后来排查来排查去,发现问题不在算法,不在光源,而是在镜头的“视差”上——物体表面不是绝对平整的,高度只要有几毫米的起伏,普通镜头就会因为透视关系把尺寸“看”小了或者“看”大了。那是我第一次意识到,有些测量场景,不用远心镜头根本玩不转。
这篇文章就围绕远心镜头这件事,把工作原理拆开讲透,再把选型时要考虑的参数一个个列明白,最后放一些我在实际项目中踩过的坑,希望能帮到正在做视觉测量选型的朋友。
1. 远心镜头到底解决了什么问题
1.1 普通工业镜头的“近视眼”困境
先说说普通镜头为什么不适合做精密测量。
我们平时用的C接口工业镜头,本质上和单反镜头是一类东西——基于透视成像原理。物体离镜头近,在传感器上成的像就大;物体离镜头远,成的像就小。这在人眼看起来非常自然,因为人眼和大脑就是靠这种“近大远小”的关系来判断空间距离的。
但对于机器视觉测量来说,“近大远小”就是个灾难。
举个例子,你要测一个圆柱形零件的外径。这个零件放在传送带上,因为振动、公差、夹具磨损等原因,每次到达拍照位置时的轴向位置其实都会有零点几毫米的偏差。用普通镜头拍,位置稍微靠前一点,外径在图像里就会显得大一些,位置靠后一点,外径就会显得小一些。哪怕你的像素标定做得很准,哪怕算法再稳定,光这一个物理层面的尺寸波动,就已经让测量精度上不去了。
再举个例子,测量一个带有沉孔或台阶的工件,沉孔底部和上表面的高度差有几毫米。你用普通镜头拍,底部的圆和上表面的圆,因为距离镜头的光程不同,成像比例就不一样。这时候你测出来的“同心度”和“孔径”,实际上是混合了高度信息的视觉投影结果,而不是真实的几何尺寸。
1.2 远心镜头为什么能消除视差
远心镜头的核心价值,就是让“物距变化”不再影响“放大倍率”。
用大白话说,普通镜头是“近大远小”,远心镜头则是“不管物体离我多远,同一个物体在图像里的大小始终是一样”的。哪怕物体沿着光轴方向前后移动几毫米、十几毫米,图像里的尺寸几乎纹丝不动。
这个特性是怎么来的?关键在于镜头的孔径光阑位置被设计在了特殊的位置——通过物理光路的约束,使得进入镜头参与成像的光线,只有那些“近似平行于光轴”的光线,或者说,只有那些主光线始终平行于光轴的光线,才能通过整个系统参与成像。
这时候可以想象一下:如果只有平行光才能成像,那物体前后移动时,打在传感器上的像斑位置不会发生平移,放大倍率自然就保持恒定。这就是远心镜头“无视差”的物理本质。
提示:远心镜头并不能消除“离焦模糊”,它消除的是“离焦带来的尺寸变化”。物体超出景深范围后,画面会变模糊,但模糊并不带来轮廓位置的平移——这一点在下一节讲景深时会再展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 远心镜头的工作原理与分类
2.1 远心光路:核心是孔径光阑的位置
要谈远心镜头的工作原理,必须从“孔径光阑”说起。
镜头里都会有一个控制进光量的光阑(相当于人眼的虹膜),它的位置对成像特性影响极大。普通镜头的光阑一般放在镜组中间,各种角度的光线都能进来,于是就有了透视变形。远心镜头则把光阑放到了特定的焦平面位置。
当孔径光阑被放置在“像方焦平面”的时候,物方只有平行于光轴的光线才能通过光阑中心进入像方。这样的光路设计使得物体即便沿轴向移动,其像高不会变化,这被称为“物方远心”。
反过来,当孔径光阑被放置在“物方焦平面”时,像方只有平行于光轴的光线会聚到像点,探测器位置的微小偏差不会影响成像的清晰度和位置,这被称为“像方远心”。
一般工业测量中说的远心镜头,大多指的是“物方远心”或者“双侧远心”。
- 物方远心:只对物距变化不敏感,适合大多数尺寸测量场景。
- 像方远心:对对焦位置偏移有较好容忍度,适合后续需要接不同转接环或相机后焦无法精确保证的场景。
- 双侧远心:物方和像方都不敏感,畸变和视差控制最严格,适合最高精度的应用。
2.2 物方远心、像方远心、双侧远心的区别
三个类型怎么选?其实看名字就能猜个大概。
物方远心解决的是“物体位置不稳定导致尺寸跳动”的问题,这是测量中最常见的问题,所以市面上绝大多数标准远心镜头都是物方远心设计。它的价格相对可控,性能也够用。
像方远心在我个人看来,更多是给“相机没法精确贴合法兰面”或者“需要更换不同品牌相机”的场景准备的。因为它的像方出射光线是平行的,相机CCD/CMOS芯片位置前后偏差一点,像的大小和清晰度变化都很小。但普通项目如果相机固定不动,像方远心的优势并不明显。
双侧远心则是把两个方向都做好,让物体的沿轴位移和相机的轴向位置误差同时都不影响测量结果。它的镜片数量更多、加工装配要求更高、价格也更贵。当检测精度要求达到微米级,且工件的定位公差和相机的装配公差都无法进一步压缩时,双侧远心就是最稳妥的答案。
我在很多精密装配项目里,只要预算允许,会直接锁定双侧远心。原因很简单——现场调试的变量越少,项目落地越顺利。
2.3 平行投影与透视投影的几何对比
用一张简单的方式来理解远心与否的区别:普通镜头看到的是一个“锥形”的世界,靠近镜头的物体显得大,远离镜头的物体显得小。而远心镜头看到的,是一个“圆柱形”的世界,物体不管离镜头多远,都是同一个比例。
这种特性在机械工程里有个更严谨的名字,叫“平行投影”或“正投影”。三视图中主视图、俯视图、侧视图都是平行投影,所以机械工程师看远心镜头拍出来的图像会非常亲切——它输出的就是标准的工程视图,外侧轮廓完全不受表面起伏和轮廓高度差的影响。
这带来的另外一个好处是,三维物体的“深度”信息被压平了,边缘检测变得极其干净。尤其是带倒角、带圆弧、带有高低不同的异形面工件,普通镜头拍出来边缘会有二次反射、暗区、虚影,远心镜头配合合适的照明,边缘是一个锐利干净的过渡带。
3. 远心镜头选型前的硬性参数
选远心镜头,和选普通工业镜头完全是两套逻辑。普通镜头主要看焦距、光圈、接口,远心镜头则要关注一组“特殊规格”。
3.1 放大倍率、工作距离、景深
这三个参数是远心镜头选型最先要锁定的三件套。
放大倍率(Magnification)的定义是像高和物高的比值。比如你的相机传感器靶面高度是6mm,想让镜头的视野高度覆盖12mm的物体,那倍率就是6÷12=0.5倍。远心镜头的倍率通常是固定值,常见的有0.16倍、0.3倍、0.5倍、1倍、2倍、4倍等,不像普通镜头有变焦或者可变光圈。选定倍率后,视野范围基本就锁死了。
工作距离(Working Distance)远心镜头的另一个硬指标。它指的是镜头前端第一个镜片到被测物表面的距离。注意,远心镜头的工作距离也是一个设计固定值,只能在很小的范围内微调,比如正负2mm、正负5mm。超出设计范围后,远心度会下降,畸变和尺寸稳定性都可能超差。所以现场机构设计时,必须把工作距离当成一个“必须卡死的尺寸”来控制,而非像普通镜头那样可以通过调焦来适应。
景深(Depth of Field)这里要特别提醒:远心镜头的景深普遍比同焦段的普通镜头小。这是因为远心结构本身对光线角度要求苛刻,可用光圈相对有限。景深和数值孔径(NA)直接相关,公式大致是:
景深 ≈ λ / (2 × NA²)
其中λ是光波长,NA是数值孔径。注意这个公式里的核心关系:NA越大,分辨率越高,但景深越小。远心镜头的光圈数值通常用“F# 或 光学F数”来标注,它与NA的关系是:
NA ≈ 1 / (2 × F#)
所以,选远心镜头时经常面临的矛盾就是:想要更高的分辨率,光圈就要开大,但景深就变浅;想要更大的景深,光圈收小,分辨率的理论极限又会下降。这是一个物理上的跷跷板,需要在项目需求里找平衡。
注意:选型时不要只看镜头的“F#”这个数字,远心镜头一般还会标注“光学畸变”“远心度”“MTF曲线”等参数,这些才是衡量镜头质量的核心。工业镜头的F值有时候是等效值,和真实通光量不能简单划等号。
3.2 分辨率与像素匹配的计算
远心镜头的分辨率,通常用每毫米能分辨多少线对(lp/mm)来衡量,这个值是由镜头的衍射极限和像差矫正水平共同决定的。
实际选型时,往往不是单独看镜头分辨率,而是看“镜头分辨率是否和相机像素尺寸匹配”。
举例:假设你用的是500万像素相机,像元尺寸3.45μm,那对应的奈奎斯特频率大约是:
1 / (2 × 3.45μm) ≈ 145 lp/mm
如果你的镜头分辨率只有100 lp/mm,那相机的像素再高,也发挥不出应有的细节水平,小块吃大块,浪费了;反过来,如果镜头分辨率高达400 lp/mm,但相机像素只有5μm,也看不出来差异,白白花了高分辨率镜头的钱。
计算的时候还要注意,镜头标注的“中心分辨率”和“边缘分辨率”往往差异很大。远心镜头虽然设计时已经尽力保证全画面均匀性,但边缘还是会有一定下降。所以目标检测区域如果靠近视场边缘,建议把分辨率作适当冗余。
3.3 靶面覆盖:不要让视野被“截断”
远心镜头的像方光路是为特定靶面设计的,也就是说,每个镜头都有个“最大适配靶面”,比如1/1.8英寸、2/3英寸、1英寸、1.1英寸等。
如果你的相机靶面大于镜头的设计靶面,图像的四个角会出现严重的暗角,甚至直接黑掉——因为镜头投射出来的清晰像场根本覆盖不到那么大的传感器区域。
如果相机靶面小于设计靶面,倒是没问题,只是会浪费一部分镜头的视野范围,相当于你花了大靶面镜头的钱,只用了中间一小块像场。
这里有一个选型节奏的建议:先定测量精度要求,推算出像素数量需求,再选相机;相机靶面定下来后,用“靶面高÷视野高”得到倍率,再去看哪款远心镜头有对应的倍率和工作距离。这样一轮下来,基本就可以锁死所选型号的范围。
4. 远心镜头的实际操作与案例解析
4.1 一个完整的选型计算实例
直接拿我最近做的一个项目来走一遍完整流程。项目内容是检测一个金属插针的端面直径,公差要求±0.02mm。插针放在夹具里,因为是手工放料,Z方向位置会浮动大约±1.5mm。现场光源用同轴平行光,背景是黑色陶瓷板。
第一步,确定视野范围。插针长度约10mm,端头直径4mm,为了方便后续可能增加的检测项(比如针尖位置和弯曲度),我把视野设成24mm×18mm左右,留足余量。
第二步,选择相机。测量精度要求±0.02mm,为了稳定,单个像素对应的物理尺寸最好在0.005mm左右,也就是约5µm/pix。如果选2/3英寸靶面(幅面约8.8mm×6.6mm),需要的像素数为:
- 水平方向:24mm ÷ 0.005mm ≈ 4800像素
- 垂直方向:18mm ÷ 0.005mm ≈ 3600像素
这样就需要约1700万像素的相机。这个像素量有点偏高,成本和传输压力都大。要么缩短视野,要么降低一点像素精度要求。
第三步,把精度稍微放宽到0.007mm/pix,同时视野压缩到20mm×15mm,那需要的像素是:
- 水平:20 ÷ 0.007 ≈ 2857像素
- 垂直:15 ÷ 0.007 ≈ 2143像素
选择500万像素的2/3英寸相机(2448×2048)就够了,像素分辨率约0.008mm/pix,用亚像素边缘检测后,重复精度可以做到0.003mm以内,满足±0.02mm的测量要求是足够的。
第四步,计算倍率。2/3英寸靶面高度6.6mm除以视野高度15mm,倍率≈0.44倍,市场上比较接近的主流规格是0.45倍。
第五步,找满足条件的镜头。工作距离设计在110mm,景深要求覆盖±1.5mm,也就是总景深至少3mm。这一点需要和镜头厂商确认,因为景深和倍率、光圈有关。0.45倍镜头,配合适中的光圈,景深做到±2mm左右是常见的,但要确认在景深覆盖范围内的“远心度”指标是否仍然足够。
最终选的是一支0.45倍、工作距离110mm的双侧远心镜头,配同轴光源接口。这套方案上线后,实测重复性在±0.004mm以内,完全满足要求。
4.2 照明方式对远心系统的影响
远心镜头通常需要搭配远心照明使用,尤其在进行轮廓尺寸测量时。
市面上常见的配置是:物体放在远心背光源(也叫平行背光源)和远心镜头之间。背光源发出的光也是平行光,光线穿过被测物,被镜头接收。这种“平行光对平行光”的配置下,物体边缘的阴影是锐利的,因为光的传播方向高度一致,不会产生半影。
如果不使用远心背光,而使用普通LED面光源,效果就差很多。普通面光源发出的光角度很杂,一部分光绕射到物体边缘背后,会让轮廓边缘变得模糊。这在精密测量时是致命的——边缘模糊意味着像素提取的轮廓位置不确定度变大,亚像素精度再高也补不回物理光路上的模糊。
另外,同轴光源用来检测表面缺陷或者高反光平面时配合远心镜头,效果也不错的。这里要注意,如果用同轴光,就需要确保镜头有对应的同轴光接口(一般叫Coaxial),否则光线没有办法从镜头内部投射出去。
4.3 远心镜头的畸变与标定
远心镜头也不是完美零畸变。所谓的“低畸变”,通常在标称0.01%~0.1%之间。这个值看起来很小,但在实际测量中需要换算成像素和物理尺度的误差来判断是否可接受。
假设镜头畸变标称0.05%,视野高度15mm,那最大畸变位移约为:
15mm × 0.05% ≈ 0.0075mm
也就是7.5μm。如果你的测量公差是±20μm,这个畸变是全画面范围内最坏情况的偏差,对于固定位置的被测物来说,畸变的重复性是确定的,所以可以通过标定来补偿一部分。
实践中,我不会因为远心镜头畸变低就跳过标定。我一般会做一次全视野的网格板标定,用标定板的圆点阵列铺满整个视野,然后用拟合算法得到每个位置的畸变映射表,在测量算法中做空间校正。这样可以把剩余畸变带来的系统误差压到极小。
远心镜头标定和普通镜头最大的区别是:普通镜头标定通常需要拍多角度、多姿态的图像来求解内外参,而远心镜头因为是平行投影,没有透视关系,标定板的姿态变化对结果没有意义。远心标定只需要一张垂直正对的网格板图像,甚至用精密玻璃尺都可以完成像素当量标定。这一点常有人做错,拿着远心镜头去拍不同角度的棋盘格,浪费时间还标定失败。
5. 远心镜头选型中的常见问题与排查
5.1 远心镜头与普通镜头的应用边界
远心镜头很好,但也不是万能的。有些场景用远心镜头反而是自找麻烦。
一是大视野场景。远心镜头的视野和镜头的设计尺寸强相关,视野做大,镜筒直径就大、镜片就大、价格陡增。比如要测一个500mm宽的大板子,用远心镜头可能体积庞大到无法安装,而且价格高得离谱。这种情况下用普通镜头加标定,甚至用拼接方案,成本会低几个数量级。
二是大景深场景。远心镜头景深本来就浅,如果工件表面高低差超过十几毫米,还要求全部清晰,那远心镜头就很难做到了。这时候可以结合“扩展景深”算法,或者考虑用准直照明加多视角重建的方案。
三是成本敏感、精度要求不高的一般视觉定位场景。如果只是粗略定位到±0.1mm,普通镜头绰绰有余,没必要上远心。我看到过有些项目明明检测精度要求不高,还是被建议上了远心镜头,结果成本翻了三倍,现场调试难度也大了不少,完全没有必要。
5.2 远心度不足的表现与判断
远心度(Telecentricity)是远心镜头独有的指标,单位是“度”,表示物体沿光轴移动单位距离时,图像尺寸的变化率。常规的远心镜头远心度能做到0.1°以内,好的能做到0.02°甚至更低。
远心度不足的典型表现是:同一个工件,位置放高一点和放低一点,测出来的尺寸会有微小但明显的差异。这种差异不易察觉,但对高精度测量来说就是硬伤。
怎么在入场时检验镜头远心度?实操方法很简单:用一把带刻度的精确量块放置在视场中心,横向拍摄后记录下来,然后沿光轴方向前后平移量块,每次移动距离用百分表或塞规控制(比如每1mm一次),记录图像里量块尺寸的变化量。如果变化量超出预期,说明这支镜头的远心度指标不合格或者标称参数有水分。
另外一个快速判断方法,是把一个圆形工件放在视场不同位置——中心和四个边角。如果边缘处圆的形状发生明显的透视拉伸,说明镜头的远心度在边缘退化,也要警惕。
5.3 接口与后焦问题
远心镜头常见的接口有C接口、F接口、M42、M58等。选型的时候,除了看物理接口是否能拧上相机,还要注意“后焦距”是否匹配。
一些大型远心镜头,特别是倍率小于0.3倍的,常常采用的是M58或M72螺纹接口,而不是常见的C接口。这种镜头通常需要搭配接圈或者转接环,但转接环的引入可能会改变后焦——也就是镜头最后一片镜片到相机芯片的距离。后焦不匹配,会导致合焦位置偏移,画面看起来模糊,而且不是通过转动调焦环就能完全解决的。
在安装远心镜头时,我建议严格按照厂商提供的“机械图尺寸链”来做,不要自己随便加垫片或者延长筒。每一个新增的机械环节都会引入公差,而这些公差最终都会反映在成像清晰度和位置精度上。如果必须转接,优先选择厂商原厂转接件,并确认其厚度公差。
注意:远心镜头通常在出厂前已校准好法兰距离,现场做任何机械改动都有可能破坏它的光学性能。很多现场模糊、边缘虚的问题,拆开检查最后发现是在镜头和相机之间多加了一个2mm的延长筒。
5.4 景深不足与对焦技巧
远心镜头对焦时,不像普通镜头那样“拧到某个位置就可以”。因为它的焦深和景深都比较浅,人眼在显示屏上判断对焦经常会出错。
我的经验是:先用手动方式,把远心镜头的工作距离调到标称值附近,然后用一个表面带有精细纹理的平面物体(比如标定板或磨砂金属片)放在视场中心,微调镜头高度或物距,找到一个“视觉上最锐利”的点。接下来,不要只看中心,一定要检查四角和上下边缘是否同样清晰。如果中心清楚但边缘虚,大概率不是对焦问题,而是靶面倾斜或者镜头轴心偏了。
如果怀疑焦准不准,最好用一把量块立在视场里,让量块表面和光轴呈小角度倾斜,观察图像中量块刻度线的清晰范围,就能快速估计出实际焦面是否落在目标平面上。这种方法在现场非常实用,比反复“目测差不多”要靠谱得多。
另外,当工件在传送带上因为轻微抖动导致沿轴波动时,如果波动范围超出景深,画面就会周期性地模糊。这种情况并不建议强行缩光圈加大景深(远心镜头光圈一般也是固定的),而要考虑机械限位、辅助压紧,或者调整触发方式,让相机在工件处于焦面位置的瞬间抓拍。
6. 个人心得体会与一个小技巧
做过不少测量项目之后,我慢慢有一个体会:远心镜头不是一种“用了就一定好”的万能工具,它需要整体系统的配合——稳定的机械定位、正确的光源、合理的相机选型、有效的标定方案,缺一个环节,它的优势都会打折扣。但它确实是解决“透视误差”和“尺寸跳动”类问题的最优解。很多项目在方案探讨阶段觉得“精密测量很难”,其实那只是因为一直用普通镜头的思路在硬扛,换一套远心成像的思路,问题往往会简单很多。
最后分享一个小技巧:在初步判断一支远心镜头的成像质量时,可以拿一把普通的卡尺放到视场中央,拍摄一帧图像,然后移动卡尺的游标,观察图像上游标轮廓的变化。如果移动过程中,游标不同位置的线条宽度始终保持一致、没有纵向膨胀或收缩,说明这支镜头的远心度和畸变控制得比较好。这个方法不需要任何专业仪器,几秒钟就能给出一支镜头足够的“初筛结论”,很适合在供应商送来样头时快速判断水平。
希望这篇文章对正在挑选或者调试远心镜头的朋友有帮助。远心成像本身并不复杂,核心就是理解“平行投影”这四个字,把光路逻辑想明白了,选型和现场问题都会好处理很多。
