SAMPro3D: Locating SAM Prompts in 3D for Zero-Shot Scene Segmentation
方法流程
目标是通过使用单个prompt对齐相同 3D 对象在不同帧中的相应 2D 分割的一致性。
SAM3D方法分配的特定于帧的pixel prompt缺乏跨帧对齐,从而导致跨帧的同一 3D object的 2D mask出现严重不一致。(a)
最初在 3D 场景的 2D 帧上生成的prompt无法传播到覆盖其他帧中新出现的object,从而导致整个场景的分割不完整(c)(prompt时采用regular grid prompt,视角变化的话,prompt可能会消失)
根据 SAM prompt在输入场景中定位 3D 点,然后将这些 3D prompt投影到 2D 帧上以获得pixel prompt;通过这种方式,3D 点充当nature prompt,以对齐从该 3D 点跨不同帧投影的pixel prompt,从而使同一 3D 对象的pixel prompt及其 SAM prediction mask在帧之间表现出一致性。
(缺点?投影到的prompt可能不是最合适的)
Overview:
- 3D Prompt Proposal
- 3D prompt initialization -> 用FPS对点云进行采样,获得初始的3D Prompt
- 3D-2D projection -> 用相机的内外参将3D点投影到2D上,并确保像素x prompt只有在对应的3D点p在2D中可见才有效
- SAM segmentation on image frames -> 不同帧的pixel prompt对齐到相同的3D prompt,之后对3D prompt进行过滤和巩固
- 2D-Guided Prompt Filter
c->有效性,3D prompt在每个帧上有效的数量;
s->用SAM在每个2D图上的结果,过滤掉低置信度和较大重叠的mask后,pixel prompt依然存在的数量;
计算θ=s/c,大于阈值则保留该3D prompt - Prompt consolidation
2D帧覆盖范围有限,只能分割一部分;如图(a)所示,蓝色和绿色点都只能分割地板的一部分。
识别特定的重叠区域,将不同的3D prompt合并成一个伪prompt?(文中未详细展开)
final:
将scene的每个点投影到所有帧,用pk prompt分割出的mask id为k,积累所有帧的mask结果,ID为prompt数量最多的那个(投票)