这些年我扎在企业AI落地项目里,做过最多的事情不是调模型,而是把一个抽象的技术名词拆成产线上能跑通的流程。质量控制就是这样一个经典场景:工业相机拍下产品图片,AI Agent负责判断“这算不算合格”,听起来简单,真正做起来要处理的问题远比想象中多。这篇文章就围绕企业AI Agent的计算机视觉技术应用展开,落脚在质量控制,把从方案设计、模型选型到边缘部署、持续迭代的完整链路理一遍。想读下去的,应该是那些准备在工厂里引入视觉质检系统的工程师、技术管理者,或者正在为“AI能替质检员干什么”寻找答案的人。
我先说结论:别把AI Agent当成一个模型,它应该是一个质检闭环。视觉模型只是眼睛,Agent还要有判断力、执行逻辑和反馈机制。这套东西做得好的企业,往往不是算法最花哨的,而是把异常处理、人工复核、数据回流这些“不性感”的环节设计得足够稳。
1. 先把场景看清:企业质量控制到底需要什么样的AI Agent
1.1 质检的痛点不只是“看得准”
很多传统产线的质检岗位还在靠人眼加经验。一个熟练质检员能看出划痕、脏污、毛刺、装配错位,但人眼有天然的物理极限:连续工作四小时之后漏检率明显上升,遇到表面反光、纹理复杂、缺陷形态轻微的产品,不同人给出的判断经常不一致。更麻烦的是,老师傅的经验很难复制,一旦人员流动,质量水平立刻波动。
传统机器视觉也走过这条路,但它的核心是“用规则卡特征”。比如设置灰度阈值、检测边缘长度、判断固定ROI区域的像素差。规则做得好,能把一些简单缺陷测得很准,但产品型号一多、表面纹理一复杂,规则的维护成本就爆炸。今天给A产品调的阈值,明天换到B产品上全是误报,工程师只能不断“打补丁”。企业真正需要的不是一个只会按固定规则报警的工具,而是一个能感知、能判断、能处置的AI Agent:看到图像,理解缺陷,决定是否放行,再根据结果反哺自身。
1.2 企业质检链路上Agent扮演什么角色
把AI Agent放到质量控制场景里,它的角色更像一个“带眼睛的老质检员”。老质检员看一个产品,不是只看一张图,而是会结合位置、形状、批次、历史不良记录综合判断。AI Agent也应该这样工作:视觉模型负责从图像里提取信息,比如缺陷在哪里、面积多大、属于什么类型;决策模块负责基于这些信息做结论;执行模块负责把结论变成产线上的动作,比如亮红灯、触发分拣、停线报警,或者生成一条不合格品记录。
所以一个完整的企业级视觉质检Agent,至少要包含三层:感知层、决策层、执行层。感知层是相机、光源、图像预处理和深度模型;决策层是规则引擎、置信度判断、多模型结果融合;执行层是PLC信号、MES系统接口、报警和报表流程。很多项目失败,不是模型精度不够,而是把Agent做成了“单模型API调用”,没有闭环。只要把一个环节变成闭环,整个系统的稳定性就会完全不一样。
1.3 哪些产线最适合先用计算机视觉Agent
不是所有产线都适合立刻上AI视觉质检。我踩过不少坑之后,总结出几个相对理想的启动条件。第一,节拍稳定,产品有固定工位和成像位置,比如流水线上的外观检测、包装完整性检测;第二,缺陷类别相对清楚,至少有历史不良品记录或可收集样本;第三,产线有数据接口,能把判定结果传给PLC、MES、追溯系统;第四,质量负责人愿意提供一个“低置信度人工复核”的缓冲机制,而不是要求模型一次到位。
最合适的场景通常是三类:表面外观缺陷检测、装配完整性检查、标签与字符信息核验。这些都是计算机视觉技术已经比较成熟的任务,落地阻力相对小。反过来,如果产线工艺还在频繁变动,产品规格三天两头改,或者连稳定的打光环境都保证不了,我建议先把设备和工艺纪律整顿好,再谈AI Agent。
2. 技术选型与整体架构:视觉模型不是全部,编排才是核心
2.1 视觉模块选型:检测、分割、异常检测怎么搭配
很多第一次做视觉质检的团队,上来就问“用哪个检测模型”。但真实场景里,视觉模块通常不是一个模型单打独斗,而是好几个模型配合。我在项目里最常用的组合方式是:先用图像分类或异常检测做粗筛,再用目标检测或图像分割做精定位。
目标检测适合“找得准”的缺陷,比如明显的划痕、脏污、异物;输出的是缺陷位置和类别,便于Agent生成带框的缺陷图。图像分割适合“形状不规则”的缺陷,比如流痕、缩孔、纹理异常,它能输出像素级轮廓,更利于计算面积和形态。异常检测则适合“不知道会出什么错”的场景,只用正常样本训练,专门捕获分布外的新缺陷。异常检测的优点是能发现没见过的异常,缺点是无法直接告诉你是哪种缺陷,需要Agent再做一次分类或者人工确认。
我一般这样搭配:前置一个轻量级异常检测模型,把“明显不对”的图先捞出来;然后对捞出来的图跑目标检测或分割,精确定位和分类;最后Agent综合多个模型的输出做判定。这个组合能减少单一模型在未知缺陷上的漏检率,代价是多了几步推理延迟,但对绝大多数离散制造产线来说,几百毫秒的延迟完全能接受。
| 任务类型 | 输出信息 | 适合场景 | 标注成本 | 部署成本 |
|---|---|---|---|---|
| 图像分类 | 整图OK/NG | 粗筛、产品分型 | 低 | 低 |
| 目标检测 | 缺陷框+类别 | 划痕、异物、漏装 | 中 | 中 |
| 图像分割 | 缺陷像素区域 | 不规则缺陷、面积测量 | 高 | 中高 |
| 异常检测 | 异常分数 | 未知缺陷、少样本场景 | 极低 | 中 |
2.2 Agent决策模块:规则优先还是模型优先
视觉模型给出的是概率,不是真理。所以Agent的决策模块必须把“模型输出”和“业务规则”结合在一起。我在产线上做过很多次验证,结论是一致的:质量控制场景,规则必须优先,模型只负责提供证据。
举个例子,一个产品边缘有轻微毛刺,在某种光照下检测模型打出了0.6的缺陷分数。这时候如果单纯看阈值,可能就判NG了。但产线工艺允许非密封面存在少量毛刺,只要长度不超过1mm,就是合格品。Agent要做的不是拿0.6和0.5比,而是先提取缺陷的位置、面积、形态特征,再用规则判断“这个位置是否允许存在该类缺陷,是否超过尺寸上限”。
规则的另一个作用是兜底。当多个视觉模型的结论冲突时,Agent需要定义仲裁逻辑。比如分类模型说是OK,但分割模型在某个区域分割出一块面积异常的缺陷,仲裁逻辑应该倾向“更保守”的结果:先判NG,再人工复核。宁可多拦一个合格品,也不能放走一个不良品,这是质量控制的第一原则。
2.3 端到端架构示例:从图像入口到质量报告
整套系统的数据流,我在多个项目里已经跑成了标准模板。第一步,产线上光电传感器触发工业相机拍照,图像进入本地队列;第二步,Agent启动标准作业流程,先做图像质量检查,判断是否有模糊、过曝、遮挡、丢帧,图像不合格直接重新采集;第三步,通过ROI定位裁剪出待检区域,送入模型推理;第四步,后处理模块对模型输出做形态学过滤、连通域筛选、尺寸测量;第五步,规则引擎结合缺陷信息和产品型号规则生成判定;第六步,Agent根据置信度走不同通道,高置信度自动放行或拦截,中置信度推送人工复核,低置信度直接NG并报警;第七步,所有结果写入质量数据库,同时生成带缺陷标注的图像和统计报表供质量团队分析。
这套架构的好处是每一层都可以独立替换。以后模型升级,不用动规则引擎;规则调整,不需要重新训练模型。Agent的“智能”体现在编排上,而不是某个单点算法。我在第一个项目里就是吃了没有拆层的亏,所有逻辑写在一个脚本里,后来换一个型号的产品,改了三天代码。
3. 实操落地:从数据采集到模型上线要过的五道关
3.1 采集与标注:一张坏图胜过十张好图
数据是视觉质检的上限,模型只是逼近这个上限。很多团队在数据采集阶段就犯了急功近利的毛病,只挑几十张有明显缺陷的图片,结果模型上线后面对千奇百怪的光影变化直接失效。正确做法是先在产线上连续采集一周,覆盖不同班次、不同光照、不同原材料批次、不同设备状态。好图要采,坏图更要采;一张坏图在训练中的价值,往往超过十张好图。
标注环节同样要下功夫。缺陷类别定义必须写到纸面上,避免“划痕”和“擦伤”在标注报告里混用。我的做法是先和质检负责人一起定义一份缺陷标注规范,每个类别配两到三张典型示例图和边界案例图,标注员照着规范作业。第一版模型训练完,我会让模型先给候选图片做预标注,再由人工修正,这样能把标注效率提升一倍多,还能保证标准一致。
如果坏样本实在不够,有几个变通办法。一种是用异常检测模型,只用正常样本训练;另一种是采集少量真实缺陷样本,再做离线数据增强,例如模拟不同角度的光照、随机噪声、轻微模糊。但注意不要增强过度,把图像搞得面目全非,反而让模型学到一堆伪特征。增强的目的是扩大“同一类缺陷在不同环境下的表现”,而不是凭空生成不存在的缺陷形态。
3.2 训练与评估:用漏检率而不是准确率来定指标
做质检模型,我最反对的指标就是“准确率”。因为合格品通常占绝大多数,哪怕模型把所有图都判成OK,准确率也可能有95%以上,但漏掉的那5%不良品恰恰是致命的。正确的评估视角是分开看漏检率和误检率:漏检率指不良品被放行的比例,目标应该是无限接近0;误检率指合格品被拦截的比例,它影响产线稼动率和人工复判工作量。
训练集和测试集必须按时间顺序切分,不能随机打乱。随机切分会把相同批次、相同光照条件下的图片同时分到训练集和测试集,评估结果虚高。按时间切分,用前两周数据训练,第三周数据验证,才能反映模型在“未来产线”上的真实表现。另外,缺陷有大有小,小目标缺陷的检出能力要单独统计,否则大划痕把mAP平均分拉上去,小气泡一个都测不到,上线就露馅。
评估报告不要只看一张总表。我习惯按缺陷类别、缺陷尺寸区间、产品型号三个维度分别计算指标。这样如果某个型号的漏检率异常高,能立刻定位是数据覆盖不足还是标注不一致,而不是被总指标掩盖。
3.3 边缘部署与推理优化:把延迟压到产线可接受的范围
模型训练得再好,部署到产线时延迟超标还是不能用。部署前先明确产线节拍:比如节拍是3秒一件,视觉系统必须在1秒内给出结果,余下时间留给PLC动作和人工响应。这个预算要分摊给图像采集、预处理、推理、后处理和通信,每一环都要写清楚。
常用的优化手段有几招。第一,图像分辨率不一定要全图最高,先在一个低分辨率图上定位ROI,再对ROI区域用高分辨率单独推理,能省下大量计算;第二,模型轻量化,用通道剪枝、知识蒸馏把网络压小;第三,INT8量化,如果GPU和推理框架支持,延迟能降到原来的三分之一左右。但量化后一定要在大量NG样本上复测,量化偶尔会把小缺陷的激活值舍入掉,导致漏检率上升。
部署环境我建议用容器,把模型文件、依赖库、推理服务打包,模型版本和回滚都清晰。不要在生产环境临时改代码,也不要用开发机直接跑。曾经有一次我在现场为省事,直接在工控机上跑了开发环境,结果某个依赖库被系统更新顶掉了,整条线停了两小时。后来所有部署一律走镜像,再也没出过类似问题。
3.4 与MES/工控系统对接:Agent的“手”和“口”
Agent把图像变成判定还不够,它必须把判定变成产线能理解的信号。常见的对接方式有三种:IO信号输出、Modbus TCP、HTTP接口。最简单的做法是给PLC一个开关量:OK就给高电平,NG就给低电平,同时把详细结果通过HTTP写入MES数据库。对于现有产线改造,IO信号最直接,PLC工程师改几行逻辑就能接入。
系统设计上要特别重视“故障兜底”。Agent服务宕机、相机断连、模型加载失败,这些异常都会导致没有输出。这时候产线必须进入fail-safe模式:默认拦截所有产品,并触发报警,而不是放行。这个逻辑听起来很基础,但有些方案商会把异常当成“超时无结果”处理,默认通过,那在质量控制上是绝对不可接受的。
另外,追溯数据一定要完整。每条检测记录至少包含:产品批次、工位编号、图像路径、模型版本、缺陷类别、缺陷置信度、规则判定结果、时间戳。有了这些数据,后续做质量分析和模型迭代才有根据。否则出了客诉,你想复盘都无从下手。
3.5 模型上线后的持续监控与迭代
模型上线不是终点。我会在系统里加一个“置信度分布监控”,每天看所有产品预测分数的分布。如果某一天大量图片的置信度整体下降,说明产线上出现了分布漂移,比如换了新供应商的原材料、光源衰减、或者产品表面处理工艺有调整。这时候就算漏检率还没爆,也要提前介入,而不是等到客诉来才发现。
持续迭代必须有一个“数据回流”闭环。质检人员复判过的低置信度图,尤其是误检和漏检的边界样本,应该自动进入待标注池,定期由工程师审核、标注、加入训练集。但注意一个原则:AI Agent不能自动修改自己的判定规则。无论是补充样本还是调阈值,都要经过人工审批和回归测试。自动吸收错误标签只会让模型越学越歪。
版本管理也和软件一样。基线数据集(golden set)要固定在某个版本,每次候选模型必须先在这个基线上跑分,证明没有把旧缺陷类型测坏,再进入线上灰度。我在实践中最常用的节奏是:每周增量微调一次,每月出一个重大版本,每次上线前至少观察一周的误检率和人工复核率曲线。
4. 典型场景拆解:当Agent遇到产品质量缺陷时
4.1 表面缺陷检测:划痕、脏污与纹理异常的判断逻辑
表面缺陷是视觉质检里最典型的场景,也是最容易翻车的场景。拿一个金属外观件举例,产线上用面阵相机加条形光源拍照,检测划痕和脏污。难点在于金属表面有反光,刀纹和划痕在图像上可能都是亮线,单靠像素强度根本分不开。我的做法是同时输入灰度图和梯度图,让模型看“线状特征的走向和宽度”;刀纹通常是规律的平行线,划痕则是断续、方向随机的高亮线段。
Agent判断的时候不能只看“有没有异常线”,还要把缺陷位置和形态带入规则。比如这个产品分成密封面和外观面,外观面上允许有长度小于3毫米的轻微划痕,密封面上即使有0.5毫米的划痕也要判NG。在项目里,我把这类规则做成一张区域权重图,不同ROI对应不同等级,Agent先判断缺陷落在哪个区域,再结合尺寸阈值给结论。
脏污比划痕更难搞,因为脏污可能被误判成凹陷或者材质色差。我的经验是加入一个“背景一致性”判断:脏污通常会改变局部纹理统计,而材质色差往往是大面积的、平滑的差异。Agent会对比缺陷区域和周边区域的灰度分布、纹理能量,差异明显才判脏污,分布接近则判低风险,交给人工复核。
4.2 装配完整性检查:多目标关系的逻辑验证
装配完整性检查是一个非常适合AI Agent的场景,因为单看“某个部件有没有”不够,还要看部件之间的位置关系对不对。比如检查一个产品组件:三个螺丝必须全部锁付,两个卡扣必须扣到位,一个防尘盖必须在指定位置且方向正确。传统视觉可以分别做三次检测,但Agent更擅长把多次检测结果合并为一个逻辑判断矩阵。
逻辑矩阵长什么样?每个待检部件是一个目标,属性包括是否检测到、检测框位置、角度、与参考位置的偏移量。Agent拿这个矩阵去匹配当前型号的标准配置表:螺丝数量对不对,位置偏移是否在公差范围内,卡扣是否有间隙,防尘盖方向是否装反。任何一个约束不满足,立即判NG并输出具体是哪一项不合格,质检人员看到报警信息就知道是漏装还是错装。
装配检查很容易忽略一个坑:遮挡。机械手或人体可能挡住待检部件,导致视觉模型漏检。此时Agent不能直接判NG,而要先判断“是没装,还是没拍到”。解决方法是加多视角相机,或者结合时序信息:如果图像质量模块发现某个ROI区域存在遮挡,就触发另一路视角重新检测。我在实际项目中就遇到过,某型号产品装配后机械手会短暂停留在检测区域上方,单相机方案误报率极高,加了一个斜视角相机之后,误报率直接掉了九成。
4.3 标签与字符质检:OCR与视觉校验的协同
很多产品会有标签,上面印着批次号、生产日期、二维码。质量控制要求这些信息不能印错、不能模糊、不能贴歪。这里用到的技术是OCR,但Agent的价值在于“读出来之后还要校验”。比如根据生产计划,当天批次号应该在某一个区间范围内,如果OCR识别出的日期晚于当天,Agent就要怀疑是打印错误还是识别错误,调出图像让人工二次确认。
OCR的误识别是个长期存在的难题。字符“0”和“O”、“1”和“I”、“B”和“8”在低分辨率下非常容易混淆。应对策略是给Agent加业务约束字典:日期字段只允许数字和分隔符,产品型号字段必须匹配当前生产的型号白名单,不符合字典的字符组合直接置为低置信度。同时用多帧投票:连拍两张同一张标签,识别结果一致才放行,不一致就人工复核,识别准确率能提高不少。
标签的位置校验同样重要。打印歪斜、贴标偏移、条码等级不够,都会影响终端扫码和追溯。视觉模型可以检测标签边缘与产品基准边缘的夹角、偏移量,Agent根据型号规则判断是否在公差内。如果标签歪了但内容识别正确,系统可以判“轻微缺陷”并分流到返工区,而不是直接报废。这个“分级处理”思路,只有Agent能比较自然地实现,传统规则系统往往会做成非黑即白。
5. 常见问题与排查技巧实录
5.1 误检率居高不下,问题多半出在样本和标注入库策略
模型上线后误检率突然升高,不要急着调阈值。先看误检图片是不是集中在某个时间段、某个批次、某个工位。如果是新换的一批原材料表面光泽不同,模型没见过,就会把光泽变化当成缺陷。这时候最有效的办法不是把判定阈值调严,而是采集这一批材料的光泽样本,补充到训练集里。原因很简单:模型对“正常范围”的认知来自训练数据,数据没覆盖,阈值再怎么调都是治标不治本。
还有一种常见情况是标注标准漂移。同样一个轻微痕迹,第一个标注员标了缺陷,第二个没标,模型学到的是混乱逻辑。我建议每周抽30张历史图做标注一致性检查,把分歧样本拿出来讨论,形成新的标注补充说明。项目上线前三个月如果能把标注一致性从80%提到95%,后面能省下大量调模型的时间。
5.2 Agent低置信度时该做什么:人工复核闭环
很多团队在置信度阈值上卡死:大于0.9放行,小于0.9拦截。但实际产线上有大量0.7到0.9之间的边缘样本,直接拦截会堵死人工复判工位,直接放行又心有余悸。更合理的方案是设双阈值处理:高置信度区间自动判定,低置信度区间默认NG并报警,中间区间进入人工复核队列。
人工复核不是简单让质检员再看一眼,而是要把Agent的证据一起展示出来:缺陷的定位框、分割区域、置信度热力图,以及关联的规则依据。质检员几秒钟就能判断Agent对不对,然后把结果点回去。这些复核结果自动变成新的标签数据,每周汇总后进入待训练池。这套闭环跑稳之后,人工复核率会从初期的10%到20%逐步降到2%到5%,系统也就能逐步减少人工干预。
5.3 环境光变化导致模型飘了怎么办
环境光是工业视觉里最大的“隐形杀手”。自然光透过窗户照进车间,下午三点的光线和早上九点完全不一样。别看模型在测试集里很稳,光照一变,图像统计特征整体偏移,误检率跟着就上来了。解决思路有两个方向:一是把物理环境控制好,用遮光帘和恒光源,让成像条件尽可能固定;二是在Agent里加图像质量监控,实时统计每张图的亮度均值和对比度,如果发现整体统计量偏离基线,就触发“光照异常”告警,并暂停自动判定。
不要指望模型“自适应”所有光照。模型根本没有光照概念,它学的是像素分布。如果某台设备的玄幻光确实无法完全屏蔽,就在数据采集阶段刻意收集早晨、中午、傍晚不同光照下的图片,让模型见过足够多的变化。我还试过在相机前加偏振镜来减少金属表面反光,效果非常明显。
5.4 缺陷种类会变,模型怎么跟得上
新产品、新工艺、新材料,都可能带来从未见过的缺陷形态。质检团队最怕的不是“某类缺陷检测不准”,而是“还有缺陷但Agent完全无感”。要解决这个问题,最好的办法是让Agent里始终保留一个异常检测模块作为“未知捕获器”。它不需要知道缺陷是什么类别,只要发现“这个区域的正常模式偏离了训练分布”,就给出高异常分数,触发复判。
每次质量会议上,都应该有一个“新缺陷登记”议程。质量人员发现新型缺陷,立即拍照取样、记录工艺参数,交给算法团队加进训练池。配合异常检测模块,Agent能在模型更新前先把新型缺陷拦住,模型更新后就能分类识别。这个“先捕获、后学习”的节奏,是我见过最稳妥的长期维护方式。
5.5 长期维护成本如何控制
视觉质检Agent的长期成本大头不在硬件,在于“持续维护模型和数据”。每换一个产品型号、每改一次工艺,都可能需要补充图像。为了控制这个成本,我强烈建议建立“基础数据集+型号专属集”的双层结构。基础数据集保持稳定,用来验证模型通用能力;型号专属集按产品演进持续更新,控制每个型号的样本量到一个合理范围,既保证精度,又不会让数据膨胀到不可维护。
存储也要有策略。并不是所有OK图都要永久保存。我的通常做法是:所有NG图、所有人工复核图、所有低置信度图全部长期留存;OK图按比例抽样,比如每个批次保留5%,足够做分布分析和追溯,又能把存储成本压下去。每次模型迭代都要在旧版本上跑一次回归测试,如果新版让某个旧缺陷的漏检率升高,就要查清楚是数据遗忘还是标注变化,必要时做增量重放而不是整个模型推翻。
最后说一点个人体会。质量控制类的AI Agent,最先要接受的不是“AI有多聪明”,而是“AI也会有看不懂的时候”。把异常兜底、人工复核、版本回退这些不性感的机制做好,系统才能真正留在产线上。我现在做项目,每次上线前都会问一句:如果Agent今天判断错了,最坏会发生什么?这句话问完,很多设计漏洞就自己暴露了。能正视这个问题的团队,往往也是把视觉质检Agent做得最稳的团队。