1. 25 Mar, 2022 1 commit
    • 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
  2. 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
  3. 21 Mar, 2022 1 commit
  4. 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
  5. 09 Mar, 2022 2 commits
  6. 28 Feb, 2022 1 commit
  7. 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
  8. 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
  9. 18 Feb, 2022 1 commit
  10. 15 Feb, 2022 1 commit
  11. 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
  12. 10 Feb, 2022 1 commit
  13. 09 Feb, 2022 1 commit
  14. 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
  15. 21 Jan, 2022 2 commits
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 06 Dec, 2021 1 commit
  23. 05 Nov, 2021 1 commit
  24. 26 Oct, 2021 2 commits
  25. 16 Oct, 2021 1 commit
    • Jeremy Reizenstein's avatar
      defaulted grid_sizes in points2vols · 34b1b4ab
      Jeremy Reizenstein authored
      Summary: Fix #873, that grid_sizes defaults to the wrong dtype in points2volumes code, and mask doesn't have a proper default.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31503545
      
      fbshipit-source-id: fa32a1a6074fc7ac7bdb362edfb5e5839866a472
      34b1b4ab