PReNet icon indicating copy to clipboard operation
PReNet copied to clipboard

关于psnr指标

Open jjb202 opened this issue 5 years ago • 12 comments

您好我用rain100H训练100个epoch后并且测试出来的指标只有PSNR=28.0568,似乎并没有达到论文中29.46这么高

jjb202 avatar Jul 02 '19 01:07 jjb202

我们在1080Ti 和 Tivan Xp(不同cuda和pytorch版本)训练过几个模型,结果都是29.4x左右,不会差这么多。

csdwren avatar Jul 02 '19 01:07 csdwren

好的谢谢,我这里似乎是自己psnr问题

jjb202 avatar Jul 02 '19 02:07 jjb202

好的谢谢,我这里似乎是自己psnr问题 rgb通道就是28,y通道就是29.46,不过论文里其他方法也比它们原论文里高,评判标准一样就可以了吧

liang233 avatar Jul 02 '19 02:07 liang233

你好,我用PRN训练100个epoch之后的psnr才26.88左右,没有论文里28.07那么高,方便提供下你计算psnr的代码吗?谢谢

whyandbecause avatar Aug 15 '19 06:08 whyandbecause

https://github.com/csdwren/PReNet/blob/master/statistic/statistic_rain100H.m

csdwren avatar Aug 15 '19 06:08 csdwren

刚用Rain100H那个文件测了下,psnr上到28以上了,ssim貌似只有0.6多

whyandbecause avatar Aug 15 '19 07:08 whyandbecause

我在win和ubuntu的不同matlab版本都测试过,结果没有问题。

csdwren avatar Aug 15 '19 07:08 csdwren

其实并不是matlbab 的版本问题,而是因为python 和matlab 之间的YCbCr之间的转换不同所导致的PSNR的差异的问题。实测之后发现该算法通过matlab计算在Y 通道的PSNR 比 比对应的python 所计算的PSNR 高至少1.2dB 。这也就是为什么明明可以用python 计算PSNR 却非要通过将图片保存下之后通过matlab 计算的原因。 希望能大家都能知道这种骚操作,从而更好的水paper。 记,被坑了调计算PSNR bug的一天 https://stackoverflow.com/questions/44944455/psnr-values-differ-in-matlab-implementation-and-python/44947714#44947714?newreg=a08c3603a9e04cf3a7288ada5b4dfa59

yarqian avatar Feb 19 '20 11:02 yarqian

其实并不是matlbab 的版本问题,而是因为python 和matlab 之间的YCbCr之间的转换不同所导致的PSNR的差异的问题。实测之后发现该算法通过matlab计算在Y 通道的PSNR 比 比对应的python 所计算的PSNR 高至少1.2dB 。这也就是为什么明明可以用python 计算PSNR 却非要通过将图片保存下之后通过matlab 计算的原因。 希望能大家都能知道这种骚操作,从而更好的水paper。 记,被坑了调计算PSNR bug的一天 https://stackoverflow.com/questions/44944455/psnr-values-differ-in-matlab-implementation-and-python/44947714#44947714?newreg=a08c3603a9e04cf3a7288ada5b4dfa59

麻烦详细看论文和代码的readme,我已经详细说明了所有对比方法的psnr和ssim都是统一用我的matlab代码计算。RESCAN是我们重新训练的(原论文报的结果很低),JORDER提供了去雨结果图,这些结果图我已经在readme里给出了链接。即使有些方法从原论文copy数值,也保证了跟我们算的JORDER指标一致才采用。所有的数值对比我已经保证了公平性。

csdwren avatar Feb 19 '20 12:02 csdwren

其实并不是matlbab 的版本问题,而是因为python 和matlab 之间的YCbCr之间的转换不同所导致的PSNR的差异的问题。实测之后发现该算法通过matlab计算在Y 通道的PSNR 比 比对应的python 所计算的PSNR 高至少1.2dB 。这也就是为什么明明可以用python 计算PSNR 却非要通过将图片保存下之后通过matlab 计算的原因。 希望能大家都能知道这种骚操作,从而更好的水paper。 记,被坑了调计算PSNR bug的一天 https://stackoverflow.com/questions/44944455/psnr-values-differ-in-matlab-implementation-and-python/44947714#44947714?newreg=a08c3603a9e04cf3a7288ada5b4dfa59

麻烦详细看论文和代码的readme,我已经详细说明了所有对比方法的psnr和ssim都是统一用我的matlab代码计算。RESCAN是我们重新训练的(原论文报的结果很低),JORDER提供了去雨结果图,这些结果图我已经在readme里给出了链接。即使有些方法从原论文copy数值,也保证了跟我们算的JORDER指标一致才采用。所有的数值对比我已经保证了公平性。

不好意思, 我并没有说你论文里数据的问题, 你的模型我按着你的matlab 代码测了效果和论文一致,我这只是单纯的想说明存在这样的一个事,就是同样的图片,在正确的python代码和matlab 代码之间的psnr结果存在差异。 我后来发现之前已经遇到过这样的代码, 只是今天特意测了一下。无意冒犯,万望理解

yarqian avatar Feb 19 '20 12:02 yarqian

只要能保证所有对比方法用同一种度量方式就没有问题。 现在各种论文的数值本来就很乱,matlab内嵌的psnr和ssim函数的结果跟我提供的也不一样,用自己习惯的方式保证对比的公平性就可以了。

csdwren avatar Feb 19 '20 12:02 csdwren

只要能保证所有对比方法用同一种度量方式就没有问题。 现在各种论文的数值本来就很乱,matlab内嵌的psnr和ssim函数的结果跟我提供的也不一样,用自己习惯的方式保证对比的公平性就可以了。

理解理解,看到你把rain100H 里面训练集中和测试集一样场景的图片特意挑出来就知道老哥是个实在人

yarqian avatar Feb 19 '20 12:02 yarqian