# 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>

デフォルトでは、このテンプレートはコインカウントモデルを使用しています。この例では、先ほど作成したトランプのモデルを使用します。このアプリケーションは各予測の周囲にボックスを描画しますが、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>

デモアプリケーションはコインカウンターの例向けに設定されています。独自のモデルを使用するには、まず「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」タブで、クラスの一覧が表示されます。これはデモプロジェクトのコインカウンター例用に設定されていますが、独自の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ダッシュボードに表示される順序でなければなりません。以下は、トランプのアプリケーションで値の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).
