You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mediapipe Holistic时未识别Landmark仍被输出的问题咨询

解决MediaPipe Holistic未识别关键点仍输出坐标导致角度计算错误的问题

MediaPipe Holistic确实会返回全部预设数量的关键点,但未出现在画面中的关键点,其**visibility(可见性)和presence(存在性)**属性值会接近0,你可以通过这两个参数判断关键点是否被有效识别,从而避免无效的角度计算。

具体解决步骤:

  • 提取关键点时同步获取可见性值:每个Pose关键点都自带visibility和presence属性,其中visibility更适合判断关键点是否在画面中被检测到,一般取0.5作为阈值(大于0.5则认为是有效识别)。
  • 计算角度前校验关键点有效性:在执行角度计算逻辑前,先检查所有需要用到的关键点(肩膀、肘部、腕部、食指等)的visibility是否达标,只要有一个不满足,就跳过角度计算。

示例代码片段:

# 假设pose_landmarks是MediaPipe返回的Pose关键点集合
# 这里用Pose关键点索引举例:11=左肩、13=左肘、15=左腕、8=左手食指尖
required_landmark_indices = [11, 13, 15, 8]
is_all_valid = True

# 遍历校验所有需要的关键点
for idx in required_landmark_indices:
    landmark = pose_landmarks.landmark[idx]
    # 可见性阈值设为0.5,可根据实际场景调整
    if landmark.visibility < 0.5:
        is_all_valid = False
        break

if is_all_valid:
    # 所有关键点都有效,执行角度计算
    # 这里替换成你的角度计算逻辑
    calculate_arm_angles(landmark_11, landmark_13, landmark_15, landmark_8)
else:
    # 存在未识别的关键点,不执行计算或做相应提示
    print("部分手臂关键点未被识别,跳过角度计算")

补充说明:

  • 若场景光线较差或关键点部分被遮挡,可以适当降低visibility阈值(比如0.3),但不要过低,避免引入误判的无效坐标。
  • 如果你用的是手部关键点(比如食指属于Hand Landmarks),逻辑同理,每个手部关键点也有visibility属性,只需对应调整关键点索引即可。

内容的提问来源于stack exchange,提问作者user23328166

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:07:15