1. 22 Jul, 2022 2 commits
    • Krzysztof Chalupka's avatar
      Add .to methods to the splatter and SplatterPhongShader. · 36edf2b3
      Krzysztof Chalupka authored
      Summary: Needed to properly change devices during OpenGL rasterization.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D37698568
      
      fbshipit-source-id: 38968149d577322e662d3b5d04880204b0a7be29
      36edf2b3
    • Krzysztof Chalupka's avatar
      Add EGLContext and DeviceContextManager · 78bb6d17
      Krzysztof Chalupka authored
      Summary:
      EGLContext is a utility to render with OpenGL without an attached display (that is, without a monitor).
      
      DeviceContextManager allows us to avoid unnecessary context creations and releases. See docstrings for more info.
      
      Reviewed By: jcjohnson
      
      Differential Revision: D36562551
      
      fbshipit-source-id: eb0d2a2f85555ee110e203d435a44ad243281d2c
      78bb6d17
  2. 21 Jul, 2022 4 commits
    • Jeremy Reizenstein's avatar
      GM error for unbatched inputs · 54c75b41
      Jeremy Reizenstein authored
      Summary: Error when sending an unbatched FrameData through GM.
      
      Reviewed By: shapovalov
      
      Differential Revision: D38036286
      
      fbshipit-source-id: b8d280c61fbbefdc112c57ccd630ab3ccce7b44e
      54c75b41
    • Jeremy Reizenstein's avatar
      lazy all_train_cameras · 3783437d
      Jeremy Reizenstein authored
      Summary: Avoid calculating all_train_cameras before it is needed, because it is slow in some datasets.
      
      Reviewed By: shapovalov
      
      Differential Revision: D38037157
      
      fbshipit-source-id: 95461226655cde2626b680661951ab17ebb0ec75
      3783437d
    • Jeremy Reizenstein's avatar
      lints · b2dc5202
      Jeremy Reizenstein authored
      Summary: lint issues (mostly flake) in implicitron
      
      Reviewed By: patricklabatut
      
      Differential Revision: D37920948
      
      fbshipit-source-id: 8cb3c2a2838d111c80a211c98a404c210d4649ed
      b2dc5202
    • Jeremy Reizenstein's avatar
      dependencies for testing · 8597d4c5
      Jeremy Reizenstein authored
      Summary: We especially need omegaconf when testing impicitron.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D37921440
      
      fbshipit-source-id: 4e66fde35aa29f60eabd92bf459cd584cfd7e5ca
      8597d4c5
  3. 19 Jul, 2022 1 commit
  4. 18 Jul, 2022 1 commit
    • Jeremy Reizenstein's avatar
      multiseq conditioning type · 67840f83
      Jeremy Reizenstein authored
      Summary: Add the conditioning types to the repro yaml files. In particular, this fixes test_conditioning_type.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37914537
      
      fbshipit-source-id: 621390f329d9da662d915eb3b7bc709206a20552
      67840f83
  5. 17 Jul, 2022 1 commit
    • Jeremy Reizenstein's avatar
      option to avoid accelerate · 9b2e5705
      Jeremy Reizenstein authored
      Summary: For debugging, introduce PYTORCH3D_NO_ACCELERATE env var.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37885393
      
      fbshipit-source-id: de080080c0aa4b6d874028937083a0113bb97c23
      9b2e5705
  6. 15 Jul, 2022 1 commit
  7. 14 Jul, 2022 3 commits
    • Jiali Duan's avatar
      Fix Pytorch3D PnP test · 379c8b27
      Jiali Duan authored
      Summary:
      EPnP fails the test when the number of points is below 6. As suggested, quadratic option is in theory to deal with as few as 4 points (so num_pts_thresh=3 is set). And when num_pts > num_pts_thresh=4, skip_q is False.
      
      To avoid bumping num_pts_thresh while passing all the original tests, check_output is set to False when num_pts < 6, similar to the logic in Line 123-127.  It makes sure that the algo doesn't crash.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37804438
      
      fbshipit-source-id: 74576d63a9553e25e3ec344677edb6912b5f9354
      379c8b27
    • Jeremy Reizenstein's avatar
      lint fix: raise from None · 8e0c82b8
      Jeremy Reizenstein authored
      Summary: New linter warning is complaining about `raise` inside `except`.
      
      Reviewed By: kjchalup
      
      Differential Revision: D37819264
      
      fbshipit-source-id: 56ad5d0558ea39e1125f3c76b43b7376aea2bc7c
      8e0c82b8
    • David Novotny's avatar
      Remove -1 from crop mask · 8ba9a694
      David Novotny authored
      Summary: Removing 1 from the crop mask does not seem sensible.
      
      Reviewed By: bottler, shapovalov
      
      Differential Revision: D37843680
      
      fbshipit-source-id: 70cec80f9ea26deac63312da62b9c8af27d2a010
      8ba9a694
  8. 13 Jul, 2022 4 commits
    • Roman Shapovalov's avatar
      Fixes to CO3Dv2 provider. · 36ba079b
      Roman Shapovalov authored
      Summary:
      1. Random sampling of num batches without replacement not supported.
      2.Providers should implement the interface for the training loop to work.
      
      Reviewed By: bottler, davnov134
      
      Differential Revision: D37815388
      
      fbshipit-source-id: 8a2795b524e733f07346ffdb20a9c0eb1a2b8190
      36ba079b
    • Jeremy Reizenstein's avatar
      followups to D37592429 · b95ec190
      Jeremy Reizenstein authored
      Summary: Fixing comments on D37592429 (https://github.com/facebookresearch/pytorch3d/commit/0dce883241ae638b9fa824f34fca9590d5f0782c)
      
      Reviewed By: shapovalov
      
      Differential Revision: D37752367
      
      fbshipit-source-id: 40aa7ee4dc0c5b8b7a84a09d13a3933a9e3afedd
      b95ec190
    • Jeremy Reizenstein's avatar
      add accelerate dependency · 55f67b0d
      Jeremy Reizenstein authored
      Summary: Accelerate is an additional implicitron dependency, so document it.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37786933
      
      fbshipit-source-id: 11024fe604107881f8ca29e17cb5cbfe492fc7f9
      55f67b0d
    • Roman Shapovalov's avatar
      Fix: making visualisation work again · 4261e59f
      Roman Shapovalov authored
      Summary:
      1. Respecting `visdom_show_preds` parameter when it is False.
      2. Clipping the images pre-visualisation, which is important for methods like SRN that are not arare of pixel value range.
      
      Reviewed By: bottler
      
      Differential Revision: D37786439
      
      fbshipit-source-id: 8dbb5104290bcc5c2829716b663cae17edc911bd
      4261e59f
  9. 12 Jul, 2022 5 commits
    • David Novotny's avatar
      Fix for box_crop=True · af55ba01
      David Novotny authored
      Summary: one more bugfix in JsonIndexDataset
      
      Reviewed By: bottler
      
      Differential Revision: D37789138
      
      fbshipit-source-id: 2fb2bda7448674091ff6b279175f0bbd16ff7a62
      af55ba01
    • Jeremy Reizenstein's avatar
      fix trainer test · d3b7f5f4
      Jeremy Reizenstein authored
      Summary: After recent accelerate change D37543870 (https://github.com/facebookresearch/pytorch3d/commit/aa8b03f31dc2a178f8d7da457df28f19b5917009), update interactive trainer test.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37785932
      
      fbshipit-source-id: 9211374323b6cfd80f6c5ff3a4fc1c0ca04b54ba
      d3b7f5f4
    • Tristan Rice's avatar
      shader: fix HardDepthShader sizes + tests (#1252) · 4ecc9ea8
      Tristan Rice authored
      Summary:
      This fixes a indexing bug in HardDepthShader and adds proper unit tests for both of the DepthShaders. This bug was introduced when updating the shader sizes and discovered when I switched my local model onto pytorch3d trunk instead of the patched copy.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1252
      
      Test Plan:
      Unit test + custom model code
      
      ```
      pytest tests/test_shader.py
      ```
      
      ![image](https://user-images.githubusercontent.com/909104/178397456-f478d0e0-9f6c-467a-a85b-adb4c47adfee.png)
      
      Reviewed By: bottler
      
      Differential Revision: D37775767
      
      Pulled By: d4l3k
      
      fbshipit-source-id: 5f001903985976d7067d1fa0a3102d602790e3e8
      4ecc9ea8
    • Tristan Rice's avatar
      renderer: add support for rendering high dimensional textures for... · 8d10ba52
      Tristan Rice authored
      renderer: add support for rendering high dimensional textures for classification/segmentation use cases (#1248)
      
      Summary:
      For 3D segmentation problems it's really useful to be able to train the models from multiple viewpoints using Pytorch3D as the renderer. Currently due to hardcoded assumptions in a few spots the mesh renderer only supports rendering RGB (3 dimensional) data. You can encode the classification information as 3 channel data but if you have more than 3 classes you're out of luck.
      
      This relaxes the assumptions to make rendering semantic classes work with `HardFlatShader` and `AmbientLights` with no diffusion/specular. The other shaders/lights don't make any sense for classification since they mutate the texture values in some way.
      
      This only requires changes in `Materials` and `AmbientLights`. The bulk of the code is the unit test.
      
      Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1248
      
      Test Plan: Added unit test that renders a 5 dimensional texture and compare dimensions 2-5 to a stored picture.
      
      Reviewed By: bottler
      
      Differential Revision: D37764610
      
      Pulled By: d4l3k
      
      fbshipit-source-id: 031895724d9318a6f6bab5b31055bb3f438176a5
      8d10ba52
    • Nikhila Ravi's avatar
      Updates to support Accelerate and multigpu training (#37) · aa8b03f3
      Nikhila Ravi authored
      Summary:
      ## Changes:
      - Added Accelerate Library and refactored experiment.py to use it
      - Needed to move `init_optimizer` and `ExperimentConfig` to a separate file to be compatible with submitit/hydra
      - Needed to make some modifications to data loaders etc to work well with the accelerate ddp wrappers
      - Loading/saving checkpoints incorporates an unwrapping step so remove the ddp wrapped model
      
      ## Tests
      
      Tested with both `torchrun` and `submitit/hydra` on two gpus locally. Here are the commands:
      
      **Torchrun**
      
      Modules loaded:
      ```sh
      1) anaconda3/2021.05   2) cuda/11.3   3) NCCL/2.9.8-3-cuda.11.3   4) gcc/5.2.0. (but unload gcc when using submit)
      ```
      
      ```sh
      torchrun --nnodes=1 --nproc_per_node=2 experiment.py --config-path ./configs --config-name repro_singleseq_nerf_test
      ```
      
      **Submitit/Hydra Local test**
      
      ```sh
      ~/pytorch3d/projects/implicitron_trainer$ HYDRA_FULL_ERROR=1 python3.9 experiment.py --config-name repro_singleseq_nerf_test --multirun --config-path ./configs  hydra/launcher=submitit_local hydra.launcher.gpus_per_node=2 hydra.launcher.tasks_per_node=2 hydra.launcher.nodes=1
      ```
      
      **Submitit/Hydra distributed test**
      
      ```sh
      ~/implicitron/pytorch3d$ python3.9 experiment.py --config-name repro_singleseq_nerf_test --multirun --config-path ./configs  hydra/launcher=submitit_slurm hydra.launcher.gpus_per_node=8 hydra.launcher.tasks_per_node=8 hydra.launcher.nodes=1 hydra.launcher.partition=learnlab hydra.launcher.timeout_min=4320
      ```
      
      ## TODOS:
      - Fix distributed evaluation: currently this doesn't work as the input format to the evaluation function is not suitable for gathering across gpus (needs to be nested list/tuple/dicts of objects that satisfy `is_torch_tensor`) and currently `frame_data`  contains `Cameras` type.
      - Refactor the `accelerator` object to be accessible by all functions instead of needing to pass it around everywhere? Maybe have a `Trainer` class and add it as a method?
      - Update readme with installation instructions for accelerate and also commands for running jobs with torchrun and submitit/hydra
      
      X-link: https://github.com/fairinternal/pytorch3d/pull/37
      
      Reviewed By: davnov134, kjchalup
      
      Differential Revision: D37543870
      
      Pulled By: bottler
      
      fbshipit-source-id: be9eb4e91244d4fe3740d87dafec622ae1e0cf76
      aa8b03f3
  10. 11 Jul, 2022 1 commit
    • Jeremy Reizenstein's avatar
      fix test · 57a40b36
      Jeremy Reizenstein authored
      Summary: remove erroneous RandomDataLoaderMapProvider
      
      Reviewed By: davnov134
      
      Differential Revision: D37751116
      
      fbshipit-source-id: cf3b555dc1e6304425914d1522b4f70407b498bf
      57a40b36
  11. 10 Jul, 2022 3 commits
    • David Novotny's avatar
      Bugfix - wrong mask bounds passed to box clamping · 522e5f06
      David Novotny authored
      Summary: Fixes a bug
      
      Reviewed By: bottler
      
      Differential Revision: D37743350
      
      fbshipit-source-id: d68e680d6027ae2b9814b2241fb72d3b74df77c1
      522e5f06
    • David Novotny's avatar
      JsonIndexDatasetProviderV2 · e8390d35
      David Novotny authored
      Summary: A new version of json index dataset provider supporting CO3Dv2
      
      Reviewed By: shapovalov
      
      Differential Revision: D37690918
      
      fbshipit-source-id: bf2d5fc9d0f1220259e08661dafc69cdbe6b7f94
      e8390d35
    • David Novotny's avatar
      Changes for CO3Dv2 release [part1] · 4300030d
      David Novotny authored
      Summary:
      Implements several changes needed for the CO3Dv2 release:
      - FrameData contains crop_bbox_xywh which defines the outline of the image crop corresponding to the image-shaped tensors in FrameData
      - revised the definition of a bounding box inside JsonDatasetIndex: bbox_xyxy is [xmin, ymin, xmax, ymax], where xmax, ymax are not inclusive; bbox_xywh = [xmin, ymain, xmax-xmin, ymax-ymin]
      - is_filtered for detecting whether the entries of the dataset were somehow filtered
      - seq_frame_index_to_dataset_index allows to skip entries that are not present in the dataset
      
      Reviewed By: shapovalov
      
      Differential Revision: D37687547
      
      fbshipit-source-id: 7842756b0517878cc0964fc0935d3c0769454d78
      4300030d
  12. 08 Jul, 2022 1 commit
    • Jeremy Reizenstein's avatar
      cu116 docker image · 00acf0b0
      Jeremy Reizenstein authored
      Summary: cu116 builds need to happen in a specific image.
      
      Reviewed By: patricklabatut
      
      Differential Revision: D37680352
      
      fbshipit-source-id: 81bef0642ad832e83e4eba6321287759b3229303
      00acf0b0
  13. 06 Jul, 2022 5 commits
    • Jeremy Reizenstein's avatar
      Add pytorch 1.12, drop pytorch 1.7 · a94f3f4c
      Jeremy Reizenstein authored
      Summary: change deps
      
      Reviewed By: kjchalup
      
      Differential Revision: D37612290
      
      fbshipit-source-id: 51af55159605b0edd89ffa9e177238466fc2d993
      a94f3f4c
    • Jeremy Reizenstein's avatar
      extract camera_difficulty_bin_breaks · efb72132
      Jeremy Reizenstein authored
      Summary: As part of removing Task, move camera difficulty bin breaks from hard code to the top level.
      
      Reviewed By: davnov134
      
      Differential Revision: D37491040
      
      fbshipit-source-id: f2d6775ebc490f6f75020d13f37f6b588cc07a0b
      efb72132
    • Jeremy Reizenstein's avatar
      typing for trainer · 40fb189c
      Jeremy Reizenstein authored
      Summary: Enable pyre checking of the trainer code.
      
      Reviewed By: shapovalov
      
      Differential Revision: D36545438
      
      fbshipit-source-id: db1ea8d1ade2da79a2956964eb0c7ba302fa40d1
      40fb189c
    • Jeremy Reizenstein's avatar
      get_all_train_cameras · 4e87c2b7
      Jeremy Reizenstein authored
      Summary: As part of removing Task, make the dataset code generate the source cameras for itself. There's a small optimization available here, in that the JsonIndexDataset could avoid loading images.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37313423
      
      fbshipit-source-id: 3e5e0b2aabbf9cc51f10547a3523e98c72ad8755
      4e87c2b7
    • Jeremy Reizenstein's avatar
      more padding options in Dataloader · 771cf8a3
      Jeremy Reizenstein authored
      Summary: Add facilities for dataloading non-sequential scenes.
      
      Reviewed By: shapovalov
      
      Differential Revision: D37291277
      
      fbshipit-source-id: 0a33e3727b44c4f0cba3a2abe9b12f40d2a20447
      771cf8a3
  14. 04 Jul, 2022 1 commit
    • David Novotny's avatar
      Refactor autodecoders · 0dce8832
      David Novotny authored
      Summary: Refactors autodecoders. Tests pass.
      
      Reviewed By: bottler
      
      Differential Revision: D37592429
      
      fbshipit-source-id: 8f5c9eac254e1fdf0704d5ec5f69eb42f6225113
      0dce8832
  15. 30 Jun, 2022 1 commit
    • Krzysztof Chalupka's avatar
      Refactor ViewMetrics · ae35824f
      Krzysztof Chalupka authored
      Summary:
      Make ViewMetrics easy to replace by putting them into an OmegaConf dataclass.
      
      Also, re-word a few variable names and fix minor TODOs.
      
      Reviewed By: bottler
      
      Differential Revision: D37327157
      
      fbshipit-source-id: 78d8e39bbb3548b952f10abbe05688409fb987cc
      ae35824f
  16. 29 Jun, 2022 1 commit
  17. 28 Jun, 2022 1 commit
    • Roman Shapovalov's avatar
      Fix: typo in dict processing · 7ce8ed55
      Roman Shapovalov authored
      Summary:
      David had his code crashed when using frame_annot["meta"] dictionary. Turns out we had a typo.
      The tests were passing by chance since all the keys were single-character strings.
      
      Reviewed By: bottler
      
      Differential Revision: D37503987
      
      fbshipit-source-id: c12b0df21116cfbbc4675a0182b9b9e6d62bad2e
      7ce8ed55
  18. 26 Jun, 2022 1 commit
  19. 24 Jun, 2022 3 commits