RadeGS——PCC损失

注意传入数据不要传错了,不然梯度会出问题
注意维度pred_depth是11280717,mask是1280*717
data7和data6里面照片的分辨率不一样
`def pcc_loss(pred_depth, gt_depth, mask, eps=1e-6, min_valid=50):
if pred_depth.dim() == 3:
pred_depth = pred_depth.squeeze(0)
if gt_depth.dim() == 3:
gt_depth = gt_depth.squeeze(0)

mask = mask > 0

if mask.sum() < min_valid:
    return torch.tensor(0.0, device=pred_depth.device)

pred = pred_depth[mask]
gt = gt_depth[mask]

pred = pred - pred.mean()
gt = gt - gt.mean()

pred_std = pred.std()
gt_std = gt.std()

corr = (pred * gt).mean() / (pred_std * gt_std + eps)

return 1.0 - corr`
posted @ 2025-12-18 21:48  蘑菇味的花魂  阅读(3)  评论(0)    收藏  举报