TAO v5.5.0

DINO

DINO 是 TAO 中包含的对象检测模型。它支持以下任务

  • 转换

  • 训练

  • 评估

  • 推理

  • 导出

  • 蒸馏

这些任务可以使用 TAO Launcher 从命令行调用,使用以下约定

复制
已复制!
            

tao model dino <sub_task> <args_per_subtask>

其中,args_per_subtask 是给定子任务所需的命令行参数。每个子任务将在以下章节中详细解释。

DINO 期望用于训练或验证的图像目录,以及 COCO 格式的带注释 JSON 文件。

注意

您的 COCO JSON 文件中的 category_id 应该从 1 开始,因为 0 设置为背景类。此外,dataset.num_classes 应该设置为 max class_id + 1。例如,即使 COCO 中只使用了 80 个类,最大的 class_id 是 90,所以 dataset.num_classes 应该设置为 91。

数据分片(可选)

注意

如果注释已经采用 JSON 格式,并且您的数据集小于 COCO 数据集,则无需分片。此子任务还假设您的数据集采用 KITTI 格式。

对于大型数据集,您可以选择使用 convert 将数据集分片成更小的块,以减轻内存负担。在此过程中,基于 KITTI 的注释被转换为更小的分片 JSON 文件,类似于其他对象检测网络。以下是将基于 KITTI 的文件夹转换为多个分片 JSON 文件的示例规范文件。

复制
已复制!
            

input_source: /workspace/tao-experiments/data/sequence.txt results_dir: /workspace/tao-experiments/sharded image_dir_name: images label_dir_name: labels num_shards: 32 num_partitions: 1 mapping_path: /path/to/your_category_mapping

下表总结了每个参数的详细信息

参数 数据类型 默认值 描述 支持的值
input_source 字符串 列出数据源的 .txt 文件
results_dir 字符串 将存储分片 JSON 文件的输出目录
image_dir_name 字符串 input_source .txt 文件中列出的路径到包含图像的目录的相对路径
label_dir_name 字符串 input_source .txt 文件中列出的路径到包含 JSON 数据的目录的相对路径
num_shards 无符号整数 32 每个分区的分片数 >0
num_partitions 无符号整数 1 数据中的分区数 >0
mapping_path 字符串 包含类映射的 JSON 文件的路径

类别映射应包含数据集的映射,并按反字母顺序排列。默认映射如下所示

复制
已复制!
            

DEFAULT_TARGET_CLASS_MAPPING = { "Person": "person", "Person Group": "person", "Rider": "person", "backpack": "bag", "face": "face", "large_bag": "bag", "person": "person", "person group": "person", "person_group": "person", "personal_bag": "bag", "rider": "person", "rolling_bag": "bag", "rollingbag": "bag", "largebag": "bag", "personalbag": "bag" }

以下示例显示如何使用 convert 命令

复制
已复制!
            

tao model dino convert -e /path/to/spec.yaml

DINO 的训练实验规范文件包括 modeltraindataset 参数。以下是使用 resnet_50 主干在 COCO 数据集上训练 DINO 模型的示例规范文件。

复制
已复制!
            

dataset: train_data_sources: - image_dir: /path/to/coco/train2017/ json_file: /path/to/coco/annotations/instances_train2017.json val_data_sources: - image_dir: /path/to/coco/val2017/ json_file: /path/to/coco/annotations/instances_val2017.json num_classes: 91 batch_size: 4 workers: 8 augmentation: scales: [480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800] input_mean: [0.485, 0.456, 0.406] input_std: [0.229, 0.224, 0.225] horizontal_flip_prob: 0.5 train_random_resize: [400, 500, 600] train_random_crop_min: 384 train_random_crop_max: 600 random_resize_max_size: 1333 test_random_resize: 800 model: pretrained_model_path: /path/to/your-fan-small-pretrained-model backbone: fan_small train_backbone: True num_feature_levels: 4 dec_layers: 6 enc_layers: 6 num_queries: 300 num_queries: 900 dropout_ratio: 0.0 dim_feedforward: 2048 train: optim: lr: 0.0001 lr_backbone: 0.00001 lr_linear_proj_mult: 0.1 momentum: 0.9 weight_decay: 0.0001 lr_scheduler: MultiStep lr_decay: 0.1 lr_steps: [11] optimizer: AdamW num_epochs: 10 checkpoint_interval: 5 validation_interval: 5 clip_grad_norm: 0.1 precision: fp32 distributed_strategy: ddp activation_checkpoint: True num_gpus: 1 gpu_ids: [0] num_nodes: 1 seed: 1234

参数 数据类型 默认值 描述 支持的值
model dict 配置 模型架构的配置
dataset dict 配置 数据集的配置
训练 dict 配置 训练任务的配置
评估 dict 配置 评估任务的配置
推理 dict 配置 推理任务的配置
encryption_key 字符串 用于加密和解密模型文件的加密密钥
results_dir 字符串 /results 保存实验结果的目录
导出 dict 配置 ONNX 导出任务的配置
gen_trt_engine dict 配置 TensorRT 生成任务的配置。仅在 TAO 部署中使用

model

model 参数提供更改 DINO 架构的选项。

复制
已复制!
            

model: pretrained_model_path: /path/to/your-fan-small-pretrained-model backbone: fan_small train_backbone: True num_feature_levels: 4 dec_layers: 6 enc_layers: 6 num_queries: 300 num_queries: 900 dropout_ratio: 0.0 dim_feedforward: 2048

参数 数据类型 默认值 描述 支持的值
pretrained_backbone_path 字符串 预训练主干文件的可选路径 字符串到路径

backbone

字符串

resnet_50

模型的主干名称。支持 GCViT、FAN、ResNet 50 和 NVDINOv2。

resnet_50, gc_vit_xxtiny,
gc_vit_xtiny, gc_vit_tiny,
gc_vit_small, gc_vit_base,
gc_vit_large, fan_tiny,
fan_small, fan_base,
fan_large, vit_large_nvdinov2

train_backbone 布尔值 True 一个标志,指定是否训练主干 True, False
num_feature_levels 无符号整数 4 模型中使用的特征级别数 1,2,3,4,5

return_interm_indices

整数列表

[1, 2, 3, 4]

模型中使用的特征级别索引。长度必须与 num_feature_levels 匹配。

[0, 1, 2, 3, 4], [1, 2, 3, 4],
[1, 2, 3], [1, 2], [1]

dec_layers 无符号整数 6 Transformer 中的解码器层数 >0
enc_layers 无符号整数 6 Transformer 中的编码器层数 >0
num_queries 无符号整数 900 查询数 >0
dim_feedforward 无符号整数 2048 前馈网络的维度 >0
num_select 无符号整数 300 后处理期间选择的 Top-K 预测数 >0
use_dn 布尔值 True 一个标志,指定是否在 DINO 中启用对比去噪训练 True, False
dn_number 无符号整数 100 DINO 中的去噪查询数 >0
dn_box_noise_scale 浮点数 1.0 应用于对比去噪期间框的噪声比例。如果此值为 0,则不应用噪声。 >=0
dn_label_noise_ratio 浮点数 0.5 应用于对比去噪期间标签的噪声比例。如果此值为 0,则不应用噪声。 >=0
pe_temperatureH 无符号整数 20 应用于位置正弦嵌入高度维度的温度 >0
pe_temperatureW 无符号整数 20 应用于位置正弦嵌入宽度维度的温度 >0

fix_refpoints_hw

有符号整数

-1

如果此值为 -1,则为每个框分别学习宽度和高度。如果此值为 -2,
则学习共享的宽度和高度。大于 0 的值指定使用固定数量进行学习。

>0, -1, -2

dropout_ratio 浮点数 0.0 丢弃隐藏单元的概率 0.0 ~ 1.0
cls_loss_coef 浮点数 2.0 匹配成本中分类误差的相对权重 >0.0
bbox_loss_coef 浮点数 5.0 匹配成本中边界框坐标 L1 误差的相对权重 >0.0
giou_loss_coef 浮点数 2.0 匹配成本中边界框 GIoU 损失的相对权重 >0.0
focal_alpha 浮点数 0.25 焦点损失中的 alpha 值 >0.0
aux_loss 布尔值 True 一个标志,指定是否使用辅助解码损失(每个解码器层的损失) True, False

训练

train 参数定义了训练过程的超参数。

复制
已复制!
            

train: optim: lr: 0.0001 lr_backbone: 0.00001 lr_linear_proj_mult: 0.1 momentum: 0.9 weight_decay: 0.0001 lr_scheduler: MultiStep lr_decay: 0.1 lr_steps: [11] optimizer: AdamW num_epochs: 10 checkpoint_interval: 5 validation_interval: 5 clip_grad_norm: 0.1 precision: fp32 distributed_strategy: ddp activation_checkpoint: True num_gpus: 1 gpu_ids: [0] num_nodes: 1 seed: 1234

参数 数据类型 默认值 描述 支持的值
num_gpus 无符号整数 1 用于分布式训练的 GPU 数量 >0
gpu_ids List[int] [0] 用于分布式训练的 GPU 索引
seed 无符号整数 1234 用于 random、NumPy 和 torch 的随机种子 >0
num_epochs 无符号整数 10 运行实验的总 epoch 数 >0
checkpoint_interval 无符号整数 1 保存检查点的 epoch 间隔 >0
validation_interval 无符号整数 1 运行验证的 epoch 间隔 >0
resume_training_checkpoint_path 字符串 从中恢复训练的中间 PyTorch Lightning 检查点
results_dir 字符串 /results/train 保存训练结果的目录
optim dict 配置 优化器的配置,包括学习率、学习率调度器和权重衰减 >0
clip_grad_norm 浮点数 0.1 按 L2 范数裁剪梯度的量。值为 0.0 表示不裁剪 >=0
precision 字符串 fp32 指定 “fp16” 启用混合精度训练。使用 fp16 训练可以帮助节省 GPU 内存。 fp32, fp16

distributed_strategy

字符串

ddp

多 GPU 训练策略。支持 DDP(分布式数据并行)和 FSDP
(完全分片数据并行)。

ddp, fsdp

activation_checkpoint 布尔值 True True 值指示训练在后向传播中重新计算以节省 GPU 内存,而不是存储激活。 True, False
pretrained_model_path 字符串 要加载以进行微调的预训练模型检查点路径
num_nodes 无符号整数 1 节点数。如果该值大于 1,则启用多节点 >0
freeze 字符串列表 [] 模型中要冻结的层名称列表。示例 [“backbone”, “transformer.encoder”, “input_proj”]
verbose 布尔值 False 是否打印来自优化器的详细学习率缩放 True, False

蒸馏

distill 参数定义了蒸馏的超参数。

复制
已复制!
            

distill: teacher: backbone: fan_small train_backbone: False num_feature_levels: 4 dec_layers: 6 enc_layers: 6 num_queries: 900 dropout_ratio: 0.0 dim_feedforward: 2048 pretrained_teacher_model_path: /path/to/your-fan-small-pretrained-teacher-model bindings: - teacher_module_name: teacher_module_name student_module_name: student_module_name criterion: L2 weight: 1.0

参数 数据类型 默认值 描述 支持的值
teacher dict 配置 教师模型的配置 >0
pretrained_teacher_model_path 字符串 要加载以进行蒸馏的预训练教师模型检查点路径 >0
bindings 列表字典

教师和学生之间用于计算蒸馏损失的绑定列表
* teacher_module_name:教师模块的名称
* student_module_name:学生模块的名称
* criterion:用于计算绑定损失的标准名称(L1、L2、KL)
* weight:用于绑定的权重值,默认为 1.0

>0.0

optim

optim 参数定义了训练中优化器的配置,包括学习率、学习率调度器和权重衰减。

复制
已复制!
            

optim: lr: 0.0001 lr_backbone: 0.00001 lr_linear_proj_mult: 0.1 momentum: 0.9 weight_decay: 0.0001 lr_scheduler: MultiStep lr_decay: 0.1 lr_steps: [11] optimizer: AdamW

参数

数据类型

默认值

描述

支持的值

lr 浮点数 1e-4 训练模型(不包括主干)的初始学习率 >0.0
lr_backbone 浮点数 1e-5 训练主干的初始学习率 >0.0
lr_linear_proj_mult 浮点数 0.1 训练线性投影层的初始学习率 >0.0
momentum 浮点数 0.9 AdamW 优化器的动量 >0.0
weight_decay 浮点数 1e-4 权重衰减系数 >0.0

lr_scheduler

字符串

MultiStep

学习率调度器
* MultiStep:从 lr_stepslr 降低 lr_decay
* StepLR:在每个 lr_step_sizelr 降低 lr_decay

MultiStep/StepLR

lr_decay 浮点数 0.1 学习率调度器的降低因子 >0.0
lr_decay_rate 浮点数 0.65 仅用于 ViT 的逐层学习衰减率 >0.0
lr_steps 整数列表 [11] 用于 MultiStep 调度器降低学习率的步数 整数列表
lr_step_size 无符号整数 11 用于 StepLR 调度器降低学习率的步数 >0
lr_monitor 字符串 val_loss AutoReduce 调度器的监视值 val_loss/train_loss
optimizer 字符串 AdamW 训练期间使用的优化器 AdamW/SGD

dataset

dataset 参数定义了数据集源、训练批大小和增强。

复制
已复制!
            

dataset: train_data_sources: - image_dir: /path/to/coco/images/train2017/ json_file: /path/to/coco/annotations/instances_train2017.json val_data_sources: - image_dir: /path/to/coco/images/val2017/ json_file: /path/to/coco/annotations/instances_val2017.json test_data_sources: image_dir: /path/to/coco/images/val2017/ json_file: /path/to/coco/annotations/instances_val2017.json infer_data_sources: image_dir: /path/to/coco/images/val2017/ classmap: /path/to/coco/annotations/coco_classmap.txt num_classes: 91 batch_size: 4 workers: 8

参数 数据类型 默认值 描述 支持的值

train_data_sources

列表字典

训练数据源
* image_dir:包含训练图像的目录
* json_file:JSON 文件的路径,它使用训练注释 COCO 格式

val_data_sources

列表字典

验证数据源
* image_dir:包含验证图像的目录
* json_file:JSON 文件的路径,它使用验证注释 COCO 格式

test_data_sources

dict

用于评估的测试数据源
* image_dir:包含测试图像的目录
* json_file:JSON 文件的路径,它使用测试注释 COCO 格式

infer_data_sources

dict

用于推理的推理数据源
* image_dir:包含推理图像的目录
* classmap:包含类名称的 .txt 文件的路径

augmentation dict 配置 定义增强方法的参数
num_classes 无符号整数 91 训练数据中的类数 >0
batch_size 无符号整数 4 训练和验证的批大小 >0
workers 无符号整数 8 并行处理数据的 worker 数量 >0

train_sampler

字符串

default_sampler

小批量采样方法。可以为多节点启用非默认采样方法
作业。如果 dataset_type 未设置为默认值,则此配置无效

default_sampler, non_uniform_sampler,
uniform_sampler

dataset_type

字符串

serialized

如果设置为 default,我们遵循标准的 CocoDetection` 数据集结构
从 torchvision 中,它在每个子进程中加载 COCO 注释。这会导致冗余
数据副本,如果 workers` 很高,可能会导致 RAM 爆炸。如果设置为 serialized
数据通过 pickle 和 torch.Tensor` 序列化,从而允许数据共享
跨子进程。因此,RAM 使用率可以大大提高。

serialized, default

augmentation

augmentation 参数包含增强的超参数。

复制
已复制!
            

augmentation: scales: [480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800] input_mean: [0.485, 0.456, 0.406] input_std: [0.229, 0.224, 0.225] horizontal_flip_prob: 0.5 train_random_resize: [400, 500, 600] train_random_crop_min: 384 train_random_crop_max: 600 random_resize_max_size: 1333 test_random_resize: 800

参数 数据类型 默认值 描述 支持的值

scales

整数列表

[480, 512, 544, 576,
608, 640, 672, 704,
736, 768, 800]

用于执行随机调整大小的尺寸列表。

input_mean 浮点数列表 [0.485, 0.456, 0.406] RGB 帧的输入均值:(input - mean) / std 浮点数列表 / size=1 或 3
input_std 浮点数列表 [0.229, 0.224, 0.225] RGB 帧的输入标准差:(input - mean) / std 浮点数列表 / size=1 或 3
horizontal_flip_prob 浮点数 0.5 训练期间水平翻转的概率 >=0
train_random_resize 整数列表 [400, 500, 600] 用于训练数据随机调整大小的尺寸列表 整数列表
train_random_crop_min 无符号整数 384 训练数据的最小随机裁剪大小 >0
train_random_crop_max 无符号整数 600 训练数据的最大随机裁剪大小 >0
random_resize_max_size 无符号整数 1333 训练数据的最大随机调整大小 >0
test_random_resize 无符号整数 800 测试数据的随机调整大小 >0

fixed_padding

布尔值

True

一个标志,指定是否将图像(不带填充)调整为
(sorted(scales[-1]), random_resize_max_size) 以防止 CPU
内存泄漏。

True/False

fixed_random_crop

无符号整数

一个标志,用于启用大规模抖动,这用于 ViT 主干。
生成的图像分辨率固定为 fixed_random_crop

可被 32 整除

ViT 主干的示例规范文件

注意

以下规范文件仅与 TAO 5.2 及更高版本相关。视觉 Transformer (ViT) 需要不同的增强和学习率衰减才能作为检测器的主干工作。

复制
已复制!
            

dataset: train_data_sources: - image_dir: /path/to/coco/train2017/ json_file: /path/to/coco/annotations/instances_train2017.json val_data_sources: - image_dir: /path/to/coco/val2017/ json_file: /path/to/coco/annotations/instances_val2017.json num_classes: 91 batch_size: 4 workers: 8 augmentation: input_mean: [0.485, 0.456, 0.406] input_std: [0.229, 0.224, 0.225] horizontal_flip_prob: 0.5 fixed_random_crop: 1024 random_resize_max_size: 1024 test_random_resize: 1024 fixed_padding: True model: pretrained_model_path: /path/to/nvdinov2_patch16_model backbone: vit_large_nvdinov2 train_backbone: False num_feature_levels: 4 dec_layers: 6 enc_layers: 6 num_queries: 900 dropout_ratio: 0.0 dim_feedforward: 2048 train: optim: lr_backbone: 2e-5 lr: 2e-4 lr_steps: [11] layer_decay_rate: 0.65 num_epochs: 12

使用以下命令运行 DINO 训练

复制
已复制!
            

tao model dino train [-h] -e <experiment_spec> [results_dir=<global_results_dir>] [model.<model_option>=<model_option_value>] [dataset.<dataset_option>=<dataset_option_value>] [train.<train_option>=<train_option_value>] [train.gpu_ids=<gpu indices>] [train.num_gpus=<number of gpus>]

必需参数

唯一必需的参数是实验规范的路径

  • -e, --experiment_spec:用于设置训练实验的实验规范文件

可选参数

您可以设置可选参数来覆盖实验规范文件中的选项值。

注意

对于训练、评估和推理,我们为每个相应的任务公开 2 个变量:num_gpusgpu_ids,它们分别默认为 1[0]。如果两者都传递,但设置不一致,例如 num_gpus = 1gpu_ids = [0, 1],则它们将被修改为遵循具有更多 GPU 的设置,例如 num_gpus = 1 -> num_gpus = 2

检查点和恢复训练

在每个 train.checkpoint_interval,都会保存一个 PyTorch Lightning 检查点。它被称为 model_epoch_<epoch_num>.pth。这些保存在 train.results_dir 中,如下所示

复制
已复制!
            

$ ls /results/train 'model_epoch_000.pth' 'model_epoch_001.pth' 'model_epoch_002.pth' 'model_epoch_003.pth' 'model_epoch_004.pth'

最新的检查点也保存为 dino_model_latest.pth。如果 dino_model_latest.pth 存在于 train.results_dir 中,则训练会自动从它恢复。如果提供了 train.resume_training_checkpoint_path,则它将取代此项。

此逻辑的主要含义是,如果您希望从头开始触发全新训练,则可以

  • 指定一个新的空结果目录(推荐)

  • 从结果目录中删除最新的检查点

优化 DINO 训练的资源

训练 DINO 需要强大的 GPU(例如,V100/A100),至少具有 15GB 的 VRAM 和大量 CPU 内存,才能在像 COCO 这样的标准数据集上进行训练。本节概述了您可以使用的在资源有限的情况下启动训练的一些策略。

优化 GPU 内存

有多种方法可以优化 GPU 内存使用率。一种技巧是减少 dataset.batch_size。但是,这可能会导致您的训练花费比平时更长的时间。我们建议设置以下配置以优化 GPU 消耗

  • train.precision 设置为 fp16 以启用自动混合精度训练。这可以将您的 GPU 内存使用率降低 50%。

  • train.activation_checkpoint 设置为 True 以启用激活检查点。通过重新计算激活而不是将它们缓存到内存中,可以提高内存使用率。

  • train.distributed_strategy 设置为 fsdp 以启用完全分片数据并行训练。这在不同进程之间共享梯度计算,以帮助减少 GPU 内存。

  • 尝试使用更轻量级的主干,如 fan_tiny,或通过将 model.train_backbone 设置为 False 来冻结主干。

  • 尝试根据您的数据集更改 dataset.augmentation 中的增强分辨率。

优化 CPU 内存

为了加速数据加载,通常的做法是设置大量的 worker 以生成多个进程。但是,如果您的注释文件非常大,这可能会导致您的 CPU 内存不足。我们建议设置以下配置以优化 CPU 消耗

  • dataset.dataset_type 设置为 serialized,以便 COCO-based 注释数据可以在不同的子进程之间共享。

  • dataset.augmentation.fixed_padding 设置为 True,以便在批次形成之前填充图像。由于训练期间的随机调整大小和随机裁剪增强,变换后的图像分辨率可能会因图像而异。这种可变的图像分辨率可能会导致内存泄漏,并且 CPU 内存会缓慢堆积,直到在训练过程中内存不足。这是 PyTorch 的限制,因此我们建议将 fixed_padding 设置为 True,以帮助稳定 CPU 内存使用率。

要蒸馏 DINO 模型,请使用此命令

复制
已复制!
            

tao model dino distill [-h] -e <experiment_spec> [-r <results_dir>] [-k <key>]

必需参数

  • -e, --experiment_spec:用于设置蒸馏实验的实验规范文件

可选参数

  • -r, --results_dir:用于写入实验输出的文件夹的路径。如果未指定此参数,则使用规范文件中的 results_dir

  • -k, --key:用户特定的编码密钥,用于保存或加载 .tlt 模型。如果未指定此参数,则模型检查点不会加密。

  • --gpus:用于运行训练的 GPU 数量。

  • --num_nodes:用于运行训练的节点数。如果此值大于 1,则启用分布式多节点训练。

  • -h, --help:显示此帮助消息并退出。

示例用法

以下是 distill 命令的示例

复制
已复制!
            

tao dino model distill -e /path/to/spec.yaml

评估

evaluate 参数定义了评估过程的超参数。

复制
已复制!
            

evaluate: checkpoint: /path/to/model.pth conf_threshold: 0.0

参数 数据类型 默认值 描述 支持的值
checkpoint 字符串 要评估的 PyTorch 模型路径
results_dir 字符串 /results/evaluate 保存评估结果的目录
num_gpus 无符号整数 1 用于分布式评估的 GPU 数量 >0
gpu_ids List[int] [0] 用于分布式评估的 GPU 索引
trt_engine 字符串 要评估的 TensorRT 模型路径。仅与 TAO 部署一起使用
conf_threshold 浮点数 0.0 用于过滤预测的置信度阈值 >=0

要使用 DINO 模型运行评估,请使用此命令

复制
已复制!
            

tao model dino evaluate [-h] -e <experiment_spec> evaluate.checkpoint=<model to be evaluated> [evaluate.<evaluate_option>=<evaluate_option_value>] [evaluate.gpu_ids=<gpu indices>] [evaluate.num_gpus=<number of gpus>]

必需参数

  • -e, --experiment_spec:用于设置评估实验的实验规范文件。

  • evaluate.checkpoint:要评估的 .pth 模型。

可选参数

推理

inference 参数定义了推理过程的超参数。

复制
已复制!
            

inference: checkpoint: /path/to/model.pth conf_threshold: 0.5 color_map: person: red car: blue

参数 数据类型 默认值 描述 支持的值
checkpoint 字符串 要推理的 PyTorch 模型路径
results_dir 字符串 /results/inference 保存推理结果的目录
num_gpus 无符号整数 1 用于分布式推理的 GPU 数量 >0
gpu_ids List[int] [0] 用于分布式推理的 GPU 索引
trt_engine 字符串 要推理的 TensorRT 模型路径。仅与 TAO 部署一起使用
conf_threshold 浮点数 0.5 用于过滤预测的置信度阈值 >=0
color_map dict 每个类别的边界框的颜色映射 字符串字典

DINO 模型的推理工具可用于可视化边界框,并在图像目录上生成逐帧 KITTI 格式标签。

复制
已复制!
            

tao model dino inference [-h] -e <experiment spec file> inference.checkpoint=<model to be inferenced> [inference.<inference_option>=<inference_option_value>] [inference.gpu_ids=<gpu indices>] [inference.num_gpus=<number of gpus>]

必需参数

  • -e, --experiment_spec:用于设置推理实验的实验规范文件。

  • inference.checkpoint:要推理的 .pth 模型。

可选参数

导出

export 参数定义了导出过程的超参数。

复制
已复制!
            

export: checkpoint: /path/to/model.pth onnx_file: /path/to/model.onnx on_cpu: False opset_version: 12 input_channel: 3 input_width: 960 input_height: 544 batch_size: -1

参数 数据类型 默认值 描述 支持的值
checkpoint 字符串 要导出的 PyTorch 模型的路径
onnx_file 字符串 .onnx 文件的路径
on_cpu 布尔值 True 如果此值为 True,则 DMHA 模块将导出为标准 PyTorch。如果此值为 False,则模块将使用 TRT 插件导出。 True, False
opset_version 无符号整数 12 导出的 ONNX 的 opset 版本 >0
input_channel 无符号整数 3 输入通道大小。仅支持值 3。 3
input_width 无符号整数 960 输入宽度 >0
input_height 无符号整数 544 输入高度 >0
batch_size 无符号整数 -1 ONNX 模型的批大小。如果此值设置为 -1,则导出使用动态批大小。 >=-1
复制
已复制!
            

tao model dino export [-h] -e <experiment spec file> export.checkpoint=<model to export> export.onnx_file=<onnx path> [export.<export_option>=<export_option_value>]

必需参数

  • -e, --experiment_spec:实验规范文件的路径。

  • export.checkpoint:要导出的 .pth 模型。

  • export.onnx_file:保存 .etlt.onnx 模型的路径。

可选参数

有关将 Deformable DETR 模型部署到 DeepStream 的更多信息,请参阅 将 Deformable DETR 模型集成到 DeepStream 的文档页面。

上一篇 Grounding DINO
下一篇 OCDNet
© 版权所有 2024, NVIDIA。 上次更新于 2024 年 10 月 15 日。