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

MMPose Inferencer处理MP4视频报错无输出问题求助

问题

尝试使用MMPose检测视频中人物的3D空间关键点,所用代码此前在2D场景下可正常运行:

from mmpose.apis import MMPoseInferencer
from pathlib import Path
import os

data_folder = Path("x/videos")
for filename in os.listdir(data_folder):
    if not filename.endswith('.mp4'):
        continue
    img_path = os.path.join(data_folder, filename)

    inferencer = MMPoseInferencer(pose3d="human3d")

    result_generator = inferencer(img_path, out_dir='output')

当尝试访问result_generator(如执行results = [result for result in result_generator])时会出现段错误,推测result_generator为空导致;同时output文件夹为空,未生成可视化结果和数据,请问存在哪些明显错误?

明显错误分析

  • 重复初始化推理器:循环的每次迭代都重新创建MMPoseInferencer实例,既浪费计算资源,也可能引发内部状态冲突。应将推理器初始化代码移到循环外部。
  • 3D姿态推理配置不完整:仅指定pose3d="human3d"无法完成3D姿态估计——3D任务必须依赖对应的2D检测模型与3D回归模型的完整管线。正确做法是补充2D模型配置,例如使用MMPoseInferencer(pose2d='human', pose3d='human3d'),确保2D关键点检测与3D姿态回归的流程完整。
  • 未触发实际推理流程:inferencer()返回的是生成器对象,只有迭代该对象时才会启动推理。原代码仅生成生成器却未立即处理,加上配置问题,导致生成器为空或内部执行出错。此外需确认视频处理依赖(如OpenCV)正常,且输入视频路径无误。
  • 路径处理方式混乱:混用Path对象与os.path.join,易引发路径拼接错误。可统一使用Path类的路径拼接方式,例如img_path = data_folder / filename。
  • 输出目录无区分(潜在问题):所有视频输出到同一output目录,可能导致文件覆盖,建议为每个视频创建独立子目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:12:32