前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >神经辐射场去掉「神经」,训练速度提升100多倍,3D效果质量不减

神经辐射场去掉「神经」,训练速度提升100多倍,3D效果质量不减

作者头像
机器之心
发布于 2021-12-28 08:11:05
发布于 2021-12-28 08:11:05
1.6K0
举报
文章被收录于专栏:机器之心机器之心

没有了神经网络,辐射场(Radiance Fields)也能达到和神经辐射场(Neural Radiance Fields,NeRFs)相同的效果,但收敛速度快了 100 多倍。 2020 年,加州大学伯克利分校、谷歌、加州大学圣地亚哥分校的研究者提出了一种名为「NeRF」的 2D 图像转 3D 模型,可以利用少数几张静态图像生成多视角的逼真 3D 图像。其改进版模型 NeRF-W (NeRF in the Wild)还可以适应充满光线变化以及遮挡的户外环境,分分钟生成 3D 旅游观光大片。

NeRF 模型 demo。

NeRF-W 模型 demo。

然而,这些惊艳的效果是非常消耗算力的:每帧图要渲染 30 秒,模型用单个 GPU 要训练一天。因此,后续的多篇论文都在算力成本方面进行了改进,尤其是渲染方面。但是,模型的训练成本并没有显著降低,使用单个 GPU 训练仍然需要花费数小时,这成为限制其落地的一大瓶颈。

在一篇新论文中,来自加州大学伯克利分校的研究者瞄准了这一问题,提出了一种名为 Plenoxels 的新方法。这项新研究表明,即使没有神经网络,从头训练一个辐射场(radiance field)也能达到 NeRF 的生成质量,而且优化速度提升了两个数量级。

  • 论文链接:https://arxiv.org/pdf/2112.05131.pdf
  • 项目主页:https://alexyu.net/plenoxels/
  • 代码链接:https://github.com/sxyu/svox2

他们提供了一个定制的 CUDA 实现,利用模型的简单性来达到可观的加速。在有界场景中,Plenoxels 在单个 Titan RTX GPU 上的典型优化时间是 11 分钟,NeRF 大约是一天,前者实现了 100 多倍的加速;在无界场景中,Plenoxels 的优化时间大约为 27 分钟,NeRF++ 大约是四天,前者实现了 200 多倍的加速。虽然 Plenoxels 的实现没有针对快速渲染进行优化,但它能以 15 帧 / 秒的交互速率渲染新视点。如果想要更快的渲染速度,优化后的 Plenoxel 模型可以被转换为 PlenOctree(本文作者 Alex Yu 等在一篇 ICCV 2021 论文中提出的新方法:https://alexyu.net/plenoctrees/)。

‍具体来说,研究者提出了一个显式的体素表示方法,该方法基于一个不含任何神经网络的 view-dependent 稀疏体素网格。新模型可以渲染逼真的新视点,并利用训练视图上的可微渲染损失和 variation regularizer 对校准的 2D 照片进行端到端优化。

他们把该模型称为 Plenoxel(plenoptic volume elements),因为它由稀疏体素网格组成,每个体素网格存储不透明度和球谐系数信息。这些系数被 interpolated,以在空间中连续建模完整的全光函数。为了在单个 GPU 上实现高分辨率,研究者修剪了空体素,并遵循从粗到细的优化策略。虽然核心模型是一个有界体素网格,但他们可以通过两种方法来建模无界场景:1)使用标准化设备坐标(用于 forward-facing 场景);用多球体图像围绕网格来编码背景(用于 360° 场景)。

Plenoxel 在 forward-facing 场景中的效果。

‍‍

Plenoxel 在 360° 场景中的效果。‍

该方法表明,我们可以使用标准工具从反问题中进行逼真体素重建,包括数据表示、forward 模型、正则化函数和优化器。这些组件中的每一个都可以非常简单,并且仍然可以实现 SOTA 结果。实验结果表明,神经辐射场的关键要素不是神经网络,而是可微分的体素渲染器。

框架概览‍

Plenoxel 是一个稀疏体素网格,其中每个被占用的体素角存储一个标量不透明度σ和每个颜色通道的球谐系数向量。作者将这种表征称为 Plenoxel。任意位置和观察方向上的不透明度和颜色是通过对存储在相邻体素上的值进行三线性插值并在适当的观察方向上评估球谐系数来确定的。给定一组校准过的图像,直接使用 training ray 上的渲染损失来优化模型。模型的架构如下图 2 所示。

上图 2 是稀疏 Plenoxel 模型框架的概念图。给定一组物体或场景的图像,研究者在每个体素处用密度和球谐系数重建一个:(a)稀疏体素(Plenoxel)网格。为了渲染光线,他们(b)通过邻近体素系数的三线性插值计算每个样本点的颜色和不透明度。他们还使用(c)可微体素渲染来整合这些样本的颜色和不透明度。然后可以(d)使用相对于训练图像的标准 MSE 重建损失以及总 variation regularizer 来优化体素系数。

实验结果

研究者在合成的有界场景、真实的无界 forward-facing 场景以及真实的无界 360° 场景中展示了模型效果。他们将新模型的优化时间与之前的所有方法(包括实时渲染)进行了对比,发现新模型速度显著提升。定量比较结果见表 2,视觉比较结果如图 6、图 7、图 8 所示。

另外,新方法即使在优化的第一个 epoch 之后,也能获得高质量结果,用时不到 1.5 分钟,如图 5 所示。

使用 NVIDIA Riva 快速构建企业级 ASR 语音识别助手

NVIDIA Riva 是一个使用 GPU 加速,能用于快速部署高性能会话式 AI 服务的 SDK,可用于快速开发语音 AI 的应用程序。Riva 的设计旨在帮助开发者轻松、快速地访问会话 AI 功能,开箱即用,通过一些简单的命令和 API 操作就可以快速构建高级别的语音识别服务。该服务可以处理数百至数千音频流作为输入,并以最小延迟返回文本。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
通过jackson注解让json按要求返回信息
后端开发的接口在返回给前端数据的时候,有些敏感信息是不能返回的,需要我们的屏蔽掉,这里说一种方式,使用的是jackson-annotations包里的注解。
用户1956326
2019/07/05
8450
重学springboot系列之JSON处理工具类
fastjson为人诟病的问题:虽然fastjson速度上有一定的优势,但是其为了追求速度,很大程度放弃了JSON的规范性。因此还时不时的在有些版本中暴露安全问题。大家如果有机会去看一下fastjson的github代码,其代码质量不是很高。所以用不用fastjson在国内软件界还是有争议的,在国外基本没人用。
大忽悠爱学习
2021/12/07
2.6K0
重学springboot系列之JSON处理工具类
卧槽,被SpringBoot整合原生OpenFegin坑惨了(非SpringCloud)!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/11/09
1.4K0
Jackson 注解
当涉及到在Java对象和JSON之间进行序列化和反序列化时,Jackson是一个非常流行的库。它提供了一组注解,可以用于控制对象的序列化和反序列化过程。这些注解使得开发人员能够更加灵活地控制JSON和Java对象之间的映射关系,从而简化了开发过程。
收心
2023/10/28
2770
SpringBoot2.x系列教程(十二)Jackson常用注解使用详解
在前些文章中我们曾提到一个问题,比如在Spring Boot中返回的对象,我们并不想直接返回所有的字段或者想指定字段的别名,那么该如何处理呢?
程序新视界
2020/02/02
1.1K0
中篇|Jackson注解的用法和场景,建议收藏
用于序列化和反序列化中特定格式的数据。虽然我们经常使用它来格式化时间,但是它不单单能格式化时间。
码农小胖哥
2021/07/22
2.2K0
3种 Springboot 全局时间格式化方式,别再写重复代码了
时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理。
程序员小富
2020/09/02
2.4K0
3种 Springboot 全局时间格式化方式,别再写重复代码了
SpringBoot中时间格式化的5种方法!
在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spring Boot 中时间格式化的几种方法。 ​
磊哥
2021/07/27
5.5K0
Jackson中@JsonProperty等常用注解
1.@JsonProperty:此注解作用于属性上,作用是把该属性的名称序列化成另一个自己想要的名称
Arebirth
2020/06/19
3.2K0
Jackson问题汇总
常见的json框架有:Jackson,FasJson(阿里的,万年没更新,积累了大量issue),Gson(谷歌的)。其中Jackson效率最高,性能最好,最为常用。本文基于2.11.3版本的Jackson。
雨临Lewis
2022/01/12
1.9K0
jackson中@JsonProperty、@JsonIgnore等常用注解总结
最近用的比较多,把json相关的知识点都总结一下,jackjson的注解使用比较频繁,
zpzp6
2023/03/25
4.3K0
放弃FastJson!一篇就够,Jackson的功能原来如此之牛(万字干货)
在上篇《经过多方调研,最终还是决定禁用FastJson!》中,讲了FastJson的基本使用以及存在的不确定性问题,所以最终决定在项目中放弃使用,进而选择市面上比较主流,Spring Boot默认绑定的JSON类库:Jackson。
程序新视界
2021/03/02
4K0
Spring mvc-文件上传与JSON-学习笔记
2.文件上传 2.1 多文件上传 3. JSON 3.1 JSON 使用流程分析 3.2 JSON数据 3.3 入门案例 3.3.1 目标 目标:请求JSON数据,响应JSON数据 案例:用户条件查询, 请求:查询条件 User 响应:查询结果 List 前提:spring mvc 底层 jackson 处理json数据。 3.3.2 步骤 步骤: 导入 jackson 相关的jar包 编写JavaBean:User 编写controller,接收请求数据 @RequestBody 编写
Maynor
2021/12/07
4480
Spring mvc-文件上传与JSON-学习笔记
SpringBoot 中 Json 格式化配置
SpringBoot 针对 jackson 是自动化配置的,如果需要修改,也可以自定义配置。
BUG弄潮儿
2021/10/08
3.1K0
SpringBoot 中 Json 格式化配置
jackson第二篇
请求远程的API,获得远程服务的JSON响应结果,并将其转换为Java POJO对象。
关忆北.
2020/10/15
5330
Jackson详解
其中 jackson-databind内部依赖了jackson-annotations与ackson-core,故只导入jackson-databind即可
Java微观世界
2025/01/21
3070
Jackson详解
SpringBoot实体类中的常用注解(二)
@ApiModel :在实体类上边使用,标记类时swagger的解析类。这样生成的Swagger的Api文档就会存在对该类的详细介绍。
Java学术趴
2022/06/27
2.4K0
SpringBoot实体类中的常用注解(二)
真没想到,Springboot能这样做全局日期格式化,有点香!
最近部门几位同事受了一些委屈相继离职,共事三年临别之际颇有不舍,待一切手续办妥帖,寒暄过后送他们出公司,几个老哥临别时冲我鬼魅一笑,我顿时心里一紧有种不好的预感,这事绝对没有这么简单。等我接手这几个大佬的项目后,应验了我的预感,此刻我居然有点后悔,为啥送别之时没揍他们一顿!哈哈哈~ 而这种打人的冲动,在我开始优化几位老哥的项目时候,变得越来越强烈。
程序员小富
2020/04/13
1.2K0
SpringBoot时间格式化
java中直接new Date属性会少8小时,而且格式乱。 我们在开发中经常性需要格式化时间且设置时区 一般要对返回和接收同时进行处理。 返回日期格式化 有两种方案 ,选一即可。 1.在字段上加入注解
乐心湖
2020/07/31
2.1K0
SpringBoot时间格式化
【json】Jackson的使用
首先定义一个实例: ObjectMapper mapper = new ObjectMapper();
全栈程序员站长
2022/07/21
6380
相关推荐
通过jackson注解让json按要求返回信息
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档