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

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

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

特許7266619デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御
<>
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図1
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図2
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図3
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図4A
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図4B
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図5
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図6
  • 特許-デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-20
(45)【発行日】2023-04-28
(54)【発明の名称】デバイスをキャプチャする画像データの処理および/またはデバイスのインストール環境に基づくデバイスの制御
(51)【国際特許分類】
   G06F 3/0488 20220101AFI20230421BHJP
   G06F 3/16 20060101ALI20230421BHJP
   G06T 7/00 20170101ALI20230421BHJP
【FI】
G06F3/0488
G06F3/16 630
G06F3/16 650
G06F3/16 690
G06F3/16 610
G06T7/00 350B
【請求項の数】 33
(21)【出願番号】P 2020569824
(86)(22)【出願日】2018-09-24
(65)【公表番号】
(43)【公表日】2021-12-02
(86)【国際出願番号】 US2018052460
(87)【国際公開番号】W WO2020068040
(87)【国際公開日】2020-04-02
【審査請求日】2021-02-09
【前置審査】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ユジャオ・ニ
【審査官】田川 泰宏
(56)【参考文献】
【文献】欧州特許出願公開第03214536(EP,A1)
【文献】米国特許出願公開第2011/0115816(US,A1)
【文献】特開2012-090077(JP,A)
【文献】特開2016-110379(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01-3/04895
G06F 3/16
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、
ポータブルクライアントデバイスによって、前記ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいてグラフィックカメラインターフェースが提供されるようにするステップであって、
前記グラフィックカメラインターフェースが、前記ポータブルクライアントデバイスのカメラが向けられている環境のグラフィック表現を提供する、ステップと、
前記カメラが前記環境に向けられたときに前記カメラによって提供される画像データに基づいて、および前記カメラによって提供される前記画像データの処理に基づいて、前記環境の前記グラフィック表現が前記環境内に位置する制御可能な電子デバイスを描写することを決定するステップであって、前記処理が、前記画像データ内のオブジェクトに対して分類を行うことを含むステップと、
前記環境の前記グラフィック表現が前記制御可能な電子デバイスを描写するとの決定に応答して、前記制御可能な電子デバイスの調整可能な設定を決定するステップであって、
前記決定するステップが、前記分類の結果に基づいて前記制御可能な電子デバイスの前記調整可能な設定を前記タッチスクリーンディスプレイにおいてグラフィカルに表現するステップを含み、
前記調整可能な設定が、修正されると、前記制御可能な電子デバイスの少なくとも1つの状態を変更する、ステップと、
前記ポータブルクライアントデバイスの前記タッチスクリーンディスプレイにおいて、前記グラフィックカメラインターフェースにおける選択を受信するステップと、
前記グラフィックカメラインターフェースにおける前記選択の受信に応答して、前記制御可能な電子デバイスの前記調整可能な設定を修正させるステップと
を備える、方法。
【請求項2】
前記環境の前記グラフィック表現が前記制御可能な電子デバイスを描写することを決定するステップが、
1つまたは複数のそれぞれの出力のインスタンスを生成するためにトレーニング済みの機械学習モデルを使用して前記画像データを処理するステップと、
前記1つまたは複数のそれぞれの出力のインスタンスが前記制御可能な電子デバイスを最もよく示していると決定するステップと
を備える、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のそれぞれの前記出力のインスタンスのそれぞれのインスタンスはそれぞれの埋込みであり、
前記1つまたは複数のそれぞれの出力のインスタンスが前記制御可能な電子デバイスを最もよく示していると決定するステップが、
前記それぞれの埋込みのうちの1つまたは複数を複数の候補の埋込みと比較するステップであって、前記複数の候補の埋込みが、前記制御可能な電子デバイスのための所与の埋込み、および1つまたは複数の追加の制御可能な電子デバイスのための1つまたは複数の追加の埋込みを含む、ステップを備える、請求項2に記載の方法。
【請求項4】
前記制御可能な電子デバイスの前記所与の埋込みが、前記ポータブルクライアントデバイスに関連付けられるアカウントに個人的なものであり、
前記所与の埋込みが、前記ポータブルクライアントデバイスまたは前記アカウントに関連付けられた別のポータブルクライアントデバイスによって以前にキャプチャされた複数の前の画像に基づいて以前に生成され、
前記所与の埋込みが、前記前の画像の前記キャプチャを前記制御可能な電子デバイスに関連付ける以前のユーザインターフェース入力に基づいて、前記制御可能な電子デバイスに以前に関連付けられている、請求項3に記載の方法。
【請求項5】
前記環境の前記グラフィック表現が前記環境内に位置する前記制御可能な電子デバイスを描写することを決定するステップが、前記ポータブルクライアントデバイスの追加センサからのセンサデータにさらに基づき、
前記追加センサが非視覚センサである、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記ポータブルクライアントデバイスのセンサのセンサ出力に基づいて、前記カメラが前記環境に向けられたときの前記ポータブルクライアントデバイスの向きを決定するステップをさらに備える、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記向きが、前記ポータブルクライアントデバイスのネットワーク接続性と、前記ポータブルクライアントデバイスに対するネットワークルータの特定の位置を識別する統合レイアウトデータに少なくとも部分的に基づいて決定される、請求項6に記載の方法。
【請求項8】
前記方法が、
前記調整可能な設定の制御を、前記制御可能な電子デバイスを描写している前記グラフィックカメラインターフェースの一部の特定の領域に割り当てるステップをさらに備え、
前記グラフィックカメラインターフェースにおける前記選択が、前記調整可能な設定が割り当てられている前記特定の領域において受信される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記制御可能な電子デバイスの前記調整可能な設定を決定するステップに基づいて、前記グラフィックカメラインターフェースが前記制御可能な電子デバイスを描写しているときにタッチディスプレイパネルによって提示されるように構成された選択可能な要素を生成するステップをさらに備え、
前記グラフィックカメラインターフェースの前記選択が、前記選択可能な要素において受信される、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記制御可能な電子デバイスを描写している前記グラフィックカメラインターフェースにおける前記選択の受信に応答して、前記ユーザが前記グラフィックカメラインターフェースの特定の部分における前記選択を提供したときに前記ユーザによって実行される入力ジェスチャのタイプを決定するステップさらに備える、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記制御可能な電子デバイスの前記調整可能な設定を決定するステップが、前記制御可能な電子デバイスの複数の異なる調整可能な設定を決定するステップを含み、
入力ジェスチャの前記タイプを決定するステップが、複数の異なるタイプの入力ジェスチャからのジェスチャの前記タイプを決定するステップを含み、
前記複数の異なるタイプの入力ジェスチャのうちの各ジェスチャが、前記複数の異なる調整可能な設定のうちの特定の調整可能な設定に割り当てられる、請求項10に記載の方法。
【請求項12】
前記調整可能な設定を修正させるステップが、前記ポータブルクライアントデバイスから、前記選択に対応する少なくとも1つのコマンドを送信するステップを備える、請求項1から11のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のプロセッサによって実装される方法であって、
ポータブルクライアントデバイスから、環境内の制御可能な電子デバイスの位置を特徴付ける画像データを受信するステップであって、
ユーザがポータブルクライアントデバイスのカメラを前記環境に向けているときに、画像データが前記カメラの出力に基づいて生成される、ステップと、
前記ポータブルクライアントデバイスから受信した前記画像データの処理に基づいて、前記制御可能な電子デバイスがターゲットとなる制御可能な電子デバイスであるという信頼性を特徴付けるメトリックを決定するステップであって、
前記処理が、前記画像データ内のオブジェクトに対して分類を行うことを含み、
前記ターゲットとなる制御可能な電子デバイスが、前記ポータブルクライアントデバイスを介してリモート制御されるようにあらかじめ構成されている、ステップと、
前記制御可能な電子デバイスが、前記ポータブルクライアントデバイスを介してリモート制御することができる別の制御可能なデバイスに対応する別のメトリックの上にランク付けされていることを、前記メトリックが示している場合、
前記制御可能な電子デバイスが前記ターゲットとなる制御可能な電子デバイスであるという前記メトリックに基づいて、前記ターゲットとなる制御可能な電子デバイスの調整可能な設定を識別するステップと、
前記調整可能な設定を識別するステップに基づいて、制御データを前記ポータブルクライアントデバイスに提供するステップであって、
前記制御データが、前記ターゲットとなる制御可能な電子デバイスの前記調整可能な設定を特徴付ける、ステップと、
前記ポータブルクライアントデバイスにグラフィカルユーザインターフェースを提供させるステップであって、
前記提供させるステップが、前記分類の結果に基づいて前記制御可能な電子デバイスの前記調整可能な設定を前記ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいてグラフィカルに表現するステップを含み、
前記グラフィカルユーザインターフェースが、前記ポータブルクライアントデバイスのタッチスクリーンディスプレイを介してアクセス可能であり、かつ前記制御可能な電子デバイスの前記調整可能な設定を修正するために、前記ポータブルクライアントデバイスが前記グラフィカルユーザインターフェースにおいて前記環境を描写すると同時に、ユーザ入力ジェスチャを受信するように構成される、ステップとを備える、方法。
【請求項14】
前記ポータブルクライアントデバイスから、前記ポータブルクライアントデバイスの動作特性を特徴付けるコンテキストデータを受信するステップであって、前記ターゲットとなる制御可能な電子デバイスの前記調整可能な設定を識別するステップが、前記コンテキストデータにさらに基づく、ステップをさらに備える、請求項13に記載の方法。
【請求項15】
前記画像データが、前記環境内に位置し、また前記ポータブルクライアントデバイスを介してリモート制御されるようにあらかじめ構成されている別の制御可能な電子デバイスに対する、前記ターゲットとなる制御可能な電子デバイスの配置を特徴付ける、請求項13または14に記載の方法。
【請求項16】
前記制御可能な電子デバイスが他のメトリックスコアの上にランク付けされていることを、前記メトリックが示している場合、
前記制御可能な電子デバイスのグラフィック表現を描写している前記タッチスクリーンディスプレイの一部において前記ユーザによって提供される特定のユーザ入力ジェスチャを特徴付けるユーザ入力データを受信するステップをさらに備える、請求項13から15のいずれか一項に記載の方法。
【請求項17】
前記ポータブルクライアントデバイスが、前記ポータブルクライアントデバイスが前記タッチスクリーンディスプレイを介してアクセスできる前記グラフィカルユーザインターフェースを提供すると同時に、別の入力ジェスチャに対する前記カメラの応答性を可能にするように構成された自動アシスタントアプリケーションを含む、請求項16に記載の方法。
【請求項18】
前記メトリックを決定するステップが、前記制御可能な電子デバイスのグラフィック表現を含む少なくとも1つの以前に受信された画像に対応するトレーニングデータに基づく動作に従って前記画像データを処理するステップを含む、請求項13から17のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のプロセッサによって実施される方法であって、
ポータブルクライアントデバイスに不可欠であり、かつカメラが出力を提供したときに複数の制御可能な電子デバイスを含む環境に向けられた前記カメラの前記出力に対応する画像データを受信するステップであって、
前記ポータブルクライアントデバイスが、ユーザと自動アシスタントとの間のインターフェースを提供するように構成された自動アシスタントインターフェースを含む、ステップと、
ユーザ入力が前記自動アシスタントインターフェースにおいて受信されたことを決定するステップであって、
前記ユーザ入力が、前記複数の制御可能な電子デバイスのターゲットの制御可能な電子デバイスの調整可能な設定を修正するためのアクションに関連付けられる、ステップと、
前記画像データの処理に基づいて複数のメトリックを決定するステップであって、
前記処理が、前記画像データ内のオブジェクトに対して分類を行うことを含み、
前記複数のメトリックのうちの各メトリックが、前記複数の制御可能な電子デバイスの対応する制御可能な電子デバイスが、前記ユーザが前記自動アシスタントインターフェースを介して制御しようと意図している前記ターゲットの制御可能な電子デバイスである確率を特徴付ける、ステップと、
前記複数のメトリックのうちの特定のメトリックが、前記複数の制御可能な電子デバイスのうちの特定の制御可能な電子デバイスが前記ターゲットの制御可能な電子デバイスであることを示している場合、
少なくとも前記画像データに基づいて、前記特定の制御可能な電子デバイスの前記調整可能な設定を決定するステップと、
前記分類の結果に基づいて前記制御可能な電子デバイスの前記調整可能な設定を前記タッチスクリーンディスプレイにおいてグラフィカルに表現するステップと、
前記自動アシスタントインターフェースにおいて受信した前記ユーザ入力に従って、前記特定の制御可能な電子デバイスの前記調整可能な設定を修正させるステップと
を備える、方法。
【請求項20】
前記複数のメトリックが、少なくとも1つの制御可能な電子デバイスが前記ターゲットの制御可能な電子デバイスであることを示さない場合、
前記複数の制御可能な電子デバイスのうちの各制御可能な電子デバイスの動作上のステータスを特徴付けるコンテキストデータに基づいて、他の複数のメトリックを決定するステップをさらに備える、請求項19に記載の方法。
【請求項21】
前記コンテキストデータがまた、前記環境に対する前記複数の制御可能な電子デバイスのうちの各制御可能な電子デバイスの特定の位置を特徴付ける、請求項20に記載の方法。
【請求項22】
前記コンテキストデータによって特徴付けられる前記特定の位置が、前記ユーザと前記複数の制御可能な電子デバイスのうちの少なくとも1つの制御可能な電子デバイスとの間の前の相互作用中の前記ユーザの位置に少なくとも部分的に基づき、
前記複数のメトリックが、少なくとも1つの制御可能な電子デバイスが前記ターゲットの制御可能な電子デバイスであることを示さない場合、
前記他の複数のメトリックが、前記特定の制御可能な電子デバイスが前記ターゲットの制御可能な電子デバイスであることを示していると決定するステップをさらに備える、請求項21に記載の方法。
【請求項23】
前記ユーザ入力が、前記特定の制御可能な電子デバイスが前記ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいてグラフィカルに表されると同時に提供される発話である、請求項19から22のいずれか一項に記載の方法。
【請求項24】
前記ユーザ入力が、前記ポータブルクライアントデバイスのタッチスクリーンディスプレイが前記特定の制御可能な電子デバイスをグラフィカルに表すと同時に、前記タッチスクリーンディスプレイにおいて提供されるジェスチャである、請求項19から22のいずれか一項に記載の方法。
【請求項25】
前記ジェスチャが、1つまたは複数の次元において前記タッチスクリーンディスプレイの表面に対して手がスライドすること含むスライドジェスチャである、請求項24に記載の方法。
【請求項26】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザの環境内に配置された制御可能なデバイスが入力ジェスチャに応答するように構成されることを、前記ユーザが要求していることを決定するステップであって、
前記入力ジェスチャが、前記制御可能なデバイスのグラフィック表現がコンピューティングデバイスのタッチスクリーンディスプレイにおいて描写されるときに、前記コンピューティングデバイスの前記タッチスクリーンディスプレイに提供されるユーザ入力である、ステップと、
前記コンピューティングデバイスから受信した画像データを処理するステップであって、
前記画像データが、カメラが前記制御可能なデバイスに向けられたときの前記コンピューティングデバイスの前記カメラの出力に基づく、ステップと、
前記画像データの処理に基づいて、前記制御可能なデバイスの調整可能な設定を決定するステップであって、
前記処理が、前記画像データ内のオブジェクトに対して分類を行うことを含み、
前記決定するステップが、前記分類の結果に基づいて前記制御可能な電子デバイスの前記調整可能な設定を前記タッチスクリーンディスプレイにおいてグラフィカルに表現するステップを含み、
前記調整可能な設定が、修正されると、前記制御可能なデバイスの少なくとも1つの状態を変更するステップと、
前記制御可能なデバイスの前記調整可能な設定を決定することに基づいて、前記ユーザに関連付けられるデータに、前記入力ジェスチャと前記制御可能なデバイスの前記調整可能な設定との間の相関関係を特徴付けさせるステップであって、
前記コンピューティングデバイスが、前記タッチスクリーンディスプレイにおいて前記入力ジェスチャを受信することと、前記制御可能なデバイスの前記少なくとも1つの状態を修正するために、コマンドを前記制御可能なデバイスに提供させることとを行うように構成される、ステップと
を備える、方法。
【請求項27】
前記制御可能なデバイスが前記入力ジェスチャに応答するように構成されることを、前記ユーザが要求しているとの決定に応答して、前記コンピューティングデバイスにとってアクセス可能な自動アシスタントに、前記コンピューティングデバイスの前記カメラを使用して、前記制御可能なデバイスの1つまたは複数の画像をキャプチャするよう前記ユーザに要求する自然言語出力を提供させるステップをさらに備える、請求項26に記載の方法。
【請求項28】
前記コンピューティングデバイスから受信した前記画像データを処理するステップが、前記画像データを機械学習モデルに適用し、前記機械学習モデルの出力に基づいて、前記制御可能なデバイスを特徴付けるデバイスタイプを決定するステップを含み、
前記調整可能な設定を決定するステップが、前記デバイスタイプにさらに基づく、請求項26または27に記載の方法。
【請求項29】
前記コンピューティングデバイスから受信した前記画像データを処理するステップが、前記機械学習モデルの前記出力に基づいて、埋込みスペースのための埋込みを生成するステップをさらに含む、請求項28に記載の方法。
【請求項30】
前記埋込みが、前記機械学習モデルに適用された前記画像データと、前記コンピューティングデバイスにとってアクセス可能なコンテキストデータに基づいて生成される、請求項29に記載の方法。
【請求項31】
前記埋込みスペースが、1つまたは複数の他の制御可能なデバイスに対応する1つまたは複数の他の候補の埋込みを含む、請求項29または30に記載の方法。
【請求項32】
コンピュータ実行可能命令を備えるコンピュータプログラムであって、少なくとも1つのコンピューティング装置によって実行されると、前記少なくとも1つのコンピューティング装置に、請求項1から31のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項33】
少なくとも1つの処理装置と、
前記少なくとも1つの処理装置に請求項1から31のいずれか一項に記載の方法を実行させるために、前記少なくとも1つの処理装置によって実行可能な命令を記憶した少なくとも1つのメモリ装置と
を備える、システム。
【発明の詳細な説明】
【背景技術】
【0001】
個人は、自宅内で、様々なアプリケーションによって制御することができる多数の接続されたデバイスを有することができる。そのような接続されたデバイスは、たとえば、スマート電球、スマートプラグ、スマートロック、スマートサーモスタット、スマートセキュリティシステム、スマート電化製品などを含むことができる。場合によっては、特定の接続されたデバイスを制御するための特定のアプリケーションを提供することができる。しかしながら、特定のアプリケーションはクライアントデバイスにインストールされる必要がある。さらに、特定の接続されたデバイスを制御するために、ユーザはクライアントデバイスにインストールされた一連のアプリケーションの中から特定のアプリケーションを識別し、クライアントデバイスにおいて実行されるようにアプリケーションを選択し、次いで、特定の接続されたデバイスを識別および制御するために特定のアプリケーション内を移動しなければならない。特定の接続されたデバイスを制御するために比較的大量のユーザ入力を必要とすることに加えて、特定のアプリケーションを実行することによって、および/または特定のデバイスを識別および制御するためにユーザが特定のアプリケーション内を移動するときに、特定のアプリケーションからコンテンツをレンダリングすることによって、特定のアプリケーションを識別するユーザによって、重要なクライアントデバイスリソース(たとえば、プロセッサおよび/またはバッテリ)が消費され得る。さらに、そのような特定のアプリケーションは、クライアントデバイスのメモリを消費する可能性がある。そのようなメモリ消費は、クライアントデバイスのメモリリソースが限られている多くの状況、および/またはクライアントデバイスが多くの異なる接続されたデバイスを制御するために利用され、それぞれがそれぞれの接続されたデバイスを制御するためのそれぞれの特定のアプリケーションを有する状況において悪化する可能性がある。
【発明の概要】
【課題を解決するための手段】
【0002】
本開示は、概して、ポータブルクライアントデバイスのインターフェースを介して1つまたは複数のデバイスを制御するための方法、装置、コンピュータ実行可能命令、コンピュータ実行可能プログラム、およびコンピュータ可読媒体(一時的および非一時的)を対象とする。具体的には、ユーザは、特定の接続されたデバイスを制御するためのインターフェースを初期化するために、グラフィックカメラインターフェースをアクティブにし、ポータブルクライアントデバイスのカメラを特定の接続されたデバイスに向けることができる。特定の接続されたデバイスは、カメラからの画像データを処理すること、ならびに、画像データが特定の接続されたデバイスおよび/または特定の接続されたデバイスのインストール環境をキャプチャすると決定することに少なくとも部分的に基づいて、インターフェースを介して制御することができる。特定の接続されたデバイスは、たとえば、スマート電球、スマートテレビ、および/または他のスマートデバイスであり得、ユーザは、ポータブルクライアントデバイスのカメラおよびポータブルクライアントデバイスの1つまたは複数のインターフェースを使用してデバイスを制御および/または構成することができる。このように、ユーザは、自宅の様々なデバイスを制御するために、必ずしも様々な個別のアプリケーションに依存する必要はないが、特定の制御可能なデバイスを制御したいことを自分のポータブルクライアントデバイスに示すために自分のカメラを採用することができる。これにより、ユーザは、必ずしもデバイスを制御するために様々な制御可能なデバイスの製造業者から提供されたすべてのアプリケーションをインストール、オープン、または切り替える必要がないことの結果として、ユーザは自分のポータブルクライアントデバイスにおけるスペースと処理帯域幅を空けることができるようになる。たとえば、ユーザが2つ以上の制御可能なデバイスを制御したいシナリオでは、ユーザは、制御可能なデバイスを制御するために、自分のクライアントデバイスにインストールされた2つ以上の別個のアプリケーションに必ずしも依存する必要はない。代わりに、ユーザは、クライアントデバイスにおいてカメラ関連ユーザインターフェースを介して2つ以上の制御可能なデバイスを制御する機能を提供され得、それによって、クライアントデバイスが各制御可能なデバイスに関連付けられる異なるアプリケーション間を切り替えるいかなる必要性も回避する。これにより、処理の負担を軽減し、クライアントデバイスにおける電力使用量を低減できることが理解されよう。さらに、本明細書に開示される様々な実装形態は、制御可能なデバイスを制御するために必要なユーザ入力の量を低減する。たとえば、それらの実装形態のうちのいくつかは、ユーザが、制御可能なデバイスおよび/またはデバイスのインストール環境をキャプチャするグラフィックカメラインターフェースにおける単一の入力(たとえば、タップ、ロングタップ、タップアンドドラッグなど)、あるいはグラフィックカメラインターフェースにオーバーレイされたグラフィック要素を提供すること、ならびに制御可能なデバイスが単一の入力に応答して制御されることを可能にする。たとえば、ユーザは、制御されるべきターゲットとなるデバイスにポータブルクライアントデバイスのカメラを向けることと、ターゲットとなるデバイスを制御するために、ポータブルクライアントデバイスのインターフェースに入力(たとえば、タップ)を提供することとができる。ターゲットとなるデバイスのこの合理化された制御は、ターゲットとなるデバイスを制御する際のユーザとクライアントデバイス間の相互作用を改善する。
【0003】
いくつかの実装形態では、ユーザは、自分のポータブルクライアントデバイスから自動アシスタントおよび/またはカメラアプリケーションにアクセスし、ユーザが特定の制御可能なデバイスを制御することに関心があることを示すために、自分のポータブルクライアントデバイスのカメラを特定の制御可能なデバイスに向けることができる。制御可能なデバイスは、たとえば、オーブンなどの電化製品であり得る。カメラの出力は、ポータブルクライアントデバイス、および/またはネットワーク(たとえば、インターネット)を介してポータブルクライアントデバイスからアクセス可能なコンピューティングデバイスにおいて処理するために画像データに変換することができる。画像データは、制御可能なデバイスが画像データにおいてグラフィカルに表されている(すなわち、ユーザは、自分のカメラを制御可能なデバイスに向けている)かどうかを識別するために、ポータブルクライアントデバイスおよび/または別のコンピューティングデバイスにおいて画像認識処理を受けることができる。
【0004】
いくつかの実装形態では、画像データからの制御可能なデバイスの識別は、ユーザとポータブルクライアントデバイスまたは他のコンピューティングデバイスとの間の相互作用中に生成されたデータに基づくことができる。さらに、または代替的に、画像データからの制御可能なデバイスの識別は、自動アシスタントのプロバイダに関連して、制御可能なデバイスの製造業者および/または別の第三者によって提供されるデータに基づくことができる。画像データの処理に基づいて、1つまたは複数の候補デバイスを、自分のカメラを制御可能なデバイスに向けることによってユーザがターゲットとする制御可能なデバイスであると識別することができる。各候補デバイスには、候補デバイスが、ユーザがターゲットにしようと意図している制御可能なデバイスであり、画像データによって表され、および/またはユーザの家の中に位置する特定の制御可能なデバイスである確率および/または信頼性を特徴付けるメトリックを割り当てることができる。特定の候補デバイスに、他の候補デバイスと比較して、候補デバイスが制御可能なデバイスである確率または信頼性がより高いことを示すメトリックが割り当てられると、ポータブルクライアントデバイスは、特定の候補デバイスが制御可能なデバイスであると決定することができる。
【0005】
さらに、または代替的に、制御可能なデバイスを識別するためのプロセスは、制御可能なデバイスのアイデンティティのための識別子、および/または制御可能なデバイスの特性、制御可能なデバイスの調整可能な設定、および/または制御可能なデバイスの1つまたは複数の動作ステータスを(operational status)特徴付けるデータを提供することを含むことができる。ポータブルクライアントデバイスが制御可能なデバイスをグラフィカルに表す場合、ポータブルクライアントデバイスは、ポータブルクライアントデバイスのインターフェースへの入力を解釈するために前述のデータを使用することができる。たとえば、制御可能なデバイスは、オンまたはオフにできる調整可能な設定を有することができ、制御可能なデバイスの現在の動作ステータスまたは状態を「オフ」にすることができる。ポータブルクライアントデバイスは、タッチスクリーンディスプレイが制御可能なデバイスをグラフィカルに表すときにポータブルクライアントデバイスのタッチスクリーンディスプレイにおいて受信されるタップジェスチャを処理し、制御可能なデバイスが「オン」ステータスを有するようにさせるために、このデータを使用することができる。
【0006】
いくつかの実装形態では、タッチスクリーンディスプレイは、カメラの出力に基づいて画像を表示し続けることができ、それによって、制御可能なデバイスが配置される環境をグラフィカルに表す。しかしながら、それらの画像の表示と同時に、ポータブルクライアントデバイスは、タッチスクリーンディスプレイが、タップ、スワイプ、マルチフィンガジェスチャ、ユーザの1つまたは複数の手(appendage)の動きに基づくジェスチャ、および/またはタッチスクリーンディスプレイにおいて受信することができる任意の他のジェスチャなどの1つまたは複数の異なるタイプのタッチジェスチャを受信できるようにすることができる。このように、オーバーレイされたグラフィカルユーザインターフェースはないが、ユーザは制御可能なデバイスのグラフィック表現を実際にタップすることができる。いくつかの実装形態では、ポータブルクライアントデバイスは、タッチスクリーンディスプレイ内の制御可能なデバイスのグラフィック表現の位置を識別することと、制御可能なデバイスを制御するためのジェスチャをタッチスクリーンディスプレイのその部分に制限することとができる。さらに、または代替的に、ポータブルクライアントデバイスは、環境内に配置された複数の異なる制御可能なデバイスを識別し、タッチスクリーンディスプレイにおいて複数の異なる制御可能なデバイスをグラフィカルに描くことができる。さらに、ポータブルクライアントデバイスは、タッチスクリーンディスプレイが、各制御可能なデバイスのうちの各グラフィック表現が描かれているタッチスクリーンディスプレイの部分において1つまたは複数の異なるタイプのジェスチャを受信することを可能にし、タッチスクリーンディスプレイのそれぞれの部分における1つまたは複数のジェスチャを介して、それぞれの制御可能なデバイスの制御を可能にすることができる。たとえば、ユーザが自分のカメラをランプとテレビに向けており、ランプとテレビの各々がタッチスクリーンディスプレイに同時に表示されている場合、ユーザは、ランプのグラフィック表現をタップしてランプをオフにし、テレビのグラフィック表現をタップしてテレビをオンにすることができる。さらに、タッチスクリーンディスプレイの各部分は、テレビをオンにするためのタップジェスチャ、およびランプの輝度を下げるためのスライドジェスチャなどのジェスチャのうちの1つまたは複数の異なるタイプのジェスチャを受信することができる。
【0007】
いくつかの実装形態では、選択可能な要素は、制御可能なデバイスを制御するためにタッチスクリーンディスプレイにおいて提示することができる。選択可能な要素は、制御可能なデバイスに対応するものとして識別された1つまたは複数の調整可能な設定に基づいて生成することができる。たとえば、選択可能な要素は、制御されるべきランプの動作ステータスに応じて、「オン」または「オフ」というテキストを含むことができ、ランプの動作ステータスは、ユーザの選択可能な要素へのタップに応答して修正することができる。選択可能な要素の座標は、ユーザがタッチスクリーンディスプレイを介してデバイスを見ることができることを妨げないように、制御されるべきデバイスのグラフィック表現から離れていてもよい。たとえば、ランプのライトがタッチスクリーンディスプレイの上部にグラフィカルに表されている場合、ランプの動作ステータスを交互に切り替えるための選択可能な要素をタッチスクリーンディスプレイの下部において提供することができる。さらに、または代替的に、ポータブルクライアントデバイスは、タッチスクリーンディスプレイを介して制御可能なデバイスを制御するためのジェスチャも有効になっている場合でも、カメラ制御を引き続き利用可能とすることができる。このようにして、ユーザが写真を撮ると同時に制御可能なデバイスの動作ステータスを修正したい場合、ユーザは、たとえば、制御可能なデバイスを制御するために制御可能なデバイスのグラフィック表現をタップし、次いで、カメラに画像をキャプチャさせるために別の入力を提供することができる。
【0008】
いくつかの実装形態では、ユーザは、制御可能なデバイスの調整可能な設定を修正するために、制御可能なデバイスがタッチスクリーンディスプレイにおいてグラフィカルに表されている間に、マイクロフォンなどの自動アシスタントインターフェースに発話を提供することができる。これにより、自動アシスタントは、発話に従って制御される候補となる可能性のある他の制御可能なデバイスを区別することができるようになる。たとえば、科学実験室で働くユーザは、実験室において特定の照明条件を提供するために、たとえば、テストサンプルに特定の波長のEM放射を提供するために、複数のランプが利用可能である場合がある。「アシスタント、ランプをオンにしてください」などの発話は、ユーザが言及しているランプを識別するために役立つコンテキストをあまり提供しない場合がある。しかしながら、「アシスタント、ランプをオンにしてください」と言いながら、ユーザが自分のポータブルクライアントデバイスのカメラを特定のランプに向けている場合、自動アシスタントは、コンテキストデータと発話に基づいて、ユーザが、その特定のランプをオンにしたいと考えていると決定することができる。別の例では、ユーザは自宅に複数のテレビを有することができるため、「アシスタント、テレビをオンにしてください」などの発話は、ユーザが言及しているテレビを識別するために役立つコンテキストをあまり提供しない場合がある。しかしながら、「アシスタント、テレビをオンにしてください」と言いながら、ユーザが自分のポータブルクライアントデバイスのカメラを特定のテレビに向けている場合、自動アシスタントは、コンテキストデータと発話に基づいて、ユーザがその特定のテレビをオンにしたいと考えていると決定することができる。コンテキストデータは、ポータブルクライアントデバイスの位置、ポータブルクライアントデバイスの1つまたは複数のセンサによって示されるようなポータブルクライアントデバイスの方向、ユーザが発話を提供した時刻、ユーザに関連付けられる情報、および/またはユーザがコマンドを提供したコンテキストを特徴付けることができる任意の他の情報を含むことができるが、これらに限定されない。
【0009】
いくつかの実装形態では、コンテキストデータは、本明細書で説明される画像処理技法とともに、ユーザが自分のカメラを制御可能なデバイスに向けるのと同時に、ユーザが自分のタッチスクリーンディスプレイを介して制御しようと意図している制御可能なデバイスを決定する際に使用することができる。そのようなコンテキストデータは、ユーザに関連付けられる位置(たとえば、家)内の部屋のレイアウトを特徴付ける部屋の隣接データを含むことができるが、これらに限定されない。部屋の隣接データは、ユーザが自宅(または、他の位置)内でアクティビティを実行し、部屋のデータを提供(たとえば、「居間」、「寝室」など、または「実験室1」、「実験室2」などの部屋に対するラベル)し、および/または特定の部屋が自宅(または、他の位置)内のどこにあるかについての推論を提供するために他に行動する時に、時間の経過とともに生成することができる。いくつかの実装形態では、自動アシスタントが、特定のデバイスにとって利用可能な信号強度に基づいて特定のデバイスがどこにあるかを決定できるように、ネットワークルータの位置を部屋の隣接データに関連付けて記憶することができる。たとえば、ネットワークルータと同じ階(たとえば、1階)にあるデバイスは、デバイスが異なる階(たとえば、地階)に位置する場合よりも多くのネットワーク接続性を有することができる。ユーザが自分のカメラを向けている制御可能なデバイスを決定するために、これらに限定されないが、全地球測位システム(GPS)データ、ジャイロスコープセンサデータ、画像データ、温度データ(たとえば、デバイスにおける温度を1つまたは複数の部屋の知られている温度と比較するための)、軌道データ、および/または特定の部屋内のポータブルクライアントデバイスの位置を決定するために使用することができる任意の他の位置データなどの、他のコンテキストデータも使用することができる。いくつかの実装形態では、特定の制御可能なデバイスが複数の候補デバイスのターゲットとなるデバイスであると決定するためにコンテキストデータを使用することができ、それによってメトリックの計算時に表示される可能性のある「結びつき」を解消することができる。たとえば、2つ以上の候補デバイスに同じメトリック、またはすべて許容範囲内のメトリックを割り当てることができる。候補デバイスを単一の候補デバイスにさらに制限するために、候補デバイスの数を単一の候補デバイスに減らすためにコンテキストデータを使用することができる。
【0010】
いくつかの実装形態では、ユーザが自宅内の複数の類似のデバイスからターゲットにしようと意図している特定の制御可能なデバイスを識別するために、画像データとコンテキストデータを使用することができる。たとえば、ユーザは自宅の異なる場所に位置する同じタイプのランプを2つ有している場合がある。ユーザが自分のカメラを向けている特定のランプを決定するために、ポータブルクライアントデバイスのネットワーク接続性および/またはカメラの方向などのコンテキストデータを画像データと組み合わせて使用することができる。たとえば、ユーザが2つのランプのうちの第1のランプに自分のカメラを向けている場合、カメラを含むポータブルクライアントデバイスは第1のWi-Fiネットワーク強度を有することができ、ポータブルクライアントデバイスの方向センサはポータブルクライアントデバイスが第1の方向を指していることを示すことができる。さらに、ユーザが自分のカメラを2つのランプのうちの第2のランプに向けている場合、ポータブルクライアントデバイスは、第2のWi-Fiネットワーク強度を有し、第2の方向に向けることができる。ターゲットとなるランプの識別を担当するアプリケーションまたはデバイスは、ユーザが2つのランプのうちの1つを制御しようと意図していることを決定するために、このコンテキストデータ(たとえば、Wi-Fi信号強度および/またはカメラの方向)を、ランプのうちの1つの、1つまたは複数の画像とともに使用することができる。このように、ユーザが自分のポータブルクライアントデバイスに入力ジェスチャを提供するとき、ランプのうちの1つのグラフィック表現がポータブルクライアントデバイスのタッチスクリーンディスプレイにおいて提供されるときに、入力ジェスチャに対応するコマンドを画像データとコンテキストデータから識別されたランプに送信することができる。
【0011】
上記の説明は、本開示のいくつかの実装形態の概要として提供されている。それらの実装形態および他の実装形態の詳細については、以下でさらに詳しく説明する。
【0012】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法は、ポータブルクライアントデバイスによって、ポータブルクライアントデバイスのタッチスクリーンディスプレイにグラフィックカメラインターフェースが提供されるようにするなどの動作を含むものとして説明され、グラフィックカメラインターフェースは、ポータブルクライアントデバイスのカメラが向けられている環境のグラフィック表現を提供する。本方法は、カメラが環境に向けられたときにカメラによって提供される画像データに基づいて、およびカメラによって提供される画像データの処理に基づいて、環境のグラフィック表現が環境内に位置する制御可能な電子デバイスを描写することを決定するステップをさらに含むことができる。
【0013】
本方法は、環境のグラフィック表現が制御可能な電子デバイスを描写するとの決定に応答して、制御可能な電子デバイスの調整可能な設定を決定するステップであって、調整可能な設定が、修正されると、制御可能な電子デバイスの少なくとも1つの状態(state)を変更する、ステップをさらに含むことができる。本方法は、ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいて、グラフィックカメラインターフェースにおける選択を受信するステップと、グラフィックカメラインターフェースにおける選択の受信に応答して、制御可能な電子デバイスの調整可能な設定を修正させるステップとをさらに含むことができる。
【0014】
いくつかの実装形態では、環境のグラフィック表現が制御可能な電子デバイスを描写することを決定するステップは、1つまたは複数のそれぞれの出力のインスタンスを生成するためにトレーニング済みの機械学習モデルを使用して画像データを処理するステップと、1つまたは複数のそれぞれの出力のインスタンスが制御可能な電子デバイスを最もよく示していると決定するステップとを備える。いくつかの実装形態では、1つまたは複数のそれぞれの出力のインスタンスのそれぞれのインスタンスはそれぞれの埋込みであり、1つまたは複数のそれぞれの出力のインスタンスが制御可能な電子デバイスを最もよく示していると決定するステップが、それぞれの埋込みのうちの1つまたは複数を複数の候補の埋込みと比較するステップであって、複数の候補の埋込みは、制御可能な電子デバイスのための所与の埋込み、および1つまたは複数の追加の制御可能な電子デバイスのための1つまたは複数の追加の埋込みを含む、ステップを備える。いくつかの実装形態では、制御可能な電子デバイスの所与の埋込みは、ポータブルクライアントデバイスに関連付けられるアカウントに個人的なものであり、所与の埋込みは、ポータブルクライアントデバイスまたはアカウントに関連付けられる別のポータブルクライアントデバイスによって以前にキャプチャされた複数の前の画像に基づいて以前に生成されたものであり、所与の埋込みは、前の画像のキャプチャを制御可能な電子デバイスに関連付ける以前のユーザインターフェース入力に基づいて、以前に制御可能な電子デバイスに関連付けられている。
【0015】
いくつかの実装形態では、環境のグラフィック表現が環境内に位置する制御可能な電子デバイスを描写することを決定するステップは、ポータブルクライアントデバイスの追加センサからのセンサデータにさらに基づき、追加センサは非視覚センサである。いくつかの実装形態では、本方法は、ポータブルクライアントデバイスのセンサのセンサ出力に基づいて、カメラが環境に向けられたときのポータブルクライアントデバイスの向きを決定するステップを含むことができる。いくつかの実装形態では、向きは、ポータブルクライアントデバイスのネットワーク接続性と、ポータブルクライアントデバイスに対するネットワークルータの具体的な位置を識別する統合レイアウトデータに少なくとも部分的に基づいて決定される。いくつかの実装形態では、本方法は、調整可能な設定の制御を、制御可能な電子デバイスを描写しているグラフィックカメラインターフェースの一部の特定の領域に割り当てるステップを含むことができ、グラフィックカメラインターフェースにおける選択が、調整可能な設定が割り当てられている特定の領域において受信される。
【0016】
いくつかの実装形態では、本方法は、制御可能な電子デバイスの調整可能な設定を決定することに基づいて、グラフィックカメラインターフェースが制御可能な電子デバイスを描写しているときにタッチディスプレイパネルによって提示されるように構成された選択可能な要素を生成するステップを含むことができ、グラフィックカメラインターフェースの選択は、選択可能な要素において受信される。いくつかの実装形態では、本方法は、制御可能な電子デバイスを描写しているグラフィックカメラインターフェースにおける選択の受信に応答して、ユーザがグラフィックカメラインターフェースの特定の部分における選択を提供したときにユーザによって実行される入力ジェスチャのタイプを決定するステップを含むことができる。いくつかの実装形態では、制御可能な電子デバイスの調整可能な設定を決定するステップは、制御可能な電子デバイスの複数の異なる調整可能な設定を決定するステップを含み、入力ジェスチャのタイプを決定するステップは、複数の異なるタイプの入力ジェスチャからのジェスチャのタイプを決定するステップを含み、複数の異なるタイプの入力ジェスチャのうちの各ジェスチャは、複数の異なる調整可能な設定のうちの特定の調整可能な設定に割り当てられる。いくつかの実装形態では、調整可能な設定を修正させるステップは、ポータブルクライアントデバイスから、選択に対応する少なくとも1つのコマンドを送信するステップを備える。
【0017】
他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、ポータブルクライアントデバイスから、環境内の制御可能な電子デバイスの位置を特徴付ける画像データを受信するステップであって、ユーザがカメラを環境に向けているときに、画像データがポータブルクライアントデバイスのカメラの出力に基づいて生成される、ステップなどの動作を含むものとして説明されている。本方法はまた、ポータブルクライアントデバイスから受信した画像データの処理に基づいて、制御可能な電子デバイスがターゲットとなる制御可能な電子デバイスであるという信頼性を特徴付けるメトリックを決定するステップであって、ターゲットとなる制御可能な電子デバイスは、ポータブルクライアントデバイスを介してリモート制御されるようにあらかじめ構成されている、ステップを含むことができる。本方法は、メトリックが、制御可能な電子デバイスは、ポータブルクライアントデバイスを介してリモート制御することができる別の制御可能なデバイスに対応する別のメトリックの上にランク付けされていることを示している場合、制御可能な電子デバイスがターゲットとなる制御可能な電子デバイスであるという信頼性スコアに基づいて、ターゲットとなる制御可能な電子デバイスの調整可能な設定を識別するステップと、調整可能な設定を識別するステップに基づいて、制御データをポータブルクライアントデバイスに提供するステップであって、制御データが、ターゲットとなる制御可能な電子デバイスの調整可能な設定を特徴付ける、ステップと、確定制御可能な電子デバイスの調整可能な設定を修正するために、ポータブルクライアントデバイスがグラフィックカメラインターフェースにおいて環境を描写すると同時に、ポータブルクライアントデバイスに、ポータブルクライアントデバイスのタッチスクリーンディスプレイを介してアクセス可能であり、ユーザ入力ジェスチャを受信するように構成されたグラフィカルユーザインターフェースを提供させるステップと、をさらに含むことができる。
【0018】
いくつかの実装形態では、本方法は、ポータブルクライアントデバイスから、ポータブルクライアントデバイスの動作特性を特徴付けるコンテキストデータを受信するステップであって、ターゲットとなる制御可能な電子デバイスの調整可能な設定を識別するステップは、コンテキストデータにさらに基づく、ステップを含むことができる。いくつかの実装形態では、画像データは、環境内に配置され、またポータブルクライアントデバイスを介してリモート制御されるようにあらかじめ構成されている別の制御可能な電子デバイスに対する、ターゲットとなる制御可能な電子デバイスの配置を特徴付ける。本方法は、メトリックが、制御可能な電子デバイスが他のメトリックスコアの上にランク付けされていることを示している場合、制御可能な電子デバイスのグラフィック表現を描写しているタッチスクリーンディスプレイの一部においてユーザによって提供される特定のユーザ入力ジェスチャを特徴付けるユーザ入力データを受信するステップをさらに含むことができる。
【0019】
いくつかの実装形態では、ポータブルクライアントデバイスは、ポータブルクライアントデバイスがタッチスクリーンディスプレイを介してアクセスできるグラフィカルユーザインターフェースを提供すると同時に、別の入力ジェスチャに対するカメラの応答性を可能にするように構成された自動アシスタントアプリケーションを含む。いくつかの実装形態では、メトリックを決定するステップは、制御可能な電子デバイスのグラフィック表現を含む少なくとも1つの以前に受信された画像に対応するトレーニングデータに基づく動作に従って画像データを処理するステップを含む。
【0020】
さらに他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、ポータブルクライアントデバイスに不可欠であり、カメラが出力を提供したときに複数の制御可能な電子デバイスを含む環境に向けられたカメラの出力に対応する画像データを受信するステップであって、ポータブルクライアントデバイスは、ユーザと自動アシスタントとの間のインターフェースを提供するように構成された自動アシスタントインターフェースを含む、ステップを含む動作を含むものとして説明される。本方法は、ユーザ入力が自動アシスタントインターフェースにおいて受信されたことを決定するステップであって、ユーザ入力は、複数の制御可能な電子デバイスのターゲットの制御可能な電子デバイスの調整可能な設定を修正するためのアクションに関連付けられる、ステップをさらに含むことができる。本方法は、画像データの処理に基づいて複数のメトリックを決定するステップであって、複数のメトリックのうちの各メトリックは、複数の制御可能な電子デバイスの対応する制御可能な電子デバイスが、ユーザが自動アシスタントインターフェースを介して制御しようと意図しているターゲットの制御可能な電子デバイスである確率を特徴付ける、ステップをさらに含むことができる。本方法は、複数のメトリックのうちの特定のメトリックが、複数の制御可能な電子デバイスのうちの特定の制御可能な電子デバイスがターゲットの制御可能な電子デバイスであることを示している場合、少なくとも画像データに基づいて、特定の制御可能な電子デバイスの調整可能な設定を決定するステップと、自動アシスタントインターフェースにおいて受信したユーザ入力に従って、特定の制御可能な電子デバイスの調整可能な設定を修正させるステップとをさらに含むことができる。
【0021】
いくつかの実装形態では、本方法は、複数のメトリックが、少なくとも1つの制御可能な電子デバイスがターゲットの制御可能な電子デバイスであることを示さない場合、複数の制御可能な電子デバイスのうちの各制御可能な電子デバイスの動作上のステータスを特徴付けるコンテキストデータに基づいて、他の複数のメトリックを決定するステップをさらに含むことができる。いくつかの実装形態では、コンテキストデータはまた、環境に対する複数の制御可能な電子デバイスのうちの各制御可能な電子デバイスの特定の位置を特徴付ける。いくつかの実装形態では、コンテキストデータによって特徴付けられる特定の位置は、ユーザと複数の制御可能な電子デバイスのうちの少なくとも1つの制御可能な電子デバイスとの間の前の相互作用中のユーザの位置に少なくとも部分的に基づき、本方法は、複数のメトリックが、少なくとも1つの制御可能な電子デバイスがターゲットの制御可能な電子デバイスであることを示さない場合、他の複数のメトリックが、特定の制御可能な電子デバイスがターゲットの制御可能な電子デバイスであることを示していると決定するステップをさらに備える。
【0022】
いくつかの実装形態では、ユーザ入力は、特定の制御可能な電子デバイスがポータブルクライアントデバイスのタッチスクリーンディスプレイにおいてグラフィカルに表されると同時に提供される発話である。いくつかの実装形態では、ユーザ入力は、タッチスクリーンディスプレイが特定の制御可能な電子デバイスをグラフィカルに表すと同時に、ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいて提供されるジェスチャである。いくつかの実装形態では、ジェスチャは、1つまたは複数の次元においてタッチスクリーンディスプレイの表面に対して手がスライドすることを含むスライドジェスチャである。
【0023】
さらに他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、ユーザが、ユーザの環境内に配置された制御可能なデバイスが、入力ジェスチャに応答するように構成されることを要求していることを決定するステップであって、入力ジェスチャは、制御可能なデバイスのグラフィック表現がコンピューティングデバイスのタッチスクリーンディスプレイにおいて描写されるときに、コンピューティングデバイスのタッチスクリーンディスプレイに提供されるユーザ入力である、ステップなどの動作を含むものとして説明されている。本方法は、コンピューティングデバイスから受信した画像データを処理するステップであって、画像データは、カメラが制御可能なデバイスに向けられたときのコンピューティングデバイスのカメラの出力に基づく、ステップをさらに含むことができる。本方法は、画像データの処理に基づいて、制御可能なデバイスの調整可能な設定を決定するステップであって、調整可能な設定は、修正されると、制御可能なデバイスの少なくとも1つの状態を変更する、ステップをさらに含むことができる。本方法は、制御可能なデバイスの調整可能な設定を決定することに基づいて、ユーザに関連付けられるデータに、入力ジェスチャと制御可能なデバイスの調整可能な設定との間の相関関係を特徴付けさせるステップであって、コンピューティングデバイスは、タッチスクリーンディスプレイにおいて入力ジェスチャを受信することと、制御可能なデバイスの少なくとも1つの状態を修正するために、制御可能なデバイスにコマンドを提供させることとを行うように構成される、ステップをさらに含むことができる。
【0024】
いくつかの実装形態では、本方法は、ユーザが、制御可能なデバイスが入力ジェスチャに応答するように構成されることを要求しているとの決定に応答して、コンピューティングデバイスにアクセス可能な自動アシスタントに、コンピューティングデバイスのカメラを使用して、制御可能なデバイスの1つまたは複数の画像をキャプチャするようユーザに要求する自然言語出力を提供させるステップをさらに含むことができる。いくつかの実装形態では、コンピューティングデバイスから受信した画像データを処理するステップは、画像データを機械学習モデルに適用し、機械学習モデルの出力に基づいて、制御可能なデバイスを特徴付けるデバイスタイプを決定するステップを含み、調整可能な設定を決定するステップは、デバイスタイプにさらに基づく。いくつかの実装形態では、コンピューティングデバイスから受信した画像データを処理するステップは、機械学習モデルの出力に基づいて、埋込みスペースのための埋込みを生成するステップをさらに含む。いくつかの実装形態では、埋込みは、機械学習モデルに適用された画像データと、コンピューティングデバイスにとってアクセス可能なコンテキストデータに基づいて生成される。いくつかの実装形態では、埋込みスペースは、1つまたは複数の他の制御可能なデバイスに対応する1つまたは複数の他の候補の埋込みを含む。
【0025】
他の実装形態は、1つまたは複数のプロセッサ(たとえば、中央処理装置(CPU)、グラフィックス処理装置(GPU))によって実行可能な命令を記憶する非一時的コンピュータ可読ストレージ媒体、ならびに/あるいは、上述の、および/または本明細書の他の場所に記載された方法のうちの1つまたは複数の方法などを実行するためのテンソルプロセッシングユニット(TPU)を含み得る。さらに他の実装形態は、上述の、および/または本明細書の他の場所に記載された方法のうちの1つまたは複数の方法などを実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む、1つまたは複数のコンピュータおよび/あるいは1つまたは複数のロボットのシステムを含み得る。
【0026】
前述の概念および本明細書でより詳細に説明される追加の概念のすべての組合せは、本明細書で開示される主題の一部であると考えられることを理解されたい。たとえば、本開示の終わりに現れるクレームされた主題のすべての組合せは本明細書で開示される主題の一部であると考えられる。
【図面の簡単な説明】
【0027】
図1】コンピューティングデバイスのタッチスクリーンディスプレイを介して第1の制御可能なデバイスの調整可能な設定を修正するユーザのビューを示す図である。
図2】コンピューティングデバイスが、1つまたは複数の制御可能なデバイスのグラフィック表現がコンピューティングデバイスのインターフェースにおいて提示されると同時に1つまたは複数の選択可能な要素を提供する実装形態のビューを示す図である。
図3】クライアントデバイスのディスプレイパネルにおいてグラフィカルに表すことができる特定の制御可能なデバイスを制御するための能力をクライアントデバイスに提供するためのシステムを示す図である。
図4A】コンピューティングデバイスのカメラを使用して制御可能なデバイスをセットアップするユーザの斜視図である。
図4B】コンピューティングデバイスのカメラを使用して制御可能なデバイスをセットアップするユーザの斜視図である。
図5】タッチスクリーンディスプレイが制御可能なデバイスのリアルタイムのグラフィック表現を提供しているときに、制御可能なデバイスの調整可能な設定を決定するための方法を示す図である。
図6】制御可能なデバイスのグラフィック表現がタッチスクリーンディスプレイにおいて提供されるときに、タッチスクリーンディスプレイを介して制御可能なデバイスの調整可能な設定を修正するための方法を示す図である。
図7】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0028】
図1は、コンピューティングデバイス110のタッチスクリーンディスプレイ118を介して第1の制御可能なデバイス106の調整可能な設定を修正するユーザ112のビュー100を示している。非限定的な例として、ユーザ112は、環境102内でテレビ108を見ることを望むことができるが、ユーザ112の動きは、環境102内で発生する緊急事態、ユーザ112の健康関連状態、ユーザ112が現在専念している別のタスク、環境102内の障害物、および/または動きの障害となり得る任意の他の特性などの1つまたは複数の要因によって、一時的に妨げられる場合がある。動きに対するそのような制限の結果として、ユーザ112は、ユーザ112がテレビ108を見ているときなど、特定の時間に特定のタスクを実行できない場合がある。これは、環境102内の別のデバイスがユーザ112によって実行されているタスクに干渉しているときに問題となる可能性がある。しかしながら、本明細書で説明される実装形態は、ユーザ112が制御されるべきデバイスにコンピューティングデバイスのカメラを向けているときに、コンピューティングデバイスに入力を提供することによって、ユーザ112が特定のデバイスを制御できるようにすることに関する。
【0029】
いくつかの実装形態では、ユーザ112は、テレビ108を見ていて(または、そうでなければ第2の制御可能なデバイスと連携していて)、テレビ108からの光がランプ(すなわち、第1の制御可能なデバイス106)によって放出される光から受ける干渉を少なくするためにランプをオフにすることを望むことができる。ランプの調整可能な設定を制御するために、および本明細書で説明される実装形態によれば、ユーザ112は、自分のコンピューティングデバイス110のカメラをランプの方向に向けることができる。カメラは、第1の制御可能なデバイス106および第2の制御可能なデバイスをコンピューティングデバイス110のタッチスクリーンディスプレイ118においてグラフィカルに表されるために、第1の制御可能なデバイス106および第2の制御可能なデバイスを含む環境102の部分104に向けることができる。
【0030】
コンピューティングデバイス110は、これに限定されないが、自動アシスタントに特定のアクションを実行するように指示するためにカメラへのアクセスを提供するアシスタントアプリケーションなどのカメラ関連アプリケーションを動作することができる。いくつかの実装形態では、コンピューティングデバイス110は、画像をキャプチャするためのカメラアプリケーションを含むことができ、コンピューティングデバイス110は、カメラアプリケーションがコンピューティングデバイス110において開かれている間、ユーザ112が特定の制御可能なデバイスを制御することを可能にすることができる。ユーザ112が環境102の部分104にカメラを向け、第1の制御可能なデバイス106の少なくともグラフィック表現116がタッチスクリーンディスプレイ118において提示されると、ユーザ112は、第1の制御可能なデバイス106を制御するために、自分の手120でジェスチャ122を提供することができる。ジェスチャ122は、第1の制御可能なデバイス106のグラフィック表現116を表示しているタッチスクリーンディスプレイ118の一部において受信することができ、それによって、ユーザ112が、第1の制御可能なデバイス106の設定を調整するために第1の制御可能なデバイス106をターゲットにしていることを示している。
【0031】
ジェスチャ122の受信に応答して、コンピューティングデバイス110は、第1の制御可能なデバイス106の調整可能な設定を修正するために、コマンドを第1の制御可能なデバイス106に送信させることができる。調整可能な設定は、たとえば、第1の制御可能なデバイス106のライトをオンまたはオフにするための制御であり得る。したがって、ユーザ112がジェスチャ122を提供するときに第1の制御可能なデバイス106のライトがオンである場合、コンピューティングデバイス110は、ライトをオフにするために「オフ」コマンドを第1の制御可能なデバイス106に提供させることができる。タッチスクリーンディスプレイ118の第1のインターフェース124に示されるように、第1の制御可能なデバイス106は「オン」状態にあり得、また、第1のインターフェース124においてユーザ112によるジェスチャ122の提供に応答して、タッチスクリーンディスプレイ118の第2のインターフェース126に示されるように、第1の制御可能なデバイス106を「オフ」状態に遷移させることができる。いくつかの実装形態では、第1の制御可能なデバイス106およびテレビ108の各々の調整可能な設定を識別することができ、コンピューティングデバイス110は、ユーザ112が、同じインターフェースからテレビ108および第1の制御可能なデバイス106の調整可能な設定を修正できるように構成することができる。たとえば、ユーザ112が第1の制御可能なデバイス106の調整可能な設定を修正するためにジェスチャ122を提供するとき、ユーザ112はその後、タッチスクリーンディスプレイがテレビ108のグラフィック表現114および第1の制御可能なデバイス106のグラフィック表現116を提供しているときに、テレビ108の調整可能な設定(たとえば、ボリューム、チャンネル、輝度など)を修正するために別のジェスチャを提供することができる。
【0032】
図2は、コンピューティングデバイス110が、1つまたは複数の制御可能なデバイスのグラフィック表現がコンピューティングデバイス110のインターフェースにおいて提示されると同時に1つまたは複数の選択可能な要素を提供する実装形態のビュー200を示している。具体的には、いくつかの実装形態では、選択可能な要素は、コンピューティングデバイス110のカメラからの出力、および/またはタッチスクリーンディスプレイ118においてグラフィカルに表される制御可能なデバイスに関連付けられる1つまたは複数の調整可能な設定に基づいてタッチスクリーンディスプレイ118においてグラフィカルに表される制御可能なデバイスのタイプに基づいて、タッチスクリーンディスプレイ118において提供することができる。たとえば、ユーザ112が環境102の部分104にコンピューティングデバイス110のカメラを向けているとき、グラフィック表現114およびグラフィック表現116は、タッチスクリーンディスプレイ118において提示することができる。グラフィック表現114は、テレビ108の少なくとも一部を特徴付けるか、さもなければ描写する、カメラによってキャプチャされた1つまたは複数の画像、画像データ、および/または画像のストリームに対応することができる。グラフィック表現116は、第1の制御可能なデバイス106の少なくとも一部を特徴付けるか、さもなければ描写する、カメラによってキャプチャされた1つまたは複数の画像、画像データ、および/または画像のストリームに対応することができる。
【0033】
ユーザ112が環境102の部分104にコンピューティングデバイス110のカメラを向けているとき、コンピューティングデバイス110は、オブジェクトが環境102内のどこに位置しているか、および/または環境102の部分104のグラフィック表現を識別するために、カメラの出力(たとえば、画像データ)を処理させることができる。さらに、または代替的に、カメラの出力は、環境102内で識別されたオブジェクトおよび/または環境102の部分104のグラフィック表現を分類するために処理することができる。たとえば、カメラの出力および/またはカメラの出力に基づく1つまたは複数の画像を、機械学習モデルへの入力として適用することができる。機械学習モデルは、埋込みスペースにマッピングすることができる1つまたは複数の値を出力として生成することができる。埋込みスペースは、特定のオブジェクトを分類するための機械学習モデルをトレーニングするために、カメラによってキャプチャされた1つまたは複数の画像に従って事前に生成することができる。1つまたは複数の値(たとえば、ベクトル)が埋込みスペースにマッピングされている場合、1つまたは複数のマッピングされた値と埋込みスペース内の1つまたは複数の位置との間の距離を測定することができる。埋込みスペース内の各位置は、特定のオブジェクトの分類に対応することができ、したがって、値のマッピング(たとえば、ベクトル)が任意の他のどの位置よりも埋込みスペース内の1つの位置に近い場合、画像内で識別されたオブジェクトは、最も近い位置に対応するオブジェクトとして分類することができる。
【0034】
いくつかの実装形態では、画像内の特定のオブジェクトをどのように分類するかを決定するために、マッピングからオブジェクト分類に対応する位置までの2つ以上の距離間の差に対応するメトリックを決定し、他のメトリックと比較することができる。いくつかの実装形態では、2つ以上のメトリックが相互のしきい値許容範囲内にある場合、2つ以上のメトリック間の「結びつき」を解消し、特定のオブジェクト分類に従って画像内のオブジェクトを最終的に分類するために、コンテキストデータを使用することができる。たとえば、コンテキストデータは、ユーザ112が環境102の部分104にカメラを向けていたときの、コンピューティングデバイス110の1つまたは複数のセンサからのデータを含むことができる。そのようなデータは、信号強度、方向、傾き、輝度、高度、温度、オーディオプロパティ、および/またはオブジェクトのコンテキストに関連付けることができる任意の他のプロパティを特徴付けることができる。
【0035】
オブジェクトが分類されると、次いで、オブジェクトに関連付けられる調整可能な設定を、オブジェクトのアイデンティティまたは分類に基づいて識別することができる。たとえば、ランプは「オン/オフ」の調整可能な設定に関連付けることができ、テレビ108は「チャンネル+/-」の調整可能な設定および「ボリューム+/-」の調整可能な設定に関連付けることができる。分類されたオブジェクトごとの調整可能な設定は、コンピューティングデバイス110に示すことができ、コンピューティングデバイス110は、各調整可能な設定に基づいて、ユーザ112による選択のための選択可能な要素を生成することができる。たとえば、テレビおよびランプが、コンピューティングデバイス110のカメラの出力によって特徴付けられる、および/またはタッチスクリーンディスプレイ118においてグラフィカルに表されるとの決定に応答して、コンピューティングデバイス110は、タッチスクリーンディスプレイ118において第1の選択可能な要素210および第2の選択可能な要素206を提示することができる。ユーザ112は、第1のグラフィカルユーザインターフェース202において提供されるように、第1の制御可能なデバイス106の動作状態を修正する(たとえば、ランプをオフにする)ために、第1の選択可能な要素210の一部を選択するために、ジェスチャ208を提供することができる。同時に、第1の選択可能な要素210は、ユーザ112が環境102の部分104にカメラを向けており、ユーザが第2のグラフィカルユーザインターフェース204として提供されるように、第1の選択可能な要素210を選択していない限り、タッチスクリーンディスプレイ118に留まることができる。いくつかの実装形態では、第2の選択可能な要素206は、ユーザ112がジェスチャ208を提供した後、タッチスクリーンディスプレイ118から取り外すことができるか、または第2の選択可能な要素206は、ユーザ112が環境102の部分104にカメラを向けている限り、タッチスクリーンディスプレイ118に留まることができる。
【0036】
図3は、クライアントデバイスのディスプレイパネルにおいてグラフィカルに表すことができる特定の制御可能なデバイスを制御するための能力をクライアントデバイスに提供するためのシステム300を示している。システム300は、サーバコンピューティングデバイス326および/または制御可能なデバイス336と通信しているクライアントコンピューティングデバイス302を含むことができる。クライアントコンピューティングデバイス302は、第1のクライアントデバイス(たとえば、セルラー電話)、第2のクライアントデバイス(たとえば、スタンドアロンスピーカデバイス)、および/またはサーバコンピューティングデバイス326などのリモートコンピューティングデバイスなどの1つまたは複数のコンピューティングデバイスにおいて提供される自動アシスタントの一部として動作することができる自動アシスタント318を含むことができる。ユーザは、1つまたは複数のアシスタントインターフェース306を介して自動アシスタント318と相互作用することができ、アシスタントインターフェース306は、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供することができる任意の他の装置を含むことができる。たとえば、ユーザは、自動アシスタント318に機能(たとえば、データの提供、周辺デバイスの制御、エージェントへのアクセスなど)を実行させるために、アシスタントインターフェースに口頭、テキスト、および/またはグラフィック入力を提供することによって自動アシスタント318を初期化することができる。自動アシスタント318の少なくとも一部を提供するクライアントコンピューティングデバイス302はディスプレイデバイスを含むことができ、ディスプレイデバイスは、ユーザが、タッチインターフェースを介してクライアントコンピューティングデバイス302のアプリケーションを制御できるようにするためのタッチ入力および/またはジェスチャを受信するためのタッチインターフェースを含むディスプレイパネルであり得る。いくつかの実装形態では、クライアントコンピューティングデバイス302はディスプレイデバイスを欠くことができ、それによって、グラフィカルユーザインターフェース出力を提供すること
なしに、可聴ユーザインターフェース出力を提供する。さらに、クライアントコンピューティングデバイス302は、ユーザから話された自然言語入力を受信するための、マイクロフォンなどのユーザインターフェースを提供することができる。
【0037】
クライアントコンピューティングデバイス302は、インターネットなどのネットワークを介してサーバコンピューティングデバイス326と通信することができる。クライアントコンピューティングデバイス302は、クライアントコンピューティングデバイス302において計算リソースを節約するために、音声処理タスクなどの計算タスクをサーバコンピューティングデバイス326にオフロードすることができる。たとえば、いくつかの実装形態では、サーバコンピューティングデバイス326は、自動アシスタント318をホストすることができ、クライアントコンピューティングデバイス302は、1つまたは複数のアシスタントインターフェース306において受信した入力をサーバコンピューティングデバイス326に送信することができる。しかしながら、いくつかの実装形態では、自動アシスタント318は、クライアントコンピューティングデバイス302においてホストされることができる。様々な実装形態において、自動アシスタント318のすべてまたはすべてより少ない態様を、クライアントコンピューティングデバイス302上で実装することができる。それらの実装形態のいくつかでは、自動アシスタント318の態様は、クライアントコンピューティングデバイス302のローカル自動アシスタントを介して実装され、自動アシスタント318の他の態様を実装するサーバコンピューティングデバイス326とインターフェースする。サーバコンピューティングデバイス326は、任意で、複数のスレッドを介して複数のユーザおよびユーザに関連付けられる自動アシスタントにサービスを提供することができる。自動アシスタント318のすべてまたはすべてより少ない態様が、クライアントコンピューティングデバイス302のローカル自動アシスタントを介して実装される実装形態では、ローカル自動アシスタントは、クライアントコンピューティングデバイス302のオペレーティングシステムとは別個のアプリケーションであってもよく(たとえば、オペレーティングシステムの「上」にインストールされた)、あるいは代替的に、クライアントコンピューティングデバイス302のオペレーティングシステムによって直接実装されてもよい(たとえば、オペレーティングシステムのアプリケーションと見なされるが、オペレーティングシステムと統合されている)。
【0038】
いくつかの実装形態では、クライアントコンピューティングデバイス302は、オーディオデータに具体化されたテキストを識別するために、アシスタントインターフェース306において受信されたオーディオデータを処理することができる音声処理モジュール312を含むことができる。オーディオデータをテキストに変換するためのプロセスは、ニューラルネットワーク、word2vecアルゴリズム、および/あるいは単語またはフレーズに対応するオーディオデータのグループを識別するための統計モデルを採用することができる音声認識アルゴリズムを含むことができる。オーディオデータから変換されたテキストは、データ解析モジュール314によって解析され、ユーザからのコマンドフレーズを生成および/または識別するために使用され得るテキストデータとして自動アシスタント318に利用可能にされ得る。いくつかの実装形態では、データ解析モジュールによって提供される出力データは、ユーザが、自動アシスタントによって実行できる特定のアクション、および/または自動アシスタントによってアクセスできるアプリケーションまたはエージェントに対応する入力を提供したかどうかを決定するために、パラメータエンジン316に提供することができる。たとえば、アシスタントデータ322は、クライアントコンピューティングデバイス302において記憶することができ、自動アシスタント318によって実行することができる1つまたは複数のアクション、ならびにアクションを実行するために必要なパラメータを定義するデータを含むことができる。入力処理エンジン310は、ユーザが特定のアクションの実行を要求したことを決定することができ、パラメータエンジン316は、特定のアクションのための1つまたは複数のパラメータを決定することができ、出力生成エンジン320は、特定のアクションおよび/または1つまたは複数のパラメータに基づいてユーザに出力を提供することができる。たとえば、いくつかの実装形態では、クライアントコンピューティングデバイス302のタッチスクリーンディスプレイに提供されるジェスチャなどのユーザ入力に応答して、自動アシスタント318は、本明細書で説明されるいくつかの実装形態に従って、コマンドを制御可能なデバイス336に送信させることができる。
【0039】
いくつかの実装形態では、制御可能なデバイス336を制御するためのクライアントコンピューティングデバイス302の能力は、制御可能なデバイス336を識別し、および/または画像データ324から制御可能なデバイス336を分類することができる機械学習モデルをトレーニングすることに依存することができる。機械学習モデルは、1つまたは複数のカメラによって以前にキャプチャされた画像、および/あるいは1つまたは複数のコンピューティングデバイスの1つまたは複数のセンサによって提供される他のデータを使用してトレーニングすることができる。たとえば、ユーザが制御可能なデバイスを取得して制御可能なデバイスを構成しようとすると、ユーザは自動アシスタントを呼び出してヘルプを求めることができる。ユーザは、自動アシスタントインターフェース306に「アシスタント、私のデバイスを構成するのを手伝ってください」などの、発話を提供することができる。それに応答して、自動アシスタント318は、「OK、デバイスの写真を撮ってください」または「OK、さまざまな観点から、あなたのカメラをデバイスに向けてください」などの自然言語出力を提供することができる。その後、自動アシスタント318は、たとえば、ユーザのクライアントデバイスのカメラを介して、ユーザによって提供された任意の画像を、オブジェクトが画像内のどこにあるかを指定するためのオブジェクト検出プロセスに従って処理させることができる。その後、各画像は、オブジェクト分類プロセスに従って処理することができる。最初に、オブジェクト分類プロセスは、ユーザおよび/またはデバイスの製造業者によって明示的に提供されたデバイスデータに基づくことができる。たとえば、構成前にデバイスがクライアントコンピューティングデバイス302に接続されたことがない場合、自動アシスタント318は、UPC、バーコード、および/またはデバイスまたはデバイスのパッケージ上に位置するその他の識別ラベルをスキャンするために自分のカメラ(たとえば、クライアントコンピューティングデバイス302のカメラ)を使用するようにユーザに要求することができる。スキャンからの結果の画像を使用して、自動アシスタント318は、デバイスのアイデンティティ、および/あるいはデバイスに対応する任意の他の特性または動作データを識別するために、ク
エリを実行することができる。
【0040】
デバイスが識別されると、デバイスのアイデンティティおよび/またはデバイスのカテゴリに対応する埋込みを含めるために、埋込みスペースを生成および/または修正することができる。さらに、埋込みスペース内の埋込みは、ユーザの家またはユーザの家の中の部屋などの環境内のデバイスの他の画像を使用して取得された情報を使用してさらに定義することができる。ユーザが画像をキャプチャするときに取得される他の情報もまた、クライアントコンピューティングデバイスのカメラを介して提供される画像が特定のデバイスを含むかどうかを決定するために使用することができる。たとえば、Wi-Fi信号強度、傾き、方向、温度、高度、移動距離、他の別のカメラからのビュー、時刻、位置、および/またはデバイスに関連付けることができる任意の他のデータなどの情報は、制御可能なデバイスの埋め込みスペース内に埋込みを開発するために使用できるコンテキストデータによって特徴付けることができる。
【0041】
いくつかの実装形態では、サーバコンピューティングデバイス326からアクセス可能なオブジェクト検出エンジン332および/またはオブジェクト分類エンジン334は、埋込みスペースにアクセスすることができる。オブジェクト検出エンジン332およびオブジェクト分類エンジン334は、機械学習モデルからの出力のインスタンスを埋込みスペースの候補の埋込みと比較するために、1つまたは複数の埋込みスペースにアクセスすることができる。各候補の埋込みは、異なる制御可能なデバイスに対応することができる。
【0042】
いくつかの実装形態では、オブジェクト分類エンジン334は、クライアントコンピューティングデバイス302のカメラの出力に基づいて生成された画像データ324を、入力として機械学習モデルに適用することができる。画像を機械学習モデルに適用することに基づいて生成された出力のインスタンスは、出力のインスタンスが最も近い候補の埋込みを決定するために、埋込みスペースにマッピングすることができる。いくつかの実装形態では、出力のインスタンスは、埋込みスペースにマッピングすることができるベクトルであり得、埋込みスペース内の候補の埋込みからのベクトルの距離は、画像データ324が、候補の埋込みに対応する制御可能なデバイスの少なくとも一部の画像を特徴付けるデータを含むかどうかを示すことができる。この距離(すなわち、メトリック)は、候補の埋込みごとに生成することができ、画像データ324からマッピングされた出力のインスタンスから最短距離を有する候補の埋込みを識別するために、各距離を比較することができる。
【0043】
いくつかの実装形態では、サーバコンピューティングデバイス326は、ユーザに対応する特定のアカウントに対して生成された埋込みスペース、および/または複数のユーザに対応する複数のアカウントに対して生成された埋込みスペースを記憶および/またはアクセスすることができる。たとえば、埋込みスペースは、ユーザおよび/またはユーザのアカウントに関連付けられる1つまたは複数のデバイスによって提供される画像および他のデバイス情報に基づいて生成することができる。このようにして、埋込みスペースは、そのユーザが以前に位置していた環境の周りに配置された特定のデバイスを認識するように適合することができる。
【0044】
機械学習モデルがトレーニングされ、埋込みスペースが生成されると、ユーザは、制御可能なデバイス336を制御するためのインターフェースを設けるために、1つまたは複数のセンサ308(たとえば、カメラ)を特定の制御可能なデバイス336に向けることができる。カメラなどのセンサ308は、クライアントコンピューティングデバイス302においてセンサデータ304として記憶することができる出力を提供することができる。センサデータ304は、1つまたは複数のプロセッサおよびクライアントコンピューティングデバイス302のメモリを使用して、画像データ324に変換することができる。次いで、画像データ324は、画像データ324がオブジェクト検出エンジン332およびオブジェクト分類エンジン334によって処理されるために、インターネットなどのネットワークを介してサーバコンピューティングデバイス326に渡すことができる。制御可能なデバイス336のグラフィック表現が画像データ324内に位置付けされ、制御可能なデバイス336が分類および/または他の方法で識別された場合、サーバコンピューティングデバイス326は、制御可能なデバイス336に関連付けられる動作データ330を識別することができる。たとえば、制御可能なデバイス336がランプである場合、ランプに対応するデバイスの動作データ330は、ランプの異なるモード(たとえば、オン、オフ、低輝度、高輝度など)、および/またはランプの動作上のステータス(たとえば、現在オン)を特徴付けることができる。
【0045】
識別された制御可能なデバイス336に関連付けられるそのような動作データ330は、クライアントコンピューティングデバイス302に送り返すことができ、クライアントコンピューティングデバイス302は、デバイスの動作データ330に少なくとも部分的に基づくインターフェースを生成することができる。たとえば、クライアントコンピューティングデバイス302は、タッチスクリーンディスプレイ118に、制御可能なデバイス336のグラフィック表現を提供しているタッチスクリーンディスプレイ118の一部における入力ジェスチャを受容させることができる。制御可能なデバイス336の調整可能な設定338を修正させるために、タップなどの入力ジェスチャをタッチスクリーンディスプレイの一部において受信することができる。調整可能な設定338は、たとえば、制御可能なデバイス336の「オン」設定であり得、これは、タッチスクリーンディスプレイにおいて受信されたジェスチャに応答して「オフ」になるように修正され得る。いくつかの実装形態では、タッチスクリーンディスプレイが制御可能なデバイス336をグラフィカルに表している間に、クライアントコンピューティングデバイス302のタッチスクリーンディスプレイにおいてジェスチャが受信される場合、コマンドは、制御可能なデバイス336および/またはサーバコンピューティングデバイス326に直接送信することができる。ジェスチャによってコマンドが制御可能なデバイス336に直接送信される実装形態では、制御可能なデバイス336の制御モジュール340はコマンドを受信し、コマンドに対応する調整可能な設定338を調整させることができる。したがって、制御可能なデバイス336は、コマンドを遂行するために制御可能なデバイス336の動作ステータスをどのように調整するかを決定するためにコマンドを処理することができる。ジェスチャがコマンドをサーバコンピューティングデバイス326に提供させる実装形態では、サーバコンピューティングデバイス326は、コマンドを受信し、ユーザが採用しようと意図しているコマンドを決定するためにデバイスコマンドライブラリ328にアクセスすることができる。その後、サーバコンピューティングデバイス326は、決定されたコマンドに従って制御可能なデバイス336の調整可能な設定を修正するために、制御可
能なデバイス336にコマンドを提供することができる。さらに、デバイスの動作データ330によって特徴付けられる動作ステータスは、制御可能なデバイス336の調整可能な設定338への修正を反映するように更新することができる。さらに、または代替的に、制御可能なデバイス336の動作ステータスをクライアントコンピューティングデバイス302に示すために、制御可能なデバイス336の調整可能な設定の調整に応答して、制御可能なデバイス336は、クライアントコンピューティングデバイス302と通信することができる。
【0046】
いくつかの実装形態では、制御可能なデバイス336の調整可能な設定338を修正するために、クライアントコンピューティングデバイス302のタッチスクリーンディスプレイにおいて1つまたは複数の異なるタイプのジェスチャを受信することができる。たとえば、制御可能なデバイス336がスピーカを含む場合、調整可能な設定338は、ボリューム設定であり得、ボリュームを制御するために使用され得るジェスチャのタイプは、2次元ジェスチャ(たとえば、タッチスクリーンディスプレイをスワイプする)または3次元ジェスチャ(たとえば、タッチスクリーンディスプレイ上で2本の指を回転させる)であり得る。
【0047】
図4Aおよび図4Bは、それぞれ、コンピューティングデバイス408のカメラを使用して制御可能なデバイス404をセットアップするユーザ406の斜視図400および斜視図402を示している。通常、ユーザは、たとえば自宅内での動作用にデバイスを構成するために、自分のデバイスと直接相互作用する必要がある。しかしながら、本明細書で説明されるいくつかの実装形態によれば、ユーザ406は、自分のコンピューティングデバイス408のカメラ、および任意で自動アシスタントを使用して、自分のデバイスを構成することができる。ユーザ406は、最初に、「アシスタント、私の新しいデバイスをセットアップしてください」などの発話410を提供することによって、アシスタントが自分の制御可能なデバイス404を構成することを望むことを自動アシスタントに示すことができる。発話410は、コンピューティングデバイス408のマイクロフォンなどの自動アシスタントインターフェースにおいて受信することができ、それに応答して、自動アシスタントは、「OK、カメラをデバイスに向けてください」などの自然言語出力412を提供することができる。
【0048】
ユーザ406は、図4Bに示されるように、コンピューティングデバイス408のカメラを制御可能なデバイス404に向けることができる。具体的には、ユーザ406は、自宅の中の環境414にカメラを向けることができ、環境414の部分416は、カメラの出力に基づいて生成される画像データによって特徴付けることができる。次いで、1つまたは複数のオブジェクトが画像データによって特徴付けられるかどうかを識別し、もしそうであれば、画像データによって特徴付けられるオブジェクトごとの分類を識別するために、画像データを処理することができる。分類は、制御可能なデバイスのアイデンティティを示すことができ、それによって、制御可能なデバイス404に関連付けられる動作データを決定することができる。次いで、自動アシスタントは、ユーザ406の家の中で制御可能なデバイス404を構成するために動作データを使用することができ、その結果、ユーザ406はその後、本明細書で説明される実装形態に従って、コンピューティングデバイス408のタッチスクリーンディスプレイを介して制御可能なデバイス404を制御することができる。
【0049】
図5は、タッチスクリーンディスプレイが制御可能なデバイスのリアルタイムのグラフィック表現を提供しているときに、タッチスクリーンディスプレイを使用して制御可能なデバイスの調整可能な設定を修正するための方法500を示している。方法500は、1つまたは複数のデバイス、アプリケーション、および/または電子デバイスと相互作用することができる任意の他の装置またはモジュールによって実行することができる。方法500は、環境内の制御可能なデバイスの位置を特徴付ける画像データを受信する動作502を含むことができる。画像データは、セルラー電話などのポータブルクライアントデバイスによって送信することができ、ポータブルクライアントデバイスのカメラの出力に基づくことができる。ユーザの家などの環境は、同じおよび/または異なる制御可能なデバイスの複数を含むことができる。ユーザが、複数有している特定の制御可能なデバイスを制御しようと試みると、問題が発生する可能性がある。たとえば、ユーザは同じアシスタントデバイス(たとえば、自動アシスタントへのアクセスを提供するコンピューティングデバイス)を複数有することができるため、特定のアシスタントデバイスが画像内にキャプチャされると、他のアシスタントデバイスから特定のアシスタントデバイスを識別する際に困難が発生する可能性がある。
【0050】
方法500は、制御可能なデバイスがターゲットの制御可能なデバイスであるという信頼性を特徴付けるメトリックを決定する動作504をさらに含むことができる。具体的には、メトリックは、オブジェクト検出プロセスおよび/またはオブジェクト分類プロセスに従って生成された出力に基づいて決定することができる。複数の候補デバイスに対して複数の異なるメトリックを決定することができるが、他の候補の制御可能なデバイスに割り当てられた他のメトリックと区別される(たとえば、特定の許容範囲より高い、より低い、または範囲外)メトリックが割り当てられた候補の制御可能なデバイスは、ユーザによってターゲットにされた制御可能なデバイスとして識別され得る。たとえば、ユーザが自宅中に複数散在させている特定の制御可能なデバイス(たとえば、スマート電球)を識別するために、受信した画像データを使用することができるが、ユーザが制御するためにターゲットとしている、家の中の特定の制御可能なデバイスを識別するために、画像データおよび/またはポータブルクライアントデバイスにとってアクセス可能な他のデータから決定された他のコンテキストデータを使用することができる。
【0051】
方法500はまた、メトリックは、特定の制御可能なデバイスがターゲットとなる制御可能なデバイスであることを示すかどうかを決定する動作506を含むことができる。メトリックが、特定の制御可能なデバイスがターゲットとなる制御可能なデバイスであることを示さない場合、方法500は、動作508に進むことができる。動作508において、方法500は、クライアントコンピューティングデバイスに関連付けられるコンテキストデータを決定することを含むことができる。コンテキストデータは、画像データを提供したクライアントコンピューティングデバイス、および/またはクライアントコンピューティングデバイスを使用してネットワークに接続することができる任意の他のデバイスから提供することができる。いくつかの実装形態では、コンテキストデータは、クライアントコンピューティングデバイスおよび/または任意の他のデバイスの1つまたは複数のセンサの出力に基づくデータを含むことができる。センサは、マイクロフォン、カメラ、ポジションセンサ、GPS送信機、Bluetooth(登録商標)送信機、温度送信機、水分センサ、および/または電子デバイスに接続することができる任意の他のセンサを含むことができる。
【0052】
方法500は、少なくともコンテキストデータに基づいて別のメトリックを決定する動作510をさらに含むことができる。他のメトリックは、画像データおよびコンテキストデータに基づくことができ、動作504において決定されたメトリックの修正であってもよく、動作504において決定されたメトリックの修正ではない別個のメトリックであってもよい。いくつかの実装形態では、画像データにグラフィカルに表された制御可能なデバイスが、ユーザがターゲットにしようと意図している特定の制御可能なデバイスであるかどうかを決定するために、候補の制御可能なデバイスごとに他の複数のメトリックを決定することができる。方法500は、この決定を行うために動作506に戻ることができ、または候補の制御可能なデバイス間の「結びつき」を解消するために他のコンテキストデータにアクセスすることができる。
【0053】
動作506において、メトリックまたは他のメトリックが、制御可能なデバイスがターゲットとなる制御可能なデバイスであることを示す場合、方法500は、動作512に進むことができる。動作512において、方法500は、ターゲットとなる制御可能なデバイスの調整可能な設定を識別することを含むことができる。具体的には、ターゲットとなる制御可能なデバイスが識別されると、ターゲットとなる制御可能なデバイスの動作特質を決定することができる。たとえば、ターゲットとなる制御可能なデバイスの機能は、自動アシスタントにとってアクセス可能である、ならびに/あるいはターゲットとなる制御可能なデバイスのユーザおよび/または製造業者によって提供されたデータから決定することができる。ターゲットとなる制御可能なデバイスの特定の調整可能な設定を修正するために、これらの機能を使用することができる。たとえば、機能は、ターゲットとなる制御可能なデバイスをオンまたはオフにすることを含むことができ、したがって、ターゲットとなる制御可能なデバイスの調整可能な設定は、「オン/オフ」電力設定であり得る。さらに、または代替的に、機能は、ターゲットとなる制御可能なデバイスの出力の修正を含むことができ、したがって、ターゲットとなる制御可能なデバイスの調整可能な設定は、ボリューム設定、輝度設定、アラーム設定、ロック設定、充電設定、位置設定、アカウント設定、および/または電子デバイスに関連付けることができる任意の他の設定であり得る。
【0054】
方法500はまた、ターゲットとなる制御可能なデバイスの調整可能な設定を特徴付ける制御データを提供する動作514を含むことができる。制御データは、サーバコンピューティングデバイスによってクライアントコンピューティングデバイスに提供することができる。しかしながら、いくつかの実装形態では、クライアントコンピューティングデバイスは、制御可能なデバイスの調整可能な設定を修正するための制御データを決定することができる。次いで、ターゲットとなる制御可能なデバイスを制御するため、および/またはターゲットとなる制御可能なデバイスの1つまたは複数の調整可能な設定を修正するために、ユーザからの1つまたは複数の入力を解釈するためにクライアントコンピューティングデバイスによって制御データを使用することができる。任意で、いくつかの実装形態では、方法500は、制御可能なデバイスの調整可能な設定を修正するためにグラフィカルユーザインターフェースを提供させる動作516を含むことができる。グラフィカルユーザインターフェースは、ユーザがクライアントコンピューティングデバイスのカメラをターゲットとなる制御可能なデバイスに向けているときに、ターゲットとなる制御可能なデバイスのストリーミング画像を含むことができる。グラフィカルユーザインターフェースは、クライアントコンピューティングデバイスによって処理され、コマンドデータに基づいてコマンドに変換され、制御可能なデバイスの1つまたは複数の調整可能な設定を修正するためにターゲットとなる制御可能なデバイスに送信され得る1つまたは複数の異なる入力ジェスチャを受信するように構成することができる。このように、クライアントコンピューティングデバイスは、デバイスのグラフィック表現が実質的に類似しているにもかかわらず、家の中の同じデバイスの複数間を区別するための能力を備えている。
【0055】
図6は、制御可能なデバイスのグラフィック表現がタッチスクリーンディスプレイにおいて提供されるときに、タッチスクリーンディスプレイを介して制御可能なデバイスの調整可能な設定を修正するための方法600を示している。方法600は、1つまたは複数のコンピューティングデバイス、アプリケーション、および/あるいは電子デバイスと相互作用することができる任意の他の装置またはモジュールによって実行することができる。方法600は、グラフィックカメラインターフェースに、ポータブルクライアントデバイスのカメラが向けられる環境のグラフィック表現を提供させる動作602を含むことができる。グラフィック表現は、環境のデジタル表現であり得、デジタル表現は、ポータブルクライアントデバイスのカメラによって出力された画像関連データを使用して生成することができる。
【0056】
方法600は、カメラが環境に向けられたときのカメラの出力に基づいて、環境のグラフィック表現が環境内に配置された制御可能な電子デバイスを描写することを決定する動作604をさらに含むことができる。ポータブルクライアントデバイスは、環境のグラフィック表現が、オブジェクト認識プロセスおよび/またはオブジェクト分類プロセスを、グラフィック表現に対応する画像データに適用させることによって、制御可能な電子デバイスを描写すると決定することができる。いくつかの実装形態では、画像データをトレーニング済みの機械学習モデルに適用することができ、画像データが最も密接に関連または対応する候補の埋込みを決定するために、機械学習モデルの出力のインスタンスを埋込みスペースにマッピングすることができる。最も関連性のある候補の埋込みが識別されると、候補の埋込みに対応する制御可能なデバイスを、ユーザが自分のポータブルクライアントデバイスのカメラでターゲットにしようと意図している制御可能なデバイスとして指定することができる。
【0057】
方法600は、環境のグラフィック表現が制御可能な電子デバイスを描写するとの決定に応答して、制御可能なデバイスの調整可能な設定を決定する動作606をさらに含むことができる。制御可能なデバイスが識別されると、その特定の制御可能なデバイスに関する情報に、ポータブルクライアントデバイスによってアクセスすることができ、制御可能なデバイスの様々な動作特質を、その情報から決定することができる。そのような動作特質は、制御可能なデバイスとは別個のデバイスによって修正することができる1つまたは複数の調整可能な設定を含むことができる。いくつかの実装形態では、調整可能な設定は、制御可能なデバイスの現在の動作に直接関連する設定、および/または制御可能なデバイスの動作に間接的に関連する設定であり得る。制御可能なデバイスの動作に間接的に関連するそのような設定は、制御可能なデバイスに関連付けられるアカウントに対応するユーザ権限、制御可能なデバイスに関連付けられるセキュリティパラメータ、および/またはデバイスに関連付けられ得る任意の他の設定であり得る。
【0058】
方法600はまた、ポータブルクライアントデバイスのタッチスクリーンディスプレイにおいて、制御可能なデバイスを描写しているグラフィックカメラインターフェースの特定の部分における選択を受信する動作608を含むことができる。グラフィックカメラインターフェースの特定の部分は、カメラが制御可能なデバイスに向けられたときのカメラの出力に基づく画像のストリームを描くことができる。ポータブルクライアントデバイスが制御可能なデバイスのアイデンティティを決定するとき、ポータブルクライアントデバイスは、リアルタイムで、制御可能なデバイスを制御するためのユーザから入力ジェスチャを受信するためのグラフィックカメラインターフェースの一部を割り当てることができる。いくつかの実装形態では、制御可能なデバイスは、複数の部分、ボタン、装置、および/または個別に修正または制御することができる任意の他のセクションを含み、ポータブルクライアントデバイスは、グラフィックカメラインターフェースの複数の異なる部分の各部分を、制御可能なデバイスの制御可能な部分のそれぞれの部分に割り当てることができる。このようにして、ユーザは、制御可能なデバイスの特定の部分に対応する調整可能な設定を修正するために、制御可能なデバイスのグラフィック表現の特定の部分に個別のジェスチャを提供することができる。
【0059】
方法600は、グラフィックカメラインターフェースの特定の部分の選択の受信に応答して、制御可能なデバイスの調整可能な設定を修正させる動作610をさらに含むことができる。たとえば、ポータブルクライアントデバイスと制御可能なデバイスは、Bluetooth、LTE、Zigbee、Wi-Fi、有線、および/または2つ以上のデバイス間の任意の他の通信モードなどの通信プロトコルを介して接続することができる。グラフィックカメラインターフェースの特定の部分の選択の受信に応答して、ポータブルクライアントデバイスは、調整可能な設定を修正するために、信号および/またはコマンドを制御可能なデバイスに送信することができる。たとえば、制御可能なデバイスがテレビであり、ポータブルクライアントデバイスがセルラー電話である場合、コマンドは、ポータブルクライアントデバイスにおいて生成され、テレビおよびポータブルクライアントデバイスにとってアクセス可能なWi-Fiネットワークを介してテレビに送信され得る。
【0060】
図7は、例示的なコンピュータシステム710のブロック図700である。コンピュータシステム710は、通常、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスは、たとえば、メモリ725およびファイルストレージサブシステム726、ユーザインターフェース出力デバイス720、ユーザインターフェース入力デバイス722、およびネットワークインターフェースサブシステム716を含む、ストレージサブシステム724を含み得る。入力および出力デバイスは、コンピュータシステム710とのユーザ相互作用を可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、他のコンピュータシステム内の対応するインターフェースデバイスに結合される。
【0061】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォン、および/または他のタイプの入力デバイスなどのオーディオ入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、コンピュータシステム710または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0062】
ユーザインターフェース出力デバイス720は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LDC)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための他の何らかのメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどの非視覚的ディスプレイを提供し得る。概して、「出力デバイス」という用語の使用は、コンピュータシステム710からユーザあるいは別のマシンまたはコンピュータシステムに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0063】
ストレージサブシステム724は、本明細書で説明されるモジュールのいくつかまたはすべての機能性を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム724は、方法500、方法600の選択された態様を実行するための、および/またはコンピューティングデバイス110、クライアントコンピューティングデバイス302、サーバコンピューティングデバイス326、制御可能なデバイス336、コンピューティングデバイス408、制御可能なデバイス404、および/または本明細書で説明される任意の他の用途または装置のうちの1つまたは複数を実装するためのロジックを含み得る。
【0064】
これらのソフトウェアモジュールは、概して、プロセッサ714によって単独で、または他のプロセッサと組み合わせて実行される。ストレージサブシステム724において使用されるメモリ725は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)730、および固定命令が記憶される読取り専用メモリ(ROM)732を含むいくつかのメモリを含むことができる。ファイルストレージサブシステム726は、プログラムおよびデータファイルのための永続的な記憶を提供することができ、ハードディスクドライブ、フロッピーディスクドライブとそれに関連付けられるリムーバブルメディア、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能性を実装するモジュールは、ストレージサブシステム724内のファイルストレージサブシステム726によって、またはプロセッサ714によってアクセス可能な他のマシンに記憶され得る。
【0065】
バスサブシステム712は、コンピュータシステム710の様々なコンポーネントおよびサブシステムを意図するように互いに通信させるためのメカニズムを提供する。バスサブシステム712は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は、複数のバスを使用し得る。
【0066】
コンピュータシステム710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、あるいは任意の他のデータ処理システムまたはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質のために、図7に示されるコンピュータシステム710の説明は、いくつかの実装形態を説明するための特定の例としてのみ意図されている。コンピュータシステム710の他の多くの構成は、図7に示されるコンピュータシステムよりも多いまたは少ないコンポーネントを有することが可能である。
【0067】
本明細書に記載のシステムがユーザ(または、本明細書でしばしば「参加者」と呼ばれる)に関する個人情報を収集する、または個人情報を利用する可能性がある状況では、プログラムまたは特性がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、職業、ユーザの好み、またはユーザの現在の地理的位置に関する情報)を収集するかどうかを制御する、あるいはユーザにより関連性の高い可能性があるコンテンツをコンテンツサーバから受信するかどうかおよび/またはどのように受信するかを制御する機会がユーザに提供される場合がある。また、特定のデータは、個人を識別できる情報は削除されるように、記憶または使用される前に1つまたは複数の方法で処置される場合がある。たとえば、ユーザのアイデンティティを処置して、ユーザの個人を識別できる情報を特定できないようにしたり、地理的位置情報が取得されるところ(都市、郵便番号、州レベルなど)でユーザの地理的位置を一般化したりすることができ、そのため、ユーザの特定の地理的位置を特定することはできない。したがって、ユーザは、ユーザに関する情報がどのように収集されるかおよび/または使用されるかを制御し得る。
【0068】
いくつかの実装形態が本明細書で説明および図示されているが、機能を実行する、ならびに/あるいは結果および/または本明細書で説明される利点のうちの1つまたは複数を取得するための様々な他の手段および/または構造が利用され得、そのような変形および/または修正の各々は、本明細書に記載されている実装形態の範囲内であると見なされる。より一般的には、本明細書に記載のすべてのパラメータ、寸法、材料、および構成は例示を意味し、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の用途に依存する。当業者は、日常的な実験のみを使用して、本明細書に記載の特定の実装形態に相当する多くの同等物を認識し、または確認することができるであろう。したがって、前述の実装形態は単なる例として提示されており、添付の特許請求の範囲およびそれに相当する範囲内で、実装形態は、具体的に説明および請求されている以外の方法で実施され得ることを理解されたい。本開示の実装形態は、本明細書に記載される個別の特性、システム、物品、材料、キット、および/または方法のそれぞれを対象とする。さらに、そのような特性、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合、そのような特性、システム、物品、材料、キット、および/または方法の2つ以上の任意の組合せは、本開示の範囲内に含まれる。
【符号の説明】
【0069】
100 ビュー
102 環境
104 部分
106 第1の制御可能なデバイス
108 テレビ
110 コンピューティングデバイス
112 ユーザ
114 グラフィック表現
116 グラフィック表現
118 タッチスクリーンディスプレイ
120 手
122 ジェスチャ
124 第1のインターフェース
126 第2のインターフェース
200 ビュー
202 第1のグラフィカルユーザインターフェース
204 第2のグラフィカルユーザインターフェース
206 第2の選択可能な要素
208 ジェスチャ
210 第1の選択可能な要素
300 システム
302 クライアントコンピューティングデバイス
304 センサデータ
306 アシスタントインターフェース
308 センサ
310 入力処理エンジン
312 音声処理モジュール
314 データ解析モジュール
316 パラメータエンジン
318 自動アシスタント
320 出力生成エンジン
322 アシスタントデータ
324 画像データ
326 サーバコンピューティングデバイス
328 デバイスコマンドライブラリ
330 動作データ
332 オブジェクト検出エンジン
334 オブジェクト分類エンジン
336 制御可能なデバイス
338 調整可能な設定
340 制御モジュール
400 斜視図
402 斜視図
404 制御可能なデバイス
406 ユーザ
408 コンピューティングデバイス
410 発話
412 自然言語出力
414 環境
416 部分
500 方法
502 動作
504 動作
506 動作
508 動作
510 動作
512 動作
514 動作
516 動作
600 方法
602 動作
604 動作
606 動作
608 動作
610 動作
700 ブロック図
710 コンピュータシステム
712 バスサブシステム
714 プロセッサ
716 ネットワークインターフェースサブシステム
720 ユーザインターフェース出力デバイス
722 ユーザインターフェース入力デバイス
724 ストレージサブシステム
725 メモリ
726 ファイルストレージサブシステム
730 メインランダムアクセスメモリ(RAM)
732 読取り専用メモリ(ROM)
図1
図2
図3
図4A
図4B
図5
図6
図7