C3D代码总结(Pytorch)

C3D代码总结(Pytorch)

github:https://github.com/Niki173/C3D

  1. 介绍
  2. 数据介绍
  3. 文件介绍
  4. 具体操作流程
  5. 运行结果

介绍:
本次C3D模型用的是pytorch框架,我们在UCF101和HMDB51数据集上训练这些模型,本次实验以UCF101为实验对象。

数据介绍
UCF101是从YouTube收集的具有101个操作类别的逼真动作视频的动作识别数据集。此数据集是UCF50数据集的扩展,具有50个操作类别。凭借来自101个动作类别的13320个视频,UCF101在动作方面提供了最大的多样性,并且在相机运动,物体外观和姿势,物体比例,视点,杂乱的背景,照明条件等方面存在大的变化,它是最多的迄今为止具有挑战性的数据 由于大多数可用的行动识别数据集都不现实并且由演员进行,UCF101旨在通过学习和探索新的现实行动类别来鼓励进一步研究行动识别。
101个动作类别中的视频分为25组,每组可包含4-7个动作视频。来自同一组的视频可能共享一些共同的功能,例如类似的背景,类似的观点等。

文件介绍:
1.aesst (demo展示)

2.data(把下载好的UCF101数据集放在这里,输出的路径也可以放在这里)

UCF101(数据集)
ucf101(分成train,val,test)
	train
	val
	test

3.dataloaders(数据载入,视频和图片与标签一一对应)

ucf_labels(数据集标签)
...

4.models(把下载好的预训练权重放这个位置)

5.network(网络模型)

C3D_model
...

6.run(保存训练出来的权重文件)

7.inference(预测文件)

8.mypath(路径文件)

9.train(训练文件)

**UCF101数据集下载地址:**https://www.crcv.ucf.edu/data/UCF101/UCF101.rar

从百度云下载预训练的模型,当前仅支持C3D的预训练模型。
链接:https://pan.baidu.com/s/1iEkK5aV51UvG1Ul5kgUkHw ,提取码:ch8y

如果不想训练,单纯想拿来检测也可以,下载测试权重文件,然后找到inference文件把相对于的路径改成你自己设置的路径,就可以实现。
链接:https://pan.baidu.com/s/1DC_tF2lyVlvhNV9htunk4g ,提取码:3v4h

具体操作流程:

1.下载好所需文件。(UCF101数据集,预训练模型,测试所用的权重(可选)),前面两个一定要下载,第三个可下载也可以不下载。

2.修改相对的路径
打开mypath.py文件
C3D代码总结(Pytorch)_第1张图片
下面提个醒,输出文件夹它是自动生成的,千万不要自己去创建一个了文件.不然会出现不必要的错误。(小白的我就是一开始就错在这了。)
C3D代码总结(Pytorch)_第2张图片
3.微调参数
train.py文件的超参数。
C3D代码总结(Pytorch)_第3张图片
我想说一下resume_epoch和snapshot。snapshot=10,是指训练10个epoch保存一次权重,所以假设你训练到第9个epoch挂了,但是你想从第9个epoch开始训练,这是不可以的,因为你之前没有保存权重。

4.测试文件(可选)
C3D代码总结(Pytorch)_第4张图片

经过以上更改,一般都不会出现问题,可能大多数是环境配置的问题,具体问题请自己谷歌或者百度,毕竟不同的环境搭配出错的问题也会不一样。

运行结果:

正常情况就会如下图
C3D代码总结(Pytorch)_第5张图片
这一步运行时间比较久,大家请耐心等待

C3D代码总结(Pytorch)_第6张图片
这是我训练20epochs的情况,训练集准确率为99%,验证集96%,测试集为95%。要是需要准确度更高,可以自己微调一下参数就可以了。

拿个视频检测一下
C3D代码总结(Pytorch)_第7张图片
可以看到检测准确率已经达到了99%,这是视频动态检测,所以它的参数会轻微的变化,但是不知道这里怎么上传动图,所以只能以图片展示了。

非常感谢以下博客对我的启发:https://blog.csdn.net/better_boy/article/details/108801411

以上均为原创,请勿转载,如需转载,请注明出处

你可能感兴趣的:(C3D,pytorch,视频处理,计算机视觉,python)