(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-26
(45)【発行日】2023-01-10
(54)【発明の名称】位置検出プログラム、位置検出方法及び位置検出装置
(51)【国際特許分類】
G06T 7/70 20170101AFI20221227BHJP
G06T 7/00 20170101ALI20221227BHJP
G06N 3/045 20230101ALI20221227BHJP
B25J 13/08 20060101ALI20221227BHJP
【FI】
G06T7/70 A
G06T7/00 350C
G06N3/04 154
B25J13/08 A
(21)【出願番号】P 2018210460
(22)【出願日】2018-11-08
【審査請求日】2021-08-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】横田 泰斗
(72)【発明者】
【氏名】鈴木 彼方
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2018-116599(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06N 3/04
B25J 13/08
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
それぞれが相似形でない
各形状を示す単純形状データを入力して前記形状の位置情報を検出する、各形状に対応した各学習モデルに、撮影手段により物体が撮影された画像データを入力し、
前記各学習モデルから位置情報および検出の確からしさを示す信頼度を取得し、
前記各学習モデルから得られた各信頼度の合計値が閾値以上である場合、前記各学習モデルから得られた位置情報を用いて、前記物体の位置を検出する、
処理を実行させることを特徴とする位置検出プログラム。
【請求項2】
前記コンピュータに、
前記
物体の位置から前記物体の把持位置を検出する
処理をさらに実行させることを特徴とする請求項1に記載の位置検出プログラム。
【請求項3】
前記各学習モデルそれぞれは、前記各形状の位置情報および前記各形状の位置情報の信頼度を出力するモデルであり、
前記検出する処理は、アンサンブル学習モデルを用いて前記物体の位置を特定し、
前記アンサンブル学習モデルは、前記各学習モデルそれぞれの検出結果のうち、前記信頼度から高い順に所定個の位置情報を特定し、前記各学習モデルそれぞれから所定個ずつ取得された複数の位置情報を用いて前記物体の位置を検出する、ことを特徴とする請求項1又は2に記載の位置検出プログラム。
【請求項4】
前
記学習モデルは、深層学習を用いる畳み込み型のニューラルネットワークであって、
検出結果として、前記画像
データから
前記物体の検出位置を示すバウンディングボックス
と前記信頼度を対応付けて複数
出力し、
前記アンサンブル学習モデルは、第1の数の
前記学習モデルからそれぞれ第2の数の位置候補を取得し、前記第1の数に前記第2の数を乗じた数の位置候補のバウンディングボックスの中に重なる領域がある場合には、重なる領域を有する位置候補をグループ化し、グループ化した位置候補の信頼度の合計をグループの信頼度とし、信頼度が最大であるグループ又は位置候補のバウンディングボックスを前記物体の位置の情報として出力することを特徴とする請求項3に記載の位置検出プログラム。
【請求項5】
前記
単純形状データは、シミュレータにより前記単純形状の立体のモデルから作成されたデータであることを特徴とする請求項1~4のいずれか1つに記載の位置検出プログラム。
【請求項6】
前記
単純形状データにおける前記単純形状は、円柱、直方体、立方体、球及びバネを含むことを特徴とする請求項1~5のいずれか1つに記載の位置検出プログラム。
【請求項7】
コンピュータが、
それぞれが相似形でない
各形状を示す単純形状データを入力して前記形状の位置情報を検出する、各形状に対応した各学習モデルに、撮影手段により物体が撮影された画像データを入力し、
前記各学習モデルから位置情報および検出の確からしさを示す信頼度を取得し、
前記各学習モデルから得られた各信頼度の合計値が閾値以上である場合、前記各学習モデルから得られた位置情報を用いて、前記物体の位置を検出する、
処理を実行することを特徴とする位置検出方法。
【請求項8】
それぞれが相似形でない
各形状を示す単純形状データを入力して前記形状の位置情報を検出する、各形状に対応した各学習モデルに、撮影手段により物体が撮影された画像データを入力し、
前記各学習モデルから位置情報および検出の確からしさを示す信頼度を取得し、
前記各学習モデルから得られた各信頼度の合計値が閾値以上である場合、前記各学習モデルから得られた位置情報を用いて、前記物体の位置を検出する検出部と
を有することを特徴とする位置検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置検出プログラム、位置検出方法及び位置検出装置に関する。
【背景技術】
【0002】
近年、画像内の人や物体を検出する技術が広く使われている。例えば、工場や倉庫におけるピッキングロボットでは、把持する物体の位置を画像から検出する技術が利用されている。
【0003】
画像内の物体を検出する技術として、テンプレートマッチングがある。
図14は、テンプレートマッチングを説明するための図である。テンプレートマッチングでは、検出装置は、検出する物体の画像をテンプレート画像91として予め記憶し、テンプレート画像91と類似度が高い範囲を入力画像92から探索する。検出装置は、入力画像上で探索窓93をスライドさせながら、探索窓内の画像とテンプレート画像91の類似度を計算し、類似度が最も高い位置に物体が存在すると判断する。
【0004】
また、深層学習(Deep Learning)を行うニューラルネットワーク(NN:Neural Network)を用いて画像内の物体を検出する技術としてSSD(Single Shot Multibox Detector)がある。SSDでは、利用者は、事前に正解ラベル付きの入力画像のデータセットを用意し、用意したデータセットを画像の学習に特化したNNである畳み込みNNに学習させる。学習後のNNは、入力画像中の物体を検出し、検出した物体の位置と検出対象の確からしさを示す信頼度を出力する。
【0005】
なお、ロボットアームの先端に取り付けたカメラからの画像情報をコントローラに入力し、深層学習を用いてロボット自らリアルタイムに動作を学習・生成することで教示を不要とする技術がある。
【先行技術文献】
【非特許文献】
【0006】
【文献】「ロボットによる対象物の多様なつかみ方を実現するAIピッキング機能を開発」、[平成30年10月22日検索]、インターネット<URL:https://www.yaskawa.co.jp/newsrelease/technology/35697>
【発明の概要】
【発明が解決しようとする課題】
【0007】
テンプレートマッチングやSSDには、事前に想定した形状と異なる形状の物体を検出できないという問題がある。
【0008】
本発明は、1つの側面では、事前に想定した形状と異なる形状の物体の検出可能性を高めることを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、位置検出プログラムは、コンピュータに、それぞれが相似形でない、単純形状の立体のデータを複数取得し、取得した複数の前記データを用いて学習を行う処理を実行させる。そして、前記位置検出プログラムは、前記コンピュータに、撮像手段により撮像された画像を取得し、前記学習に基づいて生成された第1学習モデルを用いて、取得した前記画像から物体の位置を検出する処理を実行させる。
【発明の効果】
【0010】
1つの側面では、本発明は、事前に想定した形状と異なる形状の物体の検出可能性を高めることができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、ピッキングロボットの概略を示す図である。
【
図2】
図2は、ピッキングの流れの一例を示す図である。
【
図3】
図3は、実施例に係るピッキングロボットシステムの構成を示す図である。
【
図4】
図4は、アンサンブル学習モデルの作成の流れを示す図である。
【
図5】
図5は、単純形状モデルによる検出例を示す図である。
【
図6】
図6は、アンサンブル学習モデルによる検出例を示す図である。
【
図7】
図7は、位置検出装置の機能構成を示す図である。
【
図8】
図8は、入力画像から対象物体の位置を推定する処理を説明するための図である。
【
図9】
図9は、検出位置グループを説明するための図である。
【
図10】
図10は、位置検出装置による処理のフローを示すフローチャートである。
【
図11】
図11は、アンサンブル学習モデルによる処理のフローを示すフローチャートである。
【
図12】
図12は、検出位置グループの効果を説明するための図である。
【
図13】
図13は、実施例に係る位置検出プログラムを実行するコンピュータのハードウェア構成を示す図である。
【
図14】
図14は、テンプレートマッチングを説明するための図である。
【発明を実施するための形態】
【0012】
以下に、本願の開示する位置検出プログラム、位置検出方法及び位置検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【0013】
まず、ピッキングロボットについて説明する。
図1は、ピッキングロボットの概略を示す図である。
図1に示すように、ピッキングロボット1は、アーム2の先端に取り付けたグリッパ3を用いて対象物体4をつかんで移動させるロボットである。ピッキングロボット1は、工場で部品や製品をつかんで移動させる場合、あるいは、倉庫で荷物をつかんで移動させる場合などに用いられる。
【0014】
図2は、ピッキングの流れの一例を示す図である。
図2に示すように、事前作業として、利用者は、ピッキングの対象物体4とアーム動作を決め(t1)、ティーチングを実施する(t2)。ここで、「ティーチング」とは、事前に対象物体4の形状などの情報やアーム動作をロボット制御プログラムに設定することである。
【0015】
そして、ティーチングが行われたピッキングロボット1は、ピッキング動作を行う。すなわち、ピッキングロボット1は、カメラで画像を取得し(t3)、画像から対象物体4を検出し、位置を推定する(t4)。そして、ピッキングロボット1は、対象物体4をつかむ動作を実施し(t5)、指定場所に移動して対象物体4を放す(t6)。
【0016】
このように、ピッキングロボット1を動作させるためには、事前にティーチングを行う必要がある。対象物体4の形状や周囲の環境が変わると、ティーチングをし直す必要があり、ティーチングの工数を如何に減らすかが重要となっている。
【0017】
また、深層学習による画像認識では、大量の学習データを用いた学習を行うことで、認識精度の向上を図っており、大量の学習データが必要となる。利用可能なオープンデータが多数ある場合には、学習データの数を確保することに困難はないが、ピッキング作業の分野においては、オープンデータはほとんどなく、学習データとして利用できるデータは多くない。したがって、ピッキング作業の分野では、学習データをいかに用意するかが重要となっている。
【0018】
また、ピッキングという観点では、対象物体4の全体を認識する必要はなく、把持可能な部分を認識できることが重要となる。把持可能な形状は、円柱、直方体、立方体、正多面体、円錐、角錐、球、トーラス(ドーナツ型)、螺旋などの単純な形状であり、ピッキングの対象物体4は、これらの単純な形状な部分を備える。このような単純な形状は、一般にプリミティブと呼ばれることがある。
【0019】
次に、実施例に係るピッキングロボットシステムの構成について説明する。
図3は、実施例に係るピッキングロボットシステムの構成を示す図である。
図3に示すように、実施例に係るピッキングロボットシステム5は、ピッキングロボット1と、カメラ6と、ロボット制御装置7と、位置検出装置10とを有する。
【0020】
カメラ6は、対象物体4を撮像し、撮像した画像を位置検出装置10に出力する。位置検出装置10は、カメラ6により撮像された画像を入力して把持位置情報をロボット制御装置7に出力する。ロボット制御装置7は、把持位置情報に基づいてピッキングロボット1に動作指示を行う。ピッキングロボット1は、対象物体4に対してピッキングを実施する。
【0021】
位置検出装置10は、アンサンブル学習モデル10aと、変換部32とを有する。アンサンブル学習モデル10aは、学習モデルA~学習モデルEで表される5つの学習モデル11を有する。学習モデル11は、学習用データセットを深層学習したNNである。学習モデル11は、SSDに基づくNNである。学習モデル11は、カメラ6が撮影した画像を入力して対象物体4を検出し、位置情報と信頼度を出力する。アンサンブル学習モデル10aは、各学習モデル11が出力した位置情報と信頼度に基づいて対象物体4の位置情報を出力する。変換部32は、対象物体4の位置情報を入力して把持位置情報を出力する。
【0022】
図4は、アンサンブル学習モデル10aの作成の流れを示す図である。利用者は、単純形状モデルA~単純形状モデルEで表される5種類の単純形状モデル12をCG(Computer Graphics)を用いて用意する。ここで、単純形状モデル12とは、単純な形状の3次元モデルである。各単純形状モデル12は他の単純形状モデル12と相似形でない。
図4では、単純形状モデルAは円柱の3次元モデルであり、単純形状モデルBは直方体の3次元モデルであり、単純形状モデルCは立方体の3次元モデルである。また、単純形状モデルDは球の3次元モデルであり、単純形状モデルEはバネの3次元モデルである。
【0023】
そして、利用者は、ピッキングロボット1のシミュレータを使い、単純形状モデル12ごとに学習用データセット13を作成する。そして、位置検出装置10が、1つの学習用データセット13に対して1つの学習モデル11を作成する。学習データセットAから学習モデルAが作成され、学習データセットBから学習モデルBが作成され、学習データセットCから学習モデルCが作成され、学習データセットDから学習モデルDが作成され、学習データセットEから学習モデルEが作成される。
【0024】
そして、位置検出装置10は、5つの学習モデル11を用いて対象物体4の位置を検出するアンサンブル学習モデル10aを作成する。アンサンブル学習モデル10aは、例えば、各位置情報について5つの学習モデル11の信頼度の合計をアンサンブル学習モデル10aの信頼度とし、信頼度が基準値以上であれば、対象物体4を検出したと判定する。基準値は、例えば、1.0である。
【0025】
なお、学習に用いられる単純形状モデル12の数は、5より多くても少なくてもよいが、単純形状モデル12の数が多いほど位置検出装置10の汎用性が増すが、処理に時間がかかるため、5~10がよい。ビッキング対象の形状の種類が事前に決まっている場合は、位置検出装置10は、ビッキング対象の形状を抽象化したモデルを用いてもよい。あるいは、ピッキング対象の形状に含まれる部分的な単純形状が単純形状モデルとして選択されることとしてもよい。
【0026】
図5は、単純形状モデル12による検出例を示す図である。ケース#1は、検出対象の物体が「ボルト」である場合を示し、ケース#2は、検出対象の物体が「ICチップ」である場合を示す。また、検出判定の基準の信頼度を0.5以上であるとする。
【0027】
ケース#1では、学習用データセット13の対象が実写のボルトである場合には、信頼度が0.95であるのでボルトは検出されるが、学習用データセット13の対象が実写のICチップである場合には、信頼度が0.09であるのでボルトは検出されない。また、学習用データセット13の対象が単純形状モデル12の1つである円柱の3次元モデルである場合には、信頼度が0.83であるのでボルトが検出される。
【0028】
ケース#2では、学習用データセット13の対象が実写のボルトである場合には、信頼度が0.13であるのでICチップは検出されず、学習用データセット13の対象が実写のICチップである場合には、信頼度が0.92であるのでICチップは検出される。また、学習用データセット13の対象が単純形状モデル12のうちの1つである円柱の3次元モデルである場合には、信頼度が0.61であるのでICチップが検出される。
【0029】
このように、位置検出装置10は、単純形状モデル12を学習させることによって、対象物体4の形状を過学習することを避け、検出可能な形状の類似度の幅を広げることができる。
【0030】
図6は、アンサンブル学習モデル10aによる検出例を示す図である。
図6では、検出対象の物体形状は未知である。
図6において、単体の学習モデル11では、検出判定の基準の信頼度を0.5以上であるとし、アンサンブル学習モデル10aでは、検出判定の基準の信頼度を1.0以上であるとする。
【0031】
図6に示すように、各単純形状モデル12からそれぞれ作成された各学習モデル11は、信頼度が0.5未満のため、対象物体4を検出することはできない。一方、アンサンブル学習モデル10aは、各学習モデル11の結果を利用することで、対象物体4を検出することができる。
図6では、5つの学習モデル11の信頼度の合計が0.39+0.37+0.25+0.11+0.09=1.21で1.0以上となるので、アンサンブル学習モデル10aは、対象物体4を検出することができる。
【0032】
このように、位置検出装置10は、アンサンブル学習モデル10aを用いることによって、検出可能な形状の範囲を飛躍的に広げることができる。
【0033】
次に、位置検出装置10の機能構成について説明する。
図7は、位置検出装置10の機能構成を示す図である。
図7に示すように、位置検出装置10は、モデル作成部20と把持位置検出部30とを有する。モデル作成部20は、5つの単純形状モデル12の学習用データセット13を取得し、5つの単純形状モデル12に基づくアンサンブル学習モデル10aを作成する。把持位置検出部30は、対象物体4を撮像した画像を取得し、アンサンブル学習モデル10aを用いて画像内の対象物体4の位置を検出し、検出した位置に基づいて把持位置を特定して把持位置情報を出力する。
【0034】
モデル作成部20は、個別モデル作成部21とアンサンブルモデル作成部22を有する。把持位置検出部30は、物体位置検出部31と、変換部32とを有する。
【0035】
個別モデル作成部21は、5つの単純形状モデル12の学習用データセット13を取得し、取得した5つの学習用データセット13をそれぞれ学習した5つの学習モデル11を作成する。各学習用データセット13には、例えば、検出位置の正解ラベル付きデータが10000個含まれる。また、個別モデル作成部21は、学習用データセット13ごとに学習モデル11を100エポック訓練させる。
【0036】
アンサンブルモデル作成部22は、個別モデル作成部21により作成された5つの学習モデル11を用いてアンサンブル学習モデル10aを作成する。アンサンブルモデル作成部22は、各位置情報について5つの学習モデル11の信頼度の合計を信頼度とし、信頼度が基準値以上であれば対象物体4を検出したと判定するアンサンブル学習モデル10aを作成する。
【0037】
物体位置検出部31は、対象物体4を撮像した画像を取得し、アンサンブル学習モデル10aを用いて画像内の対象物体4の位置を検出し、位置情報を出力する。
図8は、入力画像から対象物体4の位置を推定する処理を説明するための図である。
図8に示すように、物体位置検出部31は、入力画像から対象物体4を検出し、位置情報としてバウンディングボックスの左上の点(xu,yu)、右下の点(xv,yv)を出力する。
【0038】
ここで、バウンディングボックスは、対象物体4の位置を定義する長方形の枠である。バウンディングボックスは、例えば、左上と右下の2点のx座標及びy座標で定義される。座標軸の原点は、例えば、入力画像の左下である。
【0039】
アンサンブル学習モデル10aは、各学習モデル11が出力した位置情報の中から信頼度の高い順に5個の位置情報を検出位置候補として選択し、5個の学習モデル11で合計25個の検出位置候補に基づいて、対象物体4の位置情報を作成する。
【0040】
具体的には、アンサンブル学習モデル10aは、検出位置候補のバウンディングボックスに重なりがある場合には、検出位置候補をグルーピングして検出位置グループとする。
図9は、検出位置グループを説明するための図である。
図9では、25個の検出位置候補うち5個の検出位置候補だけを示す。
【0041】
図9では、5個のバウンディングボックスのうち3個のバウンディングボックスに重なりがあるため、3個のバウンディングボックスがグループ化され、太線で示す枠が検出位置グループを示す。検出位置グループの信頼度は、重なりのある検出位置候補の信頼度の合計である。
【0042】
そして、アンサンブル学習モデル10aは、信頼度がもっとも高い検出位置候補又は検出位置グループを対象物体4の位置情報として選択する。アンサンブル学習モデル10aは、対象物体4の位置情報として検出位置グループを選択した場合には、バウンディングボックスの左上の点の座標(X,Y)を、
(X,Y)=(s1(x1,y1)+s2(x2,y2)+・・・+sn(xn,yn))/(s1+s2+・・・+sn)
により計算する。ここで、nは検出位置グループに含まれる検出位置候補の数であり、si(i=1,2,・・・,n)は検出位置候補iの信頼度であり、(xi,yi)は検出位置候補iのバウンディングボックスの左上の点の座標である。バウンディングボックスの右下の点の座標も同様に計算される。
【0043】
そして、アンサンブル学習モデル10aは、対象物体4の位置情報としてバウンディングボックスの左上と右下の座標を出力する。物体位置検出部31は、アンサンブル学習モデル10aが出力した位置情報を変換部32に渡す。
【0044】
変換部32は、物体位置検出部31から位置情報を取得し、取得した位置情報を把持位置情報に変換する。変換部32は、位置情報と対象物体4の把持可能な形状の個所とに基づいて位置情報を把持位置情報に変換する。
【0045】
次に、位置検出装置10による処理のフローについて説明する。
図10は、位置検出装置10による処理のフローを示すフローチャートである。
図10に示すように、位置検出装置10は、単純形状モデル12の学習用データセット13を5個取得し(ステップS1)、5個の学習用データセット13を用いて5個の学習モデル11を作成する(ステップS2)。そして、位置検出装置10は、5個の学習モデル11からアンサンブル学習モデル10aを作成する(ステップS3)。
【0046】
そして、位置検出装置10は、対象物体4が撮像された画像を取得し(ステップS4)、アンサンブル学習モデル10aを用いて、取得した画像から対象物体4を検出し、位置情報を作成する(ステップS5)。そして、位置検出装置10は、位置情報を把持位置情報に変換し(ステップS6)、把持位置情報を出力する(ステップS7)。
【0047】
このように、位置検出装置10は、5つの単純形状モデル12の学習用データセット13をそれぞれ学習した5つの学習モデル11を用いてアンサンブル学習モデル10aを作成し、アンサンブル学習モデル10aを用いて対象物体4を検出する。したがって、位置検出装置10は、事前に想定した形状と異なる形状の物体を検出することができる。
【0048】
次に、アンサンブル学習モデル10aによる処理のフローについて説明する。
図11は、アンサンブル学習モデル10aによる処理のフローを示すフローチャートである。
図11に示すように、アンサンブル学習モデル10aは、各学習モデル11から信頼度が高い順に5個のバウンディングボックス及び信頼度を取得する(ステップS11)。
【0049】
そして、アンサンブル学習モデル10aは、バウンディングボックスが重なっている領域があるか否かを判定する(ステップS12)。そして、ある場合には、アンサンブル学習モデル10aは、領域が重なっていた複数の検出位置候補を、1つの検出位置グループと定義し、領域が重なっていた複数の検出位置候補の信頼度を合算して検出位置グループの信頼度を計算する(ステップS13)。
【0050】
そして、アンサンブル学習モデル10aは、信頼度がもっとも高い検出位置候補又は検出位置グループを対象物体4の位置情報として選択し(ステップS14)、最も信頼度が高いのは検出位置グループか否かを判定する(ステップS15)。そして、最も信頼度が高いのは検出位置グループである場合には、アンサンブル学習モデル10aは、元の検出位置候補の信頼度で重み付けした座標を検出位置グループの座標として計算する(ステップS16)。
【0051】
そして、アンサンブル学習モデル10aは、対象物体4の位置情報として、計算した座標を出力する(ステップS17)。
【0052】
このように、アンサンブル学習モデル10aは、領域が重なっていた検出位置候補を、1つの検出位置グループと定義し、重なっていた検出位置候補の信頼度を合算して検出位置グループの信頼度とする。したがって、アンサンブル学習モデル10aは、単体の学習モデル11のみでは検出ができない対象物体4を検出することができる。
【0053】
図12は、検出位置グループの効果を説明するための図である。
図12では、単体の学習モデル11の基準値は0.5であり、アンサンブル学習モデル10aの基準値は1.0であるとする。
【0054】
図12に示すように、検出対象の物体形状がバネのケースでは、検出位置グループは定義されない。また、単体の学習モデル11では、バネを学習した学習モデル11の信頼度が0.5以上となり、バネを学習した学習モデル11のみで検出が可能である。
【0055】
一方、検出対象の物体形状が未知のケースでは、円柱を学習した学習モデル11が出力した検出位置候補と直方体を学習した学習モデル11が出力した検出位置候補と立方体を学習した学習モデル11が出力した検出位置候補がグループ化される。そして、検出位置グループの信頼度が0.39+0.37+0.25=1.01となり、検出位置グループを用いるアンサンブル学習モデル10aにより物体形状が未知の物体が検出される。
【0056】
上述してきたように、実施例では、個別モデル作成部21が、複数の単純形状モデル12からそれぞれ作成された複数の学習用データセット13をそれぞれ用いて複数の学習モデル11を作成する。そして、アンサンブルモデル作成部22が、複数の学習モデル11に基づいてアンサンブル学習モデル10aを作成する。そして、物体位置検出部31が、アンサンブル学習モデル10aを用いて、対象物体4を撮像した画像から対象物体4を検出して位置情報を作成する。したがって、位置検出装置10は、対象物体4の形状を過学習することを避け、事前に想定した形状と異なる形状の物体の検出可能性を高めることができる。
【0057】
また、実施例では、位置検出装置10は、位置情報を把持位置情報に変換してロボット制御装置7に出力するので、対象物体4の形状が変更になった場合でもピッキングロボット1のティーチングを不要とすることができ、ティーチングの工数を減らすことができる。
【0058】
また、実施例では、アンサンブル学習モデル10aは、検出位置候補のバウンディングボックスに重なりがある場合には、検出位置候補をグルーピングして検出位置グループとし、検出位置グループの信頼度を、重なりのある検出位置候補の信頼度の合計とする。したがって、位置検出装置10は、1つの学習モデル11だけでは検出できない未知の物体を検出することができる。
【0059】
また、実施例では、単純形状モデル12の学習用データセット13は、ロボットシミュレータにより作成されるので、学習に十分な量の学習用データセット13を簡単に作成することができる。
【0060】
また、実施例では、位置検出装置10は、単純形状として円柱、直方体、立方体、球及びバネを用いるので、検出できる物体形状の汎用性を高めることができる。
【0061】
なお、実施例では、位置検出装置10について説明したが、位置検出装置10が有する構成をソフトウェアによって実現することで、同様の機能を有する位置検出プログラムを得ることができる。そこで、位置検出プログラムを実行するコンピュータについて説明する。
【0062】
図13は、実施例に係る位置検出プログラムを実行するコンピュータのハードウェア構成を示す図である。
図13に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0063】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0064】
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
【0065】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0066】
そして、コンピュータ50において実行される位置検出プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、位置検出プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされた位置検出プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0067】
また、実施例では、アンサンブル学習モデルが位置情報を作成し、変換部が位置情報を把持位置情報に変換する場合について説明したが、アンサンブル学習モデルは、把持位置情報を直接作成してもよい。この場合、アンサンブル学習モデルは、物体検出範囲を把持位置範囲に置き換えて、信頼度及び把持角度とともに出力する。
【0068】
また、実施例では、ピッキングロボット1で使われる場合について説明したが、位置検出装置10は、医療用ロボット、調理ロボット、土木及び建設用機械、自動走行車、ドローン、家庭用電化製品などの他の装置で使われてもよい。
【符号の説明】
【0069】
1 ピッキングロボット
2 アーム
3 グリッパ
4 対象物体
5 ピッキングロボットシステム
6 カメラ
7 ロボット制御装置
10 位置検出装置
10a アンサンブル学習モデル
11 学習モデル
12 単純形状モデル
13 学習用データセット
32 変換部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
91 テンプレート画像
92 入力画像
93 探索窓