(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023016882
(43)【公開日】2023-02-02
(54)【発明の名称】物体サイズ検出のためのロボットシステム
(51)【国際特許分類】
G06T 7/60 20170101AFI20230126BHJP
G06T 7/13 20170101ALI20230126BHJP
G06V 10/44 20220101ALI20230126BHJP
B25J 13/08 20060101ALI20230126BHJP
【FI】
G06T7/60 300A
G06T7/13
G06V10/44
B25J13/08 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022187394
(22)【出願日】2022-11-24
(62)【分割の表示】P 2022081405の分割
【原出願日】2022-05-18
(31)【優先権主張番号】63/189,743
(32)【優先日】2021-05-18
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【弁理士】
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】ジンズ ユ
(72)【発明者】
【氏名】金本 良樹
(72)【発明者】
【氏名】ホセ ジェロニモ モレイラ ロドリゲス
(72)【発明者】
【氏名】ローゼン ニコラエフ ディアンコフ
(57)【要約】
【課題】既存のコンピュータベースの画像認識およびロボット制御分野に技術的改善をもたらすこと、すなわち物体の掴む部分を識別する全体的な速度および信頼性の向上を提供する計算システムを提供すること。
【解決手段】視野を有するカメラと通信する処理回路を含む計算システムにおいて、処理回路は、視野内の物体に基づいて画像情報を取得し、標的開放角に対して最小実行可能領域を画定する。潜在的な最小実行可能領域は、物体の候補エッジを識別し、かつ候補エッジに基づいて潜在的な交点を決定することによって画定される。次いで、潜在的な最小実行可能領域から、最小実行可能領域が識別および検証される。
【選択図】
図4
【特許請求の範囲】
【請求項1】
非一時的コンピュータ可読媒体と、
少なくとも1つの処理回路と、を備え、
前記少なくとも1つの処理回路は、視野を有するカメラと通信し、かつ、1つ以上の物体が前記視野内にある、またはあったときに、前記非一時的コンピュータ可読媒体上に記憶された命令を実行するように構成され、
前記命令は、
1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、前記画像情報が、前記カメラによって生成され、かつ、前記1つ以上の物体と関連付けられた物体の外観を少なくとも記述すること、
前記画像情報に基づいて、前記1つ以上の物体の複数の角を検出すること、
前記複数の角から標的開放角を識別すること、
前記標的開放角に対して最小実行可能領域を画定すること、
を有し、
前記最小実行可能領域は、
複数の候補エッジセグメントを生成することと、
前記複数の候補エッジセグメントから複数の候補エッジを決定することと、
前記複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、
前記複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、
前記潜在的な最小実行可能領域候補のセットから、前記複数の角の前記標的開放角に対する最小実行可能領域候補を選択することと、
前記最小実行可能領域候補を、前記標的開放角に対する最小実行可能領域として検証することと、
によって画定される、計算システム。
【請求項2】
前記画像情報は、三次元ビューから二次元ビューにワーピングされる、請求項1に記載の計算システム。
【請求項3】
前記複数のエッジセグメントを生成することは、最小候補サイズおよび最大候補サイズによって画定される領域内に前記複数のエッジセグメントを生成することを含む、請求項1に記載の計算システム。
【請求項4】
前記最小実行可能領域候補は、最小面積に基づいて、前記潜在的な最小実行可能領域候補のセットから選択される、請求項1に記載の計算システム。
【請求項5】
前記標的開放角を識別することは、前記選択された開放角が別の物体に隣接していないことを認識することを含む、請求項1に記載の計算システム。
【請求項6】
前記最小実行可能領域候補を最小実行可能領域として検証することは、前記少なくとも1つの他の最小実行可能領域候補に対する前記最小実行可能領域候補の重複検証を実施することを含む、請求項1に記載の計算システム。
【請求項7】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、セグメント長さ基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項1に記載の計算システム。
【請求項8】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、直交性基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項1に記載の計算システム。
【請求項9】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、位置基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項1に記載の計算システム。
【請求項10】
前記最小実行可能領域候補を検証することは、包装検証操作に従って実施される、請求項1に記載の計算システム。
【請求項11】
非一時的コンピュータ可読媒体、及び、
視野を有するカメラと通信し、かつ、命令を実行するように構成された少なくとも1つの処理回路を備える、ロボットシステムを制御する方法であって、
1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、前記画像情報が、前記カメラによって生成され、前記1つ以上の物体と関連付けられた物体の外観を少なくとも記述すること、
前記画像情報に基づいて、前記1つ以上の物体の複数の角を検出すること、
前記複数の角から標的開放角を識別すること、
前記標的開放角に対して最小実行可能領域を画定すること、
を有し、
前記最小実行可能領域は、
複数の候補エッジセグメントを生成することと、
前記複数の候補エッジセグメントから複数の候補エッジを決定することと、
前記複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、
前記複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、
前記潜在的な最小実行可能領域候補のセットから、前記複数の角の前記標的開放角に対する最小実行可能領域候補を選択することと、
前記最小実行可能領域候補を、前記標的開放角に対する最小実行可能領域として検証することと、
によって画定される、方法。
【請求項12】
前記複数のエッジセグメントを生成することは、最小候補サイズおよび最大候補サイズによって画定される領域内に前記複数のエッジセグメントを生成することを含む、請求項11に記載の方法。
【請求項13】
前記最小実行可能領域候補は、最小面積に基づいて、前記潜在的な最小実行可能領域候補のセットから選択される、請求項11に記載の方法。
【請求項14】
前記標的開放角を識別することは、前記選択された開放角が別の物体に隣接していないことを認識することを含む、請求項11に記載の方法。
【請求項15】
前記最小実行可能領域候補を最小実行可能領域として検証することは、前記少なくとも1つの他の最小実行可能領域候補に対する前記最小実行可能領域候補の重複検証を実施することを含む、請求項11に記載の方法。
【請求項16】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、セグメント長さ基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項11に記載の方法。
【請求項17】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、直交性基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項11に記載の方法。
【請求項18】
前記複数の候補エッジセグメントから前記複数の候補エッジを決定することは、位置基準に従って前記複数の候補エッジセグメントを評価することを含む、請求項11に記載の方法。
【請求項19】
前記最小実行可能領域候補を検証することは、包装検証操作に従って実施される、請求項11に記載の方法。
【請求項20】
視野を有するカメラと通信する少なくとも1つの処理回路による実行のための命令を含む非一時的コンピュータ可読媒体であって、
前記少なくとも1つの処理回路は、1つ以上の物体が前記視野内にある、またはあったときに、前記命令を構成しており、
前記命令は、
1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、前記画像情報が、前記カメラによって生成され、前記1つ以上の物体と関連付けられた少なくとも物体の外観を記述すること、
前記画像情報に基づいて、前記1つ以上の物体の複数の角を検出すること、
前記複数の角から標的開放角を識別すること、
前記標的開放角に対して最小実行可能領域を画定すること、
を行うように構成されており、
前記最小実行可能領域は、
複数の候補エッジセグメントを生成することと、
前記複数の候補エッジセグメントから複数の候補エッジを決定することと、
前記複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、
前記複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、
前記潜在的な最小実行可能領域候補のセットから、前記複数の角の前記標的開放角に対する最小実行可能領域候補を選択することと、
前記最小実行可能領域候補を、前記標的開放角に対する最小実行可能領域として検証することと、
によって画定される、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年5月18日出願の「A ROBOTIC SYSTEM FOR OBJECT SIZE MEASUREMENT OR MINIMUM VIABLE REGION DETECTION」と題された米国特許仮出願第63/189,743号の利益を主張し、その内容全体が参照により本明細書に組み込まれる。
【0002】
本技術は、概して、ロボットシステム、より具体的には、物体サイズ測定および/または最小実行可能領域検出を実施するためのシステム、プロセス、および技術を対象とする。
【背景技術】
【0003】
性能がますます向上し、コストが低減するにつれ、現在、多くのロボット(例えば、物理的アクションを自動/自律的に実行するように構成された機械)が様々な異なる分野で広く使用されている。ロボットは、例えば、製造および/または組立、梱包および/または包装、輸送および/または出荷などにおける様々なタスク(例えば、空間を通して物体を操作するか、または移動させる)を実行するために使用され得る。タスクを実行する際に、ロボットは、人のアクションを再現することができ、それによって、そうでなければ危険または反復的なタスクを実施するのに必要な人の関与を置き換えるか、または低減することができる。
【発明の概要】
【0004】
本明細書の一実施形態によれば、計算システムであって、非一時的コンピュータ可読媒体と、少なくとも1つの処理回路と、を備えるものが提供される。少なくとも1つの処理回路は、視野を有するカメラと通信し、かつ、視野内に1つ以上の物体がある、またはあったときに、非一時的コンピュータ可読媒体に記憶されている命令を実行するように構成されている。命令は、1つまたは物体を表す画像情報を取得することであって、各物体が複数のエッジを有し、画像情報がカメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することと、を有する。最小実行可能領域は、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【0005】
さらなる実施形態は、非一時的コンピュータ可読媒体と、少なくとも1つの処理回路であって、視野を有するカメラと通信し、かつ命令を実行するように構成された少なくとも1つの処理回路と、を備えるロボットシステムを制御する方法を提供する。方法は、1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、画像情報が、カメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することと、を含み、最小実行可能領域は、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【0006】
さらなる実施形態では、非一時的コンピュータ可読媒体が提供される。非一時的コンピュータ可読媒体は、視野を有するカメラと通信する少なくとも1つの処理回路による実行のための命令を含み、少なくとも1つの処理回路は、1つ以上の物体が視野内にある、またはあったときに、命令を構成している。命令は、1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、画像情報が、カメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することであって、最小実行可能領域が、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【図面の簡単な説明】
【0007】
【
図1A】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするためのシステムを示す。
【
図1B】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするためのシステムを示す。
【
図1C】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするためのシステムを示す。
【
図1D】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするためのシステムを示す。
【
図2A】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするように構成された計算システムを示すブロック図を提供する。
【
図2B】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするように構成された計算システムを示すブロック図を提供する。
【
図2C】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするように構成された計算システムを示すブロック図を提供する。
【
図2D】本明細書の実施形態に従い、最小実行可能領域を画定することを実施するか、または容易にするように構成された計算システムを示すブロック図を提供する。
【
図2E】システムによって処理され、本明細書の実施形態に従う、画像情報の実施例を提供する。
【
図2F】システムによって処理され、本明細書の実施形態に従う、画像情報の実施例を提供する。
【
図3A】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3B】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3C】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3D】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3E】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3F】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3G】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図3H】本明細書の実施形態による、最小実行可能領域を画定することが実施され得る環境を例示する。
【
図4】本明細書の一実施形態による、最小実行可能領域を画定する方法を例示するフロー図を提供する。
【発明を実施するための形態】
【0008】
協調移動機構を有するロボットシステムのシステムおよび方法が本明細書に説明されている。いくつかの実施形態に従って構成されたロボットシステム(例えば、各々が1つ以上の指定されたタスクを実行するデバイスの統合されたシステム)は、複数のユニット(例えば、ロボット)の操作を協調させることによって、統合されたタスクを自律的に実行する。
【0009】
本明細書に記載される本技術は、既存のコンピュータベースの画像認識およびロボット制御分野に技術的改善をもたらす。技術的改善は、物体とのロボットの相互作用の効率および信頼性を向上させるために、物体の掴む部分を識別する全体的な速度および信頼性の向上を提供する。画像情報を使用して、カメラの視野内に存在する物体を決定および区別することで、本明細書に説明されるプロセスは、1つの標的物体の潜在的な掴む部分の識別を調整および支援するための物体の移動の使用を通して、既存の画像認識をさらに改善する。
【0010】
特に、本明細書に説明される本技術は、各物体の寸法および位置の識別が未知であるか、または不完全な正確さで既知であるとき、ロボットシステムが、複数の物体のうちの特定の物体と相互作用するのを支援する。例えば、複数の物体が互いに同一平面に位置付けられる場合、既存のコンピュータベースの画像認識は、各物体を識別することが困難であり、物体とどのように相互作用するかについて、ロボットシステムに確実かつ正確に指示することが困難であり得る。特に、それは、物体の寸法が正確に識別されない場合、1つの物体が終了し、別の物体が開始するロボットシステムにとって明確ではない場合がある。したがって、システムは、物体が他の物体と交差する位置で物体を掴もうと試みるリスクがある。そのような場合、システムは、いずれの物体も掴むことを失敗する場合がある。物体の正確な寸法が、完全な正確さで知られていなくてもよいが、本明細書に提供されるシステムおよび方法は、物体の正しいエッジを識別または決定することを必要とせず、ロボットアームによって掴まれ得る物体の少なくとも一部分、例えば、最小実行可能領域を迅速かつ確実に識別する能力を提供する。さらに、システムは、物体が掴まれる位置を調整するように構成され得る。物体が特定の位置(例えば、中心から外れた位置)で掴まれる場合、物体を移動させることが困難であり得る。本明細書に提供されるシステムおよび方法は、ロボットアームによる初期の掴み後の物体の移動を使用して、物体の正しい寸法を決定し、更新された寸法に基づいて、ロボットが物体とどのように相互作用するかを調整または変更し得る。
【0011】
以下に、本開示の技術の理解を提供するために、具体的な詳細が記載されている。実施形態では、本明細書に導入される技術は、本明細書に開示される各具体的な詳細を含まずに実施されてもよい。他の実例では、特定の機能またはルーチンなどの周知の特徴は、本開示を不必要に不明瞭化することを避けるために詳細には説明されない。本明細書における「実施形態」、「一実施形態」などへの参照は、説明される特定の特徴、構造、材料、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書におけるそのような語句の外観は、必ずしもすべて同じ実施形態を指すわけではない。一方で、そのような参照は、必ずしも相互に排他的なものではない。さらに、特定の特徴、構造、材料、または特性は、1つ以上の実施形態で、任意の好適な様式で組み合わせられ得る。図に示される様々な実施形態は、単に例示的な表現であり、必ずしも縮尺どおりに描かれるものではないことを理解されたい。
【0012】
周知であり、かつ多くの場合にロボットシステムおよびサブシステムと関連付けられるが、本開示の技術のいくつかの重要な態様を不必要に不明瞭にし得る、構造またはプロセスを説明する数点の詳細は、明確化の目的で以下の説明には記載されていない。さらに、以下の開示は、本技術の異なる態様の数点の実施形態を説明しているが、数点の他の実施形態は、本節に説明されるものとは異なる構成または異なる構成要素を有してもよい。したがって、開示された技術は、追加の要素を有するか、または以下に説明される要素のうちの数点を有しない、他の実施形態を有してもよい。
【0013】
以下に説明される本開示の多くの実施形態または態様は、プログラム可能なコンピュータまたはコントローラによって実行されるルーチンを含む、コンピュータまたはコントローラ実行可能命令の形態をとり得る。関連分野の当業者であれば、開示された技術は、以下に示され説明されるもの以外のコンピュータまたはコントローラシステム上で、またはそれらを用いて実践され得ることを理解するであろう。本明細書に説明される技術は、以下に説明されるコンピュータ実行可能命令のうちの1つ以上を実行するように、特別にプログラム、構成、または構築されている、専用コンピュータまたはデータプロセッサで具現化され得る。したがって、本明細書において一般的に使用される用語「コンピュータ」および「コントローラ」は、任意のデータプロセッサを指し、インターネット家電およびハンドヘルドデバイス(パームトップコンピュータ、ウェアラブルコンピュータ、セルラーまたはモバイルフォン、マルチプロセッサシステム、プロセッサベースまたはプログラム可能な家電、ネットワークコンピュータ、ミニコンピュータなどを含む)を含み得る。これらのコンピュータおよびコントローラによって処理される情報は、液晶ディスプレイ(LCD)を含む、任意の好適なディスプレイ媒体で提示され得る。コンピュータまたはコントローラ実行可能タスクを実行するための命令は、ハードウェア、ファームウェア、またはハードウェアとファームウェアとの組み合わせを含む、任意の好適なコンピュータ可読媒体に、またはその上に記憶され得る。命令は、例えば、フラッシュドライブ、USBデバイス、および/または他の好適な媒体を含む、任意の適切なメモリデバイスに含まれ得る。
【0014】
「結合」および「接続」という用語は、それらの派生語と共に、本明細書では、構成要素間の構造的な関係を説明するために使用され得る。これらの用語は、互いの同義語として意図されていないことが理解されるべきである。むしろ、特定の実施形態では、「接続」は、2つ以上の要素が互いに直接接触していることを示すために使用され得る。文脈において別途明白にされない限り、「結合」という用語は、2つ以上の要素が、互いに直接的または間接的(それらの間の他の介在要素との)接触にあるか、または2つ以上の要素が互いに協働するか、もしくは相互作用する(例えば、信号送信/受信のための、または関数呼び出しのためのなどの、因果関係にあるような)か、またはその両方を示すために使用され得る。
【0015】
計算システムによる画像分析に対する本明細書の任意の参照は、選択された点に対する様々な位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の位置を記述する、点群を含んでもよく、またはそれを生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0016】
図1Aは、物体検出、すなわち、より具体的には、物体認識を実施するためのシステム1500を例示する。より詳細には、システム1500は、計算システム1100およびカメラ1200を含み得る。この実施例では、カメラ1200は、カメラ1200が位置する環境を描写するか、もしくはそうでなければ表し、またはより具体的には、カメラ1200の視野(カメラ視野とも呼ぶ)中の環境を表す、画像情報を生成するように構成され得る。環境は、例えば、倉庫、製造工場、小売空間、または他の施設であり得る。こうした実例では、画像情報が、箱、ビン、ケース、木枠または他の容器などの、こうした施設に位置する物体を表し得る。システム1500は、以下でより詳細に論じるように、画像情報を使用して、カメラ視野内の個々の物体を区別すること、画像情報に基づいて物体認識または物体登録を実施すること、および/または画像情報に基づいてロボット相互作用計画を実施することなど、画像情報を生成、受信、および/または処理するよう構成され得る(用語「および/または」および「または」は、本開示では互換的に使用される)。ロボット相互作用計画は、例えば、ロボットと容器または他の物体との間のロボット相互作用を促進するように、施設でロボットを制御するために使用され得る。計算システム1100およびカメラ1200が、同じ施設に位置してもよく、または互いと遠隔に位置し得る。例えば、計算システム1100は、倉庫または小売空間から遠隔のデータセンターでホストされる、クラウドコンピューティングプラットフォームの一部であってもよく、ネットワーク接続を介して、カメラ1200と通信し得る。
【0017】
実施形態では、カメラ1200(画像感知装置とも呼ばれ得る)は、2Dカメラおよび/または3Dカメラであり得る。例えば、
図1Bは、計算システム1100、ならびにカメラ1200Aおよびカメラ1200B(その両方がカメラ1200の実施形態であり得る)を含む、システム1500A(システム1500の実施形態であり得る)を示している。この実施例では、カメラ1200Aは、カメラの視野中にある環境の視覚的外観を記述する2D画像を含むまたは形成する、2D画像情報を生成するように構成される2Dカメラであり得る。カメラ1200Bは、カメラの視野中の環境に関する空間構造情報を含む、または形成する3D画像情報を生成するように構成される3Dカメラ(空間構造感知カメラまたは空間構造感知装置とも呼ばれる)であり得る。空間構造情報は、カメラ1200の視野中にある様々な物体の表面上の位置など、カメラ1200Bに対する様々な位置のそれぞれの奥行き値を記述する、奥行き情報(例えば、奥行きマップ)を含んでもよい。カメラの視野または物体の表面のこれらの位置はまた、物理的位置と呼んでもよい。この実施例の奥行き情報は、物体が3次元(3D)空間の中で空間的にどのように配設されるかを推定するために使用され得る。一部の実例では、空間構造情報は、カメラ1200Bの視野中にある物体の1つ以上の表面上の位置を記述する、点群を含んでもよく、またはそれを生成するために使用され得る。より具体的には、空間構造情報が、物体の構造(物体構造とも呼ぶ)上の様々な位置を記述し得る。
【0018】
実施形態では、システム1500が、カメラ1200の環境でロボットと様々な物体との間のロボット相互作用を促進するための、ロボット操作システムであり得る。例えば、
図1Cは、
図1Aおよび
図1Bのシステム1500/1500Aの実施形態であり得るロボット操作システム1500Bを示している。ロボット操作システム1500Bは、計算システム1100、カメラ1200、およびロボット1300を含んでもよい。上述のように、ロボット1300は、カメラ1200の環境の中にある1つ以上の物体、例えば、箱、木枠、ビン、またはその他の容器と相互作用するために使用され得る。例えば、ロボット1300は、1つの位置から容器を拾い上げ、それらを別の位置に移動するように構成され得る。一部の事例では、ロボット1300は、容器または他の物体のグループが降ろされて、例えば、ベルトコンベヤーに移動されるといった、パレットから降ろす操作を実施するために使用され得る。一部の実装形態では、カメラ1200は、ロボット1300のロボットアーム3320など、ロボット1300に取り付けられてもよい。一部の実装形態では、カメラ1200は、ロボット1300から分離し得る。例えば、カメラ1200は、倉庫または他の構造の天井に装着されてもよく、構造に対して静止したままであり得る。
【0019】
一実施形態では、
図1A~
図1Cの計算システム1100は、ロボットコントローラとも呼ばれ得るロボット1300を形成してもよく、またはロボット1300に組み込まれてもよい。ロボット制御システムは、システム1500Bに含まれ得、例えば、ロボット1300と容器または他の物体との間のロボット相互作用を制御するためのロボット相互作用移動コマンドなどの、ロボット1300用のコマンドを生成するように構成されている。こうした実施形態では、計算システム1100は、例えば、カメラ1200によって生成された画像情報に基づいて、このようなコマンドを生成するように構成されてもよい。例えば、計算システム1100は、画像情報に基づいて運動計画を決定するように構成されてもよく、運動計画は、例えば、物体を掴むか、または他の方法でピックアップすることを意図し得る。計算システム1100は、運動計画を実行するために、1つ以上のロボット相互作用移動コマンドを生成し得る。
【0020】
実施形態では、計算システム1100は、視覚システムを形成しても、またはその一部であり得る。視覚システムは、例えば、ロボット1300が位置する環境を記述する、または別の方法として、もしくは追加的に、カメラ1200が位置する環境を記述する、視覚情報を生成するシステムであり得る。視覚情報が、上で考察された3D画像情報、および/または2D画像情報、またはいくつかの他の画像情報を含んでもよい。一部のシナリオでは、計算システム1100が、視覚システムを形成する場合、視覚システムは、上で考察されたロボット制御システムの一部であってもよく、またはロボット制御システムから分離し得る。視覚システムは、ロボット制御システムから分離する場合、視覚システムは、ロボット1300が位置する環境を記述する、情報を出力するように構成され得る。情報は、視覚システムからこうした情報を受信し、情報に基づいて、運動計画を実施し、および/またはロボット相互作用移動コマンドを生成することができる、ロボット制御システムに出力され得る。視覚システムに関する詳細情報は、以下に詳しく説明されている。
【0021】
実施形態では、計算システム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)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用し得る。
【0022】
実施形態では、計算システム1100は、カメラ1200および/もしくはロボット1300と直接情報を伝達してもよく、または中間記憶装置、もしくはより広くは、中間の非一時的コンピュータ可読媒体を介して通信し得る。例えば、
図1Dは、計算システム1100の外部にあり得る非一時的コンピュータ可読媒体1400を含む、システム1500/1500A/1500Bの実施形態であってもよく、例えば、カメラ1200によって生成される画像情報を記憶するための外部バッファまたはリポジトリとして作用し得る、システム1500Cを示している。こうした一実施例では、計算システム1100は、非一時的コンピュータ可読媒体1400から、画像情報を検索するか、さもなければ受信することができる。非一時的コンピュータ可読媒体1400の例としては、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせが挙げられる。非一時的コンピュータ可読媒体は、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックを形成し得る。
【0023】
上述のように、カメラ1200は、3Dカメラおよび/または2Dカメラであり得る。2Dカメラは、カラー画像またはグレースケール画像などの、2D画像を生成するように構成され得る。3Dカメラは、例えば、飛行時間(TOF)カメラもしくは構造化光カメラなどの、奥行き感知カメラ、またはいかなる他のタイプの3Dカメラであり得る。一部の事例では、2Dカメラおよび/または3Dカメラは、電荷結合素子(CCD)センサおよび/または相補型金属酸化膜半導体(CMOS)センサなど、イメージセンサを含み得る。実施形態では、3Dカメラは、レーザー、LIDARデバイス、赤外線デバイス、明/暗センサ、運動センサ、マイクロ波検出器、超音波検出器、レーダー検出器、または奥行き情報、または空間構造情報を取り込むように構成される任意の他のデバイスを含み得る。
【0024】
上述のように、画像情報が、計算システム1100によって処理され得る。実施形態では、計算システム1100は、サーバ(例えば、1つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータなど)、スマートフォン、タブレットコンピュータ装置、および/もしくは他の任意の他の計算システムを含んでもよく、またはそれらとして構成され得る。実施形態では、計算システム1100の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム1100は、単一のコンピュータ装置(例えば、デスクトップコンピュータ)であってもよく、または複数のコンピュータ装置を含んでもよい。
【0025】
図2Aは、計算システム1100の実施形態を示すブロック図を提供する。この実施形態における計算システム1100は、少なくとも1つの処理回路1110、および非一時的コンピュータ可読媒体(または複数の媒体)1120を含む。一部の実例では、処理回路1110は、非一時的コンピュータ可読媒体1120(例えば、コンピュータメモリ)上に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたプロセッサ(例えば、中央処理ユニット(CPU)、専用コンピュータ、および/またはオンボードサーバ)を含み得る。一部の実施形態では、プロセッサは、他の電子/電気装置に操作可能に結合された別個の/スタンドアロンコントローラに含まれてもよい。プロセッサは、プログラム命令を実装して、他の装置を制御/インターフェースし、それによって、計算システム1100にアクション、タスク、および/または操作を実行させ得る。実施形態では、処理回路1110は、1つ以上のプロセッサ、1つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、または任意の他の処理回路を含む。
【0026】
実施形態では、計算システム1100の一部である非一時的コンピュータ可読媒体1120が、上で考察された中間の非一時的コンピュータ可読媒体1400の代替または追加であり得る。非一時的コンピュータ可読媒体1120は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはそれらの任意の好適な組み合わせなどの記憶装置であってもよく、例えば、コンピュータディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消却可能プログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらの任意の組み合わせ、または任意の他の記憶装置などであり得る。一部の実例では、非一時的コンピュータ可読媒体1120は、複数の記憶装置を含み得る。特定の実装形態では、非一時的コンピュータ可読媒体1120は、カメラ1200によって生成され、計算システム1100によって受信される画像情報を記憶するように構成される。一部の実例では、非一時的コンピュータ可読媒体1120は、物体認識操作を実施するために使用される1つ以上のモデルテンプレートを記憶し得る。非一時的コンピュータ可読媒体1120は、処理回路1110によって実行されるとき、処理回路1110に、本明細書に説明される1つ以上の方法論を実施させるコンピュータ可読プログラム命令を、代替的または追加的に記憶し得る。
【0027】
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む計算システム1100Aを描写する。通信インターフェース1130は、例えば、
図1A~
図1Dのカメラ1200によって生成された画像情報を受信するように構成され得る。画像情報は、上で考察された中間の非一時的コンピュータ可読媒体1400もしくはネットワークを介して、またはカメラ1200と計算システム1100/1100Aとの間のより直接的な接続を介して受信され得る。実施形態では、通信インターフェース1130は、
図1Cのロボット1300と通信するように構成され得る。計算システム1100が、ロボット制御システムの外部にある場合、計算システム1100の通信インターフェース1130が、ロボット制御システムと通信するように構成され得る。通信インターフェース1130はまた、通信構成要素または通信回路と呼ばれる場合があり例えば、有線または無線プロトコルによって通信を実施するように構成される通信回路を含んでもよい。実施例として、通信回路が、RS-232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、任意の他の通信回路、またはそれらの組み合わせを含んでもよい。
【0028】
一実施形態では、
図2Cに図示されるように、非一時的コンピュータ可読媒体1120は、本明細書に論じられる1つ以上のデータオブジェクトを記憶するように構成された記憶空間1128を含み得る。例えば、記憶空間は、モデルテンプレート、ロボットアーム移動コマンド、および計算システム1100Bがアクセスを必要とし得る任意の追加のデータオブジェクトを記憶し得る。
【0029】
実施形態では、処理回路1110が、非一時的コンピュータ可読媒体1120に記憶される1つ以上のコンピュータ可読プログラム命令によってプログラムされ得る。例えば、
図2Dは、計算システム1100/1100A/1100Bの実施形態である計算システム1100Cを示し、その中の処理回路1110は、物体認識モジュール1121、最小実行可能領域(MVR)モジュール1122、および運動計画モジュール1129を含む1つ以上のモジュールによってプログラムされる。
【0030】
実施形態では、物体認識モジュール1121は、本開示全体を通して論じられたように、画像情報を取得および分析するように構成され得る。画像情報に関して本明細書で論じられる方法、システム、および技術は、物体認識モジュールを使用し得る。
【0031】
MVR決定モジュール1122は、物体認識モジュール1121によって実施または取得された画像情報および分析に従って、最小実行可能領域を計算、決定、および/または識別するように構成され得る。MVR決定に関して本明細書で論じられる方法、システム、および技術は、MVR決定モジュール1122によって実施され得る。
【0032】
運動計画モジュール1129は、ロボットの移動を計画するように構成され得る。例えば、運動計画モジュール1129は、個々の配置位置/配向を導出し、対応する運動計画、または物体を掴むおよび/もしくは移動させるためのそれらの組み合わせを計算してもよい。ロボットアームの移動に関して本明細書で論じられる方法、システム、および技術は、運動計画モジュール1129によって実施され得る。
【0033】
図2E、
図2Fおよび
図3Aを参照すると、画像分析のために実施され得る物体認識モジュール1121に関連する方法が説明される。
図2Eおよび
図2Fは、画像分析方法と関連付けられた例示的な画像情報を示すが、
図3Aは、画像分析方法と関連付けられた例示的なロボット環境を示す。計算システムによる画像分析に関連する本明細書の参照は、選択された点に対する様々な位置のそれぞれの奥行き値を説明する奥行き情報を含み得る空間構造情報に従って、またはそれを使用して実施され得る。奥行き情報は、物体を識別するか、または物体が空間的にどのように配置されているかを推定するために使用され得る。一部の実例では、空間構造情報は、物体の1つ以上の表面上の位置を記述する点群を含んでもよく、またはそれを生成するために使用され得る。空間構造情報は、可能な画像分析の一形態に過ぎず、当業者が公知の他の形態が、本明細書に説明される方法に従って使用され得る。
【0034】
実施形態では、計算システム1100は、カメラ(例えば、1200/3200)のカメラ視野(例えば、3210)内の物体を表す画像情報を取得し得る。一部の実例では、物体は、カメラ1200/3200のカメラ視野3210における1つ以上の物体(例えば、3510~3540)の第1の物体(例えば、3510)であってもよい。画像情報2600、2700は、物体3000A/3000B/3000C/3000Dのグループがカメラ視野3210にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、個々の物体のうちの1つ以上を記述してもよい。物体の外観は、カメラ1200/3200の視点からの物体3000A/3000B/3000C/3000Dの外観を記述する。カメラ視野に複数の物体がある場合、カメラは、必要に応じて、複数の物体または単一の物体を表す画像情報を生成し得る。画像情報は、物体のグループがカメラ視野にある(またはあった)ときに、カメラ(例えば、1200/3200)によって生成されてもよく、および、例えば、2D画像情報および/または3D画像情報を含み得る。
【0035】
一例として、
図2Eは、画像情報の第1のセット、より具体的には、2D画像情報2600を図示し、これは、上述のように、カメラ3200によって生成され、
図3Aの物体3000A/3000B/3000C/3000D/3550を表す。より具体的には、2D画像情報2600は、グレースケール、またはカラー画像であり得、カメラ3200の視点からの物体3000A/3000B/3000C/3000D/3550の外観を記述し得る。実施形態では、2D画像情報2600は、カラー画像の単一色チャネル(例えば、赤、緑、または青のチャネル)に対応し得る。カメラ3200が物体3000A/3000B/3000C/3000D/3550の上方に配置される場合、2D画像情報2600は、物体3000A/3000B/3000C/3000D/3550のそれぞれの上部表面の外観を表し得る。
図2Eの実施例では、2D画像情報2600は、物体3000A/3000B/3000C/3000D/3550のそれぞれの表面を表す、画像部分とも呼ばれる、それぞれの部分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など)のピクセルに関連付けられた任意の追加情報を含んでもよい。
【0036】
上述のように、画像情報は、一部の実施形態では、2D画像情報2600などの画像のすべてまたは一部分であってもよい。実施例では、計算システム3100は、対応する物体3000Aと関連付けられた画像情報のみを取得するように、2D画像情報2600から画像部分2000Aを抽出するように構成されてもよい。例えば、計算システム3100は、
図2Fに示される2D画像情報2600および/または3D画像情報2700に基づいて画像セグメンテーション操作を実施することによって、画像部分2000Aを抽出し得る。一部の実装形態では、画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が2D画像情報2600の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3210)内の個々の物体を表すことに限定された画像部分(例えば、5610)を識別することを含み得る。
【0037】
図2Fは、画像情報が3D画像情報2700である、実施例を図示している。より具体的には、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550の1つ以上の表面(例えば、上部表面、または他の外部表面)上の様々な位置のそれぞれの奥行き値を示す、例えば、奥行きマップまたは点群を含み得る。一部の実装形態では、画像情報を抽出するための画像セグメンテーション操作は、物体の物理的エッジ(例えば、箱のエッジ)が3D画像情報2700の中に現れる画像位置を検出すること、およびこうした画像位置を使用して、カメラ視野(例えば、3000A)内の個々の物体を表すことに限定された画像部分(例えば、2730)を識別することを含み得る。
【0038】
それぞれの奥行き値は、3D画像情報2700を生成するカメラ3200に対するものであってもよく、またはいくつかの他の基準点に対するものであり得る。一部の実施形態では、3D画像情報2700は、カメラ視野(例えば、3210)の中にある物体の構造上の様々な位置に対するそれぞれの座標を含む、点群を含み得る。
図2Fの実施例では、点群は、物体3000A/3000B/3000C/3000D/3550のそれぞれの表面上の位置を記述する、それぞれの座標セットを含み得る。座標は、[X Y Z]座標などの3D座標であってもよく、カメラ座標系、または何らかの他の座標系に対する値を有してもよい。例えば、3D画像情報2700は、物体3000Dの表面上の物理的位置とも呼ばれる、位置2710
1~2710
nのセットのそれぞれの奥行き値を示す、画像部分とも呼ばれる第1の部分2710を含み得る。さらに、3D画像情報2700は、第2の部分、第3の部分、および第4の部分2720、2730、および2740をさらに含み得る。次に、これらの部分は、それぞれ、物体2720
1~2720
n、2730
1~2730
n、および2740
1~2740
nによって表され得る、位置のセットに対するそれぞれの奥行き値をさらに示し得る。これらの図は単に実施例であり、対応する画像部分を有する任意の数の物体が使用され得る。上述のように、取得された3D画像情報2700は、一部の実例では、カメラによって生成される3D画像情報2700の第1のセットの一部分であってもよい。
図2Eの実施例では、取得された3D画像情報2700が
図3Aの第1の物体3000Aを表す場合、3D画像情報2700は、画像部分2710のみを参照するように狭められ得る。
【0039】
実施形態では、画像正規化操作は、画像情報を取得する一部として、計算システム1100によって実施され得る。画像正規化操作は、変換された画像または変換された画像部分を生成するために、カメラ3200によって生成された画像または画像部分を変換することを伴い得る。例えば、取得された、2D画像情報2600、3D画像情報2700、または2つの組み合わせを含み得る画像情報が、視点、物体姿勢、および視覚的記述情報と関連付けられた照明条件において画像情報を変更させるように試みるために、画像正規化操作を受け得る場合である。そのような正規化は、画像情報およびモデル(例えば、テンプレート)情報間のより正確な比較を容易にするために実施され得る。視点は、カメラ3200に対する物体の姿勢、および/またはカメラ3200が物体を表す画像を生成するときに、カメラ3200が物体を見ている角度を指し得る。
【0040】
例えば、画像情報は、標的物体がカメラ視野3210内にある物体認識操作中に生成され得る。カメラ3200は、標的物体がカメラに対して特定の姿勢を有するときに、標的物体を表す画像情報を生成し得る。例えば、標的物体は、その上部表面をカメラ3200の光学軸に対して垂直にする姿勢を有してもよい。こうした実施例では、カメラ3200によって生成される画像情報は、標的物体の上面図などの特定の視点を表し得る。一部の実例では、カメラ3200が物体認識操作中に画像情報を生成しているときに、画像情報は、照明強度などの特定の照明条件で生成され得る。こうした実例では、画像情報は、特定の照明強度、照明色、または他の照明条件を表し得る。
【0041】
実施形態では、画像正規化操作は、画像または画像部分を、モデルテンプレートの情報と関連付けられた視点および/または照明条件により良く一致させるように、カメラによって生成されるシーンの画像または画像部分を調整することを伴い得る。調整は、画像または画像部分を変換して、物体姿勢またはモデルテンプレートの視覚的記述情報に関連付けられた照明条件のうちの少なくとも1つに一致する変換された画像を生成することを伴い得る。
【0042】
視点調整は、画像がモデルテンプレート内の視覚的記述情報と同じ視点を表すように、シーンの画像の処理、ワーピング、および/またはシフトを伴い得る。処理は、例えば、画像の色、コントラスト、または照明を変更することを含み、シーンのワーピングは、画像のサイズ、寸法、または比率を変更することを含み得、画像のシフトは、画像の位置、配向、または回転を変更することを含み得る。例示的な実施形態では、処理、ワーピング、および/またはシフトを使用して、シーンの画像内の物体を、モデルテンプレートの視覚的記述情報に一致するか、またはそれにより良好に対応する配向および/またはサイズを有するように変更してもよい。モデルテンプレートが、一部の物体の正面視界(例えば、上面視界)を記述する場合、シーンの画像は、シーン内の物体の正面視界も表すようにワーピングされ得る。
【0043】
様々な実施形態では、「コンピュータ可読命令」および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。様々な実施形態では、「モジュール」という用語は、処理回路1110に1つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピュータ可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピュータ可読命令を実行しているときに、様々な操作またはタスクを実施するものとして説明され得る。
【0044】
本開示の一態様は、物体検出(物体認識とも呼ばれる)、物体サイズ測定、および/または最小実行可能領域検出を実施することができる、ロボットシステムまたは任意の他の計算システムに関する。物体検出またはサイズ測定は、シーン内の個々の物体の寸法を決定すること、または個々の物体の境界を決定することを伴い得る。物体は、物体のグループの一部である箱などの、物体のグループの一部であってもよい。例えば、ロボットシステムは、パレットの各層が互いに近くに配置された物体を有する、物体のパレットを有するシーンを取り込むカメラデータをロボットシステムが受信する、パレットから降ろす操作の一部として物体検出操作を実施し得る。
【0045】
このシナリオにおける物体検出は、1つの個々の物体を層上の他の物体と区別できるように、パレットの特定の層上の個々の物体を区別するためのカメラデータ(画像情報)の処理または分析を伴い得る。問題は、物体のパレットがすべて互いに同一平面に位置付けられるときに起こり、ロボットシステムが物体を互いに検出または分離することが困難になる。本明細書に説明されるプロセスは、パレットから個々の物体をピックアップし、それを他の場所に移動させるための計画を生成するために、ロボットシステムが物体のサイズおよび/または境界を識別することを可能にし得る。一部の実装形態では、ロボットシステムは、シーンにおける物体に対する少なくとも1つの最小実行可能領域を識別し得る。最小実行可能領域は、特定の物体の潜在的な輪郭または寸法の推定である。そのため、ロボットシステムは、物体の正しい寸法を知らずに、エンドエフェクター装置(例えば、グリッパ)を用いて、最小実行可能領域で個々の物体を掴み得る。物体の最小実行可能領域は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。したがって、この領域内の物体を掴む試みは、エンドエフェクター装置が、物体のエッジ上に延在せずに、単一の物体のみに接触することを確保する。本明細書で論じられるように、最小実行可能領域の決定は、物体移動ロボットアームの正確性および速度を向上させ得る。
【0046】
上記の例では、物体は、例えば、パレットまたは他のプラットフォーム上の他の物体の隣に配置された箱または他の物体であってもよい。カメラが、複数の物体を有するシーンを取り込む画像を生成する場合、画像自体は、異なる物体を区別する目的で完全には信頼性がない場合がある。例えば、一部のカメラは、シーン内の様々な位置の奥行き値を示す画像を生成することができ得るが、複数の物体が、同じ高さを有するか、または別様にカメラから同じ距離である場合、画像は、特に、複数の物体が一緒に密に詰め込まれている場合、複数の物体の上部表面を覆う領域に対する実質的に均一な奥行き値を示し得る。したがって、そのような画像は、複数の物体の中から個々の物体を識別する目的で、限定された情報を提供し得る。一部のカメラは、物体の上部表面などの、物体の視覚的な外観を取り込む画像を生成することができ得るが、これらの上部表面は、それらの上に印刷された線または他の視覚的マーキングを有し得る。したがって、そのような画像は、線を含み得るが、線の各々は、物体のうちの1つの境界(例えば、第1または第2のエッジ)と関連付けられ得るか、または単に視覚的マーキングであり得る(例えば、擬似エッジであり得る)。そのため、本明細書に提供するシステムおよび方法は、物体表面の最小実行可能領域を決定するために使用され得る。最小実行可能領域は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。最小実行可能領域は、物体の実際の物理的エッジおよび/または物体の擬似エッジによって境界付けられ得る。システムが擬似エッジと物理的エッジとの間を容易に区別することができない場合、この不能性は、以下で論じられるように、最小実行可能領域を画定する方法を通して説明され得る。
【0047】
図3A~
図3Hは、本明細書に説明されるプロセスおよび方法が実施され得る例示的な環境を例示する。
図3Aは、計算システム3100(例えば、計算システム1100の実施形態)、ロボット3300、およびカメラ3200を含むシステム3500(
図1A~
図1Dのシステム1500/1500A/1500B/1500Cの実施形態であり得る)を有する環境を図示する。カメラ3200は、カメラ1200の実施形態であってもよく、カメラ3200のカメラ視野3210内のシーンを表す、または、より具体的には、物体3000A、3000B、3000C、および3000Dなどの、カメラ視野3210内の物体(箱など)を表す画像情報を生成するように構成され得る。一実施例では、物体3000A~3000Dの各々は、例えば、箱または木枠などの容器であってもよく、一方で、物体3550は、例えば、容器が配置されるパレットであり得る。
【0048】
実施形態では、
図3Aのシステム3500は、光源3600などの1つ以上の光源を含み得る。光源3600は、例えば、発光ダイオード(LED)、ハロゲンランプ、または任意の他の光源であってもよく、可視光、赤外線、または物体3000A~3000Dの表面に向かって任意の他の形態の光を放射するように構成され得る。一部の実施形態では、計算システム3100は、光源3600と通信して、光源3600が起動されたときを制御するように構成され得る。他の実装形態では、光源3600は、計算システム3100とは独立して操作し得る。
【0049】
一実施形態では、システム3500は、カメラ3200、または2D画像情報2600を生成するように構成される2Dカメラと、3D画像情報2700を生成するように構成される3Dカメラと、を含む、複数のカメラ3200を含み得る。2D画像情報2600(例えば、カラー画像またはグレースケール画像)は、カメラ視野3210における、物体3000A/3000B/3000C/3000Dなどの1つ以上の物体の外観を記述し得る。例えば、2D画像情報2600は、物体3000A/3000B/3000C/3000Dの外部表面(例えば、上部表面)上に配置される視覚的詳細、および/またはそれらの外部表面の輪郭を取り込むか、または別様に表し得る。実施形態では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550のうちの1つ以上の構造を記述してもよく、物体の構造は、物体の構造または物体の物理的構造とも呼ばれ得る。例えば、3D画像情報2700は、奥行きマップを含んでもよく、より一般的には、カメラ3200に対する、または何らかの他の基準点に対する、カメラ視野3210の様々な位置のそれぞれの奥行き値を記述し得る、奥行き情報を含んでもよい。それぞれの奥行き値に対応する位置は、物体3000A/3000B/3000C/3000D/3550のそれぞれの上部表面上の位置などの、カメラ視野3210の様々な表面上の位置(物理的位置とも呼ばれる)であり得る。一部の実例では、3D画像情報2700は、物体3000A/3000B/3000C/3000D/3550、またはカメラ視野3210内のいくつかの他の物体の1つ以上の外側表面上の様々な位置を記述する、複数の3D座標を含み得る、点群を含み得る。点群が
図2Fに示される。
【0050】
図3Aの実施例では、ロボット3300(ロボット1300の実施形態であり得る)は、ロボット基部3310に取り付けられる一端を有し、かつロボットグリッパなどのエンドエフェクター装置3330に取り付けられるか、またはそれらによって形成される別の端を有する、ロボットアーム3320を含み得る。ロボット基部3310は、ロボットアーム3320を装着するために使用され得るが、ロボットアーム3320、より具体的には、エンドエフェクター装置3330は、ロボット3300の環境で1つ以上の物体と相互作用するために使用され得る。相互作用(ロボット相互作用とも呼ぶ)は、例えば、物体3000A~3000Dのうちの少なくとも1つを掴むか、または他の方法でピックアップすることを含み得る。例えば、ロボット相互作用は、ロボット3300が、パレットから物体3000A~3000Dをピックアップし、かつ物体3000A~3000Dを目的位置に動かすために使用される、パレットから降ろす操作の一部であり得る。エンドエフェクター装置3330は、物体を把持するか、または掴むための吸引カップまたは他の構成要素を有し得る。エンドエフェクター装置3330は、吸引カップまたは他の把持構成要素を使用して、例えば、上面を介して、物体の単一の面または表面との接触を通して、物体を把持するか、または掴むように構成され得る。
【0051】
ロボット3300は、構造部材を操作するため、および/またはロボットユニットを輸送するためになど、作業を実装するために使用される情報を取得するように構成された追加のセンサをさらに含み得る。センサは、ロボット3300および/または周囲の環境の1つ以上の物理的特性(例えば、その状態、条件、および/または1つ以上の構造部材/関節の位置)を検出または測定するよう構成された装置を含み得る。センサの一部の実施例には、加速度計、ジャイロスコープ、力センサ、歪みゲージ、触覚センサ、トルクセンサ、位置エンコーダなどが含まれ得る。
【0052】
図3Bは、
図3Aの物体3000A、3000B、3000C、および3000Dの上面図を図示する。各物体3000A~3000Dは、表面3001、複数の角3002、およびこの実施例では、開放角3004を含む。本明細書で使用される場合、「開放角」は、別の物体3000に隣接していない複数の角3002の任意の角を指す。開放角は、それ自体が別の物体と境界を接するものではない物体の上部表面の2つのエッジによって形成され得る。一実施例では、2つのエッジは、2つの水平エッジを含み得る。2つのエッジの全体が、開放されたとみなされる角に対して隣接する物体を含まないことは、要求されない。物体3000A~3000Dのクローズアップ上面図を図示する
図3Cを参照すると、各物体3000A~3000Dの追加の特徴が図示されている。二次元描写では、物体3000Aは、4つのエッジ、長さ方向の物理的エッジ3013、幅方向の物理的エッジ3015、幅方向の物理的エッジ3017、および長さ方向の物理的エッジ3019によって画定される表面を有し得る。示される例示的な実施形態では、幅方向の物理的エッジ3015および長さ方向の物理的エッジ3013は、いかなる隣接する物体のエッジにも隣接していないか、またはそれらと同一平面ではなく、したがって、開放エッジと呼ばれ得る。示される例示的な実施形態では、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019は、隣接する物体3000Bおよび3000Dのエッジに隣接しており、かつそれらと同一平面であり、したがって、閉鎖エッジと呼ばれ得る。上記に説明されたエッジを指す「長さ方向」および「幅方向」という用語の使用は、物体および/またはエッジの特定の配向が要求されることを暗示するものではない。一般に、略長方形の物体について、長さ方向のエッジは、幅方向のエッジに隣接している(および略垂直である)。長さ方向および幅方向は、本明細書で使用される場合、物体または物体のグループの文脈内の特定の方向のみを指し、特定の絶対方向を指さない。物体3000A、3000B、および3000Dの位置決めは、計算システム3100が各物体の特徴を区別することをより困難にし得る。
【0053】
決定するための方法4000、および開放角3004に対する最小実行可能領域が
図4に図示されている。方法4000は、非一時的コンピュータ可読媒体に記憶され得、かつ少なくとも1つの処理回路が、視野を有するカメラと通信している状態で、少なくとも1つの処理回路によって実行され得る。
【0054】
操作において、方法4000は、1つ以上の物体3000、例えば、物体3000A~3000Dの物理的特性を表す画像情報を取得する操作4002を含む。画像情報は、カメラ3200によって生成され、1つ以上の物体に関連付けられた少なくとも物体の外観を説明し、各物体は、複数のエッジを含む。
図3Aは、画像情報の取得または生成を図示する。実施形態では、画像情報は、三次元または斜視図で取得され、方法の正確性を向上するために、視点は、二次元ビューにシフトされる。視点調整は、画像情報の処理、ワーピング、および/またはシフトを伴い得る。処理は、画像情報の色、コントラスト、または照明を変更することを含み得、シーンのワーピングは、画像情報のサイズ、寸法、または比率を変更することを含み得、画像情報のシフトは、画像情報の位置、配向、または回転を変更することを含み得る。ワーピングは、三次元で物体を図示することから、二次元、例えば、上面図で物体を図示することに画像情報を変換する、ワーピング変換を画定するホモグラフィを決定することを伴い得る。一部の実例では、ワーピングは、画像情報を、所望の二次元ビューの対応する点、例えば、角と合致させる、回転および/または並進運動を記述し得る。
【0055】
実施形態では、以下に説明される計算および方法は、カメラが物体(複数可)をもはや撮像していない後、または物体(複数可)が視野を離れた後に実施され得る。
【0056】
操作において、方法4000は、画像情報に基づいて、複数の物体3000の複数の角3002を検出するための操作4004を含む。存在する任意の角を検出するために、計算システム1100/3100は、様々な方法を使用し得る。例えば、角検出は、エッジ検出およびエッジ交点のその後の決定を伴い得る。エッジ検出は、2Dおよび3D画像情報、例えば、点群情報の分析に基づいて実施され得る。エッジ検出は、例えば、(i)物体間の境界を表し得る2D画像内の線またはエッジを識別するための2D画像分析、(ii)層セグメンテーションおよびエッジを検出するための異なる高さ/奥行きの検出を伴う点群分析、または(iii)開放エッジを識別するための2Dまたは3D画像分析を含み得る。本明細書に説明される実施例は、単に例としてのものであり、エッジ検出は、必要に応じて代替的な技術をさらに含んでもよい。
【0057】
エッジ検出は、例えば、物体間の境界を表し得る2D画像内の線またはエッジを識別するための2D画像分析を含み得る。そのような分析は、エッジを表し得る2D画像内の視覚的不連続性を識別し得る。例えば、そのような分析は、例えば、ピクセル強度の不連続性条件またはスパイクピクセル強度条件の分析を含み得る。画定されたピクセル強度不連続性条件を満たすことは、ピクセル強度値の変化、すなわち、より具体的には、変化するピクセル強度を有する領域間のピクセル強度値の微分または勾配を使用することを含み得る。次いで、勾配または微分が、特に、エッジに対して垂直に移動しているときに、エッジまたは角に存在するピクセル強度のスパイクを検出するために使用され得る。さらに、計算システム1100/3100は、隣接するピクセル間にスパイクまたは不連続性を画定して、エッジおよび角を識別するために、ピクセル強度の差異を識別するようにバイナリ閾値を適用し得る。
【0058】
エッジ検出は、例えば、層セグメンテーション、およびエッジを検出するための異なる高さ/奥行きの検出を伴う点群分析を含み得る。隣接する物体は、異なる高さを有し得る。したがって、点群(3D画像情報)内の異なる高さ(または奥行き)の検出が、物体間のエッジを検出するために使用され得る。したがって、計算システム1100/3100は、画定された奥行き不連続性条件を満たす点群の一部分に従って、エッジを検出し得る。
【0059】
さらなる実施例では、エッジ検出は、隣接する物体を欠く物理的エッジを検出することによって実施され得る。物体が隣接する物体を欠く場合、例えば、物体が物体のグループの外周に位置する場合、物体のグループのエッジは、関連付けられた個々の物体の物理的エッジとして検出され得る。
【0060】
実施形態では、エッジ検出のための上述の方法のいずれかは、エッジ検出の正確性または信頼性を向上させるために、各または他のエッジ検出方法と組み合わせられ得る。
【0061】
操作において、方法4000は、複数の角3002から開放角3004を識別する操作4005を含む。上記に論じられたように、「開放角」は、別の物体3000に隣接していない複数の角3002の角を指す。実施形態では、システムは、複数の角を識別し、角3002が識別されると、角3002のうちの開放角から、開放角3004Aなどの、開放角を選択するように構成され得る。実施形態では、複数の角3002の各々は、角検出操作4004が隣接する物体の欠如によって識別された物理的エッジに基づいて角を検出し得るため、開放角であってもよい。さらに、標的開放角を識別するとき、システムは、開放角が別の物体に隣接していないことを認識し得る。開放角3004Aは、単一の標的開放角であってもよい。
【0062】
開放角(凸角または外角とも呼ばれる)は、上記に論じられたように、例えば、点群の形態で、3D画像情報の分析を通して識別され得る。開放角は、例えば、点群内の頂点を識別し(例えば、エッジ交点または他の手段に基づいて)、次いで、識別された頂点を1つ以上の基準(例えば、長さ、奥行き、幅、直交性基準)に供して、それらが開放角を表すか否かを決定することによって識別され得る。角および潜在的なエッジを識別するための画像情報の使用に関する詳細は、2020年4月7日発行の米国特許第10,614,340号に見出されており、参照によりその全体が組み込まれている。
【0063】
上記のように、および物体3000A~3000Dの拡大上面図を図示する
図3Cを参照すると、各物体3000A~3000Dの追加の特徴が図示されている。二次元描写では、物体3000Aは、4つのエッジ、長さ方向の物理的エッジ3013、幅方向の物理的エッジ3015、幅方向の物理的エッジ3017、および長さ方向の物理的エッジ3019によって画定される表面を有し得る。示される例示的な実施形態では、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019は、隣接する物体3000Bおよび3000Dのエッジに隣接しており、かつそれらと同一平面である。上述のように、物体3000A、3000B、および3000Dのそのような位置決めは、計算システム3100が各物体の特徴を区別することをより困難にし得る。
【0064】
操作において、方法4000は、開放角3004Aに対する、
図3Eおよび
図3Gに例示される、最小実行可能領域3006を画定する操作4006を含む。最小実行可能領域3006は、物体3000を移動するようにロボットアーム3320のエンドエフェクター装置3330によって把持され得る、開放角3004Aと関連付けられた物体3000の表面3001上の領域を表す。上述のように、ロボットアーム3320は、例えば、エンドエフェクター装置3330の吸引グリップを使用して、上部表面によって、開放角3004Aを含む標的物体などの物体を掴み得る。物体の最小実行可能領域3006は、単一の物体の表面上に完全に存在すると推定される、物体の上部表面上の領域を表す。したがって、最小実行可能領域3006によって画定される領域内の標的物体を掴む試みは、エンドエフェクター装置3330が、標的物体を掴むときに、隣接する物体も掴まれないように、標的物体のエッジの上に延在することなく、標的物体(例えば、単一の物体)のみに接触することを確保し得る。物体3000のエッジが他の物体に隣接しているか、またはそれらと接触している状況では、計算システム1100/3100は、物体の正しい寸法を識別するのが困難であるか、またはより長い時間が掛かる場合がある。そのため、ロボットアーム3320が、物体3000のエッジの上に延在することなく、および/または別の別個の物体に接触することなく、物体3000を堅固に掴み得る領域を正確に画定することは、困難であり得る。したがって、最小実行可能領域3006は、ロボットアーム3320が、物体3000の正しい寸法を知らずに物体3000を掴み得る、推定されたか、または潜在的な寸法に基づく領域を画定する。最小実行可能領域3006は、ロボットアーム3320が物体3000を掴み得る領域を画定することが意図される。最小実行可能領域3006のサイズは、それが見つかる物体3000のサイズとは異なる場合があり、時には顕著に異なる場合がある。操作4008~4016は、最小実行可能領域3006がどのように計算および検証され得るかを図示する。
【0065】
操作において、方法4000は、複数の候補エッジセグメントを生成するための操作4008を含む。複数の候補エッジセグメントは、複数の幅方向の候補エッジセグメントおよび複数の長さ方向の候補エッジセグメントを含み得る。複数の幅方向の候補エッジセグメントおよび複数の長さ方向の候補エッジセグメントは、開放角3004Aと関連付けられた物体3000の、それぞれ、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019に対応するための候補である、エッジまたはエッジの一部分を表す。開放角3004Aと関連付けられた物体3000は、他の物体3000に隣接して、またはそれらと同一平面に位置付けされ得、物体3000Aが終了し、他の物体(3000B、3000C、300Dなど)が開始する場所を区別する際に計算システム1100/3100が課題に直面する状況をもたらす。
【0066】
計算システム1100/3100は、まず、2D画像情報内の複数の潜在的なエッジセグメントを識別し得る。潜在的なエッジセグメントは、物体の物理的エッジを表すものとして認識される可能性をもたらす特性を有する、任意のタイプの検出可能な視覚的マーキングから識別され得る。例えば、視覚的マーキングは、エッジ、しわ、ギャップ、着色の変化、および他の不連続性を含み得る。次いで、潜在的なエッジセグメントは、例えば、クラスタリング技術を介して、複数の候補エッジセグメントを識別するようにさらに処理され得る。適切なクラスタリング技術は、例えば、2020年2月14日出願の米国特許出願第16/791,024号に説明されており、参照によりその全体が本明細書に組み込まれる。一実施形態では、候補エッジセグメントは、幅方向の物理的エッジ3017(長さ方向の候補エッジセグメントに対して)、または長さ方向の物理的エッジ3013(幅方向の候補エッジセグメントに対して)のいずれかに対して、実質的に垂直(例えば、垂直の5度以内)であることに基づいて、潜在的なエッジセグメントから識別され得る。
図3Cは、例示的な目的のために、複数の幅方向の候補エッジセグメントの個々の幅方向の候補エッジセグメント3009、および複数の長さ方向候補エッジセグメントの個々の長さ方向候補エッジセグメント3011を例示する。
【0067】
実施形態では、複数の候補エッジセグメントの検出は、最小および最大候補サイズに従って制限され得る。計算システム1100/3100は、予想される物体サイズに基づいて、最小および最大候補サイズを決定し得る。予想される物体は、長さ、幅、および高さ寸法を有し得る。最小候補サイズは、予想される物体に見出される最小面に従って(例えば、3つの寸法のうちの2つに従って)画定され得る。いくつかの実施形態では、最小候補サイズは、長さおよび幅寸法によって、ならびに/または対角寸法によって画定され得る。最小候補サイズは、予想される物体に見出される最大面に従って(例えば、3つの寸法のうちの2つに従って)画定され得る。最小候補サイズ3016および最大候補サイズ3018が、例として、
図3Dに例示されている。したがって、最小候補サイズ3016は、最小の可能性がある物体面と関連付けられ得、したがって、最大候補サイズ3018は、最大の可能性がある物体面と関連付けられ得る。最小候補サイズ3016は、最小の可能性がある物体面の寸法を表す幅方向の寸法3016Aおよび長さ方向の寸法3016Bを含み得るが、最大候補サイズ3018は、最大の可能性がある物体面の寸法を表す幅方向の寸法3018Aおよび長さ方向の寸法3018Bを含み得る。一部の実施形態では、最小候補サイズ3016と最大候補サイズ3018との間の領域のみが、潜在的なエッジセグメントの生成について分析される。
【0068】
実施形態では、操作4008は、整列された候補エッジセグメントを組み合わせるように操作し得る。例えば、1つ以上の候補エッジセグメントが整列されている場合、それらは、さらなる分析のために計算システム3010によって組み合わせられ得る。整列された候補エッジセグメントは、実質的な共直線性(また実質的に類似アライメントとも呼ばれる)を有し得、これは、事前に画定された角度閾値および/または所定のオフセット閾値に従って画定され得る。2つの候補エッジセグメントに対する角度閾値は、例えば、2つの候補エッジ間の角度が、角度閾値(例えば、5°、4°、3°、2°、または1°などの、一定の度数)内であること、または2つの候補エッジの各々によって形成されるそれぞれの角度が、角度閾値内であることを要求し得る。2つの候補エッジセグメントに対するオフセット閾値は、例えば、候補エッジがオフセット閾値よりも小さいオフセットを有することを要求し得る。一実施形態では、2つの候補エッジ間のオフセットは、候補エッジから延在する、または別様に外挿される、それぞれの線間の最短距離によって画定され得る。整列された候補エッジセグメントは、より大きい候補エッジセグメントを生み出すために組み合わせられ得る。
【0069】
操作において、方法4000は、複数の候補エッジセグメントから複数の候補エッジを決定する操作4010を含む。ここで
図3Cおよび
図3Dを参照すると、複数の候補エッジセグメントから候補エッジを選択する操作が説明されている。一連の閾値またはフィルタは、分析中の物体の物理的エッジを表す可能性が低いか、表さない可能性が高いか、または表すことが不可能である、候補エッジセグメントを排除するために適用され得る。操作4010は、幅方向の物理的エッジ3017および長さ方向の物理的エッジ3019の推定として、複数の幅方向の候補エッジ(個々の幅方向の候補エッジ3008によって
図3Cで表される)および複数の長さ方向の候補エッジ(個々の長さ方向の候補エッジ3010によって
図3Cで表される)を含む、複数の候補エッジを決定し得る。操作4010は、1つ以上の基準の適用に従って、候補エッジを選択し得る。
【0070】
第1の閾値または基準は、位置基準または物理的エッジからセグメントまでの閾値であってもよい。位置基準は、候補エッジセグメントが、既知の開放物理的エッジ、より具体的には、候補エッジセグメントに対して実質的に垂直に配向された既知の開放物理的エッジの閾値距離内に収まるか否かの評価を表す。
図3Cは、近位終点3009Aおよび遠位終点3009Bを有し、かつ開放物理的エッジのうちの1つである長さ方向の物理的エッジ3013に対応する長さ方向の物理的エッジベクトル3012に対して実質的に垂直に位置付けられた、幅方向の候補エッジセグメント3009を例示する。近位終点3009Aは、長さ方向の物理的エッジ3013に対して幅方向の候補エッジセグメント3009の近位端に位置付けられ、遠位終点3009Bは、長さ方向の物理的エッジ3013に対して幅方向の候補エッジセグメント3009の遠位端に位置付けられる。位置基準は、近位終点3009Aと長さ方向の物理的エッジ3013との間のエッジ距離3030Aまでのセグメントが、画定された最小値内にあるか否かの評価を表す。画定された最小値は、倍率δ
1によって加重された最小候補サイズ3016の最小寸法(Min)の長さとして設定され得る。したがって、位置基準は、0≦距離3030A≦δ
1*Minとして表現され得る。倍率δ
1は、0.4~0.6、または0.4~0.5の値として設定され得る。位置基準は、幅方向の候補エッジセグメント3009の近位終点3009Aが、最小候補サイズ3016の最小寸法(Min)の長さの半分を超えて、長さ方向の物理的エッジ3013から離間されないことを保証する。位置基準を満たさない任意の候補エッジセグメントは、複数の候補エッジの考えられるメンバーとして排除され得る。位置基準はまた、近位終点3011Aおよび遠位終点3011Bを有する長さ方向の候補エッジセグメント3011などの、複数の長さ方向の候補エッジセグメントに適用され得る。近位終点3011Aは、セグメントからエッジまでの距離3032Aに基づいて、幅方向の物理的エッジ3015への近接度に対する位置基準に従って評価され得る。
【0071】
さらなる実施形態では、幅方向の候補エッジセグメント3009の遠位終点3009Bは、セグメントからエッジまでの距離3030Bに基づいて、最大候補サイズ3018の長さ方向の寸法3018Bへの近接度に対する位置基準に従って評価され得る。長さ方向の候補エッジセグメントの遠位終点3011Bは、セグメントからエッジまでの距離3032Bに基づいて、最大候補サイズ3018の長さ方向の寸法3018Aへの近接度に対する位置基準に従って評価され得る。遠位端3009Bおよび3011Bに適用される位置基準は、近位終点3009Aおよび3011Aに適用される位置基準の代わりに、またはそれに加えて使用され得る。
【0072】
位置基準は、幅方向の候補エッジセグメント3009または長さ方向の候補エッジセグメント3011が、幅方向の物理的エッジ3017または長さ方向の物理的エッジ3019のいずれかに対応する場合、近位終点3009A/3009Bまたは遠位終点3011A/3011Bのいずれかが、物理的エッジの閾値距離または物体の最大候補サイズ内に位置付けられることになることを予想する。したがって、位置基準は、潜在的な候補エッジセグメントが、分析される物体の既知の物理的エッジまたは予想される物理的エッジ(最大候補サイズによって表される)に近い終点を有するか否かを評価する。倍率δ1は、エッジセグメントを識別する際のノイズ、センサの矛盾、または他の誤差源を考慮するか、または対処するように選択され得る。
【0073】
セグメント長さ基準またはセグメント長さ閾値とも呼ばれる第2の基準は、候補エッジセグメントの長さが閾値を超えるか否かを評価する。実施形態では、閾値は、倍率δ2によって加重された最小候補サイズ3016の最小寸法(Min)の長さとして設定され得る。したがって、長さ基準は、近位終点3009A/3011Aと遠位終点3009B/3011Bとの間のエッジセグメント長さ3051を、最小候補サイズ3016と比較し得る。幅方向の候補エッジセグメント3009または長さ方向の候補エッジセグメント3011のエッジセグメント長さ3051が、最小候補サイズ3016の最小寸法の長さの割合よりも小さい場合、計算システム1100/3100は、候補エッジセグメント3009/3011を候補エッジとしての考慮から排除し得る。長さ基準はまた、δ2*Min≦エッジセグメント長さ3051として記述され得る。倍率δ2は、0.6~0.8、0.65~0.75、0.69~0.71の範囲の値、またはおよそ0.7の値を有し得る。
【0074】
第2の基準は、候補エッジセグメントが物理的エッジと対応し、そのため、候補エッジとみなされるために、候補エッジセグメントが、最小候補サイズの最小寸法の一部分を超過するのに十分な長さであるべきであると予想する。したがって、セグメント長さ閾値を満たさない候補エッジセグメントは、物理的エッジを潜在的に表す候補として考慮されない可能性がある。倍率δ2は、エッジセグメントを識別する際のノイズ、センサの矛盾、または他の誤差源を考慮するか、または対処するように選択され得る。
【0075】
直交性基準またはセグメント直交性閾値とも呼ばれる第3の基準は、候補線セグメントが、長さ方向の物理的エッジ3013または幅方向の物理的エッジ3015のいずれかに対して実質的に垂直であるか否かを評価する。本明細書で使用される場合、実質的に垂直という用語は、正確に垂直の5度以内を意味する。例えば、幅方向の候補エッジセグメント3009は、実質的な垂直性または実質的な直交性を決定するために、長さ方向の物理的エッジ3013と比較され、長さ方向の候補エッジセグメント3011は、実質的な垂直性または実質的な直交性を決定するために、幅方向の物理的エッジ3015と比較される。第3の基準は、幅方向の線分3009または長さ方向の線分3011が、それぞれ、幅方向の物理的縁部3017または第4の物理的エッジ3015のいずれかと対応するために、潜在的なエッジが、それが延在する物理的エッジと実質的に垂直であるべきであると予想する。直交性基準を満たさない候補エッジセグメントは、潜在的な候補エッジとして排除され得る。
【0076】
候補エッジは、位置基準、長さ基準、および直交性基準の3つの基準の各々を満たす複数の候補エッジセグメントから選択または決定され得る。複数の候補エッジは、複数の幅方向の候補エッジおよび複数の長さ方向の候補エッジを含み得る。
図3Cは、個々の幅方向の候補エッジ3008および個々の長さ方向の候補エッジ3010を例示する。幅方向の候補エッジ3008は、関連付けられた幅方向の候補エッジセグメント3009と整列され、長さ方向の物理的エッジ3013から実質的に垂直に延在する。長さ方向の候補エッジ3010は、関連付けられた長さ方向の候補エッジセグメント3011と整列され、幅方向の物理的エッジ3015から実質的に垂直に延在する。
【0077】
操作において、方法4000は、複数の幅方向の候補エッジおよび複数の長さ方向の候補エッジのそれぞれの間に複数の交点3024を生成するための操作4012を含む。交点3024は、複数の幅方向の候補エッジまたはその突出部のうちのいずれかのうちの1つが、複数の長さ方向の候補エッジまたはその突出部のうちのいずれかのうちの1つと交差する位置として画定される。突出部は、識別された候補エッジが、垂直に配向された候補エッジのうちの1つと交差するほど十分には延在しない状況で使用され得る。幅方向の候補エッジ3009と長さ方向の候補エッジ3011との間の個々の交点3024が
図3Cに図示される。
図3Eに図示されるように、各幅方向の候補エッジ3008A、3008B、3008Cおよび長さ方向の候補エッジ3010A、3010B、3010Cは、複数の交点3024A~3024Iと関連付けられ得る。例えば、幅方向の候補エッジ3008Aは、長さ方向の候補エッジ3010A、3010B、および3010Cと交差して、3つの別個の交点3024A、3024D、および3024Gを生み出す。これらの交点3024A~3024Iの各々は、標的開放角3004Aに対向する標的物体の潜在的な角を表す。
【0078】
操作において、方法4000は、標的開放角3004Aと相関する候補最小実行可能領域を生成する操作4014を含む。上述のように、最小実行可能領域3006(
図3Cに示される)が、物体3000を移動させるためにロボットアーム3320によって把持されるか、もしくは掴まれ得る、またはそのために利用可能であり得る、標的開放角3004Aと関連付けられた物体3000の表面3001上の領域を表す。標的開放角3004Aに関連付けられた物体3000が他の物体に隣接しているか、またはそれと接触している用途では、計算システム3100は、物体3000の寸法を正確および/または精密に推定しない場合があり、そのため、ロボットアーム3320が物体3000を堅固に掴み得る領域を正確に画定するのは困難である。そのため、最小実行可能領域3006は、ロボットアーム3320が、正しい寸法を知らずに物体3000を掴み得る、推定されたか、または潜在的な寸法に基づく領域を画定する。最小実行可能領域3006は、標的開放角3004Aによって画定される物体3000の表面3001上の面積、複数の幅方向の候補エッジの幅方向の候補エッジ3008、複数の長さ方向の候補エッジの長さ方向の候補エッジ3010、および交点3024である。
【0079】
上記のように、複数の幅方向の候補エッジ3008A、3008B、3008C、複数の長さ方向の候補エッジ3010A、3010B、3010C、および複数の交点3024A~3024Iは、以前の操作で識別される。合わせて、複数の幅方向の候補エッジ3008A、3008B、3008C、複数の長さ方向の候補エッジ3010A、3010B、3010C、および複数の交点3024A~3024Iは、潜在的な最小実行可能領域候補3066のセットを画定し得、その個々の候補(例えば、潜在的な最小実行可能領域候補3006A~3006G)が
図3Eに例示される。実施形態では、各交点3024が、それが形成される幅方向の候補エッジ3008および長さ方向の候補エッジ3010をさらに指定するため、標的角3004Aと関連付けられた最小実行可能領域候補は、交点3024に従って識別され得る。
図3Eに図示されるように、多数の潜在的な最小実行可能領域3006が、単一の幅方向の候補エッジ3008A、3008B、3008C、または単一の長さ方向の候補エッジ3010A、3010B、3010Cと関連付けられ得る。加えて、潜在的な最小実行可能領域候補3066のセットの各々は、単一の交点3024と関連付けられる。上記に論じられたように、潜在的な最小実行可能領域候補3066のセットの各々は、最小の可能性がある物体と関連付けられる最小候補サイズ3016、および最大の可能性がある物体と関連付けられた最大候補サイズ3018内に収まる。
【0080】
図3Eの潜在的な最小実行可能領域候補3066は、幅方向の候補エッジ3008A、3008B、3008Cおよび長さ方向の候補エッジ3010A、3010B、3010Cの組み合わせとして、以下の表1に提示される。
【表1】
【0081】
候補最小実行可能領域3067は、標的角3004Aと、関連付けられた交点3024との間に最小対角距離を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づいて、潜在的な最小実行可能領域候補3066のセットから選択され得る。最小距離は、候補最小実行可能領域3067の決定における主因として使用され得る。長さ基準に対する倍率δ2の使用に起因して、候補最小実行可能領域3067は、最小候補サイズ3016よりも小さくてもよい。さらなる実施形態では、最小候補サイズ3016は、候補最小実行可能領域3067として選択される潜在的な最小実行可能領域候補3066の最小サイズとして設定され得る。
【0082】
候補最小実行可能領域3067に対して最小対角距離を選択することによって、システムは、候補最小実行可能領域3067が、それが位置する実際の物体3000より大きくないと決定する。候補最小実行可能領域3067を形成する識別されたエッジは、標的物体3000Aの実際の寸法を表し得るが、それらは、標的物体3000Aの考えられるエッジを表す。標的角3004Aと、関連付けられた交点3024との間の最小対角距離を選択することによって、計算システム1100/3100は、標的物体3000Aのみに存在する増大した可能性を有する、面積、候補最小実行可能領域3067を決定する。実施形態では、システムは、候補最小実行可能領域3067が1つ以上の物体と交差しないと決定し得る。したがって、候補最小実行可能領域3067内で標的物体3000Aを把持することは、ロボットアームが一度に1つよりも多い物体3000を把持しようと試みる可能性を低減することによって、把持操作の信頼性を向上させる。
【0083】
潜在的な最小実行可能領域候補3066のセットから最小実行可能領域候補を決定する様々な他の方法が使用されてもよい。例えば、潜在的な最小実行可能領域候補が、以前に識別された開放角3004でもある交点3024を含む事象において、その潜在的な最小実行可能領域候補は、物体3000の表面3001の全体と相関すると想定され得るため、選択され得る。あるいは、潜在的な最小実行可能領域候補が、例えば、特定の割合閾値内の、最小候補サイズ3016または最大候補サイズ3018のいずれかと実質的に同様の寸法を有する場合、物体3000は、それぞれ、最小候補サイズ3016または最大候補サイズ3018のいずれかであり、潜在的な最小実行可能領域候補が選択され得ることが想定され得る。一部の実施形態では、潜在的な最小実行可能領域候補3066のセットから選択される候補最小実行可能領域3067は、潜在的な最小実行可能領域候補3066のセットの最大面積または中央面積を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づき得る。一部の実施形態では、潜在的な最小実行可能領域候補3066のセットから選択される候補最小実行可能領域3067は、最短候補エッジと関連付けられた交点3024を有する、潜在的な最小実行可能領域候補3006A、3006Bなどに基づき得る。
【0084】
操作において、方法4000は、最小実行可能領域候補3067を検証または調整して、最小実行可能領域3006を生成する操作4016を含む。最小実行可能領域候補3067の検証は、以下で論じられるように、1つ以上の技術を含み得る。したがって、検証および/または調整された最小実行可能領域候補3067は、最小実行可能領域3006として画定され得、物体を識別するための検出仮説として、または検出仮説を増強するために、計算システム1100/3100によって使用され得る。本明細書で使用される場合、検出仮説という用語は、計算システム1100/3100によって決定される物体のサイズまたは形状に関する仮説を指す。実施形態では、検出仮説は、さらなる分析(例えば、追加の画像分析技術を使用する)を介して、ロボット操作を通じて、および/または追加の手段を通じて、確認され得る。
【0085】
最小実行可能領域候補3067は、操作4004で識別された(操作4006~4014による)各開放角3004に対して発見され得、そのように検出された最小実行可能領域候補3067は、他の最小実行可能領域候補3067に対する比較によって検証され得る。例えば、計算システム1100/3100は、重複検証または遮蔽検証を実施し得る。計算システム1100/3100は、標的開放角3004Aの最小実行可能領域候補3067の一部分が、異なる開放角3004と関連付けられた最小実行可能領域候補3067と交差するか否かを決定し得る。そのような場合、標的開放角3004Aの最小実行可能領域候補3067と、異なる開放角3004の最小実行可能領域候補3067との間の比較は、開放角3004/3004Aが、同じ物体3000Aに属すること(遮蔽検証)、または開放角3004/3004Aが、異なる物体3000に属すること(重複検証)を決定し得る。
【0086】
共有物体の場合、計算システム1100/3100は、遮蔽検証を実施し得る。同じ標的物体3004Aに属する2つの最小実行可能領域候補3067は、互いに遮蔽し得る。計算システム1100/3100は、両方の最小実行可能領域候補3067の情報を組み合わせて、最小実行可能領域3066を生成するか、または標的開放角3004Aの最小実行可能領域候補3067を調整して、異なる開放角3004の最小実行可能領域候補3067の情報を組み込み、物体3000Aに対してより正確な最小実行可能領域3066を生み出し得る。
【0087】
あるいは、角が同じ物体3000に属していない事象において、計算システム1100/3100は、2つの重複する最小実行可能領域候補3067と関連付けられた信頼レベルを減少させ得る。どの最小実行可能領域候補3067をさらなる処理のための最小実行可能領域3006として指定するかを決定する際、計算システム1100/3100は、最も高い信頼レベルを有する最小実行可能領域候補3067(例えば、他の最小実行可能領域候補3067との重複がより少ないか、または全くない)を選択し得る。
【0088】
実施形態では、最小実行可能領域候補3067の正確性は、追加因子を使用してさらに向上し得る。例えば、パレットが一様なタイプの物体(例えば、単一のSKUを有する物体)を収容することが知られている事象において、物体の各々に対する最小実行可能領域(特に、物体の寸法と合致する最小実行可能領域)は、実質的に一様であると予想され得る。そのような場合、数個の異なる技術が、潜在的な最小実行可能領域候補3066から最小実行可能領域候補3067を識別および検証するために用いられ得る。単一のSKUまたは一様な物体の方法は、テンプレート検証操作、包装検証操作、および角分類操作のうちの1つ以上を含み得る。
【0089】
ここで
図3Fを参照すると、実施形態では、一様なタイプの物体を収容する物体リポジトリ(例えば、パレット、容器、または他の物体リポジトリ)について、最小実行可能領域候補3067は、テンプレート検証操作に基づいて、潜在的な最小実行可能領域候補3066から識別および/または検証され得る。本明細書に実施される物体認識方法の態様は、2020年8月12日出願の米国特許出願第16/991,510号、および2020年8月12日出願の米国特許出願第16/991,466号により詳細に説明されており、その各々が参照により本明細書に組み込まれる。テンプレート検証操作は、一様な物体が同様の寸法および視覚的特徴を有するという仮定に基づいて進行する。潜在的な最小実行可能領域候補3066によって画定される画像情報の一部分は、潜在的な最小実行可能領域候補3066の各々に対応するテンプレート3068を生成するように分析され得る。各テンプレート3068は、少なくともテクスチャ値、色値、および寸法値を含む、関連付けられた画像部分から生成された情報を含み得る。テクスチャ値は、潜在的な最小実行可能領域候補3066の画像部分が、テクスチャありまたはテクスチャなしの表面を識別するか否かを画定し得る。色値は、潜在的な最小実行可能領域候補3066を表す画像部分の色を画定し得る。寸法値は、潜在的な最小実行可能領域候補3066のエッジ寸法および/または面積を表し得る。テンプレート3068は、互いに比較されて、テクスチャ値、色値、および寸法値のうちの1つ以上で合致するテンプレート3068を識別し得る。これらの値のうちの1つ以上で合致することは、合致するテンプレート3068と関連付けられた、潜在的な最小実行可能領域候補3066が、真の物理的物体3000を表すことを示し得る。物体3000が一様なタイプである場合、合致するテンプレート3068を有することが予想され得る。したがって、合致するテンプレート3068を識別することによって、1つ以上の最小実行可能領域候補3067が、潜在的な最小実行可能領域候補3066から識別され得る。実施形態では、識別された1つ以上の最小実行可能領域候補3067は、テンプレート検証操作に基づいて、最小実行可能領域3006としてさらに検証され得る。
【0090】
ここで
図3Gおよび
図3Hを参照すると、実施形態では、一様なタイプの物体3091を収容する物体リポジトリ3090(例えば、パレット、容器、または他の物体リポジトリ)について、最小実行可能領域候補3067(ここでは図示せず)は、包装検証操作に基づいて、潜在的な最小実行可能領域候補3066から識別および/または検証され得る。物体リポジトリ3090が完全に包装されている(例えば、物体によって完全に占有された層を有する)ことが知られているか、または物体リポジトリがエッジの周囲で包装されていることが知られている場合、この情報は、数点のやり方で、潜在的な最小実行可能領域候補3066からの最小実行可能領域候補3067の識別および検証を支援または増強するために使用され得る。
【0091】
まず、包装検証操作は、最小実行可能領域候補3067の識別および検証を支援するために、包装された物体リポジトリ3090の総面積を使用し得る。物体リポジトリ3090が完全に包装されている場合、その上に位置する物体3091の総表面積は、単一の物体3091の表面積によって均等に分割可能になる。
図3Gに示される例では、単一の物体3091の表面積によって除算された物体3091の総表面積は、8である。潜在的な最小実行可能領域候補3066の面積は、物体3091の総表面積と比較されて、最小実行可能領域候補3067を、総表面積に均等に分割する面積を用いて識別し得る。閾値係数(例えば、95%、98%、99%など)が、ノイズおよび測定誤差の他の発生源を考慮するように、分割操作に適用されてもよい。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
【0092】
第2に、包装検証操作は、最小実行可能領域候補3067の識別および検証を支援するために、包装された物体リポジトリ3090の寸法を使用し得る。物体3091が行および列の等数で配置される特定の配置では、潜在的な最小実行可能領域候補3066の寸法が、物体リポジトリ3090の寸法と比較されて、最小実行可能領域候補3067を識別および/または検証し得る。例えば、物体リポジトリ3090の幅方向の寸法X1および長さ方向の寸法X2は、物体3091の寸法に合致する、潜在的な最小実行可能領域候補3066の寸法によって均等に分割されることになる。潜在的な最小実行可能領域候補3066が、寸法D1およびD2を有する、暗い境界を用いて
図3Gに示される。X1=m*D1であり、式中、mが整数(
図3Gの例では、m=2)であり、かつX2=n*D2であり、式中、nが整数(
図3Gの例では、n=4)である場合、潜在的な最小実行可能領域候補3066が、物体リポジトリ3090上の物体3091の真の寸法を表し、最小実行可能領域候補3067として識別され得ることを示し得る。潜在的な最小実行可能領域候補3066の寸法がこれらの条件を満たさない場合、物体リポジトリ3090上の物体3091の真の寸法を表す可能性は低い。実施形態では、割合閾値(例えば、95%、98%、99%)は、ノイズおよび他の因子に起因する、測定における潜在的な誤差を考慮するために、X1およびX2の方程式において使用され得る。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
【0093】
第3に、包装検証操作は、より一般的な配置に対する最小実行可能領域候補3067の識別および検証を支援するために、物体リポジトリ3090の寸法を使用し得る。物体3091が、物体リポジトリ3090のエッジを完全に放送する、不等数の行および列(ピンホイールパターンとも呼ばれる)で配置される、
図3Hに示される、一般的な配置では、物体リポジトリ3090の各側面の長さは、物体3091の幅方向の寸法の整数と、物体3091の長さ方向の寸法の整数と等しいべきである。一般的な配置の包装操作は、物体リポジトリ3090が完全に包装されているか否かにかかわらず、エッジが完全に包装されている限り、使用され得る。潜在的な最小実行可能領域候補3066の寸法は、物体3091の幅および長さの両方を考慮する一対の方程式を使用して、最小実行可能領域候補3067を識別および/または検証するために、物体リポジトリ3090の寸法と比較され得る。潜在的な最小実行可能領域候補3066が、寸法D1およびD2を有する、暗い境界を用いて
図3Hに示される。一般的な配置では、満たされるべき方程式は、次のとおりである。X1=m1*D1+n1*D2、式中、m1およびn1が両方とも整数であり(
図3Hの例では、m1=1およびn1=3)、かつX2=m2*D1+n2*D2、式中、m2およびn2が両方とも整数である(
図3Hの例では、m2=1およびn2=3)である。両方の方程式が、潜在的な最小実行可能領域候補3066の寸法によって満たされ得る場合、それは、潜在的な最小実行可能領域候補3066が、物体リポジトリ3090上の物体3091の真の寸法を表し、最小実行可能領域候補3067として識別され得ることを示し得る。潜在的な最小実行可能領域候補3066の寸法がこれらの条件を満たさない場合、物体リポジトリ3090上の物体3091の真の寸法を表す可能性は低い。実施形態では、割合閾値(例えば、95%、98%、99%)は、ノイズおよび他の因子に起因する、測定における潜在的な誤差を考慮するために、X1およびX2の方程式において使用され得る。識別された最小実行可能領域候補3067は、本明細書に説明されるさらなる方法に従って、最小実行可能領域3006を決定するためにさらに検証され得る。
【0094】
実施形態では、角分類操作は、一様なタイプの物体3091を有する物体リポジトリ3090上で、計算システム1100/3100によって実施され得る。物体3091が一様であるため、開放角で識別可能な物体3091は、いくつかの特徴を共通に有し得ることが予想されることになる。例えば、角タイプの物体3091は、物体リポジトリ3090の角間で比較され得る。角タイプは、例えば、長方形、八角形、および丸み付きを含み得る。一部の状況では、測定誤差に起因して、物体リポジトリ3090の角にある異なるタイプの物体角を区別することは困難であり得る。例えば、物体の角が八角形であるか、または丸み付きであるかを決定することは、困難であり得る。そのような場合、物体リポジトリ3090の各角の物体角が比較され得、最も頻繁に識別される物体角は、物体リポジトリ3090における物体角タイプの物体3091として決定され得る。同様の技術が、物体リポジトリ3900の角に位置する物体3900のテクスチャありまたはテクスチャなしの分類を決定するために使用され得る。
【0095】
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の好適な修正ならびに適応を、実施形態のうちのいずれの範囲からも逸脱することなく行うことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なるシーケンスで行われてもよく、追加、統合、または完全に省略し得ることも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。したがって、添付の特許請求の範囲で定義されるような、発明の趣旨または範囲から逸脱することなく、様々な変更および修正を当業者が及ぼし得る。
【0096】
さらなる実施形態は、以下の実施形態を含む。
【0097】
実施形態1は、計算システムであって、非一時的コンピュータ可読媒体と、少なくとも1つの処理回路と、を備える。少なくとも1つの処理回路は、視野を有するカメラと通信し、かつ、視野内に1つ以上の物体がある、またはあったときに、非一時的コンピュータ可読媒体に記憶されている命令を実行するように構成されており、命令は、1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、画像情報が、カメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することと、を有する。最小実行可能領域は、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【0098】
実施形態2は、画像情報が、三次元ビューから二次元ビューにワーピングされる、実施形態1の計算システムである。
【0099】
実施形態3は、複数のエッジセグメントを生成することが、最小候補サイズおよび最大候補サイズによって画定される領域内に複数のエッジセグメントを生成することを含む、実施形態1または2の計算システムである。
【0100】
実施形態4は、最小実行可能領域候補が、最小面積に基づいて、潜在的な最小実行可能領域候補のセットから選択される、実施形態1~3の計算システムである。
【0101】
実施形態5は、標的開放角を識別することが、選択された開放角が別の物体に隣接していないことを認識することを含む、実施形態1~4の計算システムである。
【0102】
実施形態6は、最小実行可能領域候補を最小実行可能領域として検証することが、少なくとも1つの他の最小実行可能領域候補に対する最小実行可能領域候補の重複検証を実施することを含む、実施形態1~5の計算システムである。
【0103】
実施形態7は、複数の候補エッジセグメントから複数の候補エッジを決定することが、セグメント長さ基準に従って複数の候補エッジセグメントを評価することを含む、実施形態1~6の計算システムである。
【0104】
実施形態8は、複数の候補エッジセグメントから複数の候補エッジを決定することが、直交性基準に従って複数の候補エッジセグメントを評価することを含む、実施形態1~7の計算システムである。
【0105】
実施形態9は、複数の候補エッジセグメントから複数の候補エッジを決定することが、位置基準に従って複数の候補エッジセグメントを評価することを含む、実施形態1~8の計算システムである。
【0106】
実施形態10は、最小実行可能領域候補を検証することが、包装検証操作に従って実施される、実施形態1~9の計算システムである。
【0107】
実施形態11は、非一時的コンピュータ可読媒体と、少なくとも1つの処理回路であって、視野を有するカメラと通信し、かつ命令を実行するように構成されている、少なくとも1つの処理回路と、を備える、ロボットシステムを制御する方法である。方法は、1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、画像情報が、カメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することと、を有する。最小実行可能領域は、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【0108】
実施形態12は、複数のエッジセグメントを生成することが、最小候補サイズおよび最大候補サイズによって画定される領域内に複数のエッジセグメントを生成することを含む、実施形態11の方法である。
【0109】
実施形態13は、最小実行可能領域候補が、最小面積に基づいて、潜在的な最小実行可能領域候補のセットから選択される、実施形態11または12の方法である。
【0110】
実施形態14は、標的開放角を識別することが、選択された開放角が別の物体に隣接していないことを認識することを含む、実施形態11~13の方法である。
【0111】
実施形態15は、最小実行可能領域候補を最小実行可能領域として検証することが、少なくとも1つの他の最小実行可能領域候補に対する最小実行可能領域候補の重複検証を実施することを含む、実施形態11~14の方法である。
【0112】
実施形態16は、複数の候補エッジセグメントから複数の候補エッジを決定することが、セグメント長さ基準に従って複数の候補エッジセグメントを評価することを含む、実施形態11~15の方法である。
【0113】
実施形態17は、複数の候補エッジセグメントから複数の候補エッジを決定することが、直交性基準に従って複数の候補エッジセグメントを評価することを含む、実施形態11~16の方法である。
【0114】
実施形態18は、複数の候補エッジセグメントから複数の候補エッジを決定することが、位置基準に従って複数の候補エッジセグメントを評価することを含む、実施形態11~17の方法である。
【0115】
実施形態19は、最小実行可能領域候補を検証することが、包装検証操作に従って実施される、実施形態11~18の方法である。
【0116】
実施形態20は、非一時的コンピュータ可読媒体であって、視野を有するカメラと通信する少なくとも1つの処理回路による実行のための命令を含み、少なくとも1つの処理回路は、1つ以上の物体が視野内にある、またはあったときに、命令を構成しており、命令は、1つまたは物体を表す画像情報を取得することであって、各物体が、複数のエッジを有し、画像情報が、カメラによって生成され、1つ以上の物体と関連付けられた少なくとも物体の外観を記述することと、画像情報に基づいて、1つ以上の物体の複数の角を検出することと、複数の角から標的開放角を識別することと、標的開放角に対して最小実行可能領域を画定することと、を有する。最小実行可能領域は、複数の候補エッジセグメントを生成することと、複数の候補エッジセグメントから複数の候補エッジを決定することと、複数の候補エッジのそれぞれの候補エッジの間に複数の交点を画定することと、複数の交点に基づいて、潜在的な最小実行可能領域候補のセットを画定することと、潜在的な最小実行可能領域候補のセットから、複数の角の標的開放角に対する最小実行可能領域候補を選択することと、最小実行可能領域候補を、標的開放角に対する最小実行可能領域として検証することと、によって画定される。
【外国語明細書】