Пример #1
0
 def test_shape_tuple(self, device, dtype):
     inp = torch.zeros(3, 2, 41, 41, device=device, dtype=dtype)
     SP = kornia.geometry.ScalePyramid(n_levels=1, min_size=30)
     out = SP(inp)
     assert len(out) == 3
     assert len(out[0]) == 1
     assert len(out[1]) == 1
     assert len(out[2]) == 1
Пример #2
0
 def test_shape_tuple(self):
     inp = torch.zeros(3, 2, 6, 6)
     SP = kornia.geometry.ScalePyramid(n_levels=1)
     out = SP(inp)
     assert len(out) == 3
     assert len(out[0]) == 1
     assert len(out[1]) == 1
     assert len(out[2]) == 1
Пример #3
0
 def test_blur_order(self, device, dtype):
     inp = torch.rand(1, 1, 31, 31, device=device, dtype=dtype)
     SP = kornia.geometry.ScalePyramid(n_levels=3)
     sp, _, _ = SP(inp)
     for _, pyr_level in enumerate(sp):
         for _, img in enumerate(pyr_level):
             img = img.squeeze().view(3, -1)
             max_per_blur_level_val, _ = img.max(dim=1)
             assert torch.argmax(max_per_blur_level_val).item() == 0
Пример #4
0
 def test_blur_order(self):
     inp = torch.rand(1, 1, 12, 12)
     SP = kornia.geometry.ScalePyramid(n_levels=5)
     sp, sigmas, pd = SP(inp)
     for i, pyr_level in enumerate(sp):
         for ii, img in enumerate(pyr_level):
             img = img.squeeze().view(5, -1)
             max_per_blur_level_val, _ = img.max(dim=1)
             assert torch.argmax(max_per_blur_level_val).item() == 0
     return
Пример #5
0
 def test_symmetry_preserving(self):
     inp = torch.zeros(1, 1, 12, 12)
     inp[0, 0, 4:8, 4:8] = 1.0
     SP = kornia.geometry.ScalePyramid(n_levels=5)
     sp, sigmas, pd = SP(inp)
     for i, pyr_level in enumerate(sp):
         for ii, img in enumerate(pyr_level):
             img = img.squeeze()
             assert torch.allclose(img, img.flip(1))
             assert torch.allclose(img, img.flip(2))
     return
Пример #6
0
 def test_symmetry_preserving(self, device, dtype):
     PS = 16
     R = 2
     inp = torch.zeros(1, 1, PS, PS, device=device, dtype=dtype)
     inp[..., PS // 2 - R:PS // 2 + R, PS // 2 - R:PS // 2 + R] = 1.0
     SP = kornia.geometry.ScalePyramid(n_levels=3)
     sp, _, _ = SP(inp)
     for _, pyr_level in enumerate(sp):
         for _, img in enumerate(pyr_level):
             img = img.squeeze()
             assert_close(img, img.flip(1))
             assert_close(img, img.flip(2))
Пример #7
0
 def test_symmetry_preserving(self, device, dtype):
     PS = 16
     R = 2
     inp = torch.zeros(1, 1, PS, PS, device=device, dtype=dtype)
     inp[..., PS // 2 - R:PS // 2 + R, PS // 2 - R:PS // 2 + R] = 1.0
     SP = kornia.geometry.ScalePyramid(n_levels=3)
     sp, sigmas, pd = SP(inp)
     for i, pyr_level in enumerate(sp):
         for ii, img in enumerate(pyr_level):
             img = img.squeeze()
             assert torch.allclose(img, img.flip(1), atol=1e-5, rtol=1e-3)
             assert torch.allclose(img, img.flip(2), atol=1e-5, rtol=1e-3)
     return
Пример #8
0
 def test_n_levels_shape(self, device, dtype):
     inp = torch.zeros(1, 1, 32, 32, device=device, dtype=dtype)
     SP = kornia.geometry.ScalePyramid(n_levels=3)
     sp, _, _ = SP(inp)
     assert sp[0].shape == (1, 1, 3 + 3, 32, 32)
Пример #9
0
 def test_shape_batch_double(self, device, dtype):
     inp = torch.zeros(3, 2, 31, 31, device=device, dtype=dtype)
     SP = kornia.geometry.ScalePyramid(n_levels=1, double_image=True)
     sp, _, _ = SP(inp)
     assert sp[0].shape == (3, 2, 1 + 3, 62, 62)
Пример #10
0
 def test_shape_batch(self, device, dtype):
     inp = torch.zeros(3, 2, 31, 31, device=device, dtype=dtype)
     SP = kornia.geometry.ScalePyramid(n_levels=1)
     sp, _, _ = SP(inp)
     assert sp[0].shape == (3, 2, 3 + 1, 31, 31)
Пример #11
0
 def sp_tuple(img):
     sp, _, _ = SP()(img)
     return tuple(sp)
Пример #12
0
 def test_n_levels_shape(self):
     inp = torch.zeros(1, 1, 6, 6)
     SP = kornia.geometry.ScalePyramid(n_levels=5)
     sp, sigmas, pd = SP(inp)
     assert sp[0].shape == (1, 5, 1, 6, 6)
Пример #13
0
 def test_shape_batch(self):
     inp = torch.zeros(3, 2, 6, 6)
     SP = kornia.geometry.ScalePyramid(n_levels=1)
     sp, sigmas, pd = SP(inp)
     assert sp[0].shape == (3, 1, 2, 6, 6)
Пример #14
0
 def sp_tuple(img):
     sp, sigmas, pd = SP()(img)
     return tuple(sp)
Пример #15
0
 def test_shape_batch_double(self, device):
     inp = torch.zeros(3, 2, 6, 6).to(device)
     SP = kornia.geometry.ScalePyramid(n_levels=1, double_image=True)
     sp, sigmas, pd = SP(inp)
     assert sp[0].shape == (3, 1, 2, 12, 12)
Пример #16
0
 def test_n_levels_shape(self, device):
     inp = torch.zeros(1, 1, 32, 32).to(device)
     SP = kornia.geometry.ScalePyramid(n_levels=3)
     sp, sigmas, pd = SP(inp)
     assert sp[0].shape == (1, 3, 1, 32, 32)