Linux下基于Pytorch框架用HRNet提取骨架特征点+解决CUDA和Torch版本不匹配问题

软硬件环境:
python 3.6.5
Ubuntu 18.04 LTS
Pytorch 1.1.0
NVIDIA TITAN XP 8GB

准备工作

  1. 到github把HRNet代码clone或downloads下来,具体链接:https://github.com/stefanopini/simple-HRNet
    clone代码: git clone https://github.com/stefanopini/simple-HRNet.git

  2. 将所需包都安装下来pip install -r requirements.txt
    这里注意一下!!requirements里面的torch版本是≥1.4.0,如果要安装,请检查自己的cuda是否与这样高版本的torch匹配。否则就不要安装,免得之后还要降版本。具体操作见最后 CUDA和Torch版本不匹配 这一章。
    在这里插入图片描述

  3. 下载预训练权重。 总共是下载三个,需要翻墙。不能翻的话,可以直接在这里下:
    pose_hrnet_w48_384x288.pth
    pose_hrnet_w32_256x256.pth
    pose_hrnet_w32_256x192.pth
    【如果愿意等待的话,可以私信或者留下评论,我看到后发给你们】

    之后新建一个文件夹“weights”,并将三个权重放到红圈的位置:
    在这里插入图片描述

  4. clone或者downloads YOLOv3
    https://github.com/eriklindernoren/PyTorch-YOLOv3/tree/47b7c912877ca69db35b8af3a38d6522681b3bb3
    1)把下载下来的YOLOv3文件夹改名,改为yolo,方便此后的操作。
    2)按照上面的树状图,将yolo放到红圈的位置,此前已经有个空的yolo文件夹,直接删掉,用下载下来的YOLOv3文件夹代替即可。
    在这里插入图片描述
    3)接着cd到该文件夹下,安装所需的包(图片与下面的代码不同,原因是我没直接把PyTorch-YOLOv3文件改名为yolo,而是在之后改的,这里早改晚改都可,按自己的想法就行):

cd models/detectors/yolo
sudo pip3 install -r requirements.txt

在这里插入图片描述
4)将YOLOv3的权重保存到红圈位置:
在这里插入图片描述
5)cd 到 /weights下,bash download_weights.sh
在这里插入图片描述

运行Class Usage

  1. 首先,在simple-HRNet-master文件夹下新建一个Python File
import cv2
import matplotlib.pyplot as plt
from SimpleHRNet import SimpleHRNet

model = SimpleHRNet(48, 17, "./weights/pose_hrnet_w48_384x288.pth")
image = cv2.imread("/home/user/Downloads/simple-HRNet-master/2.JPG", cv2.IMREAD_COLOR) #这里的文件路径和文件名根据自己要识别的图片来
joints = model.predict(image)
print(joints)

这里我出现了一个错误:

视频demo运行:

   1)首先下载一个视频,准备进行识别。(没有视频的也可以给我留言或者私信,看到了我会回复)
   2)进入live-demo.py页面,直接运行,出现报错,大致就是找不到utils.parse_config,解决办法:随着报错,找到/home/user/Downloads/simple-HRNet-master/models/detectors/yolo/models.py,将第9.10行,改为:
from .utils.parse_config import *
from .utils.utils import build_targets, to_cpu, non_max_suppression

3) 这一步比较重要,安装ffmpeg,打开终端:
这里,如果有同学总是出现有关ffmpeg没有‘ffprobe’这个属性之类的报错的话,就好好按照下面的安装流程安装ffmpeg,只要安装成功了,就不会报错。

pip install ffmpeg-python

安装成功的话:输入 ffmpeg -version,就能见到如下内容
在这里插入图片描述
如果还有报错,就尝试另一种办法:
pip uninstall ffmpeg-python删去刚才下的ffmepg
接着,在终端:

sudo apt install ffmpeg

这样应该是能安装成功了

之后

python scripts/live-demo.py --filename xxx.mp4

xxx.mp4具体为自己保存视频的路径,如若需要保存视频,可以再加上--save_video参数
我是在网上找了一段跳舞视频,得到结果如下:
在这里插入图片描述

CUDA和Torch版本匹配出问题

上图暴露一个信息,此时在用CPU跑程序。并且nvidia-smi可以看到gpu根本没有运行,接下来就是解决不用gpu的问题。
在这里插入图片描述
我在终端进行如下操作:

ipython
import torch
torch.cuda.is_available()

在这里插入图片描述
然后又尝试运行自己另一个项目【这个项目是可以自动识别到CUDA】的,却得到如下结果:
在这里插入图片描述
“The NVIDIA Driver on your system is too old”。以上两个结果都证明,应该Torch和CUDA是版本匹配出问题了。
1)首先查看torch版本及其匹配的CUDA版本:

python
import torch
torch.__version__ #'1.5.0'
torch.version.cuda #'10.2'

在这里插入图片描述
2)再查看CUDA版本,

nvidia-smi

我的CUDA版本是10.0
3)降低Torch版本(可自己查一下CUDA与Torch版本匹配的关系)
i. 先卸载之前的torch

pip uninstall pytorch

ii. 安装Torch 1.1.0 版本(前提是已经下了安装包,在安装包所在目录打开终端进行安装)
需要安装包可留言或者评论,看到我会回复。
在这里插入图片描述
iii.检查

ipython
import torch
torch.cuda.is_available()

显示True就对了
在这里插入图片描述
最后:
在这里插入图片描述
说明成功了

如果CUDAPyTorch版本不匹配,可能会导致程序运行错误或无法运行。通常情况下,PyTorch的不同版本都会带有与不同版本CUDA兼容的版本,因此您需要确保安装的PyTorch版本与您安装的CUDA版本兼容。 以下是解决CUDAPyTorch版本不匹配的步骤: 1. 确定您正在运行的CUDA版本: ``` nvcc --version ``` 2. 确定您需要安装的PyTorch版本与您的CUDA版本兼容。您可以在PyTorch官方网站上找到与特定CUDA版本兼容的PyTorch版本。例如,如果您的CUDA版本为10.2,则可以使用PyTorch 1.7版本。 3. 安装与您的CUDA版本兼容的PyTorch版本。您可以使用以下命令安装PyTorch: ``` pip install torch==1.7.0+cu102 -f https://download.pytorch.org/whl/cu102/torch_stable.html ``` 注意:请使用与您安装的CUDA版本相应的cuXX后缀。例如,如果您安装的是CUDA 10.1,则应该使用cu101后缀。 4. 安装具有相应版本的其他库。如果您使用的是GPU版本PyTorch,那么您需要安装与您的CUDA版本兼容的其他库,例如cuDNN和NCCL。 ``` pip install torch==1.7.0+cu102 torchvision==0.8.1+cu102 torchaudio==0.7.0 -f https://download.pytorch.org/whl/cu102/torch_stable.html ``` 注意:以上命令中的版本号应与您需要安装的版本号匹配。 5. 验证安装。您可以在Python中运行以下命令,验证您的PyTorch版本CUDA版本是否匹配: ``` import torch print(torch.version.cuda) ``` 如果输出的CUDA版本与您安装的CUDA版本匹配,则表示您已经成功安装了与CUDA版本兼容的PyTorch版本
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值