关于AlphaPose关键点输出的特征提取与帧率技术问询
AlphaPose关键点输出相关技术问题解答
1. 如何基于该输出提取步频(Cadence)、步长(Stride Length)等特征?
提取这类步态特征需要分四步处理:
- 关联连续帧的同一人体
利用输出中的idx字段(人体跟踪ID),先按image_id对所有帧排序,再通过idx将同一人的关键点序列关联起来。同时过滤置信度较低的关键点(建议忽略keypoints中第三个值小于0.3的关键点)。 - 提取下肢关键点轨迹
步频、步长依赖下肢关键点,重点关注左右脚踝(对应AlphaPose的15、16号关键点,官方定义:15=左踝,16=右踝),提取每帧中这两个关键点的(x,y)坐标序列。 - 计算步频(Cadence)
步频是每分钟的步数,需先检测脚步落地时刻:观察脚踝的y坐标(垂直方向),当y值达到局部最小值(脚踝处于最低位置,对应脚落地)时记为一步。统计设定时长内的落地次数,换算为每分钟步数即可。例如10秒内检测到15次落地,步频为90步/分钟。 - 计算步长(Stride Length)
步长是同一侧脚两次落地的水平距离:- 定位同一侧脚踝(如左脚踝)连续两次落地的帧,计算两帧中脚踝的x坐标差(横向行走场景);
- 做像素到真实尺度的校准:用画面中已知真实长度的参照物(如1米标线),计算其对应的像素数得到比例系数,再将像素距离乘以系数得到真实步长。
2. 每分钟会生成多少frames?
生成的帧率由输入源和推理参数共同决定:
- 核心逻辑:AlphaPose的输出帧率取决于输入视频/图像序列的原始帧率,以及推理时是否设置了跳帧参数。
- 从你的JSON示例(文件名是3.jpg、6.jpg)来看,大概率是设置了固定间隔抽帧。计算方式:
- 确认输入原始帧率(比如原视频为30FPS);
- 查看推理时的
--frame_interval参数:若设置为N,则实际输出帧率为原始帧率/N; - 每分钟生成frames数 = 实际输出帧率 × 60。
例:原视频30FPS,设置--frame_interval 3,则每分钟输出(30/3)60=600帧;未设置跳帧则为3060=1800帧。
- 补充方法:若知道首尾帧对应的原始时间,可用总帧数除以时间差,再乘以60得到每分钟frames数。
内容的提问来源于stack exchange,提问作者Learner91
相关产品推荐
相关产品推荐

