NPR向けの形状復元手法
本記事では,LumoとInk-and-Rayに注目して,NPR向けの形状復元手法について簡単にまとめます.
ここで取り上げている手法の最終的なゴールは,アニメのようなイラスト絵にライティングを行うことです.従って,入力も自然とイラスト画像になりますが,通常の写真画像向けのShape From Shading手法と異なる点は,画像の陰影情報を形状復元に使わない点です.なぜなら,イラスト画像の陰影は物理的な制約から外れていることが多く,それを考慮しても望むような法線復元結果にならないからです.
では何を入力にするかというと,輪郭線情報を手掛かりにして形状復元を進めていきます.ここでは,LumoとInk-and-Rayの2つの手法を紹介していきます.
Lumo
Lumoでは,輪郭線情報を手掛かりにして法線情報を復元することができます.具体的な計算の流れは次のようになります.
- 領域データから輪郭線を計算し,輪郭線上の法線制約を求める.
- 内部領域は,法線が滑らかに変化すると仮定.輪郭線上の法線を境界制約にして最適化を行う.
領域データから輪郭線を求める処理は,単に領域の境界に輪郭線ピクセルを配置するだけです.輪郭線上の法線は,領域データから求めることができます.内部領域を$R(\mathbf{p})=1$,外部領域を$R(\mathbf{p})=0$としたデータに対し,Gaussianフィルタをかけて,輪郭線上の領域データを平滑化します.少し平滑化することで,輪郭線上で領域データの勾配$ g_x (\mathbf{p}), g_y (\mathbf{p})$を計算し,$\mathbf{N}(\mathbf{p})=( -g_x, - g_y, 0)$を正規化したデータを輪郭線上の法線制約にします.
内部領域では,$\Delta \mathbf{N}(\mathbf{p})= 0$が成り立つと仮定して,法線を最適化します.最適化では,画像グリッド上で反復処理を行う方法と適切な三角形分割を行い最適化を行う方法のどちらかが選択されることが多いです.ここでは,画像グリッド上で反復処理を行う場合について説明します.画像グリッド上の反復処理では,各ピクセルに対し$\Delta \mathbf{N}(\mathbf{p})= 0$になるように,つまり近傍ピクセルの平均法線になるように各ピクセルの法線の値を更新していきます.処理自体は単純ですが,この反復処理の収束は遅く,800x600くらいの画像でも1000回以上回さないと綺麗な結果が出ません.この手法を使う場合は,マルチグリッドによる高速化が必須です.
Ink-and-Ray
Ink-and-Rayでは,法線だけでなく,3次元形状データも復元してシャドウやアンビエントオクル―ジョン効果を実現可能にしています.ユーザー処理を行う部分が上手くシステム化されており,
- 領域分割処理
- レイヤーの前後関係の決定
- 内部領域の形状復元の最適化手法
- レイヤーのつなぎ目部分の処理
の処理に関して詳しく解説されています.形状復元結果に関して,「Lumoや3Dモデルと比較してどのくらい3Dらしく見えるか」の評価実験も行っていて,既存手法と比べて一番3Dモデルに近いという評価結果が得られています.評価実験については,two-alternative-forced-choice (2AFC)が採用されており,手法の異なる2枚の画像のどちらが良いかを判断するタスクを手法の組み合わせ,モデルの数,イルミネーションの数分繰り返します.
この論文はTOG論文として採択され,SIGGRAPH2014で発表されています.提案アルゴリズム・システムがまとまっていることももちろんですが,評価実験が採択には重要だということを実感します.
参考文献
[1] Lumo: illumination for cel animation: http://dl.acm.org/citation.cfm?id=508538
[2] Ink-and-Ray: Bas-Relief Meshes for Adding Global Illumination Effects to Hand-Drawn Characters: http://dcgi.felk.cvut.cz/home/sykorad/ink-and-ray