4、识别阶段:缺陷类型分类(外观、尺寸、功能性)、特征提取与模型选择(CNN、目标检测、分割)
识别阶段是AI质检流程中的核心认知环节,其任务是将采集到的图像或信号数据转化为可操作的缺陷语义信息。这一阶段直接决定了后续剔除动作的准确性与及时性。在实际工业场景中,缺陷并非单一形态,而是呈现出外观、尺寸、功能性三大类别的复杂交织。因此,识别阶段的首要工作并非直接套用深度学习模型,而是建立一套科学的缺陷分类体系,并据此选择匹配的特征提取与模型架构。本章将系统阐述缺陷类型的划分逻辑、特征提取的工程方法以及模型选择的决策路径,帮助读者构建从数据到决策的完整认知链路。
4.1 缺陷类型分类:从物理表象到业务语义
缺陷分类并非简单的标签命名,而是连接物理世界与业务决策的桥梁。在AI质检项目中,分类体系的合理性直接决定了标注成本、模型复杂度以及后续剔除策略的有效性。工业现场常见的缺陷可归纳为三大类:外观缺陷(如划痕、脏污、压伤、色差)、尺寸缺陷(如公差超差、形位偏差、装配间隙异常)、功能性缺陷(如电气短路、密封失效、功能缺失)。这三类缺陷在成像方式、特征表达、检测难度和业务影响上存在显著差异。
| 缺陷类别 | 典型实例 | 成像特征 | 检测维度 | 业务风险等级 |
|---|---|---|---|---|
| 外观缺陷 | 划痕、脏污、涂层不均 | 局部灰度/纹理异常 | 表面质量、美学 | 中(影响客户感知) |
| 尺寸缺陷 | 孔径超差、平面度不足 | 边缘轮廓、几何量测 | 装配精度、公差 | 高(影响装配功能) |
| 功能性缺陷 | 短路、漏气、卡滞 | 多模态信号(电/声/力) | 性能指标、安全 | 极高(安全合规) |
在实际项目中,缺陷分类应遵循“业务导向、粒度适中”原则。例如,在锂电池外观检测中,“划痕”可细分为“极片划痕”和“隔膜划痕”,因为两者对电池安全的影响截然不同;但若将“划痕”按长度再细分为10个等级,则会显著增加标注难度和模型过拟合风险。建议在项目启动阶段,由工艺工程师、质检主管和算法工程师共同制定《缺陷分类定义书》,明确每类缺陷的物理定义、图像表现、判定标准和风险等级。
4.2 特征提取:从手工设计到深度自动学习
特征提取是识别阶段的“感知引擎”。传统机器视觉依赖工程师手工设计特征(如LBP纹理特征、HOG梯度直方图、几何量测参数),这些特征在光照稳定、背景单一的半结构化场景中表现良好,但面对复杂纹理、反光、遮挡等工业现场常见干扰时,鲁棒性明显不足。深度学习时代的特征提取则通过CNN(卷积神经网络)自动完成从像素到语义的层级映射:浅层卷积核提取边缘、角点,中层提取纹理、局部形状,深层提取部件级语义。
选择特征提取策略时,需考虑以下关键因素:
- 缺陷的尺度特性:微小缺陷(如针孔、麻点)需要高分辨率输入和浅层特征;大尺度缺陷(如变形、缺料)则依赖深层语义特征。
- 成像模态:可见光图像适合纹理/颜色特征;红外图像适合温度分布特征;X射线图像适合内部结构特征。
- 实时性约束:传统特征计算量小但精度有限;深度特征精度高但需GPU加速。产线节拍(如≤2秒/件)决定了特征提取的算力预算。
在工程实践中,混合特征策略往往效果最佳。例如,在PCB板缺陷检测中,先用传统图像处理快速定位焊点区域(ROI提取),再对ROI区域使用轻量级CNN提取深度特征,最后结合焊点面积、圆度等几何特征进行综合判定。这种“传统+深度”的融合方式既保证了速度,又提升了精度。
# 特征提取策略伪代码示例(工业质检场景)
def extract_features(image, defect_type):
if defect_type == '外观':
roi = preprocess_roi(image) # 传统方法定位ROI
deep_feat = cnn_backbone(roi) # 深度特征 (ResNet-18)
texture_feat = lbp_histogram(roi) # 传统纹理特征
return concat(deep_feat, texture_feat)
elif defect_type == '尺寸':
edges = canny_edge(image) # 边缘提取
dims = measure_dimensions(edges) # 几何量测
return dims # 直接使用数值特征
elif defect_type == '功能性':
signal_feat = extract_signal_features(sensor_data) # 时频域特征
return signal_feat
4.3 模型选择:CNN分类、目标检测与分割的决策逻辑
模型选择的核心依据是输出粒度的需求。若业务只需判断“有无缺陷”或“缺陷类别”,图像分类CNN(如ResNet、EfficientNet)即可满足;若需定位缺陷在图像中的具体位置(如“第3个焊盘左侧有划痕”),则需目标检测模型(如YOLO、Faster R-CNN);若需精确测量缺陷面积、轮廓或进行形态学分析(如“划痕长度>5mm且宽度>0.3mm”),则必须采用分割模型(如U-Net、Mask R-CNN)。
| 模型类型 | 输出形式 | 典型算法 | 适用场景 | 算力需求 |
|---|---|---|---|---|
| 图像分类CNN | 类别标签+置信度 | ResNet-50, EfficientNet-B3 | 整图有无缺陷、粗分类 | 低-中 |
| 目标检测 | 边界框+类别+置信度 | YOLOv8, Faster R-CNN | 多缺陷定位、计数 | 中-高 |
| 语义/实例分割 | 像素级掩码+类别 | U-Net++, Mask R-CNN | 精确面积/轮廓测量 | 高 |
在产线部署中,常采用级联模型架构来平衡精度与速度。第一级使用轻量级分类模型(如MobileNet)快速过滤无缺陷样本(通常占80%以上);第二级对疑似缺陷区域使用目标检测模型定位;第三级对关键缺陷使用分割模型进行精确测量。这种级联策略可将单件检测时间从500ms降至150ms,同时保持99.5%以上的召回率。
某汽车零部件供应商需对橡胶密封圈进行100%全检,检测项包括:外观(毛边、缺料、杂质)和尺寸(内径、外径、截面厚度)。产线节拍为3秒/件,原人工目检漏检率达8%。
方案设计:采用“传统视觉+深度学习”混合方案。首先使用高精度轮廓提取算法测量内径、外径等尺寸参数(精度±0.02mm);同时将图像裁剪为环形ROI,输入轻量级CNN(EfficientNet-Lite)进行外观缺陷分类。对于疑似毛边区域,再触发Mask R-CNN进行像素级分割,计算毛边面积和高度。
关键参数:输入分辨率1024×1024,ROI裁剪后512×512;分类模型推理时间45ms,分割模型推理时间120ms(仅对疑似区域触发)。
结果对比:漏检率从8%降至0.3%,误检率从12%降至1.5%,单件检测时间2.8秒,满足节拍要求。项目上线3个月后,客户投诉率下降67%。
复盘经验:①尺寸检测优先采用传统算法,稳定且可解释;②外观缺陷分类模型需持续收集难例样本进行增量训练;③级联触发机制有效控制了算力成本。
4.4 常见误区与总结复盘
在识别阶段的实施过程中,团队常陷入以下误区:
- 误区一:盲目追求高精度模型。在缺陷样本不足1000张时,直接使用Mask R-CNN往往导致过拟合,而采用传统特征+简单分类器(如SVM)反而更稳定。
- 误区二:忽视缺陷类别不平衡。某类缺陷占比仅0.5%时,模型会倾向于将全部样本预测为“无缺陷”。需采用Focal Loss、数据增强或重采样策略。
- 误区三:特征提取与模型选择脱节。若已确定使用分割模型,却仍手工设计边缘特征,则浪费了深度模型的表征能力。
- 误区四:未考虑光照/角度变化。工业现场的光照波动会导致特征分布漂移,需在训练阶段加入光照增强,或在部署时增加光度校正模块。
总结而言,识别阶段的成功关键在于“分类先行、特征匹配、模型适度”。分类体系决定了问题的边界,特征提取决定了信息的利用率,模型选择决定了输出粒度的可行性。建议团队在项目启动时,用一周时间完成缺陷样本采集与分类定义,再用两周时间进行特征与模型的快速原型验证(使用小规模数据集),最后才进入正式训练与调优阶段。这种“先窄后宽”的策略能有效降低项目风险,避免在错误的方向上投入大量算力。