1. 17 Jul, 2020 2 commits
    • Nikhila Ravi's avatar
      pyre and lint fixes · 4f78af61
      Nikhila Ravi authored
      Summary: Fixing several unused imports and pyre/linter warnings.
      
      Reviewed By: bottler
      
      Differential Revision: D22592491
      
      fbshipit-source-id: 463383b9b73a545949475044fb5c531712f8482c
      4f78af61
    • Nikhila Ravi's avatar
      Add tutorial video to the README · 7e5bad47
      Nikhila Ravi authored
      Summary: Added link to the youtube video of the PyTorch hackathon tutorial to the README.
      
      Reviewed By: bottler
      
      Differential Revision: D22592655
      
      fbshipit-source-id: 7b3791042a0d6f7e1d3b5602580f10b08a48fe43
      7e5bad47
  2. 16 Jul, 2020 3 commits
    • Roman Shapovalov's avatar
      Bumping the threshold to allow leeway for CI testing randomness. · cdaac5f9
      Roman Shapovalov authored
      Summary:
      1. CircleCI tests fail because of different randomisation. I was able to reproduce it on devfair (with an older version of pytorch3d though), but with a new threshold, it works. Let’s push and see if it will work in CircleCI.
      2. Fixing linter’s issue with `l` variable name.
      
      Reviewed By: bottler
      
      Differential Revision: D22573244
      
      fbshipit-source-id: 32cebc8981883a3411ed971eb4a617469376964d
      cdaac5f9
    • Nikhila Ravi's avatar
      barycentric clipping in cuda/c++ · cc70950f
      Nikhila Ravi authored
      Summary:
      Added support for barycentric clipping in the C++/CUDA rasterization kernels which can be switched on/off via a rasterization setting.
      
      Added tests and a benchmark to compare with the current implementation in PyTorch - for some cases of large image size/faces per pixel the cuda version is 10x faster.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21705503
      
      fbshipit-source-id: e835c0f927f1e5088ca89020aef5ff27ac3a8769
      cc70950f
    • Nikhila Ravi's avatar
      C++/CUDA implementation of sigmoid alpha blend · bce396df
      Nikhila Ravi authored
      Summary:
      C++/CUDA implementation of forward and backward passes for the sigmoid alpha blending function.
      
      This is slightly faster than the vectorized implementation in Python, but more importantly uses less memory due to fewer tensors being created.
      
      Reviewed By: gkioxari
      
      Differential Revision: D19980671
      
      fbshipit-source-id: 0779055d2c68b1f20fb0870e60046077ef4613ff
      bce396df
  3. 14 Jul, 2020 7 commits
    • Luya Gao's avatar
      Return R2N2 renderings · dc08c305
      Luya Gao authored
      Summary: R2N2 returns R2N2's own renderings of ShapeNetCore models.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22266988
      
      fbshipit-source-id: 36e67bd06c6459773e6e5f654259166b579be36a
      dc08c305
    • Luya Gao's avatar
      Test rendering models for R2N2 · 5636eb61
      Luya Gao authored
      Summary: Adding a render function for R2N2.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22230228
      
      fbshipit-source-id: a9f588ddcba15bb5d8be1401f68d730e810b4251
      5636eb61
    • Luya Gao's avatar
      R2N2 skeleton · 49b4ce1a
      Luya Gao authored
      Summary: Skeleton of R2N2 that for now only returns verts and faces extracted from ShapeNetCore v1.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22203656
      
      fbshipit-source-id: 00db6ac76bfdb76fdbc77a2087c34a3f0ff01e6a
      49b4ce1a
    • Luya Gao's avatar
      collate_batched_meshes for datasets · 22d8c333
      Luya Gao authored
      Summary: Adding collate_batched_meshes for datasets.utils: takes in a list of dictionaries and merge them into one dictionary (while adding a merged mesh to the dictionary).
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22180404
      
      fbshipit-source-id: f811f9a140f09638f355ad5739bffa6ee415819f
      22d8c333
    • Luya Gao's avatar
      Render objects in a batch by the specified model_ids, categories or idxs for ShapeNetBase · 22f2963c
      Luya Gao authored
      Summary: Additional functionality for renderer in ShapeNetCore: users can select which objects to render by specifying their model_ids, or users could choose to render several random objects in some categories, or users could specify indices of the objects in the loaded dataset. (currently doesn't support changing lighting, still investigating why lighting is causing instability in renderings)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22179594
      
      fbshipit-source-id: 74c49094ffa3ea2eb71de9451f9e5da5053d356d
      22f2963c
    • Luya Gao's avatar
      Adding renderer for ShapeNetBase · 358e211c
      Luya Gao authored
      Summary: Adding a renderer to ShapeNetCore (Note that the lights are currently turned off for the test; will investigate why lighting causes instability in rendering)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22102673
      
      fbshipit-source-id: a704756a1e93b61d5a879f0e5ee14ebcb0df49d7
      358e211c
    • generatedunixname89002005307016's avatar
      suppress errors in `vision/fair/pytorch3d` · 09c17629
      generatedunixname89002005307016 authored
      Differential Revision: D22519468
      
      fbshipit-source-id: 6e39c2e50ef95f37df407dbc6d186cc97832fc7d
      09c17629
  4. 13 Jul, 2020 3 commits
  5. 10 Jul, 2020 2 commits
    • Jeremy Reizenstein's avatar
      Privacy terms · 20ef9195
      Jeremy Reizenstein authored
      Summary: Simple method to add terms and privacy.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22476671
      
      fbshipit-source-id: 5b0503536f9a95961c46c93895c9e351c0401118
      20ef9195
    • Georgia Gkioxari's avatar
      remove unused params + cubify note · 3d7dea58
      Georgia Gkioxari authored
      Summary:
      This diff
      * removes the unused compositing params
      * adds a note describing cubify
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22426191
      
      fbshipit-source-id: e8aa32040bb594e1dfd7d6d98e29264feefcec7c
      3d7dea58
  6. 09 Jul, 2020 2 commits
    • Jeremy Reizenstein's avatar
      Deduplicate installation instructions · 38eadb75
      Jeremy Reizenstein authored
      Summary: Remove abbreviated installation instructions from the homepage because they confuse.
      
      Reviewed By: gkioxari
      
      Differential Revision: D22160787
      
      fbshipit-source-id: 8eb81030727f71951f8785f71c0a332ef58e790c
      38eadb75
    • David Novotny's avatar
      Efficient PnP weighting bug fix · daf9eac8
      David Novotny authored
      Summary:
      There is a bug in efficient PnP that incorrectly weights points. This fixes it.
      
      The test does not pass for the previous version with the bug.
      
      Reviewed By: shapovalov
      
      Differential Revision: D22449357
      
      fbshipit-source-id: f5a22081e91d25681a6a783cce2f5c6be429ca6a
      daf9eac8
  7. 08 Jul, 2020 1 commit
  8. 07 Jul, 2020 2 commits
    • Nikhila Ravi's avatar
      Simplify transforms in point rasterizer · ce3da649
      Nikhila Ravi authored
      Summary: Update the transform step in the pointcloud rasterizer to use the `update_padded` method on `Pointclouds`.  There was an inefficient step using `offset_points` which went via the packed represntation (and required unecessary additional memory). I think this was before the `update_padded` method was added to `Pointclouds`.
      
      Reviewed By: gkioxari
      
      Differential Revision: D22329166
      
      fbshipit-source-id: 76db8a19654fb2f7807635d4f1c1729debdf3320
      ce3da649
    • Martin Rünz's avatar
      Fix function call in Transform3d documentation (#233) · 876bdff2
      Martin Rünz authored
      Summary:
      The documentation of `Transform3d` highlights that the class handles points as well as normals. However, `transform_points` is applied to points and normals in the documentation instead of using `transform_normals` for normals, which I believe was intended.
      
      This pull request fixes this typo in the documentation.
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/233
      
      Reviewed By: bottler
      
      Differential Revision: D22287642
      
      Pulled By: nikhilaravi
      
      fbshipit-source-id: 0bc8754097b2e17a34fa3071319d00b78c3bc803
      876bdff2
  9. 03 Jul, 2020 4 commits
    • Georgia Gkioxari's avatar
      fix pts scale, save ply · 2f0fd601
      Georgia Gkioxari authored
      Summary:
      Fix:
      * Scaling of point clouds for scalars
      * save_ply compatible cat
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22298609
      
      fbshipit-source-id: abe94a5b64baf325587202d20adfc36912cc1478
      2f0fd601
    • Jeremy Reizenstein's avatar
      CPU device for tutorials · 275ddade
      Jeremy Reizenstein authored
      Reviewed By: nikhilaravi
      
      Differential Revision: D22357376
      
      fbshipit-source-id: c103f9b0c798d4425d642781b5bfbb1a27310270
      275ddade
    • Jeremy Reizenstein's avatar
      strip output from tutorials · 52979226
      Jeremy Reizenstein authored
      Summary: It's easier to understand code changes if we don't store the output in the notebooks. This is just a run of nbstripout on all the notebooks.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22357375
      
      fbshipit-source-id: bffdb426af2f676d448630d717658d609c224811
      52979226
    • generatedunixname89002005307016's avatar
      suppress errors in `vision/fair/pytorch3d` · ec82b466
      generatedunixname89002005307016 authored
      Summary:
      Automatic run to suppress type errors.
       #pyreupgrade
      
      Differential Revision: D22369027
      
      fbshipit-source-id: 2beb1a43e429a0850944a8849d416bedefd516ed
      ec82b466
  10. 02 Jul, 2020 1 commit
    • Nikhila Ravi's avatar
      making sorting for K >1 optional in KNN points function · 806ca361
      Nikhila Ravi authored
      Summary: Added `sorted` argument to the `knn_points` function. This came up during the benchmarking against Faiss - sorting added extra memory usage. Match the memory usage of Faiss by making sorting optional.
      
      Reviewed By: bottler, gkioxari
      
      Differential Revision: D22329070
      
      fbshipit-source-id: 0828ff9b48eefce99ce1f60089389f6885d03139
      806ca361
  11. 30 Jun, 2020 2 commits
    • Nikhila Ravi's avatar
      mesh rasterizer settings fix · dd4a35cf
      Nikhila Ravi authored
      Summary:
      Fix default setting of `max_faces_per_bin` and update mesh rasterization benchmark tests.
      The previous setting of `max_faces_per_bin` was wrong and for larger mesh sizes and batch sizes it was causing a significant slow down due to an unecessarily large intermediate tensor being created.
      
      Reviewed By: gkioxari
      
      Differential Revision: D22301819
      
      fbshipit-source-id: d5e817f5b917fb5633c9c6a8634b6c8ff65e3508
      dd4a35cf
    • Nikhila Ravi's avatar
      fix default settings for point rasterization and update benchmark · 88f57938
      Nikhila Ravi authored
      Summary:
      Fixes the default setting of `max_points_per_bin` in `rasterize_points.py`. For large batches with large size pointclouds this was a causing the rasterizer to be very slow.
      
      Expanded the pointcloud rendering benchmarks to include larger size pointclouds and fixed cuda synchronization issue in benchmark.
      
      Reviewed By: gkioxari
      
      Differential Revision: D22301185
      
      fbshipit-source-id: 5077c1ba2c43d73efc1c659f0ec75959ceddf893
      88f57938
  12. 29 Jun, 2020 1 commit
    • Luya Gao's avatar
      Adding datasets.rst to modules · b636f295
      Luya Gao authored
      Summary: Adding datasets.rst to modules and update index.rst.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22187578
      
      fbshipit-source-id: e70cf49fa276db8a106c67a2edab530b6dba2dee
      b636f295
  13. 24 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      specify full pytorch version for conda nightly builds. · 0baeb05a
      Jeremy Reizenstein authored
      Summary: Now pytorch 1.5.1 is released, pytorch 1.5 is ambiguous and causes problems. Now have specific builds for pytorch 1.5.0 and 1.5.1. Here we only change the conda builds.
      
      Reviewed By: gkioxari
      
      Differential Revision: D22196016
      
      fbshipit-source-id: 478327e870f538f54d3480d5a268a1ece5c5c680
      0baeb05a
  14. 18 Jun, 2020 2 commits
    • Luya Gao's avatar
      Adding support for selecting categories and ver2 for ShapeNetCore · 2ea6a7d8
      Luya Gao authored
      Summary: Adding support so that users can select which categories they would like to load with wordnet synset offsets or labels or a combination of both. ShapeNetCore now also supports loading v2.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22039207
      
      fbshipit-source-id: 1f0218acb790e5561e2ae373e99cebb9823eea1a
      2ea6a7d8
    • Luya Gao's avatar
      Skeleton of ShapeNetCore class · 9d279ba5
      Luya Gao authored
      Summary: Skeleton of ShapeNetCore class that loads ShapeNet v1 from a given directory to a Dataset object. Overrides _init_, _len_, and _getitem_ from torch.utils.data.Dataset. Currently getitem returns verts, faces and id_str, where id_str is a concatenation of synset_id and obj_id. Planning on adding support for loading ShapeNet v2, retrieving textures and returning wordnet synsets (not just ids) in next diffs.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21986222
      
      fbshipit-source-id: c2c515303f1898b6c495b52cb53c74d691585326
      9d279ba5
  15. 16 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Restore C++14 compatibility · 2f6387f2
      Jeremy Reizenstein authored
      Summary: Fix the new CPU implementation of point_mesh functionality to be compatible with older C++.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D22066785
      
      fbshipit-source-id: a245849342019a93ff68e186a10985458b007436
      2f6387f2
  16. 15 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      CPU implementation for point_mesh functions · 74659aef
      Jeremy Reizenstein authored
      Summary:
      point_mesh functions were missing CPU implementations.
      The indices returned are not always matching, possibly due to numerical instability.
      
      Reviewed By: gkioxari
      
      Differential Revision: D21594264
      
      fbshipit-source-id: 3016930e2a9a0f3cd8b3ac4c94a92c9411c0989d
      74659aef
  17. 10 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Take care with single integers on gpu · 7f1e63ae
      Jeremy Reizenstein authored
      Summary:
      Pytorch seems to be becoming stricter about integer tensors of shape `(1,)` on GPU and not allowing them to be used as `int`s. For example the following no longer works on pytorch master,
          foo = torch.tensor([3, 5, 3], device="cuda:0")
          torch.arange(10) + foo[0]
      because this is the sum of tensors on different devices.
      
      Here fix tests which recently broke because of this.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21929745
      
      fbshipit-source-id: 25374f70468d1c895372766f1a9dd61df0833957
      7f1e63ae
  18. 09 Jun, 2020 2 commits
    • Yedidya Feldblum's avatar
      Cut FOR_EACH_KV · d0e7426a
      Yedidya Feldblum authored
      Summary: [Folly] Cut the FOR_EACH_KV macro, which may be replaced by a combination of range-for and structured bindings.
      
      Differential Revision: D21826182
      
      fbshipit-source-id: ce4712afd3d0d7806eb1fca8c97009da117f982e
      d0e7426a
    • Luya Gao's avatar
      Adding join_mesh in pytorch3d.structures.meshes · e053d7c4
      Luya Gao authored
      Summary: Adding a function in pytorch3d.structures.meshes to join multiple meshes into a Meshes object representing a single mesh. The function currently ignores all textures.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D21876908
      
      fbshipit-source-id: 448602857e9d3d3f774d18bb4e93076f78329823
      e053d7c4
  19. 04 Jun, 2020 1 commit
  20. 03 Jun, 2020 1 commit
    • Jeremy Reizenstein's avatar
      Avoid plain division involving integers · 5444c53c
      Jeremy Reizenstein authored
      Summary: To avoid pytorch warnings and future behaviour changes, stop using torch.div and / with tensors of integers.
      
      Reviewed By: gkioxari, mruberry
      
      Differential Revision: D21857955
      
      fbshipit-source-id: fb9f3000f3d953352cdc721d2a5f73d3a4bbf4b7
      5444c53c