跳到主要内容

技能库

在数据标注工作中,团队经常遇到这样的问题:

  • 不同标注员对同一个动作的命名不一致("抓取"vs"抓取物体"vs"pick")
  • 技能定义随项目变化,导致历史数据难以复用
  • 新项目启动时需要重新定义所有技能,浪费时间
  • 无法追踪技能定义的变更历史

技能库就是为了解决这些问题而设计的。它就像一个"标准词典",让整个团队使用统一的技能定义,并支持随时间演进。

技能库界面

快速上手:创建第一个技能

第 1 步:创建技能分类

在创建具体技能前,先建立分类体系。点击"新建分类",输入分类名称:

  • 基础动作:抓取、放置、推、拉等原子操作
  • 生活场景:擦桌子、倒水、整理物品等组合技能
  • 工业场景:装配、检测、搬运等专业技能

💡 小提示:分类不宜过细,一般 3-5 个分类就够用了。

第 2 步:添加技能

选择一个分类,点击"新建技能",填写:

  • 技能名称:使用团队统一的命名规范(如"抓取_物体")
  • 技能描述:详细说明这个技能的定义和边界
  • 标签(可选):添加"难度:简单"、"场景:厨房"等标签

第 3 步:在标注任务中使用

创建标注任务时,系统会自动加载技能库。标注员在标注时从技能库选择,而不是手动输入。

进阶使用

如何管理技能版本?

为什么需要版本管理?

假设你的团队已经标注了 1000 条"抓取"技能的数据,现在需要把技能定义改为"抓取物体"(更明确)。直接修改会让历史数据关联混乱,这时就需要用到版本管理。

操作步骤:

  1. 创建新版本

    • 在技能详情页点击"创建新版本"
    • 修改名称和描述
    • 版本号自动递增(v1 → v2)
  2. 历史数据保持不变

    • 已标注的 1000 条数据仍然关联到 v1
    • 数据完整性得到保证
  3. 新任务使用新版本

    • 新创建的标注任务自动使用 v2
    • 保持最新的标注标准
  4. 导出时灵活选择

    • 可以只导出特定版本
    • 可以将多个版本合并统计

什么时候需要回滚?

如果发现新版本定义有问题,可以在"版本历史"中选择旧版本,点击"设为当前版本"。正在进行的任务会继续使用旧版本。

如何设置技能依赖关系?

什么时候需要依赖管理?

如果你的技能定义有这些特点,就需要用到依赖管理:

✅ 某个技能必须在另一个技能之后执行(如"放置"依赖"抓取")
✅ 某个技能是另一个技能的前置条件(如"开门"需要先"靠近门")
✅ 多个技能组成一个复杂流程(如"泡咖啡"包含多个子技能)

❌ 如果技能之间完全独立,不需要设置依赖关系

设置依赖关系:

  1. 进入技能详情页
  2. 点击"依赖关系"标签
  3. 点击"添加依赖",选择前置技能
  4. 保存后,系统会在标注和导出时自动验证依赖

依赖关系可视化:

标注员在标注"推开门"时,系统会提示需要先完成前面三个步骤。

如何复用技能模板?

场景:快速启动新项目

新项目启动时,通常有一些通用技能是每个项目都需要的。与其每次重新创建,不如使用技能模板。

创建模板:

  1. 选择多个常用技能
  2. 点击"保存为模板"
  3. 输入模板名称(如"通用机械臂操作")

使用模板:

新项目创建时,选择"从模板导入",一键导入所有技能定义。

内置模板:

平台提供了一些常用模板:

模板名称技能数量适用场景
通用机械臂操作12 个工业机械臂、协作机器人
移动机器人导航8 个移动底盘、配送机器人
人形机器人基础20 个双足、双臂人形机器人
家庭服务场景15 个清洁、整理、取放物品

如何查看技能使用统计?

统计维度:

技能库提供多维度的使用统计:

使用频率

  • 显示每个技能被使用的次数
  • 帮助识别核心技能和冷门技能

使用趋势

  • 按时间轴显示技能使用变化
  • 识别新增热门技能

质量指标

  • 标注一致性:不同标注员对同一技能的标注一致程度
  • 审核通过率:该技能的标注审核通过率

项目分布

  • 哪些项目在使用这个技能
  • 跨项目的技能复用情况

如何利用统计数据?

  • 优化技能定义:如果某个技能的一致性很低(如 60%),说明定义可能不够清晰,需要细化
  • 指导培训:通过率低的技能需要加强标注员培训
  • 识别废弃技能:长期不使用的技能可以归档,简化技能库

团队协作最佳实践

角色分工建议

不同角色在技能库管理中的职责:

管理员

  • 维护技能库的整体结构
  • 制定技能命名规范
  • 审批技能新增和修改
  • 定期清理废弃技能

项目经理

  • 为项目选择或创建技能
  • 监控技能使用情况
  • 反馈技能定义问题

标注员

  • 使用技能库进行标注
  • 反馈技能定义不清晰的地方
  • 建议新增技能

技能命名规范建议

统一的命名规范能大幅提升协作效率:

推荐格式:动词_对象_[修饰]

✅ 好的命名:

  • 抓取_瓶子
  • 放置_桌面_轻放
  • 推_门_向前

❌ 不好的命名:

  • 操作1(不明确)
  • pick(语言混用)
  • 抓取瓶子并放到桌子上(太复杂,应该拆分)

命名原则:

  • 使用团队统一的语言(中文或英文)
  • 动词在前,对象在后
  • 避免过长,一般不超过 15 个字符
  • 必要时添加修饰词区分细微差异

技能定义模板

撰写技能描述时,可以参考这个模板:

**技能名称**:抓取_瓶子

**定义**:
使用机械臂末端执行器,从静止状态抓住瓶子并保持稳定夹持。

**具体动作**:
1. 机械臂移动到瓶子上方
2. 末端执行器下降到抓取高度
3. 夹爪闭合,夹紧瓶子
4. 保持夹持力,避免瓶子滑落

**边界条件**:
- 瓶子必须处于可抓取区域内
- 瓶子处于静止或低速移动状态
- 抓取力度适中,不能损坏瓶子

**不包括**:
- 移动瓶子到其他位置(属于"放置"技能)
- 拧开瓶盖(属于"旋转"技能)

**示例视频**:
[上传示例视频链接]

常见问题

技能和动作标注有什么区别?

技能是高层次的语义描述,动作标注是具体的轨迹数据:

  • 技能:"抓取瓶子"——告诉模型"做什么"
  • 动作标注:机械臂轨迹、关节角度、夹爪开合——告诉模型"怎么做"

一个技能可能对应多条动作轨迹(不同的抓取方式)。

可以删除已使用的技能吗?

不建议直接删除。如果某个技能不再使用:

  1. 归档:将技能标记为"已废弃",不再出现在选择列表中
  2. 保留:历史标注数据仍然关联到这个技能,导出时可以查看
  3. 合并:如果要合并到其他技能,使用"合并技能"功能
提示

强制删除会导致关联的标注数据丢失技能信息,影响数据完整性。

如何导入外部技能定义?

如果你已经有一个 Excel 或 CSV 格式的技能列表:

  1. 准备文件,格式要求:

    • 第一列:技能名称
    • 第二列:技能分类
    • 第三列:技能描述
  2. 进入技能库页面,点击"导入"

  3. 选择文件,映射列对应关系

  4. 预览导入结果,确认无误后导入

技能库支持多语言吗?

支持。你可以为每个技能添加多语言名称和描述:

  • 中文:抓取_瓶子
  • English: pick_bottle
  • 日本語: ボトル_つかむ

标注员根据自己的语言偏好切换界面语言,技能名称会自动显示对应语言版本。

提示

导出数据时,技能会使用创建时的主语言版本,确保数据一致性。

相关功能

完成技能库设置后,你可能还需要: