物体の検出、識別、及び取り出しに関連するシステム及び方法が本明細書に記載されている。具体的には、本開示のシステム及び方法は、物体が容器の中に位置する場所における物体の検出、識別、及び取り出しを容易にし得る。本明細書で論じるように、物体は、金属又は他の材料であってもよく、箱、ビン、木枠などの容器の中に位置してもよい。物体は、例えば、ねじで満たされた箱などの、非組織的又は不規則な様式で、容器の中に位置してもよい。こうした状況での物体の検出及び識別は、物体の不規則な配置のために困難であり得るが、本明細書で論じられるシステム及び方法は、規則的又は半規則的な様式で配置される物体の検出、識別、及び物体の取り出しを同様に改善し得る。したがって、本明細書に記載のシステム及び方法は、複数の物体の中から個々の物体を識別するように設計され、個々の物体は、異なる位置、異なる角度などで配置されてもよい。本明細書で論じるシステム及び方法は、ロボットシステムを含み得る。本明細書の実施形態に従って構成されたロボットシステムは、複数のロボットの操作を調整することによって、統合されたタスクを自律的に実行し得る。ロボットシステムは、本明細書に記載されるように、制御し、コマンドを発行し、ロボット装置及びセンサからの情報を受信し、ロボット装置、センサ及びカメラによって生成されたデータにアクセスし、分析し、及び処理し、ロボットシステムの制御に使用可能なデータ又は情報を生成し、ロボット装置、センサ、及びカメラのアクションを計画するように構成されたロボット装置、アクチュエータ、センサ、カメラ、及び計算システムの任意の適切な組み合わせを含み得る。本明細書で使用される場合、ロボットシステムは、ロボットアクチュエータ、センサ、又はその他の装置に直ちにアクセス又は制御する必要はない。ロボットシステムは、本明細書に記載するように、情報の受け取り、分析、及び処理を通して、こうしたロボットアクチュエータ、センサ、及び他の装置の性能を改善するように構成された計算システムであってもよい。
本明細書に記載される技術は、物体の識別、検出、及び取り出しで使用するために構成されたロボットシステムに技術的改善を提供する。本明細書に記載する技術的改善は、これらの作業の速度、精度、及び正確さを増加させ、容器からの物体の検出、識別、及び取り出しをさらに容易にする。本明細書に記載されるロボットシステム及び計算システムは、容器からの物体を識別、検出、及び取り出す技術的問題に対処するものであり、物体は不規則に配置され得る。この技術的問題に対処することにより、物体の識別、検出、及び取り出しの技術が改善される。
本出願は、システム及びロボットシステムを指す。ロボットシステムは、本明細書で論じるように、ロボットアクチュエータ構成要素(例えば、ロボットアーム、ロボットグリッパなど)、様々なセンサ(例えば、カメラなど)、及び様々な計算又は制御システムを含み得る。本明細書で論じるように、計算システム又は制御システムは、ロボットアーム、ロボットグリッパ、カメラなどの様々なロボット構成要素を「制御する」と呼んでもよい。こうした「制御」は、ロボット構成要素の様々なアクチュエータ、センサ、及びその他の機能的態様の直接的な制御及び相互作用を指し得る。例えば、計算システムは、様々なモータ、アクチュエータ、及びセンサにロボット移動を引き起こすために必要な信号のすべてを発行又は提供することによって、ロボットアームを制御し得る。こうした「制御」はまた、こうしたコマンドをロボット移動を引き起こすために必要な信号に変換するさらなるロボット制御システムへの抽象的又は間接的なコマンドの発行を指すことができる。例えば、計算システムは、ロボットアームが移動すべき軌道又は目的地の位置を記述するコマンドを発行することによってロボットアームを制御してもよく、ロボットアームに関連付けられたさらなるロボット制御システムは、こうしたコマンドを受信及び解釈し、その後、ロボットアームの様々なアクチュエータ及びセンサに必要な直接信号を提供して、必要な移動を引き起こしてもよい。
具体的には、本明細書に記載の本技術は、ロボットシステムが、容器内の複数の物体のうち、標的物体と相互作用するのを支援する。容器からの物体の検出、識別、及び取り出しには、適切な物体認識テンプレートの生成、識別に使用可能な特徴の抽出、ならびに検出仮説の生成、精密化、及び検証を含む、いくつかのステップが必要である。例えば、物体の不規則な配置の可能性のために、複数の異なる姿勢(例えば、角度及び位置)の、及び他の物体の一部によって潜在的に隠されている場合の、物体を認識及び識別することが必要であり得る。
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含まずに実施されてもよい。他の実例では、特定の機能又はルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。本明細書における「実施形態」、「一実施形態」などへの参照は、説明される特定の特徴、構造、材料、又は特性が、本開示の少なくとも一つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしもすべて同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、任意の一つの実施形態に関して記載される特定の特徴、構造、材料、又は特性は、このような品目が相互に排他的でない限り、任意の他の実施形態のものと任意の適切な様式で組み合わせることができる。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
周知であり、かつ多くの場合にロボットシステム及びサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭にし得る、構造又はプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。さらに、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成又は異なる構成要素を有してもよい。したがって、開示された技術は、追加の要素を有するか、又は以下に説明される要素のうちの数点を有しない、他の実施形態を有してもよい。
以下に説明される本開示の多くの実施形態又は態様は、プログラム可能なコンピュータ又はコントローラによって実行されるルーチンを含む、コンピュータ又はコントローラ実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され説明されるもの以外のコンピュータ又はコントローラシステム上で、もしくはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技術は、以下に説明されるコンピュータ実行可能な命令のうちの一つ以上を実行するように、特別にプログラム、構成、又は構築されている、専用コンピュータ又はデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される「コンピュータ」及び「コントローラ」という用語は、任意のデータプロセッサを指し、インターネット家電及びハンドヘルドデバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラー又はモバイルフォン、マルチプロセッサシステム、プロセッサベース又はプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータ及びコントローラによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータ又はコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、又はハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体に、又はその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、及び/又は他の好適な媒体を含む、任意の適切なメモリデバイスに含まれ得る。
「結合」及び「接続」という用語は、それらの派生語と共に、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続」は、二つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合」という用語は、二つ以上の要素が、互いに直接的又は間接的(それらの間の他の介在要素との)接触にあるか、又は二つ以上の要素が互いに協働するか、もしくは相互作用する(例えば、信号送信/受信のための、又は関数呼び出しのためのなどの、因果関係にあるような)か、又はその両方を示すために使用され得る。
計算システムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実施され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の一つ以上の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
図1Aは、物体検出、すなわちより具体的には、物体認識を実行するためのシステム1000を示している。より詳細には、システム1000は、計算システム1100及びカメラ1200を含み得る。この例では、カメラ1200は、カメラ1200が位置する環境を、説明するか、もしくはそうでなければ表し、又はより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)内の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、又は他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠、パレット、又は他の容器などの、こうした施設に位置する物体を表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて物体認識又は物体登録を実行すること、及び/又は画像情報に基づいてロボット相互作用計画を実行することなど、画像情報を生成、受信、及び/又は処理するよう構成され得る(用語「及び/又は」及び「又は」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器又は他の物体との間のロボット相互作用を容易にするように、施設でロボットを制御するために使用され得る。計算システム1100及びカメラ1200が、同じ施設に位置してもよく、又は互いと遠隔に位置してもよい。例えば、計算システム1100は、倉庫又は小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
一実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラ及び/又は3Dカメラであり得る。例えば、図1Bは、計算システム1100、ならびにその両方がカメラ1200の実施形態であり得る、カメラ1200A及びカメラ1200Bを含む、システム1000の実施形態であり得るシステム1500Aを示している。この実施例では、カメラ1200Aは、カメラの視野内にある環境の視覚的外観を説明する2D画像を含む、又は形成する、2D画像情報を生成するように構成される、2Dカメラであり得る。カメラ1200Bは、カメラの視野内の環境に関する空間構造情報を含む、又は形成する3D画像情報を生成するように構成される、3Dカメラ(空間構造感知カメラ又は空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野内にある様々な物体の表面上の場所など、カメラ1200Bに対する様々な場所のそれぞれの奥行き値を説明する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野又は物体の表面上のこれらの場所を、物理的な場所と称することもできる。この例の奥行き情報は、物体が三次元(3D)空間の中で空間的にどのように配置されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野内にある物体の一つ以上の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。より具体的には、空間構造情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を説明し得る。
一実施形態では、システム1000が、カメラ1200の環境においてロボットと様々な物体との間のロボット相互作用を容易にするための、ロボット操作システムであり得る。例えば、図1Cは、図1A及び図1Bのシステム1000/1500Aの実施形態であり得る、ロボット操作システム1500Bを示している。ロボット操作システム1500Bは、計算システム1100、カメラ1200、及びロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある一つ以上の物体、例えば、箱、木枠、ビン、パレット、又はその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、一つの場所から容器を拾い上げ、それらを別の場所に移動するように構成され得る。一部の事例では、ロボット1300は、容器又は他の物体のグループが降ろされて、例えば、ベルトコンベヤーに移動される、パレットから降ろす操作を実行するために使用され得る。一部の実施形態では、カメラ1200は、以下に論じる、ロボット1300又はロボット3300に取り付けられてもよい。これは、手持ちカメラ又は手持ちカメラソリューションとしても知られる。カメラ1200は、ロボット1300のロボットアーム3320に取り付けられてもよい。次に、ロボットアーム3320は、様々な持ち上げ領域に移動して、それらの領域に関する画像情報を生成してもよい。一部の実施形態では、カメラ1200は、ロボット1300から離れていてもよい。例えば、カメラ1200は、倉庫又は他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。一部の実施形態では、手持ちカメラ1200と共に使用されるロボット1300とは別個の複数のカメラ1200及び/又はロボット1300とは別個のカメラ1200を含む、複数のカメラ1200が使用され得る。一部の実施形態では、一つのカメラ1200又は複数のカメラ1200は、ロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット1300とは別個に、専用のロボットシステムに装着されてもよく、又は固定されてもよい。本明細書全体を通して、カメラ1200を「制御する(control)」又は「制御している(controlling)」について論じることができる。手持ちカメラソリューションについては、カメラ1200の制御は、カメラ1200が装着されるか、又は取り付けられるロボット1300の制御も含む。
一実施形態では、図1A~図1Cの計算システム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、又はロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器又は他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成されてもよい。例えば、計算システム1100は、画像情報に基づいて動作計画を決定するように構成されてもよく、動作計画は、例えば、物体を握るか、又は他の方法で拾い上げることを意図し得る。計算システム1100は、動作計画を実行するために、一つ以上のロボット相互作用移動コマンドを生成し得る。
実施形態では、計算システム1100は、視覚システムを形成し得るか、又はその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を説明する、又は別の方法として、もしくは追加的に、カメラ1200が位置する環境を説明する、視覚情報を生成するシステムであり得る。視覚情報が、上で考察された3D画像情報、及び/又は2D画像情報、あるいはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、計算システム1100が、視覚システムを形成する場合、視覚システムは、上で考察されたロボット制御システムの一部であってもよく、又はロボット制御システムから分離してもよい。視覚システムは、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を説明する、情報を出力するように構成され得る。情報は、視覚システムからこうした情報を受信することができる、ロボット制御システムに出力されることができ、情報に基づいて、動作計画を実行し、及び/又はロボット相互作用移動コマンドを生成する。視覚システムに関するさらなる情報は、以下に詳しく説明されている。
一実施形態では、計算システム1100は、RS-232インターフェース、ユニバーサルシリアルバス(USB)インターフェースなどの専用有線通信インターフェースを介して、及び/もしくは周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して提供される接続など、直接接続によってカメラ1200ならびに/又はロボット1300と通信し得る。一実施形態では、計算システム1100が、ネットワークを介してカメラ1200及び/又はロボット1300と通信し得る。ネットワークは、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、又はインターネットなど、任意の種類及び/又は形態のネットワークであり得る。ネットワークは、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、又はSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、及び層又はスタックを利用し得る。
実施形態では、計算システム1100は、カメラ1200及び/もしくはロボット1300と直接情報を伝達してもよく、又は中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、図1Dは、計算システム1100の外部にあり得る非一時的コンピュータ可読媒体1400を含む、システム1000/1500A/1500Bの実施形態であってもよく、例えば、カメラ1200によって生成された画像情報を記憶するための外部バッファ又はリポジトリとして作用し得る、システム1500Cを示している。こうした一実施例では、計算システム1100は、非一時的コンピュータ可読媒体1400から、画像情報を検索するか、さもなければ受信することができる。非一時的コンピュータ可読媒体1400の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又はそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、及び/又はメモリスティックを形成し得る。
上述のように、カメラ1200は、3Dカメラ及び/又は2Dカメラであり得る。2Dカメラは、カラー画像又はグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、又は任意の他の種類の3Dカメラであり得る。一部の事例では、2Dカメラ及び/又は3Dカメラは、電荷結合素子(CCD)センサ及び/又は相補型金属酸化膜半導体(CMOS)センサなど、画像センサを含み得る。一実施形態では、3Dカメラは、レーザ、LIDAR装置、赤外線装置、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダ探知機、又は奥行き情報、もしくは他の空間構造情報を捕捉するように構成される任意の他の装置を含み得る。
上述のように、画像情報が、計算システム1100によって処理され得る。一実施形態では、計算システム1100は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレット計算装置、及び/もしくは他の任意の他の計算システムを含んでもよく、又はそれらとして構成されてもよい。一実施形態では、計算システム1100の機能性のいずれか又はすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一の計算装置(例えば、デスクトップコンピュータ)であってもよく、又は複数の計算装置を含んでもよい。
図2Aは、計算システム1100の一実施形態を示す、ブロック図を提供する。この実施形態における計算システム1100は、少なくとも一つの処理回路1110、及び非一時的コンピュータ可読媒体(複数可)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、及び/又はオンボードサーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に動作可能に結合された別個の/スタンドアロンコントローラに含まれてもよい。プロセッサは、プログラム命令を実行して、他の装置を制御/他の装置とインターフェース接続し、それによって、計算システム1100にアクション、タスク、及び/又は処理を実行させ得る。一実施形態では、処理回路1110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、又は任意の他の処理回路を含む。
一実施形態では、計算システム1100の一部である、非一時的コンピュータ可読媒体1120が、上で考察された中間の非一時的コンピュータ可読媒体1400の代替又は追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、又は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、又は任意の他の記憶装置など、それらの任意の好適な組み合わせなどの記憶装置であり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実施形態では、非一時的コンピュータ可読媒体1120が、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、本明細書で論じる方法及び処理を実行するために使用される一つ以上の物体認識テンプレートを記憶し得る。非一時的コンピュータ可読媒体1120が、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される一つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的又は追加的に記憶し得る。
図2Bは、計算システム1100の一実施形態であり、通信インターフェース1131を含む、計算システム1100Aを示す。通信インターフェース1131は、例えば、図1A~図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、又はカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。一実施形態では、通信インターフェース1131は、図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1131が、ロボット制御システムと通信するように構成され得る。通信インターフェース1131はまた、通信構成要素又は通信回路と呼ばれる場合があり、例えば、有線又は無線プロトコル上で通信を実行するように構成される通信回路を含んでもよい。例として、通信回路が、RS-232ポートコントローラー、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、又はそれらの組み合わせを含んでもよい。
一実施形態では、図2Cに図示されるように、非一時的コンピュータ可読媒体1120は、本明細書に論じられる一つ以上のデータオブジェクトを記憶するように構成された記憶空間1125を含み得る。例えば、記憶空間は、物体認識テンプレート、検出仮説、画像情報、物体画像情報、ロボットアーム移動コマンド、及び本明細書で論じた計算システムがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
一実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、図2Dは、計算システム1100/1100A/1100Bの一実施形態である、計算システム1100Cを示し、処理回路1110は、物体認識モジュール1121、動作計画モジュール1129、及び物体操作計画モジュール1126を含む、一つ以上のモジュールによってプログラムされる。処理回路1110はさらに、仮説生成モジュール1128、物体登録モジュール1130、テンプレート生成モジュール1132、特徴抽出モジュール1134、仮説精密化モジュール1136、及び仮説検証モジュール1138を用いてプログラムされてもよい。上記のモジュールの各々は、本明細書に記載されるプロセッサ、処理回路、計算システムなどのうちの一つ以上上でインスタンス化されたときに、特定のタスクを実行するように構成されたコンピュータ可読プログラム命令を表し得る。上記のモジュールの各々は、本明細書に記載される機能を達成するために、互いに協働してもよい。本明細書に記載される機能性の様々な態様は、上述のソフトウェアモジュールのうちの一つ以上によって実行されてもよく、ソフトウェアモジュール及びそれらの説明は、本明細書に開示されるシステムの計算構造を制限するものとして理解されない。例えば、特定のタスク又は機能は、特定のモジュールに関して記述され得るが、そのタスク又は機能は、必要に応じて異なるモジュールによって実施されてもよい。さらに、本明細書に記載のシステム機能は、異なる機能の内訳又は割り当てで構成された異なるセットのソフトウェアモジュールによって行われてもよい。
一実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得及び分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、及び技術は、物体認識モジュール1121を使用し得る。物体認識モジュールは、本明細書で論じるように、物体識別に関連する物体認識タスクのためにさらに構成されてもよい。
動作計画モジュール1129は、ロボットの動きを計画及び実行するように構成され得る。例えば、動作計画モジュール1129は、本明細書に記載される他のモジュールと相互作用して、物体取り出し操作及びカメラ配置操作のためのロボット3300の動作を計画してもよい。ロボットアームの動き及び軌道に関して本明細書で論じられる方法、システム、及び技術は、動作計画モジュール1129によって実施され得る。
物体操作計画モジュール1126は、例えば、物体を把持及び解放する、ならびにこうした把持及び解放を補助及び容易にするためロボットアームコマンドを実行する、ロボットアームの物体操作活動を計画及び実行するように構成されてもよい。
仮説生成モジュール1128は、例えば、図10A~10Bに関して説明されるように、検出仮説を生成するため、テンプレートマッチング及び認識タスクを実行するように構成され得る。仮説生成モジュール1128は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
物体登録モジュール1130は、本明細書で論じる様々なタスクに必要とされ得る物体登録情報を取得、記憶、生成、及びそうでなければ処理するよう構成されてもよい。物体登録モジュール1130は、任意の他の必要なモジュールと相互作用又は通信するように構成され得る。
テンプレート生成モジュール1132は、例えば、図6~9Dに関連して、本明細書で論じるように、物体認識テンプレート生成タスクを完了するように構成され得る。テンプレート生成モジュール1132は、物体登録モジュール1130、特徴抽出モジュール1134、及び任意の他の必要なモジュールと相互作用するように構成され得る。
特徴抽出モジュール1134は、例えば、図8~9Dに関連して、本明細書で論じる特徴抽出及び生成タスクを完了するように構成され得る。特徴抽出モジュール1134は、物体登録モジュール1130、テンプレート生成モジュール1132、仮説生成モジュール1128、及び任意の他の必要なモジュールと相互作用するように構成され得る。
仮説精密化モジュール1136は、例えば、図11~12Cに関連して、本明細書で論じるように、仮説精密化タスクを完了するように構成され得る。仮説精密化モジュール1136は、物体認識モジュール1121及び仮説生成モジュール1128、ならびに任意の他の必要なモジュールと相互作用するように構成され得る。
仮説検証モジュール1138は、例えば、図13~14に関連して、本明細書で論じるように仮説検証タスクを完了するように構成され得る。仮説検証モジュール1138は、物体登録モジュール1130、特徴抽出モジュール1134、仮説生成モジュール1128、仮説精密化モジュール1136、及び任意の他の必要なモジュールと相互作用するように構成され得る。
図2E、図2F、図3A及び図3Bを参照すると、画像分析のために実施され得る物体認識モジュール1121に関連する方法が説明される。図2E及び図2Fは、画像分析方法と関連付けられた例示的な画像情報を示すが、図3A及び図3Bは、画像分析方法と関連付けられた例示的なロボット環境を示す。計算システムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な場所のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、又はそれを使用して実行され得る。奥行き情報は、物体を識別するか、又は物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の一つ以上の表面上の場所を説明する点群を含んでもよく、又は該点群を生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
実施形態では、計算システム1100が、カメラ1200のカメラ視野(例えば、3200)内の物体を表す画像情報を取得し得る。画像情報を取得するための以下に説明するステップ及び技術は、以下、画像情報捕捉処理3001と呼んでもよい。一部の実例では、物体は、カメラ1200の視野3200のシーン5013内の複数の物体5012からの一つの物体5012であってもよい。画像情報2600、2700は、物体5012がカメラ視野3200にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、個々の物体5012又はシーン5013のうちの一つ以上を記述してもよい。物体の外観は、カメラ1200の視点からの物体5012の外観を記述する。カメラ視野に複数の物体5012がある場合、カメラは、必要に応じて、複数の物体又は単一の物体を表す画像情報(単一の物体に関するこうした画像情報は、物体画像情報と呼ばれ得る)を生成し得る。画像情報は、物体のグループがカメラ視野にある(又はあった)ときに、カメラ(例えば、1200)によって生成されてもよく、及び、例えば、2D画像情報及び/又は3D画像情報を含み得る。
一例として、図2Eは、画像情報の第一のセット、より具体的には、2D画像情報2600を図示し、これは、上述のように、カメラ1200によって生成され、図3Aの物体3410A/3410B/3410C/3410Dを表す。より具体的には、2D画像情報2600は、グレースケール、又はカラー画像であり得、カメラ1200の視点からの物体3410A/3410B/3410C/3410Dの外観を記述し得る。一実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、又は青のチャネル)に対応し得る。カメラ1200が物体3410A/3410B/3410C/3410Dの上方に配置される場合、2D画像情報2600は、物体3410A/3410B/3410C/3410Dのそれぞれの上部表面の外観を表し得る。図2Eの例では、2D画像情報2600は、物体3410A/3410B/3410C/3410Dのそれぞれの表面を表す、画像部分又は物体画像情報とも呼ばれる、それぞれの部分2000A/2000B/2000C/2000D/2550を含み得る。図2Eでは、2D画像情報2600の各画像部分2000A/2000B/2000C/2000D/2550は、画像領域、又は、より具体的には、ピクセル領域(画像がピクセルによって形成される場合)であり得る。2D画像情報2600のピクセル領域内の各ピクセルは、座標[U、V]のセットによって記述される位置を有するものとして特徴付けられ得、図2E及び図2Fに示されるように、カメラ座標系又は他の何らかの座標系に対する値を有し得る。ピクセルの各々はまた、0~255又は0~1023の値などの、強度値を有してもよい。さらなる実施形態では、ピクセルの各々は、様々なフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)のピクセルに関連付けられた任意の追加情報を含んでもよい。
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像のすべて又は一部分であってもよい。例では、計算システム1100は、対応する物体3410Aと関連付けられた画像情報のみを取得するために、2D画像情報2600から画像部分2000Aを抽出するように構成されてもよい。画像部分(画像部分2000Aなど)が単一の物体に向けられている場合、それは物体画像情報と呼ばれ得る。物体画像情報は、それが向けられる物体についての情報のみを含む必要はない。例えば、それが向けられる物体は、一つ以上の他の物体近く、その下、その上、又はそうでなればその近傍に位置してもよい。こうした場合、物体画像情報は、それが向けられる物体、ならびに一つ以上の隣接する物体についての情報を含み得る。例えば、計算システム1100は、図2Fに示される2D画像情報2600及び/又は3D画像情報2700に基づいて画像セグメンテーション又は他の分析又は処理操作を実行することによって、画像部分2000Aを抽出し得る。一部の実施形態では、画像セグメンテーション又は他の操作は、物体の物理的エッジ(例えば、物体のエッジ)が2D画像情報2600の中に現れる画像の場所を検出すること、及びこうした画像の場所を使用して、カメラ視野(例えば、3200)内の個々の物体を表すことに限定された物体画像情報を識別すること、ならびに実質的に他の物体を除外することを含み得る。「実質的に除外する」とは、画像セグメンテーション又はその他の処理技術が、非標的物体を物体画像情報から除外するように設計及び構成されるが、エラーが生じてもよく、ノイズが存在してもよく、様々な他の要因が他の物体の一部分の包含をもたらし得ることが理解されることを意味する。
図2Fは、画像情報が3D画像情報2700である例を図示している。より具体的には、3D画像情報2700は、例えば、物体3410A/3410B/3410C/3410Dの一つ以上の表面(例えば、上部表面、又は他の外部表面)上の様々な場所のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る。一部の実施形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報2700の中に現れる画像の場所を検出すること、及びこうした画像の場所を使用して、カメラ視野(例えば、3410A)内の個々の物体を表すことに限定された画像部分(例えば、2730)を識別することを含み得る。
それぞれの奥行き値は、3D画像情報2700を生成するカメラ1200に対するものであってもよく、又はいくつかの他の基準点に対するものであってもよい。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3200)の中にある物体の構造上の様々な場所に対するそれぞれの座標を含む、点群を含み得る。図2Fの例では、点群は、物体3410A/3410B/3410C/3410Dのそれぞれの表面の場所を説明する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、又は何らかの他の座標系に対する値を有してもよい。例えば、3D画像情報2700は、物体3410Dの表面上の物理的な場所とも呼ばれる、場所27101~2710nのセットに対するそれぞれの奥行き値を示す、画像部分とも呼ばれる第一の画像部分2710を含み得る。さらに、3D画像情報2700は、第二の部分、第三の部分、第四の部分、及び第五の部分2720、2730、2740、及び2750をさらに含み得る。次に、これらの部分は、それぞれ、27201~2720n、27301~2730n、27401~2740n、及び27501~2750nによって表され得る、場所のセットに対するそれぞれの奥行き値をさらに示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第一のセットの一部分であってもよい。図2Fの例では、取得された3D画像情報2700が図3Aの物体3410Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。2D画像情報2600の考察と同様に、識別された画像部分2710は、個々の物体に関連してもよく、物体画像情報と呼ばれてもよい。したがって、物体画像情報は、本明細書で使用される場合、2D及び/又は3D画像情報を含み得る。
一実施形態では、画像正規化操作は、画像情報を取得する一部として、計算システム1100によって実施され得る。画像正規化操作は、変換された画像又は変換された画像部分を生成するために、カメラ1200によって生成された画像又は画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、又は二つの組み合わせを含み得る画像情報が、視点、物体姿勢、及び視覚的記述情報と関連付けられた照明条件において画像情報を変更させるように試みるために、画像正規化操作を受け得る場合である。そのような正規化は、画像情報及びモデル(例えば、テンプレート)情報間のより正確な比較を容易にするために実施され得る。視点は、カメラ1200に対する物体の姿勢、及び/又はカメラ1200が物体を表す画像を生成するときに、カメラ1200が物体を見ている角度を指し得る。
例えば、画像情報は、標的物体がカメラ視野3200内にある、物体認識操作中に生成され得る。カメラ1200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上面をカメラ1200の光学軸に対して垂直にする姿勢を有してもよい。こうした例では、カメラ1200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の実例では、カメラ1200が物体認識操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、又は他の照明条件を表し得る。
一実施形態では、画像正規化操作は、画像又は画像部分を、物体認識テンプレートの情報と関連付けられた視点及び/又は照明条件により良く合致させるように、カメラによって生成されるシーンの画像又は画像部分を調整することを伴い得る。調整は、画像又は画像部分を変換して、物体姿勢又は物体認識テンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも一方に合致する変換された画像を生成することを伴い得る。
視点調整は、画像が物体認識テンプレート内に含まれ得る視覚的記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、及び/又はシフトを伴い得る。処理は、例えば、画像の色、コントラスト、又は照明を変更することを含み得、シーンのワーピングは、画像のサイズ、寸法、又は比率を変更することを含み得、画像のシフトは、画像の位置、向き、又は回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、及び/又はシフトを使用して、シーンの画像内の物体を、物体認識テンプレートの視覚的記述情報に合致するか、又はそれにより良好に対応する向き及び/又はサイズを有するように変更してもよい。物体認識テンプレートが、一部の物体の正面図(例えば、上面図)を記述する場合、シーンの画像は、シーン内の物体の正面図も表すようにワーピングされ得る。
本明細書に実施される物体認識方法のさらなる態様は、2020年8月12日出願の米国特許出願第16/991,510号、及び2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。
様々な実施形態では、「コンピュータ可読命令」及び「コンピュータ可読プログラム命令」という用語は、様々なタスク及び操作を遂行するように構成されている、ソフトウェア命令又はコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に一つ以上の機能タスクを行わせるように構成される、ソフトウェア命令又はコードの集まりを広く指す。モジュール及びコンピュータ可読命令は、処理回路又は他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作又はタスクを実行するものとして説明され得る。
図3A~3Bは、非一時的コンピュータ可読媒体1120上に記憶されたコンピュータ可読プログラム命令が、計算システム1100を介して利用されて、物体識別、検出、ならびに取り出しの操作及び方法の効率を増大させる例示的な環境を示す。計算システム1100によって取得され、図3Aにおいて例証される画像情報は、物体環境内に存在するロボット3300へのシステムの意思決定手順及びコマンド出力に影響を与える。
図3A~図3Bは、本明細書に説明されるプロセス及び方法が実施され得る例示的な環境を示す。図3Aは、少なくとも計算システム1100、ロボット3300、及びカメラ1200を含むシステム3000(図1A~図1Dのシステム1000/1500A/1500B/1500Cの実施形態であり得る)を有する環境を示す。カメラ1200は、カメラ1200の実施形態であってもよく、カメラ1200のカメラ視野3200内のシーン5013を表す、又は、より具体的には、物体3410A、3410B、3410C、及び3410Dなどの、カメラ視野3200内の物体(箱など)を表す、画像情報を生成するように構成され得る。一実施例では、物体3410A~3410Dの各々は、例えば、箱又は木枠などの容器であってもよく、一方で、物体3400は、例えば、上に容器が配設されるパレットであり得る。さらに、物体3410A~3410Dの各々は、個々の物体5012を含む容器であってもよい。各物体5012は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、リンケージ、歯車、又は任意の他の種類の物理的物体、ならびに複数の物体のアセンブリであってもよい。図3Aは、物体5012の複数の容器を含む実施形態を示すが、図3Bは、物体5012の単一の容器を含む実施形態を示す。
一実施形態では、図3Aのシステム3000は、一つ以上の光源を含み得る。光源は、例えば、発光ダイオード(LED)、ハロゲンランプ、又は任意の他の光源であってもよく、可視光、赤外線、又は物体3410A~3410Dの表面に向かって任意の他の形態の光を放射するように構成され得る。一部の実施形態では、計算システム1100は、光源と通信して、光源が起動されるときを制御するように構成され得る。他の実施形態では、光源は、計算システム1100とは独立して動作し得る。
一実施形態では、システム3000は、カメラ1200、又は2D画像情報2600を生成するように構成される2Dカメラと、3D画像情報2700を生成するように構成される3Dカメラと、を含む、複数のカメラ1200を含み得る。カメラ1200又は複数のカメラ1200は、ロボット3300に装着されるか、又はロボット3300に取り付けられてもよく、環境内に静止していてもよく、及び/又はロボットアーム、ガントリ、又はカメラ移動のために構成された他の自動化システムなどの物体操作に使用されるロボット3300から分離された専用のロボットシステムに固定されてもよい。図3Aは、静止カメラ1200及び手持ちカメラ1200を有する例を示し、一方、図3Bは、静止カメラ1200のみを有する例を示す。2D画像情報2600(例えば、カラー画像又はグレースケール画像)は、カメラ視野3200における、物体3410A/3410B/3410C/3410D又は物体5012などの一つ以上の物体の外観を説明し得る。例えば、2D画像情報2600は、物体3410A/3410B/3410C/3410D及び5012のそれぞれの外部表面(例えば、上部表面)上に配置される視覚的詳細、及び/又はそれらの外部表面の輪郭を捕捉するか、又は別様に表し得る。一実施形態では、3D画像情報2700は、物体3410A/3410B/3410C/3410D/3400及び5012のうちの一つ以上の構造を説明してもよく、物体についての構造は、物体の構造又は物体の物理的構造とも呼ばれ得る。例えば、3D画像情報2700は、奥行きマップを含んでもよく、より全般的には、カメラ1200に対する、又は何らかの他の基準点に対する、カメラ視野3200の様々な場所のそれぞれの奥行き値を説明し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する場所は、物体3410A/3410B/3410C/3410D/3400及び5012のそれぞれの上部表面上の場所などの、カメラ視野3200の様々な表面上の場所(物理的な場所とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体3410A/3410B/3410C/3410D/3400及び5012、又はカメラ視野3200内のいくつかの他の物体の一つ以上の外側表面上の様々な場所を説明する、複数の3D座標を含み得る、点群を含み得る。点群が図2Fに示される。
図3A及び図3Bの例では、ロボット3300(ロボット1300の実施形態であり得る)は、ロボット基部3310に取り付けられる一方の端を有し、かつロボットグリッパなどのエンドエフェクタ装置3330に取り付けられるか、又はそれによって形成される別の端を有する、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクタ装置3330は、ロボット3300の環境で一つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3410A~3410D及び5012のうちの少なくとも一つを握るか、又は他の方法で拾い上げることを含み得る。例えば、ロボット相互作用は、物体5012を容器から識別、検出、及び取り出すための物体摘み作業の一部であってもよい。エンドエフェクタ装置3330は、物体5012を把持するか、又は掴むための吸引カップ又は他の構成要素を有し得る。エンドエフェクタ装置3330は、吸引カップ又は他の把持構成要素を使用して、例えば、上面を介して、物体の単一の面又は表面との接触を通して、物体を把持するか、又は掴むように構成され得る。
ロボット3300は、構造部材を操作するため、及び/又はロボットユニットを輸送するためになど、作業を実行するために使用される情報を取得するように構成された追加のセンサをさらに含み得る。センサは、ロボット3300及び/又は周囲の環境の一つ以上の物理的特性(例えば、その状態、条件、及び/又は一つ以上の構造部材/ジョイントの場所)を検出又は測定するよう構成された装置を含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
図4は、本明細書の実施形態による、物体の検出、識別、及び取り出しのための方法及び操作の全体的な流れを示す、フロー図を提供する。物体検出、識別、及び取り出しの方法4000は、本明細書に記載されるサブ方法及び操作の特徴の任意の組み合わせを含み得る。方法4000は、物体登録処理5000、物体認識テンプレート生成方法6000、特徴生成方法8000、画像情報捕捉処理3001、仮説生成処理10000、仮説精密化方法11000、仮説検証方法13000、及び障害物検出、動作計画、及び動作実行を含むロボット制御処理15000のいずれか又はすべてを含み得る。実施形態では、物体登録処理5000、物体認識テンプレート生成方法6000、及び特徴生成方法8000は、ロボット動作の文脈外で、前処理又はオフライン環境で行われてもよい。したがって、これらの処理及び方法は、ロボットによる後のアクションを容易にするために事前に行われてもよい。画像情報捕捉処理3001、仮説生成処理10000、仮説精密化方法11000、仮説検証方法13000、及びロボット制御処理15000は、それぞれ、容器から物体を検出、識別、及び取り出すためのロボット操作の文脈で行われてもよい。
図5は、物体登録処理5000の間に生成、取得、受信、又はその他の方法で取得され得る、物体の種類に関連する物体登録データを示す。上述したように、本明細書に記載される方法及びシステムは、物体登録データ5001、例えば、物体5011に関連する既知の、以前に記憶された情報を取得し、使用して、物理的シーンにおける類似の物体を識別及び認識する際に使用するための物体認識テンプレートを生成するように構成される。物体登録データ5001は、物体モデル4200を識別し、物体モデル4200に関連付け、及び/又は物体モデル4200を説明する、任意の種類のコンピュータ可読情報を含み得る。物体モデル4200の物体登録データ5001は、物体5011を表してもよく、物体モデル4200は、表される物体5011の測定値及び寸法を提供し、相互作用的であってもなくてもよい二次又は三次元フォーマットである。物体登録データ5001は、例えば、CAD(すなわち、コンピュータ支援設計)データ、又は物体モデル4200を説明し、任意の適切なフォーマットで記憶された他のモデリングデータを含み得る。登録データは、ソリッドCADモデル、ワイヤフレームCADモデル、又はサーフェスCADモデルであってもよい。一実施形態では、登録データは、FBX、OBJ、USD、STL、STEP、COLLADEなどの任意の種類の三次元ファイル形式であってもよい。物体モデル4200は、一つ以上の物理的物体を表す。物体モデル4200は、物理的に世界内に存在する一つ以上の対応する物体5011のモデル化(すなわち、コンピュータが記憶した)バージョンである。図5に示すように、物体5011は、物理的世界に存在する物理的物体であり、物体モデル4200は、物体登録データ5001によって説明される物体5011のデジタル表現である。示される物体5011は、例えば、ロッド、バー、ギア、ボルト、ナット、ねじ、くぎ、リベット、ばね、鎖、歯車、又は任意の他の種類の物理的物体、ならびに複数の物体のアセンブリを含む、任意の物体であってもよい。実施形態では、物体5011は、例えば、数グラム~数キログラムの範囲の質量、及び例えば、5mm~500mmの範囲のサイズを有する、容器(例えば、ビン、箱、バケツなど)からアクセス可能な物体を指し得る。物体モデル4200は、例えば、特定の長さ、ねじ山の数、ねじ山のサイズ、ヘッドサイズなどを有するねじなど、現実世界の物体5011の正確なバージョンに特有であってもよい。例えば、及び例示的な目的として、この説明は、物体5011としてのねじ形状の物体を指す。これは、利便性のみを目的として提示されており、いかなる方法でも説明の範囲を制限することを意図していない。
いくつかの実施形態では、本開示は、シーン5013内の物体5012を識別するための物体認識テンプレートセットの生成に関する。物体登録データ5001は、物理的物体5011に基づいてもよく、物理的物体5011に類似する(及び、そのコピー又はバージョンであってもよい)他の物理的物体5012の認識を容易にするために使用されてもよい。シーン内の物体5012を識別することは、物体5012が対応する(例えば、物体5012が何であるかを識別する)物体モデル4200を識別すること、物体5012の姿勢を識別する(例えば、物体5012の位置、角度、及び配向を識別する)ことを含み得る。
図6は、物体認識テンプレートセットを生成するための、例示的な物体認識テンプレート生成方法6000のフロー図を示す。一実施形態では、物体認識テンプレート生成方法6000は、例えば、図2A~2Dの計算システム1100(又は1100A/1100B/1100C)、又は図3A~3Bの計算システム1100、あるいはより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、計算システム1100は、非一時的コンピュータ可読媒体(例えば、1120)に記憶された命令を実行することによって、物体認識テンプレート生成方法6000を実行し得る。例えば、命令によって、計算システム1100に、物体認識テンプレート生成方法6000を行い得る、図2Dに示されたモジュールのうちの一つ以上を実行させてもよい。例えば、実施形態では、物体認識テンプレート生成方法6000のステップは、物体登録モジュール1130によって実施されてもよく、テンプレート生成モジュール1132は、協働して物体認識テンプレートを生成するように処理してもよい。
物体認識テンプレート生成方法6000のステップは、物体認識テンプレート生成を達成するために利用されてもよく、これは後で特定のタスクを実行するための特定の連続ロボット軌道と共に使用されてもよい。一般的な概要として、物体認識テンプレート生成方法6000は、物体のピッキングに関する処理のためのシーン内の物体を識別するのに使用するために、計算システム用の物体認識テンプレートのセットを計算システム1100に生成させるように処理してもよい。物体認識テンプレート生成方法6000は、図7A及び7Bをさらに参照して以下に説明される。
少なくとも一つの処理回路1110は、複数の物体認識テンプレート4300を含み得る物体認識テンプレートセット4301を生成するための、物体認識テンプレート生成方法6000の特定のステップを実行し得る。物体認識テンプレート生成方法6000は、物体5011を表す物体モデル4200の物体登録データ5001を取得することを含む、処理6001で始まるか、又はこれを含んでもよい。
処理6001では、物体認識テンプレート生成方法6000は、物体5011を表す物体登録データ5001を取得することを含んでもよく、物体登録データ5001は、物体5011を表す物体モデル4200を含んでもよい。少なくとも一つの処理回路1110は、三次元空間4100における物体モデルの複数の視点4120を決定し得る。少なくとも一つの処理回路1110はさらに、複数の視点4120の各々で、物体モデル4200の複数の外観4140を推定し得る。ロボットシステムは、複数の外観に従って、複数の物体認識テンプレート4300(例えば、4300A/4300B/4300C/4300D)をさらに生成してもよく、複数の物体認識テンプレート4300の各々は、複数の外観4140のそれぞれの一つに対応する。次に、少なくとも一つの処理回路1110は、複数の物体認識テンプレート4300を、後で使用するために、物体認識テンプレートセット4301としてロボットシステム又は記憶システムに伝達してもよい。複数の物体認識テンプレート4300の各々は、仮想カメラ4110の光学軸4130に対して、物体モデル4200が有し得る姿勢を表し得る。各物体認識テンプレート4300は、物体認識テンプレート4300の生成中に仮想カメラ4110の目線に対応する目線を有するカメラ1200の目線から、物体モデル4200に対応する物体5011の視野を表す。
少なくとも一つの処理回路1110は、物体登録データ5001を、それ自体のハードウェアストレージコンポーネント(すなわち、HDD、SSD、USB、CD、RAIDなど)、又はソフトウェアストレージコンポーネント(すなわち、クラウド、VSPなど)内から取得し得る。一実施形態では、少なくとも一つの処理回路1110は、外部プロセッサ(すなわち、外部ラップトップ、デスクトップ、携帯電話、又は独自の処理システムを有する任意の他の別個のデバイス)から登録データを取得し得る。
物体認識テンプレート生成方法6000は、三次元空間4100における物体モデル4200の複数の視点4120を決定することを含み得る処理6003をさらに含み得る。これは、空間サブサンプリング手順と呼ばれ得る。物体モデル4200を囲む三次元空間4100は、表面4101によって囲まれてもよい。三次元空間4100及び表面4101は、これも仮想実体である物体モデル4200を囲む仮想実体である。処理6003で決定される複数の視点4120の各々は、三次元空間4100を囲む表面4101上の仮想カメラ4110、及び仮想カメラ4110の光学軸4130の周りの仮想カメラ4110の回転角の位置に対応するか、又はそれらを表してもよい。したがって、表面4101上の各位置は、複数の視点4120に対応し得る。
空間サブサンプリング手順で使用される仮想カメラ4110は、仮想カメラ4110が位置する視点4120から物体の外観を捕捉してもよい。例えば、図7Aに示すように、個々の視点4120Aに位置する仮想カメラ4110は、物体モデル4200の外観4140を捕捉してもよい。外観4140は、仮想カメラ4110の光学軸の周りの仮想カメラ4110の画角及び回転に基づいて、物体モデル4200の仮想カメラ4110への外観を説明する情報を含む。物体モデル4200は、この三次元空間4100内に固定されてもよい。一実施形態では、三次元空間は実質的に球状であってもよい。物体モデル4200はさらに、実質的に球状の三次元空間の中心又はほぼ中心に固定されてもよい。別の実施形態では、三次元空間は、楕円体、又は平行六面体など、任意の他の適切な三次元形状であってもよい。物体モデル4200は、三次元空間内の中央又は非中央のいずれかの点に固定されてもよい。(例えば、以下でさらに論じるように処理6007を介して)生成された個々の物体認識テンプレート4300A/4300B/4300C/4300Dなどの各々は、複数の視点4120の一つの視点4120からの物体モデル4200の一つの捕捉された外観4140に対応し得る。各物体認識テンプレート4300は、物体の姿勢、すなわち、物体の配向及び可視表面などを捕捉する視点4120からの物体モデル4200の外観4140を含み得る。一実施形態では、複数の視点4120の各々は、さらに、三次元空間4100内の仮想カメラ4110の回転角度、すなわち、その光学軸4130に対する、1~360°のカメラの回転角度に相当し得る。
処理6003は、対応する物体認識テンプレート4300が物体認識テンプレートセット4301に含まれる、視点4120を選択するために実行される空間サブサンプリング手順を含み得る。物体認識テンプレート生成方法6000の効率は、物体認識テンプレート4300が生成される空間(例えば、視点4120及び外観4140の数)を低減又はその他の方法で最適化することによって、増大又は最大化され得る。実施形態では、過剰な視点4120は、それらの視点4120で物体外観4140を最初に捕捉した後に排除され得る。例えば、過剰な視点4120は、(例えば、対称性に起因して)他の視点4120と実質的に類似した情報を含有すると判定された場合に排除され得る。実施形態では、過剰な視点4120は、以下で論じるように、姿勢、間隔などに関する所定の決定に基づいて、物体外観4140の捕捉の前に排除され得る。実施形態では、選択された視点4120の数及び隣接する視点4120の間の間隔の距離は、例えば、問題となる物体モデル4200の複雑さ及び/又は対称性に基づいて、必要とされる物体認識テンプレート4300の数に依存し得る。
複数の視点4120は、いくつかの異なる方法に従って選択又は決定され得る。例えば、少なくとも一つの処理回路1110は、経度の円4170及び緯度の円4180の交差に従って、視点4120を決定し得る。視点4120は、三次元空間4100の表面4101にわたる経度の円4170及び緯度の円4180の交差に位置し得る。こうした選択スキームでは、高密度の視点4120は、表面4101の極に、又はその近くにクラスタ化されてもよく、低密度の視点は、交差する経度の円及び緯度の円の周りに、極からさらに離れて(例えば、表面4101の赤道に近く)形成してもよい。サンプル位置のこうした不均一な分布は、複数の物体認識テンプレート4300を、仮想カメラ4110と物体モデル4200との間の相対的姿勢/配向の一つの範囲又は範囲のセットを過剰に表し、別の範囲又は範囲のセットを過小に表させ得る。こうした選択は、一部の物体モデル4200を有する一部のシナリオでは有利であり、その他のシナリオではあまり有利ではない場合がある。
さらなる実施形態では、複数の視点4120は、三次元空間4100を囲む表面4101にわたる均等分布に従って選択され得る。均等分布は、表面4101にわたって互いに等しい距離で分布されている視点4120を指し得る。均等分布は、不均一な分布よりもより一貫性のあるテンプレート生成を提供してもよく、対称性を欠く物体に対して好ましい場合がある。
いくつかの実施形態では、複数の視点4120は、視点4120の総数を減少させるように、及び/又は特定の視点を支持するために、視点分布を重み付け又は偏らせるように選択され得る。
一実施形態では、複数の視点4120は、物理的状況において複数の物体5011に対して観察されることが期待される、予測可能な姿勢の範囲に基づいて決定され得る。例えば、いくつかの先細りボトルを保持する容器では、ボトルの姿勢は、より広い端又は基端が下向きに面するようにすることが期待され得る。したがって、視点分布は、表面4101の上半分により多くの視点4120を有するように偏らせる又は重み付けされ得る。
別の実施形態では、複数の視点4120は、物体モデル4200の対称性(又はその欠如)に基づいて決定され得る。物体モデル4200の対称性は、物体モデル4200の回転後に、物体モデル4200の外観4140が、物体モデル4200の軸の周りの度数によって変化するかどうかに基づいて判定され得る。例えば、180度回転の後に実質的に同じように見える物体モデル4200は、双方向対称性を有する。120度回転の後に実質的に同じように見える物体モデル4200は、三方対称性を有する。90度回転の後に実質的に同じように見える物体モデル4200は、四方対称性を有する。60度の回転の後に実質的に同じように見える物体モデル4200は、六方対称性を有する。異なる物体に対して他の対称性が可能であってよい。実質的に同じ外観は、類似性の閾値に従って決定され得る。
物体認識テンプレート生成方法6000は、複数の視点4120の各々で、物体モデル4200の複数の外観4140を推定又は捕捉することを含む、処理6005をさらに含み得る。複数の外観4140の推定は、複数の視点4120の各視点4120で行われてもよい。各外観4140は、それぞれの視点4120に見られるように、物体モデル4200の姿勢又は配向を含む。物体認識テンプレート4300の各々は、複数の視点4120のそれぞれの視点4120に対応し、それぞれの視点4120からの物体モデル4200の外観4140を表す情報を含む。例えば、物体認識テンプレート4300は、物体モデルの真上に(すなわち、三次元平面のY軸に沿って)配置される仮想カメラ4110に対応する、それぞれの視点4120からの物体モデル4200のそれぞれの外観4140に対応するか、又は表すことができる。別の例では、物体認識テンプレート4300は、物体モデル4200の直接左に(すなわち、三次元平面のX軸に沿って)配置される仮想カメラ4110に対応する、それぞれの視点4120からの物体モデルのそれぞれの外観4140に対応してもよい。一実施形態では、物体認識テンプレートセット4301の物体認識テンプレート4300の各々は、物体モデル4200の周りの多数の異なる位置及び配向(すなわち、三次元平面内の多数の位置)に配置される仮想カメラ4110に対応する複数の視点4120のそれぞれの視点4120からの、物体モデル4200の複数の外観4140のそれぞれの外観4140に対応するか、又は表すことができる。したがって、複数の外観4140を推定することは、特定の視点から特定の配向で観察されたときに、物体モデル4200がどのように見えるかを決定するか、又は推定することを含み得る。例えば、視点は、物体モデル4200の直接的な下向きの外観、上向きの外観、左向きの外観、右向きの外観、又は三次元空間4100を囲む表面4101のならびに表面4101上の主軸X、Y、及びZの間の任意の角度/位置を含み得る。上で論じたように、各視点4120はまた、1~360°のカメラの光学軸4130に対する仮想カメラ4110の回転角を含んでもよい。したがって、各カメラ位置は、視点4120のセットに対応してもよく、視点のセットの各視点4120はさらに、仮想カメラ4110の異なる回転角に対応してもよい。例えば、視点4120のセットの二つの別個の視点4120は、表面4101の主軸X、Y、及びZの間の同じ角度/場所から推定又は捕捉され得るが、第一の視点4120の回転角は、第二の視点4120の回転角に対して45°回転される。
物体認識テンプレート生成方法6000は、複数の外観4140に基づいて、複数の物体認識テンプレート4300が生成される処理6007をさらに含み得る。複数の物体認識テンプレート4300の各々は、複数の外観4140のそれぞれの一つに対応する。したがって、生成された物体認識テンプレート4300は、物体モデル4200に対して、特定の姿勢で、ならびに仮想カメラ4110の特定の角度及び/又は回転で、物体モデル4200を表す情報を含み得る。したがって、複数の物体認識テンプレート4300の各々は、複数の物体認識テンプレート4300の他のものと異なっていてもよい(ただし、一部のシナリオでは、二つの異なる物体認識テンプレート4300は、視点4120の選択で説明されない物体モデル4200の対称性に起因して、実質的に同じ情報を含み得る)。
各物体認識テンプレート4300は、捕捉された又は推定されたそれぞれの外観4140に従って生成される2D外観4302及び3D外観4303を含み得る。2D外観4302は、例えば、レイトレーシング及び不連続検出技術に従ってレンダリングされ得る、レンダリングされた二次元画像を含み得る。3D外観4303は、例えば、図2Fに関連して説明された3D画像情報2700に類似のレンダリングされた3D点群を含む。
一部の実施形態では、2D外観4302及び/又は3D外観4303は、レイトレーシング技術を介して生成され得る。レイトレーシング処理は、物体モデル4200の表面に当たる、仮想カメラ4110の目線からの様々な光線をシミュレートし得る。これはさらに、光線が物体モデル4200の表面に当たる角度、光線が物体モデル4200の表面に移動する距離、及び/又は拡散反射(複数の角度で偏向された光線がそのように実施される)又は鏡面反射(偏向された光線が単一の角度でそのように実施される)の影響を決定し得る。物体モデル4200の表面から反射された偏向された光線の角度は、物体の表面法線の角度の変化を示し得る。物体の表面法線の角度のこうした変化は、物体のエッジで発生し得る。
物体モデル4200に対して生成される複数の物体認識テンプレート4300の総数は、およそ100個のテンプレートから3200個のテンプレートの範囲であってもよく、このテンプレートの数が多いほど、複数の物体認識テンプレート4300が生成される物体モデル4200の複雑さに相関してもよい。引用された数は、いくつかの用途及びいくつかの物体の種類に共通するが、本発明の範囲から逸脱することなく、より多くの又はより少ないテンプレートを使用してもよい。例えば、実質的に対称的な外観(例えば、ねじ付きナット)を呈する物体モデル4200は、多数の冗長テンプレート(すなわち、合致するテンプレート)又は実質的に同じテンプレートを生成する。したがって、こうした単純な物体モデル4200は、わずか100個のテンプレート、又は100~3200個のテンプレートの範囲の下半分の任意の数のテンプレートを生成することができる。逆に、対称性を欠く物体モデル4200は、より大きい実行可能な角度で物体モデル4200を適切に表すために、より多くの物体認識テンプレート4300を必要とし得る。
物体認識テンプレート生成方法6000は、物体認識テンプレートセット4301として、複数の物体認識テンプレート4300をロボット制御システムに伝達することを含む処理6009をさらに含み得る。物体認識テンプレートセット4301は、計算システム1100、任意の他の種類のロボット制御システム、及び/又は物体認識テンプレート4300を採用し得る任意の他のシステムなどのロボット制御システムに伝達されてもよい。実施形態では、物体認識テンプレートセット4301を伝達することは、任意の適切なネットワーキングプロトコル及び/又は記憶装置を介して、ロボット制御システム、又は物体認識テンプレートを採用できる他のシステムによって後でアクセスするための任意の時間の間、メモリ又は他の記憶装置への直接伝達を含み得る。物体認識テンプレートセット4301内の複数の物体認識テンプレート4300の各々は、特定の視点4120に位置するとき、物体モデル4200が仮想カメラ4110の光学軸4130に対して有し得る姿勢を表す。前述したように、姿勢は、任意の位置角度及び回転角度を含み得る。
上述のように、本発明の物体認識テンプレート生成方法6000は、物体登録データ5001から物体認識テンプレートセット4301を生成することを含む。物体認識テンプレートセット4301は、物理的処理中に、一つ以上の物体5011を掴む、持ち上げる、あるいはこれと相互作用する、シーン内の一つ以上の物体5011を識別するために使用され得る。物体5011を表す物体モデル4200の物体登録データ5001を取得する。三次元空間4100における物体モデル4200の複数の視点4120が決定される。複数の視点4120のそれぞれにおける物体モデルの外観4140は、推定又は捕捉される。複数の物体認識テンプレート4300は、複数の外観4140に従って生成され、複数の物体認識テンプレート4300の各々は、複数の外観4140のそれぞれの一つに対応する。複数の物体認識テンプレート4300は、物体認識テンプレートセット4301としてロボット制御システムに伝達される。複数の物体認識テンプレート4300の各々は、仮想カメラ4110の光学軸4130に対して、物体モデル4200が有し得る姿勢を表す。したがって、複数の物体認識テンプレート4300の各々は、物理的シーン内の物体5011の画像情報(例えば、画像情報2600/2700)を生成するカメラ(カメラ1200など)の光学軸に対する、物理的シーンにおける物体5011の潜在的な姿勢に対応し得る。
さらなる実施形態において、追加又は代替的な方法は、物体登録データ5001から物体認識テンプレートセット4301を生成するために使用されてもよく、物体認識テンプレート4300は、2D外観4302及び3D外観4303に追加又は2D外観4302及び3D外観4303とは異なる情報を含んでもよい。具体的には、物体認識テンプレート4300は、二次元(2D)測定情報4304及び三次元(3D)測定情報4305を含み得る。
2D測定情報4304は、勾配特徴マップを指し得る。勾配特徴マップは、以下に説明するように、デジタル物体の表面上の一つ以上の勾配抽出位置5100で、物体のデジタル表示から捕捉又は抽出された勾配情報9100を含み得る。3D測定情報4305は、表面法線特徴マップを指し得る。表面法線特徴マップは、以下に説明するように、デジタル物体の表面上の一つ以上の表面法線位置5101で、物体のデジタル表示から捕捉又は抽出された表面法線ベクトル9101を含み得る。2D測定情報4304及び3D測定情報4305の生成及び/又は抽出は、図8~9Cに関して以下でより詳細に説明される。
図8は、例示的な特徴生成方法8000のフロー図を示す。実施形態では、特徴生成方法8000は、物体認識テンプレートセット及び/又は複数の物体認識テンプレートを生成するために使用され得る。さらなる実施形態では、以下でより詳細に論じるように、特徴生成方法8000を使用して、仮説生成、精密化、及び検証方法における物体画像情報から特徴を抽出してもよい。一実施形態では、特徴生成方法8000は、例えば、図2A~2Dの計算システム1100(又は1100A/1100B/1100C)、又は図3A~3Bの計算システム1100によって、又はより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、計算システム1100が、非一時的コンピュータ可読媒体(例えば、1120)上に記憶された命令を実行することによって、特徴生成方法8000を行ってもよい。例えば、命令によって、計算システム1100に、特徴生成方法8000を行い得る、図2Dに示されたモジュールのうちの一つ以上を実行させてもよい。例えば、実施形態では、特徴生成方法8000のステップは、物体登録モジュール1130、物体認識モジュール1121、特徴抽出モジュール1134、及び一緒に動作するテンプレート生成モジュール1132によって行われてもよい。
実施形態では、特徴生成方法8000のステップは、例えば、特徴生成及び/又は抽出方法を通して、物体認識テンプレート生成を達成するために利用されてもよく、これは、特定のタスクを実行するための特定の連続ロボット軌道と併せて後で使用されてもよい。実施形態では、特徴生成方法8000のステップを適用して、仮説生成、精密化、及び検証で使用するための物体画像情報から特徴を抽出又は生成してもよい。一般的な概要として、特徴生成方法8000は、物体の持ち上げに関連する処理のためにシーン内の物体を識別する際に使用するために、計算システム(例えば、計算システム1100又は類似の計算システム)用の物体認識テンプレート、特徴マップ、及び/又は抽出/生成された特徴のセットを、計算システム1100に生成させるように処理してもよい。特徴生成方法8000は、図7A及び7Bならびに図9A~9Cをさらに参照して以下に説明される。
特徴生成方法8000は、物体認識テンプレート4300を生成するため、及び/又は物理的シーン5013内の物体5012(例えば、図3Bを参照)を特徴付けるために使用され得る2D測定情報4304及び3D測定情報4305を含み得る。少なくとも一つの処理回路1110は、物体情報9121を取得してもよい。図9Aに示すように、物体情報9121は、デジタルで表される物体9200、例えば、物体モデル4200の物体登録データ5001、物体モデル4200の外観4140、物体認識テンプレート4300、及び/又はシーン情報9131を含み得る。シーン情報9131は、例えば2D画像情報2600及び/又は3D画像情報2700に類似した、複数の物体5012を含む物理的シーン5013の捕捉された2D又は3D画像情報を含み得る。シーン情報9131はまた、仮説生成、検証、ならびに精密化の方法及び処理に関して以下で論じる画像情報12001を含んでもよい。少なくとも一つの処理回路1110はさらに、物体情報9121から2D測定情報4304及び/又は3D測定情報4305を抽出又は生成し得る。実施形態では、少なくとも一つの処理回路1110は、2D測定情報4304及び3D測定情報4305に従って、物体認識テンプレート4300をさらに生成してもよい。実施形態では、2D測定情報4304及び3D測定情報4305は、仮説生成、検証、及び精密化などの代替的な目的のために使用又は利用され得る。少なくとも一つの処理回路1110は、物体認識テンプレートセット4301を生成するための、及び/又は仮説精密化及び検証で使用するための特徴生成方法8000の特定のステップを実行し得る。
処理8001では、特徴生成方法8000は、物体情報9121の取得を含み得る。物体情報9121は、デジタルで表される物体9200を含み得る。物体情報9121及びデジタルで表される物体9200は、物理的に世界に存在する物体5015を表し得る。物体5015は、例えば、物体5011(例えば、物体モデル4200によって表される物理的物体)及び/又は物体5012(例えば、物理的シーン5013の捕捉された画像情報によって表される物理的物体)を含み得る。実施形態では、物体情報9121は、物体認識テンプレート4300、物体登録データ5001、物体外観4140及び/又はシーン情報9131のうちの一つ以上を含み得る。少なくとも一つの処理回路1110は、計算システム1100のハードウェアストレージコンポーネント(すなわち、HDD、SSD、USB、CD、RAIDなど)、又はソフトウェアストレージコンポーネント(すなわち、クラウド、VSPなど)内から、物体情報9121を取得し得る。少なくとも一つの処理回路1110は、内部処理の一部として、例えば、物体認識テンプレート4300として、物体情報9121を取得してもよい。少なくとも一つの処理回路1110は、計算システム1100に関連付けられたカメラ1200から物体情報9121を取得し得る。少なくとも一つの処理回路1110は、外部のプロセッサ(すなわち、外部のラップトップ、デスクトップ、携帯電話、又は独自の処理システムを有する任意の他の別個の装置)又は外部の記憶装置から、物体の物体情報9121を取得し得る。
処理8003では、特徴生成方法8000は、勾配抽出位置5100(図9Bに示す)及び表面法線位置5101(図9Cに示す)を含む特徴位置を選択することをさらに含み得る。勾配抽出位置5100は、2D測定情報4304の抽出又は生成のために選択される位置である。表面法線位置5101は、3D測定情報4305の抽出又は生成のために選択される位置である。勾配抽出位置5100及び表面法線位置5101の各々は、デジタルで表される物体9200の表面9122上の位置である。
実施形態では、勾配抽出位置5100及び表面法線位置5101は、互いに対応してもよい。実施形態では、一部の勾配抽出位置5100は、一部の表面法線位置5101に対応してもよく、一方、その他の勾配抽出位置5100は、表面法線位置5101に対応しない。さらなる実施形態において、勾配抽出位置5100及び表面法線位置5101は、互いに重ならないように選択されてもよい。したがって、勾配抽出位置5100及び表面法線位置5101は、完全な重なり及び重なりなしを含む、任意の量の重なりを有し得る。
実施形態では、勾配抽出位置5100及びデジタル的に表される物体9200の表面9122上の表面法線位置5101の位置は、抽出又は生成された2D測定情報4304及び3D測定情報4305を記憶するために必要なメモリ量を制限するために、限定セットとして選択され得る。このメモリ保存の実践は、デジタルで表される物体9200の物体情報9121のサイズ(バイト単位)に関係なく、抽出及び/又は分析された、全特徴の固定数(以下に説明するように、勾配情報9100及び/又は表面法線ベクトル9101など)を指し得る線形モダリティと呼んでもよい。2D測定情報4304のために捕捉された特徴の数は、3D測定情報4305のために捕捉された特徴の数と同一であってもよく、又は異なってもよい。
実施形態では、限定された数の勾配抽出位置5100及び表面法線位置5101は、効率的な結果を生成するように位置してもよい。例えば、勾配抽出位置5100は、図9Bに示すように、デジタルで表される物体9200の識別されたエッジに沿って位置してもよいが、表面法線位置5101は、デジタルで表される物体9200のエッジから離れて位置してもよい。実施形態では、デジタルで表される物体9200のエッジは、例えば、レイトレーシング、ピクセル強度不連続性、又は他の分析技術に従って識別されてもよい。これは、以下に説明するように、勾配情報9100が、物体エッジの近くで捕捉されたとき仮説生成、検証、及び精密化においてより有意であり得る一方、表面法線ベクトル9101がエッジから離れて捕捉されたときにより有意であり得るため、効率的であると証明され得る。選択される勾配抽出位置5100及び表面法線位置5101の組み合わせ数は、100~1000、50~5000、及び/又は10~1000の範囲であり得るが、より多いか、又はより少いのも、同様に適切であり得る。特定の実施形態では、勾配抽出位置5100及び表面法線位置5101の数は、それぞれ256であってもよく、又は合計で256であってもよい。
処理8005では、特徴生成方法8000は、物体情報9121から2D測定情報4304を抽出することをさらに含み得る。2D測定情報4304は、メモリ又は他のリソースを節約するために、及び/又は物体認識テンプレートセット4301が生成されるか、又は仮説検証及び精密化が実施される速度を改善するために、物体5015を表すために、(例えば、2D外観4302と比較して)より小さな情報セットを表し得る。上述のように、物体認識テンプレートセット4301からの物体認識テンプレート4300は、物体5015を説明する2D測定情報4304(及び/又は3D測定情報4305)を含み得る。
2D測定情報4304は、物体情報9121から抽出又は生成される二次元特徴を含み得る。一実施形態では、2D測定情報4304を抽出又は生成することは、物体情報9121から勾配情報9100を抽出することを含み得る。したがって、2D測定情報4304は、本明細書に記載されるように勾配情報9100を含む勾配特徴マップを含み得る。勾配情報9100は、デジタルで表される物体9200のエッジ5110の方向又は配向を示す。勾配情報9100は、デジタル的に表される物体9200の複数の勾配抽出位置5100で抽出されてもよい。勾配抽出位置5100は、デジタルで表される物体9200内で識別される、任意の又はすべての内部及び外部のエッジを表すことができる。
勾配情報9100を抽出することは、物体情報9121の二次元画像情報のピクセル強度を解析して、各勾配抽出位置での二次元画像情報のピクセル強度が、勾配抽出と呼ばれるプロセスにおいて変化する方向(例えば、矢印9150によって表される)を測定することを含み得る。ピクセル強度の変化は、デジタルで表される物体9200の表面及びエッジの輪郭及び配向を表してもよく、したがって、二つのデジタルで表される物体9200を比較するのに役立ち得る情報を提供する。エッジ5110に沿った互いの近くの位置は、類似の勾配情報9100を有する可能性が高く、例えば、こうした隣接位置の近くのピクセル強度は、エッジ5110からの距離の増加と共に同様の方法で変化する。一部の実施例では、平均よりも高いピクセル強度を提示するデジタルで表される物体9200の一部分は、エッジ5110又は他の識別可能な特徴を示し得る。上述のように、一部の実施例では、勾配抽出位置5100は、デジタルで表される物体9200のエッジ5110に沿って配置されてもよい。
一実施形態では、抽出された勾配情報9100は、テンプレートマッチング処理、仮説生成、又は仮説検証処理を改善するために使用され得るが、これは、物体認識テンプレートセット4301からの物体認識テンプレート4300が、シーン内の物体5012に合致するかどうかを判定し得る。例えば、2D外観4302が、シーンからデジタルで表される物体9200と重なる又は交差する特定の部分を有する場合、少なくとも一つの処理回路1110は、合致する部分も合致する、又は類似の勾配(例えば、2D測定情報4304の一部分が合致するか否か)を提示するか否かを判定し得る。勾配が異なるか、又は合致しない場合、少なくとも一つの処理回路1110は、異なる特定の部分が不一致の結果であるか、又は偶然であると判定し得る。不一致は、シーンの一部分をわずかな量だけ重ねる2D外観4302の結果であり得る。
例えば、ここで図9Dを参照すると、物体認識テンプレート4300Aの2D外観4302Aは、長方形によって表され、物体認識テンプレート4300Aの2D測定情報4304A(例えば、勾配情報9100)は矢印によって表される。シーン内の物体5012の2D画像情報2600B(物理的物体は図示せず)は、L字型の固体によって表される。物体5012はさらに、矢印で表される2D測定情報4304Bによって表される。2D外観4302Aの一部分は、シーン内の物体5012を表す2D画像情報2600B(物理的物体は図示せず)のパターン化された部分9309と比較され、重ねられてもよい。しかしながら、2D測定情報4304A及び4304Bによって表される勾配は合致せず、したがって、少なくとも一つの処理回路1110によって、物体認識テンプレート4300Aは、シーン5013内の物体5012に対して不適合であると判定されてもよい。
処理8007では、特徴生成方法8000は、物体情報9121から3D測定情報4305を抽出又は生成することをさらに含み得る。ここで図9Cを参照すると、処理8007は、表面法線位置5101で表面法線ベクトル9101を決定することを含み得る。3D測定情報4305は、抽出又は生成された表面法線ベクトル9101を含む表面法線特徴マップを含み得る。
抽出された3D測定情報4305は、表面法線ベクトル情報、例えば、デジタルで表される物体9200の表面9122上にある表面法線位置5101で取られた法線ベクトル(表面に対して垂直なベクトル)であってもよい表面法線ベクトル9101を記述する測定値を含んでもよい。一実施形態では、3D測定情報4305を抽出又は生成することは、物体情報9121から表面法線ベクトル9101及び/又は表面法線ベクトル情報を抽出又は生成することを含む。表面法線ベクトル9101は、デジタルで表される物体9200の表面9122に対して法線の複数のベクトルを記述する。表面法線ベクトル9101は、デジタルで表される物体9200の複数の表面法線位置5101で抽出又は生成されてもよい。表面法線ベクトル9101を抽出することは、表面法線ベクトル位置5101のそれぞれで、デジタルで表される物体9200の複数の表面法線ベクトル9101を識別することを含み得る。
処理8009では、特徴生成方法8000は、物体認識テンプレートセット4301又は複数の物体認識テンプレート4300を生成することを含み得る。少なくとも一つの処理回路1110は、上述の2D測定情報4304及び3D測定情報4305を含む、一つ以上の物体認識テンプレート4300を生成し得る。一つ以上の物体認識テンプレート4300は、物体認識テンプレートセット4301を形成し得る。上述のように、物体認識テンプレート4300は、2D測定情報4304、3D測定情報4305、2D外観4302、及び3D外観4303のうちの一つ以上を含み得る。したがって、いくつかの実施形態では、特徴生成方法8000は、以前に確立された物体認識テンプレート4300及び物体認識テンプレートセット4301を増強又はさらに開発してもよい。抽出又は生成された3D測定情報4305及び2D測定情報4304は、以下で論じるように、リアルタイム又はほぼリアルタイムの持ち上げ処理中に、シーン内の物体5012を識別するために使用され得る。特徴生成方法8000は、後でシーン(又はシーン内の物体)に対して合致する(仮説精密化及び検証)処理を実行するために、物体認識テンプレートセット4301を生成する際に上述の物体認識テンプレート生成方法6000と並行して、又はその後に続いて作業又は処理してもよい。特徴生成方法8000は、後の仮説処理(例えば、以下でさらに詳細に説明される方法11000及び方法13000など)で使用される物体認識テンプレートセット4301の作成に向けた最終ステップとして役立ち得る。
図10A及び10Bは、本明細書の実施形態と一致する、テンプレートの合致及び仮説生成方法10000の態様を示す。本明細書で論じる仮説生成技術は、概してlineMod技術と一致し得る。
処理10001では、テンプレートマッチング及び仮説生成方法10000は、画像情報の取得を含み得る。一実施形態では、画像情報12001を取得することは、シーン5013及びシーン内の一つ以上の物体5012の画像を捕捉することを含み得る。こうした実例では、画像情報12001が、箱、ビン、ケース、木枠、パレット、又は他の容器内に位置する物体5012を表し得る。画像情報12001は、本明細書で論じるように、カメラ1200によって取得されてもよい。
少なくとも一つの処理回路1110は、画像情報12001を使用して、カメラ1200の視野内の個々の物体を区別し、画像情報12001に基づいて物体認識を行うなどにより、画像情報12001を生成、受信、及び/又は処理するように構成され得る。一実施形態では、画像情報12001は、カメラ1200の視野における環境又はシーン5013の視覚的な外観を記述する二次元画像情報(例えば、2D画像情報2600に類似)を含み得る。一実施形態では、画像情報12001は、カメラ1200の視野内のシーン5013の点群、空間構造情報、奥行きマップ、又は他の三次元画像を提供する、三次元画像情報(例えば、3D画像情報2700に類似)を含み得る。この例の三次元画像情報は、物体5012が三次元空間(例えば、シーン5013)の中で空間的にどのように配置されるかを推定するために使用され得る。画像情報12001の取得は、シーン5013を表す画像情報12001の生成又は取得を含んでもよく、必要に応じて、シーン5013内の個々の物体5012又は複数の物体5012を表す物体画像情報12002の生成又は取得を含んでもよい。画像情報12001は、物体5012がカメラ1200の視野にある(又はあった)ときに、カメラ1200によって生成されてもよく、例えば、二次元画像情報及び/又は三次元画像情報を含み得る。
一実施形態では、画像情報12001は、二次元グレースケール又はカラー画像を含んでもよく、カメラ1200の視点からのシーン5013(及び/又はシーン内の物体5012)の外観を記述してもよい。一実施形態では、画像情報12001は、カラー画像の単一色チャネル(例えば、赤、緑、又は青色のチャネル)に対応し得る。カメラ1200が物体5012の上方に配置される場合、二次元画像情報は、物体5012のそれぞれの上部表面の外観を表し得る。さらに、画像情報12001は、例えば、物体5012の一つ以上の表面(例えば、上部表面、又は他の外側表面)上の、又は物体5012の一つ以上のエッジに沿った様々な物体位置6220のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る、三次元画像情報を含み得る。物体画像情報12002の二次元画像情報及び三次元画像情報は、それぞれ、2D画像情報12600及び3D画像情報12700と呼んでもよい。一部の実施形態では、物体5012の物理的エッジを表す物体位置6220は、個々の物体5012を表すことに限定される物体画像情報12002を識別するために使用され得る。
物体画像情報12002は、シーン5013内の特定の物理的物体5012に関連する画像情報を含み得る。物体画像情報12002は、画像情報2600に類似の、物体5012を表す2D画像情報12600を含み得る。物体画像情報12002は、画像情報2700に類似の、物体5012を表す3D画像情報12700を含み得る。物体画像情報12002は、物体位置6220を含んでもよく、物体位置6220は、例えば、特徴生成方法8000を介して、それぞれの勾配情報8102及び表面法線ベクトル8103が取得される位置を表す勾配抽出位置8100及び表面法線位置8101をさらに含んでもよい。勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103は、上述したように、勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103が、物理的物体から得られた画像情報から取得されることを除いて、勾配抽出位置5100、表面法線位置5101、勾配情報9100、及び表面法線ベクトル9101と類似していてもよい。
以下で論じるテンプレートマッチング及び仮説生成処理は、物体認識テンプレートを、画像情報12001及び/又は物体画像情報12002と比較することによって行われてもよい。実施形態では、物体画像情報12002は、画像情報12001から、例えば、上述したように、画像セグメンテーション又は他の技術、ならびに特徴生成方法8000に基づいて生成されてもよい。
処理10003では、テンプレートマッチング及び仮説生成方法10000は、テンプレートを物体画像情報に合致させることを含み得る。シーン5013内に存在する物体5012の種類(それが単一の種類であるか、又は複数の種類であるかにかかわらず)は、既知であり得る。したがって、既知の物体の種類に対応する物体認識テンプレートセット4301は、例えば、本明細書に記載される任意の方法を介して取得され得る。物体5012がどのように様々な姿勢で見えるべきかについての情報を表す物体認識テンプレートセット4301の各物体認識テンプレート4300の情報は、物体5012を表す物体画像情報12002と比較して、各物体認識テンプレート4300が合致の候補であるかを判定してもよい。次いで、検出仮説の生成のために、合致の良好な候補を選択し得る。
物体認識テンプレート4300の任意の関連情報は、物体画像情報12002の対応する情報と比較されてもよい。例えば、物体画像情報12002の勾配情報8102及び勾配抽出位置8100は、物体認識テンプレート4300の勾配情報9100及び勾配抽出位置5100と比較されてもよい。物体画像情報12002の表面法線ベクトル8103及び表面法線位置8101は、物体認識テンプレート4300の表面法線ベクトル9101及び表面法線位置5101と比較され得る。2D情報12600及び3D情報12700はそれぞれ、2D外観4302及び3D外観4303と比較されてもよい。
物体認識テンプレート4300からの、及び物体画像情報12002からの上述の情報は、情報が一連の二次元的位置に起因し得るという点で、マップとして理解され得る。テンプレートマップ(物体認識テンプレート4300の情報のいずれかを表す)は、閾値を超える合致が見つかるまで、物体マップ(物体画像情報12002のいずれかを表す)に対して横方向に摺動させることができる。テンプレートマッチングには、それぞれの勾配情報、それぞれの2D画像情報、それぞれの3D情報、及び/又はそれぞれの表面法線ベクトル情報の比較を伴い得る。
閾値を使用してもよく、公差は、物体認識テンプレート4300と物体画像情報12002との間の姿勢の潜在的な変化を説明するため許可されてもよい。上述の空間サブサンプリング手順では、物体認識テンプレート4300における全ての可能な姿勢を捕捉することは不可能であり、したがって、何らかの変形が許容されると理解され、説明され得る。こうした公差技術は、例えば、広がることを含んでもよく、それによって、勾配情報9100は、物体認識テンプレート4300の隣接する勾配抽出位置5100の間で広がり、合致の可能性を増大させる。別の公差技術は、例えば、勾配情報又は表面法線ベクトルが互いに近接しているが、完全には合致しない場合など、合致の閾値レベルに基づいて合致を見つけることを含み得る。テンプレートマッチングは、合致の品質を示すために、テンプレートマッチングスコアを生成し得る。
処理10005では、テンプレートマッチング及び仮説生成方法10000は、合致するテンプレートをクラスタリング及びグループ化して、合致の総数を低減することを含み得る。テンプレートマッチング処理は、物体画像情報12002によって表される物体に合致する、複数の物体認識テンプレート4300を見つけることができる。一部の実施形態では、テンプレートマッチング処理は、時間又は計算リソースによって、いくつの合致が識別され得るかという観点で制限され得る。こうした状況では、処理10005は、シーン5013の中の単一の部分又は一組の部分上に合致を集中させることを回避し得る。したがって、良好な品質合致(例えば、閾値を超える)を有する合致したテンプレートは、良好なシーン範囲を維持するために、クラスタ化、グループ化、及びフィルタリングされてもよい。同じ物体画像情報12002に対応するものとして識別される物体認識テンプレート4300は、クラスタ化又はグループ化されてもよい。各クラスタ又はグループの中で、最良の合致が選択されてもよく、残りは除去されてもよい。したがって、残りの合致は、単一の領域でクラスタリングするのではなく、シーン5013全体を通して物体5012を表し得る。一実施例では、シーン5013中の物体5012が容器の上部の近くにあり、非常に容易に認識できる場合、部分的に隠された物体よりも多くの合致を生成し得る。各物体画像情報12002に対して最良の合致のみを選択することによって、より多くの物体を識別できる。
処理10007では、テンプレートマッチング及び仮説生成方法10000は、一つ以上の検出仮説のセットを生成することを含み得る。クラスタリング及びグループ化後に残っている物体認識テンプレート4300は、検出仮説として選択され得る。これらの物体認識テンプレート4300は、シーン5013内の各物体認識テンプレート4300が、対応する物体画像情報に合致するように位置するべきである場所についての情報を示す姿勢情報6301とともに記憶されてもよい。姿勢情報6301は、各物体認識テンプレート4300を対応する物体画像情報12002と関連付ける情報をさらに含み得る。検出仮説6300は、グループ及び/又はセットで組み合わせられてもよい。例えば、検出仮説セット8309は、単一の物体5012を表す物体画像情報12002に関連する複数の検出仮説8300を含んでもよいが、検出仮説8300のグループは、シーン5013内の複数の異なる物体5012を表す物体画像情報12002に関連する複数の検出仮説8300を含んでもよい。
図11は、検出仮説を精密化するための例示的な仮説精密化方法11000のフロー図を示す。一実施形態では、仮説精密化方法11000は、例えば、図2A~2Dの計算システム1100(すなわち1100A/1100B/1100C)、又は図3A~3Bの計算システム1100、又はより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、計算システム1100が、非一時的コンピュータ可読媒体(例えば、1120)上に記憶された命令を実行することによって、仮説精密化方法11000を行ってもよい。例えば、命令によって、計算システム1100に、方法11000を行い得る、図2Dに示されたモジュールのうちの一つ以上を実行させてもよい。例えば、実施形態では、方法11000のステップは、仮説生成モジュール1128と、一緒に動作する仮説精密化モジュール1136とによって行われてもよい。
仮説精密化方法11000を使用して、シーン5013内に物理的に位置する物体5012を識別するために生成される、一つ以上の検出仮説6300(例えば、上述したように)を精密化してもよい。仮説精密化方法11000は、シーン5013から得られた画像情報12001について処理し得る。画像情報12001は、2D画像情報2600及び3D画像情報2700と類似してもよい。画像情報12001内には、シーン5013内の物体5012を表す一つ以上の物体画像情報12002があってよい。物体5012を識別することは、物体の種類を識別すること、又は対応する物体画像情報12002から物体の寸法を識別すること、及び/又は物体認識テンプレート4300に物体画像情報12002を合致させることを含み得る。したがって、検出仮説6300は、一つ以上の物体認識テンプレート4300のどれが、シーン5013を表す画像情報12001の物体画像情報12002と合致し得るかに関する仮説であってもよい。物体画像情報12002は、物体5012を表す2D画像情報12600を含み得る。2D画像情報12600は、画像情報2600に類似していてもよく、及び/又はレイトレーシング及び不連続検出などのレンダリング技術に従って生成されたレンダリングされた2D画像情報を含んでもよい。物体画像情報12002は、画像情報2700に類似の、物体5012を表す3D画像情報12700を含み得る。検出仮説6300は、上述のように、テンプレートマッチング手順に従って生成され得る。例えば、一実施形態では、検出仮説6300は、上述のlineModアルゴリズム及び/又は手順を介して生成されてもよい。仮説精密化方法11000は、物体認識テンプレート4300が物体画像情報12002と正確に合致しないシナリオでも、物体認識テンプレート4300と物体画像情報12002の合致を精密化するように処理してもよい。
仮説精密化方法11000では、少なくとも一つの処理回路1110が、ロボットアーム3320及びアームに接続されたエンドエフェクタ装置3330を有するロボット3300、及び視野を有し、視野内に一つ以上の物体5012がある又はあったときに、非一時的コンピュータ可読媒体に記憶されている命令を実行するように構成されるカメラ1200と通信することができる。実施形態では、少なくとも一つの処理回路1110は、ロボット3300と直接通信しなくてもよく、ネットワーク及び/又は記憶装置を介して、ロボット3300との間で情報を送受信してもよい。実施形態では、少なくとも一つの処理回路1110は、ロボット3300と直接通信してもよい。少なくとも一つの処理回路1110は、シーン5013内の一つ以上の物体5012の画像情報12001を取得し得る。少なくとも一つの処理回路1110はまた、検出仮説6300を取得してもよい。検出仮説6300は、物体認識テンプレート4300(例えば、複数の物体認識テンプレート4300から選択される対応する物体認識テンプレート4300B)と物体画像情報12002を関連付ける情報を含んでもよく、物体画像情報12002によって表される物体5012の姿勢情報6301を含んでもよい。物体5012の姿勢情報6301は、物体5012の位置及び配向を指し得る。実施形態では、検出仮説6300は、対応する物体認識テンプレート4300Bを含んでもよく、又は対応する物体認識テンプレート4300Bへの参照を含んでもよい。少なくとも一つの処理回路1110は、対応する物体認識テンプレート4300Bと、対応する物体画像情報12002との間の不一致を識別するように処理してもよい。少なくとも一つの処理回路1110は、物体画像情報12002の物体位置6220のセットに対応する、対応する物体認識テンプレート4300Bのテンプレート位置6210のセットを識別するように処理してもよい。少なくとも一つの処理回路1110は、テンプレート位置6210のセットを調整して、物体位置6220のセットに収束するようにさらに処理してもよい。少なくとも一つの処理回路1110は、調整された検出仮説6300’又は、調整後のテンプレート位置6210のセットに従って調整された物体認識テンプレートを含む、複数の反復調整された検出仮説6300‘を生成するように処理してもよい。
少なくとも一つの処理回路1110は、検出仮説6300を精密化するために、仮説精密化方法11000の特定のステップを実行し得る。処理11001では、仮説精密化方法11000は、シーン5013内の一つ以上の物体5012の画像情報12001を取得することを含み得る。一実施形態では、画像情報12001を取得することは、シーン5013の画像を捕捉することを含み得る。こうした実例では、画像情報12001が、箱、ビン、ケース、木枠、パレット又は他の容器内に位置する物体5012を表し得る。画像情報12001は、本明細書で論じるように、カメラ1200によって取得されてもよい。
少なくとも一つの処理回路1110は、画像情報12001を使用して、カメラ1200の視野内の個々の物体を区別し、画像情報12001に基づいて物体認識又は物体登録を行うなど、画像情報12001を生成、受信、及び/又は処理するように構成され得る。一実施形態では、画像情報12001は、カメラ1200の視野における環境又はシーン5013の視覚的な外観を記述する二次元画像情報(例えば、2D画像情報2600に類似)を含み得る。一実施形態では、画像情報12001は、カメラ1200の視野内のシーン5013の点群、空間構造情報、奥行きマップ、又は他の三次元画像を提供する、三次元画像情報(例えば、3D画像情報2700に類似)を含み得る。この例の三次元画像情報は、物体5012が三次元空間(例えば、シーン5013)の中で空間的にどのように配置されるかを推定するために使用され得る。処理11001に関して、画像情報12001を取得することは、シーン5013を表す画像情報12001の生成又は取得を含んでもよく、必要に応じて、シーン5013内の個々の物体5012又は複数の物体5012を表す一つ以上の物体画像情報12002の生成又は取得を含んでもよい。画像情報12001は、物体5012がカメラ1200の視野にある(又はあった)ときに、カメラ1200によって生成されてもよく、例えば、二次元画像情報及び/又は三次元画像情報を含み得る。
一実施形態では、画像情報12001は、二次元グレースケール又はカラー画像を含んでもよく、カメラ1200の視点からのシーン5013(及び/又はシーン内の物体5012)の外観を記述してもよい。一実施形態では、画像情報12001は、カラー画像の単一色チャネル(例えば、赤、緑、又は青色のチャネル)に対応し得る。カメラ1200が物体5012の上方に配置される場合、二次元画像情報は、物体5012のそれぞれの上部表面の外観を表し得る。
物体画像情報12002は、シーン5013内の特定の物理的物体5012に関連する画像情報を含み得る。物体画像情報12002は、画像情報2600に類似の、物体5012を表す2D画像情報12600を含み得る。物体画像情報12002は、画像情報2700に類似の、物体5012を表す3D画像情報12700を含み得る。物体画像情報12002は、物体位置6220を含んでもよく、物体位置6220は、例えば、特徴生成方法8000を介して、それぞれの勾配情報8102及び表面法線ベクトル8103が取得される位置を表す勾配抽出位置8100及び表面法線位置8101をさらに含んでもよい。勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103は、上述したように、勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103が、物理的物体から得られた画像情報から取得されることを除いて、勾配抽出位置5100、表面法線位置5101、勾配情報9100、及び表面法線ベクトル9101と類似していてもよい。
処理11003では、仮説精密化方法11000は、検出仮説6300を取得することをさらに含み得る。検出仮説6300は、複数の情報の断片を含み得る。例えば、検出仮説6300は、画像情報12001内の対応する物体画像情報12002をオーバーレイするために必要な、対応する物体認識テンプレート4300Bの位置及び配向を示す、対応する物体認識テンプレート4300B及び物体姿勢情報6301を含み得る。対応する物体認識テンプレート4300Bは、2D外観4302B、3D外観4303B、2D測定情報4304B、及び3D測定情報4305Bのうちの一つ以上を含み得る。上述のように、2D測定情報4304Bは、勾配情報9100B及び勾配抽出位置5100Bを含んでもよいが、3D測定情報4305Bは、表面法線ベクトル9101B及び表面法線位置5101Bを含んでもよい。対応する物体認識テンプレート4300Bは、勾配抽出位置5100B及び表面法線位置5101B又はそのサブセットを含み得る、テンプレート位置6210をさらに含み得る。
処理11005では、仮説精密化方法11000は、対応する物体認識テンプレート4300Bと、検出仮説6300に従ってテンプレートが合致した物体画像情報12002との間の不一致を識別することをさらに含んでもよい。対応する物体認識テンプレート4300B(例えば、2D外観4302B)の二次元情報は、物体画像情報12002と比較して、不一致を識別してもよい。不一致は、2D外観4302Bと物体画像情報12002との間の非整列又は他の不整合の領域に従って識別又は定量化され得る。
対応する物体認識テンプレート4300Bの間の不一致又は不整合の識別に伴い、対応する物体認識テンプレート4300B(例えば、2D外観4302B)の二次元情報は、物体画像情報12002との比較及びアライメントのために、二次元空間から三次元空間に変換されてもよい。一部の実例では、3D外観4303B又は2D外観4302Bの3D変換は、物体画像情報12002との比較に使用され、不一致を識別し得る。いくつかの実施形態では、不一致は、物体位置6220とテンプレート位置6210との間の不整合に従って識別又は定量化されてもよい。物体位置6220は、物体5012のデジタル表示上の点(例えば、物体画像情報12002)を表し、一方、テンプレート位置6210は、テンプレート物体6290上の点を表す(以下で論じるように)。
二次元空間から三次元空間への変換は、カメラキャリブレーション処理中に決定され得る、又は事前に定義され得る、カメラ1200又は他の画像センサのキャリブレーションパラメータ又は他のパラメータに基づいてもよい。上述のように、対応する物体認識テンプレート4300Bは、物体登録データ5001から導出され、それに関連付けられた座標系を有してもよい。三次元空間への変換において、対応する物体認識テンプレート4300Bの座標系は、画像情報12001に捕捉されるように、シーン5013の座標系にマッピングされてもよい。したがって、画像情報12001を捕捉したカメラ1200のキャリブレーションパラメータ又は他のパラメータを、変換に利用してもよい。検出仮説6300の情報は、本明細書ではテンプレート物体6290と呼ばれる、物体のデジタル表現を定義することができる。三次元変換は、テンプレート物体6290と呼ばれてもよく、物体画像情報12002と比較するための、画像情報12001の座標系における三次元空間における検出仮説6300の情報を表してもよい。
処理11007では、仮説精密化方法11000は、対応する物体上の物体位置のセットに対応する、対応する物体テンプレート内のテンプレート位置のセットを識別することをさらに含んでもよい。物体位置6220は、物体5012のデジタル表現上の点(例えば、物体画像情報12002)を表し、一方、テンプレート位置6210は、テンプレート物体6290上の点を表す。したがって、物体位置6220をテンプレート位置6210と整列させることは、検出仮説6300を精密化するのに役立ち得る。
上述のように、テンプレート位置6210は、勾配抽出位置5100B及び表面法線位置5101B又はそのサブセットに対応してもよい。さらなる実施形態では、テンプレート位置6210は、物体画像情報12002の物体位置6220とのアライメントに使用される、追加又は異なる位置を含み得る。
テンプレート位置6210(及び対応する物体位置6220)は、仮説精密化に高い影響を有する位置(例えば、物体画像情報12002とテンプレート物体6290との間のアライメント)に従って選択されてもよい。一部の実例では、テンプレート位置6210及び物体位置6220は、それぞれのテンプレート物体6290及び物体画像情報12002のエッジの周りの位置として選択され得る。こうした位置は、ノイズの影響を受けにくく、物体の形状の輪郭を提供し得るため、仮説精密化を実行するためにより有用であり得る。
処理11009では、仮説精密化方法11000は、テンプレート位置6210のセットを調整して、物体位置6220のセットに収束させることをさらに含み得る。少なくとも一つの処理回路1110は、テンプレート位置6210のセットを調整するようにさらに構成されてもよい。不一致が識別される場合、少なくとも一つの処理回路1110は、テンプレート物体6290のテンプレート位置6210から物体画像情報12002の対応する物体位置6220までの間のアライメント値を改善するために調整を行ってもよい。
アライメント手順は、図12B及び12Cに示す、iterative closest point(ICP)技術を使用して実施され得る。ICP技術は、テンプレート位置6210を調整して、物体位置6220のセットに収束させることを含み得る。テンプレート位置6210とそれらの対応する物体位置6220との間のベクトル6215のセットが、決定され得る。各ベクトル6215は、方向及び大きさを表し得る。一実施形態では、ベクトルの方向及び大きさは、物体位置6220に収束するようにテンプレート位置6210を調整するために使用され得る。テンプレート位置6210から物体位置6220に延在するベクトル6215は、方向及び大きさを有する。ベクトル6215のセットが、ベクトルの方向及び大きさを有し、テンプレート位置6210でテンプレート物体6290上で動作する力として数学的に理解される場合、テンプレート物体6290は、それぞれのテンプレート位置6210で加えられるか、又は作用するベクトル6215の方向及び大きさに従って調整又は移動されてもよい。したがって、より大きな大きさを有する、さらに離れている(例えば、より大きなデルタ又はオフセットを有する)テンプレート位置6210及び物体位置6220を表すベクトル6215は、より大きな「力」をテンプレート調整に加えると理解され得る。例えば、図12Bを参照すると、テンプレート物体6290は、物体画像情報12002をオーバーレイしてもよい。ベクトル6215は、テンプレート位置6210と物体位置6220との間で延びる。ベクトル6215が、その方向及び大きさに基づいてテンプレート物体6290に集合的に「力」として加えられる場合、テンプレート物体6290(図12Bに示す)は、時計回りに回転し、物体画像情報12002とより近いアライメントに至る傾向がある。ベクトル6215を適用した後、ベクトル6215の新しいセットを生成し、反復的に適用してもよい。別の例では、図12Cに示すように、ベクトル6215を適用することは、テンプレート物体6290の並進移動を引き起こして、物体画像情報12002とのアライメントをもたらし得る。いくつかの実施形態では、ベクトル6215の反復生成及び適用を通して、テンプレート物体6290は、残りのベクトル6215が互いに打ち消し合い、さらなる移動が生成されなくなるまで、物体画像情報12002とのより良好なアライメントに移動する。さらなる移動が生成できない場合、アライメント品質が評価され得る。いくつかの実施形態では、反復調整は、アライメント品質が閾値を超えるまで行われてもよい。
アライメントの品質(又はミスアライメントのレベル)は、複数の異なる方法で評価又は決定され得る。例えば、アライメントの品質は、ベクトル6215の方向及び大きさによって定義されるミスアライメントのレベルに従って評価又は決定され得る。アライメントの品質はまた、新しい、更新された、又は調整されたテンプレート位置6210のセットと、物体位置6220のセットとの間の距離測定値に従って評価又は決定されてもよい。アライメントの品質は、収束割合に従って評価又は決定されてもよい。実施形態では、これらのアライメントの品質の測定値の任意の組み合わせを使用してもよい。
アライメントの品質は、新しい又は更新されたそれぞれのベクトル6215の方向及び大きさによって定義されるミスアライメントのレベルに基づいて決定され得る。上述のように、ベクトル6215は、その方向及び大きさに従って、テンプレート物体6290に作用する力として数学的に解釈され得る。静止し、力を受ける時、物体は応力を経験するであろう。実施形態では、ミスアライメントのレベルは、ベクトル6215を、テンプレート物体6290の内部応力を生成する力として数学的に処理することに従って計算され得る。したがって、例えば、等しいベクトル及び反対のベクトル6215は、(ベクトル6215が単に一緒に追加された場合のように)互いに打ち消しあわず、しかし、テンプレート物体6290に「ストレス」を生成する。アライメント品質のレベルが良好(及びミスアライメントのレベルが低)である場合、ベクトル6215は比較的小さい大きさであり、それによって低内部応力に対応する。アライメント品質が悪い(及びミスアライメントのレベルが高い)場合、ベクトル6215は大きくなり、それによってより重大な内部応力に対応する。この内部応力の計算は、アライメント品質を示すものとみなされ得る。
一実施形態では、アライメントの品質は、新しい又は更新されたテンプレート位置6210のセットと物体位置6220のセットとの間の距離測定値に基づいて決定され得る。距離測定値は、ユークリッド距離測定値、又はユークリッド空間の2点間の線分の長さであってもよい。ユークリッド距離(又はピタゴラスの距離)は、以下の式を介して表され得る:
式中、以下のとおりである。
d=距離
p=3D座標p1、p2、p3を有する第一の点
q=3D座標q1、q2、q3を有する第二の点
上述の方程式を介して生成された距離測定値は、距離値(典型的にはゼロ以上)を出力し、ゼロに近い出力値は、点p、q(ゼロは距離なしを表すか、又は同一/重複点を表す)の間のより近い距離を表す。テンプレート位置6210の新しいセット又は更新されたセットの各々と、物体位置6220のセットとの間の距離測定値は、例えば、算術平均又は幾何平均を取ることによって組み合わせられてもよい。組み合わせられた距離値は、次に、所定の閾値と比較されてもよく、所定の閾値と等しいか、又はそれを下回る距離値(すなわち、ゼロ及び所定の閾値)は、良好な合致を示す(すなわち、テンプレート物体6290と物体画像情報12002との間)ものであり、所定の閾値よりも大きい距離出力値は、不一致を示す。
一実施形態では、距離測定値は、新しいテンプレート位置6210のセット(すなわち、テンプレートベクトル6260)と、物体位置6220のセット(すなわち、物体ベクトル6270)と関連付けられた表面法線ベクトルとの間のコサイン距離であってもよい。テンプレートベクトル6260は、対応する物体認識テンプレート4300Bに関連付けられた、以前に決定された表面法線ベクトル9101の一部又はすべてを含み得る。物体ベクトル6270は、物体画像情報12002に関連付けられた表面法線ベクトル8101を含み得る。測定されたコサイン距離は、表面法線ベクトル(例えば、テンプレートベクトル6260及び物体ベクトル6270)の間の角度を示してもよく、示される角度は、表面法線ベクトル(例えば、テンプレートベクトル6260及び物体ベクトル6270)間のアライメントの程度又は品質と直接相関する。コサイン距離は、以下の式によって表され得る。
コサイン距離=1-コサイン類似度、
ここで、コサイン類似度は、以下の式によって表され、
式中、xi及びyiは、ベクトルX及びYの構成要素である。
又は、代替では、以下である。
上記の方程式によって生成された距離測定値は、二つの表面法線ベクトル間の距離を示す値を出力する(すなわち、コサイン距離として)。この出力値は、テンプレートベクトル6260と物体ベクトル6270との間の角度、すなわち、より具体的には、テンプレート物体6290の平面部分と物体画像情報12002の平面部分との間の角度をさらに示してもよい。平面部分は、表面法線ベクトルが延び、平行である表面を指す。小さな角度を提供する出力は、テンプレート物体6290の平面部分と物体画像情報12002の平面部分との間の良好な合致(すなわち、良好な収束又はアライメント)を示し得る。テンプレートベクトル6260と物体ベクトル6270の対応する各対の間のコサイン距離は、例えば、算術又は幾何平均を取ることによって、距離測定値を生成するように組み合わせられてもよい。
別の実施形態では、距離測定値は、テンプレート位置6210のうちの一つから、物体位置6220からの対応する点を含む平面まで測定される、平面距離測定値であってもよく、又はその逆であってもよい。テンプレートベクトル6260と物体ベクトル6270の対応する各対の間の平面距離は、例えば、算術又は幾何平均を取ることによって、距離測定値を生成するように組み合わせられてもよい。
テンプレート物体6290と物体画像情報12002との間のアライメントの品質は、ICP技術の連続的な反復にわたって距離が減少することを示すプロファイルに従ってさらに決定され得る。上述のように、ICP技術を使用して、テンプレート位置6210を物体位置6220と収束させることによって、テンプレート物体6290及び物体画像情報12002を整列させてもよい。連続的な反復の間、テンプレート物体6290と物体画像情報12002との間の距離測定値(例えば、コサイン距離、ユークリッド距離、平面距離など)が取得され得る。プロファイルは、連続的な反復にわたるこうした距離の変化を示し得る。
例えば、ICPの連続的な反復にわたる距離の一貫した減少を示すプロファイルは、テンプレート物体6290と物体画像情報12002との間の収束の観点から、高いアライメント品質を示し得る。逆に、距離が増加する、又はそうでなければ、距離が連続的な反復の間に非常に急速に減少していないことを示す、ICPの連続的な反復があることがプロファイルによって示される場合、プロファイルは、テンプレート物体6290及び物体画像情報12002が、高品質の収束を示さず、テンプレート物体6290と物体画像情報12002との間の最終的なアライメントは、低品質であり得ることを示し得る。
処理11011では、仮説精密化方法11000は、調整された検出仮説を生成することを含み得る。調整された検出仮説6300’は、上述のように、テンプレート位置6210に加えられた調整に従って生成され得る。調整は、検出仮説6300に記憶された様々な断片の情報の調整されたバージョンを表し得る。例えば、調整された検出仮説6300’は、物体画像情報12002と、調整された対応する物体認識テンプレート4300B’とを関連付ける情報を含んでもよく、調整された姿勢情報6301’を含んでもよい。調整された対応する物体認識テンプレート4300B’は、調整された2D外観4302B’、調整された3D外観4303B’、調整された2D測定情報4304B’、及び調整された3D測定情報4305B’のうちの一つ以上を含み得る。調整された2D測定情報4304B’は、調整された勾配情報9100B’及び調整された勾配抽出位置5100B’を含んでもよく、一方で、調整された3D測定情報4305B’は、調整された表面法線ベクトル9101B’及び調整された表面法線位置5101B’を含んでもよい。調整された物体認識テンプレート4300B’は、調整された勾配抽出位置5100B’及び調整された表面法線位置5101B’又はそのサブセットを含み得る、調整されたテンプレート位置6210’をさらに含み得る。調整された検出仮説6300’に含まれる情報の「調整された」バージョンすべてが、検出仮説6300の対応する情報と異なることは要求されない。例えば、実施形態では、位置は調整されてもよく、一方で、その位置に関連付けられた情報(勾配及び表面法線)は、同じままであってもよい。実施形態では、調整された情報は、オリジナルの検出仮説6300を記憶することと併せて、調整についての情報を記憶することによって捕捉され得る。
本開示はさらに、検出仮説の検証に関する。図13は、検出仮説を検証するための例示的な検出仮説検証方法13000のフロー図を示す。検出仮説検証の以下の説明は、図14を参照する。検出仮説検証方法13000は、一つ以上の以前に取得された検出仮説上で処理して、シーン内に具体的に検出された物理的物体に対応するものとして、特定の検出仮説を検証してもよい。上述のように、テンプレートマッチング及び検出仮説の生成及び精密化を通して、シーン内の特定の物理的物体に関連する又はそれを説明するものとして複数の検出仮説を提案してもよい。検出仮説検証方法13000は、特定の物理物体の物体画像情報ならびにそれに関連する検出仮説のセットを受信し、複数の検出仮説を検証して、最適又は最良の適合の検出仮説を決定し得る。検出仮説のセットは、初期検出仮説(検出仮説6300など)であってもよく、及び/又は調整された検出仮説(調整された検出仮説6300’など)であってもよく、又はそれらの組み合わせであってもよい。少なくとも一つの処理回路1110は、以下に記載されるように、検出仮説8300を検証するために、検出仮説検証方法13000の特定のステップを実行し得る。
一実施形態では、検出仮説検証方法13000は、例えば、図2A~2Dの計算システム1100(又は、1100A/1100B/1100C)、又は図3A~3Bの計算システム1100によって、あるいはより具体的には、計算システム1100の少なくとも一つの処理回路1110によって行われてもよい。一部のシナリオでは、計算システム1100が、非一時的コンピュータ可読媒体(例えば、1120)上に記憶される命令を実行することによって、検出仮説検証方法13000を行ってもよい。例えば、命令によって、計算システム1100に、検出仮説検証方法13000を行い得る、図2Dに示されたモジュールのうちの一つ以上を実行させてもよい。例えば、実施形態では、方法13000のステップは、仮説生成モジュール1128、仮説精密化モジュール1136、及び一緒に動作する仮説検証モジュール1138によって行われてもよい。
検出仮説検証方法13000を使用して、シーン5013内に物理的に位置する一つ以上の物体5012を識別するために生成された検出仮説セット8309の一つ以上の検出仮説8300を検証してもよい。検出仮説検証方法13000は、シーン5013から取得された画像情報12001について処理してもよい。画像情報12001は、2D画像情報2600及び3D画像情報2700と類似してもよい。画像情報12001内には、シーン5013内の物体5012を表す一つ以上の物体画像情報12002があってよい。
以下の考察では、識別される単一の物体5012に関する検出仮説セット8309の使用に従って、検出仮説検証方法13000が論じられる。以下で論じるように、検出仮説検証方法13000は、単一の物体5012に対応する最良の検出仮説8300を識別するように処理する。他の実施形態では、検出仮説セット8309は、シーン5013内の複数の物体5012に関する検出仮説8300を含み得る。各個々の物体5012は、検出仮説セット8309からの対応する検出仮説8300のグループを有してもよく、これは、対応する個々の物体5012に関して説明する方法に従って検証されてもよい。このようにして、検出仮説検証方法13000は、単一の物体5012に対する最良の検出仮説8300を検証及び識別するために、又は、各々が異なる個々の物体5012に対応する、複数の最良の検出仮説8300を識別するために利用されてもよい。複数の検出仮説8300を検証することによって、複数の物体5012の連続する持ち上げを含む複雑な持ち上げ処理を計画及び実行することができる。
検出仮説検証方法13000では、少なくとも一つの処理回路1110が、ロボットアーム3320及びアームに接続されたエンドエフェクタ装置3330を有するロボット3300、及び視野を有し、視野内に一つ以上の物体5012がある又はあったときに、非一時的コンピュータ可読媒体に記憶されている命令を実行するように構成されるカメラ1200と通信することができる。実施形態では、少なくとも一つの処理回路1110は、ロボット3300と直接通信しなくてもよく、ネットワーク及び/又は記憶装置を介して、ロボット3300との間で情報を送受信してもよい。実施形態では、少なくとも一つの処理回路1110は、ロボット3300と直接通信してもよい。少なくとも一つの処理回路1110は、シーン5013内の一つ以上の物体5012の画像情報12001を取得し得る。少なくとも一つの処理回路1110はまた、一つ以上の検出仮説8300及び/又は検出仮説セット8309を取得してもよい。
各検出仮説8300は、物体認識テンプレート4300(例えば、複数の物体認識テンプレート4300から選択される対応する物体認識テンプレート4300C)と物体画像情報12002を関連付ける情報を含んでもよく、物体画像情報12002によって表される物体5012の姿勢情報6301を含んでもよい。物体5012の姿勢情報6301は、物体5012の位置及び配向を指し得る。実施形態では、検出仮説8300は、対応する物体認識テンプレート4300Cを含んでもよく、又は対応する物体認識テンプレート4300Cへの参照を含んでもよい。
処理13001では、検出仮説検証方法13000は、シーン内の一つ以上の物体の画像情報を取得することを含む。処理13001は、上で論じた処理11001と類似してもよい。画像情報12001を取得することは、シーン5013の画像を捕捉することを含み得る。こうした実例では、画像情報12001が、箱、ビン、ケース、木枠、パレット又は他の容器内に位置する物体5012を表し得る。画像情報12001は、本明細書で論じるように、カメラ1200によって取得されてもよい。少なくとも一つの処理回路1110は、画像情報12001を使用して、カメラ1200の視野内の個々の物体を区別し、画像情報12001に基づいて物体認識又は物体登録を行うなど、画像情報12001を生成、受信、及び/又は処理するように構成され得る。一実施形態では、画像情報12001は、カメラ1200の視野における環境又はシーン5013の視覚的な外観を記述する、二次元画像情報(例えば、2D画像情報2600に類似)を含み得る。一実施形態では、画像情報12001は、カメラ1200の視野内のシーン5013の点群、空間構造情報、奥行きマップ、又は他の三次元画像を提供する、三次元画像情報(例えば、3D画像情報2700に類似)を含み得る。この例の三次元画像情報は、物体5012が三次元空間(例えば、シーン5013)の中で空間的にどのように配置されるかを推定するために使用され得る。画像情報12001の取得は、シーン5013を表す画像情報12001の生成又は取得を含んでもよく、必要に応じて、シーン5013の個々の物体5012又は複数の物体5012を表す一つ以上の物体画像情報12002の生成又は取得を含んでもよい。物体画像情報12002は、物体5012を表す2D画像情報12600を含み得る。2D画像情報12600は、画像情報2600に類似していてもよく、及び/又はレイトレーシング及び不連続検出などのレンダリング技術に従って生成されたレンダリングされた2D画像情報を含んでもよい。物体画像情報12002は、画像情報2700に類似の、物体5012を表す3D画像情報12700を含み得る。画像情報12001は、物体5012がカメラ1200の視野にある(又はあった)ときに、カメラ1200によって生成されてもよく、例えば、二次元画像情報及び/又は三次元画像情報を含み得る。
物体画像情報12002は、シーン5013内の特定の物理的物体5012に関連する画像情報を含み得る。物体画像情報12002は、画像情報2600に類似の、物体5012を表す2D画像情報12600を含み得る。物体画像情報12002は、画像情報2700に類似の、物体5012を表す3D画像情報12700を含み得る。物体画像情報12002は、物体位置6220を含んでもよく、物体位置6220は、例えば、特徴生成方法8000を介して、それぞれの勾配情報8102及び表面法線ベクトル8103が取得される位置を表す勾配抽出位置8100及び表面法線位置8101をさらに含んでもよい。勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103は、上述したように、勾配抽出位置8100、表面法線位置8101、勾配情報8102、及び表面法線ベクトル8103が、物理的物体から得られた画像情報から取得されることを除いて、勾配抽出位置5100、表面法線位置5101、勾配情報9100、及び表面法線ベクトル9101と類似していてもよい。
画像情報12001は、仮説精密化方法11000の実施中に取得された同じ画像情報12001であってもよい。したがって、計算システム1100は、仮説精密化方法11000の実施のために画像情報12001を取得し、画像情報12001を記憶し、検出仮説検証方法13000の実施のために画像情報12001にアクセスし得る。実施形態では、画像情報12001は、特に検出仮説検証方法13000の実施のために、新たに取得されてもよい。
上で論じたように、画像情報12001は、二次元グレースケール及び/又はカラー画像を含んでもよく、カメラ1200の視点からのシーン5013(及び/又はシーン内の物体5012)の外観を説明してもよい。一実施形態では、画像情報12001は、カラー画像の単一色チャネル(例えば、赤、緑、又は青色のチャネル)に対応し得る。カメラ1200が物体5012の上方に配置される場合、二次元画像情報は、物体5012のそれぞれの上部表面の外観を表し得る。さらに、画像情報12001は、例えば、物体5012の一つ以上の表面(例えば、上部表面、又は他の外側表面)上の、又は物体5012の一つ以上のエッジに沿った様々な物体位置6220のそれぞれの奥行き値を示す、奥行きマップ又は点群を含み得る、三次元画像情報を含み得る。物体画像情報12002の二次元画像情報及び三次元画像情報は、それぞれ、2D画像情報12600及び3D画像情報12700と呼んでもよい。一部の実施形態では、物体5012の物理的エッジを表す物体位置6220は、個々の物体5012を表すことに限定される物体画像情報12002を識別するために使用され得る。
処理13003では、検出仮説検証方法13000は、一つ以上の検出仮説8300及び/又は検出仮説セット8309を取得することをさらに含み得る。説明を容易にするために、特に明記されない限り、特定の検出仮説8300の記述された属性及び質は、検出仮説セット8309の検出仮説8300の各々に適用されると理解され得る。検出仮説8300は、仮説精密化方法11000の実施に続いて、調整された検出仮説6300’として取得されてもよい。検出仮説8300は、上述のように、テンプレートマッチング処理から初期検出仮説8300として取得され得る。
検出仮説8300は、画像情報12001内の対応する物体画像情報12002をオーバーレイするために必要な、対応する物体認識テンプレート4300Cの位置及び配向を示す、対応する物体認識テンプレート4300C及び物体姿勢情報8301を含んでもよい。対応する物体認識テンプレート4300Cは、2D外観4302C、3D外観4303C、2D測定情報4304C、及び3D測定情報4305Cのうちの一つ以上を含み得る。上述のように、2D測定情報4304Cは、勾配情報9100C及び勾配抽出位置5100Cを含んでもよく、一方で、3D測定情報4305Cは、表面法線ベクトル9101C及び表面法線位置5101Cを含んでもよい。対応する物体認識テンプレート4300Cは、勾配抽出位置5100B及び表面法線位置5101B又はそのサブセットを含み得る、テンプレート位置8210をさらに含み得る。検出仮説8300の情報は、本明細書ではテンプレート物体8290と呼ばれる、物体のデジタル表現を定義することができる。テンプレート物体8290は、物体画像情報12002と比較するための、画像情報12001の座標系における三次元空間における検出仮説6300の情報を表す。
検出仮説セット8309、特にセットのサイズは、割合と完全さとのバランスを取るように選択又は決定され得る。より多くの検出仮説8300を選択することは、良好な合致を達成するより高い機会をもたらし得るが、処理にも時間がかかり得る。仮説精密化方法11000に関して上で論じたように、アライメントの品質は、精密化に関連するステップの間に測定又は決定され得る。品質閾値を超えることは、仮説精密化方法11000を完了として決定させるマーカであってもよい。同様に、品質閾値を超えることは、検出仮説セット8309内に調整された検出仮説6300’を含めることを可能にするマーカとして考慮され得る。品質閾値を超えることができないと、調整された検出仮説6300’が除外される結果となり得る。したがって、検出仮説セット8309のサイズは、品質閾値がどれほど厳しいかによって決められ得る。いくつかの実施形態では、検出仮説セット8309のサイズは限定されてもよく、最高品質アライメント調整検出仮説6300’のみが含まれる。実施形態では、品質閾値及びランク付けされた順序の両方を使用してもよい。実施形態では、多くの偽陽性が生成されるという理解で、大きな仮説検出セット8309(例えば、500、1000、又は10,000を超える総検出仮説)を生成するテンプレートマッチング及び仮説精密化技術を使用することが有益であり得る。こうした実施形態は、以下で論じるように、検出仮説検証方法13000に依拠して、偽陽性をフィルタリングしてもよい。
処理13005において、検出仮説検証方法13000は、検出仮説のセットの各検出仮説を検証することを含む。複数の検出仮説8300が取得され、画像情報12001の物体画像情報12002と比較されて、物体画像情報12002によって表される物理的物体5012を記述するためどの検出仮説8300が最良の推定値又は最良の適合であるかを識別する。検出仮説セット8309から最良の検出仮説を選択することは、以下に記載される処理13007~13011に従って、検出仮説の各々を検証することを含む。仮説検証は、三次元及び二次元検証スコアを生成し、これらに従って検出仮説セット8309をフィルタリングすることを含み得る。
処理13007では、検出仮説検証方法13000は、複数の三次元検証スコアを生成することを含む。各三次元検証スコアは、検出仮説8300の三次元情報及びシーンからの物体に対応する画像情報(例えば、物体画像情報12002)の対応する三次元情報の比較に基づいてもよい。複数の三次元検証スコアは、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、及び法線ベクトルバリデータスコアのうちの少なくとも一つを含んでもよい。検出仮説8300の三次元情報は、3D外観4303C及び表面法線ベクトル9101Cを含む3D測定情報4305C及び表面法線位置5101Cを含み得る。物体画像情報12002の三次元情報は、3D画像情報12700、表面法線位置8101、及び表面法線ベクトル8103を含み得る。
バリデータスコアは、本明細書で論じるように、特定の検出仮説が、物体画像情報12002にどの程度よく対応しているか、又は整列しているかを表すスコア又は数であってもよい。バリデータスコアは、本明細書で論じるように、より低い値がより良い適合を表す仮説信頼スコアに適用されるペナルティスコアであってもよい。あるいは、バリデータスコアは、より高い値がより良好な適合を表すボーナススコアであってもよい。説明を容易にするために、本明細書で論じるバリデータスコアは、ペナルティスコアであってもよいが、同じ概念及び技法の全てが、ボーナススコアを使用して適用され得ることが理解される。
遮蔽バリデータスコア及び点群バリデータスコアは、それぞれ、物体画像情報12002の物体位置6220を、検出仮説8300によって表されるテンプレート物体8290の表面と比較し、物体位置6220とテンプレート物体8290の表面との間の不一致を識別して、遮蔽バリデータスコア及び点群バリデータスコアを取得することによって、取得され得る。検出仮説の三次元情報は、テンプレート物体8290の表面の位置を示し得る。検出仮説8300の三次元情報が、実際には、シーン5013の物体5012を表す場合、3D画像情報12700に関連付けられた物体位置6220は、表面上又は表面に近くにあるはずである。表面の近くにない場合、テンプレートマッチング処理によって決定される合致は、偽陽性であってもよい。物体位置6220をテンプレート物体8290の表面に比較することは、有効な点ならびに遮蔽及び無効な点の二つの種類の不一致を識別し得る。物体位置6220を、テンプレート物体8290の表面の上方又はそうでなければ外側に置く不一致は、遮蔽と呼ばれ、遮蔽バリデータスコアを計算するために使用され得る。テンプレート物体8290の表面の下に物体位置6220を置く不一致は、無効な点と呼ばれ、点群バリデータスコアを計算するために使用され得る。テンプレート物体8290の表面から上又はその近く(閾値距離内、表皮奥行きパラメータとも呼ばれる)にある物体位置6220は、有効な点と呼ばれ得る。物体位置6220とテンプレート物体8290の表面との間のある程度の偏差が予想される。こうした偏差は、表皮奥行きパラメータによって説明されてもよく、そのサイズは、許容偏差の量を決定する。
遮蔽バリデータスコアは、物体位置6220をテンプレート物体8290の表面の上方又は外側に置く不一致を識別することによって取得される。これらの不一致は遮蔽と呼ばれる。遮蔽バリデータスコアは、仮説信頼スコアに対する加重ペナルティをもたらし、重みは、テンプレート物体6290の表面からの物体位置6220の距離に依存する。遮蔽バリデータスコアは、テンプレート物体6290の表面からの距離の関数として計算されてもよい。関数は、例えば、対数法線関数であってもよく、対数法線関数の曲線のピークは、テンプレート物体8290の表面の近くの3D点と一致する表面からの距離を表すが、テンプレート物体8290の一部である可能性は低い。実施形態では、ピークを有する関数は、画像情報12001を捕捉するセンサ又はカメラが精度を失う点を越えてすぐの距離で選択され得る。例えば、テンプレート物体6290の表面を非常に大きな距離で越える物体位置6220は、物体画像情報12002によって表される物体5012上の実際の点ではなく、シーン5013の合致部分とカメラ1200の合致部分との間の別の物体5012からの遮蔽又は画像情報12001のノイズから、このような物体位置6220が結果として生じる可能性のために、それに対して適用されるペナルティは低くてもよい。したがって、特定の物体位置6220に対する遮蔽バリデータスコアのペナルティは、最初距離と共に最初に増大し、検出仮説の信頼性を低下させ得る。距離がピークを超えて増加した後、特定の物体位置6220が、物体画像情報12002によって表される物体5012によって生成されず、ペナルティが減少する可能性がますます高まる。
実施形態では、遮蔽信頼スコアは、遮蔽バリデータスコアに対して決定され得る。遮蔽信頼スコアは、遮蔽バリデータスコアが、どの決定がなされ得るかについての良い情報を提供する信頼レベルを表す。物体位置6220は、それらが物体に属するという信頼がある点又は位置を表し得る。しかしながら、物体画像情報12002は、物体5012に属すると自信を持って識別されない追加の点を含み得る。遮蔽信頼スコアは、物体画像情報12002の可視点の総数に対する物体位置6220の比に基づいてもよい。したがって、物体に属するという信頼がある物体位置6220が、可視点全体のより低い割合である場合、物体位置6220に基づく遮蔽バリデータスコアが正確な情報を提供する信頼性は低下し、関連する遮蔽信頼スコアも同様に低下する。いくつかの実施形態では、最終的な遮蔽バリデータスコアは、遮蔽信頼スコアに従って修正される初期遮蔽バリデータスコアによって表されてもよい。
点群バリデータスコアは、物体位置6220をテンプレート物体8290の中又は表面の下に置く不一致を識別することによって取得される。これらの不一致は、無効な点と呼ばれる。点群バリデータスコアは、仮説信頼スコアに対するペナルティとなる。無効点として識別された物体位置6220、例えば、テンプレート物体8290の表面下は、検出仮説8300が不正確であり、相応に高いペナルティスコアをもたらし得る強力な指標であり得る。実施形態では、点群バリデータスコアは、無効な点の数、又は無効な点と無効な点のカットオフ値との比に基づいてもよい。
点群バリデータスコアは、例えば、物体画像情報12002内の可視点の総数に対する物体位置6220の比に従って、遮蔽信頼スコアに関して上述したのと同じ様式で決定された点群信頼スコアを有してもよい。実施形態では、最終的な点群バリデータスコアは、点群信頼スコアに従って変更される点群バリデータスコアによって表されてもよい。
実施形態では、点群バリデータスコア及び遮蔽バリデータスコアは、単一の表面バリデータスコアに組み合わされてもよい。表面バリデータスコアは、点群バリデータスコアと遮蔽バリデータスコアとの組み合わせとして、例えば、二つを組み合わせるために、追加、平均化、又は別の数学的操作を実行することによって、決定され得る。
法線ベクトルバリデータスコアは、テンプレート物体6290の表面上又はその近傍の物体位置6220に従って識別される、有効な点が、テンプレート物体6290の表面の配向に合致する表面法線ベクトル8103を有するかどうかを判定することによって取得され得る。こうした決定は、物体位置6220に関連付けられた表面法線ベクトル8103を、対応する物体認識テンプレート4300Cの対応する表面法線位置5101Cに関連付けられた対応する表面法線ベクトル9101Cと比較することによって行われてもよい。表面法線ベクトル8103が、対応する表面法線ベクトル9101Cと配向を整列しないか、又は配向と合致しない場合、法線ベクトルバリデータスコアは、検出仮説信頼スコアに対するペナルティとして適用され得る。実施形態では、不一致又はミスアライメントの量は、適用されるペナルティのサイズに影響を与え得る。
実施形態では、検出仮説が正確であっても、表面法線ベクトル8103が、対応する表面法線ベクトル9101Cと配向を整列又は合致させることが期待されない状況に対して、状況に対するいくらかの寛容が与えられてもよい。例えば、多くの歯を有するギアなどの物体は、エッジ及び表面法線ベクトルの突然の変化を呈する部分を有し得る。こうした物体構造は、物体画像情報12002とテンプレート物体8290との間に、シーン上にオーバーレイされているわずかなミスアライメントがあるだけであっても、表面法線ベクトル8103及び対応する表面法線ベクトル9101Cに大きな偏差を引き起こし得る。こうしたシナリオを説明するために、少なくとも一つの処理回路1110は、対応する物体認識テンプレート4300C又は画像情報12001が、表面法線ベクトル9101C/8103に高い変動を有する領域を有するかどうかを調べ得る。結果が陽性である場合、少なくとも一つの処理回路1110は、対応する物体認識テンプレート4300Cの対応する表面法線ベクトル9101Cと、物体画像情報12002の表面法線ベクトル8103との間の高変化領域における差異について法線ベクトル検証スコアを低下させることによって、より高い量の公差を適用し得る。
実施形態では、表面法線バリデータスコアは、それに関連付けられた表面法線信頼レベルを有してもよい。表面法線信頼レベルは、表面法線バリデータスコアによって提供される情報の信頼レベルを表し得る。一実施形態では、表面法線信頼レベルは、抽出されたエッジの品質に従って決定され得る。一実施形態では、表面法線バリデータスコアは、表面法線信頼レベルに従って調整されてもよい。
対応する物体認識テンプレート4300Cによって表されるように、物体画像情報12002から取得された物体位置6220をテンプレート物体8290の構造と比較し、物体位置6220と構造との間の不一致を識別して、構造が不在のテンプレート物体又は位置の構造の空のボリュームに対応する物体位置6220に従って、無効な穴又は空の座標(穴の無効性と呼ばれる)を識別することによって、穴合致バリデータスコアを得る。物体画像情報12002の物体位置6220は、物体5012の物理的構造の表面上の位置を表すため、シーン内の物体5012は、対応する物体認識テンプレート4300Cが空であると示す空間に構造を持つものではない。対応する物体認識テンプレート4300Cが、空であると示す部分における物体位置6220の存在は、ノイズに起因する場合があるが、また、不正確な検出仮説を示す場合がある。したがって、穴合致バリデータスコアは、識別されるすべての穴の無効性に対する検出仮説信頼レベルに対するペナルティスコアとして決定され得る。
実施形態では、穴合致バリデータスコアは、それに関連付けられた穴合致信頼レベルを有してもよい。穴合致信頼レベルは、穴合致バリデータスコアによって提供される情報の信頼レベルを表し得る。一実施形態では、穴合致信頼レベルは、抽出されたエッジの品質に従って決定され得る。一実施形態では、穴合致バリデータスコアは、穴合致信頼レベルに従って調整されてもよい。
実施形態では、正しい検出仮説を用いても、ノイズ又は穴の無効性を生じ得る他の状況を説明するために、公差が設けられてもよい。例えば、物体画像情報12002が、テンプレート物体8290の空の空間(例えば、物体の穴又は開口部)に対応する物体位置6220を含む場合、その物体位置6220は、空間内に一致して位置する別の物体の一部分に対応し得る。こうしたシナリオは、推定では空の空間の物体位置6220が、対応する物体認識テンプレート4300Cによって表される物体5012に属さず、代わりに別の物体に属するとき、シーン5013内の物体5012に対する正確な検出仮説8300と一致し得る。一実施形態では、穴合致バリデータスコアは、テンプレート物体8290の穴、開口部、又は空の座標のサイズが比較的大きいときに、その空間の測定に影響を与える不規則性(例えば、穴又は開口部と交差する、又は穴又は開口部を通して突出する物体)の可能性、及びその空間内に延在する別の物体の可能性が増加するため、より大きな公差を提供し得る。
実施形態では、点群バリデータスコア、遮蔽バリデータスコア、穴合致バリデータスコア、及び表面法線バリデータスコアは、単一の3Dバリデータスコアに組み合わされてもよい。3Dバリデータスコアは、点群バリデータスコア、遮蔽バリデータスコア(又は組み合わされた表面バリデータスコア)、穴合致バリデータスコア、及び表面法線バリデータスコアのいずれかの組み合わせとして、例えば、二つを組み合わせるために、追加、平均化、又は別の数学的操作を実行することによって、決定され得る。
処理13009では、検出仮説検証方法13000は、複数の二次元検証スコアを生成することを含み、この検証スコアは、レンダリングされた合致バリデータスコア及びテンプレートマッチングバリデータスコアのうちの少なくとも一方を含み得る。
レンダリングされた合致バリデータスコアは、画像情報12001のレンダリングされた2D画像情報12600を、対応する2D外観4302Cと比較することによって取得される。レンダリングされた合致バリデータスコアは、レンダリングされた2D画像情報12600及び対応する2D外観4302Cの両方からエッジ情報を抽出するようにさらに処理してもよい。レンダリングされた合致バリデータスコアは、2D画像情報12600から抽出されたエッジが、対応する2D外観4302Cから抽出されたエッジと整列するかどうかの判定に基づいてもよい。レンダリングされた合致バリデータスコアは、抽出されたエッジ、抽出されたエッジ間の平均距離、又は任意の他の適切な測定基準によって画定される領域間の重複の量に基づいてもよい。レンダリングされた合致バリデータスコアは、検出仮説信頼スコアに適用されるペナルティスコアとして使用され得る。一部の実例では、レンダリング(例えば、レイトレーシング)を使用して、エッジ情報を生成及び抽出することは、ノイズ及び、金属物体又は影から反射する光のグレアなどのアーチファクトを引き起こし得る他の状態を補償し得る。一部の実例では、処理13009はまた、対応する物体認識テンプレート4300Cから情報を再レンダリングして、対応する物体認識テンプレート4300Cからエッジを抽出するように処理してもよい。
実施形態では、レンダリングされた合致バリデータスコアは、それに関連付けられたレンダリングされた合致信頼レベルを有してもよい。レンダリングされた合致信頼レベルは、レンダリングされた合致バリデータスコアによって提供された情報における信頼レベルを表し得る。一実施形態では、レンダリングされた合致信頼レベルは、抽出されたエッジの品質に従って決定され得る。一実施形態では、レンダリングされた合致バリデータスコアは、レンダリングされた合致信頼レベルに従って調整されてもよい。
テンプレートマッチングバリデータスコアは、物体画像情報12002から抽出されたエッジと、対応する物体認識テンプレート4300C(例えば、テンプレート物体8290又は2D外観4302Cなど)から導出された物体画像とを比較することによって取得される。エッジ検出アルゴリズム、例えば、Cannyエッジ検出器を利用して、物体画像情報12002から直接物体エッジを、及び対応する物体認識テンプレート4300Cに記憶された画像情報からテンプレートエッジを識別してもよい。テンプレートマッチングバリデータスコアは、物体エッジに対してテンプレートエッジを摺動させてどの程度の摺動(存在する場合)がピーク応答又はオーバーラップをもたらすかを判定することによって、物体エッジとテンプレートエッジとの間のオフセットがあることに従って決定され得る。テンプレートマッチングバリデータスコアは、ピーク応答又はオーバーラップを達成するために必要な、摺動、移動、オフセット、又は調整の量に基づいてもよい。必要な移動や摺動の量が多いほど、テンプレートマッチングバリデータスコアが高くなり、適用されるペナルティが大きくなる。言い換えれば、より多く必要とされる移動は、より不良な合致を示す。
実施形態では、テンプレートマッチングバリデータスコアは、それに関連付けられたテンプレートマッチング信頼レベルを有してもよい。テンプレートマッチング信頼レベルは、テンプレートマッチングバリデータスコアによって提供される情報における信頼レベルを表し得る。一実施形態では、テンプレートマッチング信頼レベルは、抽出されたエッジの品質に従って決定されてもよい。実施形態では、テンプレートマッチングバリデータスコアは、テンプレートマッチング信頼レベルに従って調整されてもよい。
三次元バリデータスコア及び二次元バリデータスコアを組み合わせて、検出仮説における全体的な信頼レベルを決定するために、さらなる処理で使用され得る全体的な検証スコアを決定してもよい。合計検証スコアは、三次元及び二次元バリデータスコアの各々と、各バリデータスコアに関連付けられた信頼値との組み合わせに基づいてもよい。例えば、より高い信頼値及び/又はより高いスコアの重みを有するバリデータスコアは、総検証スコアに対してより大きな影響を有してもよく、一方、低い信頼値及び/又は低いスコアの重みを有するバリデータスコアは、総検証スコアに対してより小さな影響を有してもよい。
実施形態では、処理13005は、対応する物体認識テンプレート4300Cが、シーン5013に対応する画像情報12001内の他の構造又は物体と包括的な一貫性を有するかを判定する、追加の検証ステップをさらに含み得る。例えば、こうした他の構造及び物体は、ワーク又は他の物体が位置する容器を含み得る。例えば、処理13005は、テンプレート物体8290がこうした容器内に完全に嵌合するかどうか(例えば、姿勢情報6301によって決定されるテンプレート物体8290の位置に基づいて)、又はテンプレート物体8290が容器の表面の外側に延在するか、又は突出するかをさらに決定し得る。テンプレート物体8290又はその一部分が容器の外側にある場合、こうした状況は、不正確な検出仮説の示唆であり得る。こうした状況では、総検証スコアは、テンプレート物体8290が容器のどのくらい外側にあるかに従って加重されたペナルティで、それに応じて調整され得る。実施形態では、テンプレート物体8290又はその一部が閾値量を超える容器の外側にある場合、総検証スコアは、不正確な検出仮説を示すように調整され得る。正確な検出仮説が、依然として容器の外側に延在するか、又は容器の内面を画定する平面を超えて延在するテンプレート物体8290と一致し得る状況を説明するために、いくつかの公差が設けられてもよい。こうした状況は、例えば、容器がメッシュ容器である場合、又は物体が、容器の内面を凹凸状に又はその他の方法で変形させるのに十分硬い金属物体である場合に生じ得る。
処理13011では、検出仮説検証方法13000は、複数の三次元検証スコア及び複数の二次元検証スコアによる、検出仮説のセットからの検出仮説をフィルタリングすることをさらに含む。
実施形態では、複数のバリデータスコアを組み合わせて、検出仮説信頼レベルを決定するために使用され得る総バリデータスコアを生成してもよい。総バリデータスコア及び検出仮説信頼レベルは、対応する物体認識テンプレート4300Cが、シーン5013から取得された物体画像情報12002とどの程度よく合致するかを示し得る。仮説検出信頼レベルは、検出仮説を除外するか、又はシーン5013の物体5012を持ち上げるためロボット動作を計画する検出仮説を使用するかどうかを決定するために使用され得る。
実施形態では、検出仮説のフィルタリングは、連続フィルタリング技術に従って行われてもよく、バリデータスコアの各々は、対応する閾値と比較して、検出仮説セット8309からの所与の検出仮説8300を、保持するか、又はフィルタリングするかを決定する。各連続的なバリデータスコアは、閾値と比較されてもよく、バリデータスコアが閾値を超える場合、検出仮説8300は除外されてもよい。一例では、検出仮説セット8309からの検出仮説8300のフィルタリングは、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、法線ベクトルバリデータスコア、レンダリングされた合致バリデータスコア、及びテンプレートマッチングバリデータスコアを対応する閾値と比較すること、及び対応する閾値を超えるバリデータスコアと、任意の検出仮説8300を除去することを含み得る。上述の比較は、順次行われてもよい。上記の順序は、例示のみを目的としており、任意の順序を使用してもよい。連続フィルタリングが利用される場合、除外された検出仮説に対する追加のバリデータスコアを計算しないことによって、プロセスの効率が増大し得る。
実施形態では、バリデータスコアを対応する閾値と比較することは、バリデータスコアに関連付けられた信頼レベルを考慮に入れ得る。例えば、関連する閾値は、バリデータスコア信頼レベルに従って調整されてもよく、及び/又はバリデータスコアは、信頼レベルに従って調整されてもよい。したがって、不良合致を示す信頼度の低いバリデータスコアは、検出仮説として除外されてもよく、一方、信頼度の高いバリデータスコアは、より大きな影響を有してもよい。
したがって、三次元検証スコア又は二次元検証スコアのうちの一つ以上が、対応する閾値を超える場合(必要に応じて信頼レベルを考慮する)、検出仮説8300は、検出仮説セット8309から除去又はフィルタリングされ得る。検出仮説8300は、三次元検証スコア及び二次元検証スコアの全てが、対応する閾値の全てを超えることができない場合(必要に応じて信頼レベルを考慮に入れる)、検出仮説セット8309内に留まり得る。
フィルタリングプロセスは、物体画像情報12002に対応する各特定の物体5012に対して単一の検出仮説8300が残るまで継続され得る。こうしたことは、最も高い検出仮説信頼レベル(及び最も低い総検証スコア)を有する検出仮説を選択することによって、及び/又は各物体5012に対して単一の検出仮説8300のみが成功するまで、ますます下げられたフィルター閾値を有するフィルタリングプロセスを反復することによって、発生し得る。単一検出仮説8300は、フィルタリングされていない検出仮説8300であってもよい。実施形態では、最小信頼レベルは、検出仮説8300に設定されてもよい。こうした実施形態では、物体5012に対する最良適合検出仮説8300が信頼閾値を超えることができない場合、システムは、その物体に対する検出仮説8300を返さなくてもよい。
処理13013では、仮説検証方法13000は、検証後に、検出仮説のセットに残っているフィルタリングされていない検出仮説に従って、シーン内の一つ以上の物体を検出することを含む。フィルタリング後、物体画像情報12002に関連付けられた物体5012に対応する最良の検出仮説8300が識別されて、シーン内の物体5012を検出する。上述のように、仮説検証方法13000は、複数の異なる関連検出仮説8300に従って、複数の異なる物体5012を識別するためにも利用されてもよい。
いくつかの実施形態では、仮説検証方法13000は、重複検出処理をさらに含んでもよく、それによって、一つ以上の検出仮説8300が互いに比較されて、それらの対応するテンプレート物体8290が重複を有するかどうかを判定する。こうした重複は、重複を有する検出仮説8300の一方又は両方が不正確であることを示し得る。検出仮説8300は、フィルタリング処理13011後の重複について比較されてもよい。フィルタリング処理13011の前に、複数の検出仮説8300は、各物体5012に対して残ってもよく、したがって重複が予想される。フィルタリング処理13011の後、残りの検出仮説8300は、個々の物体5012に対する最良適合を表し、重複は予想されない。重複の検出に応答して、システムは、例えば、その信頼スコアに基づいて、重複検出仮説8300の一方又は両方を破棄するように構成されてもよく、又は重複検出仮説8300に関して追加の分析又は処理を行うように構成されてもよい。重複検出仮説8300を破棄、維持、又は再分析する決定は、重複の程度をさらに考慮し得る。
シーン5013中の一つ以上の物体5012の検出に続いて、少なくとも一つの処理回路1110は、一つ以上の物体5012の取り出しのためにロボット制御処理15000を実行するように処理し、ロボット3300の移動に一つ以上の物体5012を取り出しさせるコマンドを出力し得る。ロボット制御処理15000は、障害物検出、動作計画、動作実行を含み得る。
障害物検出は、取り出される物体5012の近傍の障害物を検出し、それを説明することを含み得る。本明細書で論じるように、物体5012は、他の品目及び物体を有する容器の中にあってもよい。したがって、他の品目及び物体、ならびに容器自体は、ロボット3300のロボット動作に対する障害物を表し得る。こうした障害物は、物体の近傍の障害物の位置を決定するために処理されてもよい画像情報12001及び/又は物体画像情報12002内に捕捉されてもよい。
動作計画は、例えば、ロボット3300が物体5012を取り出すために実行する軌道をプロットするなど、ロボット動作を計画することを含み得る。軌道は、識別された障害物を説明し、回避するようにプロットされ得る。動作実行は、ロボット3300に計画された動作を実行させるように、動作計画に関連するコマンドをロボット又はロボット制御システムに送信することを含み得る。
本明細書で論じる方法、例えば、方法6000、8000、10000、11000、及び13000は、物体認識テンプレートを作成し、物体認識テンプレートを利用して、シーン内の物体に対する検出仮説を生成、精密化、及び検証するために、協働して処理されてもよい。したがって、方法6000、8000、10000、11000、及び13000は、容器内から複数の物体を検出、識別、及び取り出すロボットプロセスを容易にするために利用されてもよい。
関連分野の当業者にとって、本明細書に記載する方法及び用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、例示的な例であり、本開示がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載及び添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為又は事象は、異なるシーケンスで行われてもよく、追加、統合、又は完全に省略し得ることも理解されるべきである(例えば、記載したすべての行為又は事象が、方法又はプロセスを実行するのに必要でなくてもよい)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、又はユニットにより行われていると記載しているものの、本明細書に記載する特徴及び機能は、構成要素、ユニット、又はモジュールのいかなる組み合わせによって行われてもよいことは理解されるべきである。従って、添付の特許請求の範囲で定義されるような、発明の趣旨又は範囲から逸脱することなく、様々な変更及び修正を当業者が及ぼし得る。
さらなる実施形態は、以下の実施形態を含む。
実施形態1は、シーン内の物体を識別するための物体認識テンプレートセットを生成するように構成された計算システムであって、物体を表す物体モデルを含む、物体の登録データを取得することと、三次元空間における物体モデルの複数の視点を決定することと、複数の視点の各々で、物体モデルの複数の外観を推定することと、複数の外観に従って、それぞれが複数の外観のそれぞれの一つに対応する複数の物体認識テンプレートを生成することと、複数の物体認識テンプレートを、ロボット制御システムに物体認識テンプレートセットとして伝達することと、を行うように構成された少なくとも一つの処理回路を備え、複数の物体認識テンプレートの各々は、シーン内の物体の画像情報を生成するカメラの光学軸に対して物体が有し得る姿勢を表す、計算システムである。
実施形態2は、三次元空間が表面によって囲まれ、複数の視点の各々が、表面上のカメラ位置に対応し、物体認識テンプレートの各々が、複数の視点のうちの一つの視点に対応し、一つの視点からの物体の外観を含む、実施形態1に記載の計算システムである。
実施形態3は、複数の視点の各々が、カメラ回転角度にさらに対応する、実施形態1に記載の計算システムである。
実施形態4は、物体モデルが三次元空間内に固定される、実施形態2に記載の計算システムである。
実施形態5は、三次元空間が実質的に球状であり、物体モデルが三次元空間の中心に固定される、実施形態2に記載の計算システムである。
実施形態6は、複数の視点が、表面にわたる均等分布に従って選択される、実施形態2に記載の計算システムである。
実施形態7は、各カメラ位置が、視点のセットに対応し、視点のセットの各視点は、異なるカメラ回転角度に対応する、実施形態3に記載の計算システムである。
実施形態8は、物体認識テンプレートのセットのサブセットが、異なる位置及び異なるカメラ回転角度に対応する視点に対応する物体認識テンプレートを含む、実施形態3に記載の計算システムである。
実施形態9は、複数の物体認識テンプレートに対して観察される姿勢の予測範囲に基づいて、複数の視点を決定することをさらに含む、実施形態2に記載の計算システムである。
実施形態10は、物体の対称性に基づいて複数の視点を決定することをさらに含む、実施形態2に記載の計算システムである。
実施形態11は、回転後に物体の物体外観が変化するという判定及び物体の軸の識別のうちの少なくとも一つに従って、物体の対称性を決定することをさらに含む、実施形態10に記載の計算システムである。
実施形態12は、シーン内の物体を識別するための物体認識テンプレートセットを生成する方法であって、物体を表す物体モデルを含む物体の登録データを取得することと、三次元空間における物体モデルの複数の視点を決定することと、複数の視点の各々で、物体モデルの複数の外観を推定することと、複数の外観に従って、それぞれが複数の外観のそれぞれの一つに対応する複数の物体認識テンプレートを生成することと、複数の物体認識テンプレートを、ロボット制御システムに物体認識テンプレートセットとして伝達することと、を含み、複数の物体認識テンプレートの各々は、シーン内の物体の画像情報を生成するカメラの光学軸に対して物体が有し得る姿勢を表す、方法である。
実施形態13は、三次元空間が表面によって囲まれ、複数の視点を表面上のカメラ位置に対応させ、物体認識テンプレートの各々を複数の視点のうちの一つの視点に対応させることをさらに含む、実施形態12に記載の方法である。
実施形態14は、複数の視点の各々をカメラ回転角度に対応させることを更に含む、実施形態13に記載の方法である。
実施形態15は、三次元空間内に物体モデルを固定することをさらに含む、実施形態13に記載の方法である。
実施形態16は、表面にわたる均等分布に従って複数の視点を選択することをさらに含む、実施形態13に記載の方法である。
実施形態17は、複数の物体認識テンプレートに対して観察される姿勢の予測範囲に基づいて、複数の視点を決定することをさらに含む、実施形態13に記載の方法である。
実施形態18は、物体の対称性に基づいて複数の視点を決定することをさらに含む、実施形態13に記載の方法である。
実施形態19は、回転後に物体の物体外観が変化するという判定及び物体の軸の識別のうちの少なくとも一つに従って、物体の対称性を決定することをさらに含む、実施形態18に記載の方法である。
実施形態20は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも一つの処理回路によって動作可能な非一時的コンピュータ可読媒体であって、シーン内の物体を識別するための物体認識テンプレートを生成するための方法を実行するための実行可能な命令を有する非一時的コンピュータ可読媒体である。当該方法は、物体を表す物体モデルを含む、物体の登録データを受信することと、物体モデルの複数の視点を三次元空間内で生成するための動作を行うことと、複数の視点の各々で、物体モデルの複数の外観を推定する動作を行うことと、複数の外観に従って、それぞれが複数の外観のそれぞれの一つに対応する複数の物体認識テンプレートを生成する動作を行うことと、複数の物体認識テンプレートをロボットシステムに物体認識テンプレートセットとして出力することと、を含み、複数の物体認識テンプレートの各々は、シーン内の物体の画像情報を生成するカメラの光学軸に対して物体が有し得る姿勢を表す。
実施形態21は、シーン内の物体を識別するための物体認識テンプレートを生成するように構成された計算システムであって、デジタルで表される物体を含む物体情報を取得することと、物体情報から二次元測定情報を抽出することと、物体情報から三次元測定情報を抽出することと、二次元測定情報及び三次元測定情報に従って、物体認識テンプレートを生成することとを行うように構成された少なくとも一つの処理回路を含む、計算システムである。
実施形態22は、デジタルで表される物体が、物体モデルであり、二次元測定情報及び三次元測定を抽出することは、選択された視点で物体モデルの特徴マップを生成するために実行される、実施形態21に記載の計算システムである。
実施形態23は、少なくとも一つの処理回路が、シーンの画像情報を取得すること、物体認識テンプレートへアクセスすること、及び二次元測定情報及び三次元測定情報と画像情報とを比較して、デジタルで表される物体に対応する物体を識別することを行うようにさらに構成される、実施形態21に記載の計算システムである。
実施形態24は、二次元測定情報を抽出することが、物体情報から勾配情報を抽出することを含み、勾配情報が、デジタルで表される物体の候補エッジの方向又は配向を示し、三次元測定情報を抽出することが、物体情報から表面法線ベクトル情報を抽出することを含み、表面法線ベクトル情報が、デジタルで表される物体の表面に対して法線の複数のベクトルを記述する、実施形態21に記載の計算システムである。
実施形態25は、物体情報が、物体の登録データを含み、デジタルで表される物体が、物体モデルを含む、実施形態21に記載の計算システムである。
実施形態26は、物体情報が、二次元画像情報及び三次元画像情報のうちの少なくとも一方を含む、実施形態21に記載の計算システムである。
実施形態27は、勾配情報が、デジタルで表される物体の複数の勾配抽出位置で抽出され、勾配情報を抽出することが、物体情報の二次元画像情報のピクセル強度を分析して、各勾配抽出位置での二次元画像情報のピクセル強度が変化する方向を測定することを含む、実施形態24に記載の計算システムである。
実施形態28は、表面法線ベクトル情報が、デジタルで表される物体の複数の表面法線位置で抽出され、表面法線ベクトル情報を抽出することが、各表面法線位置で、デジタルで表される物体の表面に対して法線の複数のベクトルを識別することを含む、実施形態24に記載の計算システムである。
実施形態29は、勾配情報が、デジタルで表される物体の複数の勾配抽出位置で抽出され、表面法線ベクトル情報が、デジタルで表される物体の複数の表面法線位置で抽出され、複数の勾配抽出位置が、複数の表面法線位置と異なっている、実施形態24に記載の計算システムである。
実施形態30は、複数の勾配抽出位置が、複数の表面法線位置と重複しない、実施形態29に記載の計算システムである。
実施形態31は、複数の勾配抽出位置が、デジタルで表される物体のエッジに配置され、複数の表面法線位置が、デジタルで表される物体のエッジから離れて配置される、実施形態29に記載の計算システムである。
実施形態32は、シーン内の物体を識別するための物体認識テンプレートを生成する方法であって、デジタルで表される物体を含む物体情報を取得することと、物体情報から二次元測定情報を抽出することと、物体情報から三次元測定情報を抽出することと、二次元測定情報及び三次元測定情報に従って、物体認識テンプレートを生成することと、を含む方法である。
実施形態33は、選択された視点で物体モデルの特徴マップを生成することをさらに含む、実施形態32に記載の方法である。
実施形態34は、シーンの画像情報を取得することと、物体認識テンプレートにアクセスすることと、二次元測定情報及び三次元測定情報を画像情報と比較して、デジタルで表される物体に対応するものとして物体を識別することをさらに含む、実施形態32に記載の方法である。
実施形態35は、二次元測定情報を抽出することが、物体情報から勾配情報を抽出することをさらに含み、勾配情報は、デジタルで表される物体の候補エッジの方向又は配向を示す、実施形態32に記載の方法である。
実施形態36は、三次元測定情報を抽出することが、物体情報から表面法線ベクトル情報を抽出することをさらに含み、表面法線ベクトル情報が、デジタルで表される物体の表面に対して法線の複数のベクトルを記述する、実施形態32に記載の方法である。
実施形態37は、デジタルで表される物体の複数の勾配抽出位置で勾配情報を抽出することと、物体情報の二次元画像情報のピクセル強度を分析して、各勾配抽出位置での二次元画像情報のピクセル強度が変化する方向を測定することとをさらに含む、実施形態35に記載の方法である。
実施形態38は、デジタルで表される物体の複数の表面法線位置で表面法線ベクトル情報を抽出することと、各表面法線位置で、デジタルで表される物体の表面に対して法線の複数のベクトルを識別することをさらに含む、実施形態36に記載の方法である。
実施形態39は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも一つの処理回路によって動作可能な非一時的コンピュータ可読媒体であって、シーン内の物体を識別するための物体認識テンプレートを生成するための方法を実行するための実行可能な命令で構成された非一時的コンピュータ可読媒体である。当該方法は、デジタルで表される物体を含む物体情報を受信することと、物体情報から二次元測定情報を抽出する動作を行うことと、物体情報から三次元測定情報を抽出する動作を行うことと、二次元測定情報及び三次元測定情報に従って、物体認識テンプレートをロボットシステムに出力することと、を含む。
実施形態40は、シーンの画像情報を受信することと、物体認識テンプレートにアクセスすることと、画像情報に対する二次元測定情報と三次元測定情報との比較をロボットシステムへ出力して、物体を、デジタルで表わされる物体に対応するものとして識別することと、をさらに含む、実施形態39に記載の実施形態である。
実施形態41は、アーム及び当該アームに接続されたエンドエフェクタを有するロボットと通信すると共に、視野を有するカメラと通信する少なくとも一つの処理回路を備え、少なくとも一つの処理回路は、一つ以上の物体が視野内にあるか又は視野内にあったとき、非一時的コンピュータ可読媒体に記憶された命令を実行するように構成され、命令は、シーン内の物体の物体画像情報を取得することと、テンプレート物体を表す対応する物体認識テンプレートを含む検出仮説を取得することと、テンプレート物体と物体画像情報との間の不一致を識別することと、物体画像情報の物体位置のセットに対応するテンプレート物体内のテンプレート位置のセットを識別することと、テンプレート位置のセットを、物体位置のセットに収束するように調整することと、調整後のテンプレート位置のセットに従って、調整された対応する物体認識テンプレートを含む、調整された検出仮説を生成することと、を含む、計算システムである。
実施形態42は、テンプレート位置のセットと、物体位置のセットの対応するものとの間で延びるそれぞれのベクトルを識別すること、及びそれぞれのベクトルに従って、テンプレート位置のセットを繰り返し調整することによって、テンプレート位置のセットを調整することをさらに含む、実施形態41に記載の計算システムである。
実施形態43は、テンプレート位置のセットを繰り返し調整することは、テンプレート物体に作用するそれぞれのベクトルの大きさ及び方向に従って、テンプレート位置の調整されたセットを繰り返し生成することと、調整されたテンプレート位置のセットに従って、それぞれのベクトルを調整することと、アライメントの品質が閾値を超えるまで、調整されたテンプレート位置のセットに従って新しいそれぞれのベクトルを識別することと、を含む、実施形態42に記載の計算システムである。
実施形態44は、アライメントの品質が、新しいそれぞれのベクトルによって画定されるミスアライメントのレベルに基づいて決定される、実施形態43に記載の計算システムである。
実施形態45は、アライメントの品質が、調整されたテンプレート位置のセットと、物体位置のセットとの間の距離測定値に基づいて決定される、実施形態43に記載の計算システムである。
実施形態46は、距離測定値がユークリッド距離測定値を含む、実施形態45に記載の計算システムである。
実施形態47は、距離測定値が、調整されたテンプレート位置のセット及び物体位置のセットに関連付けられた表面法線ベクトル間のコサイン距離を含む、実施形態45に記載の計算システムである。
実施形態48は、コサイン距離が、表面法線ベクトル間の角度を示し、角度のサイズがアライメントの品質と相関する、実施形態47に記載の計算システムである。
実施形態49は、距離測定値が、調整されたテンプレート位置のセットの第一の位置から、物体位置のセットの第二の位置の平面までの測定値である、実施形態45に記載の計算システムである。
実施形態50は、アライメントの品質が、調整されたテンプレート位置のセットと、物体位置のセットとの間の収束割合によって決定される、実施形態43に記載の計算システムである。
実施形態51は、物体認識テンプレートにシーンの画像情報をオーバーレイして、物体認識テンプレートのテンプレート勾配情報及びテンプレート表面法線ベクトル情報と、画像情報から抽出された物体勾配情報及び物体表面法線ベクトル情報との比較に基づいて物体画像情報を識別することによって、検出仮説を取得することをさらに含む、実施形態41に記載のシステムである。
実施形態52は、シーン内の物体の物体画像情報を取得することと、テンプレート物体を表す対応する物体認識テンプレートを含む検出仮説を取得することと、テンプレート物体と物体画像情報との間の不一致を識別することと、物体画像情報の物体位置のセットに対応するテンプレート物体内のテンプレート位置のセットを識別することと、テンプレート位置のセットを、物体位置のセットに収束するように調整することと、調整後のテンプレート位置のセットに従って、調整された対応する物体認識テンプレートを含む、調整された検出仮説を生成することと、を含む、方法である。
実施形態53は、テンプレート位置のセットを調整することが、テンプレート位置のセットと、物体位置のセットの対応するものとの間で延びるそれぞれのベクトルを識別することと、それぞれのベクトルに従ってテンプレート位置のセットを繰り返し調整することと、をさらに含む、実施形態52に記載の方法である。
実施形態54は、テンプレート物体に作用するそれぞれのベクトルの大きさ及び方向に従ってテンプレート位置の調整されたセットを繰り返し生成することと、調整されたテンプレート位置のセットに従ってそれぞれのベクトルを調整することと、アライメントの品質が閾値を超えるまで、調整されたテンプレート位置のセットに従って新しいそれぞれのベクトルを識別することと、をさらに含む、実施形態53に記載の方法である。
実施形態55は、新しいそれぞれのベクトルによって画定されるミスアライメントのレベルに基づいてアライメントの品質を決定することをさらに含む、実施形態54に記載の方法である。
実施形態56は、調整されたテンプレート位置のセットと物体位置のセットとの間の距離測定値に基づいてアライメントの品質を決定することをさらに含む、実施形態54に記載の方法である。
実施形態57は、調整されたテンプレート位置のセットと物体位置のセットとの間の収束割合によってアライメントの品質を決定することをさらに含む、実施形態54に記載の方法である。
実施形態58は、検出仮説を取得することは、物体認識テンプレートにシーンの画像情報をオーバーレイして、物体認識テンプレートのテンプレート勾配情報及びテンプレート表面法線ベクトル情報と、画像情報から抽出された物体勾配情報及び物体表面法線ベクトル情報との比較に基づいて、物体画像情報を識別することをさらに含む、実施形態52に記載の方法である。
実施形態59は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも一つの処理回路によって動作可能な非一時的コンピュータ可読媒体であって、検出仮説を精密化するための方法を実行するための実行可能な命令を有する非一時的コンピュータ可読媒体であって、当該方法が、シーン内の物体の物体画像情報を受信することと、テンプレート物体を表す対応する物体認識テンプレートを含む検出仮説を受信することと、テンプレート物体と物体画像情報との間の不一致を識別する処理を行うことと、物体画像情報の物体位置のセットに対応するテンプレート物体内のテンプレート位置のセットを識別する処理を行うことと、テンプレート位置のセットを調整して、物体位置のセットに収束させる処理を行うことと、調整後のテンプレート位置のセットに従って、調整された対応する物体認識テンプレートを含む、調整された検出仮説をロボットシステムに出力することと、を含む、非一時的コンピュータ可読媒体である。
実施形態60は、テンプレート位置のセットを調整するための処理が、テンプレート位置のセットと、物体位置のセットの対応するものとの間で延びるそれぞれのベクトルを識別する処理を実行することと、それぞれのベクトルに従ってテンプレート位置のセットを繰り返し調整した後に、テンプレート位置のセットを調整する処理を実行することを含む、実施形態59に記載の方法である。
実施形態61は、アーム及びアームに接続されたエンドエフェクタを有するロボットと通信すると共に、視野を有するカメラと通信する少なくとも一つの処理回路を備え、少なくとも一つの処理回路は、一つ以上の物体が視野内にあるか又は視野内にあったとき、非一時的コンピュータ可読媒体に格納された命令を実行するように構成され、命令は、シーン内の物体の物体画像情報を取得することと、それぞれがテンプレート物体を表す対応する物体認識テンプレートを含む検出仮説のセットを取得することと、検出仮説のセットの各検出仮説を検証することと、を含み、検証することは、検出仮説の物体認識テンプレートの三次元情報と、物体に対応する物体画像情報の三次元情報との比較に基づいて、複数の三次元検証スコアを生成することであって、複数の三次元検証スコアが遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、及び法線ベクトルバリデータスコアのうちの少なくとも一つを含むことと、検出仮説の対応する物体認識テンプレートの二次元情報及び物体画像情報の三次元情報の比較に基づいて、複数の二次元検証スコアを生成することとであって、複数の二次元検証スコアがレンダリングされた合致バリデータスコア及びテンプレートマッチングバリデータスコアのうちの少なくとも一つを含むことと、複数の三次元検証スコア及び複数の二次元検証スコアに従って、検出仮説のセットから検出仮説をフィルタリングすることと、検証後に検出仮説のセットに残っているフィルタリングされていない検出仮説に従って、シーン内の物体を検出することと、によって行われる、計算システムである。
実施形態62は、命令が、シーンから物体を取り出すためのロボット動作計画手順を実行することと、ロボットを動かして物体を取り出すためのコマンドを出力することと、をさらに含む、実施形態61に記載の計算システムである。
実施形態63は、複数の三次元検証スコアが、点群バリデータスコアを含み、点群バリデータスコアが、物体画像情報から得られた物体位置をテンプレート物体の表面と比較すること、物体位置と表面との間の不一致を識別して、点群バリデータスコアを得ることによって取得される、実施形態61に記載の計算システムである。
実施形態64は、無効な物体位置が、テンプレート物体の表面の下に物体位置を配置する不一致に従って識別され、点群バリデータスコアが、無効な物体位置に基づく、実施形態63に記載の計算システムである。
実施形態65は、複数の三次元検証スコアが、遮蔽バリデータスコアを含み、遮蔽バリデータスコアが、物体画像情報から得られた物体位置をテンプレート物体の表面と比較すること、物体位置と表面との間の不一致を識別して、遮蔽バリデータスコアを得ることによって取得される、実施形態61に記載の計算システムである。
実施形態66は、テンプレート物体の表面の上方又は外側に対応する物体位置を配置する不一致に従って遮蔽が識別され、遮蔽バリデータスコアは遮蔽に基づく、実施形態65に記載の計算システムである。
実施形態67は、複数の三次元検証スコアが、法線ベクトルバリデータスコアを含み、法線ベクトルバリデータスコアが、物体画像情報から得られた表面法線ベクトルを、テンプレート物体の対応する表面法線ベクトルと比較すること、表面法線ベクトルと対応する表面法線ベクトルとの間の不一致を識別して、法線ベクトルバリデータスコアを得ることによって取得される、実施形態61に記載の計算システムである。
実施形態68は、複数の三次元検証スコアが、穴合致バリデータスコアを含み、穴合致バリデータスコアが、物体画像情報から得られた物体位置を、テンプレート物体の構造と比較すること、テンプレート物体の構造内の空のボリュームに対応する位置の物体位置に従って、穴の無効性を識別するために、物体位置と前記構造との間の不一致を識別することによって取得される、実施形態61の計算システムである。
実施形態69は、レンダリングされた合致バリデータスコアが、シーン内の物体の二次元レンダリングを生成することと、物体の二次元レンダリングのレンダリングされたエッジを、テンプレート物体の抽出されたエッジと比較して、無効なエッジを識別することによって取得される、実施形態61に記載の計算システムである。
実施形態70は、検出仮説のセットの各検出仮説を検証することが、対応する物体認識テンプレートを、テンプレート物体に対応する物体以外のシーン要素と比較することをさらに含む、実施形態61に記載の計算システムである。
実施形態71は、推定された物体を表す対応する物体認識テンプレートをシーン要素と比較することが、テンプレート物体に対応する物体が容器内にあるかどうかを判定することを含む、実施形態70に記載の計算システムである。
実施形態72は、検出仮説のセットから検出仮説をフィルタリングすることが、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、法線ベクトルバリデータスコア、レンダリングされた合致バリデータスコア、及びテンプレートマッチングバリデータスコアを対応する閾値と比較することを含み、三次元検証スコア又は二次元検証スコアのいずれかが、対応する閾値を超えることができない場合、検出仮説が、検出仮説のセットから削除され、三次元検証スコア及び二次元検証スコアが、対応する閾値の全てを超える場合、検出仮説が検出仮説のセット内に残る、実施形態71に記載の計算システムである。
実施形態73は、シーン内の物体の物体画像情報を取得することと、それぞれがテンプレート物体を表す対応する物体認識テンプレートを含む検出仮説のセットを取得することと、検出仮説のセットの各検出仮説を、検出仮説の物体認識テンプレートの三次元情報と、物体に対応する物体画像情報の三次元情報との比較に基づいて、複数の三次元検証スコアを生成することであって、複数の三次元検証スコアが、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、及び法線ベクトルバリデータスコアのうちの少なくとも一つを含む、複数の三次元検証スコアを生成することと、検出仮説の対応する物体認識テンプレートの二次元情報と物体画像情報の三次元情報との比較に基づいて、複数の二次元検証スコアを生成することであって、複数の二次元検証スコアが、レンダリングされた合致バリデータスコア及びテンプレートマッチングバリデータスコアのうちの少なくとも一方を含む、複数の二次元検証スコアを生成することと、複数の三次元検証スコア及び複数の二次元検証スコアに従って、検出仮説のセットから検出仮説をフィルタリングすることと、検証後に前記検出仮説のセットに残っているフィルタリングされていない検出仮説に従ってシーン内の物体を検出することとによって検証することと、を含む、方法である。
実施形態74は、シーンから物体を取り出すためのロボット動作計画手順を実行することと、ロボットを移動して物体を取り出すためのコマンドを出力することと、をさらに含む、実施形態73に記載の方法である。
実施形態75は、複数の三次元検証スコアを生成することが、法線ベクトルバリデータスコアを取得することと、法線ベクトルバリデータスコアが、物体画像情報から得られた表面法線ベクトルを、テンプレート物体の対応する表面法線ベクトルと比較することと、表面法線ベクトルと対応する表面法線ベクトルとの間の不一致を識別して、法線ベクトルバリデータスコアを得ることとによって取得されることと、をさらに含む、実施形態73に記載の方法である。
実施形態76は、穴合致バリデータスコアを取得することが、物体画像情報から得られた物体位置をテンプレート物体の構造と比較することと、物体位置と構造との間の不一致を識別して、テンプレート物体の構造中の空のボリュームに対応する位置の物体位置による穴の無効性を識別することとを含む、実施形態73に記載の方法である。
実施形態77は、レンダリングされた合致バリデータスコアを取得することが、シーン内の物体の二次元レンダリングを生成することと、無効なエッジを識別するために、物体の二次元レンダリングのレンダリングされたエッジをテンプレート物体の抽出されたエッジと比較することとを含む、実施形態73に記載の方法である。
実施形態78は、検出仮説のセットの各検出仮説を検証することが、対応する物体認識テンプレートを、テンプレート物体に対応する物体以外のシーン要素と比較することをさらに含む、実施形態73に記載の方法である。
実施形態79は、検出仮説のセットから検出仮説をフィルタリングすることが、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、法線ベクトルバリデータスコア、レンダリングされた合致バリデータスコア、及びテンプレートマッチングバリデータスコアを対応する閾値と比較することと、三次元検証スコア又は二次元検証スコアのいずれかが、対応する閾値を超えることができない場合、検出仮説のセットから検出仮説を除去することと、三次元検証スコア及び二次元検証スコアが対応する閾値のすべてを超える場合、検出仮説を、検出仮説のセット内に維持することと、を含む、実施形態73に記載の方法である。
実施形態80は、ロボットシステムと通信するように構成された通信インターフェースを介して少なくとも一つの処理回路によって動作可能な非一時的コンピュータ可読媒体であって、検出仮説を検証するための方法を実行するための実行可能な命令を有する非一時的コンピュータ可読媒体であって、方法は、シーン内の物体の物体画像情報を受信することと、それぞれがテンプレート物体を表す対応する物体認識テンプレートを含む検出仮説のセットを受信することと、検出仮説の物体認識テンプレートの三次元情報と、物体に対応する物体画像情報の三次元情報との比較に基づいて、遮蔽バリデータスコア、点群バリデータスコア、穴合致バリデータスコア、及び法線ベクトルバリデータスコアのうちの少なくとも一つを含む、複数の三次元検証スコアを生成する処理を行うことと、検出仮説の対応する物体認識テンプレートの二次元情報及び物体画像情報の三次元情報を比較することに基づいて、レンダリングされた合致バリデータスコア及びテンプレートマッチングバリデータスコアのうちの少なくとも一つを含む、複数の二次元検証スコアを生成する処理を実行することと、複数の三次元検証スコア及び複数の二次元検証スコアに従って、検出仮説のセットから検出仮説をフィルタリングする処理を行うことと、検証後に、検出仮説のセットに残っているフィルタリングされていない検出仮説に従って、シーン内の物体を検出することと、シーン内の検出された物体をロボットシステムに出力することと、を含む、非一時的コンピュータ可読媒体である。
実施形態81は、三次元空間が実質的に球状であり、物体モデルが三次元空間の中心に固定される、実施形態13に記載の方法である。
実施形態82は、各カメラ位置が、視点のセットに対応し、視点のセットの各視点は、異なるカメラ回転角度に対応する、実施形態14に記載の方法である。
実施形態83は、物体認識テンプレートのセットのサブセットが、異なる位置及び異なるカメラ回転角度に対応する視点に対応する物体認識テンプレートを含む、実施形態14に記載の方法である。
実施形態84は、デジタルで表される物体が、物体モデルであり、二次元測定情報及び三次元測定を抽出することが、選択された視点で物体モデルの特徴マップを生成するために実施される、実施形態32に記載の方法である。
実施形態85は、物体情報が、物体の登録データを含み、デジタルで表される物体が、物体モデルを含む、実施形態32に記載の方法である。
実施形態86は、物体情報が、二次元画像情報及び三次元画像情報のうちの少なくとも一方を含む、実施形態32に記載の方法である。
実施形態87は、勾配情報が、デジタルで表される物体の複数の勾配抽出位置で抽出され、表面法線ベクトル情報が、デジタルで表される物体の複数の表面法線位置で抽出され、複数の勾配抽出位置が、複数の表面法線位置と異なっている、実施形態36に記載の方法である。
実施形態88は、複数の勾配抽出位置が、複数の表面法線位置と重複しない、実施形態87に記載の方法である。
実施形態89は、複数の勾配抽出位置が、デジタルで表される物体のエッジに配置され、複数の表面法線位置が、デジタルで表される物体のエッジから離れて配置される、実施形態87に記載の方法である。
実施形態90は、距離測定値がユークリッド距離測定値を含む、実施形態56に記載の方法である。
実施形態91は、距離測定値が、調整されたテンプレート位置のセット及び物体位置のセットに関連付けられた表面法線ベクトル間のコサイン距離を含む、実施形態56に記載の方法である。
実施形態92は、コサイン距離が、表面法線ベクトル間の角度を示し、角度のサイズがアライメントの質と相関する、実施形態91に記載の方法である。
実施形態93は、距離測定値が、調整されたテンプレート位置のセットの第一の位置から、物体位置のセットの第二の位置の平面までの測定値である、実施形態56に記載の方法である。
実施形態94は、複数の三次元検証スコアが、点群バリデータスコアを含み、点群バリデータスコアが、物体画像情報から取得された物体位置をテンプレート物体の表面と比較すること、物体位置と表面との間の不一致を識別して、点群バリデータスコアを得ることによって取得される、実施形態73に記載の方法である。
実施形態95は、無効な物体位置が、テンプレート物体の表面の下に物体位置を配置する不一致に従って識別され、点群バリデータスコアが、無効な物体位置に基づく、実施形態94に記載の方法である。
実施形態96は、複数の三次元検証スコアが、遮蔽バリデータスコアを含み、遮蔽バリデータスコアが、物体画像情報から得られた物体位置をテンプレート物体の表面と比較すること、物体位置と表面との間の不一致を識別して、遮蔽バリデータスコアを得ることによって取得される、実施形態73に記載の方法である。
実施形態97は、遮蔽が、テンプレート物体の表面の上方又は外側に対応する物体位置を配置する不一致に従って識別され、遮蔽バリデータスコアは、遮蔽に基づく、実施形態96に記載の方法である。
実施形態98は、推定された物体を表す対応する物体認識テンプレートをシーン要素と比較することが、テンプレート物体に対応する物体が容器内にあるかどうかを判定することを含む、実施形態78に記載の方法である。