(57)【要約】【課題】少なくとも１つのカメラで撮像した入力画像から検出した対象物の３次元位置を求めることが可能な画像処理装置及び画像処理方法を提供すること。【解決手段】本発明の画像処理装置１は、複数のモデル特徴点から構成されたモデルパターンを記憶するモデルパターン記憶部２１０と、検出対象物を撮像することにより得られた複数の画像を取得する画像データ取得部１１０と、モデルパターンを用いて画像から検出対象物を検出する対象物検出部１２２と、モデルパターンが検出対象物の像に重畳するように位置姿勢を変換するモデルパターン変換部１２３と、モデル特徴点に対応する画像データ上の対応点を取得する対応点取得部１２４と、複数の画像上の対応点のセットを選択する対応点セット選択部１２５と、検出対象物の像の３次元位置を算出する３次元位置算出部１２６と、を備える。【選択図】図３
2020047049.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのカメラにより撮像された検出対象物の複数の画像から、該検出対象物の各特徴点の３次元位置を求める画像処理装置において、
前記検出対象物に対する複数のモデル特徴点から構成されたモデルパターンを記憶するモデルパターン記憶部と、
前記カメラにより同一の前記検出対象物を撮像することにより得られた複数の画像を取得する画像データ取得部と、
前記複数の画像から第１の特徴点を抽出する特徴点抽出部と、
前記複数の画像から抽出された第１の特徴点と、前記モデルパターン記憶部に記憶されたモデルパターンとのマッチングを行うことにより、前記複数の画像から検出対象物の像を検出する対象物検出部と、
前記モデルパターンのモデル特徴点が、前記対象物検出部が検出した前記複数の画像内の検出対象物の像に重畳するように、前記モデルパターンのモデル特徴点の位置姿勢を変換するモデルパターン変換部と、
前記モデルパターン変換部が変換した前記モデルパターンのモデル特徴点に対応する前記画像上の点を対応点として取得する対応点取得部と、
前記複数の画像のそれぞれの検出対象物の像に対して求められた対応点から、同一のモデル特徴点に基づいて得られた対応点を対応点セットとして選択する対応点セット選択部と、
前記対応点セット選択部が選択した対応点セットに基づいて前記検出対象物の各特徴点の３次元位置を算出する３次元位置算出部と、
を備えた画像処理装置。
【請求項２】
前記対応点取得部は、前記モデルパターン変換部が変換した前記モデルパターンのモデル特徴点を対応点として取得する、
請求項１に記載の画像処理装置。
【請求項３】
前記対応点取得部は、前記モデルパターン変換部が変換した前記モデルパターンのモデル特徴点について、該モデル特徴点の近傍の第１の特徴点を探索し、対応点として取得する、
請求項１に記載の画像処理装置。
【請求項４】
前記対応点取得部は、前記モデルパターン変換部が変換した前記モデルパターンのモデル特徴点について、該モデル特徴点の近傍のエピポーラ線と、隣合う第１の特徴点を結ぶ線分との交点を対応点として取得する、
請求項１に記載の画像処理装置。
【請求項５】
前記対応点セット選択部は、前記対象物検出部が前記複数の画像のそれぞれに複数の検出対象物を検出した場合、前記モデルパターンの同一のモデル特徴点が、同一のエピポーラ面上にある対象物同士を同一の検出対象物とみなす、
請求項１〜４のいずれか１つに記載の画像処理装置。
【請求項６】
前記モデルパターンは前記検出対象物を撮像した入力画像から生成される、
請求項１〜５のいずれか１つに記載の画像処理装置。
【請求項７】
前記モデルパターンは前記検出対象物の３次元形状データから生成される、
請求項１〜６のいずれか１つに記載の画像処理装置。
【請求項８】
少なくとも１つのカメラにより撮像された検出対象物の複数の画像から、該検出対象物の各特徴点の３次元位置を求める画像処理方法において、
前記カメラにより同一の前記検出対象物を撮像することにより得られた複数の画像を取得する第１ステップと、
前記複数の画像から第１の特徴点を抽出する第２ステップと、
前記複数の画像から抽出された第１の特徴点と、前記検出対象物に対する複数のモデル特徴点から構成されたモデルパターンとのマッチングを行うことにより、前記複数の画像から検出対象物の像を検出する第３ステップと、
前記モデルパターンのモデル特徴点が、第３ステップで検出した前記複数の画像内の検出対象物の像に重畳するように、前記モデルパターンのモデル特徴点の位置姿勢を変換する第４ステップと、
前記第４ステップで変換した前記モデルパターンのモデル特徴点に対応する点を取得する第５ステップと、
前記複数の画像のそれぞれの検出対象物の像に対して求められた対応点から、同一のモデル特徴点に基づいて得られた対応点を対応点セットとして選択する第６ステップと、
前記第６ステップで選択した対応点セットに基づいて前記検出対象物の各特徴点３次元位置を算出する第７ステップと、
を実行する画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関し、特に複数のカメラで撮像した入力画像のそれぞれの画像から検出した対象物の特徴点から、それぞれの特徴点の３次元位置を求める画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
画像処理装置を用いてカメラの視野内の画像の中から特定の対象物の像を検出する場合、対象物を表す基準情報（一般に、モデルパターンとかテンプレートなどと呼称される。以下モデルパターン）と撮像装置によって取得した入力画像の間で特徴量のマッチングを行い、合致度が所定のレベルを越えたときに対象物の検出に成功したと判断することが一般的である。
【０００３】
このようなモデルパターンと入力画像との間でのマッチング処理の際に用いられる特徴量の一つとしてエッジ点を画像の特徴を表す特徴点とする場合がある。図１４は、画像内（モデルパターン領域内）の検出対象物とエッジ点との例を示す図である。エッジ点は画像上での輝度変化が大きな点である。一般に検出対象物の輪郭線の像は輝度勾配が大きくなるので、エッジ点を特徴量として使うことで検出対象物の輪郭線形状のマッチングを行うことができる。検出すべき対象物を含む画像から抽出したエッジ点群をモデルパターンとして記憶しておき、撮像装置によって取得された入力画像から抽出されたエッジ点群とモデルパターンのエッジ点群の合致度に基づいて対象物を検出する。たとえば、この類の手法として一般化ハフ変換などが知られている。
【０００４】
このように画像から対象物を検出する従来技術として、例えば特許文献１には、モデルパターンをカメラで撮像した入力画像に重畳してエッジ点のマッチングを行い、モデルパターンを構成するエッジ点に対応する入力画像のエッジ点を選択して対象物を検出する技術が開示されている。特許文献１に開示される技術では、モデルパターンを入力画像に重畳する際、モデルパターンのエッジ点が形作る形状が入力画像に写った像の平均的な形状となるようにモデルパターンのエッジ点の位置姿勢（ベクトル量）を修正している。
【０００５】
また、特許文献２には、ステレオカメラで対象物の輪郭線を計測する画像処理装置で、対象物の３次元形状データから、ステレオカメラのそれぞれのカメラの撮像面に対して基準輪郭線を投影し、ステレオカメラのそれぞれのカメラで撮像した画像からエッジ線を抽出し、エピポーラ線とエッジ線の交点をエッジ点として、それぞれのカメラの画像のエッジ点の中から、基準輪郭線の同一部位に対応するエッジ点を対応点として選択し、対応点からステレオ計算を行い、３次元点の位置を計算する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−０９１０７９号公報
【特許文献２】特許第５９１１９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、ロボットが作業を行う際に対象物を検出するために用いられる視覚センサとしては２次元カメラが用いられており、検出結果としての対象物の位置（エッジの位置、特徴点の位置等）は画像座標系で表現される。その為、ロボットが検出した対象物に対して作業を行うためには、画像座標系で表現される２次元の対象物の位置（座標）をロボット座標系で表現される３次元（座標）の位置に変換する必要があり、これを実現するために、検出結果としての対象物の位置が特定の平面上に存在するという前提のもとで、画像上で見つかった対象物の位置（座標）を、その平面に投影するという方法がとられている。
【０００８】
この様な方法をとる場合、予め上記した特定の平面を正確に求めておく必要がある。例えば、平面上の３点の３次元位置を３次元視覚センサやロボットによるタッチアップで求めて、その３点の位置情報から平面を算出するという方法等が考えられるが、その場合、特別なセンサが必要であり、セットアップの手間が余計にかかるという課題が生じる。また、対象物の位置姿勢が３次元的に変化する場合には、その変化に伴い上記した特定の平面の位置姿勢も変わる為、毎回平面の検出を行う必要が生じ、対象物の検出に時間が掛かるという課題がある。
【０００９】
そこで本発明の目的は、少なくとも１つのカメラで撮像した入力画像から検出した対象物の３次元位置を求めることが可能な画像処理装置及び画像処理方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置及び画像処理方法は、検出対象物のモデルパターンの複数の特徴点を用いて、該検出対象物に関して撮像された複数の画像（ステレオ画像）に写っている検出対象物の像の各部の対応関係を特定し、特定した検出対象物の像の各部の対応関係に基づいて検出対象物の３次元位置を求めることにより、上記課題を解決する。
【００１１】
そして、本発明の一態様は、少なくとも１つのカメラにより撮像された検出対象物の複数の画像から、該検出対象物の各特徴点の３次元位置を求める画像処理装置において、前記検出対象物に対する複数のモデル特徴点から構成されたモデルパターンを記憶するモデルパターン記憶部と、前記カメラにより同一の前記検出対象物を撮像することにより得られた複数の画像を取得する画像データ取得部と、前記複数の画像から第１の特徴点を抽出する特徴点抽出部と、前記複数の画像から抽出された第１の特徴点と、前記モデルパターン記憶部に記憶されたモデルパターンとのマッチングを行うことにより、前記複数の画像から検出対象物の像を検出する対象物検出部と、前記モデルパターンのモデル特徴点が、前記対象物検出部が検出した前記複数の画像内の検出対象物の像に重畳するように、前記モデルパターンのモデル特徴点の位置姿勢を変換するモデルパターン変換部と、前記モデルパターン変換部が変換した前記モデルパターンのモデル特徴点に対応する前記画像データ上の点を対応点として取得する対応点取得部と、前記複数の画像のそれぞれの検出対象物の像に対して求められた対応点から、同一のモデル特徴点に基づいて得られた対応点を対応点セットとして選択する対応点セット選択部と、前記対応点セット選択部が選択した対応点セットに基づいて前記検出対象物の各特徴点の３次元位置を算出する３次元位置算出部と、を備えた画像処理装置である。
【００１２】
本発明の他の態様は、少なくとも１つのカメラにより撮像された検出対象物の複数の画像から、該検出対象物の各特徴点の３次元位置を求める画像処理方法において、前記カメラにより同一の前記検出対象物を撮像することにより得られた複数の画像を取得する第１ステップと、前記複数の画像から第１の特徴点を抽出する第２ステップと、前記複数の画像から抽出された第１の特徴点と、前記検出対象物に対する複数のモデル特徴点から構成されたモデルパターンとのマッチングを行うことにより、前記複数の画像から検出対象物の像を検出する第３ステップと、前記モデルパターンのモデル特徴点が、第３ステップで検出した前記複数の画像内の検出対象物の像に重畳するように、前記モデルパターンのモデル特徴点の位置姿勢を変換する第４ステップと、前記第４ステップで変換した前記モデルパターンのモデル特徴点に対応する点を取得する第５ステップと、前記複数の画像のそれぞれの検出対象物の像に対して求められた対応点から、同一のモデル特徴点に基づいて得られた対応点を対応点セットとして選択する第６ステップと、前記第６ステップで選択した対応点セットに基づいて前記検出対象物の各特徴点３次元位置を算出する第７ステップと、を実行する画像処理方法である。
【発明の効果】
【００１３】
本発明により、複数のカメラで撮像した入力画像のそれぞれの画像から検出した対象物の３次元位置を求めることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】一実施形態による画像処理装置の主要な構成を示す図である。
【図２】一実施形態による画像処理装置の概略的なハードウェア構成図である。
【図３】一実施形態による画像処理装置の概略的な機能ブロック図である。
【図４】検出対象物の例を示す図である。
【図５】２つのカメラで撮像された検出対象物の画像の例を示す図である。
【図６】２つの画像から対象物を検出する例を示す図である。
【図７】モデルパターンを変換する例を示す図である。
【図８】２つの画像から検出された対象物上の対応点を選択する例を示す図である。
【図９】他の実施形態による対象物上の対応点を選択する例を示す図である。
【図１０】２つの画像内の複数対象物の対応関係を特定する例を示す図である。
【図１１】他の実施形態による画像処理装置の主要な構成を示す図である。
【図１２】他の実施形態による画像処理装置の主要な構成を示す図である。
【図１３】他の実施形態による画像処理装置の主要な構成を示す図である。
【図１４】画像内の検出対象物とエッジ点との例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を図面と共に説明する。
図１は、本発明の一実施形態に係る画像処理装置１の主要な構成を示す図である。画像処理装置１は、作業台２に載置されたワーク３を撮像する少なくとも２つのカメラ４（本実施形態では、一対の第１のカメラ４Ａ及び第２のカメラ４Ｂ）に接続されている。画像処理装置１は、ワーク３の輪郭線によってワーク３の形状を特定する機能を備える。
【００１６】
カメラ４は、例えばＣＣＤ等の撮像素子を有する電子カメラであり、撮像により２次元画像を撮像面（ＣＣＤアレイ面上）で検出する機能を持つ周知の受光デバイスである。なお、撮像面における２次元座標系を以下ではセンサ座標系と呼ぶ。第１のカメラ４Ａおよび第２のカメラ４Ｂはそれぞれ架台等により支持され、第１のカメラ４Ａとワーク３および第２のカメラ４Ｂとワーク３との距離が互いにほぼ等しくなるように、かつ、第１のカメラ４Ａと第２のカメラ４Ｂにより互いにほぼ同じ範囲を撮影可能となるように、３次元のワールド座標系における一対のカメラ４Ａ，４Ｂの位置および姿勢が決定されている。なお、３次元のワールド座標系を、以下ではロボット座標系と呼ぶ。
【００１７】
図２は、図１の画像処理装置１の要部を示す概略的なハードウェア構成図である。画像処理装置１は、ロボットや工作機械等の製造機械を制御する制御装置として実装することができる。また、画像処理装置１は、製造機械を制御する制御装置と併設されたパソコンや、制御装置とネットワークを介して接続されたセルコンピュータ、ホストコンピュータ、クラウドサーバ等のコンピュータとして実装することが出来る。図２は、視覚センサを備えた製造機械（ロボット）を制御する制御装置と併設されたパソコンとして画像処理装置１を実装した場合の例を示している。
【００１８】
本実施形態による画像処理装置１が備えるＣＰＵ１１は、画像処理装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、バス２２を介して接続されているＲＯＭ１２に格納されたシステム・プログラムを読み出し、該システム・プログラムに従って画像処理装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示装置７０に表示するための表示データ及び入力装置７１を介してオペレータが入力した各種データ等が格納される。
【００１９】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされたＳＲＡＭ等を用いたり、ＳＳＤ等を用いたりする等して、画像処理装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、入力装置７１を介して入力されたデータやプログラム、カメラ４から取得された画像データ等が記憶される。不揮発性メモリ１４に記憶されたデータやプログラム等は、利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、画像解析処理のために必要とされる各種アルゴリズムや、その他の必要とされる処理を実行するためのシステム・プログラムがあらかじめ書き込まれている。
【００２０】
図３は、一実施形態による画像処理装置１の概略的な機能ブロック図である。図３に示した各機能ブロックは、図２に示した画像処理装置１が備えるＣＰＵ１１がシステム・プログラムを実行し、画像処理装置１の各部の動作を制御することにより実現される。
【００２１】
本実施形態の画像処理装置１は、視覚センサ制御部１００、画像データ取得部１１０、画像処理部１２０を備え、また、第１のカメラ４Ａ、第２のカメラ４Ｂそれぞれのキャリブレーションデータが記憶されたキャリブレーションデータ記憶部２００、モデルパターンが記憶されたモデルパターン記憶部２１０が不揮発性メモリ１４の領域内に確保されている。
【００２２】
本実施形態では、予めモデルパターン記憶部２１０に少なくとも１以上の対象物のモデルパターンが記憶されている。モデルパターンは、図１４に例示されるように、検出時において対象物を第１のカメラ４Ａ，第２のカメラ４Ｂが配置される方向から見た場合の画像のエッジ上の複数の特徴点Ｐi（ｉ＝１〜ｎ）（以下、モデル特徴点とする）で構成される。
【００２３】
モデルパターンは、例えば以下の手順で作成される。
●手順ａ１）モデルパターンとして教示したい対象物をカメラの視野内に配置し、対象物の画像を撮像する。この時のカメラと対象物の位置関係は、対象物を検出するときと同じになるようにして行うことが望ましい
●手順ａ２）手順１で撮像した画像において、対象物が映った領域を矩形や円形で指定する。指定した領域をモデルパターン指定領域と呼ぶ。
●手順ａ３）モデルパターン指定領域からエッジ点を抽出し、エッジ点の位置、姿勢（輝度勾配の方向）、輝度勾配の大きさ等の物理量を求める。また、指定された領域内にモデルパターン座標系を定義し、エッジ点の位置や姿勢を、画像座標系で表現された値から、モデルパターン座標系で表現された値に変換する
●手順ａ４）抽出されたエッジ点の位置、姿勢（輝度勾配の方向）、輝度勾配の大きさ等の物理量をモデルパターンを構成するモデル特徴点Ｐiとしてモデルパターン記憶部に記憶する
●手順ａ５）生成されたモデルパターンに修正の必要があれば、操作者がモデルパターンを修正する操作を行う。例えば、必要のないモデル特徴点（ノイズや同一の平面に乗っていない特徴点）を削除して、モデルパターン座標系の原点を変更する
【００２４】
モデルパターンは、上記した手順によりカメラで撮像した画像から作成する以外にも、円や矩形等の図形から生成したり、ＣＡＤデータ等の３次元形状データを適当な平面に投影したり、することでも作成することができる。
【００２５】
例えば、以下のような処理で３次元ＣＡＤデータをモデルパターンに変換できる。
●手順ｂ１）カメラの撮像面上に原点を置くローカル座標系を定義する。
●手順ｂ２）予め、カメラをキャリブレーションしておく。これにより、ローカル座標系で表現された３次元点をカメラ画像上の２次元点に変換することができる。
●手順ｂ３）ローカル座標系にＣＡＤデータとして表現された対象物を仮想的に配置する。配置されたＣＡＤデータはローカル座標系で表現される。カメラと対象物の相対関係は、実際に対象物の検出を行うときの相対関係と大体同じになるようにする。
●手順ｂ４）輪郭線から所定の間隔で輪郭線上の３次元点群を取得する。必要があれば、ＣＡＤデータの中からモデルパターンとして使う輪郭線を指定する。
●手順ｂ５）３次元点群をカメラ画像上に投影し、画像座標系上の２次元点群を求める。ＣＡＤデータ上で明暗の向きを指定すれば、輝度勾配の方向も付加することができる。ここで、明暗の向きとは、輪郭線を境界とする二つの領域のどちらが明るいかを示すものである。
●手順ｂ６）求められた画像座標系上の２次元点群をモデル座標系で表現するように変換し、モデル特徴点としてモデルパターン記憶部に記憶する。
【００２６】
視覚センサ制御部１００は、プログラム、入力装置７１乃至図示しない操作盤からの操作に基づいて第１のカメラ４Ａ，第２のカメラ４Ｂを制御する機能手段である。視覚センサ制御部１００による第１のカメラ４Ａ，第２のカメラ４Ｂを制御動作には、少なくとも第１のカメラ４Ａ，第２のカメラ４Ｂのキャリブレーション制御と、対象物撮像制御が含まれる。
【００２７】
視覚センサ制御部１００は、プログラム、入力装置７１乃至図示しない操作盤からのキャリブレーション指令操作に基づいて、キャリブレーションデータ記憶部２００から第１のカメラ４Ａ、第２のカメラ４Ｂそれぞれのキャリブレーションデータを読み出し、読み出したキャリブレーションデータに基づいて第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれをキャリブレーションする。キャリブレーションデータ記憶部２００に記憶されたキャリブレーションデータの形式やそれを求める方法については、種々の公知の方式が提案されているが、本実施形態においてはいずれの方式を用いても良い。カメラのキャリブレーション方法の詳細を記した文献の例としては、例えば「Roger Y. Tsai, “An efficient and accurate camera calibration technique for 3d machine vision”, Proc. Computer Vision and Pattern Recognition ’86, pp.368-374, 1986」等がある。視覚センサ制御部１００が、キャリブレーションデータに基づいて第１のカメラ４Ａ，第２のカメラ４Ｂをキャリブレーションすることにより、ロボット座標系における３次元点（以下、注視点）が与えられた時に、その３次元点のカメラ画像上での像の位置、すなわちセンサ座標系における２次元点を計算することが可能となり、また、ある注視点の像であるセンサ座標系における２次元点が与えられた時に、ロボット座標系における視線（注視点とカメラの焦点を通る３次元直線）を計算することができるようになる。
【００２８】
さらに一対のカメラ４Ａ，４Ｂのそれぞれについてキャリブレーションデータが求まると、注視点のロボット座標系における３次元位置が与えられたときに、この注視点と第１のカメラ４Ａの焦点と第２のカメラ４Ｂの焦点とを通る平面、すなわちエピポーラ面を算出することができる。また、注視点の像が第１のカメラ４Ａのセンサ座標系の２次元点および第２のカメラ４Ｂのセンサ座標系の２次元として与えられると、ロボット座標系における注視点の位置を特定でき、注視点の３次元位置座標を算出することができる。
【００２９】
視覚センサ制御部１００は、プログラム、入力装置７１乃至図示しない操作盤からの撮像指令操作に基づいて、第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれで対象物（例えば、ワーク等）を撮像するように制御する。上記したように、第１のカメラ４Ａ，第２のカメラ４Ｂは、ワーク３との距離が互いにほぼ等しくなるように、かつ、第１のカメラ４Ａと第２のカメラ４Ｂにより互いにほぼ同じ範囲を撮影可能となるように配置され、それぞれのレンズの向きはワークの中心方向に向けられている。その為、例えば図４に例示されるワーク３を撮像した場合、それぞれのカメラから見た場合の点線により示される範囲のワーク上面に対して傾きを持った画像が撮像される。なお、それぞれのカメラを平行に配置し、それぞれのカメラが撮像する対象物の位置が少しずれた状態となるように配置しても良い。
【００３０】
画像データ取得部１１０は、視覚センサ制御部１００の制御の下で第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれで撮像された画像データを取得し、画像処理部１２０に出力する。画像データ取得部１１０が取得する第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれで撮像される画像は、例えば図５に例示されるように、同一の対象物をそれぞれのカメラから見た場合の画像となる。
【００３１】
画像処理部１２０は、画像データ取得部１１０が取得した画像データに対して画像処理を行う機能手段である。画像処理部１２０は、特徴点抽出部１２１、対象物検出部１２２、モデルパターン変換部１２３、対応点選択部１２４、対応点セット選択部１２５、３次元位置算出部１２６を備える。
【００３２】
特徴点抽出部１２１は、第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれで対象物を撮像して得られた画像データからエッジ点（第１の特徴点）を抽出する機能手段である。エッジ点とは撮像された画像において輝度値の変化量が大きい点であり、エッジ点の抽出方法としては、ＳｏｂｅｌフィルタやＣａｎｎｙエッジ検出器等のような画像の輝度値の変化が大きなところを検出する手法が公知であるから、特徴点抽出部１２１は、このような公知の手法により各画像データのエッジ点を抽出するようにすれば良い。
【００３３】
対象物検出部１２２は、特徴点抽出部１２１により抽出されたエッジ点と、モデルパターン記憶部２１０に記憶されているモデルパターンのモデル特徴点Ｐiとの間でマッチング処理を行い、画像データ内の対象物を検出する機能手段である。対象物検出部１２２は、モデルパターン記憶部２１０から対象物のモデルパターンを取得し、取得したモデルパターンのモデル特徴点と、特徴点抽出部１２１が抽出したエッジ点（第１の特徴点）とに基づいて、例えば公知の一般化ハフ変換、ＲＡＮＳＡＣ、ＩＣＰアルゴリズム等を利用して対象物の検出を行う。対象物検出部１２２は、図６に例示されるように、第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれから得られた（そして、エッジ点が抽出された）画像データに対して、同一のモデルパターンとの間でマッチング処理を行い、それぞれの画像データから対象物を検出する。図５，６では違いを明確にするために、第１のカメラ４Ａで撮像された画像と、第２のカメラ４Ｂで撮像された画像とは画像の奥行き方向に大きく傾斜した画像として示されているが、実際にはそれぞれの画像の奥行き方向への傾斜は微々たるものであるため、対象物検出部１２２は、それぞれの画像内の対象物のエッジ点とモデルパターンのモデル特徴点との間のマッチング処理で高い類似度が算出されるので、それぞれの画像において特に問題なく対象物の画像を抽出することができる
【００３４】
モデルパターン変換部１２３は、対象物検出部１２２が検出した第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれから得られた画像データ内の対象物のエッジ点の位置、姿勢等に従ってモデルパターンを画像データ内の対象物と重畳できるように変換する。モデルパターン変換部１２３は、モデルパターンを変換する時には、モデルパターンを構成するモデル特徴点の位置姿勢を変換することになる。例えば、図４に例示されるような撮像をした場合、第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれは対象物に向かって左右にやや傾きを持って配置されるので、モデルパターン変換部１２３は、例えば図７に示されるように、モデルパターンを３次元空間上に配置した場合において、その状態でモデルパターンを含む平面を投影面とした上で、モデルパターンのモデル特徴点を投影面上に投影した各特徴点が画像データ内の対象物のエッジ点と略重畳するように合同変換、相似変換等を行い、変換後の投影面上に投影されたモデルパターンのモデル特徴点を変換結果として出力するようにすれば良い。なお、モデルパターンの変換方法については特許文献１等によりすでに公知となっているので、より詳細な説明は本明細書では省略する。
【００３５】
対応点取得部１２４は、モデルパターン変換部１２３が変換したモデルパターンのモデル特徴点に対応する第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれから得られた画像データ上の位置（画像データ上における、モデルパターンのモデル特徴点）を対応点として取得する機能手段である。対応点取得部１２４が取得する、モデルパターンのモデル特徴点に対応する画像データ上の位置（画像データ上における、モデルパターンのモデル特徴点）は、例えば、図８に例示されるように、モデルパターン変換部１２３が変換したモデルパターンのモデル特徴点を画像データ上の対象物の像に重畳させた時に、それぞれのモデル特徴点に重なる画像データ上の位置とすれば良い。
【００３６】
対応点セット選択部１２５は、対応点取得部１２４が取得した第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれから得られた画像データ上の対応点から、同一のモデル特徴点に基づいて得られた対応点をセットにして選択する機能手段である。対応点セット選択部１２５が選択する対応点セットの例として、例えば、図８に例示されるように、対応点取得部１２４が、モデル特徴点Ｐiに対応する第１のカメラ４Ａで撮像された画像データ上の対応点と、モデル特徴点Ｐiに対応する第２のカメラ４Ｂで撮像された画像データ上の対応点とを、１つの対応点セットとして選択する。対応点セット選択部１２５は、このようにしてモデルパターンのモデル特徴点の全てに対応する対応点セットを選択する。
【００３７】
そして、３次元位置算出部１２５は、対応点セット選択部１２５により選択された、第１のカメラ４Ａ，第２のカメラ４Ｂそれぞれから得られた画像データの対象物の像の複数の対応点セットに基づいて、公知の三角測量の原理等により各対応点の３次元位置を算出する。
【００３８】
上記した構成により、本実施形態の画像処理装置１は、第１のカメラ４Ａ、第２のカメラ４Ｂで撮像した入力画像のそれぞれの画像から検出した対象物の特徴点の３次元位置を求めることができる。これにより、公知の手法により対象物の３次元位置及び姿勢を正確に把握することができるため、例えば３次元的に位置ずれした対象物をロボットのハンドで把持することができるようになる。
【００３９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では２つのカメラ４を用いた例を示したが、他の実施形態として、３つ以上のカメラ４を用いて対象物を撮像して得られた３つ以上の画像データに対して上記した処理を実行し、各画像データ内の対象物の対応点の３次元位置を得ることにより、対象物の３次元位置姿勢を求めることも可能である。この様に、多数の対応点の３次元位置姿勢を使うことで、対象物の位置姿勢の推定の誤差を減らすことができる。
【００４０】
また、上記した実施形態では、モデルパターンを構成するモデル特徴点に対応する画像データ上の点を使用して３次元位置を計算したが、この方法では、検出した対象物に欠けや歪みなどが存在し、モデルパターンと対象物の形状が異なる場合に、対象物の像の正しい位置に関する３次元情報算出できないという問題が生じる。そこで、他の実施形態として、図９に例示されるように、モデルパターンのモデル特徴点Ｐiの中で画像データの対象物の像のエッジ部と重畳しない物がある場合には、該モデル特徴点の近傍の第１の特徴点を探索し、発見された第１の特徴点を対応点とみなすようにしても良い。
また、対応点取得部１２４は、モデルパターン変換部１２３が変換したモデルパターンのモデル特徴点について、該モデル特徴点を画像データに重畳した場合の近傍のエピポーラ線と、該モデル特徴点に隣合う第１の特徴点を結ぶ線分との交点を対応点として取得するようにしても良い。
【００４１】
また、上記した実施形態で例示した処理だけでは、対象物検出部１２２が、例えば図１０に例示されるように、特徴点抽出部１２１により抽出された第１の特徴点からモデルパターンにマッチするものが複数検出するような状況（例えば、複数の対象物を一度に検出するような状況）に対応できない。そこで、他の実施形態として、公知のエピポーラ幾何に基づいた処理を対応点セット選択部１２５に実行させることで、それぞれの画像に撮像されている２以上の対象物の間の対応を取るようにすることも可能である。エピポーラ幾何に基づいた処理によりそれぞれの画像に撮像されている２以上の対象物の間の対応を取る場合、例えば以下の手順を実行すれば良い。なお、以下の手順では、第１のカメラ４Ａから取得された画像データと第２のカメラ４Ｂから取得された画像データのそれぞれにおいて、２つの対象物ａ1，ｂ1及び対象物ａ2，ｂ2が検出された場合を想定している。
【００４２】
●手順ｃ１）第１のカメラ４Ａから取得された画像データから検出した対象物の一方（図１０における対象物ａ1）を選択する。
●手順ｃ２）手順ｃ１で選択した対象物に対してモデルパターンを重畳して対応点を取得し、その中の対応点の１つ（図１０における対応点Ｐｃi）を選択する。
●手順ｃ３）手順ｃ２で選択した特徴点を通るエピポーラ線（図１０におけるエピポーラ線Ｅi）を計算する。
●手順ｃ４）手順ｃ３で計算したエピポーラ線と重なるエピポーラ面を通る第２のカメラ４Ｂから取得された画像データのエピポーラ線（図１０におけるエピポーラ線Ｅｊ）を計算する。
●手順ｃ５）手順ｃ２で計算したエピポーラ線が通る対象物上の対応点（図１０における特徴点Ｐｃi）と、手順ｃ３で計算したエピポーラ線を通る対象物上の対応点（図１０における特徴点Ｐｃj）とが、モデルパターンの同一のモデル特徴点に対応している場合（即ち、モデルパターンの同一のモデル特徴点に対応する対象物上の位置が同一のエピポーラ面の上にある場合）、それら対象物は互いに対応する対象物である可能性がある。
●手順ｃ６）上記手順を、すべてのモデルパターンのモデル特徴点に対して行い、互いに対応する可能性が高い対象物（例えば、同一のエピポーラ面に載る対応点の数が多い対象物や、エピポーラ線を通る同一の対応点が多い対象物）を特定する。
【００４３】
上記した実施形態では、カメラ４が架台等に固定された例を示しているが、他の実施形態として、例えば図１１に例示されるように、ステレオカメラ（第１のカメラ４Ａ，第２のカメラ４Ｂ）がロボット５の手先についたシステムに対しても、本発明の画像処理装置１を用いることができる。ステレオカメラは、ロボット５のアームを動かした際に、ロボット５のアーム先端部との相対位置を一定に維持しながら、アーム先端部の動作にあわせて移動する。この様なシステムに用いる場合、例えば画像処理装置１をロボット５を制御するロボットコントローラ上に実装しても良いし、ロボットコントローラと併設されたパソコン等に実装しても良い。
【００４４】
また、図１２に例示されるように、検出対象物であるワーク３をロボット５のハンドで把持するシステムに対しても、本発明の画像処理装置１を用いることができる。この様なシステムでは、ステレオカメラ（第１のカメラ４Ａ，第２のカメラ４Ｂ）は作業台等に固定される。ワーク３は、ロボット５のアームを動かした際に、ロボット５のアーム先端部との相対位置を一定に維持しながら、アーム先端部の動作にあわせて移動する。
【００４５】
更に、図１３に例示されるように、単一のカメラ４をロボット５の手先に取り付けたシステムに対しても、本発明の画像処理装置１を用いることができる。この場合、カメラ４はロボット５のアームを動かした際に、ロボット５のアーム先端部との相対位置を一定に維持しながら、アーム先端部の動作にあわせて移動する。そして、カメラ４を複数の箇所に移動させて対象物を撮像することで、ステレオカメラと同様の効果を得ることができる。
【符号の説明】
【００４６】
１  画像処理装置
２  作業台
３  ワーク
４，４Ａ，４Ｂ  カメラ
５  ロボット
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８，１９，２０，２１  インタフェース
２２  バス
７０  表示装置
７１  入力装置
１００  視覚センサ制御部
１１０  画像データ取得部
１２０  画像処理部
１２１  エッジ抽出部
１２２  対象物検出部
１２３  モデルパターン変換部
１２４  対応点取得部
１２５  対応点セット選択部
１２６  ３次元位置算出部
２００  キャリブレーションデータ記憶部
２１０  モデルパターン記憶部
【図１】
2020047049.tif 000003
【図２】
2020047049.tif 000004
【図３】
2020047049.tif 000005
【図４】
2020047049.tif 000006
【図５】
2020047049.tif 000007
【図６】
2020047049.tif 000008
【図７】
2020047049.tif 000009
【図８】
2020047049.tif 000010
【図９】
2020047049.tif 000011
【図１０】
2020047049.tif 000012
【図１１】
2020047049.tif 000013
【図１２】
2020047049.tif 000014
【図１３】
2020047049.tif 000015
【図１４】
2020047049.tif 000016