JP2019105588A - 情報処理装置、システム、情報処理方法及びプログラム - Google Patents
情報処理装置、システム、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2019105588A JP2019105588A JP2017239490A JP2017239490A JP2019105588A JP 2019105588 A JP2019105588 A JP 2019105588A JP 2017239490 A JP2017239490 A JP 2017239490A JP 2017239490 A JP2017239490 A JP 2017239490A JP 2019105588 A JP2019105588 A JP 2019105588A
- Authority
- JP
- Japan
- Prior art keywords
- detection
- image
- candidate
- images
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
Abstract
【課題】視差により対象物の見え方が大きく異なる場合や、対象物に隠れが生じている場合でも、より精度よく三次元位置を計測可能とする情報処理装置を提供する。【解決手段】2つ以上の異なる視点から撮像された複数の画像を入力する入力手段(S1040)と、複数の画像それぞれから検出モデルを用いて対象物の候補位置を検出する検出手段(S1050)と、複数の画像それぞれから検出された対象物の候補位置に基づいて対象物の位置を決定する第1の決定手段(S1060)と、対象物の位置と撮像装置の校正情報とに基づいて対象物の三次元位置を決定する第2の決定手段(S1070)と、を有する。【選択図】図6
Description
本発明は、情報処理装置、システム、情報処理方法及びプログラムに関する。
複数台のカメラで観測した画像間で対応を探索し、三角測量の原理によって距離を推定する距離計測技術が、自動車の自動運転、ロボットビジョン等、周囲の環境を計測し、認識、判断するといった場面で利用されている。
特許文献1では、注目画素の周囲の矩形の輝度が類似している領域を探索することで画像間の対応を探索している。
特許文献1では、注目画素の周囲の矩形の輝度が類似している領域を探索することで画像間の対応を探索している。
しかしながら、特許文献1の方法では、対象物が光を反射する特性を持っている等、視差により見え方が大きく異なるような場合や、障害物により片方又は両方の画像中で対象物に部分的な隠れが生じている場合には対応点探索を精度よく行うことが難しい。したがって、精度よく三次元位置を計測できない。
本発明の情報処理装置は、2つ以上の異なる視点から撮像された複数の画像を入力する入力手段と、前記複数の画像それぞれから検出モデルを用いて対象物の候補位置を検出する検出手段と、前記複数の画像それぞれから検出された対象物の候補位置に基づいて前記対象物の位置を決定する第1の決定手段と、前記対象物の位置と撮像装置の校正情報とに基づいて前記対象物の三次元位置を決定する第2の決定手段と、を有する。
本発明によれば、視差により対象物の見え方が大きく異なる場合や、対象物に隠れが生じている場合でも、より精度よく三次元位置を計測できる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
実施形態1では、ステレオカメラで撮像された画像に対して、深層学習を実現するCNN(Convolutional Neural Netowork)のAuto Encoderの仕組みを利用するCNNの検出モデルを用いてステレオカメラで撮像した左右の画像から対象物の候補位置及び候補領域の検出を行う。そして校正情報に基づく幾何拘束を用いて検出結果を検証し、形状の整合性を検証することで検出位置を決定し、対象物の三次元位置を算出する。校正情報とは焦点距離や主点といったカメラの内部パラメータとステレオカメラ間の相対位置姿勢といった外部パラメータとを示す。また、検出モデルとは、深層学習で学習した対象物を検出するためのモデルである。また、幾何拘束とは、エピポーラ拘束のことであり、画像間の対応する点はエピポーラ線上に存在するという拘束のことである。
本実施形態における対象物はネジであり、算出したネジの三次元位置に基づいてロボットアームを制御することで、自動でネジを外すロボットシステムについて説明する。
実施形態1では、ステレオカメラで撮像された画像に対して、深層学習を実現するCNN(Convolutional Neural Netowork)のAuto Encoderの仕組みを利用するCNNの検出モデルを用いてステレオカメラで撮像した左右の画像から対象物の候補位置及び候補領域の検出を行う。そして校正情報に基づく幾何拘束を用いて検出結果を検証し、形状の整合性を検証することで検出位置を決定し、対象物の三次元位置を算出する。校正情報とは焦点距離や主点といったカメラの内部パラメータとステレオカメラ間の相対位置姿勢といった外部パラメータとを示す。また、検出モデルとは、深層学習で学習した対象物を検出するためのモデルである。また、幾何拘束とは、エピポーラ拘束のことであり、画像間の対応する点はエピポーラ線上に存在するという拘束のことである。
本実施形態における対象物はネジであり、算出したネジの三次元位置に基づいてロボットアームを制御することで、自動でネジを外すロボットシステムについて説明する。
図1は、ロボットシステム1000のシステム構成の一例を示す図である。
ロボットシステム1000は、撮像装置1、ロボットアーム2、エンドエフェクタ3、制御装置4、画像表示装置5、検出モデル学習装置6、情報処理装置100、を備える。
撮像装置1は、エンドエフェクタ3に取り付けられ、対象物を含むシーンを複数視点から撮像する装置である。例えば、撮像装置1は2台のグレースケールカメラから構成され、制御装置4からの撮像トリガーにより撮像を行い、画像入力部101に画像信号を送る。
ロボットアーム2は、制御対象を移動させる装置である。例えばロボットアーム2は、6軸ロボットから構成され、制御装置4により制御値を入力されて動作する。
エンドエフェクタ3は、ロボットアーム2の先端に取り付けられた、対象物を操作する装置である。例えば、エンドエフェクタ3は、ドライバー及び近接センサから構成され、制御装置4にドライバーと対象物との接触状態を入力する。また、エンドエフェクタ3は、制御装置4により制御値を入力されて動作する。
制御装置4は、撮像装置1、ロボットアーム2、エンドエフェクタ3を情報処理装置100の処理に基づいて制御する装置である。
画像表示装置5は、確認画像生成部51及び確認画像表示部52を備える情報処理装置100の処理結果を表示する装置である。確認画像生成部51は、候補位置検出部103及び位置決定部105の処理結果を受け取り、確認用の画像を生成し、確認画像表示部52へ供給する。確認画像表示部52は、確認用の画像を画像表示装置5の表示部等に表示する。
検出モデル学習装置6は、検出モデル保持部102が保持する検出のためのモデルを学習する装置であり、学習用画像入力部61、学習用真値付与部62、検出モデル生成部63を備える。本実施形態では対象物の位置と形状とを出力する検出モデルを生成する。検出モデルとして例えば深層学習を実現するCNN(Convolutional Neural Network)が利用される。
ロボットシステム1000は、撮像装置1、ロボットアーム2、エンドエフェクタ3、制御装置4、画像表示装置5、検出モデル学習装置6、情報処理装置100、を備える。
撮像装置1は、エンドエフェクタ3に取り付けられ、対象物を含むシーンを複数視点から撮像する装置である。例えば、撮像装置1は2台のグレースケールカメラから構成され、制御装置4からの撮像トリガーにより撮像を行い、画像入力部101に画像信号を送る。
ロボットアーム2は、制御対象を移動させる装置である。例えばロボットアーム2は、6軸ロボットから構成され、制御装置4により制御値を入力されて動作する。
エンドエフェクタ3は、ロボットアーム2の先端に取り付けられた、対象物を操作する装置である。例えば、エンドエフェクタ3は、ドライバー及び近接センサから構成され、制御装置4にドライバーと対象物との接触状態を入力する。また、エンドエフェクタ3は、制御装置4により制御値を入力されて動作する。
制御装置4は、撮像装置1、ロボットアーム2、エンドエフェクタ3を情報処理装置100の処理に基づいて制御する装置である。
画像表示装置5は、確認画像生成部51及び確認画像表示部52を備える情報処理装置100の処理結果を表示する装置である。確認画像生成部51は、候補位置検出部103及び位置決定部105の処理結果を受け取り、確認用の画像を生成し、確認画像表示部52へ供給する。確認画像表示部52は、確認用の画像を画像表示装置5の表示部等に表示する。
検出モデル学習装置6は、検出モデル保持部102が保持する検出のためのモデルを学習する装置であり、学習用画像入力部61、学習用真値付与部62、検出モデル生成部63を備える。本実施形態では対象物の位置と形状とを出力する検出モデルを生成する。検出モデルとして例えば深層学習を実現するCNN(Convolutional Neural Network)が利用される。
図2は、情報処理装置100のハードウェア構成の一例を示す図である。CPU11を含む制御部10は、情報処理装置100全体の動作を制御する。CPU11は、ROM12又はHDD14に記憶されたプログラムを読み出して処理を実行することによって情報処理装置100の機能を実現させる。RAM13は、CPU11の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD14は、各種のプログラムやデータを記憶する。表示部I/F15は、表示部18と制御部10とを接続する。入力I/F16は、入力部19と制御部10とを接続する。CPU11は、入力部19を介したユーザからの指示を認識し、認識した指示に応じて表示部18に表示する画面を遷移させる。ネットワークI/F17は、制御部10(情報処理装置100)をネットワークに接続する。ネットワークI/F17は、ネットワーク上の他の装置との間で各種情報を送受信する。なお、表示部18、入力部19等は情報処理装置100の必須の構成要素ではない。
CPU11がROM12又はHDD14に記憶されたプログラムに基づいて処理を実行することによって後述する図3の情報処理装置100、図9、図11のモジュール構成及び後述するフローチャートの情報処理装置100に係る処理が実現される。
画像表示装置5及び検出モデル学習装置6も情報処理装置100と同様のハードウェア構成を有し、各装置のCPUが各装置のROM又はHDDに記憶されたプログラムに基づいて処理を実行することにより後述する図3の各装置のモジュール構成が実現される。また、画像表示装置5及び検出モデル学習装置6の各装置のCPUが各装置のROM又はHDDに記憶されたプログラムに基づいて処理を実行することにより後述するフローチャートの各装置に係る処理が実現される。
CPU11がROM12又はHDD14に記憶されたプログラムに基づいて処理を実行することによって後述する図3の情報処理装置100、図9、図11のモジュール構成及び後述するフローチャートの情報処理装置100に係る処理が実現される。
画像表示装置5及び検出モデル学習装置6も情報処理装置100と同様のハードウェア構成を有し、各装置のCPUが各装置のROM又はHDDに記憶されたプログラムに基づいて処理を実行することにより後述する図3の各装置のモジュール構成が実現される。また、画像表示装置5及び検出モデル学習装置6の各装置のCPUが各装置のROM又はHDDに記憶されたプログラムに基づいて処理を実行することにより後述するフローチャートの各装置に係る処理が実現される。
図3は、ロボットシステム1000を構成する各装置のモジュール構成の一例を示す図である。
情報処理装置100は、モジュール構成として、画像入力部101、検出モデル保持部102、候補位置検出部103、校正情報保持部104、位置決定部105、三次元位置算出部106を備える。
画像入力部101は、外部の撮像装置1が撮像する画像を取得し、候補位置検出部103に供給する。
検出モデル保持部102は、検出モデル学習装置6で生成された検出モデルを保持し、候補位置検出部103に供給する。
候補位置検出部103は、画像入力部101から入力された画像それぞれに対して、検出モデル保持部102が保持する検出モデルを用いて対象物の候補領域を検出し、検出した候補領域から対象物の二次元位置を算出する。候補位置検出部103は、算出した1つ又は複数の候補位置及び候補領域を位置決定部105へ供給する。
校正情報保持部104は、撮像装置1の内部及び外部パラメータを保持し、位置決定部105及び三次元位置算出部106に供給する。内部パラメータはカメラの主点、焦点距離、歪みパラメータのことである。外部パラメータはカメラの相対位置姿勢を示すパラメータである。
位置決定部105は、候補位置検出部103がそれぞれの画像で検出した対象物の二次元位置の候補の中から、校正情報保持部104がもつ校正情報の幾何制約に適合するか検証し、適合する候補を組として選択する。更に、位置決定部105は、候補位置検出部103で検出した対象物の候補領域の形状が対象物の形状と整合しているか検証し、整合していたら候補位置を組として選択し、三次元位置算出部106に供給する。
三次元位置算出部106は、位置決定部105から供給された対象物の二次元位置の組と、校正情報保持部104のもつ校正情報と、を用いて、対象物の三次元位置を三角測量により算出する。
情報処理装置100は、モジュール構成として、画像入力部101、検出モデル保持部102、候補位置検出部103、校正情報保持部104、位置決定部105、三次元位置算出部106を備える。
画像入力部101は、外部の撮像装置1が撮像する画像を取得し、候補位置検出部103に供給する。
検出モデル保持部102は、検出モデル学習装置6で生成された検出モデルを保持し、候補位置検出部103に供給する。
候補位置検出部103は、画像入力部101から入力された画像それぞれに対して、検出モデル保持部102が保持する検出モデルを用いて対象物の候補領域を検出し、検出した候補領域から対象物の二次元位置を算出する。候補位置検出部103は、算出した1つ又は複数の候補位置及び候補領域を位置決定部105へ供給する。
校正情報保持部104は、撮像装置1の内部及び外部パラメータを保持し、位置決定部105及び三次元位置算出部106に供給する。内部パラメータはカメラの主点、焦点距離、歪みパラメータのことである。外部パラメータはカメラの相対位置姿勢を示すパラメータである。
位置決定部105は、候補位置検出部103がそれぞれの画像で検出した対象物の二次元位置の候補の中から、校正情報保持部104がもつ校正情報の幾何制約に適合するか検証し、適合する候補を組として選択する。更に、位置決定部105は、候補位置検出部103で検出した対象物の候補領域の形状が対象物の形状と整合しているか検証し、整合していたら候補位置を組として選択し、三次元位置算出部106に供給する。
三次元位置算出部106は、位置決定部105から供給された対象物の二次元位置の組と、校正情報保持部104のもつ校正情報と、を用いて、対象物の三次元位置を三角測量により算出する。
図4は、検出モデルの生成に係る情報処理の一例を示すフローチャートである。図4に示す検出モデルの生成は、図6に示す情報処理の事前準備として行われる。
S1000では、検出モデル学習装置6は、検出モデル生成部63に検出モデルのネットワークを設定する等、パラメータの初期化処理を行う。本実施形態では、例えばDenoising Auto Encoder(非特許文献1)の仕組みを利用して、対象物が写ったグレースケール画像から対象物の領域画像を生成するネットワークを用いる。
(非特許文献1)Y. Bengio, L. Yao, G. Alain, and P. Vincent, "Generalized Denoising Auto−Encoders as Generative Models," NIPS, 2013.
S1001では、学習用画像入力部61は、学習用に対象物が1つ以上写った画像を複数枚、入力する。ここでの対象物としてはロボットタスクの対象であるネジである。
S1002では、学習用真値付与部62は、入力された画像に対して画像上のユーザによる指定に基づいて真値を与える。真値とは、学習における正解データであり、本実施形態では、深層学習の一種であるCNNに入力する画像において、対象物の領域として学習される領域である。真値の与え方は、例えば、マウス等の指示手段により対象物の画像を表示する画面上で領域を指定して与える。領域の指定は対象物そのものを画面上で塗りつぶすように行ってもよいし、対象物のうち特にロボットによるタスクの対象となる領域(ねじの十字)を塗りつぶしてもよい。又は、対象物を矩形形状や円形状で囲むように指定してもよい。
S1003では、検出モデル生成部63は、学習用画像入力部61に入力された画像とS1002で付与した真値とを用いて、CNNによって学習することで、検出モデルを生成する。図5は、入力画像、真値及びそれらを用いて学習した検出モデルを利用して入力画像から検出した対象物領域(検出結果)の例を示す図である。また、検出モデル学習装置6は、学習時にデータ拡張を行うことで少ない学習用画像でも頑健な検出ができる検出モデルを生成できる。データ拡張として、例えば、入力画像に対して、ガウシアンノイズの付与、ガンマ補正、ブラー付与、オクルージョンの再現等の画像処理適用がある。また、入力画像と真値とのセットでスケール変化、回転、反転等がある。
検出モデル生成部63が生成する検出モデルはステレオ画像両方について共通でもよいし、それぞれに別々でもよい。
S1000では、検出モデル学習装置6は、検出モデル生成部63に検出モデルのネットワークを設定する等、パラメータの初期化処理を行う。本実施形態では、例えばDenoising Auto Encoder(非特許文献1)の仕組みを利用して、対象物が写ったグレースケール画像から対象物の領域画像を生成するネットワークを用いる。
(非特許文献1)Y. Bengio, L. Yao, G. Alain, and P. Vincent, "Generalized Denoising Auto−Encoders as Generative Models," NIPS, 2013.
S1001では、学習用画像入力部61は、学習用に対象物が1つ以上写った画像を複数枚、入力する。ここでの対象物としてはロボットタスクの対象であるネジである。
S1002では、学習用真値付与部62は、入力された画像に対して画像上のユーザによる指定に基づいて真値を与える。真値とは、学習における正解データであり、本実施形態では、深層学習の一種であるCNNに入力する画像において、対象物の領域として学習される領域である。真値の与え方は、例えば、マウス等の指示手段により対象物の画像を表示する画面上で領域を指定して与える。領域の指定は対象物そのものを画面上で塗りつぶすように行ってもよいし、対象物のうち特にロボットによるタスクの対象となる領域(ねじの十字)を塗りつぶしてもよい。又は、対象物を矩形形状や円形状で囲むように指定してもよい。
S1003では、検出モデル生成部63は、学習用画像入力部61に入力された画像とS1002で付与した真値とを用いて、CNNによって学習することで、検出モデルを生成する。図5は、入力画像、真値及びそれらを用いて学習した検出モデルを利用して入力画像から検出した対象物領域(検出結果)の例を示す図である。また、検出モデル学習装置6は、学習時にデータ拡張を行うことで少ない学習用画像でも頑健な検出ができる検出モデルを生成できる。データ拡張として、例えば、入力画像に対して、ガウシアンノイズの付与、ガンマ補正、ブラー付与、オクルージョンの再現等の画像処理適用がある。また、入力画像と真値とのセットでスケール変化、回転、反転等がある。
検出モデル生成部63が生成する検出モデルはステレオ画像両方について共通でもよいし、それぞれに別々でもよい。
図6は、生成された検出モデルを用いた情報処理装置100等の情報処理の一例を示すフローチャートである。
S1010では、情報処理装置100は、各種パラメータ及び検出モデルの設定といった初期化処理を行う。初期化処理では、検出モデル保持部102は、保持する検出モデルを候補位置検出部103に設定する。また、校正情報保持部104は、保持する撮像装置1の校正情報を位置決定部105と三次元位置算出部106とに設定する。更に、校正情報保持部104は、位置決定部105に検証用パラメータを設定する。
撮像装置1の校正情報のうち内部パラメータは、例えばZhangの方法(非特許文献2)により事前に校正しておく。外部パラメータは、例えば三次元形状が既知のパターンを左右のカメラで撮像し、パターンを基準とした各カメラの位置及び姿勢を求め、夫々の位置及び姿勢をステレオカメラの左側カメラを基準とした位置及び姿勢に変換して求められる。これらの事前に校正した校正情報は校正情報保持部104に保持される。校正情報保持部104は、これらのカメラパラメータからカメラ間の基本行列を計算したものを位置決定部105に設定する。
(非特許文献2)Z. Zhang,"A flexible new technique for camera calibration," IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330−1334, 2000.
S1010では、情報処理装置100は、各種パラメータ及び検出モデルの設定といった初期化処理を行う。初期化処理では、検出モデル保持部102は、保持する検出モデルを候補位置検出部103に設定する。また、校正情報保持部104は、保持する撮像装置1の校正情報を位置決定部105と三次元位置算出部106とに設定する。更に、校正情報保持部104は、位置決定部105に検証用パラメータを設定する。
撮像装置1の校正情報のうち内部パラメータは、例えばZhangの方法(非特許文献2)により事前に校正しておく。外部パラメータは、例えば三次元形状が既知のパターンを左右のカメラで撮像し、パターンを基準とした各カメラの位置及び姿勢を求め、夫々の位置及び姿勢をステレオカメラの左側カメラを基準とした位置及び姿勢に変換して求められる。これらの事前に校正した校正情報は校正情報保持部104に保持される。校正情報保持部104は、これらのカメラパラメータからカメラ間の基本行列を計算したものを位置決定部105に設定する。
(非特許文献2)Z. Zhang,"A flexible new technique for camera calibration," IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 22, no. 11, pp. 1330−1334, 2000.
S1020では、制御装置4は、ロボットアーム2を撮像位置姿勢に移動するように制御する。本実施形態では、制御装置4は、ティーチングペンダントによる教示作業により設定した対象物を撮像することができる位置姿勢を撮像位置姿勢として取得する。
S1030では、撮像装置1は、制御装置4から撮像トリガーを受け取り、撮像を行い、撮像した画像信号を画像入力部101に供給する。
S1040では、画像入力部101は、撮像装置1から画像信号を受け取り、候補位置検出部103に供給する。
S1050では、候補位置検出部103は、S1040において供給された画像からS1010で設定された検出モデルを用いて対象物の候補位置を検出する。候補位置検出部103は、検出を、ステレオカメラで撮像された画像それぞれに対して独立して行う。
本実施形態では、S1010で述べたように検出モデルでは入力画像から対象物の領域が抽出される。候補位置検出部103は、抽出した候補領域に対してラベリング処理を施し、それぞれの重み付き重心を計算することで対象物の候補位置として算出する。ここで画像中に存在する対象は1つであっても、複数あってもよい。
S1030では、撮像装置1は、制御装置4から撮像トリガーを受け取り、撮像を行い、撮像した画像信号を画像入力部101に供給する。
S1040では、画像入力部101は、撮像装置1から画像信号を受け取り、候補位置検出部103に供給する。
S1050では、候補位置検出部103は、S1040において供給された画像からS1010で設定された検出モデルを用いて対象物の候補位置を検出する。候補位置検出部103は、検出を、ステレオカメラで撮像された画像それぞれに対して独立して行う。
本実施形態では、S1010で述べたように検出モデルでは入力画像から対象物の領域が抽出される。候補位置検出部103は、抽出した候補領域に対してラベリング処理を施し、それぞれの重み付き重心を計算することで対象物の候補位置として算出する。ここで画像中に存在する対象は1つであっても、複数あってもよい。
S1060では、位置決定部105は、まずS1050において検出された各画像上での候補位置を校正情報保持部104が持つ撮像装置の校正情報から算出される幾何拘束とS1050で検出した候補領域の形状とに基づいて検証する。但し、位置決定部105は、幾何拘束による検証及び候補領域の形状による検証の何れか一方による検証だけを行うようにしてもよい。位置決定部105は、条件を満たしている候補位置の組を選択し、条件を満たしていない場合には候補位置から削除する。
位置決定部105は、幾何拘束に基づく候補位置の検証を、検出した候補位置がエピポーラ拘束を満たしているかどうかで、次の手順で判定する。まず、位置決定部105は、ステレオ画像のうち片方の画像上で検出した候補位置を1つ選択し、S1010で設定した基礎行列を用いてエピポーラ線を計算する。次に、位置決定部105は、もう片方の画像上で検出した候補位置それぞれについてエピポーラ線からの距離を計算し、S1010において予め定めておいた閾値以下であればエピポーラ拘束を満たすと判定する。また、位置決定部105は、更にS1020で設定された撮像位置における撮像装置と対象物のおおまかな距離とに基づいて、視差が予め設定された閾値以下であるものに限定してもよい。対応が複数存在する場合には、位置決定部105は、最もエピポーラ線に近いものを選択してもよい。位置決定部105は、これを左画像上で検出した候補位置全てに対して行う。ここでは、位置決定部105は、左画像を基準にしたが、右画像を基準としてもよい。
位置決定部105は、検出した候補領域の形状に基づく検証を、S1050で検出された対象物の候補領域の形状が、対象物の形状と整合しているかで検証する。位置決定部105は、形状の整合を、検出した候補領域のモーメント(面積等)を計算し、S1010で設定された範囲にあれば整合、範囲外であれば不整合と判定する。
位置決定部105は、幾何拘束による検証と形状による検証とをどちらを先に行ってもよい。位置決定部105は、更に姿勢を検証してもよい。
位置決定部105は、幾何拘束に基づく候補位置の検証を、検出した候補位置がエピポーラ拘束を満たしているかどうかで、次の手順で判定する。まず、位置決定部105は、ステレオ画像のうち片方の画像上で検出した候補位置を1つ選択し、S1010で設定した基礎行列を用いてエピポーラ線を計算する。次に、位置決定部105は、もう片方の画像上で検出した候補位置それぞれについてエピポーラ線からの距離を計算し、S1010において予め定めておいた閾値以下であればエピポーラ拘束を満たすと判定する。また、位置決定部105は、更にS1020で設定された撮像位置における撮像装置と対象物のおおまかな距離とに基づいて、視差が予め設定された閾値以下であるものに限定してもよい。対応が複数存在する場合には、位置決定部105は、最もエピポーラ線に近いものを選択してもよい。位置決定部105は、これを左画像上で検出した候補位置全てに対して行う。ここでは、位置決定部105は、左画像を基準にしたが、右画像を基準としてもよい。
位置決定部105は、検出した候補領域の形状に基づく検証を、S1050で検出された対象物の候補領域の形状が、対象物の形状と整合しているかで検証する。位置決定部105は、形状の整合を、検出した候補領域のモーメント(面積等)を計算し、S1010で設定された範囲にあれば整合、範囲外であれば不整合と判定する。
位置決定部105は、幾何拘束による検証と形状による検証とをどちらを先に行ってもよい。位置決定部105は、更に姿勢を検証してもよい。
S1070では、三次元位置算出部106は、位置決定部105から受け取った各画像における二次元の検出位置の組と、校正情報保持部104の持つ撮像装置の校正情報と、に基づいて三角測量により三次元位置を算出する。
S1080では、画像表示装置5の確認画像生成部51は、S1050で検出された候補位置、候補領域、S1060で決定された位置を画像上に重畳したり、数値を表示したりして可視化する。そして確認画像表示部52は、可視化されたものを表示する。また、確認画像生成部51は、S1070で算出された三次元位置を同様に可視化する。そして、確認画像表示部52は、可視化されたものを画像表示装置5の表示部に表示してもよい。
確認画像は、例えば、グレーの入力画像上に検出された候補領域を赤で描画され、決定された位置を緑の点として描画される。確認画像の描画方法は、検出された候補位置と決定された位置とがわかればよく、この限りではない。
また、ユーザが確認画像を確認してから次の動作にいくようにしてもよいし、異常時には停止できるようにしてもよい。
S1090では、制御装置4は、三次元位置算出部106から目標となる三次元位置を取得し、エンドエフェクタ3がその位置に移動するようにロボットアーム2を制御する。校正の誤差等の影響で移動にずれが生じる場合には、制御装置4は、ロボットアーム2の制御と目標位置の算出とを随時行うビジュアルサーボの手法を用いてもよい。
S1100では、制御装置4は、タスク動作を実行する。タスク動作とは、ロボットアーム2及びエンドエフェクタ3を、事前に設定された動きで制御することである。本実施形態では、制御装置4は、エンドエフェクタ3であるドライバーにより対象物であるネジを外すネジ外し動作を行う。例えば、制御装置4は、エンドエフェクタ3であるドライバーを前進させて、近接センサによりエンドエフェクタ3であるドライバーとネジとの接触を検知した後、ドライバーを回転させながらタスク動作を実行する前の位置姿勢に戻す。
S1110では、制御装置4は、システム終了の判定をする。次の目標となるネジがある場合、制御装置4は、S1020に戻る。全ての目標に対してタスク実行が完了した場合には、制御装置4は、図6のフローチャートの処理を終了する。
S1080では、画像表示装置5の確認画像生成部51は、S1050で検出された候補位置、候補領域、S1060で決定された位置を画像上に重畳したり、数値を表示したりして可視化する。そして確認画像表示部52は、可視化されたものを表示する。また、確認画像生成部51は、S1070で算出された三次元位置を同様に可視化する。そして、確認画像表示部52は、可視化されたものを画像表示装置5の表示部に表示してもよい。
確認画像は、例えば、グレーの入力画像上に検出された候補領域を赤で描画され、決定された位置を緑の点として描画される。確認画像の描画方法は、検出された候補位置と決定された位置とがわかればよく、この限りではない。
また、ユーザが確認画像を確認してから次の動作にいくようにしてもよいし、異常時には停止できるようにしてもよい。
S1090では、制御装置4は、三次元位置算出部106から目標となる三次元位置を取得し、エンドエフェクタ3がその位置に移動するようにロボットアーム2を制御する。校正の誤差等の影響で移動にずれが生じる場合には、制御装置4は、ロボットアーム2の制御と目標位置の算出とを随時行うビジュアルサーボの手法を用いてもよい。
S1100では、制御装置4は、タスク動作を実行する。タスク動作とは、ロボットアーム2及びエンドエフェクタ3を、事前に設定された動きで制御することである。本実施形態では、制御装置4は、エンドエフェクタ3であるドライバーにより対象物であるネジを外すネジ外し動作を行う。例えば、制御装置4は、エンドエフェクタ3であるドライバーを前進させて、近接センサによりエンドエフェクタ3であるドライバーとネジとの接触を検知した後、ドライバーを回転させながらタスク動作を実行する前の位置姿勢に戻す。
S1110では、制御装置4は、システム終了の判定をする。次の目標となるネジがある場合、制御装置4は、S1020に戻る。全ての目標に対してタスク実行が完了した場合には、制御装置4は、図6のフローチャートの処理を終了する。
以上に述べたように、実施形態1では、ステレオ画像それぞれに対して深層学習で学習した検出モデルを用いて対象物の候補位置と候補領域とを検出し、撮像装置間の幾何拘束と検出領域の形状とに基づいて検証することで検出位置を決定して三次元位置を算出した。これにより、対象物の見え方が異なる場合や対処物に隠れが発生している場合にも対象物の三次元位置を高精度に算出できる。
(実施形態1の変形例1)
実施形態1では、S1060の検出形状による検証において、位置決定部105は、検出された候補領域の形状を面積等によって検証した。しかし、検出形状による検証はこれに限定されるものではない。位置決定部105は、候補領域に対してテンプレートマッチングを行って類似度、又は相違度を計算し、閾値によって整合を判定しもよいし、モデルフィッティングを行い、その残差によって判定してもよい。その際、位置決定部105は、候補位置検出部103が出力した候補領域を二値化してから用いてもよい。また、位置決定部105は、周囲長、楕円指標、円形度、二点間最大距離等の特徴の差によって検証してもよい。
実施形態1では、S1060の検出形状による検証において、位置決定部105は、検出された候補領域の形状を面積等によって検証した。しかし、検出形状による検証はこれに限定されるものではない。位置決定部105は、候補領域に対してテンプレートマッチングを行って類似度、又は相違度を計算し、閾値によって整合を判定しもよいし、モデルフィッティングを行い、その残差によって判定してもよい。その際、位置決定部105は、候補位置検出部103が出力した候補領域を二値化してから用いてもよい。また、位置決定部105は、周囲長、楕円指標、円形度、二点間最大距離等の特徴の差によって検証してもよい。
(実施形態1の変形例2)
実施形態1では、候補位置検出部103は、Denoising Auto Encoderの仕組みを利用して、対象物が写ったグレー画像から対象物の候補領域を検出し、候補領域をラベリングしてそれぞれ領域の重み付き重心を計算することで対象物の位置とした。
しかし、候補領域から対象物の位置を特定する方法はこれに限るものではなく、対象物の領域から検出したい位置が特定できればいかなる方法でもよい。例えば、候補位置検出部103は、モデルフィッティングによって算出してもよいし、単純な重心を取得してもよいし、外接矩形の中心をとってもよい。
また、候補位置検出部103が候補領域を検出する検出モデルも、Auto Encoderの仕組みを利用したものに限らず、対象物が写った画像から対象物の候補領域を取得できるものであればいかなる方法でもよい。例えば、候補位置検出部103は、CNNをベースとしたSemantic Image Segmentationの方法である、FCN(非特許文献3)やDeconvolution Network(非特許文献4)を用いて対象物の領域を抽出してもよい。
(非特許文献3)J. Long, E. Shelhamer, T. Darrell, "Fully convolutional networks for semantic segmentation," Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp.3431−3440, 2015.
(非特許文献4)H. Noh, S. Hong, B. Han, "Learning deconvolution network for semantic segmentation," Proceedings of the IEEE International Conference on Computer Vision, pp.1520−1528, 2015.
実施形態1では、候補位置検出部103は、Denoising Auto Encoderの仕組みを利用して、対象物が写ったグレー画像から対象物の候補領域を検出し、候補領域をラベリングしてそれぞれ領域の重み付き重心を計算することで対象物の位置とした。
しかし、候補領域から対象物の位置を特定する方法はこれに限るものではなく、対象物の領域から検出したい位置が特定できればいかなる方法でもよい。例えば、候補位置検出部103は、モデルフィッティングによって算出してもよいし、単純な重心を取得してもよいし、外接矩形の中心をとってもよい。
また、候補位置検出部103が候補領域を検出する検出モデルも、Auto Encoderの仕組みを利用したものに限らず、対象物が写った画像から対象物の候補領域を取得できるものであればいかなる方法でもよい。例えば、候補位置検出部103は、CNNをベースとしたSemantic Image Segmentationの方法である、FCN(非特許文献3)やDeconvolution Network(非特許文献4)を用いて対象物の領域を抽出してもよい。
(非特許文献3)J. Long, E. Shelhamer, T. Darrell, "Fully convolutional networks for semantic segmentation," Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp.3431−3440, 2015.
(非特許文献4)H. Noh, S. Hong, B. Han, "Learning deconvolution network for semantic segmentation," Proceedings of the IEEE International Conference on Computer Vision, pp.1520−1528, 2015.
(実施形態1の変形例3)
実施形態1では、対象物をネジとしたが、これに限るものではなく、部品、金属物等、検出モデルを用いて検出できればいかなるものでもよい。
また、実施形態1のS1100のタスク実行において行うタスクは、ネジ外しに限定するものではなく、S1070で算出された対象物の三次元位置に基づいてロボットが行うものであれば、把持動作でも組み付け動作でもいかなるものでもよい。エンドエフェクタ3も、ドライバーに限定するものではなく、実行するタスクに適したものであれば、ハンド、吸着パッド等の把持手段等、いかなるものでもよい。
実施形態1では、対象物をネジとしたが、これに限るものではなく、部品、金属物等、検出モデルを用いて検出できればいかなるものでもよい。
また、実施形態1のS1100のタスク実行において行うタスクは、ネジ外しに限定するものではなく、S1070で算出された対象物の三次元位置に基づいてロボットが行うものであれば、把持動作でも組み付け動作でもいかなるものでもよい。エンドエフェクタ3も、ドライバーに限定するものではなく、実行するタスクに適したものであれば、ハンド、吸着パッド等の把持手段等、いかなるものでもよい。
(実施形態1の効果)
実施形態1によれば、深層学習で学習した検出モデルを用いて対象物の候補位置を検出し、幾何拘束等に基づいて検証して三次元位置を算出することで、対象物の見え方が異なる場合や隠れが発生している場合にも対象物の三次元位置を高精度に算出できる。
実施形態1によれば、深層学習で学習した検出モデルを用いて対象物の候補位置を検出し、幾何拘束等に基づいて検証して三次元位置を算出することで、対象物の見え方が異なる場合や隠れが発生している場合にも対象物の三次元位置を高精度に算出できる。
<実施形態2>
実施形態2において説明する情報処理装置及びロボットシステムは、実施形態1と同様に、ロボットに取り付けられた複数視点の撮像装置で撮像された画像から対象物を検出し、三次元位置を算出し、対象物をロボットで操作する。実施形態1では、情報処理装置100は、対象物の位置を検出するために対象物の候補領域を検出した。しかし、本実施形態では、情報処理装置100は、候補位置である尤度を出力する検出モデルを用いて対象物を検出し、三次元位置を算出する。
本実施形態におけるロボットシステム1000のモジュール構成は実施形態1(図3)と同一である。実施形態1と異なる点は、候補位置検出部103が、対象物の候補領域を検出するのではなく対象物の候補位置の尤度(対象物がある確率)を出力する点である。また、実施形態1と異なる点は、位置決定部105が、候補領域の形状に基づく候補位置の選択ではなく検出時の尤度に基づく候補位置の選択が行われる点、検出モデル学習装置6で生成する検出モデルが変わる点である。本実施形態における検出モデルは、入力された画像上で対象物の位置である尤度を出力する検出モデルである。例えば、CNNの一例であるAlexNet(非特許文献5)等のクラス分類を行うネットワークが用いられる。候補位置検出部103は、検出位置と検出位置近傍と背景との3クラスに分類する検出モデルを用いて検出位置クラスのである尤度を算出し、ピーク値をとる位置を検出位置とする。
(非特許文献5)ImageNet Classification with Deep Convolutional Neural Networks, Krizhevsky, A., Sutskever, I. and Hinton, G. E. Neural Information Processing Systems (NIPS), 2012.
実施形態2において説明する情報処理装置及びロボットシステムは、実施形態1と同様に、ロボットに取り付けられた複数視点の撮像装置で撮像された画像から対象物を検出し、三次元位置を算出し、対象物をロボットで操作する。実施形態1では、情報処理装置100は、対象物の位置を検出するために対象物の候補領域を検出した。しかし、本実施形態では、情報処理装置100は、候補位置である尤度を出力する検出モデルを用いて対象物を検出し、三次元位置を算出する。
本実施形態におけるロボットシステム1000のモジュール構成は実施形態1(図3)と同一である。実施形態1と異なる点は、候補位置検出部103が、対象物の候補領域を検出するのではなく対象物の候補位置の尤度(対象物がある確率)を出力する点である。また、実施形態1と異なる点は、位置決定部105が、候補領域の形状に基づく候補位置の選択ではなく検出時の尤度に基づく候補位置の選択が行われる点、検出モデル学習装置6で生成する検出モデルが変わる点である。本実施形態における検出モデルは、入力された画像上で対象物の位置である尤度を出力する検出モデルである。例えば、CNNの一例であるAlexNet(非特許文献5)等のクラス分類を行うネットワークが用いられる。候補位置検出部103は、検出位置と検出位置近傍と背景との3クラスに分類する検出モデルを用いて検出位置クラスのである尤度を算出し、ピーク値をとる位置を検出位置とする。
(非特許文献5)ImageNet Classification with Deep Convolutional Neural Networks, Krizhevsky, A., Sutskever, I. and Hinton, G. E. Neural Information Processing Systems (NIPS), 2012.
本実施形態における検出モデル学習装置6のフローチャートの処理及び情報処理装置100等のフローチャートの処理も実施形態1(図4及び図6)と同一である。異なるのは、S1002及びS1003の検出モデルの生成と、S1050における候補位置の検出処理と、S1060における位置決定処理と、の処理内容である。
S1002において付与される学習用真値は、図7に示されるように、対象位置(R11,R12)、対象位置近傍(R21,R22)、背景(R3)の3クラスの分類とする。S1003では、検出モデル生成部63は、実施形態1と同様にCNNによって学習することで、検出モデルを生成する。
S1050では、候補位置検出部103は、対象位置の尤度を出力する検出モデルを用いて対象物の候補位置の尤度マップ(その位置が対象物の候補位置である確率を示す二次元マップ)を生成し、候補位置を検出する。候補位置検出部103は、検出モデルを用いて入力画像に対する対象位置クラスとなる尤度として、図8に示すように入力画像に対する対象位置の尤度を算出する。図8(a)は入力画像の例を示し、図8(b)はそれに対する候補位置を検出した尤度マップの例、図8(c)は図8(b)におけるA−A'の断面尤度を示した図である。候補位置検出部103は、尤度が予め設定した閾値以上となる領域ごとのピーク値P1及びP2をとる位置を対象物の候補位置として検出する。
S1060では、位置決定部105は、まず実施形態1と同様に幾何拘束に基づく候補位置の検証を行い、エピポーラ拘束を満たさない候補位置を削除する。次に、位置決定部105は、検出した尤度に基づいて候補位置を検証し、条件を満たさない候補位置を削除する。位置決定部105は、尤度に基づく検証として、エピポーラ拘束を満たす左右画像で対応する候補位置の尤度の平均値が予め設定した閾値以上であることである場合には条件を満たすと判定する。
尤度に基づいた検証はこの限りではなく、位置決定部105は、左右画像で対応する候補位置の尤度の合計値で判定しても、差が閾値以下であるかどうかで判定してもよい。
S1002において付与される学習用真値は、図7に示されるように、対象位置(R11,R12)、対象位置近傍(R21,R22)、背景(R3)の3クラスの分類とする。S1003では、検出モデル生成部63は、実施形態1と同様にCNNによって学習することで、検出モデルを生成する。
S1050では、候補位置検出部103は、対象位置の尤度を出力する検出モデルを用いて対象物の候補位置の尤度マップ(その位置が対象物の候補位置である確率を示す二次元マップ)を生成し、候補位置を検出する。候補位置検出部103は、検出モデルを用いて入力画像に対する対象位置クラスとなる尤度として、図8に示すように入力画像に対する対象位置の尤度を算出する。図8(a)は入力画像の例を示し、図8(b)はそれに対する候補位置を検出した尤度マップの例、図8(c)は図8(b)におけるA−A'の断面尤度を示した図である。候補位置検出部103は、尤度が予め設定した閾値以上となる領域ごとのピーク値P1及びP2をとる位置を対象物の候補位置として検出する。
S1060では、位置決定部105は、まず実施形態1と同様に幾何拘束に基づく候補位置の検証を行い、エピポーラ拘束を満たさない候補位置を削除する。次に、位置決定部105は、検出した尤度に基づいて候補位置を検証し、条件を満たさない候補位置を削除する。位置決定部105は、尤度に基づく検証として、エピポーラ拘束を満たす左右画像で対応する候補位置の尤度の平均値が予め設定した閾値以上であることである場合には条件を満たすと判定する。
尤度に基づいた検証はこの限りではなく、位置決定部105は、左右画像で対応する候補位置の尤度の合計値で判定しても、差が閾値以下であるかどうかで判定してもよい。
以上に述べたように、実施形態2では、候補位置の尤度を検出する検出モデルを用いて検出した結果を幾何拘束と検出の尤度とに基づいて検証することで検出位置を決定して三次元位置を算出した。これにより、対象物が非剛体で形状が変わるものや様々な種類がある等、見え方が変わるため形状では検証できない対象物に対しても高精度に三次元位置を算出できる。
(実施形態2の変形例)
実施形態2では、候補位置検出部103は、クラス分類のネットワークを用いて候補位置クラスとなる尤度を算出し、尤度が閾値以上のなる領域ごとにピークをとる位置を候補位置として検出した。しかし、候補位置の決定方法はピーク位置に限らず、検出位置の尤度マップから検出位置を決定できれば、尤度が閾値以上になる領域の重心や重み付き重心をとってもよい。
また、検出位置の尤度を出力する検出モデルも、AlexNetに限るものではなく、候補位置の尤度が算出できればいかなるものでもよい。
実施形態2では、候補位置検出部103は、クラス分類のネットワークを用いて候補位置クラスとなる尤度を算出し、尤度が閾値以上のなる領域ごとにピークをとる位置を候補位置として検出した。しかし、候補位置の決定方法はピーク位置に限らず、検出位置の尤度マップから検出位置を決定できれば、尤度が閾値以上になる領域の重心や重み付き重心をとってもよい。
また、検出位置の尤度を出力する検出モデルも、AlexNetに限るものではなく、候補位置の尤度が算出できればいかなるものでもよい。
(実施形態2の効果)
実施形態2によれば、対象物が非剛体で形状が変わるものや、様々な種類がある等見え方が変わるような対象物においても高精度に三次元位置を算出できる。
実施形態2によれば、対象物が非剛体で形状が変わるものや、様々な種類がある等見え方が変わるような対象物においても高精度に三次元位置を算出できる。
<実施形態3>
実施形態1及び実施形態2では、候補位置検出部103は、複数の視点で撮像された画像それぞれに対して画像全体から対象物の候補位置を算出した。実施形態3では、候補位置検出部103は、1つの画像で検出した候補位置に対して他の画像上で幾何拘束を満たす領域のみに限定して検出を行う。本実施形態によれば、画像全体から候補位置検出を行う処理のコストが大きい場合には、処理する領域を限定することで処理コストを削減できる。
実施形態1及び実施形態2では、候補位置検出部103は、複数の視点で撮像された画像それぞれに対して画像全体から対象物の候補位置を算出した。実施形態3では、候補位置検出部103は、1つの画像で検出した候補位置に対して他の画像上で幾何拘束を満たす領域のみに限定して検出を行う。本実施形態によれば、画像全体から候補位置検出を行う処理のコストが大きい場合には、処理する領域を限定することで処理コストを削減できる。
図9は、実施形態3における情報処理装置100のモジュール構成の一例を示す図である。情報処理装置100以外のロボットシステム1000の構成は実施形態1(図3)と同一であるため省略した。情報処理装置100のモジュール構成のうち、実施形態1と異なる部分は、検出範囲設定部307が加わり、候補位置検出部103及び校正情報保持部104と情報のやり取りができる点である。
候補位置検出部103は、画像入力部101から入力された複数の画像のうち1枚の画像(例えば、ステレオカメラのうち片方のカメラで撮像された画像)に対しては、実施形態1と同様に画像全体から検出モデル保持部102が保持する検出モデルを用いて対象物の候補位置を検出し、位置決定部105及び検出範囲設定部307へ供給する。候補位置検出部103は、他の画像(例えば、もう片方のカメラで撮像された画像)に対しては、検出範囲設定部307によって設定された範囲に限定して対象物の二次元位置の候補を1つ又は複数出力し、位置決定部105に供給する。
校正情報保持部104は、撮像装置1の内部及び外部パラメータを保持し、検出範囲設定部307及び三次元位置算出部106に供給する。
検出範囲設定部307は、候補位置検出部103で1つの画像から検出した対象物の候補位置と校正情報保持部104の持つ校正情報とに基づいて、他の画像での検出範囲を幾何拘束により設定し、候補位置検出部103に供給する。
候補位置検出部103は、画像入力部101から入力された複数の画像のうち1枚の画像(例えば、ステレオカメラのうち片方のカメラで撮像された画像)に対しては、実施形態1と同様に画像全体から検出モデル保持部102が保持する検出モデルを用いて対象物の候補位置を検出し、位置決定部105及び検出範囲設定部307へ供給する。候補位置検出部103は、他の画像(例えば、もう片方のカメラで撮像された画像)に対しては、検出範囲設定部307によって設定された範囲に限定して対象物の二次元位置の候補を1つ又は複数出力し、位置決定部105に供給する。
校正情報保持部104は、撮像装置1の内部及び外部パラメータを保持し、検出範囲設定部307及び三次元位置算出部106に供給する。
検出範囲設定部307は、候補位置検出部103で1つの画像から検出した対象物の候補位置と校正情報保持部104の持つ校正情報とに基づいて、他の画像での検出範囲を幾何拘束により設定し、候補位置検出部103に供給する。
図10は、実施形態3の情報処理装置100の情報処理の一例を示すフローチャートである。実施形態1におけるS1030以前及び、S1080以降は、情報処理装置100の外部のロボットシステム1000における処理であるため省略する。また、S1040からS1070までの処理において図6と同様の処理には同一のステップ番号を付して記載してある。
S3041では、候補位置検出部103は、S1040で入力された画像のうち1枚を選択する。
S3042では、候補位置検出部103は、選択した画像が1枚目か否かを判定し、1枚目であればS3043を飛ばしてS3050へ、1枚目でなければS3043へ移行する。
S3043では、検出範囲設定部307は、それまでに候補位置を検出した結果と校正情報保持部104が保持する校正情報とに基づいて、選択画像における検出範囲を設定する。検出範囲設定部307は、検出範囲を、検出した候補位置に対応するステレオカメラに基づくエピポーラ線上とその近傍の範囲として決定する。ここでいう近傍の範囲は、ユーザが入力部19等を介して設定した許容誤差とする。
S3041では、候補位置検出部103は、S1040で入力された画像のうち1枚を選択する。
S3042では、候補位置検出部103は、選択した画像が1枚目か否かを判定し、1枚目であればS3043を飛ばしてS3050へ、1枚目でなければS3043へ移行する。
S3043では、検出範囲設定部307は、それまでに候補位置を検出した結果と校正情報保持部104が保持する校正情報とに基づいて、選択画像における検出範囲を設定する。検出範囲設定部307は、検出範囲を、検出した候補位置に対応するステレオカメラに基づくエピポーラ線上とその近傍の範囲として決定する。ここでいう近傍の範囲は、ユーザが入力部19等を介して設定した許容誤差とする。
S3050では、候補位置検出部103は、選択画像から対象物の候補位置を検出する。その際、候補位置検出部103は、S3043において検出範囲が限定されている場合には、その範囲内のみに検出処理を施し、検出範囲が限定されていない場合には、実施形態1と同様に画像全体から候補位置を検出する。検出範囲が限定さている場合の検出処理としては、例えば、S3043で設定した検出範囲に対応する部分だけを画像から切り出して検出を行うことで実現される。
S3055では、候補位置検出部103は、候補位置検出処理が行われていない画像がないか、即ちステレオ画像のうち処理が行われていない画像がないかを判定する。候補位置検出部103は、ステレオ画像のうち処理が行われていない画像がある場合、S3041に戻り、処理が行われていない画像のうち1枚を選択し、ステレオ画像のうち処理が行われていない画像がない場合、S3060へ移行する。
S3060では、実施形態1におけるS1060の一部である、検出形状に基づく位置決定処理と同様の処理が行われる。
S1070は実施形態1と同様の処理である。
S3055では、候補位置検出部103は、候補位置検出処理が行われていない画像がないか、即ちステレオ画像のうち処理が行われていない画像がないかを判定する。候補位置検出部103は、ステレオ画像のうち処理が行われていない画像がある場合、S3041に戻り、処理が行われていない画像のうち1枚を選択し、ステレオ画像のうち処理が行われていない画像がない場合、S3060へ移行する。
S3060では、実施形態1におけるS1060の一部である、検出形状に基づく位置決定処理と同様の処理が行われる。
S1070は実施形態1と同様の処理である。
以上に述べたように、実施形態3では、複数の入力画像のうちの1つの画像で既に処理を終えた候補位置検出の結果と、校正情報と、に基づいて、他に処理する画像の検出対象範囲を限定して候補位置を検出する。これにより、検出処理を行う画像領域を限定できるため、処理コストを削減できる。
(実施形態3の変形例)
実施形態3では、実施形態1の構成を用いて説明したが、実施形態2の構成で行ってもよい。
実施形態3では、実施形態1の構成を用いて説明したが、実施形態2の構成で行ってもよい。
(実施形態3の効果)
実施形態3によれば、処理コストを削減しつつも対象物の三次元位置を高精度に算出できる。
実施形態3によれば、処理コストを削減しつつも対象物の三次元位置を高精度に算出できる。
<実施形態4>
実施形態1から実施形態3まででは、候補位置検出部103は、入力された画像の元のサイズのまま候補位置の検出を行った。実施形態4では検出用画像生成部408が入力画像を切り出し及び縮小した検出用画像を生成する。そして、候補位置検出部103が生成された検出用画像を用いて粗密に候補位置を検出することで処理コストを削減する。
実施形態1から実施形態3まででは、候補位置検出部103は、入力された画像の元のサイズのまま候補位置の検出を行った。実施形態4では検出用画像生成部408が入力画像を切り出し及び縮小した検出用画像を生成する。そして、候補位置検出部103が生成された検出用画像を用いて粗密に候補位置を検出することで処理コストを削減する。
図11は、実施形態4の情報処理装置100のモジュール構成の一例を示す図である。情報処理装置100のモジュール構成のうち、実施形態1と異なる部分は、検出用画像生成部408が加わり、画像入力部101及び候補位置検出部103と情報のやり取りができる点である。
本実施形態では、画像入力部101は、取得した画像を検出用画像生成部408に供給する。
検出用画像生成部408は、画像入力部101から供給された画像の切り出し及び縮小を行い、候補位置を検出するための画像(検出用画像)を生成する。検出用画像生成部408は、切り出し位置を、予め決められた位置又は候補位置検出部103で検出された結果に基づいて決定する。縮小を行うのは検出用画像のサイズが検出モデル保持部102で保持する検出モデルへの入力に適合するサイズとするためである。検出用画像生成部408は、検出モデルへの入力に適合させるため、縮小ではなく拡大する必要があれば拡大し、検出用画像を生成する。
情報処理装置100は、広範囲から粗く検出するには縮小率を高くして広域の特徴に基づいて検出し、狭い範囲から密に検出するには縮小率を低くして局所的な特徴に基づいて検出する。
候補位置検出部103は、検出用画像生成部408が生成した検出用画像から、検出モデル保持部102が保持する検出モデルを用いて対象物の候補位置を検出する。候補位置検出部103は、最初は入力画像そのままを検出用画像として広範囲から検出し、徐々に縮小率を低くして狭い範囲に絞って検出していく。検出用画像生成部408で切り出す位置は粗い検出を行った結果、見つかった対象物が中心になるようにする。検出用画像の縮小率が高い、疎な検出用である場合には、候補位置検出部103は、検出した結果を検出用画像生成部408に供給し、より密な検出用の画像の生成を依頼する。精度が十分な縮小率での検出が完了した場合には、候補位置検出部103は、そのときの候補位置を位置決定部105に供給する。
検出モデル保持部102の保持する検出モデルを学習する際には、検出用画像生成部408は、図12に示すように使用する縮小率付近のスケールにあった画像をデータ拡張により生成し、学習する。検出用画像生成部408は、縮小率ごとの検出モデルを学習し保持していてもよいし、縮小率に依らない共通の検出モデルを学習し保持してもよい。
本実施形態では、画像入力部101は、取得した画像を検出用画像生成部408に供給する。
検出用画像生成部408は、画像入力部101から供給された画像の切り出し及び縮小を行い、候補位置を検出するための画像(検出用画像)を生成する。検出用画像生成部408は、切り出し位置を、予め決められた位置又は候補位置検出部103で検出された結果に基づいて決定する。縮小を行うのは検出用画像のサイズが検出モデル保持部102で保持する検出モデルへの入力に適合するサイズとするためである。検出用画像生成部408は、検出モデルへの入力に適合させるため、縮小ではなく拡大する必要があれば拡大し、検出用画像を生成する。
情報処理装置100は、広範囲から粗く検出するには縮小率を高くして広域の特徴に基づいて検出し、狭い範囲から密に検出するには縮小率を低くして局所的な特徴に基づいて検出する。
候補位置検出部103は、検出用画像生成部408が生成した検出用画像から、検出モデル保持部102が保持する検出モデルを用いて対象物の候補位置を検出する。候補位置検出部103は、最初は入力画像そのままを検出用画像として広範囲から検出し、徐々に縮小率を低くして狭い範囲に絞って検出していく。検出用画像生成部408で切り出す位置は粗い検出を行った結果、見つかった対象物が中心になるようにする。検出用画像の縮小率が高い、疎な検出用である場合には、候補位置検出部103は、検出した結果を検出用画像生成部408に供給し、より密な検出用の画像の生成を依頼する。精度が十分な縮小率での検出が完了した場合には、候補位置検出部103は、そのときの候補位置を位置決定部105に供給する。
検出モデル保持部102の保持する検出モデルを学習する際には、検出用画像生成部408は、図12に示すように使用する縮小率付近のスケールにあった画像をデータ拡張により生成し、学習する。検出用画像生成部408は、縮小率ごとの検出モデルを学習し保持していてもよいし、縮小率に依らない共通の検出モデルを学習し保持してもよい。
本実施形態における情報処理装置100の情報処理は実施形態1とほぼ同じである。実施形態1と異なる部分は、S1050の候補位置を検出する処理が、粗密な検出に代わることである。また、S1010の初期化処理で検出用画像生成部408と候補位置検出部103とにおいて縮小率を変更するための多段階の検出サイズを設定することである。
S1050における粗密な探索は図13に示すような手順で行われる。
S4051では、検出用画像生成部408は、S1040で入力された画像から検出用画像を生成する際の切り出し位置とサイズとを決定する。検出用画像生成部408は、初回の位置及びサイズとして、S1010で設定済みの値(例えば、入力画像の原点、又は入力画像サイズ)を用いる。また、検出用画像生成部408は、二度目以降ではサイズをS1010で設定した次の段階(一回り小さいサイズ)のサイズとし、切り出し位置を前回検出した候補位置が中心になる位置とする。
S4052では、検出用画像生成部408は、S4051で設定した切り出し位置とサイズとで画像を切り出し、検出モデルに入力する画像サイズに合わせて縮小し、検出用画像を生成する。
S4053では、候補位置検出部103は、S4052で生成された検出用画像から対象物の候補位置を検出する。候補位置検出部103は、検出した位置を、S4052における切り出し及び縮小処理を行う前の元の画像における位置に変換する。
S4054では、検出用画像生成部408は、密な検出が完了したか否かをS4052における画像の縮小率に基づいて判定する。検出用画像生成部408は、縮小率が予め設定した閾値以上であれば十分に高精度な検出が完了したと判定し、S1060に移行し、そうでない場合はS4051に戻る。
S1050における粗密な探索は図13に示すような手順で行われる。
S4051では、検出用画像生成部408は、S1040で入力された画像から検出用画像を生成する際の切り出し位置とサイズとを決定する。検出用画像生成部408は、初回の位置及びサイズとして、S1010で設定済みの値(例えば、入力画像の原点、又は入力画像サイズ)を用いる。また、検出用画像生成部408は、二度目以降ではサイズをS1010で設定した次の段階(一回り小さいサイズ)のサイズとし、切り出し位置を前回検出した候補位置が中心になる位置とする。
S4052では、検出用画像生成部408は、S4051で設定した切り出し位置とサイズとで画像を切り出し、検出モデルに入力する画像サイズに合わせて縮小し、検出用画像を生成する。
S4053では、候補位置検出部103は、S4052で生成された検出用画像から対象物の候補位置を検出する。候補位置検出部103は、検出した位置を、S4052における切り出し及び縮小処理を行う前の元の画像における位置に変換する。
S4054では、検出用画像生成部408は、密な検出が完了したか否かをS4052における画像の縮小率に基づいて判定する。検出用画像生成部408は、縮小率が予め設定した閾値以上であれば十分に高精度な検出が完了したと判定し、S1060に移行し、そうでない場合はS4051に戻る。
以上に述べたように、実施形態4では、入力画像を切り出し及び縮小して粗密に検出することで処理コストを削減できる。
(実施形態4の変形例1)
実施形態4では、情報処理装置100は、S1050の候補位置を検出する処理をサイズの異なる多段階の処理とし、検出処理が完了した後にS1060で幾何拘束・検出形状に基づく位置決定を行った。しかし、情報処理装置100は、多段階の候補位置検出処理ごとに幾何拘束及び検出形状の何れか又は双方に基づく位置決定を行ってもよい。この場合、早い段階で候補を絞り込めるためより低いコストで処理ができる。
(実施形態4の変形例2)
実施形態4では、実施形態1の構成を用いて説明したが、実施形態2やその変形例及び実施形態3で示した構成及び処理で行ってもよい。
実施形態4では、情報処理装置100は、S1050の候補位置を検出する処理をサイズの異なる多段階の処理とし、検出処理が完了した後にS1060で幾何拘束・検出形状に基づく位置決定を行った。しかし、情報処理装置100は、多段階の候補位置検出処理ごとに幾何拘束及び検出形状の何れか又は双方に基づく位置決定を行ってもよい。この場合、早い段階で候補を絞り込めるためより低いコストで処理ができる。
(実施形態4の変形例2)
実施形態4では、実施形態1の構成を用いて説明したが、実施形態2やその変形例及び実施形態3で示した構成及び処理で行ってもよい。
(実施形態4の効果)
実施形態4によれば、処理コストを削減しつつも対象物の三次元位置を高精度に算出できる。
実施形態4によれば、処理コストを削減しつつも対象物の三次元位置を高精度に算出できる。
<その他の実施形態>
(変形例1)
上述した実施形態では、撮像装置1としてグレースケール画像を撮像するステレオカメラを用いた。しかし、複数視点から対象物の画像を撮像する撮像装置であれば何でもよい。例えば、2台以上のグレースケール画像を撮像するカメラを用いてもよいし、RGB画像を撮像するカラーカメラを用いてもよいし、Depthカメラでもよい。
(変形例2)
上述した位置決定部105の機能を三次元位置算出部106に含めてもよいし、候補位置検出部103、位置決定部105の機能を三次元位置算出部106に含めてもよい。また、候補位置検出部103の機能を位置決定部105に含めてもよい。
(変形例3)
上述した実施形態において、検出モデルは深層学習で学習した、画像を入力として対象物の画像上の位置を出力するもの、又は、位置を算出するのに十分な情報、例えば対象物の領域や外接矩形等を出力するものであればいかなるものでもよい。
(変形例1)
上述した実施形態では、撮像装置1としてグレースケール画像を撮像するステレオカメラを用いた。しかし、複数視点から対象物の画像を撮像する撮像装置であれば何でもよい。例えば、2台以上のグレースケール画像を撮像するカメラを用いてもよいし、RGB画像を撮像するカラーカメラを用いてもよいし、Depthカメラでもよい。
(変形例2)
上述した位置決定部105の機能を三次元位置算出部106に含めてもよいし、候補位置検出部103、位置決定部105の機能を三次元位置算出部106に含めてもよい。また、候補位置検出部103の機能を位置決定部105に含めてもよい。
(変形例3)
上述した実施形態において、検出モデルは深層学習で学習した、画像を入力として対象物の画像上の位置を出力するもの、又は、位置を算出するのに十分な情報、例えば対象物の領域や外接矩形等を出力するものであればいかなるものでもよい。
また、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した情報処理装置100、検出モデル学習装置6、画像表示装置5の各モジュール構成の一部、又は全てはハードウェア構成として各装置に実装してもよい。
また、情報処理装置100のハードウェア構成として、CPUは複数存在してもよく、複数のCPUがROM又はHDD等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、情報処理装置100のハードウェア構成として、CPUの替わりに、GPU(Graphics Processing Unit)を用いてもよい。
例えば、上述した情報処理装置100、検出モデル学習装置6、画像表示装置5の各モジュール構成の一部、又は全てはハードウェア構成として各装置に実装してもよい。
また、情報処理装置100のハードウェア構成として、CPUは複数存在してもよく、複数のCPUがROM又はHDD等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、情報処理装置100のハードウェア構成として、CPUの替わりに、GPU(Graphics Processing Unit)を用いてもよい。
以上、上述した各実施形態によれば、視差により対象物の見え方が大きく異なる場合や、対象物に隠れが生じている場合でもより精度よく三次元位置を計測できる。
100 情報処理装置
1000 ロボットシステム
1000 ロボットシステム
Claims (19)
- 2つ以上の異なる視点から撮像された複数の画像を入力する入力手段と、
前記複数の画像それぞれから検出モデルを用いて対象物の候補位置を検出する検出手段と、
前記複数の画像それぞれから検出された対象物の候補位置に基づいて前記対象物の位置を決定する第1の決定手段と、
前記対象物の位置と撮像装置の校正情報とに基づいて前記対象物の三次元位置を決定する第2の決定手段と、
を有する情報処理装置。 - 前記第1の決定手段は、前記複数の画像それぞれから検出された対象物の候補位置と前記校正情報に関する幾何拘束とに基づいて前記対象物の位置を決定する請求項1記載の情報処理装置。
- 前記検出手段は、前記複数の画像それぞれから検出モデルを用いて前記対象物の候補領域を検出し、
前記第1の決定手段は、前記複数の画像それぞれから検出された対象物の候補領域に基づいて前記対象物の位置を決定する請求項1又は2記載の情報処理装置。 - 前記検出手段は、更に、前記複数の画像それぞれから前記対象物の候補領域の形状を検出し、
前記第1の決定手段は、更に、前記候補領域の形状と前記対象物の形状とに基づいて前記対象物の位置を決定する請求項3記載の情報処理装置。 - 前記検出手段は、更に、前記複数の画像それぞれから検出モデルを用いて対象物の候補位置の尤度を出力し、
前記第1の決定手段は、前記複数の画像それぞれから出力された対象物の候補位置の尤度に基づいて前記対象物の位置を決定する請求項1乃至4何れか1項記載の情報処理装置。 - 前記検出手段により第1の画像より検出された対象物の候補位置と前記校正情報に関する幾何拘束とに基づいて前記第1の画像とは異なる第2の画像の前記対象物の検出範囲を設定する設定手段を更に有する請求項1乃至5何れか1項記載の情報処理装置。
- 前記第1の画像は、第1の撮像装置で撮像された画像であり、
前記第2の画像は、前記第1の撮像装置とは異なる第2の撮像装置で撮像された画像である請求項6記載の情報処理装置。 - 前記入力手段により入力された前記複数の画像それぞれから複数の異なるサイズの検出用画像を生成する画像生成手段を更に有し、
前記検出手段は、前記画像生成手段により生成された前記複数の異なるサイズの検出用画像から検出モデルを用いて対象物の候補位置を検出する請求項1乃至7何れか1項記載の情報処理装置。 - 前記第1の決定手段は、前記複数の異なるサイズの検出用画像を用いた検出ごとに前記対象物の位置を決定する請求項8記載の情報処理装置。
- 2つ以上の異なる視点から撮像された複数の画像を入力する入力手段と、
前記複数の画像それぞれから検出モデルを用いて対象物の候補位置を検出する検出手段と、
前記複数の画像それぞれから検出された対象物の候補位置に基づいて前記対象物の位置を決定する第1の決定手段と、
前記対象物の位置と撮像装置の校正情報とに基づいて前記対象物の三次元位置を決定する第2の決定手段と、
を有するシステム。 - 学習用画像に対して前記対象物の位置の真値を付与する付与手段と、
前記学習用画像と前記真値とに基づいて前記検出モデルを生成する生成手段と、
を更に有する請求項10記載のシステム。 - 前記三次元位置、前記対象物の位置、前記対象物の候補位置のうち少なくとも何れか1つを示す確認画像を表示する表示手段を更に有する請求項10又は11記載のシステム。
- 前記検出モデルは、深層学習のモデルである請求項10乃至12何れか1項記載のシステム。
- 前記入力手段により入力される画像を撮像する複数の撮像装置を更に有する請求項10乃至13何れか1項記載のシステム。
- 前記三次元位置に基づきロボットアームを制御する制御手段を更に有する請求項10乃至14何れか1項記載のシステム。
- 前記ロボットアームを更に有する請求項15記載のシステム。
- 前記対象物を操作するエンドエフェクタを更に有する請求項10乃至16何れか1項記載のシステム。
- 情報処理装置が実行する情報処理方法であって、
2つ以上の異なる視点から撮像された複数の画像を入力する入力工程と、
前記複数の画像それぞれから検出モデルを用いて対象物の候補位置を検出する検出工程と、
前記複数の画像それぞれから検出された対象物の候補位置に基づいて前記対象物の位置を決定する第1の決定工程と、
前記対象物の位置と撮像装置の校正情報とに基づいて前記対象物の三次元位置を決定する第2の決定工程と、
を含む情報処理方法。 - コンピュータを、請求項1乃至9何れか1項記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017239490A JP2019105588A (ja) | 2017-12-14 | 2017-12-14 | 情報処理装置、システム、情報処理方法及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017239490A JP2019105588A (ja) | 2017-12-14 | 2017-12-14 | 情報処理装置、システム、情報処理方法及びプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2019105588A true JP2019105588A (ja) | 2019-06-27 |
Family
ID=67061886
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017239490A Pending JP2019105588A (ja) | 2017-12-14 | 2017-12-14 | 情報処理装置、システム、情報処理方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2019105588A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021104985A1 (en) * | 2019-11-25 | 2021-06-03 | Surgvision Gmbh | Testing of a luminescence imaging apparatus with automatic detection of a testing device |
| JP2022019334A (ja) * | 2020-07-17 | 2022-01-27 | 公立大学法人会津大学 | 指示値読取プログラム、指示値読取装置及び指示値読取方法 |
-
2017
- 2017-12-14 JP JP2017239490A patent/JP2019105588A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021104985A1 (en) * | 2019-11-25 | 2021-06-03 | Surgvision Gmbh | Testing of a luminescence imaging apparatus with automatic detection of a testing device |
| JP2022019334A (ja) * | 2020-07-17 | 2022-01-27 | 公立大学法人会津大学 | 指示値読取プログラム、指示値読取装置及び指示値読取方法 |
| JP7589911B2 (ja) | 2020-07-17 | 2024-11-26 | 公立大学法人会津大学 | 指示値読取プログラム、指示値読取装置及び指示値読取方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6635690B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| JP6011102B2 (ja) | 物体姿勢推定方法 | |
| JP3735344B2 (ja) | キャリブレーション装置、キャリブレーション方法、及びキャリブレーション用プログラム | |
| JP4677536B1 (ja) | 3次元物体認識装置及び3次元物体認識方法 | |
| JP5671281B2 (ja) | 位置姿勢計測装置、位置姿勢計測装置の制御方法及びプログラム | |
| CN103649674B (zh) | 测量设备以及信息处理设备 | |
| JP6594129B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
| JP4004899B2 (ja) | 物品の位置姿勢検出装置及び物品取出し装置 | |
| CN113393439A (zh) | 一种基于深度学习的锻件缺陷检测方法 | |
| EP3182371A1 (en) | Threshold determination in for example a type ransac algorithm | |
| EP3516624A1 (en) | A method and system for creating a virtual 3d model | |
| CN109934847A (zh) | 弱纹理三维物体姿态估计的方法和装置 | |
| JP6817742B2 (ja) | 情報処理装置およびその制御方法 | |
| JP7298687B2 (ja) | 物体認識装置及び物体認識方法 | |
| CN113393524A (zh) | 一种结合深度学习和轮廓点云重建的目标位姿估计方法 | |
| EP3185212B1 (en) | Dynamic particle filter parameterization | |
| CN105426901A (zh) | 用于对摄像头视野中的已知物体进行分类的方法 | |
| JP2021026599A (ja) | 画像処理システム | |
| JP5093591B2 (ja) | 三次元位置姿勢計測方法および装置 | |
| JP2018169660A (ja) | オブジェクト姿勢検出装置、制御装置、ロボットおよびロボットシステム | |
| JP2018195070A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| GB2589178A (en) | Cross-domain metric learning system and method | |
| CN114897982A (zh) | 一种弱纹理物体的位姿估计方法及系统 | |
| Nguyen et al. | A comprehensive RGB-D dataset for 6D pose estimation for industrial robots pick and place: Creation and real-world validation | |
| CN118071822A (zh) | 图像处理方法、装置、破拆机器人和计算机可读存储介质 |