LutaoJiang commited on
Commit
da5fc67
Β·
1 Parent(s): c042813
models/DiMeR/models/DiMeR.py CHANGED
@@ -86,8 +86,11 @@ class DiMeR(nn.Module):
86
 
87
  @spaces.GPU
88
  def init_flexicubes_geometry(self, device, fovy=50.0):
 
89
  camera = PerspectiveCamera(fovy=fovy, device=device)
 
90
  renderer = NeuralRender(device, camera_model=camera)
 
91
  self.geometry = FlexiCubesGeometry(
92
  grid_res=self.grid_res,
93
  scale=self.grid_scale,
 
86
 
87
  @spaces.GPU
88
  def init_flexicubes_geometry(self, device, fovy=50.0):
89
+ print(1)
90
  camera = PerspectiveCamera(fovy=fovy, device=device)
91
+ print(2)
92
  renderer = NeuralRender(device, camera_model=camera)
93
+ print(3)
94
  self.geometry = FlexiCubesGeometry(
95
  grid_res=self.grid_res,
96
  scale=self.grid_scale,
models/DiMeR/models/geometry/camera/perspective_camera.py CHANGED
@@ -24,9 +24,13 @@ def projection(x=0.1, n=1.0, f=50.0, near_plane=None):
24
  class PerspectiveCamera(Camera):
25
  def __init__(self, fovy=49.0, device='cuda'):
26
  super(PerspectiveCamera, self).__init__()
 
27
  self.device = device
 
28
  focal = np.tan(fovy / 180.0 * np.pi * 0.5)
 
29
  self.proj_mtx = torch.from_numpy(projection(x=focal, f=1000.0, n=1.0, near_plane=0.1)).to(self.device).unsqueeze(dim=0)
 
30
 
31
  def project(self, points_bxnx4):
32
  out = torch.matmul(
 
24
  class PerspectiveCamera(Camera):
25
  def __init__(self, fovy=49.0, device='cuda'):
26
  super(PerspectiveCamera, self).__init__()
27
+ print(1.1)
28
  self.device = device
29
+ print(1.2)
30
  focal = np.tan(fovy / 180.0 * np.pi * 0.5)
31
+ print(1.3)
32
  self.proj_mtx = torch.from_numpy(projection(x=focal, f=1000.0, n=1.0, near_plane=0.1)).to(self.device).unsqueeze(dim=0)
33
+ print(1.4)
34
 
35
  def project(self, points_bxnx4):
36
  out = torch.matmul(
models/DiMeR/models/geometry/render/neural_render.py CHANGED
@@ -71,10 +71,15 @@ def compute_vertex_normal(v_pos, t_pos_idx):
71
  class NeuralRender(Renderer):
72
  def __init__(self, device='cuda', camera_model=None):
73
  super(NeuralRender, self).__init__()
 
74
  self.device = device
 
75
  self.ctx = dr.RasterizeCudaContext(device=device)
 
76
  self.projection_mtx = None
 
77
  self.camera = camera_model
 
78
 
79
  # ==============================================================================================
80
  # pixel shader
 
71
  class NeuralRender(Renderer):
72
  def __init__(self, device='cuda', camera_model=None):
73
  super(NeuralRender, self).__init__()
74
+ print(2.1)
75
  self.device = device
76
+ print(2.2)
77
  self.ctx = dr.RasterizeCudaContext(device=device)
78
+ print(2.3)
79
  self.projection_mtx = None
80
+ print(2.4)
81
  self.camera = camera_model
82
+ print(2.5)
83
 
84
  # ==============================================================================================
85
  # pixel shader
models/DiMeR/models/geometry/rep_3d/flexicubes_geometry.py CHANGED
@@ -40,26 +40,35 @@ class FlexiCubesGeometry(Geometry):
40
  self, grid_res=64, scale=2.0, device='cuda', renderer=None,
41
  render_type='neural_render', args=None):
42
  super(FlexiCubesGeometry, self).__init__()
 
43
  self.grid_res = grid_res
44
  self.device = device
45
  self.args = args
 
46
  self.fc = FlexiCubes(device, weight_scale=0.5)
 
47
  self.verts, self.indices = self.fc.construct_voxel_grid(grid_res)
 
48
  if isinstance(scale, list):
49
  self.verts[:, 0] = self.verts[:, 0] * scale[0]
50
  self.verts[:, 1] = self.verts[:, 1] * scale[1]
51
  self.verts[:, 2] = self.verts[:, 2] * scale[1]
52
  else:
53
  self.verts = self.verts * scale
 
54
 
55
  all_edges = self.indices[:, self.fc.cube_edges].reshape(-1, 2)
56
  self.all_edges = torch.unique(all_edges, dim=0)
57
 
58
  # Parameters used for fix boundary sdf
 
59
  self.center_indices, self.boundary_indices = get_center_boundary_index(self.grid_res, device)
 
60
  self.renderer = renderer
61
  self.render_type = render_type
 
62
  self.ctx = dr.RasterizeCudaContext(device=device)
 
63
 
64
  # self.verts.requires_grad_(True)
65
 
 
40
  self, grid_res=64, scale=2.0, device='cuda', renderer=None,
41
  render_type='neural_render', args=None):
42
  super(FlexiCubesGeometry, self).__init__()
43
+ print(3.1)
44
  self.grid_res = grid_res
45
  self.device = device
46
  self.args = args
47
+ print(3.2)
48
  self.fc = FlexiCubes(device, weight_scale=0.5)
49
+ print(3.3)
50
  self.verts, self.indices = self.fc.construct_voxel_grid(grid_res)
51
+ print(3.4)
52
  if isinstance(scale, list):
53
  self.verts[:, 0] = self.verts[:, 0] * scale[0]
54
  self.verts[:, 1] = self.verts[:, 1] * scale[1]
55
  self.verts[:, 2] = self.verts[:, 2] * scale[1]
56
  else:
57
  self.verts = self.verts * scale
58
+ print(3.5)
59
 
60
  all_edges = self.indices[:, self.fc.cube_edges].reshape(-1, 2)
61
  self.all_edges = torch.unique(all_edges, dim=0)
62
 
63
  # Parameters used for fix boundary sdf
64
+ print(3.6)
65
  self.center_indices, self.boundary_indices = get_center_boundary_index(self.grid_res, device)
66
+ print(3.7)
67
  self.renderer = renderer
68
  self.render_type = render_type
69
+ print(3.8)
70
  self.ctx = dr.RasterizeCudaContext(device=device)
71
+ print(3.9)
72
 
73
  # self.verts.requires_grad_(True)
74