目次
Azure Media Services によって動画処理のクラウドサービスが始まっていた
近年、ビッグデータ分析として、既存のデータベース内のデータだけでなく、非構造のログや自然言語などの幅広いデータも分析データとして扱われるようになってきました。しかし、動画データは、非常に複雑かつ情報量が多いことから、動画データを分析データとして扱うことは非常の困難でした。これを解決するカギとなりそうなのが、Microsoft社のAzureクラウドサービスになるかもしれません。今回は、このAzureクラウドサービスの中から「Azure Media Analytics」のモーション検知機能についてご紹介したと思います。
Azure Media Analytics は Azure Media Services の1つの機能
Azureクラウドサービスには様々なサービスが存在しますが、その中で動画処理を行うものが「Azure Media Services」サービスであり、その中の1つの機能として「Azure Media Analytics」が存在します。Azure Media Services は、Azureクラウドサービス上で動画データをエンコード処理し、パソコン、スマホなどに最適な形でストリーミング配信することを目的としたサービスです。
本来、動画のエンコード処理にはハイスペックのマシン処理が必要でしたが、Azure Media Services によってエンコード処理を手軽に行えるようになったようです。そして、「1度に対象アクセスが発生してサーバーダウン」っということも Azure Media Services を使うことで発生しなくなるようです。ちょっとだけ Azure Media Services のメイン機能を使いましたが、簡単なエンコード処理とストリーミング配信だけなら、基本的にAzureのポータル画面(ブラウザベースの管理画面)から行えるため、動画配信を行っている会社なら非常に便利なサービスだと思います。
では、Azure Media Services の内容はここまでにして、Azure Media Analytics の内容に戻りたいと思います。
Azure Media Analytics を扱うためのスキルと開発環境
Azure Media Analytics による動画分析処理を行うためには、プログラミングスキルは必須になり、開発環境はMicrosoft社の統合開発環境の Visual Studio で開発することになります。がっつり Visual Studio で開発したのが5年以上前の私の場合、カンを取り戻すまで時間が掛かりましたが、基本的に下記のドキュメントを参照すれば、高度なプログラミングスキルを必要なく処理できると思います。
- [Microsoft Azure] .NET SDK を使用したオンデマンド コンテンツ配信の概要
- [Microsoft Azure] Azure Media Services Analytics の概要
- [Microsoft Azure] Azure Media Analytics で動作を検出する
モーション検知のカギは「感度」と「検出ゾーン」
Azure Media Analytics でモーション検知を行う場合は、動画データの様々な処理内容を指定する事が可能でしたが、その中で重要なのは「感度」と「検出ゾーン」でした。
感度は、モーション検知の精度を指定する情報で、”low”、”medium”、”high”の3段階で指定します。近い距離の動画データに場合は感度”low”でないと影などのノイズ情報もモーション検知してしまい、逆に遠い距離の動画データの場合は感度”high”でないとモーション検知されなくなります。
検出ゾーンは、動画全体からモーション検知する場所を座標指定する情報で、複数の動く対象物がある動画データでは正しくモーション検知できなくなるため、下記のように検知したい場所を座標指定する必要があります。(モーション検知の座標は3点以上から指定可能)
対象が早すぎたり色がハッキリしないと検知できない
Azure Media Analytics によるモーション検知結果はログファイル(JSON形式)として取得します。検知結果には、動画開始からモーション検知した秒数、座標情報などを取得できます。
様々なシーンの動画データを検証しましたが、下記の対象物は感度”high”でもモーション検知できませんでした。
- 対象物が背景色と同一色
- 対象物の動きが早すぎる
- 対象物がカメラに近すぎてピントが合っていない
モーション検知した後に目視で分析する必要ある
Azure Media Analytics によるモーション検知結果には、対象物の座標情報も取得できましたが、ブレ幅が大きく、対象物がどのように動いたかを判断する事はできませんでした。また、遠い距離の動画の場合は、ハッキリした対象物がゆっくり動いたり、消えたりするような分かりやすい動きでないと検知できないようでした。
現在、Azure Media Analytics のモーション検知機能はプレビュー版(正式リリースではない)ため、改善されるのかもしれませんが、現段階ではモーション検知結果だけではデータ分析データとしては使えず、モーション検知結果からイベントが発生したタイミングまで動画を早送りして、目視で状況を確認するしかないようです。しかし、長い動画の場合、全てを目視で確認するのは大変ですので、Azure Media Analytics のモーション検知で「あたり」を付けて、部分的に目視で確認することを考えれば Azure Media Analytics のモーション検知機能の導入個所もあるかもしれません。