(57)【要約】【課題】顕著なイベントに焦点を当てたビジュアル分析を提供する。【解決手段】  本開示は顕著なイベントに焦点を当てたビジュアル分析を提供するシステムと方法を含む。ビデオ処理アプリケーションは、キャプチャデバイスからデータストリームを受信し、キャプチャデバイスのイメージングエリアの関心領域を決定し、データストリームから顕著なイベントを検知し、検知された顕著なイベントの位置が関心領域内にあるか判定し、検知された顕著なイベントの位置が関心領域内にあることに応じて、顕著なイベントに基づいて、動作を実行するデータストリームの部分を特定する。【選択図】図６
2019160310.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
キャプチャデバイスからデータストリームを受信することと、
前記キャプチャデバイスのイメージングエリアにある関心領域を判定することと、
前記データストリームから顕著なイベントを検知することと、
検知された顕著なイベントの位置が前記関心領域内にあるか判定することと、
前記顕著なイベントの位置が前記関心領域内にあることに応じて、前記顕著なイベントに基づいて、動作を実行する前記データストリームの部分を特定することとを含む、
方法。
【請求項２】
前記顕著なイベントの発生時間を特定することをさらに含み、前記データストリームの部分を特定することは、前記顕著なイベントの位置と発生時間とに基づく、
請求項１に記載の方法。
【請求項３】
前記動作を実行することは、
前記データストリームの部分にオプティカルフロー分析を実行することと、
変位マップを出力することとを含む、
請求項１に記載の方法。
【請求項４】
前記動作を実行することは、
前記データストリームの部分にステレオ分析を実行することと、
変位マップと奥行きマップとのうち少なくとも１つを出力することとを含む、
請求項１に記載の方法。
【請求項５】
前記動作の出力に基づいてタスクを実行することをさらに含み、前記タスクは、前記関心領域にアクセスする人数をカウントすることと、人が前記関心領域にいることを主張することと、人が前記関心領域で転倒することを検知することとのうち少なくとも１つを含む、請求項１に記載の方法。
【請求項６】
前記顕著なイベントの位置が前記関心領域内にあることに応じて、追加センサを起動することをさらに含む、請求項１に記載の方法。
【請求項７】
前記関心領域はラインまたはポリゴンにより画定される、
請求項１に記載の方法。
【請求項８】
前記キャプチャデバイスは、従来のキャプチャデバイス、スマートキャプチャデバイス、サーマルキャプチャデバイス、及び赤外線センサのうち少なくとも１つであり、前記データストリームは、ラジアンス測定値、ルミナンス測定値、クロミナンス測定値、及び温度測定値のうち少なくとも１つを含む、
請求項１に記載の方法。
【請求項９】
システムであって、
一以上のプロセッサと、
命令を記憶するメモリとを有し、前記命令は、前記一以上のプロセッサに、
キャプチャデバイスからデータストリームを受信させ、
前記キャプチャデバイスのイメージングエリアにある関心領域を判定させ、
前記データストリームから顕著なイベントを検知させ、
検知された顕著なイベントの位置が前記関心領域内にあるか判定させ、
検知された顕著なイベントの位置が前記関心領域内にあることに応じて、前記顕著なイベントに基づいて、動作を実行する前記データストリームの部分を特定させる、
システム。
【請求項１０】
前記命令はさらに、前記一以上のプロセッサに、
前記顕著なイベントの発生時間を特定させ、前記データストリームの部分を特定することは、前記顕著なイベントの位置と発生時間とに基づく、
請求項９に記載のシステム。
【請求項１１】
前記動作を実行するため、前記命令はさらに、前記一以上のプロセッサに、
前記データストリームの部分にオプティカルフロー分析を実行させ、
変位マップを出力させる、
請求項９に記載のシステム。
【請求項１２】
前記動作を実行するため、前記命令はさらに、前記一以上のプロセッサに、
前記データストリームの部分にステレオ分析を実行させ、
変位マップと奥行きマップとのうち少なくとも１つを出力させる、
請求項９に記載のシステム。
【請求項１３】
前記命令はさらに、前記一以上のプロセッサに、
前記動作の出力に基づいてタスクを実行させ、前記タスクは、前記関心領域にアクセスする人数をカウントすることと、人が前記関心領域にいることを主張することと、人が前記関心領域で転倒することを検知することとのうち少なくとも１つを含む、
請求項９に記載のシステム。
【請求項１４】
前記命令は、前記一以上のプロセッサに、
前記顕著なイベントの位置が前記関心領域内にあることに応じて、追加センサを起動させる、請求項９に記載のシステム。
【請求項１５】
前記関心領域はラインまたはポリゴンにより画定される、
請求項９に記載のシステム。
【請求項１６】
コンピュータプログラムであって、コンピュータに、
キャプチャデバイスからデータストリームを受信させ、
前記キャプチャデバイスのイメージングエリアにある関心領域を判定させ、
前記データストリームから顕著なイベントを検知させ、
検知された顕著なイベントの位置が前記関心領域内にあるか判定させ、
検知された顕著なイベントの位置が前記関心領域内にあることに応じて、前記顕著なイベントに基づいて、動作を実行する前記データストリームの部分を特定させる、
コンピュータプログラム。
【請求項１７】
前記コンピュータプログラムはさらに、前記コンピュータに、
前記顕著なイベントの発生時間を特定させ、前記データストリームの部分を特定することは、前記顕著なイベントの位置と発生時間とに基づく、
請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記動作を実行させるため、前記コンピュータに、
前記データストリームの部分にオプティカルフロー分析を実行させ、
変位マップを出力させる、
請求項１６に記載のコンピュータプログラム。
【請求項１９】
前記動作を実行させるため、前記コンピュータに、
前記データストリームの部分にステレオ分析を実行させ、
変位マップと奥行きマップとのうち少なくとも１つを出力させる、
請求項１６に記載のコンピュータプログラム。
【請求項２０】
前記コンピュータプログラムはさらに、前記コンピュータに、
前記動作の出力に基づいてタスクを実行させ、前記タスクは、前記関心領域にアクセスする人数をカウントすることと、人が前記関心領域にいることを主張することと、人が前記関心領域で転倒することを検知することとのうち少なくとも１つを含む、
請求項１６に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は概してビデオストリームの処理に関する。特に、本明細書は顕著なイベントに焦点を当てたビジュアル分析を提供するシステムおよび方法に関する。
【背景技術】
【０００２】
現在、多くの事業のビジュアル分析フレームワークでは、エッジコンピューティングおよびクラウドコンピューティングが使われている。しかし、このフレームワークには幾つかの問題がある。まず、ビジュアル分析タスクはエッジ側（ローカル）とクラウド側に偏在している。すなわち、エッジ側でより多くのビジュアル分析タスクが処理されている（例えば、エッジヘビー展開）か、クラウド側でより多くのビジュアル分析タスクが処理されている（例えば、クラウドヘビー展開）か、どちらかである。このような展開には常に幾らかの利点が有ると共に幾らかの欠点もある。例えば、エッジヘビー展開では、使用する帯域幅は狭く、レイテンシーは短く、機密ビジュアルデータはオンサイトに留まる。しかし、エッジモジュールは、より高価であったり、特定アプリケーション向けであったりし、コモディティハードウェアは活用が難しく、ビジネスロジックは変更が困難です。
【０００３】
ビジュアル分析ではデータ構造も重要な役割を果たす。ビジュアルデータは、データモデルにしたがって構成されれば、効率的な検索ができる。しかし、ビジネスロジックが変化するたびに、データモデルを再定義しなければならず、その結果としてビジュアルデータを再処理しなければならない。一方、ビジュアルデータが元のビデオのシンプルかつフラットな形式である場合、そのようなデータの検索は非効率的になるが、データはビジネスロジック（ｂｕｓｉｎｅｓｓ  ｌｏｇｉｃ）から切り離されているので、スキーマ変更（ｓｃｈｅｍａ  ｃｈａｎｇｅ）はほとんど又はまったく必要ない。また、計算性能が高いということは、コストが高く、再プログラミングが難しいということになる可能性もある。
【発明の概要】
【０００４】
本明細書に記載する手法は、顕著なイベントに焦点を当てたビジュアル分析を提供するシステムおよび方法を用いて、少なくとも部分的に、先行技術の欠点および限界を解消する。一実施形態において、本システムは、一以上のプロセッサと、命令を記憶するメモリとを有し、前記命令は前記一以上のプロセッサにより実行されると、前記一以上のプロセッサに、キャプチャデバイスからデータストリームを受信させる。前記命令はさらに、前記一以上のプロセッサに、前記キャプチャデバイスのイメージングエリアの関心領域を決定させ、前記データストリームから顕著なイベントを検知させ、検知された顕著なイベントの位置が前記関心領域内にあるか判定させ、検知された顕著なイベントの位置が前記関心領域内にあることに応じて、前記顕著なイベントに基づいて、動作を実行する前記データストリームの部分を特定させる。
【０００５】
他の態様は、これらの及びその他の革新的態様を有する、対応する方法、システム、装置、及びコンピュータプログラム製品を含む。
【０００６】
ここに説明する特徴と優位性は、すべてを包含するものではなく、当業者には、図面と説明を考慮して、多くの追加特徴と優位線が明らかであろう。さらに、留意点として、明細書で用いた言葉は、読みやすさと教育的目的のために選択されており、説明する手法の範囲を限定するものではない。
【図面の簡単な説明】
【０００７】
本明細書で説明する手法は、添付した図面で例によって示すが、本発明を限定するものではない。同じ参照数字は同じ要素を示すために使用される。
【０００８】
【図１】顕著なイベントに焦点を当てるビジュアル分析を提供するシステムの例示的な一実施形態を示す高レベルブロック図である。
【０００９】
【図２】ビデオ処理アプリケーションを含むコネクトボックスの例示的な一実施形態を示すブロック図である。
【００１０】
【図３】例示的な関心領域のグラフィカル表現を示す図である。
【００１１】
【図４】顕著なイベントに焦点を当てたオンデマンドビデオ処理のフレームワークの例示的な一実施形態を示すブロック図である。
【００１２】
【図５Ａ】顕著なイベントに焦点を当てたビデオ分析を提供するハードウェア実施の例示的な一実施形態を示すブロック図である。
【００１３】
【図５Ｂ】顕著なイベントに焦点を当てたビデオ分析を提供するアルゴリズムの例示的な一実施形態を示すブロック図である。
【００１４】
【図６】顕著なイベントに焦点を当てた、動作を実行するデータストリームの一部分を特定する方法の例示的な一実施形態を示すフロー図である。
【００１５】
【図７】データストリームの一部分に対して動作を実行する方法の例示的な一実施形態を示すフロー図である。
【発明を実施するための形態】
【００１６】
図１は、顕著なイベントに焦点を当てるビジュアル分析を提供するシステム１００の例示的な一実施形態を示す高レベルブロック図である。ほとんどの従来のビデオ分析システムに関連するカメラは、常時、情報をキャプチャしている。この情報は、ローカルで記憶され（そのため、大量のメモリを占める）、またはネットワーク（例えば、インターネットまたはＷｉ−Ｆｉ）接続を通してエンドポイントに送信される（大きな帯域幅を消費する）。これらのカメラにより生成されるデータ量は、その解像度の向上に伴い急激に増大している。最近、従来のカメラに加えてまたは換えて、深度センサやサーマルセンサなどの追加センサが用いられている。これらのセンサは、常に情報を収集するだけではなく、カラー（ＲＧＢ）及び／又は近赤外（ＩＲ）情報を収集する従来のカメラより計算量が多い後処理を必要とする。
【００１７】
しかし、ほとんどの時間、関心を引くようなことは何も起こらないので、常にアクティブかつ実行されているセンサとプロセスは、記憶、リソース、電力および計算パワーを無駄にしている。本明細書で説明する提案のフレームワークは、メモリとパワーの量を大幅に低減することができ、それゆえシステム全体のコストを大幅に低減することができる。
【００１８】
例示のシステム１００は、計算デバイス１０１、キャプチャデバイス１０７、スマートキャプチャデバイス１０９、センサ１１３ａ−１１３ｎ、クライアントデバイス１１５、およびクラウドサーバ１２１を含む。例示の実施形態では、計算デバイス１０１、キャプチャデバイス１０７、スマートキャプチャデバイス１０９、及びセンサ１１３ａ−１１３ｎはローカルエリアネットワーク（ＬＡＮ）で接続され、さらにネットワーク１０５を解してシステム１００のその他のエンティティに通信可能に結合されている。図１にはある数のキャプチャデバイス、センサデバイス、スマートキャプチャデバイス、クライアントデバイス及びビデオサーバを示したが、言うまでもなく、これらのエンティティの数は幾つでもよい。また、これらのエンティティ（ｅｎｔｉｔｉｅｓ）は幾つのネットワーク及び／又はＬＡＮに接続されていてもよい。さらに、図１と残りの図において、「１１３ａ」等の参照番号の後ろの文字は、その参照番号を有する要素を指すものである。参照番号が付いていないテキスト中の参照番号、例えば「１１３」等は、その参照番号を担う要素のインスタンス（ｉｎｓｔａｎｃｅｓ）を概略的に参照するものである。
【００１９】
ネットワーク１０５は、従来のタイプ、有線または無線であってよく、スター構成、トークンリング構成または他の構成を含む多数の異なる構成を有してもよい。さらに、ネットワーク１０５は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、及び／又はその他の相互接続されたデータパス（ｄａｔａ  ｐａｔｈ）であって複数のデバイスが通信できるものなどを含んでいてもよい。幾つかの実施形態では、ネットワーク１０５はピア・ツー・ピアネットワークであってもよい。ネットワーク１０５は、様々な異なる通信プロトコルでデータを送信する電気通信ネットワークの部分に結合され、またはその部分を含んでいてもよい。幾つかの実施形態では、ネットワーク１０５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メールなどを含む、データを送受信するブルートゥース（登録商標）通信ネットワークまたはセルラー通信ネットワークを含んでいてもよい。
【００２０】
クライアントデバイス１１５は、プロセッサと、メモリと、アプリケーションと、データベースと、ネットワーク通信機能とを含む計算デバイスである。例えば、クライアントデバイス１１５は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）、モバイル電子メールデバイス、一以上のプロセッサが埋め込まれた、またはそれに結合されたテレビ、またはネットワーク１０５にアクセスすることができ、クラウドサーバ１２１、キャプチャデバイス１０７、スマートキャプチャデバイス１０９、センサ１１３、または計算デバイス１０１と通信することができる任意の他の電子デバイスであってもよい。いくつかの実施形態では、クライアントデバイス１１５は、本明細書に記載される機能性を提供するために、ネットワーク１０５を介してシステム１００の他のエンティティと通信する。例えば、クライアントデバイス１１５は、ビデオコンテンツを求める要求を送信する。その要求に応答して、計算デバイス１０１は、クライアントデバイス１１５にビデオコンテンツを提供する。
【００２１】
幾つかの実施形態では、クライアントデバイス１１５はブラウザ１１７を含む。ブラウザ１１７は、クライアントデバイス１１５にアクセスするユーザのために、コンテンツを探し、読み出し、表示する、クライアントデバイス１１５上で実行されるアプリケーションである。例えば、ブラウザ１１７は、ユーザのビデオコンテンツ要求に応答して、計算デバイス１０１と通信して、ユーザに表示するために、クラウドサーバ１２１からＨＴＴＰ  ＧＥＴリクエストを使用してビデオコンテンツをプルする。
【００２２】
クラウドサーバ１２１は、ハードウェアサーバ、ソフトウェアサーバ、又はソフトウェアサーバとハードウェアサーバとの組合せであってもよい。クラウドサーバ１２１は、プロセッサ、メモリ、アプリケーション、データベース及びネットワーク通信機能を含む計算デバイスであってもよく、これにより実施されてもよい。クラウドサーバ１２１は、ネットワーク１０５を介してシステムのその他のエンティティと通信して、本明細書で説明する機能を実行する。幾つかの実施形態では、クラウドサーバ１２１は、オンデマンドビデオ処理オペレーションからの出力を受信して、一以上のタスクを実行する。オンデマンドビデオ処理オペレーションは、オプティカルフロー分析、ステレオ分析、及びその他のビデオ分析を含んでいてもよい。幾つかの実施形態では、クラウドサーバ１２１は計算デバイス１０１と通信して、計算デバイス１０１からオンデマンドビデオ処理オペレーションの出力を受信する。他の実施形態では、クラウドサーバ１２１は任意的に、オンデマンドビデオ処理オペレーションを実施するオンデマンド処理アプリケーション１２３を含む。点線で示した任意的なオンデマンド処理アプリケーション１２３は、後でもう少し詳しく説明する。オンデマンド処理の出力（例えば、視差マップ、奥行きマップ）に基づいて、クラウドサーバ１２１は一以上のタスクを実行する。タスクは、人数カウント、人のフロー、顔検知、人物追跡、周辺侵入検知、近傍検知、転倒検知などを含むが、これらに限定されない。
【００２３】
キャプチャデバイス１０７は、ビデオをキャプチャし、そのビデオにメタデータを関連付けるハードウェアデバイスである。例えば、キャプチャデバイス１０７は、デジタルビデオカメラ、ウェブカム、ＩＰカメラ等であってもよい。キャプチャデバイス１０７によってキャプチャされるビデオは、任意の一連の時間関連画像とすることができる。キャプチャデバイス１０７は、メタデータ、例えば、ビデオがキャプチャされた時および場所、画像サイズ、画像解像度、色深度、フレームレートなどをビデオに関連付ける。好ましい実施形態では、キャプチャデバイス１０７は、リソースをほとんど消費せず、耐久性がある低コストのカメラである。いくつかの実施形態では、キャプチャデバイス１０７は、従来のカメラではなく、サーマルキャプチャデバイスまたはカメラ（すなわち、遠赤外線）であってもよい。
【００２４】
スマートキャプチャデバイス１０９は、アプリケーションを起動し、ソフトウェアプログラムを実行し、またはその他の分析ロジックを実行することができる、キャプチャデバイス１０７と同様のキャプチャデバイスである。例えば、スマートキャプチャデバイス１０９は、ビデオ処理アプリケーションを実行して、キャプチャされたビデオに対して画像認識を実行することができる。いくつかの実施形態では、スマートキャプチャデバイス１０９は、後で説明するように、ビデオ処理アプリケーション１０３を実行する計算デバイス１０１のビデオ処理機能を実行する。
【００２５】
センサ１１３は、物理環境からの入力を検知し、応答するハードウェアデバイスである。センサ１１３はＬＡＮ及び／又はネットワーク１０５に結合され、物理的環境に関する情報や信号を提供する。図１には図示していないが、１つのセンサ、一連のセンサ、又はセンサのグリッドやアレイは、異なるＬＡＮに配置されてもよいし、ネットワーク１０５に結合されてもよい。センサはユーザの位置および方向を検知するビーコンであってもよい。例えば、センサは、グローバルポジショニングシステム（ＧＰＳ）センサ、Ｗｉ‐Ｆｉセンサ、マイクロ電気機械システム（ＭＥＭＳ）センサ、Ｂｌｕｅｔｏｏｔｈ（登録商標）低エネルギー（ＢＬＥ）ビーコンのようなＢｌｕｅｔｏｏｔｈビーコン、超音波ビーコン、深さセンサ、ビデオカメラ、セルラーポジショニングを使用するセンサ、近接場通信、ビデオ位置、および他の位置決め技術であってもよい。その他のタイプのセンサ、例えば、ジャイロスコープのような運動センサ、近接センサ、無線周波数（ＲＦ）検知器、加速度計、周辺光センサ、サーマルセンサ、バイオメトリックセンサ等を使用することができる。
【００２６】
計算デバイス１０１は、データストリーム（例えば、ビデオ）に対してビデオ分析を実行するハードウェアデバイス／サーバである。いくつかの実施形態では、計算デバイス１０１は、キャプチャデバイス１０７に接続され、ビデオ分析を実行するためのビデオストリームを受信する。他の実施形態では、計算デバイス１０１はまた、センサに接続され、ルミナンス情報、温度情報などの付加的なデータストリームまたは他のセンサ情報を受信し、ビデオ分析を向上させる。計算デバイス１０１は、取り付けられたキャプチャデバイス１０７およびセンサ１１３のうちの一つまたは複数から入力データストリームを受信し、その入力データストリームの処理に基づいて、出力ビデオコンテンツ、例えば、高度に圧縮されたビデオ部分を生成する。計算デバイス１０１はまた、後で説明するように、ビデオ分析結果、例えば変位マップ、視差マップ、深さマップを生成する。
【００２７】
いくつかの実施形態では、計算デバイス１０１は、アプリケーションを呼び出し、ソフトウェアプログラムを実行して、コンテンツ管理、展開管理（ｄｅｐｌｏｙｍｅｎｔ  ｍａｎａｇｅｍｅｎｔ）などに関連するビデオ分析を実行することができる。例えば、計算デバイス１０１は、アプリケーションを使って、識別、相関、集約、フィルタリング、およびサンプリングなどに基づいてビデオコンテンツを管理することができる。計算デバイス１０１は、ビデオストリームから特徴を識別し、その特徴に基づいてビデオストリームからオブジェクトを認識し、アドバンスドビデオ操作（例えば、オンデマンド処理）に使用することができるビデオストリームの一部を選択することができる。また計算デバイス１０１は、ビデオストリームの品質を向上させるためにエンハンサープログラムを実行することができる。
【００２８】
幾つかの実施形態では、計算デバイス１０１はビデオ処理アプリケーション１０３を含む。幾つかの実施形態では、ビデオ処理アプリケーション１０３はプログラム可能ハードウェアまたは専門ハードウェアを用いて実施することができる。幾つかの実施形態では、ビデオ処理アプリケーション１０３は、ハードウェアとソフトウェアの組み合わせを用いて実施されてもよい。他の実施形態では、ビデオ処理アプリケーション１０３は計算デバイス１０１に記憶され、実行されるソフトウェアであってもよい。
【００２９】
ビデオ処理アプリケーション１０３はメインセンサ（好ましくは低コストのキャプチャデバイス）からビデオを受信する。ビデオ処理アプリケーション１０３は、メインセンサのイメージングエリアの関心領域（ＡＯＩ）を決定する。例えば、ビデオ処理アプリケーション１０３は、メインセンサの画像フィールドから、ユーザが関心を有するエリアを決定する。関心領域は、例えば、危険なエリア、混雑するエリア、無菌エリアなどであってもよい。幾つかの実施形態では、関心領域はポリゴン（ｐｏｌｉｇｏｎ）及び／又はライン（ｌｉｎｅ）の形式で画定される。例えば、関心領域は、それを超えると動きがモニタされる線または一連の線（ｓｅｒｉｅｓ  ｏｆ  ｌｉｎｅｓ）でもよい。
【００３０】
ビデオ処理アプリケーション１０３は、受信したデータストリーム、例えばビデオに顕著性検知を実行する。幾つかの実施形態では、ビデオ処理アプリケーション１０３は、オブジェクトの顕著性を判定し、その顕著性（ｓａｌｉｅｎｃｙ）に基づきデータストリームから顕著なオブジェクトを抽出し、顕著なオブジェクトを含むイベントを顕著なイベントとして特定する。例えば、ビデオ処理アプリケーション１０３は、オブジェクトの動き、オブジェクトの出現、オブジェクトの消失、照明の変化などを検知し、顕著なオブジェクトとそれに関連する顕著なイベントとそれに関連する顕著なイベントとを判定する。幾つかの実施形態では、ビデオ処理アプリケーション１０３は、オブジェクトの動きに基づいて顕著なイベントや、その他の、色、形、コントラストなどのビデオの特徴を判定する。
【００３１】
幾つかの実施形態では、例えば、キャプチャデバイス１０７がサーマルカメラであるとき、ビデオ処理アプリケーション１０３は、温度が背景と異なる対象（例えば、室内の人間、動物、低温飲料など）の動き、出現および消失に基づき、顕著性を検知することができる。また、ビデオ処理アプリケーション１０３は、キャプチャされた場面における顕著かつ急激な温度変化を判定してもよい。
【００３２】
顕著なイベントが判定されると、ビデオ処理アプリケーション１０３は、その顕著なイベントの位置が関心領域内にあるか判定する。顕著なイベントの位置が関心領域内にあるとき、ビデオ処理アプリケーション１０３は、その顕著なイベントの発生の位置および時間に基づき、データストリームの部分を特定し、特定された部分を、さらにオプティカルフロー分析や奥行き推定（ｄｅｐｔｈ  ｅｓｔｉｍａｔｉｏｎ）などのビデオ分析のため、オンデマンド処理アプリケーション１２３に送る。幾つかの実施形態では、ビデオ処理アプリケーション１０３は、追加センサをトリガーして、さらに追加ビデオ分析に使える補足的データを提供する。
【００３３】
いくつかの実施形態では、計算デバイス１０１および／またはクラウドサーバ１２１は、オンデマンド処理アプリケーション１２３を含む。オンデマンド処理アプリケーション１２３は、ビデオ処理アプリケーション１０３から受信したデータストリームの部分に対して、オプティカルフロー分析、ステレオ分析などの複雑なビデオ分析を実行する。いくつかの実施形態では、オンデマンド処理アプリケーション１２３はまた、データストリームの一部に対してビデオ圧縮を実行して、データ・サイズを低下させる。オンデマンド処理アプリケーション１２３は、分析の出力と共に圧縮データを、最終タスクを実行することができるエンドポイント、例えばローカルサーバ又はクラウドサーバ１２１に送信する。例えば、クラウドサーバ１２１は、オンデマンド処理アプリケーション１２３から受信したデータに基づいて、何人の人々が関心領域に出入りするかカウントすることができる。ビデオ処理アプリケーション１０３及びオンデマンド処理アプリケーション１２３の動作、並びに上述した機能は、図２−７を参照して以下により詳細に説明される。
【００３４】
本明細書で説明する手法は、エッジフットプリントと帯域幅コストとの間のトレードオフを実現し、デバイスの性能と汎用性とのバランスを取る効率的なビデオ分析フレームワークを提供する。本明細書に説明する手法は多くの面で有利である。第１に、「エッジの」ハードウェアが削減されるのは、高価なプロセスが、必要とされる場合にのみ、すなわちオンデマンドで実施されるからである。例えば、複雑なオプティカルフロー分析は、顕著なイベントが運動に関連する場合にのみ実行される。第２に、高価なセンサの使用が減少する。一般的に、低コストのカメラが起動され長時間実行されてビデオフィードを提供する。関心を引くこと（すなわち、顕著なイベント）が検知された時のみ、追加センサが起動され、補足的情報を入力する。第３に、フレームワーク顕著性検知をする関心領域を導入して間違ったアラームを低減する。言い換えると、監視ビデオの関心領域内で発生する侵入イベントはアラーム（例えば、さらに別のビデオ処理オペレーションのためのアラーム）をトリガーするが、その侵入イベントが関心領域外で検知されてもアラームをトリガーしない。第４に、エンドポイントに送信されるデータが減少する。データは、特定の条件が満たされるまで記憶されず、例えば、データストリーム全体ではなく、顕著なイベントを含むデータストリームの一部分が記憶され、オンデマンドビデオ処理に使用される。また、圧縮率の高いデータがエンドポイントに送信される。それゆえ、本明細書で説明するビデオ分析フレームワークは、ネットワークコストと計算コストを劇的に低減する。結果として、人数カウント、転倒検知、人の流れ検知などを実行するユニットを含む複数のユニットを備えて広いワーキングエリアをカバーすることが手頃となる。また、人数カウントを実行するリンクドユニット（ｌｉｎｋｅｄ  ｕｎｉｔｓ）を結合して、人の流れを生成することができ、さらにコストを低減できる。
【００３５】
図２は、ビデオ処理アプリケーション１０３を含む計算デバイス１０１の一実施形態を示すブロック図である。また、計算デバイス１０１は、幾つかの例では、プロセッサ２３５、メモリ２３７、任意的なディスプレイデバイス２３９、キャプチャデバイス２４５、通信部２４１、およびデータ記憶装置２４３を含む。計算デバイス１０１のコンポーネントは、相互通信のためバス２２０に通信可能に結合される。
【００３６】
プロセッサ２３５は、様々な入出力、論理的及び／又は数学的な演算を実行することによりソフトウェア命令を実行してもよい。プロセッサ２３５は、データ信号を処理する様々な計算アーキテクチャを有してもよく、例えば、ＣＩＳＣ（ｃｏｍｐｌｅｘ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｅｒ）アーキテクチャ、ＲＩＳＣ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｅｒ）アーキテクチャ、命令セットの組合せを実行するアーキテクチャを含んでもよい。プロセッサ２３５は、物理的及び／又は仮想的であってもよく、１つの処理ユニットを含んでいても、複数の処理ユニット及び／又はコアを含んでいてもよい。幾つかの実施形態では、プロセッサ２３５は、電気的表示信号を生成してディスプレイデバイスに提供し、ビデオコンテンツを求めるユーザ要求を受信するのに用いられるユーザインターフェースの表示をサポートし、要求されたビデオコンテンツを特定してユーザに提供する機能などを有してもよい。幾つかの実施形態では、プロセッサ２３５は、バス２２０を介してメモリ２３７に結合され、そのメモリのデータと命令にアクセスし、そのメモリにデータを記憶してもよい。バス２２０は、プロセッサ２３５を、例えば、メモリ２３７、通信部２４１、ビデオ処理アプリケーション１０３、及びデータ記憶装置２４３を含む、計算デバイス１０１のその他のコンポーネントに結合することもできる。当業者には明らかであるが、他のプロセッサ、オペレーティングシステム、及び物理的構成が可能である。
【００３７】
メモリ２３７は、データを記憶し、計算デバイス１０１の他のコンポーネントに対してそのデータへのアクセスを提供することができる。幾つかの実施形態では、メモリ２３７は、プロセッサ２３５により実行される命令及び／またはデータを記憶してもよい。命令および／またはデータは、本明細書で説明する手法を実行するコードを含んでいてもよい。例えば、一実施形態では、メモリ２３７は、ビデオ処理アプリケーション１０３を格納することができる。また、メモリ２３７は、例えば、オペレーティングシステム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベースなどを含む、他の命令およびデータを格納することが可能である。メモリ２３７は、プロセッサ２３５および計算デバイス１０１の他のコンポーネントと通信するためにバス２２０に結合されてもよい。
【００３８】
メモリ２３７は、一つまたは複数の非一時的なコンピュータ使用可能な（例えば読み取り可能、書き込み可能な）デバイス、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、組み込みメモリデバイス、ディスクリートメモリデバイス（例えばＰＲＯＭ、ＦＰＲＯＭ、ＲＯＭ）、ハードディスクドライブ、光ディスクドライブ（ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）など）媒体を含むことができる。これらは、プロセッサ２３５により処理される、またはそれに関連して処理される命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを含み、格納、通信または送信することができる任意の有形装置またはデバイスであり得る。いくつかの実装形態では、メモリ２３７は、揮発性メモリおよび不揮発性メモリのうちの一つまたは複数を含むことができる。言うまでもなく、メモリ２３７は単一のデバイスであってもよく、複数タイプのデバイスおよび構成を含んでもよい。
【００３９】
ディスプレイデバイス２３９は液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）またはその他の同様に装備されたディスプレイデバイス、スクリーンまたはモニタである。ディスプレイデバイス２３９は、本明細書で説明するユーザインターフェース、電子的画像、データを表示するように構成された任意のデバイスを表す。異なる実施形態では、表示は二値（２つの異なるピクセル値のみ）、モノクローム（１色の複数シェード）、または複数色かつ複数シェードであってもよい。ディスプレイデバイス２３９は、プロセッサ２３５および計算デバイス１０１の他のコンポーネントと通信するためバス２２０に結合されてもよい。留意点として、ディスプレイデバイス２３９は図２において点線で示し、任意的でることを示した。例えば、計算デバイス１０１は、ディスプレイデバイス２３９なしでビデオコンテンツ分析を実行するサーバであっても、ディスプレイのないスマートキャプチャデバイスであってもよい。
【００４０】
通信部２４１は、プロセッサ２３５をネットワーク１０５とその他の処理システムにリンクすることにより、データを受送信するハードウェアである。通信部２４１は処理するデータを受信する。例えば、通信部は、ビデオ処理アプリケーション１０３による処理のため、キャプチャデバイス１０７からビデオデータを受信する。また、通信部２４１はクライアントデバイス１１５に表示する情報を送信してもよい。例えば、通信部２４１は、クライアントデバイス１１５のユーザからビデオコンテンツを求める要求を受信し、そのビデオコンテンツを、クラウドサーバ１２１を介してクライアントデバイス１１５に送信する。通信部２４１はバス２２０に結合されている。一実施形態では、通信部２４１は、ネットワーク１０５への直接的な物理的接続のためのポートを含むことができる。他の一実施形態では、通信部２４１は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、ブルートゥース（登録商標）、セルラー通信またはその他の好適な無線通信方法などの一以上の無線通信方法を用いて、クライアントデバイス１１５またはその他の任意の通信チャンネルとデータを交換する無線トランシーバ１１６を含んでいてもよい。
【００４１】
データ記憶装置２４３は、本明細書で説明する機能を提供するためのデータを格納する非一時的メモリである。図示の実施形態では、データ記憶装置２４３はバス２２０に通信可能に結合され、記憶するデータを受信し、するためにバス２２０に通信可能に結合され、そのデータを求める要求に応じて読み出すためのデータを提供する。データ記憶装置２４３は、ビデオ、関心領域を画定するために使用されるルールセット、関心領域、顕著性属性、変位マップ、視差マップ、深さマップなどを格納することができる。
【００４２】
キャプチャデバイス２４５は、ビデオをキャプチャし、そのビデオにメタデータを関連付けるハードウェアデバイスである。例えば、キャプチャデバイス２４５は、デジタルビデオカメラ、ウェブカム、ＩＰカメラ等であってもよい。キャプチャデバイス２４５によってキャプチャされるビデオは、任意の一連の時間関連画像とすることができる。キャプチャデバイス２４５は、メタデータ、例えば、ビデオがキャプチャされた時および場所、画像サイズ、画像解像度、色深度、フレームレートなどをビデオに関連付ける。キャプチャデバイス２４５は、プロセッサ２３５および計算デバイス１０１の他のコンポーネントと通信するためバス２２０に結合されてもよい。留意点として、キャプチャデバイス２４５は図２において点線で示し、任意的であることを示した。例えば、計算デバイス１０１は、リモートキャプチャデバイス１０７に接続されたビデオコンテンツ分析を実行するためのサーバであってもよいし、統合キャプチャデバイス２４５を含むスマートキャプチャデバイス１０９であってもよい。
【００４３】
幾つかの実施形態では、ビデオ処理アプリケーション１０３は、データ受信部２０１、ＡＯＩ判定モジュール２０３、顕著性検知部２０５、データ集約モジュール２０７、任意的オンデマンド処理アプリケーション１２３を含む。
【００４４】
ビデオ処理アプリケーション１０３のコンポーネントは、それらが実行する機能を提供するソフトウェア及び／又は論理回路を含んでいてもよい。幾つかの実施形態では、コンポーネントは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）や特定用途集積回路（ＡＳＩＣ）を含むプログラム可能ハードウェア又は専門ハードウェアを用いて実施されてもよい。いくつかの実施形態では、コンポーネントは、プロセッサ２３５によって実行可能なハードウェアおよびソフトウェアの組み合わせを使用して実装することができる。いくつかの実施形態では、コンポーネントは、プロセッサ２３５によって実行可能な命令である。いくつかの実装形態では、コンポーネントは、メモリ２３７に記憶され、プロセッサ２３５によってアクセス可能であり、実行可能である。
【００４５】
データ受信部２０１は、データを受信し、そのデータをバッファに格納する機能を提供するソフトウェアおよび／または論理回路を含むことができる。いくつかの実施形態では、データ受信部２０１は、キャプチャデバイス１０７からビデオストリームを受信する。キャプチャデバイス１０７は、常に動作する低コストの低解像度カメラであってもよく、従って、「メインセンサ」とみなされる。メインセンサは、場面のビデオ／画像をキャプチャし、メインデータソースとして機能する。他の実施形態では、データ受信部２０１は追加センサからもデータを受信する。追加センサとは、スマートキャプチャデバイス、赤外線センサ、奥行きセンサ、ビデオカメラ、加速度計、周辺光センサ、サーマルセンサ、バイオメトリックセンサなどであってもよい。追加センサは、顕著性検知部２０５を参照して後で説明するように、一定条件下で起動されてもよい。様々なタイプのセンサに基づき、データ受信部２０１により受信されるデータは、ルミナンス測定値、クロミナンス測定値を含んでいてもよい。データ受信部２０１は、顕著性検知部２０５またはデータ集約モジュール２０７が受信データを処理できるまで、そのデータをバッファする。当業者には言うまでもないが、メインセンサ及び／又は追加センサは幾つあってもよい。
【００４６】
ＡＯＩ判定モジュール２０３は、例えばキャプチャデバイス１０７などのメインセンサのイメージングエリアにわたり関心領域を判定する機能を提供するソフトウェア及び／又は論理回路を含んでいてもよい。
【００４７】
イメージングエリアは、ある位置及びある方向で配置されたメインセンサを通して見える世界の一部分を示す２次元視野である。関心領域は、ユーザが関心を有するイメージングエリアの一部分であり、例えば、入口エリア、混雑エリアなどである。幾つかの実施形態では、関心領域は、メインセンサによりキャプチャされる２次元イメージングエリア全体であってもよい。
【００４８】
幾つかの実施形態では、ＡＯＩ判定モジュール２０３はルールセット（ａ  ｓｅｔ  ｏｆ  ｒｕｌｅｓ）に基づき関心領域を判定する。ルールセットは、場所（例えば、病院、店舗）、エリア機能（例えば、勉強エリア、エンターテインメントエリア）、ユーザ嗜好などに基づいて設定されてもよい。例示的な１つのルールによれば、ビルの入口と出口は関心領域である可能性がある。これらのエリアのビデオ／画像を用いて、そのビルに入る人数、そのビルから出る人数、何時そのビルに最大数の人がいるか決定することができるからである。他の一例では、会社のオフィスが関心領域であってもよく、ユーザの要求があれば、病院の廊下が関心領域である。幾つかの実施形態では、ＡＯＩ判定モジュール２０３はシステムにより設計された所定のルールセットを受信する。他の実施形態では、ＡＯＩ判定モジュール２０３は、所定ルールを修正するユーザ入力を受け付け、ユーザが画定したルールを受信し、関心領域に関するユーザ嗜好を受信する一以上のユーザインターフェースを生成するユーザインターフェースモジュール（図示せず）を含む。ＡＯＩ判定モジュール２０３は、ルール及び／又はユーザ嗜好の変化に合わせるよう関心領域を調整する。例えば、ＡＯＩ判定モジュール２０３は、関心領域がもはや混雑していないとき、その関心領域を削除する。それゆえ、関心領域は動的である。
【００４９】
他の実施形態では、ＡＯＩ判定モジュール２０３は、メインセンサと同じ（または同様の）位置に配置された同じ（または同様の）センサから以前にキャプチャされたデータを収集して、機械学習アルゴリズムを用いて収集されたデータからメインセンサの関心領域を自動的に学習する。例えば、学校の第１教室と第２教室に、各教室の同じ位置に設置された同じキャプチャデバイスがあるものとする。第１教室について関心領域が判定されたとき、ＡＯＩ判定モジュール２０３は、第１教室のデータから第２教室について関心領域を自動的に学習できる。
【００５０】
ＡＯＩ判定モジュール２０３は、ポリゴン及び／又はラインの形式で関心領域を画定する。幾つかの実施形態では、ＡＯＩ判定モジュール２０３は、１つまたは複数のポリゴン内のエリアを関心領域と判定する。幾つかの実施形態では、ＡＯＩ判定モジュール２０３は、１つまたは複数のポリゴン内のエリアを関心領域と判定する。幾つかの実施形態では、ＡＯＩ判定モジュール２０３は、１つまたは複数のラインを関心領域と判定する。１つまたは複数のラインは連結していてもいなくてもよい。ラインにより画定される関心領域はフェンスとも呼ばれる。当業者は、判定される関心領域の数は幾つでもよく、１つの関心領域がポリゴン内のエリアと、ポリゴン外のエリアと、ラインとの任意の組合せであってもよい。当業者には言うまでもないが、他の形状や他の手法を用いて関心領域を画定および判定することもできる。
【００５１】
図３は、例示的な関心領域のグラフィカル表現を示す図である。イメージングエリア３００はメインセンサのものであってもよい。ＡＯＩ判定モジュール２０３は、第１ライン３０２で入口を画定し、第２ライン３０４で出口を画定する。ＡＯＩ判定モジュール２０３はライン３０２と３０４を関心領域として判定する。ＡＯＩ判定モジュール２０３は、他の２つの、ポリゴン３０６、３０８の形式の関心領域も画定する。後述のように、これらの関心領域に関連するデータのみが分析され、計算リソースやネットワークリソースが低減される。
【００５２】
顕著性検知部２０５は、データストリームから顕著なイベントを検知し、その顕著なイベントが発生した場所および時間を特定する機能を提供するソフトウェアおよび／または論理回路を含んでいてもよい。
【００５３】
幾つかの実施形態では、顕著性検知部２０５は、データ受信部２０１を介してメインセンサ（例えば、キャプチャデバイス２０７）からデータストリーム（例えば、ビデオ）を受信する。顕著性検知部２０５は、ビデオ中のオブジェクトの顕著性（ｓａｌｉｅｎｃｙ）に基づき、顕著なイベント（ｓａｌｉｅｎｔ  ｅｖｅｎｔ）を判定する。顕著性はビデオの目立った特徴（ｐｒｏｎｏｕｎｃｅｄ  ｆｅａｔｕｒｅ）を表す。例えば、イベントが静止したオブジェクトまたはゆっくり動くオブジェクトのみを含む、例えば人気のない通りや監視ビデオで反復的に点滅している劇場のネオンビーコンのみを含む場合、このイベントは顕著ではない（ｎｏｎ−ｓａｌｉｅｎｔ）。しかし、イベントが、廊下で動く第１の人を含む場合、このイベントは顕著なイベントである。または、ビデオ中、他の人が右に動いているところ、第２の人が左に動いている場合、顕著性検知部２０５は第２の人を含むイベントは顕著なイベントであると判定する。幾つかの実施形態では、顕著性検知部２０５は、オブジェクトの顕著性を判定し、その顕著性（ｓａｌｉｅｎｃｙ）に基づきビデオストリームから顕著なオブジェクトを抽出し、顕著なオブジェクトを含むイベントを顕著なイベントとして特定する。
【００５４】
幾つかの実施形態では、顕著性検知部２０５は、例えば、動き検知に基づく背景・前景分離法などの動き検知手法を用いて、顕著なイベントに関連する顕著なオブジェクトを特定する。例えば、顕著性検知部２０５は、オブジェクトの動きに基づいて、ビデオの前景を抽出し、前景内のオブジェクトを顕著なオブジェクトとして特定し、顕著なオブジェクトを顕著なイベントに含めることができる。他の例では、顕著性検知部２０５は、第１の顕著なイベントが、優勢フロー（ｐｒｅｄｏｍｉｎａｔｉｏｎ  ｆｌｏｗ）にない移動オブジェクトを含むと判定し、第２の顕著なイベントが、垂直移動をしない顕著なオブジェクトを含むと判定する。動き検知手法に基づき、顕著性検知部２０５は、オブジェクトの動き、オブジェクトの出現、オブジェクトの消失、照明の変化などを検知し、顕著なオブジェクトとそれに関連する顕著なイベントとそれに関連する顕著なイベントとを判定する。
【００５５】
幾つかの実施形態では、顕著性検知部２０５は、データ受信部２０１を介して低コストの従来のキャプチャデバイス（例えば、ＲＧＢカメラ、ＩＲカメラ、またはモノクロームカメラ）から低解像度ビデオを受信し、低解像度動き検知アルゴリズムに基づいて顕著なイベントを検知する。このようなアルゴリズムを用いて、顕著性検知部２０５は、オブジェクトの動き、オブジェクトの出現（ａｐｐｅａｒａｎｃｅ）、オブジェクトの消失（ｄｉｓａｐｐｅａｒａｎｃｅ）、及び突然の照明変化などの場面の変化の検知に基づいて、顕著なイベントを判定する。
【００５６】
他の実施形態では、顕著性検知部２０５は、従来のキャプチャデバイスからではなく、サーマルカメラ（例えば、遠赤外）からビデオを受信してもよい。顕著性検知部２０５は、同じ低解像度動き検知アルゴリズムを用いて、温度が背景と違うオブジェクト（例えば、人間、動物、または室内の低温飲料）の動き、出現、及び消失を検知し、イメージングされた場面における急激な温度変化を検知する。顕著性検知部２０５は、検知された変化に基づいて顕著なイベントを判定する。
【００５７】
時に、混雑した高速道路や店内に多数の移動オブジェクトがあるとき、顕著なオブジェクトおよびそれに関連する顕著なイベントを判定するのに動き検知手法が使えない。その他の、色、形状、コントラストなどのビデオの特徴を用いて、顕著なオブジェクトおよびそれに関連する顕著なイベントを判定することもできる。例えば、顕著性検知部２０５は、暗い家屋の監視ビデオ中に輝点（例えば、明るいフラッシュライト）を含む顕著なイベントを特定し、または黄色いセーフティベストを着た人を含む顕著なイベントを特定し、または円形状オブジェクトを含む顕著なイベントを特定してもよい。
【００５８】
いくつかの実施形態において、顕著性検知部２０５は、動き検知に基づく背景・前景分離、ガウス混合モデル（ＧＭＭ）ベースアルゴリズム、および視覚背景抽出部（ＶｉＢｅ）を使用して、ビデオの背景および前景を抽出し、顕著なオブジェクトおよび対応する顕著なイベントを判定する。ビデオの顕著なイベントを判定する他のアルゴリズムには、アダプティブＧＭＭ、自己組織化マップアルゴリズム、主成分分析アルゴリズム、背景をモデリングする低ランク分解に基づくアルゴリズムなどを含むことができる。
【００５９】
キャプチャデバイス（例えば、メインセンサ）から受信したデータストリーム（例えば、ビデオ）から顕著なイベントを判定するとき、顕著性検知部２０５は、顕著なイベントの場所と、その顕著なイベントの発生時間とを特定する。幾つかの実施形態では、顕著性検知部２０５は、ＡＯＩ判定モジュール２０３により判定されたキャプチャデバイスのイメージングエリアの関心領域を受信し、顕著なイベントの場所がその関心領域内にあるか判定する。この場合、顕著性検知部２０５は、顕著なイベントの発生の場所と時間に基づいてデータストリームの一部を特定し、特定された一部を、オプティカルフロー分析や奥行き推定などの動作を実行する適当なモジュールに送る。これにより、送信され処理されるデータ量が大幅に低減され、不必要な計算やネットワークコストを無くすことができる。
【００６０】
幾つかの実施形態では、顕著なイベントが判定されると、顕著性検知部２０５は、追加データ（ａｄｄｉｔｉｏｎａｌ  ｄａｔａ）が必要か判断し、データ集約モジュール２０７にシグナリングして、より多くのデータを取得する。幾つかの実施形態では、追加データが赤外線カメラ、奥行きカメラなどの追加ビジュアルセンサからのものである場合、顕著性検知部２０５は、メインセンサ（例えば、低コストキャプチャデバイス）から受信するビデオと、より高価な追加ビジュアルセンサから受信するデータとの両方に基づき、データの一部を特定することもできる。
【００６１】
幾つかの実施形態では、顕著性検知部２０５は、顕著なイベントの発生の時間を含む時間区間、例えば、発生時刻の前ｎ１秒から、発生時刻の後ｎ２秒までの範囲の時間を判定する。幾つかの実施形態では、顕著性検知部２０５は、顕著なイベントの場所に基づいて領域、例えば顕著なイベントに含まれる顕著なオブジェクトを取り囲む領域を判定する。顕著性検知部２０５は、時間的制約（すなわち、時間区間）と空間的制約（すなわち、領域）との両方を満たすデータストリームの一部分を特定する。さらに別のビデオ処理オペレーションまたは動作は、データのこの部分のみに実行される。例えば、顕著性検知部２０５は、顕著なイベントがビデオの１６秒時点で発生した場合、１２秒から２０秒までの範囲の時間区間を決定する。顕著性検知部２０５は、顕著なイベントの顕著なオブジェクトを取り囲むバウンディングボックスを決定し、そのビデオのフレームサブセットからそのバウンディングボックス内のピクセルを抽出する。顕著性検知部２０５は、時間的制約（例えば、［１２，２０］時間区間）と、空間的制約（例えば、バウンディングボックス）との両方を満たすデータ部分を、データ集約モジュール２０７およびオンデマンドビデオ処理アプリケーションのうち少なくとも一方に送信する。
【００６２】
データ集約モジュール（ｄａｔａ  ａｇｇｒｅｇａｔｉｏｎ  ｍｏｄｕｌｅ）２０７は、データを集約（ａｇｇｒｅｇａｔｅ）する機能を提供するソフトウェア及び／又は論理回路を含んでもよく、そのデータをオンデマンド処理アプリケーション１２３に送信する。
【００６３】
顕著性検知部２０５は、メインセンサでキャプチャしたビデオからデータ部分を特定し、そのデータ部分にさらに別の動作（例えば、奥行き推定、オプティカルフロー分析）が実行される。幾つかの実施形態では、顕著性検知部２０５は、追加データが必要であると判断し、その場面の追加情報をキャプチャするため、他のセンサを起動するようデータ集約モジュール２０７にシグナリングする。例えば、顕著性検知部２０５は、高価でないメインセンサによりキャプチャされた低解像度ビデオから動きフィーチャ（例えば、顕著な属性）をレポートし、ビデオ中の動きに関するさらなる洞察を提供する役に立つその他の環境情報（例えば、温度、照度など）を判定する。結果として、顕著性検知部２０５は、データ集約モジュール２０７に通知して、サーマルセンサなどの追加センサをトリガーして、追加環境情報を取得する。データ集約モジュール２０７は、追加センサを特定および起動し、その追加のセンサから追加情報（例えば、温度測定値）を受信する。
【００６４】
いくつかの実施形態では、データ集約モジュール２０７は、顕著なイベントに基づいて顕著性検知部２０５によって特定されたデータ部分を受信する。他の実施形態では、データ集約モジュール２０７は、顕著性検知部２０５によって要求された追加のデータを受信する。他のいくつかの実施形態では、データ集約モジュール２０７は、データ受信部２０１と通信して、バッファから他のデータをキャプチャすることができる。データ集約モジュール２０７は、受信したデータを集約し、オンデマンド処理アプリケーション１２３によって実装される、より高価なプロセス（ｐｒｏｃｅｓｓ）に集約データを渡す。
【００６５】
オンデマンド処理アプリケーション１２３は、オプティカルフロー分析モジュール２０９と、ステレオ分析モジュール２１１とを含む。図２の例に示すように、アプリケーション／モジュール１２３、２０９および２１１は、これらのアプリケーション／モジュールが任意的であることを示すために破線で示されている。これは、１２３、２０９および２１１は、（計算デバイス１０１において）ローカルに実行することができ、または（クラウドサーバ１２１において）クラウドで実行することができることを意味する。
【００６６】
いくつかの実施形態では、モジュール２０９および２１１のそれぞれは、データ集約モジュール２０７からデータを受信し、そのデータに対して動作を実行する。受信されたデータは、顕著なイベントに基づいてメインセンサのビデオから顕著性検知部２０５によって特定されたデータ部分を含む。受信されたデータは、顕著性検知部２０５によって要求された追加センサからの追加データと、データ受信部２０１を介してバッファからキャプチャされた他のデータとを含んでもよい。
【００６７】
オプティカルフローモジュール２０９は、受信データに対してオプティカルフロー推定を実行する機能を提供するソフトウェアおよび／または論理回路を含むことができる。オプティカルフローモジュール２０９は、受信データシーケンスのピクセルの動きを計算し（例えば時刻ｔにおける画像のピクセルが時刻ｔ＋１における画像のどこにあるかを判定し）、変位マップの形式でピクセル対応を出力する。いくつかの実施形態では、オプティカルフローモジュール２０９は、時系列画像シーケンスにわたる２次元画像の動きを推定し、その２次元動き推定を使用して、キャプチャデバイスの三次元運動（スケールファクター内へ）および三次元表面構造（形状または相対的奥行き）を回復する。場面の三次元的な性質および構造、ならびにその場面に対するオブジェクトおよび観察者の三次元的な動きを推定することに加えて、オプティカルフローモジュール２０９は、オプティカルフローを、動き検知、オブジェクトセグメント化、衝突時間計算および拡張フォーカス計算（ｔｉｍｅ−ｔｏ−ｃｏｌｌｉｓｉｏｎ  ａｎｄ  ｆｏｃｕｓ  ｏｆ  ｅｘｐａｎｓｉｏｎ  ｃａｌｃｕｌａｔｉｏｎｓ）、および動き補償符号化にも使用する。
【００６８】
ステレオ分析モジュール２１１は、受信データに対してステレオ分析を実行する機能を提供するソフトウェアおよび／または論理回路（ｌｏｇｉｃ）を含むことができる。いくつかの実施形態では、ステレオ分析モジュール２１１は、異なる位置から同じ場面の２つの画像を与える立体視を決定する。ステレオ分析モジュール２１１は、２つの画像を比較し、視差マップの形式で相対的奥行き情報を取得する。視差マップは、２つのステレオ画像内、すなわち対応する画像点の類似する特徴の座標の差分を符号化する。この視差マップにおける値は、対応するピクセル位置における場面の奥行きに反比例する。いくつかの実施形態では、ステレオ分析モジュール２１１は、視差情報に基づいて奥行きマップ（ｄｅｐｔｈ  ｍａｐ）を決定する。奥行きマップは、視点から場面オブジェクトの表面までの距離に関する情報を含む。いくつかの実施形態では、ステレオ分析モジュール２１１は、キャプチャデバイスの投影パラメータに基づいて、視差マップを三次元点クラウドに投影する。
【００６９】
ビデオ処理アプリケーション１０３の他のモジュールによって実行される他のビデオ分析動作と比較して、アプリケーション／モジュール１２３、２０９、および２１１は、より多くの計算リソースを必要とするより高価なビデオ分析オペレーション／動作を実行する。上述のオプティカルフロー分析及びステレオ分析に加えて、当業者には言うまでもないが、オンデマンド処理アプリケーション１２３に他のデータ分析モジュールを含めることができ、オンデマンド処理アプリケーション１２３によっても他のタイプのデータ分析を実施することができる。
【００７０】
いくつかの実施形態では、アプリケーション／モジュール１２３、２０９、および２１１は、その出力、例えば、変位マップ、視差マップ、および奥行きマップをクラウドサーバ１２１に送信する。クラウドサーバ１２１は、受信したマップコレクション（ｃｏｌｌｅｃｔｉｏｎ  ｏｆ  ｍａｐｓ）に基づいてタスクを実行する。タスクは、例えば、人数カウンタ、人のフロー、顔検知、トラッカ（ｔｒａｃｋｅｒ）、周辺侵入、近傍検知器、転倒検知器などに関係していてもよい。例えば、クラウドサーバ１２１は、関心領域に出入りする人々の人数をカウントし、関心領域内の人の存在を主張し、関心領域内で転倒した人を検知するためのマップ集合を使用する。これらのタスクについての詳細については、図５Ｂを参照して後で説明する。
【００７１】
図４は、顕著なイベントに焦点を当てたオンデマンドビデオ処理のフレームワーク４００の例示的な一実施形態を示すブロック図である。メインセンサ４０２は、ビデオをキャプチャし、このビデオをバッファに送信する。バッファは、計算デバイス（例えば、図１の計算デバイス１０１）の顕著性検知部にアクセス可能である。ブロック４０４において、顕著性検知部は、矢印１に示すようにバッファからビデオを受信し、バッファされたビデオデータに対して顕著性検知を実行する。また、顕著性検知部は、矢印２に示すように、関心領域の情報を受信する。顕著性検知部は、顕著性に基づいて顕著なイベントを特定する。次いで、顕著性検知部は、バッファから顕著なイベントを含む時間区間の間にビデオを抽出し、矢印３に示すように、抽出されたビデオ部分をブロック４０８に送信する。ブロック４０８においてビデオのオンデマンド処理が実行される。
【００７２】
いくつかの実施形態では、顕著性検知部は、ブロック４０４において、顕著なイベントを検知すると、受信されたビデオより多い情報がビデオ処理のために必要とされると判断する。この状況では、追加センサ４０６が矢印４で示されるように起動され、より多くの情報を顕著性検知部に提供する。
【００７３】
ブロック４０８において、矢印３のように、抽出されたデータ部分を受信することに応答して、サーバは、オプティカルフローおよび奥行き推定などのオンデマンド処理動作またはオペレーションを実行する。サーバは、システム設計に応じてエッジ側またはクラウド側に配置することができる。例えば、図１に示したように、サーバは、ローカルコンピュータデバイス１０１またはクラウドサーバ１２１であってもよい。ブロック４０４で実行されるビデオ処理オペレーションと比較して、サーバは、ブロック４０８で、より複雑なビデオ分析オペレーションを実施する。これらの複雑なオペレーションは、性能損失なしに計算およびネットワークリソースの使用を最小限に抑えるためにオンデマンドで行われる。いくつかの実施形態では、サーバは、ブロック４０８において、オンデマンド処理動作またはオペレーションに基づいて出力を生成し、また、ビデオデータを圧縮する。サーバは、矢印５で示すように、出力及び圧縮ビデオデータをローカル又はクラウド内のエンドポイントに送信する。
【００７４】
図４に示した例示的なビデオ分析フレームワークによりデータを顕著性によって組織化することができる。このように構成されたデータは、元のフラットに構成されたビデオデータでも、効率的に検索できるよう設計された構造化データでもない。このような半構造化データは、様々なアプリケーションで適用するとき、特に有用である。このように実装されると、スキーマは、多くのアプリケーションにわたって一定のままである。例えば、動きの特徴は、小売、病院、高齢者介護施設、及び顧客にサービスを提供する多くの他の事業において重要なので、動きの顕著性において編成されたデータは、ビジネススキーマの変更なしに、全てのアプリケーションにおいて使用することができ、即ちこれらの事業に対して特定のデータモデルは必要とされない。また、図４に示されるビデオ分析フレームワークは、顕著なイベントを含むデータ部分のみを分析および送信し、したがって、ネットワーク帯域幅を大幅に減少させる。また、フレームワークによりクラウド側において特定事業に関わる分析を実行することができ、それゆえエッジ側の負荷が低減される。多くのアプリケーションにおいて、エッジ側には単純かつ安価なデバイスが含まれ、これは高価な分析を実行する機能を欠いている可能性がある。また、エッジ側でビジネスロジック（ｂｕｓｉｎｅｓｓ  ｌｏｇｉｃ）を変更すること（例えば、各小売り点の監視カメラをアップグレードすること）は容易ではない。それゆえ、特定事業分析からエッジ側を無くすことは有利である。
【００７５】
図５Ａは、顕著なイベントに焦点を当てたビデオ分析を提供するハードウェア実装５００の一実施形態を示すブロック図である。図５Ａに示すように、計算デバイス５０２（例えば、ラズベリーパイＰｉ３）はコンビネーションキャプチャデバイス５０４（例えば、Ｏｒｂｂｅｃ  Ａｓｔｒａ  Ｍｉｎｉ）に接続される。図１に戻り、小型計算デバイス５０２は計算デバイス１０１であってもよく、コンビネーションキャプチャデバイス５０４はキャプチャデバイス１０７と一以上のセンサ１１３ａ−１１３ｎとを含んでいてもよい。計算デバイス５０２は、エンドポイント、例えば、ローカルサーバ５０６やクラウドサーバ５０８とも通信する。幾つかの実施形態では、ビデオはＲＧＢカメラによりキャプチャされ、奥行きセンサはＩＲプロジェクタ（既知のパターンを投影するもの）と、ＩＲレシーバ（場面の構造物により変形されたパターンをキャプチャするもの）とにより構成される。図示した例では、エンドポイントは１つの計算デバイス５０２に接続されている。他の例では、エンドポイントは複数の計算デバイスに接続されてもよく、それゆえ複数のセンサからデータを受信する。
【００７６】
図５Ｂは、顕著なイベントに焦点を当てたビデオ分析を提供するアルゴリズム５５０の例示的な一実施形態を示すブロック図である。コンビネーションキャプチャデバイス５０４に組み込まれた低コストＲＧＢカメラは、ＲＧＢビデオをキャプチャし、このビデオを計算デバイス５０２に送信する。計算デバイス５０２は、受信したビデオデータに顕著性検知を実行し、特に、顕著性に基づいて顕著なイベントを特定する。例えば、顕著なイベントの場所が関心領域内であるとの顕著性条件が満たされると、計算デバイス５０２はオプティカルフローと奥行き推定分析を実行する。オプティカルフローおよび奥行き推定分析を実行するために追加データがあれば有利であると計算デバイス５０２が判断するので、コンビネーションキャプチャデバイス５０４に組み込まれた奥行きセンサが起動され、場面の構造物により変形されたパターンをキャプチャする。その分析に基づいて、計算デバイス５０２はさらにデータを結合して、そのデータをクラウドサーバ５０８に送信する。
【００７７】
一般的に、クラウドサーバ５０８は様々なアプリケーションを提供するために使われる。幾つかの実施形態では、クラウドサーバ５０８は、計算デバイス５０２から処理されたデータ（例えば、変位マップ、奥行きマップ）を受信し、アプリケーションに関連するタスクを実行する。例えば、クラウドサーバ５０８は、計算デバイス５０２からの結合されたデータに対して、人数カウンタタスク、占有検知タスク、エリア侵入タスク、転倒検知タスクなどを実行してもよい。
【００７８】
図５Ａおよび図５Ｂに示したデータ分析が有利なのは、サブタスクやサブアナリティクス（ｓｕｂ−ａｎａｌｙｔｉｃｓ）に関する複雑なビデオ分析の設計を可能にするからである。これにより負荷がシステムの様々なエンティティに分散し、システムのスループットが高くなる。
【００７９】
図６は、顕著なイベントに焦点を当てた、動作を実行するデータストリームの一部分を特定する方法６００の一実施形態を示すフロー図である。上記の通り、計算デバイス１０１のビデオ処理アプリケーション１０３は、データ受信部２０１、ＡＯＩ判定モジュール２０３、顕著性検知部２０５、及びデータ集約モジュール２０７を含んでいてもよい。ステップ６０２において、データ受信部２０１はキャプチャデバイス、例えば低解像度ビデオをキャプチャする高価でないＲＧＢカメラから、データストリームを受信する。データ受信部２０１は、ＡＯＩ判定モジュール２０３と顕著性検知部２０５からアクセス可能なバッファに、データストリームを格納する。ステップ６０４において、ＡＯＩ判定モジュール２０３はキャプチャデバイスのイメージングエリアにある関心領域を判定する。イメージングエリアは、例えば、ある位置に及びある方向で配置されたキャプチャデバイスを通して見える世界の一部分を示す２次元（２Ｄ）視野であってもよい。関心領域は、ユーザが関心を有するイメージングエリアの一部分であり、例えば、入口エリア、混雑エリアなどであってもよい。幾つかの実施形態では、ＡＯＩ判定モジュール２０３は、ポリゴン及び／又はラインの形式で関心領域を画定する。
【００８０】
ステップ６０６において、顕著性検知部２０５はデータストリームから顕著なイベントを検知する。例えば、顕著性検知部２０５は、オブジェクトの動き、オブジェクトの出現（ａｐｐｅａｒａｎｃｅ）、オブジェクトの消失（ｄｉｓａｐｐｅａｒａｎｃｅ）、及び突然の照明変化などの場面の変化の検知に基づいて、顕著なイベントを判定する。ステップ６０８において、顕著性検知部２０５は顕著なイベントが関心領域内にあるか判定する。顕著なイベントの場所が関心領域内である場合、ステップ６１０において、顕著性検知部２０５は顕著なイベントの発生時間を特定する。顕著なイベントの場所が関心領域外である場合、方法６００は、ステップ６０６に戻り、データストリームから他の顕著なイベントを判定する。
【００８１】
幾つかの実施形態では、顕著性検知部２０５は、関心領域内の顕著なイベントが判定された後、追加情報が必要であるか判断する。ステップ６１２において、顕著性検知部２０５は、追加センサを起動して追加情報を取得するか判断する。イエスであれば、顕著性検知部２０５は、追加センサをトリガーして追加情報を取得するように、データ集約モジュール２０７にシグナリングする。ステップ６１４において、データ集約モジュール２０７は、追加センサから情報を受信して、その情報を顕著性検知部２０５に送信する。ステップ６１６において、顕著性検知部２０５は、顕著なイベントの場所と発生の時間とに基づいてデータストリームの一部を特定する。データストリームは追加センサから受信した情報を含む。追加センサはＩＲカメラ、奥行きセンサなどのビジュアルセンサであってもよい。幾つかの実施形態では、顕著性検知部２０５は、オプティカルフロー分析や奥行き推定などの動作を実行する適切なモジュールに、特定された部分を送る。
【００８２】
図７は、データストリームの一部分に対して動作を実行する方法７００の一実施形態を示すフロー図である。方法７００は、計算デバイス１０１と通信するクラウドサーバ１２１により実施される。ステップ７０２において、クラウドサーバ１２１はデータストリームの一部を受信する。例えば、クラウドサーバ１２１は、顕著なイベントの場所と発生の時間とに基づき、計算デバイス１０１により特定されたデータストリームの一部分を受信する。ステップ７０４において、クラウドサーバ１２１はデータストリームのその部分に動作を実行して出力を生成する。幾つかの実施形態では、動作を実行することは、データストリームの部分にオプティカルフロー分析を実行することを含む。他の実施形態では、動作を実行することは、データストリームの部分にステレオ分析を実行することを含む。動作の出力は、変位マップ、視差マップ、および奥行きマップのうち少なくとも１つを含む。ステップ７０６において、クラウドサーバ１２１は出力、例えば変位マップ、視差マップおよび奥行きマップのコレクションに基づいてタスクを実行する。タスクは、人数カウンタ、人のフロー、顔検知、トラッカ（ｔｒａｃｋｅｒ）、周辺侵入、近傍検知器、落下検知器などに関係していてもよい。
【００８３】
顕著なイベントに焦点を当てたビジュアル分析を提供するシステムと方法を説明した。上記の説明では、説明を目的として、上記の手法を完全に理解してもらうために、多数の具体的な詳細事項を記載する。しかし、言うまでもなく、本手法はこれらの詳細がなくても実施することができる。他の場合では、説明が不明瞭になることを避け、理解を容易にするために、ブロック図の形式で構造とデバイスを示す。例えば、本手法は、主にソフトウェアと特定のハードウェアとを参照して、一実施形態として説明した。しかし、本発明は、データとコマンドを受信し、サービスを提供する任意の周辺デバイスの一部として情報を提供できるどのタイプの計算システムにも当てはまる。
【００８４】
本明細書において「一実施形態」とは、その実施形態に関して説明する機能、構造、特徴が少なくとも１つの実施形態に含まれることを意味している。本明細書ではいろいろな箇所で「一実施形態とは」と記載するが、必ずしも同じ実施形態を指すものではない。
【００８５】
上記の詳細な説明の一部は、コンピュータメモリ中のデータビットに対する操作のアルゴリズムと記号による表現により表されている。ある場合には、これらのアルゴリズムによる説明と表現は、データ処理技術の当業者が、自分の仕事内容を他の分野の人に最も効果的に伝えるために用いられる。ここで、また一般的に、アルゴリズムとは、所望の結果に導く自己矛盾のないステップのシーケンスである。このステップは、物理量の物理的操作を要するステップである。通常、必ずしも必要ではないが、この物理量には、記憶し、伝達し、結合し、比較し、操作できる電気的または磁気的信号の形をとる。主に一般的な使用のために、これらの信号をビット、値、要素、記号、文字、式、数字等で表すと便利な時がある。
【００８６】
しかし、これらの用語や類似の用語は適当な物理量と関連しているべきであり、これらの物理量に付された便利なラベルに過ぎないことに留意すべきである。特に断らなければ、以下の説明から明らかなように、言うまでもなく、この明細書全体において、「処理」、「算出」、「計算」、「判断」、「表示」等の用語を用いた説明は、コンピュータシステム、類似の電子的計算機器の動作やプロセスであって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量として表されたデータを操作し、コンピュータシステムメモリやレジスタ、その他の情報記憶装置、伝送機器、表示機器内の物理量として同様に表された他のデータに変換するものの動作や処理を指す。
【００８７】
本手法は、また、これらの動作を実行する装置にも関する。この装置は、必要な目的のために特に構成されたものでもよく、コンピュータ中に記憶されたコンピュータプログラムにより選択的に起動または再構成された汎用コンピュータを有していてもよい。かかるコンピュータプログラムは、コンピュータによる読み取りが可能な記憶媒体に記憶することができる。このような記憶媒体には、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク等のいかなるタイプのディスクも含まれ、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、不揮発性メモリを有するＵＳＢキーを含むフラッシュメモリ、または電子的命令を格納するのに好適な、コンピュータシステムバスに結合されたいかなるタイプの媒体も含まれるが、これらに限定されるわけではない。
【００８８】
いくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアを両方含む実施形態の形式を取ることができる。一実施形態はソフトウェアで実施できる。このソフトウェアは、ファームウェア、レジデントソフトウェア、マイクロコードなどを含むが、これらに限定されない。
【００８９】
さらに、いくつかの実施形態は、コンピュータや命令実行システムにより使用されるプログラムコードを提供するコンピュータ利用可能媒体またはコンピュータ読み取り可能媒体からアクセスできるコンピュータプログラム製品の形体を取りうる。本開示の目的では、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行システム、装置、またはデバイスにより、またはそれらに関して使用される、プログラムを包含、格納、伝達、伝送、搬送できる任意の装置である。
【００９０】
プログラムコードを格納及び／又は実行するのに好適なデータ処理システムは、システムバスを通してメモリ要素に直接的または間接的に結合された少なくとも１つのプロセッサを含むことができる。メモリエレメントは、プログラムコードの実行時に使われるローカルメモリと、バルク記憶と、実行時にコードをバルク記憶から読み出さねばならない回数を低減するために、少なくともプログラムコードの一部を一時的に記憶するキャッシュメモリと、を含む。
【００９１】
（キーボード、ディスプレイ、ポインティングデバイスなどを含むがこれに限定されない）入出力すなわちＩ／Ｏデバイスを、直接的に、またはＩ／Ｏコントローラを介在させて、システムに結合できる。
【００９２】
ネットワークアダプタをシステムに結合して、データ処理システムを、プライベートネットワークやパブリックネットワークを通して、他のデータ処理システムやリモートプリンタや記憶装置に結合することもできる。モデム、ケーブルモデム及びイーサネット（登録商標）カードは、現在利用できるネットワークアダプタの一部である。
【００９３】
最後に、ここで説明するアルゴリズムとディスプレイは、特定のコンピュータその他の装置に本来的に関係するものではない。いろいろな汎用システムをここでの教示に従ったプログラムで用いることができるし、必要な方法ステップを実行することに特化した装置を構成しても便利である。これらのシステムに必要な構成を以下に示す。また、本手法は特定のプログラミング言語により記述されるものではない。言うまでもなく、ここに説明する様々な実施形態の教示は、いろいろなプログラミング言語を用いて実施できる。
【００９４】
実施形態の上記の説明は、例示と説明を目的にしたものである。包括的であること、開示した詳細な内容に本発明を限定することを意図したものではない。上記の教示を考慮して、多くの修正と変形が可能である。実施形態の範囲はこの詳細な説明により限定されるのではなく、本出願の特許請求の範囲により限定される。当業者には言うまでもなく、実施例はその精神と本質的特徴から逸脱することなく、他の具体的な形式に化体させることができる。同様に、モジュール、ルーチン、機能、属性、方法その他の態様の具体的な名称や分け方は必須でも重要でもなく、本発明を実施するメカニズムや機能の名称、分け方、フォーマットは異なるものであってもよい。さらに、当業者には言うまでもなく、本発明のモジュール、ルーチン、機能、属性、方法、その他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せとして実施することができる。もちろん、本発明のコンポーネント（例えばモジュール）がソフトウェアとして実施された場合、そのコンポーネントはスタンドアロンのプログラムとして、大きなプログラムの一部として、複数の個別プログラムとして、静的または動的にリンクされたライブラリとして、カーネルロードモジュールとして、デバイスドライバとして、及び／またはコンピュータプログラミングの当業者が現在または将来知り得るその他の任意の方法として実施することができる。また、本発明は、特定のプログラミング言語や特定のオペレーティングシステムや環境における実施形態に決して限定されない。従って、本発明の開示は、本発明の範囲を例示することを目的とするものであり、限定することを目的とはしていない。本発明の範囲は特許請求の範囲に記載されている。
【図１】
2019160310.tif 000003
【図２】
2019160310.tif 000004
【図３】
2019160310.tif 000005
【図４】
2019160310.tif 000006
【図５Ａ】
2019160310.tif 000007
【図５Ｂ】
2019160310.tif 000008
【図６】
2019160310.tif 000009
【図７】
2019160310.tif 000010