Google のオープンソース ビジュアル プログラミング フレームワーク Visual Blocks for ML

Visual Blocks for ML は、Google が開発したオープンソースのビジュアル プログラミング フレームワークです。使いやすいノーコード グラフィカル エディターで ML パイプラインを作成できます。

Visual Blocks for ML を実行するため。GPU が動作していることを確認する必要があります。残りはコードを複製して実行するだけです。以下に簡単に説明します。

Visual Blocks for ML は JavaScript をサポートする Web ブラウザ上で動作し、主に TensorFlow.js を使用するため、サーバーの GPU リソースではなくローカル GPU を使用するため、データはアップロードされず、データのプライバシーは保護されます。他のフレームワークではサポートされない可能性があります。

しかし、Visual Blocks for ML の最大の特徴は、何が起こったのかを視覚的な方法で段階的に説明することです。これにより、反復処理を迅速化し、最終的に結果をより迅速にリリースできるようになり、設計プロセスがスピードアップします。

この記事では、簡単に紹介する例として、ML セグメンテーション モデルを使用して既存の写真にステッカーと仮想背景を追加します。

公式デモ

1. 画像のセグメンテーション

公式デモはこちらです: https://visualblocks.withgoogle.com/#/demo、[デモ: 独自のデモを作成] タブをクリックします。

このページにアクセスするには、カメラの許可が必要な場合があります。

左側のコンポーネント ライブラリから画像をロードするには、[入力] をクリックしてプロジェクトの下部パネルにドラッグします。

プリロードされたストック画像を選択し、独自の写真をアップロードできます

ボディ セグメンテーション モデルの適用 - コンポーネント ライブラリからノードをドラッグする必要はありません。入力イメージ ノードの出力を表す小さな円をクリックしてドラッグし、利用可能な候補ノードのリストから選択または検索するだけです。

マスク ビジュアライザーの追加 - セグメンテーション モデルの出力を表示するには、マスク ビジュアライザー ノードをワークフローに追加する必要があります。上記のボディ セグメンテーション モデルの出力からドラッグし、推奨ノードであるマスク ビジュアライザを選択します。

これまで正しい手順に従った場合は、以下のスクリーンショットのようなものが表示されるはずです。

顔のランドマーク モデルを適用することで、私たちの目標は頭にステッカーを追加することなので、顔の領域を特定するためのモデルを作成する必要があります。顔のランドマーク モデルでは、ステッカーを正しい位置に配置できるように、「顔の上部」などのアンカー ポイントを定義できます。

最後に、仮想ステッカーを追加します。まず、左側のコンポーネント ライブラリから新しい入力イメージ ノードをドラッグする必要があります。ここでは電球のイメージを使用しました。ステッカーとして任意の画像を使用できますが、背景が透明であることを確認してください。

次に、顔ランドマーク出力から仮想ステッカーをドラッグして選択する必要があります。機能するには、さらに 2 つの入力、ステッカー イメージとマスク ビズアライザーが必要です。

最後に、「Scale」パラメータと「OffsetX/Y」パラメータを調整して位置を調整します。結果は次の図に示されています。

上の画像では、顔のマッピング結果を写真として表示できるLandmarkビジュアライザもビジュアライゼーションに使用しています。

前景を配置したら、イメージ ミキサーを使用して背景イメージを追加することもできます。

左側のコンポーネント ライブラリから新しい入力イメージ ノードを選択します。これはプリロードされた背景です。

次に、左側のコンポーネント ライブラリの [エフェクト] タブにある仮想ステッカー ノードをドラッグし、上で構成した最後のノードを新しい仮想ステッカー ノードの入力 Image1 に出力し、背景画像を入力 Image2 に接続します。ドロップダウン モードを「destination-over」に変更します。最終的な結果は次のとおりです。

このツールは、パイプラインを .js コードに変換するためのエクスポートまたは共有機能も備えているため、他のユーザーがワークフローをインポートして再作成できます。

上記では公式 Web サイトの DEMO を使用しましたが、Jupyter Notebook を使用してローカルで実行する方法を見てみましょう。

ジュピターノートブック

ここではデモンストレーションとして Colab を使用して、独自の環境で Visual Blocks を実行することもできます。

Visual ブロッ​​クに必要な Python ライブラリをインストールします。

 !pip install visualblocks

Visual Blocks サーバーを起動します。

 import visualblocks
 server = visualblocks.Server()

次に、ビジュアル ブロック UI を開きます。

 server.display()

これで、ワークフローをローカルに作成できるようになりました。作成が完了したら、[Colab に保存] をクリックすると、今後の実行に備えてワークフローの .js が Jupyter Notebook に保存されます。

自分で試してみたい場合は、以下のファイルを使用できます。

https://avoid.overfit.cn/post/ed762d829e1d40d4968a1c4f24018663

要約する

個人的には、Google がオープンソース化した ML 用の Visual Blocks は、実用的なアプリケーションにはほとんど意味がないと感じています。これは単なる TensorFlow.js テクノロジーのデモンストレーションかもしれませんが、研究の方向性は非常に優れているはずです。たとえば、カメラの場合、ローカル特徴抽出はネットワーク凡例を必要とせずに実行されるため、帯域幅とサーバー リソースが節約され、ユーザーのプライバシーも保証されます。これがFederated Learningの方向性ではないでしょうか?興味があれば見てみると楽しいですよ。

おすすめ

転載: blog.csdn.net/m0_46510245/article/details/132376428