ebsynth
、画像のサンプル合成を行うための多用途ツールです。ガイド付きテクスチャ合成、芸術的スタイルの転送、コンテンツを意識した修復、超解像度など、さまざまな画像合成タスクに使用できます。
ebsynth
の焦点は、ソース素材の忠実性を維持することにあります。他の最近のアプローチとは異なり、 ebsynth
ニューラル ネットワークに依存しません。代わりに、ノンパラメトリック テクスチャ合成アルゴリズムの最先端の実装が使用されます。 ebsynth
パッチベースの性質により、元の画像に存在する細かいディテールをすべて保持した鮮明な結果を生成します。
ebsynth -style -guide -output
-style
-guide
-weight
-uniformity
-patchsize
-pyramidlevels
-searchvoteiters
-patchmatchiters
-extrapass3x3
-backend [cpu|cuda]
事前に構築された Windows バイナリは、http://jamriska.cz/ebsynth/ebsynth-win64.zip からダウンロードできます。
最初の例は、 ebsynth
を使用して基本的なガイド付きテクスチャ合成を実行する方法を示します。この使用例は、最初の Image Analology の論文 [1] で提案され、そこでは「texture-by-numbers」と呼ばれていました。自然風景の写真とそのセグメンテーションから始めます (例: 岩は緑に塗られ、空は青に塗られています)。
ebsynth -style source_photo.png -guide source_segment.png target_segment.png -output output.png
次に、ターゲットのセグメンテーションを手動でペイントし、 ebsynth
それに一致する新しい「写真」を作成するように依頼します。スタイル転送の言葉で言えば、個々のセグメントを尊重する方法で、ソース写真のスタイルをターゲット セグメンテーションに転送したいと考えています。セグメンテーションは合成のガイドとして機能します。
この例では、 ebsynth
を使用して非フォトリアリスティックなレンダリングを実現する方法を示します。これは Fišer らの研究に基づいています。 [7]。目標は、アーティストが行うように 3D モデルをレンダリングすることです。具体的には、アーティストがハイライト、コンタクト シャドウ、間接バウンスなどのさまざまな照明効果をどのように伝えるかを捉えたいと考えています。そのために、照明されたボールを備えたシンプルなリファレンス シーンを設定し、アーティストに自分のスタイルで描いてもらいました。既製のパス トレーサーを使用して、個別のレンダー パス (完全なグローバル イルミネーション、直接拡散コンポーネントのみ、間接バウンスのみなど) を生成します。 次に、ターゲット 3D モデルに対して同じパスのセットをレンダリングします。 ebsynth
のガイドとして使用してください。
ebsynth -style source_style.png
-guide source_fullgi.png target_fullgi.png -weight 0.66
-guide source_dirdif.png target_dirdif.png -weight 0.66
-guide source_indirb.png target_indirb.png -weight 0.66
-output output.png
数値によるテクスチャと比較した場合の主な違いは、複数のガイド チャネルがあることです。ガイドは常にペアで存在することに注意してください。最初にソース ガイド、次にターゲット ガイドです。より良い結果を得るには、スタイルに関連してガイドの貢献を高めることが必要になる場合があります。上の例では、スタイルのデフォルトのウェイトは 1.0 ですが、ガイド チャネルのウェイトはそれぞれ 0.66 です。合計すると、ガイドの総重量は 2.0 となり、ガイドとスタイルの比率は 2:1 になります。
この例では、 ebsynth
使用して肖像画のスタイルを他の人の写真に転写する方法を示します。これは Fišer らの研究に基づいています。 [8]。目標は、対象となる人物のアイデンティティを維持しながら、元の絵画の微妙なニュアンスを再現することです。つまり、合成後も人物が認識できるようにしたいのです。
StyLit とは異なり、この設定ではガイドとして使用する参照 3D ジオメトリがありません。ただし、ソースの絵画とターゲットの写真の両方に人間の顔が含まれており、その構造が明確に定義されているという事実を利用できます。この構造を使用して、必要なガイド情報を推測します。
ebsynth -style source_painting.png
-guide source_Gapp.png target_Gapp.png -weight 2.0
-guide source_Gseg.png target_Gseg.png -weight 1.5
-guide source_Gpos.png target_Gpos.png -weight 1.5
-output output.png
具体的には、ターゲット画像とソース画像の両方で顔のランドマークを検出し、それらを使用してソフト セグメンテーション ガイドGseg
と位置ガイドGpos
を生成します。これは本質的に、すべてのターゲット ピクセルをソース内の対応する位置にマッピングする密なワープ フィールドです。 。人物のアイデンティティを維持するために、外観ガイドGapp
使用します。これは、ソース絵画の輝度に一致するように均等化されたターゲット写真のグレースケール バージョンです。
コードはパブリック ドメインに公開されます。やりたいことは何でもできます。
ただし、このコードには、Adobe が特許を取得した PatchMatch アルゴリズム (米国特許 8,861,869) が実装されていることに注意してください。他の技術も同様に特許を取得される可能性があります。このコードを使用して特許所有者の権利を侵害していないことを確認するのはあなたの責任です。
このコードが研究に役立つと思われる場合は、引用してください。
@misc{Jamriska2018,
author = {Jamriska, Ondrej},
title = {Ebsynth: Fast Example-based Image Synthesis and Style Transfer},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/jamriska/ebsynth}},
}