EMVD
EMVD copied to clipboard
仔细看了训练处理部分,denoise stage的sigma计算应该是有误的
我最近也在复现这篇。
如论文所说只有第一帧是用noise_frame的LL的sigma作初始化
所以每次循环帧训练的时候,https://github.com/Baymax-chen/EMVD/blob/975a2f46b20798fc981bceccc1885f63aad6d870/structure.py#L220
这里只有“第一帧”是这样算的,后面的帧应该是由前面帧算的结果传入的
如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)所述。
我知道,公式(9)是符合的,我是说sigma_ll0只有第一帧需要通过a*z_LL+b算,后面帧的sigma_ll0是前面帧传入的
我觉得作者实现的没有问题啊,sigma_ll0 是基于ll0计算,而ll0 来自前一帧的。求大佬赐教。