视觉泛化:换扫描仪后效果为何可能变化

同一模型在一种扫描来源正常,换来源后失误增多,可能是输入分布发生了变化。

edyang · 2019-10-15

同一模型在一种扫描来源正常,换来源后失误增多,可能是输入分布发生了变化。

本文使用2018 年固定 Darknet 提交、YOLOv3 与独立文档数据划分。继续研究检测模型时,先保证数据定义、预处理和评估口径稳定。文中方法和预期不代表已经获得某个准确率或部署成绩,真实结论必须来自记录完整的实验。

1. 从现象推到机制

颜色、锐化、压缩、分辨率和背景都会改变视觉特征。域偏移不能只靠全量平均指标发现,应按来源分组。输入质量检查可以筛出明显异常,但不能用“拒绝所有难图”伪造高准确率。

视觉泛化:换扫描仪后效果为何可能变化的处理、反馈与观察关系

图中的四个节点分别表示输入来源、固定实现、分组评估、适应措施。顺着实线检查输入如何变成输出,再沿虚线核对反馈条件。图示表达的是本文讨论的关系,不是实测曲线或现场截图。

2. 最小实现与输入条件

用合法匿名或合成退化样本建立来源分组,比较错误类别与几何尺寸。保持模型固定,先确认变化来自输入而非部署配置。

1
2
3
4
group by source / resolution / color mode
fixed model and preprocessing
measure per-group errors and rejection rate
inspect representative failures before retraining

每次只改变一组关键因素,保存配置、权重、数据清单与输出。训练、验证和测试职责分离,难例分析保留匿名原始证据,不通过删除失败样本改善表面指标。

3. 用对照区分原因

下表列出需要主动改变的条件。预期行为来自机制分析,复现时还需记录运行环境和原始输出,不能将预期当作已经测得的结果。

改变的条件 需要验证的行为
新来源多为灰度图 颜色依赖方案可能明显退化
部署同时改变预处理 需先排除实现差异
增加质量拒绝规则 应同时报告拒绝比例和任务覆盖

对照 1:新来源多为灰度图

颜色依赖方案可能明显退化。观察时记录按来源拆分的错误。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。

对照 2:部署同时改变预处理

需先排除实现差异。观察时记录完整模型发布组合。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。

对照 3:增加质量拒绝规则

应同时报告拒绝比例和任务覆盖。观察时记录通过样本与全部输入的分母。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。

4. 适用条件与取舍

新来源验证应包含独立原件。用旧图变换能帮助研究,但不完全代表新扫描设备的真实退化。

一次正常运行只覆盖了这组输入。继续扩展前,应把上面的异常对照保留下来,尤其关注“增加质量拒绝规则”这一分支。后续方案若改变了图中任意一处依赖,原来的判断就要重新验证,不能仅凭界面相似或返回值相同沿用结论。

同月延伸

参考资料

  1. YOLOv3 论文
  2. Darknet 历史实现
  3. OpenCV 3.4.0