(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-15
(45)【発行日】2024-01-23
(54)【発明の名称】リアルタイムのオブジェクト検出および追跡
(51)【国際特許分類】
G06T 7/246 20170101AFI20240116BHJP
【FI】
G06T7/246
(21)【出願番号】P 2020562732
(86)(22)【出願日】2018-05-07
(86)【国際出願番号】 IB2018053167
(87)【国際公開番号】W WO2019215476
(87)【国際公開日】2019-11-14
【審査請求日】2020-12-07
【審判番号】
【審判請求日】2023-06-15
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】イブラヒム・バダ
(72)【発明者】
【氏名】ローラント・ペーター・ケール
(72)【発明者】
【氏名】カーン・ユーサー
(72)【発明者】
【氏名】トーマス・ヨナタン・シュトネ
(72)【発明者】
【氏名】ゴカーン・エイチ・バキル
(72)【発明者】
【氏名】エイドリアン・ザンブランネン
【合議体】
【審判長】五十嵐 努
【審判官】板垣 有紀
【審判官】川崎 優
(56)【参考文献】
【文献】特開2006-293912(JP,A)
【文献】特開平11-088811(JP,A)
【文献】特開2017-085564(JP,A)
【文献】特許第6318289(JP,B1)
【文献】米国特許出願公開第2014/0365472(US,A1)
【文献】米国特許出願公開第2004/0208372(US,A1)
【文献】CHEN, D.M. et al.,Memory-Efficient Image Databases for Mobile Visual Search,IEEE MultiMedia[online],IEEE,2014年,Volume 21, Issue 1,pp.14-23,インターネット,<URL: https://ieeexplore.ieee.org/document/6581775>,[検索日 2021.12.21]
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06T 1/00
H04N 23/00-23/959
(57)【特許請求の範囲】
【請求項1】
モバイルデバイスの1つまたは複数のデータ処理装置によって実施される方法であって、
前記モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在を、前記1つまたは複数のデータ処理装置によって検出するステップと、
前記1つまたは複数のオブジェクトの前記存在を検出したことに応答して、
前記ビューファインダ内で前記1つまたは複数のオブジェクトの各々に対して、前記オブジェクトに関連するコンテンツが特定されていることを示す視覚インジケータを、前記1つまたは複数のデータ処理装置によって提示するステップであって、
前記1つまたは複数のオブジェクトの各々をそれぞれのオブジェクトのクラスに、前記1つまたは複数のデータ処理装置によって分類するステップであって、前記オブジェクトのクラスが、少なくともテキスト、バーコード、およびランドマークを含む、ステップと、
前記オブジェクトのそれぞれのクラスに基づいて、複数の視覚インジケータから、前記1つまたは複数のオブジェクトの各々に対するそれぞれの視覚インジケータを、前記1つまたは複数のデータ処理装置によって選択するステップとを備える、ステップ、
前記1つまたは複数のオブジェクトを表す画像データを、画像に示されたオブジェクトに関連するコンテンツを選択するコンテンツ配信システムに、前記1つまたは複数のデータ処理装置によって送るステップ、および、
前記コンテンツ配信システムからコンテンツを受信するのを待機している間に、前記カメラの前記ビューファインダ内の前記1つまたは複数のオブジェクトの各々の位置を、前記1つまたは複数のデータ処理装置によって追跡するステップと、
前記コンテンツ配信システムから、前記1つまたは複数のオブジェクトに関連するコンテンツを、前記1つまたは複数のデータ処理装置によって受信するステップ
であって、前記コンテンツは、前記視覚インジケータとのユーザ対話によって開始されたコンテンツの要求に応答して前記コンテンツ配信システムから送られるコンテンツを含む、ステップと、
前記1つまたは複数のオブジェクトの各々に対して、
前記追跡に基づいて、前記ビューファインダ内の前記オブジェクトの現在の位置を、前記1つまたは複数のデータ処理装置によって判定するステップ、および、
前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトに関連する前記受信されたコンテンツを、前記1つまたは複数のデータ処理装置によって提示するステップと
を含む方法。
【請求項2】
前記画像内の前記オブジェクトの前記存在を検出するステップが、
前記モバイルデバイスの前記カメラを使用して画像のシーケンスをキャプチャするステップと、
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定するステップと、
前記カメラが実質的に静止しているとの判定に応答して、前記カメラが動くのをやめた後の所与の画像をキャプチャするステップと、
前記所与の画像内の前記オブジェクトの前記存在を検出するために、オブジェクト検出技法を使用して前記所与の画像を解析するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定するステップが、
前記画像のシーケンス内の第1の画像における各ピクセルのそれぞれの位置を特定するステップと、
前記第1の画像における各ピクセルに対して、
前記第1の画像がキャプチャされた後にキャプチャされた1つまたは複数の後続の画像における、前記ピクセルと一致する対応するピクセルのそれぞれの位置を特定するステップ、および、
前記第1の画像における前記ピクセルの前記それぞれの位置と後続の各画像における前記対応するピクセルの前記それぞれの位置との間の距離を判定するステップと、
判定された各距離がしきい値距離未満であることに基づいて、前記カメラが実質的に静止していると判定するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記カメラの前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトについての前記コンテンツを提示するステップが、前記ビューファインダ内の前記オブジェクトの上にまたは前記オブジェクトに隣接して前記コンテンツを提示するステップを含む、請求項1に記載の方法。
【請求項5】
前記カメラの前記ビューファインダ内の前記オブジェクトの現在の位置を判定するステップが、
前記所与の画像において、前記オブジェクトに対応するピクセルの第1のセットを特定するステップと、
前記ピクセルの第1のセットと一致する前記ビューファインダ内のピクセルの第2のセットの位置を判定するステップと
を含む、請求項2に記載の方法。
【請求項6】
前記コンテンツ配信システムが、
前記1つまたは複数のオブジェクトの各々を認識するために前記画像データを解析し、
前記1つまたは複数のオブジェクトの各々についてのコンテンツを選択し、
所与の前記オブジェクトに関連するコンテンツの要求を受信する前に前記コンテンツを事前キャッシュする、
請求項1に記載の方法。
【請求項7】
システムであって、
1つまたは複数のデータ処理装置と、
前記データ処理装置とデータ通信しているメモリストレージ装置とを備え、前記メモリストレージ装置が、前記データ処理装置によって実行可能な命令であって、実行されると、動作を前記データ処理装置に実施させる命令を記憶し、前記動作が、
モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在を検出することと、
前記1つまたは複数のオブジェクトの前記存在を検出したことに応答して、
前記ビューファインダ内で前記1つまたは複数のオブジェクトの各々に対して、前記オブジェクトに関連するコンテンツが特定されていることを示す視覚インジケータを提示することであって、
前記1つまたは複数のオブジェクトの各々をそれぞれのオブジェクトのクラスに分類することであって、前記オブジェクトのクラスが、少なくともテキスト、バーコード、およびランドマークを含む、ことと、
前記オブジェクトのそれぞれのクラスに基づいて、複数の視覚インジケータから、前記1つまたは複数のオブジェクトの各々に対するそれぞれの視覚インジケータを選択することとを含む、ことと、
前記1つまたは複数のオブジェクトを表す画像データを、画像に示されたオブジェクトに関連するコンテンツを選択するコンテンツ配信システムに送ること、および、
前記コンテンツ配信システムからコンテンツを受信するのを待機している間に、前記カメラの前記ビューファインダ内の前記1つまたは複数のオブジェクトの各々の位置を追跡することと、
前記コンテンツ配信システムから、前記1つまたは複数のオブジェクトに関連するコンテンツを受信すること
であって、前記コンテンツは、前記視覚インジケータとのユーザ対話によって開始されたコンテンツの要求に応答して前記コンテンツ配信システムから送られるコンテンツを含む、ことと、
前記1つまたは複数のオブジェクトの各々に対して、
前記追跡に基づいて、前記ビューファインダ内の前記オブジェクトの現在の位置を判定すること、および
前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトに関連する前記受信されたコンテンツを提示することと
を含む、システム。
【請求項8】
前記画像内の前記オブジェクトの前記存在を検出することが、
前記モバイルデバイスの前記カメラを使用して画像のシーケンスをキャプチャすることと、
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定することと、
前記カメラが実質的に静止しているとの判定に応答して、前記カメラが動くのをやめた後の所与の画像をキャプチャすることと、
前記所与の画像内の前記オブジェクトの前記存在を検出するために、オブジェクト検出技法を使用して前記所与の画像を解析することと
を含む、請求項7に記載のシステム。
【請求項9】
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定することが、
前記画像のシーケンス内の第1の画像における各ピクセルのそれぞれの位置を特定することと、
前記第1の画像における各ピクセルに対して、
前記第1の画像がキャプチャされた後にキャプチャされた1つまたは複数の後続の画像における、前記ピクセルと一致する対応するピクセルのそれぞれの位置を特定すること、および、
前記第1の画像における前記ピクセルの前記それぞれの位置と後続の各画像における前記対応するピクセルの前記それぞれの位置との間の距離を判定することと、
判定された各距離がしきい値距離未満であることに基づいて、前記カメラが実質的に静止していると判定することと
を含む、請求項8に記載のシステム。
【請求項10】
前記カメラの前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトについての前記コンテンツを提示することが、前記ビューファインダ内の前記オブジェクトの上にまたは前記オブジェクトに隣接して前記コンテンツを提示することを含む、請求項7に記載のシステム。
【請求項11】
前記カメラの前記ビューファインダ内の前記オブジェクトの現在の位置を判定することが、
前記所与の画像において、前記オブジェクトに対応するピクセルの第1のセットを特定することと、
前記ピクセルの第1のセットと一致する前記ビューファインダ内のピクセルの第2のセットの位置を判定することと
を含む、請求項8に記載のシステム。
【請求項12】
前記コンテンツ配信システムが、
前記1つまたは複数のオブジェクトの各々を認識するために前記画像データを解析し、
前記1つまたは複数のオブジェクトの各々についてのコンテンツを選択し、
所与の前記オブジェクトに関連するコンテンツの要求を受信する前に前記コンテンツを事前キャッシュする、
請求項7に記載のシステム。
【請求項13】
コンピュータプログラムで符号化された非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、データ処理装置によって実行されると、動作を前記データ処理装置に実施させる命令を含み、前記動作が、
モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在を検出することと、
前記1つまたは複数のオブジェクトの前記存在を検出したことに応答して、
前記ビューファインダ内で前記1つまたは複数のオブジェクトの各々に対して、前記オブジェクトに関連するコンテンツが特定されていることを示す視覚インジケータを提示することであって、
前記1つまたは複数のオブジェクトの各々をそれぞれのオブジェクトのクラスに分類することであって、前記オブジェクトのクラスが、少なくともテキスト、バーコード、およびランドマークを含む、ことと、
前記オブジェクトのそれぞれのクラスに基づいて、複数の視覚インジケータから、前記1つまたは複数のオブジェクトの各々に対するそれぞれの視覚インジケータを選択することとを含む、ことと、
前記1つまたは複数のオブジェクトを表す画像データを、画像に示されたオブジェクトに関連するコンテンツを選択するコンテンツ配信システムに送ること、および、
前記コンテンツ配信システムからコンテンツを受信するのを待機している間に、前記カメラの前記ビューファインダ内の前記1つまたは複数のオブジェクトの各々の位置を追跡することと、
前記コンテンツ配信システムから、前記1つまたは複数のオブジェクトに関連するコンテンツを受信すること
であって、前記コンテンツは、前記視覚インジケータとのユーザ対話によって開始されたコンテンツの要求に応答して前記コンテンツ配信システムから送られるコンテンツを含む、ことと、
前記1つまたは複数のオブジェクトの各々に対して、
前記追跡に基づいて、前記ビューファインダ内の前記オブジェクトの現在の位置を判定すること、および
前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトに関連する前記受信されたコンテンツを提示することと
を含む、非一時的コンピュータストレージ媒体。
【請求項14】
前記画像内の前記オブジェクトの前記存在を検出することが、
前記モバイルデバイスの前記カメラを使用して画像のシーケンスをキャプチャすることと、
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定することと、
前記カメラが実質的に静止しているとの判定に応答して、前記カメラが動くのをやめた後の所与の画像をキャプチャすることと、
前記所与の画像内の前記オブジェクトの前記存在を検出するために、オブジェクト検出技法を使用して前記所与の画像を解析することと
を含む、請求項13に記載の非一時的コンピュータストレージ媒体。
【請求項15】
前記画像のシーケンス内の前記画像のピクセルデータに基づいて、前記カメラが実質的に静止していると判定することが、
前記画像のシーケンス内の第1の画像における各ピクセルのそれぞれの位置を特定することと、
前記第1の画像における各ピクセルに対して、
前記第1の画像がキャプチャされた後にキャプチャされた1つまたは複数の後続の画像における、前記ピクセルと一致する対応するピクセルのそれぞれの位置を特定すること、および、
前記第1の画像における前記ピクセルの前記それぞれの位置と後続の各画像における前記対応するピクセルの前記それぞれの位置との間の距離を判定することと、
判定された各距離がしきい値距離未満であることに基づいて、前記カメラが実質的に静止していると判定することと
を含む、請求項14に記載の非一時的コンピュータストレージ媒体。
【請求項16】
前記カメラの前記ビューファインダ内で前記オブジェクトの前記現在の位置において、前記オブジェクトについての前記コンテンツを提示することが、前記ビューファインダ内の前記オブジェクトの上にまたは前記オブジェクトに隣接して前記コンテンツを提示することを含む、請求項14に記載の非一時的コンピュータストレージ媒体。
【請求項17】
前記カメラの前記ビューファインダ内の前記オブジェクトの現在の位置を判定することが、
前記所与の画像において、前記オブジェクトに対応するピクセルの第1のセットを特定することと、
前記ピクセルの第1のセットと一致する前記ビューファインダ内のピクセルの第2のセットの位置を判定することと
を含む、請求項14に記載の非一時的コンピュータストレージ媒体。
【請求項18】
前記コンテンツ配信システムが、
前記1つまたは複数のオブジェクトの各々を認識するために前記画像データを解析し、
前記1つまたは複数のオブジェクトの各々についてのコンテンツを選択し、
所与の前記オブジェクトに関連するコンテンツの要求を受信する前に前記コンテンツを事前キャッシュする、
請求項14に記載の非一時的コンピュータストレージ媒体。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータ視覚解析技法は、画像内のオブジェクトを検出し、認識するために使用され得る。たとえば、光学文字認識(OCR)技法は、画像内のテキストを認識するために使用され得、エッジ検出技法は、画像内のオブジェクト(たとえば、製品、ランドマーク、動物など)を検出するために使用され得る。検出されたオブジェクトに関連するコンテンツは、ユーザ、たとえば、オブジェクトが検出される画像をキャプチャしたユーザに提供され得る。
【発明の概要】
【課題を解決するための手段】
【0002】
本明細書は、画像において認識されたオブジェクトに関連するコンテンツを提示することに関する技術について説明する。
【0003】
一般に、本明細書で説明される主題の1つの革新的な態様は、モバイルデバイスの1つまたは複数のデータ処理装置によって実施される方法において具現化され得、方法は、モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在を検出するステップと、1つまたは複数のオブジェクトの存在を検出したことに応答して、1つまたは複数のオブジェクトを表す画像データを、画像に示されたオブジェクトに関連するコンテンツを選択するコンテンツ配信システムに送るステップ、および、コンテンツ配信システムからコンテンツを受信するのを待機している間に、カメラのビューファインダ内の1つまたは複数のオブジェクトの各々の位置を追跡するステップと、コンテンツ配信システムから、1つまたは複数のオブジェクトに関連するコンテンツを受信するステップと、1つまたは複数のオブジェクトの各々に対して、追跡に基づいて、ビューファインダ内のオブジェクトの現在の位置を判定するステップ、および、ビューファインダ内でオブジェクトの現在の位置において、オブジェクトに関連する受信されたコンテンツを提示するステップとを含む。
【0004】
この態様の他の実装形態は、コンピュータストレージデバイス上で符号化された方法のアクションを実施するように構成された、対応する装置、方法、システム、およびコンピュータプログラムを含む。
【0005】
これらおよび他の実装形態はそれぞれ、以下の特徴のうちの1つまたは複数を任意選択で含むことができる。画像内のオブジェクトの存在を検出することは、モバイルデバイスのカメラを使用して画像のシーケンスをキャプチャすることと、画像のシーケンス内の画像のピクセルデータに基づいて、カメラが実質的に静止していると判定することと、カメラが実質的に静止しているとの判定に応答して、カメラが動くのをやめた後の所与の画像をキャプチャすることと、所与の画像内のオブジェクトの存在を検出するために、オブジェクト検出技法を使用して所与の画像を解析することとを含み得る。画像のシーケンス内の画像のピクセルデータに基づいて、カメラが実質的に静止していると判定することは、画像のシーケンス内の第1の画像における各ピクセルのそれぞれの位置を特定することと、第1の画像における各ピクセルに対して、第1の画像がキャプチャされた後にキャプチャされた1つまたは複数の後続の画像における、該ピクセルと一致する対応するピクセルのそれぞれの位置を特定すること、および、第1の画像における該ピクセルのそれぞれの位置と後続の各画像における対応するピクセルのそれぞれの位置との間の距離を判定することと、判定された各距離がしきい値距離未満であることに基づいて、カメラが実質的に静止していると判定することとを含み得る。カメラのビューファインダ内で、オブジェクトの現在の位置において、オブジェクトについてのコンテンツを提示することは、ビューファインダ内のオブジェクトの上にまたはオブジェクトに隣接してコンテンツを提示することを含み得る。カメラのビューファインダ内のオブジェクトの現在の位置を判定することは、所与の画像において、オブジェクトに対応するピクセルの第1のセットを特定することと、ピクセルの第1のセットと一致するビューファインダ内のピクセルの第2のセットの位置を判定することとを含み得る。カメラのビューファインダ内のオブジェクトの現在の位置を判定することは、モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトを表す第1の画像を受信することと、第1の画像において表され、オブジェクトに関連付けられたピクセルの第1のセットの第1の視覚特性を判定することと、モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトを表す第2の画像を受信することと、第1の視覚特性に基づいて、第2の画像内のオブジェクトの位置を判定することとを含み得る。カメラのビューファインダ内のオブジェクトの現在の位置を判定することは、第1の画像において表されたピクセルの第2のセットの第2の視覚特性を判定することと、ピクセルの第1のセットとピクセルの第2のセットとの間の距離を判定することと、第1の視覚特性および第2の視覚特性ならびに判定された距離に基づいて、第2の画像内のオブジェクトの位置を判定することとを含み得る。カメラが実質的に静止していると判定することは、第1の画像内のオブジェクトの位置および第2の画像内のオブジェクトの位置に基づき得る。カメラが実質的に静止していると判定することは、第1の画像に関連付けられた時間および第2の画像に関連付けられた時間にさらに基づき得る。コンテンツ配信システムは、1つまたは複数のオブジェクトの各々を認識するために画像データを解析し、1つまたは複数のオブジェクトの各々についてのコンテンツを選択し、所与のオブジェクトに関連するコンテンツの要求を受信する前にコンテンツを事前キャッシュし得る。ビューファインダ内で、1つまたは複数のオブジェクトの各々に対して、オブジェクトに関連するコンテンツが特定されていることを示す視覚インジケータを提示すること。モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在を検出することは、粗分類器を使用してモバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトを表す画像データを処理することを含み得る。粗分類器は軽量モデルを含み得る。1つまたは複数のオブジェクトの各々をそれぞれのオブジェクトクラスに分類することと、複数の視覚インジケータから、オブジェクトのそれぞれのクラスに基づいて、1つまたは複数のオブジェクトの各々に対するそれぞれの視覚インジケータを選択することと。1つまたは複数のオブジェクトを表す画像データをコンテンツ配信システムに送ることは、1つまたは複数のオブジェクトに関連付けられた位置を指定するデータを送ることをさらに含み得る。
【0006】
本明細書で説明される主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態において実装され得る。モバイルデバイスのカメラのビューファインダからキャプチャされた画像は、たとえば、コンテンツを見るというユーザ要求に応答してコンテンツがより迅速に提示されるように、画像において認識されたオブジェクトに関連するコンテンツを提供するコンテンツ配信システムに提供(たとえば、ストリーミング)され得る。たとえば、ユーザが画像内のオブジェクト(またはオブジェクトに対するインターフェース制御)を選択し、選択に応答して画像をコンテンツ配信システムに送信するのを待機するのではなく、コンテンツが提示される速度を上げるために画像がコンテンツ配信システムに自動的に送信され得る。認識されたオブジェクトについてのコンテンツは、ユーザ要求に応答してコンテンツが提示される速度をさらに上げるために、コンテンツ配信システムのサーバにおける高速メモリに(たとえば、キャッシュにもしくはメモリスタックの最上部に)またはユーザのデバイスに記憶され得る。
【0007】
オンデバイスピクセル追跡技法および/またはオンデバイスオブジェクト検出技法は、コンテンツ配信システムに送信された画像がオブジェクトを認識するのに十分な品質であることおよび/または画像がユーザがコンテンツを見ることに関心があるであろうオブジェクトを含むことを保証するために使用され得る。たとえば、ビューファインダ内の個々のピクセルまたはピクセルのグループによって表される視覚コンテンツの動きを追跡することによって、モバイルデバイスは、デバイスが静止しているまたは実質的に静止している(たとえば、しきい値量未満で動いている)ときを判定し、デバイスが静止しているまたは実質的に静止していると判定されたときに画像をコンテンツ配信システムに提供することができる。デバイスが実質的に静止しているときにキャプチャされた画像は、デバイスが動いているときよりも高い品質の画像の処理をもたらすことができ、このことは、コンテンツ配信システムによるより正確なオブジェクト認識をもたらす。これはまた、計算コストが高い画像処理技法を使用して低品質の画像を処理することを回避する。デバイスが静止しているという事実はまた、ビューファインダの視野内の1つまたは複数のオブジェクトに対するユーザの関心を示すことができ、このことは、画像が不必要に送信され、処理される尤度を低減し得る。
【0008】
ユーザのデバイスが静止しているまたは実質的に静止していると判定されたときにキャプチャされた画像のみを送信することによって、ネットワークを介してコンテンツ配信システムに送られ、コンテンツ配信システムによって処理される画像の数が大幅に低減され得、その結果として、消費される帯域幅がより少なくなり、ネットワーク通信がより速くなり、コンテンツ配信システムに対するデマンドが低減し、コンテンツ配信システムによるオブジェクト認識およびコンテンツ選択がより速くなる。画像がオブジェクトを示しているかどうかを判定するためにユーザのデバイスにおいてオブジェクト検出技法を使用し、オブジェクトを示している画像のみをコンテンツ配信システムに提供することは、すべてのキャプチャされた画像をコンテンツ配信システムにストリーミングすることに対して同様の技術的な改善を実現することができる。
【0009】
オブジェクトについてのコンテンツが特定されていることを示す視覚インジケータを提示することによって、ユーザがユーザに対するリアルタイムのフィードバックを受信するときにユーザ体験が改善される。これにより、アプリケーションが検出することが可能であり、かつアプリケーションがコンテンツを提供することが可能であるものは何かがユーザにとって明確になり、このことは、ユーザがアプリケーションを使用できるようにするのに役立つ。
【0010】
上記の主題の様々な特徴および利点が図に関して以下で説明される。追加の特徴および利点は、本明細書で説明される主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【0011】
【
図1】モバイルデバイスのカメラアプリケーションがモバイルデバイスのカメラのビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示する環境のブロック図である。
【
図2】ビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するモバイルデバイスの例示的なスクリーンショットのシーケンスを示す図である。
【
図3】ビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するモバイルデバイスの例示的なスクリーンショットのシーケンスを示す図である。
【
図4】モバイルデバイスのカメラのビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0012】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0013】
一般に、本明細書で説明されるシステムおよび技法は、モバイルデバイスのカメラのビューファインダに示されたオブジェクトを認識し、たとえば、ビューファインダ内の認識されたオブジェクトに関連する情報および/またはコンテンツを提示することができる。アプリケーションは、ビューファインダを提示し、ビューファインダに示された1つまたは複数のオブジェクトの存在を検出することができる。それに応答して、アプリケーションは、検出された各オブジェクトに対する視覚インジケータを提示し、ビューファインダの視野を表す画像データを、画像に示されたオブジェクトに基づいてコンテンツを提供するコンテンツ配信システムに送ることができる。アプリケーションは、オブジェクトに関連するコンテンツが受信されたときに、アプリケーションがオブジェクトにおいて(たとえば、オブジェクトの上に、オブジェクトに隣接して、またはオブジェクトのしきい値距離内に)コンテンツを提示することができるように、ビューファインダ内のオブジェクトの位置を追跡することができる。
【0014】
アプリケーションは、オブジェクトに対する視覚インジケータ(または他のユーザインターフェース制御)とのユーザ対話に応答して、または自動的に、たとえば、コンテンツを受信したこともしくはオブジェクトがユーザがコンテンツを見ることに関心があるオブジェクトであるとの判定に応答して、オブジェクトに対する情報および/またはコンテンツを提示することができる。たとえば、アプリケーションは、ビューファインダ内のオブジェクトの位置(たとえば、ビューファインダの中心に最も近いオブジェクト)に基づいて、またはユーザの検出されたアクション(たとえば、オブジェクトにズームインするか、または他のオブジェクトがもはやカメラの視野内にないようにカメラを動かす)に基づいて、コンテンツを提示すべきオブジェクトを選択することができる。
【0015】
アプリケーションは、画像データをコンテンツ配信システムに選択的に提供することができる。たとえば、アプリケーションは、画像データをキャプチャし、モバイルデバイスが実質的に静止している(たとえば、しきい値量を超えて動いていない)との判定に応答して、画像データをコンテンツ配信システムに送り得る。動きがないことは、画像品質の代わりとなるものおよびビューファインダの視野内の1つまたは複数のオブジェクトに対するユーザの関心として使用され得る。たとえば、カメラがオブジェクトを向いているようにユーザがモバイルデバイスを動かし、モバイルデバイスを動かすのをやめた場合、ユーザがオブジェクトに関連するコンテンツ(たとえば、情報またはユーザ体験)を取得することに関心がある可能性がある。以下でより詳細に説明されるように、アプリケーションは、個々のピクセルまたはピクセルのグループによって表される視覚コンテンツの動きを追跡することによって、モバイルデバイスが実質的に静止しているかどうかを判定することができる。画像データをデバイスからコンテンツ配信システムに選択的に送ることによって、アプリケーションは、サーバに送信される画像データの量を低減することができ、ユーザが送信されるべき画像を選択するために入力を行う必要を回避しながら、帯域幅使用量に関連付けられた問題に対処することができる。
【0016】
図1は、モバイルデバイス110のカメラアプリケーション116がモバイルデバイス110のカメラ111のビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示する環境100のブロック図である。モバイルデバイス110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク140を介してリソースを要求し、受信することが可能である電子デバイスである。例示的なモバイルデバイス110は、スマートフォン、タブレットコンピュータ、およびウェアラブルデバイス(たとえば、スマートウォッチ)を含む。環境100は、多くのモバイルデバイス110を含むことができる。
【0017】
カメラアプリケーション116は、特定のプラットフォーム用に開発されたネイティブアプリケーションとすることができる。カメラアプリケーション116は、モバイルデバイス110のカメラ111を制御することができる。たとえば、カメラアプリケーション116は、カメラを制御するための専用アプリケーション、アプリケーションの他の機能とともに使用するためにカメラ111を制御するカメラファーストアプリケーション、またはカメラ111にアクセスし、カメラ111を制御することができる別のタイプのアプリケーションであってもよい。カメラアプリケーション116は、カメラアプリケーション116のユーザインターフェース122においてカメラ111のビューファインダを提示することができる。
【0018】
一般に、カメラアプリケーション116は、ユーザがカメラ111のビューファインダに示されたオブジェクトに関連するコンテンツ(たとえば、情報またはユーザ体験)を見ることおよび/またはモバイルデバイス110上に記憶されたもしくはモバイルデバイス110によってアクセス可能な別の場所に記憶された画像に示されたオブジェクトに関連するコンテンツを見ることを可能にする。ビューファインダは、カメラのレンズの視野内にあるもののライブ画像を提示するモバイルデバイスのディスプレイの一部分である。ユーザが(たとえば、モバイルデバイスを動かすことによって)カメラ111を動かすと、レンズの現在の視野を提示するようにビューファインダが更新される。
【0019】
カメラアプリケーション116は、オブジェクト検出器117と、ユーザインターフェース生成器118と、オンデバイス追跡器119とを含む。オブジェクト検出器117は、エッジ検出技法および/または他のオブジェクト検出技法を使用して、ビューファインダ内のオブジェクトを検出することができる。いくつかの実装形態では、オブジェクト検出器117は、画像がオブジェクトの1つまたは複数の特定のクラス(たとえば、カテゴリ)におけるオブジェクトを含むかどうかを判定する粗分類器を含む。たとえば、粗分類器は、実際のオブジェクトを認識することまたは認識しないことによって、画像が特定のクラスのオブジェクトを含むことを検出し得る。
【0020】
粗分類器は、画像がオブジェクトのクラスを示す1つまたは複数の特徴を含む(たとえば、示す)かどうかに基づいて、オブジェクトのクラスの存在を検出することができる。粗分類器は、低い計算解析を実施して、オブジェクトのそのクラス内のオブジェクトの存在を検出するための軽量モデルを含むことができる。たとえば、粗分類器は、各クラスのオブジェクトについて、画像に示された視覚特徴の限定されたセットを検出して、画像がオブジェクトのクラス内に入るオブジェクトを含むかどうかを判定することができる。特定の例では、粗分類器は、画像が以下のクラス、すなわち、テキスト、バーコード、ランドマーク、メディアオブジェクト(たとえば、アルバムカバー、映画ポスターなど)、またはアートワークオブジェクト(たとえば、絵画、彫刻など)のうちの1つまたは複数に分類されるオブジェクトを示すかどうかを検出することができる。バーコードの場合、粗分類器は、画像が異なる幅を有する平行線を含むかどうかを判定することができる。
【0021】
いくつかの実装形態では、粗分類器は、トレーニングされた機械学習モデル(たとえば、畳み込みニューラルネットワーク)を使用して、画像の視覚特徴に基づいて画像が1つまたは複数のクラスにおけるオブジェクトを含むかどうかを判定する。たとえば、機械学習モデルは、オブジェクトのそれぞれのクラスでラベル付けされるラベル付き画像を使用してトレーニングされ得る。機械学習モデルは、オブジェクトのクラスの特定のセットのうちの0個以上に画像を分類するようにトレーニングされ得る。機械学習モデルは、画像の視覚特徴に関連するデータを入力として受信し、オブジェクトのクラスの特定のセット内のオブジェクトのクラスのうちの0個以上への分類を出力することができる。
【0022】
粗分類器は、オブジェクトのクラスが画像内で検出されたかどうかを指定するデータを出力することができる。粗分類器はまた、オブジェクトのクラスの存在が画像内で検出されたことの信頼度を示す信頼値および/または実際のオブジェクト、たとえば、エッフェル塔が画像内に示されていることの信頼度を示す信頼値を出力することができる。
【0023】
オブジェクト検出器117は、カメラ111の視野(たとえば、ビューファインダ内に何が提示されているか)を表す画像データを受信し、画像データ内の1つまたは複数のオブジェクトの存在を検出することができる。少なくとも1つのオブジェクトが画像データ内で検出された場合、カメラアプリケーション116は、ネットワーク140を介して画像データをコンテンツ配信システム150に提供(たとえば、送信)することができる。以下で説明されるように、コンテンツ配信システム150は、画像データ内のオブジェクトを認識し、オブジェクトに関連するコンテンツをモバイルデバイス110に提供することができる。
【0024】
いくつかの実装形態では、カメラ111が実質的に静止しているかまたは動くのをやめたと判定されたとき、カメラアプリケーション116は、オブジェクト検出器117を使用して、ビューファインダ内のオブジェクトの存在を検出する。カメラ111がしきい値量未満(たとえば、毎秒10ミリメートル未満)だけ動いていると判定されたとき、カメラ111は実質的に静止していると見なされ得る。しきい値量を超えて動いた後に動きの量がしきい値量を下回ったとき、カメラ111は動くのをやめたと見なされ得る。カメラ111が実質的に静止していると判定されたときにキャプチャされた画像の画像データのみを処理することによって、カメラアプリケーション116は、オブジェクト検出が可能ではないかまたは正確ではない可能性がある低品質の画像に高価な計算リソースを浪費するのではなく、より高品質の画像が処理されていることを保証することができる。
【0025】
加えて、ユーザは、カメラ111がしきい値量を超えて動いているときよりも、カメラ111が実質的に静止しているときに、カメラ111の視野内のオブジェクトについてのコンテンツを受信することに関心がある可能性が高い。たとえば、ユーザがオブジェクトに関連するコンテンツを取得することを望む場合、ユーザは、オブジェクトがカメラ111の視野内で動かないようにモバイルデバイス110を持つ可能性がある。したがって、カメラ111が静止していると判定されたときにキャプチャされた画像のデータのみを処理することによって、ユーザが受信されたコンテンツに関心がない画像内のオブジェクトを検出かつ/または認識するために高価な計算リソースが浪費されない。
【0026】
カメラアプリケーション116は、(カメラアプリケーション116の一部またはスタンドアロン追跡器とすることができる)オンデバイス追跡器119を使用して、カメラ111が実質的に静止しているときを判定することができる。オンデバイス追跡器119は、ビューファインダ内の個々のピクセルまたはピクセルのグループによって表される視覚コンテンツの動きを追跡することができる。たとえば、オンデバイス追跡器119は、画像のピクセルデータを使用して、カメラ111によってキャプチャされた画像のシーケンスを通じてピクセルの動きを追跡することができる。動きを追跡するために、オンデバイス追跡器119は、画像の各ピクセル(またはピクセルの少なくとも一部分)の視覚特性(たとえば、色、強度など)を判定することができる。次いで、オンデバイス追跡器119は、たとえば、後続の画像内の同じまたは同様の視覚特性を有するピクセルを特定することによって、後続の画像内のそのピクセルによって表される視覚コンテンツの位置を特定することができる。
【0027】
画像内の複数のピクセルは同じ視覚特性を有し得るので、オンデバイス追跡器119は、画像内の複数のピクセルおよびピクセルの相対的位置に基づいて、ピクセルによって表される視覚コンテンツの動きを追跡することができる。たとえば、同じまたは同様の第1の視覚特性を有するピクセルの第1のグループが第1の画像内の同じまたは同様の第2の視覚特性を有するピクセルの第2のグループから特定の距離のところにあり、ピクセルの2つのグループが同じ距離だけ離れた第2の画像において特定される場合、オンデバイス追跡器119は、ピクセルの第2のグループがピクセルの第1のグループと一致すると判定することができる。次いで、オンデバイス追跡器119は、ピクセルのグループによって表される視覚コンテンツがビューファインダ内で動いた距離を判定し、その距離を使用して、カメラ111の動きの量を推定することができる。
【0028】
オンデバイス追跡器119は、各ピクセルが連続する画像間で動いた(たとえば、ピクセル数の単位での)距離および各画像がキャプチャされたときの間の持続時間に基づいてカメラ111の動きを推定することができる。この例では、動きは毎秒ピクセル数に基づき得る。オンデバイス追跡器119は、毎秒ピクセル数を定数値で乗算することによって、この測定値を毎秒センチメートルに変換することができる。
【0029】
いくつかの実装形態では、モバイルデバイス110は、モバイルデバイス110の動きを検出することができるジャイロスコープおよび/または加速度計を含む。カメラアプリケーション116は、ジャイロスコープおよび/または加速度計からモバイルデバイス110の動きを記述するデータを受信し、そのデータを使用して、モバイルデバイス110が実質的に静止している(たとえば、しきい値量未満だけ動いている)かどうかを判定することができる。
【0030】
オンデバイス追跡器119はまた、複数の画像にわたってオブジェクト検出器117によって検出されたオブジェクトの動きを追跡することができる。たとえば、オブジェクト検出器117は、画像内で検出されたオブジェクトの位置(たとえば、ピクセル座標)を指定するデータを出力することができる。ピクセル座標は、たとえば、オブジェクトの輪郭を描くために、オブジェクトの境界線に沿った複数の位置の座標を含むことができる。次いで、オンデバイス追跡器119は、後続の画像にわたって(たとえば、ピクセル座標内の)その位置におけるピクセルによって示された視覚コンテンツの動きに基づいて、オブジェクトの動きを監視することができる。以下で説明されるように、後続の画像内のオブジェクトの位置は、ビューファインダ内のオブジェクトについてのコンテンツをどこに提示するかを判定するために使用され得る。
【0031】
オブジェクトの動きを追跡するために、オンデバイス追跡器119は、オンデバイス追跡器119が個々のピクセルおよびピクセルのグループの動きを追跡する方法と同様に、後続の各画像を解析して、オブジェクトが検出された第1の画像のピクセル座標で提示された視覚コンテンツの位置を特定することができる。たとえば、オンデバイス追跡器119は、第1の画像におけるオブジェクトのピクセル座標内の各ピクセルの視覚特性およびピクセルの相対的配向(たとえば、ピクセルのペア間の距離および方向)を判定することができる。後続の各画像において、オンデバイス追跡器119は、同じ(または同様の)視覚特性および同じ(または同様の)配向を有するピクセルを特定しようと試みることができる。たとえば、ビューファインダ内のオブジェクトの配向は、モバイルデバイス110の配向の変化、オブジェクトの配向の変化、および/またはモバイルデバイス110とオブジェクトとの間の距離の変化に基づいて変化することがある。したがって、オンデバイス追跡器119は、ピクセルの各ペア間の距離が前の画像内のピクセルのペア間の距離のしきい値内である場合、後続の画像内のピクセルのグループがオブジェクトと一致すると判定することがある。
【0032】
別の例では、後続の画像内のピクセルのグループが、配向またはサイズにかかわらず、同じ(または同様の)形状および視覚特性(たとえば、色および強度)を有する場合、オンデバイス追跡器119は、ピクセルのグループがオブジェクトと一致すると判定することができる。たとえば、ユーザは、オブジェクトのより良い画像をキャプチャしようとして、モバイルデバイス110を回転させるかまたはオブジェクトの近くに動かすことがある。この例では、オブジェクトのサイズおよび配向はビューファインダ内で変化することがあるが、形状および色は同じまたはほぼ同じままであるはずである。
【0033】
別の例では、オンデバイス追跡器119は、ピクセル座標に基づいてオブジェクトのエッジを特定し、画像から画像へのエッジの動きを追跡することができる。モバイルデバイス110が実質的に静止している場合、エッジは連続する画像間であまり動かない可能性がある。したがって、オンデバイス追跡器119は、前の画像内のエッジの近くの(たとえば、エッジのピクセルのしきい値数内の)ピクセルを解析することによって、後続の画像内のエッジを位置決めすることができる。
【0034】
ユーザインターフェース生成器118は、カメラ111のそのビューファインダおよび他のコンテンツを提示するユーザインターフェース122を生成し、更新することができる。オブジェクト検出器117がビューファインダ内の1つまたは複数のオブジェクトの存在を検出した場合、ユーザインターフェース生成器118は、ビューファインダ内の検出された各オブジェクトに対する視覚インジケータを提示することができる。視覚インジケータは、検出されたオブジェクトであって、そのコンテンツをユーザに提示するために特定されているオブジェクトをユーザに示すことができる。
【0035】
いくつかの実装形態では、カメラアプリケーション116は、カメラアプリケーション116が起動されるかまたはカメラがカメラアプリケーション116内で有効化されるとすぐに、オブジェクトを検出するためにオブジェクト検出器117を使用する。このようにして、ユーザがオブジェクトに関連するコンテンツを迅速に要求することを可能にするために、視覚インジケータがリアルタイムで提示され得る。
【0036】
ユーザインターフェース生成器118は、ビューファインダ内のオブジェクトの位置において各オブジェクトに対する視覚インジケータを提示するために、ユーザインターフェースを更新することができる。たとえば、ユーザインターフェース生成器118は、(たとえば、半透明のインジケータを使用して)オブジェクトの上に、オブジェクトに隣接して、またはオブジェクトからのピクセルのしきい値数内で、ただし視覚インジケータが他の検出されたオブジェクトのビューをブロックしないように、オブジェクトに対する視覚インジケータを提示することができる。オブジェクトに対する視覚インジケータは、オブジェクトの視覚ハイライト、たとえば、オブジェクトの周りの視覚ボックスまたは他の形状を含むことができる。
【0037】
ユーザインターフェース生成器118は、異なるクラスのオブジェクトに対する異なる視覚インジケータを提示することができる。たとえば、ユーザインターフェース生成器118は、オブジェクト検出器117が検出するように構成された各クラスのオブジェクトについて1つまたは複数の視覚インジケータを記憶することができる。特定のクラスのオブジェクトが検出されたとき、ユーザインターフェース生成器118は、特定のクラスに対応する視覚インジケータを選択し、ビューファインダ内の検出されたオブジェクトの位置において視覚インジケータを提示することができる。一例では、テキストに対する視覚インジケータは、円(または他の形状)の中に文字「T」または単語「テキスト」がある円を含むことができるが、ランドマークに対する視覚インジケータは、円の中に文字「L」がある円を含むことができ、犬に対する視覚インジケータは、円の中に文字「D」または単語「犬」がある円を含むことができる。ユーザインターフェース生成器118は、テキスト、バーコード、メディア、動物、植物および花、車、人の顔、ランドマーク、食べ物、衣服、電子機器、瓶および缶、ならびに/またはオブジェクト検出器117によって検出され得る他のクラスのオブジェクトに対する異なる視覚インジケータを提示することができる。別の例では、各視覚インジケータは、オブジェクトに対応する数字を含んでもよく、たとえば、検出された第1のオブジェクトに対する視覚インジケータは数字1を含んでもよく、検出された第2のオブジェクトに対する視覚インジケータは数字2を含んでもよく、以下同様である。
【0038】
いくつかの実装形態では、オブジェクトに対する視覚インジケータは、ビューファインダにおいて認識された実際のオブジェクトに基づき得る。たとえば、以下で説明されるように、モバイルデバイス110はオブジェクト認識器を含むことができるか、またはコンテンツ配信システム150はオブジェクト検出技法および視覚インジケータ技法を実施することができる。これらの例では、実際のオブジェクトは視覚インジケータを提示する前に認識されてもよく、視覚インジケータは実際のオブジェクトに基づいて選択され得る。たとえば、エッフェル塔に対する視覚インジケータは、エッフェル塔の小さい画像を含むことができる。
【0039】
いくつかの実装形態では、ユーザインターフェース生成器118は、オブジェクトのクラスに基づいてオブジェクトに対する視覚インジケータを選択することができる。ユーザインターフェース生成器118は、ビューファインダ内のオブジェクトの位置においてこの視覚インジケータを提示することができる。オブジェクトが認識された場合、ユーザインターフェース生成器118は、この視覚インジケータを、認識された実際のオブジェクトに基づいて選択された視覚インジケータに置き換えることができる。たとえば、オブジェクト検出器117は、ビューファインダ内のランドマークの存在を検出することができ、ユーザインターフェース生成器118は、検出されたランドマークの位置においてランドマークに対する視覚インジケータを提示することができる。(たとえば、モバイルデバイス110またはコンテンツ配信システム150におけるオブジェクト認識器によって)ランドマークがエッフェル塔であると判定された場合、ユーザインターフェース生成器118は、ランドマークに対する視覚インジケータを、エッフェル塔に対する視覚インジケータに置き換えることができる。
【0040】
上記で説明されたように、オンデバイス追跡器119は、ビューファインダ内の検出されたオブジェクトの位置を追跡することができる。ユーザインターフェース生成器118は、オブジェクトに対する視覚インジケータがビューファインダ内のオブジェクトについていくように、各オブジェクトについての位置情報を使用して、検出された各オブジェクトに対する視覚インジケータを動かすことができる。たとえば、ユーザインターフェース生成器118は、各オブジェクトに対する視覚インジケータがオブジェクトについていき、ビューファインダ内のオブジェクトの位置において提示されるように、ユーザインターフェース122を継続的に(または定期的に)更新することができる。
【0041】
視覚インジケータはインタラクティブであり得る。たとえば、カメラアプリケーション116は、視覚インジケータとの対話(たとえば、視覚インジケータのユーザ選択)を検出することができる。視覚インジケータとのユーザ対話を検出したことに応答して、カメラアプリケーション116は、コンテンツ配信システム150から、視覚インジケータが提示されるオブジェクトに関連するコンテンツを要求することができる。
【0042】
コンテンツ配信システム150は、1つまたは複数のフロントエンドサーバ160と、1つまたは複数のバックエンドサーバ170とを含む。フロントエンドサーバ160は、モバイルデバイス、たとえば、モバイルデバイス110から画像データを受信することができる。フロントエンドサーバ160は、画像データをバックエンドサーバ170に提供することができる。バックエンドサーバ170は、画像データにおいて認識されたオブジェクトに関連するコンテンツを特定し、そのコンテンツをフロントエンドサーバ160に提供することができる。今度は、フロントエンドサーバ160が、そのコンテンツを画像データが受信されたモバイルデバイスに提供することができる。
【0043】
バックエンドサーバ170は、オブジェクト認識器172と、ユーザインターフェース制御選択器174と、コンテンツ選択器174とを含む。オブジェクト認識器172は、モバイルデバイスから受信された画像データを処理し、もしあれば、画像データ内のオブジェクトを認識することができる。オブジェクト認識器172は、コンピュータビジョン技法および/または他のオブジェクト認識技法(たとえば、エッジマッチング、パターン認識、グレースケールマッチング、勾配マッチングなど)を使用して、画像データ内のオブジェクトを認識することができる。
【0044】
いくつかの実装形態では、オブジェクト認識器172は、トレーニングされた機械学習モデル(たとえば、畳み込みニューラルネットワーク)を使用して、モバイルデバイスから受信された画像データ内のオブジェクトを認識する。たとえば、機械学習モデルは、それぞれのオブジェクトでラベル付けされるラベル付き画像を使用してトレーニングされ得る。機械学習モデルは、画像データによって表される画像に示されたオブジェクトを特定するデータを認識し、出力するようにトレーニングされ得る。機械学習モデルは、画像の視覚特徴に関連するデータを入力として受信し、画像に示されたオブジェクトを特定するデータを出力することができる。
【0045】
オブジェクト認識器172はまた、画像が認識されたオブジェクトを示している信頼度を示す信頼値を出力することができる。たとえば、オブジェクト認識器172は、オブジェクトの特徴と画像の特徴との間の一致のレベルに基づいて、画像において認識された各オブジェクトについての信頼レベルを判定することができる。
【0046】
いくつかの実装形態では、オブジェクト認識器172は、複数のオブジェクト認識器モジュール、たとえば、それぞれのクラスにおけるオブジェクトを認識する、各クラスのオブジェクトに対するオブジェクト認識器モジュールを含む。たとえば、オブジェクト認識器172は、画像データ内のテキストを認識する(たとえば、文字、単語などを認識する)テキスト認識器モジュール、画像データ内の(QRコード(登録商標)を含む)バーコードを認識する(たとえば、復号する)バーコード認識器モジュール、画像データ内のランドマークを認識するランドマーク認識器モジュール、および/または特定のクラスのオブジェクトを認識する他のオブジェクト認識器モジュールを含むことができる。
【0047】
いくつかの実装形態では、カメラアプリケーション116は、画像の画像データに、特定のオブジェクトまたは特定のクラスのオブジェクトが検出された画像内の位置(たとえば、ピクセル座標)を指定するデータを提供する。これは、オブジェクト認識器172がオブジェクトの位置に対する画像データに焦点を合わせることを可能にすることによって、および/またはオブジェクト認識器172が画像データ内のオブジェクトを認識するために適切なオブジェクト認識器モジュール(たとえば、カメラアプリケーション116から受信されたデータによって指定されたクラスのオブジェクトに対するオブジェクト認識器モジュールのみ)を使用することを可能にすることによって、オブジェクトが認識される速度を上げることができる。これはまた、その他のオブジェクト認識モジュールによって使用されるであろう計算リソースの量を低減する。
【0048】
コンテンツ選択器174は、画像データにおいて認識された各オブジェクトについてカメラアプリケーション116に提供すべきコンテンツを選択することができる。コンテンツは、オブジェクトに関連する情報(たとえば、オブジェクトの名前を含むテキストおよび/またはオブジェクトについての事実)、視覚トリートメント(たとえば、オブジェクトのまたは関連するオブジェクトの他の画像またはビデオ)、オブジェクトに関連するリソースへのリンク(たとえば、ユーザがオブジェクトを購入するかまたはオブジェクトについての追加の情報を見ることができるウェブページまたはアプリケーションページへのリンク)、またはオブジェクトに関連する体験(拡張現実ビデオ、歌手または歌手のポスターを認識したことに応答して音楽を再生する)、および/あるいは他の適切なコンテンツを含むことができる。たとえば、オブジェクトがバーコードである場合、選択されるコンテンツは、バーコードに対応する製品の名前および製品についての情報を含むテキストベースのキャプション、ユーザが製品を購入することができるウェブページもしくはアプリケーションページへのリンク、および/または製品の画像を含んでもよい。
【0049】
コンテンツ選択器174は、認識されたオブジェクトに関連するテキストを提示する視覚トリートメントを選択することができる。視覚トリートメントは、ビューファインダ内のオブジェクトにおいて提示され得るテキストキャプションの形態とすることができる。キャプションに含まれるテキストは、オブジェクトについての事実のランキングに基づく場合があり、たとえば、より一般的な事実がより高くランクされ得る。コンテンツ選択器174は、ランキングに基づいて、モバイルデバイス110に提供すべき認識されたオブジェクトについてのキャプションのうちの1つまたは複数を選択することができる。
【0050】
コンテンツ選択器174は、オブジェクト認識器172によって出力された信頼度のレベルに基づいて、キャプションのテキストを選択することができる。たとえば、信頼度のレベルが高い(たとえば、しきい値よりも大きい)場合、テキストは、オブジェクトについての一般的な事実またはオブジェクトの名前を含むことができる。信頼度のレベルが低い(たとえば、しきい値未満である)場合、テキストは、オブジェクトがオブジェクト認識器172が検出したものであるかもしれないこと(たとえば、「これはゴールデンレトリーバかもしれません」)を示すことができる。
【0051】
コンテンツ選択器174はまた、画像において認識されたオブジェクトに基づいて、インタラクティブ制御を選択することができる。たとえば、オブジェクト認識器172が画像内の電話番号を検出した場合、コンテンツ選択器174は、対話したときに、モバイルデバイス110に認識された電話番号に電話をかけさせるクリックツーコール(click-to-call)アイコンを選択することができる。
【0052】
コンテンツは、ハードドライブ、フラッシュメモリ、高速アクセスメモリ、または他のデータストレージデバイスを含むことができるコンテンツデータストレージユニット176に記憶され得る。いくつかの実装形態では、コンテンツデータストレージユニット176は、オブジェクトおよび/またはオブジェクトのタイプごとに、そのオブジェクトまたはオブジェクトのタイプに提供され得るコンテンツを指定するインデックスを含む。インデックスは、オブジェクトまたはオブジェクトのタイプについてのコンテンツが選択される速度を上げることができる。
【0053】
コンテンツが選択された後、コンテンツは、画像データが受信されたモバイルデバイス110に提供され、コンテンツ配信システム150のコンテンツキャッシュ178に記憶され、かつ/またはフロントエンドサーバ160のメモリスタックの最上部に記憶され得る。このようにして、ユーザがコンテンツを要求したことに応答して、コンテンツがユーザに迅速に提示され得る。コンテンツがモバイルデバイス110に提供される場合、カメラアプリケーション116は、コンテンツをコンテンツキャッシュ112または他の高速アクセスメモリに記憶することができる。たとえば、カメラアプリケーション116は、オブジェクトについてのコンテンツを提示するとの判定に応答して、カメラアプリケーション116がオブジェクトについての適切なコンテンツを特定することができるように、オブジェクトへの参照とともにオブジェクトについてのコンテンツを記憶することができる。
【0054】
カメラアプリケーション116は、ユーザがオブジェクトに対する視覚インジケータと対話したことに応答して、オブジェクトについてのコンテンツを提示することができる。たとえば、カメラアプリケーション116は、オブジェクトに対する視覚インジケータとのユーザ対話を検出し、コンテンツ配信システム150からのオブジェクトについてのコンテンツを要求することができる。それに応答して、フロントエンドサーバ160は、コンテンツキャッシュ178またはメモリスタックの最上部からコンテンツを取得し、要求が受信されたモバイルデバイス110にコンテンツを提供することができる。ユーザ対話が検出される前にコンテンツがモバイルデバイス110に提供された場合、カメラアプリケーション116は、コンテンツキャッシュ112からコンテンツを取得することができる。
【0055】
いくつかの実装形態では、カメラアプリケーション116は、オブジェクトに関連するコンテンツを提示すると(たとえば、自動的に)判定する。たとえば、カメラアプリケーション116は、ビューファインダ内のオブジェクトの位置(たとえば、ビューファインダの中心に最も近いオブジェクト)に基づいて、またはユーザの検出されたアクション(たとえば、オブジェクトにズームインするか、または他のオブジェクトがもはやビューファインダの視野内にないようにカメラを動かす)に基づいて、オブジェクトについてのコンテンツを提示すると判定することができる。たとえば、オブジェクト検出器117は最初に、ビューファインダ内の3つのオブジェクトを検出することがあり、ユーザインターフェース生成器118は、3つのオブジェクトの各々に対する視覚インジケータを提示することがある。次いで、ユーザは、カメラアプリケーション116と対話して、カメラ111を動かす(かつその視野を変更する)か、またはオブジェクトのうちの1つにズームインすることがある。カメラアプリケーション116は、オブジェクトのうちの1つまたは複数がもはやビューファインダに示されていないと判定するか、またはオブジェクトのうちの1つが今はビューファインダの中心にあると判定することができる。それに応答して、カメラアプリケーション116は、ビューファインダ内にとどまっているかつ/または今はビューファインダの中心にあるオブジェクトについてのコンテンツを提示すると判定することができる。
【0056】
ユーザが視覚インジケータと対話して、オブジェクトについてのコンテンツを要求する場合、ユーザインターフェース生成器118は、ビューファインダユーザインターフェース122をフリーズ(たとえば、ビューファインダにおける現在の画像の提示を維持)し、オブジェクトについてのコンテンツを提示することができる。このようにして、ユーザは、オブジェクトが依然としてビューファインダ内で見える状態でオブジェクトに関連するコンテンツを見るために、オブジェクトが視野内にある状態でモバイルデバイス110を静止させておく必要がない。
【0057】
モバイルデバイス110およびコンテンツ配信システム150によって実施されるタスクは、様々な方法で、たとえば、システム選好またはユーザ選好の優先順位に応じて、モバイルデバイス110とコンテンツ配信システム150との間で分割され得る。たとえば、(たとえば、粗分類を使用する)オブジェクト検出、視覚インジケータ選択、オブジェクト認識、および/またはコンテンツ選択は、モバイルデバイス110、コンテンツ配信システム150、および/または他のシステムの間で分配され得る。
【0058】
いくつかの実装形態では、タスクは、環境100の現在の条件に基づいて、モバイルデバイス110とコンテンツ配信システム150との間で分配され得る。たとえば、ネットワーク通信が、たとえば、ネットワーク140に出されたデマンドに起因して遅い場合、カメラアプリケーション116は、ネットワーク140を介して画像データを送信するのではなく、オブジェクト認識タスクおよびコンテンツ選択タスクを実施することができる。ネットワーク通信が速い(たとえば、しきい値速度よりも大きい)場合、モバイルデバイス110は、たとえば、画像データをコンテンツ配信システム150に送るかどうかを判定するときにカメラ110の動きまたは画像内でオブジェクトが検出されるかどうかを考慮しないことによって、ネットワーク通信が遅いときよりも多くの画像をコンテンツ配信システム150にストリーミングすることができる。
【0059】
いくつかの実装形態では、コンテンツ配信システム150は、たとえば、カメラアプリケーション116ではなく、オブジェクト検出器117を含む。そのような例では、カメラアプリケーション116は、カメラアプリケーション116がアクティブである間にまたはユーザがカメラアプリケーション116をコンテンツ要求モードにしている間に、たとえば画像のストリームにおいて、画像データをコンテンツ配信システム150に継続的に送信することができる。コンテンツ要求モードは、画像データにおいて認識されたオブジェクトについてのコンテンツを要求するために、カメラアプリケーション116が画像データをコンテンツ配信システム150に継続的に送ることを可能にすることができる。コンテンツ配信システム150は、画像内のオブジェクトを検出し、検出されたオブジェクトに対する視覚インジケータを選択し、ビューファインダでの提示のために視覚インジケータをカメラアプリケーション116に送ることができる。コンテンツ配信システム150はまた、オブジェクトを認識し、認識された各オブジェクトについてのコンテンツを選択し、コンテンツをキャッシュすることまたはコンテンツをカメラアプリケーション116に送ることのいずれかを行うために、画像データの処理を継続することができる。
【0060】
いくつかの実装形態では、カメラアプリケーション116は、画像データ内のオブジェクトを認識するオンデバイスオブジェクト認識器を含む。この例では、カメラアプリケーション116は、オブジェクトを認識し、認識されたオブジェクトに対する視覚インジケータを提示し、コンテンツ配信システムからの認識されたオブジェクトについてのコンテンツを要求することまたはオンデバイスコンテンツデータストアからのコンテンツを特定することのいずれかを行うことができる。オンデバイスオブジェクト認識器は、オブジェクトのより限定されたセットを認識するまたはコンテンツ配信システム150のオブジェクト認識器172よりも計算コストが高くないオブジェクト認識技法を使用する軽量オブジェクト認識器とすることができる。これは、典型的なサーバよりも処理能力が低いモバイルデバイスがオブジェクト認識処理を実施することを可能にする。いくつかの実装形態では、カメラアプリケーション116は、オブジェクトの初期特定を行い、確認用に画像データをコンテンツ配信システム150(または別のオブジェクト認識システム)に提供するために、オンデバイス認識器を使用することができる。オンデバイスコンテンツデータストアはまた、モバイルデバイス110のデータストレージリソースを残しておくために、コンテンツデータストレージユニット176の場合よりも限定されたコンテンツのセット、またはコンテンツを含むリソースへのリンクを記憶してもよい。
【0061】
図2は、ビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するモバイルデバイスの例示的なスクリーンショット210、220、および230のシーケンスを示す。第1のスクリーンショット210では、モバイルデバイスは、カメラのビューファインダ213を含むユーザインターフェース212を提示する。ビューファインダ213は靴214を示している。ユーザインターフェース212は、たとえば、ユーザがカメラアプリケーションを起動したときに、カメラアプリケーションによって提示されてもよい。
【0062】
カメラアプリケーション(またはコンテンツ配信システム)は、ビューファインダ213の画像データを処理して、ビューファインダ213によって示されている任意のオブジェクトの存在を検出することができる。この例では、カメラアプリケーションは、ビューファインダ213内の靴214の存在を検出している。それに応答して、カメラアプリケーションは、スクリーンショット220のユーザインターフェース222を提示するようにユーザインターフェース212を更新することができる。
【0063】
更新されたユーザインターフェース222は、ビューファインダ213内の検出された靴214に対する視覚インジケータ224を提示する。この例では、視覚インジケータ224は、円の中に文字「s」がある円である。その代わりに、異なる形状または他の視覚特性を有する他の視覚インジケータが提示される場合がある。視覚インジケータ224は、靴214において、たとえば、靴の一部分の上に提示される。
【0064】
更新されたユーザインターフェースでは、靴214は、たとえば、モバイルデバイスおよび/またはそのカメラの動きに基づいて、ビューファインダ213の上方に移動している。上記で説明されたように、オンデバイス追跡器は、ビューファインダ内の検出されたオブジェクトの位置を追跡することができる。これは、カメラアプリケーションがビューファインダ213内の靴214の位置において靴214に対する視覚インジケータ224を提示することを可能にする。
【0065】
視覚インジケータ224は、靴214が検出されたこと、および靴に関連するコンテンツが特定されているかまたは特定されたことを示す。上記で説明されたように、カメラアプリケーションは、ビューファインダ内のオブジェクトを検出したことに応答して、ビューファインダの画像データをコンテンツ配信システムに送ることができる。視覚インジケータはまた、視覚インジケータとの対話によってカメラアプリケーションが靴214に関連するコンテンツの要求を送信するように、インタラクティブであり得る。
【0066】
ユーザ対話を検出したことに応答して、カメラアプリケーションは、スクリーンショット230のユーザインターフェース232を提示するようにユーザインターフェース222を更新することができる。更新されたユーザインターフェース232は、靴214と、靴214に関連するコンテンツとを提示する。いくつかの実装形態では、ユーザインターフェース232は、カメラのレンズの視野内にあるもののライブ画像ではなく、たとえば、ユーザが視覚インジケータ224と対話したときにキャプチャされた、靴214の画像240を提示する。画像240内の靴214の位置は、視覚インジケータ224とのユーザ対話が検出されたときのビューファインダ213内の靴214の位置と同じであり得る。
【0067】
靴214に関連するコンテンツは、コンテンツ配信システムが靴を「ExtraLight Shoe」として認識したことを記述するキャプション234を含む。キャプションは、画像240内の靴214の一部分の上に提示される。靴に関連するコンテンツはまた、ユーザがExtraLight Shoeを購入することができるリソース(たとえば、アプリケーションページまたはウェブページ)へのリンクを含むインタラクティブアイコン238と、対話したときに、カメラアプリケーションにExtraLight Shoeと同様の靴についてのコンテンツを提示させるインタラクティブアイコン240とを含む。
【0068】
図3は、ビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するモバイルデバイスの例示的なスクリーンショット310および320のシーケンスを示す。第1のスクリーンショット310では、モバイルデバイスは、カメラのビューファインダ313を含むユーザインターフェース312を提示する。ビューファインダ313は、部屋の中の家具を示している。ユーザインターフェース312は、たとえば、ユーザがカメラアプリケーションを起動したときに、カメラアプリケーションによって提示されてもよい。モバイルデバイスのカメラは、カメラアプリケーションが起動されたとき(または別のとき、たとえば、モバイルデバイスが静止したとき)に家具に向けられ得る。
【0069】
ユーザインターフェース312は、ビューファインダ313において検出された個々の家具に対する視覚インジケータ314~317を含む。この例では、各視覚インジケータ314~317は、対応する家具を表すそれぞれの数字を提示する。たとえば、視覚インジケータ314は、円の中に数字1がある円であり、ビューファインダ313内の灰色の椅子に対応する。
【0070】
ビューファインダ313は、カメラのレンズの視野内にあるもののライブ画像を示しているので、カメラを動かすことまたはカメラをズームインもしくはズームアウトさせることによって、異なるオブジェクトがビューファインダ313に提示されるかつ/またはオブジェクトがビューファインダ313から出ていく場合がある。スクリーンショット320内の更新されたユーザインターフェース322に示されているように、ユーザはカメラを灰色の椅子にズームインさせている。
【0071】
それに応答して、カメラアプリケーションは、ユーザのアクションを、ユーザが灰色の椅子に関連するコンテンツを受信することを望んでいるという指示として解釈することができる。たとえば、カメラアプリケーションは、椅子にズームインすることおよび/またはその他のオブジェクトがもはやビューファインダ313に示されていないという事実を、ユーザが灰色の椅子に関連するコンテンツを受信することに関心があるという指示として解釈することができる。それに応答して、カメラアプリケーションは、たとえば、灰色の椅子に対する視覚インジケータ314との対話を検出することなしに、灰色の椅子に関連するコンテンツを提示することができる。
【0072】
たとえば、ユーザインターフェース322は、灰色の椅子についての情報を含むキャプション326と、ユーザが椅子を買うことができるリソース(たとえば、アプリケーションページまたはウェブページ)(たとえば、ある小売店のウェブページ、または複数の小売店によって販売されている椅子を含むウェブページ)へのリンクを含むインタラクティブアイコン327と、対話したときに、カメラアプリケーションに灰色の椅子と同様の椅子についてのコンテンツを提示させるインタラクティブアイコン328とを提示する。
【0073】
図4は、モバイルデバイスのカメラのビューファインダにおいて認識されたオブジェクトに関連するコンテンツを提示するための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば、
図1のモバイルデバイス110などの1つまたは複数のデータ処理装置によって実施され得る。プロセス400の動作はまた、非一時的コンピュータ可読媒体上に記憶された命令として実装され得る。命令の実行は、1つまたは複数のデータ処理装置にプロセス400の動作を実施させる。
【0074】
モバイルデバイスのカメラのビューファインダに示された1つまたは複数のオブジェクトの存在が検出される(402)。たとえば、モバイルデバイス上で実行するカメラアプリケーションは、ビューファインダの画像データに基づいてカメラのビューファインダに示されたオブジェクトの存在を検出するオブジェクト認識器を含むことができる。
【0075】
いくつかの実装形態では、カメラが静止しているかまたは動くのをやめた(たとえば、しきい値量を超えて動いていない)との判定に応答して、画像データがキャプチャされ、解析される。カメラが(たとえば、しきい値量を超えて)動いている場合、ビューファインダの画像データは十分な品質ではないことがあるか、またはユーザがカメラの視野内の何かに関連するコンテンツを受信することに関心がないことがあるので、その画像データはオブジェクトの存在を検出するためにキャプチャまたは処理されないことがある。
【0076】
検出された各オブジェクトに対する視覚インジケータがビューファインダに提示される(404)。視覚インジケータは、オブジェクトについてのコンテンツが特定されている(または特定された)ことをモバイルデバイスのユーザに示すことができる。オブジェクトに対する視覚インジケータは、ビューファインダ内のオブジェクトの位置において提示され得る。
【0077】
各オブジェクトに対して提示される視覚インジケータは、オブジェクトが分類されたクラスに基づき得る。たとえば、テキストに対する視覚インジケータは、人に対する視覚インジケータとは異なり得る。各オブジェクトに対する視覚インジケータは、インタラクティブであり得る。たとえば、視覚インジケータとのユーザ対話は、オブジェクトに関連するコンテンツの要求を開始することができる。
【0078】
1つまたは複数のオブジェクトを表す画像データは、コンテンツ配信システムに送られる(406)。コンテンツ配信システムは、1つまたは複数のオブジェクトを認識し、1つまたは複数のオブジェクトの各々に関連するコンテンツを選択することができる。コンテンツ配信システムは、選択されたコンテンツをモバイルデバイスに送るか、または選択されたコンテンツをキャッシュにまたはメモリスタックの最上部に記憶することができる。コンテンツ管理システムにおいて記憶される場合、コンテンツ管理システムは、モバイルデバイスから受信されたコンテンツの要求に応答して、コンテンツをモバイルデバイスに送ることができる。
【0079】
ビューファインダ内の1つまたは複数のオブジェクトの各々の位置が追跡される(408)。たとえば、上記で説明されたように、各オブジェクトの位置は、ピクセル追跡技法を使用して追跡され得る。オブジェクトがビューファインダ内で見える間は、コンテンツ配信システムからコンテンツを受信するのを待機しているか、またはオブジェクトに対する視覚インジケータとのユーザ対話を待機している間に、オブジェクトの現在の位置が継続的に追跡され得る。このようにして、コンテンツが受信されたときまたはユーザがオブジェクトに対する視覚インジケータと対話したときに、遅延なしでオブジェクトの位置においてコンテンツが提示され得る。
【0080】
コンテンツがコンテンツ配信システムから受信される(410)。受信されたコンテンツは、モバイルデバイスにおいて、たとえば、ローカルキャッシュまたは他の高速メモリに記憶され得る。
【0081】
追跡に基づいて1つまたは複数のオブジェクトの各々の現在の位置が判定される(412)。たとえば、上記で説明されたように、検出された各オブジェクトのビューファインダ内の位置は、各オブジェクトの現在の位置を維持するために継続的に追跡され得る。コンテンツを提示するときが来ると、コンテンツが提示されることになる各オブジェクトの現在の位置が追跡に基づいて判定される。
【0082】
各オブジェクトについてのコンテンツがビューファインダに提示される(414)。オブジェクトについてのコンテンツは、ビューファインダ内のオブジェクトの現在の位置において提示され得る。オブジェクトに対する視覚インジケータとのユーザ対話に応答して、またはオブジェクトはユーザがコンテンツを受信することに関心があるオブジェクトであるとの判定に応答して、コンテンツが受信されたときにコンテンツが提示され得る。
【0083】
本明細書で説明される主題の実施形態は、たとえば、データサーバとしてのバックエンド構成要素を含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書で説明される主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。システムの構成要素は、デジタルデータ通信の任意の形態の媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、たとえば、インターネットを含む。
【0084】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いから離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いとのクライアント-サーバ関係を有するコンピュータプログラムによって生まれる。
【0085】
本明細書は多くの特定の実装形態の詳細を含んでいるが、これらは任意の発明のまたは特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装される場合もある。逆に、単一の実施形態の文脈において説明される様々な特徴は、複数の実施形態において別々にまたは任意の適切な副組合せで実装される場合もある。さらに、特徴はいくつかの組合せにおいて働くものとして上記で説明されることがあり、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除される場合があり、特許請求される組合せは、副組合せまたは副組合せの変形形態を対象とすることがある。
【0086】
同様に、動作は特定の順序で図面に示されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序でもしくは逐次的な順序で実施されること、またはすべての図示された動作が実施されることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上記で説明された実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されたプログラム構成要素およびシステムは一般に、単一のソフトウェア製品に一緒に組み込まれるか、または複数のソフトウェア製品の中にパッケージされる場合があると理解されるべきである。
【0087】
主題の特定の実施形態について説明してきた。他の実施形態は以下の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に列挙されるアクションは、異なる順序で実施され、それでも望ましい結果を達成し得る。一例として、添付の図に示された処理は、望ましい結果を達成するために、必ずしも示された特定の順序または逐次的な順序を必要とするとは限らない。いくつかの実装形態では、マルチタスクおよび並列処理が有利であり得る。
【符号の説明】
【0088】
100 環境
110 モバイルデバイス
111 カメラ
112 コンテンツキャッシュ
116 カメラアプリケーション
117 オブジェクト検出器
118 ユーザインターフェース生成器
119 オンデバイス追跡器
122 ユーザインターフェース、ビューファインダユーザインターフェース
140 データ通信ネットワーク、ネットワーク
150 コンテンツ配信システム
160 フロントエンドサーバ
170 バックエンドサーバ
172 オブジェクト認識器
174 コンテンツ選択器、ユーザインターフェース制御選択器
176 コンテンツデータストレージユニット
178 コンテンツキャッシュ
210 スクリーンショット、第1のスクリーンショット
212 ユーザインターフェース
213 ビューファインダ
214 靴
220 スクリーンショット
222 ユーザインターフェース
224 視覚インジケータ
230 スクリーンショット
232 ユーザインターフェース
234 キャプション
238 インタラクティブアイコン
240 画像、インタラクティブアイコン
310 スクリーンショット、第1のスクリーンショット
312 ユーザインターフェース
313 ビューファインダ
314~317 視覚インジケータ
320 スクリーンショット
322 ユーザインターフェース
326 キャプション
327 インタラクティブアイコン
328 インタラクティブアイコン
400 プロセス