(二)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 网络进行人体姿态估计,加载预训练的权重,并对单张图像或多张图像进行姿态估计。