资讯动态

从传统机器视觉到AI智能图检:工业表面缺陷检测落地复盘

发布时间:2026/10/17 7:31:16 来源:尧图企业网站定制
做视觉质检项目这几年最直接的一个感受是算法榜单上的指标漂亮跟产线上能稳定运行是两码事。这次把JBoltAI智能图检接到鲁威制造的检测工位上完整走了一遍从需求梳理、方案设计、数据采集、模型迭代到现场调试的过程收获不少也踩了几个只有工厂现场才会遇到的坑。整理成这篇复盘给正在评估或者已经准备上AI图检的同行一个参考。1. 为什么鲁威制造的质检线上传统视觉方案一直没有跑通先交代一下背景。鲁威制造做的产品表面质量要求很高之前靠人工目检。人工看的问题是稳定性和一致性很难保证同样一个缺陷不同的人判断不一样同一个人早班和晚班的状态也不一样。更现实的问题是招人困难年轻人不太愿意长期做这种需要高度集中注意力的重复劳动。鲁威制造之前上过传统的机器视觉方案。传统方案的思路是先定位再通过灰度阈值、边缘检测、模板匹配这些方法提取特征最后用规则去判定缺陷。这类方案也不是不能用问题在于它对光照、角度、产品状态这些条件太敏感只要有批次差异就很容易误判。车间环境不是实验室光源老化、工件摆放微偏、粉尘干扰这些情况非常常见传统视觉隔三岔五就要重新调节参数维护成本很高。真正让传统视觉崩溃的场景是产品表面那些没有固定形态的缺陷。划痕有深有浅、有长有短有些纹理本身就和缺陷长得非常像。你要靠灰度阈值去区分阈值设松一点纹理被当缺陷过杀严重阈值收紧一点浅划痕又漏过去了。传统视觉在这个问题上没有解因为它本质上是在用固定的规则去套千变万化的图像。这就是AI图检能发挥作用的地方。深度学习模型不是靠人工设计规则去识别缺陷而是通过大量标注样本自动学习缺陷的形态特征。它更接近人工目检的思维方式而且比人工更稳定不会疲劳不受情绪影响。JBoltAI智能图检上这个项目之前我和鲁威制造的产线负责人先聊了一天核心就是把检测项、节拍时间、现有不良率这些基础数据摸清楚。判断一个工厂适不适合上AI图检先看产品是否多次出现“形态不固定”的缺陷再看产线是否具备稳定的图像采集条件。这两条不满足算法再强也落不了地。2. JBoltAI图检的落地架构相机、光源、工控机与判定逻辑的配合方式整个图检系统不是一套单独运行的算法而是硬件选型、软件逻辑和产线流程配合的结果我分开讲。2.1 硬件层成像质量决定了算法的上限JBoltAI这套图检首先解决的是采集端的问题。鲁威制造的检测位是流水线上的固定工位产品经过一个传送带到达检测区域后停留约4秒。实际实施时我们用了两个工业相机一个负责俯视打光下的面阵成像一个负责侧视角度的补拍。这样做的原因很简单单一视角可能漏掉一些只会在特定角度下才能看到的表面缺陷。光源选择上是背光加同轴光的组合。背光用来强化轮廓特征同轴光用来均匀照亮表面减少金属材质带来的反光干扰。光源亮度不是越大越好我们现场做了标定让灰度分布尽量集中在中间区域避免高光和过暗同时存在。成像不稳定的话后面数据增强做得再好也无济于事。工控机放在检测工位旁边配了一块推理加速卡。这里有一个容易被低估的问题GBoltAI推理时确定用GPU算但实际瓶颈往往在图像传输和解码而不光是推理本身。相机传输用的GigE协议带宽需要根据分辨率和需要的帧率算清楚。我们最终选了2K分辨率相机单张图像约5MB按4秒处理周期数据量不算大但图像解码仍然要用CPU多线程来处理避免等待时间拖慢整套流程。2.2 软件层从图像预处理到缺陷判定的完整链路JBoltAI的软件链路分五个环节我按处理顺序列一下图像采集相机触发模式改为硬件触发由传感器信号控制采集保证每次拍摄的位置和角度一致。预处理灰度化、去噪、几何校正把两张相机图像拼成一张统一视角的检测图。这一步要确保后续网络输入数据的一致性。目标检测用一个检测网络在前面做定位把工件区域从背景中切出来排除传送带边缘、夹具等干扰。缺陷分类与分割在工件区域内对缺陷做像素级分割判断缺陷类型、面积和位置。判定输出根据预设的缺陷阈值和业务规则输出OK或NGNG结果通过IO信号传给PLC触发报警或剔废装置。这套链路里前两步是很容易被忽视但很关键的部分。如果预处理不稳定模型输入分布和训练时不一致推理效果就会明显下滑。JBoltAI允许把预处理参数按产品型号保存每次换型以后自动加载对应配置这为多品种混线的场景保留了余地。2.3 与产线集成图检不是孤立设备而是一个数据节点JBoltAI不能只做一个独立检测箱它需要和产线的MES、PLC联动。鲁威制造原先的产线反馈机制是纸质的QC在旁边记录不良品原因。我们上线后做了简单的接口每张检测过的图片、判定结果和缺陷类型都会写入本地数据库同时通过工业协议把汇总结果推送一部分到产线看板。这个动作的意义在于质量数据真正实时化了。原来发生批量不良可能要隔一个班次才发现现在只要连续出现多个NG看板立刻就能反映出来。管理层不用等到月底盘点报告才知道上个月质量波动出现在哪个时间段这种“肉眼可见的实时反馈”对鲁威制造的内部推动也很有帮助大家能直观看到系统在工作。3. 缺陷样本和标注策略真正决定模型上限的不是网络结构有不少人关心模型选型但以我的经验样本质量的影响远大于网络结构的选择。市场上主流的目标检测和分割模型已经足够成熟对工业场景常见的缺陷检测问题差别并不大。真正花时间、决定上限的是数据和标注。3.1 鲁威制造的缺陷分类怎么定出来的现场跟着质检老师傅走了半天我让老师傅把实际产线上出现过的缺陷类型做一个分类最终归纳成6类划痕、凹坑、毛刺、脏污、异色、变形。有人觉得分类越快越好其实不是缺陷类型划分必须满足两个条件第一类型之间有明确的视觉边界。划痕和凹坑如果混着标模型学出来的特征也是混乱的。第二能对应到具体的生产归因。比如毛刺可能对应刀具磨损凹坑可能对应来料夹渣这样后续质量追溯才能用得上。一些样本同时包含多种缺陷我们要求标注时按主缺陷标并在备注里记录次缺陷。一开始我们用“只标主缺陷、不额外标次缺陷”的简化策略后来发现模型更容易学会漏掉次缺陷因为训练数据里没有次缺陷的监督信息。改成“所有缺陷全部标出”之后漏检率出现了明显下降。3.2 数据平衡与增强小样本问题的应对方式AI训练通常需要大样本但在工业项目里有价值的缺陷样本往往很少。鲁威制造前两周只积累了不到1000张带缺陷图片。直接拿这个量去训练大概率出现过拟合。数据增强是解决办法之一。JBoltAI自带的增强策略包括随机旋转、翻转、亮度变化、裁剪、透视变换。但增强不是越多越好关键的约束是不能改变缺陷的本质形态。比如划痕如果做了强烈的透视变换形态就变形了模型可能会学会错误特征。我们在保证产品朝向一致的前提下重点增强光照方向和亮度变化模拟产线不同时段的打光差异这对稳定性提升很大。现实中最有效的方法还是从产线上持续抓数据。系统上线初期不要追求检测准确率立刻达标先跑7到15天做数据积累跑得越久样本覆盖的多样化场景越充分。鲁威制造上线第1周我们每天都会找出误报和漏报较多的图片合并进训练集再触发一次增量训练。两周以后模型表现才有了可看的提升。有一个经验值得强调千万不要只收集缺陷样本而忽略良品样本。良品图片同样要参与训练很多误报其实是模型没有见过“足够多”的良品形态。良品样本越多模型对正常纹理的拟合越好过杀率降下来就是水到渠成的事。4. 阈值调优与误报压制从算法指标到产线指标的换算逻辑AI图检的难点不在模型结构在于如何把模型输出换算成产线上的可执行判定。模型输出的是置信度分数和缺陷掩膜而产线需要的是一个明确的OK/NG信号。这里的核心就是阈值怎么定。4.1 过杀与漏检一对绕不开的矛盾任何检测系统都会面临过杀和漏检的矛盾。过杀是系统把良品当成不良品浪费的是产能成本漏检是系统把不良品放走影响的是客户端的质量声誉。两者不是一个维度的事产线负责人的关注点很明确漏检几乎零容忍过杀可以被容忍但要在一定比例内。鲁威制造一开始的预期是漏检率低于千分之一过杀率低于百分之三。这个指标听起来严格但实际计算下来并不离谱关键取决于原有不良率和检测节拍。我们做过一个简单测算原有不良率约1.2%10000件产品中约有120件真正的不良品在漏检率千分之一的前提下系统必须能识别出其中119件而良品有9880件过杀率3%意味着约296件良品会被误判这么算下来产线每天的误杀量在可以承受的范围之内但前提是把阈值卡在漏检率满足要求的水平。实际操作中我们优先保证漏检指标同时一边调阈值一边记录每天的过杀数量找到可接受的均衡点。4.2 用置信度双阈值代替单阈值判定JBoltAI的默认机制是置信度高于判定阈值才判NG低于识别阈值则判OK。这个单阈值方案在少量样本上看起来够用但上线一跑就发现问题了置信度中等区间的样本非常多单阈值会让模型在边界附近的预测极不稳定同一张图可能有时NG有时OK。我们改用置信度双阈值方案。置信度高于高阈值直接判NG低于低阈值直接判OK处于中间区间的样本进入人工复核队列由系统自动留存图片并推送到待复检列表。这套机制的好处是既保证了高置信度样本的自动判定效率又给了边界样本一条人工介入的路径不用盲目调阈值去硬切边界。可以这样理解单阈值是一条线把人都往两边赶但总有一部分人站在线上怎么判都别扭双阈值是一片灰色地带灰色地带里的人先保留由人来管。实际操作中人工复核队列初期每天大概200到400张随着样本积累和模型迭代逐渐缩窄到几十张。4.3 阈值要跟着数据分布动不应只调一次鲁威制造的产品会有批次性差异不同批次的纹理和表面状态不完全一致固定阈值一开始是合理的但一段时间后会开始出现批量性误报。我们在系统中做了每日指标统计核心看三个数误报率、漏检率、复核占比。只要复核占比连续几天上升就会去检查是不是数据分布发生了变化。阈值调整不是一个贬义词但只要频繁调整阈值就值得警惕。如果阈值本身需要经常动说明模型的特征提取还不够稳定此时真正要做的是收集新样本去更新模型而不是一直做大改动。JBoltAI支持热更新模型不中断产线的情况下替换推理模型这个能力很好用但也要谨慎用推上去之前一定先在本地跑一遍验证集。5. 部署阶段的三个大坑光照波动、产品换型、小样本新缺陷训练跑通只是第一步真正决定项目能不能长期稳定运行的是现场部署的细节。鲁威制造这个项目其实趟了不少坑我挑三个最有代表性的记录下来。5.1 光照波动同一个光源不同时段表现完全不一样第一天上线就出现了奇怪现象上午检测稳定下午过杀率突然飙升。排查了很久才发现是车间自然光变化导致的。车间虽然室内但是窗户透进来的自然光会在特定时间段影响相机成像图像的亮度和对比度发生了偏移。模型对于这种偏移比较敏感就容易把阴影误判为暗色脏污。解决办法是安装了遮光帘把外部自然光隔离开同时调整了光源的照射区域让产品所在区域的亮度不再受外部环境干扰。另一个措施是增加了动态灰度校准每隔一段时间会自动采集一张参照图计算灰度分布偏移量对输入图像做校正后再送入模型。这个坑给我们的教训是视觉AI项目在实验室里测试得再好也得考虑到真实车间的环境变化。有时候问题的根源特别简单但排查起来可能要折腾一整天。5.2 产品换型模型按型号隔离而不是混着一起练鲁威制造有几种不同规格的产品外形接近但有细微差异一开始我们把所有型号的数据混在一起训练认为这样可以让模型学习到更通用的特征。实际效果不理想混训时模型整体准确率尚可但每个型号的表现波动很大某一型号的过杀率偏高另一型号的漏检率又上去了。主要原因在于不同型号的形状、纹理、反光特性有差异混合训练时模型会尝试拟合所有分布结果每一种都拟合得不够精准。最终的调整思路是按型号分别建立检测配置每个型号有独立的推理模型和预处理参数PBoltAI内部支持多模板管理可以配置当换型时自动加载对应的模型。换个角度想每个型号相当于一个独立的专家专而精比万金油可靠得多。代价是需要为每个型号单独标注样本、单独训练但这一点成本换来了稳定性的提升非常划算。5.3 新缺陷在没有预报的情况下突然出现上线两周后产线突然连续出现一种此前从未见过的缺陷形态检测效果明显下降。原有标注数据里完全没有这种类型的样本模型只能硬着头皮去推理结果是时而识别到一些时而大面积漏掉。处理方式分两步走。第一步紧急情况下先用较低阈值把所有可疑样本都拦截下来把漏检风险压到极低水平哪怕过杀数据高一些也可以接受。第二步立刻收集这种新缺陷的样本并追加标注快速触发增量训练。新模型验证通过后再切换到在线正常检测这时我们才逐步把阈值调回到合理位置。这类情况其实无法完全避免。所以系统必须要有持续学习的数据循环机制算法团队定期去把误报率、复检队列反馈的数据捞出来看发现问题就快速更新而不是指望模型一劳永逸。6. 两个月运行数据复盘AI图检在制造业落地的性价比边界说完踩坑说点实际的。鲁威制造这套JBoltAI智能图检已经稳定运行两个月我拉出一个简单的对比。项目上线前上线后检测方式人工目检自动检测复核检测节拍约11秒/件靠人状态波动4秒/件稳定漏检情况未做全量统计供应商反馈时有发生抽样验证约0.05%过杀率不适用初期3.8%两周后降至1.9%质量数据实时性次日汇总实时推送人工投入2人倒班持续目检1人负责复核高峰期2人鲁威制造对这套系统的评价是质量数据变成了可分析的生产资料。过去质量信息只能靠纸质记录现在系统里积累了详细图像数据返修时可以直接调出历史图供应商那边也有了处理差异。不过我也得说清楚边界。AI图检不是“机器替人”最显性的环节它替代的是重复性目检动作但仍然需要人在旁边维护、复核、处理异常。如果你上AI图检是为了完全省掉检测人员那这种预期基本都会落空。更合理的目标是通过AI把人工精力从重复作业中解放出来让人去处理更复杂的问题比如数据分析和质量改善。另外一个边界在于成本。AI图检项目包含硬件、软件、数据服务、调试和后续迭代这些投入不是一次性结束的。过低预算的AI图检只是一个包装出来的普通图像软件长期维护跟不上最后效果会大打折扣。过高的预算也需要谨慎评估工业质检项目的ROI要在真实的不良率、节拍、人工成本基础上认真算如果产品本身不良率极低检测需求又很简单传统视觉也许就是一个更经济的选择。以我个人的实际经验上AI图检之前最值得先做的一件事是拿一周的真实产线数据跑一个最小可行方案。用少量样本让模型先跑起来看看在复杂的现场光照下缺陷能不能清晰成像、模型能不能稳定输出结果。这一步验证成本不高但可以提前暴露问题比签完合同再踩坑不知道要省多少事。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑