Skip to content

bgofish/SOR_Plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Based on Code sourced from; /Dymensium/PointNuker

With PointNuker-SOR, the Statistical Outlier Removal (SOR) filter is a precision tool used to "denoise" your 3D Gaussian Splats by identifying points that are too far from their neighbors compared to the average density of the cloud.

SOR Settings

SOR typically uses two primary parameters to determine what stays and what gets "nuked":

For every point in the cloud, the algorithm identifies its nearest neighbours (where k is a user-defined parameter) and computes the average distance from the point to those neighbours

Neighbours (k):

Function: Defines the size of the neighborhood to analyze for each point. The tool calculates the average distance from a point to its nearest neighbors. Higher values are slower Adjustment: Increase this for denser splats to get a more reliable average; decrease it if the filter is accidentally selecting fine details like thin wires or hair. Allowable Range: 1 to 500

Std Ratio (nSigma) - Standard Deviation Multiplier Threshold:

Function: Sets the sensitivity threshold for deletion. Any point whose mean distance to its neighbors is greater than the global mean distance plus times the standard deviation is removed. Adjustment: Lower values (e.g., 0.5–0.8) are more aggressive and will remove more floaters; higher values (e.g., 2.0–3.0) are more conservative, keeping points unless they are extremely isolated. Allowable Range: 0.01 to 10

Presets Conservative: k=30 & nSigma= 2.0 Balanced: k=20 & nSigma= 1.5 Aggressive: k=10 & nSigma= 1.0

[Introduction Video]

SOR

SOR - Statistical Outlier Removal - There two parts to the Plugin:

  1. Run SOR on an existing 3dGS PLY file - the code is currently 'attached' to the bottom of the "Rendering" tab. I have coded the process to ONLY split: so you get to Isolate and inspect before deleting. This means you can crop etc on the outliers & then merge the model-splits back into one single model. When 'merging' you can enter the name you want in the input box. If you have multiple models in the Scene you can 'isolate' only those you want to work with simply by changing the visibility - SOR will only process the visible ones. I'm not sure what the max count capacity is.
image

2A) COLMAP Points3D.txt/bin editor: This is appended to the bottom of the "Training" Tab and allows pre-processing of the bin/txt point files - there are no graphics . Culling uses the same SOR as above & cropping is on an AABB system or sphere. Before cropping you can interrogate the file (sphere sample given) - This doesn't prefill in the inputs though. After crop or crop/sor it will save to bin/txt file & a bak file is made.

image

2B) Edit COLMAP (GUI editor) This is appended to the bottom of the "Training" Tab (Upper) - Allows for scale/rotation/translation & cropping but no SOR.

image

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors