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 cos1 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 21 sin 22
sin 2 (1 2 ) cos2 (1 2 )
sin 21 sin 22
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 21 sin 22
sin 2 (1 2 ) cos2 (1 2 )
sin 21 sin 22
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 21 sin 22
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 21 sin 22
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
ŷ
VN
xˆ
VN
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
22 sin 2N
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
cos1 Ni V1
θ1
L1 V1 2cNi
c cos1
Pi
cos2 N j V2
V2
1
V2 V1 (c g)Ni
n
c cos1
g 2 n2 c 2 1
Nj
θ2 θ2
L2 nV2 (c g)N j
Pj c cos2
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| jallpatches, 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
cos1 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(i1) M(i1)TiIi
点1
点4
点2
点3
M(i) M(i1)Ri
35
東京大学
The University of Tokyo
池内研究室
Computer Vision Laboratory
© Daisuke Miyazaki 2004
All rights reserved.
http://www.cvl.iis.u-tokyo.ac.jp/