キャラクタデザインなど線が多いものを清書する時のサポートツールとして、現在自働トレースツールを開発中です。現在の開発状況・課題も含めて紹介いたします。(中辛)
第二原画からの自動トレースツールArno In Wolde Lubke伊東 浩太© OLM Digital, Inc. 1
View Slide
概要1. 手書きアニメの流れ2. 線画トレースのサポート3. 今後2©Project Vanguard2019/Aichi Television© OLM Digital, Inc.著作権の関係により画像を掲載しておりません
用語• 原画– キーフレームの絵– 右の画像のようなもの• 動画– 原画の清書及び中割の絵© OLM Digital, Inc. 3©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
手書きアニメの流れ© OLM Digital, Inc. 4
原画• 影やハイライトあり• 領域は必ずしも閉じていない• 注釈つきの場合もあり© OLM Digital, Inc. 5©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
原画の清書・中割• 必要な線のみ描く• 線の太さ・色の調整• 彩色のために領域はすべて閉じる© OLM Digital, Inc. 6©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
バケツ塗り© OLM Digital, Inc. 7©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
手作業での線画トレース(Speed up ~50x)© OLM Digital, Inc. 8©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
線画のクリーンアップの研究ラフのクリーンアップ[2]© OLM Digital, Inc. 9[1] Noris, Gioacchino, et al. "Topology-driven vectorization of clean line drawings." ACM Transactions on Graphics (TOG) 32.1 (2013): 1-11.[2] Simo-Serra, Edgar, et al. "Learning to simplify: fully convolutional networks for rough sketch cleanup." ACM Transactions on Graphics(TOG) 35.4 (2016): 1-11.ベクタライズ[1]
線画トレースのサポートTopology-driven vectorization of clean line drawings *© OLM Digital, Inc. 10* Noris, Gioacchino, et al. "Topology-driven vectorization of clean line drawings." ACM Transactions on Graphics (TOG) 32.1(2013): 1-11.
なぜこの論文か?• 実装が単純• ベクタライズできる– 任意の絵をベクターに変換可能– 編集しやすい© OLM Digital, Inc. 11
フレームワーク© OLM Digital, Inc. 12前処理(手動)線画抽出(自動)後処理(半自動)レンダリング(自動)画像 画像 画像グラフ グラフ
前処理(手動)• 入力を綺麗にする– ハッチングなどを取り除く– 線を濃くする© OLM Digital, Inc. 13©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
線画抽出© OLM Digital, Inc. 14• 線画をグラフとして表現する– 頂点とエッジの集合
処理の流れ1. 頂点候補の抽出2. 頂点候補の移動3. グラフの構築4. グラフから線の再構築© OLM Digital, Inc. 15* Noris, Gioacchino, et al. "Topology-driven vectorization of clean line drawings." ACM Transactions on Graphics (TOG) 32.1(2013): 1-11.*
頂点位置の決定© OLM Digital, Inc. 16©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置© OLM Digital, Inc. 17©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす© OLM Digital, Inc. 18©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす© OLM Digital, Inc. 19©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす© OLM Digital, Inc. 20©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす© OLM Digital, Inc. 21©Project Vanguard2019/Aichi Television
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす3. 反対側の点と交差したら停止© OLM Digital, Inc. 22©Project Vanguard2019/Aichi Television > 90°
頂点位置の決定1. 一定以上の勾配を持つピクセルに点を配置2. 勾配に沿って動かす3. 反対側の点と交差したら停止© OLM Digital, Inc. 23©Project Vanguard2019/Aichi Television頂点の範囲
初期状態© OLM Digital, Inc. 24©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
移動後© OLM Digital, Inc. 25©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
不適切な頂点位置© OLM Digital, Inc. 26©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
初期グラフの構築• 近傍の点の間にエッジを張る• 頂点の範囲に応じて決定© OLM Digital, Inc. 27©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
余分なエッジの削除• 最小全域木を構築© OLM Digital, Inc. 28©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
最小全域木 (MST)• グラフのすべての頂点を含む部分木のうち、エッジの重みの和が最小のもの• 木なのでループをもたない© OLM Digital, Inc. 2911111.51.622
最小全域木 (MST)• グラフのすべての頂点を含む部分木のうち、エッジの重みの和が最小のもの• 木なのでループをもたない© OLM Digital, Inc. 3011111.51.622
最小全域木 (MST)• グラフのすべての頂点を含む部分木のうち、エッジの重みの和が最小のもの• 木なのでループをもたない© OLM Digital, Inc. 3111111.5
余分なエッジの削除• ループのところに穴が開く© OLM Digital, Inc. 32©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
余分なパスの削除• 短いパスを取り除く© OLM Digital, Inc. 33©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
ループの復旧• 端点を用いる© OLM Digital, Inc. 34©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
ループの復旧• 端点から元のグラフのサブグラフを取り出す© OLM Digital, Inc. 35©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
ループの復旧• サブグラフで同様の処理© OLM Digital, Inc. 36©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
ループの復旧• サブグラフとMSTをマージ© OLM Digital, Inc. 37©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
グラフのデータ構造• 後処理では高速な検索が必要– 例. 一番近い分岐点を探す• グリッドにその中の点と隣接情報を保持する© OLM Digital, Inc. 38
後処理(半自動)• 不要な頂点・エッジの削除• グラフのスムージング• 分岐点の修正• 太さ・色の決定© OLM Digital, Inc. 39
後処理(半自動)• 不要な頂点・エッジの削除• グラフのスムージング• 分岐点の修正• 太さ・色の決定© OLM Digital, Inc. 40ガタガタ
後処理(半自動)• 不要な頂点・エッジの削除• グラフのスムージング• 分岐点の修正• 太さ・色の決定© OLM Digital, Inc. 41位置がおかしい
後処理(半自動)• 不要な頂点・エッジの削除• グラフのスムージング• 分岐点の修正• 太さ・色の決定© OLM Digital, Inc. 42閉じていない
後処理(半自動)• 不要な頂点・エッジの削除• グラフのスムージング• 分岐点の修正• 太さ・色の決定© OLM Digital, Inc. 43
グラフのスムージング• 初期構築グラフはガタついている• 法線ො上で重心Ԧがある方に移動させる© OLM Digital, Inc. 44
グラフのスムージング© OLM Digital, Inc. 45
グラフのスムージング• ユーザーインタラクション+パスの単位で処理© OLM Digital, Inc. 46ユーザー入力
グラフのスムージング• ユーザーインタラクション+パスの単位で処理© OLM Digital, Inc. 47
グラフのスムージング• ユーザーインタラクション+パスの単位で処理© OLM Digital, Inc. 48
グラフのスムージング• ユーザーインタラクション+パスの単位で処理• 法線上を重心方向に動かす© OLM Digital, Inc. 49
グラフのスムージング• ユーザーインタラクション+パスの単位で処理• 法線上を重心方向に動かす© OLM Digital, Inc. 50重心
グラフのスムージング• ユーザーインタラクション+パスの単位で処理• 法線上を重心方向に動かす© OLM Digital, Inc. 51法線重心
グラフのスムージング• ユーザーインタラクション+パスの単位で処理• 法線上を重心方向に動かす© OLM Digital, Inc. 52法線移動方向重心
グラフのスムージング© OLM Digital, Inc. 53©Project Vanguard2019/Aichi Television• ユーザーインタラクション+パスの単位で処理• 法線上を重心方向に動かす適用前 適用後著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
スムージングの実行例© OLM Digital, Inc. 54©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
分岐点の修復• 分岐点は不適切な形になりがち• 分岐点:3本以上のエッジが接続している点© OLM Digital, Inc. 55©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
分岐点の修復 - 領域の特定© OLM Digital, Inc. 56
分岐点の修復 - 領域の特定© OLM Digital, Inc. 571.適当な探索範囲を決定
分岐点の修復 - 領域の特定© OLM Digital, Inc. 581.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定
分岐点の修復 - 領域の特定© OLM Digital, Inc. 591.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定3.対象点同士の円が被っていなければ終了
分岐点の修復 - 領域の特定© OLM Digital, Inc. 601.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定3.対象点同士の円が被っていなければ終了4.探索範囲を広げて2に戻る
分岐点の修復 - 領域の特定© OLM Digital, Inc. 611.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定3.対象点同士の円が被っていなければ終了4.探索範囲を広げて2に戻る
分岐点の修復 - 領域の特定© OLM Digital, Inc. 621.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定3.対象点同士の円が被っていなければ終了4.探索範囲を広げて2に戻る
分岐点の修復 - 領域の特定1.適当な探索範囲を決定2.対象の点を抽出– 点のストローク半径(最初の移動距離)と探索範囲がかぶるかどうかで決定3.対象点同士の円が被っていなければ終了4.探索範囲を広げて2に戻る© OLM Digital, Inc. 63
分岐点の修復 - グラフの修正1. 特定した領域の点を削除© OLM Digital, Inc. 64
分岐点の修復 - グラフの修正1. 特定した領域の点を削除2. 端点をつなぐカーブの推定© OLM Digital, Inc. 65
分岐点の修復 - グラフの修正1. 特定した領域の点を削除2. 端点をつなぐカーブの推定3. 曲率の大きな候補を除外© OLM Digital, Inc. 66
分岐点の修復 - グラフの修正1. 特定した領域の点を削除2. 端点をつなぐカーブの推定3. 曲率の大きな候補を除外4. 曲率の小さい順に足していく– 端点がなくなったら終了© OLM Digital, Inc. 67
分岐点修復の実行例© OLM Digital, Inc. 68©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
現在の結果© OLM Digital, Inc. 69自動抽出の結果 < 5s手作業での抽出結果 ~40 minutes©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません著作権の関係により画像を掲載しておりません
現状の問題点• 入力がある程度きれいな線画でないといけない– 線と誤認するようなハッチング– 背景色(白)に近い薄い線• パラメータが画像の局所的な特徴に依存する– エッジを張る範囲など© OLM Digital, Inc. 70
今後© OLM Digital, Inc. 71
半自動の領域閉じ• 端点から接続しうる点の候補を表示• ユーザーによる選択でエッジを追加する© OLM Digital, Inc. 72©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
Curve fitting• ベジェ曲線などでフィッティングして操作しやすいようにする• マニュアルの線画トレースのサポートとしても使えるか?© OLM Digital, Inc. 73* Schneider, Philip J. "An algorithm for automatically fitting digitized curves." Graphics gems. AcademicPress Professional, Inc., 1990.*©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
機械学習• 深層学習で漫画のトーンを除去する研究*• 理想状態での確認– 学習データでの結果• 前処理などで使用できるか?© OLM Digital, Inc. 74*Li, Chengze, Xueting Liu, and Tien-Tsin Wong. "Deep extraction of manga structural lines." ACMTransactions on Graphics (TOG) 36.4 (2017): 1-12.©Project Vanguard2019/Aichi Television著作権の関係により画像を掲載しておりません
75