Real-time Point Cloud Visualization via Out-of-Core Octree Eviction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods struggle to visualize massive point clouds in real-time during ongoing scanning processes, especially when the data exceeds the capacity of volatile memory, such as RAM or GPU memory, leading to inefficient processing and visualization challenges.
Innovation Solution
A computer-implemented method utilizing an out-of-core algorithm that constructs an LOD structure, such as an octree, with a node cache in volatile memory and evicts data to non-volatile storage, allowing continuous acquisition and visualization of point-cloud data by distributing and redistributing point-cloud data across local and master trees using parallel threads and eviction pipelines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If point-cloud data is stored entirely in volatile memory (RAM/GPU memory) for real-time visualization, then visualization speed and processing efficiency are improved, but the system cannot handle datasets larger than available memory capacity
Solution Approach 1:
The point-cloud data is divided into multiple partitions or chunks that can be independently loaded and processed. This segmentation allows the system to work with smaller data portions at a time, fitting within volatile memory constraints while handling large overall datasets through iterative processing of segments.
Solution Approach 2:
A data management intermediary layer is introduced between the storage system and visualization pipeline. This intermediary handles data loading, caching, and swapping between volatile and non-volatile memory, enabling seamless real-time visualization without requiring the entire dataset to reside in memory simultaneously.
2Speed
If all point-cloud data is loaded into volatile memory for processing, then data access speed is improved, but memory capacity limits are exceeded for large datasets
Solution Approach 1:
Data is pre-processed and organized into an optimized structure before being loaded into volatile memory. This preliminary organization includes spatial indexing and hierarchical decomposition, allowing efficient access patterns during visualization without requiring complex runtime memory management operations.
Solution Approach 2:
The system dynamically adjusts data loading parameters such as batch size, memory allocation, and processing granularity based on available resources and performance requirements. This adaptive parameter tuning optimizes the balance between data access speed and memory utilization without requiring complex manual memory management.
3Reliability
If point-cloud data is processed and visualized after complete scanning, then data completeness is improved, but real-time visualization capability is lost
Solution Approach 1:
The visualization process runs continuously throughout the scanning operation rather than waiting for completion. Data is streamed from the scanner directly into the visualization pipeline, enabling real-time feedback while the scanning process continues uninterrupted, maintaining both data completeness and temporal efficiency.
Solution Approach 2:
Data structures and processing pipelines are prepared in advance before scanning begins. This preliminary setup includes allocating memory buffers, initializing visualization components, and pre-configuring data flow paths, allowing immediate processing of incoming data points without setup delays during the scanning process.
Data Source
AI summary
A method for real-time acquisition of point-cloud data of an ongoing scanning process, comprising a recording phase iteratively performed using an external-memory algorithm comprising an acquisition pipeline performed with parallel threads and an eviction pipeline, wherein a master thread comprises processing a master tree and a node cache, wherein the acquisition pipeline comprises continuously receiving the point-cloud data in input buffers, computing a local tree for each of a plurality of local threads, redistributing the point-cloud data onto local nodes, determining, for each local node whether the master tree comprises a corresponding node or not, either adding the point cloud data or creating the corresponding node in the master tree, wherein the eviction pipeline comprises evicting, during the ongoing scanning process, point cloud data from the node cache and writing it to one or more hard drives.


