SAM3D: Segment Anything in 3D Scenes
方法流程
1.利用SAM在RGB上的Mask,分割点云。
2.数据是有相机姿态的 RGB 图像以及对应3D点云,首先使用 SAM 预测 RGB 图像的Mask,然后将 2D Mask投影到 3D 点云中,之后迭代地合并3D Mask。
3.在每一次迭代,使用bidirectional merging方法合并两个相邻帧的点云Mask,从不同帧预测的3DMask逐渐合并到整个3D场景。
bidirectional merging方法:1.计算两帧点云之间的mapping;2.第一帧点云中的object mask(mask id为m)map到第二帧点云中的object mask(mask id为n),σmn为第二针点云中object mask id为n的点数量,σm为第一帧点云中maskid为m的点数量,σn为第一帧点云中maskid为n的点数量,满足下式则认为高度重叠,可合并成一个mask,其中阈值0.5
可理解为两帧点云被映射到的部分取IOU,IOU大于0.5即认为重叠
之后将第二帧点云中id为m的mask改为id为n
之后再将第一帧和第二帧点云调换过来重复上述步骤,将第一帧点云中id为n的mask改为id为m
bottom-up方法
假设有K帧点云
将
合并成
合并的方法用bidirectional merging方法,以此类推,直至合并成一个最后的点云。类似于归并排序的思想,合并log2n次
4.optional:将 SAM3D 的结果与基于 3D 场景的几何信息的过分割结果进行集成。
用scnaet中的mesh 图割结果和SAM3D 的结果合并