(57)【要約】  本発明のいくつかの実施形態の一態様によれば、複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法が提供され、この方法は、複数の異なる物体のそれぞれに対して、それぞれの物体を保持するアームを複数の位置へ動かすようにロボットシステムに命令することであって、アームが複数の位置のそれぞれにあるとき、その位置におけるそれぞれの物体を描写する少なくとも１つの画像を取得し、それぞれの位置におけるアームの位置情報を受信し、少なくとも１つの画像を分析して、それぞれの位置における物体の少なくとも１つの視覚特徴を識別し、少なくとも１つの視覚特徴と位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、マッピングデータセットを出力することと、を含む。
2019518297.tif 000002
【特許請求の範囲】
【請求項１】
複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法であって、
複数の異なる物体のそれぞれに対して、
それぞれの前記物体を保持するアームを複数の位置へ動かすようにロボットシステムに命令することであって、
前記アームが前記複数の位置のそれぞれにあるとき、
前記位置における前記それぞれの物体を描写する少なくとも１つの画像を取得し、
それぞれの前記位置における前記アームの位置情報を受信し、
前記少なくとも１つの画像を分析して、前記それぞれの位置における前記物体の少なくとも１つの視覚特徴を識別し、
前記少なくとも１つの視覚特徴と前記位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、
前記マッピングデータセットを出力することと、
を含む方法。
【請求項２】
前記少なくとも１つの画像は、少なくとも１つのカメラによって撮像される、
請求項１に記載の方法。
【請求項３】
前記少なくとも１つの画像は、少なくとも１つのセンサによって撮像された深さマップである、
請求項１に記載の方法。
【請求項４】
前記少なくとも１つの視覚特徴は、２次元画像特徴（２Ｄ）および３次元（３Ｄ）画像特徴からなる群の要素である、
請求項１に記載の方法。
【請求項５】
前記命令することは、ステップサイズおよびステップ方向を含む少なくとも１つの動作コマンドを含む、
請求項１に記載の方法。
【請求項６】
前記ステップサイズおよび前記ステップ方向は、事前に定義される、
請求項５に記載の方法。
【請求項７】
前記ステップサイズおよび前記ステップ方向は、ランダムに選択される、
請求項５に記載の方法。
【請求項８】
前記少なくとも１つの視覚特徴は、輪郭、輪郭の中心、輪郭の数、エッジ、カラー面積、サイズ、外周、および面積からなる群の要素である、
請求項１に記載の方法。
【請求項９】
前記少なくとも１つの視覚特徴は、少なくとも、
前記物体の輪郭内のすべての画素の青色チャネル値の和を、前記物体の前記輪郭内のすべての画素の緑色チャネル値および赤色チャネル値の和で割った値、
前記物体の前記輪郭内のすべての画素の前記緑色チャネル値の和を、前記物体の前記輪郭内のすべての画素の前記青色チャネル値および前記赤色チャネル値の和で割った値、
前記物体の前記輪郭内のすべての画素の前記赤色チャネル値の和を、前記物体の前記輪郭内のすべての画素の前記青色チャネル値および前記緑色チャネル値の和で割った値、
前記物体の外周、ならびに
前記物体の隅部の数、
という特徴を含む複数の特徴である、
請求項１に記載の方法。
【請求項１０】
前記青色チャネル値は、前記青色チャネル値、前記緑色チャネル値、および前記赤色チャネル値の加重計算に従って計算された修正青色チャネル値であり、
前記緑色チャネル値は、前記青色チャネル値、前記緑色チャネル値、および前記赤色チャネル値の加重計算に従って計算された修正緑色チャネル値であり、
前記赤色チャネル値は、前記青色チャネル値、前記緑色チャネル値、および前記赤色チャネル値の加重計算に従って計算された修正赤色チャネル値である、
請求項９に記載の方法。
【請求項１１】
前記複数の特徴は、
前記物体の前記輪郭内のすべての画素の修正青色チャネル値の和を、前記物体の前記輪郭内のすべての画素の修正緑色チャネル値および修正赤色チャネル値の和で割った値が、第１の事前定義された閾値を、前記物体の前記輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示、
前記物体の前記輪郭内のすべての画素の修正赤色チャネル値の和を、前記物体の前記輪郭内のすべての画素の修正緑色チャネル値および修正青色チャネル値の和で割った値が、第２の事前定義された閾値を、前記物体の前記輪郭内の前記画素の総数で割った値よりも大きいまたは小さい場合の表示、ならびに
前記物体の前記輪郭内のすべての画素の修正緑色チャネル値の和を、前記物体の前記輪郭内のすべての画素の修正赤色チャネル値および修正青色チャネル値の和で割った値が、第３の事前定義された閾値を、前記物体の前記輪郭内の前記画素の総数で割った値よりも大きいまたは小さい場合の表示、
という特徴をさらに含む、
請求項１０に記載の方法。
【請求項１２】
前記物体が球形または長円形の形状を有する場合、前記複数の特徴は、前記球形または長円形の形状の長軸の寸法を前記球形または長円形の形状の短軸の寸法で割った除算によって計算される因子をさらに含む、
請求項９に記載の方法。
【請求項１３】
前記記憶することは、前記少なくとも１つの視覚特徴の定量化値を前記マッピングデータセット内に記憶することを含む、
請求項１に記載の方法。
【請求項１４】
前記分析することは、前記物体および前記ロボットシステムの把持部分のうちの少なくとも１つに取り付けられた少なくとも１つの識別可能な標識を前記少なくとも１つの画像内で識別することを含む、
請求項１に記載の方法。
【請求項１５】
前記ロボットシステムは、前記物体を動かすコンベアベルトを有するコンベアである、
請求項１に記載の方法。
【請求項１６】
前記位置情報は、エンコーダによって抽出される、
請求項１に記載の方法。
【請求項１７】
前記記憶することは、ユーザによって提供される、前記物体の少なくとも１つの特徴を記憶することを含む、
請求項１に記載の方法。
【請求項１８】
前記少なくとも１つの特徴は、良好な物体または不良な物体として特徴付けられている前記物体の表示である、
請求項１７に記載の方法。
【請求項１９】
複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法であって、
複数の異なる物体のそれぞれに対して、
複数の位置へ動くように少なくとも１つのセンサを具備する機械的デバイスに命令することであって、
前記機械的デバイスが前記複数の位置のそれぞれにあるとき、
前記少なくとも１つのセンサによって撮像された、前記位置の観点から前記それぞれの物体を描写する少なくとも１つの画像を取得し、
それぞれの前記位置における前記機械的デバイスの位置情報を受信し、
前記少なくとも１つの画像を分析して、前記それぞれの位置の前記観点から前記物体の少なくとも１つの視覚特徴を識別し、
前記少なくとも１つの視覚特徴と前記位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、
前記マッピングデータセットを出力することと、
を含む方法。
【請求項２０】
前記命令することは、ステップサイズおよびステップ方向を含む少なくとも１つの動作コマンドを含む、
請求項１９に記載の方法。
【請求項２１】
前記ステップサイズおよび前記ステップ方向は、前記訓練セッションに対して事前に定義される、
請求項２０に記載の方法。
【請求項２２】
前記ステップサイズおよび前記ステップ方向は、ランダムに選択される、
請求項２０に記載の方法。
【請求項２３】
前記少なくとも１つのセンサは、カメラである、
請求項１９に記載の方法。
【請求項２４】
前記少なくとも１つの画像は、深さマップである、
請求項１９に記載の方法。
【請求項２５】
前記少なくとも１つの視覚特徴は、２次元画像特徴（２Ｄ）および３次元（３Ｄ）画像特徴からなる群の要素である、
請求項１９に記載の方法。
【請求項２６】
前記機械的デバイスは、ロボット機械である、
請求項１９に記載の方法。
【請求項２７】
前記少なくとも１つの視覚特徴は、輪郭、輪郭の中心、輪郭の数、エッジ、カラー面積、サイズ、外周、および面積からなる群の要素である、
請求項１９に記載の方法。
【請求項２８】
前記記憶することは、前記少なくとも１つの視覚特徴の定量化値を前記マッピングデータセット内に記憶することを含む、
請求項１９に記載の方法。
【請求項２９】
前記分析することは、前記物体に取り付けられた少なくとも１つの識別可能な標識を前記少なくとも１つの画像内で識別することを含む、
請求項１９に記載の方法。
【請求項３０】
複数の物体のそれぞれの視覚特徴をマッピングするデータセットを使用する方法であって、
少なくとも１つのプロセッサを使用して、コード命令を実行することを含み、前記コード命令が、
物体を描写する少なくとも１つの画像を取得することと、
前記少なくとも１つの画像を分析して、前記物体の少なくとも１つの画像視覚特徴を抽出することと、
複数の以前に記憶されたマッピングデータセット内で検索して、前記複数の以前に記憶されたマッピングデータセットのうちの１つに含まれかつ前記少なくとも１つの画像視覚特徴に関連付けられたデータレコードを識別することであって、前記複数の以前に記憶されたマッピングデータセットがそれぞれ、複数の物体のうちの別の１つに関連付けられている、検索して識別することと、
前記識別されたデータレコードから、前記少なくとも１つの視覚特徴に関連付けられた物体識別属性および物体位置情報を抽出することと、
前記物体位置情報および前記物体識別属性を出力することと、
を行うためのものである、
方法。
【請求項３１】
コード命令の前記実行は、前記物体が複数の所定の位置のうちの別の１つに位置決めされたときに繰り返される、
請求項３０に記載の方法。
【請求項３２】
前記少なくとも１つの画像は、カメラによって撮像される、
請求項３０に記載の方法。
【請求項３３】
前記物体位置情報は、少なくとも１つの識別可能な標識の位置情報を含む、
請求項３２に記載の方法。
【請求項３４】
前記少なくとも１つのプロセッサを使用して、前記少なくとも１つの識別可能な標識の前記位置情報に従って前記物体位置情報を調整するコード命令を実行すること、をさらに含む、
請求項３３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、そのいくつかの実施形態において、物体の視覚特徴をマッピングするデータセットを生成および使用する方法ならびにシステムに関し、排他的ではないがより詳細には、視覚システムによるロボット支援型物体学習のための方法およびシステムに関する。
【背景技術】
【０００２】
様々な産業適用分野でロボット機械が広く導入されていることが、当技術分野ではよく知られている。それらの適用分野の多くは、ロボットチームとして共に働くロボット機械を利用している。ロボット機械を導入するには、ロボット機械によって実行されるべきタスクを割り当てることが必要である。ロボット機械に対するタスクを定義するために、様々な周知の方法が存在する。典型的には、これらの方法では、少なくともコンピュータプログラミング技術者およびプロセス技術者が協力して取り組むことが必要である。そのようなチームは、基本的な機械動作命令を使用してタスクを設定し、次いで新しいロボット機械タスクが実際の動作に十分なほど改良されるまで、これらの運動を段階的なプロセスで微調整する必要がある。
【０００３】
ロボット機械は、物体に関する関連タスクを実行するために、物体を識別する能力を有していなければならない。動作シーンにおいて物体を識別するために、様々なタイプのセンサと画像分析ソフトウェアを実行する処理ユニットとを組み合わせた視覚システムが広く使用されている。これらのセンサおよび専用のソフトウェアは、シーン内のセンサおよび／または他の物体もしくは機器に対する物体の物理的な位置を判定するように設計および設定される。
【０００４】
そのような適用分野の例には、到達範囲にあるがその位置が固定されていないまたは事前に知られていない物体に対するタスクをロボットが実行するのを支援するために使用される視覚システムが挙げられる。
【０００５】
実行すべきタスクをロボット機械に教示する当業界で知られている方法のうちの１つの例は、実演による学習に基づいている。そのような方法は、実演者が物体の操作を実行しているところを示す一連の画像を収集するステップを含む。画像の分析が実行され、物体を操作している実演者の身体部分の識別が行われる。この分析に基づいて、実演されたタスクを実行するようにロボット機械運動が定義され、そのタスクを実行するようにロボット機械に命令する関連する動作コマンドが生成される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在、一般に使用されている画像分析ツールでは、シーン内の検索を実行するとき、特定の物体ごとにカスタマイズが必要とされるため、特殊で著しく労力を消費する処理が必要とされる。所与の物体の位置をロボットの位置に対する座標に変換するために、センサおよびロボットを較正するには、さらなる著しい演算の労力が必要とされる。別の難題は、カメラによって撮像された画像内で検出される物体の２次元（２Ｄ）位置を、後にロボットに対する相対位置に変換することができる３次元（３Ｄ）位置に変換することが、現在のシステムでは難しいことである。深さマップセンサを使用することで、後の困難を低減させるのに役立つが、屋外光の作用および画像の分解能によって引き起こされる他の深刻な制限は、そのようなシステムにとって依然として難題である。
【０００７】
空間内で物体を識別および特定するタスクに付随する難題および問題は、スマートフォン、ならびにＰＣ、タブレット、および他のデバイス向けの移動の適用分野のような多くの他の適用分野にも影響を及ぼす。
【課題を解決するための手段】
【０００８】
本発明のいくつかの実施形態の一態様によれば、複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法が提供され、この方法は、複数の異なる物体のそれぞれに対して、それぞれの物体を保持するアームを複数の位置へ動かすようにロボットシステムに命令することであって、アームが複数の位置のそれぞれにあるとき、その位置におけるそれぞれの物体を描写する少なくとも１つの画像を取得し、それぞれの位置におけるアームの位置情報を受信し、少なくとも１つの画像を分析して、それぞれの位置における物体の少なくとも１つの視覚特徴を識別し、少なくとも１つの視覚特徴と位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、マッピングデータセットを出力することと、を含む。
【０００９】
任意選択で、少なくとも１つの画像は、少なくとも１つのカメラによって撮像される。
【００１０】
任意選択で、少なくとも１つの画像は、少なくとも１つのセンサによって撮像された深さマップである。
【００１１】
任意選択で、少なくとも１つの視覚特徴は、２次元画像特徴（２Ｄ）および３次元（３Ｄ）画像特徴からなる群の要素である。
【００１２】
任意選択で、命令することは、ステップサイズおよびステップ方向を含む少なくとも１つの動作コマンドを含む。
【００１３】
さらに任意選択で、ステップサイズおよびステップ方向は、事前に定義される。
【００１４】
さらに任意選択で、ステップサイズおよびステップ方向は、ランダムに選択される。
【００１５】
任意選択で、少なくとも１つの視覚特徴は、輪郭、輪郭の中心、輪郭の数、エッジ、カラー面積、サイズ、外周、および面積からなる群の要素である。
【００１６】
任意選択で、少なくとも１つの視覚特徴は、少なくとも、物体の輪郭内のすべての画素の青色チャネル値の和を、物体の輪郭内のすべての画素の緑色チャネル値および赤色チャネル値の和で割った値、物体の輪郭内のすべての画素の緑色チャネル値の和を、物体の輪郭内のすべての画素の青色チャネル値および赤色チャネル値の和で割った値、物体の輪郭内のすべての画素の赤色チャネル値の和を、物体の輪郭内のすべての画素の青色チャネル値および緑色チャネル値の和で割った値、物体の外周、ならびに物体の隅部の数、という特徴を含む複数の特徴である。
【００１７】
さらに任意選択で、青色チャネル値は、青色チャネル値、緑色チャネル値、および赤色チャネル値の加重計算に従って計算された修正青色チャネル値であり、緑色チャネル値は、青色チャネル値、緑色チャネル値、および赤色チャネル値の加重計算に従って計算された修正緑色チャネル値であり、赤色チャネル値は、青色チャネル値、緑色チャネル値、および赤色チャネル値の加重計算に従って計算された修正赤色チャネル値である。
【００１８】
またさらに任意選択で、複数の特徴は、物体の輪郭内のすべての画素の修正青色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正赤色チャネル値の和で割った値が、第１の事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示、物体の輪郭内のすべての画素の修正赤色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正青色チャネル値の和で割った値が、第２の事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示、ならびに物体の輪郭内のすべての画素の修正緑色チャネル値の和を、物体の輪郭内のすべての画素の修正赤色チャネル値および修正青色チャネル値の和で割った値が、第３の事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示、という特徴をさらに含む。
【００１９】
さらに任意選択で、物体が球形または長円形の形状を有する場合、複数の特徴は、球形または長円形の形状の長軸の寸法を球形または長円形の形状の短軸の寸法で割った除算によって計算される因子をさらに含む。
【００２０】
任意選択で、記憶することは、少なくとも１つの視覚特徴の定量化値をマッピングデータセット内に記憶することを含む。
【００２１】
任意選択で、分析することは、物体およびロボットシステムの把持部分のうちの少なくとも１つに取り付けられた少なくとも１つの識別可能な標識を少なくとも１つの画像内で識別することを含む。
【００２２】
任意選択で、ロボットシステムは、物体を動かすコンベアベルトを有するコンベアである。
【００２３】
任意選択で、位置情報は、エンコーダによって抽出される。
【００２４】
任意選択で、記憶することは、ユーザによって提供される、物体の少なくとも１つの特徴を記憶することを含む。
【００２５】
さらに任意選択で、少なくとも１つの特徴は、良好な物体または不良な物体として特徴付けられている物体の表示である。
【００２６】
本発明のいくつかの実施形態の一態様によれば、複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法が提供され、この方法は、複数の異なる物体のそれぞれに対して、複数の位置へ動くように少なくとも１つのセンサを具備する機械的デバイスに命令することであって、機械的デバイスが複数の位置のそれぞれにあるとき、少なくとも１つのセンサによって撮像された、その位置の観点からそれぞれの物体を描写する少なくとも１つの画像を取得し、それぞれの位置における機械的デバイスの位置情報を受信し、少なくとも１つの画像を分析して、それぞれの位置の観点から物体の少なくとも１つの視覚特徴を識別し、少なくとも１つの視覚特徴と位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、マッピングデータセットを出力することと、を含む。
【００２７】
任意選択で、命令することは、ステップサイズおよびステップ方向を含む少なくとも１つの動作コマンドを含む。
【００２８】
さらに任意選択で、ステップサイズおよびステップ方向は、訓練セッションに対して事前に定義される。
【００２９】
さらに任意選択で、ステップサイズおよびステップ方向は、ランダムに選択される。
【００３０】
任意選択で、少なくとも１つのセンサは、カメラである。
【００３１】
任意選択で、少なくとも１つの画像は、深さマップである。
【００３２】
任意選択で、少なくとも１つの視覚特徴は、２次元画像特徴（２Ｄ）および３次元（３Ｄ）画像特徴からなる群の要素である。
【００３３】
任意選択で、機械的デバイスは、ロボット機械である。
【００３４】
任意選択で、少なくとも１つの視覚特徴は、輪郭、輪郭の中心、輪郭の数、エッジ、カラー面積、サイズ、外周、および面積からなる群の要素である。
【００３５】
任意選択で、記憶することは、少なくとも１つの視覚特徴の定量化値をマッピングデータセット内に記憶することを含む。
【００３６】
任意選択で、分析することは、物体に取り付けられた少なくとも１つの識別可能な標識を少なくとも１つの画像内で識別することを含む。
【００３７】
本発明のいくつかの実施形態の一態様によれば、複数の物体のそれぞれの視覚特徴をマッピングするデータセットを使用する方法が提供され、この方法は、少なくとも１つのプロセッサを使用して、コード命令を実行することを含み、コード命令は、物体を描写する少なくとも１つの画像を取得することと、少なくとも１つの画像を分析して、物体の少なくとも１つの画像視覚特徴を抽出することと、複数の以前に記憶されたマッピングデータセット内で検索して、複数の以前に記憶されたマッピングデータセットのうちの１つに含まれかつ少なくとも１つの画像視覚特徴に関連付けられたデータレコードを識別することであって、複数の以前に記憶されたマッピングデータセットがそれぞれ、複数の物体のうちの別の１つに関連付けられている、検索して識別することと、識別されたデータレコードから、少なくとも１つの視覚特徴に関連付けられた物体識別属性および物体位置情報を抽出することと、物体位置情報および物体識別属性を出力することと、を行うためのものである。
【００３８】
任意選択で、コード命令の実行は、物体が複数の所定の位置のうちの別の１つに位置決めされたときに繰り返される。
【００３９】
任意選択で、少なくとも１つの画像は、カメラによって撮像される。
【００４０】
さらに任意選択で、物体位置情報は、少なくとも１つの識別可能な標識の位置情報を含む。
【００４１】
またさらに任意選択で、この方法は、少なくとも１つのプロセッサを使用して、前記少なくとも１つの識別可能な標識の前記位置情報に従って前記物体位置情報を調整するコード命令を実行すること、をさらに含む。
【００４２】
別途定義しない限り、本明細書で使用するすべての技術的および／または科学的な用語は、本発明が関係する技術分野の当業者には一般に理解される意味と同じ意味を有する。本発明の実施形態の実行または試験において、本明細書に記載するものに類似または同等の方法および材料を使用することができるが、例示的な方法および／または材料について以下に記載する。矛盾する場合、定義を含めて、本特許明細書が優先する。加えて、材料、方法、および例は例示のみを目的とし、必ずしも限定することを意図するものではない。
【００４３】
本発明の実施形態の方法および／またはシステムの実装形態は、選択されたタスクを手動で、自動で、またはそれらの組合せで実行または完了することを伴う可能性がある。さらに、本発明の方法および／またはシステムの実施形態の実際の計器および機器に従って、いくつかの選択されたタスクは、オペレーティングシステムを使用して、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの組合せによって実施することもできる。
【００４４】
たとえば、本発明の実施形態によって選択されたタスクを実行するハードウェアは、チップまたは回路として実施することができる。ソフトウェアの場合、本発明の実施形態によって選択されたタスクは、任意の適したオペレーティングシステムを使用してコンピュータによって実行される複数のソフトウェア命令として実施することができる。本発明の例示的な実施形態では、本明細書に記載する方法および／またはシステムの例示的な実施形態に係る１つまたは複数のタスクは、複数の命令を実行する演算プラットホームなどのデータプロセッサによって実行される。
【００４５】
任意選択で、データプロセッサは、命令および／もしくはデータを記憶する揮発性メモリ、ならびに／または命令および／もしくはデータを記憶する不揮発性記憶装置、たとえば磁気ハードディスクおよび／もしくは可換型媒体を含む。
【００４６】
任意選択で、ネットワーク接続も同様に提供される。任意選択で、ディスプレイおよび／またはキーボードもしくはマウスなどのユーザ入力デバイスも同様に提供される。
【００４７】
本発明のいくつかの実施形態について、例示のみを目的とし、添付の図面を参照して本明細書に記載する。次に図面を詳細に具体的に参照するとき、図示する細部は例であり、本発明の実施形態の例示的な議論を目的とすることが強調される。この目的で、図面とともに説明することで、本発明の実施形態をどのように実行することができるかが当業者には明らかになる。
【図面の簡単な説明】
【００４８】
【図１】本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。
【図２】本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する別の例示的なシナリオの概略図である。
【図３】本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する例示的なプロセスの流れ図である。
【図４】本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを使用する例示的なプロセスの流れ図である。
【図５】本発明のいくつかの実施形態に係る人間の支援によって物体に対してシステムを訓練する例示的なシナリオの概略図である。
【図６】本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを使用する例示的なシナリオの概略図である。
【図７】本発明のいくつかの実施形態に係る品質制御プロセスで物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。
【図８】本発明のいくつかの実施形態に係る共平面の円形ステッカによって支援される物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。
【発明を実施するための形態】
【００４９】
本発明は、そのいくつかの実施形態において、物体の視覚特徴をマッピングするデータセットを生成および使用する方法およびシステムに関し、排他的ではないがより詳細には、視覚システムによるロボット支援型物体学習のための方法およびシステムに関する。
【００５０】
本発明のいくつかの実施形態の一態様によれば、複数の物体のそれぞれの視覚特徴をマッピングするデータセットを生成する方法が提供され、この方法は、複数の異なる物体のそれぞれに対して、それぞれの物体を保持するアームを複数の位置へ動かすようにロボットシステムに命令することであって、アームが複数の位置のそれぞれにあるとき、その位置におけるそれぞれの物体を描写する少なくとも１つの画像を取得し、それぞれの位置におけるアームの位置情報を受信し、少なくとも１つの画像を分析して、それぞれの位置における物体の少なくとも１つの視覚特徴を識別し、少なくとも１つの視覚特徴と位置情報との間の関連付けをマッピングデータセット内に記憶することを、命令することと、マッピングデータセットを出力することと、を含む。
【００５１】
本明細書では、２Ｄという用語は、空間内の２次元の位置属性を意味する。
【００５２】
本明細書では、３Ｄという用語は、空間内の３次元の位置属性を意味する。
【００５３】
物体を操作する特有のタスクを実行するようにロボット機械を適合させる一般的な技法および方法は、画像センサと、画像分析ツールを含む専用のソフトウェアを具備するコンピュータプロセッサとを使用することを伴う。そのようなツールでは、シーン内の検索を実行するとき、特定の物体ごとにカスタマイズが必要とされるため、特殊で労力を消費する処理が必要とされる。所与の物体の位置をロボットの位置に対する座標に変換するために、センサおよびロボットを較正するには、さらなる著しい演算の労力が必要とされる。別の技術的な問題は、カメラによって撮像された画像内で検出される物体の２Ｄ位置を、後にロボットに対する相対位置に変換することができる３Ｄ位置に変換することが、現在のシステムでは難しいことである。深さマップセンサを使用することで、後の困難を低減させるのに役立つが、屋外光の作用および画像の分解能によって引き起こされる他の深刻な制限は、そのようなシステムにとって依然として難題である。
【００５４】
本明細書では、「機械的デバイス」という用語および「ロボット」または「ロボット機械」という用語は、位置データを生成する能力を有する少なくとも１動作自由度のデバイスを意味する。
【００５５】
本明細書では、「システムに訓練されている物体」という用語は、物体およびその位置を識別することが可能になるようにシステムが学習プロセスを経た物体を意味する。
【００５６】
本明細書では、「訓練セット」および「データセット」という用語は、システムに訓練されている物体に対して生成された１組のレコードを意味する。これら２つの用語は、本明細書で区別なく使用される。
【００５７】
本発明は、そのいくつかの実施形態において、技術的に適格な個人の関与を必要とすることなく、システムによって訓練および学習される任意のタイプの物体に適合することができる物体を識別および特定する。
【００５８】
本発明のいくつかの実施形態によれば、視野内で物体を識別および特定するように視覚システムを訓練する方法が提供される。この方法は、３つの主な段階、すなわち（１）異なる物体の視覚特徴をマッピングする訓練セットが生成される訓練段階、（２）訓練セットが処理され、識別および特定データが生成される処理段階、ならびに（３）生成されたデータセットを使用して物体を識別および特定する識別および特定段階からなる。
【００５９】
データセットの生成は、視覚システムのセンサによって既知の物体の画像を異なる位置から撮像することに基づいている。次いで、視覚システムによって検出された２Ｄおよび３Ｄ視覚特徴と、物体に対する固定位置、センサに対する固定位置、または両方に対する固定位置を有するロボットなどの機械的デバイスによって報告された位置データとを組み合わせる。これらの特徴および関連付けられた位置は、特有の物体に対してデータセット内に記録される。
【００６０】
データセットの使用は、視覚システムのセンサによって未知の物体の画像を異なる位置から撮像することに基づいている。次いで、物体の視覚特徴を抽出し、これらの視覚特徴とデータセットの視覚特徴とを比較する。一致が見られたとき、データセットから物体識別および位置情報が抽出される。次いで、こうして抽出された情報は、識別された位置における識別された物体にそれぞれの機械的デバイスまたはロボット機械を適合させるために利用可能になる。
【００６１】
訓練セッション中、少なくとも１つのセンサからなるシステムは、１つまたは複数の標的物体が存在する所与のシーン内で、複数の画像を収集する。センサは、デジタルカメラ、アナログカメラ、深さマップセンサなどとすることができる。
【００６２】
標的物体には、たとえば、ビスケット、野菜、箱、ウェットティッシュ、製品、原料、半製品、包装箱、ケースなどが挙げられる。
【００６３】
１つの例示的なシナリオでは、センサは、ロボット機械などの機械的デバイスに物理的に取り付けられ、視覚処理ユニットに接続される。機械的デバイスはまた、コントローラ処理ユニットに接続される。これらの視覚処理ユニットおよびコントローラ処理ユニットは、ハードウェアおよび／またはソフトウェアを共用することができる。
【００６４】
訓練段階中、システムに訓練されている各物体に対して、視覚特徴をマッピングするデータセットが生成される。各物体に対して、反復的プロセスが行われる。各反復は、本明細書に記載するステップを含む。機械的デバイスの処理ユニットは、所与またはランダムの方向および所与またはランダムのステップサイズで１ステップ動くようにロボットに命令するソフトウェアモジュールを走らせる。この後、視覚処理ユニットは、１つまたは複数のセンサから１つまたは複数の画像を収集するソフトウェアモジュールを走らせる。これらの画像は、物体を描写する。これらの画像が分析され、主な視覚特徴が抽出される。物体の深さマップを収集および分析することもできる。
【００６５】
任意選択で、機械的デバイスは、コンベアである。
【００６６】
任意選択で、位置データは、エンコーダによって抽出される。エンコーダは、光学エンコーダ、アナログエンコーダ、デジタルエンコーダなどとすることができる。
【００６７】
たとえば、視覚処理ユニットの画像分析モジュールは、「ｏｐｅｎＣＶ」関数（主に実時間コンピュータビジョンを目的とするプログラミング関数のライブラリであるＯｐｅｎ  Ｓｏｕｒｃｅ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ）、たとえば「ｆｉｔＥｌｌｉｐｓｅ」、「ｆｉｎｄＣｏｎｔｏｕｒ」、および「ｅｘｔｒａｃｔＣｏｎｔｏｕｒｓ」を走らせることができる。これらのプログラミング関数は主に、画像内に存在するすべての形状をセグメント化および認識するように設計される。たとえば、「ｆｉｔＥｌｌｉｐｓｅ」は、画像内に見られる各輪郭と、長円形の輪郭に対する近似とを比較し、次いで形状が長円に十分に近いかどうかを判定する。たとえば、「ｆｉｎｄＣｏｎｔｏｕｒ」は、画像内の１つの物体を囲む１組の点を画定する。たとえば、ピラミッド、立方体、およびジャガイモを描写する画像の場合、ｆｉｎｄＣｏｎｔｏｕｒは、画像内の物体のそれぞれに対して１つずつ、３つの輪郭を識別する。各輪郭の点は、画像内の物体の境界を定める。たとえば、「ｅｘｔｒａｃｔＣｏｎｔｏｕｒｓ」は、各輪郭と様々な形状とを比較し、判定される形状は、輪郭の面積に最も近い面積を有する形状である。別の例として、シーン内で検出される輪郭の２Ｄ特徴を抽出することで、画素単位で計算される輪郭の数、輪郭のサイズ、外周、および面積などの特徴を識別する。画像分析モジュールはまた、深さマップおよび／または立体視システムから導出されたデータを加えることによって、これらの輪郭の３Ｄ特徴を抽出することができる。これにより、画素単位ではなく実世界の３Ｄ単位で特徴が加えられる。視覚処理ユニットは、検出された視覚特徴およびそれぞれの定量化値を含む物体のデータセットに対するレコードを生成する。
【００６８】
一例として、以下は、物体の画像から抽出することができる視覚特徴の一覧である。
【００６９】
・物体の輪郭内のすべての画素の青色チャネル値の和を、物体の輪郭内のすべての画素の緑色チャネル値および赤色チャネル値の和で割った値。
【００７０】
・物体の輪郭内のすべての画素の緑色チャネル値の和を、物体の輪郭内のすべての画素の青色チャネル値および赤色チャネル値の和で割った値。
【００７１】
・物体の輪郭内のすべての画素の赤色チャネル値の和を、物体の輪郭内のすべての画素の緑色チャネル値および青色チャネル値の和で割った値。
【００７２】
・物体の輪郭内のすべての画素の修正青色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正赤色チャネル値の和で割った値。
【００７３】
・物体の輪郭内のすべての画素の修正緑色チャネル値の和を、物体の輪郭内のすべての画素の修正青色チャネル値および修正赤色チャネル値の和で割った値。
【００７４】
・物体の輪郭内のすべての画素の修正赤色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正青色チャネル値の和で割った値。
【００７５】
・物体の輪郭内のすべての画素の修正青色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正赤色チャネル値の和で割った値が、事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示。
【００７６】
・物体の輪郭内のすべての画素の修正赤色チャネル値の和を、物体の輪郭内のすべての画素の修正緑色チャネル値および修正青色チャネル値の和で割った値が、事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示。
【００７７】
・物体の輪郭内のすべての画素の修正緑色チャネル値の和を、物体の輪郭内のすべての画素の修正赤色チャネル値および修正青色チャネル値の和で割った値が、事前定義された閾値を、物体の輪郭内の画素の総数で割った値よりも大きいまたは小さい場合の表示。
【００７８】
・物体に対する輪郭の点同士の間の直線距離として計算される物体の外周。任意選択で、外周は、関数ｃｖ：ｆｉｎｄｃｏｎｔｏｕｒｓによって計算される。任意選択で、カメラがステレオでありかつ／または深さを有するとき、測定値はｍｍで表される。任意選択で、測定値は画素で表される。
【００７９】
・球形または長円形の物体の場合、長円または球の長軸を短軸で割った値として計算される因子。
【００８０】
・物体の隅部の数。任意選択で、隅部の数は、関数ａｐｐｒｏｘＣｏｎｔｏｕｒによって報告される。
【００８１】
修正赤色、緑色、および青色チャネル（ＲＧＢ）値は、各画素に対して計算された赤色、緑色、および青色チャネル値の加重計算とすることができる。
【００８２】
たとえば、特徴「Ｙ」を各画素に対して計算することができる。
【００８３】
Ｙ＝０．３＊Ｒ＋０．６＊Ｇ＋０．１＊Ｂ／／（ＢＧＲ）−所与の画素に対する赤色チャネル値（Ｒ）、所与の画素の緑色チャネル値（Ｇ）、および所与の画素の青色チャネル値（Ｂ）に基づくＹの推定。
【００８４】
修正赤色チャネル＝Ｒ−Ｙ／／赤色チャネルＹベース因子の推定。
【００８５】
修正青色チャネル＝Ｂ−Ｙ／／青色チャネルＹベース因子の推定。
【００８６】
修正緑色チャネル＝Ｇ−Ｙ／／緑色チャネルＹベース因子の推定。
【００８７】
たとえば、修正色チャネル値の和を、修正された他の色値の和で割った値が、閾値よりも大きいまたは小さい場合を示す上記３つの特徴が、特徴「ａ」、特徴「ｂ」、および特徴「ｃ」と呼ばれると仮定する。特徴「ａ」、「ｂ」、および「ｃ」は、事前定義された閾値の範囲に対して生成することができる。たとえば、閾値＝１の場合、特徴＝ａ１、ｂ１、およびｃ１であり、閾値＝２の場合、特徴＝ａ２、ｂ２、およびｃ２である。
【００８８】
機械的デバイスの空間内の位置は、コントローラ処理ユニットによって位置情報として記録される。位置情報は、機械的デバイスの３Ｄ位置を特徴付ける。たとえば、ロボットの場合、コントローラ処理ユニットは、６つの変数、すなわちロボットのエンドポイントの３Ｄ絶対位置に対応するＸ、Ｙ、Ｚ、およびその軸Ｘ、Ｙ、Ｚに対するロボットのエンドポイントの回転に対応するＲｘ、Ｒｙ、Ｒｚを有するレコードを生成することができる。これら６つの値はレコードとして生成され、コントローラ処理ユニットによって記憶される。視覚処理ユニットによって生成されたレコードおよびコントローラ処理ユニットによって生成されたレコードは、タイムスタンプまたはフレームシーケンスなどの共通の値を共有することによって、データセット内で関連付けられる。この関連付けにより、後の段階でレコードを関係付けることが可能になる。
【００８９】
レコードは、視覚処理ユニットおよびコントローラ処理ユニットの両方によって、または処理ユニットのそれぞれによって独立して、アクセス可能である、データベース、フラットファイル、または他のデジタル形式で記憶することができる。
【００９０】
この段階で、反復が完了し、次の反復が開始する。コントローラ処理ユニットは、事前定義された空間方向またはランダムに選択された空間方向へ、事前定義されたサイズまたはランダムなサイズだけ１ステップ動くための機械的デバイスへのコマンドを生成する。視覚処理ユニットは、センサから画像および深さマップを取り出し、次いで２Ｄおよび３Ｄ特徴を抽出する。次に、これらの画像は、機械的デバイスが異なる位置に配置されたとき、異なる位置から撮像される。機械的デバイスから抽出された座標ならびに画像および／または深さマップから検出された視覚特徴は、関連付けている共通の値とともに記憶される。
【００９１】
反復的プロセスは、事前定義された反復の数、反復の乱数、または計算された閾値に到達するまで繰り返すことができる。この閾値は、プロセスを終了する前に走査しなければならない反復の数または空間内の面積として事前に設定することができる。「Ｍｏｎｔｅｃａｒｌｏ」技法を使用して、反復的プロセスを出る前に機械的デバイスが動かされる位置の数を減らすことができる。上記プロセスの反復中に生成されるレコードを、本明細書では訓練セットまたはデータセットと称する。通常、システムが識別および特定するように訓練される所与の各物体に対して、１つの訓練セットが存在することができる。
【００９２】
訓練セッションに対して使用されるシーンは、訓練されている物体の色とは異なる共通の背景色が存在するように設定することができる。背景色は、画像処理技法によって、プロセス中に撮像された各画像から取り去ることができる。たとえば、白色の背景または表面の前に、白色以外の物体が配置される。これにより、各反復で抽出された視覚特徴を識別する分析プロセスを支援および改善することができる。
【００９３】
任意選択で、物体の表面に、識別可能な標識が取り付けられる。そのような標識は、正方形の色付きステッカ、円形の色付きステッカ、バーコード、表面上に描かれたチェス盤、チェス盤ステッカなどとすることができる。識別可能な標識を取り付けることで、視覚特徴の識別を改善および支援する。
【００９４】
任意選択で、訓練シーン内に配置されたシーンの物体に、識別可能な標識が取り付けられる。そのようなシーンの物体には、たとえば、訓練される物体を配置することができるコンベアが挙げられる。たとえば、３つの丸いステッカが、コンベアの表面に取り付けられる。丸いステッカは、一種の直角三角形を形成する。ステッカによって形成される三角形の１辺が三角形の他の辺より大きくなるようにステッカを配置することによって、訓練段階で物体の３Ｄポーズを検出することができ、次いで識別および特定段階でこの３Ｄポーズを差し引くことができる。
【００９５】
本発明の一実施形態の別の態様では、上述したプロセスは、システムに訓練されている物体が、上述したように、シーン内の固定位置に配置されるのではなく、移動させられている機械的デバイスに取り付けられるシーン設定において実行される。１つまたは複数のセンサが、機械的デバイスの到達範囲の一部またはすべてが１つまたは複数のセンサの視野に入るように配置される。
【００９６】
本発明の一実施形態の別の態様では、上述したプロセスは、システムに訓練されている物体が、動いているコンベア上に配置されまたはロボットによって保持されるのではなく、静止した表面上に配置されるシーン設定で実行される。１つまたは複数のセンサは、物体を有する表面が１つまたは複数のセンサの視野に入るように位置する。
【００９７】
処理段階で、ソフトウェアモジュールは、以前の訓練セットのレコードを走査し、現在の訓練セットに関連付けられた物体に一意の画像視覚特徴を識別する。このモジュールは、以前の物体からの訓練セットを取り出し、任意の所与の特徴が当該訓練セットに対応する物体を一意に識別する確率を計算することができる。たとえば、以前の物体が、最小ｉＭｉｎと最大ｉＭａｘとの間の画素サイズの範囲に及ぶ関連付けられた輪郭特徴を有し、かつ現在の物体が、ｉＭａｘ＋ｉＤｅｌｔａを超過する輪郭を有する場合、ソフトウェアは、この特徴が単独で、現在の訓練セットに対応する物体を一意に識別するのに十分であると判定する。他方では、現在の訓練セットが以前の訓練セットのｉＭｉｎ−ｉＭａｘの範囲内にあり、かつそれらの以前の訓練セット内で、輪郭サイズがそれらの以前に訓練された物体を一意に識別するのに十分であると定義されている場合、ソフトウェアモジュールは、それらの以前の訓練セットの輪郭面積または輪郭外周などの他の画像特徴を起動し、その結果、これらの画像特徴は、類似の特徴を有する新しい物体がシステムに訓練されていることを次に一意に識別するのを支援することができる。
【００９８】
処理段階はまた、所与の物体を一意に識別することを可能にする階層的決定木を生成することができる。たとえば、回帰木を使用して、各訓練セット内の関連付けられた値を各物体へ供給することができる。次いで、その結果得られる木を決定木として使用して、新しいシーン内の以前に訓練された物体を分類する。決定木は、たとえば複数の決定ノードを有する動的決定木とすることができる。一例として、第１のノードは、「輪郭サイズがｎｎｎｎより大きいか」という問合せに基づく決定とすることができる。応答がｙｅｓであるとき、決定フローは、たとえば第２のノードへ動くことができ、第２のノードでは、問合せは「ドミナントカラーが青色であるか？」であり、たとえば応答がｙｅｓであるとき、次のノードは、「物体の輪郭の面積は何であるか？」とすることができる。この決定木の結果は、「青色のドミナントカラーを有するそのようなサイズの輪郭をデータベースから調べて３Ｄ特性を取り出せ」などの命令とすることができる。
【００９９】
異なる訓練セットからのレコードが、輪郭の中心特徴によって索引付けられる。異なる物体に対応する訓練セットから、同じ輪郭の中心位置（ｘｙの２Ｄ画素座標として表される）を有するレコードが存在することがある。処理段階中、ソフトウェアモジュールは、すべての以前の訓練セットを走査し、特徴の「輪郭中心」に対して同じ２Ｄｘｙ画素座標値を共有するレコードを抽出する。この時点で、それぞれの一意のｘｙ画素値に対して１組のレコードが存在し、各組は、それらの特徴「輪郭中心」に対して同じｘｙ中心画素値を共有する以前の訓練セットからのレコードから構成される。ｘｙ中心位置に対して各レコードに関連付けられた追加の視覚特徴（すなわち、画素単位の輪郭サイズ、画素単位の輪郭面積、画素単位の輪郭外周など）を使用して、ｘｙ中心位置を共有する以前の訓練セットの特徴を分析する回帰木を供給することもできる。回帰木は、この２Ｄｘｙ画素位置内の新しい将来シーン内で検出された輪郭の中心が以前に訓練された物体に属する各ノードに対する確率を割り当てる分類木を生成する。「輪郭中心」の特徴に対してレコード内に見られるそれぞれの登録されたｘｙ画素位置に上述した手法を使用して、類似の分類木を生成することもできる。
【０１００】
任意選択で、上述した同じ目標を実現する上記の段階に対して、他の分類モデルが使用される。そのような他の分類モデルは、ニューラルネットワークおよび深層学習モデルなどとすることができる。
【０１０１】
次いで、上述した動的に生成される回帰木は記憶され、新しいシーン上で検出された物体の識別を支援するために後の段階で使用される。
【０１０２】
上述した「輪郭中心」という特徴は、一例として使用されている。任意の他の２Ｄもしくは３Ｄ特徴、またはそれらの組合せを使用して、空間内で物体およびその点を一意に識別することができる。
【０１０３】
任意選択で、エンドユーザは、訓練されている物体の既知の特徴に基づいて、訓練セットに他の視覚特徴を加える。たとえば、立方体形の物体がシステムに訓練されており、立方体の辺のサイズが３ｃｍ〜３．３ｃｍで変動することがユーザに知られているとき、この情報をシステム内に登録することができ、処理段階で、検出された２Ｄ特徴とエンドユーザによって登録された既知の測定値とを組み合わせることによって、３Ｄ寸法および各エッジの位置を計算することが可能になる。
【０１０４】
任意選択で、エンドユーザは、訓練セットに特徴情報を加える。そのような特徴情報は、「良好」な物体または「不良」な物体のような分類名とすることができる。
【０１０５】
そのような手動で加えられる「良好」および「不良」という特徴情報は、記録されているデータセットに基づいて「良好」または「不良」と検査される新しい物体を分類するプロセスで使用することができる。これは、品質制御プロセスに役立つことができる。
【０１０６】
任意選択で、特徴は、物体の分類情報とすることができる。たとえば、物体は、「クッキー」として分類することができ、「クッキー１」または「クッキー２」などとしてさらに分類することができる。
【０１０７】
たとえば、商品、たとえばビスケット、または食品（すなわち、スナック）、たとえば野菜もしくは果物、たとえばジャガイモもしくはマンゴーを含むプラスチック袋の分類施設では、「仕様内」または「仕様外」として物体を分類するような特徴により、物体を仕様内または仕様外に自動的に識別することを可能にすることができ、次いでこの識別は、自動分類に使用される。一例としてジャガイモを使用すると、システムは、「ジャガイモ」という分類に入らないあらゆるものをマークする。たとえば、石または変な物体が画像内に見られたとき、システムは、その物体がジャガイモではないと識別し、標識を送信することができ、または生産もしくは分類ラインを停止することができる。ジャガイモの訓練セットに従って、ジャガイモに見えないあらゆる物体は、ジャガイモと見なすことはできず、「不良」であると分類することができる。後の動作として、ロボットは、その物体を取り除くことができる。任意選択で、この物体は、操作者の画面上でマークされる。任意選択で、分類または生産ラインが停止される。任意選択で、分類または生産ラインは、この物体が取り除かれるときなどまで停止される。
【０１０８】
最終段階は、２つの以前の段階で生成されたデータおよび支援情報を使用して、シーン内で物体を識別および特定するプロセスに対応する。
【０１０９】
一例として、視覚処理ユニットは、実時間またはオフラインでセンサから画像を取り出し、輪郭、適合する形状（すなわち、ｆｉｔＥｌｌｉｐｓｅ）などの画像視覚特徴を抽出する。１つのシナリオでは、ソフトウェアモジュールは、記憶されている訓練セットから、分析されている画像内で検出された輪郭の中心に近いまたは等しい輪郭サイズおよび輪郭中心を提示するすべてのレコードを取り出す。
【０１１０】
これらの特徴を有するレコードが１つだけ見つかったとき、ソフトウェアは、画像内の物体が訓練セット内の物体に対応すると仮定し、または画像内で見つかった物体および訓練セットの追加の特徴を取り出して、画像内の物体が実際に訓練セットの物体であることを確認することができる。
【０１１１】
２つ以上のレコードが見つかった場合、複数のレコードの特徴の追加の検索を実行して、どのレコードが画像特徴と検査されている物体の現在の画像との間でより良好な一致を有するかを判定する。
【０１１２】
一致が見られたとき、機械的デバイスによって以前に記憶された位置情報がレコードから取り出され、センサに対する物体の相対Ｘ、Ｙ、Ｚ位置に関して推定が実行される。加えて、その物体の訓練セット中に作られた最初または最後のレコードに対して推定されたＸ、Ｙ、Ｚ位置を取り出すことができる。たとえば、訓練段階で、物体が最初はカメラの中心のちょうど前に配置されており、かつ訓練セット内で見つかった一致が、センサまたは物体が空間内でｉ、ｊ、ｋｃｍ移動した後に得られた画像に対応する場合、この相対位置も現在の画像に対する訓練セット内の一致するレコードから取り出すことができる。
【０１１３】
次いで、取り出された識別および位置データは、追加のソフトウェアモジュールに報告または供給され、この追加のソフトウェアモジュールは、その情報を使用して、機械的デバイスを制御することができる。そのような制御により、検出されている物体の方へ動くようにまたは検出されている物体を避けるように、機械的デバイスに指示することができる。任意選択で、物体の相対位置をエンドユーザに通知することができる。任意選択で、取り出された識別および位置データが他のアプリケーションに供給される。
【０１１４】
任意選択で、訓練されている物体の表面上に、少なくとも１つの円形ステッカが取り付けられまたは描かれる。物体は、ロボットのエンドポイントおよびデジタルカメラ、深さセンサ、またはそれらの組合せの前に配置される。
【０１１５】
取り出された物体位置情報は、円形ステッカなどの識別可能な標識の位置情報を含むことができる。取り出された位置データ内のステッカの位置を使用して、識別可能な標識の位置情報に従って、物体位置情報を調整することができる。たとえば、マーカのような３つの識別可能な標識が、コンベアまたはテーブルの平面の上に配置される。これらのマーカの３Ｄ位置を使用して、カメラによって撮像された３Ｄ画像の平面と、マーカがカメラの平面に位置合わせされる３Ｄ論理画像とを、「論理的」に位置合わせすることができる（すなわち、位置１００、２００、３００にある１つのマーカの点が、次にカメラ座標の０、０、０に設定されるように画像を回転させるなど）。位置情報のこの調整は、訓練段階における物体の絶対および相対位置の検出ならびに訓練データの使用を大いに支援する。
【０１１６】
別法として、物体は、固定位置に配置され、センサは、ロボットのエンドポイントに取り付けられる。別法として、物体は、表面上に配置され、センサの位置が固定される。円形ステッカは、画像セグメント化プロセスを支援するために、背景に対して高コントラスト色とすることができる。上述したように、ロボットのすべての所与の位置に対して、各デジタルカメラおよび深さセンサが、視覚処理ユニットへ画像を送信する。視覚処理ユニットは、各ステッカの中心の画素座標、ならびに円形ステッカに対応する２Ｄ長円の短軸および長軸の画素単位で測定される長さを抽出する。２Ｄ長円は、所与の円形ステッカがカメラの中心のちょうど前および平行な平面内に位置決めされておらず、その位置から回転または並進しているときに形成され、したがって円形ステッカの形状は、２Ｄ画像内の長円の形状に類似しているように見える。このプロセスを実行する１つの方法は、たとえば、「Ｏｐｅｎｃｖ」関数、「ｆｉｔＥｌｌｉｐｓｅ」関数を呼び出すこと、および／またはこれと「ｆｉｎｄＣｏｎｔｏｕｒｓ」関数とを組み合わせることである。これらの関数を走らせる前に、円形ステッカまたは標識の色だけをセグメント化することによって、２値画像を作ることができる。ロボットが訓練段階中に動くにつれて、各円形ステッカまたは標識は、ｘｙ中心座標、画素単位の長軸および短軸に対するそれらに関連付けられた異なる値を得る。各画像フレームに対して、ロボットは、そのエンドポイントのｘ、ｙ、ｚ座標および各軸に関するそのエンドポイントのＲｘ、Ｒｙ、Ｒｚ回転を視覚システムに報告する。これらの座標は、各フレームに対して円形ステッカの画像から抽出された値に関連付けられ、後に取り出せるようにデータベース内に記憶される。
【０１１７】
たとえば、以下のデータベース表のレコードは、１つの画像フレームの記憶されている結果である。
【０１１８】
【表１】
2019518297.tif 000003
【０１１９】
上記の例で、３つの丸いステッカ、すなわち円Ａ、円Ｂ、および円Ｃが使用される。各ステッカの中心の座標は、円Ａに対してｘ１ｙ１、円Ｂに対してｘ２ｙ２、円Ｃに対してｘ３ｙ３である。円Ａの長軸はｍ１であり（画素単位で測定）、円Ａの短軸はｎ１である（画素単位で測定）。円Ｂの長軸はｍ２であり（画素単位で測定）、円Ｂの短軸はｎ２である（画素単位で測定）。円Ｃの長軸はｍ３であり（画素単位で測定）、円Ｃの短軸はｎ３である（画素単位で測定）。「ｍ」および「ｎ」は、センサまたはカメラによって知覚される各ステッカの長円形状を特徴付ける軸である。Ｎ１、Ｎ２、およびＮ３は、ロボットの座標であり、Ｎ４、Ｎ５、およびＮ６は、ＸＹＺ位置軸と比較したロボットのエンドポイントの回転位置である。
【０１２０】
上記のような表は、異なる画像に対応する複数のレコードを含み、各レコードは、座標、３つのステッカの長軸および短軸の寸法を記憶しており、ロボットの対応するＮ１〜Ｎ６パラメータは、取得および記録された画像に関連付けられている。
【０１２１】
シーン内で物体を識別および特定する段階で、新しい画像フレームがデジタルカメラから受信され、円Ａ、Ｂ、およびＣに対応する球形または円形の形状がこの画像から抽出される。この時点で、訓練段階と同様の３Ｄフィードバックが存在する。
【０１２２】
この表において、現在のフレーム円Ａ、Ｂ、およびＣの特徴に最もよく似ているレコードを探して、検索が実行される。見つかった後、関連付けられたロボット座標（Ｘ、Ｙ、Ｚ、Ｒｘ、Ｒｙ、およびＲｚ）が、フレーム内の物体の３Ｄ特徴を与える。
【０１２３】
これらの３Ｄ特徴は、物体がカメラから類似の距離および回転にあった訓練段階中に保存されたロボット座標に対応する。これらの３Ｄ特徴は、直接使用することができ、または他の位置を推定するために使用することができる。たとえば、これらの３Ｄ特徴を使用して、物体がカメラに平行な平面内にカメラから既知の距離で配置されていた基準画像フレームに対する現在の物体の位置の相対移動を計算することができる。またこれらの３Ｄ特徴を使用して、シーン内の基準点またはロボットの座標系に対する回転および並進マトリクスを計算することもできる。これは、実時間フレーム収集段階または処理段階で行うことができる。また処理段階で、これらの計算の結果は、各画像フレームの特定の２Ｄ特徴に関連付けて、データベース内に記憶することもできる。
【０１２４】
上記のシナリオは、例示を目的とする一例である。使用することができる異なるタイプおよび数の形状を有する他のシナリオも選択肢であり、異なる機械的デバイスを使用することもできる。
【０１２５】
訓練段階は、同じ物体に対して複数回実行することができる。このスキーマでは、ロボットは、ちょうど訓練段階で画定された面積の周りを、物体が取り付けられたままで動くように命令される。ロボットが所与の位置に配置された後、識別および特定段階が走らされ、元の訓練セットに基づいて推定位置が取得される。次いで、この推定位置は、走らされている現在の訓練プロセスでロボットの実際の位置と比較され、現在のロボット位置と以前の訓練セットから検出された位置との間の移動が推定および記憶される。これらの値は、ａ）実際の位置と推定位置との差の分布、ならびにｂ）エンドユーザによって定義されまたはシステムによって自動的に計算および報告される許容可能な最大の３Ｄ移動において、特定および識別段階で２Ｄ特徴から取得された推定３Ｄ位置が実際の３Ｄ位置に対応する可能性を推定し、ｄ）すべての訓練セッション中で同じ２Ｄ特徴に対して取得された統計的分布に基づいて、２Ｄ特徴に関連付けられた３Ｄ位置を調整するために後に分析される。
【０１２６】
この方法を使用する適用分野の別の例は、ロボットがオーケストラの指揮者から、指揮者がオーケストラを指揮する間に学習するシーンである。訓練段階で、オーケストラの指揮者によって使用される指揮棒が、ロボットアームのエンドポイントに固定される。訓練段階が起動され、ロボットは立体空間内で指揮棒を動かし、その間、画像からの２Ｄ特徴およびロボットからの３Ｄ特徴が取り出され、関係的に記憶される。これは、上述したように複数回行うことができる。処理および分析段階後、センサは、オーケストラの指揮者によって扱われる指揮棒がセンサの視野に入るように配置される。次いで指揮者は、オーケストラを指揮し、オーケストラの指揮棒をセグメント化した画像からの２Ｄ特徴が、本明細書に記載する識別および特定段階に基づいて、３Ｄ特徴に変換される。次いで、３Ｄ特徴は、ロボットによって記憶および再生され、ロボットは、オーケストラの指揮者によって実行される動きに類似の動きを実行して、オーケストラの指揮中に検出される時間経過に類似の時間経過で、指揮棒の位置を同じ絶対または相対位置へ動かすことができる。相対位置は、センサによって撮像されたシーン内で１つまたは複数の基準点、たとえば演奏者のうちの何人かが座っている位置にあるマーカを有することによって取得することができる。
【０１２７】
本発明のいくつかの実施形態は、物体を保持しているロボットの座標と画像から抽出された２Ｄ特徴との組合せに従って、カメラによって撮像された画像から抽出された特徴のデータのみに基づいて物体の３Ｄアスペクトを予測する能力を提供する。本発明のいくつかの実施形態は、作業環境シナリオ内の異なる物体を自動的に識別し、物体の位置を識別するように、システムを訓練する方法を提供する。通常、一般的な技法では、１つのタイプの物体から別のタイプの物体へ切り換えるとき、ロボット機械の相当な調節、調整、および適合手順が必要とされ、それにはシステムを異なる物体に対して再較正、再調整、および適合しなければならないため、操作者、技術者、および／またはプログラマの関与が必要とされる。本発明の実施形態のいくつかの方法では、新しい物体がシステムに提示されたとき、システムは新しい物体および物体の位置を自動的に識別するように訓練されるため、そのような手順を経るための労力が低減される。物体を識別するようにシステムを訓練するプロセスに基づいて、演算の労力と適格なチームの労力との両方の労力の量が低減される。本発明の実施形態のいくつかは、上述したように訓練データを使用することによって、物体の３Ｄポーズ特徴の予測の性能および精度に対して顕著な改善を提供する。一般的な製造環境に対する別の改善は、訓練セッション中にロボットまたはコンベアのデータと物体の２Ｄ特徴とを組み合わせる能力である。このとき、物体を識別しかつその物体が仕様制限の範囲内にあるか否かを識別するシステムによって異なる物体が試験されるときでも、品質保証機能が自動的に適用されるため、この情報は、組立ておよび包装など、コンベアを使用することができる製造ラインの改善された動作のための基礎として後に使用される。これにより、物体が変更されるたびに品質保証機能を適合させる必要がなくなる。
【０１２８】
本発明の少なくとも１つの実施形態について詳細に説明する前に、本発明は、以下の説明で述べかつ／または図面および／もしくは例に示す構成要素および／または方法の構造および配置の詳細にその適用分野が必ずしも限定されるものではないことを理解されたい。本発明は、他の実施形態が可能であり、または様々な形で実行もしくは実施することが可能である。
【０１２９】
本発明は、システム、方法、および／またはコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実施させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【０１３０】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それだけに限定されるものではないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適した組合せとすることができる。
【０１３１】
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれの演算／処理デバイスへダウンロードすることができ、またはネットワーク、たとえばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および／もしくは無線ネットワークを介して、外部コンピュータもしくは外部記憶デバイスへダウンロードすることができる。
【０１３２】
コンピュータ可読プログラム命令は、全体としてユーザのコンピュータ上、部分的に独立型ソフトウェアパッケージとしてユーザのコンピュータ上、部分的にユーザのコンピュータ上、および部分的に遠隔のコンピュータ上、または全体的に遠隔コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワーク（ＬＡＮ）もしくはワイドエリアネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または外部コンピュータへ（たとえば、インターネットサービスプロバイダを使用してインターネットを介して）接続することができる。いくつかの実施形態では、たとえばプログラマブル論理回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはプログラマブル論理アレイ（ＰＬＡ）を含む電子回路が、本発明の態様を実行するように、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行することができる。
【０１３３】
本発明の態様について、本発明の実施形態に係る方法、装置（システム）、およびコンピュータプログラム製品の流れ図および／またはブロック図を参照して、本明細書に記載する。流れ図および／またはブロック図の各ブロック、ならびに流れ図および／またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解されよう。
【０１３４】
これらの図の流れ図およびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この目的で、流れ図またはブロック図の各ブロックは、指定の論理機能を実施する１つまたは複数の実行可能な命令を含む命令のモジュール、セグメント、または部分を表すことができる。いくつかの代替実装形態では、ブロックに記載の機能は、図に記載の順序以外で行うことができる。たとえば、連続して示されている２つのブロックを実際には実質上同時に実行することができ、または場合により、関連する機能に応じて、それらのブロックを逆の順序で実行することができる。また、ブロック図および／または流れ図の各ブロック、ならびにブロック図および／または流れ図のブロックの組合せは、指定の機能もしくは動作を実行しまたは特殊目的ハードウェアおよびコンピュータ命令の組合せを実施する特殊目的ハードウェアベースのシステムによって実施することができることに留意されたい。
【０１３５】
次に図１を参照すると、図１は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。
【０１３６】
図１に示すように、図示のシナリオ１００で、物体１０５を保持する機械的デバイス１０９が示されている。機械的デバイスは、空間次元において少なくとも１動作自由度を有するロボット、ロボット機械、コンベア、または任意の他の機械的デバイスとすることができる。物体１０５は、ビスケット、野菜、箱、ウェットティッシュ、製品、原料、半製品、包装箱、ケースなどとすることができる。ロボット機械１０９は、物体を保持するグリッパ１０７を具備することができる。グリッパ１０７は、異なる物体に適合される様々な形状、サイズ、および設計を有することができる。グリッパは、設計の複雑さ、動作要件、物体の形状および特徴、ならびにロボット機械に割り当てられたタスクの複雑さに応じて、異なる自由度数を有することができる。システムは、少なくとも１つの画像センサ１０１および１０２を含む。画像センサは、カメラ、深さマップセンサなどとすることができる。ロボットデバイスは、物体１０５を画像センサ１０１、１０２の前で空間内の１つの位置から空間内の別の位置へ動かすように設定される。このようにして、異なる距離、角度、および向きから物体の画像が撮像される。少なくとも１つのセンサ１０３、物体１０５、機械的デバイス１０９のエンドポイント、および／またはセンサ１０４の視野内にある任意の物体もしくは機器に、視覚標識を取り付けることができる。視覚標識は、センサによって撮られた画像を処理し、位置情報の抽出に関して改善された正確さを提供する能力を支援および改善することができる。視覚標識は、バーコード、一意の色ラベル、異なるサイズのカスタム印刷ステッカ、チェス盤ステッカなどとすることができる。
【０１３７】
視覚処理ユニット１１１および物体学習視覚システム１１３は、後述するように、画像センサ１０１および１０２によって撮像された画像を処理および分析する演算システムである。視覚処理ユニット１１１および物体学習視覚システム１１３は、それだけに限定されるものではないが、少なくとも１つのハードウェアプロセッサ、少なくとも１つの入出力インターフェース、少なくとも１つの通信インターフェース、メモリ媒体、およびユーザインターフェースを含むソフトウェア構成要素およびハードウェア要素から構成することができる。ロボット処理ユニット１１０は、ロボット機械の位置データを受信および処理し、その情報を物体学習視覚システム１１３と通信する演算システムである。ロボット処理ユニット１１０は、物体学習視覚システム１１３から命令を受信し、物体１０５を１つの位置から別の位置へ動かすようにロボット機械１０９を制御することができる。ロボット処理ユニット１１０は、少なくとも１つのプロセッサ、通信インターフェース、入出力インターフェース、およびメモリ媒体を含むソフトウェア構成要素およびハードウェア構成要素から構成することができる。物体データベース１１２は、以下で説明するように、物体のデータセットを記憶する記憶媒体である。物体データベース１１２は、物体学習視覚システムによって制御される。物体データベース１１２上に記憶されるデータセットは、記憶するようにまた物体学習視覚システムによって動的に取り出されるように最適化されたスキーマを有するデジタル形式、フラットファイル、または他のデジタルデータ記憶形式とすることができる。例示の目的で、仮想の３次元座標系を１１４として示す。ロボット処理ユニット１１０によって報告される位置情報は、座標系１１４内のｘ、ｙ、ｚ座標を使用するロボット機械のエンドポイントの３次元位置、ならびにｘ、ｙ、ｚ座標に対するエンドポイントの回転情報Ｒｘ、Ｒｙ、Ｒｚを含むことができる。回転情報は、グリッパ１０７の手首の動きに関する回転情報とすることができる。
【０１３８】
図２も参照すると、図２は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する別の例示的なシナリオの概略図である。
【０１３９】
次に図面を参照すると、図２は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する別の例示的なシナリオ２００を示す。図示のシナリオ２００に示すように、少なくとも１つの画像センサ２０４が、機械的デバイス２０５によって保持されている。画像センサは、カメラ、深さマップセンサなどとすることができる。機械的デバイス２０５は、空間において少なくとも１動作自由度を有するロボット、ロボット機械、または他の機械的デバイスとすることができる。訓練下の物体２０７は、固定位置に位置決めすることができ、または可動機構、たとえばコンベア２０９上に配置することができる。ロボット２０５は、物体２０７がカメラの視野内に維持された状態で、カメラ２０４を空間内の１つの位置から空間内の別の位置へ動かすように設定される。このようにして、異なる角度、距離、および向きから物体の画像を撮像することができる。コンベア２０９、物体２０７、および／またはセンサ２０８の視野内にある任意の物体もしくは機器に、視覚標識を取り付けることができる。視覚標識は、センサによって撮られた画像を処理し、位置情報の抽出に関して改善された正確さを提供する能力を支援および改善することができる。視覚標識は、バーコード、一意の色ラベル、異なるサイズのカスタム印刷ステッカ、チェス盤ステッカなどとすることができる。例示の目的で、仮想の３次元座標系を２１２として示す。視覚処理ユニット２０２は、後述するように、画像センサ２０４によって撮像された画像を処理および分析する演算システムである。視覚処理ユニット２０２は、それだけに限定されるものではないが、少なくとも１つのハードウェアプロセッサ、少なくとも１つの入出力インターフェース、少なくとも１つの通信インターフェース、メモリ媒体、およびユーザインターフェースを含むソフトウェア構成要素およびハードウェア要素から構成することができる。ロボット処理ユニット２０１は、画像センサ２０４を保持するロボット機械の位置データを受信および処理し、その情報を視覚処理ユニット２０２と通信する演算システムである。ロボット処理ユニット２０１は、視覚処理ユニット２０２から命令を受信し、画像センサ２０４を１つの位置から別の位置へ動かすようにロボット機械２０５を制御することができる。ロボット処理ユニット２０１は、少なくとも１つのプロセッサ、通信インターフェース、入出力インターフェース、および記憶媒体を含むソフトウェア構成要素およびハードウェア構成要素から構成することができる。物体データベース２０３は、以下で説明するように、物体のデータセットを記憶する記憶媒体である。物体データベース２０３は、視覚処理ユニット２０２によって制御することができる。物体データベース２０３上に記憶されるデータセットは、記憶するようにまた視覚処理ユニット２０２によって動的に取り出されるように最適化されたスキーマを有するデジタル形式、フラットファイル、または他のデジタルデータ記憶形式とすることができる。ロボット処理ユニット２０１によって報告される位置情報は、座標系２１２内のｘ、ｙ、ｚ座標を使用するロボット機械のエンドポイントの３次元位置、ならびにｘ、ｙ、ｚ座標に対するエンドポイントの回転情報Ｒｘ、Ｒｙ、Ｒｚを含むことができる。
【０１４０】
この訓練システムには、追加の機械的デバイスを組み込むことができる。たとえば、コンベア２０９が、２０１などの他の機械的デバイス処理ユニットおよび／または視覚処理ユニット２０２へその位置データを報告し、この情報はまた、この位置および時点に対して取り出されたデータの残りに関連付けて記憶される。コンベア２０９は、エンコーダを使用して位置情報を報告することができる。エンコーダは、デジタルエンコーダ、アナログエンコーダ、光学エンコーダなどとすることができる。
【０１４１】
図３も参照すると、図３は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを生成する例示的なプロセスの流れ図である。
【０１４２】
物体の視覚特徴をマッピングするデータセットを生成する方法は、反復的プロセスである。プロセス３００が、この方法の例示的な単一の反復を示す。本明細書では、複数反復プロセスを訓練プロセスと呼び、これはシステムに物体を訓練するために行われる。
【０１４３】
再び図１を参照する。シナリオ１００は、システムがプロセス３００を行う例示的な設定である。物体１０５が、機械的デバイス１０９によって保持される。任意選択で、機械的デバイスは、ロボットまたはロボット機械である。任意選択で、ロボット機械は、物体を保持するように適合されたグリッパ１０７を具備する。グリッパは、異なる形状の物体を保持するように適合され、異なる重量の物体を保持するように適合され、異なる硬さの物体を扱うように適合されるなど、異なる変種、たとえば異なる自由度、異なるサイズ、異なる機械要素、異なる保持能力とすることができる。ロボットは、ロボット処理ユニット１１０から受信した命令に従って、物体を空間内の１つの位置から空間内の別の位置へ動かすように適合される。任意選択で、ロボットは、物体を段階的に動かす。任意選択で、ステップサイズは、ランダムに選択される。任意選択で、ステップサイズは、事前定義されたステップサイズである。任意選択で、ステップ方向は、ランダムに画定される。任意選択で、ステップ方向は、事前に定義される。任意選択で、識別可能な標識１０８が、ロボットのエンドポイントに取り付けられる。任意選択で、識別可能な標識が、物体１０５に取り付けられる。
【０１４４】
プロセス３００に示すように、ステップ３０１で、物体１０５の画像が収集される。画像は、少なくとも１つの画像センサ１０２によって撮像される。任意選択で、画像は、追加の画像センサ１０１によって撮像される。任意選択で、画像センサは、カメラである。任意選択で、画像センサは、深さマップセンサである。画像は、ロボット支援型物体学習視覚システム１１３によって収集される。画像は、有線通信チャネルを介して、画像センサからロボット支援型物体学習システムへ伝達することができる。任意選択で、画像は、無線通信チャネルを介して伝達される。各撮像された画像のタイムスタンプをロボット支援型物体学習システムへ伝達し、それぞれの画像に関連付けることができる。ステップ３０２で、ロボット処理ユニット１１０は、ロボット機械の位置データを収集する。任意選択で、位置データは、ロボット機械上に取り付けられたエンコーダから受信される。エンコーダは、デジタルエンコーダ、アナログエンコーダ、光学エンコーダなどとすることができる。ロボット処理ユニットは、ロボット機械からロボットのエンドポイントの回転情報を受信する。この回転情報は、ロボットの位置情報に対するものとすることができる。位置情報は、空間１１４内の事前定義された点に対するデカルト座標からなることができる。位置情報に関連付けられた時間情報が、ロボット処理ユニット１１０によって収集される。ステップ３０４で、ロボット処理ユニットは、３次元座標ｘ、ｙ、ｚ、ならびに位置座標の周りのエンドポイントの３自由度の回転情報を表す３つの回転変数Ｒｘ、ＲｙおよびＲｚからなることができる３Ｄデータを、位置データから抽出する。任意選択で、エンドポイントは、グリッパである。ステップ３０３で、視覚処理ユニット１１１は、画像センサから収集した画像を分析する。分析は、画像センサによって撮像された物体１０５の１組の視覚画像特徴の抽出を含む。１組の特徴は、輪郭、輪郭の中心、輪郭のサイズ、エッジ、カラー面積などを含むことができる。任意選択で、視覚特徴は、２Ｄ特徴である。任意選択で、視覚特徴は、３Ｄ特徴である。ステップ３０５で、ロボット支援型物体学習視覚システムは、１群の抽出特徴を選択することができる。選択は、システムの事前構成ならびに／または現在のシーンに一意の特徴の以前に学習した物体および識別に基づいて実行することができる。任意選択で、ユーザが、選択のための基準を定義する。ステップ３０６で、ロボット支援型物体学習視覚システムは、ロボット処理ユニットによって収集された位置情報および回転情報を、視覚処理ユニットによって抽出された画像視覚特徴に関連付ける。関連付けは、画像とともに受信したタイムスタンプと、位置および回転データとともに受信したタイムスタンプとの間の一致に基づいて行うことができる。ステップ３０７で、位置データ、回転データ、および関連付けられた画像視覚特徴を含むデータレコードが、物体データベース１１２内に記憶される。任意選択で、各画像視覚特徴に対する定量化値が、それぞれのデータレコード内に記憶される。任意選択で、追加の情報がユーザによって手動で追加される。任意選択で、追加の情報は、「良好」な物体の名称である。任意選択で、追加の情報は、「不良」な物体の名称である。ステップ３０８で、ロボット支援型物体学習視覚システム１１３は、別の反復を実行する必要があるか、それともプロセスを終了するかを判定することができる。決定は、閾値に基づいて行うことができる。閾値は、反復の数として事前に構成することができる。閾値は、走査しなければならない空間内の面積として定義することができる。たとえば、走査プロセスが１ｍ×１ｍ×１ｍの立体空間を扱うべきであると決定することができる。この空間が扱われたとき、それ以上の反復が必要でないことをトリガによって示す。ステップ３０９は、別の反復が必要とされるときに実行される。そのような場合、ロボット支援型物体学習視覚システムは、物体を空間内の次の位置へ動かすように機械的デバイスに命令する。任意選択で、この動きは、所与の方向における所与の単位距離（たとえば、１ステップはｘ軸において１ｍｍ）として定義される。ロボット支援型物体学習視覚システムは、走査すべき空間のＸ、Ｙ、Ｚ軸のサイズを合図することによって、立体領域を経るようにロボットに命令するように構成することができる。たとえば、ｘがＸ軸においてこの立方体の限界に到達したとき、ｘを再初期化することができ、Ｙ軸におけるｙは１ｍｍ増分される。Ｙ軸においてｙの限界に到達したとき、ｘとｙの両方を再初期化ことができ、ｚはＺ軸において１ステップ増分される。ステップ３０９が行われ、ロボット機械が物体を空間内の次の位置へ動かした後、ステップ３０１および３０２から次の反復が開始される。ステップ３０８にあるとき、それ以上の反復が必要でないと決定され、次のステップはステップ３１０である。ステップ３１０は、物体データベース１１２内に記憶されたデータレコード上でたとえばロボット支援型物体学習視覚システムによって行われる後処理ステップである。このステップで、物体データベース内の訓練されている物体のデータセット内に記憶された視覚特徴が分析される。各特徴が分析され、その特徴がシステムへ新しく訓練された特定の物体を一意に識別することを支援するかどうかが考慮される。関連しないと識別されたそれらの特徴は、そのようにマークされる。この分析は、新しく訓練された物体の各特徴と、以前に訓練された物体の以前に記憶されたデータセットの関連特徴とを比較することによって行われる。物体の残り部分はデータベース内に記憶される。そのような一意性を識別するために特徴が見つからなかったとき、プロセスは、以前に訓練された物体の追加の特徴を、関連するものとして累進的にマークすることができる。後処理プロセスは、各物体内で一意の特徴を見つけるまで反復的に継続する。新しく訓練された物体を一意であると定義するための特徴の組合せが見つからなかったとき、システムは、エラーを報告することができる。エラーは、不明瞭な物体を示すことができる。不明瞭な物体は、データベース内にすでに存在している物体、または以前に学習した物体と区別するのが難しい物体である可能性がある。
【０１４５】
図４も参照すると、図４は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを使用する例示的なプロセスの流れ図である。図１も参照する。
【０１４６】
流れ図４００は、システムが以前に訓練された物体を使用して新しい物体を識別する方法を示す。ステップ４０１に示すように、ロボット支援型物体学習視覚システム１１３は、画像センサ１０２によって撮像された画像を収集する。任意選択で、センサは、カメラである。任意選択で、センサは、深さマップセンサである。撮像された画像は、機械的デバイス１０９によって保持されている物体１０５を描写する。任意選択で、機械的デバイスは、ロボット機械である。任意選択で、機械的デバイスは、コンベアである。物体１０５は、ビスケット、野菜、箱、ウェットティッシュ、製品、原料、半製品、包装箱、ケースなどとすることができる。ステップ４０２で、視覚処理ユニット１１１は、画像を分析し、物体の視覚画像特徴を抽出する。任意選択で、画像特徴は、２Ｄ特徴である。任意選択で、視覚特徴は、３Ｄ特徴である。特徴は、輪郭の数、輪郭のサイズ、外周、および面積などとすることができる。任意選択で、抽出特徴は、プロセス３００のステップ３０５で関連するものとして以前にマークされた、物体データベース１１２内に記憶されている訓練された物体のデータセット内の特徴である。ステップ４０３で、システムは、物体データベース１１２を検索して、現在検査されている物体から抽出された特徴に最もよく一致するレコードを識別する。たとえば、同じｘ、ｙ画素中心および類似の直径、その範囲内のコントラスト点の数（たとえば、ｆｉｎｄＣｏｎｔｒａｓｔのような関数の使用による）などを有する以前に記憶された物体に対応するレコードである。ステップ４０５で、システムは、見つかった一致が統計的に有意であると判定する。一致が有意であると決定されたとき、一致する特徴により、検査されている物体は、データベース内の物体に類似しているものとして識別されたことが仮定される。次いでシステムは、ステップ４０６へ進む。ステップ４０６で、システムは、図１に示すように、データベース１１２内のデータセット内の識別された物体のレコードから３Ｄ位置データを取り出す。ステップ４０７で、システムは、識別された物体に関して取り出された情報を他のソフトウェアモジュールまたはロボット制御ソフトウェアへ供給し、他のソフトウェアモジュールまたはロボット制御ソフトウェアは、見つかった特定の物体に関して所与の動作およびタスクを実行することができる。ステップ４０５で、抽出特徴と訓練されている物体の特徴との間に一意の一致がないと決定されたとき、システムは、データベース内の物体の特徴に一致することができる別の特徴を識別しようとして、ステップ４０１から４０５を繰り返すことができる。
【０１４７】
次に図５を参照すると、図５は、本発明のいくつかの実施形態に係る人間の支援によって物体に対してシステムを訓練する例示的なシナリオの概略図である。シナリオ５００で、人間５０９が、訓練プロセスにおいてシステムを支援する。上述したように、たとえばロボット機械またはロボットなどの機械的デバイス５１２が、作業面積内に配置されており、物体５０８に関係するタスクを実行するために訓練する必要がある。たとえば、タスクは、コンベア５１６から物体を把持して箱５１３に入れることである。視覚標識をロボット機械５１１に取り付けることができる。任意選択で、コンベア５１６に視覚標識が取り付けられる。任意選択で、物体５０８に視覚標識が取り付けられる。視覚標識は、バーコード、一意の色ラベル、異なるサイズのカスタム印刷ステッカ、チェス盤ステッカなどとすることができる。
【０１４８】
たとえば、人間５０９は、物体５０８をコンベア５１６から持ち上げて箱５１３に入れるタスクを実演する。実演中、１つまたは複数の画像センサ５０２および５０４が、実演を描写する画像を撮像することができる。任意選択で、画像センサのうちの少なくとも１つは、カメラである。任意選択で、画像センサのうちの少なくとも１つは、深さマップセンサである。図１および図３に示すように、物体の画像および３Ｄ座標が収集されている。この物体がシステムにとって新しい物体であるとき、システムは、図３に示すプロセス３００を使用して、この新しい物体に対するデータセットを記憶する。この物体が、システムにすでに訓練されて物体データベース５０５内に記憶された物体であるとき、または物体上に一意に識別可能な視覚標識５０７が存在するとき、図４に示すように、プロセス４００を行って、シーン内の物体を識別する。任意選択で、位置合わせされた深さマップ、ならびに深さセンサおよびデジタルカメラによって生成されたＲＧＢフレームなど、３Ｄ位置データが収集される。視覚処理ユニット５０６は、空間内の物体５０８の移動およびセンサに対するその相対位置を検出する。ロボット支援型物体学習視覚システム５１５は、物体の位置情報から、人間が箱５１３に物体を入れた方法を抽出する。任意選択で、センサ５０１および５０３上に視覚標識が配置され、それにより互いに対するセンサの相対位置および識別された物体に対するセンサの相対位置を識別するプロセスが容易になる。ロボット５１２も、センサによって同様に識別される。これにより、視覚処理ユニットがセンサに対する物体の相対位置をロボットに対する物体の相対位置に変換することが可能になる。後の段階で、視覚処理ユニットは、ロボットに対するこれらの位置をロボット処理ユニット５１４に伝達し、ロボットの動きを調整することができ、その結果、ロボットは、学習されている物体のピックアンドプレースタスクを実行し、箱５１３に同じ分布で物体を入れることができるようになる。
【０１４９】
図６を参照すると、図６は、本発明のいくつかの実施形態に係る物体の視覚特徴をマッピングするデータセットを使用する例示的なシナリオの概略図である。
【０１５０】
図６に示すように、図示のシナリオ６００で、物体６０５を保持する機械的デバイス６０９が示されている。機械的デバイスは、空間次元において少なくとも１動作自由度を有するロボット、ロボット機械、または任意の他の機械的デバイスとすることができる。物体６０５は、ビスケット、野菜、箱、ウェットティッシュ、製品、原料、半製品、包装箱、ケースなどとすることができる。ロボット機械６０９は、物体を保持するグリッパ６０７を具備することができる。グリッパ６０７は、異なる物体を把持するように適合される様々な形状、サイズ、および設計を有することができる。グリッパは、設計の複雑さ、動作要件、物体の形状および特徴、ならびにロボット機械に割り当てられたタスクの複雑さに応じて、異なる自由度数を有することができる。システムは、少なくとも１つの画像センサ６０２および６０４を含む。画像センサは、カメラ、深さマップセンサなどとすることができる。ロボットデバイスは、ロボットに割り当てられたタスクに従って、物体６０５を画像センサ６０２、６０４の前で動かして操作するように設定される。センサ６０１および６０３、機械的デバイス６０９のエンドポイントもしくはグリッパ、ならびに／またはセンサ６０２および６０４の視野内にある任意の物体もしくは機器６０８に、視覚標識を取り付けることができる。任意選択で、動作中に物体および他の物体を伝達するために、動作環境の一部として、コンベア６１５が設けられる。任意選択で、コンベア６１５に取り付けられた視覚標識６０８が配置される。視覚標識６０１、６０３、６０６、および６０８は、センサ、箱、および／またはロボットに対する物体の座標の識別および変換を容易にする。動作環境は、製造ライン、物体６０５のような物体を６１２のような箱に入れる必要のある包装ライン、物体選択ラインなどとすることができる。視覚標識は、センサによって撮られた画像を処理し、位置情報の抽出に関して改善された正確さを提供する能力を支援および改善することができる。視覚標識は、バーコード、一意の色ラベル、異なるサイズのカスタム印刷ステッカ、チェス盤ステッカなどとすることができる。
【０１５１】
視覚処理ユニット６１１および物体学習視覚システム６１４は、画像センサ６０２および６０４によって撮像された画像を処理および分析する演算システムである。視覚処理ユニット６１１および物体学習視覚システム６１４は、それだけに限定されるものではないが、少なくとも１つのハードウェアプロセッサ、少なくとも１つの入出力インターフェース、少なくとも１つの通信インターフェース、記憶媒体、およびユーザインターフェースを含むソフトウェア構成要素およびハードウェア要素から構成することができる。ロボット処理ユニット６１０は、ロボット機械の位置データを受信および処理し、その情報を物体学習視覚システム６１４と通信する演算システムとすることができる。ロボット処理ユニット６１０は、少なくとも１つのプロセッサ、通信インターフェース、入出力インターフェース、およびメモリ媒体を含むソフトウェア構成要素およびハードウェア構成要素から構成することができる。物体データベース６１３は、上記で説明したように、物体のデータセットを記憶する記憶媒体である。物体データベース６１３は、物体学習視覚システムによって制御される。物体データベース６１３上に記憶されるデータセットは、記憶するようにまた物体学習視覚システムによって動的に取り出されるように最適化されたスキーマを有するデジタル形式、フラットファイル、または他のデジタルデータ記憶形式とすることができる。シナリオ６００に示すように、物体は、コンベア６１５上で動くことができる。物体を識別する情報およびその情報により実行するタスクを取り出すために、ロボット処理ユニット６１０は、物体データベース６１３を使用して図４に示すプロセス４００を実行する視覚処理ユニット６１１と通信する。
【０１５２】
図７は、本発明のいくつかの実施形態に係る品質制御プロセスで物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。シナリオ７００に示すように、そのような物体の仕様に準拠すると見なされる１組の物体７０５が、システムのセンサ７０２および７１１の前に提示される。任意選択で、物体７０５は、固定位置に配置される。任意選択で、物体７０５は、コンベア７１２内のコンベア上に配置される。図３のプロセス３００に示すように、物体は、ロボット支援型物体学習システム７１１、視覚処理ユニット７０９、物体データベース７１０、および処理ユニット７０８を使用して、システムに対して訓練される。任意選択で、各センサが他のセンサの相対位置を検出することを可能にするために、シーン内の各センサ上に視覚識別標識７０１、７０３が配置される。任意選択で、コンベア７１２に視覚標識７０４が取り付けられる。視覚標識は、バーコード、一意の色ラベル、異なるサイズのカスタム印刷ステッカ、チェス盤ステッカなどとすることができる。処理ユニット７０８は、シナリオ１００のロボット処理ユニット１１０と同じように動作する。処理ユニット７０８は、コンベア７１２を制御する。任意選択で、処理ユニットによって、コンベアエンコーダ位置が使用および報告される。別法として、位置データは使用されず、機械的デバイスも存在しない。機械的デバイスが使用されないとき、位置情報も視覚処理ユニット７０９へ提供されない。任意選択で、システムは、位置情報なしで物体７０５を検出する。任意選択で、物体７０５に関連付けられたデータベース７１０に、追加の特徴が手動で入力される。任意選択で、追加の特徴は、操作者によって入力される。任意選択で、追加の特徴は、物体の分類である。任意選択で、分類は、「良好な物体」の値の名称を割り当てる。類似の手法を使用して、物体７０５の仕様に準拠しない１組の物体が、センサの前に提示され、上述したようにシステムに対して訓練される。任意選択で、物体７０５に関連付けられたデータベース７１０に、追加の特徴が手動で入力される。任意選択で、追加の特徴は、操作者によって入力される。任意選択で、追加の特徴は、物体の分類、たとえば「不良な物体」の値の名称である。上記の説明はシステムが仕様に準拠しない物体から仕様に準拠する物体を一意に識別する一意の２Ｄおよび／または３Ｄ特徴を検出するように、訓練プロセスを「良好な物体」上で１回および「不良な物体」上で１回実行するプロセスを実証する。特徴の手動入力として上述した追加の人間のフィードバックは、システムが偽の正／偽の負を識別することを可能にし、視覚処理ユニット７０９による識別および分類機構を改善する。「良好」な物体を「不良」な物体から一意に識別するそれらの特徴は、物体データベース内に記憶されており、図４に示すプロセス４００によって検査された物体を識別および分類するために後に取り出される。
【０１５３】
図８は、本発明のいくつかの実施形態に係る共平面の円形ステッカによって支援される物体の視覚特徴をマッピングするデータセットを生成する例示的なシナリオの概略図である。シナリオ８００に示すように、訓練プロセスは、シナリオ１００に類似しており、図１のプロセス１００と同様に、ロボット処理ユニット８０１によって制御されるロボットのような機械的デバイス８０２、デジタルカメラ８０４のような画像センサ、ロボット支援型物体学習視覚システム８０５、視覚処理ユニット８０７、および物体データベース８０６を含む。シナリオ８００は、物体８０３の表面に１つまたは複数の円形ステッカ８０８を加えることによって支援される。この物体は、ロボット８０２のエンドポイントに保持される。ステッカは、画像セグメント化プロセスを支援するために、背景に対して高コントラスト色とすることができる。図３に示すプロセス３００に従って、ロボットのすべての所与の位置に対して、デジタルカメラが、視覚処理ユニット８０７へフレーム画像を送信する。次いで視覚処理ユニットは、各ステッカの中心の画素座標、ならびに各円形ステッカに対応する２Ｄ長円の短軸および長軸の画素単位の長さを抽出する。円形ステッカの画像がちょうどステッカの平面に平行な平面から撮られなかったとき、ステッカの円形の形状は、２Ｄ画像内で短軸および長軸を有する長円に見える。ロボットが訓練プロセス３００中に動くにつれて、各円形ステッカは、ｘ、ｙ中心座標ならびに画素単位で測定される長軸および短軸に関連付けられた異なる値を有する。プロセス３００で上述したように、各フレームに対して、ロボットは、エンドポイントのｘ、ｙ、ｚ座標および各軸に対するエンドポイントのＲｘ、Ｒｙ、Ｒｚ回転を、ロボット処理ユニット８０１によって視覚処理ユニット８０７に報告する。これらの座標は、各フレームに対して円形ステッカの画像から抽出された値に関連付けられ、後に取り出せるように物体データベース８０６内に記憶される。
【０１５４】
本発明の様々な実施形態の説明は、例示の目的で提示されており、排他的であることまたは開示する実施形態に限定されることを意図するものではない。記載する実施形態の範囲および精神から逸脱することなく、多くの修正形態および変形形態が、当業者には明らかであろう。本明細書の術語は、実施形態の原理、実際的な適用分野、もしくは市場で見られる技術に対する技術的な改善について最もよく説明するため、または当業者であれば本明細書に開示する実施形態を理解することを可能にするために選択されたものである。
【０１５５】
本出願から満期になる特許の寿命中に、多くの関連するソフトウェア工学および深層学習方法が開発されることが予期され、データセット、システムの訓練、およびロボット支援型学習などの用語の範囲は、そのような新しい技術もすべて演繹的に含むことを意図する。
【０１５６】
本明細書では、「約（ａｂｏｕｔ）」という用語は、±１０％を指す。
【０１５７】
「備える、含む（ｃｏｍｐｒｉｓｅｓ）」、「備える、含む（ｃｏｍｐｒｉｓｉｎｇ）」、「含む（ｉｎｃｌｕｄｅｓ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、「有する（ｈａｖｉｎｇ）」という用語、およびそれらの同根語は、「〜を含むがそれだけに限定されない」ことを意味する。この用語は、「〜からなる（ｃｏｎｓｉｓｔｉｎｇ  ｏｆ）」および「本質的に〜からなる（ｃｏｎｓｉｓｔｉｎｇ  ｅｓｓｅｎｔｉａｌｌｙ  ｏｆ）」という用語を包含する。
【０１５８】
「本質的に〜からなる（ｃｏｎｓｉｓｔｉｎｇ  ｅｓｓｅｎｔｉａｌｌｙ  ｏｆ）」という語句は、組成物または方法が、追加の成分および／またはステップを含むことができるが、追加の成分および／またはステップがクレームされる組成物または方法の基本的かつ新規な特徴を物質的に変化させない場合に限ることを意味する。
【０１５９】
本明細書では、単数形の「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈上別途はっきりと指示しない限り、複数の参照も含む。たとえば、「化合物」または「少なくとも１つの化合物」という用語は、それらの混合物を含む複数の化合物を含むことができる。
【０１６０】
本明細書では、「例示的（ｅｘｅｍｐｌａｒｙ）」という単語は、「一例、事例、または例示の役割をする（ｓｅｒｖｉｎｇ  ａｓ  ａｎ  ｅｘａｍｐｌｅ，  ｉｎｓｔａｎｃｅ  ｏｒ  ｉｌｌｕｓｔｒａｔｉｏｎ）」ことを意味するために使用される。「例示的」として記載されているいずれの実施形態も、必ずしも他の実施形態より好ましいもしくは有利であると解釈されるべきではなく、かつ／または他の実施形態からの特徴の組込みを排除するべきではない。
【０１６１】
本明細書では、「任意選択（ｏｐｔｉｏｎａｌｌｙ）」という単語は、「いくつかの実施形態では提供されるが他の実施形態では提供されない（ｉｓ  ｐｒｏｖｉｄｅｄ  ｉｎ  ｓｏｍｅ  ｅｍｂｏｄｉｍｅｎｔｓ  ａｎｄ  ｎｏｔ  ｐｒｏｖｉｄｅｄ  ｉｎ  ｏｔｈｅｒ  ｅｍｂｏｄｉｍｅｎｔｓ）」ことを意味するために使用される。本発明のいずれの特定の実施形態も、複数の「任意選択」の特徴を矛盾しない限り含むことができる。
【０１６２】
本出願全体にわたって、本発明の様々な実施形態が、範囲形式で提示されることがある。範囲形式の説明は、利便性および簡潔性だけを目的とし、本発明の範囲に対する確固たる限定であると解釈されるべきではないことを理解されたい。したがって、範囲の説明は、すべての可能な下位範囲、ならびにその範囲内の個々の数値を具体的に開示したものであると見なされるべきである。たとえば、１〜６などの範囲の説明は、１〜３、１〜４、１〜５、２〜４、２〜６、３〜６などの下位範囲、ならびにその範囲内の個々の数、たとえば１、２、３、４、５、および６を具体的に開示したものであると見なされるべきである。これは、範囲の大きさにかかわらず当てはまる。
【０１６３】
本明細書に数値範囲が示されているときは常に、示されている範囲内のあらゆる引用された数値（分数または整数）も含むことを意味する。本明細書では、第１の記載の数と第２の記載の数との「間の範囲に及ぶ（ｒａｎｇｉｎｇ／ｒａｎｇｅｓ  ｂｅｔｗｅｅｎ）」、および第１の記載の数「から（ｔｏ）」第２の記載の数の「範囲に及ぶ（ｒａｎｇｉｎｇ／ｒａｎｇｅｓ  ｆｒｏｍ）」という語句は、区別なく使用され、第１の記載の数および第２の記載の数、ならびに第１の記載の数と第２の記載の数との間のすべての分数および整数を含むことを意味する。
【０１６４】
見やすいように別個の実施形態の文脈で記載した本発明の特定の特徴は、単一の実施形態に組み合わせて提供することもできることが理解されよう。逆に、簡潔にするために単一の実施形態の文脈で記載した本発明の様々な特徴は、別個に、もしくは任意の適した部分的な組合せで、または適宜本発明の任意の他の記載する実施形態で、提供することもできる。様々な実施形態の文脈で記載した特定の特徴は、実施形態がそれらの要素なしでは機能しなくなるわけではない場合、それらの実施形態の本質的な特徴であると見なされるべきではない。
【０１６５】
本明細書に記載したすべての公開、特許、および特許出願は、個々の各公開、特許、または特許出願が参照により本明細書に組み込まれると具体的かつ個別に示されている場合と同じ程度に、全体として参照により本明細書に組み込まれる。加えて、本出願におけるいかなる参照の引用または特定も、そのような参照が従来技術として本発明に利用可能であることを認めると解釈されるべきではない。見出しが使用される範囲で、それらは必ずしも限定的であると解釈されるべきではない。
【０１６６】
本発明について、その特有の実施形態に関連して記載したが、多くの代替形態、修正形態、および変形形態が当業者には明らかであることは明白である。したがって、添付の特許請求の範囲の精神および広い範囲内に入るすべてのそのような代替形態、修正形態、および変形形態を包含することが意図される。
【図１】
2019518297.tif 000004
【図２】
2019518297.tif 000005
【図３】
2019518297.tif 000006
【図４】
2019518297.tif 000007
【図５】
2019518297.tif 000008
【図６】
2019518297.tif 000009
【図７】
2019518297.tif 000010
【図８】
2019518297.tif 000011
【国際調査報告】
2019518297.tif 000012
2019518297.tif 000013
2019518297.tif 000014