Fua-7
that only edges that belong to visible faces are visible. This is effective for convex objects but my fail for
concave ones. Figure 3 illustrates the strengths and weaknesses of this approach. A better way to compute
visibility would be to use the Z-buffering capabilities of SGI machines; unfortunately this impractical for the
time being because the graphics libraries supplied by SGI cannot currently be loaded into RCDE, due to
limitations of the Lucid Common Lisp compiler.
Formally, given a set of N images, we define a visibility list A*l <k<N for each image and we rewrite the
image energy of Equation 6 as
£• = £ £ 1 - ( 15 >
1 <k<N
¿1 = Y *5(/ 5 r fc (x t -,y,-,2,),(Pr /s (x l+ i,y (+ i,2: l+ i)))/ L i,i +1 • ( 16 )
l<i<n
Figure 4: Three-stage optimization of a 3-D Network, (a) The object is hand-entered using RCDE.
By default the vertex heights are that of the underlying terrain model, (b) The object is
optimized using only the top view. The object matches the roof outline in the top view
but not the lower one because the object is higher than the terrain, (c) The height of the
vertices is computed approximately by searching a range of z values while maintaining the
shape of the object’s projection in the top view, (d) The network’s 3-D shape is further
refined by simultaneously optimizing the x, y and z values of the vertices’ positions. Its
projections then match image features in both views, guaranteeing that the 3-D shape of
the underlying objects has been recovered.
The optimization typically is a three step process and is illustrated by Figure 4:
1. We optimize a snake using a single image. Since a single view underconstrains the three degrees of
freedom of the individual vertices, we fix one of them for each vertex. The z value is fixed and only
the x and y coordinates are allowed to change. As shown in Figure 4(b), at the end of this first step,