(57)【要約】【課題】第２画像のエピポーララインの上で対象物の特徴点を探索する際の誤検出の防止を図り、第１カメラから対象物までの距離を精度良く算出すること。【解決手段】画像処理装置は、主カメラ３ａによりワークＷを撮像した第１画像と、主カメラ３ａと異なる視線を有する従カメラ３ｂでワークＷを撮像した第２画像とを取得する。そして、第２画像のエピポーララインＥＰの上を探索することで第２画像の上におけるワークＷの特徴点を特定し、ステレオ法によりワークＷまでの距離Ｌを算出する。この際、予め記憶装置に記憶されたワークの特徴量の画素数及びそのワークとの距離に基づき、第１画像におけるワークの特徴量の画素数から主カメラ３ａとワークＷとの距離Ｌの概略値を算出する。そして、距離Ｌの概略値に応じて、第２画像のエピポーララインＥＰの上でワークＷの特徴点を探索する際の探索範囲を位置Ａ’Ｂ’に狭めるように設定する。【選択図】図５
2013257289.tif 000002
【特許請求の範囲】
【請求項１】
第１カメラにより対象物を撮像した第１画像と、前記第１カメラと異なる視線を有する第２カメラで対象物を撮像した第２画像とを取得し、少なくとも前記第２画像の上にエピポーララインを生成し、前記エピポーララインの上を探索することで前記第２画像の上における対象物の特徴点を特定し、ステレオ法により前記第１カメラから対象物までの距離を算出する画像処理装置において、
予め記憶部に記憶された対象物の特徴量の画素数及びその対象物との距離に基づき、前記第１画像における対象物の特徴量の画素数から前記第１カメラと前記対象物との距離の概略値を算出し、前記距離の概略値に応じて、前記第２画像の前記エピポーララインの上で対象物の特徴点を探索する際の探索範囲を狭めるように設定する制御部を備えた、
ことを特徴とする画像処理装置。
【請求項２】
前記第１及び第２カメラと、
前記第１カメラから対象物までの距離を算出する請求項１記載の画像処理装置と、
前記算出した距離に基づき前記対象物に対して作業を行うロボットアームと、を備えた、
ことを特徴とするロボット装置。
【請求項３】
制御部が、第１カメラにより対象物を撮像して第１画像を取得する第１画像取得工程と、
前記制御部が、前記第１カメラと異なる視線を有する第２カメラで対象物を撮像して第２画像を取得する第２画像取得工程と、
前記制御部が、少なくとも前記第２画像の上にエピポーララインを生成するエピポーラライン生成工程と、
前記制御部が、予め記憶部に記憶された対象物の特徴量の画素数及びその対象物との距離に基づき、前記第１画像における対象物の特徴量の画素数から前記第１カメラと前記対象物との距離の概略値を算出する概算距離算出工程と、
前記制御部が、前記算出された距離の概略値に応じて、前記第２画像の前記エピポーララインの上で対象物の特徴点を探索する際の探索範囲を狭めるように設定する探索範囲設定工程と、
前記制御部が、前記設定された探索範囲で前記エピポーララインの上を探索することで前記第２画像の上における対象物の特徴点を特定し、ステレオ法により前記第１カメラから対象物までの距離を算出する距離算出工程と、を備えた、
ことを特徴とする画像処理方法。
【請求項４】
請求項３記載の各工程をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１及び第２カメラにより対象物を撮像した第１及び第２画像からステレオ法により第１カメラから対象物までの距離を算出する画像処理装置、及び画像処理方法に関する。
【背景技術】
【０００２】
従来、例えば２つのカメラを用いて２つの画像を撮像することで、三角測量の原理を用い、例えば１つのカメラから対象物までの距離を測量するものが提案されている（特許文献１参照）。このものは、主カメラで対象物が中心上になるように設置すると共に、従カメラの角度を調整して画像中心に対象物が映し出されるように調整し、主カメラと従カメラとの距離、及び従カメラの角度に基づき主カメラから対象物までの距離を算出している。
【０００３】
また、特許文献１では、予め記憶した基準対象物の水平方向の画素数に基づき、主カメラで撮像した対象物の有効画素数から、その対象物の大きさを測定することも提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−３１８３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記特許文献１のような距離の測量手法では、主カメラと従カメラとの距離設定や、特に従カメラの角度調整など、機構的な調整を作業者が行う必要があり、調整に手間がかかるという問題がある。そればかりか、機構的な誤差や作業における誤差なども発生するため、測量精度が良好でないという問題もある。
【０００６】
そこで近年、画像処理の分野で複数のカメラを用いて対象までの距離を測定する方法として、エピポーララインを用いたステレオ法が用いられている。詳細には、まず、主カメラの画像内における対象物の特徴点に対応する点を特定する。次に、主カメラと主カメラの画像内の特徴点と従カメラとを通るエピポーラ平面を設定し、従カメラの画像平面内にエピポーララインを設定する。続いて、主カメラの画像内における対象物の特徴点に対応する点を、従カメラの画像平面におけるエピポーラライン上を探索することで対応付けを行う。そして、主カメラ、従カメラ、特徴点、及びそれに対応するエピポーラライン上の点、の三次元仮想空間上の位置関係から三角測量の原理により、主カメラと対象物との距離を算出することができる。
【０００７】
しかしながら、例えば画像に複数の同じ形状の対象物が撮像されている場合は、従カメラの画像のエピポーラライン上において対象物の特徴点に対応する点を探索する際、エピポーラライン上に類似した物体が複数存在することがある。その際、他の対象物を、測定すべき対象物の特徴点に対応する点として誤検出すると、上述した主カメラと対象物との距離の算出も誤算出するという問題があった。
【０００８】
そこで本発明は、第２画像のエピポーララインの上で対象物の特徴点を探索する際の誤検出の防止を図り、第１カメラから対象物までの距離を精度良く算出することが可能な画像処理装置、及び画像処理方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、第１カメラにより対象物を撮像した第１画像と、前記第１カメラと異なる視線を有する第２カメラで対象物を撮像した第２画像とを取得し、少なくとも前記第２画像の上にエピポーララインを生成し、前記エピポーララインの上を探索することで前記第２画像の上における対象物の特徴点を特定し、ステレオ法により前記第１カメラから対象物までの距離を算出する画像処理装置において、予め記憶部に記憶された対象物の特徴量の画素数及びその対象物との距離に基づき、前記第１画像における対象物の特徴量の画素数から前記第１カメラと前記対象物との距離の概略値を算出し、前記距離の概略値に応じて、前記第２画像の前記エピポーララインの上で対象物の特徴点を探索する際の探索範囲を狭めるように設定する制御部を備えたことを特徴とする。
【００１０】
また、本発明に係る画像処理方法は、制御部が、第１カメラにより対象物を撮像して第１画像を取得する第１画像取得工程と、前記制御部が、前記第１カメラと異なる視線を有する第２カメラで対象物を撮像して第２画像を取得する第２画像取得工程と、前記制御部が、少なくとも前記第２画像の上にエピポーララインを生成するエピポーラライン生成工程と、前記制御部が、予め記憶部に記憶された対象物の特徴量の画素数及びその対象物との距離に基づき、前記第１画像における対象物の特徴量の画素数から前記第１カメラと前記対象物との距離の概略値を算出する概算距離算出工程と、前記制御部が、前記算出された距離の概略値に応じて、前記第２画像の前記エピポーララインの上で対象物の特徴点を探索する際の探索範囲を狭めるように設定する探索範囲設定工程と、前記制御部が、前記設定された探索範囲で前記エピポーララインの上を探索することで前記第２画像の上における対象物の特徴点を特定し、ステレオ法により前記第１カメラから対象物までの距離を算出する距離算出工程と、を備えたことを特徴とする。
【発明の効果】
【００１１】
本発明によると、第１画像における対象物の特徴量の画素数から第１カメラと対象物との距離の概略値を算出し、距離の概略値に応じて、第２画像のエピポーララインの上で対象物の特徴点を探索する際の探索範囲を狭めるように設定することができる。これにより、第２画像のエピポーララインの上で、例えば類似した対象物が複数存在していたとしても、対象物の特徴点を探索する際の誤検出の防止が図られ、第１カメラから対象物までの距離を精度良く算出することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係るロボット装置を示す模式図。
【図２】図１のロボットコントローラの構成を示す模式図。
【図３】主カメラ画像と従カメラ画像とエピポーラ平面との関係を示す図。
【図４】主カメラ画像におけるワークの有効画素数と距離との関係を示す図。
【図５】従カメラ画像のエピポーラライン上の探索範囲を示す図。
【図６】本実施の形態に係る距離算出制御を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明に係る実施の形態を図１乃至図６に沿って説明する。まず、本発明に係る画像処理装置（ロボットコントローラ１０）を備えたロボット装置１について、図１に沿って説明する。
【００１４】
図１に示すように、本実施の形態に係るロボット装置１は、複数のロボット装置と組み合わされて一連の生産ラインを構築する、いわゆるロボットセルと呼ばれる組立ロボットである。このロボット装置１は、フレーム状のブース７の内部にワーク（対象物）Ｗに対して組立などの作業を行うロボットアーム２が配設されて構成されている。このブース７の上部にはロボットアーム２の上方からワークＷを撮像するためのカメラ３及び照明５が取り付けられている。
【００１５】
また、上記ロボットアーム２を支持する架台６の内側には、上記ロボットアーム２に対して駆動指令を与えるロボットコントローラ（画像処理装置、コンピュータ）１０が設けられている。ロボットコントローラ１０は、カメラ３によって撮像された画像からワークＷとカメラ３との距離を算出し、その距離やカメラ３の視線等から３次元位置を認識し、ロボットアーム２に対して駆動指令を生成する。ロボット装置１は、これらロボットアーム２、カメラ３及びロボットコントローラ１０を基本構成としており、カメラ３により撮像された画像を基にワークＷを認識し、ロボットアーム２によってワークＷを把持して組立などの作業を行うようになっている。
【００１６】
なお、上記カメラ３は、図２に示すように、カメラパラメータが校正された主カメラ（第１カメラ）３ａ及び従カメラ（第２カメラ）３ｂからなるステレオカメラによって構成されており、いわゆるステレオ法を用いてワークＷの位置（距離）を認識する。
【００１７】
上記ロボットコントローラ１０は、演算装置（制御部）１０２、記憶装置（記憶部）１０３、インターフェイス装置１０６、記録ディスク読取装置１１５、通信装置１１２等を有しており、それらがバス１１１を介して相互に通信可能に接続されている。また、バス１１１には、上述したロボットアーム２、ティーチングペンダント１１６などが接続されている。なお、ティーチングペンダント１１６とは、ロボットアーム２に動作指令を与えるための操作端末である。
【００１８】
演算装置１０２は、ＣＰＵ１０２ａを有しており、ＣＰＵ１０２ａは、詳しくは後述するように主カメラ３ａ及び従カメラ３ｂによってワークＷが撮像されたステレオ画像からワークＷの位置（距離）を算出し、ロボットアーム２に対して駆動指令を与える。また、演算装置１０２は、画像処理装置１０２ｂや音声処理装置１０２ｃを有しており、ディスプレイ１０７やスピーカ１０９に所望の画像や音声を出力可能に構成されている。
【００１９】
上記記憶装置１０３は、ＲＡＭ１０３ｂやＲＯＭ１０３ａを有しており、例えばＲＯＭ１０３ａには、詳しくは後述する画像処理（距離の算出）を実行するための画像処理プログラムＩＰＰが格納されている。また、詳しくは後述するように、予め基準となるワークＷＢＡＳＥを撮像した画像は、ＲＡＭ１０３ｂ等に一時的に格納される。なお、画像処理プログラムＩＰＰは、例えば記録ディスクＤｉｓｋなどに記録された情報から読み込んでＲＯＭ１０３ａに格納しても良く、又は通信装置１１２を介して外部ネットワークからダウンロードする形でＲＯＭ１０３ａに格納しても良い。
【００２０】
上記インターフェイス装置１０６には、インターフェイス１０６ｃを介して上述した主カメラ３ａ及び従カメラ３ｂからなるステレオカメラ３が接続されている。これにより、主カメラ３ａにより撮像した画像Ｇ１や従カメラ３ｂにより撮像した画像Ｇ２を受信し、上記記憶装置１０３のＲＡＭ１０３ｂ等に一時的に格納し得る。また反対に、主カメラ３ａや従カメラ３ｂにＣＰＵ１０２ａ等から指令を送信し、露出やシャッター速度、ズーム等の撮像条件を変更することも可能である。なお、インターフェイス１０６ｃには、例えば作業者が情報入力を行うためのキーボード１０６ａやマウス１０６ｂを接続してもよい。
【００２１】
ついで、エピポーララインを用いたステレオ法による距離算出の原理を図３に沿って説明する。まず、主カメラ３ａにより撮像した第１画像Ｇ１と従カメラ３ｂにより撮像した第２画像Ｇ２とを取得する。すると、主カメラ３ａ、従カメラ３ｂ、ワークＷ（カメラとワークとを結ぶ視線）を通るエピポーラ平面を三次元仮想空間上に設定することができる。このエピポーラ平面を通る線を、第２画像Ｇ２に投影し、エピポーララインＥＰとして設定できる。この第２画像Ｇ２のエピポーララインＥＰは、主カメラ３ａからワークＷの特徴点までの視線とも言える。なお、エピポーラ平面が求まるので、第１画像Ｇ１にもエピポーララインＥＰを設定することができる。
【００２２】
第１画像Ｇ１におけるエピポーララインＥＰ上にはワークＷの特徴点Ｐｂが存在し、第２画像Ｇ２におけるエピポーララインＥＰ上にはワークＷの特徴点Ｐｒが存在するので、その特徴点Ｐｂ，Ｐｒを探索して求める。特徴点Ｐｒが求まると、従カメラ３ｂから、主カメラ３ａとワークＷの特徴点Ｐｒとの視野角が求まるので、その視野角と、既知の主カメラ３ａと従カメラ３ｂとの距離とから三角測量の原理で、主カメラ３ａとワークＷとの距離Ｌを算出することができる。なお、同じ原理で、従カメラ３ｂとワークＷとの距離も算出できるので、これらの距離や視野角の関係から、ワークＷの三次元位置（三次元座標）を求めることが可能である。従って、カメラ３とワークＷとの距離が算出できれば、ワークＷの三次元位置も算出できることになる。
【００２３】
つづいて、本実施の形態に係る距離算出制御を図４乃至図６に沿って説明する。図６に示すように、本距離算出制御を開始（スタート）すると、まず、演算装置（制御部）１０２は、主カメラ３ａよりワークＷが撮影された第１画像Ｇ１を取得する（Ｓ１）（第１画像取得工程）。同様に、演算装置１０２は、従カメラ３ｂよりワークＷが撮影された第２画像Ｇ２を取得する（Ｓ２）（第２画像取得工程）。
【００２４】
続いて、演算装置１０２は、上述したようにエピポーララインＥＰを算出し（Ｓ３）（図３参照）（エピポーラライン生成工程）、第１画像Ｇ１及び第２画像Ｇ２に投影する。第１画像Ｇ１にエピポーララインＥＰが投影されると、演算装置１０２は、第１画像Ｇ１（主カメラ画像）における特徴点Ｐｂを算出する（Ｓ４）。
【００２５】
次に、ステップＳ５に進むと、主カメラ３ａとワークＷとの距離Ｌ（図３参照）の概略値の算出を行う。詳細には、まず、図４（ｃ）に示すように、予め基準となるワークＷＢＡＳＥの水平方向の両端が主カメラ３ａの画角いっぱいに丁度写るように、ワークＷＢＡＳＥと主カメラ３ａの距離を調整して主カメラ３ａで撮影する。その際に主カメラ３ａからワークＷＢＡＳＥまでの距離Ｄを測定しておき、更に、ワークＷＢＡＳＥの画素数ＰＷを測定しておく。そして、ワークＷＢＡＳＥの水平方向の既知の長さＸと、画像上の水平方向の長さＷＩＤ１と、画素数ＰＷと、距離Ｄとの各値を、記憶装置１０３に記憶させておく。
【００２６】
この基準となるワークＷＢＡＳＥの水平方向の画像上の長さＷＩＤ１と画素数ＰＷとの対応関係は、ワークと主カメラ３ａとの位置関係に変更がない限り、一度計測すれば足り、実際にワークＷまでの距離Ｌを求める演算を行う際は、定数として扱うことができる。
【００２７】
上記で求めた各定数を用いて、第１画像Ｇ１上における水平方向の既知の長さＸのワークＷまでの距離Ｌを求めるためには、図４（ａ）に示すような相乗比を用いて、下記の数式（１）で求めることができる。なお、主カメラ３ａから距離Ｌだけ離れた位置における、主カメラ３ａの水平方向の第１画像Ｇ１上の長さを、「ＷＩＤ２」とする。
【００２８】
【数１】
2013257289.tif 000003
【００２９】
また、長さＷＩＤ２は、前述の水平方向の既知の長さＸのワークＷの画素数ＰＸを計測すると、ワークＷと基準となるワークＷＢＡＳＥのそれぞれの水平方向の長さと画素数の相乗比を用いて、下記の数式（２）で求められる。
【００３０】
【数２】
2013257289.tif 000004
【００３１】
要するに、数式（１）及び数式（２）より、主カメラ３ａからワークＷまでの距離Ｌは、下記の数式（３）で求められる。
【００３２】
【数３】
2013257289.tif 000005
【００３３】
なお、上記算出例では、ワークＷの特徴量としてワークＷの水平方向の長さを用いて算出したが、これに限らず、ワークＷの垂直方向の長さや面積を特徴量として算出に用いてもよい。特徴量をワークＷの垂直方向の長さとする場合は、上記数式（３）のＰｘをワークＷの垂直方向の画素数、ＸをワークＷの垂直方向の既知の長さ、ＷＩＤ１をワークＷＢＡＳＥの垂直方向の長さ、ＰｗをワークＷＢＡＳＥの垂直方向の画素数とすることになる。また、特徴量をワークＷの面積とする場合は、上記数式（３）のＰｘをワークＷの面積の画素数、ＸをワークＷの面積、ＷＩＤ１をワークＷＢＡＳＥの面積、ＰｗをワークＷＢＡＳＥの面積の画素数とすることになる。
【００３４】
このように、演算装置１０２が、主カメラ３ａの第１画像Ｇ１よりワークＷの画素数Ｐｘを測定し、記憶装置１０３に記憶された各定数を用いて、上記数式（３）より、主カメラ３ａからワークＷまでの距離Ｌの概略値を算出する（Ｓ５）（概算距離算出工程）。
【００３５】
次に、演算装置１０２は、算出された距離Ｌの概略値に応じて、第２画像Ｇ２のエピポーララインＥＰの上で対象物の特徴点Ｐｒを探索する際の探索範囲を狭めるように設定する（Ｓ６）（探索範囲設定工程）。詳細には、図５に示すように、主カメラ３ａから算出した距離Ｌの概略値だけ離れた位置より、主カメラ３ａの手前側に−ｄＺ移動した位置Ａ’と、奥側に＋ｄＺ移動した位置Ｂ’との間を探索範囲に設定（限定）する。なお、±ｄＺは、画像処理演算における画像認識誤差とワークＷの寸法誤差を合わせたものの最大値に設定する。
【００３６】
続いて、演算装置１０２は、従カメラ３ｂの第２画像Ｇ２において、エピポーララインＥＰ上の位置Ａ’Ｂ’の間でワークＷの特徴点の探索を行い、その探索範囲にある画像上の特徴から特徴点Ｐｒを特定するように算出する（Ｓ７）。
【００３７】
そして、上記ステップＳ４で求めた第１画像Ｇ１の特徴点Ｐｂと、ステップＳ７で特定した特徴点Ｐｒとにより、上述したステレオ法を用いて、主カメラ３ａからワークＷまでの距離Ｌを算出する（Ｓ８）（距離算出工程）。以上により、本距離算出制御を終了する。
【００３８】
即ち、図５に示すように、例えば従カメラ３ｂの第２画像Ｇ２内における画角いっぱいであるエピポーララインＥＰ上の位置ＡＢで探索すると、例えば隣接するワークＷ＋１やワークＷ−１における画像上の特徴を特徴点として誤検出してしまう虞があった。しかし、ワークＷまでの距離Ｌの概略値を算出し、探索範囲をその近傍±ｄＺの範囲に限定することで、例えば隣接するワークＷ＋１やワークＷ−１は探索範囲から除外できるため、特徴点の対応付けによる誤検出が防がれる。
【００３９】
以上のように、第１画像Ｇ１におけるワークＷの特徴量の画素数ＰＸから主カメラ３ａとワークＷとの距離Ｌの概略値を算出する。そして、距離Ｌの概略値に応じて、第２画像Ｇ２のエピポーララインＥＰの上でワークＷの特徴点を探索する際の探索範囲を狭めるように設定することができる。これにより、第２画像Ｇ２のエピポーララインＥＰの上で、例えば類似したワークが複数存在していたとしても、ワークＷの特徴点を探索する際の誤検出の防止が図られ、主カメラ３ａからワークＷまでの距離を精度良く算出することができる。
【００４０】
このようにワークまでの距離、即ちワークの三次元位置を精度良く算出できることで、ロボットアーム２でワークＷに対して作業を行う際にも、精度の高い、正確な作業を施すことができる。
【００４１】
なお、本実施の形態においては、画像処理装置をロボットコントローラ１０に搭載したものを一例に説明したが、これに限らず、対象物までの距離を正確に測量することが求められるものには、どのようなものでも用いることができる。即ち、例えば三次元形状計測器や、自動車の衝突防止装置など、画像を用いて対象物までの距離を検出することが求められるものに用いることができる。
【符号の説明】
【００４２】
３ａ…第１カメラ（主カメラ）：３ｂ…第２カメラ（従カメラ）：１０…画像処理装置、コンピュータ（ロボットコントローラ）：１０２…制御部（演算装置）：１０３…記憶部（記憶装置）：Ｄ…距離：ＥＰ…エピポーラライン：Ｇ１…第１画像：Ｇ２…第２画像：Ｌ…距離：Ｐｒ…特徴点：ＰＷ…画素数：ＰＸ…画素数：Ｗ…対象物（ワーク）
【図１】
2013257289.tif 000006
【図２】
2013257289.tif 000007
【図３】
2013257289.tif 000008
【図４】
2013257289.tif 000009
【図５】
2013257289.tif 000010
【図６】
2013257289.tif 000011