Azure Media Analytics の Motion Detection の紹介
執筆者: Richard Li (Program Manager, Azure Media Services)
このポストは、5 月 16 日に投稿された Announcing: Motion detection for Azure Media Analytics の翻訳です。
Azure Media Analytics は、各種の音声サービスと映像サービスを集約したソリューションであり、エンタープライズ クラスの規模、コンプライアンス、セキュリティ、グローバルな利用に対応しています。Azure Media Analytics で提供される各サービスは Azure Media Services プラットフォームのコア コンポーネントを基盤としているため、利用開始後すぐに大規模なメディア処理を実行できます。今回ご紹介する Motion Detection をはじめ、Azure Media Analytics の各種メディア プロセッサについては、Milan Gada が執筆したブログ記事 (英語) で概説されているのでぜひご覧ください。
Azure Media Motion Detector のパブリック プレビューを皆様に無料でお届けできることを非常に嬉しく思っています。この記事では、このテクノロジの使用方法と出力結果の詳細についてご説明します。Motion Detector メディア プロセッサでは、静的な映像の中のどこでモーションが発生したかを検出します。セキュリティ ビデオ映像での利用を目的としており、検出対象となるモーション (部屋の中に入る人物など) と誤検出 (風に揺れる木の葉や、それによる光や影の動きなど) を区別します。これにより、非常に長時間に及ぶカメラ映像から関連のないイベントを大量に誤検出することなくセキュリティ上のアラートを生成でき、注目すべき瞬間を逃さず抽出することができます。
Motion Detection
Motion Detection では、ビデオと JSON 構成を入力として使用し、イベントが発生したタイムスタンプと境界領域のメタデータを含む JSON ファイルを生成します。
これらの機能には、新しい Azure ポータル、下記のプリセットの API、または無料の Azure Media Services Explorer ツールからアクセスできます。
入力構成
現在は必要となる入力構成のオプションはなく、下記のプリセットを使用します。
JSON:
{'version':'1.0'}
実際のモーションの例
{
"version": 1,
"timescale": 60000,
"offset": 0,
"framerate": 30,
"width": 1920,
"height": 1080,
"regions": [
{
"id": 0,
"type": "rectangle",
"x": 0,
"y": 0,
"width": 1,
"height": 1
}
],
"fragments": [
{
"start": 0,
"duration": 68510
},
{
"start": 68510,
"duration": 969999,
"interval": 969999,
"events": [
[
{
"type": 2,
"regionId": 0
}
]
]
},
{
"start": 1038509,
"duration": 41489
}
]
}
誤検出の例 (光の変化)
{
"version": 1,
"timescale": 30000,
"offset": 0,
"framerate": 29.97,
"width": 1920,
"height": 1080,
"regions": [
{
"id": 0,
"type": "rectangle",
"x": 0,
"y": 0,
"width": 1,
"height": 1
}
],
"fragments": [
{
"start": 0,
"duration": 320320
}
]
}
出力形式
Motion Detection のジョブでは、ビデオ内で発生したモーションのアラートとそのカテゴリを表す JSON ファイルが出力アセットとして返されます。
現在は、一般的なモーション カテゴリのみがサポートされているため、出力内の “type” は必ず 2 になります。
X 座標、Y 座標、サイズは、0.0 ~ 1.0 の正規化浮動小数で表されます。この値にビデオの解像度の幅と高さを掛けると、モーションが検出された領域の境界ボックスを得ることができます。
それぞれの出力はフラグメントに分割され、さらに時間間隔で分割されて、ビデオ内のデータが定義されます。フラグメントの長さは必ずしも一定ではなく、モーションがまったく検出されない場合は間隔も長くなります。
Motion Detection の出力を理解する
概要
Motion Detection の API では、背景が固定されたビデオ (監視ビデオなど) で物体の動きが検出されるとインジケーターが表示されます。Motion Detection は、光や影の変化などの誤検知を減らすようにトレーニングされています。現在のアルゴリズムでは、暗視ビデオ、半透明の物体、小さな物体などについては対応していません。
API から出力される JSON ファイルには、ビデオ内でモーションが検出された時間と継続時間が含まれます。
JSON のリファレンス
Motion Detection で出力される JSON ファイルの構成は、Face Detectior の顔の検出と追跡処理の出力結果と類似しています。ただし、Motion Detection ではモーションの発生時間と継続時間のみを記録すればよいため、内容は多少異なります。
- version: Video API のバージョン。
- timescale: ビデオの 1 秒あたりの「ティック」数。
- offset: タイムスタンプのオフセット (「ティック」単位)。Video API バージョン 1.0 では、この値は常に 0 です。今後この機能がサポートされた場合は他の値を取るようになります。
- framerate: ビデオの 1 秒あたりのフレーム数。
- width、height: ビデオの幅と高さ。ピクセル数で表されます。
- regions: ビデオ内のモーション検出対象の領域。現行バージョンの Video API ではこの値を指定することはできません。ビデオの画面全体が検出対象領域となります。
- id: 画面上の領域を表す ID。現行バージョンではこの値は常に 0 です。
- rectangle: モーションを検出する領域の形状。現行バージョンでは常に長方形です。
- x、y、width、height: モーションを検出する領域の座標とサイズ。x と y は領域の左上の XY 座標で、正規化された 0.0 ~ 1.0 の値で表されます。width と height は領域のサイズで、正規化された 0.0 ~ 1.0 の値で表されます。現行バージョンでは x、y、width、height の値はそれぞれ必ず 0、0、1、1 になります。
- fragments: メタデータはフラグメントと呼ばれるセグメントに分割されます。各フラグメントには開始時間、継続時間、間隔、イベント (1 回または複数回) が含まれます。フラグメントにイベントが含まれていない場合は、該当する開始時間からその継続時間中はモーションが検出されなかったことを示します。
- start: 開始時間 (「ティック」単位)。
- duration: イベントの継続時間 (「ティック」単位)。
- interval: イベントの各エントリの間隔 (「ティック」単位)。
- events: 個々のイベントには、該当する継続時間中に検出されたモーションが含まれます。
- 角かっこ [ ]: それぞれの角かっこは、イベントの 1 つの区間を表しています。その区間の角かっこが空の場合、モーションが検出されなかったことを示します。
- type: 現行バージョンでは、この値は常に一般的なモーションを示す "2" になります。Video API の今後のバージョンでは、このラベルはモーションの分類を柔軟に行うために使用されます。
- regionid: 先述のとおり、現行バージョンではこの値は常に 0 です。Video API の今後のバージョンでは、このラベルはモーションがどの領域で発生したかを柔軟に検出するために使用されます。
利用を開始するには
このサービスを利用するには、お客様の Azure サブスクリプションで Media Services アカウントを作成し、REST API/SDK または Azure Media Services Explorer (英語) を使用します。
こちらのドキュメントにサンプル コードが記載されていますので、参考にお使いください。
制限事項
- 入力ファイルとしてサポートされている形式は MP4、MOV、WMV です。
- Motion Detection は背景が固定されたビデオに最適化されており、アルゴリズムでは光や影の変化の誤検出によるアラームを減らすことに重点が置かれています。
- 暗視ビデオ、半透明な物体、小さい物体などでは、技術的な問題によりモーションが検出されない場合があります。
お問い合わせ先
Motion Detector メディア プロセッサと Media Analytics の最新情報については Azure Media Services ブログ (英語) をご確認ください。
Media Analytics 製品についてご不明な点がありましたら、お気軽にメール (amsanalytics@microsoft.com) でお問い合わせください。