在mpii数据集上对HRNet人体姿态网络重新训练,但只想保存16个关键点的其中14个,怎么修改代码把其中两个去掉
时间: 2024-03-22 19:42:48 浏览: 107
如果你想要在 HRNet 人体姿态网络上重新训练 MPII 数据集,并且只保留其中的 16 个关键点中的 14 个,你可以按照以下步骤进行修改:
1. 打开 `hrnet/cfgs/dataset/mpii.py` 文件,找到 `num_joints` 参数的定义位置,将其修改为 14。
2. 打开 `hrnet/cfgs/models/hrnet/mpii/hrnet_w32_mpii_256x256.py` 文件,找到 `num_joints` 参数的定义位置,将其修改为 14。
3. 打开 `hrnet/lib/datasets/mpii_dataset.py` 文件,找到 `self.joints` 列表的定义位置,将其中两个不需要的关键点移除。
4. 打开 `hrnet/lib/models/pose_hrnet.py` 文件,找到 `self.final_layer` 层的定义位置,将其中的 `out_channels` 参数修改为 14。
5. 执行训练命令,如下所示:
```
python tools/train.py --cfg experiments/mpii/hrnet/w32_256x256_adam_lr1e-3.yaml
```
这样就可以在 HRNet 人体姿态网络上重新训练 MPII 数据集,并且只保留其中的 16 个关键点中的 14 个了。
相关问题
HRNet 在mpii数据集上能识别出16个关键点,用预训练好的HRNet 网络去测试自定义关键点,但只想得到其中14个关键点,怎么把多余的两个关键点去掉
如果你只需要其中14个关键点,可以在训练模型时将这两个关键点的标注数据去掉。如果你已经训练好了模型,可以通过修改模型的输出层来实现只输出14个关键点的坐标。具体来说,你需要修改模型输出层的大小,使其只输出14个关键点的坐标,并且在训练数据和测试数据中也只保留14个关键点的标注数据。如果你使用的是现成的预训练模型,可以尝试修改模型的配置文件或者代码,以适应你的需要。
HRNet网络在mpii 数据集上能识别出16个关键点,我想用预训练好的网络去测试自定义数据集,在只想输出其中14个关键点,需要重新训练模型吗?不重新训练的话该如何改代码
如果你想使用预训练的HRNet网络去测试自定义数据集,并只想输出其中14个关键点,你可以通过修改代码来实现。具体来说,你需要修改模型输出层的大小,使其只输出14个关键点的坐标,并且在测试数据中也只保留14个关键点的标注数据。以下是一些可能需要修改的代码:
1. 修改输出层的大小,例如:
```python
model = HRNet(num_classes=14)
```
这会将输出层的大小设置为14。
2. 修改测试数据的标注数据,例如:
```python
test_dataset = CustomDataset(test_data_path, test_label_path, num_keypoints=14)
```
这会将测试数据的标注数据设置为14个关键点。
3. 修改评估指标,例如:
```python
eval_metrics = {'MAE': MAE(num_keypoints=14), 'PA': PA(num_keypoints=14)}
```
这会将评估指标设置为只考虑14个关键点。
需要注意的是,这种修改可能会对模型的表现产生一定的影响,因此最好还是重新训练模型。
阅读全文