以下、添付の図面を参照して本発明の好適な実施形態のいくつかを説明する。
[第1実施形態]
第1実施形態の三次元計測装置は、被計測物にレーザ光源からスリット光を投影し、複数のカメラで複数の視点からその様子を観測し、光源と各カメラ(各視点)の対応関係を求める。そして、複数の視点から得られた対応関係を基に、計測対象物表面におけるスリット光の表面位置、面の向き、散乱特性に関するパラメータを含むパラメータセットを決定することにより、計測対象物の表面の三次元座標、すなわち三次元形状計測を実現する。
図1は、第1実施形態による三次元計測装置の構成例を示した図である。100は三次元計測装置であり、計測対象物の三次元形状を計測する。101は投影装置、102a〜102eは撮像装置、103は制御装置、104は計測対象物である。かかる構成を有する三次元計測装置100において、投影装置101は、後述するパターン光を計測対象物104に投影する。パターン光は計測対象物104の表面で反射または内部で散乱し、撮像装置102a〜102eによって撮像される。撮像装置102a〜102eのそれぞれの投影装置101に対する相対的な位置姿勢は既知である。撮像装置102a〜102eが撮像した画像(撮像画像)は制御装置103に送られる。制御装置103は、内部に備えるコンピュータおよび電気回路によって、投影装置101および撮像装置102a〜102eの動作を制御する。
図2は、第1実施形態に係る三次元計測装置100の機能構成例を示す機能ブロック図である。投影部201は、投影装置101を駆動して、投影パターン生成部204によって生成されたパターン光を、計測対象物104を含む計測空間に投影する。なお、投影の制御は制御部203から送出される投影制御信号を投影部201が受信することにより行われる。投影部201の機能は投影装置101によって実現される。
撮像部202a〜202eは、計測対象物104を含む計測空間を複数の視点から撮像することにより複数の撮像画像を得る撮像機能を実現する。たとえば、撮像部202a〜202eは、制御部203から送出される撮像制御信号を受信し、そのタイミングに基づき、あらかじめ指定されたシャッター速度、絞り、焦点位置で撮像装置102a〜102eを駆動して計測空間を撮像する。なお、撮像部202a〜202eに送出される撮像制御信号は全ての撮像部で必ずしも同期が取られている必要はなく、投影部201が投影するスリット光の向き(位置)が同じ状態で、各撮像装置から複数の撮像画像が取得されればよい。
撮像装置102a〜102eにより撮像された画像群は、撮像部202a〜202eを介して画像入力部206へと送られる。撮像部202a〜202eの機能は撮像装置102a〜102eによって実現される。本実施形態では、複数の視点として5つの視点を例示し、5つの撮像装置があるものとして説明を行うが、その数は5に限るものではない。また、必ずしも複数の視点に対応した数の撮像装置が必要ではなく、1つの撮像装置をロボットハンドの先端に取り付ける等して位置姿勢を制御しながら移動させて複数の視点からの撮影を行ってもよい。あるいは、計測対象物104と投影部201を相対的に固定して回転テーブル等を用いて計測対象物の方を動かすことで多視点撮影と同じ結果を得るようにしてもよい。
投影パターン生成部204は、撮像部202a〜202eで撮影された画像上での位置と投影部201で投影された光の位置との対応関係を求めるために必要なパターンを生成する。本実施形態では光切断法で用いられるスリット光を投影するものとして以下の説明を行う。ただし、パターン光はそのようなスリット光に限られるものではなく、構造化光、スポット光、グレイコードのような空間分割パターン画像等、周知の三次元計測用のパターン光を用いることができる。
パラメータ記憶部205は、三次元計測の実行に必要な各種パラメータを保持する。パラメータには、投影部201や撮像部202a〜202eを制御するための設定や較正データなどが含まれる。なお、パラメータ記憶部205の機能は制御装置103によって実現される。画像入力部206は、撮像部202a〜202eによって撮像された複数の撮像画像を受信し、不図示のメモリ領域にこれらを保持する。なお、撮像部202a〜202eのそれぞれは向きが異なるスリット光を計測対象物104に照射した複数の画像を撮像する。そのため、画像入力部206は、撮像部202a〜202eのそれぞれから順次に各スリット光に対応した撮像画像を入力し、メモリ領域に追加していく。画像入力部206はメモリ領域に保持されている撮像画像群を画像処理部207へと出力する。画像入力部206の機能は制御装置103によって実現される。
画像処理部207は、撮像部202a〜202eにより得られた撮像画像を画像入力部206から受信し、必要な画像処理を行うことにより、複数の視点の各々の撮像画像から計測対象物104に投影されたパターン光の像位置を取得する。画像処理部207が行う画像処理は、主として、スリット光の像位置としてのピーク位置の検出、ピーク位置を検出しやすくするための撮像画像の平滑化処理などを含む。画像処理部207の機能は制御装置103によって実現される。表面位置算出部208は、各視点についてスリット光の投影方向と画像ピーク位置の組を画像処理部207から受け取り、投影部201と撮像部202a〜202eの各較正データをパラメータ記憶部205から受け取る。そして、表面位置算出部208は、これらの情報に基づいて計測対象物104の正確な三次元座標を算出し、これを結果出力部209に送出する。
結果出力部209は、表面位置算出部208によって算出された計測対象物104の三次元座標を出力する。出力先としては、制御装置103に接続されたディスプレイ装置や他のコンピュータ、補助記憶装置などが含まれる。本実施形態では結果出力部209の機能は制御装置103によって実現される。
第1実施形態の表面位置算出部208では、
・計測対象物104の散乱特性と計測対象物104の表面位置のパラメータを含むパラメータセットに基づいて、たとえばシミュレーションにより、パターン光の像位置を取得し、
・画像処理部207により取得されたパターン光の像位置(本実施形態ではピーク位置)と、パラメータセットに基づいて取得されたパターン光の像位置とに基づいて各パラメータを調整し、パラメータセットを決定する、
ことにより、計測対象物104の表面の三次元座標を算出する。
より具体的には、表面位置算出部208は、
・パラメータセットの各パラメータに基づいて得られるパターン光の散乱状態に基づいて複数の視点の各々から観察されるパターン光の像位置(ピーク位置)を取得し、
・撮像画像から得られた像位置と散乱状態に基づいて得られた像位置とに基づいてパラメータセットを構成するパラメータを調整して、パラメータセットを決定し、
・決定されたパラメータセットに含まれる表面位置に基づいて三次元座標を算出する、
という処理を行う。ここで、散乱状態に基づく像位置の取得は、たとえば、パラメータセットにしたがって散乱状態を描画することにより得られた画像からパターン光の像位置(本実施形態ではピーク位置)を取得することで実現され得る。以下、計測時に計測対象物104の表面付近で起こる反射や表面下散乱による現象と、その現象を基にして表面位置算出部208がパターン光の散乱状態を判定(描画)し、計測対象物104の表面位置(三次元座標)を求める原理について説明する。
図3は、計測対象物104における表面下散乱の現象を示している。まず、図3を参照して、投影装置101から投影光が投影された計測対象物104が撮像装置102a〜102eによりどのように観測されるのかについて説明する。投影装置101から計測対象物104の表面位置311に照射されたスリット光301のうち、一部は反射光(不図示)として物体表面で反射され、一部は物体内部に入り込み散乱する(表面下散乱)。内部に入り込んだ光は物質内の媒体等に衝突しながら複雑に反射を繰り返し、散乱光として観測される。このような物質特有の散乱光の振る舞いを、その物質の散乱特性と呼ぶ。例えば散乱特性の違いによって、明るく見える領域の分布が異なったり、光の進行方向に対して異方的や等方的に散乱する度合いも異なったりする。331は半透明物体の内部において散乱によって明るく観測されるローブ状の領域を表している。
302a〜302eは撮像装置102a〜102eにより撮影された撮像画像に基づいて得られる観測光のピーク位置の方向を示しており、312a〜312eは計測対象物104の表面における観測光のピーク位置を示している。このように、各撮像装置から観測されるピーク位置は表面下散乱の影響により、その視点位置に応じて異なってくる。そのため、これらのピーク位置を基にして推定される三次元座標は、計測対象物104の物体表面の三次元位置を表すものにはならない。321はスリット光301の計測対象物104の内部における延長線である。322a〜322eは、それぞれ撮像装置102a〜102eに対応する見かけ上の三次元計測位置を表している。これら三次元計測位置322a〜322eは三角測量によって、スリット光301及びその延長線321と、撮像装置102a〜102eの撮像画像から得られる観測光のピーク位置方向との交点として求められる。このように、撮像画像から得られたピーク位置から物体表面の三次元座標を求める場合、推定される三次元位置は観測方向によって異なる。
次に、表面下散乱の影響を受けて、計測対象物104の物体表面で視点によって異なる位置に観測されるピーク位置から計測対象物104の表面位置を求める原理について説明する。
三次元計測装置100において、投影装置101がある方向にスリット光を照射した時、撮像装置102a〜102eにおいて観測されるピーク位置は、計測対象物104の物体表面の位置と面の向き、散乱特性に依存して決まる。つまり、計測対象物104の物体表面の位置と面の向き、散乱特性を変数として与えて、CGで使われるレンダリングや物理シミュレータを用いた散乱光の再現を行えば、観測されるピーク位置を求めることができる。正しい変数が与えられた場合に散乱光の再現を行うと、再現されるピーク位置は実際に観測されるピーク位置(撮像画像から得られるピーク位置)と等しくなるはずである。このようにピーク位置が等しくなった時の変数は、計測したい物体表面の位置を正しく表しているため、再現されるピーク位置が実際に観測されるピーク位置と等しくなるように変数(パラメータ)を求める問題を解けばよい。さらに、同時に求められる変数によって、面の向きと散乱特性を求めることができる。その求め方については、図4、図7のフローチャートの参照により後述する。なお、実際に、半透明物体において物体表面で反射する反射成分の影響は表面下散乱の観測光に比べて無視できるほど小さいことが多いため、問題にならない場合がほとんどである。したがって、本実施形態では、散乱特性に応じた反射光の影響を考慮しない構成を例示する。
次に、図4を用いて以上のような構成を有する三次元計測装置100による三次元計測処理の流れを説明する。まず、装置が起動されると、ステップS400において、初期化処理が行われる。ステップS400の初期化処理には、投影部201および撮像部202a〜202eの起動処理や、投影部201と撮像部202a〜202eの較正データを含む各種パラメータをパラメータ記憶部205に読み込み格納する処理などが含まれる。
ステップS401において、投影パターン生成部204はスリット光を投影する方向(投影方向)を決め、投影パターンを投影部201へ送出する。ステップS402において、投影部201はスリット光を計測対象物104に向けて投影する。撮像部202a〜202eはスリット光が投影された計測対象物104の画像を撮像し、画像入力部206は撮像により得られた画像を撮像画像として保持する。ステップS403において、画像処理部207は、スリット光が計測対象物104に投影され、撮像部202a〜202eで撮像した各画像(すなわち画像入力部206が保持した撮像画像)から、ピーク位置の検出を行う。
図5を用いてピーク位置の検出方法について説明する。図5(A)は、計測対象物104にスリット光が投影されている様子を表している。図5(A)の横破線領域に対応する画素位置と、その画素の輝度値をグラフに表したのが図5(B)である。画像処理部207では、このスリット光の強度分布に対して、図5(C)に示すように、例えば平滑化処理を行った後でガウスフィッティングを行うことによって、ピーク位置を検出する。検出されたピーク位置の座標は、その時のスリット光の投影方向と関連付けて保持される。
図4に戻り、ステップS404において、表面位置算出部208は、光線方向と、ステップS403において検出された撮像ピーク位置の座標との組から、計測対象物104の散乱特性に基づいて表面位置の三次元座標を算出する。三次元座標の算出方法については、後で詳しく述べる。続いて、ステップS405において、ユーザが指示した三次元計測を行う領域の計測を終了したか判定し、終了していれば本実施形態における三次元計測処理を終了する。未終了の計測領域があれば、処理はステップS401に戻り、上述した処理が繰り返される。
図6を用いて、計測対象物104の表面位置の三次元座標を算出するために必要となる物理量とそのパラメータについて説明する。説明を簡単にするために、本実施形態では計測対象物104が局所的な領域では平面で構成されているものとする。ただし、形状の表現は平面に限るものではなく、ベジエ曲面やBスプライン曲面、陰関数表現などによって曲面をパラメータ化してもよい。
投影装置101内部に原点を取る座標系を考え、投影装置101からi番目のスリット光がベクトルl
iの方向に投影された時、表面位置311での三次元位置であるベクトルx
iは、
で表され、その位置における面の向きは
散乱特性は
で表される。
ただし、tは投影装置101からの距離を表すパラメータ、p、qは−1から1までの値をとるパラメータ、σsは散乱係数、σaは吸収係数、gは異方性の度合いを表す異方性パラメータ、ηは相対屈折率、αはアルベドを表している。[数3]に示される散乱特性の式の中身については、たとえば非特許文献1と同様のものを用いることができ、詳細な説明は省略する。非特許文献1によれば[数3]のように近似可能である。本実施形態では、非特許文献1に記載されたレンダリング方法を用いて、撮像装置102a〜102eから観測される散乱の様子をレンダリング(描画)した画像を生成し、輝度のピーク位置を求める。このピーク位置と撮像装置102a〜102eで実際に観測されたピーク位置312a〜312eとが等しくなる時のパラメータを求めれば、パラメータtから入射表面位置での三次元位置(ベクトルxi)を求めることができる。
レンダリング時に必要となる形状及び散乱特性に関するパラメータセットはt,p,q,α、g、ηの6つのパラメータを含むが、この局所領域内においてアルベドαは一定であると仮定すると、ピーク位置はαの値には依存しなくなる。そのためαは適当な値を用いてよく、αを除いた5つが未知のパラメータである。ただし、パラメータはこれら5つのパラメータに限るものではなく、たとえば、非特許文献1のモデルとは異なる散乱特性モデルを用いたり、物理シミュレータによって求めたりした場合には、変数となるパラメータの数が変わることもありうる。さらに、撮像装置の数に関しては、パラメータの総数が増えれば、計算上必要な撮像手段の数も増える。本実施形態では5つの視点(5台の撮像装置)を用いているが、散乱特性のモデルによっては、必要な視点の数(撮像装置の数)も変化する。一般にパラメータの数が増加すれば必要となる視点(撮像装置)の数も増加する。すなわち、視点(撮像装置)の数は、散乱特性を示すモデルのパラメータの数に対して正の相関を持つ。好ましくは、複数の視点を構成する視点(撮像装置)の数は、図7に示した処理により調整され、決定されるパラメータの数以上である。
次に、図7のフローチャートを参照しながら、ステップS404における表面位置の三次元座標の算出方法について詳しく述べる。表面位置算出部208は、好ましくは複数の視点の全てについて、ステップS403で取得された撮像画像におけるパターン光の像位置と、シミュレーションによるパターン光の散乱状態から得られた像位置との差が所定の閾値内となるように各パラメータを決定する。そして、表面位置算出部208は、決定されたパラメータセットに基づいて計測対象物104の表面位置の三次元座標を算出する。ただし、視点によっては外乱の影響によってノイズと見なされるデータが取得される場合もあるため、必ずしも全ての視点で差が所定の閾値内となる必要はない。その場合、ノイズとして外れ値と見なされるデータを除いて全ての視点で差が所定の閾値内となっていればよい。
まず、ステップS701において、上述した5つのパラメータの初期化処理が行われる。初期値の求め方の一例を以下に説明する。まず、三次元位置(ベクトルxi)は撮像装置102a〜102eのいずれかにより得られた撮像画像におけるピーク位置と対応するスリット光の光線方向から、見かけの三次元位置を算出し、この三次元位置から求まるパラメータtを初期値とする。この三次元位置は図3の322a〜322eに示すように、計測対象物の正しい表面位置よりも奥に沈み込んだ点として求められる。
次に、面の向きを与えるパラメータp、qの初期値について説明する。図8に示すように、撮像画像における見かけ上の照射領域が広いほど正面から照射領域を観測していると考えられる。そこで、撮像装置102a〜102eで観測されるスリット光のうち、スリット光が最も太く観測される撮像装置の配置してある方向を面の向きの初期値として定義し、この面の向きを与えるパラメータp、qを初期値とする。図8の例では撮像装置102dに向かう方向が面の向きである。
散乱特性の異方性パラメータgと相対屈折率ηの初期値は、例えばプラスチックの場合、異方性パラメータgが0.6〜0.9、相対屈折率ηが1.4〜1.6の値を取ることが知られているので、その範囲内で適当な値を選んで初期値とする。ただし、初期値の決め方は上記方法に限るものではない。例えば、面の向きの初期値は、周囲の点の見かけの三次元座標を算出してそれらの点の主成分分析を行い、第三主成分を面の向きとするなどしてもよい。
ステップS702において、与えられたパラメータを基にピーク位置の算出を行う。三次元位置、面の向き、散乱特性パラメータが与えられると、レンダリング技術や物理シミュレータを用いて、投影部201から照射されたスリット光に関わるピーク位置が撮像部202a〜202eにおいてどこに観測されるのかを求めることができる。本実施形態では非特許文献1に開示されたレンダリング法を用いてレンダリングを行い、各撮像部で得られた画像に対して、ステップS403と同様の処理によってピーク位置を算出する。
次に、ステップS703において、ステップS403で検出された各撮像部により得られた画像におけるピーク位置と、ステップS702で算出された各撮像部におけるピーク位置との比較を行う。i番目のスリット光を撮像部jで観測した実際のピーク位置をP
ij obs、与えられた5つのパラメータからレンダリングして求めたピーク位置をP
ij(t,p,q,g,η)とし、
によって、算出される両者のピーク位置の差が最小になるようにパラメータを調整する。そして[数4]の左辺の最小値が全ての撮像部jにおいて閾値T以下になっているかどうかを判定する。
ステップS704において、ステップS703の判定の結果、外れ値を除く全てのjで閾値T以下であれば処理を終了する。そうでなければ、処理はステップS705へ進む。
ステップS705において、t,p,q,g,ηの5つのパラメータの修正を行う。修正方法としては、たとえば次のような方法を用いることができる。ある1つのパラメータ、たとえばtのみを微小変化させ、残り4つのパラメータは固定してレンダリングを行い検出されたピーク位置をP
ij(t+Δ,p,q,g,η)として[数4]の左辺を最小化する。ニュートン法を用いて最小化を行う際のtの修正値t
newは
によって求まる。
次はパラメータpのみを微小変化させ、残りの4つのパラメータを固定して同様の処理を行う。このように、1つのパラメータのみを微小変化させ、残り4つのパラメータは固定して処理を繰り返し行うことで、各撮像装置から得られる[数4]の左辺の式がTより小さくなる([数4]を満たす)まで5つのパラメータを修正する。ただし、修正方法としては、上述のようにパラメータを微小変化させてレンダリングした画像を使う方法に限られるものではない。例えば散乱特性がより単純なモデル式を用いて表せるような場合、パラメータを変数として解析的にピーク位置を数式化して求めてもよい。
以上のようにして、i番目のスリット光について表面位置が算出されるとともに、面の向き及び散乱特性に関するパラメータも算出される。
以上述べたように、第1実施形態によれば、スリット光を投影して各撮像部で観測されるピーク位置と、計測対象物の表面位置、面の向き、散乱特性をパラメータとしてシミュレーションによって算出されるピーク位置とが比較される。そして、この比較により、正確なパラメータを求めることにより、計測対象物の散乱特性が未知であっても、計測対象物の正確な表面位置を求めることを可能としている。上述した特許文献1及び特許文献2による方法では、被計測物と同じ散乱特性を持つ参照物体を準備し、予め詳細な計測をしておく必要がある。そのため、特許文献1及び特許文献2による方法は、対象物体の材質が限定されるような用途でなければ必ずしも実用的な方法ではない。これに対して、第1実施形態による三次元計測装置では、計測対象物と同じ散乱特性を持つ参照物体を用いた事前の計測が不要となり、計測対象物の形状、幾何配置、直接反射光成分の大きさに関わらず、より正確な三次元計測を実現できる。さらに面の向きと散乱特性のパラメータも求められる。なお、本実施形態では、計測対象物の反射光成分が少なく内部散乱の影響が大きい半透明な材質の物体に対して特に効果が大きい。
[第2実施形態]
第2実施形態では、事前に計測対象物の散乱特性に関する情報が既知であることを利用して、第1実施形態で述べたパラメータを形状に関するパラメータt,p,qの3つを調整対象とする。これにより、第1実施形態による計測よりも必要な撮像装置(視点)の数を減らし、より少ない計算量でより安定的に三次元計測を行う。以下、第2実施形態について、主として第1実施形態と異なる部分について詳細に説明する。
第2実施形態における三次元計測装置100の構成例は図1(第1実施形態)で示したものと同様である。ただし、第2実施形態では、必要な撮像装置の数は3であるため、撮像装置102a〜102cを用いるものとし、他の撮像装置は省略されてもよい。
図9は第2実施形態に係る三次元形状計測装置の機能ブロック図である。第1実施形態におけるブロック図である図2と比較すると散乱特性記憶部210が追加されている。そこで、同様の部分に関しては説明を省略し、違いのある散乱特性記憶部210について説明する。
散乱特性記憶部210は計測対象物104の散乱特性に関する情報を記憶しており、表面位置算出部208でシミュレーションを行いピークの位置を算出する際に、反射散乱の振る舞いを定義するために用いる。散乱特性に関する情報とは、第1実施形態で用いた散乱特性モデルの異方性パラメータgと相対屈折率ηの2つのパラメータの値である。また、各計測対象物の材質ごとに散乱特性モデルの異方性パラメータgと相対屈折率ηを記録したテーブルを保持し、計測対象物の材質に応じてユーザが選択できるようにしてもよい。また、散乱特性に関する情報はこの例に限らず、例えば計測対象物と同じ散乱特性を持つ参照物体を用いて、予め姿勢を変えながらピークの位置を観測したデータをテーブルとして保持していてもよい。散乱特性記憶部210の機能は制御装置103によって実現される。また、計測対象物の材質と一致する散乱特性に関する情報が散乱特性記憶部210に保持されていない場合には、第1実施形態と同様に5つの視点からの撮像画像を用いて5つのパラメータを調整するように処理を切り替える構成としてもよい。
第2実施形態における三次元計測処理の流れは第1実施形態(図4)と同様である。また、表面位置の算出方法の処理についても、第1実施形態(図7)と同様であるが、第1実施形態に比べてパラメータの数が少なくなっているため、ステップS701とステップS705の処理について説明する。
ステップS701におけるパラメータの初期化処理では、三次元位置を表すtと面の向きを表すp、qの合計3つのパラメータについて初期化を行う。これらの初期化方法については第1実施形態において上述したとおりである。また、計測対象物104の散乱特性については、散乱特性記憶部210から計測対象物104の既知の散乱特性パラメータ(g、η)を読み込んで設定する。ステップS705におけるパラメータの修正では、三次元位置と面の向きの3つのパラメータ(t、p、q)の修正を行う。修正方法は第1実施形態と同様であり、1つのパラメータのみを微小変化させ、残り2つのパラメータは固定して処理を繰り返し、[数4]を満たすまで3つのパラメータを修正する。
以上述べたように、第2実施形態によれば、散乱特性を既知とすることによって、パラメータセットの散乱特性のパラメータ以外のパラメータを調整するようにした。これにより、撮像装置の数(視点の数)を3つにまで減らし、高速かつ安定に三次元計測を行うことができる。または、撮像装置の数(視点の数)を3よりも多くした場合は、ステップS703のピーク位置の評価を行う時に、制約条件を増やすことができるため、より安定的にパラメータを求めることができる。
[第3実施形態]
第3実施形態では、計測対象物の三次元形状計測を行う際に、表面下散乱の有無を判定することによって、材質に応じて処理を変える。これにより、半透明物体と不透明物体が混在する計測対象物であっても正確な三次元形状計測を実現することができる。以下、第3実施形態について、主として第1実施形態と異なる部分について詳しく説明する。
第3実施形態における三次元計測装置100の構成例は、第1実施形態(図1)と同様である。図10は第3実施形態に係る三次元計測装置100の機能ブロック図である。第1実施形態の機能構成(図2)と比較すると、表面下散乱判定部211が追加されている点が異なる。
表面下散乱判定部211は、画像処理部207から投影方向と画像ピーク位置の組を取得し、パラメータ記憶部205から投影装置101と撮像装置102a〜102eの各較正データを取得する。そして、注目している計測点における表面下散乱の有無を判定し、その判定結果を表面位置算出部208に送出する。具体的な処理の内容については、フローチャートを用いて後で説明する。なお、表面下散乱判定部211の機能は制御装置103によって実現される。
図11は第3実施形態における三次元形状計測装置の処理の流れを示すフローチャートである。図11において、第1実施形態と同様の処理には図4と同一のステップ番号を付してある。第3実施形態では、図4のステップS404の処理に代えて、ステップS1100、S1101の処理が実行される。以下、ステップS1100、S1101(表面下散乱の有無を判定し、計測方法を切り替える処理)について詳しく説明する。
ステップS1100において、表面下散乱判定部211は、ステップS403で検出された各撮像部におけるピーク位置を用いて表面下散乱の有無を判定する。より具体的には、表面下散乱判定部211は、パラメータ記憶部205から投影部201と撮像部202a〜202eの各較正データを受け取り、較正データを用いて各撮像部で得られた撮像画像におけるピーク位置を同じ座標系で表し、比較する。この時、各撮像部におけるピーク位置の差がユーザの指定する閾値以下あるいは予め設定された閾値以下であれば、各ピーク位置は一致していると見なし、表面下散乱は無いと判定する。なぜなら、ピーク位置が一致するということは、各撮像部では計測対象物104の表面位置で反射した直接反射光を観測していると考えられるからである。逆に、ピーク位置の差に閾値を越えるものがあれば、各ピーク位置は表面下散乱の影響を受けてずれていると見なし、表面下散乱有りと判定する。
続くステップS1101の表面位置の算出では、表面下散乱の有無に応じて処理を変える。図12は、第3実施形態による表面位置の算出処理(ステップS1101)を示すフローチャートである。まず、ステップS1201において、ステップS1101で判定した表面下散乱の有無に応じて処理の流れを分岐する。表面下散乱が有る場合は、ステップS701に進み、第1実施形態で説明した処理(図7のステップS701〜S705の処理)を行う。他方、ステップS1100で表面下散乱が無いと判定された場合は、処理はステップS1201からステップS1202に進む。ステップS1202において、表面位置算出部208は、ピーク位置に対して三角測量に基づいて三次元座標を求め、これを表面位置とする。すなわち、複数の撮像画像の少なくとも何れかに基づいて計測対象物の表面の三次元座標が算出される。三次元座標の算出のために複数の撮像画像の少なくとも何れかを用いる方法としては、たとえば、
・投影装置に最も近い撮像装置を用いる、
・投影装置からのスリット光の正反射方向に最も近い方向に位置する撮像装置を用いる、
・複数の撮像画像から得られるピーク位置のうち最も輝度が高いピーク位置を用いる、
などが挙げあれる。また、複数の撮像画像から得られる複数のピーク位置の平均を用いるようにしてもよい。
以上述べたように、第3実施形態によれば、表面下散乱の有無に応じて異なる手順で表面位置が算出される。第3実施形態によれば、半透明物体と不透明物体が混在するような計測対象物や半透明物体か不透明物体か事前に分かっていない計測対象物に対して、散乱特性(表面下散乱の有無)に応じて適応的に処理を変えることができる。そのため、より正確な三次元計測を実現できる。なお、上記第3実施形態を第1実施形態に表面下散乱判定部211を追加した構成で説明したが、第2実施形態に表面下散乱判定部211を追加した構成としてもよいことは言うまでもない。
[第4実施形態]
第4実施形態の三次元計測装置は、複数のレーザ光源からスポット光またはスリット光などのパターンを投影し、1台のカメラからその様子を観測し、各光源の光線方向とカメラの像位置との対応関係を求める。そして、複数の投影方向から得られた対応関係を基に、計測対象物表面における観測位置、面の向き、散乱特性に関するパラメータを含むパラメータセットを決定することにより、計測対象物の表面の三次元座標、すなわち三次元形状計測を実現する。
図14は、第4実施形態による三次元計測装置の構成例を示した図である。500は三次元計測装置であり、計測対象物の三次元形状を計測する。501a〜501eは投影装置、502は撮像装置、503は制御装置、504は計測対象物である。かかる構成を有する三次元計測装置500において、投影装置501a〜501eは、後述するパターン光を計測対象物504に投影する。パターン光は計測対象物504の表面で反射または内部で散乱し、撮像装置502によって撮像される。撮像装置502と投影装置501a〜501eそれぞれとの相対的な位置姿勢は既知である。撮像装置502が撮像した画像(撮像画像)は制御装置503に送られる。制御装置503は、内部に備えるコンピュータおよび電気回路によって、投影装置501a〜501eおよび撮像装置502の動作を制御する。
図15は、第4実施形態に係る三次元計測装置500の機能構成例を示す機能ブロック図である。投影部601a〜601eは、投影装置501a〜501eを駆動して、投影パターン生成部604によって生成されたパターン光を、計測対象物504を含む計測空間に投影する。なお、投影の制御は制御部603から送出される投影制御信号を投影部601a〜601eが受信することにより行われる。投影部601a〜601eの機能は投影装置501a〜501eによって実現される。なお、投影部601a〜601eに送出される投影制御信号は全ての投影部で同期が取られている必要はない。撮像部602が撮像する計測範囲内で投影部601a〜601eがそれぞれ投影可能な範囲をパターン光で走査して、撮像装置からパターン光で走査している様子を撮像できればよい。
撮像部602は、計測対象物504を含む計測空間をある視点から撮像することにより撮像画像を得る撮像機能を実現する。たとえば、撮像部602は、制御部603から送出される撮像制御信号を受信し、そのタイミングに基づき、あらかじめ指定されたシャッター速度、絞り、焦点位置で撮像装置502を駆動して計測空間を撮像する。撮像装置502により撮像された画像は、撮像部602を介して画像入力部606へと送られる。撮像部602の機能は撮像装置502によって実現される。
本実施形態では、複数の投影方向として5つの投影方向を例示し、5つの投影装置があるものとして説明を行うが、その数は5に限るものではない。また、必ずしも複数の投影方向に対応した数の投影装置が必要ではなく、1つの投影装置をロボットハンドの先端に取り付ける等して位置姿勢を制御しながら移動させて複数の投影方向からの投影を行ってもよい。あるいは、計測対象物504と撮像部602を相対的に固定して回転テーブル等を用いて計測対象物の方を動かすことで多方向投影と同じ結果を得るようにしてもよい。
投影パターン生成部604は、撮像部602で撮影された画像上での位置と投影部601a〜601eで投影された光線方向との対応関係を求めるために必要なパターンを生成する。本実施形態ではスポット光を走査して投影するものとして以下の説明を行う。ただし、パターン光はそのようなスポット光に限られるものではなく、構造化光、スリット光、グレイコードのような空間分割パターン画像等、周知の三次元計測用のパターン光を用いることができる。また、投影パターン生成部604で生成される投影部601a〜601eそれぞれへの各パターンは、撮像後にそれぞれを分離できるパターンである。例えば、5つの投影部601a〜601eに対して、それぞれ波長の異なるパターン光を用いることで、各投影部601a〜601eからのパターン光を分離できるようにする。この場合、たとえば、撮像画像における色で各投影部601a〜601eからのパターン光を分離してもよいし、撮像部602の前に設けたバンドパスフィルタの透過する波長帯域を切り替えることでパターン光を分離してもよい。また、各投影部601a〜601eから投影するタイミングをずらすことによって、時系列にパターン光を投影することで、パターン光を分離してパターン光の相互の影響を排除してもよい。
パラメータ記憶部605は、三次元計測の実行に必要な各種パラメータを保持する。パラメータには、投影部601a〜601eや撮像部602を制御するための設定や較正データなどが含まれる。なお、パラメータ記憶部605の機能は制御装置503によって実現される。画像入力部606は、撮像部602によって撮像された撮像画像を受信し、不図示のメモリ領域にこれらを保持する。なお、撮像部602は異なる投影方向から撮像走査して、スポット光が照射された計測対象物504を複数の画像として撮像する。画像入力部606は、撮像部602から順次撮像画像を入力し、メモリ領域に追加していく。画像入力部606はメモリ領域に保持されている撮像画像群を画像処理部607へと出力する。画像入力部606の機能は制御装置503によって実現され得る。
画像処理部607は、撮像部602により得られた撮像画像を画像入力部606から受信し、必要な画像処理を行うことにより、複数の投影方向の各々の走査パターンで計測対象物504に投影されたパターン光の像位置を取得する。画像処理部607が行う画像処理は、主として、それぞれの投影方向からの影響の分離、スポット光の光線方向に対応する撮像画像上のピーク位置の検出、ピーク位置を検出しやすくするための撮像画像の平滑化処理などを含む。画像処理部607の機能は制御装置503によって実現される。表面位置算出部608は、各投影方向に対してスポット光の走査位置と画像ピーク位置の組を画像処理部607から受け取り、投影部601a〜601eと撮像部602の各較正データをパラメータ記憶部605から受け取る。そして、表面位置算出部608は、これらの情報に基づいて計測対象物504の正確な三次元座標を算出し、これを結果出力部609に送出する。
結果出力部609は、表面位置算出部608によって算出された計測対象物504の三次元座標を出力する。出力先としては、制御装置503に接続されたディスプレイ装置や他のコンピュータ、補助記憶装置などが含まれる。本実施形態では結果出力部609の機能は制御装置503によって実現される。
第4実施形態の表面位置算出部608では、
・計測対象物504の散乱特性と計測対象物504の表面位置のパラメータを含むパラメータセットに基づいて、たとえばシミュレーションにより、パターン光の像位置を取得し、
・画像処理部607により取得されたパターン光の像位置(本実施形態ではピーク位置)と、パラメータセットに基づいて取得されたパターン光の像位置とに基づいて各パラメータを調整し、パラメータセットを決定する、
ことにより、計測対象物504の表面の三次元座標を算出する。
より具体的には、表面位置算出部608は、
・パラメータセットの各パラメータに基づいて得られるパターン光の散乱状態に基づいて複数の投影方向の各々から投影されるパターン光の像位置(ピーク位置)を取得し、
・撮像画像から得られた像位置と散乱状態に基づいて得られた像位置とに基づいてパラメータセットを構成するパラメータを調整して、パラメータセットを決定し、
・決定されたパラメータセットに含まれる表面位置に基づいて三次元座標を算出する、という処理を行う。ここで、散乱状態に基づく像位置の取得は、たとえば、パラメータセットにしたがって散乱状態を描画することにより得られた画像からパターン光の像位置(本実施形態ではピーク位置)を取得することで実現され得る。以下、計測時に計測対象物504の表面付近で起こる反射や表面下散乱による現象と、その現象を基にして表面位置算出部608がパターン光の散乱状態を判定(描画)し、計測対象物504の表面位置(三次元座標)を求める原理について説明する。
図16は、計測対象物504における複数の投影による表面下散乱の現象を示している。まず、図16を参照して、投影装置501a〜501eから投影光が投影された計測対象物504が撮像装置502によりどのように観測されるのかについて説明する。投影装置501a〜501eから計測対象物504に照射されたスポット光701a〜701eは第1実施形態で述べたように、一部は反射光として物体表面で反射され、一部は物体内部に入り込み散乱する。内部に入り込んだ光は物質内の媒体等に衝突しながら複雑に反射を繰り返し、散乱光として観測される。そのため、散乱特性の違いによって、明るく見える領域の分布が異なったり、光の進行方向に対して異方的や等方的に散乱する度合いが異なったりする。711a〜711eは半透明物体の内部において散乱によって明るく観測されるローブ状の領域を表している。本実施形態では、既に述べた方法によって、各投影装置からのパターン光の影響を分離できるものとする。次に、各投影装置からの影響を分離した上で、各投影装置からスポット光を投影した時の光線方向と撮像装置で検出されるピークとの対応関係について説明する。
図17は投影装置501aからスポット光を走査した時に撮像装置502から見えるピーク位置を示した図である。投影装置501aからスポット光を時系列に走査した時の光線方向701a1〜701a3に対して、計測対象物504の内部で散乱によって明るく観測されるローブ状の領域を711a1〜711a3で示している。一方、撮像装置502から各光線方向701a1〜701a3に対応して最も明るく観測されるピーク位置の撮像光線方向を7021〜7023で表す。721a1〜721a3はスポット光の光線方向とピークが観測される方向から導かれる見かけ上の奥行き位置を示しており、次に示す正しい奥行き位置とは異なる位置に観測される。一方、撮像光線方向を7021〜7023に対して、正しい奥行き位置として観測されるべき位置を731a1〜731a3で示している。このように、表面位置算出部608は、投影装置501aから投影される光線方向701a1〜701a3と撮像装置502から見かけ上のピーク位置が観測される撮像光線方向を示す7021〜7023の対応関係を求める。そして、これを複数の投影装置501a〜501eに対して行うことによって、それらの対応関係を利用して正しい奥行き位置を求めて三次元計測を行う。
次に、表面下散乱の影響を受けて、撮像光線方向において観測される見かけ上のピーク位置から計測対象物504の表面位置を求める原理について説明する。
ここで、撮像装置502のある画素方向の画素(注目画素)でピーク位置が検出される光線方向について考える。投影装置501a〜501eそれぞれにおいて投影されたスポット光によるピーク位置が注目画素で検出される光線方向は、計測対象物504の注目画素方向における物体表面の位置と面の向き、散乱特性に依存して決まる。逆に言えば、計測対象物504の物体表面の位置と面の向き、散乱特性を変数として与えて散乱光の再現を行えば、投影装置501a〜501eそれぞれから投影されるスポット光の光線方向に対して観測されるピーク位置を求めることができる。散乱光の再現には、たとえば、CGで使われるレンダリングや物理シミュレータを用いることができる。異なる投影方向それぞれにおいて、撮像画像の注目画素にピークが検出された時と同じ光線方向のスポット光によって上述のような散乱光の再現を行うことを考える。この場合、正しい変数が与えられると、散乱光の再現により得られるピーク位置は注目画素である実際に観測されるピーク位置(撮像画像から得られるピーク位置)と等しくなるはずである。このようにピーク位置が等しくなった時の変数は、計測したい物体表面の位置を正しく表している。そこで、撮像画像の各画素において、再現されるピーク位置が実際に観測されるピーク位置と等しくなるように変数(パラメータ)を求めることで、物体表面の三次元形状を得ることができる。さらに、同時に求められる変数によって、面の向きと散乱特性を求めることができる。その求め方については、図18、図21のフローチャートの参照により後述する。
次に、図18を用いて以上のような構成を有する三次元計測装置500による三次元計測処理の流れを説明する。まず、装置が起動されると、ステップS1800において、初期化処理が行われる。ステップS1800の初期化処理には、投影部601a〜601eおよび撮像部602の起動処理や、投影部601a〜601eと撮像部602の較正データを含む各種パラメータをパラメータ記憶部605に読み込み格納する処理などが含まれる。
ステップS1801において、投影パターン生成部604は各投影部601a〜601eにおいてスポット光を投影する方向(光線方向)を決め、投影パターンを投影部601a〜601eへ送出する。ステップS1802において、投影部601a〜601eはスポット光を計測対象物504に向けて投影する。撮像部602はスポット光が投影された計測対象物504の画像を撮像し、画像入力部606は撮像により得られた画像を撮像画像として保持する。ステップS1803において、画像処理部607は、スポット光が計測対象物504に投影され、撮像部602で撮像した画像(すなわち画像入力部606が保持した撮像画像)から、異なる投影方向ごとにピーク位置の検出を行う。本実施形態では、投影部601a〜601eのそれぞれの投影方向ごとにピーク位置の検出が行われる。そして、スポット光の光線方向と検出したピーク位置との対応関係を求めておく。異なる投影方向ごとに分離する方法としては、既に説明したように、投影するスポット光の波長の違いを利用してもよいし、投影部601a〜601eで投影するタイミングをずらしながら撮像することで、異なる投影方向ごとに撮像画像を取得しておいてもよい。
ピーク位置の検出方法は第1実施形態の図5において、スリット光に対するピーク位置の検出方法について説明したが、スポット光においても、同様の処理でピーク位置を検出することができるため、説明を省略する。
図18に戻り、ステップS1804において、各投影部601a〜601eから計測対象物504に投影可能なスポット光の走査が終了したかどうかを判定し、終了していればステップS1805に進む。未終了の走査領域があれば、処理はS1801に戻り、上述した処理が繰り返される。
ステップS1805において、表面位置算出部608は、まず、スポット光の光線方向と検出したピーク位置との対応関係の中から、検出されたピーク位置が等しいものに対して、各投影部601a〜601eとその光線方向を求める。そして、対応する各投影部601a〜601eとその光線方向の組から、計測対象物504の散乱特性に基づいて表面位置の三次元座標を算出する。三次元座標の算出方法の詳細については、後で図20、図21を用いて詳しく述べる。
図19を用いて、ある検出されたピーク位置に対応する各投影部とその光線方向について説明する。撮像装置502で検出されたピーク位置が702の撮像光線方向であった場合、それに対応する各投影装置501a〜501eにおける光線方向はスポット光701a〜701eで表される。図19のように、投影装置が5つの場合は、各ピーク位置に対して最大で5つの対応する光線方向が求められることになる。
図20を用いて、計測対象物504の表面位置の三次元座標を算出するために必要となる物理量とそのパラメータについて説明する。説明を簡単にするために、本実施形態では計測対象物504が局所的な領域では平面で構成されているものとする。ただし、形状の表現は平面に限るものではなく、ベジエ曲面やBスプライン曲面、陰関数表現などによって曲面をパラメータ化してもよい。その場合は曲面を構成するパラメータも求める必要があるため、より多くの対応関係が必要となる。
撮像装置502内部に原点を取る座標系を考え、撮像装置502から画素i方向のベクトルをc
iとした時、表面位置712での三次元位置であるベクトルx
iは、
で表され、その位置における面の向き及び散乱特性は第1実施形態で示した[数2]、[数3]と同様である。
ただし、tは撮像装置502からの距離を表すパラメータであり、その他のパラメータは第1実施形態と同様であるため説明を省略する。本実施形態では、撮像装置502の画素i方向に関連付けられた投影装置501a〜501eの光線方向(投影したスポット光が画素iでピーク位置となる光線方向)について観測される散乱の様子をレンダリング(描画)する。このレンダリングには、たとえば、非特許文献1に記載されたレンダリング方法を用いることができる。上記レンダリングにより得られた画像から、輝度のピーク位置を求め、このピーク位置と実際に観測されたピーク位置(画素i)とが等しくなるパラメータを求めれば、パラメータtから入射表面位置での三次元位置(ベクトルxi)を求めることができる。
レンダリング時に必要となる形状及び散乱特性に関するパラメータセットの特性については第1実施形態で説明したものと同様であるため省略する。ただし、本実施形態では撮像装置ではなく投影装置の数が複数であるため、投影装置の数に関しては、パラメータの総数が増えれば、計算上必要な投影手段の数も増える。本実施形態では5つの投影方向(5台の投影装置)を用いているが、形状及び散乱特性のモデルによっては、必要な投影方向の数(投影装置の数)も変化する。一般にパラメータの数が増加すれば必要となる投影方向(投影装置)の数も増加する。すなわち、投影方向(投影装置)の数は、形状及び散乱特性を示すモデルのパラメータの数に対して正の相関を持つ。好ましくは、複数の投影方向を構成する投影方向(投影装置)の数は、図21に示した処理により調整され、決定されるパラメータの数以上である。
次に、図21のフローチャートを参照しながら、ステップS1805における表面位置の三次元座標の算出方法について詳しく述べる。表面位置算出部608は、ステップS1803で取得された撮像画像におけるパターン光の像位置と、シミュレーションによるパターン光の散乱状態から得られた像位置との差が所定の閾値内となるように各パラメータを決定する。複数の投影方向で関連付けられたすべての光線方向について、各パラメータの決定を行うことが好ましい。そして、表面位置算出部608は、決定されたパラメータセットに基づいて計測対象物504の表面位置の三次元座標を算出する。ただし、投影方向によっては遮蔽等の外乱の影響によってノイズと見なされるデータが取得される場合もあるため、必ずしも全ての関連付けられた光線方向で差が所定の閾値内となる必要はない。その場合、ノイズとして外れ値と見なされるデータを除いて全ての関連付けられた光線方向で差が所定の閾値内となっていればよい。
まず、ステップS2101において、上述した5つのパラメータの初期化処理が行われる。初期値の求め方の一例を以下に説明する。まず、三次元位置(ベクトルxi)の初期値は投影装置501a〜501eのいずれかにより得られた撮像画像におけるピーク位置と対応するスポット光の光線方向から、見かけの三次元位置を算出し、この三次元位置から求まるパラメータtを初期値とする。表面下散乱の影響によって、計測対象物の正しい表面位置よりも奥に沈み込んだ点として求められる。
次に、面の向きを与えるパラメータp、qの初期値について説明する。図22に示すように、撮像画像において各投影部から散乱して観測される光の輝度が高いほど、計測対象物504に対して正面からスポット光を照射していると考えられる。そこで、投影装置501a〜501eから投影されるスポット光のうち、スポット光が最も明るく観測される投影装置に向かう方向を面の向きの初期値として定義し、この面の向きを与えるパラメータp、qを初期値とする。図22の例では投影装置501dに向かう方向が面の向きである。
散乱特性の異方性パラメータgと相対屈折率ηの初期値は、例えばプラスチックの場合、異方性パラメータgが0.6〜0.9、相対屈折率ηが1.4〜1.6の値を取ることが知られているので、その範囲内で適当な値を選んで初期値とする。ただし、初期値の決め方は上記方法に限るものではない。例えば、面の向きの初期値は、周囲の点の見かけの三次元座標を算出してそれらの点の主成分分析を行い、第三主成分を面の向きとするなどしてもよい。
ステップS2102において、与えられたパラメータを基にピーク位置の算出を行う。三次元位置、面の向き、散乱特性パラメータが与えられると、レンダリング技術や物理シミュレータにより、投影部601a〜601eの関連付けられた光線方向へのスポット光に関わるピーク位置が撮像部602によって観測される位置を求めることができる。上述のように、本実施形態では非特許文献1に開示されたレンダリング法を用いてレンダリングを行い、撮像部で得られた各投影部の影響に関する画像に対してピーク位置を算出する。
次に、ステップS2103において、ステップS1803で検出された各投影部の光線方向と関連付けた撮像画像におけるピーク位置である画素iと、ステップS2102で算出された各投影部の関連付けられた光線方向におけるピーク位置との比較を行う。投影部jの光線方向と関連付けられた画素iで観測した実際のピーク位置をQ
ij obs、与えられた5つのパラメータからレンダリングして求めたピーク位置をQ
ij(t,p,q,g,η)とし、
によって、算出される両者のピーク位置の差が最小になるようにパラメータを調整する。そして[数7]の左辺の最小値が全ての投影部jにおいて閾値T’以下になっているかどうかを判定する。
ステップS2104において、ステップS2103の判定の結果、外れ値を除く全てのjで閾値T’以下であれば処理を終了する。そうでなければ、処理はステップS2105へ進む。
ステップS2105において、t,p,q,g,ηの5つのパラメータの修正を行う。修正方法としては、たとえば次のような方法を用いることができる。ある1つのパラメータ、たとえばtのみを微小変化させ、残り4つのパラメータは固定してレンダリングを行い検出されたピーク位置をQ
ij(t+Δ,p,q,g,η)として[数7]の左辺を最小化する。ニュートン法を用いて最小化を行う際のtの修正値t
newは
によって求まる。
次はパラメータpのみを微小変化させ、残りの4つのパラメータを固定して同様の処理を行う。このように、1つのパラメータのみを微小変化させ、残り4つのパラメータは固定して処理を繰り返し行うことで、各投影装置から得られる[数7]の左辺の式がT’より小さくなる([数7]を満たす)まで5つのパラメータを修正する。ただし、修正方法としては、上述のようにパラメータを微小変化させてレンダリングした画像を使う方法に限られるものではない。例えば散乱特性がより単純なモデル式を用いて表せるような場合、パラメータを変数として解析的にピーク位置を数式化して求めてもよい。
以上のようにして、画素iについて表面位置が算出されるとともに、面の向き及び散乱特性に関するパラメータも算出される。
以上述べたように、第4実施形態によれば、各投影部からスポット光を投影して撮像部で観測されるピーク位置と、計測対象物の表面位置、面の向き、散乱特性をパラメータとしてシミュレーションによって算出されるピーク位置とが比較される。そして、この比較により、正確なパラメータを求めることにより、計測対象物の散乱特性が未知であっても、計測対象物の正確な表面位置を求めることを可能としている。
<その他の実施形態>
上述した第1、第2、第3実施形態いずれにおいても、投影部201から計測対象物104に投影された光の撮像部202a〜202eによる撮像では、表面下散乱の影響を受けるが、反射光成分は無視できるほど小さいことを仮定していた。しかし、計測対象物の物体表面に光沢がある場合には、正反射方向付近において鏡面反射成分が強く観測される。このような場合、撮像部202a〜202eから取得される撮像画像において検出されるピーク位置は、計測対象物の表面位置で反射した鏡面反射成分の影響を受ける。たとえば、図13に示すように、鏡面反射成分は正反射方向で観測されるため、鏡面反射成分が観測される撮像部は高々1つである。そこで、光沢のある計測対象物104を計測する場合には、ステップS702及びステップS703でピーク位置の算出及び評価を行う際に、各撮像部についてパラメータにより特定される面方向について正反射方向付近にあるか否かを判定する。そして、正反射方向付近にあると判定された場合はその撮像部の撮像画像から得られたピーク位置を除外して算出及び評価を行うようにしてもよい。
具体的には、
・i番目のスリット光が計測対象物104の表面位置に入射する方向の単位ベクトルをベクトルl
i、
・計測対象物104にスリット光が入射する位置における法線の単位ベクトルをベクトルn
i、
・入射した位置から撮像部jへ向かう単位ベクトルをc
ij、とすると、
を満たすようなパラメータp、qを用いる場合には、撮像部jで観測されたピーク位置は除外して[数4]の判定を行う。
また、特に鏡面反射成分が強く、散乱成分である表面下散乱による影響を無視できるほどに強い鏡面反射成分(ハイライト)を観測できる場合がある。この場合には、正反射方向にある撮像部のピーク位置を計測対象物104における表面位置であるとして、三次元位置を推定するために用いても良い。例えば図13において、投影装置101からliの方向にパターンを投影したとする。この状態で、撮像装置102eにおいてハイライトをcij方向から観測した場合、liとcijの交点の位置を物体表面位置とし、成す角を半分に分割する方向を法線方向niとして、t、p、qのパラメータを決定すればよい。強い鏡面反射成分であるか否かは、たとえばピーク位置における輝度値が所定値以上(たとえば256段階中の250以上)か否かにより判断することができる。以上述べたように、鏡面反射成分が観測される場合には正反射方向にある撮像部で観測されるピーク位置の処理を変更することによって、光沢のある計測対象物の三次元形状をより正確に計測することができる。
上述した第1、第4実施形態では、複数の撮像装置と1つの投影装置、または、1つの撮像装置と複数の投影装置を用いた構成を示した。第1、第4実施形態では、このような構成によって、撮像装置の光線と投影装置の光線の対応関係を求め、対応関係を満たすように形状及び散乱特性を表すパラメータを調整することによって三次元形状を求めた。同様の枠組みで考えれば、撮像装置の光線と投影装置の光線の対応関係が複数求まりさえすれば、形状及び散乱特性を表すパラメータを求めることができるため、複数の撮像装置と複数の投影装置による構成でも同様に三次元計測を行うことができる。
具体的には、まず、複数の撮像装置と複数の投影装置において、第4の実施形態と同様に、それぞれの投影装置による影響を分離できるように各撮像装置で撮像を行う。そして、第1実施形態と同じ枠組みで解く場合には、図6のように投影装置を基準とした座標系を考え、各撮像装置における対応関係を[数4]を満たすようにパラメータ調整を行う。この時、投影装置は複数あるため、それぞれの投影装置に対して[数4]の条件式を求めることができる。また、第4実施形態と同じ枠組みで解く場合には、図20のように撮像装置を基準とした座標系を考え、各投影装置における対応関係を[数7]を満たすようにパラメータ調整を行う。この場合も同様に、それぞれの撮像装置に対して[数7]の条件式を求めることができる。このように[数4]や[数7]に関する複数の条件式が得られる。パラメータは、どちらか一方の条件式を用いて決定されても良いし、それぞれから得られる複数の条件式を、同じ物体表面位置では同じ法線と同じ散乱特性を持つという拘束条件を追加した上で用いて決定されても良い。
また、1つの撮像装置と1つの投影装置を用いて、どちらかまたは両方をロボットアーム等によって移動させながら計測を行うことによっても、複数の対応関係が求められる。よって、上述した複数の撮像装置と複数の投影装置を用いた場合と同様にして、三次元計測を行うことができる。
以上説明したように、各実施形態によれば、半透明部分を含む計測対象にパターン光を照射したときに、散乱等の影響がある場合でも表面の反射位置を正確に求め、高精度な三次元計測を安定的に行うことが可能となる。三次元計測装置において、計測対象の内部散乱等の影響を補正し、計測精度を向上させることができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。