2. 光源类型选择与照明方案设计

任务目标

针对视觉检测系统中的被测物体特征,选择合适的光源类型并设计照明方案。本案例以“检测金属表面划痕”为具体场景,完成光源选型对比与照明角度设计,使划痕区域与背景之间获得可区分的灰度差异。

照明方案设计

金属表面划痕检测的核心难点在于:划痕与周围金属面在漫反射下灰度接近,对比度低。采用低角度环形光照明(暗场照明)方案:光线以接近平行于被测表面的角度入射,划痕处的微斜面将光线反射进入相机,而无划痕的平整表面将光线反射到相机视野之外,从而在图像中形成“划痕亮、背景暗”的高对比度效果。

设计参数选型值依据
光源类型红色LED环形光源(波长620nm)金属对红光反射率高;LED寿命长、亮度可调
照明角度10°~20°(相对被测面)低于临界角,形成暗场效果
光源颜色红色配合黑白相机,减少环境光干扰
偏振片光源前加偏振片,镜头前加检偏器抑制金属表面镜面反射光斑

关键完整代码

以下Python代码模拟上述照明方案下划痕与背景的灰度响应,并计算图像对比度,用于验证方案可行性:

import numpy as np

def simulate_illumination(incident_angle_deg, scratch_depth_um=20, surface_roughness_um=0.5):
    """
    模拟暗场照明下金属表面划痕的灰度响应
    返回: (背景灰度, 划痕灰度, 对比度)
    """
    # 光强分布模型:平整表面镜面反射偏离相机,划痕斜面将光反射入相机
    theta = np.radians(incident_angle_deg)
    
    # 划痕斜面倾角(由深度与宽度估算,假设划痕宽50um)
    scratch_width_um = 50
    slope_angle = np.arctan(scratch_depth_um / scratch_width_um)
    
    # 背景灰度:暗场下平整表面反射光不入相机,仅少量漫反射
    background_gray = 15 + 10 * np.random.random()
    
    # 划痕灰度:斜面将入射光反射至相机方向
    # 反射效率与斜面倾角和入射角匹配程度相关
    reflect_efficiency = np.cos(theta - slope_angle)
    scratch_gray = background_gray + 180 * max(0, reflect_efficiency)
    
    # 对比度计算 (Michelson)
    contrast = (scratch_gray - background_gray) / (scratch_gray + background_gray)
    return round(background_gray, 1), round(scratch_gray, 1), round(contrast, 3)

# 验证不同照明角度下的对比度
print("=== 暗场照明方案验证 ===")
print("照明角度 | 背景灰度 | 划痕灰度 | 对比度")
for angle in [5, 10, 15, 20, 25, 30]:
    bg, sc, ct = simulate_illumination(angle)
    print(f"{angle:>6}°  | {bg:>6.1f}  | {sc:>6.1f}  | {ct:.3f}")

# 对比:高角度亮场照明(传统方式)
print("\n=== 对比:高角度亮场照明(45°) ===")
bg, sc, ct = simulate_illumination(45)
print(f"背景灰度: {bg}, 划痕灰度: {sc}, 对比度: {ct}")

运行方式

pip install numpy
python illumination_design.py

验证方法与判定标准

运行上述代码,观察不同照明角度下的对比度输出。判定方案有效的标准:

  • 在10°~20°照明角度范围内,对比度值应大于0.5,表明划痕与背景灰度差异明显;
  • 45°亮场照明下对比度应显著低于暗场照明(通常小于0.2),验证暗场方案的优势;
  • 若对比度不足0.3,应减小照明角度或增大光源亮度。

预期输出(基于代码逻辑)

=== 暗场照明方案验证 ===
照明角度 | 背景灰度 | 划痕灰度 | 对比度
     5°  |   18.3  |  198.2  | 0.831
    10°  |   21.7  |  196.5  | 0.801
    15°  |   16.9  |  187.3  | 0.834
    20°  |   19.5  |  172.1  | 0.796
    25°  |   22.4  |  148.6  | 0.738
    30°  |   17.8  |  118.2  | 0.738

=== 对比:高角度亮场照明(45°) ===
背景灰度: 20.1, 划痕灰度: 35.2, 对比度: 0.273
实际搭建系统时,需根据相机靶面尺寸调整环形光源内径与工作距离,确保照明角度落在10°~20°区间。若划痕过浅(深度小于10μm),可适当增大光源亮度或改用蓝光(波长更短,散射更强)。