本节摘要:全量训练前,清洗脏标、做与掩码同步的几何增强、只对图像做颜色抖动,并用与预训练一致的均值方差标准化。模型选择按任务类型、数据量、尺度、是否要实例来列清单,而不是按论文年份。原文预处理三件套——清洗、增强、标准化——必须写进同一配置,推理照抄。
阅读完本节,你应当能够:
增强会放大错误。一张掩码整体错位,翻转十次变成十张错位。先丢掉或修复:读不进的文件、高宽与图不一致、标签超出类别表、前景像素为零却声称有目标、标注员标记为作废。原文「数据清洗」包括去噪与去模糊图——模糊到人眼都看不清边界的,监督没有定义,留着只污染 Dice。
标准化:若用在 ImageNet 上预训练的骨干,就用那套通道均值方差;若从头训医学单通道,用训练集自己的均值方差,验证测试同一套。两套混用等于换数据。不要每张图单独减自己的均值,除非算法明确要局部对比归一。
# 概念:几何同一组随机数;颜色只走图像 img, mask = pair img, mask = flip_h(img, mask, p=0.5) img, mask = random_scale_crop(img, mask, scale=(0.8, 1.2)) img = color_jitter(img, p=0.5) img = normalize(img, mean, std)
自然图像:翻转、小角度旋转、尺度、颜色抖动。医学:翻转有时破坏解剖左右约定,要写进规范允许与否;旋转角度小;弹性形变能模拟软组织,幅度过大会把器官扭成不可能。工业固定机位:少翻转,多模拟曝光与灰尘。实例任务的裁切要保证框还在画面内,否则变成截断样本——可以要,但要在规范里当正样本定义清楚。
空裁:随机裁切完全没有前景时,小目标任务应重采样。原文增强列表里的旋转缩放平移,全部继承第 2.3 节的成对原则。测试时的多尺度翻转平均是推理技巧,单独开关,不要在验证对比实验里默默打开。
| 条件 | 更合适的模型 | 原因 |
|---|---|---|
| 二类、样本少、要边 | U-Net | 跳跃细节、参数相对可控 |
| 类多、尺度乱、图大 | DeepLab 式头 | ASPP 多尺度 |
| 要计数、遮挡 | Mask R-CNN | 框切开身份 |
| 只要铺路、天空 | 语义 U-Net 或 DeepLab | 不必实例头 |
| 灰度可分、规则工位 | 传统方法加形态学 | 更稳更便宜 |
⚠️ 常见坑:验证集也做随机颜色抖动,两次评估不可比,还以为模型抖。
💡 关键直觉:增强是在复制采集扰动。复制不了的(全新缺陷形态)只能靠采集,不能靠把图扭断。
原文给了模型选择原则与流程:问题类型、数据量、资源、精度速度。落到本教程:先看第 3 章基线是否已达合同;已达就别上深度。未达看任务类型。再看显存与延迟。最后才看「团队熟不熟某种结构」——熟可以加快,但不能推翻前几条。
轻量骨干换重骨干是同一家族内的旋钮,比换家族便宜。先定家族再定骨干。预训练是否同域:自然图像预训练对工业纹理帮助有限,但仍可能比随机初始化好,做一次对照即可,不要信仰。

增强与选型冻结后,超参搜索才有意义。一边改增强一边改学习率,你无法归因。把增强强度当成一个版本号,日志里记下。原文标准化与模型选择流程到此结束,训练策略交给 6.2。
增强强度、是否翻转解剖、空裁策略、均值方差来源,打成数据管线版本,例如 D3。模型家族加骨干打成 M2。两者不要混成一个「实验 17」无法解释的编号。日志里 D 与 M 分开,才能回答「这次掉点是因为我把弹性形变开大了还是换了头」。
清洗规则自动化:尺寸断言失败进隔离目录,不进训练。人工再看隔离目录,修复或删除。不要写一个「尽力读取」把坏对塞进批次。标准化用训练集统计时,统计过程本身不要包含验证图,否则轻微泄漏。ImageNet 均值是固定常数,与自有统计二选一写死。
选型清单走完仍犹豫时,用第 3 章基线卡一个下限:深度模型验证 Dice 必须超过基线一个你事先写下的差额,否则回退传统方案。这个差额防止「上了深度学习」成为不可逆的组织决策。
会。染色本身是信号。大幅度色相抖动等于换染色剂。医学上更常用轻度亮度对比,或专门的染色归一,而不是自然图像那套饱和度乱拧。工业固定光源也可以少抖色,多抖曝光与灰尘。
测试增强(多翻转平均)单独开关。开了会变慢、分数微涨,和训练增强不是一回事。对比实验默认关,发布前再决定是否开。配置契约把测试增强也写进去,现场才能复现。
增强与清洗打数据版本 D,模型家族打 M,日志分开。同时改两者无法归因。清洗失败进隔离目录,禁止尽力读取。自有均值不要用验证图统计。深度必须超过第 3 章基线一个事先写下的差额,否则回退传统方案,防止深度学习成为不可逆组织决策。医学少抖色相,工业少抖色多抖曝光。测试增强单独开关,对比实验默认关。契约含测试增强字段,现场才能复现。
D 与 M 分记。隔离目录不清不训。自有均值不含验证。差额事先写。医学克制色相。测试增强默认关。契约含该字段。深度未超基线差额则回退传统,并在评审纪要留下签名,防止下周有人「再试一个骨干」。空裁与解剖翻转许可写在 D 版本说明,换人能读懂为何有的实验不能水平翻转。
实验目录强制 D 与 M 两个文件夹层级。隔离目录非空且超一周未清,禁止新实验。均值统计脚本排除验证清单。差额数字写在任务书,深度未超过则发布类型只能是传统。色相抖动幅度医学上限低于自然图像。测试增强键默认 false。空裁与翻转许可写在 D 说明。签名回退传统的纪要进仓库。换骨干不改 D 版本,归因才清晰。清洗规则变更必须升 D,即使「只多了一条空掩码检查」。配置评审看三兄弟契约是否已预留后处理核字段,不要等 6.3 才想起核也是模型。
反例档案:D 与 M 同一层文件夹,归因时说不清。强制两层目录后周报能写「只换了 M」。第二份:深度未超差额仍发布,现场不如阈值。纪要签名回退传统。色相抖动把染色剂抖没,医学上限写入 D。隔离超一周未清禁止新实验,脏数据不再混入。
口令卡:D/M 两层目录、隔离周清、均值排除验证、差额在任务书、医学色相上限、测试增强默认假、许可写 D 说明、回退签名、换骨干不升 D、清洗升 D、核字段预留。未超差额只发传统。
发布前:目录两层、隔离已清、均值脚本排除验证、差额数字、色相上限、测试增强假、D 说明含许可、清洗变更已升 D、核字段已预留。未超差额只能发传统且有签名。换骨干不升 D。新实验在隔离超期时拒绝创建。这是选型节的门禁,不是附录。
目录不是 D 与 M 两层不准开实验。隔离超期不准开实验。均值统计含验证盘不准开实验。未超差额发深度必须有变更合同。色相超医学上限不准。测试增强默认必须为假。清洗变更未升 D 不准。核字段未预留不准进入 6.3。回退传统无签名不准。换骨干却升了 D 视为归因污染。
现场抽问:目录是两层吗?隔离清了吗?均值含验证了吗?差额数字多少?色相上限多少?测试增强默认假吗?清洗升 D 了吗?核字段预留了吗?回退有签名吗?换骨干有没有误升 D?未超差额还在发深度吗?
失败演练丑:单层目录开实验,应拒。隔离超期开实验,应拒。均值吃了验证,应拒。未超差额发深度无合同,应拒。色相打满,应拒。测试增强默认真,应拒。清洗改了不升 D,应拒。核字段没有就进部署,应拒。换骨干误升 D,应拒。回退无签名,应拒。
创建实验前的校验清单十条与失败演练丑一一对应,脚本化。未超差额发深度必须带合同变更号。核字段预留检查放在进入后处理节之前。误升 D 用目录结构测试抓住。
创建实验脚本读取十条校验。合同变更号缺失时深度发布类型非法。核字段预留失败则后处理节入口关闭。目录结构测试防止误升 D。隔离超期则创建函数抛错。
十条校验失败要给出键名,方便改配置而不是改代码。合同变更号格式检查。后处理入口检查核字段。目录测试单独成文件。隔离超期抛错信息含清理截止日期。
失败信息必须含键名。变更号正则校验。核字段检查发生在后处理入口。目录测试失败指出是 D 还是 M 升错。抛错含清理截止日期,避免隔离目录无限期堆着。截止日期过了仍堆着,创建实验继续抛错直到清空。核字段缺失时后处理入口关闭,不要等到导出那天。导出当天才发现核字段缺失,视为发布事故。创建实验阶段就必须拦住。拦住之后给出键名,改配置重试,不要改代码绕过。
增强只允许改变外观、不允许改变类别。弹性形变若把器官拓扑撕破,验证 Dice 会骗人。模型选型按验收卡的尺度与实例需求,不按论文年份。创建实验时核字段——数据版本、损失名、输入边长、后处理开关——缺一则作业创建失败,避免周报出现无法复现的曲线。
下一节在冻结的数据与模型家族上调学习率、批次、冻结策略,并按值班手册排错。