ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI Agent视觉质检落地实践:从光源调试到模型闭环的完整指南

AI Agent视觉质检落地实践:从光源调试到模型闭环的完整指南

近两年我接触过不少制造企业的质量团队,大家谈得最多的不是“要不要上视觉检测”,而是“上了之后,为什么感觉没省人,反而添了麻烦”。同一个划痕,白班老师傅判报废,夜班新员工直接放行;同一批注塑件,上午光线好检测出色,下午光源衰减就频繁误报。我亲手参与过几条产线的视觉质检改造,越来越确信一件事:仅仅在流水线上架几台相机、跑一个分类模型,解决不了“标准不稳定”这个根子上的问题。真正让我觉得方案做“对”了的,是把计算机视觉当成企业AI Agent的一项感知能力,嵌进质量判定、工序联动和持续学习的闭环里,而不是把模型当一次性工具扔在现场。

这篇文章,我不打算讲那些听起来漂亮的架构图,而是想聊实际落地:从硬件采光怎么调,到标注数据为什么比调参更烧时间,再到试运行阶段怎么定阈值、上线之后怎么防止模型越跑越“瞎”。涉及的场景以电子元件外壳外观检测为主线,同样适用于金属件、注塑件、包装外观等大多数质量控制场景。无论你是刚准备做技术预研的工程师,还是已经被误检、漏检折磨到睡不着觉的项目负责人,这些内容都能让你少踩一轮坑。

1. 为什么人工质检和传统机器视觉都搞不定“稳定”这件事

1.1 人工检验的成本黑洞,从不在表面

产线上人工质检的问题,表面上算的是人力成本,实际真正昂贵的是“标准漂移”。一份检验作业指导书往往写得很完整,可落到具体执行时,缺陷判定高度依赖个人经验。今天我抽查一个外观判“轻划伤可接收”,明天换一位同事,同样的缺陷可能就被判“NG”。人眼还会疲劳,连续盯视屏幕三四个小时后,漏检率悄悄上升。很多工厂为了守住质量底线,只能反复加严标准,结果是把大量“可用”的产品当成废品处理,成本全被吃掉。

我们在某个外壳检测项目里做过一次盲测:让三位熟练质检员对同一批200个带有轻微瑕疵的零件做复判,结果三人一致判定为OK或NG的比例,不到七成。换句话说,哪怕今天把AI系统装上去,如果判定标准本身就跟着“人”在变,系统再准也没有锚点。这个盲测结果,成了后来整个项目设计最关键的起点——我们必须先帮客户把“什么叫合格”量化成可落地的规则。

1.2 传统机器视觉的“死门槛”:规则写不清楚的缺陷,逻辑再复杂也判不了

传统机器视觉不是说没有价值,它在几何测量、二维码读取、位置引导这类“边界清晰”的任务上非常高效。通过灰度阈值、边缘检测、模板匹配,就能稳定判断“引脚间距是否超差”“外壳轮廓是否偏移”。问题出在那些“说不清道不明”的缺陷上,比如:金属表面的细划痕、注塑的轻微收缩痕、表面光泽不均。这些缺陷特征往往是渐变过渡的,不同角度光照下呈现完全不同,很难用一段可解释的视觉逻辑去穷举。

老式方案的通常做法,是反复堆滤波器和阈值参数:调到某一条产线效果好,换一条线又要重新调。即便同一台机台,可能因为某天车间湿度变化、材料批次的光泽差异,原本的阈值就会集体失效。我见过最有耐心的工程师,用了三个月去调一套检测划痕的规则,最后还是被“磨砂面反光”这种日常现象搅得头疼。根因在于,传统视觉是“人先把规则写死,机器照着走”;而外观缺陷恰恰是“规则只能描述大概,细节根本无法穷尽”的领域。

1.3 AI Agent带来的不是“一台能识别的机器”,而是“一个会动态调整的流程”

这就要说到AI Agent与单纯视觉模型的关键区别。很多人把“视觉检测AI”理解成:拿一批照片训练一个分类网络,部署后输出OK/NG就结束了。这种理解很容易让模型变成“盲人摸象”——它只管判断当前这一个画面,却不知道这个缺陷是怎么来的、昨天同类缺陷多不多、该不该触发产线报警。

在质量控制场景里,合格的AI Agent应该具有感知、推理、行动和记忆四个基本能力。感知层面,视觉模型负责发现“外壳第三区域有一条疑似划痕”,并给出缺陷位置和置信度;推理层面,Agent结合规则库和上下文,判断这条划痕的长度、深度、所处功能面是否触及客户封样标准;行动层面,Agent不是只知道报个警,而是可以触发相机补拍、将该工件导向复检区、通知对应工位的责任人;记忆层面,它会把这次判定、后续人工复检的真实结论、当天产线的良率趋势全部记录下来,用于下一批工件的阈值微调。

这套逻辑做出来,系统就不再是“一台会报警的相机”,而是变成了一个能够参与车间质量管理闭环的数字角色。下面我按实际动手顺序,拆开讲讲每一步怎么做。

2. 搭建一套视觉质检Agent,先从硬件和部署架构说起

2.1 成像端是最大的坑,比AI模型本身更容易翻车

很多团队做AI质检,上来就买高分辨率工业相机,觉得“像素越高,模型越准”,结果项目一周后被光源问题卡死。成像这件事,像素只是基础,光源和打光方式才真正决定你看到的是什么。外壳上的浅划痕,如果没有低角度环形光,在常规漫射光下几乎不可见;如果只用单侧条形光,又会产生大量镜面反光,让模型把正常纹理误判成缺陷。

我在项目中总结的经验是:先拿样品去“试光”,确定缺陷与背景的最大对比度方向,再定光源种类和角度。比如,检测金属外壳的深度划伤,我一般优先试低角度环形光或穹顶光源,尽量让划痕产生明显的定向散射;检测注塑件表面的油污或脏污,则要多用同轴光或低角度的均匀反射光。相机安装位置要固定在刚性支架上,不能随便架在产线护栏上。产线一运行就有振动,相机轻微抖动几微米,边缘轮廓就全糊了。

相机选型上,多数外观检测项目500万像素工业相机已经够用,不用盲目追高分辨率——分辨率越高,单张图像传输和推理耗时越长,产线节拍往往不答应。帧率要看实际流水线速度,常见的静态工位拍照检测30帧以下即可;如果是高速运动中的带钢表面、薄膜表面,可能需要200帧以上的线扫相机。这一步我吃过亏:最开始规划的是高帧率全局快门相机,结果发现产线节拍根本不快,白白多花了好几万预算,后来换回卷帘快门的中端型号完全够用。

2.2 推理端选型:边缘小站还是集中式GPU服务器

接着要定的是图像推理在哪一级完成。我建议遵循一个原则:能靠近现场算的,就不要往云端送。理由很简单,质检的实时性和产线联动性要求太高。你想用一个Agent判断出来NG后马上去触发剔除气缸动作,如果图像还在网上绕一圈再回来,节拍就崩了。另外,长期运行的企业项目必须考虑数据边界,大量的内部产品图像不适合全部传到外部云端做推理。

具体部署上,单工位小规模验证,我通常推荐一台配置中等的边缘工控机,搭配独立显卡或自带NPU的AI模块。这种方案的推理速度在20到40毫秒级别,完全能满足大多数工位需求。如果是多工位、多相机联动的大车间,则采用“边缘推理+中心管理”模式:每个工位边缘机负责实时推理和本地动作;中心服务器负责Agent的长期记忆、模型下发、阈值策略更新、质量报表汇总。

2.3 Agent编排层:检测结果如何变成车间动作

到了Agent角色真正发挥价值的环节——检测结果怎么与产线其他设备联动。一个质检Agent通常最少要接三类数据输出:

  • 二进制判定与置信度:用于控制PLC剔除气缸,或者触发声光报警。
  • 结构化结果:缺陷类别、坐标位置、缺陷尺寸估算,保存到数据库,供后续追溯分析。
  • 策略反馈:Agent根据近期误检率调整不同缺陷的判定阈值,并将调整结果发送给边缘机生效。

举个例子,Agent检测到某个批次外壳的划痕缺陷率从0.5%突然升到8%,它不只是报警,还会把这个异常事件推送给质量工程师,并且将“该缺陷在接下来一小时内的复判比例”临时上调。等人工复核找到根源是模具某处崩角,修复后良率回落,Agent再自动恢复原阈值。这种“自动感知-动态调整”的联动能力,才是AI Agent和普通视觉模型的差别所在。

3. 数据和标注:整个项目里最不该压缩时间的一环

3.1 先定义“拍什么”,再想“拍多少”

数据采集阶段,最常出问题的是“拿到一堆图就往模型里灌”。我建议先停下来列一份“拍摄清单”,回答三个问题:

  • 这个产品有哪几种缺陷类型?分别长什么样?
  • 同一种缺陷下,又有哪些表面状态变化(比如不同批次材料的光泽差异)?
  • 哪些不是缺陷、但长得像缺陷(比如灰尘、光纤、贴标气泡)?

一边采数据,一边给每个缺陷类型拍照500张以上,同时留出20%的“非缺陷但易误判”样本,也就是所谓负样本难例。如果光采缺陷图、不采易误判图,模型上线后就会出现严重的误报。漏检和误报是跷跷板,想压低误报,训练时就得有足够多的“难例”让它学会区分。

3.2 标注粒度:边界框、分割掩码还是类别标签

外观缺陷标注的粒度,直接影响后续系统能力。如果只做“整图OK/NG”的二分类,你会得到很粗的结果:系统告诉你“这块样板不良”,但操作员不知道不良在哪个位置,需要自己对着图慢慢找。所以我强烈建议至少在缺陷检测阶段使用目标检测框标注,把每个缺陷的位置框出来;遇到划痕、坑洞这些形状不规则的缺陷,更进一步用分割掩码标注,输出缺陷的精细轮廓。

标注的时候要特别注意“级别划分”标准。有些轻微划痕虽然拍得到,但按照企业封样标准属于可接收范围,这类样本不能简单标成“划痕缺陷”,否则模型会把可接收的轻微痕迹也报成NG,误报率直接失控。实际做法是分两个模型任务:先用检测模型把全部可见痕迹都找出来,再由Agent按几何长度、像素对比度等信息去计算是否超出接收线。这种“检出来”与“判不判NG”的分离设计,会让你后面的运维工作轻松很多。

3.3 训练策略:迁移学习为主,别幻想从零训练一个大型网络

外观检测模型现在已经比较成熟,从头训练一套大规模视觉网络既不经济也没必要。我当前的标配思路是:用目标检测的预训练权重(比如YOLO系列的公开权重)做底座,在自己的缺陷图像上做微调。这样只要几千张有效标注图,就能取得不错的检出效果。

数据增强方面,常规的旋转、缩放、翻转、亮度抖动都做上,但要注意不能“增强过头”。对生产场景来说,缺陷图的角度翻转要结合实际工位放料方向,乱转容易让模型学到错误的空间位置关系。另外,因为同一条产线的材料批次会带来表面纹理差异,适度的色彩抖动和噪声注入,有助于提高模型对批次变化的耐受度。不要追求把所有噪声增强全部拉满,否则模型会变得“迟钝”,轻微真实缺陷也发现不了。

4. 从训练到试运行:指标、阈值与现场调优的那些事

4.1 业务指标先定下来:漏检和误报,哪个更让你肉疼

很多新手一上来就盯着准确率,在实际视觉质检里,准确率是最没参考价值的指标之一。假设一个工位良品率是99%,哪怕模型把所有产品都判成OK,准确率也有99%,但它的漏检能力为零。真正要看的指标是两组:

  • 漏检率(假阴性率):有缺陷的工件被当成合格品放过的比例。
  • 误报率(假阳性率):合格品被当成缺陷品拦截的比例,车间里一般直接叫“过杀率”。

漏检率决定客户投诉风险,过杀率决定生产成本。上线现场, 通常默认是两者取舍后再折中。我的经验是:先把漏检率控制在目标值内,再慢慢压低过杀率。因为漏检会导致缺陷流出厂外,属于更严重的质量事故,一旦坏了口碑,后面再解释也划不来。过杀率偏高,起初可以靠复检岗位兜底,至少问题没有流失到客户那边。

4.2 分级置信度:一个阈值管所有缺陷类型不现实

同样的置信度阈值,在不同缺陷类型上的效果完全不同。像尺寸超差这种特征明显的缺陷,模型置信度通常都很高,0.9的阈值也不痛不痒;像划痕这类边界模糊的缺陷,置信度普遍偏低,把阈值拉到0.8,可能一半的真实缺陷都被漏掉。

实际操作中,我会给每个缺陷类型单独配置置信度阈值,而不是全局一刀切。更进一步的方案是设定“可信区间+人工复核区间”:置信度高于0.85的,系统直接判定NG或OK;置信度处于0.45到0.85之间,判为“可疑”,自动流转到人工复检台;低于0.45的则认为图像质量或现场条件异常,提示信息采集异常。这套分级设计,既降低了漏检风险,又不会让现场人员整天对着误报警处理。

4.3 试运行期的“两条腿走路”策略

千万别急着把视觉判定结果直接接到自动剔除机构上。我做的每个项目,都至少保留两周的“影子模式”:AI Agent照常做检测、照常输出判定,但动作只写入日志,不触发实际分拣。与此同时,质量工程师每天按比例抽样复核这些判定结果,把AI判OK但人工判NG、AI判NG但人工判OK的对象分别抽出来看。

影子模式下积累的是最干净的对照数据。试运行结束,我们通常会做一次系统性的误报/漏检复盘,逐条查看误检图集,总结出三类常见问题:标注不一致导致的偏差、光源状态变化导致的不稳定、以及新增缺陷类型未被模型覆盖。哪类问题最突出就优先解决哪类,之后再切换为“AI判定+人工抽查”的正式运行模式。这一步虽然笨拙,但能避开很多上线即翻车的尴尬。

5. 上线之后,AI Agent系统能不能长期好用,取决于这几件事

5.1 环境漂移是长期运营的最大敌人

视觉系统做得好不好,上线第一天其实还没法下定论,真正考验的是三个月后。光源会老化,亮度从100%慢慢掉到80%;相机镜头表面会积灰,图像越来越“雾蒙蒙”;工件在产线上的定位夹具会磨损,每次拍摄位置可能偏移几个像素。这些变化统称为“环境漂移”。模型是在当初的光照条件下训练的,环境一变,推理效果就会抖降。

解决办法不是定期重训练,而是要有一套自动监控机制。我习惯在Agent里塞一个指标:每次推理后分析图像的亮度均值、对比度分布与历史均值的偏离程度。一旦发现数据漂移超过设定阈值,Agent就推送“建议维护光源/镜头”的提醒,而不是傻等到晚上误报投诉了才去处理。此外,现场要留白平衡校准板和定期标定制度,每次都拍摄同一款校准样件,用来判断系统状态是否异常。

5.2 错样本回流:很多团队都漏掉的持续优化闭环

AI质检系统上线运行一段时间后,会沉淀一批“模型当时判错、人工复核纠正”的样本。这些样本是模型迭代最宝贵的肥料。所以不能把它们随手删除,也不能把它们堆在数据库里不管。

我会在每个项目里搭一个最简单的错样本回流管道:把人工复检时纠正过的图像自动打上标记,保存到单独的“待训练”目录,每周做一次小批次增量训练,验证集里加入这些新的错分样本。如果增量训练后在验证集上的表现变好,再更新到生产环境;如果反而下降,回退到上一版。这里必须强调:没有人工复核机制,就没有可靠的错样本回流。这就是为什么我一直保留“可疑区间自动流入人工复检”的机制。

5.3 模型版本管理与回滚策略

质检Agent也是软件系统,版本管理不能含糊。具体做法是:每次生产模型发布时,同步记录训练数据、训练参数、验证指标和上线时间。模型在正式切换前,先跑到某条不重要的线或只在低风险品种上试用几天,跑顺了再全面推送。

万一新模型上线后误检率异常升高,要能快速回滚到旧版本。这时靠的就是Agent中央管理服务器上的“一键下发”和“一键回滚”能力。模块版本控制在制造企业常被轻视,等出了事故再去翻“当时模型是哪个文件”,往往要折腾大半天,现场早就投诉满天飞了。

6. 从“单点质检”走向“生产质量闭环”的一些体会

6.1 当质检Agent开始关注趋势,而不再只看单个工件

当单个工位跑稳之后,Agent的作用可以向前延伸。比如连续统计某个缺陷的发生率趋势:某款外壳产品的划痕概率在整个上午持续爬升,Agent就可以反馈给工艺侧,提示可能是上料磨损或模具温度出了问题。以前这个数据分析需要质量工程师隔几天手动拉一次报表,现在Agent自己就能发现苗头并提前预警。

这种能力拉通以后,视觉质检就不再是“末端拦截”,而变成生产过程的前馈控制。质检Agent可以把检测结果与成型机参数、批次信息、班次信息做关联,帮助找出“到底是什么变量导致缺陷率上升”。这一步做出来,整个项目的价值量级都不同了——从省了几个人工,变成了在源头控制成本。

6.2 人机协作的边界:不要让现场人员觉得“系统在找茬”

上线过程中最容易忽视的其实是人的感受。一线质检员刚开始对AI系统往往有天然抵触,觉得是“机器来抢饭碗”,操作上稍有不顺就放大抱怨。我的做法是在方案设计时,尽量把Agent的定位从“评判者”改成“辅助者”:系统发现可疑图像,不是直接宣判报废,而是把图像和定位坐标推送给人工,由人工做最终裁决。

这么做有两个现实收益:一是保留人工在最终质量责任上的决策权,避免系统判错却没有补救路径;二是通过人工反馈校准模型,比无人干预的“黑盒判定”更容易被现场团队接受。有一个项目我印象很深,一位老质检员对自动判定一直有意见,后来系统把“可疑工件”流转到他工位复核,他点了几次“这是可接收的轻微纹理”,模型经过两轮迭代后误报明显下降,他才逐步信任这套系统。

6.3 我的几条实操体会

最后说几条我在多个项目里反复验证的体会,算是一点“私货”:

  • 不要在产线还在调试的阶段就做模型冻结。设备状态、工装夹具改来改去,数据分布一直在变,模型必须跟着迭代。
  • 先从一个缺陷类型做到极致,再扩展到其他类型。把划痕这一个类型做到漏检率降到你接受的水平,比同时铺开八种缺陷类型但每种都不理想要靠谱得多。
  • 别小看现场网络环境。部分老车间网络不稳定,边缘机偶尔断网,Agent要设计好离线缓存策略,保证断网时候检测不中断,网络恢复后再上传数据。
  • 关键工位要给Agent安排“心跳检测”。Agent本身也会出故障,要定期用标准样件自动触发检测来确认系统是否在线、指标是否正常。这听起来很基础,但真正做的团队不多。

回到开头那个问题:企业AI Agent的计算机视觉在质量控制里到底能做什么?我的回答是:它不是一个能取代质检员的“检测工具”,而是一条能让“标准一致、反馈及时、持续学习”真正落地的质量闭环。前期的数据、光源、试运行这些东西又琐碎又费劲,但绕不过去。把架构想清楚、把闭环做完整,后面受益的将是整个生产系统。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进