3、光照不均问题分析:光照模型、常见光照不均类型与影响

光照不均,说白了就是图像里不该亮的地方太亮,该亮的地方又太暗。我做了这么多年图像处理,遇到最多的坑就是光照问题。你想想看,一个好好的算法,换张光照均匀的图跑得飞起,一到真实场景就崩了。嗯,今天我们就来彻底拆解一下这个问题。

3.1 光照模型:理解光的物理本质

要解决光照不均,先得知道光是怎么来的。我个人习惯把光照模型分成三类:

模型类型 核心公式/描述 典型场景
朗伯反射模型 I = ρ · L · cos(θ) 漫反射表面(纸张、墙壁)
镜面反射模型 I = ρ · L · (R·V)^n 金属、玻璃、水面
混合模型 I = I_diffuse + I_specular 大多数真实物体

这里 ρ 是表面反射率,L 是光源强度,θ 是入射角。我在项目中遇到过最典型的案例:用朗伯模型去处理金属零件表面,结果补偿出来的图像全是假高光。为什么?因为金属的镜面反射分量占了主导,朗伯模型根本hold不住。

关键认知:光照不均的本质是入射光能量在空间上的非均匀分布。补偿的核心就是把这个分布估计出来,然后反着做一遍。

3.2 常见光照不均类型

实际项目中,光照不均就三种面孔。我一个个说。

3.2.1 渐变光照

这是最常见的。光源在某个方向,图像从一边到另一边亮度逐渐变化。比如:

  • 窗口进来的自然光,从左到右渐暗
  • 单侧补光灯,中心亮边缘暗
  • 镜头暗角效应,四角比中心暗15%-30%

我曾经在一条产线上做缺陷检测,相机装在传送带正上方,两侧各一盏LED灯。结果图像从左到右亮度差了40个灰度级。一开始没注意,算法把渐变的边缘误判成缺陷,误报率飙到60%。后来加了个背景拟合,才压下来。

3.2.2 阴影

阴影比渐变难搞。它有两个特点:

  1. 边界锐利:物体遮挡造成的阴影,边缘往往只有几个像素的过渡
  2. 强度不确定:阴影区的亮度可能是正常区的30%-70%,取决于光源角度和遮挡物距离

我建议你特别注意一种情况:自阴影。就是物体本身凸起的部分给自己投下的阴影。这在3D检测里特别常见,比如芯片引脚、螺丝头、浮雕文字。自阴影和真实缺陷在视觉上几乎一模一样,很多新手在这里翻车。

3.2.3 高光

高光是光照不均里最头疼的。为什么?因为高光区域的信息是丢失的——像素值直接饱和到255,你根本不知道它原本是什么颜色。

避坑指南:我曾经在金属表面字符识别项目里,高光区域把字符完全吞掉了。试了十几种补偿算法,最后发现——物理上改变光源角度比任何算法都管用。记住:算法不是万能的,光学设计才是第一道防线。

三种光照不均的对比:

类型 空间分布 边缘特征 信息丢失程度 补偿难度
渐变 平滑、连续 无锐利边缘 低(像素未饱和) ★☆☆
阴影 局部、块状 锐利边缘 中(像素未饱和) ★★☆
高光 点状、片状 渐变到饱和 高(像素饱和) ★★★

3.3 光照不均对后续任务的影响

这个问题我每次上课都要强调。光照不均不是「看着不舒服」那么简单,它直接破坏算法的数学假设。

3.3.1 对阈值分割的影响

全局阈值分割假设整张图的背景亮度一致。光照不均一上来,这个假设就碎了。举个例子:

# 光照均匀时,Otsu阈值能完美分割
threshold = 128
binary = image > threshold  # 效果很好

# 光照不均时,同一阈值在暗区把目标当背景
# 在亮区把背景当目标
# 结果:一团糟

我记得有个项目做PCB焊点检测,光照不均导致Otsu阈值在图像不同区域差了50个灰度级。最后不得不改用局部自适应阈值,但计算量翻了三倍。

3.3.2 对特征提取的影响

光照不均会改变特征的数值。比如:

  • 梯度方向:阴影边缘会产生虚假的强梯度
  • 纹理特征:LBP、GLCM等纹理描述子对光照敏感
  • 颜色特征:RGB值随光照强度线性变化

你想想看,一个SIFT特征点在光照均匀时能匹配上,换了光照方向就匹配不上了。这不是特征点的问题,是光照在捣乱。

3.3.3 对深度学习模型的影响

深度学习也不是万能的。我做过对比实验:

模型 均匀光照准确率 不均匀光照准确率 下降幅度
ResNet-50 97.2% 81.5% -15.7%
YOLOv5 95.8% 76.3% -19.5%
UNet(分割) 93.4% 72.1% -21.3%

数据不会骗人。光照不均能让最先进的模型准确率直接掉20个点。而且模型越大,对光照的「记忆」越强,泛化能力反而越差。

我的建议:别指望靠数据增强解决所有光照问题。加一些随机亮度、对比度变化确实有用,但真实场景的光照不均远比数据增强模拟的复杂。最好的策略是:先做物理层面的光学优化,再做算法层面的补偿,最后才是模型层面的鲁棒性训练。

3.4 光照不均知识体系

下面这张图是我自己整理的,把光照不均的核心脉络画清楚了。你看一遍就能记住。

光照不均问题知识体系 光照不均问题 光照模型 常见光照不均类型 对后续任务的影响 朗伯反射模型 镜面反射模型 混合模型 渐变光照 阴影 高光 阈值分割 特征提取 深度学习 核心要点 1. 光照模型是补偿的理论基础,选对模型事半功倍 2. 渐变、阴影、高光三种类型需要不同的补偿策略 3. 光照不均直接影响阈值、特征和深度学习模型的性能 4. 物理光学优化 > 算法补偿 > 模型鲁棒性训练

这张图把光照不均的三个维度串起来了。你从根节点往下看:左边是理论(光照模型),中间是现象(三种类型),右边是后果(对任务的影响)。搞清楚了这三者的关系,后面讲补偿算法时你就能理解——为什么不同的光照类型要用不同的补偿方法。