(57)【特許請求の範囲】
【請求項１】
パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を反転させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得する取得手段と、
投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力する入力手段と、
前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出する検出手段と、
を有し、
前記検出手段は、前記撮影画像の各画素において、前記第一のパターン群の明部に対応する輝度値と前記第二のパターン群の暗部に対応する輝度値の差分絶対値を直接反射光成分として算出し、
前記対応関係に基づいて、前記対象物の三次元形状を計測することを特徴とする計測装置。
【請求項２】
さらに、前記所定の模様のマスクとして市松模様のマスクを用いて前記第一のパターン群を生成し、前記市松模様を反転したマスクを用いて前記第二のパターン群を生成する生成手段を有する請求項１に記載された計測装置。
【請求項３】
前記市松模様の格子サイズは、前記差分絶対値がノイズと見做されない大きさに設定される請求項２に記載された計測装置。
【請求項４】
前記空間符号化パターンは位相シフトパターンである請求項１又は請求項２に記載された計測装置。
【請求項５】
パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を変化させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得する取得手段と、
投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力する入力手段と、
前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出する検出手段と、
を有し、
前記取得手段は、前記所定の模様のマスクを所定距離ずつ移動して前記空間符号化パターンの明部をマスキングした複数のパターン群を取得し、
前記検出手段は、前記複数のパターン群がそれぞれ投影された対象物を撮像した複数の撮影画像の各画素において、前記複数のパターン群の明部に対応する輝度値の最大値から前記複数のパターン群の暗部に対応する輝度値の最小値を減算して直接反射光成分を算出し、
前記対応関係に基づいて、前記対象物の三次元形状を計測することを特徴とする計測装置。
【請求項６】
さらに、前記所定の模様のマスクとして格子模様のマスクを用いて前記複数のパターン群を生成する生成手段を有する請求項５に記載された計測装置。
【請求項７】
前記所定距離は、前記複数のパターン群がそれぞれ投影された対象物を撮像した複数の撮影画像の各画素について、前記複数の撮影画像から最小輝度値を抽出して形成した間接反射光画像に、前記格子模様の周期的パターンが残らないように設定される請求項６に記載された計測装置。
【請求項８】
前記取得手段は、更に、前記複数の空間符号化パターンを反転させたパターンそれぞれの明部を、前記所定の模様のマスクによってマスキングした第三のパターン群と、前記模様を変化させたマスクによって前記複数の空間符号化パターンを反転させたパターンそれぞれの明部をマスキングした第四のパターン群とを取得し、
前記入力手段は、前記投影装置によって前記第三のパターン群と前記第四のパターン群とがそれぞれ投影された対象物を前記撮像装置がそれぞれ撮像した撮影画像を更に取得する請求項１から請求項５の何れか一項に記載された計測装置。
【請求項９】
前記空間符号化パターンは位相シフトパターンである請求項５から請求項７の何れか一項に記載された計測装置。
【請求項１０】
取得手段が、パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を反転させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得し、
入力手段が、投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力し、
検出手段が、前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出し、
前記検出手段は、前記撮影画像の各画素において、前記第一のパターン群の明部に対応する輝度値と前記第二のパターン群の暗部に対応する輝度値の差分絶対値を直接反射光成分として算出し、
前記対応関係に基づいて、前記対象物の三次元形状を計測することを特徴とする計測方法。
【請求項１１】
取得手段が、パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を変化させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得し、
入力手段が、投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力し、
検出手段が、前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出し、
前記取得手段は、前記所定の模様のマスクを所定距離ずつ移動して前記空間符号化パターンの明部をマスキングした複数のパターン群を取得し、
前記検出手段は、前記複数のパターン群がそれぞれ投影された対象物を撮像した複数の撮影画像の各画素において、前記複数のパターン群の明部に対応する輝度値の最大値から前記複数のパターン群の暗部に対応する輝度値の最小値を減算して直接反射光成分を算出し、
前記対応関係に基づいて、前記対象物の三次元形状を計測することを特徴とする計測方法。
【請求項１２】
コンピュータを請求項１から請求項９の何れか一項に記載された計測装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の三次元形状の計測に関する。
【背景技術】
【０００２】
プロジェクタなどの投影部によって空間符号化法などに代表される縞パターンを計測対象に投影し、その反射光を撮像部が観測した位置を基に三角測量の原理によって三次元座標を求める三次元計測装置が知られている。このような装置による計測は、三次元座標の計測精度が計測対象の材質に大きく依存するという課題がある。
【０００３】
プラスチックなどの材料で製造された計測対象の場合、表面下散乱または内部散乱と呼ばれる現象によって、計測精度が悪化したり、計測自体が不能になる場合がある。そのような計測対象の場合は、計測対象の表面に白色のパウダなどを事前に塗布するなどの処置が要求され、三次元計測装置の適用範囲を大きく制限する障害となる。
【０００４】
内部散乱の観測を避ける方法として、特許文献1は、光路上に直線偏光板を設けて表面反射光と内部散乱光を分離し、半透明を含む被計測物の三次元形状を正確に計測する方法を開示する。
【０００５】
また、内部散乱の影響を抑制する方法として、非特許文献1は、スリット光を高周波成分を含むM系列によって変調し、内部散乱の影響を受け難くする三次元形状の計測方法を提案する。
【０００６】
また、内部散乱の影響の対策ではないが、特許文献2は、位相シフトパターンを投影して複数の計測対象物を三次元計測する際に、物体間の二次反射で生じる相互反射の影響を周囲の対象物に与えないようにする方法を開示する。つまり、市松模様のマスクを用いて、隣の対象物からの二次反射光を避けて三次元計測を行う方法を開示する。
【０００７】
しかし、特許文献1の方法は、偏光を用いて表面反射光と内部散乱光を分離するため、光源、受光部、計測対象面の間の幾何的な関係が所定条件を満たす必要があり、この条件を満たして計測を行うことは、必ずしも容易とは言えない。
【０００８】
また、非特許文献1の方法は、グレイコードをM系列で変調するため、グレイコードの各ビットに対して例えば31種類ものパターンを投影する必要があり、計測時間が非常に長くなる問題がある。
【０００９】
また、特許文献2の市松模様のマスクを用いて三次元計測を行う方法は、市松模様状の投影領域に隣接する非投影領域からの相互反射の影響のみを抑制する。そのため、相互反射の発生部が限定できるような理想的な計測対象には有効であるが、より一般的な相互反射や、非計測対象の入射光の入射位置から近い領域に影響を及ぼす内部散乱には対応することができない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2008-281399号公報
【特許文献２】特開2006-275529号公報
【非特許文献】
【００１１】
【非特許文献１】古瀬達彦、日浦慎作、佐藤宏介「スリット光の変調による相互反射と表面下散乱に頑健な三次元形状計測」MIRU2009 画像の認識・理解シンポジウム
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、内部散乱を含む間接反射光の影響を除去して三次元計測を行うことを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１４】
本発明にかかる計測装置は、パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を反転させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得する取得手段と、投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力する入力手段と、前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出する検出手段と、を有し、前記検出手段は、前記撮影画像の各画素において、前記第一のパターン群の明部に対応する輝度値と前記第二のパターン群の暗部に対応する輝度値の差分絶対値を直接反射光成分として算出し、前記対応関係に基づいて、前記対象物の三次元形状を計測する。又は、本発明にかかる計測装置は、パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンそれぞれの明部を、明部と暗部が周期的に存在する所定の模様のマスクによってマスキングした第一のパターン群と、前記所定の模様を変化させたマスクによって前記複数の空間符号化パターンそれぞれの明部をマスキングした第二のパターン群とを取得する取得手段と、投影装置によって前記第一のパターン群と前記第二のパターン群とがそれぞれ投影された対象物を撮像装置がそれぞれ撮像した撮影画像を入力する入力手段と、前記投影されたパターンの投影座標と前記撮影画像それぞれの座標の対応関係を検出する検出手段と、を有し、前記取得手段は、前記所定の模様のマスクを所定距離ずつ移動して前記空間符号化パターンの明部をマスキングした複数のパターン群を取得し、前記検出手段は、前記複数のパターン群がそれぞれ投影された対象物を撮像した複数の撮影画像の各画素において、前記複数のパターン群の明部に対応する輝度値の最大値から前記複数のパターン群の暗部に対応する輝度値の最小値を減算して直接反射光成分を算出し、前記対応関係に基づいて、前記対象物の三次元形状を計測する。
【発明の効果】
【００１５】
本発明によれば、内部散乱を含む間接反射光の影響を除去して三次元計測を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】実施例の三次元計測装置の構成例を示すブロック図。
【図２】実施例の情報処理装置の機能を説明するブロック図。
【図３】反射光算出用のパターン群を示す図。
【図４】内部散乱光の影響を説明する図。
【図５】内部散乱光の影響を除去する方法を説明する図。
【図６】三次元計測装置における計測処理を説明するフローチャート。
【図７】実施例2の基準パターン群の一例を示す図。
【図８】マスクパターンの一例を説明する図。
【図９】マスクの移動量を対象物に対して適応的に決める方法を説明する図。
【発明を実施するための形態】
【００１７】
以下、本発明にかかる実施例の計測装置および情報処理装置、並びに、計測方法および情報処理方法を図面を参照して詳細に説明する。
【実施例１】
【００１８】
実施例1では、計測空間を分割して符号化するパターン（以下、空間符号化パターン）としてグレイコードを用いて、市松模様のマスクと、市松模様を反転したマスクを用いたパターン画像群を生成する。そして、パターン画像群を計測空間に投影した際の計測対象物（以下、対象物）の直接反射光の輝度を算出して空間分割符号列を生成し、対象物の三次元形状を測定する方法を説明する。
【００１９】
［装置の構成］
図1のブロック図により実施例の三次元計測装置100の構成例を示す。投影装置101は、後述するパターン光画像を計測対象物（以下、対象物）104に投影する。パターン光は、対象物104の表面で反射し、撮像装置102によって撮像される。撮像装置102が撮像した画像は情報処理装置103に送られ、情報処理装置103によって対象物104の三次元座標が算出される。また、情報処理装置103は、投影装置101および撮像装置102の動作を制御する。
【００２０】
●情報処理装置
図2のブロック図により実施例の情報処理装置103の機能を説明する。情報処理装置103はコンピュータ機器であり、情報処理装置103のCPUがRAMをワークメモリとして不揮発性メモリなどの記録媒体に格納されたプログラムを実行することで、図2に示す機能が実現される。
【００２１】
制御部210は、後述する情報処理装置103の各部の動作を制御するとともに、投影装置101と撮像装置102の動作を制御する。パラメータ記憶部206は、RAMなどに割り当てられ、三次元計測に必要な各種パラメータを保持する。パラメータには、投影装置101や撮像装置102を制御するための設定や較正データ508などが含まれる。
【００２２】
投影パターン生成部202は、パラメータ記憶部206から読み出した空間符号化パターン系列502に基づき後述する反射光算出用のパターン画像504を適宜生成し、パターン画像504を投影装置101に出力する。なお、投影パターン生成部202が生成したパターン画像504をパラメータ記憶部206に保持して、パラメータ記憶部206から取得されたパターン画像504を投影装置101に出力することもできる。
【００２３】
空間符号化パターン系列502は、投影装置101が投影可能な、対象物104を含む計測空間を複数の領域に分割して符号化するためのパターンの集合である。実施例1では、グレイコードを空間符号化パターンに利用するが、グレイコードに基づく反射光算出用のパターン画像504の詳細は後述する。
【００２４】
投影装置101は、パターン画像504に基づくパターン光を対象物104に投影する。なお、パターン光の投影は、制御部210から出力される投影制御信号510を投影装置101が受信した時点で開始される。撮像装置102は、制御部210から出力される撮像制御信号511を受信した時点で予め設定された撮像パラメータ（シャッタ速度、絞り値、被写体距離）により計測空間の画像を撮像し、撮像した画像（以下、撮影画像）505を出力する。
【００２５】
画像入力部204は、撮像装置102から撮影画像505を入力し、撮影画像505を画像バッファ211に格納する。異なるパターン画像504のパターン光が対象物104に投影された複数の画像が撮像されるので、画像入力部204は、順次、撮像装置102から撮影画像505を入力し、入力した撮影画像505を画像バッファ211に追加する。制御部210は、一回の三次元座標の算出に必要な数の撮影画像が取得されると、画像バッファ211に保持されている撮影画像群を示す情報506を画像処理部205に出力する。
【００２６】
画像処理部205は、撮影画像群を示す情報506を受信すると、三次元座標の算出前に必要な画像処理を撮影画像群に施す。画像処理部205が行う画像処理には、直接反射光の輝度の算出、空間分割符号列の生成などが含まれる。
【００２７】
画像処理部205において、直接反射光算出部301は、撮影画像の明暗に基づき画像中の直接反射光の輝度を算出する。符号列生成部302は、直接反射光の輝度に基づき空間分割符号列を生成する。復号部303は、空間分割符号列を入力し、パラメータ記憶部206に格納された空間符号化パターン系列502に基づき復号処理を行う。つまり、復号部303は、空間符号化パターン系列502の投影座標と撮影画像の座標の対応付けを行い、投影座標と撮影画像の座標の対応関係を示す座標情報507を三次元座標算出部208に出力する。
【００２８】
三次元座標算出部208は、パラメータ記憶部206に格納された投影装置101と撮像装置102の較正データ508を参照して、座標情報507から対象物104の表面の三次元座標509を算出する。結果出力部209は、三次元座標算出部208が算出した三次元座標509に基づく情報を出力する。結果出力部209は、USB、HDMI（登録商標）、有線または無線ネットワークのインタフェイスであり、三次元座標509の出力先は、例えば、モニタ、他のコンピュータやサーバ装置、補助記憶装置、各種記録媒体などである。結果出力部209が出力する情報は、三次元座標509を示す座標値、三次元座標509に基づく対象物104の三次元画像などである。
【００２９】
［空間符号化］
図3により反射光算出用のパターン群を示す。図3に示すパターン群は、空間符号化パターンであるグレイコードパターンそれぞれについて、市松模様のマスクと、当該市松模様を反転した模様（以下、反転模様）のマスクを用いるマスキングによって生成される。
【００３０】
図3(A)は、投影可能範囲の左半分だけに光を投影するような最低反射特性取得部304のグレイコードパターンの明部に市松模様のマスクを施したパターン（上段）と、同じグレイコードパターンの明部に反転模様のマスクを施したパターン（下段）を示す。図3(A)に示す二つのグレイコードパターンが反射光算出用の一つのパターン群である。図3(B)(C)に示すように、他の周波数のグレイコードパターンについても同様に、反射光算出用のパターン群を生成する。
【００３１】
一般的な空間符号化手法においては、対象物104の反射率による影響を抑制して安定に撮影画像中の明暗の組み合せを読み取るため、通常のパターン画像に加えて、その反転パターン画像を用いる。図3(D)(E)(F)は、図3(A)(B)(C)に示す反射光算出用のパターン群（以下、基準パターン群）に対応するパターン群（以下、反転パターン群）を示す。ただし、各反転パターンは、対応する基準パターンの明暗をそのまま反転したパターンではなく、グレイコードの明暗を反転し、マスクの明暗は反転しないものになる。
【００３２】
図3に示す反射光算出用のパターン群を投影し撮像した撮影画像から反射光成分を算出し、明暗判定を行って空間分割符号列を生成する。空間符号化パターン系列502がグレイコードだとすると、撮影画像における明部の画素を‘1’、暗部の画素を‘0’としてパターンの投影順に並べれば例えば‘1010’のような二進数で表現される符号列が形成される。グレイコードの空間符号化パターンによって計測空間を符号化し、投影座標と撮影画像の座標の対応関係を求めれば、三角測量によって対象物104の三次元形状を得ることができる。
【００３３】
図3には、明部と暗部が同じ幅をもつようなパターン群を示したが、パターン群はこれに限らない。つまり、パターン間で明部と暗部のうち少なくとも何れか一方の幅が異なる複数の空間符号化パターンを用意する。そして、複数の空間符号化パターンそれぞれの明部を、所定の模様のマスクによってマスキングした第一のパターン群と、模様を変化させたマスクによって空間符号化パターンそれぞれの明部をマスキングした第二のパターン群を生成すればよい。
【００３４】
［内部散乱光の影響］
図4により内部散乱光の影響を説明する。対象物104が半透明の場合、最低周波数のグレイコードパターン（図4(A)）を対象物104に投影すると、図4(B)に示すように、直接反射光成分だけでなく、内部散乱光の影響が観測される。図4(B)に示すようなシーンを撮像した撮影画像から空間分割符号列を求めると、本来暗部であるべき領域において内部散乱光が観測されるため、暗部であるべき領域が明部と判定されて、誤った空間分割符号列が形成され、正しい三次元座標が得られない。
【００３５】
図5により内部散乱光の影響を除去する方法を説明する。図5(A)は市松模様のマスクの基準パターンであり、図5(B)は反転模様のマスクの基準パターンの例である。これら基準パターンを対象物104に投影すると、図5(C)(D)に示すように、光が投影されない対象物104の右側領域において内部散乱光の影響が観測される。さらに、市松模様が投影された対象物104の左側領域においては、直接反射光が観測されるだけでなく、内部散乱光が加わった光が観測される。
【００３６】
図5(C)において、市松模様が投影されている対象物104の左側領域において、市松模様の明部に対応する画素iの輝度値Iaiを次のように定義する。
Iai = Idi + Igi      …(1)
ここで、Idiは画素iにおける直接反射光による輝度、
Igiは内部散乱や相互反射などの間接反射光による輝度。
【００３７】
一方、図5(D)において、同位置の画素iは市松模様の暗部に対応し、画素iの輝度値ibiは下式のように間接反射光のみによって決定される。
Ibi = Igi      …(2)
【００３８】
ただし、式(1)(2)において間接反射光による輝度Igiが等しいと見做すには、市松模様の格子サイズが間接反射光が及ぼす影響の範囲に比べて充分に小さいことが条件である。市松模様の格子サイズの決め方については後述する。従って、格子サイズの条件が満たされれば下式に示すように、内部散乱光を含む間接反射光の影響を除去して、直接反射光による輝度Idiを算出することができる。
Idi = |Iai - Ibi|      …(3)
【００３９】
一方、光が投影されていない対象物104の右側領域の画素jにおいては、図5(C)に対応する輝度Iaj、図5(C)に対応する輝度Ibjともに間接反射光による輝度Igjが観測される。そのため、Iaj-Ibjを計算すると0に近い値が得られる。
【００４０】
市松模様の明部における画素iの輝度値をIai、市松模様の暗部における画素iの輝度値をIbiとすると、直接反射光算出部301は、式(3)の計算によって、図5(E)に示すように、直接反射光による輝度Idiを算出する。
【００４１】
［格子サイズ］
次に、市松模様の格子サイズを対象物104に応じて適応的に決定する方法を説明する。上述したように、間接反射光の影響を除去するには、市松模様の格子サイズを充分に小さくする必要がある。しかし、格子サイズが小さ過ぎると直接反射光の強度が小さくなり、信号の直接反射光成分と間接反射光成分の差が小さくなって、直接反射光成分の正確な検出が難しくなる場合がある。
【００４２】
そこで、三次元計測を行う前に、対象物104に対して、市松模様の基準パターンと反転模様の基準パターンのペアを投影して撮像を行う。そして、二つの撮影画像の各画素における差分絶対値|Iai-Ibi|を計算する。この処理を格子サイズが小さな市松模様から開始し、格子サイズを徐々に大きくして|Iai-Ibi|がノイズと見做されない値を超えるまで処理を繰り返す。|Iai-Ibi|がノイズと見做されない値以上の格子サイズに達したら、当該格子サイズを三次元計測を行う際の格子サイズに決定する。言い替えれば、市松模様の格子サイズは、差分絶対値|Iai-Ibi|がノイズと見做されない大きさに設定される。
【００４３】
例えば、投影装置101から1024×768画素のパターンを40×30cmの領域に投影する場合、格子の大きさは4×4画素（約1.5×1.5mm）が基準である。ただし、対象物104の反射特性や内部散乱特性によって適切な格子サイズが変化するので、上記の方法により、対象物104ごとに格子サイズを決定する。
【００４４】
［空間分割符号列の生成］
次に、空間分割符号列の生成方法について説明する。対象物104の反射率による影響を抑制するために、図3(A)(B)(C)に示した基準パターン群および図3(D)(E)(F)に示した反転パターン群を撮像した画像それぞれから、上記の|Iai-Ibi|の処理によって直接反射光の輝度を算出する。そして、次式により符号bを決定する
if (I0i - I1i ＞ 0)
bi = ‘1’；
else
bi = ‘0’；      …(4)
ここで、biは画素iに対応する符号、
I0iは基準パターンにおける画素iの直接反射光の輝度値、
I1iは反転パターンにおける画素iの直接反射光の輝度値。
【００４５】
符号列生成部302は、上記の処理を空間符号化パターン系列502のすべてについて行い、各画素について得られた符号biを順に並べた空間分割符号列（例えば‘1010…’）を生成する。
【００４６】
［計測処理］
図6のフローチャートにより三次元計測装置100における計測処理を説明する。三次元計測装置100が起動されると、制御部210は初期化処理を行う(S101)。初期化処理において、制御部210は、投影装置101や撮像装置102を起動する。さらに、制御部210は、パラメータ記憶部206に格納された較正データ508を三次元座標算出部208に設定し、パラメータ記憶部206に格納された空間符号化パターン系列502を投影パターン生成部202に設定する。つまり、各種パラメータの設定処理が行われる。
【００４７】
次に、制御部210は、投影パターン生成部202を制御して、先述した手順によって空間符号化パターン系列502から反射光算出用のパターン画像504を生成し、パターン画像504を投影装置101に出力する(S102)。
【００４８】
次に、制御部210は、投影装置101を制御してパターン画像504に対応するパターン光を対象物104に投影し、同時に、撮像装置102を制御してパターン光が投影された対象物104の画像を撮像する(S103)。制御部210は、撮影画像505を画像入力部204を介して画像バッファ211に保持する(S104)。
【００４９】
ステップS103において、市松模様のマスクの基準パターンの投影と撮像、反転模様のマスクの基準パターンの投影と撮像、市松模様のマスクの反転パターンの投影と撮像、反転模様のマスクの反転パターンの投影と撮像が順次行われる。ステップS103とS104は、三次元座標の算出に必要な数のパターン画像504の投影と撮像が完了するまで繰り返し行われる。
【００５０】
必要な数の撮影画像505が取得されると、制御部210は、画像処理部205を制御して、反射光算出用のパターン画像504が対象物104に投影された状態を撮像した撮影画像505から式(3)により直接反射光の輝度を算出する(S105)。そして、算出した直接反射光の輝度を基に式(4)により空間分割符号列を生成し(S106)、投影座標と撮影画像の座標を対応付ける空間符号化パターン系列502の復号処理を行う(S107)。
【００５１】
次に、制御部210は、三次元座標算出部208を制御して復号結果の投影座標と撮影画像の座標の対応関係から対象物104の表面の三次元座標509を算出し(S108)、結果出力部209を制御して三次元座標509に基づく情報を出力する(S109)。ステップS103からS109の処理は、ここの説明順に従う実行順序である必要はない。依存関係を含まない処理については、適宜、実行順序を入れ替えてもよいし、並列に同時処理することも可能である。
【００５２】
対象物104の表面の三次元座標の算出（三次元形状の計測）が終了すると、制御部210は、ユーザ指示を判定し(S110)、ユーザ指示に従い処理をステップS102に戻して計測処理を継続するか、計測処理を終了する。
【００５３】
このように、空間符号化パターンとして、直接反射光の輝度の算出が可能なパターン画像を対象物104に投影し、対象物104の直接反射光の輝度を算出し、直接反射光の輝度を基に空間分割符号列を生成して対象物104の三次元形状を計測する。内部散乱などの間接反射光成分を除去することによって、空間分割符号列を生成する際の誤りを防ぎ、対象物104の三次元座標を安定かつ正確に算出することが可能になる。
【００５４】
実施例1においては、対象物104が内部散乱を引き起こす半透明部分を含む場合も正確な三次元形状の計測が可能になる。つまり、半透明部分を含む対象物104にパターン画像を投影した場合の内部散乱や相互反射の影響を抑制し、高精度な三次元計測を安定的に行うことができる。
【実施例２】
【００５５】
以下、本発明にかかる実施例2の計測装置および情報処理装置、並びに、計測方法および情報処理方法を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００５６】
実施例2では、空間符号化パターンとして位相シフト法を用いて、市松模様のマスクと反転模様のマスクを用いたパターン群を基に対象物104の直接反射光の輝度を算出した後、空間分割符号列を生成して対象物104の三次元形状の測定を行う方法を説明する。
【００５７】
実施例2において、実施例1と異なる部分は、投影パターン生成部202が生成するパターン画像504と、画像処理部205における投影座標と撮影画像の座標の対応付け方法である。位相シフト法は、輝度値が正弦波状に変化するパターン（以下、正弦波パターン）を、位相をシフトしながら投影して得られる複数の撮影画像の輝度値から、各画素における正弦波の位相を算出して投影座標と撮影画像の座標の対応付けを行う手法である。
【００５８】
実施例2の投影パターン生成部202は、空間符号化パターン系列502として位相シフトパターンを用いて、正弦波パターンのそれぞれに対して、市松模様のマスクと反転模様のマスクを施し、反射光算出用のパターン画像504を生成する。図7により実施例2の基準パターン群の一例を示す。図7(A)は市松模様のマスクを施した基準パターン、図7(B)は反転模様のマスクを施した基準パターンである。
【００５９】
画像処理部205は、図7に示す基準パターンに対応するパターン画像504を投影して得られる撮影画像から、実施例1と同様に、差分絶対値|Iai-Ibi|を計算することで各画素の直接反射光の輝度を算出する。そして、直接反射光の輝度に基づき、通常の位相シフト法と同様に、各画素における正弦波の位相を算出して投影座標と撮影画像の座標を対応付ける。
【００６０】
このように、位相シフト法を用いる場合、撮像したパターン画像に正確な輝度値が要求される。その場合も、直接反射光の輝度を算出することにより、安定的かつ正確な三次元計測を行うことが可能である。
【００６１】
［変形例］
図8によりマスクパターンの一例を説明する。実施例1、2では、図8(A)に示すような市松模様のマスクパターンと、その反転模様のマスクパターンを用いてパターン画像504を生成する例を説明した。図8(A)に示す市松模様のマスクパターンの代わりに、図8(B)に示すような格子模様のマスクパターンを用いてもよいし、あるいは、高周波パターンからなるモザイクパターンを用いてもよい。
【００６２】
例えば図8(B)に示すマスクパターンを用いた場合、図8(C)に示す四つの正方形のうち一つに光が投影されるパターンの繰り返しになる。従って、各正方形に対応する領域に少なくとも一度、光が投影されるように、少なくとも四つのマスクを一組として反射光算出のパターン群を生成すればよい。
【００６３】
図8(B)に示すマスクパターンを用いる場合の直接反射光の輝度は、画素iの最大輝度値から最小輝度値を減算する次式によって算出される。
Idi = max(Iki) - min(Iki)      …(5)
ここで、Ikiはk番目(k=1, 2, 3, 4)の撮影画像の画素iにおける輝度値、
max( )は最大値を出力する関数、
min( )は最小値を出力する関数。
【００６４】
間接反射光の影響が狭い範囲にしか及ばない場合、格子模様のマスクの格子サイズをn×n画素とすると、m（≦n）画素（所定距離）ずつマスクの位置を移動する。そして各画素に少なくとも一度ずつ光を投影する複数のマスクを一組として反射光算出用のパターン群とすればよい。
【００６５】
マスクの移動量（m画素）によってパターン画像の投影数が変化する。mの値は小さいほど間接反射光の影響の除去性能が向上するが、投影数が増加して計測時間が長くなる。そこで、マスクの移動量mの値は、間接反射光の除去が可能な範囲で最大値に設定することが望ましい。
【００６６】
図9によりマスクの移動量mを対象物104に対して適応的に決める方法を説明する。格子模様のマスクの格子サイズn×n画素は、実施例1で述べた方法などによって4×4画素に決定されているものとする。図9(A)はマスクの位置をn画素ずつ移動（m=n）する例、図9(B)はマスクの位置をn/2画素ずつ移動（m=n/2）する例、図9(C)はマスクの位置をn/3画素ずつ移動（m=n/3）する例を示す。図9(A)(B)(C)によれば、それぞれ一方向に対して二回、三回、四回の投影と撮像が必要になる。
【００６７】
図9(A)の移動量m=nから順次移動量mを減らして投影と撮像を行い、間接反射光成分の除去が可能と判断されるまで移動量mを減らし、例えばn=4に対してm=2として格子模様のマスクを用いるパターン画像504を生成する。
【００６８】
間接反射光成分が除去可能か否かの判断方法は、例えば、マスクの位置を移動して得られた撮影画像群から、各画素の最小輝度値を抽出して間接反射光画像を形成する。そして、間接反射光画像に格子の周期的なパターンが残っていなければ、間接反射光成分が除去されたと判断すればよい。言い替えれば、マスクの移動量mは、最小輝度値によって形成される間接反射光画像に、格子模様の周期的パターンが残らないように設定される。
【００６９】
周期的パターンの有無の検出を自動で行う場合は、例えば間接反射光画像に対して二次元フーリエ変換を行い、格子が繰り返し現れる周波数に輝度のピークが観察されるか否かを判定するなどの方法を用いる。
【００７０】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７１】
101 … 投影装置、102 … 撮像装置、202 … 投影パターン生成部、204 … 画像入力部、205 … 画像処理部、206 … パラメータ記憶部
【図１】
0006420572.tif 000002
【図２】
0006420572.tif 000003
【図３】
0006420572.tif 000004
【図４】
0006420572.tif 000005
【図５】
0006420572.tif 000006
【図６】
0006420572.tif 000007
【図７】
0006420572.tif 000008
【図８】
0006420572.tif 000009
【図９】
0006420572.tif 000010