[0081]ワイヤレス電話または他のモバイルデバイスは、カメラによってビデオストリームをキャプチャし、ならびに/または、別のデバイスから、および/もしくはネットワークを介して、ビデオストリームを受信することができる。ビデオストリーム内のオブジェクトをトラッキングするための、新しい特徴および/または改善された特徴が望まれ得る。
[0082]文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上で表されるメモリ位置(またはメモリ位置のセット)の状態を含む、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「発生(generating)」という用語は、本明細書では、算出(computing)または別様の生成(producing)のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「計算(calculating)」という用語は、本明細書では、複数の値からの算出(computing)、評価、推定、および/または選択のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「取得(obtaining)」という用語は、計算(calculating)、導出、(たとえば、外部デバイスからの)受信、および/または(たとえば、記憶要素のアレイからの)検索のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「選択(selecting)」という用語は、2つ以上のセットの少なくとも1つ、およびすべてよりも少数の識別、指示、適用、および/または使用のような、その通常の意味のいずれをも示すために使用される。「備える(comprising)」という用語は、本明細書と特許請求の範囲とにおいて使用される場合、他の要素または動作を除外するものではない。「に基づく」(「AはBに基づく」など)という用語は、(i)「から導出される」(たとえば、「BはAの前身である」)、(ii)「少なくとも〜に基づく」(たとえば、「Aは少なくともBに基づく」)、および特定の文脈で適当な場合に、(iii)「に等しい」(たとえば、「AはBに等しい」)という場合を含む、その通常の意味のいずれかを示すのに使用される。同様に、「に応答して」という用語は、「少なくとも〜に応答して」を含む、その通常の意味のいずれをも示すために使用される。
[0083]別段規定されていない限り、特定の特徴を有する装置の動作のいずれの開示も、類似の特徴を有する方法を開示する(その逆も同様)ことが明確に意図され、特定の構成による装置の動作のいずれの開示も、類似の構成による方法を開示する(その逆も同様)ことが明確に意図される。「構成」という用語は、その具体的な文脈によって示されるように、方法、装置、および/またはシステムに関して使用され得る。「方法」、「処理」、「手順」、および「技法」という用語は、具体的な文脈によって別段に規定されていない限り、一般的、および互換的に使用される。「装置」および「デバイス」という用語も、具体的な文脈によって別段に規定されていない限り、一般的、および互換的に使用される。「要素」および「モジュール」という用語は、一般に、より大きな構成の一部分を示すために使用される。文脈によって明確に限定されない限り、「システム」という用語は、本明細書では、「共通の目的を果たすために相互作用する要素のグループ」を含む、その通常の意味のいずれをも示すために使用される。
[0084]別段に規定されていない限り、「一連」という用語は、2つ以上の項目の順列を示すために使用される。定冠詞によって最初に導入されない限り、請求要素を修飾するのに使用される順序を示す用語(たとえば、「第1の」、「第2の」、「第3の」など)は、それ自体、別のものに対する請求要素の優先順位または順序を示しておらず、請求要素を、(順序を示す用語の使用を別にすれば)同じ名前を有する別の請求要素から区別しているだけである。文脈によって明確に限定されない限り、「複数」および「セット」という用語の各々は、本明細書では、1よりも大きい整数量を示すために使用される。
[0085]図1を参照すると、電子デバイス102を示すブロック図が示される。電子デバイス102はまた、ワイヤレス通信デバイス、モバイルデバイス、移動局、加入者局、クライアント、クライアント局、ユーザ機器(UE)、遠隔局、アクセス端末、モバイル端末、端末、ユーザ端末、加入者ユニットなどとも呼ばれ得る。電子デバイスの例としては、ラップトップまたはデスクトップコンピュータ、携帯電話、スマートフォン、ワイヤレスモデム、電子リーダー、タブレットデバイス、ゲームシステムなどがある。これらのデバイスのいくつかは、1つまたは複数の業界規格に従って動作し得る。
[0086]スマートフォンまたはタブレットコンピュータのような電子デバイス102は、カメラを含み得る。カメラは、画像センサ114と、光学系118の視野内に位置するオブジェクトの画像を画像センサ114上に合焦させる光学系118(たとえば、レンズ)とを含み得る。電子デバイス102はまた、カメラソフトウェアアプリケーションと表示画面とを含み得る。カメラアプリケーションが動作しているとき、光学系118の視野内に位置するオブジェクトの画像は画像センサ114によって記録され得る。画像センサ114によって記録されている画像は、表示画面上に表示され得る。これらの画像は、任意の所与の瞬間において、光学系118の視野内に位置するオブジェクトが表示画面上に表示されるように、比較的高いフレームレートで高速に連続して表示され得る。実施形態はキャプチャされたフレーム(たとえば、ビデオフレーム)に関して説明されるが、本明細書で論じられる技法は、任意のデジタル画像に対して使用され得る。したがって、「フレーム」および「デジタル画像」という用語は、本明細書において互換的に使用され得る。
[0087]カメラアプリケーションのユーザインターフェース120は、表示画面上に表示されている1つまたは複数のオブジェクトがトラッキングされることを可能にし得る。電子デバイス102のユーザは、トラッキングされるべきである(1つまたは複数の)オブジェクトを選択することを許可され得る。さらに、(1つまたは複数の)選択されたオブジェクトは、オブジェクトを後で検出するための基準として使用され得る。
[0088]一構成では、ディスプレイは、たとえば、指、スタイラスまたは他のツールによる、物理的タッチからの入力を受信するタッチスクリーン116である。タッチスクリーン116は、トラッキングされるべきターゲットオブジェクトを定義するタッチ入力を受け取り得る。たとえば、電子デバイス102が、対象の動物を含む自然のシーンをキャプチャしている場合、ユーザは、必要な場合、その動物がトラッキングまたは検出されるべきであるという希望を示すバウンディングボックスをその動物の周りに描き得る。ターゲットオブジェクトは、任意の好適な方法で選択され得る。たとえば、トラッキング、検出、または両方が行われるべきであるターゲットオブジェクトを選択するために、顔認識、歩行者認識などが使用され得る。一構成では、複数のオブジェクトがトラッキングされ得る。ユーザインターフェース120は、たとえば、1つまたは複数のターゲットオブジェクトを選択する(すなわち、定義する)ために、ユーザがオブジェクトトラッキングおよび検出モジュール104と対話することを可能にし得る。タッチスクリーン116は、ビューファインダ131を含み得る。ビューファインダ131は、ビデオストリームまたはライブフィードを表示するタッチスクリーン116の部分を指し得る。たとえば、ビューファインダ131は、電子デバイス102上のカメラによって取得されたビューを表示することができる。
[0089]電子デバイス102は、ビデオフレーム中の選択されたオブジェクトをトラッキングし、および/またはそのオブジェクトを検出するための、オブジェクトトラッキングおよび検出モジュール104を含み得る。オブジェクトトラッキングおよび検出モジュール104は、1つまたは複数のオブジェクトをトラッキングするための動きトラッカー106を含み得る。動きトラッカー106は、前のビデオフレームと現在のビデオフレームとの間でのターゲットオブジェクトの位置および/または位置の変化を推定するために、フレームごとに画像(たとえば、ビデオフレーム)上の点の動きをトラッキングするために、動きに基づき得る。
[0090]オブジェクトトラッキングおよび検出モジュールはまた、ビデオフレーム中のオブジェクトを検出するためのオブジェクト検出器108を含み得る。オブジェクト検出器108は、現在のビデオフレームのすべてまたは一部分を、(たとえば、ビデオフレームのシーケンス中の)キャプチャされた前のビデオフレーム112の選択されたオブジェクトまたは部分と比較することによって、オブジェクトを検出するために、動きに基づくモデルではなく、オブジェクトモデルを使用し得る。オブジェクト検出器108は、ビデオフレーム内の複数のオブジェクトを検出するために使用され得る。
[0091]オブジェクトトラッキングおよび検出モジュール104は、メモリバッファ110も含み得る。メモリバッファ110は、1つまたは複数のキャプチャされたフレームと、キャプチャされたビデオフレームと関連付けられるデータとを記憶し得る。一例では、メモリバッファ110は、前のキャプチャされたビデオフレーム112を記憶し得る。オブジェクトトラッキングおよび検出モジュール104は、動きに基づくトラッキングおよび/またはオブジェクト検出を実行する際に、キャプチャされた前のビデオフレーム112についての、メモリバッファ110から与えられたデータを使用し得る。ターゲットオブジェクトをより正確にトラッキングおよび/または検出するように動きに基づくトラッキングとオブジェクト検出とを調整するために、メモリバッファ110からのフィードバックを介して、データが動きトラッカー106またはオブジェクト検出器108に与えられ得る。たとえば、メモリバッファ110は、オブジェクトをトラッキングまたは検出するときにオブジェクトの位置とサイズとをより正確に特定するために使用され得る1つまたは複数のパラメータを動きトラッカー106およびオブジェクト検出器108に与えるために、位置とウィンドウサイズのデータを動きトラッカー106およびオブジェクト検出器108に与え得る。
[00092]上で述べられたように、電子デバイス102は動きに基づくトラッキングを実行し得る。動きに基づくトラッキングは、様々な方法を使用して実行され得る。一例では、トラッキングはメジアンフロー方法によって実行され、その方法では、動きトラッカー106は、画像のペアIt、It+1(たとえば、ビデオフレーム)とバウンディングボックスβtとを受け入れ、バウンディングボックスβt+1を出力する。点のセットがバウンディングボックスβt内の矩形格子上で初期設定されてよく、ItとIt+1との間の希薄な動きフローを生成するためにそれらの点がトラッキングされてよい。点予測の品質が推定されてよく、各点が誤差を割り当てられてよい。最悪の予測の一部分(たとえば、50%)はフィルタで除去されてよく、残りの予測は、バウンディングボックス全体の変位を推定するために使用される。動きトラッカー106は、電子デバイス102によってキャプチャされた各ビデオフレームに対する動きに基づくトラッキングを実行し得る。同様の方法において、動きに基づくトラッキングは、1つまたは複数の勾配(たとえば、x勾配およびy勾配)を計算すること、および時間勾配を計算するためにフレームのペア間の差を使用すること、および現在のビデオフレーム内のターゲットオブジェクトを正確にトラッキングするために複数の勾配値を使用することによって実行され得る。動きに基づくトラッキングに関するさらなる詳細が、以下で与えられる。
[00093]動きに基づくトラッキングを実行するとき、動きトラッカー106は、動きトラッキング方法の計算または推定された精度に基づいてトラッキング信頼性値を決定し得る。いくつかの構成では、トラッキング信頼性値は、ターゲットオブジェクトが現在のビデオフレームまたはそのビデオフレームの定義されたウィンドウ内に入る可能性または確率に対応する、0から1の間の実数であり得る。トラッキング信頼性値は、トラッキング閾値と比較され得る。トラッキング信頼性値がトラッキング閾値よりも大きい場合、ターゲットオブジェクトが現在のビデオフレーム内で見出される可能性は高いことがある。代替的に、トラッキング信頼性値がトラッキング閾値以下である場合、ターゲットオブジェクトが現在のビデオフレーム内で見出される可能性は低いかまたは不確実であることがある。トラッキング信頼性値を決定するための様々な方法が使用され得る。一構成では、トラッキング信頼性値は、現在のビデオフレーム中のトラッキングされたウィンドウ(たとえば、トラッキングパッチウィンドウ)と、前にキャプチャされたビデオフレームからの前に記憶された画像パッチとの間の正規化相互相関(NCC:normalized cross correlation)を計算することによって決定される。トラッキング信頼性値を決定することに関するさらなる詳細が、以下で与えられる。
[00094]電子デバイス102は、オブジェクト検出も実行し得る。オブジェクト検出は、様々な方法を使用して実行され得る。一構成では、オブジェクト検出はスライディングウィンドウ方法を使用して実行され、その方法では、ターゲットオブジェクトが現在のビデオフレーム中で、または現在のビデオフレームの特定のウィンドウもしくはウィンドウのサブセット内で見出されるかどうかを決定するために、ビデオフレーム内のウィンドウの複数のサブセットのコンテンツが調査される。すべての可能なウィンドウ位置およびサイズのすべてまたはサブセットが、ビデオフレーム中で探索され得る。たとえば、各ウィンドウはデータのピクセルに対応してよく、オブジェクト検出器108は、ターゲットオブジェクトが特定のウィンドウまたはサブウィンドウ内にある信頼性のレベル(たとえば、バイナリインジケータ)を決定するために、データのピクセルを使用して1つまたは複数の計算を実行することができる。1つまたは複数のウィンドウと関連付けられる信頼性のレベルに基づいて、検出器の信頼性値が現在のビデオフレームのために取得され得る。さらに、オブジェクト検出の精度または効率を増加させるために、追加の技法が使用され得る。これらの技法のいくつかが、以下で説明される。
[00095]いくつかの構成では、動きトラッカー106およびオブジェクト検出器108は、並列にではなく順次的に動作し得る。たとえば、電子デバイス102は、選択されたオブジェクト(たとえば、ターゲットオブジェクト)の動きに基づくトラッキングを実行し、続いて、トラッキングされたパラメータに基づいて、選択されたオブジェクトのオブジェクト検出を実行し得る。一構成では、電子デバイス102は、現在のビデオフレームに対する動きに基づくトラッキングを実行し得る。電子デバイス102は次いで、トラッキングされたパラメータに基づいて、現在のフレームに対するオブジェクト検出を実行し得る。一構成では、トラッキングされたパラメータは、信頼性値と閾値との比較に基づき得る。たとえば、トラッキング信頼性値がトラッキング閾値を下回る場合、電子デバイス102はオブジェクト検出を実行し得る。代替的に、トラッキング信頼性値がトラッキング閾値を上回る場合、電子デバイス102は、現在のビデオフレームのためのオブジェクト検出をスキップし、現在のビデオフレームの動きトラッキング結果に基づいて次のビデオフレームに対する動きに基づくトラッキングを実行し続け得る。言い換えれば、オブジェクト検出は、動きに基づくトラッキングがあまり良好でなく、たとえば、トラッキング信頼性値がトラッキング閾値を下回るときのみ、実行され得る。オブジェクト検出が実行されるかどうかおよび/またはどのように実行されるかを考慮するとき、他のトラッキングされたパラメータが使用され得る。トラッキングされるパラメータの例は、ターゲットオブジェクトの領域、ウィンドウ位置、ウィンドウサイズ、スケールレベル、ターゲットサイズ、トラッキングおよび/もしくは検出信頼性値、または、ターゲットオブジェクトの効率的なトラッキングおよび/または検出を支援するために使用され得る他のパラメータを含み得る。
[00096]トラッキングされたパラメータに基づいて動きに基づくトラッキングとオブジェクト検出とを順次的に実行することは、電子デバイス102が、大量の計算を実行することなくビデオフレーム内のターゲットオブジェクトをトラッキングおよび/または検出することを可能にし得る。具体的には、動きに基づくトラッキングはオブジェクト検出よりも計算集約的でないことがあるので、電子デバイス102はオブジェクト検出の実行をスキップすることができ、ここで、現在のビデオフレーム内のターゲットオブジェクトを正確にトラッキングするために動きに基づくトラッキングが使用され得る。たとえば、トラッキング信頼性値が特定の目標閾値を超えると電子デバイス102が決定する場合、電子デバイス102は、現在のビデオフレーム内のターゲットオブジェクトの位置または存在を正確に決定するために、現在のビデオフレームに対してオブジェクト検出が必要とされないことを決定し得る。さらに、オブジェクト検出は多くの場合有益であり得るので、電子デバイス102は、ターゲットオブジェクトをより正確に検出するために、またはトラッキング閾値との比較に基づく、動きに基づくトラッキングが不十分である場合、オブジェクト検出を実行するために、オブジェクト検出が使用され得る場合を決定し得る。
[00097]いくつかの構成では、現在のビデオフレームに対するオブジェクト検出をスキップするのではなく、メモリバッファ110によって与えられる動きに基づくトラッキングの結果および/または追加の情報が、オブジェクト検出を実行するプロセスを限定または調整するために使用され得る。たとえば、ターゲットオブジェクトが、動きに基づくトラッキング方法を使用して正確にトラッキングされ得ない場合、電子デバイス102は、依然として、動きに基づくトラッキングを介して与えられたパラメータがない場合よりも少ない計算能力を使用してオブジェクトをより正確に検出するためにオブジェクト検出中に使用され得る、ターゲットオブジェクトと関連付けられる位置、ウィンドウスケールまたは他のトラッキングされたパラメータについての情報を推定または取得し得る。したがって、動きに基づくトラッキングが、トラッキング閾値を超えるトラッキング信頼性値を与えない場合でも、動きに基づくトラッキングの結果は、その後にオブジェクト検出を実行するときに使用され得る。
[00098]電子デバイス102上のビューファインダ131は、第1のトラッキングエリア133と第2のトラッキングエリア135とを含み得る。第1のトラッキングエリア133と第2のトラッキングエリア135の両方が、タッチスクリーン116を使用してユーザによって指定され得る。たとえば、ユーザは、第1のトラッキングエリア133および第2のトラッキングエリア135の所望の位置へと、タッチスクリーン116上の焦点リングをドラッグすることができる。必要とはされないが、トラッキングエリアの1つは静止していてよい。たとえば、第1のトラッキングエリア133はオブジェクト(たとえば、歩いている人)をトラッキングすることができ、第2のトラッキングエリア135は静止している木をカバーすることができる。一構成では、第2のトラッキングエリア135は、電子デバイス102上のタッチスクリーン116全体をカバーすることができる。
[00099]電子デバイス102は、ビデオ処理モジュール137を含み得る。ビデオ処理モジュール137は、重複(オーバラップ)143を含み得る。重複143は、第1のトラッキングエリア133と第2のトラッキングエリア135の重複(オーバラップ)の量を反映し得る。たとえば、第1のトラッキングエリア133および第2のトラッキングエリア135が互いにまったく重複しない場合、重複143は0%であり得る。同様に、第1のトラッキングエリア133が第2のトラッキングエリア135と完全に重複する場合(または、どちらのトラッキングエリアがより大きいかによっては、第2のトラッキングエリア135が第1のトラッキングエリア133と完全に重複する場合)、重複143は100%であり得る。ビデオ処理モジュール137は、閾値145を含み得る。図13に関して説明されるように、重複143は、ビデオ処理が実行されるべきかどうかを決定するために、閾値145と比較され得る。
[00100]ビデオ処理モジュール137はまた、画面区分147の機能を含み得る。たとえば、画面区分147は、図11、図13、図15、および図21に関して説明されるように、第1のトラッキングエリア133および第2のトラッキングエリア135と関連付けられる個々のビデオストリームを表示するために、ビューファインダ132を複数のウィンドウへと区分することができる。ビデオ処理モジュール137はまた、幾何学的配置(geometry)トラッキング149の機能を含み得る。たとえば、幾何学的配置トラッキング149の機能は、図17および図18に関して説明されるように、第1のトラッキングエリア133と第2のトラッキングエリア135との間の幾何学的配置をトラッキングすることができる。幾何学的配置は、ビューファインダ131上に表示され得る。ビデオ処理モジュール137はまた、クラスタ情報151の機能を含み得る。クラスタ情報151の機能は、幾何学的配置と関連付けられる少なくとも1つのパラメータ(たとえば、重心)に基づいてクラスタを生成することができる。たとえば、各クラスタは、図17および図18に関して説明されるように、第1のトラッキングエリア133と第2のトラッキングエリア135との間で実質的に同様の幾何学的配置を有するビデオフレームを含み得る。
[00101]図2Aを参照すると、オブジェクトトラッキングおよび検出モジュール204を示すブロック図が示されている。オブジェクトトラッキングおよび検出モジュール204は、電子デバイスまたはワイヤレスデバイス内に実装され得る。オブジェクトトラッキングおよび検出モジュール204は、オプティカルフローモジュール226とトラッキング信頼性値228とを有する動きトラッカー206を含み得る。オブジェクトトラッキングおよび検出モジュール204は、スキャナロケータ230と、スキャナスケーラ236と、分類器238と、検出信頼性値240とを有するオブジェクト検出器208も含み得る。メモリバッファ210は、動きトラッカー206とオブジェクト検出器208とに与えられ得るキャプチャされた前のビデオフレーム212と関連付けられるデータを記憶し得る。オブジェクトトラッキングおよび検出モジュール204、動きトラッカー206、オブジェクト検出器208、ならびにメモリバッファ210は、図1に関して上記で説明されたオブジェクトトラッキングおよび検出モジュール104、動きトラッカー106、オブジェクト検出器108、ならびにメモリバッファ110の構成であり得る。
[00102]動きトラッカー206は、現在のビデオフレーム(N)224に対する動きに基づくトラッキングを実行するために使用され得る。たとえば、前のビデオフレーム(N−1)222および現在のビデオフレーム(N)224が(たとえば、電子デバイス102によって)受信され得る。前のビデオフレーム(N−1)222は、ビデオフレームのシーケンス中の現在のビデオフレーム(N)224の直前にあり得る。追加のビデオフレームが、オブジェクトトラッキングおよび検出モジュール204によって取得され処理され得る。前のビデオフレーム(N−1)222は、動きトラッカー206に与えられ得る。さらに、メモリバッファ210は、本明細書ではキャプチャされた前のビデオフレーム212と呼ばれる、前のビデオフレーム(N−1)222と関連付けられるデータを記憶し得る。いくつかの構成では、メモリバッファ210は、電子デバイス102から(たとえば、カメラから)前のビデオフレーム(N−1)222についての情報を直接取得し得る。メモリバッファ210はまた、融合モジュール260から前のビデオフレーム(N−1)222についてのトラッキング結果を取得することができ、トラッキング結果は、オブジェクトが前のビデオフレーム(N−1)222の中のどこでトラッキングおよび/または検出されたかを指定し得る。前のビデオフレーム(N−1)222または他の前にキャプチャされたビデオフレームについてのこの情報は、メモリバッファ210に記憶され得る。
[00103]動きトラッカー206はその後、ビデオフレームのシーケンス中の現在のビデオフレーム(N)224を受信し得る。動きトラッカー206は、(たとえば、メモリバッファ210から与えられた情報を使用して)現在のビデオフレーム(N)224を前のビデオフレーム(N−1)222と比較し得る。動きトラッカー206は、オプティカルフローモジュール226を使用して、現在のビデオフレーム(N)224上のオブジェクトの動きをトラッキングし得る。オプティカルフローモジュール226は、現在のビデオフレーム(N)224上のオブジェクトの動きに基づくトラッキングを実行するためのハードウェアおよび/またはソフトウェアを含み得る。前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224とを比較することによって、動きトラッカー206は、ターゲットオブジェクトが現在のビデオフレーム(N)224中にある可能性と関連付けられるトラッキング信頼性値228を決定し得る。一例では、トラッキング信頼性値228は、ターゲットオブジェクトが現在のビデオフレーム(N)224内に、または現在のビデオフレーム(N)224内のウィンドウ内にある確実性の百分率に基づく(たとえば、0から1の間の)実数である。
[00104]オブジェクト検出器208は、現在のビデオフレーム(N)224上のオブジェクトを検出するために使用され得る。たとえば、オブジェクト検出器208は、ビデオフレームのシーケンス中の現在のビデオフレーム(N)224を受信し得る。オブジェクト検出器208は、トラッキングされたパラメータに基づいて現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。トラッキングされたパラメータは、ターゲットオブジェクトが正確にトラッキングされている可能性に対応するトラッキング信頼性値228を含み得る。より具体的には、トラッキングされたパラメータは、トラッキング信頼性値228とトラッキング閾値250との比較を含み得る。トラッキングされたパラメータは、メモリバッファ210から与えられた情報も含み得る。オブジェクトを検出するときに使用され得るトラッキングされたパラメータのいくつかの例は、領域、ウィンドウ位置、ウィンドウサイズ、またはオブジェクト検出を実行するときにパラメータとしてオブジェクト検出器208によって使用され得る他の情報を含む。
[00105]オブジェクト検出器208は、スキャナロケータ230を含み得る。スキャナロケータ230は、ウィンドウ位置選択器232とランダマイザ234とを含み得る。ウィンドウ位置選択器232は、ビデオフレーム内の複数のウィンドウを選択し得る。たとえば、ビデオフレームは、関連する位置とサイズとを各々が有する、複数のウィンドウを含み得る。一構成では、各ビデオフレームは、ビデオフレーム中の総ピクセルの一部分を各々が含む、複数の(たとえば、約10,000個の)重複するウィンドウに分割される。代替的に、任意の好適な数のウィンドウがあってよく、それらは重複しないことがある。スキャナロケータ230内のウィンドウ位置選択器232は、ターゲットオブジェクトを識別することをその中で試みる、ウィンドウの位置を選択し得る。ランダマイザ234は、オブジェクトを検出するために異なるサイズおよび位置のウィンドウをランダムに選択し得る。いくつかの構成では、ランダマイザ234は、ビデオフレーム内のウィンドウをランダムに選択する。代替的に、ランダマイザ234は、1つまたは複数の要因に基づいてウィンドウをより正確に選択し得る。たとえば、ランダマイザ234は、オブジェクトが大抵位置する領域、サイズまたは概略的な位置に基づいて、ウィンドウの選択を限定し得る。この情報は、メモリバッファ210を介して取得されてよく、または、完全に依拠するのに十分正確ではないが、オブジェクト検出を実行するときに役立つ情報を与え得る、動きに基づくトラッキングを介して取得され得る。したがって、ランダマイザ234は、探索すべき複数のウィンドウをランダムに選択し得るが、ウィンドウの選択は、オブジェクト検出器208に与えられた情報に基づいて限定され、したがって完全にランダムではないことがある。
[00106]オブジェクト検出器208は、あるサイズのウィンドウを引き出すかまたは選択するために使用され得る、スキャナスケーラ236も含み得る。ウィンドウサイズは、オブジェクトを検出するとき、または画像が特定のウィンドウ内にあるかどうかを検出するためにウィンドウの選択を元の画像と比較するとき、ウィンドウのサイズを狭くするためにスキャナロケータ230によって使用され得る。スキャナスケーラ236は、オブジェクトを定義するときに初めにあるサイズまたはスケールレベルの1つもしくは複数のウィンドウを選択し、または代替的に、メモリバッファ210から与えられた情報に基づいて、あるサイズまたはスケールレベルの1つもしくは複数のウィンドウを引き出し得る。
[00107]分類器238は、ターゲットオブジェクトの一部またはすべてが特定のウィンドウ中で見出されるどうかを決定するために使用され得る。いくつかの構成では、分類器238は、ターゲットオブジェクトが特定のウィンドウまたはサブウィンドウ内で検出されるかどうかを示すために、各ウィンドウについてバイナリ値を生成し得る。この分類(たとえば、バイナリ分類)は、オブジェクト検出器208によって探索された各ウィンドウに対して実行され得る。具体的には、分類器238は、オブジェクトが検出される各ウィンドウに対してバイナリ1を生成し、オブジェクトが検出されない各ウィンドウに対してバイナリ0を生成し得る。1および0の数または組合せに基づいて、オブジェクト検出器208は、ターゲットオブジェクトが現在のビデオフレーム(N)224内に存在する可能性を示す検出信頼性値240を決定し得る。いくつかの構成では、検出信頼性値240は、オブジェクトが正確に検出された百分率または確率を示す0から1の間の実数である。
[00108]オブジェクト検出器208は、領域、ターゲットサイズ、ウィンドウサイズ、スケールレベル、ウィンドウ位置、および1つまたは複数の信頼性値を含む、様々なトラッキングされたパラメータに従ってオブジェクト検出を実行し得る。ビデオフレームのウィンドウまたはウィンドウのサブセットが探索され、オブジェクト検出器208が、各々の探索されたウィンドウに対するバイナリ値を取得すると、オブジェクト検出器208は、最高の信頼性を有する現在のビデオフレーム上のウィンドウサイズならびに位置または領域を決定し得る。この位置およびウィンドウサイズは、ターゲットオブジェクトをより正確にトラッキングおよび/または検出するために後のトラッキングおよび検出において使用され得る。
[00109]様々な技法が、ターゲットオブジェクトを検出する際にオブジェクト検出器208によって使用され得る。一構成では、ターゲットオブジェクトを検出することは、あらゆる可能なウィンドウ位置およびあらゆる可能なウィンドウサイズにおいてウィンドウのためにバイナリ分類を実行することを含み得る。しかしながら、あらゆる可能なウィンドウを探索することはリソース集約的である。したがって、別の構成では、オブジェクト検出器は、ビデオフレーム中のすべての可能なウィンドウではなく、ウィンドウ位置およびサイズのサブセットを探索し得る。たとえば、オブジェクト検出器208は、すべての可能なウィンドウの1%を探索し得る。次いで、検出が不成功である(たとえば、検出信頼性値240が検出閾値252よりも小さい)場合、後のキャプチャされたフレームにおいて、より高い百分率のウィンドウ位置、たとえば2%が探索され得る。探索されるウィンドウ位置の百分率の刻みは、均一であってよく、不均一であってよく、低速または高速であってよく、すなわち、連続するフレームが、1%、2%、3%、4%または1%、2%、4%、8%を有し得る。一構成では、探索されるフレームの百分率は、高い検出信頼性値に応答して極めて高く(たとえば、80%、90%、100%)、すなわち、ターゲットオブジェクトが次のビデオフレームであることを保証するように、設定され得る。たとえば、探索されるフレームの百分率は、検出およびトラッキング閾値256を超える検出およびトラッキング信頼性値に応答して、少なくとも80%に飛び得る。代替的に、百分率は、60%、70%、90%などに飛び得る。加えて、検出およびトラッキング閾値の任意の好適な値、たとえば、0.6、0.65、0.7、0.75、0.8、0.85などが使用され得る。さらに、探索されるウィンドウの百分率は、ランダマイザ234(乱数発生器)に基づいてランダムに決定されてよく、たとえば、1%から15%の間のランダムな百分率のウィンドウが、キャプチャされたフレーム中で探索され得る。すべてのウィンドウ位置のサブセットを探索することによって、オブジェクト検出は、電子デバイス102において少数のリソースを使用し得る。
[00110]本明細書で説明される技法は、各位置に対してウィンドウサイズのサブセットを探索し得る。各ウィンドウサイズは、本明細書ではスケールレベルと呼ばれることがあり、各スケールレベルは特定のウィンドウサイズに対応する。たとえば、20個の可能なスケールレベルがあり得る。すべての20個のスケールレベルを探索するのではなく、スケールレベルまたはウィンドウサイズのサブセットが各ウィンドウ位置において探索され得る。
[00111]本明細書で説明される技法は、探索されるウィンドウ位置およびサイズを調整するためにメモリバッファ210からのフィードバックも使用し得る。言い換えれば、その中でターゲットオブジェクトが正常に検出および/またはトラッキングされた、最後のキャプチャされたビデオフレームの位置およびサイズが、現在のビデオフレーム(N)224を探索するための開始点として使用され得る。たとえば、ターゲットオブジェクトが最近のビデオフレーム中で検出され、トラッキングされた(すなわち、最近のキャプチャされたビデオフレームのための検出およびトラッキング信頼性値256が検出およびトラッキング閾値を上回る)場合、スキャナロケータは、最近のフレームと関連付けられる位置およびサイズにおいて、現在のキャプチャされたフレームを探索し始め得る。たとえば、ターゲットオブジェクトが、光学系の視野外に移動する場合、またはある距離において消える場合、ターゲットオブジェクトは、ターゲットオブジェクトが光学系の視野から出たとき、またはある距離において消えたときと同じサイズで再び現れる可能性が高いことがある。したがって、あるサイズまたはある範囲のサイズが、オブジェクト検出を実行するときに後のビデオフレーム中のターゲットオブジェクトを検出するために予測され得る。
[00112]キャプチャされたビデオフレーム(N)224中で探索されるウィンドウ位置およびウィンドウサイズの探索範囲が、最近のビデオフレーム(たとえば、前のビデオフレーム(N−1)222)中のターゲットオブジェクトと関連付けられるウィンドウ位置およびウィンドウサイズと同様のものに限定され得る。本明細書で使用される「探索範囲」という用語は、ビデオフレーム中のターゲットオブジェクトを検出および/またはトラッキングするときに利用され得る候補ウィンドウ位置または候補ウィンドウサイズ(または両方)のセットを指す。たとえば、探索されるウィンドウ位置のサブセットは、ターゲットオブジェクトが最近のビデオフレーム中のどこで見出されたかに基づいて現在のビデオフレーム(N)224の一部分、たとえば、現在のビデオフレーム(N)224の4分の1または半分のうちの1つの中から選択され得る。言い換えれば、探索空間は、ターゲットオブジェクトが最後にトラッキングまたは検出されたところの近くに限定され得る。同様に、各ウィンドウ位置のために探索されるフレームのサイズは、ターゲットにされたオブジェクトが見出された、最近のビデオフレーム中のウィンドウのサイズに基づいて限定され得る。たとえば、オブジェクトが、8というスケールレベルを有するウィンドウを使用して最近のフレーム中で検出された場合、スキャナスケーラ236は、8プラスまたはマイナス3という、現在のビデオフレーム(N)224のためのウィンドウスケールレベル、すなわち、スケールレベル5〜11のみを選択し得る。これはさらに、低い確率の探索をなくし、オブジェクト検出の効率を増加させ得る。代替的に、最近の(非現在の)ビデオフレームがターゲットオブジェクトを検出しなかった(すなわち、最近のビデオフレームのための検出およびトラッキング信頼性値256が検出およびトラッキング閾値を下回る)場合、オブジェクト検出器208は、探索される探索空間(ウィンドウ位置)を拡大することができ、たとえば、画像のより広い範囲または画像全体が探索の対象になり得る。
[00113]オブジェクトトラッキングおよび検出モジュール204は、複数のウィンドウを統合して単一のウィンドウを形成するための融合モジュール260を含み得る。初めに2つの信頼性値、すなわち、オブジェクト検出器208からの検出信頼性値240および動きトラッカー206からのトラッキング信頼性値225がある。融合モジュール260は、2つの信頼性値を組み合わせて(たとえば、より大きい信頼性値を選んで)、検出およびトラッキング信頼性値256にすることができる。検出およびトラッキング信頼性値256は、ターゲットオブジェクトがビデオフレーム上で識別されたかどうかを示し得る。一構成では、検出およびトラッキング信頼性値256は0から1の間の実数であってよく、ただし、0は、ターゲットオブジェクトが特定のビデオフレーム中で識別されたことの、最低のあり得る信頼性を示し、1は、ターゲットオブジェクトが特定のビデオフレーム中で識別されたことの、最高のあり得る信頼性を示す。言い換えれば、検出およびトラッキング信頼性値256は、ターゲットオブジェクトが見つけられた可能性の全体的な指示として働き得る。さらに、検出およびトラッキング信頼性値256は、次のビデオフレーム中で探索すべきウィンドウ位置、ウィンドウサイズ、またはウィンドウの百分率を決定するために使用されるパラメータであり得る。融合モジュール260は、現在のビデオフレーム(N)224についての情報をメモリバッファ210に与えるために使用され得る。一例では、融合モジュール260は、トラッキングされたウィンドウ242についての情報(たとえば、ウィンドウ位置244、ウィンドウサイズ246など)と検出およびトラッキング信頼性値256とをメモリバッファ210に与え得る。融合モジュール260は、組み合わされたトラッキング結果(たとえば、バウンディングボックス)を形成して検出およびトラッキング信頼性値256を計算するために、動きトラッカー206およびオブジェクト検出器208からのトラッキング結果(たとえば、バウンディングボックス)を使用し得る。
[00114]メモリバッファ210は、前のビデオフレーム(N−1)222、現在のビデオフレーム(N)224、または他のキャプチャされたビデオフレームと関連付けられる1つまたは複数の値を記憶し得る。一構成では、メモリバッファ210は、前のビデオフレーム(N−1)222に対応する情報を含み得る、キャプチャされた前のビデオフレーム212を記憶する。キャプチャされた前のビデオフレーム212は、各ウィンドウ242について位置244と、ウィンドウサイズ246と、(たとえば、分類器238からの)バイナリ決定248とを含む、1つまたは複数のウィンドウ242についての情報を含み得る。キャプチャされた前のビデオフレーム212はまた、トラッキング閾値250と、検出閾値252と、検出およびトラッキング閾値254とを含み得る。トラッキング閾値250は、トラッキング信頼性レベルがトラッキング閾値250よりも大きいかどうかを決定するために(258)、動きトラッカー206またはオブジェクトトラッキングおよび検出モジュール204上の回路(たとえば、信頼性レベル比較器)に与えられ得る。検出閾値252は、検出信頼性値240が検出閾値252よりも大きいかどうかを決定するために、オブジェクト検出器208またはオブジェクトトラッキングおよび検出モジュール204上の他の回路に与えられ得る。検出およびトラッキング閾値254は、トラッキング閾値250および検出閾値252に基づく組み合わされた値であり得る。検出およびトラッキング閾値254は、動きに基づくトラッキングおよびオブジェクト検出のための組み合わされた信頼性値を決定するために、検出およびトラッキング信頼性値256と比較され得る。閾値の各々は、ターゲットオブジェクトがビデオフレーム内に位置する可能性に基づき得る。オブジェクトトラッキングおよび検出モジュール204は、特定の検出およびトラッキング信頼性値256が取得されるまで、現在のビデオフレーム(N)224に対する動きに基づくトラッキングおよび/または検出を実行し得る。さらに、動きに基づくトラッキングおよびオブジェクト検出は、複数のビデオフレームのシーケンス中の各ビデオフレームに対して実行され得る。
[00115]動きに基づくトラッキングおよびオブジェクト検出を実行することは、動きに基づくトラッキングの後に、トラッキングされたパラメータに基づくオブジェクト検出を順次的に実行することを含み得る。特に、本システムおよび方法は、2ステップのトラッキングおよび検出手法を実施し得る。動きに基づくトラッキングが、使用されるオブジェクト検出としての実際のオブジェクト識別ではなく、シーンの相対的な動きに基づくので、動きに基づくトラッキングは、電子デバイスにおいて、オブジェクト検出を実行することほどリソース集約的でないことがある。したがって、オブジェクト検出器208の代わりに動きトラッカー206を使用することがより効率的であることがあり、ここで、ターゲットオブジェクトが、オブジェクト検出を実行することもなく正確にトラッキングされ得る。
[00116]したがって、オブジェクト検出器208と並列に動きトラッカー206を使用するのではなく、オブジェクトトラッキングおよび検出モジュール204は、動きトラッカー206が不十分である場合にオブジェクト検出器208を使用するにすぎず、すなわち、動きトラッキングおよびオブジェクト検出は(実行されるとしても)並列にではなく順次的に実行される。トラッキングが実行される各ビデオフレームに対して、動きトラッカー206は、ターゲットオブジェクトが現在のビデオフレーム(N)224中にある可能性を示す0から1の間の実数であり得る、トラッキング信頼性値228を生成し得る。
[00117]2ステップのトラッキングおよび検出手法の一構成では、動きトラッカー206は、最初に現在のビデオフレーム(N)224に対する動きに基づくトラッキングを実行し得る。動きトラッカー206は、動きに基づくトラッキングのプロセスに基づいてトラッキング信頼性値228を決定し得る。トラッキング信頼性値228とメモリバッファ210によって与えられたトラッキング閾値250とを使用して、オブジェクトトラッキングおよび検出モジュール204内の回路(たとえば、信頼性レベル比較器)は、トラッキング信頼性値228がトラッキング閾値250を超えるかどうかを決定し得る(258)。トラッキング信頼性値228がトラッキング閾値250よりも大きい場合、オブジェクトトラッキングおよび検出モジュール204は、オブジェクト検出の実行をスキップし、出力262を生成するために融合モジュール260にトラッキング結果を与え得る。出力262は、ターゲットオブジェクトが現在のビデオフレーム(N)224内にあるという指示を含み得る。さらに、出力262は、ターゲットオブジェクトについての追加の情報を含み得る。
[00118]トラッキング信頼性値228がトラッキング閾値250を超えない場合、オブジェクト検出器208はその後、現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。オブジェクト検出は、現在のビデオフレーム(N)224内のウィンドウのすべてまたはサブセットに対して実行され得る。オブジェクト検出器208はまた、動きに基づくトラッキングの結果および/またはメモリバッファ210から与えられた情報に基づいて、ウィンドウのサブセット、ウィンドウサイズ、または他の検出基準を選択し得る。オブジェクト検出は、オブジェクト検出器208に与えられた1つまたは複数のトラッキングされたパラメータに基づいて、幾分ロバストなプロセスを使用して実行され得る。オブジェクト検出器208は、検出信頼性値240を決定し、検出信頼性値240を検出閾値252と比較し得る。検出信頼性値240が検出閾値252を上回る場合、オブジェクト検出器208は、出力262を生成するために融合モジュール260に検出結果を与え得る。出力262は、ターゲットオブジェクトが現在のビデオフレーム(N)224内にあるという指示を含み、および/または検出されたオブジェクトについての追加の情報を含み得る。
[00119]代替的に、検出信頼性値240が検出閾値252以下である場合、オブジェクト検出器208は、現在のビデオフレーム(N)224内のより多数のウィンドウを探索することのような、よりロバストな方法を使用してオブジェクト検出を再び実行し得る。オブジェクト検出器208は、満足な検出信頼性値240が取得されるまで、オブジェクト検出のプロセスを繰り返し得る。満足な検出信頼性値240が取得され、その結果、現在のビデオフレーム内のターゲットオブジェクトが識別されると、オブジェクトトラッキングおよび検出モジュール204が、次のビデオフレームに対するトラッキングおよび検出を実行するために使用され得る。
[00120]図2Bを参照すると、オブジェクトトラッキングおよび検出モジュール204内のコンポーネントを実装するプロセッサ264の特定の例示的な実施形態が示されている。図2Aに示されるように、オブジェクトトラッキングおよび検出モジュール204は、プロセッサ264によって実装され得る。異なるプロセッサが、異なるコンポーネントを実装するために使用され得る(たとえば、あるプロセッサは動きトラッカー206を実装することができ、別のプロセッサはオブジェクト検出器208を実装するために使用されてよく、また別のプロセッサはメモリバッファ210を実装するために使用されてよい)。
[00121]図3を参照すると、動きに基づくトラッキングとオブジェクト検出とを実行するための方法300の特定の例示的な実施形態のフローチャートが示されている。方法300は、電子デバイス102、たとえば、オブジェクトトラッキングおよび検出モジュール104によって実装され得る。電子デバイス102は、前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224とを比較することによって、現在のビデオフレーム(N)224のための動きに基づくトラッキングを実行することができる(302)。オブジェクトをトラッキングすることは、画像のペア間で点をトラッキングすることによってメジアンフロー方法を使用して実行され得る。動きに基づくトラッキングの他の方法も使用され得る。加えて、動きに基づくトラッキングは、メモリバッファ110を介して与えられたキャプチャされた前のビデオフレーム112についての情報を使用して現在のビデオフレーム(N)224のために実行され得る。
[00122]電子デバイス102は、トラッキング信頼性値228を決定することができる(304)。トラッキング信頼性値228は、ターゲットオブジェクトが正確にトラッキングされた可能性または確実性を示し得る。電子デバイス102は、トラッキング信頼性値228がトラッキング閾値250よりも大きいかどうかを決定することができる(306)。トラッキング信頼性値228がトラッキング閾値250よりも大きい場合、電子デバイス102は、次のビデオフレームのための動きに基づくトラッキングを実行することができる(308)。さらに、電子デバイス102は、動きに基づくトラッキングの結果に基づいて、現在のビデオフレーム(N)224に対するオブジェクト検出を実行することをスキップし得る。言い換えれば、オブジェクト検出は、動きトラッキングがあまり良好でないときのみ、すなわち、トラッキング信頼性値228がトラッキング閾値250よりも大きくない場合に、現在のビデオフレーム(N)224のために実行され得る。しかしながら、トラッキング信頼性値228がトラッキング閾値250よりも大きくない場合、電子デバイス102は、現在のビデオフレーム(N)224のためのオブジェクト検出を実行することができる(310)。電子デバイス102は、動きに基づくトラッキングに続いてオブジェクト検出を実行し得る。いくつかの構成では、オブジェクト検出は、より高い検出信頼性値240を取得するために、異なるロバスト性とともに複数回実行され得る。
[00123]図4を参照すると、動きに基づくトラッキングを実行するための方法400の特定の例示的な実施形態のフローチャートが示されている。方法400は、電子デバイス102、たとえば、オブジェクトトラッキングおよび検出モジュール104によって実装され得る。電子デバイス102は、バウンディング(bounding)ボックスを使用してターゲットオブジェクトを識別することができる(402)。オブジェクトを識別すること(402)は、タッチスクリーン116、または対象のオブジェクトがそれにより選択される他の入力方法を使用して、手動で実行され得る。複数のオブジェクトが、同様の方法で識別され得る。さらに、トラッキングされるべきオブジェクトを識別するために、他の入力方法が使用され得る。一例では、オブジェクトは、ターゲットオブジェクトの周りにバウンディングボックスを手動で描くことによって識別される。
[00124]電子デバイス102は、バウンディングボックス内の格子上に点を初期設定することができる(404)。格子上の点は、バウンディングボックス全体にわたって一様に離隔され得る。さらに、2つの画像(たとえば、前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224)間の格子上の点がトラッキングされ得る(406)。一例では、それらの点は、画像間の希薄な動きフローを生成するLucas−Kanadeトラッカーによってトラッキングされる。電子デバイス102は、2つの画像(たとえば、前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224)間のトラッキング誤差を推定することができる(408)。トラッキング誤差を推定すること(408)は、トラッキングされた点の各点に誤差値を割り当てることを含み得る。さらに、トラッキング誤差を推定すること(408)は、たとえば、前方後方誤差と、正規化相互相関(NCC)と、2乗差分和とを含む、様々な方法を使用して実行され得る。推定されたトラッキング誤差は、トラッキング信頼性値228を取得し、最終的に、ターゲットオブジェクトが現在のビデオフレーム(N)224中にある可能性を決定するために、使用され得る。一構成では、トラッキング信頼性値228は、現在のビデオフレーム(N)224中のトラッキングされたウィンドウと前のビデオフレーム(N−1)222中のトラッキングされたウィンドウとの間の正規化相互相関(NCC)を計算することによって取得され得る。トラッキング誤差はまた、図5に関して以下でより詳細に説明される前方後方誤差推定を含む、追加の技法を使用して推定され得る。さらに、電子デバイス102は、範囲外の点(outlying point)の予測をフィルタで除去することができる(410)。たとえば、電子デバイスは、最悪の予測の50%をフィルタで除去し得る。残りの予測は、バウンディングボックスの変位を推定するために使用され得る。
[00125]電子デバイス102は、バウンディングボックスを更新することができる(412)。バウンディングボックスを更新すること(412)は、更新されたバウンディングボックスが次のビデオフレームのための新しいバウンディングボックスになるように、実行され得る。動きに基づくトラッキングのプロセスは次いで、次のビデオフレームのために繰り返されてよく、または、トラッキング信頼性値228がトラッキング閾値250以下である場合、動きに基づくトラッキングのプロセスは、ターゲットオブジェクトが正確にトラッキングされ得るまで、次のビデオフレームに対しては中止され得る。いくつかの構成では、現在のビデオフレーム(N)224のための動きに基づくトラッキングが満足な結果を与えない場合、電子デバイス102は、ターゲットオブジェクトを位置特定する際に信頼性のより高いレベルを取得するために現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。いくつかの構成では、動きに基づくトラッキングが満足な結果を生成することができない場合(たとえば、ターゲットオブジェクトがビデオフレームの範囲外に移動したとき)、オブジェクト検出は、ターゲットオブジェクトが検出されるまで、任意の後のビデオフレームに対して実行され得る。
[00126]図5を参照すると、前方後方誤差に基づいて動きに基づくトラッキングにおけるトラッキング誤差を推定するための方法500の特定の例示的な実施形態のフローチャートが示されている。方法500は、電子デバイス102(たとえば、オブジェクトトラッキングおよび検出モジュール104)によって実施され得る。いくつかの構成では、電子デバイス102は、トラッキングされたウィンドウ間の正規化相互相関(NCC)を計算し得る。正規化相互相関(NCC)は、トラッキング信頼性値228を決定するために使用され得る。電子デバイス102はまた、正規化相互相関(NCC)を補足する様々なトラッキング誤差推定技法(たとえば、前方後方誤差、2乗差分和)を使用し得る。前方後方誤差推定を使用する例では、電子デバイス102は、前方軌道(forward trajectory)を決定するために前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224との間で前方トラッキングを実行することができる(502)。前方トラッキングは、k個のステップ前方の画像をトラッキングすることを含み得る。得られた前方軌道は(xt,xt+1,...,xt+k)に等しくてよく、ただし、xtは時間的な点位置であり、kは画像のシーケンスの長さを示す。電子デバイス102は、後方軌道(backward trajectory)を決定するために現在のビデオフレーム(N)224と前のビデオフレーム(N−1)222との間で後方トラッキングを実行することができる(504)。得られる後方軌道は、
に等しくてよい。
[00127]電子デバイス102は、前方軌道と後方軌道との間の前方後方誤差を決定することができる(506)。前方後方誤差は、前方軌道と後方軌道との間の距離として定義され得る。さらに、様々な距離が軌道比較のために定義され得る。一構成では、検証軌道の始点と終点との間のユークリッド距離が、前方後方誤差を決定するときに使用され得る。一構成では、前方後方誤差は、トラッキング信頼性値228を決定するために使用され得る、トラッキング誤差として使用され得る。
[00128]図6を参照すると、オブジェクト検出を実行するための方法600の特定の例示的な実施形態のフローチャートが示されている。方法600は、電子デバイス102(たとえば、オブジェクトトラッキングおよび検出モジュール104)によって実装され得る。電子デバイス102は、現在のビデオフレーム(N)224中のウィンドウ位置およびサイズのサブセットを探索することによって、現在のビデオフレーム(N)224に対するオブジェクト検出と動きに基づくトラッキングとを実行することができる(602)。
[00129]電子デバイス102は、検出およびトラッキング信頼性値256を決定することができる(604)。検出およびトラッキング信頼性値256は、ターゲットオブジェクトが現在のビデオフレーム(N)224の中で、または特定のウィンドウ内で見出されるかどうかの、信頼性のレベルを与え得る。電子デバイス102は、検出および信頼性値256が検出およびトラッキング閾値254よりも大きいかどうかも決定することができる(606)。検出および信頼性値256が検出およびトラッキング閾値254よりも大きい場合、電子デバイス102は、次のビデオフレームにおけるウィンドウとサイズのサブセット(たとえば、同じサブセット)とを使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(608)。代替的に、検出および信頼性値256が検出およびトラッキング閾値254よりも小さい場合、電子デバイス102は、次のビデオフレームにおけるウィンドウ位置およびサイズのより大きいサブセットを使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(610)。いくつかの構成では、信頼性値256が検出およびトラッキング閾値254よりも小さい場合、電子デバイス102は、次のビデオフレームの探索空間全体および/またはすべてのウィンドウを使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(610)。
[00130]図7を参照すると、異なるウィンドウサイズ766を有する画像ウィンドウ700の特定の実施形態が示されている。具体的には、図7は、10個の可能なウィンドウサイズ766a〜jのセットを示している。各ウィンドウサイズ766は、スケールレベル(たとえば、1〜10)に対応し得る。本明細書では矩形として示されているが、探索されるウィンドウは、任意の形状、たとえば、正方形、矩形、円形、楕円、ユーザ定義されたものなどであり得る。さらに、任意の数、たとえば、5個、15個、20個、30個などのウィンドウサイズ766またはスケールレベルが利用可能であり得る。
[00131]探索範囲は、特定の位置に対して使用されるウィンドウサイズのサブセットによって示されてよく、たとえば、現在のビデオフレーム(N)224中で探索されるウィンドウサイズは、最近のフレーム中のターゲットオブジェクトと関連付けられるウィンドウ位置およびウィンドウサイズと同様のものに限定され得る。たとえば、フィードバックを伴わずに、オブジェクト検出器208は、各々の選択されたウィンドウ位置についてすべての10個のウィンドウサイズ766a〜jを探索し得る。しかしながら、オブジェクトが、第5のウィンドウサイズ766eを有するウィンドウを使用して最近の(非現在の)ビデオフレーム中で検出された場合、スキャナスケーラ236は、5プラスまたはマイナス3という現在のキャプチャされたフレームのためのウィンドウサイズ、すなわち、ウィンドウサイズ2〜8だけを選択し得る。言い換えれば、第1のウィンドウサイズ766a、第9のウィンドウサイズ766i、および第10のウィンドウサイズ766jを有するウィンドウは、最近または前のビデオフレーム(N−1)222からのフィードバックに基づいて探索されないことがある。これはさらに、低い確率の探索をなくし、オブジェクト検出の効率を増加させ得る。言い換えれば、最近のビデオフレームからのフィードバックを使用することは、実行される計算を減らすのに役立ち得る。代替的に、最近のビデオフレームがターゲットオブジェクトを検出しなかった(すなわち、最近のキャプチャされたフレームのための検出およびトラッキング信頼性値256が検出およびトラッキング閾値254よりも小さい)場合、オブジェクト検出器208は、サイズレベルのサブセットを使用することによって探索範囲を限定しないことがある。
[00132]図8を参照すると、オブジェクトトラッキングおよび検出モジュール804の特定の例示的な実施形態が示されている。図8に示されたオブジェクトトラッキングおよび検出モジュール804は、図2に示されたオブジェクトトラッキングおよび検出モジュール204と同様のモジュールを含み、同様の機能を実行し得る。具体的には、図8に示されたオブジェクト検出器808、動きトラッカー806、スキャナロケータ830、ウィンドウ位置選択器832、ランダマイザ834、スキャナスケーラ836、分類器838、融合モジュール860、メモリバッファ810、キャプチャされた前のビデオフレーム812、ウィンドウ842、位置844、サイズ846、バイナリ決定848、トラッキング閾値850、検出閾値852、検出およびトラッキング閾値854、検出信頼性値840、トラッキング信頼性値828、ならびに検出およびトラッキング信頼性値856は、図2に示されたオブジェクト検出器208、動きトラッカー206、スキャナロケータ230、ウィンドウ位置選択器232、ランダマイザ234、スキャナスケーラ236、分類器238、融合モジュール260、メモリバッファ210、キャプチャされた前のビデオフレーム212、ウィンドウ242、位置244、サイズ246、バイナリ決定248、トラッキング閾値250、検出閾値252、検出およびトラッキング閾値254、検出信頼性値240、トラッキング信頼性値228、ならびに検出およびトラッキング信頼性値256に対応し、それらと同様の機能を有し得る。
[00133]オブジェクトトラッキングおよび検出モジュール804は、ターゲットの動きおよびトラッキングエラーによるジッタの影響を低減するために使用される平滑化モジュール861を含み得る。言い換えれば、平滑化モジュール861は、トラッキング結果を平滑化し、探索ウィンドウが、位置(x,y)844とサイズ(幅、高さ)846の両方においてより滑らかな軌道を有するようにする。平滑化モジュール861は、単純な移動平均(MA)フィルタまたは自動回帰(AR)フィルタであり得る。位置844に対する平滑化の程度およびサイズ846に対する平滑化の程度は異なり得る。カルマンフィルタのような予測フィルタも、位置844の平滑化に好適であり得る。したがって、平滑化モジュール861は、平滑化されていない位置863と平滑化されていないサイズ865とを入力として受信し、平滑化された位置867と平滑化されたサイズ869とを出力し得る。
[00134]図9を参照すると、平滑化モジュール961の特定の例示的な実施形態が示されている。平滑化モジュール961は、ターゲットの動きとトラッキングエラーとによるジッタの影響を低減するために使用されてよく、すなわち、したがって、トラッキング結果(バウンディングボックス)は、位置(x,y)とサイズ(幅、高さ)の両方においてより滑らかな軌道を有する。一構成では、位置平滑化フィルタ971およびサイズ平滑化フィルタ973は、平滑化されていない位置963と平滑化されていないサイズ965とを入力として受け取り、平滑化された位置967と平滑化されたサイズ969とを出力するために、自動回帰(AR)モデルを使用して実装される。
[00135]自動回帰(AR)モデルでは、Xは、平滑化されるべき変数であり、位置またはサイズのいずれかであると仮定する。さらに、X’をオブジェクトトラッカーによるXの出力とする。この構成では、時間tにおけるXの平滑化されたフィルタリングXtが、式(1)に従って表され得る。
Xt=W*X’t+(1−W)*Xt-1 (1)
ここで、X’tは、時間tにおけるXのトラッカー出力であり、Xt-1は、時間t−1におけるXの平滑化された結果であり、W(0≦W≦1)は、平滑化の効果を制御する平滑化重みである。たとえば、X’tは、現在のビデオフレーム(N)224のために選択されたウィンドウ位置またはウィンドウサイズであってよく、Xt-1は、前のビデオフレーム(N−1)222のために使用されたウィンドウ位置またはウィンドウサイズであってよい。
[00136]異なる平滑化重みWが、位置平滑化フィルタ971およびサイズ平滑化フィルタ973のために使用され得る。たとえば、一実装形態では、ウィンドウ位置に対しては平滑化効果がより少ないが、ウィンドウサイズに対して平滑化効果がより強いように、Wlocation=0.8およびWsize=0.4である。平滑化重みのこの選択は、より少ないトラッキング遅延とより少ないジッタの両方をもたらす。
[00137]平滑化重みのその選択はまた、検出およびトラッキング信頼性値856がある閾値(たとえば、検出およびトラッキング閾値854)を下回るときに低減され得る。これは、潜在的トラッキングまたは検出誤差が高いとき、より強いフィルタリングを引き起こし得る。たとえば、低いトラッキングの信頼性に応答して(たとえば、検出およびトラッキング信頼性値856が検出およびトラッキング閾値854を下回る)、位置のための平滑化重みおよびサイズのための平滑化重みは、それぞれWlocation=0.65およびWsize=0.2に設定され得る。言い換えれば、重みの一方または両方が下げられてよく、これにより、ウィンドウ位置およびサイズ選択は、現在のビデオフレームのウィンドウ位置およびサイズよりも、前のビデオフレームのウィンドウ位置およびサイズにより大きく依存するようになり得る。
[00138]重み付けは、検出およびトラッキング信頼性値856ではなく、トラッキング信頼性値828または検出信頼性値840に基づき得る。たとえば、平滑化重みWlocationおよびWsizeは、トラッキング信頼性値828がトラッキング閾値850を下回ったことに応答して下げられてよく、すなわち、より強いフィルタリングが、不十分な動きトラッキングに応答して使用されてよい。代替的に、平滑化重みは、検出信頼性値840が検出閾値852を下回ったことに応答して下げられてよく、すなわち、より強いフィルタリングが、不十分なオブジェクト検出に応答して使用されてよい。
[00139]別の構成では、カルマンフィルタリングが、ウィンドウ位置を平滑化するために使用され得る。そのような構成では、フィルタリングは式(2)〜(7)に従って定義され得る。
xk=Fkxk-1+wk (2)
zk=Hxk-1+vk (3)
ここで、xk-1は時間k−1における前の状態であり、xkは
によって定義される現在の状態であり、
(x,y)はバウンディングボックスの中心の位置であり、
は、各方向における速度である。さらに、状態遷移モデルFk、および観測モデルHは、それぞれ式(4)〜(5)によって定義され得る。
上式で、Δtは調節可能なパラメータである。加えて、wkは、式(6)に従った共分散Qを有するゼロ平均多変量正規分布(zero mean multivariate normal distribution)から導出されると考えられるプロセス雑音である(すなわち、wk〜N(0,Q))。
ここで、σ1は調節可能なパラメータである。同様に、wkは、式(7)に従った共分散Rを有するゼロ平均ガウスホワイトノイズ(zero mean Gaussian white noise)であると考えられる観測雑音である(すなわち、vk〜N(0,R))。
ここで、σ2は調節可能なパラメータである。
[00140]図10を参照すると、動きトラッキングの結果のジッタを平滑化するための方法1000の特定の例示的な実施形態のフローチャートが示されている。方法1000は、電子デバイス102、たとえば、電子デバイス102中のオブジェクトトラッキングおよび検出モジュール804によって実行され得る。電子デバイス102は、現在のビデオフレーム224と関連付けられる1つまたは複数のウィンドウ位置と1つまたは複数のウィンドウサイズとを決定し、たとえば、平滑化されていない位置863と平滑化されていないサイズ865とを決定することができる(1002)。電子デバイス102はまた、1つまたは複数の平滑化されたウィンドウ位置867と1つまたは複数の平滑化されたウィンドウサイズ869とを生成するために、1つまたは複数のウィンドウ位置と1つまたは複数のウィンドウサイズとをフィルタリングすることができる(1004)。たとえば、これは、移動平均フィルタ、自動回帰フィルタ、またはカルマンフィルタを使用することを含み得る。一構成では、低いトラッキング信頼性に応答して(たとえば、検出およびトラッキング信頼性値856が検出およびトラッキング閾値854を下回る)、位置のための平滑化重みおよびサイズのための平滑化重みは低減され得る。代替的に、平滑化重みは、検出信頼性値840またはトラッキング信頼性値828に基づいて低減され得る。電子デバイスはまた、1つまたは複数の平滑化されたウィンドウ位置867および1つまたは複数の平滑化されたサイズ869によって定義された1つまたは複数のウィンドウを使用して、現在のビデオフレーム224内のターゲットオブジェクトを検出することができる(1006)。
[00141]撮影されたシーンの文脈では、「オブジェクト」という用語は、シーン内の物理的な物体を指す。ビデオストリームの文脈では、「オブジェクト」という用語は、ビデオストリーム内での物体の表現(たとえば、ビデオストリームのフレーム中の物体の画像)を指す。本明細書で使用される「モバイルデバイス」という用語は、次のフォームファクタ、すなわち、携帯可能(たとえば、スマートフォン)、運転可能(たとえば、車両またはロボット)、装着可能(たとえば、衣服またはアクセサリ)、および飛行可能(たとえば、ドローン)のいずれかのデバイスを含む。モバイルデバイスは、1つまたは複数の画面(たとえば、タッチスクリーン)および/または1つまたは複数の画像キャプチャデバイス(たとえば、カメラ)を含み得る。
[00142]デジタル画像(たとえば、ビデオストリームのフレーム)は、1つまたは複数のオブジェクトを含み得るシーンを示す。通常、オブジェクトは物理的な有形の物体(たとえば、人々)である。図12では、たとえば、シーン中のオブジェクトは、3人の人物と、星と、木とを含む。
[00143]1つまたは複数のデジタル画像(たとえば、ビデオストリームのフレーム)から、1つまたは複数の画像内の選択されたオブジェクトの位置を経時的に表す情報を有する、関連するストリームまたはファイルを生成するのが望ましいことがある。一例では、そのような情報は、経時的に変化し得る、対象の点(たとえば、選択されたオブジェクトの重心)の絶対的な位置を含む。別の例では、そのような情報は、経時的に変化し得る、対象の点(たとえば、選択されたオブジェクトの重心)の位置に対する選択されたオブジェクトの位置を含む。対象の点の位置(たとえば、選択されたオブジェクトの位置、または複数のオブジェクトの重心)は、メタデータ(たとえば、1つまたは複数のそれぞれの位置コードブックへの、コードワードのような1つまたは複数のインデックス)として符号化され得る。
[00144]図11Aは、タスクT100とT300とを含む第1の構成によるメタデータを生成する方法M100のフローチャートを示す。タスクT100は、複数のオブジェクトを選択するために少なくとも1つのデジタル画像を使用し、ビデオストリームは物理空間との関連でオブジェクトを示す。位置空間中の選択されたオブジェクトの位置を示す情報に基づいて、タスクT300は、選択されたオブジェクトの複数の幾何学的構成(geometrical arrangements)の候補のうちの1つを特定するメタデータを生成する。タスクT100およびT300は、たとえば、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
[00145]タスクT100は、複数のオブジェクトを選択するために少なくとも1つのデジタル画像を使用し、少なくとも1つのデジタル画像は物理空間との関連でオブジェクトを示す。この選択は、ユーザによる直接の動作に応答して実行され得る。そのような場合、少なくとも1つのデジタル画像をユーザに表示するために画面が使用されてよく、ユーザは、表示に現れているオブジェクトの中から特定の所望のオブジェクトを選択するために指示を入力することができる。図11Bは、少なくとも1つのデジタル画像を表示するタスクT50を含む方法M100の実装形態M110のフローチャートを示す。表示がタッチスクリーン上で実行される場合、ユーザは、画面をタッチして所望のオブジェクト内のある点を選択することによって、選択を示すことができる。
[00146]少なくとも1つのデジタル画像は、ビデオストリームの1つまたは複数のフレームであり得る。ビデオストリームは一連のフレームを表し、ここで各フレームはピクセル座標空間中の画像を表す。ビデオストリームは通常、ストリームからフレームを復元するために使用され得る他の情報(たとえば、各フレームに対する、対応するフレーム開始コードまたはパケットおよびフレーム終了コードまたはパケット)を含む。ビデオストリームはまた、特定のフレームと関連付けられ得る埋め込まれたデータ(たとえば、メタデータ)を含み得る。ビデオストリームは、(可視の波長および/または他の波長を感知し得る)カメラまたは他の撮像デバイスによって生成されてよく、別のデバイスからストリーミングされてよく、またはデコーダによって(たとえば、磁気媒体または光学媒体に記憶されている情報から)生成されてよく、圧縮された形式または圧縮されていない形式であってよい。ビデオストリームは、構築された光イメージャまたは他のデプスカメラ(たとえば、Microsoft Kinect)によってキャプチャされた画像に基づくビデオストリームのような、深度情報を含み得る。そのようなビデオストリームは、たとえば、各ピクセルの深度値を対応する色と対応付けることによって、タッチスクリーン上に表示され得る。ビデオストリームは、生であることがあり、遅延していることがあり、または記憶装置から検索される(たとえば、事前に記録されている)ことがある。
[00147]ビデオストリームは、デジタル画像(「フレーム」)の時間シーケンスである。一例では、画像のシーケンスは、特定のフレームレートで(たとえば、同じフレームレートでの提示のために)キャプチャされる。ビデオストリームは、各フレームの開始と終了とを示す情報を含み得る。一例では、ビデオストリームは、各フレームの最初のピクセルの前のフレーム開始コードと、各フレームの最後のピクセルの後のフレーム終了コードとを含む。別の例では、ビデオストリームは、ビデオストリームのフレームのピクセル情報を搬送する1つまたは複数のデータ信号と、ビデオストリームの各フレームの開始と終了とを示す1つまたは複数の同期信号とを含む。プライマリビデオストリームの特定のフォーマットに応じて、プライマリビデオストリームは追加の情報(たとえば、ヘッダ、メタデータ)を含み得る。プライマリビデオストリームが、フレーム開始コードとフレーム終了コードとの間にフレームデータ(すなわち、ピクセル値)以外のデータを含むことも可能である。そのような他のデータは、たとえば、センサ構成の詳細および/または画像の統計値を含み得る。
[00148]ビデオストリームの解析は、(たとえば、フレーム開始情報とフレーム終了情報とを使用して)ビデオストリームのフレームを抽出することと、フレームを処理のために利用可能にすることとを含む。たとえば、解析することは、バッファのような対応する指定された位置に各フレームを記憶することを含み得る。図11Cは、少なくとも1つのデジタル画像を生成するためにビデオストリームを解析するタスクT30を含む、方法M100の実装形態M120のフローチャートを示す。代替的に、ビデオストリームの1つまたは複数のフレームが任意の時間において方法M100に対して(たとえば、メモリ中のバッファにおいて)利用可能であるように、別のプロセスが(たとえば、表示のために)ビデオストリームを解析するために実行され得る。図11Dは、方法M110およびM120の実装形態M130のフローチャートを示す。
[00149]そのようなバッファ(たとえば、メモリバッファ110)は通常、ある時間において少なくとも1つの完全なフレームを記憶することが可能である。プライマリビデオストリームの解析は、複数のフレームバッファを交互にするように構成され得る。たとえば、1つのそのようなフレームバッファは処理のために完全なフレームを記憶することができるが、シーケンス中の後続のフレームが抽出されて別のフレームバッファに記憶される。代替的に、タスク30または解析プロセスは、新たなフレームが抽出されるにつれてバッファが更新される(および古いフレームが上書きされる)ように、解析されたフレームを循環バッファに記憶するように構成され得る。
[00150]プライマリビデオストリームを解析することは、1つまたは複数の関連するオーディオストリームおよび/またはメタデータストリームからプライマリビデオストリームを分離するための、逆多重化動作を含み得る。代替的に、そのような動作は、タスクT30または解析プロセスの上流で実行され得る(たとえば、プライマリビデオストリームはデマルチプレクサによって提供され得る)。
[00151]図12は、3つのオブジェクトを選択するための一連のユーザの動作の例を示す。パネルAは、デバイスのタッチスクリーン上に表示されるようなシーンを示す。デバイスは、選択モードを開始するようにユーザによって操作され得る。たとえば、タッチスクリーンは、ユーザが適切なアイコンをタッチするときに、選択モードに入るように構成され得る。パネルAは、フレームの右上の角にある選択ツールアイコンの例を示す。パネルBにおいて、ユーザは、選択モードを開始するために選択ツールアイコンをタッチする。パネルCにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第1のオブジェクトをタッチして第1のオブジェクトを選択する。パネルDにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第1のオブジェクトがハイライトされており(たとえば、示されるようにシルエットが付けられている、または輪郭が付けられている)、ユーザは第2のオブジェクトをタッチして第2のオブジェクトを選択する。パネルEにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第2のオブジェクトがハイライトされており、ユーザは第3のオブジェクトをタッチして第3のオブジェクトを選択する。パネルFにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第3のオブジェクトがハイライトされており、ユーザは選択ツールアイコンを再びタッチして選択モードを終了する。デバイスは、ユーザが選択モードにおいて再び選択されたオブジェクトをタッチすると、選択されたオブジェクトの選択を解除するように構成され得る。
[00152]図13は、3つのオブジェクトを選択するための一連のユーザの動作の別の例を示す。この場合、デバイスは、図12に示されるような選択モードとは異なるように動作する。パネルAにおいて、ユーザは、選択モードを開始するために選択ツールアイコンをタッチする。パネルBにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第1のオブジェクトをタッチして第1のオブジェクトを選択する。パネルCにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第1のオブジェクトがハイライトされており、選択に応答して、選択モードが終了され、ハイライトがツールアイコンから除去される。ユーザは選択ツールアイコンを再びタッチして選択モードを開始し、パネルDにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第2のオブジェクトをタッチして第2のオブジェクトを選択する。パネルEにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第2のオブジェクトがハイライトされており、選択に応答して、選択モードが終了され、ハイライトがツールアイコンから除去される。ユーザは選択ツールアイコンを再びタッチして選択モードを開始し、パネルFにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第3のオブジェクトをタッチして第3のオブジェクトを選択する。
[00153]別の例では、タッチスクリーンは、2動作の選択に応答して選択モードに入るように構成されてよく、第1の動作はメニューモードを選択し(たとえば、ユーザは画面の指定された領域をタッチしてメニューを表示させる)、第2の動作はメニューから選択モードを選択する。さらなる例では、選択ツールアイコンをタッチアンドホールドし、アイコンを画面上の所望の点へとドラッグし、次いでアイコンを離してその点を選択することによって、ユーザがオブジェクトを選択するように、タッチスクリーンが構成され得る。代替的に、ユーザは、所望のオブジェクトの少なくとも一部分を含む画像のエリア(たとえば、バウンディング(bounding)ボックスまたは楕円またはなげなわ)を選択することによって選択を示すために、タッチスクリーンを操作することができる。そのような場合、ユーザは、所望のオブジェクトを個々に、および/またはグループとして選択することができる。
[00154]ユーザが選択モードの間に表示されるビューのフィールドを操作できるようにすること(たとえば、ビューのフィールドを広げるためのピンチ動作、およびビューのフィールドを狭めるためのズーム動作を行うこと)が、望ましいことがある。タッチスクリーンの操作以外に、直接のユーザによる選択のための他の可能な方式は、1つまたは複数のボタンもしくは他のスイッチを作動させること、および/またはジェスチャ認識を含む。ユーザによるそのような直接の動作に対する代替形態として、タスクT100は、1つまたは複数の所定の基準を少なくとも1つのデジタル画像(たとえば、ビデオストリームの1つまたは複数のフレーム)からの情報に適用することによって、自動的に選択を実行することができる。そのような基準は、たとえば、選手のジャージの番号の認識、顔認識、および/または(たとえば、スポーツイベントにおけるボールのような高速に移動するオブジェクトを識別するための)速度の検出を含み得る。
[00155]方法M100は、タスクT100における選択に応答して、オブジェクトをトラッキングするように実施され得る。たとえば、下で説明されるような位置決定タスクT200は、(たとえば、オブジェクトトラッキングおよび検出モジュール204ならびに/またはオブジェクトトラッキングおよび検出モジュール804を参照して上で説明されたように)ビデオストリーム内の1つまたは複数の選択されたオブジェクトをトラッキングするためにも実施され得る。代替的に、オブジェクトトラッキングはタスクT100よりも前に開始してよい。そのような場合、タスクT100は、トラッキングされるオブジェクトのセットの中からの選択のために実施され得る。たとえば、ユーザは、トラッキングされたオブジェクトの表示の中から選択することができる。そのようなオブジェクトトラッキング(たとえば、タスクT200による)のために使用され得るアルゴリズムの例は、Lucas−Kanade法(およびKanade−Lucas−Tomasiトラッカーのような変形)と、ミーンシフトトラッキングとを含む。オブジェクトのトラッキングは、プライマリビデオストリームのフレームの他の部分からオブジェクトを区画することを含み得るが、オブジェクトトラッキングは、そのような区画化がなくても実行され得る。
[00156]デジタル画像(たとえば、ビデオストリームのフレーム)の他の部分からのオブジェクトの区画化は、フレームの他の部分に対するオブジェクトの強調された表示(たとえば、シルエット付与または輪郭付与)をサポートするために使用され得る。区画化は、タスクT100におけるオブジェクトの選択に応答して(たとえば、表示タスクT50によって)実行され得る。そのような区画化は、オブジェクトの選択を確認することによって、ユーザに視覚的なフィードバックを提供するために使用され得る。区画化は、選択が開始する前にも実行され得る。そのような場合、タスクT100における選択は、すでに区画されているオブジェクトのセット(たとえば、区画されたオブジェクトが強調されている表示)の中から行われ得る。
[00157]図14の左側のパネルは、オブジェクトを含むシーンを示すビデオストリームからのフレームの2つの例を示す。オブジェクトの強調された表示は、タスクT100における選択の前に、またはそのような選択に応答して(たとえば、表示タスクT50によって)実行され得る。強調された表示の一例はオブジェクトのシルエットであり、これは、背景とは対照的な色(たとえば、図14の中央のパネルにおいて示されるように、黒または黄)で表示され得る。この対照的な色は、すべてのオブジェクトに対して同じであってよく、または、(たとえば、各オブジェクトの局所的な背景と対照的となるように)オブジェクトによって異なっていてよい。(対照的な色で同様に行われ得る)強調された表示の他の例は、オブジェクトに輪郭を付与することと、オブジェクトにおいて、オブジェクト内に、またはオブジェクトの周囲にグラフィカル要素(たとえば、図14の右側パネルに示されるような、オブジェクトの頂点またはセントロイドにおける三角形、オブジェクトの周囲の楕円など)を表示することとを含む。
[00158]ビデオストリームの表示をユーザによるオブジェクトの直接の選択のための環境として使用することは、低速で動いているオブジェクトに対しては適切であり得る。しかしながら、所望のオブジェクトのいずれかが表示の中で高速に動いている場合、そのような構成はユーザにとって不愉快であり得る。そのような高速な移動の場合、代わりに、ユーザによるオブジェクトの直接の選択のための環境として、ビデオストリームの単一のフレームを表示することが望ましいことがある。上で説明されたように、選択は、フレーム中のオブジェクトが区画され強調されている表示から行われ得る。ストリーム表示の選択とフレーム表示の選択の両方がサポートされる場合、これらの表示モードからの選択は、ユーザによって、および/または自動的に実行され得る。自動的な選択の場合、ストリームにおける動きの程度が、たとえばオプティカルフロー、動きベクトル、フレーム間のピクセル差分などのような尺度を使用して、定量化され得る。そのような場合、フレーム表示モードは、尺度の値が閾値を上回るときに選択されてよく、ストリーム表示モードは、尺度の値が閾値を下回るときに選択されてよい。
[00159]位置空間中の選択されたオブジェクトの位置を示す情報に基づいて、タスクT300は、選択されたオブジェクトの複数の幾何学的構成の候補の中から1つを特定するメタデータを生成する。位置空間は、デジタル画像(たとえば、ビデオストリームのフレーム)の(x,y)直交座標空間のような、(たとえば、ビデオストリームの)少なくとも1つのデジタル画像のピクセル座標空間であり得る。デジタル画像(たとえば、ビデオフレーム)のピクセル座標空間の原点は通常、画像の左上または左下の角として指定される。選択されるオブジェクトの位置は、たとえば、ユーザがオブジェクトを選択するために画面をタッチした位置であり得る。代替的に、選択されるオブジェクトの位置は、本明細書で説明されるようなオブジェクトトラッキングおよび検出モジュール204または804のような、オブジェクトトラッカーによって提供され得る。
[00160]幾何学的構成は、選択されるオブジェクトの空間における構成(arrangement)である。たとえば、幾何学的構成は、(たとえば、多角形の頂点のような)選択されるオブジェクトの位置によって表される形状であり得る。タスクT300は、オブジェクトの位置に1つまたは複数の尺度(メトリック)を適用することによって、幾何学的構成の候補のうちの適切な1つを特定するように実施され得る。そのような場合、タスクT300は、尺度の値に従って候補を選択するために、決定木を使用することができる。生成されるメタデータはまた、候補に適用されるべきスケール係数および/またはアスペクト係数、候補の方向の向き、および、軸の回りで候補が反転されるべきであるかどうかを示すミラーフラグのうちのいずれかのような、追加の情報を含み得る。
[00161]タスクT300は、複数の幾何学的構成の候補のうちのいずれが選択されたオブジェクトの位置によって表される形状と最も類似しているかを決定するように実施され得る。図35は、「等距離」、「近−遠−遠」、および「近−遠−遠」と標識される、3つの幾何学的構成の候補のセットの1つと3つの位置A、B、Cによって表される形状を照合するためにタスクT300が実施され得る、1つの例を示す。
[00162]この例では、点の間の3つの距離(すなわち、AB、BC、およびAC)が、それらの中で最小のものと、中間のものと、最大のものとを決定するために計算され、大きさにより分類される。最小の距離は、最大の距離の3分の2である値と比較される。最小の距離の方が大きい場合、タスクT300は、図35の左上にあるボックスによって示されるように、候補「等距離」を選択する。最小の距離の方が小さい場合、中間の距離が、最小の距離および最大の距離の合計の半分である値と比較される。中間の距離の方が大きい場合、タスクT300は、図35の下にあるボックスによって示されるように、候補「近−遠−遠」を選択する。中間の距離の方が小さい場合、タスクT300は、図35の右上にあるボックスによって示されるように、候補「近−近−遠」を選択する。
[00163]図35はまた、決定の境界に当たる3つの場合を示しており、これらは、望み通りに、隣接する候補のいずれかへとタスクT300によって割り当てられ得る。この場合、適切な候補を特定するメタデータは、各々が3つの幾何学的構成の候補の対応する1つを示す、3つのあり得る値の1つを有するパラメータであり得る。メタデータはまた、(たとえば、回転として)候補に適用されるべき方向を示し得る。一例では、方向は、最小の距離の反対側の点を通る、幾何学的構成の中心からの線分の方向として示される。別の例では、方向は、選択されたオブジェクトの特定の1つに対応する点を通る、幾何学的構成の中心からの線分の方向として示される。
[00164]図37Aは、タスクT200を含む方法M200の実装形態M200のフローチャートを示し、タスクT200は、位置空間中の選択されたオブジェクトの位置を示す情報を取得する。タスクT200は、タスクT100における選択に応答して実行するように実施され得る。位置空間は、デジタル画像(たとえば、ビデオストリームのフレーム)の(x,y)直交座標空間のような、(たとえば、ビデオストリームの)少なくとも1つのデジタル画像のピクセル座標空間であり得る。デジタル画像(たとえば、ビデオフレーム)のピクセル座標空間の原点は通常、画像の左上または左下の角として指定される。図37B〜図37Dは、タスクT200を含む、方法M110の実装形態M210、方法M120の実装形態M220、および方法M130の実装形態M230のフローチャートをそれぞれ示す。
[00165]表示のピクセル座標空間は位置空間と同じであってよく、または位置空間は表示のピクセル座標空間を含んでよい。たとえば、表示のフレームは、(たとえば、ビューのフィールドを狭めるためのズーム動作に応答して)ビデオストリームの対応するフレームの一部分だけを含み得る。代替的に、表示のピクセル座標空間は位置空間を含み得る。たとえば、ビデオストリームは、表示のフレームよりも小さい表示のウィンドウに表示されてよく、他のコンテンツは表示の別のウィンドウに表示される。
[00166]タスクT200は、ピクセル座標空間中の選択されたオブジェクトの画像の位置として、選択されたオブジェクトの位置を決定するように実施され得る。たとえば、決定された位置はオブジェクトの重心であり得る。一定の密度が仮定される場合、重心はセントロイドと同じであるが、密度の差は、たとえば色および/または透明度の差によっても示され得る。決定された位置の他の例は、オブジェクトの上部または下部のピクセル、オブジェクトの上部または下部へのオブジェクトの重心の垂直方向の投影、またはオブジェクトの特定の特徴の位置を含む。図17Aは、オブジェクトの下部境界線へとオブジェクトの重心C10を投影して対応する決定された位置DP10を得る例を示す。
[00167]代替的に、または加えて、タスクT200は、複数のオブジェクトの編成の基準の位置を決定するように実施され得る。たとえば、タスクT200は、選択されたオブジェクトの編成の位置として基準の位置を計算するように実施され得る。そのような場合、決定された基準の位置は、編成の重心(異なるオブジェクトが同じまたは異なる密度を有する)であってよく、オブジェクトに属する上部もしくは下部のピクセル、編成の上部もしくは下部への編成の重心の垂直方向の投影、またはオブジェクトの特定の1つの位置であり得る。そのような場合、タスクT200は、(たとえば、基準の位置を原点として使用するために)基準の位置に対する位置として選択されたオブジェクトの位置を決定することができる。
[00168]選択されたオブジェクトは、共通のオブジェクトの一部ではないように、互いに物理的に離れていてよい。たとえば、オブジェクトの少なくとも1つは、他のオブジェクトとは独立に動くことが可能であり得る。特定の例では、オブジェクトの1つまたは複数は、異なる人、動物、および/または車両である。
[00169]ビデオストリームまたは表示のピクセル座標空間は、2次元または3次元であり得る。3次元表示の例は、立体視的(たとえば、左/右)なボリュメトリック(volumetric)表示を含む。そのような位置空間にあるオブジェクトのユーザ選択は、たとえば、手袋、ジェスチャ(たとえば、方向感知デバイスを傾けること)、または圧力感知タッチスクリーンを使用して、3次元で選択点を操作することを含み得る。
[00170]代替的に、位置空間は物理空間(たとえば、シーン空間)であり得る。1つのそのような例では、決定された基準の位置は、構築された光イメージャまたは他のデプス(depth)カメラ(たとえば、Microsoft Kinect)からのビデオストリームのような、深度(depth)情報を含むビデオストリームを使用して選択される、少なくとも1つの点に基づく。そのようなビデオストリームは、たとえば、各ピクセルの深度値を対応する色と対応付けることによって、タッチスクリーン上に表示され得る。決定された基準の位置は、物理空間中の各々の選択されたオブジェクトの画像の位置に基づいてよく、または、上の例のように、選択されたオブジェクトの編成(formation)の位置(たとえば、重心)であってよい。そのような位置空間にあるオブジェクトのユーザ選択は、たとえば、手袋、ジェスチャ(たとえば、方向感知デバイスを傾けること)、または圧力感知タッチスクリーンを使用して、3次元で選択点を操作することを含み得る。
[00171]図15A〜図15Cは、方向感知デバイスを使用して表示されるシーンの深度次元において選択点を操作する例を示す。そのような方向感知デバイスは、たとえば、重力軸(たとえば、デバイスおよび地球の中心を通る軸)に対するデバイスの方向を示す1つまたは複数の方向センサを有するモバイルデバイスであり得る。そのような1つまたは複数の方向センサは、たとえば、1つもしくは複数の慣性センサ(たとえば、ジャイロスコープおよび/または加速度計)および/または1つもしくは複数の磁場センサ(たとえば、磁力計)を含み得る。
[00172]図15A〜図15Cの各々において、左パネルは、方向感知デバイスの画面上の同じデジタル画像の表示を示し、右パネルは、重力軸gに対するデバイスの対応する方向(太線で指示されている、表示の垂直方向の線を通る断面図において示されている)を示す。これらの図面の各々に表示されるようなシーンは、前景の(すなわち、キャプチャデバイスに最も近い)オブジェクトと、中景のオブジェクトと、背景の(すなわち、キャプチャデバイスから最も遠い)オブジェクトとを含む。これらの例の各々において、傾きの度合いは、表示の左側にあるスライダーによって示される。デバイスが図15Aにおいて示されるように地面に対して垂直であるとき、傾きの度合いは低く、(左パネルにおいてハイライトによって示されるように)前景のオブジェクトが選択される。デバイスが図15Cにおいて示されるように地面に対して水平であるとき、傾きの度合いは高く、(左パネルにおいてハイライトによって示されるように)背景のオブジェクトが選択される。デバイスが図15Bにおいて示されるようにこれらの方向の間にあり地面に対して45度の角度にあるとき、傾きの度合いは中間点であり、(左パネルにおいてハイライトによって示されるように)中景のオブジェクトが選択される。
[00173]別の例では、物理空間中のオブジェクトの位置は、オブジェクトの中の、またはオブジェクト上の1つまたは複数の位置センサ(たとえば、GPSセンサ)からの情報によって示され得る。たとえば、オブジェクトは、1つまたは複数のそのようなセンサを含んでよく(たとえば、ボール)、または、1つまたは複数のそのようなセンサを装着していてよい(たとえば、人または動物)。表示のピクセル座標空間中のユーザにより選択される位置を、物理空間中のオブジェクトの感知される位置とリンクすることが、タッチスクリーンデバイス中の位置センサおよび/もしくは方向センサ、ならびに/またはオブジェクトの特徴(たとえば、色、ジャージの番号)の認識を使用して実行され得る。
[00174]加えて、または代替的に、物理空間中のオブジェクトの位置は、ピクセル座標空間中のオブジェクトの画像の位置から投影され得る。表示面におけるオブジェクト画像の位置の間の空間的な関係は、物理空間中の対応するオブジェクトの位置の間の空間的な関係とは良好に相関しないことがある。そのような不一致は、表示面(たとえば、ビデオストリームのキャプチャの間の焦点面)が地面に対して垂直であるときに最も大きくなり得る。
[00175]図16は、シーン空間中の実際のオブジェクトの間の距離と比較されたときの、2Dピクセル座標空間中のオブジェクトの画像間の距離の不一致の例を示す。上パネルAはデジタル画像(たとえば、ビデオストリームのフレーム)を示し、下パネルAは示されるようなシーンの左側の3人の人のセントロイドの間の距離を示す。これらの距離は、一番左の人と他の2人の各々との間の距離が、他の2人の間の距離よりも遠いことを示す。上パネルBは、上から直接見られた場合の同じシーンを示し、下パネルBは、真ん中の人と他の2人との間の距離が他の2人の間の距離よりも実際にははるかに遠いことを示すので、下パネルAにおいて示される距離の関係は、シーン空間における実際の距離の関係に対して不正確である。
[00176]物理空間は、シーン空間中の地面のような2次元空間であり得る。1つのそのような例では、位置空間はシーン空間中の地面であり、ピクセル座標空間中の点は地面における対応する点に投影される。たとえば、地面は、図16のパネルCに示されるようなバスケットボールコートなどの、運動競技場であり得る。ビューの異なるフィールドを有する、および/または異なる視点からキャプチャされる、同じまたは同様の空間中の同様のイベントのビデオストリームの間での、オブジェクトの位置の一貫性をサポートするために、そのような位置空間を使用するのが望ましいことがある。
[00177]デジタル画像のピクセル座標空間中の点を地面における対応する点と関連付けることは、シーン空間中のリンクされた点(たとえば、1つまたは複数のセンサおよび/またはデプスカメラからのデータによって示されるような)を地面へと下方向に投影する(または、適切であれば、リンクされた点を地面へと上方向に投影する)ことによって、実行され得る。図17Bは、地面における所定の位置DP20へのリンクされる点LP10(上で論じられたようなオブジェクト上のGPSセンサおよび/または他の位置センサによって示され得る)のそのような投影の例を示す。
[00178]代替的に、デジタル画像のピクセル座標空間中の点を地面における対応する点と関連付けることは、図18Aおよび図18Bに示されるような地面にピクセル座標空間からの点を投影することによって実行されてよく、図18Aおよび図18Bは、地面に対して垂直な面におけるキャプチャデバイスの焦点軸を通る断面を示す。そのような投影は、地面に対するキャプチャデバイスの方向角aが(たとえば、上で説明されたような1つまたは複数の方向センサから)知られている場合には、直接実行され得る。代替的に、方向角aは、地面の基準(たとえば、競技場の境界線)、水平線(たとえば、明るさの違いによって示される)、オブジェクトの境界となる水平方向の特徴(たとえば、舞台の前および後を示す線)、または少なくとも後方の境界となる水平方向の特徴のような、ビデオフレーム中の基準情報から推測され得る。図18Bに示されるように、地面における距離rとsとの比は、方向角aによって、焦点面における対応する距離pとqとの比と関連する。視野の角度bが知られており、焦点面における距離pとqとの比が表示空間において映像化されるような対応する距離と等しい(すなわち、これらの距離が、互いに対して、表示のピクセル座標空間中の垂直な線に沿って現れるので)ことが仮定され得る。
[00179]1つのそのような例では、タスクT200は、(たとえば、上で説明されたように)キャプチャデバイスの方向および/または画像基準情報を使用して、表示面を地面にマッピングするように実施される。この実装形態では、タスクT200は、(たとえば、図17Aに示されるように)オブジェクトの重心を表示面において下方向にオブジェクトの下部へと投影することによって、表示面における各々の選択されたオブジェクトの位置を決定し、この表示位置を地面の対応する位置にマッピングすることによって、位置空間におけるオブジェクトの位置を決定する。この場合、タスクT200は、上で説明された例のいずれかに従って、地面におけるオブジェクトの位置の平均として、または、地面におけるオブジェクトの位置の編成の位置として、決定される基準の位置を計算するように実施され得る。
[00180]タスクT300は、メタデータを少なくとも1つのデジタル画像と(たとえば、ビデオストリームと)関連付けるように実施され得る。そのようなメタデータはまた、選択されたオブジェクトのラベル(たとえば、人の名前)、選択されたオブジェクトの間の幾何学的構成の識別などのような、トラッキングされるオブジェクトに関する他の情報を含み得る。加えて、または代替的に、メタデータは、デバイスの他の要素から、および/または受信されるような少なくとも1つの画像もしくはビデオストリーム中のメタデータから取得され得る情報(たとえば、カメラの設定、カメラの向き、センサの特性、キャプチャの時間および/または位置)を含み得る。
[00181]タスクT300のそのような実施は、XML(拡張マークアップ言語)、KLV(Key−Length−Value)、*.srt(SubRipファイルフォーマット)、および*.vtt(ウェブビデオテキストトラックフォーマット)の中のいずれかのような、所望のフォーマットへとメタデータを符号化することができる。いくつかのフォーマットでは、メタデータの少なくともいくつかは、デジタル画像またはビデオストリーム内に(たとえば、埋め込まれたデータのために確保されているフレームデータの一部分の中に)含まれ得る。代替的に、タスクT300は、別のファイルとして、またはビデオストリームと同期されるメタデータストリームとしてメタデータをパッケージ化するように実施され得る。
[00182]ビデオストリームの各フレームについて、たとえば、または各々のn番目のフレーム(ここでnは1よりも大きな整数である)について、または指定される事象(たとえば、選択されたオブジェクトが動いたことのトラッキングタスクによる検出)の発生後に、ビデオストリームに対するタスクT300の繰り返される実体(たとえば、タスクT200およびT300の繰り返される実体)を含むように方法M100を実施するのが望ましいことがある。そのような場合、メタデータファイルまたはストリーム内のメタデータの項目は、そのような項目とビデオストリームの対応するフレームとの所望の関連付けを示すために、タイムスタンプを付与され得る。そのような場合、タスクT300はまた、ビデオとメタデータストリーム(場合によっては1つまたは複数のオーディオストリームも伴う)を多重化することを含み得る。
[00183]メタデータを含むストリームが送信および/または記憶されるべきである場合、他の情報および/またはフォーマット化が、特定のストリームフォーマットに適合するように実行され得る(たとえば、メタデータおよび/またはストリームは、ヘッダプラスペイロードフォーマットへとパケット化され得る)。タスクT300は、メタデータを含むストリームを、ストリームを符号化するように構成され得る圧縮器または他のエンコーダに提供するように実施され得る。そのようなストリームを記憶するために使用され得る記憶ファイルフォーマットの例は、次のビデオコンテナフォーマット、すなわち、AVI、WMV、MOV、MKV、MPG、およびMP4のいずれかを含む。
[00184]いくつかの適用例では、選択されたオブジェクトの幾何学的構成は、位置空間における多数の選択されたオブジェクト(たとえば、公共空間における群衆、動物の大群、空中または水上の乗物または他のオブジェクトの大群)の分布であり得る。タスクT300が各々の個々のオブジェクトの位置を示すメタデータを生成することは不要であることがあり、選択されたオブジェクトの厳密な総数も不要であることがある。
[00185]そのような場合、タスクT300は、複数の幾何学的構成の候補のうちのいずれが位置空間中の選択されたオブジェクトの分布と最も類似しているかを決定するように実施され得る。たとえば、基準の位置(たとえば、群衆の中の話者の位置)に対する選択されたオブジェクトの所与の(たとえば、観測される)分布に最も近い候補を決定するように、タスクT300を実施するのが望ましいことがある。
[00186]図36は、図面の右側の10個の候補の各々の中心において示される基準の位置に対する多数のオブジェクトの分布を照合するようにタスクT300が実施され得る、一例を示している。この場合、図の左側の図に示されるように、円形の位置空間が16個の領域に分割され、各領域中のオブジェクトの数が決定される。
[00187]図36の左の4つの大きな図は、この選択のために使用され得る4つの決定尺度(メトリック)のセット、すなわち、(A)内側の領域のオブジェクトの数と外側の領域のオブジェクトの数との比、(B)最も混雑している半分の中のオブジェクトの数と他の半分の中のオブジェクトの数との比(代替的には、最も混雑している半分におけるオブジェクトの数とオブジェクトの総数との比)、(C)最も混雑している4分の1におけるオブジェクトの数と反対側の4分の1におけるオブジェクトの数との比、および、(D)最も混雑している対向する4分の1におけるオブジェクトの数と他の2つの4分の1におけるオブジェクトの数との比(代替的には、最も混雑している対向する4分の1におけるオブジェクトの数とオブジェクトの総数との比)の一例を示す。
[00188]選択されたオブジェクトの数が大きいときでも、位置空間におけるオブジェクトの特定の分布に対するこれらの4つの尺度の値は、非常に低い計算的な複雑さで計算され得る。次いで、たとえば、所与の分布に対するこれらの尺度の値に従って、図36の右側にある10個の幾何学的構成の候補の中から選択するために、決定木が使用され得る。そのような場合、タスクT300は、選択された候補を特定し選択されたオブジェクトの総数を示すメタデータを生成するように実施され得る。メタデータのサイズをさらに低減するために、タスクT300は、選択されたオブジェクトの総数の近似を(たとえば、総数を指定された量子化係数で割り、その結果を最も近い整数へと丸めることによって)示すために、メタデータを生成するように実施され得る。
[00189]タスクT300はまた、図33A、図33B、図34A〜図34Cと、編成(formation)、編成データ、および編成コードブックの関連する議論とを参照して下で説明されるように、幾何学的構成の中から選択する追加の例のいずれかを実行するように実施され得る。本明細書で説明されるような方法M100の実装形態は、選択されたオブジェクトの間の特定の幾何学的構成に対する一致を示すものとしてインデクシングされるフレームが、メタデータを探索することにより検索のために容易に識別され得るようにし、それによってビデオストリーム全体を確認する必要をなくすために、(たとえば、ビデオストリームのキャプチャの間に)メタデータを提供するために使用され得る。
[00190]図20を参照すると、オブジェクトトラッキングを使用したビデオ処理を示す特定の実施形態が示される。図20に示される実施形態に関して説明されるビデオ処理技法は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
[00191]図20は、第1の時刻においてキャプチャされるようなシーンを示す、デジタル画像1700を示す。たとえば、画像1700は、モバイルデバイスの画面に表示されるべきビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1700に示されるシーンは、第1のオブジェクト1702と、第2のオブジェクト1704と、第3のオブジェクト1706と、星とを含む。示される実施形態では、第1のオブジェクト1702は第1の人物に対応してよく、第2のオブジェクト1704は木に対応してよく、第3のオブジェクト1706は第2の人物に対応してよい。別の実施形態では、第1のオブジェクト1702および第3のオブジェクト1706の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
[00192]図20はまた、モバイルデバイスの画面上の画像1700の表示1710を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示1710は、ユーザが(たとえば、タスクT200による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構1711を含み得る。たとえば、ユーザは、画面上のユーザ選択機構1711をタッチし、第1のオブジェクト1702のトラッキングを選択して可能にするために第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグすることによって、タスクT100を実行することができる。第1の焦点リング1712のそのような配置に応答して、モバイルデバイスは、トラッキングのためにフレーム1700中の第1のオブジェクト1702を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構1711をタッチし、第2のオブジェクト1704および第3のオブジェクト1706の周囲で第2の焦点リング1714および第3の焦点リング1716をドラッグして、それぞれ、第2のオブジェクト1704および第3のオブジェクト1706のトラッキングを選択して可能にすることができる。第2の焦点リング1714および第3の焦点リング1716のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト1704と第3のオブジェクト1706とを選択することができる。
[00193]図20はまた、(たとえば、第1の時刻の後の)第2の時刻にキャプチャされるようなシーンを示す、画像1720を示す。画像1720において、各オブジェクト1702〜1706の位置は、第1の時刻におけるシーンを示す画像1700中の対応する位置に対して変化している。たとえば、画像1720において、第1のオブジェクト1702および第3のオブジェクト1706が移動している。第2のオブジェクト(たとえば、木)は静止しているオブジェクトであるが、第2のオブジェクト1704は動いたように見えることがある。たとえば、モバイルデバイス(または他のキャプチャデバイス)の位置が動くことがあり、それによって、第2のオブジェクト1704が動いたという錯覚が生まれることがある。
[00194]モバイルデバイスは、選択されたオブジェクト1702〜1706の間の1つまたは複数の空間的な関係(「幾何学的配置(geometry)」とも呼ばれる)を監視することができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。特定の実施形態において、(たとえば、タスクT200によって)各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、トリガ事象があると開始し得る。非限定的な例として、各々の選択されるオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、第1のオブジェクト1702が第2のオブジェクト1704と交差すると開始し得る。他の実施形態において、各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、ユーザ入力があると開始し得る。非限定的な例として、各々の選択されるオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、オブジェクト1702〜1706の2つ以上をユーザが選択すると開始し得る。別の例として、各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、トラッキングモードを開始することをユーザが選択すると開始し得る。
[00195]図20はまた、(たとえば、表示タスクT50による)モバイルデバイスの画面上の画像1720の表示1730を示す。モバイルデバイスは、表示1730上での幾何学的配置の指示を含み得る。たとえば、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L12)は、表示1730に含まれ得る。第1の距離は、画像1720の中での第1のオブジェクト1702の位置、および画像1720中での第2のオブジェクト1704の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第1の指示を生成することができる(L12)。第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L23)も、表示1730に含まれ得る。第2の距離は、画像1720の中での第2のオブジェクト1704の位置と、画像1720の中での第3のオブジェクト1706の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1704の位置と、第3のオブジェクト1706の位置とをトラッキングして、第2の指示を生成することができる(L23)。第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L13)も、表示1730に含まれ得る。第3の距離は、フレーム1720の中での第1のオブジェクト1702の位置と、フレーム1720の中での第3のオブジェクト1706の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第3の指示を生成することができる(L13)。
[00196]モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置(たとえば、選択されたオブジェクトの幾何学的構成)をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の幾何学的構成は、各指示(L12、L23、L13)によって形成される三角形として特徴付けられ得る。各オブジェクト間の幾何学的配置の少なくとも1つのパラメータ、または、複合的な幾何学的配置の少なくとも1つのパラメータが、画像(たとえば、1つまたは複数のビデオストリームのフレーム)をクラスタ化するために使用され得る。非限定的な例として、2つの特定のオブジェクト1702〜1706の間の距離(たとえば、第1の距離、第2の距離、および/または第3の距離)に基づいて、特定の画像がクラスタ化され得る。別の非限定的な例として、複数のオブジェクト1702〜1706の重心(CM2)に基づいて、特定の画像がクラスタ化され得る。たとえば、モバイルデバイスは、各画像に対する各指示(L12、L23、L13)によって形成される三角形の重心(CM2)を決定することができる。特定の実施形態では、重心(CM2)は、計算され、インデクシングされ、画面1730に表示され得る。別の実施形態では、重心(CM2)は、計算されインデクシングされるだけであり得る。実質的に同様の重心を有するフレームは、メモリの中へと一緒にクラスタ化されインデクシングされ得る。そのようなトラッキングの間、表示の中心が上記の重心と一致するように、表示変換動作を制御するのが望ましいことがある。加えて、または代替的に、選択されたオブジェクトのすべてが表示内で可視のままであるように、カメラの光学および/またはデジタルズーム動作を制御するのが望ましいことがある。
[00197]特定の実施形態では、モバイルデバイスは、各オブジェクト1702〜1706の間の幾何学的配置および/または各フレームに対する複合的な幾何学的配置をトラッキングする(たとえば、フレームごとに幾何学的配置をトラッキングする)ことができる。他の実施形態では、モバイルデバイスは、非連続的な間隔において各オブジェクト1702〜1706の間の幾何学的配置および/または複合的な幾何学的配置をトラッキングする(たとえば、非連続的なフレームにおいて幾何学的配置をトラッキングする)ことができる。非連続的なフレームにおいて幾何学的配置をトラッキングすることは、モバイルデバイスにおいて消費される電力の量を減らし(バッテリー持続時間を延長し)、幾何学的配置情報および/またはクラスタ化情報と関連付けられる情報をインデクシングするために使用されるメモリの量を減らすことができる。
[00198]たとえば、特定の実施形態では、モバイルデバイスは、各フレームにおいて各オブジェクト1702〜1706(たとえば、3つのオブジェクト)をトラッキングすることができる。トラッキングの間、各オブジェクト1702〜1706は、オブジェクト1702〜1706の位置およびオブジェクト1702〜1706のサイズと関連付けられる少なくとも3つの値によって表され得る。たとえば、ある値はオブジェクト1702〜1706のx座標に対応してよく、ある値はオブジェクト1702〜1706のy座標に対応してよく、別の値はオブジェクト1702〜1706のサイズ(たとえば、バウンディングボックス)に対応してよい。各値は、32ビット(たとえば、4バイト)の数に対応してよい。したがって、少なくとも288ビットのデータ(3つのオブジェクト*3つの値/オブジェクト*32ビット/値)が、トラッキングの間に収集され、各フレームのためのメモリへとロギングされ得る。モバイルデバイスが毎秒30フレームをキャプチャすると仮定すると、1時間(たとえば、3600秒)フレームごとに3つのオブジェクト1702〜1706をトラッキングしてインデクシングするには、少なくとも3,888,000バイトのデータが収集され、メモリへとロギングされる。
[00199]しかしながら、非連続的なフレームにおける幾何学的配置をトラッキングすることは、メモリの要件を緩和し得る。非限定的な例として、1時間、15フレームごとの間隔で各オブジェクト1702〜1706をトラッキングしてインデクシングすることは、メモリ空間に93.33%の節約をもたらし得る。非連続的なフレームにおいて幾何学的配置をトラッキングすることは、オブジェクト1702〜1706と関連付けられる動きが比較的少量である状況において、特に有益であり得る。モバイルデバイスは、ユーザ入力(たとえば、ユーザ選好)に基づいてフレームをトラッキングしてインデクシングする頻度を決定することができ、および/または、たとえば、選択されたオブジェクトの1つまたは複数の各々の位置におけるユーザ指示および/または経時的な変化の程度に基づいて、その頻度を変化させることができる。
[00200]各オブジェクト1702〜1706はまた、画面1730上のオブジェクト1702〜1706の位置に対応する、個々の重心を有し得る。たとえば、第1のオブジェクト1702は、第1のオブジェクト1702の位置に重心(C01)を有してよく、第2のオブジェクト1704は、第2のオブジェクト1704の位置に重心(C02)を有してよく、以下同様である。各オブジェクト1702〜1706の重心はまた、モバイルデバイスがトラッキングする幾何学的パラメータであり得る。
[00201]図20はまた、(たとえば、第2の時刻の後の)第3の時刻にキャプチャされるようなシーンを示す、画像1740を示す。画像1740において、各オブジェクト1702〜1706の位置は、第2の時刻における画像1720の中で示される対応する位置に対して変化している。
[00202]図20はまた、(たとえば、表示タスクT50による)モバイルデバイスの画面上の画像1740の表示1750を示す。モバイルデバイスは、表示1750に幾何学的配置の指示を表示し得る。たとえば、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L12)は表示1750に含まれてよく、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L23)は表示1750に含まれてよく、第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L13)は表示1750に含まれてよい。加えて、モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の複合的な幾何学的配置は、各指示(L12、L23、L13)によって形成される三角形に対応し得る。
[00203]別の実施形態では、モバイルデバイスは、各オブジェクト1702〜1706の動きをトラッキングし、各オブジェクト1702〜1706の経時的な動きを表示するプロットのシーケンスを生成することができる。モバイルデバイスは、各フレームにおいて各オブジェクト1702〜1706に対するプロットを生成することができ、上で説明されたように、メモリの要件を緩和して電力の節約を改善するために、非連続的なフレームにおいて各オブジェクト1702〜1706に対するプロットを生成することができる。
[00204]表示上で現在見えていない(たとえば、現在、ビデオストリームによってキャプチャされるシーン内にない)オブジェクトに対する1つまたは複数の選択されたオブジェクトの空間的な関係をトラッキングするようにデバイスを構成すること(たとえば、タスクT200を実施すること)も可能である。たとえば、現在画面上にない固定された(基準の)オブジェクトに対する移動するオブジェクトの空間的な関係がトラッキングされ得る。特定の例では、デバイスは、選択された選手がゴールまたはバスケットから20フィート以内にいるとき、および/または、ゴール/バスケットに向かって動いているときには、ゴール/バスケットが現在画面上にないとしても、常に指し示すように構成され得る。そのような場合、デバイスは、現在表示されているシーンよりも大きな地図を作成するように構成され得る。カメラの位置が(たとえば、GPSセンサのような位置センサによって示されるように)知られている場合、カメラの1つまたは複数の方向センサが、現在のビューがより大きなシーンの地図とどのように関連するかを決定するために使用され得る。そのような1つまたは複数の方向センサは、重力軸(たとえば、デバイスおよび地球の中心を通る軸)に対するカメラの方向を示すための、1つまたは複数の慣性センサ(たとえば、ジャイロスコープおよび/または加速度計)、および/または1つまたは複数の磁場センサ(たとえば、磁力計)を含み得る。加えて、または代替的に、スポーツのフィールドまたはコート上の印のような、または舞台のシーンの固定物のような、固定された基準のオブジェクトである可視の地物が、基準として使用され得る。基準のオブジェクトの外観は、そのオブジェクトが見られる角度が変化するにつれて変化し得るが、そのようなマッピングは、動いているカメラに対しても行われ得る。
[00205]図20に示される実施形態は、モバイルデバイスが、図21に関して下で説明されるように、画像1700、1720、1740の中のオブジェクト1702〜1706の幾何学的配置をトラッキングし、実質的に同様の幾何学的配置を有するフレームを検索のためにクラスタ化することを可能にし得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、図20に関して説明される技法を実行することができる。
[00206]本明細書で説明されるようなメタデータを生成するための使用法および適用例は、スポーツイベント(たとえば、サッカー、バスケットボール、フットボール、ホッケー)、社会的なイベント(たとえば、結婚式、パーティ、ダンス)、演芸(たとえば、演劇、学芸会、コンサート、デュエット)、およびセキュリティまたは調査のための監視のいずれかを含み得る。モバイルデバイスはまた、頭部に装着されるディスプレイであってよく、ユーザの命令を検出するために、ユーザの選択が、たとえば、ジョイスティック、ジェスチャ認識カメラシステム、またはタッチセンサおよび/もしくは方向センサ(上で説明されたような1つまたは複数の方向センサ)を装備した手袋を使用することにより実行される。ビデオストリームは、生であってよく(たとえば、デバイスによってキャプチャされ、または、Bluetooth(登録商標)のような短距離接続を介して、またはインターネットへのWi−Fi(登録商標)接続のようなネットワークを介して、別のキャプチャデバイスからストリーミングされてよく)、または(やはりそのデバイスまたは別のデバイスによって)記録されてよい。
[00207]ストリーム内での選択されたオブジェクトの間の相対的な位置および/または空間的な関係に従って、ビデオストリームのフレームを分類するのが望ましいことがある。図21を参照すると、クラスタ化に基づいてフレームを検索するために使用されるモバイルデバイスの表示1800の特定の実施形態が示されている。表示1800は、水平軸と垂直軸とを有するグラフを含み得る。水平軸は、モバイルデバイスによってキャプチャされる異なるビデオファイルに対応し得る。たとえば、代替的な実施形態では、モバイルデバイスは、第1のビデオファイルと第2のビデオファイルとをキャプチャした。垂直軸は、ビデオファイルの時間インデックスに対応し得る。
[00208]各ビデオファイルは、ビデオファイル中の選択されたオブジェクトの幾何学的配置と関連付けられる少なくとも1つのパラメータに基づく、クラスタを含み得る。たとえば、ビデオファイル中の各クラスタは、選択されたオブジェクト間で実質的に同様の幾何学的配置を有する、フレームのグループを含み得る。図21に示されるクラスタは、オブジェクト間の重心に基づき得る。しかしながら、他の実施形態では、クラスタは1つまたは複数の異なるパラメータ(たとえば、形状、距離、空間的な特性、カラースキームなど)に基づき得る。パラメータはユーザによって選択され得る。
[00209]第1のビデオの10:00前後のマークまでの、第1のビデオの初めにあるフレームは、第1のクラスタ(たとえば、クラスタ1)へとグループ化され得る。第1のクラスタは、選択されたオブジェクト間の画面1800上での重心が150前後のx座標と250前後のy座標とを有するような、フレームに対応し得る。図20の第2のフレームを参照すると、選択されたオブジェクト1702〜1706の重心(CM2)(たとえば、三角形の重心(CM2))は、画面1730上の150前後のx座標と、画面1730上の250前後のy座標とを有し得る。したがって、第2のフレーム(およびオブジェクト1702〜1706の間の実質的に同様の重心を有する他のフレーム)が、図21の第1のクラスタに配置され得る。したがって、ユーザが第1のクラスタを選択する場合、モバイルデバイスは、選択されたオブジェクト1702〜1706が図20の第2のフレームと実質的に同様の構成を有する、対応するビデオストリーム(たとえば、ビデオの部分)を表示することができる。
[00210]第1のビデオの10:00前後のマークから第1のビデオの20:00前後のマークまでのフレームは、第2のクラスタ(たとえば、クラスタ2)へとグループ化され得る。第2のクラスタは、選択されたオブジェクト間の画面1800上での重心が100前後のx座標と250前後のy座標とを有するような、フレームに対応し得る。図20の第3のフレームを参照すると、選択されたオブジェクト1702〜1706の重心(CM3)は、画面1750上の100前後のx座標と、画面1750上の250前後のy座標とを有し得る。したがって、第3のフレーム(およびオブジェクト1702〜1706の間の実質的に同様の重心を有する他のフレーム)が、図21の第2のクラスタに配置され得る。したがって、ユーザが第2のクラスタを選択する場合、モバイルデバイスは、選択されたオブジェクト1702〜1706が図21の第3のフレームと実質的に同様の構成を有する、対応するビデオストリーム(たとえば、ビデオの部分)を表示することができる。
[00211]追加のクラスタ(たとえば、第3のクラスタ)は、異なる重心(たとえば、175のx座標および325のy座標)を有するフレームに対応し得る。ユーザは、ビデオの特定の部分と関連付けられる構成(たとえば、重心)を有するクラスタを選択することによって、ビデオの特定の部分を検索する(たとえば、位置特定する)ことができる。したがって、選択されたオブジェクト1702〜1706の幾何学的パラメータ(たとえば、距離、各々のおよび/または選択されたオブジェクトの重心)に基づくクラスタへとフレームをインデクシングすることによって、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、ビデオの所望の部分を容易に位置特定することができる。クラスタへとフレームをインデクシングすることで、ユーザは、どの構成(たとえば、幾何学的配置)が最も頻繁に発生したか、最も稀に発生したかなどを、見ることが可能になり得る。そのような幾何学的パラメータのそのようなインデクシングおよび/または値は、上で説明されたようなタスクT300によって生成されるメタデータの中に含まれ得る。
[00212]図21はまた、ビデオストリームのフレームのクラスタと関連付けられる領域の表示1802を含む。たとえば、クラスタの表示1802は、図20のシーンのビデオストリームに対応し得る。表示1802は10個の領域(C1〜C10)を含む。示される実施形態では、領域(C1〜C10)は、特定のフレームにおけるオブジェクト1702〜1706の重心に基づく。他の実施形態では、領域(C1〜C10)は、他の幾何学的パラメータ(たとえば、各オブジェクト1702〜1702の重心、形状、距離、空間的特性、カラースキームなど)に基づき得る。特定の実施形態では、各領域(C1〜C10)は等しいサイズを有し得る(たとえば、各領域(C1〜C10)は「ボロノイセル(Voronoi Cell)」であり得る)。
[00213]各領域(C1〜C10)は、特定のクラスタと関連付けられる重心に対応するx座標とy座標とを含み得る。非限定的な例として、第1の領域(C1)に対応する重心は、75というx座標と580というy座標とを有し得る。加えて、第2の領域(C2)に対応する重心は、215というx座標と580というy座標とを有し得る。図20のシーンのビデオストリーム中のフレームは、オブジェクト1702〜1706の重心によってインデクシングされ得る。各フレームは、重心に基づいて領域(C1〜C10)の1つに対応するクラスタに配置され得る。たとえば、第1の領域(C1)の重心に最も近い重心を有するフレームは、対応する第1のクラスタ内に配置され得る。そのようなクラスタ化情報は、タスクT300によって生成され、(たとえば、本明細書で説明されるようなビデオストリームに同期されるメタデータストリーム中の)メタデータとして対応するフレームと関連付けられ得る。そのような場合、特定のクラスタ内にインデクシングされるフレームは、メタデータを探索することによって、検索のために容易に識別されることが可能であり、ビデオストリーム全体を確認する必要をなくす。
[00214]モバイルデバイスは、特定のクラスタをユーザが選択したことに応答して、特定の幾何学的配置(たとえば、重心)を有するビデオフレームを表示することができる。たとえば、ユーザが第1の領域(C1)を選択する(たとえば、タッチする)場合、モバイルデバイスは、オブジェクト1702〜1706の重心が第1の(C1)領域内にある、ビデオフレームのクラスタを表示することができる。特定の実施形態では、ユーザは、第1の領域(C1)において画面にタッチし、閾値を超える時間の期間(たとえば、3秒)、第1の領域(C1)をホールドすることができる。3秒間第1の領域をホールドした後、第1の領域(C1)は表示1802上で拡大され得る。たとえば、表示1802は、1804に示されるように第1の領域(C1)を示し得る。このモードでは、第1の領域1804は、特定のフレームの重心(CM1023-1026)に基づいて、特定のフレーム(たとえば、フレーム1023からフレーム1026)を示し得る。特定の実施形態では、ユーザは特定のフレーム(たとえば、フレーム1024)を選択することができ、モバイルデバイスはフレーム1024においてビデオストリームの再生を開始することができる。
[00215]図22を参照すると、オブジェクトトラッキングを使用してビデオ処理方法1900の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法1900は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
[00216]方法1900は、1902において、モバイルデバイスにおいて、シーン中の複数のオブジェクトの選択を受け取ることを含む。たとえば、図20を参照すると、ユーザは、画面1710上のユーザ選択機構1711をタッチし、第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグし、第2のオブジェクト1704の周囲で第2の焦点リング1714をドラッグし、第3のオブジェクト1706の周囲で第3の焦点リング1716をドラッグして、それぞれ、第1、第2、および第3のオブジェクト1702〜1706のトラッキングを可能にすることができる。表示されるシーン1700は、キャプチャされモバイルデバイスの画面に表示されるビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。
[00217]1904において、各オブジェクト間の幾何学的配置がトラッキングされ得る。たとえば、図20を参照すると、モバイルデバイスは、各々の選択されたオブジェクト1702〜1706間の幾何学的配置をトラッキングすることができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。
[00218]1906において、幾何学的配置の指示が画面上に表示され得る。たとえば、図20を参照すると、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L12)は、表示1730に含まれ得る。第1の距離は、画像1720の中での第1のオブジェクト1702の位置と、画像1720中での第2のオブジェクト1704の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第1の指示を生成することができる(L12)。第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L23)も、表示1730に含まれ得る。第2の距離は、画像1720の中での第2のオブジェクト1704の位置と、画像1720の中での第3のオブジェクト1706の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1704の位置と、第3のオブジェクト1706の位置とをトラッキングして、第2の指示を生成することができる(L23)。第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L13)も、表示1730に含まれ得る。第3の距離は、画像1720の中での第1のオブジェクト1702の位置と、画像1720の中での第3のオブジェクト1706の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第3の指示を生成することができる(L13)。
[00219]図22の方法1900は、モバイルデバイスが、画像1700、1720、1740の中のオブジェクト1702〜1706の幾何学的配置をトラッキングし、実質的に同様の幾何学的配置を有するフレームを検索のためにクラスタ化することを可能にし得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法1900を実行することができる。さらなる例では、方法は、1つまたは複数のオブジェクトの間の指定された空間的な関係が(たとえば、タスクT200によって)検出されるとき、たとえば、第1の選択されたオブジェクトと第2の選択されたオブジェクトとの間の距離が指定された閾値の距離よりも小さくなる(代替的には大きくなる)とき、警告条件を示すことを含み得る。
[00220]図23を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2000、2010の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法2000、2010は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
[00221]方法2000は、2002において、モバイルデバイスにおいて、シーン中の複数のオブジェクトの選択を受け取ることを含む。たとえば、図20を参照すると、ユーザは、画面1710上のユーザ選択機構1711をタッチし、第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグし、第2のオブジェクト1704の周囲で第2の焦点リング1714をドラッグし、第3のオブジェクト1706の周囲で第3の焦点リング1716をドラッグして、それぞれ、第1、第2、および第3のオブジェクト1702〜1706のトラッキングを可能にすることができる。表示されるシーン1700は、キャプチャされモバイルデバイスの画面に表示されるビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。
[00222]2004において、各オブジェクト間の幾何学的配置がトラッキングされ得る。たとえば、図20を参照すると、モバイルデバイスは、各々の選択されたオブジェクト1702〜1706間の幾何学的配置をトラッキングすることができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。加えて、モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の複合的な幾何学的配置は、3つの指示(L12、L23、L13)によって形成され得る三角形に対応し得る。
[00223]2006において、ビデオストリームのフレームは、幾何学的配置と関連付けられる少なくとも1つのパラメータに基づいてクラスタ化され得る。たとえば、図21を参照すると、ビデオファイル中の各クラスタは、選択されたオブジェクト1706〜1708間で実質的に同様の幾何学的配置を有する、フレームのグループを含み得る。図21に示されるクラスタは、オブジェクト1706〜1708の間の重心(CM2、CM3)(たとえば、三角形の重心)に基づき得る。
[00224]特定の実施形態では、方法2000は、オブジェクトが特定の幾何学的配置にあるときに、フレームを検索することを含み得る。たとえば、図21を参照すると、モバイルデバイスは、フレーム中のオブジェクト1702〜1706の重心(CM2、CM3)に基づいてフレームをインデクシングすることができる。特定の重心(たとえば、特定の幾何学的配置)を有するフレームは、特定の重心と関連付けられるクラスタを選択することによって容易に実現され得る。たとえば、モバイルデバイスは、図21の画面1800上の第1のクラスタ(たとえば、クラスタ1)を選択することによって、オブジェクト1702〜1706が図20の第2のフレーム中のオブジェクト1702〜1706と実質的に同様の幾何学的配置を有するフレームを検索することができる。たとえば、第1のクラスタをユーザが選択したことに応答して、モバイルデバイスは、オブジェクト1702〜1706の重心が150前後のx座標と250前後のy座標とを有するフレームを検索することができる。
[00225]方法2010は、2012において、モバイルデバイスにおいて、ビデオストリーム中の選択されたオブジェクトの特定の幾何学的配置の指示を受信することを含み得る。非限定的な例として、図21を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)の重心に最も近いビデオストリームを表示するために、指示(たとえば、表示1802に示される第1の領域(C1)においてユーザが画面をタッチすること)を受け取り得る。
[00226]2014において、ビデオストリームのフレームは、特定の幾何学的配置に基づいて検索され得る。たとえば、図21を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)に対応するエリアの中にある、図20のシーン中のビデオストリームのフレームを検索することができる。
[00227]2016において、検索されたフレームはモバイルデバイスの画面上に表示され得る。たとえば、図21を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)に対応するエリアの中にある、ビデオストリームのフレームを表示する(たとえば、再生する)ことができる。特定の実施形態では、モバイルデバイスは、順次的な順序でビデオストリームを再生することができる。
[00228]図23の方法2000、2010は、ユーザが、ビデオの特定の部分と関連付けられる構成(たとえば、重心)を有するクラスタを選択することによって、ビデオの特定の部分を検索する(たとえば、位置特定する)ことを可能にし得る。したがって、選択されたオブジェクト1702〜1706の幾何学的パラメータに基づくクラスタへとフレームをインデクシングする(たとえば、本明細書で説明されるようなタスクT300によってメタデータを生成する)ことによって、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、ビデオの所望の部分を容易に位置特定することができる。
[00229]タスクT300は、決定された基準の位置に基づいて、位置空間を分割する複数の別々の領域のうちの1つを識別するメタデータを生成するように実施されてよく、複数の別々の領域は等しくないサイズの領域を含む。上で説明されたように、位置空間は、2次元または3次元における、少なくとも1つのデジタル画像(たとえば、ビデオストリームの少なくとも1つのフレームのピクセル座標空間)または物理空間(たとえば、シーン空間の地面)のピクセル座標空間であってよく、個々のフレームにおいて表される空間を超えて延び得る。そのようなメタデータは、たとえば、基準の位置を含む位置空間の領域を示す(たとえば、1つまたは複数の量子化コードブックへの)1つまたは複数のインデックスとして実装され得る。
[00230]分割方式は、位置空間を不均一に分割する(たとえば、不均一なサイズおよび/または形状の領域を含む)ように構成され得る。たとえば、各々の別々の領域がm個の観測されたデータ点を含むように(たとえば、発生の頻度に従った分割)、位置空間を分割する分割方式を生成するために、観測されたデータ点(たとえば、オブジェクトの位置)のセットが使用され得る。代替的に、または加えて、分割方式は、関心の高い空間のエリアが関心の低いエリアよりも多数の別々の領域へと分割されるように、位置空間を分割するように構成され得る。
[00231]分割方式によって示される様々な領域は、位置空間のそれぞれのエリアと関連付けられる異なる度合いの関心に従って集中し得る。図19B〜図19Dは、バスケットボールコート(たとえば、図19Aに示されるような)に適用されるような位置空間の不均一な分割のいくつかの例を示す。そのような分割方式は、(たとえば、図19Bおよび図19Dのような)特定のバスケットに近いより小さな領域への、または、(たとえば、図19Cのような)いずれかのバスケットに近いより小さな領域への、コート空間の分割を符号化することができる。事前の(たとえば、ストリームがキャプチャされる前の)位置空間の関心に基づく不均一な分割を示すことが可能であり得るので、方法M100はデジタル画像またはビデオストリームのキャプチャの間に実行され得る。
[00232]同様の方式で、分割方式によって示される様々な領域は、位置空間のそれぞれのエリア内のマッピングされたデータ点(たとえば、オブジェクトの位置または複数のオブジェクトの重心)の発生の頻度の差に従って集中し得る。そのような場合、位置空間の不均一な分割は事後に(たとえば、キャプチャされたストリームへの訓練の結果として)取得され得る。等しい数の観測結果が各々の別々の領域において見出されるように、分割が実施され得る。
[00233]一例では、分割方式は、位置空間におけるオブジェクトの位置(たとえば、観測されるオブジェクトの位置)の、k個のクラスタへのk平均クラスタ化を実行することによって得られる。たとえば、分割方式は、ビデオストリームの複数のフレームにおいて観測されるようなオブジェクトの位置(たとえば、選択されたオブジェクトの1つまたは複数の位置)の、k個のクラスタへのk平均クラスタ化を実行することによって得られ得る。そのようなクラスタ化は、位置空間をボロノイセルへと区分し、ここで、得られるk平均はセルの生成要素(たとえば、セントロイド)であり、そのような方式で(たとえば、クラスタ化を使用して)得られる分割方式は量子化コードブックとも呼ばれ得る。クラスタは、別のクラスタとは異なる数の観測されたオブジェクトの位置を有し得る。初期条件(すなわち、初期のk平均)を得るために、そのような分割方式生成タスクが、観測された位置に対する階層的なクラスタ化方法(たとえば、分岐型クラスタリングまたは凝集型クラスタリング)を実行するように実施され得る。不均一な分割を得るために使用され得る類似性の尺度の一例は、位置空間における観測されたオブジェクトの位置の間のユークリッド距離である。
[00234](たとえば、異常値の存在下での)分割方式生成タスクによって使用され得るk平均クラスタ化に対する1つの代替形態は、k−medoidクラスタ化である。別の代替形態は平均シフトクラスタ化であり、これは、分布のモードを異なる領域へと分離するために使用され得る。タスクT300は、複数の分割方式(たとえば、複数のコードブック)の中から選択することを含んでよく、これは、異なる長さであってよく、および/または異なるサイズの領域に対応してよい。たとえば、タスクT300は、第1のレベルの分割方式が複数の別の領域の1つを示し、また、複数の第2のレベルの分割方式のうちの示される領域に対応する第2のレベルの分割方式を示すように、分割方式の階層を使用することができる。そのような階層は、複数の別の領域の1つを互いに異なるように再分割するために使用され得る。1つのそのような例では、第1のコードブックは、観測された位置の分布の異なるモードに対応する異なる量子化領域をインデクシングし、第2のコードブックは、これらのモード領域の1つまたは複数の各々を副領域へと分割するために使用されるので、タスクT300は、決定された位置に対する2つ以上のコードワードを含むメタデータを生成することができる。
[00235]タスクT300は、たとえば、そのセントロイドが決定された基準の位置に最も近い領域を選択することによって、位置空間の対応する領域に、決定された基準の位置をマッピングするように実施され得る。インデックス選択のために使用される類似性の尺度(たとえば、位置空間におけるユークリッド距離)は、区分のために使用される類似性の尺度と同じであってよく、または異なっていてよい。分割方式が量子化コードブックによって表される場合、そのようなマッピングは、コードブック(たとえば、選択された領域を示すコードワード)へのインデックスを選択することを含み得る。
[00236]図24を参照すると、矩形座標を使用してオブジェクトの位置に対するメタデータを生成するための方法M100の特定の適用形態が示されている。図24の実施形態は、フレームごとに複数のオブジェクトの決定された位置を符号化するために使用され得るコードブック2102を示す。決定された位置は、位置空間2106の中の各オブジェクトの位置を示し得る。コードブック2102は、位置空間2106の中の位置(たとえば、2132、2134、2136)を、等しくないサイズの領域を含む別々の領域への位置空間の分割2108の中の対応する領域(たとえば、2142、2144、2146)にマッピングする。
[00237]コードブック2102は、複数のフレームまたは他の画像2104に対するメタデータを生成するために使用され得る。そのようなメタデータは、ビデオストリームに組み込まれてよく、および/または別々にストリーミングされてよく、および/または別のファイルに記憶されてよい。決定された位置は、フレーム中のオブジェクトのための矩形座標データ(たとえば、x座標およびy座標)を含み得る。特定の実施形態では、決定された位置はまた、フレーム中のオブジェクトに対する3次元座標データ(たとえば、3次元直交座標系のz座標)を含み得る。示される実施形態では、コードブック2102は、10000個のフレーム(または他の画像)にわたって3つのオブジェクトに対する決定された位置をクラスタ化することによって生成され得る。これらの決定された位置はまた、メタデータとして対応するフレームと関連付けられていることがある。特定の実施形態では、第1のフレームは、図20の第1の画像(たとえば、表示1710)に対応してよく、第2のフレームは、図20の第2の画像(たとえば、表示1730)に対応してよく、第3のフレームは、図20の第3の画像(たとえば、表示1750)に対応してよい。この例では、10000個のフレームに対する決定された位置はコードブック2102を得るために使用されるが、他の実施形態では、コードブック2102は、より少数の(または追加の)フレームに対する決定された位置に基づき得る。代替的に、または加えて、コードブックは、上で説明されたような(たとえば、図19B〜図19Dに示されるように)関心に基づく分割方式、または、観測される決定された位置のセットをクラスタ化することによって得られない別の分割方式に基づき得る。加えて、決定された位置は、より少数の(または追加の)オブジェクトに対する位置の情報を含み得る。図24の以下の説明は、第3の画像に対応する決定された位置に基づく。しかしながら、同様の技法が他の決定された位置に適用可能であり得る。
[00238]第3の画像における決定された位置は、第1の矩形座標データ2132と、第2の矩形座標データ2134と、第3の矩形座標データ2136とを含み得る。第1の矩形座標データ2132は、図20の第3の画像における第1のオブジェクト1702のx座標の位置と、第3の画像における第1のオブジェクト1702のy座標の位置とを含み得る。第2の矩形座標データ2134は、第3の画像における第2のオブジェクト1704のx座標の位置と、第3の画像における第2のオブジェクト1704のy座標の位置とを含み得る。第3の矩形座標データ2136は、第3の画像における第3のオブジェクト1706のx座標の位置と、第3の画像における第3のオブジェクト1706のy座標の位置とを含み得る。
[00239]別の特定の実施形態では、矩形座標データ2132〜2136における各オブジェクト1702〜1706のx座標およびy座標は、第3の画像におけるオブジェクト1702〜1706の重心(CM3)に対するものであり得る。たとえば、重心(CM3)は原点として指定されてよく、各オブジェクト1702〜1706の位置(たとえば、x座標およびy座標)は原点に対するものであってよい。そのような場合、図19Aに示されるようなバスケットボールコートまたは他の競技場の例のように、図19B〜図19Dに示されるような不均一な分割方式に従って、選択されたオブジェクト(たとえば、選手)のそのような重心の位置を量子化するのが望ましいことがある。
[00240]別の特定の実施形態では、特定のオブジェクトは原点として指定されてよく、他のオブジェクトの位置(たとえば、x座標およびy座標)は原点に対するものであってよい。特定のオブジェクト(「主要対象のオブジェクト」と呼ばれる)は、次の例、すなわち、ボール(たとえば、スポーツイベントのビデオにおける)、選択された相手(たとえば、スポーツイベントにおける)、犯罪被害者(たとえば、監視ビデオにおける)、花嫁(たとえば、結婚式のビデオにおける)のいずれをも含み得る。主要対象のオブジェクトは、時間とともに移動することがあり(たとえば、人)、または、空間中の固定された位置を有する物体であることがある(たとえば、スポーツのビデオにおけるネット、バスケット、または他のゴール)。非限定的な例として、第1のオブジェクト1702は原点として指定されてよく、第2のオブジェクト1704および第3のオブジェクト1706の位置は原点に対するものであってよい。
[00241]プロセッサは、等しくないサイズの領域を含む別々の領域への位置空間の分割2108に従ってメタデータを生成するために、コードブック2102を使用して矩形座標データ2132〜2136を符号化することができる。例示すると、プロセッサは、第1の符号化された位置データ2142へと第1の矩形座標データ2132を符号化する(たとえば、量子化する)ことができる。たとえば、プロセッサは、第1の矩形座標データ2132を対応する値(たとえば、コードブック2102のコードワード)にマッピングして、第1の矩形座標データ2132を値(たとえば、第1の符号化された位置データ2142)として符号化することができる。加えて、プロセッサは、第2の符号化された位置データ2144へと第2の矩形座標データ2134を符号化することができる。たとえば、プロセッサは、コードブック2102を使用して第2の矩形座標データ2134を対応する値にマッピングして、第2の矩形座標データ2134を値(たとえば、第2の符号化された位置データ2144)として符号化することができる。同様の方式で、プロセッサは、第3の符号化された位置データ2146へと第3の矩形座標データ2136を符号化することができる。たとえば、プロセッサは、コードブック2102を使用して第3の矩形座標データ2136を対応する値にマッピングして、第3の矩形座標データ2136を値(たとえば、第3の符号化された位置データ2146)として符号化することができる。
[00242]第1の符号化された位置データ2142に基づいて、図20の第3の画像における第1のオブジェクト1702(たとえば、オブジェクト1)の位置は、格子2108における対応する位置(たとえば、示される領域のセントロイド)として、生成されたメタデータにおいて表され得る。第2の符号化された位置データ2144に基づいて、第3の画像における第2のオブジェクト1704(たとえば、オブジェクト2)の位置は、格子2108における対応する位置として、生成されたメタデータにおいて表され得る。第3の符号化された位置データ2146に基づいて、第3の画像における第3のオブジェクト1706(たとえば、オブジェクト3)の位置は、格子2108における対応する位置として、生成されたメタデータにおいて表され得る。
[00243]上で述べられたように、決定された位置は、複数の選択されたオブジェクトの幾何学的構成または「編成」の基準の位置であり得る。1つまたは複数の位置(または「基準」)コードブックを使用することに加えて、またはその代わりに、タスクT300は、1つまたは複数の編成(または「相対的」)コードブックを使用するように実施されてよく、この編成コードブックは、基準の位置(たとえば、オブジェクトの重心の位置)に対する空間中の選択されたオブジェクトの編成(たとえば、幾何学的構成、またはこの構成を表す形状)を符号化する。3つの選択されたオブジェクトの非限定的な例では、基準の位置として、2D空間における選択されたオブジェクトの重心の位置を記憶し、2D空間における各々の選択されたオブジェクトの、基準の位置に対する位置を、全体で8の自由度で示すメタデータを生成するのが望ましいことがある。これらの値は、(たとえば、8D空間における)単一のコードワードとして量子化され得る。代替的に、これらの値は、上で説明されたような1つまたは複数の位置コードブックを使用して(たとえば、2D空間における)基準の位置として、および1つまたは複数の編成コードブック(すなわち、幾何学的構成の候補のインデクシングされたセット)を使用して(たとえば、6D空間における)オブジェクト編成として、別々に量子化され得る。
[00244]代替的に、編成コードブックまたは相対的コードブックへのインデックスは、テンプレートのセット(すなわち、幾何学的構成の候補)の1つを特定することができる。そのような場合、示されたテンプレートへの修正(たとえば、スケーリング、回転または他の方向付け、アスペクト比など)は別々に量子化され得る。図33Aは3つのテンプレートの例を示し、図33Bは図33Aの一番左のテンプレートへの修正の3つの例を示す。
[00245]編成コードブックは、たとえば、複数のあり得る編成の間の発生の頻度の差、複数のあり得る編成の間の関心のレベル(たとえば、所定の編成に対する類似性)の差、特定の所定の事象(たとえば、得点事象)またはパターン(たとえば、フットボールチームの特定のスターティングフォーメーション)に対するあり得る編成の異なる関連度、空間的な基準から最も遠い選択されたオブジェクトの距離、選択されたオブジェクトの選択されたサブセットの互いからの距離、および/または、選択されたオブジェクトの任意の2つの間の最大の距離に従って、不均一に編成空間(すなわち、すべてのあり得る編成の空間のある部分)を分割するように構成され得る。
[00246]コードワード(たとえば、符号化された位置データ2142〜2146)は、固定幅コードワードまたは可変幅コードワードであり得る。特定の実施形態では、プロセッサは、オブジェクトの位置に基づいて(たとえば、オブジェクトが「高密度エリア」にあるかまたは「低密度エリア」にあるかに基づいて)、可変幅コードワードを使用することができる。高密度エリアは、オブジェクト1702〜1706の少なくとも1つによって頻繁に専有される図20中の画像のエリアに対応し得る。メタデータ中のビットの数を減らすために、位置空間2106の中の高密度エリアに対応するコードワードは、低密度エリアに対応するコードワードよりも少数のビット(すなわち、より短いコードワード)を有し得る(すなわち、占有される頻度の低い格子位置がより長いコードワードを有する)。代替的に、または加えて、不均一な分割方式2108は、高密度領域においてより多くの副領域(すなわち、高解像度をもたらすためのより多数の別個のコードワード)と、低密度領域においてより少数の副領域(すなわち、低解像度をもたらすためのより少数の別個のコードワード)とを有する、階層的な方式であり得る。
[00247]オブジェクトが高密度エリアにある場合、オブジェクトに対するコードワードは、オブジェクトのより「正確な」位置を生成するための相対的に小さな領域を表し得る。たとえば、高密度エリアのオブジェクト1702〜1706の位置をトラッキングして、フレームごとにより正確なトラッキングを得るために、より多くの数のコードワードが使用され得る。オブジェクトが低密度エリアにある場合、オブジェクトに対するコードワードは、比較的大きな領域を表し得る。特定の実施形態では、高密度エリアおよび低密度エリアは、履歴データの分析に基づいて(たとえば、画面のどのエリアがオブジェクトにより頻繁に占有された履歴を有するかを分析して)決定され得る。別の特定の実施形態では、高密度エリアおよび低密度エリアは事前に決定されていてよい。
[00248]編成コードブックへのコードワードは、n個の選択されたオブジェクトのn個の位置への一意なマッピングを区別することができる(たとえば、各々のそのようなマッピングに対する一意なコードワードを含み得る)。たとえば、図34Aは、一意なコードワードとして各々符号化され得る(すなわち、異なるそれぞれの幾何学的構成の候補によって表され得る)3つの選択されたオブジェクトの4つの異なる編成の例を示す。これらの例では、選択されたオブジェクトの各位置は、そのオブジェクトを一意に識別するアイコン(たとえば、円、四角形、または三角形)によって示される。代替的に、編成コードブックへのコードワードは、いくつかの異なる一意なマッピングを符号化することができる。たとえば、図34Bは、図34Aの編成に対応する一意ではないマッピングの例を示し、ここで任意の選択されたオブジェクトの位置がxによって示される。この場合、図34Cは、図34Bの一番左に示される単一の一意ではないマッピング(すなわち、幾何学的構成の候補)によって示され得る、選択されたオブジェクトの6個の一意な編成を示す。
[00249]コードブック2102は、固定されたコードブックまたは適応的なコードブックであり得る。適応的なコードブックは、オブジェクトの位置を表す履歴データに基づいてコードワードの長さを調整することができる(たとえば、可変幅のコードワードを生成することができる)。たとえば、適応コードブックは、画面の頻繁に占有されるエリアの中のオブジェクトに対してより短いコードワードを生成することができ、履歴データに基づいて画面のより稀に占有されるエリアの中のオブジェクトに対してより長いコードワードを生成することができる。対照的に、固定されたコードブックは、履歴データに基づいて変化しなくてよく、固定幅コードワードまたは可変幅コードワードを使用することができる。
[00250]それぞれの基準の位置に対する複数のあり得る編成の間の発生の頻度または関心のレベルの差を利用する複数の編成コードブックを使用して、編成データを符号化するのが望ましいことがある。たとえば、可変サイズの編成コードブックのセットの中の1つが、基準の位置のコードワードに応じて選択され得る(たとえば、基準の位置がコートの中心にあるときにはより小さいコードブックvs基準の位置がゴールの近くであるときはより大きいコードブック)。
[00251]図24の実施形態は、コードブック2102を使用してタスクT300によって生成されるメタデータに基づいて、ビデオの特定の部分のような、特定の画像をユーザが検索する(たとえば、位置特定する)ことを可能にし得る。たとえば、位置空間2106は、ユーザが異なるオブジェクトに対する異なる位置(たとえば、パラメータ)を選択することを可能にする、ユーザ対話型の格子として画面に表示され得る。この選択に基づいて、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、同様のオブジェクトの位置構成を有するビデオの所望の部分(たとえば、フレーム)を容易に位置特定することができる。たとえば、方法M100は、生成されたメタデータを、分割方式において領域の1つを指定する探索要求と比較した結果に基づいて、1つまたは複数の画像を(たとえば、記憶装置から)検索するタスクを含むように実施され得る。特定の実施形態では、位置空間2106のそのような表示は、図21中のクラスタの画面1802と実質的に同様の方式で使用され得る。加えて、生成されたメタデータ2142〜2146は、圧縮されてエンコーダからデコーダに送信され得る。メタデータ2142〜2146を圧縮してデコーダに送信することで、デコーダは、比較的少量のデータ(たとえば、量子化された値)を使用して、トラッキングされたオブジェクトの位置を決定することが可能になり得る。たとえば、デコーダは、コードブック2102の中の量子化された値に基づいて、オブジェクト1702〜1706と関連付けられるビデオを復号するように、レンダリング動作を実行することができる。
[00252]一例では、検索されるフレームは、フットボールゲームまたは他のスポーツイベントにおいて、特定のプレーもしくはプレーのセット、または特定のスターティングフォーメーションの間にだけ発生する、選択されたプレーヤーの間の選択された編成を含む。別の例では、検索されるフレームは、ラップトラック上の近接している特定のレーシングカーの間の選択された編成を含む。そのような選択的な検索によって促されるビデオ分析はまた、特定の編成の発生とのある事象(事前に特定されていないことがある)の相関を検出するために使用され得る。たとえば、潜在的な適用例は、集会(たとえば、立法会議、街頭デモ、社会的な集まり)の中の人々をトラッキングし、(たとえば、意思決定者、トラブルメーカー、触媒の働きをする人物を識別するために)選択された人々の周囲を指定されたイベントと相関付けることを含む。本明細書で説明されるような方法M100の実装形態はまた、(たとえば、研究所または動物園の)捕獲されている動物または野生の動物の間の社会的な交流の分析に適用され得る。
[00253]図25を参照すると、極座標を使用してオブジェクトの位置に対するメタデータを生成するための方法M100の別の特定の適用形態が示されている。図25の実施形態は、フレームごとに複数のオブジェクトの決定された位置を符号化するために使用され得るコードブック2202を示す。決定された位置は、極位置空間2206の中の各オブジェクトの位置を示し得る。コードブック2202は、位置空間2206の中の位置(たとえば、2232、2234、2236)を、等しくないサイズの領域を含む別々の領域への位置空間2206の分割2208の中の対応する領域(たとえば、2242、2244、2246)にマッピングすることができる。
[00254]コードブック2202は、複数のフレームまたは他の画像2204に対するメタデータを生成するために使用され得る。そのようなメタデータは、ビデオストリームに組み込まれてよく、および/または別々にストリーミングされてよく、および/または別のファイルに記憶されてよい。決定された位置は、フレーム中のオブジェクトのための極座標データを含み得る。特定の実施形態では、決定された位置はまた、フレーム中のオブジェクトに対する球面または円柱座標データ(たとえば、3D座標データ)を含み得る。示される実施形態では、コードブック2102は、10000個のフレーム(または他の画像)にわたって3つのオブジェクトに対する決定された位置をクラスタ化することによって生成され得る。これらの決定された位置はまた、メタデータとして対応するフレームと関連付けられていることがある。特定の実施形態では、第1のフレームは、図20の第1の画像(たとえば、表示1710)に対応してよく、第2のフレームは、図20の第2の画像(たとえば、表示1730)に対応してよく、第3のフレームは、図20の第3の画像(たとえば、表示1750)に対応してよい。この例では、10000個のフレームに対する決定された位置はコードブック2202を得るために使用されるが、他の実施形態では、コードブック2202は、より少数の(または追加の)フレームに対する決定された位置に基づき得る。代替的に、または加えて、コードブックは、上で説明されたような(たとえば、図19B〜図19Dに示されるように)関心に基づく分割方式、または、観測される決定された位置のセットをクラスタ化することによって得られない別の分割方式に基づき得る。加えて、決定された位置は、より少数の(または追加の)オブジェクトに対する位置の情報を含み得る。図25の以下の説明は、第3の画像に対応する決定された位置に基づく。しかしながら、同様の技法が他の決定された位置に適用可能であり得る。
[00255]第3の画像における決定された位置は、極方向データ2230と、第1の極座標データ2232と、第2の極座標データ2234と、第3の極座標データ2236とを含み得る。極方向データ2230は、重心(CM3)(たとえば、図20の第3の画像の重心(CM3)のx座標(Cx)、および第3の画像の重心(CM3)のy座標(Cy))の位置を示し得る。極方向データ2230はまた、中心として重心(CM3)を有する円の半径(R)を示し得る。スケール係数として実装され得る半径(R)は、各々のトラッキングされたオブジェクトを包含するのに十分大きいことがある。説明のための例が、極位置空間2206に関して図示されている。一例では、タスクT300は、等しくないサイズの領域を含む複数の領域の1つを示すメタデータとして方向の位置(たとえば、重心の位置)を符号化するように実施されてよく、それらの領域は、位置空間2206(たとえば、図24に示されるような矩形座標空間)とは異なり得る、その中で方向の位置が示される対応する位置空間を分割する。
[00256]第1の極座標データ2232は、第1のオブジェクト1702(オブジェクト1)の第1の極座標を示し得る。第1の極座標は、重心(CM3)からの第1のオブジェクト1702の第1の距離(a)と、0度の基準から測定される第1のオブジェクト1702の第1の角度(θa)(たとえば、水平線からの角度方向の変位)とを含み得る。第2の極座標データ2234は、第2のオブジェクト1704(オブジェクト2)の第2の極座標を示し得る。第2の極座標は、重心(CM3)からの第2のオブジェクト1704の第2の距離(b)と、水平線から測定される第2のオブジェクト1704の第2の角度(θb)とを含み得る。第3の極座標データ2236は、第3のオブジェクト1706(オブジェクト3)の第3の極座標を示し得る。第3の極座標は、重心(CM3)からの第3のオブジェクト1706の第3の距離(c)と、水平線から測定される第1のオブジェクト1702の第3の角度(θc)とを含み得る。
[00257]特定の実施形態では、極方向データ2230の半径(R)は、重心(CM3)から最も離れているオブジェクトの距離に基づいて正規化され得る。たとえば、半径(R)は、第1の距離(a)が第2の距離(b)および第3の距離(c)より大きい場合、第1の距離(a)に等しくてよい。
[00258]プロセッサは、等しくないサイズの領域を含む領域への位置空間の分割2108に従ってメタデータを生成するために、コードブック2202を使用して極座標データ2232〜2236を符号化することができる。例示すると、プロセッサは、第1の符号化された位置データ2242へと第1の極座標データ2232を符号化する(たとえば、量子化する)ことができる。たとえば、プロセッサは、第1の極座標データ2232(極方向データ2230に基づく)を対応する値(たとえば、コードブック2202のコードワード)にマッピングして、第1の極座標データ2232を値(たとえば、第1の符号化された位置データ2242)として符号化することができる。加えて、プロセッサは、第2の符号化された位置データ2244へと第2の極座標データ2234を符号化することができる。たとえば、プロセッサは、コードブック2202を使用して第2の極座標データ2234(極方向データ2230に基づく)を対応する値にマッピングして、第2の極座標データ2234を値(たとえば、第2の符号化された位置データ2244)として符号化することができる。同様の方式で、プロセッサは、第3の符号化された位置データ2246へと第3の極座標データ2236を符号化することができる。たとえば、プロセッサは、コードブック2202を使用して第3の極座標データ2236を対応する値にマッピングして、第3の極座標データ2236を値(たとえば、第3の符号化された位置データ2246)として符号化することができる。
[00259]第1の符号化された位置データ2242に基づいて、図20の第3の画像における第1のオブジェクト1702(たとえば、オブジェクト1)の位置は、極格子2208における対応する位置(たとえば、示される領域のセントロイド)として、生成されたメタデータにおいて表され得る。第2の符号化された位置データ2244に基づいて、第3の画像における第2のオブジェクト1704(たとえば、オブジェクト2)の位置は、極格子2208における対応する位置として、生成されたメタデータにおいて表され得る。第3の符号化された位置データ2246に基づいて、第3の画像における第3のオブジェクト1706(たとえば、オブジェクト3)の位置は、極格子2208における対応する位置として、生成されたメタデータにおいて表され得る。たとえば、極格子2208は、格子の原点からの半径方向の距離の範囲に基づいて(たとえば、重心(CM3)からの半径方向の距離の範囲に基づいて)、および0度の基準からの角度方向の変位の範囲に基づいて、等しくないサイズの領域を含む複数の領域へと分割され得る。
[00260]図25の実施形態は、コードブック2202を使用してタスクT300によって生成されるメタデータに基づいて、特定の画像(たとえば、ビデオのフレーム)をユーザが検索する(たとえば、位置特定する)ことを可能にし得る。たとえば、極位置空間2206は、ユーザが異なるオブジェクトに対する異なる位置(たとえば、パラメータ)を選択することを可能にする、ユーザ対話型の格子として画面に表示され得る。この選択に基づいて、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生数る、早送りする、巻き戻すなど)必要なく、同様の異議の位置構成を有するビデオの所望の部分(たとえば、フレーム)を容易に位置特定することができる。たとえば、方法M100は、生成されたメタデータを、分割方式において領域の1つを指定する探索要求と比較した結果に基づいて、1つまたは複数の画像を(たとえば、記憶装置から)検索するタスクを含むように実施され得る。特定の実施形態では、極位置空間2206のそのような表示は、図21中のクラスタの画面1802と実質的に同様の方式で使用され得る。加えて、生成されたメタデータ2242〜2246は、圧縮されてエンコーダからデコーダに送信され得る。生成されたメタデータ2242〜2246を圧縮してデコーダに送信することで、デコーダは、比較的少量のデータ(たとえば、量子化された値)を使用して、トラッキングされたオブジェクトの位置を決定することが可能になり得る。たとえば、デコーダは、コードブック2202の中の量子化された値に基づいて、オブジェクト1702〜1706と関連付けられるビデオを復号するように、レンダリング動作を実行することができる。
[00261]コードワード(たとえば、符号化された位置データ2242〜2246)は、固定幅コードワードまたは可変幅コードワードであり得る。特定の実施形態では、プロセッサは、オブジェクトの位置に基づいて(たとえば、オブジェクトが「高密度エリア」にあるかまたは「低密度エリア」にあるかに基づいて)、可変幅コードワードを使用することができる。高密度エリアは、オブジェクト1702〜1706の少なくとも1つによって頻繁に専有される図20中の画像のエリアに対応し得る。メタデータ中のビットの数を減らすために、極位置空間2206の中の高密度エリアに対応するコードワードは、低密度エリアに対応するコードワードよりも少数のビット(すなわち、より短いコードワード)を有し得る(すなわち、占有される頻度の低い格子位置がより長いコードワードを有する)。代替的に、または加えて、不均一な分割方式2208は、高密度領域においてより多くの副領域(すなわち、高解像度をもたらすためのより多数の別個のコードワード)と、低密度領域においてより少数の副領域(すなわち、低解像度をもたらすためのより少数の別個のコードワード)とを有する、階層的な方式であり得る。
[00262]オブジェクトが高密度エリアにある場合、オブジェクトに対するコードワードは、オブジェクトのより「正確な」位置を生成するための相対的に小さな領域を表し得る。たとえば、高密度エリアのオブジェクト1702〜1706の位置をトラッキングして、フレームごとにより正確なトラッキングを得るために、より多くの数のコードワードが使用され得る。オブジェクトが低密度エリアにある場合、オブジェクトに対するコードワードは、比較的大きな領域を表し得る。特定の実施形態では、高密度エリアおよび低密度エリアは、履歴データの分析に基づいて(たとえば、画面のどのエリアがオブジェクトにより頻繁に占有された履歴を有するかを分析して)決定され得る。別の特定の実施形態では、高密度エリアおよび低密度エリアは事前に決定されていてよい。
[00263]コードブック2202は、固定されたコードブックまたは適応的なコードブックであり得る。適応的なコードブックは、オブジェクトの位置を表す履歴データに基づいてコードワードの長さを調整することができる(たとえば、可変幅のコードワードを生成することができる)。たとえば、適応コードブックは、画面の頻繁に占有されるエリアの中のオブジェクトに対してより短いコードワードを生成することができ、履歴データに基づいて画面のより稀に占有されるエリアの中のオブジェクトに対してより長いコードワードを生成することができる。対照的に、固定されたコードブックは、履歴データに基づいて変化しなくてよく、固定幅コードワードまたは可変幅コードワードを使用することができる。
[00264]図26を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2300の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法2300は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
[00265]方法2300は、2302において、モバイルデバイスにおいて、特定のフレームにおける第1のオブジェクトの第1の位置と、特定のフレームにおける第2のオブジェクトの第2の位置とをトラッキングすることを含み得る。たとえば、図20を参照すると、第1のオブジェクト1702の第1の位置は第3のフレームにおいてトラッキングされてよく、第2のオブジェクト1704の第2の位置は第3のフレームにおいてトラッキングされてよい。加えて、第3のオブジェクト1706の第3の位置は第3のフレームにおいてトラッキングされ得る。
[00266]2304において、第1の位置と関連付けられる第1の座標データが生成されてよく、第2の位置と関連付けられる座標データが生成されてよい。たとえば、図24を参照すると、プロセッサは、第3のフレーム中の第1のオブジェクト1702の位置と関連付けられる第1の矩形座標データ2132と、第3のフレーム中の第2のオブジェクト1704の位置と関連付けられる第2の矩形座標データ2134とを生成することができる。加えて、プロセッサは、第3のフレーム中の第3のオブジェクト1706の位置と関連付けられる第3の矩形座標データ2136を生成することができる。
[00267]別の例として、図25を参照すると、プロセッサは、第3のフレーム中の第1のオブジェクト1702の位置と関連付けられる第1の極座標データ2232と、第3のフレーム中の第2のオブジェクト1704の位置と関連付けられる第2の極座標データ2234とを生成することができる。加えて、プロセッサは、第3のフレーム中の第3のオブジェクト1706の位置と関連付けられる第3の極座標データ2236を生成することができる。
[00268]2306において、第1の座標データおよび第2の座標データは、第1の符号化された位置データおよび第2の符号化された位置データとしてメタデータを生成するために、コードブックを使用して符号化され得る。たとえば、図24を参照すると、プロセッサは、第1の符号化された位置データ2142(たとえば、コードブック2102のコードワード)を生成するために、コードブック2102を使用して第1の矩形座標データ2132を符号化することができ、プロセッサは、第2の符号化された位置データ2144を生成するために、コードブック2102を使用して第2の矩形座標データ2134を符号化することができる。加えて、プロセッサは、第3の符号化された位置データ2146を生成するために、コードブック2102を使用して第3の矩形座標データ2132を符号化することができる。
[00269]別の例として、図25を参照すると、プロセッサは、第1の符号化された位置データ2242(たとえば、コードブック2202のコードワード)としてメタデータを生成するために、コードブック2202を使用して第1の極座標データ2232を符号化することができ、プロセッサは、第2の符号化された位置データ2244としてメタデータを生成するために、コードブック2202を使用して第2の極座標データ2234を符号化することができる。加えて、プロセッサは、第3の符号化された位置データ2246としてメタデータを生成するために、コードブック2202を使用して第3の極座標データ2232を符号化することができる。
[00270]2308において、メタデータ(たとえば、第1の符号化された位置データおよび第2の符号化された位置データ)は、入力パラメータに基づく特定のフレームの検索を可能にするために記憶され得る。たとえば、図24を参照すると、プロセッサは、第1の符号化された位置データ2142と第2の符号化された位置データ2144とをメモリに記憶することができる。モバイルデバイスのユーザは、パラメータ(たとえば、第1のオブジェクト1702および第2のオブジェクト1704の所望の位置)を入力することができる。入力パラメータに基づいて、モバイルデバイスは、第1の位置および第2の位置に対応する入力パラメータに応答して、再生のために第3のフレームを検索することができる。
[00271]別の例として、図25を参照すると、プロセッサは、第1の符号化された位置データ2242と第2の符号化された位置データ2244とをメモリに記憶することができる。モバイルデバイスのユーザは、パラメータ(たとえば、第1のオブジェクト1702および第2のオブジェクト1704の所望の位置)を入力することができる。入力パラメータに基づいて、モバイルデバイスは、第1の位置および第2の位置に対応する入力パラメータに応答して、再生のために第3のフレームを検索することができる。
[00272]特定の実施形態では、方法2300はまた、複数のフレームにわたってシーンの第1のエリアの第1の密度をトラッキングすることを含み得る。第1の密度は、第1のオブジェクト1702または第2のオブジェクト1704が第1のエリアの中にある回数に基づき得る。方法2300はまた、複数のフレームにわたってシーンの第2のエリアの第2の密度をトラッキングすることを含み得る。第2の密度は、第1のオブジェクト1702または第2のオブジェクト1704が第2のエリアの中にある回数に基づき得る。方法2300はさらに、第1の密度を第2の密度と比較することと、第1の密度が第2の密度よりも大きい場合、コードブック2102中の第1の量のメタデータを第1のエリアに割り振り、コードブック2102中の第2の量のメタデータを第2のエリアに割り振ることを含み得る。第1の量のメタデータは、第2の量のメタデータよりも大きいことがある。たとえば、コードブック2102の中の多数のコードワードは第1のエリア(たとえば、高解像度エリア)に対応してよく、少数のコードワードはより密度の低いエリアに対するコードワードの数を減らすための第2のエリア(たとえば、より低解像度のエリア)に対応してよい。
[00273]図26の方法2300は、コードブック2102を使用して符号化されたビデオの特定の部分(フレーム)をユーザが検索する(たとえば、位置特定する)ことを可能にし得る。たとえば、格子2106は、ユーザが異なるオブジェクトに対する異なる位置(たとえば、パラメータ)を選択することを可能にする、画面上に表示されるユーザ対話型の格子であり得る。この選択に基づいて、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、同様の異議の位置構成を有するビデオの所望の部分を容易に位置特定することができる。
[00274]図27を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2600の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法2600は、ロボットを使用して実行され得る。
[00275]2602において、方法2600は、ロボットにおいて、複数のオブジェクトの間の幾何学的配置をトラッキングすることを含み得る。たとえば、ユーザは、トラッキングされるべき特定のオブジェクトをロボットに伝えることができる。特定の実施形態では、ロボットはディスプレイインターフェースを含んでよく、ユーザはディスプレイインターフェースとの対話を介してロボットと交流することができる。別の例として、ロボットは、環境因子に基づいてどのオブジェクトがトラッキングされるべきかを、独立に決定することができる。たとえば、ロボットは、動きを検出するためのセンサを含み得る。検出された動きに基づいて、ロボットは、動きと関連付けられるオブジェクトをトラッキングすることを選択し得る。
[00276]2604において、処理機能が幾何学的配置に基づいて実行され得る。たとえば、ロボットは、幾何学的配置に基づいてオブジェクト間の関係を決定することができる。別の例として、ロボットは、オブジェクトの幾何学的配置に基づいて設定(たとえば、シーン)を決定することができる。
[00277]図28を参照すると、オブジェクトトラッキングを使用したビデオ処理を示す特定の実施形態が示される。図28に示される実施形態に関して説明されるビデオ処理技法は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
[00278]図28は、第1の時刻においてキャプチャされるようなシーンを示す、画像2700を示す。たとえば、画像2700は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム2400に示されるシーンは、第1のオブジェクト2702と、第2のオブジェクト2704と、第3のオブジェクト2706と、星と、木とを含む。示される実施形態では、第1のオブジェクト2702は第1の人物に対応してよく、第2のオブジェクト2704は第2の人物に対応してよく、第3のオブジェクト2706は第3の人物に対応してよい。別の実施形態では、オブジェクト2702〜2706の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
[00279]図28はまた、モバイルデバイスの画面上のフレーム2700の表示2710を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示2710は、ユーザが(たとえば、タスクT200による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構2711を含み得る。たとえば、ユーザは、画面2710上のユーザ選択機構2711をタッチし、第1のオブジェクト2702のトラッキングを可能にするために第1のオブジェクト2702の周囲で第1の焦点リング2712をドラッグすることができる。第1の焦点リング2712のそのような配置に応答して、モバイルデバイスは、トラッキングのために第1のオブジェクト2712を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構2711をタッチし、第2のオブジェクト2704および第3のオブジェクト2706の周囲で第2の焦点リング2714および第3の焦点リング2716をドラッグして、それぞれ、第2のオブジェクト2704および第3のオブジェクト2706のトラッキングを可能にすることができる。第2の焦点リング2714および第3の焦点リング2716のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト2704と第3のオブジェクト2706とを選択することができる。
[00280]図28はまた、第2の時刻においてキャプチャされるようなシーンを示す、画像(たとえば、フレーム)2720を示す。画像2720において、各オブジェクト2702〜2706の位置は、第1の時刻におけるシーンを示す画像2700に示される対応する位置に対して変化している。たとえば、第1のオブジェクト2702は星に近づくように移動しており、第2のオブジェクト2704は木に近づくように移動しており、第3のオブジェクト2706は画像の下部に近づくように移動している。
[00281]図24はまた、モバイルデバイスの画面上の画像2720の表示2730を示す。表示2730は、第1のウィンドウ2732、第2のウィンドウ2734、第3のウィンドウ2736、および第4のウィンドウ2738へと(たとえば、表示タスクT50によって)区分され得る。ユーザ選択機構2711による3つのオブジェクト2702〜2706の選択に応答して、たとえば、モバイルデバイスは、3つの対応するウィンドウ2732〜2736および第4のウィンドウ2738へと画面2730を区分することができる。
[00282]第1のウィンドウ2732は、第1のオブジェクト2702を含む画像2720の第1の部分を表示することができる。画像2720の第1の部分は、画像2720の中の第1のオブジェクト2702の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2702の位置をトラッキングすることができ、第1のオブジェクト2702の位置に注目しているビデオストリームが第1のウィンドウ2732に表示され得る。第2のウィンドウ2734は、第2のオブジェクト2704を含む画像2720の第2の部分を表示することができる。画像2720の第2の部分は、画像2720の中の第2のオブジェクト2704の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2704の位置をトラッキングすることができ、第2のオブジェクト2704の位置に注目しているビデオストリームが第2のウィンドウ2734に表示され得る。第3のウィンドウ2736は、第3のオブジェクト2706を含む画像2720の第3の部分を表示することができる。画像2720の第3の部分は、画像2720の中の第3のオブジェクト2706の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト2704の位置をトラッキングすることができ、第3のオブジェクト2706の位置に注目しているビデオストリームが第3のウィンドウ2736に表示され得る。
[00283]第4のウィンドウ2738は、各オブジェクト2702〜2706の間の幾何学的配置(たとえば、重心(CM2))の指示を表示することができる。たとえば、第4のウィンドウ2738は、画像2720中のエリアに対応する複数のセクション(グレースケールの線として表されている)を含む格子を含み得る。たとえば、格子の左下のセクションは、画像2720の左下のセクションに対応し得る。図21および図22に関して説明されるような同様の方式で、モバイルデバイスは、画像2720中のオブジェクトの重心(CM2)を決定することができる。重心(CM2)は、格子の対応するセクションに表示され得る。
[00284]図28はまた、(たとえば、第2の時刻の後の)第3の時刻にキャプチャされるようなシーンを示す、画像2740を示す。画像2740において、各オブジェクト2702〜2706の位置は、第2の時刻におけるシーンを示す画像2720中の対応する位置に対して変化している。たとえば、第1のオブジェクト2702は木に近づくように移動しており、第2のオブジェクト2704はシーン2740の下部に近づくように移動しており、第3のオブジェクト2706は星に近づくように移動している。
[00285]図28はまた、モバイルデバイスによって生成されるウィンドウ2732〜2736を使用した、モバイルデバイスの画面上の画像2740の表示2750を示す。たとえば、第1のウィンドウ2732は、第1のオブジェクト2702を含む画像2740の第1の部分を表示し、第2のウィンドウ2734は、第2のオブジェクト2704を含む画像2740の第2の部分を表示し、第3のウィンドウ2736は、第3のオブジェクト2706を含む画像2740の第3の部分を表示する。
[00286]第4のウインドウ2738は、第3の時刻における画像2740を反映するように、指示(たとえば、重心(CM2))を更新することができる。モバイルデバイスは、フレームごとに、または非連続的な時間間隔で、幾何学的配置をトラッキングし、更新された幾何学的配置の指示を第4のウィンドウ2738に表示することができる。たとえば、第3のフレームにおいて、第4のウィンドウ2738は、第3の時刻における画像2740中のオブジェクト2702〜2706の重心(CM3)を表示することができる。第4のウィンドウ2738はまた、第2のフレームと第3のフレームとの間で(たとえば、タスクT200によって示されるように)オブジェクトの重心をトラッキングする、経路(たとえば、点線)を表示することができる。
[00287]図28に示される実施形態は、モバイルデバイスが、フレーム2700、2720、2740中のオブジェクト2702〜2706をトラッキングすることを可能にでき、オブジェクト2702〜2706に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2732〜2736に表示することができる。実施形態はまた、ユーザが第4のウィンドウ2738中のオブジェクト2702〜2706の幾何学的配置を見ることを可能にする。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、図28に関して説明される技法を実行することができる。
[00288]図29を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2800の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法2800は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
[00289]方法2800は、2802において、モバイルデバイスにおいて、シーン中の第1のオブジェクト、シーン中の第2のオブジェクト、およびシーン中の第3のオブジェクトの選択を受け取ることを含む。たとえば、図28を参照すると、ユーザは、画面2710上のユーザ選択機構2711をタッチし、第1のオブジェクト2702の周囲で第1の焦点リング2712をドラッグし、第2のオブジェクト2704の周囲で第2の焦点リング2714をドラッグし、第3のオブジェクト2706の周囲で第3の焦点リング2716をドラッグして、それぞれ、第1、第2、および第3のオブジェクト2702〜2706のトラッキングを可能にすることができる。表示されるシーンは、キャプチャされモバイルデバイスの画面に表示されるビデオストリームに対応し得る。
[00290]表示はまた、2804において、アット第1のウィンドウ、第2のウィンドウ、第3のウィンドウ、および第4のウィンドウへと区分され得る。たとえば、図28を参照すると、表示2730は、第1のウィンドウ2732、第2のウィンドウ2734、第3のウィンドウ2736、および第4のウィンドウに区分され得る。
[00291]2806において、第1のオブジェクトを含む表示されるシーンの第1の部分は、第1のウィンドウに表示され得る。たとえば、図28を参照すると、第1のウィンドウ2732は、第1のオブジェクト2702を含む画像2720の第1の部分を表示することができる。画像2720の第1の部分は、画像2720の中の第1のオブジェクト2702の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2702の位置をトラッキングすることができ、第1のオブジェクト2702の位置に注目しているビデオストリームが第1のウィンドウ2732に表示され得る。
[00292]2808において、第2のオブジェクトを含む表示されるシーンの第2の部分は、第2のウィンドウに表示され得る。たとえば、図28を参照すると、第2のウィンドウ2734は、第2のオブジェクト2704を含む画像2720の第2の部分を表示することができる。画像2720の第2の部分は、画像2720の中の第2のオブジェクト2704の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2704の位置をトラッキングすることができ、第2のオブジェクト2704の位置に注目しているビデオストリームが第2のウィンドウ2734に表示され得る。
[00293]2810において、第3のオブジェクトを含む表示されるシーンの第3の部分は、第3のウィンドウに表示され得る。たとえば、図28を参照すると、第3のウィンドウ2736は、第3のオブジェクト2706を含む画像2720の第3の部分を表示することができる。画像2720の第3の部分は、画像2720の中の第3のオブジェクト2706の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト2706の位置をトラッキングすることができ、第3のオブジェクト2706の位置に注目しているビデオストリームが第3のウィンドウ2736に表示され得る。
[00294]2812において、各オブジェクト間の幾何学的配置の指示が第4のウィンドウに表示され得る。たとえば、図28を参照すると、第4のウィンドウ2738は、各オブジェクト2702〜2706間の重心(CM2)を表示することができる。第4のウインドウ2738は、第3の時刻におけるシーンを反映するように重心(CM2)を更新することができる。たとえば、第3のフレームにおいて、第4のウィンドウ2738は、第3の時刻における画像2740中のオブジェクト2702〜2706の重心(CM3)を表示することができる。第4のウィンドウ2738はまた、第2のフレームと第3のフレームとの間でオブジェクトの重心をトラッキングする、経路(たとえば、点線)を表示することができる。
[00295]図29の方法2800は、モバイルデバイスが、シーン2700、2720、2740中のオブジェクト2702〜2706をトラッキングすることと、オブジェクト2702〜2706に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2732〜2736に表示することとを可能にし得る。方法2800はまた、ユーザが第4のウィンドウ2738中のオブジェクト2702〜2706の幾何学的配置を見ることを可能にする。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法2800を実行することができる。
[00296]図42を参照すると、オブジェクトトラッキングを使用したビデオ処理を示す特定の実施形態が示される。図42に示される実施形態に関して説明されるビデオ処理技法は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
[00297]図42は、第1の時刻におけるシーンを示す、デジタル画像1100を示す。たとえば、画像1100は、キャプチャされモバイルデバイスの画面に表示されるビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。画像1100に示されるシーンは、第1の関心領域(ROI:region of interest)1102と、第2のROI1104と、第3のROI1106とを含み得る。各ROI1102〜1106は、本明細書で説明される技法(たとえば、図1〜図10を参照すると、オブジェクトトラッキングおよび検出モジュール204および804、ならびに/またはタスクT200)に従ってトラッキングされる1つまたは複数のオブジェクトを含むシーン内の領域に対応し得る。
[00298]例示すると、第1のROI1102は、トラッキングされたオブジェクトの第1のグループ(たとえば、第1のトラッキングされたオブジェクト1110および第3のトラッキングされたオブジェクト1114)を含み得る。加えて、第2のROI1104は、トラッキングされたオブジェクトの第2のグループ(たとえば、第4のトラッキングされたオブジェクト1120、第5のトラッキングされたオブジェクト1122、および第6のトラッキングされたオブジェクト1124)を含んでよく、第3のROI1106は、トラッキングされたオブジェクトの第3のグループ(たとえば、第7のトラッキングされたオブジェクト1130、第8のトラッキングされたオブジェクト1132、および第9のトラッキングされたオブジェクト1134)を含み得る。第2のトラッキングされたオブジェクト1112は、ROI1102〜1104の外側に位置し得る。
[00299]メタデータは、シーン1100中の各々のトラッキングされたオブジェクト1110〜1114、1120〜1124、1130〜1134の位置を特定するために(たとえば、タスクT300によって)生成され得る。特定の実施形態では、メタデータは矩形座標データに対応する。たとえば、第1のメタデータは、第1のトラッキングされたオブジェクト1110の位置(たとえば、x座標位置およびy座標位置)を特定するために生成されてよく、第2のメタデータは、第2のトラッキングされたオブジェクト1112の位置を特定するために生成されてよく、以下同様である。他の実施形態では、メタデータは、極座標データ、球面座標データ、円柱座標データ、または3次元直交座標データに対応し得る。
[00300]各ROI1102〜1106は、ROI1102〜1106中のトラッキングされたオブジェクトの重心によって定義され得る。たとえば、第1のROI1102は、第1のトラッキングされたオブジェクト1110と第3のトラッキングされたオブジェクト1114との間の第1の重心(CM1)によって定義され得る。第2のROI1104は、第4のトラッキングされたオブジェクト1120、第5のトラッキングされたオブジェクト1122、および第6のトラッキングされたオブジェクト1124の間の第2の重心(CM2)によって定義され得る。第3のROI1106は、第7のトラッキングされたオブジェクト1130、第8のトラッキングされたオブジェクト1132、および第9のトラッキングされたオブジェクト1134の間の第3の重心(CM3)によって定義され得る。
[00301]図43に関してより詳細に説明されるように、シーン1100中の各々のトラッキングされたオブジェクト1110〜1114、1120〜1124、1130〜1134の位置のためのメタデータを符号化するために、コードブックが使用され得る。ROI1102〜1106の1つの内側に位置するトラッキングされたオブジェクトのためのメタデータは、ROI1102〜1106の外側に位置するトラッキングされたオブジェクト(たとえば、第2のトラッキングされたオブジェクト1112)のためのメタデータよりも高いビットレートで符号化され得る。より高いビットレートでROI1102〜1106の1つの内部に位置するトラッキングされたオブジェクトのためのメタデータを符号化することは、ROI1102〜1106の中のトラッキングされたオブジェクトの位置が、他のトラッキングされたオブジェクトの位置よりも高いレベルの精度で符号化されることを可能にし得る。
[00302]図43を参照すると、オブジェクトの位置のためのメタデータを符号化する特定の実施形態が示される。図43の実施形態は、フレームごとに複数のオブジェクトの位置のためのメタデータを符号化するために使用され得るコードブック1202を示す。メタデータは、格子中の各オブジェクトの位置を示すために使用され得る。
[00303]コードブック1202は、複数のフレーム1204に対するメタデータを符号化するために使用され得る。メタデータは、フレーム中のオブジェクトのための矩形座標データ(たとえば、x座標およびy座標)、フレーム中のオブジェクトのための極座標、フレーム中のオブジェクトのための球面座標、フレーム中のオブジェクトのための円柱座標、またはフレーム中のオブジェクトのための3次元直交座標を含み得る。示される実施形態では、コードブック1202は、10000個のフレームにわたって3つのオブジェクトのためのメタデータを符号化することができる。特定の実施形態では、第3のフレームは、図43の第1のフレーム(たとえば、シーン1100)に対応し得る。10000個のフレームに対するメタデータがコードブック1202において示されるが、他の実施形態では、コードブック1202は、より少数の(または追加の)フレームに対するメタデータを符号化することができる。加えて、メタデータは、より少数の(または追加の)オブジェクトに対する位置情報を含み得る。図43の以下の説明は、第3のフレームに対応するメタデータに基づく。しかしながら、同様の技法が他のメタデータに適用可能であり得る。
[00304]第3のフレーム中のメタデータは、第1の座標データ1232と、第2の座標データ1234と、第3の座標データ1236と、第4の座標データ1237と、...、第 9の座標データ1238とを含み得る。第1の座標データ1232は、図42の画像1100中の第1のトラッキングされたオブジェクト1110の座標の位置を含んでよく、第2の座標データ1234は、画像1100中の第2のトラッキングされたオブジェクト1112の座標の位置を含んでよく、第3の座標データ1236は、画像1100中の第3のトラッキングされたオブジェクト1114の座標の位置を含んでよく、第4の座標データ1237は、画像1100中の第4のトラッキングされたオブジェクト1120の座標の位置を含んでよく、以下同様である。
[00305]プロセッサは、座標データ1232〜1236を符号化するためにコードブック1202を使用することができる。例示すると、プロセッサは、第1のビットレート(たとえば、比較的高いビットレート)を使用して、第1の座標データ1232を第1の符号化された位置データ1242へと符号化(たとえば、量子化)することができる。たとえば、プロセッサは、第1の座標データ1232を対応する値(たとえば、コードブック1202のコードワード)にマッピングすることができ、第1の座標データ1232を値(たとえば、第1の符号化された位置データ1242)として符号化することができる。第1のトラッキングされたオブジェクト1110はROI(たとえば、図42の第1のROI1102)の内部にあるので、プロセッサは第1のビットレートを使用することができる。
[00306]加えて、プロセッサは、第1のビットレートよりも低い第2のビットレートを使用して、第2の座標データ1234を第2の符号化された位置データ1244へと符号化することができる。たとえば、プロセッサは、コードブック1202を使用して第2の座標データ1234を対応する値にマッピングすることができ、第2の座標データ1234を値(たとえば、第2の符号化された位置データ1244)として符号化することができる。第2のトラッキングされたオブジェクト1112は図42のROI1102〜1106の各々の外部にあるので、プロセッサは第2のビットレートを使用することができる。
[00307]プロセッサは、第2のビットレートよりも高い第3のビットレートを使用して、第3の座標データ1236を第3の符号化された位置データ1246へと符号化することができる。たとえば、プロセッサは、コードブック1202を使用して第3の座標データ1236を対応する値にマッピングして、第3の矩形座標データ1236を値(たとえば、第3の符号化された位置データ1246)として符号化することができる。第3のトラッキングされたオブジェクト1114はROI(たとえば、図42の第1のROI1102)の内部にあるので、プロセッサは第3のビットレートを使用することができる。特定の実施形態では、第3のビットレートは、第1のビットレートに等しくてよく、または実質的に等しくてよい。
[00308]プロセッサは、第2のビットレートよりも高い第4のビットレートを使用して、第4の座標データ1237を第4の符号化された位置データ1247へと符号化することができる。たとえば、プロセッサは、コードブック1202を使用して第4の座標データ1237を対応する値にマッピングすることができ、第4の座標データ1237を値(たとえば、第4の符号化された位置データ1247)として符号化することができる。第4のトラッキングされたオブジェクト1120はROI(たとえば、図42の第2のROI1104)の内部にあるので、プロセッサは第4のビットレートを使用することができる。特定の実施形態では、第4のビットレートは、第1のビットレートに実質的に等しくてよい。
[00309]プロセッサは、第2のビットレートよりも高い第9のビットレートを使用して、第9の座標データ1238を第9の符号化された位置データ1248へと符号化することができる。たとえば、プロセッサは、コードブック1202を使用して第9の座標データ1238を対応する値にマッピングすることができ、第9の座標データ1238を値(たとえば、第9の符号化された位置データ1248)として符号化することができる。第9のトラッキングされたオブジェクト1134はROI(たとえば、図42の第3のROI1106)の内部にあるので、プロセッサは第9のビットレートを使用することができる。特定の実施形態では、第9のビットレートは、第1のビットレートに実質的に等しくてよい。
[00310]同様の符号化技法が、図42における他のトラッキングされたオブジェクトの座標データのために実行され得る。ROI1102〜1106の1つの内側に位置するトラッキングされたオブジェクトのためのメタデータ(たとえば、座標データ)は、ROI1102〜1106の外側に位置するトラッキングされたオブジェクト(たとえば、第2のトラッキングされたオブジェクト1112)のためのメタデータよりも高いビットレートで符号化され得る。より高いビットレートでROI1102〜1106の1つの内部に位置するトラッキングされたオブジェクトのためのメタデータを符号化することは、トラッキングされたオブジェクトの位置が比較的高いレベルの精度で符号化されることを可能にし得る。
[00311]図43の実施形態は、ユーザが、コードブック1202を使用して符号化されたデータに基づいてビデオの特定の部分を検索する(たとえば、位置特定する)ことを可能にし得る。たとえば、位置空間は、ユーザが異なるオブジェクトに対する異なる位置(たとえば、パラメータ)を選択することを可能にする、ユーザ対話型の格子として画面に表示され得る。この選択に基づいて、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、同様のオブジェクトの位置構成を有するビデオの所望の部分(たとえば、フレーム)を容易に位置特定することができる。加えて、符号化された位置データ1242〜1248は、圧縮されてエンコーダからデコーダに送信され得る。符号化された位置データ1242〜1248を圧縮してデコーダに送信することで、デコーダは、比較的少量のデータ(たとえば、量子化された値)を使用して、トラッキングされたオブジェクトの位置を決定することが可能になり得る。
[00312]図44を参照すると、オブジェクトトラッキングを使用したビデオ処理方法1300の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法1300は、図1の電子デバイス102、図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される図9の平滑化モジュール961、図43のコードブック1202、またはこれらの任意の組合せを使用して実行され得る。
[00313]方法1300は、1302において、モバイルデバイスにおいて、特定のフレームの関心領域に位置する第1のオブジェクトの第1の位置を(たとえば、タスクT200によって)トラッキングすることを含み得る。たとえば、図42を参照すると、第1のトラッキングされたオブジェクト1110の第1の位置がトラッキングされ得る。1304において、特定のフレームの関心領域に位置しない第2のオブジェクトの第2の位置が、トラッキングされ得る。たとえば、図42を参照すると、第2のトラッキングされたオブジェクト1112の第2の位置がトラッキングされ得る。
[00314]1306において、第1の位置と関連付けられる第1の座標データおよび第2の位置と関連付けられる座標データが生成され得る。たとえば、図43を参照すると、プロセッサは、シーン1100中の第1のトラッキングされたオブジェクト1110の位置と関連付けられる第1の座標データ1232と、シーン1100中の第2のトラッキングされたオブジェクト1112の位置と関連付けられる第2の座標データ1234とを生成することができる。
[00315]1308において、第1の座標データおよび第2の座標データは、第1の符号化された位置データと第2の符号化された位置データとを生成するために、コードブックを使用して(たとえば、タスクT300によって)符号化され得る。たとえば、図43を参照すると、プロセッサは、第1の符号化された位置データ1242(たとえば、コードブック1202のコードワード)を生成するために、コードブック1202を使用して第1の座標データ1232を符号化することができ、プロセッサは、第2の符号化された位置データ1244を生成するために、コードブック1202を使用して第2の座標データ1234を符号化することができる。第1の座標データ1232は第1のビットレート(たとえば、高ビットレート)で符号化されてよく、第2の座標データ1234は第2のビットレート(たとえば、低ビットレート)で符号化されてよい。第1のトラッキングされたオブジェクト1110はROI(たとえば、図42の第1のROI1102)の内部にあるので、プロセッサは第1のビットレートを使用して第1の座標データ1232を符号化することができる。第2のトラッキングされたオブジェクト1112は図42のROI1102〜1106の各々の外部にあるので、プロセッサは第2のビットレートを使用して第2の座標データ1234を符号化することができる。
[00316]1310において、第1の符号化された位置データおよび第2の符号化された位置データは、入力パラメータに基づく特定のフレームの検索を可能にするために記憶され得る。たとえば、図43を参照すると、プロセッサは、第1の符号化された位置データ1242と第2の符号化された位置データ1244とをメモリに記憶することができる。モバイルデバイスのユーザは、パラメータ(たとえば、第1のトラッキングされたオブジェクト1110および第2のトラッキングされたオブジェクト1112の所望の位置)を入力することができる。入力パラメータに基づいて、モバイルデバイスは、第1の位置および第2の位置に対応する入力パラメータに応答して、再生のために第3のフレームを検索することができる。
[00317]特定の実施形態では、方法1300は、特定のフレームの関心領域に位置する第3のオブジェクトの第3の位置をトラッキングすることを含み得る。たとえば、第3のトラッキングされたオブジェクト1114の第3の位置がトラッキングされ得る。第3の位置と関連付けられる第3の座標データが生成され得る。第3の座標データは、第3の符号化された位置データを生成するためにコードブックを使用して符号化され得る。第2のビットレートよりも高い第3のビットレートを使用して、第3の座標データが符号化され得る。第3の符号化された位置データは、入力パラメータに基づく特定のフレームの検索を可能にするために記憶され得る。
[00318]特定の実施形態では、方法1300は、特定のフレームの第2の関心領域に位置する第4のオブジェクトの第4の位置をトラッキングすることを含み得る。たとえば、第4のトラッキングされたオブジェクト1120の第4の位置がトラッキングされ得る。第4の位置と関連付けられる第4の座標データが生成され得る。第4の座標データは、第4の符号化された位置データを生成するためにコードブックを使用して符号化され得る。第2のビットレートよりも高い第4のビットレートを使用して、第4の座標データが符号化され得る。第4の符号化された位置データは、入力パラメータに基づく特定のフレームの検索を可能にするために記憶され得る。
[00319]図44の方法1300は、コードブック1202を使用して符号化されたビデオの特定の部分(フレーム)をユーザが検索する(たとえば、位置特定する)ことを可能にし得る。加えて、方法1300は、ROIの内側のトラッキングされたオブジェクトのためのメタデータが、ROIの外側のオブジェクトよりも高いビットレートで符号化されることを可能にし得る。より高いビットレートでROIの内部に位置するトラッキングされたオブジェクトのためのメタデータを符号化することは、ROIの中のトラッキングされたオブジェクトの位置が、他のトラッキングされたオブジェクトの位置よりも高いレベルの精度で符号化されることを可能にし得る。
[00320]図38Aは、一般的な構成によるメタデータを生成するための装置A100のブロック図を示す。装置A100は、複数のオブジェクトを選択するために少なくとも1つのデジタル画像を使用するように構成される判別器100を含み、(たとえば、タスクT100を参照して本明細書で説明されるように)少なくとも1つのデジタル画像は物理空間との関連でオブジェクトを示す。装置A100はまた、位置空間中の選択されたオブジェクトの位置を示す情報に基づいて、(たとえば、タスクT300を参照して本明細書で説明される)選択されたオブジェクトの複数の幾何学的構成の候補の中から1つを特定するメタデータを生成するように構成される選択器300を含む。
[00321]図38Bは、装置A100の実装形態A110のブロック図を示す。装置A110は、(たとえば、表示タスクT50を参照して本明細書で説明されるように)少なくとも1つのデジタル画像を表示するように構成される表示モジュール50を含む。
[00322]図38Cは、装置A100の実装形態A120のブロック図を示す。装置A120は、(たとえば、解析タスクT30を参照して本明細書で説明されるように)少なくとも1つのデジタル画像を生成するためにビデオストリームを解析するように構成される、インターフェース30を含む。図38Dは、装置A110およびA120の実装形態A130のブロック図を示す。
[00323]図38Eは、装置A100の実装形態A200のブロック図を示す。装置A200は、(たとえば、タスクT200を参照して本明細書で説明されるように)位置空間中の複数のオブジェクトのための基準の位置を決定するように構成されるオブジェクトトラッカー200を含む。オブジェクトトラッカー200はまた、ビデオストリーム内で、(たとえば、タスクT200を参照して本明細書で説明されたように)前記複数のオブジェクトをトラッキングするように構成され得る。図38F、図38G、および図39Aは、それぞれ、オブジェクトトラッカー200の実体を含む、装置A110、A120、およびA130の実装形態A210、A220、およびA230のブロック図を示す。
[00324]図39Bは、装置A100の実装形態A300のブロック図を示す。装置A200は、(たとえば、タスクT300を参照して本明細書で説明されるように)選択器300によって生成されるメタデータをビデオストリームの対応するフレームと関連付けるように構成されるビデオストリームエディタ400を含む。図39Cおよび図39Dは、ビデオストリームエディタ400の実体をそれぞれ含む、装置A200およびA230の実装形態A310およびA330のブロック図を示す。
[00325]本明細書で開示されるような装置A100および/またはA500の実装形態のいずれかは、次のフォームファクタ、すなわち、携帯可能(たとえば、スマートフォン)、運転可能(たとえば、車両またはロボット)、装着可能(たとえば、衣服またはアクセサリ)、および飛行可能(たとえば、ドローン)のいずれかのデバイスのような、モバイルデバイス内で実装され得る。モバイルデバイスは、少なくとも1つのデジタル画像を表示するように構成される1つもしくは複数の画面(たとえば、タッチスクリーン)および/または少なくとも1つのデジタル画像(たとえば、ビデオストリーム)をキャプチャするように構成される1つもしくは複数の撮像ユニット(たとえば、カメラまたは他の画像キャプチャデバイス)を含み得る。
[00326]図31を参照すると、上で説明されたビデオ処理技法を実行するように動作可能なコンポーネントを含むワイヤレスデバイス2900のブロック図が示されている。デバイス2900は、メモリ2932に結合されたデジタル信号プロセッサ(DSP)のようなプロセッサ2910を含む。デバイス2900は、本明細書で説明されるような装置A100および/またはA500の実装形態のいずれかの要素を含むように実装され得るモバイルデバイスの一例である。
[00327]図31はまた、プロセッサ2910とディスプレイ2928とに結合されたディスプレイコントローラ2926を示している。特定の実施形態では、表示は、上で説明されたビューファインダまたは画面に対応し得る。メモリ2932は、実行可能命令2956を含む有形の非一時的プロセッサ可読記憶媒体であり得る。命令2956はプロセッサ2910のようなプロセッサによって実行され得る。プロセッサ2910またはディスプレイコントローラ2926のようなプロセッサは、図3の方法300、図4の方法400、図5の方法500、図6の方法600、図10の方法1000、図12の方法1200、図14の方法1400、図16の方法1600、図19の方法1900、図20の方法2000、2010、図23の方法2300、図25の方法2500、図26の方法2600、図28の方法2800、方法M100、方法M110、方法M120、方法M130、またはこれらの任意の組合せの、少なくとも一部分を実行するように命令2956を実行することができる。
[00328]コーダ/デコーダ(コーデック)2934も、プロセッサ2910に結合され得る。スピーカー2936およびマイクロフォン2938が、コーデック2934に結合され得る。図31は、ワイヤレスコントローラ2940がプロセッサ2910とアンテナ2942とに結合され得ることも示す。特定の実施形態では、高周波(RF)インターフェース2980が、ワイヤレスコントローラ2940とアンテナ2942との間に配設される。
[00329]特定の実施形態では、プロセッサ2910、ディスプレイコントローラ2926、メモリ2932、コーデック2934、およびワイヤレスコントローラ2940は、システムインパッケージまたはシステムオンチップデバイス2922に含まれる。特定の実施形態では、入力デバイス2930(たとえば、上で説明されたようなシーンをキャプチャするために使用されるカメラ)および電源2944が、システムオンチップデバイス2922に結合される。その上、特定の実施形態では、図31に示されるように、ディスプレイ2928、入力デバイス2930、スピーカー2936、マイクロフォン2938、アンテナ2942、電源2944、およびRFインターフェース2980は、システムオンチップデバイス2922の外部にある。たとえば、RFインターフェース2980は別のチップであってよい。しかしながら、ディスプレイ2928、入力デバイス2930、スピーカー2936、マイクロフォン2938、アンテナ2942、電源2944、およびRFインターフェース2980の各々は、インターフェースまたはコントローラのような、システムオンチップデバイス2922のコンポーネントに結合され得る。
[00330]位置関連のメタデータによりビデオファイルにアノテーションを付ける多くの例が、(たとえば、タスクT300を参照して)上で説明されている。そのようなアノテーションは、たとえば、検索およびまたは保存のためのフレームの分類およびクラスタ化のような用途のために、オブジェクトトラッキングによって取得される位置を符号化することを含み得る。
[00331]そのような機能は、ユーザが関心を持ったコンテンツの部分を特定するメタデータを(たとえば、ビデオストリームがキャプチャされるにつれて)作成するために使用され得る。メタデータに基づいて、指定されたコンテンツの高速な検索のための機構を提供することによって、1つまたは複数のビデオストリームのそのような関心に基づく事前フィルタリングの結果を利用するのが望ましいことがある。たとえば、手動の確認の必要を少なくし、またはなくしながら、(たとえば、ビデオファイルの大きな目録の中からの)所望のコンテンツの自動的な抽出をサポートするのが望ましいことがある。
[00332]図45Aは、タスクX100と、X200と、X300とを含む一般的な構成による画像検索の方法M500のフローチャートを示す。タスクX100は、複数の選択されたオブジェクトを特定する情報を取得し、タスクX200は、複数の幾何学的構成の候補のうちの1つを選択する。この選択に応答して、タスクX300は、選択された幾何学的構成の候補に従って並べられている複数の選択されたオブジェクトを示す、複数のデジタル画像のうちの少なくとも1つのデジタル画像を特定する。タスクX100、X200、およびX300は、たとえば、図1の電子デバイス102、プロセッサ2910、ワイヤレスデバイス2900、またはこれらの任意の組合せによって実行され得る。
[00333]タスクX100は、複数の選択されたオブジェクトを特定する情報を取得する。タスクX100は、(たとえば、タッチスクリーン116のようなタッチスクリーンを介して)ユーザから情報を取得するように実施され得る。この場合、ユーザは、タッチスクリーンに表示されたメニューからオブジェクトの1つまたは複数を選択することができる。たとえば、そのようなメニューは、各々が特定の人物に対応するアイコンの表示であってよい(たとえば、ユーザの連絡先リスト中の人々のサムネイル画像)。
[00334]別の例では、ユーザは、1つまたは複数のビデオファイルと関連付けられるメタデータに基づいて生成されたタッチスクリーン上の表示から、オブジェクトの1つまたは複数を選択することができる。たとえば、画面は、(たとえば、キャプチャの間に)ビデオファイル内でトラッキングされたオブジェクトのアイコンのメニューを表示するように構成され得る。そのような場合、ビデオファイルと関連付けられるメタデータは、トラッキングされたオブジェクトを特定するラベルをビデオファイルの1つまたは複数のフレームの各々の中のオブジェクトの対応する位置と関連付ける情報を含み得る。
[00335]同様に、ユーザは、関連するメタデータ(たとえば、ビデオファイルのフレーム)を有する画像からオブジェクトの1つまたは複数を選択することができる。そのような場合、タッチスクリーンインターフェースは、オブジェクトに対する位置のメタデータが対応するビデオファイルにおいて入手可能であること(すなわち、オブジェクトがトラッキングされたこと)を示すために、画像内のオブジェクトをハイライトすることによって、画像を表示するように構成され得る。1つのそのような例では、タッチスクリーンインターフェースは、ユーザが一回で複数のオブジェクトを選択することを可能にする(たとえば、オブジェクトの周囲になげなわを描くことによって、または、ピンチまたはズーム動作を使用してオブジェクトの周囲にボックスを作成することによって)ように構成され得る。
[00336]そのようなタッチスクリーン入力に加えて、またはその代わりに、タスクX100は、音声認識によってユーザから情報を取得するように実施され得る。ユーザは、たとえば、画面に表示されるような利用可能なオブジェクトのリスト(たとえば、上で説明されたようなアイコンのメニュー)からオブジェクトの名前を読み取ることによって、オブジェクトの1つまたは複数を選択することができる。代替的に、ユーザは、探索されることになる少なくともビデオファイルに特定のオブジェクトに対する位置のメタデータが存在することを単に仮定することができ、オブジェクトの名前を言い、(たとえば、連絡先リストから)オブジェクトと関連付けられるアイコンを選択することによって、または、オブジェクトの名前をテキストとして入力することによって、この選択を入力することができる。
[00337]タスクX200は、(たとえば、図35を参照して本明細書で説明されるような)複数の幾何学的構成の候補のうちの1つを選択する。タスクX200は、(たとえば、タッチスクリーン116のようなタッチスクリーンを介して)ユーザから取得された情報に基づいて、そのような選択を実行するように実施され得る。一例では、ユーザは、所望の構成を示す画像(たとえば、ビデオファイルのフレーム)を指定する。別の例では、ユーザは、アイコン(たとえば、汎用的なアイコン、または所望のオブジェクトのアイコン)を所望の構成に置くことによって、そのような構成を表現する。これらの2つの例のいずれかを利用するタッチスクリーンの構成は、タスクX100とX200の両方に対するユーザ選択情報を単一のユーザ動作で提供するために使用され得ることに留意されたい。たとえば、ユーザは、所望の構成を表現するために、および選択されたオブジェクトを使用してその表現を作成することによって選択されたオブジェクトを示すために、トラッキングされたオブジェクトのアイコンの表示を使用することができる。さらなる例では、ユーザは、そのような構成の表示の中から所望の幾何学的構成の候補を選択することができる。
[00338]加えて、または代替的に、タスクX200は、音声認識によってユーザから情報を取得するように実施され得る。そのような場合、ユーザは、たとえば「近い(close)」、「近い(near)」、「遠い」、「隣」、「離れている」のような記述語を使用して、所望の構成を示すことができる。たとえば、音声認識インターフェースは、以下の形態、すなわち、「ジョーとケイトの隣にいるトムを探して」、「ジルとサムから離れているトムを見せて」、「サラの近くにいてジルの遠くにいるトムを表示して」、「サラの隣にいて木から遠くにいるトムを探して」の任意の1つまたは複数の探索要求を認識するように構成され得る。やはり、そのような動作は、タスクX100とX200の両方に対するユーザ選択情報を単一のユーザ動作で提供するために使用され得る。
[00339]上の例のいずれにおいても、タスクX200は、たとえば、(図35を参照して上で説明されたような)適切な決定の尺度をユーザにより示されるような構成に適用することによって、幾何学的構成の候補の特定の1つを選択するように実施され得る。さらなる例では、ユーザは、そのような構成の表示の中から所望の幾何学的構成の候補を選択することができる。
[00340]この選択に応答して、タスクX300は、選択された幾何学的構成の候補に従って並べられている複数の選択されたオブジェクトを示す、複数のデジタル画像のうちの少なくとも1つのデジタル画像を特定する。一例では、取得された情報は、複数の選択されたオブジェクトの各々に対して、オブジェクトと関連付けられるラベルを含み、タスクX300は、複数のデジタル画像(たとえば、ビデオファイル)と関連付けられるメタデータ内でラベルを探索するように実施される。そのようなラベルは、オブジェクトの名前、または、オブジェクトを示すためにメタデータ内で使用される任意の他の固有のもしくは非固有のデータ列であり得る。たとえば、ある人物に対するラベルは、ユーザの連絡先リストにおいてその人物のサムネイル画像と関連付けられるデータ列であり得る。
[00341]複数のデジタル画像と関連付けられるメタデータはまた、特定の候補を示すラベル(たとえば、データ列)を含むように構成され得る。そのような場合、タスクX300は、メタデータ内で、選択された幾何学的構成の候補と関連付けられるラベルを探索するように実施され得る。
[00342]代替的に、メタデータは、任意の幾何学的構成の候補を示すそのようなデータ列を欠いていることがあるが、それでも、各々の選択されたオブジェクトの位置を示す情報を含んでいることがある。そのような場合、タスクX200は、この位置のメタデータに基づいて、選択された幾何学的構成の候補に従ってオブジェクトが並べられているかどうかを決定するように実施され得る。タスクX200のそのような実施は、たとえば、そのような決定を行うための(たとえば、図35を参照して)本明細書で説明されるような1つまたは複数の決定の尺度(メトリック)に適用され得る。多くの場合、画像に対するメタデータによって示される位置の間の距離の比較は、さらなる検討から画像を外すのに十分であり得る。
[00343]選択されたオブジェクトの幾何学的構成に基づく情報の検索のためにビデオファイルまたはストリーム(またはデジタル画像の別の集合体)をフィルタリングするために、本明細書で説明されるような方法M100の実装形態を使用するのが望ましいことがある。たとえば、人々が特定の構成にあることが見出される画像を特定するために、そのような実装形態を使用するのが望ましいことがある。そのような検索の潜在的な適用例は、選択されたオブジェクト(たとえば、人々)の近接の発生を他の事象と相関付けることをサポートするために、そのような近接を示すことを含み得る。
[00344](たとえば、単一のユーザ選択動作に応答して)複数の保存されているビデオファイル全体を探索するために、方法M100の実装形態を適用するのが望ましいことがある。複数のビデオファイルのそのようなグループの各々におけるメタデータの構成は、ファイルごとに異なり得ることがあり得る。たとえば、特定のビデオファイルと関連付けられるメタデータは、オブジェクトを特定するメタデータと位置を示すメタデータとを含み得るが、これらの2つの間の関連付けを欠いていることがある。そのような場合、ビデオファイルは、特定の人々がファイルに示されていることを示すためにタグ付けされることがあり、ファイルは、ビデオストリーム内で選択された人物をトラッキングすることで得られるメタデータを含むこともあるが、トラッキングされた人物はタグにおいて特定される人々と同じではないことがある。それでも、そのようなグループ(たとえば、すべてのファイルが選択されたオブジェクトを示すものとして特定されるグループ)に対して方法M100の実装形態の単一の実体を適用するのが望ましいことがある。たとえば、トラッキングされたオブジェクトの所望の構成を有するフレームを特定することによってそのような方法が完了すると、トラッキングされたオブジェクトが選択されたオブジェクトでもあるフレームだけを分離するために、特定されたフレームのセットが調査され得る。
[00345]タスクT200およびT300を参照して上で説明されたように、ビデオフレームと関連付けられるメタデータは、位置空間中の幾何学的構成に対する基準の位置を示し得る。方法M500は、(たとえば、選択された幾何学的構成の候補の位置のユーザによる指示に基づいて)選択された幾何学的構成の候補に対する基準の位置を選択するように実施され得る。そのような場合、タスクX300は、選択されたオブジェクトが幾何学的構成の候補に従って位置空間中の基準の位置に対して並べられている画像を、選択されたオブジェクトが幾何学的構成の候補に従って並べられているが位置空間中の基準の位置に対しては並べられていない画像と区別するように実施され得る。
[00346]図45Bは、一般的な構成による画像検索のための装置A500のブロック図を示す。装置A500は、(A)複数の選択されたオブジェクトを特定する情報と、(B)複数の幾何学的構成の候補のうちの1つの選択とを取得するように構成される、判別器Z100を含む。判別器Z100は、たとえば、音声認識インターフェースおよび/またはタッチスクリーンインターフェースを介して、情報および/または選択を取得するように構成され得る。
[00347]装置A500はまた、選択された幾何学的構成の候補に従って並べられている複数の選択されたオブジェクトを示す、複数のデジタル画像のうちの少なくとも1つのデジタル画像を特定するように構成される探索エンジンZ300を含む。一例では、取得された情報は、複数の選択されたオブジェクトの各々に対して、オブジェクトと関連付けられるラベルを含み、探索エンジンZ300は、複数のデジタル画像と関連付けられるメタデータ内でラベルを探索するように実装される。加えて、または代替的に、探索エンジンZ300は、複数のデジタル画像と関連付けられるメタデータ内で、選択された幾何学的構成の候補と関連付けられるラベルを探索するように実装され得る。
[00348]図45Cは、別の一般的な構成による画像検索のための装置MF500のブロック図を示す。装置MF500は、複数の選択されたオブジェクトを特定する情報を取得するための手段Y100と、複数の幾何学的構成の候補のうちの1つを選択するための手段Y200とを含む。装置MF500はまた、選択された幾何学的構成の候補に従って並べられている複数の選択されたオブジェクトを示す、複数のデジタル画像のうちの少なくとも1つのデジタル画像を特定するための手段Y300を含む。一例では、取得された情報は、複数の選択されたオブジェクトの各々に対して、オブジェクトと関連付けられるラベルを含み、手段Y300は、複数のデジタル画像と関連付けられるメタデータ内でラベルを探索するように実装される。加えて、または代替的に、手段Y300は、複数のデジタル画像と関連付けられるメタデータ内で、選択された幾何学的構成の候補と関連付けられるラベルを探索するように実装され得る。
[00349]図40Aは、一般的な構成によるメタデータを生成するための装置MF100のブロック図を示す。装置MF100は、複数のオブジェクトを選択するために少なくとも1つのデジタル画像を使用するための手段F100を含み、(たとえば、タスクT100を参照して本明細書で説明されるように)少なくとも1つのデジタル画像は物理空間との関連でオブジェクトを示す。装置MF100はまた、位置空間中の選択されたオブジェクトの位置を示す情報に基づいて、(たとえば、タスクT300を参照して本明細書で説明される)選択されたオブジェクトの複数の幾何学的構成の候補の中から1つを特定するメタデータを生成するための手段F300を含む。
[00350]図40Bは、装置MF100の実装形態MF110のブロック図を示す。装置MF110は、(たとえば、表示タスクT50を参照して本明細書で説明されるように)少なくとも1つのデジタル画像を表示するための手段F50を含む。
[00351]図40Cは、装置MF100の実装形態MF120のブロック図を示す。装置MF120は、(たとえば、解析タスクT30を参照して本明細書で説明されるように)少なくとも1つのデジタル画像を生成するためにビデオストリームを解析するための手段F30を含む。図40Dは、装置MF110およびMF120の実装形態MF130のブロック図を示す。
[00352]図40Eは、装置MF100の実装形態MF200のブロック図を示す。装置MF200は、(たとえば、タスクT200を参照して本明細書で説明されるように)位置空間中の複数のオブジェクトのための基準の位置を決定するための手段F200を含む。図41Bは、(たとえば、タスクT200を参照して本明細書で説明されたように)ビデオストリーム内で前記複数のオブジェクトをトラッキングするための手段F210を含む、装置MF100の実装形態MF400のブロック図を示す。図40F、図40G、および図41Aは、手段F200の実体をそれぞれ含む、装置MF110、MF120、およびMF130の実装形態MF210、MF220、およびMF230のブロック図を示す。そのような装置はまた、手段F200に加えて、またはその代わりに、手段F210を含むように実施され得る。
[00353]図41Cは、装置MF100の実装形態MF300のブロック図を示す。装置MF200は、(たとえば、タスクT300を参照して本明細書で説明されるように)手段F300によって生成されるメタデータをビデオストリームの対応するフレームと関連付けるための手段F400を含む。図41Dおよび図41Eは、手段F400の実体をそれぞれ含む、装置MF200およびMF230の実装形態MF310およびMF330のブロック図を示す。
[00354]さらに、本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は理解されよう。本明細書で開示された装置(たとえば、装置MF100、MF110、MF120、MF130、MF200、MF210、MF220、MF230、MF300、MF310、MF330、MF400、MF500、A100、A110、A120、A130、A200、A210、A220、A230、A300、A310、A330、およびA500の中のいずれか)の様々な実装形態の1つまたは複数の要素は、全体または一部が、マイクロプロセッサ、組込みプロセッサ、IPコア、デジタル信号プロセッサ、FPGA(フィールドプログラマブルゲートアレイ)、ASSP(特定用途向け標準製品)、およびASIC(特定用途向け集積回路)のような、論理要素(たとえば、プロセッサ2610)の1つまたは複数の固定アレイまたはプログラマブルアレイ上で実行されるように構成された命令の1つまたは複数のセットとして実装され得る。様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、上では概して、それらの機能に関して説明された。そのような機能が、ハードウェアとして実装されるかまたはプロセッサ実行可能命令として実装されるかは、具体的な適用例、およびシステム全体に課せられる設計制約に依存する。当業者は、説明されている機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
[00355]本明細書で開示された実施形態に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはそれら2つの組合せで具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD−ROM)、または当技術分野で知られている任意の他の形態の非一時的記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在し得る。ASICはコンピューティングデバイスまたはユーザ端末の中に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別のコンポーネントとして存在し得る。
[00356]開示された実施形態の上記の説明は、当業者が開示された実施形態を製作または使用することを可能にするために提供されている。これらの実施形態に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義されている原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示された実施形態に限定されることを意図されておらず、以下の特許請求の範囲によって定義される原理および新規な特徴と一致する可能な最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
画像検索の方法であって、
複数の選択されたオブジェクトを特定する情報を取得することと、
複数の幾何学的構成の候補のうちの1つを選択することと、
少なくとも1つのプロセッサによって、前記選択に応答して、複数のデジタル画像のなかから、前記選択された幾何学的構成の候補に従って並べられている前記複数の選択されたオブジェクトを示す少なくとも1つのデジタル画像を特定することと、
を備える方法。
[C2]
前記取得された情報は、前記複数の選択されたオブジェクトの各々に対して、前記オブジェクトと関連付けられるラベルを含み、
前記特定することは、前記複数のデジタル画像と関連付けられるメタデータ内で前記ラベルを探索することを含む、
C1に記載の画像検索の方法。
[C3]
前記特定することは、前記複数のデジタル画像と関連付けられるメタデータ内で、前記選択された幾何学的構成の候補と関連付けられるラベルを探索することを備える、C1に記載の画像検索の方法。
[C4]
前記少なくとも1つのデジタル画像は、第1のビデオファイルからの複数のフレームと、第2のビデオファイルからの複数のフレームとを含む、C1に記載の画像検索の方法。
[C5]
前記複数の選択されたオブジェクトを特定する情報を前記取得することは、(A)音声認識および(B)タッチスクリーンのうちの少なくとも1つを使用して実行される、C1に記載の画像検索の方法。
[C6]
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、
プロセッサによって実行されると、前記プロセッサに、
複数の選択されたオブジェクトを特定する情報を取得させ、
複数の幾何学的構成の候補のうちの1つを選択させ、
前記選択に応答して、複数のデジタル画像のなかから、前記選択された幾何学的構成の候補に従って並べられている前記複数の選択されたオブジェクトを示す少なくとも1つのデジタル画像を特定させる、
命令を記憶する非一時的コンピュータ可読媒体。
[C7]
前記取得された情報は、前記複数の選択されたオブジェクトの各々に対して、前記オブジェクトと関連付けられるラベルを含み、
前記媒体は、前記プロセッサによって実行されると、前記プロセッサに、前記複数のデジタル画像と関連付けられるメタデータ内で前記ラベルを探索させる命令を記憶する、
C6に記載の非一時的コンピュータ可読媒体。
[C8]
前記媒体は、前記プロセッサによって実行されると、前記プロセッサに、前記複数のデジタル画像と関連付けられるメタデータ内で、前記選択された幾何学的構成の候補と関連付けられるラベルを探索させる命令を記憶する、C6に記載の非一時的コンピュータ可読媒体。
[C9]
前記少なくとも1つのデジタル画像は、第1のビデオファイルからの複数のフレームと、第2のビデオファイルからの複数のフレームとを含む、C6に記載の非一時的コンピュータ可読媒体。
[C10]
前記複数の選択されたオブジェクトを特定する前記情報は、(A)音声認識および(B)タッチスクリーンのうちの少なくとも1つを使用して取得される、C6に記載の非一時的コンピュータ可読媒体。
[C11]
画像検索のための装置であって、
複数の選択されたオブジェクトを特定する情報を取得するための手段と、
複数の幾何学的構成の候補のうちの1つを選択するための手段と、
前記選択に応答して、複数のデジタル画像のなかから、前記選択された幾何学的構成の候補に従って並べられている前記複数の選択されたオブジェクトを示す少なくとも1つのデジタル画像を特定するための手段と、
を備える装置。
[C12]
前記取得された情報は、前記複数の選択されたオブジェクトの各々に対して、前記オブジェクトと関連付けられるラベルを含み、
前記装置は、前記複数のデジタル画像と関連付けられるメタデータ内で前記ラベルを探索するための手段を含む、C11に記載の装置。
[C13]
前記装置は、前記複数のデジタル画像と関連付けられるメタデータ内で、前記選択された幾何学的構成の候補と関連付けられるラベルを探索するための手段を備える、C11に記載の装置。
[C14]
前記少なくとも1つのデジタル画像は、第1のビデオファイルからの複数のフレームと、第2のビデオファイルからの複数のフレームとを含む、C11に記載の装置。
[C15]
前記複数の選択されたオブジェクトを特定する情報を取得するための前記手段は、(A)音声認識および(B)タッチスクリーンのうちの少なくとも1つを使用して前記情報を取得するように構成される、C11に記載の装置。
[C16]
画像検索のための装置であって、
(A)複数の選択されたオブジェクトを特定する情報と、(B)複数の幾何学的構成の候補のうちの1つの選択とを取得するように構成される判別器と、
前記選択に応答して、複数のデジタル画像のなかから、前記選択された幾何学的構成の候補に従って並べられている前記複数の選択されたオブジェクトを示す少なくとも1つのデジタル画像を特定するように構成される探索エンジンと、
を備える装置。
[C17]
前記取得された情報は、前記複数の選択されたオブジェクトの各々に対して、前記オブジェクトと関連付けられるラベルを含み、
前記探索エンジンは、前記複数のデジタル画像と関連付けられるメタデータ内で前記ラベルを探索するように構成される、C16に記載の装置。
[C18]
前記探索エンジンは、前記複数のデジタル画像と関連付けられるメタデータ内で、前記選択された幾何学的構成の候補と関連付けられるラベルを探索するように構成される、C16に記載の装置。
[C19]
前記少なくとも1つのデジタル画像は、第1のビデオファイルからの複数のフレームと、第2のビデオファイルからの複数のフレームとを含む、C16に記載の装置。
[C20]
前記判別器は、(A)音声認識および(B)タッチスクリーンのうちの少なくとも1つを使用して、前記複数の選択されたオブジェクトを特定する前記情報を取得するように構成される、C16に記載の装置。