pycharm相关错误及解决(三)——Lite-HRNet


本文是针对于Lite-HRNet模型在mpii_test数据集上的测试(通过pycharm连接远程服务器进行测试)

地址映射:/data/zhangyy/PoseEstimation/Lite——E:\postgraduate\PPT\code\Lite\Lite-HRNet-hrnet

代码GitHub地址:https://github.com/HRNet/Lite-HRNet

一、配置过程

大致过程参考GitHub的说明。

1.安装mmcv

(1)查询cudatorch版本,如下图所示。

(2)然后进入NewPytorch环境下,通过如下命令安装

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html

注:红色部分要根据自己的环境进行替换。

 

2.安装所需环境

命令:pip install -r requirements.txt https://pypi.mirrors.ustc.edu.cn/simple

如果报错不成功的话,如下图所示:

那么可以尝试下列命令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn -r requirements.txt

3.测试

命令:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints/litehrnet30_mpii_256x256-faae8bd8_20210622.pth --out /data/zhangyy/PoseEstimation/Lite/result/out.pkl --eval PCKh

注:测试命令很重要,之后的“问题解决”很多都是由于测试命令不正确引起的。

 

 

二、问题及解决

1.由于测试命令不正确引起的问题

最初错误的测试命令:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints --out /data/zhangyy/PoseEstimation/Lite/result --eval /data/zhangyy/PoseEstimation/Lite/eval

最终正确的测试命令:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints/litehrnet30_mpii_256x256-faae8bd8_20210622.pth --out /data/zhangyy/PoseEstimation/Lite/result/out.pkl --eval PCKh

(1)问题:

FileNotFoundError: /data/zhangyy/PoseEstimation/Lite/checkpoints can not be found.

具体如下图所示:

原因:

虽然新建了一个checkpoints文件夹,但是里面没有.pth文件(litehrnet_30_mpii_256x256.pth

解决:

mmpose项目(https://github.com/open-mmlab/mmpose)中的modelzoo里面,如下图所示:

下载对应的权重模型https://mmpose.readthedocs.io/en/latest/papers/backbones.html#litehrnet-cvpr-2021),

 

这里下载如下图所示的模型(即,litehrnet_30_mpii_256x256.pth):

下载完成之后放在新建的checkpoints文件夹下即可。

 之后的测试命令改成如下:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints/litehrnet30_mpii_256x256-faae8bd8_20210622.pth --out=/data/zhangyy/PoseEstimation/Lite/result/out.pkl --eval=/data/zhangyy/PoseEstimation/Lite/eval(仍旧不完整)

 (2)问题:

raise TypeError(f'Unsupported format: {file_format}')

TypeError: Unsupported format: /data/zhangyy/PoseEstimation/Lite/result

具体如下图所示:

原因:

输出文件格式不对

解决:

测试命令修改如下:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints/litehrnet30_mpii_256x256-faae8bd8_20210622.pth --out=/data/zhangyy/PoseEstimation/Lite/result/out.pkl --eval=/data/zhangyy/PoseEstimation/Lite/eval(仍旧不完整)

(3)问题:

raise KeyError(f'metric {metric} is not supported')

KeyError: 'metric /data/zhangyy/PoseEstimation/Lite/eval is not supported'

具体如下图所示:

原因:

mpii数据集的评价指标没有给出

解决:

测试命令修改如下:

python tools/test.py /data/zhangyy/PoseEstimation/Lite/configs/top_down/lite_hrnet/mpii/litehrnet_30_mpii_256x256.py /data/zhangyy/PoseEstimation/Lite/checkpoints/litehrnet30_mpii_256x256-faae8bd8_20210622.pth --out /data/zhangyy/PoseEstimation/Lite/result/out.pkl --eval PCKh

 

2.由于某个模块或者包缺失导致的问题

(1)问题:

ModuleNotFoundError: No module named 'models'

具体如下图所示:

原因:

导入路径不正确

解决:

在导入前加入

import sys
sys.path.append("/data/zhangyy/PoseEstimation/Lite")

 

 (2)问题:

FileNotFoundError: TopDownMpiiDataset: file "/data/zhangyy/PoseEstimation/Lite/configs/_base_/datasets/mpii.py" does not exist

具体如下图所示:

原因:

文件缺失

解决:

mmpose config 下复制个__base__(https://github.com/open-mmlab/mmpose/tree/master/configs/_base_/)粘贴到缺失的位置即可。

 

3.由于版本导致的问题

(1)问题:

cannot import name '_registerMatType' from 'cv2.cv2'

具体如下图所示:

原因:

opencv版本太低
‘_registerMatType’ 在4.5.4 之后版本才出现

解决:

pip uninstall opencv-python-headless,再 pip install opencv-python-headless

之后还是不行;

pip uninstall opencv_python以及pip uninstall opencv_contrib_python,再pip install opencv_contrib_python以及pip intsall opencv_python。

注:这里不知道为什么,先后顺序也很重要。

(2)问题:

 

cannot import name 'bmat' from 'scipy.sparse.sputils'

具体如下图所示:

 

 

原因:

 

scipy版本不匹配

解决:

 

pip uninstall scipy,再 pip3 install scipy;

后面可能还要更新numpy版本:pip install --upgrade numpy。

 

注:不知道为什么,这里 pip install scipy会报错(先是网络问题,然后找不到对应版本)。

 

4.其它原因导致的问题

(1)问题:

如下图红色波浪线:

this inception detects names that should resolve but don't

解决:

  • 重新导入项目红色波浪线就没有了;
  • 虽然是红色波浪线,但是可以运行一下,如果不报错就算了;
  • 如果报错,则类比如下:
1 sys.path.append('/data/zhangyy/PoseEstimation/simple-HRNet-master/datasets')
2 from HumanPoseEstimation import HumanPoseEstimationDataset as Dataset

 

 

(2)问题:

KeyError: 'LiteHRNet is already registered in models'

具体如下图所示:

原因:

这里暂时不知道是什么原因

 

解决:

将models/backbones/litehrnet.py中的@BACKBONES.register_module()

改为@BACKBONES.register_module(force=True)

(3)问题:

uv_error = pos_pred_src - pos_gt_src

ValueError: operands could not be broadcast together with shapes (16,2,29116) (16,2,2958)

具体如下图所示:

原因:

标注文件的名称不对,导致测试的是mpii的训练集。

原标注文件的名称如下图所示:

解决:

按照GitHubLite-HRNet官方给出的数据集标注名称,如下图所示:

 

 

 四、测试结果

1.最后测试的结果

如下:

[('Head', 96.21418826739426), ('Shoulder', 94.70108695652173), ('Elbow', 86.80759916424765), ('Wrist', 80.64131572076107), ('Hip', 86.82708146959189), ('Knee', 81.74476235946753), ('Ankle', 77.06620389429422), ('PCKh', 8
6.91647150663545), ('PCKh@0.1', 27.067395349855445)])

具体含义可参考:https://github.com/open-mmlab/mmpose/blob/master/mmpose/datasets/datasets/top_down/topdown_mpii_dataset.py

2.关于输出的out.pkl文件

关于.pkl文件的说明:

(1)python中有一种存储方式,可以存储为.pkl文件。

(2)该存储方式,可以将python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来

可以通过以下方式读取out.pkl文件:

1 import pprint, pickle
2 
3 pkl_file = open('/data/zhangyy/PoseEstimation/Lite/result/out.pkl', 'rb')
4  
5 data1 = pickle.load(pkl_file)
6 pprint.pprint(data1)
7  
8 pkl_file.close()

输出结果部分如下图所示:

                                                                                                                                                         

之后就是'bbox_ids': [1],格式同上图。

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM