2张图2秒钟3D重建!这款AI工具火爆GitHub,网友:忘掉Sora

只需2张图片,无需测量任何额外数据——

当当,一个完整的3D小熊就有了:

图片

这个名为DUSt3R的新工具,火得一塌糊涂,才上线没多久就登上GitHub热榜第二。

图片

▲image

网友实测,拍两张照片,真的就重建出了他家的厨房,整个过程耗时不到2秒钟!

(除了3D图,深度图、置信度图和点云图它都能一并给出)

图片

惊得这位朋友直呼:

大伙先忘掉sora吧,这才是我们真正看得见摸得着的东西。

图片

▲image

实验显示,DUSt3R在单目/多视图深度估计以及相对位姿估计三个任务上,均取得SOTA。

作者团队(来自芬兰阿尔托大学+NAVER LABS人工智能研究所欧洲分所)的“宣语”也是气势满满:

我们就是要让天下没有难搞的3D视觉任务。

所以,它是如何做到?

“all-in-one”

对于多视图立体重建(MVS)任务来说,第一步就是估计相机参数,包括内外参。

这个操作很枯燥也很麻烦,但对于后续在三维空间中进行三角测量的像素不可或缺,而这又是几乎所有性能比较好的MVS算法都离不开的一环。

在本文研究中,作者团队引入的DUSt3R则完全采用了截然不同的方法。

不需要任何相机校准或视点姿势的先验信息,就可完成任意图像的密集或无约束3D重建。

在此,团队将成对重建问题表述为点图回归,统一单目和双目重建情况。

在提供超过两张输入图像的情况下,通过一种简单而有效的全局对准策略,将所有成对的点图表示为一个共同的参考框架。

如下图所示,给定一组具有未知相机姿态和内在特征的照片,DUSt3R输出对应的一组点图,从中我们就可以直接恢复各种通常难以同时估计的几何量,如相机参数、像素对应关系、深度图,以及完全一致的3D重建效果。

图片

▲(作者提示,DUSt3R也适用于单张输入图像)

具体网络架构方面,DUSt3R基于的是标准Transformer编码器和解码器,受到了CroCo(通过跨视图完成3D视觉任务的自我监督预训练的一个研究)的启发,并采用简单的回归损失训练完成。

如下图所示,场景的两个视图(I1,I2)首先用共享的ViT编码器以连体(Siamese)方式进行编码。

所得到的token表示(和)随后被传递到两个Transformer解码器,后者通过交叉注意力不断地交换信息。

图片

▲image

最后,两个回归头输出两个对应的点图和相关的置信图。

重点是,这两个点图都要在第一张图像的同一坐标系中进行表示。

多项任务获SOTA

实验首先在7Scenes(7个室内场景)和Cambridge Landmarks(8个室外场景)数据集上评估DUSt3R在绝对姿态估计任务上性能,指标是平移误差和旋转误差(值越小越好)。

作者表示,与现有其他特征匹配和端到端方法相比,DUSt3R表现算可圈可点了。

图片

▲image

因为它一从未接受过任何视觉定位训练,二是在训练过程中,也没有遇到过查询图像和数据库图像。

其次,是在10个随机帧上进行的多视图姿态回归任务。结果DUSt3R在两个数据集上都取得了最佳效果。

图片

▲image

而单目深度估计任务上,DUSt3R也能很好地hold室内和室外场景,性能优于自监督基线,并与最先进的监督基线不相上下。

图片

▲image

在多视图深度估计上,DUSt3R的表现也可谓亮眼。

图片

▲image

以下是两组官方给出的3D重建效果,再给大伙感受一下,都是仅输入两张图像:

(一)

图片

▲image

(二)

图片

网友实测:两张图无重叠也行

有网友给了DUSt3R两张没有任何重叠内容的图像,结果它也在几秒内输出了准确的3D视图:

图片

▲image

(图片是他的办公室,所以肯定没在训练中见过)

图片

▲image

对此,有网友表示,这意味着该方法不是在那进行“客观测量”,而是表现得更像一个AI。

图片

▲image

除此之外,还有人好奇当输入图像是两个不同的相机拍的时,方法是否仍然有效?

有网友还真试了,答案是yes!

图片

传送门:

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

代码:
https://github.com/naver/dust3r

图片

图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512134.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp微信小程序获取当前位置

uni-app微信小程序uni.getLocation获取位置;authorize scope.userLocation需要在app.json中声明permission;小程序用户拒绝授权后重新授权-CSDN博客

详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法

集合的概念 当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器来存储,数组就是这样一个容器。 ● 数组的特点: 数组是一组数据类型相同的元素集合; 创建数组时,必须给定…

Stable Diffusion 模型分享:3D Animation Diffusion(3D动漫)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 3D Animation Diffusion 是 Lykon 大神的 3D 动漫模型。 作者述:在迪士尼、皮…

SPI相关知识总结

一、SPI 1.1SPI概念及通讯方式 SPI:串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线 2.1 SPI框图 1.3.数据发送与接收流程 1.4 SPI工作模式 1)时钟极…

【OpenGL编程手册08】 摄像机

一、说明 前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感…

LeetCode 2673. 使二叉树所有路径值相等的最小代价【贪心】1917

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

附录:jdk安装及环境变量的配置

jdk的安装 JDK (Java Development Kit)称为 Java 开发包或 Java 开发工具,是一个编写 Java 的 Applet 小程序和应用程序的程序开发环境。 下载jdk 在 oracle 官网中下载 jdk https://www.oracle.com/ 点击 JDK 下载自己需要的 JDK 版本&…

《UE5_C++多人TPS完整教程》学习笔记27 ——《P28 项目资产(Assets for The Project)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P28 项目资产(Assets for The Project)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译…

BUUCTF---[ACTF2020 新生赛]BackupFile1

1.题目描述 2.题目提示backup file ,是备份文件的意思。点开链接,页面提示 3.查看源码没有什么有用信息,也没有登录界面,所以也不会用到蚁剑链接来找备份文件,所以大概率就是通过构造playload来查找备份文件。 4.备份…

rust学习(tokio future分析)

自己编写一个impl future来看一下Tokio的是如何实现的。 第一步&#xff1a; 代码&#xff1a; struct TExecuteTask {count:u32 }impl Future for TExecuteTask {type Output ();fn poll(self: Pin<&mut Self>, cx: &mut Context<_>) -> Poll<S…

Pygame教程03:文本显示+字体加载+transform方法

------------★Pygame系列教程★------------ Pygame教程01&#xff1a;初识pygame游戏模块 Pygame教程02&#xff1a;图片的加载缩放旋转显示操作 Pygame教程03&#xff1a;文本显示字体加载transform方法 Pygame教程04&#xff1a;draw方法绘制矩形、多边形、圆、椭圆、弧…

Java8,函数式编程应用:

持续更新中&#xff1a; 函数式(Functional)接口 什么是函数式(Functional)接口 只包含一个抽象方法的接口&#xff0c;称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。&#xff08;若 Lambda 表达式 抛出一个受检异常(即&#xff1a;非运行时异常)&#xff0c…