2022/05/18
Azure の Spatial Analysis を使ってみた
Azure computer visionの新サービス、Spatial Analysisを使って空間分析を実施した結果をまとめました

Azure には様々なサービスがあります. その中でもcomputer vision に含まれている「空間分析」のためのサービスである Spatial Analysisを使ってみたのでご紹介します. Spatial Analysis は2020年9月より computer vision に追加された比較的新しいサービスです.
この記事を読んでわかること
想定読者
Spatial Analysis とは
Spatial Analysis は動画を入力すると人を対象として空間分析を行います. 動画は予め撮影されたものでも,リアルタイムなものでも構いません. Spatial Analysis では以下のような分析を行えます.
指定された範囲内の人数カウント
カメラ内の自身で指定した範囲に映る人を検出して人数をカウントします. 空間内の人数推定や人が現れたことをアラートすることに利用できます.
指定された範囲にいた滞在時間の計測
人のトラッキングを行うことでカメラ内の自身で指定した範囲にいた滞在時間を計測します. 待ち時間がどれだけあるかや展示をどれだけ見ているか知ることができます.
人と人の距離が近すぎるもしくは遠すぎることを検出
人と人の距離を計測して自身で設定した値より接近したこともしくは離れたことを検出します. 昨今流行りのソーシャルディスタンスが保たれているか確認できます.
実際に Spatial Analysis を使う際の注意点
基本的には公式ドキュメント通りに操作すれば問題なく動作しますが,自分が実際に使ってみた際に引っかかった点を共有します.
使用するVM
まず,Spatial Analysis を使用するにはAzure Stack EdgeかGPUを搭載したAzure VM (同様な性能のPCがあれば手持ちのPCでもよいです)が必要です.
NVIDIA CUDA Compute Capable GPU 6.0以上のGPUである必要があるので注意してください.Compute Capableはここで確認できます.
また,公式ドキュメントでは Azure VM としてK80搭載のVMを使用していますが,K80のCompute Capableは3.7のため対応していませんのでご注意ください.参考までに私はV100を搭載しているNCv3シリーズを使用しました.
Iot Edgeにデプロイ時
次に実行に必要な様々な設定を記載したJSONファイルを使用して Spatial Analysis をデプロイするのですが、公式ドキュメントにあるjsonファイルサンプルはそのまま利用すると、telegrafやdiagnosticsなどの最低限動作に必要なモジュール以外の箇所でエラーが発生します.
また,azureiotedge-agentやazureiotedge-hubのバージョンが1.0でうまく動作しません.
webアプリをデプロイするところを詳細に記載しているこちらの公式ドキュメント内のjsonファイルを参考にしたほうがよいと思います.
Webアプリにデプロイ時
基本的には公式ドキュメントにあるようにこのgithubの指示通りにイメージをAzure Container Registryにプッシュしてください.
ただそのまま実行するとエラーが起きるのでaz acr loginでAzure Container Registryにログインをしてから実行してください.
また,Azure App ServiceでIotHubConnectionStringが必要です.ここはVMへの接続文字列ではなくiothubownerの接続文字列を使用してください.
分析結果の可視化
基本的には以下の2つのページを参考に実行すれば、問題なく動作すると思います.
ただし環境によっては/etc/xrdp/startwm.sh内の/bin/shを/bin/bashに変更する必要があります.
最後に
この記事では「Spatial Analysisによってどんな空間分析ができるのか」と「Spatial Analysis を使うときの注意点」について紹介しました.
個人的に良かった点いまいちな点としては、
「多少手間がかかるのは気にしないので空間分析してみたい」という方はぜひSpatial Analysis を使ってみてください.
実際にSpatial Analysis を使う際に少しでも参考となれば幸いです.
執筆
AIコンサルティンググループ
小川 裕也
次の記事
前の記事