从“稀疏正样本”到“异常检测”的路线转换
一、“正样本稀疏”场景的定量定义在工业视觉质检、医疗影像分析、金融欺诈检测等领域我们常常遇到“正样本稀疏”的困境。这里的“正样本”通常指我们关心的目标类别例如产品瑕疵、病灶区域或欺诈交易。一个场景可被定量定义为“正样本稀疏”当满足以下任一条件瑕疵率 1%在生产线上每100件产品中不到1件存在瑕疵。这意味着收集足够多、有代表性的瑕疵样本成本极高。例如在高端电子元件生产中良品率通常高达99.9%以上瑕疵样本可能数月才能积累几十个。可用瑕疵样本 200张即使瑕疵率不低但能获取到的、经过高质量标注的瑕疵图像总数非常有限难以支撑一个鲁棒的监督模型训练。深度学习方法通常需要数千甚至数万标注样本才能达到工业级精度。瑕疵类型的多样性和不可预测性极高瑕疵形态千变万化无法用有限的已知类别穷举。今天出现的划痕明天可能是污渍后天可能是结构缺陷。在纺织行业仅“污渍”一类就可能包括油渍、水渍、颜料、锈迹等数十种子类型。数据不平衡的数学挑战从机器学习角度看正样本稀疏本质上是极端类别不平衡问题。当正负样本比例达到1:100甚至1:1000时传统分类器会严重偏向多数类正常样本。即使模型将所有样本预测为正常也能获得99%以上的准确率但这种“准确率”对业务毫无价值。更科学的评估指标如精确率-召回率曲线PR曲线和F1分数在这种场景下也会失效因为正样本太少导致统计显著性不足。一个常见的现象是模型在验证集上表现良好但上线后对新类型瑕疵完全失效。实际业务影响标注成本高昂聘请专业质检员标注一张瑕疵图像的成本可能是正常图像的10-50倍因为需要精确标注瑕疵边界、类型和严重程度。收集周期漫长在高端制造中可能需要运行数周甚至数月才能收集到足够的瑕疵样本而产品迭代周期可能只有几个月。模型更新滞后当新类型瑕疵出现时重新收集数据、标注、训练、部署的周期可能长达数周无法满足实时质检需求。在这种数据分布下直接训练一个二分类良品/瑕疵甚至多分类瑕疵类型的监督模型往往效果不佳模型极易过拟合到有限的瑕疵样本上对未见过的瑕疵类型毫无识别能力。二、三条技术路线及其适用场景面对稀疏正样本通常有三条技术路线可供选择各有其适用场景与局限性。路线原理适用场景局限性数据增广通过对有限的瑕疵样本进行旋转、缩放、色彩变换、模拟缺陷等操作人为制造更多“正样本”。瑕疵类型少、形态相对固定、变异范围可预测的场景。增广无法覆盖所有真实世界变异对不可预测的新瑕疵类型无效。异常检测只学习“正常”良品样本长什么样任何偏离正常分布的模式即被判定为异常瑕疵。正常样本充足、瑕疵类型多样且不可预测、标注成本极高的场景。无法对检测出的异常进行精细分类如区分划痕还是污渍误报率通常较高阈值调优依赖经验。Few-shot 学习利用元学习、度量学习等技术使模型能够用极少量样本如每类1-5张快速学习并识别新类别。需要快速响应新出现的、已知类别的瑕疵变种且有一定技术积累的场景。技术成熟度相对有限在复杂工业场景中的落地案例较少对模型设计和训练技巧要求高。三、异常检测方法在服装质检中的实践以服装质检为例当瑕疵样本极其稀少时异常检测Anomaly Detection成为极具吸引力的方案。具体方法采用PatchCore或PaDiM等基于预训练特征的异常检测方法。PatchCore利用ImageNet预训练模型提取正常样本的多尺度特征构建一个稀疏的“记忆库”来表征正常特征分布。PaDiM为每个像素位置估计一个多元高斯分布同样基于正常样本学习“正常”的特征统计特性。训练阶段只需要大量良品样本建立“正常特征分布”的记忆库或统计模型。无需任何瑕疵标注。推理阶段对于待测图像同样提取特征并计算其与“正常记忆库”的特征距离如马氏距离。距离超过预设阈值的区域即被判定为异常疑似瑕疵。优势无需标注瑕疵极大降低了数据标注成本和周期。快速部署模型训练仅依赖于易得的正常样本。开集检测能力对从未见过的新类型瑕疵也有一定的检出可能因为其核心是检测“不正常”。劣势无法区分瑕疵类型只能给出“有/无”异常及位置无法判断是扣子缺失、线头还是污渍。对背景变化敏感如果产线环境、光照、产品摆放发生较大变化可能被误判为异常。阈值难以调优判定异常的阈值需要根据业务可接受的误报率/漏报率进行精细调整缺乏理论最优解。四、实际项目中的“混合策略”为了兼顾检测效率与结果可解释性在实际工业项目中常采用“异常检测 精细分割”的混合策略第一级异常检测快速初筛使用PatchCore等异常检测模型对整张图像进行快速扫描。输出“疑似瑕疵”的热力图或候选区域Region of Interest, ROI。这一步的目标是高召回率宁可错杀不可放过。第二级分割模型精细确认将第一级筛选出的少量“疑似区域”裁剪出来送入一个训练好的瑕疵分割模型如U-Net。该分割模型在少量已标注的瑕疵数据上训练负责对疑似区域进行精细分割并输出具体的瑕疵类型分类和严重程度像素级分割图。混合策略的价值大幅降低计算负载分割模型只需处理全图中极少量的候选区域而非整张高分辨率图像极大提升了系统整体效率。平衡成本与效果用低成本的无监督方法异常检测解决“找出来”的问题用高成本的监督方法分割解决“分清楚”的问题。系统更健壮即使分割模型未见过某种全新瑕疵异常检测层仍有可能将其作为“异常”捕获为后续模型迭代提供数据。五、总结从“监督学习”切换到“异常检测”范式本质上是面对数据不平衡现实的一种务实选择。它放弃了“完美分类”的幻想转而追求在有限资源下实现“可靠检出”的首要目标。开放问题你在项目中是否尝试过异常检测方法它和传统的监督学习方法相比最大的体验差异是什么是标注压力从“海量瑕疵样本”转变为“海量正常样本”是模型评估从“准确率”转向“误报/漏报权衡”还是整个问题定义从“识别已知”变成了“发现未知”期待你在评论区分享你的见解与实践。