mindcont / SR-Caffe

Super-Resolution use Caffe
GNU General Public License v2.0
6 stars 6 forks source link

how to test my LR image #3

Closed wangwangran closed 6 years ago

wangwangran commented 6 years ago

Hi, I found that when I remove these words "im_l = imresize(im_gt,1/up_scale,'bicubic');" to test my LR image ,it goes wrong,how to deal with it ?Hoping for your reply,thank you first.

mindcont commented 6 years ago

Hi, @wangwangran

The code im_l = imresize(im_gt,1/up_scale,'bicubic') in test/Demo_SR_Conv.m Line42 -Line58 is necessary and can not be blocked.

https://github.com/mindcont/SR-Caffe/blob/2b7b6220d33e70ba1bc50306283c1a796451b6c3/test/Demo_SR_Conv.m#L42-L58

Through it obtains the original low-resolution image scaling block, which is necessary in the next super-resolution steps.

wangwangran commented 6 years ago

不好意思,我现在对这里还不是太懂,你能帮我讲解一下吗?我对这一段的的理解是:将高分辨率图像缩小做成低分辨率图像,然后将该低分辨率图像放入网络,VDSR_Matconvnet(im_l_y,model,up_scale,use_cascade)中的up_scale是期望将低分辨率图像放大的倍数。我想我这一步是不是理解错了。 十分感谢您的帮助。

wangwangran commented 6 years ago

如果按照以上的步骤我就只能获得与原始图像同样大的重建图像,并且低分辨率图像必须是由相应的高分辨率图像生成的。但是我期望输入一个没有对应高分辨率图像的LR小图像,输出得到一个放大的图像。你能帮我解释一下吗?感激不尽。

mindcont commented 6 years ago

SRCNN方法对于一个低分辨率图像,先使用双三次(bicubic)插值将其放大到目标大小,再通过三层卷积网络做非线性映射,得到的结果作为高分辨率图像输出。作者将三层卷积的结构解释成与传统SR方法对应的三个步骤:图像块的提取和特征表示,特征非线性映射和最终的重建

深度学习在图像超分辨率重建中的应用 - taigw的文章 - 知乎 https://zhuanlan.zhihu.com/p/25532538

图像超分辨率重构(一)原理及方法总结

类似的代码:

wangwangran commented 6 years ago

感谢回复。

我明白需要将输入低分辨率图片采取放大操作,该操作在VDSR_Matconvnet()中进行操作如下: for iter = 1:iter_all fprintf('iter:%d\n',iter); %对低分辨率图像双插值 im_y = single(imresize(im_l_y,model_scale,'bicubic')); convfea = vl_nnconv(im_y,weight{1}(:,:,1,:),bias{1},'Pad',1);

%可视化第一个卷积层 64个卷积核与低分辨率的卷积结果

我不明白的是:为什么在demo中用im_gt缩小图片制作的低分辨率图片可以通过网络, im_l = imresize(im_gt,1/up_scale,'bicubic'); im_gt = double(im_gt); im_l = double(im_l) / 255.0;

而我直接输入一个比较小低分辨率图片im_l就会报错。报的错误为: 错误:GPUArray/imresize

非常感激您的解惑

mindcont commented 6 years ago

@wangwangran 注意观察你输入图像和demo测试图像的不同,在matlab中加断点,追踪错误原因