[23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution

news2024/11/16 3:47:02

paper | proj | code

  • 提出一种基于K-Planes的4D point cloud Representation;
  • 提出一种Hybrid appearance model,包含image blending model和SH model。其中,image blending model将3D点映射回原图中求得,SH model通过模型预测求得。
  • 提出一种可导的深度排序算法,训练时通过Pytorch计算,渲染时通过OpenGL计算,实现GPU支持的快速光栅化。
  • 提出一系列减少推理渲染的方法:
    • 提前计算点的位置、密度、颜色系数和blending系数等;
    • 减少光栅化每个像素所需要的点数;
    • 将模型从32-bit float降为16-bit

目录

摘要

方法

Modeling Dynamic Scenes with Point Clouds

Differentiable Depth Peeling

Training

Inference

实验

Datasets and metrics

Comparison Experiments

Ablation Studies

Storage analysis.

Rendering Speed Analysis


摘要

  • 现有问题:动态场景中,渲染高分辨率图片很慢;
  • 本文:
    • 提出基于K-Planes的4D point cloud Representation,支持硬件光栅化,实现快速渲染;
    • 提出一种hybrid appearance model,在提高渲染质量的同时,保证渲染效率;
    • 设计一种可导的深度排序算法(deep peeling algorithm),实现从RGB视频中快速建模;
  • 实验证明,在一张4090 GPU上,可以实现对1080分辨率的400FPS渲染,4K分辨率的80FPS渲染。

方法

Modeling Dynamic Scenes with Point Clouds

  • 通过space-carving algorithm从视频中提取粗点云序列;
  • 点特征通过K-Planes表达,给定坐标和时间(x, y, z, t),可得特征:

  • 点特征送入Radius MLP和Density MLP,预测该点的密度r和半径\sigma
  • 该点的颜色通过两个模型计算,分别是离散的image blending model和连续的SH model。
    • image blending model是指,给定空间中任意一点,可投影到输入图片上,检索对应RGB值。在本文中,多张图片检索的RGB值,通过网络预测加权系数,加权求和以得到该点的c_{ibr}。由于检索图像与视角无关,本文仅考虑与视角最近的N^{'}张图片。image blending model除系数外,可以提前计算。因此,可以在提高视觉质量的同时,不增加过多计算。
    • SH model,则是将点特征送入SH MLP,预测得到c_{sh}
    • 最终,该点颜色由以下公式计算:

Differentiable Depth Peeling

  • 对于像素u,首先找到距离该点相机视角最近的K个点。
  • 用体渲染的方式,通过K个点计算该点颜色。首先计算密度,其中\pi(x)是将点投影到2D图像上:

  • 在训练中,本文基于PyTorch实现\pi。在推理阶段,本文用OpenGL计算。
  • 最终,该像素点颜色:

Training

包含三个损失:

  • MSE Loss:
  • LPIPS Loss
  • Mask 损失:

  • 最终训练损失为:

Inference

通过三个方法加速推理:

  • 提前计算点位置,半径,密度,SH系数和color blending系数;
  • 将模型从32-bit floats转为16-bits,可以增加20FPS;
  • 将渲染时的超参数K从15降低为12,可以在不影响视觉质量的情况下,增加20FPS;

实验

Datasets and metrics

  • DNA-Rendering:15 FPS, 10 s, 60 views, 4K/2K相机,训练分辨率为1024 x 1224 / 1125 x 1536
  • ENeRF-Outdoor:30 FPS, 1080p相机,训练分辨率为960 x 540
  • NHR:训练分辨率为512 x 612 / 384 x 512
  • Neural3DV:训练分辨率为1352 x 1224

Comparison Experiments

Ablation Studies

  • Ablation study on the 4D embedding. w/o f
  • Ablation study on the hybrid appearance model. w/.o c_{ibr}
  • Ablation study on loss functions.

Storage analysis.

Rendering Speed Analysis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1243759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习/sklearn笔记:MeanShift

1 算法介绍 一种基于质心的算法通过更新候选质心使其成为给定区域内点的均值候选质心的位置是通过一种称为“爬山”技术迭代调整的,该技术找到估计的概率密度的局部最大值 1.1 基本形式 给定d维空间的n个数据点集X,那么对于空间中的任意点x的均值漂移…

HCIP --- HCIA(部分汇总)--- 点对点网络

抽象语言 --- 电信号 抽象语言 --- 编码 编码 --- 二进制 二进制 --- 电信号 处理电信号 OSI/RM ---- 开放式系统互联参考模型 --- 1979 --- ISO --- 国际标准化组织 核心思想 --- 分层 应用层 --- 提供各种应用程序,抽象语言转换成编码,人机交互…

导数、方向导数、梯度方向、梯度

导数:自变量改变一定量时(大于或小于0),因变量改变多少 方向导数:限定在某一个方向上,自变量改变一定量时(大于0),因变量改变多少 梯度方向:方向导数最大的…

PHP 语法||PHP 变量

PHP 脚本在服务器上执行&#xff0c;然后将纯 HTML 结果发送回浏览器。 基本的 PHP 语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束&#xff1a; <?php // PHP 代码 ?> 值得一提的是&#xff0c;通过设定php.ini的相…

【MATLAB源码-第87期】基于matlab的Q-learning算法栅格地图路径规划,自主选择起始点和障碍物。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 Q-learning是一种无模型的强化学习算法&#xff0c;适用于有限的马尔可夫决策过程&#xff08;MDP&#xff09;。它的核心是学习一个动作价值函数&#xff08;action-value function&#xff09;&#xff0c;即Q函数&#xf…

YOLO目标检测——泄露检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;泄露检测数据集说明&#xff1a;泄露检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含多个类别标签说明&#xff1a;使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含voc(xml)、coco(json)和yo…

Visual Studio(VS) C++程序LNK2005错误,提示“error LNK2005: _XXX已经在xxx.obj中定义”解决方案

1.问题如图 2.出现原因 项目中有多个源文件或头文件&#xff0c;include后导致有些变量重复定义&#xff0c;加上Visual Studio新版版要求更严格 3.解决办法 查询到的解决办法很多不好用&#xff0c;此处记录解决自己问题的一个办法&#xff1a;直接让编译器忽略第二次定义的…

Linux CentOS7的主机名

主机名&#xff0c;也称为计算机名&#xff0c;是提供给网络连接的设备&#xff08;如系统、交换机、路由器等&#xff09;的识别名称。同一网络中不能有两个主机名相同的系统。Linux系统给当前主机命名的目的是能够容易记住&#xff0c;尤其是在部署集群的时候更加方便。 一般…

【C++】POCO学习总结(五):功能介绍

【C】郭老二博文之&#xff1a;C目录 1、POCO 简介 github&#xff1a;https://github.com/pocoproject/poco 官网&#xff1a;https://pocoproject.org/index.html POCO第一个版本于 2005 年 2 月发布 POCO完全免费&#xff1a;POCO C 库根据 Boost 软件许可证获得许可。非…

【C语法学习】26 - strcmp()函数

文章目录 1 函数原型2 参数3 返回值4 比较机制5 示例5.1 示例1 1 函数原型 strcmp()&#xff1a;比较str1指向的字符串和str2指向的字符串&#xff0c;函数原型如下&#xff1a; int strcmp(const char *str1, const char *str2);2 参数 strcmp()函数有两个参数str1和str2&a…

【python爬虫】scrapy在pycharm 调试

scrapy在pycharm 调试 1、使用scrapy创建一个项目 scrapy startproject tutorial 2、在朋友pycharm中调试scrapy 2.1 通过文件run.py调试 在根目录下新建一个文件run.py(与scrapy.cfg文件的同一目录下), debug ‘run’即可 # -*- coding:utf-8 -*- from scrapy import c…

excel单元格加背景颜色不生效?

如果在 Excel 中设置单元格背景颜色而发现不生效&#xff0c;可能有几个原因。以下是一些常见的解决方法&#xff1a; 1. **单元格锁定&#xff1a;** 检查所在单元格是否被锁定。如果单元格被锁定&#xff0c;并且工作表被保护&#xff0c;你可能无法更改其背景颜色。在工作表…

基于51单片机数字电流表数码管显示( proteus仿真+程序+设计报告+讲解视频)

电流表 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接&#xff1a; 基于51单片机数字电流表数码管显示( proteus仿真程序设计报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器…

Flutter学习(四)如何取消listview的越界效果

背景 在flutter的开发过程中&#xff0c;ListView是很常见的一个组件&#xff0c;但是&#xff0c;由于ListView的某些自带的体验&#xff0c;导致不太好的用户体验。例如ListView中&#xff0c;滑动到顶部或者底部的时候&#xff0c;再次滑动&#xff0c;会有越界的效果&…

(保姆级教程)Mysql中事务的概念,什么是事务,如何使用事务,以及事务的隔离级别,什么是脏读、幻读,代码演示

继续讲解 Mysql 数据库中最重要的一个概念&#xff1a;事务 文章目录 事务1.1 什么是事务1.2 执行原理1.3 如何操作事务1.4 事务的特点&#xff08;ACID原则&#xff09;1.5 事务并发1.6 事务隔离级别1.6.1 事务并发问题操作演示1.6.2 脏读演示1.6.3 不可重复读演示1.6.4 幻读演…

CANdelaStudio 使用教程 1

文章目录 CANdelaStudio 软件下载CANdelaStudio 软件的权限View Edition 和 Admin Edition 区别&#xff1a;打开文件 CDD / CDDT 文件新建 CDD 文件新建 CDDT 文件CDD 和 CDDT 文件的区别 CANdelaStudio 软件下载 1、 来到 Vector 官网下载中心 https://www.vector.com/cn/zh…

网工内推 | Base北京,国企网工运维,最高30k*14薪,IE认证优先

01 万方数据股份有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1.负责完成基础网络组网工作&#xff1b; 2.负责网络对象的访问控制及安全策略&#xff0c;配置VLan&#xff0c;黑白名单、地址转换、故障排查及网络安全监控工作&#xff1b; 3.负责对操作系…

如何在AD上创建完整的项目

首先&#xff0c;我们先安装好AD&#xff0c;这里我使用的是AD22&#xff0c;安装过程如下&#xff1a; Altium Designer 22下载安装教程-CSDN博客 Altium Designer 22是全球领先的PCB设计软件之一&#xff0c;为电路板设计师提供了一种集成的解决方案&#xff0c;旨在简化和加…

Spring+Mybatis解析

源码执行流程 通过MapperScan导入MapperScannerRegistrar类MapperScannerRegistrar类实现了ImportBeanDefinitionRegistrar接口&#xff0c;Spring启动会调MapperScannerRegistrar类中的registerBeanDefinitions方法在registerBeanDefinitions方法中注册一个MapperScannerConf…

Mock 数据

1. Mock 数据的方式 2. json-server 实现 Mock 数据 项目中安装json-server npm i -D json-server准备一个json文件添加启动命令 //package.json"scripts": {"start": "craco start","build": "craco build","test&q…