How to understand 10m in the camera depth?
Closed this issue · 0 comments
hopef commented
Thanks for your nice work.
I can't understand points_const[:, :, :, :, :, 2, :] = 10
in the height2location function.
Why did you set a magic number(10) to the camera depth here?
Are there any more details about 10?
Thanks!
def height2localtion(self, points, sensor2ego_mat, sensor2virtual_mat, intrin_mat, reference_heights):
batch_size, num_cams, _, _ = sensor2ego_mat.shape
reference_heights = reference_heights.view(batch_size, num_cams, 1, 1, 1, 1,
1).repeat(1, 1, points.shape[2], points.shape[3], points.shape[4], 1, 1)
height = -1 * points[:, :, :, :, :, 2, :] + reference_heights[:, :, :, :, :, 0, :]
points_const = points.clone()
points_const[:, :, :, :, :, 2, :] = 10
points_const = torch.cat(
(points_const[:, :, :, :, :, :2] * points_const[:, :, :, :, :, 2:3],
points_const[:, :, :, :, :, 2:]), 5)
combine_virtual = sensor2virtual_mat.matmul(torch.inverse(intrin_mat))
points_virtual = combine_virtual.view(batch_size, num_cams, 1, 1, 1, 4, 4).matmul(points_const)
ratio = height[:, :, :, :, :, 0] / points_virtual[:, :, :, :, :, 1, 0]
ratio = ratio.view(batch_size, num_cams, ratio.shape[2], ratio.shape[3], ratio.shape[4], 1, 1).repeat(1, 1, 1, 1, 1, 4, 1)
points = points_virtual * ratio
points[:, :, :, :, :, 3, :] = 1
combine_ego = sensor2ego_mat.matmul(torch.inverse(sensor2virtual_mat))
points = combine_ego.view(batch_size, num_cams, 1, 1, 1, 4,
4).matmul(points)
return points