RGBの色空間ジオメトリを介したデジタル絵画照明効果の生成
結果
swipe_across_verticallyn_gif_011
No data available. Please select runs that logged the key move_circle_gif_013.
概要
照明は、デジタルおよびマットペイントで重要な役割を果たします。現実世界の物理的な照明やレンダリングされたシーンとは異なり、デジタルペインティングのペイントされた照明効果は、異種のストロークを使用してアーティストによって作成されます。「RGBの色空間ジオメトリを介したデジタル絵画照明効果の生成」というタイトルの論文で、著者は、単一の画像からデジタル絵画照明効果を生成するための画像処理アルゴリズムを提案しています。このアルゴリズムは、アーティストが多くの重なり合うストロークを使用して照明効果をペイントするという重要な観察に基づいています。つまり、ストローク履歴が密なピクセルは、より多くの照明ストロークを収集する傾向があります。この観察に基づいて、彼らは次のことができるアルゴリズムを考案しました。
- カラージオメトリを使用して、その画像自体に基づいて入力画像のストローク密度を推定します。
- アーティストの粗いワークフローから細かいワークフローを模倣して、視覚的にリアルな照明効果を生成します。
論文→
これは、提案されたアルゴリズムの概要を提供する論文の著者によってリリースされたビデオです。
論文の概要
提案されたアルゴリズムは、アーティストの照明効果の構成ワークフローを段階的に模倣しています。現在の芸術的なワークフローでは、アーティストはこれらの照明効果を手動でペイントし、面倒な変更を加えて最適な構成を見つけます。使用可能な照明効果製品を作成するために、アーティストは通常、最初にいくつかのグローバルまたは粗い照明レイヤーを描画し、次にこれらのレイヤーの詳細をレタッチして元の画像コンテンツに自然にフィットさせます。このプロセスの欠点は次のとおりです。
- 非常に時間がかかります。
- それは労働集約的です。
アルゴリズムは、アーティストの新しくペイントされたストロークが以前のストローク履歴に関連しているというこの重要な仮定に基づいています。しかし、ほとんどのデジタル絵画には、このストローク履歴情報がありません。さらに、そのような情報を記録することは、その高解像度のために実用的ではありません。
提案された方法
-
脳卒中の履歴の密度を直接推定します。これを行うには、最初に入力画像から仮想パレットを抽出し、次にピクセルの色とパレットの色の関係を利用してストローク密度を推定します。そして、これはすべて、完成した1つのイラスト/画像だけで実行できます。
-
次に、粗いものから細かいものへと変化するアーティストのワークフローを模倣することにより、稲妻効果を適用します。
- まず、粗い効果マップを生成します。このマップは、ハイライト、シャドウ、および近くのオブジェクトの影響によって引き起こされるカラーバリエーションのラフで低頻度のレンダリングです。
- 次に、この粗い効果マップは、元の画像構造に合うように��整され、それによって、見た目に美しい照明結果を生成できるようになります。
主な機能
このホワイトペーパーの主な機能は次のとおりです。
-
アルゴリズムは、上記のすべてを実行するために1つの画像のみを必要とします。
-
照明効果は、写真または3Dレンダリングされた画像に適用できます
-
エフェクトの生成には約0.06秒かかります。
-
このアルゴリズムは、複数の光源をサポートしています。
-
このアルゴリズムは、実際のシーン/画像だけでなく、デジタルで描かれたイラストにも適用できます。
コード
いくつかの興味深い稲妻効果を自分で生成してみましょう。
コード→
anaconda
コマンドプロンプトを開き、新しいconda環境を作成します。
conda create --name paintlight
pip install https://github.com/ayulockin/PaintingLight
- リポジトリの
README
に示されているように、依存関係をインストールします。作成した環境にpython3.6.x
バージョンがあることを確認してください。そうでない場合は、次のようにします。
conda install python=3.6.10
* code
のあるディレクトリに移動します。これで、任意の例で遊ぶ準備ができました。または、独自の画像を使用して効果を確認できます。
cd code
python example001.jpeg
注: オリジナルリポジトリのフォークで、wandb.com にサインアップして、Weights&Biasesダッシュボードで結果をよりインタラクティブに視覚化できるようにする必要があります。
元のリポジトリを使用している場合でも、こことREADME
に示されている手順に従うことができます。これにより、画像を含むcv2.window
が生成されます。画像にマウスを合わせると、稲妻の効果を確認できます。ただし、これらの効果を保存するには、出力をウェイトとバイアスに記録する必要があります。
結果
選択した結果
パラメータの調整
あなたが使用できるあなた自身の画像で見事な照明効果を試すために–
python default.py path_to_image
パラメータ値をいじって、目的の稲妻効果を生成することもできます。すべてのパラメータとその推奨値のリストは、リポジトリのREADME
にあります。x値とy
値を一定に保ちながら、範囲を最小値から最大値に変更して、いくつかのパラメータを試しました。
light_source_height
: これは画像からの光源の距離です。推奨値は1です。このパラメータの効果を確認するために、ステップサイズ0.1の範囲(0.1、2)
の値を変更しました。結果は、下の図light_height_source_gif_015
で確認できます。光源の高さが高いほど、暗い領域が小さくなることに注意してください。
light_intensity
: これは光の強度です。推奨値は0.85です。このパラメータの効果を確認するために、ステップサイズ0.1で(0、1)
の範囲の値を変更しました。結果は、下の図light_intenity_gif_008
で確認できます。
ambient_intensity
: これは周囲光の強度です。推奨値は0.45です。このパラメータの効果を確認するために、ステップサイズ0.1で(0、0.7)
の範囲の値を変更しました。結果は、下の図ambient_intensity_source_gif_018
で確認できます。
視覚的に魅力的な画像を生成するために、値を試してみることをお勧めします。
コード→
結論および最後の秘訣
領域のマスキング
このペーパーでは、画像をマスクして、目的の領域にのみ稲妻効果を適用する方法を示します。これを行うには、バイナリマスクを生成し、それをアルゴリズムに渡すことができます。以下の図で、著者によって提供された例を視覚化しました。キリンに適用される水平効果のみがどのようにあるかを観察します。
結論
これは取り組むべきエキサイティングなプロジェクトでした。プロジェクトはまだ研究段階にあり、著者は広く採用できるようにPhotoshopプラグインに取り組んでいます。ビジュアルが気に入って、レポを自分で試してみるきっかけになったと思います。今日のディープラーニングの時代でさえ、古典的な画像処理アルゴリズムが時には本当に素晴らしい結果を生み出すことができるのは非常にエキサイティングです。フィードバックについては、Twitterの@ayushthakur0までお気軽にご連絡ください。