YOWO系列:YOWOv2复现过程和常见错误解决方式

本文详细介绍了如何准备YOWOv2的开发环境,包括Python虚拟环境创建、依赖包安装,以及UCF101-24数据集的准备。复现过程中涉及的代码修改和常见问题的解决方案也进行了分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、代码、环境和数据集准备

1、代码

YOWOv2的官方代码已经开源在Github上了,可以通过下面的链接下载源码。

https://github.com/yjh0410/YOWOv2

2、环境

下载完毕后,创建python版本为3.6的新虚拟环境:

conda create -n yowov2 python=3.6

创建环境完毕后,进入所创建的环境中:

conda activate yowov2

运用cd命令转到项目所在文件夹(先输这个指令,这个命令中的X代表着你项目所在的磁盘):

cd /d X:
cd xxx/xxxx/xxxx

 安装所需要的包:

pip install -r requirements.txt

如果下载过慢,建议将config改成清华源镜像,具体步骤请移步其他博客。至此,复现YOWOv2所需的环境已经搭建完毕。

3、数据集准备

YOWOv2复现仍然使用UCF101-24数据集,读者可自行在项目文件中README.MD文件中找到数据集的下载链接,亦可通过下方百度网盘链接进行下载。

获取链接: https://pan.baidu.com/s/11GZvbV0oAzBhNDVKXsVGKg

提取码: hmu6

二、复现过程

在我们准备好环境,代码和数据集后,我们就可以着手进行复现了

1、数据集根目录更改

源码的数据集目录和我们存放的目录不一致,所以我们要进行修改,在dataset/ucf_jhmdb.py中,修改如下图所示的地方,修改为自己存放UCF24数据集的目录。

为了检测正确性,请运行ucf_jhmdb.py,如果得到下图,则证明数据集配置正确。

2、开始训练

在训练之前,我们需要对train.py进行配置修改:

下图之所以将version修改为yowo_v2_nano,是因为YOWOv2家族有很多分支,我这里采用的是nano,也是YOWOv2家族最轻量化的一个版本。

如果你的电脑有GPU,则将下图中标记的地方改为True,训练速度可提升2-3倍,没有GPU的读者无需修改(如何查看自己有没有GPU,请自行百度一下)

训练完成后,所得到的权重会存放在/weights/ucf24/yowo_v2_nano文件夹中,文件后缀名为.pth

3、验证YOWOv2

为了验证我们所训练的权重在视频检测中的正确性,我们需要下载一个包含动作的视频,然后在demo.py文件中进行配置修改。

将下图中的标记处修改为自己视频的存放目录:

 下图源码写的是AVA,这里我们用的是ucf24数据集,所以改为ucf24:

 这里将default修改成刚刚自己训练模型的版本:

 这里修改为自己刚刚训练好的权重的存放目录(其中./代表相对目录):

修改完上述配置后,即可运行demo.py,检测完成后的视频存放在下方的目录中:

下面就是检测完成后的视频截图:

三、遇到的问题

在运行的过程中,遇到了很多的问题,我将我遇到的问题和解决方式写在下方(下面所有的解决措施均基于torch=1.9.1+cu111,torchvision=0.10.1+cu111的基础上,版本不对的读者请自行更换torch版本)

1、Torch not compiled with CUDA enabled(用GPU的读者注意,CPU读者可忽略)

这是说当前的虚拟环境中没有安装GPU版本的torch,解决方法就是重新安装GPU版本的torch,进入虚拟环境yowov2后,运行下方指令:

pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html

安装完成后即代表GPU版本的torch已经安装到此虚拟环境中了。

2、AttributeError:model "torch.jit. has no attribute ‘unused‘

说明当前torch版本和torchvision版本不对应,解决方案如上所示。

3、ModuleNotFoundError: No module named 'torch.fx'

也是说明torch版本不匹配,解决方案如1。

4、"xxx.pt is a zip archive(did you mean to use torch.jit.load()?)"

这个错误极有可能出现在自己没有训练,直接使用别人的权重文件的读者中,这是由于权重是在torch>=1.6版本上训练的,而运行的torch版本<1.6,解决方式就是将自己环境中的torch版本升级到1.6以上。

pip install torch==xxxxx -f https://download.pytorch.org/whl/torch_stable.html

5、FileNotFoundError: [Errno 2] No such file or directory: 'G:/XXX/ucf24\\ucf24\\trainlist.txt'

这个错误频繁出现在运行train.py的过程中,这是因为路径冲突,应该在ucf24的上一级目录就截止,如下图所示:

四、总结

目前时序动作检测在各大会议和顶刊上发表的论文很少,而且网上对于YOWO的介绍和复现少之又少,希望大家在时序动作检测过程中遇到了任何困难都不要灰心,我们一起度过这个难关!

五、参考链接

https://blog.csdn.net/weixin_44769214/article/details/108188126

https://www.cnblogs.com/HuangYJ/p/13844757.html

已解决:Torch not compiled with CUDA enabled_Jenny300的博客-CSDN博客

解决错误:AttributeError:model ’torch.jit. has no attribute ‘unused‘_attributeerror: module 'torch.jit' has no attribut-CSDN博客

导入torchvision时出现:AttributeError: module 'torch.jit' has no attribute 'unused'错误 - 知乎

解决ModuleNotFoundError: No module named ‘torch.fx‘_小雲啊的博客-CSDN博客

您好!要使用SlowFast模型在AVA(Atomic Visual Actions)数据集上进行训练,可以按照以下步骤进行操作: 1. 数据准备:首先,您需要下载并准备AVA数据集。该数据集包含大量的视频片段,每个片段都有相应的标注,用于描述视频中的动作。您可以从AVADataset官方网站下载数据集,并确保您具有足够的存储空间来存储数据。 2. 数据预处理:在训练之前,您需要对数据进行预处理。这包括将视频分解为单独的帧,并提取光流信息。您可以使用现有的工具或库(如OpenCV)来实现这些步骤。 3. 模型配置:接下来,您需要配置SlowFast模型用于训练。SlowFast模型是一种基于两个不同速率的网络结构,用于处理长时间尺度短时间尺度的动作信息。您可以使用现有的SlowFast模型实现,或者根据您的需求进行自定义。 4. 训练:使用预处理后的数据配置好的模型,您可以开始训练过程。将数据输入模型中,并使用适当的优化算法损失函数进行训练。您可以根据需要调整训练参数超参数,例如学习率、批量大小等。 5. 评估调优:完成训练后,您可以使用评估数据集来评估模型的性能。根据评估结果,您可以对模型进行调优,并尝试进一步提高其准确性性能。 请注意,以上步骤只是一个基本的概述,具体的实施细节可能会因您的具体需求环境而有所不同。在实际操作中,您可能还需要考虑数据增强、正则化、模型的保存加载等其他因素。 希望这些信息对您有所帮助!如果您有其他问题,请随时提问。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值