dense depth maps from epipolar imagespeople.csail.mit.edu/teller/pubs/aim-1593.pdfmassachusetts...

13
MASSACHUSETTS INSTITUTE OF TECHNOLOGY ARTIFICIAL INTELLIGENCE LABORATORY A.I. Memo No. 1593 November 1996 Dense Depth Maps from Epipolar Images J.P. Mellor, Seth Teller and Tom ´ as Lozano-P ´ erez This publication can be retrieved by anonymous ftp to publications.ai.mit.edu. Abstract Recovering three-dimensional information from two-dimensional images is the fundamental goal of stereo techniques. The problem of recovering depth (three-dimensional information) from a set of images is essentially the correspondence problem: Given a point in one image, find the corresponding point in each of the other images. Finding potential correspondences usually involves matching some image property. If the images are from nearby positions, they will vary only slightly, simplifying the matching process. Once a correspondence is known, solving for the depth is simply a matter of geometry. Real images are composed of noisy, discrete samples, therefore the calculated depth will contain error. This error is a function of the baseline or distance between the images. Longer baselines result in more precise depths. This leads to a conflict: short baselines simplify the matching process but produce imprecise results; long baselines produce precise results but complicate the matching process. In this paper, we present a method for generating dense depth maps from large sets (1000’s) of images taken from arbitrary positions. Long baseline images improve the accuracy. Short baseline images and the large number of images greatly simplifies the correspondence problem, removing nearly all ambiguity. The algorithm presented is completely local and for each pixel generates an evidence versus depth and surface normal distribution. In many cases, the distribution contains a clear and distinct global maximum. The location of this peak determines the depth and its shape can be used to estimate the error. The distribution can also be used to perform a maximum likelihood fit of models directly to the images. We anticipate that the ability to perform maximum likelihood esti- mation from purely local calculations will prove extremely useful in constructing three dimensional models from large sets of images. Copyright c 1996, by Massachusetts Institute of Technology This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the laboratory’s artificial intelligence research is provided in part by Advanced Research Projects Agency of the Department of Defense under Office of Naval Research contract N00014-91-J-4038. The authors were also supported by the Advanced Research Projects Agency of the Department of Defense under Rome Laboratory contract F3060-94-C-0204.

Upload: ngokhuong

Post on 22-Mar-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

MASSACHUSETTS INSTITUTE OF TECHNOLOGYARTIFICIAL INTELLIGENCE LABORATORY

A.I. Memo No. 1593 November 1996

Dense Depth Maps fromEpipolar Images

J.P. Mellor, Seth Teller andTomas Lozano-Perez

This publication can be retrieved by anonymous ftp to publications.ai.mit.edu.

AbstractRecovering three-dimensional information from two-dimensional images is the fundamental goal ofstereo techniques. The problem of recovering depth (three-dimensional information) from a set ofimages is essentially the correspondence problem: Given a point in one image, find the correspondingpoint in each of the other images. Finding potential correspondences usually involves matching someimage property. If the images are from nearby positions, they will vary only slightly, simplifying thematching process.

Once a correspondence is known, solving for the depth is simply a matter of geometry. Real imagesare composed of noisy, discrete samples, therefore the calculated depth will contain error. This erroris a function of the baseline or distance between the images. Longer baselines result in more precisedepths. This leads to a conflict: short baselines simplify the matching process but produce impreciseresults; long baselines produce precise results but complicate the matching process.

In this paper, we present a method for generating dense depth maps from large sets (1000’s) ofimages taken from arbitrary positions. Long baseline images improve the accuracy. Short baselineimages and the large number of images greatly simplifies the correspondence problem, removingnearly all ambiguity. The algorithm presented is completely local and for each pixel generates anevidence versus depth and surface normal distribution. In many cases, the distribution contains aclear and distinct global maximum. The location of this peak determines the depth and its shape canbe used to estimate the error. The distribution can also be used to perform a maximum likelihood fitof models directly to the images. We anticipate that the ability to perform maximum likelihood esti-mation from purely local calculations will prove extremely useful in constructing three dimensionalmodels from large sets of images.

Copyright c�

1996, by Massachusetts Institute of Technology

This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology.Support for the laboratory’s artificial intelligence research is provided in part by Advanced Research Projects Agency of theDepartment of Defense under Office of Naval Research contract N00014-91-J-4038. The authors were also supported bythe Advanced Research Projects Agency of the Department of Defense under Rome Laboratory contract F3060-94-C-0204.

1 Introduction

Recovering three-dimensional information fromtwo-dimensional images is the fundamental goalof stereo techniques. The problem of recoveringthe missing dimension, depth, from a set of im-ages is essentially the correspondence problem:Given a point in one image find the correspond-ing point in each of the other images. Finding po-tential correspondences usually involves match-ing some image property in two or more images.If the images are from nearby positions, they willvary only slightly, simplifying the matching pro-cess.

������������

������������ ���

� � � �

Figure 1: Stereo calculation.

Once a correspondence is known, solving fordepth is simply a matter of geometry. Real im-ages are noisy, and measurements taken fromthem are also noisy. Figure 1 shows how thedepth of point � can be calculated given two im-ages taken from known cameras ��� and ��� andcorresponding points � � and � � within those im-ages, which are projections of � . The location of� � in the image is uncertain, as a result � can lieanywhere within the left cone. A similar situa-tion exists for ��� . If � � and ��� are correspondingpoints, then � could lie anywhere in the shadedregion. Clearly, for a given depth increasing thebaseline between � � and � � will reduce the un-certainty in depth. This leads to a conflict: shortbaselines simplify the matching process, but pro-duce uncertain results; long baselines produceprecise results, but complicate the matching pro-cess.

One popular set of approaches for dealing

with this problem are relaxation techniques1

[6, 9]. These methods are generally used ona pair of images; start with an educated guessfor the correspondences; then update them bypropagating constraints. These techniques don’talways converge and don’t always recover thecorrect correspondences. Another approach isto use multiple images. Several researchers,such as Yachida [11], have proposed trinocularstereo algorithms. Others have also used spe-cial camera configurations to aid in the corre-spondence problem, [10, 1, 8]. Bolles, Baker andMarimont [1] proposed constructing an epipolar-plane image from a large number of images. Insome cases, analyzing the epipolar-plane imageis much simpler than analyzing the original setof images. The epipolar-plane image, however,is only defined for a limited set of camera po-sitions. Tsai [10] and Okutomi and Kanade [8]defined a cost function which was applied di-rectly to a set of images. The extremum of thiscost function was then taken as the correct cor-respondence. Occlusion is assumed to be negli-gible. In fact, Okutomi and Kanade state thatthey “invariably obtained better results by usingrelatively short baselines.” This is likely the re-sult of using a spatial matching metric (a corre-lation window) and ignoring perspective distor-tion. Both methods used small sets of images,typically about ten. They also limited camerapositions to special configurations. Tsai used alocalized planar configuration with parallel op-tic axes; and Okutomi and Kanade used shortlinear configurations. Cox et al [2] proposed amaximum-likelihood framework for stereo pairs,which they have extended to multiple images.This work attempts to explicitly model occlu-sions, although, in a somewhat ad hoc manner.It uses a few global constraints and small sets ofimages.

The work presented here also uses multi-ple images and draws its major inspiration fromBolles, Baker and Marimont [1]. We define aconstruct called an epipolar image and use it toanalyze evidence about depth. Like Tsai [10]and Okutomi and Kanade [8] we define a costfunction that is applied across multiple images,and like Cox [2] we model the occlusion pro-cess. There are several important differences,

1For a more complete and detailed analysis of this andother techniques see [5, 7, 4].

1

however. The epipolar image we define is validfor arbitrary camera positions and models someforms of occlusion. Our method is intended torecover dense depth maps of built geometry (ar-chitectural facades) using thousands of imagesacquired from within the scene. In most cases,depth can be recovered using purely local in-formation, avoiding the computational costs ofglobal constraints. Where depth cannot be recov-ered using purely local information, the depthevidence from the epipolar image provides aprincipled distribution for use in a maximum-likelihood approach [3].

2 Our Approach

In this section, we review epipolar geometry andepipolar-plane images, then define a new con-struct called an epipolar image. We also discussthe construction and analysis of epipolar images.Stereo techniques typically assume that relativecamera positions and internal camera calibra-tions are known. This is sufficient to recoverthe structure of a scene, but without additionalinformation the location of the scene cannot bedetermined. We assume that camera positionsare known in a global coordinate system such asmight be obtained from GPS (Global PositioningSystem). Although relative positions are suffi-cient for the discussion in this section, global po-sitions allow us to perform reconstruction incre-mentally using disjoint scenes. We also assumeknown internal camera calibrations. The nota-tion we use is defined in Table 1.

���

����

� ��

� �� �� ��

� �

� �

Figure 2: Epipolar geometry.

��� 3D world point.�� Center of projection for the � th

camera� � Image plane.� � Image point. Projection

of ��� onto� � .���� Epipolar plane.� ��� � Epipolar line. Projection of

� ��onto

� � .��� � Epipolar plane image.Constructed using

� �� .��� Base image point. Any point in

any image.��� Base camera center. Camera

center associated with ��� .� � � Base image. Contains ��� .� � Base line. 3D line passingthrough � � and ��� .� � Epipolar image. Constructedusing ��� . ! indexes all possible��� ’s."$#&%('

Function of the image at point%

(e.g. image intensities,correlation window, features).)*#&% ��+ % � ' Matching function. Measuresmatch between

% � and% �

(large value better match)., #.- +0/ ' Match quality. Analyze�

.13254�687Set of all

2’s such that

6is true.9: � : � Unit vector in the direction from: � to

: � .; # � � ' Depth of image point � � . If lowconfidence or unknown, then < .=?>Modeled object. Object whoseposition and geometry havealready been reconstructed.

Table 1: Notation used in this paper.

2

2.1 Epipolar Geometry

Epipolar geometry provides a powerful stereoconstraint. Given two cameras with known cen-ters � � and ��� and a point � in the world, theepipolar plane

� � is defined as shown in Figure2. � projects to � � and � � on image planes

� ��and

� �� respectively. The projection of� � onto

� ��and

� �� produces epipolar lines� �� and

� �� . Thisis the essence of the epipolar constraint. Givenany point � on epipolar line

� �� in image� �� , if the

corresponding point is visible in image� �� , then

it must lie on the corresponding epipolar line� �� .

������ ��� � � � �� ���� �� �� �� ���

� ��� ���� �� ��� ��

Figure 3: Epipolar-plane image geometry.

2.2 Epipolar-Plane Images

Bolles, Baker and Marimont [1] used the epipo-lar constraint to construct a special image whichthey called an epipolar-plane image. As notedearlier, an epipolar line

� � contains all of theinformation about the epipolar plane

� � thatis present in the � ��� image

� � . An epipolar-plane image is built using all of the epipolarlines

� � ��� ��� from a set of images � � ��� whichcorrespond to a particular epipolar plane

� ��(Figure 3). Since all of the lines

� � ��� ��� in anepipolar-plane image

��� � are projections of thesame epipolar plane

� �� , for any given point �in

� � � , if the corresponding point in any otherimage

� � is visible, then it will also be in-cluded in

��� � . Bolles, Baker and Marimont ex-ploited this property to solve the correspondenceproblem for several special cases of camera mo-tion. For example, with images taken at equallyspaced points along a linear path perpendicu-lar to the optic axes, corresponding points formlines in the epipolar-plane image; therefore find-

ing correspondences reduces to finding lines inthe epipolar-plane image.

For a given epipolar plane� �� , only those

images whose camera centers lie on� �����

�� 4 �� �������� ��� can be included in epipolar-plane image

��� � . For example, using a set ofimages whose camera centers are coplanar, anepipolar-plane image can only be constructed forthe epipolar plane containing the camera cen-ters. In other words, only a single epipolarline from each image can be analyzed using anepipolar-plane image. In order to analyze allof the points in a set of images using epipolar-plane images, all of the camera centers must becollinear. This can be serious limitation. "!

# "$# &%# $

'

!' %

'( ! )

%* !#* $#

+

(-,* %#) ,

, ')$

)! * ,

( $

( %Figure 4: Epipolar image geometry.

2.3 Epipolar Images

For our analysis we will define an epipolar im-age

�which is a function of one image and a

point in that image. An epipolar image is sim-ilar to an epipolar-plane image, but has one crit-ical difference that ensures it can be constructedfor every pixel in an arbitrary set of images.Rather than use projections of a single epipolarplane, we construct the epipolar image from thepencil of epipolar planes defined by the line

� �through one of the camera centers ��� and oneof the pixels � � in that image

� � � (Figure 4).� �

3

is the epipolar plane formed by� � and the � � �

camera center � . Epipolar line� � contains all

of the information about� � present in

� � . Anepipolar-plane image is composed of projectionsof a plane; an epipolar image is composed of pro-jections of a line. The cost of guaranteeing anepipolar image can be constructed for every pixelis that correspondence information is accumu-lated for only one point � � , instead of an entireepipolar line.

���

����� ��

����

��

� �� �� �

� �

� �

� ��

� �� �

� ��� � � � ��

Figure 5: Set of points which form a possible cor-respondence.

To simplify the analysis of an epipolar im-age we can group points from the epipolar linesaccording to possible correspondences (Figure5). � � projects to � � in

� � ; therefore � � � � hasall of the information contained in � � ��� about� � . There is also a distinct set of points � � � �for � � ; therefore

�� � 4 for a given

- � contains allof the possible correspondences for ��� . If ���is a point on the surface of a physical objectand it is visible in � � � � and

� � � , then measure-ments taken at � � should match those takenat ��� (Figure 6a). Conversely, if � � is not apoint on the surface of a physical object thenthe measurements taken at � � are unlikely tomatch those taken at � � (Figures 6b and 6c).Epipolar images can be viewed as tools for ac-cumulating evidence about possible correspon-dences of ��� . A simple function of

-is used to

build���� 4� ��� -���� � �� ��� � � � � ����� ��� � � � . In

essence,1 ��� 7 is a set of samples along

� � at in-

��� ���� ��!���" � �

a

#�$% &#!&#�' #)(

* (

b

+-,.0/+1/+�2 +�3

4 3

c

Figure 6: Occlusion effects.

4

creasing depths from the image plane.

2.4 Analyzing Epipolar Images

An epipolar image�

is constructed by organizing� "$# � � ' 4 "*# 'is a function of the image �

into a two-dimensional array with � and-

as thevertical and horizontal axes respectively. Rowsin

�are epipolar lines from different images;

columns form sets of possible correspondencesordered by depth2 (Figure 7). The quality , #.- 'of the match between column

-and � � can be

thought of as evidence that � � is the projectionof ��� and

-is its depth. Specifically:

, #.- ' ��� )?# "*# � � ' + "*# ��� '�' + (1)

where"*# '

is a function of the image and)*# '

is acost function which measures the difference be-tween

"*# � � ' and"$# � � ' . A simple case is,

"$#&%(' � intensity values at%

and )?#&% ��+ % � ' � � 4 % � � % � 4��Real cameras are finite, and � � may not be con-tained in the image

� � � � � ��� � � � � � . Only terms

for which � � � � � � � should be included in (1). Tocorrect for this, , #.- ' is normalized, giving:

, #.- ' � � 4�� � � 1�� �� 7

)?# "$# � � ' + "*# � � '�'

� 4�� �� 1�� �� 7��

�(2)

Ideally, , #.- ' will have a sharp, distinct peakat the correct depth, so that

��� �������� # , #.- '�' � the correct depth of � � �As the number of elements in

�� � 4 for a given

- �increases, the likelihood increases that , #.- ' willbe large when � � lies on a physical surface andsmall when it does not. Occlusions do not pro-duce peaks at incorrect depths or false posi-tives3. They can however, cause false negatives

2The depth of � can be trivially calculated from � ,therefore we consider � and depth to be interchangeable.

3Except possibly in adversarial settings.

� �! "#! �#

!%$#

!%&#

' "' $( "

� $( $&

( $ � ( ��

)+*-,/. 0�1�2 .43' �

' &

576 098;:�<>=%?@A6�B =DCFE GH?

( �&

( �$( $$

Figure 7: Constructing an epipolar image.

IKJIMLION

P JI>Q

RSLR N

T>L

Figure 8: False negative caused by occlusion.

5

or the absence of a peak at the correct depth (Fig-ure 8). A false negative is essentially a lack ofevidence about the correct depth. Occlusions canreduce the height of a peak, but a dearth of con-curring images is required to eliminate the peak.Globally this produces holes in the data. Whileless then ideal, this is not a major issue and canbe addressed in two ways: removing the contri-bution of occluded views, and adding unoccludedviews by acquiring more images.

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���� �Figure 9: Exclusion region for � � .

A large class of occluded views can be elim-inated quite simply. Figure 9 shows a point � �and its normal � � . Images with camera centersin the hashed half space cannot possibly view��� . � � is not known a priori, but the fact that� � is visible in

� � � limits its possible values. Thisrange of values can then be sampled and used toeliminate occluded views from , #.- ' . Let / be anestimate of � � and

9�� ��� be the unit vector along

the ray from �� to ��� , then ��� can only be visibleif

9� � �� / � � .

If the vicinity of � � ��� is modeled (perhapsincompletely) by previous reconstructions, thenthis information can be used to improve the cur-rent reconstruction. Views for which the depth4; # � � ' at � � is less than the distance from

� � to��� can also be eliminated. For example, if

= �and

= � have already been reconstructed, then� � 1 � +� +�� 7 can be eliminated from , #.- ' (Figure8). The updated function becomes:

, #.- +0/ ' � � �� )*# "*# � � ' + "*# ��� '�'

� �� � (3)

4Distance from � �� to the closest previously recon-structed object or point along the ray starting at � � in thedirection of � � .

where

� � ��� �� � �������� � � � � � �9� � �� / � �; # � � '�� � �� �� ��� � �

� ���� �

Then, if sufficient evidence exists,

��� �������� � � # , #.- +0/ '�'�� - � depth of ���/ an estimate of � � �

One way to eliminate occlusions such as thoseshown in Figure 8 is to process the set of epipo-lar images

1 � � 7 in a best first fashion. This isessentially building a partial model and thenusing that model to help analyze the difficultspots. , #.- +0/ ' is calculated using purely localoperations. Another approach is to incorporateglobal constraints.

3 Results

Synthetic imagery was used to explore the char-acteristics of , #.- ' and , #.- +0/ ' . A CAD modelof Technology Square, the four-building complexhousing our laboratory, was built by hand. Thelocations and geometries of the buildings weredetermined using traditional survey techniques.Photographs of the buildings were used to ex-tract texture maps which were matched with thesurvey data. This three-dimensional model wasthen rendered from 100 positions along a “walkaround the block” (Figure 10). From this set ofimages, a

� � � and � � were chosen and an epipolarimage

�constructed.

�was then analyzed using

two match functions:

, #.- ' � � 4 � � � 1%� �� 7

)*# "*# � � ' + "*# ��� '�'

� 4 � � � 1�� �� 7 �

(4)

and

, #.- +0/ ' � � �� � 9�� ��� � / � )?# "*# � � ' + "*# ��� '�'

� �� 9

�� ��� � / (5)

where"*#&% ' � hsv

#&% ' 5 �"!h #&%(' + s #&% ' + v #&%('$# T (6)5hsv is the well known hue, saturation and value color

model.

6

Figure 10: Examples of the rendered model.

)?# !�� � +�� � +�� � # T + !�� � +�� � +�� � # T ' � (7)

�� ����� � � # � � ����� # � � � � � '0' �

# ����� ��� � ' 4 � � ��� � 4-�Figures 11 and 12 show a base image

� � � with��� marked by a cross. Under

� � � is the epipolarimage

�generated using the remaining 99 im-

ages. Below�

is the matching function , #.- ' (4)and , #.- +0/ ' (5). The horizontal scale,

-or depth,

is the same for�

, , #.- ' and , #.- +0/ ' . The verticalaxis of

�is the image index, and of , #.- +0/ ' is a

coarse estimate of the orientation / at � � . Thevertical axis of , #.- ' has no significance; it is asingle row that has been replicated to increasevisibility. To the right, , #.- ' and , #.- +0/ ' are alsoshown as two-dimensional plots6.

Figure 11a shows the epipolar image that re-sults when the upper left-hand corner of the fore-ground building is chosen as � � . Near the bot-tom of

�,� � is close to horizontal, and � � is the

projection of blue sky everywhere except at thebuilding corner. The corner points show up in�

near the right side as a vertical streak. Thisis as expected since the construction of

�places

the projections of � � in the same column. Nearthe middle of

�, the long side to side streaks

6Actually, ������ ����� ��!"���$# is plotted for �%� ���&� � .

result because � � is occluded, and near the topthe large black region is produced because � � ��� � . Both , #.- ' and , #.- +0/ ' have a sharp peak7

that corresponds to the vertical stack of cornerpoints. This peak occurs at a depth of 2375units (

- � � � ) for , #.- ' and a depth of 2385(- � � ) for , #.- +0/ ' . The actual distance to the

corner is 2387.4 units. The reconstructed worldcoordinates of � � are ! � ��'('H� +!� � ��) ' + � ) � � # T and! � ��' � ) +!� � �%*(* + � ) � * # T respectively. The actual co-ordinates8 are ! � ��'('%+ +!� � �%*,) + � ) '%+ # T.

Figure 11b shows the epipolar image that re-sults when a point just on the dark side of thefront left edge of the building is chosen as � � .Again both , #.- ' and , #.- +0/ ' have a single peakthat agrees well with the depth obtained usingmanual correspondence. This time, however, thepeaks are asymmetric and have much broadertails. This is caused by the high contrast be-tween the bright and dark faces of the buildingand the lack of contrast within the dark face.The peak in , #.- +0/ ' is slightly better than the onein , #.- ' .

Figure 11c shows the epipolar image that re-sults when a point just on the bright side of thefront left edge of the building is chosen as ��� .

7White indicates minimum error, black maximum.8Some of the difference may be due to the fact that �(-

was chosen by hand and might not be the exact projectionof the corner.

7

� � � and ���

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' 0.25

0.5

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

0 100 200 300 400 500-a

� � � and ���

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- '0.25

0.5

0.75

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

1

0 100 200 300 400 500-b

� � � and � �

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' 0.25

0.5

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

0 100 200 300 400 500-c

Figure 11:� � � , � � , � , , #.- ' and , #.- +0/ ' .

8

� � � and ���

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- '0.25

0.5

0.75

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

1

0 100 200 300 400 500-a

� � � and ���

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' 0.25

0.5

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

0 100 200 300 400 500-b

� � � and � �

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

� ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- +0/ ' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

, #.- '0.25

0.5

0.75

1

0 100 200 300 400 500-

, #.- +0/ '0.25

0.5

0.75

1

0 100 200 300 400 500-c

Figure 12:� � � , � � , � , , #.- ' and , #.- +0/ ' .

9

This time , #.- ' and , #.- +0/ ' are substantially dif-ferent. , #.- ' no longer has a single peak. Thelargest peak occurs at

- � � *� and the nextlargest at

- � �� * . The manual measurementagrees with the peak at

- � �� * . The peak at- � � *� corresponds to the point where� � exits

the back side of the building. , #.- +0/ ' , on the otherhand, still has a single peak, clearly indicatingthe usefulness of estimating / .

In Figure 12a, � � is a point from the inte-rior of a building face. There is a clear peak in, #.- +0/ ' that agrees well with manual measure-ments and is better than that in , #.- ' . In Figure12b, � � is a point on a building face that is oc-cluded (Figure 8) in a number of views. Both , #.- 'and , #.- +0/ ' produce fairly good peaks that agreewith manual measurements. In Figure 12c, � �is a point on a building face with very low con-trast. In this case, neither , #.- ' nor , #.- +0/ ' pro-vide clear evidence about the correct depth. Theactual depth occurs at

- � � ) + . Both , #.- ' and, #.- +0/ ' lack sharp peaks in large regions with lit-tle or no contrast or excessive occlusion. Choos-ing � � as a sky or ground pixel will produce anearly constant , #.- ' or , #.- +0/ ' .

To further test our method, we reconstructedthe depth of a region in one of the images (Fig-ure 13). For each pixel inside the black rectan-gle the global maximum of , #.- +0/ ' was taken asthe depth of that pixel. Figure 14a shows thedepth for each of the 3000 pixels reconstructed

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Figure 13: Reconstructed region.

plotted against the%

image coordinate of thepixel. Slight thickening is caused by the fact thatdepth changes slightly with the � image coordi-nate. The cluster of points at the left end (neara depth of 7000) and at the right end correspondto sky points. The actual depth for each pixel

was calculated from the CAD model. Figure 14bshows the actual depths (in grey) overlaid on topof the reconstructed values. Figure 15 shows thesame data ploted in world coordinates9. The ac-tual building faces are drawn in grey, and thecamera position is marked by a grey line extend-ing from the center of projection in the directionof the optic axis. The reconstruction shown (Fig-ures 14 and 15) was performed purely locally ateach pixel. Global constraints such as orderingor smoothness were not imposed, and no attemptwas made to remove low confidence depths orotherwise post-process the global maximum of, #.- +0/ ' .

4 Conclusions

This paper describes a method for generatingdense depth maps directly from large sets of im-ages taken from arbitrary positions. The algo-rithm presented uses only local calculations, issimple and accurate. Our method builds, thenanalyzes, an epipolar image to accumulate evi-dence about the depth at each image pixel. Thisanalysis produces an evidence versus depth andsurface normal distribution that in many casescontains a clear and distinct global maximum.The location of this peak determines the depth,and its shape can be used to estimate the er-ror. The distribution can also be used to per-form a maximum likelihood fit of models to thedepth map. We anticipate that the ability toperform maximum likelihood estimation frompurely local calculations will prove extremelyuseful in constructing three-dimensional modelsfrom large sets of images.

Acknowledgments

We wish to thank all those who helped constructthe three-dimensional model that produced thesynthetic imagery used in this paper. We alsowish to thank George Chou for providing therendered model and camera information.

9All coordinates have been divided by 1000 to simplifythe plots.

10

100 200 300 400x (image coordinates)

0

2000

4000

6000

8000

dept

h (w

orld

coo

rdin

ates

)

a

100 200 300 400x (image coordinates)

0

2000

4000

6000

8000

dept

h (w

orld

coo

rdin

ates

)

b

Figure 14: Reconstructed and actual depthmaps.

-2 -1 0 1 2 3X

-4

-3

-2

-1

0

1

2

Y

a

-2-1

01

2

X

-5-4

-3-2

Y

0

1

2

Z

b

Figure 15: Reconstructed and actual worldpoints.

11

References

[1] Robert C. Bolles, H. Harlyn Baker, andDavid H. Marimont. Epipolar-plane im-age analysis: An approach to determiningstructure from motion. International Jour-nal of Computer Vision, 1(1):7–55, 1987.

[2] Ingemar J. Cox, Sunita L. Hingorani,Satish B. Rao, and Bruce M. Maggs. A max-imum likelihood stereo algorithm. Com-puter Vision and Image Understanding,63(3):542–567, May 1996.

[3] Richard O. Duda and Peter E. Hart. PatternClassification and Scene Analysis. John Wi-ley & Sons, New York, NY, 1973.

[4] Olivier Faugeras. Three-Dimensional Com-puter Vision. MIT Press, Cambridge, MA,1993.

[5] Berthold Klaus Paul Horn. Robot Vision.MIT Press, Cambridge, MA, 1986.

[6] D. Marr and T. Poggio. A computationaltheory of human stereo vision. Proceedingsof the Royal Society of London, B(204):301–328, 1979.

[7] John E. W. Mayhew and John P. Frisby, ed-itors. 3D Model Recognition from Stereo-scopic Cues. MIT Press, Cambridge, MA,1991.

[8] Masatoshi Okutomi and Takeo Kanade. Amuliple-baseline stereo. IEEE Transactionson Pattern Analysis and Machine Intelli-gence, 15(4):353–363, April 1993.

[9] S. B. Pollard, J. E. W. Mayhew, and J. P.Frisby. Pmf: A stereo correspondence algo-rithm using a disparity gradient constraint.Perception, 14:449–470, 1985.

[10] Roger Y. Tsai. Multiframe image pointmatching and 3-d surface reconstruction.IEEE Transactions on Pattern Analysis andMachine Intelligence, 5(2):159–174, March1983.

[11] M. Yachida. 3d data acquisition by multipleviews. In O. D. Faugeras and G. Giralt, ed-itors, Robotics Research: the Third Interna-tional Symposium, pages 11–18. MIT Press,Cambridge, MA, 1986.

12