4. 打光角度与方向:明场、暗场、漫射、掠射、背光

打光角度这事儿,说白了就是决定「光怎么撞上缺陷」以及「缺陷怎么把光弹回来」。我见过太多项目,相机和镜头选得都不错,结果打光角度差了那么几度,缺陷就是死活看不出来。角度不对,再好的算法也白搭。

咱们一个一个说。这五种照明方式,我按自己的习惯分成两类:正面打光(明场、暗场、漫射、掠射)和背面打光(背光)。

核心原则:缺陷的对比度,取决于缺陷表面与背景表面在「反射方向」和「反射强度」上的差异。你改变角度,就是在放大这种差异。

4.1 明场照明(Bright Field)

光源与相机同轴,或者光源环绕相机。光线垂直或接近垂直照射物体表面。平坦的镜面会把光直接反射回相机,所以背景是亮的。缺陷呢?它破坏了表面的平整度,把光散射到别处去了,所以缺陷在图像里是暗的。

特点:亮背景,暗缺陷。

我在检测手机玻璃盖板划痕时用过明场。效果很直接——划痕就是一根根黑线。但要注意,如果缺陷本身也是镜面的(比如凹坑底部很光滑),它也可能把光反射回来,那就看不出来了。

项目 说明
适用缺陷 划痕、凹坑、污点(吸收或散射光)
背景特征 亮(均匀反射)
缺陷特征 暗(散射或吸收)
典型角度 0° ~ 15°(与表面法线夹角)
我的经验 对平整表面上的吸收性缺陷效果最好
小技巧:明场照明下,如果缺陷对比度不够,试着把光源角度稍微偏一点点(比如5°)。有时候这「一点点」就能让散射光彻底离开相机视野,缺陷一下就黑了。

4.2 暗场照明(Dark Field)

光源以低角度照射物体表面。平坦的背景把光反射到相机视野之外,所以背景是暗的。缺陷呢?它把光散射到各个方向,其中一部分恰好进入相机,所以缺陷是亮的。

特点:暗背景,亮缺陷。

说白了,明场和暗场是「反着来的」。你想想看,为什么有时候明场看不出的缺陷,换暗场就一目了然?因为明场依赖「缺陷把光弄丢」,暗场依赖「缺陷把光捡回来」。对于那种很浅的、几乎不破坏表面平整度的缺陷,明场可能毫无反应,但暗场下它只要产生一点点散射,就能在暗背景里「发光」。

我曾经检测一个金属冲压件上的微裂纹。明场下裂纹几乎看不见,因为裂纹边缘太锐利,散射光太弱。换成环形暗场(低角度环光),裂纹立刻变成亮白色的细线,对比度极高。

项目 说明
适用缺陷 微裂纹、划痕、凸起、颗粒
背景特征 暗(光反射到别处)
缺陷特征 亮(散射光进入相机)
典型角度 15° ~ 45°(与表面夹角)
我的经验 对表面纹理或浅层缺陷非常敏感
注意:暗场对物体表面的「正常纹理」也很敏感。如果工件本身就有磨砂纹路,暗场下整个表面可能都是亮的,缺陷反而被淹没了。这时候需要调整角度,让正常纹理的散射光刚好避开相机。

4.3 漫射照明(Diffuse Illumination)

光线从多个方向、以多种角度同时照射物体。通常使用半球形光源(如积分球)或通过柔光板实现。目标就是消除方向性,让光变得「均匀柔和」。

特点:无方向性,消除镜面反射和阴影。

漫射照明不追求「高对比度」,而是追求「一致性」。它最适合检测什么呢?曲面、反光表面、或者表面有复杂弧度的工件。你想想看,如果用明场打一个球面,中间亮、边缘暗,对比度全被形状干扰了。漫射照明下,整个球面的亮度是均匀的,缺陷才能被单独识别。

我做过一个项目,检测塑料瓶盖内侧的异物。瓶盖内壁是曲面的,还有螺纹。明场和暗场都试了,效果一塌糊涂——阴影和反光把异物全盖住了。最后用了一个碗状漫射光源,整个内壁亮度均匀,异物(哪怕是同色的)也能靠微弱的吸收差异看出来。

项目 说明
适用缺陷 异物、颜色差异、表面污染
背景特征 均匀(无方向性反射)
缺陷特征 依赖吸收或颜色差异
典型角度 多角度(0° ~ 90°)
我的经验 曲面、高反光表面的首选

4.4 掠射照明(Glancing / Oblique Illumination)

光源以接近平行于物体表面的角度(极低角度)照射。光线几乎是「擦着」表面过去的。

特点:极度放大表面高度变化,产生强烈阴影。

掠射照明是检测「高度差」的利器。为什么?因为光几乎是水平扫过去的,任何微小的凸起或凹陷都会在另一侧投下长长的阴影。这个阴影在图像里就是一块黑斑,对比度极高。

我记得有一次检测电路板上的焊锡高度。焊锡球的高度差只有几十微米,明场和暗场都看不出来。我用了一个线光源,以接近5°的角度从侧面照射。结果呢?每个焊锡球都在背光侧投下清晰的阴影,高度差异一目了然。

项目 说明
适用缺陷 凸起、凹陷、压痕、高度差异
背景特征 暗(光几乎不进入相机)
缺陷特征 亮面+阴影(高度变化)
典型角度 5° ~ 15°(与表面夹角)
我的经验 检测高度差、凹凸、压痕的终极方案
避坑指南:我曾经在检测一个磨砂表面的工件时用了掠射照明,结果整个表面都是阴影和亮斑的交错,根本看不清缺陷。掠射照明只适用于光滑或镜面表面。如果表面本身粗糙,它自己的纹理就会产生大量阴影,把缺陷信号淹没掉。

4.5 背光照明(Backlight / Transmissive Illumination)

光源放在物体背面,相机在正面。光线穿过物体(或绕过物体边缘)进入相机。

特点:产生高对比度的轮廓或剪影。

背光照明不关心物体表面的细节,它只关心物体的「形状」和「透光性」。对于透明物体(如玻璃、塑料),内部的气泡、裂纹、杂质会阻挡或散射光线,在图像里形成暗斑。对于不透明物体,背光只显示轮廓,可以用来测量尺寸、检测边缘缺损。

我做过一个检测药片缺角的项目。药片是不透明的,正面打光根本看不出边缘的微小缺损。换成背光,药片变成黑色剪影,边缘的缺口就是白色背景上的一个「凸起」,算法一抓一个准。

项目 说明
适用缺陷 气泡、裂纹、异物(透明物体);缺角、毛刺(轮廓)
背景特征 亮(光直接进入相机)
缺陷特征 暗(阻挡或散射光)
典型角度 0°(与光轴同轴)
我的经验 透明物体内部缺陷、尺寸测量的首选

4.6 角度对缺陷对比度的核心影响

咱们把上面五种照明方式放在一起看,你会发现一个规律:角度决定了「缺陷信号」和「背景噪声」的分离程度。

打光角度与缺陷对比度关系图 打光角度选择 明场照明 暗场照明 漫射照明 掠射照明 背光照明 角度:0°~15°(近垂直) 角度:15°~45°(低角度) 角度:多角度(0°~90°) 角度:5°~15°(极低) 角度:0°(同轴) 缺陷散射光 → 暗 背景镜面反射 → 亮 缺陷散射光 → 亮 背景反射到别处 → 暗 均匀照明 依赖吸收/颜色差异 高度差 → 阴影 对比度极高 轮廓/剪影 内部缺陷为暗斑 划痕、凹坑、污点 (平整表面) 微裂纹、颗粒、凸起 (光滑表面) 异物、颜色差异 (曲面/反光表面) 凸起、凹陷、压痕 (高度差检测) 气泡、缺角、尺寸 (透明/轮廓) 核心:角度决定「缺陷信号」与「背景噪声」的分离程度

我个人的经验是,选打光角度时,先问自己三个问题:

  1. 缺陷是什么类型的? 吸收/散射型?还是高度变化型?还是内部异物型?
  2. 背景表面是什么状态? 镜面?粗糙?曲面?透明?
  3. 我想要缺陷亮还是暗? 这决定了用明场还是暗场。

这三个问题想清楚了,角度选择的大方向就有了。剩下的就是微调——把光源从10°挪到8°,或者从30°挪到25°,对比度可能就翻倍了。

一句话总结:没有「最好」的打光角度,只有「最合适」的打光角度。明场看吸收,暗场看散射,漫射看均匀,掠射看高度,背光看轮廓。角度就是你的调色盘,缺陷就是你的画。