1. 13 Apr, 2022 1 commit
    • 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
  2. 04 Jan, 2022 1 commit
    • 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
  3. 29 Sep, 2021 1 commit
    • 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
  4. 15 Sep, 2021 3 commits
    • 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
    • Nikhila Ravi's avatar
      Farthest point sampling C++ · d9f7611c
      Nikhila Ravi authored
      Summary: C++ implementation of iterative farthest point sampling.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D30349887
      
      fbshipit-source-id: d25990f857752633859fe00283e182858a870269
      d9f7611c
    • Nikhila Ravi's avatar
      Farthest point sampling python naive · 3b7d78c7
      Nikhila Ravi authored
      Summary:
      This is a naive python implementation of the iterative farthest point sampling algorithm along with associated simple tests. The C++/CUDA implementations will follow in subsequent diffs.
      
      The algorithm is used to subsample a pointcloud with better coverage of the space of the pointcloud.
      
      The function has not been added to `__init__.py`. I will add this after the full C++/CUDA implementations.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D30285716
      
      fbshipit-source-id: 33f4181041fc652776406bcfd67800a6f0c3dd58
      3b7d78c7