HOT3D · MANO21 · Test200 v3
先下载题集推理,再提交 21 点预测
本服务只支持已冻结的 MANO21 题集。1 clip = 1 case,每 case 包含左右两路已扶正灰度视频,各 150 帧、约 5 秒。可提交 1–200 case; 新建任务时选择正式或临时榜单,默认临时,不根据 Case 数量分类。 排名要求题集、实际 Case 集合和评分口径一致。
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 关闭;关闭后重新打开使用普通尺寸。