Summary: Although the PyTorch website, which describes the current version 1.10, suggests CUDA 10.2 and 11.3 are supported, it would appear that we need to include builds for CUDA 11.1 to avoid surprises. This is because these builds are on anaconda, and this combination is used on Google Colab.
Reviewed By: nikhilaravi
Differential Revision: D33063932
fbshipit-source-id: 1b22d1f06e22bd18fb53ceecb58e78ac6a5d1693
Summary: Pre 0.6.1 release, make the tutorials expect wheels with PyTorch 1.10.0
Reviewed By: patricklabatut
Differential Revision: D33016834
fbshipit-source-id: b8c5c1c6158f806c3e55ec668117fa762fa4b75f
Summary: Demonstrate current behavior of pixels with new tests of all renderers.
Reviewed By: gkioxari
Differential Revision: D32651141
fbshipit-source-id: 3ca30b4274ed2699bc5e1a9c6437eb3f0b738cbf
Summary:
All the renderers in PyTorch3D (pointclouds including pulsar, meshes, raysampling) use align_corners=False style. NDC space goes between the edges of the outer pixels. For a non square image with W>H, the vertical NDC space goes from -1 to 1 and the horizontal from -W/H to W/H.
However it was recently pointed out that functionality which deals with screen space inside the camera classes is inconsistent with this. It unintentionally uses align_corners=True. This fixes that.
This would change behaviour of the following:
- If you create a camera in screen coordinates, i.e. setting in_ndc=False, then anything you do with the camera which touches NDC space may be affected, including trying to use renderers. The transform_points_screen function will not be affected...
- If you call the function “transform_points_screen” on a camera defined in NDC space results will be different. I have illustrated in the diff how to get the old results from the new results but this probably isn’t the right long-term solution..
Reviewed By: gkioxari
Differential Revision: D32536305
fbshipit-source-id: 377325a9137282971dcb7ca11a6cba3fc700c9ce
Summary: Give unproject_points an argument letting it bypass screen space. use it to let the raysampler work for cameras defined in screen space.
Reviewed By: gkioxari
Differential Revision: D32596600
fbshipit-source-id: 2fe585dcd138cdbc65dd1c70e1957fd894512d3d
Summary: Move benchmarks to a separate directory as tests/ is getting big.
Reviewed By: nikhilaravi
Differential Revision: D32885462
fbshipit-source-id: a832662a494ee341ab77d95493c95b0af0a83f43
Summary: As subj. Tests corrected accordingly. Also changed the test to provide a bit better diagnostics.
Reviewed By: bottler
Differential Revision: D32879498
fbshipit-source-id: 0a852e4a13dcb4ca3e54d71c6b263c5d2eeaf4eb
Summary:
This diff adds the `sample_mode` parameter to `TexturesUV` to control the interpolation mode during texture sampling. It simply gets forwarded to `torch.nn.funcitonal.grid_sample`.
This option was requested in this [GitHub issue](https://github.com/facebookresearch/pytorch3d/issues/805).
Reviewed By: patricklabatut
Differential Revision: D32665185
fbshipit-source-id: ac0bc66a018bd4cb20d75fec2d7c11145dd20199
Summary:
For a non-square image, the image_size in PointsRasterizationSettings is now (H,W) not (W,H). A part of pulsar's validation code wasn't updated for this.
The following now works.
```
H, W = 249, 125
image_size = (H, W)
camera = PerspectiveCameras(focal_length=1.0, image_size=(image_size,), in_ndc=True)
points_rasterizer = PointsRasterizer(cameras=camera, raster_settings=PointsRasterizationSettings(image_size=image_size, radius=0.0000001))
pulsar_renderer = PulsarPointsRenderer(rasterizer=points_rasterizer)
pulsar_renderer(Pointclouds(...), gamma = (0.1,), znear = (0.1,), zfar = (70,))
```
Reviewed By: nikhilaravi, classner
Differential Revision: D32316322
fbshipit-source-id: 8405a49acecb1c95d37ee368c3055868b797208a
Summary:
Add builds corresponding to the new pytorch 1.10.0. We omit CUDA 11.3 testing because it fails with current hardware, and omit the main build too for the moment.
Also move to the newer GPU circle CI executors.
Reviewed By: gkioxari
Differential Revision: D32335934
fbshipit-source-id: 416d92a8eecd06ef7fc742664a5f2d46f93415f8
Summary:
- Old NDC convention had xy coords in [-1,1]x[-1,1]
- New NDC convention has xy coords in [-1, 1]x[-u, u] or [-u, u]x[-1, 1]
where u > 1 is the aspect ratio of the image.
This PR fixes the NDC raysampler to use the new convention.
Partial fix for https://github.com/facebookresearch/pytorch3d/issues/868
Pull Request resolved: https://github.com/fairinternal/pytorch3d/pull/29
Reviewed By: davnov134
Differential Revision: D31926148
Pulled By: bottler
fbshipit-source-id: c6c42c60d1473b04e60ceb49c8c10951ddf03c74
Summary:
Make sure the functions from `rotation_conversion` are jittable, and add some type hints.
Add tests to verify this is the case.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/898
Reviewed By: patricklabatut
Differential Revision: D31926103
Pulled By: bottler
fbshipit-source-id: bff6013c5ca2d452e37e631bd902f0674d5ca091
Summary:
https://github.com/facebookresearch/pytorch3d/issues/561https://github.com/facebookresearch/pytorch3d/issues/790
Divide by zero fix (NaN fix). When perspective_correct=True, BarycentricPerspectiveCorrectionForward and BarycentricPerspectiveCorrectionBackward in ../csrc/utils/geometry_utils.cuh are called. The denominator (denom) values should not be allowed to go to zero. I'm able to resolve this issue locally with this PR and submit it for the team's review.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/891
Reviewed By: patricklabatut
Differential Revision: D31829695
Pulled By: bottler
fbshipit-source-id: a3517b8362f6e60d48c35731258d8ce261b1d912
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
Summary: Few tweaks to make CUDA build on windows happier, as remarked in #876.
Reviewed By: patricklabatut
Differential Revision: D31688188
fbshipit-source-id: 20816d6215f2e3ec898f81ae4221b1c2ff24b64f
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
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
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
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
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
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
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
Summary: Do the website building in a docker container to avoid worrying about dependencies.
Reviewed By: nikhilaravi
Differential Revision: D30223892
fbshipit-source-id: 77b7b4630188167316891381f6ca9e9fbe7f0a05
Summary: A small fix for the iou3d note
Reviewed By: bottler
Differential Revision: D31370686
fbshipit-source-id: 6c97302b5c78de52915f31be70f234179c4b246d
Summary: New function to randomly subsample Pointclouds to a maximum size.
Reviewed By: nikhilaravi
Differential Revision: D30936533
fbshipit-source-id: 789eb5004b6a233034ec1c500f20f2d507a303ff
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
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