6.3 后处理评估与部署


6.3 后处理、评估与部署

本节摘要:评估把像素准确率、交并比、Dice、精确召回算在冻结的验证或测试集上,口径与第 4.3 节同一套开关。后处理用开闭运算、去小连通域、填洞,有时再接分水岭切开。部署把预处理、网络、后处理打成一份推理图,监控线上类别占比漂移。原文评估与部署两段在此收口整条动手路径。

先说结论

阅读完本节,你应当能够:

  1. 写一个纯函数:输入预测与真值,输出 mIoU 与 Dice,声明背景与空类
  2. 在验证集上消融后处理核大小,把收益固化进配置
  3. 导出推理所需的全部契约:边长、归一化、阈值、形态学核
  4. 列出上线后要盯的漂移:输入曝光、预测前景占比、延迟

一、评估脚本是法律文本

同一权重,含不含背景、是否跳过空类、是按图平均还是按像素堆再平均,数字都能差一截。把函数写死,训练日志、论文表、客户报告调用它。像素准确率可以算,但签字用 mIoU 或 Dice。实例任务用实例匹配,阈值 0.5 的交并比只是常用约定,写进报告。

抽检叠图不能省:指标对、叠图穿帮,通常是颜色表 id 错或上下翻转只发生在可视化。原文把精确率召回率 F1 也列入。质检按缺陷条数时,先连通域再算条级,核大小会影响条数,所以后处理要先冻结再报条级指标。

def iou_dice(pred, gt, n_class, ignore=None): # pred, gt: 高宽 整数 ious, dices = [], [] for c in range(n_class): if ignore is not None: valid = gt != ignore else: valid = np.ones_like(gt, dtype=bool) p = (pred == c) & valid g = (gt == c) & valid inter = np.logical_and(p, g).sum() union = np.logical_or(p, g).sum() if g.sum() + p.sum() == 0: continue # 空类跳过 ious.append(inter / (union + 1e-6)) dices.append(2 * inter / (p.sum() + g.sum() + 1e-6)) return np.mean(ious), np.mean(dices)

二、后处理是便宜的分

开运算去孤立误检斑,闭运算补器官里的小洞,去掉面积小于阈值的连通域,孔洞填充。核大于最小合法目标就会误伤,第 2.2 节的尺子在这里再用一次。粘连计数任务可在二值预测上跑标记分水岭。条件随机场一类边界精修现在用得少,除非边缘合同极严。

后处理不要进训练循环的反传。它是推理图的一部分,验证指标应报告「裸输出」与「后处理后」两列,避免把形态学功劳算给网络或反过来。阈值:多类用 argmax;二类可用概率阈值,验证集扫一遍,不必死用 0.5。

步骤 作用 风险
概率阈值或 argmax 变硬标签 阈值偏了少数类
开运算 去斑 细裂纹消失
闭运算 补洞 近邻粘连
去小连通域 去碎误检 小真目标被删
分水岭 切开粘连 过度分割

⚠️ 常见坑:训练没后处理,部署开了大核闭运算,现场粘连变严重,还怪量化。
💡 关键直觉:后处理核与归一化均值一样,都是模型文件的兄弟姐妹。

三、导出与监控

导出到通用推理格式时,把预处理算子尽量打进图,或在外面包一层与训练逐字节一致的代码。量化会伤边界,用验证集看 Dice 掉多少再决定。输入尺寸固定还是动态,要和填充策略一起测。Mask R-CNN 这类多输出比语义图更烦,测试解码顺序。

监控:预测前景占比突然变了,常常是相机曝光或镜头脏了,不是权重自发腐烂。延迟超时要报警。定期抽几张人看。漂移严重就回到第 2.4 节加失败模式再训,而不是只在线拧阈值。

原文部署提到把模型应用到实际场景、考虑精度与效率。效率手段包括轻骨干、降边长、量化。边长一降,小目标先死,要与合同里的最小缺陷尺寸对照。

图 推理图三件套

图 推理图三件套

四、路径闭合

从第 1 章任务书到本节导出,中间经过标注契约、传统探针、训练环、一个主模型、调参与后处理。若只做两类医学分割:规范 + U-Net + Dice + 开闭,就能交付。若要实例:规范含框 + Mask R-CNN + 实例指标。若灰度可分:第 3 章可能已经结束项目。不必走完所有网络名字。

回头看导读里的六站:标注、管线、模型、损失、训练、后处理。缺一站都会在上线那天以另一种名字出现。把评估纯函数和配置契约当作这本文集真正的交卷物。

五、回归测试清单

每次改后处理或导出,跑固定的一小撮黄金图:已知面积、已知实例数、已知该不该报警。数字超出公差就失败,禁止发布。黄金图来自抽检争议已裁决的样本,不是训练图随机抽。这比「感觉叠图还行」硬。

量化后 Dice 掉多少,用同一评估纯函数量。掉在可接受范围再上。掉太多就只量化部分层或放弃。边长降低同样走黄金图,看最小缺陷是否还在。合同最小尺寸若是 4 像素,你把图缩到一半再去小域 8,等于政策改了却没开会。

监控字段:输入均值(曝光)、预测前景占比、每类占比、延迟、超时次数。占比漂移先查镜头,再查是否有人改了现场阈值配置却没打版本。权重文件只读,配置可改但审计。原文「应用到实际场景」包含这些运维,不只包含一次导出成功。

问题:多边形导出还是栅格导出?

下游是测量面积、填色叠加,栅格就够。下游是 CAD 或规划器吃轮廓,再转多边形,注意离散化误差。实例任务导出列表,语义导出单张图。接口写进同一契约,避免现场自己 argmax 又用另一套颜色表。

路径闭合检查:任务书的尺子、评估纯函数、线上监控,三者名字一致。不一致时,第 1 章的伤害函数在传递中丢失了。把三份文档放在一起读一遍,比再训一个结构更能防止上线翻车。到此六站走完,停在够用的那一站即可。

六、黄金图公差

固定一小撮已裁决样本,面积、实例数、是否报警超出公差则禁止发布。量化与降边长都走黄金图。最小缺陷尺寸与去小域阈值、输入边长必须对得上。监控输入均值、前景占比、延迟。漂移先查镜头与现场阈值配置版本。栅格还是多边形按下游。任务书尺子、评估函数、线上监控三者同名。三份文档一起读,比再训一个结构更能防止翻车。到此六站闭合,停在够用的一站。

黄金图公差挡住量化与降边长的暗伤。最小缺陷、边长、去小域三数对表。监控均值与占比先查镜头。配置可审计。尺子三处同名。够用就停勾选。多边形离散误差写给 CAD 下游。推理图三兄弟缺一则发布失败。回归清单每次改核都跑,不允许「只改了一点点所以没跑」。

黄金图集只读,公差写在清单。量化与降边长流水线强制跑黄金图。三数字对照表:最小缺陷、边长、去小域,对不上禁止导出。监控面板字段与验收卡同名。配置变更审计日志。够用就停在发布会逐条念。CAD 下游附离散误差说明。三兄弟打包脚本缺一失败。改核必跑回归,CI 可做。现场阈值若允许拧,必须升配置版本并回归黄金图,拧完不记录视为事故。权重只读。前景占比报警先弹采集检查单:曝光、脏镜、空视野,再弹算法。三份文档同名检查做成脚本,字符串不一致构建失败。路径闭合。

反例档案:现场拧阈值不升版本,黄金图没跑,误报潮。审计日志加上后可追溯。第二份:降边长杀死最小缺陷,合同尺寸与去小域没对表。对照表进导出门禁。综合分手打别名,脚本改成从契约生成字段。改核不跑回归的「只改一点」被 CI 拦住。三兄弟缺一打包失败。路径真正闭合。

口令卡:黄金只读、量化必跑、三数字对表、监控同名、配置审计、会上念够用就停、CAD 附误差、打包缺一失败、改核 CI、现场拧阈值升版本并回归、权重只读、占比先查采集、同名脚本构建失败。闭合。

发布前:黄金全过、三数字对表、量化若用则黄金再过、监控字段生成自契约、配置有审计、够用就停勾选、打包三兄弟、改核 CI 绿、现场阈值若可变则版本与黄金绑定、权重只读、同名脚本绿。占比报警先出采集检查单。CAD 附误差。闭合检查失败不得打版本。

交付门禁午

黄金图未全过不准打版本。三数字对不上不准导出。量化未再跑黄金不准上量化。监控字段非契约生成不准上线。现场阈值可拧却无版本绑定不准上线。打包缺预处理或后处理失败。改核 CI 红失败。占比报警未出采集单视为误诊。同名脚本红不准发布。够用就停未勾选不准把新网络当默认。闭合失败不得打版本号。

现场抽问:黄金全过了吗?三数字对上了吗?量化再跑了吗?监控字段是生成的吗?阈值绑定版本了吗?三兄弟齐吗?改核 CI 绿吗?报警先出采集单了吗?同名脚本绿吗?够用就停勾了吗?闭合检查过了吗?

失败演练卯:黄金未过打版本,应拒。三数字不对仍导出,应拒。量化跳过黄金,应拒。监控手打综合分,应拒。拧阈值不升版本,应拒。打包缺后处理,应拒。改核不跑 CI,应拒。报警直接怪算法,应拒。同名脚本红仍发布,应拒。未勾够用就停就把新网当默认,应拒。

打版本脚本串行:黄金、三数字、量化黄金、字段生成、阈值版本、三兄弟、CI、采集单模板、同名、够用就停勾选。任一步红退出码非零。这是闭合的最后一道机器门,人会累,脚本不会忘。

打版本串行十步,红则非零退出。人会忘勾够用就停,脚本不会。采集单模板缺失时占比报警视为误诊。这是闭合门,不是装饰清单。

串行十步日志每步一行。勾选够用就停来自任务书同一字段。采集单模板路径进契约。闭合门红灯时版本号不得递增。

十步每步一行日志便于定位红灯。版本号递增与闭合门绑定,门红则号不动。

后处理核与推理预处理必须和训练时同一份配置。开运算能去噪也能吃掉细目标,核宽消融写进发布说明。导出前用黄金图回归:预处理、网络、后处理三兄弟缺一不可。线上前景占比突变先查相机与曝光,再查权重。评估脚本固定公式,换数据只换配置,不改 Dice 定义。

核心回顾

  • 评估纯函数共用:背景与空类写死
  • 报告重叠指标:准确率仅参考
  • 后处理两列对比:功劳算清楚
  • 核与阈值进配置:与权重复制
  • 监控占比与延迟:先查采集
  • 按任务停在够用的一站:不是所有章都要上产线

到这里,一条能跑的图像分割路径已经闭合。用你的验收卡去抽检第一批线上结果吧。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U