HoloLensでCognitive Service (Computer Vision API)を使ってみた

HoloLens Meetup Vol.3に、Vol.2に続いて参加してきました。主催者・参加者の皆様ありがとうございました!
Vol.3はHolo装着率が異常に高くて、Vol.2でやっていた装着者のカウントもされないほどたくさんの人がHoloLensを身に着けていました。
そして発表内容も、医療だったりマンション販売だったりと実際のビジネスや仕事に活用してるという事例が多く、いよいよ目新しいガジェットから「スマホの次を狙う必需品」になりつつあるのを感じました。
LT含めどれも素晴らしい内容だったのですが、@morio36さんの、HoloLensとCognitive Serviceの連携の話が鳥肌ものでした。有難いことにご本人が詳しい解説付きで内容を投稿されています。


Meetupの最初にマイクロソフトの高橋忍さんが、Flutend Designの解説で「これからのコンピュータは、外界すべてがインプットとなり、外界すべてがアウトプットとなる」と言われていました。まさにHoloLensはその状態で、これから出るWindows MRデバイスやWindows 10 Fall Creater Updateにもつながっていくわけですが、ではその非定型な外界の情報をどのように処理するかというと、AIの出番になります。


AIを自力で実装するには技術的にもインフラコスト的にも負荷が大きいですが、各社がクラウドで提供しているAI関連のAPIを使えば、驚くほど手軽にAIを実装することができます。
ということで作成したのがこちら。HoloLensの内臓のカメラで写真をとり、それをCognitive Service (Computer Vision API)に送って、写っているものの解析をしています。


まずHoloLensのカメラの画像を扱う方法ですが、UnityにAPIが用意されています。

Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web...
サンプルソースまで載っていて、これで写真が撮れる、と思ったのですが、上記ソースは実機では動いたものの、Editor上やHolographic Remotingでは動作しなかった(僕のやり方が悪かったのかもしれないので後ほど再検証予定)ので、デバッグの手間を考えて、汎用的なWebCamTextureを使用しました。参考にさせていただいたのはこちら。
カメラを使ったアプリを作る機会があったので Unity 上で Web カメラをどうやって扱うのかを調べて動かしてみた。 カメラの画像を Unity 内で表示する カメラを扱うには WebCamTexture を利用すると簡単に表示できる。W
スマホやPCのカメラと同じようにHoloLensのカメラも使うことができました。
※ホログラフと一緒に撮影を行うためにはVR.WSA.WebCamが必須となります。
そして、@morio36さんが紹介して下さっている下記のサンプル
Examples of using Microsoft's Cognitive Services in Unity for HoloLens - misslivirose/unity-cognitive-services-demos
から、画像をAPIに送る部分を拝借して、1つのソースにまとめました。

Azure側の設定をしてkeyを取得して入力し、別途uGUIのRawImageとTextを作成し、inspectorでpublic変数にアサインします。
HoloToolkitのInput ManagerやHoloLensCameraプレファブも配置すれば動作するかと思います。
UWPも使わず本当にシンプルなソースコードでこんなに未来感が味わえるとは!HoloLens含めたMRとAIの進化は本当に楽しみですね。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク