# 1. LabelU多模态数据标注平台
# 1.1 基本介绍
# 1.1.1 LabelU平台
LabelU是一款综合性的数据标注平台,专为处理多模态数据而设计。该平台旨在通过提供丰富的标注工具和高效的工作流程,帮助用户更轻松地处理图像、视频和音频数据的标注任务,满足各种复杂的数据分析和模型训练需求。
- 项目地址:https://github.com/opendatalab/labelU (opens new window)
- 官方文档:https://opendatalab.github.io/labelU/#/guide/introduction (opens new window)
功能特性:LabelU提供了多种标注工具和功能,支持图像、视频、音频标注。
- 图像类:多功能图像处理工具,涵盖拉框、标点、标线、多边形、立体框等多种标注工具,协助完成图像的标识、注释和分析。
- 音频类:高效精准的音频分析工具,可实现音频分割、音频分类、音频时间戳等功能,将复杂的声音信息更好进行标注。
- 视频类:具备强大视频处理能力,可实现视频分割、视频分类、视频时间戳等功能,为模型训练提供优质标注数据。
# 1.1.2 LabelU-Kit工具包
LabelU-Kit工具包,支持图片2D框、点、线、多边形、立体框及混合标注工具,可用于标注平台开发集成,开箱即用。
- 项目地址:https://github.com/opendatalab/labelU-Kit (opens new window)
- 体验地址:https://opendatalab.github.io/labelU-Kit
# 1.2 安装使用
实验环境:Macbook Pro 2021,M1 Pro芯片,16G内存,macOS Sonoma 14.5系统,Anaconda环境
# 1.2.1 安装启动
[1] 方式一:快速启动(适合一般使用的情形)
LabelU平台的安装部署非常简单,只需要安装labelu包即可,没有什么坑儿。
$ conda create -n labelu python=3.11
$ conda activate labelu
$ pip3 install labelu
$ labelu
2
3
4
执行 labelu 命令即可一键启动。
[2] 方式二:源码启动(适合二次开发情形)
$ conda create -n labelu python=3.11
$ conda activate labelu
$ export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
$ git clone https://github.com/opendatalab/labelU.git
$ poetry install
2
3
4
5
注:如果没有poetry环境的话,安装先将其安装一下。
- pipx:类似于 macOS 上的 brew,pipx 依赖 pip 和 venv,它只能在 python 3.6+ 的 Python 版本中才能使用。
- poetry:如果想使用pyproject.toml,并通过pyproject.toml进行依赖包管理,目前pip还不支持,所以poetry是首选。
$ brew install pipx
$ pipx --version
$ pipx install poetry
$ pipx ensurepath // 自动更新环境变量
$ poetry --version // 需要重新打开终端
2
3
4
5
然后从 labelu-kit 拉取前端编译好的dist静态包,启动项目。
$ sh ./scripts/resolve_frontend.sh true
$ uvicorn labelu.main:app --reload
2
注:resolve_frontend.sh脚本获取前端包的地址是写在 .VERSION 文件里的。
# 1.2.2 使用流程
打开Chrome浏览器,访问 http://localhost:8000
即可访问 LabelU,注册登录后即可使用。
Step1:创建数据标注任务
Step2:查看数据标注任务
Step3:开始进行数据标注
Step4:导出数据标注结果
- 图片:完成标注后,可将标注结果文件以JSON、COCO、MASK形式导出。详见 图片导出格式说明 (opens new window)
- 音频:完成标注后,可将标注结果文件以JSON形式导出。详见 音频导出格式说明 (opens new window)
- 视频:完成标注后,可将标注结果文件以JSON形式导出。详见 视频导出格式说明 (opens new window)
# 1.3 数据标注
# 1.3.1 图像类数据
工具 | 使用方法 |
---|---|
拉框标注 | 1. 选中拉框工具并配置标签,如轿车、公交车。 2. 单击鼠标左键标注第一点,画出框的范围之后再次单击左键,即可绘制出框。 3. 右键选中框之后,可以调整框的大小、有效性,也可以删除已标注的框。 |
标点标注 | 1. 选中标点工具并配置标签,如人体姿态14个关键点,包括头、脖子、左肩、右肩、左手肘、右手肘、左腕、右腕、左髋、右髋、左膝、右膝、左脚踝、右脚踝。 2. 单击鼠标左键标注指定关键点。 3. 右键选中点之后,可以调整点的位置、属性,也可以删除已标注的点。 |
多边形标注 | 1. 选中多边形工具并配置标签,如猫、狗。 2. 单击鼠标左键标注起始点,随后沿目标边缘多次单击左键,以此类推在围绕目标边缘右键连接最接近起始点后,即可绘制出多边形框。 3. 右键选中框之后,可以调整目标边缘关键点、线段、目标有效性,也可以删除已标注的多边形框。 |
标线标注 | 1. 选中线条工具并配置标签,如车道线。 2. 单击鼠标左键标注起始点,再次点击1+N后右键为终止点。 3. 操作Shift+左键则为垂直或水平线。 |
立体框标注 | 1. 选中立体框工具并配置标签,如汽车。 2. 单击鼠标左键标注第一点,画出框的范围之后再次单击左键,即可绘制出正面。 3. 移动鼠标带出尾面(与正面相同),点击鼠标左键完成。 4.点击更换正反面,更改更多朝向。 5.右键选中立体框之后,可以调整8个点的位置以及6条线的位置(正面四条线以及尾面两条立柱线),也可以删除已标注的立体框。 |
# 1.3.2 音频类数据
工具 | 使用方法 |
---|---|
片段分割 | 播放音频并找到你想要开始切割的点,按下暂停并点击确定起始点。可以直接在时间线上点击并拖动选择终止点,来选择你想要切割的音频部分。 |
时间戳 | 选中找到你想引用或高亮的时间点,如果你想标记音频的1小时10分钟30秒处,你应该点击01:10:30这个进度条的点。 |
# 1.3.3 视频类数据
工具 | 使用方法 |
---|---|
片段分割 | 播放视频并找到你想要开始切割的点,按下暂停并点击确定起始点。可以直接在时间线上点击并拖动选择终止点,来选择你想要切割的视频部分。 |
时间戳 | 选中找到你想引用或高亮的时间点,如果你想标记视频的1小时10分钟30秒处,你应该点击01:10:30这个进度条的点。 |
# 2. LabelLLM数据标注平台
# 2.1 LabelLLM简介
LabelLLM是一个开源的数据标注平台,致力于优化对于大型语言模型(LLM)开发不可或缺的数据标注过程。LabelLLM的设计理念旨在成为独立开发者和中小型研究团队提高标注效率的有力工具。它的核心在于通过提供全面的任务管理解决方案和多样化的多模态数据支持,简化并增强模型训练的数据注释过程的效率。
# 2.2 LabelLLM搭建
服务器环境:Debian 11 x86_64 系统,8GB内存,160GB存储,2x Intel Xeon CPU,无GPU,带宽1 Gigabit
# 2.2.1 拉取项目代码
拉取代码并修改配置,只要让中间件与后端的连接信息配套即可。
$ git clone https://github.com/opendatalab/LabelLLM.git
$ cd LabelLLM
2
# 2.2.2 修改配置文件
./docker-compose.yaml
version: "3.1"
services:
redis:
image: redis:5.0
restart: always
ports:
- "16280:6379"
volumes:
- redis_data:/data
mongo:
image: mongo:4.2
restart: always
ports:
- "16019:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: mongodb_password
volumes:
- mongo_data:/data/db
minio:
image: docker.io/bitnami/minio:2022
ports:
- '9000:9000'
- '9001:9001'
environment:
- MINIO_ROOT_USER=minio_user
- MINIO_ROOT_PASSWORD=minio_password
- MINIO_DEFAULT_BUCKETS=label-llm
volumes:
- minio_data:/data
backend:
build: ./backend
ports:
- '16666:8080'
frontend:
build: ./frontend
ports:
- '8086:80'
depends_on:
- backend
volumes:
redis_data:
mongo_data:
minio_data:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
./backend/.env
DEBUG = True
ENVIRONMENT=local
MINIO_ACCESS_KEY_ID = minio_user
MINIO_ACCESS_KEY_SECRET = minio_password
MINIO_ENDPOINT = localhost:9000
MINIO_INTERNAL_ENDPOINT = minio:9000
MINIO_BUCKET = label-llm
MongoDB_DSN = mongodb://root:mongodb_password@mongo:27017
MongoDB_DB_NAME = label_llm
REDIS_DSN = redis://redis:6379/11
SECRET_KEY="?*hsbRq5c9gpjBp~:oHU+7s8,[email protected]:Oi_5oIYgw"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 2.2.3 一键部署服务
修改完配置之后,执行如下命令即可一键部署。
$ docker-compose up -d
# 2.3 LabelLLM使用
# 2.3.1 页面访问地址
使用Chrome浏览器访问地址即可访问,它分为运营端和标注端,账号自行注册。
- 运营端:
http://ip:8086/operator
- 标注端:
http://ip:8086/supplier
# 2.3.2 具体使用指南
LabelLLM分为运营端和标注端两部分,如何使用官方有很详细的文档,这里就不赘述了。
# 3. 参考资料
[1] LabelU官方介绍 from Github (opens new window)
[2] LabelU使用指南 from 官方文档 (opens new window)
[3] LabelU标注格式 from 官方文档 (opens new window)
[4] 大模型多轮对话开源标注工具Label-LLM安装部署教程 from YouTube (opens new window)
[5] 快速入门:大模型多轮对话开源标注工具LabelLLM的运营端配置教程 from YouTube (opens new window)
[6] 快速入门:大模型多轮对话开源标注工具LabelLLM的标注端使用教程 from YouTube (opens new window)
[7] LabelLLM帮助中心 ‐ 运营端 from Github (opens new window)
[8] LabelLLM帮助中心 ‐ 标注员 from Github (opens new window)
[9] LabelLLM常见问题 from Github (opens new window)