StreetCrafter:相机控制交了点云,因果控制还没交
把 LiDAR 点云渲染图当成像素级位姿条件,StreetCrafter 让视频扩散模型在偏离训练轨迹的地方也能渲染街景:蒸馏版跑到 113 fps、LPIPS 0.054,比被它打败的 3DGS 系重建方法好出一大截。但它的 PSNR 其实更低,而它给不了的,恰好是闭环回灌最需要的——改了自车轨迹之后,别的车会不会跟着动。
一个系统的 PSNR 比对手低 0.9 dB,却把对手的 LPIPS 甩开将近六成、FID 甩开近两成,还能跑 113 fps。这种「指标打架」通常意味着两件事:要么评测口径有问题,要么这两套方法优化的根本不是同一件东西。StreetCrafter 属于后者,而这个分歧点,正好落在闭环回灌的痛处上。
它治什么病:一旦偏离录像轨迹,重建就开始编
先看问题本身。用单条轨迹的车载 RGB 加 LiDAR 重建一个街景,然后渲染出这条轨迹之外的新视角——这件事在 3DGS 系方法上已经做得很好,Street Gaussians 在 Waymo 上能拿到 30.95 dB 的 PSNR,渲染 92 fps。但它们的共同死穴是外推:训练输入里没观测过的区域,重建方法只能靠插值,结果是糊成一团,或者干脆长出幽灵几何。论文的图 1 把这个崩溃画得很直白——视角一偏,车道线糊了,运动车辆变成了拖影。
而闭环仿真的第一需求恰恰是外推。想让同一段日志在不同的自车轨迹下重演,就必须渲染那些原车从未经过的视角。所以这个病不是学术意义上的性能缺口,是「能不能用录像做反事实实验」的准入条件。
视频扩散模型本来是另一条路:它有大规模视频数据训出来的生成先验,见过足够多的街景,缺的观测它可以补。但扩散模型的传统控制信号是文本提示——「一条雨天的城市街道」这种描述,对自动驾驶仿真毫无用处,因为需要的是像素级精确的相机位姿,不是语义方向。
StreetCrafter 的解法一句话说完:用 LiDAR 点云的渲染图,冒充相机位姿。
机制怎么转:点云当位姿的代理
三步,每一步都有一个值得记下的设计决定。
第一步,把点云变成条件图。 原始 LiDAR 点先投影到标定图像平面查像素值完成着色,再用 object tracklets 把点分成物体点与背景点——物体点在各自的 canonical 包围盒坐标系里定义,背景点留在世界坐标。然后取正负 1 秒的时间窗聚合,得到一个世界坐标系下的统一彩色点云。
这里有个容易被忽略的细节:条件图不是把点直接投影到图像平面,而是在 NDC 空间里给每个点分配固定半径 0.01,做点光栅化。为什么?消融给了答案——直接投影只有 26.15 dB,加半径光栅化变成 27.00 dB。因为激光点太稀疏,一个像素一个点的画法既画不出路面标识这种纹理细节,也处理不了遮挡关系;给它一个半径,本质上是让条件图自带「哪里被挡住、哪里没有观测」的信息。
第二步,把条件塞进扩散模型的血管。 条件图经 VAE 编码成 latent,用一层可训练的零卷积接到 U-Net 第一层,与噪声 latent 逐元素相加;参考图走 CLIP embedding 作为另一路条件。训练时以 15% 的独立概率随机丢弃参考图和条件——标准的无分类器引导手法,为的是推理时能用 CFG 调节条件强度。
第三步,蒸馏进动态 3DGS 换回实时性。 扩散模型在 576×1024 下只有 0.2 fps,没法用。蒸馏的做法很巧:拿扩散模型在新轨迹上生成的图,作为额外的监督信号去优化动态 3DGS 表示,让重建模型学会它没观测过的区域该长什么样。新轨迹怎么造?把输入相机沿自车 heading 方向横向平移 3 米。蒸馏时从加噪的渲染 latent 出发而不是纯噪声,噪声尺度从 0.7 线性降到 0.3:早期靠先验去伪影,后期精修细节。单张 A800 上约 1.5 小时。
证据有多硬:三个数字比主表更值得看
主表在 Waymo 上(1066×1600):
| 方法 | PSNR↑ | LPIPS↓ | FID@2m↓ | FPS |
|---|---|---|---|---|
| 3DGS | 28.85 | 0.148 | 100.50 | 213.37 |
| Street Gaussians | 30.95 | 0.130 | 71.42 | 92.16 |
| StreetCrafter 扩散直出 | 27.19 | 0.087 | 62.43 | 0.16 |
| StreetCrafter 蒸馏版 | 30.05 | 0.054 | 58.17 | 113.16 |
第一件,PSNR 和感知指标的撕裂。 蒸馏版 PSNR 比 Street Gaussians 低 0.9 dB,但 LPIPS 好 58%、FID 好 19%。这不是评测口径出错,是两种指标奖励的东西不同:PSNR 是逐像素误差,它对「整体正确但发糊」极其宽容,对局部纹理错位极其苛刻;LPIPS 和 FID 反过来,它们衡量的是「看起来像不像真的」。对下游 BEV 感知来说,模糊是致命的——检测器吃的是纹理和边缘,糊掉的车道线不会因为平均像素误差小就变得可检测。如果只盯 PSNR 选仿真器,会选到一台对感知最不友好的机器。
第二件,困难集上的数字。 论文的设计消融分了两组:随机新视角和「困难」新视角。同样是完整方法,随机组 27.00 dB,困难组掉到 22.23 dB,FID 从 55.53 涨到 77.03。困难组的定义就是那些车道和运动车辆等观测不足的区域——最需要渲染的地方,恰恰是质量最差的地方。这个落差没有任何方法能消除,只能被测量和记录。
第三件,消融的排序本身是个结论。 Plücker 位姿嵌入 22.88、位姿加三维框 24.54、单帧 LiDAR 25.57、直接投影 26.15、半径光栅化 27.00。也就是说,从 22.88 到 27.00 的收益,主要不是「用了扩散模型」带来的,而是「多帧聚合加遮挡感知的像素级条件」带来的。把扩散模型换掉,这条条件管线依然成立——这一点对工程选型很关键。
代价也要摆明:训练数据是 15 条 Waymo 序列加 5 条 PandaSet 序列、约 3.5 万个样本,8 张 A800 跑两天;推理采 50 步、CFG 2.5、每次 25 帧、长轨迹靠 5 帧重叠续接。论文自己也承认两条局限:LiDAR 加 tracklets 的采集处理成本高,扩散推理远达不到实时。
对动作与闭环评测意味着什么:四道关,过了两道半
真正的检验不在 Waymo 的表格里,而在这套东西能不能进回灌链路。按四道关逐一判定:
① 视角可控性:给了,但有半径。 位姿是真可控的,因为条件本身就是按目标位姿渲染出来的点云图。但要注意蒸馏那一步造新轨迹只横向平移了 3 米——这是论文验证过的有效范围。超出这个量级的外推,质量边界论文没给曲线。回灌时要卡住轨迹偏移的尺度,偏移越大越要单独验证,不能默认「可控」等于「任意可控」。
② 动态因果:没给,而且结构上给不了。 这是最要命的一条。场景里其他车辆的位姿,是由 tracklet 的逐帧 SE(3) 位姿确定、并烧进世界坐标点云的;蒸馏之后,每个物体高斯也绑在 canonical 坐标系里按原时间轴运动。也就是说,你改了自车轨迹,别的车还在原来的时刻、原来的位置。 渲染图看上去毫无破绽——扩散先验会把该有的东西补上——但那是先验在补,不是场景在响应。对「自车轨迹变了,旁边那台车会不会让」这类问题,这个仿真器给不出答案,它只会给你一张好看的假答案。
③ 生成先验与几何保真:有明确的失效面。 论文附录承认,多帧 LiDAR 条件对可变形物体不理想,行人是靠扩散先验硬补出来的;还提到噪声尺度设成 1(纯噪声起步)时,LiDAR 条件缺失的区域——比如交通灯上的路牌——会出现伪影。行人、非机动车、远距离标志,恰好是规划最敏感的一批目标。工程上的应对不是不用,而是同时产出一张条件覆盖率图:哪些像素有 LiDAR 支撑、哪些是生成的,回灌结论必须带上这个标注,否则出了偏差无法归因。
④ 评测效度:这是最容易自己骗自己的一环。 扩散采样本身是非确定的,同一个场景跑两遍,纹理细节不同,BEV 输出就会漂。在这个基础上做回归测试,最怕的不是误差大,是方差大到盖住了真实回归——指标掉了,你分不清是模型退化还是渲染抖动。可做的实验很朴素:同一轨迹下,原图与渲染图各跑一遍 BEV 与规划器,测输出漂移量。这个数字就是整条回灌链路的噪声地板,没有它,后面所有对比都不可信。
顺带算一下成本结构,因为它直接决定回灌能不能规模化:扩散直出 0.16 fps,一段 10Hz、200 帧的 20 秒日志,单卡要二十多分钟;蒸馏版 113 fps 可以实时,但每个场景要先付 1.5 小时的单卡优化。想跑一千段场景的反事实回归,瓶颈不在渲染速度,在那 1.5 小时乘以场景数。
一句判断
StreetCrafter 解决了「看得见」,没解决「会回应」。
它把相机控制做得足够硬——硬到可以用它渲染任何一条你想验证的轨迹;但它渲染出的是一个冻结的世界在换视角,不是一个会因为你的行为而改变的世界。前者足以支撑感知层面的回灌与 corner case 生成,后者才是规划闭环真正需要的东西。
这个分歧在更大的图景里也对得上:仿真里最强的策略也没及格过,而认证与评测正在成为行业的新高地(那两期分别算过这两笔账)。世界模型被当成数据引擎时,大家关心的是产能(NVIDIA 那条线的账);被当成回灌器时,关心的就变成了因果与效度。这是两种完全不同的验收标准,而目前公开的工作,绝大多数只通过了第一种。
下一篇该往哪儿读:动态因果。要让改轨迹之后的他车位置随之更新,靠渲染是不够的,得让场景里的智能体有行为模型——这条路通向 reactive agent 仿真与交通流生成。
信息源:
论文:Yan, Xu, Lin, Jin, Guo, Wang, Zhan, Lang, Bao, Zhou, Peng,StreetCrafter: Street View Synthesis with Controllable Video Diffusion Models,CVPR 2025(浙江大学、理想汽车、康奈尔大学合作),arXiv:2412.13188,项目页 zju3dv.github.io/street_crafter(官方一手)。文中全部指标与训练配置均引自论文正文与附录:Waymo 15 条序列与 PandaSet 5 条序列、约 35,000 训练样本、8×A800 两天、低分辨率 320×576 与高分辨率 576×1024 两阶段训练、推理 50 步与 CFG 2.5 与 25 帧与 5 帧重叠、NDC 空间半径 0.01 的点光栅化、正负 1 秒时间窗聚合、条件与参考图各 15% 独立丢弃、蒸馏新轨迹为沿 heading 横向平移 3 米与噪声尺度 0.7 降至 0.3 与单场景约 1.5 小时、可变形物体条件不理想与噪声尺度为 1 时条件缺失区域出现伪影(论文附录 B.5 与蒸馏消融)。
本文对指标撕裂(PSNR 与 LPIPS/FID 奖励对象不同)、困难集落差、消融收益归属(条件管线而非扩散模型本身)、四道关的判定、条件覆盖率图的工程建议、噪声地板实验设计,以及「看得见但不回应」的结论,均为本专栏判断,非论文作者表述。所有数字为论文在 Waymo Open Dataset 与 PandaSet 公开数据集上的自报结果,未在实车采集数据与自建回灌链路上复现。