(57)【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実行される方法であって、
コンピューティングデバイスのカメラからのリアルタイム画像フィードがオブジェクトのグラフィカル表現を含むことを、アシスタントアプリケーションによって判断するステップであって、前記判断するステップが、1つまたは複数の画像処理技法を使用して前記カメラからの画像を処理するステップを含む、ステップと、
前記オブジェクトと関連付けられた画像ショートカット設定を識別するステップであって、前記画像ショートカット設定が、前記リアルタイム画像フィードの中で提供された画像コンテンツに前記アシスタントアプリケーションが応答するための予め構成された処理に対応し、前記画像ショートカット設定が、前記アシスタントアプリケーションを介して少なくとも部分的に処理された言葉によるコマンドを通じて、ユーザによって予め構成される、ステップと、
前記画像ショートカット設定と関連付けられたクエリを生成するステップと、
前記クエリに基づいてデータを受信するステップであって、前記データが、前記画像ショートカット設定と関連付けられたデータのタイプに対応する、ステップと、
前記リアルタイム画像フィードが前記オブジェクトの前記グラフィカル表現を含むとの判断に応答して、かつ前記画像ショートカット設定が前記オブジェクトと関連付けて格納されていることに基づいて、
前記コンピューティングデバイスにおいて前記リアルタイム画像フィードと共に前記データがレンダリングされるようにするステップであって、前記データは、前記ユーザのコンピューティングデバイスにのみレンダリングされる、ステップとを含む、
方法。
【請求項２】
前記カメラからの前記リアルタイム画像フィードのコンテキストに対するコンテキスト識別子が、前記カメラからの前記画像から推定され、前記画像ショートカット設定の条件が満たされたかどうかを判断するために使用される、
請求項1に記載の方法。
【請求項３】
前記コンテキスト識別子が、前記カメラによって前記リアルタイム画像フィードが提供された位置を識別する、
請求項2に記載の方法。
【請求項４】
前記コンピューティングデバイスにおける別個のアプリケーションに前記クエリを伝送するステップであって、前記データが、前記別個のアプリケーションから受信される、ステップをさらに含む、
請求項1に記載の方法。
【請求項５】
データの前記タイプが、前記アシスタントアプリケーションに関係なく変わる動的なデータに対応する、
請求項1に記載の方法。
【請求項６】
前記データが、前記アシスタントアプリケーションからのクエリに対して応答性のあるリモートデバイスから受信される、
請求項5に記載の方法。
【請求項７】
カメラと、
表示デバイスと、
スピーカと、
前記カメラ、前記表示デバイス、および前記スピーカと通信する1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに、以下の動作を行わせるための命令を格納するように構成されたメモリとを備えた、
システムであって、
前記動作が、
前記カメラによって提供されたリアルタイム画像フィードからの画像に基づいてオブジェクト識別子を生成することであって、前記オブジェクト識別子を生成することが、1つまたは複数の画像処理技法を使用して前記画像を処理することを含む、ことと、
前記オブジェクト識別子が画像ショートカット設定に対応すると判断することであって、前記画像ショートカット設定が、前記リアルタイム画像フィードに現れるオブジェクトに応答してデータの提供を行わせる、ことと、
クエリを受信することに応答して前記データを検索するように構成されたリモートデバイスに前記クエリを伝送することと、
前記画像ショートカット設定と関連付けられたデータを前記リモートデバイスから受信することと、
前記表示デバイスおよび前記スピーカのうちの少なくとも1つを介して前記データが提示されるようにすることとを含み、
前記システムは、
マイクロフォンをさらに備え、
前記動作が、
前記画像ショートカット設定を生成させるというユーザからのリクエストに対応するオーディオデータを前記マイクロフォンから受信することをさらに含み、
前記表示デバイスおよび前記スピーカのうちの少なくとも1つを介して前記データが提示されるようにすることは、前記ユーザの前記表示デバイスおよび前記ユーザの前記スピーカのうちの少なくとも1つを介してのみ前記データが提示されることを含む、
システム。
【請求項８】
前記データが、前記リアルタイム画像フィードが前記表示デバイスに表示されるのと同時に提示される、
請求項7に記載のシステム。
【請求項９】
前記動作が、
前記リアルタイム画像フィードから前記画像に対するコンテキスト識別子を判断することであって、前記コンテキスト識別子が、前記カメラからの前記画像から推定され、前記画像ショートカット設定の条件が満たされたかどうかを判断するために使用されることをさらに含む、
請求項7に記載のシステム。
【請求項１０】
前記コンテキスト識別子が、前記カメラによって前記画像が生成された位置を特定する、
請求項9に記載のシステム。
【請求項１１】
前記オーディオデータが、前記カメラによって異なる画像が提供されたときに受信される、
請求項7に記載のシステム。
【請求項１２】
1つまたは複数のプロセッサに、以下の動作を行わせる命令を格納するように構成された、コンピュータ可読記憶媒体であって、
前記動作が、
画像ショートカット設定を作成するというユーザからのリクエストに対応するオーディオデータを受信することと、
コンピューティングデバイスのカメラによって生成されたリアルタイム画像フィードから画像データを受信することと、
行われるべき1つまたは複数のコンピュータアクションを前記オーディオデータから識別することと、
前記コンピューティングデバイスの前記カメラが向けられたオブジェクトに対応するオブジェクト識別子を前記画像データから識別することであって、前記オブジェクト識別子を識別することが、1つまたは複数の画像処理技法を使用して前記画像データを処理することを含む、ことと、
前記リクエストおよび前記オブジェクト識別子に基づいて前記画像ショートカット設定を生成することであって、前記画像ショートカット設定が、前記カメラからのその後のリアルタイム画像フィードからの後続の画像データからの前記オブジェクト識別子の識別に応答して、前記1つまたは複数のコンピュータアクションを行わせるように構成される、ことと、
前記後続の画像データからの前記オブジェクト識別子の識別に応答して、前記画像ショートカット設定に応じた前記1つまたは複数のコンピュータアクションを行わせることであって、前記1つまたは複数のコンピュータアクションを行わせることは、前記ユーザのコンピューティングデバイスにのみ前記1つまたは複数のコンピュータアクションを行わせることを含む、こととを含む、
コンピュータ可読記憶媒体。
【請求項１３】
前記1つまたは複数のコンピュータアクションが、少なくとも1つの周辺デバイスにコマンドを伝送することを含み、
前記コマンドが、前記少なくとも1つの周辺デバイスの状態を変化させる、
請求項12に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記オブジェクトに対応する前記オブジェクト識別子を識別することが、
前記コンピューティングデバイスの前記カメラが向けられた複数の異なるオブジェクトに対応する複数のオブジェクト識別子を識別することを含む、
請求項12に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記画像ショートカット設定が、前記複数のオブジェクト識別子に基づく、
請求項14に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記動作が、
前記画像データから前記リクエストに対するコンテキスト識別子を識別することであって、前記コンテキスト識別子が、前記画像データから推定され、前記画像ショートカット設定の条件が満たされたかどうかを判断するために使用されることをさらに含む、
請求項12に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記コンテキスト識別子が、少なくとも1つの時間または少なくとも1つの位置を識別し、前記画像ショートカット設定に応じた前記1つまたは複数のコンピュータアクションを行わせることが、
前記少なくとも1つの時間に一致する時間において、または前記少なくとも1つの位置に一致する位置において、前記後続の画像データが提供されることにさらに応答するものである、
請求項16に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、アシスタントアプリケーションのための画像ショートカットを提供するシステム、方法、および装置に関する。
【背景技術】
【０００２】
人間は、「自動アシスタント」と呼ばれる(本明細書において、「デジタルエージェント」、「チャットボット」、「対話型個人アシスタント」、「インテリジェント個人アシスタント」、「会話エージェント」、等とも呼ばれる)対話型ソフトウェアアプリケーションとの人間対コンピュータのダイアログに従事することができる。例えば、人間(自動アシスタントと対話するときには「ユーザ」と呼ばれることがある)は、場合によってはテキストに変換され、その後、処理されることがある発言された自然言語入力(すなわち、発話)を使用して、および/またはテキストの(例えば、タイプされた)自然言語入力を行うことによって、コマンドおよび/またはリクエストを発行することができる。自動アシスタントの使用は、情報へのアクセスを簡単にし、周辺デバイスを制御するための手段を便利にすることができる可能性があるが、発言入力および/またはテキストのコマンドを発行することは、状況によっては困難である可能性もある。例えば、ユーザは、自分の家庭内の他の人物が睡眠している可能性のある朝に、自動アシスタントアプリケーションに発言コマンドを発行することを望まない可能性がある。これらおよび他の問題は、アシスタントアプリケーションが発言コマンドに依存することに原因がある可能性がある。しかし、より複雑なコマンドを発行すること、あまり困難ではない入力でコマンドを発行すること、対応するユーザのプライバシを保護するコマンドを発行すること、および/または追加もしくは代替の利点でコマンドを発行すること、を行う方式がある可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書において開示される実装形態は、ユーザのコンピューティングデバイスのカメラからの画像の中に1つまたは複数の特徴がある(例えば、カメラからのリアルタイム画像フィードの中にある)との判断に応答して、1つまたは複数の対応するコンピュータアクションを行わせる画像ショートカットを生成し、利用することに関する。様々な実装形態において、画像ショートカットは、ユーザによって発行された、発言されたユーザインターフェース入力および/またはタイプされたユーザインターフェース入力に応答して、ユーザと関連付けて生成され、格納される。例えば、ユーザは、「駅のプラットフォームにカメラを向けたとき、列車時刻表を表示して」という発言入力を自動アシスタントアプリケーションに発行することができる。発言入力に応答して、「駅のプラットフォーム」を示す性質のある特徴を有する画像を、コンピューティングデバイスのカメラからのリアルタイム画像フィードがキャプチャしているとの判断に応答して、ユーザのコンピューティングデバイスに、列車時刻表情報を、グラフィカルに、および/または聞こえるように提示させる画像ショートカットが生成されることが可能である。例えば、コンピューティングデバイスを介してキャプチャされる将来の画像は、「駅のプラットフォーム」画像としての画像の分類、「列車」、「人々」、「群衆」、「線路」などの画像の一部の分類、および/または「駅のプラットフォーム」を示す性質のある他の分類、等などの「駅のプラットフォーム」を示す特徴を識別するために、(コンピューティングデバイスにおいてローカルに、および/またはリモートで)処理されることが可能である。このような特徴の存在に基づいて将来の画像が「駅のプラットフォーム」をキャプチャしていることが判断され、それに応じて列車時刻表情報が提示されることが可能になる。列車時刻表情報は、画像をキャプチャした同じコンピューティングデバイスにおいて聞こえるようにおよび/もしくはグラフィカルに提示されること、ならびに/または画像をキャプチャしたコンピューティングデバイスに(例えば、同じネットワークに接続された両方のコンピューティングデバイスに基づいて、両方のコンピューティングデバイスにおいて使用されるユーザアカウントを通じて)リンクされた別のコンピューティングデバイスにおいて提示されることが可能である。いくつかの実装形態において、コンピューティングデバイスの現在地、および/または他のコンテキストデータも、画像が「駅のプラットフォーム」をキャプチャしていると判断するために利用されることが可能である。例えば、画像が駅のプラットフォームをキャプチャしていると判断することは、画像の特徴が「駅のプラットフォーム」を示す性質があると判断すること、およびコンピューティングデバイスの現在地が「列車の駅」の分類を有すると判断すること、の両方に基づくことが可能である。様々な画像処理技法が、画像の分類および/または他の特徴を判断するために利用されることが可能である。例えば、技法の中には、画像を入力として受け入れ、学習パラメータを利用して、複数の対応する特徴のどれが画像の中に存在するかを示す尺度を画像に基づく出力として生成するディープニューラル��ットワークモデルを利用できるものもある。
【０００４】
いくつかの実装形態において、画像ショートカットに対して行われるべきコンピュータアクションは、クエリを生成すること、生成したクエリを伝送すること、クエリの伝送に応答して応答データを受信すること、および/または応答データの全てもしくは一部を提示することを含む。これらの実装形態のいくつかにおいて、画像ショートカットは、画像ショートカットに応じて提供されることになるデータのタイプを示すクエリまたはクエリテンプレートと関連付けられる。例えば、また、上記の「駅のプラットフォーム」の例を続けると、生成した画像ショートカットは、「列車時刻表」というクエリ、「[現在地]の列車時刻表」というクエリテンプレート、または「[現在地]から[目的地]への列車時刻表」というクエリテンプレートを定義することができる。このクエリテンプレートにおいて、プレースホルダ「[現在地]」は、コンピューティングデバイスの現在地で埋められることが可能である。現在地は、コンピューティングデバイスが現在位置している列車の駅を示す特定の座標、地理的領域、またはテキストもしくは他の情報であることが可能である。プレースホルダ「[目的地]」は、平日の朝の場合にはユーザにとっての「仕事」の目的地、平日の夜の場合にはユーザにとっての「家」の目的地、ユーザの電子カレンダに格納された時間的に近い約束に対応するユーザにとっての「約束」の位置等の、状況的に関連のある目的地で埋められることが可能である。これらの実装形態のいくつかにおいて、クエリまたは「埋められる」クエリテンプレートは、画像が駅のプラットフォームをキャプチャしているとの判断に応答して、示すべき列車時刻表情報を判断するために利用されることが可能である。例えば、クエリまたは満たされるクエリテンプレートは、サーチエンジン、アプリケーション、および/または他のリソースに伝送されることが可能であり、それに応じて応答の列車時刻表が受信され、応答の列車時刻表が聞こえるようにまたはグラフィカルに提示されることが可能である。
【０００５】
いくつかの実装形態において、画像ショートカットに対して行われるコンピュータアクションは、追加および/または代替として、1つまたは複数の周辺デバイス(例えば、モノのインターネット(IoT)デバイス)の状態を変化させる1つまたは複数のコマンドを伝送することを含む。例えば、ユーザは、「朝、私の目覚まし時計にカメラを向けたとき、私の寝室の明かりをオンにし、私のコーヒーメーカのプラグをオンにして」という発言入力を自動アシスタントアプリケーションに発行することができる。この発言入力に応答して、ユーザのコンピューティングデバイスのカメラからのリアルタイム画像フィードが、任意の「目覚まし時計」(またはユーザの特定の目覚まし時計)を示す性質のある特徴を有する画像をキャプチャしているとの判断に応答して、ユーザの「寝室の明かり」および「コーヒーメーカのプラグ」をオンにする画像ショートカットが生成されることが可能である。例えば、画像ショートカットは、判断に応答して、「寝室の明かり」とラベルを付けられたネットワーク接続式の明かりを「オン」にし、「コーヒーメーカのプラグ」とラベルを付けられたネットワーク接続式のプラグも「オン」にするコマンドが伝送されるようにすることができる。デバイスの状態を変化させるコマンドを生成および/または伝送する際に、1つまたは複数のアプリケーションプログラミングインターフェース(API)および/または他の通信プロトコルが利用されることが可能である。いくつかの実装形態において、画像ショートカットは、目覚まし時計を示す性質のある特徴を画像が有し、(例えば、「朝に」を含む発言入力に基づいて)「朝」に画像がキャプチャされていること、および/または(例えば、「私の目覚まし時計」を含む発言入力に基づいて)ユーザの「家」の位置において画像がキャプチャされていること、を判断することに基づいて「寝室の明かり」および「コーヒーメーカのプラグ」をオンにする。さらに、いくつかの実装形態において、自動アシスタントは、画像ショートカットを生成するとき、ユーザの特定の目覚まし時計の画像をキャプチャすることをユーザに促し、その後、(促すことに応答してキャプチャされた画像から導き出されるような)ユーザの特定の目覚まし時計の特徴に一致する特徴を有する画像をリアルタイム画像フィードがキャプチャすることだけに応答して、画像ショートカットをトリガすることができる。
【０００６】
いくつかの実装形態において、画像ショートカットに対して行われるコンピュータアクションは、追加および/または代替として、1つまたは複数の電子通信を他のユーザに伝送することを含む。例えば、ユーザは、「仕事中に私の車の鍵にカメラを向けたとき、最新交通情報を表示して、最新交通情報を私の妻にメールで送って」という発言入力を自動アシスタントアプリケーションに発行することができる。この発言入力に応答して、ユーザが仕事中であり、ユーザのコンピューティングデバイスのカメラからのリアルタイム画像フィードが、「車の鍵」を示す性質のある特徴を有する画像をキャプチャしているとの判断に応答して、コンピューティングデバイス(および/またはユーザの別のコンピューティングデバイス)に最新交通情報が提示されるようにし、最新交通情報を含むテキストメッセージが自動的に生成され、ユーザの「妻」の連絡先に自動的に伝送されるようにする画像ショートカットが生成されることが可能である。
【０００７】
本明細書において開示される実装形態の別の例として、ユーザは、自分の朝の日課を行っている間、自分の携帯型コンピューティングデバイスに格納されているような自分のアジェンダを見ることを望むことができる。ユーザは、アジェンダを見るための発言コマンド(例えば、「アシスタント、私のアジェンダを私に見せて」)を使用して、自分の自動アシスタントを起動することができるが、ユーザは、代わりに、1つまたは複数の特定の特徴を有するオブジェクトに携帯型コンピューティングデバイスのカメラが向けられたとき、アジェンダを自動的に示すように自動アシスタントを構成することができる。ユーザは、例えば、「アシスタント、朝、鏡にカメラを向けたとき、私のアジェンダを表示して」などの発言コマンドを使用して、この設定を構成することができる。それに応じて、自動アシスタントは、新しい画像ショートカット構成に関するテキストを識別するために、発言コマンドが構文解析されるようにすることができる。新しい画像ショートカット構成が次に生成され、後で使用するために格納されることが可能である。例えば、新しい画像ショートカット構成は、現在「朝」であり、カメラによってキャプチャされた画像が鏡を含むとの判断に応答して、携帯型コンピューティングデバイスを介して、ユーザの現在のアジェンダがユーザに聞こえるようにおよび/またはグラフィカルに示されるようにすることができる。例えば、翌朝、ユーザは、自分の携帯型コンピューティングデバイス上のカメラアプリケーションを開き、自分の鏡にカメラを向けることができる。「朝」であること、および鏡にカメラが向けられることに応答して、自動アシスタントは、携帯型コンピューティングデバイスにその日のユーザのアジェンダが提示されるようにすることができる。
【０００８】
様々な実装形態において、本明細書で説明される上記および他の技法は、困難なタイプされた入力がユーザによって発行されることを要求することなく、および/または(例えば、他の個人が近くにいる場合など)プライバシに対する懸念を引き起こす可能性のある発言入力をユーザが発行することを要求することなく、ユーザが、自動アシスタントと対話し、自動アシスタントから関連出力を入手することを可能にする。さらに、様々な実装形態は、他の技法と比べて、関連出力を入手するために要求される入力の数を減らすことができ、クライアントデバイスの計算リソースを節約すること、ならびに/または発言および/もしくは器用さの問題でユーザを支援することができる。追加として、本明細書において開示される様々な実装形態は、画像に含まれるオブジェクトの特徴を判断するために、クライアントデバイスにおいて画像の処理をローカルに行う。これらの様々な実装形態のいくつかにおいて、クライアントデバイスは、判断した特徴に基づいて、また任意選択として、ローカルに判断したコンテキストデータ(例えば、現在の時間、現在の曜日、クライアントデバイスの現在地)にも基づいて、画像ショートカット設定が例示されているかどうかをさらにローカルに判断する。さらにクライアントデバイスはそれ自体、画像ショートカット設定が例示されているとの判断に応答して、画像ショートカット設定のコンピュータアクションをローカルに行うことができ、また、(画像および/またはコンテキストデータを伝送することなく)コンピュータアクションの1つまたは複数を行わせるために、クエリおよび/または他のデータを1つまたは複数のリモートデバイスに伝送することができる。このように、画像および/またはコンテキストデータは、画像ショートカット設定のコンピュータアクションを行わせるために、クライアントデバイスから画像が伝送されることを要求することなく、クライアントデバイスにおいて維持されることが可能であり、このことにより、これらの画像および/またはコンテキストデータのセキュリティを強化する。
【０００９】
いくつかの実装形態において、1つまたは複数のプロセッサによって実行される方法は、コンピューティングデバイスのカメラからのリアルタイム画像フィードがオブジェクトのグラフィカル表現を含むことを、アシスタントアプリケーションによって判断することなどのステップを含むものとして示される。判断は、1つまたは複数の画像処理技法を使用してカメラからの画像を処理することを含むことができる。ステップは、オブジェクトと関連付けられた画像ショートカット設定を識別することを含むこともできる。画像ショートカット設定は、リアルタイム画像フィードの中で提供された画像コンテンツにアシスタントアプリケーションが応答する際の予め構成された処理に対応することが可能である。ステップは、画像ショートカット設定と関連付けられたクエリを生成することをさらに含むことができる。クエリは、画像ショートカット設定に応じてアシスタントアプリケーションが提供するデータのタイプに関するデータ識別子を含むことができる。追加として、ステップは、クエリに基づいてデータを受信することであって、データが、画像ショートカット設定と関連付けられたデータのタイプに対応する、受信することを含むことができる。リアルタイム画像フィードがオブジェクトのグラフィカル表現を含むとの判断に応答して、また画像ショートカット設定がオブジェクトと関連付けて格納されていることに基づいて、1つまたは複数のプロセッサは、コンピューティングデバイスにおいてリアルタイム画像フィードと共にオブジェクトデータがレンダリングされるようにするステップを行うことができる。
【００１０】
クエリは、カメラからのリアルタイム画像フィードのコンテキストに対するコンテキスト識別子をさらに含むことができる。コンテキスト識別子は、カメラによってリアルタイム画像フィードが提供された位置を識別することができる。画像ショートカット設定は、アシスタントアプリケーションを介して少なくとも部分的に処理された言葉によるコマンドを通じて、ユーザによって予め構成されることが可能である。ステップは、コンピューティングデバイスにおける別個のアプリケーションにクエリを伝送することであって、データが、別個のアプリケーションから受信されることが可能な、伝送することを含むこともできる。データのタイプは、アシスタントアプリケーションに関係なく変わる動的なデータに対応することが可能である。データは、アシスタントアプリケーションからのクエリに対して応答性のあるリモートデバイスから受信されることが可能である。
【００１１】
他の実装形態において、システムは、カメラと、表示デバイスと、スピーカと、カメラ、表示デバイス、およびスピーカと通信する1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると、カメラによって提供されたリアルタイム画像フィードからの画像に基づいてオブジェクト識別子を生成することを含むステップを1つまたは複数のプロセッサに行わせる命令を格納するように構成されたメモリと、を含むものとして示される。オブジェクト識別子を生成することは、1つまたは複数の画像処理技法を使用して画像を処理することを含むことができる。ステップは、オブジェクト識別子が画像ショートカット設定に対応すると判断することを含むこともできる。画像ショートカット設定は、リアルタイム画像フィードに現れるオブジェクトに応答してデータの提供を行わせることができる。ステップは、クエリを受信することに応答してデータを検索するように構成されたリモートデバイスにクエリを伝送すること、画像ショートカット設定と関連付けられたデータをリモートデバイスから受信すること、ならびに表示デバイスおよびスピーカのうちの少なくとも1つを介してデータが提示されるようにすること、をさらに含むことができる。
【００１２】
データは、リアルタイム画像フィードが表示デバイスに表示されるのと同時に提示されることが可能である。ステップは、リアルタイム画像フィードから画像に対するコンテキスト識別子を判断することであって、クエリが、コンテキスト識別子を含む、判断することをさらに含むことができる。コンテキスト識別子は、カメラによって画像が生成された位置を特定することができる。システムは、マイクロフォンを含むこともでき、ステップは、画像ショートカット設定を生成させるというユーザからのリクエストに対応するオーディオデータをマイクロフォンから受信することをさらに含むことができる。オーディオデータは、カメラによって異なる画像が提供されたときに受信されることが可能である。ステップは、オーディオデータからオブジェクト記述を識別することと、オブジェクト記述と異なる画像との間の対応関係を判断することと、オブジェクト記述に少なくとも基づいて画像ショートカット設定を生成することと、を含むこともできる。
【００１３】
さらなる他の実装形態において、非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、アシスタントアプリケーションが画像ショートカット設定を作成するというリクエストに対応するオーディオデータを受信することと、コンピューティングデバイスのカメラによって生成されたリアルタイム画像フィードから画像データを受信することと、を含むステップを1つまたは複数のプロセッサに行わせる命令を格納するものとして示され、アシスタントアプリケーションは、コンピューティングデバイスにとってアクセス可能であることが可能である。ステップは、アシスタントアプリケーションからのデータのリクエストをオーディオデータから識別することと、コンピューティングデバイスのカメラが向けられたオブジェクトに対応するオブジェクト識別子を画像データから識別することと、も含むことができる。オブジェクト識別子を識別するステップは、1つまたは複数の画像処理技法を使用して画像データを処理することを含むことができる。ステップは、リクエストおよびオブジェクト識別子に基づいて画像ショートカット設定を生成することをさらに含むことができる。画像ショートカット設定は、カメラによって生成されたリアルタイム画像フィードに対してアシスタントアプリケーションが応答性のあるものになるように構成されることが可能である。追加として、ステップは、オブジェクト識別子と関連付けられた異なる画像データをカメラがもたらすことに応答して、画像ショートカット設定に応じてデータを提供することをアシスタントアプリケーションに行わせることを含むことができる。
【００１４】
いくつかの実装形態において、ステップは、カメラが以前に向けられたオブジェクトを異なる画像データから識別すること、およびリクエストに対応するデータを提供するリモートサービスにアクセスすることを含むことができる。オブジェクトに対応するオブジェクト識別子を識別するステップは、コンピューティングデバイスのカメラが向けられた複数の異なるオブジェクトに対応する複数のオブジェクト識別子を識別することを含むことができる。画像ショートカット設定は、複数のオブジェクト識別子にさらに基づくことが可能である。いくつかの実装形態において、ステップは、オーディオデータまたは画像データからリクエストに対するコンテキスト識別子を識別することを含むこともできる。画像ショートカット設定は、コンテキスト識別子にさらに基づいて生成されることが可能である。コンテキスト識別子は、リクエストの時間を識別することができ、アシスタントアプリケーションは、識別した時間における異なる画像データをカメラがもたらすことにさらに応答してデータを提供することができる。
【００１５】
さらなる他の実装形態において、1つまたは複数のプロセッサによって実行される方法が示され、1つまたは複数の画像処理技法を使用してコンピューティングデバイスのカメラから画像を処理すること、および処理に基づいて、1つまたは複数の特徴を画像が含むと判断することを含む。方法は、1つまたは複数の特徴と関連付けられた画像ショートカット設定を識別することをさらに含む。画像ショートカット設定は、1つまたは複数の特徴を画像が含むとの判断に応答して行われるべき1つまたは複数のコンピュータアクションを定義する。方法は、1つまたは複数の特徴を画像が含むとの判断に応答して、また、1つまたは複数の特徴と関連付けて格納された画像ショートカット設定に基づいて、1つまたは複数のコンピュータアクションを行うことをさらに含む。
【００１６】
1つまたは複数のコンピュータアクションは、少なくとも1つの周辺デバイスにコマンドが伝送されるようにすることを含むことができ、ここで、コマンドは、少なくとも1つの周辺デバイスの状態を変化させる。1つまたは複数のコンピュータアクションは、追加または代替として、クエリを伝送すること、クエリに応答してデータを受信すること、ならびにコンピューティングデバイスにおいて、および/またはコンピューティングデバイスにリンクされた別のコンピューティングデバイスにおいて、データが提示されるようにすること、を含むことができる。クエリは、任意選択として、1つもしくは複数の特徴に基づいて、および/または画像のキャプチャと関連付けられたコンテキストデータに基づいて、生成されることが可能である。1つまたは複数のコンピュータアクションは、追加または代替として、追加のユーザの追加のコンピューティングデバイスに電子通信(例えば、eメール、テキストメッセージ)が伝送されるようにすることを含むことができる。画像は、カメラのリアルタイム画像フィードからのものであることが可能である。
【００１７】
さらなる他の実装形態において、1つまたは複数のプロセッサによって実行される方法が示され、画像ショートカット設定を作成するというリクエストに対応するオーディオデータを受信することと、コンピューティングデバイスのカメラによって生成されたリアルタイム画像フィードから画像データを受信することと、を含む。方法は、行われるべき1つまたは複数のコンピュータアクションをオーディオデータから識別することと、コンピューティングデバイスのカメラが向けられたオブジェクトに対応するオブジェクト識別子を画像データから識別することと、をさらに含む。オブジェクト識別子を識別することは、1つまたは複数の画像処理技法を使用して画像データを処理することを含む。方法は、リクエストおよびオブジェクト識別子に基づいて画像ショートカット設定を生成することをさらに含む。画像ショートカット設定は、カメラからのその後のリアルタイム画像フィードからの後続の画像データからのオブジェクト識別子の識別に応答して、1つまたは複数のコンピュータアクションを行わせるように構成される。方法は、後続の画像データからのオブジェクト識別子の識別に応答して、画像ショートカット設定に応じて、1つまたは複数のコンピュータアクションを行わせることをさらに含む。
【００１８】
1つまたは複数のコンピュータアクションは、少なくとも1つの周辺デバイスにコマンドを伝送することを含むことができ、ここで、コマンドは、少なくとも1つの周辺デバイスの状態を変化させる。方法は、オーディオデータおよび/または画像データからリクエストに対するコンテキスト識別子を識別することと、コンテキスト識別子にさらに基づいて画像ショートカット設定を生成することと、をさらに含むことができる。コンテキスト識別子は、少なくとも1つの時間および/または少なくとも1つの位置を識別することができ、画像ショートカット設定に応じて、1つまたは複数のコンピュータアクションを行わせることは、少なくとも1つの時間に一致する時間において、および/または、または少なくとも1つの位置に一致する位置において、後続の画像データが提供されることにさらに応答するものであることが可能である。
【００１９】
さらに、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、ここで、1つまたは複数のプロセッサは、関連付けられたメモリに格納された命令を実行するように動作可能であり、命令は、本明細書で説明される1つまたは複数の方法を行わせるように構成される。プロセッサは、1つまたは複数のグラフィック処理ユニット(GPU)、中央処理装置(CPU)、および/またはテンソル処理ユニット(TPU)を含むことができる。いくつかの実装形態は、本明細書で説明される1つまたは複数の方法を行うように1つまたは複数のプロセッサによって実行可能なコンピュータ命令を格納する1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含む。
【００２０】
本明細書においてより詳細に説明される前述の概念と追加の概念との全ての組合せは、本明細書において開示される主題の一部であると想定されることが理解されよう。例えば、本開示の終わりに現れる特許請求される主題の全ての組合せは、本明細書において開示される主題の一部であると想定される。
【図面の簡単な説明】
【００２１】
【図１】ユーザによって作成された画像ショートカット設定に応じてカメラ画像に応答することができる自動アシスタントを提供するためのシステムを示す図である。
【図２Ａ】ユーザからの命令に応じて画像ショートカット設定を生成することができるアシスタントアプリケーションを動作させるコンピューティングデバイスのビューを示す図である。
【図２Ｂ】画像ショートカット設定と関連付けられたオブジェクトにコンピューティングデバイスのカメラを向けることによって、ユーザが画像ショートカット設定を初期化することに対する応答を行うコンピューティングデバイスのビューを示す図である。
【図３Ａ】アシスタントアプリケーションのための画像ショートカット設定を構成するために使用されているコンピューティングデバイスのビューを示す図である。
【図３Ｂ】画像ショートカット設定に応じてアシスタントアプリケーションを動作させるコンピューティングデバイスのビューを示す図である。
【図４Ａ】アシスタントアプリケーションによって受信されたコンテキストデータに少なくとも基づいてデータを提供すること、またはアクションを行うことをアシスタントアプリケーションに行わせることができる画像ショートカット設定をアレンジするために使用されるコンピューティングデバイスのビューを示す図である。
【図４Ｂ】以前に生成した画像ショートカット設定に応じてアシスタントアプリケーションにアクションを行わせるために、コンピューティングデバイスのカメラを列車の駅に向けているユーザのビューを示す図である。
【図５Ａ】ユーザがコンピューティングデバイスのカメラを鏡に向けることに対して、コンピューティングデバイス上で動作するアシスタントアプリケーションが応答性のある画像ショートカット設定を作成するユーザのビューを示す図である。
【図５Ｂ】画像ショートカット設定に応じて機能を行うためにアシスタントアプリケーションを起動するユーザのビューを示す図である。
【図６】アシスタントアプリケーションの画像ショートカット設定に応じて、ユーザにデータを提供することをアシスタントアプリケーションに行わせるための方法を示す図である。
【図７】ユーザからの少なくともコマンドに応じて、画像ショートカット設定を生成するための方法を示す図である。
【図８】コンピュータシステムの例のブロック図である。
【発明を実施するための形態】
【００２２】
本明細書において開示される実装形態は、コンピューティングデバイスのカメラが1つまたは複数のオブジェクトに向けられたときに、1つまたは複数の機能をアシスタントアプリケーションに行わせることができる画像ショートカット設定に関する。例えば、ユーザは、自分の朝の日課を行いながら、自分の携帯型コンピューティングデバイスに格納されているような自分のアジェンダを見たいと思うことがある。ユーザはアジェンダを見るために発言コマンド(例えば、「アシスタント、私のアジェンダを私に見せて」)を使用して自分の自動アシスタントを起動することができるが、ユーザは、代わりに、1つまたは複数の特定の特徴を有するオブジェクトに携帯型コンピューティングデバイスのカメラが向けられたときに、アジェンダを自動的に示すように自動アシスタントを構成することができる。ユーザは、例えば、「アシスタント、朝、鏡にカメラを向けたとき、私のアジェンダを表示して」などの発言コマンドを使用してこの設定を構成することができる。それに応じて、自動アシスタントは、新しい画像ショートカット構成に関するテキストを識別するために、発言コマンドが構文解析されるようにすることができる。新しい画像ショートカット構成は、その後、生成され、後で使用するために格納されることが可能である。例えば、新しい画像ショートカット構成は、現在「朝」であり、カメラによってキャプチャされた画像が鏡を含むとの判断に応答して、携帯型コンピューティングデバイスを介してユーザに対し、ユーザの現在のアジェンダが聞こえるようにおよび/またはグラフィカルに示されることを可能にする。例えば、翌朝、ユーザは、自分の携帯型コンピューティングデバイス上のカメラアプリケーションを開き、自分の鏡にカメラを向けることができる。「朝」であること、および鏡にカメラが向けられることに応答して、自動アシスタントは、携帯型コンピューティングデバイスに、および/またはユーザの別のコンピューティングデバイスに、今日のユーザのアジェンダが提示されるようにすることができる。例えば、ユーザは、携帯型腕時計のカメラを自分の鏡に向けることができ、それに応じて、ユーザのアジェンダは、ユーザのスマートフォン、ユーザのスマートテレビ、またはユーザのスタンドアロン型音声作動式スピーカに聞こえるようにおよび/またはグラフィカルに提示されることが可能である。
【００２３】
いくつかの実装形態において、ユーザは、携帯型コンピューティングデバイスのカメラによって生成された画像に関する情報を提供するように自動アシスタントを構成することができる。例えば、ユーザは、ユーザが空にカメラを向けたときに天気情報を提供するように自動アシスタントに口頭で指示することができる(例えば、「アシスタント、空にカメラを向けたとき、天気情報を表示して」)。その後、ユーザが空にカメラを向けたとき、自動アシスタントは、天気アプリケーションまたは天気データに関するウェブサイトに問い合わせ、携帯型コンピューティングデバイスのディスプレイに、および/または別のコンピューティングデバイスのディスプレイに、天気データを提示することができる。いくつかの実装形態において、自動アシスタントは、携帯型コンピューティングデバイスの地理位置情報を使用して、カメラによってキャプチャされた空の画像と組み合わせて天気情報を提供することができる。例えば、自動アシスタントは、位置、および/または画像から導き出されたオブジェクト情報を含むクエリを生成することができる。クエリは、天気アプリケーション、天気ウェブサイト、および/または天気情報に関する他の任意のソースに提供されることが可能である。自動アシスタントは、次に、位置に固有の天気情報、および/またはカメラによってキャプチャされた画像を受信することができる。位置に固有の天気情報は、位置に固有であることが可能な温度、湿度、降水量、雲の分布、および/または他の任意の天気情報に対応する予報を含むことができる。
【００２４】
いくつかの実装形態において、カメラによってキャプチャされた画像は、自動アシスタントによって提供された情報が、識別したオブジェクトに基づくことを可能にするために、コンピューティングデバイス、または画像の中のオブジェクトを識別するためのサービスを提供するリモートデバイス、において処理されることが可能である。例えば、ユーザが空にカメラを向けたときに天気情報を提供するようにユーザが自動アシスタントを構成したとき、空にあるオブジェクトが、天気情報を提供する基礎として識別され、使用されることが可能である。このようなオブジェクトは、雲、または雲がないことを含むことができる。雲がない場合、自動アシスタントは、雲の分布の状態をユーザが推定できるという想定に少なくとも基づいて、雲の分布に関する詳細がない状態で天気情報を提供することができる。
【００２５】
いくつかの実装形態において、ユーザは、画像がキャプチャされている時間および/もしくは位置、ならびに/または他の任意のコンテキストデータも考慮しながら、カメラからの画像に対して応答性のあるものになるように自動アシスタントを構成することができる。例えば、ユーザは、自分が列車の駅に自分のカメラを向けたときに輸送情報を欲していることを自動アシスタントに示すことができる(例えば、「アシスタント、列車の駅にカメラを向けたとき、輸送情報を表示して」)。それに応じて、後にユーザが列車または列車の駅にカメラを向けたとき、自動アシスタントは、輸送情報を提供することができる。輸送情報は、列車もしくは列車の駅の画像をカメラがキャプチャしている時間、曜日、および/もしくは特定の日付、携帯型コンピューティングデバイスの現在地、格納されたユーザの個人情報(例えば、ユーザのカレンダ、ユーザの家もしくは職場の住所)、ならびに/または他の任意のコンテキストデータに基づくことが可能である。例えば、平日の朝に画像がキャプチャされた場合、自動アシスタントは、携帯型コンピューティングデバイスの現在地からユーザの職場の住所への輸送情報を判断することができる。例えば、自動アシスタントは、現在地から職場の位置への公共交通機関の道順を捜すクエリを生成して、サブミットすることができる。輸送情報は、クエリに応答して受信され、携帯型コンピューティングデバイスにおいてユーザに提示するために提供されることが可能である。その一方で、ユーザが画像をキャプチャしている時間が夜である場合、自動アシスタントは、ユーザの家への移動に関する輸送情報を検索し、提供することができる。さらに別の例として、特定の位置における約束が近づいていることをユーザのカレンダが示す場合、自動アシスタントは、特定の位置への移動に関する輸送情報を検索し、提供することができる。他の実装形態において、自動アシスタントは、ユーザが夜に列車または列車の駅に自分のカメラを向けたとき、読む、見る、または聴くためのメディア(例えば、記事、ポッドキャスト、等)を提供するようにユーザによって構成されることが可能である(例えば、「アシスタント、勤務日の夜に列車にカメラを向けたとき、ポッドキャストを表示して」)。これらおよび他の手法において、ユーザは、自動アシスタントを起動してユーザに情報を提供するために、言葉によるコマンドまたはテキストのコマンドを必ずしも提供する必要はない。
【００２６】
いくつかの実装形態において、ユーザは、特定のオブジェクトにユーザが自分のカメラを向けることに応答して、自分のデバイスに格納された情報、またはそうでなければ、自分のデバイスを通じてアクセス可能な情報を提供するように自動アシスタントを構成することができる。例えば、ユーザは、自分の携帯型コンピューティングデバイスのノートにバイクロックコードを格納することができる。ユーザが携帯型コンピューティングデバイスのカメラをバイクロックに向けているとき、ユーザは、バイクロックコードへの画像ショートカットを作成するように自動アシスタントに指示することができる。つまり、ユーザは、「アシスタント、私のバイクロックにカメラを向けたとき、私のノートの中のバイクロックコードを表示して」などのコマンドで自動アシスタントを起動することができる。その後、ユーザがバイクロックにカメラを向けたとき、自動アシスタントは、バイクロックコードが提示されるようにすることができ、またバイクロックコードをユーザに提示する状態で、バイクロックコードを含むノートアプリケーションが開かれるようにすることもできる。バイクロックコードは、任意選択として、カメラが向けられているバイクロックのリアルタイム画像フィードをカメラアプリケーションが提供するのと同時に提示されることが可能である。
【００２７】
他の実装形態において、自動アシスタントは、携帯型コンピューティングデバイスのカメラが特定のオブジェクトに向けられたときに、リモートデバイスから情報を提供するように構成されることが可能である。例えば、ユーザは、ユーザが携帯型コンピューティングデバイスのカメラを別荘のドアに向けたとき、別荘のセキュリティコードを提供するように自動アシスタントを構成することができる。自動アシスタントは、例えば、「アシスタント、ドアにカメラを向けたとき、セキュリティコードをこのドアに表示して」などのコマンドに応答して、このように構成されることが可能である。自動アシスタントによって提供された情報(例えば、セキュリティコード)は、カメラによってキャプチャされた画像、携帯型コンピューティングデバイスの位置、および/またはリモートデバイスからのデータに基づくことが可能である。例えば、セキュリティコードは、ユーザに送信されたeメールから抽出され、携帯型コンピューティングデバイスにとってアクセス可能なeメールサーバに格納されることが可能である。自動アシスタントは、セキュリティコードを検索するために、eメールサーバ(または関連サーバ)にクエリを発行することができる。クエリは、任意選択として、ユーザの他のeメールから抽出された複数の候補のセキュリティコード(例えば、他の位置に対応する可能性のあるセキュリティコード)からセキュリティコードを識別するために、画像が撮られた位置の識別子を含むことができる。セキュリティコードを自動アシスタントが検索したとき、セキュリティコードは、ユーザが別荘のドアにカメラを向けている間に、携帯型コンピューティングデバイスのディスプレイに提示されることが可能である。代替として、自動アシスタントは、異なる媒体を通じて(例えば、テキストメッセージ、オーディオアナウンスメント、等を通じて)セキュリティコードを示すことができる。例えば、自動アシスタントは、携帯型コンピューティングデバイスのスピーカによってその後、出されるオーディオにセキュリティコードを変換することができる(例えば、「アシスタント、このドアにカメラを向けたとき、ドアのセキュリティコードを教えて」)。その後、ユーザがドアにカメラを向けたとき、自動アシスタントは、セキュリティコードを聞こえるように示すことができる(例えば、「あなたのeメールからのセキュリティコードは2、7、1、8、2です」)。
【００２８】
次に図を見ると、図1は、ユーザによって作成された画像ショートカット設定に応じてカメラ画像に応答することができる自動アシスタントを提供するためのシステム100を示す。自動アシスタントは、コンピューティングデバイス102、またはサーバデバイス112などのリモートデバイス124において提供されるアシスタントアプリケーション118の一部として動作することができる。ユーザは、アシスタントインターフェース110を介して自動アシスタントと対話することができ、アシスタントインターフェース110は、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することができる他の任意の装置であることが可能である。例えば、ユーザは、自動アシスタントに機能(例えば、データを提供すること、周辺デバイスを制御すること、エージェントにアクセスすること、等)を行わせるために、言葉による入力、テキスト入力、またはグラフィカル入力をアシスタントインターフェース110に提供することによって、自動アシスタントを初期化することができる。コンピューティングデバイス102は、カメラ106が向けられることが可能なオブジェクトの画像および/またはビデオをキャプチャするためのカメラ106を含むことができる。カメラ106は、オブジェクトに向けられている間に画像データを生成することができ、画像データは、コンピューティングデバイス102の表示デバイス108に表示されることが可能である。このようにして、コンピューティングデバイス102は、カメラ106が向けられるものについてのリアルタイム画像フィードを表示デバイス108において提供することができる。表示デバイス108は、タッチインターフェースを介してコンピューティングデバイス102のアプリケーションをユーザが制御できるようにするためにタッチ入力および/またはジェスチャを受信するためのタッチインターフェースを含む表示パネルであることが可能である。
【００２９】
図1には単一のコンピューティングデバイス102が示されているが、様々な実装形態において、本明細書において開示される様々な技法を行う際に、複数のコンピューティングデバイスがアシスタントアプリケーション118とインターフェースすることができる。例えば、画像ショートカットは、コンピューティングデバイス102のカメラ106を介してキャプチャされた画像に基づいてトリガされることが可能であり、画像ショートカットに対する応答データは、画像ショートカットのトリガに応答して、別個のコンピューティングデバイスにおいて聞こえるようにおよび/またはグラフィカルに提示されることが可能である。別個のコンピューティングデバイスは、コンピューティングデバイス102にリンクされることが可能である。例えば、別個のコンピューティングデバイスは、両方のコンピューティングデバイスにおいて利用されている同じユーザアカウントに基づいて、同じセキュアなネットワークに接続されている両方のコンピューティングデバイスに基づいて、互いに直接ピアツーピア通信を行っている両方のコンピューティングデバイスに基づいて、等で、コンピューティングデバイス102にリンクされることが可能である。別の例として、画像ショートカットは、コンピューティングデバイス102のカメラ106を介してキャプチャされた画像に基づいてトリガされることが可能であり、トリガされた画像ショートカットは、1つまたは複数の周辺デバイス(例えば、IoTデバイス)の状態を変化させるコマンドを伝送することを、アシスタントアプリケーション118に行わせることができる。例えば、コマンドは、オンまたはオフにすること、照明のルーメン出力を変えること、照明の光出力の色を変えること、等を照明に行わせるネットワーク接続式の「スマート」照明に伝送されることが可能である。また、例えば、コマンドは、追加または代替として、暖房または冷却システムの設定温度を変えること、暖房または冷却システムをオンまたはオフにすること、等をサーモスタットに行わせるネットワーク接続式の「スマート」サーモスタットに伝送されることが可能である。また、例えば、コマンドは、追加または代替として、ガレージドアを開けるまたは閉めさせるためのネットワーク接続式の「スマート」ガレージドアオープナに伝送されることが可能である。
【００３０】
コンピューティングデバイス102は、インターネットなどのネットワーク122でリモートデバイス124と通信状態にあることが可能である。コンピューティングデバイス102は、コンピューティングデバイス102における計算リソースを節約するために、計算タスクをサーバデバイス112に移して負担を軽減することができる。例えば、サーバデバイス112は、アシスタントアプリケーション118を提供することができ、コンピューティングデバイス102は、アシスタントインターフェース110において受信された入力をサーバデバイス112に伝送することができる。しかし、いくつかの実装形態において、アシスタントアプリケーション118は、コンピューティングデバイス102において提供されることが可能である。様々な実装形態において、アシスタントアプリケーション118の全てまたは態様は、コンピューティングデバイス102において実行されることが可能である。これらの実装形態のいくつかにおいて、アシスタントアプリケーション118の態様は、コンピューティングデバイス102のローカルアシスタントアプリケーション、およびアシスタントの他の態様を実行するサーバデバイス112とのインターフェースを介して実行される。サーバデバイス112は、任意選択として、複数のユーザおよびユーザの関連付けられたアシスタントアプリケーションを複数のスレッドを介してサーブすることができる。コンピューティングデバイス102のローカルアシスタントアプリケーションを介してアシスタントアプリケーション118の全てまたは態様が実行される実装形態において、ローカルアシスタントアプリケーションは、コンピューティングデバイス102のオペレーティングシステムとは別個の(例えば、オペレーティングシステムの「最上位に」インストールされた)アプリケーションであることが可能であり、また、代替として、コンピューティングデバイス102のオペレーティングシステムによって直接実行される(例えば、オペレーティングシステムのアプリケーションと見なされるが、オペレーティングシステムと統合される)ことが可能である。
【００３１】
サーバデバイス112は、コンピューティングデバイス102によって提供されたデータを処理するための他のアプリケーションおよび/またはスクリプトを含むことができる。例えば、サーバデバイス112は、コンピューティングデバイス102のカメラ106からの画像を処理し、画像の中のオブジェクトに対応するオブジェクト識別子を提供することができる画像処理エンジン114を含むことができる。画像処理エンジン114は、カメラ106からの画像を処理するために、コンピュータビジョンアルゴリズムなどの1つまたは複数のアルゴリズムを用いることができる。コンピュータビジョンアルゴリズムは、画像のピクセルをセグメント化し、ピクセルのセグメントをオブジェクトとして指定することができるピクセルグループ化アルゴリズムまたはピクセル分類アルゴリズムに対応することが可能である。画像処理エンジン114および/またはアシスタントアプリケーション118は、ピクセル毎またはピクセルグループ毎に画像を分類することができる1つまたは複数の技法を使用して、画像から異なるオブジェクト識別子を生成することができる。例えば、画像のピクセルの各NxNのグループは、1つまたは複数の対応するオブジェクト識別子(および任意選択として、複数のオブジェクト識別子のそれぞれの対応する確率)と関連付けられることが可能である。例えば、バイクのタイヤに対応するピクセルのグループは、「タイヤ」のオブジェクト分類と最も強く関連付けられることが可能であり、その一方で、バイクの他の部分に対応するピクセルのグループは、「バイク」の分類と最も強く関連付けられる。追加および/または代替の画像処理技法が、オブジェクト識別子を生成するために利用されることが可能である。
【００３２】
いくつかの実装形態において、画像処理エンジン114は、画像の中のオブジェクトを識別するために、インターネットサーチエンジンに対するサーチクエリとして画像を使用する画像サーチエンジンを含むことができる。代替として、画像処理エンジン114は、コンピューティングデバイス102によって提供された画像の中のオブジェクトを識別するために、1つまたは複数の機械学習モデルを用いることができる。画像の中のオブジェクトに対応するオブジェクト識別子は、画像処理エンジン114が画像を処理するのに応答して、画像処理エンジン114および/またはアシスタントアプリケーション118によって生成されることが可能である。アシスタントアプリケーション118は、画像ショートカット設定120を生成するときに、オブジェクト識別子を使用することができる。
【００３３】
画像ショートカット設定120は、アシスタントアプリケーション118で予め構成されること、または少なくともアシスタントアプリケーション118とのユーザ対話を通じてセットアップされることが可能である。画像ショートカット設定120は、特定のオブジェクトにユーザがカメラ106を向けることに応答してデータ提供すること、またはその他の形でアクションを行うこと、をアシスタントアプリケーション118に行わせるアプリケーション設定であることが可能である。画像ショートカット設定120は、音声コマンドとカメラ106によって提供された画像データとの組合せを通じてユーザによってセットアップされることが可能である。例えば、ユーザは、コンピューティングデバイス102においてアシスタントインターフェース110に言葉によるコマンドを発行することによって画像ショートカット設定120の作成を初期化することができる(例えば、「アシスタント、冷蔵庫に私のカメラを向けたとき、買い物リストを表示して」)。言葉によるコマンドを発行する間、ユーザは、オブジェクトの画像を受信することをアシスタントアプリケーション118に行わせるために、オブジェクトにカメラ106を向けていることができる。画像は、画像処理エンジン114によって処理されることが可能であり、画像処理エンジン114は、オブジェクトに対応するオブジェクト識別子をアシスタントアプリケーション118に提供することができる。さらに、言葉によるコマンドは、コンピューティングデバイス102においてオーディオデータとしてキャプチャされ、サーバデバイス112における音声−テキストエンジン(voice to text engine)116に伝送されることが可能である。
【００３４】
音声−テキストエンジン116は、オーディオデータを処理して、オーディオデータに含まれるテキストを識別することができる。オーディオデータをテキストに変換するための処理は、言語認識アルゴリズムを含むことができ、言語認識アルゴリズムは、単語または句に対応するオーディオデータのグループを識別するために、ニューラルネットワークおよび/または統計モデルを用いることができる。オーディオデータから変換されたテキストは、テキストデータの内容に応じて画像ショートカット設定120を生成するために使用されることが可能なテキストデータとして、アシスタントアプリケーション118が利用できる可能性がある。例えば、カメラまたは画像を識別する条件付き発言、およびアシスタントアプリケーション118によって行われるべきアクションをテキストデータが含むとき、アシスタントアプリケーション118は、テキストデータに基づいて画像ショートカット設定120を生成することができる。さらに、カメラによって提供された画像から生成されたオブジェクト識別子は、画像ショートカット設定120と関連付けて格納されることも可能である。このようにして、アシスタントアプリケーション118は、カメラによって提供される将来の画像を比較する基準を有することができる。
【００３５】
例えば、句「アシスタント、冷蔵庫に私のカメラを向けたとき、私の買い物リストを表示して」は、音声−テキストエンジン116によってテキストに加工されることが可能であり、テキストは、アシスタントアプリケーション118によって構文解析されることが可能である。アシスタントアプリケーション118は、コマンド「私の買い物リストを表示して」から、ユーザが画像ショートカット設定120を作成したいと思っていることを識別すること、ならびにオブジェクト記述子「冷蔵庫」、およびデバイス識別子「カメラ」を識別することができる。ユーザが冷蔵庫にカメラを向けている場合、冷蔵庫の1つまたは複数の画像が、オブジェクト識別子(例えば、「冷蔵庫」)を生成するために、画像処理エンジン114によって処理されることが可能である。画像および/またはオブジェクト識別子は、画像ショートカット設定120と関連付けて格納されることが可能であり、その結果、次にユーザが冷蔵庫にカメラを向けたとき、コマンド(例えば、「私の買い物リストを表示して」)が、アシスタントアプリケーション118によって実行されることが可能になる。
【００３６】
いくつかの実装形態において、サーバデバイス112は、画像の中のオブジェクトを識別する処理を迅速に遂行するために、カメラ106によって以前にキャプチャされた画像で訓練された1つまたは複数の機械学習モデルを含むことができる。さらに、アシスタントアプリケーション118は、カメラ106からの画像の中のオブジェクトをより容易に識別するために、ユーザの購入履歴にアクセスすることができる。例えば、アシスタントアプリケーション118は、ユーザが自分の冷蔵庫を購入した買い物アプリケーションを提供する第1のリモートデバイス126、および冷蔵庫を識別する第1のデータ132にアクセスすることができる。第1のデータ132は、冷蔵庫の画像を含むことができ、このことにより、アシスタントアプリケーション118が、カメラ106からの画像を第1のデータ132からの画像と比較できるようにする。これは、画像ショートカット設定120を作成するための言葉によるコマンドに含まれるテキストが、画像の中のオブジェクト(例えば、冷蔵庫)に実際に対応することを、アシスタントアプリケーション118が確認できるようにする。
【００３７】
他の実装形態において、カメラからの画像データとユーザの発言コマンドからのテキストデータとを組み合わせたコンテキストデータは、画像ショートカット設定を生成するために使用されることが可能である。例えば、ユーザがコマンド「アシスタント、冷蔵庫に私のカメラを向けたとき、私の買い物リストを表示して」を発行するとき、ユーザまたはコンピューティングデバイスの地理位置情報が、アシスタントアプリケーション118によって認識されることが可能である。アシスタントアプリケーション118は、地理位置情報がユーザの家に対応すると判断し、したがって、画像の中の冷蔵庫がユーザによって所有されていると判断することができる。これは、ユーザが異なる冷蔵庫にカメラを向け、アシスタントアプリケーション118が買い物リストを提供するという状況を回避する。代わりに、アシスタントアプリケーション118は、地理位置情報を伴う画像データ(例えば、冷蔵庫の画像)を受信し、買い物リストを提供する前、またはそうでなければ、画像ショートカット設定120と関連付けられたリクエストを満たす前に、地理位置情報がユーザの住居に対応することを確認することができる。
【００３８】
さらなる他の実装形態において、画像ショートカット設定120は、コンピューティングデバイス102とは別個のデバイスに格納されたデータを提供することをアシスタントアプリケーション118に行わせるようにセットアップされることが可能である。例えば、冷蔵庫にカメラ106を向けることに応答してユーザがリクエストしている前述の買い物リストが、第2のデータ134を含む第2のリモートデバイス128、および/または第Nのデータ136を含む第Nのリモートデバイス130に格納されることが可能である。したがって、画像ショートカット設定120に応じて、アシスタントアプリケーション118は、買い物リストを入手するために、コンピューティングデバイス102またはサーバデバイス112とは異なるリモートデバイス(例えば、第1のリモートデバイス126)に問い合わせることができる。いくつかの事例において、買い物リストは、ウェブサイト、または第1のリモートデバイス126において提供されるアプリケーション、によって管理されることが可能である。代替として、画像ショートカット設定120は、定期的に変化する可能性のある動的なデータ(例えば、天気データ、ニュース、等)のリクエストを含むことができる。したがって、アシスタントアプリケーション118は、予め構成された画像ショートカット設定120と関連付けられたオブジェクトにユーザが自分のカメラ106を向けることに応答して、動的なデータを受信するために、1つまたは複数のリモートデバイス(例えば、ニュースウェブサイトサーバ)に問い合わせることができる。
【００３９】
図2Aは、ユーザからの命令に応じて画像ショートカット設定を生成することができるアシスタントアプリケーションを動作させるコンピューティングデバイス202のビュー200を示す。具体的には、図2Aは、画像ショートカット設定の主題であるオブジェクト(例えば、空)にユーザがコンピューティングデバイスのカメラ202を向けている間に、画像ショートカット設定をセットアップするためにコンピューティングデバイス202が使用されていることを示す。画像ショートカット設定をセットアップするために、ユーザは、(例えば、インターフェース206に背を向けた、コンピューティングデバイス202の背面にある)カメラを空に向け、コンピューティングデバイス202のマイクロフォン208に言葉によるコマンドを発行することができる。言葉によるコマンドは、例えば、入力テキスト204(「空にカメラを向けたとき、天気を表示して」)によって説明されるような、空にカメラが向けられることなどの画像ショートカット設定のための条件を指定することができる。言葉によるコマンドは、オーディオデータとしてキャプチャされ、オーディオデータをテキストに変換するために、コンピューティングデバイス202またはリモートデバイスにおいて処理されることが可能である。コマンドのテキストは、その後、コマンドに応答する方法を判断するために処理されること、または構文解析されることが可能である。
【００４０】
コンピューティングデバイス202にとってアクセス可能なアシスタントアプリケーションは、オーディオデータの受信に応答して行うべきアクションを判断するために、テキストを処理することができる。例えば、用語「カメラを向けたとき」は条件であり、用語「天気を表示して」はアクションであり、用語「空」は、条件の主題であるオブジェクトである。アシスタントアプリケーションは、画像ショートカット設定を生成するために、コンピューティングデバイス202のカメラからの1つまたは複数の画像を使用することもできる。例えば、図2Aに示されるように、ユーザは、画像ショートカット設定の作成を初期化するために言葉によるコマンドを発行している間に、コンピューティングデバイス202のカメラを空に向けていることが可能である。カメラからの画像は、画像の中のオブジェクトを識別するために、コンピューティングデバイス202または別個のデバイスによって処理されることが可能である。言葉によるコマンドに含まれるテキストによって画像の中のオブジェクトも識別されるとき、オブジェクトは、画像ショートカット設定にとって重要であると見なされることが可能である。例えば、インターフェース206においてグラフィカルに表現された空は、入力テキスト204の中で識別されることも可能である。画像と言葉によるコマンドとの間のこの対応関係は、アシスタントアプリケーションによって管理され、画像ショートカット設定と関連付けて格納されたインデックスに含まれることが可能である。
【００４１】
いくつかの実装形態において、画像ショートカット設定の生成は、コンピューティングデバイス202の1つまたは複数のセンサから受信されたセンサデータに基づくことが可能である。例えば、センサデータは、カメラ、ジャイロセンサ、加速度計、タッチセンサ、オーディオセンサ、赤外線センサ、温度センサ、心拍数モニタ、化学センサ、容量センサ、および/または任意の他のセンサからもたらされることが可能である。例えば、アシスタントアプリケーションは、天気を示すための画像ショートカット設定を少なくとも部分的に満たすための、地平線に、または地平線より上に、ジャイロセンサが向けられることを要求する条件を格納することができる。代替として、画像ショートカット設定は、ユーザまたはコンピューティングデバイス202の地理位置情報に応じて種々の位置の天気を示す可変の条件設定として格納されることが可能である。例えば、画像ショートカット設定に対応する機能は、オブジェクト識別子に対するスロット(例えば、「空」)、位置(例えば、GPS伝送機からの座標、もしくはカレンダアプリケーションなどの他のアプリケーションから集められた位置データ)、および/または時刻(例えば、東部標準時午前9:00)を含むことができる。このようにして、ユーザが画像ショートカット設定を起動することに応答して提供される天気データは、画像ショートカット設定が起動されたオブジェクト、位置、および/または時刻に応じて異なることが可能である。例えば、ユーザは、その日の残り時間の天気を得るために、朝(例えば、時刻=東部標準時午前9:00)、空にカメラを向けること、または翌日の天気を得るために、夜(例えば、時刻=東部標準時午後10:00)、空にカメラを向けることができる。
【００４２】
図2Bは、画像ショートカット設定と関連付けられたオブジェクトにコンピューティングデバイス202のカメラを向けることによって、ユーザが画像ショートカット設定を初期化することに対する応答を行うコンピューティングデバイス202のビュー210を示す。具体的には、ユーザは、空などのオブジェクトに自分のカメラを向けることによって、画像ショートカット設定に応じて行われるアクションを初期化することができる。カメラは、リアルタイム画像フィードを提供することができ、リアルタイム画像フィードは、コンピューティングデバイス202のインターフェース206において提示されることが可能である。リアルタイム画像フィードが空を含むとき、アシスタントアプリケーションは、カメラが空に向けられていることに応答して、データを提供することまたはいくつかのアクションを行うことをインターフェース206に行わせることができる。例えば、インターフェース206において提示された画像は、ある程度の空(例えば、雲214)を含むことができ、このことにより、画像ショートカット設定に応じて天気データをもたらすアクションを自動アシスタントが行うことをトリガする。
【００４３】
いくつかの実装形態において、インターフェース206に示されたリアルタイム画像フィードからの画像はサンプリングされ、サンプリングされた画像の受信に応答して、オブジェクト識別子(例えば、「空」)を提供できる訓練済の機械学習モデルに提供されることが可能である。アシスタントアプリケーションは、その後、オブジェクト識別子を使用して、画像ショートカット設定に応じてアクションが行われるべきかどうかを判断することができる。代替として、サンプリングされた画像は、画像の中のオブジェクトに対する識別子を識別するために、サンプリングされた画像を他の格納された画像と比較することができる画像サーチデータベースに提供されることが可能である。1つまたは複数のオブジェクトが、1つまたは複数の画像ショートカット設定に対応する場合、対応する画像ショートカット設定に応じて、1つまたは複数のアクションが行われることが可能である。
【００４４】
いくつかの実装形態において、コンテキストデータまたはコンテキスト識別子は、サンプリングされた画像から推定でき、画像ショートカット設定の条件が満たされたかどうかを判断するために使用されることが可能である。例えば、ユーザは、カメラ画像から推定されることが可能な条件で画像ショートカット設定を作成するように自動アシスタントに指示することができる(例えば、「アシスタント、朝、空にカメラを向けたとき、「おはよう」と言うテキストを私の妻に送信して」)。その後、ユーザは、朝の空(すなわち、太陽が地平線を出る)にカメラを向けていることができ、これは、画像が朝、キャプチャされたことを判断するために、アシスタントアプリケーション、コンピューティングデバイス202、またはリモートデバイスによって処理されることが可能である。ユーザが朝、自分のカメラを空に実際に向けている場合、画像ショートカット設定に対応するアクションが行われることが可能である(例えば、「おはよう」と言うテキストメッセージが、「妻」とラベルを付けられた連絡先に送信されることが可能である)。代替として、画像と関連付けられた時間が、コンピューティングデバイス202またはリモートデバイスにおける時計から推定されることが可能である。いくつかの事例において、ユーザは、ユーザが移動しているとき、また朝にカメラが空に向けられているとき、テキストメッセージが送信されることをリクエストすることができる。このようにして、空の画像は、画像の時間および位置と共に、コンピューティングデバイス202からテキストメッセージが送信されることになる条件であることが可能である。
【００４５】
図3Aは、アシスタントアプリケーションのための画像ショートカット設定を構成するために使用されているコンピューティングデバイス302のビュー300を示す。具体的には、画像ショートカット設定は、1つもしくは複数のオブジェクトに自分のカメラを向けることに応答して、自分のコンピューティングデバイス302における格納されたデータ、またはそうでなければ、自分のコンピューティングデバイス302にとってアクセス可能なデータをユーザが受信することを可能にする。最初に、ユーザは、(例えば、コンピューティングデバイス302のマイクロフォン304を介して)言葉によるコマンドを、または(例えば、コンピューティングデバイス302のキーボードを使用して)テキストのコマンドを、発行することができる。コマンドは、画像ショートカット設定に関するオブジェクト、条件、および/またはアクションを発行することができる。例えば、ユーザ入力306(すなわち、アシスタントアプリケーションによって書き表された言葉によるコマンド)に示されるように、ユーザは、特定の位置にあるバイクをセキュアにするためにユーザが自分のバイクに取り付けたバイクロックのコードをアシスタントアプリケーションが示すことをリクエストすることができる。コマンドからのテキストは、アシスタントアプリケーションによって管理される画像ショートカット設定を生成するために、アシスタントアプリケーションによって構文解析されることが可能である。例えば、テキストは、データを識別して、画像ショートカット設定を生成するための機能のスロットに入力するために構文解析されることが可能である。機能に入力されることになるデータは、「カメラを向けたとき」、「バイクロック」、および「コード」を含むことができる。さらに、機能は、ユーザがカメラアプリケーションを使用していなければならない、またはそうでなければ、機能の条件を満たす方式でカメラを向けていなければならない、という条件を含むことができる。その後、ユーザがバイクロック308に自分のカメラを向けたとき、アシスタントアプリケーションは、インターフェース310にバイクロックコードが現れるようにすること、またはバイクロックコードを聞こえるようにアナウンスすることができる。
【００４６】
いくつかの実装形態において、画像ショートカット設定の最初の主題である画像は、アシスタントアプリケーションによってアクションをトリガするために使用されることが可能な画像の中の複数のオブジェクトを識別するために処理されることが可能である。例えば、バイクロックにカメラが向けられたときにアシスタントアプリケーションがバイクロックコードを示すことをユーザは提案したが、インターフェース310における画像は、バイクロック308に加えて他のオブジェクトを識別するために処理されることが可能である。追加のオブジェクトは、バイクタイヤ312を含むことができ、バイクタイヤ312は、識別されたとき、アシスタントアプリケーションがアクションを行うためのさらなる基礎を提供することができるコンテキストデータを提供することができる。例えば、ユーザは、バイクロックがバイクに取り付けられていない限り、自分のバイクロックコードを見ることに関心がない可能性がある。画像ショートカット設定は、したがって、バイクロックおよびバイクタイヤ312にカメラが向けられたときにバイクロックコードを提供するためだけに生成されることが可能であり、このことにより、カメラが他の場合にバイクロック308にカメラを向けているという状況を回避する。例えば、ユーザは、自分の本のうちの1つについての情報を得るために本棚にカメラを向けることができ、バイクロックは本棚に置かれていることが可能である。しかし、バイクタイヤ312は、本棚に向けられている間、カメラのビューのフィールドに現れないので、アシスタントアプリケーションは、バイクのコードを示すことを省略し、別途、本についての情報を示すことができる。
【００４７】
いくつかの実装形態において、ユーザは、画像ショートカット設定の条件付きオブジェクトであることをユーザが意図する画像の一部をタップすること、または画像の一部の周囲に線を引くことができる。例えば、ユーザは、バイクロック308などのオブジェクトに自分のカメラを向けることができ、バイクロック308のリアルタイム画像フィードまたは画像は、画像の中のオブジェクトを識別するためにコンピューティングデバイスまたはリモートデバイスにおいて処理されることが可能である。コンピューティングデバイスは、オブジェクト(例えば、バイクロック308)があるリアルタイム画像フィードまたは画像の中のエリアを識別することもでき、ユーザが、エリア内のコンピューティングデバイスのタッチディスプレイをタップするか、オブジェクトの周囲に図形を描く場合、オブジェクトは、画像ショートカット設定の主題として指名されることが可能である。
【００４８】
いくつかの実装形態において、コンピューティングデバイス302は、眼鏡または他の身につけることができるアクセサリに類似の、ユーザの頭に身につけられることが可能な、ウェアラブルデバイスであることが可能である。ウェアラブルデバイスは、ユーザの目の上に広げることができる表示デバイス、およびユーザの目と実質的に同じ方向に向けられること、またはユーザの目と見るエリアを共有することが可能なカメラを含むことができる。例えば、ウェアラブルデバイス(すなわち、コンピューティングデバイス302)をユーザが身につけているとき、ユーザは、バイクロック308の画像をカメラにキャプチャさせることができる。同時に、ユーザは、自分の指を使用してバイクロック308を指さし、ウェアラブルデバイスを通じて自動アシスタントに対するコマンドを言うことができる。例えば、ユーザは、「アシスタント、バイクロックを私が指さすとき、バイクロックコード2-7-1-8を表示して」というコマンドを発行することができる。その後、ユーザがウェアラブルデバイスを身につけ、自分のバイクロック308を自分の指で指さすとき、自動アシスタントは、ウェアラブルデバイスを通じてバイクロックコードを聞こえるように示すこと、またはウェアラブルデバイスのディスプレイにバイクロックコードが提示されるようにすることができる。同様に、ユーザは、画像ショートカット設定を作成するために、ウェアラブルデバイスを身につけている間、自分の眼の動きを使用することができる。例えば、ユーザは、バイクロック308に自分の眼を向けて、眼の方向とバイクロック308に関する画像ショートカット設定を作成するように自動アシスタントにコマンドを出すことができる。コマンドは、例えば、「アシスタント、バイクロックを私が見ているとき、バイクのコード2-7-1-8を表示して」であることが可能である。その後、ユーザがウェアラブルデバイスを身につけて、バイクロック308を見ているとき、自動アシスタントは、バイクロックコードを聞こえるようにまたは目に見えるように提示することをウェアラブルデバイスに行わせることができる。
【００４９】
図3Bは、画像ショートカット設定に応じてアシスタントアプリケーションを動作させるコンピューティングデバイス302のビュー314を示す。具体的には、ビュー314は、コンピューティングデバイスのカメラ302がオブジェクト(例えば、バイクロック308)に向けられていることに応答して、アシスタントアプリケーションが出力316をどのように生成することができるかを示す。例えば、アシスタントアプリケーションを介して画像ショートカット設定を作成した後、ユーザは、バイクに近づき、コンピューティングデバイス302のカメラをバイクロック308に向けることができる。アシスタントアプリケーションおよび/またはコンピューティングデバイス302は、カメラによってキャプチャされるようなバイクロック308の画像を処理して、バイクロック308がカメラのビューのフィールド内にあることを判断することができる。それに応じて、アシスタントアプリケーションは、データ(例えば、バイクロックコード)を提示すること、またはユーザのために他のいくつかのアクションを行うことができる。
【００５０】
いくつかの実装形態において、画像ショートカット設定と関連付けられたアクション(例えば、データを提供すること)を実行する処理は、インターフェース310においてリアルタイム画像フィードをコンピューティングデバイス302が示すことなく、行われることが可能である。むしろ、ユーザは、リアルタイム画像フィードをインターフェース310が表示しなくても、またはインターフェースがアクティブにならなくてもオブジェクトに近づき、依然としてアクションを行わせることができる。例えば、ユーザは、インターフェース310全体に表示されるメッセージングアプリケーションを動作させ、同時にオブジェクトにカメラを向けることができる。それに応じて、アシスタントアプリケーションは、オブジェクトがカメラのビューのフィールド内にあることを認識し、画像ショートカット設定の主題であるオブジェクトと関連付けられたアクションを行うこと(例えば、メッセージングアプリケーションインターフェースの最上位にバイクロックコードを提示すること)ができる。
【００５１】
他の実装形態において、画像ショートカット設定と関連付けられたアクションは、コンピューティングデバイス302がロックされているとき、またはコンピューティングデバイス302が別途、背面カメラを動作させることができるときに行われることが可能である。例えば、コンピューティングデバイス302は、前面カメラ(すなわち、インターフェース310と同じ方向に向いているカメラ)および背面カメラ(すなわち、インターフェースに背を向けているカメラ)を含むことができる。画像ショートカット設定は、第1のオブジェクトが前面カメラのビューのフィールド内にあるとき、および第2のオブジェクトが背面カメラのフィールド内にあるときにデータを提供するために、アシスタントアプリケーションにとってアクセス可能であることが可能である。さらに、画像ショートカット設定は、コンピューティングデバイス302の所有者、またはコンピューティングデバイス302の非所有者によってセットアップされることが可能である。例えば、オンラインサービスを通じて自分の家において来客を接待する人物は、アシスタントアプリケーションのための画像ショートカット設定を作成することが可能である。主人によってセットアップされた画像ショートカット設定は、主人の家にアクセスするために、主人の来客が、来客のコンピューティングデバイスの背面カメラを主人の家に同時に向けながら、来客のコンピューティングデバイスの前面カメラに来客の顔を示すことを要求することができる。来客の顔の画像は、主人のウェブサイト、または主人と関連付けられたサイトに、来客によってアップロードされることが可能であり、来客のコンピューティングデバイスの前面カメラからの画像は、アップロードされた画像と比較されることが可能である。アップロードされた画像に前面カメラ画像が対応することをウェブサイトまたは他のデバイスが判断する場合、アシスタントアプリケーションは、家のロックに背面カメラが同時に向けられているかどうかをさらに判断することができる。向けられている場合、ウェブサイトを運営するサーバは、来客のデバイスまたはアシスタントアプリケーションにアクセスコードを示すことができる。いくつかの実装形態において、画像ショートカット設定は、アクセスコードを受信する前に来客の地理位置情報が確認されること(例えば、来客が家にいることを確認すること)を要求することもできる。
【００５２】
図4Aは、アシスタントアプリケーションによって受信されたコンテキストデータに少なくとも基づいてデータを提供すること、またはアクションを行うことをアシスタントアプリケーションに行わせることができる画像ショートカット設定をアレンジするために使用されるコンピューティングデバイス402のビュー400を示す。例えば、ユーザは、アシスタントアプリケーションに言葉によるコマンド(例えば、「列車の駅にカメラを向けたとき、移動予定を表示して」)を発行することによって、画像ショートカット設定の作成を初期化することができる。言葉によるコマンドは、コンピューティングデバイス402のマイクロフォン404において受信され、コンピューティングデバイス402またはリモートデバイスにおいてテキスト入力406に変換されることが可能である。テキスト入力406は、画像ショートカット設定の主題であるオブジェクト(例えば、列車の駅)、およびコンピューティングデバイス402のカメラのビューのフィールド内にオブジェクトが提示されることに応答して提供されることになるデータ(例えば、移動予定)、を識別するために、アシスタントアプリケーションによって構文解析されることが可能である。
【００５３】
アシスタントアプリケーションによって提供されたデータは、画像ショートカット設定を介してアシスタントアプリケーションをユーザが起動している時刻に応じて変更することができる。例えば、目的地は、カレンダアプリケーション、履歴上の移動データ、および/または(位置データを含むことができる)データの他の任意のソースからアシスタントアプリケーションによって推定されることが可能である。推定された目的地は、ユーザが鉄道駅408にカメラを向けている時刻に依存することが可能である。例えば、アシスタントアプリケーションは、画像ショートカット設定を作成するために言葉によるコマンドを発行するときにユーザがいる鉄道駅408に対応する列車時刻表を識別することができる。列車時刻表は、時間に応じて変化する動的なデータなので、アシスタントアプリケーションは、時間に対するスロットを有する機能、ならびに少なくともオブジェクト識別子(例えば、「列車の駅」)と関連付けて画像ショートカット設定を格納することができる。このようにして、ユーザが鉄道駅408にカメラを向けているとき、アシスタントアプリケーションは、それに応じて、時刻および列車時刻表を検索することができる。いくつかの実装形態において、アシスタントアプリケーションは、ユーザが鉄道駅408にカメラを向けることに応答して、様々なソースから目的地情報を検索することもできる。目的地情報は、鉄道駅408と関連付けられた利用可能な列車時刻表に応じてユーザが予測した目的地にユーザが到着する推定時間を示すために、アシスタントアプリケーションによって使用されることが可能である。
【００５４】
図4Bは、以前に生成した画像ショートカット設定に応じてアシスタントアプリケーションにアクションを行わせるために、ユーザがコンピューティングデバイスのカメラ402を鉄道駅408に向けているビュー412を示す。コンピューティングデバイス402のインターフェース410において提供された鉄道駅408の画像は、画像が列車の駅を含んでいることを判断するために、コンピューティングデバイス402またはリモートデバイスにおいて処理されることが可能である。アシスタントアプリケーションは、次に、画像の中の鉄道駅を識別するオブジェクト識別子を受信することができ、任意選択として、アシスタントアプリケーションは、鉄道駅408の位置および/または画像がキャプチャされた時刻を判断することができる。鉄道駅408の位置は、鉄道駅408がある場所を判断するために使用されることが可能であり、その結果、妥当な列車時刻表が検索されることが可能になる。さらに、時刻は、鉄道駅408に到着し、その後ユーザの目的地に向けて移動する列車を識別するために検索されることが可能である。
【００５５】
ユーザの位置に関するデータ、鉄道駅408を通って列車が移動する移動予定、およびユーザが鉄道駅408の画像をキャプチャした時刻をアシスタントアプリケーションが集めることができる場合、アシスタントアプリケーションは、ユーザのために出力414を生成することができる。具体的には、出力414は、列車の駅からユーザの目的地までの通るべきルートに関する提案を含むことができる。例えば、アシスタントアプリケーションは、ユーザが仕事中であったこと、および今、鉄道駅408にいること、したがってユーザは、(ユーザのカレンダが別途示さない限り)家に向かっている可能性があること、を判断することができる。アシスタントアプリケーションは、次に、自分の家に行く列車(例えば、「イエローライン」)を識別し、ユーザがまもなく来る列車に乗る場合、ユーザが家にいつ到着することになるか(例えば、「コンピューティングデバイスにおいて4:45にイエローラインに乗ると、5:15に家に到着することになる」)という推定を行うことができる。このようにして、ユーザは、特定の時間に家に着くための最善のルートに関する命令を受信するために、言葉によるコマンドをアシスタントアプリケーションに発行する必要はなく、単に自分のカメラを列車の駅に向けるだけでよい。
【００５６】
図5Aは、ユーザ508がコンピューティングデバイス502のカメラを鏡512に向けることに対して、コンピューティングデバイス502上で動作するアシスタントアプリケーションが応答性のある、画像ショートカット設定を作成するユーザ508のビュー500を示す。ユーザ508は、マイクロフォン504などのコンピューティングデバイス502のインターフェースに、言葉によるコマンドまたはテキストのコマンド506を発行することによって画像ショートカット設定の作成を初期化することができる。コマンド506は、句「朝、鏡にカメラを向けたとき、私のアジェンダを表示して」を含むことができる。この句は、画像ショートカット設定を生成するためのパラメータを識別するために、本明細書で論じられるように、コンピューティングデバイス502または別個のデバイスにおいて処理されることが可能である。句は、コンテキスト上の条件(例えば、「朝に」)を含むので、画像ショートカット設定と関連付けられた機能は、時間に関するスロットを含むことができる。さらに、アシスタントは、ユーザが自分自身のプロパティ(すなわち、「私の鏡」)を識別することに少なくとも基づいて、位置についてのコンテキスト上の条件を推定することができ、したがって、機能のスロットは、位置に対応することが可能である。このようにして、ユーザ508によってリクエストされたアジェンダは、ユーザ508が自分の家にいるとき、および朝、自分の鏡の前にいるときだけ示されることになる。いくつかの実装形態において、機能は、ユーザ508の顔認識と関連付けられたスロットを含むこともできる。このようにして機能は、鏡の中の顔がユーザ508の顔であり、コンピューティングデバイス502のカメラにアクセスしている別の人物ではないことを、アシスタントアプリケーションが判断する場合だけ実行されることになる。例えば、コンピューティングデバイス502のインターフェース510において提示された画像は、インターフェース510における画像がユーザ508の顔を含むことを検証するために処理されること、および/またはそうでなければ、ユーザ508の顔の画像と比較されることが可能である。検証は、アシスタントアプリケーションによって認識されることが可能であり、これは、画像ショートカット設定と関連付けられた機能を実行すること
によって進めることができる。
【００５７】
図5Bは、画像ショートカット設定に応じて機能を行うためにアシスタントアプリケーションを起動するユーザ508のビュー516を示す。具体的には、図5Bに示されたユーザ508は、ユーザ508および/または鏡512の画像が処理されることが可能であるように、コンピューティングデバイス502を鏡512に向けることによってアシスタントアプリケーションを起動することができる。インターフェース510において提示されるようなユーザ508の画像は、ユーザ508、コンピューティングデバイス502、鏡512、および/または画像ショートカット設定と関連付けられることが可能な他の任意のオブジェクトを識別するために、コンピューティングデバイス502またはリモートデバイスにおいて処理されることが可能である。画像に基づいて生成されたオブジェクト識別子は、画像のコンテキストと関連付けられることが可能な時刻、位置、および/または任意の他のデータなどの、コンテキストデータまたはコンテキスト識別子と共に、アシスタントアプリケーションに提供されることが可能である。オブジェクト識別子および/またはコンテキストデータが画像ショートカット設定の条件を満たすとき、画像ショートカット設定と関連付けられた機能が実行されることが可能である。例えば、鏡512にカメラをユーザ508が向けることに応答して、アシスタントアプリケーションは、カレンダアプリケーションを提供するコンピューティングデバイス502またはリモートデバイスにおいてカレンダアプリケーションにアクセスすることができる。アシスタントアプリケーションは、その日の項目のリストを検索し、図5Bの出力514において提供されるように、インターフェース510において項目のリストがグラフィカルに表現されるようにすることができる。このようにしてユーザ508は、言葉によるコマンドまたはテキストのコマンドを通じて起動することに以前に限定されていた自分のコンピューティングデバイス502で機能を行うことができる。
【００５８】
いくつかの実装形態において、ユーザは、コンピューティングデバイス502において表示のために画像を開くことによって、画像ショートカット設定と関連付けられたアクションを自動アシスタントに行わせることができる。例えば、コンピューティングデバイス502は、コンピューティングデバイス502のカメラによってキャプチャされた画像を含むカメラロールを格納することができる。代替として、コンピューティングデバイス502は、インターネット上で画像をサーチするためのブラウザを含むことができる。コンピューティングデバイス502によってアクセスされた画像が、画像ショートカット設定に対応するオブジェクトを含んでいる場合、自動アシスタントは、画像ショートカット設定に対応するアクションを行うことができる。例えば、ユーザは、コンピューティングデバイス502に利用可能な特定の画像の中で識別された人物と関連付けられたリマインダをセットすることができる。画像ショートカット設定を確立するためのコマンドは、例えば、「あなたがMatthewの画像を見たとき、MatthewおよびJaneにビデオコールすることを私に思い出させて」であることが可能である。このようにして、ユーザが、Matthewを含む画像を開き、コンピューティングデバイス502のカメラをMatthewに向けたときはいつでも、自動アシスタントは、ユーザにリマインダが提示されるようにすることになる。例えば、自動アシスタントは、例えば「MatthewおよびJaneにビデオコールすることを思い出して」などの聞こえる応答を生成することができる。
【００５９】
図6は、アシスタントアプリケーションの画像ショートカット設定に応じて、ユーザにデータを提供することをアシスタントアプリケーションに行わせるための方法600を示す。方法600は、コンピューティングデバイス、サーバデバイス、および/またはデータを提供するのに適した他の任意の装置によって行われることが可能である。方法600は、コンピューティングデバイスのカメラからのリアルタイム画像フィードがオブジェクトのグラフィカル表現を含むことを、アシスタントアプリケーションによって判断するブロック602を含むことができる。オブジェクトは、カメラによって生成された画像の中でキャプチャされることが可能な任意の有形のオブジェクトであることが可能である。さらに、リアルタイム画像フィードは、コンピューティングデバイスのグラフィカルユーザインターフェース(例えば、タッチスクリーンディスプレイ)において提示されるビデオフィードであることが可能である。アシスタントアプリケーションは、コンピューティングデバイスまたはリモートデバイス(例えば、コンピューティングデバイスとは別個のサーバデバイス)において提供される自動アシスタントであることが可能であり、ユーザによって行われるアクションに応じて、ユーザによって直接的または間接的に構成可能であることが可能である。
【００６０】
方法600は、オブジェクトと関連付けられた画像ショートカット設定を識別するブロック604を含むことができる。画像ショートカット設定120は、リアルタイム画像フィードの中で提供された画像コンテンツにアシスタントアプリケーションが応答する際の予め構成された処理と関連付けられることが可能である。例えば、処理は、ユーザが食品にカメラを向けたとき、食品に関する栄養データをアシスタントアプリケーションが示すことを含むことができる。栄養データは、ユーザによってリクエストされたソース、またはアシスタントアプリケーションによって初期化されたサーチエンジンクエリを通じて識別されるソースによってもたらされることが可能である。
【００６１】
方法600は、画像ショートカット設定と関連付けられたクエリを生成するブロック606を含むことができる。クエリは、画像ショートカット設定において識別されるデータのリクエストであることが可能である。クエリは、コンピューティングデバイスまたはコンピューティングデバイスとは別個のリモートデバイスのアプリケーションにおいて利用可能なデータにアクセスするというリクエストであることが可能である。しかし、いくつかの実施形態において、ブロック606は、周辺デバイスを制御するための画像ショートカット設定と関連付けられたコマンドを生成することを含むことができる。このようにして周辺デバイスは、ユーザがオブジェクトに自分のカメラを向けることに応答して、コンピューティングデバイスからコマンドを受信することができる。
【００６２】
方法600は、アシスタントアプリケーションによってリクエストされたデータをクエリに基づいて受信するブロック608を含むことができる。データは、アシスタントアプリケーションからクエリに応答することができる別個のアプリケーションまたはリモートデバイスから受信されることが可能である。例えば、データは、サービス(例えば、項目を並べること、利用可能なデータから推定を生成すること、等)を受ける際にユーザを支援するためにエージェントアプリケーションを提供したサードパーティと関連付けられたエージェントアプリケーションから受信されることが可能である。
【００６３】
方法600は、コンピューティングデバイスのインターフェースにおいてリアルタイム画像フィードが表示されるのと同時にデータがレンダリングされるようにするブロック610をさらに含むことができる。例えば、ユーザは、リンゴなどの食品に自分のコンピューティングデバイスのカメラを向け、コンピューティングデバイスのインターフェースにリンゴがグラフィカルに表現されている間、リンゴに関する栄養情報を示すことをアシスタントアプリケーションに行わせることができる。
【００６４】
図7は、ユーザからの少なくともコマンドに応じて、画像ショートカット設定を生成するための方法700を示す。方法700は、コンピューティングデバイス、サーバデバイス、および/またはユーザからのコマンドを解釈することができる他の任意のデバイスによって行われることが可能である。方法700は、アシスタントアプリケーションが画像ショートカット設定を作成するというリクエストに対応するオーディオデータを受信するブロック702を含むことができる。画像ショートカット設定は、コンピューティングデバイスのカメラのビュー範囲内に1つまたは複数のオブジェクトがあることに対してアシスタントアプリケーションが応答性のある処理に対応することが可能である。オブジェクトはユーザによって指定され、アシスタントアプリケーション、またはカメラデータおよびコンピュータビジョンアルゴリズムを使用してオブジェクトを識別することができる別個のアプリケーションによって識別されることが可能である。
【００６５】
方法700は、コンピューティングデバイスのカメラによって生成されたリアルタイム画像フィードから画像データを受信するブロック704を含むことができる。リアルタイム画像フィードは、オブジェクトにカメラが向けられているときにカメラによってリアルタイムに生成された画像データまたはセンサデータであることが可能である。リアルタイム画像フィードは、コンピューティングデバイスのグラフィカルユーザインターフェース(例えば、タッチディスプレイインターフェース)においてグラフィカルに表現されることが可能であり、オブジェクトがカメラのビュー範囲内にあることをユーザが確認することを可能にする。これは、コンピューティングデバイスにおいてオブジェクトが表示されている間に画像ショートカット設定を作成するためのコマンドをユーザが発行することも可能にする。
【００６６】
方法700は、アシスタントアプリケーションからのデータのリクエストをオーディオデータから識別するブロック706を含むことができる。データのリクエストは、コンピューティングデバイスまたはリモートデバイス(例えば、サーバデバイス)において行われることが可能な言語認識アルゴリズムを通じてオーディオデータがテキストデータに変換されるようにすることによって識別されることが可能である。いくつかの実装形態において、ブロック702においてオーディオデータが受信される代わりに、自動アシスタントが画像ショートカット設定を作成するというクエリまたはリクエストとしてテキストデータが受信されることが可能である。テキストデータは、手でタイプされたテキストデータを受信するために、1つまたは複数のフィールドを含むグラフィカルユーザインターフェースなどのアシスタントインターフェースにおいて受信されることが可能である。テキストデータは、次に、ブロック702において受信されたデータにリクエストが含まれていたことを判断するため、およびユーザによってリクエストされたデータのタイプを識別するために、アシスタントアプリケーションによって処理されることが可能である。例えば、ユーザが空に自分のカメラを向けることに応答して天気データを受信するというリクエストが、オーディオデータから抽出されたテキストデータまたは手でタイプされたテキストデータに含まれることが可能である。
【００６７】
方法700は、コンピューティングデバイスのカメラが向けられたオブジェクトに対応するオブジェクト識別子を画像データから識別するブロック708を含むこともできる。画像データは、アシスタントアプリケーション、コンピューティングデバイス、別個のコンピューティングデバイス(例えば、サーバデバイス)、および/または画像データを処理することができる他の任意の装置によって処理されることが可能である。画像データは、画像データの中のオブジェクトを識別するために1つまたは複数の機械学習モデルに提供されること、またはそうでなければ、画像データからオブジェクト識別子およびオブジェクトの位置を生成するためにコンピュータビジョンアルゴリズムに入力されることが可能である。アシスタントアプリケーションは、その後、画像ショートカット設定と関連付けられた機能を実行するときに、オブジェクト識別子および/またはオブジェクトの位置を使用することができる。
【００６８】
方法700は、データのリクエストおよびオブジェクト識別子に基づいて画像ショートカット設定を生成するブロック710をさらに含むことができる。画像ショートカット設定は、ユーザがオブジェクト(例えば、空)にカメラを向けているときにアクションを行うこと(例えば、天気データを検索すること)をアシスタントアプリケーションにユーザが指示することができる処理を行うために、アシスタントアプリケーションによって生成されることが可能である。このようにしてユーザは、データを検索するためにテキスト入力または言葉による入力をコンピューティングデバイスに必ずしも提供する必要はなく、コンピューティングデバイスのカメラをオブジェクトに向けるだけでよい。
【００６９】
図8は、コンピュータシステム810の例のブロック図である。コンピュータシステム810は、典型的には、バスサブシステム812を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ814を含む。これらの周辺デバイスは、例えばメモリ825およびファイルストレージサブシステム826を含むストレージサブシステム824、ユーザインターフェース出力デバイス820、ユーザインターフェース入力デバイス822、ならびにネットワークインターフェースサブシステム816を含むことができる。入出力デバイスは、コンピュータシステム810とのユーザ対話を可能にする。ネットワークインターフェースサブシステム816は、外部ネットワークへのインターフェースを行い、他のコンピュータシステムにおける対応するインターフェースデバイスに連結される。
【００７０】
ユーザインターフェース入力デバイス822は、キーボード、(マウス、トラックボール、タッチパッド、またはグラフィックスタブレットなどの)ポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含むことができる。一般に、用語「入力デバイス」の使用は、コンピュータシステム810または通信ネットワークに情報を入力するためのデバイスおよび方式の全ての可能なタイプを含むことを意図する。
【００７１】
ユーザインターフェース出力デバイス820は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非表示装置を含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を作成するための他のいくつかのメカニズムを含むことができる。ディスプレイサブシステムは、オーディオ出力デバイスを介するなどして非表示装置を提供することもできる。一般に、用語「出力デバイス」の使用は、コンピュータシステム810からユーザに、または別の機械もしくはコンピュータシステムに情報を出力するためのデバイスおよび方式の全ての可能なタイプを含むことを意図する。
【００７２】
ストレージサブシステム824は、本明細書で説明されるモジュールのいくつかまたは全ての機能を提供するプログラム構造体およびデータ構造体を格納する。例えば、ストレージサブシステム824は、方法600、方法700の選択された態様を行うため、ならびに/またはコンピューティングデバイス102、コンピューティングデバイス202、コンピューティングデバイス302、コンピューティングデバイス402、コンピューティングデバイス502、サーバデバイス112、リモートデバイス124、および/もしくは本明細書において論じられた任意の他の実装形態の1つまたは複数を実行するためのロジックを含むことができる。
【００７３】
これらのソフトウェアモジュールは、一般に、プロセッサ814によって単独で、または他のプロセッサと組み合わせて実行される。ストレージサブシステム824において使用されるメモリ825は、プログラムの実行中に命令およびデータを格納するためのメインランダムアクセスメモリ(RAM)830、ならびに固定命令が格納されるリードオンリメモリ(ROM)832を含むいくつかのメモリを含むことができる。ファイルストレージサブシステム826は、プログラムおよびデータファイルのための永続ストレージを提供することができ、ハードディスクドライブ、関連付けられた取外し可能媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、または取外し可能媒体カートリッジを含むことができる。一定の実装形態の機能を実行するモジュールは、ストレージサブシステム824に、またはプロセッサ814によってアクセス可能な他の機械に、ファイルストレージサブシステム826によって格納されることが可能である。
【００７４】
バスサブシステム812は、コンピュータシステム810の様々な構成要素およびサブシステムに目的どおりに互いに通信させるためのメカニズムを提供する。バスサブシステム812は、単一バスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用することができる。
【００７５】
コンピュータシステム810は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他の任意のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであることが可能である。コンピュータおよびネットワークの常に変化する性質のために、図8において描写されたコンピュータシステム810の説明は、いくつかの実装形態を示すための具体例であることのみを意図するものである。コンピュータシステム810の他の多くの構成は、図8において描写されたコンピュータシステムより多くの、または少ない構成要素を有することが可能である。
【００７６】
本明細書で説明されるシステムが、ユーザ(または、しばしば本明細書において「参加者」と呼ばれるような)についての個人情報を収集する状況、または個人情報を使用することができる状況において、ユーザは、ユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくは活動、職業、ユーザの好み、またはユーザの現在の地理位置についての情報)をプログラムまたは機能が収集するかどうかを制御する機会、あるいはユーザにより関連のある可能性があるコンテンツサーバからのコンテンツを受信するかどうか、および/またはどのように受信するかを制御する機会を提供されることが可能である。また、個人識別可能情報が除去されるように、一定のデータが格納されるか使用される前に、1つまたは複数の方式で一定のデータが扱われることが可能である。例えば、ユーザのアイデンティティは、個人識別可能情報がユーザに対して判断されることが不可能になるように扱われることが可能であり、また、ユーザの地理位置は、(都市、郵便番号、または州レベルなどに)地理位置情報が入手された場所に漠然となるようにすることが可能であり、その結果、ユーザの特定の地理位置が判断されることが不可能になる。したがって、ユーザは、ユーザについての情報がどのように収集されるか、および/または使用されるか、を制御することができる。
【００７７】
本明細書においていくつかの実装形態が説明され、示されたが、本明細書で説明される機能を行うため、ならびに/または結果、および/もしくは利点の1つもしくは複数を入手するための、様々な他の手段および/または構造が利用されることが可能であり、このような変形および/または修正のそれぞれは、本明細書で説明された実装形態の範囲内にあるものと見なされる。より一般には、本明細書で説明される全てのパラメータ、特質、材料、および構成は例示的なものであり、実際のパラメータ、特質、材料、および/または構成は、特定の用途、または教示が使用される用途に依存することが意図される。当業者は、本明細書で説明された特定の実装形態に対する多くの均等物を、日常の実験だけを使用して認識する、または確かめることができよう。したがって、前述の実装形態は、単なる一例として提示されるものであり、添付の特許請求の範囲およびその均等物の中で、具体的に説明され、特許請求されるもの以外の実装形態が実践されることが可能であるということが理解されよう。本開示の実装形態は、本明細書で説明されるそれぞれの個々の特徴、システム、記事、材料、キット、および/または方法を対象とする。さらに、2つ以上のこのような特徴、システム、記事、材料、キット、および/または方法の任意の組合せは、このような特徴、システム、記事、材料、キット、および/または方法が相互に矛盾しない場合、本開示の範囲に含まれる。
【符号の説明】
【００７８】
100  システム
102  コンピューティングデバイス
106  カメラ
108  表示デバイス
110  アシスタントインターフェース
112  サーバデバイス
114  画像処理エンジン
116  音声−テキストエンジン
118  アシスタントアプリケーション
120  画像ショートカット設定
122  ネットワーク
124  リモートデバイス
126  第1のリモートデバイス
128  第2のリモートデバイス
130  第Nのリモートデバイス
132  第1のデータ
134  第2のデータ
136  第Nのデータ
200  ビュー
202  コンピューティングデバイス
204  入力テキスト
206  インターフェース
208  マイクロフォン
210  ビュー
214  雲
300  ビュー
302  コンピューティングデバイス
304  マイクロフォン
306  ユーザ入力
308  バイクロック
310  インターフェース
312  バイクタイヤ
314  ビュー
316  出力
400  ビュー
402  コンピューティングデバイス
404  マイクロフォン
406  テキスト入力
408  列車の駅
410  インターフェース
412  ビュー
414  出力
500  ビュー
502  コンピューティングデバイス
504  マイクロフォン
506  コマンド
508  ユーザ
510  インターフェース
512  鏡
514  出力
516  ビュー
810  コンピュータシステム
812  バスサブシステム
814  プロセッサ
816  ネットワークインターフェース、ネットワークインターフェースサブシステム
820  ユーザインターフェース出力デバイス
822  ユーザインターフェース入力デバイス
824  ストレージサブシステム
825  メモリサブシステム、メモリ
826  ファイルストレージサブシステム
830  RAM、メインランダムアクセスメモリ
832  ROM、リードオンリメモリ
【図１】
0006961019.tif 000002
【図２Ａ】
0006961019.tif 000003
【図２Ｂ】
0006961019.tif 000004
【図３Ａ】
0006961019.tif 000005
【図３Ｂ】
0006961019.tif 000006
【図４Ａ】
0006961019.tif 000007
【図４Ｂ】
0006961019.tif 000008
【図５Ａ】
0006961019.tif 000009
【図５Ｂ】
0006961019.tif 000010
【図６】
0006961019.tif 000011
【図７】
0006961019.tif 000012
【図８】
0006961019.tif 000013