Miyazaki-CVL20040622

Download Report

Transcript Miyazaki-CVL20040622

東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
偏光レイトレーシング
宮崎大輔
2004年6月22日(火)
CVLセミナー
CVL Seminar
2004/June/22
発表の流れ
1.
2.
3.
4.
レイトレーシング法
偏光
ミュラー計算法
偏光レイトレーシング法
(スライド3枚)
(スライド3枚)
(スライド15枚)
(スライド約3枚)
2
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
1.レイトレーシング法
ray tracing algorithm
光線追跡法
視線探索法
CVL Seminar
2004/June/22
アルゴリズム
• 以下を各画素で計算
1. 視線は画素を通って物体に向か
う
2. 交差する物体があるなら視線と
物体の交点を求める.交差する
物体が複数あるなら全ての物体
について交点を求める
3. 視線と交点との距離を求め,最
も視点に近い物体を選ぶ
4. 輝度を計算
5. 反射方向・屈折方向を求め,こ
れらの方向を視線とみなして2か
ら再び実行
4
CVL Seminar
2004/June/22
反射光・透過光ベクトルの計算方法
• 反射光ベクトル
R  V  2cN
• 透過光ベクトル
T
1
V  (c  g)N
n
反射方向や 表面法線
反射光
N
R
θ1 θ1
g  n  c 1
2
2
2
V
n1
• ただし
c  cos1  V N
n2
n
n1
視線方向や
入射光
n2
θ2
T
透過方向や
透過光
-N
gは正
gが実数でないときは全反射
5
CVL Seminar
2004/June/22
輝度の計算
表面法線
反射方向や
反射光
θ1 θ1
• スネルの法則
n1 sin 1  n2 sin 2
視線方向や
入射光
n1
• 反射率
R//  R
R
2
• 透過率
T T
T  // 
2
n2
透過方向や
透過光
1
• フレネルの公式
tan (1  2 )
tan2 (1  2 )
R 
0.9
sin (1  2 )
sin 2 (1  2 )
sin 21 sin 22
sin 2 (1  2 ) cos2 (1 2 )
sin 21 sin 22
T 
sin 2 (1  2 )
T// 
0.8
2
0.7
0.6
反射率・透過率
R// 
2
θ2
R//
R⊥
T//
T⊥
R
T
0.5
0.4
0.3
0.2
0.1
0
1
6
11
16
21
26
31
36
41
46
角度
51
56
61
66
71
76
81
86
6
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
2.偏光
polarization
CVL Seminar
2004/June/22
偏光
• 偏光には2種類ある
– 直線偏光
– 円偏光
• ここでは直線偏光のみを扱う
法線
入射角 反射角
光源
非偏光
(偏光度 0)
空気
物体
 
偏光板
完全偏光
(偏光度 1)
部分偏光
(偏光度 0~1)
8
CVL Seminar
2004/June/22
偏光の様子
//方向
入射光
法線
//方向
非偏光
⊥方向
入
射
角
θ1
反
射
角
方向によって明るさが違う
=光の振動方向に偏りが出る
=偏光している
⊥方向
反射光
部分偏光
θ1
n1
媒質1
n2
媒質2
θ2
透
過
角
部分偏光
//方向
⊥方向
透過光
9
CVL Seminar
2004/June/22
反射率・透過率
• 反射率
tan2 (1  2 )
R//  2
tan (1  2 )
sin 2 (1  2 )
R  2
sin (1  2 )
θ1 θ1
n1
n2
θ2
• 透過率
sin 21 sin 22
sin 2 (1  2 ) cos2 (1 2 )
sin 21 sin 22
T 
sin 2 (1  2 )
T// 
n1 sin 1  n2 sin 2
0.9
0.8
0.7
0.6
反射率・透過率
• スネルの法則
1
R//
R⊥
T//
T⊥
R
T
0.5
0.4
0.3
0.2
0.1
0
1
6
11
16
21
26
31
36
41
46
角度
51
56
61
66
71
76
81
86
10
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
3.ミュラー計算法
Mueller calculus
CVL Seminar
2004/June/22
偏光の計算
• 光の偏光状態を計算する方法には以下のような方
法がある
–
–
–
–
–
先程の計算のみを使って行う
coherence matrixを使う
ミュラー計算法
ジョーンズ計算法
Chipmanの方法
12
CVL Seminar
2004/June/22
ストークスベクトル
• 光の偏光状態を表す
• 4次元ベクトルだが4つ目の要素は円偏光に関する
ものなのでここでは最初の3つの要素だけを使い,3
次元ベクトルとして扱う
 s1  輝度を表す
 200
 


s   s2  0°の偏光の強さを表す s   20 
s 
 100 
 3  45°の偏光の強さを表す


ストークスベクトル
正規化
(一つ目の要
素を1にする)
ストークスベクトルの例
 1 
 
s   0.1
 0.5 
 
正規化された
ストークスベクトル
13
CVL Seminar
2004/June/22
ストークスベクトルの例
1
 
 0
 0
 
非偏光
1
 
1
 0
 
1
 
 0
1
 
完全偏光0°
完全偏光45°
1
 
  1
0
 
1
 
0
 1
 
完全偏光90° 完全偏光135°
90°方向の強さと0°方向の強さが1:2の部分偏光
1.5   1 
1
   
 
 0.5   1   0.5 1
 0   0
0
   
 
14
CVL Seminar
2004/June/22
ミュラー行列
• 物質が光の偏光状態をどのように変えるかを表す
• 4x4行列だが円偏光は使わないので,左上3x3だけ
の3x3行列として扱う
• ストークスベクトルsの光が物質と反射や透過をして
出てきた光のストークスベクトルs'は,以下のように
計算できる
s  Ms
• Mはミュラー行列
ストークスベ
クトルsの光
ミュラー行列M
で光の偏光状
態を変える物質
ストークスベクト
ルs'=Msの光
15
CVL Seminar
2004/June/22
ミュラー計算の例
• ストークスベクトルs1を持つ光とストークスベクトルs2
を持つ光が合わさった光のストークスベクトルs'は
s  s1  s2
• ストークスベクトルsの光がミュラー行列M1を持つ物
質を透過したあと,ミュラー行列M2を持つ物質を通っ
て出た光のストークスベクトルs'は
s  M2M1s
16
CVL Seminar
2004/June/22
ミュラー行列の例
 1 0 0


 0 1 0
 0 0 1


 0 0 0


 0 0 0
 0 0 0


0
 0.5 0


 0 0.5 0 
 0
0 0.5

 1 0 0


 0 0 0
 0 0 0


真空
完全吸収板
明るさを半分に
するフィルタ
偏光を解消する
理想拡散板
1 0 1


0.5 0 0 0 
1 0 1


 1 1 0 


0.5 1 1 0 
 0 0 0


 1 0 1


0.5 0 0 0 
 1 0 1 


 1 1 0


0.5 1 1 0 
 0 0 0


偏光板0°
偏光板45°
偏光板90°
偏光板135°
17
CVL Seminar
2004/June/22
ミュラー行列の計算例
1
 1 1 0 1.5 
 

 
 1   0.5 1 1 0  0.5
 0
 0 0 0  0 
 

 
1.5   1 
1
   
 
 0.5   1   0.5 1
 0   0
0
   
 
18
CVL Seminar
2004/June/22
回転行列
回転行列
0
0 
1


U( )   0 cos 2  sin 2 
 0 sin 2 cos 2 


19
CVL Seminar
2004/June/22
回転行列の計算例
0
0
1
 1   1 

  

 0 cos 2  30  sin 2  30  1    1 2 
 0 sin 2  30 cos 2  30  0   3 2 

  

回転行列30°
完全偏光0°
完全偏光30°


0
0
0
0
1
 1 1 0  1
 


 
1
0
cos
2

30


sin
2

30

1
1
0
0
cos
2

30


sin
2

30





2


 
 0 sin 2  30 cos 2  30  0 0 0  0 sin 2  30 cos 2  30  


回転行列30°
偏光板0°
回転行列-30°
1
3 
2
2 
1
1
3

2
4
4 
3
3 3 
2
4
4 
偏光板30°
1
20
CVL Seminar
2004/June/22
回転行列の使用例
α
s'=M's
s
M'
0°のときのミュラー行列Mは分かるが
角度αのときのミュラー行列M'が分からない時
-α回転
-α回転
s
α回転
MU(-α)s
U(-α)s
s'=U(α)MU(-α)s
M
0°のときのミュラー行列が使える
21
CVL Seminar
2004/June/22
反射・透過を表すミュラー行列
• 反射を表すミュラー行列
 R//  R  2
n2 
R(1, )   R//  R  2
n1 
0

R//  R  2
R//  R  2
0 

0 
R// R 
0
• 透過を表すミュラー行列
 T//  T  2

n
T(1, 2 )   T//  T  2
n1 
0

T//  T  2
T//  T  2
0
• ただし
R// 
tan (1  2 )
tan2 (1  2 )
T// 
sin 21 sin 22
sin 2 (1  2 ) cos2 (1 2 )
2
R 
0 

0 
T//T 
n1
θ1 θ1
n2
θ2
sin (1  2 )
sin 2 (1  2 )
2
T 
st  Rs
s
sin 21 sin 22
sin 2 (1  2 )
n1 sin 1  n2 sin 2
st  Ts
22
CVL Seminar
2004/June/22
反射平面が角度αだけずれている場合
α
α
正面から見た図
α
s'=R's
s
R'
-α回転
-α回転
s
α回転
U(-α)s
R
RU(-α)s
s'=U(α)RU(-α)s
23
CVL Seminar
2004/June/22
2回反射した場合
α
β
s'=U(α)R2U(-α)U(β)R1U(-β)s
R1
-β回転
s
U(-β)s
β回転
R1U(-β)s
-α回転
R2
U(-α)U(β)R1U(-β)s
U(β)R1U(-β)s
α回転
s'
R2U(-α)U(β)R1U(-β)s
24
CVL Seminar
2004/June/22
局所座標を利用した場合
α
γ
y
γ回転
y
y
α回転
x
α
γ=β-α
x
x
s'=U(α)R2U(γ)R1s
γ回転
R1
s
R1s
R2
U(γ)R1s
α回転
R2U(γ)R1s
s'
25
CVL Seminar
2004/June/22
計算方法
ŷ
N
R
y
x
x̂
z
ẑ
V
レイ
T
R
y V
ŷ r N
z
ŷ x̂
x
x̂r
ẑ
zˆ  z
ẑr
ẑ t

yˆ  zˆ  xˆ
レイと法線が重なる場合,すなわち V  Nの場合
ŷt x̂t
ŷ
VN
xˆ 
VN
zˆ  z
T
y
x̂
x
xˆ  x
yˆ  y
zˆ r  R
xˆ r  xˆ
yˆ r  zˆ r  xˆ r
zˆ t  T
xˆ t  xˆ
yˆ t  zˆ t  xˆ t
xˆ  px  qy  rzを解き,p,q,rを求める(r=0)
cos  p を解き,αを求める

 sin   q
26
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
4.偏光レイトレーシング法
polarization ray tracing
CVL Seminar
2004/June/22
偏光レイトレーシング
• レイトレーシング
– レイの反射・透過する方向を計算する
– 輝度を計算する
• 偏光レイトレーシング
– レイの反射・透過する方向を計算する
– ミュラー計算法で光の偏光状態を計算する
光の偏光状態を計算するレイトレーサには
1. LightTools, http://www.opticalres.com/
2. ZEMAX, http://www.zemax.com/
3. OptiCAD, http://www.opticad.com/
などが市販されている
28
CVL Seminar
2004/June/22
V1
Ni
θ1
L1
θ1
Pi
この図の場合で計算の例を示す
V2
2点までレイを追跡した例
Nj
ベクトルは全て単位ベクトルとする
θ2 θ2
Pj
L2
29
CVL Seminar
2004/June/22
V1
Ni
θ1
L1
θ1
Pi
出力のストークスベクトル Iは以下のように計算できる
IR  U(1)R(1, n)I(L1)  U(1)T(1, n)U(2 )T(2 ,1 n)I(L2 )
物体の屈折率 n は与えられているとする
V2
Nj
θ2 θ2
I(L)  方向 Lにある光源のストークスベクトルを返す関数
光源は非偏光とする(非偏光でなければ回転行列をもう一つかける)
光源環境は既知とする
Pj
L2
30
CVL Seminar
Ni
2004/June/22
V1
ミュラー行列は以下のように計算できる
θ1  R  2 R  R  2 0 
 R

//

 //

R(θ, n)   R//  R  2 R//  R  2
0 
1 
L1
0
0
R// R 

 T//  T P2 T//  T  2

i
T( , n)   T//  T  2 T//  T  2

0
0

0
0 
1


U( )   0 cosV
22  sin 2N

 0 sin 2 cos 2  j


tan2 (  )
R//  2
tan (   )
T// 
0 

0 
T//T 
θ2sinθ2 (2  )
R 
sin 2 (   )
Pj sin 2 sin 2 
sin 2 sin 2 
T

sin 2 (   ) cos2 (  )
sin 2 (   )
sin 
n
sin  
L2
31
CVL Seminar
V1
Ni
θ1
L1
2004/June/22
cos1  Ni  V1
θ1
L1  V1  2cNi
c  cos1
Pi
cos2  N j  V2
V2
1
V2  V1  (c  g)Ni 
n
c  cos1
g 2  n2  c 2  1
Nj
θ2 θ2
L2  nV2  (c  g)N j 
Pj c  cos2
1
2
g  2  c 2 1
n
L2
32
CVL Seminar
2004/June/22
V1
Ni
θ1
L1
θ1
jはレイを追跡して求める
Pi
j
arg min
{ j| jallpatches, j i}
Pj  Pi
Pj  Pi
s.t. V2 
Pj  Pi
離散的なパッチの場合,=ではなく≒
V2
Nj
θ2 θ2
Pj
L2
33
CVL Seminar
Ni
V1
z y
y1x1 z1
x1  p1x  q1y  r1z
cos1  p1

 sin 1  q1
2004/June/22
x
1
~z
1
~
x1
~
y
1
1
 
x   0
 0
 
V2
z1  z
x1 
 0
 
y  1
 0
 
 0
 
z   0
1
 
V1  Ni
V1  Ni
y1  z1  x1
~
x1  x1
~
y1  ~
z1  ~
x1
2 N
j
z 2 x2y 2
x2  p2~
x1  q2~
y1  r2~
z1
cos 2  p2

 sin  2  q2
~
z1  V2
z2  ~
z1
V2  N j
x2 
V2  N j
y2  z2  x2
34
CVL Seminar
2004/June/22
レイトレの実装
IR  U(1)R(1, n)I(L1)  U(1)T(1, n)U(2 )T(2 ,1 n)I(L2 )
略記
I  R1I1  T1T2I 2  T1R2T3I3  T1R2R3T4I 4  T1R2R3R4T5I5  
初期設定
I  zero vector
点1にて
I  I  MR1I1
M  MT1
点2にて
I  I  MT2I2
M MR2
点3にて
I  I  MT3I3
M  MR3
点4にて
I  I  MT4I4
M MR4
点i(i≠1)にて
M  identity matrix
I(i)  I(i1)  M(i1)TiIi
点1
点4
点2
点3
M(i)  M(i1)Ri
35
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
© Daisuke Miyazaki 2004
All rights reserved.
http://www.cvl.iis.u-tokyo.ac.jp/