Загружаем каталог…
Загружаем каталог…
深度学习检测项目做砸,往往不是算法问题,而是数据管理失控。本文从样本库建设、训练集版本冻结、7:2:1 切分门道到标注降门槛,拆解如何把数据资产管成流水线,让质检员也能上手标注,避免项目上线六个月后死于样本库烂掉。 前面《检测数据反哺制造端》那篇下面,有读者留言:训练集 7:2:1,为什么是这三个数,各干什么用。这条留言我盯着看了半天——问对地方了。深度学习检测项目做砸,砸在算法上的少,砸在数据怎么管上的多。这一篇就把上一篇埋的线头抽出来展开:样本库怎么建、训练集版本怎么冻结、7:2:1 怎么切、客户自己标注的门槛怎么降到质检员能上手。 先说一个我亲眼见过的样本库。 去年去一家客户做年度回访。项目跑了八个月,模型效果开始往下掉,客户问还能不能救。我请他们把样本库给我看看。设备科的小伙子打开共享盘:一个叫“检测图片”的文件夹,里面套着十几个子文件夹——划痕、划痕-新、划痕-最终版、划痕-最终版2、新建文件夹(3)、待整理。他挠着头说,每次换型就新建一个,后来就乱了。 两万七千张图。没有命名规范,没有时间戳以外的任何信息;哪些图训练用过、哪版模型吃了哪些图,没人说得清。最要命的是“划痕-最终版2”里有三分之一跟“划痕”是同一批图,复制出来改了个名。 这个库撑不起任何一次像样的迭代。我没跟客户客气:你们不是缺数据,是把数据资产管成了文件夹。深度学习项目上线六个月后死掉的,一半死于上一篇讲的模型漂移,另一半死于样本库烂掉。漂移有人写文章,烂库没什么人写。这篇写它。 一、样本库不是文件夹,是一条入库流水线 产品上的第一刀,是把“存图”改成“入库”。 区别不在叫法,在动作。存图,是把文件扔进文件夹,从哪来、谁放的、什么条件下拍的,全靠人缘;入库,是每张图过一遍流水线,带着元数据落库。而且入库口子只有一个——检测设备、复判工位、手动上传,殊途同归走同一道门。口子一多,“划痕-最终版2”就会自己长出来。 流水线第一段:自动带标签。时间戳、产线工位、相机序列号、光源批次、产品型号、当时的检测配方版本、设备判定结果和置信度、人工复判结论。这些字段不需要任何人动手,图进来的那一刻系统自己知道。反哺那篇讲过换灯管的教训——光源批次一换,图像亮度分布跟着变,模型学到的不是“什么叫划痕”,是“什么亮度算异常”。防它不靠人的记性,靠库的记性:环境条件写成元数据,日后组训练集才有得挑。 第二段:去重。同一根型材连拍三张、同一个工件正反面、还有“复制一份改个名”,都算近重复。近重复不清,某一茬数据虚胖,训练权重被无声放大,你还以为样本量够了。工程上感知哈希先粗筛,机器拿不准的才排队等人扫一眼。 第三段:分级存储。算笔账:一张 500 万像素检测原图两三个 MB,一天四百张复判图,一个月就是三四十 GB,全量原图保一年,TB 级就去了。产品决策点在这:保留策略做成可配置——确认缺陷图全量长期保,过杀复判图按类型抽样保,OK 图默认七天滚动清。别替客户拍板,也别不给出路。 元数据字段本身分两档。时间戳、工位、判定结果是硬字段,系统内置;模穴号、料批号、镀膜批次这类行业字段做成可配置——注塑件要模穴,3C 玻璃要批次,你猜不完,让字段自己长在客户的库里。 还有个容易被忽略的体验问题:样本库的第一用户体验是查,不是存。按“七月、三号相机、脏污类、置信度 80 到 90”三个条件,三秒出结果,工程师才愿意用它;查一次等半分钟,人家转头就去翻文件夹,流水线再对也白搭。 二、版本冻结:训练集要对得上账 第二个产品动作:训练集上版本。 很多团队的做法是训练前“从库里挑一批图”,挑完即散。下次迭代再挑,两次挑的不一样,效果就没法比——模型这回好了,是数据变好了还是参数调对了?说不清。说不清,迭代就退化成抽签。 我的做法:训练集定义成一个带版本号的清单。v2.1 = 筛选条件(哪些时段、哪些类型、各类多少张)加样本哈希列表。清单生成那天就冻结,只读。图可以搬家、可以换存储,清单不动。这一版清单喂出的模型、它的离线评估结果,都挂在 v2.1 名下。模型版本、数据版本、评估结果,三张表对得上账。 这套东西平时像仪式感,两个时刻救命。 一个是质量体系审核。审核老师问:这台设备上跑的判定模型,哪个版本、用什么数据训练的、验收记录在哪。有版本链,五分钟调齐;没有,现场翻共享盘,翻到哪算哪。 一个是客诉追溯。客户端流出去一批可疑品,要回头看:出事那周模型是什么版本、训练数据覆盖哪些批次。要是那周恰好迭代过,你还答得上来“新版比旧版多了哪三千张图”吗?答不上来,锅就是你的。 说穿了,这就是软件工程管代码的那套版本控制,挪过来管数据。工程师觉得天经地义,客户往往耳目一新——这个落差,就是产品机会。 三、7:2:1 的门道:按什么切,比切多少重要 回那条留言。 7:2:1,训练七成、验证两成、测试一成。三个集合三个用途:训练集是课本,模型从它学;验证集是作业,调参的时候反复看;测试集是期末考,进了考场才许翻出来。混着用,等于考完试再复习。 为什么偏偏是 7:2:1?实话实说,经验值,不是定律。几千张往上,7:2:1 挺稳;小项目几百张,我宁可 8:1:1,甚至交叉验证——测试集太薄,一次考试说明不了什么。类别不均衡时(罕见缺陷几十张、脏污几千张是常态),要按类别分层切,保证每个类在三个集合里都有人,别让稀有类在测试集里一个不剩。 但真正翻车的多发点不是比例,是切分单位。 新手做法:全部图扔进池子,随机抽一成当测试集。看着公平,其实在作弊。检测图彼此不独立——同一根型材连拍三张长得几乎一样,同批料、同时段的图高度相似。随机切,近亲被拆进两个集合,模型考试碰上“见过的人换件衣服”,测试集 98%,上产线 90% 都悬。这叫数据泄漏,检测行业的重灾区。 防它就一条:切分单位往上提。按工件切、按批次切、按时段切,同一工件的图要么全在训练集、要么全在测试集,不许跨。再稳一手,时间后移:训练用一到六月的数据,测试用七月的。产线真实的考法,就是“拿过去的模型,考未来的题”。 反哺那篇说过“测试集必须是模型没见过的新时段数据”,展开就是这两句:分组防近亲,后移防作弊。 再补一条纪律:测试集别反复用。每轮迭代都拿同一份测试集考,调参的人其实是在对着答案改卷子,改到第十版,测试集也成了练习册。评估结果挂版本,等于给自己留体检记录——哪怕你明知在污染,至少污染得有数。 四、标注降门槛:让质检员上手,别等工程师 库和账讲完,讲人。上一篇算过这笔账:框缺陷位置,每类 500 张起步。谁来标? 最合适的人不是算法工程师,是客户的质检员。他们认得缺陷,判定口径跟质量体系一致,人就在产线上。卡脖子的是工具:传统标注界面是给算法工程师设计的,类别名叫“线性纹理缺陷”,界面上二十个按钮,画个框还要调锚点——质检员打开看一眼就关了。 我们做标注模块,产品原则一句话:把“标注”翻译成“复判”。质检员天天干的活就是复判:看图、判 OK/NG、选缺陷类型。界面顺着这个动作长,四个动作: 免标注优先。最好的标注是没人标的标注。设备判 NG、人工复判放行或确认,这个动作本身就在产标签——反哺那篇的训练集回收,源头在这。产品要做的只是让复判记录自动落库,别让这条免费的河白流。 预标注。模型先标一遍,人只改错。从“画框”变成“挪框、删框”,效率差三到五倍。更要紧的是角色变了:质检员不再是生产标签的,是审核标签的。审核的心理负担小,才坚持得下去。 低置信度优先。待标队列别按时间排,按模型的没把握程度排,最虚的图排最前面,标三百张顶一千张——上篇提过,出处在这。对产品的真实要求,是标注界面和模型服务之间有一条置信度通道。这不是算法功能,是数据流设计。 两步走。新手先干 OK/NG 大判,一张一两秒;熟了再放开细类和边界框。界面分模式:复判模式就三个大按钮,标注模式才展开细类。角色也分层:质检员大判,老师傅细分,主管仲裁,算法工程师只管训练、不碰标注——权限跟着角色走。 兜底是标注质量。主管随机抽 5% 复核;两个人背对背标同一批,对不上的进仲裁队列,仲裁结论回写进规范;每类缺陷的标注规范里嵌样例图,边界争议看图说话,不靠悟。效率要能量出来:张每人时、预标注修改率、双人一致率,三个数上看板,标注团队的管理从“感觉”落到数字。 五、这一套东西,是检测软件的第二形态 回头看:入库流水线、版本冻结、切分纪律、标注工位——没有一个像素长在“检测”上。检测软件的界面是相机、光源、算子、判定;这套的界面是样本、版本、队列、看板。但它们决定同一件事:这套系统三年后还准不准。 上一篇第三笔账问“客户接不接得住”,接住的办法就是这一篇。有这套数据底座,托管服务是远程看几个看板、按期出迭代;没有,托管服务是每月派人去客户机房翻文件夹——成本差几倍,报价单上看不出差别。不少同行把深度学习做成赔本买卖,根子在这。 下一篇讲这条链的最后一环:模型训好了,怎么上产线。新版本直接推过去,万一比旧的差,停线算谁的?灰度、AB、回滚,检测模型的发布流程怎么做,下篇展开。你如果正在建样本库,卡在哪一步,评论区说说,我给你参谋参谋。 (系列前篇:《我所了解的机器视觉检测产品应用(5):检测数据反哺制造端,从判级工具到数据资产》《(6):深度学习还是传统算法?先别比准确率,算三笔账》) 专栏作家 互联网产品经理Mik,公众号:逆袭产品汪,人人都是产品经理专栏作家。专注于ToB领域产品,包括机器视觉、工业大数据、MES、ERP和物联网等方面。 本文原创发布于人人都是产品经理,未经许可,禁止转载 题图来自 Unsplash,基于 CC0 协议 该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
我所了解的机器视觉检测产品应用(7):标注数据怎么管?样本库、版本冻结,和 7:2:1 的门道. 深度学习检测项目做砸,往往不是算法问题,而是数据管理失控。本文从样本库建设、训练集版本冻结、7:2:1 切分门道到标注降门槛,拆解如何把数据资产管成流水线,让质检员也能上手标注,避免项目上线六个月后死于样本库烂掉。 前面《检测数据反哺制造端》那篇下面,有读者留言:训练集 7:2:1,为什么是这三个数,各干什么用。这条留言我盯着看了半天——问对地方了。深度学习检测项目做砸,砸在算法上的少,砸在数据怎么管上的多。这一篇就把上一篇埋的线头抽出来展开:样本库怎么建、训练集版本怎么冻结、7:2:1 怎么切、客户自己标注的门槛怎么降到质检员能上手。 先说一个我亲眼见过的样本库。…
Открыть источник