1206 Commits

Author SHA1 Message Date
Roman Shapovalov
32e1992924 SQL Index Dataset
Summary:
Moving SQL dataset to PyTorch3D. It has been extensively tested in pixar_replay.

It requires SQLAlchemy 2.0, which is not supported in fbcode. So I exclude the sources and tests that depend on it from buck TARGETS.

Reviewed By: bottler

Differential Revision: D45086611

fbshipit-source-id: 0285f03e5824c0478c70ad13731525bb5ec7deef
2023-04-25 09:56:15 -07:00
Roman Shapovalov
7aeedd17a4 When bounding boxes are cached in metadata, don’t crash on load_masks=False
Summary:
We currently support caching bounding boxes in MaskAnnotation. If present, they are not re-computed from the mask. However, the masks need to be loaded for the bbox to be set.

This diff fixes that. Even if load_masks / load_blobs are unset, the bounding box can be picked up from the metadata.

Reviewed By: bottler

Differential Revision: D45144918

fbshipit-source-id: 8a2e2c115e96070b6fcdc29cbe57e1cee606ddcd
2023-04-20 07:28:45 -07:00
Roman Shapovalov
0e3138eca8 Optional ground-truth depth maps in visualiser
Summary: The code does not crash if depth map/mask are not given.

Reviewed By: bottler

Differential Revision: D45082985

fbshipit-source-id: 3610d8beb4ac897fbbe52f56a6dd012a6365b89b
2023-04-18 07:00:17 -07:00
Richard Barnes
1af6bf4768 Replace hasattr with getattr in vision/fair/pytorch3d/pytorch3d/renderer/cameras.py
Summary:
The pattern
```
X.Y if hasattr(X, "Y") else Z
```
can be replaced with
```
getattr(X, "Y", Z)
```

The [getattr](https://www.w3schools.com/python/ref_func_getattr.asp) function gives more succinct code than the [hasattr](https://www.w3schools.com/python/ref_func_hasattr.asp) function. Please use it when appropriate.

**This diff is very low risk. Green tests indicate that you can safely Accept & Ship.**

Reviewed By: bottler

Differential Revision: D44886893

fbshipit-source-id: 86ba23e837217e1ebd64bf8e27d286257894839e
2023-04-14 04:24:54 -07:00
generatedunixname89002005307016
355d6332cb upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D44881859

fbshipit-source-id: 4ed410724a14d580f811c1288f51a71ce8fb0c9a
2023-04-11 17:15:12 -07:00
Jeremy Reizenstein
e245560abb version 0.7.3
Summary: update version number

Reviewed By: davidsonic

Differential Revision: D44343297

fbshipit-source-id: 763a25fbe0c880e8b7ad851b8e4b57787e449cab
v0.7.3
2023-04-04 07:48:02 -07:00
Jeremy Reizenstein
33bf10f961 INSTALL updates for 0.7.3
Summary: PyTorch 2.0 now supported

Reviewed By: davidsonic

Differential Revision: D44343298

fbshipit-source-id: c81556dc872141e692a97845da0fb50fe82f62da
2023-04-04 07:48:02 -07:00
Jeremy Reizenstein
274b6df918 update notebooks for 0.7.3
Summary:
Allow pytorch2.0 download:
```
sed -i 's/startswith(\\"1.13.\\")/startswith\(\(\\"1.13.\\", \\"2.0.\\"\)\)/' *b
```

Remove lines which download and install CUB:
```
sed -i.bak '/1.10\.0/d' *b
rm *.bak
```

Reviewed By: davidsonic

Differential Revision: D44343299

fbshipit-source-id: e8399b5dd10068c717178ba9ffb0630bacca3253
2023-04-04 07:48:02 -07:00
Ildar Salakhiev
ebdbfde0ce Extract BlobLoader class from JsonIndexDataset and moving crop_by_bbox to FrameData
Summary:
extracted blob loader
added documentation for blob_loader
did some refactoring on fields
for detailed steps and discussions see:
https://github.com/facebookresearch/pytorch3d/pull/1463
https://github.com/fairinternal/pixar_replay/pull/160

Reviewed By: bottler

Differential Revision: D44061728

fbshipit-source-id: eefb21e9679003045d73729f96e6a93a1d4d2d51
2023-04-04 07:17:43 -07:00
Dejan Kovachev
c759fc560f Hard population of registry system with pre_expand
Summary: Provide an extension point pre_expand to let a configurable class A make sure another class B is registered before A is expanded. This reduces top level imports.

Reviewed By: bottler

Differential Revision: D44504122

fbshipit-source-id: c418bebbe6d33862d239be592d9751378eee3a62
2023-03-31 07:44:38 -07:00
Emilien Garreau
813e941de5 Add the OverfitModel
Summary:
Introduces the OverfitModel for NeRF-style training with overfitting to one scene.
It is a specific case of GenericModel. It has been disentangle to ease usage.

## General modification

1. Modularize a minimum GenericModel to introduce OverfitModel
2. Introduce OverfitModel and ensure through unit testing that it behaves like GenericModel.

## Modularization

The following methods have been extracted from GenericModel to allow modularity with ManyViewModel:
- get_objective is now a call to weighted_sum_losses
- log_loss_weights
- prepare_inputs

The generic methods have been moved to an utils.py file.

Simplify the code to introduce OverfitModel.

Private methods like chunk_generator are now public and can now be used by ManyViewModel.

Reviewed By: shapovalov

Differential Revision: D43771992

fbshipit-source-id: 6102aeb21c7fdd56aa2ff9cd1dd23fd9fbf26315
2023-03-24 07:27:39 -07:00
Jeremy Reizenstein
7d8b029aae increment_version for inplace ops
Summary: For safety checks, make inplace forward operations in cuda and c++ call increment_version.

Reviewed By: davidsonic

Differential Revision: D44302504

fbshipit-source-id: 6ff62251e352d6778cb54399e2e11459e16e77ba
2023-03-23 11:48:36 -07:00
Jeremy Reizenstein
9437768687 conda pytorch2.0.0 builds (#1480)
Summary:
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1480

Nightly builds with PyTorch 2.0.

Reviewed By: shapovalov

Differential Revision: D44135997

fbshipit-source-id: 12b363e2eadbda7a9b6ba9d8db376f41b96d551c
2023-03-21 04:41:37 -07:00
generatedunixname89002005307016
8c8004853a upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D44182699

fbshipit-source-id: bdc5f495eaaee8ce461b91271d476d7b3ec3f8a2
2023-03-17 18:33:54 -07:00
Jeremy Reizenstein
013ff4fd90 doc fix load_point_cloud => load_pointcloud
Summary:
spelling errors in io.md

see https://github.com/facebookresearch/pytorch3d/discussions/1450

Reviewed By: davidsonic

Differential Revision: D43269978

fbshipit-source-id: 4bbe1f00bdeda4c51b7620e7b9cc065840303530
2023-03-09 10:11:13 -08:00
Jeremy Reizenstein
a123815f40 join_pointclouds_as_scene
Summary: New function

Reviewed By: davidsonic

Differential Revision: D42776590

fbshipit-source-id: 2a6e73480bcf2d1749f86bcb22d1942e3e8d3167
2023-03-09 06:51:13 -08:00
Emilien Garreau
d388881f2c Replace relative imports in generic_model.py with absolute ones
Summary: - Replace all the relative imports for generic models to absolute import: (from . import y => from pytorch3.x import y)

Reviewed By: shapovalov

Differential Revision: D43620682

fbshipit-source-id: 937318b339b5020d17b511a891c7b000ff659328
2023-02-28 05:41:37 -08:00
generatedunixname89002005287564
33b49cebf0 fbcode//vision/fair/pytorch3d
Reviewed By: bottler

Differential Revision: D43432438

fbshipit-source-id: 58159b2febb67febb533511eb2d1f47d40dad032
2023-02-20 07:19:15 -08:00
generatedunixname89002005307016
8c2b0b01f8 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D43044534

fbshipit-source-id: dc841b6704ccd562f5a40e7b2834e26063a9f7ae
2023-02-06 09:05:41 -08:00
generatedunixname89002005307016
d8471b26f2 upgrade pyre version in fbcode/vision - batch 2
Differential Revision: D42947615

fbshipit-source-id: 47b078fdf68567220e15993ab643f85771b0d340
2023-02-01 20:28:20 -08:00
David Novotny
18c38ad600 Fix opencv camera convention docs
Summary: see title

Reviewed By: bottler

Differential Revision: D42920739

fbshipit-source-id: 87f3d052657880b2ef58a1219bb7d4f283ab0830
2023-02-01 05:05:23 -08:00
Jeremy Reizenstein
c8af1c45ca fix broken config for GenericModel
Summary: D42760349 (9540c29023) (make Module.__init__ automatic) didn't account properly for inheritance.

Reviewed By: shapovalov

Differential Revision: D42834466

fbshipit-source-id: 53ee4c788985c1678ad905c06ccf12b2b41361e9
2023-01-29 08:19:57 -08:00
Jeremy Reizenstein
7dfa6918ee transform test fix
Summary: Indexing with a big matrix now fails with a ValueError, possibly because of pytorch improvements. Remove the testcase for it.

Reviewed By: davidsonic

Differential Revision: D42609741

fbshipit-source-id: 0a5a6632ed199cb942bfc4cc4ed347b72e491125
2023-01-28 17:00:41 -08:00
Roman Shapovalov
a7256e4034 Consider the first frame as target ignoring subset labels in evaluator
Summary:
Aligning the logic with the official CO3Dv2 evaluation: 92283c4368/co3d/dataset/utils.py (L7)

This will make the evaluator work with the datasets that do not define known/unseen subsets.

Reviewed By: bottler

Differential Revision: D42803136

fbshipit-source-id: cfac389eab010c32d2e33b40fc7f6ed845c327ef
2023-01-27 08:05:42 -08:00
Jeremy Reizenstein
9540c29023 Make Module.__init__ automatic
Summary: If a configurable class inherits torch.nn.Module and is instantiated, automatically call `torch.nn.Module.__init__` on it before doing anything else.

Reviewed By: shapovalov

Differential Revision: D42760349

fbshipit-source-id: 409894911a4252b7987e1fd218ee9ecefbec8e62
2023-01-27 07:07:46 -08:00
Jeremy Reizenstein
97f8f9bf47 test fix
Reviewed By: shapovalov

Differential Revision: D42780711

fbshipit-source-id: 075fcae5097147b782f7ffc935f5430b824f58fd
2023-01-27 03:56:53 -08:00
Nikhila Ravi
7e750a3786 Update README with links to blog posts (#43)
Summary: Pull Request resolved: https://github.com/fairinternal/pytorch3d/pull/43

Reviewed By: bottler

Differential Revision: D42791756

Pulled By: nikhilaravi

fbshipit-source-id: 498399c1ce30bb095579c4d66b6314a6aa846df3
2023-01-27 01:57:54 -08:00
generatedunixname89002005307016
0b11a5dc6d suppress errors in vision/fair/pytorch3d
Differential Revision: D42775736

fbshipit-source-id: 8425305cd99d50ebc155502d56c0deeee1d078ab
2023-01-26 07:04:18 -08:00
Roman Shapovalov
3239594f78 Fix: Correct concatenation of datasets in train conditioning
Summary: ChainDataset is iterable, and it toes not go along with a custom batch sampler.

Reviewed By: bottler

Differential Revision: D42742315

fbshipit-source-id: 40a715c8d24abe72cb2777634247d7467f628564
2023-01-26 03:00:46 -08:00
Roman Shapovalov
11959e0b24 Subsets in dataset iterators
Summary: For the new API, filtering iterators over sequences by subsets is quite helpful. The change is backwards compatible.

Reviewed By: bottler

Differential Revision: D42739669

fbshipit-source-id: d150a404aeaf42fd04a81304c63a4cba203f897d
2023-01-26 03:00:46 -08:00
Roman Shapovalov
54eb76d48c Loosening the checks in eval script for CO3Dv2 style eval
Summary:
V2 dataset does not have the concept of known/unseen frames. Test-time conditining is done with train-set frames, which violates the previous check.

Also fixing a corner case in VideoWriter.

Reviewed By: bottler

Differential Revision: D42706976

fbshipit-source-id: d43be3dd3060d18cb9f46d5dcf6252d9f084110f
2023-01-26 03:00:46 -08:00
David Novotny
9dc28f5dd5 Fixes for RayBundle plotting
Summary:
Fixes some issues with RayBundle plotting:
- allows plotting raybundles on gpu
- view -> reshape since we do not require contiguous raybundle tensors as input

Reviewed By: bottler, shapovalov

Differential Revision: D42665923

fbshipit-source-id: e9c6c7810428365dca4cb5ec80ef15ff28644163
2023-01-25 01:56:36 -08:00
Jeremy Reizenstein
a12612a48f doc rgbd point cloud
Summary: docstring and shape fix

Reviewed By: shapovalov

Differential Revision: D42609661

fbshipit-source-id: fd50234872ad61b5452821eeb89d51344f70c957
2023-01-24 15:26:52 -08:00
Roman Shapovalov
d561f1913e Cleaning up camera difficulty
Summary: We don’t see much value in reporting metrics by camera difficulty while supporting that in new datasets is quite painful, hence deprecating training cameras in the data API and ignoring in evaluation.

Reviewed By: bottler

Differential Revision: D42678879

fbshipit-source-id: aad511f6cb2ca82745f31c19594e1d80594b61d7
2023-01-23 10:38:56 -08:00
David Novotny
1de2d0c820 render_flyaround allow forwarding args from visualize_reconstruction
Summary: Allows to send kwargs to render_flyaround from visualize_reconstruction

Reviewed By: bottler, shapovalov

Differential Revision: D41157683

fbshipit-source-id: 74d8d7de4e991a31b14e72d76de5efdb8ab4b2c5
2023-01-23 06:52:48 -08:00
myla
b95535c8b7 Fixing bug in rasterizer.py caused by duplicate line (#1421)
Summary:
The file [rasterizer.py](de3a474d2b/pytorch3d/renderer/mesh/rasterizer.py (L201)) contains a duplicate line before the check if the projection_transform exists. This causes an exception in the case that a projection transform matrix is already provided. The corresponding lines should be (and are already) in the else case of the if-statement.

Removing these lines fixes the bug and produces the desired behavior.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1421

Reviewed By: shapovalov

Differential Revision: D42450999

Pulled By: bottler

fbshipit-source-id: f7464e87ec9ff8768455656324b0b008132c8a54
2023-01-19 05:49:56 -08:00
Jeremy Reizenstein
dcced4fa29 test fixes
Reviewed By: shapovalov

Differential Revision: D42545069

fbshipit-source-id: e25fb4049dcebd715df43bab3ce813ecb5f85abe
2023-01-17 06:11:56 -08:00
Jeremy Reizenstein
84851c8312 camera iteration #1408
Summary: Use IndexError so that a camera object is an iterable

Reviewed By: shapovalov

Differential Revision: D42312021

fbshipit-source-id: 67c417d5f1398e8b30a6944468eda057b4ceb444
2023-01-16 08:52:52 -08:00
Jeremy Reizenstein
b7e3b7b16c rendered_mesh_dataset improvements
Summary: Allow choosing the device and the distance

Reviewed By: shapovalov

Differential Revision: D42451605

fbshipit-source-id: 214f02d09da94eb127b3cc308d5bae800dc7b9e2
2023-01-16 07:46:41 -08:00
Jeremy Reizenstein
acc60db4f4 INSTALL.md clarification
Summary: Add fvcore and iopath explicitly. As mentioned in #1416.

Reviewed By: shapovalov

Differential Revision: D42451365

fbshipit-source-id: 0d8d2ead3f15dea6abef221fd5df2b4774abc83f
2023-01-16 07:41:46 -08:00
Moritz Kampelmuehler
aa5b31d857 Add nvidia channel for cudatoolkit (#1402)
Summary:
nvidia channel is required for installing cudatoolkit

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1402

Reviewed By: davidsonic

Differential Revision: D42208583

Pulled By: bottler

fbshipit-source-id: 83d0e63efcf7772b778ca909fd9b14d28829c5b6
2023-01-15 08:57:18 -08:00
yurimalheiros
1b4b67fd7f Minor fixes to the Fit Mesh tutorial (#1423)
Summary:
- Fix the numbers in the headers. Currently, there are no header number 2, the tutorial jump from 1 to 3.
- Clean some unnecessary code.

Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1423

Reviewed By: shapovalov

Differential Revision: D42478609

Pulled By: bottler

fbshipit-source-id: c49fc10b7d38c3573c92fea737101e6c06bbea38
2023-01-15 08:56:12 -08:00
Jeremy Reizenstein
9fb452db5c builds for pytorch 1.13.1
Reviewed By: davidsonic

Differential Revision: D42315355

fbshipit-source-id: f5ced5270e5a7b4a162ee930fc51dee0469d51fc
2023-01-12 14:27:43 -08:00
Jeremy Reizenstein
3cf3998ea5 assume Python 3.8+
Summary: Remove workarounds for Python 3.7

Reviewed By: davidsonic

Differential Revision: D42451534

fbshipit-source-id: 461dd311f3bccf7bef120ffe0b97fbbd173d95be
2023-01-12 14:25:40 -08:00
Jeremy Reizenstein
d71105f5e5 lints
Summary: lint fixes

Reviewed By: davidsonic

Differential Revision: D42451530

fbshipit-source-id: 120bdd58fc074a713895df15df4e9efa9ea0a420
2023-01-12 14:23:39 -08:00
Jeremy Reizenstein
3388d3f0aa Windows fix for marching cubes #1398
Summary: See https://github.com/facebookresearch/pytorch3d/issues/1398 .

Reviewed By: davidsonic

Differential Revision: D42139493

fbshipit-source-id: 972fc33b9c3017554ce704f2f10190eba406b7c8
2022-12-20 04:07:04 -08:00
Jeremy Reizenstein
3145dd4d16 version 0.7.2
Summary: version number

Reviewed By: davidsonic

Differential Revision: D42072729

fbshipit-source-id: 50adaac4daca7786479d33e218d15e941a725bb6
v0.7.2
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
6c053a6cea Update notebooks for 0.7.2
Summary: Expect pytorch 1.13

Reviewed By: davidsonic

Differential Revision: D42072731

fbshipit-source-id: 13ba4e7de18060dc4e5c0e10f850f17a88750fc9
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
3bbe26124a README.md and INSTALL.md updates
Summary: misc updates

Reviewed By: davidsonic

Differential Revision: D42072730

fbshipit-source-id: fc885d14346083bd6493f18e9d965b35a8d4bdfd
2022-12-15 16:15:45 -08:00
Jeremy Reizenstein
c773830b88 fix and pythonify conda build (#1394)
Summary:
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1394

The bash logic for building conda packages became fiddly to edit. We need to switch cuda-toolkit to pytorch-cuda when PyTorch>=1.12 which was going to be a pain, so here I rewrite the code in python and do it.

Reviewed By: shapovalov

Differential Revision: D42036406

fbshipit-source-id: 8bb80c2f7545477182b23fc97c8514dcafcee176
2022-12-15 03:22:07 -08:00