Label Studio:统一的数据标注环境
Label Studio 快速入门:打造你的统一数据标注环境
Label Studio 是一个开源的数据标注工具,支持图像、文本、音频、视频等多种数据类型,可以灵活配置标注界面,极大提升数据准备效率。本教程将带你从零开始,完成一次完整的标注任务,轻松上手这一强大的标注平台。
1. 认识 Label Studio
在机器学习项目中,高质量的标注数据是模型成功的基石。Label Studio 提供了一个统一的 Web 界面,让你无需在多款工具之间切换,即可完成:
- 图像:图像分类、目标检测、语义分割、关键点标注
- 文本:文本分类、命名实体识别(NER)、情感分析、问答对标注
- 音频:语音转写、音频分类、说话人分段
- 视频:视频分类、动态目标跟踪
- 多模态:混合类型的数据标注,如文本+图像的协同标注
它采用前后端分离架构,支持自定义标注模板,结果导出格式多样(COCO、YOLO、CSV、JSON 等),并可轻松集成到 MLOps 流水线中。
2. 安装与启动
Label Studio 支持多种安装方式,这里推荐最常用的两种。
2.1 使用 pip 安装(本地或服务器)
确保你的环境中已安装 Python 3.8 及以上版本。
# 新建一个虚拟环境(推荐)
python -m venv label-studio-env
source label-studio-env/bin/activate # Linux/Mac
# label-studio-env\Scripts\activate # Windows
# 使用 pip 安装
pip install label-studio
# 启动服务(默认端口 8080)
label-studio start
首次启动时会创建默认用户账号,在本机访问 http://localhost:8080 即可打开界面。你也可以通过 --username 和 --password 参数指定初始管理员,如:
label-studio start --username admin@example.com --password mypassword
2.2 使用 Docker 安装
如果你更习惯容器化部署,Docker 是理想选择。
docker run -it -p 8080:8080 -v `pwd`/mydata:/label-studio/data heartexlabs/label-studio:latest
上述命令将数据持久化到本地 mydata 目录,防止容器删除后数据丢失。
3. 创建你的第一个标注项目
启动成功后,浏览器打开地址,登录账号,跟着以下步骤创建项目:
- 点击“创建项目”:在首页点击右上角的蓝色
Create按钮。 - 填写项目信息:输入项目名称(如
猫狗分类)和描述。 - 导入数据:支持上传文件、粘贴 URL、链接云存储(S3、GCS 等)。我们以本地图像为例,点击
Upload Files选择多张图片后导入。 - 配置标注模板:这是 Label Studio 最精妙的部分,下一节详细展开。
4. 配置标注模板(Labeling Config)
模板配置决定了你在标注时看到的界面。Label Studio 使用 XML 格式的模板来定义标签和控件类型。
在项目创建步骤的 Labeling Setup 中,选择模板类型,或直接编写自定义 XML。对一个简单的图像分类任务,可以选择 Image Classification 模板,自动生成如下配置:
<View>
<Image name="image" value="$image"/>
<Choices name="choice" toName="image">
<Choice value="cat"/>
<Choice value="dog"/>
</Choices>
</View>
解释:
<Image>展示原始图片,value="$image"关联上传的数据字段。<Choices>提供单选或多选控件,toName指向要标注的对象。- 每个
<Choice>定义一个分类标签。
你可以在界面中直接修改标签文本,也可以在代码编辑器中手工调整。更复杂的任务如目标检测,可使用 RectangleLabels 控件:
<View>
<Image name="image" value="$image"/>
<RectangleLabels name="rect" toName="image">
<Label value="cat" background="blue"/>
<Label value="dog" background="green"/>
</RectangleLabels>
</View>
点击 Save 保存后,系统会为标注员生成对应的标注界面。
5. 开始标注
保存模板后进入项目的 Data Manager 视图,你会看到所有已导入的数据项。点击任一数据项即可进入标注工作台。
5.1 工作台面板
- 左侧区域:原始数据展示(如图片、文本段落)。
- 右侧区域:命令面板,包含根据模板生成的标注控件。
- 底部区域:可看到当前数据的标识、历史版本等。
5.2 标注操作
以图像分类为例,直接从右侧分类列表中选择一个标签即可完成标注。标注完成后,点击底部 Submit 按钮,该条记录会自动标记为“已完成”,并跳转到下一条。
对于目标检测任务,你需要:
- 在右侧控件选择对应的标签(如
cat)。 - 用鼠标在图片上拖拽绘制矩形框。
- 可多次添加不同类别的框,或修改、删除已有框。
- 点击
Submit提交。
5.3 快捷键与辅助
Alt + Enter:提交标注Ctrl + Z:撤销上一步操作- 左侧数据列表可以按条件筛选:已完成、待标注、已跳过等。
- 支持设置“跳过”不满足要求的数据。
每一条标注都可以在右侧面板中查看“标注历史”和“问题反馈”。
6. 导出标注结果
当你完成部分或全部标注后,需要将数据导出用于模型训练。
- 在项目的
Data Manager界面,点击右上角的Export按钮。 - 选择导出格式:分类任务常用 JSON、CSV;目标检测需选择 COCO、YOLO 等特定格式。
- 点击
Export下载文件。导出会包含标注结果以及对应的原始数据路径或内容。
示例导出的 JSON 文件结构:
[
{
"id": 1,
"data": {
"image": "/data/upload/1.jpg"
},
"annotations": [
{
"result": [
{
"value": {
"choices": ["cat"]
},
"type": "choices"
}
]
}
]
}
]
如果你使用云存储,导出时还能选择是否包含原始数据文件本身。
7. 进阶功能简介
掌握基础后,你可以探索更多高级特性:
- 自定义标签样式与条件显示:通过模板中的
when属性实现动态标注界面,例如先选“动物”再选择细分种类。 - 主动学习集成:与 Label Studio ML 后端结合,利用模型预标注结果,人工只需修正错误,极大降低标注成本。
- 团队协作:创建多用户角色,分配标注员和审核员,设置数据管道确保标注质量。
- 存储管理:连接 S3、GCS、Azure 等云存储,直接从云端导入数据,无需本地下载。
- 版本与克隆:支持项目快照、模板历史版本回溯,并可通过 API 克隆项目。
8. 常见问题排查
- 端口被占用:启动时指定其他端口
label-studio start -p 9000。 - 导入数据失败:检查文件大小是否超过上限(可在环境变量中调整
FILE_UPLOAD_SIZE_LIMIT),或是否支持该格式。 - 标注模板报错:善用界面中的 XML 校验器,确保标签
name唯一且toName指向正确对象。 - 导出格式不合预期:不同任务需配套对应模板,导出时才会生成对应的标准化格式。
9. 后续学习资源
- Label Studio 官方文档:https://labelstud.io/guide/
- 模板库(可直接复制粘贴的 XML 配置):https://labelstud.io/templates/
- GitHub 仓库:https://github.com/HumanSignal/label-studio
通过本教程,你已经具备了使用 Label Studio 构建端到端标注流程的能力。现在,就动手创建你的第一个标注项目,加速你的 AI 模型开发吧!