(二)Simple-HRNet
代碼源於:stefanopini/simple-HRNet: Multi-person Human Pose Estimation with HRNet in Pytorch (github.com)
一、環境安裝及測試
1.環境安裝:在pycharm的terminal中,注意切到NewPytorch環境和項目對應的目錄下(即 requirements.txt文件所在的目錄)
執行如下安裝命令:
pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple
2.運行測試文件
在終端中執行:python scripts/live-demo.py --filename /data/zhangyy/PoseEstimation/simple-HRNet-master/video.mp4 --save_video
二、ClassUsage.py文件運行錯誤及解決
1.問題:新建的ClassUsage.py文件中ModuleNotFoundError: No module named 'SimpleHRNet',如圖1所示。
圖1
過程:
- python 中關於無法導入自己寫的類。解決方法 - jc何 - 博客園 (cnblogs.com)——這些方法都不行
- 加個空的_init_.py文件也不行
解決:
2.問題:ModuleNotFoundError: No module named 'utils',如圖2所示
圖2
解決:找到相應的model.py文件位置,然后如圖3所示
圖3
如果還不行可能是服務器上的文件沒有更新,Deployment——>upload不行。
先把服務器上的文件刪了,再把改好的文件復制過去。
3.問題:FileNotFoundError: [Errno 2] No such file or directory: './models/detectors/yolo/config/yolov3.cfg',如圖4所示。
圖4
解決:SimpleHRNet.py(根據錯誤提示,在ClassUsage.py中ctrl+鼠標右鍵定位位置)文件中的路徑改成絕對路徑。
其實,ClassUsage.py上的兩個路徑都最好寫絕對路徑。
三、live-demo.py文件修改
修改部分如下列圖示:
1.
2.
3.
4.
5.
四、其他錯誤及解決
1.問題:from past.builtins import basestring ModuleNotFoundError: No module named 'past',如下圖所示。
解決:下載future模塊,這里下載的是future-0.18.0-cp36-none-any.whl
但是要注意下載.whl文件,如果下載.gz文件打開可能還要再編譯(直接下載下來的.gz文件里面沒有past模塊)
2.問題:RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB (GPU 0; 7.80 GiB total capacity; 388.97 MiB already allocated; 10.31 MiB free; 420.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
原因:訓練時,由於COCO數據集太大,顯存不夠
解決:(1)在GPU有空余的前提下(可以提前查看哪塊GPU空閑),
將參數--device由None改為1(表示啟用編號為1的GPU進行訓練),在train_coco.py文件中,如下圖所示。
注:參數入口就在上圖這部分(修改也應該修改這里,但是為了保證清楚,下圖和下圖兩處最好都修改),而只改如下圖所示的參數值是沒有用的。
(2)將batch size調的小一點。
3.訓練時加快訓練速度的方法:
(1)num_workers=8(視情況而定)
(2)pin_memory=True
4.自己寫的小網絡demo測試時forward沒有調用
原因:沒有給出x的值
如:model = Mix_conv()
print(model)
解決:這樣修改就可以進入forward函數了
如:X = torch.rand(2, 784)
model = Mix_conv()
model(X)
print(model)
5.COCO指標分析:
(1)https://www.cnblogs.com/herd/p/11504146.html
(2)https://www.bilibili.com/read/cv14176041
6.SimpleHRNet.py:它加載 HRNet 網絡進行人體姿態估計,加載預訓練的權重,並對單張圖像或多張圖像進行姿態估計。