yxuhan / AdaMPI

[SIGGRAPH 2022] Single-View View Synthesis in the Wild with Learned Adaptive Multiplane Images
218 stars 24 forks source link

关于训练过程出现了一些问题 #12

Closed chenpaopao closed 1 year ago

chenpaopao commented 1 year ago

根据MINE的训练代码,我们设置了rgb loss、loss_ssim_tgt、loss_smooth_tgt、loss_rank损失训练得到的视点结果发现出现断层现象(rgb图像不连续,分层) (合成的新视点深度图如下图所示,有明显的分层,而目标深度是连续的) image 请问您对深度损失是如何处理的? rgb_tgt_valid_mask = torch.ge(tgt_mask_syn, self.config["mpi.valid_mask_threshold"]).to(torch.float32) #输入的tensor进行逐元素比较,并返回一个新的tensor,其中大于等于阈值的元素被设置为1,小于阈值的元素被设置为0 loss_map = torch.abs(tgt_imgs_syn - self.tgt_imgs) * rgb_tgt_valid_mask # tgt_imgs_syn self.tgt_imgs 取值范围都是0-1 loss_rgb_tgt = loss_map.mean() # L1 loss

    #2. L1 loss at tgt depth frame
    loss_depth_tgt = torch.mean(torch.abs(
        tgt_disparity_syn -  self.tgt_disp)) #F.instance_norm()
yxuhan commented 1 year ago

hi @chenpaopao 我们计算深度loss的方式和你相同,深度图明显分层的artifact似乎是alpha学的太hard了?

chenpaopao commented 1 year ago

感谢您的解答,另外能否告知一下一般需要训练多少个epoch才能收敛,我在训练了十几个epoch(训练集大概5000张图片)后发现assign loss看起来一直没有收敛的迹象,我怀疑是我的assign loss有问题 或者是训练的时间太短,使用的数据集太少导致

yxuhan commented 1 year ago

我们在coco上训练,大概有100k图片,训练2个epoch基本就能收敛。对于assign loss,可以先只使用assign loss训练Plane Adjustment Network,看能否收敛;如果可以,assign loss的实现应该就没问题。