3、任务定义与区别:分类、检测、分割、异常检测四类任务的形式化定义与输出差异

在缺陷检测的工程实践中,模型选型的第一步往往不是选择某个具体的神经网络架构,而是明确我们究竟要解决哪一类视觉任务。分类、检测、分割与异常检测这四类任务,虽然共享卷积神经网络等底层技术,但其形式化定义、输出空间、标注成本、推理效率与适用场景存在本质差异。理解这些差异,是避免“拿着锤子找钉子”式选型错误的前提。本章将从数学定义、输出格式、工程约束与实战案例四个维度,系统拆解这四类任务的核心区别。

四类缺陷检测任务:定义与输出对比 输入图像 I ∈ R^{H×W×3} 图像分类 输出:类别标签 y ∈ {0,1,...,K-1} 目标检测 输出:BBox集合 {(x,y,w,h,cls)} 语义分割 输出:像素级掩码 M ∈ {0,1}^{H×W} 异常检测 输出:异常分数 s ∈ R + 掩码(可选) 标注成本 图像级标签(低) 标注成本 边界框(中) 标注成本 像素级掩码(高) 标注成本 仅正常样本(极低) 应用场景 整板OK/NG判断 应用场景 缺陷定位与计数 应用场景 缺陷形状/面积测量 应用场景 未知缺陷/小样本场景 信息粒度:分类 < 检测 < 分割 < 异常检测(异常检测输出分数+掩码,但训练仅需正常样本) 选型核心:根据缺陷可枚举性、标注预算、定位精度需求、推理速度约束综合决策

3.1 核心原理:四类任务的形式化定义

在缺陷检测语境下,四类任务的形式化定义决定了模型的能力边界。图像分类(Image Classification)的目标是学习一个映射函数 \( f_{cls}: \mathbb{R}^{H \times W \times 3} \rightarrow \{0, 1, ..., K-1\} \),其中 \( K \) 为预定义的缺陷类别数(包括“正常”类)。该任务将整张输入图像压缩为一个离散标签,输出空间最小,信息粒度最粗。例如,在PCB裸板检测中,分类模型只能回答“这块板子是否有缺陷”或“属于哪一类缺陷”,但无法告知缺陷在图像中的具体位置。

目标检测(Object Detection)在分类基础上增加了空间定位维度,其输出为 \( \mathcal{B} = \{ (x_i, y_i, w_i, h_i, c_i) \}_{i=1}^{N} \),其中 \( (x_i, y_i) \) 为边界框左上角坐标,\( w_i, h_i \) 为宽高,\( c_i \) 为类别标签,\( N \) 为检测到的缺陷实例数量。检测模型同时解决“是什么”和“在哪里”的问题,但边界框是矩形近似,无法精确描述缺陷的不规则轮廓。在工业场景中,检测任务常用于焊点桥连、元件缺失、划痕定位等需要知道缺陷数量和大致位置的场景。

语义分割(Semantic Segmentation)将定位粒度提升至像素级,输出为掩码图 \( M \in \{0, 1, ..., K-1\}^{H \times W} \),每个像素被赋予一个类别标签。对于缺陷检测,这意味着可以精确测量缺陷的面积、周长、形状因子等几何参数。分割模型输出的是密集预测,计算量最大,但对缺陷边界的刻画最精细。在半导体晶圆缺陷分类中,分割结果可直接用于计算缺陷的等效直径和密度分布,为工艺调整提供量化依据。

异常检测(Anomaly Detection)采用不同的范式:它仅使用正常样本训练,学习正常数据的分布 \( P_{normal}(x) \),推理时计算输入图像与正常分布的偏离程度,输出异常分数 \( s \in \mathbb{R} \) 和可选的像素级异常掩码。其核心假设是“缺陷是稀有事件,且与正常模式有显著差异”。异常检测的优势在于无需标注缺陷样本,适合缺陷种类繁多、不可穷举或新缺陷频繁出现的场景,例如锂电池表面异物检测、纺织品瑕疵检测等。

3.2 判断方法:如何根据业务需求选择任务类型

在实际项目中,任务选型应遵循“缺陷可枚举性→定位精度需求→标注预算→推理速度”的四步判断流程。第一步,评估缺陷是否可枚举。如果产线上的缺陷类型固定且已知(如划痕、脏污、缺角三类),优先考虑分类或检测;如果缺陷类型未知或持续演化,必须选择异常检测。第二步,明确定位精度需求。若只需判断“有无缺陷”,分类即可;若需知道缺陷位置以便机械臂剔除,检测足够;若需测量缺陷面积或形状,必须使用分割。

第三步,核算标注预算。分类任务每张图像仅需一个标签,标注成本约0.1-0.5元/张;检测任务需画边界框,成本约1-3元/张;分割任务需逐像素标注,成本高达5-20元/张。异常检测只需正常样本,标注成本几乎为零,但需要额外的正常样本采集和清洗工作。第四步,评估推理速度约束。在高速产线(如每分钟检测120片PCB),单张图像推理时间需控制在50ms以内,此时分割模型往往难以满足,而分类或检测模型可通过轻量化设计达到实时性要求。

经验提醒:当定位精度要求不高但缺陷类型较多时,可考虑“检测+分类”的级联方案:先用检测模型快速定位候选区域,再用分类模型对每个候选区域进行细粒度分类。这种方案在标注成本和推理速度之间取得了较好的平衡,是工业界的常见做法。

3.3 案例拆解:PCB焊点缺陷检测的任务选型实战

某电子制造企业需要为SMT产线设计焊点缺陷检测系统,检测对象为PCB板上的回流焊焊点。初始目标是识别虚焊、桥连、少锡、锡珠四类缺陷,并要求定位缺陷位置以便后续返修。产线节拍为每块板15秒,其中检测环节允许的推理时间为2秒。经过初步调研,发现以下约束:

  • 缺陷可枚举性:四类缺陷形态差异明显,且可通过AOI(自动光学检测)图像清晰辨识,属于可枚举场景。
  • 定位需求:需要知道缺陷在PCB上的坐标,以便返修工作站自动定位,但不需要精确到像素级轮廓。
  • 标注预算:企业有3名质检工程师,可投入2周时间进行标注,预计可标注5000张图像。
  • 推理速度:2秒的推理时间对检测模型非常充裕,甚至可以运行两阶段检测器。

基于上述约束,团队排除了分割任务(标注成本过高且无必要)和异常检测(缺陷可枚举,无需使用无监督范式),最终选择目标检测方案。具体实施中,采用YOLOv8-m模型,输入分辨率640×640,在NVIDIA Jetson Orin平台上推理时间约35ms,远低于2秒的预算。训练数据为4000张标注图像(含四类缺陷共12000个实例),验证集1000张。经过50轮训练,mAP@0.5达到0.92,虚焊的召回率最高(0.95),锡珠的召回率最低(0.88),原因是锡珠尺寸较小且与焊点背景对比度低。

在部署阶段,团队发现检测模型对“少锡”和“虚焊”两类缺陷的边界框重叠严重,导致分类混淆。通过分析错误样本,发现这两类缺陷在灰度直方图上高度相似,仅凭外观难以区分。解决方案是在检测模型后增加一个轻量级分类头(ResNet-18),对检测到的候选框进行二次分类,将混淆率从12%降至3%。最终系统综合准确率达到96.5%,误报率控制在0.5%以内,满足产线要求。

复盘经验:任务选型不是一锤定音。在本案例中,初始选型为检测任务,但实际部署中暴露了细粒度分类不足的问题,通过“检测+分类”级联方案弥补。这提示我们,选型时应预留一定的模型结构调整空间,避免将任务定义得过于僵化。同时,标注数据的质量直接影响检测效果,建议在标注前制定详细的标注规范,特别是对边界框的紧致性(tightness)和类别边界(如少锡与虚焊的区分标准)做出明确约定。

3.4 常见误区与总结复盘

在四类任务选型中,最常见的误区有三类。第一类是“越精细越好”的思维定式:部分工程师倾向于选择分割模型,认为像素级输出一定优于边界框。但分割模型不仅标注成本高,且对缺陷边缘的噪声敏感,在光照波动大的工业现场反而可能产生更多误检。第二类是“异常检测万能论”:异常检测虽然无需缺陷样本,但对正常样本的分布建模要求极高,当正常样本本身存在较大方差(如不同批次材料的颜色差异)时,误报率会急剧上升。第三类是“忽视输出后处理”:检测和分割模型的原始输出需要经过NMS(非极大值抑制)、连通域分析等后处理才能用于产线,后处理逻辑的设计往往决定了最终系统的稳定性。

从信息论的角度看,四类任务的输出信息量依次递增:分类输出 \( \log_2 K \) 比特,检测输出 \( N \times (4 \log_2 W + 4 \log_2 H + \log_2 K) \) 比特,分割输出 \( H \times W \times \log_2 K \) 比特,异常检测输出则介于分类与分割之间(分数+可选掩码)。信息量越大,模型容量需求越高,训练数据需求也越大。因此,选型的本质是在信息需求与资源约束之间寻找最优平衡点。

对比维度 图像分类 目标检测 语义分割 异常检测
输出形式 类别标签 边界框+类别 像素级掩码 异常分数+可选掩码
训练数据要求 图像级标签 边界框标注 像素级标注 仅正常样本
典型标注成本(元/张) 0.1-0.5 1-3 5-20 0(需采集正常样本)
推理速度(相对) 最快 快 慢 中等
缺陷定位精度 无 框级 像素级 像素级(可选)
适用场景 整板OK/NG判断 缺陷定位与计数 缺陷形状/面积测量 未知缺陷/小样本

总结而言,四类任务构成了从“粗粒度判断”到“细粒度分析”的完整光谱。在实际项目中,建议先进行缺陷可枚举性评估和定位精度需求分析,再结合标注预算与推理速度约束,选择最合适的任务类型。同时,应认识到任务选型并非一成不变,随着产线数据积累和业务需求深化,可以从分类升级到检测,或从检测升级到分割,这种渐进式演进策略有助于降低项目风险。

风险提示:在缺陷检测项目中,任务选型错误往往在项目后期才暴露,导致返工成本高昂。例如,选择分类模型后发现需要定位缺陷,不得不重新标注数据并训练检测模型。建议在项目启动阶段,使用小规模样本(200-500张)进行快速预实验,对比不同任务类型在验证集上的表现,以数据驱动的方式确认最终选型。