pycharm相關錯誤及解決(一)——AlphaPose


(一)AlphaPose

 

1.項目介紹

項目GitHub地址:GitHub - Amanbhandula/AlphaPose: AlphaPose Implementation in Pytorch along with the pre-trained wights

注:這只是AlphaPose項目的簡化版本,原版地址為:GitHub - MVIG-SJTU/AlphaPose: Real-Time and Accurate Full-Body Multi-Person Pose Estimation&Tracking System,這里以簡化版本為例說明。

背景本機操作系統為win 10,通過win 10上的pycharm遠程連接Linux服務器運行該項目。由於本機上沒有攝像頭,所以只測試了圖片和視頻,沒有測試攝像頭(如果想測試攝像頭可以參考文末視頻)。

 

2.環境介紹

(1)cuda 10.2(參考視頻推薦10.1)

查看cuda版本:

import torch
print(torch.version.cuda)

 

(2)cudnn 7.6.5(參考視頻推薦7.6)

查看cudnn版本:

import torch
print(torch.backends.cudnn.version())    # 輸出7605對應版本為7.6.5

 

(3)pytorch (參考視頻推薦cuda 10.1對應的版本,選定了pytorch版本(4)和(5)也就安裝好了)

(4)torch 1.10.0 (參考視頻推薦1.7.1)

查看torch版本:

import torch
torch.__version__     # 注意這里是雙下划線

 

(5)torchvision 0.11.1 (參考視頻推薦0.8.2)

查看torchvision版本:

import torchvision
torchvision.__version__   # 注意這里是雙下划線

 

 

 

結果如圖1所示:

 

圖1

 

(6)python 3.8

 

3.pycharm配置AlphaPose環境

參考:https://blog.csdn.net/weixin_42419611/article/details/115797628

 

 

 

4.下載模型

參考文末視頻鏈接P13

 

5.依賴項

可以直接用pip命令運行requirements.txt文件來安裝依賴項,但是不知道為什么我的pip命令運行不起來,只能手動下載requirements.txt中的包(手動下載方法如下),然后再通過Xftp拉到Linux服務器上,放到/data/z*y/anacoda3/envs/NewPytorch/lib/python3.8/site-packages目錄下即可(這個目錄在之后用到很多次,主要是包的問題)。但是要注意!把下載好的包解壓縮后拉到Linux服務器時,要將名字改為和requirements.txt文件中的名字一樣,否則運行的時候還會找不到包。

手動下載依賴項的兩種方法:

(1)在這個地址下載所需要的包:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/

 

下載時,在上面這個鏈接后面直接添加所需要的包名,如要下載visdom這個包:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/visdom

(2)在GitHub中查找要下載的包名進行下載

附:使用pip時所報的錯誤,即使按照網上所說換成如下豆瓣源也不行

pip install visdom -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

Looking in indexes: http://pypi.douban.com/simple/
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPConnection object at 0x7f46159fcac0>: Failed to establish a new connection: [Errno -2] 未知的名稱或服務')': /simple/visdom/

total一直從4到0,運行不成功。

 

6.問題及解決

(1)問題:

from scipy.__config__ import show as show_config
ModuleNotFoundError: No module named 'scipy.__config__'

原因:scipy和numpy版本不兼容,scipy版本太高,沒有scipy.__config_(可以去Linux服務器中/data/z*y/anacoda3/envs/NewPytorch/lib/python3.8/site-packages目錄下看看scipy文件夾中是否有這個文件)

解決:降低scipy版本(我這里下載的是1.3.2),重新手動下載。

另外,可以通過pip show numpy查看numpy版本,我這里是1.21.2。

(2)問題:AttributeError: module 'cv2' has no attribute 'VideoWriter_fourcc'

原因:opencv3.0中才有這個函數

解決:刪除之前的opencv包,重新手動下載opencv_contrib_python-3.4.11.39-cp38-cp38-manylinux2014_x86_64.whl和opencv_python-3.4.11.39-cp38-cp38-manylinux2014_x86_64.whl

(3)問題:AssertionError: Cannot capture source

原因:沒有找到源

解決:在README.txt中找到這一行參數(圖2)復制到指定位置(圖4中所示位置)即可。

 

 

 

圖2

注:A、如果是測試視頻,復制圖2中這行參數;如果測試圖片,復制圖2中上面那一行參數。

    B、如果是測試視頻,${path to video}改為測試視頻所在的目錄(要絕對路徑,否則會出問題),具體到視頻的名字;如果測試圖片,${img_directory}改為測試圖片所在的目錄(這里不用絕對路徑,/examples/demo即可),而不用具體到圖片名字(因為將其當作list處理了)。

    C、不管是測試視頻還是圖片,后面的--outdir之后的路徑都要改為絕對路徑,否則最后處理之后的圖片不能被保存。

打開Edit Configuarions,如圖3所示。

 

 

 

圖3

將圖2中復制的參數粘貼到圖4位置即可。

 

 

圖4

注:A、如果測試圖片,左側選中demo;如果測試視頻,左側選中video_demo。

    B、測試視頻--video /data/z**y/PoseEstimation/AlphaPose/examples/testvideo/1.mp4 --outdir examples/resvideo/ --save_video --sp

       測試圖片--indir examples/demo --outdir /data/z**y/PoseEstimation/AlphaPose/examples/resimg --save_img --vis --sp

(4)問題:測試圖片時,

data_loader = ImageLoader(im_names, batchSize=args.detbatch, format='yolo').start()
NameError: name 'im_names' is not defined

具體如圖5所示:

 

 

 

圖5

 

 

 

原因:無法獲取輸入圖像的名字,可能參數沒有配置好

解決:如圖4所示。

(5)問題:TypeError: 'module' object is not callable

定位到demo.py第72行:im_names_desc =tqdm(range(data_len))

原因:https://blog.csdn.net/coding_zhang/article/details/89403135

解決:將該行改為:im_names_desc = tqdm.tqdm(range(data_len))

(6)問題:[W CudaIPCTypes.cpp:15] Producer process has been terminated before all shared CUDA tensors released. See Note [Sharing CUDA tensors]

具體如圖6所示:

 

 

圖6 

解決:圖4中的parameter最后要加上--sp,單線程。

(7)問題:最后沒有報錯,但是也沒有生成處理之后的圖片或者視頻,或者是運行后的圖像或視頻未被保存。

原因:A、保存路徑不是絕對路徑

    B、沒有指定要保存圖片或視頻

    C、測試圖像時,參數沒有加--vis,所以圖像無法實時顯示;測試視頻時,視頻本身就無法實時顯示,只能通過保存的文件查看。

解決:A、參考問題(3)的注

    B、圖4中的parameter最后要加上--save_img(保存圖像)或者--save_video(保存視頻)

    C、測試圖像時,圖4中的parameter最后要加上--vis(圖像可見)

如果還未解決,見問題(8)。

另外,可以參考opt.py文件,里面對參數都有詳細說明,如圖7所示。

 

 

圖7

(8)問題:qt.qpa.xcb: could not connect to display 

具體如圖8所示:

 

 

圖8

原因:處理之后的圖片無法顯示。配置XManager 11+XShell 7即可。

解決配置DISPLAY變量(先查看本機的DISPLAY變量,只能通過XShell輸入echo $DISPLAY,不知道為什么在cmd中查不出來),運行之后,提示要下載Xmanager。

然后在pycharm中添加DISPLAY變量,方法參考該鏈接:https://blog.csdn.net/qq_34907927/article/details/116597908
Xmanager和pycharm配置參考:https://www.bbsmax.com/A/QV5Zyx3eJy/

(9)問題:測試視頻時,AssertionError: Cannot capture source

原因:沒找到源

解決:見問題(3)、注B

(10)問題:

qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/data/z**y/anacoda3/envs/NewPytorch/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

為了找到更詳細的報錯信息,

edit configuration輸入環境變量QT_DEBUG_PLUGINS為1。

圖9

詳細錯誤:

QElfParser: '/data/z**y/anacoda3/envs/NewPytorch/bin/2to3-3.8' is not an ELF object"'/data/z**/anacoda3/envs/NewPytorch/bin/2to3-3.8' is not an ELF object"not a plugin

具體錯誤如圖10所示:

 

 

圖10 

原因:A、edit configurations參數錯誤。最后是--save_video而不是--vis(和測試圖片時不一樣)。

    B、edit configurations中DISPLAY參數錯誤,通過Xshell查找(查找方法參考問題(8))。

解決:A、見問題(3)、注B

    B、修改edit configurations中DISPLAY參數的

(11)問題:Producer process has been terminated before all shared CUDA tensors released

原因:edit configurations參數沒有指明單線程。

解決:最后加上--sp就可以了,完整見問題(3)、注B

(12)問題:圖片清晰度以及圖片一閃而過的問題。

解決:參考https://blog.csdn.net/Zhangrx_/article/article/details/107810537

 

 

環境搭建主要參考:https://www.bilibili.com/video/BV1hb4y117mu?from=search&seid=6563444869225322&spm_id_from=333.337.0.0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM