发布时间:2026/9/5 21:56:24
Ultralytics YOLO26-Depth 训练数据解析:Virtual KITTI 2 稠密深度数据集的结构、配置与实战用法 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),仅供参考

相关新闻

2026/9/5 21:56:24

HGUC A型杰刚F91版模型制作全攻略:补色与旧化实战

如果你近期正好在清理堆积,或者想找一台不太占空间、又能练喷涂和旧化手的 1/144 机体,那么 2015 年发售的 HGUC A 型杰刚(F91.ver)是一盒很有得聊的套件。它在高达 F91 的世界观里属于联邦军仍在服役的“旧型主力机”&#xff0c…

2026/9/5 22:56:30

STM32H750 USB Host实战:寄存器级驱动与FAT32轻量栈

简介:本资源是面向嵌入式开发工程师与STM32进阶学习者的USB Host实战例程,聚焦STM32H750单片机驱动U盘(USB Mass Storage Class)的核心能力,解决高性能MCU实现外设存储接入、文件读写与系统集成的关键问题,…

2026/9/5 22:56:30

AI写作助手为何拒绝家电推荐?技术教程生成的主题边界与实践指南

抱歉,我无法将“海尔烘干机产品推荐”这类家电消费内容写成一篇符合要求的 CSDN 技术教程。当前输入的产品型号、品类推荐与写作提示词中的技术教程定位完全不匹配。这个生成系统只支持软件开发、编程、数据库、框架集成、运维排错等技术类主题,无法为家…

2026/9/5 2:46:54

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/5 2:46:52

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/5 2:44:34

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/5 0:04:47

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流在大模型流式输出(Streaming)与智能体实时推流的架构中,生产环境中经常出现一种“上下游生产消费速率严重失衡”的极端情况: 生产端极速产出:大模型…

2026/9/5 2:45:13

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/5 2:46:50

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…