Summary: Add `return self` to the `to` function for the renderer classes.
Reviewed By: bottler
Differential Revision: D25534487
fbshipit-source-id: e8dbd35524f0bd40e835439e93184b5a1f1532ca
Summary:
As for now, epsilon value is ignored, since `kwargs` are passed to constructor only
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/418
Reviewed By: gkioxari
Differential Revision: D24730500
Pulled By: nikhilaravi
fbshipit-source-id: 7cce820dbe14f8c74d3df4f18c45d50e228c6a45
Summary:
`INSTALL.md` On Windows, pip install from git does not work with single quotes. I replace them with double quote as those should work for any OS.
`camera_position_optimization_with_differentiable_rendering.ipynb` To extract the silhouette from the reference image, we need to reject white values, not black values, because the background of the ref is white:

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/254
Reviewed By: gkioxari
Differential Revision: D23798508
Pulled By: nikhilaravi
fbshipit-source-id: 1fbec291c48c367539a8a4fea389a109aab49e3d
Summary: Add nightly linux conda builds with the new pytorch 1.7.1. This supports python 3.9.
Reviewed By: nikhilaravi
Differential Revision: D25532757
fbshipit-source-id: b734637063e148389951899450566275f3cf5831
Summary: We have already uploaded a conda package of the cub 1.10.0 sources to our channel on anaconda. Here is the code we used.
Reviewed By: nikhilaravi
Differential Revision: D25395358
fbshipit-source-id: b58fd473fcafd425c98c9d7a7c32574f651383a0
Summary:
There are a couple of options for supporting non square images:
1) NDC stays at [-1, 1] in both directions with the distance calculations all modified by (W/H). There are a lot of distance based calculations (e.g. triangle areas for barycentric coordinates etc) so this requires changes in many places.
2) NDC is scaled by (W/H) so the smallest side has [-1, 1]. In this case none of the distance calculations need to be updated and only the pixel to NDC calculation needs to be modified.
I decided to go with option 2 after trying option 1!
API Changes:
- Image size can now be specified optionally as a tuple
TODO:
- add a benchmark test for the non square case.
Reviewed By: jcjohnson
Differential Revision: D24404975
fbshipit-source-id: 545efb67c822d748ec35999b35762bce58db2cf4
Summary: The "manual" docker pull in the testrun builds has been taking more than 10 minutes recently, and its lack of output causes circleci to timeout. As a quick fix, we enable the output from this operation.
Reviewed By: gkioxari
Differential Revision: D25305127
fbshipit-source-id: 19682bfa0294145457a37df6d6faf7a08dcc63c9
Summary: Taubin Smoothing for filtering meshes and making them smoother. Taubin smoothing is an iterative approach.
Reviewed By: nikhilaravi
Differential Revision: D24751149
fbshipit-source-id: fb779e955f1a1f6750e704f1b4c6dfa37aebac1a
Summary: If a pointcloud had less than pointcloud_max_points, the colors would not render. This diff fixes that.
Reviewed By: bottler
Differential Revision: D25099044
fbshipit-source-id: 47c3ddcdb4e06284b0a7966ffca1b973f394921f
Summary: Previously, grids where the columns don't divide the number of plots evenly would error. Now, there'll just be a sparse last row.
Reviewed By: bottler
Differential Revision: D25069236
fbshipit-source-id: 9d2fd62f3d39bfebc07ce0a41718621fa69d6057
Summary: This fixed#442 by declaring two math functions to be device-only.
Reviewed By: bottler
Differential Revision: D24896992
fbshipit-source-id: a15918d06d2a3e6ee5cf250fec7af5f2f50a6164
Summary: Small updates to the website setup before the website is updated
Reviewed By: bottler
Differential Revision: D24880351
fbshipit-source-id: 5c40664ad1ca3dd9f4fc746b239a82d47ed3a8e6
Summary: As mentioned in a comment on https://github.com/facebookresearch/pytorch3d/issues/438, curl must be told to follow redirects.
Reviewed By: nikhilaravi
Differential Revision: D24870138
fbshipit-source-id: 0c8aeb5146f8699bcea03d4108276fc24e9eab6b
Summary: Now installation is a bit complicated, remove this instruction from the website and redirect to the notebooks themselves.
Reviewed By: nikhilaravi
Differential Revision: D24860588
fbshipit-source-id: 3bf1af3cdb69b564492fb01a5a5ba40203f3858e
Summary:
We now require CUB for building, here we make the tutorials include it.
Also make the installation cell do nothing if it has already succeeded.
I use curl not wget, and `os.environ` to set the variables not shell methods, because they are more likely to work on Windows.
Reviewed By: nikhilaravi
Differential Revision: D24860574
fbshipit-source-id: 5be86af15e53f8db016ee0e96fb43153bd69adbc
Summary: This fixes issues with `pulsar.test.TestDepth` that we are encountering on CircleCI. The ID equality test is removed, which seems to give different results on different hardware (which is okay, because the exact order of spheres can slightly vary if they're close due to numerical instabilities). The depth map validity test stays in place.
Reviewed By: bottler
Differential Revision: D24840776
fbshipit-source-id: 2f38ea4880abf202c84d2987fdd71a84c5ef3b05
Summary: Make it easy to have CUB available for building
Reviewed By: nikhilaravi
Differential Revision: D24773722
fbshipit-source-id: 8759bef6ded4989088189685b2a615c97e5f8b99
Summary:
Changes to CI and some minor fixes now that pulsar is part of pytorch3d. Most significantly, add CUB to CI builds.
Make CUB_HOME override the CUB already in cudatoolkit (important for cuda11.0 which uses cub 1.9.9 which pulsar doesn't work well with.
Make imageio available for testing.
Lint fixes.
Fix some test verbosity.
Avoid use of atomicAdd_block on older GPUs.
Reviewed By: nikhilaravi, classner
Differential Revision: D24773716
fbshipit-source-id: 2428356bb2e62735f2bc0c15cbe4cff35b1b24b8
Summary:
Removes the now-unnecessary kernels from point mesh edge file
Migrates all point mesh functionality into one file.
Reviewed By: gkioxari
Differential Revision: D24550086
fbshipit-source-id: f924996cd38a7c2c1cf189d8a01611de4506cfa3
Summary: This diff creates the generic MeshBackwardKernel which can handle distance calculations between point, edge and faces in either direction. Replaces only point_mesh_face code for now.
Reviewed By: gkioxari
Differential Revision: D24549374
fbshipit-source-id: 2853c1da1c2a6b6de8d0e40007ba0735b8959044
Summary: This diff creates the generic MeshForwardKernel which can handle distance calculations between point, edge and faces in either direction. Replaces only point_mesh_face code for now.
Reviewed By: gkioxari
Differential Revision: D24543316
fbshipit-source-id: 302707d7cec2d77a899738adf40481035c240da8
Summary: Added missing include for cstdint for Windows and removed problematic inline assembly.
Reviewed By: bottler
Differential Revision: D24838053
fbshipit-source-id: 95496be841c2c22a82068073d4740e98ee8a02ac
Summary: Users want to be able to obtain the depth from the renderer. Current work-around requires running the rasterizer and extra time. This change creates a new renderer class that also returns the fragments from the rasterizer.
Reviewed By: nikhilaravi
Differential Revision: D24432381
fbshipit-source-id: 6552e8a6bfee646791afb34bdb7452fbc4094aed
Summary: This commit performs pulsar example and test refinements. The examples are fully adjusted to adhere to PEP style guide and additional comments are added.
Reviewed By: nikhilaravi
Differential Revision: D24723391
fbshipit-source-id: 6d289006f080140159731e7f3a8c98b582164f1a
Summary: Move to a local import for calculating pointcloud normals, similar to _compute_face_areas_normals on Meshes.
Reviewed By: theschnitz
Differential Revision: D24695260
fbshipit-source-id: 9e1eb5d15017975b8c4f4175690cc3654f38d9a4
Summary: This diff updates the documentation and tutorials with information about the new pulsar backend. For more information about the pulsar backend, see the release notes and the paper (https://arxiv.org/abs/2004.07484). For information on how to use the backend, see the point cloud rendering notebook and the examples in the folder docs/examples.
Reviewed By: nikhilaravi
Differential Revision: D24498129
fbshipit-source-id: e312b0169a72b13590df6e4db36bfe6190d742f9
Summary:
This diff builds on top of the `pulsar integration` diff to provide a unified interface for the existing PyTorch3D point renderer and Pulsar. For more information about the pulsar backend, see the release notes and the paper (https://arxiv.org/abs/2004.07484). For information on how to use the backend, see the point cloud rendering notebook and the examples in the folder docs/examples.
The unified interfaces are completely consistent. Switching the render backend is as easy as using `renderer = PulsarPointsRenderer(rasterizer=rasterizer).to(device)` instead of `renderer = PointsRenderer(rasterizer=rasterizer, compositor=compositor)` and adding the `gamma` parameter to the forward function. All PyTorch3D camera types are supported as far as possible; keyword arguments are properly forwarded to the camera. The `PerspectiveCamera` and `OrthographicCamera` require znear and zfar as additional parameters for the forward pass.
Reviewed By: nikhilaravi
Differential Revision: D21421443
fbshipit-source-id: 4aa0a83a419592d9a0bb5d62486a1cdea9d73ce6
Summary:
This diff integrates the pulsar renderer source code into PyTorch3D as an alternative backend for the PyTorch3D point renderer. This diff is the first of a series of three diffs to complete that migration and focuses on the packaging and integration of the source code.
For more information about the pulsar backend, see the release notes and the paper (https://arxiv.org/abs/2004.07484). For information on how to use the backend, see the point cloud rendering notebook and the examples in the folder `docs/examples`.
Tasks addressed in the following diffs:
* Add the PyTorch3D interface,
* Add notebook examples and documentation (or adapt the existing ones to feature both interfaces).
Reviewed By: nikhilaravi
Differential Revision: D23947736
fbshipit-source-id: a5e77b53e6750334db22aefa89b4c079cda1b443
Summary: To avoid docker's new ratelimiting, we sign in.
Reviewed By: theschnitz
Differential Revision: D24681688
fbshipit-source-id: 6bb1a86ee15a151758e8a2bdb081da280308ad0c
Summary: To initialize the Cameras class currently we require the principal point, focal length and other parameters to be specified from which we calculate the intrinsic matrix. In some cases the matrix might be directly available e.g. from a dataset and the associated metadata for an image.
Reviewed By: nikhilaravi
Differential Revision: D24489509
fbshipit-source-id: 1b411f19c5f6c8074bcfbf613f3339d5e242c119
Summary: CircleCI build configuration to support pytorch1.7, including binaries with cuda 11.0. Note that the default torch on pip is still on cuda 10.2, so I have left the `main` (non conda build) on cuda 10.2 with the existing driver.
Reviewed By: gkioxari
Differential Revision: D24623523
fbshipit-source-id: 59cfa1be06c16225f0f12ed336c07220e8a9a511
Summary: We envision `pytorch3d.vis` to contain submodules with different dependencies. Allow (and require) them to be imported independently.
Reviewed By: theschnitz
Differential Revision: D24622519
fbshipit-source-id: 44840f70f5fd2bd410405bf09546024e48238744
Summary: This recently added test is sensitive to the version of PIL because of different algorithms to draw ellipses/circles. Remove it as there is no obvious safe way to test this. Replace with a test for the underlying centres_for_image().
Reviewed By: theschnitz
Differential Revision: D24622465
fbshipit-source-id: e46d7384df491c71ac87ba8bbbce89507ac40080
Summary: New methods to directly plot a TexturesUV map with its used points, using PIL and matplotlib.
Reviewed By: gkioxari
Differential Revision: D23782968
fbshipit-source-id: 692970857b5be13a35a3175dc82ac03963a73555
Summary: We were importing torch, torchvision, PyTorch3D, and sys twice. This is just removing the duplicate (unneeded) imports
Reviewed By: theschnitz
Differential Revision: D24479270
fbshipit-source-id: 1048732f65242eb776c3eef537cb1ae58815c1eb
Summary:
The README for the project refers to the BSD 3-Clause License, but the License file has only BSD License as the name. Updated the License name to BSD 3-Clause License for correct reference.
License files are an important part of source code and should not have errors. This helps developers to correctly reference the license when integrating the source code within their applications.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/310
Reviewed By: theschnitz
Differential Revision: D24220599
Pulled By: nikhilaravi
fbshipit-source-id: 657bde0abe946e95864fc048eb930a91ddf08b99
Summary: Fix axis_angle conversions where I used torch.square which doesn't work with pytorch 1.4
Reviewed By: nikhilaravi
Differential Revision: D24451546
fbshipit-source-id: ba26f7dad5fa991f0a8f7d3d09ee7151163aecf4
Summary: We can represent a rotation as a vector in the axis direction, whose length is the rotation anticlockwise in radians around that axis.
Reviewed By: gkioxari
Differential Revision: D24306293
fbshipit-source-id: 2e0f138eda8329f6cceff600a6e5f17a00e4deb7
Summary: Take in a renderer with camera(s) and render the cameras as wireframes in the corresponding plotly plots
Reviewed By: nikhilaravi
Differential Revision: D24151706
fbshipit-source-id: f8e86d61f3d991500bafc0533738c79b96bda630
Summary:
Use a provided renderer's camera positions to render a plotly plot to match what the renderer would render for pointclouds and meshes.
- takes in a Cameras object for viewpoints
- for each subplot, will index into the Cameras object (or use the Cameras object, if len(viewpoint_cameras) == 1 and use the Cameras' eye and at vectors to set plotly's camera's corresponding values, the eye and center values.
Reviewed By: nikhilaravi
Differential Revision: D24094934
fbshipit-source-id: 48abcdb04c6909a172ba9f721522c3446952a089