大家好,欢迎来到IT知识分享网。
1.三维重建介绍
三维重建是指从一系列二维图像或其他传感器数据中恢复三维物体的几何结构和外观信息的过程。三维重建在许多领域中都有应用,包括计算机视觉、计算机图形学、医学影像处理、建筑和文物保护等。它可以用于创建虚拟现实环境、数字化文物、建筑物和城市场景的建模,以及在医学中用于诊断和手术规划等领域。
今天星主给大家介绍一下人家最近开源的一项工作——DUSt3R(DUSt3R: Geometric 3D Vision Made Easy)。
2.DUSt3R
DUSt3R是由Aalto University和Naver Labs Europe联合开发的,它是一款基于深度学习的3D重建工具。下面是文章的Abstract翻译:
野外多视角立体重建(MVS)需要首先估计相机的参数,如内在参数和外在参数。这些通常是冗长而繁琐的,但它们是在3D空间中对相应像素进行三角测量的必要条件,这是所有性能最好的MVS算法的核心。在这项工作中,我们采取了相反的立场,并引入了DUSt3R,这是一种全新的范式,用于任意图像集合的密集和无约束立体3D重建,即在没有相机校准和视点姿势的先验信息的情况下进行操作。我们将两两重建问题转换为点映射的回归,放松了通常投影相机模型的硬约束。我们证明这个公式很好地统一了单眼和双眼的重建情况。在提供两张以上图像的情况下,我们进一步提出了一种简单而有效的全局对齐策略,该策略在一个共同的参考框架中表达所有成对点图。我们的网络架构基于标准的Transformer编码器和解码器,允许我们利用强大的预训练模型。我们的公式直接提供了场景的3D模型以及深度信息,但有趣的是,我们可以无缝地从中恢复,像素匹配,相对和绝对相机。所有这些任务的详尽实验表明,所提出的DUSt3R可以统一各种3D视觉任务,并在单/多视角深度估计和相对姿态估计上设置新的sota。总之,DUSt3R使几何3D视觉任务变得容易。[1]
下面是网络架构图:
不管是单张图还是多张图都可以进行重建,具体详细的信息大家可以去看原文,星主接下来展示如何在Windows上运行其代码。
github传送门:GitHub – naver/dust3r
3.安装DUSt3R
3.1克隆DUSt3R
git clone --recursive https://github.com/naver/dust3r cd dust3r
3.2 创建虚拟环境
conda create -n dust3r python=3.11 cmake=3.14.0 conda activate dust3r conda install pytorch torchvision pytorch-cuda=12.1 -c pytorch -c nvidia # use the correct version of cuda for your system pip install -r requirements.txt
上面cuda版本需要根据自己的设备进行更改
3.3 为RoPE编译cuda内核(如在CroCo v2中)(可选)
DUST3R依赖于RoPE位置嵌入,可以为此编译一些cuda内核以获得更快的运行时间。
cd croco/models/curope/ python setup.py build_ext --inplace cd ../../../
注意:不管你是手动下载DUSt3R的ZIP文件还是克隆的,一定要查看dust3r文件夹里面的croco文件夹是否为空。若为空,则去此地下载(GitHub – naver/croco at 743ee71a2a9bf57cea6832a9064a70a0597fcfcb)
3.4 下载预训练权重
创建一个checkpoints文件夹,然后把权重文件放在此文件夹下。这里星主提供了两个人家训练好的权重,一个是要求输入图像大小为224×224,一个是要求输入图像大小是512×512。
安装完成后,根目录文件如下图所示:
4.运行
在dust3r文件夹里,打开终端运行如下代码,注意要指定–image_size参数,不然可能会因为图像大小而报错。
python demo.py --weights checkpoints/DUSt3R_ViTLarge_BaseDecoder_512_linear.pth --image_size 512 # Use --image_size to select the correct resolution for your checkpoint. 512 (default) or 224 # Use --local_network to make it accessible on the local network, or --server_name to specify the url manually # Use --server_port to change the port, by default it will search for an available port starting at 7860 # Use --device to use a different device, by default it's "cuda"
运行后会在终端里出现一个网址,复制这个网址并在浏览器中打开,出现以下界面:
然后在file那一栏里上传你的图片,注意,如果你要上传好几张图片时,记得同时拖进去,不要一张一张地放,不然你可能就只会放进去一张图片。然后你可以修改下面的参数,默认的也行。最后点击Run即可生成3D图形。
下面是星主用手机拍摄桌面上的水杯而生成的3D图。
看着效果还不错。下面是同时生成的深度图和置信图
至此,星主的分享就结束了,详细的情况大家可以去浏览论文。最后,星主贴心的为大家附上DUSt3R整个文件,包括人家的预训练权重。
通过网盘分享的文件:dust3r
链接: https://pan.baidu.com/s/1sYNrJbStoi0wHbRFwnAk5Q?pwd=k9sx 提取码: k9sx
–来自百度网盘超级会员v4的分享
参考文献
[1] Wang, S., Leroy, V., Cabon, Y., Chidlovskii, B., & Revaud, J. (2023). DUSt3R: Geometric 3D Vision Made Easy. ArXiv, abs/2312.14132.
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/154512.html