增强后的图片方向正确,标签仍留在旧位置,模型就会被错误监督。图像和几何必须同步变换。
本文使用OpenCV 3.4 与合成几何标尺图。图像预处理会改变坐标,模型结果要回到业务使用的原图基准。本文保存每一步尺寸和变换,不凭最终框看起来大致正确就认定映射无误。
1. 从现象推到机制
旋转后的矩形通常不再轴对齐,需要先变换四个角,再按标注约定生成外接框。是否扩大画布会改变平移项,边缘裁剪还会改变可见面积。只旋转中心点和保持宽高不变不够。
图中的四个节点分别表示原始框、共同变换、外接范围、可见检查。顺着实线检查输入如何变成输出,再沿虚线核对反馈条件。图示表达的是本文讨论的关系,不是实测曲线或现场截图。
2. 最小实现与输入条件
用已知角点的矩形验证仿射矩阵,再绘制变换后多边形和外接框。大角度增强是否合理要服从真实输入分布。
1
2
3
4
5
box -> four corner points
apply same affine matrix as image
if expanded canvas -> include translated origin
new axis-aligned box -> min/max transformed corners
clip and review visibility policy
先用已知位置的矩形和标尺做正反向检查,再使用匿名文档。原图、处理图和结果分别保存,重复压缩与插值会影响细节,不能无记录地覆盖源文件。
3. 用对照区分原因
下表列出需要主动改变的条件。预期行为来自机制分析,复现时还需记录运行环境和原始输出,不能将预期当作已经测得的结果。
| 改变的条件 | 需要验证的行为 |
|---|---|
| 只变换中心点 | 框的宽高和范围可能错误 |
| 旋转时扩大画布 | 标签还要包含新增平移 |
| 大部分目标被裁出画面 | 是否保留标签要有统一规则 |
对照 1:只变换中心点
框的宽高和范围可能错误。观察时记录四角实际位置与新外接框。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
对照 2:旋转时扩大画布
标签还要包含新增平移。观察时记录真实图像变换矩阵。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
对照 3:大部分目标被裁出画面
是否保留标签要有统一规则。观察时记录可见比例与标注策略。把这个条件与基准情形分开,有助于判断变化来自哪一层;若得到相反结果,应先核对前提,再修改实现。
4. 适用条件与取舍
外接框会随旋转增加背景区域,可能影响长条标题训练。需要在验证集上检查增强是否真正有益,而不是默认越多越好。
一次正常运行只覆盖了这组输入。继续扩展前,应把上面的异常对照保留下来,尤其关注“大部分目标被裁出画面”这一分支。后续方案若改变了图中任意一处依赖,原来的判断就要重新验证,不能仅凭界面相似或返回值相同沿用结论。