ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

机器视觉缺陷检测项目:为什么大量项目验收之后难以稳定运行

机器视觉缺陷检测项目:为什么大量项目验收之后难以稳定运行 前年冬天深圳一家做连接器的电子厂找我“救火”。他们的AOI外观检测项目一年前风光验收验收报告上白纸黑字写着缺陷检出率98.5%误报率3%。老板在验收会上还跟供应商握了手、合了影照片挂在公司展厅里。可等我进到车间看到的完全是另一番景象检测工位上的设备亮着绿灯在跑产品一个个从镜头底下过但输出信号直接接了个“自动放行”——也就是说检测结果根本没拦住任何东西。旁边的质检班长跟我说了实话“这机器上线三个月我们就给它断电了天天喊狼来了误报多得我们根本看不过来。现在它就是台会发光的高级传送带。”这不是个例。我前前后后复盘过十一个已验收的视觉检测项目稳定运行超过半年的只有三个。剩下的八个有的在被反复“调阈值”有的被工人用胶带贴住了报警灯有的干脆退回了人工目检。验收时个个98%产线上个个趴窝。今天就把这背后的门道掰开揉碎讲清楚。也有反着来的案例。另一家做五金件的厂验收时指标“很难看”检出率只有九成出头被老板压了一轮价。可人家把数据闭环和人工复判做扎实了上线大半年误报率一直压在5%以内车间用得顺顺当当后来还追加了两条线的预算。指标好看的活不长指标难看的活得久——验收数字跟项目寿命有时候就是这么拧着来。这里再补一刀那些“活得久”的项目往往验收时还吵过架。客户嫌指标不够漂亮供应商嫌客户要求苛刻双方在试运行阶段真刀真枪地磨了一个月——磨的过程难看但磨出来的系统是跟产线长在一起的。反观顺风顺水一次验收通过的项目多半是验收标准本身就没立住。一、验收报告上的98%和产线上的真实表现是两个世界先说数据。那个连接器厂的项目验收时误报率3%上线后一个月内就爬到27%最高冲到过35%。这意味着什么他们的产线一天过检八千只产品按三成误报算两千多只良品被拦下来要人工复核质检组就那么四个人根本看不过来。看不过来怎么办工人的对策简单粗暴先放行攒着一起看。放行多了怕漏检干脆有人把报警音量调到最小有人拿纸板挡住屏幕最后演变成“听个响就行”。最极端的一次夜班工人直接把检测工位的电源给拔了——反正也没人管白天再插上。我还见过更隐蔽的“软抵抗”工人不拔电源但把检测工位的来料速度调慢一半人为制造缓冲好让自己来得及看——产线节拍被悄悄拖慢产能损失比误报本身还大。老板看到的是产量下滑查来查去查不到原因谁也不会承认是自己调慢了机器。系统的信任一旦破产工人有一百种方式让它“体面地失效”。我还见过一个厂最后把视觉检测的“判决权”交给了抽检AI说放行的隔一段时间人工抽几只复核AI说拦截的反而不看了。整个逻辑彻底颠倒——系统从裁判变成了嫌疑犯。这种局面一旦形成项目基本就死了再好的算法也救不回来。我在行业里聊过一圈类似的剧本反复上演逃不出这几个套路误报率随时间一路走高从验收时的个位数涨到两成三成质检人手被拖垮新换一款产品、换一批来料漏检突然暴增客户投诉退货产线只能切回人工目检现场没人会调供应商的算法工程师撤场后参数再没人敢动系统“冻”在验收那一刻设备点检、光源清洁没人管镜头脏了、光源暗了性能悄悄下滑直到某天批量事故爆发。误报的代价可以算成账。按一天两千只误拦算每只人工复核一分钟一天就是两千分钟三十多个小时——相当于每天白养一个半质检员专门给机器“擦屁股”。而漏检的代价更狠工人被误报折腾久了习惯性放行某天一只真缺陷混过去批量流出到客户那里一次客诉加赔款能吃掉这条线半年的利润。狼来了喊多了狼真来了没人信了。验收时拍的合影有多风光三个月后的车间就有多打脸。问题到底出在哪我拆成了五条根因。二、为什么上线就变脸五条根因1. 验收数据不是真实生产数据这是最根本的一条。大多数视觉项目的验收用的是供应商精心准备的测试集两三千张图片缺陷样本是“精选典型”——划痕是清晰的划痕脏污是标准的脏污背景光干净得像影棚。模型在这套题上考了98分可这套题跟真实产线根本不是同一张卷子。真实产线是什么样缺陷是长尾分布九成是那几种常见缺陷剩下的一成里藏着几十种稀奇古怪的料纹、气泡、毛刺、压伤、异物、色差、变形……每种出现的频率都低但加起来量不小。模型没见过它们自然认不出来。更麻烦的是真实缺陷常常是“复合型”的一道划痕上叠着脏污跟训练集里干干净净的单类缺陷完全两码事。用干净的测试集验收等于用驾校题库考完就让人上高速不出事才怪。还有个现实问题良品率越高的产线缺陷样本越难收集。一条良品率99%的线一万只产品里才一百只坏的其中能拍成清晰图像的又少一半。供应商等不起、耗不起只能拿历史库存图、甚至拿其他项目的图来凑数。测试集里的缺陷跟你家产线上的缺陷血缘关系远得很。所以后来我们做项目都会在合同里写明一条供应商必须帮客户建立“缺陷样本库”把产线上真实出现过的缺陷类型持续收集、持续标注。这一条看着不起眼却是模型能不能“见多识广”的命根子——没有自己的样本库模型就永远是别人家的孩子认生。图1上线后误报率随时间走高示意数据样本库的维护也得有人管。我们见过最可惜的一种局面项目方把样本库建起来了可没人持续往里添新样本三个月后库还是老样子产线却已经换了三茬产品——库在魂没了。样本库跟模型一样也得“养”。2. 产线在漂移模型却在刻舟求剑视觉系统最怕的四个字产线漂移。光源会衰减用半年亮度掉两成拍出来的图整体变暗相机有震动机台旁边重型设备一开画面就微微抖产品来料有批次差异这批料表面状态跟那批不一样反光都不一样。这些漂移人眼无所谓人眼会自动适应但模型不会——模型是“记照片”的它记住的是验收时那个光照、那个角度、那批产品下的样子。环境一变它看到的每一张图都成了“没见过的东西”于是开始乱报。今天误报多一点明天少一点像心电图一样起起伏伏没有规律可循。供应商的算法工程师在场时还能隔三差五调一调人一走光源脏了没人擦、位置歪了没人扶性能就一路滑坡滑到没人信它为止。漂移这事还有个特点它是慢变量一天两天看不出来。今天误报多三只明天多五只单看都不起眼可累积起来一两周就能从3%爬到15%。等你肉眼看出不对劲往往已经晚了——要么已经漏了一批要么操作工早就开始无视报警了。所以误报率曲线必须有人每周看看趋势而不是等出事。3. 过杀和漏杀的天平没人称过做视觉检测本质上是在两件事之间做权衡漏杀坏品溜出去可能被客户投诉、退货、索赔过杀好品被误杀要人工复核浪费产能。阈值设得严漏杀少、过杀多阈值放宽反过来。可现实里这个阈值是怎么定的大多数是供应商拍脑袋定的或者按验收时“让指标好看”倒推的。至于漏一只坏品出去到底损失多少钱、误杀一千只好品又损失多少钱没人算过这笔账。结果是阈值定得严上线后被误报淹没定得松漏检爆雷。两头挨打就是没人先算算成本天平。不同行业这笔账的天平还完全不一样。汽车安全件漏一只出去可能就是召回级别的事故过杀成本再高也得保检出率消费电子小配件漏一只赔几毛钱误杀一千只好品的人工复核成本反而更肉疼。阈值怎么定先看你这个行业漏杀的后果有多重再谈模型参数——顺序反了指标再漂亮也是自欺欺人。4. 没有数据闭环模型从验收那天起就“冻住”了模型不是一次性用品它需要持续“喂”新数据才能保持水平。可大多数项目的流程是验收、付款、撤场。检出来的结果有没有回流误报的样本有没有人标注漏检的样本有没有人收集新缺陷有没有定期补充进训练集——统统没有。模型从验收那天起就冻住了而产线每天都在变。一个冻住的模型对抗一条流动的产线输是迟早的事。这不是模型的错是项目模式根本没给模型“活着”的条件。5. 组织断档项目验收了责任人没了验收之前项目有供应商、有项目经理、有资源验收之后供应商撤场项目经理调走系统交给车间——可车间主任的考核指标是产量不是检测准确率。设备有没有点检光源有没有清洁阈值有没有人管误报率有没有人看答案全是“没有”。没有owner的系统就像没人浇水的花再好的苗子也活不过三个月。我见过太多项目死在“验收即终点”这个组织设计上。6. 验收标准的“指标游戏”供应商和客户各取所需这里说句得罪人的大实话验收指标好看有时候是双方“合谋”的结果。供应商要漂亮数字好收款、好做案例客户要漂亮数字好向老板交差、好向集团要预算。测试集是供应商挑的验收环境是供应商布置的光照调得比摄影棚还匀抽测的图片翻来覆去就那几千张——这种验收本质是场表演双方都心知肚明只是没人戳破。戳破的办法只有一个验收权从“供应商出题”变成“产线出题”。用真实节拍、真实产品、真实环境连跑一周谁也没法演戏指标自然就实在了。试运行考核还有个隐藏收益逼着供应商把“售后”提前。以前是验收后撤场、有问题再叫试运行期间供应商天天在现场操作工的问题、误报的规律、环境的干扰全在眼皮底下过了一遍。等正式上线该踩的坑已经踩完大半了。三、稳定运行的三个关键把项目从“验收制”改成“运营制”那三个稳定运行超过半年的项目做对了什么我总结下来就三件事外加一套验收办法的彻底改变。1. 验收方式改掉别抽测两千张先连续跑一周真正靠谱的验收不是供应商拿测试集来考一遍而是把系统接到真实产线上连续跑满一周用真实产品、真实节拍、真实环境来考。指标也换成产线口径综合拦截有效率、误报率随时间的曲线、换型后的表现。连续跑一周漂移、长尾缺陷、操作工的真实使用习惯全都会现出原形。能扛过这一周的上线才敢说心里有底扛不过的趁早暴露比上线后爆炸强一万倍。我们后来做项目验收条款里直接写明试运行一周的指标才算验收指标。2. 人在回路给AI配个“复判工位”别让它独自拿主意纯自动拦截在工业现场就是个伪命题——误报率不可能为零而零容忍的后果就是信任破产。成熟的做法是人机协同AI先粗筛把可疑品送到复判工位由人工做最终判定。AI的判定和人工的判定会持续对账对不上的样本自动回流。这样设计有几个好处人工复核量可控不会淹没质检员每一次人工判定都在给系统“上课”误报样本回流后可以针对性优化操作工从“被机器指挥”变成“给机器当老师”心态完全不一样。信任是养出来的不是压出来的。3. 数据闭环跑起来每周抽检、标注、增量重训图2视觉检测稳定运行的持续闭环示意稳定运行的三个项目无一例外都建了数据闭环而且节奏都差不多每周从产线抽一批图人工标注跟检出结果对账攒够一批就做一次增量训练新模型先在离线数据上验证通过后再灰度上线。整个周期一到两周一轮雷打不动。听起来复杂其实落地很轻现场质检员顺手标注供应商或内部算法工程师每周花半天处理一次。关键是把这个动作制度化写进日常而不是想起来才做。数据闭环跑起来的项目误报率是往下走的不跑的是往上爬的。差别就一个字养。增量重训听着专业落地其实就三件事图片从哪来产线抽检加复判回流、谁来标质检员顺手标给计件工分、多久训一次固定节奏别想起来才做。最难的不是技术是让这三个角色各就各位、雷打不动。供应商如果只肯卖模型、不肯陪你养模型这个项目你就要掂量掂量了——买得起马未必配得起鞍。4. 场景边界管理说清楚“它能干什么不能干什么”很多项目死在不切实际的期待上。模型不是万能的它擅长的是“见过的缺陷类型”在“定义好的光照和产品范围内”稳定工作。超出边界怎么办要设计好退路光照异常自动提示、新型号产品自动转人工、置信度低的样本强制送复判。我们把模型能力边界写成一张表贴在检测工位旁边能检什么、不能检什么、什么情况要找工程师。边界划清楚操作工心里有数不会因为一次漏检就全盘否定系统也不会因为一次误报就拔电源。管理预期跟管理模型同样重要。5. 考核指标换成运营口径综合拦截有效率上线之后别只盯“检出率”这一个数那是给验收看的。运营期要看三个数综合拦截有效率拦下来的里面真缺陷占多少、误报率趋势是往上走还是往下走、人工复核时长有没有把人拖垮。我们后来给每个项目都配了一张“运营健康看板”这三条曲线每周更新一次车间主任和老板都看得懂。指标一变行为就变。以前大家盯着“检出率99%”自我感动误报率飙到三成也没人管现在误报率是明晃晃的考核项现场比谁都上心——光源该擦就擦位置该调就调数据该回流就回流。考核指挥棒往哪指资源就往哪流这话到哪都成立。顺便说一句运营健康看板别只在车间里挂老板办公室也得有一块。老板看得见误报率曲线才知道“AI老喊狼来了”不是工人偷懒的借口而是系统真有问题——不然每次产量一波动背锅的永远是车间。多说一句老板视角视觉项目的ROI别按“省了几个质检员”算要按“少漏了几批、少停了几次线、良率稳没稳住”算。省人的账算出来不大老板容易失望算质量账和产能账数字才够看项目才推得动。四、那个连接器厂后来是怎么救回来的说回开头那个连接器厂。我们接手后没急着调算法先做了三件事把验收方式改成试运行考核、加了两个人工复判工位、把数据闭环的流程搭起来。头两周很难看误报率依然在20%上下晃质检员骂骂咧咧说我们跟上一家一个德行。我们没辩解闷头干了三件事把误报样本一张张捞出来分析发现三成是光源衰减导致的换了光源模组误报立刻掉了一截两成是来料批次差异给模型补了一批新批次的图剩下的按缺陷类型归类能优化的优化优化不了的明确划进“人工复判区”。到第六周误报率从27%降到7%第十周稳定在4.5%左右而缺陷检出率始终保持在97%以上。关键是质检班长的态度变了——他后来主动找我们要求把复判工位的权限做大一点因为“AI现在筛得挺准我们复核轻松多了”。那个被拔掉的电源再也没人拔过。老板后来在行业群里分享经验说了一句我特别认同的话“视觉项目不是验收完就结束是上线那天才开始。你把它当一次性买卖做它就给你一次性结果你把它当长期运营做它才给你长期回报。”八个月后我回访过一次他们又接了两种新型号的产品按流程提前收集了新缺陷样本、做了增量训练上线头两天误报率短暂冲到15%第三天就回落到6%以内。操作工也变了——以前没人碰镜头现在夜班师傅交接班时会顺手擦一下光源因为“擦干净了它能少喊两声我们也能清静点”。系统有没有人养看操作工擦不擦镜头一眼就知道。临走时质检班长跟我说了句话我特别爱听“现在这机器是我半个徒弟它拿不准的会来问我我教它的它也记得住。以前那个是请回来的大爷只会发脾气。”人机协同做到这个份上项目才算真正落了地。五、写在最后机器视觉缺陷检测技术本身早就不是瓶颈瓶颈在项目怎么运作。验收数据不等于生产数据实验室的98%不等于产线上的98%模型要养不能冻系统要有人管不能验收完就扔给车间。如果你正准备上视觉检测项目先别急着比参数、砍价格先问供应商三个问题测试集从哪来试运行怎么考核撤场之后谁来养这三个问题答得踏实的项目大概率能成答得含糊的省下来的钱早晚会在停线和客诉里加倍还回去。说到底视觉检测项目拼的不是算法多先进是数据运营的功夫多扎实。谁把数据闭环跑起来了谁把人的角色摆正了谁把边界管住了谁就能笑到最后。技术会迭代模型会更新但“养系统”这套机制不会过时——它才是项目真正的护城河。最后给个判断标准一个视觉项目健不健康别看PPT看三样东西——误报率曲线是不是平的复判工位是不是有人坐镜头是不是干净的。这三样都正常项目就差不了三样都不正常趁早体检别等它病入膏肓。如果三样都不正常也别急着下结论说“AI不行”——先查数据闭环断没断、边界有没有被突破、责任有没有人扛。大多数“AI不行”的案子查到最后都是“运营不行”。
返回列表