Bootstrap

ComfyUI-Autodistill:图像集自动标注生成目标检测数据集

ComfyUI-Autodistill 是ComfyUI平台上的图像集自动标注节点包,利用基础模型的能力自动标注图像并生成目标检测数据集。

ComfyUI-Autodistill

1、代码组织

ComfyUI-Autodistill节点包的目录组织说明如下:

文件路径文件说明
requirements.txt依赖包清单文件
__init__.py包入口文件
py/自定义节点目录
py/caption_ontology.pyCaptionOntology节点,定义基础模型的提示和对应的标注信息
py/load_base_model.pyLoadBaseModel节点,加载基础模型
py/empty_dict.pyEmptyDict节点,输出空字典对象
py/dict_set_value.pyDictSetValue节点,设置字典对象的值
py/label_images.pyLabelImages节点,自动标注指定的图像集
py/visualize_dataset.pyVisualizeDataset节点,可视化生成的数据集
examples/示例工作流目录
examples/auto-annotation.json自动标注示例工作流
images/待标注的示例图像集目录
dataset/完成标注的数据集目录
requirements.txt依赖包清单文件

2、安装

将节点包解压到 ComfyUI/custom_nodes 目录下,结果如下所示:

ComfyUI
  |- custom_nodes
        |- ComfyUI-Autodistill
              |- __init__.py
              |- ...

然后进入 ComfyUI-Autodistill 目录,执行如下命令安装依赖包:

|

pip install -r requirements.txt

3、使用示例数据集快速上手

在ComfyUI界面中,点击【Load】按钮载入 examples/auto-annotation.json工作流,如下图所示:

automated annotation example workflow

上面工作流执行后,将自动在指定的输出文件夹得到标注好的数据集。点击预览图,可以看到瓶子和瓶盖 已经被标注了:

mask annotation

LabelImages节点负责对指定的图像集进行自动标注并形成目标检测数据集,它需要一个基础模型作为输入, 同时也需要指定要标注的图像文件所在的目录。

LoadBaseModel节点负责加载指定类型的基础模型,同时也需要指定一个标注提示(CaptionOntology)以便 指导基础模型进行标注。

CaptionOntology节点负责定义提供给基础模型的标注提示,标注提示将提示映射为标签,例如这个节点表示 基础模型应当标注出图像中的 milk bottle,并在生成的数据集中设置标签为 bottle

ontology example

EmptyDict节点创建一个空字典对象,DictSetValue节点设置字典对象的键/值对,因此下面的工作流片段:

dict part

实际上创建了一个如下的字典对象:

{
  "milk bottle": "bottle",
  "blue cap": "cap",
}

VisualizeDataset节点负责显示生成的数据集中的前N个带标注信息的图像。

4、自定义节点手册

4.1 LabelImages

label images node

LabelImages节点利用基础模型对指定的图像文件进行自动标注,生成目标检测数据集。

输入:

  • base_model:基础模型,由 LoadBaseModel节点加载
  • input_folder:待标注的图像文件目录
  • extension:待标注图像文件的后缀,默认:'png'
  • output_folder:待生成数据集的保存目录,包含原始图像和标注信息

输出:

  • dataset:生成的目标检测数据集

4.2 LoadBaseModel

load base model node

LoadBaseModel节点按指定的ontology信息加载指定的基础模型。

输入:

  • ontology:基础模型的提示与标注映射描述,由 CaptionOntology节点创建
  • model:要加载的基础模型,默认:"Grounded SAM"

输出:

  • base_model:已加载的基础模型

4.3 VisualizeDataset

visualize dataset node

VisualizeDataset 节点可视化生成的数据集中的前N个带标注图像。

输入:

  • dataset:自动标注生成的数据集
  • first_n:要叠加标注信息的前多少个图像
  • mask:是否叠加遮罩标注
  • box:是否叠加包围盒标注
  • label:是否叠加分类标签

输出:

  • images:生成的带标注图像批

4.4 CaptionOntology

caption ontology node

CaptionOntology节点定义用于指导基础模型的标注行为的提示信息。

输入:

  • dict:提示/分类标签字典

输出:

  • ontology:提示标注对象

4.5 EmptyDict

empty dict node

EmptyDict节点定义一个空字典。

输出:

  • dict:空字典

4.6 DictSetValue

dict set value node

DictSetValue节点设置字典对象的键/值对。

输入:

  • key:键
  • value:值

原文链接:ComfyUI-Autodistill节点包 - 汇智网

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;