先看一个会打架的下午

假设一位训练者(示意场景,数据为模拟,不代表任何真实用户)周六下午在室内骑行台上做 4 组 6 分钟的间歇,旁边架了一部手机对着侧面拍摄。训练结束后,各设备给出的信息是这样的:

来源 它说了什么可能的问题
手腕上的手表 第 3 组心率 158,比前两组低光电心率在手腕晃动或表带偏松时容易出错
踏板功率计 第 3 组功率比第 2 组高约一成 通常较可靠,但可能未归零、电量或校准漂移
手机摄像头踏频比功率计读到的慢,膝盖内扣更明显 侧面视角,被车架遮住一部分

如果只看手表,会得到“这一组比较轻松”的结论;只看功率,会以为“状态在上升”;只看视频,又像是“疲劳导致动作走样”。三种说法拼在一起,并不是简单地选一个赢家。这就是多模态训练分析里最日常、也最容易被产品经理一句“融合多种数据”轻轻带过的问题:来源越多,冲突越常见,而冲突本身往往就是信息。

贝博体育多模态AI的出发点并不是“把所有数据加起来更准”,而是承认每个传感器只回答了半个问题。后面的内容围绕一个顺序展开:先确认它们说的是不是同一时刻,再判断谁在这种场景下更可能出错,然后决定给结论多大的把握,最后才轮到训练建议怎么改。

统一运动模型:不同来源放进同一张表

跑步、骑行、健身的原始数据长得完全不一样。跑步有手表的心率和 GPS 轨迹,还可能有手机拍到的跑姿;骑行有功率计的瓦数与踏频、心率带的心率;健身主要是视频里的关节点序列,有时再加手表心率。如果每种运动各写一套分析逻辑,同一位训练者在三种运动之间切换时,系统就等于每次都从零认识他。

贝博体育把它们放进同一个统一运动模型,可以粗略理解成这样几层:

  • 时间轴:所有来源都被转成带时间戳的序列,允许采样率不同(心率一秒一个,视频一秒几十帧,GPS 一秒一个点)。
  • 身体状态:用心率、功率或配速这类“外部输出”,加上恢复情况、睡眠等背景,估算当下的负荷和疲劳程度。
  • 动作状态:用视频姿态或惯性传感器读数描述动作形态,比如步频、踏频、膝盖轨迹、躯干角度。
  • 不确定性:每一个数值旁边都跟着一个“这条读数有多可靠”的量,而不是只留一个数字。

最后一层是这套模型和普通“数据看板”的区别所在。看板把每个数字并排摆出来,读的人自己判断;模型则要在内部把“不确定”当成一等公民,否则后面的取舍无从谈起。关于体育大模型需要哪些数据种类,可以参考体育大模型到底需要多少种数据里的梳理;这里只关心它们冲突时怎么办。

冲突的第一道工序:时间对齐

很多所谓“传感器矛盾”,其实只是时间没对上。

光电心率有天然延迟:心率对强度变化的反应本来就慢半拍,加上手表算法要平滑多个窗口,屏幕上的数字往往比真实的心脏状态晚十几秒。功率是瞬时输出,几乎没有延迟。所以一组 6 分钟间歇,功率在第 5 秒就冲上去了,心率可能到第 60 秒才跟上。如果把同一秒的功率和心率直接比较,就会得出“心率没跟上、状态变差”的错误结论。

摄像头这边的问题更实际:手机和手表的时钟不一定同步。手机视频的开头可能比骑行开始晚了 8 秒,那用“第 3 分钟”对应的两条曲线就错位了。常见的处理方式是找一个共同的“事件”对齐,比如开始踩踏那一瞬间视频里的膝盖动作,与功率突然升起的那一刻,反过来校正时间偏移。找不到共同事件时,系统会承认对齐不确定,把后面所有依赖精确对应的判断降低把握。

顺带一提,即使对齐做对了,也别指望曲线完全重合。对齐之后仍然不一致的部分,才值得当作真实的冲突去处理。

各传感器的“脾气”:谁通常在什么时候出错

取舍的依据不是“哪个设备贵”,而是它在当前条件下常见的出错方式。下面这些都是公开研究和设备评测里反复出现的现象,不涉及具体产品排名。

光电心率:静息或平稳跑时通常够用,但动作剧烈、手腕晃动、表带偏松、天气很冷血管收缩时,容易出现漏拍或把步频误当心率的“锁频”。学术界对腕戴光电心率的验证研究(例如 2020 年发表于 npj Digital Medicine、JMIR mHealth and uHealth 的相关工作)都提到,运动强度越高、动作越剧烈,误差越明显;胸带式设备在多数对照中与心电图的一致性更好。

GPS:开阔环境里距离误差较小,一旦进入高楼之间、隧道、密林或高架下,定位会漂移甚至中断。公开的评测常见的说法是,城市峡谷里的距离误差可以比开阔场地大好几倍。GPS 给的速度和配速在这种环境里应当降权。

功率计:厂商标称的精度多在百分之一到百分之二之间,实际取决于安装位置(踏板、曲柄、花鼓测的是传动链不同位置的力)和是否正确归零、校准。不同设备之间读数差几个百分点并不少见,所以长期使用同一套设备的趋势,比一次绝对值更可信。

摄像头姿态:对二维投影敏感,视角不对、被车架或衣物遮挡、光线暗都会让关节点位置“猜偏”。它擅长看动作的形态变化(膝盖轨迹是否漂、躯干是否前倾),不擅长给出精确的力或强度。

把这些整理下来,可以得到一个粗糙但有用的原则:测量什么,就优先相信直接测量它的那个传感器。 输出功率,信功率计;心血管负荷,信心率(并看它的延迟和环境);动作形态,信视频;位置与配速,信 GPS,但环境差时降权。冲突往往发生在有人越界回答问题的时候,比如用心率去判断“动作是否变形”,或者用视频去推断“输出有多大”。

回到那个下午:系统会怎么处理

对着上面的示意场景,贝博体育AI的思路大致是逐步排除,而不是一步给结论:

  1. 先查时间对齐。用起踩瞬间校正后,第 3 组的心率其实比第 2 组低不多,差异缩到了误差范围以内,“心率变低”这条冲突基本消失。
  2. 再查心率读数本身是否可疑。第 3 组正好是手腕摆动最明显的一段,光电信号的置信度降低。系统不会因此认定心率是错的,只是给这段心率打上“把握较低”的标记,并且不用它去下“状态变好或变差”的判断。
  3. 看功率的一致性。功率比上一组高约一成,同时踏频没有相应变化,这和“输出真的变大了”并不矛盾;但如果功率计近期没有归零记录,系统也会保留“整体偏移”的可能。
  4. 视频只用于它擅长的部分。膝盖内扣变多是形态信号,可以提示“这一组后半段动作有点走样,可能是疲劳,也可能是拍摄角度”;它不能说明“输出大不大”。
  5. 综合后给出分级结论。比如:“功率提升和动作变形同时出现,说明这一组强度偏高,建议下一组适当降低一点;心率数据本组不确定,暂不用于调整。”

整个过程里,模型没有宣布“谁对谁错”,而是把结论分成“较有把握”和“待确认”两类,并且只让较有把握的部分影响计划。这一点在大模型与专业模型分工的语境里更好理解,贝博体育为什么需要多模型协作里讲过:负责算数据的模型给出带不确定性的结果,负责理解目标的模型再决定怎么转述,两边的责任是分开的。

数据缺失比数据冲突更常见

真实训练里,最常出现的不是三个来源互相矛盾,而是有一个来源消失了:手表没戴、功率计电量耗尽、蓝牙断了三分钟、手机被人碰倒画面没拍全。

缺失数据有几种处理方式,各有代价:

  • 直接空着:最诚实,但训练报告会有一大段“没有数据”,用户体验差。
  • 用别的来源估算:比如功率缺失时用踏频和坡度粗估,这在报告里必须标明“估算”,并且不能再拿这段估算去更新长期的功率曲线,否则会污染长期模型。
  • 用历史模式补全:比如这位训练者通常在第 3 组会下降,就假设本次也下降。这种补全最危险,因为它会把模型自己的预测当成观测,用户看到的是“看起来合理”的假数据。

比较稳妥的做法是:缺失就是缺失,估算的部分显式标注,并且不参与个人基线的更新。这样即使一次训练数据残缺,长期的判断也不会被拖偏。

什么时候应该直接问人

有些冲突靠算法解不开,问一句更快也更准。适合提问的情形通常是:几个来源冲突超出了各自误差范围,而且这个判断会影响下一次训练的强度。比如:

  • 心率异常偏高,同时天气很热、功率没变——可以问“今天是不是睡得不好,或者刚喝过咖啡”。
  • 视频显示动作明显变形,但心率和功率都平稳——可以问“刚才是不是换了握姿或调整了拍摄位置”。
  • 功率忽然整体偏高一截——可以问“是否刚换了车、换了踏板,或者做过归零”。

提问要克制:一次训练问一两个就够。问得太多,用户会直接关掉提示。同时提问不能变成推脱,即使用户没回答,系统也要能给一个保守的默认建议(降低把握,不做激进调整)。

训练提示只是基于已有数据的参考,不替代医生或专业教练的意见;出现胸闷、头晕等不适,请以自身感受为准并及时停止。

这套思路的边界

写到这里,也要讲清楚多模态不是万能的:

  • 来源多不等于更准。如果几个传感器犯的是同一种错(比如同样受到环境影响),多一个来源只是多一份同样的错,融合不会自动纠正。
  • 置信度本身也是估计。“这段心率把握较低”是模型的判断,它也可能判断错;所以系统给出的是提示和分级,不是裁决。
  • 个体差异很大。同样的心率延迟、同样的动作变形,在不同人身上意味着不同的事,长期个人数据比通用规则更可靠,但新用户在早期数据少时,模型会更保守。
  • 示意场景不代表实测结果。本文的案例用来说明取舍的顺序,具体设备的表现取决于型号、佩戴方式和使用环境,不代表任何一款设备的评测结论。

如果你想从更宽的视角看传感器组合在运动可穿戴领域的变化,可以接着读从单一手表到多传感器融合那篇观察。总的来说,贝博体育多模态AI想做的事并不复杂:让不同设备说的话在同一条时间线上被听见,让每一句话带着它应有的分量,也让“我不确定”成为一个可以正常出现的答案。