当前位置: 首页 > news >正文

计算机视觉: 基于隐式BRDF自编码器的文生三维技术

论文链接: MATLABER: Material-Aware Text-to-3D via LAtent BRDF auto-EncodeR

背景

在这里插入图片描述

得益扩散模型和大量的text - image 成对的图片, 现在文生2D的模型已经比较成熟的框架和模型,主流的技术比如说stable diffusion 和 midjourney 以及工业领域runway 等。当2D技术日渐成熟之后,开发者的眼光逐渐转向了文生3D的领域,开创性的工作由DreamFusion提出的Relying on promising Score Distillation Sampling (SDS) 一文中提出SDS_loss,简单的来说其是一种优化3D表示的技术,通过向不同的方向去渲染图片生成,使得生成的图片更加的逼近真实的图片。



在这里插入图片描述

在Dream Dusion工作之后,又有几项突出性的工作提出:

  1. Magic3D: 第一个将DreanFusion生成模型的分辨率由64 提升至512 ,其大致可以分为两个阶段,第一个阶段用NERF , 第二个阶段将模型转成Mesh的格式再给其上色。
  2. Fantasia3D: 同时实现了一个更好的geometry 和现实纹理的生成
  3. ProlificDreamer: 通过优化SDS loss ,从而实现更加逼真的纹理效果。

但是上述的几种方法中,虽然都取得了不错的效果,但是在这些工作中材质的因素却鲜有人考虑,比如说dreamFusion 只考虑了光照的反射因素。而Fantasia3D虽然使用BRDF的材质进行建模,但是其优化的过程中使用的固定的enviroment map所以导致物体非常容易与环境的光照进行耦合。 而真实理想的环境下,我们应当期望不同的材质能与不同的环境做解耦从而形成更加逼真的真实环境下的3D模型。但是由于少有的文本-材料对数据集,目前仅有一些BRDF材料数据库,因此前人的工作在对材质的因素还是止步不前。



MATLABER

在这里插入图片描述

作者提出了一种隐式的BRDF自编码器去实现一个材质的prior。其工作原理大致如上图,首先作者是在前人公开的一个7维的BRDF材质的数据集上做训练,首先将数据通过一个Encoder得到一个隐式空间上的code然后再通过一个Decoder 得到了一个重建后的BRDF材质, 然后去计算重建的损失。除此之外,作者参考前人的工作通过线性插值的方法得到了一个平滑的latent space 记作Zn, 然后Zn通过一个Decoder-Encoder的结构可以恢复成Zn’ 其中添加了Cyclic Loss 和Smoothness Loss 以及初始的latent code 和 经过插值得到的smooth latent space 中间的KL散度的损失。将上述的这四个Loss通过加权平均加起来之后就是整个BRDF自编码器的损失了。可以看到经过优化后的模型恢复的BRDF的材质跟原始的材质还是比较像的。

在这里插入图片描述

通过上一节介绍的BRDF材质的自编码器训练好后,作者就将其整合到几何建模的3D-generation model (参考Fantasia3D工作)里。其整个pipeline,如上图,材质的MLP首先去预测latnt code Z然后通过前文训练好的Decoder去重塑一个7维的BRDF材质,在通过渲染管线把图片渲染出来,再通过将图片加上SDS loss 再去进行扩散的过程,去更新材质的MLP 以及几何建模里的参数,从而实现整个Pipeline。

在这里插入图片描述

为了解决材质与环境解耦的一些问题,在训练的过程中,作者提出了几个trick:

  • 使用了多个环境地图,人为的去创造多个反应光从而使得模型泛化能力增强
  • 训练过程中,不断的旋转环境光,使其模型多光照角度的解耦能力增加
  • SDS 损失去自适应的针对不同材质的变化
  • 添加材质损失的正则项,使得生成的BRDF材质更加的平滑


下面是几个demo,可以看到整个模型生成的3D模型对环境光的解耦能力还是十分真实的。
在这里插入图片描述


除此之外,由于材质的latent code 是一个十分平滑的空间,所以整个模型还可以通过对atent code 进行线性插值的方法去改变最终生成的结果,下面是几个例子可以将材质由黄金变成银,也可以将颜色进行改变。

在这里插入图片描述



整体来说,作者提出的模型基于几个trick相比于前人的工作效果还是很好的。作者在原文中从四个方面(1.3维物体和真实的物体是否能对齐 2. 外观是否真实 3. 外观是否细节 4. 材质与环境光的解耦能力)也做了量化对比实验,可以看到作者提出的模型相比于之前的模型在后面三个维度都是最高的。 Algnment 的不足,作者解释是因为stable diffusion不足导致的,是clip model因为其对文本的理解能力相比于Magic3D模型使用的text-iamge-diffusion model 更差,所以导致对齐的能力相比于Magic3D模型更差。

在这里插入图片描述

未来工作

  • 针对形状和外观能力对齐能力的优化
  • 更大的BRDF的数据库
  • 生成的模型与环境更好的解耦能力
  • 基于SDS loss的优化
  • 3D物体拓展到世界场景
http://www.lryc.cn/news/188923.html

相关文章:

  • 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测
  • Java队列相关面试题
  • 水库大坝除险加固安全监测系统解决方案
  • android native C++编程实现数据库加密sqlcipher
  • 第五节 C++ 循环结构(算法)
  • 接口与抽象类的区别
  • 短视频账号矩阵系统源码saas===独立部署
  • 香港专用服务器拥有良好的国际网络连接
  • IP/SIP网络有源吸顶喇叭 20W扬声器 可供POE供电
  • 基于Keil a51汇编 —— 程序模板文件以及规则
  • 案例研究 | 玉湖冷链基于JumpServer实现管理安全一体化
  • JavaEE初阶学习:HTTP协议和Tomcat
  • ASEMI整流桥GBU810参数,GBU810封装
  • docker应用记录总结
  • Jenkins 添加节点Node报错JNI error has occurred UnsupportedClassVersionError
  • swift ui 布局 ——Stack(HStack、VStack、ZStack)
  • 淘宝天猫商品评论数据接口,淘宝天猫商品评论API接口,淘宝API
  • C# Onnx GFPGAN GPEN-BFR 人像修复
  • ubuntu安装依赖包时显示需要先安装其所需要的各种安装包)apt-get源有问题
  • C/C++之自定义类型(结构体,位段,联合体,枚举)详解
  • HBase 表如何按照某表字段排序后顺序存储的方法?
  • webrtc用clang编译支持h264,支持msvc调用库
  • 迁移学习是什么?
  • 哈希的应用--位图和布隆过滤器
  • mac M2芯片在使用Android studio 编译问题bad cpu type in executable android
  • M4Singer ubuntu 22.04 4060ti16g ModuleNotFoundError: No module named ‘gradio‘
  • postman 密码rsa加密登录-2加密密码
  • 如何去图片水印?这些方法解决你的问题
  • Qt通过正则表达式筛选出字符串中的手机号
  • 【Pytorch】深度学习之数据读取