(58)【調査した分野】(Int.Cl.,DB名)
前記プライマリビデオストリームの第1の複数のフレームまたは前記第1のビデオストリームの第2の複数のフレームの少なくとも一方の中で、前記第1のオブジェクトの動きを検出することと、
前記動きを検出したことに応答して、ビューの前記第1のフィールドの方向を変更することと、
をさらに備える、請求項1に記載のビデオ処理の方法。
ビューの前記第1のフィールドの前記方向を変更することは、前記第1のオブジェクトの前記動きに従うように前記方向を変更することを備える、請求項2に記載のビデオ処理の方法。
前記第1のビデオストリームを生成することは、前記プライマリビデオストリームの少なくとも1つの対応するフレームの一部分から前記第1のビデオストリームの各フレームを生成することを備える、請求項1に記載のビデオ処理の方法。
前記第1のビデオストリームの各フレームについて、前記フレーム内の前記第1のオブジェクトの第1の表現の重心の第1の座標位置と前記フレームの中心座標との間の第1の距離は、前記プライマリビデオストリームの対応するフレーム内の前記第1のオブジェクトの第2の表現の重心の第2の座標位置と前記対応するフレームの中心座標との間の第2の距離よりも小さい、請求項1に記載のビデオ処理の方法。
前記プライマリビデオストリームの第1のフレームにおいて、前記第1のオブジェクトは、前記第1のフレームの第1のフレーム端部に対して、前記第2のオブジェクトが前記第1のフレーム端部に対するよりも近いと決定することと、
前記第1のオブジェクトが前記第1のフレーム端部により近いと決定した後に、前記プライマリビデオストリームの第2のフレームにおいて、前記第2のオブジェクトは、前記第2のフレームの第2のフレーム端部に対して、前記第1のオブジェクトが前記第2のフレーム端部に対するよりも近いと決定することと、前記第2のフレーム端部は、前記第1のフレーム端部に対応する、
前記第2のオブジェクトが前記第2のフレーム端部により近いと決定したことに応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示し、前記第2のウィンドウ内に前記第1のビデオストリームを表示することと、
をさらに備える、請求項8に記載のビデオ処理の方法。
前記第1のオブジェクトはロボットオブジェクトであり、前記方法は、前記ロボットオブジェクトの動きを制御することをさらに備える、請求項1に記載のビデオ処理の方法。
前記第1のビデオストリームを生成するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記第1のビデオストリームの第1の複数のフレームの各々の中の前記第1のオブジェクトの表現のサイズを正規化させる命令を備える、請求項14に記載の非一時的コンピュータ可読媒体。
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内に前記第2のビデオストリームを、前記画面に表示するように構成される表示信号生成器と、
前記プライマリビデオストリームの第1のフレームにおいて、前記第1のオブジェクトは、前記第1のフレームの第1のフレーム端部に対して、前記第2のオブジェクトが前記第1のフレーム端部に対するよりも近いと決定し、
前記第1のオブジェクトが前記第1のフレーム端部により近いと前記決定した後に、前記プライマリビデオストリームの第2のフレームにおいて、前記第2のオブジェクトは、前記第2のフレームの第2のフレーム端部に対して、前記第1のオブジェクトが前記第2のフレーム端部に対するよりも近いと決定する
ように構成されるオブジェクトトラッカーと、
をさらに備え、
前記第2のフレーム端部は、前記第1のフレーム端部に対応し、前記表示信号生成器は、前記第1のウィンドウ内に前記第1のビデオストリームを表示した後に、前記第2のオブジェクトが前記第2のフレーム端部により近いと決定したことに応答して、前記第1のウィンドウ内に前記第2のビデオストリーム、および前記第2のウィンドウ内に前記第1のビデオストリームを表示するように構成される、請求項25に記載の装置。
前記ビデオストリーム生成器は、前記プライマリビデオストリームから、ビューの前記プライマリフィールドよりも狭いビューの二次的フィールドを有する表示ビデオストリームを生成するように構成され、
前記装置は、
第1のウィンドウ内に前記第1のビデオストリーム、第2のウィンドウ内に前記第2のビデオストリーム、および第3のウィンドウ内に前記表示ビデオストリームを、画面に表示するように構成される表示信号生成器と、
前記表示ビデオストリームのフレームにおいて、前記第1のオブジェクトまたは前記第2のオブジェクトのうちの少なくとも1つが前記フレームの端部に近いことを検出するように構成されるオブジェクトトラッカーと
をさらに備え、
前記ビデオストリーム生成器は、前記オブジェクトトラッカーが前記第1のオブジェクトまたは前記第2のオブジェクトが前記端部に近いことを検出したことに応答して、ビューの三次的フィールドを有するように前記表示ビデオストリームを変更するように構成され、ビューの前記三次的フィールドはビューの前記二次的フィールドよりも広角を有する、請求項25に記載の装置。
【発明を実施するための形態】
【0026】
[0082]ワイヤレス電話または他のモバイルデバイスは、カメラによってビデオストリームをキャプチャし、および/または、別のデバイスから、および/またはネットワークを介して、ビデオストリームを受信することができる。ビデオストリーム内のオブジェクトをトラッキングするための、新しい特徴および/または改善された特徴が望まれ得る。
【0027】
[0083]文脈によって明確に限定されない限り、「信号」という用語は、本明細書では、ワイヤ、バス、または他の伝送媒体上で表されるメモリ位置(またはメモリ位置のセット)の状態を含む、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「発生(generating)」という用語は、本明細書では、算出(computing)または別様の生成(producing)のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「計算(calculating)」という用語は、本明細書では、複数の値からの算出(computing)、評価、推定、および/または選択のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「取得(obtaining)」という用語は、計算(calculating)、導出、(たとえば、外部デバイスからの)受信、および/または(たとえば、記憶要素のアレイからの)検索のような、その通常の意味のいずれをも示すために使用される。文脈によって明確に限定されない限り、「選択(selecting)」という用語は、2つ以上のセットの少なくとも1つ、およびすべてよりも少数の識別、指示、適用、および/または使用のような、その通常の意味のいずれをも示すために使用される。「備える(comprising)」という用語は、本明細書と特許請求の範囲とにおいて使用される場合、他の要素または動作を除外するものではない。「に基づく」(「AはBに基づく」など)という用語は、(i)「から導出される」(たとえば、「BはAの前の形である」)、(ii)「少なくとも〜に基づく」(たとえば、「Aは少なくともBに基づく」)、および特定の文脈で適切な場合に、(iii)「に等しい」(たとえば、「AはBに等しい」)という場合を含む、その通常の意味のいずれをも示すために使用される。同様に、「に応答して」という用語は、「少なくとも〜に応答して」を含む、その通常の意味のいずれをも示すために使用される。
【0028】
[0084]別段規定されていない限り、特定の特徴を有する装置の動作のいずれの開示も、類似の特徴を有する方法を開示する(その逆も同様)ことが明確に意図され、特定の構成による装置の動作のいずれの開示も、類似の構成による方法を開示する(その逆も同様)ことが明確に意図される。「構成」という用語は、その具体的な文脈によって示されるように、方法、装置、および/またはシステムに関して使用され得る。「方法」、「処理」、「手順」、および「技法」という用語は、具体的な文脈によって別段に規定されていない限り、一般的、および互換的に使用される。「装置」および「デバイス」という用語も、具体的な文脈によって別段に規定されていない限り、一般的、および互換的に使用される。「要素」および「モジュール」という用語は、一般に、より大きな構成の一部分を示すために使用される。文脈によって明確に限定されない限り、「システム」という用語は、本明細書では、「共通の目的を果たすために相互作用する要素のグループ」を含む、その通常の意味のいずれをも示すために使用される。
【0029】
[0085]別段に規定されていない限り、「一連」という用語は、2つ以上の項目の順列を示すために使用される。定冠詞によって最初に導入されない限り、請求要素を修飾するのに使用される順序を示す用語(たとえば、「第1の」、「第2の」、「第3の」など)は、それ自体、別のものに対する請求要素の優先順位または順序を示しておらず、請求要素を、(順序を示す用語の使用を別にすれば)同じ名前を有する別の請求要素から区別しているだけである。文脈によって明確に限定されない限り、「複数」および「セット」という用語の各々は、本明細書では、1よりも大きい整数量を示すために使用される。
【0030】
[0086]
図1を参照すると、電子デバイス102を示すブロック図が示される。電子デバイス102はまた、ワイヤレス通信デバイス、モバイルデバイス、移動局、加入者局、クライアント、クライアント局、ユーザ機器(UE)、遠隔局、アクセス端末、モバイル端末、端末、ユーザ端末、加入者ユニットなどとも呼ばれ得る。電子デバイスの例は、ラップトップまたはデスクトップコンピュータ、携帯電話、スマートフォン、ワイヤレスモデム、電子リーダー、タブレットデバイス、ゲームシステムなどを含む。これらのデバイスのいくつかは、1つまたは複数の業界規格に従って動作し得る。
【0031】
[0087]スマートフォンまたはタブレットコンピュータのような電子デバイス102は、カメラを含み得る。カメラは、画像センサ114と、光学系118の視野内に位置するオブジェクトの画像を画像センサ114上に合焦させる光学系118(たとえば、レンズ)とを含み得る。電子デバイス102はまた、カメラソフトウェアアプリケーションと表示画面とを含み得る。カメラアプリケーションが動作しているとき、光学系118の視野内に位置するオブジェクトの画像は画像センサ114によって記録され得る。画像センサ114によって記録されている画像は、表示画面上に表示され得る。これらの画像は、任意の所与の瞬間において、光学系118の視野内に位置するオブジェクトが表示画面上に表示されるように、比較的高いフレームレートで高速に連続して表示され得る。実施形態はキャプチャされたフレーム(たとえば、ビデオフレーム)に関して説明されるが、本明細書で論じられる技法は、任意のデジタル画像に対して使用され得る。したがって、「フレーム」および「デジタル画像」という用語は、本明細書において互換的に使用され得る。
【0032】
[0088]カメラアプリケーションのユーザインターフェース120は、表示画面上に表示されている1つまたは複数のオブジェクトがトラッキングされることを可能にし得る。電子デバイス102のユーザは、トラッキングされるべきである(1つまたは複数の)オブジェクトを選択することを許可され得る。さらに、(1つまたは複数の)選択されたオブジェクトは、オブジェクトを後で検出するための基準として使用され得る。
【0033】
[0089]一構成では、表示画面は、たとえば、指、スタイラスまたは他のツールによる、物理的なタッチからの入力を受け取るタッチスクリーン116である。タッチスクリーン116は、トラッキングされるべきターゲットオブジェクトを定義するタッチ入力を受け取り得る。たとえば、電子デバイス102が、対象の動物を含む自然のシーンをキャプチャしている場合、ユーザは、必要な場合、その動物がトラッキングまたは検出されるべきであるという希望を示すバウンディングボックス(bounding box)をその動物の周りに描き得る。ターゲットオブジェクトは、任意の好適な方法で選択され得る。たとえば、トラッキング、検出、または両方が行われるべきであるターゲットオブジェクトを選択するために、顔認識、歩行者認識などが使用され得る。一構成では、複数のオブジェクトがトラッキングされ得る。ユーザインターフェース120は、たとえば、1つまたは複数のターゲットオブジェクトを選択する(すなわち、定義する)ために、ユーザがオブジェクトトラッキングおよび検出モジュール104と対話することを可能にし得る。タッチスクリーン116は、ビューファインダ131を含み得る。ビューファインダ131は、ビデオストリームまたはライブフィードを表示するタッチスクリーン116の部分を指し得る。たとえば、ビューファインダ131は、電子デバイス102上のカメラによって取得されたビューを表示することができる。
【0034】
[0090]電子デバイス102は、ビデオフレーム中の選択されたオブジェクトをトラッキングし、および/またはそのオブジェクトを検出するための、オブジェクトトラッキングおよび検出モジュール104を含み得る。オブジェクトトラッキングおよび検出モジュール104は、1つまたは複数のオブジェクトをトラッキングするための動きトラッカー106を含み得る。動きトラッカー106は、前のビデオフレームと現在のビデオフレームとの間でのターゲットオブジェクトの位置および/または位置の変化を推定するために、フレームごとに画像(たとえば、ビデオフレーム)上の点の動きをトラッキングするために、動きに基づき得る。
【0035】
[0091]オブジェクトトラッキングおよび検出モジュールはまた、ビデオフレーム中のオブジェクトを検出するためのオブジェクト検出器108を含み得る。オブジェクト検出器108は、現在のビデオフレームのすべてまたは一部分を、(たとえば、ビデオフレームのシーケンス中の)キャプチャされた前のビデオフレーム112の選択されたオブジェクトまたは部分と比較することによって、オブジェクトを検出するために、動きに基づくモデルではなく、オブジェクトモデルを使用し得る。オブジェクト検出器108は、ビデオフレーム内の複数のオブジェクトを検出するために使用され得る。
【0036】
[0092]オブジェクトトラッキングおよび検出モジュール104は、メモリバッファ110も含み得る。メモリバッファ110は、1つまたは複数のキャプチャされたフレームと、キャプチャされたビデオフレームと関連付けられるデータとを記憶し得る。一例では、メモリバッファ110は、前のキャプチャされたビデオフレーム112を記憶し得る。オブジェクトトラッキングおよび検出モジュール104は、動きに基づくトラッキングおよび/またはオブジェクト検出を実行する際に、キャプチャされた前のビデオフレーム112についての、メモリバッファ110から与えられたデータを使用し得る。ターゲットオブジェクトをより正確にトラッキングおよび/または検出するように動きに基づくトラッキングとオブジェクト検出とを調整するために、メモリバッファ110からのフィードバックを介して、データが動きトラッカー106またはオブジェクト検出器108に与えられ得る。たとえば、メモリバッファ110は、オブジェクトをトラッキングまたは検出するときにオブジェクトの位置とサイズとをより正確に特定するために使用され得る1つまたは複数のパラメータを動きトラッカー106およびオブジェクト検出器108に与えるために、位置とウィンドウサイズのデータを動きトラッカー106およびオブジェクト検出器108に与え得る。
【0037】
[0093]上で述べられたように、電子デバイス102は動きに基づくトラッキングを実行し得る。動きに基づくトラッキングは、様々な方法を使用して実行され得る。一例では、トラッキングはメジアンフロー方法によって実行され、その方法では、動きトラッカー106は、画像のペアI
t、I
t+1(たとえば、ビデオフレーム)とバウンディングボックスβ
tとを受け入れ、バウンディングボックスβ
t+1を出力する。点のセットがバウンディングボックスβ
t内の矩形格子上で初期設定されてよく、I
tとI
t+1との間の希薄な動きフローを生成するためにそれらの点がトラッキングされてよい。点予測の品質が推定されてよく、各点が誤差を割り当てられてよい。最悪の予測の一部分(たとえば、50%)はフィルタで除去されてよく、残りの予測は、バウンディングボックス全体の変位を推定するために使用される。動きトラッカー106は、電子デバイス102によってキャプチャされた各ビデオフレームに対する動きに基づくトラッキングを実行し得る。同様の方法において、動きに基づくトラッキングは、1つまたは複数の勾配(たとえば、x勾配およびy勾配)を計算すること、および時間勾配を計算するためにフレームのペア間の差を使用すること、および現在のビデオフレーム内のターゲットオブジェクトを正確にトラッキングするために複数の勾配値を使用することによって実行され得る。動きに基づくトラッキングに関するさらなる詳細が、以下で与えられる。
【0038】
[0094]動きに基づくトラッキングを実行するとき、動きトラッカー106は、動きトラッキング方法の計算または推定された精度に基づいてトラッキング信頼性値を決定し得る。いくつかの構成では、トラッキング信頼性値は、ターゲットオブジェクトが現在のビデオフレームまたはそのビデオフレームの定義されたウィンドウ内に入る可能性または確率に対応する、0から1の間の実数であり得る。トラッキング信頼性値は、トラッキング閾値と比較され得る。トラッキング信頼性値がトラッキング閾値よりも大きい場合、ターゲットオブジェクトが現在のビデオフレーム内で見出される可能性は高いことがある。代替的に、トラッキング信頼性値がトラッキング閾値以下である場合、ターゲットオブジェクトが現在のビデオフレーム内で見出される可能性は低いかまたは不確実であることがある。トラッキング信頼性値を決定するための様々な方法が使用され得る。一構成では、トラッキング信頼性値は、現在のビデオフレーム中のトラッキングされたウィンドウ(たとえば、トラッキングパッチウィンドウ)と、前にキャプチャされたビデオフレームからの前に記憶された画像パッチとの間の正規化相互相関(NCC:normalized cross correlation)を計算することによって決定される。トラッキング信頼性値を決定することに関するさらなる詳細が、以下で与えられる。
【0039】
[0095]電子デバイス102は、オブジェクト検出も実行し得る。オブジェクト検出は、様々な方法を使用して実行され得る。一構成では、オブジェクト検出はスライディングウィンドウ方法を使用して実行され、その方法では、ターゲットオブジェクトが現在のビデオフレーム中で、または現在のビデオフレームの特定のウィンドウもしくはウィンドウのサブセット内で見出されるかどうかを決定するために、ビデオフレーム内のウィンドウの複数のサブセットのコンテンツが調査される。すべての可能なウィンドウ位置およびサイズのすべてまたはサブセットが、ビデオフレーム中で探索され得る。たとえば、各ウィンドウはデータのピクセルに対応してよく、オブジェクト検出器108は、ターゲットオブジェクトが特定のウィンドウまたはサブウィンドウ内にある信頼性のレベル(たとえば、バイナリインジケータ)を決定するために、データのピクセルを使用して1つまたは複数の計算を実行することができる。1つまたは複数のウィンドウと関連付けられる信頼性のレベルに基づいて、検出器の信頼性値が現在のビデオフレームのために取得され得る。さらに、オブジェクト検出の精度または効率を増加させるために、追加の技法が使用され得る。これらの技法のいくつかが、以下で説明される。
【0040】
[0096]いくつかの構成では、動きトラッカー106およびオブジェクト検出器108は、並列にではなく順次的に動作し得る。たとえば、電子デバイス102は、選択されたオブジェクト(たとえば、ターゲットオブジェクト)の動きに基づくトラッキングを実行し、続いて、トラッキングされたパラメータに基づいて、選択されたオブジェクトのオブジェクト検出を実行し得る。一構成では、電子デバイス102は、現在のビデオフレームに対する動きに基づくトラッキングを実行し得る。電子デバイス102は次いで、トラッキングされたパラメータに基づいて、現在のフレームに対するオブジェクト検出を実行し得る。一構成では、トラッキングされたパラメータは、信頼性値と閾値との比較に基づき得る。たとえば、トラッキング信頼性値がトラッキング閾値を下回る場合、電子デバイス102はオブジェクト検出を実行し得る。代替的に、トラッキング信頼性値がトラッキング閾値を上回る場合、電子デバイス102は、現在のビデオフレームのためのオブジェクト検出をスキップし、現在のビデオフレームの動きトラッキング結果に基づいて次のビデオフレームに対する動きに基づくトラッキングを実行し続け得る。言い換えれば、オブジェクト検出は、動きに基づくトラッキングがあまり良好でなく、たとえば、トラッキング信頼性値がトラッキング閾値を下回るときのみ、実行され得る。オブジェクト検出が実行されるかどうかおよび/またはどのように実行されるかを考慮するとき、他のトラッキングされたパラメータが使用され得る。トラッキングされたパラメータの例は、ターゲットオブジェクトの領域、ウィンドウ位置、ウィンドウサイズ、スケールレベル、ターゲットサイズ、トラッキングおよび/もしくは検出信頼性値、または、ターゲットオブジェクトの効率的なトラッキングおよび/または検出を支援するために使用され得る他のパラメータを含み得る。
【0041】
[0097]トラッキングされたパラメータに基づいて動きに基づくトラッキングとオブジェクト検出とを順次的に実行することは、電子デバイス102が、大量の計算を実行することなくビデオフレーム内のターゲットオブジェクトをトラッキングおよび/または検出することを可能にし得る。具体的には、動きに基づくトラッキングはオブジェクト検出よりも計算集約的でないことがあるので、電子デバイス102はオブジェクト検出の実行をスキップすることができ、ここで、現在のビデオフレーム内のターゲットオブジェクトを正確にトラッキングするために動きに基づくトラッキングが使用され得る。たとえば、トラッキング信頼性値が特定の目標閾値を超えると電子デバイス102が決定する場合、電子デバイス102は、現在のビデオフレーム内のターゲットオブジェクトの位置または存在を正確に決定するために、現在のビデオフレームに対してオブジェクト検出が必要とされないことを決定し得る。さらに、オブジェクト検出は多くの場合有益であり得るので、電子デバイス102は、トラッキング閾値との比較に基づく、動きに基づくトラッキングが不十分である場合、ターゲットオブジェクトをより正確に検出するために、またはオブジェクト検出を実行するために、オブジェクト検出が使用され得る場合を決定し得る。
【0042】
[0098]いくつかの構成では、現在のビデオフレームに対するオブジェクト検出をスキップするのではなく、メモリバッファ110によって与えられる動きに基づくトラッキングの結果および/または追加の情報が、オブジェクト検出を実行するプロセスを限定または調整するために使用され得る。たとえば、ターゲットオブジェクトが、動きに基づくトラッキング方法を使用して正確にトラッキングされ得ない場合、電子デバイス102は、依然として、動きに基づくトラッキングを介して与えられたパラメータがない場合よりも少ない計算能力を使用してオブジェクトをより正確に検出するためにオブジェクト検出中に使用され得る、ターゲットオブジェクトと関連付けられる位置、ウィンドウスケールまたは他のトラッキングされたパラメータについての情報を推定または取得し得る。したがって、動きに基づくトラッキングが、トラッキング閾値を超えるトラッキング信頼性値を与えない場合でも、動きに基づくトラッキングの結果は、その後にオブジェクト検出を実行するときに使用され得る。
【0043】
[0099]電子デバイス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全体をカバーすることができる。
【0044】
[00100]電子デバイス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と比較され得る。
【0045】
[00101]ビデオ処理モジュール137はまた、画面区分147の機能を含み得る。たとえば、画面区分147は、
図11、
図13、
図15、および
図21に関して説明されるように、第1のトラッキングエリア133および第2のトラッキングエリア135と関連付けられる個々のビデオストリームを表示するために、ビューファインダ132を複数のウィンドウへと区分することができる。ビデオ処理モジュール137はまた、幾何学的配置トラッキング149の機能を含み得る。たとえば、幾何学的配置トラッキング149の機能は、
図17および
図18に関して説明されるように、第1のトラッキングエリア133と第2のトラッキングエリア135との間の幾何学的配置をトラッキングすることができる。幾何学的配置は、ビューファインダ131上に表示され得る。ビデオ処理モジュール137はまた、クラスタ形成151の機能を含み得る。クラスタ形成151の機能は、幾何学的配置と関連付けられる少なくとも1つのパラメータ(たとえば、重心)に基づいてクラスタを生成することができる。たとえば、各クラスタは、
図17および
図18に関して説明されるように、第1のトラッキングエリア133と第2のトラッキングエリア135との間で実質的に同様の幾何学的配置を有するビデオフレームを含み得る。
【0046】
[00102]
図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の構成であり得る。
【0047】
[00103]動きトラッカー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に記憶され得る。
【0048】
[00104]動きトラッカー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の間の)実数である。
【0049】
[00105]オブジェクト検出器208は、現在のビデオフレーム(N)224上のオブジェクトを検出するために使用され得る。たとえば、オブジェクト検出器208は、ビデオフレームのシーケンス中の現在のビデオフレーム(N)224を受信し得る。オブジェクト検出器208は、トラッキングされたパラメータに基づいて現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。トラッキングされたパラメータは、ターゲットオブジェクトが正確にトラッキングされている可能性に対応するトラッキング信頼性値228を含み得る。より具体的には、トラッキングされたパラメータは、トラッキング信頼性値228とトラッキング閾値250との比較を含み得る。トラッキングされたパラメータは、メモリバッファ210から与えられた情報も含み得る。オブジェクトを検出するときに使用され得るトラッキングされたパラメータのいくつかの例は、領域、ウィンドウ位置、ウィンドウサイズ、またはオブジェクト検出を実行するときにパラメータとしてオブジェクト検出器208によって使用され得る他の情報を含む。
【0050】
[00106]オブジェクト検出器208は、スキャナロケータ230を含み得る。スキャナロケータ230は、ウィンドウ位置選択器232とランダマイザ234とを含み得る。ウィンドウ位置選択器232は、ビデオフレーム内の複数のウィンドウを選択し得る。たとえば、ビデオフレームは、関連する位置とサイズとを各々が有する、複数のウィンドウを含み得る。一構成では、各ビデオフレームは、ビデオフレーム中の総ピクセルの一部分を各々が含む、複数の(たとえば、約10,000個の)重複するウィンドウに分割される。代替的に、任意の好適な数のウィンドウがあってよく、それらは重複しないことがある。スキャナロケータ230内のウィンドウ位置選択器232は、ターゲットオブジェクトを識別することをその中で試みる、ウィンドウの位置を選択し得る。ランダマイザ234は、オブジェクトを検出するために異なるサイズおよび位置のウィンドウをランダムに選択し得る。いくつかの構成では、ランダマイザ234は、ビデオフレーム内のウィンドウをランダムに選択する。代替的に、ランダマイザ234は、1つまたは複数の要因に基づいてウィンドウをより正確に選択し得る。たとえば、ランダマイザ234は、オブジェクトが大抵位置する領域、サイズまたは概略的な位置に基づいて、ウィンドウの選択を限定し得る。この情報は、メモリバッファ210を介して取得されてよく、または、完全に依拠するのに十分正確ではないが、オブジェクト検出を実行するときに役立つ情報を与え得る、動きに基づくトラッキングを介して取得され得る。したがって、ランダマイザ234は、探索すべき複数のウィンドウをランダムに選択し得るが、ウィンドウの選択は、オブジェクト検出器208に与えられた情報に基づいて限定され、したがって完全にランダムではないことがある。
【0051】
[00107]オブジェクト検出器208は、あるサイズのウィンドウを引き出すかまたは選択するために使用され得る、スキャナスケーラ236も含み得る。ウィンドウサイズは、オブジェクトを検出するとき、または画像が特定のウィンドウ内にあるかどうかを検出するためにウィンドウの選択を元の画像と比較するとき、ウィンドウのサイズを狭くするためにスキャナロケータ230によって使用され得る。スキャナスケーラ236は、オブジェクトを定義するときに初めにあるサイズまたはスケールレベルの1つまたは複数のウィンドウを選択し、または代替的に、メモリバッファ210から与えられた情報に基づいて、あるサイズまたはスケールレベルの1つまたは複数のウィンドウを引き出し得る。
【0052】
[00108]分類器238は、ターゲットオブジェクトの一部またはすべてが特定のウィンドウ中で見出されるどうかを決定するために使用され得る。いくつかの構成では、分類器238は、ターゲットオブジェクトが特定のウィンドウまたはサブウィンドウ内で検出されるかどうかを示すために、各ウィンドウについてバイナリ値を生成し得る。この分類(たとえば、バイナリ分類)は、オブジェクト検出器208によって探索された各ウィンドウに対して実行され得る。具体的には、分類器238は、オブジェクトが検出される各ウィンドウに対してバイナリ1を生成し、オブジェクトが検出されない各ウィンドウに対してバイナリ0を生成し得る。1と0の数または組合せに基づいて、オブジェクト検出器208は、ターゲットオブジェクトが現在のビデオフレーム(N)224内に存在する可能性を示す検出信頼性値240を決定し得る。いくつかの構成では、検出信頼性値240は、オブジェクトが正確に検出された百分率または確率を示す0から1の間の実数である。
【0053】
[00109]オブジェクト検出器208は、領域、ターゲットサイズ、ウィンドウサイズ、スケールレベル、ウィンドウ位置、および1つまたは複数の信頼性値を含む、様々なトラッキングされたパラメータに従ってオブジェクト検出を実行し得る。ビデオフレームのウィンドウまたはウィンドウのサブセットが探索され、オブジェクト検出器208が、各々の探索されたウィンドウに対するバイナリ値を取得すると、オブジェクト検出器208は、最高の信頼性を有する現在のビデオフレーム上のウィンドウサイズならびに位置または領域を決定し得る。この位置およびウィンドウサイズは、ターゲットオブジェクトをより正確にトラッキングおよび/または検出するために後のトラッキングおよび検出において使用され得る。
【0054】
[00110]様々な技法が、ターゲットオブジェクトを検出する際にオブジェクト検出器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よりも少数のリソースを使用し得る。
【0055】
[00111]本明細書で説明される技法は、各位置(location)に対してウィンドウサイズのサブセットを探索し得る。各ウィンドウサイズは、本明細書ではスケールレベルと呼ばれることがあり、各スケールレベルは特定のウィンドウサイズに対応する。たとえば、20個の可能なスケールレベルがあり得る。すべての20個のスケールレベルを探索するのではなく、スケールレベルまたはウィンドウサイズのサブセットが各ウィンドウ位置において探索され得る。
【0056】
[00112]本明細書で説明される技法は、探索されるウィンドウ位置およびサイズを調整するためにメモリバッファ210からのフィードバックも使用し得る。言い換えれば、その中でターゲットオブジェクトが正常に検出および/またはトラッキングされた、最後のキャプチャされたビデオフレームの位置およびサイズが、現在のビデオフレーム(N)224を探索するための開始点として使用され得る。たとえば、ターゲットオブジェクトが最近のビデオフレーム中で検出され、トラッキングされた(すなわち、最近のキャプチャされたビデオフレームのための検出およびトラッキング信頼性値256が検出およびトラッキング閾値を上回る)場合、スキャナロケータは、最近のフレームと関連付けられる位置およびサイズにおいて、現在のキャプチャされたフレームを探索し始め得る。たとえば、ターゲットオブジェクトが、光学系の視野(view)外に移動する場合、またはある距離において消える場合、ターゲットオブジェクトは、ターゲットオブジェクトが光学系の視野から出たとき、またはある距離において消えたときと同じサイズで再び現れる可能性が高いことがある。したがって、あるサイズまたはある範囲のサイズが、オブジェクト検出を実行するときに後のビデオフレーム中のターゲットオブジェクトを検出するために予測され得る。
【0057】
[00113]キャプチャされたビデオフレーム(N)224中で探索されるウィンドウ位置およびウィンドウサイズの探索範囲が、最近のビデオフレーム(たとえば、前のビデオフレーム(N−1)222)中のターゲットオブジェクトと関連付けられるウィンドウ位置およびウィンドウサイズと同様のものに限定され得る。本明細書で使用される「探索範囲」という用語は、ビデオフレーム中のターゲットオブジェクトを検出および/またはトラッキングするときに利用され得る候補ウィンドウ位置または候補ウィンドウサイズ(または両方)のセットを指す。たとえば、探索されるウィンドウ位置のサブセットは、ターゲットオブジェクトが最近のビデオフレーム中のどこで見出されたかに基づいて現在のビデオフレーム(N)224の一部分、たとえば、現在のビデオフレーム(N)224の4分の1または半分のうちの1つの中から選択され得る。言い換えれば、探索空間は、ターゲットオブジェクトが最後にトラッキングまたは検出されたところの近くに限定され得る。同様に、各ウィンドウ位置のために探索されるフレームのサイズは、ターゲットにされたオブジェクトが見出された、最近のビデオフレーム中のウィンドウのサイズに基づいて限定され得る。たとえば、オブジェクトが、8というスケールレベルを有するウィンドウを使用して最近のフレーム中で検出された場合、スキャナスケーラ236は、8プラスまたはマイナス3という、現在のビデオフレーム(N)224のためのウィンドウスケールレベル、すなわち、スケールレベル5〜11のみを選択し得る。これはさらに、低い確率の探索をなくし、オブジェクト検出の効率を増加させ得る。代替的に、最近の(非現在の)ビデオフレームがターゲットオブジェクトを検出しなかった(すなわち、最近のビデオフレームのための検出およびトラッキング信頼性値256が検出およびトラッキング閾値を下回る)場合、オブジェクト検出器208は、探索される探索空間(ウィンドウ位置)を拡大することができ、たとえば、画像のより広い範囲または画像全体が探索の対象になり得る。
【0058】
[00114]オブジェクトトラッキングおよび検出モジュール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からのトラッキング結果(たとえば、バウンディングボックス)を使用し得る。
【0059】
[00115]メモリバッファ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に対する動きに基づくトラッキングおよび/または検出を実行し得る。さらに、動きに基づくトラッキングおよびオブジェクト検出は、複数のビデオフレームのシーケンス中の各ビデオフレームに対して実行され得る。
【0060】
[00116]動きに基づくトラッキングおよびオブジェクト検出を実行することは、動きに基づくトラッキングの後に、トラッキングされたパラメータに基づくオブジェクト検出を順次的に実行することを含み得る。特に、本システムおよび方法は、2ステップのトラッキングおよび検出手法を実施し得る。動きに基づくトラッキングが、使用されるオブジェクト検出としての実際のオブジェクト識別ではなく、シーンの相対的な動きに基づくので、動きに基づくトラッキングは、電子デバイスにおいて、オブジェクト検出を実行することほどリソース集約的でないことがある。したがって、オブジェクト検出器208の代わりに動きトラッカー206を使用することがより効率的であることがあり、ここで、ターゲットオブジェクトは、オブジェクト検出を実行することもなく、正確にトラッキングされ得る。
【0061】
[00117]したがって、オブジェクト検出器208と並列に動きトラッカー206を使用するのではなく、オブジェクトトラッキングおよび検出モジュール204は、動きトラッカー206が不十分である場合にオブジェクト検出器208を使用するにすぎず、すなわち、動きトラッキングおよびオブジェクト検出は(実行されるとしても)並列にではなく順次的に実行される。トラッキングが実行される各ビデオフレームに対して、動きトラッカー206は、ターゲットオブジェクトが現在のビデオフレーム(N)224中にある可能性を示す0から1の間の実数であり得る、トラッキング信頼性値228を生成し得る。
【0062】
[00118]2ステップのトラッキングおよび検出手法の一構成では、動きトラッカー206は、最初に現在のビデオフレーム(N)224に対する動きに基づくトラッキングを実行し得る。動きトラッカー206は、動きに基づくトラッキングのプロセスに基づいてトラッキング信頼性値228を決定し得る。トラッキング信頼性値228とメモリバッファ210によって与えられたトラッキング閾値250とを使用して、オブジェクトトラッキングおよび検出モジュール204内の回路(たとえば、信頼性レベル比較器)は、トラッキング信頼性値228がトラッキング閾値250を超えるかどうかを決定し得る(258)。トラッキング信頼性値228がトラッキング閾値250よりも大きい場合、オブジェクトトラッキングおよび検出モジュール204は、オブジェクト検出の実行をスキップし、出力262を生成するために融合モジュール260にトラッキング結果を与え得る。出力262は、ターゲットオブジェクトが現在のビデオフレーム(N)224内にあるという指示を含み得る。さらに、出力262は、ターゲットオブジェクトについての追加の情報を含み得る。
【0063】
[00119]トラッキング信頼性値228がトラッキング閾値250を超えない場合、オブジェクト検出器208はその後、現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。オブジェクト検出は、現在のビデオフレーム(N)224内のウィンドウのすべてまたはサブセットに対して実行され得る。オブジェクト検出器208はまた、動きに基づくトラッキングの結果および/またはメモリバッファ210から与えられた情報に基づいて、ウィンドウのサブセット、ウィンドウサイズ、または他の検出基準を選択し得る。オブジェクト検出は、オブジェクト検出器208に与えられた1つまたは複数のトラッキングされたパラメータに基づいて、幾分ロバストなプロセスを使用して実行され得る。オブジェクト検出器208は、検出信頼性値240を決定し、検出信頼性値240を検出閾値252と比較し得る。検出信頼性値240が検出閾値252を上回る場合、オブジェクト検出器208は、出力262を生成するために融合モジュール260に検出結果を与え得る。出力262は、ターゲットオブジェクトが現在のビデオフレーム(N)224内にあるという指示を含み、および/または検出されたオブジェクトについての追加の情報を含み得る。
【0064】
[00120]代替的に、検出信頼性値240が検出閾値252以下である場合、オブジェクト検出器208は、現在のビデオフレーム(N)224内のより多数のウィンドウを探索することのような、よりロバストな方法を使用してオブジェクト検出を再び実行し得る。オブジェクト検出器208は、満足な検出信頼性値240が取得されるまで、オブジェクト検出のプロセスを繰り返し得る。満足な検出信頼性値240が取得され、その結果、現在のビデオフレーム内のターゲットオブジェクトが識別されると、オブジェクトトラッキングおよび検出モジュール204が、次のビデオフレームに対するトラッキングおよび検出を実行するために使用され得る。
【0065】
[00121]
図2Bを参照すると、オブジェクトトラッキングおよび検出モジュール204内のコンポーネントを実装するプロセッサ264の特定の例示的な実施形態が示されている。
図2Aに示されるように、オブジェクトトラッキングおよび検出モジュール204は、プロセッサ264によって実装され得る。異なるプロセッサが、異なるコンポーネントを実装するために使用され得る(たとえば、あるプロセッサは動きトラッカー206を実装することができ、別のプロセッサはオブジェクト検出器208を実装するために使用されてよく、また別のプロセッサはメモリバッファ210を実装するために使用されてよい)。
【0066】
[00122]
図3を参照すると、動きに基づくトラッキングとオブジェクト検出とを実行するための方法300の特定の例示的な実施形態のフローチャートが示されている。方法300は、電子デバイス102、たとえば、オブジェクトトラッキングおよび検出モジュール104によって実装され得る。電子デバイス102は、前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224とを比較することによって、現在のビデオフレーム(N)224のための動きに基づくトラッキングを実行することができる(302)。オブジェクトをトラッキングすることは、画像のペア間で点をトラッキングすることによってメジアンフロー方法を使用して実行され得る。動きに基づくトラッキングの他の方法も使用され得る。加えて、動きに基づくトラッキングは、メモリバッファ110を介して与えられたキャプチャされた前のビデオフレーム112についての情報を使用して現在のビデオフレーム(N)224のために実行され得る。
【0067】
[00123]電子デバイス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を取得するために、異なるロバスト性とともに複数回実行され得る。
【0068】
[00124]
図4を参照すると、動きに基づくトラッキングを実行するための方法400の特定の例示的な実施形態のフローチャートが示されている。方法400は、電子デバイス102、たとえば、オブジェクトトラッキングおよび検出モジュール104によって実装され得る。電子デバイス102は、バウンディングボックスを使用してターゲットオブジェクトを識別することができる(402)。オブジェクトを識別すること(402)は、タッチスクリーン116、または対象のオブジェクトがそれにより選択される他の入力方法を使用して、手動で実行され得る。複数のオブジェクトが、同様の方法で識別され得る。さらに、トラッキングされるべきオブジェクトを識別するために、他の入力方法が使用され得る。一例では、オブジェクトは、ターゲットオブジェクトの周りにバウンディングボックスを手動で描くことによって識別される。
【0069】
[00125]電子デバイス102は、バウンディングボックス内の格子(grid)上に点を初期設定することができる(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は、範囲外の点の予測をフィルタで除去することができる(410)。たとえば、電子デバイスは、最悪の予測の50%をフィルタで除去し得る。残りの予測は、バウンディングボックスの変位を推定するために使用され得る。
【0070】
[00126]電子デバイス102は、バウンディングボックスを更新することができる(412)。バウンディングボックスを更新すること(412)は、更新されたバウンディングボックスが次のビデオフレームのための新しいバウンディングボックスになるように、実行され得る。動きに基づくトラッキングのプロセスは次いで、次のビデオフレームのために繰り返されてよく、または、トラッキング信頼性値228がトラッキング閾値250以下である場合、動きに基づくトラッキングのプロセスは、ターゲットオブジェクトが正確にトラッキングされ得るまで、次のビデオフレームに対しては中止され得る。いくつかの構成では、現在のビデオフレーム(N)224のための動きに基づくトラッキングが満足な結果を与えない場合、電子デバイス102は、ターゲットオブジェクトを位置特定する際に信頼性のより高いレベルを取得するために現在のビデオフレーム(N)224に対するオブジェクト検出を実行し得る。いくつかの構成では、動きに基づくトラッキングが満足な結果を生成することができない場合(たとえば、ターゲットオブジェクトがビデオフレームの範囲外に移動したとき)、オブジェクト検出は、ターゲットオブジェクトが検出されるまで、任意の後のビデオフレームに対して実行され得る。
【0071】
[00127]
図5を参照すると、前方後方(forward-backward)誤差に基づいて動きに基づくトラッキングにおけるトラッキング誤差を推定するための方法500の特定の例示的な実施形態のフローチャートが示されている。方法500は、電子デバイス102(たとえば、オブジェクトトラッキングおよび検出モジュール104)によって実施され得る。いくつかの構成では、電子デバイス102は、トラッキングされたウィンドウ間の正規化相互相関(NCC)を計算し得る。正規化相互相関(NCC)は、トラッキング信頼性値228を決定するために使用され得る。電子デバイス102はまた、正規化相互相関(NCC)を補足する様々なトラッキング誤差推定技法(たとえば、前方後方誤差、2乗差分和)を使用し得る。前方後方誤差推定を使用する例では、電子デバイス102は、前方軌道を決定するために前のビデオフレーム(N−1)222と現在のビデオフレーム(N)224との間で前方トラッキングを実行することができる(502)。前方トラッキングは、k個のステップ前方の画像をトラッキングすることを含み得る。得られた前方軌道(forward trajectory)は(x
t,x
t+1,...,x
t+k)に等しくてよく、ただし、x
tは時間的な点位置であり、kは画像のシーケンスの長さを示す。電子デバイス102は、後方軌道(backward trajectory)を決定するために現在のビデオフレーム(N)224と前のビデオフレーム(N−1)222との間で後方トラッキングを実行することができる(504)。得られる後方軌道は、
【0075】
[00128]電子デバイス102は、前方軌道と後方軌道との間の前方後方誤差を決定することができる(506)。前方後方誤差は、前方軌道と後方軌道との間の距離として定義され得る。さらに、様々な距離が軌道比較のために定義され得る。一構成では、検証軌道の始点と終点との間のユークリッド距離が、前方後方誤差を決定するときに使用され得る。一構成では、前方後方誤差は、トラッキング信頼性値228を決定するために使用され得る、トラッキング誤差として使用され得る。
【0076】
[00129]
図6を参照すると、オブジェクト検出を実行するための方法600の特定の例示的な実施形態のフローチャートが示されている。方法600は、電子デバイス102(たとえば、オブジェクトトラッキングおよび検出モジュール104)によって実施され得る。電子デバイス102は、現在のビデオフレーム(N)224中のウィンドウ位置およびサイズのサブセットを探索することによって、現在のビデオフレーム(N)224に対するオブジェクト検出と動きに基づくトラッキングとを実行することができる(602)。
【0077】
[00130]電子デバイス102は、検出およびトラッキング信頼性値256を決定することができる(604)。検出およびトラッキング信頼性値256は、ターゲットオブジェクトが現在のビデオフレーム(N)224の中で、または特定のウィンドウ内で見出されるかどうかの、信頼性のレベルを与え得る。電子デバイス102は、検出および信頼性値256が検出およびトラッキング閾値254よりも大きいかどうかも決定することができる(606)。検出および信頼性値256が検出およびトラッキング閾値254よりも大きい場合、電子デバイス102は、次のビデオフレームにおけるウィンドウとサイズのサブセット(たとえば、同じサブセット)を使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(608)。代替的に、検出および信頼性値256が検出およびトラッキング閾値254よりも小さい場合、電子デバイス102は、次のビデオフレームにおけるウィンドウ位置およびサイズのより大きいサブセットを使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(610)。いくつかの構成では、信頼性値256が検出およびトラッキング閾値254よりも小さい場合、電子デバイス102は、次のビデオフレームの探索空間全体および/またはすべてのウィンドウを使用して、次のビデオフレームに対するオブジェクト検出を実行することができる(610)。
【0078】
[00131]
図7を参照すると、異なるウィンドウサイズ766を有する画像ウィンドウ700の特定の実施形態が示されている。具体的には、
図7は、10個の可能なウィンドウサイズ766a〜jのセットを示している。各ウィンドウサイズ766は、スケールレベル(たとえば、1〜10)に対応し得る。本明細書では矩形として示されているが、探索されるウィンドウは、任意の形状、たとえば、正方形、矩形、円形、楕円、ユーザ定義されたものなどであり得る。さらに、任意の数、たとえば、5個、15個、20個、30個などのウィンドウサイズ766またはスケールレベルが利用可能であり得る。
【0079】
[00132]探索範囲は、特定の位置に対して使用されるウィンドウサイズのサブセットによって示されてよく、たとえば、現在のビデオフレーム(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は、サイズレベルのサブセットを使用することによって探索範囲を限定しないことがある。
【0080】
[00133]
図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に対応し、それらと同様の機能を有し得る。
【0081】
[00134]オブジェクトトラッキングおよび検出モジュール804は、ターゲットの動きおよびトラッキングエラーによるジッタの影響を低減するために使用される平滑化モジュール861を含み得る。言い換えれば、平滑化モジュール861は、トラッキング結果を平滑化し、探索ウィンドウが、位置(x,y)844とサイズ(幅、高さ)846の両方においてより滑らかな軌道を有するようにする。平滑化モジュール861は、単純な移動平均(MA)フィルタまたは自動回帰(AR)フィルタであり得る。位置844に対する平滑化の程度およびサイズ846に対する平滑化の程度は異なり得る。カルマンフィルタのような予測フィルタも、位置844の平滑化に好適であり得る。したがって、平滑化モジュール861は、平滑化されていない位置863と平滑化されていないサイズ865とを入力として受け取り、平滑化された位置867と平滑化されたサイズ869とを出力し得る。
【0082】
[00135]
図9を参照すると、平滑化モジュール961の特定の例示的な実施形態が示されている。平滑化モジュール961は、ターゲットの動きおよびトラッキングエラーによるジッタの影響を低減するために使用されてよく、すなわち、したがって、トラッキング結果(バウンディングボックス)は、位置(x,y)とサイズ(幅、高さ)の両方においてより滑らかな軌道を有する。一構成では、位置平滑化フィルタ971およびサイズ平滑化フィルタ973は、平滑化されていない位置963と平滑化されていないサイズ965とを入力として受け取り、平滑化された位置967と平滑化されたサイズ969とを出力するために、自動回帰(AR)モデルを使用して実装される。
【0083】
[00136]自動回帰(AR)モデルでは、Xは、平滑化されるべき変数であり、位置またはサイズのいずれかであると仮定する。さらに、X’をオブジェクトトラッカーによるXの出力とする。この構成では、時間tにおけるXの平滑化されたフィルタリングX
tが、式(1)に従って表され得る。
X
t=W*X’
t+(1−W)*X
t-1 (1)
ここで、X’
tは、時間tにおけるXのトラッカー出力であり、X
t-1は、時間t−1におけるXの平滑化された結果であり、W(0≦W≦1)は、平滑化の効果を制御する平滑化重みである。たとえば、X’
tは、現在のビデオフレーム(N)224のために選択されたウィンドウ位置またはウィンドウサイズであってよく、X
t-1は、前のビデオフレーム(N−1)222のために使用されたウィンドウ位置またはウィンドウサイズであってよい。
【0084】
[00137]異なる平滑化重みWが、位置平滑化フィルタ971およびサイズ平滑化フィルタ973のために使用され得る。たとえば、一実装形態では、ウィンドウ位置に対しては平滑化効果がより少ないが、ウィンドウサイズに対して平滑化効果がより強いように、W
location=0.8およびW
size=0.4である。平滑化重みのこの選択は、より少ないトラッキング遅延とより少ないジッタの両方もたらす。
【0085】
[00138]平滑化重みのその選択はまた、検出およびトラッキング信頼性値856がある閾値(たとえば、検出およびトラッキング閾値854)を下回るときに低減され得る。これは、潜在的トラッキングまたは検出誤差が高いとき、より強いフィルタリングを引き起こし得る。たとえば、低いトラッキングの信頼性に応答して(たとえば、検出およびトラッキング信頼性値856が検出およびトラッキング閾値854を下回る)、位置のための平滑化重みおよびサイズのための平滑化重みは、それぞれW
location=0.65およびW
size=0.2に設定され得る。言い換えれば、重みの一方または両方が下げられてよく、これにより、ウィンドウ位置およびサイズ選択は、現在のビデオフレームのウィンドウ位置およびサイズよりも、前のビデオフレームのウィンドウ位置およびサイズにより大きく依存するようになり得る。
【0086】
[00139]重み付けは、検出およびトラッキング信頼性値856ではなく、トラッキング信頼性値828または検出信頼性値840に基づき得る。たとえば、平滑化重みW
locationおよびW
sizeは、トラッキング信頼性値828がトラッキング閾値850を下回ったことに応答して下げられてよく、すなわち、より強いフィルタリングが、不十分な動きトラッキングに応答して使用されてよい。代替的に、平滑化重みは、検出信頼性値840が検出閾値852を下回ったことに応答して下げられてよく、すなわち、より強いフィルタリングが、不十分なオブジェクト検出に応答して使用されてよい。
【0087】
[00140]別の構成では、カルマンフィルタリングが、ウィンドウ位置を平滑化するために使用され得る。そのような構成では、フィルタリングは式(2)〜(7)に従って定義され得る。
x
k=F
kx
k-1+w
k (2)
z
k=Hx
k-1+v
k (3)
ここで、x
k-1は時間k−1における前の状態であり、x
kは
【0089】
によって定義される現在の状態であり、(x,y)はバウンディングボックスの中心の位置であり、
【0091】
は、各方向における速度である。さらに、状態遷移モデルF
k、および観測モデルHは、それぞれ式(4)〜(5)によって定義され得る。
【0093】
ここで、Δtは調節可能なパラメータである。加えて、w
kは、以下の式(6)に従った共分散Qを有するゼロ平均多変量正規分布(zero mean multivariate normal distribution)から導出されると考えられるプロセス雑音である(すなわち、w
k〜N(0,Q))。
【0095】
ここで、σ
1は調節可能なパラメータである。同様に、v
kは、以下の式(7)に従った共分散Rを有するゼロ平均ガウスホワイトノイズ(zero mean Gaussian white noise)であると考えられる観測雑音である(すなわち、v
k〜N(0,R))。
【0097】
ここで、σ
2は調節可能なパラメータである。
【0098】
[00141]
図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)。
【0099】
[00142]撮影されたシーンの文脈では、「オブジェクト」という用語は、シーン内の物理的な物体を指す。ビデオストリームの文脈では、「オブジェクト」という用語は、ビデオストリーム内での物体の表現(たとえば、ビデオストリームのフレーム中の物体の画像)を指す。本明細書で使用される「モバイルデバイス」という用語は、次のフォームファクタ、すなわち、携帯可能(たとえば、スマートフォン)、運転可能(たとえば、車両またはロボット)、装着可能(たとえば、衣服またはアクセサリ)、および飛行可能(たとえば、ドローン)のいずれかのデバイスを含む。モバイルデバイスは、1つもしくは複数の画面(たとえば、タッチスクリーン)および/または1つもしくは複数の画像キャプチャデバイス(たとえば、カメラ)を含み得る。
【0100】
[00143]ビューの単一の光学的なフィールドから、ビューの複数の異なるフィールドを取得するのが望ましいことがある。そのような能力は、1つのカメラによってマルチカメラ効果を得るために使用され得る。たとえば、そのような能力は、1つだけのカメラによる、シーンの2つの異なる部分への(場合によっては異なるそれぞれのズーム率での)同時のズームをサポートするために適用され得る。そのような能力はまた、ビューのより大きなプライマリフィールド内で互いに独立に動く(たとえば、変化する)ビューの二次的フィールドをサポートするために適用され得る。
【0101】
[00144]本明細書で説明されるようなシステム、方法、および装置は、「プライマリビデオストリーム」とも呼ばれる、入力ビデオストリームストリームに対して動作するように実装され得る。プライマリビデオストリームは一連のフレームを表し、ここで各フレームはピクセル座標空間中の画像を表す。プライマリビデオストリームは通常、ストリームからフレームを復元するために使用され得る他の情報(たとえば、各フレームに対する、対応するフレーム開始コードまたはパケットおよびフレーム終了コードまたはパケット)を含む。ビデオストリームはまた、特定のフレームと関連付けられ得る埋め込まれたデータ(たとえば、メタデータ)を含み得る。ビデオストリームは、(可視の波長および/または他の波長を感知し得る)カメラまたは他の撮像デバイスによって生成されてよく、別のデバイスからストリーミングされてよく、またはデコーダによって(たとえば、磁気媒体または光学媒体に記憶されている情報から)生成されてよく、圧縮された形式または圧縮されていない形式であってよい。プライマリビデオストリームは、構築された光イメージャ(light imager)または他のデプスカメラ(たとえば、Microsoft Kinect)によってキャプチャされた画像に基づくビデオストリームのような、深度情報を含み得る。そのようなビデオストリームは、たとえば、各ピクセルの深度値を対応する色と対応付けることによって、タッチスクリーン上に表示され得る。ストリームは、生であることがあり、遅延していることがあり、または記憶装置から検索される(たとえば、事前に記録されている)ことがある。
【0102】
[00145]プライマリビデオストリームは、ビューのある点(たとえば、カメラまたは他の画像キャプチャデバイスのレンズ)に対するある角度(アングルangle)のビューとして表され得る、ビューのフィールドを有する。ビューのフィールドの角度幅(angle width)は、光学ズームおよび/またはデジタルズーム動作の結果として、経時的に変化し得る。
図27Aは、撮影されたシーンの文脈での、ビューのフィールドFV10の例を示す。この図では、ビューのフィールドFV10は点線によって示され、ビューの当該点は小さな円によって示され、撮影されるシーンの部分は実線の長方形によって示される。
図27Bは、
図27Aに示されるようなビューのフィールドFV10に対するズームアウト動作を実行した結果を示し、この動作によりフィールドが広がる。
図27Cは、
図27Aに示されるようなビューのフィールドFV10に対するズームイン動作を実行した結果を示し、この動作によりフィールドが狭まる。
図27Bおよび
図27Cにおいて、破線の長方形および実線の長方形はそれぞれ、ズーム動作の前と後の、撮影されるシーンの部分を示す。
図27A、
図27B、および
図27Cのすべてにおいて、ビューのフィールドFOV10はビューの同じ点に対するものである。
【0103】
[00146]ビデオストリームは、1つまたは複数のオブジェクトを含み得るシーンを示す。通常、オブジェクトは物理的な有形の物体(たとえば、人々)である。
図27Aでは、たとえば、シーン中のオブジェクトは、3人の人物と、星と、木とを含む。しかしながら、描画されたおよび/またはコンピュータにより生成されたコンテンツ(たとえば、アバター)のストリームの場合のように、オブジェクトが仮想的であり得ること、または別様に人工的であり得ることが企図される。
【0104】
[00147]ビューのフィールドの方向は、ビューのフィールドの中心線の方向(たとえば、ビュー円錐の中心軸の方向)として定義され得る。この方向は、たとえば、画像キャプチャデバイスの移動および/またはより大きなキャプチャされた画像内の選択されたウィンドウのデジタル変換動作の結果として、経時的に変化し得る。
図27Eは、
図27DのビューのフィールドFV10の方向に対する、ビューのフィールドFV10の方向を(点線によって示されるように)変化させた結果を示す。そのような変化は、たとえば、ビューの上記の点において画像キャプチャデバイスを回転させることによって、および/または、キャプチャされた画像内の選択されたウィンドウに対してデジタル変換動作を適用することによって、達成され得る。
図27Dと
図27Eの両方において、ビューのフィールドFOV10はビューの同じ点に対するものである。
【0105】
[00148]
図28Aは、タスクT200と、T300と、T350とを含む構成による、ビデオ処理の方法M100のフローチャートを示す。タスクT200は、ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択する。タスクT200における選択に応答して、タスクT300は、選択されたオブジェクトのうちの第1のオブジェクトを含むプライマリビデオストリームから第1のビデオストリームを生成する。第1のビデオストリームは、ビューのプライマリフィールドよりも狭いビューの第1のフィールドを有する。
【0106】
[00149]タスクT200における選択の後、タスクT350は、選択されたオブジェクトのうちの第2のオブジェクトを含むプライマリビデオストリームから第2のビデオストリームを生成する。第2のビデオストリームは、同様にビューのプライマリフィールドよりも狭いビューの第2のフィールドを有する。ビューの第1のフィールドは、ビューの第2のフィールド内にないビューのプライマリフィールドの一部分を含み、ビューの第2のフィールドは、ビューの第1のフィールド内にないビューのプライマリフィールドの一部分を含む。タスクT200、T300、およびT350は、たとえば、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0107】
[00150]タスクT200は、プライマリビデオストリーム内の少なくとも2つのオブジェクトを選択する。この選択は、ユーザによる直接の動作に応答して実行され得る。そのような場合、プライマリビデオストリームをユーザに表示するために画面が使用されてよく、ユーザは、表示に現れているオブジェクトの中から特定の所望のオブジェクトを選択するために指示を入力することができる。表示がタッチスクリーン上で実行される場合、ユーザは、画面をタッチして所望のオブジェクト内のある点を選択することによって、選択を示すことができる。
【0108】
[00151]
図29は、3つのオブジェクトを選択するための一連のユーザの動作の例を示す図である。パネルAは、デバイスのタッチスクリーン上に表示されるようなシーンを示す。デバイスは、選択モードを開始するようにユーザによって操作され得る。たとえば、タッチスクリーンは、ユーザが適切なアイコンをタッチするときに、選択モードに入るように構成され得る。パネルAは、フレームの右上の角にある選択ツールアイコンの例を示す。パネルBにおいて、ユーザは、選択モードを開始するために選択ツールアイコンをタッチする。パネルCにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第1のオブジェクトをタッチして第1のオブジェクトを選択する。パネルDにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第1のオブジェクトがハイライトされており(たとえば、示されるようにシルエットが付けられている、または輪郭が付けられている)、ユーザは第2のオブジェクトをタッチして第2のオブジェクトを選択する。パネルEにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第2のオブジェクトがハイライトされており、ユーザは第3のオブジェクトをタッチして第3のオブジェクトを選択する。パネルFにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第3のオブジェクトがハイライトされており、ユーザは選択ツールアイコンを再びタッチして選択モードを終了する。デバイスは、ユーザが選択モードにおいて再び選択されたオブジェクトをタッチすると、選択されたオブジェクトの選択を解除するように構成され得る。
【0109】
[00152]
図30は、3つのオブジェクトを選択するための一連のユーザの動作の別の例を示す図である。この場合、デバイスは、
図29に示されるような選択モードとは異なるように動作する。パネルAにおいて、ユーザは、選択モードを開始するために選択ツールアイコンをタッチする。パネルBにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第1のオブジェクトをタッチして第1のオブジェクトを選択する。パネルCにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第1のオブジェクトがハイライトされており、選択に応答して、選択モードが終了され、ハイライトがツールアイコンから除去される。ユーザは選択ツールアイコンを再びタッチして選択モードを開始し、パネルDにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第2のオブジェクトをタッチして第2のオブジェクトを選択する。パネルEにおいて、オブジェクトが選択されていることを示すために、タッチ動作に応答して第2のオブジェクトがハイライトされており、選択に応答して、選択モードが終了され、ハイライトがツールアイコンから除去される。ユーザは選択ツールアイコンを再びタッチして選択モードを開始し、パネルFにおいて、デバイスが選択モードにあることを示すために、タッチ動作に応答してツールアイコンがハイライトされており、ユーザは第3のオブジェクトをタッチして第3のオブジェクトを選択する。
【0110】
[00153]別の例では、タッチスクリーンは、2動作の選択に応答して選択モードに入るように構成されてよく、第1の動作はメニューモードを選択し(たとえば、ユーザは画面の指定された領域をタッチしてメニューを表示させる)、第2の動作はメニューから選択モードを選択する。さらなる例では、選択ツールアイコンをタッチアンドホールドし、アイコンを画面上の所望の点へとドラッグし、次いでアイコンを離してその点を選択することによって、ユーザがオブジェクトを選択するように、タッチスクリーンが構成され得る。代替的に、ユーザは、所望のオブジェクトの少なくとも一部分(たとえば、バウンディングボックスまたは楕円またはなげなわ)を含む画像のエリアを選択することによって選択を示すために、タッチスクリーンを操作することができる。そのような場合、ユーザは、所望のオブジェクトを個々に、および/またはグループとして選択することができる。
【0111】
[00154]ユーザが選択モードの間に表示されるビューのフィールドを操作できるようにすること(たとえば、ビューのフィールドを狭めるためのピンチ動作、およびビューのフィールドを広げるためのズーム動作を行うこと)が、望ましいことがある。タッチスクリーンの操作以外に、直接のユーザによる選択のための他の可能な方式は、1つまたは複数のボタンもしくは他のスイッチを作動させること、および/またはジェスチャ認識を含む。ユーザによるそのような直接の動作に対する代替形態として、タスクT200は、1つまたは複数の所定の基準をプライマリビデオストリームからの情報に適用することによって、自動的に選択を実行することができる。そのような基準は、たとえば、選手のジャージの番号の認識、顔認識、および/または(たとえば、スポーツイベントにおけるボールのような高速に移動するオブジェクトを識別するための)速度の検出を含み得る。
【0112】
[00155]方法M100は、タスクT200における選択に応答して、オブジェクトをトラッキングするように実施され得る。
図33Cは、(たとえば、オブジェクトトラッキングおよび検出モジュール204ならびに/またはオブジェクトトラッキングおよび検出モジュール804に関して上で説明されたように)選択されたオブジェクトをトラッキングするT250を含む、方法M100の実施M200のフローチャートを示す。代替的に、オブジェクトトラッキングはタスクT200よりも前に開始してよい。そのような場合、タスクT200は、トラッキングされるオブジェクトのセットの中から選択するために実施され得る。たとえば、ユーザは、トラッキングされたオブジェクトの表示の中から選択することができる。そのようなオブジェクトトラッキング(たとえば、タスクT250による)のために使用され得るアルゴリズムの例は、Lucas−Kanade法(およびKanade−Lucas−Tomasiトラッカーのような変形)と、ミーンシフトトラッキングとを含む。オブジェクトのトラッキングは、プライマリビデオストリームのフレームの他の部分からオブジェクトを区画することを含み得るが、オブジェクトトラッキングは、そのような区画化がなくても実行され得る。
【0113】
[00156]プライマリビデオストリームのフレームの他の部分からのオブジェクトの区画化は、フレームの他の部分に対するオブジェクトの強調された表示(たとえば、シルエット付与または輪郭付与)をサポートするために使用され得る。区画化は、タスクT200におけるオブジェクトの選択に応答して(たとえば、以下で説明されるような方法M300のタスクT250またはタスクT400によって)実行され得る。そのような区画化は、オブジェクトの選択を確認することによって、ユーザに視覚的なフィードバックを提供するために使用され得る。区画化は、選択が開始する前にも実行され得る。そのような場合、タスクT200における選択は、すでに区画されているオブジェクトのセット(たとえば、区画されたオブジェクトが強調されている表示)の中から行われ得る。
【0114】
[00157]
図31の左側のパネルは、オブジェクトを含むシーンを示すビデオストリームからのフレームの2つの例を示す。オブジェクトの強調された表示は、タスクT200における選択の前に、または、(たとえば、以下で説明されるような、方法M300のタスクT250による、またはタスクT400による)そのような選択に応答して、実行され得る。強調された表示の一例はオブジェクトのシルエットであり、これは、背景とは対照的な色(たとえば、
図31の中央のパネルにおいて示されるように、黒または黄)で表示され得る。この対照的な色は、すべてのオブジェクトに対して同じであってよく、または、(たとえば、各オブジェクトの局所的な背景と対照的となるように)オブジェクトによって異なっていてよい。強調された表示の他の例(対照的な色と同様に行われ得る)は、オブジェクトに輪郭を付与すること、およびオブジェクトにおいて、オブジェクト内に、またはオブジェクトの周囲にグラフィカル要素を表示すること(たとえば、オブジェクトの頂点または重心における三角形、
図31の右側のパネルに示されるようなオブジェクトの周囲の楕円など)を含む。
【0115】
[00158]プライマリビデオストリームの表示をユーザによるオブジェクトの直接の選択の状況において使用することは、低速で動いているオブジェクトに対しては適切であり得る。しかしながら、所望のオブジェクトのいずれかが表示の中で高速に動いている場合、そのような構成はユーザにとって不愉快であり得る。そのような高速な移動の場合、代わりに、ユーザによるオブジェクトの直接の選択の状況において、プライマリビデオストリームの単一のフレームを表示することが望ましいことがある。上で説明されたように、選択は、フレーム中のオブジェクトが区画され強調されている表示から行われ得る。ストリーム表示の選択とフレーム表示の選択の両方がサポートされる場合、これらの表示モードからの選択は、ユーザによって、および/または自動的に実行され得る。自動的な選択の場合、ストリームにおける動きの程度が、たとえばオプティカルフロー、動きベクトル、フレーム間のピクセル差分などのような尺度を使用して、定量化され得る。そのような場合、フレーム表示モードは、尺度の値が閾値を上回るときに選択されてよく、ストリーム表示モードは、尺度の値が閾値を下回るときに選択されてよい。
【0116】
[00159]タスクT200における選択に応答して、タスクT300は、選択されたオブジェクトのうちの第1のオブジェクトを含むプライマリビデオストリームから第1のビデオストリームを生成する。第1のビデオストリームは、ビューのプライマリフィールドよりも狭いビューの第1のフィールドを有する。タスクT200における選択の後、タスクT350は、選択されたオブジェクトのうちの第2のオブジェクトを含むプライマリビデオストリームから第2のビデオストリームを生成する。第2のビデオストリームは、同様にビューのプライマリフィールドよりも狭いビューの第2のフィールドを有する。
【0117】
[00160]ビューの第1のフィールドは、ビューの第2のフィールド内にないビューのプライマリフィールドの一部分を含み、ビューの第2のフィールドは、ビューの第1のフィールド内にないビューのプライマリフィールドの一部分を含む。
図28Bは、ビューのプライマリフィールドPFV10の例を示し、
図28Bおよび
図28Cはそれぞれ、ビューの第1のフィールドFV100およびビューの第2のフィールドFV200の例を示し、これらはビューのプライマリフィールドPFV10よりも狭く、これらの各々がビューの他のフィールド内にはないビューのプライマリフィールドPFV10の一部分を含む。ビューのプライマリフィールド内のビューの第1のフィールドの幅および/または方向は、経時的に変化し得る。同様に、ビューのプライマリフィールド内のビューの第2のフィールドの幅および/または方向は、経時的に変化し得る。
【0118】
[00161]ビデオストリームは、デジタル画像(「フレーム」)の時間シーケンスである。一例では、画像のシーケンスは、特定のフレームレートで(たとえば、同じフレームレートでの提示のために)キャプチャされる。ビデオストリームは、各フレームの開始と終了とを示す情報を含み得る。一例では、ビデオストリームは、各フレームの最初のピクセルの前のフレーム開始コードと、各フレームの最後のピクセルの後のフレーム終了コードとを含む。別の例では、ビデオストリームは、ビデオストリームのフレームのピクセル情報を搬送する1つまたは複数のデータ信号と、ビデオストリームの各フレームの開始と終了とを示す1つまたは複数の同期信号とを含む。プライマリビデオストリームの特定のフォーマットに応じて、プライマリビデオストリームは追加の情報(たとえば、ヘッダ、メタデータ)を含み得る。プライマリビデオストリームが、フレーム開始コードとフレーム終了コードの間にフレームデータ(すなわち、ピクセル値)以外のデータを含むことも可能である。そのような他のデータは、たとえば、センサ構成の詳細および/または画像の統計値を含み得る。
【0119】
[00162]ビデオストリームの解析は、(たとえば、フレーム開始情報とフレーム終了情報とを使用して)ビデオストリームのフレームを抽出することと、フレームを処理のために利用可能にすることとを含む。たとえば、解析することは、バッファのような対応する指定された位置に各フレームを記憶することを含み得る。
図33Aは、プライマリビデオストリームを解析してプライマリビデオストリームの一連のフレームを生成するタスクT100を含む、方法M100の実施M110のフローチャートを示す。代替的に、プライマリビデオストリームの1つまたは複数のフレームが任意の時間において方法M100に対して(たとえば、メモリ中のバッファにおいて)利用可能であるように、別のプロセスが(たとえば、表示のために)プライマリビデオストリームを解析するために実行され得る。
【0120】
[00163]そのようなバッファ(たとえば、メモリバッファ110)は通常、ある時間において少なくとも1つの完全なフレームを記憶することが可能である。プライマリビデオストリームの解析は、複数のフレームバッファを交互にするように構成され得る。たとえば、1つのそのようなフレームバッファは処理のために完全なフレームを記憶することができるが、シーケンス中の後続のフレームが抽出されて別のフレームバッファに記憶される。代替的に、タスクT100または解析プロセスは、新たなフレームが抽出されるにつれてバッファが更新される(および古いフレームが上書きされる)ように、解析されたフレームを循環バッファに記憶するように構成され得る。
【0121】
[00164]プライマリビデオストリームを解析することは、1つまたは複数の関連するオーディオストリームおよび/またはメタデータストリームからプライマリビデオストリームを分離するための、逆多重化動作を含み得る。代替的に、そのような動作は、タスクT100または解析プロセスの上流で実行され得る(たとえば、プライマリビデオストリームはデマルチプレクサによって提供され得る)。
【0122】
[00165]タスクT300およびT350の各々は、プライマリビデオストリームから対応する二次的ビデオストリームを生成する。そのようなタスクは、二次的ビデオストリームの各フレームに対して、プライマリビデオストリームの1つまたは複数の対応するフレームの所望の部分を抽出することによって、二次的ビデオストリームのフレームを生成するために実装され得る。所望のフレーム部分は、ストリームから(たとえば、ストリームバッファから)直接、または、(たとえば、上で説明されたようなフレームバッファまたは循環バッファに記憶されているような)解析されたフレームから抽出され得る。第1のオブジェクトの選択に応答して、および第2のオブジェクトの選択の前に、タスクT300が対応する二次的ビデオストリームを生成するように、方法M100を実施することが可能である。
図33Bは、方法M110のそのような実施M120のフローチャートを示し、これは、タスクT300およびT350がタスクT200の2つの選択T200AおよびT200Bに独立に応答し得ることを示す。
【0123】
[00166]所望のフレーム部分は、たとえば、対応するオブジェクトの場所(たとえば、オブジェクトの重心)、またはそのようなオブジェクトのバウンディングボックスの場所、およびビューの対応するフィールドの所望の幅およびアスペクト比のような、パラメータによって決定され得る。そのようなパラメータの値は、たとえば、プライマリビデオストリームのピクセル座標空間内のピクセル座標として所望のフレーム部分の境界(たとえば、所望のフレーム部分の左上のピクセルおよび右下のピクセルの座標)を決定するために使用され得る。
【0124】
[00167]所望のフレーム部分の幅および/またはアスペクト比の値は、デフォルトの値であってよく、ユーザもしくはプロセスによって示されてよく、および/または、オブジェクトのサイズ(たとえば、オブジェクトのバウンディングボックスのサイズ)に基づいてよい。たとえば、所望のフレーム部分の幅および/またはアスペクト比は、二次的ビデオストリームを含む表示におけるウィンドウの所望の数によって示され得る。二次的ビデオストリームはプライマリビデオストリームと同じアスペクト比を有することがあるが、そうである必要はないこと、および、各二次的ビデオストリームは固有のアスペクト比を有することがあるが、そうである必要はないことに、明確に留意されたい。
【0125】
[00168]ピクセル座標空間において並べられるようなプライマリビデオストリームのフレームに関して、所望のフレーム部分は抽出ウィンドウであると見なされ得る。一例では、タスクT300および/またはT350は、1つまたは複数の選択されるオブジェクトの現在の場所に基づいて、抽出ウィンドウの所定のセットの1つを選択して適用することによって、所望のフレーム部分を抽出するように実施される。
図32Aは、プライマリビデオストリームのフレームに関する、各々が固定されたサイズ(すなわち、1つの4分の1フレーム)とフレーム内での固定された場所とを有する9個のそのようなウィンドウの例示的なセットを示す。この例において示されるように、ウィンドウは重複し得るので、(
図32Bのフレーム分割においてウィンドウの対応付けの表記によって示されるように)オブジェクトの場所は、ウィンドウの2つ以上に含まれるフレームの一部分に存在し得る。そのような場合、(たとえば、直近に選択されたウィンドウが現在も選択のために示されている場合、そのウィンドウを使用し続けるために)履歴に基づいて、および/または(たとえば、フレーム内のオブジェクトの現在の場所および1つまたは複数の以前の場所によって示されるように、ならびに/または、キャプチャデバイスの移動および/もしくはビューのプライマリフィールドの移動によって示されるように、次の予想されるオブジェクトの場所と中心がよく一致するウィンドウを選択するために)動きに基づいて、示されるウィンドウの1つを選択するように、タスクが実施され得る。
【0126】
[00169]別の例では、タスクT300および/またはT350は、(たとえば、オブジェクトのバウンディングボックスのサイズのような、オブジェクトサイズに基づいて)抽出ウィンドウサイズの所定のセットの1つを選択するように実施される。そのような場合、タスクは、選択されたサイズの抽出ウィンドウを(たとえば、1つまたは複数のオブジェクトの重心と中心が揃っている)フレーム内の所望の抽出場所において適用するように実施され得る。さらなる例では、タスクT300および/またはT350は、1つまたは複数の選択されたオブジェクトのサイズから(たとえば、対応する選択されたオブジェクトのサイズから)抽出ウィンドウのサイズを計算し、オブジェクトの場所(たとえば、重心)においてそのウィンドウを適用するように実施される。別のさらなる例では、タスクT300および/またはT350は、抽出ウィンドウとして、現在の平滑化されたまたは平滑化されていない探索ウィンドウ(たとえば、
図7〜
図10に関して本明細書で説明されたような)を適用するように実施される。いずれの場合でも、対応する二次的ビデオストリームの複数のフレームの各々の中で選択されたオブジェクトのサイズを正規化するのが望ましいことがある。たとえば、プライマリビデオストリーム内のトラッキングされたオブジェクトのサイズの変化に応答して(たとえば、オブジェクトがキャプチャデバイスに近づく、もしくはそれから離れるにつれて、および/または、ビューのプライマリフィールドの幅の変化の結果として)、(たとえば、抽出ウィンドウの)抽出されたフレーム部分のサイズを変化させるのが望ましいことがある。
【0127】
[00170]1つまたは複数の表示の制約により、抽出ウィンドウのサイズおよび/または場所を選択または計算するのが望ましいことがある。たとえば、オブジェクトと所望のフレーム部分の任意の端部との間の距離が最小の数のピクセル(たとえば、5ピクセル、10ピクセル、または20ピクセル)未満であることを検出したことに応答して、ウィンドウサイズを大きくし、および/またはウィンドウの場所を変更するのが望ましいことがある。加えて、または代替的に、オブジェクトのサイズと所望のフレーム部分との所望の関係を維持するために(たとえば、上で説明されたようなウィンドウ内のオブジェクトのサイズを正規化するために)、ウィンドウサイズを変更するのが望ましいことがある。たとえば、高さおよび/または幅のようなオブジェクトの寸法の、所望のフレーム部分の対応する寸法に対する比率を、所定の最小値(たとえば、50%、60%、70%、または80%)以上に維持すること、および/または、所定の最大値(たとえば、80%、90%、または95%)未満に維持するのが望ましいことがある。そのような端部を利用する検出および/または正規化はまた、(たとえば、選択されたオブジェクトと接するボックスの寸法と、プライマリビデオストリームのフレームが表示される表示ウィンドウの対応する寸法との間の、上で言及された比率のいずれかのような、所望の関係を維持するために)プライマリビデオストリーム上で実行され得る。
【0128】
[00171]対応する抽出された所望のフレーム部分に対する1つまたは複数の処理動作を実行することによって、二次的ビデオストリームの1つまたは複数のフレームを生成するようにタスクT300および/またはタスクT350を実施するのが望ましいことがある。サイズ変更、補間、正規化、および/または表示に関する調整を含み得るそのような処理は、所望のフレーム部分が抽出されるにつれて、および/またはフレーム部分の抽出が完了した後に、実行され得る。たとえば、二次的ビデオストリームのフレームを生成することは、明るさ、コントラスト、およびホワイトバランスの1つまたは複数のような、フレームの1つまたは複数の色特性および/または輝度特性を正規化することを含み得る。加えて、または代替的に、タスクT300および/またはT350は、第2のビデオストリームを生成するために、プライマリビデオストリームからのピクセル情報に対して1つまたは複数の表示関連の調整を実行することを含み得る。そのような調整の例は、異なる色空間へピクセル情報を変換すること(たとえば、YUVからRGB)と、ガンマ補正を実行することとを含む。
【0129】
[00172]タスクT300および/またはT350は、プライマリビデオストリームとのフレームごとの対応付けを有するように二次的ビデオストリームを生成するように実施され得る。そのような場合、タスクは、プライマリビデオストリームの対応するフレームから二次的ビデオストリームの各フレームを生成することができる。タスクT300および/またはT350は代替的に、プライマリビデオストリームとは異なるフレームレートを有するように二次的ビデオストリームを生成するように実施され得る。1つのそのような例では、タスクは、(たとえば、プライマリビデオストリームの対応するn番目のフレームから第1のビデオストリームの各フレームを生成することによって、ここでnは1よりも大きな整数である、および/または、プライマリビデオストリームのフレームレートの非整数部分を得るためにプライマリビデオストリームの2つ以上のフレームを補間することによって)プライマリビデオストリームよりも低いフレームレートを有するように、二次的ビデオストリームを生成するように実施される。別の例では、タスクは、(たとえば、二次的ビデオストリームのフレームを生成するためにプライマリビデオストリームの2つ以上のフレームを補間することによって)プライマリビデオストリームよりも高いフレームレートを有するように、二次的ビデオストリームを生成するように実施される。
【0130】
[00173]タスクT300および/またはT350は、送信および/または記憶のために、対応する二次的ビデオストリームを生成するように実施され得る。たとえば、そのようなタスクが、フレーム開始/終了コードを生成されたフレームに追加すること、および/または、フレーム間のそのような分割を示す1つまたは複数の同期信号を生成することが、望ましいことがある。他の情報および/またはフォーマット化が、特定のストリームフォーマットと適合するように実行され得る(たとえば、そのようなタスクは、ヘッダプラスペイロードフォーマットへとピクセルデータをパケット化するように実施され得る)。タスクT300および/またはT350は、二次的ビデオストリームを、動きベクトルおよび/または予測フレームのような構造物を生成することによってストリームを符号化するように構成され得る圧縮器または他のエンコーダに、提供するように実施され得る。使用され得る記憶ファイルフォーマットの例は、次のビデオコンテナフォーマット、すなわち、AVI、WMV、MOV、MKV、MPG、およびMP4のいずれかを含む。
【0131】
[00174]タスクT300および/またはT350は、メタデータを二次的ビデオストリームと関連付けるように実施され得る。そのようなメタデータは、オブジェクトの場所、選択されたオブジェクトのラベル(たとえば、人の名前)、選択されたオブジェクトの間の幾何学的構成の識別などのような、トラッキングされるオブジェクトに関する情報に基づき得る。加えて、または代替的に、メタデータは、デバイスの他の要素から、および/またはプライマリビデオストリーム中のメタデータから取得され得る情報(たとえば、カメラの設定、カメラの向き、センサの特性、キャプチャの時間および/または位置)を含み得る。
【0132】
[00175]タスクT300および/またはT350のそのような実施は、XML(拡張マークアップ言語)、KLV(Key−Length−Value)、*.srt(SubRipファイルフォーマット)、および*.vtt(ウェブビデオテキストトラックフォーマット)の中のいずれかのような、所望のフォーマットへとメタデータを符号化することができる。いくつかのフォーマットでは、メタデータの少なくともいくつかは、二次的ビデオストリーム内に(たとえば、埋め込まれたデータのために確保されているフレームデータの一部分の中に)含まれ得る。代替的に、ストリーム生成タスクは、二次的データストリームと同期されるメタデータストリームとしてメタデータをパッケージ化するように実施され得る。たとえば、そのようなストリーム内のメタデータの項目は、そのような項目と二次的ビデオストリームの対応するフレームとの所望の関連付けを示すために、タイムスタンプを付与され得る。
【0133】
[00176]方法M100はまた、1つまたは複数の二次的ビデオストリームを他のストリームと組み合わせるように実施され得る。たとえば、二次的ビデオストリームは、1つまたは複数の他のストリーム(たとえば、1つまたは複数のオーディオストリームおよび/またはメタデータストリーム)と多重化され得る。加えて、または代替的に、二次的ビデオストリームは、複数のウィンドウを伴うフレームを有する出力ストリームを生成するために1つまたは複数の他のビデオストリーム(たとえば、他の二次的ビデオストリーム)と組み合わされてよく、各ウィンドウはビデオストリームの異なる1つに対応する。加えて、または代替的に、方法M100は、
図17〜
図20を参照して下で説明されるような選択されたオブジェクトの間の幾何学的配置および/または複合的な幾何学的配置(たとえば、選択されたオブジェクトの幾何学的構成)を示す情報のようなメタデータ(たとえば、上で説明されたような任意のそのような方式の)をプライマリビデオストリームと関連付けるタスクを含むように実施され得る。
【0134】
[00177]送信または記憶のために二次的ビデオストリームを提供する代わりに、またはそれに加えて、タスクT300および/またはT350は、局所的な表示のために二次的ビデオストリームを提供するように実施され得る。たとえば、そのようなストリーム生成タスクは、フレームデータを表示タスクに対して利用可能にすることができ、表示タスクは、フレームデータを表示バッファに記憶するように実施され得る。たとえば、表示タスクは、各々の二次的ビデオストリームのフレームを表示の対応するウィンドウに対応する表示バッファの領域に記憶するように実施され得る。
【0135】
[00178]
図33Dは、第1のビデオストリームおよび/または第2のビデオストリームを表示する表示タスクT400(たとえば、上で説明されたような)を含む、方法M100の実施M300のフローチャートを示す。タスクT400は、(たとえば、別のウィンドウにおける)プライマリビデオストリームの表示とともに、またはそのような表示を伴わずに、表示のそれぞれのウィンドウ内で各々のそのようなストリームを表示するように実施され得る。
図37Aは、表示タスクT400がトラッキングタスクT250からの入力にも応答する、方法M200およびM300の実施M400のフローチャートを示す。
【0136】
[00179]
図34A〜
図34Cは、方法M300(たとえば、方法M400)の実施の適用形態の例を示し、
図34AはプライマリビデオストリームPS10のフレームPF10を示し、
図34Cは表示ビデオストリームDS10の対応するフレームDF10を示す。
図34Bの左下にある重要な図は、フレームPF10の中の各々の選択されたオブジェクトと対応する抽出ウィンドウとの関連付けを示す。
図34Bの中心の図は、フレームバッファFB10に記憶されているようなフレームの対応する所望のフレーム部分FP10〜FP40を定義する抽出ウィンドウと、タスクT300および/またはT350の対応する実体によって生成される二次的ビデオストリームSS10〜SS40とを示す。
【0137】
[00180]この例では、タスクT400は、ストリームに対応するウィンドウの、表示フレームDF10における所望の構成に従って、表示バッファDB10の表示部分DP20〜DP50の対応する1つに、二次的ビデオストリームの各々を記憶するように実施される。またこの例では、タスクT400は、対応するウィンドウにおける表示のために表示バッファDB10の表示部分DP10に、プライマリビデオストリームPS10のサイズ変更されたバージョンRPS10を記憶するように実施される。
図34Bの右下にあるプライマリな図は、表示バッファDB10内の各表示部分DP10〜DP50と、表示フレームDF10の対応するウィンドウとの関連付けを示す。
【0138】
[00181]タスクT300およびT350は、各々のそれぞれのオブジェクトを選択すると、または、選択動作が完了したこと(たとえば、すべての所望のオブジェクトが選択されていること、さらなる選択が現在望まれていないこと)が示されると、開始することができる。選択されたオブジェクトの2つが近接している場合、二次的ビデオストリームの1つの生成は、(たとえば、トラッキングタスクT250によって示されるような)オブジェクト間の分離が閾値の距離に達するまで、またはそれを超えるまで、遅延させられ得る。
【0139】
[00182]
図35は、方法M100の適用形態のそのような例を示す。パネルAは、プライマリビデオストリームのビューのプライマリフィールドPFV20を示す。パネルBは、時間Aにおいて、タスクT300の実体によって生成されるような、第1のビデオストリームのビューの第1のフィールドFV110を示す。時間Aにおいて、ビューの第1のフィールドFV110は、第1のオブジェクトと第2のオブジェクトの両方を含む。パネルCは、時間Aよりも後の時間Bにおいて、タスクT300の実体によって生成されるようなビューの第1のフィールドFV110と、タスクT350の実体によって生成されるような第2のビデオストリームのビューの第2のフィールドFV210とを示す。時間Bにおいて、ビューの第1のフィールドFV110は、第1のオブジェクトを含み、第2のオブジェクトをもはや含まず、ビューの第2のフィールドFV210は第2のオブジェクトを含む。
【0140】
[00183]
図11は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図11に示される実施形態に関して説明されるビデオ処理技法は、たとえば、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0141】
[00184]
図11は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム1100を示す。たとえば、フレーム1100は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1100に示されるシーンは、第1のオブジェクト1102と、第2のオブジェクト1104と、第3のオブジェクト1106と、星と、木とを含む。示される実施形態では、第1のオブジェクト1102は第1の人物に対応してよく、第2のオブジェクト1104は第2の人物に対応してよく、第3のオブジェクト1106は第3の人物に対応してよい。別の実施形態では、オブジェクト1102〜1106の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0142】
[00185]
図11はまた、モバイルデバイスの画面上のフレーム1100の表示1110を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示1110はまた、ユーザが(たとえば、トラッキングタスクT250による)トラッキングのために表示されたオブジェクトを選択することを可能にする、ユーザ選択機構1111を含み得る。たとえば、ユーザは、画面上のユーザ選択機構1111をタッチし、次いで、第1のオブジェクト1102のトラッキングを可能にするために第1のオブジェクト1102の周囲で第1の焦点リング1112をドラッグすることができる。第1の焦点リング1112のそのような配置に応答して、モバイルデバイスは、示されるシーン内でのトラッキングのために、第1のオブジェクト1102を選択することができる。同様の方式で、ユーザはまた、ユーザ選択機構1111をタッチし、次いで第2のオブジェクト1104の周囲で第2の焦点リング1114をドラッグし、ユーザ選択機構1111をタッチし、次いで第3のオブジェクト1106の周囲で第3の焦点リング1116ドラッグして、それぞれ、第2のオブジェクト1104および第3のオブジェクト1106のトラッキングを可能にすることができる。第2の焦点リング1114および第3の焦点リング1116のそのような配置に応答して、モバイルデバイスは、示されるシーン内でのトラッキングのために、それぞれ第2のオブジェクト1104と第3のオブジェクト1106とを選択することができる。
【0143】
[00186]
図11はまた、(たとえば、第1の時刻の後の)第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム1120を示す。フレーム1120において、オブジェクト1102〜1106の場所は、第1の時刻におけるシーンを示すフレーム1100中の対応する場所に対して変化している。たとえば、フレーム1120において、第1のオブジェクト1102は星に近づくように移動しており、第2のオブジェクト1104は木に近づくように移動しており、第3のオブジェクト1106はフレームの下部に近づくように移動している。
【0144】
[00187]
図11はまた、モバイルデバイスの画面上のフレーム1120の表示1130を示す。表示1130は、2つ以上のウィンドウへと(たとえば、表示タスクT400によって)区分され得る。この例では、表示1130は、第1のウィンドウ1132、第2のウィンドウ1134、および第3のウィンドウ1136へと区分される。ユーザ選択機構1111による3つのオブジェクト1102〜1106の選択に応答して、たとえば、モバイルデバイスは、3つの対応するウィンドウ1132〜1136へと表示1130を区分することができる。
【0145】
[00188]デバイスは、オブジェクト選択が完了したというユーザによる指示に応答して、選択された区分を適用するように構成され得る。たとえば、対応するオブジェクトが選択されるにつれて各ウィンドウを作成することによって、デフォルトの区分が適用され得るが、(たとえば、表示エリアがオブジェクト選択の間に利用可能なままであるように)オブジェクト選択が完了するまで区分を適用するのを控えることが望ましいことがある。デバイスは、たとえば、選択の完了が示されるまで焦点リングおよび/または選択されたオブジェクトを明滅させることによって、オブジェクト選択が進行中であることを示し得る。各々の選択されたオブジェクトに対する焦点リングまたは他の選択の指示は、選択の完了が示されるまで、(たとえば、オブジェクトがシーンの中を動くにつれて)オブジェクトを追い続け、または別様に示し続け得る。
【0146】
[00189]第1のウィンドウ1132は、第1のオブジェクト1102を含むフレーム1120の第1の部分を表示することができる。フレーム1120の第1の部分は、フレーム1120の中の第1のオブジェクト1102の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1102の位置をトラッキングし、第1のウィンドウ1132において、第1のオブジェクト1102の位置に注目している(たとえば、その位置が中心である)ビデオストリームを表示することができる。第2のウィンドウ1134は、第2のオブジェクト1104を含むフレーム1120の第2の部分を表示することができる。フレーム1120の第2の部分は、フレーム1120の中の第2のオブジェクト1104の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1104の位置をトラッキングし、第2のウィンドウ1134において、第2のオブジェクト1104の位置に注目しているビデオストリームを表示することができる。第3のウィンドウ1136は、第3のオブジェクト1106を含むフレーム1120の第3の部分を表示することができる。フレーム1120の第3の部分は、フレーム1120の中の第3のオブジェクト1106の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第3のオブジェクト1104の位置をトラッキングし、第3のウィンドウ1136において、第3のオブジェクト1106の位置に注目しているビデオストリームを表示することができる。
【0147】
[00190]
図36Aおよび
図36Bは、ウィンドウ1132〜1136の他の可能なデフォルト構成の例を示す。特定のデフォルト構成は、デバイスの表示構成オプションとしてユーザにより選択可能であり得る。この構成は固定されていてよく、またはユーザにより修正可能であってよい。一例では、デバイスは、ウィンドウの側部の1つをドラッグすることによって表示の中の異なる位置にウィンドウを動かすことができ、表示の境界に位置しないウィンドウの角をドラッグすることによってウィンドウをサイズ変更することができ、ウィンドウ内で指またはスタイラスを(たとえば、2秒という期間)ホールドすることによってウィンドウを削除することができる。さらなる例では、ユーザがウィンドウ内をダブルタップして、デバイスに、そのウィンドウのコンテンツ(たとえば、ウィンドウ内に表示される二次的ビデオストリーム)を表示の中で現在最大であるウィンドウのコンテンツと交換させることができるように、デバイスは構成される。
【0148】
[00191]
図11はまた、(たとえば、第2の時刻(instance)の後の)第3の時刻におけるシーンを示す、ビデオストリームのフレーム1140を示す。フレーム1140において、各オブジェクト1102〜1106の場所は、第2の時刻におけるシーンを示すフレーム1120中の対応する場所に対して変化している。たとえば、フレーム1140において、第1のオブジェクト1102は木に近づくように移動しており、第2のオブジェクトはフレームの下部に近づくように移動しており、第3のオブジェクト1106は星に近づくように移動している。
【0149】
[00192]
図11はまた、モバイルデバイスによって生成されるウィンドウ1132〜1136を使用した、モバイルデバイスの画面上のフレーム1140の表示1150を示す。たとえば、第1のウィンドウ1132は、第1のオブジェクト1102を含むフレーム1140の第1の部分を表示し、第2のウィンドウ1134は、第2のオブジェクト1104を含むフレーム1140の第2の部分を表示し、第3のウィンドウ1136は、第3のオブジェクト1106を含むフレーム1140の第3の部分を表示する。
【0150】
[00193]ウィンドウの各々の中で、それぞれの選択されたオブジェクトの位置を正規化することが望ましいことがある。たとえば、それぞれの選択されたオブジェクトの中心(たとえば、重心)がウィンドウの中心と一致するように、および、オブジェクトがシーン内で動くにつれてこの関係を維持するように、ウィンドウを表示するのが望ましいことがある。加えて、または代替的に、ウィンドウの各々の中で、それぞれの選択されたオブジェクトのサイズを正規化することが望ましいことがある。たとえば、それぞれの選択されたオブジェクトの最大の寸法がウィンドウの対応する寸法の50%と75%の間にあるように、および、オブジェクトがカメラに向かって、またはカメラから離れるように動くにつれてこの関係を維持するように、ウィンドウを表示するのが望ましいことがある。そのような表示は、たとえば、ウィンドウに表示されている部分をサイズ変更する(たとえば、その部分にデジタルズーム動作を適用する)ことによって達成され得る。加えて、または代替的に、ウィンドウの各々の中で、明るさ、コントラスト、およびホワイトバランスのいずれかを含み得る、ウィンドウの1つまたは複数の表示の態様を正規化するのが望ましいことがある。
【0151】
[00194]特定の実施形態において、第4のウィンドウ(たとえば、
図36Cに示されるようなウィンドウ1138)は、表示1130および1150に(たとえば、表示タスクT400によって)含まれ得る。第4のウィンドウは、
図17に関してさらに説明されるように、各オブジェクト間の幾何学的配置を示し得る。加えて、または代替的に、第4のウィンドウは、フレーム1120と1140とを含むビデオストリームを表示することができる。たとえば、第1のウィンドウ1132、第2のウィンドウ1134、および第3のウィンドウ1136は、フレーム1120および1140のピクチャインピクチャショットに対応してよく、第4のウィンドウはフレーム1120および1140の全体に対応してよい。そのような場合、選択されたオブジェクトのすべてが第4のウィンドウに表示されているストリーム内で可視のままであるように、カメラの光学および/またはデジタルズーム動作を制御するのが望ましいことがある。オブジェクト選択に応答したそのようなズームの組合せは、表示の区分がなくても実行され得る。代替的に、または加えて、第4のウィンドウに表示されているストリーム内の選択されたオブジェクトを示すのが望ましいことがある。たとえば、各オブジェクトにマーク(たとえば、オブジェクトに対するそれぞれの対照的な色を有し、オブジェクトの重心に重畳される図形)が重畳されてよく、および/または、光輪(たとえば、楕円)がオブジェクト(場合によってはより低いコントラストを有する、または光輪の内部の他の顕著な外観を有する)の周囲に配置されてよい。
図36Dおよび
図36Eは、ウィンドウ1132〜1138の可能な構成の2つの他の例を示す。
【0152】
[00195]別の特定の実施形態では、単一のオブジェクトのトラッキング(たとえば、第1のオブジェクト1112だけ)が表示のために選択され得る。表示のためにオブジェクトを選択したことに応答して、(たとえば、
図36Fにおいて示されるように)表示は2つのウィンドウへと区分され得る。この場合、第1のウィンドウは、シーン中の選択されたオブジェクトの場所に基づいて決定される、シーンの一部分を含み得る。たとえば、モバイルデバイスは選択されたオブジェクトの位置をトラッキングすることができ、オブジェクトの場所に注目しているビデオストリームが第1のウィンドウに(たとえば、タスクT400によって)表示され得る。加えて、第2のウィンドウはシーン全体を含み得る。したがって、第1のウィンドウは、シーン中の選択されたオブジェクトの注目されているピクチャインピクチャショットに対応し得る。
【0153】
[00196]
図41Aおよび
図41Bは、選択されたオブジェクトを含むプライマリビデオストリームのビューのフィールドの一部分の表示のある例を示す。そのような表示は、上で説明されたようなウィンドウ(たとえば、ウィンドウ1132、1134、1136、または1138)に表示されてよく、これらは、プライマリビデオストリームのビューのフィールド全体を示すウィンドウとともに、またはその代わりに示され得る。これらの例の各々は、ウィンドウのサイズに対するその寸法がプライマリビデオストリームのビューのフィールドに対するビューの表示される(狭められる)フィールドの関係を示す、アイコン(
図41Aの点線のボックスおよび
図41Bの頂部の近くの有限の線)を含む。これらの特定の例では、ビューの狭められたフィールドは、(中空の円によって示される)選択されたオブジェクトの複合的な幾何学的配置の場所を中心とする。これらの例の各々はまた、この場所の最近の軌跡を示す点線を含む。
【0154】
[00197]
図42は、(たとえば、表示タスクT400の実施によって生成されるような)表示ビデオストリームのフレームの例を示す。このフレームは、(たとえば、タスクT300およびT350の実体によって生成されるような)選択されたオブジェクトA、B、およびCに対応する二次的ビデオストリームを表示する3つのウィンドウを、フレームの下部とともに含む。左上のウィンドウは、ウィンドウに適合するようにサイズ変更され得る、プライマリビデオストリームを表示する。このウィンドウはまた、対応するフレーム中の選択されたオブジェクトの複合的な幾何学的配置の場所を示す、重畳物(この例では十字線)を含む。右上のウィンドウは、
図41A〜
図41Bを参照して上で説明されたような、選択されたオブジェクトを含むプライマリビデオストリームのビューのフィールドの一部分を表示する。
【0155】
[00198]
図43Bは、選択されたオブジェクトの複合的な幾何学的配置と、この幾何学的配置の場所と、この場所の最近の軌跡とを示す、グラフィックの例を示す。そのようなグラフィックは、別のウィンドウとして表示されてよく、またはプライマリビデオストリームの表示に重畳されてよい。
図43Aおよび
図43Cは、同様の重畳を含むプライマリビデオストリームのフレームを表示するウィンドウを示す。
【0156】
[00199]
図11に示される実施形態は、モバイルデバイスが、フレーム1100、1120、1140中のオブジェクト1102〜1106をトラッキングすることを可能にでき、オブジェクト1102〜1106に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1132〜1136に表示することができる。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図11に関して説明される技法を実行することができる。区分は(たとえば、ユーザによって)構成されてビデオストリームに適用されているが、デバイスは、区分されていないビデオストリームおよび/またはウィンドウの1つまたは複数を各々含む1つまたは複数のビデオストリームを記録し続けることができる。ウィンドウの1つまたは複数を各々含む1つまたは複数のビデオストリームを記憶することに加えて、またはその代わりに、記録された区分されていないストリームから特定の区分が再生成され得る際に元となるメタデータ(ビデオストリームに埋め込まれた、および/または別のファイルとしての)をデバイスが記憶するのが望ましいことがある。
【0157】
[00200]
図12を参照すると、オブジェクトトラッキングを使用したビデオ処理方法1200の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法1200は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0158】
[00201]方法1200は、1202において、モバイルデバイスにおいて、表示されるシーン中の第1のオブジェクトおよび表示されるシーン中の第2のオブジェクトの選択を受け取ることを含む。たとえば、
図11を参照すると、ユーザは、画面上のユーザ選択機構1111をタッチし、次いで第1のオブジェクト1102の周囲で第1の焦点リング1112をドラッグし、画面上のユーザ選択機構1111をタッチし、次いで第2のオブジェクト1104の周囲で第2の焦点リング1114をドラッグして、それぞれ、第1のオブジェクト1102および第2のオブジェクト1104のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。
【0159】
[00202]表示は、1204において、少なくとも第1のウィンドウおよび第2のウィンドウへと区分され得る。たとえば、
図11を参照すると、表示1130は、第1のウィンドウ1132、第2のウィンドウ1134、および第3のウィンドウ1136に区分され得る。たとえば、ユーザ選択機構1111による3つのオブジェクト1102〜1106の選択に応答して、モバイルデバイスは、3つの対応するウィンドウ1132〜1136へと表示1130を区分することができる。
【0160】
[00203]1206において、第1のオブジェクトを含むシーンの第1の部分は、第1のウィンドウに表示され得る。たとえば、
図11を参照すると、第1のウィンドウ1132は、第1のオブジェクト1102を含むフレーム1120の第1の部分を表示することができる。フレーム1120の第1の部分は、フレーム1120の中の第1のオブジェクト1102の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト1102の位置をトラッキングすることができ、第1のオブジェクト1102の位置に注目しているビデオストリームが第1のウィンドウ1132に表示され得る。
【0161】
[00204]1208において、第2のオブジェクトを含むシーンの第2の部分は、第2のウィンドウに表示され得る。たとえば、
図11を参照すると、第2のウィンドウ1134は、第2のオブジェクト1104を含むフレーム1120の第2の部分を表示することができる。フレーム1120の第2の部分は、フレーム1120の中の第2のオブジェクト1104の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト1104の位置をトラッキングすることができ、第2のオブジェクト1104の位置に注目しているビデオストリームが第2のウィンドウ1134に表示され得る。
【0162】
[00205]
図12の方法1200は、モバイルデバイスが、シーン1100、1120、1140中のオブジェクト1102〜1106をトラッキングすることを可能にでき、オブジェクト1102〜1106に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1132〜1136に表示することができる。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法1200を実行することができる。
【0163】
[00206]
図13は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図13に示される実施形態に関して説明されるビデオ処理技法は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0164】
[00207]
図13は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム1300を示す。たとえば、フレーム1300は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1300に示されるシーンは、第1のオブジェクト1302と、第2のオブジェクト1304と、第3のオブジェクト1306と、星と、木とを含む。示される実施形態では、第1のオブジェクト1302は第1の人物に対応してよく、第2のオブジェクト1304は第2の人物に対応してよく、第3のオブジェクト1306は第3の人物に対応してよい。別の実施形態では、オブジェクト1302〜1306の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0165】
[00208]
図13はまた、モバイルデバイスの画面上のフレーム1300の表示1310を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示1310は、ユーザが(たとえば、トラッキングタスクT250によって)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構1311を含み得る。たとえば、ユーザは、画面上のユーザ選択機構1311をタッチし、第1のオブジェクト1302のトラッキングを可能にするために第1のオブジェクト1302の周囲で第1の焦点リング1312をドラッグすることができる。第1の焦点リング1312のそのような配置に応答して、モバイルデバイスは、示されるシーン内でのトラッキングのために、第1のオブジェクト1312を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構1311をタッチし、第2のオブジェクト1304および第3のオブジェクト1306の周囲で第2の焦点リング1314および第3の焦点リング1316をドラッグして、それぞれ、第2のオブジェクト1304および第3のオブジェクト1306のトラッキングを可能にすることができる。第2の焦点リング1314および第3の焦点リング1316のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト1304と第3のオブジェクト1306とを選択することができる。
【0166】
[00209]
図13はまた、第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム1320を示す。フレーム1320において、各オブジェクト1302〜1306の場所は、第1の時刻におけるシーンを示すフレーム1300中の対応する場所に対して変化している。たとえば、フレーム1320において、第1のオブジェクト1302は第2のオブジェクト1304に近づくように移動しており、第2のオブジェクト1304は第1のオブジェクト1302に近づくように移動しており、第3のオブジェクト1306はフレームの下部に近づくように移動している。
【0167】
[00210]
図13はまた、モバイルデバイスの画面上のフレーム1320の表示1330を示す。表示1330は、2つ以上のウィンドウへと(たとえば、表示タスクT400によって)区分され得る。この例では、表示1330は、第1のウィンドウ1332、第2のウィンドウ1334、および第3のウィンドウ1336へと区分される。たとえば、ユーザ選択機構1311による3つのオブジェクト1302〜1306の選択に応答して、モバイルデバイスは、3つの対応するウィンドウ1332〜1336へと表示1330を区分することができる。
【0168】
[00211]モバイルデバイスは、オブジェクト選択が完了したというユーザによる指示に応答して、選択された区分を適用するように構成され得る。たとえば、対応するオブジェクトが選択されるにつれて各ウィンドウを作成することによって、デフォルトの区分が適用され得るが、(たとえば、表示エリアがオブジェクト選択の間に利用可能なままであるように)オブジェクト選択が完了するまで区分を適用するのを控えることが望ましいことがある。デバイスは、たとえば、選択の完了が示されるまで焦点リングおよび/または選択されたオブジェクトを明滅させることによって、オブジェクト選択が進行中であることを示し得る。各々の選択されたオブジェクトに対する焦点リングまたは他の選択の指示は、選択の完了が示されるまで、(たとえば、オブジェクトがシーンの中を動くにつれて)オブジェクトを追い続け、または別様に示し続け得る。
【0169】
[00212]第1のウィンドウ1332は、第1のオブジェクト1302を含むフレーム1320の第1の部分を表示することができる。フレーム1320の第1の部分は、フレーム1320の中の第1のオブジェクト1302の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1302の位置をトラッキングし、第1のウィンドウ1332において、第1のオブジェクト1302の位置に注目している(たとえば、その位置が中心である)ビデオストリームを表示することができる。第2のウィンドウ1334は、第2のオブジェクト1304を含むフレーム1320の第2の部分を表示することができる。フレーム1320の第2の部分は、フレーム1320の中の第2のオブジェクト1304の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1304の位置をトラッキングし、第2のウィンドウ1334において、第2のオブジェクト1304の位置に注目しているビデオストリームを表示することができる。第3のウィンドウ1336は、第3のオブジェクト1306を含むフレーム1320の第3の部分を表示することができる。フレーム1320の第3の部分は、フレーム1320の中の第3のオブジェクト1306の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第3のオブジェクト1304の位置をトラッキングし、第3のウィンドウ1336において、第3のオブジェクト1306の位置に注目しているビデオストリームを表示することができる。
【0170】
[00213]
図13はまた、(たとえば、第2の時刻の後の)第3の時刻におけるシーンを示す、フレーム1340を示す。フレーム1340において、各オブジェクト1302〜1306の場所は、第2の時刻におけるシーンを示すフレーム1320中の対応する場所に対して変化している。たとえば、フレーム1340において、第1のオブジェクト1302および第2のオブジェクト1304互いに交差しており、第3のオブジェクト1306はフレームの右下部分に近づくように移動している。
【0171】
[00214]
図13はまた、モバイルデバイスによって生成されるウィンドウ1332〜1336を使用した、モバイルデバイスの画面上のフレーム1340の表示1350を示す。フレーム1340の第1の部分が第2のウィンドウ1334に表示され、フレーム1340の第2の部分が第1のウィンドウ1332に表示されることが理解されよう。たとえば、第1のオブジェクト1302の一部分が(たとえば、トラッキングタスクT250によって示されるような)ある閾値の量だけ第2のオブジェクト1304の一部分と重複する場合、第1のウィンドウ1332は、第2のオブジェクト1304に注目したビデオストリームを表示することができ、第2のウィンドウ1334は、第1のオブジェクト1302に注目したビデオストリームを表示することができる。第3のウィンドウ1336は、第3のオブジェクト1306を含むフレーム1340の第3の部分を表示する。
【0172】
[00215]特定の実施形態では、閾値の量は、第1のオブジェクト1302および第2のオブジェクト1304の完全な重複に対応し得る。たとえば、第1のオブジェクト1302の場所と関連付けられる各x座標(またはy座標)が第2のオブジェクト1304の場所と関連付けられる各x座標(またはy座標)よりも小さい値を有するとき、第1のオブジェクト1302は、第1のオブジェクト1302の場所と関連付けられる各x座標(またはy座標)が第2のオブジェクト1304の場所と関連付けられる各x座標(またはy座標)よりも大きい値を有するときに、フレームにおいて第2のオブジェクト1304と完全に重複し得る(たとえば、交差し得る)。
【0173】
[00216]代替的に、第1のオブジェクト1302の場所と関連付けられる各x座標(またはy座標)が第2のオブジェクト1304の場所と関連付けられる各x座標(またはy座標)よりも大きい値を有するとき、第1のオブジェクト1302は、第1のオブジェクト1302の場所と関連付けられる各x座標(またはy座標)が第2のオブジェクト1304の場所と関連付けられる各x座標(またはy座標)よりも小さい値を有するときに、フレームにおいて第2のオブジェクト1304と完全に重複し得る(たとえば、交差し得る)。
【0174】
[00217]一例では、ある寸法(たとえば、高さまたは幅)の2つの選択されたオブジェクトのバウンディングボックスの中心の間の距離がその寸法の2つのボックスのサイズの合計の半分未満であるとき、重複が示され得る。そのような場合、トラッキングタスクは、フレームの下部に最も近いオブジェクトが他のオブジェクトと重複すると仮定することができる。別の例では、カラーヒストグラムが、色値のそれぞれの範囲を各々の選択されたオブジェクトと関連付けるために実行される。そのような場合、2つのオブジェクトが近接しており、(A)一方のオブジェクトの範囲内にある色値を有するピクセルと、(B)他方のオブジェクトの範囲内にある色値を有するピクセルとの間の空間的な境界が、オブジェクトのうちの1つの予想されるエリア内に見出されるとき、重複が示され得る。
【0175】
[00218]別の特定の実施形態では、閾値の量は、第1のオブジェクト1302と第2のオブジェクト1304の部分的な(たとえば、重複したオブジェクトの予想されるエリアの10%、20%、25%、30%、40%、または50%の)重複に対応し得る。たとえば、第1のオブジェクト1302の場所と関連付けられるx座標(またはy座標)が第2のオブジェクト1304の場所と関連付けられるx座標(またはy座標)の同じ値を有するフレームでは、第1のオブジェクト1302は第2のオブジェクト1304と部分的に重複し得る。
【0176】
[00219]
図13に示される実施形態は、モバイルデバイスが、フレーム1300、1320、1340中のオブジェクト1302〜1306をトラッキングすることを可能にでき、オブジェクト1302〜1306に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1332〜1336に表示することができる。
図13に示される実施形態はまた、各ウィンドウ1332〜1336中のビデオストリームが、互いに対する各オブジェクト1302〜1306の相対的な場所を示すことを可能にし得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図13に関して説明される技法を実行することができる。
【0177】
[00220]選択されたオブジェクトの咬合を検出したことに応答して、上で説明されたように表示の区分を修正するように、表示タスクT400を実施するのが望ましいことがある。たとえば、特定のオブジェクトが(たとえば、トラッキングタスクによって示されるように)互いに交差するとき、二次的ビデオストリームと対応するウィンドウ1332〜1336との関連付けは、交差を反映するように更新され得る(たとえば、切り替えられ得る)。たとえば、切り替えられるオブジェクトおよび/またはウィンドウを短期間(たとえば、1秒、2秒、または3秒)明滅させることによって、切替えに対する注意を引くようにデバイスを構成するのが望ましいことがある。
【0178】
[00221]ある時間近接したままであるオブジェクトを過度に頻繁に切り替えるのを防ぐために、(たとえば、トラッキングタスクT250および/または表示タスクT400内の)内部機構を適用するのが望ましいことがある。1つのそのような例では、2つのオブジェクトの切替えが持越し期間(たとえば、2秒、3秒、4秒、または5秒)内に反転されないように、持越し期間が適用される。別の例では、持越し期間内に第2のより大きな閾値の量の重複が発生しない限り、2つのオブジェクトの切替えが持越し期間内に反転されないように、ヒステリシス機能が閾値の量に適用される。
【0179】
[00222]
図14を参照すると、オブジェクトトラッキングを使用してビデオ処理方法1400の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法1400は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0180】
[00223]方法1400は、1402において、モバイルデバイスにおいて、表示されるシーン中の第1のオブジェクトおよび表示されるシーン中の第2のオブジェクトの選択を受け取ることを含む。たとえば、
図13を参照すると、ユーザは、画面上のユーザ選択機構1311をタッチし、第1のオブジェクト1302の周囲で第1の焦点リング1312をドラッグし、第2のオブジェクト1304の周囲で第2の焦点リング1314をドラッグして、それぞれ、第1のオブジェクト1302および第2のオブジェクト1304のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームのフレーム(たとえば、フレーム1300)に対応し得る。
【0181】
[00224]画面はまた、1404において、少なくとも第1のウィンドウおよび第2のウィンドウへと区分され得る。たとえば、
図13を参照すると、表示1330は、第1のウィンドウ1332、第2のウィンドウ1334、および第3のウィンドウ1336に区分され得る。たとえば、ユーザ選択機構1311による3つのオブジェクト1302〜1306の選択に応答して、モバイルデバイスは、3つの対応するウィンドウ1332〜1336へと表示1330を区分することができる。
【0182】
[00225]1406において、第1のオブジェクトを含むシーンの第1の部分は最初、第1のウィンドウに表示され得る。たとえば、
図13を参照すると、第1のウィンドウ1332は最初、第1のオブジェクト1302を含むフレーム1320の第1の部分を表示することができる。フレーム1320の第1の部分は、フレーム1320の中の第1のオブジェクト1302の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト1302の位置をトラッキングすることができ、第1のオブジェクト1302の位置に注目しているビデオストリームが第1のウィンドウ1332に表示され得る。
【0183】
[00226]1408において、第2のオブジェクトを含むシーンの第2の部分は最初、第2のウィンドウに表示され得る。たとえば、
図13を参照すると、第2のウィンドウ1334は最初、第2のオブジェクト1304を含むフレーム1320の第2の部分を表示することができる。フレーム1320の第2の部分は、フレーム1320の中の第2のオブジェクト1304の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト1304の位置をトラッキングすることができ、第2のオブジェクト1304の位置に注目しているビデオストリームが第2のウィンドウ1334に表示され得る。
【0184】
[00227]1410において、第1のオブジェクトの一部分が第2のオブジェクトの一部分と閾値の量だけいつ重複するかに基づいて、第1のオブジェクトおよび第2のオブジェクトが表示されるウィンドウが制御され得る。たとえば、
図13を参照すると、フレーム1340の第1の部分が表示1350の第2のウィンドウ1334に表示され、フレーム1340の第2の部分が表示1350の第1のウィンドウ1332に表示される。たとえば、第1のオブジェクト1302の一部分がある閾値の量だけ第2のオブジェクト1304の一部分と重複する場合、第1のウィンドウ1332は、第2のオブジェクト1304に注目したビデオストリームを表示することができ、第2のウィンドウ1334は、第1のオブジェクト1302に注目したビデオストリームを表示することができる。第3のウィンドウ1336は、第3のオブジェクト1306を含むフレーム1340の第3の部分を表示する。
【0185】
[00228]
図14の方法1400は、モバイルデバイスが、フレーム1300、1320、1340中のオブジェクト1302〜1306をトラッキングすることを可能にでき、オブジェクト1302〜1306に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1332〜1336に表示することができる。方法1400はまた、各ウィンドウ1332〜1336中のビデオストリームが、互いに対する各オブジェクト1302〜1306の相対的な場所を示すことを可能にし得る。たとえば、特定のオブジェクトが互いに交差するとき、ウィンドウ1332〜1336中のビデオストリームが交差を反映するように更新され得る(たとえば、切り替えられ得る)。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法1400を実行することができる。
【0186】
[00229]
図15は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図15に示される実施形態に関して説明されるビデオ処理技法は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0187】
[00230]
図15は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム1500を示す。たとえば、フレーム1500は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1500に示されるシーンは、第1のオブジェクト1502と、第2のオブジェクト1504と、第3のオブジェクト1506と、星と、木とを含む。示される実施形態では、第1のオブジェクト1502は第1の人物に対応してよく、第2のオブジェクト1504は第2の人物に対応してよく、第3のオブジェクト1506は第3の人物に対応してよい。別の実施形態では、オブジェクト1502〜1506の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0188】
[00231]
図15はまた、モバイルデバイスの画面上のフレーム1500の表示1510を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示1510は、ユーザが(たとえば、トラッキングタスクT250による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構1511を含み得る。たとえば、ユーザは、画面上のユーザ選択機構1511をタッチし、第1のオブジェクト1502のトラッキングを可能にするために第1のオブジェクト1502の周囲で第1の焦点リング1512をドラッグすることができる。第1の焦点リング1512のそのような配置に応答して、モバイルデバイスは、トラッキングのために第1のオブジェクト1512を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構1511をタッチし、第2のオブジェクト1504および第3のオブジェクト1506の周囲で第2の焦点リング1514および第3の焦点リング1516をドラッグして、それぞれ、第2のオブジェクト1504および第3のオブジェクト1506のトラッキングを可能にすることができる。第2の焦点リング1514および第3の焦点リング1516のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト1504と第3のオブジェクト1506とを選択することができる。
【0189】
[00232]
図15はまた、(たとえば、第1の時刻の後の)第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム1520を示す。フレーム1520において、オブジェクト1502〜1506の場所は、第1の時刻におけるシーンを示すフレーム1500の中で示される対応する場所に対して変化している。たとえば、フレーム1520において、第1のオブジェクト1502は星に近づくように移動しており、第2のオブジェクト1504は木に近づくように移動しており、第3のオブジェクトはフレームの下部に近づくように移動している。
【0190】
[00233]
図15はまた、第1のオブジェクト1502が第2のオブジェクト1504よりも前に選択され、第2のオブジェクト1504が第3のオブジェクト1506よりも前に選択された場合の、モバイルデバイスの画面上でのフレーム1520の表示1530を示す。たとえば、表示1530は、第1のウィンドウ1532、第2のウィンドウ1534、および第3のウィンドウ1506へと(たとえば、表示タスクT400によって)区分され得る。各ウィンドウ1532〜1536に表示されるビデオストリームは、オブジェクト1502〜1506の選択順序に依存し得る。
【0191】
[00234]第1のウィンドウ1532は、第1のオブジェクト1502が他のオブジェクト1504、1506の選択よりも前に選択された場合、第1のオブジェクト1502を含むフレーム1520の第1の部分を表示することができる。フレーム1520の第1の部分は、フレーム1520の中の第1のオブジェクト1502の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト1502の位置をトラッキングすることができ、第1のオブジェクト1502の位置に注目しているビデオストリームが第1のウィンドウ1532に表示され得る。第2のウィンドウ1534は、第2のオブジェクト1504が第3のオブジェクト1506の選択よりも前に選択された場合、第2のオブジェクト1504を含むフレーム1520の第2の部分を表示することができる。フレーム1520の第2の部分は、フレーム1520の中の第2のオブジェクト1504の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト1504の位置をトラッキングすることができ、第2のオブジェクト1504の位置に注目しているビデオストリームが第2のウィンドウ1534に表示され得る。第3のウィンドウ1536は、第3のオブジェクト1506を含むフレーム1520の第3の部分を表示することができる。フレーム1520の第3の部分は、フレーム1520の中の第3のオブジェクト1506の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト1504の位置をトラッキングすることができ、第3のオブジェクト1506の位置に注目しているビデオストリームが第3のウィンドウ1506に表示され得る。
【0192】
[00235]
図15はまた、第2のオブジェクト1502が第3のオブジェクト1506よりも前に選択され、第3のオブジェクト1506が第1のオブジェクト1502よりも前に選択された場合の、モバイルデバイスの画面上でのフレーム1520の表示1530を示す。たとえば、表示1530は、第1のウィンドウ1532、第2のウィンドウ1534、および第3のウィンドウ1506に区分され得る。各ウィンドウ1532〜1536に表示されるビデオストリームは、オブジェクト1502〜1506の選択順序に依存し得る。
【0193】
[00236]第1のウィンドウ1532は、第2のオブジェクト1504が他のオブジェクト1502、1506の選択よりも前に選択された場合、第2のオブジェクト1504を含むフレーム1520の第2の部分を表示することができる。第2のウィンドウ1534は、第3のオブジェクト1506が第1のオブジェクト1502の選択よりも前に選択された場合、第3のオブジェクト1506を含むフレーム1520の第3の部分を表示することができる。第3のウィンドウ1536は、第1のオブジェクト1502を含むフレーム1520の第1の部分を表示することができる。
【0194】
[00237]
図15に示される実施形態は、モバイルデバイスが、フレーム1500、1520中のオブジェクト1502〜1506をトラッキングすることと、オブジェクト1502〜1506に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1532〜1536に表示することとを可能にし得る。特定のウィンドウ1532〜1536に表示されるビデオストリームは、オブジェクト1502〜1506の選択順序に依存し得る。したがって、ユーザは、重要性(または他の選択基準)に基づいて、特定のウィンドウ1532〜1536にオブジェクト1502〜1506のいずれを配置するかを決定することができる。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図15に関して説明される技法を実行することができる。
【0195】
[00238]
図16を参照すると、オブジェクトトラッキングを使用してビデオ処理方法1600の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法1600は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0196】
[00239]方法1600は、1602において、モバイルデバイスにおいて、表示されるシーン中の第1のオブジェクトおよび表示されるシーン中の第2のオブジェクトの選択を受け取ることを含む。たとえば、
図15を参照すると、ユーザは、画面上のユーザ選択機構1511をタッチし、第1のオブジェクト1502の周囲で第1の焦点リング1512をドラッグし、第2のオブジェクト1504の周囲で第2の焦点リング1514をドラッグして、それぞれ、第1のオブジェクト1502および第2のオブジェクト1504のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。
【0197】
[00240]表示は、1604において、第1のウィンドウおよび第2のウィンドウへと区分され得る。たとえば、
図15を参照すると、表示1530は、第1のウィンドウ1532、第2のウィンドウ1534、および第3のウィンドウ1536に区分され得る。たとえば、ユーザ選択機構1511による3つのオブジェクト1502〜1506の選択に応答して、モバイルデバイスは、3つの対応するウィンドウ1532〜1536へと表示1530を区分することができる。
【0198】
[00241]1606において、第1のオブジェクトを含むシーンの第1の部分は、第1のオブジェクトが第2のオブジェクトの選択の前に選択された場合、第1のウィンドウに表示され得る。たとえば、
図15を参照すると、第1のウィンドウ1532は、第1のオブジェクト1502が他のオブジェクト1504、1506の選択よりも前に選択された場合、第1のオブジェクト1502を含むフレーム1520の第1の部分を表示することができる。フレーム1520の第1の部分は、フレーム1520の中の第1のオブジェクト1502の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト1502の位置をトラッキングすることができ、第1のオブジェクト1502の位置に注目しているビデオストリームが第1のウィンドウ1532に表示され得る。
【0199】
[00242]1608において、第2のオブジェクトを含むシーンの第2の部分は、第1のオブジェクトが第2のオブジェクトの選択の前に選択された場合、第2のウィンドウに表示され得る。たとえば、
図15を参照すると、第2のウィンドウ1534は、第2のオブジェクト1504を含むフレーム1520の第2の部分を表示することができる。フレーム1520の第2の部分は、フレーム1520の中の第2のオブジェクト1504の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト1504の位置をトラッキングすることができ、第2のオブジェクト1504の位置に注目しているビデオストリームが第2のウィンドウ1534に表示され得る。
【0200】
[00243]1610において、シーンの第1の部分は、第2のオブジェクトが第1のオブジェクトの選択の前に選択された場合、第2のウィンドウに表示され得る。加えて、1612において、シーンの第2の部分は、第2のオブジェクトが第1のオブジェクトの選択の前に選択された場合、第1のウィンドウに表示され得る。
【0201】
[00244]
図16の方法1600は、モバイルデバイスが、シーン1500、1520中のオブジェクト1502〜1506をトラッキングすることを可能にでき、オブジェクト1502〜1506に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ1532〜1536に表示することができる。特定のウィンドウ1532〜1536に表示されるビデオストリームは、オブジェクト1502〜1506の選択順序に依存し得る。したがって、ユーザは、重要性(または他の選択基準)に基づいて、特定のウィンドウ1532〜1536にオブジェクト1502〜1506のいずれを配置するかを決定することができる。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法1600を実行することができる。
【0202】
[00245]
図17は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図17に示される実施形態に関して説明されるビデオ処理技法は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0203】
[00246]
図17は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム1700を示す。たとえば、フレーム1700は、モバイルデバイスの画面に表示されるべきビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1700に示されるシーンは、第1のオブジェクト1702と、第2のオブジェクト1704と、第3のオブジェクト1706と、星とを含む。示される実施形態では、第1のオブジェクト1702は第1の人物に対応してよく、第2のオブジェクト1704は木に対応してよく、第3のオブジェクト1706は第2の人物に対応してよい。別の実施形態では、第1のオブジェクト1702および第3のオブジェクト1706の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0204】
[00247]
図17はまた、モバイルデバイスの画面上のフレーム1700の表示1710を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示1710は、ユーザが(たとえば、トラッキングタスクT250による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構1711を含み得る。たとえば、ユーザは、画面上のユーザ選択機構1711をタッチし、第1のオブジェクト1702のトラッキングを可能にするために第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグすることができる。第1の焦点リング1712のそのような配置に応答して、モバイルデバイスは、トラッキングのためにフレーム1700中の第1のオブジェクト1712を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構1711をタッチし、第2のオブジェクト1704および第3のオブジェクト1706の周囲で第2の焦点リング1714および第3の焦点リング1716をドラッグして、それぞれ、第2のオブジェクト1704および第3のオブジェクト1706のトラッキングを可能にすることができる。第2の焦点リング1714および第3の焦点リング1716のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト1704と第3のオブジェクト1706とを選択することができる。
【0205】
[00248]
図17はまた、(たとえば、第1の時刻の後の)第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム1720を示す。フレーム1720において、各オブジェクト1702〜1706の場所は、第1の時刻におけるシーンを示すフレーム1700の中で示される対応する場所に対して変化している。たとえば、フレーム1720において、第1のオブジェクト1702および第3のオブジェクト1704が移動している。第2のオブジェクト(たとえば、木)は静止しているオブジェクトであるが、第2のオブジェクト1704は動いたように見えることがある。たとえば、モバイルデバイス(または他のキャプチャデバイス)の場所が動くことがあり、それによって、第2のオブジェクト1704が動いたという錯覚が生まれることがある。
【0206】
[00249]モバイルデバイスは、選択されたオブジェクトの間の1つまたは複数の空間的な関係(「幾何学的配置」とも呼ばれる)を監視することができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。特定の実施形態において、(たとえば、トラッキングタスクT250によって)各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、トリガ事象があると開始し得る。非限定的な例として、各々の選択されるオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、第1のオブジェクト1702が第2のオブジェクト1704と交差すると開始し得る。他の実施形態において、各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、ユーザ入力があると開始し得る。非限定的な例として、各々の選択されるオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、オブジェクト1702〜1706の2つ以上をユーザが選択すると開始し得る。別の例として、各々の選択されたオブジェクト1702〜1706の間の幾何学的配置をトラッキングすることは、トラッキングモードを開始することをユーザが選択すると開始し得る。
【0207】
[00250]
図17はまた、(たとえば、表示タスクT400による)モバイルデバイスの画面上のフレーム1720の表示1730を示す。モバイルデバイスは、表示1730上での幾何学的配置の指示を含み得る。たとえば、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L
12)は、表示1730に含まれ得る。第1の距離は、フレーム1720の中での第1のオブジェクト1702の位置、およびフレーム1720中での第2のオブジェクト1704の位置に基づいて決定され得る。たとえば、モバイルデバイスは、オブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第1の指示を生成することができる(L
12)。第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L
23)も、表示1730に含まれ得る。第2の距離は、フレーム1720の中での第2のオブジェクト1704の位置、およびフレーム1720の中での第3のオブジェクト1706の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1704の位置と、第3のオブジェクト1706の位置とをトラッキングして、第2の指示を生成することができる(L
23)。第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L
13)も、表示1730に含まれ得る。第3の距離は、フレーム1720の中での第1のオブジェクト1702の位置、およびフレーム1720の中での第3のオブジェクト1706の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第3の指示を生成することができる(L
13)。
【0208】
[00251]モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置(たとえば、選択されたオブジェクトの幾何学的構成)をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の幾何学的構成は、3つの指示(L
12、L
23、L
13)によって形成される三角形として特徴付けられ得る。各オブジェクト間の幾何学的配置の少なくとも1つのパラメータ、または、複合的な幾何学的配置の少なくとも1つのパラメータが、ビデオストリームのフレームをクラスタ化するために使用され得る。非限定的な例として、2つの特定のオブジェクト1702〜1706の間の距離(たとえば、第1の距離、第2の距離、および/または第3の距離)に基づいて、特定のフレームがクラスタ化され得る。別の非限定的な例として、複数のオブジェクト1702〜1706の重心(C
M2)に基づいて、特定のフレームがクラスタ化され得る。たとえば、モバイルデバイスは、各フレームに対する3つの指示(L
12、L
23、L
13)によって形成される三角形の重心(C
M2)を決定することができる。特定の実施形態では、重心(C
M2)は、計算され、インデクシングされ、画面1730に表示され得る。別の実施形態では、重心(C
M2)は、計算されインデクシングされるだけであり得る。選択されたオブジェクトの幾何学的構成が実質的に同様の重心を有するフレームは、メモリの中へと一緒にクラスタ化されインデクシングされ得る。そのようなトラッキングの間、表示の中心が上記の重心と一致するように、表示変換動作を制御するのが望ましいことがある。加えて、または代替的に、選択されたオブジェクトのすべてが表示内で可視のままであるように、カメラの光学および/またはデジタルズーム動作を制御するのが望ましいことがある。
【0209】
[00252]特定の実施形態では、モバイルデバイスは、各オブジェクト1702〜1706の間の幾何学的配置および/または各フレームに対する複合的な幾何学的配置をトラッキングする(たとえば、フレームごとに幾何学的配置をトラッキングする)ことができる。他の実施形態では、モバイルデバイスは、非連続的な間隔において各オブジェクト1702〜1706の間の幾何学的配置および/または複合的な幾何学的配置をトラッキングする(たとえば、非連続的なフレームにおいて幾何学的配置をトラッキングする)ことができる。非連続的なフレームにおいて幾何学的配置をトラッキングすることは、モバイルデバイスにおいて消費される電力の量を減らし(バッテリー持続時間を延長し)、幾何学的配置情報および/またはクラスタ化情報と関連付けられる情報をインデクシングするために使用されるメモリの量を減らすことができる。
【0210】
[00253]たとえば、特定の実施形態では、モバイルデバイスは、各フレームにおいて各オブジェクト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バイトのデータが収集され、メモリへとロギングされる。
【0211】
[00254]しかしながら、非連続的なフレームにおける幾何学的配置をトラッキングすることは、メモリの要件を緩和し得る。非限定的な例として、1時間、15フレームごとの間隔で各オブジェクト1702〜1706をトラッキングしてインデクシングすることは、メモリ空間に93.33%の節約をもたらし得る。非連続的なフレームにおいて幾何学的配置をトラッキングすることは、オブジェクト1702〜1706と関連付けられる動きが比較的少量である状況において、特に有益であり得る。モバイルデバイスは、ユーザ入力(たとえば、ユーザ選好)に基づいてフレームをトラッキングしてインデクシングする頻度を決定することができ、および/または、たとえば、選択されたオブジェクトの1つまたは複数の各々の場所におけるユーザ指示および/または経時的な変化の程度に基づいて、その頻度を変化させることができる。
【0212】
[00255]各オブジェクト1702〜1706はまた、画面1730上のオブジェクト1702〜1706の位置に対応する、個々の重心を有し得る。たとえば、第1のオブジェクト1702は、第1のオブジェクト1702の位置に重心(C
01)を有してよく、第2のオブジェクト1704は、第2のオブジェクト1704の位置に重心(C
01)を有してよく、以下同様である。各オブジェクト1702〜1706の重心はまた、モバイルデバイスがトラッキングする幾何学的パラメータであり得る。
【0213】
[00256]
図17はまた、(たとえば、第2の時刻の後の)第3の時刻においてキャプチャされたシーンを示す、ビデオストリームのフレーム1740を示す。フレーム1740において、各オブジェクト1702〜1706の場所は、第2の時刻におけるシーンを示すフレーム1720の中で示される対応する場所に対して変化している。
【0214】
[00257]
図17はまた、(たとえば、表示タスクT400による)モバイルデバイスの画面上のフレーム1740の表示1750を示す。モバイルデバイスは、表示1750上での幾何学的配置の指示を含み得る。たとえば、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L
12)は表示1750に含まれてよく、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L
23)は表示1750に含まれてよく、第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L
13)は表示1750に含まれてよい。加えて、モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の複合的な幾何学的配置は、3つの指示(L
12、L
23、L
13)によって形成される三角形に対応し得る。
【0215】
[00258]別の実施形態では、モバイルデバイスは、各オブジェクト1702〜1706の動きをトラッキングし、各オブジェクト1702〜1706の経時的な動きを表示するプロットのシーケンスを生成することができる。モバイルデバイスは、各フレームにおいて各オブジェクト1702〜1706に対するプロットを生成することができ、上で説明されたように、メモリの要件を緩和して電力の節約を改善するために、非連続的なフレームにおいて各オブジェクト1702〜1706に対するプロットを生成することができる。
【0216】
[00259]表示上で現在見えていない(たとえば、現在、ビデオストリームによってキャプチャされるシーン内にない)オブジェクトに対する1つまたは複数の選択されたオブジェクトの空間的な関係をトラッキングするようにデバイスを構成すること(たとえば、トラッキングタスクT250を実施すること)も可能である。たとえば、現在画面上にない固定された(基準の)オブジェクトに対する移動するオブジェクトの空間的な関係がトラッキングされ得る。特定の例では、デバイスは、選択された選手がゴールまたはバスケットから20フィート以内にいるとき、および/または、ゴール/バスケットに向かって動いているときには、ゴール/バスケットが現在画面上にないとしても、常に指し示すように構成され得る。そのような場合、デバイスは、現在表示されているシーンよりも大きな地図を作成するように構成され得る。カメラの位置が(たとえば、GPSセンサのような位置センサによって示されるように)知られている場合、カメラの1つまたは複数の方位センサが、現在のビューがより大きなシーンの地図とどのように関連するかを決定するために使用され得る。そのような1つまたは複数の方位センサは、重力軸(たとえば、デバイスと地球の中心を通る軸)に対するカメラの方位を示すための、1つもしくは複数の慣性センサ(たとえば、ジャイロスコープおよび/または加速度計)、および/または1つもしくは複数の磁場センサ(たとえば、磁力計)を含み得る。加えて、または代替的に、スポーツのフィールドまたはコート上の印のような、または舞台のシーンの固定物のような、固定された基準のオブジェクトである可視の地物が、基準として使用され得る。基準のオブジェクトの外観は、そのオブジェクトが見られる角度が変化するにつれて変化し得るが、そのようなマッピングは、動いているカメラに対しても行われ得る。
【0217】
[00260]
図17に示される実施形態は、モバイルデバイスが、
図18に関して下で説明されるように、シーン1700、1720、1740の中のオブジェクト1702〜1706の幾何学的配置をトラッキングし、実質的に同様の幾何学的配置を有するフレームを検索のためにクラスタ化することを可能にし得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図17に関して説明される技法を実行することができる。
【0218】
[00261]本明細書で説明されるような表示の区分および/またはオブジェクトトラッキングの使用法および適用例は、スポーツイベント(たとえば、サッカー、バスケットボール、フットボール、ホッケー)、社会的なイベント(たとえば、結婚式、パーティ、ダンス)、演芸(たとえば、演劇、学芸会、コンサート、デュエット)、およびセキュリティまたは調査のための監視のいずれかを含み得る。モバイルデバイスはまた、頭部に装着されるディスプレイであってよく、ユーザの命令を検出するために、ユーザの選択が、たとえば、ジョイスティック、ジェスチャ認識カメラシステム、またはタッチセンサおよび/もしくは方位センサ(上で説明されたような1つまたは複数の方位センサ)を装備した手袋を使用することにより実行される。ビデオストリームは、生であってよく(たとえば、Bluetooth(登録商標)のような短距離接続を介して、またはインターネットへのWi−Fi(登録商標)接続のようなネットワークを介して、デバイスによってキャプチャされ、または別のキャプチャデバイスからストリーミングされてよく)、または(やはりそのデバイスまたは別のデバイスによって)記録されてよい。
【0219】
[00262]ストリーム内での選択されたオブジェクトの間の相対的な位置および/または空間的な関係に従って、ビデオストリームのフレームを分類するのが望ましいことがある。
図18を参照すると、クラスタ化に基づいてフレームを検索するために使用されるモバイルデバイスの画面上の表示1800の特定の実施形態が示されている。表示1800は、水平軸と垂直軸とを有するグラフを含み得る。水平軸は、モバイルデバイスによってキャプチャされる異なるビデオファイルに対応し得る。たとえば、例示的な実施形態では、モバイルデバイスは、第1のビデオファイルと第2のビデオファイルとをキャプチャした。垂直軸は、ビデオファイルの時間インデックスに対応し得る。
【0220】
[00263]各ビデオファイルは、ビデオファイル中の選択されたオブジェクトの幾何学的配置と関連付けられる少なくとも1つのパラメータに基づく、フレームのクラスタを含み得る。たとえば、ビデオファイル中の各クラスタは、選択されたオブジェクト間で実質的に同様の幾何学的配置を有する、フレームのグループを含み得る。
図18に示されるクラスタは、オブジェクト間の重心に基づき得る。しかしながら、他の実施形態では、クラスタは1つまたは複数の異なるパラメータ(たとえば、形状、距離、空間的な特性、カラースキームなど)に基づき得る。パラメータはユーザによって選択され得る。
【0221】
[00264]第1のビデオの10:00前後のマークまでの、第1のビデオの初めにあるフレームは、第1のクラスタ(たとえば、クラスタ1)へとグループ化され得る。第1のクラスタは、ピクセル座標空間中の選択されたオブジェクト間の重心が150前後のx座標と250前後のy座標とを有するような、フレームに対応し得る。
図17の第2のフレームを参照すると、選択されたオブジェクト1702〜1706の重心(C
M2)(たとえば、三角形の重心(C
M2))は、表示1730上の150前後のx座標と、表示1730上の250前後のy座標とを有し得る。したがって、第2のフレーム(およびオブジェクト1702〜1706の間の実質的に同様の重心を有する他のフレーム)が、
図18の第1のクラスタに配置され得る。したがって、ユーザが第1のクラスタを選択する場合、モバイルデバイスは、選択されたオブジェクト1702〜1706が
図17の第2のフレームと実質的に同様の構成を有する、対応するビデオストリーム(たとえば、ビデオの部分)を表示することができる。
【0222】
[00265]第1のビデオの10:00前後のマークから第1のビデオの20:00前後のマークまでのフレームは、第2のクラスタ(たとえば、クラスタ2)へとグループ化され得る。第2のクラスタは、ピクセル座標空間中の選択されたオブジェクト間の重心が200前後のx座標と250前後のy座標とを有するような、フレームに対応し得る。
図3の第3のフレームを参照すると、選択されたオブジェクト1702〜1706の重心(C
M3)は、表示1750上の200前後のx座標と、表示1750上の250前後のy座標とを有し得る。したがって、第3のフレーム(およびオブジェクト1702〜1706の間の実質的に同様の重心を有する他のフレーム)が、
図18の第2のクラスタに配置され得る。したがって、ユーザが第2のクラスタを選択する場合、モバイルデバイスは、選択されたオブジェクト1702〜1706が
図18の第3のフレームと実質的に同様の構成を有する、対応するビデオストリーム(たとえば、ビデオの部分)を表示することができる。
【0223】
[00266]追加のクラスタ(たとえば、第3のクラスタ)は、異なる重心(たとえば、175のx座標および325のy座標)を有するフレームに対応し得る。ユーザは、ビデオの特定の部分と関連付けられる構成(たとえば、重心)を有するクラスタを選択することによって、ビデオの特定の部分を検索する(たとえば、位置特定する)ことができる。したがって、選択されたオブジェクト1702〜1706の幾何学的パラメータ(たとえば、距離、選択されたオブジェクト各々のおよび/または選択されたオブジェクトすべての重心)に基づくクラスタへとフレームをインデクシングすることによって、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、ビデオの所望の部分を容易に位置特定することができる。クラスタへとフレームをインデクシングすることで、ユーザは、どの構成(たとえば、幾何学的配置)が最も頻繁に発生したか、最も稀に発生したかなどを、見ることが可能になり得る。そのような幾何学的パラメータのそのようなインデクシングおよび/または値は、上で説明されたようなタスクT300および/またはT350によって記憶されているメタデータに含まれ得る。
【0224】
[00267]
図18はまた、ビデオストリームのフレームのクラスタと関連付けられる領域の表示1802を含む。たとえば、領域の表示1802は、
図17のシーンのビデオストリームに対応し得る。表示1802は10個の領域(C1〜C10)を含む。示される実施形態では、領域(C1〜C10)は、特定のフレームにおけるオブジェクト1702〜1706の重心に基づく。他の実施形態では、領域(C1〜C10)は、フレームをクラスタへとインデクシングするために使用され得る他の幾何学的パラメータ(たとえば、オブジェクト1702〜1706の各々の重心、形状、距離、空間的な特性、カラースキームなど)に基づき得る。特定の実施形態では、各領域(C1〜C10)は等しいサイズを有し得る(たとえば、各領域(C1〜C10)は「ボロノイセル」)である。
【0225】
[00268]各領域(C1〜C10)は、対応するクラスタと関連付けられる重心に対応するx座標とy座標とを含み得る。非限定的な例として、第1の領域(C1)に対応する重心は、75というx座標と580というy座標とを有し得る。加えて、第2の領域(C2)に対応する重心は、215というx座標と580というy座標とを有し得る。
図17のシーンのビデオストリーム中のフレームは、オブジェクト1702〜1706の重心によってインデクシングされ得る。各フレームは、重心に基づいて領域(C1〜C10)の1つに対応するクラスタに配置され得る。たとえば、第1の領域(C1)の重心に最も近い重心を有するフレームは、対応する第1のクラスタ内に配置され得る。そのようなクラスタ化情報は、(たとえば、本明細書で説明されるようなビデオストリームに同期されるメタデータストリーム中の)メタデータとして対応するフレームと関連付けられ得る。そのような場合、特定のクラスタ内にインデクシングされるフレームは、メタデータを探索することによって、検索のために容易に識別されることが可能であり、ビデオストリーム全体を確認する必要をなくす。
【0226】
[00269]モバイルデバイスは、特定のクラスタをユーザが選択したことに応答して、特定の幾何学的配置(たとえば、重心)を有するビデオフレームを表示することができる。たとえば、ユーザが第1の領域(C1)を選択する(たとえば、タッチする)場合、モバイルデバイスは、オブジェクト1702〜1706の重心が第1の(C1)領域内にある、ビデオフレームのクラスタを表示することができる。特定の実施形態では、ユーザは、第1の領域(C1)において画面にタッチし、閾値を超える時間の期間(たとえば、3秒)、第1の領域(C1)をホールドすることができる。3秒間第1の領域をホールドした後、第1の領域(C1)は表示1802上で拡大され得る。たとえば、表示1802は、1804に示されるように第1の領域(C1)を示し得る。このモードでは、第1の領域1804は、特定のフレームの重心(C
M1023-1026)に基づいて、特定のフレーム(たとえば、フレーム1023からフレーム1026)を示し得る。特定の実施形態では、ユーザは特定のフレーム(たとえば、フレーム1024)を選択することができ、モバイルデバイスはフレーム1024においてビデオストリームの再生を開始することができる。
【0227】
[00270]
図19を参照すると、オブジェクトトラッキングを使用してビデオ処理方法1900の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法1900は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0228】
[00271]方法1900は、1902において、モバイルデバイスにおいて、シーン中の複数のオブジェクトの選択を受け取ることを含む。たとえば、
図17を参照すると、ユーザは、画面上のユーザ選択機構1711をタッチし、第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグし、第2のオブジェクト1704の周囲で第2の焦点リング1714をドラッグし、第3のオブジェクト1706の周囲で第3の焦点リング1716をドラッグして、それぞれ、第1、第2、および第3のオブジェクト1702〜1706のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。
【0229】
[00272]1904において、各オブジェクト間の幾何学的配置がトラッキングされ得る。たとえば、
図17を参照すると、モバイルデバイスは、各々の選択されたオブジェクト1702〜1706間の幾何学的配置をトラッキングすることができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。
【0230】
[00273]1906において、幾何学的配置の指示が画面上に表示され得る。たとえば、
図17を参照すると、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離の第1の指示(L
12)は、表示1730に含まれ得る。第1の距離は、フレーム1720の中での第1のオブジェクト1702の位置、およびフレーム1720中での第2のオブジェクト1704の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第1の指示(L
12)を生成することができる。第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離の第2の指示(L
23)も、表示1730に含まれ得る。第2の距離は、フレーム1720の中での第2のオブジェクト1704の位置と、フレーム1720の中での第3のオブジェクト1706の位置とに基づいて決定され得る。たとえば、モバイルデバイスは、第2のオブジェクト1704の位置と、第3のオブジェクト1706の位置とをトラッキングして、第2の指示(L
23)を生成することができる。第1のオブジェクト1702と第3のオブジェクト1706との間の第3の距離の第3の指示(L
13)も、表示1730に含まれ得る。第3の距離は、フレーム1720の中での第1のオブジェクト1702の位置、およびフレーム1720の中での第3のオブジェクト1706の位置に基づいて決定され得る。たとえば、モバイルデバイスは、第1のオブジェクト1702の位置と、第2のオブジェクト1704の位置とをトラッキングして、第3の指示(L
13)を生成することができる。
【0231】
[00274]
図19の方法1900は、モバイルデバイスが、フレーム1700、1720、1740の中のオブジェクト1702〜1706の幾何学的配置をトラッキングし、実質的に同様の幾何学的配置を有するフレームを検索のためにクラスタ化することを可能にし得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法1900を実行することができる。さらなる例では、方法は、1つまたは複数のオブジェクトの間の指定された空間的な関係が検出されるとき、たとえば、第1の選択されたオブジェクトと第2の選択されたオブジェクトとの間の距離が指定された閾値の距離よりも小さくなる(代替的には大きくなる)とき、警告条件を示すことを含み得る。
【0232】
[00275]
図20を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2000、2010の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法2000、2010は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0233】
[00276]方法2000は、2002において、モバイルデバイスにおいて、シーン中の複数のオブジェクトの選択を受け取ることを含む。たとえば、
図17を参照すると、ユーザは、画面上のユーザ選択機構1711をタッチし、第1のオブジェクト1702の周囲で第1の焦点リング1712をドラッグし、第2のオブジェクト1704の周囲で第2の焦点リング1714をドラッグし、第3のオブジェクト1706の周囲で第3の焦点リング1716をドラッグして、それぞれ、第1、第2、および第3のオブジェクト1702〜1706のトラッキングを可能にすることができる。表示されるシーン1700は、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。
【0234】
[00277]2004において、各オブジェクト間の幾何学的配置がトラッキングされ得る。たとえば、
図17を参照すると、モバイルデバイスは、各々の選択されたオブジェクト1702〜1706間の幾何学的配置をトラッキングすることができる。たとえば、モバイルデバイスは、第1のオブジェクト1702と第2のオブジェクト1704との間の第1の距離と、第2のオブジェクト1704と第3のオブジェクト1706との間の第2の距離と、第3のオブジェクト1706と第1のオブジェクト1702との間の第3の距離とをトラッキングして測定することができる。加えて、モバイルデバイスはまた、オブジェクト1702〜1706の複合的な幾何学的配置をトラッキングすることができる。たとえば、示される実施形態では、オブジェクト1702〜1706の複合的な幾何学的配置は、3つの指示(L
12、L
23、L
13)によって形成される三角形に対応し得る。
【0235】
[00278]2006において、ビデオストリームのフレームは、幾何学的配置と関連付けられる少なくとも1つのパラメータに基づいてクラスタ化され得る。たとえば、
図18を参照すると、ビデオファイル中の各クラスタは、選択されたオブジェクト1706〜1708間で実質的に同様の幾何学的配置を有する、フレームのグループを含み得る。
図18に示されるクラスタは、オブジェクト1706〜1708の間の重心(C
M2、C
M3)(たとえば、三角形の重心)に基づき得る。
【0236】
[00279]特定の実施形態では、方法2000は、オブジェクトが特定の幾何学的配置にあるときに、フレームを検索することを含み得る。たとえば、
図18を参照すると、モバイルデバイスは、フレーム中のオブジェクト1702〜1706の重心(C
M2、C
M3)に基づいてフレームをインデクシングすることができる。特定の重心(たとえば、特定の幾何学的配置)を有するフレームは、特定の重心と関連付けられるクラスタを選択することによって容易に実現され得る。たとえば、モバイルデバイスは、
図18の表示1800に示されるような第1のクラスタ(たとえば、クラスタ1)を選択することによって、オブジェクト1702〜1706が
図17の第2のフレーム中のオブジェクト1702〜1706と実質的に同様の幾何学的配置を有するフレームを検索することができる。たとえば、第1のクラスタをユーザが選択したことに応答して、モバイルデバイスは、オブジェクト1702〜1706の重心が150前後のx座標と250前後のy座標とを有するフレームを検索することができる。
【0237】
[00280]方法2010は、2012において、モバイルデバイスにおいて、ビデオストリーム中の選択されたオブジェクトの特定の幾何学的配置の指示を受信することを含み得る。非限定的な例として、
図18を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)の重心に最も近いビデオストリームを表示するための、指示(たとえば、表示1802に示される第1の領域(C1)においてユーザが画面をタッチすること)を受け取り得る。
【0238】
[00281]2014において、ビデオストリームのフレームは、特定の幾何学的配置に基づいて検索され得る。たとえば、
図18を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)に対応するエリアの中にある、
図17のシーン中のビデオストリームのフレームを検索することができる。
【0239】
[00282]2016において、検索されたフレームはモバイルデバイスの画面上に表示され得る。たとえば、
図18を参照すると、モバイルデバイスは、オブジェクト1702〜1704の重心が第1の領域(C1)に対応するエリアの中にある、ビデオストリームのフレームを表示する(たとえば、再生する)ことができる。特定の実施形態では、モバイルデバイスは、順次的な順序でビデオストリームを再生することができる。
【0240】
[00283]
図20の方法2000、2010は、ビデオの特定の部分と関連付けられる構成(たとえば、重心)を有するクラスタを選択することによってユーザがビデオの特定の部分を検索し(たとえば、位置特定し)得ることを可能にすることができる。したがって、選択されたオブジェクト1702〜1706の幾何学的パラメータに基づくクラスタへとフレームをインデクシングすることによって、モバイルデバイスのユーザは、ビデオを見進める(たとえば、再生する、早送りする、巻き戻すなど)必要なく、ビデオの所望の部分を容易に位置特定することができる。
【0241】
[00284]
図21は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図21に示される実施形態に関して説明されるビデオ処理技法は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0242】
[00285]
図21は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム2100を示す。たとえば、フレーム2100は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム1100に示されるシーンは、第1のオブジェクト2102と、第2のオブジェクト2104と、第3のオブジェクト2106と、星と、木とを含む。示される実施形態では、第1のオブジェクト2102は第1の人物に対応してよく、第2のオブジェクト2104は第2の人物に対応してよく、第3のオブジェクト2106は第3の人物に対応してよい。別の実施形態では、オブジェクト2102〜2106の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0243】
[00286]
図21はまた、モバイルデバイスの画面上のフレーム2100の表示2110を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示2110は、ユーザが(たとえば、トラッキングタスクT250による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構2111を含み得る。たとえば、ユーザは、画面上のユーザ選択機構2111をタッチし、第1のオブジェクト2102のトラッキングを可能にするために第1のオブジェクト2102の周囲で第1の焦点リング2112をドラッグすることができる。第1の焦点リング2112のそのような配置に応答して、モバイルデバイスは、トラッキングのために第1のオブジェクト2112を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構2111をタッチし、第2のオブジェクト2104および第3のオブジェクト2106の周囲で第2の焦点リング2114および第3の焦点リング2116をドラッグして、それぞれ、第2のオブジェクト2104および第3のオブジェクト2106のトラッキングを可能にすることができる。第2の焦点リング2114および第3の焦点リング2116のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト2104と第3のオブジェクト2106とを選択することができる。
【0244】
[00287]
図21はまた、(たとえば、第1の時刻の後の)第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム2120を示す。フレーム2120において、特定のオブジェクト2102、2106のサイズは、第1の時刻におけるシーンを示すフレーム2100中の対応するサイズに対して変化している。たとえば、第1のオブジェクト2102はカメラレンズに近づくように動いており(たとえば、第1のオブジェクト2102のサイズが比較的大きいように見える)、第3のオブジェクト2104はカメラレンズから離れるように動いている(たとえば、第3のオブジェクト2106のサイズは比較的小さく見える)。第2のオブジェクト2104のサイズは、第3のオブジェクト2106のサイズよりも大きく、第1のオブジェクト2102のサイズよりも小さく見える。
【0245】
[00288]
図21はまた、モバイルデバイスの画面上のフレーム2120の表示2130を示す。表示2130は、第1のウィンドウ2132、第2のウィンドウ2134、および第3のウィンドウ2136へと(たとえば、表示タスクT400によって)区分され得る。たとえば、ユーザ選択機構2111による3つのオブジェクト2102〜2106の選択に応答して、モバイルデバイスは、3つのウィンドウ2132〜2136へと表示2130を区分することができる。第1のウィンドウ2132は第2のウィンドウ2134より大きくてよく、第2のウィンドウ2134は第3のウィンドウ2136より大きくてよい。各ウィンドウ2132〜2136に表示されるフレーム2120の部分は、表示2130のサイズに対するオブジェクト2102〜2106のサイズに基づき得る。
【0246】
[00289]第1のウィンドウ2132(たとえば、最大のウィンドウ)は、表示2130のサイズに対する第1のオブジェクト2102のサイズが表示2130のサイズに対する他の選択されたオブジェクト2104、2106のサイズよりも大きい場合、第1のオブジェクト2102を含むフレーム2120の第1の部分を表示することができる。フレーム2120の第1の部分は、フレーム2120の中の第1のオブジェクト2102の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2102の位置をトラッキングすることができ、第1のオブジェクト2102の位置に注目しているビデオストリームが第1のウィンドウ2132に表示され得る。
【0247】
[00290]第2のウィンドウ2134は、表示2130のサイズに対する第2のオブジェクト2104のサイズが表示2130のサイズに対する第3のオブジェクト2106のサイズよりも大きい場合、第2のオブジェクト2104を含むフレーム2120の第2の部分を表示することができる。フレーム2120の第2の部分は、フレーム2120の中の第2のオブジェクト2104の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2104の位置をトラッキングすることができ、第2のオブジェクト2104の位置に注目しているビデオストリームが第2のウィンドウ2134に表示され得る。
【0248】
[00291]第3のウィンドウ2136(たとえば、最小のウィンドウ)は、第3のオブジェクト2106(たとえば、表示2130のサイズに対する最小のオブジェクト)を含むフレーム2120の第3の部分を表示することができる。フレーム2120の第3の部分は、フレーム2120の中の第3のオブジェクト2106の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト2104の位置をトラッキングすることができ、第3のオブジェクト2106の位置に注目しているビデオストリームが第3のウィンドウ2136に表示され得る。
【0249】
[00292]
図21はまた、(たとえば、第2の時刻の後の)第3の時刻においてキャプチャされたシーンを示す、ビデオストリームのフレーム2140を示す。フレーム2140において、オブジェクト2102〜2106のサイズは、第2の時刻におけるシーンを示すフレーム2120に示される対応するサイズに関して変化している。たとえば、第1のオブジェクト2102は、カメラレンズから離れるように移動しており(たとえば、第1のオブジェクト2102のサイズは比較的小さく見える)、第2のオブジェクトはカメラレンズに近づくように移動しており(たとえば、第1のオブジェクト2102のサイズは比較的大きく見える)、第3のオブジェクト2104もカメラレンズに近づくように移動している(たとえば、第3のオブジェクト2106のサイズは第1のオブジェクト2102のサイズよりも大きく見え、第2のオブジェクト2104のサイズよりも小さく見える)。
【0250】
[00293]
図21はまた、モバイルデバイスによって生成されるウィンドウ2132〜2136を含む、モバイルデバイスの画面上のフレーム2140の表示2150を示す。たとえば、第1のウィンドウ2132(たとえば、最大のウィンドウ)は、第2のオブジェクト2104を含むフレーム2140の第2の部分を表示し、第2のウィンドウ2134は、第3のオブジェクト2106を含むフレーム2140の第3の部分を表示し、第3のウィンドウ2136(たとえば、最小のウィンドウ)は、第1のオブジェクト2102を含むフレーム2140の第1の部分を表示する。
【0251】
[00294]
図21に示される実施形態は、モバイルデバイスが、フレーム2100、2120、2140中のオブジェクト2102〜2106をトラッキングすることを可能にでき、オブジェクト2102〜2106の相対的なサイズに基づいて、オブジェクト2102〜2106に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2132〜2136に表示することができる。たとえば、他のオブジェクト2102〜2106よりも大きく見える(たとえば、画面の最大の部分を占有するように見える)オブジェクト2102〜2106に注目しているビデオストリームは、最大のウィンドウ(たとえば、第1のウィンドウ2132)に表示され得る。同様の実装形態において、表示タスクT400は、トラッキングタスクT250によって示されるような、各々の二次的ビデオストリームに対応する選択されたオブジェクトのプライマリビデオストリーム内での相対的なサイズ(たとえば、オブジェクトのバウンディングボックスの相対的なサイズ)に応答して、表示の対応するウィンドウに二次的ビデオストリームを割り当てるように実施され得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図21に関して説明される技法を実行することができる。
【0252】
[00295]
図22を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2200の特定の実施形態を示すフローチャートが示される。代替的な実施形態では、方法2200は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0253】
[00296]方法2200は、2202において、モバイルデバイスにおいて、シーン中の第1のオブジェクトおよびシーン中の第2のオブジェクトの選択を受け取ることを含む。たとえば、
図21を参照すると、ユーザは、画面上のユーザ選択機構2111をタッチし、第1のオブジェクト2102の周囲で第1の焦点リング2112をドラッグし、第2のオブジェクト2104の周囲で第2の焦点リング2114をドラッグして、それぞれ、第1のオブジェクト2102および第2のオブジェクト2104のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。
【0254】
[00297]2204において、第1のオブジェクトを含む表示されるシーンの第1の部分は、表示のサイズに対する第1のオブジェクトのサイズが表示のサイズに対する第2のオブジェクトのサイズよりも大きい場合、第1のウィンドウに表示され得る。たとえば、
図21を参照すると、第1のウィンドウ2132(たとえば、最大のウィンドウ)は、表示2130のサイズに対する第1のオブジェクト2102のサイズが表示2130のサイズに対する他の選択されたオブジェクト2104、2106のサイズよりも大きい場合、第1のオブジェクト2102を含むフレーム2120の第1の部分を表示することができる。フレーム2120の第1の部分は、フレーム2120の中の第1のオブジェクト2102の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2102の位置をトラッキングすることができ、第1のオブジェクト2102の位置に注目しているビデオストリームが第1のウィンドウ2132に表示され得る。
【0255】
[00298]2206において、第2のオブジェクトを含む表示されるシーンの第2の部分は、表示のサイズに対する第1のオブジェクトのサイズが表示のサイズに対する第2のオブジェクトのサイズよりも大きいという決定に応答して、第2のウィンドウに表示され得る。たとえば、
図22を参照すると、第2のウィンドウ2134は、表示2130のサイズに対する第2のオブジェクト2104のサイズが表示2130のサイズに対する第3のオブジェクト2106のサイズよりも大きい場合、第2のオブジェクト2104を含むフレーム2120の第2の部分を表示することができる。フレーム2120の第2の部分は、フレーム2120の中の第2のオブジェクト2104の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2104の位置をトラッキングすることができ、第2のオブジェクト2104の位置に注目しているビデオストリームが第2のウィンドウ2134に表示され得る。第1のウィンドウ2132は第2のウィンドウ2134より大きくてよい。
【0256】
[00299]2208において、表示されるシーンの第1の部分は、表示のサイズに対する第1のオブジェクトのサイズが表示のサイズに対する第2のオブジェクトのサイズよりも大きくない場合、第2のウィンドウに表示され得る。2210において、フレームの第2の部分は、表示のサイズに対する第1のオブジェクトのサイズが表示のサイズに対する第2のオブジェクトのサイズよりも大きくない場合、第1のウィンドウに表示され得る。
【0257】
[00300]
図22の方法2200は、モバイルデバイスが、フレーム2100、2120、2140中のオブジェクト2102〜2106をトラッキングすることを可能にでき、オブジェクト2102〜2106の相対的なサイズに基づいて、オブジェクト2102〜2106に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2132〜2136に表示することができる。たとえば、他のオブジェクト2102〜2106よりも大きく見える(たとえば、画面の最大の部分を占有するように見える)オブジェクト2102〜2106に注目しているビデオストリームは、最大のウィンドウ(たとえば、第1のウィンドウ2132)に表示され得る。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法2200を実行することができる。
【0258】
[00301]
図23を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2300の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法2300は、ロボットを使用して実行され得る。
【0259】
[00302]2302において、方法2300は、ロボットにおいて、複数のオブジェクトの間の幾何学的配置をトラッキングすることを含み得る。たとえば、ユーザは、トラッキングされるべき特定のオブジェクトをロボットに伝えることができる。特定の実施形態では、ロボットはディスプレイインターフェースを含んでよく、ユーザはディスプレイインターフェースとの対話を介してロボットと交流することができる。別の例として、ロボットは、環境因子に基づいてどのオブジェクトがトラッキングされるべきかを、独立に決定することができる。たとえば、ロボットは、動きを検出するためのセンサを含み得る。検出された動きに基づいて、ロボットは、動きと関連付けられるオブジェクトをトラッキングすることを選択し得る。
【0260】
[00303]2304において、処理機能が幾何学的配置に基づいて実行され得る。たとえば、ロボットは、幾何学的配置に基づいてオブジェクト間の関係を決定することができる。別の例として、ロボットは、オブジェクトの幾何学的配置に基づいて設定(たとえば、シーン)を決定することができる。
【0261】
[00304]
図24は、方法M100(たとえば、方法M110、M200、M300、またはM400)の実施の適用形態の例を示す。
図24に示される実施形態に関して説明されるビデオ処理技法は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せによって実行され得る。
【0262】
[00305]
図24は、第1の時刻においてキャプチャされるようなシーンを示す、プライマリビデオストリームのフレーム2400を示す。たとえば、フレーム2400は、モバイルデバイスの画面に表示されるべきビデオストリームのフレームに対応し得る。モバイルデバイスは、ストリームを(たとえば、モバイルデバイスのカメラによって)キャプチャし、または別のデバイスからストリームを受信するように構成され得る。フレーム2400に示されるシーンは、第1のオブジェクト2402と、第2のオブジェクト2404と、第3のオブジェクト2406と、星と、木とを含む。示される実施形態では、第1のオブジェクト2402は第1の人物に対応してよく、第2のオブジェクト2404は第2の人物に対応してよく、第3のオブジェクト2406は第3の人物に対応してよい。別の実施形態では、オブジェクト2402〜2406の少なくとも1つは、モバイルデバイスを介して制御されるロボットに対応し得る。
【0263】
[00306]
図24はまた、モバイルデバイスの画面上のフレーム2400の表示2410を示す。モバイルデバイスの画面(たとえば、タッチスクリーン)は、ビューファインダに対応し得る。表示2410は、ユーザが(たとえば、トラッキングタスクT250による)トラッキングのためにオブジェクトを選択することを可能にする、ユーザ選択機構2411を含み得る。たとえば、ユーザは、画面上のユーザ選択機構2411をタッチし、第1のオブジェクト2402のトラッキングを可能にするために第1のオブジェクト2402の周囲で第1の焦点リング2412をドラッグすることができる。第1の焦点リング2412のそのような配置に応答して、モバイルデバイスは、トラッキングのために第1のオブジェクト2412を選択することができる。同様の方式で、ユーザはまた、画面上のユーザ選択機構2411をタッチし、第2のオブジェクト2404および第3のオブジェクト2406の周囲で第2の焦点リング2414および第3の焦点リング2416をドラッグして、それぞれ、第2のオブジェクト2404および第3のオブジェクト2406のトラッキングを可能にすることができる。第2の焦点リング2414および第3の焦点リング2416のそのような配置に応答して、モバイルデバイスは、トラッキングのために、それぞれ第2のオブジェクト2404と第3のオブジェクト2406とを選択することができる。
【0264】
[00307]
図24はまた、(たとえば、第1の時刻の後の)第2の時刻においてキャプチャされるようなシーンを示す、ビデオストリームのフレーム2420を示す。フレーム2420において、オブジェクト2402〜2406の場所は、第1の時刻におけるシーンを示すフレーム2400中の対応する場所に対して変化している。たとえば、第1のオブジェクト2402は星に近づくように移動しており、第2のオブジェクト2404は木に近づくように移動しており、第3のオブジェクト2406はフレームの下部に近づくように移動している。
【0265】
[00308]
図24はまた、モバイルデバイスの画面上のフレーム2420の表示2430を示す。表示2430は、2つ以上のウィンドウへと(たとえば、表示タスクT400によって)区分され得る。この例では、表示2430は、第1のウィンドウ2432、第2のウィンドウ2434、第3のウィンドウ2436、および第4のウィンドウ2438へと区分される。ユーザ選択機構2411による3つのオブジェクト2402〜2406の選択に応答して、たとえば、モバイルデバイスは、3つの対応するウィンドウ2432〜2436および第4のウィンドウ2438へと表示2430を区分することができる。
【0266】
[00309]第1のウィンドウ2432は、第1のオブジェクト2402を含むフレーム2420の第1の部分を表示することができる。フレーム2420の第1の部分は、フレーム2420の中の第1のオブジェクト2402の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2402の位置をトラッキングすることができ、第1のオブジェクト2402の位置に注目しているビデオストリームが第1のウィンドウ2432に表示され得る。第2のウィンドウ2434は、第2のオブジェクト2404を含むフレーム2420の第2の部分を表示することができる。フレーム2420の第2の部分は、フレーム2420の中の第2のオブジェクト2404の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2404の位置をトラッキングすることができ、第2のオブジェクト2404の位置に注目しているビデオストリームが第2のウィンドウ2434に表示され得る。第3のウィンドウ2436は、第3のオブジェクト2406を含むフレーム2420の第3の部分を表示することができる。フレーム2420の第3の部分は、フレーム2420の中の第3のオブジェクト2406の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト2404の位置をトラッキングすることができ、第3のオブジェクト2406の位置に注目しているビデオストリームが第3のウィンドウ2436に表示され得る。
【0267】
[00310]第4のウィンドウ2438は、各オブジェクト2402〜2406の間の幾何学的配置(たとえば、重心(C
M2))の指示を表示することができる。たとえば、第4のウィンドウ2438は、フレーム2420中のエリアに対応する複数のセクション(グレースケールの線として表されている)を含む格子を含み得る。たとえば、格子の左下のセクションは、フレーム2420の左下のセクションに対応し得る。
図18および
図19に関して説明されるような同様の方式で、モバイルデバイスは、フレーム2420中のオブジェクトの重心(C
M2)を決定することができる。重心(C
M2)は、格子の対応するセクションに表示され得る。
【0268】
[00311]
図24はまた、(たとえば、第2の時刻の後の)第3の時刻にキャプチャされるようなシーンを示す、フレーム2440を示す。フレーム2440において、各オブジェクト2402〜2406の場所は、第2の時刻におけるシーンを示すフレーム2420中の対応する場所に対して変化している。たとえば、第1のオブジェクト2402は木に近づくように移動しており、第2のオブジェクトはシーン2440の下部に近づくように移動しており、第3のオブジェクト2406は星に近づくように移動している。
【0269】
[00312]
図24はまた、モバイルデバイスによって生成されるウィンドウ2432〜2436を使用した、モバイルデバイスの画面上のフレーム2440の表示2450を示す。たとえば、第1のウィンドウ2432は、第1のオブジェクト2402を含むフレーム2440の第1の部分を表示し、第2のウィンドウ2434は、第2のオブジェクト2404を含むフレーム2440の第2の部分を表示し、第3のウィンドウ2436は、第3のオブジェクト2406を含むフレーム2440の第3の部分を表示する。
【0270】
[00313]第4のウィンドウ2438は、第3の時刻におけるフレーム2440を反映するように、指示(たとえば、重心(C
M2))を更新することができる。モバイルデバイスは、フレームごとに、または非連続的な時間間隔で、幾何学的配置をトラッキングし、更新された幾何学的配置の指示を第4のウィンドウ2438に表示することができる。たとえば、第3のフレームにおいて、第4のウィンドウ2438は、第3の時刻におけるフレーム2440中のオブジェクト2402〜2406の重心(C
M3)を表示することができる。第4のウィンドウ2438はまた、第2のフレームと第3のフレームとの間で(たとえば、トラッキングタスクT250によって示されるように)オブジェクトの重心をトラッキングする、経路(たとえば、点線)を表示することができる。
【0271】
[00314]
図24に示される実施形態は、モバイルデバイスが、フレーム2400、2420、2440中のオブジェクト2402〜2406をトラッキングすることを可能にでき、オブジェクト2402〜2406に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2432〜2436に表示することができる。実施形態はまた、ユーザが第4のウィンドウ2438中のオブジェクト2402〜2406の幾何学的配置を見ることを可能にする。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、
図24に関して説明される技法を実行することができる。
【0272】
[00315]
図25を参照すると、オブジェクトトラッキングを使用したビデオ処理方法2500の特定の実施形態を示すフローチャートが示される。例示的な実施形態では、方法2500は、
図1の電子デバイス102、
図2Bのプロセッサ264によって実装されるオブジェクトトラッキングおよび検出モジュール204、プロセッサによって実装される
図8のオブジェクトトラッキングおよび検出モジュール804、プロセッサによって実装される
図9の平滑化モジュール961、またはこれらの任意の組合せを使用して実行され得る。
【0273】
[00316]方法2500は、2502において、モバイルデバイスにおいて、表示されるシーン中の第1のオブジェクト、表示されるシーン中の第2のオブジェクト、および表示されるシーン中の第3のオブジェクトの選択を受け取ることを含む。たとえば、
図24を参照すると、ユーザは、画面上のユーザ選択機構2411をタッチし、第1のオブジェクト2402の周囲で第1の焦点リング2412をドラッグし、第2のオブジェクト2404の周囲で第2の焦点リング2414をドラッグし、第3のオブジェクト2406の周囲で第3の焦点リング2416をドラッグして、それぞれ、第1、第2、および第3のオブジェクト2402〜2406のトラッキングを可能にすることができる。表示されるシーンは、モバイルデバイスの画面上のキャプチャされ表示されるビデオストリームに対応し得る。
【0274】
[00317]表示はまた、2504において、アット第1のウィンドウ、第2のウィンドウ、第3のウィンドウ、および第4のウィンドウへと区分され得る。たとえば、
図24を参照すると、表示2430は、第1のウィンドウ2432、第2のウィンドウ2434、第3のウィンドウ2436、および第4のウィンドウに区分され得る。
【0275】
[00318]2506において、第1のオブジェクトを含む表示されるシーンの第1の部分は、第1のウィンドウに表示され得る。たとえば、
図24を参照すると、第1のウィンドウ2432は、第1のオブジェクト2402を含むフレーム2420の第1の部分を表示することができる。フレーム2420の第1の部分は、フレーム2420の中の第1のオブジェクト2402の位置に基づいて決定され得る。たとえば、モバイルデバイスは第1のオブジェクト2402の位置をトラッキングすることができ、第1のオブジェクト2402の位置に注目しているビデオストリームが第1のウィンドウ2432に表示され得る。
【0276】
[00319]2508において、第2のオブジェクトを含む表示されるシーンの第2の部分は、第2のウィンドウに表示され得る。たとえば、
図24を参照すると、第2のウィンドウ2434は、第2のオブジェクト2404を含むフレーム2420の第2の部分を表示することができる。フレーム2420の第2の部分は、フレーム2420の中の第2のオブジェクト2404の位置に基づいて決定され得る。たとえば、モバイルデバイスは第2のオブジェクト2404の位置をトラッキングすることができ、第2のオブジェクト2404の位置に注目しているビデオストリームが第2のウィンドウ2434に表示され得る。
【0277】
[00320]2510において、第3のオブジェクトを含む表示されるシーンの第3の部分は、第3のウィンドウに表示され得る。たとえば、
図24を参照すると、第3のウィンドウ2436は、第3のオブジェクト2406を含むフレーム2420の第3の部分を表示することができる。フレーム2420の第3の部分は、フレーム2420の中の第3のオブジェクト2406の位置に基づいて決定され得る。たとえば、モバイルデバイスは第3のオブジェクト2406の位置をトラッキングすることができ、第2のオブジェクト2406の位置に注目しているビデオストリームが第3のウィンドウ2436に表示され得る。
【0278】
[00321]2412において、各オブジェクト間の幾何学的配置の指示が第4のウィンドウに表示され得る。たとえば、
図24を参照すると、第4のウィンドウ2438は、各オブジェクト2402〜2406間の重心(C
M2)を表示することができる。第4のウィンドウ2438は、第3の時刻におけるシーン2440を反映するように重心(C
M2)を更新することができる。たとえば、第3のフレームにおいて、第4のウィンドウ2438は、第3の時刻におけるフレーム2440中のオブジェクト2402〜2406の重心(C
M3)を表示することができる。第4のウィンドウ2438はまた、第2のフレームと第3のフレームとの間でオブジェクトの重心をトラッキングする、経路(たとえば、点線)を表示することができる。
【0279】
[00322]
図25の方法2500は、モバイルデバイスが、シーン2400、2420、2440中のオブジェクト2402〜2406をトラッキングすることを可能にでき、オブジェクト2402〜2406に対応する個別化された(たとえば、専心的な)ビデオストリームを別のウィンドウ2432〜2436に表示することができる。方法2500はまた、ユーザが別のウィンドウ(たとえば、第4のウィンドウ2438)中のオブジェクト2402〜2406の幾何学的配置を見ることを可能にする。モバイルデバイスは、単一のカメラを使用して、または複数のカメラを使用して、方法2500を実行することができる。
【0280】
[00323]
図37Bは、一般的な構成による装置A100のブロック図を示す。装置A100は、(たとえば、選択タスクT200を参照して本明細書で説明されるような)ビューのプライマリフィールドを有するプライマリビデオストリームPS10内の少なくとも2つのオブジェクトを選択するように構成される、判別器200を含む。装置A100はまた、(たとえば、ストリーム生成タスクT300およびT350を参照して本明細書で説明されたような)前記選択に応答して、プライマリビデオストリームから、選択されたオブジェクトのうちの第1のオブジェクトを含みビューのプライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームVS10を生成し、前記選択の後に、プライマリビデオストリームから、選択されたオブジェクトのうちの第2のオブジェクトを含みビューのプライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームVS20を生成するように構成されるビデオストリーム生成器200を含む。第1のビデオストリームを前記生成することと第2のビデオストリームを前記生成することとが開始した後、ビューの第1のフィールドは、ビューの第2のフィールド内にないビューのプライマリフィールドの一部分を含み、ビューの第2のフィールドは、ビューの第1のフィールド内にないビューのプライマリフィールドの一部分を含む。
【0281】
[00324]
図37Cは、装置A100の実装形態A110のブロック図を示す。装置A110は、(たとえば、解析タスクT110を参照して本明細書で説明されるように)プライマリビデオストリームPS10を解析してプライマリビデオストリームPS10の一連のフレームを生成するように構成される、インターフェース110を含む。インターフェース110は、本明細書で説明されるようなフレームバッファまたは循環バッファ(たとえば、フレームバッファFB10、メモリバッファ110)のような、1つまたは複数の解析されたフレームを記憶するように構成されるバッファを含み得る。
図38Aは、装置A100の実装形態A200のブロック図を示す。装置A200は、選択されたオブジェクトをトラッキングするように構成されるオブジェクトトラッカー250(たとえば、トラッキングタスクT250、オブジェクトトラッキングおよび検出モジュール204、および/またはオブジェクトトラッキングおよび検出モジュール804を参照して本明細書で説明されるような)を含む。たとえば、オブジェクトトラッカー250は、表示ビデオストリームのフレームにおいて、第1のオブジェクトおよび第2のオブジェクトのうちの少なくとも1つがフレームの端部に近いことを検出し、プライマリビデオストリームの複数のフレームの第1のフレームにおいて、第2のオブジェクトよりも第1のオブジェクトがフレームの第1の端部に近いと決定し、ならびに/または、第1のウィンドウ内に第1のビデオストリームを前記表示した後に、(A)プライマリビデオストリームのフレーム、(B)第1のビデオストリームのフレーム、および(C)第2のビデオストリームのフレームの少なくとも1つにおいて、第2のオブジェクトが第1のオブジェクトと重複すると決定するように構成され得る。
【0282】
[00325]
図38Bは、装置A100の実装形態A300のブロック図を示す。装置A300は、(たとえば、表示タスクT400を参照して本明細書で説明されるように)第1のビデオストリームと第2のビデオストリームの少なくとも1つに基づいて表示信号を生成するように構成される、表示信号生成器400を含む。たとえば、表示信号生成器400は、第1のウィンドウ内の第1のビデオストリームと第2のウィンドウ内の第2のビデオストリームとを含む(たとえば、画面に対する)表示信号を生成するように構成され得る。加えて、または代替的に、表示信号生成器400は、(たとえば、
図17、
図18、および
図24を参照して本明細書で説明されるように)幾何学的配置および/またはクラスタ領域の指示を示す表示信号を生成するように構成され得る。表示信号生成器400は、本明細書で説明されるような表示バッファ(たとえば、表示バッファDB10)を含み得る。
図39Aは、装置A200およびA300の実装形態A400のブロック図を示す。
【0283】
[00326]本明細書で開示されるような装置A100の実装形態のいずれかは、次のフォームファクタ、すなわち、携帯可能(たとえば、スマートフォン)、運転可能(たとえば、車両またはロボット)、装着可能(たとえば、衣服またはアクセサリ)、および飛行可能(たとえば、ドローン)のいずれかのデバイスのような、モバイルデバイス内で実装され得る。モバイルデバイスは、ストリームDS10を表示するように構成される1つまたは複数の画面SC10(たとえば、タッチスクリーン)および/またはプライマリビデオストリームPS10を生成するように構成される1つまたは複数の撮像ユニットIU10(たとえば、カメラまたは他の画像キャプチャデバイス)を含み得る。
図39Bおよび
図39Cは、装置A100のそのような適用形態の例のブロック図を示し、
図39Dは、装置A300のそのような適用形態のブロック図を示す。
【0284】
[00327]
図26を参照すると、上で説明されたビデオ処理技法を実行するように動作可能なコンポーネントを含むワイヤレスデバイス2600のブロック図が示されている。デバイス2600は、メモリ2632に結合されたデジタル信号プロセッサ(DSP)のようなプロセッサ2610を含む。デバイス2600は、本明細書で説明されるような装置A100の実装形態のいずれかの要素を含むように実装され得るモバイルデバイスの一例である。
【0285】
[00328]
図26はまた、プロセッサ2610とディスプレイ2628に結合されたディスプレイコントローラ2626(たとえば、本明細書で説明されるような表示タスクT400を実行するように構成される)を示している。特定の実施形態では、表示は、上で説明されたビューファインダまたは画面に対応し得る。メモリ2632は、実行可能命令2656を含む有形の非一時的プロセッサ可読記憶媒体であり得る。命令2656はプロセッサ2610のようなプロセッサによって実行され得る。プロセッサ2610またはディスプレイコントローラ2626のようなプロセッサは、
図3の方法300、
図4の方法400、
図5の方法500、
図6の方法600、
図10の方法1000、
図12の方法1200、
図14の方法1400、
図16の方法1600、
図19の方法1900、
図20の方法2000、2010、
図22の方法2200、
図25の方法2500、方法M100、方法M110、方法M120、方法M200、方法M300、方法M400、またはこれらの任意の組合せの、少なくとも一部分を実行するように命令2656を実行することができる。
【0286】
[00329]コーダ/デコーダ(コーデック)2634も、プロセッサ2610に結合され得る。スピーカー2636およびマイクロフォン2638が、コーデック2634に結合され得る。
図26は、ワイヤレスコントローラ2640がプロセッサ2610およびアンテナ2642に結合され得ることも示す。特定の実施形態では、高周波(RF)インターフェース2680が、ワイヤレスコントローラ2640とアンテナ2642との間に配設される。
【0287】
[00330]特定の実施形態では、プロセッサ2610、ディスプレイコントローラ2626、メモリ2632、コーデック2634、およびワイヤレスコントローラ2640は、システムインパッケージまたはシステムオンチップデバイス2622に含まれる。特定の実施形態では、入力デバイス2630(たとえば、上で説明されたようなシーンをキャプチャするために使用されるカメラ)および電源2644が、システムオンチップデバイス2622に結合される。その上、特定の実施形態では、
図26に示されるように、ディスプレイ2628、入力デバイス2630、スピーカー2636、マイクロフォン2638、アンテナ2642、電源2644、およびRFインターフェース2680は、システムオンチップデバイス2622の外部にある。たとえば、RFインターフェース2680は別のチップであってよい。しかしながら、ディスプレイ2628、入力デバイス2630、スピーカー2636、マイクロフォン2638、アンテナ2642、電源2644、およびRFインターフェース2680の各々は、インターフェースまたはコントローラのような、システムオンチップデバイス2622のコンポーネントに結合され得る。
【0288】
[00331]
図39Eは、一般的な構成による装置MF100のブロック図を示す。装置MF100は、(たとえば、タスクT200を参照して本明細書で説明されるような)ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択するための手段F200を含む。装置MF100はまた、前記選択に応答して、(たとえば、タスクT300を参照して本明細書で説明されるように)選択されたオブジェクトのうちの第1のオブジェクトを含みビューのプライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームを、プライマリビデオストリームから生成するための手段F300を含む。装置MF100はまた、前記選択の後に、(たとえば、タスクT350を参照して本明細書で説明されるように)選択されたオブジェクトのうちの第2のオブジェクトを含みビューのプライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームを、プライマリビデオストリームから生成するための手段F350を含む。第1のビデオストリームを生成することおよび第2のビデオストリームを前記生成することが開始した後、ビューの第1のフィールドは、ビューの第2のフィールド内にないビューのプライマリフィールドの一部分を含み、ビューの第2のフィールドは、ビューの第1のフィールド内にないビューのプライマリフィールドの一部分を含む。
【0289】
[00332]
図40Aは、装置MF100の実装形態MF110のブロック図を示す。装置MF110は、(たとえば、解析タスクT100を参照して本明細書で説明されるように)プライマリビデオストリームを解析してプライマリビデオストリームの一連のフレームを生成するための手段F100を含む。
【0290】
[00333]
図40Bは、装置MF100の実装形態MF200のブロック図を示す。装置MF200は、(たとえば、トラッキングタスクT250を参照して本明細書で説明されるように)オブジェクトをトラッキングするための手段F250を含む。たとえば、手段F250は、表示ビデオストリームのフレームにおいて、第1のオブジェクトおよび第2のオブジェクトのうちの少なくとも1つがフレームの端部に近いことを検出するための手段、プライマリビデオストリームの複数のフレームの第1のフレームにおいて、第2のオブジェクトよりも第1のオブジェクトがフレームの第1の端部に近いと決定するための手段、および/または、第1のウィンドウ内に第1のビデオストリームを前記表示した後に、(A)プライマリビデオストリームのフレーム、(B)第1のビデオストリームのフレーム、および(C)第2のビデオストリームのフレームの少なくとも1つにおいて、第2のオブジェクトが第1のオブジェクトと重複すると決定するための手段として実装され得る。
【0291】
[00334]
図40Cは、装置MF100の実装形態MF300のブロック図を示す。装置MF300は、(たとえば、表示タスクT400を参照して本明細書で説明されるように)第1のビデオストリームおよび第2のビデオストリームの少なくとも1つを表示するための手段F400を含む。たとえば、手段F400は、第1のウィンドウ内に第1のビデオストリームと第2のウィンドウ内の第2のビデオストリームとを画面に表示するための手段として実装され得る。加えて、または代替的に、手段F400は、(たとえば、
図17、
図18、および
図24を参照して本明細書で説明されるように)幾何学的配置および/またはクラスタ領域の指示を示す表示信号を生成するための手段として実装され得る。
図40Dは、装置MF200およびMF300の実装形態MF400のブロック図を示す。
【0292】
[00335]さらに、本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は理解されよう。本明細書で開示された装置(たとえば、装置MF100、MF110、MF200、MF300、MF400、A100、A110、A200、A300、およびA400の中のいずれか)の様々な実装形態の1つまたは複数の要素は、全体または一部が、マイクロプロセッサ、組込みプロセッサ、IPコア、デジタル信号プロセッサ、FPGA(フィールドプログラマブルゲートアレイ)、ASSP(特定用途向け標準製品)、およびASIC(特定用途向け集積回路)のような、論理要素(たとえば、プロセッサ2610)の1つまたは複数の固定アレイまたはプログラマブルアレイ上で実行されるように構成された命令の1つまたは複数のセットとして実装され得る。様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、上では概して、それらの機能に関して説明された。そのような機能が、ハードウェアとして実装されるかまたはプロセッサ実行可能命令として実装されるかは、具体的な応用例、およびシステム全体に課せられる設計制約に依存する。当業者は、説明されている機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0293】
[00336]本明細書で開示された実施形態に関して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはそれら2つの組合せで具現化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD−ROM)、または当技術分野で知られている任意の他の形態の非一時的記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在し得る。ASICはコンピューティングデバイスまたはユーザ端末の中に存在し得る。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別のコンポーネントとして存在し得る。
【0294】
[00337]開示された実施形態の上記の説明は、当業者が開示された実施形態を製作または使用することを可能にするために提供されている。これらの実施形態に対する様々な修正は、当業者には容易に明らかであり、本明細書で定義されている原理は、本開示の範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本開示は、本明細書に示された実施形態に限定されることを意図されておらず、以下の特許請求の範囲によって定義される原理および新規な特徴と一致する可能な最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオ処理の方法であって、
ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択することと、
前記選択に応答して、前記選択されたオブジェクトのうちの第1のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームを、前記プライマリビデオストリームから生成することと、
前記選択の後に、前記選択されたオブジェクトのうちの第2のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームを、前記プライマリビデオストリームから生成することと、を備え、
前記第1のビデオストリームを前記生成することおよび前記第2のビデオストリームを前記生成することが開始した後、ビューの前記第1のフィールドは、ビューの前記第2のフィールド内にないビューの前記プライマリフィールドの一部分を含み、ビューの前記第2のフィールドは、ビューの前記第1のフィールド内にないビューの前記プライマリフィールドの一部分を含む、方法。
[C2]
前記複数(A)前記プライマリビデオストリームの複数のフレームおよび(B)前記第1のビデオストリームの第1の複数のフレームの少なくとも一方の中で、前記第1のオブジェクトの動きを検出することと、
前記検出に応答して、ビューの前記第1のフィールドの方向を変更することと、
を備える、C1に記載のビデオ処理の方法。
[C3]
ビューの前記第1のフィールドの前記方向を前記変更することは、前記第1のオブジェクトの前記検出された動きの方向に従うように前記方向を変更することを備える、C2に記載のビデオ処理の方法。
[C4]
前記第1のビデオストリームを前記生成することは、前記プライマリビデオストリームの少なくとも1つの対応するフレームの一部分から前記第1のビデオストリームの各フレームを生成することを備える、C1に記載のビデオ処理の方法。
[C5]
前記第1のビデオストリームの第1の複数のフレームの各々について、前記フレーム内の前記第1のオブジェクトの位置は、前記プライマリビデオストリームの複数のフレームのうちの対応する1つにおけるよりも、前記フレームの中心に近い、C1に記載のビデオ処理の方法。
[C6]
前記第1のビデオストリームを前記生成することは、前記第1のビデオストリームの第1の複数のフレームの各々の中の前記第1のオブジェクトのサイズを正規化することを備える、C1に記載のビデオ処理の方法。
[C7]
前記第1のビデオストリームを前記生成することは、前記第1のビデオストリームの第1の複数のフレームの各々の中での明るさ、コントラスト、およびホワイトバランスの中の少なくとも1つを正規化することを備える、C1に記載のビデオ処理の方法。
[C8]
第1のウィンドウ内に前記第1のビデオストリームを画面に表示することと、
第2のウィンドウ内に前記第2のビデオストリームを前記画面に表示することと、を備える、C1に記載のビデオ処理の方法。
[C9]
少なくとも2つのオブジェクトを前記選択することは、前記第1のオブジェクトを選択することと前記第2のオブジェクトを選択することとを備え、
前記第1のビデオストリームを前記表示することは、前記第2のオブジェクトを前記選択することの前に開始する、C8に記載のビデオ処理の方法。
[C10]
前記プライマリビデオストリームの複数のフレームの第1のフレームにおいて、前記第1のオブジェクトは、前記第2のオブジェクトよりも、前記フレームの第1の端部に近いと決定することと、
前記第1のオブジェクトが前記第1の端部により近いと前記決定した後に、前記プライマリビデオストリームの前記複数のフレームの第2のフレームにおいて、前記第2のオブジェクトは、前記第1のオブジェクトよりも、前記フレームの前記第1の端部に近いと決定することと、
前記第2のオブジェクトが前記第1の端部により近いと前記決定したことに応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示し、前記第2のウィンドウ内に前記第1のビデオストリームを表示することとを備える、C8に記載のビデオ処理の方法。
[C11]
前記第1のウィンドウ内に前記第1のビデオストリームを前記表示した後に、(A)前記プライマリビデオストリームのフレーム、(B)前記第1のビデオストリームのフレーム、および(C)前記第2のビデオストリームのフレームのうちの少なくとも1つにおいて、前記第2のオブジェクトが前記第1のオブジェクトと重複すると決定することと、
前記決定に応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示し、前記第2のウィンドウ内に前記第1のビデオストリームを表示することと、を備える、C8に記載のビデオ処理の方法。
[C12]
前記プライマリビデオストリームから、ビューの前記プライマリフィールドよりも狭いビューの二次的フィールドを有する表示ビデオストリームを生成することと、
前記画面の第3のウィンドウ内に、前記表示ビデオストリームを表示することと、
前記表示ビデオストリームのフレーム内に、前記第1のオブジェクトおよび前記第2のオブジェクトのうちの少なくとも1つが前記フレームの端部に近いことを検出することと、
前記検出に応答して、ビューの三次的フィールドを有するように前記表示ビデオストリームを変更することと、を備え、ビューの前記三次的フィールドはビューの前記二次的フィールドよりも広い角度を有する、C8に記載のビデオ処理の方法。
[C13]
前記第1のオブジェクトはロボットオブジェクトであり、
前記方法は、前記シーン内での前記ロボットオブジェクトの動きを制御することを備える、C1に記載のビデオ処理の方法。
[C14]
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択させ、
前記選択に応答して、前記選択されたオブジェクトのうちの第1のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームを、前記プライマリビデオストリームから生成させ、
前記選択の後に、前記選択されたオブジェクトのうちの第2のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームを、前記プライマリビデオストリームから生成させ、
前記第1のビデオストリームを前記生成することおよび前記第2のビデオストリームを前記生成することが開始した後、ビューの前記第1のフィールドが、ビューの前記第2のフィールド内にないビューの前記プライマリフィールドの一部分を含み、ビューの前記第2のフィールドが、ビューの前記第1のフィールド内にないビューの前記プライマリフィールドの一部分を含む、非一時的コンピュータ可読媒体。
[C15]
プロセッサによって実行されると、前記プロセッサに、
複数(A)前記プライマリビデオストリームの複数のフレームおよび(B)前記第1のビデオストリームの第1の複数のフレームの少なくとも一方の中で、前記第1のオブジェクトの動きを検出させ、
前記検出に応答して、前記第1のオブジェクトの前記検出された動きの方向に従うようにビューの前記第1のフィールドの方向を変更させる、
命令を記憶している、C14に記載の非一時的コンピュータ可読媒体。
[C16]
前記第1のビデオストリームを生成するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに、前記第1のビデオストリームの第1の複数のフレームの各々の中の前記第1のオブジェクトのサイズを正規化させる命令を備える、C14に記載の非一時的コンピュータ可読媒体。
[C17]
プロセッサによって実行されると、前記プロセッサに、
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内の前記第2のビデオストリームを、画面に表示させ、
前記プライマリビデオストリームの複数のフレームの第1のフレームにおいて、前記第1のオブジェクトは前記第2のオブジェクトよりも前記フレームの第1の端部に近いと決定させ、
前記第1のオブジェクトが前記第1の端部により近いと前記決定した後に、前記プライマリビデオストリームの前記複数のフレームの第2のフレームにおいて、前記第2のオブジェクトは前記第1のオブジェクトよりも前記フレームの前記第1の端部に近いと決定させ、
前記第2のオブジェクトが前記第1の端部により近いと前記決定したことに応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示させ、前記第2のウィンドウ内に前記第1のビデオストリームを表示させる、
命令を記憶している、C14に記載の非一時的コンピュータ可読媒体。
[C18]
プロセッサによって実行されると、前記プロセッサに、
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内に前記第2のビデオストリームを、画面に表示させ、
前記第1のウィンドウ内に前記第1のビデオストリームを前記表示した後に、(A)前記プライマリビデオストリームのフレーム、(B)前記第1のビデオストリームのフレーム、および(C)前記第2のビデオストリームのフレームの少なくとも1つにおいて、前記第2のオブジェクトが前記第1のオブジェクトと重複すると決定させ、
前記決定に応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示させ、前記第2のウィンドウ内に前記第1のビデオストリームを表示させる、
命令を記憶している、C14に記載の非一時的コンピュータ可読媒体。
[C19]
プロセッサによって実行されると、前記プロセッサに、
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内に前記第2のビデオストリームを、画面に表示させ、
前記プライマリビデオストリームから、ビューの前記プライマリフィールドよりも狭いビューの二次的フィールドを有する表示ビデオストリームを生成させ、
前記画面の第3のウィンドウ内に、前記表示ビデオストリームを表示させ、
前記表示ビデオストリームのフレームにおいて、前記第1のオブジェクトおよび前記第2のオブジェクトのうちの少なくとも1つが前記フレームの端部に近いことを検出させ、
前記検出に応答して、ビューの三次的フィールドを有するように前記表示ビデオストリームを変更させる、命令を記憶しており、ビューの前記三次的フィールドはビューの前記二次的フィールドよりも広い角度を有する、
C14に記載の非一時的コンピュータ可読媒体。
[C20]
ビデオ処理のための装置であって、
ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択するための手段と、
前記選択に応答して、前記選択されたオブジェクトのうちの第1のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームを、前記プライマリビデオストリームから生成するための手段と、
前記選択の後に、前記選択されたオブジェクトのうちの第2のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームを、前記プライマリビデオストリームから生成するための手段と、を備え、
前記第1のビデオストリームを前記生成することおよび前記第2のビデオストリームを前記生成することが開始した後、ビューの前記第1のフィールドは、ビューの前記第2のフィールド内にないビューの前記プライマリフィールドの一部分を含み、ビューの前記第2のフィールドは、ビューの前記第1のフィールド内にないビューの前記プライマリフィールドの一部分を含む、装置。
[C21]
前記第1のビデオストリームを生成するための前記手段は、前記第1のビデオストリームの第1の複数のフレームの各々の中の前記第1のオブジェクトのサイズを正規化するように構成される、C20に記載の装置。
[C22]
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内に前記第2のビデオストリームを、画面に表示するための手段と、
前記プライマリビデオストリームの複数のフレームの第1のフレームにおいて、前記第1のオブジェクトは、前記第2のオブジェクトよりも前記フレームの第1の端部に近いと決定するための手段と、
前記第1のオブジェクトが前記第1の端部により近いと前記決定した後に、前記プライマリビデオストリームの前記複数のフレームの第2のフレームにおいて、前記第2のオブジェクトは、前記第1のオブジェクトよりも前記フレームの前記第1の端部に近いと決定するための手段と、
前記第2のオブジェクトが前記第1の端部により近いと前記決定したことに応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示し、前記第2のウィンドウ内に前記第1のビデオストリームを表示するための手段と、
を備える、C20に記載の装置。
[C23]
第1のウィンドウ内に前記第1のビデオストリーム、および第2のウィンドウ内に前記第2のビデオストリームを、画面に表示するための手段と、
前記第1のウィンドウ内に前記第1のビデオストリームを前記表示した後に、(A)前記プライマリビデオストリームのフレーム、(B)前記第1のビデオストリームのフレーム、および(C)前記第2のビデオストリームのフレームの少なくとも1つにおいて、前記第2のオブジェクトが前記第1のオブジェクトと重複すると決定するための手段と、
前記決定に応答して、前記第1のウィンドウ内に前記第2のビデオストリームを表示し、前記第2のウィンドウ内に前記第1のビデオストリームを表示するための手段と、
を備える、C20に記載の装置。
[C24]
第1のウィンドウ内に前記第1のビデオストリーム、第2のウィンドウ内に前記第2のビデオストリームを、画面に表示するための手段と、
前記プライマリビデオストリームから、ビューの前記プライマリフィールドよりも狭いビューの二次的フィールドを有する表示ビデオストリームを生成するための手段と、
前記画面の第3のウィンドウ内に、前記表示ビデオストリームを表示するための手段と、
前記表示ビデオストリームのフレームにおいて、前記第1のオブジェクトおよび前記第2のオブジェクトのうちの少なくとも1つが前記フレームの端部に近いことを検出するための手段と、
前記検出に応答して、ビューの三次的フィールドを有するように前記表示ビデオストリームを変更するための手段と、
を備え、ビューの前記三次的フィールドは、ビューの前記二次的フィールドよりも広い角度を有する、C20に記載の装置。
[C25]
ビデオ処理のための装置であって、
ビューのプライマリフィールドを有するプライマリビデオストリーム内の少なくとも2つのオブジェクトを選択するように構成される判別器と、
前記選択に応答して、前記プライマリビデオストリームから、前記選択されたオブジェクトのうちの第1のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第1のフィールドを有する第1のビデオストリームを生成し、前記選択の後に、前記プライマリビデオストリームから、前記選択されたオブジェクトのうちの第2のオブジェクトを含み、ビューの前記プライマリフィールドよりも狭いビューの第2のフィールドを有する第2のビデオストリームを生成するように構成されるビデオストリーム生成器と、を備え、
前記第1のビデオストリームを前記生成することおよび前記第2のビデオストリームを前記生成することが開始した後、ビューの前記第1のフィールドは、ビューの前記第2のフィールド内にないビューの前記プライマリフィールドの一部分を含み、ビューの前記第2のフィールドは、ビューの前記第1のフィールド内にないビューの前記プライマリフィールドの一部分を含む、装置。
[C26]
複数(A)前記プライマリビデオストリームの複数のフレームおよび(B)前記第1のビデオストリームの第1の複数のフレームの少なくとも一方の中で、前記第1のオブジェクトの動きを検出するように構成されるオブジェクトトラッカーを備え、
前記ビデオストリーム生成器は、前記検出に応答して、前記第1のオブジェクトの前記検出された動きの方向に従うようにビューの前記第1のフィールドの方向を変更するように構成される、C25に記載の装置。
[C27]
前記ビデオストリーム生成器は、前記第1のビデオストリームの第1の複数のフレームの各々の中の前記第1のオブジェクトのサイズを正規化するように構成される、C25に記載の装置。
[C28]
第1のウィンドウ内に前記第1のビデオストリーム、第2のウィンドウ内に前記第2のビデオストリームを、画面に表示するように構成される表示信号生成器と、
前記プライマリビデオストリームの複数のフレームの第1のフレームにおいて、前記第1のオブジェクトは前記第2のオブジェクトよりも前記フレームの第1の端部に近いと決定し、
前記第1のオブジェクトが前記第1の端部により近いと前記決定した後に、前記プライマリビデオストリームの前記複数のフレームの第2のフレームにおいて、前記第2のオブジェクトは前記第1のオブジェクトよりも前記フレームの前記第1の端部に近いと決定する
ように構成されるオブジェクトトラッカーと、
を備え、
前記表示信号生成器は、前記第1のウィンドウ内に前記第1のビデオストリームを前記表示した後に、前記第2のオブジェクトが前記第1の端部により近いという前記決定に応答して、前記第1のウィンドウ内に前記第2のビデオストリーム、および前記第2のウィンドウ内に前記第1のビデオストリームを表示するように構成される、C25に記載の装置。
[C29]
第1のウィンドウ内に前記第1のビデオストリーム、第2のウィンドウ内に前記第2のビデオストリームを画面に表示するように構成される表示信号生成器と、
(A)前記プライマリビデオストリームのフレーム、(B)前記第1のビデオストリームのフレーム、および(C)前記第2のビデオストリームのフレームの少なくとも1つにおいて、前記第2のオブジェクトが前記第1のオブジェクトと重複すると決定するように構成されるオブジェクトトラッカーと、
を備え、
前記表示信号生成器は、前記第1のウィンドウ内に前記第1のビデオストリームを前記表示した後に、前記決定に応答して、前記第1のウィンドウ内に前記第2のビデオストリーム、および前記第2のウィンドウ内に前記第1のビデオストリームを表示するように構成される、
C25に記載の装置。
[C30]
前記ビデオストリーム生成器は、前記プライマリビデオストリームから、ビューの前記プライマリフィールドよりも狭いビューの二次的フィールドを有する表示ビデオストリームを生成するように構成され、
前記装置は、
第1のウィンドウ内に前記第1のビデオストリーム、第2のウィンドウ内に前記第2のビデオストリーム、および第3のウィンドウ内に前記表示ビデオストリームを、画面に表示するように構成される表示信号生成器と、
前記表示ビデオストリームのフレームにおいて、前記第1のオブジェクトおよび前記第2のオブジェクトのうちの少なくとも1つが前記フレームの端部に近いことを検出するように構成されるオブジェクトトラッカーと
を備え、
前記ビデオストリーム生成器は、前記検出に応答して、ビューの三次的フィールドを有するように前記表示ビデオストリームを変更するように構成され、ビューの前記三次的フィールドはビューの前記二次的フィールドよりも広い角度を有する、C25に記載の装置。