【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model

这篇具有很好参考价值的文章主要介绍了【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文链接:https://arxiv.org/pdf/2306.02245.pdf

1.引言

  分割一切模型(SAM)作为视觉领域的基石模型,有强大的泛化性,能解决很多2D视觉问题。但是SAM是否可以适用于3D视觉任务,仍需要被探索。
  目前几乎没有关于3D目标检测的零样本学习,如何使SAM的零样本能力适用于3D目标检测是本文的主要研究内容。
  本文提出SAM3D,使用SAM分割BEV图,然后从输出的掩膜预测物体。

2.方法

2.1 准备知识

  问题定义

  给定一个在有标注的源数据集 D s = { X i s , Y i s } D_s=\{X_i^s,Y_i^s\} Ds={Xis,Yis}上训练的模型 F F F,以及一个3D检测无标签数据集 D t = { X i t } D_t=\{X_i^t\} Dt={Xit}(在本文中 X i t X_i^t Xit表示激光雷达点云),零样本3D目标检测任务的目标就是在不使用 D t D_t Dt标签的情况下,最大化 F F F D t D_t Dt上的性能。

  SAM的回顾

  虽然SAM的能力很强大,但模型很简单:强大的图像编码器和提示编码器分别将图像与提示转换为嵌入特征,随后轻量级的掩膜解码器用于组合信息并预测分割结果。
  具体来说,图像编码器是使用MAE预训练的ViT,提示编码器使用CLIP中现成的文本编码器,利用位置编码和自由文本表达点与边界框。掩膜提示使用卷积嵌入,并与图像嵌入特征按元素求和。掩膜解码器使用Transformer解码器(含提示自注意力和两个方向的交叉注意力),并使用动态掩膜头,在图像的每个位置计算掩膜前景概率。

2.2 整体框架

  由于本文使用的是3D点云,而SAM的输入是2D图像,因此本文先将激光雷达点云转换为类似2D图像的表达以减小域间隙。基于BEV,本文的使用SAM的模型如下图所示。
【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model,激光雷达3D目标检测,论文阅读,目标检测,自动驾驶,深度学习
  本文的方法分5个步骤:

  • 激光雷达到BEV的投影:将激光雷达信号转化为BEV图像。使用投影方程决定每个点在图像平面的坐标,并预定义一组强度到RGB的映射,以得到BEV图像像素的RGB值,使处理时更具判别力。
  • BEV后处理:将原始BEV图像进行一个简单的操作,以获得更稳定的SAM输入,使分割更简单、性能更好。
  • SAM分割:将改进的BEV图像和网格提示输入SAM,在BEV中分割前景物体。为加速分割,还对提示进行了修剪,这不会牺牲性能。
  • 掩膜后处理:使用先验推导出的规则过滤带噪声的掩膜,以减少FP。
  • Mask2Box:对前景掩膜寻找最小边界框,提取BEV下的2D框,与激光雷达点云交互后,预测最终的3D边界框。

2.3 激光雷达到BEV的投影

  目的是将 N p N_p Np个激光雷达点 P = { ( x i , y i , z i ) } i = 1 N p P=\{(x_i,y_i,z_i)\}_{i=1}^{N_p} P={(xi,yi,zi)}i=1Np(满足 L x ≤ x i ≤ U x , L y ≤ y i ≤ U y L_x\leq x_i\leq U_x,L_y\leq y_i\leq U_y LxxiUx,LyyiUy)转化为一张BEV图像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} IRH×W×3
  每个点都会落入BEV图像上的一个网格,网格的坐标 ( c x , c y ) (cx,cy) (cx,cy)按下式计算: c x i = ⌊ ( U x − x i ) / s x ⌋ c y i = ⌊ ( U y − y i ) / s y ⌋ cx_i=\left \lfloor (U_x-x_i)/s_x\right \rfloor\\cy_i=\left \lfloor (U_y-y_i)/s_y\right \rfloor cxi=(Uxxi)/sxcyi=(Uyyi)/sy其中 s x , s y s_x,s_y sx,sy x , y x,y x,y方向的柱体大小。
  此后,需要得到填入BEV图像中的像素值,使BEV图像更具判别力。点的反射强度 R = { r i } i = 1 N p R=\{r_i\}_{i=1}^{N_p} R={ri}i=1Np可以用于形成BEV图像的特征向量。首先将反射强度归一化到 [ 0 , 1 ] [0,1] [0,1]内,并用其从预定义的调色板上选择色彩向量: c i = Pallete ( Norm ( r i ) ) ∈ R 3 I [ c x i , c y i , : ] = c i c_i=\text{Pallete}(\text{Norm}(r_i))\in \mathbb{R}^3\\I[cx_i,cy_i,:]=c_i ci=Pallete(Norm(ri))R3I[cxi,cyi,:]=ci其中 Pallete : R → R 3 \text{Pallete}:\mathbb{R}\rightarrow\mathbb{R}^3 Pallete:RR3是将强度标量转化为RGB向量的调色板。
  无对应点的BEV像素,使用零向量填充。最后得到有判别力的BEV图像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} IRH×W×3

2.4 BEV后处理

  SAM的图像是在“密集”的自然图像上训练的,而BEV图像是“稀疏”的。为减小间隙,本文使用形态扩张(即最大池化): I ′ = MaxPool2D ( I ) I'=\text{MaxPool2D}(I) I=MaxPool2D(I)

2.5 使用SAM分割

  SAM支持使用各种提示,如点、框和掩膜。这一步的目标是分割处尽可能多的前景目标,因此本文使用网格提示覆盖整张图像。具体来说,创建 32 × 32 32\times32 32×32的、在图像平面均匀分布的网格,将它们视作SAM的点提示。
  但是由于稀疏BEV图像有很多空的区域,本文还对提示进行了修剪。将提示投影到BEV图像上,检查每个提示的邻域,将周围无激活像素的提示丢弃掉。该步骤使得整个流程被极大地加速。
  该步骤完成后,得到 N m N_m Nm个分割掩膜 M = { m i ∈ R H × W } i = 1 N m M=\{m_i\in\mathbb{R}^{H\times W}\}_{i=1}^{N_m} M={miRH×W}i=1Nm

2.6 掩膜后处理

  尽管SAM有强大的零样本能力,这里仍然存在不可忽视的域间隙。因此SAM输出的掩膜是有噪声的,需要进一步处理。
  在自动驾驶领域中,汽车是有大概的面积和长宽比的,可以用于滤除 M M M中的某些FP。具体来说,本文使用面积阈值 [ T l a , T h a ] [T_l^a,T_h^a] [Tla,Tha]和长宽比阈值 [ T l r , T h r ] [T_l^r,T_h^r] [Tlr,Thr]来过滤掩膜。
  最终,得到 N o N_o No个相对高质量的前景掩膜 M ′ = { m i ∈ R H × W } i = 1 N o M'=\{m_i\in\mathbb{R}^{H\times W}\}_{i=1}^{N_o} M={miRH×W}i=1No,每个掩膜对应一个前景物体。

2.7 Mask2Box

  可以直接从2D掩膜估计3D边界框的水平属性(水平位置 ( x 3 D , y 3 D ) (x^{3D},y^{3D}) (x3D,y3D)、长宽 ( d x 2 D , d y 3 D ) (dx^{2D},dy^{3D}) (dx2D,dy3D)、朝向 θ 3 D \theta^{3D} θ3D),但对于垂直属性(垂直位置 z 3 D z^{3D} z3D和高 d z 3 D dz^{3D} dz3D),需要使用激光雷达点进行信息补偿。
  首先从掩膜提取最小边界框: B 2 D = { ( x i 2 D , y i 2 D , d x i 2 D , d y i 2 D , θ i 2 D ) } i = 1 N o B^{2D}=\{(x^{2D}_i,y^{2D}_i,dx^{2D}_i,dy^{2D}_i,\theta^{2D}_i)\}_{i=1}^{N_o} B2D={(xi2D,yi2D,dxi2D,dyi2D,θi2D)}i=1No  然后将2D属性投影为对应的3D属性: x i 3 D = U x − ( x i 2 D + 0.5 ) × s x y i 3 D = U y − ( y i 2 D + 0.5 ) × s y d x i 3 D = d x i 2 D × s x d y i 3 D = d y i 2 D × s y θ i 3 D = θ i 2 D x^{3D}_i=U_x-(x_i^{2D}+0.5)\times s_x\\y^{3D}_i=U_y-(y_i^{2D}+0.5)\times s_y\\dx^{3D}_i=dx^{2D}_i\times s_x\\dy^{3D}_i=dy^{2D}_i\times s_y\\\theta^{3D}_i=\theta^{2D}_i xi3D=Ux(xi2D+0.5)×sxyi3D=Uy(yi2D+0.5)×sydxi3D=dxi2D×sxdyi3D=dyi2D×syθi3D=θi2D  最后选择落在2D边界框内的激光雷达点,使用垂直坐标计算边界框的垂直属性: Z i = { z j ∣ ( x j , y j , z j ) 在 B E V 上的投影位于 B i 2 D 中 } d z i 3 D = max ⁡ ( Z i ) − min ⁡ ( Z i ) z i 3 D = min ⁡ ( Z i ) + d z i 3 D 2 Z_i=\{z_j|(x_j,y_j,z_j)在BEV上的投影位于B_i^{2D}中\}\\dz_i^{3D}=\max(Z_i)-\min(Z_i)\\z_i^{3D}=\min(Z_i)+\frac{dz_i^{3D}}{2} Zi={zj(xj,yj,zj)BEV上的投影位于Bi2D}dzi3D=max(Zi)min(Zi)zi3D=min(Zi)+2dzi3D

3.实验

3.1 设置

  本文在Waymo Open的验证集上对汽车类别进行评估,且只考虑最多30m内的物体。

3.2 定性结果

  可视化表明,SAM能在不接触3D标注的情况下生成高质量的2D边界框,且能进一步得到高质量的3D边界框。
  但也存在一些明显的失效情况:当物体距离较近时,SAM会重复生成掩膜;与汽车外观类似的物体会被SAM错误分割为前景;由于激光雷达点云的稀疏性以及截断或遮挡等,部分汽车在BEV图像中被部分激活,因此SAM会忽略这些物体,导致很多FN。

3.3 消融研究

  柱体大小的影响

  当柱体大小较大,量化误差增大,且难以区分近距离的物体;当柱体大小较小同样会损害性能,因为激光雷达点云的稀疏性使得来自同一物体的点难以形成连通区域,SAM倾向于将一个物体分割为多个部分。

  反射强度的影响

  将本文的预定义的强度到RGB的映射方法与二值法(生成黑白双色的二值图像)、强度法(生成灰度图像)比较,实验表明本文的方法在性能上能大幅超过二值法与强度法,因为彩色图像更具判别力,SAM更容易分割。

  SAM结构的影响

  实验表明,使用小容量模型会导致性能下降,但使用大容量模型也仅能带来微小的性能提升。这说明模型容量不是性能瓶颈,且SAM的能力仍需被充分释放。

  BEV后处理的影响

  实验表明,去除BEV后处理会带来显著的性能下降,这表明BEV后处理能缩减BEV图像和自然图像的间隙。

  掩膜后处理的影响

  面积与长宽比的后处理均对性能提升有帮助,因为仍然存在不可忽视的域间隙。

4.讨论

  本文的实验表明,使用SAM进行零样本3D目标检测任务是可行的。
  但仍存在一些需改进的重要方面:

  • 使用BEV图像表达,可能无法进行室内的3D目标检测,需要寻找更好的场景表达。
  • 由于遮挡和截断,以及激光雷达点云的稀疏性,本文的方法会产生许多FN,特别是对于远距离物体。结合其余模态的信息可能有帮助。
  • 虽然通过提示修剪大幅减小了推断时间,推断速度仍受限于SAM的复杂性。模型压缩和蒸馏可能可以解决此问题。
  • 本文的方法还不支持多类别物体检测,因为SAM缺乏语义标签的输出。可以使用视觉-语言模型(如CLIP Goes 3D)进行零样本分类。

  使用少样本学习和提示工程等技术,可以更有效地利用视觉基石模型解决3D任务。文章来源地址https://www.toymoban.com/news/detail-567476.html

到了这里,关于【论文笔记】SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文笔记--DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability Curvature

    标题:DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability Curvature 作者:Eric Mitchell, Yoonho Lee, Alexander Khazatsky, Christopher D. Manning, Chelsea Finn 日期:2023 期刊:arxiv preprint   文章提出了一种检测语料是否为LLM生成的无监督方法“DetectGPT”,该方法属于一种基于LLM的log-proba进行

    2024年02月04日
    浏览(34)
  • 零样本参考图像分割 Zero-shot Referring Image Segmentation with Global-Local Context Features 论文笔记

    写在前面   新的一周开始了,冲冲冲~ 最近 Segment Anything 爆火,感觉一些方向可能就此终结了,比如少样本、零样本以及视频领域,但是新的方向也应该会源源不断涌出,切勿悲观~ 论文地址:Zero-shot Referring Image Segmentation with Global-Local Context Features 代码地址:https://github

    2024年02月09日
    浏览(35)
  • Metric3D:Towards Zero-shot Metric 3D Prediction from A Single Image

    参考代码:Metric3D 在如MiDas、LeReS这些文章中对于来源不同的深度数据集使用归一化深度作为学习目标,则在网络学习的过程中就天然失去了对真实深度和物体尺寸的度量能力。而这篇文章比较明确地指出了影响深度估计尺度变化大的因素就是焦距 f f f ,则对输入的图像或是

    2024年02月14日
    浏览(32)
  • DUET: Cross-Modal Semantic Grounding for Contrastive Zero-Shot Learning论文阅读

    原文链接: https://ojs.aaai.org/index.php/AAAI/article/view/25114/24886 该论文设计了一种 新的零样本学习范式,通过迁移语言模型中的先验语义知识,与视觉模型的特征感知能力进行对齐,以增强后者对于未见过图像的识别能力。 零样本学习(ZSL)旨在预测在训练期间从未出现样本的未

    2024年01月17日
    浏览(46)
  • few-shot / one shot / zero shot object counting论文汇总

    code: https://paperswithcode.com/paper/class-agnostic-counting 摘要:几乎所有现有的计数方法都是为一个特定的对象类而设计的。然而,我们的工作旨在创建一个能够计数任何类对象的计数模型。为了实现这一目标,我们将计数表述为一个匹配问题,使我们能够利用对象计数问题中自然存

    2024年02月09日
    浏览(41)
  • 【论文阅读】RE-Matching: A Fine-Grained Semantic Matching Method for Zero-Shot Relation Extraction

    标题:RE-Matching: A Fine-Grained Semantic Matching Method for Zero-Shot Relation Extraction 会议:ACL2023 网址:https://aclanthology.org/2023.acl-long.369 github:https://github.com/zweny/RE-Matching 关系抽取:relation extraction是NLP的一个基本任务,目的是从非结构化文本中提取实体之间的关系。关系抽取有助于构

    2024年02月04日
    浏览(35)
  • 【计算机视觉】Zero-shot, One-shot和Few-shot的理解

    机器学习任务按照对 样本量 的需求可以分为:传统监督式学习、Few-shot Learning、One-shot Learning、Zero-shot Learning。 传统learning,炼丹模式。传统深度学习的学习速度慢,往往需要学习海量数据和反复训练后才能使网络模型具备不错的泛化能力,传统learning可以总结为:海量数据

    2024年02月04日
    浏览(43)
  • AIGC零基础30天学习——CLIP与zero-shot

           在前面对CLIP的学习中,对 zero-shot prediction 环节一直有一些疑惑,zero-shot是什么,它该如何进行操作?     zero-shot是指零样本学习,和zero-shot相关联的概念包括many-shot、few-shot和one-shot,这些其实都是从训练集样本类型、测试集样本类型和对应的样本数量角度进行划分

    2024年02月09日
    浏览(32)
  • 代码解读:Zero-shot 视频生成任务 Text2Video-Zero

    Diffusion Models视频生成-博客汇总 前言: 上一篇博客《【ICCV 2023 Oral】解读Text2Video-Zero:解锁 Zero-shot 视频生成任务》解读了这篇论文《Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators》。这篇论文的创新点比较多,含金量很高,而且开源了代码。所以这篇博客结合

    2024年02月03日
    浏览(47)
  • huggingface pipeline零训练样本分类Zero-Shot Classification的实现

    1 : 默认的model 。 输出是 education 第一位的。 2 : 使用 morit/chinese_xlm_xnli : 3:使用 facebook/bart-large-mnli 4:

    2024年02月20日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包