- 14 Jun, 2023 2 commits
-
-
Roman Shapovalov authored
Summary: Making it easier for the clients to use these datasets. Reviewed By: bottler Differential Revision: D46727179 fbshipit-source-id: cf619aee4c4c0222a74b30ea590cf37f08f014cc
-
Roman Shapovalov authored
Summary: Adds stratified sampling of sequences within categories applied after category / sequence filters but before the num sequence limit. It respects the insertion order into the sequence_annots table, i.e. takes top N sequences within each category. Reviewed By: bottler Differential Revision: D46724002 fbshipit-source-id: 597cb2a795c3f3bc07f838fc51b4e95a4f981ad3
-
- 13 Jun, 2023 1 commit
-
-
Norman Mueller authored
Summary: Single directional chamfer distance and option to use non-absolute cosine similarity Reviewed By: bottler Differential Revision: D46593980 fbshipit-source-id: b2e591706a0cdde1c2d361614cecebb84a581433
-
- 26 May, 2023 1 commit
-
-
Emilien Garreau authored
Summary: Fine implicit function was called before the coarse implicit function. Reviewed By: shapovalov Differential Revision: D46224224 fbshipit-source-id: 6b1cc00cc823d3ea7a5b42774c9ec3b73a69edb5
-
- 22 May, 2023 1 commit
-
-
Roman Shapovalov authored
Summary: 1. We may need to store arrays of unknown shape in the database. It implements and tests serialisation. 2. Previously, when an inexisting metadata file was passed to SqlIndexDataset, it would try to open it and create an empty file, then crash. We now open the file in a read-only mode, so the error message is more intuitive. Note that the implementation is SQLite specific. Reviewed By: bottler Differential Revision: D46047857 fbshipit-source-id: 3064ae4f8122b4fc24ad3d6ab696572ebe8d0c26
-
- 19 May, 2023 1 commit
-
-
Jeremy Reizenstein authored
Summary: I don't know why RE tests sometimes fail here, but maybe it's a race condition. If that's right, this should fix it. Reviewed By: shapovalov Differential Revision: D46020054 fbshipit-source-id: 20b746b09ad9bd77c2601ac681047ccc6cc27ed9
-
- 17 May, 2023 1 commit
-
-
Roman Shapovalov authored
Summary: This is mostly a refactoring diff to reduce friction in extending the frame data. Slight functional changes: dataset getitem now accepts (seq_name, frame_number_as_singleton_tensor) as a non-advertised feature. Otherwise this code crashes: ``` item = dataset[0] dataset[item.sequence_name, item.frame_number] ``` Reviewed By: bottler Differential Revision: D45780175 fbshipit-source-id: 75b8e8d3dabed954a804310abdbd8ab44a8dea29
-
- 07 May, 2023 1 commit
-
-
dhb authored
Summary: Although we can load per-vertex normals in `load_obj`, saving per-vertex normals is not supported in `save_obj`. This patch fixes this by allowing passing per-vertex normal data in `save_obj`: ``` python def save_obj( f: PathOrStr, verts, faces, decimal_places: Optional[int] = None, path_manager: Optional[PathManager] = None, *, verts_normals: Optional[torch.Tensor] = None, faces_normals: Optional[torch.Tensor] = None, verts_uvs: Optional[torch.Tensor] = None, faces_uvs: Optional[torch.Tensor] = None, texture_map: Optional[torch.Tensor] = None, ) -> None: """ Save a mesh to an .obj file. Args: f: File (str or path) to which the mesh should be written. verts: FloatTensor of shape (V, 3) giving vertex coordinates. faces: LongTensor of shape (F, 3) giving faces. decimal_places: Number of decimal places for saving. path_manager: Optional PathManager for interpreting f if it is a str. verts_normals: FloatTensor of shape (V, 3) giving the normal per vertex. faces_normals: LongTensor of shape (F, 3) giving the index into verts_normals for each vertex in the face. verts_uvs: FloatTensor of shape (V, 2) giving the uv coordinate per vertex. faces_uvs: LongTensor of shape (F, 3) giving the index into verts_uvs for each vertex in the face. texture_map: FloatTensor of shape (H, W, 3) representing the texture map for the mesh which will be saved as an image. The values are expected to be in the range [0, 1], """ ``` Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/1511 Reviewed By: shapovalov Differential Revision: D45086045 Pulled By: bottler fbshipit-source-id: 666efb0d2c302df6cf9f2f6601d83a07856bf32f
-
- 05 May, 2023 1 commit
-
-
Roman Shapovalov authored
Summary: Import generic path; avoiding incorrect path patching. Reviewed By: bottler Differential Revision: D45573976 fbshipit-source-id: e6ff4d759deb936e3b636defa1e0851fb0127b46
-
- 04 May, 2023 1 commit
-
-
Roman Shapovalov authored
Summary: I forgot to include these tests to D45086611 when transferring code from pixar_replay repo. They test the new ORM types used in SQL dataset and are SQL Alchemy 2.0 specific. An important test for extending types is a proof of concept for generality of SQL Dataset. The idea is to extend FrameAnnotation and FrameData in parallel. Reviewed By: bottler Differential Revision: D45529284 fbshipit-source-id: 2a634e518f580c312602107c85fc320db43abcf5
-
- 01 May, 2023 1 commit
-
-
Ilia Vitsnudel authored
Summary: Added a suit of functions and code additions to experimental_gltf_io.py file to enable saving Meshes in TexturesVertex format into .glb file. Also added a test to tets_io_gltf.py to check the functionality with the test described in Test Plane. Reviewed By: bottler Differential Revision: D44969144 fbshipit-source-id: 9ce815a1584b510442fa36cc4dbc8d41cc3786d5
-
- 25 Apr, 2023 1 commit
-
-
Roman Shapovalov authored
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
-
- 20 Apr, 2023 1 commit
-
-
Roman Shapovalov authored
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
-
- 18 Apr, 2023 1 commit
-
-
Roman Shapovalov authored
Summary: The code does not crash if depth map/mask are not given. Reviewed By: bottler Differential Revision: D45082985 fbshipit-source-id: 3610d8beb4ac897fbbe52f56a6dd012a6365b89b
-
- 04 Apr, 2023 1 commit
-
-
Ildar Salakhiev authored
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
-
- 31 Mar, 2023 1 commit
-
-
Dejan Kovachev authored
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
-
- 24 Mar, 2023 1 commit
-
-
Emilien Garreau authored
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
-
- 09 Mar, 2023 1 commit
-
-
Jeremy Reizenstein authored
Summary: New function Reviewed By: davidsonic Differential Revision: D42776590 fbshipit-source-id: 2a6e73480bcf2d1749f86bcb22d1942e3e8d3167
-
- 20 Feb, 2023 1 commit
-
-
generatedunixname89002005287564 authored
Reviewed By: bottler Differential Revision: D43432438 fbshipit-source-id: 58159b2febb67febb533511eb2d1f47d40dad032
-
- 29 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
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
-
- 27 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
Reviewed By: shapovalov Differential Revision: D42780711 fbshipit-source-id: 075fcae5097147b782f7ffc935f5430b824f58fd
-
- 26 Jan, 2023 1 commit
-
-
Roman Shapovalov authored
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
-
- 25 Jan, 2023 1 commit
-
-
David Novotny authored
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
-
- 24 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
Summary: docstring and shape fix Reviewed By: shapovalov Differential Revision: D42609661 fbshipit-source-id: fd50234872ad61b5452821eeb89d51344f70c957
-
- 17 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
Reviewed By: shapovalov Differential Revision: D42545069 fbshipit-source-id: e25fb4049dcebd715df43bab3ce813ecb5f85abe
-
- 16 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
Summary: Use IndexError so that a camera object is an iterable Reviewed By: shapovalov Differential Revision: D42312021 fbshipit-source-id: 67c417d5f1398e8b30a6944468eda057b4ceb444
-
- 12 Jan, 2023 1 commit
-
-
Jeremy Reizenstein authored
Summary: lint fixes Reviewed By: davidsonic Differential Revision: D42451530 fbshipit-source-id: 120bdd58fc074a713895df15df4e9efa9ea0a420
-
- 13 Dec, 2022 1 commit
-
-
Jeremy Reizenstein authored
Summary: Make GLB files report their own length correctly. They were off by 28. Reviewed By: davidsonic Differential Revision: D41838340 fbshipit-source-id: 9cd66e8337c142298d5ae1d7c27e51fd812d5c7b
-
- 05 Dec, 2022 1 commit
-
-
Jiali Duan authored
Summary: Write the amalgamated mesh from the Mesh module to glb. In this version, the json header and the binary data specified by the buffer are merged into glb. The image texture attributes are added. Reviewed By: bottler Differential Revision: D41489778 fbshipit-source-id: 3af0e9a8f9e9098e73737a254177802e0fb6bd3c
-
- 24 Nov, 2022 1 commit
-
-
Jeremy Reizenstein authored
Summary: Optional[some_configurable] won't autogenerate the enabled flag Reviewed By: shapovalov Differential Revision: D41522104 fbshipit-source-id: 555ff6b343faf6f18aad2f92fbb7c341f5e991c6
-
- 16 Nov, 2022 1 commit
-
-
Jiali Duan authored
Summary: Torch CUDA extension for Marching Cubes - MC involving 3 steps: - 1st forward pass to collect vertices and occupied state for each voxel - Compute compactVoxelArray to skip non-empty voxels - 2nd pass to genereate interpolated vertex positions and faces by marching through the grid - In contrast to existing MC: - Bind each interpolated vertex with a global edge_id to address floating-point precision - Added deduplication process to remove redundant vertices and faces Benchmarks (ms): | N / V(^3) | python | C++ | CUDA | Speedup | | 2 / 20 | 12176873 | 24338 | 4363 | 2790x/5x| | 1 / 100 | - | 3070511 | 27126 | 113x | | 2 / 100 | - | 5968934 | 53129 | 112x | | 1 / 256 | - | 61278092 | 430900 | 142x | | 2 / 256 | - |125687930 | 856941 | 146x | Reviewed By: kjchalup Differential Revision: D39644248 fbshipit-source-id: d679c0c79d67b98b235d12296f383d760a00042a
-
- 07 Nov, 2022 1 commit
-
-
Roman Shapovalov authored
Summary: Rasterize MC was not adapted to heterogeneous bundles. There are some caveats though: 1) on CO3D, we get up to 18 points per image, which is too few for a reasonable visualisation (see below); 2) rasterising for a batch of 100 is slow. I also moved the unpacking code close to the bundle to be able to reuse it. {F789678778} Reviewed By: bottler, davnov134 Differential Revision: D41008600 fbshipit-source-id: 9f10f1f9f9a174cf8c534b9b9859587d69832b71
-
- 03 Nov, 2022 1 commit
-
-
Jeremy Reizenstein authored
Summary: Fix indexing of directions after filtering of points by scaffold. Reviewed By: shapovalov Differential Revision: D40853482 fbshipit-source-id: 9cfdb981e97cb82edcd27632c5848537ed2c6837
-
- 02 Nov, 2022 1 commit
-
-
David Novotny authored
Summary: Allows loading of multiple categories. Multiple categories are provided in a comma-separated list of category names. Reviewed By: bottler, shapovalov Differential Revision: D40803297 fbshipit-source-id: 863938be3aa6ffefe9e563aede4a2e9e66aeeaa8
-
- 23 Oct, 2022 1 commit
-
-
Jeremy Reizenstein authored
Reviewed By: shapovalov Differential Revision: D40622304 fbshipit-source-id: 277515a55c46d9b8300058b439526539a7fe00a0
-
- 20 Oct, 2022 1 commit
-
-
Jiali Duan authored
Summary: According to the profiler trace D40326775, _check_valid_rotation_matrix is slow because of aten::all_close operation and _safe_det_3x3 bottlenecks. Disable the check by default unless environment variable PYTORCH3D_CHECK_ROTATION_MATRICES is set to 1. Comparison after applying the change: ``` Profiling/Function get_world_to_view (ms) Transform_points(ms) specular(ms) before 12.751 18.577 21.384 after 4.432 (34.7%) 9.248 (49.8%) 11.507 (53.8%) ``` Profiling trace: https://pxl.cl/2h687 More details in https://docs.google.com/document/d/1kfhEQfpeQToikr5OH9ZssM39CskxWoJ2p8DO5-t6eWk/edit?usp=sharing Reviewed By: kjchalup Differential Revision: D40442503 fbshipit-source-id: 954b58de47de235c9d93af441643c22868b547d0
-
- 18 Oct, 2022 1 commit
-
-
Jeremy Reizenstein authored
Summary: Adds the ability to have different learning rates for different parts of the model. The trainable parts of the implicitron have a new member param_groups: dictionary where keys are names of individual parameters, or module’s members and values are the parameter group where the parameter/member will be sorted to. "self" key is used to denote the parameter group at the module level. Possible keys, including the "self" key do not have to be defined. By default all parameters are put into "default" parameter group and have the learning rate defined in the optimizer, it can be overriden at the: - module level with “self” key, all the parameters and child module s parameters will be put to that parameter group - member level, which is the same as if the `param_groups` in that member has key=“self” and value equal to that parameter group. This is useful if members do not have `param_groups`, for example torch.nn.Linear. - parameter level, parameter with the same name as the key will be put to that parameter group. And in the optimizer factory, parameters and their learning rates are recursively gathered. Reviewed By: shapovalov Differential Revision: D40145802 fbshipit-source-id: 631c02b8d79ee1c0eb4c31e6e42dbd3d2882078a
-
- 13 Oct, 2022 2 commits
-
-
Jeremy Reizenstein authored
Summary: Small config system fix. Allows get_default_args to work on an instance which has been created with a dict (instead of a DictConfig) as an args field. E.g. ``` gm = GenericModel( raysampler_AdaptiveRaySampler_args={"scene_extent": 4.0} ) OmegaConf.structured(gm1) ``` Reviewed By: shapovalov Differential Revision: D40341047 fbshipit-source-id: 587d0e8262e271df442a80858949a48e5d6db3df -
Darijan Gudelj authored
Summary: Tensorf does relu or softmax after the density grid. This diff adds the ability to replicate that. Reviewed By: bottler Differential Revision: D40023228 fbshipit-source-id: 9f19868cd68460af98ab6e61c7f708158c26dc08
-
- 12 Oct, 2022 1 commit
-
-
Darijan Gudelj authored
Summary: TensoRF at step 2000 does volume croping and resizing. At those steps it calculates part of the voxel grid which has density big enough to have objects and resizes the grid to fit that object. Change is done on 3 levels: - implicit function subscribes to epochs and at specific epochs finds the bounding box of the object and calls resizing of the color and density voxel grids to fit it - VoxelGrid module calls cropping of the underlaying voxel grid and resizing to fit previous size it also adjusts its extends and translation to match wanted size - Each voxel grid has its own way of cropping the underlaying data Reviewed By: kjchalup Differential Revision: D39854548 fbshipit-source-id: 5435b6e599aef1eaab980f5421d3369ee4829c50
-