Determine an ellipsoid from $3$ perspective images of it

3dellipsoidsgeometryprojective-geometryquadrics

There is an ellipsoid of unknown dimensions and unknown orientation hanging somewhere (also unknown) in $3$-dimensional space. You are given three perspective images of it from three distinct cameras whose positions and orientations are known.

How can the ellipsoid be determined based on this information?


This problem is inspired by

Best Answer

Most of the following should apply to quadrics in general, but I'll refer to here to proper ellipsoids and not worry about the general case and edge conditions.

Before sketching out two reconstruction methods here are some preliminaries.

An ellipsoid is defined by a quadratic equation

$$ Ax^2+By^2+Cz^2+Dxy+Eyz+Fzx+Gx+Hy+Iz+J=0. $$

This can be rewritten in the form $$\mathbf{X}^T Q \mathbf{X}=0$$ where $\mathbf{X}^T=[x,y,z,1]$ and $Q=Q^T$ is a $4\times4$ symmetric matrix. If $Q=[q_{ij}]$ then $q_{11}=A, q_{12}=q_{21}=D/2$, etc.

This form is handy for various operations. For example, $\mathbf{X}^T Q^{-1} \mathbf{X}=0$ defines the quadric that is the dual of the ellipsoid defined by $\mathbf{X}^T Q \mathbf{X}=0$. (for more on this see section 2.2 of this paper.)

$5$ points in general define a conic. The well known method of finding the equation of a conic, given $5$ points is given in this answer.

$9$ points in general define an ellipsoid. To find the equation of the ellipsoid, generalize the method used for conics.

There is a caveat, in that the points have to be in some sense independent. Otherwise the equation will be degenerate.

  • For the case of conics, the points have to be not only distinct, but no more than three points can be collinear.

  • For the case of quadrics/ellipsoids, no more than $5$ of the $9$ points can lie on the same conic. Given two conics lying on the ellipsoid, no more than $8$ points can lie on these two conics (see Figure 2 in this paper).

With these preliminaries, here are some suggestions for solving the $3$-camera reconstruction problem.

Find nine points on the ellipsoid. An answer to a related question gives a method for computing points given two cameras. This method identifies points on two ellipses lying on the ellipsoid, but as noted in the preliminaries a maximum of $8$ points can be used from these ellipses. So a ninth point can be found from a different pair of cameras using the third camera.

Find nine tangent planes. To find a tangent plane, take a point $T$ on one of the image plane ellipses, and find its tangent $t$ to the ellipse. If the point $X$ is the corresponding camera position the plane containing $t$ and $TX$ is a tangent plane of the ellipsoid. Find three such tangent planes for each image ellipse, for a total of nine tangent planes. Using the nine points that are the duals of the tangent planes, build a quadric on which those points lie. Then the dual of that quadric (using the trick in the preliminaries) is the desired ellipsoid.

Use epipolar methods. This paper uses concepts from epipolar geometry (important in computer vision) to solve the problem. Frankly, I haven't had the time to read and understand it, but maybe it is helpful. I don't doubt that the solution they give is smarter and more robust than the two suggestions I've given above.

Related Question