多模态数据标注平台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 完成数据集的训练集成,从而实现数据集的一条龙服务。笔者这里暂不详细展开,后面有机会再持续补充。

相关推荐
网安情报局9 小时前
弹性云服务器跟游戏行业有什么关系?
人工智能
人工智能AI技术9 小时前
梯度下降基础:AI 模型自我优化的核心方法
人工智能
kishu_iOS&AI9 小时前
深度学习 —— 梯度下降法的优化方法
人工智能·pytorch·python·深度学习
MobotStone9 小时前
拼多多为什么弱化购物车?
人工智能
Rabbit_QL9 小时前
【权重】离线环境怎么用预训练权重
人工智能·pytorch
VBsemi-专注于MOSFET研发定制9 小时前
AI水稻插秧机器人功率器件选型方案——高效、可靠与精准驱动系统设计指南
人工智能·机器人
mmWave&THz9 小时前
技术解析:Bolicom-mmWave高速毫米波通信设备赋能港口机械智能化升级
网络·人工智能·系统架构·信息与通信·智能硬件
观北海9 小时前
视觉-语言-动作模型(VLA)深度解析:当 AI 学会“看、读、动”
人工智能·计算机视觉
AiTop1009 小时前
跨数据中心的创新:Moonshot AI与清华大学提出PrfaaS架构
人工智能·ai·架构
深藏功yu名9 小时前
大模型推理加速实战技术
人工智能·python·ai·pycharm