図1は、ビデオストリームを顕著フラグメントへと分解し、顕著フラグメントに基づいて合成ビデオを合成するためのシステム100の一実施形態を示す高レベルブロック図を表している。図示されるシステム100は、サーバ101、キャプチャデバイス107、データリポジトリ109、及びクライアントデバイス115a、...、115nを含む。図示される実施形態において、システム100のエンティティは、ネットワーク105を介して、通信可能に接続される。1つのサーバ101、1つのキャプチャデバイス107、1つのデータリポジトリ109、及び1つのネットワーク105だけが、図1に示されているが、任意の数のサーバ101又はサーバクラスタ、任意の数のキャプチャデバイス107、任意の数のデータリポジトリ109、及び、これらのエンティティを接続する1つ以上のネットワーク105が存在してもよいことを理解されたい。
ネットワーク105は、従来型の有線又は無線とすることができ、スター構成、トークンリング構成、又は他の構成を含む多数の異なる構成を有することができる。さらに、ネットワーク105は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、及び/又は、複数のデバイスが通信できる他の相互接続データパスを含み得る。いくつかの実施形態において、ネットワーク105は、ピアツーピアネットワークであり得る。ネットワーク105はまた、多種多様な通信プロトコルでデータを送信するために、通信ネットワークの諸部分に接続され得る又は通信ネットワークの諸部分を含み得る。いくつかの実施形態において、ネットワーク105は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メール等を介することを含め、データを送信及び受信するために、セルラ通信ネットワーク又はBluetooth(登録商標)通信ネットワークを含み得る。
キャプチャデバイス107は、ビデオをキャプチャして、メタデータを該ビデオに関連付けるハードウェアデバイスである。例えば、キャプチャデバイス107は、カメラ、カムコーダ、ビデオレコーダ等とすることができる。キャプチャデバイス107によりキャプチャされるビデオは、任意の一連の時間関連画像とすることができる。いくつかの実施形態において、キャプチャデバイス107は、イベントの多い画像をキャプチャし、例えば、このような画像は、ある時間期間内において動いているオブジェクトの画像であり得、キャプチャデバイス107は、動いているオブジェクトのビデオを形成する。他の実施形態において、キャプチャデバイス107は、シーンから画像をキャプチャし、これらの時系列の画像を結合してビデオにする。ビデオは、ほとんどが単調である画像を含み得、例えば、監視ビデオは、シーンにおいて変化のない要素の画像からなる大部分とシーンにおいてはっきりと現れる関心イベントの画像からなる小部分とを含む。
キャプチャデバイス107はまた、例えば、ビデオがキャプチャされた時間及び位置、画像サイズ、画像解像度、色深度、シャッター速度等といったメタデータをビデオに関連付ける。メタデータは、特に他の手法を使用することが難しい場合に、以下で説明されるように、ビデオを顕著フラグメントへと分解する際に使用され得る。例えば、メタデータは、動き検出手法がビデオを顕著フラグメントへと分解できない場合に、特に有用である。ビデオは、混雑した場所で撮影されることがあり、多数の動いているオブジェクトを含むことがある。いくつかの実施形態において、キャプチャデバイス107は、ビデオ及び関連付けられたメタデータを、キャプチャデバイス107に備えられているデータストレージに記憶する。他の実施形態において、キャプチャデバイス107は、ビデオ及び関連付けられたメタデータを、記憶のために、データリポジトリ109に送信する。いくつかの他の実施形態において、キャプチャデバイス107(例えば、スマートカメラ)は、以下で説明されるように、ビデオを処理して合成ビデオを生成するためのビデオ分解アプリケーション103をさらに含む。
データリポジトリ109は、データを記憶するように選定された設備である。例えば、データリポジトリ109は、キャプチャデバイス107から受信されたビデオを記憶するデータストレージ設備、ビデオ共有ウェブサイトのデータベース、クライアントデバイス115aから受信されたビデオを記憶するクラウドストレージ等とすることができる。いくつかの実施形態において、データリポジトリ109は、クライアントデバイス115又はサーバ101からのビデオを求める要求に応じて、ビデオを提供する。
クライアントデバイス115は、プロセッサ、メモリ、アプリケーション、データベース、及びネットワーク通信能力を含むコンピューティングデバイスである。例えば、クライアントデバイス115は、ネットワーク105にアクセスし、サーバ101、キャプチャデバイス107、及びデータリポジトリ109と通信することができる、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話機、携帯情報端末(PDA)、モバイル電子メールデバイス、1つ以上のプロセッサが組み込まれた若しくは1つ以上のプロセッサに接続されるテレビジョン、又は任意の他の電子デバイスとすることができる。いくつかの実施形態において、クライアントデバイス115は、キャプチャデバイス(図示せず)を含み、したがって、その環境をナビゲートし、ビデオの一連の時間関連画像を取得する能力を有する。例えば、クライアントデバイス115は、カメラを有するスマートフォンである。図1及び残りの図において、参照数字の後の文字(例えば、「115a」)は、その特定の参照数字を有する要素への参照を表す。後に続く文字のないテキストにおける参照数字(例えば、「115」)は、その参照数字を有する要素のインスタンス群に対する全体的な参照を表す。
クライアントデバイス115は、クライアントデバイス115にアクセスしているユーザからデータを受け取り、該ユーザにデータを送る。例えば、クライアントデバイス115は、ビデオをユーザに提示し、ユーザから、ビデオの部分に関するユーザ入力を受け取る。クライアントデバイス115はまた、本明細書において説明される機能を提供するために、ネットワーク105を介して、サーバ101、キャプチャデバイス107、及びデータリポジトリ109と通信する。いくつかの実施形態において、クライアントデバイス115は、以下で説明されるように、ビデオを処理して合成ビデオを生成するためのビデオ分解アプリケーション103をさらに含む。
サーバ101は、ハードウェアサーバであってもよいし、ソフトウェアサーバであってもよいし、ソフトウェアとハードウェアとの組合せであってもよい。サーバ101は、プロセッサ、メモリ、アプリケーション、データベース、及びネットワーク通信能力を含むコンピューティングデバイスであってもよいし、そのようなコンピューティングデバイスにより実装されてもよい。いくつかの実施形態において、サーバ101は、ビデオを受信し、ビデオの顕著フラグメント及び非顕著部分を識別し、ユーザからのビデオのクエリに応じて、ビデオの顕著フラグメント及び非顕著部分に基づいて、ユーザに表示するための合成ビデオを合成する。合成ビデオは、ビデオの要約であり、これは、1)合成ビデオが、ユーザクエリに応じたものであり、ユーザクエリに関連する顕著フラグメントに対応する、原ビデオの情報を強調するという点、及び/又は、2)合成ビデオが、時間長の点で原ビデオよりも短いという点で、原ビデオとは異なり得る。合成ビデオは、原ビデオよりも短い時間長でよりリッチなコンテンツを含むので、ビデオから有用な情報を得るためのユーザの時間及びネットワーク帯域幅が、合成ビデオを使用することにより低減される。
いくつかの実施形態において、サーバ101は、ネットワーク105を介して、システム100の他のエンティティにデータを送信し、システム100の他のエンティティからデータを受信する。例えば、サーバ101は、キャプチャデバイス107又はデータリポジトリ109からビデオを受信し、クライアントデバイス115から、ビデオに関するユーザ入力を受信し、合成ビデオをクライアントデバイス115に送信する。
いくつかの実施形態において、サーバ101は、ビデオ分解アプリケーション103を含む。ビデオ分解アプリケーション103は、ビデオを顕著フラグメントへと分解し、顕著フラグメントに基づいて合成ビデオを合成する機能を提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、ビデオ分解アプリケーション103は、プログラム可能な又は特殊化されたハードウェアを使用して実装され得る。いくつかの実施形態において、ビデオ分解アプリケーション103は、ハードウェアとソフトウェアとの組合せを使用して実装され得る。他の実施形態において、ビデオ分解アプリケーション103は、サーバ101とクライアントデバイス115との組合せにおいて、記憶されて実行され得る。図1において、ビデオ分解アプリケーション103は、サーバ101、クライアントデバイス115、キャプチャデバイス107、又はこれらの組合せに存在し得ることを示すために、破線で表されている。
いくつかの実施形態において、ビデオ分解アプリケーション103は、一連の時間関連画像を含むビデオを受信し、ビデオの非顕著部分及び顕著フラグメントを抽出する。ビデオの非顕著部分は、静止している又はゆっくり動いているオブジェクト、例えば、監視ビデオにおいて繰り返し点滅している、映画館のネオン標識又は静かな道路、を含み得る。ビデオの非顕著部分はまた、よりイベントの多い、より関心の高い、又はより顕著である別のオブジェクトに関連しないオブジェクト、例えば、フィールド上のフットボール選手と比較するとフットボールビデオの非顕著部分とみなされる観客、を含み得る。いくつかの実施形態において、ビデオ分解アプリケーション103は、オブジェクトの顕著性を判定し、顕著性に基づいてビデオから顕著オブジェクトを抽出し、顕著オブジェクトに基づいて複数の顕著フラグメントを生成する。ビデオ分解アプリケーション103は、動き検出、色、コントラスト、意味情報等に基づいて、顕著性を判定することができる。例えば、ビデオ分解アプリケーション103は、ビデオにおける他の人々が右に動いているのに対し、第1の人が左に動いていることを理由として、第1の人が顕著オブジェクトであると決定する。ビデオ分解アプリケーション103は、顕著オブジェクトの関連する諸部分を結合して、顕著フラグメントを生成する。例えば、ビデオ分解アプリケーション103は、ビデオの時間長にわたって、各顕著オブジェクトを追跡し、顕著オブジェクトの追跡を、顕著フラグメントとして規定する。顕著フラグメントは、ビデオの複数の時間関連フレームを含み、ここで、ある時間における、顕著フラグメントの各フレームは、わずかに異なる特定の領域であって、所定の連続性で結合される特定の領域を含む。
いくつかの実施形態において、複数の顕著フラグメントを決定したことに応じて、ビデオ分解アプリケーション103は、関連フラグメントを決定し、関連フラグメントを接続した接続グラフを生成する。ビデオ分解アプリケーション103は、時空間のオーバーラップに基づいて、関連フラグメントを決定することができる。例えば、顕著オブジェクトが、2つのフラグメントにおいて出現した場合、又は、2つのフラグメントにおけるオブジェクトが、何らかの時点において且つビデオの何らかのポイントにおいて、互いと接触している且つ/又は互いに影響を及ぼしている場合、これらの2つのフラグメントは関連する。ビデオ分解アプリケーション103はまた、因果性情報に基づいて、関連するフラグメントを決定することができる。例えば、人が、店に入って店から出るときに、物体を落下させた場合、分析モジュール205は、落下している物体の顕著フラグメントが、人の顕著フラグメントに関連すると決定するであろう。ビデオ分解アプリケーション103は、時空間のオーバーラップ又は因果性情報に基づいて、グラフにおいて関連フラグメントを接続する。いくつかの実施形態において、ビデオ分解アプリケーション103は、さらに、色、形状、コントラスト、意味情報、又は、ユーザにより定義された何らかの他の関連性等の他の特性に基づいて、関連フラグメントを決定し、グラフにおいて関連フラグメントを接続することができる。いくつかの実施形態において、ビデオ分解アプリケーション103は、グラフにおける接続に基づいて、顕著フラグメントをクラスタ化する。各クラスタは、他のクラスタに含まれるフラグメントに接続していないフラグメントのグループである。接続グラフ及びクラスタは、顕著フラグメントのデータベースを構築及びインデクシングする際に使用される。
ビデオ分解アプリケーション103は、顕著フラグメントのデータベースを作成する。ビデオ分解アプリケーション103はまた、データベースからのデータ検索の速度を向上させるために、顕著フラグメントのデータベースをインデクシングする。様々な実施形態において、ビデオ分解アプリケーション103は、関連顕著フラグメント、接続グラフ、クラスタ等に基づいて、データベースをインデクシングする。
ビデオ分解アプリケーション103は、ユーザからのビデオに関するクエリを受信すると、顕著フラグメントのデータベースを検索し、ユーザに表示するためのクエリ結果として、合成ビデオを生成することができる。クエリは、ユーザにより選択された顕著フラグメント又はユーザにより入力された時間間隔であり得る。いくつかの実施形態において、クエリに応じて、ビデオ分解アプリケーション103は、ビデオの取得された顕著フラグメント及びビデオの非顕著部分に基づいて、合成ビデオを合成する。合成ビデオは、原ビデオに由来するが原ビデオとは異なるもっともらしいビデオである。合成ビデオは、原ビデオのいくつかの情報を、原ビデオの他の情報を排除又は除外することに基づいて、強調する。いくつかの実施形態において、合成ビデオはまた、原ビデオよりも時間の点で短い。
例えば、ビデオ分解アプリケーション103は、ビデオにおける第1の人の顕著フラグメントに関連するクエリを受信することができる。原ビデオにおけるシーンは、第1の人が、左に動きながら、第2の人及び第3の人と交差していたのに対し、第4の人及び第5の人が、ビデオにおいて離れた位置で動いていたことを含む。ビデオ分解アプリケーション103は、第1の人、第2の人、及び第3の人を保ったまま、第4の人及び第5の人を除去するようにシーンを変更する合成ビデオを生成することができる。なぜならば、第4の人及び第5の人は、第1の人に関するクエリに関連しなかったからである。すなわち、合成ビデオは、クエリされた第1の人に関連付けられた顕著フラグメントと、クエリされた第1の人と相互作用し得る第2の人及び第3の人に関連付けられた顕著フラグメントと、を含む。合成ビデオは、第1の人に関連付けられた顕著フラグメントに関連しない第4の人及び第5の人に関連付けられた顕著フラグメントを含まない。原ビデオと比較すると、合成ビデオは、クエリされた第1の人に関連する、増大された量の有用な情報を含み、したがって、使用の際により効率的である。
合成ビデオ、特に、概要ビデオを生成するときのいくつかの課題が存在する。概要ビデオは、原ビデオの間隔における異なる時点において生じている複数のフラグメントが、一緒にスタックされて同時に表示される合成ビデオであり、それにより、ビデオの長さを短くする。ビデオ分解アプリケーション103は、概要ビデオを作成するときに、ユーザ要求を満たすために、フラグメント間のオーバーラップを最小化して概要ビデオの全時間長を短くする最適化に基づいて、時間シフトを実行する。いくつかの実施形態において、ビデオ分解アプリケーション103は、フラグメントをクラスタ化し、複数のクラスタが同時に生じ得るようにクラスタを時間シフトすることに基づいて、概要ビデオを生成する。ビデオ分解アプリケーション103はまた、各フラグメントを、該フラグメントにおける顕著オブジェクトの動きのレベルに基づいて重み付けし、重みに基づいて、各フラグメントを、異なるスタック順序又はレイヤに割り当てる。例えば、ビデオ分解アプリケーション103は、他のオブジェクトの動きの速度に基づいて他のオブジェクトをレイヤ化しつつ、静止しているオブジェクトを背景のものと同様に扱い(例えば、これらのオブジェクトにより低い重みを付与し)、これは、(例えば、低い重みを有するフラグメントをサブサンプリングしてフレームレートを低減させることに基づいて)低い重みを有するフラグメントの1つ以上のフレームをスキップすることにより、システムリソース及びネットワークリソースを低減させる。ビデオ分解アプリケーション103は、さらに、ビデオにおける同じ位置で生じる双方向往来によって引き起こされる衝突の数を低減させるために、ビデオの許容アクティビティゾーンを識別し、概要ビデオにおいてフラグメントを配置するための空間的にシフトされた位置を決定する。ビデオ分解アプリケーション103の動作及び上記で挙げられた機能は、図2A〜図15Bを参照して以下でより詳細に説明される。
本明細書において説明される技術は、様々な点で有効である。第1に、本明細書において説明されるビデオ分解システムは、合成ビデオを動的に生成するために使用される顕著フラグメントを記憶するデータベースを作成する。顕著フラグメントの動的な検索・取得は、合成ビデオの動的な生成を確実にし、例えば、単一のクエリに応じて、顕著フラグメントの異なるセットを取得して、異なる合成ビデオを生成することができる。また、データベースは、顕著フラグメント、接続グラフ、クラスタ、及び他の情報の変化を反映するように、動的に更新される。第2に、本明細書において説明されるビデオ分解システムは、データベースに記憶される視覚的情報をインデクシングし、それにより、合成ビデオを生成するための高速なデータ検索を可能にする。詳細には、顕著フラグメントのインデクシング及び伝送は、フラグメント全体ではなく、顕著フラグメントの小片(例えば、セグメント)に基づき、これは、データ検索速度を増大させるだけでなく、伝送時間及びネットワーク帯域幅を低減させる。第3に、本明細書において説明されるビデオ分解システムにおいて顕著フラグメントのデータベースを構築及びインデクシングすることは、ビデオのクエリ駆動型再構成を可能にする。異なるタイプのクエリを使用して、合成ビデオの生成をトリガすることができる。加えて、本明細書において説明されるビデオ分解システムは、静止しているオブジェクトに関連する制限を克服すること、衝突の数を最小化すること等の問題を解決して合成ビデオの生成を最適化するために、先進的な手法を適用する。
図2Aは、ビデオ分解アプリケーション103を含むコンピューティングデバイス200の一実施形態を示すブロック図を表している。コンピューティングデバイス200は、いくつかの例に従うと、プロセッサ235、メモリ237、任意的なディスプレイデバイス239、通信ユニット241、及びデータストレージ243も含み得る。コンピューティングデバイス200のこれらのコンポーネントは、互いとの通信のためのバス又はソフトウェア通信機構220に通信可能に接続される。いくつかの実施形態において、コンピューティングデバイス200はサーバ101である。他の実施形態において、コンピューティングデバイス200はクライアントデバイス115である。いくつかの実施形態において、コンピューティングデバイス200はキャプチャデバイス107である。
プロセッサ235は、様々な入力/出力演算、論理演算、及び/又は数学的演算を実行することにより、ソフトウェア命令を実行することができる。プロセッサ235は、例えば、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、及び/又は命令セットの組合せを実装しているアーキテクチャを含む、データ信号を処理するための様々なコンピューティングアーキテクチャを有することができる。プロセッサ235は、物理的及び/又は仮想的であり得、単一の処理ユニットを含んでもよいし、複数の処理ユニット及び/又はコアを含んでもよい。いくつかの実装において、プロセッサ235は、電子表示信号を生成してディスプレイデバイスに提供することができ、会議をスケジュールする際に使用されるユーザインタフェースの表示をサポートすることができ、ルールを生成すること、サービスプロバイダのレコメンドリストを特定すること等を含む複雑なタスクを実行することができ得る。いくつかの実装において、プロセッサ235は、メモリ237のデータ及び命令にアクセスし、メモリ237にデータを記憶するために、バス220を介して、メモリ237に接続され得る。バス220は、プロセッサ235を、例えば、メモリ237、通信ユニット241、ビデオ分解アプリケーション103、及びデータストレージ243を含む、コンピューティングデバイス200の他のコンポーネントに接続することができる。他のプロセッサ、オペレーティングシステム、及び物理的構成が可能であることが、当業者には明らかであろう。
メモリ237は、コンピューティングデバイス200の他のコンポーネントのためのデータを記憶して、該データへのアクセスを提供することができる。いくつかの実装において、メモリ237は、プロセッサ235により実行され得る命令及び/又はデータを記憶することができる。命令及び/又はデータは、本明細書において説明される技術を実行するためのコードを含み得る。例えば、一実施形態において、メモリ237は、ビデオ分解アプリケーション103を記憶することができる。メモリ237はまた、例えば、オペレーティングシステム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベース等を含む他の命令及びデータを記憶することができる。メモリ237は、プロセッサ235及びコンピューティングデバイス200の他のコンポーネントとの通信のために、バス220に接続され得る。
メモリ237は、1つ以上の非一時的なコンピュータ使用可能な(例えば、読み取り可能な、書き込み可能な)デバイス、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、組み込みメモリデバイス、ディスクリートメモリデバイス(例えば、PROM、FPROM、ROM)、ハードディスクドライブ、光ディスクドライブ(CD、DVD、Blu−ray(登録商標)等)媒体を含み得、これらは、プロセッサ235による処理のために又はプロセッサ235に関連して、命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチン等を含有、記憶、通信、又は伝送することができる任意の有形の装置又はデバイスとすることができる。いくつかの実装において、メモリ237は、揮発性メモリ及び不揮発性メモリのうちの1つ以上を含み得る。メモリ237は、単一のデバイスであってもよいし、複数のタイプのデバイス及び構成を含んでもよいことを理解されたい。
ディスプレイデバイス239は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、又は、任意の他の同様に備えられるディスプレイデバイス、スクリーン、若しくはモニタである。ディスプレイデバイス239は、本明細書において説明されるユーザインタフェース、電子画像、及びデータを表示するために備えられる任意のデバイスを表す。異なる実施形態において、表示は、バイナリ(画素についての2つの異なる値のみ)である、モノクローム(1つの色の複数の色合い)である、又は、複数の色及び色合いを可能にする。ディスプレイデバイス239は、プロセッサ235及びコンピューティングデバイス200の他のコンポーネントとの通信のために、バス220に接続される。ディスプレイデバイス239は、任意的であることを示すために、図2Aにおいて、破線で示されていることに留意されたい。例えば、コンピューティングデバイス200がサーバ101である場合、コンピューティングデバイスは、ディスプレイデバイス239を含まないことがある。しかしながら、コンピューティングデバイス200がクライアントデバイス115である場合、コンピューティングデバイス200は、本明細書において説明されるユーザインタフェース、ビデオ、及び/又は合成ビデオを表示するために使用されるディスプレイデバイス239を含み得る。
通信ユニット241は、プロセッサ235をネットワーク105及び他の処理システムに接続することによりデータを受信及び送信するためのハードウェアである。通信ユニット241は、処理のために、キャプチャデバイス107又はデータリポジトリ109から、ビデオデータ等のデータを受信する。通信ユニット241はまた、表示のために、情報をクライアントデバイス115に送信することができる。例えば、通信ユニット241は、クライアントデバイスのユーザからの顕著フラグメントの部分の選択を受信し、顕著フラグメントの選択に基づいて生成された合成ビデオを、クライアントデバイス115に送信する。通信ユニット241は、バス220に接続される。一実施形態において、通信ユニット241は、ネットワーク105への直接的な物理的接続のためのポートを含み得る。別の実施形態において、通信ユニット241は、IEEE802.11、IEEE802.16、Bluetooth(登録商標)、セルラ通信、又は別の適切な無線通信方法等の1つ以上の無線通信方法を使用して、クライアントデバイス115又は任意の他の通信チャネルとデータを交換するための無線トランシーバ(図示せず)を含み得る。
データストレージ243は、本明細書において説明される機能を提供するためのデータを記憶する非一時的なメモリである。図示される実施形態において、データストレージ243は、バス220に通信可能に接続される。データストレージ243は、本明細書において説明される機能を提供するために使用される情報を記憶する。例えば、データストレージ243は、原ビデオ、原ビデオの非顕著部分、原ビデオの顕著フラグメント、顕著フラグメントのクラスタ、顕著フラグメントの接続グラフ、顕著フラグメントに関連付けられた重み、時間シフト情報、空間シフト情報、許容アクティビティゾーン、顕著フラグメントのインデックス、合成ビデオ等を記憶することができる。データストレージ243に記憶されるデータは、以下でより詳細に説明される。
いくつかの実施形態において、ビデオ分解アプリケーション103は、非顕著性モジュール201、顕著性モジュール203、分析モジュール205、インデクサ207、クエリモジュール209、合成モジュール211、及びユーザインタフェースエンジン213を含む。
ビデオ分解アプリケーション103のこれらのコンポーネントは、これらが実行する機能を提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、これらのコンポーネントは、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)を含む、プログラム可能な又は特殊化されたハードウェアを使用して実装され得る。いくつかの実施形態において、これらのコンポーネントは、ハードウェアとプロセッサ235により実行可能なソフトウェアとの組合せを使用して実装され得る。いくつかの実施形態において、これらのコンポーネントは、プロセッサ235により実行可能な命令である。いくつかの実施形態において、これらのコンポーネントは、メモリ237に記憶され、プロセッサ235によりアクセス可能で実行可能である。
非顕著性モジュール201は、ビデオの非顕著部分を抽出する機能を提供するためのソフトウェア及び/又はロジックを含み得る。ビデオは、キャプチャデバイス107、データリポジトリ109、又はクライアントデバイス115から受信された任意の一連の時間関連画像とすることができる。ビデオの非顕著部分は、静止している、ゆっくり動いている、又はタスクに関連しないオブジェクトを含み得る。いくつかの実施形態において、非顕著性モジュール201は、ビデオの固定された背景を、ビデオの非顕著部分として抽出する。例えば、ビデオの非顕著部分は、地下鉄駅において動いている列車及び人々で満たされているビデオにおける静止していて動かない地下鉄駅を含み得る。他の実施形態において、ビデオの非顕著部分は、ビデオのゆっくり動いている背景を含む。非顕著性モジュール201は、そのような背景における何らかの動き(例えば、反復的に動いているオブジェクト)を、予測可能なものとみなし、そのような動きを、ビデオの非顕著部分として識別する。例えば、橋上の交通流を記録するビデオの場合、非顕著性モジュール201は、橋の下で流れている川と、風により動いている、川のへりにある木と、を、ビデオの非顕著部分として識別することができる。いくつかの他の実施形態において、非顕著性モジュール201は、タスク依存の非顕著性に基づいて、ビデオの非顕著部分を決定する。例えば、非顕著性モジュール201は、タスクが、イベントの多い、ユーザにとって関心があり、第1のオブジェクトよりも顕著である第2のオブジェクトに関する場合、第1のオブジェクトが、ビデオの非顕著部分においてタスクに関連しないと決定することができる。例えば、非顕著性モジュール201は、フィールド上でプレーしているフットボール選手から観客を分離し、観客部分を、ビデオの非顕著部分として抽出することができる。なぜならば、観客の動き(例えば、喋ること、手を振ること)は、フットボールゲームと比較して、イベントの少ないものであるからである。あるいは、非顕著性モジュール201は、地下鉄駅の監視ビデオから、地下鉄駅において動いている人々及び他のオブジェクトが、地下鉄駅に入って地下鉄駅から出ていく列車よりも関心が高いと決定し、列車部分を、ビデオの非顕著部分として識別することができる。いくつかの実施形態において、非顕著性モジュール201は、モデルを構築し、モデルから、ビデオの非顕著部分(例えば、ゆっくり動いている背景)を決定するように学習する。モデルの例は、顕著性モジュール203を参照して以下で説明される。
顕著性モジュール203は、ビデオの顕著フラグメントを抽出する機能を提供するためのソフトウェア及び/又はロジックを含み得る。ビデオの顕著フラグメントは、ビデオのフレームのサブセット及びフレームのサブセットからの画素のサブセットである。例えば、ビデオにおけるオブジェクトに対応する画素は、ビデオの複数のフレームにおいて見つけられ得る。オブジェクトに対応する画素を含むこれらのフレームが、フレームのサブセットとして、ビデオから抽出され得る。さらに、オブジェクトに対応する画素(及び、いくつかの実施形態においては、オブジェクトを囲むいくつかの画素)が、フレームのサブセットの各々から抽出される。オブジェクトに関連付けられた画素のみを含む、結果として生じたフレームのサブセットが、顕著フラグメントである。
ある時間における、顕著フラグメントの各フレームは、わずかに異なる特定の領域であって、所定の連続性で結合される特定の領域を含む。例えば、顕著フラグメントは、手を振るアクティビティの3つの時間関連フレームを含み得る。1番目のフレームは、人が、第1の位置に手を上げていることを示す。2番目のフレームは、人が、第1の位置で手を振っていることを示す。3番目のフレームは、人が、第2の位置に手を下げていることを示す。単一の顕著フラグメントが、特定の領域の急激な変化を必ずしも含むわけではない。すなわち、フラグメントは、アクティビティの一連の小さな且つ/又は安定した変化を表す。例えば、領域が、裂けられたり、遮蔽されたりする等、急激な変化が生じると、新たな顕著フラグメントが開始する。例えば、上述した顕著フラグメントは、3つのフレームのみを含む。なぜならば、ビデオにおいて3番目のフレームに続く4番目のフレームは、人の手を含まないからである。すなわち、顕著フラグメントは、画素のブロックがシーンにおいて出現するときに開始し、該画素のブロックがシーンから消失するときに終了する、原ビデオのアトム(最小構成単位)である。
いくつかの実施形態において、顕著性モジュール203は、オブジェクトの顕著性を判定し、顕著性に基づいてビデオから顕著オブジェクトを抽出し、顕著オブジェクトに基づいて複数の顕著フラグメントを生成する。顕著性は、ビデオの際立った特徴を表し、対応する顕著フラグメントは、際立った特徴を示す、注目に値する特質を有する、ビデオのハイライトである。例えば、顕著性モジュール203は、最も際立った特徴がブラックリストに載せられた個人(すなわち、顕著オブジェクト)であることに基づいて、監視ビデオから、容疑者の動きを含む顕著フラグメントを抽出する。
いくつかの実施形態において、顕著性モジュール203は、動き検出、コントラスト、色、及び意味特性のうちの少なくとも1つに基づいて、ビデオにおけるオブジェクトの顕著性を判定する。したがって、顕著オブジェクトは、動いているオブジェクトであることもあるし、所定の色又は所定のコントラストであるオブジェクトであることもある。顕著オブジェクトはまた、意味重要性を有するオブジェクトであることもある。例えば、会話ビデオの場合、顕著性モジュール203は、意味重要性に基づいて、最も喋った人(例えば、他の人の質問に回答した人)を、顕著オブジェクトとして決定することができる。あるいは、例えば、顕著性モジュール203は、所定のラベルを有する車を、意味重要性を有するオブジェクトとして決定することができる。
いくつかの実施形態において、顕著性モジュール203は、動き検出に基づく背景前景分離方法を使用して、動いているオブジェクトを、顕著オブジェクトとして識別する。顕著性モジュール203は、オブジェクトの動きに基づいて、ビデオの前景を抽出し、前景におけるオブジェクトを、顕著オブジェクトとして識別することができる。非顕著性モジュール201は、ビデオにおける(例えば、前景を除いた)フレームの平均を、背景(例えば、ゆっくり動いている背景)として取得し、この背景を、ビデオの非顕著部分として使用することができる。例えば、顕著性モジュール203は、ビデオから、鉄道駅に向かっている列車の顕著部分(例えば、速く変化している部分)を抽出するのに対し、非顕著性モジュール201は、鉄道駅で待機している乗客(例えば、ゆっくり変化している部分)を、非顕著部分に含める。顕著性モジュール203はまた、他の動き検出技術を使用して、顕著性を判定し、顕著オブジェクトを抽出する。いくつかの実施形態において、顕著性モジュール203は、ビデオにおける動いているオブジェクトの優勢な流れをトレースし、優勢な流れにない動いているオブジェクトを、顕著オブジェクトとして識別する。例えば、顕著性モジュール203は、ビデオの顕著オブジェクトが、他の人々と対向して走っている人であると識別する。顕著性モジュール203は、動き検出に基づいて、他のタイプの顕著オブジェクト、例えば、垂直方向の動きのない顕著オブジェクト、を決定してもよいことが、当業者であれば認識されよう。
動き検出技術は、顕著オブジェクトを抽出する際に、常に適用できるわけではない。例えば、交通量が激しい高速道路、混雑した店等といったシーンにおいて、多数の動いているオブジェクトが存在する場合には、動き検出に基づいて、顕著性を判定し、顕著オブジェクトを抽出するのは難しい。いくつかの実施形態において、顕著性モジュール203は、コントラスト、色、形状等といった、ビデオの他の特性に基づいて、顕著性を判定し、顕著オブジェクトを抽出する。例えば、顕著性モジュール203は、暗い家の監視ビデオにおける明るいポイント(例えば、明るい懐中電灯)を、顕著オブジェクトとして識別することもできるし、明るさが変化している顕著オブジェクト(例えば、消されている火)を識別することもできる。別の例において、顕著性モジュール203は、ビデオから、黄色い安全ベストを装着している人を、顕著オブジェクトとして抽出する。さらに別の例において、顕著性モジュール203は、円形状を有する顕著オブジェクトを識別する。
他の実施形態において、顕著性モジュール203は、ビデオの意味情報に基づいて、顕著性を判定し、顕著オブジェクトを抽出する。意味情報は、ビデオにおいてオブジェクトにより行われたアクティビティ、ビデオにおける語の意味等を含む。例えば、顕著性モジュール203は、ビデオから、道路上で歩いている人及び二輪車に乗っている人を識別し、二輪車に乗っている人を、顕著オブジェクトとして決定する。別の例において、顕著性モジュール203は、(例えば、人々のブラックリストにおける)人を、顕著オブジェクトとして選択する。
非顕著性モジュール201及び顕著性モジュール203により、ビデオの非顕著部分と顕著部分(すなわち、顕著オブジェクトを含む部分)とを分離する1つの手法は、背景前景分離方法である。(上述した)動き検出、色、形状、コントラスト、及び他の特性に基づいて、背景前景分離を実行する精巧なアルゴリズムが存在する。いくつかの実施形態において、混合ガウスモデル(GMM)に基づくアルゴリズムが、ビデオの背景及び前景を抽出するための色モデルを構築するために使用される。顕著性モジュール203は、顕著オブジェクトの動き及び小さな照明変化を考慮するために、ビデオの各時間ステップにおいてこのモデルを更新する。他の実施形態において、視覚背景抽出器(ViBe)が、ビデオの背景検出及びビデオの前景からの分離のために、非顕著性モジュール201及び顕著性モジュール203により使用される。ビデオの非顕著部分及び顕著部分を抽出するために非顕著性モジュール201及び顕著性モジュール203により使用される他のアルゴリズムは、適応GMM、自己編成マップアルゴリズム、主成分分析アルゴリズム、背景をモデル化するための低ランク分解に基づくアルゴリズム等を含む。
顕著オブジェクトが決定されると、顕著性モジュール203は、顕著オブジェクトの関連する諸部分を結合して、顕著フラグメントを生成する。いくつかの実施形態において、顕著性モジュール203は、ビデオの各フレームにおいて顕著オブジェクトを決定し、ビデオの長さにわたって、各顕著オブジェクトを追跡し、追跡に基づいて、複数の顕著フラグメントを生成する。顕著オブジェクトを追跡する単純な方法は、1つのフレームから別のフレームへの顕著オブジェクトの位置を特定し、1つのフレームにおける顕著オブジェクトを、同様の空間的位置において出現している、次のフレームにおける顕著オブジェクトに関連付けることである。しかしながら、この追跡方法には、いくつかの問題がある。例えば、オブジェクト群が、オーバーラップすることもあるし、オブジェクト群が、同様の色又は低照明状態のため、混同されることもあるし、照明の変化に起因して誤検出され、オブジェクト間の関連付けがもたらされないこともあるし、オブジェクトがあまりに速く動いて、フレームごとの関連付けがうまくいかないこともなる、等である。
これらの問題を解決するために、顕著性モジュール203は、特定の色モデル及び/又は動きベクトルモデルを顕著オブジェクトに関連付けて、経時的に顕著オブジェクトの軌跡を得る追跡アルゴリズムを使用する。いくつかの実施形態において、顕著性モジュール203は、カルマンフィルタ法を使用して、複数オブジェクト追跡を実施する。一実施形態において、顕著性モジュール203は、ハンガリアン法を適用して、追跡をいつ開始し追跡をいつ終了するかを決定する。ハンガリアン法は、多項式時間において割り当て問題を解く組合せ最適化アルゴリズムである。最適化又はオペレーションズリサーチにおける割り当て問題は、重み付き2部グラフにおいて最大重みマッチング(又は最小重み完全マッチング)を見つけることを含む。顕著オブジェクトを経時的に追跡するときに、顕著性モジュール203は、ハンガリアン法を使用して、距離関数を用いることにより正しい検出を正しい軌跡に関連付ける。いくつかの実施形態において、距離は、前景検出の中心間のユークリッド距離である。
いくつかの実施形態において、顕著性モジュール203は、顕著オブジェクトの追跡を、ビデオフラグメントとして規定する。ビデオフラグメントは、ビデオの顕著部分のみを含み、追跡の時間長の間継続し、したがって、顕著フラグメントとも呼ばれる。顕著フラグメントは、時間空間及び画像空間の両方において局在している単一の顕著アクティビティについてのサブストリームである。いくつかの実施形態において、顕著性モジュール203は、時間差を測定して、アクティビティが時間空間において局在しているかどうかを判定し、位置差を測定して、アクティビティが画像空間において局在しているかどうかを判定する。
図3Aは、人301、人303、及び人305という3人の人を含むビデオのフレーム311を表している。図3Aの例において、顕著性モジュール203は、道路の一方の端部を一緒に歩いている人310及び人303に対応する第1の顕著フラグメントと、道路の他方の端部を歩いている人305に対応する第2の顕著フラグメントと、を識別することができる。顕著性モジュール203は、人301及び人303のアクティビティを、時間空間及び画像空間の両方において局在している単一の顕著フラグメントであるように決定する。なぜならば、人301及び人303の歩いているアクティビティは、近い時間範囲内で且つ近い位置範囲内で生じているからである。一方、顕著性モジュール203は、人305のアクティビティを、第2の顕著フラグメントであるように決定する。なぜならば、人305のアクティビティは、第1の顕著フラグメントとともに時間空間において局在しているが、人301及び人303のアクティビティとともには画像空間において局在していない(すなわち、人305のアクティビティは、フレームの他方の端部で生じている)からである。
顕著フラグメントは、追跡の時間長の間継続する。例えば、どの顕著オブジェクトが、ビデオのどの時間期間にわたって追跡されているかに応じて、30秒の顕著フラグメント、2分の顕著フラグメント等が存在し得る。いくつかの実施形態において、顕著性モジュール203は、ビデオの特定の時間期間内で単一の顕著オブジェクトを追跡し、この特定の時間期間から、単一の顕著フラグメントを生成する。他の実施形態において、顕著性モジュール203は、ビデオの特定の時間期間内で複数の顕著オブジェクトを追跡し、ビデオのこの特定の時間期間から、複数の顕著オブジェクトを生成する。例えば、顕著性モジュール203は、ビデオの3分の期間から、人及び車を追跡し、人の第1の顕著フラグメント及び車の第2のフラグメントを生成することができる。この場合において、異なる顕著フラグメントシーケンスは、以下で説明される図3Cに示されるように、ビデオの同じ画像群の諸部分を含み得る。
いくつかの実施形態において、顕著性モジュール203は、顕著フラグメントに関連付けられるメタデータを決定し、さらなる処理のために、顕著フラグメントとともにメタデータを、分析モジュール205及びインデクサ207に送信する。顕著フラグメントに関連付けられるメタデータは、原ビデオに対する開始時間及び終了時間、原ビデオフレームにおける顕著フラグメントのフレームの空間的位置、及び、合成ビデオを生成するために使用される他の特性(例えば、画像におけるオブジェクトの識別情報等の意味情報)を含む。いくつかの実施形態において、意味情報は、顕著フラグメントのインデクシング及び検索・取得のために使用され得る。例えば、ビデオが、車及び歩行者の画像を含む場合であって、各顕著フラグメントが、該顕著フラグメントを車又は歩行者のいずれかとして分類しているメタデータを含む場合、全ての車を表示するためのクエリが、メタデータにおける意味情報に基づいて、容易に完成され得る。
図3B及び図3Cは、顕著フラグメントシーケンスのグラフィカル表現を表している。図3B及び図3Cの例に示される顕著フラグメントシーケンスは、顕著性モジュール203により、鉄道駅の監視ビデオから抽出されている。図3B、図3C、図6、図8、図10A、図10B、図11A、及び図11Bの例における画像は、PETS2006ベンチマークデータから取得されている。図3Bにおける顕著フラグメント300は、動き検出に基づいてもたらされた顕著オブジェクト(例えば、空港内を歩いている女性)を示す、監視ビデオの5つの時間関連画像302、304、306、308、及び310を含む。図3Cは、3つの顕著フラグメントシーケンス352、354、及び356を示している。各顕著フラグメントシーケンスは、顕著オブジェクトの一連の画像/フレームを含む。顕著フラグメント内の各フレームは、原ビデオフレームにおいて見つけられた画素のサブセットのみを含む。例えば、顕著フラグメント354の各フレームは、第1の顕著オブジェクト(例えば、右に動きながら旅行かばんを運んでいる人)の画素のサブセットを含むのに対し、顕著フラグメント356の各フレームは、第2の顕著オブジェクト(例えば、左に動いている人)の画素のサブセットを含む。図3Cの例において、顕著性モジュール203は、時間空間及び画像空間において局在している単一の顕著アクティビティを表す各顕著フラグメントに基づいて、監視ビデオの同じ時間間隔(例えば、最後の2分)から、3つの顕著フラグメントシーケンス352、354、及び356を抽出することができる。
図2Aに戻ると、分析モジュール205は、複数の顕著フラグメントを受信し、関連フラグメントを決定し、関連フラグメントを接続した接続グラフを生成する機能を提供するためのソフトウェア及び/又はロジックを含み得る。
いくつかの実施形態において、分析モジュール205は、時空間のオーバーラップに基づいて、複数の顕著フラグメントのうちの第2の顕著フラグメントが、複数の顕著フラグメントのうちの第1の顕著フラグメントに関連すると決定する。例えば、分析モジュール205は、(1)第2の顕著フラグメントのフレームが、ある時点において、第1の顕著フラグメントのフレームとオーバーラップしているかどうか(例えば、時間空間照合)、及び、(2)上記時点のオーバーラップにおいて第2の顕著フラグメントから抽出された特徴と第1の顕著フラグメントから抽出された特徴との間の類似度が、予め定められた閾値内であるかどうか(例えば、画像外観照合)、を判定することができる。単純に言えば、分析モジュール205は、それぞれのフラグメントにおける顕著オブジェクトが、何らかの時点において且つ画像の何らかのポイントにおいて、互いと接触している且つ/又は互いに影響を及ぼしている場合、2つの関連フラグメントを識別する。
いくつかの実施形態において、分析モジュール205は、2つの顕著フラグメントについて時間の点でオーバーラップしている1つ以上のフレームを決定する。オーバーラップしているフレームのペアは、1番目のフラグメントの最初のフレームと2番目のフラグメントの最後のフレームとであることもあるし、逆であることもある。オーバーラップしているフレームのペアはまた、2番目のフラグメントの発生元又は終了元である、1番目のフラグメントの中央におけるフレームと2番目のフラグメントにおける最初のフレーム又は最後のフレームとを含み得る。オーバーラップしているペアが決定されると、分析モジュール205は、画像外観合致が存在するかどうかを判定する。いくつかの実施形態において、分析モジュール205は、オーバーラップしているペアの各フレームから局所特徴を抽出する。例えば、分析モジュール205は、SIFT(scale-invariant feature transform)、FAST(features from accelerated segment test)、回転BRIEF(binary robust independent elementary features)、ORB(oriented FAST and BRIEF)、及び、ペアにおけるフレームの特徴を検出するための他のアルゴリズムを使用する。オーバーラップしているペアのフレームから抽出された局所特徴の数が、例えばフレームサイズが小さすぎるために、閾量よりも小さい場合、分析モジュール205は、キャプチャデバイス107又はデータリポジトリ109と通信して、増大された前景解像度を有する、ビデオのより高い質のバージョンを取得することができる。分析モジュール205は、次いで、オーバーラップしているペアの各フレームから抽出された局所特徴を比較して、例えば、K最近傍法(KNN)を適用することにより、合致が存在するかどうかを判定する。いくつかの実施形態において、分析モジュール205はまた、ランダムサンプルコンセンサス(RANSAC)アルゴリズムを適用して、オーバーラップしているペアから抽出された局所特徴を比較したときの外れ値を破棄する。分析モジュール205は、リジッド変形を用いると小さいと予想される、フレーム間の変化を概算し、このリジッド変形を用いて、RANSAC法のための基礎となる数学的モデルを構成する。分析モジュール205は、このRANSACステップにおいて測定された距離が閾距離を超えているかどうかに基づいて、画像外観合致を判定する。
以下は、時空間のオーバーラップに基づいて関連顕著フラグメントを決定する例である。第1の顕著フラグメントが、ビデオの4秒目乃至10秒目から抽出され、第2の顕著フラグメントが、ビデオの1秒目乃至4秒目から抽出された場合、分析モジュール205は、4秒目における1秒のオーバーラップを識別し、この1秒のビデオオーバーラップ内でオーバーラップしているフレームの少なくとも1つのペアを識別する。分析モジュール205は、次いで、この時点のオーバーラップにおいて画像外観合致が存在するかどうかを判定する。人及び銀行ビルディングの特徴が、オーバーラップしているフレームから抽出されることを考えてみる。このペアの1番目のフレームにおいて、人は、銀行の入口の近くに立っている。このペアの2番目のフレームにおいて、人は、銀行の道路を横切って歩いている。分析モジュール205が、1番目のフレームから抽出された特徴と2番目のフレームから抽出された特徴との間の距離を算出し、この距離が閾距離を超えていると判定した場合、分析モジュール205は、2つの顕著フラグメントが関連しないと決定する。そうでなければ、2つの顕著フラグメントは関連する。
図4は、時空間のオーバーラップに基づいて決定された関連顕著フラグメントシーケンスのグラフィカル表現を表している。図4、図10A、及び図10Bの例における画像は、changedetection.net上で提供されているベンチマークデータセット(「N. Goyette, P.-M. Jodoin, F. Porikli, J. Konrad, and P. Ishwar, changedetection.net: A new change detection benchmark dataset, in Proc. IEEE Workshop on Change Detection (CDW-2012) at CVPR-2012, Providence, RI, 16-21 Jun., 2012」を参照されたい。)から取得されている。図4の左上には、オーバーラップしているペアの2つのフレームから抽出された特徴間の比較が、402において示されている。例えば、これらの2つのフレームは、それぞれ、フラグメント0及びフラグメント5からのものである。比較結果により、ボックス404において示されている合致したオブジェクトが識別され、406におけるフラグメント0がフラグメント5に関連することが示されている。関連フラグメント群が、408において、(5,0)としてラベル付けされている。同様に、図4の右下には、別のオーバーラップしているペアの2つのフレームから抽出された特徴間の比較が、410において示されている。これらの2つのフレームは、それぞれ、フラグメント1及びフラグメント5からのものである。比較結果により、ボックス412において示されている異なる合致したオブジェクトが識別され、414におけるフラグメント1もフラグメント5に関連することが示されている。416におけるラベル(5,0,1)は、(ボックス404又は412における)類似するオブジェクトが、空間的及び時間的に合致する両方の位置で、これらのフラグメントにおいて出現しているという点で、フラグメント5が、フラグメント0及びフラグメント1の両方に関連することを示している。
他の実施形態において、図2Aの例に戻ると、分析モジュール205は、因果性情報に基づいて、複数の顕著フラグメントのうちの第2の顕著フラグメントが、複数の顕著フラグメントのうちの第1の顕著フラグメントに関連すると決定する(例えば、分析モジュール205は、原因結果状況を理由として、第2の顕著フラグメントを第1の顕著フラグメントに関連付ける)。例えば、人が、店に入る又は店から出るときに、物体を落下させた場合、分析モジュール205は、落下している物体の顕著フラグメントが、人の顕著フラグメントに関連すると決定するであろう。
いくつかの他の実施形態において、外観(例えば、時空間のオーバーラップ又は因果性情報)に基づいて、関連顕著フラグメントを決定することに加えて、分析モジュール205はまた、他の手法を適用して、顕著フラグメント間のつながり又は関連性を判定する。例えば、分析モジュール205は、顕著フラグメントにおけるオブジェクトにより行われたアクティビティといった、ビデオから抽出された意味情報、形状、色、又はコントラスト等の画像特性に基づいて、関連顕著フラグメントを決定することができる。
いくつかの実施形態において、分析モジュール205は、第1の顕著フラグメントに関連する顕著フラグメントの2つ以上のセットを識別することができる。例えば、画像外観照合において使用される閾距離が変化する場合、分析モジュール205は、関連顕著フラグメントの変化するセットを識別することができる。あるいは、第1の顕著フラグメントのフレームが、複数の顕著オブジェクトを含む場合、分析モジュール205は、第1の顕著フラグメントの第1の顕著オブジェクトに基づいて、関連顕著フラグメントの第1のセットを決定し、第1の顕著フラグメントの第2の顕著オブジェクトに基づいて、関連顕著フラグメントの第2のセットを決定することができる。関連フラグメントを識別する意図について不明確である場合、これは、第1の顕著フラグメントの異なる顕著オブジェクトに関する関連顕著フラグメントの複数のセットを生成するのに特に有用である。
いくつかの実施形態において、分析モジュール205は、関連顕著フラグメントを接続した接続グラフを生成する。分析モジュール205は、接続グラフの各ノードを、顕著フラグメントで表現する。分析モジュール205は、例えば、クエリが生成される対象の第1の顕著フラグメントといった、接続グラフの中心ノードを選択し、他のノードを、接続グラフの中心ノードに直接的に又は間接的に接続する。いくつかの実施形態において、分析モジュール205は、時空間のオーバーラップに基づいて、接続グラフの2つのノードにおけるフラグメントを接続することを決定する。例えば、分析モジュール205は、(1)第1のノードにおけるフラグメントのフレームが、何らかの時点において、第2のノードにおける他のフラグメントのフレームとオーバーラップしており、(2)この時点のオーバーラップにおいて、これらの2つのフラグメントの間に画像外観合致が存在する場合、これらの2つのノードを接続することができる。他の実施形態において、分析モジュール205はまた、因果性情報に基づいて、接続グラフにおいてノードを接続する。したがって、分析モジュール205は、人が物体を落下させたという因果関連性を、その反対ではなく示すように、接続グラフにおいて、人のフラグメントと物体のフラグメントとを接続するであろう。いくつかの他の実施形態において、分析モジュール205は、顕著フラグメントにおけるオブジェクトにより行われたアクティビティといった、ビデオから抽出された意味情報、形状、色、又はコントラスト等の画像特性に基づいて、顕著フラグメントを接続することができる。分析モジュール205は、ユーザにより定義された関連性に基づいて、接続グラフにおいて2つのフラグメントを接続することを決定することもできる。
いくつかの実施形態において、分析モジュール205は、さらに、接続グラフにおける接続に基づいて、顕著フラグメントをクラスタ化する。分析モジュール205は、任意的に、フラグメントをクラスタに分類するためのクラスタ化モジュール215を含む。各クラスタは、他のクラスタに含まれるフラグメントに接続していないフラグメントのグループである。フラグメントのクラスタ化は、フラグメント間の相互作用を保つように、接続グラフにおいて、相互作用しているフラグメントをそれらの因果的順序で一緒に維持するであろう。図5は、接続グラフにおける顕著フラグメントのクラスタのグラフィカル表現を表している。図5の例において、5つのクラスタ502、504、506、508、及び510が存在する。1つのクラスタにおけるフラグメントは、他のクラスタにおけるフラグメントに接続していない。各クラスタは、1つ以上の接続されているフラグメントを含む。例えば、フラグメント5は、クラスタ502において、フラグメント0及びフラグメント1に関連付けられている。
いくつかの実施形態において、分析モジュール205は、関連顕著フラグメント、接続グラフ、又はクラスタに基づいて、顕著フラグメントのデータベースを作成及び更新するために、インデクサ207と通信する。他の実施形態において、分析モジュール205はまた、顕著フラグメントのセットを取得して、合成ビデオを生成するために、クエリモジュール209及び合成モジュール211と通信する。
インデクサ207は、顕著フラグメントのデータベースを構築及びインデクシングする機能を提供するためのソフトウェア及び/又はロジックを含み得る。次いで、顕著フラグメントのセットが、インデックスを使用してデータベースにクエリすることに基づいて、選択され、合成モジュール211を参照して以下で説明されるように、合成ビデオを生成するために、ビデオの非顕著部分と結合され得る。
いくつかの実施形態において、インデクサ207は、顕著性モジュール203及び/又は分析モジュール205から受信された複数の顕著フラグメントを記憶する。各顕著フラグメントは、メタデータに関連付けられている。メタデータは、少なくとも、原ビデオに対する顕著フラグメントの開始時間及び終了時間、原ビデオフレームにおける顕著フラグメントのフレームの空間的位置等を含む。顕著フラグメントとともにメタデータをファイルとして記憶する代わりに、インデクサ207は、そのような視覚的情報を記憶するためのデータベースを作成する。例えば、インデクサ207は、顕著フラグメント及びメタデータを記憶するために、データストレージ243上にデータベースを作成する。
顕著フラグメントをデータベースに記憶することは、特に有効である。第1に、インデクサ207は、例えば、顕著フラグメントに関連付けられたメタデータを使用して、データベースに記憶される視覚的情報をインデクシングすることができ、したがって、顕著フラグメントの高速な検索を提供することができる。第2に、顕著フラグメントのデータベースを構築及びインデクシングすることは、ビデオのクエリ駆動型再構成を可能にし、このことは、クエリモジュール209を参照して、以下で詳細に説明される。第3に、顕著フラグメントのデータベースは、情報の視覚化を可能にする。視覚的情報をデータベースに記憶することによる他の利点が存在することも、当業者であれば認識されよう。
いくつかの実施形態において、記憶、インデクシング、及び伝送の前に、インデクサ207は、顕著フラグメントを、固定時間長(例えば、1秒、3秒等)の短いセグメントへと分解する。各セグメントは、MPEGトランスポートストリーム(MPEG−TS)プロトコル、HTTPライブストリーム(HLS)プロトコル、又は動的適応ストリーミングオーバーHTTP(DASH)プロトコルにおけるトランスポートストリーム(TS)ファイルに対応し得る。例えば、インデクサ207は、21秒のフラグメントを、7つのセグメントへと分解する。各セグメントは、3秒のスタンドアロンビデオを格納したTSファイルである。いくつかの実施形態において、インデクサ207はまた、固定時間長のセグメントをパックするように、顕著フラグメントの長さを調整する。
顕著フラグメントをセグメントの形態で編成することに加えて、インデクサ207は、セグメントをインデクシングし、セグメント及び対応するフラグメントとともにインデックスをデータベースに記憶する。顕著フラグメントを構成するセグメントをインデクシングすることは、有用である。例えば、セグメントのインデックスに基づいて、顕著フラグメント全体ではなく、顕著フラグメントの諸部分(例えば、所定のセグメント)が、ユーザからのクエリに応じて、検索・取得されて、ユーザに返されるようになることが可能である。したがって、伝送時間及びネットワーク帯域幅が低減されるようになる。
インデクサ207は、データベースから検索されるデータの速度を向上させるために、顕著フラグメントのデータベースをインデクシングする。なぜならば、検索される必要があるデータベースにおけるレコードの数は、インデックスが、データを特定して取得するために使用される場合には、限定されるからである。インデクサ207はまた、顕著フラグメントに対する変化を反映するように、データベースを更新する。いくつかの実施形態において、インデクサ207は、フラグメントの開始時間及び終了時間等の、顕著フラグメントに関連付けられたメタデータに基づいて、顕著フラグメントのデータベースをインデクシングする。他の実施形態において、インデクサ207は、顕著フラグメントの接続グラフに基づいて、顕著フラグメントのデータベースをインデクシングする。接続グラフが、時空間のオーバーラップに基づいて、分析モジュール205により生成された場合には、インデクサ207は、外観の点で類似しており時間の点で近い顕著フラグメントをインデクシングする。接続グラフが、因果性情報に基づいて、分析モジュール205により生成された場合には、インデクサ207は、原因結果関連性を有する顕著フラグメントをインデクシングする。いくつかの他の実施形態において、インデクサ207はまた、分析モジュール205から受信されたクラスタ化情報に基づいて、顕著フラグメントのデータベースをインデクシングすることができる。例えば、インデクサ207は、図5の接続グラフに示される5つのクラスタに、クラスタ番号A、B、C、D、及びEをそれぞれ割り当て、対応するクラスタ番号A〜Eに基づいて各フラグメントにアクセスすることができるように、図5における顕著フラグメントをインデクシングすることができる。結果として、フラグメント0、1、及び5は、クラスタ番号Aに基づいてアクセスされ得、フラグメント7、8、10、14、15、及び17は、クラスタ番号Bに基づいてアクセスされ得る、等である。
どのようにして、インデクサ207が、分析モジュール205と通信して、顕著フラグメントのデータベースを作成及び更新するかの複数の変形形態が存在し得る。いくつかの実施形態において、インデクサ207は、顕著性モジュール203から顕著フラグメントを受信し、顕著フラグメントのデータベースを作成/更新する。次いで、分析モジュール205は、(例えば、ユーザにより定義された関連性に基づいて)顕著フラグメントのクエリに関連する顕著フラグメントを取得し、これらの関連フラグメントを接続した接続グラフを生成する。いくつかの実施形態において、分析モジュール205は、関連フラグメントの接続グラフを生成し、顕著フラグメントのデータベースを作成及び更新するために、接続グラフにおけるフラグメントをインデクサ207に送信する。他の実施形態において、分析モジュール205は、関連フラグメントの接続グラフを生成し、接続グラフにおけるフラグメントをインデクサ207に送信する。インデクサ207は、接続グラフに基づいて、顕著フラグメントのデータベースを作成及び更新する。次いで、分析モジュール205は、データベースから顕著フラグメントを取得し、グラフ接続に基づいて、フラグメントをクラスタ化する。いくつかの他の実施形態において、分析モジュール205は、関連フラグメントの接続グラフを生成し、接続グラフにおける接続に基づいて、フラグメントをクラスタ化し、接続グラフ及びクラスタに基づいて、顕著フラグメントのデータベースを作成及び更新するために、接続グラフにおけるフラグメントとともにクラスタをインデクサ207に送信する。これらの変形形態は、図13A〜図13Dを参照して、以下で詳細に説明される。
クエリモジュール209は、ユーザ入力に基づくクエリを生成し、顕著フラグメントのデータベースにクエリする機能を提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、クエリは、顕著フラグメントに関連する。例えば、クエリモジュール209は、ビデオのうちの、顕著フラグメントに対応する部分のユーザ選択に応じて、顕著フラグメントに関連するクエリを生成する。クエリモジュール209は、顕著フラグメントのデータベースにクエリして、クエリされた顕著フラグメントに関連する全てのフラグメントを取得する。関連性は、接続グラフにおいて示される、あるいは、関連性は、ユーザにより定義される。クエリはまた、2つ以上の顕著フラグメントにも関連し得る。例えば、クエリモジュール209は、第1の顕著フラグメント及び第2の顕著フラグメントに関連するクエリを生成する。他の実施形態において、クエリは時間間隔である。例えば、クエリモジュール209は、ユーザ入力に基づく時間間隔内の全てのフラグメントをクエリするためのクエリを生成する。他の実施形態において、クエリは、複数の顕著フラグメントのうちの顕著フラグメントに関連付けられた特性であり得る。例えば、クエリは、特定の方向(例えば、優勢な方向)の動きにあるオブジェクトを示すことであり得る。例えば、タグ、キーワード、メタデータに基づくクエリといった、多く他のタイプのクエリ又はクエリの組合せが存在することが、当業者であれば認識されよう。いくつかの実施形態において、クエリモジュール209は、合成モジュール211と通信して、合成ビデオを合成するために、クエリに基づいて、顕著フラグメントのセットを取得する。
図6〜図8は、クエリフラグメントと、クエリフラグメントに関連する取得された顕著フラグメントと、のグラフィカル表現を示している。図6は、ユーザ入力に基づいて生成されたクエリフラグメントのグラフィカル表現を表している。顕著性モジュール203は、空港の監視ビデオから複数の顕著フラグメントを抽出し、インデクサ207は、顕著フラグメントをデータベースに記憶してインデクシングする。ユーザ(例えば、分析者)が、監視ビデオの画像/フレーム602の一部分を選択すると、これは、クエリフラグメント604を生成するようにクエリモジュール209をトリガする。クエリフラグメント604は、フレーム602を含み、また、そのインデックスに応じたフラグメント31としても参照される。
クエリモジュール209は、関連フラグメントを検索・取得するようにデータベースにクエリするためのクエリフラグメントを生成する。図6の例において、ユーザがフラグメント31になぜ関心があるのかの手がかりは存在しない。ユーザは、画像602における2人の人が互いと交差したときに何が起こったかに関心があったのかもしれないし、あるいは、ユーザは、画像における女性により所持されているバッグの中身を知りたかったのかもしれない。画像602を選択したユーザの意図は分からないかもしれないが、システム100は、それでも、例えば、接続グラフにおいてクエリフラグメントに関連するフラグメントを取得することにより、ユーザがさらにビデオから何を調べたらよいかのスマートなレコメンデーションを提供することができる。
図7は、図6に示されるクエリフラグメントに関連する顕著フラグメントを接続している接続グラフ700を表している。接続グラフ700は、6つのノードを含み、各ノードは、顕著フラグメントを表している。中心ノード702は、クエリが生成された生成元のフラグメント31である。分析モジュール205は、時空間のオーバーラップに基づいて、フラグメント31に関連するフラグメント26、28、30、32、及び33を識別して接続する(例えば、分析モジュール205は、同じ顕著オブジェクト(群)が2つのフラグメントにおいて出現し、一方のフラグメントにおける顕著オブジェクト(群)が、他方のフラグメントにおける顕著オブジェクト(群)と相互作用していることを理由として、これらの2つのフラグメントを接続する)。斜線背景により示されているフラグメント26、28、及び30は、中心ノードにおけるクエリフラグメント31に対して前の時間におけるフラグメントであり、四角背景により示されているフラグメント32及び33は、クエリフラグメント31に対して後の時間におけるフラグメントである。したがって、フラグメント31が、監視ビデオから、午前10:30〜午前10:33の間で抽出されている場合、フラグメント26、28、及び30は、午前10:29〜午前10:31の間であり得、フラグメント32及び33は、午前10:32〜午前10:35の間であり得る。フラグメント31と、関連フラグメント26、28、30、32、及び33と、の間には、画像外観合致も存在する。例えば、分析モジュール205は、フラグメント29が、フラグメント31における2人の人から離れた位置に立っている人を含むことを理由として、接続グラフ700からフラグメント29を除外することができる。図8は、図7の接続グラフ700に示される顕著フラグメントのグラフィカル表現800を表している。矢印は、関連顕著フラグメント間の接続を示している。例えば、矢印802及び804は、接続グラフ700において、フラグメント26が、フラグメント28を介して、フラグメント31に接続していることを示している。
図2Aの例に戻ると、合成モジュール211は、ビデオに関するクエリを受信したことに応じて、合成ビデオを合成する機能を提供するためのソフトウェア及び/又はロジックを含み得る。合成ビデオは、クエリに基づいて取得された顕著フラグメントに対応する、原ビデオの情報を強調する。対照的に、合成ビデオは、顕著フラグメントのうちの残り(すなわち、取得されなかったフラグメント)に含まれる情報を含まない。合成ビデオは、原ビデオとは異なるが、これは、もっともらしい適切なビデオコンテンツである。
図2Bは、合成モジュール211の一実施形態を示すブロック図を表している。図2Bにおいて、合成モジュール211は、任意的なクラスタ化モジュール215、時間シフトモジュール217、重み編集モジュール219、歪みモジュール221、及び組み立てモジュール223を含む。
クラスタ化モジュール215は、顕著フラグメントをクラスタに分類する機能を提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、合成モジュール211が、時間間隔のクエリを受信すると、合成モジュール211は、クエリモジュール209と通信して、この時間間隔内に生じている全てのフラグメントを取得し、これらのフラグメント並びにこれらのフラグメントに関連付けられた開始時間及び終了時間に基づいて、合成ビデオを生成する。しかしながら、再組み立てされたビデオが、長い場合又はアクティビティのない大きな期間を含む場合、合成モジュール211は、概要ビデオを作成することができる。概要ビデオは、原ビデオの間隔における異なる時点において生じている複数のフラグメントが、一緒にスタックされて同時に表示される合成ビデオであり、それにより、ビデオの長さを短くする。例えば、クエリモジュール209は、ビデオの午後1:46〜午後2:46の間の全てのアクティビティを5分の合成ビデオにおいて見ることを要求するユーザの入力に基づくクエリを生成することができる。次いで、合成モジュール211は、クエリに含まれる5分の時間長の要求に応じて、5分の概要ビデオを生成する。「合成ビデオ」という用語及び「概要ビデオ」という用語は、本明細書における説明において同義に使用されることがある。
概要ビデオを生成する際の1つの課題は、ビデオフラグメントの因果関連性に関連する。合成モジュール211は、様々なフラグメントの順序を考慮することなしには、ビデオにおける因果的相互作用を再編成することができない。そうである場合、結果として生じる概要は、意味をなさないであろう。例えば、図6〜図8におけるフラグメント26、28、30、31、32、及び33を再編成することは、意味をなさない概要ビデオをもたらす可能性がある。いくつかの実施形態において、合成モジュール211は、概要ビデオにおいて因果的相互作用を保つためのクラスタ化モジュール215を含む。クエリに応じて、クラスタ化モジュール215は、クエリモジュール209と通信して、時間間隔に関連する顕著フラグメント及び関連付けられた接続グラフを取得することができる。クラスタ化モジュール215は、接続されている構成要素を介する接続に基づいて、接続グラフをクラスタに分類する。クラスタは、他のクラスタに含まれるフラグメントに接続していないフラグメントのグループであり、例えば、クラスタは、図5に示されている。すなわち、異なるクラスタ間のフラグメントは、時空間の関連性又は因果関連性を有しない。クラスタ化は、クラスタにおいて、全ての相互作用しているフラグメントをそれらの因果的順序で一緒に維持する。クラスタ化モジュール215は、複数のクラスタが同時に生じ得ることを確実にするために、クラスタを時間シフトすることに基づいて概要ビデオを完成させるように、クラスタを組み立てモジュール223に送信する。
上述したように、いくつかの実施形態において、クラスタ化モジュール215は、データベース作成の前にクラスタ化を実行でき、したがって、より高速なクエリ検索が可能となるように、分析モジュール205に任意的に含められてもよい。接続グラフをクラスタ化した結果として、インデクサ207は、開始時間及び終了時間又はグラフ接続に基づいてだけでなく、クラスタ番号等のクラスタ化情報に基づいて、顕著フラグメントのデータベースをインデクシングすることができる。
時間シフトモジュール217は、概要ビデオを生成するときに顕著フラグメント及び/又はクラスタを順序付けるための時間シフトを決定する機能を提供するためのソフトウェア及び/又はロジックを含み得る。概要ビデオを、視覚的に興味を引くものにするために、時間シフトモジュール217は、異なるフラグメントにおけるオブジェクト間のオーバーラップを最小化するための1つ以上の時間シフトを決定する。多くのフラグメントが、ビデオにおいて異なる時点で生じており、ビデオフレームにおいて同じ空間的位置で生じているビデオを考えてみると、時間シフトモジュール217は、概要ビデオの総時間及び概要ビデオにおける複数のフラグメント間の空間のオーバーラップが低減されるように、適切な時間シフトをもってフラグメントを時間的に配置することにより、概要最適化を実行する。
いくつかの実施形態において、時間シフトモジュール217は、オーバーラップがゼロ又は最小であり、総概要ビデオ長が短い又はユーザにより要求された長さに近いように、エネルギー関数を使用して、概要ビデオにおけるフラグメントについての適切な時間シフトを算出する。いくつかの実施形態において、時間シフトモジュール217はまた、概要を作成するときに相互作用又は因果的アクティビティが狂わされることのないように、合成モジュール211の他のモジュールと通信して、フラグメントについてのこの概要最適化をクラスタへと拡張する。例えば、概要ビデオを生成するときに、モジュール215、217、及び223は、複数のクラスタが概要ビデオにおいて同時に生じるように、クラスタを時間シフトするよう通信することができる。
概要ビデオのフレームにおける同じ空間的位置において生じるフラグメントは、本明細書において衝突と呼ばれる。時間シフトモジュール217により実行される、時間シフトに基づく最適化の1つの目的は、最小の衝突を伴う概要ビデオを作成することである。時間シフトモジュール217は、エネルギー関数を使用して、衝突コストを決定することもできるし、概要ビデオを得るために他の方法を使用することもできる。例えば、時間シフトモジュール217は、背景領域を増大させて且つ/又は前景領域を低減させて、ほとんど衝突のない又は衝突がゼロである、できるだけ多くのビデオフラグメントを同時に組み込むことができる。この方法は、より滑らかなビデオを作成することができるが、背景を増大させる又は前景を縮小若しくは拡大させるためのより多くの計算を必要とする。
重み編集モジュール219は、フラグメントの顕著オブジェクトの動きに基づいて、重みを顕著フラグメントに割り当てる機能を提供するためのソフトウェア及び/又はロジックを含み得る。重み編集モジュール219は、概要ビデオを生成する際の、静止しているオブジェクトに関連する問題を解決するために、フラグメントを重み付けする。
置き忘れられた荷物のシナリオを考えてみる。このシナリオにおいて、荷物(例えば、スーツケース)が、ビデオのシーンに入り、ビデオの時間長の残りを通じて、そこに留まっている。この時間期間中、複数の人が、この放っておかれた荷物のそばを歩いており、カメラから荷物が見えないようにしている。結果として、多くのフラグメントが、荷物の同じ長いフラグメントと相互作用する。なぜならば、荷物が、同じスポットに置かれたままであるからである。すなわち、この放っておかれた荷物に対応する長いフラグメントは、多くの他のフラグメントに接続される。その結果、クラスタ化モジュール215は、分析モジュール205によりビデオから生成された接続グラフをクラスタ化するときに、クラスタ化モジュール215は、ビデオの長さとほとんど同じ長さである非常に大きなクラスタを決定するであろう。結果として、そのようなクラスタを使用して生成される概要ビデオの時間は低減しないことになる。図9Aは、静止しているオブジェクト及び動いているオブジェクトの軌跡のグラフィカル表現を表している。図9Aの左側には、動いているオブジェクトの軌跡が、このオブジェクトの動いている中心の曲線902で示されている。図9Aの右側には、静止しているオブジェクトの軌跡が、このオブジェクトの動いていない中心の直線904で示されている。図9Bは、静止しているオブジェクトと動いているオブジェクトとの間の軌跡相互作用のグラフィカル表現を表しており、例えば、922に示される、静止しているオブジェクトの軌跡が、時間長を通じて、924、926、及び928に示される、動いているオブジェクトの軌跡とどのように相互作用しているか、を示している。
いくつかの実施形態において、静止しているオブジェクトに関連する制限を克服するために、重み編集モジュール219は、顕著フラグメントの顕著オブジェクトが、ある時間期間にわたってどれだけ動いたかを測定することに基づいて、重みを顕著フラグメントに関連付ける。例えば、重み編集モジュール219は、ビデオの全長にわたって静止しているオブジェクトの顕著フラグメントには小さな重みを関連付け、動いているオブジェクトの顕著フラグメントには大きな重みを関連付けることができる。いくつかの実施形態において、ビデオの顕著フラグメントにおいて頻繁に止まって動いているオブジェクトに関して、重み編集モジュール219は、顕著フラグメントを小さなチャンクへと分離し、重みを、顕著フラグメントの小さなチャンクに割り当てる。例えば、重み編集モジュール219は、ビデオにおける所定の数(例えば、50個)の連続するフレームを選択し、オブジェクトがこれらのフレームにおいて動いているかどうかを判定する。オブジェクトが動いている場合、重み編集モジュール219は、より高い重みを割り当てる。そうでない場合、重み編集モジュール219は、より低い重みを割り当てる。いくつかの実施形態において、重み編集モジュール219は、図9Aに示されるように、顕著オブジェクトの中心が、フラグメント、又はフレームのチャンクにおいて、最初のフレームから最後のフレームまでにどれだけ動いたかに基づいて、フラグメント、又はフレームのチャンクにおける顕著オブジェクトの動きを測定する。
いくつかの実施形態において、重み編集モジュール219は、二値重みをフラグメントに割り当てる。例えば、重み編集モジュール219は、静止しているオブジェクトのフラグメントは0の重みを有すると決定し、動いているオブジェクトのフラグメントは1の重みを有すると決定する。他の実施形態において、重み編集モジュール219は、重みの連続値をフラグメントに割り当てる。いくつかの実施形態において、重み編集モジュール219はまた、重み付けを、クラスタ化モジュール215により決定されたクラスタに拡張することができる。重みが決定されると、重み編集モジュール219は、重みに基づいて、例えば、衝突コストを概要ビデオの作成に関連付けるべきかどうかを決定するためにフラグメントの重みを考慮して、概要ビデオを作成するように、組み立てモジュール223に通知する。
いくつかの実施形態において、重み編集モジュール219はまた、合成ビデオを生成するときに、フラグメントをスタック又はレイヤ化する(例えば、重みに基づいて、各フラグメントを、異なるスタック順序又はレイヤに割り当てる)。重み編集モジュール219は、スタックの一番下に、低い重みを有するフラグメントを配置し、スタックの一番上に、高い重みを有するフラグメントを配置することができる。(時間シフト後の)2つのフラグメントの部分がオーバーラップしている場合、低い方の重みを有するフラグメントに対応するオーバーラップしている部分が、高い方の重みを有するフラグメントからの画像により遮蔽されることになる。いくつかの実施形態において、重み編集モジュール219は、動きのレベルに基づいて、フラグメントをスタックする。例えば、重み編集モジュール219は、静止しているオブジェクトを、背景のものと同様に扱い、一番下のレイヤに、静止しているオブジェクトを配置することができる。オーバーラップが存在する場合、より低いレイヤにおける静止しているオブジェクトの画像は、より高いレイヤにおける動いているオブジェクトの画像により遮蔽されることになる。
フラグメント又はクラスタを重み付けすることには様々な利点がある。第1に、重みは、フラグメントが受け得る衝突の数を決定する。例えば、静止しているフラグメントが0の重みを有する場合、できるだけ多くの衝突が、衝突コストに重みを乗算することにより、概要生成の際に用いられ得る。したがって、重み編集モジュール219は、時間シフトモジュール217を参照して上述したように、エネルギー関数のみを使用して衝突コストを決定する代わりに、重みを用いたエネルギー関数を組み入れて衝突コストを決定することを可能にする。重み編集の別の利点は、例えば、動きのレベルに基づいて異なるフラグメントをレイヤ化できることであり、したがって、ぼやけ、コーナーシャープネス等といった点で画質を向上させる。さらに、重み編集は、フラグメントが低い重みを有する場合には、フレームをスキップすることにより、動いていない/ゆっくり動いているオブジェクトのフレームの数を低減させ、それにより、ネットワーク帯域幅及び他のリソースの消費を低減させる。
歪みモジュール221は、ビデオの許容アクティビティゾーンを識別することに基づいて空間シフトを決定する機能を提供するためのソフトウェア及び/又はロジックを含み得る。ビデオの概要を生成するときに、歪みモジュール221は、ビデオにおける同じ位置で生じる双方向往来によって引き起こされる衝突の数を低減させるために、概要ビデオにおいてフラグメントを配置するための空間的にシフトされた位置を決定する。
これまでのところ、ビデオの同じ空間的位置において生じているフラグメントの多くのクラスタが存在するときには、時間シフトモジュール217が、時間の低減を実現するために、時間シフトを決定する。しかしながら、ビデオが、反対方向に動いている異なるオブジェクトも含む場合、時間シフトモジュール217により使用される時間シフト方法は、いくかの衝突を回避することができない。そのような場合において、概要の時間を増大させることなく、衝突を効果的に最小化することはできない。すなわち、時間シフト方法は、同じ位置で生じる双方向往来によって引き起こされる衝突問題を完全には解決することができない。
いくつかの実施形態において、歪みモジュール221は、時空間フラグメント歪み方法を適用して、衝突の数を最小化することができる。いくつかの実施形態において、歪みモジュール221は、ビデオの非顕著部分から、顕著アクティビティのほとんどが生じている領域を識別する。この領域は、許容アクティビティゾーンとも呼ばれる。図10Aは、例示的な許容アクティビティゾーンのグラフィカル表現を表している。図10Aにおいて、破線ボックス内の領域1002及び1004が、許容アクティビティゾーンであり、この領域において、動きのほとんどが、ビデオにおいて生じている。許容アクティビティゾーンが識別されると、歪みモジュール221は、時間シフトモジュール217と通信して、フラグメントを時間的且つ空間的に歪ませることにより、どれだけの数のフラグメントを同時に重ね合わせることができるかを決定する。すなわち、歪みモジュール221は、総衝突コストを低減させるために、フラグメントのいくつかのフレームにおける顕著オブジェクトを所定の量だけ空間的に移動させる。顕著オブジェクトの移動量は、許容アクティビティゾーンと、フラグメントの軌跡全体の滑らかさと、により制限される。いくつかの実施形態において、歪みモジュール221は、ユーザ入力に基づいて、許容アクティビティゾーンを決定する。他の実施形態において、歪みモジュール221は、全てのフラグメントを同時に考慮する画像プレーン全体におけるアクティビティのレベルを決定することにより自動的に、許容アクティビティゾーンを決定する。
概要ビデオを作成するために、歪みモジュール221は、衝突コストが最小であるように、空間的にシフトされた位置においてフラグメントを配置することにより、複数のフラグメントを同時に再生できるかどうかを判定する。空間シフトは、許容アクティビティゾーンにより制限される。ビデオの非顕著部分は変更され得ないので、歪みモジュール221は、衝突を低減させるために、フラグメントを歪ませる。歪みモジュール221は、非顕著部分のサイズ又は顕著フラグメントのスケールを、不変のままにし、したがって、背景を増大させること又は前景を低減させることに関連していた総計算負荷を低減させる。
図10Bは、許容アクティビティゾーン上での空間的位置シフトのグラフィカル表現を表している。シナリオ1020において、歪みモジュール221は、バウンディングボックス1022により示される許容アクティビティゾーンを識別し、軌跡1024と軌跡1026との相互作用により示される衝突を検出する。歪みモジュール221は、次いで、衝突の数を低減させるために、軌跡1026を軌跡1028へとシフトさせ、これは、軌跡1024と軌跡1026との間の相互作用よりも少ない、軌跡1024と軌跡1028との間の相互作用が存在することを意味する。同様に、別のシナリオ1030において、歪みモジュール221は、バウンディングボックス1032により示される許容アクティビティゾーンを識別し、軌跡1034と軌跡1036との相互作用として示される衝突を検出する。歪みモジュール221は、衝突の数を低減させるために、軌跡1036を軌跡1038へとシフトさせる。これらのシナリオにおいて、同時に再生されたときの2つのフラグメントは、人が反対方向に移動していることに起因する衝突をもたらし、小さな時間シフトによっては該衝突を回避することができない。しかしながら、破線により示されるように、フラグメントのうちの1つのフラグメントのフレームを空間的にシフトさせることにより、衝突の数が低減される。
図2Bに戻ると、組み立てモジュール223は、合成ビデオを生成する機能を提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、クエリモジュール209は、ユーザ入力に基づいて、ビデオに関するクエリを生成する。クエリは、顕著フラグメント、時間間隔、又は、顕著フラグメントに関連付けられた特性であり得る。クエリに応じて、組み立てモジュール223は、クラスタ化モジュール215、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221と通信して、顕著フラグメントのセット、ビデオの非顕著部分、時間シフト情報、顕著フラグメントに関連付けられた重み、空間シフト情報等を取得し、時間シフト情報、顕著フラグメントに関連付けられた重み、及び空間シフト情報に基づいて、顕著フラグメントのセット及び非顕著部分を使用して、ビデオの合成ビデオを生成する。いくつかの実施形態において、モジュール223、215、217、219、及び221は、互いと通信して、ビデオから抽出された複数の顕著フラグメントから、第1のクエリに基づいて顕著フラグメントの第1のセットを取得して、第1の合成ビデオを生成する。これらのモジュールはまた、協働して、顕著フラグメントの第1のセットから、第2のクエリに基づいて顕著フラグメントの第2のセットを取得して、第2の合成ビデオを生成する、等である。このように、合成ビデオの階層が形成される。例えば、第1の人及び第2の人を含む第1の合成ビデオが、第1のクエリに基づいて、顕著フラグメントの第1のセットから生成され、第2の人のみを含み第2の合成ビデオが、第2の人の第2のクエリに応じて、顕著フラグメントの第1のセットから取得された顕著フラグメントの第2のセットに基づいて生成される。
いくつかの実施形態において、組み立てモジュール223は、時間シフト情報、顕著フラグメントに関連付けられた重み、及び空間シフト情報に基づいて、ビデオの非顕著部分に顕著フラグメントを重ね合わせて、合成ビデオを生成することができる。組み立てモジュール223はまた、再生、共有、又は記憶のために、合成ビデオをユーザに提供するように、ユーザインタフェースエンジン213と通信することができる。例示的な合成ビデオからの画像が、原ビデオの画像と比較されるように、図11A及び図11Bに示されている。
組み立てモジュール223は、時間シフト情報、顕著フラグメントに関連付けられた重み、及び空間シフト情報を使用して、例えば、全てのフラグメントの新たな開始時間を決定する目的関数を最適化することにより、合成ビデオの生成を最適化する。いくつかの実施形態において、組み立てモジュール223は、0の重みを有するフラグメントが背景とみなされ、他のフラグメントが、増大した値の重みに基づいてビデオ上でレイヤ化されるように、フラグメントの各々に関連付けられた重みに依拠して、フラグメントを順序付ける。他の実施形態において、組み立てモジュール223はまた、他のクラスタ内のフラグメントとの衝突を最小化するために、許容アクティビティゾーン内で空間的に歪められる且つ/又は時間シフトされる、クラスタ内のフラグメントを一緒に考慮する。
ビデオの複数の顕著フラグメントが、データベースにおいてインデクシングされて記憶されるので、合成モジュール211の他のコンポーネント及びビデオ分解アプリケーション103の他のモジュールと通信する組み立てモジュール223は、クエリに基づいて、合成ビデオを動的に生成することができる。例えば、ビデオの第1の顕著フラグメントの異なるクエリに応じて、組み立てモジュール223は、異なる合成ビデオを生成することができる。なぜならば、第1の顕著フラグメントに関連しデータベースから取得された顕著フラグメントは異なるからである。第1の顕著フラグメントの単一のクエリの場合でも、組み立てモジュール223は、分析モジュール205により選択された関連顕著フラグメントの異なるセットに基づいて、異なる合成ビデオを生成することができる。例えば、合成ビデオは、クエリに応じて取得されたクラスタごとに生成され得る。別の合成ビデオを提供することにより、本手法は、ビデオの画像をクエリするユーザの意図が不明確である場合でも、ユーザのニーズに適合させる。
組み立てモジュール223がクエリに基づいて合成ビデオを動的に生成できることは、特に有効である。長いビデオの時間期間にわたるシーンを要約した短いビデオ要約(例えば、ビデオ概要)を作成する手法が存在する。例えば、これらの手法は、1時間のビデオについて、異なる時間長を有するビデオ概要(例えば、2分のビデオ概要、10分のビデオ概要)を生成し、ユーザクエリに応じて、所定の長さを有するビデオ概要をユーザに返し得る。しかしながら、そのような手法は、本開示において説明されたように結果を生成する前ではなく、結果を生成した後にインデックスを構築し得るに過ぎず、例えば、これらの手法は、クエリ結果を生成するために使用される画像の諸部分ではなく、クエリ結果(例えば、ビデオ概要)をインデクシングして記憶する。したがって、異なる時間長を有する複数のビデオ概要が、生成され、インデクシングされ、データベースに記憶されており、ユーザが、所定の長さを有するビデオ概要についてクエリする場合、これらの手法は、インデックスに基づいてデータベースを検索し、所定の長さを有するビデオ概要をユーザに返すことになる。これらの既存の手法は、所定の時間長に基づいて、同じビデオ概要をユーザに常に提供し、これは動的でない。対照的に、本開示において説明された手法は、よりフレキシブルであり、より効率的であり、ユーザのニーズにより適合する。
図11A及び図11Bは、原ビデオの画像と原ビデオに基づいて合成された合成ビデオの画像との間の比較のグラフィカル表現を表している。上述したように、図6に示されるフラグメント31の画像602のクエリに応じて、分析モジュール205は、フラグメント31に関連する顕著フラグメントのセットを決定し、合成ビデオを生成するために、顕著フラグメントのセットを合成モジュール211に送信する。分析モジュール205により全ての顕著フラグメントから選択された顕著フラグメントのセットは、図7及び図8に示されるフラグメント26、28、30、31、32、及び33を含む。ビデオのこれらの顕著フラグメント及び非顕著部分に基づいて合成モジュール211により生成された結果の合成ビデオが、図11A及び図11Bに示されている。
図11A及び図11Bにおいて、上側部分に示される画像1102、1104、1106、1108、及び1110は、原監視ビデオから取得されたものであるのに対し、下側部分に示される画像1102a、1104a、1106a、1108a、及び1110aは、上記監視ビデオに基づいて合成された合成ビデオから取得されたものである。例えば、1102と1102a、1104と1104a、1106と1106a、1108と1108a、及び、1110と1110aといった各画像ペアは、原ビデオと合成ビデオとの間の差異を比較できるように、同じ時間において取得されたものである。また、画像1102〜1110及び画像1102a〜1110aは、時系列に並べられている。
図11Aにおいて、画像1102と画像1102aとの比較は、原ビデオの後方において立っている人が、合成ビデオから除去されていることを示している。この人は、フラグメント26の通行している2人の人から離れた位置にいることを理由として、除去される。したがって、分析モジュール205は、フラグメント31に関連する顕著フラグメントのセットから、この人の顕著フラグメントを除外する。この人の顕著フラグメントがないので、合成モジュール211により生成された合成ビデオは、この人を含まない。同様に、図11Bにおいて、原ビデオの画像1106、1108、及び1110内の人は、合成ビデオの画像1106a、1108a、及び1110a内に存在しない。しかしながら、原ビデオにおいて、フラグメント30、31、及び30の、バッグを所持している女性と、フラグメント28、31、及び32の、杖を持っている男性と、は、合成ビデオの画像に依然として含まれている。なぜならば、分析モジュール205は、時空間のオーバーラップに基づいて、女性、男性を含むフラグメント28、30、31、32、及び33が関連すると決定したからである。原ビデオと比較すると、合成ビデオは、後方における人に関する関連しない情報を無視し、ユーザにとって関心のある女性及び男性に関する情報のみを含む。したがって、合成ビデオを使用することは、原監視ビデオの全ての構成要素を見る、時間がかかり退屈なタスクから、且つ/又は、ビデオにおけるさらなる要素により気が逸らされることから、ユーザを助け、効率性及び正確性を向上させる。図11A及び図11Bにおける合成ビデオの生成は、1つの方法において、特定の順序の方法ステップで説明されたに過ぎないことが、当業者であれば認識されよう。合成ビデオを生成するための他の方法及び/又は合成ビデオを生成するための方法のステップを実行する他の順序が存在する。例が、図13A〜図13Dを参照して、以下で説明される。
図2Bに戻ると、ユーザインタフェースエンジン213は、例えばディスプレイデバイス239を介して、ユーザインタフェースをユーザに提供するためのソフトウェア及び/又はロジックを含み得る。いくつかの実施形態において、ユーザインタフェースエンジン213は、ユーザが、ビデオの複数の顕著フラグメントを受け取り、ユーザが関心のある、複数の顕著フラグメントのうちの1つの顕著フラグメントのフレームの選択を送ることを可能にするユーザインタフェースを生成する。他の実施形態において、ユーザインタフェースエンジン213は、合成モジュール211から命令を受信し、ディスプレイデバイス239上に合成ビデオを表示させるグラフィカルユーザインタフェースデータを、通信ユニット241を介してクライアントデバイス115に送信する。いくつかの他の実施形態において、ユーザインタフェースエンジン213は、分析モジュール205と通信して、ビデオの選択された顕著フラグメントのセットを接続した接続グラフを含むユーザインタフェースを生成し、ユーザに表示するために、このユーザインタフェースをクライアントデバイス115に送信する。
図12は、ビデオを顕著フラグメントへと分解し、顕著フラグメントに基づいて合成ビデオを合成するための方法1200の一実施形態を示すフロー図を表している。上述したように、ビデオ分解アプリケーション103は、非顕著性モジュール201、顕著性モジュール203、分析モジュール205、インデクサ207、クエリモジュール209、及び合成モジュール211を含み得る。1202において、非顕著性モジュール201は、ビデオの非顕著部分を抽出する。1204において、顕著性モジュール203は、ビデオの複数の顕著フラグメントを抽出する。1206において、インデクサ207は、複数の顕著フラグメントのデータベースを構築する。1208において、合成モジュール211は、クエリを受信する。1210において、合成モジュール211は、分析モジュール205及びクエリモジュール209と通信して、複数の顕著フラグメントのデータベースから、クエリに基づいて、顕著フラグメントのセットを取得する。1212において、合成モジュール211は、ビデオの非顕著部分及び顕著フラグメントのセットに基づいて、合成ビデオを合成する。
図13A〜図13Dは、ビデオを、合成ビデオを合成するために使用される顕著フラグメントへと分解するための方法の実施形態を示すフロー図を表している。各図は、非顕著性モジュール201、顕著性モジュール203、分析モジュール205、インデクサ207、クエリモジュール209、及び合成モジュール211を含むビデオ分解アプリケーション103により実行される方法の変形形態を表している。
図13Aは、方法1300を表している。1302において、非顕著性モジュール201は、ビデオの非顕著部分を検出する。1304において、顕著性モジュール203は、ビデオの顕著オブジェクトの顕著部分を検出する。1306において、顕著性モジュール203は、関連顕著部分を結合して、顕著フラグメントを生成する。1308において、インデクサ207は、顕著フラグメントのデータベースを作成/更新する。1310において、クエリモジュール209は、データベースから、クエリに関連する顕著フラグメントを取得する。1312において、分析モジュール205は、取得された顕著フラグメントを使用して、接続グラフを生成する。1314において、合成モジュール211は、接続グラフにおける、クエリに関連する顕著フラグメントに基づいて、合成ビデオを合成する。
方法1300を使用すると、クエリモジュール209が、データベースから、クエリのオーバーラップしている時間間隔に基づく、クエリに関連するフラグメントと、全ての関連付けられたフラグメントと、を取得する。クエリモジュール209はまた、クエリに直接的にオーバーラップしているフラグメントを識別し、識別したフラグメントとオーバーラップしているフラグメントを取得することができる。取得されたフラグメントに応じて、分析モジュール205は、接続グラフを生成する。合成モジュール211は、接続グラフにおける全ての接続されているフラグメントを使用し、取得されたフラグメントの残りを無視して、合成ビデオを得る。
図13Bは、方法1320を表している。1322において、非顕著性モジュール201は、ビデオの非顕著部分を検出する。1324において、顕著性モジュール203は、ビデオの顕著オブジェクトの顕著部分を検出する。1326において、顕著性モジュール203は、関連顕著部分を結合して、顕著フラグメントを生成する。1328において、分析モジュール205は、顕著フラグメントの接続グラフを生成する。1330において、インデクサ207は、顕著フラグメントのデータベースを作成/更新する。1332において、クエリモジュール209は、分析モジュール205と通信して、データベースから、クエリに関連する顕著フラグメントを取得する。1334において、合成モジュール211は、取得された顕著フラグメントに基づいて、合成ビデオを合成する。
方法1320に基づくと、分析モジュール205が、まず、顕著フラグメントの接続グラフを生成し、インデクサ207が、グラフ接続情報に基づいて、データベースを更新する。クエリ(例えば、顕著フラグメント)を受信すると、合成モジュール211は、接続グラフにおいてクエリフラグメントに接続されているフラグメントを取得し、取得したフラグメントを使用して、合成ビデオを生成する。
図13Cは、方法1340を表している。1342において、非顕著性モジュール201は、ビデオの非顕著部分を検出する。1344において、顕著性モジュール203は、ビデオの顕著オブジェクトの顕著部分を検出する。1346において、顕著性モジュール203は、関連顕著部分を結合して、顕著フラグメントを生成する。1348において、分析モジュール205は、顕著フラグメントの接続グラフを生成する。1350において、インデクサ207は、接続グラフに基づいて、顕著フラグメントのデータベースを作成/更新する。1352において、分析モジュール205に含まれるクラスタ化モジュール215は、グラフ接続に基づいて、顕著フラグメントをクラスタ化する。1354において、クエリモジュール209は、分析モジュール205と通信して、データベースから、クエリに関連する顕著フラグメントを取得する。1356において、合成モジュール211は、取得された顕著フラグメントを含むクラスタを時間シフトすることにより、合成ビデオを合成する。
方法1340に基づくと、分析モジュール205が、まず、顕著フラグメントの接続グラフを生成する。クエリ(例えば、時間間隔)を受信すると、クエリモジュール209は、分析モジュール205と通信して、グラフ接続情報とともに、所与の時間間隔内のフラグメントを取得する。次いで、分析モジュール205は、取得されたグラフ及びクラスタについてのサブグラフを再組み立てする。合成モジュール211は、このクラスタ化されたフラグメントのセットを使用して、合成ビデオを生成する。
図13Dは、方法1360を表している。1362において、非顕著性モジュール201は、ビデオの非顕著部分を検出する。1364において、顕著性モジュール203は、ビデオの顕著オブジェクトの顕著部分を検出する。1366において、顕著性モジュール203は、関連顕著部分を結合して、顕著フラグメントを生成する。1368において、分析モジュール205は、顕著フラグメントの接続グラフを生成する。1370において、分析モジュール205に含まれるクラスタ化モジュール215は、グラフ接続に基づいて、顕著フラグメントをクラスタ化する。1372において、インデクサ207は、顕著フラグメントのデータベースを作成/更新する。1374において、クエリモジュール209は、分析モジュール205と通信して、データベースから、クエリに関連する顕著フラグメントを取得する。1376において、合成モジュール211は、取得された顕著フラグメントを含むクラスタを時間シフトすることにより、合成ビデオを合成する。
方法1360に基づくと、分析モジュール205が、まず、顕著フラグメントの接続グラフを生成する。インデクサ207は、グラフ接続情報及びクラスタ化情報を使用して、データベースを更新する。クエリ(例えば、時間間隔)を受信すると、クエリモジュール209は、分析モジュール205と通信して、グラフ接続情報及びクラスタ化情報とともに、所与の時間間隔内のフラグメントを取得する。合成モジュール211は、次いで、取得されたフラグメント及びクラスタ化情報を使用して、合成ビデオを生成する。
図14A及び図14Bは、合成ビデオを合成するための方法の実施形態を示すフロー図を表している。この方法は、クラスタ化モジュール215、時間シフトモジュール217、重み編集モジュール219、歪みモジュール221、及び組み立てモジュール223を含む合成モジュール211により実行される。
図14Aは、方法1400を表している。1402において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、ビデオから決定された顕著フラグメント及びクラスタを受信する。1404において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、ビデオの非顕著部分を受信する。1406において、重み編集モジュール219は、アクティビティの量に基づいて、受信したフラグメント及びクラスタの各々に関連付けられる重みを決定する。1408において、歪みモジュール221は、受信したフラグメント及びクラスタ、並びに受信したビデオの非顕著部分に基づいて、許容アクティビティゾーンを決定する。1410において、時間シフトモジュール217及び歪みモジュール221は、各フラグメント及びクラスタに適用される時空間歪みを決定する。1412において、組み立てモジュール223は、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221と通信して、重み付き編集を用いて概要ビデオを合成する。
図14Aにおける方法1400は、ビデオ概要がどのように作成されるかの一実施形態を表している。合成モジュール211は、フラグメント/クラスタを受信し、原ビデオの非顕著部分も受信する。これらを受信すると、合成モジュール211は、まず、クラスタ及び/又は個々のフラグメントの各々の重みを決定し、フラグメント及び非顕著入力を使用して、許容アクティビティゾーンを決定する。合成モジュール211は、次いで、この入力を使用して、各クラスタ又はフラグメントが受ける時間シフト及び空間シフトの両方を決定する。合成モジュール211は、重み付け情報を使用して、最終的な概要を決定する。
図14Bは、方法1450を表している。1452において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、ビデオから決定された顕著フラグメント及びクラスタを受信する。1454において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、ビデオの非顕著部分を受信する。1456において、重み編集モジュール219は、アクティビティの量に基づいて、受信したフラグメント及びクラスタの各々に関連付けられる重みを決定する。1458において、歪みモジュール221は、ユーザ入力に基づいて、許容アクティビティゾーンを決定する。1460において、時間シフトモジュール217及び歪みモジュール221は、各フラグメント及びクラスタに適用される時空間歪みを決定する。1462において、組み立てモジュール223は、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221と通信して、重み付き編集を用いて概要ビデオを合成する。
図14Bにおける方法1450も、ビデオ概要がどのように作成されるかを表している。合成モジュール211は、フラグメントを受信し、原ビデオの非顕著部分も受信する。これらを受信すると、合成モジュール211は、まず、クラスタ及び/又は個々のフラグメントの各々の重みを決定する。合成モジュール211は、次いで、この入力とともに、ユーザにより与えられた許容アクティビティゾーンを使用して、各クラスタ又はフラグメントが受ける時間シフト及び空間シフトの両方を決定する。合成モジュール211は、重み付け情報を使用して、最終的な概要を作成する。
図15A及び図15Bは、ビデオを顕著フラグメントへと分解し、顕著フラグメントに基づいて合成ビデオを合成するための方法の別の実施形態を示すフロー図を表している。上述したように、ビデオ分解アプリケーション103は、非顕著性モジュール201、顕著性モジュール203、分析モジュール205、インデクサ207、クエリモジュール209、及び合成モジュール211を含み得る。合成モジュール211は、クラスタ化モジュール215、時間シフトモジュール217、重み編集モジュール219、歪みモジュール221、及び組み立てモジュール223を含む。
図15Aは、ビデオの分解に基づいて、ビデオの顕著フラグメントのデータベースをどのように作成するかの一実施形態を表している。1502において、非顕著性モジュール201は、ビデオの非顕著部分を抽出する。1504において、顕著性モジュール203は、ビデオの顕著オブジェクトの顕著部分を検出する。1506において、顕著性モジュール203は、関連顕著部分を結合して、顕著フラグメントを生成する。1508において、重み編集モジュール219は、顕著フラグメントにおけるアクティビティに基づいて、重みを顕著フラグメントに関連付ける。1510において、インデクサ207は、顕著フラグメントに関連付けられたグラフ接続情報及びクラスタ化情報を使用して、顕著フラグメントのデータベースを作成/更新する。図15Aにおいて、フラグメントのついての重みは、データベースを更新する前に決定される。
図15Bは、図15Aにおいて収集された情報に基づいて、概要ビデオをどのように生成するかを表している。1512において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、データベースから、クエリに関連する顕著フラグメント及びクラスタとともに重みを取得する。1514において、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221は、ビデオの非顕著部分を受信する。1516において、歪みモジュール221は、ビデオの非顕著部分に基づいて、許容アクティビティゾーンを決定する。1518において、時間シフトモジュール217及び歪みモジュール221は、各フラグメント及びクラスタに適用される時空間歪みを決定する。1520において、組み立てモジュール223は、時間シフトモジュール217、重み編集モジュール219、及び歪みモジュール221と通信して、重み付き編集を用いて概要ビデオを合成する。
ビデオを顕著フラグメントへと分解し、顕著フラグメントに基づいて合成ビデオを合成するためのシステム及び方法が説明された。上記記載では、説明の目的で、多数の具体的な詳細が、上記で紹介された技術の完全な理解を提供するために記載されている。しかしながら、これらの具体的な詳細なくとも、本技術を実施できることが、当業者には明らかであろう。他の例において、説明を曖昧にしないようにするために、且つ、理解のしやすさのために、構造及びデバイスが、ブロック図の形態で示されている。例えば、本技術は、一実施形態において、ソフトウェア及び特定のハードウェアに関連して、上記では主に説明されている。しかしながら、本発明は、データ及びコマンドを受信し、サービスを提供する任意の周辺デバイスの一部として情報を提示することができる任意のタイプのコンピューティングシステムに適用可能である。
本明細書における「一実施形態」又は「ある実施形態」との言及は、その実施形態に関連して説明されている特定の特徴、構造、又は特性が、少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「一実施形態において」という語句の出現は、必ずしも全てが同じ実施形態を指しているとは限らない。
上述した詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに関する動作のアルゴリズム及び記号表現の観点で提示されている。これらのアルゴリズム的説明及び表現は、いくつかの状況において、データ処理分野の当業者により、該当業者の作業の内容を他の当業者に伝えるために使用される。アルゴリズムは、ここで、概して、所望の結果をもたらすステップのセルフコンシステントシーケンスと考えられる。これらのステップは、物理量の物理的操作を必要とするものである。通常、これらの量は、記憶される、伝送される、組み合わされる、比較される、及び他の形で操作されることが可能な電気信号又は磁気信号の形をとるが、必ずしもそうであるとは限らない。これらの信号を、ビット、値、要素、記号、文字、用語、数等と呼ぶことは、主に一般的な使用のために、時として都合がよいことが分かっている。
しかしながら、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられ、これらの量に適用される便宜的に過ぎないラベルであることに留意されたい。以下の説明から明らかなように別途具体的に記されない限り、本説明を通じて、「処理する」、「算出する」、「計算する」、「決定する」、「表示する」等といった用語を用いた記述は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを、コンピュータシステムメモリ若しくはレジスタ又は他のそのような情報記憶、伝送、若しくはディスプレイデバイス内の物理量として同様に表されるデータへと操作及び変換するコンピュータシステム又は同様の電子コンピューティングデバイスの動作及びプロセスを指すことが理解されよう。
本技術はまた、本開示における動作を実行する装置に関する。この装置は、必要な目的のために特別に構成されてもよいし、コンピュータに記憶されているコンピュータプログラムにより選択的にアクティブ化又は再構成される汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、以下の各々がコンピュータシステムバスに接続される、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、及び磁気ディスクを含む任意のタイプのディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、光カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリ、又は、電子命令を記憶するのに適した任意のタイプの媒体等であるがこれらに限定されるものではないコンピュータ読み取り可能な記憶媒体に記憶され得る。
いくつかの実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。一実施形態は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されるものではないソフトウェアにより実装される。
さらに、いくつかの実施形態は、コンピュータ又は任意の命令実行システムにより使用されるプログラムコード又はコンピュータ又は任意の命令実行システムに関連するプログラムコードを提供するコンピュータ使用可能な又はコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形をとることができる。本説明の目的では、コンピュータ使用可能な又はコンピュータ読み取り可能な媒体は、命令実行システム、装置、又はデバイスにより使用されるプログラム又は命令実行システム、装置、又はデバイスに関連するプログラムを含有、記憶、通信、伝搬、又は伝送することができる任意の装置とすることができる。
プログラムコードを記憶及び/又は実行するのに適したデータ処理システムは、システムバスを介してメモリ要素に直接的又は間接的に接続される少なくとも1つのプロセッサを含み得る。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、バルクストレージ、及び、コードが実行中にバルクストレージから取り出されなければならない回数を低減させるために少なくともいくつかのプログラムコードの一時的な記憶を提供するキャッシュメモリを含み得る。
入力/出力(I/O)デバイス(キーボード、ディスプレイ、ポインティングデバイス等を含むがこれらに限定されるものではない)が、システムに、直接的に又は介在するI/Oコントローラを介して、接続され得る。
データ処理システムが、介在するプライベートネットワーク又はパブリックネットワークを介して、他のデータ処理システム若しくはリモートプリンタ又は記憶デバイスに接続されるようになることを可能にするために、ネットワークアダプタも、システムに接続され得る。モデム、ケーブルモデム、及びイーサネット(登録商標)カードが、現在利用可能なタイプのネットワークアダプタのうちのほんの少しである。
最後に、本開示において提示されているアルゴリズム及びディスプレイは、特定のコンピュータ又は他の装置に固有的に関連するものではない。様々な汎用システムが、本出願における教示に従ったプログラムとともに使用されてもよいし、あるいは、より特殊化された装置を構築して必要な方法ステップを実行することが好都合であることがわかるかもしれない。様々なこれらのシステムに必要な構造が、以下の説明から明らかになるであろう。加えて、本技術は、特定のプログラミング言語を参照して説明されてはいない。様々なプログラミング言語が、本明細書において説明された様々な実施形態の教示を実施するために使用されてよいことが、理解されよう。
実施形態の上記の記載は、例示及び説明を目的として提示されている。排他的であること、又は、本明細書を、開示された詳細な形態に限定することは、意図されていない。上記の教示に鑑みれば、多くの変更及び変形が可能である。実施形態の範囲は、この詳細な説明により限定されるのではなく、本出願の請求項により限定されることが、意図されている。当業者に理解されるように、例は、その趣旨及び本質的特徴から逸脱することなく、他の具体的な形態で具現化されてもよい。同様に、モジュール、ルーチン、機能、属性、方法、及び他の態様の具体的な名称及び分け方は、必須でも重要でもなく、本説明を実施する機構やその機能の名称、分け方、及び/又はフォーマットは異なるものであってもよい。さらに、当業者には明らかなように、本明細書のモジュール、ルーチン、機能、属性、方法、及び他の態様は、ソフトウェア、ハードウェア、ファームウェア、又はこれらの3つの任意の組合せとして実装されてよい。また、本明細書のコンポーネント(一例としてモジュール)が、ソフトウェアとして実装される場合、そのコンポーネントは、スタンドアロンプログラムとして、より大きなプログラムの一部として、複数の別個のプログラムとして、静的又は動的にリンクされるライブラリとして、カーネルロード可能モジュールとして、デバイスドライバとして、且つ/又は、コンピュータプログラミング分野の当業者が現在又は将来知り得るありとあらゆる方法で、実装されてよい。さらに、本明細書は、特定のプログラミング言語による実施形態、又は、特定のオペレーティングシステム又は環境用の実施形態に決して限定されるものではない。したがって、本開示は、本明細書の範囲を例示することを意図しており、限定することを意図してはおらず、その範囲は、請求項に記載される。