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]
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