Deep3DFaceReconstruction
Deep3DFaceReconstruction copied to clipboard
关于point_buf和顶点法线计算
def Compute_norm(self, face_shape):
face_id = self.tri.long()
point_id = self.point_buf.long()
shape = face_shape
v1 = shape[:, face_id[:, 0], :]
v2 = shape[:, face_id[:, 1], :]
v3 = shape[:, face_id[:, 2], :]
e1 = v1 - v2
e2 = v2 - v3
face_norm = e1.cross(e2)
empty = torch.zeros((face_norm.size(0), 1, 3),
dtype=face_norm.dtype, device=face_norm.device)
face_norm = torch.cat((face_norm, empty), 1)
v_norm = face_norm[:, point_id, :].sum(2)
v_norm = v_norm / v_norm.norm(dim=2).unsqueeze(2)
return v_norm
为什么不把empty cat在前边,这样point_buf里的index也不用-1了,而且这样用0补齐(N,8)就可以了,也不会有让人难以理解的以面的个数作为占位数字补齐
请问如果我想重建耳朵和脖子部分,怎么建立53215维度的point_buf啊
请问如果我想重建耳朵和脖子部分,怎么建立53215维度的point_buf啊
hello,Have you solved the problem?I met the same problem when getting full region with neck and ears, would you be nice to give me some help? thanks for your attention