1. 18 Oct, 2021 2 commits
    • Jeremy Reizenstein's avatar
      remove torch from cuda · 3953de47
      Jeremy Reizenstein authored
      Summary: Keep using at:: instead of torch:: so we don't need torch/extension.h and can keep other compilers happy.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31688436
      
      fbshipit-source-id: 1825503da0104acaf1558d17300c02ef663bf538
      3953de47
    • Jeremy Reizenstein's avatar
      windows compatibility · 1a7442a4
      Jeremy Reizenstein authored
      Summary: Few tweaks to make CUDA build on windows happier, as remarked in #876.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31688188
      
      fbshipit-source-id: 20816d6215f2e3ec898f81ae4221b1c2ff24b64f
      1a7442a4
  2. 17 Oct, 2021 1 commit
  3. 16 Oct, 2021 2 commits
    • Jeremy Reizenstein's avatar
      Remove version number from docs title · 14dd2611
      Jeremy Reizenstein authored
      Summary: Small docs fixes: spelling. Avoid things which get out of date quickly: year, version.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31659927
      
      fbshipit-source-id: b0111140bdaf3c6cadc09f70621bf5656909ca02
      14dd2611
    • 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
  4. 13 Oct, 2021 1 commit
    • Nikhila Ravi's avatar
      Update eps for coplanar check in 3D IoU · 2f2466f4
      Nikhila Ravi authored
      Summary: Make eps=1e-4 by default for coplanar check and also enable it to be set by the user in call to `box3d_overlap`.
      
      Reviewed By: gkioxari
      
      Differential Revision: D31596836
      
      fbshipit-source-id: b57fe603fd136cfa58fddf836922706d44fe894e
      2f2466f4
  5. 11 Oct, 2021 1 commit
    • Jeremy Reizenstein's avatar
      remove PyTorch 1.5 builds · 53d99671
      Jeremy Reizenstein authored
      Summary: PyTorch 1.6.0 came out on 28 Jul 2020. Stop builds for 1.5.0 and 1.5.1. Also update the news section of the README for recent releases.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31442830
      
      fbshipit-source-id: 20bdd8a07090776d0461240e71c6536d874615f6
      53d99671
  6. 08 Oct, 2021 2 commits
    • Pyre Bot Jr's avatar
      suppress errors in `vision/fair/pytorch3d` · 6d36c1e2
      Pyre Bot Jr authored
      Differential Revision: D31496551
      
      fbshipit-source-id: 705fd88f319875db3f7938a2946c48a51ea225f5
      6d36c1e2
    • Nikhila Ravi's avatar
      IOU box3d epsilon fix · 6dfa3269
      Nikhila Ravi authored
      Summary: The epsilon value is important for determining whether vertices are inside/outside a plane.
      
      Reviewed By: gkioxari
      
      Differential Revision: D31485247
      
      fbshipit-source-id: 5517575de7c02f1afa277d00e0190a81f44f5761
      6dfa3269
  7. 07 Oct, 2021 4 commits
    • Jeremy Reizenstein's avatar
      test tolerance loosenings · b26f4bc3
      Jeremy Reizenstein authored
      Summary: Increase some test tolerances so that they pass in more situations, and re-enable two tests.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31379717
      
      fbshipit-source-id: 06a25470cc7b6d71cd639d9fd7df500d4b84c079
      b26f4bc3
    • Ruilong Li's avatar
      Fix camera conversion between opencv and pytorch3d · 8fa438cb
      Ruilong Li authored
      Summary:
      For non square image, the NDC space in pytorch3d is not square [-1, 1]. Instead, it is [-1, 1] for the smallest side, and [-u, u] for the largest side, where u > 1. This behavior is followed by the pytorch3d renderer.
      
      See the function `get_ndc_to_screen_transform` for a example.
      
      Without this fix, the rendering result is not correct using the converted pytorch3d-camera from a opencv-camera on non square images.
      
      This fix also helps the `transform_points_screen` function delivers consistent results with opencv projection for the converted pytorch3d-camera.
      
      Reviewed By: classner
      
      Differential Revision: D31366775
      
      fbshipit-source-id: 8858ae7b5cf5c0a4af5a2af40a1358b2fe4cf74b
      8fa438cb
    • CodemodService Bot's avatar
      Daily `arc lint --take BLACK` · 815a93ce
      CodemodService Bot authored
      Reviewed By: zertosh
      
      Differential Revision: D31464988
      
      fbshipit-source-id: 2eaf28d6869ccb70fd4df4f7de15d959cdaba0be
      815a93ce
    • Jeremy Reizenstein's avatar
      build website in docker container · 23ef666d
      Jeremy Reizenstein authored
      Summary: Do the website building in a docker container to avoid worrying about dependencies.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30223892
      
      fbshipit-source-id: 77b7b4630188167316891381f6ca9e9fbe7f0a05
      23ef666d
  8. 06 Oct, 2021 1 commit
  9. 05 Oct, 2021 2 commits
    • Jeremy Reizenstein's avatar
      version number 0.6.0 · 9585a58d
      Jeremy Reizenstein authored
      Summary: update
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31338002
      
      fbshipit-source-id: 90ed6c2ea411c0384dd233ee88e51b5f608eef88
      9585a58d
    • Jeremy Reizenstein's avatar
      Install.md for next release. · 364a7dca
      Jeremy Reizenstein authored
      Summary: now supporting PyTorch 1.9.1
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31338001
      
      fbshipit-source-id: 11140819d10af388d31905a39f1da136cf9c5ff2
      364a7dca
  10. 04 Oct, 2021 1 commit
    • Georgia Gkioxari's avatar
      minor note fix · 1360d69f
      Georgia Gkioxari authored
      Summary: A small fix for the iou3d note
      
      Reviewed By: bottler
      
      Differential Revision: D31370686
      
      fbshipit-source-id: 6c97302b5c78de52915f31be70f234179c4b246d
      1360d69f
  11. 02 Oct, 2021 1 commit
    • Jeremy Reizenstein's avatar
      subsample pointclouds · 4281df19
      Jeremy Reizenstein authored
      Summary: New function to randomly subsample Pointclouds to a maximum size.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30936533
      
      fbshipit-source-id: 789eb5004b6a233034ec1c500f20f2d507a303ff
      4281df19
  12. 01 Oct, 2021 3 commits
    • Jeremy Reizenstein's avatar
      Use C++/CUDA in points2vols · ee2b2feb
      Jeremy Reizenstein authored
      Summary:
      Move the core of add_points_to_volumes to the new C++/CUDA implementation. Add new flag to let the user stop this happening. Avoids copies. About a 30% speedup on the larger cases, up to 50% on the smaller cases.
      
      New timings
      ```
      Benchmark                                                               Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_1000                     4575           12591            110
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_10000                   25468           29186             20
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_100000                 202085          209897              3
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_1000                 46059           48188             11
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_10000                83759           95669              7
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_100000              326056          339393              2
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_1000                       2379            4738            211
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_10000                     12100           63099             42
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_100000                    63323           63737              8
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_1000                   45216           45479             12
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_10000                  57205           58524              9
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_100000                139499          139926              4
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_1000                   40129           40431             13
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_10000                 204949          239293              3
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_100000               1664541         1664541              1
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_1000               391573          395108              2
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_10000              674869          674869              1
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_100000            2713632         2713632              1
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_1000                     12726           13506             40
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_10000                    73103           73299              7
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_100000                  598634          598634              1
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_1000                 398742          399256              2
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_10000                543129          543129              1
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_100000              1242956         1242956              1
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_1000                  1814            8884            276
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_10000                 1996            8851            251
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_100000                4608           11529            109
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_1000               5183           12508             97
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_10000              7106           14077             71
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_100000            25914           31818             20
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_1000                    1778            8823            282
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_10000                   1825            8613            274
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_100000                  3154           10161            159
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_1000                 4888            9404            103
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_10000                5194            9963             97
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_100000               8109           14933             62
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_1000                 3320           10306            151
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_10000                7003            8595             72
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_100000              49140           52957             11
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_1000             35890           36918             14
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_10000            58890           59337              9
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_100000          286878          287600              2
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_1000                   2484            8805            202
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_10000                  3967            9090            127
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_100000                19423           19799             26
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_1000               33228           33329             16
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_10000              37292           37370             14
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_100000             73550           74017              7
      --------------------------------------------------------------------------------
      ```
      Previous timings
      ```
      Benchmark                                                               Avg Time(μs)      Peak Time(μs) Iterations
      --------------------------------------------------------------------------------
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_1000                    10100           46422             50
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_10000                   28442           32100             18
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[25, 25, 25]_100000                 241127          254269              3
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_1000                 54149           79480             10
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_10000               125459          212734              4
      ADD_POINTS_TO_VOLUMES_cpu_10_trilinear_[101, 111, 121]_100000              512739          512739              1
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_1000                       2866           13365            175
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_10000                      7026           12604             72
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[25, 25, 25]_100000                    48822           55607             11
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_1000                   38098           38576             14
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_10000                  48006           54120             11
      ADD_POINTS_TO_VOLUMES_cpu_10_nearest_[101, 111, 121]_100000                131563          138536              4
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_1000                   64615           91735              8
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_10000                 228815          246095              3
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[25, 25, 25]_100000               3086615         3086615              1
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_1000               464298          465292              2
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_10000             1053440         1053440              1
      ADD_POINTS_TO_VOLUMES_cpu_100_trilinear_[101, 111, 121]_100000            6736236         6736236              1
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_1000                     11940           12440             42
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_10000                    56641           58051              9
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[25, 25, 25]_100000                  711492          711492              1
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_1000                 326437          329846              2
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_10000                418514          427911              2
      ADD_POINTS_TO_VOLUMES_cpu_100_nearest_[101, 111, 121]_100000              1524285         1524285              1
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_1000                  5949           13602             85
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_10000                 5817           13001             86
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[25, 25, 25]_100000               23833           25971             21
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_1000               9029           16178             56
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_10000             11595           18601             44
      ADD_POINTS_TO_VOLUMES_cuda:0_10_trilinear_[101, 111, 121]_100000            46986           47344             11
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_1000                    2554            9747            196
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_10000                   2676            9537            187
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[25, 25, 25]_100000                  6567           14179             77
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_1000                 5840           12811             86
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_10000                6102           13128             82
      ADD_POINTS_TO_VOLUMES_cuda:0_10_nearest_[101, 111, 121]_100000              11945           11995             42
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_1000                 7642           13671             66
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_10000               25190           25260             20
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[25, 25, 25]_100000             212018          212134              3
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_1000             40421           45692             13
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_10000            92078           92132              6
      ADD_POINTS_TO_VOLUMES_cuda:0_100_trilinear_[101, 111, 121]_100000          457211          457229              2
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_1000                   3574           10377            140
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_10000                  7222           13023             70
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[25, 25, 25]_100000                48127           48165             11
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_1000               34732           35295             15
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_10000              43050           51064             12
      ADD_POINTS_TO_VOLUMES_cuda:0_100_nearest_[101, 111, 121]_100000            106028          106058              5
      --------------------------------------------------------------------------------
      ```
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29548609
      
      fbshipit-source-id: 7026e832ea299145c3f6b55687f3c1601294f5c0
      ee2b2feb
    • Jeremy Reizenstein's avatar
      Cuda function for points2vols · 9ad98c87
      Jeremy Reizenstein authored
      Summary: Added CUDA implementation to match the new, still unused, C++ function for the core of points2vols.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29548608
      
      fbshipit-source-id: 16ebb61787fcb4c70461f9215a86ad5f97aecb4e
      9ad98c87
    • Jeremy Reizenstein's avatar
      CPU function for points2vols · 0dfc6e0e
      Jeremy Reizenstein authored
      Summary: Single C++ function for the core of points2vols, not used anywhere yet. Added ability to control align_corners and the weight of each point, which may be useful later.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D29548607
      
      fbshipit-source-id: a5cda7ec2c14836624e7dfe744c4bbb3f3d3dfe2
      0dfc6e0e
  13. 30 Sep, 2021 9 commits
    • Jeremy Reizenstein's avatar
      compatibility statement in README · c7c6deab
      Jeremy Reizenstein authored
      Summary: Statement about compatibility.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D30697072
      
      fbshipit-source-id: aeb5e3e0a08c1797033d8c00b24484c8a699cb02
      c7c6deab
    • Jeremy Reizenstein's avatar
      rasterization header comment fixes · 4ad85765
      Jeremy Reizenstein authored
      Summary: Fix some missing or misplaced argument descriptions.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31305132
      
      fbshipit-source-id: af4fcee9766682b2b7f7f16327e839090e377be2
      4ad85765
    • Simon Moisselin's avatar
      Fix typo in chamfer loss docstring (#862) · a5cbb624
      Simon Moisselin authored
      Summary:
      y_lengths is about `y`, not `x`.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/862
      
      Reviewed By: bottler
      
      Differential Revision: D31304434
      
      Pulled By: patricklabatut
      
      fbshipit-source-id: 1db4cd57677fc018c229e02172f95ffa903d75eb
      a5cbb624
    • Theo-Cheynel's avatar
      Removed typos 'f' from the f-string error messages (#851) · 720bdf60
      Theo-Cheynel authored
      Summary:
      Changed mistake in Python f-strings causing an additional letter "f" to appear in the error messages.
      The error messages would read something like :
      ```
      raise ValueError(f"Invalid rotation matrix  shape f{matrix.shape}.")
      ValueError: Invalid rotation matrix  shape ftorch.Size([4, 4]).
      ```
      (with an additional f, probably a mistake)
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/851
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31238831
      
      Pulled By: patricklabatut
      
      fbshipit-source-id: 0ba3e61e488e467e997954278097889be606d4f8
      720bdf60
    • Jeremy Reizenstein's avatar
      Linter when only python3 exists · 1aab1927
      Jeremy Reizenstein authored
      Reviewed By: nikhilaravi
      
      Differential Revision: D31289856
      
      fbshipit-source-id: 5a522a69537a873bacacf2a178e5f30771aef35f
      1aab1927
    • Jeremy Reizenstein's avatar
      save colors as uint8 in PLY · dd76b410
      Jeremy Reizenstein authored
      Summary: Allow saving colors as 8bit when writing .ply files.
      
      Reviewed By: patricklabatut, nikitos9000
      
      Differential Revision: D30905312
      
      fbshipit-source-id: 44500982c9ed6d6ee901e04f9623e22792a0e7f7
      dd76b410
    • Georgia Gkioxari's avatar
      Note for iou3d · 1b1ba561
      Georgia Gkioxari authored
      Summary:
      A note for our new algorithm for IoU of oriented 3D boxes. It includes
      * A description of the algorithm
      * A comparison with Objectron
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31288066
      
      fbshipit-source-id: 0ea8da887bc5810bf4a3e0848223dd3590df1538
      1b1ba561
    • Nikhila Ravi's avatar
      (new) CUDA IoU for 3D boxes · ff8d4762
      Nikhila Ravi authored
      Summary: CUDA implementation of 3D bounding box overlap calculation.
      
      Reviewed By: gkioxari
      
      Differential Revision: D31157919
      
      fbshipit-source-id: 5dc89805d01fef2d6779f00a33226131e39c43ed
      ff8d4762
    • Nikhila Ravi's avatar
      C++ IoU for 3D Boxes · 53266ec9
      Nikhila Ravi authored
      Summary: C++ Implementation of algorithm to compute 3D bounding boxes for batches of bboxes of shape (N, 8, 3) and (M, 8, 3).
      
      Reviewed By: gkioxari
      
      Differential Revision: D30905190
      
      fbshipit-source-id: 02e2cf025cd4fa3ff706ce5cf9b82c0fb5443f96
      53266ec9
  14. 29 Sep, 2021 2 commits
    • Nikhila Ravi's avatar
      IoU for 3D boxes · 2293f1fe
      Nikhila Ravi authored
      Summary:
      I have implemented an exact solution for 3D IoU of oriented 3D boxes.
      
      This file includes:
      * box3d_overlap: which computes the exact IoU of box1 and box2
      * box3d_overlap_sampling: which computes an approximate IoU of box1 and box2 by sampling points within the boxes
      
      Note that both implementations currently do not support batching.
      
      Our exact IoU implementation is based on the fact that the intersecting shape of the two 3D boxes will be formed by segments of the surface of the boxes. Our algorithm computes these segments by reasoning whether triangles of one box are within the second box and vice versa. We deal with intersecting triangles by clipping them.
      
      Reviewed By: gkioxari
      
      Differential Revision: D30667497
      
      fbshipit-source-id: 2f747f410f90b7f854eeaf3036794bc3ac982917
      2293f1fe
    • Pyre Bot Jr's avatar
      suppress errors in `vision/fair/pytorch3d` · 5b89c4e3
      Pyre Bot Jr authored
      Differential Revision: D31266959
      
      fbshipit-source-id: 878a59ca2cfe1389e42fc338653e8d3314b56b91
      5b89c4e3
  15. 27 Sep, 2021 1 commit
    • Jeremy Reizenstein's avatar
      builds for PyTorch 1.9.1 · d0ca3b9e
      Jeremy Reizenstein authored
      Summary: Add conda builds for the newly released PyTorch version 1.9.1.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D31140206
      
      fbshipit-source-id: 697549a3ef0db8248f4f9b5c00cf1407296b5022
      d0ca3b9e
  16. 24 Sep, 2021 1 commit
    • Jeremy Reizenstein's avatar
      More renderer parameter descriptions · 9a737da8
      Jeremy Reizenstein authored
      Summary:
      Copy some descriptions of renderer parameters to more places so they are easier to find.
      
      Also a couple of small corrections, and make RasterizationSettings a dataclass.
      
      Reviewed By: nikhilaravi, patricklabatut
      
      Differential Revision: D30899822
      
      fbshipit-source-id: 805cf366acb7d51cb308fa574deff0657c199673
      9a737da8
  17. 23 Sep, 2021 1 commit
    • Jeremy Reizenstein's avatar
      deterministic rasterization · 860b742a
      Jeremy Reizenstein authored
      Summary: Attempt to fix #659, an observation that the rasterizer is nondeterministic, by resolving tied faces by picking those with lower index.
      
      Reviewed By: nikhilaravi, patricklabatut
      
      Differential Revision: D30699039
      
      fbshipit-source-id: 39ed797eb7e9ce7370ae71259ad6b757f9449923
      860b742a
  18. 22 Sep, 2021 3 commits
    • Jeremy Reizenstein's avatar
      Avoid torch/extension.h in cuda · cb170ac0
      Jeremy Reizenstein authored
      Summary: Unlike other cu files, sigmoid_alpha_blend uses torch/extension.h. Avoid for possible build speed win and because of a reported problem #843 on windows with CUDA 11.4.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31054121
      
      fbshipit-source-id: 53a1f985a1695a044dfd2ee1a5b0adabdf280595
      cb170ac0
    • Jeremy Reizenstein's avatar
      rename cpp to avoid clash · fe5bfa59
      Jeremy Reizenstein authored
      Summary: Rename sample_farthest_point.cpp to not match its CUDA equivalent.
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31006645
      
      fbshipit-source-id: 135b511cbde320d2b3e07fc5b027971ef9210aa9
      fe5bfa59
    • Jeremy Reizenstein's avatar
      remove __restrict__ in cpp · dbfb3a91
      Jeremy Reizenstein authored
      Summary: Remove use of nonstandard C++. Noticed on windows in issue https://github.com/facebookresearch/pytorch3d/issues/843. (We use `__restrict__` in CUDA, where it is fine, even on windows)
      
      Reviewed By: nikhilaravi
      
      Differential Revision: D31006516
      
      fbshipit-source-id: 929ba9b3216cb70fad3ffa3274c910618d83973f
      dbfb3a91
  19. 18 Sep, 2021 1 commit
  20. 15 Sep, 2021 1 commit
    • Nikhila Ravi's avatar
      Farthest point sampling CUDA · bd04ffaf
      Nikhila Ravi authored
      Summary:
      CUDA implementation of farthest point sampling algorithm.
      
      ## Visual comparison
      
      Compared to random sampling, farthest point sampling gives better coverage of the shape.
      
      {F658631262}
      
      ## Reduction
      
      Parallelized block reduction to find the max value at each iteration happens as follows:
      
      1. First split the points into two equal sized parts (e.g. for a list with 8 values):
      `[20, 27, 6, 8 | 11, 10, 2, 33]`
      2. Use half of the thread (4 threads) to compare pairs of elements from each half (e.g elements [0, 4], [1, 5] etc) and store the result in the first half of the list:
      `[20, 27, 6, 33 | 11, 10, 2, 33]`
      Now we no longer care about the second part but again divide the first part into two
      `[20, 27 | 6, 33| -, -, -, -]`
      Now we can use 2 threads to compare the 4 elements
      4. Finally we have gotten down to a single pair
      `[20 | 33 | -, - | -, -, -, -]`
      Use 1 thread to compare the remaining two elements
      5. The max will now be at thread id = 0
      `[33 | - | -, - | -, -, -, -]`
      The reduction will give the farthest point for the selected batch index at this iteration.
      
      Reviewed By: bottler, jcjohnson
      
      Differential Revision: D30401803
      
      fbshipit-source-id: 525bd5ae27c4b13b501812cfe62306bb003827d2
      bd04ffaf