(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023173603
(43)【公開日】2023-12-07
(54)【発明の名称】物体の位置姿勢を認識する方法、システム、及び、コンピュータープログラム
(51)【国際特許分類】
G06T 7/73 20170101AFI20231130BHJP
G06T 7/593 20170101ALI20231130BHJP
G01B 11/00 20060101ALI20231130BHJP
G01B 11/26 20060101ALI20231130BHJP
【FI】
G06T7/73
G06T7/593
G01B11/00 A
G01B11/26 H
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022085963
(22)【出願日】2022-05-26
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】林 正樹
【テーマコード(参考)】
2F065
5L096
【Fターム(参考)】
2F065AA25
2F065AA53
2F065BB05
2F065DD03
2F065DD06
2F065FF01
2F065FF02
2F065FF05
2F065FF07
2F065FF08
2F065FF09
2F065HH05
2F065HH06
2F065HH07
2F065HH11
2F065JJ03
2F065JJ26
2F065MM01
2F065MM06
2F065MM13
2F065MM23
2F065PP04
2F065PP22
2F065QQ21
2F065QQ24
2F065QQ31
5L096AA02
5L096AA06
5L096AA09
5L096BA05
5L096BA18
5L096CA05
5L096CA27
5L096DA02
5L096FA02
5L096FA37
5L096FA66
5L096FA67
5L096FA69
5L096GA51
5L096HA09
5L096HA11
5L096JA09
5L096JA11
5L096KA04
5L096KA15
(57)【要約】 (修正有)
【課題】深度推定器で深度を正しく推定できない場合にも、物体の位置姿勢を正しく認識する方法、システム及びコンピュータプログラムを提供する。
【解決手段】物体の位置姿勢を認識する方法は、カメラを用いて物体の物体画像を生成する工程S301と、物体画像を入力とし物体画像内の推定深度を出力とする深度推定器を用いて、物体の推定深度を求める工程S302と、物体画像から抽出される物体画像特徴量と、物体画像と、の少なくとも一方を入力とし推定深度の使用可否を出力とする識別器を用いて、推定深度の使用可否を決定する工程S304と、推定深度が使用可である場合には、推定深度と物体画像とを用いて物体の位置姿勢を認識する工程S306と、推定深度が使用不可である場合には、深度センサーを用いて物体の測定深度を求め、測定深度を用いて物体の位置姿勢を認識する工程S308と、を含む。
【選択図】
図9
【特許請求の範囲】
【請求項1】
物体の位置姿勢を認識する方法であって、
(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する工程と、
(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める工程と、
(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する工程と、
(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、
(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記深度推定器を用いて前記推定深度を求める処理は、前記深度センサーを用いて前記測定深度を求める処理に比べて低精度かつ高速である、方法。
【請求項3】
請求項1に記載の方法であって、
前記工程(a)~(e)の前に、前記深度推定器の学習を行う第1学習工程と、前記識別器の学習を行う第2学習工程と、を含み、
前記第1学習工程と前記第2学習工程のそれぞれは、前記物体の位置姿勢に応じてロボットによる前記物体のピッキング作業を行いながら学習用データを収集する工程を含む、方法。
【請求項4】
請求項3に記載の方法であって、
前記第1学習工程は、
(1a)前記カメラで前記物体を撮影することによって、第1学習用画像を生成する工程と、
(1b)前記深度センサーを用いて、前記物体の第1学習用測定深度を求める工程と
(1c)前記第1学習用測定深度と前記第1学習用画像とを用いて前記物体の位置姿勢を認識し、前記ロボットによる前記物体のピッキング作業を実行する工程と、
(1d)前記工程(1a)~(1c)を複数回実行することによって、前記第1学習用画像と前記第1学習用測定深度をそれぞれ含む複数の第1学習用データを生成する工程と、
(1e)前記複数の第1学習用データを用いて、前記深度推定器の学習を実行する工程と、
を含む、方法。
【請求項5】
請求項3に記載の方法であって、
前記第2学習工程は、
(2a)前記カメラで前記物体を撮影することによって、第2学習用画像を生成する工程と、
(2b)前記深度推定器を用いて、前記第2学習用画像から第2学習用推定深度を求める工程と、
(2c)前記深度センサーを用いて、前記物体の第2学習用測定深度を求める工程と、
(2d)前記第2学習用測定深度と前記第2学習用画像とを用いて前記物体の位置姿勢を認識し、前記ロボットによる前記物体のピッキング作業を実行する工程と、
(2e)前記第2学習用推定深度と前記第2学習用測定深度との差分に応じて、前記第2学習用推定深度の使用可否を示すラベルを決定する工程と、
(2f)前記識別器が前記物体画像特徴量を入力とするように構成されている場合に、前記第2学習用画像の学習用画像特徴量を抽出する工程と、
(2g)前記工程(2a)~(2f)を複数回実行することによって、前記ラベルと、前記学習用画像特徴量及び前記第2学習用画像の少なくとも一方と、をそれぞれ含む複数の第2学習用データを生成する工程と、
(2h)前記複数の第2学習用データを用いて、前記識別器の学習を実行する工程と、
を含む、方法。
【請求項6】
物体の位置姿勢を認識するシステムであって、
前記物体を撮影するカメラと、
前記物体の深度を測定する深度センサーと、
前記物体の位置姿勢の認識処理を実行する認識部と、
を備え、
前記認識部は、
(a)前記カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、
(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、
(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、
(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、
(e)前記推定深度が使用不可である場合には、前記深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、
を実行する、システム。
【請求項7】
物体の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムであって、
(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、
(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、
(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、
(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、
(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、
を前記プロセッサーに実行させる、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、物体の位置姿勢を認識する方法、システム、及び、コンピュータープログラムに関する。
【背景技術】
【0002】
カメラを用いて物体の位置姿勢を認識して、ロボットでピッキング作業を行うロボットシステムが知られている。一般に、物体を認識する際には、通常の画像のみでなく、深度情報を利用する場合が多い。特許文献1には、深層学習による深度推定器を利用して、ステレオ画像や単眼画像から深度を推定する技術が開示されている。この技術では、1枚の撮影画像から深度を高速に取得できる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来技術では、教師画像と大きく異なる画像を深度推定器に入力したときには、深度を正しく推定できないという問題があった。
【課題を解決するための手段】
【0005】
本開示の第1の形態によれば、物体の位置姿勢を認識する方法が提供される。この方法は、(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する工程と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める工程と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する工程と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、を含む。
【0006】
本開示の第2の形態によれば、物体の位置姿勢を認識するシステムが提供される。このシステムは、前記物体を撮影するカメラと、前記物体の深度を測定する深度センサーと、前記物体の位置姿勢の認識処理を実行する認識部と、を備える。前記認識部は、(a)前記カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、(e)前記推定深度が使用不可である場合には、前記深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、を実行する。
【0007】
本開示の第3の形態によれば、物体の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、を前記プロセッサーに実行させる。
【図面の簡単な説明】
【0008】
【
図1】実施形態におけるロボットシステムの構成を示す説明図。
【
図2】実施形態における情報処理装置の機能ブロック図。
【
図6】物体の位置姿勢認識処理の全体手順を示すフローチャート。
【
図7】ステップS100の詳細な処理手順を示すフローチャート。
【
図8A】ステップS200の詳細な処理手順を示すフローチャート。
【
図8B】ステップS200の詳細な処理手順を示すフローチャート。
【
図9】ステップS300の詳細な処理手順を示すフローチャート。
【発明を実施するための形態】
【0009】
図1は、一実施形態におけるロボットシステムの一例を示す説明図である。このロボットシステムは、ロボット100と、ロボット100を制御する制御装置200と、情報処理装置300と、カメラ410と、深度センサー420と、作業台500とを備える。情報処理装置300は、例えばパーソナルコンピューターである。
【0010】
ロボット100は、基台110と、ロボットアーム120と、を備えている。ロボットアーム120の先端部であるアームエンド122には、エンドエフェクターとしてのロボットハンド150が装着されている。ロボットハンド150は、ワークWKを把持することが可能なグリッパーや吸着パッドとして実現可能である。ロボットハンド150の先端部には、ロボット100の制御点としてのTCP(Tool Center Point)が設定されている。なお、制御点TCPは、任意の位置に設定可能である。
【0011】
ロボットアーム120は、6つの関節J1~J6で順次接続されている。これらの関節J1~J6のうち、3つの関節J2,J3,J5は曲げ関節であり、他の3つの関節J1,J4,J6はねじり関節である。本実施形態では6軸ロボットを例示しているが、複数の関節を有する任意のロボットアーム機構を有するロボットを用いることが可能である。また、本実施形態のロボット100は、垂直多関節ロボットであるが、水平多関節ロボットを使用してもよい。
【0012】
作業台500には、第1トレイ510と第2トレイ520が設置されている。第1トレイ510には、複数のワークWKが収容される。第2トレイ520は、第1トレイ510から取り出されたワークWKを載置する場所として使用される。ロボット100は、第1トレイ510からワークWKを取り出して、第2トレイ520に載置する作業を実行する。この際、ワークWKは、第2トレイ520内の予め定められた位置に、予め定められた姿勢で載置される。この作業を正確に行うため、ワークWKの位置姿勢の認識が実行される。ワークWKを「物体」とも呼ぶ。本実施形態では、同一仕様の複数の物体の位置姿勢を認識するが、仕様が異なる複数の物体の位置姿勢を認識する場合も本開示の内容を適用可能である。
【0013】
第1トレイ510の上方には、第1トレイ510内のワークWKの画像を撮影するカメラ410が設置されている。カメラ410で撮影された画像と、深度センサー420で測定された深度は、ワークWKの3次元的な位置及び姿勢を求めるために使用される。ワークWKの3次元的な位置及び姿勢を、以下では「位置姿勢」又は「物体の位置姿勢」と呼ぶ。
【0014】
カメラ410としては、例えば、ステレオカメラや単眼カメラを用いることができる。本実施形態では、カメラ410としてステレオ方式のRGBカメラを用いる。後述するように、カメラ410で撮影された画像から、深度推定器を用いて深度を推定することが可能である。深度センサー420としては、深度推定器を用いて得られる推定深度よりも高精度に深度を測定できるセンサーを用いることが好ましい。このような深度センサー420としては、例えば、位相シフト法や空間コード法などのパターン投影法を利用したセンサーを利用可能である。パターン投影法を用いる場合には、視野内にパターンを投影するためのプロジェクターを有するセンサーが利用される。なお、カメラ410と深度センサー420を一体化したRGBDカメラを用いてもよい。RGBDカメラは、RGB画像を撮影するRGBカメラと、深度画像(Depth image)を撮影するDカメラと、を有するカメラである。
【0015】
図1には、ワールド座標系Σwと、ロボット座標系Σrと、カメラ座標系Σcと、センサー座標系Σsとが示されている。ワールド座標系ΣwのX軸とY軸は水平方向の軸であり、Z軸は鉛直方向の軸である。他の座標系についは、3つの座標軸を区別する符号は省略されている。ロボット座標系Σrは、ロボット100の予め定められた位置を座標原点とする直交座標系である。カメラ座標系Σcは、カメラ410の予め定められた位置を座標原点とする直交座標系である。センサー座標系Σsは、深度センサー420の予め定められた位置を座標原点とする直交座標系である。センサー座標系Σsとカメラ座標系Σcとの相対関係は既知であり、深度センサー420の視野内における深度は、カメラ410で撮影された画像内の画素位置に対応付けられる。また、カメラ410は予め校正されており、座標系Σw,Σr,Σcのそれぞれにおける位置及び姿勢は、座標変換によって互いに変換可能である。
【0016】
図2は、情報処理装置300の機能を示すブロック図である。情報処理装置300は、プロセッサー310と、メモリー320と、インターフェイス回路330と、を有している。インターフェイス回路330には、入力デバイス340と表示デバイス350が接続されており、また、制御装置200とカメラ410と深度センサー420も接続されている。
【0017】
プロセッサー310は、認識部610及びロボット制御実行部620としての機能を有する。認識部610は、カメラ410と深度センサー420を用いて、ワークWKの位置及び姿勢を認識する。認識部610は、深度推定器612と特徴量抽出部614と識別器616と位置姿勢認識部618の機能を含む。深度推定器612は、カメラ410で撮影した画像を入力として、画像内の深度を推定する処理を実行する。特徴量抽出部614は、カメラ410で撮影した画像から、予め定められた画像特徴量を抽出する。識別器616は、深度推定器612で得られた推定深度が、物体の位置姿勢の認識に使用できるか否かを識別する。位置姿勢認識部618は、推定深度又は測定深度と、物体の画像とを用いて、物体の位置姿勢を認識する処理を実行する。ロボット制御実行部620は、認識された物体の位置姿勢を利用して、物体のピッキング作業を実行する。認識部610とロボット制御実行部620の機能は、メモリー320に格納されたコンピュータープログラムをプロセッサー310が実行することによってそれぞれ実現される。但し、認識部610とロボット制御実行部620の機能の一部又は全部をハードウェア回路で実現してもよい。
【0018】
メモリー320には、ワークWKの外形を表すCADデータCDと、ワークWKの位置姿勢の算出に使用するテンプレートTPと、第1学習用データLD1と、第2学習用データLD2と、ロボット制御プログラムRPが格納される。第1学習用データLD1は、深度推定器612の学習に用いられる教師データを含んでいる。第2学習用データLD2は、識別器616の学習に用いられる教師データを含んでいる。ロボット制御プログラムRPは、ロボット100を動作させる複数の命令で構成される。
【0019】
図3は、深度推定器612の機能を示す説明図である。本実施形態のカメラ410はステレオカメラなので、2つの画像M1,M2を含む物体画像IMを作成する。「物体画像IM」とは、1つ以上のワークWKを含む撮像画像を意味する。深度推定器612は、カメラ410で撮影される任意の撮像画像を入力として、その撮像画像内の推定深度De(i,j)を出力する。(i,j)は、推定深度Deの2次元座標を示す。推定深度De(i,j)は、物体画像IMと同じ解像度を有していることが好ましいが、物体画像IMと異なる解像度を有していてもよい。
【0020】
深度推定器612は、機械学習モデルとして構成することができる。深度推定器612としては、例えば、上述した特許文献1に開示された深度推定器を用いてもよく、或いは、特許文献1の従来技術として説明されている非特許文献1(Iro Laina, Christian Rupprecht, Vasileios Belagianis, Federico Tombari, and Nassir Navab, "Deeper Depth Prediction with Fully Convolutional Residual Networks", In Proc. International Conference on 3D Vision (3DV), pp. 239-248, 2016)のFigure 1に開示されたニューラルネットワークを用いてもよい。更に、"End-to-End Learning of Geometry and Context for Deep Stereo Regression" (https://arxiv.org/abs/1703.04309) に記載されたステレオ深度推定を行うニューラルネットワーク構成を用いてもよい。この構成では、左右画像から特徴量を抽出する第1のネットワークと、視差を推定する第2のネットワークを接続して、最後に視差から深度に変換している(https://qiita.com/minh33/items/1cbcba8f40841997938f)。また、https://www.omron.com/jp/ja/technology/omrontechnics/2021/20211119-taniai.htmlni の「学習型のステレオマッチング」に記載されているニューラルネットワークを用いてもよい。
【0021】
図4は、特徴量抽出部614と識別器616の機能を示す説明図である。特徴量抽出部614は、物体画像IMから物体画像特徴量Foを抽出する。物体画像特徴量Foとしては、例えば、物体画像IM内の輝度分布を表す指標を使用できる。輝度分布を表す指標を用いる理由は、外光の影響によって物体画像IMの輝度が大きく変わると、物体画像IMから得られる推定深度の精度が低下することが想定されるからである。本実施形態では、物体画像特徴量Foとして、輝度値ヒストグラムを用いる。1枚のRGB画像から得られる輝度値ヒストグラムは、Nを2以上の整数としたとき、RGB画像の輝度値をN個のビンf
1~f
Nにわけて集計したピクセル数Npを示す。物体画像IMは2枚の画像M1,M2を含んでいるので、物体画像特徴量Foは2N個の特徴量を含んでいる。なお、輝度値ヒストグラム以外の画像特徴量を物体画像特徴量Foとして用いてもよい。例えば、輝度の平均値や分散のような輝度分布を表す他の指標を物体画像特徴量Foとして用いてもよい。また、画像のノイズ量を表す指標を物体画像特徴量Foとして用いてもよい。画像のノイズ量を表す指標としては、例えば、エッジ量や、画像を離散フーリエ変換して得られる複数の周波数成分を用いることが可能である。
【0022】
識別器616は、物体画像特徴量Foと物体画像IMの少なくとも一方を入力として、深度推定器612で得られる推定深度Deの使用可否を示す識別結果DRを出力する。識別器616は、機械学習モデルとして構成することができる。識別器616を構成する機械学習モデルとしては、決定木や、サポートベクターマシン(SVM)、ランダムフォレスト、畳み込みニューラルネットワーク、ロジスティック回帰などの種々の分類モデルを使用可能である。
【0023】
図5は、認識部610の機能を示す説明図である。深度推定器612は、カメラ410で得られた物体画像IM(i,j)から推定深度De(i,j)を生成する。一方、深度センサー420は、深度測定を行うことによって測定深度Ds(i,j)を生成する。深度センサー420は、深度推定器612よりも高精度で深度が得られるものを使用することが好ましい。例えば、位相シフト法や空間コード法などのパターン投影法を利用した深度センサー420は、複数回の撮影を行うので処理に長時間を要するが、高精度に深度を測定できる。一方、深度推定器612は、深度センサー420よりも処理時間が短く、高速に深度が得られるものとすることが好ましい。また、深度推定器612は、ステレオブロックマッチングよりも高精度に深度が得られるものとすることが好ましい。推定深度De(i,j)と測定深度Ds(i,j)は、異なる解像度を有していてもよいが、本実施形態では、物体画像IM(i,j)と同じ解像度を有するものと仮定する。特徴量抽出部614は、物体画像IM(i,j)から物体画像特徴量Foを抽出する。識別器616は、物体画像特徴量Foと物体画像IMの少なくとも一方を入力として、深度推定器612で得られる推定深度De(i,j)の使用可否を示す識別結果DRを出力する。
【0024】
位置姿勢認識部618は、識別結果DRに応じて、推定深度De(i,j)と測定深度Ds(i,j)のいずれかを選択的に使用して、物体の位置姿勢P(x, y, z, u, v, w)を認識する。この認識処理には、物体画像IMも使用される。
図5に描かれているスイッチSWは、位置姿勢認識部618による深度の選択機能を表している。なお、カメラ410の視野内に複数のワークが含まれている場合には、位置姿勢認識部618は、そのうちの少なくとも1つのワークについて、位置姿勢Pを認識することが好ましい。
【0025】
物体の位置姿勢P(x, y, z, u, v, w)は、例えば、ロボット座標系Σrにおける位置(x, y, z)と姿勢(u, v, w)で表現される。姿勢(u, v, w)は、3軸廻りの回転角度で表される。なお、ロボット座標系Σrの代わりに、ワールド座標系Σwなどの他の座標系で物体の位置姿勢を表現するようにしてもよい。物体の位置姿勢Pの算出処理は、例えばテンプレートマッチングを利用して行われる。すなわち、物体のCADデータを用いて、物体の位置姿勢をシミュレーションすることによって、複数の位置姿勢毎にテンプレートTPを予め作成しておく。位置姿勢認識部618は、物体画像IMと推定深度De又は測定深度Dsから点群を算出し、点群に対してテンプレートマッチングを行うことによって物体を検出し、その位置姿勢Pを認識又は推定する。点群とは、3次元座標値で表現される点の集合である。なお、テンプレートマッチングの代わりに、他の方法を用いて物体の位置姿勢Pを認識してもよい。例えば、畳み込みニューラルネットワークなどの機械学習モデルを用いて物体の位置姿勢Pを認識してもよい。
【0026】
図6は、ロボット100のピッキング作業において実行される物体の位置姿勢の認識処理の全体手順を示すフローチャートである。ステップS100では、認識部610が、深度センサー420で測定された測定深度Dsを用いて物体の位置姿勢を認識し、更に、深度推定器612の学習を実行する。ステップS200では、認識部610が、深度センサー420で測定された測定深度Dsと、深度推定器612で得られた推定深度Deをそれぞれ用いて物体の位置姿勢を認識し、更に、識別器616の学習を実行する。ステップS300では、認識部610が、識別器616の識別結果に応じて、深度推定器612で得られた推定深度Deと深度センサー420で測定された測定深度Dsのいずれかを選択的に用いて、物体の位置姿勢を認識する。
【0027】
ステップS100を「第1学習工程」とも呼び、ステップS200を「第2学習工程」とも呼ぶ。第1学習工程と第2学習工程では、ロボット100による物体のピッキング作業を行いながら学習用データを収集することが好ましい。こうすれば、物体のピッキング作業を実際に行いながら深度推定器612と識別器616の学習をそれぞれ実行できる。また、ばら積みされた複数の物体をピッキングする場合には、1つの物体をピッキングすると、次の物体の位置姿勢を認識するための新たなシーンとなる。従って、ばら積みされた複数の物体を1つずつピッキングしながら学習用データを順次収集することができる。また、物体が多いシーンと少ないシーンでは物体の深度が異なるので、異なる深度についての学習用データを作成できるという利点がある。以下では、ステップS100,S200,S300の詳細手順を順に説明する。
【0028】
図7は、ステップS100の詳細な処理手順を示すフローチャートである。ステップS101では、認識部610が、カメラ410を用いて物体を撮影することによって、物体画像IMを生成する。ステップS102では、認識部610が、深度センサー420を用いた測定を行うことによって、測定深度Dsを取得する。ステップS103では、位置姿勢認識部618が、測定深度Dsを用いて物体の位置姿勢を認識する。即ち、位置姿勢認識部618は、測定深度Dsと物体画像IMとを用いて物体の位置姿勢を認識する。ステップS104では、ロボット制御実行部620が、物体の位置姿勢を用いて物体のピッキング作業を実行する。なお、ステップS104は省略してもよい。
【0029】
ステップS105では、認識部610が、第1学習用データLD1が十分に蓄積されたか否かを判断する。第1学習用データLD1は、深度推定器612の学習に用いられる学習データであり、物体画像IMと測定深度Dsとを含んでいる。第1学習用データLD1が十分に蓄積されていない場合には、ステップS106に進み、認識部610が、物体画像IMと測定深度Dsを含むデータセットを第1学習用データLD1としてメモリー320に保存する。その後、ステップS101に戻ってステップS101以降の処理が再度実行される。一方、第1学習用データLD1が十分に蓄積された場合には、ステップS107に進み、認識部610が、第1学習用データLD1を用いて深度推定器612の学習を実行する。なお、
図7に示したステップの実行順序は一例であり、必要に応じて変更してもよい。例えば、深度推定器612の学習は、第1学習用データLD1の新たなデータセットが得られる度に実行するものとしてもよい。この場合にも、複数のデータセットを含む第1学習用データLD1を用いて深度推定器612の学習を実行する点ではステップS107の処理と等価である。ステップS107における学習が終了すると、ステップS100の処理も終了する。なお、ステップS107における学習は、バックグラウンド処理として実行することが好ましい。この場合に、ステップS107は、後述するステップS200と並行して実行してもよい。
【0030】
図8Aと
図8Bは、ステップS200の詳細な処理手順を示すフローチャートである。ステップS201~S204は、
図7のステップS101~S104と同じである。即ち、ステップS201では、認識部610が、カメラ410を用いて物体を撮影することによって、物体画像IMを生成する。ステップS202では、認識部610が、深度センサー420を用いた測定を行うことによって、測定深度Dsを取得する。ステップS203では、位置姿勢認識部618が、測定深度Dsを用いて物体の位置姿勢Psを認識する。なお、「位置姿勢Ps」は、測定深度Dsを用いて認識された位置姿勢P(x, y, z, u, v, w)であることを意味している。ステップS204では、ロボット制御実行部620が、物体の位置姿勢Psを用いて物体のピッキング作業を実行する。なお、ステップS204は省略してもよい。
【0031】
ステップS205では、認識部610が、深度推定器612を用いて、物体画像IMから推定深度Deを取得する。ステップS206では、位置姿勢認識部618が、推定深度Deを用いて物体の位置姿勢Peを認識する。なお、「位置姿勢Pe」は、推定深度Deを用いて認識された位置姿勢P(x, y, z, u, v, w)であることを意味している。ステップS207では、特徴量抽出部614が、物体画像IMから物体画像特徴量Foを抽出する。
【0032】
図8BのステップS211では、認識部610が、測定深度Dsと推定深度Deの差が、規定値以下か否かを判定する。測定深度Dsと推定深度Deの差分ΔDは、例えば次式で算出される。
ΔD=Σ|Ds(i,j) - De(i,j)| …(1)
ここで、Σは深度Ds.Deの2次元座標(i,j)の全範囲に亘って加算を行う演算を示している。なお、差分の絶対値を加算した値を用いる代わりに、差分の絶対値を平均した値を差分ΔDとして用いてもよい。或いは、測定深度Dsと推定深度Deのユークリッド距離を、差分ΔDとして用いてもよい。
【0033】
深度の差分ΔDが予め定められた規定値以下の場合には、ステップS212において推定深度Deを使用可と判定して、ステップS214に進む。一方、深度の差分ΔDが規定値を超える場合には、ステップS213において推定深度Deを使用不可と判定して、後述するステップS217に進む。
【0034】
ステップS214では、認識部610が、測定深度Dsを用いて得られた位置姿勢Psと、推定深度Deを用いて得られた位置姿勢Peの差分が、規定値以下か否かを判定する。この規定値は、上述したステップS211で用いられた規定値とは独立に設定される。位置姿勢Ps,Peの差は、例えば、それぞれの位置姿勢Ps,Peを6次元ベクトルと見なして、その距離として算出できる。位置姿勢Ps,Peの差分が予め定められた規定値以下の場合には、ステップS215において推定深度Deを使用可と判定して、ステップS217に進む。一方、位置姿勢Ps,Peの差分が規定値を超える場合には、ステップS216において推定深度Deを使用不可と判定して、ステップS217に進む。これらのステップS211~S216の処理は、深度の差分ΔDと位置姿勢Ps,Peの差分の両方がそれぞれの規定値以下の場合に推定深度Deを使用可と判定し、深度の差分ΔDと位置姿勢Ps,Peの差分の少なくとも一方が規定値を超える場合に推定深度Deを使用不可と判定する処理である。なお、ステップS211~S213の処理と、ステップS214~S216の処理の一方を省略してもよい。但し、深度の誤差を直接的に評価する処理として、少なくともステップS211~S213の処理を実行することが好ましい。認識部610は、ステップS211~S216の処理により、推定深度Deと測定深度Dsとの差分ΔDに応じて、推定深度Deの使用可否を示すラベルを決定する。
【0035】
ステップS217では、認識部610が、第2学習用データLD2が十分に蓄積されたか否かを判断する。第2学習用データLD2は、識別器616の学習に用いられる学習データであり、物体画像IMと物体画像特徴量Foの少なくとも一方と、推定深度Deの使用可否を示すラベルと、を含んでいる。但し、識別器616の入力として物体画像IMをしない場合には、物体画像IMを第2学習用データLD2として保存する必要は無い。識別器616の入力として物体画像特徴量Foをしない場合には、物体画像特徴量Foは不要であり、上述したステップS207も省略可能である。
【0036】
第2学習用データLD2が十分に蓄積されていない場合には、ステップS218に進み、認識部610が、物体画像IMと物体画像特徴量Foの少なくとも一方と、推定深度Deの使用可否を示すラベルと、を含むデータセットを第2学習用データLD2としてメモリー320に保存する。その後、
図8AのステップS201に戻ってステップS201以降の処理が再度実行される。一方、第2学習用データLD2が十分に蓄積された場合には、ステップS219に進み、認識部610が、第2学習用データLD2を用いて識別器616の学習を実行する。なお、
図8A及び
図8Bに示したステップの実行順序は一例であり、必要に応じて変更してもよい。例えば、識別器616の学習は、第2学習用データLD2の新たなデータセットが得られる度に実行するものとしてもよい。この場合にも、複数のデータセットを含む第2学習用データLD2を用いて識別器616の学習を実行する点ではステップS219の処理と等価である。ステップS219における学習が終了すると、ステップS200の処理も終了する。なお、ステップS205~S207,S211~S219は、バックグラウンド処理として実行することが好ましい。
【0037】
図9は、ステップS300の詳細な処理手順を示すフローチャートである。
図9の処理は、
図5で説明した処理と同じである。ステップS301では、認識部610が、カメラ410を用いて物体を撮影することによって、物体画像IMを生成する。ステップS302では、認識部610が、深度推定器612を用いて、物体画像IMから推定深度Deを取得する。ステップS303では、特徴量抽出部614が、物体画像IMから物体画像特徴量Foを抽出する。ステップS304では、認識部610が、識別器616を用いて、物体画像特徴量Foと物体画像IMの少なくとも一方から推定深度Deの使用可否を識別する。
【0038】
推定深度Deが使用可である場合には、ステップS305からステップS306に進み、位置姿勢認識部618が、推定深度Deを用いて物体の位置姿勢を認識する。一方、推定深度Deが使用可である場合には、ステップS305からステップS307に進み、認識部610が、深度センサー420を用いて測定深度Dsを取得する。ステップS308では、位置姿勢認識部618が、測定深度Dsを用いて物体の位置姿勢を認識する。なお、
図5で説明したように、位置姿勢の認識には物体画像IMも使用される。ステップS309では、ロボット制御実行部620が、物体の位置姿勢を用いて物体のピッキング作業を実行する。なお、ステップS302~S304の処理に要する時間は、ステップS307における深度測定に要する時間よりも短いことが好ましい。こうすれば、推定深度Deを用いて位置姿勢の認識処理を効率良く行うことができる。なお、
図9に示したステップの実行順序は一例であり、必要に応じて変更してもよい。
【0039】
以上のように、上記実施形態では、識別器616によって推定深度Deが使用可と識別された場合には、推定深度Deを用いて物体の位置姿勢を認識するので、十分な精度で高速に物体の位置姿勢を認識できる。また、推定深度Deが使用不可と識別された場合には、深度センサー420で測定した測定深度Dsを用いて物体の位置姿勢を認識するので、高精度に位置姿勢を認識できる。なお、本開示の内容は、ロボット以外の装置において物体の位置姿勢を認識する処理にも適用可能である。
【0040】
・他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0041】
(1)本開示の第1の形態によれば、物体の位置姿勢を認識する方法が提供される。この方法は、(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する工程と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める工程と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する工程と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する工程と、を含む。
この方法によれば、深度推定器を用いて得られる推定深度が使用可と識別された場合には、その推定深度を用いて、十分な精度で高速に物体の位置姿勢を認識できる。また、推定深度が使用不可と識別された場合には、深度センサーで測定した測定深度を用いて物体の位置姿勢を認識するので、高精度に位置姿勢を認識できる。
【0042】
(2)上記方法において、前記深度推定器を用いて前記推定深度を求める処理は、前記深度センサーを用いて前記測定深度を求める処理に比べて低精度かつ高速であるものとしてもよい。
この方法によれば、深度推定器と深度センサーの特徴を生かして十分な精度及び速度で物体の位置姿勢を認識できる。
【0043】
(3)上記方法において、前記工程(a)~(e)の前に、前記深度推定器の学習を行う第1学習工程と、前記識別器の学習を行う第2学習工程と、を含み、前記第1学習工程と前記第2学習工程のそれぞれは、前記物体の位置姿勢に応じてロボットによる前記物体のピッキング作業を行いながら学習用データを収集する工程を含むものとしてもよい。
この方法によれば、物体のピッキング作業を実際に行いながら深度推定器と識別器の学習を実行できる。
【0044】
(4)上記方法において、前記第1学習工程は、(1a)前記カメラで前記物体を撮影することによって、第1学習用画像を生成する工程と、(1b)前記深度センサーを用いて、前記物体の第1学習用測定深度を求める工程と(1c)前記第1学習用測定深度と前記第1学習用画像とを用いて前記物体の位置姿勢を認識し、前記ロボットによる前記物体のピッキング作業を実行する工程と、(1d)前記工程(1a)~(1c)を複数回実行することによって、前記第1学習用画像と前記第1学習用測定深度をそれぞれ含む複数の第1学習用データを生成する工程と、(1e)前記複数の第1学習用データを用いて、前記深度推定器の学習を実行する工程と、を含むものとしてもよい。
この方法によれば、物体のピッキング作業を行いながら深度推定器の学習を適切に実行できる。
【0045】
(5)上記方法において、前記第2学習工程は、(2a)前記カメラで前記物体を撮影することによって、第2学習用画像を生成する工程と、(2b)前記深度推定器を用いて、前記第2学習用画像から第2学習用推定深度を求める工程と、(2c)前記深度センサーを用いて、前記物体の第2学習用測定深度を求める工程と、(2d)前記第2学習用測定深度と前記第2学習用画像とを用いて前記物体の位置姿勢を認識し、前記ロボットによる前記物体のピッキング作業を実行する工程と、(2e)前記第2学習用推定深度と前記第2学習用測定深度との差分に応じて、前記第2学習用推定深度の使用可否を示すラベルを決定する工程と、(2f)前記識別器が前記物体画像特徴量を入力とするように構成されている場合に、前記第2学習用画像の学習用画像特徴量を抽出する工程と、(2g)前記工程(2a)~(2f)を複数回実行することによって、前記ラベルと、前記学習用画像特徴量及び前記第2学習用画像の少なくとも一方と、をそれぞれ含む複数の第2学習用データを生成する工程と、(2h)前記複数の第2学習用データを用いて、前記識別器の学習を実行する工程と、
を含むものとしてもよい。
この方法によれば、物体のピッキング作業を行いながら識別器の学習を適切に実行できる。
【0046】
(6)本開示の第2の形態によれば、物体の位置姿勢を認識するシステムが提供される。このシステムは、前記物体を撮影するカメラと、前記物体の深度を測定する深度センサーと、前記物体の位置姿勢の認識処理を実行する認識部と、を備える。前記認識部は、(a)前記カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、(e)前記推定深度が使用不可である場合には、前記深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、を実行する。
【0047】
(7)本開示の第3の形態によれば、物体の位置姿勢を認識する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)カメラを用いて前記物体を撮影することによって、物体画像を生成する処理と、(b)前記物体画像を入力とし前記物体画像内の推定深度を出力とする深度推定器を用いて、前記物体の推定深度を求める処理と、(c)前記物体画像から抽出される物体画像特徴量と、前記物体画像と、のうちの少なくとも一方を入力とし前記推定深度の使用可否を出力とする識別器を用いて、前記推定深度の使用可否を決定する処理と、(d)前記推定深度が使用可である場合には、前記推定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、(e)前記推定深度が使用不可である場合には、深度センサーを用いて前記物体の測定深度を求め、前記測定深度と前記物体画像とを用いて前記物体の位置姿勢を認識する処理と、を前記プロセッサーに実行させる。
【0048】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット制御装置とを備えたロボットシステム、ロボット制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0049】
100…ロボット、110…基台、120…ロボットアーム、122…アームエンド、150…ロボットハンド、200…制御装置、300…情報処理装置、310…プロセッサー、320…メモリー、330…インターフェイス回路、340…入力デバイス、350…表示デバイス、410…カメラ、420…深度センサー、500…作業台、510…第1トレイ、520…第2トレイ、610…認識部、612…深度推定器、614…特徴量抽出部、616…識別器、618…位置姿勢認識部、620…ロボット制御実行部