2022年01月18日

ワンショット顔スタイル変換:JoJoGAN

JoJoGANはone-shotのスタイル転送フレームワークです。
既存研究では大量のペア学習画像が必要ですが、StyleGAN2事前学習モデルをfinetuningする事で、単一参照画像でそれを実現します。
対象スタイルは何でも良いはずですが...





JoJoGAN: One Shot Face Stylization
Min Jin Chong , David Forsyth   University of Illinois
arXiv preprint arXiv:2112.11641 (2021).

Given only a single reference style image, a skilled artist can reproduce new artworks that faithfully capture the style.
本当なんでしょうか?


 Stop spending your time collecting data!









2 METHODOLOGY
スタイル画像yを潜在変数に反転する事により、近似ペアトレーニングデータを準備します。その学習データに基づいて、StyleGANをfine-tuningします。

参照画像yに対して GAN inversionを実行して、対応する顔画像のスタイルコードwを取得します。
次に、ランダムなスタイルミキシングを実行して、顔画像Xをyにマッピングし、(wi、y)組の学習データを持つスタイルコードWの族を取得します。
学習データにXまたはCを使用すると、異なる結果が得られ、顔のスタイルが入力画像の元の色を保持するかどうかを制御出来ます。

JoJoGAN
単一のデータポイントのみを使用すると、他の画像への一般化が不十分になります。
ペアデータセットが無い代わりに、大凡のペアトレーニングデータセットを生成する事で、この問題を克服します

アイデアは単純で、多くの実際の顔画像は同じスタイルの参照画像と一致する必要があります。目のサイズや髪の質感が異なる顔は、同じ参照画像に合理的に一致させる事が出来ます

選択した特定のレイヤーでスタイルミキシングを実行する事により、StyleGANで同様のサンプルを生成します。


続きを読む

tak_tak0 at 21:30コメント(0)研究 この記事をクリップ!

2022年01月17日

magentaでpretrainモデルを再学習する方法

magentaで大規模事前学習されたモデルを独自データでfine-tune出来たらどうなるかと思っていたんですが...


まずpretrainモデルをダウンロードします。
pretrainモデルはmagファイルなので、そのまま学習出来ません。
そこでこうします。
python magenta/scripts/unpack_bundle.py --bundle_path ./pretrain.mag --checkpoint_path
このcheckpoint_pathの指定がちょっと厄介ですが...
これで、magからチェックポイントを取り出せます。

ファイルは、おそらく model.ckpt と model.ckpt-meta の二つだけです。




そうしたら、checkpointファイルにファイルパスを指定します。
model_checkpoint_path: "model.ckpt"
all_model_checkpoint_paths: "model.ckpt"
これで問題なければ、
melody_rnn_train等学習スクリプトを実行出来ます。


...学習が進めば、後は通常のモデルと同じ扱いが出来ます。
しかし、pretrainモデルはハイパーパラメータが違いますので、注意が必要です。



tak_tak0 at 23:35コメント(0)サーバ この記事をクリップ!

2022年01月10日

Shapley値計算の実装方法

https://github.com/slundberg/shap

A Unified Approach to Interpreting Model Predictions
Scott M. Lundberg, Su-In Lee  University of Washington
Proceedings of the 31st international conference on neural information processing systems. 2017.

...モデルの予測を解釈するためのフレームワーク、SHAP(SHapley Additive exPlanations)です。
SHAPは、特定の予測に対して、各特徴に重要度の値を割り当てます。
つまり、各クラスと判断するためにどの特徴量がどの程度重要であるかを計算します。
画像の場合だと、 どの画素を変化させればどの出力クラスに変えられるかを示せます







pip install shap
こうするだけと書いてありますが。
Traceback (most recent call last):
 File "<stdin>", line 1, in
ModuleNotFoundError: No module named 'xgboost'
pip install xgboost
xgboostも必要です。




後は、 Deep learning example with GradientExplainer (TensorFlow/Keras/PyTorch models) の通りにするだけですが...


X,y = shap.datasets.imagenet50()

imagenetのデータが読み込めない時がありました。
いつの間にか解消しましたが、インターネット接続の問題だったのでしょうか

続きを読む

tak_tak0 at 06:21コメント(0)サーバ この記事をクリップ!
サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村
adsense
Archives
amazon
blogchart
QRコード
QRコード
Recent Comments
o