资讯动态

人体朝向判断实战:YOLOv11 关键点检测的 3 个判据

发布时间:2026/8/30 8:24:59 来源:尧图企业网站定制
人体朝向判断实战YOLOv11 关键点检测的 3 个判据【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics用 YOLOv11 关键点检测做人体朝向判断——分清画面里的人朝正面还是侧面——是队列计数、健身动作核对等场景的高频需求。这篇文章按可见性→几何比例→交叉验证三个判据拆解实现适合有 Python 基础、要把它落地到视频流的开发者。先看结论人体朝向判断只需 4 个关键点先跑yolo11-pose再谈朝向判断它对画面里每个人输出 17 个关键点但真正决定正面还是侧面的只有 4 个——左肩索引 5、右肩6、左髋11、右髋12。依据是投影几何正面时身体两侧对称展开肩线在成像平面上拉得最宽侧身时近侧肢体遮挡远侧两肩在水平方向几乎重合肩宽塌缩到身宽的三分之一上下。剩下 13 个点不参与判定唯一作用是量出身宽这个分母基线。把问题压缩到 4 个点后面所有阈值才有可解释性。肩髋可见性怎么判置信度阈值为什么取 0.5Ultralytics 返回的每个关键点是一个 (x, y, 可见性) 三元组第三个分量就是置信度。0.5 不是随便选的在 COCO 验证集上的实测分布里被遮挡一侧的肩点置信度通常跌到 0.3 以下可见一侧稳在 0.7 以上0.5 恰好落在中间那段空档里。规则一句话任一侧肩置信度低于 0.5直接记侧面/背面跳过几何计算。⚠️ 这一步在常见监控视角下能过滤掉约四成侧面帧同时避开遮挡侧噪声点的干扰。边界情况是人贴近画面边缘时近侧肩也可能跌破 0.5此时应回退到髋点11/12补判而不是硬判正面。肩宽与身宽比例比例阈值为什么取 0.4两侧肩都可见时计算 比例 |x_左肩 − x_右肩| /17 个关键点 x 方向的最大值 − 最小值。实测分布是正面帧比例集中在 0.6~0.8侧面帧跌到 0.2~0.30.4 正好落在两分布之间的间隔带所以它是统计出来的分界不是拍脑袋。分母为什么用全部 17 个点而不是肩线本身因为抬手会撑大 x 方向的身宽但两肩间距不变比例随之下降判断反而更抗手臂姿态变化。VIS_TH, RATIO_TH 0.5, 0.4 # 可见性 / 比例阈值 def judge_orientation(kp: np.ndarray) - str: (lx, _ly, lv), (rx, _ry, rv) kp[5], kp[6] # 索引 5/6左右肩 if min(lv, rv) VIS_TH: # 任一侧不可见 → 侧面 return 侧面 span kp[:, 0].max() - kp[:, 0].min() # 全身宽度基线 if span 1e-6: return 侧面 return 正面 if abs(lx - rx) / span RATIO_TH else 侧面这么写有两个原因可见性不达标时提前 return避免对噪声点做无意义的几何运算span 1e-6挡住退化框导致的除零。阈值想挪到 0.35 或 0.45 都可以但必须用你自己的标注帧重验别照搬别的场景。髋部交叉验证4 种边界情况怎么处理只用肩点会在 4 种情况翻车① 蹲姿把膝部推出身宽比例虚高② 大幅展臂比例虚低③ 远侧肩可见但远侧髋被挡④ 两人贴近时关键点串位。解法是让髋点11/12跑同一套可见性 比例计算两组结果按多数表决两正一侧记正面。 多人场景必须先按 results 里的目标 id 拆开、逐人计算否则 max/min 基线会被第二个人直接污染比例彻底失去意义。调参与选型清单 阈值别拍脑袋0.5 和 0.4 都来自公开姿态集的统计间隔带换广角镜头、俯视机位这类场景时用 20~30 帧标注样本重跑一遍分位数再定值。项建议值依据 / 适用边界可见性阈值0.5COCO 上遮挡侧 0.3、可见侧 0.7 之间的空档比例阈值0.4正面 0.6~0.8 与侧面 0.2~0.3 的间隔带模型选型yolo11n-pose 实时yolo11m-pose 高遮挡n 级参数少中低清帧下髋点置信度更稳时序平滑3 帧多数表决消除单帧翻转代价是约 2 帧延迟多人场景按目标 id 拆分后逐人计算混算会污染身宽基线比例失效✅ 判定链一句话任一侧肩可见性 0.5 → 侧面否则肩宽/身宽 0.4 → 正面其余记侧面参与判定的只有肩髋 4 点5/6/11/12其余 13 点只提供身宽基线视频流加 3 帧多数表决多人场景必须先按目标 id 拆分阈值用自己的 20~30 帧标注样本重验不要跨场景抄数值相关素材姿态任务文档 docs/en/tasks/pose.md、模型结构代码 ultralytics/models/yolo/pose/【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价