MCPcopy Create free account
hub / github.com/apple/ml-facelit / sample

Method sample

facelit/camera_utils.py:102–118  ·  view source on GitHub ↗
(horizontal_mean, vertical_mean, horizontal_stddev=0, vertical_stddev=0, radius=1, batch_size=1, device='cpu')

Source from the content-addressed store, hash-verified

100
101 @staticmethod
102 def sample(horizontal_mean, vertical_mean, horizontal_stddev=0, vertical_stddev=0, radius=1, batch_size=1, device='cpu'):
103 h = (torch.rand((batch_size, 1), device=device) * 2 - 1) * horizontal_stddev + horizontal_mean
104 v = (torch.rand((batch_size, 1), device=device) * 2 - 1) * vertical_stddev + vertical_mean
105 v = torch.clamp(v, 1e-5, math.pi - 1e-5)
106
107 theta = h
108 v = v / math.pi
109 phi = torch.arccos(1 - 2*v)
110
111 camera_origins = torch.zeros((batch_size, 3), device=device)
112
113 camera_origins[:, 0:1] = radius*torch.sin(phi) * torch.cos(math.pi-theta)
114 camera_origins[:, 2:3] = radius*torch.sin(phi) * torch.sin(math.pi-theta)
115 camera_origins[:, 1:2] = radius*torch.cos(phi)
116
117 forward_vectors = math_utils.normalize_vecs(-camera_origins)
118 return create_cam2world_matrix(forward_vectors, camera_origins)
119
120def create_cam2world_matrix(forward_vector, origin):
121 """

Callers

nothing calls this directly

Calls 1

create_cam2world_matrixFunction · 0.85

Tested by

no test coverage detected