de:code 2019 参戦レポート

2019年6月5日Azure Functions,Azure IoT Edge,de:code,Microsoft Azure,Microsoft HoloLens,Mixed Reality,セミナー・イベント

こんにちは、ソリューション開発部 中川です。

マイクロソフト社が毎年開催する技術カンファレンス de:code 2019 に参加してきました。個人的には2016年以来3年ぶりの参加です。

参加セッション

参加したセッションは↓の通り。HoloLens2, MRを中心にAI, IoT関連のセッションを選びました。

Day1

  • マイクロソフト リサーチの AI / 自然言語処理研究 最前線
  • ここまで進化した!HoloLens 2 の全貌を徹底解説
  • HoloLens を活用した働き方改革! Dynamics 365 Guides・Remote Assist 活用手法と環境構築を解説します
  • HoloLens 2 アプリ開発

Day2

  • Azure IoT Edge 最新情報
  • Azure Functions 2.0 Deep Dive – デベロッパーのための最新開発ガイド
  • サービス開発事例に学ぶリーン スタートアップ – 会議トータル ソリューション metis より –
  • Azure Spatial Anchors を使用した iOS ARKit アプリケーション開発入門
  • Azure Kinect DK Overview
  • 人、テクノロジー、パックマン。バンダイナムコ研究所が考える、Azure Spatial Anchors がつなぐ新たな遊び場の主役とは?
  • 既存サービスを AI アシスタント対応する際の勘所

参加したセッションの中から、気になった情報をレポートします。

セッションレポート

Azure IoT Edge

Azureクラウドで作成した機械学習モデルをエッジデバイス(IoTデバイス)に組み込めるサービス

AIモジュール、ビジネスロジックをDockerコンテナにパッケージしてエッジデバイス上で実行できます。生データを常にクラウドに送信せず、ローカルである程度クリーニングしてから送信することで帯域幅を節約したり、常にクラウドと通信できない環境下でもシステムを止めずに実行することができます。また、ローカルで処理するため、クラウドと通信するより高速に結果を返せるという利点もあります。

例えば、道路の交通量を計測するケースを考えると、学習済みのCustom Visionをエッジデバイスにデプロイすれば、画像から車の数をカウントする処理はすべてローカルで実行し、数だけをクラウドに送信するといった使い方が可能です。

※ Azureにはより汎用的な画像認識サービスComputer Visionがありますが、おそらくモデルが膨大すぎるので利用できないと思われます。

Azure IoT Edgeで利用できる学習済みモデル
Azure IoT Edgeで利用できる学習済みモデル

Azure Functions 2.0

簡単にサーバーレスアーキテクチャー的な構成を実現できるFaaS(Functions as a Service)。

Hostingプランに、Premiumプラン(Public Preview)が追加されているとのこと。これまでの

  • 従量課金プラン(使った分だけのコストしかかからないが、Cold Startとなり、実行時間が延びる。連続実行時間10分まで。)
  • App Service プラン(Always-onでウォームアップ状態にできるので実行時間が早いが、AppServiceインスタンスを常に起動しているので、コストメリットがない。連続実行時間無制限。)

という2プランの中間といったところでしょうか。

  • Pre Warmedインスタンスを設定できる
  • 高速なスケーリング
  • 連続実行時間無制限

という特色があるので、さらに選択肢が増えることになります。

現在担当中のプロジェクトでは、Azure Functionsで機能を提供していますが、「実行時間10分以上」、「Warmed Stanby」を要求されるためAppServiceプランを使用していますが、Premiumプランでコスト削減できそうであれば変更も視野に入れたいと考えています。

自動スケーリングのデモもありましたが、かなり高速にインスタンスが増えている様子が見て取れました。
しかし、HTTP Trigger以外だとスケーリングが30秒ごとになるようなので、どんなTriggerでも高速、というわけではないので要注意。

他にもコンテナ化して展開するホスティングオプションも含めれば↓のように多彩な選択肢があります。

クロスプラットフォームに提供するホスティング選択肢

Azure Functions用のコンテナイメージが配布されているようなので、近いうちにAzure Kubernetes Service(AKS)に展開して試してみようと思います。

HoloLens2

時間押しまくりの基調講演の最後で、HoloLens生みの親アレックス キップマン氏がHoloLens2のデモを見せてくれました。

ダークアレックスとライトアレックスの2体のキップマン氏のアバターが登場。

ゲーム大国日本を意識してか、格闘ゲームのように2人のアレックスが戦うデモですが、どう見ても猫パンチにしか見えないので笑わずにはいられません。

(基調講演の動画(2:32:30あたり)でぜひ見てください。)

HoloLens2の仕様については既に発表されている情報のみで、特に新しいものはありませんでした。体験会も用意されていてかなり期待していたのですが、2日間で120人程の狭き門で、残念ながらくぐることはかないませんでした。

開発系の情報としては、

  • CPUがARMに変わったので、HoloLens1で使っていたx86向けにビルドしたアプリは再ビルドが必要
  • HoloLens Tool Kit(HTK)から、Mixed Reality Tool Kit v2 (MRTK v2)への移植は結構大変
  • UI/UXは1と2では全く別物と考えるべき
    (ハンドトラッキング、アイトラッキングなど、インタラクションが大きく変わっているため)

Mixed Reality

その他にMixed Reality関連で注目すべきは「Azure Spatial Anchors」だと思います。

Azure Spatial Anchorsは、HoloLens, iOS, Androidといったマルチプラットフォーム間で、コンテンツを共有できるサービスです。

Azure Spatial Anchorsの対応デバイス

これによって、特に観光施設やテーマパークの道案内など、様々なデバイス向けに同じ体験のアプリを提供する、といった使い方ができそうです。

特に観光施設やテーマパークの道案内など、様々なデバイス向けに同じ体験のアプリを提供する、といった使い方ができそうです。

ただし、このAzure Spatial Anchorsで使用される空間認識は画像ベースのものになるのでHoloLensが実現している空間認識よりは精度が劣るところは注意が必要かと思います。

画像ベースなので、周囲に特徴的なオブジェクトがないと空間を認識できません。(そういう場合はマーカーを設置して対応することになりそうです。)

まとめ

今回のde:codeはHoloLens2をメインに据えての参加でした。

発売日等についてもうちょっと何かあるかと期待したのですが、残念ながら発表なし。早くても初冬になりそうかな、という印象でした。

とはいえ、日本でも月額制での提供があるようなので、導入ハードルはこれまでより低くなると思います。
発売されたらさっそく手に入れて新しい活用方法を模索していきたいですね。

Azure Spatial Anchors、Azure Kubernetes Service、Azure IoT Edgeあたりはまだ触ったことがないので、近日中に試して投稿したいと思います。

また、技術系のデモはほとんどがVisual Studio Codeで行われていたことも印象的でした。Azureへの操作もすべてコマンドラインからサクッと実行でき、こちらももっと活用していきたいですね。

ちなみに今回のお土産はたったこれだけ。

満員だった本田圭佑さんのセッションも後で見ようと思ったのに、動画公開なし。他にも見たいのに動画公開なしのセッションがあってガックリ。もう少しなんとなからないですかね、マイクロソフトさん。

  • Zabbix Enterprise Appliance
  • 低コスト・短納期で提供するまるごとおまかせZabbix