1. 29 Mar, 2022 3 commits
    • janEbert's avatar
      Fix dtype propagation (#1141) · b602edcc
      janEbert authored
      Summary:
      Previously, dtypes were not propagated correctly in composed transforms, resulting in errors when different dtypes were mixed. Even specifying a dtype in the constructor does not fix this. Neither does specifying the dtype for each composition function invocation (e.g. as a `kwarg` in `rotate_axis_angle`).
      
      With the change, I also had to modify the default dtype of `RotateAxisAngle`, which was `torch.float64`; it is now `torch.float32` like for all other transforms. This was required because the fix in propagation broke some tests due to dtype mismatches.
      
      This change in default dtype in turn broke two tests due to precision changes (calculations that were previously done in `torch.float64` were now done in `torch.float32`), so I changed the precision tolerances to be less strict. I chose the lowest power of ten that passed the tests here.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1141
      
      Reviewed By: patricklabatut
      
      Differential Revision: D35192970
      
      Pulled By: bottler
      
      fbshipit-source-id: ba0293e8b3595dfc94b3cf8048e50b7a5e5ed7cf
      b602edcc
    • Jeremy Reizenstein's avatar
      Optional ReplaceableBase · 21262e38
      Jeremy Reizenstein authored
      Summary: Allow things like `renderer:Optional[BaseRenderer]` in configurables.
      
      Reviewed By: davnov134
      
      Differential Revision: D35118339
      
      fbshipit-source-id: 1219321b2817ed4b26fe924c6d6f73887095c985
      21262e38
    • Jeremy Reizenstein's avatar
      test_build for implicitron · e332f9ff
      Jeremy Reizenstein authored
      Summary: To ensure that tests outside implicitron/ don't use implicitron, split the test for recursive includes in to two. License header checking is not needed here any more.
      
      Reviewed By: shapovalov
      
      Differential Revision: D35077830
      
      fbshipit-source-id: 2ebe7436a6dcc5d21a116434f6ddd08705dfab34
      e332f9ff
  2. 25 Mar, 2022 2 commits
    • Jeremy Reizenstein's avatar
      Reinforce test skipping · 97894fb3
      Jeremy Reizenstein authored
      Summary: Attempt to solve an internal issue
      
      Reviewed By: shapovalov
      
      Differential Revision: D35143263
      
      fbshipit-source-id: b4fd9ee441d85f0a3ee08f2f1e7febd1c1ccbe86
      97894fb3
    • Roman Shapovalov's avatar
      Return a typed structured config from default_args for callables · 645a47d0
      Roman Shapovalov authored
      Summary:
      Before the fix, running get_default_args(C: Callable) returns an unstructured DictConfig which causes Enums to be handled incorrectly. This is a fix.
      
      WIP update: Currently tests still fail whenever a function signature contains an untyped argument: This needs to be somehow fixed.
      
      Reviewed By: bottler
      
      Differential Revision: D34932124
      
      fbshipit-source-id: ecdc45c738633cfea5caa7480ba4f790ece931e8
      645a47d0
  3. 24 Mar, 2022 2 commits
    • Roman Shapovalov's avatar
      Using the new dataset idx API everywhere. · e2622d79
      Roman Shapovalov authored
      Summary: Using the API from D35012121 everywhere.
      
      Reviewed By: bottler
      
      Differential Revision: D35045870
      
      fbshipit-source-id: dab112b5e04160334859bbe8fa2366344b6e0f70
      e2622d79
    • Roman Shapovalov's avatar
      API for accessing frames in order in Implicitron dataset. · c0bb49b5
      Roman Shapovalov authored
      Summary: We often want to iterate over frames in the sequence in temporal order. This diff provides the API to do that. `seq_to_idx` should probably be considered to have `protected` visibility.
      
      Reviewed By: davnov134
      
      Differential Revision: D35012121
      
      fbshipit-source-id: 41896672ec35cd62f3ed4be3aa119efd33adada1
      c0bb49b5
  4. 21 Mar, 2022 1 commit
  5. 16 Mar, 2022 1 commit
    • Jeremy Reizenstein's avatar
      PLY with uint face data (#1104) · 9b5a3ffa
      Jeremy Reizenstein authored
      Summary: Fix assumption that face indices are signed in the PLY file, as reported in #1104.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D34892598
      
      fbshipit-source-id: a8b23bfac1357bdc11bbbf752098319142239804
      9b5a3ffa
  6. 09 Mar, 2022 2 commits
  7. 28 Feb, 2022 1 commit
  8. 25 Feb, 2022 2 commits
    • Winnie Lin's avatar
      add min_triangle_area argument to IsInsideTriangle · 471b1268
      Winnie Lin authored
      Summary:
      1. changed IsInsideTriangle in geometry_utils to take in min_triangle_area parameter instead of hardcoded value
      2. updated point_mesh_cpu.cpp and point_mesh_cuda.[h/cu] to adapt to changes in geometry_utils function signatures
      3. updated point_mesh_distance.py and test_point_mesh_distance.py to modify _C. calls
      
      Reviewed By: bottler
      
      Differential Revision: D34459764
      
      fbshipit-source-id: 0549e78713c6d68f03d85fb597a13dd88e09b686
      471b1268
    • Jeremy Reizenstein's avatar
      PyTorch 1.7 compatibility · 4d043fc9
      Jeremy Reizenstein authored
      Summary: Small changes discovered based on circleCI failures.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D34426807
      
      fbshipit-source-id: 819860f34b2f367dd24057ca7490284204180a13
      4d043fc9
  9. 21 Feb, 2022 3 commits
    • Georgia Gkioxari's avatar
      small numerical fix to point_mesh · ee71c7c4
      Georgia Gkioxari authored
      Summary: Small fix by adjusting the area `eps` to account for really small faces when computing point to face distances
      
      Reviewed By: bottler
      
      Differential Revision: D34331336
      
      fbshipit-source-id: 51c4888ea46fefa4e31d5b0bb494a9f9d77813cd
      ee71c7c4
    • Georgia Gkioxari's avatar
      lower eps · 3de41223
      Georgia Gkioxari authored
      Summary: Lower the epsilon value in the IoU3D calculation to fix small numerical issue from GH#1082
      
      Reviewed By: bottler
      
      Differential Revision: D34371597
      
      fbshipit-source-id: 12443fa359b7755ef4ae60e9adf83734a1a295ae
      3de41223
    • Jeremy Reizenstein's avatar
      points2vols test fix · feb5d363
      Jeremy Reizenstein authored
      Summary: Fix tests which depended on output tensors being identical to input ones, which now fail in main PyTorch branch because of some change in autograd. The functions still work in-place.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D34375817
      
      fbshipit-source-id: 295ae195f75eab6c7abab412c997470d8de8add1
      feb5d363
  10. 18 Feb, 2022 1 commit
  11. 15 Feb, 2022 1 commit
  12. 14 Feb, 2022 1 commit
    • Jeremy Reizenstein's avatar
      move LinearWithRepeat to pytorch3d · 2a1de3b6
      Jeremy Reizenstein authored
      Summary: Move this simple layer from the NeRF project into pytorch3d.
      
      Reviewed By: shapovalov
      
      Differential Revision: D34126972
      
      fbshipit-source-id: a9c6d6c3c1b662c1b844ea5d1b982007d4df83e6
      2a1de3b6
  13. 10 Feb, 2022 1 commit
  14. 09 Feb, 2022 1 commit
  15. 24 Jan, 2022 3 commits
    • Jeremy Reizenstein's avatar
      use workaround for points_normals · c2862ff4
      Jeremy Reizenstein authored
      Summary:
      Use existing workaround for batched 3x3 symeig because it is faster than torch.symeig.
      
      Added benchmark showing speedup. True = workaround.
      ```
      Benchmark                Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      normals_True_3000            16237           17233             31
      normals_True_6000            33028           33391             16
      normals_False_3000        18623069        18623069              1
      normals_False_6000        36535475        36535475              1
      ```
      
      Should help https://github.com/facebookresearch/pytorch3d/issues/988
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D33660585
      
      fbshipit-source-id: d1162b277f5d61ed67e367057a61f25e03888dce
      c2862ff4
    • Jeremy Reizenstein's avatar
      avoid deprecated raysamplers · 67778cae
      Jeremy Reizenstein authored
      Summary: Migrate away from NDCGridRaysampler and GridRaysampler to their more flexible replacements.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D33281584
      
      fbshipit-source-id: 65f8702e700a32d38f7cd6bda3924bb1707a0633
      67778cae
    • Jeremy Reizenstein's avatar
      New raysamplers · 3eb42338
      Jeremy Reizenstein authored
      Summary: New MultinomialRaysampler succeeds GridRaysampler bringing masking and subsampling. Correspondingly, NDCMultinomialRaysampler succeeds NDCGridRaysampler.
      
      Reviewed By: nikhilaravi, shapovalov
      
      Differential Revision: D33256897
      
      fbshipit-source-id: cd80ec6f35b110d1d20a75c62f4e889ba8fa5d45
      3eb42338
  16. 21 Jan, 2022 2 commits
  17. 20 Jan, 2022 1 commit
    • Jeremy Reizenstein's avatar
      ambient lights batching #1043 · 9e2bc3a1
      Jeremy Reizenstein authored
      Summary:
      convert_to_tensors_and_broadcast had a special case for a single input, which is not used anywhere except fails to do the right thing if a TensorProperties has only one kwarg. At the moment AmbientLights may be the only way to hit the problem. Fix by removing the special case.
      
      Fixes https://github.com/facebookresearch/pytorch3d/issues/1043
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D33638345
      
      fbshipit-source-id: 7a6695f44242e650504320f73b6da74254d49ac7
      9e2bc3a1
  18. 07 Jan, 2022 1 commit
    • Jeremy Reizenstein's avatar
      initialize pointcloud from list containing Nones · fc4dd802
      Jeremy Reizenstein authored
      Summary:
      The following snippet should work in more cases.
           point_cloud = Pointclouds(
               [pcl.points_packed() for pcl in point_clouds],
               features=[pcl.features_packed() for pcl in point_clouds],
           )
      
      We therefore allow features and normals inputs to be lists which contain some (but not all) Nones.
      
      The initialization of a Pointclouds from empty data is also made a bit better now at working out how many feature channels there are.
      
      Reviewed By: davnov134
      
      Differential Revision: D31795089
      
      fbshipit-source-id: 54bf941ba80672d699ffd5ac28927740e830f8ab
      fc4dd802
  19. 04 Jan, 2022 2 commits
    • Jeremy Reizenstein's avatar
      More company name & License · 741777b5
      Jeremy Reizenstein authored
      Summary: Manual adjustments for license changes.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D33405657
      
      fbshipit-source-id: 8a21735726f3aece9f9164da9e3b272b27db8032
      741777b5
    • Jeremy Reizenstein's avatar
      Update license for company name · 9eeb456e
      Jeremy Reizenstein authored
      Summary: Update all FB license strings to the new format.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D33403538
      
      fbshipit-source-id: 97a4596c5c888f3c54f44456dc07e718a387a02c
      9eeb456e
  20. 21 Dec, 2021 4 commits
    • Nikhila Ravi's avatar
      Move Harmonic embedding to core pytorch3d · f9a26a22
      Nikhila Ravi authored
      Summary:
      Moved `HarmonicEmbedding` function in core PyTorch3D.
      In the next diff will update the NeRF project.
      
      Reviewed By: bottler
      
      Differential Revision: D32833808
      
      fbshipit-source-id: 0a12ccd1627c0ce024463c796544c91eb8d4d122
      f9a26a22
    • Nikhila Ravi's avatar
      Enable __getitem__ for Cameras to return an instance of Cameras · 28ccdb73
      Nikhila Ravi authored
      Summary:
      Added a custom `__getitem__` method to `CamerasBase` which returns an instance of the appropriate camera instead of the `TensorAccessor` class.
      
      Long term we should deprecate the `TensorAccessor` and the `__getitem__` method on `TensorProperties`
      
      FB: In the next diff I will update the uses of `select_cameras` in implicitron.
      
      Reviewed By: bottler
      
      Differential Revision: D33185885
      
      fbshipit-source-id: c31995d0eb126981e91ba61a6151d5404b263f67
      28ccdb73
    • Nikhila Ravi's avatar
      Join points as batch · 262c1bfc
      Nikhila Ravi authored
      Summary: Function to join a list of pointclouds as a batch similar to the corresponding function for Meshes.
      
      Reviewed By: bottler
      
      Differential Revision: D33145906
      
      fbshipit-source-id: 160639ebb5065e4fae1a1aa43117172719f3871b
      262c1bfc
    • Jeremy Reizenstein's avatar
      screen space docstrings fix · eb2bbf84
      Jeremy Reizenstein authored
      Summary: Fix some comments to match the recent change to transform_points_screen.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D33243697
      
      fbshipit-source-id: dc8d182667a9413bca2c2e3657f97b2f7a47c795
      eb2bbf84
  21. 18 Dec, 2021 1 commit
    • Georgia Gkioxari's avatar
      small fix for iou3d · ccfb72cc
      Georgia Gkioxari authored
      Summary:
      A small numerical fix for IoU for 3D boxes, fixes GH #992
      
      * Adds a check for boxes with zero side areas (invalid boxes)
      * Fixes numerical issue when two boxes have coplanar sides
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D33195691
      
      fbshipit-source-id: 8a34b4d1f1e5ec2edb6d54143930da44bdde0906
      ccfb72cc
  22. 07 Dec, 2021 3 commits
    • Jeremy Reizenstein's avatar
      new tests demonstrating pixel matching · 70acb3e4
      Jeremy Reizenstein authored
      Summary: Demonstrate current behavior of pixels with new tests of all renderers.
      
      Reviewed By: gkioxari
      
      Differential Revision: D32651141
      
      fbshipit-source-id: 3ca30b4274ed2699bc5e1a9c6437eb3f0b738cbf
      70acb3e4
    • Jeremy Reizenstein's avatar
      screen cameras lose -1 · bf3bc6f8
      Jeremy Reizenstein authored
      Summary:
      All the renderers in PyTorch3D (pointclouds including pulsar, meshes, raysampling) use align_corners=False style. NDC space goes between the edges of the outer pixels. For a non square image with W>H, the vertical NDC space goes from -1 to 1 and the horizontal from -W/H to W/H.
      
      However it was recently pointed out that functionality which deals with screen space inside the camera classes is inconsistent with this. It unintentionally uses align_corners=True. This fixes that.
      
      This would change behaviour of the following:
      - If you create a camera in screen coordinates, i.e. setting in_ndc=False, then anything you do with the camera which touches NDC space may be affected, including trying to use renderers. The transform_points_screen function will not be affected...
      - If you call the function “transform_points_screen” on a camera defined in NDC space results will be different. I have illustrated in the diff how to get the old results from the new results but this probably isn’t the right long-term solution..
      
      Reviewed By: gkioxari
      
      Differential Revision: D32536305
      
      fbshipit-source-id: 377325a9137282971dcb7ca11a6cba3fc700c9ce
      bf3bc6f8
    • Jeremy Reizenstein's avatar
      move benchmarks to separate directory · a0e2d2e3
      Jeremy Reizenstein authored
      Summary: Move benchmarks to a separate directory as tests/ is getting big.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D32885462
      
      fbshipit-source-id: a832662a494ee341ab77d95493c95b0af0a83f43
      a0e2d2e3
  23. 06 Dec, 2021 1 commit