Auto-Label
标注基于图像的数据集可能非常繁琐和耗时,对于分割任务尤其如此。在标注时,围绕对象绘制一个好的多边形可能比绘制一个边界框花费的时间长 10 倍。TAO 数据服务的 Auto-Label 服务旨在减少标注图像数据集所花费的时间。目前,此服务支持:* 自动生成给定类别名称或指代表达式的边界框标注。* 自动生成给定 groundtruth 边界框的实例分割掩码。
Auto-Label 服务期望图像目录的 groundtruth 标注存储在 COCO 格式 JSON 文件中。
参数 | 数据类型 | 描述 |
mal | collection | MAL 的配置 |
grounding_dino | collection | Grounding DINO 的配置 |
gpu_ids | list | 要使用的 GPU 索引 |
num_gpus | int32 | 要使用的 GPU 数量 |
batch_size | int32 | 批大小 |
num_workers | int32 | 数据加载器的工作进程数 |
results_dir | string | 结果目录 |
autolabel_type | string | 要运行的自动标注类型(“mal”或“grounding_dino”) |
Grounding DINO 配置
字段 |
value_type |
描述 |
---|---|---|
model |
collection | GroundingDINO 模型配置 |
train |
collection | 用于测试的数据源 |
dataset |
collection | 用于推理的数据源:* image_dir:包含推理图像的目录列表 * class_names:要运行自动标注的类别列表 * noun_chunk_path:存储名词短语的 JSONL 文件 * augmentation:GroundingDINO 增强配置 |
results_dir |
string | 结果目录 |
iteration_scheduler |
string | 迭代计划列表。默认是一个迭代,置信度阈值为 0.5。下一次迭代消除已检测到的类别/名词短语。 |
visualize |
bool | 启用边界框可视化的标志 |
checkpoint |
string | Grounding DINO 模型检查点路径 |
使用 Grounding DINO 迭代自动标注图像数据集的过程描述如下
候选图像的单次前向传递通过 Grounding DINO 模型运行,该模型为已接地的名词短语或类别名称列表生成边界框标注。
从本次迭代中获取标签,然后将其与上一次迭代的标签聚合。聚合过程涉及对相似标注进行聚类的方法,例如 NMS 或 DBSCAN。
迭代标注过程基于预定义的标准终止,例如
当前迭代次数超过最大迭代次数的上限。
如果输入名词短语和类别名称列表中提到的所有类别都具有相应的标签,并且在迭代过程中没有添加新标签。
如果未满足终止条件,它将重新触发通过开放词汇模型推理器的另一次前向传递。但是,这次模型推理发生在较低的置信度阈值下。置信度阈值降低的速率由置信度阈值退火调度器(“confidence annealing”)确定。这可以是阶梯式退火、指数衰减或余弦退火。
MAL 配置
有关创建 spec 文件的更多信息,请参阅 Mask Auto Labeler (MAL) 文档。
Auto-Label 服务支持以下任务
generate
- 基于输入边界框生成伪标签
可以使用命令行上的以下约定从 TAO Launcher 调用 Auto-Label 服务
tao dataset auto_label generate [-h] -e <experiment spec>
[results_dir=<results_dir>]
[num_gpus=<num_gpus>]
必需参数
-e, --experiment_spec_file
:实验规范文件
可选参数
num_gpus
:用于推理的 GPU 数量。默认值为 1。-h, --help
:显示此帮助消息并退出。
以下是使用带有 MAL 模型的 Auto-Label generate
命令的示例
tao dataset auto_label generate -e /path/to/spec.yaml num_gpus=2