見出し画像

【お試し】Unity Sentis と YOLO ~AR・VRの発展~

みなさん、こんにちは。SOMPOシステムズのアプリケーションエンジニアです。
私は昨年の7月に中途入社しました。

中途入社前は、中南米のパナマ共和国に約3年間住んでおりました。
水道や電気が頻繁に止まったり、暴徒化するデモで道路が封鎖されたり…
日本では考えられないアクシデントに日々振り回されるうちに、随分たくましくなりました。
3年ぶりに日本に帰ってくると、やっぱり日本はすごい!タイムスリップしてきたような、文明の進化に改めて感動しました。

そんな私は現在、R&Dグループに所属しており、生成AIなどの最先端技術にアンテナを張り巡らせています。
今回は、今後も成長が期待されるAR・VR分野で必須の開発ツール、Unity のAI機能「Unity Sentis」についてご紹介します。


1. Unity Sentisとは

Unity Sentisは、ゲームやアプリ開発にAI技術を取り入れることができる、画期的なツールです。このツールを使えば、ゲーム内のキャラクターがリアルタイムで周囲の環境を認識したり、音声で操作したりできるようになります。

今回は、Unity Sentisのサンプルから、AR・VRに欠かせない深度推定(奥行を測る技術)と、Unity Sentisと統合することができるAIモデルYOLO(物体を検出するモデル)を実際に触ってみます。

2. Sentisの深度推定を動かしてみる

Sentisが公開しているサンプルのうち、深度推定を試してみます。
深度推定は、物体までの奥行を測る技術です。ゲームで例えると、プレイヤーの視点から見た物体の距離を正確に把握することができます。
まるで現実世界にいるような臨場感あふれる視覚効果を実現できるのです。

2-1. サンプルのインストール

GitHubから、深度推定のサンプル「Depth Estimation Sample」をダウンロードし、Unity上で読み込んだのち、iPadへビルドしてみました。
https://github.com/Unity-Technologies/sentis-samples/blob/main/DepthEstimationSample/README.md

2-2. iPadから実行

弊社のオフィスの片隅で試してみます。

深度推定の実行結果

深度推定のサンプルを実行した結果、カメラで撮影した画像から、物体の奥行きを正確に推定されていることが確認できました。
手前の椅子と奥の椅子が、まるで立体的に見えるように、手前が赤、奥に行くほど濃い青色に色分けされています!

今まで深度推定は、LiDARスキャナのレーザー光を用いて測っていました。しかし、LiDARスキャナは高価で、スマートフォンなどの小型デバイスには搭載しづらいという課題がありました。

そこで、このSentisの機能の登場です!このように、LiDARスキャナが搭載されていない端末でも、カメラさえあれば、カメラで撮影した画像をSentisの機能を利用して変換することで、物体の奥行きを正確に推定できる=深度推定が可能となりました。

3. YOLOを動かしてみる

YOLOは、画像の中に写っている物体を自動で認識してくれる技術です。この技術を使えば、ゲームの中に登場するキャラクターが、周りの物体を理解して行動したり、現実世界と仮想世界を繋ぐARアプリを作ったりすることができます。
例えば、画像の中に人が写っていたら、その人の位置や大きさ、さらには人が持っている物体を認識することもできます。

3-1. YOLOのインストール

以下のサイトにアクセスし、ultralyticsとPyTorchをインストールします。

3-2. 画像準備と実行

物体検出用の画像を用意しました。弊社のコミュニティスペースです。

物体検出前の画像

上記画像をYOLOモデルで物体検出します。
実行方法は、pythonでYOLOモデル(v8)と画像のパスを指定して実行するだけです。

from ultralytics import YOLO

if __name__ == '__main__':
    # Load a YOLO model 
    model = YOLO("yolov8n.pt")

    # Perform object detection on an image using the model
    model.predict('video/IMG_0013.HEIC', save=True)

実際に物体検出した結果が、以下の画像です。

物体検出後の画像

テーブル、椅子、傘、ちゃんと物体を検出しています。しかも、検出にかかった時間わずか0.06秒!さすがYOLO、高速で高精度な物体検出技術です。

YOLOは、ゲーム開発だけでなく、監視システム、医療画像解析など、様々な分野で活用されています。

4. まとめ

こんなにも簡単に、深度推定とYOLOを試せることに驚きました。このような技術をARやVRでリアルタイム活用することで、人々をサポートしていくシステムが今後さらに増えていくことでしょう。

これからも、あらゆる研究分野の新技術をキャッチアップし、チャレンジしていこうと思います!