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

MediaPipe坐姿检测报错:'NoneType'无landmark属性及视频警告

问题解决方案

一、TensorFlow Lite 警告处理

这类警告大多是MediaPipe依赖的TFLite版本和你本地环境版本不匹配,或是TFLite默认日志级别过高导致的,按以下步骤处理:

  • 在代码开头加入日志抑制代码,直接屏蔽无关警告:
    import tensorflow as tf
    tf.get_logger().setLevel('ERROR')
    
  • 若警告仍存在,卸载现有版本后重新安装兼容的MediaPipe和TensorFlow组合,比如:
    pip uninstall mediapipe tensorflow -y
    pip install mediapipe==0.10.0 tensorflow==2.15.0
    

二、摄像头模式下的AttributeError('NoneType'对象没有'landmark'属性)

这个错误是因为MediaPipe姿态检测模型没捕捉到人体,返回了None,你直接访问results.pose_landmarks.landmark就会报错,解决方法如下:

  1. 强制添加空值判断:在处理姿态关键点前先检查检测结果是否有效,修改核心逻辑:
    # 原检测代码
    results = pose.process(image)
    # 修改为带判断的版本
    if results.pose_landmarks:
        landmarks = results.pose_landmarks.landmark
        # 把你原本的坐姿计算、绘图逻辑放在这里
    else:
        # 可选:在画面上提示未检测到人体
        cv2.putText(image, "未检测到人体", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2)
    
  2. 调整检测阈值:降低Pose初始化时的置信度阈值,避免因检测标准过严导致漏检:
    pose = mp.solutions.pose.Pose(
        min_detection_confidence=0.5,
        min_tracking_confidence=0.5)
    
  3. 优化拍摄环境:保证摄像头前光线充足,人体在画面中占比不小于1/3,避免侧身或过度遮挡身体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:12:34