SUDS:可扩展的城市动态场景(论文阅读)
DINO()是一种自监督的视觉Transformer(ViT)模型,由 Facebook AI 提出。它的特点是无需任何人工标签,就能从图像中学习有语义的特征表示。学到的特征可以很好地区分物体类别、边界、形状等,和人标注的语义结果类似。光流是一种计算图像中像素随时间移动方向和速度的方法。它表示:图像中某一点在两个连续帧之间的“位移矢量”。3D 场景建模:就是用计算机把一个真实场景还原成一个静止的三
🗺️ 上方主图:城市级三维重建分区图
-
将整个城市区域划分成了多个颜色不同的小单元格(cells),每一格代表一个空间子区域;
-
每个区域都用一个独立的哈希表模型进行训练(提高效率、可扩展性);
-
这展示了 SUDS 能够扩展到:整个城市级别的大规模建模(>100 km²)。
📷 下方六张图:SUDS 提供的多模态建模能力
图像 | 内容 | 解读 |
---|---|---|
RGB | 原始相机图像 | 输入图像,无监督 |
Static | 静态背景建模图 | 只显示静止物体如建筑、道路、树等 |
Dynamic | 动态物体建模图 | 只保留动态物体如车辆、行人 |
Depth | 深度图 | 使用 LiDAR 数据提供物体远近信息(颜色表示距离) |
Instances | 实例分割图 | 给不同物体(如每辆车)赋予不同颜色,完成无监督3D实例分割 |
Flow | 场景流图 | 显示物体的运动方向和速度(基于光流推理) |
一、前期知识
1、自监督学习得到的 2D 特征 —— DINO
什么是 DINO?
-
DINO(Self-Distillation with no labels)是一种自监督的视觉Transformer(ViT)模型,由 Facebook AI 提出。
-
它的特点是无需任何人工标签,就能从图像中学习有语义的特征表示。
-
学到的特征可以很好地区分物体类别、边界、形状等,和人标注的语义结果类似。
在 SUDS 中的作用:
-
把图像中每个像素点提取出的高维特征当作“语义描述符”(semantic descriptors);
-
然后将这些 2D 特征蒸馏(distill)进 NeRF 的 3D 表达中,使得 3D 模型不仅有几何结构,还能“理解”哪些地方是车辆、人或建筑;
-
用于后续的无监督语义分割和实例识别任务。
2、光流(Optical Flow)
什么是光流?
-
光流是一种计算图像中像素随时间移动方向和速度的方法。
-
它表示:图像中某一点在两个连续帧之间的“位移矢量”。
在 SUDS 中的作用:
-
用来捕捉场景中物体的运动信息;
-
通过光流监督,SUDS 能训练出3D 场景流(Scene Flow) —— 也就是三维中的动态变化;(2D像素级到3D物体运动的跳跃)
-
-
可以帮助模型区分“这个地方是因为物体在动才变了”而不是“角度变化或遮挡”。
SUDS 使用两种光流来源:
-
离线光流估计器(如 RAFT):用已有的网络模型估算RGB帧之间的光流;
-
从DINO特征中计算的稀疏光流:通过特征点匹配得到像素间的对应关系。
信号类型 | 来源 | 作用 | 是否需要人工标签 |
---|---|---|---|
DINO 特征 | 自监督Transformer | 给3D模型带来语义能力,如车/人/建筑区分 | ❌ 无需标签 |
光流 | 图像帧之间的像素运动估计 | 提供物体运动监督,训练场景动态建模能力 | ❌ 无需标签 |
3、什么是 4D 场景建模?它和 3D 有什么不同?
-
3D 场景建模:就是用计算机把一个真实场景还原成一个静止的三维模型。比如你扫描一栋建筑,建出来的是房子“在某一时刻”的三维样子。
-
包括物体的位置、形状、颜色,但它是“不动的”。
-
-
4D 场景建模:是在3D 模型的基础上加上了“时间”这一维度。
-
就像一部动画,不光知道“这辆车在哪”,还知道“它什么时候动,怎么动”。
-
所以4D = 3D + 时间。
-
举例:你在城市街头架个相机拍摄,4D模型就能重建“房子是静止的,车是动的,人在走动,天色从白天变黑”。
-
4、什么是三维场景流估计(Scene Flow)?
-
Scene Flow(场景流)是一个 fancy 的说法,它其实就是:
预测场景中每一个三维点在“下一帧”会往哪里动、怎么动。
-
就像光流(Optical Flow)是描述“图像中像素怎么动”,
-
Scene Flow 就是描述“现实世界中的物体怎么动”。
-
🎯 举个简单例子: 你拍一辆车从你面前开过去,Scene Flow 会告诉你:
-
这个车的每一个点从 “第5帧” 移动到了 “第6帧” 的哪个位置;
-
甚至还能推断它的速度和方向。
🌪 它的作用:
-
可以用于预测物体运动轨迹;
-
在自动驾驶、AR导航中非常有用。
5、什么是 3D 立方体检测(3D Cuboid Detection)?
-
3D立方体检测就是:给每一个物体自动“画一个盒子”,把它在三维空间中包围起来。
就像这样👇:
-
🧍→ 检测出一个人 → 用一个长方体(立方体)框住这个人;
-
🚗→ 检测出一辆车 → 用一个长方体框住它,并标出方向和大小;
-
🏢→ 房子也可以框。
📦 这个立方体能告诉你:
-
物体在三维空间中在哪;
-
它多大;
-
它朝哪个方向。
二、Abstract
-
SUDS是第一个将NeRF扩展到了动态的大规模城市场景。(基于NeRF的)
-
先前的Nerf方法:①只能处理短视频片段(最多10秒),因为每个视频或动态物体都需要训练一个独立模型,计算量大;②依赖人工标注的3D框和语义分割标签,难以扩展到大规模城市。
-
SUDS的两大创新:①场景结构分解,把场景拆成3个部分(静态场景(如建筑)、动态物体(如行人、车辆)、远处背景(如天空)),用不同的哈希表(hash tables)分别编码;②使用无需人工标注的多模态输入(RGB图像、稀疏激光雷达(LiDAR)点云、自监督学习得到的2D特征(如 DINO)、光流(optical flow)用于建模运动)。这些信息通过多种损失函数(如光度、几何、特征度量)融合起来,让SUDS能区分出背景、物体以及它们的运动。
-
SUDS的应用:①能处理超过120万帧视频图像,总共1700段视频,横跨数百公里的城市区域;②是目前规模最大的动态NeRF系统;③支持多个任务(新视角合成(novel-view synthesis)、无监督的3D实例分割(如车辆)、无监督的3D立方体检测(bounding boxes)等。
-
SUDS的实验结果:①在KITTI与Virtual KITTI 2数据集上进行评估,超越了依赖人工3D标注的方法,并且训练速度快10倍;②展示了在城市级别的多个实际任务中的良好表现。
-
总结:SUDS 是一个突破性的系统,通过无监督学习和三分结构设计,实现了城市级别的动态NeRF重建,在保留高精度的同时显著提升了可扩展性与训练效率。
三、Introduction
-
背景:①Google Maps 和 StreetView 等工具改变了我们的生活,让我们可以随时查看街道和建筑的三维模型;②这类技术最初依赖的是 结构光束法(SfM),后来 NeRF(神经辐射场) 出现,进一步让三维场景变得逼真可交互;③最近一些研究已经能将 NeRF 扩展到街区级别,比如虚拟“开车逛街”的场景重建;④这些地图都是“静态的”,无法反映人车移动、城市活动等动态场景,因此真实感不足,限制了它们的应用价值。
-
挑战:①NeRF在动态场景建模困难(通常摄像头视角受限(如头戴式摄像机采集的视频),信息太少);②想扩展到多个视频(例如不同天拍的巡街视频)也很困难,因为要同时建模永远不变的建筑、某些视频中出现的临时静物(如停的车)和始终在移动的物体(如人或车)。
-
SUDS针对上述挑战提出了支持大规模、动态变化的4D NeRF系统,核心想法就是Abtract中提及的两个创新(三分结构和无需人工标签的数据)。
-
SUDS的四大贡献:①第一个提出的大规模动态NeRF;②提出了三分结构的哈希表涉及,支持4D大规模场景建模;③在三个数据集上打到最先进的重建精度;④支持多种下游任务:新视角合成;无监督实例分割和3D立方体边界检测;三维场景流估计(物体运动)。
四、Related Work
SUDS涉及多个研究方向,在相关工作部分SUDS与六个方面的先前工作进行了对比。
①规模扩展(Scale)
-
问题:原始NeRF只能处理小范围(有边界)场景;
-
改进方法:
-
NeRF++、Mip-NeRF 360:用于无边界场景;
-
Block-NeRF、Mega-NeRF:将场景分块,每块训练一个 NeRF;
-
但它们只能处理静态场景,无法应对人和车的移动;
-
-
SUDS创新:
-
引入深度信息来更高效地划分区域;
-
支持动态物体;
-
重建范围是 Block-NeRF 的 200 倍。
-
②动态建模(Dynamics)
-
问题:动态场景难建模(因为物体会动);
-
已有方法:
-
加入“时间”维度或用光流建模运动(如 NSFF、NeRFlow、DyNeRF);
-
有些只针对一个物体,或者只能处理一个视频;
-
-
SUDS优势:
-
可以同时处理多个视频、多个动态对象;
-
自动区分背景与动态对象,不需要人工标签。
-
③以物体为中心的建模(Object-Centric Approaches)
-
方法如 NSG 把每个物体单独建一个小NeRF,再加上背景;
-
缺点:需要非常多显存(NSG训练30秒视频要1TB内存!);
-
SUDS优势:支持多个视频和大规模场景,内存更省,支持自我运动(ego-motion)。
④语义理解(Semantics)
-
有些方法(如 SemanticNeRF、PanopticNeRF)可以识别语义标签;
-
但这些都依赖人工标注(昂贵且不易获取);
-
SUDS做法:用自监督特征(如 DINO)代替人工标签,直接让网络学到“语义感知”。
⑤快速训练(Fast Training)
-
原始NeRF训练时间长(1-2天);
-
提速方法:
-
Plenoxels、DVGO:用体素替代MLP,快很多;
-
Instant-NGP:引入多分辨率哈希表,可实时训练;
-
-
SUDS采用了 Instant-NGP 思路,并在此基础上设计了三分哈希结构,专门支持多个视频和动态内容,训练更快。
⑥深度监督(Depth Supervision)
-
有些方法用 SfM 点云或 LiDAR 来提高几何精度(如 DS-NeRF、Urban Radiance Fields);
-
SUDS也使用 LiDAR 数据,但它支持的是动态场景,适应性更强。
五、Approach
上图展示了SUDS如何对输入坐标进行处理,编码并输出最终结果的整个流程,分为4个步骤(a)-(d)。
(a) Voxel Lookup(体素查找)
-
给定一个 3D 空间坐标(比如一辆车的位置),系统会在多个分辨率层次(L levels)中,查找它周围的“体素”——空间划分的小立方体。
-
有两个分支在做这件事:
-
静态分支(static branch):只看位置;
-
动态分支(dynamic branch):看位置 + 时间 + 视频ID(因为物体会动)。
-
(b) Indexing(哈希索引)
-
使用哈希函数将每个体素角点的位置(或位置+时间+视频)编码为索引,用来查找特征表中的内容。
-
注意这里使用了两种哈希方式:
-
static_hash()
:只根据位置; -
dynamic_hash()
:还考虑了时间 t 和视频编号 vid;
-
-
获取的特征向量会根据体素内的相对位置进行插值。
(c) MLP Evaluation(特征评估)
-
把从哈希表查到的特征向量,以及观察方向 d和时间嵌入 AvidF(t) 作为输入(时间嵌入 AvidF(t) 是静态MLP的输入,原因是因为静态分支虽然建模“不会动”的场景(如建筑、道路等),但在不同时间或视频中可能会因为光照变化(如阳光、阴影、天气)而“看起来不一样”,所以需要时间嵌入来调节外观);
-
分别喂入静态分支和动态分支的 MLP 网络中,输出:
-
颜色
c
、密度σ
、特征ϕ
-
场景流
s_{t-1}
,s_{t+1}
(描述运动) -
阴影因子
ρd
(对颜色有衰减作用)
-
(d) Output Blending(输出融合)
-
最终输出是将两个分支的结果(静态 + 动态)进行融合:
-
使用密度权重、阴影因子,对两个分支的颜色、特征进行加权求和;
-
得到最终的颜色、密度、特征等用于渲染。
-
5.1 Inputs
-
SUDS 想要实现一个能应对复杂城市动态环境的模型,具备:①任意视角渲染;②语义理解和分解;③三维动态建模。为此,它需要从多模态数据中学习。
-
RGB 视频图像序列:①来自 N 段不同时间、不同天气的视频(比如白天、晚上、晴天、雨天);②每帧图像都配有相应的 相机位姿(camera pose),用于建立空间对齐。
-
稀疏的 LiDAR 深度点:①使用激光雷达测量场景中部分像素的真实深度值;②尽管是稀疏的(非每个像素都有),但能为模型提供关键的空间几何监督。
-
自监督的像素特征:①使用 DINO(一种自监督视觉 Transformer)提取的 2D 像素级特征;②没有人工标签,但能表达图像中“是什么”的语义信息;③有助于模型理解 “哪是车、哪是人、哪是建筑”,用于语义分解。
-
2D 光流预测:①表示图像中像素在时间上“怎么动”的信息;②用于监督 SUDS 学习场景中物体的运动,构建 3D 场景流(scene flow)。
-
所有这些输入信息都是从传感器(稀疏的 LiDAR)和现有模型(2D 光流和自监督的像素特征)中自动获得的。
5.2 Representation
-
介绍NeRF工作。
-
Scene Composition
-
介绍三分支结构:①静态分支(建模“背景地形”);②动态分支(专门建模“变化中的内容”);③远景分支(远处物体和天空,比如云、天光、远山,避免渲染时“空白背景”,增加真实感。)
-
介绍架构实现方式: 传统 NeRF(基于 MLP)在大规模场景中太慢、算力消耗太高; SUDS 借鉴了 Instant-NGP 的高效做法: 不再把整个场景都塞进 MLP; 而是使用多分辨率哈希表(multi-resolution hash tables)来编码每个分支的空间信息; 每个哈希表存储F维的特征向量,再用一个小 MLP 解码这些特征。
-
-
Hash Tables
-
对于一个要渲染的点,输入包括:①x∈R3:空间位置(比如一个车的三维坐标);②d∈R3:观察方向(相机看过去的方向);③t:时间帧编号(第几帧);④vid:视频编号(是第几个视频)。
-
SUDS 有三个哈希表,分别对应三类分支:
-
插值与求解细节:①静态/远景分支:用普通三线性插值(trilinear interpolation);②动态分支:因为有时间,使用四线性插值(quadlinear);③为了避免哈希冲突,用梯度平均(gradient averaging)处理;④不在插值中使用
vid
,而只是用它作为哈希输入(防止不同视频之间平均导致混乱)。 -
SUDS 怎么处理冲突?使用的是梯度平均(gradient averaging):①当多个位置被映射到同一个索引(冲突)时,它们会共享这个哈希表中的同一组特征向量;②在训练时,不同位置通过这个共享向量进行反向传播;③梯度平均就是:将这些不同位置反向传播得到的梯度取平均值,再用于更新哈希表中特征向量的参数。这样可以使得在多个冲突点之间“折中”学习一个合理的特征表示,避免其中某一个点“独占”了更新权重,而导致另一个点表现异常。类比如果一个宿舍只有一个水龙头,5个人共用(哈希冲突),梯度平均就像是让每个人都平均调节水温,而不是只让一个人控制水龙头温度。
-
vid 是什么?为什么不能用于插值?
vid
是视频编号,即当前输入像素来自哪一段视频。插值是基于哈希表中多个空间点的特征向量加权平均,如果你把vid
当作插值维度的一部分,系统会尝试将不同视频中的动态物体或光照“平均起来”,比如:视频 A 里这个点是红色的车,视频 B 是蓝色的车,插值后模型会学到“紫色模糊块”,这种“跨视频平均”会污染模型表达,让同一位置的动态内容混乱不清。 -
为什么用
vid
做哈希输入是可以的?作为哈希函数的输入,vid
只是用于“定向查表”,每个视频能映射到不同的特征槽位(entry),即使空间位置一样,视频不同,查到的特征不一样,样就做到了“每个视频有独立的表达”,但不把vid
当作插值的坐标维度参与加权。类比,vid
作为哈希输入是“钥匙”,告诉你打开哪扇门; 但在插值时不用它,是避免把不同房间里的东西混在一起搅成一锅粥。
-
-
Static Branch
-
主要用途:建模那些不会随时间变化的场景元素,例如房屋、地面、固定设施等。
-
输出内容:①σs(x):位置 x 对应的密度(是否有物体);②cs(x,d,AvidF(t)):颜色,考虑视角 d、时间 t、视频ID影响。
-
时间建模方式:虽然物体不动,但光照会变,比如白天和黄昏颜色不一样,用视频专属矩阵 Avid× 时间的傅里叶编码 F(t) 来调节颜色,样就能让静态物体在不同时间有不同外观。
-
-
Dynamic Branch
-
主要用途:专门建模会动的物体(行人、车辆等),以及可能临时出现在某视频里的静物(如停在路边的车)。
-
输出内容:①σd(x,t,vid):考虑时间和视频的动态密度;②ρd(x,t,vid):阴影因子,值在 [0, 1],表示该点是否被遮挡;③cd(x,d,t,vid):动态颜色。
-
设计亮点:①显式建模了阴影 ρd,用于“削弱”静态分支的颜色,表现遮挡区域,如下图是有无阴影因子,动静态建模对比;②动态颜色和密度都随着时间变化。
上图展现了SUDS学习了一个明确的阴影场(a)作为静态颜色的点化还原,实现了比没有(b)更好的深度重建和静态/动态分解。
-
-
Far-field Branch
-
主要用途:建模天空、远山等远处不可接近的背景。
-
输出内容:ce(d,vid):视角方向 + 视频编号共同决定天空颜色,不使用空间位置 x,因为远景与位置无关,只与方向有关。
-
特点:①每个视频可以有不同的天空外观(晴天、阴天、早晚等);②通过环境贴图(environment map)方式进行建模。
-
-
Rendering:给定某个相机位置和方向(即一条光线),SUDS 需要计算出最终这条光线穿过三维场景后在图像上的颜色值。
-
第一步:组合密度(公式 9 )
-
最终的密度计算(公式 9):
-
把静态分支的密度和动态分支的密度直接相加;
-
这样能表达:某个位置可能既有静态物体(比如建筑)也有动态物体(比如车)叠加。
-
-
第二步:组合颜色(公式 10)
-
最终的颜色计算(公式 10):
-
这是一个加权平均颜色,权重分别由 σs 和 σd 控制;
-
ρd 是阴影因子,用来“削弱”静态分支的颜色(被动态物体遮挡时就变暗);
-
整体表示:混合静态背景和动态对象的颜色,模拟真实世界中重叠的视觉效果。
-
-
第三步:沿光线积分,计算最终像素颜色(公式 11)
-
公式如下:
-
对光线 r(t) 上采样的每个点进行积分,得到整条光线的颜色;
-
如果光线一直没有撞到物体,就取远景颜色 ce。
-
-
-
Feature distillation:让 SUDS 不仅能还原颜色,还能具有“语义理解能力”,也就是知道图像中有哪些类别,比如车、建筑、行人。
-
怎么做?①使用一个已有的自监督视觉模型 DINO(不用人工标签)作为“老师”;②从 2D 图像中提取语义特征(称为 DINO feature),然后把它“蒸馏”进 SUDS 的 3D 表达中;③就像是让 3D 模型“学习”从 2D 图像中看出什么是车,什么是房子。
-
三个分支分别输出一个语义特征向量(C维):
-
什么叫做蒸馏?“模型蒸馏(Knowledge Distillation)”是一种训练策略,其核心思想是:用一个强大的老师模型(teacher)的输出结果,来指导一个更小、更轻量的学生模型(student)进行学习。
-
应用于 SUDS 中的“特征蒸馏”
-
老师模型是谁?
-
是一个在大规模图像数据上预训练好的视觉模型 DINO(是一种无监督Transformer);
-
它可以为图像中的每一个像素输出一个“语义特征”向量,比如表示“这可能是车、这是人”。
-
-
学生模型是谁?
-
是 SUDS 中的神经渲染网络,它主要是做图像合成的,但也想学到“这个地方可能是车、那边是人”的语义感知能力。
-
-
蒸馏过程:
-
给定一张图像,DINO 会为每个像素输出一个高维特征(比如128维向量);
-
SUDS 的三分支(静态、动态、远景)网络就学着去拟合 DINO 的输出;
-
用损失函数让两者的输出尽量接近(比如最小化 L2 距离);
-
这样 SUDS 就“蒸馏”到了 DINO 中学到的语义知识。
-
-
-
-
Scene flow:让 SUDS 能够建模和预测物体怎么动,不仅知道“在哪”,还知道“往哪动、怎么动”。
-
在动态分支中加入两个方向的 3D 场景流向量:
,表示某点在前一帧或后一帧的位置偏移(即物体的运动方向和速度);
-
训练时:
-
使用这些场景流向量,来确保不同时间点的内容能够保持一致性;
-
通过专门的损失函数(见 Sec 3.3)进行约束;
-
这有助于在新视角生成时保持运动的连贯性。
-
-
-
Spatial partitioning
-
为什么要做空间分区?SUDS 要处理的是整个城市级别的大规模动态场景。如果把整个城市都交给一个模型训练,计算量会非常大,难以扩展。所以SUDS 将城市划分成多个小块(称为“空间单元”或 cell),每块都单独建模(包括静态、动态、远景三分支),从而提升效率和可扩展性。
-
怎么划分?采用类似 Mega-NeRF 的做法(但对于训练样本选取做了改进):
-
把场景划分为 K个空间单元(cell),每个以一个三维中心点 k∈R3为代表;
-
每个 cell 都训练自己的模型;
-
使用称为 visibility reasoning (SUDS的改进)的方法,确定哪些图像像素可以“看到”这个 cell,作为训练样本。
-
什么是 visibility reasoning?
-
并不是相机“对着”一个区域就一定能看到它!
-
有可能被建筑物、树木等挡住。
-
所以,不能只靠“相机视角指向cell”来判断有效数据。
-
-
-
-
SUDS 进一步改进 Mega-NeRF 的策略:
-
加入激光雷达(LiDAR)深度信息:
-
用真实深度测量判断:一条射线是否真的在该cell内终止;
-
如果这条光线在其他地方就被挡住了,就不该作为训练数据。
-
-
对于没有LiDAR的像素点:
-
用最近邻插值(nearest-neighbor interpolation)来补齐深度信息。
-
-
最终效果:
-
比 Mega-NeRF 减少了一半的训练数据体积(trainset size);
-
减少冗余,提升训练效率;
-
还能保持良好的渲染一致性。
-
-
-
5.3 Optimization
-
总损失:同时优化 SUDS 的 三个分支模型(静态、动态、远景) 和 每段视频的时间调节矩阵 Avid。通过对从多个视频中采样的光线进行训练,最小化总损失函数 L,从而实现精确的场景重建和运动建模。
-
重建损失:最小化模型输出和真实数据之间的差距,SUDS还需要还原图像颜色、语义特征和深度信息。如下:
其中 D^(r) 的计算方式(公式 18),σ:密度值,表示物体出现的概率,T(s):透射率(在到达 s 之前没有被挡住的概率),这是一个体积渲染中的深度期望计算,也是 NeRF 经典做法。
-
用 2D 光流监督 3D 场景流预测,如下图:
-
步骤 1:预测 3D 点的位置变化(公式 19)
这是在光线 r上进行体积渲染的积分操作;
st′(r(t)):是当前点在 t' 帧的3D 场景流(位移);
这个积分操作的结果是:将光线上每个点的运动合成,得到整条光线的“运动中心点”预测结果。
-
步骤 2:将预测的 3D 位移投影回图像平面
-
使用相机内参(投影矩阵)将上面得到的 X^t′(r) 映射成 2D 坐标;
-
然后与真实的光流位置 X(o) 比较。
-
-
步骤 3:计算光流监督损失
-
意思是:当前帧相机观测到的像素位置变化(光流)要和 SUDS 预测的 3D 运动投影结果一致;
使用 L1 距离计算误差;
损失会在训练早期加权较小(因为光流预测本身可能不准),随着训练进行逐渐放大。
-
3D warping 损失(保证运动物体颜色和语义特征在运动过程中保证一致性的的损失):即便一个物体在视频中移动,模型渲染出的它的颜色、语义特征也应该保持一致。
-
什么是 3D warping?使用预测出的场景流 st+1,st−1把当前帧的点 “推”到前一帧或后一帧,然后再用模型渲染前/后帧该点的颜色和特征,看是否与当前帧一致。
-
Step 1:使用场景流进行时间跳跃,我们预测当前点在 t ± 1 时刻的位置,并输出它的:
-
σw\sigma^wσw:密度(是否有物体)
-
cwc^wcw:颜色
-
Φw\Phi^wΦw:语义特征
这些称为“warp 后的值”。
-
-
Step 2:将这些 warp 后的值渲染出来(颜色和特征):
-
得到渲染颜色
-
得到渲染特征
-
-
Step 3:引入遮挡权重,因为有些点在 t 和 t+1 帧可能被挡住(例如前面有个车),不能强制一致。所以,引入权重:
-
用当前点和 warp 后点的动态密度差异来估计遮挡;
-
权重越小 → 表示遮挡或不确定区域 → 对损失的贡献降低;
-
用 Wt(r)表示整个光线上每点的遮挡权重。
-
-
Step 4:最终损失函数
-
-
3D场景流正则化:让预测的物体运动(scene flow)更加合理、平滑和闭环一致
-
静态-动态因子分解:在物理上,某个位置不可能同时被静态物体(比如建筑)和动态物体(比如车)占据,因此模型需要在空间上明确区分哪些是静态的,哪些是动态的。
-
阴影损失
5 Experiments
5.1 Experimental Setup
这一部分阐述了对于个别损失函数的实验设置参数。
训练策略:
评估指标:"...PSNR, SSIM, LPIPS...",虽然不是损失函数,但这是用来衡量重建图像质量的客观指标,对训练中颜色损失 Lc 的效果评价直接相关。
5.2 City-Scale Reconstruction
这部分主要展示了 SUDS 在超大规模真实城市环境(City-1M 数据集)上的实验效果、基线比较和下游任务应用。
①City-1M数据集简介:
-
包含 1.28百万张图像,来自 1700段视频;
-
地点:105 平方公里的城市区域;
-
数据采集:使用搭载 7个环形摄像头 + 2个LiDAR 的车队;
-
光流监督方式:为了效率,使用 预训练合成数据训练的估计器 替代 DINO 匹配。
②视角合成实验结果展示:
对比方法说明:
-
Mega-NeRF:原始大规模 NeRF 方法;
-
Mega-NeRF-T:将时间直接作为输入,建模动态;
-
Mega-NeRF-A:使用类似 SUDS 的时间嵌入(但方法不同)。
③无监督下游任务(无标签!)
令人惊艳的是,SUDS 实现了以下多个任务的完全无监督执行:
Instance Segmentation(实例分割):
-
基于动态密度 σd\sigma_dσd;
-
通过阈值 + 连接组件 + 聚类(K-means)实现车、人等分割;
-
不需要任何人工标签。
3D Cuboid Detection(三维立方体检测):
-
先对分割出的实例做体素投票;
-
再用主成分分析(PCA)获得 3D 包围盒;
-
可用于自动估计物体的三维空间占位。
Semantic Segmentation(语义分割):
-
少量标注帧中提取每个类别的 DINO 语义特征中心;
-
把所有 3D 点的特征与这些中心比对 → 得到类别标签;
-
最终结果可视化为 2D 语义图。
下图为SUDS在City-1M数据集上完成的下游任务的定性结果展示:
5.3 KITTI Benchmarks(为了展示更多的定性结果指标)
这一部分主要展示了 SUDS 在标准动态数据集 KITTI 和 Virtual KITTI 2 上的性能表现,包括新视角合成、图像重建和消融实验。
数据集:KITTI 和 VKITTI2(Virtual KITTI 2)数据集,包含车辆行驶过程中的视频序列,有明显的相机自运动和动态物体。
对比的基线模型:
图像重建能力(重建已知视角的图片),SUDS 在图像重建指标中全面领先,甚至超过了使用标签的 PNF 和 NSG。:
新视角合成(模拟“当前帧看不到,未来帧才看到”的场景,测试 SUDS 是否能预测合理的视图。),无论训练数据量多少(训练率:在新视角合成任务中,从原始数据中有多少比例的帧(图像)被用来训练模型。),SUDS 的生成效果都最真实稳定,且远优于只加时间变量的 NeRF+Time 或需标签的 NSG。:
消融实验:
5.4 diagnostics
这一部分内容通过“消融实验”(Ablation Study)逐一移除模型的关键组件,来评估每个部分对整体性能的贡献。最后得出SUDS 最依赖的是“基于光流的时间一致性机制”,即使在没有深度传感器的情况下也能表现良好,证明其具有很强的数据泛化能力和无监督适应性。
6 conclusion
贡献:
-
首次在城市级别动态环境下构建了可扩展的神经场表示;
-
提出了 三分支结构(静态/动态/远景) + Hash 表表示 + 分时嵌入 的组合;
-
使用无标签数据完成多项下游任务(语义/实例分割、三维框检测);
-
超越了依赖标签的 SOTA 方法(如 NSG, PNF);
-
提出了一个高效、可推广的新范式——无需标签也能三维理解动态城市环境。
挑战:然效果显著,但要构建真正逼真的城市级动态场景仍面临挑战(如真实感增强、光影建模等)。
更多推荐
所有评论(0)