Skip to main content
Log in

An efficient surface registration using smartphone

  • Original Paper
  • Published:
Machine Vision and Applications Aims and scope Submit manuscript

Abstract

Gathering 3D object information from the multiple spatial viewpoints typically brings up the problem of surface registration. More precisely, registration is used to fuse 3D data originally acquired from different viewpoints into a common coordinate system. This step often requires the use of relatively bulky and expensive robot arms (turntables) or presents a very challenging problem if constrained to software solutions. In this paper we present a novel surface registration method, motivated by an efficient and user-friendly implementation. Our system is inspired by the idea that three out of generally six registration parameters (degrees of freedom) can be provided in advance, at least to some degree of accuracy, by today’s smartphones. Experimental evaluations demonstrated the successful point cloud registrations of \(\sim \)10,000 points in a matter of seconds. The evaluation included comparison with state-of-the-art descriptor methods. The method’s robustness was also studied and the results using 3D data from a professional scanner showed the potential for real-world applications.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  1. Matabosch, C., Foı, D., Salvi, J., Batlle, E.: Registration of surfaces minimizing error propagation for a one-shot multi-slit hand-held scanner. Pattern Recognit. 41, 2055–2067 (2008)

    Article  MATH  Google Scholar 

  2. Martins, A.F., Bessant, M., Manukyan, L., Milinkovitch, M.C.: R\(^{2}\)OBBIE-3D, a fast robotic high-resolution system for quantitative phenotyping of surface geometry and colour-texture. PLoS One 10(6), e0126740 (2015). doi:10.1371/journal.pone.0126740

    Article  Google Scholar 

  3. https://www.igd.fraunhofer.de/en/Institut/Abteilungen/VHT/Projekte/Automated-3D-Digitisation. Accessed Aug 2015

  4. Levoy, M., Pulli, K., Curless, B., Rusinkiewicz, S., Koller, D., Pereira, L., Ginzton, M., Anderson, S., Davis, J., Ginsberg, J., Shade, J., Fulk, D.: The digital michelangelo project: 3D scanning of large statues. In: Siggraph 2000, Computer Graphics Proceedings, pp. 131–144. ACM Press/ACM SIGGRAPH/Addison Wesley Longman (2000)

  5. Salvi, J., Matabosch, C., Fofi, D., Forest, F.: A review of recent range image registration methods with accuracy evaluation. Image Vis. Comput. 25, 578–596 (2007)

    Article  Google Scholar 

  6. Aiger, D., Mitra, N.J.: Daniel Cohen-Or. 4-points congruent sets for robust surface registration. In: ACM SIGGRAPH, pp. 1–10 (2008)

  7. Besl, P., McKay, N.: A method for registration of 3-D shapes. IEEE Trans. Pattern Anal. Mach. Intell. 14, 239–256 (1992)

    Article  Google Scholar 

  8. Rusinkiewicz, S., Levoy, M.: Efficient variants of the ICP algorithm. In: 3rd International Conference on 3-D Digital Imaging and Modeling, pp. 145–152 (2011)

  9. Mohammadzade, H., Hatzinakos, D.: Iterative closest normal point for 3D face recognition. IEEE Trans. Pattern Anal. Mach. Intell. 36, 381–397 (2013)

    Article  Google Scholar 

  10. Diez, Y., Martí, J., Salvi, J.: Hierarchical normal space sampling to speed up point cloud coarse matching. Pattern Recognit. Lett. 33, 2127–2213 (2012)

    Article  Google Scholar 

  11. Wald, I., Havran, V.: On building fast kd-trees for ray tracing, and on doing that in O(NlogN). In: IEEE Symposium on Interactive Ray Tracing, pp. 61–69 (2006)

  12. Project tango. https://www.google.com/atap/projecttango/#project. Accessed Mar 2015

  13. Structure Sensor. http://structure.io/. Accessed March 2015

  14. Huang, Q.-X., Adams, B., Wicke, M., Guibas, L.J.: Non-rigid registration under isometric deformations. Comput. Graph. Forum 27, 1449–1457 (2008)

    Article  Google Scholar 

  15. Lian, Z., et al.: A comparison of methods for non-rigid 3d shape retrieval. Pattern Recognit. 46, 449–461 (2013)

    Article  Google Scholar 

  16. Alt, H., Mehlhorn, K., Wagener, H., Welzl, E.: Congruence, similarity, and symmetries of geometric objects. Discret. Comput. Geom. 3, 237–256 (1988)

    Article  MathSciNet  MATH  Google Scholar 

  17. Chung, D.H., Yun, D., Lee, S.U.: Registration of multiple-range views using the reverse-calibration technique. Pattern Recognit. 31, 457–464 (1998)

    Article  Google Scholar 

  18. Santamaría, J., Cordon, O., Damas, S.: A comparative study of state-of-the-art evolutionary image registration methods for 3D modelling. Comput. Vis. Image Underst. 115, 1340–1354 (2011)

    Article  Google Scholar 

  19. Mian, A., Bennamoun, M., Owens, R.: On the Repeatability and quality of keypoints for local feature-based 3D object retrieval from cluttered scenes. Int. J. Comput. Vis. 89, 348–361 (2010)

    Article  Google Scholar 

  20. Makadia, A., Patterson, A., Daniilidis, K.: Fully automatic registration of 3D point clouds. In: Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol. I, pp. 1297–1304 (2006)

  21. Wyngaerd, J.V., Van Gool, L.: Automatic crude patch registration: toward automatic 3d model building. Comput. Vis. Image Underst. 87, 8–26 (2002)

    Article  MATH  Google Scholar 

  22. Stamos, I., Leordeanu, M.: Automated feature-based range registration of urban scenes of large scale. In: IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol. 2, pp. 555–561 (2003)

  23. Park, S.-Y., Choi, S.-I., Kim, J., Chae, J.S.: Real-time 3D registration using GPU. Mach. Vis. Appl. 22, 837–850 (2011)

    Article  Google Scholar 

  24. Tanskanen, P., Kolev, K., Meier, L., Camposeco, F., Saurer, O., Pollefeys, M.: Live metric 3D reconstruction on mobile phones. In: ICCV ’13 Proceedings of the 2013 IEEE International Conference on Computer Vision, pp. 65–72

  25. Nießner, M., Dai, A., Fisher, M.: Combining inertial navigation and ICP for real-time 3D surface reconstruction. Eurographics 2014, 13–16 (2014)

    Google Scholar 

  26. Feldmar, J., Ayache, N.: Rigid, affine and locally affine registration of free-form surfaces. Technical Report of INRIA, Sophia Antipolis (1994)

  27. http://www.gsmarena.com/htc_wildfire-3337.php. Accessed March 2015

  28. Petković, T., Pribanić, T., Donlić, M.: The self-equalizing De Bruijn sequence for 3D profilometry. In: Proceedings of the 26th British Machine Vision Conference (BMVC 2015), September 7–10, Swansea, UK, pp. 1–11

  29. Salvi, J., Fernandez, S., Pribanic, T., Llado, X.: A state of the art in structured light patterns for surface profilometry. Pattern Recognit. 43, 2666–2680 (2010)

    Article  MATH  Google Scholar 

  30. Pribanic, T., Mrvos, S., Salvi, J.: Efficient multiple phase shift patterns for dense 3D acquisition in structured light scanning. Image Vis. Comput. 28, 1255–1266 (2010)

    Article  Google Scholar 

  31. Amenta, N., Choi, S., Kolluri, R.K.: The power crust, unions of balls, and the medial axis transform. Comput. Geom. Theory Appl. 19, 127–153 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  32. http://meshlab.sourceforge.net/. Accessed March 2015

  33. Pedley, M.: Tilt sensing using a three-axis accelerometer, AN3461, Freescale SemiCondutor, pp. 1–22 (2013)

  34. Ozyagcilar, T.: Implementing a tilt-compensated eCompass using accelerometer and magnetometer sensors. AN4248, Freescale SemiCondutor, pp. 1–21 (2008)

  35. MTi and MTx User Manual and Technical Documentation. http://www.xsens.com/. Accessed March 2015

  36. Gotcha 3DAngel sculpture. http://www.4ddynamics.com/examples/. Accessed March 2015

  37. Johnson, A.E., Hebert, M.: Using spin images for efficient object recognition in cluttered 3D scenes. IEEE Trans. Pattern Anal. Mach. Intell. 21(5), 433–449 (1999)

    Article  Google Scholar 

  38. Tombari, F., Salti, S., Di Stefano, L.: Unique signatures of histograms for local surface description. In: Computer Vision—ECCV 2010, pp. 356–369. Springer, Berlin (2010)

  39. http://graphics.stanford.edu/data/3Dscanrep/. Accessed March 2015

  40. Shirmohammadi, B., Taylor, C.J.: Self-localizing smart camera networks. ACM Trans. Embed. Comput. Syst. 8, 1–26 (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tomislav Pribanić.

Appendix: Computing orientation from the accelerometer and magnetometer measurements

Appendix: Computing orientation from the accelerometer and magnetometer measurements

For the completeness of the proposed method, in this section we provide a general computational framework of how to compute orientation data directly from both the accelerometer and the magnetometer measurements. For convenience we have proposed our method using a smartphone. However, there may be researches working in the applications where accelerometer and magnetometer are already provided as stand-alone pieces of hardware and which may be then preferred over a smartphone. It is useful to note that the orientation sensor is basically a so-called logical sensor, what means that the output data delivered by the sensor are the result of data gathered by the physical sensor, e.g., accelerometer and magnetometer, including some processing and filtering. Some professional orientation sensors include additional physical sensors such as gyroscopes for data stability under dynamic conditions [35]. However, for our work, a simple accelerometer and magnetometer will suffice. Accelerometers are devices sensitive to the difference between the linear acceleration of the sensor and the local gravitational field, whereas magnetometers measure the components of earth’s magnetic field.

We define an orientation sensor (phone) coordinate system as depicted in Fig. 2 (for simplicity a smartphone is shown again, but it should be clear that generally it can be any device containing an accelerometer and a magnetometer). It is also assumed that the accelerometer and magnetometer, contained inside the physical sensor, are aligned with the sensor coordinate system. It is convenient to define a sensor reference position using gravitational and magnetic field vectors (Fig. 2), where the sensor in its reference position is positioned flat and facing northwards. Consequently, all sensor rotations are expressed with respect to that reference. With this assumption, a three-axis accelerometer in the earth’s gravitational field, and undergoing no linear acceleration, will have the output \(\mathbf{G}_{\mathbf{p}}\) given by:

$$\begin{aligned} G_\mathrm{p}= \left[ \begin{array}{l} G_x\\ G_y\\ G_z\\ \end{array}\right] =R_\mathrm{S} \cdot \left[ \begin{array}{l} 0\\ 0\\ g\\ \end{array}\right] \end{aligned}$$
(6)

where rotation matrix \(\mathbf{R}_{\mathbf{S}}\) describes a sensor orientation from the reference position and \(g=9.8065\) ms\(^{-2}\) is the gravitational constant. \(\mathbf{R}_{\mathbf{S}}\) is composed as the product of three basic rotations \(\mathbf{R}_{\mathbf{X}}\), \(\mathbf{R}_{\mathbf{Y}}\) and \(\mathbf{R}_{\mathbf{Z}}\) about \(X_{\mathrm{S}}\), \(Y_{\mathrm{S}}\) and \(Z_{\mathrm{S}}\) axis, respectively; so that each rotation is defined by the corresponding rotation angle (Fig. 2):

$$\begin{aligned}&R_X =\left[ {{\begin{array}{c@{\quad }c@{\quad }c} 1 &{} 0 &{} 0 \\ 0 &{} {\cos \hbox {Pitch}} &{} {-\sin \hbox {Pitch}} \\ 0 &{} {\sin \hbox {Pitch}} &{} {\cos \hbox {Pitch}} \\ \end{array} }} \right] \end{aligned}$$
(7)
$$\begin{aligned}&R_Y =\left[ {{\begin{array}{c@{\quad }c@{\quad }c} {\cos \hbox {Roll}} &{} 0 &{} {\sin \hbox {Roll}} \\ 0 &{} 1 &{} 0 \\ {-\sin \hbox {Roll}} &{} 0 &{} {\cos \hbox {Roll}} \end{array} }} \right] \end{aligned}$$
(8)
$$\begin{aligned}&R_Z =\left[ {{\begin{array}{c@{\quad }c@{\quad }c} {\cos \hbox {Yaw}} &{} {-\sin \hbox {Yaw}} &{} 0 \\ {\sin \hbox {Yaw}} &{} {\cos \hbox {Yaw}} &{} 0 \\ 0 &{} 0 &{} 1 \end{array} }} \right] \end{aligned}$$
(9)

There are six possible ways of combining these three rotation matrices to compose the rotation matrix \(\mathbf{R}_{\mathbf{S}}\), acknowledging that a different rotation ordering would yield to a different set of Yaw (azimuth), Pitch and Roll rotation angles. The question is: Can we choose any of this six possible rotation orderings and based on Eq. (6) be able to retrieve the rotation angles? The matter of fact is that a three-component accelerometer vector reading \(\mathbf{G}_{\mathbf{P}}\) also needs (ideally) to satisfy the following constraint:

$$\begin{aligned} \sqrt{G_x^2 +G_y^2 +G_z^2 } =g=9.8060~\hbox {ms}^{-2} \end{aligned}$$
(10)

Hence, there are actually only two degrees of freedom, which would be insufficient to find unique values for all three Yaw, Pitch and Roll angles, based on \(\mathbf{G}_{\mathbf{P}}\) only. Fortunately, two out of six rotation orderings (xyz and yxz rotation order) yield a functional form of Eq. (6) dependent on two rotation angles only: Roll and Pitch. More specifically, for xyz rotation order, i.e., \(\mathbf{R}_{\mathbf{S}}=\mathbf{R}_{\mathbf{X}}\cdot \mathbf{R}_{\mathbf{Y}}\cdot \mathbf{R}_{\mathbf{Z}}\), we obtain:

$$\begin{aligned}&{G_\mathrm{p}} = \left[ {\begin{array}{c} {{G_x}} \\ {{G_y}} \\ {{G_z}} \\ \end{array} } \right] = \left[ {\begin{array}{c} {g \cdot \sin \hbox {Roll}} \\ { - g \cdot \cos \hbox {Roll} \cdot \sin \hbox {Pitch}} \\ {g \cdot \cos \hbox {Roll} \cdot \cos \hbox {Pitch}} \end{array} } \right] \end{aligned}$$
(11)
$$\begin{aligned}&\tan \hbox {Pitch} = \frac{{ - {G_y}}}{{{G_z}}}\end{aligned}$$
(12)
$$\begin{aligned}&\tan \hbox {Roll} = \frac{{{G_x}}}{{\sqrt{G_y^2 + G_z^2} }} \end{aligned}$$
(13)

Then, two rotation angles can be retrieved as:

$$\begin{aligned}&\hbox {Pitch} = a\tan 2( - {G_y},~{G_z})\end{aligned}$$
(14)
$$\begin{aligned}&\hbox {Roll} = a\tan 2\frac{{{G_x}}}{{\sqrt{G_y^2 + G_z^2} }} \end{aligned}$$
(15)

where Android convention is used restricting Pitch angle in the range between \(-180^{\circ }\) and \(180^{\circ }\) (\(a\tan 2\) here represents the tangent inverse function in the range \(-180^{\circ }\) and \(180^{\circ }\)), and Roll angle in the range between \(-90^{\circ }\) and \(90^{\circ }\). It is worth noting that in practice when \(G_y\approx 0\) and \(G_z\approx 0,\) computing the inverse tangent function of Eq. (12) becomes unstable. There is no perfect solution for this problem but one common approach is to use instead of (12) the following approximate expression to compute the Pitch angle:

$$\begin{aligned} \tan \hbox {Pitch} = \frac{{ - {G_y}}}{{\sqrt{\mu \cdot G_x^2 + G_z^2} }} \end{aligned}$$
(16)

where typically \(\mu =0.01\) [34]. The preceding text demonstrated that accelerometer alone is sufficient to reveal two out of three orientation angles, needed for the proposed method. On those findings we build next how to recover the remaining orientation Yaw angle.

A three-axis magnetometer in the earth’s magnetic field will have output \(\mathbf{B}_{\mathbf{p}}\) given by:

$$\begin{aligned} {B_\mathrm{p}} = \left[ {\begin{array}{c} {{B_x}} \\ {{B_y}} \\ {{B_z}} \\ \end{array} } \right] = {R_\mathrm{S}} \cdot \left[ {\begin{array}{c} 0 \\ {B \cdot \cos \delta } \\ { - B \cdot \sin \delta } \\ \end{array} } \right] \end{aligned}$$
(17)

where rotation matrix \(\mathbf{R}_{\mathbf{S}}\) describes the sensor orientation from the reference position (Fig. 2), B is the geomagnetic field strength which varies over the earth’s surface, and \(\delta \) is the angle of inclination of the geomagnetic field measured downwards from horizontal and varies over the earth’s surface, too. Fortunately, both \(\delta \) and B cancel out during the subsequent computation. Assuming \(\mathbf{R}_{\mathbf{S}}\) is defined through the three successive rotations \(\mathbf{R}_{\mathbf{X}}\), \(\mathbf{R}_{\mathbf{Y}}\), and \(\mathbf{R}_{\mathbf{Z}}\) around system axes X, Y and Z, respectively, and using xyz rotation order, Eq. (17) can be re-written as:

$$\begin{aligned} R_Y^{ - 1} \cdot R_X^{ - 1} \cdot \left[ {\begin{array}{c} {{B_x}} \\ {{B_y}} \\ {{B_z}} \\ \end{array} } \right]= & {} {R_Z} \cdot \left[ {\begin{array}{c} 0 \\ {B \cdot \cos \delta } \\ { - B \cdot \sin \delta } \\ \end{array} } \right] \nonumber \\= & {} \left[ {\begin{array}{c} { - B \cdot \cos \delta \cdot \sin \hbox {Yaw}} \\ {B \cdot \cos \delta \cdot \cos \hbox {Yaw}} \\ { - B \cdot \sin \delta } \end{array} } \right] \end{aligned}$$
(18)

Since two rotation angles Pitch and Roll have already been found using accelerometers measurements, after some algebraic manipulation of (18), the Yaw angle is computed as:

$$\begin{aligned}&{B_2} = {B_x} \cdot \cos \hbox {Roll} - {B_z} \cdot \cos \hbox {Pitch} \cdot \sin \hbox {Roll}\nonumber \\&\qquad \quad + {B_y} \cdot \sin {\text {Pitch}} \cdot \sin \hbox {Roll}\nonumber \\&{B_1} = {B_y} \cdot \cos \hbox {Pitch} + {B_z} \cdot \sin \hbox {Pitch}\nonumber \\&\hbox {Yaw}= a\tan 2( -{B_2},{B_1}) \end{aligned}$$
(19)

Equation (19) provides Yaw readings in the range between \(-180^{\circ }\) and \(180^{\circ }\), though the Android version we have been experimenting with appears to use a convention that transforms Yaw readings into the range between \(0^{\circ }\) and \(360^{\circ }\). We conclude that all three rotation angles, required initially by the proposed registration method, can be neatly retrieved in general case using combined accelerometer and magnetometer measurements.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Pribanić, T., Diez, Y., Roure, F. et al. An efficient surface registration using smartphone. Machine Vision and Applications 27, 559–576 (2016). https://doi.org/10.1007/s00138-016-0751-0

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00138-016-0751-0

Keywords

Navigation