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

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

▶ エックス デベロップメント エルエルシーの特許一覧

特開2022-19721ロボットアクションへの修正に基づく局所的特徴モデルの更新
<>
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図1
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図2A
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図2B
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図2C
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図2D
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図3
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図4
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図5
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図6
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図7
  • 特開-ロボットアクションへの修正に基づく局所的特徴モデルの更新 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022019721
(43)【公開日】2022-01-27
(54)【発明の名称】ロボットアクションへの修正に基づく局所的特徴モデルの更新
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220120BHJP
   G06N 3/08 20060101ALI20220120BHJP
   G06N 20/00 20190101ALI20220120BHJP
   G06N 3/04 20060101ALI20220120BHJP
【FI】
G06T7/00 350C
G06N3/08
G06N20/00 130
G06N3/04
【審査請求】有
【請求項の数】17
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021168984
(22)【出願日】2021-10-14
(62)【分割の表示】P 2019571746の分割
【原出願日】2018-07-02
(31)【優先権主張番号】15/640,936
(32)【優先日】2017-07-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】シャンカール,クリシュナ
(72)【発明者】
【氏名】ハドソン,ニコラス
(72)【発明者】
【氏名】トシェフ,アレクサンダー
(57)【要約】
【課題】 アクションを実行可能にするまたは正確に実行することである。
【解決手段】 ロボットアクションへの修正を判定および利用するための方法、装置、およびコンピュータ可読媒体。いくつかの実装形態は、ロボットによって実行されたアクションの人間の修正を判定することに応じて、ロボットの局所的特徴モデルを更新することを対象とする。局所的特徴モデルは、対応するニューラルネットワークモデルの上で生成された埋め込みに基づいて、生成された埋め込みに最も類似する1つ以上の特徴を判定するために使用される。人間の修正に応じて局所的特徴モデルを更新することは、局所的特徴モデルの、人間の修正に対応する特徴埋め込みを更新することを含むことができる。特徴モデルへの調整(複数可)は、対応するニューラルネットワークモデルの再トレーニングを必要とすることなく、ロボットの実行をすぐに改善することができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットの1つ以上のプロセッサによって実装される方法であって、
前記ロボットの環境内のオブジェクトに対する分類を判定することを含み、
前記分類を判定することが、
前記ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、前記オブジェクトを捕捉し、前記ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記センサデータの前記埋め込みを、前記ロボットの前記コンピュータ可読媒体のうちの1つ以上に局所的に保存された分類モデルに適用することと、
前記埋め込みを前記分類モデルに適用することに基づいて前記分類を判定することと、を含み、
前記方法が、
前記ロボットによって、前記オブジェクトに向けられるアクションの実行中にユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することと、
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することに応じて、前記局所的に保存された分類モデルを更新することと、
を含み、
前記局所的に保存された分類モデルを更新することが、前記ニューラルネットワークモデルの再トレーニングなしで発生する、方法。
【請求項2】
前記ユーザインターフェース入力が、前記オブジェクトの前記分類が不正確であることを示すと判定することが、
前記ユーザインターフェース入力が、前記判定された分類と相反する前記オブジェクトの代替分類を示すと判定することを含む、請求項1に記載の方法。
【請求項3】
前記局所的に保存された分類モデルを更新することが、前記代替分類に基づいて前記局所的に保存された分類モデルを更新することを含む、請求項2に記載の方法。
【請求項4】
前記代替分類に基づいて前記局所的に保存された分類モデルを更新することが、
前記局所的に保存された分類モデル内の前記代替分類にマッピングされている現在の代替分類埋め込みを識別することと、
前記代替分類埋め込みに基づいて、および前記センサデータの前記埋め込みに基づいて、調整された代替分類埋め込みを判定することと、を含む、請求項3に記載の方法。
【請求項5】
前記代替分類埋め込みに基づいて、および前記センサデータの前記埋め込みに基づいて、前記調整された代替分類埋め込みを判定することが、
前記代替分類埋め込みと前記センサデータの前記埋め込みとの平均に基づいて、前記調整された代替分類埋め込みを判定することを含む、請求項4に記載の方法。
【請求項6】
前記センサデータおよび前記代替分類を保存することと、
前記局所的に保存された分類モデルを更新することに続いて、
前記ニューラルネットワークモデルの新しいバージョンおよび前記分類モデルの新しいバージョンを受信することと、
前記センサデータを、前記ニューラルネットワークモデルの前記新しいバージョンへの入力として適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの前記新しいバージョンの上で、前記センサデータの新しい埋め込みを生成することと、
前記分類モデルの前記新しいバージョンにおいて、前記代替分類の新しい代替分類埋め込みを識別することと、
前記分類モデルの前記新しいバージョンにおいて、前記センサデータの前記新しい埋め込みに基づいて、前記代替分類の前記新しい代替分類埋め込みを調整することと、をさらに含む、請求項4に記載の方法。
【請求項7】
前記代替分類に基づいて前記局所的に保存された分類モデルを更新することが、
前記局所的に保存された分類モデルが、前記代替分類に対するいずれかの代替分類埋め込みを欠くと判定することと、
それに応じて、前記局所的に保存された分類モデル内の代替分類埋め込みを保存することと、を含み、
前記代替分類埋め込みが、前記センサデータの前記埋め込みに基づいている、請求項3に記載の方法。
【請求項8】
前記局所的に保存された分類モデルを更新することは、
前記ニューラルネットワークモデルへの入力として、前記オブジェクトを捕捉し、前記ロボットの前記センサによって生成される追加のセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記追加のセンサデータのさらなる埋め込みを生成することと、
前記さらなる埋め込みおよび前記代替分類に基づいて、前記局所的に保存された分類モデルを更新することと、をさらに含む、請求項3に記載の方法。
【請求項9】
前記埋め込みを前記分類モデルに適用することに基づいて前記分類を判定することが、
前記埋め込みが、代替分類にマッピングされた代替分類埋め込みよりも前記分類にマッピングされた分類埋め込みにより類似していると判定することに基づいて、前記分類を判定することを含む、請求項1に記載の方法。
【請求項10】
前記局所的に保存された分類モデルを更新することが、
前記埋め込みにあまり類似しないように前記分類埋め込みを変更することに基づいて、前記分類に対する調整された分類埋め込みを判定することを含む、請求項9に記載の方法。
【請求項11】
ロボットの1つ以上のプロセッサによって実装される方法であって、
前記ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、前記ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記ロボットの前記コンピュータ可読媒体のうちの1つ以上に局所的に保存された特徴モデルに前記埋め込みを適用することに基づいて、前記センサデータの特徴を判定することであって、前記特徴モデルが、前記特徴を前記特徴の特徴埋め込みにマッピングし、かつ、追加特徴を対応する追加特徴埋め込みにマッピングし、前記特徴を判定することが、
前記特徴にマッピングされた前記特徴埋め込みに対する前記センサデータの前記埋め込みの類似性に基づいて、前記特徴を判定することを含む、前記センサデータの特徴を判定することと、
前記判定された特徴に基づいて、前記オブジェクトに向けられるロボットアクションを実行することと、
前記オブジェクトに向けられる前記ロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記追加特徴のうちの特定の追加特徴を示すと判定することと、
前記ユーザインターフェース入力が、前記特定の追加特徴を示すと判定することに応じて、
前記特徴モデルにおいて、前記センサデータの前記埋め込みに基づいて前記特定の追加特徴の前記追加特徴埋め込みを調整することと、
を含む、方法。
【請求項12】
前記特徴が、第1の分類であり、前記特定の追加特徴が、第2の分類である、請求項11に記載の方法。
【請求項13】
前記特徴が、第1の境界エリアであり、前記追加特徴が、第2の境界エリアである、請求項11に記載の方法。
【請求項14】
前記第1の境界エリアが、複数の第1のピクセルによって定義され、前記第2の境界エリアが、複数の第2のピクセルによって定義される、請求項13に記載の方法。
【請求項15】
前記ユーザインターフェース入力が、ユーザがクライアントコンピューティングデバイスを介して前記第2の境界エリアを示すことに基づいて、前記クライアントコンピューティングデバイスで生成され、前記第2の境界エリアは、前記センサデータに基づく画像の表示中に、前記クライアントデバイスを介して示される、請求項13に記載の方法。
【請求項16】
前記ロボットアクションが不正確であることを示す最初のユーザインターフェース入力に応じて、前記クライアントデバイスに前記画像を提供することをさらに含む、請求項15に記載の方法。
【請求項17】
ロボットの1つ以上のプロセッサによって実装される方法であって、
前記ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、前記オブジェクトを捕捉し、前記ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、
前記適用に基づいて前記ニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記ロボットの前記コンピュータ可読媒体のうちの1つ以上に局所的に保存された特徴モデルに前記埋め込みを適用することに基づいて、前記センサデータの特徴を判定することであって、前記特徴モデルが、前記特徴を前記特徴の特徴埋め込みにマッピングし、かつ、追加特徴を対応する追加特徴埋め込みにマッピングし、前記特徴を判定することが、
前記追加特徴埋め込みのいずれよりも前記センサデータの前記埋め込みにより類似している前記特徴にマッピングされた前記特徴埋め込みに基づいて前記特徴を判定することを含む、前記センサデータの特徴を判定することと、
前記判定された特徴に基づいてロボットアクションを実行することと、
前記ロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、
前記ユーザインターフェース入力が、前記ロボットアクションが不正確であることを示すと判定することと、
前記ユーザインターフェース入力が、前記ロボットアクションが不正確であることを示すと判定することに応じて、
前記センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することと、
前記センサデータを含む修正インスタンスを生成することと、
ネットワークインターフェースを介して、前記修正インスタンスを1つ以上のリモートコンピューティングデバイスに送信することと、を含み、前記1つ以上のリモートコンピューティングデバイスが、前記修正インスタンスを使用して、前記ニューラルネットワークモデルの改訂されたバージョンを生成するための少なくとも1つのトレーニング例を生成する、方法。
【請求項18】
前記ネットワークインターフェースを介して、前記ニューラルネットワークモデルが、
前記トレーニング例と、
追加のロボットからの追加の修正インスタンスからの追加のトレーニング例と、に基づいてトレーニングされた後、前記ニューラルネットワークモデルの前記改訂されたバージョンを受信すること、をさらに含む、請求項17に記載の方法。
【請求項19】
前記ユーザインターフェース入力が、前記判定された特徴が不正確であることを示すと判定することが、
前記ユーザインターフェース入力が、前記追加特徴のうちの、前記判定された特徴と相反する追加特徴を示すと判定することを含む、請求項17に記載の方法。
【請求項20】
前記センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することが、
前記センサデータの前記埋め込みに基づいて、追加特徴埋め込みを調整することであって、前記追加特徴埋め込みが、前記複数の追加特徴埋め込みのうちの1つであり、前記局所的に保存された特徴モデル内の前記追加特徴にマッピングされている、調整することを含む、請求項19に記載の方法。
【請求項21】
前記修正インスタンスが、前記追加特徴の指標を含む、請求項20に記載の方法。
【請求項22】
前記視覚センサデータの前記埋め込みに基づいて、前記局所的に保存された特徴モデルを更新することが、
前記追加特徴が、前記局所的に保存された特徴モデル内の前記追加特徴埋め込みのうちのいずれにもマッピングされていないと判定することと、
それに応じて、前記局所的に保存された特徴モデル内の前記追加特徴に対する特定の特徴埋め込みを保存することと、を含み、前記特定の特徴埋め込みが、前記視覚センサデータの前記埋め込みに基づいている、請求項18に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
購入して使用するロボットは、様々なアクションを実行することができる可能性がある。しかしながら、状況によっては、ロボットが依然としていくつかのアクションを不正確に実行する、および/またはいくつかのアクションを実行することができない場合がある。そのような発生は、アクションを実行する際にロボットが利用するモデル(複数可)の精度および/または堅牢性の欠如、ロボットが動作する様々なおよび/または動的な環境などのような様々な要因に起因する可能性がある。さらに、アクションの不正確な実行のうちの多くの発生に対して、ロボット自体が不正確な実行を認識することができない場合がある。例えば、ロボットの制御プロセスは、実際には実行が不正確であるにもかかわらず、アクションが正確に実行されたとみなす場合がある。
【発明の概要】
【0002】
本開示は、ロボットアクションへの人間の修正を判定および利用するための方法、装置、およびコンピュータ可読媒体(一時的および非一時的)を対象とする。それらの実装形態のいくつかは、ロボットによって実行されるアクションの人間の修正を判定することに応じて、ロボットの特徴モデルを更新することを対象としている。特徴モデルは、ロボットのみによって利用される点で、および/またはロボットに局所的に保存されるという点で、「局所」特徴モデルであることができる。特徴モデルは、対応するニューラルネットワークモデルの上で生成された埋め込みに基づいて、生成された埋め込みに最も類似する1つ以上の特徴を判定するために使用される。例えば、特徴モデルは、特徴と対応する特徴埋め込みとの間の保存されたマッピングを含み得る。特徴は、特徴モデルにおいて、生成された埋め込みに最も類似している特徴埋め込みにマッピングされている特徴に基づいて、生成された埋め込みに最も類似していると判定することができる。
【0003】
そのような一例では、ロボットアクションを特徴に基づいて実行することができ、人間の修正は、特徴が不正確であること、および/または追加特徴が代わりに正確であること(または正確でもある)を示すことができる。人間の修正に応じて、特徴モデルを更新することができる。例えば、追加特徴にマッピングされている追加特徴埋め込みを調整することができ(すなわち、生成された埋め込みにより類似させるように)、および/またはモデル内の特徴にマッピングされている特徴埋め込みを調整することができる(すなわち、生成された埋め込みにあまり類似しないようにする)。別の例として、追加特徴がモデルに含まれていない場合、追加特徴を含めて、生成された埋め込みに基づいた(例えば、同じの)特徴埋め込みを割り当てることができる。特徴モデルは、人間の修正に応じて更新することができ、対応するニューラルネットワークモデルの再トレーニングを必要とせずに更新することができる。
【0004】
本明細書で開示される実装形態の一特定例として、特徴モデルは分類モデルであることができる。分類モデルは、ロボットに局所的に保存することができ、分類を対応する分類埋め込みにマッピングすることができる。例えば、「ボウル」分類を分類埋め込みAにマッピングすることができ、「カップ」分類を分類埋め込みBにマッピングすることができ、「帽子」分類を分類埋め込みCにマッピングすることができる、等。各分類埋め込みは、例えば、多次元共通埋め込み空間内の位置を定義する値のベクトルであることができる。
【0005】
分類モデルに対応するニューラルネットワークモデルは、ロボットに局所的に保存することもできる。ニューラルネットワークモデルは、センサデータインスタンスの埋め込みを生成するようにトレーニングすることができ、分類モデルと連携してトレーニングすることができる。例えば、ロボットの視覚センサ(例えば、単眼カメラ、ステレオカメラ、レーザスキャナ)によって生成された視覚センサデータは、ニューラルネットワークモデルへの入力として適用することができ、適用された入力に基づいて、ニューラルネットワークモデルの上に埋め込みを生成することができる。次いで、生成された埋め込みを1つ以上の分類埋め込みと比較して、生成された埋め込みに最も類似している分類埋め込みを判定することができる。例えば、生成された埋め込みおよび分類埋め込みが、各々対応する値のベクトルである場合、生成された埋め込みと分類埋め込みとの間の距離測度を生成することができ、最小距離測度は、最も類似した分類埋め込みを示すことができる。
【0006】
その後、最も類似した分類埋め込みに対応する分類を、視覚センサデータによって捕捉されたオブジェクトの分類として判定することができる。例えば、「ボウル」分類は、視覚センサデータによって捕捉されたオブジェクトの分類として判定することができる(すなわち、「ボウル」分類にマッピングされている分類埋め込みAに最も類似すると判定されている生成された埋め込みに基づいて)。次いで、ロボットは、オブジェクトに向けられた1つ以上のアクションを実行することができる。例えば、ロボットはオブジェクトをピックアップして、「ボウルをピックアップしている」という可聴出力を提供することができる。
【0007】
アクションの実行中または実行後に、分類が不正確であることを示すユーザインターフェース入力(例えば、「それはボウルではない」の音声入力)および/または代替分類が代わりに正確な分類であることを示すユーザインターフェース入力(例えば、「それは帽子です」の音声入力)を受信することができる。人の修正に応じて、局所的に保存された分類モデルを更新することができる。例えば、「帽子」が正確な分類であることを示ユーザインターフェース入力に基づいて、分類埋め込みC(「帽子」分類にマッピングされている)を、生成された埋め込みに基づいて調整することができる。例えば、分類埋め込みCを、生成された埋め込みにより類似するように調整することができる。一特定例として、現在の分類埋め込みCおよび生成された埋め込み平均し、その平均を「帽子」分類の新しい分類埋め込みとして利用することができる(例えば、新しい分類埋め込みが、「帽子」分類のマッピングされた分類埋め込みとして分類埋め込みCに取って代わることができる)。別の例として、「ボウル」が不正確な分類であることを示すユーザインターフェース入力に基づいて、分類埋め込みA(「ボウル」分類にマッピングされている)を、生成された埋め込みに基づいて調整することができる。例えば、分類埋め込みAは、生成された埋め込みにあまり類似しないように調整することができる。
【0008】
分類モデルへのこのような調整(複数可)は、対応するニューラルネットワークモデルの再トレーニングを必要とすることなく、将来の分類の実行をすぐに改善することができることに留意されたい。例えば、追加の視覚センサデータを同じ(さらにトレーニングされていない)ニューラルネットワークモデルに適用して、上記の生成された埋め込みに非常に類似する(または同じの)追加の埋め込みを生成する場合、「帽子」分類は、(「ボウル」分類の代わりに)「帽子」分類の新しい分類埋め込みに基づいて、判定され得る。したがって、分類の実行は、ニューラルネットワークモデルのさらなる計算集約的および/または時間のかかるトレーニングを行うことなく、分類モデルの調整を通して迅速に改善することができる。このような改善された分類の実行は、オブジェクトの分類に(直接または間接的に)依存する様々なロボットアクションの実行における改善にさらにつながる。
【0009】
いくつかの実装形態では、人間の修正を判定することに応じて、修正インスタンスを追加的または代替的に生成することができ、1つ以上のリモートコンピューティングデバイスに送信することができる。修正インスタンスは、例えば、ニューラルネットワークモデルに適用されたセンサデータ、および人間の修正に基づく修正情報(例えば、正確な特徴(複数可)を示す、および/または判定された特徴(複数可)が不正確であったことを示す)を含むことができる。例えば、前の段落の例を続けて、「ボウル」分類が不正確であることを示すユーザインターフェース入力に応じて、不正確である「ボウル」分類を生成する際にニューラルネットワークモデルに適用される視覚センサデータ、および「ボウル」分類が不正確であったことの指標を含む、修正インスタンスを生成して、送信することができる。また、例えばおよび前の段落の例を続けて、代替の「帽子」分類が代わりに正確な分類であることを示すユーザインターフェース入力に応じて、不正確である「ボウル」分類を生成する際にニューラルネットワークモデルに適用される視覚センサデータ、および「帽子」が正確な分類であることの指標を含む、修正インスタンスを生成して、送信することができる。
【0010】
修正インスタンスは、1つ以上のリモートコンピューティングデバイスに送信することができる。リモートコンピューティングデバイスは、修正インスタンスを利用して、アクションの実行に利用される不正確な特徴(複数可)を判定する際に使用されるモデルに対応するニューラルネットワークモデル(複数可)などの、1つ以上のニューラルネットワークモデル(複数可)のトレーニングのためのトレーニング例(複数可)を生成することができる。様々な実装形態では、ニューラルネットワークモデル(複数可のトレーニングは、複数のロボットから受信した修正インスタンスに基づいている。修正インスタンスを生成および提供する複数のロボットは、異なる地理的場所および/または環境に物理的に位置付けすることができ、および/または互いに異なることができる(例えば、ハードウェア的におよび/またはソフトウェア的に異なる)。
【0011】
ニューラルネットワークモデルの改訂されたバージョンが生成されると、複数のロボットからの修正インスタンスに基づくトレーニングを通じて、その後、ニューラルネットワークモデルの改訂されたバージョンを複数のロボットの1つ以上によって利用することができる。例えば、複数のロボットのうちの1つは、修正インスタンスのうちの1つがそのロボットによって生成されたときに利用されていた以前の対応するバージョンの代わりに、改訂されたバージョンを利用し得る。例えば、改訂されたバージョンをそのロボットに送信することができ、そのロボットは以前の局所的に保存されたバージョンを改訂されたバージョンと置き換えることができる。いくつかの実装形態では、ニューラルネットワークモデルの改訂されたバージョンに対応する特徴モデルの改訂されたバージョンも生成することができる。例えば、特徴モデルの改訂されたバージョンは、様々な特徴に対する改訂された特徴埋め込みを含むことができ(例えば、ニューラルネットワークモデルの改訂されたバージョンに対応するように)、追加特徴および対応する特徴埋め込みを含むことができる(例えば、修正インスタンスが「新しい」特徴を含む場合)、等。特徴モデルの改訂されたバージョンは、その後、複数のロボットのうちの1つ以上によって利用することもできる。
【0012】
いくつかの実装形態では、ニューラルネットワークモデルの「新しい」バージョンを受信することに応じて、ロボットは、過去の人間の修正に基づいて対応する特徴モデルを適合させ得る。一例として、ニューラルネットワークモデルの新しいバージョンがニューラルネットワークモデルの古いバージョンと置き換わり、特徴モデルの新しいバージョンが特徴モデルの古いバージョンと置き換わると仮定する。人間の修正に応じて、視覚センサデータXに基づいてニューラルネットワークモデルの古いバージョン上で生成された埋め込みにより類似するように、特徴Aの特徴埋め込みを調整することによって、特徴モデルの古いバージョンが以前に更新されたとさらに仮定する。特徴モデルの新しいバージョンは、視覚センサデータXをニューラルネットワークモデルの新しいバージョンに適用することに基づいて、ニューラルネットワークモデルの新しいバージョンの上で新しい埋め込みを生成することによって更新され得、新しい埋め込みにより類似するように(特徴モデルの新しいバージョンにおいて)特徴Aの特徴埋め込みを調整する。このようにして、ロボットの前の特徴モデルを更新するために利用された過去の人間の修正からの前の視覚センサデータおよび前の修正情報が、ロボットによって利用され、ニューラルネットワークモデルの新しいバージョンの上で生成された埋め込みを介して特徴モデルの新しいバージョンを調整することができる。
【0013】
いくつかの実装形態では、ロボットのアクションの人間の修正を判定することは、アクションの実行(すなわち、アクションの実行前、実行中、または実行後)に関連して受信されたユーザインターフェース入力に基づいている。ユーザインターフェース入力は、ロボットの1つ以上のセンサ(例えば、ロボットのマイクロフォン、人間のタッチおよび/またはロボットの人間の操作を判定するために使用することができるセンサ(複数可))を介して、および/またはロボットとは分離されているが、ロボットと通信しているクライアントデバイス(例えば、タブレットまたはスマートフォンを介して受信された音声またはタイプされたユーザインターフェース入力)を介して受信することができる。
【0014】
ユーザインターフェース入力が修正を示すと判定することは、ユーザインターフェース入力自体の分析に基づくことができ、任意選択的に実行されているアクションの特徴(複数可)に基づくことができる。例えば、それは、修正(例えば、「いいえ」、「停止」、「ではない」)を示すユーザインターフェース入力内の1つ以上の用語または他の合図に基づくことができる。また、例えば、それは、追加的または代替的に、アクションの実行に利用されている特徴(複数可)へのユーザインターフェース入力に基づいて判定された特徴(複数可)の比較に基づくことができる。例えば、ユーザインターフェース入力は、オブジェクトの分類が「帽子」であることを示し、一方、アクションは、オブジェクトに対して「ボウル」の不正確に判定された分類に基づいて実行されている、という矛盾を判定するために「帽子」と「ボウル」の比較を用いる。ユーザインターフェース入力が自然言語入力(例えば、音声入力または自由形式のタイプ入力)である場合、自然言語処理(NLP)システムおよび/または他の構成要素を、そのようなユーザインターフェース入力が修正であると判定するのに任意選択的に利用し得る。
【0015】
様々な実装形態において、本明細書で説明される人間の修正に応じて特徴モデルを更新することは、いわゆる「ハードネガティブ」インスタンスを考慮して特徴モデルが適合されることを可能にする。すなわち、特徴モデルは、事前に更新された特徴モデルに基づいてなされた根底にある不正確な判定の結果として更新される。言い換えれば、特徴モデルは、実際には特徴(複数可)が不正確である、および/または不完全であるにもかかわらず、正確な特徴(複数可)であるとみなされたものに基づいてロボットによって実行されるアクションに基づいて更新される。このような適合は、根底にある判定が正確であるいわゆる「肯定的」インスタンスの特徴モデルを更新するよりも影響が大きい場合がある。
【0016】
さらに、ニューラルネットワークモデルをトレーニングするためのトレーニング例を生成する際に利用するための修正インスタンスを生成および送信する様々な実装形態は、いわゆる「ハードネガティブ」トレーニング例の生成を可能にする。すなわち、トレーニング例は、トレーニング対象のニューラルネットワークモデルに基づいてなされた根底にある不正確な判定の結果である修正インスタンスに基づいて生成されるために、ハードネガティブである。
【0017】
実装形態の例が、それらの実装形態の一部の概要を提供する目的で、前の段落で提供されている。しかしながら、本明細書で説明される様々な実装形態は、1つ以上の点で提供された例から異なることを理解されたい。
【0018】
いくつかの実装形態では、ロボットの環境内のオブジェクトに対する分類を判定することを含む方法が提供され得る。オブジェクトに対する分類を判定することは、ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、センサデータの埋め込みを、ロボットのコンピュータ可読媒体の1つ以上に局所的に保存された分類モデルに適用することと、埋め込みを分類モデルに適用することに基づいて分類を判定することと、を含む。本方法は、ロボットによって、オブジェクトに向けられるアクションの実行中にユーザインターフェース入力を受信することをさらに含む。本方法は、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することをさらに含む。本方法は、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することに応じて、局所的に保存された分類モデルを更新することをさらに含む。局所的に保存された分類モデルを更新することは、ニューラルネットワークモデルの再トレーニングなしで発生する。
【0019】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの1つ以上を任意選択的に含み得る。
【0020】
いくつかの実装形態では、ユーザインターフェース入力が、オブジェクトの分類が不正確であることを示すと判定することは、ユーザインターフェース入力が、オブジェクトの、判定された分類と相反する代替分類を示すと判定することを含む。これらの実装形態のいくつかでは、局所的に保存された分類モデルを更新することは、代替分類に基づいて局所的に保存された分類モデルを更新することを含む。これらの実装形態のいくつかのバージョンでは、代替分類に基づいて局所的に保存された分類モデルを更新することは、局所的に保存された分類モデル内の代替分類にマッピングされる現在の代替分類埋め込みを識別することと、
代替分類埋め込みに基づいて、およびセンサデータの埋め込みに基づいて、調整された代替分類埋め込みを判定することと、を含む。例えば、調整された代替分類埋め込みを判定することは、代替分類埋め込みとセンサデータの埋め込みとの平均に基づくことができる。いくつかの追加または代替の実装形態では、本方法は、センサデータと代替分類とを保存することと、局所的に保存された分類モデルを更新することに続いて、ニューラルネットワークモデルの新しいバージョンと分類モデルの新しいバージョンとを受信することと、センサデータをニューラルネットワークモデルの新しいバージョンへの入力として適用することと、その適用に基づいてニューラルネットワークモデルの新しいバージョンの上で、センサデータの新しい埋め込みを生成することと、分類モデルの新しいバージョンにおいて、代替分類の新しい代替分類埋め込みを識別することと、分類モデルの新しいバージョンにおいて、センサデータの新しい埋め込みに基づいて、代替分類の新しい代替分類埋め込みを調整することと、をさらに含むことができる。いくつかの実装形態では、代替分類に基づいて局所的に保存された分類モデルを更新することは、局所的に保存された分類モデルが、代替分類に対するいずれかの代替分類埋め込みを欠くと判定することと、それに応じて、局所的に保存された分類モデルに代替分類埋め込みを保存することであって、代替分類埋め込みは、センサデータの埋め込みに基づいている、保存することと、を含む。いくつかの実装形態では、局所的に保存された分類モデルを更新することは、ニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットのセンサによって生成される追加のセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、追加のセンサデータのさらなる埋め込みを生成することと、さらなる埋め込みおよび代替分類に基づいて局所的に保存された分類モデルを更新することと、をさらに含む。
【0021】
いくつかの実装形態では、埋め込みを分類モデルへ適用することに基づいて分類を判定することは、埋め込みが、代替分類にマッピングされた代替分類埋め込みよりも、分類にマッピングされた分類埋め込みにより類似していると判定することに基づいて分類を判定することを含む。これらの実装形態のいくつかでは、局所的に保存された分類モデルを更新することは、埋め込みにあまり類似しないように分類埋め込みを変更することに基づいて、分類に対する調整された分類埋め込みを判定することを含む。
【0022】
いくつかの実装形態では、ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、ロボットのコンピュータ可読媒体の1つ以上に局所的に保存された特徴モデルに埋め込みを適用することに基づいて、センサデータの特徴を判定することと、を含む方法が提供されている。特徴モデルは、特徴を特徴の特徴埋め込みにマッピングし、追加特徴を対応する追加特徴埋め込みにマッピングする。特徴を判定することは、特徴にマッピングされた特徴埋め込みに対するセンサデータの埋め込みの類似性に基づいて、特徴を判定することを含む。本方法は、判定された特徴に基づいて、オブジェクトに向けられるロボットアクションを実行することと、オブジェクトに向けられるロボットアクションの実行に応じて、ユーザインターフェース入力を受信することと、ユーザインターフェース入力が追加特徴の特定の追加特徴を示すと判定することと、をさらに含む。本方法は、ユーザインターフェースの入力が特定の追加特徴を示すと判定することに応じて、特徴モデルにおいて、センサデータの埋め込みに基づいて特定の追加特徴の追加特徴埋め込みを調整することをさらに含む。
【0023】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの1つ以上を任意選択的に含み得る。
【0024】
いくつかの実装形態では、特徴は第1の分類であり、特定の追加特徴は第2の分類である。
【0025】
いくつかの実装形態では、特徴は第1の境界エリアであり、追加特徴は第2の境界エリアである。これらの実装形態のいくつかでは、第1の境界エリアは複数の第1のピクセルによって定義され、第2の境界エリアは複数の第2のピクセルによって定義される。これらの実装形態のいくつかでは、ユーザインターフェース入力は、クライアントコンピューティングデバイスを介して第2の境界エリアを示すユーザに基づいて、クライアントコンピューティングデバイスで生成される。センサデータに基づく画像の表示中に、クライアントデバイスを介して第2の境界を示すことができる。これらの実装形態のいくつかのバージョンでは、本方法は、ロボットアクションが不正確であることを示す最初のユーザインターフェース入力に応じて、クライアントデバイスに画像を提供することをさらに含む。
【0026】
いくるかの実装形態では、ロボットの1つ以上のコンピュータ可読媒体に局所的に保存されたニューラルネットワークモデルへの入力として、オブジェクトを捕捉し、ロボットの少なくとも1つのセンサによって生成されるセンサデータを適用することと、その適用に基づいてニューラルネットワークモデルの上で、センサデータの埋め込みを生成することと、ロボットのコンピュータ可読媒体の1つ以上に局所的に保存された特徴モデルに埋め込みを適用することに基づいて、センサデータの特徴を判定することと、を含む方法が提供されている。特徴モデルは、特徴を特徴の特徴埋め込みにマッピングし、追加特徴を対応する追加特徴埋め込みにマッピングする。特徴を判定することは、追加特徴埋め込みのいずれよりもセンサデータの埋め込みにより類似している特徴にマッピングされた特徴埋め込みに基づいて特徴を判定することを含む。本方法は、判定された特徴に基づいてロボットアクションを実行することと、ロボットアクションの実行に応じてユーザインターフェース入力を受信することと、ユーザインターフェースの入力が、ロボットアクションが不正確であることを示すと判定することと、をさらに含む。本方法は、ユーザインターフェース入力が、ロボットアクションが不正確であることを示すと判定することに応じて、センサデータの埋め込みに基づいて、局所的に保存された特徴モデルを更新することと、センサデータを含む修正インスタンスを生成することと、ネットワークインターフェースを介して、修正インスタンスを1つ以上のリモートコンピューティングデバイスに送信することと、をさらに含む。1つ以上のリモートコンピューティングデバイスは、修正インスタンスを使用して、ニューラルネットワークモデルの改訂されたバージョンを生成するための少なくとも1つのトレーニング例を生成する。
【0027】
本明細書で開示される技術のこの方法および他の実装形態は各々、以下の特徴のうちの1つ以上を任意選択的に含み得る。
【0028】
いくつかの実装形態では、本方法は、ネットワークインターフェースを介して、ニューラルネットワークモデルの改訂されたバージョンを受信することをさらに含む。ニューラルネットワークモデルの改訂されたバージョンは、トレーニング例、および追加のロボットからの追加の修正インスタンスからの追加のトレーニング例に基づいて、ニューラルネットワークモデルがトレーニングされた後に受信される。
【0029】
いくつかの実装形態では、ユーザインターフェース入力が、判定された特徴が不正確であることを示すと判定することは、ユーザインターフェース入力が、追加特徴のうちの、判定された特徴と相反する追加特徴を示すと判定することを含む。これらの実装形態のいくつかでは、センサデータの埋め込みに基づいて局所的に保存された特徴モデルを更新することは、センサデータの埋め込みに基づいて追加特徴埋め込みを調整することを含む。追加特徴埋め込みは、追加特徴埋め込みのうちの1つであり、局所的に保存された特徴モデル内の追加特徴にマッピングされる。これらの実装形態のいくつかのバージョンでは、修正インスタンスは、追加特徴の指標を含む。いくつかの実装形態では、センサデータの埋め込みに基づいて局所的に保存された特徴モデルを更新することは、追加特徴が、局所的に保存された特徴モデル内の追加特徴埋め込みのいずれにもマッピングされていないと判定することと、かつそれに応じて、局所的に保存された特徴モデル内の追加特徴に対する特定の特徴埋め込みを保存することと、を含む。特定の特徴埋め込みは、センサデータの埋め込みに基づいている。
【0030】
他の実装形態は、上記の方法のうちの1つ以上などの方法を実行するためにプロセッサによって実行可能な命令を保存する非一時的コンピュータ可読記憶媒体を含み得る。さらに他の実装形態は、メモリおよびメモリに保存された命令を実施するように動作可能な1つ以上のプロセッサを含むシステム(例えば、ロボットおよび/または1つ以上の他の構成要素)を含んで、単独でまたは集合的に、上記の方法のうちの1つ以上などの方法を実行する1つ以上のモジュールまたはエンジンを実装し得る。
【0031】
本明細書でより詳細に説明される前述の概念および追加の概念のすべての組み合わせは、本明細書で開示される主題の一部として企図されていることを理解されたい。例えば、本開示の最後に示さる特許請求される主題のすべての組み合わせは、本明細書に開示される主題の一部であると企図されている。
【図面の簡単な説明】
【0032】
図1】本明細書で開示される実装形態が実装され得る例示的な環境を図示する。
図2A】ロボットアクションへの修正を提供する例を図示する。
図2B】ロボットアクションへの修正を提供する例を図示する。
図2C】ロボットアクションへの修正を提供する例を図示する。
図2D】ロボットアクションへの修正を提供する例を図示する。
図3】本明細書で開示される実装形態による、例示的な方法を図示するフローチャートである。
図4】本明細書で開示される実装形態による、別の例の方法を図示するフローチャートである。
図5】本明細書で開示される実装形態による、別の例の方法を図示するフローチャートである。
図6】本明細書に開示される実装形態による、別の例の方法を図示するフローチャートである。
図7】ロボットのアーキテクチャの一例を概略的に示す。
図8】コンピュータシステムのアーキテクチャの一例を概略的に示す。
【発明を実施するための形態】
【0033】
図1は、本明細書で開示される実装形態が実装され得る例示的な環境を図示する。例示の環境は、ロボット190を含む。図1には特定のロボット190が図示されているが、静止した「ロボットアーム」、人型のロボット、動物型のロボット、1つ以上の車輪を介して移動する他のロボット(例えば、他の自己バランスロボット、非自己バランスロボット)、無人航空機(「UAV」)、などを含む、追加および/または代替のロボットが利用されてもよい。
【0034】
ロボット190は、対応する把持エンドエフェクタ196aおよび196bを備えたロボットアーム194aおよび194bを含み、これらは各々、2つの対向する作動可能部材を有するグリッパの形態をとる。ロボット190はまた、ロボット190の歩行運動のためにその対向する側に設けられた車輪197aおよび197bを有する基部193を含む。基部193は、例えば、対応する車輪197aおよび197bを駆動して、ロボット190の運動の所望の方向、速度、および/または加速を達成するための1つ以上のモータを含み得る。
【0035】
ロボット190は、視覚センサ199も含む。視覚センサ199は、例えば、ステレオグラフィックカメラ、モノグラフィックカメラ、または3Dレーザスキャナであってもよい。いくつかの実装形態では、ステレオグラフィックカメラは、各々異なる視座にある2つ以上のセンサ(例えば、電荷結合素子(CCD))を含む。所与のインスタンスで2つのセンサによって生成されたセンサデータに基づいて、3次元(「3D」)ポイントクラウドデータである視覚センサデータが所与のインスタンスに対して生成され得、3Dポイントクラウドの3Dポイントの各々は、対応するオブジェクトの表面の3D座標を定義する。いくつかの他の実装形態では、ステレオグラフィックカメラは、2つの異なる視座からセンサデータを効果的に捕捉するために利用される単一のセンサと1つ以上のミラーのみを含み得る。モノグラフィックカメラは、単一のセンサを含むことができ、2次元(「2D」)視覚センサデータを捕捉する。3Dレーザスキャナは、光を放射する1つ以上のレーザと、放射された光の反射に関連する視覚センサデータを生成する1つ以上のセンサとを含む。3Dレーザスキャナから生成された視覚センサデータは、3Dポイントクラウドデータであり得る。3Dレーザスキャナは、例えば、飛行時間型3Dレーザスキャナまたは三角測量ベースの3Dレーザスキャナであってもよく、位置感応検出器(PSD)または他の光学位置センサを含んでもよい。
【0036】
本明細書で説明されるように、ロボット190は、少なくとも一部の時間で自律的に動作し、様々なアクションの実行においてそのアクチュエータを制御し得る。例えば、様々なアクションを実行する際に、ロボット190の1つ以上のプロセッサは、車輪197aおよび/もしくは197b、ロボットアーム194aおよび/もしくは194b、ならびに/またはエンドエフェクタ196aおよび/もしくは196bに関連付けられたアクチュエータに制御コマンドを提供し得る。
【0037】
また、図1に図示されているのは、ロボット190による様々なアクションの実行の際に、ロボット190によって実行される様々なアクションに対する人間の修正を判定する際に、これらの様々なアクションに対する人間の修正を判定することに応じて特徴モデル(複数可)を更新する際に、および/またはこれらの様々なアクションに対する人間の修正を判定することに応じて修正インスタンスを生成および送信する際に、利用される様々な構成要素103である。
【0038】
構成要素103は、図1ではロボット190とは別個に図示されているが、接続要素102は、これらの構成要素103を、ロボット190上に実装することができること、および/またはロボット190と(例えば、ローカルエリアネットワークおよび/またはワイドエリアネットワークを介して)ネットワーク通信できることを示す。例えば、いくつかの実装形態では、構成要素103のうちの1つ以上(例えば、すべて)が、ロボット190に対して局所的なハードウェアによって実装される。例えば、アクションシステム120、局所的更新モジュール126、修正インスタンスエンジン130、および/またはロボットデータエンジン135は、ロボット190の1つ以上のプロセッサによって実装されてもよい。また、例えば、ニューラルネットワークモデル150A、特徴モデル160A、ニューラルネットワークモデル150N、特徴モデル160N、および/または生成されたロボットデータデータベース152は、ロボット190の1つ以上のハードドライブまたは他のコンピュータ可読媒体に保存されてもよい。別の例として、いくつかの実装形態では、構成要素103のうちの1つ以上が、ロボット190から離れた1つ以上のコンピューティングデバイス上に実装される。
【0039】
構成要素103は、ロボット190のロボットセンサによって生成されたロボットセンサデータおよび/またはロボット190の構成要素によって生成された他のデータを処理するロボットデータエンジン135を含む。例えば、ロボットデータエンジン135は、ロボットの様々なセンサからロボットセンサデータを受信し、ロボットセンサデータにタイムスタンプを付け、タイムスタンプ付きロボットセンサデータをアクションシステム120に提供してもよい。ロボットセンサデータは、例えば、視覚センサ199からの視覚センサデータ、ロボットのアクチュエータの位置センサからの位置センサデータ、ロボットの加速度計(複数可))からの加速度計データ、などを含み得る。ロボットデータエンジン135は、生成されたロボットデータデータベース152内に、ロボットセンサデータの少なくとも一部のログをさらに保存してもよい。例えば、ロボットデータエンジン135は、空間、時間、および/または他の要因に基づいてバッファからデータをクリアして、「最近の」センサデータのバッファを保存してもよい。ロボットデータエンジン135は、生成されたロボットデータデータベース152内に、アクションシステム120によって判定された特徴、ロボット190のアクチュエータに提供された制御コマンド、等、などのロボット190によって生成された様々な他のデータをさらに保存してもよい。
【0040】
アクションシステム120は、様々なロボットアクションを実行する際に、ロボットデータエンジン135によって提供されるロボットセンサデータを使用する。アクションは、オブジェクトのピックアップ、オブジェクトの「ピッキングおよび配置」、または場所へのナビゲーションおよび/もしくは食器洗い機からの食器おろしなどの比較的より複雑なアクションの収集、定義されたエリアからすべての「おもちゃ」のピックアップ、テーブルからすべてのオブジェクトをクリア、テーブルから特定のタイプ(複数可)のオブジェクトのみをクリア、建物の複数の部屋から特定のタイプのオブジェクトの回収、等、などのアクションを含み得る。アクションシステム120は、様々な合図に応じてロボットアクションを実行し得る。例えば、アクションシステム120は、人間によって提供されるユーザインターフェース入力に応じていくつかのロボットアクションを実行することができる(例えば、音声入力に応じて「オンデマンド」タスクを実行する)。他の例として、アクションシステム120は、スケジュール(例えば、毎週平日の朝)に基づいて、および/または環境条件(例えば、「乱雑」なときにエリアからアイテムを取り除く)に基づいて、いくつかのアクションを追加的または代替的に提供し得る。
【0041】
アクションシステム120は、アクションの実行において様々なモジュールを利用することができ、その例が図1に図示されている。アクションシステム120の特徴モジュール121A~Nは、アクションを実施する方法を判定する際に計画モジュール122によって使用される様々な特徴を判定する。例えば、特徴モジュール121A~Nは、環境内のオブジェクトの姿勢(位置および/または方向)を示す特徴、ロボット190の環境内のオブジェクトの部類を示す特徴、ロボット190の環境内のオブジェクトを把持する方法を示す特徴(例えば、エンドエフェクタ196aおよび/または196bを把持するための把持姿勢を示す境界ボックス)、ロボット190の環境内のオブジェクトの重量、材料、および/または他の物理的特性を示す特徴、等を判定することができる。計画モジュール122は、アクションを実施する方法を判定する際にそのような特徴を利用することができる。例えば、テーブルから「皿」をクリアする際に、計画モジュール122は、判定されたオブジェクトの姿勢および分類を使用して、「皿」であって、「テーブル上」にあるオブジェクトを判定することができ、把持特徴を利用して、テーブルからオブジェクトを取り除く際にオブジェクトを把持する方法を判定することができる。
【0042】
コマンドモジュール123は、ロボット190のアクチュエータに提供する制御コマンドを生成し、計画モジュール122によって判定されたアクションを実現する。例えば、計画モジュール122は、アクションを実行するための経路および他のより高いレベルの運動を生成するより高いレベルのプランナであることができ、コマンドモジュール123は、リアルタイム制御コマンドを生成し、ロボット190のアクチュエータに提供してこれらのより高いレベルの運動を実現するリアルタイムモジュールとすることができる。
【0043】
2つの特徴モジュール121Aおよび121Nが図1に図示されている。特徴モジュール121Aは、対応する特徴を生成する際に、対応するニューラルネットワークモデル150Aおよび特徴モデル160Aを利用する。特徴モジュール121Nは、対応する特徴を生成する際に、対応するニューラルネットワークモデル150Nおよび特徴モデル160Nを利用する。特徴モジュール121Aと121Nとの間の省略記号によって示されるように、追加特徴モジュールが提供され得ることを理解されたい。さらに、これらの追加特徴モジュールの1つ以上は、追加の省略記号によって示されるように、対応するニューラルネットワークモデルおよび任意選択的な特徴モデルを任意選択的に利用してもよい。
【0044】
一例として、特徴モジュール121Aは、ニューラルネットワークモデル150Aおよび特徴モデル160Aを利用して、オブジェクト認識を効果的に実行することができる。例えば、特徴モジュール121Aは、視覚センサデータ(ロボットデータエンジン135により提供された)のインスタンスをニューラルネットワークモデル150Aへの入力として適用し、入力に基づいてモデル150Aの上の埋め込みを生成することができる。次いで、特徴モジュール121Aは、生成された埋め込みを特徴モデル160Aに適用して、生成された埋め込みに最も類似する1つ以上の姿勢を判定することができる。例えば、特徴モデル160Aは、特徴モデル160Aの対応する特徴埋め込みに各々マッピングされた境界エリア(例えば、境界ボックス)を定義してもよく、特徴モジュール121Aは、ニューラルネットワークモデルの上で生成された埋め込みと最大の類似性(例えば、最短距離)を備えた特徴埋め込み(複数可)を判定することができる。特徴モジュール121Aは、それらの特徴埋め込み(複数可)にマッピングされた境界エリア(複数可)を使用して、視覚センサデータによって捕捉されたオブジェクト(複数可)の姿勢(複数可)を判定することができる。例えば、境界エリアは、視覚センサデータのピクセルの境界ボックス、およびオブジェクトの姿勢を判定するために利用されるそれらのピクセルを定義してもよい(例えば、姿勢は、環境内のそれらピクセルの有効な位置に対応することができる)。これは、視覚センサデータの複数のインスタンスの各々に対して繰り返し実行され、特徴モジュール121Aがロボット環境内の複数のオブジェクトの各々の姿勢を判定することを可能にし、特徴タモジュール121Aがロボットの環境内のオブジェクトの最新の時空間「目録」を維持することを効果的に可能にする。
【0045】
別の例として、特徴モジュール121Nは、ニューラルネットワークモデル150Nおよび特徴モデル160Nを利用して、視覚センサデータによって捕捉されたオブジェクトのオブジェクト分類を効果的に実行することができる。例えば、オブジェクトの分類を判定するために、特徴モジュール121Nは、ニューラルネットワークモデル150Nへの入力として視覚センサデータを適用することができ、そして、入力に基づいてモデル150Nの上で、視覚センサデータの埋め込みを生成する。次いで、特徴モジュール121Nは、生成された埋め込みを特徴モデル160Nに適用して、生成された埋め込みに基づいて1つ以上の分類を判定することができる。例えば、特徴モデル160Nは、特徴モデル160Nの対応する分類埋め込みに各々マッピングされた分類を定義してもよく、特徴モジュール121Nは、ニューラルネットワークモデルの上で生成された埋め込みと最大の類似性(例えば、最短距離)を備えた分類埋め込み(複数可)を判定することができる。特徴モジュール121Nは、それらの分類埋め込み(複数可)にマッピングされた分類(複数可)を使用して、視覚センサデータによって捕捉されたオブジェクト(複数可)の分類(複数可)を判定することができる。いくつかの実装形態では、特徴モジュール121Nは、視覚センサデータとともにニューラルネットワークモデル150Aへの入力として、分類が判定される特定のオブジェクトの姿勢(例えば、特徴モジュール121Aによって判定された姿勢)を任意選択的に提供することもできる。これは、視覚センサデータに基づいているが、特定のオブジェクトに特に仕立てられた(例えば、姿勢によって示されるような、視覚センサデータ内のその位置に基づいた)埋め込みを生成するために使用することができる。
【0046】
ニューラルネットワークモデル、特徴モデル、および特徴モジュールの特定の例が前の段落で提供されているが、追加および/または代替のニューラルネットワークモデル、特徴モデル、および/または特徴モジュールが提供されてもよいことを理解されたい。例えば、追加特徴モジュールが、視覚センサデータおよび/または他のデータ(例えば、他の特徴モジュール(複数可)の特徴(複数可))を、対応するトレーニングされたニューラルネットワークモデルへの入力として適用して、入力に基づいてモデルの上で、視覚センサデータによって捕捉されたオブジェクトをどこで把持するかを示す把持特徴を判定するために、対応する特徴モデルにその後適用することができる埋め込みを生成してもよい。例えば、把持特徴は、特徴モデル内の特徴埋め込みにマッピングされた境界ボックスの2つの角によって示される2つの把持ポイントであってもよい。また、例えば、1つ以上の特徴モジュールが、非視覚センサデータを対応するトレーニングされたニューラルネットワークモデルへの入力として適用して、入力に基づいてモデルの上で、ロボットの環境に関連する1つ以上の特徴を判定するために、対応する特徴モデルに適用することができる埋め込みを生成してもよい。非視覚センサデータは、位置センサ(複数可)、触覚センサ、オーディオセンサ(例えば、マイクロフォン)、等などの1つ以上の様々なセンサからのものであることができる。非視覚センサデータは、やはり入力として適用される視覚センサデータとともに任意選択的に入力として適用することができる。例えば、トレーニングされたニューラルネットワークモデルは、入力として、視覚センサデータと非視覚センサデータの両方を受け入れるようにトレーニングされてもよい。
【0047】
アクションシステム120はまた、UI出力モジュール125を含む。UI出力モジュール125は、ユーザインターフェース出力を生成して、ロボット190によるアクションの実行中に提供することができる。提供されるユーザインターフェース出力は、アクションの実行を促進するロボット190の運動に加えて、特徴モジュール121A~Nによって判定される1つ以上の特徴の知覚可能な指標を提供する。例えば、ユーザインターフェース出力は、ロボット190のスピーカを介して提供される可聴出力であってもよく、可聴出力は、ロボット190によって作用される(または作用されることになる)オブジェクトの判定された特徴を「話す」。例えば、ロボット190が、特徴モジュール121A~Nのうちの1つによって「プレート」として分類されたオブジェクトをピックアップしているとき、ロボット190は、「プレートをピックアップしている」という可聴出力を生成し得る。他の実装形態では、UI出力モジュール125は、視覚的および/または他の非可聴ユーザインターフェース出力を追加的または代替的に提供してもよい。オブジェクトの判定された特徴を示すユーザインターフェース出力を提供することは、ロボット190の環境での人間によるその知覚を可能にする。ユーザインターフェース出力の知覚は、それが不正確である場合、人間が認識することを可能にし、もしそうであれば、本明細書で説明するような修正を提供する。
【0048】
アクションシステム120はまた、ユーザインターフェース入力を受信するUI入力モジュール124を含む。例えば、UI入力モジュール124は、ロボット190のマイクロフォンを介して提供される音声ユーザインターフェース入力、またはUI入力モジュール124と通信するクライアントデバイス106によって提供されるユーザインターフェース入力を受信することができる。いくつかの実装形態では、ロボット190の任意のマイクロフォンに関連付けられたハードウェアは、話し言葉の「ホットワード」(例えが、「ロボットさん」)、ハードウェアボタンの選択(例えば、ロボット190をオン)、仮想ボタンの選択(例えば、クライアントデバイス106に提示された)、等のような特定の先行入力に応じて人間の修正を「能動的に聞いている」だけの場合がある。
【0049】
クライアントデバイス106によって提供されるユーザインターフェース入力は、クライアントデバイス106の入力デバイス(複数可)(例えば、クライアントデバイス106のマイクロフォンおよび/または仮想あるいはハードウェアキーボード)とのユーザ対話に応じて提供され、任意選択的にクライアントデバイス106および/または他の構成要素によって前処理されてもよい(例えば、音声入力をテキスト入力に変換することによって前処理される)。いくつかの実装形態では、UI入力モジュール124は、受信したユーザインターフェース入力に基づいてアクションシステム120によって使用するための1つ以上の特徴を生成することができる。例えば、「テーブルをクリアする」という受信したユーザインターフェース入力に対して、UI入力モジュール124は、入力を処理して、ロボット190の環境内の「テーブル」オブジェクト上にあるすべてのオブジェクトを取り除くために、ロボット190によって実行されるべきアクションを示す特徴を判定することができる。UI入力モジュール124によって判定された任意の特徴は、計画モジュール122に提供することができる。UI入力モジュール124は、受信したユーザインターフェース入力から特徴を判定する際に、NLPシステム133および/または1つ以上の他の構成要素と対話することができる。
【0050】
UI入力モジュール124は、追加的または代替的に、修正インスタンスエンジン130と連携して働くことができる。修正インスタンスエンジン130は、受信したユーザインターフェース入力がロボットアクションへの修正を示すかどうかを判定する。そうである場合、修正インスタンスエンジン130は、局所的更新モジュール126(以下により詳細に説明する)に、特徴モデル160A~Nのうちの1つに対応する局所的更新を実行させることができ、および/またはそれ自体が、対応する修正インスタンスを生成し、ネットワーク101を介して収集エンジン140に送信することができる。このようにして、様々な実装形態において、修正インスタンスエンジン130は、局所的更新モジュール126に、特徴モデル160A~Nのうちの1つに対応する局所的更新を実行させてもよく、および/または受信したユーザインターフェース入力がロボットアクションへの修正を示す場合にのみ、修正インスタンスを送信してもよい。
【0051】
修正インスタンスエンジン130は、受信したユーザインターフェース入力がロボットアクションへの修正を示すことを判定する際に様々な手法を利用することができる。いくつかの実装形態では、受信したユーザインターフェース入力が自然言語入力(例えば、ロボット190のマイクロフォンを介して受信された、あるいはクライアントデバイス106を介して受信された)である場合、修正インスタンスエンジン130は、自然言語入力の意味論的および/または他の自然言語処理に基づいてそれが修正を示すと判定することができる。修正インスタンスエンジン130は、任意選択的に、自然言語入力の処理においてNLPシステム133または他の外部リソース(複数可)と(例えば、インターネットまたは他のネットワーク(複数可)を介して)対話し得る。NLPシステム133は、自然言語入力を処理して、自然言語入力の様々な注釈を提供することができる。例えば、NLPシステム133は、センチメント注釈(例えば、センチメント分類子を使用して)、エンティティ注釈(含まれるエンティティを一般的および/または具体的に注釈する)、自然言語入力の完全な意味解釈を提供する注釈、等を提供することができる。
【0052】
いくつかの実装形態では、修正インスタンスエンジン130は、入力と、アクションの実行においてアクションシステム120によって使用される特徴との比較に基づいて、ユーザインターフェース入力がアクションに対する修正を示すと判定する。例えば、「それはボウルです」という自然言語入力が受信され、一方、ロボット190は、特徴モジュール121Nが「カップ」であると判定した環境オブジェクトと相互作用していると仮定する。修正インスタンスエンジン130は、自然言語入力によって示された「ボウル」分類と特徴モジュール121Nによって判定された「カップ」分類との間の矛盾に基づいて、ユーザインターフェース入力がアクションに対する修正を示すと判定し得る。本明細書で説明されるように、いくつかの実装形態では、UI出力モジュール125が、環境オブジェクトとの相互作用中に可聴または他のユーザインターフェース出力を提供してもよく、「それはボウルです」というユーザインターフェース入力を提供するように人間を促してもよい。
【0053】
いくつかの実装形態では、修正インスタンスエンジン130は、自然言語ユーザインターフェース入力ではない使用インターフェース入力に基づいてロボットアクションへの修正を判定する。例えば、ユーザインターフェース入力は、ユーザがロボット190の「エラー」ボタンを作動させること、ユーザがロボット190を「つかむ」こと(例えば、「外部」タッチ感知センサおよび/または力トルクまたは他の「内部」センサ(複数可)に基づいて検知されて)、ユーザがクライアントデバイス106を介してグラフィカルユーザインターフェースと対話すること(例えば、ユーザがロボット190の状態を監視し、概しておよび/または具体的にエラーを報告することを可能にするインターフェース)に基づくことができる。
【0054】
修正インスタンスエンジン130は、アクションシステム120の局所的更新モジュール126と相互作用して、ロボット190によって実行されるアクションの人間の修正を判定することに応じて、局所的更新モジュール126に1つ以上の特徴モデル160Aを更新させる。例えば、修正インスタンスエンジン130は、局所的更新モジュール126に、特徴が不正確である、および/または追加特徴が代わりに正確である(またはやはり正確である)指標を提供することができる。それに応じて、局所的更新モジュール126は、不正確である特徴を判定するために利用された埋め込み(対応するニューラルネットワークモデルの上で生成された)に基づいて、対応する特徴モデルを更新することができる。例えば、特徴モジュール121Nが視覚センサデータをニューラルネットワークモデル150Nへの入力として適用し、その入力に基づいて埋め込みAを生成し、埋め込みAを特徴モデル160Nに適用することに基づいて特徴Aを判定したと仮定する。さらに、修正インスタンスエンジン130が、特徴Aが不正確であり、特徴Bが代わりに正確であることを示すと仮定する。局所的更新モジュール126は、特徴モデル160Aを更新して、特徴Bに対する特徴Bの埋め込みを埋め込みAにより類似させ、および/または特徴Aに対する特徴Aの埋め込みを埋め込みAにあまり類似させないようにし得る。
【0055】
いくつかの実装形態では、修正インスタンスエンジン130は、追加的および/または代替的に、ロボット190によって実行されるアクションの人間の修正を判定することに応じて修正インスタンスを生成する。修正を判定することに応じて修正インスタンスエンジン130によって生成された修正インスタンスは、例えば、人間の修正に関連付けられたニューラルネットワークモデルに適用されるセンサデータ(すなわち、不正確または不完全な特徴(複数可)を生成するために利用されるもの)、および人間の修正に基づく修正情報(例えば、正確な特徴(複数可)を示すもの、および/または判定された特徴(複数可)が不正確であったことを示すもの)、を含むことができる。
【0056】
収集エンジン140は、ネットワーク101(例えば、インターネット)を介して、修正インスタンスエンジン130から修正インスタンスを受信する。収集エンジン140は、ネットワーク101を介して、追加のロボット192から修正インスタンスを受信することもできる。追加のロボット192は様々な地理的位置にあることができ、追加のロボット192は任意選択的にロボット190と異なってもよい(例えば、それらは4つの車輪を有する型式などの異なる「型式」であってもよい)。追加のロボット192によって提供される修正インスタンスは、ロボットアクションの人間の修正に応じて生成されるものも含むことができる。収集エンジン140は、例えば、コンピューティングデバイスのクラスタによって実装することができる。
【0057】
収集エンジン140は、所与のニューラルネットワークモデルおよび特徴モデルに対応する修正インスタンスを利用して、ニューラルネットワークモデルおよび特徴モデルのトレーニングのためのトレーニング例を生成する。一例として、特定のオブジェクトを捕捉する視覚センサデータのインスタンス、特定のオブジェクトが「ボウル」として不正確に分類されたことの指標、および分類が「帽子」に修正されたこと(人間の修正を介して)の指標、を含む修正インスタンスが受信されると仮定する。そのような一例では、収集エンジン140は、視覚センサデータの対応するインスタンスに基づくトレーニング例入力、および「ボウル」が正確な分類ではないこと、および/または「帽子」が正確な分類であることを示すトレーニング例出力、を含むトレーニング例を生成することができる。
【0058】
収集エンジン140は、生成されたトレーニング例をトレーニングエンジン145に提供する。トレーニングエンジン145は、トレーニング例を利用して、1つ以上の対応するニューラルネットワークモデルおよび特徴モデルをトレーニングし、対応する改訂されたニューラルネットワークモデル151A~Nおよび改訂された特徴モデル161A~Nを生成する。一例として、収集エンジン140が、ニューラルネットワークモデル150Nおよび特徴モデル160Nの1つ以上のインスタンスによるオブジェクトの不正確な分類に対する人間の修正に基づいて生成された多数のトレーニング例を提供すると仮定する。そのような一例では、トレーニングエンジン145は、ニューラルネットワークモデル150N(またはニューラルネットワークモデル150Nに類似する別のモデル)および特徴モデル160Nをさらにトレーニングして、改訂されたニューラルネットワークモデル151Nおよび改訂された特徴モデル161Nを生成し得る。例えば、トレーニングエンジン145は、トレーニング例のトレーニング例入力をニューラルネットワークモデル150Nに適用することができ、トレーニングの例に基づいて埋め込みを生成し、埋め込みを特徴モデル160Nに適用し、トレーニング例の出力によって示される特徴と、特徴モデル160Nへの埋め込みの適用に基づいて示される実際の特徴とに基づいてエラーを判定し、そして、特徴モデル160Nおよび/またはニューラルネットワークモデル150Nを通してエラーを逆伝播し、特徴モデル160Nおよび/またはニューラルネットワークモデル150Nを更新する。バッチトレーニングが、任意選択的に利用されてもよい。
【0059】
大量のトレーニング例の適用を通して、トレーニングエンジン145は、改訂されたニューラルネットワークモデル151Nおよび/または改訂された特徴モデル161Nを生成する。次いで、改訂されたニューラルネットワークモデル151Nおよび/または改訂された特徴モデル161Nを、ニューラルネットワークモデル150Nおよび/または改訂された特徴モデル161Nの代わりに利用するために提供することができる。加えて、そのような改訂されたニューラルネットワークモデル151Nおよび/または改訂された特徴モデル161Nは、引き続き生成されたトレーニング例に基づいて、改訂されたニューラルネットワークモデル151Nおよび/または改訂された特徴モデル161Nのさらなる改訂されたバージョンを生成するように、将来トレーニングエンジン145によってさらに改訂されることができ、それはその後、利用のために提供することができる。このようにして、多様な環境にあるロボット190および192からの修正インスタンスに基づくトレーニング例を使用して、改良されたニューラルネットワークモデルおよび特徴モデルを繰り返しトレーニングして提供し得る。トレーニングエンジン145は、例えば、コンピューティングデバイスのクラスタによって実装することができる。
【0060】
いくつかの実装形態では、ニューラルネットワークモデルの「新しい」バージョンを受信することに応じて、ロボット190の局所的更新モジュール126は、過去の人間の修正に基づいて対応する特徴モデルを適合させ得る。一例として、改訂されたニューラルネットワークモデル151Nがニューラルネットワークモデル150Nを置き換え、改訂された特徴モデル161Nが特徴モデル160Nを置き換えると仮定する。局所的更新モジュール126が、人間の修正に応じて、視覚センサデータXに基づいてニューラルネットワークモデル150Nの上で生成された埋め込みにより類似するように、(特徴モデル160Nの)特徴Aの特徴埋め込みを調整することによって、特徴モデル160Nを以前に更新したとさらに仮定する。局所的更新モジュール126は、視覚センサデータXおよび「特徴A」の指標など、以前の更新の特徴を局所的に保存してもよく、保存された以前の更新を利用して、改訂された特徴モデル161Nを更新してもよい。例えば、局所的更新モジュール126は、視覚センサデータXを改訂されたニューラルネットワークモデル151Nに適用することに基づいて、改訂されたニューラルネットワークモデル151Nの上に新しい埋め込みを生成することによって、および、改訂された特徴モデル161Nにおいて、(改訂された特徴モデル161Nの)特徴Aの特徴埋め込みを、新しい埋め込みにより類似するように調整することによって、改訂された特徴モデル161Nを更新することができる。
【0061】
ここで図2A図8を参照すると、図1の例示的な環境の様々な構成要素の追加の説明が提供されている。
【0062】
最初に図2A図2Dに目を向けると、ロボットアクションへの修正を提供するいくつかの例が提供されている。図2A図2Dは、ロボット190および/または他のロボット(複数可)が動作し得る例示的な環境の様々な状態を示す。図2Aは、最初の時点のテーブル250を図示する。最初の時点で、4つのオブジェクト252A~Dがテーブル250の上に配置されている。
【0063】
図2Bは、図2Aの最初の時点で、ユーザが「テーブルからボウルをクリアする」というユーザインターフェース入力103B1を提供した一例を図示している。それに応じて、ロボット190(図2Bに示さず)は、テーブル250から、「ボウル」として分類したオブジェクトを除去し始め得る。例えば、(ニューラルネットワークモデル150Nの上で生成された埋め込みの特徴モデル160Nへの適用に基づいて)特徴モジュール121Nによって「ボウル」として分類された任意のオブジェクトの除去を開始することができる。例えば、図2Bは、ロボット190がテーブル250からオブジェクト252をつかんで除去しているときの環境を図示しており、それは「ボウル」として不正確に分類されている。ロボット190がオブジェクト252と相互作用している間、ユーザは「帽子ではない」というさらなるユーザインターフェース入力103B2を提供している。
【0064】
修正インスタンスエンジン130は、さらなるユーザインターフェース入力103B2がオブジェクト252に実行されているアクションに対する修正を示していることを判定することができる。例えば、修正インスタンスエンジン130は、ユーザインターフェース入力103B2によって示される「帽子」分類が、不正確に判定された「皿」分類と相反すると判定することができる。それに応じて、修正インスタンスエンジン130は、局所的更新モジュール126と相互作用して、局所的更新モジュール126に特徴モデル160Nを更新させることができる。例えば、修正インスタンスエンジン130は、局所的更新モジュール126に、「ボウル」分類が不正確であったこと、および、「帽子」が代わりに正確な分類であるという指標を提供することができる。それに応じて、局所的更新モジュール126は、ニューラルネットワークモデル150Nの上で生成された、不正確である特徴を判定するために利用された埋め込みに基づいて、特徴モデル160Nを更新することができる。例えば、「帽子」分類のための特徴埋め込みが特徴モデル160N内に既に存在する場合、局所的更新モジュール126は、その特徴埋め込みを調整して、不正確である「ボウル」分類を判定するために利用されたニューラルネットワークモデル150Nの上で生成された埋め込みにより類似するようにすることができる。また、例えば、「帽子」分類のための特徴埋め込みが特徴モデル160N内に存在しない場合、局所的更新モジュール126は、特徴モデル160N内に「帽子」のための特徴埋め込みを生成することができる。例えば、「帽子」のための特徴埋め込みは、不正確である「ボウル」分類を判定するために利用されたニューラルネットワークモデル150Nの上で生成された埋め込みに基づくことができる。本明細書で説明されるように、いくつかの実装形態では、修正インスタンスエンジン130は、さらなるユーザインターフェース入力103B2が、オブジェクト252について実行されているアクションに対する修正を示すと判定することに基づいて、修正インスタンスを追加的および/または代替的に生成および送信し得る。
【0065】
図2Cは、図2Bの例の間に発生する可能性のある図1の構成要素間の相互作用の一例を図示している。図2Cにおいて、特徴モジュール121Aは、視覚センサデータをニューラルネットワークモデル150Aへの入力として適用し、その適用に基づいて埋め込みを生成する。特徴モジュール121Aはさらに、埋め込みを特徴モデル160Aに適用して、その適用に基づいて「ボウル」の分類を判定する。例えば、特徴モジュール121Aは、埋め込みが、特徴埋め込みAおよびC~Nのうちのどの他のものよりも特徴モデル160Aの特徴埋め込みB(図2Cにおいて「ボウル」にマッピングされて図示されている)により類似している埋め込みに基づいて「ボウル」分類を判定することができる。
【0066】
特徴モジュール121Aは、計画モジュール122に、「オブジェクトD」(図2Aおよび図2Bの帽子に対応する)が「ボウル」分類を有するという指標を提供する。例えば、特徴モジュール121Aは、計画モジュール122に、その分類の指標とともに、「オブジェクトD」の姿勢および/または他の一意の識別子を提供することができる。
【0067】
計画モジュール122は、「オブジェクトD」に対する分類を利用して、実行される1つ以上のアクションを判定する。アクション(複数可)を判定する際に、計画モジュール122はまた、特徴モジュール121Aによって判定された他の分類および/または他の特徴モジュール(複数可)からの他の特徴に依存してもよい。計画モジュール122は、アクションをコマンドモジュール123に提供し、アクションの実行を有効にするために、1つ以上のアクチュエータ(図2Cには図示せず)に制御コマンドを生成および提供する。
【0068】
アクションの実行中または実行後に、UI入力モジュール124はUI入力を受信し、UI入力(および任意選択的にUI入力の注釈)を修正インスタンスエンジン130に提供する。修正インスタンスエンジン130は、UI入力を利用して、「オブジェクトD」に対する分類が不正確で、代わりに「帽子」分類であるべきと判定する。
【0069】
修正インスタンスエンジン130は、正確な「帽子」分類の指標を局所的更新モジュール126に提供する。それに応じて、局所的更新モジュール126は、「ボウル」分類を不正確に判定する際に、特徴モジュール121Aによって生成された埋め込みにより類似するように、特徴埋め込みC(図2Cにおいて「帽子」にマッピングされて図示されている)を更新する。
【0070】
図2Dは、図2Aの最初の時点で、ユーザが、(図2Bのユーザインターフェース入力103B1を提供する代わりに)「テーブルをクリアする」のユーザインターフェース入力103D1を提供した一例を図示する。それに応じて、ロボット190(図2Dには示されず)は、テーブル250から、識別されたすべてのオブジェクトを除去することができる。例えば、特徴モジュール121Aによってオブジェクトとして検出された任意のオブジェクトを除去することができる。例えば、特徴モジュール121Aは、視覚センサデータの1つ以上のインスタンスをニューラルネットワークモデル150Aに適用し、各適用に基づいて対応する埋め込みを生成することができる。特徴モジュール121Aは、各埋め込みを特徴モデル160Aにさらに適用して、テーブル250上の対応するオブジェクトの姿勢を各々示す1つ以上の境界ボックスを判定することができる。例えば、特徴モデル160Aは、特徴埋め込みAを境界ボックスAと境界ボックスBとの組み合わせにマッピングしてもよい。特徴モジュール121Aは、(ニューラルネットワークモデル150Aの上で生成された)所与の埋め込みが特徴埋め込みAに最も類似していると判定することができ、その結果、(特徴埋め込みAにマッピングされている境界ボックスに基づいて)境界ボックスAおよび境界ボックスBを選択する。特徴モジュール121Aは、境界ボックスAに基づいてオブジェクト(例えば、252)を検出し、それが境界ボックスAに対応する姿勢を有すると判定することができる。特徴モジュール121Aはまた、境界ボックスBに基づいてオブジェクト(例えば、252)を検出し、それが境界ボックスBに対応する姿勢を有すると判定することができる。オブジェクト252もまた、追加の視覚センサデータに基づく追加の埋め込みに基づいて検出され得る。
【0071】
図2Dは、ロボット190が識別したすべてのオブジェクトの除去を完了したときの環境を図示している。しかしながら、オブジェクト252は、ロボット190によって、テーブル250とは別のオブジェクトとして認識されていないため、テーブル250上に残っている。例えば、特徴モジュール121Aは、オブジェクト252の検出に失敗した可能性がある。例えば、オブジェクト252の姿勢に対応する境界ボックスは、特徴モデル160Aに含まれ、特徴埋め込みXにマッピングされてもよい。しかしながら、特徴モジュール121Aは、少なくとも特徴埋め込みXとの類似度の閾値を持たない埋め込み(ニューラルネットワークモデル150Aの上で生成された)に基づいて、その境界ボックスを選択しなかった可能性がある。
【0072】
図2Dにおいて、ユーザは、「フォークを忘れた」というさらなるユーザインターフェース入力103D2を提供する。状況によっては、ユーザは、識別したすべてのオブジェクトの除去を完了したことを示すためにロボット190によって提供された可聴ユーザインターフェース出力(例えば、「完了しました」、「チャイム」)に応じて、さらなるユーザインターフェース入力103D2を提供し得る。
【0073】
修正インスタンスエンジン130は、実行されているアクションに対する修正を示すさらなるユーザインターフェース入力103D2を判定することができる。例えば、修正インスタンスエンジン130は、ユーザインターフェース入力103D2が、テーブル250上に存在するオブジェクトが認識されなかったことを示すと判定することができる。
【0074】
それに応じて、修正インスタンスエンジン130は、局所的更新モジュール126と相互作用して、局所的更新モジュール126に特徴モデル160Nを更新させることができる。それに応じて、局所的更新モジュール126は、クライアントデバイス106を介してさらなる修正詳細を要求する。図2Dに示すように、局所的更新モジュール126は、(ネットワークを介して)クライアントデバイス106にテーブル250の画像を提供し、ユーザが「フォーク」の周りにボックスを描くことを要求する。テーブル250の画像は、例えば、不完全なオブジェクトが検出された視覚センサデータのインスタンスに基づくことができる。ユーザは、フォークの周りにボックス107を描くためのユーザインターフェース入力を提供する(例えば、クライアントデバイス106のタッチスクリーンを使用して)。局所的更新モジュール126は、局所的モデル160Aにおいて、ボックス107に対応する、対応した境界ボックスを識別することができる。さらに、局所的更新モジュール126は、対応する境界ボックスにマッピングされた、特徴埋め込みを更新して、その特徴埋め込みをニューラルネットワークモデル150Aの上で生成された埋め込み(例えば、クライアントデバイス106上のテーブル250の画像を生成するために利用される視覚センサデータに基づいて生成された埋め込み)により類似させることができる。このようにして、局所的更新モジュール126は、正確な特徴(境界ボックス)に対するユーザからの入力を求め、ニューラルネットワークモデル150の上で生成された埋め込みに基づいて、特徴モデル160A内のその特徴に対する特徴埋め込みを更新する。
【0075】
本明細書で説明されるように、いくつかの実装形態では、修正インスタンスエンジン130は、さらなるユーザインターフェース入力103D2が、アクションに対する修正を示すと判定することに基づいて、修正インスタンスを追加的および/または代替的に生成および送信し得る。
【0076】
ここで図3を参照して、様々な実装形態による例示的な方法300が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および/またはロボットと通信する1つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法300の動作は特定の順序で示されているが、これは限定することを意味するものではない。1つ以上の動作は、順序を変更、省略、または追加されてもよい。
【0077】
ブロック352で、システムは、ニューラルネットワークモデルへのロボットセンサデータの適用に基づいて、ニューラルネットワークモデルの上で埋め込みを生成する。作業例として、システムは、ニューラルネットワークモデルへの入力として、オブジェクトを捕捉する視覚センサデータを適用することができる。
【0078】
ブロック354で、システムは、埋め込みと特徴モデル内の特徴にマッピングされた特徴埋め込みとの比較に基づいて、少なくとも1つの特徴を判定する。作業例を続けて、特徴モデルは、把持パラメータを対応する特徴埋め込みにマッピングすることができる。例えば、把持パラメータAを特徴埋め込みAにマッピングすることができ、把持パラメータBを特徴埋め込みBにマッピングすることができる、等。システムは、ブロック352で生成された埋め込みに対するその特徴埋め込みの類似性に基づいて、特徴埋め込みAを選択してもよい。
【0079】
様々な実装形態において、システムは、ブロック352の複数のインスタンスに基づいて生成された出力の複数のインスタンスに基づいて、ブロック354で特徴(複数可)を判定することができ、ブロック352の各インスタンスはセンサデータの異なるインスタンスを適用していることに留意されたい。また、様々な実装形態において、システムは、ブロック352のものに加えて他のニューラルネットワークモデル(複数可)の上で生成された追加の出力に基づいて判定された特徴(複数可)に基づいて、ブロック354で特徴(複数可)を判定できることに留意されたい。
【0080】
ブロック356で、システムは、ブロック354で生成された少なくとも1つの特徴に基づいてロボットアクションを実行する。作業例を続けて、システムは、判定された把持パラメータを用いて、オブジェクトの把持のすべてまたは一部を実行することができる。
【0081】
ブロック356は、サブブロック356Aおよび356Bを含む。ブロック356Aで、システムはアクションの完了を監視する。システムが、アクションは完了していると判定する場合、システムはブロック358に進み、次のアクションの実行を開始する。
【0082】
ブロック356Bで、システムは修正ユーザインターフェース入力の受信を監視する。システムは、アクションの実行前、実行中、または実行後(例えば、少なくとも閾値期間後)に、修正ユーザインターフェース入力の受信を監視することができる。修正ユーザインターフェース入力が受信されると、システムはブロック360に進む。
【0083】
作業例を続けて、システムがオブジェクトを把持し、まだオブジェクトを把持している間に、「そのようではない」というユーザインターフェース入力が受信されると仮定する。そのような一例では、システムは、「そのようではない」が修正ユーザインターフェース入力であると判定し、ブロック360に進むことができる。多くのシナリオにおいて、システムの観点から、アクションの実行が正確である場合でも、システムはブロック356Bで修正UI入力を受信することを留意されたい。言い換えれば、修正ユーザインターフェース入力がない場合、システムはアクションの実行の不正確な性質を自己認識しない。
【0084】
ブロック360で、システムは、修正ユーザインターフェース入力に基づいて、特徴モデルの特徴埋め込みを調整する。作業例を続けて、特徴埋め込みAにマッピングされた把持パラメータに基づいて、把持が不正確であることを示す修正インスタンスに応じて、システムは、特徴埋め込みAをブロック352で生成された埋め込みにあまり類似しないように調整することができる。
【0085】
いくつかの実装形態では、ブロック360は、サブブロック360Aを含み、ここでは、システムはさらなる修正詳細を要求および受信する。作業例を続けて、システムは「ピックアップする正しい方法を教えてもらえますか?」というユーザインターフェース出力を提供し得る。それに応じて、ユーザは、ロボットを物理的に操作することによって、正確な把持を運動感覚で教えることができる。例えば、システムはロボットを低機械インピーダンスの、「重力補償」モード、にさせることができ、その間、ユーザはロボットを物理的に操作して正確な把持を実証することができる。このような場合、システムは、オブジェクトの正確な把持パラメータを判定するためにセンサデータを記録することができる。次いで、システムは、正確な把持パラメータに対応する特徴モデルの特徴埋め込みを調整することができる。例えば、システムは、その特徴埋め込みを、ブロック352で生成された埋め込みにより類似するように調整することができる。
【0086】
任意選択的なブロック362で、システムは修正インスタンスを生成する。修正インスタンスは、視覚センサデータおよび/または修正に関連する他のロボットセンサデータを含むことができる。例えば、システムは、埋め込みを生成するためにブロック352で適用されることに基づく特定のロボットセンサデータを含むことができる。いくつかの実装形態では、システムはまた、修正インスタンス内に、ブロック354で判定された特徴(複数可)、ブロック356Bで受信された修正ユーザインターフェース入力および/もしくはブロック360Aで受信されたさらなる修正詳細に基づく修正情報、ならびに/または他のデータ、を含む。
【0087】
作業例を続けて、システムは、ブロック352で適用された視覚センサデータを含む、および、ブロック360Aで判定された人間が実証した正確な把持特徴を含む、修正インスタンスを提供することができる。
【0088】
任意選択的なブロック364で、システムは、ブロック362で生成された修正インスタンスを送信する。例えば、システムは、1つ以上のネットワークを介して、リモートコンピューティングデバイスへ修正インスタンスを送信することができる。
【0089】
ブロック366で、システムは、修正インスタンスに基づいてトレーニングされた改訂されたニューラルネットワークモデルを受信し、改訂されたニューラルネットワークモデルに対する改訂された特徴モデルを受信する。いくつかの実装形態では、改訂されたニューラルネットワークモデルおよび改訂された特徴モデルは、修正インスタンスに基づいて生成されたトレーニング例(複数可)に基づいて、および、複数の追加ロボットからの他の修正インスタンスに基づいて生成された他のトレーニング例に基づいて、トレーニングされる。多くの実装形態において、ブロック364とブロック366との間に時間遅延(例えば、時間、日、週)があり得ることを理解されたい。その間、システムは、他のアクションを実行する際に「前の」ニューラルネットワークモデルおよびその局所的に更新された特徴モデルを利用し続けてもよい。
【0090】
任意選択的なブロック368で、システムは、ブロック360で判定された修正などの過去の修正に基づいて改訂された特徴モデルを調整する。例えば、システムは、ブロック352で適用されたロボットセンサデータ、ならびにブロック360で判定された修正情報を保存していてもよい。システムは、改訂されたニューラルネットワークモデルへの入力として保存されたロボットセンサデータを適用し、入力に基づいて改訂されたニューラルネットワークモデルの上で埋め込みを生成し、修正詳細および埋め込みに基づいて改訂された特徴モデルの特徴埋め込み(複数可)を調整してもよい。作業例を続けて、視覚センサデータを適用することに基づいて、改訂されたニューラルネットワークモデルの上で埋め込みを生成することができ、「修正把持パラメータ」へ(改訂された特徴モデル内で)マッピングされた特徴埋め込みは、生成された埋め込みにより類似するように更新される。
【0091】
システムは、改訂されたニューラルネットワークモデルおよび(任意選択的にブロック366で改訂された)特徴モデルを、これらのモデルの前のバージョンの代わりに、利用することができる。
【0092】
ここで図4を参照して、様々な実装形態による別の例の方法400が説明される。方法400は、図3の方法300の特定の実装形態を例示していることに留意されたい。
【0093】
便宜上、図4のフローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および/またはロボットと通信する1つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法400の動作は特定の順序で示されているが、これは限定することを意味するものではない。1つ以上の動作は、順序を変更、省略、または追加されてもよい。
【0094】
ブロック452で、システムは、ニューラルネットワークモデルへの視覚センサデータの適用に基づいて、ニューラルネットワークモデルの上で埋め込みを生成する。
【0095】
ブロック454で、システムは、視覚センサデータによって捕捉されたオブジェクトの少なくとも1つの分類を判定する。システムは、ブロック452で生成された埋め込みと、分類モデル内の分類にマッピングされた分類埋め込みとの比較に基づいて分類を判定する。分類モデルは、分類埋め込み(特定のタイプの特徴埋め込み)を対応する分類にマッピングする1つの特定のタイプの特徴モデルである。
【0096】
ブロック456で、システムは、オブジェクトに向けられたロボットアクションを実行する。例えば、システムは、オブジェクトを把持する、さもなければ接触する、オブジェクトをよりよく見る、等において、ロボットの1つ以上の構成要素をオブジェクトに向かってより近くに、および/またはオブジェクトと接触するように動かすことができる。
【0097】
ブロック456は、任意選択的にブロック456Aおよび/または456Bを含む。
【0098】
ブロック456Aで、システムは、オブジェクトの分類を示すユーザインターフェース入力に応じてロボットアクションを実行する。例えば、システムは、ブロック452で判定されたオブジェクトに対する分類を示す受信したユーザインターフェースに基づいて、オブジェクトに向けられたアクションを実行することができる。作業例として、「リモートコントロールを見つける」というユーザインターフェース入力に応じて、システムは、「リモートコントロール」分類があると判定されたオブジェクトに向けられたアクションを実行することができる。
【0099】
ブロック456Bで、システムは、ブロック456Bで判定されたオブジェクトに対する分類を示すユーザインターフェース出力を提供する。例えば、ロボットアクションの実行前および/または実行中に、システムは「リモートコントロールをピックアップしている」というオーディオ出力を提供することができる。
【0100】
ブロック458で、システムは、受信したユーザインターフェース入力が、オブジェクトに向けられたロボットアクションの修正を示すと判定する。作業例を続けて、システムが「リモートコントロール」とみなしたものをピックアップするロボットアクションを実行する際に、システムが「電話ではない」というユーザインターフェース入力を受信することができる。システムは、「ではない」の存在に基づいて、および/または「電話」と「リモートコントロール」との間の矛盾の判定に基づいて、受信したユーザインターフェース入力が修正を示すと判定することができる。
【0101】
ブロック460で、システムは、修正UI入力に基づいて分類モデルの分類埋め込みを調整する。作業例を続けて、修正インスタンスに応じて、システムは、「リモートコントロール」分類にマッピングされた分類埋め込みを調整して、ブロック452の埋め込みにあまり類似しないようにすることができる。追加的または代替的に、システムは、「電話」分類にマッピングされた分類埋め込みを、ブロック452の埋め込みにより類似するように調整することができる。
【0102】
いくつかの実装形態では、ブロック460は、システムがさらなる修正詳細を要求および受信するサブブロック460Aを含む。例えば、ブロック458の受信したユーザインターフェース入力が、「いいえ、それではない」(および「電話」を識別しなかった)場合、システムは「不正確にピックアップしたものを教えてもらえますか?」というユーザインターフェース出力を提供してもよい。それに応じて、ユーザは、「電話」というさらなる音声入力を提供することができる。そのようなさらなる音声入力に基づいて、システムは、「電話」分類にマッピングされた分類埋め込みを、ブロック452の埋め込みにより類似するように調整することができる。
【0103】
任意選択的なブロック462で、システムは、ブロック452で適用された視覚センサデータを含む修正インスタンスを生成する。いくつかの実装形態では、ブロック462は、サブブロック462Aおよび/または462Bを含む。ブロック462Aで、システムは、修正インスタンスにおけるオブジェクトの判定された分類を含む。すなわち、ブロック454で不正確に判定された判定された分類である。ブロック462Bで、システムは、修正インスタンス内に修正情報を含む。修正情報は、例えば、ブロック458またはブロック460Aで提供された人間が提供した分類の指標を含むことができる。追加および/または代替データが、システムによって修正インスタンス内に任意選択的に含まれてもよい。
【0104】
ブロック464で、システムは、ブロック460で生成された修正インスタンスを送信する。例えば、システムは、1つ以上のネットワークを介して、リモートコンピューティングデバイスへ修正インスタンスを送信することができる。
【0105】
ブロック466で、システムは、修正インスタンスに基づいてトレーニングされた改訂されたニューラルネットワークモデル、および修正インスタンスに基づいてトレーニングされた(および/または改訂されたニューラルネットワークモデルを考慮してトレーニングされた)改訂された分類モデルを受信する。いくつかの実装形態では、改訂されたニューラルネットワークモデルおよび/または改訂された分類モデルは、修正インスタンスに基づいて生成されたトレーニング例(複数可)に基づいて、および、複数の追加ロボットからの他の修正インスタンスに基づいて生成された他のトレーニング例に基づいて、トレーニングされる。いくつかの実装形態では、システムは、ブロック458で判定された修正などの過去の修正に基づいて、受信した改訂された分類モデルを調整し得る。
【0106】
ここで図5を参照して、様々な実装形態によるさらに別の例の方法500が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および/またはロボットと通信する1つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法500の動作は特定の順序で示されているが、これは限定することを意味するものではない。1つ以上の動作は、順序を変更、省略、または追加されてもよい。
【0107】
図5の方法500は、ブロック364(図3)および/またはブロック464(図4)で提供された修正インスタンスなどの修正インスタンスに基づいて、ニューラルネットワークモデルの改訂されたバージョンおよび特徴モデルの改訂されたバージョンを生成する一例を図示している。
【0108】
ブロック552で、システムは、複数のロボットから修正インスタンスを受信する。いくつかの実装形態では、受信した修正インスタンスはすべて、同じ所与のニューラルネットワークモデルに適用可能である。例えば、受信した修正インスタンスはすべて、オブジェクトの分類に利用されるニューラルネットワークモデルに適用可能であり得る。
【0109】
いくつかの他の実装形態では、ブロック552で受信された修正インスタンスは、様々なニューラルネットワークモデルにまとめて適用可能であり得る。例えば、いくつかの修正インスタンスは、「分類」ニューラルネットワークモデルに適用可能であり得、他の修正インスタンスは、「把持」ニューラルネットワークモデル、等に適用可能であり得る。それらの実装形態のいくつかでは、ブロック552は、システムが所与のニューラルネットワークモデルに適用可能な修正インスタンスを判定する、サブブロック552Aを含む。言い換えれば、ブロック552Aで、システムは、様々なニューラルネットワークモデルに適用可能な修正インスタンスのグループから、所与のニューラルネットワークモデルに適用可能なサブグループを判定し得る。ブロック552Aで、システムは、修正インスタンスの内容の分析に基づいて、修正インスタンスを判定することができる。例えば、システムは、所与のニューラルネットワークモデル(または、対応するバージョン)を明示的に示す修正インスタンスに基づいて、そのような修正インスタンスを判定することができる。また、例えば、システムは、所与のモデルを示すそのような修正インスタンスに含まれる修正情報に基づいて、追加的または代替的にそのような修正インスタンスを判定することができる。
【0110】
ブロック554で、システムは、所与のニューラルネットワークモデルに対する修正インスタンスを選択する。
【0111】
ブロック556で、システムは、選択された修正インスタンスに基づいて1つ以上のトレーニング例を生成および保存する。
【0112】
ブロック558で、システムは、所与のニューラルネットワークモデルに対して追加の修正インスタンスが利用可能かどうかを判定する。そうである場合、システムはブロック554に進み、追加の修正インスタンスを選択し、その後、ブロック556に再び進み、選択された追加の修正インスタンスに基づいて追加のトレーニング例(複数可)を生成および保存する。これは、繰り返し実行されてもよく、任意選択的にブロック560と並行して実行されてもよい(後述)。
【0113】
ブロック560で、システムは、トレーニング例に基づいてトレーニングすることによって、ニューラルネットワークモデルの改訂されたバージョンおよび対応する特徴モデルの改訂されたバージョンを生成する。例えば、システムは、ブロック552の修正インスタンスを提供したロボットによって利用されたニューラルネットワークモデルおよび特徴モデルの同じバージョン、同じモデルの異なるバージョン、または異なる(しかし、機能的に類似した)モデル、で開始することができる。いくつかの実装形態では、システムは、1つ以上の基準が満たされるまでトレーニングによって改訂されたバージョンを生成する。基準は、例えば、すべての「現在の」トレーニング例の使用、利用されているトレーニング例の少なくとも閾値量、達成されているトレーニングの少なくとも閾値期間、等を含むことができる。
【0114】
ブロック562で、システムは、1つ以上のロボットに、前のバージョンの代わりに使用するための、所与のニューラルネットワークモデルの改訂されたバージョンおよび特徴モデルの改訂されたバージョンを提供する。
【0115】
ここで図6を参照して、様々な実装形態によるさらに別の例の方法600が説明される。便宜上、フローチャートの動作は、動作を実行するシステムを参照して説明される。このシステムは、ロボットの、および/またはロボットと通信する1つ以上のコンピューティングデバイスの様々な構成要素を含み得る。さらに、方法600の動作は特定の順序で示されているが、これは限定することを意味するものではない。1つ以上の動作は、順序を変更、省略、または追加されてもよい。
【0116】
図6の方法600は、ニューラルネットワークモデルの受信した改訂されたバージョンに対して特徴モデルを調整する一例を図示しており、特徴モデルは、ニューラルネットワークモデルの過去のバージョン(複数可)に関連付けられた過去の修正に基づいて調整される。例えば、方法600は、図3のブロック368の実装形態の一例を図示している。
【0117】
ブロック652で、システムは、ニューラルネットワークモデルの改訂されたバージョンと、ニューラルネットワークモデルの改訂されたバージョンに対応する特徴モデルとを受信する。
【0118】
ブロック654で、システムは、過去の視覚センサデータおよび過去の視覚センサデータの対応する修正詳細(複数可)を選択する。過去の視覚センサデータおよび修正詳細(複数可)は、ニューラルネットワークモデルの前のバージョンに基づいて判定された前の人間の修正に応じて、システムによって前もって保存される。例えば、修正詳細(複数可)は、視覚センサデータによって捕捉されたオブジェクトに対する正確な分類を含む場合があり、前の人間の修正に基づく場合がある。前の人間の修正は、特徴モデルの前のバージョンを更新するために利用された可能性がある。例えば、システムは、特徴モデルの前のバージョンの、特徴埋め込みを前もって調整して、視覚センサデータに基づいて、ニューラルネットワークモデルの前のバージョンの上で生成された埋め込みにより類似するようにしてもよい。
【0119】
ブロック656で、システムは、視覚センサデータをニューラルネットワークモデルの改訂されたバージョンに適用することに基づいて、埋め込みを生成する。ブロック656で生成された埋め込みは、ニューラルネットワークモデルの改訂されたバージョンがさらにトレーニングされているため、ニューラルネットワークモデルの前のバージョンの上で前もって生成された埋め込みとはおそらく異なることが理解される。
【0120】
ブロック658で、システムは、ブロック656の埋め込みに基づいて、特徴モデル内の修正詳細(複数可)にマッピングされた特徴埋め込み(複数可)を更新する。例えば、ブロック654の修正詳細(複数可)が正確な分類を含む場合、その正確な分類にマッピングされた分類埋め込みは、ブロック656の埋め込みにより類似するように調整されてもよい。
【0121】
ブロック660で、システムは、追加の過去の視覚センサデータおよび対応する修正詳細(複数可)インスタンスが残っているかどうかを判定する。そうである場合、システムはブロック654、656、および658に戻り、それにより、そのインスタンスに基づいて特徴モデルをさらに更新する(ニューラルネットワークモデルの改訂されたバージョンを考慮して)。そうでない場合、システムは、ニューラルネットワークモデル(および対応する特徴モデル)のさらなる改訂されたバージョンが受信され、その時点で方法600が繰り返され得るまで、方法600を終了し得る。
【0122】
図7は、ロボット700の例示的なアーキテクチャを概略的に示す。図1のロボット190および/または追加のロボット192は、図7の例示的なアーキテクチャの1つ以上の構成要素を実装し得る。ロボット700は、ロボット制御システム760、1つ以上の動作構成要素704a~704n、および1つ以上のセンサ708a~708mを含む。センサ708a~708mは、例えば、視覚センサ(例えば、カメラ(複数可)、3Dスキャナ)、光センサ、圧力センサ、圧力波センサ(例えば、マイクロフォン)、近接センサ、加速度計、ジャイロスコープ、温度計、気圧計、などを含み得る。センサ708a~708mはロボット700と一体化されているように示されているが、これは限定することを意味するものではない。いくつかの実装形態では、センサ708a~708mは、例えばスタンドアロンユニットとして、ロボット700の外部に配置されてもよい。
【0123】
動作構成要素704a~704nは、例えば、1つ以上のエンドエフェクタ(例えば、把持エンドエフェクタ)および/またはロボットの1つ以上の構成要素の動きを実現するための1つ以上のサーボモータまたは他のアクチュエータを含み得る。例えば、ロボット700は、複数の自由度を有してもよく、アクチュエータの各々は、制御コマンドに応答して1つ以上の自由度内でロボット700の作動を制御してもよい。本明細書で使用する、アクチュエータという用語は、アクチュエータに関連付けられ得、かつ受信した制御コマンドを、アクチュエータを駆動するための1つ以上の信号に変換する、任意のドライバ(複数可)に加えて、動きを作り出す機械的または電気的デバイス(例えば、モータ)を包含する。したがって、制御コマンドをアクチュエータに提供することは、制御コマンドを電気的または機械的デバイスを駆動して所望の運動を作り出すための適切な信号に変換するドライバに制御コマンドを提供することを含み得る。
【0124】
制御システム702は、CPU、GPU、および/またはロボット700の他のコントローラ(複数可)などの1つ以上のプロセッサに実装され得る。いくつかの実装形態では、ロボット700は、制御システム702のすべてまたは態様を含み得る「ブレインボックス」を備え得る。例えば、ブレインボックスは、データのリアルタイムバーストを動作構成要素704a~nに提供し得、リアルタイムバーストの各々は、とりわけ、動作構成要704a~nの1つ以上の各々に対する動きの特徴(もしあれば)を指令する1つ以上の制御コマンドのセットを備える。
【0125】
制御システム702は、ロボット700の一体部分として図7に図示されているが、いくつかの実装形態では、制御システム702のすべてまたは態様は、ロボット700とは別個であるが通信している構成要素に実装されてもよい。例えば、制御システム702のすべてまたは態様は、コンピューティングデバイス810などの、ロボット700と有線および/または無線通信する1つ以上のコンピューティングデバイス上に実装されてもよい。
【0126】
いくつかの実装形態では、制御システム702は、図1の構成要素103のうちの1つ以上を機能的に実装および/またはそれらとインターフェースする。例えば、制御システム702は、特徴モジュール121A~N、計画モジュール122、コマンドモジュール123、UI入力モジュール124、UI出力モジュール125、局所的更新モジュール126、修正インスタンスエンジン130、および/またはロボットデータエンジン135を実装してもよい。また、例えば、制御システム702は、NLPシステム133と(例えば、ネットワークインターフェース715を介して)インターフェースしてもよい。ニューラルネットワークモデル150A~Nの1つ以上は、ロボット700に局所的に保存され、制御システム702にアクセス可能であってもよい。
【0127】
図8は、本明細書で説明する手法の1つ以上の態様を実行するために任意選択的に利用し得る例示的なコンピューティングデバイス810のブロック図である。コンピューティングデバイス810は、典型的には、バスサブシステム812を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ814を含む。これらの周辺機器は、例えば、メモリサブシステム825およびファイル記憶サブシステム826を含む記憶サブシステム824、ユーザインターフェース出力デバイス820、ユーザインターフェース入力デバイス822、およびネットワークインターフェースサブシステム816を含み得る。入力および出力デバイスは、ユーザがコンピューティングデバイス810と対話するのを可能にする。ネットワークインターフェースサブシステム816は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0128】
ユーザインターフェース入力デバイス822は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および/または他のタイプの入力デバイスを含み得る。概して、「入力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス810または通信ネットワークに情報を入力する方法を含むことを意図している。
【0129】
ユーザインターフェース出力デバイス820は、ディスプレイサブシステム、プリンタ、ファックスマシーン、またはオーディオ出力デバイスなどの非視覚ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投射型デバイス、または可視画像を作成するためのなんらかの他のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介してなど非視覚ディスプレイも提供し得る。概して、「出力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス810からユーザへ、あるいは別のマシンまたはコンピューティングデバイスへ情報を出力する方法を含むことを意図している。
【0130】
記憶サブシステム824は、本明細書で説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造体を保存する。例えば、記憶サブシステム824は、本明細書で説明される方法の選択された態様を実行するためのロジックを含み得る。
【0131】
これらのソフトウェアモジュールは概して、単独で、または他のプロセッサと組み合わせて、プロセッサ814によって実行される。記憶サブシステム824において使用されるメモリ825は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)830、および固定命令が記憶される読み出し専用メモリ(ROM)832を含むいくつかのメモリを含むことができる。ファイル記憶サブシステム826は、プログラムおよびデータファイルの永続的な保存を提供することができ、ハードディスクドライブ、フロッピーディスクドライブとともに関連するリムーバブルメディア、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装しているモジュールは、記憶サブシステム824内のファイル記憶サブシステム826によって保存されてもよく、またはプロセッサ(複数可)814によってアクセス可能な他のマシンに保存されてもよい。
【0132】
バスサブシステム812は、コンピューティングデバイス810の様々な構成要素およびサブシステムを意図したとおりに互いに通信させるためのメカニズムを提供する。バスサブシステム812は単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は複数のバスを使用してもよい。
【0133】
コンピューティングデバイス810は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムまたはコンピューティングデバイスを含む様々なタイプのものであることができる。コンピュータおよびネットワークの絶えず変化する性質のため、図8に示されるコンピューティングデバイス810の説明は、いくつかの実装形態を例示するための具体的な例としてのみ意図されている。図8に示されるコンピューティングデバイスよりも多いまたは少ない構成要素を有する、コンピューティングデバイス810の多くの他の構成が可能である。
【0134】
本明細書ではいくつかの実装形態を記載および図示してきたが、機能を実行し、および/または結果を得るための様々な他の手段および/または構造、および/または本明細書で記載された1つ以上の利点が利用されてもよく、そのような変形および/または改変の各々は、本明細書で記載された実装形態の範囲内であるとみなされる。より一般的には、本明細書で記載されるすべての特徴、寸法、材料、および構成は、例示であることを意図し、実際の特徴、寸法、材料、および/または構成は、本教示が使用される具体的な用途または応用に依存する。当業者は、型どおりの実験だけを使用して、本明細書に記載された具体的な実装形態に対する多くの等価物を認識するか、確かめることができるであろう。したがって、前述の実装形態は例としてのみ提示されており、添付の特許請求の範囲およびその等価物の範囲内で、具体的に記載および特許請求されている以外の方法で実装形態が実施され得ることを理解されたい。本開示の実施形態は、本明細書に記載の各個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。加えて、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾しない場合、2つ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組み合わせが、本開示の範囲内に含まれる。
図1
図2A
図2B
図2C
図2D
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2021-11-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ロボットの1つ以上のプロセッサによって実装される方法であって、前記方法は、
過去のセンサデータ特徴インスタンスを前記ロボットの1つ以上のコンピュータ可読媒体に局所的に保存することを含み、前記過去のセンサデータ特徴インスタンスは、
前記ロボットの環境内でオブジェクトを捕捉し、前記ロボットの少なくとも1つのセンサによって生成されるセンサデータと、
前記オブジェクトの特徴とを含み、前記特徴は、ユーザインターフェース入力に基づいて判定され、前記特徴は、前記ユーザインターフェース入力が前記オブジェクトを捕捉する前記センサデータに関連して受信されることに基づいて前記オブジェクトの特徴として保存され、
前記方法は、前記センサデータ特徴インスタンスを保存することに続いて、
前記ロボットの1つ以上のネットワークインターフェースを介して
前記ロボットの1つ以上のコンピュータ可読媒体に局所的に保存された古いニューラルネットワークモデルと置き換わるための新しいニューラルネットワークモデルと、
前記ロボットの前記コンピュータ可読媒体の1つ以上に局所的に保存された古い特徴モデルと置き換わるための新しい特徴モデルと
を受信することを含み、
前記方法は、前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信することに応じて、
前記センサデータ特徴インスタンスに基づいて前記新しい特徴モデルを局所的に適合させることと、
適合された前記新しい特徴モデル及び前記新しいニューラルネットワークモデルを、前記ロボットを制御するために、かつ、前記古いニューラルネットワークモデル及び前記古い特徴モデルの代わりに局所的に使用することとを含む、方法。
【請求項2】
前記センサデータ特徴インスタンスに基づいて前記新しい特徴モデルを局所的に適合させることは、
前記新しいニューラルネットワークモデルへの入力として、前記センサデータを適用することと、
前記適用に基づいて前記新しいニューラルネットワークモデルの上で、前記センサデータの埋め込みを生成することと、
前記センサデータの前記埋め込みに基づいて、前記新しい特徴モデルにおける前記特徴の新しい特徴埋め込みを判定することと、を含む、請求項1に記載の方法。
【請求項3】
前記センサデータの前記埋め込みに基づいて、前記新しい特徴モデルにおける前記特徴の前記新しい特徴埋め込みを判定することは、
前記新しい特徴モデルにおいて、前記特徴の現在の特徴埋め込みを識別することと、
前記センサデータの前記埋め込み及び前記現在の特徴埋め込みに基づいて前記新しい特徴埋め込みを判定することと、を含む、請求項2に記載の方法。
【請求項4】
前記センサデータの前記埋め込み及び前記現在の特徴埋め込みに基づいて前記新しい特徴埋め込みを判定することは、
前記センサデータの前記埋め込みと前記現在の特徴埋め込みとの平均に基づいて、前記新しい特徴埋め込みを判定することを含む、請求項3に記載の方法。
【請求項5】
前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信する前に、前記センサデータ特徴インスタンスに基づいて、前記古い特徴モデルを局所的に適合させることをさらに含む、請求項2に記載の方法。
【請求項6】
前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信する前に、前記センサデータ特徴インスタンスに基づいて、前記古い特徴モデルを局所的に適合させることをさらに含む、請求項1に記載の方法。
【請求項7】
前記センサデータ特徴インスタンスに基づいて、前記古い特徴モデルを局所的に適合させることは、
前記古いニューラルネットワークモデルへの入力として、前記センサデータを適用することと、
前記適用に基づいて前記古いニューラルネットワークモデルの上で、前記センサデータの古い埋め込みを生成することと、
前記センサデータの前記古い埋め込みに基づいて、前記古い特徴モデルにおける前記特徴の古い特徴埋め込みを判定することと、を含む、請求項5に記載の方法。
【請求項8】
前記センサデータは視覚センサデータであり、前記少なくとも1つのセンサは視覚センサである、請求項1に記載の方法。
【請求項9】
1つ以上のネットワークインターフェースと、
1つ以上のマイクロフォンと、
視覚センサと、
メモリ保存命令と、
前記メモリに保全された前記命令を実行する1つ以上のプロセッサと、
を備えるロボットであって、前記プロセッサの1つ以上に、
前記ロボットの前記1つ以上のネットワークインターフェースを介して、新しいニューラルネットワークモデル及び新しい特徴モデルを受信することと、
前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信することに応じて、
局所的に保存された視覚センサデータ特徴インスタンスに基づいて前記新しい特徴モデルを局所的に適合させることと、
前記ロボットを制御するために適合された前記新しい特徴モデル及び前記新しいニューラルネットワークモデルを局所的に使用することとを行わせ、
前記視覚センサデータ特徴インスタンスは、前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信する前に局所的に保存され、前記視覚センサデータ特徴インスタンスは、
前記ロボットの環境内でオブジェクトを捕捉し、前記視覚センサによって生成される視覚センサデータと、
前記オブジェクトの特徴とを含み、前記特徴は、前記1つ以上のマイクロフォンを介してユーザインターフェース入力に基づいて判定され、前記特徴は、前記ユーザインターフェース入力が前記オブジェクトを捕捉する前記視覚センサデータに関連して受信されることに基づいて前記オブジェクトの特徴として保存される、ロボット。
【請求項10】
前記視覚センサデータ特徴インスタンスに基づいて、前記新しい特徴モデルを局所的に適合させることにおいて、前記プロセッサの1つ以上は、
前記新しいニューラルネットワークモデルへの入力として、前記視覚センサデータを適用し、
前記適用に基づいて前記新しいニューラルネットワークモデルの上で、前記視覚センサデータの埋め込みを生成し、
前記視覚センサデータの前記埋め込みに基づいて、前記新しい特徴モデルにおける前記特徴の新しい特徴埋め込みを判定する、請求項9に記載のロボット。
【請求項11】
前記センサデータの前記埋め込みに基づいて、前記新しい特徴モデルにおける前記特徴の前記新しい特徴埋め込みを判定することにおいて、前記プロセッサの1つ以上は、
前記新しい特徴モデルにおいて、前記特徴の現在の特徴埋め込みを識別し、
前記視覚センサデータの前記埋め込み及び前記現在の特徴埋め込みに基づいて前記新しい特徴埋め込みを判定する、請求項10に記載のロボット。
【請求項12】
前記視覚センサデータの前記埋め込み及び前記現在の特徴埋め込みに基づいて前記新しい特徴埋め込みを判定することにおいて、前記プロセッサの1つ以上は、前記視覚センサデータの前記埋め込みと前記現在の特徴埋め込みとの平均に基づいて、前記新しい特徴埋め込みを判定する、請求項11に記載のロボット。
【請求項13】
前記命令を実行することにおいて、前記プロセッサの1つ以上は、前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信する前に、前記視覚センサデータ特徴インスタンスに基づいて、古い特徴モデルを局所的に適合させ、前記新しい特徴モデルは、前記古い特徴モデルと置き換わる、請求項10に記載のロボット。
【請求項14】
前記命令を実行することにおいて、前記プロセッサの1つ以上は、前記新しいニューラルネットワークモデル及び前記新しい特徴モデルを受信する前に、前記視覚センサデータ特徴インスタンスに基づいて、古い特徴モデルを局所的に適合させ、前記新しい特徴モデルは、前記古い特徴モデルと置き換わる、請求項9に記載のロボット。
【請求項15】
前記視覚センサデータ特徴インスタンスに基づいて前記古い特徴モデルを局所的に適合させることにおいて、前記プロセッサの1つ以上は、
前記古いニューラルネットワークモデルへの入力として、前記視覚センサデータを適用し、
前記適用に基づいて前記古いニューラルネットワークモデルの上で、前記視覚センサデータの古い埋め込みを生成し、
前記視覚センサデータの前記古い埋め込みに基づいて、前記古い特徴モデルにおける前記特徴の古い特徴埋め込みを判定する、請求項14に記載のロボット。
【請求項16】
前記特徴は分類である、請求項14に記載のロボット。
【請求項17】
前記特徴は境界エリアである、請求項14に記載のロボット。
【外国語明細書】