-
Notifications
You must be signed in to change notification settings - Fork 0
Add support for local datasets. #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
da03450
74353c1
b68f083
5191b19
f40508a
deca28a
285716e
1aa3be3
0655ee5
909f287
d6f692e
9ebbc60
f1fad5e
49f44fc
0f7e28d
140a2e4
2a2cbb7
842fe26
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,7 @@ | ||
| [submodule "diff-gaussian-rasterization-w-depth.git"] | ||
| path = diff-gaussian-rasterization-w-depth.git | ||
| url = git@github.com:JonathonLuiten/diff-gaussian-rasterization-w-depth.git | ||
| [submodule "spectacularAI-sdk"] | ||
| path = spectacularAI-sdk | ||
| url = https://github.com/SpectacularAI/sdk-examples | ||
| branch = nerfcapture-export |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,71 @@ | ||||||
| # 3D Mapping Workflow (Frodo) | ||||||
|
|
||||||
| # Recording devices | ||||||
|
|
||||||
| List of the recording devices used during the Frodo | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Santoi nit:
Suggested change
|
||||||
|
|
||||||
| * iPhone Pro | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Santoi nit: links to product briefs would be nice. |
||||||
| * Has lidar, which allows depth dataset recording. | ||||||
| * iPhone | ||||||
| * No lidar, no depth capture. | ||||||
| * Android device | ||||||
| * ARCore should suffice for the missing lidar, but there was no depth dataset saved after recording. | ||||||
| * So no depth capture. | ||||||
|
|
||||||
| # Recording tools | ||||||
|
|
||||||
| ## NeRF Capture | ||||||
|
|
||||||
| * Only available for IOS. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, link to app store would be nice. |
||||||
| * Provides 2 different recording modes: | ||||||
| * Online mode & offline mode. | ||||||
|
|
||||||
| ### Online mode | ||||||
|
|
||||||
| Requires the host to be connected into the recording device, so as to process the input while it is being captured. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Santoi nit:
Suggested change
|
||||||
|
|
||||||
| ### Offline mode | ||||||
|
|
||||||
| Saves a directory with the RBG captured frames and the depth frames \+ a transform.json file to feed into the processing tool. | ||||||
| Offline mode is currently bugged. There is an issue with the recording processing, which is not converting the depth buffer correctly into 16 bit numbers. See [this author comment](https://github.com/jc211/NeRFCapture/issues/10#issuecomment-1888164311) for more details. | ||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Santoi nit:
Suggested change
|
||||||
|
|
||||||
| ## Spectacular AI | ||||||
|
|
||||||
| * Available for both Android and IOS. | ||||||
| * IOS’ version provides significantly less configuration options than Android’s. | ||||||
| * But Android devices don’t generate depth dataset. | ||||||
|
|
||||||
| Recording should be taken by moving through a room while pointing the device towards the walls, and occasionally performing a panoramic view of the room to capture objects that are centered or away from the walls. The open3d capture from the ping pong table shows a good example of a trajectory the recorder should follow. | ||||||
|
|
||||||
| # Processing tools | ||||||
|
|
||||||
| ## SplaTAM | ||||||
|
|
||||||
| ### Spectacular AI dataset | ||||||
|
|
||||||
| In order to run SplaTAM with Spectacular AI recorded data, the first step was to process it to match the output format of NeRF Capture. | ||||||
|
|
||||||
| ### NeRF Capture dataset | ||||||
|
|
||||||
| To get the results, SplaTAM provides the [nerfcapture2dataset](https://github.com/ekumenlabs/SplaTAM/blob/main/scripts/nerfcapture2dataset.py) script to process the NeRF Capture output into the expected directory structure. | ||||||
| This script was modified to work with the Offline mode, by allowing to load a previously recorded dataset | ||||||
|
|
||||||
| After running [splatam](https://github.com/ekumenlabs/SplaTAM/blob/main/scripts/splatam.py) algorithm, the output is saved into an params.npz file format that can then be visualized with open3d viewer to get ahold of the desired point cloud, alongside a metrics plot showing the PSNR and the captured depth of each frame, and additionally, each output frame rasterized. | ||||||
| See [NpzFile](https://numpy.org/devdocs/reference/generated/numpy.lib.npyio.NpzFile.html#numpy.lib.npyio.NpzFile) for info on `npz` format and how to load it. | ||||||
|
|
||||||
| ### Results | ||||||
|
|
||||||
| First Spectacular AI results show metrics plots that look good on the first third of the processed frames, but derailed on the rest. This behavior was repeated throughout 3 captured datasets with an iPhone 14 pro. | ||||||
|  | ||||||
| This leads to the rasterized images and the point cloud visualization to look awful, since the tracking of the capturing device’s position is not correct. | ||||||
|
|
||||||
|  | ||||||
|
|
||||||
| Changing the amount of frames to be processed to the point where the PSNR drops shows a much better result. It can be seen how the device tracker is within the captured environment. | ||||||
|  | ||||||
|  | ||||||
|
|
||||||
| ## Instant NGP | ||||||
|
|
||||||
| \[TODO\] | ||||||
|
Comment on lines
+68
to
+70
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @Santoi nit: remove? |
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # Datasets | ||
| ## Requesting Ekumen HQ recorded datasets | ||
| If you wish to test out one of the datasets recorded at HQ please contact research@ekumenlabs.com. | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Santoi nit:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it helps, use an LLM to adjust the writing (punctuation, tenses, overall cohesion).