解决 mediapipeTypeError: __init__() got an unexpected keyword argument 'upper_body_only' 错误

这个错误提示是因为 mp_pose.Pose 没有 'upper_body_only' 这个参数。可能是因为 mediapipe 库版本更新导致的。

解决方法:

  1. 使用旧版本的 mediapipe 库: 如果您需要使用 'upper_body_only' 参数,可以尝试使用旧版本的 mediapipe 库。您可以使用 pip install mediapipe==[版本号] 安装特定版本的 mediapipe
  2. 使用其他方式实现所需功能: 您可以使用其他方法实现您需要的功能,例如:
    • 使用 mp_pose.PoseLandmark 类获取所有身体关键点,然后根据需要选择上半身的关键点。
    • 使用其他库实现人体姿态识别功能。

示例代码:

import mediapipe as mp

# 初始化 pose tracker
pose_tracker = mp.solutions.pose.Pose()

# 获取所有身体关键点
landmarks = pose_tracker.process(image).pose_landmarks

# 选择上半身关键点
for landmark in landmarks.landmark:
    if landmark.visibility > 0.5 and landmark.part in [mp.solutions.pose.PoseLandmark.NOSE, mp.solutions.pose.PoseLandmark.LEFT_SHOULDER, mp.solutions.pose.PoseLandmark.RIGHT_SHOULDER, mp.solutions.pose.PoseLandmark.LEFT_ELBOW, mp.solutions.pose.PoseLandmark.RIGHT_ELBOW, mp.solutions.pose.PoseLandmark.LEFT_WRIST, mp.solutions.pose.PoseLandmark.RIGHT_WRIST, mp.solutions.pose.PoseLandmark.LEFT_HIP, mp.solutions.pose.PoseLandmark.RIGHT_HIP, mp.solutions.pose.PoseLandmark.LEFT_KNEE, mp.solutions.pose.PoseLandmark.RIGHT_KNEE, mp.solutions.pose.PoseLandmark.LEFT_ANKLE, mp.solutions.pose.PoseLandmark.RIGHT_ANKLE]:
        print(landmark.part, landmark.x, landmark.y, landmark.z)

注意:

  • 如果您可以使用新版本的 mediapipe,建议您不要使用 'upper_body_only' 参数,因为它可能在未来的版本中被移除。
  • 您也可以参考 mediapipe 的官方文档了解更多信息。
解决 `mediapipe` 中 `TypeError: __init__() got an unexpected keyword argument 'upper_body_only'` 错误

原文地址: https://www.cveoy.top/t/topic/j88a 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录