← 返回评测平台

HOT3D · MANO21 · Test200 v3

先下载题集推理,再提交 21 点预测

本服务只支持已冻结的 MANO21 题集。1 clip = 1 case,每 case 包含左右两路已扶正灰度视频,各 150 帧、约 5 秒。可提交 1–200 case; 新建任务时选择正式或临时榜单,默认临时,不根据 Case 数量分类。 排名要求题集、实际 Case 集合和评分口径一致。

完整题集 ZIP · Test200 v3
400 路无损 MKV、标定、时间戳、模板与工具
输入清单与标定 ZIP · Test200 v3
已持有视频时使用;打包请另下载当前工具
当前提交工具 · schema v4
Python 标准库,适用于 3D / 2D

自动化提交与结果查询见 Agent API 协议(含 OpenAPI、错误码和示例)。新任务只接受当前题集及最新格式,历史结果仍可回放;旧预测不自动升级。

下载支持断点续传。当前题集为 Test200 v3:199 个 case 沿用 v2,以 clip-000607 替换 clip-000422。 包内 SHA256SUMS 和 inputs.json 记录文件校验信息。建议预留至少 70 GiB 用于 ZIP 与解压目录。 新旧题集的输入身份不同,提交时禁止混用;v1/v2 临时成绩继续在临时榜单展示,全部提交与回放保留在历史记录。 每条成绩标明原题集版本,保留原 GT 和评分;不同题集或评分口径可排序查看,但不统一排名。 各题集版本沿用同一 MANO21 点定义和原3D评分规则;v4提交另增加2D指标,见下文。 工具在本地读取文件,不依赖原评测服务器。

1. 输入与坐标

使用包内 camera_1201-1.mkv 和 camera_1201-2.mkv 推理。画面已顺时针旋转 90°,不要再次旋转;不裁剪、不去畸变。网页预览 MP4 为有损显示,不作为正式推理输入。用 frames.jsonl 的 frame_id / encoded_frame 定位画面,纳秒时间戳保留字符串整数。

提交每帧原始左相机 camera:1201-1:native 坐标,单位米;X 向右、Y 向下、Z 向前。3D 坐标不随画面扶正再旋转。标定为 FISHEYE624,不能当针孔 K 使用;如算法另行预处理,须反变换到约定坐标。

2. 点位与输出

ScaleHP 取点规则:MANO16 关节 + 五指尖顶点 [744,333,444,555,672](拇、食、中、无名、小指,零基索引);腕点来自 MANO 关节 0,拇指 CMC 来自关节 13。精确映射见包内 point-definitions.json。掌心不能替代 CMC。

0 thumb_tip    1 index_tip    2 middle_tip   3 ring_tip    4 pinky_tip
5 wrist        6 thumb_mcp    7 thumb_ip     8 index_mcp   9 index_pip
10 index_dip   11 middle_mcp  12 middle_pip  13 middle_dip 14 ring_mcp
15 ring_pip    16 ring_dip    17 pinky_mcp   18 pinky_pip  19 pinky_dip
20 thumb_cmc

每个 case 必须恰好 150 行 JSONL(frame_id 0–149),每帧有解剖学 left / right 两槽。成功预测填 {"status":"ok","points_3d":[21 个 XYZ]},缺失填 {"status":"missing","points_3d":null}。不删除失败帧,也不用零坐标代替缺失。允许显式 joint_names 置换,名称须完整唯一且与数组对应。

3. 当前格式:校验与打包

python pose_submission.py template --inputs inputs.json --submission ./my-predictions --type 3d --cameras 1201-1 1201-2
# 或追加 --case-id clip-000000,重复参数选择 1–200 case。
# 填写真实 adapter/pipeline 版本,用模型输出替换模板中的 missing。
python pose_submission.py verify --inputs inputs.json --submission ./my-predictions
python pose_submission.py pack --inputs inputs.json --submission ./my-predictions \
  --output ./submission.zip --model-output

推荐使用工具打包,ZIP 根目录包含 submission.json 和 predictions/<clip_id>.jsonl。无需上传视频、GT、模型权重。模板默认是联调身份;真实模型输出需显式 --model-output。GT 校验任务只进入历史与联调记录。

也支持唯一的一层外目录包裹上述答案结构;不要混装多个答案目录或加入其他文件。外目录名称不决定题集,仍按包内身份与所选题集校验。

只接受元数据格式 hot3d-pose-prediction-v4 和题集 test200-v3,协议 local-hot3d-quest3-mano21-pose-v1,输入清单 SHA256 b3a405063e0158b47fa19c3ad4bf0acdd65785a0e9acb36f6d045412e3cbf1ef。保持 inputs.json 原始字节,不重排或覆盖。选择 case 的清单与题集输入身份是两回事。

3.1 3D / 2D 与单目提交

仅支持 3D 或 2D 两种上传类型。声明推理使用左相机、右相机或双目,2D 计分自动跟随。3D 自动投影计算 2D 指标;纯 2D 只计算 2D 与公共指标。3D 始终使用左相机 native 坐标(m),包括右目推理;2D 使用所选相机扶正原图坐标(px,当前1024×1280),先还原裁剪/缩放。单目提交仍需全部150帧。

下载当前提交工具 pose_submission.py(Python 3.10+,标准库)。题集版本与提交格式版本独立,保留 Test200 v3 的原始 inputs.json;冻结 ZIP 内的旧工具/模板仅保留作历史证据,不用于新任务打包。平台不会自动将旧 v3 格式升级为 v4,也不能将旧题集预测改标为新题集。不要修改现有下载包、清单 SHA 或 GT。

python pose_submission.py template --inputs inputs.json --submission ../my-predictions --type 2d --cameras 1201-2 --case-id clip-000000
# 填写150帧预测及 adapter / pipeline 版本;模板默认为联调身份
python pose_submission.py verify --inputs inputs.json --submission ../my-predictions
python pose_submission.py pack --inputs inputs.json --submission ../my-predictions --output ../submission.zip --model-output

3D 使用 --type 3d;双目使用 --cameras 1201-1 1201-2。省略 --case-id 则生成全部Case。只有真实模型输出使用 --model-output;GT衍生任务保留联调身份。v4 不接受3D与原生2D混合上传。

元数据新增 prediction_type(3d/2d)、inference_camera_ids(所选相机ID列表)。2D的 coordinate_frame 为 upright、unit 为 px。关节仍须21个语义名称;每帧 views 下包含每个声明相机的 width、height、left、right,手使用 status 和21个 [u,v] 组成的 points_2d。缺失手明确填 missing 和 points_2d:null,不能省略帧或相机。

{"clip_id":"clip-000000","frame_id":0,"views":{"1201-2":{"width":1024,"height":1280,"left":{"status":"missing","points_2d":null},"right":{"status":"missing","points_2d":null}}}}

4. 提交字段与 Benchmark

模型名称、模型版本必填,保留选择已有或新建的方式。Pipeline 名称与版本整体选填; 选择 Pipeline 后需指定版本。模型与 Pipeline 独立登记,同一模型可以搭配不同 Pipeline。 这里的业务 Pipeline 版本不替代 ZIP 内必填的 submission.json.pipeline_version 溯源字段,不需要为新的表单改写已有 ZIP。

榜单支持模型和 Pipeline 名称/版本搜索,默认展示所有 Case 数量,数量仍在表格中显示;行内只保留“详情”入口。 支持明细、按模型或按 Pipeline 分组,默认最新完成在前,可按各项指标升降序排序; 排序不改变名次,分组不计算平均成绩。同配置和相同评测条件下保留最新成功结果, 历史与联调区可以查看全部记录。旧结果按临时兼容,缺少的 Pipeline 显示为未填写, 不根据模型名称猜测。GT 衍生联调任务不能选择正式榜,始终只显示在历史区。

新建模型版本需填写说明;新建 Pipeline 版本也可填写说明(选填,最多 1000 字符)。 选择已有版本或复用提交时只读展示原说明,变更说明需新建版本。 评测任务和结果详情分别展示模型与 Pipeline 的名称、版本、说明;历史缺说明显示为未填写。

5. 当前评分指标

分类为 3D 空间精度、2D 定位精度、覆盖率、左右手标签、帧间稳定性。纯2D任务的3D指标不适用。左右手错标率与覆盖率各保留一项公共指标,单目不计算跨视角标签差异。榜单“显示2D指标”控制四项2D指标,默认3D列表关闭、含纯2D列表开启;详情默认开启,两处设置独立。

2D-EPE21(px):15个空间评分帧上,预测与GT二维位置的欧氏距离均值。GT须有效且投影在图内,遮挡不另作排除;缺失预测不计零,须结合覆盖率阅读。不能直接换算为mm,纯2D没有唯一深度。

2D-PCK-AUC21(0–100分):误差除以完整有限GT投影21点包围框长边(最小20px),阈值0~0.2、100等分梯形积分,缺失按失败计。双目按GT点数池化,不平均两个视角的百分比;纯2D以此排名。3D仍以PCK-AUC21排名,不同上传类型、推理相机、题集或策略不混排。

2D-MPJPA21(2D 轨迹二阶变化幅度,px/frame²):预测轨迹连续三帧二阶差分 p[t+1]−2p[t]+p[t−1] 的模长均值,不减去GT。它衡量轨迹变化幅度,静止错误预测也可为零,真实手部或相机运动也会增大此值,因此不标“越低越好”,不用于主排名。与2D-ACC21共用GT有效在图内且预测有限的点窗口,按点窗口池化;同窗口GT幅度仅作参考。两项卡片均直接显示有效/候选点窗口及占比,须结合定位误差阅读。曲线绿线为预测幅度、蓝线为同窗口GT幅度。

2D-ACC21(px/frame²):全部150帧中,连续三帧分别计算预测与GT的二阶差分 p[t+1]−2p[t]+p[t−1],取两者向量差的模长均值,越低越好。不除以秒数平方;时间戳仅用于排除非递增或相邻间隔超过50ms的窗口。三个GT点均有效在图内且预测存在才计分,首尾帧无完整窗口、缺失预测均不计零。该值与帧率有关,应在相同帧率与抽样条件下比较;3D CS-ACC21仍使用m/s²。

任务与单Case的2D指标卡在总分下展示所选左右相机分数,悬停或聚焦相机行可查看样本数;单目仅展示一路。当前帧的2D-EPE21(px)紧随XYZ轴误差,按左右手、所选相机展示,曲线同样使用已冻结证据。新2D策略为v3,仅新增幅度指标;原v1/v2记录、指标数量和证据均保留,未计算的新指标显示“未计算”。旧px/s²记录保留原单位,未补算时明确标为旧口径;历史补算创建独立诊断,不改原3D成绩。

指标 定义 单位 / 方向
PCK-AUC21 21 点绝对误差在 0–50 mm(步长 0.5 mm)上的正确率曲线积分,缺失计为失败;可比较结果的排名依据 0–100 ↑
Abs-MPJPE21 有效配对的 21 点三维绝对距离均值,不做对齐 mm ↓
RR-MPJPE21 预测与 GT 各减自身腕点后求 21 点距离均值;含零腕点,分母 21 mm ↓
Abs-MAE X / Y / Z(诊断) 左相机原生坐标 X 向右、Y 向下、Z 向前,分别计算 21 点平均绝对偏差;沿用 15 个空间评分帧,有效且完整的预测按点池化,不做对齐,不改变主排名。 mm ↓
FT-AUC5 五指尖绝对位置 PCK-AUC,阈值与上同 0–100 ↑
预测覆盖率 有效 GT 手帧中有完整有效预测的比例 % ↑
左右手错标率 双视角分别进行 21 点二维匹配,错标数 / 明确匹配数 × 100%;全部 150 帧参与,须结合匹配覆盖率阅读。历史未计算不填零。 % ↓
BC-P95 20 条骨架边相邻帧长度变化 / 对应 GT 中位骨长;每手帧对取最大值,全部有效帧对取 nearest-rank P95 % ↓
CS-MPJPA21 21 点预测轨迹二阶差分模长均值;不按 GT 有效性裁掉,低值仅表示更平滑 mm/frame²
CS-ACC21 真实时间间隔下,预测与 GT 的 21 点相机坐标加速度向量差均值 m/s² ↓

空间指标使用每 clip 的 0、10、…、140 共 15 帧;时序指标使用完整 150 帧。时序均不做腕点归零。MPJPE 缺失不计零,需结合预测覆盖率;时序指标展示各自有效窗口 / 候选窗口,不把无有效窗口视为零误差。

GT 来源是公开训练数据的 MANO 派生标注,不等同于独立物理测量精度。本项目保存旧系统的 MANO21 历史成绩,但不接受 UmeTrack19 协议,不跨题集混排。

榜单筛选行排序控件左侧的“显示选项”可勾选“显示分轴误差”,列表默认关闭、任务弹窗默认开启,两者独立且可切换;X/Y/Z 使用独立浅蓝灰诊断底色,指标溢出可横向滚动。具体 Case 直接展示三轴汇总,右侧每只手的当前帧 X/Y/Z 随切帧或播放更新。历史诊断可经授权离线补齐,未计算、无样本或失败不填零;补齐不改原成绩、完成时间、题集或冻结证据。

详情使用“Case ID / 具体指标”与独立升降序按钮排序,两个 tab 同步搜索、排序字段/方向和标签筛选,切换后保留条件。分页位于右侧;排序、筛选和翻页会显示新页首条 Case,没有匹配项时清除旧画面。精确帧优先显示,停留后提前缓冲当前 Case 两路视频;播放等待两路共同就绪,缓冲时保留画面并可取消。快速切换、关闭或隐藏页面取消旧视频加载;浏览器节流量/2G模式下仅点击播放才加载。单 Case 的 XYZ 与主指标卡并列,配色与 Benchmark 一致;Abs-MPJPE21 后的三轴曲线使用全部 150 帧冻结证据,仍可点击、拖动或键盘同步定位,不能把逐帧曲线当作仅 15 个抽样帧的正式汇总。

评测数据中的“Clip 指标”默认收起,点击即可展开。左右相机按原图比例铺满宽度,下方的“聚焦手部画面”分别放大左手和右手,并同步当前帧与标注。每个相机、手部特写及三维骨架右上角的图标可单独全屏,Esc 先还原单画面。空格播放 / 暂停,全屏或切换 Case 后也可直接使用;↑ 上一个 Case、↓ 下一个 Case,按当前筛选与排序切换并自动跨页,首尾不循环,全屏中也可使用。在搜索框、下拉框和时间轴等控件中保留原有键盘操作。

详情右上角的全屏按钮可将弹窗铺满浏览器内容区,再次点击还原。视频、叠加标注与三维骨架保持比例放大,切换不重新加载、不改变当前 Case、帧或播放/暂停状态。全屏时按 Esc 先还原,再次按 Esc 关闭;关闭后重新打开使用普通尺寸。