被提醒"步频不够"之后,他的膝盖先疼了
先讲一个假设的反例。一位业余跑者,我们叫他老陈,平时配速不快,每次跑步用手机App记录。某天App弹出一条提示:你的步频偏低,建议提升到每分钟180步。老陈很认真,接下来两周,每次跑步都盯着节拍器,把步子迈得又碎又急。第二周末,他的膝盖前侧开始隐隐作痛,配速反而变慢了,心率却更高。
这个反例的问题不在于180这个数字,而在于系统把"步频"当成了一个可以孤立优化的指标。老陈原本的步幅较大,脚落在身体前方较远的位置,这的确可能是他的核心问题;但简单地要求他加快步频,并没有解决落点问题,只是把同样的落点重复得更快,每公里的着地次数增加了,膝关节承受的冲击总次数也跟着增加。更糟的是,他为了凑节拍,可能同时压缩了腾空时间,让跑步变得更像"小碎步硬撑"。
这篇文章想讨论的,是跑步AI应该怎样避开这类陷阱。我的看法是:步频只是一个结果变量,是速度、步幅、身高、训练目标共同作用之后的产物;真正值得让AI去看的,是产生步频的那些身体运动,也就是骨盆怎么动、膝关节走什么轨迹、脚在什么位置落地、身体前倾到什么程度。od体育在跑姿分析上的思路,是先把这些"原因层"的运动量测出来,再回头判断步频是否需要调整,而不是反过来。
180这个数字是怎么变成教条的
每分钟180步在跑步圈流传很广,常被当作"理想步频"。它的来源是对一批高水平长跑运动员的观察:他们在比赛配速下,步频往往落在这个附近。这是一个描述性的现象,而不是一条对所有人的处方。高水平运动员配速快,身高体型各异,训练年限长,他们的步频高,是速度快和技术成熟的结果;把这个结果倒推成"你也应该这样",就把因果关系弄反了。
一个直观的关系是:跑速等于步频乘以步幅。以同样的速度跑,可以用高步频加小步幅,也可以用低步频加大步幅,两种组合可能都合理。身高较高、腿较长的人,自然步幅更大,步频就更低;同一个人,速度变慢时步频通常只下降一点,步幅却会缩短很多;上坡和下坡的步频也不一样。所以一个只看步频的规则,遇到不同身高、不同配速、不同地形的人,一定会误伤。
更合理的做法,是把步频放进一个个体化的框架里。系统需要知道:这个人的身高和腿长,这次跑的目标配速,历史上在相近配速下的步频区间,以及这次的步频相对他自己的历史是高了还是低了。只有当步频偏离自己的稳定范围,并且同时伴随着落点过远、触地时间变长、骨盆不稳这类信号时,"提高步频"才可能是有意义的建议,而且建议的幅度应该是小步渐进的,比如比现在多一点点,观察几周,而不是一步跳到某个标准数字。
步频、步幅、配速:一个乘法里的三种取舍
把跑速拆成步频和步幅,还有一个细节容易被忽视:步幅不是"一步迈多远"这么简单。它由两部分组成,一部分是触地期间身体向前移动的距离,另一部分是腾空阶段身体飞行的距离。想让步幅变大,可以让腿往前伸,也可以在蹬伸时推动身体更有力地向前飞行。前者往往伴随脚落点在身体前方较远的位置,也就是所谓的"过度跨步",后者则需要更强的蹬伸力量。同样是步幅变大,动作质量的含义是完全相反的。
所以AI在看步幅时,不能只看数值,而要看它是怎么产生的:脚落地的位置相对髋部(或身体质心)在前方多远?触地时膝盖是接近伸直还是有缓冲的屈曲?如果落点靠前、膝盖接近伸直,步幅的"贡献"主要来自伸腿,那么它带来的制动效应和冲击可能较大;如果落点在身体下方附近,步幅变大来自蹬伸和腾空,那更可能是效率的体现。这需要在侧面机位里同时看到髋、膝、踝的相对位置以及它们随时间的变化,单靠一个"步幅数值"是回答不了的。
下面这张表,把几个常被混淆的量放在一起,方便对照。表中的说明是通用的运动力学常识,具体到个人需要用他自己的数据来判断。
| 指标 | 它反映什么 | 容易被误读的地方 |
|---|---|---|
| 步频 | 单位时间的步数,是速度与步幅共同作用的结果 | 被当成独立目标;忽略身高、配速、地形的影响 |
| 步幅 | 触地期与腾空期位移之和 | 只看长度,不看是靠伸腿还是靠蹬伸得来 |
| 触地时间 | 脚与地面接触的时长,与冲击、弹性利用有关 | 普通视频帧率下只能粗估,与鞋、路面、配速都有关 |
| 落点位置 | 脚触地时相对身体质心的前后位置 | 常被简化成"脚跟着地",其实位置比落地部位更关键 |
| 骨盆稳定 | 触地支撑期骨盆的下沉与旋转幅度 | 正面或背面机位才看得清,侧面只能看到一部分 |
脚跟、中足还是前掌?先把问题换个问法
触地方式的争论持续很多年。把落地部位分成脚跟、中足、前掌三种,是最常见的做法,也很容易被系统直接做成一个"标签",再配上一句"建议改成前掌着地"。这是另一个值得警惕的简化。跑得快的人,前掌着地的比例的确更高,这与速度有关;配速较慢的跑者,脚跟先着地是很普遍的,也是正常的。把慢跑者强行改成前掌着地,小腿和跟腱的负荷会陡增,是常见的受伤诱因。
更有诊断价值的问题是:脚落下的那一刻,脚相对身体质心在哪里?如果脚远远伸到身体前方,膝盖近乎伸直,此时无论脚跟还是前掌着地,都属于过度跨步,制动力大,冲击往往更陡;如果脚落在身体质心的正下方或稍靠前,膝盖有适度屈曲,即使是脚跟先着地,冲击的处理方式也完全不同。所以,跑姿AI更该输出的是"落点相对髋部的水平距离"以及"触地瞬间膝角"这类量,而不是简单的"脚跟型、前掌型"标签。触地部位可以作为辅助信息,但不该独立成为建议的依据。
这里的技术难点是:触地瞬间往往只有一两帧,而脚在触地前后运动很快。如果视频帧率低、快门慢,落脚那一瞬间脚掌是糊的,脚踝与足尖的关键点会跳来跳去,模型给出的"触地部位"不可靠。这种情况下,系统与其硬给一个判断,不如标注"本次视频无法可靠区分触地部位"。
骨盆与膝盖:往上看,往下看
跑步是一连串单腿支撑。每一步的支撑期,骨盆都要在冠状面上保持大致水平,在水平面上不要过度旋转。如果支撑侧对侧的骨盆明显下沉,意味着臀部外展肌群在支撑期没有足够地稳住骨盆,这时髋、膝、踝连起来看,往往能观察到膝盖向内收拢的趋势。老陈的故事里,着地次数增加而稳定骨盆的能力没变,累积的代偿就可能落到膝盖上。
但这里要如实交代观测的限制。骨盆下沉和旋转,需要从正面或背面机位才看得清楚,侧面视频里只能看到髋部前后摆动的一部分信息。背面拍摄跑者时,髋部关键点在跑动中会被上衣下摆、短裤遮挡,加上左右腿交替时相互遮挡,位置估计的误差不可忽略,这一点要在报告里如实写明,最好表述成"支撑期骨盆可能存在下沉趋势,建议正面或背面复拍确认",而不是"你的骨盆下沉了X度"。
膝关节轨迹则可以从侧面看到膝角的变化:触地时的角度、支撑期的最大屈曲、离地时的伸展程度。与深蹲不同,跑步的膝盖运动非常快,一个步态周期只有零点几秒,需要足够的帧率才能画出一条可信的曲线。另外,摆动腿的膝盖前摆高度、小腿折叠程度,也是跑姿的重要部分,但它们同样受帧率与自遮挡影响。躯干前倾则需要区分是"从踝关节开始整体前倾"还是"从腰部折叠着前倾",前者通常与效率相关,后者常伴随髋部后坐和步幅缩短。系统应该分别测量躯干与竖直方向的夹角,以及躯干与大腿的夹角,把两者放在一起看。
跑步比深蹲难拍:机位、帧率与自遮挡
相比深蹲,跑步的拍摄条件严苛得多,原因有三个。第一,人在移动,除非用跑步机,否则跑者会跑出画面;用手机固定机位,只能拍到几步。第二,动作快,每一个步态周期很短,可靠的触地识别需要更高的帧率。手机视频常见帧率是每秒30帧上下,以常见配速跑步时,一次触地大约持续零点二多秒到零点三秒的量级,也就是六七帧,前后各差一帧,触地时间的估计就会偏差百分之十几,这一点是算术上的事实。第三,腿部自遮挡严重,侧面拍摄时近端腿经过远端腿,两腿交叉的瞬间,被挡住的那条腿的膝、踝关键点几乎只能靠猜。
跑步机与户外拍摄各有取舍。跑步机上跑者停留在原地,机位固定,可以连续拍很多步,光线也稳定,适合做多步统计;但跑步机的皮带有缓冲,步态与户外并不完全一致,尤其触地方式与蹬伸的特点,与真实道路存在差别。户外拍摄环境真实,但需要一段平直、光线一致的路段,机位与跑者的距离随位置变化,透视变化大,镜头不能移动,每次只能取跑者经过画面中段的几步。两种方式都应该在报告里标出拍摄条件,因为下一次对比的前提,是条件相近。
侧面机位应与跑道垂直、大约齐髋高,尽量不变焦。这里只强调一点:跑步分析里拍摄质量决定结论上限,任何算法都读不出模糊、被截断的画面里的触地信息。
IMU补上的那一块:触地时刻与冲击
既然视频在触地识别上先天受限,一个自然的补足是惯性测量单元(IMU)。它含有加速度计和陀螺仪,采样率通常远高于普通视频帧率,佩戴在脚踝、鞋上或者腰部,可以在触地那一瞬间捕捉到一个尖锐的加速度峰,据此定出触地和离地时刻,算出触地时间与腾空时间。这类信号是"时机"的直接测量,比视频里估出来的可靠得多。
它自己的短板同样明显:IMU只知道自身的运动,不知道身体的姿态。腰部的IMU可以给出垂直方向的位移和每步的冲击,却看不出膝盖有没有内收;脚踝的IMU能定位触地,却无法告诉你落点相对身体在前方多远。因此更合适的分工是:视频负责"形",即落点位置、膝角、躯干前倾、骨盆;IMU负责"时",即触地与离地时刻、冲击强度;两者用时间戳对齐后,在触地时刻那一帧上读取视频姿态,会比单独用哪一个都更稳。
这里的难点是时间对齐:手机与可穿戴设备各自有时钟,采样率不同,还有传输延迟,简单假设"同时开始录制",经常会有几十毫秒的偏移,而一次触地总共才两百多毫秒。对齐的方法通常是在开始时设计一个共同事件,比如原地连续跳几下或用力踏一脚,在两种数据里各找到同一个冲击峰,再据此校准时钟。多传感器融合的通用原则,以及数据冲突时的处理,可以读《摄像头、手表和传感器意见不一致怎么办?od体育多模态AI正在解决运动数据融合问题》,那一篇从更一般的角度讨论了这个问题。
一份个体化的跑姿报告应该是什么样
再回到老陈,用一个模拟场景来说明。假设他在跑步机上以轻松配速跑了几分钟,侧面机位拍摄,同时佩戴了脚踝IMU。系统的输出不应该是"步频偏低,请提高到180",而是类似下面的推理:他的步频在同配速下略低于自己过去两个月的区间;触地时膝角接近伸直,落点在髋前方的距离比他历史中位数更远;IMU显示触地时的冲击峰值高于他平时;三项信号指向同一件事,即最近几次跑步中,脚落得比以前更靠前。
基于这个证据链,合理的建议是:把注意力放在"让脚更靠近身体下方落地",可以通过略微缩短步幅、小幅增加步频来实现,幅度以每分钟增加几步为宜,同时建议下次拍摄正面机位,看看骨盆是否有下沉。系统还应该说明哪些结论不确定:脚踝关键点在触地瞬间有运动模糊,触地部位这次无法可靠判断。如果他最近训练量陡增,也应该一并提示,这与冲击和疼痛的关系,可以参考《训练量越大进步越快吗?od体育AI如何识别“有效训练”和“无效堆量”》里对训练量与动作质量下滑的讨论,因为跑姿变形常常是疲劳累积的表现,而不单纯是技术问题。
这份报告有几个特点:每一条建议都有依据,依据是他自己的历史数据,而不是外部的统一标准;建议是渐进的,而不是一次性推翻;不确定的地方被明确标出。这也是od体育在产品逻辑上刻意坚持的方向:宁可少说一句,也不说一句没有证据的话。
不该交给算法的部分
最后要说清楚,跑姿分析有几类情况必须由人来判断。第一,正在疼痛。跑步中或跑后出现持续的膝前侧、胫骨、跟腱、足底疼痛,不应该指望调整步频或落地方式来"解决",应当减量或停训,并咨询医生或有资质的运动康复专业人员。第二,既往有伤病或有明显的左右差异,比如一侧曾经受过伤,这类不对称不能用普通人群的区间来评判,需要专业人员结合体检和功能测试来看。第三,青少年正处在生长发育阶段,技术与训练量的调整最好有教练指导。第四,竞技运动员的技术修改,需要把视频分析当作教练决策的输入之一,而不是替代。
户外跑步视频的背景里常有路人和车牌,本机处理时尽量不保留原始视频,存关键点和统计摘要就够做后续对比。
跑步AI最不该做的,是把一个描述性的数字变成教条;最该做的,是读懂步频背后的落点、骨盆、膝盖与前倾,再把它们放回这个人的身高、配速、目标和历史里。老陈的膝盖说明,方向对不对,比步子快不快更重要。