Label Studio 快速入门:安装、启动与创建第一个标注项目
【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio
本指南以开源数据标注工具 Label Studio 的快速上手为核心,带你完成从环境安装、服务启动到创建第一个标注项目的完整闭环。读完本文,你将掌握pip安装与label-studio start启动的完整命令链、http://localhost:8080上的注册与建项目流程,以及模板选型、数据导入与标注配置的关键细节,并了解这些操作在仓库源码中的实际执行逻辑。
环境要求与安装方式
Label Studio 是基于 Django 的 Python 应用,其元数据定义在 pyproject.toml 中:项目版本为1.24.0.dev0,要求 Python 版本>=3.10,<4,依赖包括 Django(>=5.2.16)、djangorestframework、numpy、pandas、boto3、redis 等,并使用 Apache-2.0 许可证。
安装命令(对应原文档第一步):
pip install label-studio在 pyproject.toml 中可以看到入口脚本声明label-studio = "label_studio.server:main",也就是说安装后label-studio命令实际会调用 label_studio/server.py 中的main()函数,该函数解析命令行参数后依次完成环境变量设置、数据库迁移与 Web 服务启动。
如果你希望使用 Docker 运行,仓库根目录提供了 Dockerfile 与 docker-compose.yml,社区版最简启动方式为:
docker pull heartexlabs/label-studio:latest docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest启动 Label Studio 服务
安装完成后,在终端中执行(对应原文档第二步):
label-studio start服务默认绑定到http://localhost:8080。这个默认端口的来源有两处:一是默认配置文件 label_studio/core/utils/schema/default_config.json 中的"port": 8080,二是 label_studio/core/settings/base.py 中设置的INTERNAL_PORT = '8080'。
从 label_studio/server.py 的源码可以看出启动流程的细节:
- 内部监听主机默认
0.0.0.0,端口优先取命令行--port,其次取环境变量PORT,再取配置文件中的port,最后回落到 8080; - 如果端口被占用,
_get_free_port会自动向上尝试最多 1000 个端口(见 label_studio/server.py),并打印端口占用警告; - 若没有指定
--no-browser,会自动尝试打开浏览器访问服务地址; - 每次启动都会调用
_apply_database_migrations()(见 label_studio/server.py),在数据库未同步时自动执行 Django migrate,无需手动建库。
如果默认端口被占用,也可以显式指定:
label-studio start --port 8081注册账号并登录
服务启动后,在浏览器中打开http://localhost:8080,会看到注册/登录页面。你需要用邮箱和自定义密码完成注册(对应原文档步骤 1–2)。
从源码看,注册创建的用户会被自动设为is_staff = True与is_superuser = True,并归属到名为 "Label Studio" 的组织中(见 label_studio/server.py)。也就是说,Quick Start 路径下的第一个注册用户即是该实例的管理员,拥有创建项目、管理成员和查看全局设置的权限。
除了 Web 注册,命令行也提供了快捷方式:label-studio user --username <邮箱> --password <密码>可创建或查询用户;若忘记密码,可运行label-studio reset_password重置。
创建你的第一个标注项目
登录后按以下步骤创建项目(对应原文档步骤 3–7):
- 点击页面上的Create按钮开始创建新项目。
- 填写项目名称(必填),并可选填项目描述、选择项目标识颜色,方便在项目列表中进行区分。
- 点击Data Import,上传希望标注的数据文件(支持 JSON、CSV、TSV、图像、音频、视频等多种格式,也支持从本地目录、云存储桶或数据库接入数据;如果你打算后续再配置云存储,这一步可以先跳过)。
- 点击Labeling Setup,从模板库中选择适合你数据类型和标注任务的模板,并自定义标签名称(例如把默认的
Car、Airplane改为你的业务类别)。 - 点击Save保存项目,即可进入标注界面开始标注。
模板库在仓库中的实体位于 label_studio/annotation_templates,按领域分为 computer-vision、natural-language-processing、audio-speech-processing、time-series-analysis、videos、chat、generative-ai、structured-data-parsing、ranking-and-scoring 等目录,每个模板由一份config.yml描述。例如目标检测模板 object-detection-with-bounding-boxes/config.yml 对应的标注配置(Labeling Config)为:
<View> <Image name="image" value="$image"/> <RectangleLabels name="label" toName="image"> <Label value="Airplane" background="green"/> <Label value="Car" background="blue"/> </RectangleLabels> </View>这份 XML 正是 Label Studio 的标注配置语言:<Image>声明图片数据对象,<RectangleLabels>声明矩形框标注工具,<Label>定义每个标签的名称与颜色。创建项目时如果你通过命令行指定了自定义的标注配置,源码 label_studio/server.py 的_create_project会直接把 XML 文件内容写入项目的label_config字段,与 Web 界面选择模板的效果等价。
开始标注:从项目页到标注队列
项目保存后即回到数据管理器(Data Manager)页面。进入标注的方式有以下几种(详见 labeling.md):
- 点击Label All Tasks进入完整标注队列,逐任务提交标注;
- 在数据管理器中按条件过滤、排序后,点击Label Tasks As Displayed按当前视图标注;
- 在列表的Quick View或Preview中打开单个任务进行预览标注(提交后不会自动进入下一个任务);
- 勾选多个任务后点击Label $n Tasks,只标注选中的 n 个任务。
标注过程中,选择标签后在数据对象上绘制区域(如矩形框、多边形、文本片段等),标注会自动保存;完成当前任务后点击Submit提交并进入下一个任务。多个标注者协作时,任务会被加锁以避免互相覆盖,且默认每个任务只需一个标注者完成(可通过项目设置调整最低标注人数)。如需暂停,可在 Submit 下拉菜单中选择Submit and Exit退出标注流。
常见问题与下一步
- 端口被占用:Label Studio 会自动探测并尝试下一个可用端口(最多尝试 1000 个),也可以显式使用
label-studio start --port <端口>指定; - 默认数据存储:Quick Start 方式默认使用 SQLite(文件名为
label_studio.sqlite3),数据目录可通过label-studio start --data-dir <目录>指定;生产环境建议改用 PostgreSQL(可参考 docker-compose.yml 中的 Nginx + PostgreSQL 组合); - API 与自动化:项目创建完成后,可参考 api.md 使用 REST API 或 sdk.md 中的 label-studio-sdk 进行任务导入、标注拉取与导出,将标注流程嵌入你的数据流水线;
- 更多标注操作:区域重叠标注、跨标注关系(relations)、键盘快捷键、与协作者共同标注等进阶用法,参见 labeling.md 与 hotkeys.md。
至此,你已经完成了 Label Studio 从安装、启动、注册到创建项目并开始标注的完整快速上手流程。下一步可以根据你的数据类型在Labeling Setup中深入定制标注配置,或参考 tasks.md 学习如何批量导入任务数据。
【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考