🗺️ 上方主图:城市级三维重建分区图

  • 将整个城市区域划分成了多个颜色不同的小单元格(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 使用两种光流来源:
  1. 离线光流估计器(如 RAFT):用已有的网络模型估算RGB帧之间的光流;

  2. 从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立方体检测就是:给每一个物体自动“画一个盒子”,把它在三维空间中包围起来。

就像这样👇:

  • 🧍→ 检测出一个人 → 用一个长方体(立方体)框住这个人;

  • 🚗→ 检测出一辆车 → 用一个长方体框住它,并标出方向和大小;

  • 🏢→ 房子也可以框。

📦 这个立方体能告诉你:

  1. 物体在三维空间中在哪

  2. 多大

  3. 朝哪个方向

二、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)中,查找它周围的“体素”——空间划分的小立方体。

  • 有两个分支在做这件事:

    1. 静态分支(static branch):只看位置;

    2. 动态分支(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 的策略:

      1. 加入激光雷达(LiDAR)深度信息

        • 用真实深度测量判断:一条射线是否真的在该cell内终止;

        • 如果这条光线在其他地方就被挡住了,就不该作为训练数据。

      2. 对于没有LiDAR的像素点

        • 用最近邻插值(nearest-neighbor interpolation)来补齐深度信息。

      3. 最终效果

        • 比 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);

  • 提出了一个高效、可推广的新范式——无需标签也能三维理解动态城市环境

挑战:然效果显著,但要构建真正逼真的城市级动态场景仍面临挑战(如真实感增强、光影建模等)。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐