SUDS: Scalable Urban Dynamic Scenes

SUDS: Scalable Urban Dynamic Scenes:可扩展的城市动态场景

创新点

1.将场景分解为三个单独的哈希表数据结构,以高效地编码静态、动态和远场辐射场
2.利用无标签的目标信号,包括RGB图像、稀疏LiDAR、现成的自监督2D描述符,以及最重要的2D光流
通过光度、几何和特征度量重建损失对这些输入进行操作,使得SUDS能够将动态场景分解为静态背景、单个对象和它们的运动。

方法

Inputs

监督:(1)对齐的稀疏LiDAR深度测量,(2)2D自监督像素(DINO [10])描述符来实现语义操作,以及(3)2D光流预测来建模场景动态。
以N个视频的有序RGB图像(在不同的天气和光照条件下拍摄)及其关联的相机姿态作为输入。

Representation

Scene composition

SUDS将场景分解为三个分支:(a)静态分支,包含在视频中一致的非移动地形,(b)动态分支,用于分解视频特定对象(移动或其他),(c)远场环境地图,用于表示远处对象和天空
受Instant-NGP的启发,论文使用F维特征向量的多分辨率哈希表实现每个分支,然后是一个小的MLP,沿着哈希函数来索引视频

Hash tables

在这里插入图片描述

如图所示,对于给定的输入坐标(x,d,t,vid), x ∈ R 3 \mathbf{x}\in\mathbb{R}^{3} xR3表示位置, d ∈ R 3 \mathbf{d}\in\mathbb{R}^3 dR3表示视角方向, t ∈ { 1 , . . . , T } t\in\{1,...,T\} t{1,...,T}表示帧的编号, v i d ∈ { 1 , . . . , N } \mathbf{vid}\in\{1,...,N\} vid{1,...,N}表示视频编号,类似于instant-ngp,在不同分辨率级别(l∈L)的每个哈希表中搜索周围的体素,并对这些网格的顶点进行哈希处理。
instant-ngp博客学习链接
静态分支(vl,s): 使用3D空间体素(vl,s)。
动态分支(vl,d): 使用4D时空体素(vl,d)。
远场分支(vl,e): 使用3D体素(vl,e),通过规范化的3D方向向量实现。这些体素用于索引环境地图。哈希函数如下

i l , s = static_hash ( s p a c e ( v l , s ) ) i l , d = dynamic.hash ( s p a c e ( v l , d ) , t i m e ( v l , d ) , v i d ) i l , e = env _ hash ( d i r ( v l , e ) , v i d ) \begin{aligned} &\mathbf{i}_{l,s} =\text{static\_hash}(space(\mathbf{v}_{l,s})) \\ &\mathbf{i}_{l,d} =\text{dynamic.hash}(space(\mathbf{v}_{l,d}),time(\mathbf{v}_{l,d}),\mathbf{vid}) \\ &\mathbf{i}_{l,e} =\text{env}\_\text{hash}(dir(\mathbf{v}_{l,e}),\mathbf{vid}) \end{aligned} il,s=static_hash(space(vl,s))il,d=dynamic.hash(space(vl,d),time(vl,d),vid)il,e=env_hash(dir(vl,e),vid)

论文通过插值将特征值映射到最近的体素顶点,并使用梯度平均处理哈希冲突。为了处理不同视频中可能存在的移动物体和照明条件的变化,论文使用视频编号作为哈希的辅助输入,但不参与插值。这样,可以有效地索引每个视频的插值函数,而不会线性增加内存。将每个级别的结果连接成特征向量,并通过 MLP 获取每个分支的输出。

Static branch

静态分支将从哈希表获得的特征向量映射为视图相关颜色cs和视图无关密度σs。通过视频特定矩阵Avid和傅立叶编码的时间索引F(t)的乘积作为潜在嵌入输入:
σ s ( x ) ∈ R c s ( x , d , A v i d F ( t ) ) ∈ R 3 . \begin{aligned}&\sigma_s(\mathbf{x})\in\mathbb{R}\\&\mathbf{c}_s(\mathbf{x},\mathbf{d},A_{vid}\mathcal{F}(t))\in\mathbb{R}^3.\end{aligned} σs(x)Rcs(x,d,AvidF(t))R3.

使其能够考虑跨视频的显著变化以及单个视频内的平滑过渡

Dynamic branch

而在动态分支中,cd,σd可以随时间变化。在计算动态辐射度时,论文省略了潜在的代码。论文发现阴影在城市场景的外观中起着至关重要的作用,所以显式地对标量值ρd∈[0,1]的阴影场进行建模,用于调整静态颜色cs
σ d ( x , t , v i d ) ∈ R ρ d ( x , t , v i d ) ∈ [ 0 , 1 ] c d ( x , t , v i d , d ) ∈ R 3 \begin{aligned} &\sigma_{d}(\mathbf{x},\mathbf{t},\mathbf{vid})\in\mathbb{R} \\ &\rho_{d}(\mathbf{x},\mathbf{t},\mathbf{vid})\in[0,1] \\ &\mathbf{c}_d(\mathbf{x},\mathbf{t},\mathbf{vid},\mathbf{d})\in\mathbb{R}^3 \end{aligned} σd(x,t,vid)Rρd(x,t,vid)[0,1]cd(x,t,vid,d)R3
在这里插入图片描述
如上图,论文中学习了一个显式的阴影场(a)作为静态颜色的逐点减少,与(b)相比,能够实现更好的深度重建和静态/动态因子分解。

Far-field branch

因为天空需要考虑到远场辐射,并且在不同的视频中可能发生巨大的变化,论文使用一个依赖于观察方向d,和视频id vid的环境图 c e ( d , v i d ) ∈ R 3 \mathbf{c}_e(\mathbf{d},\mathbf{vid})\in\mathbb{R}^3 ce(d,vid)R3 对远处进行建模

Rendering

通过计算静态和动态分量的加权和,结合逐点阴影减少,得到任意位置的单个密度和辐射值
σ ( x , t , v i d ) = σ s ( x ) + σ d ( x , t , v i d ) c ( x , t , v i d , d ) = σ s σ ( 1 − ρ d ) c s ( x , d , A v i d F ( t ) ) + σ d σ c d ( x , t , v i d , d ) \begin{aligned} \sigma(\mathbf{x},\mathbf{t},\mathbf{vid})& =\sigma_{s}(\mathbf{x})+\sigma_{d}(\mathbf{x},\mathbf{t},\mathbf{vid}) \\ \mathbf{c}(\mathbf{x},\mathbf{t},\mathbf{vid},\mathbf{d})& =\frac{\sigma_{s}}{\sigma}(1-\rho_{d})\mathbf{c}_{s}(\mathbf{x},\mathbf{d},A_{vid}\mathcal{F}(t)) \\ &+\frac{\sigma_{d}}{\sigma}\mathbf{c}_{d}(\mathbf{x},\mathbf{t},\mathbf{vid},\mathbf{d}) \end{aligned} σ(x,t,vid)c(x,t,vid,d)=σs(x)+σd(x,t,vid)=σσs(1ρd)cs(x,d,AvidF(t))+σσdcd(x,t,vid,d)

通过沿光线在采样点处累积透射率,并强制光线与远场环境贴图相交,以获得相机光线在给定帧和视频中的颜色:
C ^ ( r , t , v i d ) = ∫ 0 + ∞ T ( t ) σ ( r ( t ) , t , v i d ) c ( r ( t ) , t , v i d , d ) d t + T ( + ∞ ) c e ( d , v i d ) , w h e r e T ( t ) = exp ⁡ ( − ∫ 0 t σ ( r ( s ) , t , v i d ) d s ) . \begin{aligned} &\hat{C}(\mathbf{r},\mathbf{t},\mathbf{vid}) =\int_{0}^{+\infty}T(t)\sigma(\mathbf{r}(t),\mathbf{t},\mathbf{vid})\mathbf{c}(\mathbf{r}(t),\mathbf{t},\mathbf{vid},\mathbf{d})dt +T(+\infty)\mathbf{c}_{e}(\mathbf{d},\mathbf{vid}), \\ &\mathrm{where}T(t) =\exp\left(-\int_0^t\sigma(\mathbf{r}(s),\mathbf{t},\mathbf{vid})ds\right). & \end{aligned} C^(r,t,vid)=0+T(t)σ(r(t),t,vid)c(r(t),t,vid,d)dt+T(+)ce(d,vid),whereT(t)=exp(0tσ(r(s),t,vid)ds).

Feature distillation(特征蒸馏)

对于如何将语义识别集成到SUDS系统中,论文将自监督的2D特征提取器(DINO)的输出作为教师模型蒸馏到SUDS网络中。类似于达到语义分割的目的
DINO:把自监督学习下的vision transformer的自注意力图拿出来可视化,会发现他可以抓到每个物体的轮廓,甚至匹配语义分割的效果。

对于将图像转换为密集的RH×W×C特征网格的特征提取器,其中H和W分别为特征网格的高度和宽度,C是通道数,系统在每个分支上都添加了一个C维输出头。这些输出头分别表示为:
在这里插入图片描述

论文通过在N个输入视频中随机采样射线批次,并最小化以下损失函数来联合优化所提的三个模型分支和每个视频的权重矩阵Avid
在这里插入图片描述

Reconstruction losses

论文最小化L2光度损失函数(与原始NeRF相同): L c ( r ) = ∥ C ( r ) − C ^ ( r ) ∥ 2 \mathcal{L}_{c}(\mathbf{r})=\left\|C(\mathbf{r})-\hat{C}(\mathbf{r})\right\|^{2} Lc(r)= C(r)C^(r) 2

同样地,论文最小化教师模型和我们的网络的特征输出之间的L1差异(DINO网络损失): L f ( r ) = ∥ F ( r ) − F ^ ( r ) ∥ 1 \mathcal{L}_{f}(\mathbf{r})=\left\|F(\mathbf{r})-\hat{F}(\mathbf{r})\right\|_{1} Lf(r)= F(r)F^(r) 1

为了利用深度测量结果,将LiDAR扫描投影到相机平面上,并将预期深度 D ^ ( r ) \hat{D}(r) D^(r)与测量深度进行比较
L d ( r ) = ∥ D ( r ) − D ^ ( r ) ∥ 2 where D ^ ( r ) = ∫ 0 + ∞ T ( s ) σ ( r ( s ) ) d s \begin{aligned}\mathcal{L}_d(\mathbf{r})&=\left\|D(\mathbf{r})- \hat{D}(\mathbf{r})\right\|^2 \\\text{where}\hat{D}(\mathbf{r})&=\int_0^{+\infty}T(s)\sigma(\mathbf{r}(s))ds\end{aligned} Ld(r)whereD^(r)= D(r)D^(r) 2=0+T(s)σ(r(s))ds

Flow

论文使用2D光流来监督3D场景流的预测。对于每个相机光线,论文生成一个2D位移向量,首先通过将光线上的场景流邻居进行加权求和来预测其在3D空间中的位置
在这里插入图片描述

3D warping

论文还发现强制保持3D颜色(和特征)的一致性非常有用;即颜色在移动时保持不变。为了实现这一点,论文使用预测的正向和反向3D流场st+1和st-1将每个样本沿着光线迁移至下一帧/上一帧在这里插入图片描述
变形后的颜色和体密度被渲染成了变形后的颜色和特征: C ^ w ( r ) \hat{C}^{w}\left(\mathbf{r}\right) C^w(r) F w ~ ( r ) \tilde{F^{w}}(\mathbf{r}) Fw~(r)
添加损失以确保扭曲的颜色(和特征)与当前帧的地面实况输入匹配,使用动态几何和变形后的动态几何之间的差异来降低损失
在这里插入图片描述
在这里插入图片描述

Flow regularization

使用3D场景流循环项来鼓励前向和后向场景流预测之间的一致性,降低由于遮挡而导致的模糊区域的损失
在这里插入图片描述
还通过Lsm(r)鼓励空间和时间平滑,通过 L s l o ( r ) = ∑ t ′ ∈ [ t − 1 , t + 1 ] ∑ x ∥ s t ′ ( x , t ) ∥ 1 . \mathcal{L}_{slo}(\mathbf{r})=\sum_{t^{\prime}\in[\mathbf{t}-1,\mathbf{t}+1]}\sum_{\mathbf{x}}\left\|s_{t^{\prime}}(\mathbf{x},\mathbf{t})\right\|_{1}. Lslo(r)=t[t1,t+1]xst(x,t)1. 则化预测场景流向量的大小,以鼓励场景保持静态。

Static-dynamic factorization(静动态分解)

空间中的任意点都应该被静态或动态对象占据,论文通过偏向静态场景的偏斜二进制熵损失来鼓励静态和动态密度的空间比例接近于0或1

在这里插入图片描述

Shadow loss

论文对每条光线沿着光线路径对阴影比率的平方幅值进行惩罚,以防止其对暗区域进行过度解释。具体而言,论文使用以下损失函数进行惩罚:
L ρ ( r ) = ∫ 0 + ∞ ρ d ( r ( t ) ) 2 \mathcal{L}_{\rho}(\mathbf{r})=\int_{0}^{+\infty}\rho_{d}(\mathbf{r}(t))^{2} Lρ(r)=0+ρd(r(t))2

论文提出了一种模块化的方法,用于以前未开发的规模构建动态神经表示。论文的多分支哈希表结构使论文方法能够将静态几何和短暂对象高效地分离和编码,跨越成千上万的视频。SUDS利用未标记的输入来学习语义感知和场景流,使其能够执行多个下游任务,同时超越依赖人工标注的最先进方法。尽管论文提出了构建城市规模动态环境的初步尝试,但在构建真正逼真的表示之前仍然存在许多挑战。

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

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

相关文章

【django+vue】连接数据库、登录功能

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【djangovue专栏】 1.【djangovue】项目搭建、解决跨域访问 【djangovue】连接数据库、登录功能 django连接数据库1.安装MySQL驱动程序2.创建数据库3.配置settings.py文件4.创建表5.添加数据 登录功能1.django实现…

编译QT Mysql库并集成使用

安装MSVC编译器与Windows 10 SDK 打开Visual Studio Installer,如果已经安装过内容了可能是如下页面,点击修改(头一回打开的话不需要这一步): 然后在工作负荷中勾选使用C的桌面开发,它会帮我们勾选好一些…

什么?Postman也能测WebSocket接口了?

01 WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接…

将邻接矩阵转换成图

import matplotlib.pyplot as plt import networkx as nx import numpy as np# 示例的邻接矩阵 adjacency_matrix np.array([[0, 1, 1, 0],[1, 0, 1, 1],[1, 1, 0, 1],[0, 1, 1, 0] ])# 创建一个无向图 G nx.Graph()# 添加节点 num_nodes len(adjacency_matrix) G.add_nodes…

大数据技能大赛(高职组)答案

任务C:数据挖掘(10分) 所有模块都有,不是白嫖!!有需要可以联系我 环境说明: 服务端登录地址详见各任务服务端说明。 补充说明:各节点可通过Asbru工具或SSH客户端进行SSH访问&#xf…

成长在于积累——https 认证失败的学习与思考

1. 引言 本周二长城项目在收尾过程中,出现了一个车端无法进行注册的问题:curl提示证书认证失败(其实已经能确认问题方向了,运维人员去确认证书问题即可)。虽然最终的原因是由于长城运维人员导致的。但是这个过程让我颇…

opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…

宝宝照片保存大法!一键制作照片书

亲爱的家长们,你们是否为宝宝成长过程中的各种美好瞬间而感到兴奋和感动?宝宝的笑容、第一次学步、第一次叫妈妈爸爸……这些珍贵的瞬间,我们都想把它们永远保存下来。现在,我们有一款神奇的工具,一键制作照片书&#…

还不知道指针和引用的区别,一篇文章教会你

1、引用的概念 1.引用不是新定义一个变量,而是给已存在变量取了一个别名 2.编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间 比如:孙悟空,可以叫他孙悟空,也可以叫齐天大圣。本质他们就是一个人 2、引用的定…

[nlp] RuntimeError: Llama is supposed to be a BPE model!报错解决

# tokenizer AutoTokenizer.from_pretrained(BASE_MODEL) 改成这个legacyFalse, use_fastFalse: tokenizer AutoTokenizer.from_pretrained(BASE_MODEL, legacyFalse, use_fastFalse)

【C++初阶】STL详解(五)List的介绍与使用

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

vs调试输出,不显示线程已退出

如题:一堆线程退出的信息,招人烦。 其实在vs设置里可以关闭: 工具-->选项-->调试-->输出窗口:

java--ArrayList快速入门

1.什么是集合&#xff1f; 集合是一个容器&#xff0c;用来装数据的&#xff0c;类似于数组。 2.有数组&#xff0c;为啥还学习集合 ①数组定义完成并启动后&#xff0c;长度是固定了。 ②集合大小可变&#xff0c;开发中用的更多。 3.ArrayList<E> 是用的最多、最…

Linux C 基于tcp和epoll在线聊天室

基于tcp和epoll在线聊天室 说明服务端代码 说明 服务端&#xff1a;实现了验证用户是否已经存在&#xff08;支持最大64用户连接&#xff09;支持广播用户进入退出聊天室以及用户聊天内容。   这里只提供里服务端代码&#xff0c;如果想要看客户端代码点击这里。 服务端代码…

LINUX入门篇【8】----计算机组成原理以及OS知识的总结

前言&#xff1a; 从而本篇文章开始&#xff0c;我们将进入LINUX的进程篇&#xff0c;但学习进程之前&#xff0c;我们首先需要重新认识我们的计算机&#xff0c;并且正确认识到控制进程的OS&#xff0c;即操作系统是怎样在计算机运行的过程中起到作用的。下面就让我们一同去了…

规则引擎Drools使用,0基础入门规则引擎Drools(一)基础入门

文章目录 系列文章索引一、规则引擎概述1、引出问题2、什么是规则引擎3、使用规则引擎的优势4、规则引擎应用场景 二、Drools介绍1、Drools概述2、Drools构成3、相关概念说明4、Drools执行过程5、KIE介绍 三、Drools入门案例1、业务场景说明2、开发实现 四、Drools基础语法1、规…

D. Secret Santa(构造)

首先n点n边&#xff0c;是一个基环树&#xff0c; 可以观察得到其实最大值是不变的 剩下的人自己随便找个人匹配即可 所以关键是构造一个方案解决匹配到自己的情况 找到所有没送出礼物的人&#xff0c;然后直接匹配&#xff0c;如果匹配到自己 因为没有送出礼物的人想送出…

配置静态 Eth-trunk

1、需求 1&#xff09;交换网络中存在2个 VLAN – 10 和 20 2&#xff09;每个VLAN的IP地址为&#xff1a;192.168.xx.0/24&#xff08;xx为 vlan 号&#xff09; 3&#xff09;对交换机之间的链路进行链路捆绑&#xff0c;增加互联带宽 4&#xff09;确保同 VLAN的 PC 之间互…

【Web实战】浅谈reactor netty httpclient请求解析过程

目录 0x00 前言 0x01 "畸形scheme"HTTP请求 0x02 其他 0x00 前言 Reactor Netty HttpClient 是 Reactor Netty 框架提供的一个用于进行异步 HTTP 请求的客户端库。它基于 Reactor 框架&#xff0c;采用响应式编程模型&#xff0c;允许以非阻塞的方式执行 HTTP 请…

如何通过RA过程识别Redcap UE?

以下是38.300中的描述 RedCap UE可以通过发送MSG3/MSGA的特定LCID识别&#xff0c;可选条件是通过MSGA/MSG1的PRACH occasion/PRACH preamble识别&#xff0c;根据这段描述&#xff0c;通过MSG3/MSGA的识别是必须项&#xff0c;而MSGA/MSG1的识别过程是可选项。如果通过MSGA/MS…