Repository navigation
Data Validation
检查页把每一项明确标为“错误”“警告”或“通过”,并按这个优先级排序。
- 错误:数据缺失、损坏或语义不可用。回放可用于定位问题,但正常导出会在 UI 和 Rust 后端同时被阻止。
- 警告:数据仍可读取,但存在缺帧、数量不一致或时间间隔异常等质量风险。确认警告后可以导出。
- 通过:本次检查覆盖范围内没有发现问题。
交互检查不会逐张解码全部图像。每个非空视频流按排序后帧序列固定抽取 1% / 25% / 50% / 73% / 99% 五个位置;不足五个唯一位置时自动去重。
目录、文件名、帧 ID、缺帧、状态 JSON 和时间戳仍然全量检查。检查页会同时显示流总帧数和实际解码帧数。抽检通过只代表被抽中的 JPEG 可以解码,不能证明未抽中的所有 JPEG 都正常。
对 segment BIN 文件夹,结构扫描会遍历按数值编号排序后的全部 segment 和全部记录头尾,检查截断、长度、magic、版本、流编号、pose JSON 及 pose CRC。左右目 JPEG 仍按上述固定百分位抽检,并在每次抽检或回放读取时同时验证 payload CRC32、整条记录 CRC32 和 JPEG 解码;正式全量模式会读取并校验每一帧。SEGMENT_SEQUENCE_GAP 和非法 segment 名是警告,重复编号、重复帧号或损坏记录是错误。
日期顶层的混合记录使用同一套 segment 检查,同时从顶层 manifest 读取相机 MP4 帧数、帧率和分段路径。MP4 与 T265 pose 以首个 batch ID 为共同起点;15 FPS 相机在 30 Hz 状态时间轴上每两帧状态推进一帧图像。只有 .partial segment、缺失有效 BIN 或零长度媒体的中断记录不能作为完整混合记录加载,并会显示 error。
macOS 在外置磁盘上生成的 AppleDouble ._* 和 .DS_Store 只保存平台元数据,
不属于相机帧或状态数据。应用在扫描统计、数据指纹、校验和显式导入中统一忽略
这些文件,不会删除或修改源卡;其他非数字 JPEG 文件名仍会报告
INVALID_FRAME_FILENAME error。
正式压力和发布验收使用全量 JPEG 解码,不能用交互抽检报告替代。
回放开始前会对每路相机执行同一组五点 JPEG 预检。空流、帧号异常、抽检解码失败或尺寸不一致会阻止加载;左侧记录列表可将该条数据跳过,跳过不会修改源文件。若回放中出现新的读帧失败,也会立即停止该记录并提示跳过。
除 STATE_FRAME_GAP 外,任何 warning 都会先在右侧列出具体问题,要求确认是否进入标注;选择“不标注,跳到下一条”会在当前扫描中跳过该数据。缺帧 MISSING_FRAMES 也使用这一确认流程。TRAJECTORY_STATIC 是例外:至少两条有效 position 记录中位置没有变化时,该条会直接跳过而不进入标注。缺失或非有限 position 仍按状态解析错误报告。
出现警告或错误时,应用会在后台自动生成本地报告;全部通过时不会生成无意义报告。相同 episode 路径、数据指纹和报告版本会去重。
检查页的“导出报告”用于把当前机器可读报告保存到用户选择的位置。报告包含检查模式、抽检百分位、流统计、issue code、可定位帧号和后台报告路径。
后台报告只写应用 local-data,不会上传网络,也不会写入 SD 卡或源 episode。