Commit Graph
2066 Commits
Author SHA1 Message Date
Afloat ef8afd671c Type ODM camera intrinsics to allow fractional values 2026-11-08 02:26:09 +08:00
Afloat fb39bf3fbe Apply Ruff formatting to the ODM intrinsics test 2026-11-08 02:23:10 +08:00
Afloat 91a1ddd420 Preserve OpenSfM intrinsics when importing ODM cameras 2026-11-07 22:34:07 +08:00
couperle 50e0e3c70c Add image tiling option to ColmapDataParser to use less memory (#3685)
Add tiling option to ColmapDataParser
2025-07-28 19:28:48 -07:00
Qizhi Chen 04a6cb6268 Add documentation for LiveScene (#3577)
* Add support for LiveScene as an external method

* update link
2025-07-22 16:12:37 -07:00
Frédéric DevernayandBrent Yi 83fe2f6cd4 fix core tests (#3687)
* fix core tests

* Try alternative fix for pyright errors

* Run ruff, bump core code checks to 3.11

* Run correct ruff version

* Use the previous pyright version 👀

* cv2 ignore, pin dev dependency to newer pytorch version

* ruff

* Remove pyright error suppressions

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-07-15 16:35:57 -07:00
Emmanuel Ferdman 2adcc380c6 Fix Viser reference (#3654)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-21 14:22:20 -07:00
Daniel Crispell 5003d0e271 sample pixels from all data in variable-resolution batches (#2772)
* sample pixels from all data in variable-resolution batches

* sort import block

* sort imports

* reorder imports

* clean up warnings

* simplify index extraction
2025-04-23 20:14:28 -07:00
Anthony Zhang 2091a0d927 Removing unnecessary print statement (#3639)
removing unnecessary print
2025-04-21 17:36:39 -07:00
Anthony Zhang 94357f82c1 Dataloading Followup (#3604)
* fixing ns-eval when datamanager is set to disk for splats

* fixing prefetch_factor type issues if user decides to use 0 workers

* removing accidental file

* fixing depth nerfacto config for issue 3592

* ruff linting the imports

* fixing workers creating GPU tensors serialization error

* finished next_eval

* adding flowcharts!

* fixing ruff

* added flowcharts into datamanagers.md

* simplying code and adding GPU serialization fix for both datamanagers

* fixing nits with consistent styling

* last optional nit

* fixing num workers
2025-04-20 11:46:18 -07:00
HeaInandBrent Yi 54b127f870 Fixing bounding box issue when exporting poisson mesh (#3591)
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-04-04 14:49:43 -07:00
klimermanaandBrent Yi 047100d465 Allow up to v5 of protobuf (#3580)
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-04-04 14:49:00 -07:00
Anthony Zhang 352cae6b84 Updating github actions cache version (#3624)
updating github actions versions
2025-04-04 14:44:43 -07:00
Dávid Komorowicz 73fe54dda0 Fix seams/gaps when exporting mesh using marching cubes Fixes #2721 (#3598) 2025-02-24 07:17:09 -08:00
Anthony Zhang f604fd960e Fixing Assertion issues when exporting NeRFs to poisson meshes and pointclouds (#3587)
fixing assertion issues for a successful poissonMesh and pointcloud export
2025-02-09 23:05:31 -08:00
4a3e3e6403 Dataloading Revamp (#3216)
* initial debugging and testing works

* pwais changes with RayBatchStream to alleviate training

* few bugs to iron out with multiprocessing, specifically pickled collate_fn

* working version of RayBatchStream

* additional docstrings

* cleanup

* much more documentation

* successfully trained AEA-script2_seq2 closed_loop without OOM

* porting over aria dataset-size feature

* added logic to handle eviction of a worker's cached_collated_batch

* antonio's implementation of stream batches

* training on a dataset with 4000 images works!

* some configuration speedups, loops aren't actually needed!

* quick fix adjustment to aria

* removed unnecessary looping

* much faster training when adding i variable to collate every 5 ray bundles

* cleanup unnecssary variables in Dataloader

* further cleanup

* adding caching of compressed images to RAM to reduce disk bottleneck

* added caching to RAM for masks

* found fast way to collate - many tricks applied

* quick update to aria to test on different datasets

* cleaned up the accelerated pil_to_numpy function

* cleaning up PR

* this commit was used to generate the time metrics and profiling metrics

* REAL commit used to run tests

* testing with nerfacto-big

* generated RayBundle collate and converting images from uint8s to float32 on GPU tests

* updating nerfacto to support uint8 easily, will need to figure out a way to contain this within the datamanager API

* datamanager updates, both splat and nerf

* must use writeable arrays because torch requires them

* cleaned up base_dataset, added pickle to utils, more code in full_image, and cleaner desc for base_datamanager

* lots of process on a parallel FullImageDatamanger

* can train big splats with pre-assertion hack or ROI hack and 0 workers

* fixed all undistortion issues with ParallelImageDatamanager

* adding some downsampling and parallel tests with splatfacto!

* deleted commented code in dataloaders.py and added bugfix to shuffling

* testing splatfacto-big

* cleaned up base_pipeline.py

* cleaned up base_pipeline.py ACTUALLY THIS TIME, forgot to save last time

* cleaned up a lot of code

* process_project_aria back to main branch and some cleanup in full_image_datamanager

* clarifying docstrings

* further PR cleanup

* updating models

* further cleanup

* removed caching of images into bytestrings

* adding caching of compressed images to RAM, forgot that hardware matters

* removing oom methods, adding the ability to add a flag to dataloading

* removed CacheDataloader, moved RayBatchStream to dataloaders.py, new vanilla_datamanager rewritten

* fixing base_piplines, deleting a weird datamanager_configs file that was accidently created

* cleaning up next_train

* replaced parallel datamanager with new datamanager

* reverted the original base_datamanager.py, new datamanager replaced parallel_datamanager.py

* modified VanillaConfig, but VanillaDataManager is the same as before

* cleaning up, 2 datamanagers now - original and new parallel one

* able to train with new nerfstudio dataloader now

* side by side datamanagers, moved tons of logic into dataloaders.py and created new files for our parallel datamangers

* added custom ray processing API to support implementations like LERF, cleaned up FullImageDatamanager to original because of new ParallelImageDatamanger

* adding functionality for ns-eval by adding FixedIndicesEvalDataloader to the setup_eval

* adding both ray API and image-view API to datamanagers for custom parallelization

* updating splatfacto config for 4k tests

* updating docstrings to be more descriptive

* new datamanager API breaks when setup_eval() has multiple workers, not sure why but single worker will have to do

* adding custom_view_processor to ImageBatchStream

* reverting full_images_datamanager to main branch

* removing nn.Module inheritance from Datamanager class

* don't need to move datamanger to device anymore since Datamanager is not a subclass of nn.Module

* finished integration test with nerfacto

* simplified config variables, integrated the parallelism/disk-data-loading all into one datamanager

* updated the splatfacto config to be simpler with the dataloading and now uses FullImageDatamanager (which has been changed)

* style checks and some cleanup

* new splatfacto test, cleaning up nerfacto integration test

* removing redundant parallel_full_images_datamaanger, as the OG full_image_datamanager now has full parallelized support

* ruff linting and pyright fixing

* further pyright fixing

* another pyright fixing

* fixing pyright error, camera optimization no longer part of datamanager

* fixing one pyright

* fixing dataloading error when camera is not undistorted with dataloader

* fixing comments and updating style

* undoing a style change i made

* undoing another style change i made by accident

* fixing slow runtime

* fixing a more general camera undistortion bug

* move images to device properly

* minor improvements

* add print statement about >500 images, cleanup method configs

* make method configs consistent across nerfacto models

* adding description comments

* updating description

* resolving some pyright issues with export.py, explained in PR desc

* fixing pyright issues in base_pipeline.py

* ran pyright on exporter and base_pipeline.py without issues

* adding a git ignore to a clearly checked pyright issue

* typo

* fixing most ns-dev-test cases

* cleanup, passing final ns-dev-test

* oops, accidentally pushed the deletion of a docstring, undoing that

* another cleanup

* some fixes to eval pipeline

* lint

* add asserts for spawn

* lint

* cleaning up import statements in parallel_datamanager.py

* adding new developer documentation if users would like to migrate their custom datamanagers to support new features

* removing unnecessary to_device no-op

* further updates to documentation

* lint

* more docs

* docs

* remove comment

* add docs, fix depth dataset with parallel datamanager, fix mask sampling bug

* remove profiling

* more profile removal

* custom_view_processor->custom_image_processor

* doc clarification

* datamanager doc nit

* whitespace

* nits

* remove stuff from __post_init__, tune num workers more, add random offset in raybatchstream

* removing unnecessary assertion, updating docstring because DataManager is no longer an nn.Module

* clarifying configuration with num_images_to_sample_from and num_times_to_repeat_images, cleaning up functions

* adding logic so that nerfacto users can load_from_disk and customize image batch sizes and repeat parameters

* ruff formatting! whoops forgot to format

* fixing logic, now if users set load_from_disk to true, datamanager will use 50 and 10. If users set it and specify their own values, we support that as well

* adding separate datamanager config so that target can be removed in method_configs

---------

Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-01-31 10:40:01 -08:00
beckyfeng08 189328ec79 Fixes in Maya plugin page (#3576)
* doc and plugin

* small fixes in plugin
2025-01-22 04:15:39 +00:00
1dc2ebd9dc Fix cli bug in high version of tyro (#3567)
* limited the tyro version up to 0.9.2

* bump tyro>=0.9.8

* Bump typeguard

* Runtime checking with jaxtyping hook instead of typeguard

* Fix test for Python >=3.11, caused by missing default_factory

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2025-01-21 03:32:35 -08:00
beckyfeng08 3057c68570 Maya plugin and documentation (#3575) 2025-01-20 00:11:35 -08:00
Brian XuandJonáš Kulhánek 62ab373f7e Add GLOMAP to Dockerfile (#3565)
add GLOMAP to dockerfile

Co-authored-by: Jonáš Kulhánek <jonas.kulhanek@live.com>
2025-01-17 10:42:33 -08:00
Justin Kerr 66cd6817f9 rerun formatting with ruff 0.9.1 (#3569)
rerun with ruff 0.9.1
2025-01-13 10:46:11 -08:00
Yudong JinandJ.Y. 5be513e968 Write camera path to output dir if saving to the data dir fails (#3476)
* Update render_panel.py

* Update render_panel.py

* Update render_panel.py

* Update render_panel.py

* isort fix

* Update render_panel.py

---------

Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2025-01-08 09:10:43 +00:00
Tim de Jager 7be0ed98c5 refactor: use depends-on instead of depends_on (#3561) 2025-01-06 08:57:50 -08:00
Roger Q. ecd40dfab8 Adding docs for feature-splatting as an external method (#3557)
Add support for feature splatting as an external method
2025-01-03 19:44:04 +00:00
c7bd953972 Finalize MCMC strategy and some tiny fix (#3548)
---------

Co-authored-by: KevinXu02 <xucr2002@gmail.com>
Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2025-01-03 19:41:13 +00:00
Jameson Crate 0ced5cecdd Add a point cloud option for Record3D (#3556)
* Add a point cloud option for Record3D

* Change parameter names and add voxel size parameter

* fix record3d point cloud docs formatting
2024-12-24 01:02:52 +00:00
clonefetchandAlexander Kristoffersen 14f1d4ed62 chore: remove redundant words in comment (#3544)
* chore: remove redundant words in comment

Signed-off-by: clonefetch <c0217@outlook.com>

* small typo change

---------

Signed-off-by: clonefetch <c0217@outlook.com>
Co-authored-by: Alexander Kristoffersen <alexanator28@icloud.com>
2024-12-22 19:52:11 +00:00
555d554008 Improve default launch device for train (#3523)
* feat: improve launch device

* add licence header

* crash instead of trying to set the available option

* set cuda as default

---------

Co-authored-by: Noé Pion <noe.pion@onfido.com>
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-12-05 18:29:13 +00:00
Alexander Kristoffersen a8888e7d9e Move util functions out of splatfacto (#3538)
* Move util functions out of splatfacto

Nothing else currently uses some of the SH utils, but it might make sense to get them out of splatfacto.

I also moved the k nearest neighbors to utils since it doesn't depend on the model class.

* fix assert

* fix sh test

* convert to using degrees, not levels
2024-12-05 13:25:55 -05:00
Qizhi Chen e8bf472692 add time interpolation support for ns-render interpolate (#3481)
add time interpolation support
2024-11-29 10:29:43 -05:00
Daniel Wang 4d73c4e61e Fix: number of iterations wasn't set correctly (num_iterations directly set to equal to max_num_iterations) (#3526)
Fix: number of iterations wasn't set correctly

The original code causes iteration to go over max_num_iterations, causing progress tracker be unable to estimate time needed to finish, and causes unwanted extra iterations
2024-11-28 11:50:37 -08:00
J.Y. 11ca6e379e Fix build error (#3533) 2024-11-26 14:10:12 -08:00
Kevin Chen 758ea1918e Fix: --crop-bottom for equirect data (#3525) 2024-11-20 00:37:31 -08:00
J.Y. 6b60855003 bump version to 1.1.5 (#3521) v1.1.5 2024-11-11 16:20:42 -05:00
Lei Lei 9e5bbd9819 fix: saving ckpt error when ckpt folder has some folder inside (#3516) 2024-11-08 17:44:39 -05:00
SebastiaanandJ.Y. cef95890f3 Restrict pymeshlab version on Windows (3461) (#3474)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-10-24 19:12:25 +00:00
Justin Kerr fc4fc5cb15 Properly reset train state after render lock in viewer (#3486)
* properly reset train state after render locK

* finally block
2024-10-18 11:37:58 -07:00
Justin Kerr d2f2ad9474 update gsplat version to >=1.3.0 (#3478)
* update gsplat version

* 1.4.0
2024-10-16 12:32:06 -07:00
Simon Bethke adc743c3a0 tag exported ply files (#3472)
* tag exported ply files

* Added the version

* fix import order

* Added information about the up-axis
2024-10-13 18:48:52 -07:00
Brent Yi 67be06009e Add option to change .ply output filename for Gaussian exports (#3467)
Add option to configure .ply output filename for Gaussian exports
2024-10-09 22:22:52 +00:00
Nicholas Pfaff 8e27e5f54d Add option for refining the TSDF using the mesh's AABB (#3459) 2024-10-06 21:23:16 -07:00
Brent Yi 1bc1e1aaf6 Add max_frames + max_output_size arguments for Aria data processing (#3466)
* Add max_frames + max_image_size arguments for Aria data processing

* Change max_output_size
2024-10-06 21:22:16 -07:00
Nicholas PfaffandJ.Y. 866a069777 Keep depth_image on CPU (#3449)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-10-01 19:39:26 +00:00
Nicholas Pfaff 334a1c8afe Make PixelSampler the depth-nerfacto default (#3454)
* Make PixelSampler the depth-nerfacto default

* Add note about PairPixelSampler and DepthLossType.SPARSENERF_RANKING
2024-10-01 16:59:31 +00:00
Nicholas Pfaff 56556d22fa Rejection sample mask for patch pixel sampler (#3457)
Use mask rejection sampling in PatchPixelSampler
2024-10-01 09:54:28 -07:00
Nicholas Pfaff 4c7297c75a Speed up PairPixelSampler (#3452) 2024-09-30 17:31:49 -07:00
Nicholas Pfaff 6da94443fd Change depth from float64 to float32 (#3453) 2024-09-28 16:51:05 -07:00
J.Y. 01d3f73e2c Fix #3417 (#3441) 2024-09-24 18:01:43 -07:00
Aayush GuptaandJ.Y. e6941aca47 Zipnerf point cloud and tsdf mesh export support (#3429)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-09-24 15:28:18 -04:00
Aayush Gupta 516fd7c9ac Fix splatfacto crash in eval when using viewer (#3430) 2024-09-17 12:31:42 -07:00