1. 工业缺陷检测的监督学习困境
在工厂车间里,质检员小王每天要检查上千个零件表面是否存在划痕、凹陷或污渍。这种重复性工作不仅容易疲劳漏检,不同质检员的标准也难以统一。这正是工业缺陷检测算法试图解决的问题——但传统全监督学习在这里遇到了三个致命瓶颈:
第一是标注成本。以手机外壳检测为例,训练一个合格的全监督模型需要至少5000张标注样本。假设每张图片标注耗时3分钟(需标出缺陷位置和类型),仅标注成本就超过250小时人工。某汽车零部件厂商曾向我透露,他们为某个型号的变速箱齿轮检测项目,光标注费用就花了23万元。
第二是缺陷样本稀缺。正常生产线上良品率通常超过95%,意味着10000张样本中可能只有不到500张缺陷图片。更棘手的是,缺陷类型可能分散成几十种(如划痕、气泡、缺料等),每种缺陷仅有几个样本。这种极端不平衡的数据分布会导致模型对少数类失效。
第三是产线快速迭代。当产品型号或工艺变更时,原有缺陷特征可能完全失效。我曾参与过一个液晶屏检测项目,仅仅因为供应商更换了清洁剂配方,就导致原有的污渍检测模型准确率从98%暴跌至62%。全监督模型重新标注和训练的成本让很多工厂望而却步。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 弱监督学习的破局之道
2.1 什么是弱监督学习
弱监督学习(Weakly Supervised Learning)就像教孩子认动物:不需要精确指出图片中猫的耳朵、胡须位置(像素级标注),只需要告诉孩子"这是猫"(图像级标签),甚至只说"这些图片里有猫"(包级别标签)。在工业场景中,这意味着:
- 图像级标签:仅需标记整张图片是否有缺陷(是/否)
- 涂鸦标注:用粗略线条圈出缺陷区域而非精确轮廓
- 点标注:在缺陷中心点打标记而非标注整个区域
- 多实例学习:已知一批图片中有缺陷图片但不确定具体是哪张
某轴承生产线的实测数据显示,采用涂鸦标注后,单个样本标注时间从全监督的186秒降至28秒,效率提升6.6倍。
2.2 弱监督的技术实现路径
2.2.1 基于类激活图的方法
以CAM(Class Activation Mapping)为例,其核心思想是通过全局平均池化层将卷积特征图与分类权重结合。具体实现时:
python复制def generate_cam(model, img):
# 获取最后一个卷积层的输出
