如何修改OpenPose代码去除视频输出中的下肢骨骼?
OpenPose 仅保留臀部及以上骨骼的修改方案
要实现仅展示臀部及以上(不含膝盖、脚踝)的骨骼,你需要同时调整BODY_PARTS字典和POSE_PAIRS列表,还要确保后续可视化逻辑只处理保留的关键点。以下是具体修改:
1. 精简BODY_PARTS字典
移除所有与膝盖、脚踝相关的条目,只保留需要检测的身体部位:
# 定义人体部位与模型输出索引的映射(仅保留臀部及以上部位) BODY_PARTS = { "Nose": 0, "Neck": 1, "RShoulder": 2, "RElbow": 3, "RWrist": 4, "LShoulder": 5, "LElbow": 6, "LWrist": 7, "RHip": 8, "LHip": 11, "REye": 14, "LEye": 15, "REar": 16, "LEar": 17, "Background": 18 }
2. 更新POSE_PAIRS连接列表
删除涉及膝盖、脚踝的连接对,只保留臀部及以上的骨骼连接:
# 定义需要绘制的骨骼连接对(仅保留臀部及以上) POSE_PAIRS = [ ["Neck", "RShoulder"], ["Neck", "LShoulder"], ["RShoulder", "RElbow"], ["RElbow", "RWrist"], ["LShoulder", "LElbow"], ["LElbow", "LWrist"], ["Neck", "RHip"], ["Neck", "LHip"], ["Neck", "Nose"], ["Nose", "REye"], ["REye", "REar"], ["Nose", "LEye"], ["LEye", "LEar"] ]
3. 额外注意事项
- 如果你的代码中有关键点过滤逻辑,要确保只保留
BODY_PARTS中定义的部位索引,避免无效数据干扰。 - 若使用OpenPose的预训练模型,无需更换模型(标准COCO模型已包含这些部位),仅通过上述过滤即可实现需求。
- 可视化时,确保绘制函数只处理
POSE_PAIRS中的连接对,不会尝试绘制已移除的部位。
内容的提问来源于stack exchange,提问作者Hannah
相关产品推荐
相关产品推荐

