(57)【要約】  ある実施形態は、静的映像を認識するためのコンピュータで実行される方法および／またはシステムを含み得る。方法は、入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを含み得、映像フレームは、シャッター押下指示の受信前に、およびシャッター押下指示の受信後に取得されている。本方法は、ダウンサンプリングと、平滑化と、時間勾配を計算することと、局所的な動きを推定することと、全体的な動きを推定することと、１つまたは複数の被写体動きベクトルを計算することと、１つまたは複数の被写体動きベクトルをスコアマップに変換することと、スコアマップに基づいてエントロピースコアを計算することと、エントロピースコアをマッピングすることと、静的なフレームの数を識別することと、入力映像における映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に入力映像が静的な映像であると判定することと、をさらに含む。
2021506019.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを備え、前記映像フレームは、シャッタ押下指示の受信前に、および前記シャッタ押下指示の受信後に、取得されており、前記方法はさらに、
前記入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することと、
前記ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、
前記平滑化映像フレームの時間勾配および空間勾配を計算することと、
前記平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを備え、前記ローカル動きベクトルは、前記空間勾配および前記時間勾配に基づいており、前記方法はさらに、
前記平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、
対応するローカル動きベクトルおよび前記グローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、
前記１つまたは複数の被写体動きベクトルをスコアマップに変換することと、
前記スコアマップに基づいてエントロピースコアを計算することと、
前記エントロピースコアを前記平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、
前記被写体動きスコアに基づいて、静的なフレームの数を識別することと、
前記入力映像における前記映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、前記入力映像が静的な映像であると判定すること、および、前記比率が前記静的なフレーム閾値を満たさない場合に、前記入力映像が動き映像であると判定することと、
前記入力映像が前記静的な映像であると認識された場合に第１の動作を実行することと、
前記入力映像が前記動き映像であると認識された場合に第２の動作を実行することとを備える、コンピュータで実行される方法。
【請求項２】
平滑化の前に前記ダウンサンプリングされた映像フレームをカラーからグレースケールに変換することをさらに備える、請求項１に記載のコンピュータで実行される方法。
【請求項３】
平滑化映像フレームに対する前記空間勾配および前記時間勾配を計算することは、
前記平滑化映像フレーム内の露出不足画素および前記平滑化映像フレーム内の露出過多画素を無効としてマークすることと、
前記平滑化映像フレーム内の有効な画素について、
時間勾配を計算することと、
ｘ方向の空間勾配を計算することと、
ｙ方向の空間勾配を計算することとを含む、請求項１に記載のコンピュータで実行される方法。
【請求項４】
前記１つまたは複数の候補画素パッチは、
１つまたは複数の格子点を、動き推定のための前記平滑化映像フレーム内の基準点として選択することと、
前記１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、
各画素パッチの統計を計算することと、
前記画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、
前記画素パッチが前記閾値テクスチャ値を満たすテクスチャを有する場合、前記画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される、請求項１に記載のコンピュータで実行される方法。
【請求項５】
前記ローカル動きベクトルを計算することは、前記候補画素パッチ内の画素に対する前記空間勾配および前記時間勾配に基づいて、局所的なｘ動き値を計算することと局所的なｙ動き値を計算することとを含む、請求項１に記載のコンピュータで実行される方法。
【請求項６】
前記グローバル動きベクトルを計算することは、有効なローカル動きベクトルの平均に基づいて前記グローバル動きベクトルを計算することを含む、請求項１に記載のコンピュータで実行される方法。
【請求項７】
前記１つまたは複数の被写体動きベクトルを計算することは、それぞれのローカル動きベクトルから前記グローバル動きベクトルを減算することを含む、請求項１に記載のコンピュータで実行される方法。
【請求項８】
前記１つまたは複数の被写体動きベクトルを前記スコアマップに変換することは、前記平滑化映像フレーム内の画素についてそれぞれの被写体動きベクトルの大きさを正規化することを含む、請求項１に記載のコンピュータで実行される方法。
【請求項９】
前記スコアマップ上で前記エントロピースコアに反相関する前記被写体動きスコアを計算することは、動きがローカライズされる場合により高いスコアを前記平滑化映像フレームに割り当てることと、動きが前記平滑化映像フレーム内でグローバルである場合により低いスコアを前記平滑化映像フレームに割り当てることとを含む、請求項１に記載のコンピュータで実行される方法。
【請求項１０】
前記第１の動作は、前記入力映像を静的なものとしてマーキングすることと、前記入力映像に対応するシャッタ画像をストレージ内に保持することと、前記入力映像をストレージから削除することとを含む、請求項１に記載のコンピュータで実行される方法。
【請求項１１】
前記第２の動作は、前記入力映像に対応するシャッタ画像および前記入力映像をストレージ内に保持することを含む、請求項１に記載のコンピュータで実行される方法。
【請求項１２】
システムであって、
１つまたは複数のプロセッサと、
命令を記憶したメモリとを備え、前記命令は前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに複数の動作を実行させ、前記複数の動作は、
入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを備え、前記映像フレームは、シャッタ押下指示の受信前に、および前記シャッタ押下指示の受信後に、取得されており、前記複数の動作はさらに、
前記入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成すること、
前記ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、
前記平滑化映像フレームの時間勾配および空間勾配を計算することと、
前記平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを備え、前記ローカル動きベクトルは、前記空間勾配および前記時間勾配に基づいており、前記複数の動作はさらに、
前記平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、
対応するローカル動きベクトルおよび前記グローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、
前記１つまたは複数の被写体動きベクトルをスコアマップに変換することと、
前記スコアマップに基づいてエントロピースコアを計算することと、
前記エントロピースコアを前記平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、
前記被写体動きスコアに基づいて、静的なフレームの数を識別することと、
前記入力映像における前記映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、前記入力映像が静的な映像であると判定すること、および、前記比率が前記静的なフレーム閾値を満たさない場合に、前記入力映像が動き映像であると判定することと、
前記入力映像が前記静的な映像であると認識された場合に第１の動作を実行することと、
前記入力映像が前記動き映像であると認識された場合に第２の動作を実行することとを備える、システム。
【請求項１３】
前記命令はさらに、平滑化の前に前記ダウンサンプリングされた映像フレームをカラーからグレースケールに変換することを含む動作を前記１つまたは複数のプロセッサに実行させる、請求項１２に記載のシステム。
【請求項１４】
前記平滑化映像フレームに対する前記空間勾配および前記時間勾配を計算することは、
前記平滑化映像フレーム内の露出不足画素および前記平滑化映像フレーム内の露出過多画素を無効としてマークすることと、
前記平滑化映像フレーム内の有効な画素について、
時間勾配を計算することと、
ｘ方向の空間勾配を計算することと、
ｙ方向の空間勾配を計算することとを含む、請求項１２に記載のシステム。
【請求項１５】
前記１つまたは複数の候補画素パッチは、
１つまたは複数の格子点を、動き推定のための前記平滑化映像フレーム内の基準点として選択することと、
前記１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、
各画素パッチの統計を計算することと、
前記画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、
前記画素パッチが前記閾値テクスチャ値を満たすテクスチャを有する場合、前記画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される、請求項１４に記載のシステム。
【請求項１６】
命令を有する非一時的なコンピュータ可読媒体であって、前記命令は１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに複数の動作を実行させ、前記複数の動作は、
入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを備え、前記映像フレームは、シャッタ押下指示の受信前に、および前記シャッタ押下指示の受信後に、取得されており、前記複数の動作はさらに、
前記入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することと、
前記ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、
前記平滑化映像フレームの時間勾配および空間勾配を計算することと、
前記平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを備え、前記ローカル動きベクトルは、前記空間勾配および前記時間勾配に基づいており、前記複数の動作はさらに、
前記平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、
対応するローカル動きベクトルおよび前記グローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、
前記１つまたは複数の被写体動きベクトルをスコアマップに変換することと、
前記スコアマップに基づいてエントロピースコアを計算することと、
前記エントロピースコアを前記平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、
前記被写体動きスコアに基づいて、静的なフレームの数を識別することと、
入力映像における前記映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、前記入力映像が静的な映像であると判定すること、および、前記比率が前記静的なフレーム閾値を満たさない場合に、前記入力映像が動き映像であると判定することと、
前記入力映像が前記静的な映像であると認識された場合に第１の動作を実行することと、
前記入力映像が前記動き映像であると認識された場合に第２の動作を実行することとを備える、非一時的なコンピュータ可読媒体。
【請求項１７】
前記複数の動作は、平滑化の前に前記ダウンサンプリングされた映像フレームをカラーからグレースケールに変換することをさらに備える、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
平滑化映像フレームに対する前記空間勾配および前記時間勾配を計算することは、
前記平滑化映像フレーム内の露出不足画素および前記平滑化映像フレーム内の露出過多画素を無効としてマークすることと、
前記平滑化映像フレーム内の有効な画素について、
時間勾配を計算することと、
ｘ方向の空間勾配を計算することと、
ｙ方向の空間勾配を計算することとを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記１つまたは複数の候補画素パッチは、
１つまたは複数の格子点を、動き推定のための前記平滑化映像フレーム内の基準点として選択することと、
前記１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、
各画素パッチの統計を計算することと、
前記画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、
前記画素パッチが前記閾値テクスチャ値を満たすテクスチャを有する場合、前記画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される、請求項１８に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記ローカル動きベクトルを計算することは、前記候補画素パッチ内の画素に対する前記空間勾配および前記時間勾配に基づいて、局所的なｘ動き値を計算することと局所的なｙ動き値を計算することとを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
あるモバイルデバイスは、映像および静止画像をキャプチャする機能を含み得る。場合によっては、静止画を取り込むためのシャッタ押下を検出する直前および直後に発生する画像を記録する映像を取り込むことができる。そのような映像は、面白く、単一の静止画像が含まないかもしれない主題の画像をキャプチャするために有用であり得る。しかしながら、建物または風景などの静的なまたは一般に静的なシーンの映像は、ユーザに有益ではない可能性があり、オンデバイスメモリまたは外部ストレージに格納するのに価値がない可能性がある。静止映像と動きのある映像とを区別するための技術的困難が存在する。例えば、モバイルデバイスを使用して画像がキャプチャされる場合、ユーザの手は、映像があたかも動きを含むかのように見えるように十分に震えるかもしれない。したがって、映像が静的であることを認識すること（例えば、比較的静的なシーンまたは被写体の記録）は有用であり得る。
【０００２】
本明細書において提供される背景技術の説明は、本開示の文脈を概して提示することを目的としている。現時点で明記された発明者らの研究は、この背景技術のセクションで説明される限り、ならびに出願時に従来技術としてそうでなければ適格でないかもしれない説明の態様は、本開示に対する従来技術として明示的にも暗黙的にも認めるものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
概要
ある実施形態は、一般に、モバイルデバイスの画像キャプチャに関し、特に、静的映像を認識するための方法およびシステムに関する。
【課題を解決するための手段】
【０００４】
ある実施形態は、コンピュータで実行される方法を含み得る。本方法は、入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを含むことができ、映像フレームは、シャッタ押圧指示の受信前に、およびシャッタ押圧指示の受信後に取得されている。本方法は、入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することをさらに含む。本方法は、ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することをさらに含む。本方法は、平滑化映像フレームの時間勾配および空間勾配を計算することをさらに含む。本方法は、平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することをさらに含み、ローカル動きベクトルは、空間勾配および時間勾配に基づく。本方法は、平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することをさらに含む。本方法は、対応するローカル動きベクトルおよびグローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することをさらに含む。本方法は、１つまたは複数の被写体動きベクトルをスコアマップに変換することをさらに含む。本方法は、スコアマップに基づいてエントロピースコアを計算することをさらに含む。本方法は、エントロピースコアを平滑化映像フレームに対応する被写体動きスコアにマッピングすることをさらに含む。本方法はさらに、被写体動きスコアに基づいて、静的なフレームの数を識別することを含む。本方法は、入力映像における映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、入力映像が静的な映像であると判定すること、および、比率が静的なフレーム閾値を満たさない場合に、入力映像が動き映像であると判定することをさらに含む。本方法は、入力映像が静的映像であると認識された場合に第１の動作を実行することをさらに含む。本方法は、入力映像が動き映像であると認識された場合に第２の動作を実行することをさらに含む。
【０００５】
本方法はまた、平滑化の前にダウンサンプリングされた映像フレームをカラーからグレースケールに変換することを含み得る。ある実施形態では、平滑化映像フレームに対する空間勾配および時間勾配を計算することは、平滑化映像フレーム内の露出不足画素および平滑化映像フレーム内の露出過多画素を無効としてマークすることを含み、平滑化映像フレーム内の有効な画素について、時間勾配を計算することと、ｘ方向の空間勾配を計算することと、ｙ方向の空間勾配を計算することとを含む。ある実施形態では、１つまたは複数の候補画素パッチは、１つまたは複数の格子点を、動き推定のための平滑化映像フレーム内の基準点として選択することと、１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、各画素パッチの統計を計算することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有する場合、画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される。ある実施形態では、ローカル動きベクトルを計算することは、候補画素パッチ内の画素に対する空間勾配および時間勾配に基づいて、局所的なｘ動き値を計算することと局所的なｙ動き値を計算することとを含む。ある実施形態では、グローバル動きベクトルを計算することは、有効なローカル動きベクトルの平均に基づいてグローバル動きベクトルを計算することを含む。ある実施形態では、１つまたは複数の被写体動きベクトルを計算することは、それぞれのローカル動きベクトルからグローバル動きベクトルを減算することを含む。ある実施形態では、１つまたは複数の被写体動きベクトルをスコアマップに変換することは、平滑化映像フレーム内の画素についてそれぞれの被写体動きベクトルの大きさを正規化することを含む。ある実施形態では、スコアマップ上でエントロピースコアに反相関する被写体動きスコアを計算することは、動きがローカライズされる場合により高いスコアを平滑化映像フレームに割り当てることと、動きが平滑化映像フレーム内でグローバルである場合により低いスコアを平滑化映像フレームに割り当てることとを含む。ある実施形態では、第１の動作は、入力映像を静的なものとしてマーキングすることと、入力映像に対応するシャッタ画像をストレージ内に保持することと、入力映像をストレージから削除することとを含む。ある実施形態では、第２の動作は、入力映像に対応するシャッタ画像および入力映像をストレージに保持することを含む。
【０００６】
ある実施形態は、システムを含み得る。システムは、１つまたは複数のプロセッサと、命令を記憶したメモリとを備えてもよく、命令が１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに複数の動作を実行させ、複数の動作は、入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを含み、映像フレームは、シャッタ押下指示の受信前に、およびシャッタ押下指示の受信後に、取得されており、当該複数の動作はさらに、入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することと、ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、平滑化映像フレームの時間勾配および空間勾配を計算することと、平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを含み、ローカル動きベクトルは、空間勾配および時間勾配に基づいており、当該複数の動作はさらに、平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、対応するローカル動きベクトルおよびグローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、１つまたは複数の被写体動きベクトルをスコアマップに変換することと、スコアマップに基づいてエントロピースコアを計算することと、エントロピースコアを平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、被写体動きスコアに基づいて静的フレームの数を識別することと、入力映像における映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、入力映像が静的な映像であると判定すること、および、比率が静的なフレーム閾値を満たさない場合に、入力映像が動き映像であると判定することと、入力映像が静的な映像であると認識された場合に第１の動作を実行することと、入力映像が動き映像であると認識された場合に第２の動作を実行することとを含む。
【０００７】
ある実施形態では、命令は、平滑化の前にダウンサンプリングされた映像フレームをカラーからグレースケールに変換することを含む複数の動作を１つまたは複数のプロセッサにさらに実行させる。ある実施形態では、平滑化映像フレームに対する空間勾配および時間勾配を計算することは、平滑化映像フレーム内の露出不足画素および平滑化映像フレーム内の露出過多画素を無効としてマークすることと、平滑化映像フレーム内の有効な画素について、時間勾配を計算することと、ｘ方向の空間勾配を計算することと、ｙ方向の空間勾配を計算することとを含む。ある実施形態では、１つまたは複数の候補画素パッチは、１つまたは複数の格子点を、動き推定のための平滑化映像フレーム内の基準点として選択することと、１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、各画素パッチの統計を計算することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有する場合に、画素パッチを動き推定のための候補画素パッチとして識別することとを含む。
【０００８】
ある実施形態は、命令を有する非一時的なコンピュータ可読媒体を含むことができ、命令は１つまたは複数のコンピュータによって実行されると、当該１つまたは複数のコンピュータに複数の動作を実行させ、複数の動作は、入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを含み、映像フレームは、シャッタ押下指示の受信前に、およびシャッタ押下指示の受信後に、取得されており、当該複数の動作はさらに、入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することと、ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、平滑化映像フレームの時間勾配および空間勾配を計算することと、平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを含み、ローカル動きベクトルは空間勾配および時間勾配に基づいており、当該複数の動作はさらに、平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、対応するローカル動きベクトルおよびグローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、１つまたは複数の被写体動きベクトルをスコアマップに変換することと、スコアマップに基づいてエントロピースコアを計算することと、エントロピースコアを平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、被写体動きスコアに基づいて静的フレームの数を識別することと、入力映像における映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、入力映像が静的な映像であると判定すること、および、比率が静的なフレーム閾値を満たさない場合に、入力映像が動き映像であると判定することと、入力映像が静的な映像であると認識された場合に第１の動作を実行することと、入力映像が動き映像であると認識された場合に第２の動作を実行することとを含む。
【０００９】
ある実施形態では、複数の動作は、平滑化の前にダウンサンプリングされた映像フレームをカラーからグレースケールに変換することをさらに含む。ある実施形態では、平滑化映像フレームに対する空間勾配および時間勾配を計算することは、平滑化映像フレーム内の露出不足画素および平滑化映像フレーム内の露出過多画素を無効としてマークすることと、平滑化映像フレーム内の有効な画素について、時間勾配を計算することと、ｘ方向の空間勾配を計算することと、ｙ方向の空間勾配を計算することとを含む。ある実施形態では、１つまたは複数の候補画素パッチは、１つまたは複数の格子点を、動き推定のための平滑化映像フレーム内の基準点として選択することと、１つまたは複数の格子点の各々に対応する画素パッチに対する画素パッチ幅および画素パッチ高さを選択することと、各画素パッチの統計を計算することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、画素パッチが閾値テクスチャ値を満たすテクスチャを有する場合に、画素パッチを動き推定のための候補画素パッチとして識別することとを含む。ある実施形態では、ローカル動きベクトルを計算することは、候補画素パッチ内の画素に対する空間勾配および時間勾配に基づいて、局所的なｘ動き値を計算することと局所的なｙ動き値を計算することとを含む。
【図面の簡単な説明】
【００１０】
【図１】本明細書で説明する１つまたは複数の実施形態のために使用され得る例示的なシステムおよびネットワーク環境のブロック図である。
【図２】ある実施形態に従って静的映像を認識する例示的な方法を示すフロー図である。
【図３】ある実施形態に従う例示的な映像およびシャッタ押下タイムラインの図である。
【図４】ある実施形態に従う静的映像を認識する例示的な方法を示すフロー図である。
【図５】本明細書で説明する１つまたは複数の実施形態のために使用され得る例示的なデバイスのブロック図である。
【発明を実施するための形態】
【００１１】
本明細書で提供されるシステムおよび方法は、いくつかの従来の画像化システムおよび方法の１つまたは複数の欠点を克服し得る。例えば、画像化デバイス（例えば、スマートフォンなど）は、ユーザが、単一のシャッタ押下イベントで映像および静止画像をキャプチャすることを可能にする。本明細書で提供されるシステムおよび方法のある実施形態は、静的な映像（例えば、静的なシーンまたは静的な被写体の映像）を認識することができ、メモリ使用、通信帯域幅使用、および／またはプロセッササイクル使用の低減を助けることができる静的な映像の認識に基づいてアクション（例えば、ストレージから静的な映像を削除するまたは取り除く）を取ることができる。特に、ある実施形態は、画像取得におけるグローバル動き（例えば、画像取得中のスマートフォンまたは他のデバイスにおける手振れ）を補償するのに役立ち、局在化された被写体動き（例えば、遊んでいる子供）を強調するためにエントロピー計算ベースのスコアリングシステムを使用することによって、動きがフレームにわたって広範に及ぶときに動きの検出を低減するのに役立ち、広範な一般的な動き（例えば、風で動いている木の葉）を弱めるのに役立つことができる。いくつかの従来の撮像システムは、静的な映像を認識する効率的かつ効果的な方法を提供しないことがあり、静的な映像を効率的にかつ効果的に認識することは、ユーザに有用であり得る。
【００１２】
図１は、本明細書で説明するある実施形態で使用され得る例示的なネットワーク環境１００のブロック図を示す。ある実施形態では、ネットワーク環境１００は、１つまたは複数のサーバシステム、たとえば、図１の例示におけるサーバシステム１０２を含む。サーバシステム１０２は、例えば、ネットワーク１３０と通信することができる。サーバシステム１０２は、サーバデバイス１０４およびデータベース１０６または他のストレージデバイスを含むことができる。ネットワーク環境１００はまた、ネットワーク１３０を介して互いにおよび／またはサーバシステム１０２と通信することができる１つまたは複数のクライアントデバイス、たとえば、クライアントデバイス１２０，１２２，１２４，および１２６を含むことができる。ネットワーク１３０は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスネットワーク、スイッチまたはハブ接続などのうちの１つまたは複数を含む、任意のタイプの通信ネットワークであり得る。ある実施形態では、ネットワーク１３０は、たとえば、ピアツーピアワイヤレスプロトコルを使用して、デバイス間のピアツーピア通信１３２を含み得る。
【００１３】
説明を容易にするために、図１は、サーバシステム１０２、サーバデバイス１０４、およびデータベース１０６に対する１つのブロックを示し、クライアントデバイス１２０，１２２，１２４，および１２６に対する４つのブロックを示す。サーバシステム１０２，１０４，および１０６を表すブロックは、複数のシステム、サーバデバイス、およびネットワークデータベースを表してもよく、ブロックは、示されるものとは異なる構成で提供されてもよい。例えば、サーバシステム１０２は、ネットワーク１３０を介して他のサーバシステムと通信することができる複数のサーバシステムを表すことができる。いくつかの例では、データベース１０６および／または他の記憶デバイスは、サーバデバイス１０４とは別個のサーバシステムブロック内に提供され、ネットワーク１３０を介してサーバデバイス１０４および他のサーバシステムと通信することができる。また、任意の数のクライアントデバイスが存在してもよい。
【００１４】
各クライアントデバイスは、任意のタイプの電子デバイス、例えば、デスクトップコンピュータ、ラップトップコンピュータ、携帯またはモバイルデバイス、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックスまたはエンターテインメントデバイス、ウェアラブルデバイス（例えば、ディスプレイ眼鏡またはゴーグル、ヘッドマウントディスプレイ（ＨＭＤ）、腕時計、ヘッドセット、アームバンド、ジュエリーなど。）、仮想現実（ＶＲ）および／または拡張現実（ＡＲ）対応デバイス、携帯情報端末（ＰＤＡ）、メディアプレーヤ、ゲーム装置等とすることができる。あるクライアントデバイスはまた、データベース１０６または他のストレージと同様のローカルデータベースを有し得る。他の実施形態では、ネットワーク環境１００は、示される構成要素の全てを有しなくてもよく、および／または本明細書で説明される構成要素の代わりに、またはそれに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。
【００１５】
様々な実施形態では、エンドユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、会話における１人または複数の参加者を含んでも良く、それぞれのクライアントデバイス１２０，１２２，１２４，および１２６を使用して、サーバシステム１０２と、および／または互いに通信することができる。いくつかの例では、ユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、それぞれのクライアントデバイスおよび／またはサーバシステム１０２上で実行するアプリケーションを介して、および／または、サーバシステム１０２上で実現されるネットワークサービス、たとえば画像共有サービス、メッセージングサービス、ソーシャルネットワークサービス、または他のタイプのネットワークサービスを介して、互いに対話することができる。たとえば、それぞれのクライアントデバイス１２０，１２２，１２４，および１２６は、１つまたは複数のサーバシステム（たとえば、サーバシステム１０２）との間でデータを通信することができる。
【００１６】
ある実施形態では、サーバシステム１０２は、各クライアントデバイスがサーバシステム１０２および／またはネットワークサービスにアップロードされた通信コンテンツまたは共有コンテンツを受信することができるように、適切なデータをクライアントデバイスに提供することができる。いくつかの例では、ユーザは、オーディオもしくは映像会議、オーディオ、映像、もしくはテキストチャット、または他の通信方式もしくはアプリケーションを介して対話することができる。いくつかの例では、ネットワークサービスは、ユーザが様々な通信を実行し、リンクおよび関連付けを形成し、画像、画像組成物（例えば、１つまたは複数の画像、画像コラージュ、映像等を含むアルバム）、音声データ、および他のタイプのコンテンツなどの共有コンテンツをアップロードおよびポストし、様々な形態のデータを受信し、および／または社会的に関連した機能を実行することを可能にする任意のシステムを含むことができる。例えば、ネットワークサービスは、ユーザが、特定のまたは複数の他のユーザにメッセージを送信すること、ネットワークサービス内の他のユーザへの関連付けの形態でソーシャルリンクを形成すること、他のユーザをユーザリスト、友達リスト、または他のユーザグループにグループ化すること、テキスト、画像、画像組成物、オーディオシーケンス、または録画を含むコンテンツ、または、ネットワークサービスのユーザの指定されたセットによるアクセスのための他のタイプのコンテンツをポストまたは送信すること、ライブ映像、オーディオ、および／またはテキスト映像会議に参加すること、またはサービスの他のユーザとチャットすることを可能にする。ある実施形態では、「ユーザ」は、システムまたはネットワークとインターフェイスする人と同様に、１つまたは複数のプログラムまたは仮想エンティティを含み得る。
【００１７】
ユーザインターフェイスは、画像、画像組成物、データ、および他のコンテンツ、ならびに通信、プライバシー設定、通知、および他のデータをクライアントデバイス１２０，１２２，１２４，および１２６上で（または代替的にサーバシステム１０２上で）表示することを可能にすることができる。そのようなインターフェイスは、クライアントデバイス上のソフトウェア、サーバデバイス上のソフトウェア、および／またはサーバデバイス１０４上で実行するクライアントソフトウェアとサーバソフトウェアの組み合わせ、例えば、サーバシステム１０２と通信するアプリケーションソフトウェアまたはクライアントソフトウェアを使用して表示することができる。ユーザインターフェイスは、クライアントデバイスまたはサーバデバイスのディスプレイデバイス、例えば、ディスプレイスクリーン、プロジェクタなどによって表示され得る。ある実施形態では、サーバシステム上で実行されるアプリケーションプログラムは、クライアントデバイスにおいてユーザ入力を受信し、クライアントデバイスにおいて視覚データ、音声データなどのデータを出力するために、クライアントデバイスと通信することができる。
【００１８】
本明細書で説明する特徴の様々な実施形態は、任意のタイプのシステムおよび／またはサービスを使用することができる。例えば、ソーシャルネットワーキングサービス、画像収集および共有サービス、支援メッセージングサービス、または（例えば、インターネットに接続された）他のネットワークサービスは、クライアントデバイスおよびサーバデバイスによってアクセスされる１つまたは複数の記載された特徴を含むことができる。任意の種類の電子デバイスは、本明細書に記載の特徴を利用することができる。ある実施形態は、本明細書で説明される１つまたは複数の特徴を、コンピュータネットワークから切断されるか、または断続的に接続されるクライアントデバイスまたはサーバデバイス上に提供することができる。いくつかの例では、ディスプレイデバイスを含むか、またはディスプレイデバイスに接続されたクライアントデバイスは、クライアントデバイスのローカルな（例えば、通信ネットワークを介して接続されない）ストレージデバイスに格納された画像を検査および表示することができ、本明細書に記載するように、ユーザに見ることができる特徴および結果を提供することができる。
【００１９】
図２は、ある実施形態による、静的映像を認識するための例示的な方法２００（たとえば、コンピュータで実行される方法）を示すフロー図である。静的な映像は、映像の所与のパーセンテージのフレームが本明細書で説明するように静的なものであると判定される映像を含むことができる。静的な映像はまた、映像の特定の時間部分の間静的であり、（例えば、映像は、被写体が動くとき、または画像を撮影している装置が下降または動かされるときなど、映像の先頭から最後付近まで静止している）他の時間部分で動きが発生し得る映像を含み得る。代替的に、動きが映像の特定の部分（例えば、開始、中間、または終了）において発生する映像は、特定の実施に応じて、動き映像または静的な映像として認識され得る。一般に、静的な映像を認識するためのパラメータは、本明細書で開示される主題の企図される適用例または実施に基づいて、追加、調整、構成、または除去され得る。そのようなパラメータは、局所的な動き推定のための閾値、被写体動きスコアのための閾値、閾値を満たす被写体動きスコアを有するフレームの、映像の他のフレームに対する比率のための閾値などを含み得る。閾値については、図４を参照して以下でより詳細に説明する。
【００２０】
ある実施形態では、方法２００（および方法４００）は、たとえば、図１に示されるように、サーバシステム１０２上で実施され得る。他の実施形態では、方法２００の一部または全部は、図１に示されるように、１つまたは複数のクライアントデバイス１２０，１２２，１２４，または１２６上で、１つまたは複数のサーバデバイス上で、および／または、サーバデバイスとクライアントデバイスの両方上で実施され得る。説明される例では、実施システムは、１つまたは複数のデジタルハードウェアプロセッサまたは処理回路（「プロセッサ」）と、１つまたは複数の記憶デバイス（例えば、データベース１０６または他の記憶装置）とを含む。ある実施形態では、１つまたは複数のサーバおよび／またはクライアントの異なる構成要素は、方法２００の異なるブロックまたは他の部分を実行することができる。
【００２１】
ある実施形態は、ユーザ入力および／または（ユーザの許可とともに取得される）デバイスコンテキストに基づいて方法２００を開始することができる。ユーザは、例えば、表示されたユーザインターフェイスから方法２００の開始を選択してもよい。ある実施形態では、方法２００またはその部分は、ユーザ入力を介したユーザによるガイダンスを用いて実行され得る。たとえば、ある実施形態は、静的映像認識を有効化または無効化するためのオプションをユーザに提示することを含み得る。システムは、ユーザからの明示的な許可なしに、映像および画像情報などのようなユーザ情報を使用、処理、または記憶しなくてもよい。
【００２２】
ある実施形態では、方法２００は、自動的に呼び出され得る（またはユーザ許可とともに自動的に呼び出され得る）。例えば、静的映像の認識は、ユーザが写真を撮影しているときに自動的に実行されてもよく、写真に関連する映像をユーザに提示するかどうかを判定するために使用されてもよい（例えば、映像が静的であると認識される場合、映像は、提示されるなくても記憶されるなくてもよく、映像が動き映像であると判定される場合、例えば、ユーザが映像が関連付けられている写真を見るとき、映像は、記憶され、ユーザに提示されることができる）。
【００２３】
ある実施形態では、方法２００または方法の一部は、デバイスによって自動的に開始され得る。例えば、方法（またはその部分）は、周期的に実行され得るか、または、１つまたは複数の特定の事象または条件の発生に基づいて、実行され得る。例えば、そのような事象または条件は、ユーザが取得し、デバイス（例えば、ユーザデバイス）によって受信され、アップロードされ、またはそうでなければアクセス可能な所与の数の写真、方法２００の最後の実行から経過した所定の時間、および／または方法２００を実施するデバイスの設定において指定することができる１つまたは複数の他のイベントまたは条件の発生を含み得る。ある実施形態では、そのような条件は、ユーザの（ユーザの同意を伴うデバイスまたは方法によってアクセス可能な）格納されたカスタム選好においてユーザによって前もって指定され得る。いくつかの例では、デバイス（サーバまたはクライアント）は、（ユーザの同意が受信された場合）電子会話メッセージを受信する１つまたは複数のアプリケーションへのアクセスで方法２００を実行することができる。別の例では、カメラ、携帯電話、タブレットコンピュータ、ウェアラブルデバイス、または他のクライアントデバイスは、映像および静止画を取得することができ、方法２００を実行することができる。加えて、または代替的に、クライアントデバイスは、ネットワークを介してサーバに１つまたは複数の映像を送信することができ、サーバは、方法２００を使用して映像を処理することができる。方法２００に関する上記説明は、方法４００にも当てはまる。
【００２４】
２０２において、フレームを含む入力映像が受信される。たとえば、映像は、ユーザに関連付けられたモバイルデバイスなどのクライアントデバイスによってキャプチャされ得る。映像は、フレームをキャプチャするためにカメラまたは他の撮像装置のシャッタ押下に応答してキャプチャされ得る。例えば、ユーザは、スマートフォンまたは他のモバイルデバイス上でカメラアプリケーションを開くことができる。カメラアプリケーションは、シャッタ押下指示が受信される前に映像画像の取得を開始し、シャッタ押下指示が受信された後に映像をキャプチャし続けることができる。したがって、映像は、スマートフォン上で実行されるカメラアプリケーション内でシャッタ押下の直前および直後の瞬間を取り込む。処理は２０４へ進む。
【００２５】
例えば、図３に示されるように、映像３０２は、シャッタ押下表示３１０の前にキャプチャされたフレーム（３０４、３０６）と、シャッタ押下表示３１０の後にキャプチャされたフレーム（３０８）とを含むことができる。映像はまた、カメラまたは他の画像取得デバイス内で同様の方法でキャプチャされ得る。前処理は、ダウンサンプリング、グレースケールへの変換、および／または平滑化を含むことができる。
【００２６】
２０４では、入力映像のフレームが前処理される。例示的な前処理の詳細は、図４の４０４〜４０８に関連して以下で説明する。処理は２０６へ進む。
【００２７】
２０６において、局所的な動きが推定される。局所的な動きは、ひらひらしている葉に関連する動きなど、映像のフレームのサブセットの一部である動きを含む。たとえば、映像フレームの１つまたは複数の画素パッチ（すなわち、画素のセクションまたはグループ）内の局所的な動きの推定を表すローカル動きベクトルを計算することができる。例示的な局所的な動き推定の詳細は、図４の４１０〜４２４において以下で説明される。処理は２０８へ進む。
【００２８】
２０８において、全体的な動きが補償される。全体的な動きは、映像のフレームの全部または大部分において発生する動きを含み得る。全体的な動きは、手の動きから生じ得る。例えば、スマートフォンで写真を撮影しているユーザは、手振れ、スマートフォンの偶発的な落下などに起因して画像をキャプチャする前、間、および／または後に何らかの手の動きを有することがある。ユーザの手の動きは、シャッタ押下前からシャッタ押下後までの期間をカバーする映像内で全体的な動きとして現れることがある。グローバル動き補償は、全体的な動きの影響を低減または排除し、グローバル動きアーチファクトが補償されない場合よりも、システムが静的映像をより正確に認識することを可能にする。例示的なグローバル動き補償の詳細は、図４の４２６〜４２８で以下で説明する。処理は２１０へ進む。
【００２９】
ブロック２１０において、被写体動きスコアは、グローバル動き補償によって調整されたローカル動き推定値のエントロピーに基づいて計算される。エントロピーベースの被写体動きスコア計算の詳細は、図４の４３０-４３２で以下で説明する。処理は２１２へ進む。
【００３０】
２１２では、被写体動きスコアが正規化される。処理は２１４へ進む。
ステップ２１４では、入力映像が静的な映像であるか否かを判定する。判定は、静的なシーンまたは被写体の映像を認識し、静的なシーンまたは被写体の映像の（または、静的映像認識がない場合の動き映像の）表示を提供するために、本明細書で説明されるシステムまたは方法を使用することを含み得る。処理は、判定に基づいて２１６または２１８に進む。
【００３１】
入力映像が静的映像でない場合、２１６において、入力映像およびフレームの両方がユーザに提供される。ある実施形態では、入力映像およびフレームの両方がストレージに含まれる。入力映像が静的映像である場合、２１８において、入力映像ではなくフレームがユーザに提供される。幾つかの実施形態では、入力映像ではなくフレームはストレージに保たれる。
【００３２】
図２および図４では、様々なブロック（例えば、ブロック２０２〜２１８および４０２〜４４０それぞれ）が、順次実行されるものとして示されている。しかしながら、これらのブロックのうちの１つまたは複数は、特定の実施に適合させるために都合よく再配列されてもよく、これらのブロックまたはその一部は、いくつかの実施において同時に実行され得ることを理解されたい。いくつかの例では、様々なブロックが排除され、追加のブロックに分割され、および／または他のブロックと組み合わされ得ることも理解されよう。次いで、テーブルを使用して、テーブル内の値に基づいて閾値を決定することができる。
【００３３】
図４は、ある実施形態にしたがって、静的映像を認識する例示的な方法を示すフロー図である。図４において、４０２および４１２は、データまたはデータストレージであり、方法を例示することを補助するために破線で示されている。
【００３４】
動作中、映像フレーム４０２が得られる。入力映像フレームは、映像の１つまたは複数の映像フレームの中から取得され得、映像フレームは、シャッタ押下指示の受信前に、およびシャッタ押下指示の受信後に取得された。例えば、映像フレームは、シャッタ押下表示の前後２秒のように、シャッタ押下表示の前後の所定の時間量、キャプチャされ得る。
【００３５】
４０４では、映像フレームがダウンサンプリングされる。ダウンサンプリングは、処理時間を改善し、メモリ使用量を低減するために、映像フレームのサイズ（ファイルサイズ、フレームサイズ、映像解像度など）を低減することなどを含み得る。処理は４０６へ進む。
【００３６】
４０６において、映像フレームはグレースケールに変換される。カラーは、静的な映像を認識するのに必要ではない可能性があるため、グレースケールに変換することは、処理時間を高速化し、メモリ使用量を低減するのに役立ち得る。処理は４０８へ進む。
【００３７】
４０８において、ダウンサンプリングされたグレースケール画像は、以下に記載するように平滑化される。
【００３８】
４０４〜４０８は、前処理を含むことができる。たとえば、入力映像フレーム４０２は、高解像度、たとえば、４０３２×３０２４であり得る。計算を低減するために、入力映像フレーム４０２は、まずはるかに小さいフレームＩ、例えば６４×４８にダウンサンプリングされる。入力映像フレームは、場合によっては、バイエル赤色緑色青色（ＲＧＢ）フォーマットまたはＹＵＶフォーマットであり得る。グレースケールフレームは、動きがあるかどうかを検出するために使用され得るので、カラー映像フレームは、グレースケールフレームに変換され得る。例えば、６４×４８バイエルフレームが取得され、ダウンサンプリングされる。バイエルフレームは、Ｒ、Ｇｒ、Ｇｂ、Ｂチャネルを平均化することによってグレースケール画像に変換することができる。１２／１４／１６ビットバイエルデータを８ビットに迅速に変換し、ダイナミックレンジを保持するために、バイエルフレームの平均値が計算され、所望の平均値／平均値によって画素がスケーリングされ、ここで、所望の平均値は、手動で選択された値、例えば、所望の平均値＝１２８である。
【００３９】
画像ノイズに対する技術のロバスト性を改善するために、入力フレームＩをガウスフィルタによって平滑化することができ、得られたフレームをI_smoothedと表す。ガウス平滑化された前のフレームは、I_smoothed_previousと表される。
【００４０】
前処理の後、例えば、ブロック４１０〜４２４において、局所的な動きが推定される。処理は４１０へ進む。
【００４１】
４１０において、時間勾配は、フレームバッファ４１２からの前のフレームおよび現在の映像フレーム４０２を使用して計算される。４１４において、現在の映像フレームを使用して空間勾配が計算される。
【００４２】
ある実施形態では、局所的な動き推定を加速するために、入力フレームの空間勾配および時間勾配を事前計算することができる。例えば、空間勾配および時間勾配は、以下のように計算することができる。
【００４３】
全ての露光過多画素（例えば閾値を超える強度を有する画素を、例えば、over_expose_threshold）および露光不足画素（例えば、閾値未満の強度を有する画素を、例えばunder_expose_threshold）を無効画素としてマークする。
【００４４】
under_expose_threshold≦I_smoothed（ｘ，ｙ）≦over_expose_thresholdであり、
under_expose_threshold＜I_smooothed_previous（ｘ，ｙ）＜over_expose_thresholdであり、
under_expose_threshold＜I_smoothed（ｘ+１，ｙ）＜over_expose_thresholdであり、
under_expose_threshold＜I_smoothed（ｘ-１，ｙ）＜over_expose_thresholdであり、
under_expose_threshold＜I_smoothed（ｘ，ｙ＋１）＜over_expose_thresholdであり、
under_expose_threshold＜I_smoothed（ｘ，ｙ-１）＜over_exposed_thresholdであるならば、Valid（ｘ，ｙ）＝１である。
【００４５】
他の場合では、Valid（ｘ，ｙ）＝０である。
Valid（ｘ，ｙ）＝１を有する有効な画素について、３つの勾配I_t（ｘ，ｙ），I_x（ｘ，ｙ），I_y（ｘ，ｙ）を以下のように計算する。
【００４６】
時間勾配、すなわち、I_smoothedとI_smoothed_previousとの間の画素差は、I_t（ｘ，ｙ）=I_smoothed（ｘ，ｙ）-I_smoothed_previous（ｘ，ｙ）として表される。
【００４７】
ｘ方向に沿ったI_smooothedの空間勾配は、I_x（ｘ，ｙ）＝（I_smoothed（ｘ+１，ｙ）-I_smoothed（ｘ-１，ｙ））／２と表される。
【００４８】
ｙ方向に沿ったI_smoothedの空間勾配は、I_y（ｘ，ｙ）＝（I_smoothed（ｘ，ｙ＋１）-I_smoothed（ｘ，ｙ−１））／２として表される。
【００４９】
Valid（ｘ，ｙ）＝０の無効画素について、集合I_t（ｘ，ｙ）＝I_x（ｘ，ｙ）＝I_y（ｘ，ｙ）＝０と設定する。
【００５０】
処理は４１６に進む。
４１６において、点のグリッドが生成され、４１８において、各グリッドの点について画素のパッチが決定される。
【００５１】
例えば、フレーム内のｉが１とgridWidthの間であり、ｊが１とgridHeightの間である点ｐ（ｉｊ）のグリッドが、局所的な動き推定を行うために計算される。グリッドを計算する際、各辺におけるある割合のマージン、例えば６.２５％を除外することができる。格子点は、等間隔に、例えばｘ方向に沿って４画素離間し、ｙ方向に沿って４画素離間することができる。例えば、フレームサイズが６４×４８である場合、４辺の６４×６.２５％＝４画素を除外し、gridHeight＝１１によってgridWidth＝１５のグリッドを残す。
【００５２】
処理は４２０へ進む。
４２０では、統計が画素の各パッチについて計算される。例えば、
グリッド内の各点ｐ（ｉ，ｊ）について、I_smoothedからpatchWidth×patchHeight（例えば、patchWidth＝patchHeight＝７）を得る。
【００５３】
まず、このパッチの統計のセットを収集する。
Ｉｘｘは、パッチ内の全ての画素に対するI_x（ｘ，ｙ）×I_x（ｘ，ｙ）の平均である。
【００５４】
Ｉｙｙは、パッチ内の全ての画素に対するI_y（ｘ，ｙ）×I_y（ｘ，ｙ）の平均である。
【００５５】
Ｉｘｙは、パッチ内の全ての画素に対するI_x（ｘ，ｙ）×I_y（ｘ，ｙ）の平均である。
【００５６】
Ｉｘｔは、パッチ内の全ての画素に対するI_x（ｘ，ｙ）×I_t（ｘ，ｙ）の平均である。
【００５７】
Ｉｙｔは、パッチ内の全ての画素に対するI_y（ｘ，ｙ）×I_t（ｘ，ｙ）の平均である。
【００５８】
統計の計算は積分画像を使用することによって最適化することができる。
処理は４２２へ進む。
【００５９】
４２２において、各パッチがテクスチャ閾値を満たすテクスチャを有するかどうかが判定される。テクスチャレスパッチを使用して動きを検出することは有用ではないので、パッチのテクスチャを確認することは有用であり得る。また、エッジ上のパッチは、動きがエッジ検出に沿って任意であり得るため、使用するのに役立たない可能性がある。結果として、テクスチャがテクスチャ閾値を満たさない場合、ある実施形態では、方法４００は、テクスチャがテクスチャ閾値を満たすまでステップ４０２から開始する。適切なテクスチャのチェックは、以下を含むことができる。
【００６０】
上記のパッチのヘッセ行列は、２×２行列である。
｛Ｉｘｘ  Ｉｘｙ
Ｉｘｙ  Ｉｙｙ｝
この行列の決定基はdetと表される。この行列は、２つの固有値を有する。大きい方をmax_eigenvalueとし、小さい方をmin_eigenvalueとする。
【００６１】
パッチは、十分なテクスチャを有するとみなされるべき以下の条件を満たさなければならない。
det＞０、かつ、
min_eigenvalue＞EigenvalueThreshold×frameWidth×frameHeight、かつ、
max_eigenvalue＜EigenvalueRatioThreshold×min_eigenvalue
EigenvalueThresholdは手動で調整することができ、典型的な値は０.００２５である。
【００６２】
EigenvalueRatioThresholdも手動で調整することができ、典型的な値は５である。
パッチが上記条件チェックに失敗すると、そのパッチの動きベクトルは利用不能に設定され、このパッチは以下のステップで除外される。
motion_x＝利用不能である。
motion_y＝利用不能である。
【００６３】
テクスチャ閾値を満たすテクスチャを有するパッチに対して、処理は４２４に進む。
４２４において、対応するパッチの局所的な動きを推定するためにローカル動きベクトルが計算される。ローカル動きベクトルは、平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応することができ、ローカル動きベクトルは、空間勾配および時間勾配に基づく。例えば、
motion_x＝（−Ｉｘｔ×Ｉｙｙ−Ｉｙｔ×Ｉｘｙ）／det
motion_y＝（Ｉｘｔ×Ｉｘｙ−Ｉｙｔ×Ｉｘｘ）／det
処理は４２６へ進む。
【００６４】
４２６において、グローバル動きベクトルが、全体的な動きを推定するために計算される。ある実施形態では、グローバル動きベクトルは平滑化映像フレームに対応する。ユーザがモバイルデバイス上で写真または映像をキャプチャするとき、多くの場合、小さな手の動きがあるので、現在のフレームと前のフレームとの間の全体的なカメラの動きの推定は、全体的な動きを補償するのに有用である。カメラの動きは、並進ベクトル［global_motion_x，global_motion_y］としてモデル化され、前のステップからの有効な動きベクトルを平均化することによって推定され得る。代替的には、より多くの計算が利用可能である場合、アフィンモデルまたはホモグラフィモデルをランダムサンプルコンセンサス（ＲＡＮ  ＳＡＣ）と共に使用して、全体的な動きをより正確に推定することができる。処理は４２８へ進む。
【００６５】
４２８において、被写体動きベクトルは、ローカル動きベクトルからグローバル動きベクトルを減算することによって計算される。例えば、
動きベクトルから全体的な動きを減算して、被写体動きベクトルを得る。
［subject_motion_x，subject_motion_y］＝［motion_x−global_motion_x，motion_y−global_motion_y］を得る。
【００６６】
処理は４３０へ進む。
４３０において、各パッチのスコアが計算され、スコアマップに入れられる。例えば、
各パッチについて動きベクトルの大きさを０から１の間のスコアに変換し、以下のようにスコアマップを作成する。
score（ｉｊ）＝１−exp（−（subject_motion_x（ｉ，j）×subject_motion_x（ｉ，j）＋subject_motion_y（ｉ，j）×subject_motion_y（ｉ，j））／motion_param）
motion_paramは、手動で決定することができ、ある実施形態では、典型的な値は３である。
【００６７】
処理は４３２へ進む。
４３２において、エントロピーベースの被写体動きスコアが映像フレームについて計算される。被写体動きスコアは、対応するローカル動きベクトルおよびグローバル動きベクトルに基づくことができる。例えば、
まず、スコアマップのエントロピースコアを以下のように計算する。
【００６８】
全てのｋおよびｌについて、total_score＝sum（score（ｋ，ｌ）＋Epsilon）。
p（ｋ，ｌ）＝（score（ｋ，ｌ）＋Epsilon）／total_score。
entropy＝−sum（Log［p（ｋ，ｌ）］×p（ｋ，ｌ））
Epsilonは、０によって引き起こされる問題を避けるため少数とすることができる。
【００６９】
次いで、エントロピーを、非線形マッピング関数を使用して、subject_motion_scoreが０と１との間である平滑化映像フレームに対応するsubject_motion_scoreににマッピングする。
【００７０】
subject_motion_score＝１−exp（entropy×subject_mootion_param１）×subject_motion_param２
subject_motion_param１およびsubject_motion_param２は、手動で調整される２つのパラメータである。
【００７１】
この被写体動きスコア（subject_motion_score）は、シーン内に大きな被写体動きがある場合に大きくなる。シーンが静止しているとき、それは０に非常に近い。
【００７２】
処理は４３４へ進む。
４３４において、１つまたは複数のフレームに対する被写体動きスコアが正規化される。例えば、
各映像について、静的映像認識のために処理された（フレーム番号ｉを有する）全てのフレームが、被写体動きスコア（ｉ）を受け取った。被写体動きスコアの最大値は、以下のように表される。
【００７３】
全てのｉについて、subject_motion_score_max＝max（subject_motion_score（i））
subjct_motion_score_iが小さすぎない場合、subject_motion_score_maxによりsubject_motion_score_iを正規化する。例えば、
subject_motion_score_i＞subject_motion_min_thresholdであるとき、normalized_subject_motion_score_i＝subject_motion_score_i／subject_motion_score_max
そうでないとき、normalized_subject_motion_score_i＝subject_motion_score_i
処理は４３６へ進む。
【００７４】
４３６において、正規化された被写体動きスコアが閾値化される。例えば、
低い正規化された被写体動きスコアを有するフレームの数をカウントする。
【００７５】
number_of_static_frames＝count（normalized_subject_motion_score_i＜normalized_subject_motion_score_threshold）
処理は４３８へ進む。
【００７６】
４３８において、静的なものとして識別された映像フレームの、映像内の全てのフレームに対する比率が、静的なフレーム比率閾値と比較される。例えば、
number_of_static_frames／number_of_all_frames＞static_frame_ratio_thresholdである場合、映像を静的な映像としてマークし、そうでなければ映像を静的な映像としてマークしない。
【００７７】
処理は４４０へ進む。
４４０では、映像が静的な映像として認識されたか否かに基づいてアクションが取られる。例えば、映像が静的であると認識された場合には、１つの動作が行われ、映像が静的でないと認識された場合には、別の動作が行われる。いくつかの例では、映像が静的であると認識されるとき、映像は、静的であるとマークされ得、映像に対応するシャッタ画像（または静止画像）はストレージ内に保持され得、映像はストレージから削除され得る。映像が静的でないと認識されるとき、シャッタ画像（または静止画像）および映像の両方は、ストレージ（たとえば、メモリ）内に保持され得、いくつかの例では、映像は、ユーザに提示され得、たとえば、ユーザデバイスまたは他のデバイスのディスプレイデバイス上に連続フレームとして表示され得る。
【００７８】
図５は、本明細書で説明する１つまたは複数の特徴を実施するために使用され得る例示的なデバイス５００のブロック図である。一例では、デバイス５００は、コンピュータデバイス、たとえば、サーバデバイス（例えば、図１のサーバデバイス１０４）を実現し、本明細書で説明する適切な方法の実施を行なうために使用され得る。デバイス５００は、任意の適切なコンピュータシステム、サーバ、または他の電子もしくはハードウェアデバイスとすることができる。例えば、デバイス５００は、メインフレームコンピュータ、デスクトップコンピュータ、ワークステーション、ポータブルコンピュータ、または電子デバイス（携帯デバイス、モバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックス、携帯情報端末（ＰＤＡ）、メディアプレーヤ、ゲーム装置、ウェアラブルデバイスなど。）とすることができる。ある実施形態では、デバイス５００は、プロセッサ５０２と、メモリ５０４と、Ｉ／Ｏインターフェイス５０６とを含む。
【００７９】
プロセッサ５０２は、プログラムコードを実行し、デバイス５００の基本動作を制御する１つまたは複数のプロセッサおよび／または処理回路であり得る。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび／またはソフトウェアシステム、メカニズムまたはコンポーネントを含む。プロセッサは、汎用中央処理ユニット（ＣＰＵ）、複数の処理ユニット、機能を達成するための専用回路、または他のシステムを有するシステムを含み得る。処理は、特定の地理的位置に限定される必要はなく、または時間的制限を有する必要はない。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」等でその機能を実行することができる。処理の部分は、異なる（または同じ）処理システムによって、異なる時間および異なる場所で実行されてもよい。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【００８０】
メモリ５０４は、典型的には、プロセッサ５０２によるアクセスのためにデバイス５００内に提供され、プロセッサによる実行のための命令を記憶するのに適した任意の適切なプロセッサ可読記憶媒体、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどであり得、また、プロセッサ５０２から分離して、および／またはプロセッサ５０２と一体化して配置され得る。メモリ５０４は、オペレーティングシステム５０８、１つまたは複数のアプリケーション５１０、たとえば、静的映像認識アプリケーション５１２、他のアプリケーション５１４、およびアプリケーションデータ５２０を含む、プロセッサ５０２によってサーバデバイス５００上で動作するソフトウェアを記憶することができる。ある実施形態では、アプリケーション５１０は、プロセッサ５０２が本明細書で説明された機能、たとえば、図２および／または図４の方法の一部または全てを実行することを可能にする命令を含み得る。
【００８１】
他のアプリケーション５１４（またはエンジン）も、または代替として、アプリケーション５１０、たとえば、カメラアプリケーション、電子メールアプリケーション、ＳＭＳおよび他の電話通信アプリケーション、ウェブブラウザアプリケーション、メディアディスプレイアプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーション、ソーシャルネットワーキングエンジンまたはアプリケーションなどに含まれ得る。あるいは、メモリ５０４内の任意のソフトウェアは、任意の他の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ５０４（および／または他の接続された記憶装置）は、電子会話メッセージ、電子会話メッセージのグループ、会話フレーミング要素、ユーザデータおよび選好、ならびに本明細書で説明する特徴で使用される他の命令およびデータなどのアプリケーションデータを記憶することができる。メモリ５０４および任意の他のタイプのストレージ（磁気ディスク、光ディスク、磁気テープ、または他の有形媒体）は、「ストレージ」または「ストレージデバイス」と見なすことができる。例えば、アプリケーションデータ５２０は、画像５２２および映像５２４を含むことができる。
【００８２】
Ｉ／Ｏインターフェイス５０６は、デバイス５００を他のシステムおよびデバイスとインターフェイスすることを可能にする機能を提供することができる。例えば、ネットワーク通信デバイス、ストレージデバイス（例えば、メモリおよび／またはデータベース１０６）、および入出力デバイスは、Ｉ／Ｏインターフェイス５０６を介して通信することができる。ある実施形態では、Ｉ／Ｏインターフェイスは、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナなど。）および／または出力デバイス（ディスプレイデバイス、スピーカデバイス、プリンタ、モータ、触覚出力デバイスなど。）を含むインターフェイスデバイスに接続することができる。オーディオ入力／出力デバイス５３０は、本明細書で説明するように、オーディオ入力を受信し、オーディオ出力（たとえば、ボイスインターフェイス出力）を提供するために使用され得る入力および出力デバイスの例である。音声入力／出力デバイス５３０は、ローカル接続（例えば、ワイヤードバス、ワイヤレスインターフェイス）を介して、および／またはネットワーク接続を介してデバイス５００に接続することができ、かつ任意の適切なデバイスであり、そのいくつかの例は以下にされる。
【００８３】
説明を容易にするために、図５は、プロセッサ５０２、メモリ５０４、Ｉ／Ｏインターフェイス５０６、ならびにソフトウェアブロック５０８および５１０の各々について１つのブロックを示す。これらのブロックは、１つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、Ｉ／Ｏインターフェイス、アプリケーション、および／または、ソフトウェアモジュールを表し得る。他の実施形態では、デバイス５００は、示される構成要素の全てを有する必要はなく、および／または、本明細書に示される構成要素の代わりに、またはそれに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。サーバシステム１０２は、本明細書のいくつかの実施形態において説明される動作を実行するものとして説明されるが、サーバシステム１０２または同様のシステムの任意の好適なコンポーネントまたはコンポーネントの組み合わせ、または、そのようなシステムに関連する任意の好適なプロセッサまたは複数のプロセッサは、説明される動作を実行することができる。
【００８４】
クライアントデバイスはまた、本明細書で説明される特徴、たとえば、図１に示されるクライアントデバイス１２０〜１２６を実現し、および／またはそれらとともに使用することができる。例示的なクライアントデバイスは、デバイス５００として、いくつかの同様の構成要素、たとえば、プロセッサ５０２、メモリ５０４、およびＩ／Ｏインターフェイス５０６を含むコンピュータデバイスであり得る。クライアントデバイスに適したオペレーティングシステム、ソフトウェア、および、アプリケーション、例えば、画像管理ソフトウェア、クライアントグループ通信アプリケーションソフトウェアなどは、メモリにおいて提供され、プロセッサによって使用され得る。クライアントデバイスのためのＩ／Ｏインターフェイスは、入力デバイスおよび出力デバイス、例えば、画像または映像をキャプチャするためのカメラ、音を出力するためのオーディオスピーカデバイス、画像または映像を出力するためのディスプレイデバイス、または他の出力デバイスと同様に、ネットワーク通信デバイスに接続され得る。
【００８５】
本明細書で説明する１つまたは複数の方法（たとえば、方法２００および４００）は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実現され得る。たとえば、コードは、１つまたは複数のデジタルプロセッサ（たとえば、マイクロプロセッサまたは他の処理回路）によって実施することができ、非一時的コンピュータ可読媒体（たとえば、記憶媒体）を含むコンピュータプログラム製品、たとえば、磁気、光学、電磁、または半導体または固体メモリを含む半導体記憶媒体、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、リジッド磁気ディスク、光ディスク、ソリッドステートメモリドライブなどに格納することができる。プログラム命令はまた、例えばサーバ（例えば、分散システムおよび／またはクラウドコンピューティングシステム）から配信されるサービス（ＳａａＳ）としてのソフトウェアの形態で、電子信号に含まれ、かつ、電子信号として提供されることもできる。代替的には、１つまたは複数の方法は、ハードウェア（論理ゲートなど）で、またはハードウェアとソフトウェアとの組み合わせで実現され得る。ハードウェアの例は、プログラム可能なプロセッサ（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブルロジックデバイス）、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路（ＡＳＩＣｓ）などであり得る。１つまたは複数の方法は、システム上で実行するアプリケーションの一部または構成要素として、または他のアプリケーションおよびオペレーティングシステムとともに実行するアプリケーションまたはソフトウェアとして実行することができる。
【００８６】
本明細書で説明する１つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行することができる独立型プログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス（例えば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス（ウォッチ、アームバンド、ジュエリー、ヘッドウェア、ゴーグル、眼鏡など）、ラップトップコンピュータなど）上で実行されるモバイルアプリケーション（「ａｐｐ」）で実行することができる。一例では、クライアント／サーバアーキテクチャを使用することができ、例えば、（クライアントデバイスとして）モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、（例えば、表示のために）出力のための最終出力データをサーバから受信する。別の例では、全ての計算は、モバイルコンピューティングデバイス上のモバイルアプリ（および／または他のアプリ）内で実行することができる。別の例では、モバイルコンピューティングデバイスと１つまたは複数のサーバデバイスとの間で計算を分割することができる。
【００８７】
あるいは、メモリ内の任意のソフトウェアは、任意の他の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ（および／または他の接続された記憶装置）は、１つまたは複数のメッセージ、１つまたは複数の分類、電子エンサイクロペディア、辞書、類語辞典、知識ベース、メッセージデータ、文法、ユーザ選好、および／または本明細書に記載の特徴で使用される他の命令およびデータを記憶することができる。メモリおよび任意の他のタイプのストレージ（磁気ディスク、光ディスク、磁気テープ、または他の有形媒体）は、「ストレージ」または「ストレージデバイス」とみなすことができる。
【００８８】
Ｉ／Ｏインターフェイスは、サーバデバイスを他のシステムおよびデバイスとインターフェイスすることを可能にする機能を提供することができる。インターフェイスされたデバイスは、デバイスの一部として含めることができ、または別個であり、デバイスと通信することができる。例えば、ネットワーク通信デバイス、ストレージデバイス（例えば、メモリおよび／またはデータベース１０６）、および入出力デバイスは、Ｉ／Ｏインターフェイスを介して通信することができる。ある実施形態では、Ｉ／Ｏインターフェイスは、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど。）および／または出力デバイス（ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど。）などのインターフェイスデバイスに接続することができる。
【００８９】
Ｉ／Ｏインターフェイスに接続できるインターフェイスされたデバイスのいくつかの例は、コンテンツ、たとえば、画像、映像、および／または本明細書で説明する出力アプリケーションのユーザインターフェイスを表示するために使用することができる１つまたは複数のディスプレイデバイスを含むことができる。ディスプレイデバイスは、ローカル接続（例えば、ディスプレイバス）を介して、および／またはネットワーク接続を介してデバイスに接続することができ、任意の適切なディスプレイデバイスとすることができる。ディスプレイデバイスは、ＬＣＤ、ＬＥＤ、またはプラズマディスプレイスクリーンのような任意の適切なディスプレイデバイス、ＣＲＴ、テレビ、モニタ、タッチスクリーン、３Ｄディスプレイスクリーン、または他の視覚ディスプレイデバイスを含み得る。例えば、ディスプレイデバイスは、モバイルデバイス上に設けられる平坦なディスプレイ画面、ゴーグルもしくはヘッドセットデバイス内に設けられる複数のディスプレイ画面、またはコンピュータデバイスのためのモニタ画面とすることができる。
【００９０】
Ｉ／Ｏインターフェイスは、他の入力および出力デバイスとインターフェイスすることができる。いくつかの例は、画像をキャプチャすることができる１つまたは複数のカメラまたは他の撮像装置を含む。ある実施形態は、（例えば、キャプチャされた画像、音声コマンドなどの一部として）音をキャプチャするためのマイクロフォン、音を出力するためのオーディオスピーカデバイス、または他の入力デバイスおよび出力デバイスを提供することができる。
【００９１】
説明は、その特定の実施形態に関して説明されてきたが、これらの特定の実施形態は、例示にすぎず、限定的ではない。実施形態において示される概念は、他の例および実施形態に適用され得る。
【００９２】
本明細書で説明するある実施形態が、ユーザに関する個人情報（例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、その場所におけるユーザの場所および時間、ユーザのバイオメトリック情報、ユーザの活動および人口統計情報）を収集または使用し得る状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、および情報がどのようにユーザに関して収集され、記憶され、使用されるかを制御する１つまたは複数の機会を提供される。すなわち、本明細書で説明されるシステムおよび方法は、特に、関連するユーザからそのようにするための明示的な許可を受けて、ユーザ個人情報を収集し、記憶し、および／または使用する。例えば、ユーザは、プログラムまたは特徴が、その特定のユーザまたはそのプログラムまたは特徴に関連する他のユーザに関するユーザ情報を収集するかどうかに関する制御を提供される。個人情報が収集されるべき各ユーザには、そのユーザに関連する情報収集の制御を可能にし、情報が収集されるかどうか、および情報のどの部分が収集されるべきかに関する許可または認可を提供するための１つまたは複数のオプションが提示される。例えば、ユーザは、通信ネットワークを介して１つまたは複数のそのような制御オプションを提供され得る。さらに、特定のデータは、個人的に識別可能な情報が取り除かれるように、保存または使用される前に、１つまたは複数の方法で処理されてもよい。一例として、ユーザのアイデンティティは、個人的に識別可能な情報を判定できないように取り扱われ得る。別の例として、ユーザの特定の位置を判定することができないように、ユーザの地理的位置は、より大きな領域に一般化され得る。
【００９３】
本開示で説明する機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組み合わせに統合または分割され得ることに留意されたい。任意の適切なプログラミング言語およびプログラミング技術を使用して、特定の実施形態のルーチンを実現することができる。異なるプログラミング技法、例えば手続き的またはオブジェクト指向の技法を採用することができる。ルーチンは、単一の処理装置または複数のプロセッサ上で実行することができる。ステップ、動作、または計算は、特定の順序で提示され得るが、順序は、異なる特定の実施形態で変更され得る。ある実施形態では、本明細書で順次に示される複数のステップまたは動作は、同時に実行され得る。
【図１】
2021506019.tif 000003
【図２】
2021506019.tif 000004
【図３】
2021506019.tif 000005
【図４】
2021506019.tif 000006
【図５】
2021506019.tif 000007
【手続補正書】
【提出日】令和2年6月10日(2020.6.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実行される方法であって、
入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを備え、前記映像フレームは、シャッタ押下指示の受信前に、および前記シャッタ押下指示の受信後に、取得されており、前記方法はさらに、
前記入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成することと、
前記ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、
前記平滑化映像フレームの時間勾配および空間勾配を計算することと、
前記平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを備え、前記ローカル動きベクトルは、前記空間勾配および前記時間勾配に基づいており、前記方法はさらに、
前記平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、
対応するローカル動きベクトルおよび前記グローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、
前記１つまたは複数の被写体動きベクトルをスコアマップに変換することと、
前記スコアマップに基づいてエントロピースコアを計算することと、
前記エントロピースコアを前記平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、
前記被写体動きスコアに基づいて、静的なフレームの数を識別することと、
前記入力映像における前記映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、前記入力映像が静的な映像であると判定すること、および、前記比率が前記静的なフレーム閾値を満たさない場合に、前記入力映像が動き映像であると判定することと、
前記入力映像が前記静的な映像であると認識された場合に第１の動作を実行することと、
前記入力映像が前記動き映像であると認識された場合に第２の動作を実行することとを備える、コンピュータで実行される方法。
【請求項２】
平滑化の前に前記ダウンサンプリングされた映像フレームをカラーからグレースケールに変換することをさらに備える、請求項１に記載のコンピュータで実行される方法。
【請求項３】
平滑化映像フレームに対する前記空間勾配および前記時間勾配を計算することは、
前記平滑化映像フレーム内の露出不足画素および前記平滑化映像フレーム内の露出過多画素を無効としてマークすることと、
前記平滑化映像フレーム内の有効な画素について、
時間勾配を計算することと、
ｘ方向の空間勾配を計算することと、
ｙ方向の空間勾配を計算することとを含む、請求項１または２に記載のコンピュータで実行される方法。
【請求項４】
前記１つまたは複数の候補画素パッチは、
１つまたは複数の格子点を、動き推定のための前記平滑化映像フレーム内の基準点として選択することと、
前記１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、
各画素パッチの統計を計算することと、
前記画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、
前記画素パッチが前記閾値テクスチャ値を満たすテクスチャを有する場合、前記画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される、請求項３に記載のコンピュータで実行される方法。
【請求項５】
前記ローカル動きベクトルを計算することは、前記候補画素パッチ内の画素に対する前記空間勾配および前記時間勾配に基づいて、局所的なｘ動き値を計算することと局所的なｙ動き値を計算することとを含む、請求項１〜４のいずれかに記載のコンピュータで実行される方法。
【請求項６】
前記グローバル動きベクトルを計算することは、有効なローカル動きベクトルの平均に基づいて前記グローバル動きベクトルを計算することを含む、請求項１〜５のいずれかに記載のコンピュータで実行される方法。
【請求項７】
前記１つまたは複数の被写体動きベクトルを計算することは、それぞれのローカル動きベクトルから前記グローバル動きベクトルを減算することを含む、請求項１〜６のいずれかに記載のコンピュータで実行される方法。
【請求項８】
前記１つまたは複数の被写体動きベクトルを前記スコアマップに変換することは、前記平滑化映像フレーム内の画素についてそれぞれの被写体動きベクトルの大きさを正規化することを含む、請求項１〜７のいずれかに記載のコンピュータで実行される方法。
【請求項９】
前記スコアマップ上で前記エントロピースコアに反相関する前記被写体動きスコアを計算することは、動きがローカライズされる場合により高いスコアを前記平滑化映像フレームに割り当てることと、動きが前記平滑化映像フレーム内でグローバルである場合により低いスコアを前記平滑化映像フレームに割り当てることとを含む、請求項１〜８のいずれかに記載のコンピュータで実行される方法。
【請求項１０】
前記第１の動作は、前記入力映像を静的なものとしてマーキングすることと、前記入力映像に対応するシャッタ画像をストレージ内に保持することと、前記入力映像をストレージから削除することとを含む、請求項１〜９のいずれかに記載のコンピュータで実行される方法。
【請求項１１】
前記第２の動作は、前記入力映像に対応するシャッタ画像および前記入力映像をストレージ内に保持することを含む、請求項１〜１０のいずれかに記載のコンピュータで実行される方法。
【請求項１２】
システムであって、
１つまたは複数のプロセッサと、
命令を記憶したメモリとを備え、前記命令は前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに複数の動作を実行させ、前記複数の動作は、
入力映像の１つまたは複数の映像フレームの中から入力映像フレームを取得することを備え、前記映像フレームは、シャッタ押下指示の受信前に、および前記シャッタ押下指示の受信後に、取得されており、前記複数の動作はさらに、
前記入力映像フレームをダウンサンプリングしてダウンサンプリングされた映像フレームを生成すること、
前記ダウンサンプリングされた映像フレームを平滑化して平滑化映像フレームを生成することと、
前記平滑化映像フレームの時間勾配および空間勾配を計算することと、
前記平滑化映像フレーム内の１つまたは複数の候補画素パッチの中からそれぞれの候補画素パッチに対応するローカル動きベクトルを計算することによって、局所的な動きを推定することとを備え、前記ローカル動きベクトルは、前記空間勾配および前記時間勾配に基づいており、前記複数の動作はさらに、
前記平滑化映像フレームに対応するグローバル動きベクトルを計算することによって全体的な動きを推定することと、
対応するローカル動きベクトルおよび前記グローバル動きベクトルに基づいて１つまたは複数の被写体動きベクトルを計算することと、
前記１つまたは複数の被写体動きベクトルをスコアマップに変換することと、
前記スコアマップに基づいてエントロピースコアを計算することと、
前記エントロピースコアを前記平滑化映像フレームに対応する被写体動きスコアにマッピングすることと、
前記被写体動きスコアに基づいて、静的なフレームの数を識別することと、
前記入力映像における前記映像フレームの数に対する静的なフレームの数の比率が静的なフレーム閾値を満たす場合に、前記入力映像が静的な映像であると判定すること、および、前記比率が前記静的なフレーム閾値を満たさない場合に、前記入力映像が動き映像であると判定することと、
前記入力映像が前記静的な映像であると認識された場合に第１の動作を実行することと、
前記入力映像が前記動き映像であると認識された場合に第２の動作を実行することとを備える、システム。
【請求項１３】
前記命令はさらに、平滑化の前に前記ダウンサンプリングされた映像フレームをカラーからグレースケールに変換することを含む動作を前記１つまたは複数のプロセッサに実行させる、請求項１２に記載のシステム。
【請求項１４】
前記平滑化映像フレームに対する前記空間勾配および前記時間勾配を計算することは、  前記平滑化映像フレーム内の露出不足画素および前記平滑化映像フレーム内の露出過多画素を無効としてマークすることと、
前記平滑化映像フレーム内の有効な画素について、
時間勾配を計算することと、
ｘ方向の空間勾配を計算することと、
ｙ方向の空間勾配を計算することとを含む、請求項１２または１３に記載のシステム。
【請求項１５】
前記１つまたは複数の候補画素パッチは、
１つまたは複数の格子点を、動き推定のための前記平滑化映像フレーム内の基準点として選択することと、
前記１つまたは複数の格子点の各々に対応する画素パッチについて画素パッチ幅および画素パッチ高さを選択することと、
各画素パッチの統計を計算することと、
前記画素パッチが閾値テクスチャ値を満たすテクスチャを有するかどうかを判定することと、
前記画素パッチが前記閾値テクスチャ値を満たすテクスチャを有する場合、前記画素パッチを動き推定のための候補画素パッチとして識別することと、によって判定される、請求項１４に記載のシステム。
【請求項１６】
請求項１〜１１のいずれかに記載の方法を１つまたは複数のコンピューターに実行させるためのプログラム。
【国際調査報告】
2021506019.tif 000008
2021506019.tif 000009