炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!
(来源:科技行者)
你有没有遇到过这种情况:一个东西数据上完美无缺,可你就是觉得哪里不对劲?
这正是人形机器人动作追踪领域这两年一直在发生的事。研究者训练一个机器人模仿人类的舞蹈动作,跑完之后拿出一堆数字:关节角度误差很小,姿态匹配度很高,一切指标都说"这个动作追得很好"。可当你把视频打开一看,机器人的脚在地上诡异地打滑,明明该稳稳踩在地面上却像踩了香蕉皮,或者做出一个跳跃动作时落地的时机完全不对,看起来一点也不像人。
这不是个例。这是整个评价体系出了问题。
来自南开大学、清华大学、Galbot 等机构的研究者们把这个问题摆到了台面上,做了一件事:他们提出了一套叫 HumanTracker 的评测体系,外加一个叫 HumanScore 的打分模型,专门解决"数据好看但动作难看"这个割裂问题。
传统指标为什么会骗人
先说清楚现在大家是怎么给机器人动作追踪打分的。
主流做法是拿机器人实际做出来的动作姿态,和参考动作(也就是人类演员做的标准动作)逐帧对比,算出关节角度的平均误差,业内管这个叫
MPJPE(Mean Per Joint Position Error,平均每关节位置误差):把每一帧、每一个关节的角度偏差都算出来,然后取平均值,数值越小说明追踪越精确。
听起来很合理对不对?逐帧比较,取平均,简单直接。
问题恰恰出在这个"取平均"上。你想象一个学生考试,60分及格线,如果他前面九道题都考了100分,最后一道题考了0分,平均下来还是90分,看起来很优秀。但如果这最后一道题恰好是"能不能站稳不摔倒",那这个90分毫无意义,因为学生已经在地上了。
机器人的脚部接触问题就是这最后一道题。当机器人的脚该踩稳地面的时候没踩稳,出现打滑或者悬空,这种瞬间的失误可能只占整段动作的极小一部分时间,在逐帧平均之后几乎被稀释到看不见,但人眼一看视频立刻就能发现不对劲。人类的感知系统对这种"支撑不稳"的信号异常敏感,这是数百万年进化留下的本能,跌倒可能意味着受伤,所以我们的眼睛天生会捕捉这类信号,哪怕它只发生在一瞬间。
这就是为什么两个机器人可能有着几乎相同的 MPJPE 数值,但看视频时你会毫不犹豫地说其中一个明显更好。研究者管这个叫指标和人类感知的错位,说白了就是:分数说这个动作及格了,但你的眼睛说不。
除了指标本身的问题,还有第二个大麻烦,就是测试数据太少太窄。目前业内最常用的测试集来自一个叫 AMASS 的动作捕捉数据库,但拿来做机器人追踪测试的部分只有 140 段动作序列。140 段是什么概念?如果把人类日常能做的所有动作,从走路、跳舞到摔倒后爬起来算作一个巨大的动作宇宙,140 段序列连这个宇宙的边角都摸不到,尤其是那些高难度的接触转换动作、不对称平衡动作,几乎完全没有覆盖。
这就好比你想测试一辆车的综合性能,却只给它安排了一条平坦的直线跑道,压根没有测试它过弯、爬坡、急刹车的能力。跑得再快,遇到真实路况照样翻车。
四大动作家族:给失败原因分门别类
研究团队做的第一件事,是造了一个足够大、足够多样的测试场。
他们请了 24 位专业表演者,包括舞蹈老师、健身教练、网球教练和全职动作捕捉演员,在一个装了多台摄像机的专业动捕棚里录了大约 153 小时的动作数据,一共 25000 段动作片段。作为对比,之前常用的测试集只有 140 段,AMASS 全集也就 40 多小时,另一个叫 PHUMA 的数据集有 73 小时但没有分类标签。规模摆在这里,153 小时已经远远甩开同类数据集。
但光是数量大没有用,真正的巧思在于他们没有把这堆动作胡乱堆在一起,而是按照动作会暴露出机器人哪种失败模式,分成了四个家族。
第一类叫日常动作(Daily),包括走路、转身、日常手势这些。这类动作看起来平平无奇,但恰恰是检验机器人"能不能稳稳站住、走得直不漂移"的基本功。
第二类叫高动态动作(Highly Dynamic),涵盖跳跃、踢腿、杂技和快速的舞蹈步伐。这类动作有冲击和快速的支撑切换,最容易把机器人在时机和相位上的误差放大出来。
第三类叫交互动作(Interaction),是那些涉及和物体或环境互动的人体动作,考验手、臂和全身的协调配合,这类动作数据其实还能反过来给机器人操作任务提供参考姿态。
第四类叫地面动作(Ground),包括跪、坐、翻滚和从倒地状态恢复站立。这类动作重心低,同时有多个身体部位接触地面,对接触几何形状和摩擦力极其敏感。
这个四分法背后的逻辑,其实很像医生看病不能只量一个体温就下诊断,得分别检查心跳、血压、呼吸各项指标,因为不同的病会在不同的指标上露出马脚。如果只报一个总分,你压根不知道这个机器人到底是"走路不稳"还是"起身困难"还是"跳跃落地会摔"。分了家族之后,每一类都单独打分,哪里出问题一目了然。
如果不这么分类会怎样?论文里其实给出了答案。他们测试的几个主流追踪器里,有一个叫 SONIC 的模型在交互动作类别上完成率最高,但在日常动作类别上却被另一个叫 Humanoid-GPT 的模型全面超越。如果只看一个笼统的总分,这种"一个强项一个弱项"的细节完全会被抹平,你会误以为其中一个模型全面碾压另一个。
HumanScore:教会机器打出符合人类直觉的分数
既然传统指标测不准人类真正在意的东西,那就干脆让人类直接参与打分,再把这种打分能力教给一个模型,让它可以自动化地大规模评测。这就是 HumanScore 的思路。
具体做法是这样的:让四个主流的动作追踪器(GMT、TWIST2、SONIC、Humanoid-GPT)针对同一个参考动作各自生成一段机器人执行的动作录像,然后把两个录像并排放给人看,问哪个更好。
六位专攻人形机器人研究的博士研究员当了裁判。他们看的时候不是随便扫一眼就下结论,而是有一套严格的判断顺序:先看这两段动作里有没有直接失败或者摔倒的,如果都没摔,再依次比较抖动程度、脚是否打滑、走路是否连贯、整体动作是否自然。最后给出四种判断之一:左边更好、右边更好、差不多、没法比较。
这套流程一共收集了 6000 组原始的对比数据,再通过左右镜像翻转的方式扩充到 12000 组,覆盖了 24000 段动作视频。
这里有个细节值得说一下:为了防止裁判因为习惯性地觉得"左边通常展示的是某个特定模型"而产生偏见,视频的左右显示顺序是随机打乱的,谁也不知道自己看到的哪一边对应哪个追踪器。这就好比考试改卷子的时候把学生名字盖住,防止老师带着预设印象打分。
收集到这些人类偏好数据之后,接下来就是把这种判断能力教给一个模型。
这个模型的结构是一个时序 Transformer
Transformer:一种依靠自注意力机制处理序列数据的神经网络结构,最早用于自然语言处理,现在广泛用于处理带有时间顺序的各种数据。
模型每一帧输入的是一个 539 维的特征向量,里面装的东西很杂:当前参考动作的状态、机器人实际的姿态和速度、控制指令、脚部接触力、根部运动信息、还有 14 个关键身体部位的姿态和速度。这些特征被投影、归一化,加上位置编码后送进 Transformer 编码器处理,最后把所有帧的输出取一个带掩码的平均,压缩成一个代表整段动作质量的向量,再通过一个小的神经网络输出一个分数。
这里有个设计细节特别值得说:模型只看当前帧和过去的历史状态,完全不看未来的参考动作走向。这看起来有点反直觉,因为如果给模型看未来信息,理论上它应该能判断得更准才对。但实验结果显示,加入未来参考信息后模型的对齐率反而从 0.908 略微下降到 0.905。研究者的解释是,这个额外信号"难以利用",也就是说,光靠现在和过去发生了什么,就已经足够判断这个动作追得好不好,未来还没发生的事对判断当下的执行质量没有太大帮助。
训练这个打分模型用的是一个叫 Bradley-Terry
Bradley-Terry 损失:一种源自统计学配对比较理论的损失函数,最早用于分析两两对比的排名问题(比如两个球队谁更强),后来被广泛用于训练偏好模型,核心思路是让模型给"更好"的一方打出更高的分数。
的偏好学习方法,对于那些标注为"差不多"的配对,还加了一个额外的对称约束,让模型不会强行给两个其实相近的动作打出悬殊的分数。最终,训练集和测试集是按照原始动作序列的编号分开的,确保同一段源动作产生的所有片段只会出现在训练集或者测试集的其中一边,不会串通。
打分环节还有个巧妙的处理,因为机器人的完整动作序列长短不一,模型统一按照 5 秒(也就是 250 帧)为一个窗口切分。如果最后剩下不满 250 帧的片段,就用零填充凑够长度,但同时生成一个有效性掩码,告诉模型"后面这段是凑出来的,别当真"。这样填充部分既不参与注意力计算,也不参与最后的平均池化,整段动作最终的 HumanScore 是把每个窗口的分数按照该窗口实际帧数加权平均得到的,换算成 0 到 100 的区间。
这个设计就像你去餐厅点了一份套餐,账单上写着十道菜的总价,但其实最后一道甜品只上了半份。如果账单按十道整菜平摊价格,你付的钱就不公平。这里用实际帧数加权,就是保证账单只按你实际吃到的分量算钱。
数据说话:谁才是真正的赢家
论文用这套评测体系对四个主流追踪器做了一次零样本测试,也就是这些模型完全没有在 HumanTracker 的数据上训练或微调过,纯粹检验它们原本的实力。
| 方法 | 日常完成率 | 日常HumanScore | 高动态完成率 | 高动态HumanScore | 交互完成率 | 交互HumanScore | 地面完成率 | 地面HumanScore |
| GMT | 17.0% | 2.4 | 36.2% | 7.0 | 81.4% | 11.7 | 0.0% | 4.0 |
| TWIST2 | 60.1% | 10.1 | 39.9% | 16.9 | 91.3% | 28.3 | 0.0% | 4.5 |
| SONIC | 93.8% | 49.5 | 82.1% | 41.0 | **97.6%** | 54.6 | 20.1% | **26.5** |
| Humanoid-GPT | **94.4%** | **54.7** | **86.9%** | **49.2** | 97.2% | **56.8** | **32.9%** | 24.9 |
从这张表可以看出,Humanoid-GPT 总体上是最强的,在日常动作和高动态动作两个类别里,完成率、关节误差、HumanScore 三项指标全部拿下第一。但有意思的是,SONIC 在交互动作类别上完成率反超,在地面动作类别上 HumanScore 反而更高。
这说明什么?说明 Humanoid-GPT 更擅长"稳稳当当地把动作做完并且贴合参考",但 SONIC 生产出来的地面动作,看起来反而更自然更稳定,尽管完成率更低。这种细腻的差异,如果只靠一个笼统的总分是根本看不出来的。
更关键的一组数据来自人类偏好对齐率的比较,也就是各种打分方法和人类真实判断的一致程度:
| 指标 | 对齐率 |
| **HumanScore** | **90.83%** |
| 关键点位置误差 | 84.05% |
| 关节速度误差 | 84.04% |
| 平均关节误差(MPJPE) | 80.49% |
| 脚部接触准确率 | 78.82% |
| 平均关节加速度 | 72.32% |
| 平均关节急动度 | 69.33% |
HumanScore 以 90.83% 的对齐率遥遥领先所有传统的规则化诊断指标,比排名第二的关键点位置误差高出了将近 7 个百分点,比大家常用的 MPJPE 高出超过 10 个百分点。研究者还专门用统计学的方法(自助法重采样)算出了置信区间,证明这个差距不是偶然波动,而是稳固存在的。
这组数字也说明了一件事:单一的规则化诊断,无论是姿态误差、速度误差还是接触准确率,都只抓住了人类判断中的一个侧面。人类在评判一个动作时,是把这些侧面综合在一起,再加上"这个动作看起来自不自然、流不流畅"这种难以量化的整体感受,一起打出的分数。这恰恰是为什么单靠某一项规则指标永远追不上综合学习出来的偏好模型。
时间窗口越长,判断越准
论文里还做了一组很有意思的敏感性分析实验,专门测试给模型看多长的历史片段会影响判断准确度。
结果显示,如果只给模型看 1 秒钟的片段,对齐率是 85.7%;给 2 秒是 87.6%;给 3 秒跳到 90.6%;给 5 秒是 90.8%。可以看到,从 1 秒到 3 秒有一个明显的跃升,之后就趋于平稳了。
这个结果其实非常符合直觉,如果你只看一张照片,很难判断一个人是不是正在摔跤边缘,因为静止画面看不出脚有没有在打滑、身体有没有在持续晃动。但只要给你看三五秒的视频,滑动、抖动、逐渐失去平衡这些渐进式的问题立刻就暴露出来了。这就好比法医鉴定一个人是不是喝醉了,看一张照片你猜不出来,但看他走十步路的视频,摇摇晃晃的步态马上就能看出来。
论文还专门做了一个对照实验,去掉输入特征里的接触相关信息(比如脚部接触力、接触状态这些),结果显示这样处理之后,模型在地面动作类别上的对齐率下降最明显,从 87.9% 掉到了 75.9%。这印证了前面提到的核心矛盾:地面动作恰恰是接触关系最复杂、最容易出现打滑翻车的类别,去掉接触信息,模型立刻在这个类别上判断失灵。
这套体系解决了什么,又留下了什么
回过头看,HumanTracker 这项工作其实是在回应一个很朴素的抱怨:为什么数据说这个机器人动作很好,但看着就是觉得别扭。
这个抱怨背后藏着一个更深的问题,就是我们习惯用平均值去衡量一件本质上不该被平均的事情。走路走得稳不稳,能不能归结成一个平均误差数字?摔倒这件事,能不能被稀释进九十九帧正常数据里就当没发生?答案显然是不能。人类的感知本身就不是线性平均的,我们对"支撑失败"这类事件天然地赋予了远超其时长占比的权重。
这提醒我们一件更普遍的事:任何试图用单一数值总结复杂过程的评价体系,都要面对"平均值掩盖极端事件"这个陷阱。这不只发生在机器人评测里,考试打分、员工绩效考核、产品质量检测,本质上都可能踩中同样的坑。
论文本身也很坦诚地承认了几个局限。这套模型是在四种特定的追踪器和特定的动作数据上训练出来的,虽然测试的时候确保了没见过的动作序列,但对于完全陌生的机器人型号、完全不同的仿真引擎,泛化能力还没有被验证。而且训练用到的 539 维特征里包含了很多仿真环境里才有的"上帝视角"信息,比如精确的接触力,这些在真实机器人硬件上未必能直接测量到,想把这套打分体系搬到真实机器人上使用,还需要额外的传感器估计方案。
论文作者还特别提醒了一点:目前这个 HumanScore 只被用来做评测,还没有被直接当作强化学习的奖励信号去训练机器人。如果直接拿它当奖励去优化策略,很可能出现钻空子的情况,机器人学会讨好这个打分模型而不是真正做出好动作,这是接下来需要小心处理的问题。
写在后面
读到这篇论文时,最触动我的一点是研究者对"平均"这个操作的警惕。我们太习惯用平均值总结一切了,考试平均分、员工绩效平均分、机器学习模型的平均准确率,好像一切复杂的东西都能被压缩成一个数字。但这篇论文提醒了一件很朴素的事:有些失败不该被平均,摔倒就是摔倒,哪怕它只占整段视频的百分之一时长。
另一个让我意外的细节是,研究者发现给模型看未来的参考轨迹反而会让判断变差。这跟我们本能以为的"信息越多判断越准"正好相反。这说明有时候多余的信号不是帮助,而是噪声,模型可能在试图利用一个它没法真正理解的模式,反而分散了对当下证据的关注。这个反例其实值得所有做特征工程的人多想一层。
最后留一个真正好奇的问题:如果把这套人类偏好打分体系用来训练机器人本身,而不只是拿来打分,机器人会不会学出一种"看起来很自然但其实是在讨好裁判"的怪异步态?这大概是接下来最值得盯着看的地方。
Q&A
Q1:HumanTracker是什么?
A:HumanTracker是一个针对人形机器人动作追踪的评测基准,包含约153小时的光学动作捕捉数据,分为日常、高动态、交互、地面四大类,专门用来发现传统评价指标测不出来的动作缺陷,比如脚部打滑和接触时机错误。
Q2:HumanScore和传统的MPJPE指标有什么区别?
A:MPJPE是逐帧平均关节角度误差,容易忽略瞬间的接触失败问题。HumanScore是通过人类偏好数据训练出的打分模型,综合考虑姿态、接触、稳定性和流畅度,与人类真实判断的对齐率达到90.83%,明显高于MPJPE的80.49%。
Q3:目前哪个动作追踪模型表现最好?
A:根据论文的零样本测试,Humanoid-GPT在日常动作和高动态动作两类上全面领先,但SONIC在交互动作的完成率和地面动作的HumanScore上反而更优,说明不同模型有各自的强项。