1 Introduction

Terrestrial laser scanning (TLS) can deliver dense and accurate 3D point clouds [1, 2] and is widely used in many scientific fields including 3D model reconstruction [3], 3D object recognition [4, 5] and cultural heritage management [6]. TLS has limited measurement range, and thus, in order to obtain full coverage of a scene multiple scans from different viewpoints are necessary. Then, multiple point clouds must be transformed into a common coordinate system in a registration step. Hence, point cloud registration [7] is a key component in processing 3D point clouds data.

In rock engineering, the technique of laser scanning can rapidly obtain the spatial information about rock mass as point clouds. The 3D model of rock mass reconstructed from point clouds is the initial input for numerical analysis methods, which can be efficiently used for the analysis of rock stability [8, 9]. As the important step of 3D reconstruction, point cloud registration is also attracted increasing attention in the field of rock engineering.

The purpose of registration is to find a transform matrix between two point clouds scanned from different viewpoints. Although several methods have been proposed for automatic registration [10], they still have more or less difficulties in dealing with rock mass point clouds due to the unique geometrical characteristics of rock mass, for example, different orientations of discontinuities, irregular shapes and different roughness. As shown in Fig. 1, rock mass discontinuities [11] which are represented by planes are important features in rock engineering. Recognition discontinuities can not only be used for registration but also provide initial primitives (planes) for 3D reconstruction of rock mass. Motivated by this significant feature, plane information is more suitable for registration between rock mass point clouds than other features.

Fig. 1
figure 1

Examples of natural rock mass. The outer surfaces of naturally formed rock masses are often discontinuities, comprised mainly of planes

In this paper, we focus on 3D rigid registration for rock mass point clouds. Firstly, planes are extracted in rock mass point clouds using an efficient plane detection method. Then, polygon matching procedure is used for coarse registration. Finally, fine registration is carried out using ICP method. All processes are optimized for the rock mass scenes. Our work makes the following contributions:

  • An efficient triple-region growing method has been proposed for plane detection in rock mass point clouds. The advantages of different kinds of region growing (RG) are exploited in this algorithm. This integrated strategy exhibits better adaptability to complex rock structures and moreover achieves higher accuracy than existing methods.

  • Considering that the surface of the rock mass is mostly composed of planes and these planes usually have different shapes, a fast coarse registration method has been proposed for rock mass scenes based on plane detection and polygon matching. In the final step, iterative closest point (ICP) method is performed for fine registration. This strategy is fast and more suitable for registration between rock mass point clouds.

  • We conduct experiments on different rock mass point clouds to evaluate the proposed method. The experimental result shows that our method can achieve better performance than the other compared methods on registration between rock mass point clouds.

The paper is organized as follows. The related work is introduced first in Sect. 2. Then, the details of proposed method are thoroughly discussed in Sect. 3. Section 4 includes a discussion and the experimental results. Finally, we summarize this paper and introduce the future work in Sect. 5.

2 Related work

2.1 Registration

3D registration is a crucial step in 3D model reconstruction [12]. Point cloud registration can be divided into coarse registration and fine registration. Coarse registration is used to determine approximation of transformation between two point clouds. Fine registration focuses on obtaining more accurate transformation after coarse registration procedure.

There has been a large body of work surrounding automatic coarse registration; most of them are feature-based methods. Coarse registration is an approach to calculate a rough initial transformation to increase the performance of fine registration. Rusu et al. [13] proposed point feature histograms (FPFH) for registration. In this method, a histograms-based descriptor is computed for each point within point cloud, and then, the correspondences between points from different shapes are found based on this feature. Yang et al. [14] used the standard scale-invariant feature transform (SIFT) detector to calculate the transformation in point clouds. Guo et al. [15] proposed a rotational projection statistics (RoPS) feature for point cloud registration and 3D object recognition. In addition, 4-points congruent sets [16, 17] and spatial curves [18] are also commonly used in coarse registration.

Fig. 2
figure 2

The framework of the proposed method. Firstly, planes and polygons are extracted from rock mass point clouds. Secondly, polygon pairs can be determined on 2D coordinate system. Then, the centroid of plane point sets corresponding to polygon pairs is used as point pairs for coarse registration. Finally, ICP method is used for fine registration

Xian et al. [19] produced an imaged-based method for registration. They first convert point clouds to images based on spherical projection. The method of SIFT was used to search corresponding relationship in images. Then, the correspondences were applied to coarse registration in 3D point clouds. Recently, deep-learning based method has been proposed for 3D registration. Elbaz et al. [20] use a deep neural network auto-encoder for registration in point clouds.

The iterative closest point (ICP) [21] is one of the most extensive access to fine registration. As ICP is a local optimization, this method requires a suitable initial alignment to reduce the possibility of local minimum. Coarse registration is designed to overcome this limitation by determine approximation of transformation between two point clouds. What is more, some variants of ICP are proposed to improve the performance. Yang et al. [22] proposed Go-ICP to extend ICP with global optimal guarantee by adopting a branch and bound strategy. Pomerleau et al. [23] developed a fast ICP algorithm for real-time registration to adapt to SLAM scenarios.

2.2 Plane detection

Researchers have proposed several algorithms on 3D plane detection. According to the working principle, Hough transform (HT), random sample consensus (RANSAC) and region growing (RG) are the most popular approaches to detect planes in point clouds. This section discusses these algorithms and their various optimizations which are intended to accelerate plane detection in point clouds.

HT is a robust method, and it uses the correspondence between the object space and the parameter space to detect parameterized models. The high computation cost is the main problem of this method. Borrmann et al. [24] compared four different optimized HT using a new designed sphere accumulator. The experimental results present that randomized Hough transform (RHT) outperforms all the other HT methods for detecting an unknown number of planes in point clouds. Limberger and Oliveira [25] proposed a 3D Kernel-based Hough transform (KHT) based on Octree and principal component analysis (PCA) for real-time plane detection.

RANSAC is another model-based algorithm for detection of geometric primitives, and it is an interactive method to detect an accurate plane based on probability. Schnabel et al. [26] proposed two optimizations to improve the performance of RANSAC: localized sampling strategy based on Octree and optimized score function based on statistics. This method is widely used for plane detection in the field of building modeling.

RG [27] is a segmentation method based on neighborhood information. A seed region is first picked randomly in this method, and then, a local search is performed to expand regions when the neighbors satisfy some conditions. Therefore, different seed regions and growing rules influence the performance of RG greatly. In general, the distance from point to plane and the mean square error (MSE) were frequently adopted as growing rules. Traditional RG usually used a single point as growing unit. Poppoinga et al. [28] proposed an optimized RG method using an incremental version for plane parameters computation. Holz and Behnke [29] extended the point normals captured from point cloud as growing rules. Apart from this rules, Xiao et al. [30] designed an optimized method for coplanarity test. Wang et al. [31] improved the performance by an optimized MSE calculation in the field of autonomous navigation.

It is noted that the growing unit is a single point in the above traditional RG methods, which is inefficiency in processing massive point clouds. Xiao et al. [5] presented a voxel-based RG for plane detection in range images. In this approach, point cloud is divided into small voxel and each voxel satisfied with some conditions is regarded as growing unit. Gomes et al. [32] presented a PCA-based algorithm to detect planar and near-planar surfaces automatically. Oesau et al. [33] used K-nearest neighbor (KNN) to select seed points.

3 Methodology

This section presents the details of our methodology that is proposed for registration on rock mass point clouds. The framework of the proposed method is illustrated in Fig. 2. The method consists of three sequent steps: plane detection, polygon matching and registration. The functionality of each step will be briefly explained next.

3.1 Plane detection

Several traditional methods have been proposed to detect plane in point clouds; however, few methods can be directly used for rocky points due to the unique geometrical characteristics of rock mass, such as irregular shapes, wide variations in elevations, large variations in spatial extents and the different roughness. A novel triple-RG method is proposed in order to detect planes in rock mass point clouds efficiently. The pipeline of this method is shown in Fig. 3. Because the normal vector of each point plays an important role in detecting planes with different orientation, the normal information should be pre-calculated.

Fig. 3
figure 3

The pipeline of plane detection in rock mass point cloud. Firstly, point cloud is divided into small voxels. Secondly, a point-based RG (first) is used in each voxel for coplanarity test to generate growing units. Then, a voxel-based RG (second) is used to detect planes based on the growing units. Finally, a plane-based RG (3rd) is used to process the remaining points for detecting accurate planes

3.1.1 Triple-region growing

The engineering point clouds obtained from laser scanning are always massive. Thus, voxel-based RG (second) is chosen in our method, which is more efficient for plane detection than other methods. In this method, point cloud is first divided into small voxels according to the bounding box and specified resolution. Then, these voxels are regarded as growing units and clustered into completed planes by RG. However, the performance of this method is greatly influenced by the quality of seed regions. In order to detect planes accurately, we only choose the voxels which pass the coplanarity test as growing units. Several methods have been applied to coplanarity test. Xiao et al. [5] used the minimum eigenvalue calculated by the covariance matrix. If the points within a voxel are coplanar, the minimum eigenvalue is getting closer to zero. Gigli et al. [34] estimated the least-squares plane aiming at each voxel and used the distance variance between the point and fitting plane for coplanarity test. These methods above are efficiency but not accuracy. As shown in Fig. 4, the red and blue parts represent two different planes within a voxel. If a voxel contains two or more similar plane (Fig. 4a), this voxel should be removed according to the traditional coplanarity test, which will make the final plane incomplete. If a voxel contains one big planes and some small planes (Fig. 4b), this voxel may be accepted, which will make the final plane inaccurate. This two situation often occurs at the boundary of planes and will reduce the accuracy of voxel-based RG.

Fig. 4
figure 4

Example of traditional methods for coplanarity test. a and b Point clouds within a voxel, which contains two different planes (red and blue parts). The rejection of a will make the final plane incomplete; the acceptance of b will make the final plane inaccurate

For solving this problem, we add two RG procedures. A point-based RG (1st) is used for coplanarity test, which can detect a best plane as growing unit within each voxel. RG acquires high-quality and accurate growing unit efficiently, which can improve the performance of voxel-based RG. After the procedure of voxel-based RG, the completed planes can be roughly detected, but some information loss exists at the boundary of planes. Because one voxel may not contain one plane, the smaller plane points should be removed after coplanarity test. Meanwhile, because of the different degrees of roughness in rock mass point clouds, some points with large roughness may be discarded as well. Thus, we use a plane-based RG (third) to deal with the remaining points. As the information loss often appears at interiors and the boundary of planes, we only consider the points located on these regions. In triple RG, we use the distance and the angle between two planes (or between points and planes) as growing rules. The angle between two planes constrains the orientation of the plane. The distance between two planes constrains the spacing between planes. Larger thresholds can adapt to complex environments, but will cause inaccuracy. The details of triple-region growing are shown in Fig. 5. After the procedure of triple-region growing, planes can be detected from rock mass point clouds efficiently and accurately.

Fig. 5
figure 5

The procedure of triple-region growing. a Raw rock mass point cloud; b result of point-based RG (first) for generate growing units in each voxel; c result of voxel-based RG (second) for detecting initial planes; d result of plane-based RG (third) to process remaining points around initial planes for detecting accurate planes

Algorithm 1 shows the common RG method to detect planes. All the three RG methods above can use Algorithm 1 to detect planes by setting different growing units, growing rules and seed selection strategy, respectively.

figure d

The process of triple-RG method is as follows:

  1. (1)

    Point cloud is first divided into small voxels according to the bounding box and specified resolution, and the neighborhood information is built at the same time. The resolution should be set manually according to the point density and scale of point cloud. Low-resolution settings may cause unfavorable results that there are not enough points to fit the plane in each voxel. Large resolution settings may generate negative influences that there are too many planes within one voxel to reduce accuracy. According to our experience, the minimum resolution is more than ten times the average distance of points.

  2. (2)

    A point-based RG (1st) is used in each voxel for coplanarity test to generate growing units. In each voxel, we choose points close to the center of the voxel as seed points. Then, we choose 3 non-coplanar points to fit plane \(\mathcal {P}\) and begin to grow. Suppose that \(Ax + By + Cz + D = 0\) represents the plane \(\mathcal {P}\) equation. \(p_{i} = (p_{xi}, p_{yi}, p_{zi})\) represents the point within the voxel and \(n_{i} = (n_{xi}, n_{yi}, n_{zi})\) is the unit point normal vector of \(p_{i}\). The distance and the angle between neighborhood points and plane \(\mathcal {P}\) are used as growing rules. If the distance between the point \(p_{i}\) and the \(\mathcal {P}\) (Eq. 1) is less than the threshold \(d_{\min }\), and the angle between the plane normal vector (ABC) and point vector \(n_{i}\) (Eq. 2) is less than the threshold \(\theta _{\min }\), the point \(p_{i}\) can be added to the plane \(\mathcal {P}\). After all the points within this voxel have been calculated, one completed plane can be detected. This process repeats 3 times, and we choose the plane containing the largest number of points as growing unit in each voxel. According to our experience, the distance threshold \(d_{\min }\) does not exceed 0.1m and the angle threshold \(\theta _{\min }\) does not exceed \(15^\circ \). The result of this process is shown in Fig. 5b.

    $$\begin{aligned} \frac{\left| Ap_{xi} + Bp_{yi} + Cp_{zi} + D \right| }{\sqrt{A^{2} + B^{2} + C^{2}}}\le & {} d_{\min } \end{aligned}$$
    (1)
    $$\begin{aligned} \arccos \left( \frac{\left| An_{xi} + Bn_{yi} + Cn_{zi} \right| }{\sqrt{A^{2} + B^{2} + C^{2}}} \right)\le & {} \theta _{\min } \end{aligned}$$
    (2)
  3. (3)

    A voxel-based RG (second) is used to detect planes based on the growing units. This process repeats iteratively relied on neighborhood information. Each iteration can detect one completed plane and contain three steps: firstly, plane which contains the most number of points is selected as seed plane. The distance and the angle between two plane are used as growing rules. Then, the neighbors of seed plane satisfied with the growing rules are added together with the seed regions. Finally, these neighbors become new seed regions to expand regions until no voxels are added as seed regions. The result of this process is shown in Fig. 5c.

  4. (4)

    A plane-based RG (third) is used to detect accurate planes. Firstly, we select a plane as seed plane at one time from the plane set which is detected in the procedure of voxel-based RG. Then, the points around seed plane were verified to determine whether the point belongs to this plane. In this process, we choose the same growing rules as first RG. This process mainly focuses on the remaining points, which mainly exist in rough regions. Therefore, the threshold used in third RG should be set manually according to the roughness. Experiments demonstrate the threshold should be 50–100% greater than the threshold used in first RG. The result of this process is shown in Fig. 5d.

Fig. 6
figure 6

The method to compute polygon from point clouds

figure e

3.1.2 Polygon detection

Because point clouds are unorganized and do not contain topology information, it is inconvenient to find the correspondences between two point clouds. Thus, we use polygon based on planes which are detected after the procedure of triple-region growing to find the correspondences between two point clouds. Concave hull and convex hull are the most commonly used to compute polygon from point clouds. As shown in Fig. 6, the convex hull does not represent the boundaries of a given set of points well. Therefore, in this paper we use concave hull to detect polygon from point clouds. Concave hull method has been provided in the open-source point cloud library (PCL). The parameter of alpha in this method is determined as 0.5. Each polygon contains some ordered 3D points which approximately represent the boundary shape of a planar point cloud.

3.2 PCA-based polygon matching

In order to find the correspondences between point clouds, PCA-based polygon matching method is proposed in this paper. Algorithm 2 shows the PCA-based polygon matching. Firstly, we choose a polygon \(source_{i}\) from \(poly\_source\_set\) and then calculate the centroid \(O_{s}\) by Eq. 3. Then, we translate the coordinate center to the centroid by Eq. 4. Suppose that \(source_{i}\) contains n points, \(p_{i}\) is the coordinates of one points in \(source_{i}\).

$$\begin{aligned} {O_{s}}= & {} \frac{1}{n} \sum \limits _{i=1}^{n}{p_{i}} \end{aligned}$$
(3)
$$\begin{aligned} p_{i}= & {} p_{i}-O_{s} \quad (i\in [1,n]) \end{aligned}$$
(4)

Secondly, we transform source into a 2D coordinate system using PCA. Because the planes and polygon detected from point clouds are of approximately two-dimensional shapes, finding correspondences between polygons in 2D coordinate system is more efficient and concise. As one of the most popular techniques to reduce dimension, PCA is applied. We assemble the covariance matrix \(\varSigma \) by Eq. 5. \(\lambda _{j}\) and \(v_{j}\) are the eigenvalues and eigenvectors of \(\varSigma \)\((\lambda _{0}< \lambda _{1} < \lambda _{2})\). Because the polygon is a 2D shape, the minimum eigenvalue \(\lambda _{0}\) is close to zero. Suppose that the matrix \(T = \left\{ v_{1}, v_{2} \right\} \), then the 3D points in source can be transformed to 2D coordinate system by Eq. 7. In rock mass point clouds, most of the planes are irregular. Therefore, the two different orthogonal axes are easy to distinguish according to eigenvalues.

$$\begin{aligned} \varSigma= & {} \frac{1}{n-1} \sum \limits _{i=1}^{n}{p_{i}p_{i}^{T}} \end{aligned}$$
(5)
$$\begin{aligned} \varSigma \cdot v_{j}= & {} \lambda _{j}\cdot v_{j},j\in \left\{ 0,1,2 \right\} \end{aligned}$$
(6)
$$\begin{aligned} p_{i\_2d}= & {} p_{i} * T \quad (i \in [1, n]) \end{aligned}$$
(7)
Fig. 7
figure 7

Example of polygon matching

Fig. 8
figure 8

Rock mass point clouds data used for experimentation. Data 1 contain small-scale rock mass point clouds with small rotation and translation matrix. Data 2 contain middle-scale point clouds with large rotation matrix. Data 3 contain big-scale rough rock mass point clouds with partial overlap

Finally, polygon matching can be implemented on 2D coordinate system. As the planes in rock mass point clouds are always irregular, the area of polygon is used to determine the correspondences between polygons. As the corresponding polygons may have similar number of points, we sequentially select one polygon \(target_{j}\) from \(poly\_target\_set\) if the difference between the number of points in \(source_{i}\) and \(target_{j}\) is less than 20%. Then, we calculate the area \((S_{s_{i} \bigcap t_{j}})\) of intersections between \(source_{i}\) and \(target_{j}\). Two polygons \(source_{i}\) and \(target_{j}\) are matched, if the similarity rate (Sr) satisfies Eq. 8. As shown in Fig. 7, red and blue parts represent two different polygons, and the area of polygon can help find the correct match. After traversing the polygons in \(poly\_source\_set\), all correct correspondences will be determined.

$$\begin{aligned} Sr = \frac{2*S_{s_{i} \bigcap t_{j}}}{S_{s_{i}}+S_{t_{j}}} \ge 90\% \end{aligned}$$
(8)

3.3 Registration

After finished determining the correspondences between polygons, a coarse registration will be implemented firstly in the registration procedure. In this paper, we focus on rigid registration, which has the 6DoF (6 degrees of freedom) transformation between the point clouds. Suppose that source point cloud \(\mathcal {P}\) contains K key-points \((p_{k})\), and the corresponding points are \(q_{k}\) in target points \(\mathcal {Q}\). The aim is to estimate the transformation \(\mathcal {T} = [R|t]\), and then, we should minimize an alignment error measure \(\varepsilon \) by Eq. 9, where R (3DoF) is the rotation matrix and t is the translation matrix. Quaternion \(\mathbf {q} =\left\{ q_{0}, \mathbf {v} \right\} = \left\{ q_{0}, q_{1}, q_{2}, q_{3}\right\} \) is often used to parameterize rotation matrix R by Eq. 10.

$$\begin{aligned} \varepsilon= & {} \sum \limits _{k=1}^{K}{\left\| q_{k}-(Rp_{k}+t) \right\| }^{2} \end{aligned}$$
(9)
$$\begin{aligned} R= & {} \begin{bmatrix} 1-2q_{2}^{2}-2q_{3}^{2}&2q_{1}q_{2}-2q_{0}q_{3}&2q_{1}q_{3}+2q_{0}q_{2}\\ 2q_{1}q_{2}+2q_{0}q_{3}&1-2q_{1}^{2}-2q_{3}^{2}&2q_{2}q_{3}+2q_{0}q_{1}\\ 2q_{1}q_{3}-2q_{0}q_{2}&2q_{2}q_{3}+2q_{0}q_{1}&1-2q_{1}^{2}-2q_{3}^{2} \end{bmatrix} \end{aligned}$$
(10)
Fig. 9
figure 9

Results achieved by using the proposed method with different Gaussian noises. ad Data 1 with different Gaussian noises varying from \(\delta = 0.00\) to \(\delta = 0.20\); eh registration results of ad using the proposed method. il data 2 with different Gaussian noises varying from \(\delta = 0.00\) to \(\delta = 0.20\); mp registration results of il using the proposed method

Fig. 10
figure 10

Results achieved by using the proposed method with different initial position. ad data 1 with different initial positions; eh registration results of ad using the proposed method. il data 2 with different initial positions; mp registration results of il using the proposed method

In order to estimate the transformation, we should find at least 3 corresponding points. Quaternion \(\mathbf {q} = \{ q_{1}, q_{2},\)\( q_{3}, q_{4} \}\) is often used to parameterize rotation matrix R. In the proposed method, we use the best 3 point pairs to estimate accurate transformation and we can also use all the point pairs for more stable estimation. Firstly, three polygon pairs which have top three similarity rates are selected from \(relationship\_set\). Then, we can find the corresponding plane point sets easily. Considering noise and equipment errors, we use the centroid of point sets as corresponding points, and then, the coarse transformation matrix can be estimated according to these points. Finally, a typical ICP method is performed for fine registration. ICP method has been provided in the open-source PCL.

4 Experimental results and analysis

In order to test the performance of our method, three different rock mass data sets are assessed to validate the method, as shown in Fig. 8. All the rock mass data come from a public LiDAR data set at Rockbench [35]. Each of the rock mass data has two rock mass point clouds: source_cloud (red part) and target_cloud (blue part). Data 1 contain small-scale rock mass point clouds with small rotation and translation matrix. Data 2 contain middle-scale point clouds with large rotation matrix. Data 3 contain big-scale rough rock mass point clouds with partial overlap. Root mean square (RMS) error is computed for evaluating the performance. Firstly, the robust test is performed. Then, we compare the proposed method with other registration method to validate the performance of our method. For comparison, the terminating condition of ICP in all comparison methods is set as the difference value of REM error between two iterations which is less than 1.0e−5. Our technique has been implemented in C\(++\), and all the experiments are carried out on PC with Intel I7-7700, 8 GB RAM.

Table 1 Results achieved by using the proposed method with different kinds of Gaussian noises and different initial positions

4.1 Robust test

In this part, we use data 1 and data 2 to validate the robust of our method. We add Gaussian noise with three different standard deviations (\(\delta \in \left\{ 0.10,0.15,0.20 \right\} \)) to target_cloud. Meanwhile, we rotate and translate the target_cloud to different initial positions for testing the robust of our method. The results are shown in Figs. 9 and 10. Because plane feature is a relatively stable feature in rock mass point clouds, the initial position has low influence on performance of our method. The RMS error is shown in Table 1, and the results show that the proposed method has reliable performance for registration between rock mass point clouds, which contain different noises.

Fig. 11
figure 11

Results of different plane detection methods on rock mass data 1 and data 2. Different colors represent different planes

Table 2 Accuracy and running time of different plane detection methods

4.2 Comparison

4.2.1 Plane detection

Plane detection is an important part of this paper, and the performance of our method highly depends on the quality of planes in rock mass point clouds. Therefore, we first test the performance of the plane detection. To validate the performance of our method, we compared it with three different plane detection methods. The first method (method I) is the optimized RANSAC technique of Schnabel et al. [26]. The performance of RANSAC was improved by the localized sampling strategy and was widely used in some open-source and commercial softwares. The second method (method II) [36] is an combination methods of HT and RG, which was applied to rock mass point clouds for plane detection. The third method (method III) is a simple RG method in open-source PCL. Data 1 (17 planes) and Data 2 (20 planes) are used for performance comparisons.

In order to find correct corresponding planes in the next procedure, the boundary of planes should be precise. Therefore, the detected planes should have clear boundary and do not contain any other planes nor intersect with them. The results of different method are shown in Fig. 11 and Table 2. The experimental results show that RANSAC can detect large-scale planes efficiently, but some mistakes are made at the boundary and the rough regions, shown in Fig. 11b, f. A completed plane is segmented into two or more planes using the simple RG method because of the different roughness and orientation in rock mass point cloud, shown in Fig. 11d, h. Therefore, a single method is not sufficient for plane detection from rock mass point clouds. As shown in Fig. 11c, g, method II takes advantages of both HT and RG methods which has a good performance on detecting planes in rock mass point cloud, but the high computation cost in the procedure of HT influences the efficiency of this algorithm. Compared with other methods, the proposed method can detect complete planes from rock mass point clouds efficiently and accurately. The planes detected by our method have clear boundary and can be used for polygon matching.

Fig. 12
figure 12

Registration result of different methods on different rock mass data

Table 3 REM error and running time of different registration methods

4.2.2 Registration

For performance comparisons, we used ICP and 3D normal distribution transform (3D-NDT) implementation for registration in point clouds, and these methods are available in the PCL [37]. What is more, a fast registration algorithm [19] based on spherical projection and feature extraction (method IV) is also used for comparisons. Both RMS error and running time of each method are computed for performance evaluation.

The result of each method is shown in Fig. 12. As shown in Fig. 12f, j, ICP is a local optimization and converges to a local minimum on data 2. With a good initial position, ICP can obtain an accurate transformation shown in Fig. 12b. Thus, ICP cannot be directly used for rocky points. As shown in Table 3, because of the procedure of coarse registration, the proposed method can obtain an accurate initial position, which can greatly improve the performance of our method. The method of 3D-NDT can improve the efficiency compared with ICP in some scenes, but it still has many difficulties in dealing with rock mass point clouds as shown in Fig. 12g. Method IV has a better performance than the method of ICP and 3D-NDT. This method converts point clouds to images based on spherical projection. SIFT is used to find corresponding relationship on images. Thus, color information is needed in this method. However, in some complex scenes, it is difficult to obtain accurate color information. In addition, at the procedure of spherical projection, some useful information may be removed. The RMS and running error are shown in Table 3. The experimental results show that simple transformation can be computed easily by all the methods. The proposed method has the best performance for registration in dealing with rough rock mass point clouds such as data 3. In summary, compared with other algorithms, the proposed method can be applied to registration between rock mass point cloud efficiently and accurately.

5 Conclusions and future work

This paper focuses on the field of 3D registration between rock mass point clouds. In rock engineering, planes detected from rock mass point clouds are one of the most important features, which can be used for the analysis of rock stability. Thus, a novel automatic registration method based on plane detection and polygon matching is introduced. A triple-region growing method is applied to detect planes on rock mass point clouds. This method is optimized for rock mass scenes and can be directly used on complex rock mass point clouds which contain irregular planes and different degrees of roughness. As plane features are relatively stable features in rock mass point clouds, the proposed method is robust to noise. Thus, compared with the other registration methods, our method is more efficient and accurate in dealing with rock mass point clouds. What is more, planes detected from rock mass point clouds can provide the initial primitives (planes) for 3D reconstruction of rock mass as shown in Fig. 13. However, the proposed method is designed for rock mass scenes and the irregular plane shapes are important criterion to find the correspondences between point clouds. The proposed method may have low performance in other scenes.

Fig. 13
figure 13

Rock mass model reconstructed from data 1. This reconstruction method is based on our registration method, and the result of plane detection as shown in Fig. 5d