graph LR
Dataset_Interface["Dataset Interface"]
Concrete_Dataset_Implementations["Concrete Dataset Implementations"]
Data_Augmentation["Data Augmentation"]
Data_Samplers["Data Samplers"]
Data_Preprocessing_Utilities["Data Preprocessing Utilities"]
Geometric_Operations["Geometric Operations"]
BEV_Bounding_Box_Utilities["BEV Bounding Box Utilities"]
Concrete_Dataset_Implementations -- "implements" --> Dataset_Interface
Data_Samplers -- "leverages" --> Dataset_Interface
Concrete_Dataset_Implementations -- "leverages" --> Data_Preprocessing_Utilities
Concrete_Dataset_Implementations -- "provides data to" --> Data_Augmentation
Data_Samplers -- "interacts with" --> Concrete_Dataset_Implementations
Data_Augmentation -- "processes data from" --> Concrete_Dataset_Implementations
Data_Augmentation -- "calls methods from" --> Geometric_Operations
Data_Preprocessing_Utilities -- "calls" --> Geometric_Operations
BEV_Bounding_Box_Utilities -- "uses" --> Geometric_Operations
Concrete_Dataset_Implementations -- "uses" --> BEV_Bounding_Box_Utilities
The ml3d.datasets subsystem is designed around a flexible Dataset Interface that standardizes how 3D datasets are handled. Concrete Dataset Implementations provide specific dataset loading and parsing, adhering to this interface. Data flow from these implementations can be further processed by Data Augmentation for diversity and prepared by Data Preprocessing Utilities for consistency. Data Samplers then organize this data into batches for model consumption. Underlying these operations, Geometric Operations provides fundamental 3D mathematical functions, which are utilized by both Data Augmentation and Data Preprocessing Utilities, and critically, by BEV Bounding Box Utilities for specialized bounding box manipulations. This modular design ensures robust and extensible data handling for 3D machine learning tasks.
Defines the foundational abstract interface and common structure that all 3D dataset classes must adhere to. It ensures data consistency across different dataset implementations.
Related Classes/Methods:
A conceptual grouping of specific dataset handlers (e.g., SemanticKITTI, S3DIS, KITTI, CustomDataset) that implement the ml3d.datasets interface. These components are responsible for dataset-specific parsing, loading, and initial data structuring.
Related Classes/Methods:
Provides a collection of methods and classes for applying various transformations (e.g., rotation, scaling, noise) to 3D data, enhancing dataset diversity and model robustness.
Related Classes/Methods:
Defines strategies and mechanisms for sampling points or data clouds from datasets, crucial for creating mini-batches for training and inference.
Related Classes/Methods:
Manages common preprocessing tasks such as transformations between 3D coordinate systems, point cloud filtering, and normalization.
Related Classes/Methods:
Offers low-level, fundamental functions for 3D geometric manipulations, serving as a foundational utility for other components requiring basic 3D math.
Related Classes/Methods:
Encapsulates logic for handling and converting 3D bounding boxes, particularly for Bird's Eye View (BEV) representations, which are common in autonomous driving datasets.
Related Classes/Methods: