ICCV 2023

2023-11-01

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【3D点云和Transformer】交流群

本文介绍我们在ICCV 2023上接收的论文《PointCLIP V2: Adapting CLIP for Powerful 3D Open-world Learning》。

71d86e2b1017b9f3de5fbf2d22306838.png

论文:https://arxiv.org/abs/2211.11682

开源代码(已开源):

https://github.com/yangyangyang127/PointCLIP_V2

如下图,与baseline PointCLIP相比,本文方法在3个不同数据集的zero-shot分类准确率上,有了提升显著。

7adbf6509fe47713df4878868b1898b4.png

1. 概述

问题:当前,大规模数据预训练极大地提高了2D图像的open-world识别能力。但在3D领域,由于没有足够的可训练数据,各种3D open-world任务进展缓慢且性能较低如PointCLIP,所以提升3D open-world任务的性能是一个重要问题,这些任务包括zero-shot的分类,分割和检测等。

出发点:最近一段时间,大规模图像-文本预训练取得了较大的进步,比如CLIP,BLIP之于各种2D任务;同时大语言模型如GPT-3在文本理解上也有所突破。因此我们提问:是否能够结合图像文本模型和大语言模型来解决3D open-world任务?更具体地,能否实现CLIP + GPT-3 => 3D open-world tasks?

主要方法:为了结合两者,我们将3D点云投影成接近真实的2D图像,并使用GPT-3产生富含3D描述的文本,从而提升两种模态的匹配度。我们的实验证明,结合CLIP和GPT-3的方法,在3D open-world任务上取得了较好的性能,这些任务包括zero-shot和few-shot 3D classification,以及更一般的zero-shot 3D segmentation和3D detection任务。综上所述,论文的整体思路可以表示为下图:

a6728d83e1061a662633977a6816987b.png

2. 方法

为了将点云适配到图像和文本,我们基于PointCLIP主要做了两点改进,这两点改进对应于CLIP的两个编码器:

 (1) 对于视觉编码器,设计了新的投影模块将点云投影成更加真实的深度图;

 (2) 对于文本编码器,使用GPT-3产生包含丰富形状描述的文本。

以上的两点改进虽然简单但能够用于不同的任务,我们在zero-shot和few-shot 3D classification,zero-shot 3D segmentation, 和3D detection任务上验证。综合以上,论文整体的框架如下图所示,输入部分(左边)是两点改进,输出部分(右边)对应于不同的任务。

0715f5ef61b7eaa467fba43e97e968fa.png

2.1 深度图合成

对于一个点云,我们主要通过量化(体素化),稠密化,平滑和维度压缩合成出一个比较贴近真实的深度图。首先一个不规则的点云被体素化,产生一个稀疏的3D网格,然后我们使用池化操作把网格变得稠密,接着我们使用高斯平滑消除噪声,最后在深度这个维度进行压缩,从3D网格得到一张2D图像。整体流程如下图左所示,最后的深度图与散点图相比,更加贴近现实中的深度图(图右)。

bf29d6952252a19beb9cebdffe4a6d9a.png

2.2 文本描述生成

大部分基于CLIP的工作都使用了形如“a photo of a {CLASS}.”的普通文本模板,这在一定程度上较为低效。考虑到当前大预言模型已经具有较强的文本生成能力,因此我们试图用GPT-3产生具有形状描述的prompt. 我们使用4种形式的命令激励GPT-3。(1)命令型,如:“Describe a depth map of a [window]:”;(2)疑问型,如:“How to describe a depth map of a [table]?”;(3)同义句,如:“Generate a synonym for the sentence: A grayscale depth map of an inclined [CLASS].”;(4)组词成句,如:“Make a sentence using these words: a [table], depth map, obscure.”。

使用GPT-3产生的文字描述能够与图像产生更好的匹配,如下图右的attention map所示。

8e87ab32401608d9c2df3a0af9355f09.png

2.3 Open-world任务

我们将CLIP和GPT-3结合用于多种open-world的3D任务,包括3D zero-shot分类, 3D few-shot分类, 3D zero-shot segmentation和3D detection。

对于分割任务,我们在深度图上完成分割然后反映射到3D点云上,主要包括part segmentation和scene segmentation。对于检测任务,我们使用一个预训练的region proposal network产生3D框,并使用我们的方法作为一个open-world的分类头进行分类。

3. 结果

在ModelNet10, ModelNet40, ScanObjectNN的三个子数据集上的zero-shot分类结果在下表中,我们达到了当前的SOTA结果。

fda5ac2e13f34b76c05e395d567e1c02.png

在ModelNet40和ScanObjectNN的三个子数据集上的few-shot分类结果,相比于之前的方法也获得了提升。

dfb5d95fbd0e4ea4f1f615fc8c0b7df5.png

在zero-shot分割任务上,我们尝试了part和scene的分割,结果分别如下。因为当前没有类似的设定,因此我们只和PointCLIP做了比较。

c85f30ea5a6e5249d3d60b7078ecfad9.png

8dab2ad6a92692473f5bcfd7975cc953.png

在3D detection任务上,在ScanNet V2上的结果如下所示。

1e67aa057791d3973014cc98111bf9d9.png

感谢您的阅读,更多的实现细节和比较请看我们的文章,我们的代码已开源。感谢您提出宝贵意见。

 
 

点击进入—>【3D点云和Transformer】微信交流群

ICCV / CVPR 2023论文和代码下载

 
 

后台回复:CVPR2023,即可下载CVPR 2023论文和代码开源的论文合集

后台回复:ICCV2023,即可下载ICCV 2023论文和代码开源的论文合集
3D点云和Transformer交流群成立
扫描下方二维码,或者添加微信:CVer333,即可添加CVer小助手微信,便可申请加入CVer-3D点云或者Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如3D点云或者Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲扫码或加微信号: CVer333,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉,已汇集数千人!

▲扫码进星球
▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看ff4693f3bcac44fd468d8c29ab928a88.gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ICCV 2023 的相关文章

  • 如何在 JavaFX 中将 GUI 覆盖到 3D 场景上?

    我在 JavaFX 中有一个 3D 场景 需要在 3D 场景上覆盖 GUI 我尝试向场景添加按钮和文本 但它们始终作为 3D 对象出现在 3D 视图中 我环顾四周 没有找到该怎么做 唯一的解决方法是创建一个全新的窗口并将设置放在那里 但在这
  • 给定表面法线,找到 3D 平面的旋转

    所以我有一个由 2 个向量描述的 3D 平面 P 位于平面上的点N 平面的表面法线 我有一个非常大的扁平方形多边形 我想渲染它来代表这个平面 我可以轻松地将多边形平移到给定点 但随后我需要找到适当的旋转来应用以使表面法线实际上成为表面法线
  • 3D 哪个更快? Perlin 噪声还是 Simplex 噪声?

    好吧 网上有很多 Perlin 噪声和 Simplex 噪声之间的比较 但我真的找不到一个对三个维度进行简单处理时间比较的地方 这是我最感兴趣的 我读过那个流行的PDF http webstaff itn liu se stegu simp
  • 如何计算逆运动学[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想知道如何使用逆运动学计算旋转角度 我计划将其用于实时 3D 动画 有人知道一些详细介绍具体解决方案的好文献吗 以下资源调查了逆运动学问题的一些流行
  • 如何使用更少的包绘制二元正态分布的表面和轮廓

    我将绘制二元正态分布的 3D 曲面及其轮廓 可以是任何二元正态分布 我想用persp and contour在我的画中 我在网上搜索了一下 但发现了很多方法 大多数人都使用过一些软件包 但我想以使用更少的软件包甚至不安装任何软件包的方式来执
  • 点列表的 3D 轮廓(凹壳)

    我有一个 C 中的 Vector3 点列表 我需要计算这些点的凹轮廓 确实有很多参考资料 特别是对于 凸 分辨率 由于格雷厄姆算法 我已经成功实现了 然而 由于我现在需要有效地计算凹轮廓 所以我迷失了 维基百科确实列出了很多用于凸计算的资源
  • 可点击的精灵标签?

    我一直在玩精灵文本标签 更具体地说是这个例子 http stemkoski github io Three js Sprite Text Labels html http stemkoski github io Three js Sprit
  • OpenGL z轴指向哪里?

    我正在尝试了解 OpenGL 坐标系 我到处都看到它被描述为右撇子 但这与我的经验不符 我尝试绘制一些形状和 3 d 对象 我发现 z 轴显然指向 屏幕 而 x 指向右侧 y 指向上方 这是左手坐标系的描述 我缺少什么 编辑 例如 http
  • 使用 Scipy/Numpy 在浊点的二维插值中仅获取“有效”点

    我有一个通过人的背部摄影测量获得的浊点 我正在尝试对其进行插值以获得规则网格 为此我正在使用scipy interpolate到目前为止取得了良好的成果 问题是 我正在使用的函数 scipy interpolate griddata 使用平
  • 在球体边缘绘制点

    因此 来自 Flash 背景的我对一些简单的 2D 三角函数有很好的理解 在带有 I 圆的二维中 我知道使用给定角度和半径将项目放置在边缘上的数学 x cos a r y sin a r 现在 如果我在 3d 空间中有一个点 我知道球体的半
  • CSS3DObject 始终位于 WebGL Mesh 前面

    我正在混合CSS3D Renderer with WebGL Renderer to add HTML3D 空间中的元素WebGL场景 这CSS3DObject在前面WebGL网格即使WebGL Renderer具有较高的 z index
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • 如何仅剪切剪切平面的交集(而不是并集)?

    在 OpenGL JOGL 中 当使用多个剪切平面时 似乎会应用所有剪切平面的并集 我想要的是路口要应用的所有剪裁平面 这可能吗 请参阅下面的简化二维示例 Edit An example of clipping by vertex shad
  • 简单模式7公式/例子?

    我最近发现了利用 SNES 模式 7 的伪 3D 效果 并想尝试在 Godot 引擎中复制它 我尝试在网上查找 但所有内容要么以我无法理解的方式解释 要么以我不知道的编程语言解释 我还需要学习如何旋转该区域 并将精灵作为角色或敌人放入 但我
  • 不明确的 OpenGL 默认相机位置

    在我的Opengl程序中 在我应用透视投影矩阵之前 每当我绘制一些对象时 我都会在世界坐标系的原点处绘制它 但是几乎所有Opengl教程都指出相机 我的投影视图 位于原点朝向正 z 轴 这取决于您稍后如何处理投影矩阵中的 z 值 但是如果这
  • 将 3D 场景导入babylonJS

    所以我今天读到巴比伦JS http blogs msdn com b eternalcoding archive 2013 06 27 babylon js a complete javascript framework for build
  • 如何向 3D 表面添加文本

    我使用plot surface 创建了具有平行四边形底座的矩形棱柱 我需要向其中一个表面添加一些文本 我试过ax text 3 0 5 1 red 1 1 0 color red 但文本在表面上不可见 import matplotlib p
  • 在 3D 场景中实现“抓取”相机平移工具

    在我的场景中 我有想要 抓取 的地形 然后在移动光标时让相机平移 其高度 视图向量 视野等全部保持不变 因此 最初的 抓取 点将是世界空间中的工作点 我希望在拖动时该点保留在光标下方 我当前的解决方案是获取前一个和当前的屏幕点 取消投影它们
  • 具有轴和角度的 3D 旋转

    我知道 3D 旋转在 SO 和许多其他网站上都有详细记录 但尽管阅读了无数的解释 我仍然没有弄清楚我哪里出错了 我的背景是艺术和设计 而不是数学和编程 而且我从来都不确定我的攻击角度 没有双关语 是否正确 我没有粘贴我那令人沮丧的代码的拼凑
  • 在 Unity 中平滑动态生成的网格?

    给定 Unity 和 C 中的网格 其本身是通过合并更简单的基础网格实时创建的 我们如何在运行时 将其变成平滑的 几乎像包裹在布中的网格版本一样 不是完全凸出的版本 而是更圆润 软化锋利的边缘 桥接深间隙等 理想情况下 表面也将像 平滑角度

随机推荐

  • JAVA之Thread类

    一 主线程 主线程 执行主方法的线程 main JVM执行main main 会进入到栈内存 JVM会找操作系统开辟一条main方法通向CPU的执行路径 CPu就可以通过这个路径来执行main方法 而这个路径就叫做主 main 线程 单线程
  • pptpd配置参数详解

    在LINUX下搭建PPTPD服务器主要有3个配置文件 分别如下 etc pptpd conf 主配置文件 debug 把所有的debug信息写入系统日志 var log messages option etc ppp options ppt
  • Hadoop是小象——YARN / Split&Block

    了解Hadoop架构 Hadoop可运行于一般的商用服务器上 具有高容错 高可靠性 高扩展性等特点 特别适合写一次 读多次的场景 其架构如下 HDFS 分布式文件存储 可靠性由心跳机制和冗余提供 YARN 分布式资源管理 MapReduce
  • mysql jdbcurl配置_jdbc的URL配置

    Microsoft SQL Server Microsoft SQL Server JDBC Driver 一般用来连接 SQLServer 2000 驱动程序包名 msbase jar mssqlserver jar msutil jar
  • 【金融申请评分卡】目标变量界定

    一 目标变量是什么 目标变量就是假定申请客户的好坏 逻辑回归公式里的Y 先来看下逻辑回归公式 y 11 e z y 1 1 e z
  • c++入门到精通教程 c++11/14/17-王健伟-专题视频课程

    c 入门到精通教程 c 11 14 17 528人已学习 课程介绍 本教程适合那些只有一点点c语言编程知识的新手 也适合那些c 98标准已经掌握的不错但对c 11 14 17新标准基本无所知的c 开发老手 欢迎大家尽早加入学习 请大家从授课
  • 网络流媒体(七)———RTSP

    RTSP协议介绍 RTSP协议的一些分析 一 一些字符串函数的使用 RTSP协议的一些分析 二 printf类似函数 sscanf以及log保存到内存中 printf输入重定位 1 简介 DSP产生的媒体流需要通过网络传送到客户端 如图1
  • python编程遵循哪些规律_Python实操(3):python编程规范

    选择pythoncharm作为Python开发ide也是在网上查了好长时间 这两天了解到visual studio code强大 易用 同时也一直用visual studio做c c 开发 所以决定把以后的开发平台切换到微软系 换平台以后发
  • 前后端分离:SpringBoot项目部署服务器操作步骤详细

    部署后端 SpringBoot到服务器 首先就是对自己项目application yaml进行配置 此处使用过多mysql8 0 spring datasource url jdbc mysql 127 0 0 1 3306 book se
  • 计算机网络笔记and题解

    上次博客就写了一点划分子网和子网掩码相关的计算 然后还要一个重要的五分类编址CIDR 也就是构造超网 无分类编址CIDR Classless Inter Domain Routing 正式名字是无分类域间路由选择 特点 1 CIDR消除了传
  • 秒级数据转化为分钟级数据sql编写

    前言 利用python读取hive 将hive中秒级数据转化为以10分钟为间隔的数据 除时间与设备id外所有字段的值求平均值 代码 连接hive 创建连接通道 并且得到连接通道的钥匙 句柄 conn connect host 地址 port
  • 存储过程解析

    使用存储过程来解决涨工资 涨工资 总裁涨1000 经理涨800 其他人涨400 伪代码 ResultSet rs select empno job from emp While rs next Int eno rs getInt empno
  • Stable diffusion加载safetensors 模型出现Exception: device privateuseone:0 is invalid

    一 问题 博主用CPU硬解 Stable diffusion sd v1 4 ckpt能跑 但换成v1 5 pruned emaonly safetensors等最新格式的模型就出现Exception device privateuseon
  • MATLAB数据可视化

    MATLAB数据可视化 二维绘图 plot命令 plot y plot x y plot x y s 常见的二维绘图常用设置选项 fplot 三维绘图 plot3 mesh 函数 绘制参数网状表面图 surf 函数 绘制三维阴影曲面图 辅助
  • 蓝桥杯:三羊献瑞(答案不唯一)

    目录 题目描述 题目分析 测试用的代码 Java 答案 因为我个人做选择题有把所有可能性列举的习惯 所以我习惯性列举一下 发现答案并不像题目里面说的 三羊献瑞是唯一的 具体看我的测试用例 Test 但是结果呢 题目描述 本题为填空题 只需要
  • 软件测试和软件开发哪个发展更好

    经常有想转IT行业的同学 在了解软件测试和软件开发之后不知道转那个岗位好 今天就系统的 从多个维度来比较软件测试与软件开发 具体包括从基本素质要求 性格要求 入职门槛 知识结构 竞争压力 职业发展 职业前景等 希望能给在选择软件测试与开发朋
  • java设计模式之抽象工厂模式

    什么是抽象工厂设计模式 抽象工厂模式是一种创建型设计模式 它提供了一种创建一系列相关或依赖对象的方法 而无需指定它们具体的类 抽象工厂模式是工厂方法模式的扩展 它使用一组相关的工厂来创建对象 而工厂方法模式只是使用一个单一的工厂 在抽象工厂
  • APP移动端测试+安装+ADB命令的介绍

    重点 app测试的内容 add命令 monkey命令 次重点 模拟器的安装 雷电 夜神 android的自带的模拟器使用 常规测试 真机测试 简单了解云测Testing 腾讯云 在职小伙伴下周演示 了解 市场有的移动端的操作系统有 1 an
  • LeetCode技巧篇(一)prefix sum 前缀和

    介绍 前缀和 prefix sum 是算法题中比较实用的一种技巧 当算法题的背景是整数型数组且出现 子数组和 或者 连续的子数组 既可以考虑使用前缀和来求解会得到不错的效果 假设给定的数组A各个元素分别为 那么我们可以得到一个前缀和数组B
  • ICCV 2023

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 点击进入 gt 3D点云和Transformer 交流群 本文介绍我们在ICCV 2023上接收的论文 PointCLIP V2 Adapting CLIP for P