TAO Depth Anything v2 深度估计
使用 NVIDIA TAO 从单张 RGB 图像训练、评估、导出和推理单目深度模型。
文档明确说明数据挂载、只读输入、输出目录、容器边界和部分外部下载路径,且未发现恶意行为、凭据窃取或隐蔽外泄;但仅声明允许 Read/Bash,Bash 权限较宽,没有用户确认、敏感数据处理、回滚方案或依赖完整性校验,因此扣分。
工作流、参数矩阵、错误模式和 NaN 检查较详细,能降低常见配置错误;但未提供可独立复现的测试套件或 CI 覆盖,依赖 TAO 容器、tao-run-automl 和外部权重可用性未被充分验证,且导出默认 opset 17 与示例中的 opset 16 存在不一致,因此静态证据不足,限制在 10 分以下。
目标用户、训练/评估/推理/导出/量化场景、数据格式和硬件要求较明确,并说明了若干非适用情形;但触发边界仍主要依赖关键词,未提供中文交互或中国大陆网络适配说明,核心镜像和 DINOv2 权重依赖外部 NVIDIA/Facebook 资源,网络可达性不确定,因此扣分。
文档采用主文件加 references 的渐进式结构,包含参数、配方、部署和故障排查,并声明 Apache-2.0、版本 0.1.0 和作者;但缺少标准 Instructions/Examples 章节,作者格式不完整,缺少明确 changelog、维护责任和更新路径,且 benchmark 报告指出结构规范问题,因此扣分。
技能覆盖数据准备、模型选择、训练、评估、导出、部署和结果检查,模板和输出位置对直接执行有帮助;但静态审查无法验证结果正确性,量化存在已知失败路径,训练可能出现 NaN,部署形状/配置错误还可能产生非物理 KPI,因此不能给出超过静态上限的高分。
文档提供较多配置来源、错误症状和可检查的输出条件,BENCHMARK.md 也记录了一次评估报告;但这些材料没有配套可核验的提交测试、CI 或多源独立复现证据,且部分外部引用仅以路径或链接形式出现,因此证据覆盖有限。
- 执行前应确认 TAO PyT/Deploy 镜像、tao-run-automl 和外部预训练权重可访问,并固定其版本或校验值。
- 不要把 Execution status: PASS 视为训练成功;必须检查有限且下降的 train_loss,并核对导出与部署的输入尺寸、模型类型和 opset。
- Bash 权限较宽,处理敏感数据时应由用户明确确认挂载范围、输出目录和外部网络访问。
这个 Skill 能做什么,适合哪些场景?
该技能面向 NVIDIA TAO Toolkit 中的单目深度估计工作流,支持 Metric Depth Anything v2 和 Relative Depth Anything。它通过容器内统一的 TAO depth_net CLI 执行训练、评估、推理、导出和量化,并支持 TensorRT 部署流程。技能涵盖标注文件生成、数据集类型匹配、AutoML 训练策略、多 GPU 配置、导出和故障排查。运行需要 Docker、NVIDIA Container Toolkit 和 NVIDIA GPU。
读取模型、训练、数据集、导出和推理配置;使用 depth_net convert 生成图像与深度文件的逐行标注;根据米制深度、视差编码或 NYU 原始 uint16 深度选择数据集类;在 TAO 容器中运行 train、evaluate、inference、export、quantize 和部署相关 TensorRT 操作;生成模型检查点、评估或推理结果,并通过退出码、status.json 和 KPI 检查结果。
- 计算机视觉工程师需要从单张 RGB 图像预测米制深度时,使用 MetricDepthAnything 训练或推理。
- 研究人员处理视差编码数据并需要相对深度估计时,使用 RelativeDepthAnything。
- 使用 NYU sync_depth PNG 数据训练或评估时,使用带单位转换和评估裁剪的数据集类。
- 模型团队需要将训练好的单目深度模型导出为 ONNX 或部署到 TensorRT 时,遵循对应的 TAO Deploy 流程。
- 平台团队需要在单 GPU、多 GPU 或多节点环境运行 TAO 深度模型训练时,使用其 Lightning 分布式配置。
这个 Skill 有哪些优点和局限?
- 覆盖训练、评估、推理、导出、量化和 TensorRT 部署相关流程。
- 明确区分米制深度、相对深度和 NYU 原始深度编码,减少数据集配置错误。
- 提供 AutoML、多 GPU/多节点、检查点加载和常见故障处理规则。
- 可通过 NVIDIA skills CLI 安装,并属于 NVIDIA skills 集合中的独立技能。
- 必须使用 Docker、NVIDIA Container Toolkit 和 NVIDIA GPU;ViT-Large 对显存要求较高。
- 数据目录、标注路径和文件扩展名匹配要求严格,错误可能导致空掩码或 train_loss=NaN。
- 文档指出训练入口可能在 train_loss=NaN 时仍报告 PASS,因此需要额外检查指标。
- 该技能只覆盖 TAO 单目深度模型,不应将仓库中其他技能的能力归入本技能。
如何安装这个 Skill?
使用 NVIDIA skills CLI 安装指定技能:npx skills add nvidia/skills --skill tao-train-depth-anything-v2 --yes。也可指定代理,例如:npx skills add nvidia/skills --skill tao-train-depth-anything-v2 --agent codex。安装后,代理下次加载技能时即可使用。
如何使用这个 Skill?
向代理提出“train monocular depth”“DepthAnything v2”或“monocular depth estimation”等请求。准备可从容器访问的 RGB 图像、GT 深度文件和逐行标注文件;根据数据编码选择 model_type 与 dataset_name;为对应 action 编写 YAML spec,并在 Docker 中运行 depth_net。训练默认启用 AutoML,可在新训练请求中使用 automl_policy: on 或 off。完成后检查容器退出码、status.json 的 kpi,以及训练中的 train_loss 是否为有限值。
这个 Skill 与同类方案有什么区别?
技能支持两种主要模型路线:Metric Depth Anything 输出米制深度,Relative Depth Anything 面向相对或视差编码深度。对于 NYU 原始 uint16 毫米深度,还提供 NYUDV2 与 NYUDV2Relative 专用数据集类。