Label Studio 数据标注工具快速上手指南:Docker 两分钟跑起来,从安装到导出标注结果
【免费下载链接】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 是一个开源的数据标注工具,让你在一个统一的网页界面里给文本、图片、音频、视频和时间序列数据打上标签,并以标准化格式导出,直接喂给机器学习模型训练。这篇文章带你完成 Label Studio 安装、启动、配置到第一次标注导出的全流程,目标是:几分钟内在你自己的机器上跑起一个可用的标注平台。
最短路径:一条 Docker 命令跑起 Label Studio 标注平台
如果你只是先跑起来看看,这是成本最低的方式——不需要装 Python 环境,两条命令搞定:
docker pull heartexlabs/label-studio:latest这条命令从镜像仓库拉取官方的 Label Studio 容器镜像,包含完整的后端服务和标注界面。
docker run -it -p 8080:8080 -v $(pwd)/mydata:/label-studio/data heartexlabs/label-studio:latest启动容器并把宿主机的 8080 端口映射进去,同时用-v把本地./mydata目录挂进容器。预期结果:终端开始滚动日志,浏览器访问http://localhost:8080即可看到登录页。之后所有标注数据和 SQLite 数据库文件(label_studio.sqlite3)都会落在./mydata里,删容器也不丢数据。
⚠️ 注意:这是非 root 容器,挂载的目录需要允许
UID 1001读写,Linux 下如遇权限报错可先调整mydata目录权限。
启动后整个标注闭环就是上图的四步:导入任务 → 配置项目(写标注界面)→ 在网页上标注 → 导出结果。下面按这个顺序走一遍。
第一次使用:从创建项目到导出标注数据的四个步骤
第 1 步:注册账号。打开首页会先进入注册流程,注册时设置的账号即为管理员账号,之后创建的每条标注都会关联到具体用户,方便多人协作时追溯。
第 2 步:新建项目。进入控制台后点击创建项目,选择模板。Label Studio 内置了大量按数据场景分好类的模板,可以直接从 label_studio/annotation_templates/ 找到对应的 XML 标注配置,包括计算机视觉、NLP、音频、视频等十多个类别。
第 3 步:配置标注界面。项目的核心是一段 XML 标签配置,用来声明"左侧显示什么数据、右侧有哪些标签可点"。比如给图片打框就配<RectangleLabels>,给文本做实体识别就配<Labels>。配置语法在 docs/source/tags/ 里逐标签都有说明,新手建议先照抄模板再改。
第 4 步:导入数据并标注。把 JSON、CSV 或压缩包导入项目(也可以连接 S3、GCS 等云存储),每条数据变成一个任务。标注界面大致长这样——
左边是数据(图里是在航天摄影图上框出目标),右边是已完成的标注列表和当前选中实体的标签。换成文本场景则是这种实体高亮效果:
第 5 步:导出。标注完成后在项目里一键导出,得到带标准格式result字段的 JSON,可以直接对接下游模型训练流程。
本地长期跑:pip、Anaconda 和源码开发三种姿势怎么选
Docker 适合试用和单机部署,如果你要长期在本地用,按你的环境选:
| 场景 | 推荐方式 | 理由 |
|---|---|---|
| 日常标注、快速上手 | pip install | 两条命令,装完即用,要求 Python ≥ 3.10 |
| 已有 Conda 环境做数据科学 | Anaconda | 和现有 Python 生态隔离干净 |
| 要改 Label Studio 代码本身 | 源码开发模式 | 直接跑仓库里的最新版,不用等发版 |
pip 方式最常用:
pip install label-studio label-studio第二条命令启动服务并自动打开浏览器,默认地址同样是http://localhost:8080。启动参数(端口、数据库路径、日志级别等)用label-studio --help查看,全部说明在 docs/source/guide/start.md。
要改代码的话,克隆仓库后走开发模式:
git clone https://gitcode.com/GitHub_Trending/la/label-studio cd label-studio pip install poetry poetry install python label_studio/manage.py migrate python label_studio/manage.py collectstatic python label_studio/manage.py runserverpoetry install装齐全部依赖,migrate执行 Django 数据库迁移(建表结构),collectstatic收集前端静态资源,最后runserver以开发模式启动。后端代码在 label_studio/ 目录,前端标注编辑器在 web/libs/editor/。
生产环境:用 Docker Compose 换成 PostgreSQL
上面两种方式默认用 SQLite 存数据,单人够用;多人协作或数据量大时,官方推荐用 Docker Compose 拉起生产栈。它一次启动三个组件:Label Studio 应用、Nginx 反向代理(负责加载上传的图片音频等静态资源)、PostgreSQL 数据库:
docker-compose -f docker-compose.yml -f docker-compose.minio.yml up -d-f参数叠加了 MinIO(一个自建的对象存储服务,模拟 S3)配置,方便本地测试云存储行为;只用 PostgreSQL 的话去掉-f docker-compose.minio.yml即可。启动后访问http://localhost(注意这次是 80 端口,因为前面挂了 Nginx)。各服务的端口、环境变量都定义在 docker-compose.yml 里,按需调整。
最常改的四项配置:改什么、怎么改、影响什么
服务端口:默认 8080,被占用时改。命令行用label-studio start --port 9001,或设环境变量LABEL_STUDIO_PORT=9001。影响:访问地址的端口部分。
数据存储位置:pip/Docker 方式默认写当前目录的label_studio.sqlite3。用--data-dir参数或环境变量LABEL_STUDIO_BASE_DATA_DIR指定统一数据目录,Docker 场景则是调整-v挂载路径。影响:备份和迁移时你只需要打包这一个目录。
外部访问域名:当你通过内网 IP 或域名访问,且标注数据里引用了本地资源路径时,要设置LABEL_STUDIO_HOST(如http://192.168.1.10:8080)。⚠️ 必须带http://协议头,漏了会导致项目页打开是白屏(后面会讲)。
数据库后端:Docker Compose 场景下改 docker-compose.yml 中app服务的POSTGRE_USER/POSTGRE_PASSWORD等变量;pip 方式用环境变量DJANGO_DB指定。影响:多人并发标注和大体量导入时的稳定性。
三个高频坑:端口冲突、白屏、标注变卡
坑 1:8080 端口被占用。症状是启动报Address already in use。解法:label-studio start --port 9001换端口;Docker 场景改成-p 9001:8080(左边换、右边不变)。
坑 2:项目页打开是空白页。最常见原因是设置了LABEL_STUDIO_HOST但没带协议头,比如只写了192.168.1.10:8080。Label Studio 生成资源链接时会找不到文件。加上http://前缀重启即可。完整排查清单见 docs/source/guide/troubleshooting.md。
坑 3:导入大量数据后标注明显变慢。这是 SQLite 在写多时的典型瓶颈:有人在导入几千条数据,其他人的标注就会被拖慢。两条路:换掉导入时机(空闲时段再导),或者升级到 PostgreSQL(用 Docker Compose 栈,见上文)。另外如果标注界面图片/音频加载不出来,先打开浏览器控制台看是不是外部源站的 CORS 拦截,这类问题一般要在数据源服务器端放行。
现在你可以做什么
服务跑起来之后,按"建项目 → 抄一个模板配标签 → 导入你自己的数据 → 标注导出"走一遍,第一个标注项目半小时就能完成。想深入标注配置语法看 docs/source/guide/labeling.md,想接机器学习模型做预标注看 docs/source/guide/ml.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),仅供参考