JP2020169856A - 画像処理装置、画像処理方法およびプログラム - Google Patents

画像処理装置、画像処理方法およびプログラム Download PDF

Info

Publication number
JP2020169856A
JP2020169856A JP2019070527A JP2019070527A JP2020169856A JP 2020169856 A JP2020169856 A JP 2020169856A JP 2019070527 A JP2019070527 A JP 2019070527A JP 2019070527 A JP2019070527 A JP 2019070527A JP 2020169856 A JP2020169856 A JP 2020169856A
Authority
JP
Japan
Prior art keywords
pattern
image
subject
image processing
measurement object
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
Application number
JP2019070527A
Other languages
English (en)
Inventor
長井 健太郎
Kentaro Nagai
健太郎 長井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019070527A priority Critical patent/JP2020169856A/ja
Publication of JP2020169856A publication Critical patent/JP2020169856A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Length Measuring Devices By Optical Means (AREA)

Abstract

【課題】鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成する。【解決手段】画像処理装置は、明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する装置である。画像処理装置は、前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成する投影パターン生成部702と、前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する撮像画像取得部703と、前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する詳細形状生成部705と、を有する。【選択図】図7

Description

本発明は、計測対象物の表面の三次元情報を生成する技術に関する。
計測対象物にパターンを投影しカメラで撮像して取得した複数の撮像画像を基に、計測対象物(以下、被写体という)の表面の三次元情報を生成する技術がある。非特許文献1は、投影方向が同じとなる2箇所に位置付けられたディスプレイから被写体へバイナリコードパターンを投影しその反射を1台のカメラで撮像して取得した複数の撮像画像を基に、被写体の表面の三次元情報を生成する技術を開示している。
Siu−Kei Tin et al.、"3D Reconstruction of Mirror−type Objects using Efficient Ray Coding."、2016 IEEE International Conference on Computational Photography (ICCP)、2016
非特許文献1では、被写体に鏡面反射する曲面があると、撮像画像中の反射像にてパターンの周期が曲面に対応する箇所で変化する。曲面の曲率が大きいと、パターンの周期が曲面に対応する箇所で極端に大きくなったり小さくなったりする。パターンの周期が変わると、撮像画像の注目画素と、ディスプレイおよびカメラの画素とを正確に対応させることができず、被写体の形状を推定する際の空間分解能を補償するには、必要な撮像画像の枚数が増加する。よって、被写体の表面の三次元情報を効率よく生成できなかった。
被写体の表面の三次元情報を効率よく生成できないという問題は、被写体に鏡面反射する曲面がある場合に限らず被写体に鏡面反射する非平面がある場合でも生じる。例えば、曲面ではなく複数の様々な方向をもった平面によって構成された立体である場合でも生じる問題である。
本発明は、鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成することを目的とする。
本発明の一態様に係る画像処理装置は、明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理装置であって、前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成するパターン生成手段と、前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得手段と、前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成手段と、を有することを特徴とする。
本発明によれば、鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成することができる。
液晶ディスプレイと被写体とカメラの関係を示す図 液晶ディスプレイからパターンが投影された被写体の撮像画像例を示す図 画像計測システムの概略構成例を示す図 グレイコードパターン例を示す図 撮像画像例を示す図 画像処理装置のハードウェア構成例を示す図 画像処理装置の機能構成を示すブロックを含む図 被写体の詳細形状生成処理の手順例を示すフローチャート 縦縞のグレイコードパターンに関するシミュレーションモデルの概略を示す図 横縞のグレイコードパターンに関するシミュレーションモデルの概略を示す図 グレイコードパターンの投影パターンへの変更を説明する図 グレイコードパターン例を示す図 グレイコードパターンが投影された被写体の撮像画像例を示す図 グレイコードパターンと被写体の大きさの関係を説明する図 被写体の注目画素と、2つのLCDおよびカメラの画素との関係を示す図 画像処理装置の機能構成を示すブロックを含む図 被写体の詳細形状生成処理の手順例を示すフローチャート 画像処理装置の機能構成を示すブロックを含む図 被写体の詳細形状生成処理の手順例を示すフローチャート カラーグラデーションパターン例およびカラーグラデーションパターンが投影された被写体のプレ撮像画像例を示す図 画像計測システムの概略構成例を示す図
本発明の実施形態の説明に先立ち、鏡面反射する面がある計測対象物(以下、被写体という)を撮像して得た複数の撮像画像に基づき、被写体の表面の三次元情報を生成する技術の概要について説明する。
先ず、被写体の表面の三次元情報を生成する技術である三次元形状計測では、通常複数台のカメラによって二次元情報を取得し、被写体の共通の特徴点を探索して三角測量を行い特徴点の三次元の位置を特定する。複数の特徴点の三次元の位置を点群として表面形状を形成することで被写体の三次元情報(以下、三次元形状ともいう)を取得する。しかし、三角測量を行うには特徴点が少なくとも二台のカメラから見える必要がある。ここで見えるとは、外部の環境光ないしは照明などの入射光が特徴点によって反射され、それがカメラで受光される必要がある、という意味である。そのため、被写体の表面反射特性はランバート反射かそれに近い特性であることが望ましい。これは、ランバート反射では全方位に光が反射されるため、特徴点がカメラから見える位置であれば、カメラによって反射光を測定できるためである。特徴点に関してはより望ましくは特徴点が抽出しやすいよう、模様など被写体面上で反射特性(色や反射強度など)が変化する特徴があることがより望ましい。
一方で、被写体が鏡面体のような強いスペキュラーの反射特性を持つ場合、必ずカメラ方向に反射光が出射するとは限らない。また、鏡面体は反射そのものに特徴がない場合が多いため、特徴点を特定しにくい。そのため、被写体が鏡面体のような強いスペキュラーの反射特性をもつ場合、被写体の三次元情報を生成することは非常に困難であった。
それに対して、非特許文献1は、投影方向が同じとなる2箇所に配置されたディスプレイを用い入射光の位置と方向を特定し、反射光の反射点位置を三角測量で導出して、鏡面体のような被写体の表面の三次元情報を生成する技術を開示している。
この手法では、二枚のディスプレイと被写体、反射光を測定するカメラが所定の位置に設置される。二枚のディスプレイ上のそれぞれ一画素の発光点、すなわち合計二画素の発光点を結ぶ線を入射光の方向とする。この二画素の発光点からの反射光がカメラ素子の同じ画素で測定されると、前記入射光と反射光の位置と方向が特定され、三角測量による反射点が導出可能となる。
この原理の第一の課題は、ディスプレイ上の発光点の二画素を総当たりで調べなくてはならず、そのため二枚のディスプレイの画素を一つずつ点灯して調べなくてはならないという点にある。この課題を克服するために非特許文献1においてはグレイコードパターンを用いた点灯画素の特定手法を開示している。グレイコードパターンは一定の周期をもった二値の縞画像で、縦横それぞれ数枚から十数枚の画像を組み合わせることで容易にディスプレイ上の発光画素とカメラによって取得した反射光の位置を紐付けることが可能である。
この手法では、取得できる鏡面体の反射方向がディスプレイの方向で限定される。そのため、被写体が立体物である場合、回転ステージに固定するなどしてあらゆる方向からの被写体のデータを取得しステッチングすることで全体の立体形状を取得する。
しかし、回転ステージによる多数回の撮像プロセスはそのまま撮像時間の増加につながる。そのため、一度の撮像でなるべく広い角度から入射する光線のデータを収集することが望ましい。そのためには、複数、あるいは巨大な発光スクリーンを用いるか、被写体と液晶ディスプレイの距離を狭めるか、あるいはその両方を行う必要がある。
図1は、液晶ディスプレイと被写体とカメラの関係を示す図である。被写体102は、鏡面体で、球体であるとする。液晶ディスプレイ101は、グレイコードパターンなどのパターンを表示可能な装置である。液晶ディスプレイ101は、被写体102に対して所定の距離L1となるディスプレイ位置に配置される。カメラ103は、1台であり、パターンが液晶ディスプレイ101に表示されて液晶ディスプレイ101から投影された被写体102を撮像可能な位置に配置される。カメラ103は、液晶ディスプレイ101からパターンが投影された被写体102を撮像して撮像画像を取得する。
図2(a)−(d)は、それぞれのディスプレイ位置に配置された液晶ディスプレイ101からパターンが投影された被写体102の撮像画像例を示す図である。図2(a)は、距離L1が70cmである場合の撮像画像例、図2(b)は、距離L1が45cmである場合の撮像画像例、図2(c)は、距離L1が20cmである場合の撮像画像例、図2(d)は、距離L1が5cmである場合の撮像画像例を示している。
撮像画像200では、被写体の輪郭201内にて、被写体に投影されたパターンの鏡面反射像210のみが視認可能となる。図2(a)−(d)に示すように、被写体102と液晶ディスプレイ101との距離L1が短く近いほど鏡面反射像210が大きくなることから、被写体102の広範囲の領域にて鏡面反射していることがわかる。被写体102が球体であることを考慮すると、これは、さまざまな角度からの入射光を反射した鏡面反射像をカメラ103で撮像できることを示している。
撮像画像200の鏡面反射像210を見ると、パターンの形状は、被写体102と液晶ディスプレイ101との距離L1(液晶ディスプレイ101のディスプレイ位置)によって異なり、空間的に均一でないことがわかる。すなわち、撮像画像200の鏡面反射像210において、左右方向や上下方向の位置によってパターン幅(明部または暗部となる領域の大きさ)が異なり均一でないことがわかる。特に、図2(d)に示すように、図2(a)−(c)の撮像画像例と比べて、鏡面反射像210の中央部分211にあってはパターンの周期が大きく(パターン幅が大きく)強調されていることがわかる。一方、鏡面反射像210の上下方向の中央部分で左右方向の右端部分212にあっては、パターンの周期が小さく(パターン幅が小さく)、パターンを判別できないほどにつぶれていることがわかる。
1つのパターン幅が撮像画像の複数の画素に対応することから、パターンの周期が増大すると、それに伴い、被写体形状の推定にて、空間分解能が低下することを示している。よって、空間分解能を補償するためには、さらに細かいレベルのパターンが投影された被写体を撮像する必要があり、これは、撮像枚数がさらに増えることを意味する。一方、つぶれた個所においては、複数のパターン幅が撮像画像の1つの画素に対応することになり、画素単位で白黒を判定できず、二値判定による値が不安定となる。そのため、これ以上細かいグレイコードパターンが投影された被写体の撮像が無意味であり、この撮像で取得した撮像画像はむしろノイズ要因となりやすい。ノイズ要因である不安定さが残ったまま撮像枚数のみがいたずらに増えることは、被写体の正確な形状取得には不利となる。
このように、鏡面反射する面がある被写体に対してグレイコードパターンを投影しその反射を撮像した場合、被写体に曲率の大きな面があると、反射像にてパターンの周期が場所によって極端に変化し、被写体形状の推定に必要な撮像枚数が増加してしまう。また一方で場所によってはノイズが増えてしまう。最も好適な状態は、カメラ、すなわち撮像側から見てパターンの縞がほぼ均等になることである。それにより、撮像枚数が最小限に抑えられ、且つ、ノイズが少なくなる。
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らず、種々の変形及び変更が可能である。
[実施形態1]
図3は、本実施形態に係る画像計測システムの概略構成例を示す図である。本実施形態の画像計測システムは、パターン表示装置301、撮像装置302、被写体ステージ(以下、ステージという)304、画像処理装置305を有する。画像処理装置305は、パターン表示装置301、撮像装置302およびステージ304と接続されて画像および各種の制御情報などを送受信可能に構成される。
パターン表示装置301は、グレイコードパターンなどのパターンを表示する装置である。パターン表示装置301として、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)などの、パターンを表示する表示装置を用いることが可能である。また、パターン表示装置301として、例えば、ブラウン管やプロジェクタのような投影装置を用いることが可能である。パターンを被写体303に投影するプロジェクタを用いる場合、例えば、不透明な薄い板(スクリーン)に投影することで板の位置にディスプレイを設置したことと同等の効果を有する。
パターン表示装置(以下、LCDという)301は、不図示の移動装置により、被写体303(ステージ304)に対して前後方向に移動可能となっている。LCD301は、第一の位置と、第一の位置とLCD301の投影方向が同じであるが、第一の位置と異なる第二の位置に位置付け可能である。第一の位置は、被写体303に対して近接し、被写体303の表面とLCD301の距離がL1であって、被写体303の中心(ステージ304の中心)とLCD301の距離がL11となる位置である。第二の位置は、被写体303に対して第一の位置の後方側であって、第一の位置と比べて被写体303に対して離間し、被写体303とLCD301の距離がL12(>L11)となる位置である。本実施形態では、非特許文献1の原理と同様、第一および第二の位置それぞれに位置付けられたLCD301でパターンを表示して被写体303に投影し、パターンが投影された被写体303を撮像装置302によって撮像する。すなわち、撮像装置302による被写体303の撮像は、LCD301が第一および第二の位置それぞれに位置付けられた場合の2回実行する。ただし、これら二つの位置は単純に被写体303に対して前後方向位置となる関係であり、LCD301を移動させる距離も理論上5cm程度である。以下、本実施形態では、LCD301を第一の位置に位置付けた場合について説明する。LCD301を第二の位置に位置付けた場合においても、LCD301と被写体303との位置関係にほぼ変化がないとみなせるため、本実施形態の原理は第二の位置においても同様に適用可能であることに留意されたい。
なお、LCD301は、画像処理装置305から入力されたパターンを表示する。LCD301がパターンを表示することで、LCD301に表示したパターンは、ステージ304に固定された被写体303に投影される。
撮像装置302は、例えば、1台のカメラであって、ステージ304に固定された被写体303を撮像して撮像画像を取得する。撮像装置(以下、カメラという)302の光軸は、被写体303(ステージ304)の中心と一致するように調整される。カメラ302の画角は、例えば、光学的に被写体ステージ304に固定された被写体303の全体が入るように調整される。カメラ302は、取得した撮像画像を画像処理装置305に出力する。
ステージ304は、被写体303を固定可能な台であって、ステージ304の中心軸周りに回転可能である。これにより、ステージ304に固定された被写体303は、回転方向全体の領域がカメラ302の撮像方向(撮像視野)に正対可能となり、カメラ302でステージ304の回転方向に沿う被写体303全体の領域を撮像できる。なお、被写体303は、例えば、その中心がステージ304の中心軸と一致するように固定される。ステージ304には位置センサ(不図示)が設けられており、位置センサが検出したステージ304の回転位置データは、画像処理装置305に出力される。
画像処理装置305は、例えば、パーソナルコンピュータなどの任意の情報処理装置である。画像処理装置305は、ユーザ操作を受け付けるキーボードやマウスなどの入力装置306を有する。画像処理装置305は、入力装置306を介したユーザ操作で後述のパラメータを選択可能に表示する表示装置307を有する。
本実施形態では、被写体303は、例えば全領域に鏡面を持ち、その形状が直径10cmの球体であるとする。LCD301と被写体303の中心からの距離は10cmであり、LCD301の横幅(図3にて上下方向の長さ)は100cm(16:9のアスペクト比のディスプレイで46インチサイズ相当)であるとする。カメラ302は、中心点がLCD301の端部(図3にてLCD301の下端部)から5cmの位置に配置されると共に、撮像方向が被写体303となり、カメラ302の光軸が被写体303の中心に一致するように配置される。
ここで、LCD301の画素とグレイコードパターンとの関係について説明する。図4は、LCD301に表示されるグレイコードパターンの従来例を示す図である。グレイコードパターン411−416は縦縞のグレイコードパターン例であり、グレイコードパターン421−426は横縞のグレイコードパターン例である。グレイコードは、明部および暗部で示され点灯非点灯の白黒二値で表現されたバイナリコードの一種であり、ノイズに対してロバストになるように工夫されている。すべてのグレイコードパターン411−416、421−426を符号の若番から順番にLCD301に表示し何枚目で点灯であり何枚目で非点灯であるかが、LCD301の各画素で固有である特徴を持つ。すなわち、LCD301の各画素は、グレイコードと対応付けられ固有のグレイコードを持つ。そのため、縦縞または横縞のグレイコードパターンが例えば10枚のグレイコードパターンであれば一方向1024画素について固有のパターンが与えられる。縦縞または横縞のグレイコードパターンが例えば12枚のグレイコードパターンであれば、一方向4096画素について固有のパターンが与えられる。LCD301のような二次元配列であれば縦縞および横縞のグレイコードパターンで同様に、LCD301に表示する。例えば、縦縞および横縞それぞれ10枚のグレイコードパターンを用いることで1024×1024のディスプレイの各画素について固有のパターンを与えることができる。すなわち、グレイコードパターンの枚数は、LCD301の解像度に応じて適宜に設定される。
したがって、カメラ302側では、グレイコードパターンの何枚目で点灯し、何枚目で非点灯であるかを記録するだけで、カメラの各画素に到達する反射光はLCD301のどの画素を発光させることで取得された反射光であるかを特定することができる。
図5は、従来例として縦縞のグレイコードパターン416をLCD301から被写体303に投影し、その反射光をカメラ302で撮像した撮像画像例を示す図である。撮像画像500は、被写体の輪郭501内にて、被写体に投影されたグレイコードパターンの反射像510のみが視認可能な画像である。
反射像510は、中央部分511にてパターンの周期が大きくなる特徴を有する。すなわち、反射像510は、中央部分511にて1パターン当たりの幅が大きくなる特徴を有する。反射像510は、左端部分および右端部分512にてパターンの周期が確認できないほど小さくなる特徴を有する。すなわち、反射像510は、右端部分512にて1パターン当たりの幅が小さくなる特徴を有する。
パターンの周期が大きい反射像510の中央部分511は、まだ空間的に解像される余地があるため、さらに細かいグレイコードパターンが投影された被写体を撮像して被写体の反射像を含む撮像画像を取得する必要がある。一方、パターンの周期が小さい反射像510の右端部分512では、パターンを確認し難く、グレイコードパターンの白黒判定が困難であり、これ以上細かいパターンを利用することは意味が無いことを示している。むしろ、反射像の右端部分512および左端部分に対し二値化処理を行う際にどちらになるか不確定要因となり、ノイズの原因となりうる。しかしながら、従来例で、解像度を増すには、反射像510の中央部分511の解像度に合わせてさらに細かいパターンを用いた撮像を余儀なくされる。
以上を前提とし、以下では本実施形態の詳細について説明する。
<画像処理装置のハードウェア構成>
図6は、画像処理装置305のハードウェア構成例を示す図である。画像処理装置305は、CPU3051、RAM3052、ROM3053、二次記憶装置3054、入力インターフェース3055、および出力インターフェース3056を含む。画像処理装置305の各構成要素は、システムバス3057によって相互に接続される。画像処理装置305は、入力インターフェース3055を介してカメラ302および入力装置306および外部記憶装置601と接続される。画像処理装置305は、出力インターフェース3056を介してLCD301および表示装置307および外部記憶装置601と接続される。
CPU3051は、RAM3052をワークメモリとして、ROM3053などに格納されたプログラムを実行し、システムバス3057を介して画像処理装置305の各構成要素を統括的に制御する。これにより、後述する様々な処理が実行される。二次記憶装置3054は、画像処理装置305で取り扱われる種々のデータを記憶する記憶装置であり、例えばハードディスクドライブ(HDD)が用いられる。CPU3051は、システムバス3057を介して二次記憶装置3054へのデータの書き込みおよび二次記憶装置3054に記憶されたデータの読出しを行う。なお、二次記憶装置3054にはHDDの他に、光ディスクドライブやフラッシュメモリなど、様々な記憶デバイスを用いることが可能である。
入力インターフェース3055は、例えば、USBやIEEE1394等のシリアルバスインターフェースである。画像処理装置305は、入力インターフェース3055を介して、外部装置からデータや命令等を入力する。本実施形態では、画像処理装置305は、入力インターフェース3055を介して、外部記憶装置601(例えば、HDD、メモリカード、CFカード、SDカード、USBメモリなどの記憶媒体)からデータを取得する。
画像処理装置305は、カメラ302で被写体を撮像して取得した撮像画像などのデータを、入力インターフェース3055を介して取得する。また本実施形態では、画像処理装置305は、入力装置306に入力されたユーザの指示を、入力インターフェース3055を介して取得する。入力装置306は、マウスやキーボードなどの入力装置であり、ユーザの各種の指示を入力する。
出力インターフェース3056は、入力インターフェース3055と同様にUSBやIEEE1394等のシリアルバスインターフェースである。なお、出力インターフェース3056は、例えばDVIやHDMI(登録商標)等の映像出力端子であってもよい。画像処理装置305は、出力インターフェース3056を介して、外部装置にデータ等を出力する。本実施形態では、画像処理装置305は、出力インターフェース3056を介してLCD301や表示装置307や外部記憶装置601に、CPU3051によって処理されたデータ(例えば、画像データ)を出力する。なお、画像処理装置305の構成要素は上記以外にも存在し得るが、ここでは説明を省略する。
<画像処理装置の機能構成>
次に、画像処理装置305の機能構成について、図7を参照して説明する。図7は、画像処理装置305の機能構成を示すブロックを含む図である。画像処理装置305は、パラメータ取得部701、投影パターン生成部702、撮像画像取得部703、キャリブレーション取得部704、詳細形状生成部705を有する。被写体303は、ステージ304に固定されているとする。なお、画像処理装置305の各部の一部もしくは全部は、CPU3051が二次記憶装置3054に格納されたプログラムをRAM3052に展開し、実行することで実現される。あるいは、各部の一部もしくは全部は、専用のハードウェアによって実現されてもよい。
パラメータ取得部701は、例えばマウスやキーボードなどの入力操作によってユーザが指定したパラメータをパラメータ記憶部710から取得する。パラメータ記憶部710は、例えば、詳細につき後述するパラメータを、パラメータと被写体303の形状と対応させたルックアップテーブルなどのデータを格納する。パラメータ記憶部710は、例えば、外部記憶装置601などで実現される。被写体303の形状として、例えば、曲率や曲率半径などが挙げられる。なお、パラメータは、予め、曲率や曲率半径などの被写体303の形状と対応させて導出されたデータである。パラメータ記憶部710に格納された複数のパラメータは、ユーザにより選択可能に表示装置307に表示される。パラメータ取得部701は、取得したパラメータを投影パターン生成部702に出力する。
投影パターン生成部702は、グレイコードパターンとパラメータと後述の式1などの変換式を用いて、LCD301に表示する投影グレイコードパターン(以下、投影パターンという)を生成する。投影パターン生成手順の詳細については後述する。投影パターン生成部702は、生成した投影パターンを撮像画像取得部703に出力する。なお、投影パターンは、LCD301の解像度などに応じた枚数のグレイコードパターンで構成される。投影パターンは、詳細につき後述する互いが異なる複数のグレイコードパターンで構成され、互いが直交する第1パターン(縦縞のグレイコードパターン)および第2パターン(横縞のグレイコードパターン)を含む。グレイコードパターンは、公知の手法で作成されたパターンであって、二次記憶装置3054などに予め格納される。
撮像画像取得部703は、投影パターンをLCD301に出力する。LCD301が投影パターンを表示して被写体303に投影する。撮像画像取得部703は、投影パターンが投影された被写体303をカメラ302で撮像した撮像画像(以下、撮像データともいう)を取得する。撮像画像は、投影された投影パターンを被写体の鏡面で反射した鏡面反射像を含む。撮像画像取得部703は、取得した撮像画像を詳細形状生成部705に出力する。
キャリブレーション取得部704は、キャリブレーション記憶部711に格納されたキャリブレーション情報を取得し、取得したキャリブレーション情報を詳細形状生成部705に出力する。キャリブレーション情報は、例えば、LCD301の位置および姿勢等の投影パターンの投影に関する情報、カメラ302の位置および姿勢等の撮像に関する情報、被写体の303の位置等に関する情報を含む。キャリブレーション情報は、予め公知の手法で生成される。キャリブレーション記憶部711は、例えば、外部記憶装置601などで実現される。
詳細形状生成部705は、撮像画像取得部703から入力された撮像画像と、キャリブレーション取得部704から入力されたキャリブレーション情報とを用いて、被写体303の詳細な立体形状(三次元形状)に関する詳細形状情報を生成する。詳細形状情報(三次元情報ともいう)の生成手順の詳細については後述する。詳細形状生成部705は、生成した被写体303の詳細形状情報(以下、詳細形状ともいう)を詳細形状記憶部712に出力する。
詳細形状記憶部712は、詳細形状生成部705から入力された詳細形状を格納する。詳細形状記憶部712は、例えば、二次記憶装置3054などで実現される。
(詳細形状生成処理手順例)
次に、画像処理装置305で行われる、詳細形状の生成処理手順について、図8を参照して説明する。図8は、被写体の詳細形状情報生成処理手順例を示すフローチャートである。具体的には、画像処理装置305がパターン、パラメータ、キャリブレーション情報および撮像画像に基づき生成した、被写体の詳細形状情報を外部記憶装置に格納するまでの手順を示したフローチャートである。図8のフローチャートで示される一連の処理は、CPU3051が二次記憶装置3054に記憶されているプログラムコードをRAM3052に展開し実行することにより行われる。あるいはまた、図8におけるステップの一部または全部の機能をASICまたは電子回路等のハードウェアで実現してもよい。以降、フローチャートに従い、処理のフローを説明する。なお、フローチャートの説明における記号「S」は、ステップを表すものとする。この点、以下のフローチャートの説明においても同様とする。
S801にて、パラメータ取得部701は、パラメータ記憶部710に格納された複数のパラメータの中から、入力装置306を介して不図示のユーザによるパラメータの選択を受け付け、選択されたパラメータを取得して投影パターン生成部702に出力する。例えば、パラメータ取得部701は、予め導出されたパラメータと曲率半径の対応関係を示すデータを表示装置307に表示し、入力装置306を介してユーザによるパラメータの選択を受け付け、受け付けたパラメータを投影パターン生成部702に出力する。すなわち、投影パターン生成部702は、パラメータ記憶部710に格納されパラメータの中から、入力装置306を介したユーザ操作で選択されたパラメータを取得する。投影パターン生成部702は、二次記憶装置3054などに格納された複数のグレイコードパターンを取得する。投影パターン生成部702が取得する複数のグレイコードパターンは、従来の手法で作成された、明部と暗部の領域が交互に規則的に配置されるグレイコードパターンであって、例えば、図4に示すグレイコードパターンである。
パラメータは、あらかじめ被写体の形状とパラメータの対応を実測して記録、あるいは演算して導出することで取得される。また、パラメータは、シミュレーションなどの演算で導出した結果から作成されたパラメータのルックアップテーブル(LUT)をデータベースに格納しておき、データベースからパラメータのLUTを読み込んでもよい。
なお、被写体が目標の形状で生産されたか、被写体にキズなどがないかなどの検査用途などで被写体の詳細形状情報を用いる場合、投影パターンを生成するための変換式に用いるパラメータを固定値とし、パラメータの取得を省略することも可能である。これは、被写体の形状が全て同じであり、変換式に用いるパラメータも被写体間の差が無く全て同じであるためである。
S802にて、投影パターン生成部702は、パラメータ取得部701から入力されたパラメータと、二次記憶装置3054などから取得したグレイコードパターンとに基づき、被写体303に投影する投影パターンを生成する。投影パターン生成部702は、生成した投影パターンを撮像画像取得部703に出力する。投影パターンの生成は、投影パターン生成部702がLCD301の解像度に応じて取得した全てのグレイコードパターンについて実行する。
S803にて、撮像画像取得部703は、投影パターン生成部702から入力された投影パターンをLCD301に出力する。LCD301は、撮像画像取得部703から入力された投影パターンを表示して被写体303に投影する。撮像画像取得部703は、投影パターンが投影された被写体303をカメラ302で撮像して撮像画像(以下、撮像データともいう)を取得する。撮像画像取得部703は、取得した撮像画像を詳細形状生成部705に出力する。このような投影パターンの投影と被写体303の撮像とは、S802において生成した全ての投影パターンを用いて実行する。投影パターンの投影と被写体303の撮像は、ステージ304の回転方向に沿う被写体303の周方向全体に対して実行する。
S804にて、詳細形状生成部705は、キャリブレーション取得部704が取得したキャリブレーション情報と、撮像画像取得部703から入力された撮像画像に基づき、被写体303の詳細形状情報を生成する。詳細形状生成部705は、生成した被写体303の詳細形状情報を詳細形状記憶部712に出力する。詳細形状記憶部712は、詳細形状生成部705から入力された被写体303の詳細形状情報を格納する。なお、キャリブレーション取得部704は、キャリブレーション情報をキャリブレーション記憶部711から取得する。
以下、パラメータの導出例について、具体的に説明する。
先ず、被写体に関し、いくつかの形状についてシミュレーションを実行する。図9及び図10はそのシミュレーションに関しての概略を示した図である。
図9(a)、(b)は、投影パターンのうち、縦縞のグレイコードパターン(第1パターン)に関するシミュレーションモデルの概略を示す図である。図9(a)は、被写体とディスプレイとカメラ素子(画像センサ)の関係例を示す図である。図9(b)は、図9(a)のモデルにて、ディスプレイ上の相対位置座標とカメラ素子の位置座標の関係例を示すグラフである。ここでは、LCD301、カメラ素子3021、全領域に鏡面を持つ被写体303の3つの要素からなる簡単なモデルを用いる。LCD301およびカメラ素子3021は、所望の位置に配置される。LCD301は被写体303との距離がL1となる位置に配置される。被写体303を半径rの球体とする。グレイコードパターンの導出範囲は、図9(a)に示す通り上から俯瞰した2次元とする。実際のカメラは光学的には焦点を中心にスケーリングファクターを伴い素子に投影されるモデルが正しいが、ここでは、簡略化のためカメラ素子は無限遠にあり、球体の被写体で反射された光は平行にカメラ素子に直接投影される、とする。
先ず、LCD301の任意の画素を点灯した場合、被写体303で鏡面反射しカメラ素子3021のどの画素で観測されるかについて導出する。すなわち、LCD301の任意の画素、被写体の表面の位置、カメラ素子の画素の対応関係について導出する。シミュレーションの場合、カメラ素子3021の任意の画素がカメラ素子3021からトレースし、LCD301のどの画素に対応するかを導出するほうが簡便である。
図9(b)において、縦軸はカメラ素子3021のy位置座標(画素)を示している。縦軸の「0」は、LCD301から投影し被写体303で反射してカメラ素子3021に至る、被写体でのパターンの反射領域において、カメラの素子の左端に対応する位置を示している。縦軸の「1」は、LCD301から投影し被写体303で反射してカメラ素子3021に至る、被写体でのパターンの反射領域において、カメラの素子の右端に対応する位置を示している。
図9(b)において、横軸は、単位がmであって、カメラ素子3021の画素に対応するLCD301上の相対位置座標を示している。横軸の「−0.5」は、カメラ素子の位置「0」に対応するLCD上の相対位置を示している。横軸の「0.5」は、カメラ素子の位置「1」に対応するLCD上の相対位置を示している。横軸の「0」は、カメラ素子の位置「0」に対応するLCD上の相対位置とカメラ素子の位置「1」に対応するLCD上の相対位置の中間となるLCD上の相対位置を示している。
図9(b)に示すように、実線の曲線が中央部でカメラ素子のy位置座標が極端に変化する形状となっていることがわかる。これは、図5においてグレイコードのパターンが拡大され周期が大きくなっている箇所511に相当する。また、カメラ素子のy位置座標の変化がほとんどない左右両端(縦軸の「0」付近や「1」付近)はパターンがつぶれている箇所512に相当する。
図9(b)において、実線の曲線は、シグモイド関数に近いことがわかる。そこで、図9(b)の実線の曲線を以下の式1で近似する。
式1には、aとbの二つのパラメータが存在する。パラメータa、bは、例えば、図9(b)の実線の曲線に基づき導出される。パラメータbは、図9(b)のグラフにて、カメラ素子のy位置座標の半値(0.5)における横軸座標を、パラメータaは、その座標におけるグラフの傾きkから以下の式2を用いてa=4kで定義すればよい。
その結果、図9(b)の場合、以下の式(3)が導出される。
横縞のグレイコードパターンに関しても、縦縞のグレイコードパターンと同様に、導出する。図10(a)−(c)は、投影パターンのうち、横縞のグレイコードパターン(第2コードパターン)に関するシミュレーションモデルの概略を示す図である。図10(a)は、図9(a)のカメラ素子から被写体を見た状態にて、被写体とディスプレイとカメラ素子(画素センサ)の関係例を示す図である。図10(b)は、図10(a)に示す被写体を俯瞰した図である。図10(c)は、図10(a)、(b)のモデルにて、ディスプレイ上の相対位置座標とカメラ素子の位置座標の関係例を示すグラフである。
横縞のグレイコードパターンの導出は、図10(a)、(b)にて、被写体303における一点破線3031上の位置での反射が、LCD301のどの光点からの反射かを基準として作成する。一点破線3031は被写体中央からLCD301方向のベクトル3033と、カメラ中心方向のベクトル3032の成す角の中心を通る線であり(図10(b)参照)、この線に沿ってグレイコードの間隔が均等になるようにすることが望ましい。
図10(c)において、縦軸(z座標)は、カメラ素子3021の一点破線3031上の画素を示し、横軸(z0座標)は、カメラ素子3021の画素に対応するLCD301上の相対位置座標を示している。縦軸は、被写体である球上の相対的な位置で「0」が被写体中央を示し、「±1」がそれぞれ、被写体303の上下の頂点部の位置を示している。横軸は、単位がmであって、LCD301の縦方向の座標を示している。
図10(c)において、実線の曲線は、縦方向の縞を持つグレイコードパターンの場合と同様、シグモイド関数に近いことがわかる。そこで、図10(c)のグラフでは、縦軸の範囲が−1から1の範囲であることから、図10(c)の実線の曲線を以下の式4で近似する。
パラメータc,dは、例えば、図10(c)の実線の曲線に基づき導出される。パラメータdは、図10(c)のグラフにて、カメラ素子のz位置座標の原点(0)における横座標(z0)を、パラメータcは、その座標におけるグラフの傾きから、上述の図9(b)の場合と同様にして導出される。その結果、図10(c)の場合、以下の式5が導出される。
ここで、図9(b)のグラフに関し、図11を用いて具体的に説明する。図11は、公知の手法で作成したグレイコードパターン1101と投影パターン1102の関係例を説明する図である。縦軸は、カメラ素子の位置座標を示している。横軸は、ディスプレイ上の相対位置座標を示している。グラフ中の実線の曲線は、シミュレーションなどで予め導出したパラメータa,bの値を式1に代入して得られた式に対応する。
図11に示すように、公知の手法で作成したグレイコードパターン1101を投影パターン1102に変換できることがわかる。すなわち、投影パターン1102をLCD301に表示して被写体303に投影することで、投影パターン1102に投影された被写体303をカメラ302で撮像して取得した撮像画像においては、公知の手法で作成したグレイコードパターンと同じとなる。撮像画像において、明部と暗部の領域が交互に規則的に配置されるグレイコードパターン1101となる。グレイコードパターン1101に基づき被写体の表面の三次元情報を生成することで、空間分解能の低下が抑制される。
図12は、上述の図10および図11を用いて説明した手法と同じ手法を用いて、投影パターン生成部702で生成したグレイコードパターン例(以下、本実施形態の投影パターン例という)を示す図である。本実施形態の投影パターンと従来のグレイコードパターンとの違いについて説明する。先ず、従来のグレイコードパターンでは、例えば、図4に示すように、白黒明暗のパターンの周期が一定である。すなわち、明部と暗部の領域が交互に規則的に配置される。これに対して、本実施形態で使用するグレイコードパターンにおいては、例えば、縦縞のパターン1211−1215のように、白黒明暗のパターンの周期が不定に変化する。縦縞のパターン1211−1215では、一般的には左右方向両側で周期が大きく、左右方向中央部で周期が小さくなり、全体的に中央に対して縮小した形になることがわかる。また、横縞のパターン1221−1225のように、白黒明暗のパターンの周期が不定に変化する。また、横縞のパターン1221−1225では、一般的には上下方向両側で周期が大きく上下方向中央部で周期が小さくなり、全体的に中央に対して縮小した形になることがわかる。
図13は、グレイコードパターンが投影された被写体の撮像画像例を示す図である。なお、図13(a)−(d)の各図に示されるグレイコードパターンは、同じレベル(縞数)のコードであるとする。
図13(a)は、従来の縦縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。図13(b)は、投影パターン生成部702で生成した縦縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。鏡面反射像1310では、右端部分1311においてグレイコードパターンの白黒明暗がつぶれ二値判定が困難な領域となっていることがわかる。これに対し、鏡面反射像1320では、右端部分1321においても、グレイコードパターンの白黒明暗が均一である領域となっていることがわかる。すなわち、撮像画像において、明部および暗部の領域が規則的に交互に現われていることがわかる。
図13(c)は、従来の横縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。図13(d)は、投影パターン生成部702で生成した横縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。鏡面反射像1330では、上端部分1331においてグレイコードパターンの白黒明暗がつぶれ二値判定が困難な領域となっていることがわかる。これに対し、鏡面反射像1340では、上端部分1341においても、グレイコードパターンの白黒明暗が均一である領域となっていることがわかる。すなわち、撮像画像において、明部および暗部の領域が規則的に交互に現われていることがわかる。
上述したように、本実施形態の投影パターンによる撮像画像では、縦縞および横縞のどちらのパターンであっても、従来のグレイコードパターンによる撮像画像と比べて縞の間隔が均一化していることが確認された。また、従来のグレイコードパターンによる撮像画像では、疎になっていた領域が密に、密になってパターンがつぶれていた領域にも判別可能な縞が存在していることが確認された。縞の間隔が空間分解能にそのまま反映されることを考慮すると、撮像画像中のパターンの均一化によって、従来例では空間分解能が低かった疎の部分(パターン幅が大きい部分)が密となり、従来例と同じレベルでも空間分解能が向上する。空間分解能の向上の目安は、式2における線形式にした際の傾きa/4である。本実施形態の場合、空間分解能は、縦縞のグレイコードパターンではおよそ0.48となり、横縞のグレイコードパターンでは0.20となる。これは、従来例の場合の傾きである0.1に比べるとそれぞれ最大で4倍、2倍の密度の縞が生成できていることを示し、同時に従来例のグレイコードパターンに比べてそれぞれ2枚、1枚の撮像枚数が削減可能であることを示している。
表1は、画像計測システム全体のパフォーマンスがどれだけ向上したかを示す表である。
表1では、縦項目として、被写体とLCDの距離、被写体全体の撮像に要するステージポジション数、各ポジションでの撮像枚数、全ポジションでの総撮像枚数、パターン潰れの有無を示している。比較例で必要なグレイパターンのコード枚数を10種類とした。実際には縦横それぞれ白黒反転させたパターンを用いて差分を導出するため、標準では40枚必要である。さらには、投影方向が同じとなる2箇所それぞれに位置付けたLCDから投影パターンを投影した被写体を撮像するため、80枚必要となる。比較例として比較例1と比較例2を示しており、その違いはLCDと被写体の距離であるLになる。Lが小さいほど被写体とLCDの距離が近くなるため、被写体の撮像可能な領域が増加し回転ステージによるポジション数が減少する。しかし、距離Lを大きく、被写体とLCDを離して設置すると、例えば、図12に示すような、投影パターンを使用する必要はなくなり、ノイズ要因となるパターン潰れが生じにくくなる。比較例1ではLを50cmと大きくしたが、比較例2では10cmまで近づけたため、撮像可能な領域が増加して、回転ステージのポジション数は半分に減少したが、一回のポジションでの撮像枚数が増加しており、またノイズ要因となるパターン潰れが目立つ。
それに対して、実施例においては1ポジションでの撮像枚数が減少しており、同時にパターン潰れによるノイズも減少する。そのため、比較例1、比較例2および実施例の3つの中では、実施例の場合、総撮像枚数が最も減少することが分かる。撮像枚数が最適化され全体の撮像時間が短縮化されることになる。これは、被写体の表面の三次元形状の生成処理の高速化に等しく、本実施形態の効果を示している。
上述した投影パターンに関するパラメータは、被写体の大きさと場所によっても変化する。図14(d)は、上記で説明した半径10cmの球形状の被写体用に作成した投影パターン1401(図14(a)参照)が投影された直径50cmの被写体の撮像画像例を示す図である。図14(d)に示すように、被写体の輪郭1410内における投影パターンの鏡面反射像1411では、場所によってパターンの周期(明部および暗部の領域の繰り返し)が変化していることがわかる。
図14(b)は、上記のプロセスと同じ手法で式1のパラメータa、bを再度導出して作成した投影パターン例を示す図である。図14(e)は、図14(b)に示す投影パターン1402が投影された直径50cmの被写体の撮像画像例を示す図である。図14(e)に示すように、被写体の輪郭1410内における投影パターンの鏡面反射像1412では、パターンの周期が均一化していることがわかる。すなわち、撮像画像において、明部と暗部とが規則的に現われていることがわかる。
図14(c)は、従来のグレイコードパターン例を示す図である。図14(f)は、図14(c)に示すグレイコードパターン1403が投影された直径50cmの被写体の撮像画像例を示す図である。図14(f)に示すように、被写体の輪郭1410内における投影パターンの鏡面反射像1413では、場所によってパターンの周期が変化していることがわかる。
上述した通り、パラメータa、bは、被写体の大きさによって異なるため、撮像毎に異なる種類の被写体の形状を取得しようとする場合、適切な投影パターンを選択する必要がある。また、前述の通り非特許文献1においては、LCD301を投影方向が同じとなる2箇所で撮像を行う。すなわち、撮像パターンが投影された被写体の撮像を2回行う。撮像を行う際、LCDに表示する投影パターンは、被写体303との距離が変わるため異なる形状を用いることにも留意されたい。
図15は、同じ撮像方向にて2箇所に配置されたLCDによる入射光のベクトルとカメラの視線ベクトルと被写体の三次元情報との関係を説明するための図である。上述したように、投影パターンの鏡面反射像にて、パターンの周期が均一となる。よって、前方位置のLCDに表示したパターン3011の座標位置Pf(sf、tf)と後方位置のLCDに表示したパターン3012の座標位置Pb(sb、tb)とから入射光の方向を特定することができる。さらに、キャリブレーション情報のうちのLCDの位置および姿勢等の投影パターンの投影に関する情報を用いることで入射光のベクトルLが導出される。また、カメラ302による撮像画像3022の画像座標Pc(x,y)を特定することができる。そして、キャリブレーション情報のうちのカメラの位置および姿勢等の撮像に関する情報を用いることでカメラの視線ベクトルVが導出される。そして、入射光のベクトルLとカメラ視線のベクトルVに基づき、これらベクトルL,Vの交点1501または最も近接した近接位置が、被写体の三次元情報として導出される。
以上、説明したように、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。すなわち、カメラ側から見たパターンの周期を均一化することができる。同じレベルのグレイコードにおいてもカメラ側から見たパターンの周期が揃うため、空間分解能が向上し、同時にノイズ要因となるコードの周期がつぶれて見える個所がなくなる。その結果、同じ空間分解能の要求に対して撮像枚数が従来のグレイコードパターンを用いる場合と比べてよりも少なくて済み、ノイズにも強くなる。
なお、上記では被写体として鏡面体を例に説明を行ったが、本実施形態の適用はこれに限られるものではなく、鏡面性の強い反射特性を持つ物体であればよく、例えば自動車の外装などの塗装面やプラスチックなどの樹脂にも適用が可能である。さらに、ガラスなどの透明な物体であっても鏡面性の強い反射特性を持つ物体に適用が可能である。
[実施形態2]
実施形態1では、パラメータ記憶部710に予め格納された複数のパラメータの中からユーザが選択した最適なパラメータを使用して投影パターンを生成する場合について説明した。本実施形態では、投影パターンを生成するためのパラメータをキャリブレーション情報および被写体の概略形状から自動的に取得する(生成する)プロセスを有する場合について説明する。
図16は、本実施形態に係る画像処理装置の機能構成を示すブロックを含む図である。なお、本実施形態では、上述の実施形態の画像処理装置と同一のブロックには同一符号を付記しその説明を省略する。
本実施形態の画像処理装置305は、パラメータ取得部1601、キャリブレーション取得部1604、概略形状取得部1606を有する。
パラメータ取得部1601は、被写体の概略形状およびキャリブレーション情報に基づき、パラメータを取得する。パラメータは、被写体の概略形状およびキャリブレーション情報に基づき、撮像画像において明部および暗部の領域が規則的に現われるように、被写体の形状に応じて明部および暗部の領域を変更した投影パターンを生成するためのパラメータである。すなわち、パラメータ取得部1601は、被写体の概略形状およびキャリブレーション情報に基づき、式1などのパラメータを取得する。パラメータは、あらかじめ被写体の概略形状とパラメータの対応を実測して記録、あるいは演算して導出することで取得される。
このように被写体の概略形状に応じた最適化されたパラメータの取得手法を内蔵することにより、様々な被写体の形状に正確に対応した投影パターンを生成することが可能となる。その結果、鏡面反射する面を有する被写体の表面の、より正確な三次元情報を生成することが可能となる。
キャリブレーション取得部1604は、キャリブレーション記憶部711に格納されたキャリブレーション情報を取得し、取得したキャリブレーション情報をパラメータ取得部1601と詳細形状生成部705に出力する。キャリブレーション取得部1604が取得するキャリブレーション情報は、キャリブレーション取得部704が取得するキャリブレーション情報と同様である。すなわち、キャリブレーション取得部1604は、例えば、LCD301の位置等の投影パターンの投影に関する情報、カメラ302の位置および姿勢等の撮像に関する情報、被写体の303の位置等に関する情報を含むキャリブレーション情報を取得する。
概略形状取得部1606は、概略形状記憶部1614に格納された被写体の概略形状を取得する。概略形状取得部1606は、取得した被写体の概略形状をパラメータ取得部1601に出力する。概略形状は、例えば、ステージでいくつかのポジションから被写体のシルエットを撮り、このシルエット画像を基にシルエット法などの手法により取得される。シルエット法は、三角測量や反射特性を用いずに、被写体の概略形状を取得することができるので、鏡面体や透明体などの特殊な被写体に対しても有効な手法である。概略形状は、あらかじめ概略形状記憶部1614に格納される。概略形状記憶部1614は、例えば、外部記憶装置601などで実現される。
(詳細形状生成処理手順例)
次に、本実施形態の画像処理装置305で行われる、詳細形状情報の生成処理手順について、図17を参照して説明する。図17は、図16に示す画像処理装置305による被写体の詳細形状生成処理の手順例を示すフローチャートである。
S1701において、キャリブレーション取得部1604は、キャリブレーション情報をキャリブレーション記憶部711から取得し、取得したキャリブレーション情報をパラメータ取得部1601に出力する。概略形状取得部1606は、被写体の概略形状を概略形状記憶部1614から取得し、取得した被写体の概略形状をパラメータ取得部1601に出力する。
S1702において、パラメータ取得部1601は、概略形状とキャリブレーション情報とに基づき、パラメータを取得する。パラメータ取得部1601は、取得したパラメータを投影パターン生成部702に出力する。
S1703、S1704およびS1705での処理は、それぞれS802、S803およびS804での処理と同一であり、その説明を省略する。
以上、説明したように、被写体の概略形状およびキャリブレーション情報を取得することで、パターンを投影パターンに変換するパラメータを取得することができる。これにより、ユーザの入力操作によるパラメータの取得処理が不要となり、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。
このように形状に応じた最適化された投影パターンの生成手法を内蔵することにより、さまざまな被写体に正確に対応することが可能となる。
なお、投影パターン生成部702による投影パターンの生成方法は、上述した手法に限定されない。例えば、式2のように近似してもよいし、シミュレーションを実施してシミュレーションで得られたマップをそのまま利用してもよい。式1のパラメータa、bと、被写体303の半径rおよび被写体303とLCD301の距離L1とを紐付けるLUT(ルックアップテーブル)を読み込み、それを利用してもよい。また、外部から必要なパラメータを入力するなど概略形状情報とキャリブレーション情報を用いるさまざまな形態に適用可能である。
[実施形態3]
本実施形態では、実施形態2と同様、被写体の形状に応じて投影パターンを生成する。ただし、投影パターンを生成する際に概略形状情報やキャリブレーション情報を用いず、別途投影パターン生成のための撮像を実施し、被写体の概略に関する情報を取得する。
図18は、本実施形態に係る画像処理装置の機能構成を示すブロックを含む図である。なお、本実施形態では、上述の実施形態の画像処理装置と同一のブロックには同一符号を付記しその説明を省略する。
本実施形態の画像処理装置305は、パラメータ取得部1801、プレ撮像画像取得部1807を有する。
パラメータ取得部1801は、パラメータを取得する。パラメータは、プレ撮像画像に基づき、撮像画像取得部703で取得する撮像画像にて明部および暗部の領域が規則的に現われるように、被写体の形状に応じて明部および暗部の領域を変更した投影パターンを生成するためのパラメータである。すなわち、パラメータ取得部1801は、プレ撮像画像に基づき、式1などのパラメータを取得する。パラメータは、あらかじめ被写体の形状とプレ撮像画像の対応を実測して記録、あるいは演算して導出することで取得される。
プレ撮像画像取得部1807は、概略形状、キャリブレーション情報の代わりに、パラメータ取得部1801でパラメータを取得するための詳細につき後述するプレ撮像画像を取得する。プレ撮像画像は、あらかじめ、カラーグラデーションパターンを投影した被写体を撮像して取得された画像であって、外部記憶装置601などに格納される。プレ撮像画像取得部1807は、特許請求の範囲のプレ画像取得手段に相当する。
(詳細形状生成処理手順例)
次に、本実施形態の画像処理装置305で行われる、詳細形状情報の生成処理手順について、図19を参照して説明する。図19は、図18に示す画像処理装置305による被写体の詳細形状生成処理の手順例を示すフローチャートである。
S1901において、プレ撮像画像取得部1807は、LCDからカラーグラデーションパターンが投影された被写体を撮像したプレ撮像画像を取得する。図20(a)は、カラーグラデーションパターン例を示す図である。図20(b)は、図20(a)に示すカラーグラデーションパターンが投影された被写体のプレ撮像画像例を示す図である。カラーグラデーションパターン2001は、例えば、図20(a)に示すように、グラデーションによって色相が横方向(一方向)にて赤から紫へと変化している。なお、カラーグラデーションパターンは、図20(a)に示されるカラーグラデーションパターン例に限定されない。例えば、被写体が赤色である場合には、赤を除き、グラデーションによって、色相が黄から緑へ、緑から水色へ、水色から青へ、青から紫へ変化するカラーグラデーションパターンを用いることも可能である。すなわち、被写体の色に応じて、被写体と同一色を除いたカラーグラデーションパターンを用いることも可能である。
なお、上記では、グラデーションによって色相が横方向に変化するカラーグラデーションパターンを用いて説明したが、グラデーションによって色相が縦方向に変化するカラーグラデーションパターンを用いることも可能である。
プレ撮像画像は、例えば、図20(b)に示すように、被写体の輪郭2010内にて、被写体に投影されたカラーグラデーションパターンの反射像2002のみが視認可能な画像である。ここでは水色から青の領域の色の面積が濃く出ており、図20(a)のカラーグラデーションパターン2001の領域のうち、中央からやや右よりの箇所が拡大されて反射していることを示している。プレ撮像画像取得部1807は、取得したプレ撮像画像をパラメータ取得部1801に出力する。パラメータ取得部1801は、プレ撮像画像に基づき、プレ撮像画像のカラー情報から色に該当する箇所の縞を密に、各色相が均等に映るような、式1のパラメータa,bを生成する。パラメータ取得部1801は、生成したパラメータa,bを投影パターン生成部702に出力する。
S1902において、投影パターン生成部702は、パラメータa,bと、式1と、二次記憶装置3054から取得したパターンとに基づき、投影パターンを生成する。投影パターン生成部702は、生成した投影パターンを撮像画像取得部703に出力する。
S1903、S1904およびS1905での処理は、それぞれS802、S803およびS804での処理と同一であり、その説明を省略する。
以上、説明したように、プレ撮像画像を取得することで、パターンを投影パターンに変換するパラメータを取得することができる。これにより、被写体の概略形状、キャリブレーション情報を取得する必要がなく、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。
[実施形態4]
実施形態1では、一つのLCDを備える画像計測システムについて説明した。本実施形態では、複数のLCDを備える画像計測システムについて説明する。一つのLCDでは、LCDに表示した投影パターンを被写体に投影するため、被写体の大きさに比べてLCDの大きさを十分に大きくする必要がある。そのため、装置全体がLCDの大きさに律束される可能性があった。
図21は、本実施形態に係る画像計測システムの概略構成例を示す図である。なお、上述した実施形態と同一機器には同一符号を付記しその説明を省略する。本実施形態の画像計測システムは、5枚のLCD2101、2102、2103、2104、2105を有する。LCD2101、2102、2103、2104、2105はそれぞれ独立した投影パターンを表示する。各LCD2101、2102、2103、2104、2105に表示される投影パターンは、実施形態1のように決定されていてもよいし、実施形態2もしくは3のように決定されてもよい。その際は各々のLCD2101、2102、2103、2104、2105が独立して実施形態2および3で示した手法でグレイコードの生成を行う。
実施形態1の方法に倣うのであれば中央のLCD2101に表示する投影パターンは、周りのLCD2102−2105に表示する投影パターンに比べて周期が狭くなるように設定される。また、LCD2101−2105は、各LCD2101−2105から投影された投影パターンが被写体303にて重ならないように位置および姿勢が調整される。
以上、説明したように、複数のLCDから投影パターンを被写体に投影することで、1つのLCDから投影パターンを被写体に投影した場合と比べて、被写体に対して広範囲に亘って投影パターンを投影することができる。これにより、1つのカメラ302で1度の撮像によって、1つのLCDを用いた場合と比べて被写体の広範囲に亘る投影パターンの鏡面反射像を1度に取得することができる。その結果、鏡面反射する面を有する被写体の表面の三次元情報をより効率よく生成することができる。
[その他の実施形態]
上記では、被写体として球体を例に説明した。被写体の形状は球体に限定されない。形状が非曲面で構成される被写体に適用可能である。例えば、複数の様々な方向をもった平面によって構成された立体や、準平面構造のように大きな非平面の凹凸はあるが全体形状としては平面に近い形状に適用可能である。
上記では、符号化コードとしてグレイコードパターンを例に説明した。グレイコードパターンに限定されない。バイナリコードやその他さまざまなコードを用いることが可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
702 投影パターン生成部
703 撮像画像取得部
705 詳細形状生成部

Claims (17)

  1. 明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理装置であって、
    前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成するパターン生成手段と、
    前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得手段と、
    前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成手段と、
    を有する
    ことを特徴とする画像処理装置。
  2. 明部と暗部の領域が交互に規則的に配置されるパターンを前記投影パターンに変換する関数のパラメータを取得するパラメータ取得手段をさらに有し、
    前記パターン生成手段は、前記パラメータ取得手段で取得した前記パラメータと前記関数を用いて前記パターンを変換して前記投影パターンを生成する
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記パラメータ取得手段は、前記計測対象物の形状に応じた前記パラメータを取得することを特徴とする請求項2に記載の画像処理装置。
  4. 前記パラメータ取得手段は、前記計測対象物が有する曲面の曲率に応じた前記パラメータを取得することを特徴とする請求項2または3に記載の画像処理装置。
  5. 前記投影パターンの前記計測対象物への投影、前記計測対象物の撮像、前記計測対象物に関する情報を取得するキャリブレーション手段と、
    前記計測対象物の概略形状を取得する形状取得手段とを有し、
    前記パラメータ取得手段は、前記キャリブレーション手段で取得した前記情報、前記形状取得手段で取得した前記計測対象物の概略形状に基づき、前記パラメータを取得することを特徴とする請求項2に記載の画像処理装置。
  6. 前記計測対象物に、カラーグラデーションパターンを投影し撮像したプレ撮像画像を取得するプレ画像取得手段を有し、
    前記パラメータ取得手段は、前記プレ画像取得手段で取得した前記プレ撮像画像に基づき、前記パラメータを取得することを特徴とする請求項2に記載の画像処理装置。
  7. 前記プレ画像取得手段は、前記計測対象物と同一色を除いた前記カラーグラデーションパターンを用いて前記プレ撮像画像を取得することを特徴とする請求項6に記載の画像処理装置。
  8. 前記投影パターンを前記計測対象物に投影する投影手段は、前記投影パターンを表示する表示手段であることを特徴とする請求項1から7の何れか一項に記載の画像処理装置。
  9. 前記表示手段は複数で構成され、
    前記複数の表示手段はそれぞれ、互いが異なる前記明部および前記暗部の領域を有する前記投影パターンを表示することを特徴とする請求項8に記載の画像処理装置。
  10. 前記表示手段は、ディスプレイであることを特徴とする請求項8または9に記載の画像処理装置。
  11. 前記表示手段は、前記投影パターンをスクリーンに投影して表示するプロジェクタであることを特徴とする請求項8または9に記載の画像処理装置。
  12. 前記投影パターンが投影された前記計測対象物を撮像した撮像画像を取得する画像取得手段は、1台のカメラが撮像した前記撮像画像を取得することを特徴とする請求項1から10の何れか一項に記載の画像処理装置。
  13. 前記投影パターンは、互いが異なる複数のパターンで構成され、互いが直交する第1パターンおよび第2パターンを含むことを特徴とする請求項1から12の何れか一項に記載の画像処理装置。
  14. 前記投影パターンは、グレイコードパターンであることを特徴とする請求項1から13の何れか一項に記載の画像処理装置。
  15. 前記計測対象物は、鏡面体または透明体であることを特徴とする請求項1から14の何れか一項に記載の画像処理装置。
  16. コンピュータを請求項1から15の何れか一項に記載の画像処理装置として機能させるためのプログラム。
  17. 明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理方法であって、
    前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成する生成ステップと、
    前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得ステップと、
    前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成ステップと、
    を有する
    ことを特徴とする画像処理方法。
JP2019070527A 2019-04-02 2019-04-02 画像処理装置、画像処理方法およびプログラム Pending JP2020169856A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019070527A JP2020169856A (ja) 2019-04-02 2019-04-02 画像処理装置、画像処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019070527A JP2020169856A (ja) 2019-04-02 2019-04-02 画像処理装置、画像処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2020169856A true JP2020169856A (ja) 2020-10-15

Family

ID=72746332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019070527A Pending JP2020169856A (ja) 2019-04-02 2019-04-02 画像処理装置、画像処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2020169856A (ja)

Similar Documents

Publication Publication Date Title
US8938099B2 (en) Image processing apparatus, method of controlling the same, distance measurement apparatus, and storage medium
US10181202B2 (en) Control apparatus, robot, and control method
US20160245641A1 (en) Projection transformations for depth estimation
TW201525415A (zh) 用於校正雷射量測裝置的方法及其系統
JP2017129562A (ja) 測定システム、情報処理装置、情報処理方法およびプログラム
JP2015184056A (ja) 計測装置、方法及びプログラム
US9336607B1 (en) Automatic identification of projection surfaces
JP2020008502A (ja) 偏光ステレオカメラによる深度取得装置及びその方法
JP2020004085A (ja) 画像処理装置、画像処理方法及びプログラム
Park et al. Surface light field fusion
CN110462688B (zh) 使用基于模型的峰值选择的三维轮廓确定系统及方法
JP6425406B2 (ja) 情報処理装置、情報処理方法、プログラム
JP2018009927A (ja) 画像処理装置、画像処理方法及びプログラム
KR20200046789A (ko) 이동하는 물체의 3차원 데이터를 생성하는 방법 및 장치
US20230162442A1 (en) Image processing apparatus, image processing method, and storage medium
JP5441752B2 (ja) 環境内の3d物体の3d姿勢を推定する方法及び装置
KR20220005428A (ko) 이동식 스캐너를 사용한 텍스처 모델 생성
JP6412372B2 (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法およびプログラム
Loktev et al. Image Blur Simulation for the Estimation of the Behavior of Real Objects by Monitoring Systems.
TWI480507B (zh) 三維模型重建方法及其系統
JP6822086B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
JP2020169856A (ja) 画像処理装置、画像処理方法およびプログラム
JP2020112981A (ja) 検出装置、情報処理装置、検出方法、検出プログラム、及び検出システム
JP2016072691A (ja) 画像処理装置及びその制御方法、プログラム
EP3062516B1 (en) Parallax image generation system, picking system, parallax image generation method, and computer-readable recording medium