<img src="https://yellow-cdn.veclightyear.com/2b54e442/d6d74f9f-a3f3-42af-82e5-dd4102a15f17.png"/>
![GitHub](https://yellow-cdn.veclightyear.com/2b54e442/87b725db-be29-4744-bef7-2cc1e660723e.png) ![label-studio:build](https://yellow-cdn.veclightyear.com/2b54e442/ba186ae1-af14-4431-a576-8e657bbe12fe.svg) ![GitHub release](https://yellow-cdn.veclightyear.com/2b54e442/cebbe54d-6bc6-4e72-af40-bad13b436cfd.png)
[网站](https://labelstud.io/) • [文档](https://labelstud.io/guide/) • [推特](https://twitter.com/labelstudiohq) • [加入 Slack 社区 <img src="https://yellow-cdn.veclightyear.com/2b54e442/9fe8544b-48d3-46ca-9bad-982c7318cf22.png" width="18px"/>](https://slack.labelstud.io/?source=github-1)
## 什么是 Label Studio?
<!-- <a href="https://labelstud.io/blog/release-130.html"><img src="https://yellow-cdn.veclightyear.com/2b54e442/b4562ac1-4d2a-413e-87c0-29ff803706e7.png" align="right" /></a> -->
Label Studio 是一个开源数据标注工具。它允许您使用简单直接的用户界面标注音频、文本、图像、视频和时间序列等数据类型,并导出到各种模型格式。它可以用于准备原始数据或改进现有训练数据,以获得更准确的机器学习模型。
- [尝试 Label Studio](#try-out-label-studio)
- [从 Label Studio 中获得什么](#what-you-get-from-label-studio)
- [Label Studio 中包含的数据标注模板](#included-templates-for-labeling-data-in-label-studio)
- [使用 Label Studio 设置机器学习模型](#set-up-machine-learning-models-with-Label-Studio)
- [将 Label Studio 与您现有的工具集成](#integrate-label-studio-with-your-existing-tools)
![Label Studio 注释不同类型数据的动图](https://yellow-cdn.veclightyear.com/2b54e442/33729606-86ae-457d-839a-2098c32ba6a4.gif)
有自定义数据集吗?您可以根据需要定制 Label Studio。阅读[介绍博客文章](https://towardsdatascience.com/introducing-label-studio-a-swiss-army-knife-of-data-labeling-140c1be92881)以了解更多信息。
## 尝试 Label Studio
在本地安装 Label Studio,或将其部署在云实例中。[或者,注册我们的企业版免费试用。](https://heartex.com/free-trial)。
- [使用 Docker 本地安装](#install-locally-with-docker)
- [使用 Docker Compose 运行(Label Studio + Nginx + PostgreSQL)](#run-with-docker-compose)
- [使用 pip 本地安装](#install-locally-with-pip)
- [使用 poetry 本地安装](#install-locally-with-poetry)
- [使用 Anaconda 本地安装](#install-locally-with-anaconda)
- [本地开发安装](#install-for-local-development)
- [在云实例中部署](#deploy-in-a-cloud-instance)
### 使用 Docker 本地安装
官方 Label Studio docker 镜像在[这里](https://hub.docker.com/r/heartexlabs/label-studio),可以通过 `docker pull` 下载。
在 Docker 容器中运行 Label Studio,并通过 `http://localhost:8080` 访问它。
```bash
docker pull heartexlabs/label-studio:latest
docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest
您可以在 ./mydata
目录中找到所有生成的资源,包括 SQLite3 数据库存储 label_studio.sqlite3
和上传的文件。
覆盖默认 Docker 安装
您可以通过添加新的参数来覆盖默认启动命令:
docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest label-studio --log-level DEBUG
使用 Docker 构建本地镜像
如果您想构建本地镜像,请运行:
docker build -t heartexlabs/label-studio:latest .
使用 Docker Compose 运行
Docker Compose 脚本提供了生产就绪的技术栈,包括以下组件:
- Label Studio
- Nginx - 用于加载各种静态数据的代理 Web 服务器,包括上传的音频、图像等。
- PostgreSQL - 替代性能较差的 SQLite3 的生产就绪数据库。
要从 http://localhost
开始使用应用程序,请运行此命令:
docker-compose up
使用 Docker Compose + MinIO 运行
您还可以使用额外的 MinIO 服务器进行本地 S3 存储运行它。这在您希望在本地系统上测试与 S3 存储的行为时特别有用。要以这种方式启动 Label Studio,您需要运行以下命令:
# 如果您不是 docker 组的成员,在 Linux 上添加 sudo
docker compose -f docker-compose.yml -f docker-compose.minio.yml up -d
如果您没有静态 IP 地址,则必须在 hosts 文件中创建一个条目,以便 Label Studio 和浏览器都可以访问 MinIO 服务器。有关更详细的说明,请参阅我们的存储数据指南。
使用 pip 本地安装
# 需要 Python >=3.8
pip install label-studio
# 在 http://localhost:8080 启动服务器
label-studio
使用 poetry 本地安装
### 安装 poetry
pip install poetry
### 设置 poetry 环境
poetry new my-label-studio
cd my-label-studio
poetry add label-studio
### 激活 poetry 环境
poetry shell
### 在 http://localhost:8080 启动服务器
label-studio
使用 Anaconda 本地安装
conda create --name label-studio
conda activate label-studio
conda install psycopg2
pip install label-studio
本地开发安装
您可以在本地运行最新的 Label Studio 版本,而无需从 pypi 安装包。
# 安装所有包依赖项
pip install poetry
poetry install
# 运行数据库迁移
python label_studio/manage.py migrate
python label_studio/manage.py collectstatic
# 在 http://localhost:8080 以开发模式启动服务器
python label_studio/manage.py runserver
### 在云实例中部署
您可以通过一键操作在 Heroku、Microsoft Azure 或 Google Cloud Platform 上部署 Label Studio:
[<img src="https://yellow-cdn.veclightyear.com/2b54e442/46405ae6-0b30-4470-b03f-8cc17952650c.svg" height="30px">](https://heroku.com/deploy?template=https://github.com/heartexlabs/label-studio/tree/heroku-persistent-pg)
[<img src="https://yellow-cdn.veclightyear.com/2b54e442/b9181b8b-f497-40ea-af9f-4ab01f9d7144.png" height="30px">](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fheartexlabs%2Flabel-studio%2Fmaster%2Fazuredeploy.json)
[<img src="https://yellow-cdn.veclightyear.com/2b54e442/f8046a49-b491-4bc1-9b67-29e6aae97699.svg" height="30px">](https://deploy.cloud.run)
#### 应用前端更改
有关更新前端的信息,请参阅 [label-studio/web/README.md](https://github.com/HumanSignal/label-studio/blob/develop/web/README.md#usage-instructions)。
#### 在 Windows 上安装依赖项
要在 Windows 上运行 Label Studio,请从 [Gohlke builds](https://www.lfd.uci.edu/~gohlke/pythonlibs) 下载并安装以下轮子包,以确保您使用的是正确版本的 Python:
- [lxml](https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)
```bash
# 升级 pip
pip install -U pip
# 如果您使用的是 Win64 且 Python 3.8,请安装从 Gohlke 下载的包:
pip install lxml‑4.5.0‑cp38‑cp38‑win_amd64.whl
# 安装 Label Studio
pip install label-studio
运行测试套件
要为本地安装添加测试依赖项:
poetry install --with test
或者,可以在安装了测试依赖项的 Docker 容器中运行单元测试:
make build-testing-image
make docker-testing-shell
无论哪种情况,要运行单元测试:
cd label_studio
# sqlite3
DJANGO_DB=sqlite DJANGO_SETTINGS_MODULE=core.settings.label_studio pytest -vv
# postgres(假设使用默认的 postgres 用户、数据库、密码。在没有额外配置的 Docker 测试容器中无法工作)
DJANGO_DB=default DJANGO_SETTINGS_MODULE=core.settings.label_studio pytest -vv
Label Studio 提供的功能
- 多用户标注:注册和登录后,您创建的注释将与您的账户绑定。
- 多个项目:在一个实例中处理所有数据集。
- 简化的设计:帮助您专注于任务,而不是如何使用软件。
- 可配置的标签格式:让您自定义可视化界面,以满足特定的标注需求。
- 支持多种数据类型:包括图像、音频、文本、HTML、时间序列和视频。
- 从文件或云存储中导入:支持 Amazon AWS S3、Google Cloud Storage、JSON、CSV、TSV、RAR 和 ZIP 存档。
- 与机器学习模型集成:可视化和比较不同模型的预测,并进行预标注。
- 嵌入到数据管道中:REST API 使其易于成为数据管道的一部分。
Label Studio 中的标签数据模板
Label Studio 包含各种模板,帮助您标注数据,或者您可以使用专门设计的配置语言创建自己的模板。常见的模板和标注用例包括以下情况:
使用 Label Studio 设置机器学习模型
使用 Label Studio 机器学习 SDK 连接您喜欢的机器学习模型。按以下步骤操作:
- 启动自己的机器学习后端服务器。请参阅更详细的说明。
- 在项目设置中的模型页面,将 Label Studio 连接到服务器。
这将使您能够:
- 使用模型预测预标注您的数据。
- 进行在线学习,在创建新注释的同时重新训练模型。
- 进行主动学习,仅标注数据中最复杂的示例。
将 Label Studio 与现有工具集成
您可以将 Label Studio 作为机器学习工作流程的独立部分,或将前端或后端集成到现有工具中。
生态系统
项目 | 描述 |
---|---|
label-studio | 服务器,以 pip 包的形式分发 |
前端库 | Label Studio 的前端库。使用 React 构建 UI,使用 mobx-state-tree 进行状态管理。 |
数据管理库 | 数据管理器库,我们的数据探索工具。 |
label-studio-converter | 以您喜欢的机器学习库的格式编码标签 |
label-studio-transformers | 连接并配置好用于 Label Studio 的 Transformers 库 |
路线图
想要使用 最酷的功能 X,但 Label Studio 还不支持?查看我们的公共路线图!
引用
@misc{Label Studio,
title={{Label Studio}: 数据标注软件},
url={https://github.com/heartexlabs/label-studio},
note={开源软件,可从 https://github.com/heartexlabs/label-studio 获取},
author={
Maxim Tkachenko 和
Mikhail Malyuk 和
Andrey Holmanyuk 和
Nikolai Liubimov},
year={2020-2022},
}
许可证
该软件根据 Apache 2.0 LICENSE 授权,由 Heartex 开发。2020-2022