TSN训练过程

基于视频的连续帧动作识别算法复现踩坑记录

训练过程

本人近期尝试进行动作识别算法,由于YOLOV5等算法都是针对图片进行训练的,无法针对一系列的动作进行识别,因此查阅相关资料发现STN算法,因此对此算法进行了训练和测试。由于本人的电脑自身问题,并且为了节约时间,采用极链AI云算力平台进行训练和测试。主要参考:见博客01【C3D 行为识别】项目下载 环境配置 数据集转化视频帧 UCF101数据集处理

前期准备工作

1.首先需要登录极链AI云,未使用过的小伙伴们需要进行注册。注册后需要点击我的实例,创建实例,会出现如下界面:TSN训练过程_第1张图片
由于算力平台相当于租用他人的机器,是需要付费的,我们只需要选择最便宜的就可以了。
接下来需要对镜像环境进行选择,如下图:
TSN训练过程_第2张图片
血的教训,这个模型如果不对,相当于环境错误,在训练过程中会出现报错。
接下来点击下一步就可以了。
实例创建成功后,点击Jupyter Lab。TSN训练过程_第3张图片
之后再点击左上角蓝色的加号,在右侧出现的页面中点击Terminal,基本操作就完成了,接下来就是训练啦!!!

2.构建训练环境
首先进入到Terminal后,需要下载mmcv-full、mmpycocotools、moviepy、mmaction2等。
第一步,进入到home目录下,

cd home

第二步,下载mmcv-full,

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html

这里面,需要注意的地方是cu102和torch1.6.0都需要根据在镜像环境中设置的pytorch、cuda版本进行设置,由于我用的pytorch为1.6.0,cuda为10.2,因此代码如上。例如你所使用pytorch版本为1.8.0,cuda版本为11.1,那么此处你的下载链接如下:

pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html

第三步,依次下载mmpycocotools、moviepy的命令如下:

pip install mmpycocotools
pip install moviepy  opencv-python terminaltables seaborn decord -i https://pypi.douban.com/simple

其中,https://pypi.douban.com/simple为豆瓣镜像源,可以帮助加快下载速度。
第四步,下载mmaction2,mmaction2是我们用来对数据集进行处理、训练和测试的工具。

git clone https://gitee.com/YFwinston/mmaction2.git
cd mmaction2
python setup.py develop

以上三步依次执行就可以了。

UCF101数据集的处理

一、数据集的下载与上传

UCF101数据集的下载链接:UCF101
https://www.crcv.ucf.edu/datasets/human-actions/ucf101/UCF101.rar
小伙伴们可以根据需要进行下载,有人推荐将链接复制到迅雷进行下载,但是本人亲测用迅雷速度也很慢,毕竟数据集6个G多,大家自己选择下载方式吧。
另外,数据集一定要下载为扩展名rar格式的,本人亲测,下载为zip格式后,数据集无法使用。
将数据集下载完成后,就是更耗时的操作了!!!数据集无需解压缩,直接上传到云端。上传方式官方给了三个,本人推荐第一个和第三个,大家选择其中一种就可以了。
TSN训练过程_第4张图片
如果网速稳定的话且电脑可以长期开机的话,本人推荐第三个页面上传;如果环境不确定的话,可以用第一个命令传输进行上传,就是稍微会麻烦一点,但是官方给了详细文档介绍,大家可以参考一下数据上传方法详细介绍。两种方法我都用过了,在上传速度上我觉得差不太多,但是使用命令传输可能会稍微多设置几步。

  1. 使用命令传输的上传方法:
    1)点击下载命令传输,大家可以根据电脑是windows还是macOS,是64位还是32位进行下载。
    2)下载完成后,点击安装,一直到安装完成就可以了。
    然后在下载完成的页面中点击setting,
    TSN训练过程_第5张图片
    然后在User栏点击Login,将注册极链AI云的手机号和密码输入进去,点击confirm就可以了。
    TSN训练过程_第6张图片
    然后,在Region栏根据选择实例类型是的所在区域进行选择就可以了。
    最后,点击右下角的应用,就可以返回到最开始点开时显示的home界面,点击Upload,选择下载到本地的UCF101数据集进行上传。
  2. 页面上传
    页面上传就非常简单明了,点击上传文件,选择要上传的文件,点击上传就可以啦!下面是数据正在上传的图片。TSN训练过程_第7张图片

二、UCF数据集处理

在我的实例中,进入user-data目录下,上传后的数据一般都放在user_data目录下的。

cd 
cd ..
cd user-data

接下来对上传的UCF101.rar压缩包进行解压。解压的代码如下:

unrar x UCF101.rar

在解压过程中,一般会由于没有安装unrar包,导致报错。参考linux rar,unrar命令安装,此时,可以对下列语句逐一执行:

wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz
tar -zxvf rarlinux-x64-5.5.0.tar.gz
cd rar
make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

然后,重新运行解压缩的代码:

unrar x UCF101.rar

解压后的文件内容如下图:
TSN训练过程_第8张图片
然后在user-data目录下创建一个名为ucf101的文件夹,将解压缩后的UCF-101移入该文件夹中,再在ucf101夹中创建videos文件夹。
然后,进入user-data/ucf101目录下,运行:

cd
cd .. 
cd user-data/ucf101
mv ./UCF-101 ./videos

下载标注文件:
在当前目录下,创建 annotations 文件夹,然后进入annotations

cd annotations
wget https://www.crcv.ucf.edu/wp-content/uploads/2019/03/UCF101TrainTestSplits-RecognitionTask.zip --no-check-certificate

对下载的 UCF101TrainTestSplits-RecognitionTask.zip 进行解压缩:

unzip UCF101TrainTestSplits-RecognitionTask.zip

你可能感兴趣的:(算法,人工智能)