2. 常见缺陷类型:划痕、裂纹、脏污、凹坑、气泡、异物、变形、色差、毛刺、缺料

做工业视觉这几年,我接触过的缺陷种类少说也有几十种。但说实话,真正在产线上反复出现的,翻来覆去就是这十类。你想想看,不管是手机外壳、汽车零件还是食品包装,缺陷的物理本质其实就那么几种——要么是表面受损,要么是内部夹杂,要么是形状不对。

我个人习惯把缺陷分成三大类:表面缺陷、内部缺陷和形状缺陷。这样分类有个好处——你拿到一个项目,先判断缺陷属于哪一类,然后对应的检测思路基本就定了。下面我逐个拆解,每个类型我都会结合项目经验来讲。

核心观点:缺陷分类不是死记硬背,而是为了指导后续的检测算法选择和数据集构建策略。同一个物理缺陷,在不同材质、不同光照下表现完全不同,这才是真正的难点。

2.1 表面缺陷:划痕、裂纹、脏污、凹坑

表面缺陷是最常见的,也是工业视觉检测的基本盘。说白了,就是产品表面出现了不该有的东西,或者表面结构被破坏了。

2.1.1 划痕

划痕的本质是材料表面的连续性被破坏。我在项目中遇到过最头疼的案例——手机中框的细微划痕。那种划痕深度只有几微米,在正常光照下根本看不见,但一到特定角度就原形毕露。

划痕检测的关键点:

  • 方向性:划痕通常有明确的方向,可以利用方向滤波增强特征
  • 连续性:真正的划痕是连续的,而灰尘或纤维是离散的
  • 深度差异:浅划痕和深划痕的成像特征完全不同

我的经验:划痕检测最怕的是纹理干扰。比如拉丝金属表面的划痕,你根本分不清哪条是缺陷、哪条是工艺纹理。我后来用了一个办法——多角度打光,划痕在不同角度下亮度变化比纹理剧烈得多。

2.1.2 裂纹

裂纹和划痕最大的区别在于:裂纹是从内部向外扩展的,而划痕是从外部向内侵入的。裂纹往往意味着结构强度问题,在质检中属于致命缺陷。

我记得有一次做陶瓷基板的裂纹检测,一开始用常规的阈值分割,效果很差。为什么?因为裂纹太细了,像素宽度只有1-2个像素,而且背景纹理复杂。后来改用局部梯度分析,效果才上来。

裂纹检测的难点:

  • 宽度极细,容易在降噪过程中被抹掉
  • 形态不规则,没有固定的形状模板
  • 容易和材料本身的晶界、纹理混淆

2.1.3 脏污

脏污可能是最"烦人"的缺陷。为什么?因为它的形态、大小、位置、颜色完全随机。你今天训练集里全是油污,明天产线上来的是灰尘,后天又变成了指纹。

我曾经在一个食品包装项目上栽过跟头。一开始用颜色特征做脏污检测,效果很好。结果换了批次,包装纸的颜色稍微偏黄了一点,整个模型就崩了。从那以后,我养成了一个习惯——脏污检测一定要做光照归一化。

避坑指南:脏污数据集构建时,千万不要只收集"干净"的脏污样本。实际产线上的脏污往往伴随着其他干扰——比如油污可能沾着灰尘,指纹可能混着水渍。我建议在采集时故意制造一些"混合缺陷"样本。

2.1.4 凹坑

凹坑是表面局部凹陷,常见于冲压件、铸造件。它的成像特征很典型——边缘有阴影,中心区域亮度变化平缓。但问题在于,凹坑的深度、直径、边缘锐利度变化范围很大。

我个人习惯用光度立体法来做凹坑检测。通过多角度光源重建表面法向,凹坑区域的法向变化模式非常清晰。当然,这个方法对硬件要求高,产线上不一定能部署。

2.2 内部缺陷:气泡、异物

内部缺陷藏在材料里面,肉眼看不见,必须借助透射光或X光才能发现。这类缺陷的检测难度往往比表面缺陷高一个量级。

2.2.1 气泡

气泡在透明材料(玻璃、塑料)中非常常见。它的成像特征是:边缘有亮环(折射效应),中心区域亮度偏低。但气泡太小的时候,这个特征就不明显了。

我记得做手机玻璃盖板的气泡检测时,客户要求检出直径0.1mm以上的气泡。这个尺寸在500万像素相机下也就3-4个像素。常规的Blob分析根本不行。后来我用了相位对比成像,利用气泡的折射特性增强对比度,才勉强达到要求。

2.2.2 异物

异物就是材料里面混进了不该有的东西。比如塑料件里的金属屑、玻璃里的结石、食品里的杂质。异物的检测难点在于——你永远不知道它是什么、长什么样。

我曾经遇到过一个案例:锂电池隔膜里的金属异物。这种缺陷如果不检出,电池短路就是迟早的事。但金属异物在X光下的成像特征和气泡很像,都是暗斑。怎么区分?后来我发现,金属异物的边缘比气泡锐利得多,而且没有亮环。就靠这个差异,把误检率降了下来。

关键思路:内部缺陷检测,不要只看灰度值,要关注边缘特征和局部纹理变化。气泡、异物、裂纹在灰度上可能都是暗斑,但边缘的梯度分布完全不同。

2.3 形状缺陷:变形、色差、毛刺、缺料

形状缺陷关注的是产品整体的几何和外观属性。这类缺陷的检测往往需要参考标准件进行对比。

2.3.1 变形

变形是产品的整体形状偏离了设计规格。比如注塑件的翘曲、冲压件的扭曲。变形检测的核心是建立标准形状模型,然后计算实际产品与模型的偏差。

我做过一个汽车内饰件的变形检测项目。一开始用模板匹配,但变形是全局的,局部匹配根本不准。后来改用主动形状模型(ASM),把变形的模式建模成几个主成分,效果好了很多。

2.3.2 色差

色差是产品颜色偏离了标准色。听起来简单,但实际做起来坑很多。最大的坑是——光照变化。同一个产品,上午测和下午测,颜色值能差出好几个ΔE。

我的做法是:用标准色卡做实时校准。每次检测前,先拍一张标准色卡,计算出当前光照下的颜色校正矩阵,然后再测产品。这样能把光照波动的影响降到最低。

2.3.3 毛刺

毛刺是加工边缘残留的多余材料。常见于冲压、注塑、机加工等工艺。毛刺的检测难点在于——它和产品边缘连在一起,很难用简单的分割方法提取。

我建议用边缘轮廓分析。先提取产品的精确轮廓,然后计算轮廓的局部曲率。毛刺所在的位置,曲率会发生突变。这个方法比直接做形态学处理稳定得多。

2.3.4 缺料

缺料就是产品少了不该少的部分。比如注塑件的填充不足、铸件的缩孔。缺料检测的关键是知道"完整"的样子。

我习惯用差分检测:把待测图像和标准图像对齐,然后直接相减。但这里有个前提——对齐必须非常精确。哪怕偏差1个像素,差分结果里全是假阳性。所以我会先用亚像素配准做对齐,再做差分。

2.4 缺陷类型知识图谱

下面这张图总结了十类缺陷的分类体系和检测思路。我建议你把它当作一个快速参考——拿到新项目,先定位缺陷属于哪一类,然后从对应的检测思路里找方案。

缺陷类型知识图谱 常见缺陷类型 表面缺陷 内部缺陷 形状缺陷 划痕 裂纹 脏污 凹坑 气泡 异物 变形 色差 毛刺 缺料 检测思路对照 表面缺陷 → 光照增强 + 边缘分析 | 内部缺陷 → 透射成像 + 梯度特征 | 形状缺陷 → 模板配准 + 差分检测 注:同一缺陷在不同材质、不同工艺下的表现可能差异很大,请结合实际情况选择检测方案 材质对缺陷表现的影响 材质 易发缺陷 检测难点 金属 划痕、凹坑、毛刺 反光干扰、纹理混淆 塑料/玻璃 气泡、裂纹、变形 透明材质成像难

2.5 缺陷类型与检测算法匹配

知道了缺陷长什么样,下一步就是选算法。下面这个表格是我多年项目经验的总结,你可以直接拿来当参考。

缺陷类型 推荐算法 适用场景 注意事项
划痕 方向滤波 + 线检测 金属、玻璃、塑料表面 避免与纹理方向混淆
裂纹 局部梯度分析 陶瓷、玻璃、涂层 降噪时保留细线特征
脏污 颜色分析 + 纹理特征 食品包装、电子元件 必须做光照归一化
凹坑 光度立体 / 深度估计 冲压件、铸造件 对硬件要求较高
气泡 相位对比 + Blob分析 透明材料 小气泡容易漏检
异物 边缘锐度 + 密度特征 食品、电池、塑料 需要区分气泡和金属
变形 主动形状模型 / 配准 注塑件、冲压件 需要建立标准模型
色差 颜色校正 + 色差公式 印刷、喷涂、纺织 光照波动是最大干扰
毛刺 边缘曲率分析 机加工、冲压 与产品边缘粘连
缺料 差分检测 + 亚像素配准 注塑、铸造 配准精度要求极高

一个小建议:刚开始做缺陷检测项目时,不要一上来就上深度学习。先试试传统算法——方向滤波、阈值分割、Blob分析。这些方法速度快、可解释性强,而且很多场景下效果已经够用了。深度学习不是万能的,尤其是在样本量不足的时候。