近年、AIを取り入れるプロジェクトがどんどん増えており、様々な場面で活用が検討されています。
誰でも使えるサービスやオープンソースのモデルが増えている影響で、技術検証→組み込みの流れもスムーズになっています。ただ現状では新しいAIモデルはPythonで作成されることが多く、すぐにアプリやWebページに適用するには工夫が必要です。また、AIモデルを実行するにはある程度のスペックがないと実用的なスピードで出力を行えない場合も多いので、生成処理自体は性能が良いサーバーで行う形式がほとんどです。
そこで、弊社では興味のある新規AIモデルが出た時に素早く既存のシステムや新規のアプリに機能を組み込む為のインタフェースを作ることにしました。
AIインタフェースについて
弊社で作成したAIインタフェースは「サービスレイヤー」「メインインターフェイス」「アプリケーション」の、3つのレイヤーに分かれています。インタフェースを設計した時に考慮したポイントは以下となります。
- 柔軟性:様々なプラットフォームで利用しやすくする為に、データのやり取りはHTTPリクエストで行う
- スペック:短時間で処理を完了させる為に、外部サーバーでAIの処理を実行できようにする
- 拡張性: 新しいAIモデルを追加する時、できるだけ簡単で工数かからないようにする
利用したいAIモデルは全てサービスとして管理されることになります。AIモデルの追加は容易な構成にしているので新規のモデルをどんどん増やしていくことが可能となっています。
現在利用可能なサービスは以下となります。
- Stable Diffusion
-
- テキストプロンプトまたは画像に基づいて画像の生成
- TripoSR
-
- 画像から3Dモデルの生成
- Audiocraft
-
- テキストプロンプトに基づいて音楽やオーディオの生成
- Rigify
-
- 画像を元にリグ付きの3Dモデルの生成
弊社ではXR関連の開発でUnityを利用する機会が多いのでUnity用のSDKも合わせて開発しました。
流れと動作をまとめましたので、動画でご覧ください
活用事例
次は事例としてAIインタフェースを使ったアプリを紹介します。
このアプリは以前のブログで紹介した「Apple Vision Pro+3Dモデル生成」と基本的な機能は同じなものになりますが、今回のアプリは「より手軽に」というポイントを考慮しスマートフォンのアプリとして作成しました。インタフェースを通してTripoSRという3Dモデル生成AIを利用しています。
ユーザーはまずスマホのカメラを使って新たな写真を撮ります。写真はサーバーに送られ、リクエスト内容の確認後、AIサービスで処理されます。数秒後、生成された3Dモデルデータが出力され、アプリ内で閲覧ができます。
ユーザーはアプリでAR空間にモデルを配置し、移動、回転、拡大/縮小を行うことができます。
続けて別のデータを読み込めば、並べて表示することも可能です。
最終的な表示としては今までのARアプリと変わりませんが、自由なモデルをリアルタイムに表示できる部分は新規性のある部分です。
今回は画像から3Dモデルを生成しましたが、テキスト/音声から音楽を生成してBGMとして流したりなど別のAIモデルを使用すれば様々な機能を簡単に利用することが可能です。
おわりに
現在、利用可能なAIモデルは何千種類もあり、日々増え続けています。この仕組みがあれば、将来開発するアプリで複数のAIモデルを簡単に利用できるようになります。AIモデルを継続的に更新していくことで、さまざまな問題に対処できる便利なツールにしていきたいです。
現状では会社内部での利用にとどまっていますが、もし需要があればシステムとして提供することも可能なので興味のある方はぜひご連絡ください。
上記ブログの内容に少しでも興味がありましたら、お気軽にご連絡ください。
紹介したアプリのデモ実施やシステムについてのご相談などお待ちしております。
弊社のエンジニアがフレンドリーに対応させていただきます。