从零开始:open-mmlab/mmpose环境配置与实战指南 1. 环境准备从零搭建MMPose开发环境第一次接触MMPose时我也被各种依赖项搞得头晕眼花。经过多次实践我总结出一套最稳定的安装方案。首先需要明确的是MMPose作为OpenMMLab生态中的重要成员对PyTorch和CUDA版本有严格要求。建议使用PyTorch 1.8和CUDA 11.x的组合这个版本区间兼容性最好。我习惯用Anaconda管理环境这样可以避免污染系统Python环境。新建环境时特别要注意Python版本不能太高3.7-3.9是最佳选择。以下是创建环境的完整命令conda create -n mmpose python3.8 -y conda activate mmpose conda install pytorch1.12.1 torchvision0.13.1 cudatoolkit11.3 -c pytorch安装完PyTorch后需要先安装mmcv-full而不是直接安装MMPose。这里有个坑我踩过多次必须通过官方指定链接安装对应版本的mmcv-full。比如我的环境是CUDA 11.3PyTorch 1.12就应该使用这个命令pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.12.0/index.html验证安装是否成功可以运行python -c import mmcv; print(mmcv.__version__)。如果报错说缺少某些模块很可能是编译时缺少系统依赖在Ubuntu上需要先安装sudo apt-get install build-essential。2. 安装MMPose核心组件从GitHub克隆仓库时建议使用--depth1参数加快下载速度。进入项目目录后别急着安装requirements.txt我建议先手动安装几个容易出问题的包git clone https://github.com/open-mmlab/mmpose.git --depth1 cd mmpose pip install cython numpy opencv-python遇到poseval安装失败的问题时可以尝试我的解决方案先安装git-lfs用于大文件管理然后直接从源码安装git lfs install git clone https://github.com/svenkreiss/poseval.git cd poseval pip install -e .最后执行完整安装命令时建议添加--no-cache-dir避免使用旧缓存pip install -r requirements.txt --no-cache-dir pip install -v -e . # 可编辑模式安装3. 可选组件MMDetection集成虽然MMPose可以单独使用但结合MMDetection才能发挥最大价值。安装时要注意版本匹配问题我推荐使用MMDetection 2.25.1这个稳定版本pip install mmdet2.25.1验证安装时可以运行简单检测from mmdet.apis import init_detector print(MMDetection导入成功)有个实用技巧如果网络环境不稳定可以在pip命令后添加-i https://pypi.tuna.tsinghua.edu.cn/simple使用国内镜像源。4. 人体姿态估计实战4.1 单张图片预测准备好测试图片后使用以下命令进行预测假设图片名为test.jpgpython demo/top_down_img_demo_with_mmdet.py \ demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py \ https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \ configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_256x192.py \ https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \ --img-root ./ \ --img test.jpg \ --out-img-root ./output第一次运行会自动下载预训练模型建议提前准备好模型文件放到~/.cache/torch/hub/checkpoints目录下。4.2 视频流处理处理视频时需要特别注意帧率设置默认配置可能不适合所有视频。我通常添加--fps-threshold参数控制处理速度python demo/top_down_video_demo_with_mmdet.py \ demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py \ https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \ configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_256x192.py \ https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \ --video-path input.mp4 \ --out-video-root ./output \ --fps-threshold 155. 常见问题排查遇到RuntimeError: CUDA out of memory时可以尝试以下解决方案减小测试图片分辨率在命令后添加--device cpu改用CPU运行修改config文件中的test_batch_size当出现KeyError: pose_kernel_size等配置错误时通常是版本不匹配导致的。建议检查mmcv、mmdet、mmpose的版本兼容性查看官方发布的版本组合表删除~/.cache/torch下的缓存文件我在实际项目中发现使用Docker容器可以避免大部分环境问题。官方提供的预构建镜像包含了所有依赖docker pull openmmlab/mmpose:latest docker run -it --gpus all -v $(pwd):/workspace openmmlab/mmpose:latest