are independent with each other, our algorithm seeks the closest ${\bf{q}}_i$ for each ${\bf{p}}_i$. According to , points ${\bf{q}}_i$ are constrained to the related lines of sight. Hence, we vertically project ${\bf{p}}_i$ onto the related lines of sight to obtain the points’ relative depths with respect to the control point $o$ by

$$\lambda_i =  {\bf{x}}_i^T {\bf{p}}_i / ({\bf{x}}_i^T {\bf{x}}_i),  {\kern 5pt} i = 1,...,N {\kern 5pt} {\rm{and}} {\kern 5pt} i\ne o.
\label{eq_lambda}$$

Then, points ${\bf{q}}_i$ are updated according to Eq..

**(2) ${\bf{p}}_i$ estimation stage.**

Points ${\bf{p}}_i$ are determined by $\bf{R}$ and $\mu$. According to , the updated $\bf{R}$ and $\mu$ should make points {$\mu {\bf{RS}}_i$} have the smallest weighted sum of squared distances to points {${\bf{q}}_i - {\bf{x}}_o$}, and subject to ${\bf{R}}^T{\bf{R}} = {\bf{I}}_{3\times 3}$. According to the objective function , the weights used in this stage are $1/\lambda_i$ in the previous iteration.

Denoting matrices ${\bf{A}} = \left[ {\frac{{{{\bf{q}}_1} - {{\bf{x}}_o}}}{{{\lambda _1}}},...,\frac{{{{\bf{q}}_N} - {{\bf{x}}_o}}}{{{\lambda _N}}}} \right]_{3\times N}$ and ${\bf{S}} = \left[ {\frac{{{{\bf{S}}_1}}}{{{\lambda _1}}},...,\frac{{{{\bf{S}}_N}}}{{{\lambda _N}}}} \right]_{3\times N}$, then according to Ref. [@arun1987least] $$[{\bf{U}},{\bf{\Sigma }},{{\bf{V}}^T}] = {\rm{svd}}({\bf{A}}{{\bf{S}}^T}), {\bf{R}} = {\bf{U}}{{\bf{V}}^T},
\label{eq_R}$$

\[!htb\]

Because points ${\bf{p}}_i$ are directly generated from ${\bf{S}}_i$ according to Eq., Eq. suggests that $\bf{R}$ is updated according to the 