NAVSIM 数据集:NAVSIM 中 scene_name、Scene、一个训练sample、filtered_scenes 的关系总结
2026/5/15 1:03:29 网站建设 项目流程

NAVSIM 中scene_nameScene、训练 sample 与filtered_scenes的关系总结

1. 核心结论

在 NAVSIM 的语境下,一个scene_name下包含的所有帧,并不一定就是一个训练 sample

更准确地说:

scene_name 的所有帧 ≠ 一个 NAVSIM 训练 sample NAVSIM Scene 对象 ≈ 一个训练 / 评测 sample

NAVSIM 中真正的训练 sample,是由:

SceneLoader + SceneFilter

从 log 中的连续帧序列里切出来的一个固定长度窗口,并进一步封装成 NAVSIM 的Scene对象。

源码中Scenedataclass 的语义就是:

single sample in NAVSIM

因此,理解 NAVSIM 数据组织时,要区分:

原始数据里的 scene_name NAVSIM 源码里的 Scene 对象

这两个概念不是同一个层级。


2.scene_name是什么?

原始数据中的每一帧通常会带有字段:

scene_name="log-0060-scene-0001"

它表示:

当前 frame 属于 OpenScene / 原始数据中的哪个场景片段

例如一个 log 里可能有如下帧:

frame 0 -> scene_name = log-0060-scene-0001 frame 1 -> scene_name = log-0060-scene-0001 frame 2 -> scene_name = log-0060-scene-0001 ... frame 20 -> scene_name = log-0060-scene-0002

因此,scene_name更像是原始数据组织层面的场景片段 ID。

它不是 NAVSIM 训练 sample 的直接索引。


3. NAVSIM 的Scene是什么?

NAVSIM 源码中有一个Scenedataclass,通常包含:

scene_metadata map_api frames

其中:

frames = 一段连续帧序列

这段帧序列描述了:

自车状态 周围环境状态 历史信息 未来监督信息

在 NAVSIM 语境下,一个Scene对象通常就对应一个训练或评测 sample。

也就是说:

NAVSIM Scene 对象 = SceneFilter 切出来的固定长度 frame window = Dataset 每次 __getitem__ 使用的基本样本单位

4. NAVSIM 训练 sample 是如何生成的?

NAVSIM 不是简单地把同一个scene_name下的所有帧打包成一个 sample。

它的生成逻辑是:

logs / .pkl 文件 ↓ 读取 scene_dict_list ↓ SceneFilter 按固定长度切窗口 ↓ 得到 frame_list ↓ 过滤不合格窗口 ↓ 用当前帧 token 作为 key ↓ 保存到 filtered_scenes ↓ SceneLoader 构造 Scene 对象 ↓ Dataset 生成 feature / target

所以实际的 sample 单位是:

一个固定长度的 frame_list

而不是:

一个 scene_name 下的全部 frame

5.filtered_scenes是什么?

navsim/common/dataloader.py中,filtered_scenes本质上是一个字典:

filtered_scenes[token]=frame_list

它的含义是:

key = 当前帧 / initial frame 的 token value = 以这个 token 为规划起点的一段固定长度 frame_list

所以它不是:

filtered_scenes[scene_name] = 该 scene_name 下所有帧

而是:

filtered_scenes[current_frame_token] = 一个 NAVSIM sample 对应的帧窗口

6.filter_scenes()的核心逻辑

核心代码逻辑如下:

forframe_listinsplit_list(scene_dict_list,scene_filter.num_frames,scene_filter.frame_interval):iflen(frame_list)<scene_filter.num_frames:continueifscene_filter.has_routeandlen(frame_list[scene_filter

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询