IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7407856環境センサデータを用いる効率的な画像解析
<>
  • 特許-環境センサデータを用いる効率的な画像解析 図1
  • 特許-環境センサデータを用いる効率的な画像解析 図2
  • 特許-環境センサデータを用いる効率的な画像解析 図3
  • 特許-環境センサデータを用いる効率的な画像解析 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-21
(45)【発行日】2024-01-04
(54)【発明の名称】環境センサデータを用いる効率的な画像解析
(51)【国際特許分類】
   G06F 3/0481 20220101AFI20231222BHJP
   G06T 7/00 20170101ALI20231222BHJP
   G06K 7/10 20060101ALI20231222BHJP
【FI】
G06F3/0481
G06T7/00 300F
G06K7/10 372
G06K7/10 436
【請求項の数】 18
【外国語出願】
(21)【出願番号】P 2022065610
(22)【出願日】2022-04-12
(62)【分割の表示】P 2019554333の分割
【原出願日】2018-02-09
(65)【公開番号】P2022101603
(43)【公開日】2022-07-06
【審査請求日】2022-04-15
(31)【優先権主張番号】62/508,873
(32)【優先日】2017-05-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・ジェイ・ブリッジズ
(72)【発明者】
【氏名】アレッサンドロ・フィン
(72)【発明者】
【氏名】ハートウィグ・アダム
(72)【発明者】
【氏名】ジェフリー・エム・ギルバート
【審査官】滝谷 亮一
(56)【参考文献】
【文献】米国特許第08965117(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0481
G06T 7/00
G06K 7/10
(57)【特許請求の範囲】
【請求項1】
画像を取り込むように構成されたカメラと、
データ処理装置と、
前記データ処理装置とデータ通信しているメモリ記憶装置とを備え、前記メモリ記憶装置が、前記データ処理装置によって実行可能であり、そのような実行時に、前記画像の特定の画像について、
粗分類器を使用して前記特定の画像を解析して、前記特定の画像が1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すかどうかを判定することであって、前記粗分類器を使用して前記特定の画像を解析することが、処理レートに基づいて周期的に前記粗分類器による解析を開始することを含み、前の時間枠にわたって前記粗分類器によって解析された1つまたは複数の画像内で、オブジェクトの1つまたは複数のクラスの存在が検出されたかどうかに基づいて、前記処理レートが調節される、判定すること
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すとき、
オブジェクト認識処理を使用して前記特定の画像を解析して、前記特定の画像に示される1つまたは複数のオブジェクトを認識すること、
前記1つまたは複数の認識されたオブジェクトに関するコンテンツを提示すること、および
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示さないとき、前記オブジェクト認識処理を使用して前記特定の画像を解析しないと決定すること
を含む動作を前記データ処理装置に実施させる命令を記憶するメモリ記憶装置とを備えるシステム。
【請求項2】
前記1つまたは複数の特定のクラスのオブジェクトがバーコードクラスを含む、請求項1に記載のシステム。
【請求項3】
前記オブジェクト認識処理がバーコードを復号化するバーコード認識処理を含む、請求項2に記載のシステム。
【請求項4】
前記1つまたは複数の認識されたオブジェクトに関するコンテンツを提示することが、前記バーコードによって表された製品に関連するコンテンツを提示することを含む、請求項3に記載のシステム。
【請求項5】
前記1つまたは複数の特定のクラスのオブジェクトがテキストクラスを含む、請求項1に記載のシステム。
【請求項6】
前記オブジェクト認識処理が光学文字認識ベースのテキスト認識処理を含む、請求項5に記載のシステム。
【請求項7】
前記1つまたは複数の特定のクラスのオブジェクトがメディアカバークラスを含む、請求項1に記載のシステム。
【請求項8】
前記粗分類器が、複数の異なる特定のクラスのオブジェクトのそれぞれについて、前記特定の画像が、そのような複数の異なる特定のクラスのオブジェクトの少なくとも1つを示すかどうかを判定するように構成される複合粗分類器を含む、請求項1に記載のシステム。
【請求項9】
前記複合粗分類器が、共通のコア部分と、前記複数のオブジェクトのクラスについてのクラスごとの確率をそれぞれ決定する複数の分類モジュールとを含む、請求項8に記載のシステム。
【請求項10】
前記特定の画像が、前記1つまたは複数の特定のクラスのオブジェクトの1つのオブジェクトを示し、前記粗分類器が、前記特定の画像内の前記オブジェクトの場所を識別する1つまたは複数の注釈を生成するように構成される、請求項1に記載のシステム。
【請求項11】
前記1つまたは複数の特定のクラスのオブジェクトがテキストクラスを含み、前記特定の画像がテキストを示すとき、前記粗分類器が、前記特定の画像内の前記テキストの向きを識別する1つまたは複数の注釈を生成するように構成される、請求項1に記載のシステム。
【請求項12】
前記動作が、カメラアプリケーションとのユーザ対話に基づいて前記処理レートを調節することを含む、請求項1に記載のシステム。
【請求項13】
前記前の時間枠にわたって、少なくとも1つの画像内でオブジェクトの1つまたは複数のクラスの存在を検出したことに応答して、単位時間当たりにより多くの画像が前記粗分類器によって解析されるように、前記処理レートが増加される、請求項1に記載のシステム。
【請求項14】
前記前の時間枠にわたって、少なくとも1つの画像内でオブジェクトの1つまたは複数のクラスの存在を検出しなかったことに応答して、単位時間当たりにより少ない画像が前記粗分類器によって解析されるように、前記処理レートが低減される、請求項1に記載のシステム。
【請求項15】
前記1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することが、前記1つまたは複数の識別されたオブジェクトに関するリソースへのリンクを含む結果を含む結果ページを提示することを含む、請求項1に記載のシステム。
【請求項16】
前記1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することは、それぞれの識別されたオブジェクトについて、前記オブジェクトを覆うオーバーレイ内の前記オブジェクトに関するコンテンツを提示することを含む、請求項1に記載のシステム。
【請求項17】
画像に含まれるオブジェクトに応答してコンテンツを効率的に提供するためのコンピュータ実装方法であって、
粗分類器を使用してコンピューティングシステムによって特定の画像を解析して、前記特定の画像が1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すかどうかを判定するステップであって、前記粗分類器を使用して前記特定の画像を解析することが、処理レートに基づいて周期的に前記粗分類器による解析を開始することを含み、前の時間枠にわたって前記粗分類器によって解析された1つまたは複数の画像内で、オブジェクトの1つまたは複数のクラスの存在が検出されたかどうかに基づいて、前記処理レートが調節される、ステップと、
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すとき、
オブジェクト認識処理を使用して前記特定の画像を解析して、前記特定の画像に示される1つまたは複数のオブジェクトを、前記コンピューティングシステムによって認識するステップと、
前記1つまたは複数の認識されたオブジェクトに関するコンテンツを、前記コンピューティングシステムによって提示するステップと、
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示さないとき、前記オブジェクト認識処理を使用して前記特定の画像を解析しないと、前記コンピューティングシステムによって決定するステップとを含む、コンピュータ実装方法。
【請求項18】
データ処理装置によって実行可能な命令を格納するメモリ記憶装置であって、そのような実行時に、前記データ処理装置に動作を実行させ、前記動作が、
粗分類器を使用して特定の画像を解析して、前記特定の画像が1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すかどうかを判定するステップであって、前記粗分類器を使用して前記特定の画像を解析することが、処理レートに基づいて周期的に前記粗分類器による解析を開始することを含み、前の時間枠にわたって前記粗分類器によって解析された1つまたは複数の画像内で、オブジェクトの1つまたは複数のクラスの存在が検出されたかどうかに基づいて、前記処理レートが調節される、ステップと、
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示すとき、
オブジェクト認識処理を使用して前記特定の画像を解析して、前記特定の画像に示される1つまたは複数のオブジェクトを認識するステップと、
前記1つまたは複数の認識されたオブジェクトに関するコンテンツを提示するステップと、
前記特定の画像が前記1つまたは複数の特定のクラスのオブジェクトのうちの少なくとも1つのオブジェクトを示さないとき、前記オブジェクト認識処理を使用して前記特定の画像を解析しないと決定するステップとを含む、メモリ記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、環境センサデータを用いる効率的な画像解析に関する。
【背景技術】
【0002】
コンピュータビジョン技法は、コンピュータが画像を解析し、画像から情報を抽出することを可能にする。たとえば、画像からテキストを検出および抽出するために光学的文字認識(OCR)技法が使用され得る。同様に、画像内に示されるオブジェクトを検出するためにエッジ検出技法が使用され得る。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書は、電子デバイスが画像内のオブジェクトを認識し、かつ/または画像から情報を抽出し、情報または画像に関する他のコンテンツを提示することを可能にすると共に、電子デバイスの計算能力または電力の消費を低減する、効率的な画像解析に関する技術を説明する。
【0004】
一般には、本明細書において説明される主題の1つの革新的な態様が、画像ピクセルデータを出力するように構成された画像センサと、画像ピクセルデータを一時的に記憶するように構成された画像バッファと、環境センサと、画像処理装置とを含むデバイスで実施され得る。デバイスはまた、環境センサによって出力された信号に基づいて、画像ピクセルデータの予想画像品質を決定し、予想画像品質に従って画像ピクセルデータを画像処理装置に選択的に提供するように構成されたコントローラをも含み得る。この態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成された、対応する装置、方法、システム、およびコンピュータプログラムを含む。
【0005】
任意選択で、これらおよび他の実装はそれぞれ、以下の特徴のうちの1つまたは複数を含み得る。いくつかの態様では、画像ピクセルデータの予想画像品質がプリセット最小品質しきい値未満であるとコントローラが判定した場合、画像ピクセルデータは画像処理装置に提供されない。画像ピクセルデータの予想画像品質がプリセット最小品質しきい値以上であるとコントローラが判定した場合、画像ピクセルデータは画像処理装置に提供される。
【0006】
いくつかの態様は、選択されたフレームバッファを含む。コントローラは、画像ピクセルデータの予想画像品質に従って、画像バッファから、選択されたフレームバッファに画像ピクセルデータをコピーし、または画像バッファに対する選択されたフレームポインタを更新し、選択されたフレームバッファ内に記憶された画像ピクセルデータを画像処理装置に提供するように構成され得る。
【0007】
いくつかの態様では、コントローラは、画像バッファ内の画像ピクセルデータの予想画像品質を、選択されたフレームバッファの画像ピクセルデータの予想画像品質と比較し、画像バッファ内の画像ピクセルデータの予想画像品質が、選択されたフレームバッファの予想画像品質以上である場合、画像バッファから、選択されたフレームバッファに画像ピクセルデータをコピーし、または画像バッファに対する選択されたフレームポインタを更新するように構成される。
【0008】
いくつかの態様では、環境センサは慣性センサを含み、コントローラは、感知された装置の運動に基づいて予想画像品質を決定するように構成される。いくつかの態様では、コントローラは、環境センサによって出力された信号と、画像センサによって出力された信号とに基づいて予想画像品質を決定するように構成される。いくつかの態様では、画像センサによって出力された信号は、画像センサによって出力された画像ピクセルデータに関する輝度情報、フォーカス情報、またはヒストグラムデータのうちの少なくとも1つを含む。
【0009】
一般には、本明細書において説明される主題の別の態様は、画像ピクセルデータを生成すること、画像バッファ内に画像ピクセルデータを一時的に記憶すること、環境信号に基づいて画像ピクセルデータの予想画像品質を決定すること、および予想画像品質に従って画像ピクセルデータを選択的に画像処理することを含む方法で実施され得る。この態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
【0010】
任意選択で、これらおよび他の実装はそれぞれ、以下の特徴のうちの1つまたは複数を含み得る。いくつかの態様では、画像ピクセルデータの予想画像品質がプリセット最小品質しきい値未満であると判定された場合、画像ピクセルデータは画像処理のために提供されない。
【0011】
いくつかの態様は、画像ピクセルデータの予想画像品質に従って、画像バッファから、選択されたフレームバッファに画像ピクセルデータをコピーすること、または画像バッファに対するポインタを更新することを含む。選択されたフレームバッファ内に記憶された画像ピクセルデータは、画像処理のために提供され得る。
【0012】
いくつかの態様では、環境信号は慣性信号を含み、予想画像品質が、感知された運動に基づいて決定される。予想画像品質は、環境信号と、画像ピクセルデータと共に生成された画像情報信号とに基づいて決定され得る。画像情報信号は、生成された画像ピクセルデータに関する輝度情報、フォーカス情報、またはヒストグラムデータのうちの少なくとも1つを含み得る。
【0013】
一般には、本明細書において説明される主題の別の態様は、それぞれのオブジェクトクラスに対応する1つまたは複数の画像認識モジュールを含む画像処理装置で実施され得る。各画像認識モジュールは、それぞれのオブジェクトクラス内の1つまたは複数のオブジェクトを識別するように構成され得る。画像処理装置はまた、入力画像を受け取り、入力画像がオブジェクトクラスのうちの1つを識別する画像特徴を含むかどうかを判定し、識別されたオブジェクトクラスに対応する画像認識モジュールによる処理のための入力画像を提供するように構成された粗認識モジュールをも含み得る。この態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
【0014】
任意選択で、これらおよび他の実装はそれぞれ、以下の特徴のうちの1つまたは複数を含み得る。いくつかの態様では、粗認識モジュールは、オブジェクトの位置および/または方位を示す情報を画像認識モジュールに提供するように構成される。いくつかの態様では、画像認識モジュールは、テキストオブジェクトクラス、ランドマークオブジェクトクラス、バーコードオブジェクトクラス、メディアオブジェクトクラス、およびアートワークオブジェクトクラスのうちの1つまたは複数に対応する。
【0015】
いくつかの態様では、1つまたは複数の画像認識モジュールは、それぞれのオブジェクトクラス内の識別されたオブジェクトを、関連する信頼スコアと共に出力するように構成される。1つまたは複数の画像認識モジュールは、画像認識モジュールの前の出力に基づいて、識別されたオブジェクトについての出力信頼スコアを調節するように構成され得る。
【0016】
いくつかの態様では、出力信頼スコアは、識別されたオブジェクトまたは識別されたオブジェクト内のテキストと、以前に識別されたオブジェクトとの間の編集距離、以前に識別されたオブジェクトの位置、および以前に識別されたオブジェクトに関連する信頼スコアのうちの少なくとも1つに基づいて調節され得る。いくつかの態様は通信ユニットを含む。粗認識モジュールは、1つまたは複数の画像認識モジュールから遠隔に配置され得る。
【0017】
いくつかの態様では、粗認識モジュールは、画像認識モジュールによる処理のための入力画像縮小バージョンを提供するように構成される。入力画像の縮小バージョンは、入力画像の低解像度バージョン、トリミングバージョン、またはベクトル表現のうちの1つであり得る。
【0018】
一般には、本明細書において説明される主題の別の態様は、入力画像を受け取ること、入力画像が1つまたは複数のオブジェクトクラスのうちの1つを識別する画像特徴を含むかどうかを判定すること、および入力画像を画像処理して、識別されたオブジェクトクラス内の1つまたは複数のオブジェクトを識別することを含む画像処理方法で実施され得る。この態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
【0019】
任意選択で、これらおよび他の実装はそれぞれ、以下の特徴のうちの1つまたは複数を含み得る。いくつかの態様は、オブジェクトの位置および/または方位を示す情報を決定することを含む。入力画像を画像処理して、1つまたは複数のオブジェクトを識別することは、オブジェクトの位置および/または方位を示す、前記決定された情報に基づき得る。オブジェクトクラスは、テキストオブジェクトクラス、ランドマークオブジェクトクラス、バーコードオブジェクトクラス、メディアオブジェクトクラス、およびアートワークオブジェクトクラスのうちの1つまたは複数を含み得る。
【0020】
いくつかの態様は、識別されたオブジェクトを、関連する信頼スコアと共に出力すること、および前の出力に基づいて、識別されたオブジェクトについての出力信頼スコアを調節することを含む。いくつかの態様では、出力信頼スコアは、識別されたオブジェクトと以前に識別されたオブジェクトとの間の編集距離、以前に識別されたオブジェクトの位置、および以前に識別されたオブジェクトに関連する信頼スコアのうちの少なくとも1つに基づいて調節される。
【0021】
いくつかの態様は、画像処理についての入力画像の縮小バージョンを生成して、1つまたは複数のオブジェクトを識別することを含む。入力画像の縮小バージョンは、入力画像の低解像度バージョン、トリミングバージョン、またはベクトル表現のうちの1つであり得る。
【0022】
一般には、本明細書において説明される主題の別の態様は、画像を取り込むように構成されたカメラと、カメラの運動を検出するように構成された1つまたは複数の環境センサと、データ処理装置と、データ処理装置とデータ通信しているメモリ記憶装置とを含む画像処理システムで実施され得る。メモリ記憶装置は、データ処理装置によって実行可能であり、そのような実行時に、モバイルデバイスカメラによって取り込まれた多数の画像のそれぞれについて、カメラが画像を取り込んだ時のカメラの運動を示すデータにアクセスすることを含む動作をデータ処理装置に実施させる命令を記憶し得る。データ処理装置は、各画像についてのカメラの運動を示すデータに基づいて、解析のための特定の画像を画像から選択し得る。データ処理装置は、特定の画像を解析して、特定の画像内に示される1つまたは複数のオブジェクトを認識し、1つまたは複数の認識されたオブジェクトに関するコンテンツを提示し得る。この態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法のアクションを実施するように構成された、対応する方法、装置、およびコンピュータプログラムを含む。
【0023】
任意選択で、これらおよび他の実装はそれぞれ、以下の特徴のうちの1つまたは複数を含み得る。いくつかの態様では、動作は、粗分類器を使用して特定の画像を解析して、特定の画像内に示されるオブジェクトの1つまたは複数のクラスの存在を検出することを含み得る。特定の画像内のオブジェクトの1つまたは複数のクラスの存在を検出したことに応答して、特定の画像は、特定の画像内に示される1つまたは複数のオブジェクトを認識するように解析され得る。
【0024】
いくつかの態様では、画像を解析して、画像によって示される1つまたは複数のオブジェクトを認識することは、1つまたは複数のコンピュータビジョン技法を使用して画像を解析することを含む。モバイルデバイスの運動を示すデータは、(i)モバイルデバイスの加速度計センサから受け取った慣性加速度測定値、または(ii)モバイルデバイスのジャイロスコープから受け取った方位データの少なくとも一方を含み得る。
【0025】
いくつかの態様では、解析のための特定の画像を選択することは、特定の画像が、カメラが多数の画像内のそれぞれの他の画像を取り込む時のそれぞれの運動の量に比べて、カメラが特定の画像を取り込んだ時に少なくともある量の運動を有することに基づいて、特定の画像を選択することを含み得る。各画像についてのモバイルデバイスの運動を示すデータは、画像が取り込まれた時のモバイルデバイスの回転運動を記述するデータを含み得る。いくつかの態様では、解析のための特定の画像を選択することは、特定の画像が取り込まれた時のモバイルデバイスの回転運動がしきい量の回転運動未満であることに基づいて、特定の画像を選択することを含み得る。
【0026】
いくつかの態様では、動作は、粗分類器による前の画像の解析の完了後に、粗分類器によって解析すべき画像を求める要求を受け取ることを含み得る。解析のための特定の画像を選択することは、前の画像が解析のために粗分類器に送られた後、特定の画像が、カメラによって取り込まれた画像のセット内の他の画像と比べて少なくともある量の運動を有することに基づいて、特定の画像を選択することを含み得る。
【0027】
いくつかの態様では、粗分類器を使用して特定の画像を解析することは、処理レートに基づいて周期的に粗分類器による解析を開始することを含み得る。動作は、カメラアプリケーションとのユーザ対話に基づいて処理レートを調節することを含み得る。動作は、前の時間枠にわたって、粗分類器によって解析された1つまたは複数の画像内で、オブジェクトの1つまたは複数のクラスの存在が検出されたかどうかに基づいて、処理レートを調節することを含み得る。前の時間枠にわたって、少なくとも1つの画像内でオブジェクトの1つまたは複数のクラスの存在を検出したことに応答して、単位時間当たりにより多くの画像が粗分類器によって解析されるように、処理レートが増加され得る。前の時間枠にわたって、少なくとも1つの画像内でオブジェクトの1つまたは複数のクラスの存在を検出しなかったことに応答して、単位時間当たりにより少ない画像が粗分類器によって解析されるように、処理レートが低減され得る。
【0028】
いくつかの態様では、1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することは、1つまたは複数の識別されたオブジェクトに関するリソースへのリンクを含む結果を含む結果ページを提示することを含み得る。1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することは、それぞれの識別されたオブジェクトについて、オブジェクトを覆うオーバーレイ内のオブジェクトに関するコンテンツを提示することを含み得る。1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することは、ユーザによって選択されたとき、1つまたは複数の識別されたオブジェクトに関連する特定のアクションを開始する、選択可能なユーザインターフェース要素を提示することを含み得る。1つまたは複数の識別されたオブジェクトに関するコンテンツを提示することは、クラスのオブジェクトの存在が粗分類器によって検出された各クラスについて、クラスに関するコンテンツアイテムを選択すること、およびクラスのオブジェクトの存在が粗分類器によって検出された各クラスについてコンテンツアイテムを提示することを含み得る。
【0029】
いくつかの態様では、モバイルデバイスカメラの運動を示すデータに基づいて、解析のための特定の画像を選択することは、画像の視覚特性を示すデータとは無関係の特定の画像を選択することを含み得る。モバイルデバイスカメラの運動を示すデータに基づいて、解析のための特定の画像を選択することは、各画像の視覚特性を示すデータと共に、各画像についてのモバイルデバイスカメラの運動を示すデータに基づいて、特定の画像を選択することを含み得る。各画像の視覚特性を示すデータは、(i)輝度データ、(ii)フォーカスデータ、または(iii)ヒストグラムデータのうちの少なくとも1つを含み得る。
【0030】
いくつかの態様では、解析のための特定の画像を選択することは、各画像について、画像についてのモバイルデバイスカメラの運動を示すデータに基づいて、画像の予想画像品質を決定すること、および最高の予想画像品質を有する画像を特定の画像として選択することを含み得る。解析のための特定の画像を選択することは、第1の画像について、第1の画像についてのモバイルデバイスカメラの運動を示すデータに基づいて、第1の画像の第1の予想画像品質を決定することを含み得る。第1の画像についての画像データは、第1の画像の第1の予想画像品質に基づいて、選択されたフレームバッファ内に記憶され得る。第2の画像の第2の予想画像品質は、第2の画像についてのモバイルデバイスカメラの運動を示すデータに基づいて決定され得る。選択されたフレームバッファにおいて、第2の予想画像品質が第1の予想画像品質よりも高いことに基づいて、第1の画像についての画像データを第2の画像についての画像データで置き換えるように決定が行われ得る。
【0031】
いくつかの態様は、粗分類器を使用して第2の画像を解析して、特定の画像内で示されるオブジェクトの1つまたは複数のクラスの存在を検出すること、および粗分類器を使用して特定の画像内に示されるオブジェクトの1つまたは複数のクラスの存在を検出することができないことに応答して、特定の画像内に示される1つまたは複数のオブジェクトを認識するために第2の画像を解析しないように決定することを含み得る。
【0032】
本明細書において説明される主題は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態で実装され得る。画像を取り込むカメラの運動を示すデータに基づいて、解析のための画像を選択することによって、各画像の視覚特性の解析に基づいて画像を選択することよりも少ないコンピューティングリソースおよび少ない電力を使用して、より高い品質の画像が、より詳細な解析のために迅速に選択され得る。後続の解析のために画像のストリームの単一の最良の画像(またはしきい数未満の画像)のみを記憶することによって、消費されるメモリ量が削減され、他のアプリケーションのためにメモリ空間が解放される。これらの特徴はまた、より高い品質画像がコンピュータビジョン解析において使用されることを保証し、その結果、より正確なビジョン解析結果が得られ、画像内で認識されたオブジェクトに基づいて、より関連のあるコンテンツが提供される。
【0033】
粗分類器を使用して特定のクラスオブジェクトの存在を識別し、クラスのうちの1つのオブジェクトを示すと分類された画像に対するさらなるコンピュータビジョン解析を実施するだけによって、コンピュータビジョン解析技法を使用して解析される画像数が削減される。さらに、マルチクラス粗分類器が、粗分類器によって検出されたタイプに合致する微細分類器に追加の処理を限定し得る。後のステージのコンピュータビジョン解析は、粗い分類および画像選択よりも計算集約的であり得るので、これにより、コンピューティングリソースに対して課される要求が大いに削減され、他のアプリケーションによる使用のために計算パワーおよび電力が温存される。さらに、これにより、解析のためにキュー内に配置される画像数が削減されるので、画像が解析される速度が改善され得る。本明細書において説明される画像選択技法および画像解析技法はまた、アプリケーションの主な挙動(たとえば、カメラで写真を撮ること)を損なうことなく、既存のアプリケーションへの視覚解析のモードレス統合を可能にする。
【0034】
前述の主題の様々な特徴および利点が、以下で図に関連して説明される。追加の特徴および利点は、本明細書および特許請求の範囲において説明される主題から明らかである。
【図面の簡単な説明】
【0035】
図1】例示的モバイルデバイスが画像を解析し、画像内に示される1つまたは複数のオブジェクトに関するコンテンツを提示する環境のブロック図である。
図2】画像を解析し、画像内に示される1つまたは複数のオブジェクトに関するコンテンツを提示するための例示的プロセスを示す流れ図である。
図3】解析のための画像を選択するための例示的プロセスを示す流れ図である。
図4】画像を解析するための処理レートを調節するための例示的プロセスを示す流れ図である。
【発明を実施するための形態】
【0036】
様々な図面内の同様の参照番号および名称は同様の要素を示す。
【0037】
一般には、本明細書において説明されるシステムおよび技法は、画像を解析するために使用されるコンピューティングリソースおよび電力の消費を削減し得ると共に、高品質であると予想される画像を選択的に解析することによって、画像解析の精度をも改善する。たとえば、画像が解析され、画像内に示されるオブジェクトが認識され、オブジェクトについての追加の情報を提供する目的で、画像内に示されるオブジェクトについての情報が抽出され得る。モバイルデバイス、たとえばスマートフォンまたはタブレットコンピューティングデバイスのユーザは、モバイルデバイスのカメラを使用してオブジェクトの画像を取り込み得る。たとえば、画像が取り込まれた時のカメラの運動を示すデータに基づいて決定された画像の予想品質に基づいて、画像のうちの1つまたは複数が解析のために選択され得る。選択された画像が解析され、モバイルデバイスに提示するための追加のコンテンツが提供され得る。たとえば、コンテンツが、モバイルデバイスのユーザインターフェース内の画像と共に表示され得、または解析の結果が後の使用のために記憶され得る。
【0038】
モバイルデバイスは通常、デスクトップコンピュータおよびサーバよりも低い計算機能力およびデータ記憶容量を有する。さらに、モバイルデバイスは通常、限られた電池電力および熱放散能力を有する。したがって、コンピューティングリソースおよび電池電力の利用を削減する方式で画像解析を実施するための技法が、他のアプリケーションおよび/またはプロセスのために限定された計算機能力および電力を温存すること、およびモバイルデバイスによって生成された熱量を削減することによって、モバイルデバイスの機能および性能を改善し得る。
【0039】
いくつかの実装では、画像解析が、ビデオストリームなどの画像のシーケンスのうちの画像に対して実施される。たとえば、ユーザが、画像内に示されるオブジェクトに関するコンテンツを提供するカメラモードを活動化し、カメラを様々なオブジェクトに向け得る。別の例では、カメラアプリケーションがアクティブであるとき、カメラアプリケーションが一般にこの特徴をアクティブにし得る。これらの例では、画像のシーケンス内の画像のいくつか(たとえば、すべて未満)が解析され、画像内に示されるオブジェクトが認識され得る。本明細書において説明される技法は、1つまたは複数の低電力消費ステージを使用して、さらなる解析のための画像を選択し、解析される画像数を削減し、解析プロセスによって消費される計算機能力および電力の量を削減し得る。
【0040】
いくつかの実装では、低電力消費ステージが画像の予想画像品質を決定し得る。たとえば、予想画像品質が、デバイスの環境センサに基づいて決定され得る。予想画像品質の決定は、示されるオブジェクトを解析するためのさらなる解析よりも、必要とする処理リソースが少なくなり得、したがって消費される電力が少なくなる。このようにして、低い画像品質を有する画像を解析するための不必要なリソースの消費が回避され得る。
【0041】
いくつかの実装では、低電力消費ステージが、画像がオブジェクトクラスを識別する画像特徴を含むかどうかを決定し得る。そのような画像特徴を含む画像が、識別されたクラスに対応する画像認識モジュールによるさらなる解析のために提供され得る。そのような画像特徴の決定は、示されるオブジェクトを認識するためのさらなる処理よりも、必要とする処理リソースが少なくなり得、したがって消費される電力が少なくなる。このようにして、どんなオブジェクトも含まない画像を解析するための不必要なリソースの消費が回避され得る。さらに、識別されたクラスに対応する画像認識モジュールによるさらなる解析のための画像を提供することによって、画像認識モジュールがより効率的にされ得、システムの処理要件におけるさらなる削減が実現され得る。
【0042】
図1は、例示的モバイルデバイス110が画像を解析し、画像内に示される1つまたは複数のオブジェクトに関するコンテンツを提示する環境100のブロック図である。モバイルデバイス110は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ウェアラブルデバイス、または他の適切なタイプのモバイルデバイスであり得る。モバイルデバイス110が図1に示され、本明細書において説明されるが、モバイルデバイス110の構成要素が、他のタイプの電子デバイス(たとえば、デスクトップコンピュータ)内に含まれ得、モバイルデバイス110によって実施される技法が、他の電子デバイスによって実施され得る。
【0043】
モバイルデバイス110はカメラ112およびカメラアプリケーション114を含む。カメラ112は静止画像(たとえば、デジタル写真)およびビデオを取り込む。カメラアプリケーション114は、特定のプラットフォームまたは特定のデバイス上での使用のために開発されたネイティブアプリケーションであり得る。カメラアプリケーション114は、ユーザがカメラ112を制御し、カメラ112によって取り込まれた画像およびビデオを閲覧することを可能にする。カメラ112は、画像センサによって取り込まれた画像データ(たとえば、画像ピクセルデータ)を出力するように構成される画像センサを含み得る。画像の各ピクセルについてのピクセルデータは、ピクセルの1つまたは複数の視覚特性、たとえばピクセルのカラーを指定し得る。
【0044】
カメラアプリケーション114はまた、取り込まれた画像に対して画像選択技法および/または画像解析技法を実施し、画像内で認識されたオブジェクトに関するコンテンツを提供し得る。いくつかの実装では、カメラアプリケーション114は、ユーザがアイコンを選択したことに応答して、画像を取り込み、画像を解析する。たとえば、ユーザは、オブジェクトにカメラ112を向け、オブジェクトの画像を取り込むためのアイコンを選択し、オブジェクトに関するコンテンツを受け取り得る。
【0045】
いくつかの実装では、カメラアプリケーション114は、たとえば常時オン状態で、カメラ112によって取り込まれている画像のストリームに対して、画像解析プロセスを自動的に実施する。たとえば、カメラアプリケーション114は、ビデオストリームから画像を選択し、選択した画像を解析し、画像内に示されるオブジェクトを認識し、認識したオブジェクトに関するコンテンツを提供し得る。特定の例では、カメラアプリケーション114は、ユーザがオブジェクトにカメラ112を向けている間にカメラ112によって取り込まれた画像のシーケンスから画像を選択し得る。別の例では、カメラアプリケーション114は、カメラ112を使用して、カメラ112(またはモバイルデバイス110)のビューファインダ内に見えるシーンの画像を取り込み得る。
【0046】
以下の説明は、画像に対して画像選択技法および画像解析技法を実施するカメラアプリケーション114に関するものであるが、技法(またはその一部)は、別のアプリケーション(たとえば、カメラにアクセスし、かつ/またはカメラを制御し、カメラによって取り込まれた画像に関するコンテンツを提示し得るカメラ第1アプリケーション)、モバイルデバイスのハードウェア回路、コントローラ、あるいは別の適切なハードウェアおよび/またはソフトウェア構成要素によって実施され得る。
【0047】
カメラアプリケーション114は、1つまたは複数の低電力消費ステージを使用して、オブジェクト認識のために解析される画像を選択し得る。1つまたは複数のステージは、後のステージにおいて解析される画像が十分な品質であり、ユーザの関心を引き得る1つまたは複数のオブジェクトを示すことを保証し得る。このことにより、モバイルデバイス110が、オブジェクトが認識され得ない画像、またはコンテンツが識別され得ない画像に対して計算資源および電池電力を浪費しないことが可能となる。
【0048】
カメラアプリケーション114は、画像が取り込まれた時のカメラ112の運動を示すデータ(「運動データ」)に基づいて、さらなる処理のために画像ストリームから画像を選択する画像セレクタ122を含む。画像が取り込まれた時の運動データは、画像が取り込まれた後の指定の時間枠までの、画像が取り込まれる前の指定の時間枠を開始するタイムウィンドウの間のカメラ112についての運動データを含み得る。たとえば、画像を取り込んでいる間にカメラ112が移動している場合、画像は、カメラ112が静止している場合よりも低い品質である(たとえば、ぼやける)可能性が高い。画像の視覚特性の代わりに画像についての運動データを使用することによって、選択が、より迅速に、かつより少ないコンピューティングリソースを使用することによって実施され得る。たとえば、カメラアプリケーション114は、画像のどんな視覚特性も検出および評価することなく、画像についての運動データを使用するだけで、複数の画像から画像を選択し得る。以下で説明されるように、カメラアプリケーション114はまた、画像の視覚特性を画像についての運動データと組み合わせて使用し、さらなる処理のための画像を選択し得る。
【0049】
カメラアプリケーション114は、モバイルデバイス110の慣性測定ユニット(IMU)113または別のタイプの環境センサから、画像についての運動データを取得し、または受け取り得る。たとえば、カメラアプリケーション114がカメラ112に画像を取り込ませるとき、カメラアプリケーション114は画像についての運動データを取得し得る。IMUは、1つまたは複数の加速度計、1つまたは複数のジャイロスコープ、および/または1つまたは複数の磁力計を含み得る電子デバイスである。IMUデータは、ゲーム回転ベクトルの形式であり得る。いくつかの実装では、モバイルデバイス110は、別々の加速度計、ジャイロスコープ、および/または磁力計を含み得る。画像についての運動データは、IMU113から受け取った慣性加速度測定値、および/またはIMU113もしくは別々のジャイロスコープから受け取った方位データを含み得る。
【0050】
いくつかの実装では、画像についての運動データは、ジャイロスコープから受け取った方位データのみを含む。たとえば、ジャイロスコープからの方位データは、画像が取り込まれた時に生じた方位変化を決定するために使用され得る。
【0051】
カメラアプリケーション114は、画像についての運動データ(たとえば、IMU113から受け取ったデータ)を使用して、画像についての品質スコアを決定し得る。画像についての品質スコアは、画像の予想画像品質を表し得る。画像についての品質スコアは、運動データを使用して決定され得る、画像が取り込まれた時のカメラ112の回転運動の測定値に基づき(たとえば、それに反比例し)得る。画像についての品質スコアは、画像が取り込まれた時のカメラ112の方位変化に基づき得る。たとえば、画像が取り込まれる前、画像が取り込まれる間、および画像が取り込まれた後のモバイルデバイス110の方位を指定する方位データが使用され、画像が取り込まれた時にカメラ112の方位が変化していたかどうかが判定され得る。
【0052】
カメラアプリケーション114は、画像についての品質スコアに基づいて、複数の画像から、さらなる処理のための1つまたは複数の画像を選択し得る。たとえば、カメラアプリケーション114は、最高の品質スコア(たとえば、最小の量の回転運動または最小の量の運動)を有する画像を、さらなる処理のために選択し得る。カメラアプリケーション114はまた、画像の新しさを使用して、さらなる処理のためにどれを使用するかを決定し得る。次いで、カメラアプリケーション114は、たとえば以下で説明される粗分類器123による、さらなる処理のために、選択された画像についての画像データを送り得る。次いで、カメラアプリケーション114は、追加の画像を取り込み、追加の画像から、さらなる処理のための別の画像を選択し得る。この例では、粗分類器123は、別の画像を要求し、または別の画像の準備ができていることをカメラアプリケーション114に通知し得る。それに応答して、カメラアプリケーション114は、選択された画像を粗分類器123に送り得る。
【0053】
粗分類器123が前の画像の処理を終了し、あるいは別の画像を解析する準備ができるのを待機する間、カメラアプリケーション114は、継続的に画像を解析し、最良の画像を記憶し得る。たとえば、カメラアプリケーション114は、前の画像についての画像データが粗分類器123に送られた以降に取り込まれた画像のセットの中の、関連する最高の品質スコアを有する最高品質の画像についての画像データを記憶し得る。待機している間、カメラアプリケーション114は、別の画像を受け取り得る。カメラアプリケーション114は、新たに受け取った画像についての品質スコア(たとえば、回転運動の尺度)を決定し得る。カメラアプリケーション114は、記憶された最良の画像についての品質スコアを、新たに受け取った画像についての品質スコアと比較し得る。新たに受け取った画像についての品質スコアが、記憶された最良の画像についての品質スコアよりも高い場合、カメラアプリケーション114は、最高品質の画像についての記憶された画像データを、新たに受け取った画像についての画像データで置き換える。このようにして、カメラアプリケーション114は、後続の解析を実施すべき時まで、待機している間に受け取った最高品質の画像についての画像データを記憶している。最高品質の画像についての画像データだけを記憶することによって、画像データを記憶するために使用されるメモリ量が、複数の画像についての画像データを記憶することに比べて削減される。
【0054】
カメラアプリケーション114は、バッファを使用して画像データを記憶し得る。たとえば、カメラアプリケーション114は、画像バッファ内の新たに受け取った画像についての画像データを記憶し得る。カメラアプリケーション114はまた、選択された画像バッファ内の最高品質の画像についての画像データを記憶し得る。新たに受け取った画像が、選択された画像バッファ内に画像データが記憶される画像よりも高い品質スコアを有する場合、カメラアプリケーション114は、選択された画像バッファ内の画像データを、新たに受け取った画像についての画像データで置き換え得る。別の例では、新たに受け取った画像が、選択された画像バッファ内に画像データが記憶される画像よりも高い品質スコアを有する場合、カメラアプリケーション114は、選択されたフレームポインタを、画像バッファを指し示すように更新し得る。カメラアプリケーション114は、たとえば、所定の時間間隔の後、または粗分類器123が別の画像を処理する準備ができたとき、選択された画像バッファ内に記憶された画像データを粗分類器123に提供し得る。
【0055】
いくつかの実装では、カメラアプリケーション114は、各画像が取り込まれた時と共に、各画像が取り込まれた時のカメラ112の運動(たとえば、回転運動)を示すデータに基づいて、複数の画像から、さらなる解析のための画像を選択する。たとえば、より古い画像についての品質スコアよりもわずかに低い品質スコア(たとえば、しきい量以内)を有する、より最近に受け取った画像が好ましいことがあり、したがって選択され得る。
【0056】
複数の画像から画像を選択するために3段階の方策が使用され得る。この例では、画像が第1のしきい値未満の品質スコアを有する場合、画像の品質が画像内に示されるオブジェクトを検出または認識するのに十分ではないので、画像は全く使用されないことがある。そのような低品質画像を後続のステージに送らないことによって、普通なら使用されるはずの計算機能力および電力が回避される。1つまたは複数の画像が(第1のしきい値よりも高い)第2のしきい値よりも高い品質スコアを有する場合、カメラアプリケーション114は、第2のしきい値よりも高い品質スコアを有する最新の画像を選択し得る。複数の画像のうち、第2のしきい値よりも高い品質スコアを有する画像がなく、1つまたは複数の画像が2つのしきい値の間の品質スコアを有する場合、カメラアプリケーション114は、最高の品質スコアを有する1つまたは複数の画像のうちの1つを選択し得る。
【0057】
いくつかの実装では、カメラアプリケーション114は、画像が取り込まれた時のカメラ114の運動を示すデータと、画像の視覚特性とに基づいて、さらなる処理のための画像を選択し得る。カメラ114の運動を示すデータを使用することは、視覚特性だけを使用することと比べて、画像の品質を決定するのに必要とされる視覚特性の数および/または視覚特性のタイプを削減し得る。
【0058】
いくつかの実装では、カメラアプリケーション114は、画像の光特徴に基づいて、さらなる解析のための画像を選択し得る。光特徴は、視覚入力に基づいて計算されるが、ビジョン解析を使用して画像を検査するよりも計算集約的でない方式で計算されるものである。たとえば、画像についての品質スコアは、カメラ114の運動を示すデータと、画像の光特徴の組合せに基づき得る。光特徴は、画像についてのメタデータ内で指定され得る。光特徴は、輝度情報、フォーカス情報、画像内の高レベルコントラストを含む特性を示すヒストグラム、および/または(たとえば、前の画像内のオブジェクトの位置と、この現画像内の同一のオブジェクトの位置とに基づく)画像内のオブジェクトの運動を含み得る。光データと同様に、メタデータ内で既に指定されている画像の他の特徴が使用され得る。このデータはさらなる画像解析を必要としないからである。
【0059】
いくつかの実装では、画像選択プロセスは、ハードウェア、たとえばモバイルデバイス110のプロセッサとは別々のハードウェア回路またはコントローラ内で実施される。このようにして、モバイルデバイスのプロセッサは、どんなデータも処理する必要がなく、画像選択プロセスについてのどんな命令も実行する必要がなく、その結果、プロセッサに対して課される要求がさらに低くなる。たとえば、ハードウェア回路は、IMU、ジャイロスコープ、または他のセンサから運動データを受け取り、データを使用して、画像が粗分類器123に送られるべき十分な品質(たとえば、運動または回転ジッタのしきい量未満)を有するかどうかを判定する。画像がハードウェア回路によって十分な品質を有すると検出される場合、ハードウェア回路はプロセッサをウェイクアップし、画像に関する粗分類をプロセッサに実施させる。
【0060】
粗分類器123は複数の粗分類器を含み得、画像内に示されるオブジェクトの1つまたは複数のクラスの存在を検出する。粗分類器123は、画像がオブジェクトのクラスを示す1つまたは複数の特徴を含むか否かに基づいて、オブジェクトのクラスの存在を検出し得る。粗分類器123は、低い計算解析を実施して、そのオブジェクトのクラス内のオブジェクトの存在を検出するための軽量モデルを含み得る。たとえば、粗分類器123は、オブジェクトの各クラスについて、画像内に示される視覚特徴の限定されたセットを検出し、画像がオブジェクトのクラス内に含まれるオブジェクトを示すかどうかを判定し得る。特定の例では、粗分類器123は、画像が以下のクラスのうちの1つまたは複数に分類されるオブジェクトを示すかどうかを検出し得る。テキスト、バーコード、ランドマーク、メディアオブジェクト(たとえば、アルバムカバー、映画ポスタなど)、またはアートワークオブジェクト(たとえば、絵画、彫刻など)。バーコードについて、粗分類器123は、画像が相異なる幅を有する平行線を含むかどうかを判定し得る。
【0061】
いくつかの実装では、粗分類器123は、トレーニングされた機械学習モデル(たとえば、畳込みニューラルネットワーク)を使用して、画像の視覚特徴に基づいて画像を分類する。たとえば、機械学習モデルは、それぞれのクラスでラベル付けされるラベル付き画像を使用してトレーニングされ得る。機械学習モデルは、オブジェクトのクラスの特定のセットのうちの0個以上に画像を分類するようにトレーニングされ得る。機械学習モデルは、画像の視覚特徴に関するデータを入力として受け取り、オブジェクトのクラスの特定のセット内のオブジェクトのクラスのうちの0個以上への分類を出力し得る。
【0062】
粗分類器123は、オブジェクトのクラスが画像内で検出されたかどうかを指定するデータを出力し得る。粗分類器123はまた、オブジェクトのクラスの存在が画像内で検出されたことの信頼度を示す信頼値、および/または実際のオブジェクト、たとえばエッフェル塔が画像内に示されることの信頼度を示す信頼値を出力し得る。
【0063】
いくつかの実装では、カメラアプリケーション114は複数の粗分類器を含む。この例では、各粗分類器は、オブジェクトの特定のクラスの存在を検出し、特定のクラスについての信頼スコアを出力し得る。複数の粗分類器のそれぞれは、それぞれの他の粗分類器とはオブジェクトの異なるクラスの存在を検出し得る。
【0064】
いくつかの実装では、粗分類器123は、複数の粗分類器の信頼スコアを、たとえば同時に決定し得る複合粗分類器123である。たとえば、複合粗分類器は、画像について、オブジェクトの複数の異なるクラスについての信頼スコアを同時に決定し得る。複合粗分類器は、各分類器に共通のコア部分と、オブジェクトのクラスについてのクラスごとの確率をそれぞれ決定するいくつかのモジュールとを含み得る。これにより、画像内に示されるオブジェクトの1つまたは複数のクラスの存在を検出するためにカメラアプリケーション114によって実施される全計算が、たとえば冗長な計算を削減することによって削減され得る。
【0065】
粗分類器123はまた、画像内で検出されたオブジェクトについてのデータを指定する注釈を出力し、データを1つまたは複数のビジョンアナライザ134に提供し得る。たとえば、粗分類器123が画像内のテキストの存在を検出した場合、粗分類器123は、テキストがどこに配置されるか、およびテキストの向きを指定する注釈を提供し得る。粗分類器123はまた、検出されたテキストのタイプ、たとえば電話番号、住所などを指定する注釈を提供し得る。そのようなデータは、テキストアナライザ126によって後で実際のテキストを認識するためにOCRを実施する計算コストおよび時間を節約し得る。同様に、粗分類器123が画像内のバーコードを検出した場合、粗分類器123は、バーコードアナライザ128によってバーコードを読み取る/復号化する計算コストおよび時間を節約するために、バーコードの位置およびタイプを指定する注釈を提供し得る。
【0066】
前述のように、粗分類が前の画像について完了したときなどの適切な時に、画像が粗分類のために選択され得る。いくつかの実装では、カメラアプリケーション114は、処理レートに基づいて、画像に関する粗分類を周期的に実施し得る。たとえば、カメラアプリケーション114は、毎秒(または何らかの他の時間枠)ごとに画像を選択し(または選択されたフレームバッファから、記憶された最良の画像を取り出し)、画像に関する粗分類を実施し得る。
【0067】
いくつかの実装では、カメラアプリケーション114は、オブジェクトの1つまたは複数のクラスの存在が粗分類器123によって1つまたは複数の以前に解析された画像内で検出されたかどうかに基づいて、処理レートを動的かつ自動的に調節し得る。たとえば、粗分類器123が検出するように構成されるオブジェクトのクラスのうちの1つの中に分類されるオブジェクトの画像をカメラ112が取り込んでいない場合、カメラアプリケーション114は、画像が粗分類器123によって解析されているレートを低減し得る。この例では、オブジェクトのクラスの存在が前の画像(またはしきい数の前の画像)内で検出されなかった場合、カメラアプリケーション114は、処理レートを低減して、各粗分類間の時間枠を増大させ得る。これは、関連するオブジェクトを示さない画像が取り込まれているとき、粗分類を実施する際に消費される計算機能力および電力の量を削減し得る。たとえば、この処理レート調節の結果、画像を分類するのに使用されるCPUサイクルが少なくなり得る。
【0068】
同様に、オブジェクトの少なくとも1つのクラスの存在が前の画像内で検出された場合(または少なくともしきい数の前の画像)、カメラアプリケーション114は、処理レートを増大して、各粗分類間の時間枠を削減し得る。このようにして、ユーザがカメラ112を使用して、関連するオブジェクトの画像を取り込んでいるとき、カメラアプリケーション114は、有用な、関連するコンテンツを識別し、ユーザに提示し得る。この増大された処理レートは一時的であり得る。たとえば、指定の時間枠の後、または画像または少なくともしきい数の画像内のオブジェクトのクラスの存在を検出しなかったことに応答して、処理レートの増大が通常の処理レート(または低減された処理レート)に低減され得る。
【0069】
カメラアプリケーション114は、ユーザがカメラアプリケーション114を開き、または画像解析およびコンテンツ提示が実施されるカメラアプリケーションのモードを選択してからの時間量に基づいて、粗分類についての処理レートを調節し得る。たとえば、ユーザは、カメラアプリケーション114を開き、または解析およびコンテンツ提示モードに入った直後に、画像を取り込み、画像内に示されるオブジェクトに関するコンテンツを閲覧することによりアクティブであり得る。この例では、カメラアプリケーション114は、カメラアプリケーション114が開かれ、または解析およびコンテンツ提示モードに入ったとき、より高速な処理レートを使用し得、次いで、指定の時間量が経過した後、またはオブジェクトのクラスのうちの少なくとも1つの中のオブジェクトを検出することなく、粗分類器123が少なくともしきい数の画像を評価した後、より低速な処理レートを使用し得る。
【0070】
カメラアプリケーション114は、カメラアプリケーション114とのユーザ対話に基づいて、粗分類についての処理レートを調節し得る。たとえば、ユーザが、解析された画像に基づいて提供される結果または他のコンテンツと対話した場合、カメラアプリケーション114は、粗分類のための処理レートを増大し得、または初期高速処理レートを維持し得る。カメラアプリケーション114は、カメラアプリケーション114との現セッションでのユーザ対話の頻度、および/またはユーザの履歴ユーザセッションを含む複数のユーザセッションでのユーザ対話の頻度に基づいて処理レートを調節し得る。ユーザセッションは、カメラアプリケーション114を開き、閉じること、および/または画像解析およびコンテンツ提示モードの開始および終了によって定義され得る。
【0071】
いくつかの実装では、カメラアプリケーション114またはモバイルデバイス110自体は、前の画像が1つまたは複数のクラスのオブジェクトを示すものとして検出されたかどうかに基づいて、粗分類についての処理レートを決定および調節する電源管理システムを含む。画像が粗分類器によって分類されていないとき、モバイルデバイス110のプロセッサ(または画像を解析するのに使用されるコントローラ)は、電力の消費を抑えるためにスリープし得る(たとえば、スリープモードに入り、命令を実行しない)。
【0072】
粗分類器123が画像内のオブジェクトのクラスの存在を検出した場合、粗分類器123は、画像についての画像データを適切なオブジェクト認識器134に提供し得る。オブジェクト認識器134は、画像内のテキストを認識する(たとえば、文字、語などを認識する)テキスト認識器126、画像内のバーコード(たとえば、QRコードを含む)を認識する(たとえば、復号化する)バーコード認識器128、および画像内のランドマークを認識する(たとえば、実際のランドマークを識別する)ランドマーク認識器130を含み得る。カメラアプリケーション114は、アナライザ126、128、および130に加えて、またはそれらの代わりに、他のタイプのオブジェクトのためのアナライザを含み得る。たとえば、カメラアプリケーション114は、メディアカバー(たとえば、アルバムカバー)アナライザ、アートワークアナライザ、および/または他の適切なアナライザを含み得る。いくつかの実装では、カメラアプリケーション114は、オブジェクトの複数の異なるクラス、たとえばテキスト、バーコード、ランドマーク、メディアカバー、アートワークなどを認識する単一のオブジェクト認識器を含む。
【0073】
粗分類器123が画像内のテキストの存在を検出した場合、粗分類器123は、画像についての画像データをテキスト認識器126に提供し得る。粗分類器123が画像内のバーコードの存在を検出した場合、粗分類器123は、画像についての画像データをバーコード認識器128に提供し得る。粗分類器123が画像内のランドマークの存在を検出した場合、粗分類器123は、画像についての画像データをランドマーク認識器128に提供し得る。
【0074】
いくつかの実装では、画像がしきい値を満たす(たとえば、しきい値以上の)信頼値を有するオブジェクトの各クラスについて、粗分類器123は、画像についての画像データを各オブジェクト認識器134に提供する。たとえば、粗分類器123は、画像がテキストを示すことの信頼値を決定し得、信頼値がしきい値を満たす場合、粗分類器123は、画像をテキスト認識器126に提供し得る。
【0075】
各オブジェクト認識器134は、粗分類器123よりも詳細な画像解析を実施して、粗分類器123から受け取った画像内に示されるオブジェクトを認識し得る。たとえば、オブジェクト認識器134は、エッジ検出、パターン認識、および他のコンピュータビジョン技法を使用して、画像内に示されるオブジェクトを認識し、画像から情報を抽出し得る。
【0076】
テキスト認識器126は、光学的文字認識(OCR)を使用して、画像内に示されるテキストを認識し得る。バーコード認識器128は、画像内に示されるバーコードを読み取り/復号化し、バーコードによって表されるオブジェクト(たとえば、製品)についての情報を取得し得る。ランドマーク認識器130は、ランドマークの画像データおよびパターン認識を使用して、画像内に示されるランドマークを認識し得る。いくつかの実装では、カメラアプリケーション114は、オブジェクトを認識し、画像内に示されるバーコードを読み取る際に使用するための、特定のオブジェクトについての画像データおよびバーコードデータを含むオブジェクト索引115を記憶する。オブジェクトについての画像データは、オブジェクトの画像を認識するためにコンピュータビジョン解析において使用され得る、オブジェクトの視覚特徴を指定するデータを含み得る。
【0077】
カメラアプリケーション114は、オブジェクトの少なくともいくつかのクラスについてのフレーム間処理を実施し得る。たとえば、カメラアプリケーション114は、テキスト認識器126がその中のテキストを認識した画像に対するフレーム間処理127を実施し得、カメラアプリケーション114は、ランドマーク認識器130がその中のランドマークを認識した画像に対するフレーム間処理131を実施し得る。一般には、フレーム間処理は、現画像内のオブジェクトを検出する際に、前の画像内で認識されたオブジェクトに関するデータを活用する。
【0078】
テキストについてのフレーム間処理127は、2つの画像内のテキストの同一の行(または同一の部分)の間の相関を確立して、同一のテキストが検出されているかどうかを判定し得る。次いで、カメラアプリケーション114は、最良のバージョンのテキスト、たとえばテキスト認識器126がより高い品質であると判定したテキストを保ち得、これにより、テキスト認識の精度が改善され得る。テキストの2つの部分が同一であるかどうかを判定するために、カメラアプリケーション114は、フレーム間処理127を使用して、2つ(またはそれ以上)の画像内のテキストの2つの部分の間の距離、および2つの画像内のテキスト間の編集距離を評価し得る。カメラアプリケーション114は、フレーム間処理127を使用して、2つの画像内のテキストの部分の位置に基づいて、最適な追跡を使用してテキストを追跡することによって、距離を直接的に決定し、かつ/または2つの画像の取込みの間のモバイルデバイス110の運動に基づいてテキストがどこにあるかを予測し得る。編集距離は、2つの画像内のテキストの部分の間で異なる文字数または文字の割合を示し得る。距離および編集距離がどちらもしきい値未満である場合、2つ以上の画像が相関され得、最高の信頼値および/または最高の品質スコアを有する画像が、後に使用のために保持され得る。
【0079】
いくつかの実装では、テキストの部分が、複数の画像から保持され得る。たとえば、カメラアプリケーション114は、フレーム間処理127を使用して、行ごとに、文字ごとに、または語ごとにテキストを相関させ得る。カメラアプリケーション114は、テキストの相関された行のどれが、最高の信頼度および/または最高の品質を有するかを識別し、最高の信頼度および/または最高の品質のテキストの行を有する画像のその部分をテキストアナライザ126のために保持し得る。同様に、カメラアプリケーション114は、相関された語(または文字)のどれが、最高の信頼度および/または最高の品質を有するかを判定し、最高の信頼度および/または最高の品質の語(または文字)を有する画像のその部分を保持し得る。したがって、たとえば、ある時間枠の間、カメラが同一の文書または他のテキストソースに向いているために、複数の画像が同一のテキストを有するとき、複数の画像部分内で認識されたテキストが、結果識別器132に提供され、テキストの各部分の最高品質バージョンが提供され得る。
【0080】
ランドマーク(および他のタイプのオブジェクト)についてのフレーム間処理131は、画像が特定のランドマーク(またはオブジェクト)を示すかどうかを判定する際に、特定のランドマーク(または他のオブジェクト)が複数の画像内で検出されたことの信頼度を示す(ランドマーク認識器130によって決定された)信頼値を評価し得る。いくつかの実装では、フレーム間処理131は、画像が結果識別器132のためにランドマークを示すと分類する前に、シーケンス内のどれほどの画像が特定のランドマークを示すと識別されなければならないかを決定するための複数のしきい値を使用する。たとえば、画像がランドマークを示すことを示す信頼値が第1のしきい値よりも大きい場合、カメラアプリケーション114は、画像が特定のランドマークを示すと分類する前に、第1の数の画像が特定のランドマークを示すと分類されなければならないと決定し得る。信頼値が第1のしきい値未満であるが、第2のしきい値よりも大きい場合、カメラアプリケーション114は、画像が特定のランドマークを示すと判定するために、第2の数の画像が特定のランドマークを示すと分類されなければならないことを必要とし得る。ただし第2の数は第1の数よりも大きい。
【0081】
結果識別器132は、モバイルデバイス110に(たとえば、カメラアプリケーション114内で)提示するためのコンテンツを識別し得る。たとえば、画像がバーコードを含む場合、結果識別器132は、バーコードによって表されるオブジェクトを識別し、オブジェクトに関するコンテンツ(たとえば、画像、タイトルなど)を提示する。画像がランドマークを含む場合、結果識別器132は、ランドマークに関するコンテンツ、たとえばランドマークの写真、ランドマークまでの地図などを識別し、ユーザインターフェース116内で提示し得る。
【0082】
結果識別器132は、コンテンツデータストア116内の、認識されたオブジェクトについてのコンテンツを識別し得る。コンテンツデータストア116は、オブジェクトのセットのそれぞれについてのコンテンツを含み得る。コンテンツデータストア116内のコンテンツが、たとえばカメラアプリケーション114によって、モバイルデバイス110上にロードされ得る。コンテンツは、モバイルデバイス110によって提示され得るテキスト、画像、ビデオ、および/または他の適切なコンテンツを含み得る。
【0083】
オブジェクトについての識別されたコンテンツは、画像と共にユーザインターフェース116内に提示され得る。たとえば、コンテンツは、カメラアプリケーション114内の画像が示されるビューファインダ内に提示され得る。この例では、コンテンツは、オブジェクト、テキスト、またはバーコードが検出されたカメラのリアルタイムビューを覆うオーバーレイ内に提示され得る。
【0084】
粗分類器123が画像内に示されるオブジェクトの複数のクラスを検出した場合、結果識別器132は、各クラスについての結果を識別し、各クラスについての少なくとも1つの結果を提示し得る。たとえば、カメラアプリケーション114は、画像内で検出されたオブジェクトの各クラスに対応する結果を含む結果ページを提示し得る。
【0085】
いくつかの実装では、カメラアプリケーション114は、検出されたオブジェクトに関するコンテンツをユーザがそれを用いて要求することのできるアイコンを提示し得る。たとえば、画像が電話番号を含む場合、カメラアプリケーション114は、ユーザによって対話される(たとえば、選択される)場合、電話番号への呼出しをモバイルデバイス110に開始させるアイコンを提示し得る。バーコードが検出される場合、カメラアプリケーション114は、ショッピングアプリケーションを立ち上げて、バーコードによって表される製品を購入するためのアイコン、検索アプリケーションまたはウェブブラウザを使用して製品の検索を開始するためのアイコン、および/または、たとえばソーシャルネットワーキングアプリケーションを使用して製品を共有するためのアイコンを提示し得る。ランドマークが検出された場合、カメラアプリケーション114は、マップアプリケーションを立ち上げてマップをランドマークに提示するためのアイコン、ランドマークの検索を開始するためのアイコン、および/またはランドマークの画像を閲覧するためのアイコンを提示し得る。アイコンは、たとえばカメラアプリケーション114のビューファインダ内に、画像と共に提示され得る。
【0086】
いくつかの実装では、カメラアプリケーション114は、どのオブジェクトが検出されているかをユーザが見ることができるように、カメラアプリケーション114のユーザインターフェース116内で、検出されているオブジェクトを強調表示し得る。たとえば、ユーザがカメラ112をオブジェクトに向けている間、粗分類器123は、オブジェクトのクラスの存在を検出し得、画像が、解析のためにオブジェクト認識器134のうちの1つまたは複数に送られ得る。画像が1つまたは複数のオブジェクト認識器134によって解析されている間、カメラアプリケーション114は、認識されているオブジェクトを強調表示し得る。
【0087】
いくつかの実装では、カメラアプリケーション114は、オブジェクト索引115および/またはコンテンツデータストア116内のコンテンツをユーザ向けにカスタマイズする。たとえば、カメラアプリケーション114が、ユーザが特定の場所に移動しようとしていることを示すデータを受け取った場合、カメラアプリケーション114は、特定の場所に位置するオブジェクト、ランドマークなどについての画像データおよび/またはバーコードデータを含めるようにオブジェクト索引115を更新し得る。カメラアプリケーション114はまた、特定の場所に位置するオブジェクト、ランドマークなどに関するコンテンツを含めるようにコンテンツデータストア116を更新し得る。
【0088】
いくつかの実装では、画像解析および結果識別のいくつかの要素が、視覚解析サーバ150に配置される。たとえば、視覚解析サーバ150は、データ通信ネットワーク140、たとえばローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえばインターネットを介してカメラアプリケーション114から受け取った画像内に示されるオブジェクトを認識する視覚アナライザ152を含み得る。視覚解析サーバ150はまた、ビジョンアナライザ152によって認識されたオブジェクトに関する結果または他のコンテンツを識別し、結果またはコンテンツをモバイルデバイス110に提供するプロセッサ154をも含み得る。この例では、画像セレクタ122および粗分類器123は、モバイルデバイス110上に、たとえばカメラアプリケーション114の部分として実装され得る。
【0089】
カメラアプリケーション114は、粗分類器123が画像についてのオブジェクトのクラスまたは特徴データの存在を検出した画像の部分を視覚解析サーバ154に提供し得る。たとえば、粗分類器123が画像内のランドマークの存在を検出した場合、カメラアプリケーション114は、画像全体を提供することなく、ランドマークを含む画像の部分を視覚解析サーバ150に提供し得る。
【0090】
カメラアプリケーション実装と同様に、(たとえば、しきい値を満たさない品質スコアを有するために)画像が画像セレクタ122によって選択されない場合、カメラアプリケーション114は、画像(または画像の部分)を視覚解析サーバ150に送らないことを決定し得る。同様に、粗分類器123が画像内のオブジェクトのクラスの存在を検出しない場合、カメラアプリケーション114は、画像(または画像の部分)を視覚解析サーバ150に送らないことを決定し得る。
【0091】
画像選択および画像解析のステージが順番に実施されるものとして示されているが、あるステージは並列に実施され得る。たとえば、複数の画像が粗分類器によって同時に分類され得る。同様に、画像が複数の粗分類器によって並列に解析され得る。
【0092】
いくつかの実装では、画像セレクタ122が、モバイルデバイス110のコントローラまたはコントローラの部分として実装される。この例では、粗分類器123および/またはオブジェクト認識器134が、たとえばモバイルデバイス110または視覚解析サーバ150の画像処理装置上で実装され得る。
【0093】
図2は、画像を解析し、画像内に示される1つまたは複数のオブジェクトに関するコンテンツを提示するための例示的プロセス200を示す流れ図である。プロセス200の動作は、たとえば、図1のモバイルデバイス110などの、1つまたは複数のデータ処理装置を含むシステムによって実装され得る。プロセス200はまた、コンピュータ記憶媒体上に記憶された命令によって実装され得、データ処理装置を含むシステムによる命令の実行が、プロセス200の動作をデータ処理装置に実施させる。
【0094】
システムは、モバイルデバイスカメラによって取り込まれた画像について、カメラが画像を取り込んだ時のカメラの運動を示すデータにアクセスする(202)。たとえば、システムは画像のストリーム(たとえば、ビデオストリーム)を受け取り得る。システムはまた、各画像について、カメラがその上に設置されるデバイスの運動を示すデータを取得し得る。たとえば、各画像についての運動データは、ジャイロスコープ、加速度計、IMUなどの1つまたは複数の環境センサから受け取られ得る。各画像について、運動データは、画像が取り込まれた時のデバイスの運動を示し得る。たとえば、システムは、カメラが画像を取り込んでいる時にセンサに運動データを要求し得る。
【0095】
別の例では、システムは、画像が取り込まれた時を含むタイムウィンドウを環境センサに提供し得る。それに応答して、環境センサは、タイムウィンドウの間に環境センサによって検出された運動データを提供し得る。次いで、システムは、データに基づいて、画像が取り込まれた時にカメラがどれほど移動していたかを決定し得る。
【0096】
システムは、画像についての運動データに基づいて、解析のための特定の画像を画像から選択する(204)。システムは、デバイスの運動が最小であった画像、または回転運動が最小であった画像を選択し得る。前述のように、画像はまた、他の画像が取り込まれた時と比べた、画像が取り込まれた時に基づいて、かつ/または画像の光特徴に基づいて選択され得る。選択は、画像の視覚特性とは無関係に、または画像の視覚特性と組み合わせて行われ得る。
【0097】
システムは、1つまたは複数の粗分類器を使用して特定の画像を解析して、特定の画像内に示されるオブジェクトの1つまたは複数のクラスの存在を検出する(206)。各粗分類器は、オブジェクトのそれぞれのクラス、たとえばテキスト、ランドマーク、アートワーク、メディアカバー、バーコードなどの存在を検出するように構成され得る。各粗分類器は、特定の画像がオブジェクトのそのクラスを示すかどうかを指定するデータと、粗分類器がその決定の際に有する信頼度を示す信頼値とを出力し得る。各粗分類器はまた、位置、向きなどの、検出されたオブジェクトの特性を記述するデータを含む注釈を出力し得る。
【0098】
画像内のオブジェクトの少なくとも1つのクラスの存在を検出したことに応答して、システムは、画像を解析して、画像内に示される1つまたは複数のオブジェクトを認識する(208)。たとえば、システムは、1つまたは複数のコンピュータビジョン技法を使用して、画像内に示されるオブジェクトを認識し得る。使用される技法は、粗分類器によって画像内で検出されたオブジェクトのクラスに基づき得る。たとえば、画像がバーコードを有すると分類される場合、システムは、バーコード認識器を使用してバーコードを読み取り、バーコードによって参照される製品を識別し得る。
【0099】
システムは、1つまたは複数の識別されたオブジェクトに関するコンテンツを提示する(212)。たとえば、システムは、画像を覆う1つまたは複数のオーバーレイ内に、または結果ページ上にコンテンツを提示し得る。システムは、ユーザによって対話されるとき、画像内で認識されたオブジェクトに関するコンテンツをシステムに提示させるアイコンを提示し得る。たとえば、アイコンは、認識されたオブジェクトの検索を開始すること、認識されたランドマークまでのマップを表示すること、認識されたオブジェクトの他の画像を提示することなどのためのアイコンを含み得る。
【0100】
図3は、解析のための画像を選択するための例示的プロセス300を示す流れ図である。プロセス300の動作は、たとえば、図1のモバイルデバイス110などの1つまたは複数のデータ処理装置を含むシステムによって実装され得る。プロセス300はまた、コンピュータ記憶媒体上に記憶された命令によって実装され得、データ処理装置を含むシステムによる命令の実行が、データ処理装置にプロセス300の動作を実施させる。
【0101】
システムは、モバイルデバイスカメラによって取り込まれた画像についての運動データを受け取る(302)。前述のように、運動データは、モバイルデバイスカメラによって画像が取り込まれた時のモバイルデバイスカメラの運動を示し得る。モバイルデバイスカメラは、画像をシーケンスで、たとえばビデオストリームとして取り込み得る。いくつかの実装では、モバイルデバイスカメラは、毎秒20~70フレームの範囲のレートで画像を取り込む。
【0102】
システムは、運動データに基づいて画像の予想品質を決定する(304)。たとえば、画像の予想品質は、画像が取り込まれた時のモバイルデバイスカメラの運動の量に基づき得る。この例では、ぼやけるために運動が画像の品質を低下させるので、運動が多いと品質スコアが低下する。
【0103】
システムは、画像の予想品質が、画像データが記憶されている最高品質の画像の予想品質よりも高いかどうかを判定する(306)。たとえば、システムは、単一の画像のみについての画像データを記憶し得、この単一の画像は、前の画像が粗分類器に送られた以降に取り込まれた画像の(予想品質に基づく)最高品質の画像であり得る。新しい画像が受け取られるごとに、システムは、新たに受け取った画像が、画像データが現在記憶されている最高品質の画像よりも高い予想品質を有するかどうかを判定し得る。
【0104】
新たに受け取った画像が、前に識別された最高品質の画像よりも高い予想品質を有さない場合、システムは、最高品質の画像についての前に記憶された画像データを引き続き記憶し、別の画像を受け取るのを待機する。新たに受け取った画像が最高品質の画像よりも高い予想品質を有する場合、システムは、最高品質の画像についての画像データを、新たに受け取った画像についての画像データで置き換える(308)。
【0105】
いくつかの実装では、システムは、最高品質の画像について記憶した画像データに基づいて、予想画像品質についての置換しきい値を設定する。この例では、新たに受け取った画像の予想画像品質が置換しきい値を超える場合、システムは、最高品質の画像についての画像データを、新たに受け取ったデータについての画像データに置き換える。システムは、経時的に置換しきい値を低減し得る。
【0106】
システムは、最高品質の画像についての画像データを粗分類器に提供するかどうかを決定する(310)。いくつかの実装では、システムは、所定の時間枠に基づいて、粗分類器に画像データを提供する。いくつかの実装では、システムは、粗分類器から要求を受け取ったことに応答して、粗分類器に画像データを提供する。
【0107】
システムが粗分類器に画像データを提供しないと決定した場合、システムは、粗分類器に画像データを提供することを決定するまで、引き続き画像を受け取り、最高品質の画像についての画像データを置き換えるかどうかを決定する。このようにして、システムは、最高品質の画像についての画像データをのみを記憶する。
【0108】
システムが粗分類器に画像データを提供することを決定した場合、システムは、分類のために粗分類器に画像データを提供する(312)。
【0109】
図4は、画像を解析するための処理レートを調節するための例示的プロセス400を示す流れ図である。プロセス400の動作は、たとえば、図1のモバイルデバイス110などの、1つまたは複数のデータ処理装置を含むシステムによって実装され得る。プロセス400はまた、コンピュータ記憶媒体上に記憶された命令によって実装され得、データ処理装置を含むシステムによる命令の実行が、プロセス400の動作をデータ処理装置に実施させる。
【0110】
システムは、画像についての画像データを受け取る(402)。画像データは、画像の各ピクセルについてのカラー値を含む、画像についての画像ピクセルデータを含み得る。
【0111】
システムは、画像が1つまたは複数のクラスに分類されるオブジェクトを含むかどうかを判定する(404)。たとえば、システムは、前述のように、粗分類器を使用して、画像が1つまたは複数のクラスに分類されるオブジェクトを含むかどうかを決定し得る。
【0112】
画像が1つまたは複数のクラスに分類されるオブジェクトを含まないとシステムが判定した場合、システムは、画像を解析するための処理レートを低減して、画像が1つまたは複数のクラスのオブジェクトを含むかどうかを判定する(406)。たとえば、システムは、粗分類器を使用して、処理レートに基づいて周期的に画像を解析し得る。1つまたは複数の画像がクラスのうちの1つの中のオブジェクトを含まないとシステムが判定した場合、システムは、処理レートを低減して、画像が解析される頻度を削減し得る。これにより、システムは、注目のオブジェクトを含まない画像が取り込まれているとき、コンピュータリソース使用量および電力消費を削減することが可能となる。システムは、処理レートを低減する前に、所定の数(たとえば、5、10、または別の適切な数)の画像がクラスのうちの1つの上のオブジェクトを含まなくなるまで待機し得る。
【0113】
画像がクラスのうちの少なくとも1つに分類されるオブジェクトを含むとシステムが判定した場合、システムは処理レートを増大させる(408)。たとえば、システムは、画像が注目のオブジェクトを含むときにシステムが使用するアクティブ処理レートに処理レートを増大させ得る。処理レートが既にアクティブ処理レートであった場合、システムは処理レートを未変更のままにし得る。
【0114】
システムは、クラスのうちの少なくとも1つのオブジェクトを含む画像を、さらなる解析のために送る(410)。たとえば、システムは、少なくとも1つのクラスのオブジェクトを認識するオブジェクト認識器に画像を送り得る。
【0115】
本明細書において説明される主題および機能的動作の実施形態は、本明細書において開示された構造およびその構造的均等物を含む、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、あるいはそれらのうちの1つまたは複数の組合せとして実装され得る。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわちデータ処理装置による実行のための、またはデータ処理装置の動作を制御するための、有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置による実行のために適切な受信機装置への伝送のために情報を符号化するように生成される、人工的に生成された伝播信号、たとえば機械で生成された電気信号、光信号、または電磁信号上に符号化され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得る。
【0116】
「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードをも含み得る。
【0117】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる)は、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適した他のユニットとしての形態を含む任意の形態として配置され得る。コンピュータプログラムは、必須ではないがファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書内に記憶された1つまたは複数のスクリプト内に、当該のプログラム専用の単一のファイル内に、または複数の協調ファイル、たとえば1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に配置され、もしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように配置され得る。
【0118】
本明細書において説明されるプロセスおよび論理フローは、入力データに対して演算し、出力を生成することによって機能を実施するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPGPU(汎用グラフィックス処理装置)によって実施され得、装置はまた、それらとして実装され得る。
【0119】
コンピュータプログラムの実行に適したコンピュータは、例として、汎用もしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央演算処理装置に基づき得る。一般には、中央演算処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央演算処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般には、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクをも含み、あるいはそれらからデータを受け取り、もしくはそれらにデータを転送し、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、ほんのいくつかの例を挙げれば、別のデバイス、たとえば携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込まれ得る。
【0120】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたは取外し可能ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足され、またはその中に組み込まれ得る。
【0121】
ユーザとの対話を実現するために、本明細書において説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえばCRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス、たとえばマウスもしくはトラックボールとを有するコンピュータ上に実装され得る。他の種類のデバイスもユーザとの対話を実現するために使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、音声フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態として受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送り、デバイスから文書を受け取ることによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受け取った要求に応答して、ウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
【0122】
本明細書において説明される主題の実施形態は、バックエンド構成要素をたとえばデータサーバとして含み、またはミドルウェア構成要素、たとえばアプリケーションサーバを含み、またはフロントエンド構成要素、たとえばユーザが本明細書において説明される主題の実装とそれを通じて対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含み、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムとして実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえばインターネットが含まれる。
【0123】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントとサーバは、一般には互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行中の、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0124】
本明細書は多くの特定の実装詳細を含むが、これらは、何らかの発明の範囲、または特許請求され得るものの範囲に関する限定と解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有のものであり得る特徴の説明と解釈されるべきである。本明細書において別々の実施形態の状況において説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の状況において説明される様々な特徴はまた、複数の実施形態として別々に、または任意の適切な部分組合せとして実装され得る。さらに、特徴が、いくつかの組合せとして働くものとして上記で説明され、さらにはそのように最初に特許請求され得るが、いくつかのケースでは、特許請求される組合せからの1つまたは複数の特徴が組合せから削除され得、特許請求される組合せは、部分組合せまたは部分組合せの変形を対象とし得る。
【0125】
同様に、図面では動作が特定の順序で示されるが、このことは、望ましい結果を達成するために、そのような動作が図示される特定の順序で、または順次的に実施されること、またはすべての図示される動作が実施されることを必要とすると理解されるべきではない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。さらに、前述の実施形態での様々なシステムモジュールおよび構成要素の分離が、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載のプログラム構成要素およびシステムは一般に、単一のソフトウェア製品として共に一体化され、または複数のソフトウェア製品としてパッケージ化され得ることを理解されたい。
【0126】
主題の特定の実施形態が説明された。他の実施形態は以下の特許請求の範囲内にある。たとえば、請求項に記載のアクションは、異なる順序で実施され、それでもなお望ましい結果を達成し得る。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、または順次的順序を必ずしも必要とするわけではない。いくつかの実装では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0127】
100 環境
110 モバイルデバイス
112 カメラ
113 慣性測定ユニット(IMU)
114 カメラアプリケーション
115 オブジェクト索引
116 ユーザインターフェース
116 コンテンツデータストア
122 画像セレクタ
123 粗分類器
126 テキストアナライザ、テキスト認識器
127 フレーム間処理
128 バーコードアナライザ、バーコード認識器
130 ランドマーク認識器
131 フレーム間処理
132 結果識別器
140 データ通信ネットワーク
150 視覚解析サーバ
152 視覚アナライザ
154 結果プロセッサ
図1
図2
図3
図4