TL;DR
I compared the splats of a room generated by Splatfacto and Postshot with the same inputs, and consistently found Postshot to be crisper.
Do we already know if some components (ns-process-data or Splatfacto algorithm) are suboptimal, particularly regarding how ns-process-data uses colmap outputs?
Set up
Inputs (for the same room):
- iPhone 14 video, no special setting
- Budget android phone: 56 photos, using 1/60s shutter speed + ultrawide. The pictures aren't blurry.
Both Nerfstudio and Postshot were run on Windows.
Nerfstudio
I used ns-process-data video/images to generate inputs for training.
- iPhone video: 364 images were extracted for the video, while
transforms.json contains 342 frames.
- android:
transforms.json only contains 25 frames (out of 56), even if I used --matching-method exhaustive.
Postshot
I tried these 2 settings:
- Import the raw video/images directly, and let Postshot register the camera poses (
Use Best Images for image selection)
- For iPhone, it tracked 219 images from the video
- For android, it tracked 52/56 images
- Use the
cameras.bin + images.bin + points3D.bin + images folder generated from ns-process-data above
- For iPhone, it managed to track 362/364 images
- For android, it managed to track 47/56 images
Default settings were used for training (Splat MCMC). Subjectively, I found the splat quality of these 2 settings to be pretty similar.
Results
Postshot tend to have crisper results for all cases. All renders are 1920 x 1080.
iPhone
Nerfstudio

Postshot (direct import)

Postshot (colmap)

android
Nerfstudio

Postshot (direct import)

Postshot (colmap)

Questions
As a supporter of open source, I'd love to see Nerfstudio match the quality of Postshot. Asking these questions to better understand where I can possibly contribute:
- Postshot matches more images using the same colmap outputs (the
*.bin files) as Nerfstudio (transforms.json). Why is that the case?
- Would
hcol perform better than colmap for ns-process-data? Tried using it but haven't managed to get the pycolmap dependency to install on Windows so far.
- Is the Splat MCMC algorithm used in Postshot an improved version of the original GS, or are they comparable? Would like to understand whether the quality difference mainly comes from SfM or the splatting algorithm - seems to be the former based on what I have seen so far.
TL;DR
I compared the splats of a room generated by Splatfacto and Postshot with the same inputs, and consistently found Postshot to be crisper.
Do we already know if some components (ns-process-data or Splatfacto algorithm) are suboptimal, particularly regarding how
ns-process-datauses colmap outputs?Set up
Inputs (for the same room):
Both Nerfstudio and Postshot were run on Windows.
Nerfstudio
I used
ns-process-data video/imagesto generate inputs for training.transforms.jsoncontains 342 frames.transforms.jsononly contains 25 frames (out of 56), even if I used--matching-method exhaustive.Postshot
I tried these 2 settings:
Use Best Imagesfor image selection)cameras.bin + images.bin + points3D.bin + images foldergenerated fromns-process-dataaboveDefault settings were used for training (Splat MCMC). Subjectively, I found the splat quality of these 2 settings to be pretty similar.
Results
Postshot tend to have crisper results for all cases. All renders are 1920 x 1080.
iPhone



Nerfstudio
Postshot (direct import)
Postshot (colmap)
android



Nerfstudio
Postshot (direct import)
Postshot (colmap)
Questions
As a supporter of open source, I'd love to see Nerfstudio match the quality of Postshot. Asking these questions to better understand where I can possibly contribute:
*.binfiles) as Nerfstudio (transforms.json). Why is that the case?hcolperform better thancolmapforns-process-data? Tried using it but haven't managed to get thepycolmapdependency to install on Windows so far.