in phosa/global_opt.py [0:0]
def compute_sil_loss(self, verts, faces):
loss_sil = torch.tensor(0.0).float().cuda()
for i in range(len(verts)):
v = verts[i].unsqueeze(0)
K = self.K_rois[i]
rend = self.renderer(v, faces[i], K=K, mode="silhouettes")
image = self.keep_mask[i] * rend
l_m = torch.sum((image - self.ref_mask[i]) ** 2) / self.keep_mask[i].sum()
loss_sil += l_m
return {"loss_sil": loss_sil / len(verts)}