(57)【特許請求の範囲】
【請求項１】
画像を処理する方法であって、
１つまたは複数のプロセッサと、メモリと、カメラとを有する装置で、
前記カメラによって取り込まれる、少なくとも１つの第１の映像フレームおよび１つの第２の映像フレームを含んだ一連の映像フレームを取得することであって、前記第１の映像フレームは、前記第２の映像フレームより前に取り込まれる、一連の映像フレームを取得することと、
前記第１の映像フレームおよび前記第２の映像フレームの運動推定を行うことによって前記第２の映像フレームと関連付けられた、前記カメラの第１の運動状態を決定することを含んで、前記一連の映像フレームの各映像フレームと関連付けられた、前記カメラの個々の運動状態を決定することと、
前記一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移を前記カメラが受けたかどうかを決定することと、
前記一連の映像フレームのうちの前記２つの連続した映像フレームを取り込む間に、前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移を前記カメラが受けたという決定により、前記２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することと
を含む方法。
【請求項２】
前記運動推定を行うことは、
前記第１の映像フレームの中心ブロックを検出することと、
前記第２の映像フレームにおいて、所定のマッチング基準により前記第１の映像フレームの前記中心ブロックと一致する前記第２の映像フレームの一致ブロックを特定することと
を含む、請求項１に記載の方法。
【請求項３】
前記第２の映像フレームの前記一致ブロックを特定することは、
前記第１の映像フレームの前記中心ブロックと同一の領域を有する前記第２の映像フレームの中心ブロックを選択することと、
前記第２の映像フレームの前記中心ブロックと前記第１の映像フレームの前記中心ブロックとの間の差分値を計算することと、
前記第２の映像フレーム内の１つまたは複数のブロックを選択することであって、前記１つまたは複数のブロックのそれぞれは、前記第２の映像フレームの前記中心ブロックと同一の領域を有し、前記１つまたは複数のブロックは、近似アルゴリズムを使用して前記第２の映像フレームから選択される、１つまたは複数のブロックを選択することと、
前記第２の映像フレームの前記１つまたは複数のブロックのそれぞれと前記第１の映像フレームの前記中心ブロックとの間の差分値を計算することと、
前記第１の映像フレームの前記中心ブロックとの差分値が最も小さい前記第２の映像フレームの前記中心ブロックおよび前記１つまたは複数のブロックのうちの１つを、前記第２の映像フレームの前記一致ブロックとして特定することと
を含む、請求項２に記載の方法。
【請求項４】
前記運動推定を行うことは、
前記第２の映像フレームの前記中心ブロックを始点とし、前記第２の映像フレームの前記一致ブロックを終点とする第１の運動ベクトルを特定すること
をさらに含む、請求項２に記載の方法。
【請求項５】
前記第２の映像フレームと関連付けられた、前記カメラの前記第１の運動状態を決定することは、
前記第１の運動ベクトルの大きさが所定の閾値の値より大きいかどうかを決定することと、
前記大きさが前記所定の閾値の値より大きいという決定により、前記カメラの前記第１の運動状態が個々の移動状態であることを決定することと、
前記大きさが前記所定の閾値の値以下であるという決定により、前記カメラの前記第１の運動状態が個々の固定状態であることを決定することと
を含む、請求項４に記載の方法。
【請求項６】
前記一連の映像フレームの各映像フレームと関連付けられた、前記カメラの前記個々の運動状態を決定することは、
前記カメラの前記第１の運動状態のすぐ後に続く前記カメラの第２の運動状態を決定することをさらに含み、
前記カメラの前記第１の運動状態が個々の移動状態であると決定されるとき、前記カメラの前記第２の運動状態を決定することは、第１の所定の運動大きさ閾値の値を選択して、前記第２の運動状態を決定することをさらに含み、
前記カメラの前記第１の運動状態が固定状態であると決定されるとき、前記カメラの前記第２の運動状態を決定することは、第２の所定の運動大きさ閾値の値を選択して、前記第２の運動状態を決定することをさらに含み、
前記第１の所定の運動大きさ閾値の値は、前記第２の所定の運動大きさ閾値の値より大きい、
請求項５に記載の方法。
【請求項７】
前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移を前記カメラが受けたかどうかを決定することは、
前記カメラの前記第１の運動状態が個々の移動状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームのうちの連続した映像フレームのペアごとに前記運動推定を行うことによって、前記所定の数の映像フレームのそれぞれを取り込むために、前記カメラの個々の後続の運動状態を決定することと、
前記カメラの前記個々の後続の運動状態のそれぞれが個々の固定状態であるという決定により、前記個々の移動状態から前記個々の固定状態への状態の前記遷移を前記カメラが受けたことを決定することと
をさらに含む、請求項５に記載の方法。
【請求項８】
前記個々の固定状態から個々の移動状態への運動状態の前記遷移を前記カメラが受けたかどうかを決定することは、
前記カメラの前記第１の運動状態が個々の固定状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームのうちの連続した映像フレームのペアごとに前記運動推定を行うことによって、前記所定の数の映像フレームのそれぞれを取り込むために、前記カメラの個々の後続の運動状態を決定することと、
前記カメラの前記個々の後続の運動状態のそれぞれが個々の移動状態であるという決定により、前記個々の固定状態から前記個々の移動状態への状態の前記遷移を前記カメラが受けたことを決定することと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記後の方の映像フレームが、前記所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することは、
前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移を前記カメラが受けたという決定により、
前記後の方の映像フレームにおけるフィーチャ・ポイントの数を数えることと、
前記後の方の映像フレームにおける前記フィーチャ・ポイントの前記数が所定の閾値フィーチャ計数より大きいかどうかを決定することと、
前記後の方の映像フレームにおけるフィーチャ・ポイントの前記数が前記所定のフィーチャ計数より大きいという決定により、前記後の方の映像フレームをシステム・サーバにアップロードすることと
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記カメラの前記第１の運動状態が個々の固定状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームについて、個々の後続の運動ベクトルおよび前記カメラの個々の後続の運動状態を決定することと、
前記カメラの前記個々の後続の運動状態が個々の固定状態であるという決定により、前記個々の後続の運動ベクトルが共通方向を共有するかどうかを決定することと、
前記個々の後続の運動ベクトルが前記共通方向を共有するという決定により、前記個々の後続の運動ベクトルの個々の大きさが第３の大きさ閾値の値よりすべて大きいかどうかを決定することと、
前記個々の後続の運動ベクトルの前記個々の大きさが前記第３の所定の大きさ閾値よりすべて大きいという決定により、微小運動と関連付けられた個々の移動状態に前記カメラの最新の運動状態を変更することと
をさらに含む、請求項１に記載の方法。
【請求項１１】
前記カメラの前記第１の運動状態が個々の固定状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームについて、個々の後続の運動ベクトルおよび前記カメラの個々の後続の運動状態を決定することと、
前記カメラの前記個々の後続の運動状態が個々の固定状態であるという決定により、前記個々の後続の運動ベクトルが共通方向を共有するかどうかを決定することと、
前記個々の後続の運動ベクトルが前記共通方向を共有するという決定により、前記個々の後続の運動ベクトルの個々の大きさの合計が第４の大きさ閾値の値より大きいかどうかを決定することと、
前記個々の後続の運動ベクトルの前記個々の大きさの前記合計が前記第４の所定の大きさ閾値より大きいという決定により、微小運動と関連付けられた個々の移動状態に前記カメラの最新の運動状態を変更することと
をさらに含む、請求項１に記載の方法。
【請求項１２】
前記カメラの前記第１の運動状態が個々の固定状態であるという決定により、
前記第２の映像フレームの後に複数の連続した映像フレームを取得することと、
前記複数の前記映像フレームのうちの連続した映像フレームの各ペアの個々の運動ベクトルが反対方向を有するかどうかを決定することと、
前記複数の映像フレームのうちの連続した映像フレームの各ペアの前記個々の運動ベクトルが反対方向を有するという決定により、運動大きさに基づいた前記個々の固定状態から個々の移動状態への前記カメラの運動状態の変更を差し止めすることと
をさらに含む、請求項１に記載の方法。
【請求項１３】
１つまたは複数のプロセッサと、
カメラと、
前記１つまたは複数のプロセッサによって実行されることになる１つまたは複数のプログラムを記憶するメモリと
を備える電子装置であって、前記１つまたは複数のプログラムは、
前記カメラによって取り込まれる、少なくとも１つの第１の映像フレームおよび１つの第２の映像フレームを含んだ一連の映像フレームを取得することであって、前記第１の映像フレームは、前記第２の映像フレームより前に取り込まれる、一連の映像フレームを取得することと、
前記第１の映像フレームおよび前記第２の映像フレームの運動推定を行うことによって前記第２の映像フレームと関連付けられた、前記カメラの第１の運動状態を決定することを含んで、前記一連の映像フレームの各映像フレームと関連付けられた、前記カメラの個々の運動状態を決定することと、
前記一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移を前記カメラが受けたかどうかを決定することと、
前記一連の映像フレームのうちの前記２つの連続した映像フレームを取り込む間に、前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移を前記カメラが受けたという決定により、前記２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することと
のための命令を含む、電子装置。
【請求項１４】
前記運動推定を行うことは、
前記第１の映像フレームの中心ブロックを検出することと、
前記第２の映像フレームにおいて、所定のマッチング基準により前記第１の映像フレームの前記中心ブロックと一致する前記第２の映像フレームの一致ブロックを特定することと
を含む、請求項１３に記載の電子装置。
【請求項１５】
前記運動推定を行うことは、
前記第２の映像フレームの中心ブロックを始点とし、前記第２の映像フレームの前記一致ブロックを終点とする第１の運動ベクトルを特定することと、
前記第１の運動ベクトルの大きさが所定の閾値の値より大きいかどうかを決定することと、
前記大きさが前記所定の閾値の値より大きいという決定により、前記カメラの前記第１の運動状態が個々の移動状態であることを決定することと、
前記大きさが前記所定の閾値の値以下であるという決定により、前記カメラの前記第１の運動状態が個々の固定状態であることを決定することと
を含む、請求項１４に記載の電子装置。
【請求項１６】
前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移を前記カメラが受けたかどうかを決定することは、
前記カメラの前記第１の運動状態が個々の移動状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームのうちの連続した映像フレームのペアごとに前記運動推定を行うことによって、前記所定の数の映像フレームのそれぞれを取り込むために、前記カメラの個々の後続の運動状態を決定することと、
前記カメラの前記個々の後続の運動状態のそれぞれが個々の固定状態であるという決定により、前記個々の移動状態から前記個々の固定状態への状態の前記遷移を前記カメラが受けたことを決定することと
をさらに含む、請求項１５に記載の電子装置。
【請求項１７】
１つまたは複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つまたは複数のプログラムは、命令を含み、前記命令は、１つまたは複数のプロセッサおよびディスプレイを備えた電子装置によって実行されると、前記装置に、
カメラによって取り込まれる、少なくとも１つの第１の映像フレームおよび１つの第２の映像フレームを含む一連の映像フレームを取得することであって、前記第１の映像フレームは、前記第２の映像フレームより前に取り込まれる、一連の映像フレームを取得することと、
前記第１の映像フレームおよび前記第２の映像フレームの運動推定を行うことによって前記第２の映像フレームと関連付けられた、カメラの第１の運動状態を決定することを含んで、前記一連の映像フレームの各映像フレームと関連付けられた、カメラの個々の運動状態を決定することと、
前記一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたかどうかを決定することと、
前記一連の映像フレームのうちの前記２つの連続した映像フレームを取り込む間に、前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移をカメラが受けたという決定により、前記２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することと
を含む動作を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記運動推定を行うことは、
前記第１の映像フレームの中心ブロックを検出することと、
前記第２の映像フレームにおいて、所定のマッチング基準により前記第１の映像フレームの前記中心ブロックと一致する前記第２の映像フレームの一致ブロックを特定することと
を含む、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記運動推定を行うことは、
前記第２の映像フレームの中心ブロックを始点とし、前記第２の映像フレームの前記一致ブロックを終点とする第１の運動ベクトルを特定することと、
前記第１の運動ベクトルの大きさが所定の閾値の値より大きいかどうかを決定することと、
前記大きさが前記所定の閾値の値より大きいという決定により、カメラの前記第１の運動状態が個々の移動状態であることを決定することと、
前記大きさが前記所定の閾値の値以下であるという決定により、カメラの前記第１の運動状態が個々の固定状態であることを決定することと
を含む、請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記個々の移動状態から前記個々の固定状態への運動状態の前記遷移をカメラが受けたかどうかを決定することは、
カメラの前記第１の運動状態が個々の移動状態であるという決定により、
前記第２の映像フレームの後に続く所定の数の映像フレームを取得することと、
前記所定の数の映像フレームの連続した映像フレームのペアごとに前記運動推定を行うことによって、前記所定の数の映像フレームのそれぞれを取り込むために、カメラの個々の後続の運動状態を決定することと、
カメラの前記個々の後続の運動状態のそれぞれが個々の固定状態であるという決定により、前記個々の移動状態から前記個々の固定状態への状態の前記遷移をカメラが受けたことを決定することと
をさらに含む、請求項１９に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張と関連出願
本出願は、２０１３年９月１８日に出願の「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＲＥＡＬ−ＴＩＭＥ  ＩＭＡＧＥ  ＩＤＥＮＴＩＦＩＣＡＴＩＯＮ  ＯＮ  Ａ  ＭＯＢＩＬＥ  ＴＥＲＭＩＮＡＬ」と題した中国特許出願第２０１３１０４２８９３０．２号に対する優先権を主張するものであり、同特許出願は、全体的に参照することによって組み込まれる。
【０００２】
本出願は、画像の処理技術および識別技術に関し、詳細には、エンド・デバイスにおいて画像識別を行うための方法およびシステムに関する。
【背景技術】
【０００３】
エンド・デバイス、例えば、モバイル端末においてリアル・タイム画像識別を行うための解決策には、モバイル端末のカメラを使用することによって目標物の映像フレームを取得し、その映像フレームをクラウド・サーバに送信すること、およびクラウド・サーバによって、受信した映像フレームに関して識別を行い、対応する明細情報を決定し、その明細情報をモバイル端末にフィード・バックして表示することが含まれる。
【０００４】
いくつかの例では、取得された映像フレームからのデータ収集は、書籍カバー、ＣＤカバー、映画ポスタ、バー・コード、２次元コード、商品ロゴなど、様々な事柄において行われ得る。映像フレームを受信した後、クラウド・サーバは、明細情報をフィード・バックし、この場合、明細情報には、購買状況、コメント情報、および関連商品の好みが含まれる。このやり方を用いることによって、画像の関連情報は、画像が撮影された後、即座に取得され、これは、クライアントに利便性を与える。
【０００５】
データの収集と交換を行うための既存のモバイル端末および方法は、主に２つのやり方を含み、このやり方は、以下に具体的に説明される：
第１のやり方では、目標物は、モバイル端末のカメラを使用して目標物に照準を合わせることによって写真撮影され、取得された映像フレームは、モバイル端末からクラウド・サーバに送信される。しかしながら、このやり方は、以下の不具合を有する：目標物に照準が合わせられた後、操作は、手動で行われる必要があり、これは不便である。加えて、目標物に照準が合わせられない、または手ぶれが生じる場合、クラウド・サーバは、画像識別を行うことができず、そのため、モバイル端末は、目標物についての明細情報を首尾よく取得することができない。
【０００６】
第２のやり方では、データ収集は、カメラによって取り込まれる写真に関してリアル・タイムに行われ、次いで、収集された画像データのすべてがクラウド・サーバに送信される。このやり方では、手動での写真撮影は必要なく、これは、操作に便利であるが、この方法もまた、以下の不具合を有する：収集された各映像フレームがリアル・タイムにクラウド・サーバに送信されるので、大量のトラフィックが使用され、帯域幅が占有され、加えて、収集されたデータ・フレームの中には、鮮明でないものもあるので、クラウド・サーバは、識別を行うことができず、識別結果を効果的にフィード・バックすることができない。
【０００７】
分かるように、モバイル端末においてリアル・タイム画像識別を行うための既存の方法の分野では、以下の不具合が存在する：トラフィック消費が大きく、識別結果が効果的にフィード・バックされ得ない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本開示の実施形態は、チャット・セッション中の推奨を実現するための方法およびシステムを提供する。
【課題を解決するための手段】
【０００９】
本出願のいくつかの実装形態により、画像識別のための方法は、１つまたは複数のプロセッサと、メモリと、カメラとを有する電子装置で行われる。この方法は、カメラによって取り込まれる、少なくとも１つの第１の映像フレームおよび１つの第２の映像フレームを含んだ一連の映像フレームを取得することであって、第１の映像フレームは、第２の映像フレームより前に取り込まれる、一連の映像フレームを取得することと、第１の映像フレームおよび第２の映像フレームの運動推定を行うことによって第２の映像フレームと関連付けられた、カメラの第１の運動状態を決定することを含んで、一連の映像フレームの各映像フレームと関連付けられた、カメラの個々の運動状態を決定することと、一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたかどうかを決定することと、一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたという決定により、２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することとを含む。
【００１０】
別の態様では、装置は、１つまたは複数のプロセッサと、メモリと、カメラと、メモリに記憶され、１つまたは複数のプロセッサによって実行するように構成されている１つまたは複数のプログラム・モジュールとを備える。１つまたは複数のプログラム・モジュールは、上述の方法を行うための命令を含む。別の態様では、非一時的コンピュータ可読記憶媒体が、命令をその上に記憶し、命令は、装置によって実行されると、装置に、本明細書に説明される方法を行わせる。
【００１１】
本出願の様々な利点は、下記の説明に照らせば明らかである。
【００１２】
本出願の前述された特徴および利点、ならびにその追加の特徴および利点は、図面と併せて解釈されると、好ましい実施形態の詳細な説明の結果として、本明細書で以降、より明瞭に理解されよう。
【００１３】
本出願の実施形態による技術的解決策をより明瞭に例示するために、実施形態を説明するための添付の図面が以下に簡潔に紹介される。以下の説明における添付の図面は、本出願のほんの一部の実施形態にすぎず、当業者は、創造的な労力を何ら払わずして、添付の図面に従って他の図面を得ることができる。
【図面の簡単な説明】
【００１４】
【図１】本出願のいくつかの実施形態によるモバイル端末における画像識別を行うための方法の概略的流れ図である。
【図２】本出願のいくつかの実施形態によるモバイル端末における画像識別を行うための方法の概略的流れ図である。
【図３】本出願のいくつかの実施形態による運動推定を行うための方法の概略的流れ図である。
【図４】本出願のいくつかの実施形態による一致ブロックを決定するための概略的例示図である。
【図５】本出願のいくつかの実施形態による図１〜図３で論じられた画像識別のための方法を行うモバイル端末の概略的構造図である。
【図６】いくつかの実施形態によるサーバ−クライアント環境のブロック図である。
【図７】いくつかの実施形態によるクライアント装置のブロック図である。
【図８】いくつかの実施形態によるサーバ・システムのブロック図である。
【図９Ａ】本出願のいくつかの実施形態によるエンド・デバイスにおける画像識別を行うための方法の流れ図である。
【図９Ｂ】本出願のいくつかの実施形態によるエンド・デバイスにおける画像識別を行うための方法の流れ図である。
【図９Ｃ】本出願のいくつかの実施形態によるエンド・デバイスにおける画像識別を行うための方法の流れ図である。
【図９Ｄ】本出願のいくつかの実施形態によるエンド・デバイスにおける画像識別を行うための方法の流れ図である。
【図９Ｅ】本出願のいくつかの実施形態によるエンド・デバイスにおける画像識別を行うための方法の流れ図である。
【発明を実施するための形態】
【００１５】
同様の参照数字は、図面のいくつかの図全体にわたって対応する部分を示す。
【００１６】
次に、実施形態に対して詳細に参照がなされ、それらの例は、添付の図面に示される。以下の詳細な説明では、多数の具体的な詳細が、本明細書に提示された主題の完全な理解を与えるために述べられる。しかし、主題は、これらの具体的な詳細がなくても実践可能であることは当業者にとっては明らかであろう。他の例では、よく知られている方法、手順、構成要素、および回路は、実施形態の態様を不必要に曖昧にしないように詳細には説明されていない。
【００１７】
以下は、本出願の実施形態における添付の図面を参照して本出願の実施形態における技術的解決策を明瞭かつ完全に説明している。明らかに、説明された実施形態は、本出願の実施形態のすべてではなく、ほんの一部にすぎない。創造的な労力なく本出願の実施形態に基づいて、当業者によって得られるすべての他の実施形態は、本出願の保護範囲内に入るものとする。
【００１８】
本出願を実装する工程では、例えば、データ収集工程では、実際の適用中、ユーザはまず、カメラを開き、カメラを移動させて目標物に照準を合わせ、次いで、カメラを使用することによってデータ収集を行い、これは、移動から固定の状態への工程である。これに基づいて、本出願では、収集された映像フレームの運動状態が決定される。映像フレームの運動状態が移動状態から固定状態にあることが知られていると、鮮明なフレーム画像であることが決定され、次いで、この鮮明なフレーム画像は、クラウド・サーバにアップロードされる。こうして、鮮明なフレーム画像のみがクラウド・サーバに送信され、これは、トラフィック帯域幅を節約する。加えて、クラウド・サーバは、鮮明なフレーム画像に基づいて識別結果をフィード・バックするので、識別結果は、より効果的である。
【００１９】
図１は、本出願のいくつかの実施形態によるエンド・デバイス、例えばモバイル端末における画像識別を行うための方法１００の概略的流れ図である。いくつかの実施形態では、方法１００は、モバイル端末によって取り込まれるリアル・タイム画像に対して行われる。いくつかの実施形態では、データ収集がモバイル端末のカメラを使用することによってリアル・タイムに行われ（１０１）、映像フレームが取得される。いくつかの実施形態では、運動推定が映像フレームに関して行われ（１０２）、映像フレームの運動状態が決定される。
【００２０】
いくつかの実施形態では、１フレームずつの収集は、カメラを移動させることによって写真に関して行われる。運動推定は、リアル・タイムに取得される映像フレームに関して行われて、その映像フレームの運動状態を決定する。いくつかの実施形態では、運動推定は、映像符号化技術で使用される。本出願では、運動推定は、モバイル端末のカメラを使用して収集される映像フレームを処理するのに使用されて、映像フレームの運動状態を決定する。いくつかの実施形態では、運動ベクトルが映像フレームの運動状態を決定するのに使用可能であり、これは、現在の映像フレームと以前の映像フレームとの間の運動ベクトルを計算することであって、運動ベクトルは、運動振幅および運動方向を含む、運動ベクトルを計算することと、運動ベクトルを使用して映像フレームの運動状態を決定することとを含む。
【００２１】
いくつかの実施形態では、運動推定は、現在の映像フレームと以前の映像フレームとの間の運動ベクトルを計算するのに使用され、使用されるステップは、以前の映像フレームの中心領域画素を取得することと、現在の映像フレームの中心領域を開始ポイントとして使用して、開始ポイントを囲み、以前の映像フレームの中心領域画素に類似する画素を有する、一致ブロックとして決定されるべき領域をサーチすることと、現在の映像フレームの中心領域と一致ブロックとの間の位置ベクトルを運動ベクトルとして使用することとを含むことができる。
【００２２】
運動状態には、移動状態、固定状態、移動状態から固定状態に、および固定状態から移動状態に、が含まれる。映像フレームの移動状態は、多くのやり方で運動ベクトルを使用することによって決定され、これは、実際のニーズに応じて設定され得る。例えば、運動ベクトルを使用して映像フレームの運動状態を決定することは、記憶された背景運動状態を読み取ることを含む。いくつかの実施形態では、背景運動状態が固定状態であり、現在のフレームからのＮ個の連続したフレームの運動振幅のそれぞれが第１の運動閾値より大きく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームであるとき、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は固定状態であると決定され、背景運動状態はなおも固定状態であり、かつ（Ｎ＋１）番目のフレームの運動状態は固定状態から移動状態にあると決定され、背景運動状態は移動として変更される。背景運動状態が固定状態であり、現在のフレームの運動振幅が第１の運動閾値より小さいとき、現在のフレームの運動状態はなおも固定であり、背景運動状態はなおも固定である。
【００２３】
いくつかの実施形態では、背景運動状態が移動状態であり、現在のフレームからのＮ個の連続したフレームの運動振幅が第２の運動閾値より小さく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームであるとき、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は移動状態であり、背景運動状態はなおも移動であり、かつ（Ｎ＋１）番目のフレームの運動状態は移動状態から固定状態にあると決定され、背景運動状態は固定状態に変更される。背景運動状態が移動状態であり、現在のフレームの運動振幅が第２の運動閾値より大きいとき、現在のフレームの運動状態はなおも移動であり、背景運動状態はなおも移動状態である。
【００２４】
いくつかの実施形態では、背景運動状態が固定状態であることが決定された後、ただし、現在のフレームの運動振幅が第１の運動閾値より小さい場合、方法は、運動振幅が第３の運動閾値より大きいかどうかを決定することをさらに含む。運動振幅が第３の運動閾値より大きいとき、現在のフレームの運動は微小運動であり、背景運動状態はなおも固定状態である。現在のフレームからのＭ個の連続したフレームの運動状態が同じ方向の微小運動であり、現在のフレームが第１のフレームであるとき、Ｍ番目のフレームの運動状態は固定状態から移動状態にあると決定され、背景運動状態は移動状態に変更され、ただし、Ｍは自然数である。
【００２５】
いくつかの実施形態では、背景運動状態が固定状態であるとき、以前の映像フレームの後の２つ連続したフレームの運動振幅がＳ１より大きく、この２つの連続したフレームの運動方向がそれぞれ反対方向にある場合、振動状況であると決定され、２つの連続したフレームの運動状態はなおも固定であると決定される。
【００２６】
いくつかの実施形態では、以前の映像フレームの後の２つの連続したフレームの運動振幅がＳ１より大きく、この２つの連続したフレームの運動方向が同じ方向にある場合、２つの連続したフレームのうちの最新のフレームの運動状態は、固定から移動にあると決定される。
【００２７】
いくつかの実施形態では、映像フレームの運動状態が移動状態から固定状態にあるかどうかが決定される（１０３）。映像フレームの運動状態が移動状態から固定状態にあるとき、映像フレームは、鮮明なフレーム画像であると決定され、この鮮明なフレーム画像は、クラウド・サーバにアップロードされる。映像フレームの運動状態が移動状態から固定状態にではないと決定される場合、データ・フレームは、クラウド・サーバにアップロードされない。
【００２８】
いくつかの実施形態では、鮮明なフレームを決定する正確性を向上させるために、映像フレームの運動状態が移動状態から固定状態にあると決定された後、コーナ検出も行われ得る。いくつかの実施形態では、コーナ検出は、コーナ特性など、映像フレームのフィーチャの数を計算することと、コーナ特性の数がコーナの閾値数より大きいかどうかを決定することとを含む。コーナ特性の数がコーナの閾値数より大きいとき、鮮明なフレームは、鮮明なフレーム画像であると決定される。コーナ特性の数がコーナの閾値数以下であるとき、フレームは、不鮮明なフレーム画像であると決定される。
【００２９】
いくつかの実施形態では、映像フレームの運動状態が移動状態から固定状態にあると決定され、映像フレームが鮮明なフレーム画像であると決定されるとき、鮮明なフレーム画像は、クラウド・サーバにアップロードされる。いくつかの適用シナリオでは、鮮明なフレーム画像をアップロードするかどうかは、複数の連続した映像フレームの運動状態が固定であるかどうかに基づいて決定され得る。例えば、現在のフレームが第１のフレームであると仮定すると、（Ｎ＋１）番目のフレームへの第１のフレームが固定状態にあると決定される場合、（Ｎ＋１）番目のフレームは、鮮明なフレームであると決定され、次いで、鮮明なフレーム画像は、クラウド・サーバにアップロードされ、ただし、Ｎは自然数である。
【００３０】
いくつかの実施形態では、クラウド・サーバからフィード・バックされる識別結果はエンド・デバイスで受信され（１０４）、この識別結果は表示される（１０４）。クラウド・サーバは、映像フレームを受信した後、関連明細情報をフィード・バックし、この関連明細情報には、購買状況、批評情報、および関連商品の好みを含めることができる。
【００３１】
本出願では、運動推定は、映像フレームの運動状態を決定するために、収集された映像フレームに関して行われる。映像フレームの運動状態が移動状態から固定状態にあると決定され、映像フレームが鮮明なフレーム画像であると決定されるとき、鮮明なフレーム画像は、クラウド・サーバにアップロードされる。本出願は、データがカメラを使用することによって能動的に収集され、ユーザが手動で写真を撮る必要のない、操作に便利なやり方を使用する。加えて、収集された映像フレームをすべてリアル・タイムにクラウド・サーバにアップロードするのではなく、鮮明なフレーム画像のみがクラウド・サーバにアップロードされ、そのため、トラフィック及び帯域幅が節約される。クラウド・サーバは、鮮明なフレーム画像に基づいて識別結果をフィード・バックするので、識別結果は、より効果的である。
【００３２】
図２は、本出願のいくつかの実施形態によるモバイル端末における画像識別を行うための方法２００の概略的流れ図である。いくつかの実施形態では、データ収集がモバイル端末のカメラを使用してリアル・タイムに行われ（２０１）、映像フレームが取得される。いくつかの実施形態では、運動推定が映像フレームに関して行われ（２０２）、映像フレームの運動状態が決定される（２０２）。説明の便宜上、運動推定が行われる映像フレームは、以下の説明では、処理されるべき映像フレームと呼ばれる。
【００３３】
本出願では、映像符号化に使用される運動推定概念が、モバイル端末のカメラによって取り込まれる画像を処理するのに使用される。モバイル端末のカメラの映像および画像のシーケンスは、同じ連続した画像の相対関係を有し、そのため、運動推定アルゴリズムは普遍的である。しかしながら、２つのシナリオ間には、差分も存在する。例えば、モバイル端末のカメラによって取得される画像は、一般には、解像度がより低く、ユーザの実際の使用中、モバイル端末は、大きい振幅で移動することができない。全般的な状況についての運動推定アルゴリズムが映像符号化で使用され、この計算のやり方は非常に緩慢であり、一般には、リアル・タイム効果がＰＣであっても達成されない可能性がある。そのため、この差分を考慮して、本出願は、映像符号化に適用される運動推定アルゴリズムに関しての改善を行い、それにより、このアルゴリズムは、様々なモバイル端末において効果的な性能を達成することができるようになると同時に、それほどＣＰＵリソースを消費せず、消費されたＣＰＵリソースでさえも基本的には無視可能になる。
【００３４】
図３は、本出願のいくつかの実施形態による運動推定を行うための方法３００の概略的流れ図である。いくつかの実施形態では、処理されるべき映像フレームの中心領域画素が取得され、記憶される（３０１）。いくつかの実施形態では、処理されるべき映像フレームの以前の映像フレームの中心領域画素も取得される（３０２）。いくつかの実施形態では、モバイル端末は、映像フレームを収集するたびに、映像フレームの中心領域画素を記憶する。例えば、中心領域の画素グレー値が記憶される。このステップでは、処理されるべき映像フレームに隣接する以前の映像フレームの記憶済みの中心領域画素グレー値が抽出される。処理されるべき映像フレームの中心領域が、開始ポイントとして使用され（３０３）、開始ポイントを囲み、以前の映像フレームの中心領域画素に類似する画素を有する、一致ブロックとして決定されるべき領域をサーチする（３０３）。
【００３５】
図４は、本出願のいくつかの実施形態による方法３００のステップ３０３における一致ブロックを決定するための概略的例示図を示している。図４に示されているように、第１の映像フレーム４００、すなわち、以前の映像フレームは、格子で印付けされた中心領域に正方形領域４１０を含む。第２の映像フレーム４５０、すなわち、処理されるべき映像フレームは、中心領域に破線領域４６０を含む。いくつかの実施形態では、破線ブロック４６０を囲む隣接域が、以前の映像フレーム内の中心領域４１０の画素グレー値に類似する画素グレー値を有する領域４７０について中心から周辺の領域までサーチされ、領域４７０は、一致ブロック４７０と呼ばれる。図４に示されているように、処理されるべき映像フレーム４５０内の格子で印付けされた正方形領域が、サーチングにより取得される一致ブロック４７０である。
【００３６】
いくつかの実施形態では、以前の映像フレーム４００の中心領域（ｘ，ｙ）４１０の画素グレーは、Ｉ（ｘ，ｙ）として示される。処理されるべき映像フレームの４５０において、以前の映像フレーム４００の中心領域４１０と一致させるのに使用されるサーチ・ブロック（例えば、領域４７０）は、Ｉ’（ｘ，ｙ）として示された画素グレーを有する。Ｉ（ｘ，ｙ）とＩ’（ｘ，ｙ）との間の差分の二次形式和が、ブロック類似性を評価するための指標として使用される。ブロック・サイズがＮ＊Ｎの画素を含むことを仮定すると、誤差の平方和Ｓは、
【数１】
0006026680.tif 000002
である。
【００３７】
上記の式（１）により計算される最小値Ｓを有するブロックが、一致ブロック４７０として使用される。一致ブロック４７０と処理されるべき映像フレーム４５０の中心ブロック４６０との間の運動ベクトル（例えば、ベクトル４８０）が、一致ブロック４７０から中心ブロック４６０までの位置に従って決定される。図４におけるベクトル４８０は、運動方向および運動大きさ（すなわち、ベクトル４８０の長さ）を含む。
【００３８】
いくつかの実施形態では、近似アルゴリズムが前述のサーチング工程で使用される。例えば、まず、大きいステップ長がサーチ工程に使用され、相対的に大きな類似性を有する領域が特定される。次いで、ステップ長は、特定された領域で縮小され、類似性が評価される。この１ステップずつの近似は、最終サーチ結果を取得して、一致ブロックを特定するために行われる。アルゴリズムの速度を確実にするために、映像フレームのサイズがあまりにも大きく、閾値を超える場合、ダウンサンプリング処理がまず、行われてよく、例えば２０００＊２０００のフレーム・サイズが、ダウンサンプリングにより４００＊４００のフレーム・サイズに変更される。図４では、長方形領域、例えば、第１の映像フレーム４００および第２の映像フレーム４５０が使用され、正方形領域、例えば、一致ブロック４７０が一致ブロックを示すのに使用される。実際の適用に際しては、ダイヤモンド・マッチングおよび円形マッチングなど、任意の他の適切な形状マッチングが、マッチング工程を行うのに使用されてもよい。
【００３９】
運動推定に際しては、誤差の平方和を使用することによる類似性決定方法に加えて、平均平方誤差、絶対誤差の和、および平均誤差の和など、任意の他の類似性決定方法が使用されてもよい。近似サーチング・アルゴリズムに加えて、実際の適用に際しては、３ステップ・サーチ、およびダイヤモンド・サーチなど、別のサーチング・アルゴリズムが使用されてもよい。
【００４０】
図３に戻って参照すると、処理されるべき映像フレーム４５０の一致ブロック４７０と中心ブロック４６０との間の位置ベクトルが計算され（３０４）、運動ベクトルとしての位置ベクトルが使用される（３０４）。いくつかの実施形態では、計算された運動ベクトルは、運動方向および運動大きさを含む。
【００４１】
いくつかの実施形態では、映像フレームの運動状態は、運動ベクトルを使用して決定される（３０５）。本出願では、映像フレームの運動状態は、主に、以下の４つの状態：移動状態、固定状態、移動状態から固定状態に、および固定状態から移動状態に、を有する。いくつかの実施形態では、状態が移動状態から固定状態にあると決定されるとき、画像は、アップロードのための準備ができている。
【００４２】
いくつかの実施形態では、移動状態から固定状態への状態、および固定状態から移動状態への状態は、異なる大きさ閾値を使用することができる。画像識別の適用に際しては、移動状態から固定状態への状態の大きさ閾値は相対的に高く、この大きさ閾値は第２の運動閾値として示される。固定状態から移動状態への状態の大きさ閾値は相対的に低く、この大きさ閾値は第１の運動閾値として示される。いくつかの実施形態では、第１の運動閾値は、第２の運動閾値より小さい。
【００４３】
モバイル端末は、背景運動状態を記憶し、この背景運動状態は、記憶済みの状態から抽出可能である。次いで、処理されるべき映像フレームの運動状態は、背景運動状態と、第１の運動閾値と、第２の運動閾値とを組み合わせることによって決定され得る。いくつかの実施形態では、記憶済みの背景運動状態は、検出され、ただし、背景運動状態が固定状態であり、現在のフレームからのＮ個の連続したフレームの運動大きさが第１の運動閾値より大きく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームである場合、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は固定であり、背景運動状態はなおも固定であり、かつ（Ｎ＋１）番目のフレームの運動状態は固定から移動にあると決定され、背景運動状態は運動として変更される。いくつかの実施形態では、背景運動状態が固定であり、現在のフレームの運動大きさが第１の運動閾値より小さい場合、現在のフレームの運動状態はなおも固定であり、背景運動状態はなおも固定である。
【００４４】
いくつかの実施形態では、背景運動状態が移動であり、現在のフレームからのＮ個の連続したフレームの運動大きさが第２の運動閾値より小さく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームである場合、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は移動であり、背景運動状態はなおも移動であり、かつ（Ｎ＋１）番目のフレームの運動状態は移動から固定にあると決定され、背景運動状態は固定として変更される。
【００４５】
いくつかの実施形態では、背景運動状態が移動であり、現在のフレームの運動大きさが第２の運動閾値より大きい場合、現在のフレームの運動状態はなおも移動であり、背景運動状態はなおも移動である。
【００４６】
さらには、背景運動状態が固定であることが決定された後、ただし、現在のフレームの運動大きさが第１の運動閾値より小さい場合、方法は、運動大きさが第３の運動閾値より大きいかどうかを決定することをさらに含む。運動大きさが第３の運動閾値より大きいとき、現在のフレームの運動は微小運動と関連付けられ、背景運動状態はなおも固定である。現在のフレームからのＭ個の連続したフレームの運動が同じ方向の微小運動であり、現在のフレームが第１のフレームである場合、Ｍ番目のフレームの運動状態は固定から移動にあると決定され、背景運動状態は移動として変更され、ただし、Ｍは自然数である。
【００４７】
いくつかの実施形態では、「状態にとどまる（ｒｅｍａｉｎｉｎｇ  ｔｈｅ  ｓｔａｔｅ）」ポリシーが使用される。偶発的に生じる単一の固定または移動の状態の場合には、状態切替えは行われない。３つ以上の状態変更が累積されるとき、状態切替えが行われる。このポリシーを使用することによって、状態安定性が達成される。Ｓ１は、第１の運動閾値を示すのに使用され、Ｓ２は、第２の運動閾値を示すのに使用され、Ｓ３は、第３の運動閾値を示すのに使用される。Ｓは、処理されるべき映像フレームの運動大きさを示すのに使用される。いくつかの実施形態では、状態切替えは、概して、２つの状態変更が累積されるときに行われ、微小運動の場合には、状態切替えは、５つの状態変更が累積されるときに行われる。いくつかの実施形態では、「状態にとどまる」ポリシーは、以下の様々な状況を含む。
【００４８】
いくつかの実施形態では、背景運動状態が固定であるとき：（１）Ｓ＞Ｓ１のとき、（Ｙ番目のフレームを使用することによって示される）処理されるべき映像フレームは固定状態にあると決定され、背景運動状態はなおも固定である。次いで、（Ｙ＋１）番目のフレームの運動大きさがなおもＳ１より大きいかどうかが決定される。（Ｙ＋１）番目のフレームの運動大きさがなおもＳ１より大きいとき、（Ｙ＋１）番目のフレームは固定から移動への状態にあると決定され、背景運動状態は移動であると変更される。（２）Ｓ＜Ｓ１のとき、処理されるべき映像フレームは固定状態にあると決定され、背景運動状態はなおも固定である。（３）Ｓ３＜Ｓ＜Ｓ１のとき、（Ｚ番目のフレームを使用することによって示される）処理されるべき映像フレームの運動は微小運動であると決定され、（Ｚ＋３）番目のフレームへのＺ番目のフレームの運動は同じ方向の微小運動であると決定され、（Ｚ＋３）番目のフレームへのＺ番目のフレームは固定状態であると決定される。（Ｚ＋４）番目のフレームの運動がやはり同じ方向の微小運動である場合、（Ｚ＋４）番目のフレームは固定から移動への状態にあると決定され、背景運動は移動状態に変更される。いくつかの実施形態では、累積される回数は、任意の適切な数であるように設定可能である。
【００４９】
いくつかの実施形態では、背景運動状態が移動であるとき：（１）Ｓ＜Ｓ２のとき、（Ｙ番目のフレームを使用することによって示される）処理されるべき映像フレームは移動状態にあると決定され、背景運動状態はなおも移動である。次いで、（Ｙ＋１）番目のフレームの運動大きさがＳ２より小さいかどうかが決定される。（Ｙ＋１）番目のフレームの運動大きさがＳ２より小さいとき、（Ｙ＋１）番目のフレームは移動から固定への状態にあると決定され、背景運動状態は固定に変更される。（２）Ｓ＞Ｓ２のとき、処理されるべき映像フレームは移動状態にあると決定され、背景運動状態はなおも移動である。
【００５０】
いくつかのさらなる実施形態では、手ぶれ状況も決定され得る。例えば、「不意の左運動および／または不意の右運動（ｓｕｄｄｅｎ  ｌｅｆｔ  ｍｏｔｉｏｎ  ａｎｄ／ｏｒ  ｓｕｄｄｅｎ  ｒｉｇｈｔ  ｍｏｔｉｏｎ）」が生じる場合、つまり、運動ベクトルがそれぞれ反対方向に生じる場合、「手ぶれ（ｈａｎｄ  ｓｈａｋｉｎｇ）」状況であると決定される。この場合には、背景が固定状態にある場合、運動状態は、同じ方向の連続した運動が生成されるまで変更されない。
【００５１】
いくつかの実施形態では、運動推定を継続して行うかどうかが決定され（３０６）、イエスならば、方法３００はステップ３１０に戻り、そうでなければ、手順は終了される。いくつかの実施形態では、映像フレームがステップ２０１で継続的に取得される場合、このステップ２０１では、運動推定は、取得された映像フレームに関して行われる。
【００５２】
図２に戻って参照すると、映像フレームの運動状態が移動から固定であるかどうかが決定され（２０３）、イエスならば、方法２００はステップ２０４に進み、そうでなければ、手順を終了する。
【００５３】
カメラがオンされたばかりのとき、状態は固定に設定され得る。次いで、ユーザは、カメラを目標物に照準を合わせるように移動させ、この工程は、固定から移動への状態、移動の状態、および移動から固定への状態を経る。映像フレームの運動状態が運動から静止であると決定されるとき、対応する映像フレームは、検出されるべき映像フレームとして使用される。
【００５４】
いくつかの実施形態では、コーナ特性など、検出されるべき映像フレームのフィーチャの数が計算される（２０４）。いくつかの実施形態では、Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  Ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ（ＦＡＳＴ）コーナ検出アルゴリズム、Ｈａｒｒｉｓコーナ検出アルゴリズム、Ｃｏｍｐｒｅｓｓｅｄ  Ｈｉｓｔｏｇｒａｍ  ｏｆ  Ｇｒａｄｉｅｎｔｓ（ＣＨＯＧ）コーナ検出アルゴリズム、およびＦａｓｔ  Ｒｅｔｉｎａ  Ｋｅｙｐｏｉｎｔ（ＦＲＥＡＫ）コーナ検出アルゴリズムなど、様々なタイプのコーナ検出アルゴリズムのうちの１つがランダムに選択可能である。これらのアルゴリズムは、コーナ検出力に優れている。効果的な写真の定義によれば、第１の要件は鮮明度であり、第２の要件は豊かな葉脈（ｒｉｃｈ  ｖｅｉｎ）である。２つの要件に基づいて、ＦＡＳＴコーナ検出が使用可能である。写真が鮮明でないとき、ＦＡＳＴコーナはほとんど存在せず、例えば、大きな空白部分のある写真、または単色写真には、ＦＡＳＴコーナはほとんど存在しない。そのため、その写真が効果的な写真であるかどうかは、写真のＦＡＳＴコーナの数が決定される限り、決定され得る。
【００５５】
コーナ検出アルゴリズムを使用することによって写真の効果性を決定することに加えて、実際の適用に際しては、勾配特性、およびエッジ特性などに基づいて写真の効果性を決定するためのアルゴリズムが使用されてもよい。
【００５６】
いくつかの実施形態では、コーナ特性の数がコーナの閾値数より大きいかどうかが決定され（２０５）、イエスならば、検出されるべき映像フレームは、鮮明なフレーム画像であると決定され、この鮮明なフレーム画像は、クラウド・サーバにアップロードされる。そうでなければ、検出されるべき映像フレームは、クラウド・サーバへのアップロードについて有効でない不鮮明なフレーム画像であると決定される。いくつかの実施形態では、クラウド・サーバによってフィード・バックされる識別結果が受信され（２０６）、この識別結果は表示され得る（２０６）。
【００５７】
図５は、本出願のいくつかの実施形態による図１〜図３で論じられた画像識別のための方法１００、２００、および／または３００を行うモバイル端末の概略的構造図５００である。図５に示されているいくつかの実施形態では、モバイル端末は、データ収集ユニットと、運動推定ユニットと、鮮明フレーム決定ユニットと、識別結果表示ユニットとを含む。
【００５８】
いくつかの実施形態では、データ収集ユニットは、モバイル端末のカメラを使用することによってリアル・タイムにデータ収集を行い、映像フレームを取得し、映像フレームを運動推定ユニットに送信するように構成されている。
【００５９】
いくつかの実施形態では、運動推定ユニットは、この映像フレームに関して運動推定を行い、映像フレームの運動状態を決定し、この運動状態を鮮明フレーム決定ユニットに送信するように構成されている。いくつかの実施形態では、鮮明フレーム決定ユニットは、映像フレームの運動状態が移動から固定であるかどうかを決定するように構成されており、イエスならば、映像フレームは、鮮明なフレーム画像であると決定され、この鮮明なフレーム画像は、クラウド・サーバにアップロードされる。いくつかの実施形態では、識別結果表示ユニットは、クラウド・サーバによってフィード・バックされる識別結果を受信し、この識別結果を表示するように構成されている。いくつかの実施形態では、運動推定ユニットは、運動ベクトル計算サブユニット、および状態決定サブユニットを含む。いくつかの実施形態では、運動ベクトル計算サブユニットは、映像フレームと以前の映像フレームとの間の運動ベクトルを計算し、この運動ベクトルを状態決定サブユニットに送信するように構成されている。運動ベクトルは、運動大きさおよび運動方向を含む。いくつかの実施形態では、状態決定サブユニットは、運動ベクトルにより映像フレームの運動状態を決定するように構成されている。
【００６０】
いくつかの実施形態では、状態決定サブユニットは、記憶済みの背景運動状態を読み取るように構成されている状態決定モジュールを含み、ただし、背景運動状態が固定であり、現在のフレームからのＮ個の連続したフレームの運動大きさが第１の運動閾値より大きく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームである場合、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は固定であり、背景運動状態はなおも固定であり、かつ（Ｎ＋１）番目のフレームの運動状態は固定から移動にあると決定され、背景運動状態は移動として変更される。いくつかの実施形態では、背景運動状態が固定であり、現在のフレームの運動大きさが第１の運動閾値より小さい場合、現在のフレームの運動状態は固定であり、背景運動状態はなおも固定である。いくつかの実施形態では、背景運動状態が移動であり、現在のフレームからのＮ個の連続したフレームの運動大きさが第２の運動閾値より小さく、ただし、Ｎは自然数であり、現在のフレームが第１のフレームである場合、（Ｎ＋１）番目のフレームへの第１のフレームの運動状態は移動であり、背景運動状態はなおも移動であり、かつ（Ｎ＋１）番目のフレームの運動状態は移動から固定にあると決定され、背景運動状態は固定として変更される。いくつかの実施形態では、背景運動状態が移動であり、現在のフレームの運動大きさが第２の運動閾値より大きい場合、現在のフレームの運動状態はなおも移動であり、背景運動状態はなおも移動である。
【００６１】
いくつかの実施形態では、状態決定モジュールは、固定である背景運動状態を決定するように構成されており、現在のフレームの運動大きさが第１の運動閾値より小さいとき、さらには運動振幅が第３の運動閾値より大きいかどうかがさらに決定される。運動振幅が第３の運動閾値より大きいとき、現在のフレームの運動は微小運動と関連付けられ、背景運動状態はなおも固定である。現在のフレームからのＭ個の連続したフレームの運動が同じ方向の微小運動であり、現在のフレームが第１のフレームである場合、Ｍ番目のフレームの運動状態は固定から移動にあると決定され、背景運動状態は移動に変更され、ただし、Ｍは自然数である。
【００６２】
いくつかの実施形態では、運動ベクトル計算ユニットは、以前の映像フレームの中心領域画素を取得することと、映像フレームの中心領域を開始ポイントとして使用し、開始ポイントを囲み、以前の映像フレームの中心領域画素に類似する画素を有する、一致ブロックであると決定される領域をサーチすることと、映像フレームの中心領域と一致ブロックとの間の位置ベクトルを運動ベクトルとして使用することとを行うように構成された運動ベクトル決定モジュールを含む。
【００６３】
いくつかの実施形態では、鮮明フレーム決定ユニットは、運動・静止状態決定モジュールおよびコーナ検出モジュールを含む。移動・固定状態決定モジュールは、映像フレームの運動状態が移動から固定にあるかどうかを決定するように構成されており、イエスならば、開始命令がコーナ検出モジュールに送信される。コーナ検出モジュールは、移動・固定状態決定モジュールから開始命令を受信し、映像フレームのコーナ特性の数を計算するように構成されている。いくつかの実施形態では、コーナ特性の数がコーナの閾値数より大きいかどうかが決定される。コーナ特性の数がコーナの閾値数より大きいとき、映像フレームは、鮮明フレーム画像であると決定され、この鮮明なフレーム画像は、クラウド・サーバにアップロードされる。そうでなければ、映像フレームは、不鮮明なフレーム画像であると決定される。
【００６４】
図６は、いくつかの実施形態によるサーバ−クライアント環境のブロック図である。図６に示されているように、画像識別は、いくつかの実施形態により、サーバ−クライアント環境６００において行われる。いくつかの実施形態により、サーバ−クライアント環境６００は、クライアント装置６０４において実行されるクライアント側処理部６０２（以下、「クライアント側モジュール（ｃｌｉｅｎｔ−ｓｉｄｅ  ｍｏｄｕｌｅ）６０２」）および入力装置（複数可）７１４（例えば、カメラ）、ならびにサーバ・システム６０８において実行されるサーバ側処理部６０６（以下、「サーバ側モジュール（ｓｅｒｖｅｒ−ｓｉｄｅ  ｍｏｄｕｌｅ）６０６」）を含む。クライアント側モジュール６０２は、１つまたは複数のネットワーク６１０を通じてサーバ側モジュール６０６と通信する。クライアント側モジュール６０２は、ソーシャル・ネットワーキング・プラットフォーム（例えば、インスタント・メッセージングおよびソーシャル・ネットワーキング・サービス）、ならびにサーバ側モジュール６０６との通信にクライアント側機能を提供する。サーバ側モジュール６０６は、個々のクライアント装置６０４においてそれぞれが常駐する任意の数のクライアント・モジュール６０２にサーバ側機能、例えば、画像／映像処理、および画像／映像情報識別を提供する。
【００６５】
いくつかの実施形態では、サーバ側モジュール６０６は、１つまたは複数のプロセッサ６１２と、１つまたは複数のデータベース６１４と、１つまたは複数のクライアントに対するＩ／Ｏインターフェース６１８と、１つまたは複数の外部サーバに対するＩ／Ｏインターフェース６２０とを含む。１つまたは複数のクライアントに対するＩ／Ｏインターフェース６１８は、サーバ側モジュール６０６のための、クライアント向きの入力と出力の処理を容易にする。１つまたは複数のプロセッサ６１２は、クライアント装置６０４から送信される画像を受信し、その画像を処理し、要求された画像／映像関連の情報をクライアント側モジュール６０２に提供する。データベース６１４は、書籍情報、ＣＤ情報、映画情報、ならびに製品およびバー・コードの情報が含まれるが、これらに限定されない様々な情報を記憶する。いくつかの実施形態では、クラウド・サーバは、明細情報をフィード・バックし、この場合、明細情報には、購買状況、コメント情報、および関連商品の好みが含まれる。１つまたは複数の外部サーバに対するＩ／Ｏインターフェース６２０は、１つまたは複数の外部サービス６２２（例えば、画像／映像処理のサービス、出版社、および／または他の関連サービス）との通信を容易にする。
【００６６】
クライアント装置６０４の例には、ハンドヘルド・コンピュータ、ウェアラブル・コンピューティング装置、パーソナル・デジタル・アシスタント（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ：ＰＤＡ）、タブレット・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、セルラ電話、スマート・フォン、拡張型汎用パケット無線サービス（ｅｎｈａｎｃｅｄ  ｇｅｎｅｒａｌ  ｐａｃｋｅｔ  ｒａｄｉｏ  ｓｅｒｖｉｃｅ：ＥＧＰＲＳ）モバイル・フォン、メディア・プレーヤ、ナビゲーション装置、ゲーム・コンソール、テレビ、遠隔制御部、またはこれらのデータ処理装置もしくは他のデータ処理装置のうちのいずれか２つ以上の組合せが含まれるが、これらに限定されない。
【００６７】
１つまたは複数のネットワーク６１０の例には、ローカル・エリア・ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）、およびインターネットなどの広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）が含まれる。１つまたは複数のネットワーク６１０は、任意選択で、イーサネット、ユニバーサル・シリアル・バス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ：ＵＳＢ）、ＦＩＲＥＷＩＲＥ、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ）、Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ＧＳＭ  Ｅｎｖｉｒｏｎｍｅｎｔ（ＥＤＧＥ）、符号分割多元接続（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ：ＣＤＭＡ）、時分割多元接続（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ：ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイス・オーバー・インターネット・プロトコル（ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ：ＶｏＩＰ）、Ｗｉ−ＭＡＸ、もしくは任意の他の適切な通信プロトコルなど、様々なワイヤードまたはワイヤレス・プロトコルを含む、任意の知られているネットワーク・プロトコルを使用して実装される。
【００６８】
サーバ・システム６０８は、１つまたは複数のスタンドアロン・データ処理機器、またはコンピュータの分散型ネットワークにおいて実装される。いくつかの実施形態では、サーバ・システム６０８はまた、サーバ・システム６０８の下層のコンピューティング・リソース、および／またはインフラストラクチャ・リソースを提供するサード・パーティ・サービス・プロバイダ（例えば、サードパーティ・クラウド・サービス・プロバイダ）の様々な仮想装置および／またはサービスを用いる。
【００６９】
図６に示されたサーバ−クライアント環境６００は、クライアント側部分（例えば、クライアント側モジュール６０２）と、サーバ側部分（例えば、サーバ側モジュール６０６）との両方を含む。いくつかの実施形態では、データ処理は、クライアント装置６０４においてインストールされたスタンドアロン・アプリケーションとして実装される。加えて、クライアント環境データ処理のクライアント部分とサーバ部分との間の機能の分割は、種々の実施形態で変わる場合がある。例えば、いくつかの実施形態では、クライアント側モジュール６０２は、ユーザ向きの入力と出力の処理機能しか提供しないシン・クライアントであり、すべての他のデータ処理の機能性をバックエンド・サーバ（例えば、サーバ・システム６０８）に委ねる。
【００７０】
図７は、いくつかの実施形態によるクライアント装置６０４のブロック図である。典型的には、クライアント装置６０４は、１つまたは複数の処理ユニット（ＣＰＵ）７０２と、１つまたは複数のネットワーク・インターフェース７０４と、メモリ７０６と、（時として、チップセットと呼ばれることもある）これらの構成要素を相互接続するための１つまたは複数の通信バス７０８とを含む。クライアント装置６０４は、ユーザ・インターフェース７１０も含む。ユーザ・インターフェース７１０は、１つまたは複数のスピーカおよび／あるいは１つまたは複数の視覚的ディスプレイを含む、メディア・コンテンツの提示を可能にする１つまたは複数の出力装置７１２を含む。ユーザ・インターフェース７１０はまた、キーボード、マウス、音声コマンド入力ユニットもしくはマイクロフォン、タッチ画面ディスプレイ、タッチセンサ式入力パッド、カメラ、ジェスチャ取込みカメラ、または他の入力ボタンもしくは制御部などのユーザ入力を容易にするユーザ・インターフェース構成要素を含んだ１つまたは複数の入力装置７１４を含む。さらには、いくつかのクライアント装置６０４は、マイクロフォンおよび音声認識、またはカメラおよびジェスチャ認識を使用して、キーボードを補完し、またはキーボードに取って代わる。メモリ７０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダム・アクセス固体メモリ装置など、高速ランダム・アクセス・メモリを含み、任意選択で、１つまたは複数の磁気ディスク記憶装置、１つまたは複数の光ディスク記憶装置、１つまたは複数のフラッシュ・メモリ装置、あるいは１つまたは複数の他の不揮発性固体記憶装置など、不揮発性メモリを含む。メモリ７０６は、任意選択で、１つまたは複数の処理ユニット７０２と遠隔に配置された１つまたは複数の記憶装置を含む。メモリ７０６、または代替で、メモリ７０６内の不揮発性メモリは、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態では、メモリ７０６、またはメモリ７０６の非一時的コンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する：
・  様々な基本システム・サービスを扱うため、およびハードウェアに依存するタスクを行うための手順を含むオペレーティング・システム７１６、
・  １つまたは複数のネットワーク・インターフェース７０４（ワイヤードあるいはワイヤレス）を介して１つまたは複数のネットワーク６１０に接続されている他のコンピューティング装置（例えば、サーバ・システム６０８および外部サービス（複数可）６２２）にクライアント装置６０４を接続するためのネットワーク通信モジュール７１８、
・  １つまたは複数の入力装置７１４のうちの１つからの１つまたは複数のユーザ入力もしくは相互作用を検出し、検出された入力または相互作用を解釈するための入力処理モジュール７２２、
・  クライアント装置６０４による実行（例えば、ゲーム、アプリケーション・マーケットプレイス、決済プラットフォーム、ソーシャル・ネットワーク・プラットフォーム、および／または他のアプリケーション）のための１つまたは複数のアプリケーション７２６−１〜７２６−Ｎ、ならびに
・  方法１００、２００、および３００、ならびに／または９００のうちのいずれかにより、カメラによってよって取り込まれる画像および／または映像フレームを処理するための映像／画像処理モジュール７５１を含むが、これに限定されないクライアント側データ処理および機能を提供するクライアント側モジュール／装置モジュール６０２であって、映像／画像処理モジュール７５１は、図５で論じられた任意の１つまたは複数のモジュールおよびユニットを含むことができる、クライアント側モジュール／装置モジュール６０２、ならびに
・  本出願で論じられた映像／画像処理と関連付けられる様々なデータ（例えば、１つまたは複数の運動大きさ閾値）を記憶しているデータベース７６０。
【００７１】
上記に特定された要素のそれぞれは、先に述べられたメモリ装置のうちの１つまたは複数に記憶可能であり、上述のある機能を行うための命令の組に対応する。上記に特定されたモジュールまたはプログラム（すなわち、命令の組）は、別個のソフトウェア・プログラム、手順、モジュール、またはデータ構造として実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、組み合わせられても、または別の形で様々な実装形態で構成し直されてもよい。いくつかの実装形態では、メモリ７０６は、任意選択で、上記に特定されたモジュールとデータ構造とのサブセットを記憶する。さらには、メモリ７０６は、任意選択で、上述されていない追加のモジュールおよびデータ構造を記憶する。
【００７２】
図８は、いくつかの実施形態によるサーバ・システム６０８のブロック図である。サーバ・システム６０８は、典型的には、１つまたは複数の処理ユニット（ＣＰＵ）８１２と、（例えば、１つまたは複数のクライアントに対するＩ／Ｏインターフェース６１８および１つまたは複数の外部サービスに対するＩ／Ｏインターフェース６２０を含めた）１つまたは複数のネットワーク・インターフェース８０４と、メモリ８０６と、（時として、チップセットと呼ばれることもある）これらの構成要素を相互接続するための１つまたは複数の通信バス８０８とを含む。メモリ８０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダム・アクセス固体メモリ装置など、高速ランダム・アクセス・メモリを含み、任意選択で、１つまたは複数の磁気ディスク記憶装置、１つまたは複数の光ディスク記憶装置、１つまたは複数のフラッシュ・メモリ装置、あるいは１つまたは複数の他の不揮発性固体記憶装置など、不揮発性メモリを含む。メモリ８０６は、任意選択で、１つまたは複数の処理ユニット８１２と遠隔に配置された１つまたは複数の記憶装置を含む。メモリ８０６、または代替で、メモリ８０６内の不揮発性メモリは、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態では、メモリ８０６、またはメモリ８０６の非一時的コンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットもしくはスーパーセットを記憶する：
・  様々な基本システム・サービスを扱うため、およびハードウェアに依存するタスクを行うための手順を含むオペレーティング・システム８１０、
・  １つまたは複数のネットワーク・インターフェース８０４（ワイヤードあるいはワイヤレス）を介して１つまたは複数のネットワーク６１０に接続されている他のコンピューティング装置（例えば、クライアント装置６０４および外部サービス（複数可）６２２）にサーバ・システム６０８を接続するためのネットワーク通信モジュール８１２、
・  クライアント装置６０４によってアップロードされる画像および／または映像フレームを処理するための映像／画像処理モジュール８３８を含むが、これに限定されないソーシャル・ネットワーキング・プラットフォーム（例えば、インスタント・メッセージング、およびソーシャル・ネットワーキング・サービス）のためのサーバ側データ処理を提供するサーバ側モジュール６０６、
・  本出願で論じられた映像／画像処理と関連付けられる様々なデータを記憶している１つまたは複数のサーバ・データベース８１４。
【００７３】
上記に特定された要素のそれぞれは、先に述べられたメモリ装置のうちの１つまたは複数に記憶可能であり、上述のある機能を行うための命令の組に対応する。上記に特定されたモジュールまたはプログラム（すなわち、命令の組）は、別個のソフトウェア・プログラム、手順、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、組み合わせられても、または別の形で様々な実装形態で構成し直されてもよい。いくつかの実装形態では、メモリ８０６は、任意選択で、上記に特定されたモジュールとデータ構造とのサブセットを記憶する。さらには、メモリ８０６は、任意選択で、上述されていない追加のモジュールおよびデータ構造を記憶する。
【００７４】
いくつかの実施形態では、サーバ・システム６０８の機能のうちの少なくともいくつかは、クライアント装置６０４によって行われ、これらの機能の対応するサブモジュールは、サーバ・システム６０８ではなく、クライアント装置６０４内に配置されてよい。いくつかの実施形態では、クライアント装置６０４の機能のうちの少なくともいくつかは、サーバ・システム６０８によって行われ、これらの機能の対応するサブモジュールは、クライアント装置６０４ではなく、サーバ・システム６０８内に配置されてよい。図７〜図８にそれぞれ示されているクライアント装置６０４およびサーバ・システム６０８は、ほんの例示にすぎず、本明細書に記載の機能を実装するためのモジュールの種々の構成は、様々な実施形態で可能である。
【００７５】
図９Ａ〜図９Ｅは、本出願のいくつかの実施形態によるエンド・デバイス６０４、例えばモバイル端末における画像識別を行うための方法９００の流れ図である。いくつかの実施形態では、方法９００は、１つまたは複数のプロセッサと、メモリと、カメラとを備えたエンド・デバイスによって行われる。例えば、いくつかの実施形態では、方法９００は、エンド・デバイス６０４（図６〜図７）、またはそれらの構成要素（例えば、図６〜図７、１つまたは複数の装置モジュール６０２）によって行われる。いくつかの実施形態では、方法９００は、非一時的コンピュータ可読記憶媒体において記憶される命令によって管理され、この命令は、エンド・デバイスの１つまたは複数のプロセッサによって実行される。任意選択の動作は、破線（例えば、破線縁付きボックス）によって示されている。いくつかの実施形態では、方法９００の１つまたは複数のステップは、実質的には、図１〜図４に関して論じられた方法１００、２００、および／または３００の１つまたは複数のステップに類似している。
【００７６】
図９Ａを参照すると、クライアント装置６０４は、クライアント装置のカメラによって取り込まれる、少なくとも１つの第１の映像フレームおよび１つの第２の映像フレームを含んだ一連の映像フレームを取得する（９０２）。いくつかの実施形態では、第１の映像フレームは、第２の映像フレームより前に取り込まれる。いくつかの実施形態では、第１および第２の映像フレームは、リアル・タイムに取り込まれる。
【００７７】
いくつかの実施形態では、クライアント装置６０４は、一連の映像フレームの各映像フレームと関連付けられた、カメラの個々の運動状態を決定する（９０４）。いくつかの実施形態では、クライアント装置は、第１の映像フレームおよび第２の映像フレームの運動推定を行うことによって、第２の映像フレームと関連付けられた、カメラの第１の運動状態を決定する。いくつかの実施形態では、クライアント装置は、第１の映像フレーム（例えば、図４の以前の映像フレーム４００）の中心ブロック（例えば、図４の中心ブロック４１０）を検出する（９０６）。次いで、クライアント装置は、所定のマッチング基準により第１の映像フレームの中心ブロックと一致する第２の映像フレーム（例えば、図４の処理されるべき映像フレーム４５０）の一致ブロック（例えば、図４の一致ブロック４７０）を特定する（９０６）。
【００７８】
いくつかの実施形態では、第２の映像フレームの一致ブロックを特定するために、まず、クライアント装置６０４は、第２の映像フレームの中心ブロック（例えば、図４の中心ブロック４６０）を選択し（９０８）、第２の映像フレームの中心ブロックは、第１の映像フレームの中心ブロックと同一の領域を有する。クライアント装置６０４は、第２の映像フレームの中心ブロックと第１の映像フレームの中心ブロックとの間の差分値を計算する（９０８）。いくつかの実施形態では、第２の映像フレームの中心ブロックと第１の映像フレームの中心ブロックとの間の差分値は、以下の式（１）で示される平方誤差の和（Ｓ）を使用して計算される。
【数２】
0006026680.tif 000003
いくつかの実施形態では、差分値は、任意の他の適切な方法（複数可）を使用して決定されてもよい。
【００７９】
いくつかの実施形態では、次いで、クライアント装置６０４は、第２の映像フレーム内の１つまたは複数のブロックを選択し（９０８）、各ブロックは、第２の映像フレームの中心ブロックと同一の領域を有する。次いで、クライアント装置は、第２の映像フレームの選択された１つまたは複数のブロックのそれぞれと第１の映像フレームの中心ブロックとの間の差分値を計算する（９０８）。クライアント装置は、第１の映像フレームの中心ブロックとの差分値が最も小さい第２の映像フレームの中心ブロックおよび１つまたは複数のブロックのうちの１つを第２の映像フレームの一致ブロックとして特定する（９０８）。
【００８０】
いくつかの実施形態では、１つまたは複数のブロックは、近似アルゴリズムを使用して第２の映像フレームから選択される。いくつかの実施形態では、近似アルゴリズムは、第２の映像フレームの中心ブロックから第２の映像フレームの周辺領域に向かうサーチングを含む。いくつかの実施形態では、最初は、相対的により大きい類似性（すなわち、より小さいＳ）を有する領域が特定されるまで、大きいステップ長が、ブロックが移動するたびに使用される。次いで、特定された領域内で、縮小されたステップ長が、最も大きい類似性（すなわち、最も小さいＳ）を有する領域をサーチするために使用される。最も大きい類似性、したがって最も小さいＳを有する一致ブロックを特定するために、本明細書に論じられた１ステップずつの近似が行われる。
【００８１】
いくつかの実施形態では、選択されたブロックおよび／または映像フレームは、正方形、長方形、円形、ひし形、ダイヤモンドなど、任意の他の適した形状を有してもよい。いくつかの実施形態では、式（１）以外の任意の他の適切な式に、本出願で論じられた平方誤差の和Ｓ以外が使用されてもよい。いくつかの実施形態では、任意の他の適切なサーチング・アルゴリズムに、近似アルゴリズム以外が使用されてもよい。
【００８２】
図９Ｂを参照すると、いくつかの実施形態では、クライアント装置は、第２の映像フレームの中心ブロックを始点とし、第２の映像フレームの一致ブロックを終点とする第１の運動ベクトル（例えば、図４のベクトル４８０）を特定する（９１０）。いくつかの実施形態では、次いで、クライアント装置は、第１の運動ベクトル（例えば、図４のベクトル４８０）の大きさが所定の閾値の値より大きいかどうかを決定する（９１２）。大きさが所定の閾値の値より大きいという決定により、クライアント装置は、カメラの第１の運動状態が個々の移動状態であることを決定する（９１２）。大きさが所定の閾値の値以下であるという決定により、クライアント装置は、カメラの第１の運動状態が個々の固定状態であることを決定する（９１２）。
【００８３】
いくつかの実施形態では、クライアント装置は、カメラの第１の運動状態のすぐ後に続くカメラの第２の運動状態を決定する（９１４）。カメラの第１の運動状態が個々の移動状態であると決定されるとき、クライアント装置は、さらに、第１の所定の運動大きさ閾値の値を選択して、第２の運動状態を決定する（９１４）。カメラの第１の運動状態が固定状態であると決定されるとき、クライアント装置は、さらに、第２の所定の運動大きさ閾値の値を選択して、第２の運動状態を決定する（９１４）。いくつかの実施形態では、第１の所定の運動大きさ閾値の値は、第２の所定の運動大きさ閾値の値より大きい。そのため、カメラが移動状態にあるときは、より大きい運動大きさが、その状態を固定状態と決定するために選択される。カメラが固定状態にあるときは、より小さい運動大きさが、その状態を移動状態と決定するために選択される。
【００８４】
図９Ｃを参照すると、いくつかの実施形態では、クライアント装置は、一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたかどうかを決定する（９１６）。いくつかの実施形態では、カメラの第１の運動状態が個々の移動状態であると決定されるとき、クライアント装置は、第２の映像フレームの後に続く所定の数の映像フレームを取得する（９１８）。この所定の数は、ユーザによって選択される、またはカメラ設定によってあらかじめ規定される任意の適切な自然数とすることができる。次いで、クライアント装置は、所定の数の映像フレームのうちの連続した映像フレームのペアごとに運動推定を行うことによって、所定の数の映像フレームのそれぞれを取り込むために、カメラの個々の後続の運動状態を決定する（９１８）。いくつかの実施形態では、カメラの個々の後続の運動状態のそれぞれが個々の固定状態であるという決定により、クライアント装置は、個々の移動状態から個々の固定状態への状態の遷移をカメラが受けたことを決定する（９１８）。
【００８５】
いくつかの実施形態では、カメラの第１の運動状態が個々の固定状態であるという決定により、クライアント装置は、さらに、この以下のやり方で、個々の固定状態から個々の移動状態への運動状態の遷移をカメラが受けたかどうかを決定する（９２０）：クライアント装置は、第２の映像フレームの後に続く所定の数の映像フレームを取得する（９２０）。この所定の数は、ユーザによって選択される、またはカメラ設定によってあらかじめ規定される任意の適切な自然数とすることができる。次いで、クライアント装置は、所定の数の映像フレームのうちの連続した映像フレームのペアごとに運動推定を行うことによって、所定の数の映像フレームのそれぞれを取り込むために、カメラの個々の後続の運動状態を決定する（９２０）。いくつかの実施形態では、カメラの個々の後続の運動状態のそれぞれが個々の移動状態であるという決定により、クライアント装置は、個々の固定状態から個々の移動状態への状態の遷移をカメラが受けたことを決定する（９２０）。
【００８６】
図９Ｄを参照すると、いくつかの実施形態では、一連の映像フレームのうちの２つの連続した映像フレームを取り込む間に、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたという決定により、クライアント装置は、２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定する（９２２）。いくつかの実施形態では、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたという決定により、クライアント装置は、後の方の映像フレームにおけるフィーチャ・ポイントの数を数える（９２４）。いくつかの例では、フィーチャ・ポイントは、コーナ特性を含む。いくつかの実施形態では、フィーチャ・ポイントの数は、ＦＡＳＴコーナ検出アルゴリズム、Ｈａｒｒｉｓコーナ検出アルゴリズム、ＣＨＯＧコーナ検出アルゴリズム、およびＦＲＥＡＫコーナ検出アルゴリズムなど、任意の適切なアルゴリズムを使用して数えられる。アップロードされることになる映像フレームの品質は、十分な明瞭度を確保するようにこのステップでチェックされ、フレームの十分な細部がサーバ・システムで検出可能である。クライアント装置は、後の方の映像フレームにおけるフィーチャ・ポイントの数が所定の閾値フィーチャ計数より大きいかどうかを決定する（９２４）。後の方の映像フレームにおけるフィーチャ・ポイントの数が所定のフィーチャ計数より大きいという決定により、クライアント装置は、後の方の映像フレームをシステム・サーバ（例えば、図６および図８、サーバ・システム６０８）にアップロードする（９２４）。
【００８７】
いくつかの実施形態では、カメラの第１の運動状態が個々の固定状態であるという決定により、クライアント装置は、第２の映像フレームの後に続く所定の数の映像フレームを取得する（９２６）。クライアント装置は、所定の数の映像フレームについて、個々の後続の運動ベクトルおよびカメラの個々の後続の運動状態を決定する（９２６）。いくつかの実施形態では、カメラの個々の後続の運動状態が個々の固定状態であるという決定により、クライアント装置は、個々の後続の運動ベクトルが共通方向を共有するかどうかを決定する（９２６）。いくつかの実施形態では、個々の後続の運動ベクトルが共通方向を共有するという決定により、クライアント装置は、個々の後続の運動ベクトルの個々の大きさが第３の大きさ閾値の値よりすべて大きいかどうかを決定する（９２６）。個々の後続の運動ベクトルの個々の大きさが第３の所定の大きさ閾値よりすべて大きいという決定により、クライアント装置は、微小運動と関連付けられた個々の移動状態にカメラの最新の運動状態を変更する（９２６）。いくつかの実施形態では、異なる運動ベクトルの方向の主な成分が位置合わせするときに、個々の後続の運動ベクトルが共通方向を共有することをクライアント装置が決定すれば十分である。いくつかの実施形態では、第３の大きさ閾値の値は、相対的に小さい値であって（例えば、第１および第２の大きさ閾値の値より小さくて）よく、より小さい第３の大きさ閾値が選択されるとき、より多数の映像フレームが取得するようにあらかじめ定められる。
【００８８】
図９Ｅを参照すると、いくつかの実施形態では、カメラの第１の運動状態が個々の固定状態であるという決定により、クライアント装置は、第２の映像フレームの後に続く所定の数の映像フレームを取得する（９２８）。例えば、クライアント装置は、第２の映像フレームの後に続く５つの連続した映像フレームを取得する。次いで、クライアント装置は、所定の数の映像フレームについて、個々の後続の運動ベクトルおよびカメラの個々の後続の運動状態を決定する（９２８）。カメラの個々の後続の運動状態が個々の固定状態であるという決定により、クライアント装置は、個々の後続の運動ベクトルが共通方向を共有するかどうかを決定する（９２８）。個々の後続の運動ベクトルが共通方向を共有するという決定により、クライアント装置は、個々の後続の運動ベクトルの個々の大きさの合計が第４の大きさ閾値の値より大きいかどうかを決定する（９２８）。いくつかの実施形態では、第４の大きさ閾値の値は、ステップ９２６で論じられた第３の大きさ閾値の値より大きい。いくつかの実施形態では、第４の大きさ閾値は、本出願の初めの方で論じられた第１または第２の大きさ閾値の値より大きい、あるいは第１または第２の大きさ閾値の値と同等である。個々の後続の運動ベクトルの個々の大きさの合計が第４の所定の大きさ閾値より大きいという決定により、クライアント装置は、微小運動と関連付けられた個々の移動状態にカメラの最新の運動状態を変更する（９２８）。
【００８９】
いくつかの実施形態では、カメラの第１の運動状態が個々の固定状態であるという決定により、クライアント装置は、第２の映像フレームの後に複数の連続した映像フレームを取得する（９３０）。次いで、クライアント装置は、複数の映像フレームのうちの連続した映像フレームの各ペアの個々の運動ベクトルが反対方向を有するかどうかを決定する（９３０）。複数の映像フレームのうちの連続した映像フレームの各ペアの個々の運動ベクトルが反対方向を有するという決定により、クライアント装置は、運動大きさに基づいた個々の固定状態から個々の移動状態にカメラの運動状態を変更することを差し止めする（９３０）。いくつかの実施形態では、この運動状態は、手ぶれと関連付けられた個々の固定状態と見なされる。いくつかの実施形態では、連続した運動ベクトルが同じ方向を有すると検出されるときまで、手ぶれが存在するときには、カメラの状態は固定であると考えられ、次いで、クライアント装置は、本出願の様々な実施形態の初めの方で論じられたベクトルの大きさを使用してカメラの状態を決定する。
【００９０】
本開示は、本明細書に記載の方法を実行するようにマシンをイネーブルにする命令を記憶するマシン可読記憶媒体をさらに提供する。具体的には、記憶媒体が備えられたシステムまたは機器が提供可能であり、前述の実施形態における任意の実施形態の機能を実装するためのソフトウェア・プログラム・コードが記憶媒体に記憶され、システムまたは機器のコンピュータ（またはＣＰＵもしくはＭＰＵ）が、記憶媒体に記憶されたプログラム・コードを読み取り、実行するようにイネーブルにされる。加えて、コンピュータにおいて動作されるオペレーティング・システムが、実際の動作の一部またはすべてを行うようにプログラム・コードに基づいた命令に従ってさらにイネーブル可能である。さらには、記憶媒体から読み取られたプログラム・コードは、コンピュータに挿入された拡張ボードに設置されたメモリに書込み可能であり、またはコンピュータに接続された拡張ユニットに配置されたメモリに書込み可能であり、次いで、拡張ボードまたは拡張ユニットにおいて配置されたＣＰＵは、実際の動作の一部またはすべてを行うようにプログラム・コードの命令に基づいてイネーブルにされて、前述の実施形態における任意の実施形態の機能を実装する。
【００９１】
プログラム・コードを提供するのに使用される記憶媒体の実施形態は、フロッピ・ディスク、ハード・ディスク、光磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、およびＤＶＤ＋ＲＷなどの）、磁気テープ、不揮発性メモリ・カード、ならびにＲＯＭを含む。任意選択で、通信ネットワークが、プログラム・コードをサーバ・コンピュータからダウンロードするのに使用されてもよい。
【００９２】
特定の実施形態が上記に説明されているが、本出願をこれらの特定の実施形態に限定するように意図されていないことは理解されよう。それどころか、本出願は、添付の特許請求の範囲の趣旨および範囲内にある代替形態、修正形態、および均等形態を含む。多数の具体的な詳細が、本明細書に提示された主題の完全な理解を提供するために示されている。しかし、主題がこれらの具体的な詳細なしでも実施可能であることは、当業者には明らかになろう。他の例では、よく知られている方法、手順、構成要素、および回路は、実施形態の態様を不必要に曖昧にしないように、詳細には説明されていない。
【００９３】
様々な図面の一部が特定の順序でいくつかの論理段階を示しているが、順序依存性でない段階が並べ替えられてもよく、他の段階が組み合わされても、または出現してもよい。いくつかの並び替えまたは他のグループ分けが具体的に述べられているが、他も当業者には明らかになるであろう故、代替形態の包括的な一覧を提示していない。その上、段階は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せで実装可能になることを認識されたい。
【００９４】
説明の目的で、前述の記載は、具体的な実施形態に関して説明されている。しかしながら、上記の例示的な論考は、包括的であるとも、または本出願を開示された正確な形態に限定するようにも意図されていない。多くの修正形態および変形形態が上記の教示に照らして可能である。諸実施形態は、本出願の原理およびその実際の適用例を最良に説明するために選択され、記載されたものであり、それによって、当業者は、企図された特定の使用に適している様々な修正形態を用いて本出願および様々な実施形態を最良に利用することが可能になる。
【要約】
画像識別を行うための方法および装置が開示される。方法は、カメラによって第２の映像フレームより前に取り込まれる少なくとも１つの第１の映像フレームを含んだ一連の映像フレームを取得することと、運動推定を行うことによって第２の映像フレームと関連付けられた、カメラの第１の運動状態を決定することを含んで、一連の映像フレームの各映像フレームと関連付けられた、カメラの個々の運動状態を決定することと、２つの連続した映像フレーム間で、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたかどうかを決定することと、個々の移動状態から個々の固定状態への運動状態の遷移をカメラが受けたという決定により、２つの連続した映像フレームのうちの後の方の映像フレームが、所定のアップローディング基準によりアップロードについて有効であるかどうかを決定することとを含む。【図１】
0006026680.tif 000004
【図２】
0006026680.tif 000005
【図３】
0006026680.tif 000006
【図４】
0006026680.tif 000007
【図５】
0006026680.tif 000008
【図６】
0006026680.tif 000009
【図７】
0006026680.tif 000010
【図８】
0006026680.tif 000011
【図９Ａ】
0006026680.tif 000012
【図９Ｂ】
0006026680.tif 000013
【図９Ｃ】
0006026680.tif 000014
【図９Ｄ】
0006026680.tif 000015
【図９Ｅ】
0006026680.tif 000016