SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

2024-09-09 03:44

本文主要是介绍SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室内场景、室外场景和原始 LiDAR。 对多个 3D 数据集(例如 Objaverse、S3DIS、ScanNet、Semantic3D 和 KITTI)的演示凸显了 SAM2POINT 强大的泛化能力。 据我们所知,我们提出了 3D 中 SAM 最忠实的实现,这可以作为未来快速 3D 分割研究的起点。

1 INTRODUCTION

在之前的工作中发现了三个主要问题,这些问题阻碍了他们充分利用 SAM 的优势:

  • 2D-3D 投影效率低下。大多数现有作品将 3D 数据表示为其 2D 数据,作为 SAM 的输入,并将分割结果反投影到 3D 空间。
  • 三维空间信息的退化。对 2D 投影的依赖会导致细粒度 3D 几何和语义的丢失,因为多视图数据通常无法保留空间关系。此外,2D 图像无法充分捕获 3D 物体的内部结构,从而严重限制了分割精度。
  • 失去prompting灵活性。SAM 的一个引人注目的优势在于其通过各种提示选项进行交互的能力。 不幸的是,这些功能在当前方法中大多被忽视,因为用户很难使用 2D 表示来指定精确的 3D 位置。
  • 有限的域名可转移性。

概述SAM2POINT的三个功能:

  • Segmenting Any 3D as Videos. 用体素化来模拟视频。(体素化(Voxelization):这是一种将三维物体或场景转换为体素(voxel)网格的技术。体素是三维空间中的像素(pixel),类似于二维图像中的像素。体素化可以将复杂的三维物体或场景简化为由体素组成的网格,便于计算机处理和渲染。)体素化3D的数据是这样的维度:w×h×l×3(这通常指的是一个三维图像数据的格式,其中 w 代表宽度(width),h 代表高度(height),l 可能代表深度(length)或者层数(layers),3 通常表示颜色通道数,比如 RGB(红绿蓝)。很像视频的格式w×h×t×3:这通常指的是视频数据的格式,其中 w 同样代表宽度,h 代表高度,t 代表时间(time),也就是视频的帧数,3 同样表示颜色通道数。
  • 支持多种3Dprompts。3D points, bounding boxes, and masks。
  • 可推广到各种场景。可以有效地分割单个对象、室内场景、室外场景和原始 LiDAR,突出了其跨不同领域的卓越可转移性。

2 SAM2POINT

2.1 3D DATA AS VIDEOS

我们的目标是将P转换为一种数据格式,一方面SAM 2可以以零样本的方式直接处理,另一方面可以很好地保留细粒度的空间几何形状。为此,我们采用3D体素化技术,体素化是在 3D 空间中有效执行的,从而避免了信息退化和繁琐的后处理。

如何将三维输入的体素化表示转换为可以被特定系统(SAM 2)处理的视频格式?

  • 与视频格式的相似性

    • 体素化表示的格式与视频数据的格式 w×h×t×3非常相似,其中 t 代表时间帧数。
    • 这种相似性使得体素化数据可以被视频处理系统直接处理

2.2 PROMPTABLE SEGMENTATION

1、3D Point Prompt

使用3D Point Prompt来辅助三维体素分割的过程。

定义一个三维点提示 pp=(xp,yp,zp),这个点在三维空间中作为一个锚点(anchor point)。

②定义三个正交的二维截面:以 pp 为锚点,定义三个相互垂直的二维截面。这些截面在三维空间中分别对应于三个不同的平面。

③分割三维体素:从这些二维截面开始,将三维体素沿着六个空间方向分割成六个子部分,分别是:前面、后面、左面、右面、上面和下面。

④将子部分视为不同的视频:将每个分割得到的子部分视为一个独立的视频,其中二维截面作为视频的第一帧,而 pp被投影为二维点prompt。

⑤应用 SAM 2 进行并行分割:使用 SAM 2 系统对这六个“视频”进行并行的分割处理。SAM 2 系统能够同时处理多个视频流,并对每个视频流进行分割。

⑥整合分割结果:将六个视频的分割结果整合起来,形成最终的三维掩码(mask)预测。这个掩码预测代表了三维空间中目标对象的分割结果。

2、3D Box Prompt

使用3D Box Prompt来辅助三维体素分割的过程。

3D Box Prompt:定义一个三维盒子提示 bp=(xp,yp,zp,wp,hp,lp)其中 (xp,yp,zp)表示三维空间中的几何中心坐标,(wp,hp,lp) 表示盒子的宽度、高度和长度。

使用几何中心作为锚点:将三维盒子的几何中心作为锚点,用于定义三维空间中的分割。

③表示三维体素为六个不同的视频:如前所述,将三维体素沿着六个空间方向分割成六个子部分,每个子部分被视为一个独立的视频。

投影三维盒子到二维截面:对于每个方向的视频,将三维盒子 bp投影到相应的二维截面上,这个投影的盒子用作分割的二维提示点(box point)

支持带有旋转角度的三维盒子:支持三维盒子带有旋转角度,例如 (αp,βp,γp),这些角度分别代表绕 x、y、z 轴的旋转。对于带有旋转的三维盒子,采用投影后的盒子的边界矩形(bounding rectangle)作为二维提示。

分割过程:在每个方向的视频上,使用投影得到的二维提示(无论是单个点还是边界矩形)来辅助分割过程。应用分割算法(如 SAM 2)对每个视频进行处理,以识别和分割出目标对象。

整合分割结果:将六个方向的视频分割结果整合起来,形成最终的三维掩码(mask)预测。

3、3D Mask Prompt

三维掩码提示(3D Mask Prompt):定义一个三维掩码提示 Mp∈Rn×1Mp∈Rn×1,其中 nn 表示点的数量。每个点的值是 1 或 0,1 表示被掩码(masked)的区域,0 表示未被掩码(unmasked)的区域。

使用质心作为锚点:将三维掩码提示的质心(center of gravity)作为锚点。质心是所有掩码区域点的加权平均位置,可以认为是掩码区域的几何中心。

分割三维空间为六个视频:与之前的方法类似,将三维空间沿着六个空间方向分割成六个子部分,每个子部分被视为一个独立的视频。

利用掩码提示与截面的交集:对于每个方向的视频,计算三维掩码提示与相应二维截面的交集,这个交集用作二维掩码提示(2D mask prompt)来辅助分割。

分割过程:使用二维掩码提示来辅助分割算法(如 SAM 2)对每个视频进行处理,以识别和分割出目标对象。

后处理步骤:这种类型的提示可以作为后处理步骤,用于提高之前预测的三维掩码的准确性。通过比较预测的掩码与掩码提示的交集,可以对预测结果进行微调,修正错误或不精确的部分。

整合分割结果:将六个方向的视频分割结果整合起来,形成最终的三维掩码(mask)预测。

未完待续~~~

这篇关于SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150061

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

v0.dev快速开发

探索v0.dev:次世代开发者之利器 今之技艺日新月异,开发者之工具亦随之进步不辍。v0.dev者,新兴之开发者利器也,迅速引起众多开发者之瞩目。本文将引汝探究v0.dev之基本功能与优势,助汝速速上手,提升开发之效率。 何谓v0.dev? v0.dev者,现代化之开发者工具也,旨在简化并加速软件开发之过程。其集多种功能于一体,助开发者高效编写、测试及部署代码。无论汝为前端开发者、后端开发者

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念