从零开始的基于pyskl的视频动作识别
为了帮助后来人少走或不走弯路,决定写下这篇文章,但更多的是用作对这两天学习的一个总结,或者是充当一个学习笔记的作用,以防遗忘。如果这篇文章中有错误的地方,还请大家指正。
目录
一、基本介绍
1.1 我的硬件配置
i7-9750H + Nvidia GTX 1660Ti + (8*2)GB RAM
1.2 我的系统配置
win10 专业版 22H2
1.3 pyskl项目来源
项目地址:https://github.com/kennymckormick/pyskl
该项目中包含demo,提供了用于输入的视频文件。
1.4 网络环境
建议搭建一个“科学”的网络环境。
二、配置外部环境
注意:以下所有软件的安装路径最好均保持默认(即C盘)以免造成不必要的麻烦,故请确保C盘有足够的空闲空间(最好大于60G)
2.1 安装miniconda
官网:Miniconda — Anaconda documentation
miniconda的作用主要是用于环境隔离,以确保不同项目之间的依赖不混淆,也可以更容易地复现别人的项目。安装和配置教程请移步B站视频:CS_miniconda3安装_windows10_哔哩哔哩_bilibili和CS_miniconda必做配置_哔哩哔哩_bilibili,这里不再赘述。
注意:在安装时要将miniconda添加到系统环境变量中,才能在cmd中使用conda命令,否则就只能在Anaconda Prompt中使用conda命令和创建虚拟环境。
由于miniconda自带python,故安装好miniconda后就不需要再安装python了。
安装miniconda以后可以在cmd(Win+R后输入“cmd”后回车以调出cmd窗口)中使用以下用于查看现有环境的命令来检查是否安装成功:
conda env list
若出现“base”环境则表明安装成功。
2.2 安装pycharm
具体安装和破解方式请移步视频CS_pycharm安装+必做配置_哔哩哔哩_bilibili,这里不再赘述。
2.3 安装Cuda Toolkit
在cmd中输入以下命令以查看你的显卡驱动版本所能支持的最高版本的Cuda Toolkit:
nvidia-smi
会出现类似这样的界面:
可以看出我的显卡驱动版本是552.22,所对应的支持的最高的Cuda Toolkit版本是12.4(仅取决于显卡驱动版本,与显卡型号没有关系),也就是说只要Cuda Toolkit的版本低于12.4就是可以安装的。
Cuda Toolkit历史版本下载地址:CUDA Toolkit Archive | NVIDIA Developer
由于该项目需要用到1.5.0版本的mmcv-full包,而此版本的mmcv-full可以支持11.1版本的Cuda Toolkit,故我这里就选择下载11.1.0(小于12.4)版本的Cuda Toolkit,如下图所示:
所选下载配置如下(以Win10为例):
下载完成后双击打开。
注意:在安装时要选择自定义安装,仅勾选cuda选项,其他的选项全部取消勾选,否则会变更显卡驱动版本。
至此Cuda Toolkit安装完成,使用以下cmd命令检查是否安装成功:
nvcc -V
注意:这里的V是大写。
安装成功的话应返回如下界面:
至此,所有需要的外部环境均已配置成功。下面开始介绍如何配置虚拟环境。
三、配置虚拟环境
最简单的方式是在项目根目录中运行以下命令安装该项目所需的所有包:
pip install -r requirements.txt
但通过这种方式可能会出现各种各样的问题(比如报错,版本不匹配以及下载没速度等问题),此时我们可以按照下面的方式手动安装。(如果直接成功的话则可以跳过“三”)
3.1 换源
这一步主要是保证在虚拟环境中安装所需的包时不会因网络问题而安装失败,具体教程请移步本站的另一篇文章,这里不再赘述:conda环境变量设置,配置国内镜像源,更改环境安装位置,环境迁移_配置conda环境变量-CSDN博客
3.2 新建虚拟环境
打开cmd,输入以下命令以创建新的虚拟环境:
conda create -n pyskl python=3.7
这里指创建一个python版本为3.7的虚拟环境,命名为pyskl,如果你想用其他名称来命名环境,只需替换命令中的“pyskl”即可。
3.3 激活(进入)虚拟环境
使用以下命令进入我们刚刚创建的pyskl虚拟环境:
conda activate pyskl
成功的话应返回如下界面:
即前面会出现“(pyskl)”
3.4 安装所需的包
注意:此后的命令均基于你已经在pyskl这一虚拟环境中,即cmd命令行前有“(pyskl)”字样。
首先,可以通过以下命令查看该虚拟环境中已经存在了哪些包:
pip list
一般会返回以下界面:
而该项目所必需的包如下所示:
显然,该环境中缺少项目所必需的包(所需的包通过项目中的requirements.txt文件查看)
下面将重点介绍torch、mmcv-full和mmpose的安装,因为这三个包安装时可能会有各种各样的报错,而其他所需的包一般不会报错。这里假定其他的包均已安装完成(使用“pip install 包名”即可安装)
3.4.1 安装torch包
torch历史版本的下载地址:Previous PyTorch Versions | PyTorch
任何的包一般都有两种安装方式:即在线安装(通过 “pip install 包名” 的命令实现)和离线安装。
换源后若以在线安装的方式安装torch包会出现下载速度非常慢的情况,故我们选择离线安装。
首先,根据我们的Cuda Toolkit版本和虚拟环境的python版本来决定我们应该安装哪个版本的torch包,torch历史版本的离线包下载地址为:https://download.pytorch.org/whl/torch_stable.html
由于1.5.0版本的mmcv-full也可以支持1.9.0版本的torch,且我们的Cuda Toolkit版本为11.1,python版本为3.7,故应选择下载下图所示的离线包:
为了养成良好的习惯,一般选择一个文件夹集中保存这些离线包,比如我一般将下载的离线包保存在以下路径中:C:\Users\Admin\miniconda3\离线包
其中“离线包”文件夹是自己创建的。
通过以下命令跳转到离线包所在的文件夹中:
cd C:\Users\Admin\miniconda3\离线包
跳转后再通过以下命令安装torch离线包:
pip install torch-1.9.0+cu111-cp37-cp37m-win_amd64.whl
至此1.9.0版本的torch包安装完成。
可以通过以下命令检查是否成功安装:
python
import torch
若没有报错则安装成功。
顺便我们可以通过如下命令检查是否可用GPU加速:
torch.cuda.is_available()
注意:一定要带上括号
若返回“True”则表明可用GPU加速。
通过以下命令退出python:
exit()
3.4.2 安装mmcv-full包
mmcv-full官方说明文档地址:安装 MMCV — mmcv 1.5.0 文档
打开说明文档地址,由于我们的Cuda Toolkit版本和torch版本分别是11.1和1.9.0,故选择如下图所示的位置打开:
打开后复制如下图所示的地址打开:
打开后下拉找到如下图所示的离线包单击下载:
同样保存在路径:C:\Users\Admin\miniconda3\离线包
在此路径中使用以下命令安装1.5.0版本的mmcv-full包:
pip install mmcv_full-1.5.0-cp37-cp37m-win_amd64.whl
至此1.5.0版本的mmcv-full包安装完成。
tips:由于官方将mmcv-full改名为mmcv,使用pip命令安装老版本的mmcv-full会报错,故使用离线安装的方式。
3.4.3 安装mmpose包
安装mmpose包本身并不会报错,但有可能会在安装过程中自动安装最新版本的torchvision,而最新版本的torchvision与1.9.0版本的torch并不兼容,故在安装mmpose包之后通过以下命令卸载torch包和torchvision包,再重新安装即可:(或者也可以先安装好torch和torchvision再安装mmpose)
pip uninstall torch
pip uninstall torchvision
重新安装1.9.0的torch的方法同3.4.1,下面介绍如何安装对应版本的torchvision和torchaudio
可以在线安装,复制以下命令运行即可:
pip install torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
至此,该项目所需的所有环境均已配置完成,下面介绍如何运行该项目。
四、项目运行
4.1 导入项目到Pycharm
从GitHub中打包下载后解压,得到一个pyskl-main的文件夹,为了养成良好的习惯,建议集中管理这些项目,比如我会将该文件夹保存在如下路径中:C:\Users\Admin\MyProjects
其中“MyProjects”文件夹是自己创建的。直接在pyskl-main文件夹上右键选择“Open Folder as Pycharm Project”,这样pycharm会自动新建项目。
成功的话应如下图所示:
tips:通过下面4.2选择pyskl环境后打开requirements.txt如果界面上方没有报错,则证明所配置的环境符合要求。
4.2 为项目选择一个虚拟环境
导入项目后,点击界面右下角这个位置(不一定是pyskl,是你所起的虚拟环境的名称):
依次点击如下设置:
注意:步骤②中的路径一开始一般都是错的,要改成图中所示的路径(只要找到Scripts\conda.exe即可,前面的路经不一定一样)
点击确定后环境就变成了pyskl,主界面右下角也会出现pyskl字样。
4.3 正式运行项目
首先,在pycharm的 “文件 ——> 设置” 中将终端改成cmd:
回到主界面点击“终端”:
确保命令行前有“(pyskl)”,且路径在你所保存的项目文件夹的根目录下(如上图所示,最后一级路径确保为pyskl-main即可)
通过以下命令安装该项目包:
pip install -e .
运行完成后,通过pip list命令会发现环境中多了一个名为“pyskl”的包。
最后!运行以下两个命令中的任何一个即可运行该项目:
python demo/demo_skeleton.py demo/ntu_sample.avi demo/demo.mp4
python demo/demo_skeleton.py demo/ntu_sample.avi demo/demo.mp4 --config configs/stgcn++/stgcn++_ntu120_xsub_hrnet/j.py --checkpoint http://download.openmmlab.com/mmaction/pyskl/ckpt/stgcnpp/stgcnpp_ntu120_xsub_hrnet/j.pth
这会对demo文件夹下的ntu_sample.avi视频文件进行动作识别,并会在demo文件夹中输出一个名为demo.mp4的视频文件,我们会发现识别结果出现在了demo.mp4的视频中。
五、结语
为帮助后来人少走或不走弯路,决定写下这篇文章,但更多的是用作对这两天学习的一个总结,或者是充当一个学习笔记的作用,以防遗忘。
若本文中有错误的地方,还请指正。
更多推荐
所有评论(0)