Fast-SRGAN 项目介绍
项目目标
Fast-SRGAN 项目的目标是实现实时超分辨率,以提高低分辨率视频的画质。项目当前参照了 SR-GAN 的架构,采用像素重排(pixel shuffle)技术来加快上采样的速度。
性能表现
在项目的速度基准测试中,针对不同的输入和输出分辨率进行了帧速率(FPS)和运行时间的评估。测试在 M1 Pro 的 MacBook GPU 上进行,并对 800 帧取平均值:
- 将 90x160 的输入图像放大至 360x640(360p)时耗时约 0.01 秒,可达到每秒 82 帧。
- 将 180x320 的输入图像放大至 720x1080(720p)时耗时约 0.04 秒,可达到每秒 27 帧。
这表明可以实现接近 30 帧每秒的 720p 上采样效果。
环境要求
项目使用 Python 3.10 进行测试。用户需要使用 Pipfile 来安装所需的依赖包:
pip install pipenv --upgrade
pipenv install --system --deploy
预训练模型
在项目的 ‘models’ 目录中,提供了一个在 DIV2k 数据集上训练过的生成器模型。该模型包含 8 个残差块,每层包含 64 个滤波器。用户可以通过以下命令尝试使用预训练模型处理自己的图片:
python inference.py --image_dir 'path/to/your/image/directory' --output_dir 'path/to/save/super/resolution/images'
模型训练
要训练模型,用户只需编辑配置文件 configs/config.yaml
,然后运行以下命令启动训练:
python train.py
用户也可以通过命令行修改配置参数。以下命令将使用批量大小为 32、包含 12 个残差块的生成器,处理指定路径的数据集:
python train.py data.image_dir="/path/to/image/dataset" training.batch_size=32 generator.n_layers=12
训练过程中,模型检查点和训练摘要会保存在 tensorboard 中。用户可以通过指向 outputs
目录来监控训练进程。
样本结果
以下是预训练模型的一些结果展示。左侧为低分辨率图像经过四倍双三次插值后得到的图像,中间是模型的输出,右侧则是实际的高分辨率图像。
参与贡献
如果用户对于如何提高模型性能、增加指标或其他方面有建议,欢迎提交拉取请求或提出问题。项目很高兴接受任何形式的贡献。