2023/10/13
SnapMLとは?概要と使い方
Lens Studio と 機械学習について
LensStudioでは、セグメンテーション(人物切り抜き)やボディトラッキングなど多くの機能で機械学習が使われています。
上記のような組み込みのML(機械学習)に加えて、Lens Studio3.0ではSnapMLが導入され独自のMLモデルを追加してARを開発できます。
MLモデルを用意すれば、Lens Studioで提供されていない機能を拡張してARを開発できます!革新的ですね!
使い方
SnapMLではPyTorch、TensorFlowなど互換性のある フレームワークを使用して作成されたモデルをインポートして使用することが可能です。
例えば、空を白に、その他の場所を黒に着色するMLモデルを作成することによって空のセグメンテーションを実現することが可能です。
MLモデルの使い方
Lens Studioに持ち込むモデルは、モデルごとに入力と出力が異なる可能性があるため、モデルに入力の形式と出力の形式を定義してLensStudioに示す必要があります。
たとえば、上記の空のセグメンテーションの場合、空がフレーム内のどこにあるかを検出するために、LensStudioにカメラテクスチャを渡すように指示します。
そのほかに、人が眼鏡をかけているかどうかを出力(分類)するモデルの場合は顔の周りのテクスチャのみが必要になるので、そのように指示をします。
同様に、モデルの出力はモデルごとに異なる場合があります。上記の空セグメンテーションモデルは、マスクテクスチャとして使用できる白黒画像を出力しますが、誰かが眼鏡をかけているかどうかを出力するモデルは、眼鏡の存在確率を出力するだけで十分です。
MLコンポーネント
Lens Studioにモデルを使用するにはMLコンポーネントを用います。MLコンポーネントを使用すると、Lens Studioにモデルに入力するデータとモデルから出力されるデータを指示できるだけでなく、モデルをどのように実行するかを指定することもできます。
フレームごとに実行する必要がある場合、ユーザーがアクションを実行すると、または別のスレッドでも、レンズをリアルタイムで実行し続けることが可能です!
テンプレート
いくつかLens StudioでSnap MLを用いたテンプレートが用意されているので、これらを紹介しながら、どんなことにSnapMLを応用できるか学んでいきましょう。
分類
人物がメガネをかけている・かけていないを識別する例
物体検出
特定の物体がカメラ内のどこにあるかを検出する例
上の画像では車を認識して、トラッカーを表示しています
Style Transfer
テクスチャを取り込んで加工したテクスチャを返す例
カスタムセグメンテーション
特定の物体をマスクする例
上の画像ではピザの部分のみをマスクして、熱々を表現するためにピザの部分だけエフェクトをかけています。
地面セクメンテーション
地面セグメンテーションマスクを使用して地面を変更する例
XR エンジニア
Ivan Stephanus
複数のスタートアップでフルスタックエンジニアとして経験を積む。「THE Global Mobile Games Conference」ブロックチェーンゲーム部門で入賞。2019年にOnePlanetに入社。最先端のAR技術を活用した新しい顧客体験の創造に挑んでいる。
View More