写点什么

文字秒变 3D?苹果发布最新 AI 生成模型 GAUDI,根据文字提示创建 3D 场景

  • 2022-08-02
  • 本文字数:2862 字

    阅读完需:约 9 分钟

文字秒变3D?苹果发布最新AI生成模型GAUDI,根据文字提示创建3D场景

继 AI 将文字变成图片后,又有 AI 可以将文字变成 3D 场景了。

苹果发布新 AI 系统 GAUDI,能在室内生成 3D 场景


近日,苹果 AI 团队发布最新 AI 系统 GAUDI,GAUDI 基于用于生成沉浸式 3D 场景的神经架构 NeRFs,可以根据输入的文字提示生成 3D 室内场景。


GitHub 地址:https://github.com/apple/ml-gaudi


在此之前,OpenAI 的 DALL-E 2 以及谷歌的 Imagen 和 Parti 等 AI 系统都展示了将文字生成图片的能力,但生成的内容仅限于 2D 图像和图形。


2021 年年末,谷歌通过 Dream Fields 首次展示了新的 AI 系统,该系统将 NeRF 生成 3D 视图的能力与 OpenAI 的 CLIP 评估图像内容的能力相结合。而苹果 AI 团队发布的 GAUDI 则更进一步,能够生成沉浸式 3D 场景的神经架构,并可以根据文字提示创建 3D 场景。


例如,输入“穿过走廊”或“上楼梯”,就可以看到执行这一动作的 3D 场景视频。


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    据了解,NeRFs 是一种主要用于 3D 模型和 3D 场景的神经存储介质,并能够从不同的相机视角进行渲染。


    此前,将生成 AI 扩展到完全不受约束的 3D 场景是一个尚未解决的问题。这背后的原因之一是受限于摄像机位置:虽然对于单个对象,每个摄像机位置都可以映射到一个圆顶,但在 3D 场景中,这些摄像机位置会受到对象和墙壁等障碍物的限制。


    对于这个难题,GAUDI 模型的解决方案是:相机姿态解码器对可能的相机位置进行预测,并确保输出是 3D 场景架构的有效位置。


    虽然当前 GAUDI 生成的 3D 场景视频质量很低,但这也预示了 AI 在未来新的可能,或许在 AI 的下一阶段,我们可以看到更多惊喜。

    GAUDI 背后的技术实现


    根据苹果方面的介绍,GAUDI 的目标是给定 3D 场景轨迹的经验分布时,学习得出生成模型。


    论文地址:https://arxiv.org/pdf/2207.13751.pdf


    具体技术实现方面,令 X = {xi∈{0,…,n}}表示所定义的经验分布示例集合,其中每个示例 xi 代表一条轨迹。每条轨迹 xi 被定义为相应的 RGB、深度图像与 6DOF 相机位姿的可变长度序列。


    苹果 AI 团队将学习生成模型这个任务拆分成两个阶段。首先,为每个示例 x ∈ X 获取一个潜在表示 z = [zscene, zpose],用于表达场景辐射场和在单独的解纠缠向量中的位姿。接下来,给定一组潜在的 Z = {zi∈{0,...,n}},目的就是学习分布 p(Z)。

    1.优化辐射场与相机姿势的潜在表示


    为每个示例 x ∈ X(即经验分布中的每条轨迹)寻找潜在表示 z ∈ Z。为了获得这一潜在表示,团队采用了无编码器视图,并将 z 解释为通过优化问题[2,35]找到的自由参数。为了将潜在 z 映射至轨迹 x,我们设计了一套网络架构(即解码器),可用于解析相机姿势与辐射场参数。这里的解码器架构由 3 个网络构成(如下图所示):



    负责将相机位姿与 3D 几何及场景外观分离的解码器模型架构。解码器包含三个子模块:解码器 d 将用于表示场景 zscene 的潜在代码作为输入,并通过三平面潜在编码 w 生成 3D 空间的分解表示。辐射场网络 f 则将 p ∈ R3 作为输入点,并以 W 为条件通过体积渲染(方程 1)预测出密度σ和信号 a。最后,我们通过网络 c 解码相机位姿。网络 c 将归一化的时间位置 s ∈ [-1, 1]作为输入,并以 zpose(表示整个轨迹 x 中的相机位姿)为条件,预测出相机位姿 T^ s ∈ SE(3)。


    • 相机位姿解码器网络 c(由θc 实现参数化)负责预测轨迹中归一化时间位置 s ∈ [-1, 1]处的相机位姿 T^ s ∈ SE(3),其中的 zpose 条件则代表整个轨迹的相机位姿。为了确保 c 的输出为有效相机位姿(例如 SE(3)的一个元素),输出一个 3D 向量,用以表示方向的归一化四元数 qs 外加 3D 平移向量 ts。

    • 场景解码器网络 d(由θd 实现参数化)负责预测辐射场网络 f 的条件变量。该网络将表示场景 zscene 的潜在代码作为输入,可预测出以轴对齐的三平面表示[37, 4] W ∈ R 3×S×S×F。与空间维度 S x S 和 F 通道的三个特征图[Wxy,Wxz,Wyz]相对应,每个轴分别对齐一个平面:xy、xz 与 yz。

    • 辐射场解码器网络 f(由θf 实现参数化)的作用,是使用方程 1 中的体积渲染议程重建图像级目标。其中 f 的输入为 p ∈ R 3 和三平面表示 W = [Wxy,Wxz,Wyz]。给定一个要预测辐射度的 3D 点 p = [i, j, k],将 p 正交投影至 W 中的每个平面,并执行双线性采样。将这 3 个双线性采样向量连接成 wxyz = [Wxy(i, j),Wxz(j, k),Wyz(i, k)] ∈ R 3F,用于调节辐射场函数 f。这里,苹果 AI 团队将 f 实现为输出密度值σ和信号 a 的 MLP。为了预测像素的值 v,使用体积渲染议程(参见方程 1),其中的 3D 点表示特定深度 u 处的光线方向 r(相对于像素位置)。

    • 方程1


    团队还确立了去噪重建目标,用以联合优化θd, θc, θf 和{z}i={0,...,n},详见方程 2。


    请注意,虽然潜在 z 是针对每个示例 x 独立优化的,但网络θd, θc, θf 的参数由所有示例 x ∈ X 均摊。与之前的自动解码方法[2,35]不同,每个潜在 z 在训练过程中都会受到与所有潜在模型的经验标准差成正比的加性噪声干扰,即 z = z+βN (0,std(Z)),从而导致收缩表示[46]。在这种情况下,β控制分布 z ∈ Z 的熵与重建项间的权衡:当β= 0 时,z 的分布为指示函数的集合;而β > 0 时,潜在空间则为非平凡结构(non-trivial structure)。使用一个较小的β > 0 值强制获得一个潜在空间,插值样本(或包含与经验分布具有小偏差的样本,即可能从采样后续生成模型中获得的样本)将受解码器支持以被包含其中。


    方程2


    使用两种不同的损失函数对参数θd, θf , θc 和潜在变量 z ∈ Z 进行优化。第一个损失函数 Lscene 负责测量在 zscene 中编码的辐射场与轨迹 x im s 中的图像之间的重建(其中 s 表示帧在轨迹中所处的归一化时间位置),这时需要给定实际相机位姿 Ts。


    对 RGB 使用 l2 损失函数,对 4 depth 1 使用 l1 损失函数。第二个损失函数 Lpose 则测量在 zpose 中编码的位姿 T^ s 与真实位姿之间的相机位姿重建差。对平移使用 l2 损失,对相机位姿的归一化四元数部分采用 l1 损失。尽管在理论上,归一化四元数并不一定唯一(例如 q 和-q),但在训练期间并未发现任何经验问题。

    2.预先学习


    给定一组潜在的 z ∈ Z,这些 z 由对方程 2 中目标的最小化产生。目的是通过学习获得一个生成模型 p(Z),并捕捉其分布(即在最小化方程 2 的目标之后,将 z ∈ Z 解释为潜在空间中经验分布的形式)。为了对 p(Z)进行建模,团队采用了去噪扩散概率模型(DDPM)[15],这是一种新近出现、基于分数匹配[16]的模型。该模型能够通过大量但有限的时间步数,学习马尔可夫链的逆向扩散。


    DDPMs 表明,这一逆向过程等效于学习一系列具有绑定权重的去噪自动解码器。DDPM 中的监督去噪目标使得学习这(Z)变得简单且可扩展。由此,我们就能学习得到一个强大的生成模型,该模型能够以无条件/有条件方式生成 3D 场景。为了训练先前的 pθp (Z),采用方程 3 中定义的目标函数。在方程 3 中,t 代表时间步长,~ N (0, I)为噪声,α¯t 为具有固定调度的噪声幅度参数,θp 则表示去噪模型。


    方程3


    在推理期间,团队会遵循 DDPM 中的推理过程以对 z ~ pθp (Z)进行采样。首先对 zT ~ N (0, I)采样,之后迭代应用θp 对 zT 进行梯度去噪,从而逆向扩散马尔可夫链以获得 z0。接下来,将 z0 作为输入提供给解码器架构,借此重建辐射场和相机路径。如果目标是学习潜在变量 p(Z|Y )的条件分布,则应给定配对数据{z ∈ Z, y ∈ Y },为去噪模型θ增加一个条件变量 y,由此得到θp (z, t, y)。

    2022-08-02 14:034004

    评论 1 条评论

    发布
    用户头像
    有点硬核,一般人看不懂。。。
    2022-08-03 08:40
    回复
    没有更多了
    发现更多内容

    MySQL实战45讲笔记(1)

    程序员老王

    msyql

    架构师训练营第四周作业

    张明森

    iOS 动画 - 窗景篇(三·完结)

    柯烂

    ios swift 动画 移动互联网 动效

    从0开始设计Flutter独立APP | 第二篇: 完整的国际化语言支持

    渔子长

    flutter 大前端

    限频/限流的一些思考

    i风语

    Java redis 微服务 sentinel ratelimiter

    对直播带货的一点思考

    Neco.W

    直播 直播带货

    融云年中大促钜惠来袭 IM+RTC 超值套餐最低6折起

    Geek_116789

    区块链≠分布式账本,别再傻傻分不清

    CECBC

    区块链技术 高考 信息防篡改

    ARTS - Week 4

    Khirye

    ARTS 打卡计划 arts

    为什么建议你使用枚举?

    王磊

    Java 枚举

    深入浅出kubernetes之WorkQueue详解

    博文视点Broadview

    Kubernetes 源码分析 k8s 队列 延迟队列

    揭秘!中国人一定要知道的北斗卫星系统

    程序那些事

    北斗卫星 北斗系统 卫星定位 卫星授时 黑科技

    势能造就下的互联网大厂程序员为什么去开滴滴了?

    非著名程序员

    程序员 程序人生 提升认知

    Dart vs Swift

    柠檬水

    swift dart

    创新管理体系标准ISO56002介绍

    涛哥 数字产品和业务架构

    数字化转型 创新

    IM聊天教程:发送图片/视频/语音/表情

    GoEasy消息推送

    websocket 即时通讯 聊天室 聊天

    海阅优品致力打造新零售蓝海

    Geek_116789

    MySQL系列 - SQL查询与修改执行过程

    俊俊哥

    MySQL 性能优化 关系型数据库 存储

    一二线城市知名 IT 互联网公司名单(新版)

    程序员生活志

    互联网 IT 大厂

    了不起的 TypeScript 入门教程 [1.2 w字]

    阿宝哥

    Java typescript 大前端 Web

    架构师训练营第四周学习总结

    张明森

    计算机操作系统基础(五)---Linux的进程管理

    书旅

    php 线程 多线程 操作系统 进程

    架构师训练营第四周作业

    烟雨濛濛

    玩转Java8中的 Stream 之从零认识 Stream

    Java小咖秀

    学习 面试 stream java8 经验

    那些会阻碍程序员成长的细节[3]

    MavenTalker

    程序员 职业规划 职业成长

    一群龙舟划手 “拍了拍” 你:端午节安康~

    博睿数据

    【写作群星榜】6.20~6.26 写作平台优秀作者 & 文章排名

    InfoQ写作社区官方

    写作平台 排行榜 热门活动

    软件架构语录

    烟雨濛濛

    重学 Java 设计模式:实战中介者模式「按照Mybatis原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」

    小傅哥

    设计模式 小傅哥 代码优化 代码规范 中介者模式

    告别静默式看房 融云音视频助力上海中原 App 上线 VR 带看服务

    Geek_116789

    来了!8M/S+速度,Pdown复活!

    程序员生活志

    文字秒变3D?苹果发布最新AI生成模型GAUDI,根据文字提示创建3D场景_语言 & 开发_核子可乐_InfoQ精选文章