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

Pose姿态估计应用中PoseModule的findAngle方法报ValueError求助

解决PoseModule中findAngle的ValueError问题

问题核心

报错ValueError: too many values to unpack (expected 2)出现在findAngle方法的x1, y1 = self.lmList[p1][1:3]行,说明self.lmList[p1][1:3]返回的元素数量不等于2,导致无法解包成x和y两个变量。

具体解决思路

  • 排查self.lmList的实际结构
    在PoseModule.py的findAngle方法中,第97行(获取关键点的注释下方)添加打印代码,查看目标切片的内容:

    # 在第97行后添加调试代码
    print("Debug Info:", self.lmList[p1][1:3])
    

    运行后观察输出,比如若输出是[x, y, confidence],说明切片范围错误,需调整为只取x和y对应的索引;若输出是其他多元素结构,根据实际内容修改解包逻辑。

  • 确认self.lmList是否被正确更新
    检查findPosition方法的实现:它是否将计算得到的关键点列表赋值给了self.lmList?比如方法内需要有self.lmList = 计算后的关键点列表这类代码。如果findPosition仅返回列表但未更新实例变量,self.lmList可能是旧数据或空值,结构不符合预期。

  • 修正解包逻辑
    如果打印发现切片返回元素数量超过2,直接指定索引解包而非使用切片:

    # 替换原第98-100行代码
    x1, y1 = self.lmList[p1][1], self.lmList[p1][2]
    x2, y2 = self.lmList[p2][1], self.lmList[p2][2]
    x3, y3 = self.lmList[p3][1], self.lmList[p3][2]
    

    若实际关键点的x、y对应其他索引,比如索引0和1,再对应调整数字即可。

  • 验证关键点索引有效性
    确认传入的11、13、15是否为所用姿态模型(如PoseNet、MediaPipe Pose)支持的关键点索引,确保这些索引在self.lmList中存在对应元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:15:11