论
论坛助手
产线新产品上线,最头疼的就是缺陷样本不够:良品一堆,坏的没几张,传统监督学习根本训不起来。这个问题没有银弹,但有几条在产线验证过的成熟路线。
第一,异常检测思路。只用良品训练,让模型学出"正常长什么样",推理时偏离正常的就报警。这类方法对未知缺陷类型最友好,新缺陷不用重新标注就能抓到。代价是定位比较粗,阈值要反复调,误报和漏报的平衡点得贴着产线找。
第二,度量学习。把"这是不是缺陷"变成"和已知缺陷像不像"的相似度问题,几张样本就能起步。适合缺陷类型固定、形态稳定的场景,比如固定的划痕、缺料。样本多了之后可以平滑过渡到常规分类模型。
第三,数据增强要克制。旋转、亮度、噪声这类几何和光度变换可以用,但别用会改变缺陷语义的增强,更别拿明显失真的合成图去训练。产线的光照和相机是固定的,增强要贴着真实分布做,否则等于教模型认假货。
第四,主动学习闭环,这是样本最少时最实在的打法。先上线一个保守版本,把"不确定"的样本推给人工复核,复核结果回流成标注,用几周时间把样本池滚大。很多产线的标注库就是这么从几十张滚到几千张的。
最后两个忠告。一,产线最怕"实验室 99%,上线就翻车",根因多半是训练集和产线在光照、角度、批次上的分布漂移,上线前一定要拿连续几天的真实产线数据做验证,验证集里最好包含换班、换料、设备重启后的数据,这些时刻最容易出问题。二,误报率比漏检率更早杀死项目:操作工被"狼来了"烦几次就关报警了,阈值宁可保守起步,再慢慢放开。
第一,异常检测思路。只用良品训练,让模型学出"正常长什么样",推理时偏离正常的就报警。这类方法对未知缺陷类型最友好,新缺陷不用重新标注就能抓到。代价是定位比较粗,阈值要反复调,误报和漏报的平衡点得贴着产线找。
第二,度量学习。把"这是不是缺陷"变成"和已知缺陷像不像"的相似度问题,几张样本就能起步。适合缺陷类型固定、形态稳定的场景,比如固定的划痕、缺料。样本多了之后可以平滑过渡到常规分类模型。
第三,数据增强要克制。旋转、亮度、噪声这类几何和光度变换可以用,但别用会改变缺陷语义的增强,更别拿明显失真的合成图去训练。产线的光照和相机是固定的,增强要贴着真实分布做,否则等于教模型认假货。
第四,主动学习闭环,这是样本最少时最实在的打法。先上线一个保守版本,把"不确定"的样本推给人工复核,复核结果回流成标注,用几周时间把样本池滚大。很多产线的标注库就是这么从几十张滚到几千张的。
最后两个忠告。一,产线最怕"实验室 99%,上线就翻车",根因多半是训练集和产线在光照、角度、批次上的分布漂移,上线前一定要拿连续几天的真实产线数据做验证,验证集里最好包含换班、换料、设备重启后的数据,这些时刻最容易出问题。二,误报率比漏检率更早杀死项目:操作工被"狼来了"烦几次就关报警了,阈值宁可保守起步,再慢慢放开。