(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132544
(43)【公開日】2024-10-01
(54)【発明の名称】部品の位置姿勢推定装置、部品の位置姿勢推定方法及び部品の位置姿勢推定プログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20240920BHJP
G06T 7/00 20170101ALI20240920BHJP
G06V 10/72 20220101ALI20240920BHJP
【FI】
G06T7/70 Z
G06T7/00 350B
G06V10/72
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023043351
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】504174135
【氏名又は名称】国立大学法人九州工業大学
(74)【代理人】
【識別番号】100170748
【弁理士】
【氏名又は名称】稲垣 悟
(74)【代理人】
【識別番号】100126859
【弁理士】
【氏名又は名称】江上 裕士
(72)【発明者】
【氏名】陸 慧敏
(72)【発明者】
【氏名】張 子江
(72)【発明者】
【氏名】鄭 禹超
(72)【発明者】
【氏名】李 玉潔
(72)【発明者】
【氏名】濱本 圭佑
(72)【発明者】
【氏名】中藤 良久
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA05
5L096CA02
5L096DA02
5L096EA35
5L096FA06
5L096FA24
5L096FA54
5L096FA59
5L096FA64
5L096FA67
5L096FA69
5L096HA08
5L096HA11
5L096KA04
(57)【要約】
【課題】さまざまな方向を向いてボックス内などに載置されている複数の部品のうち、少なくとも一部の部品の位置及び姿勢を推定することができる部品の位置姿勢推定装置、部品の位置姿勢推定方法及び部品の位置姿勢推定プログラムを提供することを目的とする。
【解決手段】位置姿勢推定装置は、カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力する部品認識部と、前記領域情報が示す前記対象部品の領域内における前記部品の輪郭部の特徴点情報を抽出する特徴点情報抽出部と、複数の教師用部品の特徴点情報が格納されている特徴点情報格納部と、前記特徴点格納部から前記属性情報に対応する前記教師用部品の特徴点情報を抽出し、前記輪郭部の特徴点情報と抽出された前記教師用部品の特徴点情報とを使って対象部品の姿勢を推定する姿勢推定部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力する部品認識部と、
前記領域情報が示す前記対象部品の領域内における前記対象部品の輪郭部の特徴点情報を抽出する特徴点情報抽出部と、
複数の教師用部品の特徴点情報が格納されている特徴点情報格納部と、
前記特徴点情報格納部から前記属性情報に対応する前記教師用部品の特徴点情報を抽出し、前記輪郭部の特徴点情報と抽出された前記教師用部品の特徴点情報とを使って前記対象部品の姿勢を推定する姿勢推定部と、
を備える、
部品の位置姿勢推定装置。
【請求項2】
前記教師データは、教師部品の撮像画像と前記教師部品のシミュレーション画像とを使って生成される、
請求項1に記載の部品の位置姿勢推定装置。
【請求項3】
前記特徴点情報格納部は前記教師用部品の特徴点情報として、複数の視点から前記教師用部品を見た時の特徴点情報を含み、
前記教師用部品の特徴点情報は、同一視点から前記教師用部品を見た時の特徴点情報群を含み、
前記姿勢推定部は、前記特徴点情報格納部から前記属性情報に対応する前記教師用部品の前記特徴点情報群を抽出し、前記輪郭部の特徴点情報と抽出された前記教師用部品の特徴点情報群とを使って前記対象部品の姿勢を推定する、
請求項1または2に記載の部品の位置姿勢推定装置。
【請求項4】
前記教師データは、教師データ生成部により生成され、
前記教師データ生成部は、仮想空間上に配置された複数の部品データの中から前記教師データの候補となる候補部品データを抽出し、前記候補部品データが、他の部品データとオクルージョンの関係にあることを検知したとき、前記オクルージョンのオクルージョン率が所定の閾値よりも低い場合にのみ、前記候補部品データを前記教師データとして生成する、
請求項1または2に記載の部品の位置姿勢推定装置。
【請求項5】
前記部品データは、カメラ画像から生成された点群データを含む、
請求項4記載の部品の位置姿勢推定装置。
【請求項6】
カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力し、
前記領域情報が示す前記対象部品の領域内における前記対象部品の輪郭部の特徴点情報を抽出し、
複数の教師用部品の特徴点情報から、前記属性情報に対応する前記教師用部品の特徴点情報を抽出し、前記輪郭部の特徴点情報と、抽出された前記教師用部品の特徴点情報とを使って前記対象部品の姿勢を推定する、
部品の位置姿勢推定方法。
【請求項7】
カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力し、
前記領域情報が示す前記対象部品の領域内における前記対象部品の輪郭部の特徴点情報を抽出し、
複数の教師用部品の特徴点情報から、前記属性情報に対応する前記教師用部品の特徴点情報を抽出し、前記輪郭部の特徴点情報と、抽出された前記教師用部品の特徴点情報とを使って前記対象部品の姿勢を推定する、
ことをコンピュータに実行させる、
部品の位置姿勢推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、部品の位置姿勢推定装置、部品の位置姿勢推定方法及び部品の位置姿勢推定プログラムに関する。
【背景技術】
【0002】
特許文献1には、部品をロボットで取り出すビンピッキングにおいて、手動の教示を行うことなく高品質の把持候補を生成し、計算効率が高いロボット把持学習技術を提供することが記載されている。特に、グリッパと表面接触する部品毎に数百の把持姿勢を計算し、各部品の把持が、ビン内でシミュレートされた対象物のパイルに適用される物理的環境シミュレーションを行うと記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1における把持学習においては、グリッパの姿勢の把握について詳細に記載されている。一方で、部品の姿勢の把握に関しては、カメラで撮像された画像から、対象物の位置、姿勢を定義する点群データを出力することのみが記載され、詳細には記載されていない。しかしながら、実際には、部品の姿勢を認識することは非常に困難であり、特に、バラ積みにされた部品の姿勢についてはなおさらである。
【0005】
そこで本発明は、ロボットによって部品をピッキングするなどのために、さまざまな方向を向いてボックス内などに載置されている複数の部品のうち、少なくとも一部の部品の位置及び姿勢を推定することができる部品の位置姿勢推定装置、部品の位置姿勢推定方法及び部品の位置姿勢推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の部品の位置姿勢推定装置は、カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力する部品認識部と、領域情報が示す対象部品の領域内における部品の輪郭部の特徴点情報を抽出する特徴点情報抽出部と、複数の教師用部品の特徴点情報が格納されている特徴点情報格納部と、特徴点情報格納部から属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象部品の姿勢を推定する姿勢推定部と、を備える。
【0007】
本発明の部品の位置姿勢推定方法は、カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力し、領域情報が示す対象部品の領域内における部品の輪郭部の特徴点情報を抽出し、複数の教師用部品の特徴点情報から、属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と、抽出された教師用部品の特徴点情報とを使って対象部品の姿勢を推定する。
【0008】
本発明の部品の位置姿勢推定プログラムは、カメラから出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力し、領域情報が示す対象部品の領域内における部品の輪郭部の特徴点情報を抽出し、複数の教師用部品の特徴点情報から属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と、抽出された教師用部品の特徴点情報とを使って対象部品の姿勢を推定することをコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、ロボットによって部品をピッキングするなどのために、さまざまな方向を向いてボックス内などに載置されている複数の部品のうち、少なくとも一部の部品の位置及び姿勢を推定することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施の形態の部品位置姿勢推定システムを示す概略図
【
図2】本発明の一実施の形態の部品位置姿勢推定装置を示すブロック図
【
図3】本発明の一実施の形態の部品位置姿勢推定のフロー図
【
図4】本発明の一実施の形態の部品認識に関する教師データ生成装置のブロック図
【
図5】本発明の一実施の形態の部品認識に関する教師データ生成のフロー図
【
図6】本発明の一実施の形態の部品認識に関する教師データの説明図
【
図7】本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成装置のブロック図
【
図8】本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成のフロー図
【
図9】本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成の説明図
【発明を実施するための形態】
【0011】
以下に図面を用いて、本発明の一実施の形態を詳細に説明する。以下で述べる構成、処理、フロー等は説明のための例示であって、部品位置姿勢推定システム、部品位置姿勢推定装置、教師データ生成装置、特徴点情報生成装置、教師データ、特徴点などの仕様に応じ、適宜変更が可能である。以下では、全ての図面において対応する要素には同一符号を付し、重複する説明を省略する。実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0012】
1.部品位置姿勢推定システムについて
まず
図1を参照して、部品位置姿勢推定システム1について説明する。
図1は、本発明の一実施の形態の部品位置姿勢推定システムを示す概略図である。部品位置姿勢推定システム1は、部品位置姿勢推定装置100、カメラ200、ロボット300を備える。カメラ200が撮像した画像によって、部品位置姿勢推定装置100は複数の部品500の位置や姿勢を推定することができ、どの部品500を把持すべきかを選択することができる。そして、部品位置姿勢推定装置100と接続することによって、ロボット300はその先端に有する把持部301を使い、ボックス400内に収納される複数の部品500を把持する。
【0013】
把持部301で部品500を把持することを、ビンピッキング(バラ積みピッキング)ともいい、ボックス400のなかにバラバラに置かれた部品500の山から、適切なものを選択しつかむ作業のことを指す。ビンピッキングは、製造業などの自動化において、非常に重要な作業である。カメラ200、部品500を把持するロボット300、ボックス400、部品500は、一般的なものであってよく、特に限定しない。
【0014】
2.部品位置姿勢推定装置について
次に、
図2、3を参照して、部品位置姿勢推定装置100について説明する。
図2は、本発明の一実施の形態の部品位置姿勢推定装置を示すブロック図である。
図3は、本発明の一実施の形態の部品位置姿勢推定のフロー図である。
図2において、部品位置姿勢推定装置100は、制御部110、記憶部120、入出力部130を備える。制御部110は、部品認識部111、特徴点情報抽出部112、姿勢推定部113を備える。記憶部120は、特徴点情報格納部121を備える。入出力部130は、入力部131、出力部132を備える。
【0015】
制御部110は記憶部120やメモリに記憶されたコンピュータプログラムを実行し、各機能ブロックを実現する装置であって良い。制御部110の例として、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、コントローラ、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field-Programmable Gate Array)が挙げられる。また、上述したメモリは、記憶部120の一部であっても良い(後述する制御部610、710も同様である)。
【0016】
部品認識部111は、カメラ200から出力されたカメラ画像と教師データを用いて、対象の部品500の領域情報と属性情報とを出力する。まず、カメラ200が撮像した画像(静止画、動画を含む)を畳み込みニューラルネットワークに入力し、これから把持すべき部品500の位置や領域(撮像された画像内の部品500の画素座標)とパーツタイプ(属性情報)を推定する。もちろん、これから把持すべき部品500以外の部品500の位置や領域とパーツタイプも推定するとよい。部品500の位置や領域は、領域情報であるバウンディングボックス(
図6参照)として表現されてもよい。パーツタイプは、部品の特定や部品がカメラに表を向けているか裏を向けているかなどを表す。畳み込みニューラルネットワークにおいて使用され、推定のために必要な教師データ生成については、後述する。上述した畳み込みニューラルネットワークは、部品認識部111内に含まれても、部品認識部111外に設けられもよい。
【0017】
特徴点情報抽出部112は、対象の部品500のバウンディングボックス内における部品500の輪郭部の特徴点情報を抽出する。特徴点情報抽出部112は、まず、撮像された画像の深度画像(空間的情報)を生成し、部品500の輪郭を特定することで輪郭部の深度値を点群データに変換する。これによって、部品500の輪郭部の特徴点情報を抽出することができる。輪郭部のみの特徴点情報を抽出することで、特徴点情報抽出の処理の効率が向上する。
【0018】
なお、特徴点情報とは、特徴点そのものを直接的に示しても良いし、間接的に示しても良い。特徴点情報抽出部112では、その処理を効率化するために、部品500の位置を示すバウンディングボックス(
図5参照)内の画像のみ深度値を算出しても良い。バウンディングボックスについては後述する。これによって、処理時間を大幅に短縮することができる。
【0019】
そして、特徴点情報抽出部112は、例えばOpenCV(Open Source Computer Vision Library)の2D画像エッジ検出アルゴリズムを使用して深度画像内の部品500の境界を抽出する。この時、境界のピクセルを白に、他のピクセルを黒にするなど2色に分けることで、この後、部品500の輪郭部のみを示す点群を生成することができる。そして、特徴点情報抽出部112は、部品500の輪郭部分の深度値を三次元点群に変換する。
【0020】
姿勢推定部113は、パーツタイプに対応する教師用部品の特徴点情報を抽出し、対象の部品500の輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象の部品500の姿勢を推定する。教師用部品の特徴点情報の生成については、後述する。姿勢推定部113は、まずこれから把持すべき部品500のパーツタイプによって適切な教師用部品の特徴点情報を選択する。教師用部品の特徴点情報は、記憶部120の特徴点情報格納部121に格納される。この特徴点情報は、ハッシュテーブルに格納されても良い。姿勢推定部113は、バウンディングボックス内の特徴点情報と教師用部品の特徴点情報とを照合し、最も近いポーズ(姿勢)に投票されるハフ投票を行う。すべての特徴点が照合し、最良のポーズが決定する。この決定されたポーズに基づいて、制御部110はロボット300を制御するための制御情報を、ロボット300に送信する。
【0021】
なお、姿勢推定部113は、推定した把持対象の部品500の姿勢候補を、ICP(Iterative Closet Point)アルゴリズムを用いて絞り込んでもよい。部品500の各姿勢候補に対して、対応する点群モデルを用いて、ICPアルゴリズムを実行してもよい。また、PCL(Point Cloud Library)という点群を処理するためのライブラリの姿勢検証アルゴリズムを用いて、異常な推定となった姿勢を除外し、最終的に検証済みの姿勢を出力してもよい。
【0022】
記憶部120は、部品位置姿勢推定装置100が取り扱うコンピュータプログラム及びデータを記憶し、ROM(Read-Only Memory)及びRAM(Random Access Memory)を含んでよい(後述する記憶部620、720も同様である)。
【0023】
特徴点情報格納部121は、教師用部品の特徴点情報を格納する。特徴点情報格納部121は、姿勢推定部113が姿勢推定を行う際に、教師用部品の特徴点情報を提供する。
【0024】
入力部131は、カメラ200からの撮像画像やロボットから送信される情報などを受信(入力)する。出力部132は、カメラ200及びロボット300の制御に必要な情報など、さまざまな情報を送信(出力)する。
【0025】
次に、
図3を参照して、部品の位置姿勢推定処理のフローを説明する。なお、制約がない限り、フローの順序を入れ替えてもよい。以下のフローは、プログラムを実行するコンピュータによって実行されてもよい。
【0026】
まず、S1において、カメラ200から出力されたカメラ画像と教師データを用いて、対象部品の領域情報と属性情報とを出力する。すなわち、カメラ200が撮像した画像(静止画、動画を含む)を畳み込みニューラルネットワークに入力し、これから把持すべき部品500の位置(撮像された画像内の部品500の画素座標)とパーツタイプを推定する。
【0027】
次に、S2において、撮像された画像の深度画像(空間的情報)を生成する。そして、S3において、対象の部品500のバウンディングボックス内における部品500の輪郭部の特徴点情報を抽出する。まず、部品500の輪郭を特定することで輪郭部の深度値を点群データに変換する。これによって、部品500の輪郭部の特徴点情報を抽出することができる。ここでは、S3を効率化するために、部品500の位置を示すバウンディングボックス(
図6参照)内の画像のみ深度値を算出する。これによって、処理時間を大幅に短縮することができる。そして、深度画像内の部品500の境界を抽出する。この時、境界のピクセルを白に、他のピクセルを黒にするなど2色に分けることで、この後、部品500の輪郭部のみを示す点群を生成することができる。そして、特徴点情報抽出部112は、部品500の輪郭部分の深度値を三次元点群に変換する。
【0028】
次に、S4で、パーツタイプに対応する教師用部品の特徴点情報を抽出し、対象の部品500の輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象部品の姿勢を推定する。まず、これから把持すべき部品500のパーツタイプによって適切な教師用部品の特徴点情報を選択する。対象の部品500のバウンディングボックス内の特徴点情報と教師用部品の特徴点情報とを照合し、最も近いポーズ(姿勢)に投票されるハフ投票を行う。すべての特徴点が照合し、最良のポーズが決定する。
【0029】
そして、S5で、この決定されたポーズに基づいて、制御部110はロボット300を制御する。具体的には制御部110からロボット300を制御する信号が送信される。なお、推定した把持対象の部品500の姿勢候補を、ICPアルゴリズムを用いて絞り込んでもよい。部品500の各姿勢候補に対して、対応する点群モデルを用いて、ICPアルゴリズムを実行してもよい。また、PCLライブラリの姿勢検証アルゴリズムを用いて、異常な推定となった姿勢を除外し、最終的に検証済みの姿勢を出力してもよい。
【0030】
3.教師データ生成について
次に、部品認識部111が部品認識のために使用する教師データの生成について説明する。
図4は、本発明の一実施の形態の部品認識に関する教師データ生成装置のブロック図である。
図5は、本発明の一実施の形態の部品認識に関する教師データ生成のフロー図である。
図6は、本発明の一実施の形態の部品認識に関する教師データの説明図であり、(a)は実際のボックスと部品の画像であり、(b)は(a)にバウンディングボックスを重畳したものである。
【0031】
図4において、教師データ生成装置600は、制御部610、記憶部620、入出力部630を備える。制御部610は、部品データ生成部611、仮想シーン構築部612、オクルージョン検出部613、学習データ生成部614、学習部615を備える。記憶部620は、部品画像データ格納部621を備える。入出力部630は、入力部631、出力部632を備える。
【0032】
部品データ生成部611は、産業用カメラなどで部品500の表面の点群データを収集する。そして、部品500の各表面の点群情報に基づいて3次元モデルを構築する。なお、部品500の表面の点群データは、部品500を実際に撮像した画像から生成するだけでなく、3DCADデータなどデジタルデータを利用してもよい。
【0033】
仮想シーン構築部612は、シミュレータ等を用いて、実際の産業シーンに基づいたシミュレーション環境を構築する。例えばNVIDIA社のIsaac Sim等を使用して実現できる。そして、部品データ生成部611が生成した3次元モデルを、シミュレーション環境にインポートして仮想シーンを構築する。この時、実際の部品500に応じて、シミュレーション内の部品500の3次元モデルの材料、摩擦係数、重力係数、その他の情報を設定するとよい。また、実際の工場内などの状況に応じて、3次元モデルをシミュレーション環境にインポートする。
【0034】
そしてドメインランダマイゼーション手法を使用し、ランダムな位置に部品を配置し部品の自由落下、衝突、オクルージョンなどの現象をNVIDIA社のIsaac Simを用いてシミュレートし、データとアノテーション情報を特定のフレームレートで記録する。アノテーション情報とは、データに付加された情報で、アノテーション情報が付加されることで教師データとなる。この仮想シーンを処理することで、
図6(b)のようなバウンディングボックス501の情報とインスタンスセグメンテーション情報を抽出することができる。
【0035】
オクルージョン検出部613は、仮想シーン構築部612が生成したバウンディングボックス501の情報とインスタンスセグメンテーション情報に基づいて、オクルージョン関係を抽出する。オクルージョンとは、手前にある物体が後ろにある物体を隠す状態のことを言う。オクルージョン関係とは、どの部品500が、別のどの部品500の後ろに隠れているかを示す。バウンディングボックス501の情報とは、各部品500の位置、領域を含み、パーツタイプを含んでもよい。インスタンスセグメンテーションとは、オブジェクトの検出されたインスタンス(ここでは1つの部品500)ごとにセグメンテーションマップを生成するオブジェクト検出である。インスタンスセグメンテーション情報とは、インスタンスセグメンテーションに関わる情報をいう。
【0036】
オクルージョン検出部613は、隣接する2つの画素のアノテーション情報が同じでない場合、これらの2つの画素に対応する2つの部品500にオクルージョンが存在していると判定する。そして、この2つの部品500それぞれに対応するバウンディングボックス情報を抽出し、それらのバウンディングボックス501が重なっている面積を計算する。また、隣接するバウンディングボックス501内の画素数を比較することで、どちらが表面にあるか、どちらが他の部品によって隠されているかを示すオクルージョン関係が分かる。そして、画像内のすべての隣接する2つの部品500を比較し、オクルージョン関係有向グラフを得る。
【0037】
オクルージョン検出部613は、バウンディングボックス501の情報、インスタンスセグメンテーション情報、オクルージョン関係有向グラフを使って、オクルージョンのある部品500を特定する。オクルージョン関係有向グラフに従って、オクルージョンしている部品500(上側)に対応するオクルージョンされた部品500(下側)の数を調べ、それらのバウンディングボックス501が重なっている領域を抽出する。そして、オクルージョンされた部品500の重なった領域内の画素数を計算する。この情報をもとにオクルージョン率を求め、オクルージョンがある場所を個別に判断する。
【0038】
なお、オクルージョン率は、オクルージョンされている部品500において、重なる領域における遮蔽された領域の画素数を、バウンディングボックス501内の総画素数で割ったものとして求めるとよい。そして、オクルージョン率が所定の閾値よりも低いデータのみを教師データとして使用するとよい。
【0039】
上述のように、学習データ生成部614では、まず仮想シーン構築部612によって構築された仮想空間上に配置された複数の部品データが配置される。そして教師データの候補となる候補部品データが抽出され、他の部品とのオクルージョンが発生していない場合には候補部品データが教師データとして生成される。一方、候補部品データが他の部品データとオクルージョンの関係にある場合、オクルージョン率が所定の閾値よりも低い場合にのみ、その候補部品データが教師データとして生成される。なお、教師データ生成装置600は、部品位置姿勢推定装置100と組み合わせて使用する場合には、部品位置姿勢推定装置内で、教師データ生成部として機能する。
【0040】
このように、学習データ生成部614では、仮想シーン構築部612が生成した部品データがインポートされたシミュレーション環境のデータを使って、それぞれが異なるように生成された学習データを複数生成する。これによって、たくさんの学習データを効率的に生成することができる。
【0041】
なお、ここで現実の世界で実際に存在するボックス400及びその中に設けられた複数の部品500の写真を使って、教師データをより現実のシーンに近づけるとよい。写真は1枚または複数枚であり、5枚までの少数であってよい。これによって、より現実のシーンに近い教師データを生成することができる。
【0042】
学習部615では、学習データ生成部614によって生成された学習データを使って、学習データの学習を行う。
【0043】
次に、
図5を参照して、教師データ生成処理のフローについて説明する。S11で、例えばNVIDIA Isaac Simを使用して実際の産業シーンに基づいたシミュレーション環境を構築する。S12で、産業用カメラなどで部品500の表面の点群データを収集する。そして、部品500の各表面の点群情報に基づいて3次元モデルを構築する。なお、部品500の表面の点群データは、3DCADデータなどデジタルデータを利用してもよい。そして、S13で、S12で生成した3次元モデルを、S12で生成したシミュレーション環境にインポートすることで、仮想シーンを構築する。このとき、バウンディングボックス501の情報とインスタンスセグメンテーション情報を抽出する。
【0044】
S14で、オクルージョン率が閾値以下であるか否かを判定する。まず、バウンディングボックス501の情報とインスタンスセグメンテーション情報に基づいて、オクルージョン関係を決定する。隣接する2つの画素のアノテーション情報が同じでない場合(異なる部品500だと判定される場合)、これらの2つの画素に対応する2つの部品500にオクルージョンが存在していると判定する。そして、オクルージョン率を求め、オクルージョンがある場所を個別に判断する。
【0045】
なお、オクルージョン率は、オクルージョンされている部品500において、重なる領域における遮蔽された領域の画素数を、バウンディングボックス501内の総画素数で割ったものを求めるとよい。オクルージョン率が閾値以上である場合は、S11に戻って新たな教師データを生成する。オクルージョン率が閾値以下である場合は、S15で、現実の世界で実際に存在するボックス400及びその中に設けられた複数の部品500の写真を使って、教師データをより現実のシーンに近づける。そして、S16で、学習データを生成が完了する。
【0046】
4.教師部品の特徴点情報生成について
次に、教師部品の特徴点情報生成について説明する。
図7は、本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成装置のブロック図である。
図8は、本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成のフロー図である。
図9は、本発明の一実施の形態の特徴点情報抽出に関する教師用部品の特徴点情報生成の説明図である。教師部品とは、部品500の3DCADデータなどの3Dデジタルデータである。
【0047】
図7において、教師部品の特徴点情報生成装置700は、制御部710、記憶部720、入出力部730を備える。制御部710は、部品モデル生成部711、エッジモデル生成部712、特徴点情報生成部713を備える。記憶部720は、特徴点情報格納部721を備える。入出力部730は、入力部731、出力部732を備える。
【0048】
部品モデル生成部711は、PCLという点群を処理するためのライブラリを用いて、教師部品のモデルデータを、例えばSTLファイルからPCD形式に変換する。この処理により、教師部品を三次元点群データで表現することができ、点群データに基づいて部品500の姿勢を推定する手法を活用できるようになる。
【0049】
エッジモデル生成部712は、教師部品のエッジのPPF(Pointt Pair Feature)を抽出する。PPFとは、
図9に示すように2点対(m1、m2)で構成される特徴量である。まず、エッジモデル生成部712は、教師部品の各軸(X、Y、Z軸)における物体の極致範囲すなわち物体の投影長さを計算する。そして、Z軸の上下に2つの視点(上側からの視点と下側からの視点)からの、教師部品の外観の可視点群を抽出する。次に、外観の可視点群(モデル)に対して、PCLが提供するツールによって境界点の抽出を行う。そして、部品500の境界上の三次元点群から、PPFを計算する。
【0050】
なお、
図9のPPFの計算方法は、一般的な方法と異なり、線分上の点だけでなく曲線上の2点対(m1、m2)とすることができる。すなわち、曲線状の2点対(m1、m2)を直線に当てはめるのではなく、接線を計算することでPPFを算出することができる。現実の部品500ピックアップを行う現場では、可視できる範囲内の部品500表面の特徴のみしか抽出できない。そこで、モデル生成段階では、物体の上面と下面をそれぞれ表現するために、
図9に示されるように2方向の視点から特定の視点での点群を生成するとよい。これによって、より現実の部品に近い教師用部品の特徴点情報を生成することができる。
【0051】
特徴点情報生成部713は、エッジモデル生成部712が生成した多数のPPFを特徴点情報としてハッシュテーブルに保存する。
図9に示されるように、ハッシュテーブルは、教師部品を上から見た場合の特徴点情報が保存されたハッシュテーブルと、教師部品を下から見た場合の特徴点情報が保存されたハッシュテーブルとがある。この事前にハッシュテーブルに保存された特徴点情報と、実際の部品500のピックアップを行う現場で抽出された特徴点情報とを照合することで、部品500の姿勢を推定することができる。実際の部品はランダムに配置されているので、あらかじめ複数方向から見た教師部品の特徴情報を保存しておくことで、より精度高く部品500の姿勢を推定することができる。なお、特徴点情報の保存にハッシュテーブルを用いた理由は次の通りである。ハッシュテーブルでキーを元に対応する値を得るには、ハッシュ値の計算と、ハッシュ値が衝突した場合に複数の要素から探索する時間しかかからず、配列内を全探索する必要がない。従って多数の特徴点情報を扱う場合、ハッシュテーブルを用いると、単純なリストや配列などに比べ極めて高速にデータを取得することができる。
【0052】
次に、
図8を用いて、教師部品の特徴点情報生成処理のフローについて説明する。まず、S21で、PCLのライブラリを用いて、教師部品のモデルデータをPCD形式に変換する。この処理により、教師部品を三次元点群データで表現することができ、点群データに基づいて部品500の姿勢を推定する手法を活用できるようになる。
【0053】
次に、S22で、教師部品のエッジのPPFを抽出する。教師部品の外観の可視点群を抽出し、境界点の抽出を行う。そして、部品500の境界上の三次元点群からPPFを計算する。
【0054】
そして、S23で、算出されたPPFを特徴点情報としてハッシュテーブルに保存する。
図9に示されるように、ハッシュテーブルは、教師部品を上から見た場合の特徴点情報が保存されたハッシュテーブルと、教師部品を下から見た場合の特徴点情報が保存されたハッシュテーブルとを生成する。
【0055】
5.まとめ
部品位置姿勢推定装置100は、カメラ200から出力されたカメラ画像と教師データを用いて、対象の部品500の領域情報と属性情報とを出力する部品認識部111と、領域情報が示す対象の部品500の領域内における部品500の輪郭部の特徴点情報を抽出する特徴点情報抽出部112と、複数の教師用部品の特徴点情報が格納されている特徴点情報格納部121と、特徴点情報格納部121から属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象の部品500の姿勢を推定する姿勢推定部113と、を備える。これによって、ロボットによって部品をピッキングするなどのために、さまざまな方向を向いてボックス内などに載置されている複数の部品のうち、少なくとも一部の部品の位置及び姿勢を推定することができる。
【0056】
上記の部品位置姿勢推定装置100において、教師データは、教師部品の撮像画像と前記教師部品のシミュレーション画像とを使って生成されてもよい。これによって、より現実のシーンに近い教師データを生成することができる。
【0057】
上記の部品位置姿勢推定装置100において、特徴点情報格納部121は教師用部品の特徴点情報として、複数の視点から教師用部品を見た時の特徴点情報を含み、教師用部品の特徴点情報は、同一視点から教師用部品を見た時の特徴点群を含み、姿勢推定部113は、特徴点情報格納部121から属性情報に対応する教師用部品の特徴点情報群を抽出し、輪郭部の特徴点情報と抽出された教師用部品の特徴点情報群とを使って対象部品の姿勢を推定するとよい。これによって、より現実の部品に近い教師用部品の特徴点情報を生成することができる。
【0058】
部品の位置姿勢推定方法であって、カメラ200から出力されたカメラ画像と教師データを用いて、対象の部品500の領域情報と属性情報とを出力し、領域情報が示す対象の部品500の領域内における部品500の輪郭部の特徴点情報を抽出し、複数の教師用部品の特徴点情報が格納し、属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象の部品500の姿勢を推定する。
【0059】
部品の位置姿勢推定プログラムであって、カメラ200から出力されたカメラ画像と教師データを用いて、対象の部品500の領域情報と属性情報とを出力し、領域情報が示す対象の部品500の領域内における部品500の輪郭部の特徴点情報を抽出し、複数の教師用部品の特徴点情報が格納し、属性情報に対応する教師用部品の特徴点情報を抽出し、輪郭部の特徴点情報と抽出された教師用部品の特徴点情報とを使って対象の部品500の姿勢を推定することをコンピュータに実行させる。
【符号の説明】
【0060】
1 部品位置姿勢推定システム
100 部品位置姿勢推定装置
110 制御部
111 部品認識部
112 特徴点情報抽出部
113 姿勢推定部
120 記憶部
121 特徴点情報格納部
130 入出力部
131 入力部
132 出力部
200 カメラ
300 ロボット
400 ボックス
500 部品
600 教師データ生成装置
610 制御部
611 部品データ生成部
612 仮想シーン構築部
613 オクルージョン検出部
614 学習データ生成部
615 学習部
620 記憶部
621 部品画像データ格納部
630 入出力部
631 入力部
632 出力部
700 教師データ生成装置
710 制御部
711 部品モデル生成部
712 エッジモデル生成部
713 特徴点情報生成部
720 記憶部
621 特徴点情報格納部
730 入出力部
731 入力部
732 出力部