PoseFormerV2复现全过程笔记(从配置环境开始)

小白式教程,超详细 ,复现全过程以及出现的问题和对应解决方法。在自己电脑上复现的,非服务器复现,不过两者步骤差别不大。

论文地址 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 Prompt

2  创建环境 :输入 conda create -n poseformerv2 python=3.9  (poseformerv2为环境名,可自定义哦)

输入 y

3 激活项目环境 :输入 conda  activate poseformerv2 ,前缀变为( poseformerv2)表示激活成功。

4 安装pytorch :输入  pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.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 -r requirements.txt的绝对路径(替换为自己的路径) ,配置出现了错误。

信息显示torch相关错误,这里我们去 requirements.txt 文件中将torch相关的35,37,38用  #  号注释掉。

输入指令 pip install -r requirements.txt的绝对路径(替换为自己的路径,就可以成功啦!!!下图为我自己的路径,记得替换哦~

6 配置Pycharm。

用Pycharm打开项目文档,点击右下角 Add New Interpreter ,再点击 Add Local Interpreter...

选择 Conda Environment ,  再选择Use Existing ,再选择你anaconda安装目录下的conda.exe,j接着点击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 -c checkpoint/ --evaluate NAME_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 -c checkpoint/NAMED_PATH --evaluate best_epoch.bin

复制命令中的参数部分,即 -g 0 -k cpn_ft_h36m_dbb -frame 27 -frame-kept 3 -coeff-kept 3 -c checkpoint/NAMED_PATH --evaluate best_epoch.bin

 打开项目下的run_posrformer.py ,接着右击文件选择 More Run ,再选择 Modify Run Configuration 。

  参数 复制到 对应框内 ,再选择Apply ,最后点击运行即可开始评估啦!!!

贴一个运行截图

六 demo

下载 YOLOv3 的预训练权重文件,https://drive.usercontent.google.com/download?id=1YgA9riqm0xG2j72qhONi5oyiAxc98Y1N&export=download&confirm=t&uuid=00779c6a-2c9c-45d4-b820-1b1a9252c48f

下载 HRNet 的预训练权重文件,

https://drive.usercontent.google.com/download?id=1YLShFgDJt2Cs9goDw9BmR-UzFVgX3lc8&export=download&confirm=t&uuid=d5413c0f-40dd-4edd-899a-b59431992930

将文件保存到 ./demo/lib/checkpoint 目录中。

下载 PoseFormerV2 的权重文件27_243_45.2.bin

https://drive.usercontent.google.com/download?id=14SpqPyq9yiblCzTH5CorymKCUsXapmkg&export=download&confirm=t&uuid=25bb72f4-ee27-4cb7-8e42-58c90f289e14

放在 ./checkpoint 目录下。

将您的视频放入 ./demo/video 目录中,项目提供了视频 sample_video.mp4 。

接着打开 demo下的vis.py文件

输入 参数 --video sample_video.mp4 到对应框内,再点击Apply , OK 。

最后点击运行按钮

运行截图如下

运行结果保存在以下路径中。

其中遇见了几个问题.......

如果成功运行的可以略过。

(1)ModuleNotFoundError: 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())

(2)FileNotFoundError: [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 的相对路径替换为你自己的绝对路径

(3)FileNotFoundError: [Errno 2] No such file or directory: 'demo/lib/checkpoint/yolov3.weights'

将human_detector.py 中 --weight-file 后面对应的default路径替换成你的绝对路径

(4)IndexError: list index out of range

将vis.py 文件内的args.previous_dir 对应的路径替换为绝对路径

完结!!!撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

有什么疑问欢迎提出。

### 基于关系的知识蒸馏在人体姿态估计中的应用 #### 教师模型 PoseFormerV2 和学生模型 VideoPose3D 的特点 教师模型 PoseFormerV2 是一种先进的多模态 Transformer 架构,专门设计用于捕捉视频序列中的人体姿态变化及其时空依赖性。该模型通过引入自注意力机制有效地建模了长时间跨度内的复杂运动模式[^1]。 相比之下,VideoPose3D 则是一种较为轻量化的设计,专注于从单帧或多帧输入预测三维关节位置。尽管其架构相对简单,但在实时性和计算效率方面表现出色,非常适合边缘设备上的部署需求。 #### 结构化关系的迁移方法 为了实现从 PoseFormerV2 向 VideoPose3D 的有效知识传递,在知识蒸馏过程中可以采取以下策略: - **特征级联映射**:利用线性变换或其他适配层将 Teacher 提取的空间时间特征图转换成适合 Student 接收的形式。这一步骤旨在保持原始数据流的同时减少维度差异带来的影响。 ```python import torch.nn as nn class AdapterLayer(nn.Module): def __init__(self, input_dim, output_dim): super(AdapterLayer, self).__init__() self.fc = nn.Linear(input_dim, output_dim) def forward(self, x): return self.fc(x) ``` - **损失函数调整**:除了传统的交叉熵损失外,还可以加入额外项来衡量两者输出分布之间的相似度,比如 KL散度或均方误差(MSE),从而促使 Student 学习到更加接近 Teacher 的决策边界[^2]。 \[ L_{total} = (1-\alpha)L_{CE}(y,\hat{y})+\alpha D_{KL}\left(\frac{\exp(z/T)}{\sum_j\exp(z_j/T)},\frac{\exp(v/T)}{\sum_k\exp(v_k/T)}\right) \] - **软标签指导**:采用温度缩放技巧放松硬编码的目标概率向量,使 Student 能够接收到来自信赖区域内部更为平滑的概率分布信息,进而更好地模仿 Teacher 对样本分类的信心程度。 #### 应用实例分析 具体来说,在人体姿态估计场景下,上述方案可以通过如下方式实施: - 使用 Adapter 层连接两者的中间表示空间; - 设定合适的超参数组合(如 $\alpha$ 和 $T$),平衡不同成分的重要性; - 训练期间监控验证集表现,适时调整优化算法的学习率等设置; 最终目的是让经过精简后的 VideoPose3D 不仅能在精度上逼近原版 PoseFormerV2,而且具备更快的速度响应特性以及更低功耗优势,满足实际应用场景下的多样化要求[^3]。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昔柯的修炼日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值