6. 最適化式(DATA TERM)
data term cost term
cost termは3種類のPrior項
data term cost term
data term
レンダリング部
ハーフベクトルh(i,j)において
パラメータXでレンダリングした結果
(s,t)はブロック内の画素位置
観測データ生成部
誤差を最小化したいハーフベクトルh(i,j)においての観測データ(目標データ)
自己相似性を用いたMatchingで各ブロックの画素をTransportして生成する
(s,t)はブロック内の画素位置
問題:SVBRDFのパラメータXを求める
パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき
1.画素毎のSurface Normal (x・y方向):h x w x 2
2.画素毎のDiffuse Albedo (カラー):h x w x 3
3.画素毎のSpecular Luminance:h x w x 1
4.画素毎のSpecular Anisotropy:h x w x 3
5.全体のSpecular Color:2
6.全体のシェーディングの程度:1
7.全体のSpecular Pointiness(Roughness):1
求めるパラメータXについての詳細
合計パラメータ数:h x w x 9 + 4
例えばブロックサイズが192 x 192だと
192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる
ハーフベクトル(i,j)・画素位置(s,t)毎にHuber Loss
1 2 3 4 5 6 7
h x w x 9 4
7. DATA TERM レンダリング部
Brady[2014]のBRDFモデルを基本形とした拡張
E=[0 0 1]T
z
x
P = [xp,yp,1]T
p = (xp,yp)
1
0
xp
h
最適化するパラメータX
レンダリング画素のハーフベクトルh(i,j)によって変化する変数
※E=[0 0 1]T
この問題設定(対象が平面かつカメラと正対、更に光源とカメラが同軸と近似可能)では、
観測ベクトルおよび光源ベクトルとハーフベクトルは等しいため、このような定式化が可能
つまり、ハーフベクトルとパラメータが決まればレンダリング可能(光源・観測を分けて考える必要がないため)
Camera
Object
ケラレ項
光量逆二乗減衰 入射角依存 (Cos項) BradyのBRDFモデルを異方性化
j
i
s
t
12. DATA TERM 観測データ生成部
AX = TFG
1
1
1
1
1
-1 1
-1 1
-1 1
h
1 -1
1 -1
1 -1
A=
h x w
X= 3
h x w
h x w x 3
求めたい行列
×
行列式
TFG==
3
h x w x 3
TF
TGx
TGy
T F
×
T Gx
×
T Gy
×
14. 最適化式(COST TERM)
data term cost term
cost termは3種類のPrior項
data term cost term
問題:SVBRDFのパラメータXを求める
拡散反射の値は小さくなるように 鏡面反射輝度は小さくなるように
かつ、外れ値を避けるように
法線は正対に近くなるように
鏡面反射異方性は小さくなるように
かつ、外れ値を避けるように
広い鏡面反射ローブのBRDFに収束しやすくなる
パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき
1.画素毎のSurface Normal (x・y方向):h x w x 2
2.画素毎のDiffuse Albedo (カラー):h x w x 3
3.画素毎のSpecular Luminance:h x w x 1
4.画素毎のSpecular Anisotropy:h x w x 3
5.全体のSpecular Color:2
6.全体のシェーディングの程度:1
7.全体のSpecular Pointiness(Roughness):1
求めるパラメータXについての詳細
合計パラメータ数:h x w x 9 + 4
例えばブロックサイズが192 x 192だと
192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる
1 2 3 4 5 6 7
h x w x 9 4
prior term Rp
15. 最適化式(COST TERM)
data term cost term
cost termは3種類のPrior項
data term cost term
問題:SVBRDFのパラメータXを求める
パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき
1.画素毎のSurface Normal (x・y方向):h x w x 2
2.画素毎のDiffuse Albedo (カラー):h x w x 3
3.画素毎のSpecular Luminance:h x w x 1
4.画素毎のSpecular Anisotropy:h x w x 3
5.全体のSpecular Color:2
6.全体のシェーディングの程度:1
7.全体のSpecular Pointiness(Roughness):1
求めるパラメータXについての詳細
合計パラメータ数:h x w x 9 + 4
例えばブロックサイズが192 x 192だと
192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる
1 2 3 4 5 6 7
h x w x 9 4
各画素毎パラメータのX方向勾配 各画素毎パラメータのY方向勾配
パラメータの空間勾配を最小化する(滑らかにする)
Huber Loss
smooth term Rs
16. 最適化式(COST TERM)
data term cost term
cost termは3種類のPrior項
data term cost term
cost term Ri
問題:SVBRDFのパラメータXを求める
法線のX方向に対するY方向勾配 法線のY方向に対するX方向勾配
法線のCurl量
法線のCurl量を最小化する
パラメータXを求めるマスタータイルのブロックサイズを h x wとしたとき
1.画素毎のSurface Normal (x・y方向):h x w x 2
2.画素毎のDiffuse Albedo (カラー):h x w x 3
3.画素毎のSpecular Luminance:h x w x 1
4.画素毎のSpecular Anisotropy:h x w x 3
5.全体のSpecular Color:2
6.全体のシェーディングの程度:1
7.全体のSpecular Pointiness(Roughness):1
求めるパラメータXについての詳細
合計パラメータ数:h x w x 9 + 4
例えばブロックサイズが192 x 192だと
192 x 192 x 9 + 4 = 331780個のパラメータを最適化する問題となる
1 2 3 4 5 6 7
h x w x 9 4
normal curl term Ri
17. 最適化式(全体)
data term cost term
cost termは3種類のPrior項
問題:SVBRDFのパラメータXを求める
h x w x 3 x N h x w x 9
data term prior smooth normal curl
h x wh x w x 2 x 9
h x w個の画素での
観測データとレンダリング結果の差
カラーかつハーフベクトルN個分
h x w個の画素での
画素毎パラメータ9個の
Priorとの差
h x w個の画素での
画素毎パラメータ9個の
X・Y方向の勾配
h x w個の画素での
法線のCurl
式の個数
Y =
………………
h x w x 3 x N
h x w x 9
h x w x 2 x 9
h x w
パラメータXに対する結果として
巨大な連立した非線形の
関数が定義される
→ レーベンバーグ・マルカート法で解く
h x w x (3N + 28)
18. 最適化実行の例 (MATLAB)
fun = @(Y) f(X,Y);
X = lsqnonlin(fun, x0)
パラメータ行列X (h x w x 9 + 4) を入力したら最小化したい行列Y (h x w x (3N + 28)) を返す無名関数(実際はf(X,Y)を定義する)
パラメータXの初期値(h x w x 9 + 4)非線形最小二乗Solver
※ 実際はレーベンバーグ・マルカート法で動作させるにはオプションが必要
(あと本当は各関数での偏微分結果(ヤコビアン)を出力する関数も必要)