35 除以 16 之后,为什么不应急着取整
课堂上下文:从哪个问题来
先固定简单坐标约定 x/stride,再看 35→2.1875→取整 2 所造成的位置变化。真实库的像素中心与边界设置必须另核对;本页的三个像素误差是指定算例,不是所有实现的固定偏差。
本页采用教学约定 (u=x/s),不额外加入像素中心偏移。原图 x=35、特征步长 s=16,得到 u=2.1875。若立即取整为 2,读到的位置就相当于原图 x=32;对分类可能仍包含相似内容,但细杯柄边缘已偏了三个像素。
这不表示所有实际库都直接使用 x/s。具体实现还可能约定像素中心、半像素偏移、对齐端点及边界外采样。对照库输出时必须先统一这些约定,不能把差异都归结为数值误差。课堂算例选择简单坐标,是为了单独看清连续位置与量化的差别。
RoI 提取不只涉及框起点,还要把框划成固定数量 bins,并在每个 bin 中选择采样位置。若框边界或 bin 边界被取整,细小移动可能完全不改变读数,跨过阈值又会突然跳变。保留连续几何,再通过邻域插值得值,便能把这些连续变化传到区域读出。
到 P42 我们真正算一个点;到 P43 再把点值放回局部二维目标。一次插值算对,是理解组件,不等于已经完成整套实例分割。
x=35 对应连续位置 2.1875;取整改变了原图上的对应位置。 查看对应图解状态
- 约定:原图 x ÷ 16 → 特征坐标
- 原图 x
- 0
- 16
- 32
- 48
- 64
- 35
- 连续位置
- 35/16 = 2.1875
- 32
- 取整后
- 2 × 16 = 32
- 读的位置变了 3 个原图像素
- 坐标示意,不模拟各框架的半像素约定;RoIAlign 避免相关坐标量化。