赞
踩
这里以自己写的video2video为例,输入低分辨率的视频给工具包,后面直接输出高分辨率的视频,希望通过此例能给刚入门BasicSR以及Video super-resolution的小伙伴一点启发。
我的代码:https://github.com/ACALJJ32/BasicSR_ACALJJ32.git
在原本的BasicSR工具包中,提供了dist_train.sh和dist_test.sh,这里我用EDVR为例,写了dist_demo.sh
通过这个脚本可以发现,我其实是按顺序执行了三个python脚本:preprocess.py 、demo.py、frame2video.py,三个脚本的作用如字面意义,先进行预处理,将视频帧切分,准备目录;demo.py主要进行推理和存放超分辨率图;frame2video.py进行收尾工作,用ffmpeg合成视频。这三个脚本都实现在basicsr目录下。
将视频帧切分好后,将路径告诉demo.py,我自己重新写了一个DataLoader,也就是在basicsr/data下面新建了一个sliding_window_dataset.py 按照滑动窗口的方式给EDVR模型输入视频帧。在demo.py中加载自己的test_dataloader,因为test_dataloaders中会有很多dataloader,平时训练时会有test_dataloader和val_dataloader,但是这次在做demo时只用考虑test_dataloader即可。
最后读取存放视频帧的路径,用ffmpeg合成视频:
对于配置文件的填写,只要照着EDVR test模式的配置填写即可:
希望可以帮助到正在学习BasicSR工具包的小伙伴~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。