Literature Review: Incremental Segment-Based Localization in 3D Point Clouds

Abstract

Because positioning in the 3D point cloud complexity of extracting information from data in 3D reason is very challenging. We propose a method to increment efficient solution to this problem.

  • First will accumulate in the dynamic observation of voxel, then there are normal update point selective.
  • A incremental segmentation algorithm

We say this to show incremental scheme can make global positioning in the urban scene 10Hz, compared to 7.1 times faster batch solution.

1. Introduction

Perception is very important. The mobile robot is often equipped with time-of-filght sensor to generate accurate 3D reconstruction environment. We specialize in locating 3D point cloud. Can be done in the global associative 3D reconstructed data such that we can give expression unified way, no assumptions low drife, or a known starting point opposite.

Contributions

  • 3D point cloud based on segment matching the positioning method.
  • For a group of normal estimation, segmentation and recognition of incremental algorithms.
  • Compare incremental approach and batch solution in urban driving

a) Incremental point cloud segmentation

[3] proposes a method of region growing segmentation of dense point clouds. For each input point cloud, divided only do once, and subsequent fusion step. Here only consider splitting plane, and our solution is more generalized. [5] proposed segmentation depth FIG. All of the above are not made based on the segmentation result retrieving models of the program.

b) Efficient geometric verification

In stereo images when there is proposed to reduce the number of matching strategy. [7] proposed RANSAC can only do spatial consistency checks. The above-described methods have assumed parallax images, all of their high accuracy is influenced strongly varying disparity and viewing angle.

3. Method

image-20200329154230344

A. Dynamic Voxel Grid

3D point cloud continuous input is filtered, and then accumulated in a Local cloud of voxel method. We did not use every time there is a new observation update batch voxel filtering method throughout the local cloud, but updates voxel only affected new point cloud. We use DVG, an efficient data structure to support dynamic insertion and removal.

Occupied voxel will be stored in a vector, each voxel save its index, centroid and the number of points it contains. To reduce noise, a voxel will be considered when there is a certain number of points are active.

1) Voxel Indexing

A voxel is a size \ (L \ Times W \ Times H \) , each voxel has a unique in index (re interval \ ([0, L \ CDOT W \ CDOT H -. 1] \) . Grid has a fixed resolution \ (R & lt \) , a rigid T from the world system to the grid lines \ (T_ {mg} \) . to calculate the efficiency, we want the grid size is a multiple of 2, \ (L = 2 ^ { bits}} {menthoxypropane \) , \ (^ W = 2 bits}} {{W_ \) , \ (H = 2 ^ {}} bits H_ {\)

2)Insertion and Removal

When the new point is inserted when, DVG calculates its indices, and arranged according to increasing order of voxel id. Taking into account arranged \ (\ mathcal {O} ( n \ log (n)) \) complexity, so use it is important to sort the batch voxelization. When \ (m \) points \ (Q_I \) is inserted to give voxel (centroid is \ (P \) from \ (\) n- th down-sampled points), we have:

\(p \leftarrow\left(n \cdot p+\sum_{i=1}^{m} q_{i}\right) \cdot \frac{1}{n+m}, \quad n \leftarrow n+m\)

3) Rigid Transformation

When the loop detection. . .

B. Incremental Normal and Curvature estimation

A point \ (P_i \) calculate its normal in the 3D point cloud in time, usually with neighborhood set of points \ (\ mathcal {N} ( p_i) \) covariance matrix \ (M \) to be measured. After finding a neighbor with Fixed-RADIUS Nearest Neighbors (NN), \ (of M_ {I}: = \ overline {\ left (\ nu_ {J} - \ bar {\ NU} \ right) \ left (\ nu_ {J } - \ bar {\ nu} \ right) ^ {\ top}} \)

normal estimate is equal to \ (M_i \) is normalized eigenvector. curvature is \ (\ Sigma = \ lambda_ {0} \ left (\ lambda_ {0} + \ lambda_ {. 1} + \ lambda_ {2} \ right) ^ {-. 1} \) , where \ (\ lambda_ {0 } <\ lambda_ {1} < \ lambda_ {2} \) is (M_i \) \ of eigenvalues.

Here we made two major optimization steps. Covariance matrix \ (M_i \) is an incremental count, and normal will only affect new sweep point is to be updated.

1) Incremental Updates read through heavy

2) Rigid Transform

C. Incremental region growing segmentation

region growing policies regional growth strategy

image-20200329175614898

1)Clusters merging:

image-20200329175857050

2)Growing policies

During the preparation phase, PREPARESEEDS id will be collected through the point CANBESEED tested, then they are arranged by increasing order of curvature. This ensures that the region growing starting point is the flat, to reduce the number of segments.

CANGROWTO returns true, if the seed of normal and neighbor points are parallel. Because the rotation of the unknown normals, this probably is confirmed by point multiplication. Max is a threshold value further curvature point, in order to pass the test CANBESEED.

Euclidean distance policies easy to understand, because the incremental growth of the region have found a neighbor candidate based on Euclidean distance. So, CANGROWTO and CANBESEED always returns true, PREPARESEEDS just collect id has not yet been assign points.

3) Segment Tracking

cluster ID only temporary values ​​to define the point is assigned to the same cluster, segment ID is defined in lingtime-long. segmentation stage will allow us to track segments robust and sustained their views in local map, which will bring many benefits.

In [1], the multiple views and the same can not contact a segment, you will get different IDs, resulting in the target map of insertion of segment duplicates.

D. Graph-based incremental recognition

Extracted from the local point cloud segments will be described in a generic feature vector (eigenvalue-based descriptor [13]). Candidate matching segments of the local and target map will be found by NN search. If one pair \ (c_i, c_j \) of the segment centorids European example is less than a threshold value, then that is consistent geometry. In our scenario, we use graph problem to describe the recognition of the problem, to define a Maximum Pairwise Consistent Set (MPCS).

We also use the segment tracking of chapter 3-C.3.

\(\mathcal{S}\left(c_{i}\right)=\left\{c_{j} \in V | j \leq i \wedge \Delta\left(c_{i}, c_{j}\right) \leq \theta_{\Delta}+\epsilon\right\}\)

1) Cache Maintenance

If a match \ (C_i \) is first found, \ (\ mathcal {S} (C_i) \) will be calculated saved. If the match is no longer being observed, it will be deleted.

image-20200330004812996

2)Consistent candidates set identification

image-20200330004856025

In order to allow two matching finish, examples of their target segments must be less than equal to the diameter of the local map.

3)Consistency Graph Construction

4)MPCS Identification

When MPCS of a size greater than a threshold value, a recognition that we believe to be successful.

4. Experiments

A. Baseline

The baseline for comparison is SegMatch precursor [1], is marked with a PCL library thereof. batch voxel filtering is made pcl::VoxelGrid, with the batch normals estimation pcl::NormalEstimation. Batch Segmentation use pcl::EuclidianClusterExtractionand pcl::RegionGrowing. Recognition is pcl::GeometricConsistencyGrouping.

B. Performance

1) Hardware: All experiments were then 32GB of RAM, the completion of the Intel i7-6700K. RAM usage never more than 1.6G.

。。。

5. Conclusions

We highlight the incremental approach 3D point cloud location. Different with the previous, this program will maintain a segmented local map, then incremental geometric verification. This acceleration can reach 10Hz, can support real-time.

Guess you like

Origin www.cnblogs.com/tweed/p/12596198.html