恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Ultralytics YOLO26-Depth 训练数据解析:Virtual KITTI 2 稠密深度数据集的结构、配置与实战用法
首页
资讯中心
/
Ultralytics YOLO26-Depth 训练数据解析:Virtual KITTI 2 稠密深度数据集的结构、配置与实战用法
Ultralytics YOLO26-Depth 训练数据解析:Virtual KITTI 2 稠密深度数据集的结构、配置与实战用法
发布时间:2026/9/5 21:56:20
Ultralytics YOLO26-Depth 训练数据解析Virtual KITTI 2 稠密深度数据集的结构、配置与实战用法【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralyticsVirtual KITTI 2vKITTI2是 Ultralytics YOLO26-Depth 单目深度估计模型预训练数据源之一它以照片级真实感的合成渲染方式复刻了 KITTI 驾驶场景并提供逐像素稠密真值深度。本篇指南基于仓库中的数据集文档与配置讲清 vKITTI2 的数据构成与训练分工、depth-vkitti2.yaml的逐字段含义尤其是depth_scale: 100厘米约定、自动下载与格式转换脚本的工作原理以及直接用 Python / CLI 在该数据集上训练 YOLO26-Depth 的完整方法。一、数据集概览为什么用合成数据训练户外深度估计Virtual KITTI 2vKITTI2是 KITTI 驾驶场景的照片级真实感合成复刻它从原始 KITTI 数据集中克隆了 5 条序列并在不同天气与光照条件下重新渲染同时提供逐像素稠密真值dense per-pixel ground truth。与真实 KITTI 数据相比vKITTI2 的核心价值在于稠密性真实 KITTI 的 Velodyne LiDAR 点云投影出的深度是稀疏的而 vKITTI2 为每个像素都给出深度真值。这种干净、稠密的户外驾驶几何正是单目深度估计模型所需要的监督信号因此 vKITTI2 与真实 KITTI 数据一起构成了 YOLO26-Depth 预训练混合数据中户外驾驶维度的重要互补。关键事实均来自 数据集文档照片级真实感的合成KITTI 驾驶场景复刻5 条克隆序列在多种天气与光照下渲染户外驾驶环境稠密逐像素真值深度真实 KITTI 稀疏 LiDAR 返回的稠密对应物深度范围约80 m为 Ultralytics 深度训练混合集贡献42,520 张图像25,780 训练 / 16,740 验证。二、数据集划分与文件组织vKITTI2 深度数据集划分为两个子集Train25,780 张图像配对的稠密深度图用于训练Val16,740 张图像配对的稠密深度图用于训练期间的验证。每张 RGB 图像都配有一张经过缩放的 uint16 深度 PNG遵循 Ultralytics 统一的深度数据集格式。源数据与转换后的 PNG 均使用厘米单位depth_scale: 100因此可以完整保留 80 m 的训练深度范围。深度编码约定depth_scale 100 的含义深度数据集文档给出了三种常见深度 PNG 编码约定的对照见 docs/en/datasets/depth/index.md约定depth_scale分辨率最大可编码深度默认 / ARKitScenes10001 mm65.535 mKITTI2563.90625 mm255.996 mVirtual KITTI 21001 cm655.35 m也就是说vKITTI2 的深度 PNG 中像素值 100 代表 1 米厘米级量化。uint16 PNG 把编码值0保留给无效像素因此 vKITTI2 约定下共有 65,535 个正深度值可用。需要注意的是上表中的最大深度是存储上限而非训练上限——数据集可以通过更小的max_depth独立控制参与损失与评估的深度区间vKITTI2 的 YAML 中即为 80 m。这套约定的底层实现在 ultralytics/data/utils.py 中DEPTH_PNG_SCALE 1000是默认的毫米级量化常量save_depth_png(path, depth, scale1000)把米制浮点数组按scale量化为 uint16 PNG无效像素NaN或非正值编码为0并在超出 uint16 可表示范围时抛出异常load_depth(path, scale1000)反向解码读取 uint16 PNG 后除以scale得到米制深度也支持直接读取米制浮点 NPY。目录布局与images → depth配对规则转换后的数据采用标准并行目录结构depth-vkitti2/ ├── images/ │ ├── train/ # RGB 图像 │ └── val/ └── depth/ ├── train/ # 配对的 16 位 *.png 深度图 └── val/加载器通过把路径中的images目录分量替换为depth来定位深度文件优先.png回退.npy这一逻辑见 DepthDataset._depth_path_for。此外 get_image_and_label 会在加载时用cv2.resize(..., INTER_NEAREST)把深度图对齐到图像尺寸因此深度图可以与 RGB 图像分辨率不同只要宽高比一致即可。数据集缓存哈希同样纳入了depth_scaleget_cache_hash修改该字段会触发缓存重建避免旧编码被误读。三、在 YOLO26-Depth 预训练中的角色Virtual KITTI 2 是用于预训练 Ultralytics YOLO26-Depth 模型的大规模多数据集混合约 219 万张图像中的训练源之一。该混合集横跨室内≤10 m到户外约 80 m的深度范围完整数据源清单可在 深度数据集总览 中查阅ARKitScenes、SUN RGB-D、DIODE、Hypersim、TartanAir、vKITTI2、KITTI、ImageNet 伪标注等。在这一混合中vKITTI2 为稀疏的真实 KITTI LiDAR 真值提供了稠密的合成户外驾驶对应物。需要明确的一点该配置下没有独立的 vKITTI2 留出基准。预训练得到的模型统一在标准单目深度基准上评估NYU Depth V2、KITTI、Make3D、ETH3D 和 iBims-1各基准说明见 docs/en/datasets/depth/。验证指标的实现见 DepthValidator它从数据 YAML 读取max_depth默认 100.0构造DepthMetrics只统计真值深度落在有效区间内的像素输出 delta1 / abs_rel / rmse / silog 等标准深度估计指标。四、数据集 YAML 逐字段解析仓库内置了该数据集的完整配置 ultralytics/cfg/datasets/depth-vkitti2.yaml内容如下保留原文注释# Ultralytics AGPL-3.0 License - https://ultralytics.com/license # Virtual KITTI 2 dataset for monocular depth estimation — photorealistic synthetic outdoor driving, dense per-pixel depth # Documentation: https://docs.ultralytics.com/datasets/depth/vkitti2 # Example usage: yolo depth train datadepth-vkitti2.yaml modelyolo26n-depth.pt # parent # ├── ultralytics # └── datasets # └── depth-vkitti2 ← downloads here (15 GB archives, ~85 GB converted) # ├── images/{train,val} # RGB images # └── depth/{train,val} # paired 16-bit *.png depth maps (images/ - depth/) # If an interrupted download leaves a partial dataset, delete the depth-vkitti2 dir and re-run to rebuild it. path: depth-vkitti2 # dataset root dir (relative to Ultralytics settings datasets_dir) train: images/train # train images (relative to path) 25780 images val: images/val # val images (relative to path) 16740 images max_depth: 80 # (m) maximum valid depth; GT beyond this is excluded from val metrics nc: 1 names: 0: depth channels: 3 depth_scale: 100 # source PNG value 100 1 meter (centimeters)字段说明字段取值说明pathdepth-vkitti2数据集根目录相对于 Ultralytics 设置中的datasets_dir下载脚本会自动把数据落在此处trainimages/train训练图像目录25,780 张valimages/val验证图像目录16,740 张max_depth80最大有效深度米真值超过该值的像素不计入验证指标见 DepthMetrics 的 Eigen 式评估协议nc/names1/{0: depth}深度任务的单类约定channels3RGB 三通道depth_scale100PNG 像素值 100 1 米厘米单位用于解码深度 PNG自动下载与格式转换脚本YAML 的download段内嵌了一个完整的转换脚本首次引用该 YAML 时会自动执行从 Naver Labs 官方镜像下载vkitti_2.0.3的rgb与depth两个 tar 归档合计约 15 GB到source/目录遍历rgb_*.jpg源文件按路径中解析出scene/variation/camera信息源布局为Scene01/clone/frames/rgb/Camera_0/rgb_00000.jpg划分规则Scene20 归入 val其余所有场景归入 train读取同名配对深度 PNG用(depth / 100).clip(max80)把厘米单位换算为米并裁剪到 80 m再通过 save_depth_png 以scale100厘米写回 uint16 PNG将 RGB 图像重命名并移动到images/{split}/最后删除source/原始归档转换后约 85 GB。脚本注释还给出了一条实用的运维提示如果下载中断留下了残缺数据集删除depth-vkitti2目录后重新运行即可重建。五、实战在 vKITTI2 上训练 YOLO26-Depth以下示例基于 docs/en/datasets/depth/vkitti2.md 原文以 640 输入尺寸训练yolo26n-depth。完整参数列表见 训练指南。Python 方式from ultralytics import YOLO # Load a model model YOLO(yolo26n-depth.pt) # load a pretrained model (recommended for training) # Train the model results model.train(datadepth-vkitti2.yaml, epochs100, imgsz640)CLI 方式# Start training from a pretrained *.pt model yolo depth train datadepth-vkitti2.yaml modelyolo26n-depth.pt epochs100 imgsz640几点实践提示datadepth-vkitti2.yaml指向仓库内置配置 ultralytics/cfg/datasets/depth-vkitti2.yaml首次运行会自动触发上述下载与转换流程约 15 GB 归档、转换后约 85 GB请预留磁盘空间若希望做大规模混合训练也可以按 深度数据集总览 的方式让train字段列出多个图像目录把 vKITTI2 与其他数据源组合验证阶段会按 YAML 中的max_depth: 80过滤有效像素报告 delta1 / abs_rel / rmse / silog 等指标见 docs/en/datasets/depth/index.md 的 FAQ 一节。预训练模型家族YOLO26 深度家族权重yolo26n-depth.pt、yolo26s-depth.pt、yolo26m-depth.pt、yolo26l-depth.pt、yolo26x-depth.pt均自动从 Ultralytics releases 下载且都训练于包含 Virtual KITTI 2 在内的多数据集混合。各模型的基准成绩与下载方式汇总在 深度估计任务页vKITTI2 在该表中以 80 m 深度范围、约 4.3 万张图像列于训练源一侧。六、引用与致谢如果你的研究或开发工作使用了 Virtual KITTI 2 数据集请引用原始论文article{cabon2020vkitti2, title{Virtual KITTI 2}, author{Yohann Cabon and Naila Murray and Martin Humenberger}, journal{arXiv preprint arXiv:2001.10773}, year{2020} }感谢 Virtual KITTI 2 的创作者将这一合成驾驶数据集提供给计算机视觉社区。小结vKITTI2 以合成渲染方式复刻 5 条 KITTI 序列提供 42,520 张RGB 稠密逐像素深度样本深度范围约 80 m它是 YOLO26-Depth 预训练混合约 219 万张中的合成户外驾驶源与稀疏的真实 KITTI LiDAR 真值互补本身不单独作为评估基准内置 depth-vkitti2.yaml 采用厘米级depth_scale: 100编码与max_depth: 80指标裁剪并内置约 15 GB 归档的自动下载与转换脚本Scene20 → val其余场景 → train通过yolo depth train datadepth-vkitti2.yaml modelyolo26n-depth.pt即可复现文档中的训练流程深度加载、配对与解码分别由 DepthDataset 和 load_depth / save_depth_png 实现。【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考