- 01 Oct, 2021 2 commits
-
-
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
-
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
-
- 30 Sep, 2021 9 commits
-
-
Jeremy Reizenstein authored
Summary: Statement about compatibility. Reviewed By: nikhilaravi Differential Revision: D30697072 fbshipit-source-id: aeb5e3e0a08c1797033d8c00b24484c8a699cb02
-
Jeremy Reizenstein authored
Summary: Fix some missing or misplaced argument descriptions. Reviewed By: nikhilaravi Differential Revision: D31305132 fbshipit-source-id: af4fcee9766682b2b7f7f16327e839090e377be2
-
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
-
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 -
Jeremy Reizenstein authored
Reviewed By: nikhilaravi Differential Revision: D31289856 fbshipit-source-id: 5a522a69537a873bacacf2a178e5f30771aef35f
-
Jeremy Reizenstein authored
Summary: Allow saving colors as 8bit when writing .ply files. Reviewed By: patricklabatut, nikitos9000 Differential Revision: D30905312 fbshipit-source-id: 44500982c9ed6d6ee901e04f9623e22792a0e7f7
-
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
-
Nikhila Ravi authored
Summary: CUDA implementation of 3D bounding box overlap calculation. Reviewed By: gkioxari Differential Revision: D31157919 fbshipit-source-id: 5dc89805d01fef2d6779f00a33226131e39c43ed
-
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
-
- 29 Sep, 2021 2 commits
-
-
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
-
Pyre Bot Jr authored
Differential Revision: D31266959 fbshipit-source-id: 878a59ca2cfe1389e42fc338653e8d3314b56b91
-
- 27 Sep, 2021 1 commit
-
-
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
-
- 24 Sep, 2021 1 commit
-
-
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
-
- 23 Sep, 2021 1 commit
-
-
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
-
- 22 Sep, 2021 3 commits
-
-
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
-
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
-
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
-
- 18 Sep, 2021 1 commit
-
-
Pyre Bot Jr authored
Differential Revision: D31042748 fbshipit-source-id: fffb983bd6765d306a407587ddf64e68e57e9ecc
-
- 15 Sep, 2021 3 commits
-
-
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 -
Nikhila Ravi authored
Summary: C++ implementation of iterative farthest point sampling. Reviewed By: jcjohnson Differential Revision: D30349887 fbshipit-source-id: d25990f857752633859fe00283e182858a870269
-
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
-
- 13 Sep, 2021 1 commit
-
-
Jeremy Reizenstein authored
Summary: Fix issue #826. This is a correction to the joining of TexturesUV into a single scene. Reviewed By: nikhilaravi Differential Revision: D30767092 fbshipit-source-id: 03ba6a1d2f22e569d1b3641cd13ddbb8dcb87ec7
-
- 10 Sep, 2021 1 commit
-
-
Shangchen Han authored
Summary: * HAT_INV_SKEW_SYMMETRIC_TOL was a global variable and torch script gives an error when compiling that function. Move it to the function scope. * torch script gives error when compiling acos_linear_extrapolation because bound is a union of tuple and float. The tuple version is kept in this diff. Reviewed By: patricklabatut Differential Revision: D30614916 fbshipit-source-id: 34258d200dc6a09fbf8917cac84ba8a269c00aef
-
- 09 Sep, 2021 1 commit
-
-
Jeremy Reizenstein authored
Summary: In D30349234 (https://github.com/facebookresearch/pytorch3d/commit/1b8d86a104eab24ac25863c423d084d611f64bae) we introduced persistent=False to some register_buffer calls, which depend on PyTorch 1.6. We go back to the old behaviour for PyTorch 1.5. Reviewed By: nikhilaravi Differential Revision: D30731327 fbshipit-source-id: ab02ef98ee87440ef02479b72f4872b562ab85b5
-
- 08 Sep, 2021 3 commits
-
-
Justin Johnson authored
Summary: There has historically been a lot of duplication between the coarse rasterization logic for point clouds and meshes. This diff factors out the shared logic, so coarse rasterization of point clouds and meshes share the same core logic. Previously the only difference between the coarse rasterization kernels for points and meshes was the logic for checking whether a {point / triangle} intersects a tile in the image. We implement a generic coarse rasterization kernel that takes a set of 2D bounding boxes rather than geometric primitives; we then implement separate kernels that compute 2D bounding boxes for points and triangles. This change does not affect the Python API at all. It also should not change any rasterization behavior, since this diff is just a refactoring of the existing logic. I see this diff as the first in a few pieces of rasterizer refactoring. Followup diffs should do the following: - Add a check for bin overflow in the generic coarse rasterizer kernel: allocate a global scalar to flag bin overflow which kernel worker threads can write to in case they detect bin overflow. The C++ launcher function can then check this flag after the kernel returns and issue a warning to the user in case of overflow. - As a slightly more involved mechanism, if bin overflow is detected then the coarse kernel can continue running in order to count how many elements fall into each bin, without actually writing out their indices to the coarse output tensor. Then the actual number of entries per bin can be used to re-allocate the output tensor and re-run the coarse rasterization kernel so that bin overflow can be automatically avoided. - The unification of the coarse and fine rasterization kernels also allows us to insert an extra CUDA kernel prior to coarse rasterization that filters out primitives outside the view frustum. This would be helpful for rendering full scenes (e.g. Matterport data) where only a small piece of the mesh is actually visible at any one time. Reviewed By: bottler Differential Revision: D25710361 fbshipit-source-id: 9c9dea512cb339c42adb3c92e7733fedd586ce1b -
Justin Johnson authored
Summary: Renaming parts of the mesh coarse rasterization and separating the bounding box calculation. All in preparation for sharing code with point rasterization. Reviewed By: bottler Differential Revision: D30369112 fbshipit-source-id: 3508c0b1239b355030cfa4038d5f3d6a945ebbf4
-
Justin Johnson authored
Summary: In preparation for sharing coarse rasterization between point clouds and meshes, move the functions to a new file. No code changes. Reviewed By: bottler Differential Revision: D30367812 fbshipit-source-id: 9e73835a26c4ac91f5c9f61ff682bc8218e36c6a
-
- 02 Sep, 2021 1 commit
-
-
Jeremy Reizenstein authored
Summary: Change cyclic deps test to be independent of test discovery order. Also let it work without plotly. Reviewed By: nikhilaravi Differential Revision: D30669614 fbshipit-source-id: 2eadf3f8b56b6096c5466ce53b4f8ac6df27b964
-
- 01 Sep, 2021 3 commits
-
-
Jeremy Reizenstein authored
Summary: Regenerate config.yml after a recent bad merge which lost a few builds. Reviewed By: nikhilaravi Differential Revision: D30696918 fbshipit-source-id: 3ecdfca8682baed13692ec710aa7c25dbd24dd44
-
Nikhila Ravi authored
Summary: Fixes GitHub issue #751. The vectorized implementation of bilinear interpolation didn't properly handle the edge cases in the same way as the `grid_sample` method in PyTorch. Reviewed By: bottler Differential Revision: D30684208 fbshipit-source-id: edf241ecbd72d46b94ad340a4e601e26c83db88e
-
Georgia Gkioxari authored
Summary: Replace master with main in hard coded paths or mentions in documentation Reviewed By: bottler Differential Revision: D30696097 fbshipit-source-id: d5ff67bb026d90d1543d10ab027f916e8361ca69
-
- 31 Aug, 2021 2 commits
-
-
Jeremy Reizenstein authored
Summary: As suggested in #802. By not persisting the _xy_grid buffer, we can allow (in some cases) a model with one image_size to be loaded from a saved model which was trained at a different resolution. Also avoid persisting _frequencies in HarmonicEmbedding for similar reasons. BC-break: This will cause load_state_dict, in strict mode, to complain if you try to load an old model with the new code. Reviewed By: patricklabatut Differential Revision: D30349234 fbshipit-source-id: d6061d1e51c9f79a78d61a9f732c9a5dfadbbb47
-
Jeremy Reizenstein authored
Summary: Use PyTorch3D's new faster sample_pdf function instead of local Python implementation. Also clarify deps for the Python implementation. Reviewed By: gkioxari Differential Revision: D30512109 fbshipit-source-id: 84cfdc00313fada37a6b29837de96f6a4646434f
-
- 30 Aug, 2021 1 commit
-
-
Alex Naumann authored
Summary: Great work! :) Just found a link in the examples that is not working. This will fix it. Best, Alex Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/818 Reviewed By: nikhilaravi Differential Revision: D30637532 Pulled By: patricklabatut fbshipit-source-id: ed6c52375d1e760cb0fb2c0a66648dfeb0c6ed46
-
- 23 Aug, 2021 3 commits
-
-
Jeremy Reizenstein authored
Summary: We won't support PyTorch 1.4 in the next release. PyTorch 1.5.0 came out in June 2020, more than a year ago. Reviewed By: patricklabatut Differential Revision: D30424388 fbshipit-source-id: 25499096066c9a2b909a0550394f5210409f0d74
-
Jeremy Reizenstein authored
Summary: New test that each subpackage of pytorch3d imports cleanly. Reviewed By: patricklabatut Differential Revision: D30001632 fbshipit-source-id: ca8dcac94491fc22f33602b3bbef481cba927094
-
Pyre Bot Jr authored
Differential Revision: D30479084 fbshipit-source-id: 6b22dd0afe4dfb1be6249e43a56657519f11dcf1
-
- 17 Aug, 2021 1 commit
-
-
Jeremy Reizenstein authored
Summary: Implement the sample_pdf function from the NeRF project as compiled operators.. The binary search (in searchsorted) is replaced with a low tech linear search, but this is not a problem for the envisaged numbers of bins. Reviewed By: gkioxari Differential Revision: D26312535 fbshipit-source-id: df1c3119cd63d944380ed1b2657b6ad81d743e49
-