SRCNN中的PSNR计算问题

最近用pytorch训练了一个SRCNN模型,然后在跟原始论文(Learning a Deep Convolutional Network for Image Super-Resolution)中的数据比较的时候,发现差别很大。
在这里插入图片描述

比如说使用Set5数据集中的baby这张图片,使用Bicubic先缩小两倍,然后再放大两倍,论文里面得到的PSNR是37.07 dB。这跟我用python版本实现得出来的结果差别很大。我使用torchvision.transforms中的Resize方法只得到了35.7453 dB。就算改成Image.LANCZOS也才达到36.6008 dB,距离37.07 dB 还是有差距。
期间我尝试了其他python库的Resize算法,比如cv2的Resize和PIL的Resize。但是都达不到37.07 dB。有趣的是,使用不同库的Resize方法的出来的结果都不一样。在排除了计算PSNR出错的可能后,我把原因定位在了Resize算法上面。
因为论文配套代码是用MatLab实现的,于是猜测可能跟MatLab里面的Resize有关。但是MatLab是商业软件,没法测啊!于是又开始在网上找MatLab的替代软件。还真找到了Octave
一顿操作猛如虎,立马下载安装,写代码。期间还遇到了Image包装不上,各种卡死,没办法只好手动拷贝。当我看到打印出来的PSNR是37开头的时候,我一惊,真是皇天不负有心人啊!卡了我两天的问题终于找到原因了。虽然后来又发现用Octave自带的PSNR计算出来的居然高达37.157 dB,而我用python计算出来的是37.048 dB,但是基本上和论文中的数据差不多了。
感叹一下,以前不知道,现在才发现MatLab原来也挺强大的。怪不得学术圈都用这个,如果突然被禁了,也挺难受的吧。虽然有替代的Octave可以用,但是体验真的不好,各种卡死。有时间再继续研究一下他们的Resize算法是怎么实现的吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值