Repository navigation
Accounts and Annotations
校对时,单击起始或结束手柄选中后,左右箭头微调对应边界;选中播放头后左右箭头逐帧定位。X 在当前帧分割片段,与剪刀按钮相同,文本输入时不会触发。不通过原因新增“轨迹不动”“无效数据”“任务不符”“动作过快”。
从 1.0.26 起,管理员可在“审核账号”行末点击删除图标,经确认后删除普通审核账号。管理员账号不能删除。删除会移除登录凭据并注销全部服务端会话;历史审核记录及统计保留,历史筛选显示“已删除”,原账号名不能重新注册或启用。删除不可恢复;临时停用请使用暂停账号。上传成功但响应丢失时可以重试删除,服务端会返回同一删除结果。客户端和用户中心需同步升级。
管理员登录 Viewer 后进入审核监管。审核总览按账号显示在线状态、通过/不通过操作次数、平均载入至提交耗时、视频定位和标签增删次数;实时行为显示逐次操作详情;审核记录按每次打开数据展示结论及耗时;审核账号页支持创建与暂停账号。原管理员标注分配、抽检、导入和标注报表入口已移除。
时间线可按账号、日期、操作和数据会话过滤、翻页及导出全部匹配的 CSV。拖动明细包含起止帧与耗时,标签明细包含名称和 ID,修改明细包含前后内容。数据打开至提交的耗时包含中途停留,不是有效劳动时间;再次编辑会使该会话变为待审核。旧版未采集的交互不会自动补齐。
需要同步升级用户中心,参见 用户中心部署。断网时待传事件留在该账号本机,恢复并登录同一服务账号后补传;管理员可看到最后同步时间和在线状态,不能将陈旧数据当作实时结果。
正式版 1.0.2 保留开发版恢复的人工标注入口。遇到静止位置或缺失 position 的轨迹警告时,选择“仍要标注”即可使用任务标注、裁剪、片段保存;不再自动跳过。轨迹警告不等于视频画面没有动作。校对编辑独立保存,不改变原人工标注完成统计。
- 管理员打开“审核总览”,在“已通过 / 不通过总览”选择路径或输入数据根目录。支持本机和操作系统已挂载的共享目录,必须保持源目录可访问。
- 点击“扫描总览”,递归读取该目录下每个 session 根级
session.json.qc。总览显示唯一数据条数、通过/不通过/待审核/异常数量;可以筛选、分页查看路径、审核人、时长和异常原因。 - 查看原始数据总时长、通过数据原始时长、通过数据有效总时长。原始时长以 Camera 0 为单条基准,不叠加多相机;清单帧数/FPS 优先,旧记录使用采集时间戳估算并注明。有效时长按已保存人工保留片段计算,排除删除段,重叠只计一次。未知时长单独列数并不计入总和;通过数据存在无法核验的结果时阻止导出。
- 扫描成功后点击“导出通过数据”,另选目标目录。完整 session 和人工裁剪记录一起复制,不重新编码或物理截断视频。导出保留相对目录并生成
review-manifest.json;不通过和待审核的数据文件不复制。目标目录不得与源互相包含。
更改源路径后必须重新扫描。导出前后重新核验 QC 和裁剪结果,源文件发生变化、复制失败或取消时不发布不完整结果。每个文件校验大小及 BLAKE3 回读;成功后原子生成新的输出文件夹,不覆盖之前的导出。该扫描与账号审计过滤条件独立,不把同一条数据的多次通过操作重复计数,也不会上传本机扫描路径或媒体。
1.0.23 的“机标来源”会按当前 session 实际文件列出根目录与 .session_meta 内全部 bailian*.json,以及 description.json、desorption.json 人工结果。选项显示相对路径,同名文件可以分别选择;切换数据后重新列出。支持既有 v3/v4 百炼及人工结果结构,未知格式、错误 session 或非法帧范围会显示错误,不会自动把错误字段补成零。
监管总览扫描只读取必要元数据,跳过 session 内的相机媒体子目录。旧 JPEG 记录读取状态时间戳及 Camera 0 文件名来估算时长,不解码图像或索引全部相机;实际导出时仍完整检查源文件并校验副本。
校对页“机标来源”可选择原机标或 3.8 Flash;自动模式优先读取同目录的 bailian_annotation.qwen3.8-flash.json。支持 v3/v4 和双语属性数组,优先显示中文动作描述。Flash 的本机草稿及 bailian_annotation.qwen3.8-flash_reviewed.json 与原机标复核结果独立;两份原始 JSON 都保持只读。全部保留片段合格后才首次生成复核文件。编辑中文描述只更新对应中文字段,英文描述和任务信息保留。
Delta Viewer 只提供登录工作模式。所有数据用户使用当前主机局域网用户中心账号,记录处理人、标注操作时间和任务量;离线身份模式已停用。
首次选择或切换模式后,应用会清空当前 episode、检查、任务和标注页面状态。切回统一管理模式后,需要重新导入配置或登录。
校对页在存在骨架数据时显示与视频同步的三维骨架,支持旋转、缩放和片段定位对照;窄窗口中骨架位于视频下方。工作区不再显示模型流水线状态及起止姿态、跨窗口过渡、任务标签等模型提示长文。原始 JSON 保留这些字段,读取、帧映射及保存错误仍正常显示。
用户中心部署在当前主机 10.1.11.200:17880,只接受 HTTPS 连接。它是账号的唯一来源:普通标注员可以在桌面登录页自助注册,角色固定为 operator;管理员也可在用户中心创建账号。服务保存账号、显示名、角色、创建时间、scrypt 密码哈希、任务分配计划、独立复核结果及白名单标注审计事件;不接收源路径、描述、片段文本、图像、状态、检查结果、报告或 hash。
在用户中心主机执行一次:
pnpm user-center:install脚本会安装 macOS LaunchAgent、生成自签名证书和客户端配置,并在桌面写入 DOHC-User-Center-Client.json。首次打开 https://localhost:17880/ 时,只能在服务主机本机初始化管理员。管理员登录后在“创建账号”区域为每位操作员建立账号。
统一管理模式的操作员在 Delta Viewer 登录页点击“导入用户中心配置”,选择管理员提供的 DOHC-User-Center-Client.json,然后使用管理员创建的账号登录。用户中心地址变化后,在登录页底部点击“重新导入用户中心配置”并选择管理员提供的新文件;客户端会先验证 TLS 健康状态和 service ID,只允许更新同一用户中心的地址和证书。客户端固定校验证书、服务 ID 和私有局域网 IP;密码不会写入客户端磁盘,登录会话只保存在当前 Rust 进程中。用户中心暂不提供角色权限、忘记密码和跨组织同步;服务主机的备份与访问权限由管理员负责。离线模式不会执行这些步骤。
管理员登录桌面端后进入任务运营驾驶舱。监管总览显示今日/累计完成量、当前分配和剩余量、任务类型进度、账号速度与平均耗时、最近活跃、预计完成时间、每小时趋势和最近七天趋势。超过 90 分钟没有可见进展且仍有剩余任务时只显示“可能停滞”,管理员应先确认实际工作状态。
任务分配支持普通、紧急和返工优先级、截止日期、暂停/恢复和拖拽顺序。批量操作有两种模式:“整文件夹一键分配”可多选已经读取的任务目录并把各目录中的全部视频分配完;“按任务分配数量”可多选任务并分别填写每个任务的分配总量。两种模式都可多选标注员,先展示每个任务、每个账号的数量变化,再选择一键平均或按历史速度生成建议;用户中心串行计算同任务的不重叠 episode 序号区间。目录总量会同时扣除未选标注员已有的分配,避免超出实际视频数。截止日期不再细分到时间点,选择当天时界面显示“今天”。完整任务可在两个标注员之间原子转移,避免只更新一侧造成半成功。
异常中心支持确认、备注、进入任务调整和关闭。质量结果只能由管理员独立复核产生,按任务和轨迹码保存通过/返工、错误类型、复核意见、复核人和时间;标注员没有质量自评入口。JSON、CSV 和打印 HTML 报表只包含运营聚合与复核元数据,不包含源路径、图像、状态、片段内容或原始数据。
标注员个人任务抽屉会区分当前、下一和剩余任务,并提供“继续上次任务”和“下一任务”。暂停任务不会进入自动加载工作集。回放支持空格播放/暂停、左右方向键逐帧、[/] 设置裁剪起止;监管审计暂时上传失败时会明确显示“本地未上传”,本机保存内容仍保留。
回放页顶部为当前 episode 选择任务。可以从目录中选择已有任务,也可以点击新增按钮并只输入任务名称来创建本地任务。系统会生成稳定的任务 ID、编码前缀和默认描述;默认描述可以针对当前 episode 继续编辑。选择内置 close_oven 时,默认描述为“关闭烤箱门,并确认烤箱门完全闭合。”。
轨迹码采用 {prefix}-{NNN}:close_oven 的前缀是 oven,因此依次分配 oven-001、oven-002;例如新建“整理餐具”任务时会得到 整理餐具-001。轨迹码字段只读,界面只显示预览,真正编号由 Rust 后端在保存时原子分配。在同一应用数据目录中,一个编号不会分给两个不同 episode;同一 episode 继续编辑相同任务时沿用原编号。
统一管理模式保存标注时会记录:
- 规范化 episode 路径和数据指纹。
- 任务 ID、显示名和可编辑描述。
- 轨迹码。
- 当前登录账号和显示名。
- 修订号、采集时间范围、标注创建/修改时间、修改开始时间和修改耗时。
每次保存追加一个本机修订,不覆盖处理历史。任务定义保存在 appLocalData/tasks,轨迹占号和完整标注分别保存在 appLocalData/trajectory-codes 与 appLocalData/annotations。保存标注还会在当前 episode 根目录原子创建或更新 description.json:
{
"formatVersion": 2,
"description": "关闭烤箱门,并确认烤箱门完全闭合。",
"clipStartFrame": 0,
"clipEndFrame": 99,
"segments": [
{ "startFrame": 0, "endFrame": 49, "title": "打开烤箱", "note": "" },
{ "startFrame": 50, "endFrame": 99, "title": "关闭烤箱门", "note": "确认完全闭合" }
]
}description.json 是唯一允许写入源 episode 的应用管理 metadata;JPEG、states.jsonl、骨架和其他采集文件不会修改。它不参与采集指纹或健康检查,因此更新描述不会让刚完成的检查失效;显式压力导入会复制并验证正式文件。源目录必须可写,严格只读挂载会返回 SOURCE_DESCRIPTION_WRITE_FAILED,不能完成标注保存。三个导出 adapter 继续继承同一任务、描述、轨迹码、处理人和导出审计元数据,任何内容都不会上传用户中心。
保存整体标注或片段后,界面都会显示本次实际更新的 description.json 完整路径。
左侧总览目录只有在当前任务标注和非空片段范围都保存成功后才显示“已标注”。仅进入预览、恢复本机草稿或只保存任务描述不会显示该标记。切换任务并保存后,需要再次保存新任务的片段;旧任务的片段不会自动沿用为新任务的完成记录。
离线模式保存相同的本地任务、轨迹码和修订时间字段,但不写入用户账号;后端仅写固定的本机离线 provenance,前端不显示处理人。三种导出会保留该来源标记,不能将其解释为用户中心账号。
“批量”页以每个 episode 的最新修订作为导出清单。标注不是数据副本:它只记录原始路径和指纹等元数据,不保存 JPEG 或 states.jsonl。批量导出时仍需连接原始源卷,且源路径和内容必须与保存标注时一致。