这两天算是把YOWOv1的原理搞得差不多了,并且在知乎和csdn上看了好多博主发布的复现教程,但是结果都是好的,过程往往是艰辛的,为了避免接下来的同志重蹈覆辙,我把这篇经验贴写出来让大家避坑。
零、环境说明
我复现YOWO使用的环境如下:Anaconda,Windows11
一、前期工作
1、创建Anaconda虚拟环境,我的虚拟环境命名为yowo,python版本为3.6
conda create -n yowo python=3.6
2、进入yowo虚拟环境,安装cuda,torch和cuDNN
进入虚拟环境yowo
conda activate yowo
在虚拟环境中安装cuda,torch和cuDNN
pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
我是使用的Anaconda,所以直接在虚拟环境中安装cuda,torch等,可能有的读者在之前就已经计算机本地安装了cuda以及cudnn,但是在计算机本地的cuda无法被虚拟环境调用,就无法使用GPU加速计算,会出现报错:AssertionError: Torch not compiled with CUDA enabled。所以还是在虚拟环境中重新配置。
安装完毕之后进入Anaconda Prompt命令窗口,进入虚拟环境yowo,输入以下指令查看Pytorch是否和cuda支持。
进入虚拟环境
conda activate yowo
进入python
python
导入Pytorch
import torch
查看Pytorch是否和cuda匹配
torch.cuda.is_avaliable()
出现True即为安装成功,并且能使用GPU加速计算
3、安装Git
由于复现的代码是在Ubuntu上编写的,所以含有sh文件,windows无法运行这些文件,所以需要安装Git来执行。
Git官网下载,一路next就行。
Git - Downloading Packagehttps://git-scm.com/download/win为了验证Git是否安装成功,在桌面右键鼠标,当出现如下图所示的标志时,即为安装成功。
打开Pycharm,点击File->Settings->Tools->Terminal—Shell path,将cmd.exe修改为Git安装目录下/bin文件夹里的sh.exe
至此,我们的前期工作全部结束,接下来就是复现YOWO。
二、复现工作
我们采用的复现代码是一位知乎老哥提供的,代码下载链接放在下方。
1、数据集准备
YOWO可以在UCF101-24,JHMDB-21以及AVA数据集上进行训练,由于JHMDB-21数据集很小,容易过拟合,大部分复现过程均采用UCF101-24数据集,数据集链接放在下方。
https://pan.baidu.com/s/11GZvbV0oAzBhNDVKXsVGKg
提取码:hmu6
下载完毕后解压至任意磁盘。
至于AVA数据集,制作过程十分繁琐,有兴趣的读者可以在B站上搜索AVA数据集制作教程,不在本文过多赘述。
2、训练YOWO
打开Pycharm的终端,输入指令
python train.py --cuda -d ucf24 -v yowo --num_workers 4 --eval_epoch 1 --eval
此时提示需要下载权重YOLOv2.pth和resnext-101-kinetics.pth文件,网络不好的读者会提示连接服务器超时,这时你需要自己下载权重,下载链接在README.md文件里或者在会在终端显示,根据终端提示的存放路径进行存放,如果没注意看存放路径的读者,可以根据下方提示进行存放:
存放路径:C:\Users\你的用户名称\.cache\torch\hub\checkpoints
存放完毕后再次运行指令即可开始训练
2.1可能出现的报错提示以及解决方法
2.1.1连接服务器超时
需要自己根据下载链接进行下载,并且存放到对应的文件夹下。
2.1.2BrokenPipeError: [Errno 32] Broken pipe
这是Windows多线程导致的出错问题,可以将运行代码中num_works=4改成2或者0,根据自己电脑性能判断。
3、测试YOWO
在Pycharm终端输入指令
大家注意指令里的path/to/weight是指的训练完权重存放的相对目录
python test.py --cuda -d ucf24 -v yowo --weight path/to/weight
4.计算mAP
4.1计算Frame mAP
在终端运行如下指令
python eval.py \
--cuda \
-d ucf24 \
-v yowo \
-bs 8 \
-size 224 \
--weight path/to/weight \
--cal_frame_mAP \
4.2计算Video mAP
在终端运行如下指令
python eval.py \
--cuda \
-d ucf24 \
-v yowo \
-bs 8 \
-size 224 \
--weight path/to/weight \
--cal_video_mAP \
三、参考链接
【精选】conda搭建虚拟环境+配置CUDA+安装pytorch_conda cuda-CSDN博客
windows:Conda、CUDA、GPU 版本的torch安装_conda 安装torch环境-CSDN博客
Anaconda虚拟环境中安装torch + cuda + cuDNN_python_ligous-华为云开发者联盟
YOWO-一款简单且实时的时空动作检测方案(2) - 知乎