一句话定义
关键点估计把检测推广到「可枚举的语义点位」(人脸 68 点、人体 17 关节),主流做法是预测每个点的高斯热图再取峰值,多人体姿态按「自上而下(先检人再估点)」或「自下而上(先估点再组人)」组织。
为什么重要
姿态是动作识别、健身计数、康复评估、虚拟主播驱动与 AR 试穿的输入层;它同时是「检测 → 关联 → 回归」三类子问题的浓缩样本,学会拆解它,就掌握了指标类任务(车道线、表格角点、OCR 检测点)的通用套路。
直观类比
热图像在图像上撒一堆萤火虫:每个真实关节位置最亮,越远越暗;预测就是找每只萤火虫的中心。自上而下像先圈出每个人再逐个数关节(人数少时又准又稳),自下而上像先把全图关节全找出来再连线成骨架(人数多时省算力)。
前置知识
kp-017(检测框架与匹配指标概念)。
核心概念
- 关键点/关节(Keypoint/Joint):预定义语义点位集合,如 COCO 17 关节。
- 热图回归(Heatmap Regression):对每个点输出一张 H×W 高斯响应图,亚像素精化取极值。
- 坐标回归(Coordinate Regression):直接输出坐标(全连接头),省后处理但精度略逊。
- 自上而下(Top-down):人体检测器 + 单人姿态网络,精度高、成本随人数线性。
- 自下而上(Bottom-up):一次预测全部关节 + 分组(部件亲和场/嵌入聚类),人多时更快。
- OKS(Object Keypoint Similarity):关键点版 IoU,按目标尺度缩放距离的容差。
- 3D 姿态:单目 2D → 3D 提升(lift)是病态问题,依赖先验或多视角。
原理与机制
热图回归把「回归一个点」变成「回归一张平滑分布」:网络输出经 sigmoid 后与以真值为中心、σ≈2 像素的高斯目标做 MSE(或焦点式变体),训练信号稠密且对少量像素误差宽容;推理对热图做 3×3 最大值邻域的二次拟合可得亚像素精度。多人场景的组织方式是速度/精度的根本权衡:自上而下的成本 ≈ 人数 × 单人网络;自下而上(OpenPose 的部件亲和场)用向量场编码「关节间的从属关系」,按场方向做二分图匹配组人。OKS 把 IoU 思想搬到点集:距离越近、目标越大(容差越大)相似度越高,AP@OKS 0.5–0.95 由此定义。
公式与模型
热图目标: H*(x, y) = exp( −[(x−x_gt)² + (y−y_gt)²] / (2σ²) )
OKS = Σ_i exp( −d_i² / (2 s² k_i²) ) · δ(v_i>0) / Σ_i δ(v_i>0)
(d_i 预测点与真值距离,s 目标尺度,k_i 每关节归一化常数,v 可见性)图示
实例与案例
健身与康复 App:手机单目做 2D 关节计数(深蹲计数看髋膝角度阈值穿越),遮挡帧用上一帧平滑。直播动作捕捉:MediaPipe 级轻量模型 30 FPS 驱动虚拟形象,工程难点是手部高频抖动的低通滤波。体育分析:多机位自下而上姿态 + 跟踪(kp-024)输出运动员轨迹与动作序列。自动驾驶的行人意图预判也用骨架随时间的变化率作为轻量特征。
# SimpleBaseline 形态:检测器给框,单人网络输出 17 张热图
boxes = detector(images) # (N, 4)
heatmaps = pose_model(crop(images, boxes)) # (N, 17, H/4, W/4)
joints = soft_argmax(heatmaps) # 亚像素峰值常见误区
- 把 2D 姿态当 3D 姿态:单目 2D 到 3D 是病态反问题,深度歧义需时序先验、多视角或 IMU 补充。
- 遮挡点直接丢弃:不可见关节的「预测 + 低可见性标记」比空白更有价值,评测 OKS 对不可见点单独降权。
- 忽略人数对成本的影响:自上而下在 10 人以上场景耗时线性爆炸,密集人群应评估自下而上。
- 用像素距离当精度:同一误差在远景与近景意义完全不同,必须用尺度归一化的 OKS/PCK 报告。
与其他知识点的关系
检测框来自 kp-017;骨架序列的时间关联是 kp-024 多目标跟踪在关键点上的延伸;人像分割(kp-019)常与姿态联合用于抠图与试穿。
自测题
- 热图回归相比直接坐标回归的优势是什么?
答案要点:监督信号稠密平滑、保留不确定性空间结构、可用亚像素拟合提精度;代价是后处理与内存。
- OKS 与 IoU 的对应关系是什么?
答案要点:都是「重合度」度量——IoU 比较面积重叠,OKS 比较归一化后的点距,目标尺度越大容差越大。
- 什么场景应选自下而上姿态?
答案要点:同帧人数多(密集人群、球赛全场)时,逐人跑网络的开销不可接受,一次预测全图关节更划算。
延伸阅读
- Cao 2017《Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》
- Xiao 2018《Simple Baselines for Human Pose Estimation and Tracking》