## 同一杯子换了区域,局部目标也要变 ## 解释、算例与证据 # P43 · 同一只杯子,换一个区域就换一份局部目标 同一个对象在两个 RoI 中的局部位置不同,因此训练 target 必须与区域坐标同步。这里连接实际 mask 对应与原论文的 RoIAlign 实证;接下来固定 F 的问卷反例改变了实验条件,不否定这个正面结果。 图内标签与数值:Lecture 03 课堂图解 P43;同一只杯子,两份 RoI;RoI A:更紧;局部目标占比更大;RoI B:更宽;轮廓更小,位置也改变;同一可见轮廓映射到不同局部坐标;区域范围、采样与 mask 目标必须一致。 同一红杯两个精确坐标 RoI,映射到相同大小的局部 mask 网格后呈现不同占比与位置。 - 同一只杯子,两份 RoI - RoI A:更紧 - 局部目标占比更大 - RoI B:更宽 - 轮廓更小,位置也改变 - 同一可见轮廓映射到不同局部坐标;区域范围、采样与 mask 目标必须一致。同一红杯两个精确坐标 RoI,映射到相同大小的局部 mask 网格后呈现不同占比与位置。 [查看对应图解状态](/#/l3-r2-p43/0)[查看完整图解](/course/figures/l3-r2-p43-0.html) ## 课堂讲述 区域掩码是在局部坐标里预测的。同一个对象,区域取大一些或偏一些,映射到局部网格之后,目标轮廓的位置和比例也会变化。 所以区域、采样和掩码目标必须对得上。不能把一份 mask 贴在另一份不相符的区域上,然后期待网络从错误监督中学出准确边界。 这也是为什么原论文会专门比较不同的区域提取方式:掩码任务对空间对应提出了更强的要求。对我们自己的问题,关键启发是沿信息流找错误发生在哪一段,不是边界一差就直接换更大的骨干。现在再问一个更根本的问题:如果表示本身已经把两种输入混成相同数值呢? ### 同一只杯子换了 RoI,局部标签也要跟着换 [独立阅读](/course/blocks/local-mask-coordinate-target.html) 原图位置 $(x,y)$ 在框 $b=(x_0,y_0,w,h)$ 内,可写成相对位置 $((x-x_0)/w,(y-y_0)/h)$。杯子本身不动,框变宽后,杯子占局部窗口的比例会变小;框向右偏,杯子在局部窗口中会向左移动。 因此局部 mask 不只取决于对象轮廓,还取决于当前 RoI。训练时须将匹配实例的真值 mask 按同一框裁取并映射到目标网格;推理时再把局部预测映回该框的原图位置。若错把杯一的局部标签贴到杯二框上,网络收到的监督关系已经错了,增加参数不能补救这个对应错误。 本页显示同一杯子的两个区域,帮助区分“图像里的对象坐标”与“区域里的归一化坐标”。LAB03 的局部窗口是教学裁剪,可检查框的身份;它没有对预训练特征真正调用二维 RoIAlign。 这也是原论文需要对齐消融的理由:实例 mask 对空间对应提出更严格要求。正面实验说明正确读取有实用收益;它与 P44 的均值碰撞不矛盾,因为两个实验固定的条件不同。 #### 图示条件与公式约定 统一使用原桌面红杯,题目随之从“椅子”改为“杯子”。RoI A=(177,238,390,351),RoI B=(135,210,510,420),均为 xywh。对同一可见轮廓作不同局部坐标投影,没有更改底图或补画遮挡后轮廓。 #### 这条线索的展开与后续阅读 - [RoIAlign 修复读取错位,不修复表示丢失|怎样检查这项解释](/supplement.html?return=l3-r2-p43/0#/l3-roi-align-chain-evidence/0) 本页说明 ## 在同一设置下比较 RoIPool、RoIWarp 与 RoIAlign 计算说明组件怎样工作;论文同条件对照再检验它是否改变任务表现。 ### 原论文的对照:对齐改善了哪些指标 [独立阅读](/course/blocks/roi-align-paper-evidence.html) Mask R-CNN v3 的 Table 2 使用 COCO `trainval35k` 训练、`minival` 测试;表中未另说明时报告 mask AP。以下固定 ResNet-50-C4、stride 16,并选同为 max 聚合的行: | 区域读取 | 是否保留对齐 | 是否双线性 | mask AP | mask AP75 | | --- | --- | --- | --- | --- | | RoIPool | 否 | 否 | 26.9 | 26.4 | | RoIWarp | 否 | 是 | 27.2 | 27.1 | | RoIAlign | 是 | 是 | 30.2 | 31.8 | RoIAlign 相比 RoIPool 的 AP 增加 3.3 点,AP75 增加 5.4 点。RoIWarp 也插值却没有同样改善,支持“保持坐标对应”这一机制判断。平均聚合的 RoIAlign 行是 AP30.3/AP75 31.5,引用时不能把不同聚合行混在一个对照里。Table 2(d) 换成 C5、stride32,mask AP 从 23.6 到 30.9;这是另一组设置。 这些是训练完整模型的论文结果,不是本课程重跑。它们说明读取位置值得修复,尤其严格定位受益;P44 则把输入 F 固定成完全相同,讨论任何确定性读出都无法创造差别。方法有效与构造例中的信息限制,可以同时成立。 接着读[为什么相同 F 仍无法恢复:表示碰撞的推导](/course/blocks/representation-collision-proof.html),再到 [LAB03 · 空间信息:表示、采样与掩码](/course/notebooks/49a2c030eafa4e1db6fc4f1a08c3810a.html),用一维读数和差分通道改变条件。 **出处:**[Mask R-CNN v3 §3–4、Table 2](https://arxiv.org/html/1703.06870v3) ## 把对齐收益与信息限制放回各自条件 这段模拟追问帮助核对两类实验的固定条件,不作为已发生课堂对话。 ### 备课推演:对齐有用,为什么问卷里又不能恢复? [独立阅读](/course/blocks/roi-information-dialogue.html) 以下是备课用的模拟追问,不是已发生的课堂对话或学习效果记录。 **学生:** 论文说 RoIAlign 更准确,这里却说换采样没用,是不是自相矛盾? **教师:** 先把两个输入条件指出来。论文比较不同区域读取方式训练的模型,特征里有可以利用的空间线索;正确坐标让它读得更好。现在图上甲乙都被我们规定为同一个 .5,框也相同,读取器没有得到任何左右差别。它不是读取错了地方,而是没有不同内容可读。 **学生:** 那我先把 .5 放大成很多像素呢? **教师:** 指着甲乙放大的第一行看,它们是不是还一样?增加输出位置没有改变函数的输入。再看下一页,我们增加左右差通道,甲是 +1、乙是 −1。这次确实提供了新信息,所以同一个读出可以给出不同答案。 **学生:** 实际分割不好,我怎么知道是哪种情况? **教师:** 先检查标注与坐标能否对上,再固定模型做采样对照;若疑似特征不区分,可以尝试接入较细层,或设计有针对性的 probe。一次失败可能有多处原因,不能从一张模糊 mask 直接断言。 ## 沿这个问题继续 先读本页解释与图,再到 LAB03 改一个坐标或对象。 #### 按问题回查的讲解与短练习(1) **出处:**[Mask R-CNN §3 (2017)](https://arxiv.org/html/1703.06870v3)