Skip to main content
Log in

Complete Singularity Analysis for the Perspective-Four-Point Problem

  • Published:
International Journal of Computer Vision Aims and scope Submit manuscript

Abstract

This paper is concerned with pose estimation and visual servoing from four points. We determine the configurations for which the corresponding Jacobian matrix becomes singular, leading to inaccurate and unstable results. Using an adequate representation and algebraic geometry, it is shown that, for any orientation between the camera and the object, there are always two to six singular locations of the camera in the generic case where the points are not coplanar, corresponding to the intersection of four cylinders. The particular case where the four points are coplanar is also characterized. Furthermore, some realistic example configurations are considered to substantiate the theory and to demonstrate failure cases in pose estimation and image-based visual servoing when the camera approaches a singularity.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

Notes

  1. Under a certain generic condition, which in this case is reduced to the cylinders being different from each other, and holds in any case for \(d_5\ne 0\).

  2. We are considering varieties in \({\mathbb {R}}[d_1,d_2,d_3,d_4,d_5,X,Y,Z]\) in this discussion.

  3. Through the rest of this section we are only regarding XYZ as variables, so we are considering varieties in \({\mathbb {R}}^3\).

  4. Gröbner basis with lexicographical ordering renders the system triangular and is analogous to the triangular form used by Gaussian elimination algorithm to solve linear equations (see Appendix B for a formal definition).

  5. Interested reader can perform all simulations using the code available on https://github.com/oKermorgant/singularity_4points.

  6. For a polynomial of degree m in one variable, \(f=a_0x^m+a_1x^{m-1}+\ldots +a_m\), \(a_0x^m\) is the leading term. The reader is directed to Cox et al. (2007) for further details on Gröbner basis and definition of the leading term in case of multi-variate polynomials.

References

  • Ben-Horin, P., & Shoham, P. (2006). Singularity analysis of a class of parallel robots based on Grassmann–Cayley algebra. Mechanism and Machine Theory, 41(8), 958–970.

    Article  MathSciNet  Google Scholar 

  • Bézout, E. (1779). Théorie générale des équations algébriques. (Paris).

  • Briot, S., & Martinet, P. (2013). Minimal representation for the control of Gough-Stewart platforms via leg observation considering a hidden robot model. In Proceedings of the 2013 IEEE international conference on robotics and automation (ICRA 2013), Karlsruhe, Germany.

  • Briot, S., Martinet, P., & Rosenzveig, V. (2015). The hidden robot: An efficient concept contributing to the analysis of the controllability of parallel robots in advanced visual servoing techniques. IEEE Transactions on Robotics, 31(6), 1337–1352.

    Article  Google Scholar 

  • Briot, S., Rosenzveig, V., Martinet, P., Özgür, E., & Bouton, N. (2016). Minimal representation for the control of parallel robots via leg observation considering a hidden robot model. Mechanism and Machine Theory, 106, 115–147.

    Article  Google Scholar 

  • Briot, S., Chaumette, F., & Martinet, P. (2017a). Revisiting the determination of the singularity cases in the visual servoing of image points through the concept of “hidden robot”. IEEE Transactions on Robotics, 33(2), 536–546.

    Article  Google Scholar 

  • Briot, S., Martinet, P., & Chaumette, F. (2017b). Singularity cases in the visual servoing of three image lines. IEEE Robotics and Automation Letters, 2(2), 412–419.

    Article  Google Scholar 

  • Burschka, D., Geiman, J., & Hager, G. (2003). Optimal landmark configuration for vision-based control of mobile robots. Proceedings—IEEE International Conference on Robotics and Automation, 3, 3917–3922.

    Google Scholar 

  • Chaumette, F., & Hutchinson, S. (2008). Visual servoing and visual tracking, chapter 24 of handbook of robotics. Springer.

  • Corke, P. (2010). Spherical image-based visual servo and structure estimation. In Proceedings of the 2010 IEEE international conference on robotics and automation (ICRA 2010), Anchorage (pp. 5550–5555).

  • Cox, D. A., Little, J., & O’Shea, D. (2007). Ideals, varieties, and algorithms: An introduction to computational algebraic geometry and commutative algebra, 3/e (undergraduate texts in mathematics). Berlin, Heidelberg: Springer.

    Book  Google Scholar 

  • DeMenthon, D., & Davis, L. (1995). Model-based object pose in 25 lines of codes. International Journal of Computer Vision, 15, 123–141.

    Article  Google Scholar 

  • Gao, X. S., Hou, X. R., Tang, J., & Cheng, H. F. (2003). Complete solution classification for the perspective-three-point problem. IEEE Transactions on Pattern Analysis and Machine Intelligence, 25(8), 930–943.

    Article  Google Scholar 

  • Hamel, T., & Mahony, R. (2002). Visual servoing of an under-actuated dynamic rigid-body system: An image based approach. IEEE Transactions on Robotics and Automation, 18, 187–198.

    Article  Google Scholar 

  • Hamel, T., & Samson, C. (2017). Riccati observers for the non-stationary PnP problem. IEEE Transactions on Automatic Control, 63(3), 726–741.

    Article  Google Scholar 

  • Horaud, R., Conio, B., Leboulleux, O., & Lacolle, B. (1989). An analytic solution for the perspective 4-point problem. Computer Vision, Graphics, and Image Processing, 47(1), 33–44.

    Article  Google Scholar 

  • Hutchinson, S., Hager, G., & Corke, P. (1996). A tutorial on visual servo control. IEEE Transactions on Robotics and Automation, 12, 651–670.

    Article  Google Scholar 

  • Iwatsuki, M., & Okiyama, N. (2005). A new formulation for visual servoing based on cylindrical coordinate system. IEEE Transactions on Robotics, 21(2), 266–273.

    Article  Google Scholar 

  • Kalkbrener, M. (1997). On the stability of gröbner bases under specializations. Journal of Symbolic Computation, 24(1), 51–58.

    Article  MathSciNet  Google Scholar 

  • Kneip, L., & Furgale, P. (2014). Opengv: A unified and generalized approach to real-time calibrated geometric vision. In 2014 IEEE international conference on robotics and automation (ICRA), IEEE (pp. 1–8).

  • Kneip, L., Li, H., & Seo, Y. (2014). Upnp: An optimal o (n) solution to the absolute pose problem with universal applicability. In European conference on computer vision (pp. 127–142). Springer.

  • Lepetit, V., Moreno-Noguer, F., & Fua, P. (2009). Epnp: An accurate o(n) solution to the pnp problem. International Journal of Computer Vision, 81(2), 155.

    Article  Google Scholar 

  • Liu, M., Pradalier, C., & Siegwart, R. (2010). A bearing-only 2D/3D-homing method under a visual servoing framework. In Proceedings of the 2010 IEEE international conference on robotics and automation (ICRA 2010), Anchorage (pp. 4062–4067).

  • Longuet-Higgins, H. C., & Prazdny, K. (1980). The interpretation of a moving retinal image. Proceedings of the Royal Society of London, Section B, 208, 385–397.

  • Lowe, D. G. (1991). Fitting parameterized three-dimensional models to images. IEEE Transactions on Pattern Analysis & Machine Intelligence, 13(5), 441–450.

    Article  Google Scholar 

  • Lu, C., Hager, G., & Mjolness, E. (2010). Fast and globally convergent pose estimation from video images. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(6), 610–622.

    Article  Google Scholar 

  • Marchand, E., & Chaumette, F. (2002). Virtual visual servoing: A framework for real-time augmented reality. Computer Graphics Forum, 21(3), 289–298.

    Article  Google Scholar 

  • Marchand, E., Spindler, F., & Chaumette, F. (2005). Visp for visual servoing: A generic software platform with a wide class of robot control skills. IEEE Robotics and Automation Magazine, 12(4), 40–52.

    Article  Google Scholar 

  • Marchand, E., Uchiyama, H., & Spindler, F. (2016). Pose estimation for augmented reality: A hands-on survey. IEEE Trans on Visualization and Computer Graphics, 22(12), 2633–2651.

    Article  Google Scholar 

  • Merlet, J. P. (2006). Parallel robots (2nd ed.). Berlin: Springer.

    MATH  Google Scholar 

  • Michel, H., & Rives, P. (1993). Singularities in the determination of the situation of a robot effector from the perspective view of 3 points. Tech. rep., INRIA.

  • Papanikolopoulos, N. (1995). Selection of features and evaluation of visual measurements during robotics visual servoing tasks. Journal of Intelligent and Robotics Systems, 13(3), 279–304.

    Article  Google Scholar 

  • Persson, M., & Nordberg, K. (2018). Lambda twist: An accurate fast robust perspective three point (p3p) solver. In Proceedings of the European conference on computer vision (ECCV) (pp. 318–332).

  • Rosenzveig, V., Briot, S., Martinet, P., Özgür, E., & Bouton, N. (2014). A method for simplifying the analysis of leg-based visual servoing of parallel robots. In Proc. 2014 IEEE int. conf. on robotics and automation (ICRA 2014), Hong Kong, China.

  • Tahri, O., & Chaumette, F. (2005). Point-based and region-based image moments for visual servoing of planar objects. IEEE Transactions on Robotics, 21(6), 1116–1127.

    Article  Google Scholar 

  • Tatsambon Fomena, R., Tahri, O., & Chaumette, F. (2011). Distance-based and orientation-based visual servoing from three points. IEEE Transactions on Robotics, 27(2), 256–267.

    Article  Google Scholar 

  • Thompson, E. (1966). Space resection: Failure cases. The Photogrammetric Record, 5(27), 201–204.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Abhilash Nayak.

Additional information

Communicated by V. Lepetit.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This work was supported by the project PROMPT funded by the RFI AtlanSTIC2020, and by the French ANR project SESAME (funding ID: ANR-18-CE33-0011).

Appendices

Appendices

1.1 A. Cylinders Equations

Equations of the four cylinders \(C_{ijk}\) containing points \(M_i,M_j,M_k\):

$$\begin{aligned} C_{123}&=-{X}^{2}d_{{2}}+Xd_{{2}}-{Y}^{2}d_{{2}}+ \left( {d_{{1}}}^{2} +{d_{{2}}}^{2}-d_{{1}} \right) Y, \end{aligned}$$
(47)
$$\begin{aligned} C_{124}&= \left( -{d_{{4}}}^{2}-{d_{{5}}}^{2} \right) {X}^{2}\nonumber \\&\quad +\left( {d_{{4}}}^{2}+{d_{{5}}}^{2} \right) X-{Y}^{2}{d_{{4}}}^{2} -2\,YZd_{{4}}d_{{5}} \nonumber \\&\quad +d_{{4}} \left( {d_{{3}}}^{2}+{d_{{4}}}^{2}+{d_{{5}}}^{2}-d_{{3}}\right) Y\nonumber \\&\quad -{Z}^{2}{d_{{5}}}^{2}+d_{{5}} \left( {d_{{3}}}^{2} +{d_{{4}}}^{2}+{d_{{5}}}^{2}-d_{{3}} \right) Z, \end{aligned}$$
(48)
$$\begin{aligned} C_{134}&= \left( -{d_{{1}}}^{2}{d_{{4}}}^{2}-{d_{{1}}}^{2}{d_{{5}}}^{2} +2\,d_{{1}}d_{{2}}d_{{3}}d_{{4}}-{d_{{2}}}^{2}{d_{{3}}}^{2} \right) {X}^{2}\nonumber \\&\quad -2\,d_{{1}}d_{{2}}{d_{{5}}}^{2}XY+2\,d_{{2}}d_{{5}} \left( d_{{1}}d_{{4} }-d_{{2}}d_{{3}} \right) ZX\nonumber \\&\quad + \left( {d_{{1}}}^{3}{d_{{4}}}^{2}+{d_{{1}}}^{3}{d_{{5}}}^{2} -{d_{{1}}}^{2}d_{{2}}d_{{3}}d_{{4}}+d_{{1}}{d_{{2}}}^{2}{d_{{4}}}^{2}\right. \nonumber \\&\quad +d_{{1}}{d_{{2}}}^{2}{d_{{5}}}^{2}-d_{{1}}d_{{2}}{d_{{3}}}^{2}d_{{4}} -d_{{1}}d_{{2}}{d_{{4}}}^{3}-d_{{1}}d_{{2}}d_{{4}}{d_{{5}}}^{2}\nonumber \\&\quad \left. -{d_{{2}}}^{3}d_{{3}}d_{{4}}+{d_{{2}}}^{2}{d_{{3}}}^{3} +{d_{{2}}}^{2}d_{{3}}{d_{{4}}}^{2}+{d_{{2}}}^{2}d_{{3}}{d_{{5}}}^{2}\right) X\nonumber \\&\quad + \left( -{d_{{1}}}^{2}{d_{{4}}}^{2}+2\,d_{{1}}d_{{2}}d_{{3}}d_{{4}} -{d_{{2}}}^{2}{d_{{3}}}^{2}-{d_{{2}}}^{2}{d_{{5}}}^{2}\right) {Y}^{2}\nonumber \\&\quad -2\,d_{{1}}d_{{5}} \left( d_{{1}}d_{{4}}-d_{{2}}d_{{3}} \right) ZY\nonumber \\&\quad + \left( -{d_{{1}}}^{3}d_{{3}}d_{{4}}+{d_{{1}}}^{2}d_{{2}} {d_{{3}}}^{2}+{d_{{1}}}^{2}d_{{2}}{d_{{5}}}^{2}+{d_{{1}}}^{2}{d_{{3}}} ^{2}d_{{4}}\right. \nonumber \\&\quad +{d_{{1}}}^{2}{d_{{4}}}^{3} +{d_{{1}}}^{2}d_{{4}}{d_{{5}}}^{2} -d_{{1}}{d_{{2}}}^{2}d_{{3}}d_{{4}} -d_{{1}}d_{{2}}{d_{{3}}}^{3}\nonumber \\&\quad \left. -d_{{1}}d_{{2}}d_{{3}}{d_{{4}}}^{2}-d_{{1}}d_{{2}}d_{{3}}{d_{{5}}}^{2} +{d_{{2}}}^{3}{d_{{3}}}^{2}+{d_{{2}}}^{3}{d_{{5}}}^{2} \right) Y\nonumber \\&\quad -{d_{{5}}}^{2} \left( {d_{{1}}}^{2}+{d_{{2}}}^{2} \right) {Z}^{2}\nonumber \\&\quad -d_{{5}} \left( {d_{{1}}}^{2}+{d_{{2}}}^{2} \right) \left( d_{{1}}d_{{3}}+d_{{2}}d_{{4}}-{d_{{3}}}^{2} -{d_{{4}}}^{2}-{d_{{5}}}^{2} \right) Z, \end{aligned}$$
(49)
$$\begin{aligned} C_{234}&=-d_{{5}} \left( {d_{{1}}}^{3}d_{{3}}+{d_{{1}}}^{2}d_{{2}}d_{{4}} -{d_{{1}}}^{2}{d_{{3}}}^{2}-{d_{{1}}}^{2}{d_{{4}}}^{2}\right. \nonumber \\&\quad -{d_{{1}}}^{2}{d_{{5}}}^{2}+d_{{1}}{d_{{2}}}^{2}d_{{3}} +{d_{{2}}}^{3}d_{{4}}-{d_{{2}}}^{2}{d_{{3}}}^{2}\nonumber \\&\quad -{d_{{2}}}^{2}{d_{{4}}}^{2}-{d_{{2}}}^{2}{d_{{5}}}^{2}-{d_{{1}}}^{3} -{d_{{1}}}^{2}d_{{3}}-d_{{1}}{d_{{2}}}^{2}+2\,d_{{1}}{d_{{3}}}^{2}\nonumber \\&\quad +2\,d_{{1}}{d_{{4}}}^{2}+2\,d_{{1}}{d_{{5}}}^{2}-{d_{{2}}}^{2}d_{{3}}\nonumber \\&\quad +2\,{d_{{1}}}^{2}-d_{{1}}d_{{3}}+2\,{d_{{2}}}^{2}-d_{{2}}d_{{4}}\nonumber \\&\quad \left. -{d_{{3}}}^{2}-{d_{{4}}}^{2}-{d_{{5}}}^{2}-d_{{1}}+d_{{3}} \right) Z\nonumber \\&\quad +\left( -{d_{{1}}}^{3}d_{{3}}d_{{4}}+{d_{{1}}}^{2}d_{{2}}{d_{{3}}}^{2} +{d_{{1}}}^{2}d_{{2}}{d_{{5}}}^{2}+{d_{{1}}}^{2}{d_{{3}}}^{2}d_{{4}}\right. \nonumber \\&\quad +{d_{{1}}}^{2}{d_{{4}}}^{3}+{d_{{1}}}^{2}d_{{4}}{d_{{5}}}^{2} -d_{{1}}{d_{{2}}}^{2}d_{{3}}d_{{4}}-d_{{1}}d_{{2}}{d_{{3}}}^{3}\nonumber \\&\quad -d_{{1}}d_{{2}}d_{{3}}{d_{{4}}}^{2}-d_{{1}}d_{{2}}d_{{3}}{d_{{5}}}^{2} +{d_{{2}}}^{3}{d_{{3}}}^{2}+{d_{{2}}}^{3}{d_{{5}}}^{2}+{d_{{1}}}^{3}d_{{4}}\nonumber \\&\quad -2\,{d_{{1}}}^{2}d_{{2}}d_{{3}}+{d_{{1}}}^{2}d_{{3}}d_{{4}} +d_{{1}}{d_{{2}}}^{2}d_{{4}}+d_{{1}}d_{{2}}{d_{{3}}}^{2}\nonumber \\&\quad +d_{{1}}d_{{2}}{d_{{4}}}^{2}+d_{{1}}d_{{2}}{d_{{5}}}^{2} -2\,d_{{1}}{d_{{3}}}^{2}d_{{4}}-2\,d_{{1}}{d_{{4}}}^{3}-2\,d_{{1}}d_{{4}}{d_{{5}}}^{2}\nonumber \\&\quad -2\,{d_{{2}}}^{3}d_{{3}}+{d_{{2}}}^{2}d_{{3}}d_{{4}} +d_{{2}}{d_{{3}}}^{3}+d_{{2}}d_{{3}}{d_{{4}}}^{2}+d_{{2}}d_{{3}}{d_{{5}}}^{2}\nonumber \\&\quad +{d_{{1}}}^{2}d_{{2}}-2\,{d_{{1}}}^{2}d_{{4}}+d_{{1}}d_{{2}}d_{{3}}\nonumber \\&\quad +d_{{1}}d_{{3}}d_{{4}}+{d_{{2}}}^{3}-{d_{{2}}}^{2}d_{{4}}-2\,d_{{2}}{d_{{3}}}^{2}\nonumber \\&\quad -d_{{2}}{d_{{4}}}^{2}-2\,d_{{2}}{d_{{5}}}^{2}+{d_{{3}}}^{2}d_{{4}}\nonumber \\&\quad +{d_{{4}}}^{3}+d_{{4}}{d_{{5}}}^{2}-d_{{1}}d_{{2}}+d_{{1}}d_{{4}}+d_{{2}}d_{{3}}\nonumber \\&\quad \left. -d_{{3}}d_{{4}} \right) Y-{d_{{5}}}^{2} \left( {d_{{1}}}^{2}+{d_{{2}}}^{2}-2\,d_{{1}}+1 \right) {Z}^{2}\nonumber \\&\quad + \left( {d_{{1}}}^{3}{d_{{4}}}^{2}+{d_{{1}}}^{3}{d_{{5}}}^{2} -{d_{{1}}}^{2}d_{{2}}d_{{3}}d_{{4}}+d_{{1}}{d_{{2}}}^{2}{d_{{4}}}^{2}\right. \nonumber \\&\quad +d_{{1}}{d_{{2}}}^{2}{d_{{5}}}^{2}-d_{{1}}d_{{2}}{d_{{3}}}^{2}d_{{4}} -d_{{1}}d_{{2}}{d_{{4}}}^{3}-d_{{1}}d_{{2}}d_{{4}}{d_{{5}}}^{2}\nonumber \\&\quad -{d_{{2}}}^{3}d_{{3}}d_{{4}}+{d_{{2}}}^{2}{d_{{3}}}^{3} +{d_{{2}}}^{2}d_{{3}}{d_{{4}}}^{2}+{d_{{2}}}^{2}d_{{3}}{d_{{5}}}^{2}\nonumber \\&\quad +{d_{{1}}}^{2}d_{{2}}d_{{4}}-{d_{{1}}}^{2}{d_{{4}}}^{2} -{d_{{1}}}^{2}{d_{{5}}}^{2}+{d_{{2}}}^{3}d_{{4}}-{d_{{2}}}^{2}{d_{{3}}}^{2}\nonumber \\&\quad -2\,{d_{{2}}}^{2}{d_{{4}}}^{2}-2\,{d_{{2}}}^{2}{d_{{5}}}^{2} +d_{{2}}{d_{{3}}}^{2}d_{{4}}+d_{{2}}{d_{{4}}}^{3}+d_{{2}}d_{{4}}{d_{{5}}}^{2}\nonumber \\&\quad +d_{{1}}d_{{2}}d_{{4}}-d_{{1}}{d_{{4}}}^{2}-d_{{1}}{d_{{5}}}^{2} -{d_{{2}}}^{2}d_{{3}}+d_{{2}}d_{{3}}d_{{4}}+{d_{{2}}}^{2}\nonumber \\&\quad \left. -2\,d_{{2}}d_{{4}} +{d_{{4}}}^{2}+{d_{{5}}}^{2} \right) X\nonumber \\&\quad + \left( -{d_{{1}}}^{2}{d_{{4}}}^{2}+2\,d_{{1}}d_{{2}}d_{{3}}d_{{4}} -{d_{{2}}}^{2}{d_{{3}}}^{2}-{d_{{2}}}^{2}{d_{{5}}}^{2}\right. \nonumber \\&\quad -2\,d_{{1}}d_{{2}}d_{{4}}+2\,d_{{1}}{d_{{4}}}^{2}+2\,{d_{{2}}}^{2}d_{{3}}\nonumber \\&\quad \left. -2\,d_{{2}}d_{{3}}d_{{4}}-{d_{{2}}}^{2}+2\,d_{{2}}d_{{4}}-{d_{{4}}}^{2} \right) {Y}^{2}\nonumber \\&\quad -d_{{2}}{d_{{3}}}^{2}d_{{4}}-d_{{2}}d_{{4}}{d_{{5}}}^{2}+d_{{2}}d_{{3}}d_{{4}} + \left( -{d_{{1}}}^{2}{d_{{4}}}^{2}-{d_{{1}}}^{2}{d_{{5}}}^{2}\right. \nonumber \\&\quad +2\,d_{{1}}d_{{2}}d_{{3}}d_{{4}}-{d_{{2}}}^{2}{d_{{3}}}^{2} -2\,d_{{1}}d_{{2}}d_{{4}}+2\,d_{{1}}{d_{{4}}}^{2}+2\,d_{{1}}{d_{{5}}}^{2}\nonumber \\&\quad \left. +2\,{d_{{2}}}^{2}d_{{3}}-2\,d_{{2}}d_{{3}}d_{{4}}-{d_{{2}}}^{2} +2\,d_{{2}}d_{{4}}-{d_{{4}}}^{2}-{d_{{5}}}^{2} \right) {X}^{2}\nonumber \\&\quad -2\,d_{{2}}{d_{{5}}}^{2} \left( d_{{1}}-1 \right) XY\nonumber \\&\quad +2\,d_{{2}}d_{{5}} \left( d_{{1}}d_{{4}} -d_{{2}}d_{{3}}+d_{{2}}-d_{{4}} \right) ZX\nonumber \\&\quad -2\,d_{{5}} \left( d_{{1}}-1\right) \left( d_{{1}}d_{{4}}-d_{{2}}d_{{3}}+d_{{2}}-d_{{4}}\right) ZY\nonumber \\&\quad -d_{{2}}{d_{{4}}}^{3}-d_{{1}}{d_{{4}}}^{2}-d_{{1}}{d_{{5}}}^{2} -{d_{{2}}}^{2}d_{{3}}-{d_{{2}}}^{3}d_{{4}}+2\,{d_{{2}}}^{2}{d_{{4}}}^{2}\nonumber \\&\quad -{d_{{1}}}^{2}d_{{2}}d_{{4}}+d_{{1}}d_{{2}}d_{{4}} -d_{{1}}{d_{{2}}}^{2}{d_{{5}}}^{2}+{d_{{2}}}^{3}d_{{3}}d_{{4}}+d_{{1}}d_{{2}}{d_{{4}}}^{3}\nonumber \\&\quad -d_{{1}}{d_{{2}}}^{2}{d_{{4}}}^{2}-{d_{{2}}}^{2}d_{{3}}{d_{{4}}}^{2} -{d_{{2}}}^{2}d_{{3}}{d_{{5}}}^{2}-2\,d_{{1}}d_{{2}}d_{{3}}d_{{4}}\nonumber \\&\quad +{d_{{1}}}^{2}d_{{2}}d_{{3}}d_{{4}}+d_{{1}}d_{{2}}{d_{{3}}}^{2}d_{{4}} +d_{{1}}d_{{2}}d_{{4}}{d_{{5}}}^{2}+2\,{d_{{2}}}^{2}{d_{{5}}}^{2}\nonumber \\&\quad -{d_{{1}}}^{3}{d_{{4}}}^{2}-{d_{{1}}}^{3}{d_{{5}}}^{2}-{d_{{2}}}^{2}{d_{{3}}}^{3} +2\,{d_{{1}}}^{2}{d_{{4}}}^{2}+2\,{d_{{1}}}^{2}{d_{{5}}}^{2}\nonumber \\&\quad +2\,{d_{{2}}}^{2}{d_{{3}}}^{2} \end{aligned}$$
(50)

1.2 B. Algebraic Geometry Tools

Most of the following definitions and examples are taken from Cox et al. (2007).

1.2.1 Ideal

A subset \({\mathcal {I}}\) of the ring of polynomials in the variables \(x_1,\ldots ,x_n\) with coefficients in a field k, \(k[x_1, . . . , x_n]\) is an ideal if it satisfies:

$$\begin{aligned} \begin{array}{rl} (i)\, &{} \, 0 \in {\mathcal {I}}\\ (ii)\, &{} \, \text {If} \, f,g \in {\mathcal {I}} \, \text {then} \, f+g \in {\mathcal {I}}\\ (iii)\, &{} \, \text {If} \, f \in {\mathcal {I}} \, \text {and} \, h \in k[x_1, \ldots , x_n], \, \text {then} \, hf \in {\mathcal {I}}. \end{array} \end{aligned}$$
(51)

Let \(f_1,\ldots ,f_s\) be polynomials in \(k[x_1, \ldots , x_n]\), then

$$\begin{aligned} \langle f_1,\ldots ,f_s \rangle = \Bigg \{ \sum _{i=1}^{s} h_i f_i : h_1,\ldots ,h_s \in k[x_1, \ldots , x_n] \Bigg \} \end{aligned}$$

is an ideal generated by \(f_1,\ldots ,f_s\). This set is interesting because, for any field K containing k, all polynomials \(f\in \langle f_1,\ldots ,f_s \rangle \) give polynomial equations \(f=0\) that hold at all points of \(K^n\) at which \(f_1=0,\ldots ,f_s=0\) hold simultaneously, plus it has a structure that allows many useful algebraic operations.

1.2.2 Variety

If \(f_1,\ldots ,f_s\) are polynomials in the ring \(k[x_1,\ldots ,x_n]\) and if

$$\begin{aligned} {V}(f_1,\ldots ,f_s)=\{ (a_1,\ldots ,a_n) \in k^n : f_i(a_1,\ldots ,a_n)=0, \, \text {for all} \, 1 \le i \le s \} \end{aligned}$$

then \({V}(f_1,\ldots ,f_s)\) is called an affine variety defined by the polynomials \(f_i\) (note that in many other text books, affine varieties are defined the same way but when k is algebraically closed, e.g. \(k={\mathbb {C}}\)). It is the set of all solutions with coordinates in k of the system of equations \(f_1(x_1, \ldots , x_n) =\cdots = f_s (x_1, \ldots , x_n) = 0\).

There is a dual relation between certain varieties and certain ideals (see Cox et al. (2007) for the precise conditions on them):

$$\begin{aligned} \mathrm {varieties}&\longleftrightarrow \mathrm {ideals}\\ V=V(I)&\longleftrightarrow I=I(V) , \end{aligned}$$

where V(I) is the set of all points in \(k^n\) at which all polynomials \(f\in {\mathbb {I}}\) vanish, and I(V) is the set of all polynomials in \(k[x_1,\ldots ,x_n]\) vanishing at all points in V.

If I and J are two ideals in \(k[x_1,\ldots ,x_n]\) and \(I\subset J\) (that is, J contains more polynomials than I), then \(V(J)\subset V(I)\). This is because the points where all polynomials in J vanish make also all the polynomials in I vanish, but the additional polynomials in J impose additional conditions, so not all points in V(I) are necessarily in V(J) (more equations mean less solutions).

1.2.3 Difference of Varieties Quotient of Ideals

The set difference of two affine varieties is generally not an affine variety. For instance in \({\mathbb {C}}^2\), the difference \(V(\langle x \rangle ) \setminus V(\langle y \rangle )\) is the set resulting from removing the x-axis from the y-axis. This leaves the y-axis minus the point \(\{0,0\}\), which is not a variety but an open subset of a variety. It cannot be written as the set of solutions of a system of polynomial equations (it is not an affine variety). The smallest affine variety which contains it, is called the Zariski closure of the difference, denoted with an overline. Loosely speaking, taking the Zariski closure amounts to patching up the holes in the open set. Therefore, in this example, the Zariski closure of the difference is the y-axis itself:

$$\begin{aligned} \overline{V(\langle x \rangle ) \setminus V(\langle y \rangle )}=V(\langle x \rangle ). \end{aligned}$$

Using the correspondence between ideals and varieties, an ideal defining \(\overline{V \setminus W}\) where V and W are affine varieties is obtained as the saturation of an ideal I defining V with an ideal J defining W. It is denoted by \(I:J^\infty \). The colon symbolizes the quotient of one ideal w.r.t. the other, and it removes factors from the polynomials in the first ideal which appear as polynomials themselves in the second ideal. The infinity symbol corresponds to considering all products of arbitrarily many polynomials in the second ideal. A couple of examples:

$$\begin{aligned}&\langle x \rangle : \langle y\rangle ^\infty =\langle x \rangle ,\\&\langle xy^2 \rangle : \langle y\rangle =\langle xy\rangle \subset \langle xy^2 \rangle : \langle y^2\rangle =\langle xy^2 \rangle : \langle y\rangle ^\infty =\langle x \rangle . \end{aligned}$$

Then,

$$\begin{aligned} \langle x \rangle : \langle y \rangle ^\infty =\langle x \rangle .&\leftrightarrow \overline{V(\langle x \rangle ) \setminus V (\langle y \rangle )}=V(\langle x \rangle ) ,\\ \langle xy^2 \rangle : \langle y \rangle ^\infty =\langle x \rangle .&\leftrightarrow \overline{V(\langle xy \rangle ) \setminus V (\langle y \rangle )}=V(\langle x \rangle ). \end{aligned}$$

In the context of this paper, to find out whether actually \(V(I_{4})=V(I_{28})\) or the first one strictly contains the second one, we are interested in computing the Zariski closure of the difference \(\overline{V(I_4)\setminus V(I_{28})}\). Dually, determining this set amounts to computing the saturation of the ideal \(I_4\) w.r.t. the ideal \(I_{28}\), denoted by \(I_4:I_{28}^\infty \). This is equivalent to removing from the polynomials in \(I_4\) all the factors which are themselves polynomials in \(I_{28}\). It can be done in a computational environment such as Maple or Singular and it results in (25), where

$$\begin{aligned} I_d=I_4:I_{28}^\infty ,\; \text {and}\;V(I_d)=\overline{V(I_4)\setminus V(I_{28})}. \end{aligned}$$

1.2.4 Gröbner Basis

We can find different sets of polynomial equations having the same solution set. An especially useful one is the Gröbner basis. A Gröbner Basis of an ideal I can be defined as a finite set generating the ideal and such that the leading terms of the elements in this set (according to some prescribed ordering of the monomialsFootnote 6) generate the leading terms of all elements in the ideal I. One of its many uses is to solve polynomial equations. To do so, it requires an ordering of the terms in the polynomials. The ordering used in this paper is lexicographic ordering defined formally as follows:

Let \(\alpha = (\alpha _1, \ldots , \alpha _n)\) and \(\beta = (\beta _1, \ldots , \beta _n) \in {\mathbb {Z}}_{\ge 0}^{n}\). It is said that \(\alpha >_{lex} \beta \) if, in the vector difference \(\alpha -\beta \in n\), the leftmost nonzero entry is positive. The monomials \(x^{\alpha } >_{lex} x^{\beta }\) if \(\alpha >_{lex} \beta \).

1.3 C. Validity of Gröbner Basis of the Cylinder Polynomials

The fact that the set of polynomials \(\left\{ F_1,F_2,F_3\right\} \) in (29-31) is a Gröbner basis of the ideal \(\langle C_{123},C_{124},C_{134},C_{234} \rangle \) implies that the polynomial system \(\left\{ F_1=F_2=F_3=0\right\} \) has the same solutions as the polynomial system \(\left\{ C_{123}=C_{124}=\right. \)\(\left. C_{134}=C_{234} =0\right\} \).

When one has, as in this case, two sets of generators for an ideal, then one can write the polynomials in the first set as a linear combination of the polynomials in the second set with coefficients in the real numbers and the parameters, and vice versa. On one side, the fact that the set \(\left\{ F_1,F_2,F_3\right\} \) can be expressed as a combination of the set \(\left\{ C_{123},C_{124}, C_{134},C_{234} \right\} \) means that for \(i=1,2,3\):

$$\begin{aligned} F_i=\frac{\alpha _i}{\alpha '_i}C_{123}+\frac{\beta _i}{\beta '_i}C_{124} +\frac{\gamma _i}{\gamma '_i}C_{134}+ \frac{\delta _i}{\delta '_i}C_{234}, \end{aligned}$$
(52)

where \(\alpha _i,\beta _i,\gamma _i,\delta _i,\alpha '_i,\beta '_i,\gamma '_i,\delta '_i\) are some polynomials in the variables \(d_1,\ldots ,d_5\) with real coefficients. However, we have computed a Gröbner basis with parameters in the coefficients, and this means that, for some choices of the parameter values, the denominators \(\alpha '_i\), \(\beta '_i\), \(\gamma '_i\), \(\delta '_i\) could be zero. For such values of the parameters, the Gröbner basis we have obtained will not be valid. Similarly, for \(i,j,k\in \{ 1,2,3,4\} \),

$$\begin{aligned} C_{ijk}=\frac{A_{ijk}}{A'_{ijk}}F_1 +\frac{B_{ijk}}{B'_{ijk}}F_2+\frac{C_{ijk}}{C'_{ijk}}F_3 \end{aligned}$$
(53)

with \(A_{ijk},B_{ijk},C_{ijk},A'_{ijk},B'_{ijk}, C'_{ijk}\in {\mathbb {R}}[d_1,\ldots ,d_5]\). For the same reason as before, whenever the choice of the parameter values is such that \(A'_{ijk}\), \(B'_{ijk}\) or \(C'_{ijk}\) vanish for some ijk, then \(C_{ijk}\) cannot be written as a linear combination of \(F_1,F_2,F_3\). Computing the coefficients of these combinations, we come to the conclusion that the Gröbner basis is valid as long as the following polynomial given by the least common multiple of the denominators in (52) and (53) does not vanish:

$$\begin{aligned} q=\mathrm {lcm}\left( \alpha '_1,\beta '_i,\gamma '_i,\delta '_i, A'_{ijk},B'_{ijk},C'_{ijk} \right) ,\;i,j,k\in \{ 1,2,3,4\}. \end{aligned}$$
(54)

In fact, the above calculations can be avoided due to the fact that the product \(c_6\ c_y\ c_z\) (see 2931) contains all the factors of q (except the trivial factors corresponding to the coincidence of some \(M_i\) and \(M_j,i \ne j =1,2,3,4\)) and hence for any parameter choice for which \(c_6\ c_y\ c_z=0\), the calculated Gröbner basis is not valid (see the supplementary Maple file). We refer to Kalkbrener (1997) for more involved results on the stability of Gröbner bases under specialization.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Pascual-Escudero, B., Nayak, A., Briot, S. et al. Complete Singularity Analysis for the Perspective-Four-Point Problem. Int J Comput Vis 129, 1217–1237 (2021). https://doi.org/10.1007/s11263-020-01420-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11263-020-01420-0

Keywords

Navigation