01 · 对照
同一张图,两种画法
三组图都从 H200 跑批目录原样取出:同一张图、同一个 mask、同一个区域索引,只换渲染。每张图右上角是从同一文件裁出的细节放大,方便看边界。绿框是管线的候选框,红线才是这轮要对比的蒙版渲染。
白杯,蓝桌
物体管线 区域 000white mug, center of blue table
2× 细节
2× 细节
看点fill 让「白杯子」在视觉上变成「红杯子」——这正是后面题目里冒出 red 的源头;outline 下它仍然是白的。
图源:runs_100_v2_obj_{fix,outline}/out_region_refine_partafford_10350/accepted_regions/000_*.png
红杯子
物体管线 区域 004mug, red, left side of desk
3× 细节
3× 细节
看点红物体是 fill 的最坏情况:蒙版和物体同色,模型只能看到「一团红」,没有第二层信息可判断。
图源:runs_100_v2_obj_{fix,outline}/out_region_refine_roboafford_76/accepted_regions/004_*.png
笔记本电脑盖
部件管线 part 002laptop lid
3× 细节
3× 细节
看点部件 fill 的覆盖比例更高(65%):金属、反光、logo 一起被洗掉;描边只改写 mask 内 4.9% 的像素,其余原样保留。
图源:runs_part_only_27b_{v2,outline}/out_region_roboafford_57/accepted_parts/overlays/part_002.png
02 · 机制
为什么导出会变多
同一张 overlay,既给「验区」看,也给「验题」看。fill 把它不认识的东西涂成红色,模型就没有颜色和材质可依据。
部件 65%
- 同一个 mask分割结果完全一致
- 整块涂红颜色、材质、高光被覆盖
- 模型看到一团红认不出是白杯还是红瓶
- 判错 → 误拒区域或题目被丢掉
轮廓
- 同一个 mask分割结果完全一致
- 只画边界mask 内 4.9% 像素改写(fill 100%)
- 原色保留白瓷仍是白瓷,金属仍有反光
- 认得出 → 接受区域和题目留下来
误拒变少,导出自然涨。
这是减少假阴性,不是放宽标准:mask 没变、阈值没变、提示词也没变。
区域接受只多 5 个,导出却多 94 行:增量主要发生在「验题」环节——模型认得出图里的东西之后,同一批题目更容易被判为成立。来源:runs_100_v2_obj_*/{entities,spatial,affordances,relations,physics}/summary.json。
单图核验(partafford_10350,同一批 mask 各渲染一次):mask 内被改写的像素 100% → 4.9%,mask 内平均色差 71.7 → 8.4。来源:REPORT_OUTLINE_100.md §2。
03 · 全部指标
100 图,两条管线
下表是这一轮的全部核心数字。物体与部件是两条配置不同的管线,各自只和自己的基线比,不能横向比较。
| 指标 | fill | outline | 变化 |
|---|---|---|---|
| 物体导出export_100_v2_obj_* · dataset.jsonl 行数 | 834 | 928 | +94 · +11.3% |
| 部件导出export_part_only_27b_* · dataset.jsonl 行数 | 77 | 97 | +20 · +26.0% |
| 物体题数runs_100_v2_obj_* · 5 类题的题目总数 | 1486 | 1349 | −137 · −9.2% |
| 物体提「红/高亮」题目命中 \bred\b|highlight|red-tinted|red mask | 4.8% | 3.4% | −1.4pt |
| 部件提「红/高亮」runs_part_only_27b_* · 177 条题 | 1.3% | 2.3% | +1.0pt · 样本小 |
含 end effectoraccepted_parts/parts.json · part_name |
0 | 0 | 持平 |
口径:100 图、2 shard × 6 并发整轮跑完;导出为 dataset.jsonl 的实际行数。物体:R1.5 + GroundingPI + SAM3;部件:27B + SAM3。
提红:对每张图 5 类题的全部题目跑同一正则,按题目条数计数;4.8% → 3.4% 是 −1.4 个百分点。部件侧 177 条里 1 条约等于 0.56pt。
题数下降:物体题数少了 137 条,导出反而多 94 行——增量不是靠多出题堆出来的。
04 · 顺带修复
题目不再把红色当物体颜色
red mask / red-tinted)人工复核
3–5 条→3 条
end effector
0→0
fill 里真实生成的题
Segment the object inside the red mask and green box
Identify the red mask covering the bowl
Segment the red-tinted area on the gray surface surrounding the blue mat.
→ 模型把「蒙版」本身当成了场景里的物体
outline 仍有 3 条,没清零
Segment the brown chip bag with a red mask
→ 剩下的更像个别措辞,而不是系统性地把白物体描述成红的;这轮没有专门清洗。
部件侧 177 条题里,这类泄漏 0 条。
「明确泄漏」是人工复核口径:只数把蒙版本身当作物体来描述的题;自动正则会连「red mask 左边的东西」这类关系型表述一起算进去,所以上表的 4.8% / 3.4% 更高。
05 · 边界
这页没证明什么
三个限制,先说清楚再下结论。
01
部件侧样本太小
「提红」从 1.3% 升到 2.3%,也就是 4 条 / 177 条。177 条里 1 条约 0.56pt,1 ↔ 4 条的差异在抽样噪声内(n=177),不构成退化证据。
02
线宽没调过
描边厚度是 2–3px 按图尺寸缩放(640×480 上是 2px,≥900px 才 3px),这轮没有扫厚度。本页所有图都是这个默认值。
03
只改了渲染
提示词、模型、分割器、阈值、并发都没动,所以是干净的对照。但物体与部件用的不是同一个模型,两组数字不能互相横比。
来源:4 条 / 177 条与 1.3% / 2.3% 见上表;线宽实现见 REPORT_OUTLINE_100.md §1(_overlay_width / _mask_edge),本页未做厚度扫描。
06 · 回滚
一行回到旧画法
outline 已是默认;任何一轮想复现旧结果,加一个参数即可。
python dataengine/run.py ... --overlay-style fill
# 或全局环境变量
export DE_OVERLAY_STYLE=fill
python3 /root/converseg-data/analyze_outline.py \
/root/converseg-data/runs_100_v2_obj_outline \
/root/converseg-data/export_100_v2_obj_outline obj_outline