多模态数据标注平台LabelStudio——部署与智能标注体验

0. 前言

由于最近个人兴趣原因,需要调研下数据标注平台。看了这些平台:

从丰富性与二次开发角度对比,最终决定使用Label Studio进行一次实践,也趁此机会了解下关于数据标注与AI智能标注的相关知识。

1. label-studio简介

Label Studio 的仓库地址(https://github.com/HumanSignal/label-studio )所述,Label Studio 是一个使用Python +TypeScript 多模态数据标注平台,开源协议为Apache-2.0 ,非常适合二次开发或商用。
Label Studio 也支持多种部署方式,如需快速体验,推荐使用docker一键部署:

docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest

之后访问对应的web服务,如:http://192.168.1.101:8080

2. 功能体验

label-studio 支持系统内置的模板和自定义模板标注。

2.1 图像标注

上传数据集,并设置标签;

我上面设置的是标注名为head ,在上传的数据集中自己拖拽出一个head的矩形区域即可。

2.2 视频/音频标注

音视频标注也是类似的,加载了资源文件后,根据任务的类型框出对应需要标注的区域。

2.3 文本标注

提前设置好文本标签,就可以对导入的文本进行标注了。

2.4 数据的导入/导出

数据支持本地上传,与外部数据源导入。与之前笔者调研的RAGFlow 类似的,LabelStudio 也分为开源社区版企业版企业版的LabelStudio 具有更强大的功能。

现导出支持的数据格式有:

  • ASR_MANIFEST
  • Brush labels to NumPy and PNG
  • COCO
  • CoNLL2003
  • CSV
  • JSON
  • JSON_MIN
  • Pascal VOC XML
  • spaCy
  • TSV
  • YOLO

如果遇到暂不支持的数据格式,LabelStudio 官方也提供了对应的源码以方便我们进行扩展开发。详见:label_studio_sdk-converter

3.AI智能标注-ML Backend

LabelStudio 中也支持使用ML Backend 集成机器学习 框架来实现数据集的预标注自动标注 ,从而提高数据标注 的效率。

整合了ML Backend 之后的数据标注任务流程图如上所示。

3.1 ML Backend部署

Label Studio 中的ML backend 是一个WEB服务 ,在这个服务中定义了一些关于机器学习(machine learn )的流程和代码。通过让ML BackendLabel Studio 连接后,从而实现自动化的标注。
LabelStudio 官方也提供了一些关于ML Backend 的示例,地址为:https://github.com/HumanSignal/label-studio-ml-backend?tab=readme-ov-file#models ,通过对这些示例的修改,可快速实现一个符合自己场景的AI标注工作流。

这里以SAM模型为例,演示一下:

bash 复制代码
git clone https://github.com/HumanSignal/label-studio-ml-backend.git

cd label-studio-ml-backend/label_studio_ml/examples/segment_anything_model

docker-compose.yml中的内容如下:

yaml 复制代码
version: "3.8"

services:
  segment_anything_model:
    container_name: segment_anything_model
    image: heartexlabs/label-studio-ml-backend:sam-master
    init: true
    build:
      context: .
      shm_size: '4gb'
      args:
        TEST_ENV: ${TEST_ENV}
    deploy:
      resources:
        limits:
            memory: 8G
        reservations:
            memory: 4G
# Add this to pass through 1 GPU 
#            devices:
#              - driver: nvidia
#                count: 1
#                capabilities: [gpu]
    environment:
      # specify these parameters if you want to use basic auth for the model server
      - BASIC_AUTH_USER=
      - BASIC_AUTH_PASS=
      # Change this to your model name: MobileSAM or SAM
      - SAM_CHOICE=MobileSAM
      - LOG_LEVEL=DEBUG
      # Enable this to use the GPU
      # - NVIDIA_VISIBLE_DEVICES=all
      # specify the number of workers and threads for the model server
      - WORKERS=1
      - THREADS=8
      # specify the model directory (likely you don't need to change this)
      - MODEL_DIR=/data/models

      # Specify the Label Studio URL and API key to access
      # uploaded, local storage and cloud storage files.
      # Do not use 'localhost' as it does not work within Docker containers.
      # Use prefix 'http://' or 'https://' for the URL always.
      # Determine the actual IP using 'ifconfig' (Linux/Mac) or 'ipconfig' (Windows).
      - LABEL_STUDIO_HOST=
      - LABEL_STUDIO_ACCESS_TOKEN=

    ports:
      - 9090:9090
    volumes:
      - "./data/server:/data"

docker-compose.yml 的目录下执行命令,启动ML Backend

docker-compose up

运行后,它会占用9090端口。

复制代码
curl localhost:9090
{"model_class":"SamMLBackend","status":"UP"}

3.2 ML Backend整合

在前面完成了LabelStudioML Backend 的部署,并都已启动成功。接下来就可以进行对接测试了。

LabelStudio 中打开某个项目,找到设置中的Model ,在Connect Model 中填入相关的ML Backend 的信息。

保存之后,再次进入到数据标注界面

这时选择task之后,再点击Retrieve Predictions 就可以对任务进行预标注了。

更多关于ML Backend 可参考:https://labelstud.io/guide/ml_create ,笔者在这里不再详细展开。

另外,我们还可以使用LabelStudioML Backend 完成数据集的训练集成,从而实现数据集的一条龙服务。笔者这里暂不详细展开,后面有机会再持续补充。

相关推荐
硅谷秋水3 小时前
RoboLab:用于分析机器人任务通才策略的高-保真仿真基准
机器学习·计算机视觉·语言模型·机器人
AI多Agent协作实战派7 小时前
【AI探索历程17】从“给自己用“到想“让别人用“
人工智能
吴佳浩7 小时前
Memory Provider 实战:Hermes、Mem0、Honcho、Hindsight 为什么都这样设计?
人工智能·agent·ai编程
吴佳浩7 小时前
企业级 Agent Memory 选型指南:如何构建可扩展的 Memory Service?
人工智能·agent·ai编程
北方的银狐-Zero9 小时前
ERP 管执行,数据管标准,OntoL本体 管思考:企业智能化升级的规划图
大数据·人工智能·本体论
浅安的邂逅9 小时前
260918-白帽把 OpenAI 论坛“打穿“了:攻防赛漏洞、账户被 Claude 入侵、模型偷偷掩盖不当行为
人工智能·大模型·ai编程·ai模型·行业动态
jinyishu_9 小时前
认识 AI Agent:概念、架构、设计模式与主流框架
人工智能
Hrain-AI9 小时前
AI 爬虫三档授权工程落地:搜索放行、训练拦截、Agent 分层(附脚本)
人工智能·elasticsearch·milvus
sunhy_csdn9 小时前
“词码”作为 Token 候选译名
人工智能