我所了解的机器视觉检测产品应用(9):验收的 99%,量产怎么就成了 95%?

0 评论 186 浏览 0 收藏 18 分钟

验收时99%,量产一个月95%,四个点的差距让双方对簿公堂。这不是设备故障,而是验收口径、过杀成本、环境漂移与合同条款的连环陷阱。本文拆解四个关键窟窿,教你用一张表锁死验收标准,避免扯皮。

上一篇结尾我埋了个雷:验收当天 99%,量产一个月 95%,这官司怎么打?评论区有几位等着看这篇——好,这篇就把这四个点丢在哪,一个一个拆开。

先摆案子。这是我见过最典型的一次验收纠纷,细节做了模糊,情节全是真的。

一家做汽车零部件外观检测的客户,设备验收那天,双方一起跑盲测集:三千张图,历史缺陷库混着当天现场抽检图。结果很漂亮——按客户坚持的点级口径,漏检率 0.8%,折算检出率 99.2%,过杀率 1.5%。全场气氛很好,验收单签字,合影,吃饭。

二十八天后,终端客户来了一张批退单:一批零件流出去,里面混着七件带划伤的。品质部连夜倒查产线一个月的检测数据,按同样的点级口径重算当月漏检率——4.9%,检出率 95.1%。

会议室里,客户把两张打印纸拍在桌上:合同写着 99,你们跑出了 95,四个点,解释一下?设备商也很委屈:设备没坏、模型没动、日志干干净净,是你们当月换了供应商,来料表面跟验收那天根本不是一个东西。

这场官司最有意思的地方:两边都没撒谎,两个数都是真的。它们只是不在同一个世界里算出来的。

这篇就写四个窟窿:分母、账单、环境、合同。窟窿都补上,这官司根本不用打。

一、先钉分母:漏检率是“张”的还是“个”的

第一个窟窿最基础,也最气人:吵了半年,双方可能连“漏检率”的定义都没对齐过。

同一批盲测数据,我用三种口径算给你看。三千张图,里面 320 张缺陷图,一共 460 个缺陷点。

图级口径:一张缺陷图,只要设备报了 NG,这张图就算“检出”——哪怕图上有三个伤,报出来一个也算过关。按这个口径,320 张缺陷图里漏了 4 张,漏检率 1.25%。

点级口径:每个缺陷点独立算数。460 个点漏了 22 个,漏检率 4.8%。

再往下还有位置级:点也报了,但框偏了半个身位,跟真值框的重叠率不到五成——算检出还是算漏?数字还能再变一轮。

同一批图,同一台设备,1.25% 和 4.8%,差将近四倍。你说验收会上吵什么?吵的压根不是设备好坏,是数学题的分母。

客户为什么咬死点级?因为他的世界按“个”计费。一个点流到终端,就是一张客诉单、一次可能的批退、一通要写整改报告的电话。客户不关心那张图上另外两个点检没检出来,他只记得漏掉的那一个。

设备商为什么默认图级?一半是行业惯性,传统检测设备的指标就这么报;另一半,说实话,是数字好看。

我的立场:这不是谁对谁错的问题,是必须提前钉死的问题。而且光钉分母还不够,“检出”本身也要定义——判定框和真值框重叠率(IOU)到多少算检出?50% 还是 30%?设备报了 NG、进人工复判又放行的,算设备检出还是算漏检?复判放行的功劳记谁头上?

复判归属这条,多说一句,它是口径战争里的高地。设备报 NG、人工复判放行,月底对账:产线说这 300 件放行的是好品,证明设备误杀,过杀率要往上修;设备商说复判员看的是缩略图,微小划痕根本看不见,这 300 件里起码一半是真伤,是你们放漏了,这账不能全记我头上。谁有理?看复判流程:复判位有没有显微放大、有没有二次拍照、放行动作谁签字——流程留痕到什么程度,这个架就吵到什么程度。我后来给客户的建议干脆是:复判放行件单独建账,不算过杀也不算检出,当“存疑件”走抽检。数字难看了一点,但没人吵架了。

这些不写进合同,验收会就永远是对辩论会。图一是三种口径的对照,拿去就能用。

二、过杀的账,算在谁头上

第二个窟窿:漏检有指标,过杀没指标——或者写过杀指标,但从没人算过它值多少钱。

先说跷跷板。漏检和过杀是一根绳上的两头:判定阈值调敏感,漏检降、过杀升;阈值放松,反过来。拿真实数说:阈值从 0.62 压到 0.45,漏检率从 0.8% 降到 0.3%,过杀率从 1.5% 涨到 3.8%。道理人人都懂,出事出在:验收只考核一头。

客户的验收逻辑通常很朴素:流出是我的死穴,漏检率往死里压。设备商配合,交付前把灵敏度拉满——验收漂亮通过,皆大欢喜。然后产线接手,发现每天 NG 堆成山,全是要人工复判的好品。

算一笔真账。一条线日产 2 万件,过杀率从 1% 涨到 3%——每天多出 400 件误杀,每件人工复判 30 秒,每天 3.3 个小时的人工。按 22 个工作日算,一个月 70 个工时上下,半个多人头。这还是复判流程顺畅的情况;碰上复判位没编够、老师傅嫌烦随手放行,误杀变误报废,材料账又冒出来了。单件材料成本 40 块的零件,哪怕误报废率只占误杀的十分之一,一个月又是小一万块——这些钱产线出,采购设备的预算部门从来不知道。所以过杀率涨两个点,在总部报表上什么都没有发生,在车间里是真金白银每个月在流。

所以过杀率的本质不是技术指标,是成本条款:这笔复判工时谁出?误报废的材料损失怎么分担?合同写得清清楚楚,设备商调阈值时才会有所顾忌;不写,他就把跷跷板压向你测不到的那一头。

反过来也成立。我见过产线为了保 OEE,私自把阈值放松——漏检率悄悄爬回 3%。设备商月度对账发现异常,产线主管振振有词:线不停,厂里就赚钱。三个月后客诉爆了,锅还是扣设备头上,两边又是一轮扯皮。

一句话:验收指标必须成对出现,单写一个的都是耍流氓。而且阈值本身是验收结果的一部分——验收时的判定参数,要作为“工作点”锁进验收单,谁调谁负责,动了留痕。上一篇发布单里那条“配置 C-87 到 C-88”,管的就是这件事。

三、复现性:99 和 95 之间,隔着四个漂移

第三个窟窿最大:就算口径钉死了、指标成对了,验收当天和量产一个月,环境根本不是同一个环境。四个点,基本漏在这四个地方。

第一个漂移,测试集泄题。验收集怎么来的?设备商提前拿到图、照着调模型,那不叫测试,叫开卷。就算双方都干净,验收集通常出自历史缺陷库——全是“老缺陷”。当月新供应商的来料、新出现的伤型,验收集里一张都没有。考的是旧题,产线天天在出新题。

第二个漂移,环境在变。验收那天:灯是新换的,镜头刚擦过,标定是前一天做的。量产后:光源亮度逐周衰减,灯管一老,光谱都跟着变;镜头慢慢积灰;车间换季,湿度一变,反光整个换风格。设备没坏,算法没改,图变了——喂进去的输入变了,出来的数当然变。

第三个漂移最隐蔽,基率在动。准确率、过杀率这类指标,分母里含着好品占比。来料质量一波动,缺陷浓度变了,算法一行没动,指标自己就动了。拿数说话:日检 2 万件,来料好的月份缺陷浓度 0.5%,坏批次来了浓度 2%。同样是 1% 的漏检率,前一个月流出 1 件,后一个月流出 4 件——漏检率一行没变,客诉翻了四倍。反过来,浓度一降,准确率自动往上飘,谁也没改进算法,报表先好看了。所以只盯一个百分比是危险的,流出缺陷的绝对件数要跟着对账——百分比会说谎,件数不会。

第四个漂移,人的方差。复判定 NG 的尺子在老师傅手里,周一和周五的松紧不一样,换个人更不一样。复判结果再回流进统计报表,人的方差就混进了设备指标。查设备之前,先查复判记录的一致率。

复现性怎么测?我分两层:

一层是确定性——同一批图,同一天跑三遍,结果必须完全一致。做不到的系统(有些 GPU 推理带随机性),差异率要给上限。这层查的是系统稳不稳。跑三遍还不是走过场:我就碰到过一回,同批图两轮结果差了小两个点,查到最后是边缘工位的设备走了降频,推理耗时翻倍、超时降级走了快检模式。指标波动有时候不是算法的病,是系统的病——确定性测试就是干这个的。

另一层是稳定性——同一批封存的盲测图,隔一周、隔一个月重跑,指标偏差给上限,我的经验值是漏检率偏移不超过 0.5 个点。这层查的是“这周六跑出来的数,下个月还能不能复现”。重跑还有个隐藏好处:它逼着双方定期碰数据。环境劣化是渐变的,灯每周暗一点,没人看得出来;月度重跑一对比,趋势图一画,该换灯管提前就换了。指标对账的过程,就是设备保养的哨兵。超了别急着扯皮,先查灯、查镜头、查来料——十有八九是环境先变的。

盲测集本身要当物证管:双方共同封样、存哈希清单、定期抽换新图。它就是这桩官司的证据,证据被单方动过,官司就没法打了。

四、把指标写进合同:一张表,别一句话

四个窟窿都见了,补法就一个:把验收从“一句话”变成“一张表”。

我见过最典型的事故合同,技术协议里就一句:“检测准确率 ≥99%”。没口径、没测试集、没边界条件、没考核窗口。就这一句话,够两个法务团队吃半年。

一张能防身的验收指标表,至少八个字段,图三就是模板:

指标名——漏检率、过杀率、复现偏差,成对出现,一个不能少;

口径定义——分子、分母、检出的判定标准(点级还是图级、IOU 阈值、复判归属),逐字写死;

测试集定义——图从哪来、多少张、缺陷浓度多少、怎么封存、怎么抽换;

测试方法——谁跑、跑几轮、隔几天、单次达标还是连续达标;

目标值——带置信区间,别写裸数字;

边界条件——来料批次范围、节拍速度、光照劣化到什么程度以内指标作数,超了算谁的;

考核窗口——验收是单场考试,还是月度对账、连续 N 天滚动达标;

仲裁条款——分歧样本谁复判、第三方是谁、费用谁出。

这张表没有一行是算法,但每一行都决定算法的数字算不算数。

对照一个正面案例。还是那类零部件客户,第二期项目换了个打法:验收表两页纸,点级口径、IOU 五成、盲测集五千张双方封样(哈希清单各存一份)、月度对账、连续三个月滚动达标才算稳态交付、分歧样本送第三方实验室复判。第二期量产半年,指标月报偏差最大的一次 0.6 个点,双方在月度会上用了二十分钟——前十分钟在核对灯管更换记录,后十分钟在排下月抽换样本。没人吵架,因为没给吵架留缝。

那张表与这份合同的区别,不是算法进步了,是四个窟窿提前堵上了。

这也是我想跟做产品的同行说的:指标定义是商务条款,不是技术参数。算法工程师对“模型好不好”负责,产品经理对“这个数在合同里站不站得住”负责——后者,才是客户敢在验收单上签字的理由。

五、链条补完了,聊聊交付

回头看这个系列:(3)选设备做 POC,(4)把算子做成产品,(5)数据反哺制造端,(6)算法选型算三笔账,(7)标注数据怎么管,(8)模型怎么上线,到这篇指标怎么验收。从买设备到打官司,主链条补完了。

但还有最后一个问题:这套东西——算法、样本库、发布流程、指标对账——到底以什么形态交到客户手里?是封装死的一体机,插电就用、里面碰不得;还是开放的二次开发平台,客户自己往里长本事?两种形态是两种生意,客户买前一种买的是省心,买后一种买的是可能性。下篇写这个取舍。

你如果经历过验收扯皮,或者见过最离谱的“一句话合同”,评论区说说——你们的战争故事,是我下一篇的素材。

(系列前篇:《我所了解的机器视觉检测产品应用(8):模型更新怎么上线?影子跑、灰度切,和那颗回滚按钮》《(7):标注数据怎么管?样本库、版本冻结,和 7:2:1 的门道》)

专栏作家

互联网产品经理Mik,公众号:逆袭产品汪,人人都是产品经理专栏作家。专注于ToB领域产品,包括机器视觉、工业大数据、MES、ERP和物联网等方面。

本文原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 目前还没评论,等你发挥!