基于视频的连续帧动作识别算法复现踩坑记录
本人近期尝试进行动作识别算法,由于YOLOV5等算法都是针对图片进行训练的,无法针对一系列的动作进行识别,因此查阅相关资料发现STN算法,因此对此算法进行了训练和测试。由于本人的电脑自身问题,并且为了节约时间,采用极链AI云算力平台进行训练和测试。主要参考:见博客01【C3D 行为识别】项目下载 环境配置 数据集转化视频帧 UCF101数据集处理
1.首先需要登录极链AI云,未使用过的小伙伴们需要进行注册。注册后需要点击我的实例,创建实例,会出现如下界面:
由于算力平台相当于租用他人的机器,是需要付费的,我们只需要选择最便宜的就可以了。
接下来需要对镜像环境进行选择,如下图:
血的教训,这个模型如果不对,相当于环境错误,在训练过程中会出现报错。
接下来点击下一步就可以了。
实例创建成功后,点击Jupyter Lab。
之后再点击左上角蓝色的加号,在右侧出现的页面中点击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
https://www.crcv.ucf.edu/datasets/human-actions/ucf101/UCF101.rar
小伙伴们可以根据需要进行下载,有人推荐将链接复制到迅雷进行下载,但是本人亲测用迅雷速度也很慢,毕竟数据集6个G多,大家自己选择下载方式吧。
另外,数据集一定要下载为扩展名rar格式的,本人亲测,下载为zip格式后,数据集无法使用。
将数据集下载完成后,就是更耗时的操作了!!!数据集无需解压缩,直接上传到云端。上传方式官方给了三个,本人推荐第一个和第三个,大家选择其中一种就可以了。
如果网速稳定的话且电脑可以长期开机的话,本人推荐第三个页面上传;如果环境不确定的话,可以用第一个命令传输进行上传,就是稍微会麻烦一点,但是官方给了详细文档介绍,大家可以参考一下数据上传方法详细介绍。两种方法我都用过了,在上传速度上我觉得差不太多,但是使用命令传输可能会稍微多设置几步。
二、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
解压后的文件内容如下图:
然后在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