一つの線がすべてを支配する...
一筆描き線画(CLI)は, ひとつの線で対象物やシーンを描き出す絵画表現法です. 一筆描きなので簡単な表現方式ですが, 一つの線で驚くほど多くのの重要な特徴を詳細に表現することが可能です.
本研究では, 線同士の間隔を調整することでシーンの陰(濃淡)を表現できるように, 一筆描き線画の生成とデザインに焦点を当てて研究を行いました. 我々はまた, この線画表現を 一筆描き絵画(CLP)という別の絵画表現に拡張し, 元々のシーンのトーンを描写しつつ, 線の色や太さを変更することで, 描画領域すべてを覆うことができるようにしました.
入力画像 | ユーザの指定による領域分割 |
一筆描き線画 | 一筆描き絵画 |
一筆描き線画(CLI)
我々の一筆描き線画(CLI)生成では, 画像に加えてユーザにその画像の適切な領域分割を指定してもらいます. その後,各領域ごとに流れ場を生成し,それに基づいてグリッド分割を求めます. ユーザは, 領域ごとに異なるパタンやその他の特徴を指定して, グリッドの見栄えを改善することができ, そのような編集作業で与えられた制約に応じて, 画像上の流れ場は再計算されることになります.
各領域で計算されたグリッド分割は, 描画領域全体を覆うひとつのグリッド分割に統合されます. そして, ほとんどのグリッドをたどることのできるひとつの経路を, 閉路の再帰的拡張および併合を用いて求めます. このようにして得られる一筆描き線画(CLI)の見栄えは, さらに線そのもののかたちを平滑化したり線の濃さを調整することで, 改善が施されます.
生成されたグリッド分割 | 計算された経路 | 最終的に得られる一筆描き線画(CLI) |
一筆描き絵画(CLP)
一筆描き絵画(CLP)は, 前述の手法で得られる一筆描き線画(CLI)に基づき生成することができます. これは,仮に最も単純に実現するならば, 得られている一筆描き線画(CLI)の線を太くすることで実現できるかもしれません. しかしながらこのやり方では, 線同士に自己交差が生じる可能性があり, 場合によっては描画領域全体を覆えなくなるかもしれず, 人が描くような一筆描き絵画(CLP)がなかなな実現できません. 代わりのとして, グリッド分割から直接壁に対応する稜線の取捨選択を行う方法も考えられますが, この問題は結局のところグリッドを通るハミルトン経路を計算することに帰着され, 問題自体NP困難です. 仮にこの方法で経路が計算できたとしても, 対応する太さをもった経路が十分は滑らかな形状になる保証が得られません.
そこで私たちは, 一筆描き線画(CLI)から特別なパタンをもつグリッド分割を生成することで, この問題の解決を図りました. これは, 一筆描き線画(CLI)上に短い間隔でサンプル点をとり, それらをボロノイ分割の母点として用いる方法です. 流れ場の計算と同様, このボロノイ分割は各領域ごとに行われたのち, 全体の描画領域において領域の境界を介して併合されます. さらにそのようにして得られたボロノイ分割から, 先の一筆描き線画(CLI)の線を適切な幅をもって太くしたものに対応するような, 壁稜線の取捨選択が行われます.
色は,太さをもつ線の境界に対応する壁の両側において入力画像の色を参照し, それを絵画領域体において色拡散の技法を用いて伝播させます. ユーザは,色に関しても同様に領域ごとに編集を加えることが可能です. 最終的な一筆描き絵画(CLP)は, 拡散した色の上に, 幅を持つ線の境界線に当たる壁を違う色などでトレースし直すことで得られることになります.
生成された一筆描き線画(CLI) | 一筆描き線画(CLI)上のサンプル点 | 領域に基づくボロノイ分割 |
ボロノイ分割からの稜線の取捨選択 | 計算された壁の沿う色 | 最終的に得られる一筆描き絵画(CLP) |
このような絵画表現を得るための詳細については, 我々の論文をご参照ください.