mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-12-21 06:40:35 +08:00
implicitron v0 (#1133)
Co-authored-by: Jeremy Francis Reizenstein <bottler@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
0e377c6850
commit
cdd2142dd5
48
tests/implicitron/test_eval_cameras.py
Normal file
48
tests/implicitron/test_eval_cameras.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This source code is licensed under the BSD-style license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
import torch
|
||||
from pytorch3d.implicitron.tools.eval_video_trajectory import (
|
||||
generate_eval_video_cameras,
|
||||
)
|
||||
from pytorch3d.renderer.cameras import PerspectiveCameras, look_at_view_transform
|
||||
from pytorch3d.transforms import axis_angle_to_matrix
|
||||
|
||||
|
||||
if os.environ.get("FB_TEST", False):
|
||||
from common_testing import TestCaseMixin
|
||||
else:
|
||||
from tests.common_testing import TestCaseMixin
|
||||
|
||||
|
||||
class TestEvalCameras(TestCaseMixin, unittest.TestCase):
|
||||
def setUp(self):
|
||||
torch.manual_seed(42)
|
||||
|
||||
def test_circular(self):
|
||||
n_train_cameras = 10
|
||||
n_test_cameras = 100
|
||||
R, T = look_at_view_transform(azim=torch.rand(n_train_cameras) * 360)
|
||||
amplitude = 0.01
|
||||
R_jiggled = torch.bmm(
|
||||
R, axis_angle_to_matrix(torch.rand(n_train_cameras, 3) * amplitude)
|
||||
)
|
||||
cameras_train = PerspectiveCameras(R=R_jiggled, T=T)
|
||||
cameras_test = generate_eval_video_cameras(
|
||||
cameras_train, trajectory_type="circular_lsq_fit", trajectory_scale=1.0
|
||||
)
|
||||
|
||||
positions_test = cameras_test.get_camera_center()
|
||||
center = positions_test.mean(0)
|
||||
self.assertClose(center, torch.zeros(3), atol=0.1)
|
||||
self.assertClose(
|
||||
(positions_test - center).norm(dim=[1]),
|
||||
torch.ones(n_test_cameras),
|
||||
atol=0.1,
|
||||
)
|
||||
Reference in New Issue
Block a user