4、图像预处理容错:噪声模型与滤波、光照不均校正、图像增强的鲁棒性、异常图像检测与剔除

图像预处理,说白了就是视觉系统的「第一道防线」。

我做了这么多年视觉系统,见过太多因为预处理没做好,导致后面算法全崩的案例。你想想看,如果输入图像本身就有问题,再牛的深度学习模型也白搭。

这一章,咱们就聊聊预处理阶段的容错设计。核心就四个字:扛得住脏,稳得住场

4.1 噪声模型与滤波:先搞清楚敌人长什么样

很多人一上来就滤波,其实不对。你得先知道噪声是什么类型,才能对症下药。

4.1.1 常见噪声模型

我在项目中遇到过三种最常见的噪声:

  • 高斯噪声:传感器热噪声、光照波动。说白了就是每个像素上叠加一个随机值,服从正态分布。
  • 椒盐噪声:传输错误、传感器坏点。图像上随机出现白点或黑点,像撒了盐和胡椒。
  • 泊松噪声:低光照条件下,光子计数的不确定性。这个在工业暗场检测中特别常见。

核心观点:滤波器的选择,取决于噪声模型。用错了滤波器,比不滤波还糟糕。

4.1.2 滤波器的容错选择

我个人的习惯是:

  • 高斯滤波:对付高斯噪声,效果好。但会模糊边缘,不适合需要细节的场景。
  • 中值滤波:对付椒盐噪声,效果极佳。边缘保留能力比高斯强。我曾在一条产线上,用中值滤波把坏点率从5%降到了0.3%。
  • 双边滤波:既能去噪又能保边。但计算量大,实时系统慎用。

避坑指南:我曾经在一个项目中,直接用高斯滤波处理所有图像。结果有一批图像有大量椒盐噪声,高斯滤波根本压不住,反而把噪声扩散了。后来改成自适应中值滤波,问题才解决。

4.2 光照不均校正:别让光线毁了你的算法

光照不均是工业视觉的头号杀手。你想想看,同一个工件,早上拍和下午拍,亮度差了一倍,阈值分割的结果能一样吗?

4.2.1 为什么光照不均是容错难点?

因为光照不均不是噪声,它是系统性的偏差。噪声是随机的,滤波能压住。光照不均是全局的,滤波没用。

我记得有一次,客户反馈说检测算法时好时坏。我过去一看,发现是车间顶灯坏了,导致光照方向变了。嗯,这就是典型的「环境变化导致算法失效」。

4.2.2 常用校正方法

方法 原理 适用场景 容错性
直方图均衡化 拉伸灰度分布 整体偏暗或偏亮 中等
自适应直方图均衡化(CLAHE) 分块均衡,限制对比度 局部光照不均
同态滤波 分离光照和反射分量 光照缓慢变化 较高
背景建模法 估计背景光照分布 固定场景 高(需标定)

注意:直方图均衡化虽然简单,但会放大噪声。我建议在低信噪比场景下,优先用CLAHE。

4.3 图像增强的鲁棒性:别把噪声也「增强」了

图像增强的目的是让特征更明显。但有个问题:增强的同时,噪声也会被放大。

我见过有人用拉普拉斯算子做锐化,结果把传感器坏点锐化成了「假缺陷」,导致误检率飙升。

4.3.1 鲁棒增强的原则

  • 先降噪,后增强:这是铁律。我习惯先做一次轻度中值滤波,再做增强。
  • 避免全局增强:全局增强会放大局部噪声。用自适应方法更好。
  • 限制增益:在增强算法中,设置最大增益阈值。比如CLAHE的clip limit,就是防止过度增强。

我的经验:在工业检测中,我通常用「先CLAHE,再轻度高斯滤波」的组合。CLAHE增强对比度,高斯滤波压住增强后放大的噪声。这个组合在90%的场景下都够用。

4.4 异常图像检测与剔除:把坏图挡在门外

这是预处理容错的最后一道关。如果图像本身是坏的,就别让后面的算法白费力气。

4.4.1 哪些图像算「异常」?

  • 全黑/全白图像:传感器故障、镜头盖没打开。
  • 过曝/欠曝图像:光照突变或曝光参数错误。
  • 模糊图像:运动模糊、对焦不准。
  • 条纹/坏线图像:传感器行或列损坏。

4.4.2 检测方法

我常用的方法很简单:

  1. 灰度统计法:计算图像均值、方差。如果均值接近0或255,直接剔除。
  2. 梯度检测法:计算图像梯度幅值。如果梯度均值过低,说明图像模糊。
  3. 频域检测法:做FFT,看高频分量是否异常。条纹噪声会在频域出现明显峰值。

避坑指南:我曾经在一个项目中,只用了灰度均值做异常检测。结果有一批图像,均值正常,但全是条纹噪声。后来加了频域检测,才把这类异常抓出来。

4.4.3 剔除策略

检测到异常图像后,不要直接丢弃。我建议:

  • 记录日志:保存异常图像和检测指标,方便后续分析。
  • 触发重采:如果是实时系统,可以触发相机重新采集。
  • 报警机制:如果连续多帧异常,说明硬件可能出问题了,需要报警。

总结一下:图像预处理容错,不是把图像变漂亮,而是让系统在「脏乱差」的输入下,依然能稳定工作。噪声模型要懂、滤波要选对、光照要校正、异常要剔除。每一步都做到位,你的视觉系统才能扛得住工业现场的毒打。

嗯,这一章就到这里。下一章咱们聊聊特征提取阶段的容错设计,那又是另一番天地了。