Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

仔细看了训练处理部分,denoise stage的sigma计算应该是有误的 #2

Open
zrongcheng opened this issue Jul 30, 2021 · 3 comments

Comments

@zrongcheng
Copy link

zrongcheng commented Jul 30, 2021

我最近也在复现这篇。
如论文所说只有第一帧是用noise_frame的LL的sigma作初始化
image
所以每次循环帧训练的时候,

sigma_ll0 = torch.clamp(ll0[:, 0:1, :, :], 0, 1) * coeff_a + coeff_b

这里只有“第一帧”是这样算的,后面的帧应该是由前面帧算的结果传入的
image

@zrongcheng zrongcheng changed the title 仔细训练处理部分,denoise stage的sigma计算应该是有误的 仔细看了训练处理部分,denoise stage的sigma计算应该是有误的 Jul 30, 2021
@Baymax-chen
Copy link
Owner

Baymax-chen commented Jul 30, 2021

如EMVD/structure.py#L221和L222所示,DCNN模块的sigma由当前帧和融合帧计算所得,即
sigma = (1 - gamma) * (1 - gamma) * sigma_ll0 + gamma * gamma * sigma_ll1
denoise_in = torch.cat([fusion_out, ll1, sigma], dim=1)
符合论文中公式(9)所述。

@zrongcheng
Copy link
Author

我知道,公式(9)是符合的,我是说sigma_ll0只有第一帧需要通过a*z_LL+b算,后面帧的sigma_ll0是前面帧传入的

@Lithium07
Copy link

我觉得作者实现的没有问题啊,sigma_ll0 是基于ll0计算,而ll0 来自前一帧的。求大佬赐教。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants