SuperAPI AI 工具集

tao-train-depth-anything-v2

设计与创作

查看项目

更新于 10-16 04:34

技能介绍

用途:单目深度估计,使用 Metric Depth Anything v2 或 Relative Depth Anything 架构,从单张 RGB 图像预测逐像素深度。单目与双目技能均在容器内调用统一的 TAO depth_net CLI,通过 model.model_type 选择单目/双目光系,完整参数见 references/parameters.md。

主要能力:支持 train、evaluate、inference、export、quantize 及 TAO Deploy 的 TensorRT 动作(gen_trt_engine、TensorRT evaluate、TensorRT inference)。模型层支持 AutoML:默认 automl_policy: auto 且具备 schemas/train.schema.json 与 spec_template_train.yaml 时,训练动作经 tao-skill-bank:tao-run-automl 路由;显式指定 automl_policy: off 或 "turn off AutoML" 等表述则本次运行直接训练。非训练动作留在本技能内。

用法要点:数据(RGB 图像 + GT 深度)须在容器内可达;按行标注文件由 data_sources[].data_file 引用,需要 <image> 或 <image> <gt_depth> 格式,可用 depth_net convert -e <convert_spec.yaml> 生成。数据编码决定 dataset_name 与 model_type:视差数据用 RelativeDepthAnything + RelativeMonoDataset,度量深度(米)用 MetricDepthAnything + MetricMonoDataset;NYU sync_depth_.png(uint16 毫米)需用 NYUDV2/NYUDV2Relative 以完成毫米转米与 Eigen 裁剪,否则有效掩码为空、train_loss 为 NaN。训练设 train.precision 为 fp32(推荐)或 bf16。运行示例: docker run --gpus 'device=0' --shm-size 16G --ipc=host --user $(id -u):$(id -g) -v <data_root>:<data_root>:ro -v <output_dir>:<output_dir> <container> depth_net <action> -e <spec.yaml> 建议加 --user,避免输出归属 nobody:nogroup。

适用场景与限制:最少 1 GPU(推荐 2),每 GPU 24GB+ 显存,ViT-L 编码器显存占用高;TRT 数据类型支持 FP32、BF16(Ampere SM80+),ViT-L 单目主干不支持 FP16。评估/推理产物位于 results_dir,验证需检查退出码 0 与 status.json 的 kpi;训练入口即使 train_loss 为 NaN 也可能报告 PASS,需直接检查逐步 loss。多卡用 Lightning 管理,可设 train.num_gpus、gpu_ids、num_nodes、distributed_strategy(ddp/fsdp);fsdp 强制 FP16。其余细节见 references 下各参考文件。