(57)【要約】  コンピュータシステムは、カメラによって撮像された第１の画像と第２の画像とを受信する。コンピュータシステムは、これらの画像を使用して、第１の画像から第２の画像（１１０）へのカメラの移動を示す数学的変換を生成する。コンピュータシステムは、第１の画像と数学的変換とを使用して、第２の画像が撮像されたときにカメラの位置から第１の画像によって撮像されたシーンを表す修正された第１の画像（１２０、１１５）を生成する。コンピュータシステムは、修正された第１の画像を第２の画像（１３０）と比較することによって、第１の画像または第２の画像のうちシーン内のオブジェクトの位置が移動した部分を決定する。
2019505868.tif 000002
【特許請求の範囲】
【請求項１】
画像における動きを検出するためにコンピュータにより実現される方法であって、
コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した部分を決定することを備える、コンピュータにより実現される方法。
【請求項２】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項４】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項５】
前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した前記部分を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１〜４のいずれか１項に記載のコンピュータにより実現される方法。
【請求項６】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項５に記載のコンピュータにより実現される方法。
【請求項７】
前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項５または６に記載のコンピュータにより実現される方法。
【請求項８】
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像の前記第２の画像に対する比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１〜７のいずれか１項に記載のコンピュータにより実現される方法。
【請求項９】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１〜８のいずれか１項に記載のコンピュータにより実現される方法。
【請求項１０】
１つ以上のプロセッサによって実行されると動作を実行させる命令を含む１つ以上の非一時的なコンピュータ読取装置であって、前記動作は、
コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した前記部分を決定することを備える、１つ以上の非一時的なコンピュータ読取装置。
【請求項１１】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１０に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１２】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１０または１１に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１３】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１０または１１に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１４】
前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した部分を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１０〜１３のいずれか１項に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１５】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項１４に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１６】
前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項１４または１５に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１７】
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像の前記第２の画像に対する比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１０から１６のいずれか１項に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１８】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１０から１７のいずれか１項に記載の１つ以上の非一時的なコンピュータ読取装置。
【請求項１９】
１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行されると動作を実行させる命令を含むコンピュータプログラムを記憶するための記憶装置とを備えるコンピュータシステムであって、前記動作は、
前記コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した部分を決定することを備える、コンピュータシステム。
【請求項２０】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１９に記載のコンピュータシステム。
【請求項２１】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１９または２０に記載のコンピュータシステム。
【請求項２２】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１９または２０に記載のコンピュータシステム。
【請求項２３】
前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した前記位置を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１９〜２２のいずれか１項に記載のコンピュータシステム。
【請求項２４】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項２３に記載のコンピュータシステム。
【請求項２５】
前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項２３または２４に記載のコンピュータシステム。
【請求項２６】
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１９〜２５のいずれか１項に記載のコンピュータシステム。
【請求項２７】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１９〜２６のいずれか１項に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、概して画像における動きの検出に関する。
【背景技術】
【０００２】
背景
スマートフォンまたはタブレットコンピューティングデバイス等の内蔵カメラを含む携帯コンピューティングデバイスを携帯することは、ますます一般的になってきている。これらのデバイスの処理速度および記憶容量が増加するにつれて、動画または（たとえば、短時間に多数の写真を撮像するためにシャッターボタンを押さえ続けることによって撮像された）さまざまな一連の写真を撮像するためにこれらのデバイスを使用することは、より一般的になってきている。これらの動画および一連の写真はシーンを撮像することができ、そこでは、オブジェクトまたは人間が画像から画像へとシーンを通じて動いている。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
本明細書は、画像における動きを検出するための技術、方法、システム、およびその他の機構を説明する。動き検出機構は、最近受信された画像を以前に受信された画像と比較して、画像によって示されるシーンにおいてどのオブジェクトが移動したかを特定し得る。カメラは移動し続けているかもしれないため、背景の静止しているオブジェクトが画像の各々において異なる場所に表示されることもあり、動き検出機構は画像を分析してカメラがどのように移動したかを特定し得る。その後、カメラはこの分析を使用して以前に受信された画像を修正して、その内容を、最近受信された画像が撮像されたときのカメラの推定された向きから示す。このように、背景は、修正された以前に受信された画像と最近受信された画像との間で実質的に同じままで静止しているように見える可能性がある。これにより、システムは２つの画像を分析して、背景とは独立して移動しているオブジェクトを特定することができる。
【０００４】
以下で説明する実施形態に対する付加的な説明として、本開示は次の実施形態について説明する。
【０００５】
実施形態１は、画像における動きを検出するためにコンピュータにより実現される方法である。この方法は、コンピュータシステムが、カメラによって撮像された第１の画像を受信することを備える。この方法は、コンピュータシステムが、カメラによって撮像された第２の画像を受信することを備える。この方法は、コンピュータシステムが、第１の画像と第２の画像とを用いて、第１の画像と第２の画像とに反映されたシーンに対する、第１の画像から第２の画像へのカメラの移動を示す数学的変換を生成することを備える。この方法は、コンピュータシステムが、第１の画像と数学的変換とを用いて、第２の画像が撮像されたときのカメラの位置から第１の画像によって撮像されたシーンを表す修正された第１の画像を生成することを備える。第１の画像が撮像されたときのカメラの位置は、第２の画像が撮像されたときのカメラの位置と異なる。この方法は、コンピュータシステムが、修正された第１の画像を第２の画像と比較することによって、第１の画像または第２の画像のうちシーンにおけるオブジェクトの位置が移動した部分を決定することを備える。
【０００６】
実施形態２は、実施形態１のコンピュータにより実現される方法であり、第２の画像は、カメラが一連の画像における第１の画像を撮像した後で当該一連の画像においてカメラが撮像した画像である。
【０００７】
実施形態３は、実施形態１のコンピュータにより実現される方法であり、修正された第１の画像を第２の画像と比較することは、修正された第１の画像と第２の画像との間の画素差を特定することを含む。
【０００８】
実施形態４は、実施形態１のコンピュータにより実現される方法であり、修正された第１の画像を第２の画像と比較することは、コンピュータシステムが、第１の画像または第２の画像の空間勾配を算出してオブジェクトのエッジが存在する第１の画像または第２の画像の部分を特定することと、コンピュータシステムが、修正された第１の画像と第２の画像との間の画素差を特定することと、コンピュータシステムが、（ｉ）算出された空間勾配が、第１の画像または第２の画像の部分にオブジェクトのエッジが存在すると示す結果として、および（ｉｉ）第１の画像の部分において、修正された第１の画像と第２の画像との間に特定された画素差が存在する結果として、第１の画像または第２の画像のうちオブジェクトの移動しているエッジが存在する部分を決定することとを含む。
【０００９】
実施形態５は、実施形態１のコンピュータにより実現される方法である。この方法はさらに、コンピュータシステムが、第１の画像または第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備える。複数の領域の格子は複数の行を含み、複数の行の各々が複数の上記複数の領域を含む。この方法はさらに、コンピュータシステムが、複数の領域の２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することを備える。第１の画像または第２の画像のうちシーン内のオブジェクトにおける位置が移動した部分を決定することは、複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む。
【００１０】
実施形態６は、実施形態５のコンピュータにより実現される方法であり、複数の領域の格子内の全ての領域は同じサイズおよび同じ形状を有する。
【００１１】
実施形態７は、実施形態５のコンピュータにより実現される方法である。この方法はさらに、コンピュータシステムが、それぞれの領域に関する計算された動きを特定した値のうちの少なくともいくつかを組合わせることによって、第１の画像と第２の画像との間の一般的な移動レベルを特定する値を生成することを備える。
【００１２】
実施形態８は、実施形態１のコンピュータにより実現される方法である。この方法はさらに、コンピュータシステムが、複数の他の画像に加えて、少なくとも第１の画像と第２の画像とを含む一連の画像を受信することと、コンピュータシステムが、修正された第１の画像と第２の画像との比較に基づいて、第１の画像または第２の画像によって反映された移動レベルを決定することと、コンピュータシステムが、第１の画像または第２の画像によって反映された決定された移動レベルに基づいて、（ｉ）少なくともユーザ入力が第１の画像または第２の画像をコンピュータストレージから取り除くまで、コンピュータストレージに第１の画像または第２の画像を保持するように、および（ｉｉ）複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから複数の他の画像のうちの少なくとも１つを取り除くように決定することとを備える。
【００１３】
実施形態９は、実施形態１のコンピュータにより実現される方法であり、カメラの移動を示す数学的変換は、ホモグラフィ変換行列を含む。
【００１４】
他の実施形態では、コンピュータにより実現される方法は、画像における動きを検出するためのものである。この方法は、コンピュータシステムが、カメラによって撮像された第１の画像を受信することを備える。この方法は、コンピュータシステムが、カメラによって撮像された第２の画像を受信することを備える。この方法は、コンピュータシステムが、第２の画像のうち移動を分析するための複数の領域の格子を特定することを備え、複数の領域の格子は複数の行を含み、複数の行の各々が複数の領域を含む。この方法は、コンピュータシステムが、複数の領域の２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することを備える。
【００１５】
特定の実施態様は、場合に応じて、以下の利点のうちの１つ以上を実現できる。本開示に記載の技術では、デバイスは、カメラ自体が移動している場合でも、カメラによって撮像されているシーンにおけるオブジェクトが移動しているときを判断することができる。したがって、デバイスは、カメラの移動によるシーンの背景の明らかな移動から、シーン内のオブジェクトの移動を決定可能である（たとえば、請求項１、３、４、１０、１２、１３、１９、２１、および２２における、修正された第１の画像の生成、および修正された第１の画像と第２の画像との比較についての説明を参照）。デバイスは、８移動自由度全てにおけるカメラの移動を補償することによって、背景の移動から前景を識別し得る（たとえば、上記の説明を参照）。デバイスは、移動が発生する画像の領域を決定できるだけでなく、動きの顕著性を一般に示すもの、たとえば、シーン内の移動の重要性を一般に示すものを生成することができる（たとえば、請求項７、１６、２５の一般的な移動レベルを特定する値の生成の説明を参照）。さらに、本明細書で説明されるプロセスは、著しい処理能力を必要とすることはなく、カメラの動きの８自由度を完全に補償することができ、したがって、携帯コンピューティングデバイスにおけるリアルタイムでの計算に好適であり得る。
【００１６】
１つ以上の実施態様の詳細が添付の図面および以下の説明において説明される。他の特徴、目的、および利点は、本明細書および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】画像における動きを検出するためのプロセスを示す図である。
【図２】２つの画像を比較するためのプロセスを示す図である。
【図３Ａ】画像における動きを検出するためのプロセスのフローチャートである。
【図３Ｂ】画像における動きを検出するためのプロセスのフローチャートである。
【図４】クライアントとしてまたはサーバもしくは複数のサーバとして本明細書で説明されるシステムおよび方法を実現するために使用可能なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１８】
詳細な説明
各図面における同様の参照符号は同様の要素を示す。
【００１９】
本明細書は概して画像における動きの検出について説明する。コンピュータシステムは、画像のどの部分が実生活で移動していたオブジェクトを示しているかを特定するために、および、この移動に対する重要性のレベルを特定する値を生成するために、２つの画像を比較することによって動き検出プロセスを実行し得る（たとえば、空中にジャンプする人は、風に漂う多数の小さな葉よりもより重要であり得る）。コンピュータシステムはカメラの移動を補償可能であり、これによって、コンピュータシステムは、静止しているオブジェクトに対して実際に実生活で移動しているこれらのオブジェクトから、カメラの移動によって１つの画像から次の画像へ移動しているように見える静止したオブジェクトを識別できる。
【００２０】
画像のどの部分が移動しているかの特定および当該移動の重要性のレベルを、コンピュータシステムまたは他のコンピュータシステムによってさまざまな態様で使用可能である。一使用例は、コンピュータシステムによって撮像される一連の画像のうちで保存すべき画像と削除すべき画像とをコンピュータシステムが決定するようにすることである。例示として、ユーザが一連の画像を撮像するためにシャッターボタンを押し下げる場合、これらの画像のうちの多くはほぼ同じであり、ほぼ同じ画像の全てを永久的に記憶することまたはこれらの画像をユーザに表示のために提供することは役に立たない可能性がある。したがって、コンピュータシステムは、どの画像が他の画像に対して移動の重要性のレベルを示しているかを判断可能であり、移動の重要度を示すこれらの画像のみを記憶することが可能である。このプロセスは、図１に基づいて図表によって示され説明される。
【００２１】
図１は、画像における動きを検出するためのプロセスを示す図である。この図では、携帯コンピューティングデバイス（この例では電話であるが、たとえば、ラップトップまたはスタンドアローンカメラでもよい）のユーザが、所定位置でかがみ次に空中にジャンプする友人の一連の画像Ａ〜Ｄを撮像している。ユーザは、自分の電話カメラのカメラレンズを友人に対面するように向けていてもよく、ユーザは、友人がジャンプする直前にシャッターボタンを押しかつ押し下げ続けてジャンプしている友人の一連の画像を撮像していてもよい。一連の画像は、ジャンプしようと準備している友人の２つの画像（画像Ａおよび画像Ｂ）、空中に飛び跳ねている友人の１つの画像（画像Ｃ）、および地面に戻ってくる友人の１つの画像（画像Ｄ）を含み得る。
【００２２】
図示を簡潔にするためにこの図では電話が４つの画像を撮像すると示しているが、電話が同じ期間に何十もの画像を撮像することも可能である。これらの画像は貴重なものである可能性のあるコンピュータメモリを占有するため、および、これらの画像のうちのいくつかはほぼ同じであるため、これらの画像全てを永久的に記憶するのは理にかなわない可能性がある。したがって、ユーザが眺めたいともっとも興味を持っている画像を推定するように電話をプログラム可能であり、電話は、削除する画像をユーザが見直したり表示したりするために提供することさえせずに、残りの画像を削除可能である。一例として、電話は撮像された画像をバッファに記憶可能であるが、バッファがいっぱいになると、コンピュータシステムは、バッファが受信中のよりスコアの高い画像を記憶できるように、スコアの低かった画像を削除可能である。コンピュータシステムは、次の画像を撮像する前に、新しく受信された各画像でスコアリングプロセスを行なう、または少なくとも開始することが可能である。
【００２３】
画像における動きを特定する第１のステップは、比較のために２つの画像を特定することであり得る。２つの画像は、時間的に近接して撮像された画像であり得る。たとえば、画像は動画における隣接フレームであり得る。
【００２４】
次に、コンピュータシステムはカメラの移動を補償し得る。電話は携帯デバイスであるため、ユーザは一連の画像を撮像する際に電話を移動させることがある（たとえば、電話を平行移動または回転させることによって）。電話が移動するため、２つの画像を直接互いに比較することが困難になる場合がある。なぜなら、画像によって撮像されたシーンにおいて静止していたアイテムの位置は、カメラの移動によって画像の異なる位置に表示される可能性があるからである。
【００２５】
コンピュータシステムは、第１の画像と第２の画像とを使用して、第１の画像と第２の画像とに反映されるシーンに対する第１の画像から第２の画像へのカメラの移動を示す数学的変換を生成することによって、カメラの移動を補償し得る（ボックス１１０）。数学的変換（アイテム１１５）は、シーンに対するある画像から次の画像へのカメラの移動を示すもしくは示すために使用可能な数学的な数字、一連の数字、行列、またはアルゴリズムであり得る。この変換は、画像の各々における同じ特徴の場所を特定することによって、およびある画像から次の画像へと特徴がどのように移動したかを特定することによって、生成可能である。以下で説明するように、数学的変換１１５を使用して画像のうちの１つの画像の画素を修正して異なる場所（たとえば、２つの画像のうちの他方が撮像された場所）から同じ時間に同じシーンの撮像を推定することが可能である。
【００２６】
コンピュータシステムは次に、第１の画像と数学的変換とを使用して、修正された第１の画像を生成し得る。修正された第１の画像は、第２の画像が撮像されたときにカメラの位置から第１の画像によって撮像されたシーンを表し得る（ボックス１２０）。すなわち、コンピュータシステムは、第１の画像を撮影し、数学的変換１１５を入力として使用もする数学的プロセスを通じて実行し得る。数学的プロセスの効果は、数学的変換によって規定されるまたは示される態様で、第１の画像内の画素のうちの少なくとも一部を新しい位置に移動させることであり得る。この再配置により、「歪められた」元の画像であり、異なるカメラの視点からの元の画像であるように見える新しい画像を生成可能である。修正された第１の画像は、図１では画像Ｂ’（アイテム１２５）として示されている。第１の画像が撮像されたときのカメラの位置（たとえば、場所および／または向き）は、第２の画像が撮像されたときのカメラの位置と異なり得る。
【００２７】
コンピュータシステムは次に、修正された第１の画像を第２の画像と比較し得る（ボックス１３０）。この比較の計算出力が、（たとえば静止している背景に対して）オブジェクトが移動した第２の画像の一部の表示を含み得る。これらの比較プロセスのうちの１つ以上の出力は、動きデータ１３５として図１に示されている。比較プロセスは図２に基づいてさらに詳細に説明される。だが一般的には、比較プロセスは（カメラの移動を補償したあとで）画像のうちのどの部分が変化したかを特定する。比較プロセスはさらに、画像のどの部分がオブジェクトのエッジを表しているかを特定し得、この計算は、目立たないエッジを有する特徴に対する変化よりもエッジの位置における変化を強調し得る。
【００２８】
いくつかの実施態様では、電話は、動きデータを使用して画像を保存するかまたは画像を廃棄するかを選択する（ボックス１４０）。たとえば、上述のように、デバイスは記憶またはユーザへの表示に必要とされるよりも多くの画像を撮像し得る。したがって、ユーザが画像を眺める機会を与えられる前に、デバイスは撮像された画像のいくつかをメモリから取り除き得る（たとえば、画像はユーザの入力なしで取り除かれる）。または、デバイスは、（たとえば、画像を眺めるためにさらにユーザ入力を求める、または画像を異なる態様でラベリングすることによって）低くスコアリングされる画像に重点を置かないことがある。コンピュータシステムは、ある所与の撮像された一連の画像に関して記憶するように構成された固定数の画像を有する結果として（たとえば、固定バッファサイズ）、または、画像が所与の閾値よりも低い画像スコアを有しているたびに（たとえば、バッファがいっぱいでないかもしれない場合であっても、興味のない画像を削除し得る）、これらの画像を取り除くまたは画像に重点を置かない動作を行ない得る。
【００２９】
どの画像が興味があるものかまたは興味がないものかを決定するための入力の例（たとえば、上述の画像スコアを算出するために使用される入力）は、画像における動きの顕著性または重要性を規定する入力であり、これは上述の説明に基づいて決定され得る。この動きを特定する入力は、他の入力（たとえば、画像内の人が目を開いているかどうかを規定するスコア、および画像がぼやけていないかどうかを規定するスコア）と共に使用されて画像に関して全体的なスコアを生成可能である。この全体的なスコを使用して、画像を取り除くかどうかまたは画像をユーザに後で表示するために保存しておくかどうかを決定可能である。当然のことながら、本明細書で説明される動き検出技術を使用して他の結果を得ることが可能である、たとえば、オブジェクトの場所を追跡可能である。
【００３０】
図２は、２つの画像を比較するためのプロセスを示す図である。図２に示すプロセスは、ボックス１３０（図１）で既に説明された比較動作をさらに詳細に示し得る。
【００３１】
この比較は、デバイスが修正された第１の画像および第２の画像についての統計情報を最初に計算することを含み得る。たとえば、デバイスは、これらの画像を比較して時間勾配２１５を特定し得る（ボックス２１０）。時間勾配データ２１５は、これらの画像間の画素差を表し得る。修正された第１の画像はカメラが第２の画像を撮像したときにカメラの位置から撮影された画像を表すため、静止した特徴を表す画像の部分は類似した画素値を有し得る。したがって、そのような画素の場所における画素差はゼロになり得る、またはゼロに近くなり得る。その一方で、オブジェクトが移動した画像内の場所には、顕著な画素差が存在し得る（たとえば、オブジェクトが存在していたが現在は存在していない場所、または、オブジェクトが存在していなかったが現在は存在している場所）。時間勾配は、ある画像から次の画像への時間的な差もしくは時間差を表し得る、または、複数の画素（たとえば、画像内の各画素）に関して算出され得る。
【００３２】
また、デバイスは第２の画像から空間勾配を算出および特定し得る（ボックス２２０）。算出によって空間勾配データ２２５を生成可能であり、これは、画像内の特定の方向においてある画素から次の画素へと画像がどのように異なるかを示し得る。たとえば、水平勾配は、画像内のある所与の画素について、その所与の画素の左側の画素に関するグレースケール値がその所与の画素の右側の画素に関するグレースケール値とどのように異なるかを特定し得る。別の例として、垂直勾配は、ある所与の画素について、上部の画素に関するグレースケール値が下部の画素に関するグレースケール値とどのように異なるかを特定し得る。有意な空間勾配値は、画像におけるエッジの存在を示し得る。
【００３３】
コンピューティングデバイスは、これらの統計値を使用して動きが生じる画像の場所を特定し得る。この分析は、画像のパッチまたは領域に関して行ない得る。したがって、コンピュータシステムは、パッチの格子または複数の領域の格子を生成し得る（ボックス２３０）。以下の詳細な説明では、パッチの格子という用語が用いられる。パッチの格子を生成することは、均等に距離をおいて配置された点の格子を画像のうちの１つを表す領域上に生成することと、均等に距離をおいて配置された点の各々の上で中心に置かれたパッチ（たとえば、１０画素×１０画素の正方形）を生成することとを含み得る。パッチの格子２３５内のパッチは互いに重なっていても重なっていなくてもよい、または、互いに隣接していてもよい（図２では、互いに重ならないようにまたは互いに隣接するように、各パッチ間に間隙を有して示されている。）。
【００３４】
デバイスは次に、時間勾配データ２１５および空間勾配データ２２５を使用してパッチごとに動きスコアを算出し得る（ボックス２４０）。パッチごとの動きスコアの計算は図３Ａおよび図３Ｂに基づいてさらに詳細に説明されるが、この算出は、スコアマップ２４５を生成し得る。スコアマップ２４５は、当該パッチ内の動きの顕著性を示す、パッチごとの１つの値を含み得る。画像のどの領域で動きが発生しているかを示すためにデバイスが用い得るのが、このスコアマップ２４５（またはその縮小版）である。図２では、スコアマップ２４５における最高値は、友人が移動した画像Ｂ’および画像Ｃの領域において示されている。スコアマップ２４５内の値は０〜５の範囲であると示されているが、これらの値は他の範囲、たとえば０〜１の範囲もとり得る。
【００３５】
デバイスはその後、全体的な動きスコア値を計算し得る（ボックス２５０）。特に、デバイスはスコアマップ２４５内の値を使用して全体的な動きスコア値データ２５５を生成可能である。さまざまな例では、全体的な動きスコア値データ２５５を計算することは、スコアマップ２４５内の値の平均をとることを含み得る。いくつかの例では、全体的な動きスコア値データ２５５は非線形マッピング機能を使用して計算され、これによって、図３Ａおよび図３Ｂに基づいてさらに詳細に説明されるように、値を標準範囲（たとえば、０〜１）に正規化する。
【００３６】
図３Ａおよび図３Ｂは、画像における動きを検出するためのプロセスのフローチャートである。図３Ａおよび図３Ｂに基づいて説明されるプロセスは、図１および図２に基づいて説明されるプロセスの少なくとも別の態様についてさらに説明する。
【００３７】
ボックス３０２で、コンピュータシステムは画像を受信する。受信された画像は、コンピューティングデバイスのカメラ（たとえば、イメージセンサ）によって最も最近に撮像された画像であり得る。コンピュータシステムは、ここで説明される動き検出プロセスを行なうために必要な処理のレベルを下げるために、画像をダウンサンプリングし得る（ボックス３０４）。たとえば、受信した画像は１９２０×１０８０画素の解像度を有し得、ダウンサンプリングプロセスは、受信した画像を３２０×１８０画素のより小さな解像度に変換し得る。また、いくつかの実施態様では、コンピュータシステムは受信した画像を（たとえば、ダウンサンプリングの前または後で、いかなるダウンサンプリングとも独立して）カラーからグレースケールに変換する。コンピュータシステムは、受信した画像（および／または、ダウンサンプリングおよび色変換が行なわれた画像）を画像バッファ３０６に記憶し得、システムは以前に撮像された画像へのアクセスを有する。処理が行なわれる画像は、元の画像であろうとダウンサンプリングおよび色変換が行なわれた画像であろうと、Ｉ（ｘ，ｙ）と称される。
【００３８】
画像のどの部分が移動しているオブジェクトを表すかを判断することは、受信した画像を以前に受信した画像と比較することを含み得る。しかしながら、カメラが移動している場合、受信した画像および以前に受信した画像の全てまたは大半は、カメラが異なる時点で異なる位置に存在するために、異なり得る。したがって、受信した画像の視点から示されるように以前に受信した画像を「歪める（ｗａｒｐ）」ことは、役に立ち得る。このようにすることは、以下でさらに詳細に説明するように、カメラがどのように移動したかを特定するために双方の画像を分析することと、カメラの動きを示すまたは特定する変換を生成することとを含み得る。
【００３９】
ボックス３０８で、コンピュータシステムは、カメラの動きを推定しカメラの動きを示す変換を生成する。生成された変換は、少なくとも２つの画像を入力（たとえば、画像バッファからのＩおよびI_previous）として用いて生成された行列であり得る。この変換を、「H_interfram」と称し得る。このフレームからフレームへの動き行列は、ホモグラフィ変換行列であり得る。ホモグラフィ変換行列は、ある画像から次の画像への（たとえば、I_previousからＩへの）、シーンの移動またはシーンを撮像していたカメラの移動を表すことが可能な行列であり得る。
【００４０】
例示として、正方形が画像において９０度の角度の等しい長さの辺を有する（すなわち、正方形として表示される）ように、第１の画像が正方形を正方形の真正面から撮影した写真を表すと仮定する。ここで、次の画像が、正方形が斜めにされていくつかの側辺が他より長く９０度でない角度を有すると表示するように、カメラが一方の側に移動された（または、正方形そのものが移動された）と仮定する。第１の画像内の正方形の４つの端点の場所が第２の画像内の４つの端点の場所に対してマッピングされて、カメラまたはシーンがある画像から次の画像へとどのように移動したかを特定できる。
【００４１】
特定された、画像におけるこれらの端点の互いに対するマッピングは、撮像中のシーンに対するカメラの視点の動きを表すホモグラフィ変換行列を生成するために使用可能である。そのようなホモグラフィ変換行列を仮定すれば、システムは、たとえば公知のホモグラフィ変換法に従って第１のフレーム内の画素を異なる場所に移動することによって、第１の画像を生成されたホモグラフィ変換行列と合成して第２のフレームを再生成可能である。
【００４２】
上述のホモグラフィ変換行列は、カメラの平行移動だけでなく、回転、ズーミング、非剛体ロールシャッター歪みも表し得る。このように、ホモグラフィ変換行列は、８自由度のカメラの移動を表し得る。比較のために、いくつかの画像比較技術が平行運動（たとえば、アップ／ダウン移動および左／右移動）のみを説明する。
【００４３】
他の種類のホモグラフィ行列を使用可能であるが（および、ホモグラフィ行列が使用されない場合、またさらには行列が使用されない場合であっても、ある画像から別の画像への移動の他の数学的表現を使用可能である）、上述のホモグラフィ変換行列は３×３ホモグラフィ変換行列でもよい。システムは、次のように３×３行列（H_interframe）を決定し得る。最初に、コンピュータシステムは、現在の画像内の特徴点（端点とも称される）の組を特定し得る。ここで、これらの点は [x_i, y_i], i = 1….N と表すことができる（Ｎは特徴点の数である）。次に、コンピュータシステムは、以前のフレームにおいて対応する特徴点を特定し得る。ここで、対応する特徴点は [x_i, y_i] と表すことができる。なお、これらの点は、ＧＬ座標系内にあるものとして説明される（すなわち、ｘおよびｙは、フレーム中心を起点として−１〜１の範囲である）。ｘが０から画像幅の範囲でありｙが０から画像高さの範囲である画像画素座標系の中に点がある場合、これらの点をＧＬ座標系に変換可能である、または、得られた行列を変換して補償可能である。
【００４４】
上述のH_interfame行列は、９つの要素を含む３×３行列でもよい。
h1, h2, h3
・    H_interframe = h4, h5, h6
h7, h8, h9
H_interfameは、以下のように[x_i, y_i]を[x_i, y_i]に変換する。
・z_i’ * [x_i, y_i, 1]’ = H_interframe * [x_i, y_i, 1]’
・[x_i, y_i, 1]’は、[x_i, y_i, 1]ベクトルの転置行列である３×１ベクトルである。
・[x_i, y_i, 1]’は、[x_i, y_i, 1]ベクトルの転置行列である３×１ベクトルである。
・z_i’は換算係数である。
【００４５】
一組の対応する特徴点を想定した場合、行列を推定するためのアルゴリズムの例は、ftp://vista.eng.tau.ac.il/dropbox/SimonKolotov-Thesis/Articles/[Richard_Hartley_Andrew_Zisserman]_Multiple_View_G(BookFi.org).pdfおよびhttp://cvrs.whu.edu.cn/downloads/ebooks/Multiple%20View%20Geometry%20in%20Computer%20Vision%20(Second%20Edition).pdfから入手可能なコンピュータビジョンの書籍「Hartley, R., Zisserman, A.: Multiple View Geometry in Computer Vision. Cambridge University Press (2000)」のアルゴリズム４．１（９頁）およびアルゴリズム４．６（１２３頁）に記載されている。
【００４６】
上述のアルゴリズム４．１は、以下の通りである。目的 n ≧ 4 2D to 2D点対応 {xi ⇔ x’i} を想定して、２Ｄホモグラフィ行列Ｈをx’i = Hxiと決定する。アルゴリズム （ｉ）各対応xi ⇔ x’I ごとに、（４．１）から行列Aiを計算する。一般に、最初の２行のみを使用する必要がある。（ｉｉ）n 2 x 9 行列を１つの2n x 9 行列 Aにアセンブルする。（ｉｉｉ）ＡのＳＶＤを得る（Ａ４．４節（５８５頁））。最小特異値に対応する単位単数ベクトルは、解ｈである。具体的には、対角線下方に降順に配列された正の対角入力を有するＤ対角線のA = UDVTの場合、ｈはＶの最終列である。（ｉｖ）行列Ｈは、（４．２）にあるようにｈから求められる。
【００４７】
上述のアルゴリズム４．６は、以下の通りである。目的 ２つの画像間の２Ｄホモグラフィを計算する。アルゴリズム （ｉ）注目点：各画像における注目点を計算する。（ｉｉ）推定対応：強度近傍の近接性および類似性に基づいて、一組の注目点一致を計算する。（ｉｉｉ）RANSACロバスト推定：Ｎサンプルについて繰り返す。ここで、Ｎはアルゴリズム４．５に記載されているように適応的に決定される。（ａ）４つの対応のランダムサンプルを選択し、ホモグラフィＨを計算する。（ｂ）推定対応ごとに距離d⊥を算出する。（ｃ）d⊥ < t = √5.99 σ画素についての対応数によって、Ｈと一致するインライア（inliers）数を計算する。最大数のインライアを有するＨを選択する。タイ（ｔｉｅ）の場合、インライアの最低標準偏差を有する解を選択する。（ｉｖ）最適予測：ＭＬ費用関数を最小限にすることによって、インライアと分類された全ての対応からＨを再予測する。（ｖ）誘導マッチング：推定されたＨを用いてさらなる注目点対応を次に決定して、転送された点の位置について探索領域を定義する。対応数が安定するまで、最後の２つのステップを繰り返すことができる。
【００４８】
上述のアルゴリズム４．５は次の通りである。N = ∞, sample count= 0.  While N > sample count Repeat.  -Choose a sample and count the number of inliers.  - Set  = 1 - (number of inliers)/(total number of points).  - Set N from  and (4.18) with p = 0.99.  - Increment the sample count by 1.  Terminate.
ボックス３１０で、コンピュータシステムは現在の画像を平滑化する。たとえば、コンピュータシステムは、ガウスフィルタで入力画像を平滑化して平滑化された入力画像（I_smoothed）を生成し得る。入力画像の平滑化によってプロセスの頑強性を増すことが可能である。なぜなら、画像のダウンサンプリングおよび変換によって、平滑化で削除または削減可能な折り返しアーティファクトまたは他の雑音が生成され得るからである。コンピュータシステムは、以前に受信された画像に対するこのプロセスの過去の繰り返しから平滑化された画像を記憶する平滑化された画像バッファ３１２に、平滑化された画像を記憶可能である。本開示では、画像に対して行なわれる動作の説明は、画像または平滑化された画像に対して行なわれる動作を含み得る。
【００４９】
ボックス３１６で、コンピュータシステムは変換行列を使用して以前に平滑化された画像を（たとえば、I_smoothed_previousをI_smoothed_previous_warpedに歪めることによって）新しい画像に歪める。こうすることによって、現在の画像が撮影された時からのカメラの場所に一致するように、以前の画像が撮影された時からカメラの場所が効果的にシフトされる。したがって、歪めたあとは、背景、I_smoothed_previous_warped および I_smoothedの静止した部分は互いにほぼ一致する。これにより、コンピュータシステムは、画像を比較して画像のどの部分が移動中の背景でない部分であるか特定する。コンピュータシステムは、H_interframeを用いてI_smoothed_previousの座標から、I_smoothed_previous_warpedに関する座標を次のように決定可能である。
・z’ * [x’, y’, 1]’ = H_interframe * [x, y, 1]’
・[x, y, 1]’は、I_smoothed_previousにおける座標を表す３×１ベクトルである。
・[x’, y’, 1]’は、I_smoothed_previous_warpedにおける座標を表す３×１ベクトルである。
・z'は換算係数である。
I_smoothed_previousにおける画素[x, y]ごとに、コンピュータシステムは、上述の変換を用いてI_smoothed_previous_warpedにおける位置[x’, y’]を決定することが可能であり、コンピュータシステムは、I_smoothed_previousにおける[x, y]からI_smoothed_previous_warpedにおける[x’, y’]に画素値をコピー可能である。
【００５０】
ボックス３１８で、コンピュータシステムは、現在の画像と歪められた過去の画像と間の時間勾配（たとえば、画素間の差）を算出する。コンピュータシステムは、これを画素ごとに以下のように行なう。
・I_t(x,y) = I_smoothed(x,y) -I_smoothed_prevous_warped(x,y)
時間勾配値はゼロから遠いほど、その場所においてある画像から次の画像へとより変化する。したがって、より大きい数は（少なくとも絶対値がとられると）、移動が起こった画像の部分を特定し得る。
【００５１】
ボックス３１８で、コンピュータシステムはさらにまたは代替的に、画像にわたって１つ以上の方向における変化率を算出する（たとえば、空間勾配）。コンピュータシステムは、ｘ方向においてこれを次のように行なう。
・I_x(x, y) = (I_smoothed(x+1,y) -I_smoothed(x-1,y)) / 2.
コンピュータシステムは、ｙ方向においてこれを次のように行なう。
・I_y(x, y) = (I_smoothed(x,y+1) - I_smoothed(x,y-1)) / 2.
変化率は、画素があまり変化していない画像の一部に位置していた場合よりも、画素がエッジまたは境界線上に沿っている場合により大きくなる（たとえば、なぜなら、画素がエッジまたは境界線上に沿っているときに、左側の画素と右側の画素との間で画素強度がさらに大きく変化し得るため）。したがって、より大きな値がエッジを特定し得る。
【００５２】
ボックス３３０で、コンピュータシステムは点の格子を計算し、この格子から、パッチの格子が生成され得る。コンピュータシステムは、i=1 → gridWidthおよびj=1 → gridHeightを用いて格子p(i,j)を算出し得る。格子の算出は、画像のエッジにおけるマージン、たとえばエッジにおける画像の３パーセントを除外し得る。格子点は等間隔で、たとえば、ｘ方向に沿って４画素離して、かつ、ｙ方向に沿って４画素離して、間隔をあけて配置され得る。例示として、フレームサイズが３２０×１８０の場合、コンピュータシステムは左側および右側で１０画素（３２０*３％＝１０画素）、および、上部および下部で６画素（２４０*３％＝６画素）を除外可能である。これにより、gridWidth=75およびgridHeight=42を有する格子が設けられる。
【００５３】
格子における点p(i,j)ごとに、コンピュータシステムは、点の場所に基づくI_smoothedからパッチを特定し得る（たとえば、パッチは点の中心に位置し得る）（ボックス３３２）。例示として、パッチは７のpatchWidthおよび７のpatchHeightを有し得る。パッチは互いに重なっていても互いに間隔をおいて配置されていてもよい、または、互いに隣接していても接していてもよい（たとえば、チェッカーボードのように）。
【００５４】
ボックス３３４で、コンピュータシステムは、パッチごとに１つ以上の統計値を計算する。これらの統計値は、以前に算出された時間勾配および空間勾配を使用し得る。
【００５５】
コンピュータシステムが算出し得る第１の統計値は、たとえば次のように、パッチの水平方向の変化率の平均値である。
・Ixxは、パッチ内の全ての画素に関するI_x(x,y) * I_x(x,y)の平均値である。
この算出は、滑らかな変化にわたる垂直エッジの存在を強調するために、水平空間勾配値を乗算し得る。
【００５６】
コンピュータシステムが算出し得る第２の統計値は、たとえば次のように、パッチ垂直方向の変化率の平均値である。
・Iyyは、パッチ内のすべての画素に関するI_y(x,y) * I_y(x,y)の平均値である。
この算出は、滑らかな変化にわたる水平方向エッジの存在を強調するために、垂直空間勾配値を乗算し得る。
【００５７】
コンピュータシステムが算出し得る第３の統計値は、たとえば次のように、パッチの対角線上の変化率の平均値である。
・Ixyは、パッチ内のすべての画素に関するI_x(x,y) * I_y(x,y)の平均値である。
【００５８】
コンピュータシステムが算出し得る第４の統計値は、所与の位置における水平空間勾配を当該位置における時間勾配と組み合わせることによって画像内で移動している垂直エッジを特定する値であり、当該点で垂直エッジが移動したかどうかを特定する値を次のように生成する。
・Ixtは、パッチ内の全ての画素に関するI_x(x,y) * I_t(x,y)の平均値である。
【００５９】
コンピュータシステムが算出し得る第５の統計値は、所与の位置における垂直空間勾配を当該位置における時間勾配と組み合わせることによって画像内で移動している水平エッジを特定する値であり、たとえば次のように、水平エッジが当該点で移動したかどうかを特定する値を生成する。
・Iytは、パッチ内の全ての画素に関するI_y(x,y) * I_t(x,y)の平均値である。
統計値の計算は、完全な画像を使用することによって最適化可能である。
【００６０】
ボックス３３８で、コンピュータシステムは、（たとえば、テクスチャを持っていないであろう、単に空白を表す画像の一部であり得るパッチを無視することによって、）テクスチャを有するパッチを選択する。すなわち、コンピュータシステムは、各パッチが十分なテクスチャを有しているかを判断し得、有していないものについて、動きスコア「０」をパッチに設定し得る（ボックス３４０）。テクスチャを有するパッチを選択するためのプロセスは、パッチのヘッセ２×２行列を特定することを含み得る。
【００６１】
{Ixx Ixy
Ixy Iyy}
コンピュータシステムは、行列（det）の行列式を決定し得る。より大きな固有値をmax_eigenvalueと、より小さな固有値をmin_eigenvalueと称し得る。コンピュータシステムは、次の条件を満たす場合はパッチがテクスチャを有していると選択し得る。
・(条件1) det > 0.
行列式は、画像内のエッジがそれらに対して少なくともあまり大きくないｘ成分およびｙ成分を有する場合は、ゼロより大きくてもよい（たとえば、エッジは完全に平行または完全に垂直ではなく、水平方向または垂直方向それぞれにおける動きを特定することは困難な場合がある）。
・（条件２）min_eigenvalue > EigenvalueThreshold * frameWidth * frameHeight.
この条件は、ある所与の方向において少なくともエッジがいくつか存在することを保証し得る。EigenvalueThresholdは手動で調整され、値の例は０．００２５であり得る。
・（条件３）max_eigenvalue < EigenvalueRatioThreshold * min_eigenvalue.
この条件は、主要方向におけるエッジが他の方向のエッジよりも大きくないであろうことを保証し得る。EigenvalueRatioThresholdも手動で調整され、値の例は５であり得る。パッチが上述の条件チェックを満たせなかった場合、コンピュータシステムは、当該パッチに関する動きベクトルをmotion_x = motion_y = 0になるように設定できる。
【００６２】
ボックス３４４で、十分なテクスチャを有していると特定されるパッチごとに、コンピュータシステムは、たとえば次のように当該パッチに関する動きベクトルを算出することによって、パッチ（たとえば、パッチにおいて画素で示されるオブジェクト）の動きを推定する。
・motion_x = (-Ixt * Iyy + Iyt * Ixy) / det.
・motion_y = (Ixt * Ixy - Iyt * Ixx) / det.
いくつかの例では、コンピュータシステムは、最適なフロー推定にLucas-Kanade差動法を適用する。
【００６３】
ボックス３４６で、コンピュータシステムはパッチごとに動きスコアを計算する。動きスコアは組み合わされて動きスコアマップ３５２を生成可能である。動きスコアマップは、次のように算出可能である。
・score(i,j) = 1 - exp(- (motion_x(i,j) * motion_x(i,j) + motion_y(i,j) *  motion_y(i,j)) / motionParam).
この式で、motionParamはユーザによって手動で設定可能であり、１０の値を有し得る。いくつかの例では、コンピュータシステムはスコアの集合（たとえば、パッチごとに１つのスコア、そのうちのいくつかは０の値を有している）をより小さい動きスコアマップscore_small(k,l), k=1 → scoreWidth, l=1 → scoreHeightにダウンサンプリング可能である（ボックス３４８）。スコアマップをダウンサンプリングする内挿法の例は、複数の点のウィンドウの平均をとって１つの値を得ることである。たとえば、３でダウンサンプリングするために、すべての３×３ウィンドウの平均をとって１つの画素を得る。したがって、コンピュータシステムは、スコアの５０×５０格子ではなくスコアの１０×１０格子となり得る。動きスコアマップに関する本開示の説明は、動きスコアマップまたはそのダウンサンプリングされたマップと呼ぶことができる。
【００６４】
ボックス３５４で、コンピュータシステムは次のようにスコアマップのエントロピー値を算出する。
・total_score = sum(score_small(k,l) + Epsilon) for all k and l.
・p(k,l) = (score_small(k,l) + Epsilon) / total_score).
・entropy = - sum(Log(p(k,l)*P(k,l)).
イプシロンは、０が原因で起こる問題を避けるために小さな数でもよい。エントロピー値は、画像内の不規則を特定可能であり、画像を通じた移動の差を示し得る。たとえば、（たとえば、発進している大型トラックの側にカメラが焦点を合わせたために）画像の全てまたは大半が移動している場合、画像の全てまたは大半が移動しているためにそれほど不規則は生じない。その一方で、画像内に走り回っている複数の人がいる場合は、大きな不規則および高エントロピーが存在する。なぜなら、画像の多くの部分が移動しており、多くの部分が移動していないからである。エントロピーは、画像の少数の部分に動きが非常に集中している場合は大きくなり得る。
【００６５】
コンピュータシステムは、生成されたエントロピー値を用いて動き顕著性スコアを生成し得る。このスコアは、画像内の動きに対する重要性を特定し得る。motion_saliency_scoreは、以下の非線形マッピング機能を用いて生成可能な、０〜１の間の値であり得る。
・motion_saliency_score = 1 - exp(entropy*saliencyParam1) * saliencyParam2.
・saliencyParam1 は手動で調整可能である。
・saliencyParam2 は手動で調整可能である。
【００６６】
コンピュータシステムは、別のプロセスまたはデバイスに動きが画像内でどれぐらい顕著であるかを知らせるために動き顕著性スコア３５６を出力する。また、コンピュータシステムは、別のプロセスまたはデバイスに動きがフレーム内のどこで発生しているかを知らせるために動きスコアマップを出力し得る。
【００６７】
上述の説明において、以前に受信された画像は、後で受信された画像のカメラ位置に一致するように歪められ、その後、たとえば空間勾配の算出などのさまざまな動作が後で受信された画像に対して行なわれる。当業者であれば、これらのプロセスを２つの画像のうちの他方に適用することによって同様の結果を得ることができると理解できるであろう。たとえば、後で受信された画像は、以前に受信した画像の位置に一致するように歪められる画像であり得、空間勾配の算出などの後に続く動作を以前に受信された画像に対して行なうことができる。さらに、以前に受信された画像であろうと後で受信された画像であろうと、これらの動作（たとえば、空間勾配）を歪められた画像に対して行なうことができる。したがって、本開示の一部は第１の画像「または」第２の画像に対して行なわれている動作を参照可能であり、動き推定機構が行なわれ得るさまざまな態様を示す。
【００６８】
さまざまな実施態様において、別の動作「に応じて」または別の動作の「結果として」実行される動作（たとえば決定または特定）は、先行する動作が不成功の場合（たとえば、決定がなされなかった場合）は、実行されない。「自動的に」実行される動作は、ユーザの介入（たとえば、介入するユーザ入力）なしで実行される動作である。本明細書において条件の表現を用いて記載されている特徴は、任意である実施態様を説明している場合がある。いくつかの例において、第１の装置から第２の装置への「送信」は、第１の装置がデータを第２の装置による受信のためにネットワークに置くことを含むが、第２の装置が当該データを受信することを含まない場合がある。逆に、第１の装置からの「受信」は、ネットワークからデータを受信することを含み得るが、第１の装置がデータを送信することを含まない場合がある。
【００６９】
コンピュータシステムが「決定する」ことは、コンピュータシステムが、別のデバイスに対し、その決定を行ない結果を当該コンピュータシステムに提供することを要求することを含み得る。加えて、コンピュータステムが「表示する」または「提示する」ことは、コンピュータシステムが、参照された情報を別のデバイスに表示または提示させるためにデータを送信することを含み得る。
【００７０】
図４は、本明細書に記載のシステムおよび方法を実現するために、クライアントまたはサーバまたは複数のサーバとして使用し得る、コンピューティングデバイス４００、４５０のブロック図である。コンピューティングデバイス４００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、およびその他適切なコンピュータ等の、さまざまな形態のデジタルコンピュータを代表することを意図している。コンピューティングデバイス４５０は、携帯情報端末、携帯電話、スマートフォン、およびその他同様のコンピューティングデバイス等の、さまざまな形態のモバイルデバイスを代表することを意図している。本明細書に示される構成要素、それらの接続および関係、ならびに機能は、専ら例示を意図しているのであって、本明細書において記載されているおよび／またはクレームされている実施態様を限定することを意図しているのではない。
【００７１】
コンピューティングデバイス４００は、プロセッサ４０２と、メモリ４０４と、記憶装置４０６と、メモリ４０４および高速拡張ポート４１０に接続している高速インターフェイス４０８と、低速バス４１４および記憶装置４０６に接続している低速インターフェイス４１２とを含む。これらのコンポーネント４０２、４０４、４０６、４０８、４１０、および４１２の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ４０２は、コンピューティングデバイス４００内で実行される命令を処理可能であり、これらの命令は、ＧＵＩのためのグラフィック情報を、高速インターフェイス４０８に結合されたディスプレイ４１６等の外部入出力デバイス上に表示するために、メモリ４０４内または記憶装置４０６上に記憶された命令を含む。他の実施態様では、複数のプロセッサおよび／または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス４００が接続されてもよく、各デバイスは（たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要な動作の一部を提供する。
【００７２】
メモリ４０４は、情報をコンピューティングデバイス４００内に記憶する。一実施態様では、メモリ４０４は１つまたは複数の揮発性メモリユニットである。別の実施態様では、メモリ４０４は１つまたは複数の不揮発性メモリユニットである。メモリ４０４はまた、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
【００７３】
記憶装置４０６は、コンピューティングデバイス４００のための大容量記憶を提供可能である。一実施態様では、記憶装置４０６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報担体において有形に具体化され得る。コンピュータプログラムプロダクトはまた、実行されると上述のような１つ以上の方法を行なう命令を含んでいてもよい。情報担体は、メモリ４０４、記憶装置４０６、またはプロセッサ４０２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【００７４】
高速コントローラ４０８はコンピューティングデバイス４００のための帯域幅集約的な動作を管理し、一方、低速コントローラ４１２はより低い帯域幅集約的な動作を管理する。機能のそのような割当ては例示にすぎない。一実施態様では、高速コントローラ４０８は、メモリ４０４、ディスプレイ４１６に（たとえば、グラフィックスプロセッサまたはアクセラレータを介して）、および、さまざまな拡張カード（図示せず）を受付け得る高速拡張ポート４１０に結合される。この実施態様では、低速コントローラ４１２は、記憶装置４０６および低速拡張ポート４１４に結合される。さまざまな通信ポート（たとえば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、イーサネット（登録商標）、無線イーサネット）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ等の１つ以上の入出力デバイスに、または、スイッチもしくはルータ等のネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【００７５】
コンピューティングデバイス４００は、図に示すように多くの異なる形態で実現されてもよい。たとえば、標準サーバ４２０として、またはそのようなサーバのグループで複数回実現されてもよい。また、ラックサーバシステム４２４の一部として実現されてもよい。加えて、ラップトップコンピュータ４２２等のパーソナルコンピュータにおいて実現されてもよい。これに代えて、コンピューティングデバイス４００からのコンポーネントは、デバイス４５０等のモバイルデバイス（図示せず）における他のコンポーネントと組合されてもよい。そのようなデバイスの各々は、コンピューティングデバイス４００、４５０のうちの１つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス４００、４５０で構成されてもよい。
【００７６】
コンピューティングデバイス４５０は、数あるコンポーネントの中でも特に、プロセッサ４５２と、メモリ４６４と、ディスプレイ４５４等の入出力デバイスと、通信インターフェイス４６６と、トランシーバ４６８とを含む。デバイス４５０にはまた、追加の記憶容量を提供するために、マイクロドライブまたは他のデバイス等の記憶装置が設けられてもよい。コンポーネント４５０、４５２、４６４、４５４、４６６、および４６８の各々は、さまざまなバスを使用して相互接続されており、当該コンポーネントのうちのいくつかは、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。
【００７７】
プロセッサ４５２は、メモリ４６４に記憶された命令を含む、コンピューティングデバイス４５０内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。加えて、プロセッサは多数のアーキテクチャのうちのいずれかを用いて実現されてもよい。たとえば、プロセッサは、ＣＩＳＣ（Complex Instruction Set Computer：複合命令セットコンピュータ）プロセッサ、ＲＩＳＣ（Reduced Instruction Set Computer：縮小命令セットコンピュータ）プロセッサ、またはＭＩＳＣ（Minimal Instruction Set Computer：最小命令セットコンピュータ）プロセッサであってもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス４５０が実行するアプリケーション、およびデバイス４５０による無線通信の制御といった、デバイス４５０の他のコンポーネント同士の連携を提供してもよい。
【００７８】
プロセッサ４５２は、ディスプレイ４５４に結合された制御インターフェイス４５８およびディスプレイインターフェイス４５６を介してユーザと通信してもよい。ディスプレイ４５４は、たとえば、ＴＦＴ  ＬＣＤ（Thin-Film-Transistor Liquid Crystal Display：薄膜トランジスタ液晶ディスプレイ）、またはＯＬＥＤ（Organic Light Emitting Diode：有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス４５６は、ディスプレイ４５４を駆動してグラフィカル情報および他の情報をユーザに提示するための適切な回路を含んでいてもよい。制御インターフェイス４５８は、ユーザからコマンドを受信し、それらをプロセッサ４５２に送出するために変換してもよい。加えて、デバイス４５０と他のデバイスとの近接エリア通信を可能にするために、外部インターフェイス４６２がプロセッサ４５２と通信した状態で設けられてもよい。外部インターフェイス４６２は、たとえば、ある実施態様では有線通信を提供し、他の実施態様では無線通信を提供してもよく、複数のインターフェイスが使用されてもよい。
【００７９】
メモリ４６４は、情報をコンピューティングデバイス４５０内に記憶する。メモリ４６４は、１つもしくは複数のコンピュータ読取可能媒体、１つもしくは複数の揮発性メモリユニット、または、１つもしくは複数の不揮発性メモリユニットのうちの１つ以上として実現されてもよい。拡張メモリ４７４が設けられて拡張インターフェイス４７２を介してデバイス４５０に接続されてもよく、拡張インターフェイス４７２は、たとえばＳＩＭＭ（Single In Line Memory Module：シングルインラインメモリモジュール）カードインターフェイスを含んでいてもよい。そのような拡張メモリ４７４は、デバイス４５０に余分の記憶スペースを提供してもよく、または、デバイス４５０のためのアプリケーションまたは他の情報も記憶してもよい。具体的には、拡張メモリ４７４は、上述のプロセスを実行または補足するための命令を含んでいてもよく、安全な情報も含んでいてもよい。このため、たとえば、拡張メモリ４７４はデバイス４５０のためのセキュリティモジュールとして設けられてもよく、デバイス４５０の安全な使用を許可する命令でプログラミングされてもよい。加えて、ハッキング不可能な態様でＳＩＭＭカード上に識別情報を乗せるといったように、安全なアプリケーションが追加情報とともにＳＩＭＭカードを介して提供されてもよい。
【００８０】
メモリはたとえば、以下に説明されるようなフラッシュメモリおよび／またはＮＶＲＡＭメモリを含んでいてもよい。一実施態様では、コンピュータプログラムプロダクトが情報担体において有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような１つ以上の方法を実行する命令を含む。情報担体は、メモリ４６４、拡張メモリ４７４、またはプロセッサ４５２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体であり、たとえばトランシーバ４６８または外部インターフェイス４６２を通して受信されてもよい。
【００８１】
デバイス４５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス４６６を介して無線通信してもよい。通信インターフェイス４６６は、とりわけ、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳ、またはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳといった、さまざまなモードまたはプロトコル下での通信を提供してもよい。そのような通信は、たとえば無線周波数トランシーバ４６８を介して生じてもよい。加えて、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ(登録商標）、または他のそのようなトランシーバ（図示せず）等を使
用して、短距離通信が生じてもよい。加えて、ＧＰＳ（Global Positioning System：全
地球測位システム）レシーバモジュール４７０が、追加のナビゲーション関連および位置関連無線データをデバイス４５０に提供してもよく、当該データは、デバイス４５０上で実行されるアプリケーションによって適宜使用されてもよい。
【００８２】
デバイス４５０はまた、ユーザから口頭情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック４６０を使用して、音声通信してもよい。音声コーデック４６０はまた、たとえばデバイス４５０のハンドセットにおいて、スピーカを介すなどして、ユーザに聞こえる音を生成してもよい。そのような音は、音声電話通話の音を含んでいてもよく、録音された音（たとえば、音声メッセージ、音楽ファイル等）を含んでいてもよく、デバイス４５０上で動作するアプリケーションが生成する音も含んでいてもよい。
【００８３】
コンピューティングデバイス４５０は、図に示すように多くの異なる形態で実現し得る。たとえば、携帯電話４８０として実現されてもよい。また、スマートフォン４８２、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【００８４】
加えて、コンピューティングデバイス４００または４５０は、ユニバーサルシリアルバス（Universal Serial Bus：ＵＳＢ）フラッシュドライブを含み得る。ＵＳＢフラッシュドライブは、オペレーティングシステムおよびその他のアプリケーションを記憶し得る。ＵＳＢフラッシュドライブは、別のコンピューティングデバイスのＵＳＢポートに挿入し得るＵＳＢコネクタまたは無線送信機等の入出力コンポーネントを含み得る。
【００８５】
本明細書に記載のシステムおよび手法のさまざまな実施態様は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣｓ（application specific integrated circuits：特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組合わせで実現することができる。これらのさまざまな実施態様は、少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムにおける実施態様を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信するとともに、これらにデータおよび命令を送信するように結合されてもよい。
【００８６】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）は、プログラマブルプロセッサのための機械命令を含み、高レベル手続き型および／またはオブジェクト指向プログラミング言語で、および／またはアセンブリ／機械言語で実現することができる。本明細書で使用する、「機械読取可能媒体」、「コンピュータ読取可能媒体」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置および／またはデバイス（たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（Programmable Logic Devices：ＰＬＤｓ））を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００８７】
ユーザとのインタラクションを提供するために、本明細書に記載のシステムおよび手法は、情報をユーザに表示するためのディスプレイデバイス（たとえば、ＣＲＴ（cathode ray tube：陰極線管）またはＬＣＤ（liquid crystal display：液晶ディスプレイ）モニタ）と、ユーザが入力をコンピュータに提供できるようにするキーボードおよびポインティングデバイス（たとえば、マウスまたはトラックボール）とを有するコンピュータ上で実現することができる。他の種類のデバイスを使用してユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されてもよい。
【００８８】
本明細書に記載のシステムおよびテクニックは、（たとえばデータサーバとしての）バックエンドコンポーネントを含む、（たとえばアプリケーションサーバとしての）ミドルウェアコンポーネントを含む、または、フロントエンドコンポーネント（たとえば、ユーザが本明細書に記載のシステムおよびテクニックの実施態様とやりとりできるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ）を含む、もしくは、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピュータシステムにおいて実現することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信（たとえば通信ネットワーク）によって相互接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク（local area network: LAN）、ワイドエリアネットワーク（wide area network: WAN）、（アドホックまたは静的メンバを有する）ピアツーピアネットワークグリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
【００８９】
コンピュータシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介してやりとりする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント‐サーバ関係を有するコンピュータプログラムによって生じる。
【００９０】
いくつかの実施態様を詳細に説明してきたが、その他の修正形態が可能である。また、本明細書に記載のシステムおよび方法を実施するためのその他の機構を使用することもできる。加えて、図面に示されている論理フローは、所望の結果を得るために、示されている通りの順序または一連の順序である必要はない。記載されているフローにその他のステップを設けるまたは記載されているフローからいくつかのステップを削除する場合もあり、記載されているシステムにその他のコンポーネントを追加するまたは記載されているシステムからコンポーネントを削除する場合もある。したがって、その他の実施態様は、以下の特許請求の範囲に含まれる。
【図１】
2019505868.tif 000003
【図２】
2019505868.tif 000004
【図３Ａ】
2019505868.tif 000005
【図３Ｂ】
2019505868.tif 000006
【図４】
2019505868.tif 000007
【手続補正書】
【提出日】平成30年10月12日(2018.10.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像における動きを検出するためにコンピュータにより実現される方法であって、
コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した部分を決定することを備える、コンピュータにより実現される方法。
【請求項２】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１に記載のコンピュータにより実現される方法。
【請求項３】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項４】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１または２に記載のコンピュータにより実現される方法。
【請求項５】
前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した前記部分を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１〜４のいずれか１項に記載のコンピュータにより実現される方法。
【請求項６】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項５に記載のコンピュータにより実現される方法。
【請求項７】
前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項５または６に記載のコンピュータにより実現される方法。
【請求項８】
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像の前記第２の画像に対する比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１〜７のいずれか１項に記載のコンピュータにより実現される方法。
【請求項９】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１〜８のいずれか１項に記載のコンピュータにより実現される方法。
【請求項１０】
１つ以上のプロセッサによって実行されると動作を実行させる命令を含む１つ以上のプログラムであって、前記動作は、
コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した部分を決定することを備える、１つ以上のプログラム。
【請求項１１】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１０に記載の１つ以上のプログラム。
【請求項１２】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１０または１１に記載の１つ以上のプログラム。
【請求項１３】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１０または１１に記載の１つ以上のプログラム。
【請求項１４】
前記動作は、前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記動作は、前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した部分を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１０〜１３のいずれか１項に記載の１つ以上のプログラム。
【請求項１５】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項１４に記載の１つ以上のプログラム。
【請求項１６】
前記動作は、前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項１４または１５に記載の１つ以上のプログラム。
【請求項１７】
前記動作は、
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像の前記第２の画像に対する比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１０から１６のいずれか１項に記載の１つ以上のプログラム。
【請求項１８】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１０から１７のいずれか１項に記載の１つ以上のプログラム。
【請求項１９】
１つ以上のプロセッサと、前記１つ以上のプロセッサによって実行されると動作を実行させる命令を含むコンピュータプログラムを記憶するための記憶装置とを備えるコンピュータシステムであって、前記動作は、
前記コンピュータシステムが、カメラによって撮像された第１の画像を受信することと、
前記コンピュータシステムが、前記カメラによって撮像された第２の画像を受信することと、
前記コンピュータシステムが、前記第１の画像と前記第２の画像とを用いて、前記第１の画像と前記第２の画像とに反映されたシーンに対する、前記第１の画像から前記第２の画像への前記カメラの移動を示す数学的変換を生成することと、
前記コンピュータシステムが、前記第１の画像と前記数学的変換とを用いて、前記第２の画像が撮像されたときの前記カメラの位置から前記第１の画像によって撮像された前記シーンを表す修正された前記第１の画像を生成することとを備え、前記第１の画像が撮像されたときの前記カメラの位置は前記第２の画像が撮像されたときの前記カメラの前記位置と異なり、
前記コンピュータシステムが、前記修正された前記第１の画像を前記第２の画像と比較することによって、前記第１の画像または前記第２の画像のうち前記シーンにおけるオブジェクトの位置が移動した部分を決定することを備える、コンピュータシステム。
【請求項２０】
前記第２の画像は、前記カメラが一連の画像における前記第１の画像を撮像した後で前記一連の画像において前記カメラが撮像した画像である、請求項１９に記載のコンピュータシステム。
【請求項２１】
前記修正された前記第１の画像を前記第２の画像と比較することは、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することを含む、請求項１９または２０に記載のコンピュータシステム。
【請求項２２】
前記修正された前記第１の画像を前記第２の画像と比較することは、
前記コンピュータシステムが、前記第１の画像または前記第２の画像の空間勾配を算出してオブジェクトのエッジが存在する前記第１の画像または前記第２の画像の部分を特定することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との間の画素差を特定することと、
前記コンピュータシステムが、（ｉ）前記算出された空間勾配が、前記第１の画像または前記第２の画像の部分に前記オブジェクトの前記エッジが存在すると示す結果として、および（ｉｉ）前記第１の画像の部分において、前記修正された前記第１の画像と前記第２の画像との間に特定された画素差が存在する結果として、前記第１の画像または前記第２の画像のうち前記オブジェクトの移動しているエッジが存在する部分を決定することとを含む、請求項１９または２０に記載のコンピュータシステム。
【請求項２３】
前記コンピュータシステムが、前記第１の画像または前記第２の画像のうち移動を分析するための複数の領域の格子を特定することをさらに備え、前記複数の領域の前記格子は複数の行を含み、前記複数の行の各々が複数の前記複数の領域を含み、
前記コンピュータシステムが、前記複数の領域のうちの２つ以上に関して、それぞれの領域の計算された動きを特定する値を決定することをさらに備え、
前記第１の画像または前記第２の画像のうち前記シーン内の前記オブジェクトにおける前記位置が移動した前記位置を決定することは、前記複数の領域のうちの特定の領域に関して計算された動きを特定する値を決定することを含む、請求項１９〜２２のいずれか１項に記載のコンピュータシステム。
【請求項２４】
前記複数の領域の前記格子内の全ての前記領域は、同じサイズおよび同じ形状を有する、請求項２３に記載のコンピュータシステム。
【請求項２５】
前記コンピュータシステムが、それぞれの領域に関する前記計算された動きを特定した前記値のうちの少なくともいくつかを組合わせることによって、前記第１の画像と前記第２の画像との間の一般的な移動レベルを特定する値を生成することをさらに備える、請求項２３または２４に記載のコンピュータシステム。
【請求項２６】
前記コンピュータシステムが、複数の他の画像に加えて、少なくとも前記第１の画像と前記第２の画像とを含む一連の画像を受信することと、
前記コンピュータシステムが、前記修正された前記第１の画像と前記第２の画像との比較に基づいて、前記第１の画像または前記第２の画像によって反映された移動レベルを決定することと、
前記コンピュータシステムが、前記第１の画像または前記第２の画像によって反映された決定された前記移動レベルに基づいて、
（ｉ）少なくともユーザ入力が前記第１の画像または前記第２の画像をコンピュータストレージから取り除くまで、前記コンピュータストレージに前記第１の画像または前記第２の画像を保持するように、および
（ｉｉ）前記複数の他の画像のうちの少なくとも１つをストレージから取り除くと規定するユーザ入力を受信することなく、ストレージから前記複数の他の画像のうちの前記少なくとも１つを取り除くように
決定することとをさらに備える、請求項１９〜２５のいずれか１項に記載のコンピュータシステム。
【請求項２７】
前記カメラの移動を示す前記数学的変換はホモグラフィ変換行列を含む、請求項１９〜２６のいずれか１項に記載のコンピュータシステム。
【国際調査報告】
2019505868.tif 000008
2019505868.tif 000009
2019505868.tif 000010
2019505868.tif 000011