以下の詳細な記載は、説明のために多くの特定の詳細を含むが、以下の詳細への多くの変形及び修正は本開示の範囲内にあることを当業者は理解する。従って、以下に記載の本開示の態様は、本記載に続く請求項の一般性を失うことなく、請求項に制限を課すこと無しに記載される。
一般的には、本開示の様々な実施形態は、深層学習(機械学習とも呼ばれる)技術を実施あるいは実装して、ユーザに合わせてパーソナライズされたAIモデルを構築するシステム及び方法を記載する。従って、パーソナルコンパニオンは、AIとして実施され、AIは、ユーザに合わせてパーソナライズされた支援を提供するという目的で、ユーザにコンテクストにおいて関連するとして識別された情報に対して深層学習エンジンを用いて訓練されたモデルを利用する。訓練されたモデルは、AIに対する振る舞い選択戦略の役割を果たすことができる。AIモデルは、可動の自律型パーソナルコンパニオンを通して実施される。AIは、種々のプロプライエタリプラットフォームの下で動作する他のデジタル資産を認識するように、または、それらとデータをやり取りするように構成されてもよい。AIは、モバイルプラットフォーム内に一体化されて、最も良くデータを受信、データを収集、環境を感知、データを送信し、最も良く、環境と他の特徴とを感知及び/またはマッピングするように、環境を自律的に移動できる。ある実施態様においては、自律型パーソナルコンパニオンは、処理のためにバックエンドサーバとインタラクトするように構成可能であり、AIは、ローカルレベルでリクエストを処理できる、または、ローカルレベルでリクエストを前処理し、次に、バックエンドサーバでこれらのリクエストを完全に処理できる。
さらに、本開示の様々な実施形態は、オブジェクト識別の目的でシーンのデータがキャプチャされるモジュール階層視覚システム(modular hierarchical vision system)を提供する。分類器階層は、別個の一般クラスに基づいてオブジェクトを認識するように訓練された根分類器のセットから構成される。各根分類器は、子ノードの木の親ノードの役割を果たし、各子ノードは、根分類器によって表される親オブジェクト分類器のより具体的なバリアントを含む。オブジェクト識別の方法は、段々と具体的になるオブジェクト特徴に基づいてオブジェクトを分類するために、子ノードの木を進行する。システムは、さらに、オブジェクト比較の数を最小限にしながら、システムがシーンの複数のオブジェクトを同時にカテゴリ分けするのを可能とするように設計されたアルゴリズムから構成される。
様々な実施形態の上記一般的な理解と共に、実施形態の詳細な例を様々な図面を参照して以下に記載する。
図1Aは、本開示の実施形態による、対応するAIモデルを通して実施される自律型パーソナルコンパニオンを構築、実施するために使用されるシステム100Aを示す。詳細には、自律型パーソナルコンパニオン100は、デジタルコンパニオンとして、対応するユーザとインタフェースし、例えば、ユーザにサービスを提供するように構成される。さらに、自律型パーソナルコンパニオン100は、ネットワーク150(例えば、インターネット)を通して、バックエンドサーバ(例えば、パーソナルコンパニオンモデラ及びアプリケータ140)にサポートされてもよく、バックエンドサーバは、パーソナライズされたAIモデルを構築、適用するために、人工知能及び/または(例えば、深層機械学習エンジン190を通じた)深層機械学習(あるいはディープラーニング)を提供し、各AIモデルは、各ユーザに対応する。例えば、1つまたは複数のコンパニオン100a~100nは、世界中の1つまたは複数の位置の複数のユーザをサポートするように構成される。
各自律型パーソナルコンパニオン100は、その各ユーザにサービスを提供(例えば、サポート)する複数の能力あるいは機能を備えるように構成される。一般に、コンパニオン100は、ユーザのリクエストによりサービスを提供してもよく、または、(例えば、ユーザのニーズを感知する、または、コンテクストにおいて関連のある行動あるいはアクションを決定する、ランダムに生成するなどして)適切な時に、自律的にユーザにサービスを提供もしくは提案してもよい。例えば、自律型パーソナルコンパニオン100は、様々な操作(例えば、情報の検索、商品及び/またはサービスの購入等)を行うユーザの検索リクエストの処理等、デジタルアシスタンスをユーザに提供するように、ユーザに関連する検索リクエストを自律的に生成するように、コンテクストにおいてユーザに関連するアクション(例えば、食糧庫が空であり、パーティが前夜に開かれたことに気付いた後、電子商取引ベンダを通じたポテトチップスの購入)を自律的に生成するように、ゲームアプリケーションをプレイするユーザのゲーム支援をする(例えば、対応するゲームアプリケーションをナビゲートする助けになる助言及び援助を提供する)ように、また、物理的世界内の三次元(3D)ゲーム空間と他の特徴とを一体にすることによって、ゲームアプリケーションの表示されたゲーム空間を拡張するように、構成されてもよい。
さらに、自律型パーソナルコンパニオン100は、ある期間を通じて、または、複数の期間を通じて、ユーザと会話する、デジタルアシスタンスをユーザに提供する、会話を通してユーザと関係を構築する、及び、ユーザに同行する等、ユーザに交友を提供してもよい。コンパニオン100は、人間または動物コンパニオンが応答するように、ユーザに応答を促してもよい。例えば、コンパニオン100は、コンパニオン100とユーザとの間でカードゲームのプレイ開始を提案してよい、または、ディスプレイ(例えば、コンパニオン100からリモートの固定のディスプレイ、または、コンパニオン100と一体のティスプレイ)のデジタルコンテンツを視聴することを提案してよい、または、ゲームコントローラを介して、ゲームアプリケーションをプレイするようにユーザに促してもよい。
自律型パーソナルコンパニオン100によって行われるアクションの少なくとも一部は、コンテクストにおいてユーザに関連する。すなわち、コンパニオン100は、ユーザが現在いる環境をコンテクストに沿って認識し、ユーザにパーソナルなAIモデルを構築及び/またはアクセスできるので、コンパニオン100によって生成されたアクションは、ユーザが体験しているコンテクストに合わせることができる。例えば、ユーザが、一般的と思われるリクエスト(例えば、「昨夜のスコアはどうでしたか?」)をすると、ユーザと現在の日付のAIモデルに基づいて、コンパニオン100は、そのリクエストに対する現在のコンテクストを判断して、適切で関連した応答「ウォリアーズは101-97で勝利」と答える。AIモデルは、ユーザが、ウォリアーズのファンで、全米プロバスケットボール協会のゴールデンステート・ウォリアーズのゲームのみを常に追っていると規定するので、応答は、コンテクストにおいて関連している。さらに、AIモデルは、プレイオフ中の4月にユーザをNBAファンで、他のスポーツのスコアには関心が無い人と規定もしているので、応答は、ユーザとコンテクストにおいて関連している。現在の日付が4月なので、昨夜のウォリアーズのスコアは、コンパニオン100によってインターネットから検索できる。
図1Aに示すように、多くのパーソナルコンパニオン100a~100nは、ユーザの各デジタルコンパニオンとして、対応するユーザとインタフェースするように構成される。簡潔、明瞭にするために、コンパニオン100aを記載する。この記載は、コンパニオン100a~100nが備える特徴を表す。詳細には、各コンパニオンは、可動のロボット105内で実施され、ロボットは、任意の適切なフォームファクタを採用してもよい。各コンパニオンは、人工知能110を通してサポートされ、人工知能110は、ロボット105にローカルに、及び、バックエンドサーバ140の両方に分散してもよい。一実施形態においては、AI110は、対応するユーザにサービスを部分的に提供するために使用されるローカルAIモデル120aの一部として構成される。AI110を用いて学習されるこの情報は、収集及び/または学習される情報の種類に応じて、ローカルAI120aを構築するタスクが与えられ得るバックエンドサーバ140と共有されてもよく、共有されなくてもよい。例えば、機密情報は、ローカルで処理されて、ローカルAIモデル120aを構築してよいが、バックエンドサーバ140と共有されなくてもよい。
さらに、コンパニオン100aのAI110は、ローカルAIモデルのバージョン120aを含み、モデル120aは、対応するユーザにパーソナルであり、AI110は、AIモデル120aを実施するように構成される。詳細には、「ローカルAIモデル」という用語は、AIモデルが特定または局所的なユーザに対応することを示して使用される。ロボット105のフォームファクタ内に記憶されたローカルAIモデル120aは、AIモデルの完全バージョンであってよい、または、AIモデルの完全バージョンと共に使用可能な能力の何らかのサブセットを自律的に提供するベースモデルであってよい。AIモデルの完全バージョンは、また、AIモデリング及びアプリケーションを提供するバックエンドサーバ140によって記憶され、アクセス可能である。従って、コンパニオン100aは、バックエンドサーバ140と独立して機能して(ローカルAIモデルの完全バージョンがロボット105に記憶される場合)能力の完全なセットを提供してもよく、(ローカルAIモデルの完全ではないバージョンがロボット105に記憶される場合)能力の限定的なセットを提供してもよい。他方、コンパニオン100aは、バックエンドサーバ140と協力して機能して、ローカルAIモデル120aによって提供される能力の完全なセットを提供してもよい。例えば、ロボット105のローカルAIモデル120aは、バックエンドサーバ140のローカルAIモデル120aと協力して働き(例えば、データを前処理してもよく)、バックエンドサーバ140のローカルAIモデル120aは、AI処理の大半を行うようにより良く(より速く、より多くのリソースで)構成される。
図1Aに示すように、ローカルデータ115aは、ロボット105等、コンパニオン100aによって収集される。ローカルデータ115aは、ロボット105に記憶されているAI能力を用いてローカルAIモデル120aの構築を補助するように、ロボット105のAI110によって使用され得る。さらに、ローカルデータ115aは、バックエンドサーバ140のパーソナルコンパニオンモデラ及びアプリケータに送られて、(例えば、最近傍ベースのタグ付け及びシナリオ選択アルゴリズムを実施する)機械学習エンジン190のAI能力を用いてローカルAIモデル120aを構築してもよい。図に示すように、1つまたは複数のローカルAIモデル120a~120nは、1人または複数のユーザをサポートするために、バックエンドサーバ140で生成、記憶される。
コンパニオン100a~100nのそれぞれに関するローカルデータ115は、バックエンドサーバのパーソナルコンパニオンモデラ及びアプリケータに送られるので、各ローカルデータは、集約されてグローバルAIモデル130を生成してもよい。集約されたローカルデータは、グローバルデータ135として記憶されてもよい。
図1Bは、本開示の一実施形態による、パーソナルコンパニオンモデラ及びアプリケータ140のニューラルネットワークベースの学習エンジン190によって実施される訓練あるいはトレーニングを通じて、対応するユーザのローカルAIモデルの構築に使用されるニューラルネットワークの例を示す。一実施形態においては、深層学習エンジン190は、タグ識別を行ってユーザの振る舞いを分類するように実施されてもよい。詳細には、図1Aのシステム100Aのモデラ及びアプリケータ140は、ユーザの振る舞いパターンを識別するように、また、自律型パーソナルコンパニオン100がユーザにサービスを提供する時に有用で適切であり得るこれらのパターンにタグ付けするように構成される。さらに、ニューラルネットワークは、一実施形態において、コンパニオン100のAI110内で実施されてもよい。結果として生じるユーザのローカルAIモデル120は、ユーザの(コンテクストを提供する)及びユーザに関連する振る舞い、バイオメトリクス、アクション、感情、期待、望み、好み、欲求、ニーズ、及び、環境を部分的に規定する。パーソナルコンパニオンモデラ及びアプリケータ140は、詳細には、自律型パーソナルコンパニオン101a~101nのそれぞれに直接またはネットワーク(例えば、ローカルネットワーク、インターネット等)を通して結合されたバックエンドサーバコンピュータデバイスを含む、任意のコンピュータデバイスであってよい。
具体的には、モデラ140の機械学習エンジン190は、ユーザに関するローカルデータ115を分析するように構成され、ローカルデータ115は、一部、自律型パーソナルコンパニオン100によって収集される。ローカルデータ115は、ユーザ(例えば、コントローラ入力、リクエスト、アクション、振る舞い、応答等)と、ユーザの環境とを監視することに関連して収集される。以下に記載するように、コンパニオン100は、データ収集のために監視及び/またはリクエストを行う様々な特徴(例えば、カメラ、能動アクチュエータ、受動センサ、コントローラ、マウス、スキャナ等)を有するように構成される。基本的に、ユーザに関連付けられた任意の関連情報は、部分的に、ユーザを規定し、ユーザが存在するコンテクストを理解し、様々な条件及び/または刺激に対して、ユーザがどのように感じ、それに対してどのようにアクションまたは応答するかを予測するために、収集、使用されてもよい。従って、深層学習エンジン190は、対応するローカルAIモデル120がユーザに最適のサービスを提供できるようにユーザに関する情報を分類でき、サービスは、ユーザによる最小の入力で提供される。例えば、AIモデル120は、ユーザが行ったリクエストを理解し、ユーザが何を必要とし、何を欲するかを予測し、これらのリクエスト及び予測を満たすサービスを提供するために、(例えば、深層学習エンジン190の実施を通して)使用できる。
他の実施形態においては、ローカルデータ115に加えて、他のデータ(例えば、グローバルデータ135)は、任意で、複数のパーソナルコンパニオン100a~100nによって利用及び/または収集されてもよく、対応するユーザのローカルAIモデル120の構築に使用されてもよい。基本的に、グローバルデータ135は、ユーザ全てに関して収集されたローカルデータ115の集約である。詳細には、一部のデータは、一般的であってよく、全てのユーザ、または、ユーザの(様々なサイズの)少なくともあるサブセットに対する全てのAIモデルを構築する時、使用するのに適していてもよい。さらに、グローバルデータ135を使用して、任意のユーザによって一般的に使用され得るグローバルAIモデル130を構築してもよい。さらに、グローバルデータ135を使用して、様々なグローバルAIモデルを構築してもよく、各AIモデルは、(例えば、デモグラフィックスあるいは人口統計、地域、音楽の好み、学校教育等を通してグループ化された)特定のユーザグループを対象とする。
従って、ローカルデータ115と、グローバルデータ135の一部とが、機械学習ベースのエンジン190に供給される。このエンジン190は、教師付き学習アルゴリズム、強化学習、または、他の人工知能ベースのアルゴリズムを含む人工知能を利用して、対応するユーザのローカルAIモデル120を構築する。
このようにして、学習及び/またはモデリング段階中、深層学習エンジン190はデータを使用して、入力データセットを所与として、所与のユーザの反応、アクション、欲求、及び/または、ニーズを予測する。これらの反応、アクション、欲求、及び/または、ニーズは、一般的に、ユーザの振る舞いとして分類されてもよく、従って、AIモデル120を使用して、ある入力データを所与として、対応するユーザの振る舞いを一般的に識別及び/または分類でき、また、適切な応答をAIに提供(例えば、パーソナルコンパニオンを通して実施されるAIの表面的な振る舞いを決定)できる。例えば、入力データは、ユーザによる特定のリクエストであってよく、AIモデル120を使用して、応答を生成し、応答は、自律型パーソナルコンパニオン100によって提供されるサービスに関連する。さらに、入力データは、環境データの集まりであってよく、環境データは、どの指示されたユーザ入力またはリクエストにも関係なく、応答の対象のユーザの反応、アクション、欲求、及び/または、ニーズの予測に使用されてもよい。例えば、AIモデル120を使用して、ユーザが何のサービスを欲し及び/または必要としているかを、ユーザが明示的にリクエストを伝える必要無く、予測してもよい。
経時的に、AIモデル120は、ユーザの振る舞いを識別及び/または分類でき、入力データの近似セットに応答して、AIモデルを適用して、ユーザの振る舞い、アクション、応答、欲求、及び/または、ニーズを予測できる。例えば、タグ識別及びシナリオ選択を使用して、ユーザの振る舞いをタグとして識別及び分類してもよく、ユーザの欲求及び/またはニーズを予測し、その欲求及び/またはニーズに応えてサービスを提供するAI応答を提供してもよい。例えば、前述の例において、ユーザは、4月のNBAスコアにのみ関心があり、従って、試合のスポーツスコアの任意のリクエストを使用して、ユーザの欲求とニーズを予測することは、ユーザはゴールデンステート・ウォリアーズのファンであることと、4月には、ユーザはウォリアーズがプレイする試合のスコアにのみ関心を持っていることを理解することを含み、この全ては、ウォリアーズがプレイした最新の試合のスコアを有する(例えば、AIモデル120を通して実施される)応答につながる。他の例は、AIモデル120の構築の記述に有用である。例えば、AIモデル120を使用して、ユーザの一定のバイオメトリクスを規定できる。あるケースでは、パーソナルコンパニオンが、近付く人の足音を感知及び追跡できるように、ユーザの歩行を規定でき、ユーザの歩行は、それが、AIモデル120に関連付けられた対応するユーザであると決定できる。AIモデル120を使用して、5:00pmに、ユーザは典型的に帰宅し、座ってデジタルコンテンツを見ると決定できる。従って、パーソナルコンパニオン100は、最近、ユーザが関心を持っているコンテンツ(例えば、医療ドラマのビンジウォッチングをする、つまり、一気に見る)を、既にプレイしている、または、コンパニオン100へのユーザのリクエストでプレイするディスプレイにアップロードできる。
ニューラルネットワーク190は、データセットを分析して、対応するユーザの応答、アクション、振る舞い、欲求、及び/または、ニーズを決定するための自動分析ツールの例を表す。異なる種類のニューラルネットワーク190が可能である。ある例において、ニューラルネットワーク190は、深層学習エンジン190によって実施され得る深層学習をサポートする。従って、教師付きまたは教師無し訓練を用いた深層ニューラルネットワーク、畳み込み深層ニューラルネットワーク、及び/または、リカレントニューラルネットワークを実施できる。他の例においては、ニューラルネットワーク190は、強化学習をサポートする深層学習ネットワークを含む。例えば、ニューラルネットワーク190は、強化学習アルゴリズムをサポートするマルコフ決定過程(MDP)として設定される。
一般的に、ニューラルネットワーク190は、人工ニューラルネットワーク等、相互接続されたノードのネットワークを表す。各ノードは、データから情報を学習する。知識は、相互接続を通してノード間でやりとりできる。ニューラルネットワーク190への入力によって、ノードのセットを起動する。次に、このノードのセットが、他のノードを起動し、それによって、入力に関する知識を伝える。この起動プロセスは、出力が行われるまで他のノードにわたって繰り返される。
図に示すように、ニューラルネットワーク190は、ノードの階層(hierarchy of nodes)を含む。最下位の階層レベル(hierarchy level)に、入力層191が存在する。入力層191は、入力ノードのセットを含む。例えば、これらの入力ノードは、それぞれ、ユーザとユーザに関連付けられた環境との自律型パーソナルコンパニオン100による監視及び/またはクエリ中に、アクチュエータによって能動的に、または、センサによって受動的に収集されたローカルデータ115にマッピングされる。
最上位の階層レベルに、出力層193が存在する。出力層193は、出力ノードのセットを含む。出力ノードは、例えば、ローカルAIモデル120の1つまたは複数の構成要素に関連する決定(例えば、予測)を表す。前述のように、出力ノードは、所与の入力のセットに対して、ユーザの予測または期待される応答、アクション、振る舞い、欲求、及び/または、ニーズを識別してもよく、入力は、様々なシナリオ(例えば、直接のリクエスト、時刻、振る舞いの様々なパターン等)を規定してもよい。これらの結果は、深層学習エンジン190によって使用されるパラメータを精緻化及び/または修正して、所与の入力セットに対するユーザの適切な予測または期待される応答、アクション、振る舞い、欲求、及び/または、ニーズを反復的に決定するために、以前のインタラクションとユーザ及び/または環境の監視とから取得した所定の真の結果と比較できる。すなわち、パラメータを精緻化する時、ニューラルネットワーク190のノードは、このような決定を行うために使用できるAIモデル120のパラメータを学習する。
詳細には、隠れ層192が、入力層191と出力層193の間に存在する。隠れ層192は、「N」個の隠れ層を含み、「N」は、1以上の整数である。次に、各隠れ層は、隠れノードのセットも含む。入力ノードは、隠れノードに相互に接続される。同様に、隠れノードは、出力ノードに相互に接続されることによって、入力ノードは、出力ノードに直接は相互接続されない。複数の隠れ層が存在する場合、入力ノードは、最下位の隠れ層の隠れノードに相互接続される。そして、これらの隠れノードは、次の隠れ層の隠れノードやその他諸々に相互接続されていく。次の最上位の隠れ層の隠れノードは、出力ノードに相互接続される。相互接続は、2つのノードを接続する。相互接続は、学習できる数値による重みを有し、入力に適合した、学習できるニューラルネットワーク190をレンダリングする。
一般に、隠れ層192は、入力ノードに関する知識を出力ノードに対応する全てのタスク間で共有するのを可能にする。そうするために、一実施態様においては、変換fが、隠れ層192を通して入力ノードに適用される。ある例において、変換fは、非線形である。例えば、線形の整流関数f(x)=max(0,x)を含む、種々の非線形変換fが利用可能である。
ニューラルネットワーク190は、費用関数cも使用して、最適解を見つける。費用関数は、所与の入力xに対してf(x)として規定されたニューラルネットワーク190によって出力される予測と、グラウンドトゥルースまたは目標値y(例えば、期待した結果)との間のずれを測定する。最適解は、最適解の費用より低い費用あるいはコストを有する解が無い状況を表す。費用関数あるいはコスト関数の例は、このようなグラウンドトゥルースラベルが利用可能なデータに関する予測とグラウンドトゥルース(ground truth)の間の平均二乗誤差である。学習プロセスの間、ニューラルネットワーク190は、逆伝搬アルゴリズムを使用して費用関数を最小にするモデルパラメータ(例えば、隠れ層192のノード間の相互接続の重み)を学習する種々の最適化方法を採用できる。このような最適化方法の例は、確率的勾配降下法である。
ある例において、ニューラルネットワーク190の訓練データセットは、同じデータドメインからであってよい。例えば、ニューラルネットワーク190は、所与の入力セットまたは入力データに対して、ユーザの予測または期待される応答、アクション、振る舞い、欲求、及び/または、ニーズを学習するために訓練される。この説明においては、データドメインは、ユーザのベースライン入力データとのインタラクションのために収集されたセッションデータを含む。他の例においては、訓練データセットは、ベースライン以外の入力データを含む種々のデータドメインからである。
従って、ニューラルネットワーク190は、所与の入力セットに対して、ユーザの期待された応答、アクション、振る舞いあるいはビヘイビア(behavior)、欲求、及び/または、ニーズを識別してもよい。これらの予測結果に基づいて、ニューラルネットワーク190は、(例えば、環境及びユーザの)コンテクストにおいて認識されるサービスを対応するユーザに提供するために使用されるAIモデル120も規定してもよい。
図2は、本開示の一実施形態による、対応するユーザのローカルAIモデル120を通して実施される自律型パーソナルコンパニオン100をサポートするシステム200を示す。パーソナルコンパニオン100は、ローカルAIモデル120に基づいて、ユーザにサービスを提供するように構成され、ローカルAIモデル120は、ユーザの振る舞いのパターンの識別を通して、ユーザの応答、アクション、振る舞い、欲求、及び/または、ニーズ等を予測できる。ユーザの振る舞いのパターンは、タグに分類されて、シナリオの選択に使用されてもよく、シナリオを考慮して、ユーザの欲求及び/またはニーズを予測し、ユーザの欲求及び/またはニーズに応答してサービスを提供するAI応答の提供に使用されてもよい。
前述のように、パーソナルコンパニオン100は、バックエンドサーバ140とは独立して、または、バックエンドサーバ140と共に働いてよく、バックエンドサーバ140は、ローカルAIモデル120のモデリングと、ローカルAIモデルの適用とを行う。詳細には、バックエンドサーバ140は、前述の深層学習エンジン190を含み、深層学習エンジン190は、対応するユーザをサポートし、対応するユーザにサービスを提供するローカルAIモデル120を構築及び適用するために、(例えば、ユーザによって駆動または体験された所与のシナリオを規定する)任意の所与の入力セットに対して、ユーザの応答、アクション、振る舞い、欲求、及び/または、ニーズを部分的に学習及び/またはモデリングするように構成される。詳細には、ローカルAIモデルビルダ210は、ニューラルネットワークベースのエンジンとインタフェースして、記憶装置230に記憶される1つまたは複数のローカルAIモデル120a~120nを構築するように構成される。さらに、グローバルAIモデルビルダ215は、深層学習エンジンとインタフェースして、前述のように、記憶装置230に記憶される1つまたは複数のグローバルAIモデル130a~130pを構築するように構成される。例えば、AIモデルビルダ210及び215は、深層学習エンジン190内に規定されたパラメータを設定するように動作してもよく、パラメータは、深層学習エンジン190内に対応するAIモデルを適用するために、入力層191、隠れ層192、及び、出力層193の様々なノードを規定する。
自律型パーソナルコンパニオン100は、そのフォームファクタ(例えば、自律ロボットシェル)内と、バックエンドサーバ140とを通して、または、その組み合わせで、ローカルAIモデル120を実施してもよい。前述のように、コンパニオン100は、あまり複雑でないAI操作(例えば、部屋の明かりを点けるリクエスト)を行う時、または、ネットワーク接続が限定的または無い時等、バックエンドサーバと独立して、ローカルAIモデル120を実施してもよい。さらに、コンパニオン100は、バックエンドサーバと協力して、ローカルAIモデル120を実施してもよい。例えば、コンパニオン100は、入力パラメータがバックエンドサーバ140に容易に伝達(例えば、縮小及び/または圧縮)されるように(例えば、行うべき操作を規定する)入力パラメータを構造化または条件付けするために、ローカライズされたローカルAIモデル120を通して予備操作を行ってよい。この場合、AIモデル120内の人工知能の大半は、AIモデルアプリケータ220及び/または深層学習エンジン190によって行われる。
図2に示すように、自律型パーソナルコンパニオン100は、ユーザと同じ環境内にいることによって、ユーザにサービスを提供し得る。コンパニオン100は、有線もしくは無線接続(図示せず)を通して直接に、または、ローカルネットワーク250を通して、1つまたは複数のデジタルまたは物理的なオブジェクト及び/またはエンティティとインタフェースでき、ここで、ネットワーク250は、有線または無線接続を含んでよい。図2は、様々なデジタル及び/または物理的オブジェクトとコンパニオン100とのインタフェースを示す。他のデジタル及び/または物理的オブジェクトとの追加のインタフェースが企図される。図に示すように、コンパニオン100は、ローカル環境のオブジェクトと直接(例えば、有線または無線のピアツーピア通信)、または、ローカル環境のオブジェクトと有線または無線接続を介したローカルネットワーク250(例えば、ブルートゥース(登録商標)、Wi-Fi、ローカルエリアネットワーク等)によってインタフェースしてもよい。さらに、ローカルネットワーク250は、ローカルネットワーク250を通して他のリモートオブジェクト(例えば、バックエンドサーバ140、他のサーバ等)と通信する様々なデジタル及び物理的オブジェクトの通信を容易にするために、広域ネットワークまたはインターネット150と通信可能に結合される。
例えば、コンパニオン100は、コンパニオン100に再充電するために、または、基地局と通信して、ソフトウェアの更新、及び、他の例示のユースケースを受信するために、基地局260及びコンパニオン100の一方または両方等を、同じ位置、または、ほぼ同じ位置に移動させる等、基地局260とインタフェースしてもよい。
さらに、コンパニオン100は、ローカルサーバ240とインタフェースしてもよく、サーバ240は、ゲームコンソール241、タワーコンピュータ243等を含んでよい。例えば、ゲームコンソール241は、データのメインストリームをディスプレイ265に提供してもよく、メインストリームの概要または完全バージョンをコンパニオン100にも提供してもよく、その結果、コンパニオン100は、ユーザに(例えば、コンパニオン100のディスプレイを通して)表示できる、または、伝えることができる(例えば、音声)有益な情報(例えば、ゲーム支援)に、ユーザのゲームプレイと同時にアクセスし得る。タワー243は、検索操作、ファイル記憶等、コンパニオン100が制御または利用し得る追加の特徴を提供してもよい。
一実施形態においては、コンパニオン100は、マップ更新システム375とインタフェース及び/または実施してもよく、マップ更新システム375は、コンパニオン100内に位置してよい、または、コンパニオン100からリモートであってよい。マップ更新システム375は、コンパニオン100が位置する環境を継続的にマッピングするように構成される。例えば、更新は、コンパニオン100で実行する他のアプリケーションのバックグラウンドプロセスとして行われてよい。このようにして、オブジェクトが、環境内を移動すると、または、新しく環境に導入されると、マップ更新システム375は、この移動及び/または導入を認識して、環境内のオブジェクト及び構造のマッピングを継続的に更新できる。従って、更新されたマッピングに部分的に基づいて、コンパニオン100は、オブジェクトに衝突せずに、環境内を移動できる。コンパニオン100による移動は、サービス提供のために最も良い位置にコンパニオンを配置することが必要な場合がある。例えば、コンパニオン100は、画像投影に使用される壁に近付くことが必要となり得る、または、会話をするために、または、リクエストに応えるために等、ユーザの話が良く聞こえるようにユーザの方に近付くことが必要となり得る。
さらなる例として、コンパニオン100は、1つまたは複数のデジタル資産270と、デジタル資産内の操作を制御するために、または、デジタル資産内のデータにアクセスするために、インタフェースしてもよい。例えば、デジタル資産は、ローカルサーバ240を通して等、プロセッサまたはオペレーティングシステム内で実施されるカレンダ機能を含んでよく、この場合、コンパニオン100は、カレンダ機能のエントリの更新もしくは作成、または、差し迫ったカレンダ日付を取得する等のタスクを課されてもよい。
さらに他の例においては、コンパニオン100は、1つまたは複数の補助システム275とインタフェースしてもよい。例えば、補助システム275は、ヘッドマウントディスプレイ(HMD)を含んでよく、それによって、パーソナルコンパニオンは、VRコンテンツと一致した(例えば、VRを実施する拡張現実を増強する情報を提供する)HMD内に表示する追加のコンテンツを提供するために、HMDを通して表示されている仮想現実(VR)コンテンツから更新を受信してもよい。
また、コンパニオン100は、住居の機能を自動化するように構成されたホームオートメーションシステム280(例えば、冷暖房のためのサーモスタットの設定、換気制御、窓のおおい、ネットワークの接続性、デジタルコンテンツ配信及び提示、洗濯機及び乾燥機を含む家電等)とインタフェースできる。従って、コンパニオン100は、ユーザのゲームプレイと同時にディスプレイに最高の照明を提供するために、娯楽室の明かりを消すように、ホームオートメーションシステム280に指示してもよい。
さらに、コンパニオン100は、携帯電話285とインタフェースして、電話285の様々な機能にアクセス及び/または制御してもよい。例えば、コンパニオン100は、電話285のストリーミングミュージック機能に接続して、音楽をブロードキャストしてもよい。
図3Aは、本開示の一実施形態による、ユーザのローカルAIモデルを通して実施される自律型パーソナルコンパニオン100のブロック図である。前述のように、コンパニオン100は、対応するユーザとインタフェースして、ローカルAIモデル120を通して、(例えば、デジタル、物理的等)任意の種類のサービスを提供するように構成される。ローカルAIモデル120は、バックエンドサーバ140と協働して、部分的に、ユーザの振る舞い、応答、アクション、反応、欲求、及び/または、ニーズを予測する分布モデルであってよい。コンパニオン100の様々な例示の構成要素が、図3Aに示されるが、他の機能及び/または構成要素もサポートされる。
図3Aに示すように、コンパニオン100は、操作全体を管理するように構成されたシステムコントローラ355を含む。例えば、コントローラ355は、コンパニオン100の操作を容易にするために、様々な構成要素によって使用できるハードウェアリソース及びソフトウェアリソースを管理してもよい。さらに、コントローラ355は、構成要素間のインタフェース及び協力を含む、コンパニオン100内に備えられた構成要素(例えば、モータ320、デプスセンサ305等)の1つまたは複数を制御してもよい。
駆動コントローラ265は、コンパニオン100によって実施される移動機能を管理するように構成される。移動能力は、モータアセンブリ320(例えば、電動、燃料等)もしくは他の推進手段と、コンパニオン100に動きを与えるように構成された駆動アセンブリ375とによって部分的に提供される。ある実施態様においては、駆動アセンブリ275は、1つまたは複数の車輪、または、コンパニオン100の動きを与えるように構成された他の手段(例えば、ホバリング能力)を含んでよい。場合によっては、ジャイロスコープ380が、静止中または移動中のコンパニオン100を正確な向きに保つために、安定性の情報を駆動コントローラ365に提供してもよい。
コンパニオン100は、現在の環境を通じたコンパニオンのナビゲートを助けるように構成された構成要素を含んでよい。例えば、デプスセンサ305及び近接性センサ335は、環境内の固定したオブジェクト及び移動しているオブジェクトに関する情報を提供してもよい。詳細には、近接性センサ335は、コンパニオン100に近接した(例えば、表面を検出することによって)オブジェクトの位置を決定するように構成されてもよい。デプスセンサ305は、コンパニオン100の環境内の近くのオブジェクト及び遠くのオブジェクトの位置を決定するように構成されてもよい。すなわち、センサ305及び335は、環境内のコンパニオン100の配置に対するオブジェクトの奥行を決定でき、継続的な更新を通して、環境内の(新しい、及び、更新された)オブジェクトの位置を含む環境のマッピングを生成できる。さらに、デプスセンサ305は、オブジェクトが固い(例えば、金属製の机)か、柔らかい(例えば、カウチ)かを決定する等、オブジェクトの組成を決定するように構成されてもよい。デプスセンサ及び近接性センサは、電磁場、誘導、無線周波数、熱的変動、赤外振動数、エアフロー等の使用を含む、環境内のオブジェクトの位置及び/または組成を決定するための様々な技術の1つを採用してもよい。さらに、オブジェクト情報(例えば、オブジェクトの関係を示す位置)を提供するために、また、他の用途及びサービス(例えば、個人的な画像及びビデオキャプチャ、ビデオゲーム記録、ユーザの日常のアクションの記録等)を提供するために、画像が、カメラ325及び/またはビデオレコーダ370によってキャプチャされてもよい。
さらに、マップ更新システム345は、環境をマッピングするために、デプスセンサ305及び近接性センサ335によって提供された情報を部分的に使用してもよい。設計図、カメラ325、ビデオレコーダ370等によってキャプチャされた画像等を含む他の情報及び/またはデータが、マッピングのためにアクセスされてもよい。マッピングシステム345は、環境の三次元(3D)ビューを提供するように構成されてもよい。例えば、様々な構成要素によって収集されたデータ及び/または第三者情報を使用して、環境の1つまたは複数の種類のマッピングを生成できる。これらのマッピングは、二次元マップ及び3Dマップを含む。さらに、マップ更新システム375は、前述のように、1つまたは複数のツール(例えば、デプスセンサ305及び近接性センサ335等)を用いて環境のマッピングを継続する。例えば、環境内を移動している、または、環境に導入されたオブジェクトは、発見可能であり、それによって、オブジェクトの位置が、環境のマッピングに更新される。他の種類のマッピングは、環境の画像及びビデオツアーを含む。一実施形態においては、その情報を使用して、ユーザの住居を精密にマッピングしてもよく、ここで、部屋の位置を決定でき、(例えば、どこが投影画面として使用できるかを決定するために)部屋の壁を分類でき、様々な部屋の実際の画像及び仮想画像を記憶及び提供してもよく、また、(例えば、保険、不動産展示等のために)住居のビデオツアー及び仮想ツアーを生成してもよい。
他の実施形態においては、コンパニオン100は、娯楽、通信等のための表示システム310を含んでよい。例えば、表示システム310は、ユーザによるインターネット検索の結果を提供する時、または、1つまたは複数の目的に関してユーザにクエリする時(例えば、ユーザの全般的健康感に関して尋ねる、ユーザの様々なリクエストを明確にする等)など、ユーザと通信するために使用されてもよい。さらに、表示システム310は、(ゲームコンソールからの一次ゲームストリームによってストリーミングされるようにゲームアプリケーションをプレイするユーザのゲームプレイを見せる)一次ゲームディスプレイとして、または、二次ゲームストリーム(例えば、ユーザのゲームプレイに関する情報)を提供するための補助ディスプレイとして使用される。表示システム310は、映画または他のデジタルコンテンツを見せるように構成されてもよい。表示システム310は、ディスプレイによって提供される画像またはビデオに関する音声を提供するスピーカまたはオーディオシステム330と共に働いてもよい。例えば、ユーザのゲームプレイの音声は、ディスプレイに提示されるゲームプレイのビデオと関連して、また、同期して提示されてもよい。
さらに、コンパニオン100は、娯楽、通信等のための投影システム340を含んでよい。投影システムは、ユーザとの通信を提供すること、または、コンソールもしくはバックエンドストリーミングサービスによって提供されるようにゲームアプリケーションからの一次ストリームを表示すること、(例えば、二次的または補足情報を提供する、または、一次ディスプレイと共にゲーム世界の拡大ビューを提供するゲームアプリケーションの補助画面として)データの二次ストリームを提供すること、デジタルコンテンツを表示すること等を含む表示システム310と類似の機能を備えてよい。さらに、他の特徴は、投影システム340を通して提供されてもよい。投影される画像は、表示システムより大きい場合があるので、拡大ビューオプションが提供されてもよい。例えば、種々のタイプのビデオ及び/または画像(例えば、ホログラフィック、3D等)が、コンパニオン100の投影システム340を通して提示されてもよい。
記録システム317は、コンパニオン100によって収集及び/または生成されたデジタル情報のビデオ及び/または音声をキャプチャするように構成される。例えば、ゲームアプリケーションをプレイするユーザのゲームプレイ(例えば、ビデオ及び音声)が、収集及び記憶されてもよい。ユーザがゲームアプリケーションをプレイしている時のユーザからの追加の音声等、追加の情報が、記録システム317によって収集されてもよく、ゲームプレイのビデオ及び音声と一緒にされてもよい。
さらに、ユーザ追跡システム350は、ユーザの一般的及び特定の動きを追跡するように構成されてもよい。一般的な動きは、環境内のユーザの全体的な体の動きを含む。特定の動きは、ユーザの頭部または胴体の動きを決定する等、身体の一部を対象としてもよい。例えば、追跡システムは、ユーザの様々な身体の部分の向きを決定してもよく、頭部または身体の回転を追跡してもよい。追跡システム350は、カメラ325もしくはビデオレコーダ370、デプスセンサ305、近接性センサ335、または、他の追跡センサ(例えば、ゲームコンソールを通して提供されるような集積センサまたは第三者センサ)等からの画像及びビデオを含む、1つまたは複数の他の構成要素によって提供されるデータを収集してもよい。
図3Bは、本開示の様々な実施形態の態様を行うのに使用できるデバイス100の例の構成要素を示す。例えば、図3Bは、一実施形態による、ユーザをサポートするサービスを提供するデバイスを実施するのに適した例示のハードウェアシステムを示し、デバイスは、対応するユーザの振る舞い、アクション、反応、応答、欲求、及び/または、ニーズを部分的に予測できるローカルAIモデルを通して実施されるサービスを提供するように構成される。このブロック図は、デバイス100を示し、デバイス100は、発明の実施形態を実践するのに適したパーソナルコンピュータ、ビデオゲームコンソール、パーソナルデジタルアシスタント、または、他のデジタルデバイスであってよい、または、それらを組み込んでよい。デバイス100は、ソフトウェアアプリケーション、及び、任意で、オペレーティングシステムを実行する中央処理装置(CPU)302を含む。CPU302は、1つまたは複数の同種または異種の処理コアから構成されてもよい。
様々な実施形態によると、CPU302は、1つまたは複数の処理コアを有する1つまたは複数の汎用マイクロプロセッサである。さらなる実施形態は、深層学習、コンテンツ分類、及び、ユーザ分類のために構成されたアプリケーションの、メディアアプリケーション及びインタラクティブエンタテインメントアプリケーション等、高度に並列の計算集約的なアプリケーションに特に適合されたマイクロプロセッサアーキテクチャを有する1つまたは複数のCPUを用いて実施されてもよい。例えば、CPU302は、ユーザの振る舞い、アクション、応答、反応、欲求、及び/または、ニーズを部分的に予測することに関する学習動作をサポート及び/または行うように、また、その予測に基づいてサービスを提供するように構成されたローカライズされたAIエンジン(例えば、深層学習)エンジン110を含むように構成されてもよい。また、AIエンジン110は、コンパニオン100でユーザのローカルAIモデル120を適用するように構成される。さらに、CPU302は、コントローラ355、駆動コントローラ、マップ更新システム345等、図3Aに示すコンパニオン100の構成要素の1つまたは複数によって提供される追加の機能を備えてよい。
CPU302は、自律型パーソナルコンパニオン100によってキャプチャされるシーンのオブジェクトの識別に関し、分類器階層を実施するモジュール階層データ(例えば、視覚)システムを通して実施される追加の機能も備えてよい。キャプチャされたシーンのオブジェクトは、最初にオブジェクトを大まかなオブジェクトカテゴリを規定する一般分類器と照合し、次に、一致した一般分類器に関連付けられた分類器の子ノードの木を進むことによって識別される。以下、木を進む、あるいは木を辿ることを「進行する」と記載する場合がある。木を進行すると、オブジェクト入力データと照合される一般分類器の子ノードは、人工知能を用いて段々と具体的になる訓練データセットを用いて構築されたより具体的な分類器である。このように進行するプロセスは、最深レベルの最終分類器に到達すると完了する。ここで、最終分類器は、オブジェクトを識別するオブジェクトクラスを有する。例えば、CPU302は、様々な種類のデータ(例えば、ビデオ、音声、テキスト等)をキャプチャするように構成されたデータキャプチャモジュール710を含む。説明のために、データキャプチャモジュール710は、シーンまたは環境のビデオデータ及び/または画像データをキャプチャするように構成されたビデオ及び/または画像キャプチャモジュール370’を含んでよい。例えば、ビデオ/画像キャプチャモジュール370は、図3Aのビデオレコーダ370または画像カメラ325として同様に構成されてもよい。さらに、データキャプチャモジュール710は、シーンまたは環境の音声データをキャプチャするように構成された音声キャプチャデバイス317’を含んでよい。例えば、音声キャプチャデバイス317’は、図3Aのマイクロフォン315または記録システム317と同様に構成されてもよい。さらに、データキャプチャモジュール710は、シーン及び/または環境内で発見されたテキストデータをキャプチャするように構成されたテキストキャプチャデバイス715を含んでよい。追加のキャプチャデバイスが、様々な他の種類のデータ(例えば、触覚、圧力、温度等)をキャプチャするために、データキャプチャデバイス710内に含まれてよい。
CPU302は、シーンのオブジェクトを識別するように構成された分類器モジュール720を含む。分類器ビルダ729は、分類器階層の各分類器を構築するように構成される。詳細には、各分類器は、独立した訓練データセットを用いて提示される。分類器階層において、最上部に近い分類器は、より大まかな訓練データセットを用いて訓練され、階層の深部の分類器は、段々と具体的になる訓練データセットを用いて訓練される。各分類器は、各オブジェクトクラスまたはオブジェクトカテゴリの内部表現を規定する重みのセットを含む。分類器の構築に使用される訓練プロセスは、図8Aにさらに示す。さらに、分類器モジュール720は、分類器階層を用いてオブジェクトを識別するためにシーン内のオブジェクトを見つけるオブジェクト識別子721を含む。詳細には、一般分類器識別子723は、どの一般クラス(例えば、「ボール」「生き物」等)内に対象オブジェクトが属するかを決定するように構成される。一般クラスが識別されると、一致した一般分類器に関連付けられた子ノードの木を、歩行モジュール725を用いて歩いて、歩行プロセスの最後に子ノード分類器を決定する。ここで、オブジェクトは、その最終分類器によって表されるオブジェクトクラスに一致する。歩行プロセス中に選ばれた分類器は、対象オブジェクトが対応する分類器のクラスに属することを示す限度または閾値を超える確率を生成する。具体的には、最終分類器は、親クラスのバリアントであるオブジェクトクラスを表す。例えば、バリアントは、対応する根または一般分類器によって規定される「丸いオブジェクト」としてラベル付けされたオブジェクトの一般クラス内の「野球ボール(野球用のボール)」「サッカーボール」または「バレーボール」を含む。
図に示すように、マップ更新システム345は、コンパニオン100内にあるハードウェアベースのデバイスを通して実施されてもよい。詳細には、マップ更新システム345は、コンパニオン100が位置する環境のマッピングを生成するように構成される。このマッピングは、環境の空間内の位置を規定する新しく生成及び/またはフォーマットされた座標系等、ローカライズされた位置決めシステムを含んでよい。例えば、座標系は、全地球測位システム(GPS)もしくは3Dデカルト座標系、システムのミックス(例えば、各部屋に対して個々の座標系とインタフェースされた建物の部屋を規定する間取り図)、または、任意の適切な位置決めシステムの値を組み込んでよい。
メモリ304は、CPU302が使用するアプリケーション及びデータを記憶する。記憶装置306は、アプリケーション及びデータのための不揮発性記憶装置及び他のコンピュータ可読媒体を提供し、固定ディスクドライブ、リムーバブルディスクドライブ、フラッシュメモリデバイス、及び、CD-ROM、DVD-ROM、Blu-ray(登録商標)、HD-DVD、もしくは、他の光学記憶装置、並びに、信号送信及び記憶媒体を含んでよい。ユーザ入力装置308は、1人または複数のユーザからデバイス100にユーザ入力を通信し、ユーザ入力装置308の例は、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、静止画もしくはビデオレコーダ/カメラ、及び/または、マイクロフォンを含んでよい。ネットワークインタフェース314は、デバイス100が電子通信ネットワークを介して他のコンピュータシステムと通信するのを可能にし、ローカルエリアネットワーク、及び、インターネット等の広域ネットワークを介した有線または無線の通信を含んでよい。音声プロセッサ312は、CPU302、メモリ304、及び/または、記憶装置306によって提供された命令及び/またはデータからのアナログまたはデジタルの音声出力を生成するように適合される。デバイス100の構成要素には、CPU302、メモリ304、データ記憶装置306、ユーザ入力装置308、ネットワークインタフェース310、及び、音声プロセッサ312が含まれ、これらは1つまたは複数のデータバス322を介して接続される。
グラフィックスサブシステム314は、データバス322とデバイス100の構成要素とにさらに接続される。グラフィックスサブシステム314は、グラフィックス処理ユニット(GPU)316及びグラフィックスメモリ318を含む。グラフィックスメモリ318は、出力画像の各画素の画素データの記憶に使用される表示メモリ(例えば、フレームバッファ)を含む。グラフィックスメモリ318は、GPU316と同じデバイスに統合あるいは一体化し、GPU316とは別個のデバイスとして接続し、及び/または、メモリ304内に実装することができる。画素データあるいはピクセルデータは、CPU302から直接、グラフィックスメモリ318に提供されてもよい。あるいは、CPU302は、所望の出力画像を規定するデータ及び/または命令をGPU316に提供し、そのデータ及び/または命令から、GPU316は、1つまたは複数の出力画像の画素データを生成する。所望の出力画像を規定するデータ及び/または命令は、メモリ304及び/またはグラフィックスメモリ318に記憶されてもよい。ある実施形態においては、GPU316は、シーンの形状、光、シェーディング、テクスチャ、動き、及び/または、カメラパラメータを規定する命令及びデータから、出力画像の画素データを生成する3Dレンダリング能力を含む。GPU316は、シェーダプログラムを実行できる1つまたは複数のプログラム可能な実行ユニットをさらに含み得る。一実施形態においては、GPU316は、AIエンジン190’内で実施されて、AIまたは深層学習機能のために等、追加の処理能力を提供してもよい。
グラフィックスサブシステム314は、表示装置310に表示、または、投影システム340によって投影するために、グラフィックスメモリ318から画像の画素データを定期的に出力する。表示装置310は、CRTディスプレイ、LCDディスプレイ、プラズマディスプレイ、及び、OLEDディスプレイを含むデバイス100からの信号に応答して、視覚情報を表示できる任意のデバイスであってよい。デバイス100は、例えば、アナログまたはデジタルの信号を表示装置310に提供できる。
本明細書に記載の実施形態は、任意の種類のクライアントデバイスで実行されてもよいことは理解されたい。ある実施形態においては、クライアントデバイスは、ヘッドマウントディスプレイ(HMD)または投影システムである。
図4A~4Cは、本開示の一実施形態による、対応するユーザの住居環境内での自律型パーソナルコンパニオン100の例示的実施態様を示す。前述のように、コンパニオン100は、ローカルAIモデル120を通してユーザにサービスを提供するように構成され、AIモデル120は、ユーザの振る舞い、応答、アクション、反応、欲求、及び/または、ニーズを部分的に予測するように、いずれのバックエンドサーバからも独立して働いてもよいか、または、バックエンドサーバに位置するAIモデル120を用いて分散的に働いてもよい。コンパニオン100は、様々なシナリオの下で様々なサービスを提供するように構成されるが、図4A~図4Cは、ユーザ450が、ゲームコンソール241で実行している(または、バックエンドサーバで実行され、ゲームコンソールを通してストリーミングされる)ゲームアプリケーションをプレイし、コンパニオン100が、ユーザ450のゲームプレイに補足情報を提供できるシナリオを示す。
図に示すように、ユーザは、娯楽室等、住居環境410にいる。部屋は、2つの壁415A及び415Bを含む。環境410は、カウチ405を含む。ユーザは、ゲームコンソール241へのアクセスを有する。詳細には、ゲームアプリケーションが、ユーザ450のゲームプレイに関連して、ゲームコンソール241(または、任意の他のデバイス)を通して実行及び/またはストリーミングしており、ゲームプレイは、コントローラ420を通して等、ユーザ入力に応答する。ゲームプレイの一次ストリームが作成され、ゲームプレイのビデオがディスプレイ310に送られる。さらに、ゲームプレイの音声は、オーディオシステム(図示せず)を通して提供されてもよい。ゲームアプリケーションは、オープンロードレーシングゲームであってよく、ユーザは、そのレースで車のドライバをプレイしている。スクリーンショット425は、ディスプレイ310に送られるビデオストリームの画像を示し、レースカーのフロントガラスとダッシュボードからのビューを含み、対向する道路、ハンドル、及び、ダッシュボードの様々な計器を示す。
さらに、コンパニオン100は、環境410に位置し、ロボットフォームファクタ105と、ユーザ450のローカルAIモデル120を実施するように構成されたAI110とを含む。例えば、AI110は、バックエンドサーバ140のAIエンジン190と協力するAIエンジン190’であってよい。AI110を通して実施されるローカルAIモデル120は、ゲームプレイに関連するユーザ450へのサービスを部分的に提供するように構成される。従って、コンパニオン100は、ゲームアプリケーション及び/またはゲームプレイに関する情報を少なくとも受信するようにゲームコンソール241に通信可能に結合されてもよい。例えば、情報は、ゲームのタイトル及びバージョンと、ゲームプレイのゲーム状態とを含んでよい。さらに、コンパニオン100は、ゲームアプリケーションの二次ストリームで提供される情報を含んでよい。例えば、ゲームコンソール241は、ディスプレイ310に提示するための一次ストリームと、コンパニオン100を通して(例えば、ディスプレイ、投影、スピーカ等を介して)提示される二次ストリームとを生成してもよい。
一実施形態においては、コンパニオン100は、ユーザのゲームプレイに補助的サポートを提供するように構成され、ここで、情報は、ゲームアプリケーションをプレイしているユーザ及び他のプレイヤのゲームプレイに関連してもよい。情報は、ある実施態様においては、ゲームアプリケーションに関する一般的な情報を提供してもよい。補足情報は、ゲームプレイを進める際、ユーザ420に支援を提供し得る。例えば、支援は、ユーザ420が目的を達成する(例えば、レベルを通過する)のを助けるコーチングの形であってよく、ゲームアプリケーション内でユーザが目的を達成するのを一般的にまたは直接、助けるコントローラ入力を示す視覚キューを含んでよい。コンパニオンアプリケーションを通して提供される補足情報の詳細な記載は、2017年3月31日出願の同時係属の特許出願である米国特許出願番号第15/476,597号「GAME PLAY COMPANION APPLICATION」に記載されており、参照により、その全体を本明細書に組み込む。
図4Bは、図4Aで紹介したように、ゲームコンソール241とインタフェースして、ユーザ450のゲームプレイに関する補足情報を提供する自律型パーソナルコンパニオン100を示す。例えば、図4Bは、ゲームコンソール241上で実行される、または、ゲームコンソール241を通してストリーミングされるゲームアプリケーションをプレイする環境410内のユーザ450を示す。詳細には、図4Bは、ゲームアプリケーションの三次元(3D)ゲーム世界とユーザの物理的環境との統合を示す。図に示すように、コンパニオン100は、ゲームアプリケーションの3Dゲーム世界の一部を物理的環境410に投影するように構成される。例えば、コンパニオン100は、ディスプレイ310に提示されるものを超えて3D世界のビューを拡張でき、これは、スクリーンショット425を継続的に見せる。詳細には、コンパニオン100は、ディスプレイ310に提示され(スクリーンショット425を含む)一次ビデオストリームと同時に、(スクリーンショット430を含む)ビデオストリームをゲームアプリケーションの二次ストリームとして投影する。
さらに、本開示の一実施形態によると、コンパニオン100が提供する投影は、ユーザ450の視線方向に応答して行われてよい。例えば、コンパニオン100の視線追跡システム、または、コンパニオン100と共に働く視線追跡システムは、ゲームプレイ中、ユーザ450の視線方向をキャプチャするように構成される。説明として、ユーザがレースをしている時、音は、環境410内で一方向に提供され、これは、頭部の動きをトリガし得る。図に示すように、ユーザ450の頭部は、急に右を向く。ディスプレイ310の一次ストリーム内に表示されるように、右側を指す矢印等、他のトリガがサポートされる。例えば、コンパニオン100のサウンドロケータ及び投影システムは、ゲームアプリケーションのゲーム世界内の起点にも対応する環境410の位置から生じる、または、生じるようになされた音を生成してもよい。音は、ユーザ450が制御するドライバを追い越そうとしている競争相手のエンジンからであってよく、また、ドライバの右手、より具体的には、運転席の右側で生じてよい。ユーザの頭部が右を向いて、追い越すレーサのより良いビューを取得すると、ユーザ450の視点から見たゲーム世界の一部の投影が、エリア443の壁415Aに提示され、投影は、ゲーム世界のオブジェクトのほぼ適切な位置に、ユーザがプレイするキャラクタの位置に関連して提示され、キャラクタの位置は、ユーザ450の物理的位置に関連付けられる。図に示すように、二次的情報の投影のスクリーンショット430は、右側で追い越しているレースカーのナンバー78を含む。
一実施形態においては、エリア443は、以前行われた環境410のマッピングプロセス中に発見されたものであってよい。マッピングプロセスは、エリア443が、補足情報及び/またはコンテンツの表示に適切であり得ることを発見した。コンパニオン100は、補足情報を適切に提示するように、環境410の壁415A及び/またはユーザ450に対してコンパニオン100自体を位置決めしてもよい。
図4Cは、本開示の一実施形態による、図4A及び4Bで紹介したゲームアプリケーションの3Dゲーム世界の統合の別の例を示し、ゲームアプリケーションの3Dゲーム世界を拡張したものを、ユーザ450のゲームプレイの一次ストリームを示すディスプレイ310と並べて投影される。図に示すように、二次的なまたは補足の情報を壁415Aに投影する代わりに、情報は、壁415Bに、ディスプレイ310のすぐ右に投影される。例えば、環境410のマッピングプロセス中、壁415Aが画像の投影をサポートできないと決定されてもよい。すなわち、コンパニオン100が壁415A上に投影したとしても、ビデオストリームを見ることができない(例えば、壁415Aが本棚を含む)。従って、コンパニオン100は、ゲームアプリケーションの一次ビデオを見せるディスプレイ310に特に関連して、ゲーム世界の投影にオブジェクトの位置の適切な意味をある程度伝えるエリア440の壁415Bに補足情報を投影してもよい。他の実施態様においては、投影は、ディスプレイ310に提示されたビデオストリームの拡張である。従って、コンパニオン100は、スクリーンショット430’を含むように補足のビデオストリームをエリア440上に投影し、スクリーンショット430’は、追い越し位置のレースカーのナンバー78を含む図4Bのスクリーンショット430に類似する。スクリーンショット430'は、ディスプレイ310に提示されるキャラクタであるドライバの視点(例えば、スクリーンショット425)から表されるように、運転席の右側に投影される。
一実施形態においては、壁415Bへの投影は、ユーザ450の視線がディスプレイ310の中心から外れることによってトリガされてもよい。図に示すように、ユーザ450の頭部は、ゲーム環境でのように約90度は回されないが、壁415Bのエリア440を見るために45度回転されてもよい。他の実施形態においては、ゲームアプリケーション実行中、投影は、コンパニオン100によって自律的に生成されてもよい。例えば、補足情報が、コンパニオン100によって自動的に投影されて、ユーザの体験を強化してもよい。この場合、他の補足情報は、環境410内の他の位置に他の時点で提供されてもよい。
図5は、本開示の一実施形態による、ヘッドマウントディスプレイ(HMD)515を使用するユーザ550がプレイするゲームアプリケーションの3D仮想現実(VR)世界と物理的環境510との統合を示す。図5に示すように、ユーザ550は、ユーザ550のゲームプレイに関してゲームコンソール241で実行している(または、バックエンドサーバで実行され、ゲームコンソールを通して、もしくは、任意の他のデバイスを通してストリーミングされる)ゲームアプリケーションをプレイしており、ゲームプレイは、コントローラ420及び/またはHMD515の動きを通して等、ユーザ入力に応答する。
前述のように、コンパニオン100は、ローカルAIモデル120を通してユーザにサービスを提供するように構成され、AIモデル120は、ユーザの振る舞い、応答、アクション、反応、欲求、及び/または、ニーズを部分的に予測するように、いずれのバックエンドサーバからも独立して働いてもよい、または、バックエンドサーバに位置するAIモデル120を用いて分散的に働いてもよい。コンパニオン100は、ロボットフォームファクタ105と、ユーザ550に対応するAIモデル120を実施する人工知能とを含む。
より詳細には、コンパニオン100は、ゲームアプリケーションの仮想現実(VR)ゲーム世界の一部を物理的環境510に投影するように構成される。例えば、VRゲーム世界の投影520は、環境510の壁(図示せず)に行われてよい。投影520は、コンパニオン100によって制御される物理的ディスプレイを通して行われてもよい。このように、ユーザ550が体験するビューあるいは視野は、観客555にも提示されてもよい。一実施形態においては、投影は、ユーザ550の視線方向に応答して行われて、本開示の一実施形態によるユーザ550のVRゲーム世界の体験に、観客555が並行して参加するのを可能にする。従って、環境510が投影に適している場合、ユーザ550が、VRゲーム世界を見ながら、向きを変えると、コンパニオン100は、VRゲーム世界の適切な位置に密接に対応するように、環境510内の異なる位置に投影520も変更してもよい。すなわち、ユーザ550の頭部が、半時計回りに90度回転する場合、投影520は、ユーザ550の左の壁、また、観客555の左側に行われてよい。このようにして、観客は、物理的環境510にコンパニオンアプリケーションによって投影されるように、VRゲーム世界を感じてよい。
図6A~6Eは、本開示の実施形態による、自律型パーソナルコンパニオンの様々な例示の形態を示し、コンパニオンは、図1~図5に示すコンパニオン100を通して実施されてもよい。図6A~図6Hに示すコンパニオンは、ローカルAIモデル120を通して対応するユーザにサービスを提供するように構成され、AIモデル120は、ユーザの振る舞い、応答、アクション、反応、欲求、及び/または、ニーズを部分的に予測するように、いずれのバックエンドサーバとも独立して働いてもよい、または、バックエンドサーバに位置するAIモデル120を用いて分散して働いてもよい。
詳細には、図6Aは、本開示の一実施形態による、ユーザのAIモデルを通して実施されるユーザのコンパニオン600Aの例示の形態を示す。図6Aは、一般的フォームファクタを示すが、コンパニオン600Aは、任意の適切なフォームファクタ内で実施されてもよい。例えば、下部の直径が上部の直径より小さい円錐形を有する本体601が示されている。上部ハウジング605は、コンパニオン600Aの追加の特徴を容易にするように本体601から突き出てよい。
詳細には、コンパニオン600Aは、下部に1つまたは複数の車輪609、または、コンパニオン600Aに二次元または三次元の移動性を提供するための任意の適切な手段を含む。このようにして、コンパニオン600Aは、そのサービスを提供するために必要に応じて環境内を動き回ってよい。例えば、コンパニオン600Aは、環境の最良の画像をキャプチャするために、または、ビデオ及び/または画像を投影する最良の位置を選択するために、独立して環境を動き回ってよい。さらに、本体601は、環境内でコンパニオン600Aに最良の向きを提供するために一つの位置で回転してもよい。
図6Bは、本開示の実施形態による、画像の投影、近接環境の感知、及び、補助音声の提供を部分的に含む多くの能力を有して構成された例示の自律型パーソナルコンパニオン600Bを示す。詳細には、図6Aで最初に紹介した、本体601を有する一般的フォームファクタを有するコンパニオン600Bが示されている。さらに、環境を移動する能力を表す車輪609が示されている。
コンパニオン600Bは、本体601の至る所に配置されたスピーカ610を含む。さらに、スピーカ610は、上部ハウジング605等、コンパニオン600Bの他の部分に位置してもよい。ディスプレイ310は、本体601の表面に位置し、対応するユーザにサービスを行う時、情報及び/またはデータを提示するように構成される。例えば、ディスプレイ310は、応答を求めてユーザにクエリする時、テキストを表示してよい、または、ユーザからのクエリに応答してビデオもしくはテキストを提示してもよい。ディスプレイ310は、ゲームアプリケーションをプレイするユーザのゲームプレイに関連して生成された補足情報等、他の補足情報も提示してもよい。
コンパニオン600Bは、環境の感知に使用される1つまたは複数のセンサを含み、センサは、コンパニオンの表面の様々な位置にあってよい。例えば、デプスセンサ305は、本体601上部の表面に位置してもよく、デプスセンサは、環境内の近くのオブジェクト及び遠くのオブジェクトの位置を決定するように構成される。1つまたは複数のデプスセンサ305は、オブジェクトの組成、または、オブジェクトの表面の硬さの決定に使用されてもよい。さらに、1つまたは複数の近接性センサ335が、上部ハウジング605の表面に位置してもよく、近接性センサは、コンパニオン600Bの近くのオブジェクトの位置を決定するように構成されてもよい。前述のように、デプスセンサ及び近接性センサは、信号625によって示されるように、様々な技術(例えば、電磁場、誘導、無線周波数、熱的変動、赤外振動数、気流あるいはエアフロー等)を採用して、オブジェクトの位置を決定してもよい。
さらに、本体601の上部は、環境の音声記録をキャプチャするように構成された1つまたは複数のマイクロフォン315を含む。例えば、対応するユーザの音声は、ユーザのライブの反応をキャプチャして録音されてもよく、その音声は、後に再生されてもよい。また、録音された音声は、カプセル650に位置するビデオレコーダ370によってキャプチャされた記録済みビデオと同期されてもよい。また、画像カメラ325は、カプセル650に位置してもよい。画像カメラ325とビデオレコーダ370との組み合わせによって、コンパニオン600Bが、ユーザ及び/または環境のビデオ及び/または画像をキャプチャすることが可能になる。
図に示すように、カプセル650は、様々な程度の動き及び向きを有する。カプセル650は、リフト機構655に取り付けられ、コンパニオン600Bの本体601に対して昇降できる。例えば、カプセル650は、カメラ325またはレコーダ370がオブジェクト(例えば、壁、カウチ、家具、本棚等)によって塞がれる時等、環境が良く見えるように、カプセル650自体上昇してもよい。さらに、カプセル650は、静的な本体601に対して回転するように、リフト機構655のシャフトを中心に回転してもよい。
コンパニオン600Bの上部ハウジングは、1つまたは複数の投影システム340を含んでよい。前述のように、投影システム340は、環境の表面(例えば、部屋の壁)に補足情報を投影してもよい。表面は、前述のように、環境のマッピングを通して決定されてもよい。補足情報は、コンパニオン600Bがユーザにサービスを提供している時、ユーザと通信するために使用されてもよい。
図6Cは、本開示の一実施形態による、1つまたは複数の特徴、例えば、画像キャプチャ及び画像投影を有して構成されるドローンアセンブリ651を含む、例示の自律型パーソナルコンパニオン600Cを示す。図に示すように、コンパニオン600Cは、総称的に表現される本体601、移動手段(例えば、図に示す車輪609)、ディスプレイ310、近接性センサ335、及び、投影システム340のプロジェクタを含む、前述の1つまたは複数の特徴を有する。前述の他の特徴は、明瞭にするために図示しない。
詳細には、コンパニオン600Cは、休止位置にある時、上部ハウジング605(または、アセンブリ651を受け止めることができる任意の他の適切な表面エリア)に結合されたドローンアセンブリ651を含む。例えば、ドローンアセンブリ651は、電池を充電するために上部ハウジング605とインタフェースしてもよい。別個の基地局等、コンパニオン600Cからリモートである他の休止位置が、企図される。さらに、ドローンアセンブリ651は、コントローラ355等、コンパニオン600Bの1つまたは複数の構成要素に通信可能に結合される。画像カメラ325及び/またはビデオレコーダ370は、画像及びビデオをキャプチャするために、ドローンアセンブリ651に配置されてもよい。投影システム640のプロジェクタ等、他の構成要素もアセンブリ651に配置されてもよい。
図に示すように、ドローンアセンブリ651は、環境内を動き回ることができる。プロペラシステム、エアフローシステム、ライトエアシステム、テザリングシステム等、動きを提供する任意の適切な手段が企図される。従って、ドローンアセンブリ651は、環境の至る所を三次元に移動でき、環境内で回転できる。画像及び/またはビデオをキャプチャするためにより良い位置にカメラ325及び/またはビデオレコーダ370を配置するために移動が必要な場合がある。例えば、コンパニオン100の本体601及び上部ハウジング605に対応する点から取得される一定方向の部屋のビューが、オブジェクトによって塞がれる場合がある。ドローンアセンブリ651は、ビューをキャプチャするために、オブジェクトに邪魔されない(例えば、真直ぐ上の)位置に配備されてもよい。
図6Dは、本開示の一実施形態による、1つまたは複数の特徴を用いて構成された回転上部630を含む例示の自律型パーソナルコンパニオン600Dを示す。対応するユーザのローカルAIモデル120を実施するのに適した種々のフォームファクタを示すコンパニオン600Dが示される。図に示すように、コンパニオン600Dは、ベース620を含む。車輪609'、または、前述の移動のための任意の他の適切な手段等、移動手段は、ベース620内に備えられてよい。
詳細には、コンパニオン600Dは、カメラ325、ビデオレコーダ370、デプスセンサ305、近接性センサ335等を含み得る上部630を含む。説明のために、上部630は、ベース620を中心に回転可能であってよい。このようにして、コンパニオン600Dは、それ自身をユーザにサービスを最も良く提供する方向に向けることができる(例えば、ユーザと通信あるいはコミュニュケーションを行うために良好な位置をとる)。すなわち、コンパニオン600Dの移動機能部と回転上部630とを組み合わせることによって、環境内でコンパニオンの様々な向きが可能である。例えば、上部630は、環境内のオブジェクトの方を向くように回転されることによって、オブジェクトの良好なビューをカメラシステムに与えてよい。さらに、コンパニオン600Dは、オブジェクトに近付いて、オブジェクトのより良いビューあるいは視野をカメラシステムに与えてよい。
ある実施態様においては、上部630の回転によって、感情を伝えることができる、または、コンパニオン600Dの振る舞いを表示できる。この場合、上部630は、感情を示すようにプログラムされた多色のライトを装備してもよい。例えば、ライト631の帯は、上部630に示される。帯631の各ライトは、対応するパターンに従って付けられてもよく、消されてもよい。さらに、帯631の各ライトは、対応するパターンに従って色のシーケンスを示してもよい。表632は、ライトのパターンのリスト(例えば、オン/オフ、色のシーケンス等)を示し、各パターンは、コンパニオン100の対応する感情に関連付けられてよい。例えば、パターン1は、第1の幸せの感情に関連付けられてよく、パターン2は、第2の幸せのタイプに関連付けられてよい。無関心、怒り、悲しさ、不機嫌等を示す他の感情は、他のパターンを通して示されてもよい。
図6Eは、本開示の一実施形態による、1つまたは複数の付属物640を含む例示の自律型パーソナルコンパニオン600Eを示す。図に示すように、コンパニオン600Eは、一般的に表される本体601と、移動手段(例えば、図に示す車輪609)とを含む前述の1つまたは複数の特徴を有する。前述の他の特徴は、明瞭にするために示していない。
詳細には、付属物640は、コントローラ機能を提供してもよい。例えば、付属物640は、コントローラ420を含んでよく、ゲームコンソール241またはバックエンドサーバでのゲームアプリケーションの実行中に、制御命令を提供するために、ゲームコンソールとインタフェースしてもよい。一実施形態においては、付属物640の1つまたは複数は、操作及び取り扱いを容易にするために取り外されてもよい。このようにして、ユーザは、ゲームコントローラを扱う通常の方法で付属物640とインタフェースしてもよい。
一実施形態においては、各付属物640は、ベース充電ポートに結合できる再充電ポートを有するように構成される。内部電池(図示せず)は、対応する付属物640内に位置する。ベース充電ポートは、枢着点602に関連付けられた接続部内等、本体601に配置されてもよい。このようにして、付属物640が本体601上に戻されると、内部電池の充電が行われてよい。すなわち、一実施形態においては、電力(例えば、電荷)が、コンパニオン600Eの本体601を通して付属物640の内部電池に移る。他の実施形態においては、電力は、内部電池からコンパニオン600Eに移るように、反対方向に移動する。このようにして、付属物640は、電力をコンパニオン600Eに供給する一次再充電媒体として構成されてもよく、且つ、取り外されて、本体601とは別個のベース充電ステーションに電気的に及び/または通信可能に結合されてもよい。付属物640が取り外されている間(例えば、再充電)、コンパニオン600Eは、内部電源を使用して動作し続けてよく、電源は、付属物640が再び本体601に結合されると、再充電されてもよい。
一実施形態においては、付属物640は、コンパニオン600Eの腕あるいはアームの役割を果たす。例えば、付属物640は、本体601の枢着点602を中心に動いてもよい。付属物640の動きは、何らかの通信を提供してもよい。例えば、付属物640の動きのパターンは、コンパニオン600Eによる挨拶を信号で示してもよい。他の例においては、付属物640は、本体601から外向きに延ばされて、コンパニオン600Eの歓迎のスタンスを示してもよい。さらに別の例においては、付属物640は延ばされて、ユーザとの握手または最初に軽く接触してもよい。他の動きが企図される。さらに、付属物は、他の実施形態においては、任意の形態または構成であってよい。例えば、コンパニオン600Eの付属物として構成された頭部または上部ハウジング605は、本体601から取り外し可能であってよい。
本発明の実施形態は、本開示の実施形態による、自律型パーソナルコンパニオンの様々な代替フォームファクタをサポートする。さらなる実施形態は、2つの自律型パーソナルコンパニオン100間の直接、または、ネットワークを通じた通信を提供する。説明として、各コンパニオンは、部屋を動き回る必要がある建物の部屋のマッピングに関連する動作を行ってよく、移動している間、一方のコンパニオンまたは両方のコンパニオンは、近くにいる他方のコンパニオンを感知してもよい。コンパニオン同士は、さらに、互いに通信するための位置に移動してもよい。一実施態様においては、各コンパニオンは、対応するQRコード(登録商標)に関連付けられてよい。QRコード(登録商標)を使用して識別情報をやり取りしてもよい。例えば、QRコード(登録商標)は、対応するコンパニオンに関して(例えば、バックエンドサーバを介して)情報へのアクセスを提供する。従って、コンパニオンは、QRコード(登録商標)を渡し得る位置に移動してよい(例えば、第1のコンパニオンのQRコード(登録商標)を見せる表示を第2のコンパニオンのカメラシステムの視野範囲内に持ってくる)。QRコード(登録商標)は、キャプチャされると、ネットワークを介してサーバに送られて、キャプチャされたQRコード(登録商標)に関連付けられたコンパニオンに関する識別情報にアクセスしてもよい。このようにして、識別情報が、コンパニオン間でやり取りされてもよい。
モジュール階層視覚システム及び方法
従って、本開示の様々な実施形態は、ユーザに合わせてパーソナライズされたAIモデルを構築する機械学習技術を実施するシステム及び方法を記載する。ローカルAIモデルは、可動の自律型パーソナルコンパニオンを通して実施され、自律型パーソナルコンパニオンは、ユーザにコンテクストにおいて関連するパーソナライズされた支援を提供するように構成可能である。パーソナルコンパニオンは、図1~図6で前述した。ローカルAIモデルのパーソナライズは、深層学習エンジン190内で使用される主観的及び/または客観的な入力データをフィルタリングしてモデルを生成することによって達成される。フィルタリングが行われない場合、AIモデル(ローカル及びグローバル)は全て、同じデータセットを用いて構築され、従って、同じパーソナリティを有する同じAIモデルとなる(例えば、所与の入力セットに対して同じ結果となる)。このようにして、各AIモデルが一意で、対応するユーザのパーソナリティを反映またはパーソナリティに関連付けられ得るように、ローカルAIモデルは、様々なパーソナリティで生成される。
さらに、本発明の実施形態は、自律型パーソナルコンパニオンによってキャプチャされた環境内のオブジェクトの識別と、横断すると、オブジェクトを識別できる分類器階層の分類器を用いることを開示する。様々な種類のデータを取得するためにシーンがキャプチャされ、シーンは、1つまたは複数のオブジェクトを含む。特定のオブジェクトに関するデータが、さらなる分析のために分離されてもよく、そのデータは、ビデオ、画像、音声、テキスト、温度、圧力、触覚、ソナー、赤外線等を含んでよい。関連データを分析して、対象の(例えば、キャプチャしたシーンから)識別されたオブジェクトが機械学習を通して構築され得る分類器階層内のどのオブジェクトクラスに属するかを決定してもよい。分類器階層は、別個の一般クラスに基づいて、オブジェクトを認識するように訓練された根分類器のセットから構成される。各根分類器は、子ノードの木の親ノードの役割を果たし、各子ノードは、根または一般分類器として表される親オブジェクトクラスのより具体的なバリアントを含む。オブジェクト識別の方法は、段々と具体的になる特徴に基づいてオブジェクトを分類するために、子ノードの木を進行する。システムは、さらに、オブジェクト比較の数を最小にしながら、システムが、シーンの複数のオブジェクトを同時にカテゴリ分けするのを可能にするように設計されたアルゴリズムから構成される。
図7は、本開示の一実施形態による、シーン700の図で、シーンの1つまたは複数のオブジェクトは、人工知能を通して構築された分類器階層を用いた識別の対象であってよい。シーンは、ユーザ5の環境の一瞬であってよい。例えば、ユーザ5は、テーブル745に置いているランプ740を含む居間にいてもよい。ディスプレイ760が壁(図示せず)に取り付けられてよい。ディスプレイは、野球ボール765をキャッチする位置にある野球のグローブ761のクローズアップであるビデオフレームを示してもよい。シーンにおいて、ユーザ5は、オブジェクトを用いて、犬730と取って来い遊びをしている。オブジェクトは、ボール750、より詳細には、野球ボールとして識別される。
シーンのデータは、自律型パーソナルコンパニオン100によってキャプチャされる。パーソナルコンパニオンは、任意の適切な本体を有するロボット105と人工知能110とを含む。ロボット105と人工知能110は両方とも前述した。さらに、パーソナルコンパニオン100は、分類器の分類器階層(例えば、分類器階層820)を用いて、シーン700のオブジェクトを識別するように構成される。シーン700の対象オブジェクトに関して、階層の種々のレベルの分類器と照合、接続することによって、最深レベルの最終分類器に到達するまで、分類器階層を進行する。最終分類器は、対象オブジェクトの識別に使用できるオブジェクトクラスを表す。
パーソナルコンパニオン100は、様々な技術を用いて、シーン700をキャプチャするように構成される。キャプチャされたデータは、ビデオ、画像、音声、テキスト、温度、圧力、触覚、及び、他の情報を含んでよい。図7において、パーソナルコンパニオン100は、シーン700の様々な部分をキャプチャしてもよい。例えば、パーソナルコンパニオンは、点線731aと731bの間の画像データをキャプチャ及び/または分離してもよく、キャプチャされたデータは、オブジェクト、すなわち、犬730を含む。さらに、パーソナルコンパニオンは、点線733aと733bの間の画像データをキャプチャ及び/または分離してもよく、キャプチャされたデータは、ユーザ5、野球ボール750、犬730を含む複数のオブジェクトを含む。さらに、パーソナルコンパニオンは、点線751aと751bの間の画像データをキャプチャ及び/または分離してもよく、キャプチャされたデータは、オブジェクト、すなわち、野球ボール750を含む。また、パーソナルコンパニオンは、点線741aと741bの間の画像データをキャプチャ及び/または分離してもよく、キャプチャされたデータは、ディスプレイ760の一部、グローブ761の一部及び野球ボール765を含むディスプレイ上のビデオ画像の一部、ランプ740、並びに、テーブル745の一部を含む、複数のオブジェクトを含む。
オブジェクトを識別するために使用される画像データとしてアプリケーションを通して記載するが、キャプチャされたデータは、それぞれ、シーンのオブジェクトと関連付けられる様々な種類のデータを含んでよい。さらに、オブジェクト自体は、見える形態と見えない形態(例えば、風、音、存在等)とを含む様々な形態をとってよい。
図8Aは、本開示の一実施形態による、分類器階層の分類器を構築する人工知能を用いた訓練段階の例示の図であり、各分類器は、対応するオブジェクトを、そのオブジェクトの内部表現に基づいて認識するように構成される。詳細には、オブジェクト訓練データ804は、ニューラルネットワーク190によって実施される人工知能等、人工知能に提示される。例えば、オブジェクト訓練データは、オブジェクトの画像804aを含む。説明のためだけに、または、オブジェクトと関連するオブジェクトとの一貫した例を提供するために、オブジェクトは野球ボールであってよい。従って、画像804aは、野球ボールを含んでよい(例えば、実際の野球ボールが、1つまたは複数の画像でキャプチャされる)。さらに、オブジェクト訓練データ804は、ラベル付け804bを含んでよい。例えば、ラベル付け804bは、野球ボールとしてオブジェクトの肯定の識別を提供し得る。さらに、ラベル付けは、野球ボールのオブジェクトが、「スポーツ」という大まかなオブジェクトカテゴリに該当し得る等、オブジェクトのさらなる記述を備えてよい。例えば、スポーツのカテゴリは、スポーツで使用される全てのボールを含む。
オブジェクト訓練データは、分類器訓練を行うためにニューラルネットワーク190に提供される。具体的には、分類器訓練モジュール809は、個々のオブジェクト(野球ボール)またはオブジェクトカテゴリ(例えば、丸いオブジェクト、ボールスポーツ等)に固有の訓練データを受信するように、また、訓練データが規定するオブジェクトの内部表現に一致する後にキャプチャされるオブジェクトを認識できる分類器を構築するように構成される。例えば、野球ボールに固有の訓練データに関して、ニューラルネットワーク190の分類器訓練モジュール809は、野球ボールであるオブジェクトクラスの内部表現を規定する野球ボール分類器808を構築できる。詳細には、内部表現は、人工知能を通して決定される重みのセット810(例えば、w1,w2...wn)を含んでよい。
野球ボール分類器808は、後にキャプチャされるオブジェクトまたは対象オブジェクトを分析でき、対象オブジェクトが野球ボール分類器によって規定されるオブジェクトクラスに属する確率を決定できる。確率は、対象オブジェクトを表すデータを用いた野球ボール分類器によって生成される。ある実施態様においては、野球ボール分類器は、対象オブジェクトがそのオブジェクトクラスに属する確率と、対象オブジェクトがそのオブジェクトクラスに属さない確率とを生成できる(例えば、両方の確率の和は1に等しい)。例えば、野球ボール分類器808によって生成される確率が限度を超える時、対象オブジェクトは、野球ボールを表すオブジェクトクラスに該当するとして識別されてもよい。すなわち、対象オブジェクトは、「野球ボール」として認識または識別される。詳細には、図8Bは、本開示の一実施形態による、図8Aに構築された分類器の使用段階の図で、分類器階層の分類器は、オブジェクト入力データを分析して、入力オブジェクトが分類器によって表されたオブジェクトクラスに該当するか否かを決定するために使用できる確率を生成するように構成される。
具体的には、画像のデータがキャプチャされる。例えば、シーンの画像は、ビデオキャプチャデバイスを用いて、キャプチャされてもよく、シーンは、1つまたは複数のオブジェクトを含む。データまたは画像内の対象オブジェクトが、入力オブジェクトデータ766を含むように抽出されてもよい。例えば、画像1070は、野球ボール765に関連付けられたオブジェクトデータ766を含んでよい。オブジェクトデータは、分類器階層を進行するとき、1つまたは複数の分類器に入力として提供される。図に示すように、オブジェクトデータ766は、野球ボール分類器808への入力として提供されて、オブジェクトデータ766に関連付けられたオブジェクトが野球ボール分類器808によって表されるオブジェクトクラスに該当するか否かの決定に使用できる確率を生成する。すなわち、分類器808は、対象オブジェクトが野球ボールであるか否かを決定する。
例えば、入力オブジェクトデータ766を所与とすると、分類器808は、入力されたオブジェクトデータが分類器808によって表されるオブジェクトクラスに属する確率を生成する。確率は、訓練中に規定された分類器808の重みに部分的に基づいて生成される。図に示すように、入力オブジェクトデータ766によって表される対象オブジェクトは、野球ボール分類器808によって表されるオブジェクトクラスに該当する82パーセントの確率を有する。
図8Cは、本開示の一実施形態による、シーンの対象オブジェクトの識別のための分類器階層の使用を示すデータフロー図である。例えば、図8Cは、図8Bに示された分類器使用プロセスのデータフローを示す。図に示すように、シーンからの画像1070を受信する。画像1070は、図7に紹介されたシーン700から(例えば、自律型パーソナルコンパニオン100の画像キャプチャデバイスを用いて)キャプチャされてもよく、シーンは、ディスプレイに示された野球ボール765とランプ740とを含む。詳細には、画像1070を分析して、野球ボールの画像オブジェクト766及びランプの画像オブジェクト等、画像1070内の画像オブジェクトを識別してもよい。本発明の実施形態を使用して、分類器階層820を歩いて、これらの対象の及び/または識別されたオブジェクト(例えば、野球ボール765またはランプ740)を認識または識別してもよい。
認識の対象となる識別されたオブジェクトは、野球ボール765である。キャプチャされた画像内で野球ボール765に関連する画像オブジェクトが、オブジェクトデータ766によって表される。オブジェクトデータ766は、その対象オブジェクトがどのオブジェクトクラスに属するかを識別するために、分類器階層820への入力として提供される。具体的には、オブジェクトデータ766は、家具分類器831、丸いオブジェクト分類器835...生き物分類器832等、グループ830の各一般分類器への入力として提供される。オブジェクトデータ766を所与として、一般分類器を実行して、一致した一般分類器を識別する。
例えば、グループ830の一般分類器を全て合わせると、同じ入力オブジェクトデータ766を用いて、複数の確率が生成される。これらの確率は、オブジェクトデータ766がグループ830の各一般分類器によって表される一般クラスにどのくらい近く該当するかを示す。詳細には、対応する一般分類器は、対応する重みのセットを含み、対応する重みのセットは、対応するオブジェクトクラスの内部表現を規定し、オブジェクトデータが対応するオブジェクトクラスに該当する確率の生成に使用できる。対応する重みのセットは、ニューラルネットワーク190に供給された対応する訓練データから学習される。具体的には、各分類器が実行され、前述のように、オブジェクトデータが対応する一般分類器のクラス(例えば、親クラス)に属する対応する確率を生成する。一実施形態においては、一致した一般分類器が、野球ボール766を表すオブジェクトデータが一致した分類器(例えば、丸いオブジェクト835)によって表される一般的/親クラスと一致する複数の確率のうち最大の確率を有するとして選ばれる。
図8Cに示すように、丸いオブジェクト一般分類器835が、経路895aで示されるように、キャプチャされた画像1070の(対象オブジェクトである野球ボール765の)オブジェクトデータ766に対して選択される。一実施形態においては、丸いオブジェクトの一般分類器835は、野球ボール766を表すオブジェクトデータが一致した分類器によって表される一般的/親クラス(例えば、丸いオブジェクト835)と一致する最も高い確率を有するとして選択される。確率は、所定の限度も超えてよい。他の実施形態においては、各確率が所定の限度を超える時、一般分類器が選択される。
各一般分類器は、子ノードの木、または、分類器(一般分類器によって規定される親分類器の下のサブ分類器)の木850を有する。分類器の木は、親または一般分類器の下に、分類器の1つまたは複数の階層レベルを含む。すなわち、各レベルは、少なくとも1つの他のレベルに接続される。例えば、木850の親ノードの役割を果たす丸いオブジェクト分類器835は、スポーツ分類器861及び地球分類器865を含む、分類器の少なくとも1つの階層レベル860を有する。追加のレベルが、分類器の子ノード(複数可)またはレベルの下に規定されてもよい。例えば、野球ボール分類器808、バスケットボール分類器871、サッカーボール分類器872、及び、バレーボール分類器873を含む、分類器の階層レベル870が、スポーツ分類器861の下にある。また、世界地図分類器881及び熱気球分類器882を含む他の階層レベル880は、地球分類器865の下に規定されてもよい。図8Cは、例示的なもので、1つまたは複数のレベルに配置された親ノードの下に1つまたは複数の子ノードを含んでよい(例えば、木850に親子関係で配置された高い親ノードの下にn個の子ノード)。
次に続く各下位のレベルの分類器は、段々と具体的になる訓練データセットを用いて訓練される。例えば、丸いオブジェクト分類器850を学習するのに使用される訓練データは、野球ボール及び熱気球等、丸いオブジェクトであると規定され得るオブジェクトの大まかなセットを含む。次のレベルでは、より具体的な訓練データセットを使用して、(例えば、野球ボール、バスケットボール、テニスボール、バレーボール等で訓練された)スポーツ分類器861、及び、(例えば、地図、熱気球等で訓練された)地球分類器865等、より具体的な分類器を学習/構築する。次の下位のレベルでは、さらに具体的な訓練データセットを使用して、様々な野球ボールを用いて訓練された野球ボール分類器808、様々なバスケットボールを用いて訓練されたバスケットボール分類器871、様々なサッカーボールを用いて訓練されたサッカーボール分類器872、及び、様々なバレーボールを用いて訓練されたバレーボール分類器873を含む、スポーツ分類器861の下の分類器等、より具体的な分類器を学習/構築してもよい。
一般分類器835が選択及び/または一致すると、一般分類器835に関連付けられた対応する子ノードの木または分類器の木850を、オブジェクトデータ766を用いて進行する。詳細には、分類器の木の各レベルの各子ノードは、そのレベルの各分類器を用いて分析される。図8Cに示すように、一般分類器835で表される親ノードから、スポーツ分類器860及び地球分類器865を含む次のレベル860に歩いて木を下りる。すなわち、レベル860の分類器を入力オブジェクトデータ766を用いて分析して、オブジェクトデータが各分類器で表されるオブジェクトクラスにどれだけ近く一致するかを決定する。例えば、スポーツ分類器861は、野球ボールを表すオブジェクトデータ766がスポーツ分類器861によって表されるオブジェクトクラスにどれだけよく一致するかを示す確率を生成する。図8Cに示すように、スポーツ分類器861は、オブジェクトデータ766がスポーツ分類器によって規定されるオブジェクトクラスに該当する68パーセントの確率を生成し、地球分類器865は、オブジェクトデータ766が地球分類器によって規定されるオブジェクトクラスに該当する32パーセントの確率を生成する。スポーツ分類器861は、最も高い確率を有するとして選択される。さらに、スポーツ分類器861によって生成される確率は、所定の限度を超える。従って、オブジェクトデータ766は、スポーツ分類器861によって表されるスポーツクラス(例えば、スポーツに関連するオブジェクトのクラス)に属すると推測される。さらに、地球分類器865は、確率が低く、所定の閾値を満たさないので、選択されず、よって、地球分類器865の下の子ノードは実行されない。
従って、分類木850を通る経路が次のレベル870に行って、どの分類器が入力オブジェクトデータ766に一致するかを決定する。すなわち、スポーツ分類器861として親ノードを有するレベル870の分類器を入力オブジェクトデータ766を用いて分析して、オブジェクトデータが各分類器によって表されるオブジェクトクラスにどのくらい近いかを決定する。また、地球分類器865として親ノードを有するレベル880の分類器は、地球分類器865が考慮から外されているので、分析されない。スポーツ分類器861の下のレベル870の各分類器ノードは、オブジェクトデータ766を処理して、オブジェクトデータ766が各分類器によって表される確率を生成する。例えば、野球ボール分類器808を実行して、野球ボールを表すオブジェクトデータ766が野球ボール分類器によって表されるオブジェクトクラスにどれくらい良く一致するかを示す確率を生成する。類似のプロセスを使用して、バスケットボール分類器871、サッカーボール分類器872、及び、バレーボール分類器873に関する確率を生成する。図に示すように、野球ボール分類器は、オブジェクトデータ766が野球ボール分類器808によって規定されるオブジェクトクラス(野球ボール)に該当する82パーセントの確率を生成する。同様に、バスケットボール分類器は、32パーセントの確率を生成し、サッカーボール分類器は、12パーセントの確率を生成し、バレーボール分類器は、42パーセントの確率を生成する。野球ボール分類器808は、例えば、確率が最も高くかつ所定の限度を超えるか、あるいは、確率が最も高い、所定の限度を超える、のいずれかの条件を満たすものとして野球ボール分類器808が選択される。従って、オブジェクトデータ766によって表される対象オブジェクト(例えば、野球ボール765)が野球ボール分類器808によって表される野球ボールオブジェクトクラスに該当し、野球ボールであるという決定が推測される。
一実施形態においては、丸いオブジェクト分類器835として親ノードを有する分類木850を、閾値を超える確率を生成する各レベルの分類器と照合することによって進行する。最終分類器(例えば、野球ボール分類器808)は、分類器850の木の最深レベルに位置しているとして選択される。所定の閾値を超える確率を有する複数の分類器が最深レベルにある場合、最も高い確率を有する分類器が、最終分類器として選択される。例えば、1つまたは複数のオブジェクトを有する画像が、前述のように、一般分類器を含む分類器階層に入力される。所定の限度を超える出力確率を有する一般分類器が、アクティブリストに入れられる、または、アクティブリストに残り、(対応する子ノードまたは分類器の木の)子分類器ノードが再帰的に実行される。所定の限度を超えないアクティブリストの一般分類器は、アクティブリストから除かれ、一般分類器の子ノードが、再帰的に除かれる(例えば、実行されない)。アクティブリストの分類器のクラスに属しているオブジェクトは、観察されているので、オブジェクト(またはシーン)の記述は、アクティブリストに現在ある分類器から構成される。
一実施形態においては、分類器階層は、例えば、図8Cに記載されるように、階層の残りの分類器を変更せずに、容易に修正可能である。すなわち、分類器階層を含む階層視覚システムは、システムの残りを変更せずに任意の部分を変えることができるように、モジュール型である。例えば、任意の親もしくは一般分類器または子分類器が、他の分類器を変えることなく、修正(例えば、編集、除去、移動等)できる。また、新しい親もしくは一般分類器、または、子分類器を、他の分類器を修正することなく、分類器階層に追加できる。分類器階層はモジュール型なので、木に対する修正は、追加の再訓練(例えば、分類器階層への修正を構築するための人工知能の使用)を必要としない。すなわち、分類器階層は、スケーラブルであり、任意のレベルに新しい分類器を導入するように構成される。このようにして、新しいオブジェクトクラス(例えば、親または一般クラス)及びそれらの対応するサブクラス(例えば、親クラスのバリアントまたはオブジェクトクラス)を、木に追加できる、または、木から取り除くことができる。
分類器階層の横断は、限定的なリソースを用いて素早く行われてよい。すなわち、木検索を用いたオブジェクトの特性の識別は、横断が限定的なリソースを用いて行われ得るので、計算リソースを節約する。分類器階層が構築されると、木の横断は、人工知能モードで等、GPUプロセッサの使用を必要とせずに、(例えば、プログラマブルプロセッサ、特定用途向けもしくは予めプログラムされたプロセッサもしくはチップ等を用いて)行われてよい。代わりに、キャプチャされたデータの分析は、簡単な分類器のレベルに組織された分類器階層の横断を介して行われる。木の横断は、根レベル(丸いオブジェクト等、より一般的なオブジェクトタイプ)の分類器の検出を通して行われ、オブジェクトクラスの特定のバリアント(例えば、ボールのオブジェクトクラスの野球ボールのバリアント)を規定する特徴を有するサブ分類器の方に下りる。
一実施形態においては、シーン内の1つまたは複数の識別されたオブジェクトは、さらに、対応するシーンにコンテクスト付けを行ってよい。例えば、シーン700で識別され得るオブジェクトは、犬、ボール、人間、を含み得る。これらのオブジェクトのコンテクスト付けは、犬と取って来い遊びをする人間を示してもよい。
一実施形態においては、最近、識別された親または一般分類器のアクティブリストと、最近、識別されていない親または一般分類器を含む非アクティブリストとを使用して、分類器階層(例えば、木820)をより効率的により速く横断する。詳細には、(例えば、ビデオフレームのシーンのオブジェクトのデータに関して)アクティブリストの分類器階層の数個の親または一般分類器だけを、最初に、試す及び/またはサンプリングする。これらの親または一般分類器は、最近、検索されたオブジェクトを規定するアクティブリスト815に含まれる。残りの親または一般分類器は、最近、検索されていないオブジェクトの親クラスを規定する非アクティブリストに含まれる。言い換えると、非アクティブリストは、古くなった親または一般分類器を含む。
検索中、アクティブリストからの親または一般分類器が肯定の結果を提供しない場合、その分類器は、非アクティブリストに移動されてもよい。さらに、非アクティブリスト上の分類器は、アクティブリストの分類器が、一度に1つ試される、または、サンプリングされ(且つ、おそらく失敗した)後、一度に1つ、試される、または、サンプリングされる。その場合、非アクティブリストの分類器が肯定の結果を与える場合、その親または一般分類器は、アクティブリストに移動されてもよい。アクティブリスト及び非アクティブリストは、古くなったオブジェクトにつながる経路を避けることによって、分類器階層を検索及び横断する効率的な方法を提供する。すなわち、分類器階層において、親または一般分類器がアクティブリストにある場合、その親または一般分類器は、そのサブ分類器により高い検索機会を提供する。一実施形態においては、より高い優先順位のコンテクストが、より低い優先順位のコンテクストに関連付けられたオブジェクトよりも、より最近検索されたオブジェクトに関連付けられる。従って、より高い優先順位のコンテクストに関連付けられたより高い優先順位の親または一般分類器は、より低い優先順位のコンテクストを有するオブジェクトよりも、同じコンテクストのオブジェクトに対応するより良い機会を有する。
自律型パーソナルコンパニオンの様々なモジュールの詳細な記載を用いて、図9のフロー図900は、本開示の一実施形態による、人工知能を通して構築された様々な種類の特性(例えば、視覚、音声、テキスト等)の分類器階層を用いたオブジェクト識別の方法を開示する。フロー図900は、前述のように、(例えば、AIエンジン190内の)コンパニオン100内で実施されてもよい、及び/または、前述のように、バックエンドサーバ140と組み合わせて実施されてもよい。他の実施形態においては、フロー図900は、コンパニオン100のプログラム可能もしくは特定用途向けの、または、予めプログラムされたプロセッサを用いて実施されてもよい。
910において、方法は、シーンの画像のオブジェクトを識別することを含む。これは、シーンのデータをキャプチャすることを含んでよく、シーンは、1つまたは複数のオブジェクトを含む。詳細には、自律型パーソナルコンパニオンは、ユーザが居る環境等、環境に関連する様々な種類のデータをキャプチャするように構成される。すなわち、キャプチャされたデータは、ユーザ及び/またはユーザが居る環境に関連するデータを含む。一実施形態においては、データは、ユーザにサービスを提供する自律型パーソナルコンパニオンによってキャプチャされる。例えば、パーソナルコンパニオンは、ユーザの体験をコンテクストに当てはめるために、環境のデータを継続的にキャプチャしてもよい。一実施形態においては、自律型パーソナルコンパニオンは、ユーザが居る環境等、環境に関するビデオ及び/または画像データをキャプチャ(例えば、視覚データを収集)するように構成されてもよい。一実施形態においては、パーソナルコンパニオンは、ユーザの体験をコンテクストに当てはめるために、環境のビデオ/画像データを継続的にキャプチャしてもよい。コンテクスト付けは、パーソナルコンパニオンが、(例えば、ユーザ入力無しに)関連するサービスを提供するのを可能にする、及び/または、(リクエストが行われた環境の現在のコンテクスト内にリクエストを置いて)ユーザからのリクエストをより良く理解するのを可能にする。他の実施形態においては、パーソナルコンパニオンは、ユーザのリクエストで、環境に関するデータをキャプチャしている。
キャプチャされたデータは、環境をコンテクストに当てはめるために関連する任意の種類のデータであってよい。例えば、データは、ユーザ及び/または環境に関連するキャプチャされた音声及び視覚データを含んでよい。自律型パーソナルコンパニオンの画像キャプチャシステムを使用して、環境の特定のシーンのビデオ及び/または画像データをキャプチャしてもよく、シーンは、一つの瞬間、または、瞬間の連続であってよい。画像キャプチャシステムは、特定のオブジェクトに焦点を合わせるようにシステムのレンズを移動させる、グレアを避けるようにレンズを移動させる、最少量のノイズでデータをキャプチャするようにレンズの設定を調整する等、最も良くデータをキャプチャするように操作されてもよい。さらに、オブジェクトを識別するために他の種類のデータがキャプチャされてもよい。例えば、キャプチャされたデータは、画像データ、ビデオデータ、音声データ、テキストデータ、温度データ、圧力データ、赤外線データ、音波データ、亜音速データ、超音波データ等を含んでよい。
一実施形態においては、データのキャプチャを伴うアクションの少なくとも1つは、自律型パーソナルコンパニオンを移動することを含む。説明目的のみで前述したように、移動には、データを収集するためにより良い位置になるようにパーソナルコンパニオンをユーザ及び/または対象オブジェクトに近付けることが含まれ得る。ユーザに対して、パーソナルコンパニオンは、様々な目的のために移動でき、例えば、ユーザと通信するためにより良い位置とするため、ユーザが部屋または家または建物内を移動するにつれてユーザの後を追いかけてパーソナルコンパニオンもユーザと一緒に移動するため、表示可能な表面(例えば、部屋の壁)への画像の投影を容易にする位置にパーソナルコンパニオンを配置するため等の目的が挙げられるが、これらの目的に限られるものではない。同様に、パーソナルコンパニオンは、オブジェクトの方に近付くこと、日光のグレアを避けて移動すること、妨害するオブジェクトから離れるように移動すること等を含む、環境に関連するデータを最も良くキャプチャするように移動されてもよい。一実施態様においては、パーソナルコンパニオンの画像キャプチャシステムは、特定のオブジェクトに焦点を合わせるようにシステムのレンズを移動させる、グレアを避けるようにレンズを移動させる、最少量のノイズでデータをキャプチャするようにレンズの設定を調整する等、最も良くデータをキャプチャするように操作されてもよい。
詳細には、キャプチャされたデータを分析して、オブジェクトに関連するデータを分離する。これは、後処理で、または、データキャプチャ時に行われてよい。例えば、キャプチャシステムは、(例えば、第1のオブジェクトの大半を含む対象エリアにレンズの焦点を合わせて)第1のオブジェクトに関するデータの大半をキャプチャするように操作されてもよい。他方、後処理において、キャプチャされたデータを解析して、第1のオブジェクトに関連するデータのみを決定する。
920において、方法は、オブジェクトに関して決定されたオブジェクトデータを用いて、オブジェクトの大まかなカテゴリを規定する一般分類器グループから第1の一般分類器を選択することを含み、第1の一般分類器は、オブジェクトを表しているとして選択され、各一般分類器は、対応する分類器の階層木の一部を、木の親ノードとして形成する。
前述のように、第1の一般分類器は、一般分類器グループのそれぞれを、入力データを用いて実行することによって生成された複数の確率を決定することによって選択されてもよい。各一般分類器は、対応するオブジェクトクラスの内部表現を規定する対応する重みのセットを含む(例えば、野球ボール分類器は、野球ボールを規定する重みを含む)。対応する重みのセットは、例えば、ニューラルネットワークに供給される対応する訓練データから学習される。各一般分類器は、入力データが、対応する一般分類器の重みによって表され、対応する一般分類器の重みを用いるオブジェクトクラスに属する確率を生成する。詳細には、一般分類器グループのうち、第1の一般分類器は、最も高い確率を有する、及び/または、所定の限度を超える、従って、入力は、第1の一般分類器に一致する。
930において、この方法では、最深レベルの最終分類器(野球ボール分類器)に到達して、オブジェクト(シーンの野球ボール)のオブジェクトクラス(例えば、野球ボール)を識別するまで、第1の木の1つまたは複数のレベルで分類器をオブジェクトデータと照合することによって、第1の一般分類器(例えば、親ノード)の第1の分類器の木(例えば、親ノードの下の子ノードの木)を進行する。第1の木は、それに続く下位のレベルが、より具体的な訓練データを用いて訓練されたより具体的な分類器を含むように、親分類器の下に分類器の1つまたは複数の階層レベルを含む。さらに、第1の木の各分類器は、適切な訓練データを用いた訓練中に計算された対応する重みのセットを含む。
この進行では、第1の一般分類器のすぐ下の次に高いレベルで開始して、少なくとも1つの確率が決定されることを含み、少なくとも確率は、オブジェクトデータを用いて次に高いレベルの1つまたは複数の分類器を実行することによって生成される。オブジェクトデータは、そのレベルの最も高い確率を有する一致した分類器に一致する、及び/または、所定の限度を超える。一致した分類器に接続された隣接する下位のレベルがある場合、隣接する下位のレベルは、次に高いレベルとしてラベル付けされる。プロセスは、それ以上隣接するまたは下位のレベルが無くなるまで、次に高いレベルを用いて再帰的に行われ、最後に一致した分類器が、最終分類器である。
一実施形態においては、進行では、所定の限度を超える各レベルで、分類器を選択及び/または照合し、最深レベルに到達するまで各レベルで再帰的に方法を適用する。最終分類器(例えば、野球ボール分類器808)は、分類器の木の最深レベルに位置するとして選択される。所定の閾値を超える確率を有する複数の分類器が最深レベルにある場合、最も高い確率を有する分類器が、最終分類器として選択される。
一実施形態においては、分類器階層の横断は、親または一般分類器のアクティブリスト及び非アクティブリストを実施することによってフィルタリングされてもよい。アクティブリストは、分類器階層を用いて最近識別されたオブジェクトを含むオブジェクトの親クラスに関連付けられた親または一般分類器を含む。他の実施形態においては、アクティブリストは、分類器階層を用いて識別されたオブジェクトを含む環境のコンテクスト付けに関連付けられた親または一般分類器を含む。他方、非アクティブリストは、分類器階層を用いて最近、識別されていないオブジェクト(例えば、古くなったオブジェクト)に関連付けられた親または一般分類器を含む。すなわち、これらのオブジェクトは、パーソナルコンパニオンが最近遭遇していない環境のコンテクスト付けに関連付けられてよい。例えば、夜遅い場合、早い時間のコンテクスト付けは、ユーザが仕事に行く準備ができていてよく、コンテクスト付けに関連するオブジェクトは、一日の遅い時間に生じる環境のいずれの現在のコンテクスト付け(例えば、くつろいで、ゲームコンソールでゲームアプリケーションをプレイする)にも関連しない。従って、方法は、非アクティブリストの親または一般分類器を分析する前に、現在のコンテクスト付けに対応するアクティブリストの親または一般分類器を分析することを含んでよい。従って、非アクティブリストの親または一般分類器は、分析しなくてよいので、古くなった親または一般分類器は、親または一般分類器を通じた最初のパスで最初に考慮されず、必要とされる計算は少なくなる。
詳細には、最近、識別された親または一般分類器のアクティブリストを使用して、分類器階層(例えば、木820)の横断をより効率的により速くしてもよい。詳細には、第1の確率サブセットが、最近識別されたオブジェクトを有する関連する分類器を有する分類器を含む一般分類器のアクティブリストの分類器を実行することによって決定される。第1の一般分類器がアクティブリストにある時、オブジェクトデータは、第1の確率サブセット内で、最も高い確率を有する及び/または所定の閾値を超える第1の一般分類器と一致する。
また、最近、識別された親または一般分類器のアクティブリストと、親または一般分類器の非アクティブリストを使用して、分類器階層(例えば、木820)の横断をより効率的及びより速く行ってよい。詳細には、最近識別されたオブジェクトを有する関連する分類器を有する分類器を含む一般分類器のアクティブリストの分類器を実行して、第1の確率サブセットを決定する。オブジェクトデータが、アクティブリストのいずれの分類器にも一致しない(例えば、閾値を満たさない)と決定される場合がある。従って、関連のより少ない分類器を含む一般分類器の非アクティブリストの分類器を実行して、第2の確率サブセットを決定してもよい。第1の一般分類器が非アクティブリストにある時、オブジェクトデータは、第2の確率サブセット内の最も高い確率を有する及び/または所定の閾値を超える第1の一般分類器と一致する。
図10は、本開示の一実施形態による、人工知能を通して構築された視覚特性の分類器階層を用いてオブジェクトを識別するための画像フレーム内のオブジェクトのターゲッティングの図である。一実施形態においては、パーソナルコンパニオンの画像キャプチャシステムは、対象エリアに焦点を合わせるように操作され、対象エリアは、シーンのオブジェクトを含んでよい。これは、画像をキャプチャする時、画像の中心に対象エリアを置くことによって実施されてもよい。これは、キャプチャされたデータに焦点を合わせて、オブジェクトに関連するデータのみを分析するように行われてよい。一実施態様においては、画像データは、第1のオブジェクトにズームすることによって、または、パーソナルコンパニオンを第1のオブジェクトに近付けることによって、処理前の関連データのみを含むようにターゲットを絞る。他の実施態様において、画像データは、後処理を通して分析されて、キャプチャされたデータセットから第1のオブジェクトに関連付けられた関連データを識別する。例えば、オブジェクトは、キャプチャされた画像の中心にあってよい。図10に示すように、第1のキャプチャされた画像1070は、線741aと741bの間でキャプチャ及び/またはフレームで囲まれた図7で最初に紹介した画像を含んでよい。第1のキャプチャされた画像1070は、野球ボール765のデジタル画像を示しているディスプレイ760の部分を含む。さらに、第1のキャプチャされた画像1070は、テーブルに置かれたランプ740を含んでよい。図に示すように、垂直の線1075bと水平の線1075aとは、キャプチャされた画像1070の中心の識別に使用される基準システムを形成し、野球ボール765は、中心を外れている。
野球ボール765は、識別のために関心オブジェクトとして決定されてもよく、従って、識別されていないオブジェクト765は、(例えば、画像キャプチャシステムまたはコンパニオンを操作して)画像の第2の再キャプチャを通して、または、後処理を通して、新しくキャプチャまたは修正された画像フレーム1080の中心にあってよい。従って、ボール765は、ここで、垂直の線1085bと水平の線1085aを含む基準システムによって示されるように、キャプチャされた画像フレーム1080の中心となる。ランプ740は、画像フレーム1070に完全に収まっていたが、画像フレーム1080では、ランプ740の一部のみがキャプチャされている。追加の操作及び/または編集(例えば、画像キャプチャシステムの操作及び/または後処理)を行って、野球ボール765のみを含むように、キャプチャされた画像フレームをさらに分離してもよい。
従って、様々な実施形態において、本開示は、自律型パーソナルコンパニオンによってキャプチャされたシーン内のオブジェクトを識別するように、また、横断することによって、関心オブジェクトを識別できる分類器階層を用いるように構成されたシステム及び方法を記載する。
本明細書に記載の様々な実施形態は、本明細書に開示した様々な特徴を用いて組み合わせ、または、集められて特定の実施態様にしてよいことを理解すべきである。従って、提供された例は、可能なほんの一例であり、様々な要素を組み合わせて、より多くの実施態様を規定することによって可能な様々な実施態様を制限するものではない。ある例においては、一部の実施態様は、開示のまたは同等の実施態様の趣旨を逸脱せずに、より少ない要素を含んでよい。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な消費者家電、ミニコンピュータ、メインフレームコンピュータ等を含む、様々なコンピュータシステム構成を用いて実践されてもよい。本開示の実施形態は、有線または無線のネットワークを通してリンクされるリモート処理装置によってタスクを行う分散コンピュータ環境でも実践できる。
上記実施形態に留意して、本開示の実施形態は、コンピュータシステムに記憶されたデータを伴う様々なコンピュータ実施操作を採用できることを理解されたい。これらの操作は、物理量の物理的操作を必要とする操作である。本開示の実施形態の一部を形成する本明細書に記載の操作はいずれも、有用な機械操作である。開示の実施形態は、これらの操作を行うデバイスまたは装置にも関する。装置は、必要な目的のために特に構築できる、または、装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または構成される汎用コンピュータであってよい。詳細には、様々な汎用機械が、本明細書の教示に従って書かれたコンピュータプログラムと共に使用できる、または、必要な操作を行うためにより専門化された装置を構築するとより便利な場合がある。
開示は、コンピュータ可読媒体上のコンピュータ可読コードとしても実現できる。コンピュータ可読媒体は、データを記憶できる任意のデータ記憶装置で、データは、その後、コンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例は、ハードドライブ、ネットワーク接続型記憶装置(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、並びに、他の光学式及び非光学式のデータ記憶装置を含む。コンピュータ可読媒体は、コンピュータ可読コードが分散して記憶、実行されるように、ネットワーク結合コンピュータシステムを介して分散されたコンピュータ可読非一時的媒体を含み得る。
方法の操作を特定の順序で記載したが、他のハウスキーピング操作が、操作間に行われてよい、または、操作は、わずかに異なる時点に生じるように調整されてもよい、または、オーバーレイ操作の処理が所望のように行われる限り、処理と関連付けられた様々な間隔で処理操作の発生を可能にするシステムに分散されてもよいことを理解すべきである。
上記開示は、理解を明確にするためにある程度、詳細に記載したが、一定の変更及び修正が添付の特許請求の範囲内で実施できることは明らかである。従って、本実施形態は制限的ではなく説明的なものとみなされるべきであり、本開示の実施形態は、本明細書に示される詳細に限定されず、添付の特許請求の範囲及び同等物の範囲内で修正されてもよい。