(57)【特許請求の範囲】
【請求項１】
複数の方向から物体を撮像して得られる画像を基に前記物体の３次元形状を算出する制御装置であって、
前記複数の方向それぞれについて、撮像手段と投影手段とを制御することによって、所定の方向に光量が周期的に変化する縞パターン光が照射された前記物体を撮像して得られる画像と、前記所定の方向に光量が周期的に変化し、前記縞パターン光と位相差を有する縞パターン光が照射された前記物体を前記複数の方向から撮像して得られる画像と、を含む画像群を取得する第１取得手段と、
前記複数の方向それぞれについて、前記撮像手段と前記投影手段とを制御することによって、前記縞パターン光に含まれる複数の周期のうち少なくとも１つの周期の位置を識別可能とするパターン光が照射された前記物体を撮像して得られる１つの画像を取得する第２取得手段と、
前記複数の方向それぞれについて、前記画像群に基づいて、各画素に位相値を有する位相画像を生成する第１生成手段と、
前記複数の方向それぞれについて、前記１つの画像と前記位相画像とに基づいて、前記位相画像の各画素における周期識別番号を示す周期識別画像を生成する第２生成手段と、
前記複数の方向それぞれについて、前記周期識別画像を用いて前記位相画像の位相接続を行うことにより、接続位相画像を生成する第３生成手段と、
前記複数の方向それぞれの前記接続位相画像に基づいて、前記物体の３次元形状を算出する算出手段とを備え、
前記少なくとも１つの周期の位置を識別可能とするパターン光は、エッジ強度が所定値以上のエッジ部を、前記縞パターンの前記少なくとも１つの周期内において前記縞パターンの縞に平行して設けるように作成され、前記エッジ部は、前記縞パターンの縞の周期が切り替わる切り替え部以外の位置に存在することを特徴とする制御装置。
【請求項２】
前記第２生成手段は、前記複数の方向それぞれについて、前記１つの画像に基づいて前記少なくとも１つの周期の位置を抽出し、抽出した前記少なくとも１つの周期の位置に対応する前記位相画像の周期識別番号が、前記複数の方向の間で共通な所定番号になるように前記周期識別画像を生成することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第２生成手段は、前記複数の方向それぞれについて、前記１つの画像に基づいて２値化画像を生成し、前記２値化画像に基づいて前記少なくとも１つの周期の位置を抽出することを特徴とする請求項２に記載の制御装置。
【請求項４】
前記第１取得手段は、前記所定の方向に光量が周期的に変化する前記縞パターン光の投影ごとに、複数の露出条件で前記物体を前記複数の方向から撮像するよう前記撮像手段を制御し、
前記第２取得手段は、前記少なくとも１つの周期の位置を識別可能とするパターン光の投影において、１つの露出条件で前記物体を前記複数の方向から撮像するよう前記撮像手段を制御することを特徴とする請求項１乃至３のいずれか１項に記載の制御装置。
【請求項５】
前記複数の方向それぞれについて、前記所定の方向に光量が周期的に変化する前記縞パターン光の投影ごとに、前記複数の露出条件における撮像により得られる複数の画像を合成して、合成画像を生成する合成手段をさらに有し、
前記第１生成手段は、前記合成画像に基づいて前記位相画像を生成することを特徴とする請求項４に記載の制御装置。
【請求項６】
前記算出手段は、
前記接続位相画像に基づいて、前記複数の方向において前記接続位相画像の位相値が同じとなる対応点を探索する対応点探索手段と、
前記対応点探索手段により探索された前記対応点に基づいて、三角測量の原理により前記物体の３次元形状を算出する三角測量手段と
をさらに有することを特徴とする請求項１乃至５のいずれか１項に記載の制御装置。
【請求項７】
前記所定の方向に光量が周期的に変化する前記縞パターン光は、輝度が正弦波状に変化する縞状のパターン光であることを特徴とする請求項１乃至６のいずれか１項に記載の制御装置。
【請求項８】
複数の方向から物体を撮像して得られる画像を基に前記物体の３次元形状を算出する制御方法であって、
前記複数の方向それぞれについて、撮像手段と投影手段とを制御することによって、所定の方向に光量が周期的に変化する縞パターン光が照射された前記物体を撮像して得られる画像と、前記所定の方向に光量が周期的に変化し、前記縞パターン光と位相差を有する縞パターン光が照射された前記物体を前記複数の方向から撮像して得られる画像と、を含む画像群を取得する第１取得ステップと、
前記複数の方向それぞれについて、前記撮像手段と前記投影手段とを制御することによって、前記縞パターン光に含まれる複数の周期のうち少なくとも１つの周期の位置を識別可能とするパターン光が照射された前記物体を撮像して得られる１つの画像を取得する第２取得ステップと、
前記複数の方向それぞれについて、前記画像群に基づいて、各画素に位相値を有する位相画像を生成する第１生成ステップと、
前記複数の方向それぞれについて、前記１つの画像と前記位相画像とに基づいて、前記位相画像の各画素における周期識別番号を示す周期識別画像を生成する第２生成ステップと、
前記複数の方向それぞれについて、前記周期識別画像を用いて前記位相画像の位相接続を行うことにより、接続位相画像を生成する第３生成ステップと、
前記複数の方向それぞれの前記接続位相画像に基づいて、前記物体の３次元形状を算出する算出ステップとを備え、
前記複数の方向それぞれについての前記画像群及び前記１つの画像に基づいて、前記物体の３次元形状を算出する算出と、
前記少なくとも１つの周期の位置を識別可能とするパターン光は、エッジ強度が所定値以上のエッジ部を、前記縞パターンの前記少なくとも１つの周期内において前記縞パターンの縞に平行して設けるように作成され、前記エッジ部は、前記縞パターンの縞の周期が切り替わる切り替え部以外の位置に存在することを特徴とする制御方法。
【請求項９】
コンピュータを請求項１乃至７のいずれか１項に記載の制御装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、測定対象物の３次元形状を測定する技術に関する。
【背景技術】
【０００２】
従来、測定対象物の３次元形状を高密度に測定する方法としてステレオ位相シフト法が知られている（例えば非特許文献１）。ステレオ位相シフト法は、輝度が周期的に変化する縞状のパターン（以下、縞パターン）を、位相を複数回シフトさせて測定対象物に投影し、異なる２つの方向から撮像する。そして、２つの方向から撮像された画像から、それぞれの方向における各画素の位相値を算出し、２つの方向における位相値の対応から三角測量の原理で測定対象物の３次元形状を算出する。このように、能動的にパターンを投影し位相値を算出することで、測定対象物の色が均一であっても高精度、かつ高密度に３次元形状を測定することが可能となる。また、異なる２つの方向から撮像することで、投影装置や撮像装置が非線形な出力特性をもつ場合であっても高精度に３次元形状を測定することが可能となる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】T.Zaman, “Development of a Topographic Imaging Device”, Delft University of Technology 2013
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術は、測定対象物の濃度レンジが広い場合、測定対象物の暗部に投影された縞パターンのコントラストが低下し、撮像装置のノイズに埋もれてしまうため位相値の推定が困難になるという課題があった。撮像装置の露出条件を振った複数枚の撮像を行って、得られた画像をＨＤＲ（Ｈｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）合成することで撮像装置のノイズによる影響を低減することは可能であるが、この場合、撮像枚数が増え、撮像時間が長くなってしまう。特に従来技術のステレオ位相シフト法では、位相を振った縞パターンの他に、位相の周期を特定するためのグレーコードと呼ばれるパターンを複数投影する必要がある。投影されるグレーコードの数とＨＤＲ合成の露出条件数との積で撮像枚数が増えてしまう。また、油彩画などの文化財を測定対象物とした場合、撮像枚数を少なくし、文化財への光の暴露量を減らすことで与えるダメージを軽減する必要がある。
【０００５】
そこで本発明は、濃度レンジの広い測定対象物の３次元形状を、高精度かつ、少ない撮像枚数で測定可能な３次元形状測定装置および３次元形状測定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数の方向から物体を撮像して得られる画像を基に前記物体の３次元形状を算出する制御装置であって、前記複数の方向それぞれについて、撮像手段と投影手段とを制御することによって、所定の方向に光量が周期的に変化する縞パターン光が照射された前記物体を撮像して得られる画像と、前記所定の方向に光量が周期的に変化し、前記縞パターン光と位相差を有する縞パターン光が照射された前記物体を前記複数の方向から撮像して得られる画像と、を含む画像群を取得する第１取得手段と、前記複数の方向それぞれについて、前記撮像手段と前記投影手段とを制御することによって、前記パターン光に含まれる複数の周期のうち少なくとも１つの周期の位置を識別可能とするパターン光が照射された前記物体を撮像して得られる１つの画像を取得する第２取得手段と、前記複数の方向それぞれについて、前記画像群に基づいて、各画素に位相値を有する位相画像を生成する第１生成手段と、前記複数の方向それぞれについて、前記１つの画像と前記位相画像とに基づいて、前記位相画像の各画素における周期識別番号を示す周期識別画像を生成する第２生成手段と、前記複数の方向それぞれについて、前記周期識別画像を用いて前記位相画像の位相接続を行うことにより、接続位相画像を生成する第３生成手段と、前記複数の方向それぞれの前記接続位相画像に基づいて、前記物体の３次元形状を算出する算出手段とを備え、前記少なくとも１つの周期の位置を識別可能とするパターン光は、エッジ強度が所定値以上のエッジ部を、前記縞パターンの前記少なくとも１つの周期内において前記縞パターンの縞に平行して設けるように作成され、前記エッジ部は、前記縞パターンの縞の周期が切り替わる切り替え部以外の位置に存在することを特徴とする。
【発明の効果】
【０００７】
本発明により、濃度レンジの広い測定対象物の場合でも、その３次元形状を高精度かつ少ない撮像枚数で測定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施例１における３次元形状測定装置の概略構成を示す図である。
【図２】実施例１における３次元形状測定装置の機能構成を示すブロック図である。
【図３】実施例１における３次元形状測定処理の流れを示すフローチャートである。
【図４】実施例１における投影パターンを示す図である。
【図５】実施例１における縞パターンおよび基準位置パターンの利用方法を説明するための図である。
【図６】実施例１における露出条件を説明するための図である。
【図７】実施例１における投影パターンと露出条件の設定を説明するための図である。
【図８】実施例１における画像取得ステップの詳細な処理の流れを示すフローチャートである。
【図９】実施例１における形状算出部の詳細な機能構成を示すブロック図である。
【図１０】実施例１における周期識別画像を説明するための図である。
【図１１】実施例１における形状算出ステップの詳細な処理の流れを示すフローチャートである。
【図１２】実施例１における周期識別画像生成ステップの詳細な処理の流れを示すフローチャートである。
【図１３】実施例２における基準位置パターンを示す図である。
【図１４】位相算出における撮像装置のノイズの影響を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１０】
［実施例１］
本実施例は、測定対象物として、例えば油彩画のような数ｍｍ〜数十μｍの凹凸を表面にもつ略平面形状の物体を対象とし、表面の凹凸形状情報と色情報を取得する３次元形状測定装置を説明する。
【００１１】
（３次元形状測定装置）
図１は、本実施例における３次元形状測定装置の概略構成を示す図である。図１（ａ）は３次元形状測定装置を正面からみた正面図、図１（ｂ）は３次元形状測定装置を上方からみた上面図である。測定の対象となる測定対象物１０１は、試料台１０２の上に固定されている。投影装置１０３は３次元形状測定に必要な２次元のパターンを測定対象物１０１に投影するための装置である。投影装置１０３としては、例えば６４０ｘ４８０画素、ＬＥＤ光源を用いた単板モノクロのＤＬＰ（Ｄｉｇｉｔａｌ  Ｌｉｇｈｔ  Ｐｒｏｃｅｓｓｉｎｇ）方式プロジェクターを用いることができるが、これに限るものではない。測定対象物１０１上に２次元のパターンを投影できるものであればどのようなものであってもよい。
【００１２】
撮像装置１０４、１０５は、２次元のパターンが投影された測定対象物１０１を撮像するための装置であり、例えばＤＳＬＲ（Ｄｉｇｉｔａｌ  Ｓｉｎｇｌｅ  Ｌｅｎｓ  Ｒｅｆｌｅｘ  ｃａｍｒａ）等の撮像装置である。撮像装置１０４、１０５としては、例えば８６８８ｘ５７９２画素のＣＭＯＳ方式のエリアセンサを有するＤＳＬＲに焦点距離が１００ｍｍのマクロレンズを組み合わせたものを用いることができるが、これに限るものではない。測定範囲１０７の全面で測定対象物１０１の表面にピントが合うようティルトレンズ等を用いてもよい。なお、本実施例では、撮像装置１０４、１０５は測定対象物１０１上の輝度に対し線形な信号値を得る光電変換特性を有し、記録される画像は、各画素でＲＧＢ３チャンネルの色情報を有し、各チャンネルが１６ビットで量子化されているものとする。
【００１３】
また、制御装置１０６は投影装置１０３、撮像装置１０４および撮像装置１０５を制御し、測定対象物１０１の３次元形状を算出する一連の制御を行うための装置である。本実施例では、制御装置１０６は、ＣＰＵ（中央処理演算装置）、ＲＡＭ（ランダムアクセスメモリ）等の主記憶装置、ＨＤ（ハードディスク）やフラッシュメモリ等の補助記憶装置を備えたＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）として説明する。ただし、制御装置１０６は、ＰＣに限るものではなく、３次元形状測定装置の一部として組み込まれたマイクロコンピュータ等であってもよい。なお、制御装置１０６のＣＰＵは、ＲＡＭをワークメモリとして、ＨＤなどに格納されたプログラムを実行し、３次元形状測定装置の動作の全体を制御する。なお、ＣＰＵが実行するプログラムには、後述する形状測定処理などのプログラムが含まれる。
【００１４】
投影装置１０３、撮像装置１０４および撮像装置１０５は、不図示のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のインターフェースを介して制御装置１０６とそれぞれ接続されている。図１に示すように、本実施例では、投影装置１０３は測定対象物１０１に正対するよう上方に配置され、測定範囲１０７を含む範囲に２次元のパターンを投影する。撮像装置１０４および撮像装置１０５はそれぞれ測定対象物１０１を左右方向から撮像するよう配置されている。また、撮像装置１０４、１０５は撮像画角の中に測定範囲１０７が含まれるよう設置されている。
【００１５】
図２は、本実施例における３次元形状測定装置の機能構成を示すブロック図である。図１に示されていない入力装置２０１は、ユーザからの操作を受け付けるための装置であり、例えばキーボード、マウス等のデバイスである。また、図１に示されていない表示装置２０２は、ユーザが入力した内容や測定条件、測定結果をユーザに提示するための装置であり、例えば液晶モニタ等のデバイスである。以下、図２を参照して制御装置１０６に含まれる各機能構成を説明する。
【００１６】
画像取得制御部２０３は、後述の形状算出部２０５の形状算出に用いる撮像画像を取得するよう投影装置１０３及び撮像装置１０４、１０５を制御する構成であり、撮像制御部２０３１及び投影制御部２０３２を含む。撮像制御部２０３１は、撮像装置１０４および撮像装置１０５を制御する構成であり、例えば、各撮像装置の撮像条件を変更したり、撮像の実行を指示したり、撮像画像を各撮像装置から受信したりする。また、投影制御部２０３２は、投影装置１０３を制御する構成であり、例えば、投影されるべきパターン（以降、投影パターンと呼ぶ）を投影装置１０３へ送信したり、投影の開始、終了を指示したりする。
【００１７】
ＵＩ管理部２０４は、ユーザが入力装置２０１を介して入力した情報の管理や、３次元形状測定結果を表示装置２０２に表示させる等の処理を行う構成であり、入力制御部２０４１及び表示制御部２０４２を含む。入力制御部２０４１は、入力装置２０１を制御する構成であり、表示制御部２０４２は表示装置２０２を制御する構成である。形状算出部２０５は、画像取得制御部２０３で取得された撮像画像に基づいて、測定対象物１０１の３次元形状を算出する。色算出部２０６は形状算出部２０５で算出された３次元形状に対応する色情報を算出する。色算出部２０６の詳細については後述する。
【００１８】
（３次元形状測定処理）
図３は、本実施例における３次元形状測定装置が行う３次元形状測定処理の流れを示すフローチャートである。なお、図３に示す各ステップの処理は、ＣＰＵがＨＤなどに格納されているプログラムをＲＡＭに読み出し、実行することで実現される。なお、符号Ｓは、フローチャートにおけるステップであることを意味する。まず、Ｓ３０１においてＵＩ管理部２０４は、表示装置２０２を介してユーザに撮像装置１０４および撮像装置１０５の撮像条件等の設定を行うよう促す。撮像条件の設定の詳細については後述する。ユーザが入力装置２０１を介して撮像条件の設定を終えると、処理は画像取得ステップＳ３０２に進む。
【００１９】
Ｓ３０２において画像取得制御部２０３は、投影装置１０３により投影パターンが測定対象物１０１に投影された際に、撮像装置１０４、１０５に測定対象物１０１を撮像させて、投影パターンの撮像画像を取得する。画像取得ステップＳ３０２の詳細については後述する。Ｓ３０２の撮像画像取得処理が終了すると、処理は形状算出ステップＳ３０３に進む。Ｓ３０３において形状算出部２０５は、Ｓ３０２で取得された撮像画像に基づいて、測定対象物１０１の３次元形状情報を算出する。本実施例で算出される３次元形状情報は、撮像装置１０４のエリアセンサの中心を原点とするＸ、Ｙ、Ｚ座標値をｍｍ単位で各３２ビットの浮動小数点で記録した点群情報であり、エリアセンサの画素数と等しい数の座標値を有する。ここで、Ｘ軸、Ｙ軸、Ｚ軸は直交座標系であり、Ｘ軸、Ｙ軸は撮像装置１０４のエリアセンサ面を含む平面を張り、Ｚ軸はＸ軸、Ｙ軸に直交する方向に定義される。
【００２０】
Ｓ３０４において色算出部２０６は、３０３で算出された点群情報の各点に対応するＲＧＢの色情報を算出する。具体的に、本ステップの処理は、後述する色取得パターンが測定対象物１０１に投影された際に撮像装置１０４で撮像された画像の各画素の色情報をＳ３０３で算出された点群情報に対応づけて記録する処理である。本実施例では、点群情報に含まれる各点の座標値は撮像装置１０４で撮像された画像の各画素に１対１で対応するよう算出される。そのため、Ｓ３０４の処理では、画素ごとにＸＹＺ座標を点群情報から検索し、検索された座標値にＲＧＢ各１６ビット、計４８ビットの色情報を付与したＸＹＺＲＧＢの計１４４ビットの情報を記録する。最後に、Ｓ３０５においてＵＩ管理部２０４は、色情報が付加された点群情報を表示装置２０２に表示し、処理を終了する。具体的に、本ステップでは、色情報が付加された点群情報の各数値のリストを表示装置２０２に表示する、またはＸＹＺ座標を３次元空間上に色情報に対応する色でプロットし、任意の方向からみた投影図を表示するなどの処理を行う。なお、Ｓ３０５の処理はこれに限るものではなく、表示装置２０２に表示を行わず、不図示のＨＤやフラッシュメモリ等に色情報が付加された点群情報を直接記録するよう構成しても良い。
【００２１】
（投影パターン）
図４は、本実施例における投影装置１０３が投影するパターンを示す図である。これらの投影パターンは、投影装置１０３の画素と１対１に対応する６４０ｘ４８０画素、０（黒）〜２５５（白）の画素値をとる８ビットのグレースケール画像であるものとして説明する。なお、画素数、ビット深度、色数等はこれに限るものではない。図４（ａ）〜（ｃ）は、縞パターンを示している。本実施例ではこれらの縞パターンを測定対象物１０１に投影し、撮像された画像に基づいて位相を算出し、そして、位相に基づいて測定対象物１０１の３次元形状を算出する。これらの縞パターンは、輝度が正弦波状に変化する縞状のパターン（正弦波パターン）であり、次の式（１）〜（３）により作成することができる。
【００２２】
【数１】
0006800597.tif 000002
【００２３】
【数２】
0006800597.tif 000003
【００２４】
【数３】
0006800597.tif 000004
【００２５】
ここで、（ｊ，ｉ）は画素の位置を示す２次元座標であり、ｊは画像の横方向、ｉは画像の縦方向の位置を示している。Ｉ0（ｊ，ｉ）、Ｉ1（ｊ，ｉ）、Ｉ2（ｊ，ｉ）は、それぞれ図４（ａ）、（ｂ）、（ｃ）に示した縞パターンの位置（ｊ,ｉ）の画素値である。また、Ｎcycleは正弦波１周期あたりの画素数を示すパラメータである。本実施例で、図４（ａ）に示した縞パターンを１／３周期ずつ位相をシフトして３回測定対象物１０１に投影した場合を例に説明を行ったが、これに限るものではない。例えば、図４（ａ）に示した縞パターンを１／６周期ずつ位相をシフトして６回測定対象物１０１に投影してもよい。図４（ｄ）は、基準位置パターンを示している。基準位置パターンは、縞パターンの複数の周期のうち少なくとも１つの周期の位置を基準位置として示すパターンである。図４（ｄ）に示すように、本実施例における基準位置パターンは、縞パターンに平行して１つのステップエッジを設けるように作成されている。ここで、ステップエッジは、その周囲での輝度変化が急激である、すなわち、エッジ強度が所定値以上であるエッジである。
【００２６】
本実施例では、図４（ａ）〜（ｃ）の縞パターンが測定対象物１０１に投影された際に撮像装置１０４と撮像装置１０５にて撮像された画像に基づいて撮像装置ごとに位相を算出する。そして、両撮像装置間で位相が一致する画素位置から三角測量の原理により３次元形状を算出する。縞パターンが投影された際に撮像された画像には複数周期分の正弦波が含まれるため、算出される位相画像は位相値が０〜２πの値を周期的に繰り返す。つまり、同一の位相画像内で同じ位相値を有する画素が周期的に複数存在してしまう。そこで、位相画像内で同じ位相値を有する画素が周期的に存在しないよう周期ごとに異なるオフセット（周期識別番号×２π）を足しこむ位相接続処理がなされる。このオフセットを決定する際に、図４（ｄ）の基準位置パターンが使用される。
【００２７】
具体的には、まず、基準位置パターンが投影された際に撮像装置１０４および１０５で撮像された画像それぞれから基準位置（ステップエッジ部の位置）を抽出する。そして、抽出した位置に対応する位相画像の周期識別番号が撮像装置１０４と撮像装置１０５とで同一の値（共通の所定番号）となるよう位相画像の各画素位置の周期識別番号を示す周期識別画像を生成する。さらに、生成した周期識別画像を用いて位相画像の位相接続処理を行う。これにより、撮像装置間で位相画像の整合をとった接続位相画像を生成することが可能となる。なお、本実施例では、位相画像に対して周期識別画像を生成する際に基準位置パターンの撮像画像と位相画像との両方を用いる構成をとるので、１枚の基準位置パターンを利用して異なる撮像装置の位相画像間の整合をとることが可能となる。
【００２８】
図５は、縞パターンおよび基準位置パターンの利用方法を説明するための図である。図５（ａ）は、図４（ａ）、（ｂ）、（ｃ）に示した縞パターンの線分５０１上の画素値変化を示すラインプロファイルである。これら縞パターンに基づいて、図４（ａ）の縞パターンの各画素の位相値は次の式（４）により算出することができる。
【００２９】
【数４】
0006800597.tif 000005
【００３０】
ここで、Φ（ｊ,ｉ）は０〜２πの値をとるものとする。図５（ｂ）は、図５（ａ）から線分５０１上の位相値変化を示すラインプロファイルを上記の式（４）によって算出したものである。図５（ｂ）からわかるように位相値は０〜２πの値を周期的に繰り返す。
【００３１】
基準位置パターンは、図５（ｂ）の複数の周期のうち特定の周期にステップエッジ部が位置するよう作成される。図５（ｃ）は、図４（ｄ）に示した基準位置パターンの線分５０１上の画素値変化を示すラインプロファイルである。上述したように、図５（ｃ）に示したラインプロファイルにおいては、ステップエッジ部の位置が図５（ｂ）の特定の周期に対応している。
【００３２】
また、図５（ｃ）のステップエッジ部の位置は、図５（ｂ）に示したように特定の周期の中心付近に配置する。ここで、周期の中心となる位置は、例えば図５（ｂ）のように位相が０〜２πまで位置に対して線形に変化する場合は、位相がπとなる位置に相当する。なお、基準位置パターンのステップエッジ部の位置は必ず位相値がπとなる位置と一致している必要はなく、位相が０、または２πとなる周期の切り替え部以外の位置にステップエッジ部を位置させればよい。これにより、後述する周期識別画像生成ステップＳ１１１７の処理において、撮像された画像からステップエッジ部の位置を抽出する際に生じる誤差に対して堅牢に周期識別番号を決定することができるという効果がある。
【００３３】
撮像装置のノイズ等の影響により、基準位置パターンの撮像画像から抽出したステップエッジ部の位置（抽出位置）がずれる可能性がある。例えば、基準位置パターンを投影した際、撮像露光量がオーバーな場合、撮像される画像の明るい部分が本来の位置より拡がり、ステップエッジ部の抽出位置がずれる可能性がある。このように抽出位置がずれた場合であっても、抽出位置が同じ周期内であれば、後述する周期識別画像生成ステップＳ１１１７の処理結果が変わらない。そこで、ステップエッジ部を周期の真ん中にくるよう基準位置パターンを作成しておくことによって、上記抽出位置のずれに対して堅牢な処理となる。逆に、ステップエッジ部がもともと位相が０または２πなど周期の切り替え部付近にある場合は、このような抽出位置のずれに対し、異なる周期識別画像が生成されてしまう可能性があり、不安定な処理となってしまう。つまり、本実施例では、基準位置パターンのステップエッジ部を、位相が０または２πとなる周期の切り替え部以外の位置に設けることにより、撮像装置のノイズ等の影響が多い場合でも精度良く周期識別画像を生成することができる。
【００３４】
図４（ｅ）は測定対象物１０１の色情報を取得するために投影される色取得パターンを示している。本実施例では全面均一な白色（画素値２５５）のパターンを採用するが、これに限るものではない。例えば、測定対象物１０１に色取得パターンを投影したとき、測定範囲１０７の範囲内で光量が均一となるよう画素の位置に応じて画素値を変化させてもよい。
【００３５】
（露出条件）
測定対象物１０１が光学濃度の高い暗い物体であった場合、投影された縞パターンのコントラストが小さくなり、撮像装置１０４、１０５にて加えられるノイズとの区別が困難となるため、撮像される画像に基づいて位相を算出する精度が低下する。図１４は、式（４）で示したＩ0、Ｉ1、Ｉ2に最小値が０、最大値が横軸の輝度レベルとなる正弦波信号に対し、標準偏差が０．４の正規分布ノイズを加えたときの位相値の標準偏差の変化を示した図である。この図から、式（４）により位相を算出すると、横軸の輝度レベルが小さいとき、すなわち、正弦波のコントラストが低いときに急激に位相値がばらつくことがわかる。このような特性のため、測定対象物１０１の３次元形状を測定するためには、色を測定するよりも撮像装置としてノイズの少ないものを用いる必要がある。
【００３６】
そこで、本実施例では、図４（ａ）〜（ｃ）の縞パターンごとに、撮像装置１０４および撮像装置１０５の露出設定を変えた複数回の撮像を行い、ＨＤＲ（Ｈｅｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）合成する。そのことにより、測定対象物１０１が油彩画のような広い濃度分布を持つ場合であっても、撮像装置１０４、１０５にて加えられるノイズによる影響が減少するため位相算出の精度が向上する。
【００３７】
図６は、本実施例における露出条件を説明するための図である。本実施例では、縞パターンを撮像するときの撮像装置に３段階の露出条件で設定する。すなわち、図６の露出設定番号０〜２は縞パターン撮像用の露出条件である。ここで露出条件は、絞り値、シャッター速度およびＩＳＯ感度を含む。また、露出設定番号３は基準位置パターン撮像用、露出設定番号４は色取得パターン撮像用の露出条件である。図６に示すように、本実施例では、縞パターンを複数の露出条件で撮像し、基準位置パターンを１つの露出条件で撮像する。
【００３８】
図６に示すような露出条件は、例えば次のように決定することができる。まず、酸化マグネシウムや硫酸バリウム等から生成された白色基準板を測定対象物１０１のかわりとして置き、図４（ｅ）の全面白色パターンを投影し撮像する。このとき、撮像された画像のＲＧＢ値が所定の値に最も近くなる露出条件を色取得パターン撮像用の露出条件とする。同様に、撮像された画像のＲＧＢ値が飽和しない、すなわち、１６ビットの最大値である６５５３５未満の値となる条件で露光量を最大限多く設定した露出条件を基準位置パターン撮像用の露出条件とする。
【００３９】
縞パターン撮像用の露出条件は、まず色取得パターン撮像用の露出条件と同じ条件を露出設定番号１に設定する。次に、露出設定番号１からＥＶ値（Ｅｘｐｏｓｕｒｅ  Ｖａｌｕｅ）が−３段となる露出条件を露出設定番号０に設定し、同じく＋３段となる露出条件を露出設定番号２に設定する。なお、露出条件は、絞り値を変化させると幾何歪み等が発生するため、絞り値を固定し、シャッター速度が異なるよう設定することが望ましい。ただし、投影装置１０３とシャッター速度が干渉しフリッカが生じる可能性がある。そこで、投影装置１０３のフレームレートが例えば１／３０秒である場合、シャッター速度はこれより長い１／１５秒を基準値とし、基準値より長い速度に設定することが望ましい。すなわち、露出条件は、まず絞り値を同じとし、シャッター速度を変化させる。そして、シャッター速度が基準値より短くなる場合はＩＳＯ感度を調整し、シャッター速度が基準値より長くなるよう設定することが望ましい。
【００４０】
なお、上記の露出設定は例であり、これに限定するものではない。露出設定番号０〜露出設定番号２の条件は、測定対象物１０１の濃度レンジに応じて適切に決定されることが望ましく、また、縞パターンを撮像するときに設定される露出条件の数も３条件に限らず、２条件や５条件などであってもよい。さらに、基準位置パターン撮像用の露出条件は、色取得パターン撮像用の露出条件と同じ条件等であってもよく、前述したステップエッジ部の位置が撮像画像から抽出可能であればどのような露出条件であってもよい。
【００４１】
図７は、画像取得制御部２０３が投影装置１０３、撮像装置１０４および撮像装置１０５を制御し、取得する撮像画像の番号と撮像時の投影パターンおよび露出条件を説明する図である。ここで撮像画像の番号は、図７の撮像番号と同じものとする。投影パターン番号０〜４のパターンはそれぞれ図４（ａ）〜（ｅ）に示したパターンである。露出設定番号は、図６の露出設定番号を意味する。図７に示すように、本実施例では、撮像番号０〜１０までの１１回の撮像を撮像装置１０４および撮像装置１０５で行う。
【００４２】
（画像取得ステップの詳細）
図８は、本実施例における画像取得制御部２０３が行う画像取得ステップＳ３０２の詳細な処理の流れを示すフローチャートである。なお、図８に示す各ステップの処理は、ＣＰＵがＨＤなどに格納されているプログラムをＲＡＭに読み出し、実行することで実現される。Ｓ８０１において画像取得制御部２０３は、撮像番号を示す変数ｃｎｔを０で初期化する。Ｓ８０２において画像取得制御部２０３は、縞パターン番号を示す変数ｎを０で初期化する。ここで縞パターン番号は図７の投影パターン番号と同じものとする。
【００４３】
次に、Ｓ８０３において画像取得制御部２０３は、変数ｎが縞パターン数Ｎｎより小さいかを判定する。変数ｎが縞パターン数Ｎｎより小さいと判定された場合に処理はＳ８０４に進み、それ以外の場合に処理はＳ８１２に進む。本実施例では、縞パターンとして図４（ａ）〜（ｃ）に示した３パターンが存在するため、縞パターン数Ｎｎ＝３となる。Ｓ８０４において画像取得制御部２０３は、投影装置１０３が変数ｎで示された投影パターン番号の投影パターンを測定対象物１０１に投影するよう制御を行う。Ｓ８０５において画像取得制御部２０３は、露出設定番号を示す変数ｍを０で初期化する。Ｓ８０６において画像取得制御部２０３は、変数ｍが露出設定数Ｎｍより小さいかを判定する。変数ｍが露出設定数Ｎｍより小さいと判定された場合に処理はＳ８０７に進み、それ以外の場合に処理はＳ８１１に進む。ここで、露出設定数Ｎｍは、縞パターンを撮像する露出条件の数であり、本実施例においては３段階の露出条件で撮像するためＮｍ＝３となる。
【００４４】
Ｓ８０７において画像取得制御部２０３は、変数ｃｎｔで示された撮像番号に対応する露出設定番号を図７から読み取る。画像取得制御部２０３は読み取った露出設定番号から図６を参照し、対応する絞り値、シャッター速度およびＩＳＯ感度を撮像装置１０４および撮像装置１０５に設定する。Ｓ８０８において画像取得制御部２０３は、撮像装置１０４および撮像装置１０５が測定対象物を撮像するよう制御を行う。具体的に、画像取得制御部２０３は撮像装置１０４および撮像装置１０５に撮像開始の命令を送り、それぞれの撮像装置で撮像された画像を取得し、不図示のＨＤ等の記憶媒体に保持する。次に、Ｓ８０９、Ｓ８１０において画像取得制御部２０３は、撮像番号を示す変数ｃｎｔ、露出設定番号を示す変数ｍに１を加え、処理をＳ８０６に戻す。Ｓ８０７〜Ｓ８１０の処理が露出設定数Ｎｍ回繰り返されると、Ｓ８０６にて変数ｍが露出設定数Ｎｍとなったと判定され、処理はＳ８１１に進む。Ｓ８１１において画像取得制御部２０３は、縞パターン番号を示す変数ｎに１を加え、処理をＳ８０３に戻す。
【００４５】
このように、Ｓ８０３〜Ｓ８１１の処理を繰り返すことにより、すべての縞パターンについて、すべての露出設定数回の撮像が行われる。本実施例では、縞パターン数Ｎｎが３、露出設定数Ｎｍが３であるため３ｘ３の９回、撮像ステップＳ８０８が行われることになる。
【００４６】
次に、Ｓ８０３の判定により処理がＳ８１２に進むと、Ｓ８１２において、画像取得制御部２０３は図４（ｄ）の基準位置パターンをＳ８０４と同様に測定対象物１０１に投影する。そして、画像取得制御部２０３は、Ｓ８１３にて露出条件の変更、Ｓ８１４にて撮像をそれぞれＳ８０７、Ｓ８０８と同様に行う。その後、画像取得制御部２０３は、Ｓ８１５で変数ｃｎｔに１を加え、Ｓ８１６にて図４（ｅ）の色取得パターンをＳ８０４と同様に測定対象物１０１に投影し、Ｓ８１７、Ｓ８１８にてＳ８０７、Ｓ８０８と同様に露出条件の変更と撮像を行い、処理を終了する。
【００４７】
（形状算出部の詳細）
図９は、形状算出ステップＳ３０３を実行する形状算出部２０５のより詳細な機能構成を説明するブロック図である。画像読み込み部９０１は、撮像装置１０４および撮像装置１０５にて撮像されてＨＤ等の記憶媒体に保持された撮像画像を必要に応じて読み込む。
【００４８】
ＨＤＲ合成部９０２は、縞パターンごとに複数の異なる露出条件で撮像された画像をＨＤＲ合成し、撮像された画像より高品質な１つの合成画像を生成する。ＨＤＲ合成処理は、既に様々な方法が知られている。例えば、露光量の少ない条件で撮像された画像１と、露光量の多い条件で撮像された画像２を合成する際、まず、所定領域の平均ＲＧＢ値が等しくなるよう画像２のＲＧＢ値に乗ずる各係数を決定する。そして、決定された係数を乗じた画像２のＲＧＢ値と、画像１のＲＧＢ値とをＲＧＢチャンネルごとに加重平均して合成後のＲＧＢ値とする。このとき、ＲＧＢチャネルごとにその値が小さいほど画像２の重みが大きくなるよう加重平均することで画像１の暗部のノイズが低減された合成後の画像が獲得できる。
【００４９】
本実施例では、まず図７に示した撮像番号０で撮像装置１０４が撮像した画像を画像１、撮像番号１で撮像装置１０４が撮像した画像を画像２としてＨＤＲ合成処理を行う。そして、合成後の画像を画像１、撮像番号２で撮像装置１０４が撮像した画像を画像２として再び同じ処理を行い、３枚がＨＤＲ合成された画像を取得する。このように、ＨＤＲ合成部９０２では、撮像番号０〜２、撮像番号３〜５、撮像番号６〜８で撮像装置１０４が撮像した画像をそれぞれＨＤＲ合成する。同様に、撮像番号０〜２、撮像番号３〜５、撮像番号６〜８で撮像装置１０５が撮像した画像をそれぞれＨＤＲ合成する。つまり、計６枚の合成画像が生成される。
【００５０】
位相画像生成部９０３は、ＨＤＲ合成部９０２にて生成された計６枚の合成画像の内、撮像装置１０４の合成画像３枚から式（４）に従って各画素の位相を算出し、位相画像を生成する。このとき、位相は、合成画像のＧチャンネルのみを使用して算出してもよく、または、Ｒ、Ｇ、Ｂの各チャンネルを所定の重みで加算した輝度情報を使用して算出してもよい。また、位相画像は、各画素１チャンネル、０〜２πまでの値をとる３２ビットの浮動小数点の画像データであるが、これに限るものではない。同様に、位相画像生成部９０３は、撮像装置１０５にて撮像された画像３枚についても式（４）に従って各画素の位相を算出し、位相画像を生成する。撮像装置ごとに生成された位相画像は、不図示のＲＡＭ等の記憶媒体に保持される。
【００５１】
２値化処理部９０４は、図７の撮像番号９で撮像装置１０４および撮像装置１０５にて撮像された画像（基準位置パターンの撮像画像）の２値化処理を行って、基準位置パターンの２値化画像を生成する。２値化処理は、撮像画像の各画素において、Ｒ、Ｇ、Ｂ各チャンネルを所定の重みで加算した輝度情報が、所定の閾値より小さいときは０、それ以外のときは２５５を画素値とする各画素１チャンネル、８ビットの画像を生成する処理である。生成された２値化画像はＲＡＭ等の記憶媒体に保持される。
【００５２】
また、全面白均一の投影パターンを投影し、同露出条件で撮像した全白画像と、全面黒均一の投影パターンを投影し、同露出条件で撮像した全黒画像を用いることで、より高精度な２値化処理を行うこともできる。すなわち、基準位置パターンの撮像画像を全白画像および全黒画像と比較することで、基準位置パターンの撮像画像の２値化処理を行う。その場合、画素ごとに、全黒画像の輝度情報との差分１と、全白画像の輝度情報との差分２をそれぞれ算出し、差分１の絶対値が差分２の絶対値より小さければ０、そうでなければ２５５となるよう画素値を決定することができる。なお、２値化処理の方法はここで述べた方法だけに限定されるものではない。なお、ここで２値化処理部９０４は後述の周期識別画像生成部９０５と別の処理部として示されたが、周期識別画像生成部９０５に含まれる構成としてもよい。
【００５３】
周期識別画像生成部９０５は、位相画像生成部９０３で生成された撮像装置１０４および撮像装置１０５の位相画像と、２値化処理部９０４で生成された撮像装置１０４および撮像装置１０５の基準位置パターンの２値化画像とに基づいて周期識別画像を生成する。この処理の詳細は後述するが、周期識別画像は、位相画像の各画素において位相の周期の番号を割り当てた画像であり、例えば位相画像の各画素に対応する１チャンネル、８ビットの画像としてＲＡＭ等に保持される。
【００５４】
図１０は、周期識別画像を説明するための図である。図１０（ａ）は、位相画像のあるライン（縞と垂直するライン）上における画素位置と位相値との関係を示すラインプロファイルである。このように位相値は、０〜２πまでの値を周期的に繰り返す。この周期ごとに左から連続的に番号を振っていったものが図１０（ｂ）に示す周期識別画像のラインプロファイルとなる。このとき、図１０（ｃ）に示す２値化画像のラインプロファイルにおいて、値が変わるエッジ部の位置に対応する周期識別番号が所定番号（本実施例の場合は１２８）となるよう、図１０（ｂ）における各画素位置の周期識別番号を決定する。このように位相画像の全画素に対して周期識別番号を決定し、周期識別画像を生成する。
【００５５】
周期識別画像は、後述の位相接続処理において用いられる。また、上記所定番号は撮像装置間で共通であるので、上記のように生成された周期識別画像を用いて位相接続処理を行うと、撮像装置の位相画像間の整合をとった接続位相画像を生成することができる。これにより、測定対象物１０１上のある一点における位相が、撮像装置１０４と撮像装置１０５で生成されたそれぞれの接続位相画像で同じ値となるため、後述する対応点探索が可能となる。
【００５６】
位相接続部９０６は、周期識別画像と位相画像に基づいて、周期ごとに繰り返しが発生しない接続位相画像を生成する。この処理は、接続位相画像の画素値をΦc（ｊ，ｉ）、周期識別画像の画素値をＰ（ｊ，ｉ）、位相画像の画素値をΦ（ｊ，ｉ）とすると次の式（５）で示すことができる。
【００５７】
【数５】
0006800597.tif 000006
【００５８】
なお、接続位相画像は、各画素１チャンネル、３２ビットの浮動小数点の画像データであり、撮像装置１０４および撮像装置１０５ごとに生成され、ＲＡＭ等の記憶媒体にそれぞれ保持される。図１０（ｄ）は、位相接続処理の結果例を示す図であり、図１０（ａ）に示した位相画像のラインプロファイルと図１０（ｂ）に示した周期識別画像のラインプロファイルに基づいて生成した接続位相画像のラインプロファイルを示している。
【００５９】
対応点探索部９０７は、撮像装置１０４の接続位相画像の各画素について、位相値が同じとなる撮像装置１０５の接続位相画像の画素の位置を算出する。具体的には、まず、撮像装置１０４と撮像装置１０５の姿勢と位置の関係からあらかじめ３×３の基礎行列Ｆを算出しておき、次の式（６）の関係からエピポーラ線を算出する。
【００６０】
【数６】
0006800597.tif 000007
【００６１】
ここで、（ｕ，ｖ）は撮像装置１０４の接続位相画像の画素の位置を示す２次元座標である。また、（ｕ´，ｖ´）は撮像装置１０５の接続位相画像の画素の位置を示す２次元座標である。対応点探索部９０７では、式（６）より任意の座標（ｕ，ｖ）に対し、座標（ｕ´，ｖ´）を通るエピポーラ線を表す方程式（直線の方程式）を一意に決定する。そして、対応点探索部９０７では、撮像装置１０４の接続位相画像における座標（ｕ，ｖ）にある位相値と等しい位相値を有する画素を、撮像装置１０５の接続位相画像において上記直線の方程式にそって探索する。対応点探索部９０７は探索した位置の座標（ｕ´，ｖ´）をＲＡＭ等に記録する。この対応点探索処理を撮像装置１０４の全画素について行う。
【００６２】
なお、対応点探索部９０７で行う対応点探索処理は上記の処理に限るものではない。例えば、ブロックマッチング法などにより所定領域の画素の類似度を算出し、撮像装置１０４の接続位相画像における座標（ｕ，ｖ）に対し類似度が最大となる撮像装置１０５の接続位相画像における座標（ｕ´，ｖ´）を記録するようにしてもよい。
【００６３】
三角測量部９０８は、撮像装置１０４の接続位相画像における座標（ｕ，ｖ）と、当該座標（ｕ，ｖ）に対応する撮像装置１０５の接続位相画像における座標（ｕ´，ｖ´）とから、測定対象物１０１上の測定点の３次元座標（Ｘ，Ｙ，Ｚ）を算出する。具体的には、次の式（７）、（８）で示される３ｘ４の投影行列Ｐ、Ｐ´をあらかじめ撮像装置１０４および撮像装置１０５の焦点距離や位置、姿勢から算出しておき、（Ｘ，Ｙ，Ｚ）について式（７）と式（８）からなる連立方程式を解く。
【００６４】
【数７】
0006800597.tif 000008
【００６５】
【数８】
0006800597.tif 000009
【００６６】
この連立方程式は、行列Ｐのｍ行ｎ列の要素をＰｍｎ、行列Ｐ´のｍ行ｎ列の要素をＰ´ｍｎとすると、次の式（９）を解くことと等価である。
【００６７】
【数９】
0006800597.tif 000010
【００６８】
三角測量部９０８は、式（９）に従って撮像装置１０４の接続位相画像の全画素に対し、逐次３次元座標（Ｘ，Ｙ，Ｚ）を算出し、ＸＹＺの３チャンネルのチャンネルごとに３２ビットの浮動小数点で記録した点群情報を生成し、ＨＤ等の記憶媒体に保持する。
【００６９】
（形状算出ステップの詳細）
図１１は、本実施例における形状算出部２０５が行う形状算出ステップＳ３０３の詳細な処理の流れを示すフローチャートである。なお、図１１に示す各ステップの処理は、ＣＰＵがＨＤなどに格納されているプログラムをＲＡＭに読み出し、実行することで実現される。まず、Ｓ１１０１において画像読み込み部９０１は、撮像装置番号を示す変数ｖを０で初期化する。本実施例では、ｖ＝０は撮像装置１０４の番号となり、ｖ＝１は撮像装置１０５の番号となる。
【００７０】
次に、Ｓ１１０２において画像読み込み部９０１は、変数ｖが撮像装置数Ｎｖより小さいかを判定する。本実施例では、撮像装置数Ｎｖ＝２となる。変数ｖが撮像装置数Ｎｖより小さいと判定された場合に、処理はＳ１１０３に進み、そうでない場合に、処理はＳ１１２０に進む。Ｓ１１０３において画像読み込み部９０１は、ｖ番目の撮像装置を選択する。本ステップの選択処理により、後続する処理において撮像装置１０４と撮像装置１０５のどちらで撮像された画像を読み込むかを指示する。すなわち、ｖ＝０の時は撮像装置１０４で撮像された画像が後続する処理で読み込まれ、ｖ＝１の時は撮像装置１０５で撮像された画像が後続する処理で読み込まれる。
【００７１】
Ｓ１１０４において画像読み込み部９０１は、撮像番号を示す変数ｃｎｔを０で初期化する。Ｓ１１０５において画像読み込み部９０１は、投影パターン番号を示す変数ｎを０で初期化する。次に、Ｓ１１０６において画像読み込み部９０１は、変数ｎが縞パターン数Ｎｎより小さいかを判定する。縞パターン数Ｎｎは、本実施例では既に述べたように３となる。変数ｎが縞パターン数Ｎｎより小さいと判定された場合に、処理はＳ１１０７に進み、それ以外の場合に、処理はＳ１１１４に進む。Ｓ１１０７において画像読み込み部９０１は、露出設定番号を示す変数ｍを０で初期化する。
【００７２】
Ｓ１１０８において画像読み込み部９０１は、変数ｍが露出設定数Ｎｍより小さいかを判定する。変数ｍが露出設定数Ｎｍより小さいと判定された場合に、処理はＳ１１０９に進み、それ以外の場合に、処理はステップＳ１１１２に進む。Ｓ１１０９において画像読み込み部９０１は、変数ｃｎｔで示された撮像番目で変数ｖにて指定される撮像装置が撮像した画像を読み込む。そして、Ｓ１１１０とＳ１１１１において画像読み込み部９０１は、撮像番号を示す変数ｃｎｔと露出設定番号を示す変数ｍにそれぞれ１を加え、処理をＳ１１０８に戻す。
【００７３】
Ｓ１１０９〜Ｓ１１１１の処理が露出設定数Ｎｍ回繰り返されると、Ｓ１１０８にて変数ｍが露出設定数Ｎｍとなったと判定され、処理はＳ１１１２に進む。Ｓ１１１２においてＨＤＲ合成部９０２は、Ｓ１１０８〜Ｓ１１１１のループで読み込まれたＮｍ枚の撮像画像をＨＤＲ合成し、１枚の合成画像を生成する。そして、Ｓ１１１３において画像読み込み部９０１は、変数ｎに１を加え、処理をＳ１１０６に戻す。Ｓ１１０６にて処理がＳ１１１４に進むときは、すべての縞パターンについてＨＤＲ合成後の画像（合成画像）をＳ１１１２で生成されたときである。Ｓ１１１４において位相画像生成部９０３は、それらの合成画像を用いて位相画像を生成する。
【００７４】
次に、Ｓ１１１５において画像読み込み部９０１は、図７の撮像番号９に相当する基準位置パターンが投影された際に撮像された画像を読み込む。Ｓ１１１６において２値化処理部９０４は、Ｓ１１１５で読み込まれた基準位置パターンの撮像画像を２値化して、基準位置パターンの２値化画像を生成する。そして、Ｓ１１１７において周期識別画像生成部９０５は、Ｓ１１１６で生成された基準位置パターンの２値化画像と、Ｓ１１１４で生成された位相画像とに基づいて、周期識別画像を生成する。周期識別画像生成ステップＳ１１１７の詳細について後述する。
【００７５】
その後、Ｓ１１１８において位相接続部９０６は、Ｓ１１１７で生成された周期識別画像と、Ｓ１１１４で生成された位相画像タとに基づいて接続位相画像生成する。すなわち、式（５）に従って各画素の接続後の位相値を算出し、接続位相画像を生成する。そして、Ｓ１１１９において画像読み込み部９０１は変数ｖに１を加え、処理をＳ１１０２に戻す。すべての撮像装置についてＳ１１０３〜Ｓ１１１９の処理で接続位相画像が生成されると、Ｓ１１２０にて変数ｖが撮像装置数Ｎｖとなったと判定され、処理はＳ１１２０に進む。そして、Ｓ１１２０において対応点探索部９０７は、異なる撮像装置の接続位相画像間で位相値が同じとなる対応点を探索する。Ｓ１１２１において三角測量部９０８は、対応点の座標に基づいて、三角測定の原理により測定対象物の３次元形状を算出する。
【００７６】
（周期識別画像生成ステップの詳細）
本実施例では、基準位置パターンの２値化画像および位相画像に基づいて周期識別画像を生成する。図１２は、本実施例における周期識別画像生成部９０５が行う周期識別画像生成ステップＳ１１１７の詳細な処理の流れを示すフローチャートである。なお、図１２に示す各ステップの処理は、ＣＰＵがＨＤなどに格納されているプログラムをＲＡＭに読み出し、実行することで実現される。
【００７７】
Ｓ１２０１〜Ｓ１２１６の処理は、位相画像に対し行ごとに周期の切り替え部を識別してカウントし、そのカウント値で周期識別画像の画素値（周期識別番号）を初期化する処理（番号初期化処理）である。まず、Ｓ１２０１において周期識別画像生成部９０５は、画素の高さ方向の位置を示す変数ｉを０で初期化する。Ｓ１２０２において周期識別画像生成部９０５は、変数ｉが画像の高さＨより小さいか否かを判定することで、位相画像の全ての行に対する番号初期化処理が終わったか否かを判定する。変数ｉが画像の高さＨより小さい場合に、ｉ行目の番号初期化処理が行われるように、処理はＳ１２０３に進み、それでない場合に、全ての行の番号初期化処理が終わったと判定され、処理はＳ１２１７に進む。なお、本実施例では撮像装置１０４、１０５のエリアセンサの画素数から、画像の高さＨは５７９２となる。
【００７８】
Ｓ１２０３において周期識別画像生成部９０５は、位相画像のｉ行目において周期の切り替え部をカウントするための変数period_counterを０で初期化し、画素の幅方向の位置を示す変数ｊをＮｔで初期化する。ここでＮｔは、位相画像から周期の切り替え部を判定する際に参照する画素の位置範囲を指定するためのパラメータであり、自然数である。すわなち、位相画像の位置（ｊ，ｉ）の画素が周期の切り替え部であるか否かを判定するために、位置（ｊ−Ｎｔ，ｉ）〜位置（ｊ＋Ｎｔ−１，ｉ）の画素が参照される。
【００７９】
Ｓ１２０４において周期識別画像生成部９０５は、変数ｊが画像幅Ｗ−Ｎｔより小さいか否かを判定することで、画像の１行分の処理が終わったか否かを判定する。変数ｊが画像幅Ｗ−Ｎｔより小さい場合は１行分の処理が終わっていないと判定し、処理はＳ１２０５へ進む。そうでない場合は、１行分の処理が終わったと判定し、処理はＳ１２１６へ進む。なお、本実施例では撮像装置１０４、１０５のエリアセンサの画素数から、画像幅Ｗは８６８８となる。
【００８０】
Ｓ１２０５において周期識別画像生成部９０５は、Ｓ１１１４にて生成された位相画像Φにおいて、隣接する画素の値と注目画素の値の差Φ（ｊ−１，ｉ）−Φ（ｊ，ｉ）を算出し、その差があらかじめ設定された閾値Ｔｈ以上であるか否かを判定する。図１０（ａ）の示したように、周期の切り替え部では位相値が大きく変動する。Ｓ１２０５では、位相値の差が閾値Ｔｈ以上であると判定した場合に、この位相値が大きく変動する箇所を周期の切り替え部の候補とし、処理をＳ１２０７に進める。そうでない場合に、位相画像の位置（ｊ、ｉ）にある画素が周期の切り替え部でないとし、処理をＳ１２０６に進める。Ｓ１２０６において周期識別画像生成部９０５は、周期識別画像の画素値ＩＤ（ｊ，ｉ）に変数period_counterの値を記録し、ｊに１を加えて処理をＳ１２０４へ戻す。
【００８１】
Ｓ１２０７〜Ｓ１２１５の処理では、周期の切り替え部の候補である画素の周辺画素を考慮し、その画素で周期の切り替えを行うことが妥当であるか否かを判定する。具体的には、Ｓ１２０７において周期識別画像生成部９０５は、周辺画素を参照するための変数ｔを−Ｎｔで初期化する。そして、Ｓ１２０８において周期識別画像生成部９０５は、変数ｔがＮｔより小さいか否かを判定することで、周辺画素の参照が終わったか否かを判定する。変数ｔがＮｔより小さい場合に、終わっていないと判定し、処理はＳ１２０９へ進み、そうでない場合に、終わったと判定し、処理はＳ１２１３に進む。Ｓ１２０９では、２ｘＮｔのサイズをもつバッファメモリＢＵＦ１およびＢＵＦ２にΦ（ｊ＋ｔ，ｉ）の値を逐次保存する。Ｓ１２１０、Ｓ１２１１では、ｔが０以上のときにＢＵＦ２の値に２πを加算する。そして、Ｓ１２１２では変数ｔに１を加え、処理をＳ１２０８へ戻す。
【００８２】
Ｓ１２０８〜Ｓ１２１２のループによりＢＵＦ１には位相接続前の着目画素周辺の位相値が記録され、ＢＵＦ２には位相接続後の着目画素周辺の位相値に相当する値が記録される。次に、Ｓ１２１３では、ＢＵＦ１、ＢＵＦ２に記録されたデータの分散値をそれぞれ算出する。着目画素が周期の切り替え部として妥当である場合は、ＢＵＦ２の分散値がＢＵＦ１の分散値より小さくなり、そうでない場合はＢＵＦ１の分散値がＢＵＦ２の分散値より小さくなる。そこで、Ｓ１２１４では、ＢＵＦ２の分散値がＢＵＦ１の分散値より小さいか否かを判定し、ＢＵＦ２の分散値がＢＵＦ１の分散値より小さいと判定した場合に、着目画素が周期の切り替え部であるとし、処理をＳ１２１５に進める。Ｓ１２１５では、周期の切り替え部をカウントするための変数period_counterに１を加え、処理をＳ１２０６へ進める。Ｓ１２０６では、前述したように、周期識別画像の画素値ＩＤ（ｊ，ｉ）に変数period_counterの値を記録し、ｊに１を加えて処理をＳ１２０４へ戻す。
【００８３】
このように周期の切り替え部の妥当性を判定することで、撮像装置のノイズ等の影響が多い場合でも精度良く周期識別画像を生成することができる。なお、ここでは分散値で周期の切り替え部の妥当性を判断したが、これに限るものではない。例えば、直線回帰した際の誤差を分散値の替わりに用いても良い。ｉ行目の番号初期化処理が終わると、処理はＳ１２１６に進む。Ｓ１２１６では、変数ｉに１を加え、処理をＳ１２０２に戻す。位相画像の全ての行に対する番号初期化処理が終わる、すなわち、周期識別画像ＩＤの全画素において画素値が初期化されると、Ｓ１２０２にて処理がＳ１２１７に分岐される。
【００８４】
Ｓ１２１７〜ＳＳ１２２８の処理は、Ｓ１１１６で生成された基準位置パターンの２値化画像からステップエッジ部の位置を抽出し、その位置に対応する周期識別番号が、撮像装置間で共通である所定番号となるよう周期識別画像の画素値を修正する処理である。これらの処理により、測定対象物１０１上のある一点における位相接続後の位相値が、異なる撮像装置間で同じ値となることが保証される。まず、Ｓ１２１７において周期識別画像生成部９０５は、画素の高さ方向の位置を示す変数ｉを０で初期化する。次に、Ｓ１２１８で変数ｉが画像の高さＨより小さいか否かを判定する。変数ｉが画像の高さＨより小さい場合に、周期識別画像のｉ行目の画素値が修正されるように、処理はＳ１２１９に進み、そうでない場合に、周期識別画像の全ての行の画素値修正が終わったと判定され、処理は終了する。
【００８５】
Ｓ１２１９において周期識別画像生成部９０５は、ステップエッジ部の位置に対応する修正前の周期識別番号を保持するための変数ｔｍｐ＿ｉｄ、画素の幅方向の位置を示す変数ｊをそれぞれ０で初期化する。Ｓ１２２０において周期識別画像生成部９０５は、変数ｊが画像幅Ｗ−Ｎｔより小さいか否かを判定することで、画像の１行分の処理が終わったか否かを判定する。変数ｊが画像幅Ｗ−Ｎｔより小さい場合は１行分の処理が終わっていないと判定し、Ｓ１２２１へ進める。そうでない場合は、１行分の処理が終わったと判定し、処理をＳ１２２４へ進める。
【００８６】
Ｓ１２２１において周期識別画像生成部９０５は、Ｓ１１１６で生成された２値化画像Ｂにおいて、隣接する画素の値が着目画素の値と異なるか否かを判定する。隣接する画素の値が同じであれば、着目画素がステップエッジ部でないとし判定し、Ｓ１２２２にて変数ｊに１を加え、処理をＳ１２２０に戻す。隣接する画素の値が異なれば、ステップエッジ部であると判定し、Ｓ１２２３にて変数ｔｍｐ＿ｉｄにそのときの周期識別画像の画素値ＩＤ（ｊ，ｉ）を保持し、処理をＳ１２２４に進める。
【００８７】
Ｓ１２２４〜Ｓ１２２７の処理では、周期識別画像のｉ行目の各画素の値を修正する。まず、Ｓ１２２４にて画素の幅方向の位置を示す変数ｊを再び初期化し、Ｓ１２２５で１行分の処理が終わったか否かを判定する。１行分の処理が終わったと判定された場合、処理をＳ１２２８に進め、変数ｉに１を加えることで次の行について上述の処理を繰り返し行い、そうでない場合、処理をＳ１２２６に進める。Ｓ１２２６では、周期識別画像ＩＤの画素値に対し、変数ｔｍｐ＿ｉｄを引き、１２８を加える。このようにすることで、ステップエッジ部の周期識別画像ＩＤの画素値が１２８となる。そして、Ｓ１２２７にて変数ｊに１を加え、処理をＳ１２２５に戻す。なお、本実施例では、ステップエッジ部の周期識別画像ＩＤの画素値が１２８という所定番号となるようにしたが、所定番号は１２８に限るものでなく、どのような値であってもよい。
【００８８】
以上のとおり、本実施例の３次元形状測定装置の構成によれば、濃度レンジの広い対象物体の３次元形状を、高精度かつ、少ない撮像枚数で測定することが可能となる。
【００８９】
［実施例２］
実施例１では、基準位置パターンとして、図４（ｄ）に示したステップエッジを１つ有する画像を用いた３次元形状測定方法について説明した。本実施例においては、ステップエッジを２つ有する画像を基準位置パターンとして用いる例について説明する。なお、本実施例の３次元形状測定装置の構成は、とくに説明しない限り実施例１で述べた構成と同じである。
【００９０】
図１３（ａ）に本実施例における基準位置パターンの例を示す。ここで、箇所１３０１と箇所１３０２の破線は、ステップエッジ部の位置を示している。このように、本実施例では２つのステップエッジを有するパターンを基準位置パターンとして用いる。図１３（ｂ）は、図５（ｂ）と同じ縞パターンから式（４）により位相値を算出した位相画像のラインプロファイルである。また、図１３（ｃ）は、図１３（ａ）に示した基準位置パターンの画素位置と画素値の関係を示すラインプロファイルである。
【００９１】
図１３（ｃ）に示すように、ステップエッジ部は画素値が２５５から０に変化する箇所１３０１と、０から２５５に変化する箇所１３０２の２箇所である。この２箇所の位置は、図１３（ｂ）において、それぞれ位相値がπとなる位置と一致している。なお、必ずしも一致している必要はなく、位相が０、または２πとなる周期の切り替え部以外の位置に箇所１３０１、箇所１３０２のステップエッジ部があればよい。このように周期の切り替え部以外にステップエッジ部を位置させることにより、基準位置パターンを測定対象物１０１に投影し、撮像する際の撮像露光量の過不足に堅牢な処理となる。
【００９２】
本実施例において、周期識別画像生成ステップは、実施例１の図１２で説明したＳ１１１７の詳細な処理と同じ処理を行うことができる。この場合、ステップエッジ部としては箇所１３０２のエッジ部が抽出され、この位置に対応する位相画像の周期識別番号が所定番号（本実施例では１２８）となる周期識別画像が生成される。また、図１２のステップＳ１２２１の処理をＢ（ｊ−１，ｉ）＞Ｂ（ｊ，ｉ）とすれば、箇所１３０１のエッジ部が抽出され、この位置にある位相画像の周期が上記所定番号を参照して決定した番号（本実施例では１２６）となる周期識別画像が生成される。ここで、図１３（ｂ）に示した箇所１３０１と箇所１３０２の位置の周期の間隔が２であるため、箇所１３０２のエッジ部と箇所１３０１のエッジ部に対応する周期識別画像の画素値が２異なる１２８と１２６となるように説明した。
【００９３】
上記２つの処理を両方行うことで、箇所１３０２のエッジ部にある位相画像の周期識別番号が１２８となる周期識別画像と、箇所１３０１のエッジ部にある位相画像の周期識別番号が１２６となる周期識別画像の２種類の周期識別画像が生成される。このようにすることで、２種類の周期識別画像を比較し、異なれば周期識別画像を正しく生成できなかったものとして、ユーザにエラー表示するなど、より周期識別画像生成の誤りに堅牢な処理を行うことが可能となる。また、２種類の周期識別画像を表示装置２０２等に表示し、ユーザに選択させるなどの構成をとることも可能である。なお、周期識別画像の周期として説明した１２６と１２８は例であり、これに限るものではない。
【００９４】
（他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９５】
１０３  投影装置
１０４  撮像装置
１０５  撮像装置
２０３  画像取得制御部
２０５  形状算出部
【図１】
0006800597.tif 000011
【図２】
0006800597.tif 000012
【図３】
0006800597.tif 000013
【図４】
0006800597.tif 000014
【図５】
0006800597.tif 000015
【図６】
0006800597.tif 000016
【図７】
0006800597.tif 000017
【図８】
0006800597.tif 000018
【図９】
0006800597.tif 000019
【図１０】
0006800597.tif 000020
【図１１】
0006800597.tif 000021
【図１２】
0006800597.tif 000022
【図１３】
0006800597.tif 000023
【図１４】
0006800597.tif 000024