Filter Voxel World Tutorial - ngageoint/voxel-globe GitHub Wiki

Due to how the voxel world algorithm works, there are two typical sources of stray voxels:

  • A large amount of voxels will appear around the perimeter of the world.
  • Noise voxels can appear in the middle of the air.

Perimeter Voxels

If the voxel world is too small for the images used, there is a high probability of a wall of voxels forming around the outer perimeter, similar to:

images/point_cloud_wall.gif

This is caused by rays intersecting on the perimeter of the voxel world, instead of the ground outside the bounds of the voxel world. The solution to mitigate this is to enlarge the bounding box when building a voxel world.

This can be reproduced by using the following values to build a voxel world on the Providence data

  • South - -200 meters
  • West - -50 meters
  • Bottom - -100 meters
  • North - 200 meters
  • East - 350 meters
  • Top - 100 meters
  • Voxel Size - 0.5 meters

Filtering out low observers

After building a voxel world using the downtown Providence data, and generating a point cloud with a threshold of 0.3, you should get a similar result to:

images/point_cloud_noise_air.png

This is caused by high correlation between a few number of images (observations), among other phenomenology. An experimental application has been added to remove the voxels that have a low number of observations.

Start by clicking "Order Removal of Low Number of Observations." Choose the voxel world to filter, and the amount to filter by. A typical amount would be between 1 and 10, where 10 removed more points. For the Providence data, 2 is a good value.

Now order a new point cloud on the "Filtered at 2 Providence" voxel work, and viewing it should reveal a cleaner world:

images/point_cloud_clean.png