网站首页 > 技术文章 正文
张俊武 唐振宇 投稿
量子位 | 公众号 QbitAI
只需两分钟,玩转图片转3D!
还是高纹理质量、多视角高一致性的那种。
不管是什么物种,输入时的单视图图像还是这样婶儿的:
两分钟后,3D版大功告成
新方法名为Repaint123,核心思想是将2D扩散模型的强大图像生成能力与再绘策略的纹理对齐能力相结合,来生成高质量、多视角一致的图像。
此外,该研究还引入了针对重叠区域的可见性感知自适应再绘强度的方法。
Repaint123一举解决了此前方法多视角偏差大、纹理退化、生成慢等问题。
目前项目代码还未在GitHub公布,就有100+人赶来标星码住:
Repaint123长啥样?
目前,将图像转换为3D的方法通常采用Score Distillation Sampling (SDS)。尽管该方法的结果令人印象深刻,但存在一些问题,如多视角不一致、过度饱和、过度平滑的纹理以及生成速度缓慢。
为了解决这些问题,来自北京大学、鹏城实验室、新加坡国立大学、武汉大学的研究人员提出了Repaint123。
总的来说,Repaint123有这几点贡献:
(1)Repaint123通过综合考虑图像到3D生成的可控重绘过程,能够生成高质量的图片序列,并确保这些图片在多个视角下保持一致。
(2)Repaint123提出了一个简单的单视图3D生成的基准方法。
在粗模阶段,它利用Zero123作为3D先验,并结合SDS损失函数,通过优化Gaussian Splatting几何,快速生成粗糙的3D模型(仅需1分钟)。
在细模阶段,它采用Stable Diffusion作为2D先验,并结合均方误差(MSE)损失函数,通过快速细化网格纹理,生成高质量的3D模型(同样只需1分钟)。
(3)大量的实验证明了Repaint123方法的有效性。它能够在短短2分钟内,从单张图像中生成与2D生成质量相匹配的高质量3D内容。
下面来看具体方法。
Repaint123专注于优化mesh细化阶段,其主要改进方向涵盖两个方面:生成具有多视角一致性的高质量图像序列以及实现快速而高质量的3D重建。
1、生成具有多视角一致性的高质量图像序列
生成具有多视角一致性的高质量图像序列分为以下三个部分:
DDIM反演
为了保留在粗模阶段生成的3D一致的低频纹理信息,作者采用了DDIM反演将图像反演到确定的潜在空间,为后续的去噪过程奠定基础,生成忠实一致的图像。
可控去噪
为了在去噪阶段控制几何一致性和长程纹理一致性,作者引入了ControlNet,使用粗模渲染的深度图作为几何先验,同时注入参考图的Attention特征进行纹理迁移。
此外,为了执行无分类器引导以提升图像质量,论文使用CLIP将参考图编码为图像提示,用于指导去噪网络。
重绘
渐进式重绘遮挡和重叠部分为了确保图像序列中相邻图像的重叠区域在像素级别对齐,作者采用了渐进式局部重绘的策略。
在保持重叠区域不变的同时,生成和谐一致的相邻区域,并从参考视角逐步延伸到360°。
然而,如下图所示,作者发现重叠区域同样需要进行细化,因为在正视时之前斜视的区域的可视分辨率变大,需要补充更多的高频信息。
为了选择适当的细化强度,以在提高质量的同时保证忠实度,作者借鉴了投影定理和图像超分的思想,提出了一种简单而直接的可见性感知的重绘策略来细化重叠区域。
2、快速且高质量的3D重建
正如下图所展示的,作者在进行快速且高质量的3D重建过程中,采用了两阶段方法。
首先,他们利用Gaussian Splatting表示来快速生成合理的几何结构和粗糙的纹理。
同时,借助之前生成的多视角一致的高质量图像序列,作者能够使用简单的均方误差(MSE)损失进行快速的3D纹理重建。
一致性、质量和速度最优
研究人员对多个单视图生成任务的方法进行了比较。
在RealFusion15和Test-alpha数据集上,Repaint123取得了在一致性、质量和速度三个方面最领先的效果。
同时,作者也对论文使用的每个模块的有效性以及视角转动增量进行了消融实验:
并且发现,视角间隔为60度时,性能达到峰值,但视角间隔过大会减少重叠区域,增加多面问题的可能性,所以40度可作为最佳视角间隔。
论文地址:https://arxiv.org/pdf/2312.13271.pdf
代码地址:https://pku-yuangroup.github.io/repaint123/
项目地址:https://pku-yuangroup.github.io/repaint123/
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
- 上一篇: Python实现机器学习算法——Lasso回归
- 下一篇: 机器学习的中“损失函数”是指什么?
猜你喜欢
- 2024-10-12 淘宝首页那些“辣眼睛”的图去哪了?
- 2024-10-12 基于AI的超分辨技术在RTC领域的技术难点与挑战
- 2024-10-12 最炫酷的损失函数 损失函数有哪些,分别用在什么地方
- 2024-10-12 机器学习的中“损失函数”是指什么?
- 2024-10-12 「AI实战」快速掌握TensorFlow(四):损失函数
- 2024-10-12 Python实现机器学习算法——Lasso回归
- 2024-10-12 多重共线性是如何影响回归模型的 多重共线性的存在会影响模型在预测上的应用
- 2024-10-12 神经网络算法 - 一文搞懂Loss Function(损失函数)
- 2024-10-12 谷歌大脑:只要网络足够宽,激活函数皆可抛
- 2024-10-12 深度学习:我应该使用哪些损失函数和激活函数?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)