robokudo.annotators.outlier_removal_objecthypothesis¶
Statistical outlier removal and clustering for object hypotheses.
This module implements statistical outlier removal based on standard deviation and number of neighbors in point clouds, followed by clustering to refine object hypotheses. The implementation works in-place to minimize memory usage.
Key features:
Statistical outlier removal using point neighborhoods
DBSCAN clustering for object refinement
In-place point cloud modification
Configurable parameters per object class
Visualization of processed clusters
Authors: * Sorin Arion * Naser Azizi
Attributes¶
Classes¶
Annotator for statistical outlier removal and clustering refinement. |
Module Contents¶
- robokudo.annotators.outlier_removal_objecthypothesis._PYTYPE_TO_ROS_FIELD¶
- class robokudo.annotators.outlier_removal_objecthypothesis.OutlierRemovalOnObjectHypothesisAnnotator(name='OutlierRemovalOnObjectHypothesis', descriptor=Descriptor())¶
-
Bases:
robokudo.annotators.core.BaseAnnotatorAnnotator for statistical outlier removal and clustering refinement.
This annotator processes object hypotheses by:
Removing statistical outliers from point clouds
Clustering remaining points using DBSCAN
Selecting largest cluster as refined object
Updating object hypothesis point clouds in-place
Providing visualization of processed clusters
The processing can be selectively disabled for specific object classes.
- class Descriptor¶
-
Bases:
robokudo.annotators.core.BaseAnnotator.DescriptorConfiguration descriptor for outlier removal and clustering.
- class Parameters¶
-
Parameter container for outlier removal configuration.
- Variables:
-
dbscan_neighbors – Minimum points to form a cluster (DBSCAN min_samples)
dbscan_epsilon – DBSCAN neighborhood size
stat_neighbors – Number of neighbors for statistical analysis
stat_std – Standard deviation threshold for outlier removal
skip_removal_on_classes – List of class names to skip processing
- dbscan_neighbors = 90¶
- dbscan_epsilon = 0.02¶
- stat_neighbors = 200¶
- stat_std = 0.5¶
- test = 'bruh'¶
- skip_removal_on_classes = []¶
- parameters¶
- parameters_callback(params)¶
- update() py_trees.common.Status¶
-
Process object hypotheses to remove outliers and refine clusters.
- Returns:
-
SUCCESS if processing completed, raises Exception if no clusters found
- Return type:
-
py_trees.Status
- Raises:
-
Exception – If no clusters are found after processing
- cluster_statistical_outlierremoval_pcd() bool¶
-
Perform outlier removal and clustering on each object hypothesis.
- Returns:
-
True, if atleast one of the object hypotheses could be optimized. False otherwise.
- Return type:
-
bool