"vscode:/vscode.git/clone" did not exist on "b60cb726157e322c91b07e8d30f8ee1133176e82"
  1. 01 Nov, 2022 1 commit
    • David Novotny's avatar
      readthedocs fixes · f7ac7b60
      David Novotny authored
      Summary: Fixes readthedocs. Sphinx build looks good.
      
      Reviewed By: bottler
      
      Differential Revision: D40893196
      
      fbshipit-source-id: bf00384b921d4ef54e64745ed39172358c2f9bb3
      f7ac7b60
  2. 31 Oct, 2022 5 commits
  3. 27 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      attempt to fix doc build #1363 · 88620b68
      Jeremy Reizenstein authored
      Summary: installing from git: is failing
      
      Reviewed By: shapovalov
      
      Differential Revision: D40635668
      
      fbshipit-source-id: 604ba5425e14caeabe4e178bf7f851f2163419bd
      88620b68
  4. 26 Oct, 2022 1 commit
  5. 23 Oct, 2022 4 commits
    • Jeremy Reizenstein's avatar
      version 0.7.1 · 995b60e3
      Jeremy Reizenstein authored
      Summary: update version number
      
      Reviewed By: shapovalov
      
      Differential Revision: D40622583
      
      fbshipit-source-id: 87fa55e1b02fc114f65ee8a5c3d998ba50226ab1
      995b60e3
    • Jeremy Reizenstein's avatar
      yaml test fix · ca588633
      Jeremy Reizenstein authored
      Summary: Yaml bool case fix
      
      Reviewed By: shapovalov
      
      Differential Revision: D40623031
      
      fbshipit-source-id: 29b2fba171c2cbebfa03834e38b614d07275c997
      ca588633
    • Jeremy Reizenstein's avatar
      voxel_grid_implicit_function · 74754bbf
      Jeremy Reizenstein authored
      Reviewed By: shapovalov
      
      Differential Revision: D40622304
      
      fbshipit-source-id: 277515a55c46d9b8300058b439526539a7fe00a0
      74754bbf
    • Jeremy Reizenstein's avatar
      replicate_last_interval in raymarcher · 611aba9a
      Jeremy Reizenstein authored
      Summary: Add option to flat pad the last delta. Might to help when training on rgb only.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40587475
      
      fbshipit-source-id: c763fa38948600ea532c730538dc4ff29d2c3e0a
      611aba9a
  6. 22 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      make visdom optional · ff933ab8
      Jeremy Reizenstein authored
      Summary: Make Implicitron run without visdom installed.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40587974
      
      fbshipit-source-id: dc319596c7a4d10a4c54c556dabc89ad9d25c2fb
      ff933ab8
  7. 20 Oct, 2022 2 commits
  8. 19 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      test fix for param_groups · 9535c576
      Jeremy Reizenstein authored
      Summary: param_groups only expected on MLPDecoder, not ElementwiseDecoder
      
      Reviewed By: shapovalov
      
      Differential Revision: D40508539
      
      fbshipit-source-id: ea040ad6f7e26bd7d87e5de2eaadae2cf4b04faf
      9535c576
  9. 18 Oct, 2022 2 commits
    • Jeremy Reizenstein's avatar
      different learning rate for different parts · fe5bdb2f
      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
      fe5bdb2f
    • Jeremy Reizenstein's avatar
      MLP last layer config · a819ecb0
      Jeremy Reizenstein authored
      Summary:
      Added initialization configuration for the last layer of the MLP decoding function. You can now set:
      - last activation function (tensorf uses sigmoid)
      - last bias init (tensorf uses 0, because of sigmoid ofc)
      - option to use xavier initialization (we use relu so this should not be set)
      
      Reviewed By: davnov134
      
      Differential Revision: D40304981
      
      fbshipit-source-id: ec398eb2235164ae85cb7c09b9660e843490ea04
      a819ecb0
  10. 16 Oct, 2022 1 commit
  11. 13 Oct, 2022 5 commits
    • Jeremy Reizenstein's avatar
      suppress ffmpeg output · 3b3306f9
      Jeremy Reizenstein authored
      Summary: Restore the suppression of ffmpeg output.
      
      Reviewed By: shapovalov
      
      Differential Revision: D40296595
      
      fbshipit-source-id: 41b2c14b6f6245f77e0ef6cc94fa7b41fbb83e33
      3b3306f9
    • Jeremy Reizenstein's avatar
      avoid torch.range · f1308677
      Jeremy Reizenstein authored
      Summary: Avoid unintended use of torch.range.
      
      Reviewed By: kjchalup
      
      Differential Revision: D40341396
      
      fbshipit-source-id: 108295983afdec0ca9e43178fef9c65695150bc1
      f1308677
    • Jeremy Reizenstein's avatar
      fix to get_default_args(instance) · 4d9215b3
      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
      4d9215b3
    • Darijan Gudelj's avatar
      Elementwise decoder · 76cddd90
      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
      76cddd90
    • Jeremy Reizenstein's avatar
      better implicit function #channels errors · a607dd06
      Jeremy Reizenstein authored
      Summary: More helpful errors when the output channels aren't 1 for density and 3 for color
      
      Reviewed By: shapovalov
      
      Differential Revision: D40341088
      
      fbshipit-source-id: 6074bf7fefe11c8e60fee4db2760b776419bcfee
      a607dd06
  12. 12 Oct, 2022 2 commits
    • Krzysztof Chalupka's avatar
      Remove structured binding · 17bc043a
      Krzysztof Chalupka authored
      Summary: Couldn't build p3d on devfair because C++17 is unsupported. Two structured bindings sneaked in.
      
      Reviewed By: bottler
      
      Differential Revision: D40280967
      
      fbshipit-source-id: 9627f3f9f76247a6cefbeac067fdead67c6f4e14
      17bc043a
    • Darijan Gudelj's avatar
      volume cropping · f55d37f0
      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
      f55d37f0
  13. 11 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      avoid numpy warning in split · 0b5def52
      Jeremy Reizenstein authored
      Summary:
      avoid creating a numpy array of random things just to split it: this can now generate a warning e.g. if the list contains lists of varying lengths. There might also be a performance win here, and we could do more of the same if we care about that.
      
      (The vanilla way to avoid the new warning is to replace `np.split(a,` with `np.split(np.array(a, dtype=object), ` btw.)
      
      Reviewed By: shapovalov
      
      Differential Revision: D40209308
      
      fbshipit-source-id: daae33a23ceb444e8e7241f72ce1525593e2f239
      0b5def52
  14. 10 Oct, 2022 1 commit
    • Darijan Gudelj's avatar
      scaffold · 56d3465b
      Darijan Gudelj authored
      Summary: Forward method is sped up using the scaffold, a low resolution voxel grid which is used to filter out the points in empty space. These points will be predicted as having 0 density and (0, 0, 0) color. The points which were not evaluated as empty space will be passed through the steps outlined above.
      
      Reviewed By: kjchalup
      
      Differential Revision: D39579671
      
      fbshipit-source-id: 8eab8bb43ef77c2a73557efdb725e99a6c60d415
      56d3465b
  15. 09 Oct, 2022 1 commit
    • Jeremy Reizenstein's avatar
      Co3Dv2 point cloud fix · 95a2acf7
      Jeremy Reizenstein authored
      Summary: Avoid certain hardcoded paths in co3dv2 data
      
      Reviewed By: davnov134
      
      Differential Revision: D40209309
      
      fbshipit-source-id: 0e83a15baa47d5bd07d2d23c6048cb4522c1ccba
      95a2acf7
  16. 07 Oct, 2022 2 commits
  17. 06 Oct, 2022 4 commits
    • Kyle Hundman's avatar
      Improve memory efficiency in VolumeSampler · 4c8338b0
      Kyle Hundman authored
      Summary: Avoids use of `torch.cat` operation when rendering a volume by instead issuing multiple calls to `torch.nn.functional.grid_sample`. Density and color tensors can be large.
      
      Reviewed By: bottler
      
      Differential Revision: D40072399
      
      fbshipit-source-id: eb4cd34f6171d54972bbf2877065f973db497de0
      4c8338b0
    • Jiali Duan's avatar
      Marching Cubes C++ torch extension · 0d8608b9
      Jiali Duan authored
      Summary:
      Torch C++ extension for Marching Cubes
      
      - Add torch C++ extension for marching cubes. Observe a speed up of ~255x-324x speed up (over varying batch sizes and spatial resolutions)
      
      - Add C++ impl in existing unit-tests.
      
      (Note: this ignores all push blocking failures!)
      
      Reviewed By: kjchalup
      
      Differential Revision: D39590638
      
      fbshipit-source-id: e44d2852a24c2c398e5ea9db20f0dfaa1817e457
      0d8608b9
    • Jiali Duan's avatar
      Python marching cubes improvements · 850efdf7
      Jiali Duan authored
      Summary: Overhaul of marching_cubes_naive for better performance and to avoid relying on unstable hashing. In particular, instead of hashing vertex positions, we index each interpolated vertex with its corresponding edge in the 3d grid.
      
      Reviewed By: kjchalup
      
      Differential Revision: D39419642
      
      fbshipit-source-id: b5fede3525c545d1d374198928dfb216262f0ec0
      850efdf7
    • Gavin Peng's avatar
      Multithread CPU naive mesh rasterization · 6471893f
      Gavin Peng authored
      Summary:
      Threaded the for loop:
      ```
      for (int yi = 0; yi < H; ++yi) {...}
      ```
      in function `RasterizeMeshesNaiveCpu()`.
      Chunk size is approx equal.
      
      Reviewed By: bottler
      
      Differential Revision: D40063604
      
      fbshipit-source-id: 09150269405538119b0f1b029892179501421e68
      6471893f
  18. 03 Oct, 2022 3 commits
    • Darijan Gudelj's avatar
      load whole dataset in train loop · 37bd280d
      Darijan Gudelj authored
      Summary: Loads the whole dataset and moves it to the device and sends it to for sampling to enable full dataset heterogeneous raysampling.
      
      Reviewed By: bottler
      
      Differential Revision: D39263009
      
      fbshipit-source-id: c527537dfc5f50116849656c9e171e868f6845b1
      37bd280d
    • Darijan Gudelj's avatar
      Enable mixed frame raysampling · c311a4cb
      Darijan Gudelj authored
      Summary:
      Changed ray_sampler and metrics to be able to use mixed frame raysampling.
      
      Ray_sampler now has a new member which it passes to the pytorch3d raysampler.
      If the raybundle is heterogeneous metrics now samples images by padding xys first. This reduces memory consumption.
      
      Reviewed By: bottler, kjchalup
      
      Differential Revision: D39542221
      
      fbshipit-source-id: a6fec23838d3049ae5c2fd2e1f641c46c7c927e3
      c311a4cb
    • Darijan Gudelj's avatar
      ImplicitronRayBundle · ad8907d3
      Darijan Gudelj authored
      Summary: new implicitronRayBundle with added cameraIDs and camera counts. Added to enable a single raybundle inside Implicitron and easier extension in the future. Since RayBundle is named tuple and RayBundleHeterogeneous is dataclass and RayBundleHeterogeneous cannot inherit RayBundle. So if there was no ImplicitronRayBundle every function that uses RayBundle now would have to use Union[RayBundle, RaybundleHeterogeneous] which is confusing and unecessary complicated.
      
      Reviewed By: bottler, kjchalup
      
      Differential Revision: D39262999
      
      fbshipit-source-id: ece160e32f6c88c3977e408e966789bf8307af59
      ad8907d3
  19. 30 Sep, 2022 1 commit
    • Darijan Gudelj's avatar
      Heterogeneous raysampling -> RayBundleHeterogeneous · 6ae863f3
      Darijan Gudelj authored
      Summary:
      Added heterogeneous raysampling to pytorch3d raysampler, different cameras are sampled different number of times.
      
       It now returns RayBundle if heterogeneous raysampling is off and new RayBundleHeterogeneous (with added fields `camera_ids` and `camera_counts`).  Heterogeneous raysampling is on if `n_rays_total` is not None.
      
      Reviewed By: bottler
      
      Differential Revision: D39542222
      
      fbshipit-source-id: d3d88d822ec7696e856007c088dc36a1cfa8c625
      6ae863f3
  20. 29 Sep, 2022 1 commit
    • Roman Shapovalov's avatar
      Extending the API of Transform3d with SE(3) log · 9a0f9ae5
      Roman Shapovalov authored
      Summary:
      This is quite a thin wrapper – not sure we need it. The motivation is that `Transform3d` is not as matrix-centric now, it can be converted to SE(3) logarithm equally easily.
      
      It simplifies things like averaging cameras and getting axis-angle of camera rotation (previously, one would need to call `se3_log_map(cameras.get_world_to_camera_transform().get_matrix())`), now one fewer thing to call / discover.
      
      Reviewed By: bottler
      
      Differential Revision: D39928000
      
      fbshipit-source-id: 85248d5b8af136618f1d08791af5297ea5179d19
      9a0f9ae5