切片让小目标变大,也可能把一个标题切成两半,并在重叠区预测多次。
本文使用2018 年固定 Darknet 提交、YOLOv3 与独立文档数据划分。继续研究检测模型时,先保证数据定义、预处理和评估口径稳定。文中方法和预期不代表已经获得某个准确率或部署成绩,真实结论必须来自记录完整的实验。
1. 从现象推到机制
切片需要记录原图偏移,局部框还原后再统一合并。重叠减少边界截断,却增加重复和计算。跨片抑制要区分类别与相邻真实对象,不能仅因距离接近就合成一枚印章。
图中的四个节点分别表示切片覆盖、局部检测、全局还原、跨片合并。顺着实线检查输入如何变成输出,再沿虚线核对反馈条件。图示表达的是本文讨论的关系,不是实测曲线或现场截图。
2. 最小实现与输入条件
用合成页把目标分别放在中心、边界和重叠区。画出所有切片范围,检查覆盖是否有缺口,再比较合并前后。
1
2
3
4
tile -> origin_x, origin_y, crop_size
local prediction -> add tile origin
all boxes -> class-aware merge in original coordinates
review edge truncation and duplicate suppression
每次只改变一组关键因素,保存配置、权重、数据清单与输出。训练、验证和测试职责分离,难例分析保留匿名原始证据,不通过删除失败样本改善表面指标。
3. 用对照区分原因
下表列出需要主动改变的条件。预期行为来自机制分析,复现时还需记录运行环境和原始输出,不能将预期当作已经测得的结果。
| 改变的条件 | 需要验证的行为 |
|---|---|
| 目标横跨切片边界 | 单片可能只看到部分目标 |
| 重叠区生成两个预测 | 应按全局坐标处理重复 |
| 两枚真实印章相距很近 | 不能错误合成一个对象 |
对照 1:目标横跨切片边界
单片可能只看到部分目标。观察时记录覆盖重叠与框完整性。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
对照 2:重叠区生成两个预测
应按全局坐标处理重复。观察时记录变换后的 IoU 和类别。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
对照 3:两枚真实印章相距很近
不能错误合成一个对象。观察时记录原图人工标注与合并规则。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
4. 适用条件与取舍
切片参数应随目标尺寸与运行预算选择。只提高局部召回而造成大量重复误检,不一定改善最终人工审阅成本。
一次正常运行只覆盖了这组输入。继续扩展前,应把上面的异常对照保留下来,尤其关注“两枚真实印章相距很近”这一分支。后续方案若改变了图中任意一处依赖,原来的判断就要重新验证,不能仅凭界面相似或返回值相同沿用结论。