Point cloud processor, Helix Matcher
- To run point cloud processing in a low memory pods.
- Compare point cloud against a 3D mesh and write a 3D mesh with deviations.
- For the point cloud processing we were facing a memory shortage in pods with more than 100 GB of RAM to process large point clouds. It was not practical to increase the RAM according to point cloud size, So even if point cloud have 1 point, pods used to allocate with 100 GB RAM.
To resolve the problem we introduced a streamable version of point cloud processor. To do so, we implemented all our point cloud readers and writers to support stream mode. This version of point cloud processor seamlessly work on 2GB of RAM without compromising performance, even if point cloud contains billions of points.
- Comparing point cloud and a 3D mesh is really a simple task, But writing a deviation mesh was a challenge. So we applied some edge algorithms which resulted output pretty much as expected. Refer images for inputs and outputs.
Language and SDK: C++, Python
1. Input point cloud :
2. Input mesh:
3. Output mesh:
When compared point cloud and mesh in above images the result is as follows. The portion in Red is actually a deviation between point cloud and mesh, meaning it is present in mesh but not present in point cloud.