GuoShi28 / CBDNet

Code for "Toward Convolutional Blind Denoising of Real Photographs", CVPR 2019
Apache License 2.0
501 stars 92 forks source link

其他数据集的训练问题 #45

Closed hwztable closed 3 years ago

hwztable commented 3 years ago

您好: 目前我在寻找一种处理真实噪声的网络模型。您预训练的模型十分适用于我的数据集(医疗方向),去噪效果比较优异,但也有low-level上的细节损失,所以我想根据您分享的matlab训练代码用于我的数据集中。 拜读过您的论文以后我有几个问题想了解: 1)论文里您提到噪声估计网络中需要输入noisy observation y来产生noise level map σ_hat(y),我是否可以理解为:noisy observation y = 带有真实噪声的原图,noisy level map σ_hat(y)是噪声的分布? 2)基于问题1),CNN_D把CNN_E的输出作为输入,最终输出为去噪图像,那么整个CNN_D+CNN_E是不需要训练集的清晰图像?

GuoShi28 commented 3 years ago

1) noisy level map σ_hat(y)是噪声的水平,对于高斯,就是方差。这篇论文是pixel-wise的,每个像素的方差不相同。不过应该不是噪声分布在哪里的意思。 2)这个问题我没有完全理解,应该是需要GT才能训练的。

hwztable commented 3 years ago

感谢您的回复,不好意思没有把问题2说清楚;

就是说,我现有一份noisy images,但没有它对应的ground truth clean images ;那么是否需要先对noisy images进行去噪(假如使用BM3D),得出rough clean images,把它作为ground truth,才符合训练要求。如果这样做,会不会只是拟合rough denoise的效果(也就是BM3D的去噪效果)。

hwztable commented 3 years ago

还有一个想探讨的点是: image 上图为噪声原图,血管下的肉质粉色略微偏白 image 而使用您预训练的模型进行去噪以后,肉质丢失了粉色的low-level特征,我猜想应该是噪声估计子网络把这部分特征当作了噪声处理,想听听您的意见。 谢谢!

GuoShi28 commented 3 years ago

我猜想可能是以下原因:(1)目前CBDNet的噪声模型相对简单,而且是针对相机成像的,在医学成像领域,噪声的建模是否有更好的方式,这个我不太了解。建议建模上,可以细化下。(2)噪声水平的估计不准,我的经验,用小网络只能很粗糙的估计噪声水平。(3)网络的backbone,我简单的使用UNet,发现有些地方有些过平滑。(4)这个有点像偏色的问题,建议使用类似医学的图像专门训练网络。我使用的是常用的训练集,主要是风景和人之类的,于医学图像的先验分布差别较大。

hwztable commented 3 years ago

十分感谢您的建议!我尝试过很多别的模型,基本都是在高斯噪声的基础上进行去噪的,效果远不如CBDNet的表现好。 您的工作中考虑了真实噪声、相机噪声的建模与噪声合成,这些方面都非常贴合于工业界的去噪要求,真的很棒!再次感谢您的回复。