(57)【要約】  電子デバイスによって実行される方法について説明する。方法は、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定するステップを含む。方法は、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定するステップも含む。方法はさらに、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算するステップを含む。分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示す。方法は加えて、分離メトリックに基づいてオブジェクトを追跡するステップを含む。【特許請求の範囲】
【請求項１】
電子デバイスによって実行される方法であって、
前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定するステップと、
前記前のフレームと前記現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定するステップと、
前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算するステップであって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、ステップと、
前記分離メトリックに基づいてオブジェクトを追跡するステップと
を備える方法。
【請求項２】
前記局所動きベクトルの各々の距離誤差を測定するステップと、
ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
大域動き一貫性尺度を計算するステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記分離メトリックを計算するステップが、
前記大域動きパターンを大域動きモデルに適合させるステップと、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記大域動きモデルが、前記大域動きパターンの少なくとも1つの統計的尺度を備える、請求項4に記載の方法。
【請求項６】
前記分離メトリックに基づいて前景重みマップを計算するステップをさらに備える、請求項1に記載の方法。
【請求項７】
時間とともに前記前景重みマップを平滑化するステップをさらに備える、請求項6に記載の方法。
【請求項８】
空間にわたって前記前景重みマップを微細化するステップをさらに備える、請求項6に記載の方法。
【請求項９】
空間にわたって前記前景重みマップを微細化するステップが、前記前景重みマップに中央重み付けカーネルを乗算するステップを備える、請求項8に記載の方法。
【請求項１０】
時間とともに履歴重みマップを平滑化するステップをさらに備える、請求項1に記載の方法。
【請求項１１】
前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定し、前記前のフレームと前記現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定し、前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算し、ただし前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示し、前記分離メトリックに基づいてオブジェクトを追跡するように構成されたプロセッサを備える電子デバイス。
【請求項１２】
前記プロセッサが、前記局所動きベクトルの各々の距離誤差を測定し、ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するように構成された、請求項11に記載の電子デバイス。
【請求項１３】
前記プロセッサが、大域動き一貫性尺度を計算するように構成された、請求項11に記載の電子デバイス。
【請求項１４】
前記プロセッサが、
前記大域動きパターンを大域動きモデルに適合させ、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するように構成された、請求項11に記載の電子デバイス。
【請求項１５】
前記大域動きモデルが、前記大域動きパターンの少なくとも1つの統計的尺度を備える、請求項14に記載の電子デバイス。
【請求項１６】
前記プロセッサが、前記分離メトリックに基づいて前景重みマップを計算するように構成された、請求項11に記載の電子デバイス。
【請求項１７】
前記プロセッサが、時間とともに前記前景重みマップを平滑化するように構成された、請求項16に記載の電子デバイス。
【請求項１８】
前記プロセッサが、空間にわたって前記前景重みマップを微細化するように構成された、請求項16に記載の電子デバイス。
【請求項１９】
前記プロセッサが、前記前景重みマップに中央重み付けカーネルを乗算するように構成された、請求項18に記載の電子デバイス。
【請求項２０】
前記プロセッサが、時間とともに履歴重みマップを平滑化するように構成された、請求項11に記載の電子デバイス。
【請求項２１】
局所動きパターンを決定するための手段であって、前記局所動きパターンを決定するための手段が、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定するための手段を備える、手段と、
大域動きパターンを決定するための手段であって、前記大域動きパターンを決定するための手段が、前記前のフレームと前記現在のフレームとの間の大域動きベクトルのセットを決定するための手段を含む、手段と、
前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算するための手段であって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、手段と、
前記分離メトリックに基づいてオブジェクトを追跡するための手段と
を備える装置。
【請求項２２】
前記局所動きベクトルの各々の距離誤差を測定するための手段と、
ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するための手段と
をさらに備える、請求項21に記載の装置。
【請求項２３】
大域動き一貫性尺度を計算するための手段をさらに備える、請求項21に記載の装置。
【請求項２４】
前記分離メトリックを計算するための手段が、
前記大域動きパターンを大域動きモデルに適合させるための手段と、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するための手段と
を備える、請求項21に記載の装置。
【請求項２５】
前記分離メトリックに基づいて前景重みマップを計算するための手段をさらに備える、請求項21に記載の装置。
【請求項２６】
命令を有する非一時的コンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記命令が、
電子デバイスに、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定させるためのコードと、
前記電子デバイスに、前記前のフレームと前記現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定させるためのコードと、
前記電子デバイスに、前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算させるためのコードであって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、コードと、
前記電子デバイスに、前記分離メトリックに基づいてオブジェクトを追跡させるためのコードと
を備える、コンピュータプログラム製品。
【請求項２７】
前記電子デバイスに、前記局所動きベクトルの各々の距離誤差を測定させるためのコードと、
前記電子デバイスに、ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶させるためのコードと
をさらに備える、請求項26に記載のコンピュータプログラム製品。
【請求項２８】
前記電子デバイスに、大域動き一貫性尺度を計算させるためのコードをさらに備える、請求項26に記載のコンピュータプログラム製品。
【請求項２９】
前記電子デバイスに、前記分離メトリックを計算させるためのコードが、
前記電子デバイスに、前記大域動きパターンを大域動きモデルに適合させるためのコードと、
前記電子デバイスに、前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算させるためのコードと
を備える、請求項26に記載のコンピュータプログラム製品。
【請求項３０】
前記電子デバイスに、前記分離メトリックに基づいて前景重みマップを計算させるためのコードをさらに備える、請求項26に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体の内容が参照により本明細書に組み込まれている、「SYSTEMS AND METHODS FOR OBJECT TRACKING」に関する、2015年3月12日に出願した、米国仮特許出願第62/132,332号に関連し、その優先権を主張するものである。
【０００２】
本開示は全般に電子デバイスに関する。より具体的には、本開示は、オブジェクト追跡のためのシステムおよび方法に関する。
【背景技術】
【０００３】
いくつかの電子デバイス(たとえば、カメラ、ビデオカムコーダ、デジタルカメラ、セルラーフォン、スマートフォン、コンピュータ、テレビジョン、自動車、パーソナルカメラ、アクションカメラ、監視カメラ、搭載カメラ、接続カメラ、ロボット、ドローン、スマートアプリケーション、ヘルスケア機器、セットトップボックスなど)は、画像を取り込みおよび/または利用する。たとえば、スマートフォンは、静止画像および/またはビデオ画像を取り込みおよび/または処理する場合がある。画像を処理することは、比較的大量の時間、メモリ、およびエネルギーリソースを要求する場合がある。要求されるリソースは、処理の複雑さに応じて変化する場合がある。
【０００４】
画像内のオブジェクトを検出および/または追跡することは、困難な場合がある。たとえば、追跡、いくつかの状況において失われる場合がある。この議論から認められるように、画像処理を改善するシステムおよび方法が有利である場合がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
電子デバイスによって実行される方法について説明する。方法は、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定するステップを含む。方法は、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定するステップも含む。方法はさらに、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算するステップを含む。分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示す。方法は加えて、分離メトリックに基づいてオブジェクトを追跡するステップを含む。
【０００６】
方法は、局所動きベクトルの各々の距離誤差を測定するステップを含んでもよい。方法はまた、ある量の距離誤差を有する局所動きベクトルのうちの1つまたは複数を拒絶するステップを含んでもよい。方法は、大域動き一貫性尺度を計算するステップを含んでもよい。
【０００７】
分離メトリックを計算するステップは、大域動きパターンを大域動きモデルに適合させるステップを含んでもよい。分離メトリックを計算するステップはまた、大域動きモデルと局所動きパターンとの間の適合誤差を計算するステップを含んでもよい。大域動きモデルは、大域動きパターンの少なくとも1つの統計的尺度を含んでもよい。
【０００８】
方法は、分離メトリックに基づいて前景重みマップを計算するステップを含んでもよい。方法は、時間とともに前景重みマップを平滑化するステップを含んでもよい。方法は、空間にわたって前景重みマップを微細化するステップを含んでもよい。空間にわたって前景重みマップを微細化するステップは、前景重みマップに中央重み付けカーネルを乗算するステップを含んでもよい。方法は、時間とともに履歴重みマップを平滑化するステップを含んでもよい。
【０００９】
また、電子デバイスについても説明する。電子デバイスは、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定し、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定するように構成されたプロセッサを含む。プロセッサはまた、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算するように構成される。分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示す。プロセッサはまた、分離メトリックに基づいてオブジェクトを追跡するように構成される。
【００１０】
また、装置についても説明する。装置は、局所動きパターンを決定するための手段を含む。局所動きパターンを決定するための手段は、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定するための手段を含む。装置はまた、大域動きパターンを決定するための手段を含む。大域動きパターンを決定するための手段は、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定するための手段を含む。装置はさらに、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算するための手段を含む。分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示す装置は加えて、分離メトリックに基づいてオブジェクトを追跡するための手段を含む。
【００１１】
また、コンピュータプログラム製品についても説明する。コンピュータプログラム製品は、命令を有する非一時的コンピュータ可読媒体を含む。命令は、電子デバイスに、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定させるためのコードを含む。命令はまた、電子デバイスに、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することによって大域動きパターンを決定させるためのコードを含む。命令はさらに、電子デバイスに、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算させるためのコードを含む。分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示す命令は加えて、電子デバイスに、分離メトリックに基づいてオブジェクトを追跡させるためのコードを含む。
【図面の簡単な説明】
【００１２】
【図１】目標オブジェクトを追跡および検出するための電子デバイスを示すブロック図である。
【図２】オブジェクト追跡および検出モジュールを示すブロック図である。
【図３】動きに基づく追跡およびオブジェクト検出を実行するための方法を示すフロー図である。
【図４】動きに基づく追跡を実行するための方法を示すフロー図である。
【図５】前方後方誤差に基づいて動きに基づく追跡における追跡誤差を推定するための方法を示すフロー図である。
【図６】オブジェクト検出および追跡を実行するための方法を示すフロー図である。
【図７Ａ】本システムおよび方法で使用されてもよい異なるウィンドウサイズを有する画像ウィンドウを示すブロック図である。
【図７Ｂ】本システムおよび方法で使用されてもよいいくつかの例示的な画像およびウィンドウを示す図である。
【図８】オブジェクト追跡および検出モジュールの別の可能な構成を示すブロック図である。
【図９】平滑化モジュールを示すブロック図である。
【図１０】動き追跡結果におけるジッタを平滑化するための方法を示すフロー図である。
【図１１】画像内のオブジェクトの動きの一例を示す図である。
【図１２】画像、大域動きベクトルのセット、関心領域、その後の関心領域、および局所動きベクトルのセットの一例を示す図である。
【図１３】オブジェクト追跡のためのシステムおよび方法が実装されてもよい電子デバイスの一例を示すブロック図である。
【図１４】オブジェクト追跡のための方法の1つの構成を示すフロー図である。
【図１５】オブジェクトを追跡するための方法のより具体的な構成を示すフロー図である。
【図１６】画像、大域動きベクトルのセット、関心領域、その後の関心領域、および局所動きベクトルのセットの一例を示す図である。
【図１７】画像および対応する前景重みマップの一例を示す図である。
【図１８】画像、ラベル付き前景マップ、および重みマップ履歴の一例を示す図である。
【図１９】本明細書で開示するシステムおよび方法の様々な構成を実装するように構成された電子デバイス内に含まれてもよい特定の構成要素を示す図である。
【発明を実施するための形態】
【００１３】
物体追跡は、(たとえば、フレームからフレームへの)一連の画像内のオブジェクトを位置決めすることを含む場合がある。カメラを使用して一連の画像(たとえば、画像データ、画像フレーム、ビデオなど)内のオブジェクト、またはそれらの画像内のユーザ定義された関心領域を追跡することは、困難な場合がある。リアルタイム性能(〜30フレーム/秒(fps))が必要とされる場合がある。いくつかの構成は、ロバストな追跡を取得するために、オプティカルフローに基づく追跡器および画像コンテンツに基づく検出器の出力を組み合わせる場合がある。しかしながら、既存アルゴリズムの計算は、リアルタイム性能を達成するのを困難にする。
【００１４】
本システムおよび方法は、追跡および検出アルゴリズムの速度を改善するために、以下の技法、すなわち、(1)各フレームにおいて潜在的検出(たとえば、走査)ウィンドウの一部を使用する(たとえば、ウィンドウ位置をランダムに選択するか、または走査パターンを利用する)こと、(2)前に検出された目標サイズに対応するスケールにおいて近いオブジェクト検出のための空間スケールの限られた範囲のみ(たとえば、利用可能な空間スケールのサブセットのみ)を選択すること、(3)前の追跡の信頼値に基づいて、部分画像内または全体画像内のどちらでオブジェクトを探索する決定すること、(4)前の追跡結果に基づいて、検出ウィンドウの数を動的に調整すること、(5)追跡および検出を順次に実行する(たとえば、より計算的に高価でないので、追跡器を最初に適用する)こと、(6)追跡器の信頼度がしきい値よりも低いときにのみ、オブジェクト検出器を動作させること、ならびに(7)画像位置の総数に比例する走査ステップの数を設定すること、のうちの1つまたは複数を実装してもよい。本方法およびシステムの利点の1つは、目標オブジェクトを追跡および/または検出するために使用される計算を低減することである。
【００１５】
本明細書で使用する場合、「追跡する」という用語およびその変形は、動きに基づくプロセスを指し、特定のオブジェクトを特定しない。たとえば、オブジェクト追跡および検出モジュールは、フレーム間の動きを追跡し、電子デバイスの動き(たとえば、カメラがパンしている場合)またはフレーム間のオブジェクトの動きに基づいて、目標オブジェクトの位置、サイズ、またはフレームを決定してもよい。「検出する」という用語およびその変形は、たとえば、フレームの一部を基準画像と比較することによって、目標オブジェクトまたは目標オブジェクトのタイプを識別しようと試みるプロセスを指す。たとえば、オブジェクト追跡および検出モジュールは、目標オブジェクトを識別しようとする試みにおいて、取り込まれたフレームの一部を(目標オブジェクトの)基準画像と比較してもよい。一例では、検出は、目標がもはや追跡されることが可能ではないときに(たとえば、オブジェクトが視野の外にある場合)使用されてもよい。動きに基づく追跡およびオブジェクト検出を実行するシステムおよび方法について、以下により詳細に説明する。
【００１６】
図1は、目標オブジェクトを追跡および検出するための電子デバイス102を示すブロック図である。電子デバイス102の例は、ラップトップまたはデスクトップコンピュータ、セルラーフォン、スマートフォン、ワイヤレスモデム、電子リーダ、タブレットデバイス、ゲームシステム、ロボット、航空機、無人航空機(UAV)、自動車、ウェアラブルデバイス、パーソナルカメラ、アクションカメラ、搭載カメラなどを含む。これらのデバイスのうちのいくつかは、1つまたは複数の業界標準に従って動作する場合がある。
【００１７】
たとえば、スマートフォンまたはタブレットなどの電子デバイス102は、カメラを含む場合がある。カメラは、画像センサ114と、光学システム118の視野内に位置するオブジェクトの画像を画像センサ114上に集束させる光学システム118(たとえば、レンズ)とを含んでもよい。電子デバイス102はまた、カメラソフトウェアアプリケーションと表示画面とを含んでもよい。カメラアプリケーションが動作しているとき、光学システム118の視野内に位置するオブジェクトの画像は、画像センサ114によって記録されてもよく、表示画面上に表示されてもよい。本システムおよび方法は、1つまたは複数の画像および/またはビデオフレームに関して互換的に説明される場合がある。
【００１８】
カメラアプリケーションのユーザインターフェース120は、表示画面に表示されている1つまたは複数のオブジェクトが追跡されることを可能にしてもよい。電子デバイス102のユーザは、追跡および/または検出されるべきオブジェクトを選択することを許可されてもよい。加えて、または代替的には、追跡されるべきオブジェクト(たとえば、顔、目、人、形状、ボックスなど)は、あらかじめ決められてもよく、および/またはモデルに適合してもよい。
【００１９】
1つの構成では、ディスプレイは、たとえば、指、スタイラス、または他のツールによる物理的なタッチから入力を受け取るタッチスクリーン116である。いくつかの構成では、タッチスクリーン116は、追跡および/または検出されるべき目標オブジェクトを画定するタッチ入力(たとえば、タッチ点、円またはボックスなどの描かれた囲い)を受け取ってもよい。いくつかの構成では、電子デバイス102は、追跡および/または検出のための目標オブジェクトを自動的に決定してもよい。いくつかの構成では、複数のオブジェクトが追跡されてもよい。
【００２０】
電子デバイス102は、選択されたオブジェクトを追跡するためおよび/またはビデオフレーム内のオブジェクトを検出するためのオブジェクト追跡および検出モジュール104を含んでもよい。オブジェクト追跡および検出モジュール104は、1つもしくは複数のオブジェクトを追跡するための動き追跡器106、および/またはビデオフレーム内のオブジェクトを検出するためのオブジェクト検出器108を含んでもよい。
【００２１】
動き追跡器106は、前のビデオフレームと現在のビデオフレームとの間の目標オブジェクトの位置および/または位置の変化を推定するために、フレーム間の画像(たとえば、ビデオフレーム)上の点の動きを追跡するために、動きに基づいてもよい。オブジェクト検出器108は、現在のビデオフレームのすべてまたは一部を、(たとえば、一連のビデオフレームにおける)取り込まれた前のビデオフレーム112の選択されたオブジェクトまたは一部と比較することによってオブジェクトを検出するために、動きに基づくモデルではなく、オブジェクトモデルを使用してもよい。オブジェクト検出器108は、ビデオフレーム内の複数のオブジェクトを検出するために使用されてもよい。いくつかの構成では、オブジェクト検出器108は、特定のオブジェクトを検出するために、1つまたは複数のフレームおよび/または画像を走査してもよい。オブジェクト検出器108は、本明細書で説明するように1つまたは複数のフレームを走査してもよい。
【００２２】
オブジェクト追跡および検出モジュール104はまた、メモリバッファ110を含んでもよい。メモリバッファ110は、1つまたは複数の取り込まれたフレームと、取り込まれたビデオフレームに関連するデータと記憶してもよい。一例では、メモリバッファ110は、前に取り込まれたビデオフレーム112を記憶してもよい。オブジェクト追跡および検出モジュール104は、動きに基づく追跡および/またはオブジェクト検出を実行する際に、取り込まれた前のビデオフレーム112について、メモリバッファ110から提供されるデータを使用してもよい。いくつかの構成では、メモリバッファ110は、位置およびウィンドウサイズデータを動き追跡器106に提供してもよく、オブジェクト検出器108は、オブジェクトをより正確に追跡および/または検出するために使用される場合がある1つまたは複数のパラメータを、動き追跡器106およびオブジェクト検出器108に提供してもよい。
【００２３】
電子デバイス102は、動きに基づく追跡を実行してもよい。1つの手法は、動き追跡器106が1対の画像It、It+1(たとえば、ビデオフレーム)と、境界ボックスβtとを受け入れ、境界ボックスβt+1を出力する中央フロー(median flow)方法である。点のセットは、境界ボックスβt内の矩形グリッド上で初期化されてもよく、ItとIt+1との間のまばらな動きの流れを生成するために点を追跡する。点予測の品質が推定され、各点に誤差が割り当てられてもよい。最悪の予測の一部(たとえば、50%)がフィルタリングされてもよく、残りの予測は、境界ボックス全体の変位を推定するために使用される。動き追跡器106は、電子デバイス102によって取り込まれた各ビデオフレームに対して動きに基づく追跡を実行してもよい。別の手法では、動きに基づく追跡は、1つまたは複数の勾配(たとえば、x勾配およびy勾配)を計算し、時間勾配を計算するために1対のフレーム間の差を使用し、現在のビデオフレーム内の目標オブジェクトを正確に追跡するために複数の勾配値を使用することによって実行されてもよい。動きに基づく追跡に関するさらなる詳細を以下に提供する。
【００２４】
動きに基づく追跡を実行するとき、動き追跡器106は、動き追跡方法の計算されたまたは推定された精度に基づいて(たとえば、0と1の間の)追跡信頼値を決定してもよい。追跡信頼値は、目標オブジェクトが現在のビデオフレーム内、またはビデオフレームの定義されたウィンドウ内に入る可能性または確率を示してもよい。追跡信頼値が追跡しきい値よりも大きい場合、目標オブジェクトが現在のビデオフレーム内で見つかる可能性は、高い場合がある。そうでなければ、目標オブジェクトが現在のビデオフレーム内で見つかる可能性は、低い場合があり、目標オブジェクトが現在のビデオフレーム内で見つかるかどうかは、不確かである場合がある。追跡信頼値を決定するための様々な手法が使用されてもよい(たとえば、現在のビデオフレーム内の追跡ウィンドウ(たとえば、追跡パッチウィンドウ)と、前に取り込まれたビデオフレームからの前に記憶された画像パッチとの間の正規化相互相関(NCC:normalized cross correlation)を計算する)。
【００２５】
電子デバイス102はまた、オブジェクト検出を実行してもよい。オブジェクト検出は、様々な手法(たとえば、走査ウィンドウ、走査ステップなど)を使用して実行されてもよい。たとえば、すべての可能なウィンドウ位置およびサイズのすべてまたはサブセットがビデオフレーム内で探索されてもよい。
【００２６】
いくつかの構成では、動き追跡器106およびオブジェクト検出器108は、並列にではなく順次に動作してもよい。たとえば、電子デバイス102は、選択されたオブジェクト(たとえば、目標オブジェクト)の動きに基づく追跡を実行し、順次に、1つまたは複数の追跡されたパラメータ(たとえば、目標オブジェクトの領域、ウィンドウ位置、ウィンドウサイズ、スケールレベル、目標サイズ、追跡および/もしくは検出信頼値、または他のパラメータ)に基づいて、選択されたオブジェクトのオブジェクト検出を実行してもよい。たとえば、追跡信頼値が追跡しきい値未満である場合、電子デバイス102は、オブジェクト検出を実行してもよい。代替的には、追跡信頼値が追跡しきい値よりも上である場合、電子デバイス102は、現在のビデオフレームのためのオブジェクト検出をスキップし、現在のビデオフレームの動き追跡結果に基づいて、次のビデオフレームに対して動きに基づく追跡を実行し続けてもよい。動きに基づく追跡がオブジェクト検出よりも計算集約的ではない場合があるので、動きに基づく追跡が現在のビデオフレーム内の目標オブジェクトを正確に追跡するために使用されてもよい場合、電子デバイス102は、オブジェクト検出を実行するのをスキップしてもよい。
【００２７】
図2は、オブジェクト追跡および検出モジュール204を示すブロック図である。オブジェクト追跡および検出モジュール204は、電子デバイスまたはワイヤレスデバイス(たとえば、電子デバイス102)内に実装されてもよい。オブジェクト追跡および検出モジュール204は、オプティカルフローモジュール226と追跡信頼値228とを有する動き追跡器206を含んでもよい。オブジェクト追跡および検出モジュール204はまた、検出信頼値240を有するオブジェクト検出器208を含んでもよい。メモリバッファ210は、動き追跡器206とオブジェクト検出器208とに提供されてもよい、取り込まれた前のビデオフレーム212に関連するデータを記憶してもよい。オブジェクト追跡および検出モジュール204、動き追跡器206、オブジェクト検出器208、およびメモリバッファ210は、図1に関連して上記で説明した対応する要素の構成であってもよい。
【００２８】
動き追跡器206は、現在のビデオフレーム(N)224に対して動きに基づく追跡を実行するために使用されてもよい。たとえば、前のビデオフレーム(N-1)222および現在のビデオフレーム(N)224が(たとえば、電子デバイスによって)受信されてもよい。前のビデオフレーム(N-1)222は、一連のビデオフレームにおいて現在のビデオフレーム(N)224の直前にあってもよい。追加のビデオフレームは、オブジェクト追跡および検出モジュール204によって取得され、処理されてもよい。前のビデオフレーム(N-1)222は、動き追跡器206に提供されてもよい。さらに、メモリバッファ210は、本明細書では取り込まれた前のビデオフレーム212と呼ばれる前のビデオフレーム(N-1)222に関連するデータを記憶してもよい。いくつかの構成では、メモリバッファ210は、電子デバイスから(たとえば、カメラから)直接、前のビデオフレーム(N-1)222に関する情報を取得してもよい。メモリバッファ210はまた、オブジェクトが前のビデオフレーム(N-1)222においてどこで追跡および/または検出されたのかを指定してもよい融合モジュール260から、前のビデオフレーム(N-1)222に関する追跡結果を取得してもよい。前のビデオフレーム(N-1)222または他の前に取り込まれたビデオフレームに関するこの情報は、メモリバッファ210に記憶されてもよい。
【００２９】
動き追跡器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との間の)実数である。
【００３０】
オブジェクト検出器208は、現在のビデオフレーム(N)224上のオブジェクトを検出するために使用されてもよい。たとえば、オブジェクト検出器208は、一連のビデオフレーム内の現在のビデオフレーム(N)224を受信してもよい。オブジェクト検出器208は、追跡されたパラメータ(たとえば、追跡しきい値250および/またはメモリバッファ210から提供される情報(たとえば、領域、ウィンドウ位置、ウィンドウサイズ、もしくは他の情報)と比較された追跡信頼値228)に基づいて、現在のビデオフレーム(N)224上でオブジェクト検出を実行してもよい。
【００３１】
オブジェクト検出器208は、ビデオフレーム内の複数のウィンドウを選択してもよい。選択された走査ウィンドウは、特定の走査パターン(たとえば、スライディングウィンドウ、走査ステップなど)に従ってもよい。より多くの詳細を図11〜図16に関連して与える。オブジェクト検出器208は、目標オブジェクトのうちのいくつかまたはすべてが特定のウィンドウ内で見つけられたかどうかを決定してもよい。オブジェクト検出器208は、目標オブジェクトが現在のビデオフレーム(N)224内に存在する可能性を示す検出信頼値240を決定してもよい。オブジェクト検出器208は、領域、目標サイズ、ウィンドウサイズ、スケールレベル、ウィンドウ位置、および/または1つもしくは複数の信頼値を含む、様々な追跡されたパラメータに従ってオブジェクト検出を実行してもよい。
【００３２】
オブジェクト検出器208は、ウィンドウ位置および/またはサイズのすべてまたはサブセットを探索してもよい。検出が失敗した(たとえば、検出信頼値240が検出しきい値252(たとえば、0.6、0.65、0.7、0.75、0.8、0.85など)未満である)場合、より高いパーセンテージ、たとえば、2%のウィンドウ位置が、次の取り込まれたフレームにおいて探索されてもよい。
【００３３】
オブジェクト追跡および検出モジュール204は、単一のウィンドウを形成するように複数のウィンドウを合併する融合モジュール260を含んでもよい。最初に2つの信頼値、すなわち、オブジェクト検出器208からの検出信頼値240と、動き追跡器206からの追跡信頼値228とが存在してもよい。融合モジュール260は、2つの信頼値を比較し、ならびに/または検出および追跡信頼値256に結合してもよい(たとえば、より大きいものを選び取る)。検出および追跡信頼値256は、目標オブジェクトが見つけられた可能性の全体的な指標として働いてもよい。さらに、検出および追跡信頼値256は、次のビデオフレーム内で探索するために、画像スケール、ウィンドウ位置、ウィンドウサイズ、またはウィンドウのパーセンテージを決定するためのパラメータであってもよい。融合モジュール260は、現在のビデオフレーム(N)224に関する情報(たとえば、ウィンドウ位置、ウィンドウサイズなど)ならびに/または検出および追跡信頼値256をメモリバッファ210に提供するために使用されてもよい。融合モジュール260は、結合された追跡結果(たとえば、境界ボックス)を形成し、検出および追跡信頼値256を計算するために、動き追跡器206およびオブジェクト検出器208からの追跡結果(たとえば、境界ボックス)を使用してもよい。
【００３４】
メモリバッファ210は、前のビデオフレーム(N-1)222、現在のビデオフレーム(N)224、または他の取り込まれたビデオフレームに関連する1つまたは複数の値を記憶してもよい。1つの構成では、メモリバッファ210は、前のビデオフレーム(N-1)222に対応する情報を含んでもよい、取り込まれた前のビデオフレーム212を記憶する。取り込まれた前のビデオフレーム212は、各ウィンドウ242について1つまたは複数のウィンドウ242に関する情報(たとえば、位置244、ウィンドウサイズ246、二分決定248など)を含んでもよい。加えて、または代替的には、取り込まれた前のビデオフレーム212は、オブジェクトが最後に検出および/または追跡された画像スケール(たとえば、スケールレベル)に関する情報を含んでもよい。
【００３５】
取り込まれた前のビデオフレーム212はまた、追跡しきい値250と、検出しきい値252と、検出および追跡しきい値254とを含んでもよい。追跡しきい値250は、追跡信頼レベルが追跡しきい値250よりも大きいかどうかを決定するために、動き追跡器206、またはオブジェクト追跡および検出モジュール204上の回路(たとえば、信頼レベル比較器258)に提供されてもよい。検出しきい値252は、検出信頼値240が検出しきい値252よりも大きいかどうかを決定するために、オブジェクト検出器208、またはオブジェクト追跡および検出モジュール204上の他の回路に提供されてもよい。検出および追跡しきい値254は、追跡しきい値250および検出しきい値252に基づく組合せ値であってもよい。検出および追跡しきい値254は、動きに基づく追跡およびオブジェクト検出のための組合せ信頼値を決定するために、検出および追跡信頼値256と比較されてもよい。しきい値の各々は、目標オブジェクトがビデオフレーム内に位置する可能性に基づいてもよい。オブジェクト追跡および検出モジュール204は、特定の検出および追跡信頼値256が取得されるまで、現在のビデオフレーム(N)224に対する動きに基づく追跡および/または検出を実行してもよい。さらに、動きに基づく追跡およびオブジェクト検出は、一連の複数のビデオフレーム内の各ビデオフレームに対して実行されてもよい。
【００３６】
2ステップ追跡および検出手法の1つの構成では、動き追跡器206は、現在のビデオフレーム(N)224に対して動きに基づく追跡を実行してもよい。動き追跡器206は、動きに基づく追跡プロセスに基づいて追跡信頼値228を決定してもよい。追跡信頼値228と、メモリバッファ210によって提供される追跡しきい値250とを使用して、信頼レベル比較器258は、追跡信頼値228が追跡しきい値250を超えるかどうかを決定してもよい。追跡信頼値228が追跡しきい値250よりも大きい場合、オブジェクト追跡および検出モジュール204は、オブジェクト検出をスキップし、出力262を生成するために追跡結果を融合モジュール260に提供してもよい。出力262は、目標オブジェクトが現在のビデオフレーム(N)224内にあるという指示を含んでもよい。さらに、出力262は、目標オブジェクトに関する追加情報を含んでもよい。
【００３７】
追跡信頼値228が追跡しきい値250を超えない場合、オブジェクト検出器208は、その後、現在のビデオフレーム(N)224に対するオブジェクト検出を実行してもよい。オブジェクト検出は、現在のビデオフレーム(N)224内のウィンドウのすべてまたはサブセットに対して実行されてもよい。オブジェクト検出器208は、検出信頼値240を決定し、検出信頼値240を検出しきい値252と比較してもよい。検出信頼値240が検出しきい値252よりも上である場合、オブジェクト検出器208は、出力262を生成するために、検出結果を融合モジュール260に提供してもよい。出力262は、目標オブジェクトが現在のビデオフレーム(N)224内にあることの指標を含んでもよく、および/または検出されたオブジェクトに関する追加情報を含んでもよい。検出信頼値240が検出しきい値252以下である場合、オブジェクト検出器208は、より堅牢な方法(たとえば、現在のビデオフレーム(N)224内のより多数のウィンドウを探索する)を使用してオブジェクト検出を再び実行してもよく、満足な検出信頼値240が取得されるまで、オブジェクト検出のプロセスを繰り返してもよい。オブジェクト追跡および検出モジュール204は、次のビデオフレームに対して追跡および検出を実行するために使用されてもよい。
【００３８】
図2中の図示の構成要素のうちの1つまたは複数は、オプションでプロセッサ264によって実装されてもよい。図示の構成要素のうちの1つまたは複数は、1つまたは複数のプロセッサ上で一緒にまたは別々に実装されてもよい。
【００３９】
図3は、動きに基づく追跡およびオブジェクト検出を実行するための方法300を示すフロー図である。方法300は、電子デバイス102、たとえば、オブジェクト追跡および検出モジュール104によって実施されてもよい。電子デバイス102は、上記で説明した動きに基づく追跡を実行してもよい(302)。
【００４０】
電子デバイス102は、追跡信頼値228を決定してもよい(304)。これは、上記で説明したように達成されてもよい。電子デバイス102は、追跡信頼値228が追跡しきい値250よりも大きいかどうかを決定してもよい(306)。追跡信頼値228が追跡しきい値250よりも大きい場合、電子デバイス102は、次のビデオフレームのための動きに基づく追跡を実行してもよい(308)(およびオプションで、動きに基づく追跡の結果に基づいて、現在のビデオフレームに対するオブジェクト検出を実行するのをスキップしてもよい)。そうでなければ、電子デバイス102は、現在のビデオフレーム(N)224(または、たとえば、次のビデオフレーム)のためのオブジェクト検出を実行してもよい(310)。
【００４１】
図4は、動きに基づく追跡を実行するための方法400を示すフロー図である。方法400は、電子デバイス102、たとえば、オブジェクト追跡および検出モジュール104によって実施されてもよい。電子デバイス102は、上記で説明したように、境界ボックスを使用して1つまたは複数の目標オブジェクトを識別してもよい(402)。
【００４２】
電子デバイス102は、境界ボックス内のグリッド上の点を初期化してもよい(404)。グリッド上の点は、境界ボックス全体にわたって均一に離間されてもよい。さらに、点は、2つの画像(たとえば、前のビデオフレーム(N-1)222と現在のビデオフレーム(N)224)の間で、グリッド上で(たとえば、Lucas-Kanade追跡器を使用して)追跡されてもよい(406)。電子デバイス102は、2つの画像間で追跡誤差を推定してもよい(たとえば、追跡された点の各点に誤差値を割り当て、前方後方誤差を推定する、NCCおよび/または平方和差など)(408)。推定された追跡誤差は、追跡信頼値228を取得するために使用されてもよい。さらに、電子デバイス102は、異常点予測(たとえば、最悪の予測の50%)をフィルタリングしてもよい(410)。残りの予測は、境界ボックスの変位を推定するために使用されてもよい。
【００４３】
電子デバイス102は、境界ボックスを更新してもよい(412)。境界ボックスを更新すること(412)は、更新された境界ボックスが次のビデオフレームのための新しい境界ボックスになるように実行されてもよい。
【００４４】
図5は、前方後方誤差に基づいて動きに基づく追跡における追跡誤差を推定するための方法500を示すフロー図である。方法500は、電子デバイス102(たとえば、オブジェクト追跡および検出モジュール104)によって実施されてもよい。いくつかの構成では、電子デバイス102は、追跡されたウィンドウ間のNCCを計算してもよく、NCCは、追跡信頼値228を決定するために使用されてもよい。電子デバイス102はまた、NCCと相補的な様々な追跡誤差推定技法(たとえば、前方後方誤差、平方和差)を使用してもよい。前方後方誤差推定を使用する例では、電子デバイス102は、前方軌道を決定するために、前のビデオフレーム(N-1)222と現在のビデオフレーム(N)224との間で前方追跡を実行してもよい(502)。前方追跡は、kステップの間、画像を前方に追跡することを含んでもよい。結果として得られる前方軌道は、(xt,xt+1,...,xt+k)に等しくてもよく、ここでxtは、時間における点の位置であり、kは、一連の画像の長さを示す。電子デバイス102は、後方軌道を決定するために、現在のビデオフレーム(N)224と前のビデオフレーム(N-1)222との間で後方追跡を実行してもよい(504)。結果として得られる後方軌道は、
【００４５】
【数１】
2018508078.tif 000002
【００４６】
に等しくてもよく、ここで、
【００４７】
【数２】
2018508078.tif 000003
【００４８】
である。
【００４９】
電子デバイス102は、前方軌道と後方軌道との間の前方後方誤差を決定してもよい(506)。前方後方誤差は、前方軌道と後方軌道との間の距離として定義されてもよい。さらに、様々な距離が軌道の比較のために定義されてもよい。1つの構成では、前方後方誤差を決定するとき、検証軌道の開始点と終了点との間のユークリッド距離が使用されてもよい。1つの構成では、前方後方誤差は、追跡信頼値228を決定するために使用されてもよい追跡誤差として使用されてもよい。
【００５０】
図6は、オブジェクト検出および追跡を実行するための方法600を示すフロー図である。方法600は、電子デバイス102(たとえば、オブジェクト追跡および検出モジュール104)によって実施されてもよい。電子デバイス102は、現在のビデオフレーム(N)224においてウィンドウ位置およびウィンドウサイズのサブセットを探索することによって、現在のビデオフレーム(N)224に対してオブジェクト検出および動きに基づく追跡を実行してもよい(602)。
【００５１】
電子デバイス102は、検出および追跡信頼値256を決定してもよい(604)。電子デバイス102はまた、検出および追跡信頼値256が検出および追跡しきい値254よりも大きいかどうかを決定してもよい(606)。検出および追跡信頼値が検出および追跡しきい値254よりも大きい場合、電子デバイス102は、次のビデオフレームにおけるウィンドウおよびサイズのサブセット(たとえば、同じサブセット)を使用して次のビデオフレームに対するオブジェクト検出を実行してもよい(608)。検出および追跡信頼値256が検出および追跡しきい値254未満である場合、電子デバイス102は、次のビデオフレームにおけるウィンドウ位置およびウィンドウサイズのより大きいサブセットを使用して次のビデオフレームに対するオブジェクト検出を実行してもよい(610)。
【００５２】
図7Aは、本システムおよび方法で使用されてもよい異なるウィンドウサイズ766a〜jを有する画像ウィンドウ700を示すブロック図である。探索されるウィンドウは、任意の形状(たとえば、正方形、矩形、円形、楕円形、ユーザ定義など)であってもよい。さらに、任意の数のウィンドウサイズ、たとえば、5、15、20、30などが利用可能であってもよい。探索範囲は、特定の位置に対して使用されるウィンドウサイズのすべてまたはサブセット(たとえば、最近のフレームにおける目標オブジェクトに関連するウィンドウ位置およびウィンドウサイズに類似するもの)を含んでもよい。
【００５３】
図7Bは、本システムおよび方法で使用されてもよいいくつかの例示的な画像770a〜jおよびウィンドウ768a〜jを示す図である。具体的には、図7Bは、異なる画像サイズまたはスケールが探索されてもよく、ウィンドウサイズは、同じままでもよいことを示す。図7Bに関連して説明した手法は、図7Aに関連して説明した手法に加えて、またはその代わりに実施されてもよい。
【００５４】
図8は、オブジェクト追跡および検出モジュール804の別の可能な構成を示すブロック図である。図8に示すオブジェクト追跡および検出モジュール804は、1つまたは複数の同様の構成要素を含んでもよく、図2に示すオブジェクト追跡および検出モジュール204内の対応する構成要素と同様の機能を実行してもよい。具体的には、オブジェクト追跡および検出モジュール804は、オブジェクト検出器808、動き追跡器806、および/またはメモリバッファ810を含んでもよい。
【００５５】
オブジェクト追跡および検出モジュール804は、オプションで、目標の動きおよび追跡誤差によるジッタの影響を低減する(たとえば、探索ウィンドウが位置(x、y)とサイズ(幅、高さ)の両方でより滑らかな軌道を有するようにする)ために使用される平滑化モジュール861を含んでもよい。平滑化モジュール861は、単純移動平均(MA:moving average)フィルタまたは自己回帰(AR:auto regression)フィルタであることが可能である。位置およびサイズの平滑化程度は、異なることができる。カルマンフィルタなどの予測フィルタも、位置の平滑化に適している場合がある。図9に関連してより詳細を与える。
【００５６】
オブジェクト追跡および検出モジュール804は、オプションで、境界ボックスによって表されてもよい動き追跡およびオブジェクト検出の組合せ結果を出力してもよい位置およびサイズ決定モジュール899を含んでもよい。この境界ボックスは、平滑化モジュール861によって平滑化される位置および/またはサイズ情報を含んでもよい。たとえば、平滑化モジュール861は、平滑化されていない位置863および平滑化されていないサイズ865に基づいて、平滑化された位置867および/または平滑化されたサイズ869を生成してもよい。
【００５７】
図9は、平滑化モジュール961を示すブロック図である。1つの構成では、自己回帰(AR)モデルを使用し、位置平滑化フィルタ971およびサイズ平滑化フィルタ973は、平滑化されてない位置963および/または平滑化されていないサイズ965に基づいて、平滑化された位置967および/または平滑化されたサイズ969を生成してもよい。たとえば、Xが平滑化されるべき変数(位置またはサイズのいずれか)であり、X'がオブジェクト追跡器によるXの出力であるとする。この構成では、時間tにおけるXの平滑化フィルタリングXtは、Xt=W*X't+(1-W)*Xt-1に従って記述されることが可能であり、ここで、X'tは、時間tにおけるXの追跡器出力であり、Xt-1は、時間t-1におけるXの平滑化された結果であり、W(0≦W≦1)は、平滑化効果を制御する平滑化重みである。たとえば、X'tは、現在のビデオフレームのために選択されたウィンドウ位置またはウィンドウサイズであってもよく、Xt-1は、前のビデオフレームのために使用されたウィンドウ位置またはウィンドウサイズであってもよい。位置平滑化フィルタ971およびサイズ平滑化フィルタ973のために、異なる平滑化重みWが使用されることが可能である。平滑化重みの選択はまた、検出および追跡信頼値に基づいて、ならびに/または、追跡信頼値もしくは検出信頼値に基づいて適応されてもよい。
【００５８】
図10は、動き追跡結果におけるジッタを平滑化するための方法1000を示すフロー図である。方法1000は、電子デバイス102、たとえば、電子デバイス102内のオブジェクト追跡および検出モジュール804によって実行されてもよい。電子デバイス102は、現在のビデオフレームに関連する1つまたは複数のウィンドウ位置および1つまたは複数のウィンドウサイズ、たとえば、平滑化されていない位置863および平滑化されていないサイズ865を決定してもよい(1002)。電子デバイス102はまた、1つまたは複数の平滑化されたウィンドウ位置867および1つまたは複数の平滑化されたウィンドウサイズ869を生成するために、1つまたは複数のウィンドウ位置および1つまたは複数のウィンドウサイズをフィルタリングしてもよい(1004)。たとえば、これは、移動平均フィルタ、自己回帰フィルタ、またはカルマンフィルタを使用することを含んでもよい。1つの構成では、低い追跡信頼度(たとえば、検出および追跡信頼値が検出および追跡しきい値未満である)に応答して、位置およびサイズのための平滑化重みは、低減されてもよい。代替的には、平滑化重みは、検出信頼値または追跡信頼値に基づいて低減されてもよい。電子デバイス102はまた、1つまたは複数の平滑化されたウィンドウ位置867および1つまたは複数の平滑化されたサイズ869によって画定された1つまたは複数のウィンドウを使用して、現在のビデオフレーム224内の目標オブジェクトを検出してもよい(1006)。
【００５９】
本明細書で開示するシステムおよび方法のいくつかの構成は、局所動きパターンおよび/または大域動きパターンに基づいて堅牢なオブジェクト追跡を提供してもよい。たとえば、本明細書で開示するシステムおよび方法のいくつかの構成は、局所的動きおよび大域的動きにおける差を使用することによって、追跡品質を改善してもよい。動きは、オブジェクト追跡のための手がかりを提供してもよい。しかしながら、乱雑な背景からの動きは、動き推定を歪める場合があるので、オブジェクト追跡器に難題を提示する場合がある。対象のオブジェクトは、背景とは異なるように動く場合があるので、オブジェクトとその背景との間の動きの差が有利に利用されてもよい。動きパターンは、追跡のためにそれら自体によって使用されるだけでなく、追跡方法を拡張し、それらの性能を改善してもよい。
【００６０】
いくつかの構成では、本明細書で開示するシステムおよび方法は、局所的動きと大域的動きとの間の差を使用して、追跡関心領域(ROI:region of interest)内のオブジェクトの位置の可能性を推定してもよい。局所的動きは、フレーム間の関心領域内のコンテンツ(たとえば、前景)の動きであってもよい。たとえば、局所的動きは、第1のフレームから第2のフレームへの関心領域内のコンテンツの移動を指してもよい。大域的動きは、フレーム間のコンテンツ(たとえば、すべてのコンテンツまたは一般にコンテンツ)の動きであってもよい。局所的動きと大域的動きとの間の差は、関心領域と画像全体との間の相対的な動きの程度として測定されてもよい。前景の動きと背景の動きとを分離することによって、本明細書で開示するシステムおよび方法は、背景クラッタによって追跡器が混乱する可能性を低減してもよい。局所的動き情報を使用することは、オブジェクトの周りのより密接な関心領域(たとえば、境界領域、境界ボックスなど)を維持する際に助けになる場合があり、関心領域が不必要に拡張すること、および/またはオブジェクトを追跡しそこなうことを防止する場合がある。たとえば、関心領域が広がりすぎた場合、オブジェクト追跡は、失敗する場合がある。局所的動きと大域的動きとの間の差に基づいて重みを計算することによって、フレーム間のオブジェクトのスケールと平行移動の両方が並行して(たとえば、同時に)推定されてもよい。任意の外れ値またはノイズを低減および/または除去するために、時間的平滑化および/または空間的平滑化が重みに適用されてもよい。本明細書で開示するシステムおよび方法のいくつかの構成は、計算的に軽い場合があり、したがって、リアルタイムで実行されてもよい。加えて、または代替的に、本明細書で開示するシステムおよび方法は、堅牢な追跡を容易にするために、他の追跡方法と一緒に実行されてもよい。
【００６１】
図11は、画像内のオブジェクトの動きの一例を示す図である。具体的には、画像A 1175aは、初期追跡関心領域(ROI)1177aを示す。この例におけるROI1177aは、子供の周りの境界ボックスである。いくつかの追跡器は、特定の制限を有する場合がある。たとえば、追跡は、特定の背景領域に付着し、それによって追跡を失敗する場合がある。境界ボックスは、そのような状況では増大する場合がある。この状況の一例は、画像B 1175bに示されている(たとえば、追跡器の結果)。観察することができるように、子供の位置は、変化しており、ROI1177bは、背景に付着しており、それによって、子供の追跡は失敗し、ROI1177bのサイズが拡大している。いくつかの追跡器は、加えて、または代替的に、カメラに向かって、またはカメラから離れるように移動するオブジェクトの追跡が困難である場合がある。望ましい追跡器の挙動を画像C 1175cに示しており、ここで、追跡器は、追跡を維持する(そして、たとえば、背景に付着していない)。具体的には、画像C 1175cは、追跡に失敗した拡張されたROI1177dと比較して、子供を追跡し続けているROI1177cを示す。
【００６２】
図12は、画像1275、大域動きベクトル1279のセット、関心領域1278、次の関心領域1277、および局所動きベクトル1281のセットの一例を示す図である。対象のオブジェクトは、周囲とは異なる動きパターン(たとえば、局所的動き)を示す場合がある。この手がかりは、オブジェクトをその周囲から確実に区別するために使用されてもよい。したがって、堅牢な追跡のために局所的動きと大域動きとを比較し、それらを分離する確実な方法を有することは、有利である場合がある。
【００６３】
具体的には、図12は、関心領域1278(たとえば、境界ボックス)の内部の局所動きベクトル1281のセットを示す。この例では、局所動きベクトルのセットは、144の局所動きベクトル1281(たとえば、関心領域1278内の12×12の局所動きベクトル1281のグリッド)を含む。
【００６４】
大域動きベクトル1279のセットもまた、フレームにわたって拡散されて示されている。この例では、大域動きベクトルのセットは、25の大域動きベクトル1279(たとえば、5×5の大域動きベクトル1279のグリッド)を含む。対象のオブジェクト(たとえば、子供)は、次のフレームに追跡されてもよい。たとえば、次の関心領域1277(たとえば、次のフレームに対応する関心領域)は、局所動きベクトル1281に基づいて予測されてもよい。
【００６５】
図13は、オブジェクト追跡のためのシステムおよび方法が実装されてもよい電子デバイス1302の一例を示すブロック図である。電子デバイス1302の例は、カメラ、ビデオカムコーダデジタルカメラ、セルラーフォン、スマートフォン、コンピュータ(たとえば、デスクトップコンピュータ、ラップトップコンピュータなど)、タブレットデバイス、メディアプレーヤ、アクションカメラ、監視カメラ、搭載カメラ、接続カメラ、ロボット、航空機、ドローン、無人航空機(UAV)、スマートアプリケーション、ヘルスケア機器、ゲームコンソール、携帯情報端末(PDA)、セットトップボックスなどを含む。電子デバイス1302は、1つまたは複数の構成要素または要素を含んでもよい。構成要素または要素のうちの1つまたは複数は、ハードウェア(たとえば、回路)またはハードウェアとソフトウェアの組合せ(たとえば、命令を有するプロセッサ)において実装されてもよい。
【００６６】
いくつかの構成では、電子デバイス1302は、プロセッサ1309、メモリ1315、ディスプレイ1317、画像センサ1301、光学システム1303、および/または通信インターフェース1305を含んでもよい。プロセッサ1309は、メモリ1315、ディスプレイ1317、画像センサ1301、光学システム1303、および/または通信インターフェース1305に結合されてもよい(たとえば、電気通信してもよい)。
【００６７】
いくつかの構成では、電子デバイス1302は、図1〜図12のうちの1つまたは複数に関連して説明した機能、手順、方法、ステップなどのうちの1つまたは複数を実行してもよい。加えて、または代替的には、電子デバイス1302は、図1〜図12のうちの1つまたは複数に関連して説明した構造のうちの1つまたは複数を含んでもよい。いくつかの構成では、図13に関連して説明したオブジェクト追跡は、図1〜図12のうちの1つまたは複数に関連して説明した画像走査、オブジェクト検出、および/またはオブジェクト追跡手法のうちの1つまたは複数と併せて実施されてもよい。図13に関連して説明したオブジェクト追跡は、図1〜図12のうちの1つまたは複数に関連して説明した画像走査および/またはオブジェクト追跡のための手法のうちの1つまたは複数に加えて、またはその代わりに実施されてもよいことに留意すべきである。たとえば、図13に関連して説明したオブジェクト追跡器1311は、オブジェクト追跡および検出モジュール104、204、804のうちの1つまたは複数に関連して説明した追跡に加えて、またはその代わりに、上記で説明した電子デバイスのうちの1つまたは複数において実装されてもよい。
【００６８】
通信インターフェース1305は、電子デバイス1302が1つまたは複数の他の電子デバイスと通信することを可能にしてもよい。たとえば、通信インターフェース1305は、有線通信および/またはワイヤレス通信のためのインターフェースを提供してもよい。いくつかの構成では、通信インターフェース1305は、無線周波数(RF)信号を送信および/または受信するための1つまたは複数のアンテナ1307に結合されてもよい。加えて、または代替的には、通信インターフェース1305は、1つまたは複数の種類の有線(たとえば、ユニバーサルシリアルバス(USB)、イーサネット（登録商標）など)を可能にしてもよい。
【００６９】
いくつかの構成では、複数の通信インターフェース1305が実装および/または利用されてもよい。たとえば、1つの通信インターフェース1305は、セルラー(たとえば、3G、ロングタームエボリューション(LTE)、CDMAなど)通信インターフェース1305であってもよく、別の通信インターフェース1305は、イーサネット（登録商標）インターフェースであってもよく、別の通信インターフェース1305は、ユニバーサルシリアルバス(USB)インターフェースであってもよく、さらに別の通信インターフェース1305は、ワイヤレスローカルエリアネットワーク(WLAN)インターフェース(たとえば、802.11インターフェース)であってもよい。
【００７０】
電子デバイス1302は、1つまたは複数の画像(たとえば、デジタル画像、画像フレーム、ビデオなど)を取得してもよい。たとえば、電子デバイス1302は、画像センサ1301と、光学システム1303の視野内に位置するオブジェクトの画像を画像センサ1301上に集束させる光学システム1303(たとえば、レンズ)とを含んでもよい。いくつかの構成では、画像センサ1301は、1つまたは複数の画像を取り込んでもよい。光学システム1303は、プロセッサ1309に結合されてもよく、および/またはプロセッサ1309によって制御されてもよい。加えて、または代替的には、電子デバイス1302は、別のデバイス(たとえば、電子デバイス1302に結合された外部画像センサ、ネットワークサーバ、交通カメラ、ドロップカメラ、自動車カメラ、ウェブカメラなど)からの1つまたは複数の画像を要求および/または受信してもよい。いくつかの構成では、電子デバイス1302は、通信インターフェース1305を介して1つまたは複数の画像を要求および/または受信してもよい。たとえば、電子デバイス1302は、カメラ(たとえば、画像センサ1301は、および/または光学システム1303)を含んでもよく、または含まなくてもよく、遠隔デバイスから画像を受信してもよい。画像のうちの1つまたは複数(たとえば、画像フレーム)は、オブジェクト(たとえば、検出および/または追跡するための目標オブジェクト)を含んでもよい。
【００７１】
いくつかの構成では、電子デバイス1302は、画像データバッファ(図示せず)を含んでもよい。画像データバッファは、画像センサ1301からの画像データをバッファリング(たとえば、記憶)してもよい。バッファリングされた画像データは、プロセッサ1309に提供されてもよい。
【００７２】
いくつかの構成では、電子デバイス1302は、カメラソフトウェアアプリケーションおよび/またはディスプレイ1317を含んでもよい。カメラアプリケーションが動作しているとき、光学システム1303の視野内に位置するオブジェクトの画像が、画像センサ1301によって取り込まれてもよい。画像センサ1301によって取り込まれている画像は、ディスプレイ1317上に提示されてもよい。いくつかの構成では、これらの画像は、任意の所与の瞬時において光学システム1303の視野内に位置するオブジェクトがディスプレイ1317上に提示されるように、比較的高いフレームレートにおいて連続的に迅速に表示されてもよい。電子デバイス1302によって取得された1つまたは複数の画像は、1つもしくは複数のビデオフレームおよび/または1つもしくは複数の静止画像であってもよい。いくつかの構成では、ディスプレイ1317は、追加のまたは代わりの情報を提示してもよい。たとえば、ディスプレイ1317は、1つまたは複数の追跡されたオブジェクトに対応する1つまたは複数の関心領域(たとえば、境界ボックス)を提示してもよい。
【００７３】
プロセッサ1309は、オブジェクト追跡器1311を含んでもよく、および/またはオブジェクト追跡器1311を実装してもよい。いくつかの構成では、プロセッサ1309は、図2に関連して説明したプロセッサ264の一例であってもよい。加えて、または代替的には、オブジェクト追跡器1311は、本明細書で説明する動き追跡器106、206、806のうちの1つまたは複数の例であってもよい。画像フレームのうちの1つまたは複数は、オブジェクト追跡器1311に提供されてもよい。オブジェクト追跡器1311は、1つまたは複数の画像フレーム内のオブジェクトを追跡してもよい。たとえば、オブジェクト追跡器1311は、分離メトリックに基づいてオブジェクトを追跡してもよい。いくつかの構成では、オブジェクト追跡器1311は、図14〜図19のうちの1つまたは複数に関連して説明した手法、機能、手順、ステップ、および/または構造のうちの1つまたは複数に従って動作してもよい。オブジェクト追跡器1311は、追跡結果を生成してもよい。追跡結果は、画像内のオブジェクトの推定される位置および/または予測される位置を示してもよい。たとえば、追跡結果は、オブジェクトの位置(たとえば、オブジェクトの1つまたは複数のピクセル)、オブジェクトの境界(たとえば、エッジ)、オブジェクトの一部またはすべてを含む関心領域(たとえば、境界ボックス)などを示してもよい。
【００７４】
オブジェクト追跡器1311は、局所動きパターンを決定してもよい。局所動きパターンは、(2つ以上の)局所動きベクトルのセットであってもよい。局所動きベクトルは、関心領域(たとえば、境界ボックス)内の点に対応する動きベクトルであってもよい。たとえば、局所動きパターンを決定することは、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することを含んでもよい。いくつかの構成では、局所動きベクトルは、フレーム間の関心領域内の点(たとえば、ピクセル)にのみ対応してもよい。したがって、局所動きパターンは、いくつかの構成では、関心領域内の動きベクトルのみを含んでもよい。したがって、局所動きパターンは、関心領域内の1つまたは複数の点の動きを特徴付けてもよい。いくつかの構成では、局所動きベクトルは、オプティカルフローを使用して計算されてもよい。局所動きパターンは、いくつかの構成では、特徴点に基づかなくてもよいことに留意すべきである。
【００７５】
オブジェクト追跡器1311は、大域動きパターンを決定してもよい。大域動きパターンは、(2つ以上の)大域動きベクトルのセットであってもよい。大域動きベクトルは、画像内の点に対応する動きベクトルであってもよい。大域動きベクトルは、関心領域内の点に限定されなくてもよい。たとえば、大域動きベクトルは、関心領域内の点に対応してもよく、または対応しなくてもよい。大域動きパターンを決定することは、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することを含んでもよい。いくつかの構成では、大域動きパターンは、関心領域の外側にある少なくとも1つの大域動きベクトルを含んでもよい。大域動きパターンは、画像内の1つまたは複数の点の大域的動きを特徴付けてもよい。いくつかの構成では、大域動きベクトルは、オプティカルフローを使用して計算されてもよい。
【００７６】
いくつかの構成では、大域動きパターンは、局所動きパターンよりも大きい領域に及んでもよい。加えて、または代替的には、大域動きパターンは、局所動きパターンよりも少ない動きベクトルを含んでもよい。たとえば、大域動きパターンは、(たとえば、より小さい領域(たとえば、関心領域)にわたってより多くの動きベクトルを含んでもよい)局所動きパターンと比較して、より小さい密度であってもよい(たとえば、より広い領域にわたってより少ない動きベクトルを含んでもよい)。加えて、または代替的には、局所動きパターンおよび大域動きパターンは、独立して決定されてもよい。たとえば、大域動きパターンは、局所動きパターンとは別個に計算されてもよい。
【００７７】
動きベクトルは、画像間の点または領域の動き(たとえば、運動、変位、シフトなど)を示すベクトルであってもよい。たとえば、オブジェクト追跡器1311は、画像の1つまたは複数の点(たとえば、領域)の動きを決定するために、前のフレームと現在のフレームとを比較してもよい。1つまたは複数の点の動きは、その周囲に対する画像センサ1301の動きの結果として、および/または画像センサ1301に対するオブジェクトの動きの結果として生じてもよい。動きベクトルは、順方向シーケンスおよび/または逆方向シーケンスにおいて計算されてもよいことに留意すべきである。たとえば、オブジェクト追跡器1311は、第1の(たとえば、前の)フレームにおいて開始し、第2の(たとえば、現在の)フレームに進む点に関する動きベクトルを生成してもよい。加えて、または代替的には、オブジェクト追跡器1311は、第2の(たとえば、現在の)フレームにおいて開始し、第1の(たとえば、前の)フレームに進む点に関する動きベクトルを生成してもよい。
【００７８】
いくつかの構成では、オブジェクト追跡器1311は、分離メトリック計算機1313を含んでもよい。代替的には、分離メトリック計算機1313は、オブジェクト追跡器1311とは別個であってもよい。分離メトリック計算機1313は、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算してもよい。分離メトリックは、関心領域(たとえば、追跡されたオブジェクト)と画像全体との間の相対的な動きの程度の尺度であってもよい。たとえば、分離メトリックは、局所動きパターンと大域動きパターンとの間の動き差分を示してもよい。分離メトリックを計算することのより具体的な例を、図15および図17に関連して与える。
【００７９】
いくつかの構成では、分離メトリックを計算することは、大域動きパターンを大域動きモデルに適合させることと、大域動きモデルと局所動きパターンとの間の適合誤差を計算することとを含んでもよい。大域動きモデルは、大域動きパターンの少なくとも1つの統計的尺度を含んでもよい。たとえば、大域動きモデルは、大域動きパターンの1つまたは複数の統計的分布尺度(たとえば、平均、中央値(λG)、標準偏差(σG)など)に基づいてもよい。たとえば、分離メトリックは、大域動きパターン(たとえば、大域動きベクトル)の1つまたは複数の統計的分布尺度(たとえば、平均、中央値、標準偏差など)に基づいてもよい。
【００８０】
いくつかの構成では、プロセッサ1309は、分離メトリックに基づいて前景重みマップを計算してもよい。たとえば、前景重みマップは、背景に対応する局所動きベクトルから関心領域(たとえば、前景)のオブジェクトに対応する局所動きベクトルを分離するのを助けてもよい。いくつかの手法では、プロセッサ1309は、時間とともに前景重みマップを平滑化してもよい。前景重みマップを平滑化することの一例を、図18に関連して与えることができる。前景重みマップは、(たとえば、関心領域内の)各局所動きベクトルに対応する重みを示してもよい。前景重みマップの一例を、図17に関連して与える。加えて、または代替的には、プロセッサ1309は、空間にわたって前景重みマップを微細化してもよい。たとえば、空間にわたって前景重みマップを微細化することは、前景重みマップに中央重み付けカーネルを乗算することを含んでもよい。前景重みマップに中央重み付けカーネルを乗算することの一例を、図18に関連して与える。いくつかの構成では、プロセッサ1309は、時間とともに履歴重みマップを平滑化してもよい。履歴重みマップを平滑化することの一例を、図18に関連して示す。
【００８１】
いくつかの構成では、プロセッサ1309は、局所動きベクトルおよび/または大域動きベクトルを前処理してもよい。たとえば、プロセッサ1309は、1つまたは複数の信頼できない動きベクトル(たとえば、信頼できない局所動きベクトル、信頼できない大域動きベクトル、またはその両方)を拒絶してもよい。いくつかの手法では、プロセッサ1309は、動きベクトルを取得するために、前方オプティカルフローと後方オプティカルフローとを実行してもよい。プロセッサ1309は、(前方および後方に生成された)動きベクトル間の距離誤差を測定してもよい。1つまたは複数の基準を満たさない(たとえば、あるパーセンタイル範囲内にある、距離誤差しきい値よりも大きいなど)これらの動きベクトルは、拒絶(たとえば、破棄、動きベクトルのセットから除去、その後の計算で使用されないなど)されてもよい。局所動きベクトルおよび/または大域動きベクトルを前処理することの一例を、図15に関連して与える。
【００８２】
いくつかの構成では、プロセッサ1309は、大域的動きの一貫性をチェックしてもよい。たとえば、プロセッサ1309は、画像が一貫して動いている程度を示す大域的動き一貫性尺度を決定してもよい。たとえば、大域的動き一貫性尺度は、どれくらい多くの画像が(たとえば、大域的動きベクトルのどれくらい多くのまたはどの部分が)同様の方向(たとえば、ある方向の範囲内)で動いているのかを示してもよい。大域動き一貫性尺度を計算することの一例を、図15に関連して与える。いくつかの構成では、プロセッサ1309は、大域動き一貫性尺度が1つまたは複数の一貫性基準(たとえば、動き一貫性基準、動き一貫性量、動き一貫性範囲、動き一貫性しきい値など)を満たすかどうかを決定してもよい。たとえば、プロセッサ1309は、大域動き一貫性尺度が1つまたは複数の基準を満たすかどうかに基づいて、動き推定を実行してもよい。
【００８３】
いくつかの手法では、大域動き一貫性尺度は、どの動きベクトルが動き推定に使用されるのかを決定するために利用されてもよい。たとえば、大域動き一貫性尺度が1つまたは複数の基準を満たす場合、選択された動きベクトルのみが動き推定のために使用されてもよい。大域動き一貫性尺度が1つまたは複数の基準を満たさない場合、すべての動きベクトル(たとえば、すべての元の動きベクトル、または信頼できない動きベクトルを除去した後に残る動きベクトル)が動き推定のために利用されてもよい。
【００８４】
オブジェクト追跡器1311は、分離メトリックに基づいてオブジェクトを追跡してもよい。たとえば、オブジェクト追跡器1311は、選択された動きベクトルのセットに基づいてオブジェクトを追跡してもよい。たとえば、分離メトリックは、対象のオブジェクトに対応する動きベクトルを選択するために利用されてもよい。たとえば、分離メトリックは、(背景に対応する動きベクトルではなく)どの動きベクトルが前景内の対象のオブジェクトに対応するのかを示してもよい。
【００８５】
いくつかの構成では、オブジェクトを追跡することは、1つまたは複数の動きベクトルに基づいて動き推定を実行することを含んでもよい。たとえば、オブジェクト追跡器1311は、選択された動きベクトルのセットまたはすべての動きベクトルに基づいて動き推定を実行してもよい。いくつかの構成では、オブジェクト追跡器1311は、関心領域(たとえば、オブジェクト)のスケール、シフト(たとえば、平行移動)、および/または回転を推定してもよい。たとえば、オブジェクト追跡器1311は、関心領域(たとえば、オブジェクト)のスケール、シフト、および/または回転を推定するために、加重最小二乗法を利用してもよい。いくつかの構成では、オブジェクト追跡器1311は、動き推定に基づいて関心領域(たとえば、境界ボックス)を予測してもよい。たとえば、オブジェクト追跡器1311は、動き推定に対応する次のフレーム内の関心領域を生成してもよい。いくつかの構成では、オブジェクト追跡器1311は、図1〜図6および図8のうちの1つまたは複数に関連して説明した手法のうちの1つまたは複数に従ってオブジェクトを追跡してもよい。
【００８６】
電子デバイス1302は、いくつかの構成では、オブジェクト追跡に基づいて1つまたは複数の動作を実行するように構成されてもよいことに留意すべきである。たとえば、プロセッサ1309は、オプションで、オブジェクト認識器、オブジェクト除去器、画像エンハンサ、クロッパ、コンプレッサ、および/またはフォーカサを含むおよび/または実装してもよい。
【００８７】
いくつかの構成では、オブジェクト認識器は、オブジェクト追跡に基づいてオブジェクトを認識してもよい。いくつかの構成では、オブジェクト認識は、関心領域からの情報(たとえば、ランドマーク、特徴など)をオブジェクトのデータベースと比較することを含んでもよい。オブジェクトがデータベース内のオブジェクトと(たとえば、ある程度の確率で)一致する場合、オブジェクトが認識される。たとえば、関心領域内の顔は、既知の顔のデータベースと比較されてもよい。関心領域内の顔がデータベース内の顔と一致する場合、顔が認識される。たとえば、データベースは、顔に対応する人々の名前を含んでもよい。したがって、顔は、人物を識別するために認識されてもよい。オブジェクト認識は、他のオブジェクト(たとえば、目、建物、道路標識、人、道路、テキストなど)に対して実行されてもよい。
【００８８】
いくつかの構成では、オブジェクト除去器は、オブジェクト追跡に基づいて画像からオブジェクトを除去してもよい。たとえば、オブジェクト除去器は、関心領域の外側の領域からの画像パッチをオブジェクト領域に入れることによって、関心領域内に含まれるオブジェクトを除去してもよい。
【００８９】
いくつかの構成では、画像エンハンサは、オブジェクト追跡に基づいて画像の品質および/または特性を向上させてもよい。たとえば、画像エンハンサは、色補正、色調整、ホワイトバランス、コントラスト強調、ヘイズ除去、赤目除去、シャープネス調整、ノイズ低減、レンズ補正、フィルタリング、画像合併、オブジェクト強調表示、および/または画像歪み(たとえば、ワーピング)を実行してもよい。画像を増強することは、複数の関心領域のサブセットの内側および/または外側のピクセルを変更することを含んでもよい。
【００９０】
いくつかの構成では、クロッパは、オブジェクト追跡に基づいて画像をクロップしてもよい。たとえば、クロッパは、関心領域の外側のピクセル、またはマージンを有する関心領域の外側のピクセルをクロップしてもよい。
【００９１】
いくつかの構成では、コンプレッサは、オブジェクト追跡に基づいて画像を圧縮してもよい。たとえば、コンプレッサは、関心領域の外側のピクセル、またはマージンを有する関心領域の外側のピクセルを備えてもよい。これは、画像のデータサイズを低減するために画像の残りの部分が圧縮されることを可能にしながら、対象のオブジェクトを含む1つまたは複数の領域(たとえば、関心領域)における画像充実度を維持することを可能にする場合がある。
【００９２】
いくつかの構成では、フォーカサは、オブジェクト追跡に基づいて光学システム1303に焦点合わせさせてもよい。たとえば、フォーカサは、光学システム1303に焦点合わせさせるために基準として1つまたは複数の関心領域内の画像を利用してもよい。これは、1つまたは複数の関心領域内の1つまたは複数のオブジェクトが焦点合わせされることを可能にする場合がある。
【００９３】
いくつかの構成では、プロセッサ1309は、オプションで、先進運転支援システム(ADAS:advanced driving assistance system)の一部に結合されてもよく(たとえば、ADASに統合されてもよく)、ADASを含んでもよく、およびADASを実装してもよい。たとえば、オブジェクト追跡器1311は、1つまたは複数のオブジェクト(たとえば、歩行者、車両など)を追跡してもよい。プロセッサ1309(および/またはADAS)は、1つまたは複数の動作を実行するために追跡を利用してもよい。たとえば、追跡は、潜在的な衝突を検出するためおよび/またはアクション(たとえば、ディスプレイ(たとえば、ディスプレイパネル、プロジェクタなど)上に1つまたは複数の追跡されたオブジェクトを提示する、警告灯および/または音を出力する、ブレーキを作動および/または制御する、ステアリングを制御する、車両のホーンを作動および/または制御する、非常点滅器を作動および/または制御する、1つまたは複数の車両のライト(たとえば、ヘッドライト、テールライト、フォグライトなど)を作動および/または制御する、など)を実行するために利用されてもよい。
【００９４】
メモリ1315は、命令および/またはデータを記憶してもよい。プロセッサ1309は、メモリ1315にアクセス(たとえば、読み出すおよび/または書き込む)してもよい。メモリ1315によって記憶されてもよい命令および/またはデータの例は、画像データ、動きベクトル、重み、重みマップ、分離メトリック、オブジェクト追跡器命令、および/または分離メトリック計算機命令などを含んでもよい。
【００９５】
いくつかの構成では、電子デバイス1302は、ディスプレイ1317上にユーザインターフェース1319を提示してもよい。たとえば、ユーザインターフェース1319は、ユーザが電子デバイス1302と対話することを可能にしてもよい。いくつかの構成では、ユーザインターフェース1319は、追跡することが望まれるオブジェクトをユーザが示すことを可能にしてもよい。
【００９６】
いくつかの構成では、ディスプレイ1317は、(たとえば、指、スタイラス、または他のツールによる)物理的タッチから入力を受け取るタッチスクリーンであってもよい。たとえば、タッチスクリーンは、追跡するためのオブジェクトを示すタッチ入力を受け取る入力インターフェースであってもよい。加えて、または代替的には、電子デバイス1302は、別の入力インターフェースを含んでもよく、または別の入力インターフェースに結合されてもよい。たとえば、電子デバイス1302は、ユーザに面するカメラを含んでもよく、追跡するためのオブジェクトを示すためのユーザジェスチャ(たとえば、手のジェスチャ、腕のジェスチャ、目追跡、まぶたの瞬きなど)を検出してもよい。別の例では、電子デバイス1302は、マウスに結合されてもよく、追跡するためオブジェクトを示すマウスクリックを検出してもよい。
【００９７】
いくつかの構成では、ユーザ入力は、必要ではない場合があることに留意すべきである。たとえば、電子デバイス1302は、1つまたは複数の画像内の1つまたは複数のオブジェクトを自動的に検出および/または追跡してもよい。
【００９８】
図14は、オブジェクト追跡のための方法1400の1つの構成を示すフロー図である。方法1400は、たとえば、本明細書で説明する電子デバイス102、1302のうちの1つまたは複数によって実行されてもよい。
【００９９】
電子デバイス1302は、局所動きパターンを決定してもよい(1402)。これは、たとえば、図13および図15〜図16のうちの1つまたは複数に関連して説明したように達成されてもよい。
【０１００】
電子デバイス1302は、大域動きパターンを決定してもよい(1404)。これは、たとえば、図13および図15〜図16のうちの1つまたは複数に関連して説明したように達成されてもよい。
【０１０１】
電子デバイス1302は、局所動きパターンと大域動きパターンとに基づいて分離メトリックを計算してもよい(1406)。これは、たとえば、図13および図15〜図16のうちの1つまたは複数に関連して説明したように達成されてもよい。
【０１０２】
電子デバイス1302は、分離メトリックに基づいてオブジェクトを追跡してもよい(1408)。たとえば、これは、図1〜図6、図8、図13および図15のうちの1つまたは複数に関連して説明したように達成されてもよい。いくつかの構成では、電子デバイス1302は、前景重みマップを取得するために分離メトリックを利用してもよい。電子デバイス1302は、前景重みマップに基づいて(たとえば、重み付けされた動きベクトルに基づいて、W、Wt、Ws、および/またはW'に基づいて、など)動きを推定してもよい。電子デバイス1302は、オブジェクトを追跡する(1408)ために、動き推定に基づいて関心領域を予測してもよい。
【０１０３】
図15は、オブジェクトを追跡するための方法1500のより具体的な構成を示すフロー図である。たとえば、図13に関連して説明した電子デバイス1302は、図15に関連して説明した機能、ステップ、手順、および/または構造のうちの1つまたは複数に従って動作してもよい。具体的には、電子デバイス1302は、いくつかの構成では、図15に関連して説明した方法1500を実行してもよい。加えて、または代替的には、図15に関連して説明した方法は、図14に関連して説明した方法1400のより具体的な例であってもよい。
【０１０４】
電子デバイス1302は、局所動きベクトルを計算してもよい(1502)。これは、図13に関連して説明したように達成されてもよい。たとえば、電子デバイス1302は、前のフレームと現在のフレームとの間の関心領域内の1つまたは複数の局所動きベクトルを計算してもよい。いくつかの構成では、局所動きベクトルを計算すること(1502)は、オプティカルフローを使用して達成されてもよい。図16は、局所動きベクトルの例を示す。
【０１０５】
局所動きベクトルのセットは、局所動きパターンの一例であってもよい。上記で説明したように、局所動きベクトルは、関心領域内にある動きベクトルであってもよい。たとえば、局所動きパターンを決定することは、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することを含んでもよい。いくつかの構成では、電子デバイス1302は、前方軌道および/または後方軌道を用いて局所動きベクトルを計算してもよい。これは、たとえば、図5に関連して説明した方法500に従って達成されてもよい。
【０１０６】
電子デバイス1302は、大域動きベクトルを計算してもよい(1504)。これは、図13に関連して上記で説明したように達成されてもよい。たとえば、電子デバイス1302は、前のフレームと現在のフレームとの間の1つまたは複数の大域動きベクトルを計算してもよい(1504)。いくつかの構成では、大域動きベクトルを計算すること(1504)は、オプティカルフローを使用して達成されてもよい。図16は、大域動きベクトルの例を示す。
【０１０７】
大域動きベクトルのセットは、大域動きパターンの例であってもよい。上記で説明したように、大域動きベクトルは、フレームにわたって分散された動きベクトルであってもよい。たとえば、大域動きパターンを決定することは、前のフレームと現在のフレームとの間の大域動きベクトルのセットを決定することを含んでもよい。大域動きベクトルのセットは、局所動きベクトルよりも大きい領域に及んでもよい。加えて、または代替的には、大域動きベクトルのうちの1つまたは複数は、関心領域内に含まれてなくてもよい。1つまたは複数の大域動きベクトルは、関心領域内に含まれてもよいことに留意すべきである。
【０１０８】
電子デバイス1302は、動きベクトルを前処理してもよい(1506)。たとえば、電子デバイス1302は、1つもしくは複数の局所動きベクトルおよび/または1つもしくは複数の大域動きベクトルを前処理してもよい(1506)。動きベクトルを前処理すること(1506)は、信頼できない動きベクトルを決定および/または拒絶(たとえば、破棄、除去など)することを含んでもよい。いくつかの構成では、1つまたは複数の信頼できない動きベクトルを拒絶する(たとえば、破棄する、除去する、利用しないなど)ことは、1つもしくは複数の信頼できない動きベクトルを0に設定すること、および/または動きベクトルのセットから(たとえば、局所動きベクトルのセットから)それらを除去することを含んでもよい。
【０１０９】
上記で説明したように、前方軌道および後方軌道が、1つまたは複数の動きベクトル(たとえば、1つもしくは複数の局所動きベクトルおよび/または1つもしくは複数の大域動きベクトル)のために決定されてもよい。動きベクトルを前処理すること(1506)は、前方軌道と後方軌道との間の距離誤差(たとえば、前方後方誤差)を測定することを含んでもよい。距離誤差(たとえば、前方後方誤差)は、前方軌道と後方軌道との間の距離であってもよい。いくつかの構成では、電子デバイス1302は、前方軌道の開始点と後方軌道の終了点との間のユークリッド距離として距離誤差を決定してもよい。いくつかの構成では、動きベクトルのうちの1つまたは複数は、距離誤差に基づいて拒絶されてもよい。たとえば、ある割合の動きベクトル(たとえば、あるパーセンタイルにおける距離誤差を有する局所動きベクトル)は、拒絶されてもよく、および/または、ある量の距離誤差を有する(たとえば、しきい値を超える距離誤差を有する)1つもしくは複数の動きベクトルは、拒絶されてもよい。たとえば、上位20パーセンタイルの距離誤差を有する局所動きベクトルは、拒絶されてもよい。他の割合(たとえば、25パーセンタイル、50パーセンタイルなど)が利用されてもよいことに留意すべきである。加えて、または代替的には、あるパーセンタイル未満(たとえば、80パーセンタイル未満)の距離誤差を有する動きベクトル(たとえば、局所動きベクトル)は、維持されてもよい。いくつかの構成では、前処理することは、図16に関連して説明したように実行されてもよい。
【０１１０】
電子デバイス1302は、大域動き一貫性尺度を計算してもよい(1508)。これは、図13に関連して上記で説明したように達成されてもよい。大域動き一貫性は、動きが大域動きベクトルにわたってどれくらい一貫しているかの尺度であってもよい。
【０１１１】
いくつかの構成では、大域動き一貫性を計算すること(1508)は、以下の式に従って実行されてもよい。便宜のため、ここで表記法を提供する。大域動きベクトルは、MG=(mxiG,MyiG)と示されてもよく、ここで、mxiGは、水平動き成分であり、MyiGは、垂直動き成分であり、i∈[0,NG)である。NGは、大域動きベクトルの総数を示す。
【０１１２】
いくつかの構成では、電子デバイス1302は、大域動きパターン(たとえば、大域動きベクトル)の1つまたは複数の統計的尺度を決定してもよい。たとえば、電子デバイス1302は、大域動きパターン(たとえば、大域動きベクトル)の1つまたは複数の統計的分布尺度(たとえば、代表値、平均値、中央値、標準偏差など)を決定(たとえば、計算)してもよい。大域的動きの中央値は、
【０１１３】
【数３】
2018508078.tif 000004
【０１１４】
と示されてもよく、ここで、
【０１１５】
【数４】
2018508078.tif 000005
【０１１６】
は、大域動きベクトルの水平成分の中央値であり、
【０１１７】
【数５】
2018508078.tif 000006
【０１１８】
は、大域動きベクトルの垂直成分である。代替的には、平均値が同様に定義されてもよい。大域的動きの標準偏差は、
【０１１９】
【数６】
2018508078.tif 000007
【０１２０】
と示されてもよく、ここで、
【０１２１】
【数７】
2018508078.tif 000008
【０１２２】
は、大域動きベクトルの水平成分の標準偏差であり、
【０１２３】
【数８】
2018508078.tif 000009
【０１２４】
は、大域動きベクトルの垂直成分の標準偏差である。
【０１２５】
大域動き一貫性尺度を計算すること(1508)の1つの手法は、以下のように与えられてもよい。この手法では、電子デバイス1302は、大域中央値(または平均)の2つの標準偏差内にある大域動きベクトルの数を決定してもよい。各動きベクトル対MGについて、たとえば、電子デバイス1302は、大域動き一貫性尺度を、
【０１２６】
【数９】
2018508078.tif 000010
【０１２７】
として計算してもよく(1508)、ここで、
【０１２８】
【数１０】
2018508078.tif 000011
【０１２９】
である。
【０１３０】
電子デバイス1302は、大域動き一貫性尺度が1つまたは複数の一貫性基準を満たすかどうかを決定してもよい(1510)。たとえば、電子デバイス1302は、大域動き一貫性尺度がある一貫性量であるか、ある一貫性範囲内であるか、および/または一貫性しきい値を満たすかどうかを決定してもよい。たとえば、大域動き一貫性は、以下の式、すなわち、
【０１３１】
【数１１】
2018508078.tif 000012
【０１３２】
に従ってチェックされてもよく、ここで、Tは、一貫性しきい値である。いくつかの構成では、Tは、(たとえば、実験的に決定された)0.7であってもよい。
【０１３３】
大域動き一貫性尺度が1つまたは複数の一貫性基準を満たす場合、電子デバイス1302は、前景分離を実行してもよい(1512)。たとえば、大域動き一貫性尺度(たとえば、Vi)が一貫性しきい値(たとえば、T)以上である場合、電子デバイス1302は、前景分離を実行してもよい(1512)。
【０１３４】
いくつかの構成では、前景分離を実行すること(1512)は、局所動きパターンおよび大域動きパターンに基づいて分離メトリックを計算することを含んでもよい。たとえば、局所動きベクトルは、ML=(mxiL,myiL)と示されてもよく、ここで、mxiLは、水平動き成分であり、myiLは、垂直動き成分であり、i∈[0,NL)である。NLは、局所動きベクトルの総数を示す。たとえば、NLは、元々生成された局所動きベクトルの総数、または前処理後に残っている局所動きベクトルの総数を示してもよい。各動きベクトル対MLについて、電子デバイス1302は、いくつかの構成では、
【０１３５】
【数１２】
2018508078.tif 000013
【０１３６】
として分離メトリックを計算してもよい。たとえば、DLは、局所動きパターンと大域動きパターン(たとえば、大域動きモデル)との間の動き差分を示してもよい。たとえば、DLが大きいほど、局所動きベクトルが前景(背景とは異なって動いている対象のオブジェクト)に対応する可能性が高い。この例では、大域動きモデルは、大域動きベクトル中央値λGと、大域動きベクトル標準偏差σGとを含んでもよい。したがって、電子デバイス1302は、大域動きモデルと局所動きパターン(たとえば、ML)との間の適合誤差(たとえば、分離メトリックDL)を計算してもよい。
【０１３７】
いくつかの構成では、電子デバイス1302は、分離メトリックに基づいて前景重みマップを生成してもよい。いくつかの例では、前景重みマップは、水平(x)方向または垂直方向(y)のいずれかにおける分離メトリック(たとえば、DL)の最大成分をとることによって生成されてもよい。たとえば、
【０１３８】
【数１３】
2018508078.tif 000014
【０１３９】
である。前景重みマップ(たとえば、WLまたはW)は、オプションで、時間的に平滑化された重みマップ(たとえば、Wt)を生成するために、時間とともに平滑化されてもよい。前景重みマップは、オプションで、空間的に微細化された重みマップ(たとえば、Ws)を生成するために、空間にわたって微細化されてもよい。たとえば、電子デバイス1302は、前景重みマップに中央重み付けカーネルを乗算してもよい。いくつかの構成では、電子デバイス1302は、平滑化され、微細化された重みマップ(たとえば、W')を生成するために、重みマップを時間的に平滑化し、かつ空間的に微細化してもよい。電子デバイス1302は、オプションで、時間とともに履歴重みマップ(たとえば、H)を平滑化してもよい。重み付けの例を、図17〜図18のうちの1つまたは複数に関連して与える。
【０１４０】
いくつかの構成では、動きベクトル(たとえば、局所動きベクトル)に重み付けすることは、1つまたは複数の動きベクトル(たとえば、前処理後の1つまたは複数の局所動きベクトル)を拒絶する(たとえば、取り除く、除去する、選択から外すなど)ことを含んでもよい。たとえば、1つまたは複数の動きベクトルは、0に重み付けされてもよい。たとえば、大域動きベクトル中央値(または平均)に一致する1つまたは複数の局所動きベクトルは、結果として0の重み(たとえば、結果として0の重みをもたらしてもよい0の分離メトリック)をもたらしてもよい。加えて、または代替的には、大域動きベクトル中央値(または平均)からある分離距離量内(たとえば、分離距離しきい値未満)の1つまたは複数の局所動きベクトルは、0の重みを割り当てられてもよい。したがって、非ゼロ(たとえば、>0)の重みを有する1つまたは複数の動きベクトル(たとえば、局所動きベクトル)は、選択された動きベクトルであってもよい。ゼロの重みを有する1つまたは複数の動きベクトル(たとえば、局所動きベクトル)は、選択されていない動きベクトルであってもよい。
【０１４１】
電子デバイス1302は、1つまたは複数の重み付けされた(たとえば、選択された)動きベクトルを使用して動き推定を実行してもよい(1514)。たとえば、電子デバイス1302は、オブジェクト(たとえば、対象のオブジェクトまたは目標オブジェクト)に対応する1つまたは複数の局所動きベクトルに基づいて動き推定を実行してもよい(1514)。
【０１４２】
いくつかの構成では、電子デバイス1302は、以下のように動き推定を実行してもよい。たとえば、動き推定は、加重最小二乗法に従って実行されてもよい。電子デバイス1302は、加重最小二乗を使用してスケールおよびシフトを並行して(たとえば、同時に)推定してもよい。たとえば、電子デバイス1302は、関心領域(たとえば、境界ボックス)のスケール(たとえば、サイズ)およびシフト(たとえば、平行移動)を推定してもよい。重み(たとえば、重みマップW、Wt、Ws、および/またはW')は、局所動きパターンおよび大域動きパターンに基づいて上記で説明したように(および/または、図17〜図18のうちの1つまたは複数に関連して説明したように)計算されてもよい。
【０１４３】
加重最小二乗法は、L=||Y-AX||2に従って達成されてもよく、ここで、Lは、コスト関数であり、Yは、現在のフレーム内の点であり、Xは、前のフレーム内の点であり、Aは、(たとえば、X点とY点との間の変換を表す)変換行列である。たとえば、Amin=(YwXT)(XwXT)-1であり、ここで、wは、対角線上の重みを有する対角行列である。重みは、重みマップ(たとえば、W、Wt、Wsおよび/またはW')からの重みであってもよい。いくつかの構成では、Y=[x'0y'0 x'1y'1...]であり、ここで、Yは、点のセットである(たとえば、1×2Nの次元を有するベクトルであり、ここで、Nは、動きベクトルの数または点の対の数である)。
【０１４４】
【数１４】
2018508078.tif 000015
【０１４５】
であり、ここで、Xは、(現在のフレームからのYにおける点に対応する)前のフレーム内の点のスタックド行列(stacked matrix)である。Amin=[S tx ty]であり、ここで、Sは、スケールであり、txは、水平方向における平行移動またはシフトであり、tyは、垂直方向における平行移動またはシフトである。w=diag(w0 w0 w1 w1...)である。この手法では、スケールSは、水平方向と垂直方向の両方で一定(たとえば、同じ)であってもよいことに留意すべきである。しかしながら、他の構成では、異なるスケール(たとえば、水平スケールおよび垂直スケール)が、水平方向および垂直方向に対して使用されてもよい。
【０１４６】
電子デバイス1302は、動き推定に基づいて関心領域(たとえば、境界ボックス)を予測してもよい(1516)。たとえば、電子デバイス1302は、動き推定によって決定されたシフトおよびスケールを用いて(たとえば、次のフレームのための)関心領域を生成してもよい。
【０１４７】
大域動き一貫性尺度が1つまたは複数の一貫性基準(たとえば、一貫性しきい値)を満たさない場合、電子デバイス1302は、すべての動きベクトル(たとえば、すべての元の動きベクトル、すべての前処理された局所動きベクトル、および/またはすべての前処理された大域動きベクトル)を使用して動き推定を実行してもよい(1518)。電子デバイス1302は、動き推定に基づいて境界ボックスを予測してもよい(1516)。
【０１４８】
図16は、画像1675、大域動きベクトル1679のセット、関心領域1678、次の関心領域1677、および局所動きベクトル1681のセットの一例を示す図である。具体的には、図16は、関心領域1678(たとえば、境界ボックス)の内側の局所動きベクトル1681のセットを示す。この例では、局所動きベクトルのセットは、64の局所動きベクトル1681(たとえば、関心領域1678内の8×8の局所動きベクトルのグリッド)を含む。大域動きベクトル1679のセットもまた、フレームにわたって拡散されて示されている。この例では、大域動きベクトルのセットは、25の大域動きベクトル1679(たとえば、5×5の大域動きベクトル1679のグリッド)を含む。
【０１４９】
上記で説明したように、電子デバイスは、局所動きパターンを決定してもよい。いくつかの構成では、局所動きパターンを決定することは、関心領域内の1つまたは複数の動きベクトルを(たとえば、オプティカルフローを用いて)計算することを含んでもよい。いくつかの構成では、局所動きベクトルを計算することは、(前方オプティカルフローと後方オプティカルフローとを実行して)前方動きベクトルと後方動きベクトルとを決定することを含んでもよい。たとえば、電子デバイス1302は、(たとえば、上記で説明したように)前方軌道と後方軌道とを決定してもよい。いくつかの構成では、前処理することは、距離誤差を測定することと、距離誤差に基づいて信頼できないベクトル(たとえば、20パーセンタイルにおける動きベクトル)を拒絶することとを含んでもよい。たとえば、図16は、しようされなくてもよい(利用される局所動きベクトル1681aを残す)いくつかの拒絶された局所動きベクトル1681bを示す。
【０１５０】
上記で説明したように、電子デバイス1302は、大域動きパターンを決定してもよい。いくつかの構成では、大域動きパターンを決定することは、(たとえば、オプティカルフローを用いて)1つまたは複数の動きベクトルを計算することを含んでもよい。大域動きベクトル1679は、たとえば、局所動きベクトル1681よりも大きい領域に及んでもよい。いくつかの構成では、大域動きベクトルは、画像の特定の部分をカバーしてもよい。たとえば、大域動きベクトルは、画像の90%に及んでもよく、および/または画像の90%を考慮してもよい(そして、たとえば、境界を無視してもよい)。図16は、粗い5×5グリッド上の大域動きベクトル1679を示す。図16は、(各大域動きベクトル1679と重ね合わされた)大域動きベクトル中央値1682をさらに示す。図16に示すように、対象のオブジェクト(たとえば、顔)は、局所動きベクトル1681に基づいて次のフレームに追跡されてもよい。たとえば、次の関心領域1677(たとえば、次のフレームに対応する関心領域)は、局所動きベクトル1681に基づいて予測されてもよい。
【０１５１】
図17は、画像1775および対応する前景重みマップ1721の例を示す。大域動きベクトル1779のセット、局所動きベクトル1781のセット、関心領域1778、および次の関心領域1777が示されている。
【０１５２】
いくつかの構成では、電子デバイス1302は、以下の式のうちの1つまたは複数に従って重みを計算してもよい。上記で説明したように、局所動きベクトルは、ML=(mxiL, myiL)で示されてもよく、ここで、i∈[0,NL)である。電子デバイス1302はまた、分離メトリックを決定してもよい。たとえば、各動きベクトル対MLについて、電子デバイス1302は、
【０１５３】
【数１５】
2018508078.tif 000016
【０１５４】
を計算してもよい。いくつかの構成では、前景重みマップの重みは、
【０１５５】
【数１６】
2018508078.tif 000017
【０１５６】
として計算されてもよい。たとえば、図17は、前景重みマップ1721の一例(たとえば、関心領域1778に対応する局所重みWL)を示す。(局所的動きと大域的動きの間の)より大きい分離の領域は、より高い重み1723を示すことを観察することができる。いくつかの構成では、局所重みまたは前景重みマップWLは、単純化のためにWと呼ばれる場合がある。
【０１５７】
図18は、画像1875、ラベル付けされた前景マップ1825、および重みマップ履歴1827の一例を示す。大域動きベクトル1879のセット、局所動きベクトル1881のセット、関心領域1878、および次の関心領域1877が示されている。具体的には、図18は、重みマップ上で実行されてもよいオプションの処理の一例を示す。構成に応じて、本明細書で開示するシステムおよび方法は、重みマップW(たとえば、WL)、時間的に平滑化された重みマップ(たとえば、Wt)、空間的に微細化された重みマップ(たとえば、Ws)、および/または平滑化され、微細化された重みマップ(たとえば、W')を決定(たとえば、計算)および/または利用してもよい。たとえば、フレームごとの重み付けは、時間的な情報を考慮に入れない場合がある。たとえば、フレームごとの重み付けは、外れ値の影響を受けやすい場合がある。これらの問題を改善するための1つの手法は、時間的な一貫性を考慮するために重みの履歴を使用することである。たとえば、重み更新モデルが、2つのステップにおいて実行されてもよい。第1のステップは、現在の重みマップを更新することを含んでもよい。これは、以下の式、Wt=αH+(1-α)Wに従って達成されてもよい。αは、平滑化係数であってもよい(かつ、たとえば、Wにより多くの重みを与えてもよい)。第2のステップは、履歴H(たとえば、履歴重みマップまたは重みマップ履歴1827)を更新する(たとえば、平滑化する)ことを含んでもよい。これは、以下の式、H'=βW+(1-β)Hによって達成されてもよい。βは、Hにより多くの重みを与えてもよい。
【０１５８】
ラベル付けされた前景マップ1825は、画像1875内の関心領域1878(たとえば、境界ボックス)に対応する現在の重みマップの一例を示す。重みA 1823aは、ラベル付けされた前景マップ1825における重み値の範囲を示す。重みマップ履歴1827は、画像1875内の関心領域1878(たとえば、境界ボックス)に対応する重みマップ履歴の一例を示す。重みB 1823bは、重みマップ履歴1827における重み値の範囲を示す。
【０１５９】
いくつかの構成では、電子デバイス1302は、加えて、または代替的に、中央重み付け制約を適用してもよい。中央重み付け制約は、対象のオブジェクトが関心領域(たとえば、境界ボックス)の中央またはその近くにある(たとえば、常に中央にある)と仮定してもよい。たとえば、境界よりも関心領域(たとえば、境界ボックス)の中央により多くの重みが適用されてもよい。いくつかの構成では、重み更新、または中央重み付けカーネルを適用すること(たとえば、最終重み更新)は、以下の式に従って達成されてもよい。Ws=W・Cであり、ここでCは、中央重み付けカーネルである。いくつかの構成では、電子デバイス1302は、平滑化され、微細化された重みマップを生成するために、時間的平滑化と空間的微細化の両方を実行してもよい。たとえば、W'=WtC=(αH+(1-α)W)・Cである。
【０１６０】
したがって、時間的平滑化または空間的微細化は、いくつかの構成では利用されなくてもよい。たとえば、オブジェクトは、いくつかの構成では、重みマップ(たとえば、時間的平滑化または空間的微細化なしのW)に基づいて追跡されてもよい。別の例では、オブジェクトは、時間的に平滑化された重みマップ(たとえば、Wt)に基づいて追跡されてもよい。別の例では、オブジェクトは、空間的に微細化された重みマップ(たとえば、Ws)に基づいて追跡されてもよい。さらに別の例では、オブジェクトは、平滑化され、微細化された重みマップ(たとえば、W')に基づいて追跡されてもよい。
【０１６１】
図19は、本明細書で開示するシステムおよび方法の様々な構成を実装するように構成された電子デバイス1902内に含まれてもよい特定の構成要素を示す。電子デバイス1902は、アクセス端末、移動局、ユーザ機器(UE)、スマートフォン、デジタルカメラ、ビデオカメラ、タブレットデバイス、ラップトップコンピュータなどであってもよい。電子デバイス1902は、本明細書で説明する電子デバイス102、1302のうちの1つまたは複数に従って実装されてもよい。電子デバイス1902は、プロセッサ1949を含む。
プロセッサ1949は、汎用のシングルチップマイクロプロセッサまたはマルチチップマイクロプロセッサ(たとえば、ARM)、専用マイクロプロセッサ(たとえば、デジタル信号プロセッサ(DSP))、マイクロコントローラ、プログラマブルゲートアレイなどであってよい。プロセッサ1949は、中央演算処理装置(CPU)と呼ばれ得る。単一のプロセッサ1949が電子デバイス1902内に示されているが、代替の構成では、プロセッサの組合せ(たとえば、ARMおよびDSP)が実装されることが可能である。
【０１６２】
電子デバイス1902は、メモリ1929も含む。メモリ1929は、電子情報を記憶することができる任意の電子構成要素であってもよい。メモリ1929は、それらの組合せを含む、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、磁気ディスク記憶媒体、光記憶媒体、RAM内のフラッシュメモリデバイス、プロセッサとともに含まれるオンボードメモリ、EPROMメモリ、EEPROMメモリ、レジスタなどとして具体化されてもよい。
【０１６３】
データ1933aおよび命令1931aは、メモリ1929内に記憶されてもよい。命令1931aは、本明細書で説明する方法のうちの1つまたは複数を実施するためにプロセッサ1949によって実行可能であってもよい。命令1931aを実行することは、メモリ1929内に記憶されたデータ1933aの使用を伴ってもよい。プロセッサ1949が命令1931を実行したとき、命令1931bの様々な部分がプロセッサ1949にロードされてもよく、様々なデータ1933bがプロセッサ1949にロードされてもよい。
【０１６４】
電子デバイス1902はまた、電子デバイス1902への信号の送信と電子デバイス1902からの信号の受信とを可能にするために、トランスミッタ1939とレシーバ1941とを含んでもよい。トランスミッタ1939およびレシーバ1941は、まとめてトランシーバ1943と呼ばれる場合がある。1つまたは複数のアンテナ1937a〜bは、トランシーバ1943に電気的に結合されてもよい。電子デバイス1902はまた、複数のトランスミッタ、複数のレシーバ、複数のトランシーバ、および/または追加のアンテナを含んでもよい(図示せず)。
【０１６５】
電子デバイス1902は、デジタル信号プロセッサ(DSP)1945を含んでもよい。電子デバイス1902はまた、通信インターフェース1947を含んでもよい。通信インターフェース1947は、1つまたは複数の種類の入力および/または出力を許可してもよく、および/または可能にしてもよい。たとえば、通信インターフェース1947は、他のデバイスを電子デバイス1902にリンクするための1つまたは複数のポートおよび/または通信デバイスを含んでもよい。いくつかの構成では、通信インターフェース1947は、トランスミッタ1939、レシーバ1941、またはその両方(たとえば、トランシーバ1943)を含んでもよい。加えて、または代替的に、通信インターフェース1947は、1つまたは複数の他のインターフェース(たとえば、タッチスクリーン、キーパッド、キーボード、マイクロフォン、カメラなど)を含んでもよい。たとえば、通信インターフェース1947は、ユーザが電子デバイス1902と対話することを可能にしてもよい。
【０１６６】
電子デバイス1902の様々な構成要素は、電力バス、制御信号バス、ステータス信号バス、データバスなどを含んでもよい1つまたは複数のバスによって一緒に結合されてもよい。明確にするために、様々なバスは、バスシステム1935として図19中に示されている。
【０１６７】
「決定する」という用語は、多種多様のアクションを包含し、したがって、「決定する」は、算出する、計算する、処理する、導出する、調査する、検索する(たとえば、テーブル、データベース、または別のデータ構造を検索する)、確認するなどを含むことができる。また、「決定する」は、受信すること(たとえば、情報の受信)、アクセスすること(たとえば、メモリ内のデータへのアクセス)、および類似物を含むことができる。また、「決定する」は、解決すること、選択すること、選ぶこと、確立すること、および類似物を含むことができる。
【０１６８】
「〜に基づく」という句は、明示的に指定されない限り、「〜だけに基づく」を意味しない。言い換えると、「〜に基づく」という句は、「〜だけに基づく」と「少なくとも〜に基づく」との両方を記述するものである。
【０１６９】
「プロセッサ」という用語は、汎用プロセッサ、中央処理装置(CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラ、マイクロコントローラ、状態機械などを包含するように広く解釈されるべきである。場合によっては、「プロセッサ」は、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)などを指す場合がある。「プロセッサ」は、処理デバイスの組合せ、たとえば、DPSとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと組み合わせた1つまたは複数のマイクロプロセッサ、または任意の他のそのような組合せを指す場合がある。
【０１７０】
「メモリ」という用語は、電子情報を記憶することができる任意の電子構成要素を包含するように広く解釈されるべきである。メモリという用語は、たとえばランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能PROM(EEPROM)、フラッシュメモリ、磁気または光学のデータストレージ、レジスタなどの様々なタイプのプロセッサ可読媒体を指す場合がある。メモリは、プロセッサがメモリから情報を読み出すことができる、および/またはメモリに情報を書き込むことができる場合、プロセッサと電子通信していると言われる。プロセッサと一体のメモリは、そのプロセッサと電子通信している。
【０１７１】
「命令」および「コード」という用語は、任意のタイプのコンピュータ可読ステートメントを含むように広く解釈されるべきである。たとえば、「命令」および「コード」という用語は、1つまたは複数のプログラム、ルーチン、サブルーチン、関数、手続きなどを指す場合がある。「命令」および「コード」は、単一のコンピュータ可読ステートメントまたは多数のコンピュータ可読ステートメントを含むことができる。
【０１７２】
本明細書で説明する機能は、ハードウェアによって実行されるソフトウェアまたはファームウェアにおいて実施されてもよい。機能は、コンピュータ可読媒体に1つまたは複数の命令として記憶され得る。「コンピュータ可読媒体」または「コンピュータプログラム製品」という用語は、コンピュータまたはプロセッサによってアクセスされ得る任意の有形な記憶媒体を指す。例として、限定はしないが、コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態において所望のプログラムコードを担持または記憶するために使用されることが可能で、コンピュータによってアクセスされることが可能である任意の他の媒体を備えてもよい。ディスク(disk)およびディスク(disc)は、本明細書で使用する場合、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびBlu-ray(登録商標)ディスクを含み、ディスク(disk)は通常、磁気的にデータを再生し、ディスク(disc)は、レーザを用いて光学的にデータを再生する。コンピュータ可読媒体は、有形かつ非一時的であってもよいことに留意すべきである。「コンピュータプログラム製品」という用語は、コンピューティングデバイスまたはプロセッサによって実行され、処理され、または計算され得るコードまたは命令(たとえば、「プログラム」)と組み合わされたコンピューティングデバイスまたはプロセッサを指す。本明細書で使用する場合、「コード」という用語は、コンピューティングデバイスまたはプロセッサによって実行可能なソフトウェア、命令、コード、またはデータを指す場合がある。
【０１７３】
ソフトウェアまたは命令はまた、伝送媒体を介して伝送されてもよい。たとえば、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してソフトウェアがウェブサイトまたは他の遠隔ソースから伝送される場合、同軸ケーブル、光ファイバケーブル、より対線、DSL、または、赤外線、無線、およびマイクロ波などのワイヤレス技術は、伝送媒体の定義に含まれる。
【０１７４】
本明細書で開示する方法は、説明した方法を達成するための1つまたは複数のステップまたはアクションを備える。方法ステップおよび/またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、説明されている方法の適切な操作のために、ステップまたはアクションの特定の順序が必要とされない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく修正することができる。
【０１７５】
さらに、本明細書に記載の方法および技法を実行するためのモジュールおよび/または他の適切な手段は、デバイスによってダウンロードされ、かつ/または他の方法で取得され得ることを諒解されたい。たとえば、本明細書で説明する方法を実行するための手段の転送を容易にするために、デバイスをサーバに結合することができる。代替的には、本明細書で説明した様々な方法は、記憶手段をデバイスに結合または提供する際にデバイスが様々な方法を取得してもよいように、記憶媒体(たとえば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、コンパクトディスク(CD)またはフロッピーディスクなどの物理的記憶媒体など)を介して提供されることが可能である。
【０１７６】
特許請求の範囲は、上記で例示した正確な構成および構成要素に限定されないことが理解されるべきである。特許請求の範囲の範囲から逸脱せずに、本明細書で説明されるシステム、方法、および装置の配置、動作、および詳細において、様々な修正、変更、および変形を作ることができる。
【符号の説明】
【０１７７】
102  電子デバイス
104  オブジェクト追跡および検出モジュール
106  動き追跡器
108  オブジェクト検出器
110  メモリバッファ
112  取り込まれた前のビデオフレーム
114  画像センサ
116  タッチスクリーン
118  光学システム
120  ユーザインターフェース
204  オブジェクト追跡および検出モジュール
206  動き追跡器
208  オブジェクト検出器
210  メモリバッファ
212  取り込まれた前のビデオフレーム
222  前のビデオフレーム(N-1)
224  現在のビデオフレーム(N)
226  オプティカルフローモジュール
228  追跡信頼値
240  検出信頼値
242  ウィンドウ
244  位置
246  ウィンドウサイズ
248  二分決定
250  追跡しきい値
252  検出しきい値
254  検出および追跡しきい値
256  検出および追跡信頼値
258  信頼レベル比較器
260  融合モジュール
262  出力
264  プロセッサ
700  画像ウィンドウ
766a〜j  ウィンドウサイズ
768a〜j  ウィンドウ
770a〜j  画像
804  オブジェクト追跡および検出モジュール
806  動き追跡器
808  オブジェクト検出器
810  メモリバッファ
861  平滑化モジュール
863  平滑化されていない位置
865  平滑化されていないサイズ
867  平滑化された位置
869  平滑化されたサイズ
899  位置およびサイズ決定モジュール
961  平滑化モジュール
963  平滑化されてない
965  平滑化されていないサイズ
967  平滑化された位置
969  平滑化されたサイズ
971  位置平滑化フィルタ
973  サイズ平滑化フィルタ
1175a  画像A
1175b  画像B
1175c  画像C
1275  画像
1277  次の関心領域
1278  関心領域
1279  大域動きベクトル
1281  局所動きベクトル
1301  画像センサ
1302  電子デバイス
1303  光学システム
1305  通信インターフェース
1307  アンテナ
1309  プロセッサ
1311  オブジェクト追跡器
1313  分離メトリック計算機
1315  メモリ
1317  ディスプレイ
1319  ユーザインターフェース
1675  画像
1677  次の関心領域
1678  関心領域
1679  大域動きベクトル
1681  局所動きベクトル
1681a  利用される局所動きベクトル
1681b  拒絶された局所動きベクトル
1682  大域動きベクトル中央値
1721  前景重みマップ
1723  重み
1775  画像
1777  次の関心領域
1778  関心領域
1779  大域動きベクトル
1781  局所動きベクトル
1823a  重みA
1823b  重みB
1825  ラベル付けされた前景マップ
1827  重みマップ履歴
1875  画像
1877  次の関心領域
1878  関心領域
1879  大域動きベクトル
1881  局所動きベクトル
1902  電子デバイス
1929  メモリ
1931a  命令
1931b  命令
1933a  データ
1933b  データ
1935  バスシステム
1937a〜b  アンテナ
1939  トランスミッタ
1941  レシーバ
1943  トランシーバ
1945  デジタル信号プロセッサ(DSP)
1947  通信インターフェース
1949  プロセッサ
【図１】
2018508078.tif 000018
【図２】
2018508078.tif 000019
【図３】
2018508078.tif 000020
【図４】
2018508078.tif 000021
【図５】
2018508078.tif 000022
【図６】
2018508078.tif 000023
【図７Ａ】
2018508078.tif 000024
【図７Ｂ】
2018508078.tif 000025
【図８】
2018508078.tif 000026
【図９】
2018508078.tif 000027
【図１０】
2018508078.tif 000028
【図１１】
2018508078.tif 000029
【図１２】
2018508078.tif 000030
【図１３】
2018508078.tif 000031
【図１４】
2018508078.tif 000032
【図１５】
2018508078.tif 000033
【図１６】
2018508078.tif 000034
【図１７】
2018508078.tif 000035
【図１８】
2018508078.tif 000036
【図１９】
2018508078.tif 000037
【手続補正書】
【提出日】平成29年9月13日(2017.9.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子デバイスによって実行される方法であって、
前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定するステップと、
前記前のフレームと前記現在のフレームとの間の領域内の大域動きベクトルのセットを決定することによって大域動きパターンを決定するステップであって、前記領域が、前記関心領域よりも大きい、ステップと、
前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算するステップであって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、ステップと、
前記分離メトリックに基づいてオブジェクトを追跡するステップと
を備える方法。
【請求項２】
前記局所動きベクトルの各々の距離誤差を測定するステップと、
ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
大域動き一貫性尺度を計算するステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記分離メトリックを計算するステップが、
前記大域動きパターンを大域動きモデルに適合させるステップと、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するステップと
を備える、請求項1に記載の方法。
【請求項５】
前記大域動きモデルが、前記大域動きパターンの少なくとも1つの統計的尺度を備える、請求項4に記載の方法。
【請求項６】
前記分離メトリックに基づいて前景重みマップを計算するステップをさらに備える、請求項1に記載の方法。
【請求項７】
時間とともに前記前景重みマップを平滑化するステップをさらに備える、請求項6に記載の方法。
【請求項８】
空間にわたって前記前景重みマップを微細化するステップをさらに備える、請求項6に記載の方法。
【請求項９】
空間にわたって前記前景重みマップを微細化するステップが、前記前景重みマップに中央重み付けカーネルを乗算するステップを備える、請求項8に記載の方法。
【請求項１０】
時間とともに履歴重みマップを平滑化するステップをさらに備える、請求項1に記載の方法。
【請求項１１】
前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定し、前記前のフレームと前記現在のフレームとの間の領域内の大域動きベクトルのセットを決定することによって大域動きパターンを決定し、ただし前記領域が、前記関心領域よりも大きく、前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算し、ただし前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示し、前記分離メトリックに基づいてオブジェクトを追跡するように構成されたプロセッサを備える電子デバイス。
【請求項１２】
前記プロセッサが、前記局所動きベクトルの各々の距離誤差を測定し、ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するように構成された、請求項11に記載の電子デバイス。
【請求項１３】
前記プロセッサが、大域動き一貫性尺度を計算するように構成された、請求項11に記載の電子デバイス。
【請求項１４】
前記プロセッサが、
前記大域動きパターンを大域動きモデルに適合させ、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するように構成された、請求項11に記載の電子デバイス。
【請求項１５】
前記大域動きモデルが、前記大域動きパターンの少なくとも1つの統計的尺度を備える、請求項14に記載の電子デバイス。
【請求項１６】
前記プロセッサが、前記分離メトリックに基づいて前景重みマップを計算するように構成された、請求項11に記載の電子デバイス。
【請求項１７】
前記プロセッサが、時間とともに前記前景重みマップを平滑化するように構成された、請求項16に記載の電子デバイス。
【請求項１８】
前記プロセッサが、空間にわたって前記前景重みマップを微細化するように構成された、請求項16に記載の電子デバイス。
【請求項１９】
前記プロセッサが、前記前景重みマップに中央重み付けカーネルを乗算するように構成された、請求項18に記載の電子デバイス。
【請求項２０】
前記プロセッサが、時間とともに履歴重みマップを平滑化するように構成された、請求項11に記載の電子デバイス。
【請求項２１】
局所動きパターンを決定するための手段であって、前記局所動きパターンを決定するための手段が、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定するための手段を備える、手段と、
大域動きパターンを決定するための手段であって、前記大域動きパターンを決定するための手段が、前記前のフレームと前記現在のフレームとの間の領域内の大域動きベクトルのセットを決定するための手段を含み、前記領域が、前記関心領域よりも大きい、手段と、
前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算するための手段であって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、手段と、
前記分離メトリックに基づいてオブジェクトを追跡するための手段と
を備える装置。
【請求項２２】
前記局所動きベクトルの各々の距離誤差を測定するための手段と、
ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶するための手段と
をさらに備える、請求項21に記載の装置。
【請求項２３】
大域動き一貫性尺度を計算するための手段をさらに備える、請求項21に記載の装置。
【請求項２４】
前記分離メトリックを計算するための手段が、
前記大域動きパターンを大域動きモデルに適合させるための手段と、
前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算するための手段と
を備える、請求項21に記載の装置。
【請求項２５】
前記分離メトリックに基づいて前景重みマップを計算するための手段をさらに備える、請求項21に記載の装置。
【請求項２６】
命令を有する非一時的コンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記命令が、
電子デバイスに、前のフレームと現在のフレームとの間の関心領域内の局所動きベクトルのセットを決定することによって局所動きパターンを決定させるためのコードと、
前記電子デバイスに、前記前のフレームと前記現在のフレームとの間の領域内の大域動きベクトルのセットを決定することによって大域動きパターンを決定させるためのコードであって、前記領域が、前記関心領域よりも大きい、コードと、
前記電子デバイスに、前記局所動きパターンおよび前記大域動きパターンに基づいて分離メトリックを計算させるためのコードであって、前記分離メトリックが、前記局所動きパターンと前記大域動きパターンとの間の動き差分を示す、コードと、
前記電子デバイスに、前記分離メトリックに基づいてオブジェクトを追跡させるためのコードと
を備える、コンピュータプログラム製品。
【請求項２７】
前記電子デバイスに、前記局所動きベクトルの各々の距離誤差を測定させるためのコードと、
前記電子デバイスに、ある量の距離誤差を有する前記局所動きベクトルのうちの1つまたは複数を拒絶させるためのコードと
をさらに備える、請求項26に記載のコンピュータプログラム製品。
【請求項２８】
前記電子デバイスに、大域動き一貫性尺度を計算させるためのコードをさらに備える、請求項26に記載のコンピュータプログラム製品。
【請求項２９】
前記電子デバイスに、前記分離メトリックを計算させるためのコードが、
前記電子デバイスに、前記大域動きパターンを大域動きモデルに適合させるためのコードと、
前記電子デバイスに、前記大域動きモデルと前記局所動きパターンとの間の適合誤差を計算させるためのコードと
を備える、請求項26に記載のコンピュータプログラム製品。
【請求項３０】
前記電子デバイスに、前記分離メトリックに基づいて前景重みマップを計算させるためのコードをさらに備える、請求項26に記載のコンピュータプログラム製品。
【国際調査報告】
2018508078.tif 000038
2018508078.tif 000039
2018508078.tif 000040