BasicSR&&Super-resolution——Video2video

BasicSR工具包的学习小结

这里以自己写的video2video为例,输入低分辨率的视频给工具包,后面直接输出高分辨率的视频,希望通过此例能给刚入门BasicSR以及Video super-resolution的小伙伴一点启发。

我的代码:https://github.com/ACALJJ32/BasicSR_ACALJJ32.git

在原本的BasicSR工具包中,提供了dist_train.sh和dist_test.sh,这里我用EDVR为例,写了dist_demo.sh
BasicSR&&Super-resolution——Video2video_第1张图片
通过这个脚本可以发现,我其实是按顺序执行了三个python脚本:preprocess.py 、demo.py、frame2video.py,三个脚本的作用如字面意义,先进行预处理,将视频帧切分,准备目录;demo.py主要进行推理和存放超分辨率图;frame2video.py进行收尾工作,用ffmpeg合成视频。这三个脚本都实现在basicsr目录下。
BasicSR&&Super-resolution——Video2video_第2张图片
将视频帧切分好后,将路径告诉demo.py,我自己重新写了一个DataLoader,也就是在basicsr/data下面新建了一个sliding_window_dataset.pyBasicSR&&Super-resolution——Video2video_第3张图片 按照滑动窗口的方式给EDVR模型输入视频帧。在demo.py中加载自己的test_dataloader,因为test_dataloaders中会有很多dataloader,平时训练时会有test_dataloader和val_dataloader,但是这次在做demo时只用考虑test_dataloader即可。
BasicSR&&Super-resolution——Video2video_第4张图片
BasicSR&&Super-resolution——Video2video_第5张图片
最后读取存放视频帧的路径,用ffmpeg合成视频:
BasicSR&&Super-resolution——Video2video_第6张图片
对于配置文件的填写,只要照着EDVR test模式的配置填写即可:
BasicSR&&Super-resolution——Video2video_第7张图片
希望可以帮助到正在学习BasicSR工具包的小伙伴~

你可能感兴趣的:(视频超分(CV),论文复现,opencv,python,深度学习,神经网络,pytorch)