Skip to main content
Log in

Locating Perspective Three-Point Problem Solutions In Spatial Regions

  • Published:
Journal of Mathematical Imaging and Vision Aims and scope Submit manuscript

Abstract

The distribution of the solutions to the Perspective 3-Point Problem (P3P) has been studied for a few decades, and some understanding of this issue has emerged. However, the present article is the first to comprehensively describe, for a given location p in space, the number of other points that solve the same P3P setup that p solves, and where to find these related points. A dynamic approach is employed to solve this problem. The related points are restricted to certain regions in space, defined by certain “basic” toroids and by a surface called the “companion surface to the danger cylinder.” The nature of this surface is explored in detail, along with its intersections with the basic toroids, and the pairwise intersection of these toroids.

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

Similar content being viewed by others

References

  1. Faugère, J.-C., Moroz, G., Rouillier, F., El-Din, M.S.: Classification of the perspective-three-point problem, discriminant variety and real solving polynomial systems of inequalities. In: ISSAC’08, 21st International Symposium on Symbolic and Algebraic Computation, pp. 79–86 (2008)

  2. Gao, X.-S., Hou, X.-R., Tang, J., Cheng, H.-F.: Complete solution classification for the perspective-three-point problem. IEEE Trans. Pattern Anal. Mach. Intell. 25(8), 930–943 (2003)

    Article  Google Scholar 

  3. Grunert, J.A.: Das pothenotische problem in erweiterter gestalt nebst über seine anwendungen in der geodäsie. Grunerts Archiv für Mathematik und Physik 1, 238–248 (1841)

    Google Scholar 

  4. Haralick, R.M., Lee, C.-N., Ottenberg, K., Nölle, N.: Review and analysis of solutions of the three point perspective pose estimation problem. J. Comput. Vis. 13(3), 331–356 (1994)

    Article  Google Scholar 

  5. Rieck, M.Q.: A fundamentally new view of the perspective three-point pose problem. J. Math. Imaging Vis. 48(3), 499–516 (2014)

    Article  MathSciNet  Google Scholar 

  6. Rieck, M.Q.: Related solutions to the perspective three-point pose problem. J. Math. Imaging Vis. 53(2), 225–232 (2015)

    Article  MathSciNet  Google Scholar 

  7. Rieck, M.Q.: On the discriminant of Grunert’s system of algebraic equations and related topics. J. Math. Imaging Vis. 60(5), 737–762 (2018)

    Article  MathSciNet  Google Scholar 

  8. Sun, F.-M., Wang, B.: The solution distribution analysis of the P3P problem. In: International Conference on Systems, Man and Cybernetics (SMC ’10), pp. 2033–2036 (2010)

  9. Wang, B., Hu, H., Zhang, C.: Companion surface of danger cylinder and its role in solving variation of P3P problem (2019). arXiv:1906.08598 [cs.CV],

  10. Wang, B., Hu, H., Zhang, C.: New insights on multi-solution distribution of the P3P problem (2019). arXiv:1901.11464 [cs.CV],

  11. Zhang, C.-X., Hu, Z.-Y.: Why is the danger cylinder dangerous in the P3P problem? Acta Autom. Sin. 32(4), 504–511 (2006)

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Q. Rieck.

Additional information

Publisher's Note

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

Research supported by National Key R&D Program of China under Grant 2020AAA0109600 and by National Natural Science Foundation of China under Grant 61873264.

Appendices

Appendix A

The following series of lemmas constitute a proof of the irreducibility claim made about the polynomial \({\mathscr {P}}\) in Lemma 5.

Lemma 15

The following three polynomials in indeterminates \(\zeta \) and \(\omega \) (for any \(\zeta _H \in {\mathbb {C}}\)) are absolutely irreducible: \( \zeta \, \omega - 1 \; \; , \; \; \zeta ^2 \, \omega ^2 \, - \, 4 \, (\zeta ^3 + \omega ^3) \, + \, 18 \, \zeta \, \omega \, - \, 27 \; \; , \; \; \zeta ^2 \, - \, \zeta _H \, \zeta \, - \, \omega \, + \, \overline{\zeta _H} .\)

Proof

Without loss of generality, we will regard the complex number field \({\mathbb {C}}\) as the field of coefficients and show these polynomials are irreducible. The first polynomial is trivially irreducible. Next, suppose there is a non-trivial factorization \( \zeta ^2 \omega ^2 - 4 (\zeta ^3 + \omega ^3) + 18 \zeta \omega - 27 \; = \; q_1 q_2\). The sum of the degrees of \(q_1\) and \(q_2\) must equal four. So each has degree 1, 2 or 3.

Without loss of generality, \(q_1\) has degree three and \(q_2\) has degree one, or else both have degree two. The first case then is \(q_1 = a \zeta ^3 + b \zeta ^2 \omega + c \zeta \omega ^2 + d \omega ^3 + e \zeta ^2 + f \zeta \omega + g \omega ^2 + h \zeta + j \omega + k\) and \(q_2 = l \zeta + m \omega + n\). The second case is \(q_1 = a \zeta ^2 + b \zeta \omega + c \omega ^2 + d \zeta + e \omega + f\) and \(q_2 = g \zeta ^2 + h \zeta \omega + j \omega ^2 + k \zeta + l \omega + m\). Both cases are easily checked and found to be impossible. We thus conclude that \(\zeta ^2 \omega ^2 - 4 (\zeta ^3 + \omega ^3) + 18 \zeta \omega - 27\) is absolutely irreducible.

Next, consider a possible factorization of \(\zeta ^2 - \zeta _H \zeta - \omega + \overline{\zeta _H}\). This would need to be a product of linear polynomials, say \(a \zeta + b \omega + c\) and \(d \zeta + e \omega + f\). Clearly we need \(a d = 1\), \(b e = 0\), and w.l.o.g., \(b = 0\). The coefficient of \(\zeta \omega \) is then ae, and so we need either \(a = 0\) or \(e = 0\). But these are both clearly impossible. Therefore, \(\zeta ^2 - \zeta _H \zeta - \omega + \overline{\zeta _H}\) is absolutely irreducible.

\(\square \)

Lemma 16

Write

$$\begin{aligned} {{\mathscr {P}}} \; = \; {\mathscr {A}}_4 \, Z^4 + {\mathscr {A}}_3 \, Z^3 + {\mathscr {A}}_2 \, Z^2 + {\mathscr {A}}_1 \, Z + {\mathscr {A}}_0 \, , \end{aligned}$$

where \({\mathscr {A}}_0, {\mathscr {A}}_1, {\mathscr {A}}_2, {\mathscr {A}}_3, {\mathscr {A}}_4\) are polynomials in \(\zeta \) and \({\overline{\zeta }}\). Then,

$$\begin{aligned} \begin{array}{l} {\mathscr {A}}_0 \; = \; (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H})^2 \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)^2 \\ \quad \quad \quad \cdot \, (\zeta {\overline{\zeta }} - 1)^2 \, , \\ {\mathscr {A}}_1 \; = \; (\zeta {\overline{\zeta }} - 1) \, {\mathscr {A}}'_1 \; \hbox { and} \\ {\mathscr {A}}_4 \; = \; \zeta ^2 \, \overline{\zeta ^2} - 4(\zeta ^3 + \overline{\zeta ^3}) + 18 \zeta {\overline{\zeta }} - 27 \, , \end{array} \end{aligned}$$

where \({\mathscr {A}}'_1\) is a polynomial of degree eight in \(\zeta \) and \({\overline{\zeta }}\). Moreover, the polynomials \({\mathscr {A}}_0, {\mathscr {A}}_1, {\mathscr {A}}_2, {\mathscr {A}}_3\) and \({\mathscr {A}}_4\) have respective degrees twelve, ten, eight, six and four.

Proof

Upon setting \(Z = 0\), \(Z_L\) becomes \(( \zeta ^2 - \zeta _H \zeta - {\overline{\zeta }} + \overline{\zeta _H} )\) \(( \zeta {\overline{\zeta }} - 1)\), \(\overline{Z_L}\) becomes \(( {\overline{\zeta }}^2 - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H )\) \(( \zeta {\overline{\zeta }} - 1)\) , \(\widehat{{\mathscr {D}}}\) becomes \(Z_L^2 \, \overline{Z_L^2}\), and the claim concerning \({\mathscr {A}}_0\) is immediate. Regarding \({\mathscr {D}}\) as a function of \(Z_L\), \(\overline{Z_L}\) and Z, it can also be checked that upon setting \(Z = 0\), the quantities \(\partial \widehat{{\mathscr {D}}} / \partial Z_L\) , \(\partial \widehat{{\mathscr {D}}} / \partial \overline{Z_L}\) and \(\partial \widehat{{\mathscr {D}}} / \partial Z\), become \(2 \, Z_L \, \overline{Z_L^2}\), \(2 \, Z_L^2 \, \overline{Z_L}\) and \(- 4 \, (Z_L^3 + \overline{Z_L}^3)\), respectively. Expanding these in terms of \(\zeta _H\), \(\overline{\zeta _H}\), \(\zeta \) and \({\overline{\zeta }}\), it can be observed that each of the resulting three expressions has \((\zeta {\overline{\zeta }} - 1)^3\) as a factor.

Regarding \(\widehat{{\mathscr {D}}}\) as a polynomial function of \(\zeta \), \({\overline{\zeta }}\) and Z instead, it follows that \(\partial \widehat{{\mathscr {D}}} / \partial Z\) has \((\zeta {\overline{\zeta }} - 1)^3\) as a factor, when Z is set to zero. Therefore, \(\partial \, {{\mathscr {P}}} \, / \, \partial Z\) has \(\zeta {\overline{\zeta }} - 1\) as a factor, upon setting \(Z = 0\). Therefore, \(\zeta {\overline{\zeta }} - 1\) is a factor of \({\mathscr {A}}_1\). Now, As \(Z \rightarrow \infty \), \(\zeta _L\) approached \(\zeta ^2 - 2 {\overline{\zeta }}\). When \(\zeta ^2 - 2 {\overline{\zeta }}\) is substituted for \(\zeta _L\) into the formula (3) for \({\mathscr {D}}\), the result is \((\zeta {\overline{\zeta }} - 1)^2 \, [ \, \zeta ^2 \overline{\zeta ^2} - 4 (\zeta ^3 + \overline{\zeta ^3}) + 18 \zeta {\overline{\zeta }} - 27 \, ]\). (There is a nice geometric reason for this that will not be discussed here.) The claim concerning \({\mathscr {A}}_4 \) follows immediately from this.

For \(j = 0, 1, 2, 3, 4\), the claim is that the polynomial \({\mathscr {A}}_j\) has degree \(12 - 2j\), as a polynomial in \(\zeta \), \({\overline{\zeta }}\) and z. This is clearly an upper bound since \({\mathscr {P}}\) has degree twelve. The fact that this is the actual degree of \({\mathscr {A}}_j\) follows from the fact that \({\mathscr {A}}_j\) has a non-vanishing \((\zeta {\overline{\zeta }})^{6-j}\) term. To see this, expand \(\widehat{{\mathscr {D}}}\) but only focus on terms of the form \((\zeta \, {\overline{\zeta }})^{8-\alpha } \, Z^\alpha \), which are real terms of maximal degree. Only the \(\zeta ^2 Z\) and \(\zeta ^3 \, {\overline{\zeta }}\) parts of the expression for \(Z_L\) can contribute here. Similarly for \(\overline{Z_L}\). The \(Z_L^2 \, \overline{Z_L^2}\) term in the formula for \(\widehat{{\mathscr {D}}}\) contributes \((\zeta ^2 Z \, + \, \zeta ^3 {\overline{\zeta }})^2 \, (\overline{\zeta ^2} Z \, + \, \overline{\zeta ^3} \, \zeta )^2\)   =   \(\zeta ^4 \, \overline{\zeta ^4} \, (Z + \zeta {\overline{\zeta }})^4\). This has a non-vanishing term of the form \((\zeta \, {\overline{\zeta }})^{8-\alpha } \; Z^\alpha \) for \(\alpha = 0, 1, 2, 3, 4\). No other terms in the formula for \(\widehat{{\mathscr {D}}}\) contribute terms of this sort; they only contribute terms of lesser degrees. This establishes the claims concerning the degrees of \({\mathscr {A}}_0, {\mathscr {A}}_1, {\mathscr {A}}_2, {\mathscr {A}}_3\) and \({\mathscr {A}}_4\).

\(\square \)

Lemma 17

\(\zeta \, {\overline{\zeta }} - 1\), \(\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}\) and \(\overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H\) are not factors of \({\mathscr {A}}'_1\).

Proof

As in the proof of Lemma 16, observe that \(( \partial ^2 Z_L / \partial {\overline{\zeta }}^2, \partial ^2 \overline{Z_L} / \partial {\overline{\zeta }}^2)\) and \(( \partial ^3 Z_L / \partial {\overline{\zeta }}^3, \, \partial ^3 \overline{Z_L} / \partial {\overline{\zeta }}^3 )\) become, respectively, \((-2\zeta \, , \, 4 + 2Z - 2\overline{\zeta _H} \zeta )\) and \((0, 6 \zeta )\), upon setting \({\overline{\zeta }}\) to \(1/\zeta \). Also, \( \, ( \partial ^2 \widehat{{\mathscr {D}}} / \partial Z_L^2 \, , \, \partial ^2 \widehat{{\mathscr {D}}} / \partial Z_L \partial \overline{Z_L} \, , \, \partial ^2 \widehat{{\mathscr {D}}} / \partial \overline{Z_L}^2 )\) becomes \(\big ( \, 2 (1+2\zeta -2\zeta ^2)\) \((1-2\zeta +6\zeta ^2+4\zeta ^3+4\zeta ^4) Z^2 / \zeta ^4, \) \( -2(4-19\zeta ^3+4\zeta ^6)Z^2 / \zeta ^3 , \, -2(2-2\zeta -\zeta ^2)(4+4\zeta +6\zeta ^2-2\zeta ^3+\zeta ^4)Z^2\) / \(\zeta ^2 \, \big )\). Also, \(( \partial ^3 \widehat{{\mathscr {D}}} / \partial Z_L^3,\) \(\partial ^3 \widehat{{\mathscr {D}}} / \partial Z_L^2 \partial \overline{Z_L},\) \(\partial ^3 \widehat{{\mathscr {D}}} / \partial Z_L \partial \overline{Z_L}^2 , \, \partial ^3 \widehat{{\mathscr {D}}} / \partial \overline{Z_L}^3 )\) becomes \((\!-24 Z\) , \(4(1-2\zeta ^3)Z/\zeta ^2, 4(\zeta ^3-2)Z/\zeta \) , \(-24 Z )\).

Applying the rules of partial differential calculus now, it is discovered when \({\overline{\zeta }}\) is set to \(1/\zeta \), that \(\partial ^2 \widehat{{\mathscr {D}}} / \partial {\overline{\zeta }}^2\) becomes a polynomial in \(\zeta \) and Z, times \(Z^2 / \zeta ^4\), and that \(\partial ^3 \widehat{{\mathscr {D}}} / \partial {\overline{\zeta }}^3\) becomes a polynomial in \(\zeta \) and Z, times \(Z / \zeta ^3\). The coefficient of \(Z^0\) in this latter polynomial is not identically zero. It follows that \((\zeta {\overline{\zeta }} - 1)^4\) divides the \(Z^0\) term of \(\widehat{{\mathscr {D}}}\), and that \((\zeta {\overline{\zeta }} - 1)^3\) divides the \(Z^1\) term, but \((\zeta {\overline{\zeta }} - 1)^4\) does not divide the \(Z^1\) term. So, \(\zeta {\overline{\zeta }} - 1\) does not divide \({\mathscr {A}}'_1\).

Next, when \(\zeta ^2 - \zeta _H \zeta + \overline{\zeta _H}\) is substituted for \({\overline{\zeta }}\) in the expansion of \(\widehat{{\mathscr {D}}}\), the coefficient of Z is \(4(\zeta _H-\zeta )^3 (\zeta ^3 - \zeta _H \zeta ^2 + \overline{\zeta _H} \zeta - 1)^6\). Since this is not identically zero, it follows that \(\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}\) is not a factor of the coefficient of Z in the expansion of \(\widehat{{\mathscr {D}}}\), and hence not a factor of \({\mathscr {A}}'_1\). Similarly for \(\overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H\).

\(\square \)

The next lemma is straightforward (if a bit tedious) to check:

Lemma 18

When \({\overline{\zeta }}\) is set to \(1 / \zeta \), the following formulas result:

$$\begin{aligned} \begin{array}{l} {\mathscr {A}}'_0 = (\zeta ^3 - \zeta _H \zeta ^2 + \overline{\zeta _H} \zeta - 1)^4 \; / \; \zeta ^6 \\ {\mathscr {A}}'_1 = 2(\zeta - 1)(\zeta ^2 + \zeta + 1)(\zeta ^3 - \zeta _{H} \zeta ^2 + \overline{\zeta _H} \zeta - 1)^3 / \zeta ^6 \\ {\mathscr {A}}_2 = (\zeta + 1)^2 (\zeta ^2 - \zeta + 1)^2 (\zeta ^3 - \zeta _{H} \zeta ^2 + \overline{\zeta _H} \zeta - 1)^2 / \zeta ^6 \\ {\mathscr {A}}_3 = 4 (\zeta + 1)^2 (\zeta ^2 - \zeta + 1)^2 (\overline{\zeta _H} \zeta ^2 - 2 \zeta + \zeta _{H}) / \zeta ^4 \\ {\mathscr {A}}_4 = -4 (\zeta + 1)^2 (\zeta ^2 - \zeta + 1)^2 / \zeta ^3 \\ {\mathscr {A}}_2 - {\mathscr {A}}'_1 + {\mathscr {A}}'_0 \; = \; (\zeta ^3 - \zeta _{H} \zeta ^2 + \overline{\zeta _H} \zeta - 1)^2 \\ \quad \quad \cdot \, (\zeta _H^2 \zeta ^2 - 2\overline{\zeta _H} \zeta _H \zeta + 4 \zeta + \overline{\zeta _H})^2 \; / \; \zeta ^4 \\ \end{array} \end{aligned}$$

where \({\mathscr {A}}'_0 = {\mathscr {A}}_0 \, / \, (\zeta {\overline{\zeta }} - 1)^2 = (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H})^2 \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)^2\) and \({\mathscr {A}}'_1 = {\mathscr {A}}_1 \, / \, (\zeta {\overline{\zeta }} - 1)\).

Another lemma that can be checked directly, though algebraic manipulation software certainly helps, is the following.

Lemma 19

When \(\zeta _H = 0\), the following formulas result:

$$\begin{aligned} \begin{array}{l} {\mathscr {A}}_0 = (\zeta ^2 - {\overline{\zeta }})^2 ({\overline{\zeta }}^2 - \zeta )^2 (\zeta {\overline{\zeta }} - 1)^2 \\ {\mathscr {A}}_1 = (\zeta {\overline{\zeta }} - 1) (2 \zeta ^4 {\overline{\zeta }}^4 - 5 \zeta ^5 {\overline{\zeta }}^2 - 5 \zeta ^2 {\overline{\zeta }}^5 + \zeta ^6 + {\overline{\zeta }}^6 \\ \quad \quad \; + 12 \zeta ^3 {\overline{\zeta }}^3 - \zeta ^4 {\overline{\zeta }} - \zeta {\overline{\zeta }}^4 - 8 \zeta ^2 {\overline{\zeta }}^2 + 2 \zeta ^3 + 2 {\overline{\zeta }}^3) \\ {\mathscr {A}}_2 = 6 \zeta ^4 {\overline{\zeta }}^4 - 18 \zeta ^5 {\overline{\zeta }}^2 - 18 \zeta ^2 {\overline{\zeta }}^5 + \zeta ^6 + {\overline{\zeta }}^6 + 52 \zeta ^3 {\overline{\zeta }}^3 \\ \quad \quad \; + 12 \zeta ^4 {\overline{\zeta }} + 12 \zeta {\overline{\zeta }}^4 - 78 \zeta ^2 {\overline{\zeta }}^2 + 6 \zeta ^3 + 6 {\overline{\zeta }}^2 +18 \zeta {\overline{\zeta }} \\ {\mathscr {A}}_3 = 4 \zeta ^3 {\overline{\zeta }}^3 - 14 \zeta ^4 {\overline{\zeta }} - 14 \zeta ^4 {\overline{\zeta }} + 52 \zeta ^2 {\overline{\zeta }}^2 + 6 \zeta ^3 + 6 {\overline{\zeta }}^3 \\ \quad \quad \; - 72 \zeta {\overline{\zeta }} \\ \end{array} \end{aligned}$$

We are ready now to consider various ways that the polynomial \({\mathscr {P}}\) might possibly be factored, but will subsequently show that each of these is actually not possible.

Lemma 20

Suppose that \({\mathscr {P}}\) , treated as a polynomial in x, y and Z, can be factored nontrivially into real polynomials of x, y and Z, as \({\mathscr {P}} = p_1 p_2\). Then, up to interchanging \(p_1\) and \(p_2\), there are just three possibilities:

Case 1.

$$\begin{aligned} p_1 \; = \; {\mathscr {A}}_4 \, Z + {\mathscr {B}} \; \; , \; \; p_2 \; = \; Z^3 + {\mathscr {C}} \, Z^2 + {\mathscr {D}} \, Z + {\mathscr {E}}; \end{aligned}$$

Case 2.

$$\begin{aligned} p_1 \; = \; {\mathscr {A}}_4 \, Z^2 + {\mathscr {B}} \, Z + {\mathscr {C}} \; \; , \; \; p_2 \; = \; Z^2 + {\mathscr {D}} \, Z + {\mathscr {E}}; \end{aligned}$$

Case 3.

$$\begin{aligned} p_1 \; = \; {\mathscr {A}}_4 \, Z^3 + {\mathscr {B}} \, Z^2 + {\mathscr {C}} \, Z + {\mathscr {D}} \; \; , \; \; p_2 \; = \; Z + {\mathscr {E}}; \end{aligned}$$

where \({\mathscr {B}}\), \({\mathscr {C}}\), \({\mathscr {D}}\) and \({\mathscr {E}}\) are real polynomials in x and y (but also be regarded as polynomials in \(\zeta \) and \({\overline{\zeta }}\)).

Proof

This is an immediate consequence of the fact that \({\mathscr {A}}_4\) is absolutely irreducible as a polynomial in the variables \(\zeta \) and \({\overline{\zeta }}\) and the fact that \({\mathscr {P}}\) cannot have a non-constant factor that does not involve Z. Such a factor would necessarily divide both \({\mathscr {A}}_0\) and \({\mathscr {A}}_4\), which is impossible due to Lemma 15. This leaves us with only the above possibilities.

\(\square \)

Lemma 21

Case 1 in Lemma 20 is not possible.

Proof

Assume there is such a factorization. Clearly, dim \({\mathscr {B}}\) + dim \({\mathscr {E}}\) = dim \({\mathscr {A}}_0\) = 12. Let dim \({\mathscr {B}} = 6 + \epsilon _1\), dim \({\mathscr {C}} = 2 + \epsilon _2\), dim \({\mathscr {D}} = 4 + \epsilon _3\) and dim \({\mathscr {E}} = 6 - \epsilon _1\). Since \({\mathscr {A}}_4 {\mathscr {C}} + {\mathscr {B}} = {\mathscr {A}}_3\), we see that if \(\epsilon _1 > 0\) or \(\epsilon _2 > 0\), then we must have \(\epsilon _1 = \epsilon _2 > 0\), in order to cancel terms. Since, \({\mathscr {A}}_4 {\mathscr {D}} + {\mathscr {B}} {\mathscr {C}} = {\mathscr {A}}_2\), we see that if \(\epsilon _1 + \epsilon _2 > 0\) or \(\epsilon _3 > 0\), then we must have \(\epsilon _1 + \epsilon _2 = \epsilon _3 > 0\). Since, \({\mathscr {A}}_4 {\mathscr {E}} + {\mathscr {B}} {\mathscr {D}} = {\mathscr {A}}_1\), we see that if \(- \epsilon _1 > 0\) or \(\epsilon _1 + \epsilon _3 > 0\), then we must have \(- \epsilon _1 = \epsilon _1 + \epsilon _3 > 0\).

Suppose for a moment that \(\epsilon _1 > 0\). Then, \(\epsilon _2 > 0\), so \(\epsilon _1 + \epsilon _2 > 0\), so \(\epsilon _3 > 0\), so \(\epsilon _1 + \epsilon _3 > 0\), so \(- \epsilon _1 > 0\), a contradiction. Suppose instead that \(\epsilon _1 < 0\). Then, \(\epsilon _1 + \epsilon _3 > 0\), so \(\epsilon _3 > 0\), so \(\epsilon _1 + \epsilon _2 > 0\), so \(\epsilon _2 > 0\), so \(\epsilon _1 > 0\), a contradiction. Therefore, \(\epsilon _1 = 0\), and we can also see that \(\epsilon _2 \le 0\) and \(\epsilon _3 \le 0\).

Recall that \({\mathscr {A}}_0 = (\zeta {\overline{\zeta }} - 1)^2 \, (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H})^2 \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)^2\) and that the factors here are absolutely irreducible. Observe that \({\mathscr {B}}\) and \({\mathscr {E}}\) are essentially real polynomials of x and y (since \(p_1\) and \(p_2\) are presumed to be essentially real polynomials of x, y and Z ), of degree six. Thus, we are forced to conclude that \({\mathscr {B}}\) and \({\mathscr {E}}\) are both constant multiples of the real polynomial \((\zeta {\overline{\zeta }} - 1) \, (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}) \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)\). (It is real as a polynomial in x, y and Z.) In fact, we may assume that both \({\mathscr {B}}\) and \({\mathscr {E}}\) equal this polynomial. Since, \({\mathscr {A}}_4 {\mathscr {E}} + {\mathscr {B}} {\mathscr {D}} = {\mathscr {A}}_1\), \((\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}) \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)\) must be a divisor of \({\mathscr {A}}_1\). But this is not true, by Lemma 17.

\(\square \)

Lemma 22

Case 2 in Lemma 20 is not possible.

Proof

Assume there is such a factorization. Clearly, dim \({\mathscr {C}}\) + dim \({\mathscr {E}}\) = dim \({\mathscr {A}}_0\) = 12. Let dim \({\mathscr {B}} = 6 + \epsilon _1\), dim \({\mathscr {C}} = 8 + \epsilon _2\), dim \({\mathscr {D}} = 2 + \epsilon _3\), and dim \({\mathscr {E}} = 4 - \epsilon _2\). Since, \({\mathscr {A}}_4 {\mathscr {D}} + {\mathscr {B}} = {\mathscr {A}}_3\), we see that if \(\epsilon _1 > 0\) or \(\epsilon _3 > 0\), then we must have \(\epsilon _1 = \epsilon _3 > 0\). Since, \({\mathscr {A}}_4 {\mathscr {E}} + {\mathscr {B}} {\mathscr {D}} + {\mathscr {C}} = {\mathscr {A}}_2\), we see that if any of \(\epsilon _2\), \(-\epsilon _2\) and \(\epsilon _1+\epsilon _3\) are positive, then it must equal another one of these. Since, \({\mathscr {B}} {\mathscr {E}} + {\mathscr {C}} {\mathscr {D}} = {\mathscr {A}}_1\), we see that if \(\epsilon _1 - \epsilon _2 > 0\) or \(\epsilon _2 + \epsilon _3 > 0\), then we must have \(\epsilon _1 - \epsilon _2 = \epsilon _2 + \epsilon _3 > 0\).

Suppose for a moment that \(\epsilon _2 > 0\). Then, \(\epsilon _1 + \epsilon _3 > 0\), so either \(\epsilon _1 > 0\) or \(\epsilon _3 > 0\), so \(\epsilon _1 = \epsilon _3 > 0\), so \(\epsilon _2 + \epsilon _3 > 0\), so \(\epsilon _1 - \epsilon _2 = \epsilon _2 + \epsilon _3 > 0\), so \(- \epsilon _2 = \epsilon _2\), a contradiction. Next suppose instead that \(\epsilon _2 < 0\). Then, \(\epsilon _1 + \epsilon _3 > 0\), so either \(\epsilon _1 > 0\) or \(\epsilon _3 > 0\), so \(\epsilon _1 = \epsilon _3 > 0\), so \(\epsilon _1 - \epsilon _2 > 0\), so \(\epsilon _1 - \epsilon _2 = \epsilon _2 + \epsilon _3 > 0\), so \(- \epsilon _2 = \epsilon _2\), a contradiction. Therefore, \(\epsilon _2 = 0\), and we can also see that \(\epsilon _1 \le 0\) and \(\epsilon _3 \le 0\).

\({\mathscr {C}}\) and \({\mathscr {E}}\) are essentially real polynomials of x and y of degrees eight and four, respectively. We may now easily reduce to one of two cases:

Case 2A.

\({\mathscr {C}} \; = \; (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H})^2 \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)^2\)

and \({\mathscr {E}} \; = \; (\zeta {\overline{\zeta }} - 1)^2\);

Case 2B.

\({\mathscr {C}} \; = \; (\zeta {\overline{\zeta }} - 1)^2 \; \cdot \)

\((\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}) \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)\) and

\({\mathscr {E}} \; = \; (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}) \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H).\)

Case 2B is quickly eliminated because it implies that \((\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H}) \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)\) divides \({\mathscr {B}} {\mathscr {E}} + {\mathscr {C}} {\mathscr {D}} = {\mathscr {A}}_1\), which Lemma 17 indicates is not true.

Assume Case 2A now. Since \(\zeta {\overline{\zeta }} - 1\) divides \({\mathscr {B}} {\mathscr {E}}\) and \({\mathscr {A}}_1\), but not \({\mathscr {C}}\), it must divide \({\mathscr {D}}\). Since dim \({\mathscr {D}} \le 2\), we must have \({\mathscr {D}} = \lambda (\zeta {\overline{\zeta }} - 1)\) for a constant \(\lambda \). From \({\mathscr {B}} {\mathscr {E}} + {\mathscr {C}} {\mathscr {D}} = {\mathscr {A}}_1\) and \({\mathscr {C}} = {\mathscr {A}}'_0\), we get \((\zeta {\overline{\zeta }} - 1) {\mathscr {B}} + \lambda {\mathscr {A}}'_0 = {\mathscr {A}}'_1\). Upon setting \({\overline{\zeta }} = 1 / \zeta \), we must have \(\lambda {\mathscr {A}}'_0 = {\mathscr {A}}'_1\) (identically). But from Lemma 18, we see this means that we need \(\lambda (\zeta ^3 - \zeta _H \zeta ^2 + \overline{\zeta _H} \zeta - 1) = 2(\zeta - 1)(\zeta ^2 + \zeta + 1)\) (identically). This is only possible when \(\zeta _H = 0\), in which case, we must set \(\lambda = 2\). Assuming this, it can then be seen that \({\mathscr {B}} = ({\mathscr {A}}_1 - {\mathscr {C}} {\mathscr {D}}) / {\mathscr {E}}\) = \(2(\zeta ^3 {\overline{\zeta }}^3 - 3 \zeta ^4 {\overline{\zeta }} - 3 \zeta {\overline{\zeta }}^4 + 9 \zeta ^2 {\overline{\zeta }}^2 - 2 \zeta ^3 - 2 {\overline{\zeta }}^3)\). It follows that \({\mathscr {A}}_4 {\mathscr {D}} + {\mathscr {B}} - {\mathscr {A}}_3\) = \(2(3 - \zeta - {\overline{\zeta }})(9 + 3 \zeta + 3 {\overline{\zeta }} + \zeta ^2 + {\overline{\zeta }}^2 - \zeta {\overline{\zeta }})\). Since this is not identically zero, Case 2A is impossible, even when \(\zeta _H = 0\).

\(\square \)

Lemma 23

Case 3 in Lemma 20 is not possible.

Proof

Assume there is such a factorization. Clearly, dim \({\mathscr {D}}\) + dim \({\mathscr {E}}\) = dim \({\mathscr {A}}_0\) = 12. Let dim \({\mathscr {B}} = 6 + \epsilon _1\), dim \({\mathscr {C}} = 8 + \epsilon _2\), dim \({\mathscr {D}} = 10 + \epsilon _3\), and dim \({\mathscr {E}} = 2 - \epsilon _3\). Since, \({\mathscr {A}}_4 {\mathscr {E}} + {\mathscr {B}} = {\mathscr {A}}_3\), we see that if \(- \epsilon _3 > 0\) or \(\epsilon _1 > 0\), then we must have \(- \epsilon _3 = \epsilon _1 > 0\). Since, \({\mathscr {B}} {\mathscr {E}} + {\mathscr {C}} = {\mathscr {A}}_2\), we see that if \(\epsilon _1 - \epsilon _3 > 0\) or \(\epsilon _2 > 0\), then we must have \(\epsilon _1 - \epsilon _3 = \epsilon _2 > 0\). Since, \({\mathscr {C}} {\mathscr {E}} + {\mathscr {D}} = {\mathscr {A}}_1\), we see that if \(\epsilon _2 - \epsilon _3 > 0\) or \(\epsilon _3 > 0\), then we must have \( \epsilon _2 - \epsilon _3 = \epsilon _3 > 0\).

Suppose for a moment that \(\epsilon _3 > 0\). Then, \(\epsilon _2 = 2 \epsilon _3 > 0\), so \(\epsilon _1 - \epsilon _3 = \epsilon _2\), so \(\epsilon _1 = 3 \epsilon _3 > 0\), so \(- \epsilon _3 = \epsilon _3\), a contradiction. Suppose instead that \(\epsilon _3 < 0\). Then \(\epsilon _1 = - \epsilon _3 > 0\), so \(\epsilon _1 - \epsilon _3 > 0\), so \(\epsilon _2 = \epsilon _1 - \epsilon _3 > 0\), so \(\epsilon _2 - \epsilon _3 > 0\), so \(\epsilon _3 = \epsilon _2 - \epsilon _3 > 0\), a contradiction. Therefore, \(\epsilon _3 = 0\), and we can also see that \(\epsilon _1 \le 0\) and \(\epsilon _2 \le 0\).

Similar to previous reasoning, in the present case, we must have \({\mathscr {D}}\) = \((\zeta {\overline{\zeta }} - 1) \, (\zeta ^2 - \zeta _H \, \zeta - {\overline{\zeta }} + \overline{\zeta _H})^2 \, ( \overline{\zeta ^2} - \overline{\zeta _H} \, {\overline{\zeta }} - \zeta + \zeta _H)^2\), and \({\mathscr {E}}\) = \(\zeta {\overline{\zeta }} - 1\). Now, \({\mathscr {C}} = ({\mathscr {A}}_1 - {\mathscr {D}}) / {\mathscr {E}} = {\mathscr {A}}'_1 - {\mathscr {A}}'_0\). Then, \({\mathscr {B}} = ({\mathscr {A}}_2 - {\mathscr {C}}) / {\mathscr {E}}\) = \(({\mathscr {A}}_2 - {\mathscr {A}}'_1 + {\mathscr {A}}'_0) / {\mathscr {E}}\). However, by considering the \( {\overline{\zeta }} = 1 / \zeta \) situation again, it is clear that \({\mathscr {E}}\) is not a divisor of \({\mathscr {A}}_2 - {\mathscr {A}}'_1 + {\mathscr {A}}'_0\). Therefore, Case 3 is not possible.

\(\square \)

Appendix B

The method of S. Finsterwalder, as described in [4], is traditionally one of the better methods for solving the P3P problem and is the basis for the most successful method currently used (known as “Lambda Twist”). The problem is reduced to finding a root of a cubic equation, which is equation (14) in [4] (but “\(\lambda \)” is here replaced with “\(\Lambda \)” for practical reasons):

$$\begin{aligned} G \, \Lambda ^3 \, + \,H \, \Lambda ^2 \, + \, I \, \Lambda \, + \, J \; = \; 0 . \end{aligned}$$

Using the notation of the present article, the coefficients of the cubic are as follows:

$$\begin{aligned} \begin{array}{l} G \; = \; d_3^2 \, [ \, d_3^2 (1-c_2^2) - d_2^2 (1-c_3^2) \, ] \\ H \; = \; d_2^2 (d_2^2-d_1^2)(1-c_3^2) + d_3^2 (d_3^2+2d_1^2)(1-c_2^2) \\ \quad \quad \; \; + \; 2 d_2^2 d_3^2 \, (c_1 c_2 c_3 - 1) \\ I \; = \ d_2^2 (d_2^2-d_3^2)(1-c_1^2) + d_1^2 (d_1^2+2d_3^2)(1-c_2^2) \\ \quad \quad \; \; + \; 2 d_1^2 d_2^2 \, (c_1 c_2 c_3 - 1) \\ J \; = \; d_1^2 \, [ \, d_1^2 (1-c_2^2) - d_2^2 (1-c_1^2) \, ]. \end{array} \end{aligned}$$

Define \({\mathscr {G}} = G / \eta ^2\), \({\mathscr {H}} = H / \eta ^2\), \({\mathscr {I}} = I / \eta ^2\) and \({\mathscr {J}} = J / \eta ^2\). Then, \({\mathscr {G}} / d_3^2\) and \({\mathscr {J}} / d_1^2\) are of the form described in [5][Theorem 1 and Lemma 10]. Moreover, each of \({\mathscr {G}}\), \({\mathscr {H}}\), \({\mathscr {I}}\), and \({\mathscr {J}}\) is of the form described in [7][Section 3] and satisfies conditions (5) found in Lemma 10 there. As such, each can be expressed as a linear combination of 1, \({\mathscr {L}}\) and \({\mathscr {K}}\), with coefficients that depend only on the control point positions, and where \({\mathscr {K}} = -1 - {\mathscr {R}}\), and \({\mathscr {L}}\) and \({\mathscr {R}}\) are as in [7]. So,

$$\begin{aligned} \begin{array}{l} {\mathscr {K}} = \big [ \, (x_1^2 - y_1^2 + 2 x_1)\,(1-c_1^2) \, + \, (x_2^2 - y_2^2 + 2 x_2) \\ \quad \cdot (1-c_2^2) \, + \, (x_3^2 - y_3^2 + 2 x_3)\,(1-c_3^2) \\ \quad - \, 2 \, x_H\,(1-c_1c_2c_3) \, \big ] \; / \; \eta ^2 \hbox { and} \\ {\mathscr {L}} = 2 \, \big [ \, (x_1-1)y_1 \, (1-c_1^2) + (x_2-1)y_1 \, (1-c_2^2) \\ \quad + \, (x_3-1)y_1 \, (1-c_3^2) \, + \, y_H\,(1-c_1c_2c_3) \, \big ] \; / \; \eta ^2 \, . \end{array} \end{aligned}$$
(5)

Let us write \({\mathscr {G}} \, = \, \iota _G \, + \, \kappa _G \, {\mathscr {K}} \, + \, \lambda _G \, {\mathscr {L}}\), \({\mathscr {H}} \, = \iota _H \, + \, \kappa _H \, {\mathscr {K}} \, + \, \lambda _H \, {\mathscr {L}}\), \({\mathscr {I}} \, = \, \iota _I \, + \, \kappa _I \, {\mathscr {K}} \, + \, \lambda _I \, {\mathscr {L}}\) and \({\mathscr {J}} \, = \,\iota _J \, + \, \kappa _J \, {\mathscr {K}} \, + \, \lambda _J \, {\mathscr {L}}\), for constants \(\iota _G\), \(\kappa _G\), \(\lambda _G\), \(\iota _H\), \(\kappa _H\), \(\lambda _H\), \(\iota _I\), \(\kappa _I\), \(\lambda _I\), \(\iota _J\), \(\kappa _J\) and \(\lambda _J \) that depend only on the control point positions.

These coefficients can be found as follows. When \({\mathscr {J}}\) is described as a function of the position (xyz) of the optical center, if \(x^2 + y^2 = 1\), then [5][Theorem 1] guarantees that \({\mathscr {J}}\) does not depend on z. Moreover, [5][Lemma 10] provides a way to compute it. As there, let \(e_\alpha \) be the distance from (xy) to the control point \((x_\alpha , y_\alpha )\) (\(\alpha = 1,2,3)\). Let \(f_1\) be the distance from (xy) to the line through \((x_2, y_2)\) and \((x_3, y_3)\), and similarly for \(f_2\) and \(f_3\).

[5][Lemma 10] ensures that \({\mathscr {J}} / d_1^2\) equals \(4(e_2^2 - f_1^2 - e_1^2 + f_2^2) / d_3^2\) when \(x^2 + y^2 = 1\). Letting \(t_\alpha = \tan (\phi _\alpha / 2)\), it can be checked directly that \(e_\alpha ^2 \, = \, [ (1+t_\alpha ^2)(1+x^2+y^2) + 2(t_\alpha ^2 - 1) x - 4 t_\alpha y ] / (1+t_\alpha ^2)\). Also, \(f_1^2 \, = \, [ (t_2 t_3 + 1) + (t_2 t_3 - 1) x - (t_2+t_3) y ]^2\) / \([ (1+t_2^2) (1+t_3^2) ]\), and similarly for \(f_2^2\) and \(f_3^2\). Also, from [5][Lemma 1], \(d_1^2 \, = \, 4 (t_2-t_3)^2\) / \((1+t_2^2)(1+t_3^2)\), and similarly for \(d_2^2\) and \(d_3^2\). The values of these various quantities now become of particular interest in the special cases where (xy) is (1, 0) or \((-1,0)\) or (0, 1), which can now be immediately computed in terms of \(t_1\), \(t_2\) and \(t_3\).

Next, consider \({\mathscr {J}} \, = \,\iota _J \, + \, \kappa _J \, {\mathscr {K}} \, + \, \lambda _J \, {\mathscr {L}}\). Assuming again, for the moment, that \(x^2 + y^2 = 1\), it is seen from [7][Theorem 1] that \({\mathscr {K}} = -1 - {\mathscr {R}} = x^2 - 2x - y^2\) and \({\mathscr {L}} = 2 (1+x) y\). So, if \((x,y) = (1,0)\), then we get \({\mathscr {J}} \, = \, \iota _J - \kappa _J\). If instead, \((x,y) = (-1,0)\), then we get \({\mathscr {J}} \, = \, \iota _J + 3 \, \kappa _J\). If instead, \((x,y) = (0,1)\), then we get \({\mathscr {J}} \, = \, \iota _J - \kappa _J + 2 \, \lambda _J\). Using the computed values from the previous paragraph, and using the fact that \(t_1+t_2+t_3 \, = \, t_1 \, t_2 \, t_3\) (because \(\phi _1+\phi _2+\phi _3 = 0\)), it is then straightforward to compute the following values:

$$\begin{aligned} \begin{array}{lll} \iota _J &{} = &{} 4 \, (t_2 - t_3)^2 \, (t_1 t_2 - 1) \, (t_3^2 - 3) \, t_3 \\ \ &{} \ &{} / \; [ \, (1+t_2^2) \, (1+t_3^2)^2 \, (t_1 - t_2) \, ] \\ \kappa _J &{} = &{} 4 \, (t_2 - t_3)^2 \, (t_1 t_2 - 1) \, t_3 \\ \ &{} \ &{} / \; [ \, (1+t_2^2) \, (1+t_3^2) \, (t_1 - t_2) \, ] \\ \lambda _J &{} = &{} 4 \, (t_2 - t_3)^2 \, (t_1 t_2 - 1) \\ \ &{} \ &{} / \; [ \, (1+t_2^2) \, (1+t_3^2) \, (t_2 - t_1) \, ] \\ \end{array} \end{aligned}$$

By symmetry, formulas for \(\kappa _G\), \(\lambda _G\), and \(\rho _G\) can be obtained from the formulas for \(\kappa _J\), \(\lambda _J\), and \(\rho _J\), respectively, by simply making the transposition \(1 \leftrightarrow 3\) on the indices.

An analysis of \({\mathscr {I}}\) begins by noticing that \(I \, = \, d_1^2 \, G \, / \, d_3^2 \, + \, (d_1^2-d_2^2+d_3^2) \, J \, / \, d_1^2 \, + \, d_1^2 \, d_2^2\), and so \({\mathscr {I}} \, = \, d_1^2 \, {\mathscr {G}} \, / \, d_3^2 \, + \, (d_1^2-d_2^2+d_3^2) \, {\mathscr {J}} \, / \, d_1^2 \, + \, d_1^2 \, d_2^2\). From this we can deduce formulas for \(\iota _I\), \(\kappa _I\) and \(\lambda _I\) in terms of \(t_1\), \(t_2\) and \(t_3\). Again, by symmetry, using the transposition \(1 \leftrightarrow 3\) on the indices, we then obtain similar formulas for \(\kappa _H\), \(\lambda _H\) and \(\rho _H\).

Again using \(t_1+t_2+t_3 \, = \, t_1 \, t_2 \, t_3\), it becomes possible to put all these coefficients into the following helpful form, which can be checked by hand or with the aid of algebraic manipulation software. This will then be used to compute the discriminant of Finsterwalder’s cubic.

Lemma 24

Set

$$\begin{aligned} q \, = \, (1+t_1^2) \, (t_2-t_3) \, /[ \, (1+t_3^2) \, (t_2-t_1) \, ] \end{aligned}$$

and

$$\begin{aligned} M \, = \, 4 \, (t_1 t_3 - 1) \, (t_2 - t_1)^2 \, / \, [ \, (t_2 - t_3) \, (1 + t_1^2)^3 \, ]. \end{aligned}$$

Then, \({\mathscr {G}} \, = \, \iota _G \, + \, \kappa _G \, {\mathscr {K}} \, + \, \lambda _G \, {\mathscr {L}}\), \({\mathscr {H}} \, = \iota _H \, + \, \kappa _H \, {\mathscr {K}} \, + \, \lambda _H \, {\mathscr {L}}\), \({\mathscr {I}} \, = \, \iota _I \, + \, \kappa _I \, {\mathscr {K}} \, + \, \lambda _I \, {\mathscr {L}}\), and \({\mathscr {J}} \, = \,\iota _J \, + \, \kappa _J \, {\mathscr {K}} \, + \, \lambda _J \, {\mathscr {L}}\), with

$$\begin{aligned}&\begin{array}{lll} \iota _G &{} = &{} M \, (3 - t_1^2) \, t_1 \\ \kappa _G &{} = &{} - M \, (1+t_1^2) \, t_1 \\ \lambda _G &{} = &{} M \, (1+t_1^2) \\ \iota _H &{} = &{} 3 \, M \, q \, (2 t_1 + t_3 - t_1^2 t_3) \\ \kappa _H &{} = &{} - M \, q \, (2 t_1 + t_3 + 3 t_1^2 t_3) \\ \lambda _H &{} = &{} M \, \, q \, (3 + t_1^2 + 2 t_1 t_3) \\ \end{array}\\&\begin{array}{lll} \iota _I &{} = &{} 3 \, M \, q \, ( t_1 + 2 t_3 - t_1 t_3^2) \\ \kappa _I &{} = &{} - M \, q \, (t_1 + 2 t_3 + 3 t_1 t_3^2) \\ \lambda _I &{} = &{} M \, \, q \, (3 + t_3^2 + 2 t_1 t_3) \\ \iota _J &{} = &{} M \, q^3 \, (3 - t_3^2) \, t_3 \\ \kappa _J &{} = &{} - M \, q^3 \, (1+t_3^2) \, t_3 \\ \lambda _J &{} = &{} M \, q^3 \, (1+t_3^2). \end{array} \end{aligned}$$

Lemma 25

The discriminant of Finsterwalder’s cubic equals a nonzero constant (depending on the control point positions) times

$$\begin{aligned} ({\mathscr {K}}^2 + {\mathscr {L}}^2 + 12 {\mathscr {K}} + 9)^2 \, - \, 4 \, (2 {\mathscr {K}} + 3)^3 . \end{aligned}$$
(6)

Proof of Lemma 16

The discriminant of Finsterwalder’s cubic equals the discriminant of this cubic polynomial (in \(\Lambda \)):

$$\begin{aligned} {\mathscr {G}} \, \Lambda ^3 \, + \, {\mathscr {H}} \, \Lambda ^2 \, + \, {\mathscr {I}} \, \Lambda \, + \, {\mathscr {J}}. \end{aligned}$$

This in turn is a nonzero constant times the discriminant of the cubic polynomial (in \(\Psi = q \, \Lambda \))

where

To manage this computation, let us introduce new (atomic) indeterminates K and L, and then, locally (just inside this proof) define

$$\begin{aligned} \begin{array}{lll} g &{} = &{} (3-t_1^2) \, t_1 \, - \, (1+t_1^2) \, t_1 \, K \, + \, (1+t_1^2) \, L \\ h &{} = &{} 3 \, (2 t_1 + t_3 - t_1^2 t_3) \, - \, (2 t_1 + t_3 + 3 t_1^2 \, t_3) \, K \\ \ &{} \ &{} \; \; \; \, + \, (3 + t_1^2 + 2 t_1 t_3) \, L \\ i &{} = &{} 3 \, (t_1 + 2 t_3 - t_1 t_3^2) \, - \, (t_1 + 2 t_3 + 3 t_1 \, t_3^2) \, K \\ \ &{} \ &{} \; \; \; \, + \, (3 + t_3^2 + 2 t_1 t_3) \, L \\ j &{} = &{} (3-t_3^2) \, t_3 \, - \, (1+t_3^2) \, t_3 \, K \, + \, (1+t_3^2) \, L \end{array} \end{aligned}$$

The discriminant of the cubic polynomial (in w)

$$\begin{aligned} g \, w^3 \, + \, h \, w^2 \, + \, i \, w \, + \, j. \end{aligned}$$

is simply

$$\begin{aligned} 4 \, (t_1 - t_3)^6 \left[ \, 4 \, (2 K + 3)^3 \, - \, (K^2 + L^2 + 12 K + 9)^2 \, \right] . \end{aligned}$$

The claim in the lemma now follows by substituting \({\mathscr {K}}\) and \({\mathscr {L}}\) for K and L, respectively.

\(\square \)

Proposition 4

Grunert’s system of three equations, i.e., the first three equations in (1), has a repeated solution, if and only if the corresponding cubic polynomial of Finsterwalder has a repeated root, if and only if \(({\mathscr {K}}^2 + {\mathscr {L}}^2 + 12 {\mathscr {K}} + 9)^2\) \(=\) \(4 \, (2 {\mathscr {K}} + 3)^3\). Also, \({\mathscr {D}}\), defined in (3), equals a nonzero constant times the discriminant (6) of Finsterwalder’s cubic.

Proof

It is straightforward to check that \(\zeta _L\), defined in (2), equals \({\mathscr {K}} \, + \, {\mathscr {L}} \, i\). The discriminant of Finsterwalder’s cubic (6) can then be seen to be a nonzero constant times \({\mathscr {D}}\), defined in (3). The second “if and only if” is immediate since a polynomial has a repeated root if and only if its discriminant vanishes. Clearly any repeated solution to Grunert’s system corresponds to a repeated root of the cubic polynomial.

The converse must be established. By Lemma 6, \({\mathscr {D}}\) can only be zero when a solution point is on the danger cylinder or CSDC, and in the latter case, some weak relative of the point is on the danger cylinder. Either way, the Grunert system, whose unknowns are \(s_1\), \(s_2\) and \(s_3\), has a repeated solution, by [5][Proposition 1]. \(\square \)

Note: It is known that it is possible to have a repeated root of Grunert’s quartic polynomial without having a repeated solution of Grunert’s system. However, as we now see, a repeated root of Finsterwalder’s cubic polynomial always ensures a repeated solution to Grunert’s system and hence a repeated solution to the extended Grunert system. In this sense, Finsterwalder’s cubic is arguably more fundamental than Grunert’s quartic.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Rieck, M.Q., Wang, B. Locating Perspective Three-Point Problem Solutions In Spatial Regions. J Math Imaging Vis 63, 953–973 (2021). https://doi.org/10.1007/s10851-021-01040-4

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10851-021-01040-4

Keywords

Navigation