# Lens Studio

Roboflowで学習済みモデルの準備ができたら、そのモデルをSnapMLにデプロイできます。

## タスクのサポート

以下のタスクタイプはホスト型 API でサポートされています:

| タスクタイプ           | Lens Studio対応 |
| ---------------- | ------------- |
| オブジェクト検出         | ✅             |
| 分類               |               |
| インスタンスセグメンテーション  |               |
| セマンティックセグメンテーション |               |

*注意: Roboflow Train 3.0を使用して学習されたモデルのみがサポートされています。モデルに関連付けられているVersionsページを確認することで、そのモデルがRoboflow Train 3.0で学習されているかどうかを確認できます。*

## Lens Studioにモデルをデプロイする

Roboflowのサイドバーで「Deploy」をクリックし、下へスクロールして「Use with Snap Lens Studio」ボックスが表示されるまで移動します。「Export to Lens Studio」をクリックします。

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FuDgYj9rvK3qvndktYPVY%2Fimg-1-deploy.png?alt=media&#x26;token=13518512-8709-444b-be19-d5162b7b1dd4" alt=""><figcaption></figcaption></figure>

このボタンをクリックすると、モデル内のクラスに関する情報を表示するポップアップが表示されます。

これらのクラスは順序付けられており、次のステップでLens Studio内のモデルを設定する際に使用されます。今後のためにクラス一覧を控えておいてください。

さらに、2つのファイルがダウンロードされます:

1. Roboflow Lens Studio template。これを使うと、最小限の設定でアプリケーション内で重みを使用できます。
2. モデルの重み。

Roboflow Lens Studio templateは100 MBあるため、テンプレートのダウンロードにはインターネット接続状況によって数分かかる場合があります。

テンプレートの準備ができたら、Lens Studioでモデルの設定を始められます。

### Lens Studioでモデルを設定する

まだLens Studioをインストールしていない場合は、 [Snap AR website](https://ar.snap.com/lens-studio) にアクセスして、Lens Studioの最新バージョンをダウンロードしてください。Lens Studioをインストールしたら、モデルの設定を始める準備が整います。

このセクションでは、Roboflow Lens Studio templateを使用します。ただし、 [MLController component](https://docs.snap.com/lens-studio/references/templates/ml/object-detection).

で、ダウンロードしたRoboflow Lens Studio templateを解凍し、その後、解凍したフォルダ内の `Roboflow-Lens-Template.Isproj` ファイルを開きます。

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FWJLG4RXc16RCLnwsmBGU%2Fconfigure-model-1.png?alt=media&#x26;token=ab109009-39f2-422c-9b0b-27f453e86eb7" alt=""><figcaption></figcaption></figure>

アプリケーションを開くと、次のような画面が表示されます:

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FO3NYWxWq0zadkD5IyFP3%2Fconfigure-model-2.png?alt=media&#x26;token=73eeb5b9-13c3-4327-938d-5b73ba7cccaf" alt=""><figcaption></figcaption></figure>

デフォルトでは、このテンプレートはコインカウントモデルを使用します。この例では、以前作成したplaying cardsモデルを使用します。このアプリケーションは各予測の周囲にボックスを描画しますが、Lens Studioを使って独自のフィルターやロジックを追加できます。

Lens Studioの左サイドバー上部にある「ML Controller」ボックスをクリックします:

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FIWbF0ueatm5q6J8tvkMx%2Fconfigure-model-3.png?alt=media&#x26;token=fa8d6f74-5d25-4d4b-bb8f-8995ed1c0f3c" alt=""><figcaption></figcaption></figure>

すると、プレビューウィンドウの横でアプリケーションに使用するモデルを設定できるボックスが開きます:

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FGiRIs1hAKAJfJkYNW5VX%2Fconfigure-model-4.png?alt=media&#x26;token=5679992c-7b5a-4324-b373-37189d83c5e8" alt=""><figcaption></figcaption></figure>

デモアプリケーションはcoin counterの例向けに設定されています。独自のモデルを使用するには、まず「ML Model」ボックスをクリックします:

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FWPxbUhiIj13OcjlLYIMz%2Fconfigure-model-5.png?alt=media&#x26;token=d61f4ece-38c5-4448-810c-93ff1254d7b6" alt=""><figcaption></figcaption></figure>

次に、Roboflowからダウンロードした重みをポップアップのボックスにドラッグします:

{% embed url="<https://blog.roboflow.com/content/media/2023/06/Screen-Recording-2023-06-21-at-11.02.58.mp4>" %}

重みをドラッグすると、いくつかの設定オプションが表示されます。ポップアップの「Inputs」セクションで、各「Scale」値を0.0039に設定します。biasの値はデフォルトのままにしておきます。

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2F8oZGI1XaVRrNQJAqujYz%2Fconfigure-model-6.png?alt=media&#x26;token=b9b89b4d-f148-43dd-b0cb-eef0aef3683c" alt=""><figcaption></figcaption></figure>

その後、「Import」をクリックしてモデルをインポートします。

### Lens Studioでクラスを設定する

これでモデルはLens Studioに読み込まれました。あと1つ手順があります。モデルに、どのクラスを使用しているかを伝えます。

先ほど使用したML Modelボタンの下にある「Class Settings」タブには、クラスの一覧が表示されます。これはデモプロジェクトのcoin counterの例向けに設定されていますが、独自のLens Studioプロジェクトを使用している場合は、これらの値は空白になります。

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2Feae6lDdvj7kiTo2nkoQG%2Fconfigure-lens-1.png?alt=media&#x26;token=726c62bc-4e51-4faa-a7a7-1198171f9467" alt=""><figcaption></figcaption></figure>

ここで、クラス名とラベルを設定する必要があります。ラベルはRoboflowダッシュボードに表示される順序でなければなりません。以下は、playing cardアプリケーションの値の1つを設定する例です:

<figure><img src="https://3740591140-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2Fxw0vXAd3xamV51VMdaAt%2Fconfigure-lens-2.png?alt=media&#x26;token=8f1771f2-0847-422e-9538-590d20cabb52" alt=""><figcaption></figcaption></figure>

この設定は、モデル内の各クラスについて行う必要があります。Snapがモデルの重み内の情報を解釈できるように、モデル内のすべてのクラスを指定しなければなりません。

これでアプリケーションを使用する準備ができました! 「Preview」ボックスを使って自分のコンピューター上でアプリケーションを試すことも、 [Pairing with Snapchat feature](https://docs.snap.com/lens-studio/references/guides/general/pairing-to-snapchat).
