1. 13 May, 2022 2 commits
    • Jeremy Reizenstein's avatar
      return types for dataset_zoo, dataloader_zoo · 2c190152
      Jeremy Reizenstein authored
      Summary: Stronger typing for these functions
      
      Reviewed By: shapovalov
      
      Differential Revision: D36170489
      
      fbshipit-source-id: a2104b29dbbbcfcf91ae1d076cd6b0e3d2030c0b
      2c190152
    • Jeremy Reizenstein's avatar
      clarify expand_args_fields · 90ab219d
      Jeremy Reizenstein authored
      Summary: Fix doc and add a call to expand_args_fields for each implicit function.
      
      Reviewed By: shapovalov
      
      Differential Revision: D35929811
      
      fbshipit-source-id: 8c3cfa56b8d8908fd2165614960e3d34b54717bb
      90ab219d
  2. 12 May, 2022 6 commits
    • Jeremy Reizenstein's avatar
      resnet34 weights for remote executor · 9e57b994
      Jeremy Reizenstein authored
      Summary: Like vgg16 for lpips, internally we need resnet34 weights for coming feature extractor tests.
      
      Reviewed By: davnov134
      
      Differential Revision: D36349361
      
      fbshipit-source-id: 1c33009c904766fcc15e7e31cd15d0f820c57354
      9e57b994
    • David Novotny's avatar
      Raysampler as pluggable · e767c4b5
      David Novotny authored
      Summary:
      This converts raysamplers to ReplaceableBase so that users can hack their own raysampling impls.
      
      Context: Andrea tried to implement TensoRF within implicitron but could not due to the need to implement his own raysampler.
      
      Reviewed By: shapovalov
      
      Differential Revision: D36016318
      
      fbshipit-source-id: ef746f3365282bdfa9c15f7b371090a5aae7f8da
      e767c4b5
    • David Novotny's avatar
      Generic Raymarcher refactor · e85fa03c
      David Novotny authored
      Summary: Uses the GenericRaymarcher only as an ABC and derives two common implementations - EA raymarcher and Cumsum raymarcher (from neural volumes)
      
      Reviewed By: shapovalov
      
      Differential Revision: D35927653
      
      fbshipit-source-id: f7e6776e71f8a4e99eefc018a47f29ae769895ee
      e85fa03c
    • David Novotny's avatar
      ViewPooler class · 47d06c89
      David Novotny authored
      Summary: Implements a ViewPooler that groups ViewSampler and FeatureAggregator.
      
      Reviewed By: shapovalov
      
      Differential Revision: D35852367
      
      fbshipit-source-id: c1bcaf5a1f826ff94efce53aa5836121ad9c50ec
      47d06c89
    • John Reese's avatar
      formatting changes from black 22.3.0 · bef959c7
      John Reese authored
      Summary:
      Applies the black-fbsource codemod with the new build of pyfmt.
      
      paintitblack
      
      Reviewed By: lisroach
      
      Differential Revision: D36324783
      
      fbshipit-source-id: 280c09e88257e5e569ab729691165d8dedd767bc
      bef959c7
    • Krzysztof Chalupka's avatar
      Add Fragments.detach() · c21ba144
      Krzysztof Chalupka authored
      Summary: Add a capability to detach all detachable tensors in Fragments.
      
      Reviewed By: bottler
      
      Differential Revision: D35918133
      
      fbshipit-source-id: 03b5d4491a3a6791b0a7bc9119f26c1a7aa43196
      c21ba144
  3. 11 May, 2022 2 commits
  4. 10 May, 2022 1 commit
  5. 09 May, 2022 2 commits
    • Roman Shapovalov's avatar
      Extracted ImplicitronModelBase and unified API for GenericModel and ModelDBIR · a6dada39
      Roman Shapovalov authored
      Summary:
      To avoid model_zoo, we need to make GenericModel pluggable.
      I also align creation APIs for convenience.
      
      Reviewed By: bottler, davnov134
      
      Differential Revision: D35933093
      
      fbshipit-source-id: 8228926528eb41a795fbfbe32304b8019197e2b1
      a6dada39
    • David Novotny's avatar
      Add **kwargs to ViewMetrics.forward · 5c598418
      David Novotny authored
      Summary: GenericModel crashes in case the `aux` field of any Renderer is populated. This is because the `rendered.aux` is unpacked to  ViewMetrics.forward whose signature does not contain **kwargs. Hence, the contents of `aux` are unknown to forward's signature resulting in a crash.
      
      Reviewed By: bottler
      
      Differential Revision: D36166118
      
      fbshipit-source-id: 906a067ea02a3648a69667422466451bc219ebf6
      5c598418
  6. 06 May, 2022 4 commits
    • Krzysztof Chalupka's avatar
      Add type hints to MeshRenderer(WithFragments) · 2c64635d
      Krzysztof Chalupka authored
      Reviewed By: bottler
      
      Differential Revision: D36148049
      
      fbshipit-source-id: 87ca3ea8d5b5a315418cc597b36fd0a1dffb1e00
      2c64635d
    • Jeremy Reizenstein's avatar
      test runner for eval_demo · ec9580a1
      Jeremy Reizenstein authored
      Summary:
      Create a test runner for the eval_demo code.  Debugging this is useful for understanding datasets.
      
      Introduces an environment variable INTERACTIVE_TESTING for ignoring tests which are not intended for use in regular test runs.
      
      Reviewed By: shapovalov
      
      Differential Revision: D35964016
      
      fbshipit-source-id: ab0f93aff66b6cfeca942b14466cf81f7feb2224
      ec9580a1
    • Jeremy Reizenstein's avatar
      lstsq fix in circle fitting for old PyTorch · 44cb00e4
      Jeremy Reizenstein authored
      Summary: the pytorch3d.compat.lstsq function needs a 2D rhs.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D36195826
      
      fbshipit-source-id: 9dbafea2057035cc04973f56729dc97b47dcac83
      44cb00e4
    • Jeremy Reizenstein's avatar
      Add vis to readthedocs · 44ca5f95
      Jeremy Reizenstein authored
      Summary: pytorch3d/vis has been missing. Reduce prominence of common.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D36008733
      
      fbshipit-source-id: bbc9fbb031c8dc95870087fa48df29410ae69e35
      44ca5f95
  7. 04 May, 2022 1 commit
  8. 28 Apr, 2022 3 commits
    • Jeremy Reizenstein's avatar
      version 0.6.2 · 2bd65027
      Jeremy Reizenstein authored
      Summary: Update PyTorch3D version number
      
      Differential Revision: D35980555
      
      fbshipit-source-id: 637ccd33eef22d909985d2fce3958c78f3d0d551
      2bd65027
    • Jeremy Reizenstein's avatar
      INSTALL/README updates · 11635fbd
      Jeremy Reizenstein authored
      Summary: Updates for version 0.6.2
      
      Differential Revision: D35980557
      
      fbshipit-source-id: e677a22d4f8a323376310dfb536133bee8045f1f
      11635fbd
    • Jeremy Reizenstein's avatar
      update tutorials for version 0.6.2 · a268b18e
      Jeremy Reizenstein authored
      Summary: colab is now 1.11.0
      
      Differential Revision: D35980556
      
      fbshipit-source-id: 988a06c652518fb61ccbef2e7197e3422a706250
      a268b18e
  9. 27 Apr, 2022 2 commits
    • Krzysztof Chalupka's avatar
      fit_textured_mesh tutorial fixes · 7ea0756b
      Krzysztof Chalupka authored
      Summary: Updated to FoV cameras and added perspective_correct=False, otherwise it'll nan out.
      
      Reviewed By: bottler
      
      Differential Revision: D35970900
      
      fbshipit-source-id: 569b8de0b124d415f4b841924ddc85585cee2dda
      7ea0756b
    • Krzysztof Chalupka's avatar
      SplatterPhongShader 1: Pull out common Shader functionality into ShaderBase · 96889dea
      Krzysztof Chalupka authored
      Summary: Most of the shaders copypaste exactly the same code into `__init__` and `to`. I will be adding a new shader in the next diff, so let's make it a bit easier.
      
      Reviewed By: bottler
      
      Differential Revision: D35767884
      
      fbshipit-source-id: 0057e3e2ae3be4eaa49ae7e2bf3e4176953dde9d
      96889dea
  10. 26 Apr, 2022 4 commits
    • Jeremy Reizenstein's avatar
      isort->usort · 9f443ed2
      Jeremy Reizenstein authored
      Summary: Move from isort to usort now that usort supports sorting within lines.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D35893280
      
      fbshipit-source-id: 621c1cd285199d785408504430ee0bdf8683b21e
      9f443ed2
    • Jeremy Reizenstein's avatar
      object_mask only if required · 9320100a
      Jeremy Reizenstein authored
      Summary: New function to check if a renderer needs the object mask.
      
      Reviewed By: davnov134
      
      Differential Revision: D35254009
      
      fbshipit-source-id: 4c99e8a1c0f6641d910eb32bfd6cfae9d3463d50
      9320100a
    • Jeremy Reizenstein's avatar
      chunked_inputs · 2edb93d1
      Jeremy Reizenstein authored
      Summary: Make method for SDF's use of object mask more general, so that a renderer can be given per-pixel values.
      
      Reviewed By: shapovalov
      
      Differential Revision: D35247412
      
      fbshipit-source-id: 6aeccb1d0b5f1265a3f692a1453407a07e51a33c
      2edb93d1
    • Jeremy Reizenstein's avatar
      fix entry points in setup.py · 41c594ca
      Jeremy Reizenstein authored
      Summary: For `pip install` without -e, we need to name the entry point functions in setup.py.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D35933037
      
      fbshipit-source-id: be15ae1a4bb7c5305ea2ba992d07f3279c452250
      41c594ca
  11. 14 Apr, 2022 1 commit
  12. 13 Apr, 2022 4 commits
    • Tim Hatch's avatar
      apply import merging for fbcode/vision/fair (2 of 2) · 34bbb3ad
      Tim Hatch authored
      Summary:
      Applies new import merging and sorting from µsort v1.0.
      
      When merging imports, µsort will make a best-effort to move associated
      comments to match merged elements, but there are known limitations due to
      the diynamic nature of Python and developer tooling. These changes should
      not produce any dangerous runtime changes, but may require touch-ups to
      satisfy linters and other tooling.
      
      Note that µsort uses case-insensitive, lexicographical sorting, which
      results in a different ordering compared to isort. This provides a more
      consistent sorting order, matching the case-insensitive order used when
      sorting import statements by module name, and ensures that "frog", "FROG",
      and "Frog" always sort next to each other.
      
      For details on µsort's sorting and merging semantics, see the user guide:
      https://usort.readthedocs.io/en/stable/guide.html#sorting
      
      Reviewed By: bottler
      
      Differential Revision: D35553814
      
      fbshipit-source-id: be49bdb6a4c25264ff8d4db3a601f18736d17be1
      34bbb3ad
    • Jeremy Reizenstein's avatar
      Fix inferred typing · df08ea8e
      Jeremy Reizenstein authored
      Summary: D35513897 (https://github.com/facebookresearch/pytorch3d/commit/4b94649f7b7de4ce3a0597c5a17a7596928ad20b) was a pyre infer job which got some things wrong. Correct by adding the correct types, so these things shouldn't need worrying about again.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D35546144
      
      fbshipit-source-id: 89f6ea2b67be27aa0b0b14afff4347cccf23feb7
      df08ea8e
    • Jeremy Reizenstein's avatar
      make points2volumes feature rescaling optional · 78fd5af1
      Jeremy Reizenstein authored
      Summary: Add option to not rescale the features, giving more control. https://github.com/facebookresearch/pytorch3d/issues/1137
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D35219577
      
      fbshipit-source-id: cbbb643b91b71bc908cedc6dac0f63f6d1355c85
      78fd5af1
    • h5jam's avatar
      fix typo on NeRF tutorial (#1163) · 0a7c354d
      h5jam authored
      Summary:
      Hello, I'm Seungoh from South Korea.
      
      I'm finding typo while I'm learning tutorials.
      Wrong numbers are changed to right numbers.
      
      Thank you.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1163
      
      Reviewed By: patricklabatut
      
      Differential Revision: D35546843
      
      Pulled By: bottler
      
      fbshipit-source-id: b6e70cdf821fd4a108dfd416e8f4bcb3ecbeb449
      0a7c354d
  13. 12 Apr, 2022 2 commits
    • Pyre Bot Jr's avatar
      suppress errors in `fbcode/vision` - batch 2 · b79764ea
      Pyre Bot Jr authored
      Differential Revision: D35590813
      
      fbshipit-source-id: 0f35d7193f839a41f3cac18bf20236b815368f19
      b79764ea
    • Krzysztof Chalupka's avatar
      Disallow None vertex/face lists in texture submeshing · b1ff9d9f
      Krzysztof Chalupka authored
      Summary: In order to simplify the interface, we disallow passing None as vertex/face lists to textures.submeshes. This function would only ever get called from within meshes.submeshes where we can provide both arguments, even if they're not necessary for a specific submesh type.
      
      Reviewed By: bottler
      
      Differential Revision: D35581161
      
      fbshipit-source-id: aeab99308a319b144e141ca85ca7515f855116da
      b1ff9d9f
  14. 11 Apr, 2022 5 commits
    • Krzysztof Chalupka's avatar
      Submesh 4/n: TexturesVertex submeshing · 22f86072
      Krzysztof Chalupka authored
      Summary: Add submeshing capability for meshes with TexturesVertex.
      
      Reviewed By: bottler
      
      Differential Revision: D35448534
      
      fbshipit-source-id: 6d16a31a5bfb24ce122cf3c300a7616bc58353d1
      22f86072
    • Krzysztof Chalupka's avatar
      Submesh 3/n: Add submeshing functionality · 050f650a
      Krzysztof Chalupka authored
      Summary:
      Copypasting the docstring:
      ```
              Split a mesh into submeshes, defined by face indices of the original Meshes object.
      
              Args:
                face_indices:
                  Let the original mesh have verts_list() of length N.
                  Can be either
                    - List of length N. The n-th element is a list of length num_submeshes_n
                      (empty lists are allowed). Each element of the n-th sublist is a LongTensor
                      of length num_faces.
                    - List of length N. The n-th element is a possibly empty padded LongTensor of
                      shape (num_submeshes_n, max_num_faces).
      
              Returns:
                Meshes object with selected submeshes. The submesh tensors are cloned.
      
              Currently submeshing only works with no textures or with the TexturesVertex texture.
      
              Example:
      
              Take a Meshes object `cubes` with 4 meshes, each a translated cube. Then:
                  * len(cubes) is 4, len(cubes.verts_list()) is 4, len(cubes.faces_list()) is 4,
                  * [cube_verts.size for cube_verts in cubes.verts_list()] is [8, 8, 8, 8],
                  * [cube_faces.size for cube_faces in cubes.faces_list()] if [6, 6, 6, 6],
      
              Now let front_facet, top_and_bottom, all_facets be LongTensors of
              sizes (2), (4), and (12), each picking up a number of facets of a cube by specifying
              the appropriate triangular faces.
      
              Then let `subcubes = cubes.submeshes([[front_facet, top_and_bottom], [], [all_facets], []])`.
                  * len(subcubes) is 3.
                  * subcubes[0] is the front facet of the cube contained in cubes[0].
                  * subcubes[1] is a mesh containing the (disconnected) top and bottom facets of cubes[0].
                  * subcubes[2] is a clone of cubes[2].
                  * There are no submeshes of cubes[1] and cubes[3] in subcubes.
                  * subcubes[0] and subcubes[1] are not watertight. subcubes[2] is.
      ```
      
      Reviewed By: bottler
      
      Differential Revision: D35440657
      
      fbshipit-source-id: 8a6d2d300ce226b5b9eb440688528b5e795195a1
      050f650a
    • Krzysztof Chalupka's avatar
      Submesh 2/n: to_sorted · 8596fcac
      Krzysztof Chalupka authored
      Summary:
      Sort a mesh's vertices in alphabetical order, and resort the face coords accordingly. Textured meshes are not supported yet, but will be added down the stack.
      
      This, togehter with mesh equality, can be used to compare two meshes in a way invariant to vertex permutations, as shown in the unit tests.
      
      We do not want the submeshing mechanism to guarantee any particular vertex order, leaving that up to the implementation, so we need this function for testing.
      
      Reviewed By: bottler
      
      Differential Revision: D35440656
      
      fbshipit-source-id: 5a4dd921fdb00625a33da08b5fea79e20ac6402c
      8596fcac
    • Krzysztof Chalupka's avatar
      Submesh 1/n: Implement mesh equality · 7f097b06
      Krzysztof Chalupka authored
      Summary: Adding a mesh equality operator. Two Meshes objects m1, m2 are equal iff their vertex lists, face lists, and normals lists are equal. Textures meshes are not supported yet, but will be added for vertex textures down the stack.
      
      Reviewed By: bottler, nikhilaravi
      
      Differential Revision: D35440655
      
      fbshipit-source-id: 69974a59c091416afdb2892896859a189f5ebf3a
      7f097b06
    • Krzysztof Chalupka's avatar
      Submesh 0/n: Default to empty Meshes · aab95575
      Krzysztof Chalupka authored
      Summary:
      The default behavior of Meshes (with verts=None, faces=None) throws an exception:
      ```
      meshes = Meshes()
      > ValueError: Verts and Faces must be either a list or a tensor with shape (batch_size, N, 3) where N is either the maximum number of verts or faces respectively.
      ```
      
      Instead, let's default to an empty mesh, following e.g. PyTorch:
      ```
      empty_tensor = torch.FloatTensor()
      > torch.tensor([])
      ```
      
      this change is backwards-compatible (you can still init with verts=[], faces=[]).
      
      Reviewed By: bottler, nikhilaravi
      
      Differential Revision: D35443453
      
      fbshipit-source-id: d638a8fef49a089bf0da6dd2201727b94ceb21ec
      aab95575
  15. 10 Apr, 2022 1 commit
    • Georgia Gkioxari's avatar
      add L1 support for KNN & Chamfer · 67fff956
      Georgia Gkioxari authored
      Summary:
      Added L1 norm for KNN and chamfer op
      * The norm is now specified with a variable `norm` which can only be 1 or 2
      
      Reviewed By: bottler
      
      Differential Revision: D35419637
      
      fbshipit-source-id: 77813fec650b30c28342af90d5ed02c89133e136
      67fff956