Repository navigation
Task Center
任务中心直接读取服务器已经生成的统计结果。通过和不通过都算已审核,待审核和异常不算完成。文件夹仍可展开,领取归属继续由用户中心管理。审核员可释放本人领取的批次;管理员可释放任意批次或转交。
批量审核按钮位于加载数据后的左侧目录上方,不在任务中心内。勾选“批量不通过”时,只提交当前已加载目录列表中的数据;“整文件夹不通过”只扫描当前加载根目录。两者都只处理 QC 未审核的数据,已有通过、不通过和异常记录会被保留。操作前必须填写原因并确认,处理结果会逐条显示。
从 1.0.48 起,媒体或机标无法读取的记录也可以判为不通过:在加载失败页面点击“不通过”,或使用当前目录批量操作,填写原因并确认。该操作只更新可读取的根级 session.json 中的 QC 与审核信息,不修复或覆盖损坏媒体,不生成虚假标注片段。保存成功后算已审核,服务器增量统计和客户端刷新后更新完成率;根级 session.json 本身损坏、没有写权限或锁冲突时仍会报错,不能用虚假的成功消除未审核数量。
本人已领取的批次同时显示“进入审核”和“释放”。点击释放并确认后,该批次恢复为可领取,已有审核结果和进度保留。释放他人任务或已被转交的任务会被服务器拒绝。失败时保留归属并显示原因,可刷新后重试;用户中心需升级到支持本人释放的版本。
回放在标准五路相机和骨架之间预留两个画面槽位。加载数据时会读取 manifest 的流名称,或扫描 session 根目录下包含数字 JPEG 帧的相机目录,因此不要求新增相机固定命名为 cam3、cam4。目录名会直接显示在画面标题中;缺少新增流时显示“未接入”,不会阻塞原有五路回放。任务中心的批次索引仍只统计 QC,不读取视频媒体。
点击“领取”后,服务确认成功便自动打开对应批次目录,左侧列出整批数据,并恢复该批次上次打开的数据或加载首条。数据加载成功后任务中心自动关闭;本人已领取的批次可点击“进入审核”再次进入。网络断开、空目录或加载失败时保留领取归属并显示错误,恢复后可直接重试;其他账号已领取的批次不可领取。
1.1.0 起,只有尚未确认 100% 完成的批次显示“仅未审核”筛选。完整统计确认全部已审核的批次隐藏该按钮,文件夹仍可展开。筛选期间批次完成后自动恢复完整目录,保持展开;后续新增未审核数据会重新显示按钮。
未完成批次提供“仅未审核”筛选。点击后读取该批次及其多层子目录的服务器索引,只保留 QC 状态为未审核的 session,并显示相对路径和数量;再次点击“显示全部”恢复完整列表。筛选不会扫描源媒体或隐藏其他批次,异常、通过和不通过记录不会被当作未审核。刷新保留筛选;读取失败显示错误,不会误报已全部审核。
服务器每天北京时间 23:00 开始完整统计,顶部显示最近成功完成的时间。白天 QC 保存后,服务器监听文件变化,回读 QC 后增量更新对应目录;客户端每 15 秒读取最新索引。目录新增、删除或移动会触发后台校准,校准完成后更新列表;1.1.0 修复这类事件可能被普通 QC 刷新提前清除的问题。关闭任务中心不影响服务器运行。普通刷新不会触发全量扫描,管理员的“立即统计”可以要求重新校准。
1.1.6 起,点击“刷新进度”会显示刷新中、未变化、等待服务器核对、完成或失败。展开批次后刷新,会在服务器回查这些目录下已知记录的根级 session.json.qc;没有展开时优先核对本人领取的批次。只选择某个批次或其子目录作为根目录时,核对该范围。没有明确批次时仅读统计索引,展开后可再刷新。该操作不扫描视频、不从审核电脑全量遍历源数据;只有收到服务器完成确认后才显示核对完成。完整目录变动仍由服务器校准,管理员“立即统计”可请求完整校准。顶部“最近读取”是本机取回统计的时间,不代表源 QC 已全部核对。
统计失败保留上一份结果和完成时间,界面显示错误。读取到的服务器心跳超过 90 秒未更新时,提示状态未更新及共享缓存或服务无响应的可能,不直接断言服务已停止。读取超过 20 秒可重试,保留可用结果;不把所有超时都解释为断网。新数据尚未统计时可能暂不出现在列表中。
客户端与统计脚本需同时升级到 1.1.7,审核员需独立索引目录中 refresh-requests 的读写权限;源 QC 仍只读。旧服务会明确提示升级,不显示核对假成功。服务器目录监听会在路径替换后重新绑定,批次核对也会补装监听;统计写入失败后重试仍保留真实变化。
1.1.7 起,上方可按领取人(姓名、账号,或输入“未领取”)、批次名称和采集日期范围组合查询,输入即生效。日期取批次文件夹名称,包含起止日期;没有可识别日期的批次在日期筛选时不匹配。“清空查询”恢复全部批次,显示匹配数量。查询不修改实际总计、审核结果及归属,也不会扫描源数据。目录单独滚动,多行统计提示不会覆盖目录行。
Windows SMB 可能缓存固定名称的旧状态文件。1.1.7 的服务器为每次核对写入唯一 refresh-results/{id}.json,包含完成结果和对应索引;客户端收到该回执并读到对应统计后才确认完成。回执及其引用的分片保留至少 24 小时,后续更新的索引仍正常显示。refresh-results 由统计服务写入,审核员只需读取;refresh-requests 仍需审核员读写。
脚本 scripts/task-index-server.py 只需 Python 3.8+,使用标准库和 Linux inotify。源目录和索引输出目录不能互相包含:
python3 scripts/task-index-server.py \
--source-root /volume8/Datasets/Delta-D1 \
--index-root /volume8/Datasets/Delta-Viewer-TaskIndex/Delta-D1--once 运行单次完整统计。默认常驻模式在启动时校准,之后按时统计并监听变化;同一索引目录通过进程锁禁止重复 worker。配置参考 scripts/delta-viewer-task-index.service 和 scripts/delta-viewer-task-index.sysctl.conf,需要按部署主机调整用户与脚本路径。inotify 容量不足会显示统计失败,不能忽略该错误。
Windows 自动读取 \\10.1.40.2\Datasets\Delta-Viewer-TaskIndex\Delta-D1,其他平台使用数据集同级的已挂载路径,无需审核员设置。选择 Delta-D1 内的子目录也使用同一索引与批次归属。其他数据集尚未配置服务器索引时会明确提示。
index.json 指向不可变目录分片,status.json 保存状态和心跳;旧分片至少保留一小时,源媒体不复制。服务脚本目录应仅允许维护人员修改,索引允许审核员读取,重建请求文件仅允许维护人员写入。NAS 共享账号的权限独立于 Viewer 账号,应用管理员门禁不能限制其他工具直接写共享文件。
首次索引建立以及服务重启需要完整扫描。存储和时间随目录数增长,不随视频容量等比例增长;运行状态、心跳和日志应纳入 NAS 服务监控。DSM 系统升级后需检查自定义 systemd 服务和 inotify 配置是否保留。