21.08.2013 Views

Accurate, Dense, and Robust Multi-View Stereopsis (PMVS) [1,2,3]

Accurate, Dense, and Robust Multi-View Stereopsis (PMVS) [1,2,3]

Accurate, Dense, and Robust Multi-View Stereopsis (PMVS) [1,2,3]

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Accurate</strong>, <strong>Dense</strong>, <strong>and</strong> <strong>Robust</strong><br />

<strong>Multi</strong>-<strong>View</strong> <strong>Stereopsis</strong><br />

(<strong>PMVS</strong>) [1,2,3]<br />

[1] Yasutaka Furukawa <strong>and</strong> Jean Ponce, “<strong>Accurate</strong>, <strong>Dense</strong>, <strong>and</strong> <strong>Robust</strong> <strong>Multi</strong>-<strong>View</strong> <strong>Stereopsis</strong>”, in CVPR, 2007<br />

[2] Yasutaka Furukawa , “HIGH-FIDELITY IMAGE-BASED MODELING”, PhD thesis, 2008<br />

[3] Yasutaka Furukawa <strong>and</strong> Jean Ponce, “<strong>Accurate</strong>, <strong>Dense</strong>, <strong>and</strong> <strong>Robust</strong> <strong>Multi</strong>-<strong>View</strong> <strong>Stereopsis</strong>”, in PAMI, 2009<br />

1


Abstract<br />

This article proposes a novel algorithm for multi-view<br />

stereopsis that outputs a dense set of small rectangular<br />

patches covering the surfaces visible in the images.<br />

<strong>Stereopsis</strong> is implemented as a match, exp<strong>and</strong>, <strong>and</strong><br />

filter procedure, starting from a sparse set of matched<br />

key-points, <strong>and</strong> repeatedly exp<strong>and</strong>ing these before using<br />

visibility constraints to filter away false matches.<br />

2


Abstract<br />

Simple but effective methods are also proposed to turn<br />

the resulting patch model into a mesh which can be further<br />

refined by an algorithm that enforces both photometric<br />

consistency <strong>and</strong> regularization constraints.<br />

A quantitative evaluation on the Middlebury benchmark<br />

shows that the proposed method outperforms all others<br />

submitted so far for four out of six datasets.<br />

3


1. Feature Detection & Matching<br />

2. Expansion<br />

Key Elements Of <strong>PMVS</strong><br />

Detection: DOG & Harris<br />

Matching : Epipolar Constrain<br />

Identifying Cells for Expansion<br />

Expansion Procedure<br />

3. Filtering : Enforces visibility consistency<br />

4. Polygonal surface reconstruction<br />

Iterate<br />

3 times<br />

4


Key Elements Of <strong>PMVS</strong><br />

5


<strong>PMVS</strong><br />

6


1. Patch<br />

Definitions<br />

: : ,, ,, =−(,,)<br />

=−(,,)<br />

() () =<br />

∑ ] ]<br />

<br />

∑ ] <br />

∑ ] <br />

<br />

= <br />

∑ = <br />

<br />

∑ <br />

∑ ] <br />

∑ ] <br />

<br />

= <br />

∑ = + <br />

<br />

∑ + <br />

7


2. Photometric Discrepancy Function<br />

=<br />

1<br />

|()\R()|<br />

ℎ(,, )<br />

()\()<br />

ℎ , , = 1−(,, )<br />

: visible image which ℎ <br />

() ∶ <br />

Definitions<br />

8


() ∶ {| ∙<br />

<br />

>cos()}<br />

== 60°, ℎ = {1, 2, 3}<br />

= 0.7 + 0.4 = 1.1<br />

∗ : ∈,ℎ, , ≤ }<br />

== 0.5 ℎ ∗ = {1,3}<br />

∗ = 0.4<br />

9


3. Image Models<br />

Definitions<br />

<br />

10


1. Feature Detection & Matching<br />

2. Expansion<br />

Key Elements Of <strong>PMVS</strong><br />

Detection: DOG & Harris<br />

Matching : Epipolar Constrain<br />

Identifying Cells for Expansion<br />

Expansion Procedure<br />

3. Filtering : Enforces visibility consistency<br />

4. Polygonal surface reconstruction<br />

11


1. Detect blob <strong>and</strong> corner features using the DoG<br />

<strong>and</strong> Harris operators<br />

(32*32 grids & 4 local maxima with strongest response)<br />

Harris: <br />

Feature Detection<br />

<br />

<br />

<br />

<br />

<br />

<br />

12


Feature Detection<br />

Harris: M matrix derivation(local auto-correlation function)<br />

13


Feature Detection<br />

DOG : <br />

14


Feature Matching<br />

15


Feature Matching<br />

16


Feature Matching<br />

P matrix is known for each image<br />

= ]<br />

= − ∗<br />

17


Feature Matching<br />

All features have been detected<br />

by last step “Feature Detection”<br />

18


Feature Matching<br />

19


Feature Matching<br />

(): { ’}<br />

: /| |<br />

: <br />

20


Feature Matching<br />

:{| ∙<br />

<br />

>cos()}<br />

∗ :∈,ℎ, , ≤ }<br />

21


Feature Matching<br />

Patch Optimization<br />

22


Optimization: The geometric parameters <strong>and</strong><br />

are optimized by simply minimizing the<br />

photometric discrepancy score<br />

∗ =<br />

Patch Optimization<br />

1<br />

|∗ ()\R()|<br />

ℎ(,, )<br />

∗ ()\()<br />

1. () <strong>and</strong> () determine a plane which includes the patch<br />

2. Sampled pixels of patch change with the modification of<br />

() <strong>and</strong> () which result in the change of discrepancy<br />

score<br />

23


Patch Optimization<br />

3 freedoms :<br />

1. Constrain c(p) lie on a ray such that its image<br />

projection in R(p) does not change, reducing<br />

its number of degrees of freedom to one <strong>and</strong><br />

solving only for a depth<br />

()<br />

<br />

P’<br />

p<br />

p’<br />

24


Patch Optimization<br />

2. n(p) : parameterized by Euler angles<br />

(pitch(x axis) <strong>and</strong> yaw(y axis) )<br />

25


Feature Matching<br />

() () ℎ<br />

:{| ∙<br />

<br />

>cos()}<br />

∗ :∈,ℎ, , ≤ }<br />

26


true<br />

Feature Matching<br />

The number of V*(p) should<br />

bigger than threshold r<br />

27


false<br />

Feature Matching<br />

The number of V*(p) should<br />

bigger than threshold r<br />

28


Feature Matching<br />

Store p<br />

Remove cell(p) in Image I<br />

Add p to P<br />

Return to the second For-loop<br />

29


Feature Matching<br />

Step1 produces sparse set<br />

of patches P<br />

30


Special case solution<br />

We have so far assumed that the surface of an object or a<br />

scene is lambertian, <strong>and</strong> the photometric discrepancy function<br />

g(p) defined above may not work well in the presence of<br />

specular highlights or obstacles. In the proposed approach , we<br />

h<strong>and</strong>le non-lambertian effects by simple ignoring images with<br />

bad photometric discrepancy scores.<br />

If the matching procedure starts with a feature in an image<br />

containing artifacts, the image becomes a reference <strong>and</strong> the<br />

patch optimization fails. However, this does not prevent the<br />

procedure starting from another image without artifacts,<br />

which will succeed.<br />

31


1. Feature Detection & Matching<br />

2. Expansion<br />

Key Elements Of <strong>PMVS</strong><br />

Detection: DOG & Harris<br />

Matching : Epipolar Constrain<br />

Identifying Cells for Expansion<br />

Expansion Procedure<br />

3. Filtering : Enforces visibility consistency<br />

4. Polygonal surface reconstruction<br />

32


Expansion<br />

The goal of the expansion step is to reconstruct<br />

at least one patch in every image cell , <strong>and</strong><br />

we repeat taking existing patches <strong>and</strong> generating<br />

new ones in nearby empty spaces.<br />

More concretely, given a patch p, we first<br />

identify a set of neighboring image cells C(p)<br />

satisfying certain criteria, then perform a patch<br />

expansion procedure for each one of these.<br />

33


Expansion Procedure<br />

34


Expansion Procedure<br />

Exp<strong>and</strong>ing each image cell (, )<br />

containing p (seed)<br />

35


Expansion Procedure<br />

Identifying Cells for Expansion satisfying<br />

certain criteria<br />

36


Identifying Cells for Expansion<br />

Given a patch p, we first identify a set of neighboring<br />

image cells C(p)<br />

= , ∈ , ,|−′|+|−′|=1}<br />

The expansion is not performed for an image cell if<br />

1. Neighbor: An image cell ( ,′)contains a patch p’, which is<br />

a neighbor of p, is removed from the set of <br />

− ∙ + − ∙ ′ < 2<br />

2. Depth discontinuity: ( ,′)already contains a patch whose<br />

photometric discrepancy score associated with is better than<br />

the threshold .<br />

37


Neighbor of p<br />

− ∙ + − ∙ ′ < 2<br />

38


Neighbor of p<br />

− ∙ + − ∙ ′ < 2<br />

− ∙ <br />

− ∙ ′<br />

<br />

Normal vector () or (’)<br />

p<br />

l<br />

m<br />

l’<br />

p’<br />

cell<br />

N<br />

39


Neighbor of p<br />

− ∙ + − ∙ ′ < 2<br />

− ∙ <br />

− ∙ ′<br />

<br />

Normal vector () or (’)<br />

p<br />

l<br />

m<br />

l’<br />

p’<br />

cell<br />

N<br />

is determined automatically as the<br />

distance at the depth of the mid-point<br />

of () <strong>and</strong> (’) corresponding to an<br />

image displacement of pixels in ()<br />

40


Neighbor of p<br />

− ∙ + − ∙ ′ < 2<br />

− ∙ <br />

− ∙ ′<br />

<br />

Normal vector () or (’)<br />

p<br />

l<br />

m<br />

l’<br />

p’<br />

cell<br />

N<br />

is determined automatically as the<br />

distance at the depth of the mid-point<br />

of () <strong>and</strong> (’) corresponding to an<br />

image displacement of pixels in ()<br />

p<br />

l<br />

m<br />

l’<br />

p’<br />

cell<br />

N<br />

41


Depth Discontinuity<br />

In practice, difficult to judge the presence of depth discontinuities<br />

before actually reconstructing a surface.<br />

We simply judge that the expansion is unnecessary due to a depth<br />

discontinuity if ∗ (’, ’) is not empty : If (’, ’) already contains<br />

a patch whose photometric discrepancy score associated with is<br />

better than the threshold .<br />

42


Expansion Procedure<br />

1. Initialize patch p’, copying R(p’), V(p’),<br />

n(p’) from p<br />

2. c(p’): Intersection of optical ray<br />

through center of C(x’, y’) with plane<br />

of p<br />

3. c(p’) is not same as c(p), so update<br />

V*(p’)<br />

p’<br />

p<br />

R(p)<br />

cell<br />

43


Expansion Procedure<br />

Details at<br />

slide 19 & slide 20<br />

44


Expansion Procedure<br />

1. After the c(p’) n(p’) are refined ,<br />

add new visible images to V(p’)<br />

according to a depth-map test<br />

(calculated by projection)<br />

2. by V(p’) has been modified, so<br />

V*(p’) should be updated<br />

45


Expansion Procedure<br />

If ∗ ’ ≥ γ, we accept the patch as a<br />

success <strong>and</strong> update , & ∗ , <br />

46


Expansion Procedure<br />

Step 2<br />

Sparse P ---> <strong>Dense</strong>r P<br />

47


1. Feature Detection & Matching<br />

2. Expansion<br />

Key Elements Of <strong>PMVS</strong><br />

Detection: DOG & Harris<br />

Matching : Epipolar Constrain<br />

Identifying Cells for Expansion<br />

Expansion Procedure<br />

3. Filtering : Enforces visibility consistency<br />

4. Polygonal surface reconstruction<br />

48


Filtering<br />

Filtering step should be taken because occlusion doesn’t be considered<br />

in the expansion step. The first two filters enforce visibility consistency ,<br />

<strong>and</strong> the last filter enforces a weak form of regularization .<br />

49


Filtering<br />

p is filtered out as outlier if the following inequality holds:<br />

∗ ∗<br />

∈()<br />

When p is an outlier , both ∗ <strong>and</strong> 1− are expected to<br />

be small, <strong>and</strong> p is likely to be removed.<br />

Let U(p) denote the set of patches p’<br />

that are inconsistent with current<br />

visibility information --- that is, p <strong>and</strong><br />

p’ are not neighbors but are stored in<br />

the same cell of one of the images<br />

where p is visible<br />

50


2. Second filter<br />

Filtering<br />

For each patch p, we compute the number of images in V*(p)<br />

where p is visible according to depth-map test. If ∗ ’ < γ ,<br />

remove p from P. Note that the recomputed values of ∗ ’ may be<br />

different from those obtained in the expansion step since more<br />

patches have been computed after the reconstruction of p.<br />

51


3. Enforce a weak form of regularization as follows:<br />

For each patch p, we collect the patches lying in its own <strong>and</strong><br />

adjacent cells in all images of V(p). If the proportion of patches that<br />

are neighbors of p − ∙ + − ∙ ′ < 2<br />

in this set is lower than 0.25, p is removed as an outlier.<br />

p’<br />

p<br />

Filtering<br />

52


Conclusion<br />

The algorithm starts by detecting features in<br />

each image, matches them across multiple images<br />

to form an initial set of patches, <strong>and</strong> uses an<br />

expansion procedure to obtain a denser set of<br />

patches, before using visibility constraints to filter<br />

away false matches<br />

1. Feature Detection & Matching<br />

2. Expansion<br />

3. Filtering<br />

Iterate 3 times<br />

53


Results<br />

54


Results<br />

55


Thank you!<br />

56

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!