指南 3个标注团队操作手册:提升标注速度与质量

https://github.com/HumanSignal/label-studio-ml-backend/assets/106922533/d1d2f233-d7c0-40ac-ba6f-368c3c01fd36

支持SAM的Grounding DINO后端集成

该集成将允许您:

  • 使用文本提示对图像中的物体进行零样本检测。
  • 无需任何模型微调,即可指定检测任意对象并获得最先进的结果。
  • 仅通过文本提示即可从SAM获取分割预测结果。

有关预训练Grounding DINO模型的更多详情,请参阅此处

开始之前

在开始之前,您必须安装Label Studio ML后端

本教程使用grounding_sam示例

快速入门

  1. 确保已安装Docker。

  2. 编辑 docker-compose.yml 文件以包含以下内容:

    • LABEL_STUDIO_HOST 设置Label Studio主机的终端节点。必须以http://开头
    • LABEL_STUDIO_ACCESS_TOKEN 设置Label Studio主机的API访问令牌。可以通过登录Label Studio并访问账户与设置页面获取。

    示例:

    • LABEL_STUDIO_HOST=http://123.456.7.8:8080
    • LABEL_STUDIO_ACCESS_TOKEN=your-api-key
  3. 运行 docker compose up

  4. 使用docker ps检查后端的IP地址。在将后端连接到Label Studio项目时需要使用此URL。通常为http://localhost:9090

  5. 创建一个项目并编辑标注配置(下方提供了示例)。在编辑标注配置时,请确保将所有矩形标签添加在RectangleLabels标签下,并将所有对应的笔刷标签添加在BrushLabels标签下。

<View>
  <Image name="image" value="$image"/>
  <Style>
    .lsf-main-content.lsf-requesting .prompt::before { content: ' loading...'; color: #808080; }
  </Style>
  <View className="prompt">
  <TextArea name="prompt" toName="image" editable="true" rows="2" maxSubmissions="1" showSubmitButton="true"/>
  </View>
  <RectangleLabels name="label" toName="image">
    <Label value="cats" background="yellow"/>
    <Label value="house" background="blue"/>
  </RectangleLabels>
  <BrushLabels name="label2" toName="image">
    <Label value="cats" background="yellow"/>
    <Label value="house" background="blue"/>
  </BrushLabels>
</View>
  1. 在项目设置的模型页面中,连接模型
  2. 进入项目中的图像任务。启用自动标注(位于标注界面底部)。然后在提示框中输入内容并点击添加。完成后,您应该会收到预测结果。观看上方视频可查看演示。

使用GPU

为了获得最佳用户体验,建议使用GPU。为此,您可以更新docker-compose.yml文件,包含以下内容:

environment:
  - NVIDIA_VISIBLE_DEVICES=all
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [gpu]

使用GroundingSAM

将Segment Anything模型与您的文本输入相结合,自动生成掩码预测!

要实现这一点,请在运行前设置 USE_SAM=true

警告:在没有GPU的情况下使用GroundingSAM可能导致性能缓慢,不建议这样做。如果必须在仅支持CPU的机器上使用,并且遇到性能缓慢或在标注界面看不到任何预测结果的情况,请考虑以下建议之一:

  • 增加分配给Docker容器的内存(例如在docker-compose.yml中设置memory: 16G
  • 通过设置环境变量ML_TIMEOUT_PREDICT=100来增加Label Studio实例的预测超时时间。
  • 使用“MobileSAM”作为“SAM”的轻量级替代方案。

如果想使用更高效的SAM版本,请设置USE_MOBILE_SAM=true

批量输入

https://github.com/HumanSignal/label-studio-ml-backend/assets/106922533/79b788e3-9147-47c0-90db-0404066ee43f

注意:这是一个实验性功能。

  1. 克隆包含实验性批处理功能的Label Studio特性分支。

    git clone -b feature/dino-support https://github.com/HumanSignal/label-studio.git

  2. 使用 docker compose up 运行此分支

  3. 按照快速入门部分的步骤2-5操作,现在使用新克隆的Label Studio分支的访问代码和主机IP信息。支持GroundingSAM功能。

  4. 前往项目中的数据管理器,选择您想要标注的任务。

  5. 选择操作 > 为GroundingDINO添加文本提示

  6. 输入您想要获取预测结果的提示词,然后点击提交

注意:如果您的提示词与已分配的标签值不同,可以使用下划线为提示输出指定正确的标签值。例如,如果您想选择所有棕色猫,但仍希望它们在标注配置中显示为"cats"标签值,您的提示词应为"brown cat_cats"。

其他环境变量

如果在实验中,请将Dockerfile中的BOX_THRESHOLDTEXT_THRESHOLD值调整为0到1之间的数字。默认值设置在dino.py中。有关这些值的更多信息,点击此处

如果想使用从目录保存的SAM模型,可以按照Dockerfile中所示使用MOBILESAM_CHECKPOINTSAM_CHECKPOINT