以下に、本開示の実施の形態にかかる物体認識装置および物体認識方法を図面に基づいて詳細に説明する。なお、以下に示す実施の形態により本開示の技術的範囲が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかる物体認識装置10の機能構成を示す図である。物体認識装置10は、画像取得部101と、画像変換部102と、認識部103と、出力部104と、第1の学習部105と、記憶部106と、画像変換パラメータ決定部107と、評価部108と、入力受付部109とを有する。物体認識装置10は、対象物体を撮影した画像に基づいて、対象物体の位置姿勢といった状態を認識する機能を有する。
画像取得部101は、対象物体の画像を取得する。画像取得部101は、イメージセンサを有する撮像装置であってもよいし、物体認識装置10に接続された撮影装置が撮影した画像を取得するインタフェースであってもよい。以下、画像取得部101が取得する画像をセンサ画像と称する。画像取得部101は、取得したセンサ画像を画像変換部102および第1の学習部105のそれぞれに出力する。センサ画像は、モノクロ画像であってもよいし、RGB画像であってもよい。また、センサ画像は、距離を輝度の明暗で表現した距離画像であってもよい。距離画像は、3次元の位置情報を持った点の集合データに基づいて生成されてもよい。このとき、画像取得部101は、距離画像から3次元の位置情報を持った点の集合を再構成するための最低限の情報を距離画像と同時に取得することが好ましい。点の集合を再構成するための最低限の情報とは、焦点距離、スケールなどである。
なお、画像取得部101は、複数の種類の画像を取得することができてもよい。例えば、画像取得部101は、対象物体のモノクロ画像および距離画像の両方を取得することができてよい。このとき、画像取得部101は、モノクロ画像および距離画像の両方を1台で撮影することができる撮影装置であってもよいし、モノクロ画像を撮影する撮影装置と、距離画像を撮影する撮影装置とから構成されてもよい。ただし、モノクロ画像の撮影と距離画像の撮影とを別の撮影装置で行う場合、2台の撮影装置の位置関係を事前に把握しておくことが好ましい。
画像変換部102は、画像変換パラメータを用いて、画像取得部101が取得するセンサ画像を画像変換して変換後画像を認識部103に出力する。画像変換部102は、記憶部106に記憶されており、第1の学習部105の学習結果である画像変換パラメータを用いて、センサ画像が目標画像群毎に予め定められた特徴をもつように画像変換を行う。本実施の形態では、予め定められた特徴を有する画像を目標画像と称し、目標画像の集合を目標画像群と称する。
同じ目標画像群に含まれる複数の目標画像は、共通する特徴を有する。このとき共通する特徴は、例えば、対象物体の形状、対象物体の表面特性、計測距離、深度などである。また、共通する特徴は、認識の対象である対象物体以外の物体の位置姿勢、外乱光の種類および強度、計測センサの種類、計測センサのパラメータ、対象物体の配置状態、画像のスタイル、対象物体の数量などであってもよい。ここで、計測センサのパラメータとは、ピント、絞りなどのパラメータである。対象物体の配置状態は、整列状態、ばら積み状態などである。同じ目標画像群に含まれる複数の目標画像は、1つの共通する特徴を有してもよいし、複数の共通する特徴を有してもよい。また、「共通する特徴を有する」とは、上記のような特徴が同一である場合だけでなく、類似する場合も含む。例えば、対象物体の形状は、直方体、円柱、六角柱といった基準形状を定めた場合、目標画像内の対象物体の形状が、同じ基準形状に近似できる程度の近さであっても、共通する特徴を有する画像とすることができる。また、対象物体の表面特性は、例えば黒、白、灰色といった基準色を定めた場合、目標画像内の対象物体の見た目の色合いが同じ基準色に分類される程度の近さであっても、共通する特徴を有する画像とすることができる。
目標画像には、少なくとも1つの対象物体が映っている。このとき、目標画像内に映っている対象物体は、必ずしも全体が映っている必要はない。例えば、対象物体の一部分が計測範囲外にある場合、他の物体によって対象物体の一部が隠れてしまっている場合、目標画像内に映る対象物体の一部が欠けてしまうことがあるが、問題ない。また、目標画像内に複数の対象物体が映っている場合、複数の対象物体の配置状態は、整列状態であってもよいし、ばら積み状態であってもよい。目標画像は、対象物体を認識しやすい画像であることが望ましい。対象物体を認識しやすい画像とは、例えば、対象物体の形状が複雑ではなく、直方体、立方体といった簡易な形状を有し、ノイズが少ない画像である。
画像変換部102が用いる画像変換パラメータのパラメータ数および種類は、画像変換手法によって異なる。画像変換部102は、変換後画像中の対象物体の位置姿勢といった状態が、センサ画像中の対象物体の状態と大きく変わらないような画像変換手法を用いることが望ましい。画像変換部102は、例えば、ニューラルネットワークを利用した画像変換手法を用いることができる。ニューラルネットワークを利用した画像変換手法を用いる場合、画像変換パラメータは、ネットワークを構成する各ユニット間の重み係数を含む。
認識部103は、画像変換部102が出力する変換後画像に基づいて、対象物体の位置姿勢といった状態を認識する。認識部103が用いる認識手法は、特に制限されない。例えば、認識部103は、画像から対象物体の状態を出力することができるように事前学習を行う機械学習ベースの認識手法を用いてもよいし、対象物体のCAD(Computer-Aided Design)データと3次元計測データと照合して対象物体の状態を推定するモデルマッチングを用いてもよい。認識部103は、1種類の認識手法を用いて認識処理を行ってもよいし、複数の種類の認識手法を組み合わせて用いて認識処理を行ってもよい。認識部103は、認識結果を出力部104および評価部108のそれぞれに出力する。認識結果は、例えば、認識部103の認識処理時間および認識部103が認識した対象物体の個数の少なくともいずれかを含む。
出力部104は、認識結果と、後に詳述する評価部108の評価結果とを出力する機能を有する。出力部104が認識結果および評価結果を出力する方法については、特に制限されない。例えば、出力部104は、表示装置を備えており、表示装置の画面上に認識結果および評価結果を表示してもよい。また出力部104は、外部装置とのインタフェースを備えており、認識結果および評価結果を外部装置に送信してもよい。
図2は、図1に示す出力部104が表示する表示画面の一例を示す図である。図2中の「input」は、センサ画像を表示する領域を示しており、「parameter」は、画像変換パラメータと、評価結果である評価値とを表示する領域を示している。また図2中の「conversion」は、変換後画像を表示する領域を示しており、「recognition」は、認識結果を表示する領域を示している。例えば、ユーザが、「parameter」に表示された複数の画像変換パラメータのうちの1つを選択する操作を行うと、表示画面の「Name」には選択された画像変換パラメータの名称が表示され、「Value」には、選択された画像変換パラメータを用いた場合の評価値が表示され、「conversion」には、選択された画像変換パラメータを用いた場合の変換後画像が表示され、「recognition」には、選択された画像変換パラメータを用いた場合の認識結果が表示される。
第1の学習部105は、センサ画像を、目標画像群の特徴を有するように画像変換するための画像変換パラメータを学習する。第1の学習部105は、画像変換部102が用いる画像変換パラメータを、目標画像群ごとに学習する。図3は、図1に示す第1の学習部105の詳細な構成の一例を示す図である。第1の学習部105は、状態観測部11と、機械学習部12とを有する。目標画像群に含まれる複数の目標画像の間のばらつきが小さい場合、第1の学習部105は、目標画像群の特徴を再現した画像変換を行うことが可能な画像変換パラメータを得ることができる可能性が高くなる。センサ画像の目標画像群との乖離が大きい場合、第1の学習部105の画像変換パラメータの学習は収束し難い。
状態観測部11は、画像変換パラメータと、目標画像群と、変換後画像および目標画像群の特徴の類似度とを状態変数として観測する。機械学習部12は、画像変換パラメータ、目標画像群、類似度の状態変数に基づいて作成される訓練データセットに従って、画像変換パラメータを目標画像群ごとに学習する。
機械学習部12が用いる学習アルゴリズムはどのようなものであってもよい。一例として、機械学習部12が強化学習を用いる場合について説明する。強化学習は、ある環境内における行動主体であるエージェントが、現在の状態を観測し、取るべき行動を決定する、という学習アルゴリズムである。エージェントは、行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習、TD学習が知られている。例えば、Q学習の場合、行動価値関数Q(st,at)の一般的な更新式は、以下の数式(1)で表される。
数式(1)において、stは時刻tにおける環境を表し、atは時刻tにおける行動を表す。行動atにより、環境はst+1に変わる。rt+1は行動atの結果として変化する環境に応じて与えられる報酬を表し、γは割引率を表し、αは学習係数を表す。
数式(1)で表される更新式は、時刻t+1における最良の行動aの行動価値Qが、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(st,at)を更新する。このような更新を繰り返すことで、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝搬していくようになる。
機械学習部12は、報酬計算部121と、関数更新部122とを有する。
報酬計算部121は、状態変数に基づいて報酬を計算する。報酬計算部121は、状態変数に含まれる類似度に基づいて、報酬rを計算する。類似度は、変換後画像が、目標画像群の特徴を再現している度合いが高いほど高くなる。例えば、類似度が予め定められる閾値よりも高い場合、報酬計算部121は、報酬rを増大させる。報酬計算部121は、例えば、「1」の報酬を与えて報酬rを増大させることができる。他方、類似度が予め定められる閾値よりも低い場合、報酬計算部121は、報酬rを減少させる。報酬計算部121は、例えば、「-1」の報酬を与えて報酬rを減少させることができる。類似度は、目標画像群の特徴の種類に応じて、公知の方法に従って算出される。
関数更新部122は、報酬計算部121によって計算される報酬rに従って、画像変換パラメータを決定するための関数を更新する。例えばQ学習の場合、数式(1)で表される行動価値関数Q(st,at)を、画像変換パラメータを決定するための関数として用いる。
図4は、図1に示す第1の学習部105の動作例を説明するためのフローチャートである。図4に示す動作は、物体認識装置10の運用を開始する前に行われる。第1の学習部105の状態観測部11は、画像取得部101を用いてセンサ画像群を取得する(ステップS101)。状態観測部11は、予め定められた複数の目標画像群の中から1つの目標画像群を選択する(ステップS102)。
第1の学習部105は、選択された目標画像群に対する画像変換パラメータを設定する(ステップS103)。第1の学習部105は、画像変換部102に、設定した画像変換パラメータを用いてセンサ画像を画像変換させる(ステップS104)。
第1の学習部105の状態観測部11は、状態変数である、画像変換パラメータと、目標画像群と、変換後画像および目標画像群の特徴の類似度とを取得する(ステップS105)。状態観測部11は、取得した状態変数を機械学習部12に出力する。機械学習部12の報酬計算部121は、類似度が閾値よりも高いか否かを判断する(ステップS106)。
類似度が閾値よりも高い場合(ステップS106:Yes)、報酬計算部121は、報酬rを増大させる(ステップS107)。類似度が閾値よりも低い場合(ステップS106:No)、報酬計算部121は、報酬rを減少させる(ステップS108)。報酬計算部121は、計算した報酬rを関数更新部122に出力する。
関数更新部122は、報酬計算部121が計算した報酬rに従って、行動価値関数Q(st,at)を更新する(ステップS109)。第1の学習部105は、予め定められた学習終了条件を満たすか否かを判断する(ステップS110)。学習終了条件は、画像変換パラメータの学習精度が基準以上となることを判定するための条件であることが望ましい。例えば、学習終了条件は、「ステップS103からステップS109の処理を繰り返した回数が予め定められた回数を超えること」、「同じ目標画像群に対する画像変換パラメータの学習を開始してからの経過時間が予め定められた時間を超えること」などである。
学習終了条件を満たさない場合(ステップS110:No)、第1の学習部105は、ステップS103から処理を繰り返す。学習終了条件を満たした場合(ステップS110:Yes)、第1の学習部105は、目標画像群に対する画像変換パラメータの学習結果を出力する(ステップS111)。
第1の学習部105は、全ての目標画像群に対する学習が終了したか否かを判断する(ステップS112)。全ての目標画像群に対する学習が終了していない場合、つまり、学習が終了していない目標画像群がある場合(ステップS112:No)、第1の学習部105は、ステップS102から処理を繰り返す。全ての目標画像群に対する学習が終了した場合(ステップS112:Yes)、第1の学習部105は、画像変換パラメータ学習処理を終了する。
以上、第1の学習部105が強化学習を利用して機械学習する例について説明したが、第1の学習部105は、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
図5は、図1に示す第1の学習部105がCycleGAN(Generative Adversarial Networks)を用いる場合の動作例を説明するための図である。第2の例では、第1の学習部105は、CycleGANを利用して画像変換パラメータを学習する。CycleGANを用いる場合、第1の学習部105は、図5に示すように、第1生成器Gと、第2生成器Fと、第1識別器DXと、第2識別器DYとを用いて、画像変換パラメータを学習する。
第1の学習部105は、2種類の画像群X,Yの訓練データを用いて、画像群X,Y間の画像変換パラメータを学習する。画像群Xの訓練データに含まれる画像を画像xと称し、画像群Yの訓練データに含まれる画像を画像yと称する。
第1生成器Gは、画像xから画像群Yの特徴を有する画像を生成する。第1生成器Gに画像xを入力したときの出力をG(x)とする。第2生成器Fは、画像yから画像群Xの特徴を有する画像を生成する。第2生成器Fに画像yを入力したときの出力をF(y)とする。第1識別器DXは、xとF(y)とを見分ける。第2識別器DYは、yとG(x)とを見分ける。
第1の学習部105は、2種類の損失に基づいて、第1生成器Gおよび第2生成器Fの画像変換精度が高まり、第1識別器DXおよび第2識別器DYの識別精度が高まるように、学習を行う。具体的には、第1の学習部105は、以下の数式(2)が示す総損失L(G,F,DX,DY)が、以下の数式(3)が示す目的関数を満たすように学習を行う。
数式(2)に含まれる第1損失LGAN(G,DY,X,Y)は、第1生成器Gが画像xから画像群Yの特徴を有する画像G(x)を生成した際に生じる損失である。数式(2)に含まれる第2損失LGAN(F,DX,Y,X)は、第2生成器Fが画像yから画像群Xの特徴を有する画像F(x)を生成した際に生じる損失である。数式(2)に含まれる第3損失Lcyc(G,F)は、画像xを第1生成器Gに入力して画像G(x)を生成し、生成した画像G(x)を第2生成器Fに入力して画像F(G(x))を生成した場合に生じる損失と、画像yを第2生成器Fに入力して画像F(y)を生成し、生成した画像F(y)を第1生成器Gに入力して画像G(F(y))を生成した場合に生じる損失との和である。
つまり、第1の学習部105は、以下の4つの前提に基づいて、総損失総損失L(G,F,DX,DY)が小さくなるように第1生成器Gおよび第2生成器Fの学習を行い、総損失総損失L(G,F,DX,DY)が大きくなるように第1識別器DXおよび第2識別器DYの学習を行う。
1.画像xを第1生成器Gに入力して変換された画像G(x)は、画像群Yと類似するはずである。
2.画像yを第2生成器Fに入力して変換された画像F(y)は画像群Xと類似するはずである。
3.画像G(x)を第2生成器Fに入力して変換された画像F(G(x))は画像群Xと類似するはずである。
4.画像F(y)を第1生成器Gに入力して変換された画像G(F(y))は画像群Yと類似するはずである。
第1の学習部105は、センサ画像群を画像群Xとし、目標画像群を画像群Yとして、上記の学習を行い、センサ画像群から目標画像群を生成する第1生成器Gで用いられる画像変換パラメータを学習し、学習結果を記憶部106に出力する。第1の学習部105は、複数の種類の目標画像群のそれぞれについて、上記の学習を行い、目標画像群ごとに画像変換パラメータを学習する。
図1の説明に戻る。記憶部106は、第1の学習部105の学習結果である、目標画像群毎の画像変換パラメータを記憶する。
画像変換パラメータ決定部107は、後述する評価部108が運用開始前に行った評価結果に基づいて、複数の画像変換パラメータの中から、運用中に画像変換部102が用いる画像変換パラメータを決定する。画像変換パラメータ決定部107は、決定した画像変換パラメータを画像変換部102に通知する。
画像変換パラメータ決定部107は、例えば、評価値Ecが最大の画像変換パラメータを画像変換部102が用いる画像変換パラメータとしてもよいし、評価部108が出力部104に評価結果を出力させて、ユーザが出力された評価結果を確認した上で選択した画像変換パラメータを画像変換部102が用いる画像変換パラメータとしてもよい。例えば、学習時に用いたセンサ画像と実際に得られるセンサ画像の光の加減が、時間帯などの影響で変わることが考えられる場合、出力部104が評価結果に加えて、それぞれの画像変換パラメータを用いた場合の変換後画像を出力することが考えられる。この場合、ユーザは、変換後画像を確認して、光の反射を抑える変換が可能な画像変換パラメータを選択することができる。このとき、出力部104は、評価値が閾値以上である画像変換パラメータの評価値と、変換後画像とを出力し、評価値が閾値未満の画像変換パラメータを出力しなくてもよい。
評価部108は、運用開始前に、複数の画像変換パラメータのそれぞれを用いた場合の認識部103の認識結果に基づいて、複数の画像変換パラメータのそれぞれを評価する。具体的には、評価部108は、評価値Ecを算出し、算出した評価値Ecである評価結果を画像変換パラメータ決定部107および出力部104のそれぞれに出力する。評価部108が算出する評価値Ecは、例えば以下の数式(4)で表される。
ここで、prは認識精度を示し、trは認識処理時間を示し、wpr,wtrは重み係数を示す。つまり、評価値Ecは、認識精度prに重み係数wprを乗算した値と、認識処理時間trの逆数に重み係数wtrを乗算した値との和である。
一般的に、認識精度prと認識処理時間trとはトレードオフの関係にある。このため、ユーザが何を重視するかによって、重み係数wpr,wtrの値を決定すればよい。例えば、認識精度が多少低下しても認識処理の速度を重視したい場合、重み係数wprの値を小さくし、重み係数wtrの値を大きくすればよい。逆に、時間がかかっても認識精度を重視する場合、重み係数wprの値を大きくし、重み係数wtrの値を小さくすればよい。
認識精度prは、センサ画像中の対象物体を認識することができた度合い、または、対象物体の状態の誤差、具体的には位置姿勢の誤差である。例えば、認識精度prがセンサ画像中の対象物体を認識することができた度合いである場合、認識精度prは、以下の数式(5)で表される。
ここで、nrは認識できた対象物体の個数を示し、Nwはセンサ画像中の対象物体の数を示す。つまり、数式(5)で表される認識精度prは、認識できた対象物体の個数nrを、センサ画像中の対象物体の数Nwで除算した値である。センサ画像中の対象物体の位置姿勢と、認識した位置姿勢との誤差が閾値以内の場合、認識が成功したと判断してもよいし、ユーザが目視で認識が成功したか否かを判断してもよい。
また、対象物体の状態の誤差を認識精度prとする場合、認識精度prは、以下の数式(6)で表される。
ここで、xwは対象物体の実際の位置姿勢を示し、xrは認識された位置姿勢を示す。つまり、数式(6)で表される認識精度prは、対象物体の実際の位置姿勢xwと認識された位置姿勢xrとの差の絶対値に1を加算した値の逆数である。対象物体の実際の位置姿勢および認識された位置姿勢は、画像空間内の位置姿勢であってもよいし、実空間内での位置姿勢であってもよい。
また、認識精度prは、上記の例に限定されない。上記の例を組み合わせてもよい。
また、上記の数式(4)で表した例に限らず、評価値Ecは、以下の数式(7)を用いて算出されてもよい。
ここで、Trは認識処理時間閾値を示す。つまり、数式(7)を用いる場合、認識処理時間閾値Tr以内に認識処理が完了する場合、評価値Ecは、認識精度prに重み係数wprを乗算した値であり、認識処理時間閾値Tr以内に認識処理が完了しない場合、評価値Ecは0である。認識処理時間閾値Tr以内に認識処理が完了しない画像変換パラメータの評価値Ecを0とすることで、ユーザが要求する時間内に認識処理を完了することが可能な画像変換パラメータを確認および選択することが可能になる。評価値Ecの算出方法は、上記に限定されない。
入力受付部109は、評価部108が画像変換パラメータを評価するために用いるパラメータである評価パラメータの入力を受け付ける。入力受付部109は、ユーザが入力装置などを用いて入力する評価パラメータを受け付けてもよいし、物体認識装置10内の機能部から評価パラメータを受け付けてもよいし、物体認識装置10の外部装置から評価パラメータを受け付けてもよい。入力受付部109が受け付ける評価パラメータは、例えば、数式(4)に含まれる重み係数wpr,wtrなど、評価値の大きさに影響を与える複数の要素のそれぞれが、評価値に与える影響を変更するための重み係数である。
図6は、図1に示す物体認識装置10が運用開始前に行う処理について説明するためのフローチャートである。物体認識装置10の第1の学習部105は、画像変換パラメータ学習処理を行う(ステップS121)。ステップS121に示す画像変換パラメータ学習処理は、図4を用いて説明した処理または図5を用いて説明した処理であるため、ここでは詳細な説明を省略する。
続いて入力受付部109は、評価パラメータを取得して、取得した評価パラメータを評価部108に出力する(ステップS122)。
画像取得部101は、センサ画像を取得し、取得したセンサ画像を画像変換部102に出力する(ステップS123)。画像変換部102は、記憶部106に記憶された複数の学習済みの画像変換パラメータの中から、未だ評価値の算出が済んでいない画像変換パラメータを1つ選択する(ステップS124)。
画像変換部102は、選択した画像変換パラメータを用いて、画像取得部101が取得したセンサ画像を変換後画像に変換する画像変換処理を行う(ステップS125)。画像変換部102は、変換後画像を認識部103に出力する。
認識部103は、変換後画像を用いて、認識処理を行い、認識結果を評価部108に出力する(ステップS126)。なお、認識結果を出力する場合、認識部103は、認識結果を出力部104に出力してもよい。
評価部108は、認識結果に基づいて、評価値Ecを算出し、算出した評価値Ecを画像変換パラメータ決定部107に出力する(ステップS127)。
画像変換部102は、全ての画像変換パラメータの評価値Ecを算出したか否かを判断する(ステップS128)。全ての画像変換パラメータの評価値Ecを算出していない場合(ステップS128:No)、つまり、評価値Ecを算出していない画像変換パラメータがある場合、画像変換部102は、ステップS124から処理を繰り返す。全ての画像変換パラメータの評価値Ecを算出した場合(ステップS128:Yes)、画像変換パラメータ決定部107は、複数の画像変換パラメータの中から、評価部108の評価結果である評価値に基づいて、運用中に画像変換部102が用いる画像変換パラメータを決定する(ステップS129)。
図7は、図1に示す物体認識装置10の運用中の動作を説明するためのフローチャートである。運用前に、図6に示した動作が行われており、目標画像群毎に、画像変換パラメータが学習済みであり、学習済みの画像変換パラメータの中から、画像変換部102が用いる画像変換パラメータが選択済みであることとする。
画像取得部101は、センサ画像を取得し、取得したセンサ画像を画像変換部102に出力する(ステップS131)。画像変換部102は、選択された画像変換パラメータを取得する(ステップS132)。画像変換部102は、取得した画像変換パラメータを用いて、センサ画像を変換後画像に変換する画像変換処理を行い、変換後画像を認識部103に出力する(ステップS133)。
認識部103は、変換後画像を用いて、変換後画像中に含まれる対象物体の状態を認識する認識処理を行い、認識結果を出力部104に出力する(ステップS134)。
出力部104は、認識結果に基づいて、対象物体が存在するか否かを判断する(ステップS135)。対象物体が存在する場合(ステップS135:Yes)、出力部104は、認識結果を出力する(ステップS136)。認識結果を出力した後、画像取得部101は、ステップS131から処理を繰り返す。対象物体が存在しない場合(ステップS135:No)、物体認識装置10は処理を終了する。
なお、上記では、画像変換部102は、センサ画像を1段階の画像変換処理で変換後画像に変換することとしたが、本実施の形態はかかる例に限定されない。例えば、画像変換部102は、複数の段階の画像変換を行って、センサ画像を変換後画像に変換してもよい。例えば、2段階の画像変換が行われる場合、画像変換部102は、センサ画像を第1の中間画像に変換し、第1の中間画像を変換画像に変換する。3段階の画像変換が行われる場合、画像変換部102は、センサ画像を第1の中間画像に変換し、第1の中間画像を第2の中間画像に変換し、第2の中間画像を変換後画像に変換する。
なお、画像変換部102が複数の段階の画像変換を行う場合、第1の学習部105は、画像変換の段階ごとに用いられる複数の種類の画像変換パラメータのそれぞれを学習する。具体的には、第1の学習部105は、センサ画像を中間画像に変換するための第1の画像変換パラメータと、中間画像を変換後画像に変換するための第2の画像変換パラメータとを学習する。また、3段階以上の画像変換が行われる場合、第1の学習部105は、中間画像を中間画像に変換するための第3の画像変換パラメータを学習する。例えば、2段階の画像変換が行われる場合、第1の学習部105は、センサ画像を第1の中間画像に変換するための第1の画像変換パラメータと、第1の中間画像を変換後画像に変換するための第2の画像変換パラメータとを学習する。また、3段階の画像変換が行われる場合、第1の学習部105は、センサ画像を第1の中間画像に変換するための第1の画像変換パラメータと、第1の中間画像を第2の中間画像に変換するための第3の画像変換パラメータと、第2の中間画像を変換後画像に変換するための第2の画像変換パラメータとを学習する。
中間画像は、センサ画像とも変換後画像とも異なる画像である。例えば、変換後画像がノイズ、抜けなどがなくCG(Computer Graphic)を用いて生成した距離画像である場合、中間画像を、ノイズ、計測誤差、センサの死角になる部分の抜けなどをシミュレーションして再現した再現画像とすることができる。この場合、第1の学習部105は、センサ画像を再現画像である中間画像に変換するための第1の画像変換パラメータと、中間画像を距離画像である変換後画像に変換するための第2の画像変換パラメータとを学習する。画像変換を段階的に行うことで、学習の収束性を向上させることが可能になり、認識性能を向上させることができる。
また、変換後画像を複数の種類の成分画像に分けて、センサ画像を複数の成分画像に変換した後に合成することで、変換後画像を得てもよい。この場合、第1の学習部105は、センサ画像をそれぞれの成分画像に変換するための複数の種類の画像変換パラメータを学習する。例えば、1つのセンサ画像から、変換後画像のテクスチャ成分の特徴を有する成分画像であるテクスチャ画像と、変換後画像の大域的な色成分の特徴を有する成分画像である色画像とを生成し、テクスチャ画像と色画像とを合成して変換後画像を得る場合が考えられる。この場合、第1の学習部105は、センサ画像をテクスチャ画像に変換するための画像変換パラメータと、センサ画像を色画像に変換するための画像変換パラメータとを学習する。なお、上記では2つの成分画像を用いる例を示したが、3つ以上の成分画像を用いて、変換後画像を得ることもできる。成分画像ごとに画像変換パラメータを学習することで、解くべき問題が容易化するため、学習の収束性が向上し、認識性能を向上させることができる。複数の成分画像を合成して変換後画像を得ることで、1種類の画像変換パラメータを用いてセンサ画像から変換後画像を得る場合よりも、目標画像群により近い特徴を有する変換後画像を得ることが可能になる。
物体の認識を行う場合、異なる複数の種類の画像処理を行うことが一般的である。実行する画像処理の内容によって、所望の結果を得やすい画像と、そうでない画像とが存在する。例えば、エッジ検出処理においては、エッジを抽出したい対象物の境界付近の輝度値がステップ状に変化している場合にはエッジを抽出しやすく、境界付近の輝度値が滑らかに変化している場合にはエッジを抽出しづらい。このように、実行する画像処理によってその画像が有するべき特徴、性質などがある。そこで、認識に用いる画像を1度だけ変換するのではなく、認識過程の各画像処理が容易になるような画像変換を、各画像処理の前処理として都度実行することもできる。この場合、第1の学習部105は、前処理を実行したい画像処理の数だけ画像変換パラメータを学習すればよく、各画像処理を実行した場合に得られる理想的な処理結果画像群を目標画像群とすることができる。
以上説明したように、本実施の形態にかかる物体認識装置10によれば、認識処理結果に基づいて画像変換パラメータを評価し、評価結果を得ることができる。このため画像変換パラメータが認識処理に及ぼす影響を確認することができる。したがって、認識処理を実行するときの環境に合わせた画像変換パラメータを選択することが可能になり、認識処理を実行するときの環境が変化する場合であっても、認識性能を向上させることが可能となる。
また、画像変換パラメータは、センサ画像を予め定められた特徴を有する画像に画像変換するためのパラメータである。物体認識装置10は、画像変換パラメータを予め定められた特徴ごとに学習する第1の学習部105を有し、画像変換部102は、第1の学習部105の学習結果である画像変換パラメータを用いてセンサ画像を画像変換する。このような構成を有することにより、出力部104は、予め定められた特徴ごとの学習結果である画像変換パラメータの評価結果を得ることができるようになる。したがって、どのような特徴を有する画像に画像変換すれば認識性能を向上させることができるようになるかを把握することが可能になる。
また本実施の形態では、画像変換部102は、複数の段階の画像変換を行ってセンサ画像を変換後画像に変換し、第1の学習部105は、画像変換の段階ごとに用いられる複数の種類の画像変換パラメータのそれぞれを学習する。画像変換を段階的に行うことで、学習の収束性を向上させることが可能になり、認識性能を向上させることができる。
また、本実施の形態では、画像変換部102は、センサ画像を複数の成分画像に変換した後、複数の成分画像を合成して変換後画像を取得することができる。この場合、第1の学習部105は、センサ画像を複数の成分画像のそれぞれに変換するための複数の種類の画像変換パラメータを学習する。このような構成を有することで、物体認識装置10は、1種類の画像変換パラメータを用いてセンサ画像から変換後画像を得る場合よりも、目標画像群により近い特徴を有する変換後画像を得ることが可能になる。
また、物体認識装置10は、複数の画像変換パラメータのそれぞれを用いた場合の評価部108の評価結果に基づいて、画像変換部102が用いる画像変換パラメータを決定する画像変換パラメータ決定部107を有する。このような構成を有することで、ユーザが評価結果を見て手動で画像変換パラメータを選択しなくても、自動的に、認識性能を向上させることが可能な画像変換パラメータを選択することが可能になる。
物体認識装置10は、評価部108が画像変換パラメータを評価するために用いるパラメータである評価パラメータの入力を受け付ける入力受付部109を有する。評価部108は、入力受付部109が受け付けた評価パラメータを用いて画像変換パラメータを評価する。評価パラメータは、例えば、評価値の大きさに影響を与える複数の要素のそれぞれが、評価値に与える影響を変更するための重み係数である。このような構成を有することで、ユーザは、使用用途に合わせて評価パラメータを入力することで、ユーザの使用用途に適した画像変換パラメータの評価値を得ることが可能になる。
物体認識装置10の認識部103が出力する認識結果は、認識部103の認識処理時間および認識部103が認識した対象物体の個数の少なくともいずれかを含む。このような構成を有することで、評価部108は、認識部103の認識処理時間および認識部103が認識した対象物体の個数の少なくともいずれかに基づいて、画像変換パラメータの評価値を算出することになる。認識部103が認識した対象物体の個数nrと、実際の対象物体の個数Nrとを用いることで、認識精度prを算出することができる。したがって、物体認識装置10は、認識処理時間、認識精度prなどを考慮して画像変換パラメータを評価することが可能になる。
実施の形態2.
図8は、実施の形態2にかかる物体認識装置20の機能構成を示す図である。物体認識装置20は、画像取得部101と、画像変換部120と、認識部103と、出力部104と、第1の学習部105と、記憶部106と、画像変換パラメータ決定部107と、評価部108と、入力受付部109と、ロボット110とを有する。物体認識装置20は、ロボット110を備え、対象物体をピッキングする機能を有するため、対象物取り出し装置と称することもできる。物体認識装置20は、ロボット110を備えるため、ロボット110の動作結果に基づいて、画像変換パラメータの評価を行うことができる。
物体認識装置20は、実施の形態1にかかる物体認識装置10の機能構成に加えて、ロボット110を有する。以下、実施の形態1と同様の機能構成については、実施の形態1と同じ符号を用いて詳細な説明を省略し、実施の形態1と異なる部分について主に説明する。
出力部104は、認識部103の認識結果をロボット110に出力する。ロボット110は、出力部104が出力する認識結果に基づいて対象物体を把持する。ロボット110は、対象物体を把持する動作の動作結果を評価部108に出力する。評価部108は、認識部103の認識結果に加えて、ロボット110の動作結果に基づいて、画像変換パラメータを評価する。ここでロボット110の動作結果には、ロボット110が対象物体の把持に成功した確率と、把持動作時間と、把持失敗原因とのうち少なくとも1つを含む。
ロボット110は、対象物体を把持してタスクを実行するために必要な物体操作を行ったりすることができるツールを有する。例えば、タスクが複数のコンベア間の対象物体の搬送であり、対象物体の表面が凹凸のない滑らかな面である場合、ツールとして吸着パッドを用いることができる。また、ツールは、2つの爪によって対象物体を挟んで把持するグリッパハンドであってもよい。
ロボット110が対象物体の把持に成功したと判定するための条件は、例えばツールがグリッパハンドである場合、対象物体に対してグリッパハンドを差し込んでグリッパハンドを閉じたときの開き幅が、予め定められた範囲内であることとすることができる。或いは、ツールがグリッパハンドであり、ロボット110が対象物体を把持した後、把持した対象物体を搬送する場合、ロボット110が対象物体の把持に成功したと判定するための条件は、搬送先で対象物体からグリッパハンドを開放する直前に対象物体を保持できていることとしてもよい。ロボット110が対象物体の把持に成功したと判定するための条件は、上記の例に限定されず、ロボット110が有するツールの種類、ロボット110に行わせる作業内容などによって適宜定義することができる。
上記において、対象物体を保持できているか否かに基づいて、ロボット110が対象物体の把持に成功したと判定するための条件を定める例を説明した。対象物体を保持できているか否かは、例えば、使用しているツールが対象物体の保持状態を検知する機能を搭載している場合、検知結果を使用して判定することができる。或いは、カメラなどの外部センサ情報を利用して、対象物体を保持できているか否かを判定してもよい。例えばロボット110が有するツールが電動ハンドである場合、電動ハンドを動作させるときの電流値を測定することで、対象物体を保持できているか否かを判定する機能を有する製品がある。カメラ画像を用いる場合、対象物体を掴んでいないときのツールの画像を予め記憶しておき、把持動作後のツールを撮影した画像との差分をとり、差分に基づいて、対象物体を保持できているか否かを判定する方法がある。
ロボット110の動作結果に把持成功率を含めることで、評価部108は、把持成功率に基づいて、画像変換パラメータを評価するため、画像変換部102は、把持成功率が高くなるような画像変換パラメータを用いることが可能になる。またロボット110の動作結果は、把持動作時間を含むこともできる。把持動作時間は、例えば、ロボット110が有するツールがグリッパハンドであり、ロボット110が把持した対象物体を搬送する場合、グリッパハンドを閉じてから搬送先で開放するまでの時間とすることができる。ロボット110の動作結果に把持動作時間を含めることで、評価部108は、把持動作時間に基づいて、画像変換パラメータを評価するため、画像変換部102は、把持動作が早くなるような画像変換パラメータを用いることが可能になる。
ロボット110の把持失敗原因は、例えば、掴み損ね、搬送中の落下、複数把持などがある。ロボット110の動作結果に把持失敗原因を含めることで、評価部108は、失敗原因に基づいて、画像変換パラメータを評価するため、画像変換部102は、特定の失敗原因を低減することができる画像変換パラメータを用いることが可能になる。例えば、供給前の対象物体を保管する供給箱中で対象物体の把持に失敗したとしても、対象物体は供給箱の中に落下する可能性が高く、把持動作を再度行えばよいため、リスクは低い。これに対して、搬送中に対象物体を落としてしまうと、対象物体が落下して周囲に散乱する可能性があり、元の状態に戻すには、ロボット110の複雑な制御が必要となったり、時間がかかったりするため、リスクは高い。このため、リスクの低い把持失敗原因に対しては評価の重みを小さくし、リスクの高い把持失敗原因に対しては評価の重みを大きくすることで、画像変換部102は、対象物体が周囲に散乱するリスクが少ない画像変換パラメータを用いることが可能になる。
図9は、図8に示す物体認識装置20が運用開始前に行う処理について説明するためのフローチャートである。なお、図9において、物体認識装置10の処理と同様の部分については、図6と同じ符号を付することで詳細な説明を省略する。以下、図6と異なる部分について主に説明する。
ステップS121からステップS126の動作は、図6と同様である。認識処理が行われると、ロボット110は、認識結果に基づいて、ピッキングを行う(ステップS201)。ロボット110は、ピッキングの動作結果を評価部108に出力する。
評価部108は、認識結果に加えて、ロボット110の動作結果に基づいて、評価値を算出する(ステップS202)。具体的には、評価部108は、例えば以下に示す数式(8)を用いて、評価値Ecを算出することができる。
数式(8)において、pgは把持成功率を示し、tgは把持時間を示し、prは認識精度を示し、trは認識処理時間を示し、nf1,f2…は把持失敗原因の種類を示す。また、wpg,wtg,wpr,wtr,wf1,f2…は、重み係数を示す。入力受付部109が受け付ける評価パラメータは、重み係数wpg,wtg,wpr,wtr,wf1,f2…を含む。ただし、上記の評価値Ecの算出方法は一例であり、評価部108が使用する評価値Ecの算出方法は、上記の方法に限定されない。
以下、ステップS128,S129の動作は図6と同様である。つまり、図9に示す処理は、認識処理と評価値を算出する処理との間にピッキング処理が追加で行われる点と、評価値を算出する処理の具体的な内容とが、図6に示す処理と異なる。
図10は、図8に示す物体認識装置20が運用中に行う処理について説明するためのフローチャートである。なお、図10において、物体認識装置10の処理と同様の部分については、図7と同じ符号を付することで詳細な説明を省略する。以下、図7と異なる部分について主に説明する。
物体認識装置10が、認識処理の結果、対象物体が存在すると判断した場合、認識結果を出力するのに対して、物体認識装置20は、認識結果の出力の代わりに、ロボット110が、認識結果に基づいてピッキングを行う(ステップS203)。ロボット110がピッキングを行った後、物体認識装置20は、ステップS131から処理を繰り返す。
なお、上記では、認識部103は、変換後画像に基づいて、対象物体の状態を認識することとしたが、ロボット110を有する物体認識装置20の認識部103は、ロボット110のハンドモデルを用いて、対象物体を把持することができる箇所を探索するサーチベースの手法を用いて、対象物体の状態を認識してもよい。認識結果が対象物体の位置姿勢情報である場合、対象物体の位置姿勢情報を、ロボット110がその対象物体を把持する際のロボット110の位置姿勢情報へ変換できることが望ましい。
以上説明したように、実施の形態2にかかる物体認識装置20は、認識部103の認識結果に基づいて対象物体を把持するロボット110をさらに備える。物体認識装置20の評価部108は、ロボット110の動作結果に基づいて、画像変換パラメータを評価する。このような構成を有することで、物体認識装置20は、把持性能を向上させることができる画像変換パラメータを選択することが可能になり、ロボット110の把持成功率を向上させることが可能になる。
また、ロボット110の動作結果は、ロボット110が対象物体の把持に成功した確率と、把持動作時間と、把持失敗原因とのうち少なくとも1つを含む。ロボット110が対象物体の把持に成功した確率が動作結果に含まれる場合、把持成功率に基づいて画像変換パラメータが評価されるため、把持成功率を向上させることができるような画像変換パラメータを選択することが可能になり、ロボット110の把持成功率を向上させることが可能になる。また、把持動作時間が動作結果に含まれる場合、把持動作時間に基づいて画像変換パラメータが評価されるため、把持動作時間を短縮することが可能になる。把持失敗原因が動作結果に含まれる場合、把持失敗原因に基づいて画像変換パラメータが評価されるため、特定の把持失敗原因を減らすことが可能になる。
実施の形態3.
図11は、実施の形態3にかかる物体認識装置30の機能構成を示す図である。物体認識装置30は、画像取得部101と、画像変換部102と、認識部103と、出力部104と、第1の学習部105と、記憶部106と、画像変換パラメータ決定部107と、評価部108と、入力受付部109と、ロボット110と、シミュレーション部111と、画像変換データセット生成部114と、画像変換データセット選択部115とを有する。シミュレーション部111は、第1生成部112と、第2生成部113とを有する。
物体認識装置30は、実施の形態2にかかる物体認識装置20の構成に加えて、シミュレーション部111と、画像変換データセット生成部114と、画像変換データセット選択部115とを有する。以下、実施の形態2と同様の機能構成については、実施の形態2と同じ符号を用いて詳細な説明を省略し、実施の形態2と異なる部分について主に説明する。
シミュレーション部111は、シミュレーションを用いて、目標画像を作成する。具体的には、シミュレーション部111は、シミュレーション条件に基づいて対象物体の配置状態を示す配置情報を生成する第1生成部112と、配置情報に基づいて対象物体を配置して目標画像を生成する第2生成部113とを有する。
第1生成部112が用いるシミュレーション条件は、例えば、センサ情報と、対象物体情報と、環境情報とを含む。センサ情報は、センサ画像を取得するセンサの焦点距離、画角、絞り値など、その値によって生成した空間内の状態が変化するものを含むことが望ましい。また、センサがステレオ計測を行う場合、センサ情報は、輻輳角、基線長などを含んでもよい。
対象物体情報は、対象物体のCADモデル、対象物体の素材を示す情報などである。対象物体のCADモデルの場合、対象物体情報は、対象物体の有する面それぞれのテクスチャ情報を含んでもよい。対象物体情報は、シミュレーションを用いて、空間内に対象物体を配置したときに、空間内の対象物体の状態が一意に定まる程度の情報を含むことが望ましい。
環境情報は、計測距離、計測深度、対象物体以外の物体の位置姿勢、外乱光の種類および強度などを含むことができる。対象物体以外の物体は、例えば、箱、計測台などである。シミュレーション条件を用いることで、シミュレーション部111は、詳細な条件でシミュレーションを行うことができ、様々な種類の目標画像を生成することができる。
第1生成部112で生成した配置情報は、少なくとも1つの対象物体の配置状態を示す。複数の対象物体を空間内に配置する場合、複数の対象物体は、整列して配置されてもよいし、ばら積み状態であってもよい。ばら積み状態で対象物体を配置する場合、対象物体の簡易モデルを用いたシミュレーションを行った後に、算出された簡易モデル位置に対象物体を再配置することで、処理時間を短縮することができる。
第2生成部113で生成する目標画像は、RGB画像であってもよいし、距離画像であってもよい。RGB画像を用いる場合、対象物体および対象物体以外の物体の色またはテクスチャを設定することが望ましい。
シミュレーション部111は、生成した目標画像を記憶部106に記憶させる。また、シミュレーション部111は、第1生成部112が配置情報を生成する際に使用したシミュレーション条件と、第1生成部112が生成した配置情報とを記憶部106に記憶させてもよい。このとき、シミュレーション部111は、配置情報を、画像変換データセットを構成する目標画像と対応づけて記憶することが望ましい。
画像変換データセット生成部114は、画像取得部101が取得したセンサ画像と、シミュレーション部111が生成した目標画像とを含む画像変換データセットを生成する。画像変換データセット生成部114は、生成した画像変換データセットを、記憶部106に記憶させる。画像変換データセットは、1または複数のセンサ画像と、1または複数の目標画像とを含む。センサ画像および目標画像の画像数に制限はない。画像数が少なすぎる場合、画像変換パラメータの学習が収束しない可能性があり、画像数が多すぎる場合、学習時間が長くなる可能性がある。このため、ユーザの使用用途、センサの設置状況などに合わせて画像数を決定することが好ましい。また、目標画像の画像数と、センサ画像の画像数とは同程度が望ましいが、偏りがあってもよい。
画像変換データセット選択部115は、センサ画像に基づいて、記憶部106に記憶された画像変換データセットの中から、第1の学習部105が学習に用いる画像変換データセットを選択する。具体的には、画像変換データセット選択部115は、センサ画像に基づいて、画像変換データセットを選択する際の基準となる選択評価値Epを算出し、算出した選択評価値Epに基づいて、画像変換データセットを選択する。例えば、画像変換データセット選択部115は、選択評価値Epが、予め定められた閾値以下の画像変換データセットのみを選択することができる。画像変換データセット選択部115は、1または複数の画像変換データセットを選択することができる。
画像変換データセット選択部115は、選択した画像変換データセットを第1の学習部105に出力する。第1の学習部105は、画像変換データセット選択部115が選択した画像変換データセットを用いて、画像変換パラメータを学習する。このため、第1の学習部105は、シミュレーション部111が生成した目標画像を用いて画像変換パラメータを学習することになる。
選択評価値Epは、例えば、以下に示す数式(9)を用いて算出される。
ここで、Itはセンサ画像を示し、IIsは画像変換データセットを構成する目標画像群を示し、Nsは目標画像群に含まれる目標画像の画像数を示す。また、FI(I)は、画像Iからスカラー値を算出するための任意の関数を示す。FI(I)は、例えば、画像の平均値算出関数、エッジ数算出関数などである。
また、画像変換データセットを構成する目標画像群に含まれる各目標画像に対応づけられた配置情報がある場合、画像変換データセット選択部115は、以下の数式(10)を用いて選択評価値Epを算出してもよい。
ここで、lsはセンサ画像を取得するセンサの計測距離を示し、ltは目標画像群を構成する目標画像の計測距離を示し、wI,wlは重み係数を示す。センサの計測距離が厳密に分からない場合にはおおよその距離が用いられてもよい。なお、上記の選択評価値Epの算出方法は一例であり、上記の方法に限定されない。
図12は、図11に示すシミュレーション部111の動作を説明するためのフローチャートである。
シミュレーション部111の第1生成部112は、シミュレーション条件を取得する(ステップS301)。シミュレーション条件は、例えば、シミュレーション部111内に備わる記憶領域から取得される。第1生成部112は、シミュレーション条件に基づいて対象物体の配置状態を示す配置情報を生成する(ステップS302)。第1生成部112は、生成した配置情報をシミュレーション部111の第2生成部113に出力する。
第2生成部113は、第1生成部112が生成した配置情報に基づいて対象物体を配置して目標画像を生成する(ステップS303)。第2生成部113は、生成した目標画像を出力して記憶部106に記憶させる(ステップS304)。
図13は、図11に示す物体認識装置30が運用開始前に行う処理について説明するためのフローチャートである。なお、図13において、物体認識装置10または物体認識装置20の処理と同様の部分については、図6または図9と同じ符号を付することで詳細な説明を省略する。以下、図6または図9と異なる部分について主に説明する。
物体認識装置30のシミュレーション部111は、まず、シミュレーション処理を行う(ステップS311)。ステップS311のシミュレーション処理は、図12のステップS301~ステップS304に示す処理である。
続いて画像変換データセット生成部114は、画像取得部101が取得したセンサ画像と、シミュレーション部111が生成した目標画像とを用いて、画像変換データセットを生成する(ステップS312)。画像変換データセット生成部114は、生成した画像変換データセットを記憶部106に記憶させる。
画像変換データセット選択部115は、記憶部106に記憶された画像変換データセットの中から、第1の学習部105が用いる画像変換データセットを選択する(ステップS313)。画像変換データセット選択部115は、選択した画像変換データセットを第1の学習部105に出力する。
以下、ステップS121~S126、ステップS201,S202、ステップS128,S129の処理は、図6または図9を用いて説明した処理と同様である。ステップS121において、画像変換パラメータ学習処理は、ステップS313において選択された画像変換データセットを用いて実行されることになる。
以上説明したように、実施の形態3にかかる物体認識装置30は、シミュレーションを用いて目標画像を作成し、作成した目標画像を用いて、画像変換パラメータの学習を行う。また、物体認識装置30は、シミュレーションを用いて作成した目標画像と、画像取得部101が取得したセンサ画像とを含む画像変換データセットを生成し、生成した画像変換データセットを用いて、画像変換パラメータの学習を行う。このような構成を有することで、画像変換パラメータを学習するために必要な目標画像および画像変換データセットを容易に生成することが可能になる。また、目標画像は、シミュレーション条件に基づいて生成され、対象物体の配置状態を示す配置情報に基づいて、生成される。このため、シミュレーション条件を調整することで、様々な目標画像を生成することが可能になる。
物体認識装置30は、センサ画像に基づいて、画像変換データセット生成部114が生成した画像変換データセットの中から、第1の学習部105が用いる画像変換データセットを選択する画像変換データセット選択部115を有する。このような構成を有することで、周辺環境に適した画像変換データセットに限定して、画像変換パラメータを学習することが可能になり、学習の効率化を図ることができる。
実施の形態4.
図14は、実施の形態4にかかる物体認識装置40の機能構成を示す図である。物体認識装置40は、画像取得部101と、画像変換部102と、認識部103と、出力部104と、第1の学習部105と、記憶部106と、画像変換パラメータ決定部107と、評価部108と、入力受付部109と、ロボット110と、シミュレーション部111と、画像変換データセット生成部114と、画像変換データセット選択部115と、認識データセット生成部116と、第2の学習部117と、認識パラメータ決定部118とを有する。
物体認識装置40は、実施の形態3にかかる物体認識装置30の構成に加えて、認識データセット生成部116と、第2の学習部117と、認識パラメータ決定部118とを有する。以下、実施の形態3と同様の機能構成については、実施の形態3と同じ符号を用いて詳細な説明を省略し、実施の形態3と異なる部分について主に説明する。
認識データセット生成部116は、認識部103が用いる認識手法に基づいて、認識部103が認識処理を行うときに用いるアノテーションデータを生成し、生成したアノテーションデータと目標画像とを含む認識データセットを生成する。認識データセット生成部116は、生成した認識データセットを記憶部106に記憶させる。アノテーションデータは、認識部103が用いる認識手法によって異なる。例えば、認識手法が、対象物体の画像上の位置と大きさとを出力するニューラルネットワークである場合、アノテーションデータは、対象物体の画像上の位置および大きさである。
第2の学習部117は、認識データセット生成部116が生成した認識データセットに基づいて、認識部103が用いるパラメータである認識パラメータを学習する。第2の学習部117は、例えば、図3に示す第1の学習部105と同様の構成により実現することができる。第2の学習部117は、状態観測部11と、機械学習部12とを含む。機械学習部12は、報酬計算部121と、関数更新部122とを含む。なお、図3に示す例は、強化学習を利用して機械学習を行う例であるが、第2の学習部117は、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。第2の学習部117は、認識パラメータの学習結果を記憶部106に記憶させる。認識パラメータは、例えば、認識手法が、ニューラルネットワークを用いる場合、認識パラメータは、ニューラルネットワークを構成する各ユニット間の重み係数を含む。
認識パラメータ決定部118は、複数の認識パラメータのそれぞれを用いた場合の評価部108の評価結果に基づいて、認識部103が用いる認識パラメータを決定する。認識パラメータ決定部118は、決定した認識パラメータを認識部103に出力する。
認識パラメータ決定部118は、例えば、評価値が最も大きい認識パラメータを、認識部103が用いる認識パラメータとすることができる。また、出力部104が認識パラメータごとに評価部108の評価結果を出力し、入力受付部109が認識パラメータを選択する入力を受け付ける場合、認識パラメータ決定部118は、ユーザが選択した認識パラメータを認識部103に出力することもできる。また、画像変換パラメータによって認識パラメータの評価値は変化すると考えられるため、学習した認識パラメータ1つに対して、画像変換部102で用いる画像変換パラメータを変えて複数の評価値を算出してもよい。この場合、画像変換パラメータ決定部107は、算出された評価値と画像変換パラメータとの組合せに基づいて、画像変換パラメータを決定することができる。
図15は、図14に示す物体認識装置40が運用開始前に行う処理について説明するためのフローチャートである。なお、図15において、物体認識装置30の処理と同様の部分については、図13と同じ符号を付することで詳細な説明を省略する。以下、図13と異なる部分について主に説明する。
物体認識装置40は、ステップS311のシミュレーション処理を行った後、ステップS312,S313,S121の処理と並行して、認識データセットを生成し(ステップS401)、生成した認識データセットを用いて認識パラメータを学習する認識パラメータ学習処理を行う(ステップS402)。
続いて物体認識装置40は、ステップS122,S123の処理の後、画像変換パラメータおよび認識パラメータを選択する(ステップS403)。以下、ステップS125,S126,S201,S202の処理は、物体認識装置30と同様である。
評価値が算出された後、物体認識装置40の画像変換部102は、全ての画像変換パラメータおよび認識パラメータの組合せの評価値を算出したか否かを判断する(ステップS404)。全ての画像変換パラメータおよび認識パラメータの組合せの評価値を算出した場合(ステップS404:Yes)、物体認識装置40は、ステップS129の処理を行い、認識パラメータを決定する(ステップS405)。全ての画像変換パラメータおよび認識パラメータの組合せの評価値を算出していない場合(ステップS404:No)、物体認識装置40は、ステップS403の処理に戻る。
以上説明したように、実施の形態4にかかる物体認識装置40は、認識部103が用いる認識手法に基づいて、認識部103が用いるアノテーションデータを生成し、生成したアノテーションデータと、目標画像とを含む認識データセットを用いて、認識パラメータを学習する。このような構成を有することで、物体認識装置40は、様々なシチュエーションの認識データセットを容易に生成することが可能になる。
また、物体認識装置40は、複数の認識パラメータのそれぞれを用いた場合の評価部108の評価結果に基づいて、認識部103が用いる認識パラメータを決定する。このような構成を有することで、物体認識装置40は、対象物体、周囲環境などに適した認識パラメータを用いて認識処理を行うことができ、認識成功率および把持成功率を向上させることが可能になる。
続いて、実施の形態1~4にかかる物体認識装置10,20,30,40のハードウェア構成について説明する。物体認識装置10,20,30,40の各構成要素は、処理回路により実現される。これらの処理回路は、専用のハードウェアにより実現されてもよいし、CPU(Central Processing Unit)を用いた制御回路であってもよい。
上記の処理回路が、専用のハードウェアにより実現される場合、これらは、図16に示す処理回路90により実現される。図16は、実施の形態1~4にかかる物体認識装置10,20,30,40の機能を実現するための専用のハードウェアを示す図である。処理回路90は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものである。
上記の処理回路が、CPUを用いた制御回路で実現される場合、この制御回路は例えば図17に示す構成の制御回路91である。図17は、実施の形態1~4にかかる物体認識装置10,20,30,40の機能を実現するための制御回路91の構成を示す図である。図17に示すように、制御回路91は、プロセッサ92と、メモリ93とを備える。プロセッサ92は、CPUであり、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)などとも呼ばれる。メモリ93は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disk)などである。
上記の処理回路が制御回路91により実現される場合、プロセッサ92がメモリ93に記憶された、各構成要素の処理に対応するプログラムを読み出して実行することにより実現される。また、メモリ93は、プロセッサ92が実行する各処理における一時メモリとしても使用される。なお、プロセッサ92が実行するコンピュータプログラムは、通信ネットワークを介して提供されてもよいし、記憶媒体に記憶された状態で提供されてもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。