Intelligence本記事では、DualStyleGANと呼ばれる機械学習手法を用いて、写真に似顔絵スタイルを転送し、似顔絵風画像を生成する方法をご紹介します。TransferDualStyleGAN概要DualStyleGANは、オリジナル顔画像のドメインと拡張された芸術的なポートレートドメインのDualStyleを柔軟に制御可能なexemplarベースの高解像度ポートレートスタイル転送技術です。pathで特徴づけることにより自然なスタイル転送を実現しています。pathによりモデルは色や複雑なスタイルの両方を段階的にスタイル転送することが可能となっています。Transfer詳細はこちらの論文をご参照ください。本記事では上記手法を用いて、スタイル転送を行っていきます。デモ(Colaboratory)それでは、実際に動かしながらスタイル転送を行っていきます。ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。Colaboratoryで開くこともできます。このデモはPythonで実装しています。Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。環境セットアップそれではセットアップしていきます。Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。初めにGithubからソースコードを取得します。https://github.com/williamyang1991/DualStyleGAN.git次にライブラリをインストールします。gdown最後にライブラリをインポートします。'/content/DualStyleGAN/data'以上で環境セットアップは完了です。モデルのセットアップ続いて転送するスタイルに合わせたモデルをセットアップしていきます。はじめに転送するスタイルを設定します。exist_ok=True)設定に基づき学習済みモデルをダウンロードしていきます。)ダウンロードした学習済みモデルをロードします。loaded!')画像のセットアップスタイル転送したい写真をセットアップします。似顔絵風に変換したいお好きな画像をご用意ください。本記事ではぱくたそ様の以下の画像を使用します。./images/test1.jpg用意した画像から顔部分を抜き出し位置合わせします。transform(run_alignment(image_path)).unsqueeze(dim=0).to(device)plt.figure(figsize=(10,10),dpi=30)visualize(I[0].cpu())plt.show()スタイル転送それでは先ほどの顔写真にスタイルを転送していきます。スタイル転送元の画像を指定します。found'%stylename)それではスタイル転送します。1)plt.figure(figsize=(10,10),dpi=120)visualize(vis.cpu())plt.show()出力結果は以下の通りです。左から以下の順で並んでいます。次に段階的にスタイルを転送していき、徐々に似顔絵風に変換していきます。1)plt.figure(figsize=(10,10),dpi=120)visualize(vis.cpu())plt.show()徐々に変化する一連の画像から動画を生成します。height=420)clip.ipython_display()出力結果は以下の通りです。まとめ本記事では、DualStyleGANと呼ばれる機械学習手法を用いて、写真に似顔絵スタイルを転送し、似顔絵風画像を生成する方法をご紹介しました。段階的に変化する様子は見ていて知的好奇心をくすぐられます。一方でオリジナル画像を潜在空間に再構成する際にオリジナル画像からやや顔が変わってため、別の手法でinverseして改善したいところです。本記事では、機械学習を動かすことにフォーカスしてご紹介しました。学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。*このブログについてホームサイトマップTeDokologyTeDokology。