## 从同类像素中分出两份对象身份 ## 解释、算例与证据 # P39 · 两个同类对象,需要两份身份 同类像素与同一实例是两个概念。实例到类别的映射可多对一,连通块也不可靠地等于对象数。此页提出掩码必须随对象身份分别组织,为区域路线与像素路线的汇合提供具体理由。 图内标签与数值:Lecture 03 课堂图解 P39;同一底图,只改变标注问题;语义:两只都属于“杯子”;实例:#1 与 #2 分开;同色编码类别;不同色编码对象 ID;可见轮廓、杯柄孔洞和书遮挡保留;同类像素正确,还不等于交付了实例身份。 同一底图并排叠加语义和实例 mask,杯柄孔洞和书遮挡保留;颜色分别编码类别和实例 ID。 - 同一底图,只改变标注问题 - 语义:两只都属于“杯子” - 实例:#1 与 #2 分开 - 同色编码类别 - 不同色编码对象 ID - 可见轮廓、杯柄孔洞和书遮挡保留;同类像素正确,还不等于交付了实例身份。同一底图并排叠加语义和实例 mask,杯柄孔洞和书遮挡保留;颜色分别编码类别和实例 ID。 [查看对应图解状态](/#/l3-r2-p39/0)[查看完整图解](/course/figures/l3-r2-p39-0.html) ## 课堂讲述 现在看两只相邻的杯子。即使所有杯子像素都判对了,系统若只交付“杯子”这一类别,也还没有告诉我们每个像素属于哪一个对象。对语义类别来说,这未必是主要错误;对实例任务来说,答案就不够了。 实例分割要保留“这是哪一个对象”的身份。不能只把所有同类像素放进一个桶,也不能只提供外接框。 这让区域路线和像素路线有了自然的汇合点:先用区域组织不同对象,再在每个区域内部预测属于这个实例的像素。我们前面花时间讲区域表示和空间预测,到了这里就不再是两段独立知识。Mask R-CNN 把这两种要求放到了一套结构中。 ### 从实例到类别容易,反过来不唯一 [独立阅读](/course/blocks/instance-identity-map.html) 把像素标为杯子类别,只声明“这里属于杯子集合”。实例标注还声明“这里属于杯一,那里属于杯二”。两只杯子即使同色、接触甚至相互遮挡,实例任务仍需给出两份对象身份。 考虑一行标签 `[1,1,2,2]`,其中 1、2 是两只杯子的实例号。将它们都映射到类别杯子=1,就得到 `[1,1,1,1]`。另一个实例划分 `[1,2,2,2]` 经同样映射也得到同一类别行。因此类别图不能唯一反推出实例边界。 连通域可以在“每个对象互不接触”的特定条件下帮忙计数,但一旦两只杯子相接,一个连通块可含两个对象;反过来同一被遮挡的对象还可能产生不连通的可见部分。对象身份不是连通性规则自动保证的属性。 区域路线给每个候选一份身份,像素路线给精细轮廓。把它们结合,就可以在“这个候选对象”之内预测局部 mask。这是进入 Mask R-CNN 的具体需求,而不是为了再增加一种模型名称。 #### 图示条件与公式约定 原底图两杯相邻但没有相接,因此讲稿开头改成“现在看两只相邻的杯子”。它们若接触时语义同类与实例身份的差异仍成立,此页不假装底图已经接触。 ## 选读 LAB20:沿真实输入核对交叉匹配 用已保存的小算例落实上一页的对应问题,检查成本与数组顺序。 ### LAB20 的两个槽位为何应交叉匹配 [独立阅读](/course/blocks/set-matching-real-inputs.html) 当前 LAB20 的第一项预测框在右侧,类别概率更支持第二类;第二项预测在左侧,更支持第一类。真值数组却按左、右保存。如果不考虑内容,直接让槽位 0 学真值 0,就人为制造了位置和类别冲突。 代码按教学定义 $C_{ij}=-\log p_i(c_j)+2\lVert b_i-g_j\rVert_1+(1-IoU)$ 构造成本,得到约 `[[5.0971,.4509],[.4779,5.6026]]`。对角总代价 10.6997,交叉 .9288,因此最佳分配为槽位 0→真值 1、槽位 1→真值 0。只交换标注或预测数组的排列,最小内容对应仍然不变。 此处的负对数分类项、IoU 与系数是教学选择;官方 DETR matcher 使用其明确的分类、L1、GIoU 成本,不应声称公式逐项一致。匹配找到最低代价也不意味着检测正确:即使两项预测都很差,算法仍会选一个较便宜分配。检测质量仍要用保留数据与定位/类别标准评价。 本册另一小算例把 16 像素目标映到不同 stride 的连续跨度,属于尺度读取,与集合匹配不同。导航中把二者标为两项可单独读的短练习,学生无需为找一句机制解释穿过全部实验。 **出处:**[DETR 官方匹配实现](https://github.com/facebookresearch/detr/blob/main/models/matcher.py) ## 沿这个问题继续 先读本页解释与图,再到 LAB03 改一个坐标或对象。 #### 按问题回查的讲解与短练习(2) **出处:**[Mask R-CNN §3 (2017)](https://arxiv.org/html/1703.06870v3)