窝牛号

USRNet端到端深度学习网络实现图片视频的超分辨率与清晰度

USRNet

上期文章我们分享了基于OpenCV的超分辨率的代码实现,哪里主要使用到了EDSR、ESPCN、FSRCNN、LapSRN等模型,虽然使用OpenCV能够实现超分辨率,但是图片的清晰图并没有增加,当有一张稍微模糊的图片时,增加分辨率的同时,我们也更希望提高图片的清晰图,如上图的图片,本期文章,我们介绍一下USRNet模型结构

USRNet网络

USRNet提出了一种端到端的可训练展开网络,该网络同时利用了基于学习的方法和基于模型的方法。USRNet会通过继承flexibility of model-based methods来针对不同比例因子超分辨模糊,嘈杂的图像a single model,同时保持advantages of learning-based methods。

USRNet网络

建议的USRNet的总体体系结构具有8个迭代。USRNet通过a single model将LR图像,比例因子,模糊内核和噪声水平作为输入,可以灵活地处理经典降级。具体而言,USRNet包括三个主要模块,包括数据模块d,使HR估计更加清楚,现有模块P10,使HR估计清洁器,和超参数模块H中,其控制的输出d和P。

数据模块D: 数据项的封闭式解决方案;不含可训练的参数先前模块P: 先前术语的ResUNet去噪器超参数模块H: MLP为超参数;充当滑动条以控制D和P的输出

其代码作者已经共享,我们可以直接访问github下载源码,本源码基于PyTorch 1.4.0,需要提前安装PyTorch ,下载解压后的结构如下图:

其中main_test_realapplication.py文件主要来进行图片的超分辨率的实现,关于其他2个脚本文件,可自行尝试。

当下载完源代码后,需要下载提供的预训练模型,一共包括4个模型文件,USRNet以及USRGAN与tiny模型,我们主要下载USRNet以及USRGAN即可,当然若想提高运行速度,也可以下载tiny模型

USRNet网络

模型下载完成后,需要把模型放置在model_zoo文件夹下

USRNet

然后打开main_test_realapplication.py源码,查看主函数部分

def main(): model_name = &39; 39;usrgan&39;usrnet&39;usrgan_tiny&39;usrnet_tiny&39;set_real& test set, &39; test_image = &39; 39;chip.png&39;comic.png&test_image = &39; sf = 4 default: False save_E = True save zoomed LR, Estimated images if &39; in test_image: noise_level_img = 15 Gaussian kernel widths for x1, x2, x3, x4 else: noise_level_img = 2 default Gaussian kernel widths of clean/sharp images for x1, x2, x3, x4

代码截图

我们这里需要修改的参数主要是:

Model_name:这里可以选择的参数&39; | &39; | &39; | &39;testset_name:这里主要是test的图片文件夹路径,我们可以把需要测试的图片放置在USRNet-mastertestsetsset_real文件夹下test_image:testsetsset_real文件夹下的需要测试的图片文件名称sf:这里设置超分辨的放大倍数,可以设置为1/2/3/4

当然我们的图片若是比较清晰,可以选择noise_level_img = 2低底噪的内核参数

以上设置完成后,便可以运行代码进行图片的超分辨率的实现,代码运行完成后,会在results文件夹下生产超分辨的图片

除了USRNet模型外,也可以修改代码中的model为USRGAN,来实现图片的超分辨对比

从图片的结果可以看出,使用USRNet模型的图片超分辨的实现,不仅在分辨率上有增加,其图片的清晰度也有了明显的改善,当然,若只是想提高图片的清晰图,不需要提高分辨率,可以直接设置SF参数为1,模型会自动进行图片的清晰图的提高

这里,你也可以修改一下源代码,进行视频的实时超分辨的提高,或者模糊视频的实时处理等操作。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1