WWDC Quick Look 💓 By SwiftGGTeam
Build Image and Video Style Transfer models in Create ML

Build Image and Video Style Transfer models in Create ML

元の動画を見る

ハイライト

Create ML は、2020 年にスタイル転送テンプレートを追加しました。開発者は、スタイル マップとコンテンツ画像ディレクトリを提供することで、画像やリアルタイム ビデオに使用できる Core ML スタイル転送モデルをトレーニングできます。

主要内容

スタイル転送は以前は研究プロジェクトに似ていました。開発者は、ニューラル ネットワーク、トレーニング スクリプト、推論パイプラインを準備し、モバイル デバイスのパフォーマンスを最適化する必要があります。セッションの開始時に、問題は 2 つの入力 (スタイル イメージとコンテンツ イメージ) に絞り込まれます。モデルは色、形状、テクスチャを学習し、これらの視覚的特徴をコンテンツ画像に適用します。

Create ML アプリには、2020 年にスタイル転送テンプレートが追加され、トレーニング エントリがビジュアル プロセスに統合されました。開発者は、スタイル マップ、検証マップ、およびコンテンツ画像ディレクトリをドラッグし、画像またはビデオの最適化ターゲットを選択し、スタイルの強さとスタイルの密度を設定して、トレーニングを開始します。デモンストレーションのトレーニングでは、5 回の反復ごとにチェックポイントが生成され、検証グラフを使用して現在のモデルの効果が直接表示されます。

このセッションの焦点は、様式化された画像を生成することだけではありません。講演者はビデオの使用例をデモンストレーションしました。モデルはビデオをフレームごとに処理でき、A13 Bionic では最大 120 fps に達します。後半では、モデルが AR フレーム内の ARKit パイプラインに入れられます。CVPixelBufferモデルの入力寸法に合わせてスケーリングされ、Core ML でスタイル設定され、Metal を使用して画面にレンダリングされます。

最後の AR デモは、このタイプのモデルをどのように組み立てるかを示しています。 1 つのモデルは現実環境の背景を処理し、もう 1 つのモデルは人物セグメンテーションによって得られた文字領域を処理し、その結果を Metal と混合します。 Create ML は小規模モデルのトレーニングを担当し、Core ML は推論を担当し、ARKit と Metal はリアルタイム シーンを担当します。

詳細

スタイルトランスファー 学ぶべきこと

(00:19) スタイル転送は、今年 Create ML アプリに追加された新しい機械学習タスクです。スタイル マップとコンテンツ マップが混合されます。スタイル マップは色、形状、テクスチャを提供し、コンテンツ マップは保持される主要な構造を提供します。デモでは、白地に黒のストロークを描くと白黒の結果が得られ、モザイクや氷の亀裂もスタイルのソースになる可能性があります。

キーポイント:

  • スタイル ダイアグラムは絵画に限定されず、モザイク、自然のテクスチャ、パターンなどすべてトレーニング素材として使用できます。
  • モデルはスタイル マップの視覚的な品質を学習し、それを新しいコンテンツ マップまたはビデオ フレームに転送します。
  • トレーニング内容のグラフは、将来の推論中に処理される画像に近いものである必要があります。デモでは自然なコンテンツ画像を使用します。

パラメータを使用して結果を制御する

(02:10) ML を作成すると、2 つの主要なパラメーターがスタイル転送に公開されます。スタイルの強さは、コンテンツとスタイルのバランスを制御します。低強度では、背景は少量のスタイルのみを吸収します。高輝度では、文字と背景の両方がスタイル マップの色とテクスチャをより明確に採用します。

(02:54) スタイル密度は、モデルが粗粒スタイルを学習するか細粒スタイルを学習するかを制御します。密度が低いと、モデルは鳥などの高レベルの詳細に焦点を当てます。密度が高いと、モデルは色とブラシストロークにさらに注意を払うようになります。このパラメータは、同じスタイル マップのさまざまな出力を調べるのに適しています。

キーポイント:

  • スタイルの強さは、「元の画像コンテンツをどれだけ保持するか」という問題を解決します。
  • スタイル密度は、「スタイルの詳細がどのくらい厚いか薄いかを学習する」という問題を解決します。
  • 両方のスライダーはトレーニング前に設定されており、デモンストレーションでは、デフォルトのパラメーターがほとんどのシナリオで適切に機能することも示しています。

ML アプリの作成のトレーニング

(03:45) トレーニング プロセスは、新しいスタイル転送ドキュメントを作成することから始まります。デモ プロジェクトは DanceStylizer と呼ばれ、トレーニング入力にはスタイル イメージ、検証イメージ、コンテンツ イメージ ディレクトリが含まれます。 Create ML アプリは、何百もの自然なコンテンツ画像を直接ダウンロードすることも、開発者独自の画像フォルダーを使用することもできます。デモでは、自然コンテンツの 600 枚の画像を使用します。

(04:57) トレーニングのターゲットは画像またはビデオにすることができます。デモではビデオを選択し、400 回の反復でトレーニングします。トレーニングが開始されると、Create ML はスタイルとコンテンツのグラフを処理し、すぐにトレーニングを開始します。 5 回の反復ごとに、新しいモデル チェックポイントによって検証グラフが定型化され、開発者はトレーニング中に品質の変化を監視できます。

キーポイント:

  • 検証グラフは、トレーニングの終了を待たずに、トレーニング プロセス中にモデルの品質を観察するために使用されます。
  • スナップショットは、後でアプリに配置できる ML モデルであり、モデル ソースの下に保存されます。
  • スタイル損失とコンテンツ損失のグラフは、スタイルとコンテンツに関するモデルの学習の進行状況を判断するのに役立ちます。
  • 400 回の反復のトレーニング後、スタイルの損失が収束した場合は停止できます。さらに改善したい場合は、「さらにトレーニング」をクリックしてトレーニングを続けることができます。

プレビュー、エクスポート、統合

(06:30) [プレビュー] タブは、トレーニングされたモデルをテストするために使用されます。開発者は、新しいテスト画像をドラッグして、様式化された画像と元のコンテンツを切り替え、さまざまなスナップショットからの結果を比較できます。デモ モデルはビデオのユースケースに最適化されているため、ビデオをプレビューにドラッグすることもでき、結果をダウンロード、共有したり、QuickTime Player で開くこともできます。

(07:13) [出力] タブにはモデル情報が表示されます。デモのモデルは 1 MB 未満で、アプリとのパッケージ化に適しています。このページには、OS の可用性、および予測の入力レイヤー名と出力レイヤー名も表示されます。最後に、取得、Xcode で開く、または共有を通じて使用するモデルをアプリに渡すことができます。

キーポイント:

  • プレビュー段階では、トレーニング セット以外の新しい画像またはビデオを使用して効果を確認します。
  • スナップショットの比較は、主観的により優れた様式化されたバージョンを選択するのに適しています。 ・出力情報のシステム可用性、入出力層名はモデルインターフェースであり、統合前に確認する必要があります。

リアルタイム AR シーンに配置する

(08:24) 2 番目のデモでは、Style Transfer モデルと ARKit を組み合わせています。 ARKit は実際の環境をキャプチャし、各スタイル変換モデルはシーンを視覚スタイルに変換します。各 AR フレームには、CVPixelBufferの場合、デモではスタイル転送モデルで予期される入力サイズにスケールし、Core ML でスタイル設定して、Metal で画面にレンダリングします。

(10:18) より複雑なバージョンでは、複数のスタイル転送モデルを同時に実行します。このデモでは、Apple Neural Engine、ARKit 人物セグメンテーション、および Metal を組み合わせています。1 つのモデルは背景環境に使用され、もう 1 つのモデルはセグメント化された人物に使用され、2 つの様式化された結果が最終的にブレンドされます。

キーポイント:

  • ARKit は AR フレームと人物セグメンテーションを提供します。
  • Core ML は、Create ML によってトレーニングされた Style Transfer モデルを実行します。
  • Metal は、様式化された結果を画面にレンダリングまたはブレンドする役割を果たします。
  • 複数のモデルのリアルタイム実行は、最適化されたスタイル転送モデルと Apple Neural Engine に依存します。

重要ポイント

  • ライブ カメラ フィルター: 対処方法: カスタム アーティスティック フィルターをカメラまたはショート ビデオ アプリに追加します。実行する価値がある理由: このセッションは、ビデオ スタイル転送がフレームごとに実行でき、A13 Bionic では最大 120 fps に達することができることを明確に示しています。開始方法: Create ML を使用してビデオに最適化されたスタイル転送モデルをトレーニングし、カメラ フレーム パイプラインでフレームをモデル入力に変換し、出力をプレビュー レイヤーにレンダリングして戻します。

  • ブランド ビジュアル キット: 機能: ブランド パターン、テクスチャ、またはイラスト スタイルを再利用可能なフィルターに変換します。価値がある理由: Style Transfer は色、形、テクスチャを学習でき、モデルは 1 MB 未満であるため、アプリとのパッケージ化に適しています。開始方法: ブランド スタイルを表すスタイル イメージを準備し、実際のユーザーの写真に近いコンテンツ イメージ ディレクトリをトレーニング用に使用してから、[プレビュー] タブを使用して複数のテスト イメージのスナップショットを比較します。

  • AR シーン スキニング: 内容: 部屋を手描き、氷のひび割れ、またはモザイク スタイルに変えるなど、リアルタイムのビジュアル テーマを AR シーンに追加します。実行する価値がある理由: デモでは、ARKit フレームが Core ML でスタイル設定され、Metal で画面にレンダリングされます。開始方法: ARKit から入手しますCVPixelBuffer、モデルの入力サイズに応じてスケールし、スタイル転送モデルを実行して、結果を表示のために Metal に送信します。

  • キャラクターと背景のレイヤースタイル: 対処方法: キャラクターと背景に異なるスタイルを使用します。たとえば、キャラクターは鮮明なままで、背景は芸術的なテクスチャになります。実行する価値がある理由: このセッションでは、ARKit の人物セグメンテーションを組み合わせ、2 つのスタイル転送モデルを同時に実行し、それらを Metal とブレンドする方法をデモンストレーションします。開始方法: まず 2 つのスタイル モデルを別々にトレーニングし、次にセグメンテーション マスクを使用して背景と文字の領域を別々に処理します。

関連セッション

コメント

GitHub Issues · utterances