Document

東京大学
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
• 透過光ベクトル
1
T  V  (c  g )N
n
反射方向や 表面法線
反射光
N
R
θ1 θ1
V
n1
• ただし
n2
c  cos1  V  N
θ2
n2
n
n1
g  n  c 1
2
視線方向や
入射光
2
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
• フレネルの公式
tan (1   2 )
tan2 (1   2 )
R 
θ2
1
0.9
0.8
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// 
透過方向や
透過光
2
0.7
0.6
反射率・透過率
R// 
2
n2
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// 
tan2 (1   2 )
sin 2 (1   2 )
R 
sin 2 (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// 
0.9
0.8
0.7
0.6
反射率・透過率
• スネルの法則
n1 sin 1  n2 sin 2
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 
 
s   s2 
s 
 3
輝度を表す
0°の偏光の強さを表す
45°の偏光の強さを表す
ストークスベクトル
 200


s   20 
 100


正規化
(一つ目の要
素を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  s 2
• ストークスベクトル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
1

U( )   0 cos 2
 0 sin 2



 sin 2 
cos 2 
0
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 
R// R 
0
0
• 透過を表すミュラー行列
 T//  T  2

n
T(1 , 2 )   T//  T  2
n1

0

T//  T  2
T//  T  2
0
• ただし
tan (1   2 )
tan2 (1   2 )
T// 
sin 21 sin 2 2
sin 2 (1   2 ) cos2 (1   2 )
R 
0
2
T 
n1
θ1 θ1
n2
θ2
sin (1   2 )
sin 2 (1   2 )
R// 
2


0 
T//T 
st  Rs
s
sin 21 sin 2 2
sin 2 (1   2 )
s t  Ts
n1 sin 1  n2 sin 2
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
計算方法
yˆ
N
R
y
xˆ
x
z
zˆ
V
レイ
T
N
y V
yˆ r
z
yˆ xˆ
x
xˆ r
zˆ
R
zˆ  z
zˆ r
zˆ t

yˆ  zˆ  xˆ
レイと法線が重なる場合,すなわち V   N の場合
ˆ
yˆ t xt
yˆ
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は以下のように計算できる
I R  U(1 )R(1 , n)I(L1 )  U(1 )T(1 , n)U( 2 )T(2 ,1 n)I(L2 )
物体の屈折率 n は与えられているとする
V
2
Nj
θ2 θ2
I(L)  方向 L にある光源のストークスベクトルを返す関数
光源は非偏光とする(非偏光でなければ回転行列をもう一つかける)
光源環境は既知とする
Pj
L2
30
CVL Seminar
Ni
2004/June/22
V1
ミュラー行列は以下のように計算できる
L1
θ1  R  2  R  R  2 0 
 R

//

 //

R (θ, n)   R//  R  2 R//  R  2
0 
1 
0
0
R// R 

 T//  T P2 T//  T  2
0 


i
T( , n)   T//  T  2 T//  T  2
0 

0
0
T//T 

0
0 
1


U( )   0 cosV
22  sin 2 
N
 0 sin 2 cos 2  j


tan2 (   )
R// 
tan2 (   )
T// 
θ2sinθ2 (2   )
R 
sin 2 (   )
sin 2 sin 2 
sin 2 (   ) cos2 (   )
n
P
Tj 
sin 2 sin 2 
sin 2 (   )
sin 
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 )N i 
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
g 2  2  c2 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
s.t. V2 
P j  Pi
P j  Pi
離散的なパッチの場合,=ではなく≒
V2
Nj
θ2 θ2
Pj
L2
33
CVL Seminar
Ni
V1
z y
y1x1 z 1
x1  p1x  q1y  r1z
cos 1  p1

 sin 1  q1
2004/June/22
x
1
~z
1
~
x1
~
y1
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 x 2y 2
x2  p2~
x1  q2 ~
y1  r2 ~
z1
cos  2  p2

 sin  2  q2
~
z1  V2
z2  ~
z1
x2 
V2  N j
V2  N j
y 2  z 2  x2
34
CVL Seminar
2004/June/22
レイトレの実装
I R  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 M  identitymatrix
点1にて
I  I  MR1I1
M  MT1
点2にて
I  I  MT2I 2
M  MR 2
点3にて
I  I  MT3I3
M  MR3
点4にて
I  I  MT4I 4
M  MR 4
点i(i≠1)にて
I(i )  I(i 1)  M(i 1)Ti Ii
点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/