超分辨率重建(SR) Python+OpenCV+EDSR模型
文章目录
首先 1024节日快乐。
虽然我前面介绍了很多种模型,但是真的要自己实现超分辨率重建,还不是哪个模型网上资料多,实现简单就做哪个模型么…(嘴上很抗拒,身体很诚实)
相关链接:
接下来,我将用EDSR模型,来实现超分辨率重建。
注意
- 在本次实验中,姑且先认为超清晰度重建和图像复原是两个概念。
- 超清晰度重建是输入一张清晰小图,输出一张清晰大图。而图像复原不改变原有分辨率。
- 虽然在深度学习角度,我认为二者没有很大的区别,但是要是要明确,我输出的是一张清晰的大图,分辨率会比原来大2~4倍(这个和具体参数相关)
1、安装OpenCV contrib模块
- OpenCV中的超分辨率功能被集成在了contrib模块中,因此我们首先需要安装OpenCV的扩展模块。
- 超分辨率被集成在dnn_superres模块中,如果小伙伴们电脑空间有限,可以只编译这一个模块。
- 我看网上的教程,大多为了安装openCV的comtrib还安装了cmake等工具(这就是用c++的缺点吧…配置困难),但其实,对于python用户来说,只需要切换到cmd,输入以下指令即可:
pip install opencv-contrib-python
- 本文不介绍c++版本contrib的安装了,试了挺久但是没有成功,编译时一直出现各种奇怪的问题,百度也百度不到。而python版就简单多了,直接PiP即可。人生苦短,我用Python!!!!!!!
- 我们将使用contrib模块中的dnn_superres子模块进行具体的代码调用。
2、contrib中dnn_superres包的介绍
- dnn_superres这个包,就是我们最终在代码中使用的包。
- 但是在深度学习模型中,只有接口包还不够,还需要训练对应的模型(毕竟是深度学习嘛,肯定离不开模型的这个概念)
- dnn