Ultralytics YOLO26-Depth 伪标注 ImageNet 深度数据集:用 Depth Anything 3 教师蒸馏出 128 万张深度监督

发布时间:2026/9/5 19:41:34
Ultralytics YOLO26-Depth 伪标注 ImageNet 深度数据集:用 Depth Anything 3 教师蒸馏出 128 万张深度监督 Ultralytics YOLO26-Depth 伪标注 ImageNet 深度数据集用 Depth Anything 3 教师蒸馏出 128 万张深度监督【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics本文解析 Ultralytics 仓库中 YOLO26-Depth 预训练混合数据里最大的单一来源——伪标注 ImageNet 深度数据集1,281,167 张 ImageNet-1K 训练图像如何借助 Depth Anything 3 教师模型离线生成伪深度标签单目结构与度量尺度如何经逐图仿射拟合合并为label a * mono b以及为什么 SILog 损失与中值对齐验证能让这些无真值数据支撑起室内跨域泛化。读完后你将理解这套蒸馏数据的完整生成管线、在预训练混合中的角色以及如何在自己的多源深度混合depth mix上训练 YOLO26-Depth。数据集概览与定位Ultralytics 官方文档 ImageNet (Pseudo-Labeled) Depth Dataset 描述的数据集复用了 1,281,167 张 ImageNet-1K 训练图像。这些图像本身没有任何真实深度ground-truth depth每一张都配有一张由 Depth Anything 3 教师模型离线生成的伪深度图。它的用途非常明确**纯粹用于知识蒸馏knowledge distillation**与场景/物体多样性补充而非作为评测基准是约 2.19M 图像的 YOLO26-Depth 预训练混合中最大的单一来源约占 58%官方文档指出加入该来源对室内跨域泛化indoor cross-domain generalization起到了决定性作用——模型在真实深度训练分布之外的室内场景上表现更好没有验证划分YOLO26-Depth 的验证只在 NYU Depth V2、KITTI Eigen 等真实真值数据集上进行参见 NYU Depth V2 与 KITTI。该数据源以内部混合训练配置的一个组成部分形式存在随预训练权重一并发挥作用不作为独立下载分发。数据集结构伪标注 ImageNet 源由两部分构成对应文档中的 Dataset Structure 一节训练图像1,281,167 张 ImageNet-1K 训练图像是约 2.19M 图像预训练混合中最大的单一组件约 58%验证无。该来源没有验证划分YOLO26-Depth 的验证只使用 NYU Depth V2、KITTI Eigen 等真实真值数据集。深度文件本身的组织遵循 Ultralytics 统一的 深度数据集格式每张伪深度图保存为16-bit 毫米单位 PNG默认depth_scale: 1000即像素值 1500 表示 1.5 米并与源图像按**文件主干名file stem**配对——即images/train/xxx.jpg对应depth/train/xxx.png加载器通过把路径中的images目录替换为depth来定位深度文件。伪标签生成管线单目细节 度量尺度由于 ImageNet 不附带深度标注深度目标是离线预测出来的而不是测量出来的。文档给出了完整四步管线双教师前向。每张 ImageNet 训练图像分别过两个 Depth Anything 3 检查点depth-anything/DA3MONO-LARGE预测细节极高的深度图但只定义在未知逐图尺度/偏移上仿射歧义depth-anything/DA3METRIC-LARGE输出较粗糙但处于真实米制单位。逐图鲁棒仿射拟合。以单目预测为基础、度量预测为锚解出逐图两个标量label a * mono b。于是逐像素细节全部来自单目检查点度量检查点只负责把深度图放到米制坐标轴上的两个标量。整个过程不涉及相机内参因此未标定的图像也可以被标注。落盘。结果保存为 16-bit 毫米 PNG按文件主干名与源图像配对。混入训练。伪标注对作为更大训练混合的一个组件加入学生模型 YOLO26-Depth 一边匹配教师、一边在真实真值源上训练。为什么伪标签的全局尺度误差可以被吸收因为尺度来自预测而非测量每张伪图都可能带有全局尺度误差。文档给出的解释是YOLO26-Depth 使用尺度不变对数损失SILog加梯度匹配训练并用中值对齐做验证因此伪标签中的逐图尺度偏移大部分被吸收。仓库源码印证了这一整套机制训练侧DepthLoss26 的 SILog 多尺度梯度损失DepthLoss26 的类注释明确写着采用尺度不变对数损失SILog 梯度匹配损失遵循 Depth Anything 思路。SILog 处理尺度歧义梯度损失保边。关键实现细节有效像素掩码为valid gt_depth 0.001无效像素0 值约定不参与损失SILog 以中心化方差形式实现先对log(pred) - log(gt)求均值m再计算sqrt(mean((log_diff - m)^2) (1 - dlam) * m^2 1e-6)。其中dlam 1.0即纯尺度不变形式dlam 0.0退化为 log-RMSE——这正是文档中逐图尺度偏移被吸收的数学来源当dlam 1.0时损失对整体平移即尺度不敏感梯度损失_grad_l1计算预测与 GT 对数深度的空间梯度dx、dy的 L1且只在两个参与像素均有效时计值随后经avg_pool2d下采样做最多 4 层多尺度匹配并在有效像素占比较低的图块上停止兼顾连续填充与 LiDAR 稀疏场景。这三个行为由 default.yaml 中的超参数控制均为深度任务默认值dlog: 1.0 # (float) depth log (SILog) loss gain (depth tasks) dgrad: 0.5 # (float) depth gradient loss gain (depth tasks) dlam: 1.0 # (float) depth SILog variance focus: 1.0scale-invariant, 0.0log-RMSE (depth tasks)验证侧逐图像素中值对齐Depth 指标实现 中的对齐参数align: str median按 Depth Anything 评测协议在打分前对每张图执行median(gt) / median(pred)的尺度重标定注释说明这是为了让仿射不变尺度歧义输出可以直接评分——与文档验证用中值对齐median alignment的表述一致。训练入口与后处理DepthTrainer 继承检测训练器将batch[depth]保持为 float32并透明支持多源图像路径列表即混合训练final_eval阶段还会在校验集上拟合 scale-only 对数仿射cal_a/cal_b写入best.pt/last.pt让模型开箱即输出米制深度。学生模型结构见 yolo26-depth.yaml其中末端Depth头在 P3/P4/P5 上输出无界对数深度。在 YOLO26-Depth 预训练混合中的角色这个来源贡献了 YOLO26-Depth 预训练数据的大头与最广泛的场景/物体多样性。通过在 100 万 张图像上蒸馏强 Depth Anything 3 教师它把广域场景先验转移给学生模型。文档结论是加入该来源对室内跨域泛化起决定作用帮助模型在真实真值训练分布之外的室内场景上取得良好表现。各预训练源ARKitScenes、SUN RGB-D、DIODE、Hypersim、TartanAir、Virtual KITTI 2、KITTI 与本文的伪标注 ImageNet及五个评测基准的完整清单见 Depth 数据集总览。用法作为多源深度混合的一个组件伪标注 ImageNet 数据不单独训练而是作为组合深度混合的一个组件被消费由内部/实验性 YAML而非公开的独立数据集下载定义。从源码结构看混合训练即在一个数据集 YAML 的train字段中列出多个图像目录由BaseDataset的多源加载机制透明处理见 DepthTrainer 的类注释。概念上在这样一个混合上训练如下Pythonfrom ultralytics import YOLO # Load a pretrained depth model model YOLO(yolo26n-depth.pt) # Train on a combined depth mix (your own multi-source dataset YAML) results model.train(datadepth-mix.yaml, epochs100, imgsz640)CLI# Train on a combined depth mix (your own multi-source dataset YAML) yolo depth train datadepth-mix.yaml modelyolo26n-depth.pt epochs100 imgsz640自定义深度混合 YAML 时遵循 深度数据集格式path/train/val定位目录nc: 1、names: {0: depth}可选depth_scale默认 1000即毫米 PNG深度 PNG 建议用ultralytics.data.utils.save_depth_png()从米制数组转换实现位于 ultralytics/data/utils.py。像素值≤ 0视为无效会被自动排除出损失与指标计算。预训练模型预训练 YOLO26-Depth 模型在首次按名称引用时自动下载权重来自 Ultralytics 发布的 v8.4.0 assets release共 5 个规模档YOLO26n-DepthYOLO26s-DepthYOLO26m-DepthYOLO26l-DepthYOLO26x-Depth各档位在不同评测基准上的精度与权重下载入口列于 Depth Estimation 任务页。引用与致谢如果你的研究使用了 ImageNet 数据集或本文描述的伪标注方案请引用以下文献inproceedings{deng2009imagenet, title{ImageNet: A Large-Scale Hierarchical Image Database}, author{Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and Fei-Fei, Li}, booktitle{2009 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year{2009}, organization{IEEE} } article{depthanything3, title{Depth Anything 3: Recovering the visual space from any views}, author{Lin, Haotong and Chen, Sili and Liew, Jun Hao and Chen, Donny Y. and Li, Zhenyu and Shi, Guang and Feng, Jiashi and Kang, Bingyi}, journal{arXiv preprint arXiv:2511.10647}, year{2025} }文档同时致谢 ImageNet 团队创建并维护该数据集以及 Depth Anything 3 作者提供的用于生成伪深度标签的教师模型。小结伪标注 ImageNet 是 YOLO26-Depth 约 2.19M 预训练混合中约 58% 的最大来源只用于蒸馏与多样性不单独分发、不做评测标签由DA3MONO-LARGE细节与DA3METRIC-LARGE尺度双教师经逐图仿射拟合label a * mono b生成16-bit 毫米 PNG 落盘尺度误差由 DepthLoss26 的 SILogdlam1.0 梯度损失与验证侧中值对齐共同吸收源码与文档表述互相印证实践上把它当作多源深度混合中的一个组件用自建的depth-mix.yaml训练即可复现同等用法。【免费下载链接】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),仅供参考