ヘルムホルツステレオ法

Download Report

Transcript ヘルムホルツステレオ法

ヘルムホルツステレオ法
CVPR2003サーベイ
宮崎大輔
CVLセミナー
2003年7月2日(水)
本発表の流れ
1. Helmholtzステレオ法とは?
2. P. Tu, P. R. S. Mendonça, “Surface
Reconstruction via Helmholtz Reciprocity with a
Single Image Pair,” CVPR2003, Oral
3. T. E. Zickler, P. N. Belhumeur, D. J. Kriegman,
“Toward a Stratification of Helmholtz
Stereopsis,” CVPR2003, Oral
Helmholtzステレオ法とは?
歴史
• 1856年: von HelmholtzがHelmholtz reciprocityを発表
• 1900年: Rayleigh卿がより一般的な実験結果を提示
• 2002年: Snyderが一般化
Helmholtzステレオ法が開発された
• 2001年: Magda, Kriegman, Zickler, Belhumeur [ICCV]
• 2002年: Zickler, Belhumeur, Kriegman [ECCV, IJCV]
そしてCVPR2003
• Tu, Mendonça: 一対の画像だけを使う手法
• Zickler, Belhumeur, Kriegman: 未校正下で行う手法
ステレオ法
• 多数の方向から物体を観測
• 光源固定
• window内での輝度の差な
どを使って対応点を探す
• カメラパラメータ(視線方向
など)とdisparity(視差)から
距離を求める
• 距離(depth)が求まる
物体
照度差ステレオ法(photometric stereo)
• 光源を変化させる→ある方向から光を照らした画像、
別の方向から光を照らした画像、・・・を撮影する
• カメラ固定
• 法線(surface normal)が求まる
Helmholtz Reciprocity
Helmholtzステレオ法
• Stereo
+
Photometric stereo
• 距離(depth)と
法線(normal)
が求まる
計測結果の一例
計測装置の一例
取得画像の一例
計測結果の一例
Surface Reconstruction via Helmholtz
Reciprocity with a Single Image Pair
Peter Tu
Paulo R. S. Mendonça
GE Global Research Center, USA
この論文の手法
• 以前のHelmholtzステレオ法を、一つのペアの
reciprocal画像から形状を復元する
• 動的計画法(dynamic programming)を使ってマッチ
ングを行う
– Ohta&Kanadeが1985年に動的計画法を使ったステレオ
マッチング法を提案している
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
画像2のepipolar線上のpixel
epipolar
画
像
1
の
pixel
線
上
の
グリッド
動的計画法(dynamic programming)
• コストが最小になる経路を探す
→最適なマッチング
動的計画法の実装で有名な物にDijkstra法がある
notation
•
•
•
•
表面上の点p
単位視線ベクトルv1,v2
単位法線ベクトルn
Optical center c1,c2
C1
p
v1
v2
n
C2
Helmholtz reciprocityと画像の輝度
• BRDF (p, v1, v2 )
• Helmholtz reciprocity (p, v1, v2 )  (p, v2 , v1)
• 輝度1
1
I1,2 (p)  (p, v1, v 2 )n  v 2
• 輝度2
|| c2  p ||2
η: scale factor
I 2,1 (p)  (p, v1, v2 )n  v1
1
|| c1  p ||2
• 輝度2を輝度1に変換した輝度
2
n

v
||
c

p
||
2
1
Iˆ1,2  I 2,1
n  v1 || c2  p ||2
動的計画法のコスト
a
b
3D空間の点paが対応づけられている
3D空間の点pbが対応づけられている
• Lambertianの場合
aからbにたどり着いたときのコスト = aのコスト + bでのwindow内の各pixelの輝度差
• Helmholtz reciprocityの場合

C(a, b) 
x1
x0
C( x)dx
|| pa  pb ||
C( x)  (I1,2 (p( x))  Iˆ1,2 (p( x)))2
p( x)  xpa  (1 x)pb ; 0  x  1
法線のepipolar平面への投影
•
•
•
•
法線を2つの垂直ベクトルの和で表す n  no  ne
neと視線(or光源)v1,v2はepipolar平面に含まれる
noはepipolar平面に垂直である
o
e
o
e
e
v

n

v

(
n

n
)

v

n

v

n

v

n
よって 1
1
1
1
1
v2  n  v2  (no  ne )  v2  no  v2  ne  v2  ne
n
no
v2
ne
Epipolar平面
v1
法線の近似
nˆ e  
(pa  pb )  (v1  v2 )
|| (pa  pb )  (v1  v2 ) ||
pb
pa
v1
n̂
e
v2
α: unknown scale
輝度
• 以上の事を使い、輝度を表す式に代入すると
e
2
ˆ
n

v
||
c

p
(
x
)
||
2
1
Iˆ1,2 (p( x))  I 2,1 (p( x)) e
nˆ  v1 || c2  p( x) ||2
• 右辺は、画像2、カメラパラメータ、近似法線から求ま
る
飽和(saturation)
• カメラのdynamic rangeを超えたらspecularとみなす
→入射角と反射角が等しい
• よって、コスト関数として以下を用いる
C( x)  (nˆ e  v1  nˆ e  v2 )2
結果
結果
Toward a Stratification of Helmholtz
Stereopsis
Todd E. Zickler
Peter N. Belhumeur
David J. Kriegman
Yale University
Columbia University
University of California
この論文の手法
• 以前のHelmholtzステレオ法を、キャリブレーションを
行わずに形状を復元する
• 特異値分解(SVD; singular value decomposition)
を使う
– Tomasi&Kanadeが1992年にSVDによる因数分解法を提
案している
特異値分解(SVD)とは?
• SVDについては僕は初心者なので間違っている所
があるかもしれないので注意してください
• SVDは行列Aを分解する
• Uの列、Wの要素、Vの列(VTの行)を入れ替えても
いいので、wjを大きい順に並べたとして、以下、議論
を進める
• wjを特異値と呼ぶ
特異値分解
• N×Nの行列AのrankがN未満のとき、その行列を特
異という
• 行列が特異のとき、Ax=bを解くことを考えよう
• このとき、xは解が無数にあるか、解がないかである
特異値分解
• Ax=0を満たすxの張る空間を零空間(null space)と呼ぶ
• 零空間が1次元の場合、零ベクトル(null vector)と呼ぶときも
ある(普通、零ベクトルとは[0,…,0]のベクトルの事を言う)
• Axの張る空間を値域(range)と呼ぶ
w1
A=
VT
U
wN
値域の正規直交基底
零空間の正規直交基底
特異値分解
• Ax=bの特殊解はSVDを使って以下で与えられる
x  V [diag(1/ wj )] (UT  b)
• Ax=bの解は特殊解に零空間の任意のベクトルを加
えた形で表される
• Ax=bの解が無数にある場合、SVDは0に最も近い
特殊解を選ぶ
• Ax=bの解がない場合(bが値域の外にある場合)、
SVDは最小2乗法の意味で最良の妥協解を求める。
すなわち、Axがbに最も近くなるような特殊解xをはき
だす
特異値分解
Uncalibrated Helmholtz stereopsis
• M個の位置にカメラ/光源を
配置する
• カメラと光源を入れ替えてペ
ア画像を取得
• 合計M(M-1)の画像を取得
• つまり、合計M(M-1)/2の
reciprocal画像ペアを取得
Helmholtz reciprocity constraint
Τ
Τ


ˆ
s
v
ˆ
s
v
j j
i
i
 eij

ˆ 0

e

n
ji
2
2
 | oi  p |

|
o

p
|
j


• カメラ/光源位置 o1 oM
•
•
•
•
•
カメラがoi、光源ojのときの観測輝度
表面上の点 p
法線 n̂
視線(pからoi) v̂i
光源の強さ si
ハットは単位ベクトルを表す
eij
正射影
•
•
•
•
•
•
•
•
カメラ/光源が十分遠くにあると仮定(2.5mなど)
さきほどの制約: eijsiΤ  e jisΤj nˆ  0
光源ベクトル: si  sisˆi
si は光源の強さで、 ŝ i はカメラ/光源方向(単位ベク
トル)
T
w

s
光源と法線の内積をwiとおく i i nˆ
制約は次のように書き直せる eij wi  e ji wj  0
T
T
T
T
wiを要素とするベクトルw w  s1 nˆ s2 nˆ  sM nˆ 
最終的に制約は次のように表せる


Ew  0
具体例
M=4の例
e12  e21

e
 w 

e
31
 13
 1 
e14
 e41 w2 
0


e23  e32
w3 

 
 e42  w4 
e24



e

e
34
43 

E
w
ランク
• M=4の場合rankは3になる
e12  e21

e
 w 

e
31
13

 1 
e14
 e41 w2 

 w   0
e23  e32

 3 
 e42  w4 
e24


e34  e43 

• EのrankはM-1になる(らしい)
• M-1未満のケースは考えない
• 1次元零空間は以下で表せる


T
ck w  ck s1Tnˆ sT2 nˆ  sTM nˆ , ck  R
Wの定義
• N×M行列Wを定義する(Nは点の数、Mはカメラ/光
源の数)
• Wの行をさきほどの1次元零空間とする
 c1s1Tnˆ 1
 Tˆ
c2s1 n2

W
 
 T
cN s1 nˆ N
c1sT2 nˆ 1  c1sTM nˆ 1 

c2sT2 nˆ 2
 



T
ˆ

cN s M n N 
• 図はWの列を表す
Decomposition
• W  BSに分解したい
• B : N×3行列(ckでスケーリングされた法線)
• S : 3×M行列(光源の強さでスケーリングされた光源方向)
(rank W = 3)
T
• SVDで分解
W  UV
上位3つの特異値
•
~
~
12
B  UΣ
S  Σ1 2VT
3×3の正則行列Qを使って正しい分解を行う
~
~ 1
B  BQ
S  QS
だけを使って分解
• このQを求める必要がある
– Uncalibrated stereo, Uncalibrated photometric stereoには様々な方
法があるが、この論文では以下で示す方法を使った
– 詳しくは、[Shapiro-Zisserman-Brady1995], [Tomasi-Kanade1992],
[Weinshall1993]を参照せよ
アフィンカメラ
はじめは正射影を仮定
x  Pi Xk  ti
i
k
image
point
p 
P 
p 
T
1
T
2
projection
matrix
scene
point
画像i
点k
image
offset
 
        
   
    
        
 
回転行列の上の2行をスケーリングしたもの
(ただし、aspect比を1としピクセル歪みも無いとした場合)
視線/光源方向がPから求まる
p1T  pT2
sˆ   T T
| p1  p2 |
Metric reconstruction
• 先程のはMetric
reconstructionではなく、ス
ケール倍の曖昧性が残る
• そこで、以下を満たす3×3
正則行列Qを求める
piT1QQTpi1  piT2QQTpi 2  1
piT1QQTpi 2  0
• 本当の視線/光源方向
求まる
ŝ i が
• いまいち良く分からないが
 cos  sin  


 sin  cos 
sin 2   cos2   1
sin  cos  sin  cos  0
実装
• 4点以上(例えば20点)の対応点を全ての画像で与
えてやり、Tomasi-Kanadeの方法で視線/光源方向 ŝ i
を求める
実装
• 全てのdisparity d∈[0, dmax]で探索し、最適なdを求
める
• まず、点xで、各dにおける行列 Ex (d ) を計算する
• dが最適であるかを評価する特徴としてrankE=M-1
という性質を利用する
• rankを計算する方法は数多く提案されているが、こ
の論文では単純に2つの最小の特異値を使って、以
下を評価値とする
 M 1
rx (d ) 
M
←ほとんど0
(rankE=M-1が成り立つ場合)
実装
• 点xoの周りのウィンドウWr(例えば9×9)でrx(d)を計算し、その和が最大と
なるときのdをdisparityの推定値とする
d   arg max rx (d )
d
xWr
• wは wxo  arg min || Exo (d  )w ||2 , || w || 1 から求まる
w
• この解は、E=UΣVTとSVDしたとき、最小の特異値に相当するVの列にな
る(1次元零空間)
• 実際は誤差を防ぐためウィンドウWE(例えば3×3)で重み付きEwを計算
し、その和が最小となるwを求める
wxo  arg min rx || Exw ||2 , || w || 1
w
xWE
• この場合でも重み付きEをSVDしたときの1次元零空間としてwを与える事
ができる
実装
• 全てのwxからWを計算できる
• 視線/光源方向 ŝ i より、W=BSと分解できる
結果
結果
結果
(c) Daisuke Miyazaki 2003
All rights reserved.
http://www.cvl.iis.u-tokyo.ac.jp/