850 Commits

Author SHA1 Message Date
Jeremy Reizenstein
174738c33e safer pip install in doc
Summary: Add --no-cache and --no-index to all commands which try to download wheels from S3, to avoid hitting pypi.

Reviewed By: nikhilaravi

Differential Revision: D33507975

fbshipit-source-id: ee796e43cc1864e475cd73c248e9900487012f25
2022-01-21 06:28:32 -08:00
Jeremy Reizenstein
45d096e219 cameras_from_opencv_projection device #1021
Summary: Fix https://github.com/facebookresearch/pytorch3d/issues/1021 that cameras_from_opencv_projection always creates on CPU.

Reviewed By: nikhilaravi

Differential Revision: D33508211

fbshipit-source-id: fadebd45cacafd633af6a58094cf6f654529992c
2022-01-21 05:32:20 -08:00
Jeremy Reizenstein
39bb2ce063 Join cameras as batch
Summary:
Function to join a list of cameras objects into a single batched object.

FB: In the next diff I will remove the `concatenate_cameras` function in implicitron and update the callsites.

Reviewed By: nikhilaravi

Differential Revision: D33198209

fbshipit-source-id: 0c9f5f5df498a0def9dba756c984e6a946618158
2022-01-21 05:29:43 -08:00
Jeremy Reizenstein
9e2bc3a17f ambient lights batching #1043
Summary:
convert_to_tensors_and_broadcast had a special case for a single input, which is not used anywhere except fails to do the right thing if a TensorProperties has only one kwarg. At the moment AmbientLights may be the only way to hit the problem. Fix by removing the special case.

Fixes https://github.com/facebookresearch/pytorch3d/issues/1043

Reviewed By: nikhilaravi

Differential Revision: D33638345

fbshipit-source-id: 7a6695f44242e650504320f73b6da74254d49ac7
2022-01-20 09:44:38 -08:00
Jeremy Reizenstein
fddd6a700f drop builds for PyTorch 1.6.0
Summary: PyTorch 1.7.0 was in Oct 2020 and 1.7.1 was in Dec 2020. We shouldn't need older than them, maybe not even 1.7.0.

Reviewed By: patricklabatut

Differential Revision: D33507967

fbshipit-source-id: d3de09c20c44870cbe5522705f2293acc0e62af3
2022-01-10 10:04:02 -08:00
Jeremy Reizenstein
85cdcc252d builds for PyTorch 1.10.1
Summary: Adds 1.10.1 to the nightly builds

Reviewed By: patricklabatut

Differential Revision: D33507966

fbshipit-source-id: af88b155adbc4e3236107f709323bd46a1819013
2022-01-10 10:04:02 -08:00
Jeremy Reizenstein
fc4dd80208 initialize pointcloud from list containing Nones
Summary:
The following snippet should work in more cases.
     point_cloud = Pointclouds(
         [pcl.points_packed() for pcl in point_clouds],
         features=[pcl.features_packed() for pcl in point_clouds],
     )

We therefore allow features and normals inputs to be lists which contain some (but not all) Nones.

The initialization of a Pointclouds from empty data is also made a bit better now at working out how many feature channels there are.

Reviewed By: davnov134

Differential Revision: D31795089

fbshipit-source-id: 54bf941ba80672d699ffd5ac28927740e830f8ab
2022-01-07 05:54:44 -08:00
Jeremy Reizenstein
9640560541 test listing
Summary: Quick script to list tests to help completion of test command.

Reviewed By: patricklabatut

Differential Revision: D33279584

fbshipit-source-id: acb463106d311498449a14c1daf52434878722bf
2022-01-06 02:56:32 -08:00
Jeremy Reizenstein
6726500ad3 simple warning for bin overflow
Summary: Since coarse rasterization on cuda can overflow bins, we detect when this happens for memory safety. See https://github.com/facebookresearch/pytorch3d/issues/348 . Also try to print a warning.

Reviewed By: patricklabatut

Differential Revision: D33065604

fbshipit-source-id: 99b3c576d01b78e6d77776cf1a3e95984506c93a
2022-01-06 02:30:49 -08:00
Jeremy Reizenstein
d6a12afbe7 Pointclouds.subsample on Windows
Summary: Fix https://github.com/facebookresearch/pytorch3d/issues/1015. Stop relying on the fact that the dtype returned by np.random.choice (int64 on Linux, int32 on Windows) matches the dtype used by pytorch for indexing (int64 everywhere).

Reviewed By: patricklabatut

Differential Revision: D33428680

fbshipit-source-id: 716c857502cd54c563cb256f0eaca7dccd535c10
2022-01-06 02:22:44 -08:00
Jeremy Reizenstein
49f93b6388 remove Python3.6 builds
Summary: Python 3.6 was EOL on 2021-12-23.

Reviewed By: patricklabatut

Differential Revision: D33428708

fbshipit-source-id: 37a73898df49a4a49266839278fc8be56597405d
2022-01-05 07:25:02 -08:00
Jeremy Reizenstein
741777b5b5 More company name & License
Summary: Manual adjustments for license changes.

Reviewed By: patricklabatut

Differential Revision: D33405657

fbshipit-source-id: 8a21735726f3aece9f9164da9e3b272b27db8032
2022-01-04 11:43:38 -08:00
Jeremy Reizenstein
9eeb456e82 Update license for company name
Summary: Update all FB license strings to the new format.

Reviewed By: patricklabatut

Differential Revision: D33403538

fbshipit-source-id: 97a4596c5c888f3c54f44456dc07e718a387a02c
2022-01-04 11:43:38 -08:00
Pyre Bot Jr
7660ed1876 suppress errors in fbcode/vision - batch 2
Differential Revision: D33338085

fbshipit-source-id: fdb207864718c56dfa0d20530b59349c93af11bd
2021-12-28 11:28:48 -08:00
Nikhila Ravi
52c71b8816 Update Harmonic embedding in NeRF
Summary: Removed harmonic embedding function from projects/nerf and changed import to be from core pytorch3d.

Reviewed By: patricklabatut

Differential Revision: D33142358

fbshipit-source-id: 3004247d50392dbd04ea72e9cd4bace0dc03606b
2021-12-21 15:05:33 -08:00
Nikhila Ravi
f9a26a22fc Move Harmonic embedding to core pytorch3d
Summary:
Moved `HarmonicEmbedding` function in core PyTorch3D.
In the next diff will update the NeRF project.

Reviewed By: bottler

Differential Revision: D32833808

fbshipit-source-id: 0a12ccd1627c0ce024463c796544c91eb8d4d122
2021-12-21 15:05:33 -08:00
Nikhila Ravi
d67662d13c Update use of select_cameras
Summary: Removed `select_cameras.py` from implicitron and updated all callsites to directly index the cameras.

Reviewed By: bottler

Differential Revision: D33187605

fbshipit-source-id: aaf5b36aef9d72db0c7e89dec519f23646f6aa05
2021-12-21 05:46:38 -08:00
Nikhila Ravi
28ccdb7328 Enable __getitem__ for Cameras to return an instance of Cameras
Summary:
Added a custom `__getitem__` method to `CamerasBase` which returns an instance of the appropriate camera instead of the `TensorAccessor` class.

Long term we should deprecate the `TensorAccessor` and the `__getitem__` method on `TensorProperties`

FB: In the next diff I will update the uses of `select_cameras` in implicitron.

Reviewed By: bottler

Differential Revision: D33185885

fbshipit-source-id: c31995d0eb126981e91ba61a6151d5404b263f67
2021-12-21 05:46:38 -08:00
Jeremy Reizenstein
cc3259ba93 update linux wheel builds
Summary:
* Add PyTorch 1.10 + CUDA 11.1 combination.
* Change the CUDA 11.3 builds to happen in a separate docker image.
* Update connection to AWS to use the official `aws` commands instead of the wrapper which is now gone.

Reviewed By: patricklabatut

Differential Revision: D33235489

fbshipit-source-id: 56401f27c002a512ae121b3ec5911d020bfab885
2021-12-21 05:07:41 -08:00
Jeremy Reizenstein
b51be58f63 validate sampling_mode
Summary: New sampling mode option in TexturesUV mush match when collating meshes.

Reviewed By: patricklabatut

Differential Revision: D33235901

fbshipit-source-id: f457473d90bf022e65fe122ef45bf5efad134345
2021-12-21 04:48:14 -08:00
Jeremy Reizenstein
7449951850 force old mistune for website
Summary: When parsing tutorials for building the website, we fix a few libraries at old versions. They need mistune 0.8.4, not the new version 2+, so this gets added to the list of fixed-version libraries.

Reviewed By: patricklabatut

Differential Revision: D33236031

fbshipit-source-id: 2b152b64043edffc59fa909012eab5794c7e8844
2021-12-21 04:44:36 -08:00
Nikhila Ravi
262c1bfcd4 Join points as batch
Summary: Function to join a list of pointclouds as a batch similar to the corresponding function for Meshes.

Reviewed By: bottler

Differential Revision: D33145906

fbshipit-source-id: 160639ebb5065e4fae1a1aa43117172719f3871b
2021-12-21 04:44:36 -08:00
Jeremy Reizenstein
eb2bbf8433 screen space docstrings fix
Summary: Fix some comments to match the recent change to transform_points_screen.

Reviewed By: patricklabatut

Differential Revision: D33243697

fbshipit-source-id: dc8d182667a9413bca2c2e3657f97b2f7a47c795
2021-12-21 04:31:33 -08:00
Jeremy Reizenstein
1152a93b72 PyTorch>1.9 version str
Summary: Make code for downloading linux wheels robust to double-digit PyTorch minor version.

Reviewed By: nikhilaravi

Differential Revision: D33170562

fbshipit-source-id: 559a97cc98ff8411e235a9f9e29f84b7a400c716
2021-12-18 15:49:17 -08:00
Pyre Bot Jr
315f2487db suppress errors in vision/fair/pytorch3d
Differential Revision: D33202801

fbshipit-source-id: d4cb0f4f4a8ad5a6519ce4b8c640e8f96fbeaccb
2021-12-17 19:23:58 -08:00
Georgia Gkioxari
ccfb72cc50 small fix for iou3d
Summary:
A small numerical fix for IoU for 3D boxes, fixes GH #992

* Adds a check for boxes with zero side areas (invalid boxes)
* Fixes numerical issue when two boxes have coplanar sides

Reviewed By: nikhilaravi

Differential Revision: D33195691

fbshipit-source-id: 8a34b4d1f1e5ec2edb6d54143930da44bdde0906
2021-12-17 16:13:51 -08:00
Jeremy Reizenstein
069c9fd759 pytorch TORCH_CHECK_ARG version compatibility
Summary: Restore compatibility with old C++ after recent torch change. https://github.com/facebookresearch/pytorch3d/issues/995

Reviewed By: patricklabatut

Differential Revision: D33093174

fbshipit-source-id: 841202fb875d601db265e93dcf9cfa4249d02b25
2021-12-15 08:34:10 -08:00
CodemodService FBSourceClangFormatLinterBot
9eec430f1c Daily arc lint --take CLANGFORMAT
Reviewed By: zertosh

Differential Revision: D33090919

fbshipit-source-id: 78efa486776014a27f280a01a21f9e0af6742e3e
2021-12-14 08:06:14 -08:00
Peter Bell
f8fe9a2be1 Remove THGeneral (#69041)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/69041

`TH_CONCAT_{N}` is still being used by THP so I've moved that into
it's own header but all the compiled code is gone.

Test Plan: Imported from OSS

Reviewed By: anjali411

Differential Revision: D32872477

Pulled By: ngimel

fbshipit-source-id: 06c82d8f96dbcee0715be407c61dfc7d7e8be47a
2021-12-13 16:14:17 -08:00
Jeremy Reizenstein
d049cd2e01 PyTorch 1.10 + CUDA 11.1 builds
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
v0.6.1
2021-12-13 10:11:00 -08:00
Jeremy Reizenstein
1edc624d82 version 0.6.1
Summary: Update version number

Reviewed By: patricklabatut

Differential Revision: D33016833

fbshipit-source-id: ee3b0997887ab3bc5779503b13fa2014df41eaed
2021-12-13 04:38:16 -08:00
Jeremy Reizenstein
6ea6314792 [pytorch3d install.md for 0.6.1
Summary: Update references to dependencies

Reviewed By: patricklabatut

Differential Revision: D33016832

fbshipit-source-id: aa41c7ccc6acd19654303bc18bfd734dc29d88a3
2021-12-13 04:38:16 -08:00
Jeremy Reizenstein
093999e71f update tutorials for release
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
2021-12-13 04:38:16 -08:00
Jeremy Reizenstein
a22b1e32a4 linux builds for PyTorch 1.10.0
Summary: Build the wheels with latest PyTorch

Reviewed By: patricklabatut

Differential Revision: D33016835

fbshipit-source-id: 0ec42f31f1e4d4055562f18790f929b34bb13c52
2021-12-13 04:38:16 -08:00
CodemodService FBSourceClangFormatLinterBot
9c9d9440f9 Daily arc lint --take CLANGFORMAT
Reviewed By: zertosh

Differential Revision: D32975574

fbshipit-source-id: 66856595c7bc29921f24a2c5c00c72892f262aa1
2021-12-09 00:10:21 -08:00
Peter Bell
c65af9ef5a Remove remaining THC code (#69039)
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/69039

Test Plan: Imported from OSS

Reviewed By: anjali411

Differential Revision: D32872476

Pulled By: ngimel

fbshipit-source-id: 7972aacc24aef9450fb59b707ed6396c501bcb31
2021-12-08 12:15:58 -08:00
Jeremy Reizenstein
70acb3e415 new tests demonstrating pixel matching
Summary: Demonstrate current behavior of pixels with new tests of all renderers.

Reviewed By: gkioxari

Differential Revision: D32651141

fbshipit-source-id: 3ca30b4274ed2699bc5e1a9c6437eb3f0b738cbf
2021-12-07 15:04:20 -08:00
Jeremy Reizenstein
bf3bc6f8e3 screen cameras lose -1
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
2021-12-07 15:04:20 -08:00
Jeremy Reizenstein
cff4876131 add from_ndc to unproject_points
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
2021-12-07 15:04:20 -08:00
Jeremy Reizenstein
a0e2d2e3c3 move benchmarks to separate directory
Summary: Move benchmarks to a separate directory as tests/ is getting big.

Reviewed By: nikhilaravi

Differential Revision: D32885462

fbshipit-source-id: a832662a494ee341ab77d95493c95b0af0a83f43
2021-12-07 10:26:50 -08:00
Roman Shapovalov
a6508ac3df Fix: Pointclouds.inside_box reducing over spatial dimensions.
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
2021-12-06 07:45:46 -08:00
Ana Dodik
d9f709599b Adding the option to choose the texture sampling mode in TexturesUV.
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
2021-11-29 07:01:28 -08:00
Patrick Labatut
e4456dba2f Facebook -> Meta Platforms on website footer + docs
Summary: Update company copyright on website footer + documentation pages, see [guidelines](https://www.internalfb.com/intern/wiki/Open_Source/Launch_an_OSS_Project/Launch_Preparation/Automated_Checkup/Terms_Of_Use_&_Privacy_Policy/).

Reviewed By: bottler

Differential Revision: D32649563

fbshipit-source-id: f285be79c185496832c5d41b839ee974234a8fa5
2021-11-24 10:07:15 -08:00
Jeremy Reizenstein
7fa333f632 Fix some Transform3D -> Transform3d
Summary: Fix some typos in comments.

Reviewed By: patricklabatut

Differential Revision: D32596645

fbshipit-source-id: 09b6d8c49f4f0301b80df626c6f9a2d5b5d9b1a7
2021-11-23 11:31:11 -08:00
Jeremy Reizenstein
a0247ea6bd pulsar image_size validation
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
2021-11-17 15:18:01 -08:00
Pyre Bot Jr
a8cb7fa862 suppress errors in fbcode/vision - batch 2
Differential Revision: D32509948

fbshipit-source-id: 762ad27c7e6c76c30eb97fd44f1739295f63b98b
2021-11-17 14:38:11 -08:00
Jeremy Reizenstein
7ce18f38cd TexturesAtlas in plotly
Summary:
Lets a K=1 textures atlas be viewed in plotly. Fixes https://github.com/facebookresearch/pytorch3d/issues/916 .

Test: Now get colored faces in
```
import torch
from pytorch3d.utils import ico_sphere
from pytorch3d.vis.plotly_vis import plot_batch_individually
from pytorch3d.renderer import TexturesAtlas

b = ico_sphere()
face_colors = torch.rand(b.faces_padded().shape)
tex = TexturesAtlas(face_colors[:,:,None,None])
b.textures=tex
plot_batch_individually(b)
```

Reviewed By: gkioxari

Differential Revision: D32190470

fbshipit-source-id: 258d30b7e9d79751a79db44684b5540657a2eff5
2021-11-11 02:15:33 -08:00
Jeremy Reizenstein
5fbdb99aec builds for pytorch 1.10.0
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
2021-11-11 02:03:37 -08:00
Pyre Bot Jr
1836c786fe suppress errors in vision/fair/pytorch3d
Differential Revision: D32310496

fbshipit-source-id: fa1809bbe0b999baee6d07fad3890dc8c2a2157b
2021-11-10 02:52:00 -08:00
Ignacio Rocco
cac6cb1b78 Update NDC raysampler for non-square convention (#29)
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
2021-11-05 10:36:19 -07:00