PoseFormerV2复现全过程笔记(从配置环境开始)
2026/7/19 9:48:45
网站开发
小白式教程超详细 复现全过程以及出现的问题和对应解决方法。在自己电脑上复现的非服务器复现不过两者步骤差别不大。论文地址 PoseFormerV2: Exploring Frequency Domain for Efficient and Robust 3D Human Pose Estimation | IEEE Conference Publication | IEEE Xplore项目代码地址 GitHub - QitaoZhao/PoseFormerV2: The project is an official implementation of our paper PoseFormerV2: Exploring Frequency Domain for Efficient and Robust 3D Human Pose Estimation.一 安装配置anaconda(已装的可略过)具体步骤参考 http://t.csdnimg.cn/d3Otl二 配置项目虚拟环境配置指令顺序、版本按项目文档中 READEME.md文件进行1 打开Anaconda Prompt2 创建环境 输入conda create -n poseformerv2 python3.9poseformerv2为环境名可自定义哦输入 y3 激活项目环境 输入conda activate poseformerv2,前缀变为 poseformerv2表示激活成功。4 安装pytorch 输入pip install torch1.13.0cu117 torchvision0.14.0cu117 torchaudio0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117。按照项目给出的配置指令我这出现了错误安装成功的可以直接跳转下一步 5 配置 requirements.txt 文件。满江红啊主要原因是超时不过没关系不走指令下载我们直接下载原文件再安装也是可以的 。此处有两种下载方式。1点击配置界面的提供的下载网址直接下载到本地2或者点击 https://download.pytorch.org/whl/torch_stable.html 选择需要的版本号下载到本地配置过程中有版本号信息。下载过程有点漫长~ 下载好后输入pip install此处替换为你自己文件的绝对路径torchvision torchaudio安装成功哈哈5 配置 requirements.txt 文件位置在项目代码文档里。直接输入指令pip install -rrequirements.txt的绝对路径替换为自己的路径 配置出现了错误。信息显示torch相关错误这里我们去requirements.txt文件中将torch相关的35,37,38用#号注释掉。输入指令pip install -rrequirements.txt的绝对路径替换为自己的路径就可以成功啦下图为我自己的路径记得替换哦~6 配置Pycharm。用Pycharm打开项目文档点击右下角 Add New Interpreter 再点击 Add Local Interpreter...选择 Conda Environment , 再选择Use Existing 再选择你anaconda安装目录下的conda.exej接着点击Load Environment 接着你创建的项目的环境最后点击OK就完成啦核对一下项目界面右下角信息到这就配置完成啦庆祝如果在配置中报错Conda executable is not found请找到anaconda的安装目录双击conda.exe然后再复制conda.exe的地址到文件查找框里再点击Load Environments最后点击OK即可激活成功三 数据集下载下载数据集 并保存到项目文挡中data自己创建目录下。直接下载文件data_2d_h36m_gt.npz data_2d_h36m_cpn_ft_h36m_dbb.npz data_3d_h36m.npz或者自行复制下载地址链接https://pan.baidu.com/s/1ejE8THv_0IkXtiYRul0hPw提取码q03p四 开始训练1这里最简单的方法是直接在README.md文件中点击运行按钮执行训练命令就可以啦在我电脑上一个epoch大概18分钟全程默认200个epoch。2第二种方法第一种无问题的话这个可略过复制README.md中的训练运行参数-g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -c checkpoint/NAMED_PATH打开项目下的run_posrformer.py 接着右击文件选择 More Run ,再选择 Modify Run Configuration 。将-g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -c checkpoint/NAMED_PATH复制到 对应框内 再选择Apply ,最后点击OK就完成啦最后点击运行即可开始训练啦五 评估在README.md中可以获得评估指令python run_poseformer.py -g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -ccheckpoint/--evaluateNAME_ckpt.bin其中需要将checkpoint/替换为你要评估文件所在的路径NAME_ckpt.bin替换为你要评估文件的名字。这里我要评估 best_epoch.bin 文件因此命令应该为python run_poseformer.py -g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -ccheckpoint/NAMED_PATH--evaluatebest_epoch.bin复制命令中的参数部分即-g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -ccheckpoint/NAMED_PATH--evaluatebest_epoch.bin打开项目下的run_posrformer.py 接着右击文件选择 More Run ,再选择 Modify Run Configuration 。将参数复制到 对应框内 再选择Apply ,最后点击运行即可开始评估啦贴一个运行截图六 demo下载 YOLOv3 的预训练权重文件https://drive.usercontent.google.com/download?id1YgA9riqm0xG2j72qhONi5oyiAxc98Y1Nexportdownloadconfirmtuuid00779c6a-2c9c-45d4-b820-1b1a9252c48f下载 HRNet 的预训练权重文件https://drive.usercontent.google.com/download?id1YLShFgDJt2Cs9goDw9BmR-UzFVgX3lc8exportdownloadconfirmtuuidd5413c0f-40dd-4edd-899a-b59431992930将文件保存到 ./demo/lib/checkpoint 目录中。下载 PoseFormerV2 的权重文件27_243_45.2.binhttps://drive.usercontent.google.com/download?id14SpqPyq9yiblCzTH5CorymKCUsXapmkgexportdownloadconfirmtuuid25bb72f4-ee27-4cb7-8e42-58c90f289e14放在 ./checkpoint 目录下。将您的视频放入 ./demo/video 目录中项目提供了视频 sample_video.mp4 。接着打开 demo下的vis.py文件输入 参数 --video sample_video.mp4 到对应框内再点击Apply , OK 。最后点击运行按钮运行截图如下运行结果保存在以下路径中。其中遇见了几个问题.......如果成功运行的可以略过。1ModuleNotFoundError: No module named common在 vis.py文件中加入 以下代码import sys, os base_path os.path.dirname(os.path.dirname( os.path.abspath(__file__))) sys.path.append(base_path) print(os.getcwd())2FileNotFoundError: [Errno 2] No such file or directory: demo/lib/hrnet/experiments/w48_384x288_adam_lr1e-3.yaml将gen_kpts.py z文件中的 cfg_dir 与model_dir 的相对路径替换为你自己的绝对路径3FileNotFoundError: [Errno 2] No such file or directory: demo/lib/checkpoint/yolov3.weights将human_detector.py 中 --weight-file 后面对应的default路径替换成你的绝对路径4IndexError: list index out of range将vis.py 文件内的args.previous_dir 对应的路径替换为绝对路径完结撒花*★,°*:.☆(▽)/$:*.°★* 。有什么疑问欢迎提出。