基于深度学习(Pytorch)的视频识别项目 数据预处理部分的小总结

在UCF101视频数据预处理的这一部分,我花了半个月的时间学习在线方法和代码,我真的很感谢老板们!然后我和项目组长讨论并修改了代码hhh,基本上完成了任务~

今天我心血来潮,立了一面旗帜,坚持从今天开始写代码注释。因此,用这个博客开始我的程之旅的笔记hhh

这是数据预处理部分的一般总结:

首先,从官方网站下载UCF101视频训练集和ucfTrainTestlist的训练数据和测试数据。其次,根据ucfTrainTestlist中的信息,将UCF101训练集的视频分为训练和测试,即所有视频都相应地移动到新建的训练文件夹和测试文件夹中。

2。下载并安装ffmpeg工具,使用ffmpeg提取所有小视频的帧,并将它们存储在相应小视频的原始目录中。同时,根据train _ or _ test、classname、filename _ no _ ext、nb _ frames、一行和四列的格式,从每个小视频中提取的帧数被记录并存储在新构建的名为data_file的csv文件中,该文件与train文件夹和测试文件夹位于同一目录中。

3。在上述视频被转换成帧之后,然后用数据处理这些帧。

首先我们创建一个继承抽象类torch.utils.data.Dataset的子类UCF101我们有这四个数据处理函数:ClipSubstractMean()减去RGB的平均值;Rescale()用于调整图像的大小。随机裁剪()用于裁剪图片并随机截取图片的一部分。ToTensor()用于将numpy类型表示的图像转换为torch表示的图像,即,将图像转换为张量,并将其归一化为[0,1]。我们把图像处理的这四个功能结合成变换。在此之后,transform=transforms.com姿态(clipsubstractmean(),rescale(),randomcrop(),to tenant ()])作为参数传递到类UCF101,实例化类UCF101的对象myUCF101,将myUCF101作为参数传递到数据加载器,然后实例化数据加载器的对象数据加载器。

大概的方法是酱~