requirements.md 9.0 KB

Requirements Document

Introduction

本文档定义了标注平台的任务分配与模板管理功能需求。该功能将完善现有平台的工作流程,实现从管理员(数据源)→ 任务派发 → 人员标注任务分配 → 数据收集 → 数据导出的完整闭环。主要包含两大模块:

  1. 人员分配管理:支持管理员将任务分配给特定标注人员,标注人员只能看到分配给自己的任务
  2. 标注模板管理:提供类似 LabelStudio 的模板选择界面和自定义 XML 配置编辑器

Glossary

  • Task_Assignment_System: 任务分配系统,负责将标注任务分配给特定用户
  • Template_Manager: 模板管理器,提供预设模板和自定义配置功能
  • Annotator: 标注人员,负责执行具体的标注工作
  • Admin: 管理员,负责创建项目、分配任务和管理用户
  • Label_Config: 标注配置,使用 XML 格式定义标注界面和工具
  • Template: 预设模板,包含常用的标注配置(如图像分类、文本标注等)
  • Config_Editor: 配置编辑器,支持可视化编辑和代码编辑两种模式
  • Assignment_Batch: 批量分配,支持一次性将多个任务分配给多个用户
  • User_Workload: 用户工作量,统计用户的任务分配和完成情况
  • Data_Export: 数据导出,将标注结果导出为标准格式

Requirements

Requirement 1: 用户管理与角色权限

User Story: 作为管理员,我想要管理系统用户和查看用户列表,以便我可以将任务分配给合适的标注人员。

Acceptance Criteria

  1. WHEN 管理员访问用户管理页面 THEN THE Task_Assignment_System SHALL 显示所有用户列表,包括用户名、邮箱、角色和创建时间
  2. WHEN 管理员筛选用户角色 THEN THE Task_Assignment_System SHALL 只显示匹配角色的用户
  3. WHEN 管理员搜索用户 THEN THE Task_Assignment_System SHALL 支持按用户名或邮箱模糊搜索
  4. THE Task_Assignment_System SHALL 显示每个用户的任务统计(已分配任务数、已完成任务数)
  5. WHEN 管理员查看用户详情 THEN THE Task_Assignment_System SHALL 显示该用户的所有任务列表和完成进度

Requirement 2: 任务分配功能

User Story: 作为管理员,我想要将任务分配给特定的标注人员,以便合理分配工作量。

Acceptance Criteria

  1. WHEN 管理员在任务列表选择任务 THEN THE Task_Assignment_System SHALL 显示分配按钮
  2. WHEN 管理员点击分配按钮 THEN THE Task_Assignment_System SHALL 显示用户选择对话框,列出所有标注人员
  3. WHEN 管理员选择用户并确认分配 THEN THE Task_Assignment_System SHALL 更新任务的 assigned_to 字段
  4. WHEN 任务被分配 THEN THE Task_Assignment_System SHALL 记录分配时间和分配人
  5. THE Task_Assignment_System SHALL 支持批量选择多个任务进行分配
  6. WHEN 管理员批量分配任务 THEN THE Task_Assignment_System SHALL 支持平均分配给多个用户
  7. IF 任务已有分配人员 THEN THE Task_Assignment_System SHALL 显示当前分配人员并允许重新分配

Requirement 3: 标注人员任务视图

User Story: 作为标注人员,我想要只看到分配给我的任务,以便专注于自己的工作。

Acceptance Criteria

  1. WHEN 标注人员访问任务列表 THEN THE Task_Assignment_System SHALL 只显示分配给该用户的任务
  2. WHEN 标注人员筛选任务状态 THEN THE Task_Assignment_System SHALL 在已分配任务范围内筛选
  3. THE Task_Assignment_System SHALL 显示任务的优先级和截止时间(如果设置)
  4. WHEN 标注人员点击任务 THEN THE Task_Assignment_System SHALL 打开标注界面
  5. THE Task_Assignment_System SHALL 在任务列表显示每个任务的完成进度
  6. WHEN 标注人员完成任务 THEN THE Task_Assignment_System SHALL 自动更新任务状态

Requirement 4: 预设模板库

User Story: 作为管理员,我想要从预设模板中选择标注配置,以便快速创建项目。

Acceptance Criteria

  1. WHEN 管理员创建项目时 THEN THE Template_Manager SHALL 显示模板选择界面
  2. THE Template_Manager SHALL 提供以下预设模板类别:
    • 图像分类(Image Classification)
    • 目标检测(Object Detection)
    • 图像分割(Image Segmentation)
    • 文本分类(Text Classification)
    • 命名实体识别(Named Entity Recognition)
    • 文本标注(Text Labeling)
    • 音频转写(Audio Transcription)
    • 视频标注(Video Annotation)
  3. WHEN 管理员选择模板 THEN THE Template_Manager SHALL 显示模板预览和说明
  4. WHEN 管理员确认选择模板 THEN THE Template_Manager SHALL 将模板配置填充到项目配置字段
  5. THE Template_Manager SHALL 支持模板搜索和筛选功能
  6. WHEN 管理员选择模板后 THEN THE Template_Manager SHALL 允许进一步自定义配置

Requirement 5: 自定义配置编辑器

User Story: 作为管理员,我想要自定义标注配置,以便满足特定的标注需求。

Acceptance Criteria

  1. THE Config_Editor SHALL 提供代码编辑模式,支持 XML 语法高亮
  2. THE Config_Editor SHALL 提供可视化编辑模式,通过拖拽组件构建配置
  3. WHEN 用户编辑配置 THEN THE Config_Editor SHALL 实时验证 XML 语法
  4. IF XML 语法错误 THEN THE Config_Editor SHALL 显示错误位置和错误信息
  5. THE Config_Editor SHALL 提供实时预览功能,显示标注界面效果
  6. WHEN 用户切换编辑模式 THEN THE Config_Editor SHALL 保持配置内容同步
  7. THE Config_Editor SHALL 提供常用标签的快捷插入功能
  8. THE Config_Editor SHALL 支持配置的导入和导出

Requirement 6: 可视化配置构建器

User Story: 作为管理员,我想要通过可视化界面构建标注配置,以便无需编写 XML 代码。

Acceptance Criteria

  1. THE Config_Editor SHALL 提供组件面板,包含所有可用的标注组件
  2. THE Config_Editor SHALL 支持以下组件类型:
    • 数据源组件:Image, Text, Audio, Video, HyperText
    • 标注工具:Choices, Labels, Rectangle, Polygon, Brush, KeyPoint
    • 布局组件:View, Header, Style
  3. WHEN 用户拖拽组件到画布 THEN THE Config_Editor SHALL 自动生成对应的 XML 代码
  4. WHEN 用户选择组件 THEN THE Config_Editor SHALL 显示属性面板,允许编辑组件属性
  5. THE Config_Editor SHALL 支持组件的复制、删除和重新排序
  6. WHEN 用户修改组件属性 THEN THE Config_Editor SHALL 实时更新 XML 代码和预览

Requirement 7: 配置预览功能

User Story: 作为管理员,我想要预览标注配置的效果,以便在保存前确认配置正确。

Acceptance Criteria

  1. THE Config_Editor SHALL 提供预览面板,显示标注界面效果
  2. WHEN 配置更新 THEN THE Config_Editor SHALL 自动刷新预览
  3. THE Config_Editor SHALL 支持使用示例数据进行预览
  4. WHEN 用户提供自定义预览数据 THEN THE Config_Editor SHALL 使用该数据渲染预览
  5. IF 配置无效 THEN THE Config_Editor SHALL 在预览面板显示错误信息
  6. THE Config_Editor SHALL 支持预览面板的全屏模式

Requirement 8: 数据导出功能

User Story: 作为管理员,我想要导出标注结果,以便用于模型训练或其他用途。

Acceptance Criteria

  1. WHEN 管理员在项目详情页点击导出 THEN THE Data_Export SHALL 显示导出选项对话框
  2. THE Data_Export SHALL 支持以下导出格式:
    • JSON(原始格式)
    • CSV(表格格式)
    • COCO(目标检测格式)
    • YOLO(YOLO 格式)
  3. WHEN 管理员选择导出格式并确认 THEN THE Data_Export SHALL 生成并下载导出文件
  4. THE Data_Export SHALL 支持筛选导出范围(全部、已完成、指定状态)
  5. THE Data_Export SHALL 在导出文件中包含任务元数据和标注结果
  6. WHEN 导出大量数据 THEN THE Data_Export SHALL 显示进度指示器

Requirement 9: 标注进度与完成度统计

User Story: 作为管理员,我想要查看标注工作的进度和完成度统计,以便监控项目进度和人员工作量。

Acceptance Criteria

  1. THE Task_Assignment_System SHALL 在项目详情页显示统计面板
  2. THE Task_Assignment_System SHALL 统计以下项目级指标:
    • 总任务数、已完成数、进行中数、待处理数
    • 项目整体完成进度百分比
    • 总标注数据条数、已标注条数、未标注条数
  3. THE Task_Assignment_System SHALL 统计以下人员级指标:
    • 各标注人员的任务分配数和完成数
    • 各标注人员的标注数据条数
    • 各标注人员的完成率
  4. WHEN 管理员查看任务详情 THEN THE Task_Assignment_System SHALL 显示该任务的标注进度(已标注/总数)
  5. THE Task_Assignment_System SHALL 提供进度条可视化展示完成度
  6. WHEN 标注人员完成一条数据标注 THEN THE Task_Assignment_System SHALL 实时更新进度统计
  7. THE Task_Assignment_System SHALL 在任务列表显示每个任务的完成进度百分比