(57)【特許請求の範囲】
【請求項１】
ロボットの１つ以上のプロセッサによって実装される方法であって、
前記ロボットの環境内のオブジェクトに対する分類を判定することを含み、
前記分類を判定することが、
前記ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、前記オブジェクトを捕捉し、前記ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記センサデータの前記埋め込みを、前記ロボットの前記コンピュータ可読媒体のうちの１つ以上に局所的に保存された分類モデルに適用することと、
前記埋め込みを前記分類モデルに適用することに基づいて前記分類を判定することと、を含み、
前記方法が、
前記ロボットによって、前記オブジェクトに向けられるアクションの実行中にユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することと、
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することに応じて、前記局所的に保存された分類モデルを更新することと、を含み、
前記局所的に保存された分類モデルを更新することが、前記ニューラルネットワークモデルの再トレーニングなしで発生する、方法。
【請求項２】
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することが、
前記ユーザインターフェース入力が、前記判定された分類と相反する前記オブジェクトの代替分類を示すと判定することを含む、請求項１に記載の方法。
【請求項３】
前記局所的に保存された分類モデルを更新することが、前記代替分類に基づいて前記局所的に保存された分類モデルを更新することを含む、請求項２に記載の方法。
【請求項４】
前記代替分類に基づいて前記局所的に保存された分類モデルを更新することが、
前記局所的に保存された分類モデル内の前記代替分類にマッピングされている現在の代替分類埋め込みを識別することと、
前記代替分類埋め込みに基づいて、および前記センサデータの前記埋め込みに基づいて、調整された代替分類埋め込みを判定することと、を含む、請求項３に記載の方法。
【請求項５】
前記代替分類埋め込みに基づいて、および前記センサデータの前記埋め込みに基づいて、前記調整された代替分類埋め込みを判定することが、
前記代替分類埋め込みと前記センサデータの前記埋め込みとの平均に基づいて、前記調整された代替分類埋め込みを判定することを含む、請求項４に記載の方法。
【請求項６】
前記センサデータおよび前記代替分類を保存することと、
前記局所的に保存された分類モデルを更新することに続いて、
前記ニューラルネットワークモデルの新しいバージョンおよび前記分類モデルの新しいバージョンを受信することと、
前記センサデータを、前記ニューラルネットワークモデルの前記新しいバージョンへの入力として適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの前記新しいバージョンの上で、前記センサデータの新しい埋め込みを生成することと、
前記分類モデルの前記新しいバージョンにおいて、前記代替分類の新しい代替分類埋め込みを識別することと、
前記分類モデルの前記新しいバージョンにおいて、前記センサデータの前記新しい埋め込みに基づいて、前記代替分類の前記新しい代替分類埋め込みを調整することと、をさらに含む、請求項４に記載の方法。
【請求項７】
前記代替分類に基づいて前記局所的に保存された分類モデルを更新することが、
前記局所的に保存された分類モデルが、前記代替分類に対するいずれかの代替分類埋め込みを欠くと判定することと、
それに応じて、前記局所的に保存された分類モデル内の代替分類埋め込みを保存することと、を含み、
前記代替分類埋め込みが、前記センサデータの前記埋め込みに基づいている、請求項３に記載の方法。
【請求項８】
前記局所的に保存された分類モデルを更新することは、
前記ニューラルネットワークモデルへの入力として、前記オブジェクトを捕捉し、前記ロボットの前記センサによって生成される追加のセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記追加のセンサデータのさらなる埋め込みを生成することと、
前記さらなる埋め込みおよび前記代替分類に基づいて、前記局所的に保存された分類モデルを更新することと、をさらに含む、請求項３に記載の方法。
【請求項９】
前記埋め込みを前記分類モデルに適用することに基づいて前記分類を判定することが、
前記埋め込みが、代替分類にマッピングされた代替分類埋め込みよりも前記分類にマッピングされた分類埋め込みにより類似していると判定することに基づいて、前記分類を判定することを含む、請求項１に記載の方法。
【請求項１０】
前記局所的に保存された分類モデルを更新することが、
前記埋め込みにあまり類似しないように前記分類埋め込みを変更することに基づいて、前記分類に対する調整された分類埋め込みを判定することを含む、請求項９に記載の方法。
【請求項１１】
ロボットの１つ以上のプロセッサによって実装される方法であって、
前記ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、前記ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記ロボットの前記コンピュータ可読媒体のうちの１つ以上に局所的に保存された特徴モデルに前記埋め込みを適用することに基づいて、前記センサデータの特徴を判定することであって、前記特徴モデルが、前記特徴を前記特徴の特徴埋め込みにマッピングし、かつ、追加特徴を対応する追加特徴埋め込みにマッピングし、前記特徴を判定することが、
前記特徴にマッピングされた前記特徴埋め込みに対する前記センサデータの前記埋め込みの類似性に基づいて、前記特徴を判定することを含む、前記センサデータの特徴を判定することと、
前記判定された特徴に基づいて、前記オブジェクトに向けられるロボットアクションを実行することと、
前記オブジェクトに向けられる前記ロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記追加特徴のうちの特定の追加特徴を示すと判定することと、
前記ユーザインターフェース入力が、前記特定の追加特徴を示すと判定することに応じて、
前記特徴モデルにおいて、前記センサデータの前記埋め込みに基づいて前記特定の追加特徴の前記追加特徴埋め込みを調整することと、
を含む、方法。
【請求項１２】
前記特徴が、第１の分類であり、前記特定の追加特徴が、第２の分類である、請求項１１に記載の方法。
【請求項１３】
前記特徴が、第１の境界エリアであり、前記追加特徴が、第２の境界エリアである、請求項１１に記載の方法。
【請求項１４】
前記第１の境界エリアが、複数の第１のピクセルによって定義され、前記第２の境界エリアが、複数の第２のピクセルによって定義される、請求項１３に記載の方法。
【請求項１５】
前記ユーザインターフェース入力が、ユーザがクライアントデバイスを介して前記第２の境界エリアを示すことに基づいて、前記クライアントデバイスで生成され、前記第２の境界エリアは、前記センサデータに基づく画像の表示中に、前記クライアントデバイスを介して示される、請求項１３に記載の方法。
【請求項１６】
前記ロボットアクションが不正確であることを示す最初のユーザインターフェース入力に応じて、前記クライアントデバイスに前記画像を提供することをさらに含む、請求項１５に記載の方法。
【請求項１７】
ロボットの１つ以上のプロセッサによって実装される方法であって、
前記ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、前記ロボットの環境内のオブジェクトを捕捉し、前記ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記ロボットの前記コンピュータ可読媒体のうちの１つ以上に局所的に保存された特徴モデルに前記埋め込みを適用することに基づいて、前記センサデータの特徴を判定することであって、前記特徴モデルが、前記特徴を前記特徴の特徴埋め込みにマッピングし、かつ、複数の追加特徴を対応する複数の追加特徴埋め込みにマッピングし、前記特徴を判定することが、
前記複数の追加特徴埋め込みのいずれよりも前記センサデータの前記埋め込みにより類似している前記特徴にマッピングされた前記特徴埋め込みに基づいて前記特徴を判定することを含む、前記センサデータの特徴を判定することと、
前記判定された特徴に基づいてロボットアクションを実行することと、
前記ロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記ロボットアクションが不正確であることを示すと判定することと、
前記ユーザインターフェース入力が、前記ロボットアクションが不正確であることを示すと判定することに応じて、
前記センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することと、
前記センサデータを含む修正インスタンスを生成することと、
ネットワークインターフェースを介して、前記修正インスタンスを１つ以上のリモートコンピューティングデバイスに送信することと、を含み、前記１つ以上のリモートコンピューティングデバイスが、前記修正インスタンスを使用して、前記ニューラルネットワークモデルの改訂されたバージョンを生成するための少なくとも１つのトレーニング例を生成する、方法。
【請求項１８】
前記ネットワークインターフェースを介して、前記ニューラルネットワークモデルが、
前記トレーニング例と、
追加のロボットからの追加の修正インスタンスからの追加のトレーニング例と、に基づいてトレーニングされた後、前記ニューラルネットワークモデルの前記改訂されたバージョンを受信すること、をさらに含む、請求項１７に記載の方法。
【請求項１９】
前記ユーザインターフェース入力が、前記判定された特徴が不正確であることを示すと判定することが、
前記ユーザインターフェース入力が、前記複数の追加特徴のうちの、前記判定された特徴と相反する追加特徴を示すと判定することを含む、請求項１７に記載の方法。
【請求項２０】
前記センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することが、
前記センサデータの前記埋め込みに基づいて、追加特徴埋め込みを調整することであって、前記追加特徴埋め込みが、前記複数の追加特徴埋め込みのうちの１つであり、前記局所的に保存された特徴モデル内の前記追加特徴にマッピングされている、調整することを含む、請求項１９に記載の方法。
【請求項２１】
前記修正インスタンスが、前記追加特徴の指標を含む、請求項２０に記載の方法。
【請求項２２】
前記センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することが、
前記追加特徴が、前記局所的に保存された特徴モデル内の前記複数の追加特徴埋め込みのうちのいずれにもマッピングされていないと判定することと、
それに応じて、前記局所的に保存された特徴モデル内の前記追加特徴に対する特定の特徴埋め込みを保存することと、を含み、前記特定の特徴埋め込みが、前記センサデータの前記埋め込みに基づいている、請求項１８に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
購入して使用するロボットは、様々なアクションを実行することができる可能性がある。しかしながら、状況によっては、ロボットが依然としていくつかのアクションを不正確に実行する、および／またはいくつかのアクションを実行することができない場合がある。そのような発生は、アクションを実行する際にロボットが利用するモデル（複数可）の精度および／または堅牢性の欠如、ロボットが動作する様々なおよび／または動的な環境などのような様々な要因に起因する可能性がある。さらに、アクションの不正確な実行のうちの多くの発生に対して、ロボット自体が不正確な実行を認識することができない場合がある。例えば、ロボットの制御プロセスは、実際には実行が不正確であるにもかかわらず、アクションが正確に実行されたとみなす場合がある。
【発明の概要】
【０００２】
本開示は、ロボットアクションへの人間の修正を判定および利用するための方法、装置、およびコンピュータ可読媒体（一時的および非一時的）を対象とする。それらの実装形態のいくつかは、ロボットによって実行されるアクションの人間の修正を判定することに応じて、ロボットの特徴モデルを更新することを対象としている。特徴モデルは、ロボットのみによって利用される点で、および／またはロボットに局所的に保存されるという点で、「局所」特徴モデルであることができる。特徴モデルは、対応するニューラルネットワークモデルの上で生成された埋め込みに基づいて、生成された埋め込みに最も類似する１つ以上の特徴を判定するために使用される。例えば、特徴モデルは、特徴と対応する特徴埋め込みとの間の保存されたマッピングを含み得る。特徴は、特徴モデルにおいて、生成された埋め込みに最も類似している特徴埋め込みにマッピングされている特徴に基づいて、生成された埋め込みに最も類似していると判定することができる。
【０００３】
そのような一例では、ロボットアクションを特徴に基づいて実行することができ、人間の修正は、特徴が不正確であること、および／または追加特徴が代わりに正確であること（または正確でもある）を示すことができる。人間の修正に応じて、特徴モデルを更新することができる。例えば、追加特徴にマッピングされている追加特徴埋め込みを調整することができ（すなわち、生成された埋め込みにより類似させるように）、および／またはモデル内の特徴にマッピングされている特徴埋め込みを調整することができる（すなわち、生成された埋め込みにあまり類似しないようにする）。別の例として、追加特徴がモデルに含まれていない場合、追加特徴を含めて、生成された埋め込みに基づいた（例えば、同じの）特徴埋め込みを割り当てることができる。特徴モデルは、人間の修正に応じて更新することができ、対応するニューラルネットワークモデルの再トレーニングを必要とせずに更新することができる。
【０００４】
本明細書で開示される実装形態の一特定例として、特徴モデルは分類モデルであることができる。分類モデルは、ロボットに局所的に保存することができ、分類を対応する分類埋め込みにマッピングすることができる。例えば、「ボウル」分類を分類埋め込みＡにマッピングすることができ、「カップ」分類を分類埋め込みＢにマッピングすることができ、「帽子」分類を分類埋め込みＣにマッピングすることができる、等。各分類埋め込みは、例えば、多次元共通埋め込み空間内の位置を定義する値のベクトルであることができる。
【０００５】
分類モデルに対応するニューラルネットワークモデルは、ロボットに局所的に保存することもできる。ニューラルネットワークモデルは、センサデータインスタンスの埋め込みを生成するようにトレーニングすることができ、分類モデルと連携してトレーニングすることができる。例えば、ロボットの視覚センサ（例えば、単眼カメラ、ステレオカメラ、レーザスキャナ）によって生成された視覚センサデータは、ニューラルネットワークモデルへの入力として適用することができ、適用された入力に基づいて、ニューラルネットワークモデルの上に埋め込みを生成することができる。次いで、生成された埋め込みを１つ以上の分類埋め込みと比較して、生成された埋め込みに最も類似している分類埋め込みを判定することができる。例えば、生成された埋め込みおよび分類埋め込みが、各々対応する値のベクトルである場合、生成された埋め込みと分類埋め込みとの間の距離測度を生成することができ、最小距離測度は、最も類似した分類埋め込みを示すことができる。
【０００６】
その後、最も類似した分類埋め込みに対応する分類を、視覚センサデータによって捕捉されたオブジェクトの分類として判定することができる。例えば、「ボウル」分類は、視覚センサデータによって捕捉されたオブジェクトの分類として判定することができる（すなわち、「ボウル」分類にマッピングされている分類埋め込みＡに最も類似すると判定されている生成された埋め込みに基づいて）。次いで、ロボットは、オブジェクトに向けられた１つ以上のアクションを実行することができる。例えば、ロボットはオブジェクトをピックアップして、「ボウルをピックアップしている」という可聴出力を提供することができる。
【０００７】
アクションの実行中または実行後に、分類が不正確であることを示すユーザインターフェース入力（例えば、「それはボウルではない」の音声入力）および／または代替分類が代わりに正確な分類であることを示すユーザインターフェース入力（例えば、「それは帽子です」の音声入力）を受信することができる。人の修正に応じて、局所的に保存された分類モデルを更新することができる。例えば、「帽子」が正確な分類であることを示ユーザインターフェース入力に基づいて、分類埋め込みＣ（「帽子」分類にマッピングされている）を、生成された埋め込みに基づいて調整することができる。例えば、分類埋め込みＣを、生成された埋め込みにより類似するように調整することができる。一特定例として、現在の分類埋め込みＣおよび生成された埋め込み平均し、その平均を「帽子」分類の新しい分類埋め込みとして利用することができる（例えば、新しい分類埋め込みが、「帽子」分類のマッピングされた分類埋め込みとして分類埋め込みＣに取って代わることができる）。別の例として、「ボウル」が不正確な分類であることを示すユーザインターフェース入力に基づいて、分類埋め込みＡ（「ボウル」分類にマッピングされている）を、生成された埋め込みに基づいて調整することができる。例えば、分類埋め込みＡは、生成された埋め込みにあまり類似しないように調整することができる。
【０００８】
分類モデルへのこのような調整（複数可）は、対応するニューラルネットワークモデルの再トレーニングを必要とすることなく、将来の分類の実行をすぐに改善することができることに留意されたい。例えば、追加の視覚センサデータを同じ（さらにトレーニングされていない）ニューラルネットワークモデルに適用して、上記の生成された埋め込みに非常に類似する（または同じの）追加の埋め込みを生成する場合、「帽子」分類は、（「ボウル」分類の代わりに）「帽子」分類の新しい分類埋め込みに基づいて、判定され得る。したがって、分類の実行は、ニューラルネットワークモデルのさらなる計算集約的および／または時間のかかるトレーニングを行うことなく、分類モデルの調整を通して迅速に改善することができる。このような改善された分類の実行は、オブジェクトの分類に（直接または間接的に）依存する様々なロボットアクションの実行における改善にさらにつながる。
【０００９】
いくつかの実装形態では、人間の修正を判定することに応じて、修正インスタンスを追加的または代替的に生成することができ、１つ以上のリモートコンピューティングデバイスに送信することができる。修正インスタンスは、例えば、ニューラルネットワークモデルに適用されたセンサデータ、および人間の修正に基づく修正情報（例えば、正確な特徴（複数可）を示す、および／または判定された特徴（複数可）が不正確であったことを示す）を含むことができる。例えば、前の段落の例を続けて、「ボウル」分類が不正確であることを示すユーザインターフェース入力に応じて、不正確である「ボウル」分類を生成する際にニューラルネットワークモデルに適用される視覚センサデータ、および「ボウル」分類が不正確であったことの指標を含む、修正インスタンスを生成して、送信することができる。また、例えばおよび前の段落の例を続けて、代替の「帽子」分類が代わりに正確な分類であることを示すユーザインターフェース入力に応じて、不正確である「ボウル」分類を生成する際にニューラルネットワークモデルに適用される視覚センサデータ、および「帽子」が正確な分類であることの指標を含む、修正インスタンスを生成して、送信することができる。
【００１０】
修正インスタンスは、１つ以上のリモートコンピューティングデバイスに送信することができる。リモートコンピューティングデバイスは、修正インスタンスを利用して、アクションの実行に利用される不正確な特徴（複数可）を判定する際に使用されるモデルに対応するニューラルネットワークモデル（複数可）などの、１つ以上のニューラルネットワークモデル（複数可）のトレーニングのためのトレーニング例（複数可）を生成することができる。様々な実装形態では、ニューラルネットワークモデル（複数可のトレーニングは、複数のロボットから受信した修正インスタンスに基づいている。修正インスタンスを生成および提供する複数のロボットは、異なる地理的場所および／または環境に物理的に位置付けすることができ、および／または互いに異なることができる（例えば、ハードウェア的におよび／またはソフトウェア的に異なる）。
【００１１】
ニューラルネットワークモデルの改訂されたバージョンが生成されると、複数のロボットからの修正インスタンスに基づくトレーニングを通じて、その後、ニューラルネットワークモデルの改訂されたバージョンを複数のロボットの１つ以上によって利用することができる。例えば、複数のロボットのうちの１つは、修正インスタンスのうちの１つがそのロボットによって生成されたときに利用されていた以前の対応するバージョンの代わりに、改訂されたバージョンを利用し得る。例えば、改訂されたバージョンをそのロボットに送信することができ、そのロボットは以前の局所的に保存されたバージョンを改訂されたバージョンと置き換えることができる。いくつかの実装形態では、ニューラルネットワークモデルの改訂されたバージョンに対応する特徴モデルの改訂されたバージョンも生成することができる。例えば、特徴モデルの改訂されたバージョンは、様々な特徴に対する改訂された特徴埋め込みを含むことができ（例えば、ニューラルネットワークモデルの改訂されたバージョンに対応するように）、追加特徴および対応する特徴埋め込みを含むことができる（例えば、修正インスタンスが「新しい」特徴を含む場合）、等。特徴モデルの改訂されたバージョンは、その後、複数のロボットのうちの１つ以上によって利用することもできる。
【００１２】
いくつかの実装形態では、ニューラルネットワークモデルの「新しい」バージョンを受信することに応じて、ロボットは、過去の人間の修正に基づいて対応する特徴モデルを適合させ得る。一例として、ニューラルネットワークモデルの新しいバージョンがニューラルネットワークモデルの古いバージョンと置き換わり、特徴モデルの新しいバージョンが特徴モデルの古いバージョンと置き換わると仮定する。人間の修正に応じて、視覚センサデータＸに基づいてニューラルネットワークモデルの古いバージョン上で生成された埋め込みにより類似するように、特徴Ａの特徴埋め込みを調整することによって、特徴モデルの古いバージョンが以前に更新されたとさらに仮定する。特徴モデルの新しいバージョンは、視覚センサデータＸをニューラルネットワークモデルの新しいバージョンに適用することに基づいて、ニューラルネットワークモデルの新しいバージョンの上で新しい埋め込みを生成することによって更新され得、新しい埋め込みにより類似するように（特徴モデルの新しいバージョンにおいて）特徴Ａの特徴埋め込みを調整する。このようにして、ロボットの前の特徴モデルを更新するために利用された過去の人間の修正からの前の視覚センサデータおよび前の修正情報が、ロボットによって利用され、ニューラルネットワークモデルの新しいバージョンの上で生成された埋め込みを介して特徴モデルの新しいバージョンを調整することができる。
【００１３】
いくつかの実装形態では、ロボットのアクションの人間の修正を判定することは、アクションの実行（すなわち、アクションの実行前、実行中、または実行後）に関連して受信されたユーザインターフェース入力に基づいている。ユーザインターフェース入力は、ロボットの１つ以上のセンサ（例えば、ロボットのマイクロフォン、人間のタッチおよび／またはロボットの人間の操作を判定するために使用することができるセンサ（複数可））を介して、および／またはロボットとは分離されているが、ロボットと通信しているクライアントデバイス（例えば、タブレットまたはスマートフォンを介して受信された音声またはタイプされたユーザインターフェース入力）を介して受信することができる。
【００１４】
ユーザインターフェース入力が修正を示すと判定することは、ユーザインターフェース入力自体の分析に基づくことができ、任意選択的に実行されているアクションの特徴（複数可）に基づくことができる。例えば、それは、修正（例えば、「いいえ」、「停止」、「ではない」）を示すユーザインターフェース入力内の１つ以上の用語または他の合図に基づくことができる。また、例えば、それは、追加的または代替的に、アクションの実行に利用されている特徴（複数可）へのユーザインターフェース入力に基づいて判定された特徴（複数可）の比較に基づくことができる。例えば、ユーザインターフェース入力は、オブジェクトの分類が「帽子」であることを示し、一方、アクションは、オブジェクトに対して「ボウル」の不正確に判定された分類に基づいて実行されている、という矛盾を判定するために「帽子」と「ボウル」の比較を用いる。ユーザインターフェース入力が自然言語入力（例えば、音声入力または自由形式のタイプ入力）である場合、自然言語処理（ＮＬＰ）システムおよび／または他の構成要素を、そのようなユーザインターフェース入力が修正であると判定するのに任意選択的に利用し得る。
【００１５】
様々な実装形態において、本明細書で説明される人間の修正に応じて特徴モデルを更新することは、いわゆる「ハードネガティブ」インスタンスを考慮して特徴モデルが適合されることを可能にする。すなわち、特徴モデルは、事前に更新された特徴モデルに基づいてなされた根底にある不正確な判定の結果として更新される。言い換えれば、特徴モデルは、実際には特徴（複数可）が不正確である、および／または不完全であるにもかかわらず、正確な特徴（複数可）であるとみなされたものに基づいてロボットによって実行されるアクションに基づいて更新される。このような適合は、根底にある判定が正確であるいわゆる「肯定的」インスタンスの特徴モデルを更新するよりも影響が大きい場合がある。
【００１６】
さらに、ニューラルネットワークモデルをトレーニングするためのトレーニング例を生成する際に利用するための修正インスタンスを生成および送信する様々な実装形態は、いわゆる「ハードネガティブ」トレーニング例の生成を可能にする。すなわち、トレーニング例は、トレーニング対象のニューラルネットワークモデルに基づいてなされた根底にある不正確な判定の結果である修正インスタンスに基づいて生成されるために、ハードネガティブである。
【００１７】
実装形態の例が、それらの実装形態の一部の概要を提供する目的で、前の段落で提供されている。しかしながら、本明細書で説明される様々な実装形態は、１つ以上の点で提供された例から異なることを理解されたい。
【００１８】
いくつかの実装形態では、ロボットの環境内のオブジェクトに対する分類を判定することを含む方法が提供され得る。オブジェクトに対する分類を判定することは、ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、センサデータの埋め込みを、ロボットのコンピュータ可読媒体の１つ以上に局所的に保存された分類モデルに適用することと、埋め込みを分類モデルに適用することに基づいて分類を判定することと、を含む。本方法は、ロボットによって、オブジェクトに向けられるアクションの実行中にユーザインターフェース入力を受信することをさらに含む。本方法は、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することをさらに含む。本方法は、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することに応じて、局所的に保存された分類モデルを更新することをさらに含む。局所的に保存された分類モデルを更新することは、ニューラルネットワークモデルの再トレーニングなしで発生する。
【００１９】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの１つ以上を任意選択的に含み得る。
【００２０】
いくつかの実装形態では、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することは、ユーザインターフェース入力が、オブジェクトの、判定された分類と相反する代替分類を示すと判定することを含む。これらの実装形態のいくつかでは、局所的に保存された分類モデルを更新することは、代替分類に基づいて局所的に保存された分類モデルを更新することを含む。これらの実装形態のいくつかのバージョンでは、代替分類に基づいて局所的に保存された分類モデルを更新することは、局所的に保存された分類モデル内の代替分類にマッピングされる現在の代替分類埋め込みを識別することと、
代替分類埋め込みに基づいて、およびセンサデータの埋め込みに基づいて、調整された代替分類埋め込みを判定することと、を含む。例えば、調整された代替分類埋め込みを判定することは、代替分類埋め込みとセンサデータの埋め込みとの平均に基づくことができる。いくつかの追加または代替の実装形態では、本方法は、センサデータと代替分類とを保存することと、局所的に保存された分類モデルを更新することに続いて、ニューラルネットワークモデルの新しいバージョンと分類モデルの新しいバージョンとを受信することと、センサデータをニューラルネットワークモデルの新しいバージョンへの入力として適用することと、その適用に基づいてニューラルネットワークモデルの新しいバージョンの上で、センサデータの新しい埋め込みを生成することと、分類モデルの新しいバージョンにおいて、代替分類の新しい代替分類埋め込みを識別することと、分類モデルの新しいバージョンにおいて、センサデータの新しい埋め込みに基づいて、代替分類の新しい代替分類埋め込みを調整することと、をさらに含むことができる。いくつかの実装形態では、代替分類に基づいて局所的に保存された分類モデルを更新することは、局所的に保存された分類モデルが、代替分類に対するいずれかの代替分類埋め込みを欠くと判定することと、それに応じて、局所的に保存された分類モデルに代替分類埋め込みを保存することであって、代替分類埋め込みは、センサデータの埋め込みに基づいている、保存することと、を含む。いくつかの実装形態では、局所的に保存された分類モデルを更新することは、ニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットのセンサによって生成される追加のセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、追加のセンサデータのさらなる埋め込みを生成することと、さらなる埋め込みおよび代替分類に基づいて局所的に保存された分類モデルを更新することと、をさらに含む。
【００２１】
いくつかの実装形態では、埋め込みを分類モデルへ適用することに基づいて分類を判定することは、埋め込みが、代替分類にマッピングされた代替分類埋め込みよりも、分類にマッピングされた分類埋め込みにより類似していると判定することに基づいて分類を判定することを含む。これらの実装形態のいくつかでは、局所的に保存された分類モデルを更新することは、埋め込みにあまり類似しないように分類埋め込みを変更することに基づいて、分類に対する調整された分類埋め込みを判定することを含む。
【００２２】
いくつかの実装形態では、ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、ロボットのコンピュータ可読媒体の１つ以上に局所的に保存された特徴モデルに埋め込みを適用することに基づいて、センサデータの特徴を判定することと、を含む方法が提供されている。特徴モデルは、特徴を特徴の特徴埋め込みにマッピングし、追加特徴を対応する追加特徴埋め込みにマッピングする。特徴を判定することは、特徴にマッピングされた特徴埋め込みに対するセンサデータの埋め込みの類似性に基づいて、特徴を判定することを含む。本方法は、判定された特徴に基づいて、オブジェクトに向けられるロボットアクションを実行することと、オブジェクトに向けられるロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、ユーザインターフェース入力が追加特徴の特定の追加特徴を示すと判定することと、をさらに含む。本方法は、ユーザインターフェースの入力が特定の追加特徴を示すと判定することに応じて、特徴モデルにおいて、センサデータの埋め込みに基づいて特定の追加特徴の追加特徴埋め込みを調整することをさらに含む。
【００２３】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの１つ以上を任意選択的に含み得る。
【００２４】
いくつかの実装形態では、特徴は第１の分類であり、特定の追加特徴は第２の分類である。
【００２５】
いくつかの実装形態では、特徴は第１の境界エリアであり、追加特徴は第２の境界エリアである。これらの実装形態のいくつかでは、第１の境界エリアは複数の第１のピクセルによって定義され、第２の境界エリアは複数の第２のピクセルによって定義される。これらの実装形態のいくつかでは、ユーザインターフェース入力は、クライアントコンピューティングデバイスを介して第２の境界エリアを示すユーザに基づいて、クライアントコンピューティングデバイスで生成される。センサデータに基づく画像の表示中に、クライアントデバイスを介して第２の境界を示すことができる。これらの実装形態のいくつかのバージョンでは、本方法は、ロボットアクションが不正確であることを示す最初のユーザインターフェース入力に応じて、クライアントデバイスに画像を提供することをさらに含む。
【００２６】
いくるかの実装形態では、ロボットの１つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも１つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、ロボットのコンピュータ可読媒体の１つ以上に局所的に保存された特徴モデルに埋め込みを適用することに基づいて、センサデータの特徴を判定することと、を含む方法が提供されている。特徴モデルは、特徴を特徴の特徴埋め込みにマッピングし、追加特徴を対応する追加特徴埋め込みにマッピングする。特徴を判定することは、追加特徴埋め込みのいずれよりもセンサデータの埋め込みにより類似している特徴にマッピングされた特徴埋め込みに基づいて特徴を判定することを含む。本方法は、判定された特徴に基づいてロボットアクションを実行することと、ロボットアクションの実行に応じてユーザインターフェース入力を受信することと、ユーザインターフェースの入力が、ロボットアクションが不正確であることを示すと判定することと、をさらに含む。本方法は、ユーザインターフェース入力が、ロボットアクションが不正確であることを示すと判定することに応じて、センサデータの埋め込みに基づいて、局所的に保存された特徴モデルを更新することと、センサデータを含む修正インスタンスを生成することと、ネットワークインターフェースを介して、修正インスタンスを１つ以上のリモートコンピューティングデバイスに送信することと、をさらに含む。１つ以上のリモートコンピューティングデバイスは、修正インスタンスを使用して、ニューラルネットワークモデルの改訂されたバージョンを生成するための少なくとも１つのトレーニング例を生成する。
【００２７】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの１つ以上を任意選択的に含み得る。
【００２８】
いくつかの実装形態では、本方法は、ネットワークインターフェースを介して、ニューラルネットワークモデルの改訂されたバージョンを受信することをさらに含む。ニューラルネットワークモデルの改訂されたバージョンは、トレーニング例、および追加のロボットからの追加の修正インスタンスからの追加のトレーニング例に基づいて、ニューラルネットワークモデルがトレーニングされた後に受信される。
【００２９】
いくつかの実装形態では、ユーザインターフェース入力が、判定された特徴が不正確であることを示すと判定することは、ユーザインターフェース入力が、追加特徴のうちの、判定された特徴と相反する追加特徴を示すと判定することを含む。これらの実装形態のいくつかでは、センサデータの埋め込みに基づいて局所的に保存された特徴モデルを更新することは、センサデータの埋め込みに基づいて追加特徴埋め込みを調整することを含む。追加特徴埋め込みは、追加特徴埋め込みのうちの１つであり、局所的に保存された特徴モデル内の追加特徴にマッピングされる。これらの実装形態のいくつかのバージョンでは、修正インスタンスは、追加特徴の指標を含む。いくつかの実装形態では、センサデータの埋め込みに基づいて局所的に保存された特徴モデルを更新することは、追加特徴が、局所的に保存された特徴モデル内の追加特徴埋め込みのいずれにもマッピングされていないと判定することと、かつそれに応じて、局所的に保存された特徴モデル内の追加特徴に対する特定の特徴埋め込みを保存することと、を含む。特定の特徴埋め込みは、センサデータの埋め込みに基づいている。
【００３０】
他の実装形態は、上記の方法のうちの１つ以上などの方法を実行するためにプロセッサによって実行可能な命令を保存する非一時的コンピュータ可読記憶媒体を含み得る。さらに他の実装形態は、メモリおよびメモリに保存された命令を実施するように動作可能な１つ以上のプロセッサを含むシステム（例えば、ロボットおよび／または１つ以上の他の構成要素）を含んで、単独でまたは集合的に、上記の方法のうちの１つ以上などの方法を実行する１つ以上のモジュールまたはエンジンを実装し得る。
【００３１】
本明細書でより詳細に説明される前述の概念および追加の概念のすべての組み合わせは、本明細書で開示される主題の一部として企図されていることを理解されたい。例えば、本開示の最後に示さる特許請求される主題のすべての組み合わせは、本明細書に開示される主題の一部であると企図されている。
【図面の簡単な説明】
【００３２】
【図１】本明細書で開示される実装形態が実装され得る例示的な環境を図示する。
【図２Ａ】ロボットアクションへの修正を提供する例を図示する。
【図２Ｂ】ロボットアクションへの修正を提供する例を図示する。
【図２Ｃ】ロボットアクションへの修正を提供する例を図示する。
【図２Ｄ】ロボットアクションへの修正を提供する例を図示する。
【図３】本明細書で開示される実装形態による、例示的な方法を図示するフローチャートである。
【図４】本明細書で開示される実装形態による、別の例の方法を図示するフローチャートである。
【図５】本明細書で開示される実装形態による、別の例の方法を図示するフローチャートである。
【図６】本明細書に開示される実装形態による、別の例の方法を図示するフローチャートである。
【図７】ロボットのアーキテクチャの一例を概略的に示す。
【図８】コンピュータシステムのアーキテクチャの一例を概略的に示す。
【発明を実施するための形態】
【００３３】
図１は、本明細書で開示される実装形態が実装され得る例示的な環境を図示する。例示の環境は、ロボット１９０を含む。図１には特定のロボット１９０が図示されているが、静止した「ロボットアーム」、人型のロボット、動物型のロボット、１つ以上の車輪を介して移動する他のロボット（例えば、他の自己バランスロボット、非自己バランスロボット）、無人航空機（「ＵＡＶ」）、などを含む、追加および／または代替のロボットが利用されてもよい。
【００３４】
ロボット１９０は、対応する把持エンドエフェクタ１９６ａおよび１９６ｂを備えたロボットアーム１９４ａおよび１９４ｂを含み、これらは各々、２つの対向する作動可能部材を有するグリッパの形態をとる。ロボット１９０はまた、ロボット１９０の歩行運動のためにその対向する側に設けられた車輪１９７ａおよび１９７ｂを有する基部１９３を含む。基部１９３は、例えば、対応する車輪１９７ａおよび１９７ｂを駆動して、ロボット１９０の運動の所望の方向、速度、および／または加速を達成するための１つ以上のモータを含み得る。
【００３５】
ロボット１９０は、視覚センサ１９９も含む。視覚センサ１９９は、例えば、ステレオグラフィックカメラ、モノグラフィックカメラ、または３Ｄレーザスキャナであってもよい。いくつかの実装形態では、ステレオグラフィックカメラは、各々異なる視座にある２つ以上のセンサ（例えば、電荷結合素子（ＣＣＤ））を含む。所与のインスタンスで２つのセンサによって生成されたセンサデータに基づいて、３次元（「３Ｄ」）ポイントクラウドデータである視覚センサデータが所与のインスタンスに対して生成され得、３Ｄポイントクラウドの３Ｄポイントの各々は、対応するオブジェクトの表面の３Ｄ座標を定義する。いくつかの他の実装形態では、ステレオグラフィックカメラは、２つの異なる視座からセンサデータを効果的に捕捉するために利用される単一のセンサと１つ以上のミラーのみを含み得る。モノグラフィックカメラは、単一のセンサを含むことができ、２次元（「２Ｄ」）視覚センサデータを捕捉する。３Ｄレーザスキャナは、光を放射する１つ以上のレーザと、放射された光の反射に関連する視覚センサデータを生成する１つ以上のセンサとを含む。３Ｄレーザスキャナから生成された視覚センサデータは、３Ｄポイントクラウドデータであり得る。３Ｄレーザスキャナは、例えば、飛行時間型３Ｄレーザスキャナまたは三角測量ベースの３Ｄレーザスキャナであってもよく、位置感応検出器（ＰＳＤ）または他の光学位置センサを含んでもよい。
【００３６】
本明細書で説明されるように、ロボット１９０は、少なくとも一部の時間で自律的に動作し、様々なアクションの実行においてそのアクチュエータを制御し得る。例えば、様々なアクションを実行する際に、ロボット１９０の１つ以上のプロセッサは、車輪１９７ａおよび／もしくは１９７ｂ、ロボットアーム１９４ａおよび／もしくは１９４ｂ、ならびに／またはエンドエフェクタ１９６ａおよび／もしくは１９６ｂに関連付けられたアクチュエータに制御コマンドを提供し得る。
【００３７】
また、図１に図示されているのは、ロボット１９０による様々なアクションの実行の際に、ロボット１９０によって実行される様々なアクションに対する人間の修正を判定する際に、これらの様々なアクションに対する人間の修正を判定することに応じて特徴モデル（複数可）を更新する際に、および／またはこれらの様々なアクションに対する人間の修正を判定することに応じて修正インスタンスを生成および送信する際に、利用される様々な構成要素１０３である。
【００３８】
構成要素１０３は、図１ではロボット１９０とは別個に図示されているが、接続要素１０２は、これらの構成要素１０３を、ロボット１９０上に実装することができること、および／またはロボット１９０と（例えば、ローカルエリアネットワークおよび／またはワイドエリアネットワークを介して）ネットワーク通信できることを示す。例えば、いくつかの実装形態では、構成要素１０３のうちの１つ以上（例えば、すべて）が、ロボット１９０に対して局所的なハードウェアによって実装される。例えば、アクションシステム１２０、局所的更新モジュール１２６、修正インスタンスエンジン１３０、および／またはロボットデータエンジン１３５は、ロボット１９０の１つ以上のプロセッサによって実装されてもよい。また、例えば、ニューラルネットワークモデル１５０Ａ、特徴モデル１６０Ａ、ニューラルネットワークモデル１５０Ｎ、特徴モデル１６０Ｎ、および／または生成されたロボットデータデータベース１５２は、ロボット１９０の１つ以上のハードドライブまたは他のコンピュータ可読媒体に保存されてもよい。別の例として、いくつかの実装形態では、構成要素１０３のうちの１つ以上が、ロボット１９０から離れた１つ以上のコンピューティングデバイス上に実装される。
【００３９】
構成要素１０３は、ロボット１９０のロボットセンサによって生成されたロボットセンサデータおよび／またはロボット１９０の構成要素によって生成された他のデータを処理するロボットデータエンジン１３５を含む。例えば、ロボットデータエンジン１３５は、ロボットの様々なセンサからロボットセンサデータを受信し、ロボットセンサデータにタイムスタンプを付け、タイムスタンプ付きロボットセンサデータをアクションシステム１２０に提供してもよい。ロボットセンサデータは、例えば、視覚センサ１９９からの視覚センサデータ、ロボットのアクチュエータの位置センサからの位置センサデータ、ロボットの加速度計（複数可））からの加速度計データ、などを含み得る。ロボットデータエンジン１３５は、生成されたロボットデータデータベース１５２内に、ロボットセンサデータの少なくとも一部のログをさらに保存してもよい。例えば、ロボットデータエンジン１３５は、空間、時間、および／または他の要因に基づいてバッファからデータをクリアして、「最近の」センサデータのバッファを保存してもよい。ロボットデータエンジン１３５は、生成されたロボットデータデータベース１５２内に、アクションシステム１２０によって判定された特徴、ロボット１９０のアクチュエータに提供された制御コマンド、等、などのロボット１９０によって生成された様々な他のデータをさらに保存してもよい。
【００４０】
アクションシステム１２０は、様々なロボットアクションを実行する際に、ロボットデータエンジン１３５によって提供されるロボットセンサデータを使用する。アクションは、オブジェクトのピックアップ、オブジェクトの「ピッキングおよび配置」、または場所へのナビゲーションおよび／もしくは食器洗い機からの食器おろしなどの比較的より複雑なアクションの収集、定義されたエリアからすべての「おもちゃ」のピックアップ、テーブルからすべてのオブジェクトをクリア、テーブルから特定のタイプ（複数可）のオブジェクトのみをクリア、建物の複数の部屋から特定のタイプのオブジェクトの回収、等、などのアクションを含み得る。アクションシステム１２０は、様々な合図に応じてロボットアクションを実行し得る。例えば、アクションシステム１２０は、人間によって提供されるユーザインターフェース入力に応じていくつかのロボットアクションを実行することができる（例えば、音声入力に応じて「オンデマンド」タスクを実行する）。他の例として、アクションシステム１２０は、スケジュール（例えば、毎週平日の朝）に基づいて、および／または環境条件（例えば、「乱雑」なときにエリアからアイテムを取り除く）に基づいて、いくつかのアクションを追加的または代替的に提供し得る。
【００４１】
アクションシステム１２０は、アクションの実行において様々なモジュールを利用することができ、その例が図１に図示されている。アクションシステム１２０の特徴モジュール１２１Ａ〜Ｎは、アクションを実施する方法を判定する際に計画モジュール１２２によって使用される様々な特徴を判定する。例えば、特徴モジュール１２１Ａ〜Ｎは、環境内のオブジェクトの姿勢（位置および／または方向）を示す特徴、ロボット１９０の環境内のオブジェクトの部類を示す特徴、ロボット１９０の環境内のオブジェクトを把持する方法を示す特徴（例えば、エンドエフェクタ１９６ａおよび／または１９６ｂを把持するための把持姿勢を示す境界ボックス）、ロボット１９０の環境内のオブジェクトの重量、材料、および／または他の物理的特性を示す特徴、等を判定することができる。計画モジュール１２２は、アクションを実施する方法を判定する際にそのような特徴を利用することができる。例えば、テーブルから「皿」をクリアする際に、計画モジュール１２２は、判定されたオブジェクトの姿勢および分類を使用して、「皿」であって、「テーブル上」にあるオブジェクトを判定することができ、把持特徴を利用して、テーブルからオブジェクトを取り除く際にオブジェクトを把持する方法を判定することができる。
【００４２】
コマンドモジュール１２３は、ロボット１９０のアクチュエータに提供する制御コマンドを生成し、計画モジュール１２２によって判定されたアクションを実現する。例えば、計画モジュール１２２は、アクションを実行するための経路および他のより高いレベルの運動を生成するより高いレベルのプランナであることができ、コマンドモジュール１２３は、リアルタイム制御コマンドを生成し、ロボット１９０のアクチュエータに提供してこれらのより高いレベルの運動を実現するリアルタイムモジュールとすることができる。
【００４３】
２つの特徴モジュール１２１Ａおよび１２１Ｎが図１に図示されている。特徴モジュール１２１Ａは、対応する特徴を生成する際に、対応するニューラルネットワークモデル１５０Ａおよび特徴モデル１６０Ａを利用する。特徴モジュール１２１Ｎは、対応する特徴を生成する際に、対応するニューラルネットワークモデル１５０Ｎおよび特徴モデル１６０Ｎを利用する。特徴モジュール１２１Ａと１２１Ｎとの間の省略記号によって示されるように、追加特徴モジュールが提供され得ることを理解されたい。さらに、これらの追加特徴モジュールの１つ以上は、追加の省略記号によって示されるように、対応するニューラルネットワークモデルおよび任意選択的な特徴モデルを任意選択的に利用してもよい。
【００４４】
一例として、特徴モジュール１２１Ａは、ニューラルネットワークモデル１５０Ａおよび特徴モデル１６０Ａを利用して、オブジェクト認識を効果的に実行することができる。例えば、特徴モジュール１２１Ａは、視覚センサデータ（ロボットデータエンジン１３５により提供された）のインスタンスをニューラルネットワークモデル１５０Ａへの入力として適用し、入力に基づいてモデル１５０Ａの上の埋め込みを生成することができる。次いで、特徴モジュール１２１Ａは、生成された埋め込みを特徴モデル１６０Ａに適用して、生成された埋め込みに最も類似する１つ以上の姿勢を判定することができる。例えば、特徴モデル１６０Ａは、特徴モデル１６０Ａの対応する特徴埋め込みに各々マッピングされた境界エリア（例えば、境界ボックス）を定義してもよく、特徴モジュール１２１Ａは、ニューラルネットワークモデルの上で生成された埋め込みと最大の類似性（例えば、最短距離）を備えた特徴埋め込み（複数可）を判定することができる。特徴モジュール１２１Ａは、それらの特徴埋め込み（複数可）にマッピングされた境界エリア（複数可）を使用して、視覚センサデータによって捕捉されたオブジェクト（複数可）の姿勢（複数可）を判定することができる。例えば、境界エリアは、視覚センサデータのピクセルの境界ボックス、およびオブジェクトの姿勢を判定するために利用されるそれらのピクセルを定義してもよい（例えば、姿勢は、環境内のそれらピクセルの有効な位置に対応することができる）。これは、視覚センサデータの複数のインスタンスの各々に対して繰り返し実行され、特徴モジュール１２１Ａがロボット環境内の複数のオブジェクトの各々の姿勢を判定することを可能にし、特徴タモジュール１２１Ａがロボットの環境内のオブジェクトの最新の時空間「目録」を維持することを効果的に可能にする。
【００４５】
別の例として、特徴モジュール１２１Ｎは、ニューラルネットワークモデル１５０Ｎおよび特徴モデル１６０Ｎを利用して、視覚センサデータによって捕捉されたオブジェクトのオブジェクト分類を効果的に実行することができる。例えば、オブジェクトの分類を判定するために、特徴モジュール１２１Ｎは、ニューラルネットワークモデル１５０Ｎへの入力として視覚センサデータを適用することができ、そして、入力に基づいてモデル１５０Ｎの上で、視覚センサデータの埋め込みを生成する。次いで、特徴モジュール１２１Ｎは、生成された埋め込みを特徴モデル１６０Ｎに適用して、生成された埋め込みに基づいて１つ以上の分類を判定することができる。例えば、特徴モデル１６０Ｎは、特徴モデル１６０Ｎの対応する分類埋め込みに各々マッピングされた分類を定義してもよく、特徴モジュール１２１Ｎは、ニューラルネットワークモデルの上で生成された埋め込みと最大の類似性（例えば、最短距離）を備えた分類埋め込み（複数可）を判定することができる。特徴モジュール１２１Ｎは、それらの分類埋め込み（複数可）にマッピングされた分類（複数可）を使用して、視覚センサデータによって捕捉されたオブジェクト（複数可）の分類（複数可）を判定することができる。いくつかの実装形態では、特徴モジュール１２１Ｎは、視覚センサデータとともにニューラルネットワークモデル１５０Ａへの入力として、分類が判定される特定のオブジェクトの姿勢（例えば、特徴モジュール１２１Ａによって判定された姿勢）を任意選択的に提供することもできる。これは、視覚センサデータに基づいているが、特定のオブジェクトに特に仕立てられた（例えば、姿勢によって示されるような、視覚センサデータ内のその位置に基づいた）埋め込みを生成するために使用することができる。
【００４６】
ニューラルネットワークモデル、特徴モデル、および特徴モジュールの特定の例が前の段落で提供されているが、追加および／または代替のニューラルネットワークモデル、特徴モデル、および／または特徴モジュールが提供されてもよいことを理解されたい。例えば、追加特徴モジュールが、視覚センサデータおよび／または他のデータ（例えば、他の特徴モジュール（複数可）の特徴（複数可））を、対応するトレーニングされたニューラルネットワークモデルへの入力として適用して、入力に基づいてモデルの上で、視覚センサデータによって捕捉されたオブジェクトをどこで把持するかを示す把持特徴を判定するために、対応する特徴モデルにその後適用することができる埋め込みを生成してもよい。例えば、把持特徴は、特徴モデル内の特徴埋め込みにマッピングされた境界ボックスの２つの角によって示される２つの把持ポイントであってもよい。また、例えば、１つ以上の特徴モジュールが、非視覚センサデータを対応するトレーニングされたニューラルネットワークモデルへの入力として適用して、入力に基づいてモデルの上で、ロボットの環境に関連する１つ以上の特徴を判定するために、対応する特徴モデルに適用することができる埋め込みを生成してもよい。非視覚センサデータは、位置センサ（複数可）、触覚センサ、オーディオセンサ（例えば、マイクロフォン）、等などの１つ以上の様々なセンサからのものであることができる。非視覚センサデータは、やはり入力として適用される視覚センサデータとともに任意選択的に入力として適用することができる。例えば、トレーニングされたニューラルネットワークモデルは、入力として、視覚センサデータと非視覚センサデータの両方を受け入れるようにトレーニングされてもよい。
【００４７】
アクションシステム１２０はまた、ＵＩ出力モジュール１２５を含む。ＵＩ出力モジュール１２５は、ユーザインターフェース出力を生成して、ロボット１９０によるアクションの実行中に提供することができる。提供されるユーザインターフェース出力は、アクションの実行を促進するロボット１９０の運動に加えて、特徴モジュール１２１Ａ〜Ｎによって判定される１つ以上の特徴の知覚可能な指標を提供する。例えば、ユーザインターフェース出力は、ロボット１９０のスピーカを介して提供される可聴出力であってもよく、可聴出力は、ロボット１９０によって作用される（または作用されることになる）オブジェクトの判定された特徴を「話す」。例えば、ロボット１９０が、特徴モジュール１２１Ａ〜Ｎのうちの１つによって「プレート」として分類されたオブジェクトをピックアップしているとき、ロボット１９０は、「プレートをピックアップしている」という可聴出力を生成し得る。他の実装形態では、ＵＩ出力モジュール１２５は、視覚的および／または他の非可聴ユーザインターフェース出力を追加的または代替的に提供してもよい。オブジェクトの判定された特徴を示すユーザインターフェース出力を提供することは、ロボット１９０の環境での人間によるその知覚を可能にする。ユーザインターフェース出力の知覚は、それが不正確である場合、人間が認識することを可能にし、もしそうであれば、本明細書で説明するような修正を提供する。
【００４８】
アクションシステム１２０はまた、ユーザインターフェース入力を受信するＵＩ入力モジュール１２４を含む。例えば、ＵＩ入力モジュール１２４は、ロボット１９０のマイクロフォンを介して提供される音声ユーザインターフェース入力、またはＵＩ入力モジュール１２４と通信するクライアントデバイス１０６によって提供されるユーザインターフェース入力を受信することができる。いくつかの実装形態では、ロボット１９０の任意のマイクロフォンに関連付けられたハードウェアは、話し言葉の「ホットワード」（例えが、「ロボットさん」）、ハードウェアボタンの選択（例えば、ロボット１９０をオン）、仮想ボタンの選択（例えば、クライアントデバイス１０６に提示された）、等のような特定の先行入力に応じて人間の修正を「能動的に聞いている」だけの場合がある。
【００４９】
クライアントデバイス１０６によって提供されるユーザインターフェース入力は、クライアントデバイス１０６の入力デバイス（複数可）（例えば、クライアントデバイス１０６のマイクロフォンおよび／または仮想あるいはハードウェアキーボード）とのユーザ対話に応じて提供され、任意選択的にクライアントデバイス１０６および／または他の構成要素によって前処理されてもよい（例えば、音声入力をテキスト入力に変換することによって前処理される）。いくつかの実装形態では、ＵＩ入力モジュール１２４は、受信したユーザインターフェース入力に基づいてアクションシステム１２０によって使用するための１つ以上の特徴を生成することができる。例えば、「テーブルをクリアする」という受信したユーザインターフェース入力に対して、ＵＩ入力モジュール１２４は、入力を処理して、ロボット１９０の環境内の「テーブル」オブジェクト上にあるすべてのオブジェクトを取り除くために、ロボット１９０によって実行されるべきアクションを示す特徴を判定することができる。ＵＩ入力モジュール１２４によって判定された任意の特徴は、計画モジュール１２２に提供することができる。ＵＩ入力モジュール１２４は、受信したユーザインターフェース入力から特徴を判定する際に、ＮＬＰシステム１３３および／または１つ以上の他の構成要素と対話することができる。
【００５０】
ＵＩ入力モジュール１２４は、追加的または代替的に、修正インスタンスエンジン１３０と連携して働くことができる。修正インスタンスエンジン１３０は、受信したユーザインターフェース入力がロボットアクションへの修正を示すかどうかを判定する。そうである場合、修正インスタンスエンジン１３０は、局所的更新モジュール１２６（以下により詳細に説明する）に、特徴モデル１６０Ａ〜Ｎのうちの１つに対応する局所的更新を実行させることができ、および／またはそれ自体が、対応する修正インスタンスを生成し、ネットワーク１０１を介して収集エンジン１４０に送信することができる。このようにして、様々な実装形態において、修正インスタンスエンジン１３０は、局所的更新モジュール１２６に、特徴モデル１６０Ａ〜Ｎのうちの１つに対応する局所的更新を実行させてもよく、および／または受信したユーザインターフェース入力がロボットアクションへの修正を示す場合にのみ、修正インスタンスを送信してもよい。
【００５１】
修正インスタンスエンジン１３０は、受信したユーザインターフェース入力がロボットアクションへの修正を示すことを判定する際に様々な手法を利用することができる。いくつかの実装形態では、受信したユーザインターフェース入力が自然言語入力（例えば、ロボット１９０のマイクロフォンを介して受信された、あるいはクライアントデバイス１０６を介して受信された）である場合、修正インスタンスエンジン１３０は、自然言語入力の意味論的および／または他の自然言語処理に基づいてそれが修正を示すと判定することができる。修正インスタンスエンジン１３０は、任意選択的に、自然言語入力の処理においてＮＬＰシステム１３３または他の外部リソース（複数可）と（例えば、インターネットまたは他のネットワーク（複数可）を介して）対話し得る。ＮＬＰシステム１３３は、自然言語入力を処理して、自然言語入力の様々な注釈を提供することができる。例えば、ＮＬＰシステム１３３は、センチメント注釈（例えば、センチメント分類子を使用して）、エンティティ注釈（含まれるエンティティを一般的および／または具体的に注釈する）、自然言語入力の完全な意味解釈を提供する注釈、等を提供することができる。
【００５２】
いくつかの実装形態では、修正インスタンスエンジン１３０は、入力と、アクションの実行においてアクションシステム１２０によって使用される特徴との比較に基づいて、ユーザインターフェース入力がアクションに対する修正を示すと判定する。例えば、「それはボウルです」という自然言語入力が受信され、一方、ロボット１９０は、特徴モジュール１２１Ｎが「カップ」であると判定した環境オブジェクトと相互作用していると仮定する。修正インスタンスエンジン１３０は、自然言語入力によって示された「ボウル」分類と特徴モジュール１２１Ｎによって判定された「カップ」分類との間の矛盾に基づいて、ユーザインターフェース入力がアクションに対する修正を示すと判定し得る。本明細書で説明されるように、いくつかの実装形態では、ＵＩ出力モジュール１２５が、環境オブジェクトとの相互作用中に可聴または他のユーザインターフェース出力を提供してもよく、「それはボウルです」というユーザインターフェース入力を提供するように人間を促してもよい。
【００５３】
いくつかの実装形態では、修正インスタンスエンジン１３０は、自然言語ユーザインターフェース入力ではない使用インターフェース入力に基づいてロボットアクションへの修正を判定する。例えば、ユーザインターフェース入力は、ユーザがロボット１９０の「エラー」ボタンを作動させること、ユーザがロボット１９０を「つかむ」こと（例えば、「外部」タッチ感知センサおよび／または力トルクまたは他の「内部」センサ（複数可）に基づいて検知されて）、ユーザがクライアントデバイス１０６を介してグラフィカルユーザインターフェースと対話すること（例えば、ユーザがロボット１９０の状態を監視し、概しておよび／または具体的にエラーを報告することを可能にするインターフェース）に基づくことができる。
【００５４】
修正インスタンスエンジン１３０は、アクションシステム１２０の局所的更新モジュール１２６と相互作用して、ロボット１９０によって実行されるアクションの人間の修正を判定することに応じて、局所的更新モジュール１２６に１つ以上の特徴モデル１６０Ａを更新させる。例えば、修正インスタンスエンジン１３０は、局所的更新モジュール１２６に、特徴が不正確である、および／または追加特徴が代わりに正確である（またはやはり正確である）指標を提供することができる。それに応じて、局所的更新モジュール１２６は、不正確である特徴を判定するために利用された埋め込み（対応するニューラルネットワークモデルの上で生成された）に基づいて、対応する特徴モデルを更新することができる。例えば、特徴モジュール１２１Ｎが視覚センサデータをニューラルネットワークモデル１５０Ｎへの入力として適用し、その入力に基づいて埋め込みＡを生成し、埋め込みＡを特徴モデル１６０Ｎに適用することに基づいて特徴Ａを判定したと仮定する。さらに、修正インスタンスエンジン１３０が、特徴Ａが不正確であり、特徴Ｂが代わりに正確であることを示すと仮定する。局所的更新モジュール１２６は、特徴モデル１６０Ａを更新して、特徴Ｂに対する特徴Ｂの埋め込みを埋め込みＡにより類似させ、および／または特徴Ａに対する特徴Ａの埋め込みを埋め込みＡにあまり類似させないようにし得る。
【００５５】
いくつかの実装形態では、修正インスタンスエンジン１３０は、追加的および／または代替的に、ロボット１９０によって実行されるアクションの人間の修正を判定することに応じて修正インスタンスを生成する。修正を判定することに応じて修正インスタンスエンジン１３０によって生成された修正インスタンスは、例えば、人間の修正に関連付けられたニューラルネットワークモデルに適用されるセンサデータ（すなわち、不正確または不完全な特徴（複数可）を生成するために利用されるもの）、および人間の修正に基づく修正情報（例えば、正確な特徴（複数可）を示すもの、および／または判定された特徴（複数可）が不正確であったことを示すもの）、を含むことができる。
【００５６】
収集エンジン１４０は、ネットワーク１０１（例えば、インターネット）を介して、修正インスタンスエンジン１３０から修正インスタンスを受信する。収集エンジン１４０は、ネットワーク１０１を介して、追加のロボット１９２から修正インスタンスを受信することもできる。追加のロボット１９２は様々な地理的位置にあることができ、追加のロボット１９２は任意選択的にロボット１９０と異なってもよい（例えば、それらは４つの車輪を有する型式などの異なる「型式」であってもよい）。追加のロボット１９２によって提供される修正インスタンスは、ロボットアクションの人間の修正に応じて生成されるものも含むことができる。収集エンジン１４０は、例えば、コンピューティングデバイスのクラスタによって実装することができる。
【００５７】
収集エンジン１４０は、所与のニューラルネットワークモデルおよび特徴モデルに対応する修正インスタンスを利用して、ニューラルネットワークモデルおよび特徴モデルのトレーニングのためのトレーニング例を生成する。一例として、特定のオブジェクトを捕捉する視覚センサデータのインスタンス、特定のオブジェクトが「ボウル」として不正確に分類されたことの指標、および分類が「帽子」に修正されたこと（人間の修正を介して）の指標、を含む修正インスタンスが受信されると仮定する。そのような一例では、収集エンジン１４０は、視覚センサデータの対応するインスタンスに基づくトレーニング例入力、および「ボウル」が正確な分類ではないこと、および／または「帽子」が正確な分類であることを示すトレーニング例出力、を含むトレーニング例を生成することができる。
【００５８】
収集エンジン１４０は、生成されたトレーニング例をトレーニングエンジン１４５に提供する。トレーニングエンジン１４５は、トレーニング例を利用して、１つ以上の対応するニューラルネットワークモデルおよび特徴モデルをトレーニングし、対応する改訂されたニューラルネットワークモデル１５１Ａ〜Ｎおよび改訂された特徴モデル１６１Ａ〜Ｎを生成する。一例として、収集エンジン１４０が、ニューラルネットワークモデル１５０Ｎおよび特徴モデル１６０Ｎの１つ以上のインスタンスによるオブジェクトの不正確な分類に対する人間の修正に基づいて生成された多数のトレーニング例を提供すると仮定する。そのような一例では、トレーニングエンジン１４５は、ニューラルネットワークモデル１５０Ｎ（またはニューラルネットワークモデル１５０Ｎに類似する別のモデル）および特徴モデル１６０Ｎをさらにトレーニングして、改訂されたニューラルネットワークモデル１５１Ｎおよび改訂された特徴モデル１６１Ｎを生成し得る。例えば、トレーニングエンジン１４５は、トレーニング例のトレーニング例入力をニューラルネットワークモデル１５０Ｎに適用することができ、トレーニングの例に基づいて埋め込みを生成し、埋め込みを特徴モデル１６０Ｎに適用し、トレーニング例の出力によって示される特徴と、特徴モデル１６０Ｎへの埋め込みの適用に基づいて示される実際の特徴とに基づいてエラーを判定し、そして、特徴モデル１６０Ｎおよび／またはニューラルネットワークモデル１５０Ｎを通してエラーを逆伝播し、特徴モデル１６０Ｎおよび／またはニューラルネットワークモデル１５０Ｎを更新する。バッチトレーニングが、任意選択的に利用されてもよい。
【００５９】
大量のトレーニング例の適用を通して、トレーニングエンジン１４５は、改訂されたニューラルネットワークモデル１５１Ｎおよび／または改訂された特徴モデル１６１Ｎを生成する。次いで、改訂されたニューラルネットワークモデル１５１Ｎおよび／または改訂された特徴モデル１６１Ｎを、ニューラルネットワークモデル１５０Ｎおよび／または改訂された特徴モデル１６１Ｎの代わりに利用するために提供することができる。加えて、そのような改訂されたニューラルネットワークモデル１５１Ｎおよび／または改訂された特徴モデル１６１Ｎは、引き続き生成されたトレーニング例に基づいて、改訂されたニューラルネットワークモデル１５１Ｎおよび／または改訂された特徴モデル１６１Ｎのさらなる改訂されたバージョンを生成するように、将来トレーニングエンジン１４５によってさらに改訂されることができ、それはその後、利用のために提供することができる。このようにして、多様な環境にあるロボット１９０および１９２からの修正インスタンスに基づくトレーニング例を使用して、改良されたニューラルネットワークモデルおよび特徴モデルを繰り返しトレーニングして提供し得る。トレーニングエンジン１４５は、例えば、コンピューティングデバイスのクラスタによって実装することができる。
【００６０】
いくつかの実装形態では、ニューラルネットワークモデルの「新しい」バージョンを受信することに応じて、ロボット１９０の局所的更新モジュール１２６は、過去の人間の修正に基づいて対応する特徴モデルを適合させ得る。一例として、改訂されたニューラルネットワークモデル１５１Ｎがニューラルネットワークモデル１５０Ｎを置き換え、改訂された特徴モデル１６１Ｎが特徴モデル１６０Ｎを置き換えると仮定する。局所的更新モジュール１２６が、人間の修正に応じて、視覚センサデータＸに基づいてニューラルネットワークモデル１５０Ｎの上で生成された埋め込みにより類似するように、（特徴モデル１６０Ｎの）特徴Ａの特徴埋め込みを調整することによって、特徴モデル１６０Ｎを以前に更新したとさらに仮定する。局所的更新モジュール１２６は、視覚センサデータＸおよび「特徴Ａ」の指標など、以前の更新の特徴を局所的に保存してもよく、保存された以前の更新を利用して、改訂された特徴モデル１６１Ｎを更新してもよい。例えば、局所的更新モジュール１２６は、視覚センサデータＸを改訂されたニューラルネットワークモデル１５１Ｎに適用することに基づいて、改訂されたニューラルネットワークモデル１５１Ｎの上に新しい埋め込みを生成することによって、および、改訂された特徴モデル１６１Ｎにおいて、（改訂された特徴モデル１６１Ｎの）特徴Ａの特徴埋め込みを、新しい埋め込みにより類似するように調整することによって、改訂された特徴モデル１６１Ｎを更新することができる。
【００６１】
ここで図２Ａ〜図８を参照すると、図１の例示的な環境の様々な構成要素の追加の説明が提供されている。
【００６２】
最初に図２Ａ〜図２Ｄに目を向けると、ロボットアクションへの修正を提供するいくつかの例が提供されている。図２Ａ〜図２Ｄは、ロボット１９０および／または他のロボット（複数可）が動作し得る例示的な環境の様々な状態を示す。図２Ａは、最初の時点のテーブル２５０を図示する。最初の時点で、４つのオブジェクト２５２Ａ〜Ｄがテーブル２５０の上に配置されている。
【００６３】
図２Ｂは、図２Ａの最初の時点で、ユーザが「テーブルからボウルをクリアする」というユーザインターフェース入力１０３Ｂ１を提供した一例を図示している。それに応じて、ロボット１９０（図２Ｂに示さず）は、テーブル２５０から、「ボウル」として分類したオブジェクトを除去し始め得る。例えば、（ニューラルネットワークモデル１５０Ｎの上で生成された埋め込みの特徴モデル１６０Ｎへの適用に基づいて）特徴モジュール１２１Ｎによって「ボウル」として分類された任意のオブジェクトの除去を開始することができる。例えば、図２Ｂは、ロボット１９０がテーブル２５０からオブジェクト２５２Ｄをつかんで除去しているときの環境を図示しており、それは「ボウル」として不正確に分類されている。ロボット１９０がオブジェクト２５２Ｄと相互作用している間、ユーザは「帽子ではない」というさらなるユーザインターフェース入力１０３Ｂ２を提供している。
【００６４】
修正インスタンスエンジン１３０は、さらなるユーザインターフェース入力１０３Ｂ２がオブジェクト２５２Ｄに実行されているアクションに対する修正を示していることを判定することができる。例えば、修正インスタンスエンジン１３０は、ユーザインターフェース入力１０３Ｂ２によって示される「帽子」分類が、不正確に判定された「皿」分類と相反すると判定することができる。それに応じて、修正インスタンスエンジン１３０は、局所的更新モジュール１２６と相互作用して、局所的更新モジュール１２６に特徴モデル１６０Ｎを更新させることができる。例えば、修正インスタンスエンジン１３０は、局所的更新モジュール１２６に、「ボウル」分類が不正確であったこと、および、「帽子」が代わりに正確な分類であるという指標を提供することができる。それに応じて、局所的更新モジュール１２６は、ニューラルネットワークモデル１５０Ｎの上で生成された、不正確である特徴を判定するために利用された埋め込みに基づいて、特徴モデル１６０Ｎを更新することができる。例えば、「帽子」分類のための特徴埋め込みが特徴モデル１６０Ｎ内に既に存在する場合、局所的更新モジュール１２６は、その特徴埋め込みを調整して、不正確である「ボウル」分類を判定するために利用されたニューラルネットワークモデル１５０Ｎの上で生成された埋め込みにより類似するようにすることができる。また、例えば、「帽子」分類のための特徴埋め込みが特徴モデル１６０Ｎ内に存在しない場合、局所的更新モジュール１２６は、特徴モデル１６０Ｎ内に「帽子」のための特徴埋め込みを生成することができる。例えば、「帽子」のための特徴埋め込みは、不正確である「ボウル」分類を判定するために利用されたニューラルネットワークモデル１５０Ｎの上で生成された埋め込みに基づくことができる。本明細書で説明されるように、いくつかの実装形態では、修正インスタンスエンジン１３０は、さらなるユーザインターフェース入力１０３Ｂ２が、オブジェクト２５２Ｄについて実行されているアクションに対する修正を示すと判定することに基づいて、修正インスタンスを追加的および／または代替的に生成および送信し得る。
【００６５】
図２Ｃは、図２Ｂの例の間に発生する可能性のある図１の構成要素間の相互作用の一例を図示している。図２Ｃにおいて、特徴モジュール１２１Ａは、視覚センサデータをニューラルネットワークモデル１５０Ａへの入力として適用し、その適用に基づいて埋め込みを生成する。特徴モジュール１２１Ａはさらに、埋め込みを特徴モデル１６０Ａに適用して、その適用に基づいて「ボウル」の分類を判定する。例えば、特徴モジュール１２１Ａは、埋め込みが、特徴埋め込みＡおよびＣ〜Ｎのうちのどの他のものよりも特徴モデル１６０Ａの特徴埋め込みＢ（図２Ｃにおいて「ボウル」にマッピングされて図示されている）により類似している埋め込みに基づいて「ボウル」分類を判定することができる。
【００６６】
特徴モジュール１２１Ａは、計画モジュール１２２に、「オブジェクトＤ」（図２Ａおよび図２Ｂの帽子に対応する）が「ボウル」分類を有するという指標を提供する。例えば、特徴モジュール１２１Ａは、計画モジュール１２２に、その分類の指標とともに、「オブジェクトＤ」の姿勢および／または他の一意の識別子を提供することができる。
【００６７】
計画モジュール１２２は、「オブジェクトＤ」に対する分類を利用して、実行される１つ以上のアクションを判定する。アクション（複数可）を判定する際に、計画モジュール１２２はまた、特徴モジュール１２１Ａによって判定された他の分類および／または他の特徴モジュール（複数可）からの他の特徴に依存してもよい。計画モジュール１２２は、アクションをコマンドモジュール１２３に提供し、アクションの実行を有効にするために、１つ以上のアクチュエータ（図２Ｃには図示せず）に制御コマンドを生成および提供する。
【００６８】
アクションの実行中または実行後に、ＵＩ入力モジュール１２４はＵＩ入力を受信し、ＵＩ入力（および任意選択的にＵＩ入力の注釈）を修正インスタンスエンジン１３０に提供する。修正インスタンスエンジン１３０は、ＵＩ入力を利用して、「オブジェクトＤ」に対する分類が不正確で、代わりに「帽子」分類であるべきと判定する。
【００６９】
修正インスタンスエンジン１３０は、正確な「帽子」分類の指標を局所的更新モジュール１２６に提供する。それに応じて、局所的更新モジュール１２６は、「ボウル」分類を不正確に判定する際に、特徴モジュール１２１Ａによって生成された埋め込みにより類似するように、特徴埋め込みＣ（図２Ｃにおいて「帽子」にマッピングされて図示されている）を更新する。
【００７０】
図２Ｄは、図２Ａの最初の時点で、ユーザが、（図２Ｂのユーザインターフェース入力１０３Ｂ１を提供する代わりに）「テーブルをクリアする」のユーザインターフェース入力１０３Ｄ１を提供した一例を図示する。それに応じて、ロボット１９０（図２Ｄには示されず）は、テーブル２５０から、識別されたすべてのオブジェクトを除去することができる。例えば、特徴モジュール１２１Ａによってオブジェクトとして検出された任意のオブジェクトを除去することができる。例えば、特徴モジュール１２１Ａは、視覚センサデータの１つ以上のインスタンスをニューラルネットワークモデル１５０Ａに適用し、各適用に基づいて対応する埋め込みを生成することができる。特徴モジュール１２１Ａは、各埋め込みを特徴モデル１６０Ａにさらに適用して、テーブル２５０上の対応するオブジェクトの姿勢を各々示す１つ以上の境界ボックスを判定することができる。例えば、特徴モデル１６０Ａは、特徴埋め込みＡを境界ボックスＡと境界ボックスＢとの組み合わせにマッピングしてもよい。特徴モジュール１２１Ａは、（ニューラルネットワークモデル１５０Ａの上で生成された）所与の埋め込みが特徴埋め込みＡに最も類似していると判定することができ、その結果、（特徴埋め込みＡにマッピングされている境界ボックスに基づいて）境界ボックスＡおよび境界ボックスＢを選択する。特徴モジュール１２１Ａは、境界ボックスＡに基づいてオブジェクト（例えば、２５２Ａ）を検出し、それが境界ボックスＡに対応する姿勢を有すると判定することができる。特徴モジュール１２１Ａはまた、境界ボックスＢに基づいてオブジェクト（例えば、２５２Ｃ）を検出し、それが境界ボックスＢに対応する姿勢を有すると判定することができる。オブジェクト２５２Ｄもまた、追加の視覚センサデータに基づく追加の埋め込みに基づいて検出され得る。
【００７１】
図２Ｄは、ロボット１９０が識別したすべてのオブジェクトの除去を完了したときの環境を図示している。しかしながら、オブジェクト２５２Ｂは、ロボット１９０によって、テーブル２５０とは別のオブジェクトとして認識されていないため、テーブル２５０上に残っている。例えば、特徴モジュール１２１Ａは、オブジェクト２５２Ｂの検出に失敗した可能性がある。例えば、オブジェクト２５２Ｂの姿勢に対応する境界ボックスは、特徴モデル１６０Ａに含まれ、特徴埋め込みＸにマッピングされてもよい。しかしながら、特徴モジュール１２１Ａは、少なくとも特徴埋め込みＸとの類似度の閾値を持たない埋め込み（ニューラルネットワークモデル１５０Ａの上で生成された）に基づいて、その境界ボックスを選択しなかった可能性がある。
【００７２】
図２Ｄにおいて、ユーザは、「フォークを忘れた」というさらなるユーザインターフェース入力１０３Ｄ２を提供する。状況によっては、ユーザは、識別したすべてのオブジェクトの除去を完了したことを示すためにロボット１９０によって提供された可聴ユーザインターフェース出力（例えば、「完了しました」、「チャイム」）に応じて、さらなるユーザインターフェース入力１０３Ｄ２を提供し得る。
【００７３】
修正インスタンスエンジン１３０は、実行されているアクションに対する修正を示すさらなるユーザインターフェース入力１０３Ｄ２を判定することができる。例えば、修正インスタンスエンジン１３０は、ユーザインターフェース入力１０３Ｄ２が、テーブル２５０上に存在するオブジェクトが認識されなかったことを示すと判定することができる。
【００７４】
それに応じて、修正インスタンスエンジン１３０は、局所的更新モジュール１２６と相互作用して、局所的更新モジュール１２６に特徴モデル１６０Ｎを更新させることができる。それに応じて、局所的更新モジュール１２６は、クライアントデバイス１０６を介してさらなる修正詳細を要求する。図２Ｄに示すように、局所的更新モジュール１２６は、（ネットワークを介して）クライアントデバイス１０６にテーブル２５０の画像を提供し、ユーザが「フォーク」の周りにボックスを描くことを要求する。テーブル２５０の画像は、例えば、不完全なオブジェクトが検出された視覚センサデータのインスタンスに基づくことができる。ユーザは、フォークの周りにボックス１０７を描くためのユーザインターフェース入力を提供する（例えば、クライアントデバイス１０６のタッチスクリーンを使用して）。局所的更新モジュール１２６は、局所的モデル１６０Ａにおいて、ボックス１０７に対応する、対応した境界ボックスを識別することができる。さらに、局所的更新モジュール１２６は、対応する境界ボックスにマッピングされた、特徴埋め込みを更新して、その特徴埋め込みをニューラルネットワークモデル１５０Ａの上で生成された埋め込み（例えば、クライアントデバイス１０６上のテーブル２５０の画像を生成するために利用される視覚センサデータに基づいて生成された埋め込み）により類似させることができる。このようにして、局所的更新モジュール１２６は、正確な特徴（境界ボックス）に対するユーザからの入力を求め、ニューラルネットワークモデル１５０の上で生成された埋め込みに基づいて、特徴モデル１６０Ａ内のその特徴に対する特徴埋め込みを更新する。
【００７５】
本明細書で説明されるように、いくつかの実装形態では、修正インスタンスエンジン１３０は、さらなるユーザインターフェース入力１０３Ｄ２が、アクションに対する修正を示すと判定することに基づいて、修正インスタンスを追加的および／または代替的に生成および送信し得る。
【００７６】
ここで図３を参照して、様々な実装形態による例示的な方法３００が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および／またはロボットと通信する１つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法３００の動作は特定の順序で示されているが、これは限定することを意味するものではない。１つ以上の動作は、順序を変更、省略、または追加されてもよい。
【００７７】
ブロック３５２で、システムは、ニューラルネットワークモデルへのロボットセンサデータの適用に基づいて、ニューラルネットワークモデルの上で埋め込みを生成する。作業例として、システムは、ニューラルネットワークモデルへの入力として、オブジェクトを捕捉する視覚センサデータを適用することができる。
【００７８】
ブロック３５４で、システムは、埋め込みと特徴モデル内の特徴にマッピングされた特徴埋め込みとの比較に基づいて、少なくとも１つの特徴を判定する。作業例を続けて、特徴モデルは、把持パラメータを対応する特徴埋め込みにマッピングすることができる。例えば、把持パラメータＡを特徴埋め込みＡにマッピングすることができ、把持パラメータＢを特徴埋め込みＢにマッピングすることができる、等。システムは、ブロック３５２で生成された埋め込みに対するその特徴埋め込みの類似性に基づいて、特徴埋め込みＡを選択してもよい。
【００７９】
様々な実装形態において、システムは、ブロック３５２の複数のインスタンスに基づいて生成された出力の複数のインスタンスに基づいて、ブロック３５４で特徴（複数可）を判定することができ、ブロック３５２の各インスタンスはセンサデータの異なるインスタンスを適用していることに留意されたい。また、様々な実装形態において、システムは、ブロック３５２のものに加えて他のニューラルネットワークモデル（複数可）の上で生成された追加の出力に基づいて判定された特徴（複数可）に基づいて、ブロック３５４で特徴（複数可）を判定できることに留意されたい。
【００８０】
ブロック３５６で、システムは、ブロック３５４で生成された少なくとも１つの特徴に基づいてロボットアクションを実行する。作業例を続けて、システムは、判定された把持パラメータを用いて、オブジェクトの把持のすべてまたは一部を実行することができる。
【００８１】
ブロック３５６は、サブブロック３５６Ａおよび３５６Ｂを含む。ブロック３５６Ａで、システムはアクションの完了を監視する。システムが、アクションは完了していると判定する場合、システムはブロック３５８に進み、次のアクションの実行を開始する。
【００８２】
ブロック３５６Ｂで、システムは修正ユーザインターフェース入力の受信を監視する。システムは、アクションの実行前、実行中、または実行後（例えば、少なくとも閾値期間後）に、修正ユーザインターフェース入力の受信を監視することができる。修正ユーザインターフェース入力が受信されると、システムはブロック３６０に進む。
【００８３】
作業例を続けて、システムがオブジェクトを把持し、まだオブジェクトを把持している間に、「そのようではない」というユーザインターフェース入力が受信されると仮定する。そのような一例では、システムは、「そのようではない」が修正ユーザインターフェース入力であると判定し、ブロック３６０に進むことができる。多くのシナリオにおいて、システムの観点から、アクションの実行が正確である場合でも、システムはブロック３５６Ｂで修正ＵＩ入力を受信することを留意されたい。言い換えれば、修正ユーザインターフェース入力がない場合、システムはアクションの実行の不正確な性質を自己認識しない。
【００８４】
ブロック３６０で、システムは、修正ユーザインターフェース入力に基づいて、特徴モデルの特徴埋め込みを調整する。作業例を続けて、特徴埋め込みＡにマッピングされた把持パラメータに基づいて、把持が不正確であることを示す修正インスタンスに応じて、システムは、特徴埋め込みＡをブロック３５２で生成された埋め込みにあまり類似しないように調整することができる。
【００８５】
いくつかの実装形態では、ブロック３６０は、サブブロック３６０Ａを含み、ここでは、システムはさらなる修正詳細を要求および受信する。作業例を続けて、システムは「ピックアップする正しい方法を教えてもらえますか？」というユーザインターフェース出力を提供し得る。それに応じて、ユーザは、ロボットを物理的に操作することによって、正確な把持を運動感覚で教えることができる。例えば、システムはロボットを低機械インピーダンスの、「重力補償」モード、にさせることができ、その間、ユーザはロボットを物理的に操作して正確な把持を実証することができる。このような場合、システムは、オブジェクトの正確な把持パラメータを判定するためにセンサデータを記録することができる。次いで、システムは、正確な把持パラメータに対応する特徴モデルの特徴埋め込みを調整することができる。例えば、システムは、その特徴埋め込みを、ブロック３５２で生成された埋め込みにより類似するように調整することができる。
【００８６】
任意選択的なブロック３６２で、システムは修正インスタンスを生成する。修正インスタンスは、視覚センサデータおよび／または修正に関連する他のロボットセンサデータを含むことができる。例えば、システムは、埋め込みを生成するためにブロック３５２で適用されることに基づく特定のロボットセンサデータを含むことができる。いくつかの実装形態では、システムはまた、修正インスタンス内に、ブロック３５４で判定された特徴（複数可）、ブロック３５６Ｂで受信された修正ユーザインターフェース入力および／もしくはブロック３６０Ａで受信されたさらなる修正詳細に基づく修正情報、ならびに／または他のデータ、を含む。
【００８７】
作業例を続けて、システムは、ブロック３５２で適用された視覚センサデータを含む、および、ブロック３６０Ａで判定された人間が実証した正確な把持特徴を含む、修正インスタンスを提供することができる。
【００８８】
任意選択的なブロック３６４で、システムは、ブロック３６２で生成された修正インスタンスを送信する。例えば、システムは、１つ以上のネットワークを介して、リモートコンピューティングデバイスへ修正インスタンスを送信することができる。
【００８９】
ブロック３６６で、システムは、修正インスタンスに基づいてトレーニングされた改訂されたニューラルネットワークモデルを受信し、改訂されたニューラルネットワークモデルに対する改訂された特徴モデルを受信する。いくつかの実装形態では、改訂されたニューラルネットワークモデルおよび改訂された特徴モデルは、修正インスタンスに基づいて生成されたトレーニング例（複数可）に基づいて、および、複数の追加ロボットからの他の修正インスタンスに基づいて生成された他のトレーニング例に基づいて、トレーニングされる。多くの実装形態において、ブロック３６４とブロック３６６との間に時間遅延（例えば、時間、日、週）があり得ることを理解されたい。その間、システムは、他のアクションを実行する際に「前の」ニューラルネットワークモデルおよびその局所的に更新された特徴モデルを利用し続けてもよい。
【００９０】
任意選択的なブロック３６８で、システムは、ブロック３６０で判定された修正などの過去の修正に基づいて改訂された特徴モデルを調整する。例えば、システムは、ブロック３５２で適用されたロボットセンサデータ、ならびにブロック３６０で判定された修正情報を保存していてもよい。システムは、改訂されたニューラルネットワークモデルへの入力として保存されたロボットセンサデータを適用し、入力に基づいて改訂されたニューラルネットワークモデルの上で埋め込みを生成し、修正詳細および埋め込みに基づいて改訂された特徴モデルの特徴埋め込み（複数可）を調整してもよい。作業例を続けて、視覚センサデータを適用することに基づいて、改訂されたニューラルネットワークモデルの上で埋め込みを生成することができ、「修正把持パラメータ」へ（改訂された特徴モデル内で）マッピングされた特徴埋め込みは、生成された埋め込みにより類似するように更新される。
【００９１】
システムは、改訂されたニューラルネットワークモデルおよび（任意選択的にブロック３６６で改訂された）特徴モデルを、これらのモデルの前のバージョンの代わりに、利用することができる。
【００９２】
ここで図４を参照して、様々な実装形態による別の例の方法４００が説明される。方法４００は、図３の方法３００の特定の実装形態を例示していることに留意されたい。
【００９３】
便宜上、図４のフローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および／またはロボットと通信する１つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法４００の動作は特定の順序で示されているが、これは限定することを意味するものではない。１つ以上の動作は、順序を変更、省略、または追加されてもよい。
【００９４】
ブロック４５２で、システムは、ニューラルネットワークモデルへの視覚センサデータの適用に基づいて、ニューラルネットワークモデルの上で埋め込みを生成する。
【００９５】
ブロック４５４で、システムは、視覚センサデータによって捕捉されたオブジェクトの少なくとも１つの分類を判定する。システムは、ブロック４５２で生成された埋め込みと、分類モデル内の分類にマッピングされた分類埋め込みとの比較に基づいて分類を判定する。分類モデルは、分類埋め込み（特定のタイプの特徴埋め込み）を対応する分類にマッピングする１つの特定のタイプの特徴モデルである。
【００９６】
ブロック４５６で、システムは、オブジェクトに向けられたロボットアクションを実行する。例えば、システムは、オブジェクトを把持する、さもなければ接触する、オブジェクトをよりよく見る、等において、ロボットの１つ以上の構成要素をオブジェクトに向かってより近くに、および／またはオブジェクトと接触するように動かすことができる。
【００９７】
ブロック４５６は、任意選択的にブロック４５６Ａおよび／または４５６Ｂを含む。
【００９８】
ブロック４５６Ａで、システムは、オブジェクトの分類を示すユーザインターフェース入力に応じてロボットアクションを実行する。例えば、システムは、ブロック４５２で判定されたオブジェクトに対する分類を示す受信したユーザインターフェースに基づいて、オブジェクトに向けられたアクションを実行することができる。作業例として、「リモートコントロールを見つける」というユーザインターフェース入力に応じて、システムは、「リモートコントロール」分類があると判定されたオブジェクトに向けられたアクションを実行することができる。
【００９９】
ブロック４５６Ｂで、システムは、ブロック４５６Ｂで判定されたオブジェクトに対する分類を示すユーザインターフェース出力を提供する。例えば、ロボットアクションの実行前および／または実行中に、システムは「リモートコントロールをピックアップしている」というオーディオ出力を提供することができる。
【０１００】
ブロック４５８で、システムは、受信したユーザインターフェース入力が、オブジェクトに向けられたロボットアクションの修正を示すと判定する。作業例を続けて、システムが「リモートコントロール」とみなしたものをピックアップするロボットアクションを実行する際に、システムが「電話ではない」というユーザインターフェース入力を受信することができる。システムは、「ではない」の存在に基づいて、および／または「電話」と「リモートコントロール」との間の矛盾の判定に基づいて、受信したユーザインターフェース入力が修正を示すと判定することができる。
【０１０１】
ブロック４６０で、システムは、修正ＵＩ入力に基づいて分類モデルの分類埋め込みを調整する。作業例を続けて、修正インスタンスに応じて、システムは、「リモートコントロール」分類にマッピングされた分類埋め込みを調整して、ブロック４５２の埋め込みにあまり類似しないようにすることができる。追加的または代替的に、システムは、「電話」分類にマッピングされた分類埋め込みを、ブロック４５２の埋め込みにより類似するように調整することができる。
【０１０２】
いくつかの実装形態では、ブロック４６０は、システムがさらなる修正詳細を要求および受信するサブブロック４６０Ａを含む。例えば、ブロック４５８の受信したユーザインターフェース入力が、「いいえ、それではない」（および「電話」を識別しなかった）場合、システムは「不正確にピックアップしたものを教えてもらえますか？」というユーザインターフェース出力を提供してもよい。それに応じて、ユーザは、「電話」というさらなる音声入力を提供することができる。そのようなさらなる音声入力に基づいて、システムは、「電話」分類にマッピングされた分類埋め込みを、ブロック４５２の埋め込みにより類似するように調整することができる。
【０１０３】
任意選択的なブロック４６２で、システムは、ブロック４５２で適用された視覚センサデータを含む修正インスタンスを生成する。いくつかの実装形態では、ブロック４６２は、サブブロック４６２Ａおよび／または４６２Ｂを含む。ブロック４６２Ａで、システムは、修正インスタンスにおけるオブジェクトの判定された分類を含む。すなわち、ブロック４５４で不正確に判定された判定された分類である。ブロック４６２Ｂで、システムは、修正インスタンス内に修正情報を含む。修正情報は、例えば、ブロック４５８またはブロック４６０Ａで提供された人間が提供した分類の指標を含むことができる。追加および／または代替データが、システムによって修正インスタンス内に任意選択的に含まれてもよい。
【０１０４】
ブロック４６４で、システムは、ブロック４６０で生成された修正インスタンスを送信する。例えば、システムは、１つ以上のネットワークを介して、リモートコンピューティングデバイスへ修正インスタンスを送信することができる。
【０１０５】
ブロック４６６で、システムは、修正インスタンスに基づいてトレーニングされた改訂されたニューラルネットワークモデル、および修正インスタンスに基づいてトレーニングされた（および／または改訂されたニューラルネットワークモデルを考慮してトレーニングされた）改訂された分類モデルを受信する。いくつかの実装形態では、改訂されたニューラルネットワークモデルおよび／または改訂された分類モデルは、修正インスタンスに基づいて生成されたトレーニング例（複数可）に基づいて、および、複数の追加ロボットからの他の修正インスタンスに基づいて生成された他のトレーニング例に基づいて、トレーニングされる。いくつかの実装形態では、システムは、ブロック４５８で判定された修正などの過去の修正に基づいて、受信した改訂された分類モデルを調整し得る。
【０１０６】
ここで図５を参照して、様々な実装形態によるさらに別の例の方法５００が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および／またはロボットと通信する１つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法５００の動作は特定の順序で示されているが、これは限定することを意味するものではない。１つ以上の動作は、順序を変更、省略、または追加されてもよい。
【０１０７】
図５の方法５００は、ブロック３６４（図３）および／またはブロック４６４（図４）で提供された修正インスタンスなどの修正インスタンスに基づいて、ニューラルネットワークモデルの改訂されたバージョンおよび特徴モデルの改訂されたバージョンを生成する一例を図示している。
【０１０８】
ブロック５５２で、システムは、複数のロボットから修正インスタンスを受信する。いくつかの実装形態では、受信した修正インスタンスはすべて、同じ所与のニューラルネットワークモデルに適用可能である。例えば、受信した修正インスタンスはすべて、オブジェクトの分類に利用されるニューラルネットワークモデルに適用可能であり得る。
【０１０９】
いくつかの他の実装形態では、ブロック５５２で受信された修正インスタンスは、様々なニューラルネットワークモデルにまとめて適用可能であり得る。例えば、いくつかの修正インスタンスは、「分類」ニューラルネットワークモデルに適用可能であり得、他の修正インスタンスは、「把持」ニューラルネットワークモデル、等に適用可能であり得る。それらの実装形態のいくつかでは、ブロック５５２は、システムが所与のニューラルネットワークモデルに適用可能な修正インスタンスを判定する、サブブロック５５２Ａを含む。言い換えれば、ブロック５５２Ａで、システムは、様々なニューラルネットワークモデルに適用可能な修正インスタンスのグループから、所与のニューラルネットワークモデルに適用可能なサブグループを判定し得る。ブロック５５２Ａで、システムは、修正インスタンスの内容の分析に基づいて、修正インスタンスを判定することができる。例えば、システムは、所与のニューラルネットワークモデル（または、対応するバージョン）を明示的に示す修正インスタンスに基づいて、そのような修正インスタンスを判定することができる。また、例えば、システムは、所与のモデルを示すそのような修正インスタンスに含まれる修正情報に基づいて、追加的または代替的にそのような修正インスタンスを判定することができる。
【０１１０】
ブロック５５４で、システムは、所与のニューラルネットワークモデルに対する修正インスタンスを選択する。
【０１１１】
ブロック５５６で、システムは、選択された修正インスタンスに基づいて１つ以上のトレーニング例を生成および保存する。
【０１１２】
ブロック５５８で、システムは、所与のニューラルネットワークモデルに対して追加の修正インスタンスが利用可能かどうかを判定する。そうである場合、システムはブロック５５４に進み、追加の修正インスタンスを選択し、その後、ブロック５５６に再び進み、選択された追加の修正インスタンスに基づいて追加のトレーニング例（複数可）を生成および保存する。これは、繰り返し実行されてもよく、任意選択的にブロック５６０と並行して実行されてもよい（後述）。
【０１１３】
ブロック５６０で、システムは、トレーニング例に基づいてトレーニングすることによって、ニューラルネットワークモデルの改訂されたバージョンおよび対応する特徴モデルの改訂されたバージョンを生成する。例えば、システムは、ブロック５５２の修正インスタンスを提供したロボットによって利用されたニューラルネットワークモデルおよび特徴モデルの同じバージョン、同じモデルの異なるバージョン、または異なる（しかし、機能的に類似した）モデル、で開始することができる。いくつかの実装形態では、システムは、１つ以上の基準が満たされるまでトレーニングによって改訂されたバージョンを生成する。基準は、例えば、すべての「現在の」トレーニング例の使用、利用されているトレーニング例の少なくとも閾値量、達成されているトレーニングの少なくとも閾値期間、等を含むことができる。
【０１１４】
ブロック５６２で、システムは、１つ以上のロボットに、前のバージョンの代わりに使用するための、所与のニューラルネットワークモデルの改訂されたバージョンおよび特徴モデルの改訂されたバージョンを提供する。
【０１１５】
ここで図６を参照して、様々な実装形態によるさらに別の例の方法６００が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および／またはロボットと通信する１つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法６００の動作は特定の順序で示されているが、これは限定することを意味するものではない。１つ以上の動作は、順序を変更、省略、または追加されてもよい。
【０１１６】
図６の方法６００は、ニューラルネットワークモデルの受信した改訂されたバージョンに対して特徴モデルを調整する一例を図示しており、特徴モデルは、ニューラルネットワークモデルの過去のバージョン（複数可）に関連付けられた過去の修正に基づいて調整される。例えば、方法６００は、図３のブロック３６８の実装形態の一例を図示している。
【０１１７】
ブロック６５２で、システムは、ニューラルネットワークモデルの改訂されたバージョンと、ニューラルネットワークモデルの改訂されたバージョンに対応する特徴モデルとを受信する。
【０１１８】
ブロック６５４で、システムは、過去の視覚センサデータおよび過去の視覚センサデータの対応する修正詳細（複数可）を選択する。過去の視覚センサデータおよび修正詳細（複数可）は、ニューラルネットワークモデルの前のバージョンに基づいて判定された前の人間の修正に応じて、システムによって前もって保存される。例えば、修正詳細（複数可）は、視覚センサデータによって捕捉されたオブジェクトに対する正確な分類を含む場合があり、前の人間の修正に基づく場合がある。前の人間の修正は、特徴モデルの前のバージョンを更新するために利用された可能性がある。例えば、システムは、特徴モデルの前のバージョンの、特徴埋め込みを前もって調整して、視覚センサデータに基づいて、ニューラルネットワークモデルの前のバージョンの上で生成された埋め込みにより類似するようにしてもよい。
【０１１９】
ブロック６５６で、システムは、視覚センサデータをニューラルネットワークモデルの改訂されたバージョンに適用することに基づいて、埋め込みを生成する。ブロック６５６で生成された埋め込みは、ニューラルネットワークモデルの改訂されたバージョンがさらにトレーニングされているため、ニューラルネットワークモデルの前のバージョンの上で前もって生成された埋め込みとはおそらく異なることが理解される。
【０１２０】
ブロック６５８で、システムは、ブロック６５６の埋め込みに基づいて、特徴モデル内の修正詳細（複数可）にマッピングされた特徴埋め込み（複数可）を更新する。例えば、ブロック６５４の修正詳細（複数可）が正確な分類を含む場合、その正確な分類にマッピングされた分類埋め込みは、ブロック６５６の埋め込みにより類似するように調整されてもよい。
【０１２１】
ブロック６６０で、システムは、追加の過去の視覚センサデータおよび対応する修正詳細（複数可）インスタンスが残っているかどうかを判定する。そうである場合、システムはブロック６５４、６５６、および６５８に戻り、それにより、そのインスタンスに基づいて特徴モデルをさらに更新する（ニューラルネットワークモデルの改訂されたバージョンを考慮して）。そうでない場合、システムは、ニューラルネットワークモデル（および対応する特徴モデル）のさらなる改訂されたバージョンが受信され、その時点で方法６００が繰り返され得るまで、方法６００を終了し得る。
【０１２２】
図７は、ロボット７００の例示的なアーキテクチャを概略的に示す。図１のロボット１９０および／または追加のロボット１９２は、図７の例示的なアーキテクチャの１つ以上の構成要素を実装し得る。ロボット７００は、ロボット制御システム７６０、１つ以上の動作構成要素７０４ａ〜７０４ｎ、および１つ以上のセンサ７０８ａ〜７０８ｍを含む。センサ７０８ａ〜７０８ｍは、例えば、視覚センサ（例えば、カメラ（複数可）、３Ｄスキャナ）、光センサ、圧力センサ、圧力波センサ（例えば、マイクロフォン）、近接センサ、加速度計、ジャイロスコープ、温度計、気圧計、などを含み得る。センサ７０８ａ〜７０８ｍはロボット７００と一体化されているように示されているが、これは限定することを意味するものではない。いくつかの実装形態では、センサ７０８ａ〜７０８ｍは、例えばスタンドアロンユニットとして、ロボット７００の外部に配置されてもよい。
【０１２３】
動作構成要素７０４ａ〜７０４ｎは、例えば、１つ以上のエンドエフェクタ（例えば、把持エンドエフェクタ）および／またはロボットの１つ以上の構成要素の動きを実現するための１つ以上のサーボモータまたは他のアクチュエータを含み得る。例えば、ロボット７００は、複数の自由度を有してもよく、アクチュエータの各々は、制御コマンドに応答して１つ以上の自由度内でロボット７００の作動を制御してもよい。本明細書で使用する、アクチュエータという用語は、アクチュエータに関連付けられ得、かつ受信した制御コマンドを、アクチュエータを駆動するための１つ以上の信号に変換する、任意のドライバ（複数可）に加えて、動きを作り出す機械的または電気的デバイス（例えば、モータ）を包含する。したがって、制御コマンドをアクチュエータに提供することは、制御コマンドを電気的または機械的デバイスを駆動して所望の運動を作り出すための適切な信号に変換するドライバに制御コマンドを提供することを含み得る。
【０１２４】
制御システム７０２は、ＣＰＵ、ＧＰＵ、および／またはロボット７００の他のコントローラ（複数可）などの１つ以上のプロセッサに実装され得る。いくつかの実装形態では、ロボット７００は、制御システム７０２のすべてまたは態様を含み得る「ブレインボックス」を備え得る。例えば、ブレインボックスは、データのリアルタイムバーストを動作構成要素７０４ａ〜ｎに提供し得、リアルタイムバーストの各々は、とりわけ、動作構成要７０４ａ〜ｎの１つ以上の各々に対する動きの特徴（もしあれば）を指令する１つ以上の制御コマンドのセットを備える。
【０１２５】
制御システム７０２は、ロボット７００の一体部分として図７に図示されているが、いくつかの実装形態では、制御システム７０２のすべてまたは態様は、ロボット７００とは別個であるが通信している構成要素に実装されてもよい。例えば、制御システム７０２のすべてまたは態様は、コンピューティングデバイス８１０などの、ロボット７００と有線および／または無線通信する１つ以上のコンピューティングデバイス上に実装されてもよい。
【０１２６】
いくつかの実装形態では、制御システム７０２は、図１の構成要素１０３のうちの１つ以上を機能的に実装および／またはそれらとインターフェースする。例えば、制御システム７０２は、特徴モジュール１２１Ａ〜Ｎ、計画モジュール１２２、コマンドモジュール１２３、ＵＩ入力モジュール１２４、ＵＩ出力モジュール１２５、局所的更新モジュール１２６、修正インスタンスエンジン１３０、および／またはロボットデータエンジン１３５を実装してもよい。また、例えば、制御システム７０２は、ＮＬＰシステム１３３と（例えば、ネットワークインターフェース７１５を介して）インターフェースしてもよい。ニューラルネットワークモデル１５０Ａ〜Ｎの１つ以上は、ロボット７００に局所的に保存され、制御システム７０２にアクセス可能であってもよい。
【０１２７】
図８は、本明細書で説明する手法の１つ以上の態様を実行するために任意選択的に利用し得る例示的なコンピューティングデバイス８１０のブロック図である。コンピューティングデバイス８１０は、典型的には、バスサブシステム８１２を介していくつかの周辺デバイスと通信する少なくとも１つのプロセッサ８１４を含む。これらの周辺機器は、例えば、メモリサブシステム８２５およびファイル記憶サブシステム８２６を含む記憶サブシステム８２４、ユーザインターフェース出力デバイス８２０、ユーザインターフェース入力デバイス８２２、およびネットワークインターフェースサブシステム８１６を含み得る。入力および出力デバイスは、ユーザがコンピューティングデバイス８１０と対話するのを可能にする。ネットワークインターフェースサブシステム８１６は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【０１２８】
ユーザインターフェース入力デバイス８２２は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および／または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス８１０または通信ネットワークに情報を入力する方法を含むことを意図している。
【０１２９】
ユーザインターフェース出力デバイス８２０は、ディスプレイサブシステム、プリンタ、ファックスマシーン、またはオーディオ出力デバイスなどの非視覚ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）などのフラットパネルデバイス、投射型デバイス、または可視画像を作成するためのなんらかの他のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介してなど非視覚ディスプレイも提供し得る。概して、「出力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス８１０からユーザへ、あるいは別のマシンまたはコンピューティングデバイスへ情報を出力する方法を含むことを意図している。
【０１３０】
記憶サブシステム８２４は、本明細書で説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造体を保存する。例えば、記憶サブシステム８２４は、本明細書で説明される方法の選択された態様を実行するためのロジックを含み得る。
【０１３１】
これらのソフトウェアモジュールは概して、単独で、または他のプロセッサと組み合わせて、プロセッサ８１４によって実行される。記憶サブシステム８２４において使用されるメモリ８２５は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ（ＲＡＭ）８３０、および固定命令が記憶される読み出し専用メモリ（ＲＯＭ）８３２を含むいくつかのメモリを含むことができる。ファイル記憶サブシステム８２６は、プログラムおよびデータファイルの永続的な保存を提供することができ、ハードディスクドライブ、フロッピーディスクドライブとともに関連するリムーバブルメディア、ＣＤ−ＲＯＭドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装しているモジュールは、記憶サブシステム８２４内のファイル記憶サブシステム８２６によって保存されてもよく、またはプロセッサ（複数可）８１４によってアクセス可能な他のマシンに保存されてもよい。
【０１３２】
バスサブシステム８１２は、コンピューティングデバイス８１０の様々な構成要素およびサブシステムを意図したとおりに互いに通信させるためのメカニズムを提供する。バスサブシステム８１２は単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は複数のバスを使用してもよい。
【０１３３】
コンピューティングデバイス８１０は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムまたはコンピューティングデバイスを含む様々なタイプのものであることができる。コンピュータおよびネットワークの絶えず変化する性質のため、図８に示されるコンピューティングデバイス８１０の説明は、いくつかの実装形態を例示するための具体的な例としてのみ意図されている。図８に示されるコンピューティングデバイスよりも多いまたは少ない構成要素を有する、コンピューティングデバイス８１０の多くの他の構成が可能である。
【０１３４】
本明細書ではいくつかの実装形態を記載および図示してきたが、機能を実行し、および／または結果を得るための様々な他の手段および／または構造、および／または本明細書で記載された１つ以上の利点が利用されてもよく、そのような変形および／または改変の各々は、本明細書で記載された実装形態の範囲内であるとみなされる。より一般的には、本明細書で記載されるすべての特徴、寸法、材料、および構成は、例示であることを意図し、実際の特徴、寸法、材料、および／または構成は、本教示が使用される具体的な用途または応用に依存する。当業者は、型どおりの実験だけを使用して、本明細書に記載された具体的な実装形態に対する多くの等価物を認識するか、確かめることができるであろう。したがって、前述の実装形態は例としてのみ提示されており、添付の特許請求の範囲およびその等価物の範囲内で、具体的に記載および特許請求されている以外の方法で実装形態が実施され得ることを理解されたい。本開示の実施形態は、本明細書に記載の各個々の特徴、システム、物品、材料、キット、および／または方法を対象とする。加えて、そのような特徴、システム、物品、材料、キット、および／または方法が相互に矛盾しない場合、２つ以上のそのような特徴、システム、物品、材料、キット、および／または方法の任意の組み合わせが、本開示の範囲内に含まれる。
【図１】
0006963041.tif 000002
【図２Ａ】
0006963041.tif 000003
【図２Ｂ】
0006963041.tif 000004
【図２Ｃ】
0006963041.tif 000005
【図２Ｄ】
0006963041.tif 000006
【図３】
0006963041.tif 000007
【図４】
0006963041.tif 000008
【図５】
0006963041.tif 000009
【図６】
0006963041.tif 000010
【図７】
0006963041.tif 000011
【図８】
0006963041.tif 000012