ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)

目录

  • 配置Openpose-1.5.0
    • Openpose下载
    • Cmake编译Openpose
    • 测试Openpose
  • 配置Anaconda环境
    • 安装基础工具
    • 安装PyTorch
    • 测试PyTorch
    • 安装其他库
  • 安装和运行ST-GCN Demo

本文中CUDA已安装,版本为11.2。
CUDA版本在Nvidia控制面板-系统信息-组件-NVCUDA64.DLL产品名称栏中可以找到。

配置Openpose-1.5.0

参考链接
[1] Openpose1.5.0+VS2017+CUDA10+cuDNN7.5+WIN10安装部署教程(C++和Python API).
[2] win10+VS2017+openpose1.5.0+cuda10.0+cudnn7.5(GPU版,实现pythonAPI).

Openpose下载

  1. 下载链接:GitHub下载.选择SourceCode(zip)
  2. 下载完成后先修改文件夹名为openpose(删除数字版本号1.5.0避免可能出现的Cannot find Python API错误)
  3. 执行其他下载项。文件夹openpose\3rdparty\windows下还有4个bat文件,执行的是4个下载命令。复制下载链接到迅雷下载。下载链接如下:http://posefs1.perception.cs.cmu.edu/OpenPose/3rdparty/windows/文件名,文件名可以在bat文件中找到,分别为caffe_15_2019_03_14.zip;caffe3rdparty_15_2019_03_14.zip;freeglut_2018_01_14.zip;opencv_401_v14_15_2019_03_14.zip。
    需要保留zip文件!
  4. 执行上述下载完成后的文件目录如下
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第1张图片
  5. 下载完Openpose和上述的其他下载项以后,还需要下载
  • 模型文件。执行\models 里的getModels.bat下载,或在参考链接[2]里提供的百度云地址下载。
  • pybind11。用于Python和C++数据类型转换。GitHub下载.

Cmake编译Openpose

  1. 下载安装cmake,运行cmake-gui.
    本文使用的cmake版本为cmake-3.19.6-win64-x64\bin\cmake-gui.exe。下载时win10系统选择binary版本比较方便。
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第2张图片
  2. 在source为openpose文件夹,目标build文件夹为/openpose/build下执行cmake:
  • 选择Configure,根据本机安装的VS版本选择相应选项
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第3张图片

  • 勾选BUILD_PYTHON和所有的DOWNLOAD_***_MODEL,如图(图中具体的路径Value在配置时已更改,仅供参考)
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第4张图片
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第5张图片

  • 选择Generate

  1. 用VS2017打开build文件夹下的.sln文件,调成releasex64
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第6张图片
    右键选择整个工程的根目录项,选择生成解决方案
    ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第7张图片
    运行结果应为:
    ========== 生成: 成功 25 个,失败 0 个,最新 0 个,跳过 1 个 ==========
  2. Openpose安装好了后,把生成的build/bin文件夹下的所有库(全部dll)复制到build/x64/Release/下,将/openpose/models文件夹复制到/openpose/build中,否则后续测试和使用可能缺少库文件报错。

测试Openpose

Openpose使用见GitHub官方文档-QuickStart

  1. 运行图像demo
    \openpose\build\examples\tutorial_api_python下进入cmd,输入
    python 01_body_from_image.py
  2. 运行视频demo
    \openpose文件夹下进入cmd,输入
    build\x64\Release\OpenPoseDemo.exe --video examples\media\test.mp4
    test.mp4为所要运行openpose的视频名,提供的自带视频为video.avi
    可选后缀参数--face--hand(需要更高配置才能运行)

配置Anaconda环境

接下来配置ST-GCN运行所需的环境,Anaconda基本的使用方法不再赘述。

安装基础工具

  1. 本文使用的Python版本为3.6.13
    创建环境conda create --name stgcn python=3.6
  2. 更新pip
    python -m pip install --upgrade pip
    p.s. 配置时我犯了pip install --upgrade pip这样的低级错误,导致环境中的pip工具损坏,在升级pip时一定要用python -m命令。
  3. 安装numpy opencv
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy opencv-python此处使用清华镜像

安装PyTorch

  1. 查询NV控制面板中的NVCUDA64.dll,本机CUDA版本为11.2.135
  2. 下载安装:

用conda安装
在PyTorch官网选择如下选项:
ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第8张图片
其中CUDA 11.2选择11.1即可,得到命令如下
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
若由于网络问题无法安装pytorch,则可以使用以下方法。

用whl文件单独安装PyTorch
如果打不开链接可以挂梯子
下载链接列表
下载项(pytorch和torchvision必须都安装):

  • cu111/torch-1.8.0%2Bcu111-cp36-cp36m-win_amd64.whl
  • torchvision-0.9.0+cu111-cp36-cp36m-win_amd64.whl
  • torchaudio-0.8.0-cp36-none-win_amd64.whl
    其中cu表示cuda版本(CUDA 11.1,11.2视作11.1即可),cp表示python版本(Python 3.6);torchvision和torchaudio的对应版本在https://pytorch.org/查看
    执行pip install 路径\文件名.whl进行离线安装。

测试PyTorch

  1. 第一种方法
import torch
import torchvision
torch.__version__
torchvision.__version__
print(torch.cuda.is_available())
  1. 第二种方法
>>> import torch
>>> a = torch.Tensor([1.])
>>> a.cuda()
tensor([1.], device='cuda:0')
>>> from torch.backends import cudnn
>>> cudnn.is_acceptable(a.cuda())
True

安装其他库

  1. 在/stgcn文件夹下找到文件requirements.txt,切换到该目录下
    根据官方文档:Other Python libraries can be installed by pip install -r requirements.txt
    执行pip install -r requirements.txt
  2. 安装ffmpeg:conda install ffmpeg

安装和运行ST-GCN Demo

  1. 首先在Anaconda环境(名为stgcn)执行setup.py如下
    (stgcn) G:\st-gcn-master\st-gcn\torchlight>python setup.py install

  2. 运行demo
    python main.py demo_offline --video G:\openpose\examples\media\video.avi --openpose G:\openpose\build\x64\Release

    python main.py demo_old --video G:\openpose\examples\media\video.avi --openpose G:\openpose\build\x64\Release
    其中第一个路径为视频路径,第二个路径为编译后的Openpose的路径。

:本文运行demo_offline并未成功,显示错误如下:

Can not find Openpose Python API.
Traceback (most recent call last):
  File "main.py", line 33, in 
    p.start()
  File "G:\st-gcn-master\st-gcn\processor\demo_offline.py", line 31, in start
    video, data_numpy = self.pose_estimation()
TypeError: 'NoneType' object is not iterable

该错误暂未解决,若发现解决方法将来会更新。
文中使用的是demo_old。

  1. 报错和解决
  • 执行上述python main.py demo_old --video G:\openpose\examples\media\video.avi --openpose G:\openpose\build\x64\Release命令会报错,需要改成python main.py demo_old --video G:/openpose/examples/media/video.avi --openpose G:/openpose/build/x64/Release即改为正斜杠,这个错误与源码处理命令行参数字符串的方式有关,撰写本文时作者尚未深究此处代码的更好实现,仅对输入参数做修改。
  • 执行依然出错:
    Error occurred on a thread. OpenPose closed all its threads and then propagated the error to the main thread. Error description: Caffe trained model file not found: models\pose/coco/pose_iter_440000.caffemodel.
    发现st-gcn目录下不存在caffe model文件,将openpose/model文件夹复制合并到st-gcn/models即可。

另:根据https://www.it610.com/article/1304174342661246976.htm所述,对demo_old.py文件做过修改。此修改对程序的影响未知。
ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第9张图片
ST-GCN源码运行demo配置过程(openpose-1.5.0+win10)_第10张图片

你可能感兴趣的:(深度学习,python)