| |
| |
| |
| |
| |
|
|
| import os |
| import unittest |
|
|
| import torch |
| from pytorch3d.implicitron.dataset.frame_data import FrameData |
| from pytorch3d.implicitron.dataset.rendered_mesh_dataset_map_provider import ( |
| RenderedMeshDatasetMapProvider, |
| ) |
| from pytorch3d.implicitron.tools.config import expand_args_fields |
| from pytorch3d.renderer import FoVPerspectiveCameras |
| from tests.common_testing import TestCaseMixin |
|
|
|
|
| inside_re_worker = os.environ.get("INSIDE_RE_WORKER", False) |
|
|
|
|
| class TestDataCow(TestCaseMixin, unittest.TestCase): |
| def test_simple(self): |
| if inside_re_worker: |
| return |
| expand_args_fields(RenderedMeshDatasetMapProvider) |
| self._runtest(use_point_light=True, num_views=4) |
| self._runtest(use_point_light=False, num_views=4) |
|
|
| def _runtest(self, **kwargs): |
| provider = RenderedMeshDatasetMapProvider(**kwargs) |
| dataset_map = provider.get_dataset_map() |
| known_matrix = torch.zeros(1, 4, 4) |
| known_matrix[0, 0, 0] = 1.7321 |
| known_matrix[0, 1, 1] = 1.7321 |
| known_matrix[0, 2, 2] = 1.0101 |
| known_matrix[0, 3, 2] = -1.0101 |
| known_matrix[0, 2, 3] = 1 |
|
|
| self.assertIsNone(dataset_map.val) |
| self.assertIsNone(dataset_map.test) |
| self.assertEqual(len(dataset_map.train), provider.num_views) |
|
|
| value = dataset_map.train[0] |
| self.assertIsInstance(value, FrameData) |
|
|
| self.assertEqual(value.image_rgb.shape, (3, 128, 128)) |
| self.assertEqual(value.fg_probability.shape, (1, 128, 128)) |
| |
| self.assertEqual(value.fg_probability[0, 0, 0], 0) |
| self.assertEqual(value.fg_probability.max(), 1.0) |
| self.assertIsInstance(value.camera, FoVPerspectiveCameras) |
| self.assertEqual(len(value.camera), 1) |
| self.assertIsNone(value.camera.K) |
| matrix = value.camera.get_projection_transform().get_matrix() |
| self.assertClose(matrix, known_matrix, atol=1e-4) |
|
|