4. 打光角度与方向:明场、暗场、漫射、掠射、背光
打光角度这事儿,说白了就是决定「光怎么撞上缺陷」以及「缺陷怎么把光弹回来」。我见过太多项目,相机和镜头选得都不错,结果打光角度差了那么几度,缺陷就是死活看不出来。角度不对,再好的算法也白搭。
咱们一个一个说。这五种照明方式,我按自己的习惯分成两类:正面打光(明场、暗场、漫射、掠射)和背面打光(背光)。
4.1 明场照明(Bright Field)
光源与相机同轴,或者光源环绕相机。光线垂直或接近垂直照射物体表面。平坦的镜面会把光直接反射回相机,所以背景是亮的。缺陷呢?它破坏了表面的平整度,把光散射到别处去了,所以缺陷在图像里是暗的。
特点:亮背景,暗缺陷。
我在检测手机玻璃盖板划痕时用过明场。效果很直接——划痕就是一根根黑线。但要注意,如果缺陷本身也是镜面的(比如凹坑底部很光滑),它也可能把光反射回来,那就看不出来了。
| 项目 | 说明 |
|---|---|
| 适用缺陷 | 划痕、凹坑、污点(吸收或散射光) |
| 背景特征 | 亮(均匀反射) |
| 缺陷特征 | 暗(散射或吸收) |
| 典型角度 | 0° ~ 15°(与表面法线夹角) |
| 我的经验 | 对平整表面上的吸收性缺陷效果最好 |
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 角度对缺陷对比度的核心影响
咱们把上面五种照明方式放在一起看,你会发现一个规律:角度决定了「缺陷信号」和「背景噪声」的分离程度。
我个人的经验是,选打光角度时,先问自己三个问题:
- 缺陷是什么类型的? 吸收/散射型?还是高度变化型?还是内部异物型?
- 背景表面是什么状态? 镜面?粗糙?曲面?透明?
- 我想要缺陷亮还是暗? 这决定了用明场还是暗场。
这三个问题想清楚了,角度选择的大方向就有了。剩下的就是微调——把光源从10°挪到8°,或者从30°挪到25°,对比度可能就翻倍了。