290 likes | 313 Views
Explore the technique of creating segment-based maps from 2D laser range scans in robot mapping. Learn about segment post-processing speed and memory efficiency, and clustering using Mean Shift for merging segments. Discover the phases involved in the process and the results achieved. Gain insights into the segmentation and merging process for generating structural information maps.
E N D
Rolf Lakaemper Temple University, Philadelphia,PA,USA Simultaneous Multi-Line-Segment Merging for Robot Mapping usingMean Shift Clustering
Goal: • segment based maps from 2D laser range scans
Motivation: • The segment based approach captures structural information 2) Segment post processing is fast 3) The segment based approach is memory efficient
From point maps to segment maps - • Two different ways: • Create segment map from a global map (point based) Example: Hough transform or Split and Merge EM (Latecki/Sobel/Lakaemper, PAMI 2009)
Or, second: • detect segments in single scans (simpler, see e.g. Amigone/Gasparini IROS08) • Superimpose (pose-corrected) single scans • Cluster & merge segments This talk
Remark: • Technique is applicable for all mapping algorithms that result in corrected poses of single scans • NOT restricted to segment based maps
Mean Shift • (Fukunaga/Hostetler 1975) • gradient descent procedure to find multiple modes of density distributions. • Iteratively shifts data points to their mean in a certain neighborhood. • Mean shift: Δm = m(x) - x • data points converging to the same mode belong to one cluster.
Main property: except for the definition of the neighborhood (i.e. kernel K), Mean Shift is parameter free. • Sensitive to kernel definition • In our case, domain knowledge is available to determine the kernel K for robust operation • Mean Shift Δm is in the gradient direction of the density estimate q(x) = ΣpK(p − x) • Mean Shift is steepest gradient ascent to the modes of the density distribution of P (with K) without explicit computation of the density.
Mean Shift for Segment Clustering • Transform segment map to center-direction joint space α x,y α y x
3d space: we omit segment length Assumption: length does not vary too much => split segments if too long
Use Mean Shift in two phases: • Phase 1: detection of locally common directions • Phase 2: Clustering by collinearity • Splitting into 2 phases makes the approach more robust. For ‘simple’ data sets, the phases can be combined (I'll explain later)
Symmetric Gauss Kernel: x,y: we do not assume any expected directions a priori, we do not prefer collinearity to the weaker condition of parallelism. • This is the main difference between the first and second phase (which uses an anisotropic kernel) x,y α
...we do not assume any expected directions a priori, we do not prefer collinearity to the weaker condition of parallelism. = • This prevents us from making a LOCAL, single segment direction cluster decision
Symmetric Gauss Kernel: • σ is related to scale • h defines spatial-angular relation
Phase 2: Clustering by collinearity • aims at sub-clustering each phase 1-cluster using the directional information • Cluster direction = average direction of cluster members • Elongated (in cluster direction) anisotropic kernel • Goal: merge approx. collinear segments • Phase 2 is 2 dimensional clustering! (x,y space only)
Clustering by collinearity Single cluster Sub - clustered Kernel With Covariance Matrix (b,c similar, straightforward)
The single phase approach: • - Applicable if data set is 'simple' (low intra cluster direction deviation in first phase) • - In first (and only) phase, use kernel • with a,b,c defined LOCALLY by i-th segment direction (not by average direction), to determine K_i • - Each segment has different kernel • - Less robust
Segment Merging • Merge segments of each cluster to a single representative segment.
Hallway Points Segments Superimposed segments Merged segments
Hallway • Superimposed segments • Merged segments • Cleaned version (short segments deleted) 59245 points to 255 segments
Conclusion and remarks: • global segment map was built by superimposing local segment maps • Clustering detects a) segments of same direction, b) collinear segments • Merging reduces numbers of segments • Alert! Segments are only hypotheses of point sets and have to be enjoyed with care – but we can always return to points and use segments to augment the data set