From 8c674f08127c5c407fcfb7849ad372c4843ea304 Mon Sep 17 00:00:00 2001
From: gitea_eternal <401029566@qq.com>
Date: Tue, 2 Jun 2026 10:57:29 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A44-2=E5=9B=BE=E5=83=8F?=
=?UTF-8?q?=E6=A0=87=E6=B3=A8=E5=AE=9E=E6=88=98=EF=BC=88Label=20Studio?=
=?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 736 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 735 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index d03ad0b..d36b842 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,736 @@
-# 4-2-image-labeling
+# 4-2 图像标注实战(Label Studio)
+## 学习目标
+
+1. 掌握 Label Studio 的安装、启动与界面使用
+2. 学会配置三种图像标注类型(分类、目标检测、语义分割)
+3. 独立完成边界框、多边形、关键点的标注
+4. 理解 VOC / YOLO / COCO 三种导出格式的区别
+
+---
+
+## 1. Label Studio 简介
+
+### 1.1 一句话定义
+
+**Label Studio**:一个开源的、**多模态**数据标注平台,支持图像、文本、语音、视频等几乎所有数据类型的标注与团队协作。
+
+### 1.2 为什么选它
+
+我们这门课统一用 Label Studio 的原因:
+
+| 需求 | Label Studio 对应能力 |
+|------|---------------------|
+| 多种数据类型 | 图像 / 文本 / 语音 / 视频 / 时序,一站式 |
+| 不用写代码 | 通过 XML 标签可视化配置标注界面 |
+| 团队协作 | 内置成员管理、角色权限、任务分配 |
+| 格式灵活 | 内置 YOLO、COCO、VOC、JSON、CSV 导出 |
+| 本地部署 | 数据不出学校,开源免费 |
+
+```
+传统方案(多工具切换):
+ 图像 → LabelImg
+ 文本 → Doccano
+ 语音 → Audacity / ELAN
+ 协作 → Excel 邮件
+
+Label Studio 一站式:
+ 图像 / 文本 / 语音 / 协作 → Label Studio
+```
+
+### 1.3 与其他工具的对比
+
+| 工具 | 类型 | 适用场景 | 本课程 |
+|------|------|---------|--------|
+| **Label Studio** | 开源/多模态 | 课程学习 / 中小团队 / 综合项目 | 主选 |
+| LabelImg | 开源/图像 | 极简目标检测 | 仅做对比 |
+| CVAT | 开源/图像视频 | 大型分割、视频跟踪 | 了解 |
+| Doccano | 开源/文本 | 简单文本分类 | 已弃用 |
+| Scale AI | 商业 | 企业级标注 | 了解 |
+
+---
+
+## 2. Label Studio 安装与启动
+
+### 2.1 环境要求
+
+- Python 3.8 及以上
+- 浏览器(Chrome / Edge / Firefox)
+- 建议 8G 以上内存
+
+### 2.2 pip 安装(推荐)
+
+```bash
+# 在命令行中执行
+pip install label-studio
+
+# 启动 Label Studio
+label-studio
+```
+
+启动后命令行会显示:
+
+```
+[INFO] Label Studio is running at http://localhost:8080
+[INFO] Open it in your browser to start labeling
+```
+
+### 2.3 第一次打开
+
+1. 浏览器访问 `http://localhost:8080`
+2. 第一次进入需要 **Sign Up** 注册管理员账号(用你的邮箱 + 密码)
+3. 注册后自动登录到主界面
+
+```
+┌────────────────────────────────────────────────────────┐
+│ Label Studio │
+│ Sign Up │
+├────────────────────────────────────────────────────────┤
+│ │
+│ Email: [___________________________] │
+│ Username: [___________________________] │
+│ Password: [___________________________] │
+│ │
+│ [ Create Account ] │
+│ │
+└────────────────────────────────────────────────────────┘
+```
+
+### 2.4 安装常见问题
+
+| 问题 | 解决 |
+|------|------|
+| 端口 8080 被占用 | `label-studio --port 8001` |
+| 启动报错找不到模块 | `pip install --upgrade label-studio` |
+| 中文乱码 | 系统区域设置改为 UTF-8 |
+| 浏览器无法打开 | 检查防火墙、放行端口 |
+
+---
+
+## 3. 主界面导览
+
+登录后看到的主界面:
+
+```
+┌──────────────────────────────────────────────────────────────┐
+│ [Label Studio] Projects Members Settings [用户头像] │
+├──────────────────────────────────────────────────────────────┤
+│ │
+│ My Projects │
+│ │
+│ ┌────────────────────────────────────────────────┐ │
+│ │ + Create Project │ │
+│ └────────────────────────────────────────────────┘ │
+│ │
+│ 没有任何项目,点上面按钮开始 │
+│ │
+└──────────────────────────────────────────────────────────────┘
+```
+
+**主要功能区**:
+- **Projects**:项目列表,每个项目对应一个标注任务
+- **Members**:成员管理(管理员可见)
+- **Settings**:个人设置
+
+---
+
+## 4. 创建第一个项目:图像分类
+
+### 4.1 任务说明
+
+**任务**:对 10 张动物图片进行分类,类别有:cat / dog / bird
+
+### 4.2 创建项目
+
+1. 点击 `+ Create Project`
+2. 填写:
+ - **Project Name**:`animal_classification`
+ - **Description**:动物图片三分类
+3. 点击 `Save`
+
+### 4.3 配置标注界面
+
+进入项目后,先点 `Settings` → `Labeling Interface` → `Code`:
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+**逐行解释**:
+
+```
+ ← 整个标注界面的根标签
+ ← 显示图像($image 是任务数据里的字段名)
+ ← 单选/多选控件
+ ← 一个选项
+
+```
+
+**关键参数**:
+- `toName="image"`:告诉 Label Studio,这个控件是对上面 `Image` 控件的结果
+- `choice="single"`:单选(可选 `single-radio`、`multiple`)
+
+保存后点 `Label All Tasks` 就能看到标注界面。
+
+### 4.4 导入数据
+
+在项目页 → `Settings` → `Data Import`:
+
+**方式 A:上传本地文件**
+
+```
+1. 准备文件夹
+ images/
+ ├── cat_001.jpg
+ ├── cat_002.jpg
+ ├── dog_001.jpg
+ └── bird_001.jpg
+
+2. 拖拽到上传区域
+ 或点击 Upload Files 选中文件夹
+```
+
+**方式 B:上传 CSV / JSONL(推荐,标签稳定)**
+
+`tasks.csv`:
+
+```csv
+image
+images/cat_001.jpg
+images/cat_002.jpg
+images/dog_001.jpg
+images/bird_001.jpg
+```
+
+**方式 C:粘贴 URL**
+
+```csv
+image
+https://example.com/cat_001.jpg
+https://example.com/dog_001.jpg
+```
+
+上传完后点 `Save` → 任务列表里就会看到每一张图对应一行任务。
+
+### 4.5 开始标注
+
+1. 点击 `Label All Tasks`
+2. 进入标注界面:
+ - 上面是图片
+ - 下面是三个单选按钮
+3. 选中正确类别
+4. 点击右下角 `Submit` 进入下一张
+5. 全部完成后回到项目页,可以看到完成进度
+
+```
+┌──────────────────────────────────────────────────┐
+│ Project: animal_classification │
+├──────────────────────────────────────────────────┤
+│ Tasks: 10 total / 7 done / 3 skipped │
+│ Progress: ████████████░░░░░░ 70% │
+└──────────────────────────────────────────────────┘
+```
+
+### 4.6 导出数据
+
+项目页 → `Export`:
+
+- 格式选 `JSON`
+- 下载得到 `project-1-at-2024-05-20.json`
+
+导出内容示例:
+
+```json
+[
+ {
+ "id": 1,
+ "data": {"image": "images/cat_001.jpg"},
+ "annotations": [{
+ "result": [{
+ "from_name": "label",
+ "to_name": "image",
+ "type": "choices",
+ "value": {"choices": ["cat"]}
+ }]
+ }]
+ }
+]
+```
+
+---
+
+## 5. 创建第二个项目:目标检测(边界框)
+
+### 5.1 任务说明
+
+**任务**:对 10 张街景图进行目标检测,标出每张图中的 `person`、`car`、`bicycle`
+
+### 5.2 项目配置 XML
+
+```xml
+
+
+
+
+
+
+
+
+```
+
+**新增标签**:
+- ``:矩形框 + 标签(Label Studio 专门用于目标检测)
+- `