Version 0.7.1
This release brings a lot of fixes and improvements to implicitron.
PyTorch 1.8 is no longer supported. We support from PyTorch 1.9.0 to PyTorch 1.12.1.
New features
- Marching cubes fixes to existing python implementation, and fast C++ implementation for when data is on CPU 0d8608b 850efdf
- New fisheye camera object. This involves a change to the API to allow such “nonlinear” cameras, i.e. those whose projection is not a projective transformation. In particular, get_projection_transform can now fail. b0515e1 d19e624 84fa966 8a96770
Minor new features
- get_se3_log function on Transform3D 9a0f9ae
- get_rotation_to_best_fit_xy in circle_fitting 74bbd6f
- Saving a mesh via IO to OBJ now includes TexturesUV texture 6ae6ff9
- Checkerboard mesh utility ce3fce4
- Camera batches can now be indexed by bool tensors b7c826b
- Implicitron: You can just use a Configurable class straight away, you no longer need to call expand_args_fields or get_default_args first. d6a197b
- Implicitron: In the newest pytorch versions, you can now use the faster
foreach
versions of optimizers 209c160 - Implicitron: full_image variants of psnr, l1 and lpips losses (ignoring mask). The masked image ones are renamed to make this clear. 7b98570 d35781f
- Implicitron: Enable additional test-time source views for json dataset provider v2 2ff2c7c
- Implicitron: Option for filtering outlier input cameras in trajectory estimation d281f8e
- Implicitron: yaml configs to train selected methods on CO3Dv2 1163eaa
- Implicitron raymarcher replicate_last_interval option. 611aba9
- Mixed Frame Raysampling. You can now sample rays iid from a group of cameras, instead of a fixed number from each camera. This needed a new RayBundleHeterogeneous alternative to RayBundle. Implicitron now has its own raybundle object. c311a4c ad8907d 6ae863f
Major bug fix
Bug fixes
- Cloned camera objects can now be saved with pickle and torch.save efea540
- Fix implicitron iteration time measurement dd58ded
- IOU3d fix for numerical stability 1bfe6bf
- Update SMPL url 5e7707b
- Implicitron doc fixes fdaaa29 4711d12
- Implicitron reduction feature aggregation broadcasting fix 73ba66e
- Implicitron Fix for loading Co3Dv2’s point clouds 95a2acf
Performance improvements
- Omit _check_valid_rotation_matrix by default 46cb5aa
- _compute_vertex_normals does less work a65928d
- Pulsar logging removed for performance gain 7623457
- VolumeSampler memory saving 4c8338b
- Implicitron: Avoid extra CPU->GPU communication in raysampling 305cf32
- Mesh rasterization on CPU now uses multiple threads 6471893
Minor
- In implicitron, there are components in progress for voxel-grid-based implicit functions: decoders, voxel grids, param groups edee25a e7c609f fe5bdb2 24f5f4a
- Implicitron config system fixes 4d9215b da7fe28 8339cf2
- Implicitron error improvements a607dd0
- Implicitron JsonIndexDataset fix for numpy.split warning 0b5def5
- Doc fix for IOU a2659e1 6080897
- Doc fix for Implicitron base renderer 4711d12
- pytorch3d.ops doc fixes 6653f44
- Lengths validation in chamfer and farthest_points cb7bd33
- Implicitron visualize_reconstruction and render_flyaround improvements and fixes 6e25fe8 3b3306f f6d43ea c79c954
- Implicitron compatibility with hydra 1.2 90b758f
- Implicitron SimpleDataLoaderMapProvider sample batches without replacement 73ea418
- Implicitron: visdom is now optional ff933ab
Internal
- packed_to_padded now accepts all sizes f34da3d
- test_opengl_utils unfriendly test fixed 9a1213e
- Implicitron: raybundle input to ImplicitFunctions has been made more consistent 72c3a0e
- location logic factored out of Volumes into a new VolumeLocator class so it can be reused in other objects. f825f7e
- Sample_farthest_points uses CUB instead of a handwritten block reduction 8ea4da2
- Implicitron: MLP and Transformer have moved as they are no-longer only used by nerf. 898ba5c
- Cameras benchmarking 03562d8
- Removed wrappers for eigh, solve, lstsq, and qr because we now rely on PyTorch 1.9 or greater d4a1051