本開示の一態様は、検出検証に使用され得る、注意ベースのテンプレートマッチングを実施するように構成されている計算システムに関する。注意ベースのテンプレートマッチングは、画像情報によって表されるシーンの外観が、任意のモデルテンプレートに一致するかどうかを決定することを伴い得る。
図1Aは、物体検出、すなわちより具体的には、物体認識を実行するためのシステム1000を示している。より詳細には、システム1000は、計算システム1100およびカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を描写するか、もしくはそうでなければ表し、またはより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、または他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠または他の容器などの、こうした施設に位置する物体を表し得る。システム1000は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて物体認識または物体登録を実施すること、および/または画像情報に基づいてロボット相互作用計画を実施することなど、画像情報を生成、受信、および/または処理するよう構成され得る(用語「および/または」および「または」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器または他の物体との間のロボット相互作用を促進するように、施設でロボットを制御するために使用され得る。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置し得る。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラおよび/または3Dカメラであり得る。例えば、図1Bは、計算システム1100、ならびにカメラ1200Aおよびカメラ1200B(その両方がカメラ1200の実施形態であり得る)を含む、システム1000A(システム1000の実施形態であり得る)を示している。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を記述する2D画像を含むまたは形成する、2D画像情報を生成するように構成される2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、または形成する3D画像情報を生成するように構成される3Dカメラ(空間構造感知カメラまたは空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の位置など、カメラ1200Bに対する様々な位置のそれぞれの奥行き値を記述する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野または物体の表面のこれらの位置はまた、物理的位置と呼んでもよい。この実施例の奥行き情報は、物体が3次元(3D)空間の中で空間的にどのように配設されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野中にある物体の1つ以上の表面上の位置を記述する、点群を含んでもよく、またはそれを生成するために使用され得る。より具体的には、空間構造情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を記述し得る。
実施形態では、システム1000が、カメラ1200の環境でロボットと様々な物体との間のロボット相互作用を促進するための、ロボット操作システムであり得る。例えば、図1Cは、図1Aおよび図1Bのシステム1000/1000Aの実施形態であり得るロボット操作システム1000Bを示している。ロボット操作システム1000Bは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある1つ以上の物体、例えば、箱、木枠、ビン、またはその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、1つの位置から容器を拾い上げ、それらを別の位置に移動するように構成され得る。一部の事例では、ロボット1300は、容器または他の物体のグループが降ろされて、例えばベルトコンベヤーに移動されるといった、パレットから降ろす操作を実施するために使用され得る。一部の実装形態では、カメラ1200は、ロボット1300のロボットアームなど、ロボット1300に取り付けられてもよい。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫または他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。
一実施形態では、図1A~図1Cの計算システム1100は、ロボットコントローラーとも呼ばれ得るロボット1300を形成してもよく、またはロボット1300に組み込まれてもよい。ロボット制御システムは、システム1000Bに含まれ得、例えば、ロボット1300と容器または他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。こうした実施形態では、計算システム1100は、例えば、カメラ1200/1200A/1200Bによって生成された画像情報に基づいて、このようなコマンドを生成するように構成され得る。例えば、計算システム1100は、画像情報に基づいて運動計画を決定するように構成されてもよく、運動計画は、例えば、物体を掴むか、または他の方法でピックアップすることを意図し得る。計算システム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成し得る。
実施形態では、計算システム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/1000A/1000Bの実施形態であってもよく、例えば、カメラ1200によって生成される画像情報を記憶するための外部バッファまたはリポジトリとして作用し得る、システム1000Cを示している。こうした一実施例では、計算システム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は、サーバー(例えば、1つ以上のサーバーブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピュータ装置、および/もしくは他の任意の他の計算システムを含んでもよく、またはそれらとして構成され得る。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一のコンピュータ装置(例えば、デスクトップコンピュータ)であってもよく、または複数のコンピュータ装置を含んでもよい。
図2Aは、計算システム1100の実施形態を示すブロック図を提供する。この実施形態における計算システム1100は、少なくとも1つの処理回路1110、および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、および/またはオンボードサーバー)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に動作可能に結合された別個の/スタンドアロンコントローラーに含まれてもよい。プロセッサは、プログラム命令を実装して、他の装置を制御/インターフェースし、それによって、計算システム1100に動作、タスク、および/または操作を実行させ得る。
実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラー(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、または任意の他の処理回路を含む。
実施形態では、計算システム1100の一部である非一時的コンピュータ可読媒体1120が、上で考察された中間の非一時的コンピュータ可読媒体1400の代替または追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせなどの記憶装置であってもよく、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、または任意の他の記憶装置などであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120は、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、物体認識操作を実施するために使用される1つ以上のモデルテンプレートを記憶し得る。非一時的コンピュータ可読媒体1120は、処理回路1110によって実行されるとき、処理回路1110に、図4に関して記載する操作など、本明細書に記載する1つ以上の手法を行わせるコンピュータ可読プログラム命令を、代替的または追加的に記憶し得る。
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む計算システム1100Aを描写する。通信インターフェース1130は、例えば、図1A~図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1130は、図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1130が、ロボット制御システムと通信するように構成され得る。通信インターフェース1130はまた、通信構成要素または通信回路と呼ばれる場合があり例えば、有線または無線プロトコルによって通信を実施するように構成される通信回路を含んでもよい。実施例として、通信回路が、RS-232ポートコントローラー、USBコントローラー、イーサネットコントローラー、Bluetooth(登録商標)コントローラー、PCIバスコントローラー、任意の他の通信回路、またはそれらの組み合わせを含んでもよい。
一実施形態では、図2Cに示されるように、非一時的コンピュータ可読媒体1120は、1つ以上のモデルテンプレートを記憶するためのテンプレート記憶空間1128を含み得る。1つ以上のモデルテンプレートの各々は、同じ外観および/または同じ構造を有することが予期されるまたは知られている箱のグループなどの、物体または物体のグループをモデル化するか、またはそうでなければ記述してもよい。例えば、特定のモデルテンプレートは、箱の1つ以上の外面上に印刷された共通のロゴ、絵、または他の視覚的詳細を有する、箱または他の物体のグループを表し得る。この実施例では、物体のグループは、物体のクラスを形成し得る。言い換えれば、それらは、共通の物体タイプを有してもよい。一部の実装形態では、1つ以上のモデルテンプレートは、物体または物体タイプのクラスを表すか、またはそれに属する特定の物体に対して実施される、物体登録プロセスを介して生成され得る。物体登録プロセスは、物体を表す画像情報を使用して、物体の外観および/または構造のモデルまたはその他の記述を生成してもよく、ここで、記述は、物体のクラスを記述するためのモデルテンプレートの一部であってもよい。一部の実施形態では、モデルテンプレートは、箱または他の多面体に関連付けられてもよく、各モデルテンプレートは、物体の各特定の面(例えば、上、側面、下など)の外観を記述するようにさらに構成されている。
次いで、モデルテンプレートは、例えば、シーン内の物体の外観を表す画像情報を、テンプレート記憶空間1128内のモデルテンプレート(物体登録中に生成されてもよく、または他の方法で取得された場合もある)と比較することを含む、テンプレートマッチングを実施するために、計算システム1100によって使用されてもよい。例えば、計算システム1100は、以下で論じるように、テンプレートおよび画像情報の比較を通して収集された情報を使用して、一致スコアを生成し得る。モデルテンプレートおよびテンプレートマッチング比較は、以下の図4に関連してさらに詳細に説明される。
実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、図2Dは、計算システム1100/1100A/1100Bの実施形態である計算システム1100Cを示し、その中の処理回路1110は、物体認識モジュール1121、物体登録モジュール1122、および運動計画モジュール1129を含む1つ以上のモジュールによってプログラムされる。
実施形態では、物体認識モジュール1121は、以下でより詳細に論じるように、画像情報がモデルテンプレートに一致するかどうか、または画像情報がモデルテンプレートに一致する程度を決定するように構成され得る。物体認識モジュール1121は、例えば、スコアリングモジュール1121aおよびエッジ検出モジュール1121bを含み得る。例えば、スコアリングモジュール1121aは、方法4000のステップ4004に関して以下で論じるRsおよびRbなどのモデルテンプレート一致スコアを生成するように構成され得る。エッジ検出モジュール1121bは、方法4000のステップ4006および4008に関して以下で論じる、ES1およびET1などのエッジビットマップを生成するように構成され得る。物体登録モジュール1122は、物体の外観に基づいてモデルテンプレートを生成するように構成され得る。物体登録モジュールによって生成されるモデルテンプレートは、物体認識モジュール1121による物体認識を実施するときに、別の物体の外観がモデルテンプレートのいずれかに一致するかどうかを決定するために使用され得る。運動計画モジュール1129は、ロボットの移動を計画するように構成され得る。例えば、運動計画モジュール1129は、個々の配置位置/配向を導出し、対応する運動計画、または物体の配置および/もしくは積み重ねのためのそれらの組み合わせを計算してもよい。
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを実施するものとして説明され得る。
図3Aおよび図3Bは、テンプレートマッチングが実施され得る例示の環境を示している。より具体的には、図3Aは、計算システム1100、ロボット3300、およびカメラ3200を含む、システム3000(図1A~図1Dのシステム1000/1000A/1000B/1000Cの実施形態であり得る)を描写する。カメラ3200は、カメラ1200の実施形態であってもよく、カメラ3200のカメラ視野3210内のシーンを表す、またはより具体的には、物体3510、3520、3530、3540、および3550などのカメラ視野3210内の物体を表す、画像情報を生成するように構成され得る。一実施例では、物体3510~3540の各々は、例えば、箱または木枠などの容器であってもよく、一方で、物体3550は、例えば、容器が配置されるパレットであり得る。
実施形態では、カメラ視野内の物体は、物体の外側表面上に、視覚的マーキングなどの視覚的詳細(可視詳細とも呼ぶ)を有し得る。例えば、図3Aおよび図3Bでは、物体3510、3520、3530、3540は、物体3510~3540のそれぞれの外側表面(例えば、上部表面)上に、それぞれ印刷されるか、またはそうでなければ配置される視覚的マーキング3512、3522、3532、3542を有し得る。実施例として、視覚的マーキングは、可視線(例えば、直線または曲線)、多角形、視覚的パターン、または他の視覚的マーキングなどの可視形状を含み得る。一部のシナリオでは、視覚的マーキング(例えば、可視線)は、物体の外側表面上に表示されるシンボルまたは図面を形成してもよく、またはその一部であり得る。記号は、例えば、ロゴまたは文字(例えば、英数字)を含み得る。一部のシナリオでは、容器の外側表面または他の物体上の視覚的詳細は、容器の外側表面上に配置される材料の層(例えば、包装テープのストリップまたは郵送用ラベルのシート)の輪郭によって形成され得る。
実施形態では、図3Aのシステム3000は、光源3600などの1つ以上の光源を含み得る。光源3600は、例えば、発光ダイオード(LED)、ハロゲンランプ、または任意の他の光源であってもよく、可視光、赤外線、または物体3510~3550の表面に向かって任意の他の形態の光を放射するように構成され得る。一部の実施形態では、計算システム1100は、光源3600と通信して、光源3600が起動されたときを制御するように構成され得る。他の実装形態では、光源3600は、計算システム1100とは独立して動作し得る。
一実施形態では、システム3000は、2D画像情報5600を生成するように構成される2Dカメラおよび3D画像情報を生成するように構成される3Dカメラを含む、複数のカメラを含み得る。2D画像情報5600(例えば、カラー画像またはグレースケール画像)は、カメラ視野3210における、物体3510~3550などの1つ以上の物体の外観を記述し得る。例えば、2D画像情報5600は、物体3510~3540の外側表面(例えば、上部表面)上に配置される視覚的マーキング3512~3542、および/またはそれらの外側表面の輪郭などの視覚的詳細を捕捉してもよく、または他の方法で、表し得る。実施形態では、3D画像情報は、物体3510~3550のうちの1つ以上の構造を記述してもよく、物体の構造は、物体の構造または物体の物理的構造とも呼ばれ得る。例えば、3D画像情報は、奥行きマップを含んでもよく、より一般的には、カメラ3200に対する、または何らかの他の基準点に対する、カメラ視野3210の様々な位置のそれぞれの奥行き値を記述し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する位置は、物体3510~3550のそれぞれの上部表面上の位置などの、カメラ視野3210の様々な表面上の位置(物理的位置とも称する)であり得る。一部の実例では、3D画像情報は、物体3510~3550、またはカメラ視野3210内のいくつかの他の物体の1つ以上の外側表面上の様々な位置を記述する、複数の3D座標を含み得る、点群を含み得る。点群は、図5Bに示され、以下でさらに詳細に説明される。閉塞は、カメラ視野3210内に存在し、物体3510~3550の一部分を遮断または閉塞し得る。実施形態では、本明細書に記載されるようなテンプレートマッチングは、シーンとモデルテンプレートとの比較をより良く促進するように、2D画像情報5600または3D画像情報5700の生成中に物体3510~3550の閉塞部分をマスキングすることを伴い得る。
図3Aの実施例では、ロボット3300(ロボット1300の実施形態であり得る)は、ロボット基部3310に取り付けられる一端を有し、かつロボットグリッパなどのエンドエフェクター装置3330に取り付けられるか、またはそれらによって形成される別の端を有する、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクター装置3330は、ロボット3300の環境で1つ以上の物体(例えば、3510/3520/3530/3540)と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3510~3540のうちの少なくとも1つを掴むか、または他の方法でピックアップすることを含み得る。例えば、ロボット相互作用は、ロボット3300が、物体3550(例えば、パレットまたは他のプラットフォーム)から物体3510~3540(例えば、箱)をピックアップし、および物体3510~3540を目的地の位置に動かすために使用される、パレットから降ろす操作の一部であり得る。さらに、上述したように、運動計画モジュール1129を使用して、前述の移動、回転、またはそれらの組み合わせを計画して、物体を配置、積み重ね、または移動してもよい。
一実施形態では、ロボット3300は、構造部材を操作するため、および/またはロボットユニットを輸送するためになど、作業を実装するために使用される情報を取得するように構成された追加のセンサをさらに含み得る。センサは、ロボット3300および/または周囲の環境の1つ以上の物理的特性(例えば、その状態、条件、および/または1つ以上の構造部材/関節の位置)を検出または測定するよう構成された装置を含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
上述のように、本開示の一態様は、シーンの中の物体の表面上の視覚的詳細(存在する場合)によって形成される輪郭またはエッジを考慮するか、または強調する方法で、テンプレートマッチングを実施することに関する。こうしたテンプレートマッチングの様式は、注意ベースのテンプレートマッチングまたはエッジベースのテンプレートマッチングと呼ばれ、シーンがモデルテンプレートに一致するときに、エリアベースのテンプレートマッチングのみで達成され得るときよりも、より正確に示すために、テンプレートマッチングの能力においてより高いレベルの信頼性をもたらし得る。
実施形態では、エリアベースのテンプレートマッチングは、モデルテンプレートとシーンとの間の類似性のレベルを決定する。1つの可能な方法は、(図5Aに示すような)2D画像情報5600の各ピクセルをモデルテンプレートの各ピクセルと比較することを含み、この方法は、ピクセル毎の一致として知られ得る。サンプリングまたはその他の処理技術などの他の方法を使用して、エリアベースのテンプレートマッチングを完了し得る。エリアベースのテンプレートマッチングプロセスはまた、エリアベースの比較と呼ばれ得る。概して、以下でさらに詳細に説明するが、モデルテンプレートとシーンとの間の類似性を使用して、画像の類似性に基づいてスコアを生成することができる。
物体の表面上の視覚的詳細を使用した、エッジベースのテンプレートマッチング、またはそうでない場合はエッジベースのマッチングまたは注意ベースのテンプレートマッチングとしても知られるエッジベースのテンプレートマッチングはまた、類似性スコアの生成に使用され得る。例えば、2D画像情報5600およびモデルテンプレートを比較して、画像内に見出されるエッジの位置の類似性に基づいてスコアを生成することができる。一般に、エッジは、シーンにおける絵、ロゴ、もしくは視覚的詳細によって形成されるか、またはテンプレートによって記述される輪郭を記述し得る。エッジベースのテンプレートマッチングは、シーンの中に現れるエッジが、テンプレートによって記述されるエッジに一致するかどうか、またはどのように一致するかを検査し得る。こうした検査または比較は、シーンにおける視覚的詳細の輪郭が、モデルテンプレートによって記述される視覚的詳細の輪郭とどの程度一致するかの指標を提供し得る。したがって、エッジベースのテンプレートマッチングは、エッジベースまたはラインベースの一致に何らかの注意または重点を置くことができる。
図4は、テンプレートマッチングを実施するための方法4000のステップを示す、フロー図を提供する。実施形態では、方法4000は、例えば、図2A~図2D、または図3Aの計算システム1100によって、またはより具体的には、計算システム1100の少なくとも1つの処理回路1110によって行われてもよい。一部のシナリオでは、少なくとも1つの処理回路1110が、非一時的コンピュータ可読媒体(例えば、1120)上に記憶される命令を実行することによって、方法4000を行ってもよい。例えば、命令によって、処理回路1110に、方法4000を行い得る図2Dに示されたモジュールのうちの1つ以上を実行させてもよい。実施例として、以下で論じるステップ4002~4014のうちの1つ以上は、処理回路1110によって行われてもよい。方法4000が、ロボット相互作用を計画すること、またはロボット相互作用移動コマンド4014を生成することを伴う場合、こうしたステップは、例えば、ロボット制御システムによって行われてもよい。実施形態では、方法4000は、計算システム1100が、図3Aのロボット3300およびカメラ3200など、ロボットおよびカメラと、または本開示で考察される任意の他のカメラもしくはロボットと通信する環境で行われてもよい。図3Aに示されるような一部のシナリオでは、カメラ(例えば、3200)は、静止構造(例えば、部屋の天井)に装着され得る。他のシナリオでは、カメラは、ロボットアーム(例えば、3320)、またはより具体的には、ロボット(例えば、3300)のエンドエフェクター装置(例えば、3330)上に装着され得る。
実施形態では、方法4000の1つ以上のステップは、物体のグループ(例えば、3510~3550)が、現在、カメラ(例えば、3200)のカメラ視野(例えば、3210)にあるときに行われてもよい。例えば、方法4000の1つ以上のステップは、物体のグループがカメラ視野(例えば、3210)内に入った直後に、またはより一般的には、物体のグループがカメラ視野内にある間に、行われてもよい。一部のシナリオでは、方法4000の1つ以上のステップは、物体のグループがカメラ視野内にあるときに行われてもよい。例えば、物体のグループがカメラ視野(例えば、3210)にあるとき、カメラ(例えば、3200)は、物体のグループを表す画像情報を生成してもよく、画像情報を計算システム(例えば、1100)に通信し得る。計算システムは、物体のグループがまだカメラ視野内にある間、または物体のグループがもはやカメラ視野内にないときでさえも、画像情報に基づいて方法4000の1つ以上のステップを実施し得る。
実施形態では、方法4000は、計算システム1100が、カメラ(例えば、1200/3200)のカメラ視野(例えば、3210)内の物体を表す画像情報を取得するステップ4002から開始されてもよく、またはそうでなければ、ステップ4002を含んでもよい。一部の実例では、物体は、カメラ1200/3200のカメラ視野3210における1つ以上の物体(例えば、3510~3540)の第1の物体(例えば、3510)であってもよい。画像情報5600、5700は、物体のグループがカメラ視野3210にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、第1の物体3510に関連付けられた物体の外観を少なくとも記述してもよい。物体の外観は、カメラ1200/3200の視点からの第1の物体3510の外観を記述する。カメラ視野に複数の物体(例えば、3210~3240)がある場合、カメラは、複数の物体を表す画像情報の第1のセットを生成し得る。このシナリオでは、複数の物体の第1の物体(例えば、3510)を表すためにステップ4002で取得される画像情報は、以下でより詳細に論じるように、画像情報の第1のセットのサブセットまたは他の部分であってもよい。画像情報は、物体のグループがカメラ視野にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、および、例えば、2D画像情報および/または3D画像情報を含み得る。
一例として、図5Aは、画像情報の第1のセット、より具体的には、2D画像情報5600を示し、これは、上述のように、カメラ3200によって生成され、図3Aおよび図3Bの物体3510~3550を表す。より具体的には、2D画像情報5600は、グレースケール、またはカラー画像であり得、カメラ3200の視点からの物体3510~3550の外観を記述し得る。実施形態では、2D画像情報5600は、カラー画像の単一色チャネル(例えば、赤、緑、または青のチャネル)に対応し得る。カメラ3200が物体3510~3550の上方に配置される場合、2D画像情報5600は、物体3510~3550のそれぞれの上部表面の外観を表し得る。図5Aの実施例では、2D画像情報5600は、物体3510~3550のそれぞれの表面を表す、それぞれの部分5610、5620、5630、5640、および5650(画像部分とも呼ぶ)を含み得る。図5Aでは、2D画像情報5600の各画像部分5610~5650は、画像領域、すなわちより具体的には、ピクセル領域(画像がピクセルによって形成される場合)であり得る。2D画像情報5600のピクセル領域内の各ピクセルは、座標[U、V]のセットによって記述される位置を有するものとして特徴付けられ得、図5Aおよび図5Bに示されるように、カメラ座標系または他の何らかの座標系に相対的な値を有し得る。ピクセルの各々はまた、0~255または0~1023の値などの、強度値を有してもよい。さらなる実施形態では、ピクセルの各々は、様々なフォーマット(例えば、色相、飽和、強度、CMYK、RGBなど)のピクセルに関連付けられた任意の追加情報を含んでもよい。
上述のように、ステップ4002で取得される画像情報は、一部の実施形態では、2D画像情報5600などの画像のすべてまたは一部分であってもよい。例えば、ステップ4002で取得された画像情報が図3Aの第1のオブジェクト3510を表す場合、画像情報は、画像部分5610を参照することができる。こうした実施例では、計算システム1100は、画像部分5610に関連付けられた画像情報のみを取得するように、2D画像情報5600から画像部分5610を抽出するように構成されてもよい。例えば、計算システム1100は、図5Bに示される2D画像情報5600および/または3D画像情報5700に基づいて画像セグメンテーション操作を実施することによって、画像部分5610を抽出することができる。一部の実装形態では、画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が2D画像情報5600の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3210)内の個々の物体を表すことに限定された画像部分(例えば、5610)を識別することを含み得る。
図5Bは、ステップ4002で取得された画像情報が3D画像情報5700である実施例を示している。より具体的には、3D画像情報5700は、物体3510~3550の1つ以上の表面(例えば、上部表面、または他の外側表面)上の様々な位置のそれぞれの奥行き値を示す、例えば、奥行きマップまたは点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報5700の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3210)内の個々の物体を表すことに限定された画像部分(例えば、5710)を識別することを含み得る。
それぞれの奥行き値は、3D画像情報5700を生成するカメラ3200に対するものであってもよく、またはいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報5700は、カメラ視野(例えば、3210)の中にある物体の構造上の様々な位置に対するそれぞれの座標を含む点群を含み得る。図5Bの実施例では、点群は、物体3510~3550のそれぞれの表面上の位置を記述する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、または何らかの他の座標系に対する値を有してもよい。例えば、3D画像情報5700は、物体3510の表面上の物理的位置とも呼ばれる、位置57101~5710nのセットのそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の部分5710を含み得る。さらに、3D画像情報5700は、第2の部分5720、第3の部分5730、および第4の部分5740をさらに含み得る。次に、これらの部分は、それぞれ、物体5620、5630、および5640に対応する、それぞれ57201~5720n、57301~5730n、および57401~5740nによって表され得る、位置のセットに対するそれぞれの奥行き値をさらに示し得る。位置57501~5750nを含む第5の部分5750は、物体5650に対応してもよい。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得ることが想定される。上述のように、ステップ4002で取得された3D画像情報5700は、一部の実例では、カメラによって生成される3D画像情報5700の第1のセットの一部分であってもよい。図5Bの実施例では、ステップ4002で得られた3D画像情報5700が図3Aの第1の物体3510を表す場合、3D画像情報5700は、画像部分5710のみを参照するように狭められ得る。
実施形態では、画像正規化操作は、ステップ4002で画像情報を取得する一部として、計算システム1100によって実施され得る。画像正規化操作は、ステップ4002の一部として変換された画像または変換された画像部分を生成するために、カメラ3200によって生成された画像または画像部分を変換することを伴い得る。さらに、モデルテンプレートは、特定の視点照明条件に関連付けられてもよく、ここで、画像情報の変更は、モデルテンプレートと比較されることにより役立ち得る。
例えば、ステップ4002で取得される2D画像情報5600、3D画像情報5700、またはそれらの組み合わせを含み得る画像情報、および視覚的記述情報が、異なる物体姿勢(および従って異なる視点)および/または異なる照明条件に関連付けられる場合、こうした差異は、ステップ4002の画像情報および視覚的記述情報を正確に比較する計算システム1100の能力を減少させ得る。例えば、図5Cは、物体5810が頭上以外の角度から見た実施例を示している。こうしたシナリオでは、計算システム1100は、画像情報と視覚的記述情報との間のより正確な比較を促進するために、ステップ4002で取得された画像情報を、視覚的記述情報に関連付けられた視点、物体姿勢、照明条件により厳密に合致させるように試みるために、画像正規化操作を実施することができる。視点は、カメラ3200に対する物体の姿勢、および/またはカメラ3200が物体を表す画像を生成するときに、カメラ3200が物体を見ている角度を指し得る。
例えば、画像情報は、物体3510と同じ物体タイプを有する別の箱などの標的物体が、カメラ視野3210内にある、物体登録操作中に生成され得る。カメラ3200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上面をカメラ3200の光学軸に対して垂直にする姿勢を有してもよい。こうした実施例では、カメラ3200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。カメラ3200によって収集された画像情報が画像情報を生成するために使用される場合、画像情報はまた、カメラ3200に対する視点(例えば、上面図)または物体姿勢を表し得る。一部の実例では、カメラ3200が物体登録操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、または他の照明条件を表し得る。
実施形態では、画像正規化操作は、画像または画像部分を、モデルテンプレートの視覚的記述情報に関連付けられた視点および/または照明条件により良く一致させるように、カメラによって生成されるシーンの画像または画像部分を調整することを伴い得る。調整は、画像または画像部分を変換して、物体姿勢またはモデルテンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも1つに一致する変換された画像を生成することを伴い得る。例えば、図5Dは、計算システム1100が、非正面の視界から上方からの視界まで物体5810の特定の部分を調整する、画像正規化操作を示している。
視点調整は、画像がモデルテンプレート内の視覚的記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、および/またはシフトを伴い得る。処理は、例えば、画像の色、コントラスト、または照明を変更することを含み、シーンのワーピングは、画像のサイズ、寸法、または比率を変更することを含み得、画像のシフトは、画像の位置、配向、または回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、および/またはシフトを使用して、シーンの画像内の物体を、モデルテンプレートの視覚的記述情報に一致するか、またはそれにより良好に対応する配向および/またはサイズを有するように変更してもよい。モデルテンプレートが、一部の物体の正面視界(例えば、上面視界)を記述する場合、シーンの画像は、シーン内の物体の正面視界も表すようにワーピングされ得る。
さらに説明するために、ワーピングは、シーンの画像を、第1の姿勢で物体を描写することから、第2の姿勢で物体を描写することへと変換するワーピング変換を定義するホモグラフィーを決定することを伴い、ここで、第2の姿勢は、モデルテンプレートの視覚的記述情報によって記述される物体の姿勢に一致する。一部の実例では、ホモグラフィーは、例えば、シーンの画像の隅角などの特定の点と、例えば、テンプレートの隅角などの対応する点とが一致する、回転および/またはワーピングを記述し得る。さらなる実施形態では、物体の配向、または姿勢は、物体の隅角などの、シーンの画像内の対応する、または他の認識可能な点を識別することによって決定され得る。これらの対応する点は、シーンを捕捉するカメラに対する物体の角度を示し得る。
一部の実例では、視点調整は、シーンを表す画像の回転またはワーピングを伴い得るが、例えば、X軸またはY軸に沿った横方向への画像のシフトを省略し得る。横方向への画像のシフトは、テンプレートマッチング操作の間に行われてもよい。さらに、一部の実装形態では、色調整は、シーンの画像の色を調整して、テンプレートの色に一致または相関させることを含み得る。例えば、一部の実施形態では、テンプレート画像は、グレースケールであってもよく、シーンの画像は、カラー画像からグレースケール画像に変換されて、テンプレート画像に対応することができる。一部の事例では、グレースケールに変換すると、異なる色が、同じグレーシェードを生じさせてもよく、その結果、シーンの画像から色の差異が失われる。色の差異を保つために、対応するグレースケール画像が差異を保つように、色シフトをシーンの色画像に適用することができる。
ステップ4002で取得された画像情報は、ノイズまたはグレアなどの誤差源によって影響され得る。一部の実例では、誤差源は、画像情報が、画像情報によって表される物体上に実際には現れない画像情報内の視覚的特徴であり得るアーチファクトを含むようにし得る。例えば、図5Aは、ステップ4002の画像情報によって記述される、アーチファクト5614、またはより具体的には白色の長方形を描写する。アーチファクト5614または他の誤差源は、特に、画像の領域またはエリアを、モデルテンプレートの対応する領域またはエリアと比較する領域毎またはエリア毎の比較が行われる場合に、モデルテンプレートの画像部分と視覚的記述情報との比較の精度に影響を与え得る。このような場合、および以下でさらに論じるように、エリアベースの一致、そうでなければ、エリアベースの比較として知られている一致は、こうした誤差源の影響を補償または軽減するために、エッジベースの一致の使用を通して補完されてもよい。実施形態では、比較のための領域またはエリア(また、比較単位セルとも呼ぶことができる)は、画像および/またはモデルテンプレートに対する単位距離に基づくか、または画像および/またはモデルテンプレートのピクセルに基づくことができる。
方法4000のステップ4004は、モデルテンプレートの画像情報および視覚的記述情報との間の類似性の程度を示す第1のテンプレート一致スコア(エリアベースのテンプレート一致スコアとも呼ぶ)を決定することを含む。さらに説明するために、モデルテンプレートの各々は、一連のピクセルを含む視覚的記述情報とともに、モデル物体の外観を記述する視覚的記述情報を含む。1つの比較方法では、計算システム1100は、視覚的記述情報のピクセルに基づいて、比較単位セルを使用して、第1のテンプレート一致スコアを決定し得る。より具体的には、第1のテンプレート一致スコアは、モデルテンプレートの視覚的記述情報と画像情報との間のピクセル毎の比較に対する一致の程度に基づいてもよい。こうした比較において、コンピュータシステム1100は、画像情報を形成するピクセルと、モデルテンプレートの視覚的記述情報を形成するピクセルとの位置および強度を比較して、モデルテンプレートの視覚的記述のピクセルと画像情報のピクセルとの間の類似性または一致の程度を反映する第1のテンプレート一致スコアを決定する。上述のピクセル毎の比較プロセスは、エリアベースの比較方法の一実施例である。比較の他のプロセスまたは方法をさらに使用して、モデルテンプレートの画像情報および視覚的記述情報を比較して、第1のテンプレート一致スコアを生成してもよい。
例示的な実施形態では、図6Aに示すように、2D画像情報5600の第1の部分5610は、複数のモデルテンプレート、例えば、モデルテンプレート1~nと比較される。モデルテンプレートの各々は、テンプレート記憶空間1128に記憶され、テンプレート物体の視覚的記述情報を反映する。一実施例では、図6Bは、2D画像情報5600の第1の部分5610が、テンプレート記憶空間1128内に位置する8つのモデルテンプレートのグループと比較される、より詳細な図を示している。前述したように、各モデルテンプレートは、例えば、容器(物理的な容器または箱など)の特定の物理的物体を、視覚的記述情報の形態で表す情報を含む。実施形態では、各画像部分、例えば、5610は、テンプレートの各々と比較されてもよい。より具体的には、ステップ4004でのテンプレートマッチングは、2D画像情報5600またはより特定の部分、例えば、第1の部分5610を、モデルテンプレートの対応するエリアと比較すること、またはその逆の比較することを伴い得る。比較はまた、2D画像情報5600のエリア全体が、モデルテンプレートのエリアとどのように一致するかを調べる、エリアベースの比較またはエリアベースのテンプレートマッチングと呼んでもよい。こうした比較は、モデルテンプレートの対応する領域または部分と画像情報との間の差に等しいか、またはそれに基づくテンプレート一致スコアなどの、テンプレート一致スコアを生成するために使用され得る。
ピクセル毎の比較に基づくテンプレート一致スコアの実施例は、以下の式を使用して生成され得る。
上の式では、可変Dは、画像情報とテンプレートの視覚的記述情報との間のピクセルの各々の間の合計距離(例えば、強度差)を表す。Dの値は、テンプレートの視覚的記述情報と画像情報との間のテンプレート一致スコアを決定するために使用され得る。実施形態では、プロセスは、異なるスケールでピクセル毎の比較を実施すること(例えば、1つのスケールで比較を行い、次いで第2のスケールに進み、比較を改良すること)、高速フーリエ変換操作、正規化された相関共分散(NCC)分析、または異なる技術を実施することを伴い得る。
第1のテンプレート一致スコアは、領域またはエリアベースの比較を使用して生成され得る。例えば、ピクセル毎の比較を使用したテンプレート一致スコアは、2D画像情報5600によって記述されるピクセル値と、モデルテンプレートに関連付けられた視覚的記述情報によって記述されるピクセル値との間の類似性の程度を使用して決定され得る。さらに、第1のテンプレート一致スコアは、モデルテンプレートの視覚的記述情報と比較したときに、定義されたピクセル強度の類似性条件を満たす、2D画像情報5600内のピクセル数に基づいてもよい。第1のテンプレート一致スコアは、画像情報の領域と視覚的記述情報の領域との間の一致の程度に基づいてもよい。例えば、計算システム1100は、画像情報の中のピクセルを、テンプレートに関連付けられた視覚的記述情報の中の対応するピクセルと比較してもよい。本明細書で論じるピクセル毎の比較は、2D画像情報5600およびモデルテンプレートに関連付けられた視覚的記述情報を比較する、エリアベースの比較方法の実施例である。他の方法またはプロセスも同様に使用され得る。
上述のように、または他の方法を使用して、テンプレート一致スコアが生成されると、2D画像情報5600とモデルテンプレートの視覚的記述情報との間のさらなる比較を提供するために、テンプレートマッチング手順は、モデルテンプレートの視覚的記述情報に対して、2D画像情報5600を、1つ以上の横方向(例えば、X、Y、またはu、v)にシフトして、視覚的記述情報の特徴と2D画像情報5600との間のオーバーレイの量を最大化すること、またはより一般的には、第1のテンプレート一致スコアを最大化することを試みることを伴い得る。例えば、図6Cは、2D画像情報5600の画像部分5610および様々なモデルテンプレートの視覚的記述情報をシフトして、その2つの間の最適なアライメントを決定し、ならびに一連のテンプレート一致スコア、例えば、RS1、RS2、およびRS3を決定して、最適なアライメントがいつ取得されるかを決定することを示している。
シフトプロセスをさらに説明するために、計算システム1100は、ヒートマップを生成してもよく、ここで、ヒートマップ内の各ピクセルは、X方向におけるある量のシフトおよびY方向におけるある量のシフトに関連付けられており、ピクセルは、テンプレート一致スコアに関連付けられ得る。ヒートマップは、テンプレート一致スコアを最大化するために、モデルテンプレートがシーンに対して1つ以上の横方向にシフトされるべき量を示し得る。例えば、テンプレートマッチングは、最大テンプレート一致スコアを見つける試みに対して、モデルテンプレートの視覚的記述情報を(例えば、幅寸法および高さまたは長さ寸法で)シフトさせることを伴い得、ここで、最大スコアは、2D画像情報5600と選択されたモデルテンプレートの視覚的記述情報との間のオーバーレイの最大エリアを表し得る。例えば、テンプレートは、シーンの画像に対して上方、下方、右側、および/または左側にシフトされて、テンプレート一致スコアを増加させてもよく、こうした実施形態では、テンプレートマッチングは、オーバーラップの最大量を反映する、最大テンプレート一致スコアをもたらすための適切なシフトを見つけるように試みる。別の方法として、2D画像情報5600は、モデルテンプレートに対してシフトされてもよい。様々なモデルテンプレートの視覚的記述情報に対して、2D画像情報5600の画像部分5610をシフトさせることは、モデリングの不正確さまたはノイズを最小化し、それを説明するのに役立ち得る。
方法4000は、画像情報内のエッジを識別し、モデルテンプレートの視覚的記述情報内のエッジを識別し、両方の情報セット内の識別されたエッジを比較するステップ4006~4010をさらに含む。比較された画像は、モデルテンプレートの画像情報および視覚的記述情報の類似性に基づいて、第2のテンプレート一致スコアを作成するために使用され得る。さらに説明すると、ステップ4006は、ボックスまたは容器などの物理的物体を表す画像エッジ情報として知られる画像情報内のエッジを識別し、ステップ4008は、テンプレートエッジ情報として知られる選択されたモデルテンプレートの視覚的記述情報内のエッジを識別する。次に、ステップ4006およびステップ4008で識別されたエッジを、ステップ4010で比較し、画像エッジ情報およびテンプレートエッジ情報の類似性に基づいて、第2のテンプレート一致スコアを決定する。各ステップは、以下でさらに詳細に説明される。
方法4000のステップ4006は、物理的物体または物理的物体の一部分を表す画像情報に基づいて、画像エッジ情報を決定することを含む。より具体的には、計算システム1100は、画像情報内で検出された1つ以上のエッジの第1のセットを識別し、場合によっては、画像情報内にエッジが存在しないことを識別し得る。画像エッジ情報は、画像情報中に存在するエッジの位置および数を、選択されたテンプレートの視覚的記述情報中に存在するエッジの位置および数と比較する意図で決定され得る。存在する任意のエッジを検出するために、計算システム1100は、(i)エッジで定義されたピクセル強度不連続条件または定義されたスパイクされたピクセル強度条件を満たすこと、(ii)エッジで定義された奥行き不連続条件を満たすこと、または(iii)エッジで定義された配向不連続条件を満たすことを含む、様々な方法を使用し得る。さらに説明すると、定義されたピクセル強度不連続性条件を満たすことは、ピクセル強度値の変化、すなわち、より具体的には、変化するピクセル強度を有する領域間のピクセル強度値の微分または勾配を使用することを含み得る。次いで、勾配または微分を使用して、特にエッジに対して垂直に移動しているときに、エッジに存在するピクセル強度のスパイクを検出してもよい。さらに、計算システム1100は、隣接するピクセル間にスパイクまたは不連続性を画定し、エッジを識別するために、ピクセル強度の差異を識別するようにバイナリ閾値を適用し得る。さらに、前述の方法に加えて、またはその代替的に、エッジは、視覚的テクスチャ、奥行き不連続性の変化、および/またはテンプレートに見られる表面の法線ベクトルの不一致(配向不連続性)を使用して検出され得る。
1つ以上のエッジの第1のセットが画像情報で検出される場合、計算システム1100は、1つ以上のエッジの第1のセットがどこに位置するかに関する識別情報を含む第1のエッジビットマップを生成する。第1のエッジビットマップは、一部の実施形態では、非エッジピクセル、エッジピクセルとして識別されないピクセル、ならびにエッジピクセルを含む、エリアピクセルを追加的に含んでもよい。図7Aは、第1の物体3510に関連付けられた画像部分5610に基づいて、エッジビットマップES17610を決定する、計算システム1100の実施例を示している。示されるように、エッジビットマップES17610は、エッジ7610A~7610Cの第1のセット、ならびに画像部分5610のエリアピクセル領域7612A、7612B、および7612C(図7Bに示される)を識別する。
エッジおよびエリアピクセル領域が画像情報内でどのように表されるかをさらに説明するために、計算システム1100は、エッジ領域または非エッジ領域が各ピクセルに存在するかどうかを表すエッジビットマップEsを生成する。例えば、エッジビットマップの各々は、バイナリビットマップであってもよく、ここで、各ピクセルは、そのピクセルに対応する位置におけるエッジの存在を表す値(例えば、1または255)、またはその位置でのエッジの欠如を表す別の値(例えば、0)のうちのいずれかを有してもよい。さらに、計算システム1100は、異なるエッジのソース(例えば、視覚的テクスチャ、奥行き不連続性、正常な不連続性)に、異なるレベルの重要度を割り当て得る。異なる重要度のレベルを割り当てるために、計算システム1100は、バイナリビットマップ内のそのソースのエッジの厚さを増加させ得る。
上述のように、画像情報のエッジと選択されたテンプレートのエッジとの間の比較は、第2のテンプレート一致スコアを作成するために使用され、これはその後、第1のテンプレート一致スコアによって取得された情報を補足するために使用され得る。例えば、物理的物体、例えば、物体3510は、物体の外観を変化させる何らかの物理的損傷を有してもよく、それにより、厳密なエリアベースの比較において、選択されたモデルテンプレートの視覚的記述情報と画像情報を比較することが困難になる。こうした実施例では、シーンは、モデルテンプレートと一致しないピクセルの領域またはエリア(物体の破損部分に対応する)を有してもよく、この不一致の領域またはエリアは、シーンが実際にはモデルテンプレートによって表される物体の同じグループに関連付けられた物体を描写するが、シーンがモデルテンプレートと一致しないという決定に寄与し得る。別の実施例では、ピクセル毎のテンプレートマッチングは、偶然の一致から、モデルテンプレートのピクセルに一致するシーンのピクセルによって影響されてもよく、これは、2D画像情報5600とモデルテンプレートとの間の誤検知一致の可能性に寄与し得る。さらに、視覚的記述情報とモデルテンプレートとの間のピクセル毎の比較の使用は、撮像ノイズおよび他の環境条件によって影響され得る。さらに、視覚的記述情報およびテンプレートは、均一な色または強度のエリアを含み得る。このような場合、ピクセル毎の比較は、こうしたエリアと不適切に一致し、不正確な一致スコアをもたらし得る。したがって、本開示は、エリアベースのテンプレートマッチングを、エッジベースのテンプレートマッチングと組み合わせる手段を提供し、これは、1つの方法または別の方法のみを使用するよりも、より信頼性および/または精度の高いテンプレートマッチング結果を提供し得る。
エリアベースの比較に関連付けられた潜在的な不正確性に対処するために、方法4000は、モデルテンプレートの視覚的記述情報に基づいてテンプレートエッジ情報を決定する、ステップ4008をさらに含む。より具体的には、ステップ4008は、視覚的記述情報から検出された1つ以上のエッジのセットを識別するか、または場合によっては、視覚的記述情報にエッジが存在しないことを識別する。ステップ4006と同様に、テンプレートエッジ情報を決定するために、計算システム1100は、視覚的記述情報内で検出された1つ以上のエッジの第2のセットを識別する。テンプレートエッジ情報は、モデルテンプレートの視覚的記述情報で見つかるエッジの位置および数を、画像情報で見つかるエッジの位置および数と比較する意図で決定され得る。一部の事例では、計算システム1100は、視覚的記述情報にエッジが存在しないことを識別し得る。存在する任意のエッジを検出するために、計算システム1100は、(i)エッジで定義されたピクセル強度不連続条件または定義されたスパイクされたピクセル強度条件を満たすこと、(ii)エッジで定義された奥行き不連続条件を満たすこと、または(iii)エッジで定義された配向不連続条件を満たすことを含む、様々な方法を使用し得る。計算システム1100は、ピクセル強度値の変化、すなわち、より具体的には、変化するピクセル強度を有する領域間のピクセル強度値の微分または勾配を使用して、ピクセル強度不連続性を識別し得る。次いで、勾配または導関数を使用して、特にエッジに対して垂直に移動しているときに、エッジに存在するピクセル強度のスパイクを検出してもよい。さらに、計算システム1100は、隣接するピクセル間にスパイクまたは不連続性を画定し、エッジを識別するために、ピクセル強度の差異を識別するようにバイナリ閾値を適用し得る。さらに、前述の方法に加えて、またはその代替的に、エッジは、視覚的テクスチャ、奥行き不連続性の変化、および/またはテンプレートに見られる表面の法線ベクトルの不一致(配向不連続性)を使用して検出され得る。別の方法として、実施形態では、視覚的記述情報に関連付けられたテンプレートエッジ情報は、テンプレートマッチングプロセス中に識別されるのではなく、予めプログラムされてもよく、予め決定されてもよく、または予め計算され、記憶されてもよい。
(例えば、視覚的記述情報から)検出された1つ以上のエッジの第2のセットを使用して、計算システム1100は、1つ以上のエッジの第2のセットがどこに位置するかを識別する、第2のエッジビットマップを生成し得る。第2のエッジビットマップは、一部の実施形態では、非エッジピクセル、エッジピクセルとして識別されないピクセル、ならびにエッジピクセルを含む、エリアピクセルを追加的に含んでもよい。第2のエッジビットマップは、バイナリビットマップであってもよく、バイナリビットマップは、少なくともエリアピクセルを有してもよく、前述のように、エッジピクセル、非エッジピクセル、またはエッジピクセルと非エッジピクセルの任意の組み合わせを含んでもよい。さらに、バイナリビットマップのエリアピクセルには、第1のピクセル値(例えば、0)が割り当てられ、一方で、第2のピクセル値(例えば、1または255)は、エッジが見つかるバイナリビットマップに割り当てられる。より具体的には、例えば、1または255で示されるエッジピクセルは、1つ以上のエッジの第2のセットが検出されるモデルテンプレートの視覚的記述情報の位置に対応するそのピクセルである。図8Aおよび図8Bは、テンプレート1~8に関連付けられたビットマップ(ET1~ET8)のいくつかの例示的な実施形態を提供する。
画像エッジ情報およびテンプレートエッジ情報がステップ4006および4008で決定されると、ステップ4010は、画像エッジ情報とテンプレートエッジ情報との間の比較に基づいて、第2のテンプレート一致スコアを決定するために使用される。第2のテンプレート一致スコアは、画像のエッジおよびテンプレートによって記述されるエッジを調べるテンプレートマッチング技術の一部であってもよく、エッジベースのテンプレートマッチングと呼ばれ得る。
エッジベースのテンプレートマッチングは、画像情報がモデルテンプレートの視覚的記述情報に一致するときに、正確に示すためのテンプレート一致スコアの能力において、より高いレベルの信頼性を生成し得る。エッジは、物体の物理的エッジを記述してもよく、または一部の事例では、エッジは、シーンの絵、ロゴ、もしくは視覚的詳細によって形成されるか、もしくはテンプレートによって記述される輪郭を記述し得る。エッジベースのテンプレートマッチングは、シーン内に現れるエッジ、および選択されたテンプレート内に現れるエッジの類似性を検査する。こうした検査または比較は、上述したエリアベースのピクセル毎のテンプレートマッチングに加えて、シーンの一致における視覚的詳細の輪郭が、エッジベースまたはラインベースの一致にどの程度注意を向けることができるかの表示を提供することができる。一部の実施形態では、シーンまたはテンプレートの輪郭は、シーンまたはテンプレート内に現れる1つ以上のエッジによって記述され得る。
図9A~図9Cは、エッジベースのテンプレートマッチングに関連するさらなる詳細を提供する。図9A~図9Cは、エッジビットマップET1~ET3と比較されているエッジビットマップES1を描写する。エッジとピクセルエリア領域の位置を比較することによって、計算システム1100は、画像エッジ情報とテンプレートの各々との間の類似性のレベルを記述する、第2のテンプレート一致スコアを生成し得る。エッジベースのテンプレートマッチング動作は、画像情報の輪郭が、エリアベースのテンプレートマッチングとは対照的に、モデルテンプレートの視覚的記述の輪郭とどのように一致するかに、より大きな重点を置く。特に、第2のテンプレート一致スコアは、画像情報から検出された1つ以上のエッジの第1のセットが、モデルテンプレートの視覚的記述情報から検出された1つ以上のエッジの第2のセットとオーバーラップすることができる、最大量を決定することに焦点を当てる。エッジの位置および数の焦点の増加により、エッジベースの一致比較は、画像情報と、シェーディング、色、または照明などのモデルテンプレートの視覚的記述情報との間の差異を最小化することができる。
画像エッジ情報とテンプレートエッジ情報との間のさらなる比較を提供するために、エッジベースの一致手順は、テンプレートエッジ情報に対して、画像エッジ情報を、1つ以上の横方向(例えば、X、Y、またはu、v)にシフトして、画像情報から検出されたエッジの第1のセットと、モデルテンプレートの視覚的記述情報から検出されたエッジの第2のセットとの間のオーバーレイの量を最大化することを試みることを伴い得る。
モデルテンプレートの画像情報および視覚的記述情報の間のさらなる比較を提供するために、テンプレートマッチング手順は、モデルテンプレートの視覚的記述情報に対して、画像情報を、1つ以上の横方向(例えば、X、Y、またはu、v)にシフトして、視覚的記述情報の特徴と画像情報との間のオーバーレイの量を最大化すること、またはより一般的には、第1のテンプレート一致スコアを最大化することを試みることを伴い得る。例えば、エッジベースのテンプレートマッチングは、最大テンプレート一致スコアを見つける試みに対して、テンプレートエッジ情報を(例えば、幅寸法および高さまたは長さ寸法で)シフトさせることを伴い得、ここで、最大スコアは、画像情報と選択されたモデルテンプレートの視覚的記述情報との間のエッジオーバーレイの最大エリアを表し得る。例えば、テンプレートエッジ情報は、画像エッジ情報に対して上方、下方、右側、および/または左側にシフトされて、エッジベースのテンプレート一致スコアを増加させてもよく、こうした実施形態では、テンプレートマッチングは、オーバーラップの最大量を反映する、最大第2のテンプレート一致スコアをもたらすための適切なシフトを見つけるように試みる。別の方法として、画像情報は、テンプレートに対してシフトされてもよい。テンプレートエッジ情報に対して画像エッジ情報をシフトさせることは、モデリングの不正確さまたはノイズを最小化し、それを説明するのに役立ち得る。
第2のテンプレート一致スコア(エッジ一致スコアとも呼ばれる)は、可変Rbとして表され、計算システム1100が画像エッジ情報とテンプレートエッジ情報との間のより高い一致レベルを検出するとRbの値が高くなり、計算システム1100が画像エッジ情報とテンプレートエッジ情報との間の低い一致レベルを検出すると低くなる。テンプレート一致スコアRbは、シーンの画像の輪郭が、テンプレートによって記述された輪郭に一致する点の数(例えば、一致するピクセルの割合によって測定されるような)を反映する。同様に、エッジ一致操作は、他の輪郭(例えば、テンプレートの視覚的詳細の輪郭)によって一致されない、1つの輪郭(例えば、シーンにおける視覚的詳細の輪郭)の部分に基づいて、Rbスコアを減少させてもよく、またはそうでなければそれを過小評価してもよい。
ピクセル毎の分析エリアベースのテンプレートマッチングと同様に、画像エッジ情報およびテンプレートエッジ情報は、検出された1つ以上のエッジの第1のセットと検出された1つ以上のエッジの第2のセットとの間の正確な比較を提供するのに十分に整合されない場合がある。したがって、比較の精度を高めるために、計算システム1100は、画像エッジ情報の第1のビットマップを、テンプレートエッジ情報の第2のビットマップに対して、またはその逆で、1つ以上の横方向にシフトさせて、第1のビットマップが第2のビットマップと一致する点の数を最大化しようと試み得る。さらに、エッジ一致操作は、ノイズの影響、照明条件の差異、またはモデルテンプレートの画像情報と視覚的記述情報との間の他の不一致を低減するために、空白エリアまたはエッジ間のエリアを表す、ピクセルを無視または軽視し得る。エッジベースの一致操作は、スコアRbを決定する際に、エッジの存在を表す、ピクセルに焦点を合わせ得る。したがって、エッジ一致操作は、エリアベースのテンプレートマッチングに関するのではなく、第1のビットマップによって表される輪郭を第2のビットマップによって表される輪郭と整合させることに焦点を当て得る。
一実施形態では、計算システム1100は、1つ以上のエッジの第1のセットの各エッジについて、エッジが画像情報から検出される技術に基づいて、エッジに対するそれぞれの優先順位レベルを決定し得る。こうした実施形態では、第2のテンプレート一致スコアは、1つ以上のエッジの第1のセットに関連付けられた1つ以上のそれぞれの優先順位レベルに基づいている。さらに、計算システム1100は、以下の技術:(i)エッジで定義されたピクセル強度不連続条件または定義されたスパイクされたピクセル強度条件を満たすこと、(ii)エッジで定義された奥行き不連続条件を満たすこと、または(iii)エッジで定義された配向不連続条件を満たすことのうちのいずれか1つがエッジを検出するために使用されることに基づいて、1つ以上のエッジの第1のセットの各エッジに対するそれぞれの優先順位レベルを決定する。さらに、計算システム1100は、1つ以上のバンドのセットの1つ以上のそれぞれの厚さ値に基づいて、第2のテンプレート一致スコアを決定し得る。そうすることで、第2のテンプレート一致スコアは、バンドの優先度を反映または考慮し得る。
さらに、エッジベースのテンプレートマッチング操作は、特定の状況に対して構成されてもよい。例えば、物体の物理的エッジに焦点を当てる代わりに、注意または焦点は、画像情報およびモデルテンプレート内の視覚的特徴上に置かれ得る。こうした実施形態では、視覚的特徴の視覚的詳細の輪郭に、視覚的特徴に関連付けられ得るそれらのエッジに追加的な重みを置くことによって注意が置かれる。一実施例では、エッジベースの一致を使用して、画像情報内に存在するロゴ、デカール、またはその他の視覚的関心特徴を識別し得る。次に、識別されたロゴ、デカール、またはその他の視覚的特徴を、モデルテンプレートの視覚的記述情報内で識別されたロゴ、デカール、またはその他の視覚的特徴と比較してもよい。したがって、この実施形態では、第2のテンプレート一致スコアは、実際の物理的エッジの代わりに、物体とテンプレートとの間の視覚的詳細の類似性に基づく。
第1のテンプレート一致スコアおよび第2のテンプレート一致スコアが決定されると、ステップ4012は、計算システム1100を使用して、第1のテンプレート一致スコアおよび第2のテンプレート一致スコアを組み込む、全体的なテンプレート一致スコアを計算することを含む。より具体的には、全体的なテンプレート一致スコアは、第1のテンプレート一致スコアと第2のテンプレート一致スコアとの重み付けされた組み合わせとして、またはそれらに基づいて決定される。
上述のように、エリアベースのテンプレートマッチングは、信頼性の面で制限を有し得る。例えば、画像情報で表される物理的物体は、損傷し得、望ましくないノイズが画像情報内に提示されてもよく、照明条件は、画像情報とモデルテンプレートとの間で変化してもよく、または他の望ましくない不一致が存在してもよく、それらすべてが、十分に低いテンプレート一致スコアをもたらし得る。あるいは、画像情報によって表される物理的物体は、モデルテンプレートによって表される物理的物体と異なってもよいが、2つの物理的物体の大きなエリアは依然としてオーバーラップし得るため、エリアベースの一致は、不適切に高い一致スコアを生じ得る。概して説明すると、エリアベースのテンプレートマッチングは、画像情報のすべての領域および特徴に等しく重点が置かれる。したがって、ステップ4012で第1の一致スコアと第2の一致スコアを組み合わせるとき、全体的な一致スコアを決定する際に、第1の一致スコアまたは第2の一致スコアのいずれかに、より重点を置くことに関心があり得る。そのために、計算システム1100は、重みを第1の一致スコアおよび第2の一致スコアに割り当てて、より正確な全体的な一致スコアを生成し得る。
重み付けプロセスをより詳細に記述するために、計算システム1100は、式を使用して、R
sとして定義される第1のテンプレート一致スコアと、R
bとして定義される第2のテンプレート一致スコアとを組み合わせることができる。式の一例を以下に示している。
上の式を参照すると、wsは、第1の一致スコア(例えば、エリアベースのテンプレート一致スコア)に与えられる重みであってもよく、一方で、wbは、エッジベースのテンプレートマッチングに与えられる重みであってもよい。式を使用して、重み付けされたテンプレート一致スコアRwを生成してもよい。重みは、エリアベースのテンプレートマッチングおよびエッジベースのテンプレートマッチングの相対的重要性を設定するように調整され得る。例えば、wbがwsよりも大きい場合、重み付けされたテンプレート一致スコアRwは、シーン内のピクセル領域のどのくらいのエリアがテンプレート内のピクセル領域とどの程度一致するかとは対照的に、シーン内の視覚的詳細の輪郭、例えば、エッジが、テンプレート内の視覚的詳細の輪郭とどれほど密接に一致するかによって、より影響を受け得る。
一部の実施形態では、計算システムの処理回路1110は、画像エッジ情報およびテンプレートエッジ情報のエッジ領域の一致スコアを決定することによってのみ、エッジ領域に焦点を合わせ得る。全体的なテンプレート一致スコアRwは、任意のエリアベースの一致を使用することなく決定され得る。実施形態では、エリアベースの一致は、実施されるが、全体的なテンプレート一致スコアRwでは使用されない(すなわち、重みを適切に調整することによる)。実施形態では、エリアベースの一致は省略され得る。
全体的なテンプレート一致スコアがテンプレートの各々について決定されると、計算システム1100は、検出仮説を生成および/または検証するためのプロセスにおいて、全体的なテンプレート一致スコアを使用し得る。検出仮説は、シーンを表す画像情報における、1つ以上の物体、またはその一部の識別である。例えば、計算システム1100は、2D画像情報および/または3D画像情報に由来する領域のエッジ、隅角、および/または寸法に基づいて、物体(例えば、物体3510、3520、3530、3540)のうちの1つ以上を識別する、検出仮説を生成し得る。実施形態では、全体的なテンプレート一致スコアは、計算システム1100によって使用されて、検出仮説の物体がシーンの中の物体と一致することを検証することができる。例えば、計算システム1100は、検出仮説の物体の識別が、テンプレート一致スコアの最大値を有するテンプレートに対応することを検証し得る。別の実施例として、計算システム1100は、全体的なテンプレート一致スコアのうちの2つ以上が一致する閾値を上回る(例えば、シーン中の物体が物体寸法およびテンプレートなどの検出された特徴に基づいて2つ以上の異なる物体のうちの1つであり得る、高い確率が存在する)場合、物体の2つ以上の可能性のある識別を提供する検出仮説を生成し得る。
実施形態では、計算システム1100が検出仮説を生成すると、計算システム1100は、ロボットの相互作用を実施する追加のステップで検出仮説を使用する。例えば、計算システム1100は、前述のロボットと、画像記述によって表される物体との間のロボットの相互作用の計画を作成し得る。例えば、計算システム1100は、第1の物体をパレットからピックアップし、その第1の物体を目的地位置に置くようための命令を、ロボットに提供し得る。より一般的には、方法4000は、システムによって使用されて、物体を識別するための検出仮説を生成し、その後、ロボットが識別された物体と相互作用するための命令を作成してもよい。例えば、物体とのロボットの相互作用のための命令は、ロボットアームが識別された物体に近づくための軌道、識別された物体を掴むための操作、識別された物体を目的地位置での配置位置に移すための軌道、識別された物体を標的位置でリリースするための操作、および/または目的地位置から逸脱する軌道を含み得る。
本明細書に記載される本技術は、既存のコンピュータベースの画像認識およびロボット制御分野に技術的改善をもたらす。技術的改善は、エリアベースのテンプレートのみの一致プロセスを使用するのと比較して、物理的物体の画像とモデルテンプレートとの一致の全体的な精度が増大する。エリアベースのテンプレートマッチングプロセスとエッジベースのテンプレートマッチングプロセスの組み合わせは、全体的な一致スコアを決定する際に、重みの使用を通して、エリアベースのテンプレートマッチングプロセスまたはエッジベースのテンプレートマッチングプロセスのうちのいずれかにさらなる焦点を置くことによって、さらに改善される。
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なるシーケンスで行われてもよく、追加、統合、または完全に省略し得ることも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。従って、添付の特許請求の範囲で定義されるような、発明の趣旨または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼし得る。
さらなる実施形態は、以下の実施形態を含む。
実施形態1は、計算システムであって、ロボット、およびカメラ視野を有するカメラと通信するように構成されている通信インターフェースと、少なくとも1つの処理回路と、を備え、少なくとも1つの処理回路は、1つ以上の物体が、カメラ視野内にある、またはあったときに、1つ以上の物体の第1の物体を表す画像情報を取得することであって、画像情報が、カメラによって生成され、第1の物体に関連付けられた少なくとも物体の外観を記述することと、画像情報とモデルテンプレートの視覚的記述情報との間の一致の程度を示す第1のテンプレート一致スコアを決定することであって、視覚的記述情報が、物体の外観を記述することと、第1の物体を表す画像情報に基づいて画像エッジ情報を決定することであって、画像エッジ情報が、画像情報から検出された1つ以上のエッジの第1のセットを識別するか、または画像情報からエッジが検出されていないことを示すことと、テンプレートエッジ情報を決定することであって、テンプレートエッジ情報が、モデルテンプレートの視覚的記述情報から検出された1つ以上のエッジの第2のセットを識別するか、または視覚的記述情報からエッジが検出されていないことを示すことと、画像エッジ情報とテンプレートエッジ情報との間の一致の程度を示す第2のテンプレート一致スコアを決定することと、第1のテンプレート一致スコアおよび第2のテンプレート一致スコアに基づいて、全体的なテンプレート一致スコアを決定することと、全体的なテンプレート一致スコアに基づいて、ロボット相互作用計画操作を実施することであって、ロボット相互作用計画操作が、ロボットと第1の物体との間のロボット相互作用を計画するためのものであることと、を実行するように構成されている、計算システムである。
実施形態2は、少なくとも1つの処理回路が、1つ以上のエッジの第1のセットが画像情報から検出されるときに、1つ以上のエッジの第1のセットがどこに位置しているかを識別する第1のエッジビットマップとして画像エッジ情報を生成するように構成されており、少なくとも1つの処理回路が、第1のエッジビットマップと第2のエッジビットマップとの間の比較に基づいて、第2のテンプレート一致スコアを生成するように構成されており、第2のエッジビットマップが、視覚的記述情報に基づいて、1つ以上のエッジの第2のセットがモデルテンプレート内のどこに位置しているかを識別する、実施形態1に記載のシステムである。
実施形態3は、少なくとも1つの処理回路が、画像情報から検出された1つ以上のエッジの第1のセットがモデルテンプレートの視覚的記述情報からの1つ以上のエッジの第2のセットとオーバーラップする最大量に基づいて、第2のテンプレート一致スコアを決定するように構成されている、実施形態2に記載のシステムである。
実施形態4は、少なくとも1つの処理回路が、第1のテンプレート一致スコアとは独立した様式で、第2のテンプレート一致スコアを決定するように構成されている、実施形態3に記載のシステムである。
実施形態5は、第1のエッジビットマップが、少なくともエリアピクセルを含む第1のバイナリビットマップであり、第1のバイナリビットマップのエリアピクセルが、第1のピクセル値を割り当てられたそのピクセルであり、1つ以上のエッジの第1のセットが画像情報から検出されるときに、第1のバイナリビットマップが、エッジピクセルをさらに含み、第1のバイナリビットマップのエッジピクセルが、1つ以上のエッジの第1のセットが検出された画像情報の位置に対応するそのピクセルであり、第1のバイナリビットマップのエッジピクセルが、第2のピクセル値を割り当てられており、第2のエッジビットマップが、少なくともエリアピクセルを含む第2のバイナリビットマップであり、第2のバイナリビットマップのエリアピクセルが、第1のピクセル値を割り当てられたそのピクセルであり、1つ以上のエッジの第2のセットがモデルテンプレートの視覚的記述情報から検出されるときに、第2のバイナリビットマップが、エッジピクセルをさらに含み、第2のバイナリビットマップのエッジピクセルが、1つ以上のエッジの第2のセットが検出された視覚的記述情報の位置に対応するそのピクセルであり、第2のバイナリビットマップのエッジピクセルが、第2のピクセル値を割り当てられている、実施形態2~4に記載のシステムである。
実施形態6は、少なくとも1つの処理回路が、第1のバイナリビットマップのエッジピクセルが第2のバイナリビットマップのエッジピクセルとオーバーラップする最大量に基づいて、第2のテンプレート一致スコアを決定するように構成されている、実施形態5に記載のシステムである。
実施形態7は、少なくとも1つの処理回路が、1つ以上のエッジの第1のセットの各エッジについて、エッジが画像情報から検出される技術に基づいて、エッジに対するそれぞれの優先順位レベルを決定するように構成されており、第2のテンプレート一致スコアが、1つ以上のエッジの第1のセットに関連付けられた1つ以上のそれぞれの優先順位レベルに基づいている、実施形態5または6に記載のシステムである。
実施形態8は、少なくとも1つの処理回路が、以下の技術:(i)エッジで定義されたピクセル強度不連続条件または定義されたスパイクされたピクセル強度条件を満たすこと、(ii)エッジで定義された奥行き不連続条件を満たすこと、または(iii)エッジで定義された配向不連続条件を満たすこと、のうちのいずれか1つがエッジを検出するために使用されることに基づいて、1つ以上のエッジの第1のセットの各エッジに対するそれぞれの優先順位レベルを決定するように構成されている、実施形態7に記載のシステムである。
実施形態9は、少なくとも1つの処理回路が、画像情報の領域と視覚的記述情報の対応する領域との間の一致の程度に基づいて、第1のテンプレート一致スコアを決定するように構成されている、実施形態2~8に記載のシステムである。
実施形態10は、モデルテンプレートの視覚的記述情報がテンプレート2D領域を形成するピクセルを含むときに、少なくとも1つの処理回路が、テンプレート2D領域と、画像情報からのものであるか、または画像情報に基づいて生成される、対応する画像2D領域との間の一致の程度に基づいて、第1のテンプレート一致スコアを決定するように構成されている、実施形態2~8に記載のシステムである。
実施形態11は、少なくとも1つの処理回路が、画像情報に基づいて、モデルテンプレートの視覚的記述情報に関連付けられた物体姿勢、視点、または照明条件のうちの少なくとも1つに一致する変換された画像情報を、生成することによって、画像正規化操作を実施するように構成されており、対応する画像2D領域が、変換された画像情報からのものである、実施形態10に記載のシステムである。
実施形態12は、少なくとも1つの処理回路が、画像2D領域の対応するピクセルと比較したときに、テンプレート2D領域内の何個のピクセルが定義されたピクセル強度類似性条件を満たすかを示すオーバーラップのサイズに基づいて、第1のテンプレート一致スコアを決定するように構成されている、実施形態10または11に記載のシステムである。
実施形態13は、少なくとも1つの処理回路が、第1のテンプレート一致スコアと第2のテンプレート一致スコアの重み付けされた組み合わせに基づいて、全体的なテンプレート一致スコアを決定するように構成されている、実施形態1~12に記載のシステムである。
実施形態14は、少なくとも1つの処理回路が、第1の物体がカメラ視野内にあるときに、第1の物体の一部分が画像情報によって記述されていないかどうかを決定することと、第1の物体の部分が画像情報によって記述されていないという決定に応答して、視覚的記述情報の対応する部分を除外する視覚的記述情報のマスクされたバージョンを生成すること、および第1のテンプレート一致スコアを決定し、視覚的記述情報のマスクされたバージョンに基づいてテンプレートエッジ情報を決定することと、を行うように構成されている、実施形態1~13に記載のシステムである。
実施形態15は、視野を有するカメラと通信する少なくとも1つの処理回路による実行のための命令を含む非一時的コンピュータ可読媒体であって、少なくとも1つの処理回路が、1つ以上の物体が視野内にある、またはあったときに、命令を行うように構成されており、命令は、1つ以上の物体の第1の物体を表す画像情報を取得することであって、画像情報が、カメラによって生成され、第1の物体に関連付けられた少なくとも物体の外観を記述することと、画像情報とモデルテンプレートの視覚的記述情報との間の一致の程度を示す第1のテンプレート一致スコアを決定することであって、視覚的記述情報が、物体の外観を記述することと、第1の物体を表す画像情報に基づいて画像エッジ情報を決定することであって、画像エッジ情報が、画像情報から検出された1つ以上のエッジの第1のセットを識別するか、または画像情報からエッジが検出されていないことを示すことと、テンプレートエッジ情報を決定することであって、テンプレートエッジ情報が、モデルテンプレートの視覚的記述情報から検出された1つ以上のエッジの第2のセットを識別するか、または視覚的記述情報からエッジが検出されていないことを示すことと、画像エッジ情報とテンプレートエッジ情報との間の一致の程度を示す第2のテンプレート一致スコアを決定することと、第1のテンプレート一致スコアおよび第2のテンプレート一致スコアに基づいて、全体的なテンプレート一致スコアを決定することと、全体的なテンプレート一致スコアに基づいて、ロボット相互作用計画操作を実施することであって、ロボット相互作用計画操作が、ロボットと第1の物体との間のロボット相互作用を計画するためのものであることと、を行うために構成されている、非一時的コンピュータ可読媒体である。
実施形態16は、命令が、1つ以上のエッジの第1のセットが画像情報から検出されるときに、1つ以上のエッジの第1のセットがどこに位置しているかを識別する第1のエッジビットマップとして画像エッジ情報を生成するために追加的に構成されている場合に、少なくとも1つの処理回路が、第1のエッジビットマップと第2のエッジビットマップとの間の比較に基づいて、第2のテンプレート一致スコアを生成するように構成されており、第2のエッジビットマップが、視覚的記述情報に基づいて、1つ以上のエッジの第2のセットがモデルテンプレート内のどこに位置しているかを識別する、実施形態15に記載の非一時的コンピュータ可読媒体である。
実施形態17は、命令が、画像情報から検出された1つ以上のエッジの第1のセットがモデルテンプレートの視覚的記述情報からの1つ以上のエッジの第2のセットとオーバーラップする最大量に基づいて、第2のテンプレート一致スコアを決定するために追加的に構成されている、実施形態16に記載の非一時的コンピュータ可読媒体である。
実施形態18は、非一時的コンピュータ可読媒体と、視野を有するカメラと通信し、命令を実行するように構成されている少なくとも1つの処理回路と、を備えるロボットシステムを制御する方法であって、方法が、1つ以上の物体の第1の物体を表す画像情報を取得することであって、画像情報が、カメラによって生成され、第1の物体に関連付けられた少なくとも物体の外観を記述することと、画像情報とモデルテンプレートの視覚的記述情報との間の一致の程度を示す第1のテンプレート一致スコアを決定することであって、視覚的記述情報が、物体の外観を記述することと、第1の物体を表す画像情報に基づいて画像エッジ情報を決定することであって、画像エッジ情報が、画像情報から検出された1つ以上のエッジの第1のセットを識別するか、または画像情報からエッジが検出されていないことを示すことと、テンプレートエッジ情報を決定することであって、テンプレートエッジ情報が、モデルテンプレートの視覚的記述情報から検出された1つ以上のエッジの第2のセットを識別するか、または視覚的記述情報からエッジが検出されていないことを示すことと、画像エッジ情報とテンプレートエッジ情報との間の一致の程度を示す第2のテンプレート一致スコアを決定することと、第1のテンプレート一致スコアおよび第2のテンプレート一致スコアに基づいて、全体的なテンプレート一致スコアを決定することと、全体的なテンプレート一致スコアに基づいて、ロボット相互作用計画操作を実施することであって、ロボット相互作用計画操作が、ロボットと第1の物体との間のロボット相互作用を計画するためのものであることと、を含む。
実施形態19は、命令が、1つ以上のエッジの第1のセットが画像情報から検出されるときに、1つ以上のエッジの第1のセットがどこに位置しているかを識別する第1のエッジビットマップとして画像エッジ情報を生成するために追加的に構成されている場合に、少なくとも1つの処理回路が、第1のエッジビットマップと第2のエッジビットマップとの間の比較に基づいて、第2のテンプレート一致スコアを生成するように構成されており、第2のエッジビットマップが、視覚的記述情報に基づいて、1つ以上のエッジの第2のセットがモデルテンプレート内のどこに位置しているかを識別する、実施形態18に記載の方法である。
実施形態20は、命令が、画像情報から検出された1つ以上のエッジの第1のセットがモデルテンプレートの視覚的記述情報からの1つ以上のエッジの第2のセットとオーバーラップする最大量に基づいて、第2のテンプレート一致スコアを決定するために追加的に構成されている、実施形態19に記載の方法である。