返回顶部
d

data-annotation数据标注

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
167
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

data-annotation

Data Annotation Skill — 数据标注处理工具

完整的数据标注工作流:需求确认 → 制定计划 → 逐条处理 → 结果存储 → Web 查看/编辑 → 部署访问。

⚠️ 核心原则:计划驱动,逐条处理,永不超时

绝对不要一次性批量处理所有数据! 超时(通常 10 分钟)会导致任务中断、数据丢失。

正确做法:

  1. 1. 先制定标注计划(JSON 格式),列出所有待处理数据
  2. 每次只处理 1 条数据,处理完立即保存
  3. 更新计划进度(标记已完成/失败)
  4. 汇报当前进度(已处理 X/Y,耗时 N 秒)

如果感觉快超时了,立即保存当前进度并汇报,下次从计划中未完成的位置继续。



工作流程

Step 1: 确认需求

收到标注任务后,必须先确认以下信息:

  1. 1. 需求文档位置 — 问用户标注需求文档在哪里(路径或 URL)
  2. 待标注数据位置 — 问用户原始数据存放在哪个目录
  3. 数据类型 — 图像/视频/文本/混合
  4. 输出格式 — 如果需求文档中没有说明,询问期望的输出格式

如果用户已提供以上信息,跳过确认直接进入下一步。

Step 2: 读取需求文档

读取并理解需求文档,提取关键信息。

docx 文件读取:
bash
pip install python-docx
python3 -c
from docx import Document
doc = Document(<需求文档路径>)
for p in doc.paragraphs: print(p.text)
for table in doc.tables:
for row in table.rows:
print( | .join(cell.text for cell in row.cells))

备选方案(python-docx 失败时):

pandoc <需求文档路径> -t plain # 需 apt install -y pandoc

提取并确认:

  • - 标注要求 — 需要标注哪些内容(类别、属性、字段)
  • 输出格式 — JSONL schema 定义
  • 标注规范 — 分类体系、评分标准、特殊规则
  • 标签列表 — 需求文档附录中的标签表

向用户复述需求,特别是字段、输出结构、标签列表,确认无误后继续。

Step 3: 扫描数据 + 制定标注计划

扫描数据目录,统计文件数量和类型:

bash
find <数据目录> -type f \( -name .jpg -o -name .jpeg -o -name *.png \
-o -name .mp4 -o -name .avi -o -name *.txt \) | wc -l

制定标注计划,保存为 <数据目录>/results/plan.json:

json
{
task_name: 任务描述,
created_at: 2026-03-19T14:00:00Z,
total_items: 10,
processed: 0,
failed: 0,
items: [
{ id: 1, source: video1.mp4, type: video, status: pending, result_file: null },
{ id: 2, source: image001.jpg, type: image, status: pending, resultfile: null }
]
}

对于视频数据,此阶段也执行抽帧(抽帧不计入逐条标注耗时)。

视频抽帧要求:

  • - 每秒至少 2 帧(ffmpeg -vf fps=2)
  • 短视频(<10s)至少 15 帧
  • 中视频(10-30s)至少 20 帧
  • 长视频(>30s)至少 30 帧
  • 抽帧保存到 <数据目录>/results/frames/<文件名不含扩展名>/

制定计划后向主 Agent 汇报:

  • - 数据总量
  • 数据类型分布
  • 计划处理顺序
  • 预估耗时

Step 4: 逐条处理标注(核心步骤)

每次只处理 1 条数据! 处理流程:

读取 plan.json → 取下一条 status=pending → 调用模型标注 → 保存结果 → 更新 plan.json → 汇报进度 → 取下一条

模型选择策略

数据类型处理方式推荐模型
图像VL 模型分析图片内容qwen3.5-plus、kimi-k2.5、doubao-seed-2.0-pro
视频
抽帧后逐帧用 VL 模型 | 同上 | | 文本 | LLM 文本分析 | 任意文本模型 | | 音频 | whisper 转写 + LLM | whisper + LLM | | 混合 | 按类型分别处理 | 组合上述方法 |

查看 TOOLS.md 获取已配置的模型 API 信息。

模型 API 调用示例(VL 模型)

bash

使用阿里百炼 qwen3.5-plus 分析图片


curl -s https://coding.dashscope.aliyuncs.com/v1/chat/completions \
-H Authorization: Bearer \
-H Content-Type: application/json \
-d {
model: qwen3.5-plus,
messages: [{
role: user,
content: [
{type: imageurl, imageurl: {url: data:image/jpeg;base64,}},
{type: text, text: 请按照标注要求分析这张图片...}
]
}]
}

每条数据处理后立即:

  1. 1. 保存到 dataset.jsonl(追加写入,不要每次重写全量)
  2. 更新 plan.json(标记 status=done,记录耗时)
  3. 检查剩余时间:如果已用超过 60% 的总时间,暂停并汇报进度
  4. 汇报当前进度:已处理 X/Y(Z%),本条耗时 N 秒

进度汇报格式

每处理完几条数据后,输出进度:

📊 进度:已处理 3/10(30%)

  • - ✅ video1.mp4 — 完成(耗时 12s)
  • ✅ video2.mp4 — 完成(耗时 15s)
  • ✅ image001.jpg — 完成(耗时 3s)
  • ⏳ image002.jpg — 处理中...

Step 5: 保存标注结果

标注结果保存到 <数据目录>/results/ 目录:

<数据目录>/
├── data/ # 原始数据
├── results/
│ ├── plan.json # 标注计划(进度追踪)
│ ├── dataset.jsonl # 标注结果(逐条追加)
│ ├── summary.json # 统计摘要(全部完成后生成)
│ ├── viewer.html # Web 查看编辑页面
│ ├── frames/ # 视频抽帧图片
│ │ ├── video1/
│ │ └── video2/
│ └── videos/ # 视频副本(供 Web 引用)
└── ...

输出格式要求:

  • - 每条标注一个 JSON 对象,一行一条(JSONL)
  • 必须包含 sourcefile 和 annotationtime
  • 字段结构严格遵循需求文档 schema

Step 6: 生成 Web 查看/编辑页面

参考 templates/annotation-viewer.html 模板,根据实际数据生成定制页面。

页面关键要求(实战经验):

  1. 1. 三栏布局:左侧文件列表 | 中间数据展示 | 右侧标注结果
  2. apiBase 必须用 nginx 反代路径(/annotation-api/),不要硬编码 127.0.0.1:8888
  3. 所有文本字段 contentEditable,点击即可编辑
  4. 标签支持增删(添加按钮 + × 删除按钮)
  5. 保存按钮在右上角,调用 POST /annotation-api/ 保存
  6. 未保存修改时离开页面要有警告(beforeunload 事件)
  7. 标注区块可折叠/展开
  8. 保存成功要有 Toast 提示

视频文件处理:Web 页面引用视频时使用相对路径(../video.mp4),通过 nginx 静态服务直接访问,不要走 API。

Step 7: Nginx 部署

⚠️ 实战经验教训

  1. 1. 不要创建独立 server 块监听 80 — 会和已有站点冲突。改为在已有站点配置中添加 location 块
  2. 使用 ^~ 前缀匹配 — 避免 nginx 正则 location(如静态

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 sjht-data-annotation-1776098341 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 sjht-data-annotation-1776098341 技能

通过命令行安装

skillhub install sjht-data-annotation-1776098341

下载

⬇ 下载 data-annotation v1.0.0(免费)

文件大小: 16.11 KB | 发布时间: 2026-4-17 16:07

v1.0.0 最新 2026-4-17 16:07
# Changelog — data-annotation skill

所有日期格式为 YYYY-MM-DD。

## [1.1.0] - 2026-03-19

### 变更
- **计划驱动工作流**:新增 plan.json 标注计划机制,处理前先制定计划列出所有数据,逐条处理并更新进度
- **逐条处理防超时**:从批量处理改为每次只处理 1 条数据,处理完立即保存到 JSONL,避免超时丢失进度
- **进度汇报机制**:每处理完几条数据汇报进度(已处理 X/Y,耗时 N 秒),快超时时暂停并汇报

### 修复(实战经验)
- **视频抽帧密度增加**:每秒至少 2 帧,短视频至少 15 帧,中视频至少 20 帧,长视频至少 30 帧
- **nginx 配置教训**:
- 不要创建独立 server 块监听 80(会冲突),改为在已有站点中添加 location
- 使用 `^~` 前缀匹配避免正则 location 劫持 mp4/jpg 请求
- `/root` 目录权限必须 755,否则 nginx 无法访问
- nginx reload 可能不够,必要时 restart
- **Web 页面修复**:
- apiBase 必须用 nginx 反代路径(`/annotation-api/`),不硬编码 localhost:8888
- 所有文本字段 contentEditable,标签支持增删
- 未保存修改时离开页面要有 beforeunload 警告
- 视频文件通过 nginx 静态服务,不通过 API
- **docx 读取**:新增 pandoc 备选方案(python-docx 失败时)

## [1.0.0] - 2026-03-19

### 新增
- **完整工作流**:需求确认 → 数据读取 → 模型处理 → 标注生成 → 结果存储 → Web 查看/编辑 → Nginx 部署
- **SKILL.md**:7 步工作流程说明,包含模型选择策略、输出格式、部署流程
- **annotation-viewer.html**:Web 标注查看/编辑页面模板
- **annotation-api.py**:轻量 HTTP API 服务(文件列表/读取/保存)
- **annotation-api.service**:systemd 服务模板
- **output-formats.md**:常见标注输出格式参考
- **skill.json**:skill 元数据配置

### 设计决策
- 结果存储在数据同目录的 `results/` 子目录下
- 使用 JSONL 作为默认输出格式
- Web 页面为纯静态 HTML,通过 Python API 服务处理保存
- API 服务绑定 127.0.0.1,通过 nginx 反向代理对外提供访问
- 模型按数据类型选择:图像/视频用 VL 模型,文本用 LLM

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部