介绍:
本次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文件
下面提个醒,输出文件夹它是自动生成的,千万不要自己去创建一个了文件.不然会出现不必要的错误。(小白的我就是一开始就错在这了。)
3.微调参数
train.py文件的超参数。
我想说一下resume_epoch和snapshot。snapshot=10,是指训练10个epoch保存一次权重,所以假设你训练到第9个epoch挂了,但是你想从第9个epoch开始训练,这是不可以的,因为你之前没有保存权重。
经过以上更改,一般都不会出现问题,可能大多数是环境配置的问题,具体问题请自己谷歌或者百度,毕竟不同的环境搭配出错的问题也会不一样。
这是我训练20epochs的情况,训练集准确率为99%,验证集96%,测试集为95%。要是需要准确度更高,可以自己微调一下参数就可以了。
拿个视频检测一下
可以看到检测准确率已经达到了99%,这是视频动态检测,所以它的参数会轻微的变化,但是不知道这里怎么上传动图,所以只能以图片展示了。
非常感谢以下博客对我的启发:https://blog.csdn.net/better_boy/article/details/108801411
以上均为原创,请勿转载,如需转载,请注明出处