(57)【要約】【解決手段】シーンの少なくとも一部分に物体を含むシーンのビデオフィードを受信し、物体追跡アルゴリズムを用いて物体を追跡し、ビデオフィードの第１フレームからビデオフィードの第２フレームまでの物体の変化を検出し、変化の検出に応答して、物体および物体の変化を含むビデオフィードの一部分に対する解析を自動的に実行させるための方法、システム、および、装置（コンピュータストレージ媒体にエンコードされたコンピュータプログラムを含む）。この態様の他の実施例は、方法の動作を実行するよう構成された、対応するシステム、装置、および、コンピュータストレージデバイス上にエンコードされたコンピュータプログラムを含む。【選択図】図１
2018508135.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のプロセッサによって実行される、ビデオトリガ解析を実行するためのコンピュータ実施方法であって、
前記１または複数のプロセッサによって、少なくとも一部に物体を含むシーンのビデオフィードを受信し、
前記１または複数のプロセッサによって、物体追跡アルゴリズムを用いて前記物体を追跡し、
前記１または複数のプロセッサによって、前記ビデオフィードの第１フレームから前記ビデオフィードの第２フレームまでの前記物体の変化を検出し、
前記変化の検出に応答して、前記１または複数のプロセッサによって、前記物体および前記物体の前記変化を含む前記ビデオフィードの一部分に対する解析を自動的に実行させること、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、前記ビデオフィードの前記部分の前記解析を実行させることは、
前記物体の前記変化が検出される前に前記物体をキャプチャした前記ビデオフィードの第３フレームを選択し、
前記ビデオフィードの表示順において前記第３フレームの後に生じた前記ビデオフィードの第４フレームを選択すること、
を含み、
前記ビデオフィードの前記部分は、前記第３フレームと前記第４フレームとの間の前記ビデオフレームの連続したフレームを含む、方法。
【請求項３】
請求項１に記載の方法であって、前記ビデオフィードの前記部分の前記解析を実行させることは、前記ビデオフィードの前記部分をディスプレイデバイス上に再生させることを含む、方法。
【請求項４】
請求項１に記載の方法であって、前記ビデオフィードの前記部分の前記解析を実行させることは、前記ビデオフィードの前記部分をより遅いフレームレートでディスプレイデバイス上に再生させることを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記ビデオフィードの前記部分の前記解析を実行させることは、前記ビデオフィードの前記部分を格納させることを含む、方法。
【請求項６】
請求項１に記載の方法であって、前記物体は第１物体であり、
前記ビデオフィードの前記部分の前記解析を実行させることは、
前記第１物体に前記変化を引き起こした第２物体を識別し、
前記第２物体を追跡すること、
を含む、方法。
【請求項７】
請求項１に記載の方法であって、前記物体は第１物体であり、
前記ビデオフィードの前記部分の前記解析を実行させることは、
前記第１物体に前記変化を引き起こした第２物体を識別し、
前記第２物体に対する顔認識解析を実行させること、
を含む、方法。
【請求項８】
請求項１に記載の方法であって、前記物体は第１物体であり、
前記ビデオフィードの前記部分の前記解析を実行させることは、
前記第１物体に前記変化を引き起こした第２物体を識別し、
前記第２物体の画像をキャプチャすること、
を含む、方法。
【請求項９】
請求項１に記載の方法であって、前記物体前記物体は顔であり、
前記物体の前記変化は、前記顔の回転であり、
前記解析は、顔認識解析である、方法。
【請求項１０】
請求項９に記載の方法であって、さらに、前記変化の検出に応答して、前記顔の画像をキャプチャさせることを備える、方法。
【請求項１１】
請求項１に記載の方法であって、さらに、前記変化の検出に応答して、第２ビデオフィードの一部分に対する第２解析を実行させることを備える、方法。
【請求項１２】
請求項１１に記載の方法であって、前記ビデオフィードは、第１視点からの前記シーンのものであり、
前記第２ビデオフィードは、前記第１視点とは異なる第２視点からの前記シーンのものである、方法。
【請求項１３】
請求項１１に記載の方法であって、前記ビデオフィードは、第１シーンの第１ビデオフィードであり、
前記第２ビデオフィードは、前記第１シーンとは異なる第２シーンのものである、方法。
【請求項１４】
請求項１１に記載の方法であって、前記第２解析は、顔検出解析である、方法。
【請求項１５】
請求項１に記載の方法であって、前記物体の前記変化は、色の変化、コントラストの変化、前記シーン内での位置の変化、または、前記物体の回転、の内の１つである、方法。
【請求項１６】
請求項１に記載の方法であって、前記ビデオフィードは、前記シーンのライブビデオのものである、方法。
【請求項１７】
請求項１に記載の方法であって、前記ビデオフィードは、前記シーンの事前記録されたビデオのものである、方法。
【請求項１８】
請求項１７に記載の方法であって、前記ビデオフィードは、逆時系列で表示され、
前記ビデオフィードの前記部分の前記解析を実行させることは、前記事前記録されたビデオの一部分を順時系列で表示させることを含む、方法。
【請求項１９】
ビデオトリガ解析を実行するためのシステムであって、
１または複数のコンピュータと、
前記１または複数のコンピュータに接続されているコンピュータ読み取り可能な媒体であって、前記１または複数のコンピュータによる実行時に前記１または複数のコンピュータに動作を実行させる命令を格納する、コンピュータ読み取り可能な媒体と、
を備え、
前記動作は、
少なくとも一部に物体を含むシーンのビデオフィードを受信する動作と、
物体追跡アルゴリズムを用いて前記物体を追跡する動作と、
前記ビデオフィードの第１フレームから前記ビデオフィードの第２フレームまでの前記物体の変化を検出する動作と、
前記変化の検出に応答して、前記物体および前記物体の前記変化を含む前記ビデオフィードの一部分に対する解析を自動的に実行させる動作と、
を含む、システム。
【請求項２０】
少なくとも１つのプロセッサによる実行時に前記少なくとも１つのプロセッサに動作を実行させる命令を格納する非一時的なコンピュータ読み取り可能ストレージデバイスであって、前記動作は、
少なくとも一部に物体を含むシーンのビデオフィードを受信する動作と、
物体追跡アルゴリズムを用いて前記物体を追跡する動作と、
前記ビデオフィードの第１フレームから前記ビデオフィードの第２フレームまでの前記物体の変化を検出する動作と、
前記変化の検出に応答して、前記物体および前記物体の前記変化を含む前記ビデオフィードの一部分に対する解析を自動的に実行させる動作と、
を含む、コンピュータ読み取り可能ストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１４年１２月３０日出願の米国仮特許出願第６２／０９８，０３６号の出願日の利益を主張する。米国特許出願第６２／０９８，０３６  号の内容は、参照により全体が本明細書に組み込まれる。
【０００２】
本願は、一般に、ビデオフィードのコンピュータによる解析に関する。
【背景技術】
【０００３】
ビデオ監視システムが、一般に多くの用途で利用されている。例えば、ビデオ監視システムは、公的および私的な施設を監視するためにセキュリティシステムで用いられる。一部の例において、ビデオ監視システムは、ビデオのシーン内の物体の動きを追跡できる物体追跡アルゴリズムを組み込んでいる。いくつかの例において、ビデオ監視システムは、違法行為を防止または調査するために用いられうる。
【発明の概要】
【０００４】
本開示の実施例は、ビデオシーン内の物体の変化に基づいて自動的にビデオ解析をトリガするための方法を含む。一般に、本明細書に記載された主題の革新的な態様が、シーンの少なくとも一部分に物体を含むシーンのビデオフィードを受信し、物体追跡アルゴリズムを用いて物体を追跡し、ビデオフィードの第１フレームからビデオフィードの第２フレームまでの物体の変化を検出し、変化の検出に応答して、物体および物体の変化を含むビデオフィードの一部分に対する解析を自動的に実行させることを備える方法に具現化されうる。この態様の他の実施例は、方法の動作を実行するよう構成された、対応するシステム、装置、および、コンピュータストレージデバイス上にエンコードされたコンピュータプログラムを含む。これらおよびその他の実施例は、各々、任意選択的に、以下の特徴の内の１または複数を含みうる。
【０００５】
いくつかの実施例において、ビデオフィードの上記部分の解析を実行させることは、物体の変化が検出される前に物体をキャプチャしたビデオフィードの第３フレームを選択し、ビデオフィードの表示順において第３フレームの後に生じたビデオフィードの第４フレームを選択すること、を含み、ビデオフィードの上記部分は、第３フレームと第４フレームとの間のビデオフレームの連続したフレームを含む。
【０００６】
いくつかの実施例において、ビデオフィードの上記部分の解析を実行させることは、ビデオフィードの上記部分をディスプレイデバイス上に再生させることを含む。
【０００７】
いくつかの実施例において、ビデオフィードの上記部分の解析を実行させることは、ビデオフィードの上記部分をより遅いフレームレートでディスプレイデバイス上に再生させることを含む。
【０００８】
いくつかの実施例において、ビデオフィードの上記部分の解析を実行させることは、ビデオフィードの上記部分を格納させることを含む。
【０００９】
いくつかの実施例において、物体は第１物体であってよく、ビデオフィードの上記部分の解析を実行させることは、第１物体に変化を引き起こした第２物体を識別し、第２物体を追跡することと、を含んでよい。
【００１０】
いくつかの実施例において、物体は第１物体であってよく、ビデオフィードの上記部分の解析を実行させることは、第１物体に変化を引き起こした第２物体を識別し、第２物体に対する顔認識解析を実行させること、を含んでよい。
【００１１】
いくつかの実施例において、物体は第１物体であってよく、ビデオフィードの上記部分の解析を実行させることは、第１物体に変化を引き起こした第２物体を識別し、第２物体の画像をキャプチャすること、を含んでよい。
【００１２】
いくつかの実施例において、物体物体は顔であってよく、物体の変化は、顔の回転であってよく、解析は、顔認識解析であってよい。
【００１３】
いくつかの実施例において、方法は、変化の検出に応答して、顔の画像をキャプチャさせることを備えてもよい。
【００１４】
いくつかの実施例において、方法は、変化の検出に応答して、第２ビデオフィードの一部分に対する第２解析を実行させることを備えてもよい。
【００１５】
いくつかの実施例において、ビデオフィードは、第１視点からのシーンのものであってよく、第２ビデオフィードは、第１視点とは異なる第２視点からのシーンのものであってよい。
【００１６】
いくつかの実施例において、ビデオフィードは、第１シーンの第１ビデオフィードであってよく、第２ビデオフィードは、第１シーンとは異なる第２シーンのものであってよい。
【００１７】
いくつかの実施例において、第２解析は、顔検出解析であってよい。
【００１８】
いくつかの実施例において、物体の変化は、色の変化、コントラストの変化、シーン内での位置の変化、または、物体の回転、の内の１つであってよい。
【００１９】
いくつかの実施例において、ビデオフィードは、シーンのライブビデオのものであってよい。
【００２０】
いくつかの実施例において、ビデオフィードは、シーンの事前記録されたビデオのものであってもよい。
【００２１】
いくつかの実施例において、ビデオフィードは、逆時系列で表示されてよく、ビデオフィードの上記部分の解析を実行させることは、事前記録されたビデオの一部分を順時系列で表示させることを含んでよい。
【００２２】
本開示は、さらに、１または複数のプロセッサに接続されているコンピュータ読み取り可能なストレージ媒体を提供しており、その媒体は、１または複数のコンピュータによる実行時に、本明細書で提供される方法の実施例に従った動作を１または複数のコンピュータに実行させる命令を格納する。
【００２３】
本開示は、さらに、本明細書で提供される方法を実施するためのシステムを提供する。システムは、１または複数のプロセッサと、１または複数のプロセッサに接続されているコンピュータ読み取り可能なストレージ媒体であって、１または複数のコンピュータによる実行時に、本明細書で提供される方法の実施例に従う動作を１または複数のコンピュータに実行させる命令を格納する、媒体と、を備える。
【００２４】
本開示に従った方法は、本明細書に記載の態様および特徴を任意の組み合わせで含んでよいことがわかる。すなわち、本開示に従った方法は、本明細書で具体的に記載する態様および特徴の組み合わせに限定されず、提供される態様および特徴の任意の組み合わせを含みうる。
【００２５】
添付の図面および以下の説明において、本開示の１または複数の実施形態の詳細について説明する。本開示の他の特徴および利点については、説明、図面、および、特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００２６】
【図１】本開示の実施例を実行できるシステム例を示す図。
【００２７】
【図２Ａ】本開示の実施例に従って、ビデオフィードシーンおよびビデオトリガイベントの例を示す図。
【図２Ｂ】本開示の実施例に従って、ビデオフィードシーンおよびビデオトリガイベントの例を示す図。
【図２Ｃ】本開示の実施例に従って、ビデオフィードシーンおよびビデオトリガイベントの例を示す図。
【００２８】
【図３】本開示の実施例に従って、ビデオフィードからのシーンの例と、ビデオトリガ解析の例とを示す図。
【００２９】
【図４】本開示の実施例に従って実行されうる処理例を示す図。
【００３０】
【図５】本開示の実施例を実行するために利用できるコンピュータシステム例を示す概略図。
【００３１】
様々な図面内の同様の符号は、同様の要素を示す。
【発明を実施するための形態】
【００３２】
本開示の実施例は、ビデオシーン内の物体の変化に基づく自動的なビデオ解析のトリガに関する。より具体的には、本開示の実施例は、他のビデオ解析または非ビデオベースの解析を実行するためのトリガとして物体の変化を監視する。例えば、ビデオフィードを見ている警備員が、屋外に異常に長い期間鞄が放置されていることに気づく場合がある。本開示の実施例は、警備員が鞄をトリガ物体として特定することを可能にしうる。鞄の属性（例えば、色、向き、位置）が変わると、ビデオのさらなる解析がトリガされうる。例えば、鞄の位置が変わると、ビデオのセグメントが格納されうる（例えば、変化が起こった前後の鞄を示すセグメント）。一部の例において、ビデオのセグメントは、例えば、警備員に警告するために、目立つモニタに表示（そして、繰り返し）されうる。一部の例では、顔検出アルゴリズムが、例えば、鞄を手に取った人物を識別するためにトリガされうる。
【００３３】
本開示の実施例は、ビデオ解析アルゴリズムを連続的に実行する必要性を低減することにより、計算リソースのより効率的な利用を実現しうる。例えば、本開示の実施例は、ビデオトリガイベントのみに応答して、計算集約的なビデオ解析アルゴリズムを実行してよく、一方、あまり計算集約的でないアルゴリズムが、より頻繁に、または、ビデオフィードのより広範囲な部分に実行される。一部の例において、ビデオトリガイベントは、ビデオフィードの価値の高い部分に計算集約的なアルゴリズムを集中させるために利用されうる。さらに、いくつかの実施例は、ビデオトリガイベントを含むビデオフィードの部分のみを格納し、したがって、レビューまたは調査の目的で長期間のビデオを格納または保管する必要性を低減することにより、メモリリソースをより効率的に利用しうる。
【００３４】
本開示の実施例について、文脈の例を参照しつつさらに詳述する。文脈の例は、ビデオ監視システムのためのビデオ処理システムを含む。しかしながら、本開示の実施例は、例えば、物体検出または追跡システム（例えば、他の物体（荷物など）のための検出システム）、交通カメラ監視システムにおけるナンバープレート検出、監視ビデオにおける武器検出、または、写真システム（例えば、写真入り身分証明書類を生成するためのシステム）など、他の適切な文脈で実現されてもよいことがわかる。
【００３５】
本明細書で用いられているように、「リアルタイム」という用語は、システムの処理制限、データおよび画像を正確に取得するのに必要な時間、ならびに、データおよび画像の変化の速度を前提として意図的な遅延なしにデータを伝送または処理することである。一部の構成において、「リアルタイム」は、システムがライブビデオソースまたは記録されたビデオソースからビデオフィードを受信するのと同時にビデオフィードを処理することと定義される。いくつかの実際の遅延がありうるが、それらの遅延は、一般に、ユーザにとって感知不能である。
【００３６】
図１は、本開示の実施例を実行できるシステム例１００を示す。一部の例において、システム１００は、ビデオ監視システムでありうる。システム１００は、ビデオ処理システム１０２、表示デバイス１０４、ビデオ入力構成要素１０６、および、ビデオ入力構成要素１０８を備える。本明細書で論じるように、ビデオ処理システム１０２は、１または複数のビデオ入力構成要素１０６、１０８からビデオフィードを受信し、他の解析または他の動作を開始するために利用できるトリガ物体をビデオフィード内に確立できる。一部の例において、ビデオ処理システム１０２は、ビデオ解析（例えば、物体検出、物体追跡）を実行するよう構成される。例えば、ビデオ処理システム１０２は、ビデオ解析を実行するためのソフトウェアアルゴリズムを備えうる。
【００３７】
一部の例において、ビデオ処理システム１０２は、ビデオトリガ解析を実行できる１または複数の計算デバイスを備えてよい。例えば、ビデオ処理システム１０２は、１または複数のサーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、および、その他の適切なデバイスを備える。一部の例において、ビデオ処理システム１０２は、１または複数の電子ストレージデバイス１２０を備える。一部の例において、電子ストレージデバイス１２０は、ビデオフィードの一部（例えば、１または複数のビデオフィードの一部が一時的にキャッシュされうる）。一部の例において、ビデオ処理システム１０２は、１または複数の表示デバイス１０４を備えるか、または、それに接続されてよい（例えば、液晶ディスプレイ（ＬＣＤ）、ブラウン管（ＣＲＴ）ディスプレイ、または、発光ダイオード（ＬＥＤ）ディスプレイ）。
【００３８】
ビデオ入力構成要素１０６、１０８は、それぞれのシーン１１０のビデオフィードをビデオ処理システム１０２に供給するために、ビデオ処理システム１０２と通信可能に接続される。一部の例において、ビデオ入力構成要素１０６、１０８は、ネットワークを通してビデオ処理システム１０２に接続されうる。例えば、ビデオ入力構成要素１０６、１０８は、ネットワークを通してビデオ処理システム１０２と通信するためのネットワーク通信インターフェースを備えうる。ネットワークは、任意の数のモバイルクライアント、固定クライアント、および、サーバを接続するローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、アナログまたはデジタル有線および無線電話ネットワーク（例えば、４Ｇおよびロングタームエボリューション（ＬＴＥ）ネットワーク）、衛星ネットワーク、１または複数の無線アクセスポイント（例えば、ＷｉＦｉ）、もしくは、任意の適切なそれらの組みあわせなど、ネットワークまたはネットワークの組みあわせを含みうる。一部の例において、ビデオ入力構成要素１０６、１０８によって供給されるビデオフィードは、２０フレーム毎秒（ｆｐｓ）を超えるフレームレート（例えば、２４ｆｐｓ、３０ｆｐｓ、または、４８ｆｐｓ）でキャプチャされた画像を含む。一部の例において、ビデオフィードは、２０ｆｐｓ未満のフレームレート（例えば、１１〜１９ｆｐｓ、６〜１０ｆｐｓ、または、５ｆｐｓ以下）を有しうる。一部の例において、ビデオフィードのフレームは、下流のデジタル処理のためにデジタル化される。一部の例において、フレーム内の画像は、８００×６００ピクセル、１０２４×７６８ピクセル、１１５２×８６４ピクセル、または、１２８０×１０２４ピクセルの空間解像度を有しうる。
【００３９】
一部の例において、ビデオ入力構成要素１０６は、「ライブ」すなわち「リアルタイム」ビデオフィードを供給する。一部の例において、「ライブ」または「リアルタイム」ビデオフィードは、ビデオ画像がキャプチャされた時から意図的な遅延なしにビデオ入力構成要素１０６によって供給されるビデオフィードとして定義される。換言すると、「ライブ」または「リアルタイム」ビデオフィードは、ビデオ撮像デバイスから提供されず、ビデオの以前の記録から提供されない。一部の例において、ビデオ入力構成要素１０６は、ビデオ撮像デバイス（例えば、ビデオカメラ、赤外線カメラ、電荷結合素子（ＣＣＤ）、ＩＰカメラ、または、その他の適切なデバイス）である。一部の例において、撮像デバイスは、パン・ズーム・チルト（ＰＺＴ）デバイスであってもよい。
【００４０】
一部の例において、ビデオ入力構成要素１０８は、記録されたビデオフィードを供給する。換言すると、ビデオ入力構成要素１０８は、ビデオ撮像デバイス１１２によって取得されてデジタルまたは物理ビデオストレージフォーマット（例えば、ＭＰＥＧ、ＡＶＩ、ＤＶＤ、ブルーレイディスクなど）で格納されたビデオフィードを供給する。ビデオ入力構成要素１０８は、ビデオ撮像デバイス１１２およびビデオストレージデバイス１１４を備えてよい。ビデオストレージデバイスは、例えば、電子ストレージ（例えば、コンピュータメモリまたはＣＤ／ＤＶＤ書き込み可能なデバイス）を備えている計算デバイス（例えば、サーバ）であってよい。一部の例において、ビデオ撮像デバイス１１２は、例えば、ビデオカメラ、赤外線カメラ、ＣＣＤ、ＩＰカメラ、または、その他の適切なデバイスであってよい。一部の例において、撮像デバイス１１２は、ＰＺＴデバイスであってもよい。
【００４１】
動作中、ビデオ処理システム１０２は、シーン１１０のビデオフィードを受信する。例えば、シーン１１０は、公共施設（例えば、公共交通機関）でのシーンであってよい。シーン１１０は、複数の物体（例えば、列車のプラットフォーム、車輌、ベンチ、乗客、および、荷物）を含みうる。シーン１１０内の物体は、トリガ物体（例えば、放置された鞄、車輌、人物、人物の顔など）として選択できる。一部の例において、物体は、ユーザ入力に基づいてトリガ物体として選択されうる。一部の例において、物体は、選択基準のセットに基づいて、自動的にトリガ物体として選択されうる。
【００４２】
例えば、シーン１１０内の各物体は、ビデオフィードのフレーム（画像）内の領域（例えば、ピクセルの領域）を占める。追跡アルゴリズムが、物体を表すフレーム内のピクセルの領域（例えば、ピクセルブロブ）を識別して、ピクセル領域の変化を監視しうる。一部の例において、ビデオフィードのフレーム内で選択された物体が分割されうる。例えば、ビデオ処理システムは、（例えば、色、コントラスト、または、ユーザが選択した輪郭に基づいて）描写される選択された物体の境界輪郭を識別し、その物体をビデオフィードのフレーム内のそれの環境およびその他の物体から分割できる。一部の例において、ユーザは、ビデオフィードのフレーム内で物体によって占められた画像内のピクセルの領域を選択することができ、画像処理アルゴリズムは、物体縁部の改善された描写を生成するために輪郭を微調整するために利用されうる。
【００４３】
物体がトリガ物体として選択されると、ビデオ処理デバイス１０２は、選択された物体を追跡し、さらなる解析のためのトリガとして利用するために物体の変化を監視する。一部の例では、解析をトリガする物体の変化が、トリガ物体の「トリガイベント」と見なされうる。例えば、トリガイベントは、位置、向き、コントラスト、色、または、表情（例えば、顔の表情）の変化を含みうるが、これらに限定されない。一部の例では、物体の周りの領域が、トリガとして機能しうる。例えば、物体の環境の変化が、さらなる解析をトリガする変化として機能しうる。例えば、選択された物体からの閾値距離（例えば、ピクセル数）の範囲内に近づく別の物体（例えば、人物）。
【００４４】
より具体的には、画像内の物体（例えば、放置された鞄）が、選択されて分割されると、その物体は、追跡アルゴリズムで追跡されうる。例えば、追跡アルゴリズムは、同じ物体のエッジ検出を提供するために、ビデオフィード内の後続のフレームに分割を適用できる。一部の例において、分割された物体は、後の物体追跡のためのブロブとして表現されうる。例えば、追跡アルゴリズムは、特に、移動（例えば、位置の変化）、形状（例えば、向きの変化）、色、コントラスト、または、表情（例えば、顔検出／識別アルゴリズムによる）の変化などのトリガイベントについて物体を監視できる。かかるトリガイベントは、ビデオフィードの２以上の画像フレーム間の物体を表す画像ピクセルにおける差を識別することによって検出されうる。
【００４５】
一部の例において、物体の変化が検出されると、ビデオ処理デバイス１０２は、そのビデオフィードまたは別のビデオフィードにさらなる解析を実行できる。トリガされうる解析は、以下を含むが、これに限定されない：ビデオフィードの一部の再生。例えば、物体の変化が起きる前から変化後の時点までのビデオフィードの一部が、表示デバイス１０４に繰り返し表示されてよい。ビデオフィードの表示モードが変更されてもよい。例えば、ビデオフィードは、繰り返されて、スローモーションに移行されてよい（例えば、フレームレートが遅くされてよい）。ビデオフィードのフレームが、静止画像としてキャプチャされてもよい。ビデオフィードの一部が、（例えば、電子ストレージデバイス１２０に）格納されてもよい。ビデオフィードの表示は、リバースされてもよい。例えば、鞄を置いた人物の正体を決定するために、ビデオフィードが、逆再生（例えば、時間進行を逆転）されてもよい。鞄は、トリガ物体として選択されてよい。したがって、鞄の位置が変化すると、ビデオフィードは、通常速度まで遅くされ、順方向の時間進行での表示に移行される（例えば、鞄を置いた人物が、逆再生されたビデオフィード内で現れて鞄を「持ち上げる」場合）。
【００４６】
一部の例において、物体は、トリガ物体として自動的に選択されうる。例えば、ビデオ処理システム１０２は、物体トリガ解析とは別に、物体検出、識別、または、追跡アルゴリズムをビデオフィードに実行できる。一部の例において、ビデオ処理システム１０２は、物体トリガ解析とは別に、顔検出および顔認識アルゴリズムをビデオフィードに実行できる。上記のビデオ処理アルゴリズムのいずれかからのデータが、トリガ物体を自動的に選択するために用いられてよい。例えば、ビデオ処理システム１０２は、ビデオ物体をトリガ物体として自動的に選択するための自動選択基準を備えてよい。自動選択基準は、例えば、特定の物体の識別、所定の期間放置された物体（例えば、鞄）の識別、特定の人物（例えば、ＦＢＩ監視リストの人物）の識別を含みうる。
【００４７】
いくつかの実施例において、トリガイベントは、例えば、誤検出トリガを最小限に抑えるために、トリガ閾値を備えてもよい。例えば、トリガ閾値は、トリガイベントに影響するのにトリガ物体の特定の側面がどれだけ変化しなければならないかを定義できる。例えば、照明などの環境パラメータおよびビデオフレームの領域内の信号対ノイズ比（ＳＮＲ）が、画像品質に影響しうる。したがって、トリガ閾値は、環境パラメータおよびＳＮＲに対応するように設定されうる。さらに、解析をトリガすべきではない物体のささいな変化または漸進的な変化が起こりうる（例えば、日光または天気の変化によって引き起こされるコントラストの変化）。したがって、トリガ閾値は、かかる漸進的な変化を考慮するように設定されうる。一部の例において、トリガ閾値は、動的であってよい。例えば、トリガ閾値は、脅威レベルの変化に基づいて（例えば、情報報告、テロリストの疑いのある人物の活動、または、民衆を引きつける公共のイベントに応じて）調整されてよい。
【００４８】
いくつかの実施例において、トリガ物体の１または複数の変化が、トリガイベントとして定義されうる。各トリガイベントは、同じまたは異なるタイプの解析の実行をトリガしうる。換言すると、異なる動作（例えば、解析）が、同じトリガ物体の異なるトリガイベントに関連づけられてよい。例えば、トリガ物体の形状の変化（例えば、物体の回転）が、例えば、物体識別データベース用の画像を取得するために、１または複数の静止画像のキャプチャをトリガしうる。しかしながら、例えば、トリガ物体の位置の変化が、（例えば、物体を移動させた人物を識別するために）トリガ物体の近くのビデオフィードフレームの領域に実行されるように顔認識解析をトリガしてもよい。一部の例において、或る特定のトリガイベントが、実行される複数の解析をトリガしてもよい。例えば、トリガ物体の位置の変化が、顔認識解析の実行に加えて、ビデオフィードの一部を格納し、ビデオフィードのその部分のループを警備室のディスプレイでスローモーションで再生するようにトリガしてもよい。
【００４９】
いくつかの実施例において、トリガ解析は、ビデオフィードのフレーム全体ではなく、トリガ物体に近接するビデオ画像フレームの空間領域だけに実行されてよい。例えば、トリガ物体は、鞄を移動させる人物を識別するために顔認識解析を実行させる鞄の動きであるトリガイベントに関連する鞄であってよい。一部の例において、顔認識解析は、トリガ物体に近接する領域においてのみ実行されうる。かかる実施例は、例えば、ビデオフィードの価値の高い部分にリソース集約的な解析を集中させることにより、計算リソースのより効率的な利用を実現しうる。
【００５０】
一部の例において、トリガイベントは、１または複数の解析をトリガするために、複数のトリガ物体の変化を必要とするよう構成されてもよい。一部の例において、ビデオ処理システム１２０は、写真システムでありうる。トリガイベントは、ビデオフィード内の複数の人物（例えば、トリガ物体）の表情が変化した時に（例えば、シーン１１０内のすべての人物が同時に笑った時、または、シーン１１０内のすべての人物が同時に目を開いた時に）ビデオフィードフレームの静止画像をキャプチャすることであってよい。
【００５１】
いくつかの実施例において、（例えば、ライブビデオフィードについて）物体におけるトリガイベントの前のビデオのフレームに物体トリガ解析を実行できるように、ビデオフィードの一部の一時キャッシュが（例えば、電子ストレージデバイス１２０で）維持される。一部の例において、ビデオフィードのキャッシュされる部分は、ビデオ処理システム１０２の保存能力に応じて、例えば、数分のビデオフレーム（例えば、５、１０、３０分）、数時間のビデオフレーム（例えば、１、２、６、１２時間）、または、数日以上のビデオフレーム（例えば、２日、１週間、１ヶ月など）であってよい。
【００５２】
一部の例において、ビデオトリガ物体は、ビデオ解析以外の動作をトリガするために用いられてもよい。その他のトリガされる動作は、例えば、警告を送信する（例えば、警備員の携帯電話に警告を送信する）動作、アラーム（例えば、ビル警備室内のアラーム）を起動する動作、カメラ機能（例えば、ＰＺＴカメラのズーム、回転、パン）を制御する動作、ドアを施錠する動作、または、救急隊員に通報する（例えば、警察に通報する）動作を含みうる。例えば、鞄の移動は、警備員に警告するために、警備室内の警告またはアラームをトリガしうる。
【００５３】
図２Ａ〜図２Ｃは、本開示の実施例に従って、ビデオフィードシーンおよびビデオトリガイベントの例を示す図である。より具体的には、図２Ａ〜図２Ｃは、ビデオトリガに応答して解析を実行するためのいくつかの技術例を示す図である。
【００５４】
図２Ａは、複数のフレーム２０４を含むビデオフィード２０２と、ビデオフィード２０２の２つのフレーム（それぞれ、２０４ａおよび２０４ｂ）からのシーン２０６、２０８とを示す図である。図２Ａは、位置変化トリガイベントの例を示す。シーン２０６、２０８は、ベンチ２１０および書類鞄２１２を示している。例えば、シーン２０６において、書類鞄２１２は、（上述のように）自動的またはユーザ入力のいずれかによって、トリガ物体として選択される。フレーム２０４ａと２０４ｂとの間で、シーン２０６および２０８内の書類鞄２１２の位置が変化する。書類鞄２１２は、人物２１４によってベンチ２１０から移動される。
【００５５】
ビデオ処理システム（例えば、図１のビデオ処理システム１０２）は、書類鞄２１２の位置の変化をトリガイベントとして識別できる。それに応答して、ビデオ処理システムは、トリガイベント（書類鞄２１２の位置の変化）に関連づけられた動作を決定し、その動作を実行できる。さらに、一部の例において、ビデオ処理システムは、動作を実行すべきビデオフィードの一部を選択できる。例えば、トリガイベントに応答して、ビデオ処理システムは、書類鞄２１２を移動させた人物２１４を識別するために、書類鞄２１２に近接するフレーム２０４ｂ（シーン２０８）の領域２１６に顔検出および認識解析を実行できる。
【００５６】
別の例として、トリガイベントに応答して、ビデオ処理システムは、ビデオフィード２０２の一部を格納するよう選択できる。例えば、ビデオ処理システムは、ビデオフィードの開始時刻（例えば、開始フレーム）と終了時刻（例えば、終了フレーム）との間のビデオフィードの部分を選択できる。開始ポイントは、トリガイベント前の期間であってよい（例えば、フレーム２０４ｃなど、トリガイベント前のいくつかのフレーム）。終了ポイントは、トリガイベント後の期間であってよい（例えば、フレーム２０４ｄなどトリガイベント後のいくつかのフレーム）。一部の例において、ビデオフィードの選択部分は、完全にトリガイベントの前または後であってもよい。すなわち、ビデオフィードの選択部分は、トリガイベントを示すフレーム（例えば、フレーム２４０ａおよび２０４ｂの両方）を含まなくてもよい。例えば、開始ポイントが、トリガイベント前の期間であり（例えば、フレーム２０４ｃ）、終了ポイントが、トリガイベント前であってもよい（例えば、フレーム２０４ａ）。
【００５７】
一部の例において、ビデオ処理システムは、動作を直接実行する代わりに、動作を実行するために別のデバイス（例えば、図１のビデオ入力デバイス１０６、１０８または別のコンピュータシステム）に命令を送信してもよい。例えば、ビデオ処理システムは、さらなる解析（例えば、顔認識解析）を実行するための命令と共にビデオフィードの格納部分を別のコンピュータシステムに送信できる。
【００５８】
一部の例において、トリガイベントに応答して、ビデオ処理システムは、トリガ物体の運動ベクトル２１８を決定できる。例えば、ビデオ処理システムは、物体追跡アルゴリズムを用いて、複数のフレーム２０４にわたるトリガ物体の移動を測定し、シーンの端（例えば、シーン２０８の右端）に向かう運動ベクトル２１８を決定することができる。一部の例において、ビデオ処理システムは、トリガイベントに応答して、人物２１４（例えば、第２物体）を追跡できる。さらに、ビデオ処理システムは、人物２１４の運動ベクトル２１８を決定できる。一部の例において、ビデオ処理システムは、トリガ物体および第２物体の運動ベクトル２１８を比較することによって、第２物体（例えば、人物２１４）がトリガ物体（例えば、書類鞄２１２）への変化を引き起こしたことを確認できる。例えば、運動ベクトル２１８の方向および大きさが誤差閾値内で一致する場合、ビデオ処理システムは、第２物体がトリガ物体を持っているかまたは移動させていると決定できる。
【００５９】
一部の例において、トリガイベントによってトリガされる動作は、トリガ物体（または、人物２１４などの第２追跡物体）の移動の方向に依存しうる。例えば、図３を参照して後に詳述するように、トリガ物体がシーン（例えば、シーン２０８）を横切ってまたはその外に移動する方向が、実行される動作を決定するために用いられてよい。例えば、書類鞄２１２が、シーン２０８の右側に向かって移動した場合に、ビデオ処理システムは、シーン２０８の右でシーンをキャプチャしている別のカメラからのビデオフィードにビデオ処理解析を実行できる。一部の例において、ビデオ処理システムは、書類鞄２１２（および人物２１４）がシーン２０８の外に移動する前に、ビデオフィード２０２を供給しているカメラを右にパン（またはズームアウト）させることができる。
【００６０】
一部の例において、あるトリガ物体のトリガイベントが、第２トリガ物体を選択するために用いられてもよい。例えば、書類鞄２１２の位置の変化は、書類鞄を移動させた人物２１４を検出すると共に別の動作の第２トリガ物体として人物２１４を選択するためのトリガイベントとして選択されてもよい。
【００６１】
図２Ｂは、複数のフレーム２０４を含むビデオフィード２０２と、ビデオフィード２０２の２つのフレーム（それぞれ、２０４ａおよび２０４ｂ）からのシーン２０６、２０８とを示す図である。図２Ｂは、物体回転トリガイベントの例を示す。例えば、シーン２０６において、書類鞄２１２は、（上述のように）自動的またはユーザ入力のいずれかによって、トリガ物体として選択されうる。フレーム２０４ａと２０４ｂとの間で、シーン２０６および２０８内の書類鞄２１２の向き（例えば、形状）が変化する。書類鞄２１２は、人物２１４によって９０°回転される。かかる動作は、人物２１４がシーン２０８から離れようとしていることを示唆しうるものであり、上述したようにビデオ処理システムに動作を実行させることができる。
【００６２】
別の例として、人物２１４の顔２３０が、（上述のように）自動的またはユーザ入力のいずれかによってトリガ物体として選択されてもよい。フレーム２０４ａと２０４ｂとの間で、シーン２０６および２０８内の人物２１４の顔２３０の向きが変化し；人物２１４はカメラに向かって向きを変える。ビデオ処理システムは、例えば、顔検出アルゴリズムを用いて、人物２１４の顔２３０の向きの変化を検出できる。人物２１４が顔をカメラに向かって向きを変えるのに応答してビデオ処理システムによって実行される動作は、例えば、人物２１４の１または複数の静止画像をキャプチャする動作であってよい。
【００６３】
図２Ｃは、複数のフレーム２０４を含むビデオフィード２０２と、ビデオフィード２０２の２つのフレーム（それぞれ、２０４ａおよび２０４ｂ）からのシーン２０６、２０８とを示す図である。図２Ｃは、複数のトリガ物体に基づいたトリガイベントの一例を示す。例えば、シーン２０６において、書類鞄２１２および人物２１４は、（上述のように）自動的またはユーザ入力のいずれかによって、トリガ物体として選択されうる。さらに、トリガ関係性が、２つのトリガ物体（例えば、書類鞄２１２および人物２１４）の間に確立されてよい。例えば、図２Ａを参照して上述したように、ビデオ処理システムは、運動ベクトルを用いて、人物２１４が書類鞄２１２を持っているかまたは移動させていると決定できる（例えば、２つの物体の運動ベクトルが、図２Ａに示したように、相関しうる）。さらに、ビデオ処理システムは、人物２１４と書類鞄２１２との間のトリガ関係性を確立できる。例えば、ビデオ処理システムは、２つのトリガ物体が同様のパターンで移動していることを識別し、２つのトリガ物体が互いに異なって動き始めた場合（例えば、人物２１４および書類鞄２１２が離れるかまたは互いに離れて移動した場合）に動作をトリガするためのトリガイベントを設定できる。例えば、かかるトリガイベントは、２つのトリガ物体の間の距離が閾値を超えた時、または、相関していた物体の運動ベクトルが無相関になった時に、検出されうる。
【００６４】
例えば、フレーム２０４ａと２０４ｂとの間で、それぞれ人物２１４および書類鞄２１２の運動ベクトル２４４、２４６は、無相関になっている。人物２１４の運動ベクトル２４４は右に移動しているが、書類鞄２１２の運動ベクトル２４６は左に移動している。例えば、シーン２０８において、別の人物２４０が到着し、第１人物２１４から書類鞄２１２を受け取る。第１人物２１４および書類鞄２１２の分離（例えば、第１人物２１４が第２人物２４０に書類鞄２１２を手渡すこと）によって引き起こされたトリガイベントに応答して、ビデオ処理システムは、例えば、第２人物２４０を識別するために、フレーム２０４ｂ（および前後のフレーム）の領域２４２において顔認識解析を実行できる。
【００６５】
図３は、本開示の実施例に従って、それぞれビデオフィード３０２、３１２、および、３２２からのシーン３００、３１０、３２０の例と、ビデオトリガ解析の例とを示す図である。ビデオフィード３０２、３１２、および、３２２は、それぞれ、複数のフレーム３０４、３１４、および、３２４を含む。ビデオフィード３０２、３１２、および、３２２は、各々、異なるビデオ入力デバイスによってキャプチャされる。シーン３００および３１０は、２つの異なる視点からキャプチャされた同様のシーンを示す。より具体的には、シーン３００および３１０は、例えば、地下鉄の駅にあるベンチ３４０の２つの視点を示している。書類鞄３４４を持つ同じ人物３４２が、シーン３００および３１０の両方で異なる視点から示されている。ビデオフィード３２２のシーン３２０は、地下鉄の駅の出口３４６と、出口３４６から地下鉄の駅を出る人物３４２とを示している。
【００６６】
図３は、１つのビデオフィード３０２からのトリガイベントが、１または複数の他のビデオフィード３１２、３２２の解析をトリガする一実施例を示す。例えば、図２Ａを参照して上述したように、運動ベクトル３５０が、トリガイベントに応答してどの動作を実行するのかを決定するために用いられてよい。図の例では、人物３４２または書類鞄３４４が、運動ベクトル３５０に関連するトリガ物体になりうる。運動の方向は、ビデオフィード３１２および３２２のどちらに動作が実行されるのかを決定するために用いられてよい。例えば、人物３４２がシーン３００から離れて右に移動した場合に、ビデオフィード３１２が、（矢印３６０によって示すように）警備室のディスプレイに自動的に表示されうる。別の例として、人物３４２がそのシーンから離れて左に移動した場合に、ビデオフィード３２２が、（矢印３６２によって示すように）警備室のディスプレイに自動的に表示されうる。
【００６７】
一部の例において、シーン３００、３１０、および、３２０が、一連のトリガイベントを表してもよい。例えば、人物３４２がシーン３００から離れて右に移動することが、（矢印３６０によって示されるように）ビデオフィード３１２（シーン３１０）内でトリガ物体として人物３４２を検出、追跡、および、選択するように、ビデオ処理システムをトリガしうる。次いで、人物３４２がシーン３１０から離れて下方に（例えば、カメラに向かって）移動することが、（矢印３６４で示すように）ビデオフィード３２２（シーン３２０）内の人物３４２を検出および追跡するように、ビデオ処理システムをトリガしうる。
【００６８】
図４は、本開示の実施例で実行できる処理例４００を示すフローチャートである。いくつかの実施例において、処理例４００は、１または複数のコンピュータデバイスを用いて実行される１または複数のコンピュータ実行可能なプログラムを用いて実現されうる。いくつかの実施例において、処理例４００は、ビデオ処理デバイス（図１のビデオ処理システム１０２など）によって実行されうる。
【００６９】
シーンのビデオフィードが受信される（工程４０２）。例えば、ビデオフィードは、ビデオ入力構成要素（例えば、図１のビデオ入力構成要素１０６、１０８）から受信されうる。ビデオフィードは、ライブビデオフィードまたは記録ビデオフィードであってよい。シーン内の物体が追跡される（工程４０４）。例えば、物体は、自動的にまたはユーザ入力に基づいて選択されうる。物体は、トリガ物体として選択されてよく、１または複数のトリガイベントが、その物体に関連づけられうる。一部の例において、物体に関連づけられた各トリガイベントは、トリガイベントが発生した場合に実行される動作に関連づけられうる。トリガイベントは、例えば、物体の変化でありうる。物体の変化が検出される（工程４０６）。例えば、物体の変化は、移動（例えば、位置の変化）、形状（例えば、向きの変化）、色、コントラスト、または、表情（例えば、顔検出／識別アルゴリズムによる）の変化であってよいが、それらに限定されない。例えば、変化は、動作に関連づけられたトリガイベントであってよい。
【００７０】
物体の変化の検出に応答して、解析がビデオフィードの一部に実行される（工程４０８）。例えば、変化の検出に応答して、さらなる解析が、そのビデオフィードまたは別のビデオフィードに実行されてよい。トリガされうる解析は、ビデオフィードの表示モードを変更すること（例えば、通常速度からスローモーションへの変更、逆再生から順再生への変更）、ビデオフィードの一部が表示デバイス上で繰り返し表示されうること、ビデオフィードの一部が格納されうること、ビデオフィードのフレームが静止画像としてキャプチャされうること、顔認識解析がビデオフィードに実行されうること、または、物体検出解析がビデオフィードに実行されうること、を含むが、これらに限定されない。
【００７１】
一部の例において、ビデオ処理デバイスは、リアルタイムで処理４００を実行できる。例えば、処理４００は、ビデオフィードが受信されている時にライブビデオフィードに対してリアルタイムで実行されうる。例えば、処理４００は、ビデオが表示デバイス上に表示されている時にライブまたは記録ビデオフィードに対してリアルタイムで実行されうる。
【００７２】
図５は、本開示の実施例を実行するために利用できるコンピュータシステム例５００を示す概略図である。システム５００は、本明細書に記載の実施例に関して記載した動作に利用できる。例えば、システム５００は、本明細書で論じた計算構成要素のいずれかまたはすべてに含まれてよい。システム５００は、プロセッサ５１０、メモリ５２０、ストレージデバイス５３０、および、入力／出力デバイス５４０を備える。構成要素５１０、５２０、５３０、５４０の各々は、システムバス５５０を用いて相互接続される。プロセッサ５１０は、システム５００内で実行するために命令を処理することができる。一実施例において、プロセッサ５１０は、シングルスレッドプロセッサである。別の実施例において、プロセッサ５１０は、マルチスレッドプロセッサである。プロセッサ５１０は、入力／出力デバイス５４０上にユーザインターフェースのためのグラフィック情報を表示するために、メモリ５２０またはストレージデバイス５３０に格納された命令を処理することができる。
【００７３】
メモリ５２０は、システム５００内の情報を格納する。一実施例において、メモリ５２０は、コンピュータ読み取り可能な媒体である。一実施例において、メモリ５２０は、揮発性メモリユニットである。別の実施例において、メモリ５２０は、不揮発性メモリユニットである。ストレージデバイス５３０は、システム５００にマスストレージを提供することができる。一実施例において、ストレージデバイス５３０は、コンピュータ読み取り可能な媒体である。様々な異なる実施例において、ストレージデバイス５３０は、フロッピーディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、または、テープデバイスであってよい。入力／出力デバイス５４０は、システム５００に入力／出力動作を提供する。一実施例において、入力／出力デバイス５４０は、キーボードおよび／またはポインティングデバイスを含む。別の実施例において、入力／出力デバイス５４０は、グラフィカルユーザインターフェースを表示するための表示ユニットを含む。
【００７４】
本明細書に記載した主題および機能的動作の実施例は、デジタル電子回路、有形で実装されるコンピュータソフトウェアまたはファームウェア、本明細書に開示した構造およびそれらの構造の等価物を含むコンピュータハードウェア、もしくは、それらの１または複数の組みあわせの中に実装されうる。本明細書に記載の主題の実施例は、１または複数のコンピュータプログラム（すなわち、データ処理装置によって実行されるため、または、データ処理装置の動作を制御するための、有形の非一時的なプログラムキャリアにエンコードされたコンピュータプログラム命令の１または複数のモジュール）として実装されてもよい。コンピュータストレージ媒体は、機械読み取り可能なストレージデバイス、機械読み取り可能なストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、もしくは、それらの内の１または複数の組み合わせであってよい。
【００７５】
「データ処理装置」という用語は、データ処理ハードウェアのことであり、例えば、プログラム可能なプロセッサ、コンピュータ、もしくは、複数のプロセッサまたはコンピュータなど、データを処理するためのすべての種類の装置、デバイス、および、マシンを包含する。装置は、例えば、中央処理装置（ＣＰＵ）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、または、ＡＳＩＣ（特定用途向け集積回路）など、専用の論理回路でもあってもよいし、専用の論理回路を含んでもよい。いくつかの実施例において、データ処理装置および／または専用論理回路は、ハードウェアベースおよび／またはソフトウエアベースであってよい。装置は、任意選択的に、コンピュータプログラムのための実行環境を作り出すコード（例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、もしくは、それらの内の１または複数の組みあわせを構成するコード）を備えることができる。本開示は、従来のオペレーティングシステム（例えば、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、Ｗｉｎｄｏｗｓ、ＭａｃＯＳ、Ａｎｄｒｏｉｄ、ｉＯＳ、または、任意のその他の適切な従来のオペレーティングシステム）を備えているまたは備えていないデータ処理装置の利用を想定する。
【００７６】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、または、コードとも呼ばれうる）は、コンパイルまたは解釈された言語もしくは宣言型言語または手続き型言語など、任意の形態のプログラミング言語で書かれてよく、スタンドアローンプログラムとして、もしくは、モジュール、コンポーネント、サブルーチン、または、計算環境内での利用に適したその他のユニットなど、任意の形態で配備されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してよいが、必ずしもその必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部（例えば、マークアップ言語文書に格納された１または複数のスクリプト）、そのプログラム専用の単一のファイル、または、複数の協調的なファイル（例えば、１または複数のモジュール、サブプログラム、または、コードの一部を格納するファイル）に格納されてよい。コンピュータプログラムは、１つのコンピュータ上で実行されるように配備されてもよいし、１つの場所に位置するかまたは複数の場所にわたって分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備されてもよい。様々な図に示したプログラムの部分は、様々なオブジェクト、メソッド、または、その他のプロセスを通して様々な特徴および機能を実施する個々のモジュールとして示されているが、プログラムは、その代わりに、サブモジュール、サードパーティサービス、コンポーネント、ライブラリなどを必要に応じて備えてもよい。逆に、様々なコンポーネントの特徴および機能は、必要に応じて単一のコンポーネントに組み込まれてもよい。
【００７７】
本明細書に記載の処理および論理フローは、１または複数のプログラム可能なコンピュータが、入力データに作用して出力を生成することによって機能を実行するための１または複数のコンピュータプログラムを実行することで実行されうる。処理および論理フローは、専用の論理回路（例えば、中央処理装置（ＣＰＵ）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、または、ＡＳＩＣ（特定用途向け集積回路））によって実行されてもよく、装置は、かかる専用の論理回路として実装されてもよい。
【００７８】
コンピュータプログラムの実行に適したコンピュータは、汎用または専用マイクロプロセッサまたはその両方、もしくは、任意のその他の種類の中央処理装置以下を含む（例えば、基づきうる）。一般に、中央処理装置は、リードオンリーメモリまたはランダムアクセスメモリもしくはその両方から命令およびデータを受信する。コンピュータの基本的な要素は、命令を実行するための中央処理装置、ならびに、命令およびデータを格納するための１または複数のメモリデバイスである。一般に、コンピュータは、データを格納するための１または複数のマスストレージデバイス（例えば、磁気、光磁気ディスク、または、光学ディスク）をさらに備えるか、もしくは、そこからデータを受信または転送またはその両方を行うように動作可能に接続される。しかしながら、コンピュータは、かかるデバイスを有する必要はない。さらに、コンピュータは、別のデバイス（例えば、いくつかの例を挙げると、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、携帯オーディオまたはビデオプレーヤ、ゲーム機、グローバルポジショニングシステム（ＧＰＳ）レシーバ、または、ポータブルストレージデバイス（ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ））内に内蔵されてもよい。
【００７９】
コンピュータプログラム命令およびデータを格納するのに適した（必要に応じて、一時的または非一時的な）コンピュータ読み取り可能媒体は、例えば、半導体メモリデバイス（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、および、フラッシュメモリデバイス）；磁気ディスク（例えば、内部ハードディスクまたはリムーバブルディスク）；光磁気光学ディスク；ならびに、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクなど、すべての形態の不揮発性メモリ、媒体、および、メモリデバイスを含む。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データベーステーブル、ビジネスおよび／または動的情報を格納するレポジトリ、ならびに、任意のパラメータ、変数、アルゴリズム、命令、ルール、制約、または、それらに対する参照を含む任意のその他の適切な情報など、様々なオブジェクトまたはデータを格納しうる。さらに、メモリは、ログ、ポリシー、セキュリティまたはアクセスデータ、報告ファイルなど、任意の他の適切なデータを含んでもよい。プロセッサおよびメモリは、専用の論理回路によって補完されてもよいし、そこに組み込まれてもよい。
【００８０】
ユーザとの相互作用を提供するために、本明細書に記載の主題の実施例は、ユーザに情報を表示するための表示デバイス（例えば、ＣＲＴ（ブラウン管）、ＬＣＤ（液晶ディスプレイ）、または、プラズマモニタなど）と、キーボードと、ポインティングデバイス（例えば、ユーザがコンピュータに入力を提供するためのマウスまたはトラックボール）とを有するコンピュータに実装されてよい。他の種類のデバイスが、ユーザとの相互作用を提供するために用いられてもよく；例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（例えば、視覚フィードバック、音声フィードバック、または、触覚フィードバック）であってよく；ユーザからの入力は、音響入力、音声入力、または、触覚入力など、任意の形態で受信されてよい。さらに、コンピュータは、ユーザによって用いられるデバイスに対して文書を送受信することによって（例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって）ユーザと相互作用できる。
【００８１】
「グラフィカルユーザインターフェース」すなわちＧＵＩという用語は、１または複数のグラフィカルユーザインターフェースならびに特定のグラフィカルユーザインターフェースの表示の各々を記述するために単数形または複数形で利用されうる。したがって、ＧＵＩは、任意のグラフィカルユーザインターフェースを表してよく、情報を処理して情報の結果をユーザに効率的に提示するウェブブラウザ、タッチスクリーン、または、コマンドラインインターフェース（ＣＬＩ）を含むが、これらに限定されない。一般に、ＧＵＩは、ビジネススイートのユーザによって操作可能な相互作用フィールド、プルダウンリスト、ボタンなど、複数のユーザインターフェース（ＵＩ）要素（一部または全部がウェブブラウザに関連する）を備えうる。これらおよびその他のＵＩ要素が、ウェブブラウザの機能に関連してもよいし、表してもよい。
【００８２】
本明細書に記載の主題の実施例は、（例えば、データサーバとしての）バックエンドコンポーネント、ミドルウェアコンポーネント（例えば、アプリケーションサーバ）、フロントエンドコンポーネント（例えば、ユーザが本明細書に記載の主題の実施例と相互作用するためのグラフィカルユーザインターフェースまたはウェブブラウザ）、もしくは、１または複数のかかるバックエンド、ミドルウェア、または、フロントエンドコンポーネントの任意の組みあわせを含むコンピュータシステムに実装されてよい。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続されうる。通信ネットワークの例は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）（例えば、インターネット）、および、無線ローカルエリアネットワーク（ＷＬＡＮ）を含む。
【００８３】
コンピュータシステムは、クライアントおよびサーバを含みうる。クライアントおよびサーバは、一般に、互いに離れており、通例は、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係性は、それぞれのコンピュータ上で実行されて互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【００８４】
本明細書は、多くの具体的な実施例の詳細を含むが、これらは、どの発明の範囲に対しても請求されうるものの範囲に対しても限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施例に特有でありうる特徴の記載として解釈されるべきである。別個の実施例の文脈で本明細書に記載された特定の特徴が、単一の実施例で組みあわせて実施されてもよい。逆に、単一の実施例の文脈で記載された様々な特徴が、別個にまたは任意の適切な副組み合わせで複数の実施例で実施されてもよい。さらに、特徴は、特定の組みあわせで機能するものとして上述され、最初にそのように請求されてもいるが、請求されている組みあわせからの１または複数の特徴が、一部の例において、組みあわせから除外されてもよく、請求されている組みあわせが、副組み合わせまたは副組み合わせの変形例に向けられてもよい。
【００８５】
同様に、動作は、特定の順序で図示されているが、これは、所望の結果を達成するために、かかる動作が図の特定の順序または順番で実行されること、または、図に示したすべての動作が実行されることを求めると理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有効でありうる。さらに、上述した実施例における様々なシステムモジュールおよび構成要素の分離は、すべての実施においてかかる分離が必要であると理解されるべきではなく、上述したプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に統合されてもよいし、複数のソフトウェア製品にパッケージングされてもよい。
【００８６】
主題の特定の実施例について記載した。当業者にとって明らかなように、上述した実施例のその他の実施例、変更例、および、置換例が、以下の特許請求の範囲内にある。例えば、請求項に記載した動作は、異なる順序で実行されても、所望の結果を達成しうる。
【００８７】
したがって、実施例の上記の記載は、本開示を規定も限定もしない。その他の変更、置換、および、変形も、本開示の精神および範囲から逸脱することなく可能である。
【図１】
2018508135.tif 000003
【図２Ａ】
2018508135.tif 000004
【図２Ｂ】
2018508135.tif 000005
【図２Ｃ】
2018508135.tif 000006
【図３】
2018508135.tif 000007
【図４】
2018508135.tif 000008
【図５】
2018508135.tif 000009
【国際調査報告】
2018508135.tif 000010