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