3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d

news/2024/9/23 9:30:04/

3D 生成重建009-DreamGaussian使用gaussian splatting在两分钟内生成3d


文章目录

    • 0 论文工作
    • 1 论文方法
    • 2 效果

0 论文工作

DreamGaussian是第一个使用gaussian splatting方法进行3d生成的工作。论文最先使用gaussian splatting替代原来用nerf表示3d。整体架构依然保留了原来的SDS方法。论文采用了两阶段方法,第一阶段用sds损失生成一个GS3d表示并提出一个粗体的mesh表示。第二阶段用MSE对mesh的纹理进行表示。这个方法能用文本生成也能用图像生成。他的核心优势还是图像生成3d,因为他用到了zero123和MVD等3d-aware的扩散模型,可以根据输入图像生成偏移的新视图。
这个论文速度基本上在两分钟左右,这远远超越了原来的nerf表达形式的优化方法。能达到这一速度的原因有以下几点:1)GS表达的优化速度快,2)zero123等3d感知扩散模型,降低了SDS的寻优时间,3)二阶段的mesh表达等。

1 论文方法

如下图所示,整个过程分为三个步骤,两个阶段。第一阶段包括GS的生成和mesh提取。
对于生成GS,使用一个随机初始化的GS,用输入图像和随机旋转后的新视角图像进行约束,他的约束包含原始图的sds和新视图的MSE。由于zero123等MVD具备3d空间感知能力,一定程度解决多面问题,而且不需要额外的3d先验知识的引入。然后就是从GS的点云中提取mesh。在第二阶段就是对纹理进行优化,因为sds的很大程度会导致过平滑和缺少细节。在第二阶段通过对噪声程度进行控制,然后进行多步降噪计算MSE损失,对细节进行补充。可以确定的是这种策略还是限制细节能力。一种解决思路应该就是更好的MVD模型,另外一种就是改进第二阶段的优化策略。
第二阶段有挺大的改进策略,或者是使用更好的mesh提取方法,因为第一阶段的更好的几何也很重要。值得一提的是,这个方法在速度上的优势,GS和MVD的结合,可以确定这会是比较好的base。
在这里插入图片描述

2 效果

文本生成3d的效果,还是存在比较严重的多面问题和模糊缺乏细节。这种情况下多面比较严重,但是挑选的例子本身都是没有真正人脑所理解的正反面,所以不严重。当使用小动物或者人进行生成时,就会发现这个多面问题。常规引入额外3d先验知识的方法会有较大时间消耗。
3d9010a47.gif#pic_center" alt="在这里插入图片描述" />
图像生成3d的效果,能缓解多面问题,但是细节确实还是比较严重。论文中使用卡通例子的时候细节问题并不明显,但是当用其他风格图片的时候问题就会比较明显。这也是一个值得思考改进的点。
在这里插入图片描述


http://www.ppmy.cn/news/1460202.html

相关文章

重写muduo之TcpServer

目录 1、Callbacks.h 2、TcpServer.h 3、TcpServer.cc 1、Callbacks.h 回调操作 #pragma once#include <memory> #include <functional>class Buffer; class TcpConnection;using TcpConnectionPtrstd::shared_ptr<TcpConnection>; using ConnectionCall…

深度学习--DCGAN

代码之后的注释和GAN的一样&#xff0c;大家如果已经掌握GAN&#xff0c;可以忽略掉哦&#xff01;&#xff01;&#xff01; 在学习DCGAN之前&#xff0c;我们要先掌握GAN&#xff0c;深度学习--生成对抗网络GAN-CSDN博客 这篇博客讲的就是GAN的相关知识&#xff0c;还是很详…

手机App防沉迷系统-算法

import java.util.*; public class Main{public static void main(String[] args){Scanner innew Scanner(System.in);int nInteger.parseInt(in.nextLine());//已注册app列表List<Log> listnew ArrayList<>();for(int k0;k<n;k){String[] strin.nextLine().spl…

springboot 设置response和request的默认格式 驼峰或者SNAKE_CASE

springboot 设置response和request的默认格式 驼峰或者SNAKE_CASE。 我们使用默认配置的情况下&#xff0c;response和request是由jackson jason序列化和解析的&#xff0c;因此&#xff0c;我们只需要配置好jackson json的默认格式就可以。 要设置 jackson json默认的更多格式…

Linux程序依赖动态链接库目录管理和案例分析

Linux程序运行时查找依赖的动态链接库路径 编译时指定的-rpath&#xff1a;如果程序在编译时使用了-Wl,-rpath,链接器选项&#xff0c;那么程序在运行时也会在这些指定的目录中搜索库。环境变量LD_LIBRARY_PATH指定的目录&#xff1a;这是一个环境变量&#xff0c;可以包含一系…

SqlException 口令已经失效

Orcle密码过期了 //查看过期时间 SELECT * FROM dba_profiles s WHERE s.profileDEFAULT AND resource_namePASSWORD_LIFE_TIME;//修改过期时间 alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

PHP数值数组讲解,for循环及函数 遍历数组获取元素

源码 <?phpheader("Content-Type:text/html;Charsetutf8");//创建数值数组$arr1 array();//简化创建语法 $arr2 [];//通过索引为数组添加不同类型的元素$arr1[0] "zhangsan" ;//也可以乱序添加元素$arr1[2] 12 ;$arr1[1] true ; //true输出为1 f…

SOCKET编程(4):SOCKET实战

SOCKET实战 Writen()、Readn()函数 send()函数存在需要发送的字符数len小于函数返回的已发送的字符数(ssize_t)的问题 recv()函数存在需要接收的字符数len小于函数返回的已接收的字符数(ssize_t)的问题 解决上述问题通过Writen()、Readn()函数实现 //buff是数据存储地址&a…