(57)【要約】【課題】  光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定するための画像処理を提供することを目的とする。【解決手段】  パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第１取得手段と、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第２取得手段と、前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、を有することを特徴とする画像処理装置。【選択図】  図５
2018169274.tif 000002
【特許請求の範囲】
【請求項１】
パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第１取得手段と、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第２取得手段と、
前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記撮像画像データに基づいて、前記位相画像データを生成する第１生成手段をさらに有し、
前記第１取得手段は、前記第１生成手段によって生成された前記位相画像データを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記撮像画像データに基づいて、前記振幅画像データを生成する第２生成手段をさらに有し、
前記第２取得手段は、前記第２生成手段によって生成された前記振幅画像データを取得することを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記位相画像データと前記振幅画像データとに基づいて前記物体における領域ごとの反射特性を判定することによって、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項１乃至請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
前記決定手段は、前記位相画像データが表す位相画像を複数のブロックに区切ってブロックごとに前記物体の反射特性を判定した後、前記振幅画像データを用いて前記ブロックに含まれる領域ごとに前記物体の反射特性を判定することによって、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記位相画像データが表す位相画像を複数のブロックに区切り、前記複数のブロックのうちの各ブロックにおいて頻度が０となる位相値の数を算出する第１算出手段と、
前記決定手段は、前記頻度が０となる位相値の数が所定の閾値以上であるブロックを前記物体の三次元形状を取得する範囲に含め、かつ、前記頻度が０となる位相値の数が所定の閾値より小さいブロックと、前記頻度が０となる位相値の数が所定の閾値以上であるブロックとの境界の近傍領域に対応するブロックにおいて前記振幅画像データが表す振幅が所定の閾値以上である領域を前記物体の三次元形状を取得する範囲に含めることを特徴とする請求項１乃至請求項３のいずれか一項に記載の画像処理装置。
【請求項７】
前記決定手段は、前記頻度が０となる位相値の数が所定の閾値より小さく、前記境界の近傍領域でないブロックを前記物体の三次元形状を取得する範囲に含めず、かつ、前記境界の近傍領域に対応するブロックにおいて前記振幅画像データが表す振幅が所定の閾値より小さい領域を前記物体の三次元形状を取得する範囲に含めないことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記撮像画像データは、正弦波状に輝度が変化するパターンを表すパターン画像と、前記パターン画像から正弦波の位相をずらしたパターンを表すパターン画像とが投影された前記物体を撮像することによって得られた複数の画像データであることを特徴とする請求項１乃至請求項７のいずれか一項に記載の画像処理装置。
【請求項９】
前記決定手段によって決定された前記物体の三次元形状を取得する範囲に基づいて、前記物体の三次元形状を算出する第２算出手段をさらに有することを特徴とする請求項１乃至請求項８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記撮像画像データは、互いに異なる複数のパターンが投影された前記物体を２つの撮像装置が撮像することによって得られた複数の画像データであって、
２つの撮像装置のうち第１撮像装置が撮像することによって得られた前記撮像画像データに基づいて生成された前記位相画像データに対して位相接続を行うことによって、第１接続位相画像データを生成し、２つの撮像装置のうち前記第１撮像装置とは異なる第２撮像装置が撮像することによって得られた前記撮像画像データに基づいて生成された前記位相画像データに対して位相接続を行うことによって、第２接続位相画像データを生成する接続手段と、
前記第１接続位相画像データと第２接続位相画像データとで位相が同一となる位置を探索する探索手段と、をさらに有し、
前記第２算出手段は、前記探索手段によって探索された位置と、前記第１撮像装置の位置と、前記第２撮像装置の位置とに基づいて、三角測量の原理を用いることによって、前記物体の三次元形状を算出することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記第２算出手段によって算出された前記物体の三次元形状を表す情報を、表示装置とプリンタと記憶媒体との少なくとも１つに出力する出力手段をさらに有することを特徴とする請求項９又は請求項１０に記載の画像処理装置。
【請求項１２】
前記物体の色情報を取得する第３取得手段と、
前記出力手段は、前記算出手段によって算出された前記物体の三次元形状を表す情報に前記色情報を付加し、前記色情報が付加された前記物体の三次元形状を表す情報を出力することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記第２算出手段は、前記三次元形状を、座標を表す点群情報として算出することを特徴とする請求項９又は請求項１０に記載の画像処理装置。
【請求項１４】
前記物体の色情報を取得する第３取得手段と、
前記点群情報が表す座標において対応する座標に前記色情報を付加し、前記色情報が付加された前記点群情報を、表示装置とプリンタと記憶媒体との少なくとも１つに出力することを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記撮像画像データは、前記物体を複数の領域に分割して撮像した複数の画像データであって、
前記撮像画像データにおいて前記物体に対応する領域で撮像を行ったか否かを特定する範囲データを取得する第４取得手段と、
前記決定手段は、前記範囲データが前記物体に対応する領域で撮像を行ったことを表す場合、前記位相画像データと前記振幅画像データとに基づいて前記物体において三次元形状を取得する範囲を決定し、前記範囲データが前記物体に対応する領域で撮像を行ったことを表す場合、前記範囲データが表す範囲を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項１乃至請求項１４のいずれか一項に記載の画像処理装置。
【請求項１６】
前記範囲データは、ユーザの指示に基づいて、前記物体に対応する領域で撮像を行ったか否かを特定することを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記パターンが投影された前記物体を撮像する撮像装置は、移動可能なステージが有する支持部に支持されている撮像装置であって、
前記範囲データは、前記ステージの制御情報に基づいて、前記物体に対応する領域で撮像を行ったか否かを特定することを特徴とする請求項１５に記載の画像処理装置。
【請求項１８】
パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データに基づいて算出された、前記物体に投影された前記パターンの位相と振幅とに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。
【請求項１９】
パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データが表す撮像画像に前記パターンの周期的な特徴が表れているか否かを、前記撮像画像データの領域ごとに判定する第１判定手段と、
前記撮像画像データに基づいて算出された、前記物体に投影された前記パターンの振幅が所定の閾値以上であるか否かを、前記撮像画像データの領域ごとに判定する第２判定手段と、
前記第１判定手段の判定結果と前記第２判定手段の判定結果とに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。
【請求項２０】
コンピュータを請求項１乃至請求項１９のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項２１】
パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理方法であって、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第１取得ステップと、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第２取得ステップと、
前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定ステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体の三次元形状の測定に関する画像処理技術に関する。
【背景技術】
【０００２】
従来、対象物体の三次元形状を測定する方法としてステレオ位相シフト法が知られている。ステレオ位相シフト法では、明暗の縞状パターンを位相をずらしながら対象物体に複数回投影し、縞パターンが投影された対象物体を２つの方向から撮像する。２つの方向から対象物体を撮像することによって得られた画像から、それぞれの方向における画像の各画素の位相値を算出する。対象物体において２つの方向の位相値が同一となる位置と対象物体を撮像した２つの位置との３点から、三角測量の原理により対象物体の三次元形状を測定することができる。ステレオ位相シフト法は、能動的にパターンを投影することによって三次元形状の測定を行う方法の一例であり、他に位相シフト法や光切断法などがある。
【０００３】
能動的にパターンを投影することによって三次元形状の測定を行う方法では、異常点が撮像画像に含まれている場合、誤った三次元形状が算出される場合がある。この課題に対し、特許文献１は、多重反射光による像（異常点）が含まれる領域を判定し、当該領域を除外した正常な領域を三次元形状を取得するための抽出領域として自動で設定する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２３４８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術は多重反射光による像が含まれる領域を自動で判定する技術であり、パターン光を反射しにくい領域が撮像画像に含まれている場合は、誤った三次元形状を算出してしまうという課題がある。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定するための画像処理を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る画像処理装置は、パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第１取得手段と、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第２取得手段と、前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定することができる。
【図面の簡単な説明】
【０００９】
【図１】三次元形状測定システムの装置構成を示すブロック図
【図２】画像処理装置１０６の機能構成を示すブロック図
【図３】測定アプリケーション２１１の処理の流れを表すフローチャート
【図４】投影装置１０３が投影するパターン画像を説明する図
【図５】形状算出部２０８の機能構成を示すブロック図
【図６】位相接続を説明するための模式図
【図７】対応点探索を説明するための模式図
【図８】三次元形状を算出する処理の流れを表すフローチャート
【図９】取得範囲画像データを生成する処理の流れを表すフローチャート
【図１０】取得範囲画像データを生成する処理の流れを表すフローチャート
【図１１】取得範囲画像データを生成する処理の流れを表すフローチャート
【図１２】取得範囲画像データの一例を示す図
【図１３】位相画像の分割領域におけるヒストグラムを表す図
【図１４】振幅画像のラインプロファイルを表す図
【図１５】対応点を探索する処理の流れを表すフローチャート
【図１６】三次元形状測定システムの装置構成を示すブロック図
【図１７】測定範囲とステージ移動とを説明するための模式図
【図１８】取得範囲画像データを生成する処理の流れを表すフローチャート
【図１９】測定範囲データの一例を示す図
【図２０】ＵＩ画面の一例を示す図
【図２１】形状算出部２０８の機能構成を示すブロック図
【発明を実施するための形態】
【００１０】
［実施例１］
本実施例では、油彩画のような数ｍｍ〜数十μｍの微細な凹凸を表面にもつ略平面形状の物体を被測定物体とし、表面の凹凸形状情報と色情報とを取得する三次元形状測定システムを説明する。このような略平面形状の物体を測定する際、略平面形状のすみずみまで撮像しようして、被測定物体に対応する領域以外にパターン光が反射しにくい領域を含めて撮像を行う場合がある。この場合、本実施例で説明するステレオ位相シフト法による三次元形状測定では、誤った位相値を用いて三次元形状を算出してしまう。そこで、本実施例では、パターン光が反射しにくい領域以外の領域を三次元形状を取得するために用いる範囲（領域）として設定する。これにより、パターン光が反射しにくい領域を用いて誤った位相値を算出してしまうことなく、対象物体の高精度な三次元形状を得ることができる。
【００１１】
＜三次元形状測定システムの装置構成について＞
図１は三次元形状測定システムの装置構成を示すブロック図である。図１（ａ）は三次元形状測定システムを正面からみた正面図、図１（ｂ）は三次元形状測定システムを上方からみた平面図である。１０１は測定の対象となる被測定物体である。１０２は被測定物体１０１を固定するための試料台である。１０３は三次元形状測定に必要な二次元のパターン画像を被測定物体１０１に投影するための投影装置である。投影装置１０３としては、例えば６４０×４８０画素であり、ＬＥＤ光源を用いた単板モノクロのＤＬＰ方式プロジェクターを用いるが、これに限るものではない。被測定物体１０１上に二次元のパターン画像を投影できるものであればどのようなものであってもよい。１０４及び１０５は、パターン画像が投影された被測定物体１０１を撮像する撮像装置である。各撮像装置には、８６８８×５７９２画素のＣＭＯＳ方式のエリアセンサを有するＤＳＬＲ（Ｄｉｇｉｔａｌ  Ｓｉｎｇｌｅ  Ｌｅｎｓ  Ｒｅｆｌｅｘ  ｃａｍｅｒａ）に焦点距離が１００ｍｍのマクロレンズを組み合わせたものを用いる。また、第１撮像装置１０４及び第２撮像装置１０５は、被測定物体１０１上の輝度に対し線形な信号値を得る光電変換特性を有しているものとする。また、記録される画像データは、各画素でＲＧＢ３チャンネルの色情報を有し、各チャンネルが１６ビットで量子化されるものとする。尚、第１撮像装置１０４及び第２撮像装置１０５は、光電変換特性や、記録される画像データのチャンネル数や量子化ビット数など上記一例に限定するものではない。尚、レンズには、測定対象物１０１の表面にピントが合うようティルトレンズ等を用いてもよい。１０６は、投影装置１０３、第１撮像装置１０４、第２撮像装置１０５を制御して得られた画像データから、被測定物体１０１の三次元形状を算出する処理を行う画像処理装置である。本実施例における画像処理装置１０６は、ＣＰＵ、ＲＡＭ（ランダムアクセスメモリ）等の主記憶媒体、ＨＤ（ハードディスク）やフラッシュメモリ等の補助記憶媒体を備えたＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）として説明する。ただし、画像処理装置１０６は、ＰＣに限るものではなく、マイクロコンピュータ等であってもよい。
【００１２】
投影装置１０３、第１撮像装置１０４、第２撮像装置１０５は、不図示のＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のインターフェースを介して画像処理装置１０６とそれぞれ接続されている。図１に示すように、本実施例では、投影装置１０３は被測定物体１０１に正対するよう上方に配置され、投影装置１０３の左右から被測定物体１０１を撮像するよう第１撮像装置１０４及び第２撮像装置１０５がそれぞれ配置されている。図１（ｂ）において、１０７は測定範囲であり、投影装置１０３は測定範囲１０７を含む範囲に二次元のパターン画像を投影する。また、第１撮像装置１０４及び第２撮像装置１０５は撮像する画角の中に測定範囲１０７が含まれるよう設置されている。
【００１３】
＜画像処理装置１０６の機能構成について＞
図２は画像処理装置１０６の機能構成を示すブロック図である。２０１はユーザからの操作を受け付ける入力装置であり、例えばキーボード、マウス等のデバイスである。また、２０２はユーザが入力した内容や測定条件、測定結果をユーザに提示する表示装置であり、液晶モニタ等のデバイスである。入力装置２０１、表示装置２０２は、何れも図１に不図示である。
【００１４】
撮像ドライバ２０３は、各撮像装置を制御するための命令群であり、各撮像装置の撮像条件を変更する命令や撮像の実行を指示する命令、撮像によって得られた画像データを各撮像装置から画像処理装置１０６へ送信するための命令を含んでいる。また、投影ドライバ２０４は、投影装置１０３を制御するための命令群であり、パターン画像データを画像処理装置１０６から投影装置１０３へ送信するための命令や、投影を開始、終了する命令を含んでいる。同様に、入力ドライバ２０５は、入力装置２０１の制御をおこなう命令群、表示ドライバ２０６は表示装置２０２を制御する命令群である。
【００１５】
取得制御部２０７は、投影ドライバ２０４、撮像ドライバ２０３に命令を送り、被測定物体１０１の三次元形状を測定するために必要な撮像画像データを取得する一連の処理を行う命令群である。形状算出部２０８は、取得制御部２０７が取得した撮像画像データから被測定物体１０１の三次元形状を算出する命令群である。色算出部２０９は、形状算出２０８が算出した三次元形状に対応する色情報を算出する命令群である。また、ＵＩ管理部２１０は、ユーザが入力装置２０１に入力した情報の管理や、測定結果を表示装置２０２に表示する等の処理を行うユーザインターフェース（ＵＩ）機能を有する命令群である。測定アプリケーション２１１は、２０７〜２１０の命令群を連動させ、１つの測定アプリケーションとして機能させるための命令群である。
【００１６】
＜測定アプリケーション２１１の処理の流れについて＞
図３は、測定アプリケーション２１１の処理の流れを説明するフローチャートである。測定アプリケーション２１１は、まず、ステップＳ３０１にて、ＵＩ管理部２１０の命令群を用いて第１撮像装置１０４及び第２撮像装置１０５の撮像条件等の条件設定を行うようユーザに促す。図２０に条件設定をするためのＵＩ画面の一例を示す。図２０のＵＩ画面では、ユーザが縞パターンの撮像と位置合わせパターンの撮像と色取得パターンの撮像とについて撮像条件を設定する。ユーザが条件設定を終えると、ステップＳ３０２に進む。ステップＳ３０２では、取得制御部２０７の命令群を用いて被測定物体１０１上に、後述する８枚のパターン画像（縞パターン３枚、位置合わせパターン４枚、色取得パターン１枚）を投影し、それぞれ撮像する一連の処理を実行する。ステップＳ３０２の処理が終了すると、ステップＳ３０３において形状算出部２０８の命令群を実行し、撮像によって得られた画像データから被測定物体１０１の三次元形状情報を算出する。本実施例において得られる三次元形状情報は、第１撮像装置１０４のエリアセンサの中心を原点とするＸ、Ｙ、Ｚ座標値をｍｍ単位で各３２ビットの浮動小数点で記録した点群情報であり、エリアセンサの画素数と等しい数の座標値を有する。ここで、Ｘ軸、Ｙ軸、Ｚ軸は直交座標系であり、Ｘ軸、Ｙ軸は第１撮像装置１０４のエリアセンサ面を含む平面を張り、Ｚ軸はＸ軸、Ｙ軸に直交する方向に定義される。ステップＳ３０４は、ステップＳ３０３において算出した点群情報の各点に対応する色情報（ＲＧＢ値）を算出する処理である。ステップ３０４の処理は、後述する色取得パターン画像を被測定物体１０１に投影し、第１撮像装置１０４で撮像したときに取得される画像データの各画素の色情報を点群情報に対応づけて記録する処理である。本実施例では、点群情報に含まれる各点の座標値は第１撮像装置１０４を用いて撮像することによって得られた画像データの各画素に１対１で対応するよう算出される。そのため、ステップＳ３０４の処理は、画素ごとにＸＹＺ座標を点群情報から検索し、座標値にＲＧＢ各１６ビット（合計４８ビット）の色情報を付与したＸＹＺＲＧＢの計１４４ビットの情報を記録する。最後に、ステップＳ３０５において、ステップＳ３０４で記録した色情報が付加された点群情報を表示装置２０２に表示し、処理を終了する。この処理は、色情報が付加された点群情報の各数値のリストを表示装置２０２に表示する、ＸＹＺ座標を三次元空間上に色情報に対応する色でプロットし、任意の方向からみた投影図を表示するなどの処理を行う。尚、ステップＳ３０４の処理は上記の処理には限定されず、表示装置２０２に表示をおこなわず、不図示のＨＤやフラッシュメモリ等に色情報が付加された点群情報を直接記録するよう構成しても良い。
【００１７】
＜投影装置１０３が投影するパターン画像について＞
図４は、投影装置１０３が投影するパターン画像を説明する図である。図４に示すパターン画像は、投影装置１０３の画素と１対１に対応する６４０×４８０画素、０（黒）〜２５５（白）の画素値をとる８ビットのグレースケール画像であるものとして説明する。尚、画素数、ビット深度、色数等はこれに限るものではない。尚、本実施例では、図４（ａ）〜（ｈ）のパターン画像にそれぞれ０〜７の番号（撮像番号）を付けるものとする。例えば、図４（ａ）のパターン画像は撮像番号０であり、図４（ｂ）のパターン画像は撮像番号１である。
【００１８】
図４（ａ）〜（ｃ）は、明暗の縞パターンを表すパターン画像である。本実施例ではこれらの縞パターン画像を被測定物体１０１に投影し、縞パターン画像が投影された被測定物体１０１を撮像して得られた画像データから位相を算出し、三次元形状を算出する。この縞パターンは正弦波状に輝度が変化するパターンであり、縞パターン画像の画素値は以下の式（１）〜式（３）で決定できる。
【００１９】
【数１】
2018169274.tif 000003
【００２０】
【数２】
2018169274.tif 000004
【００２１】
【数３】
2018169274.tif 000005
ここで、Ｖａ（ｊ，ｉ）は、図４（ａ）の位置（ｊ，ｉ）の画素値を示している。同様にＶｂ（ｊ，ｉ）は、図４（ｂ）の画素値、Ｖｃ（ｊ，ｉ）は、図４（ｃ）の画素値を示している。尚、ｊは画像の横方向、ｉは画像の縦方向の位置を示す添字である。また、Ｎｃｙｃｌｅは正弦波１周期あたりの画素数を示すパラメータである。図４（ａ）〜（ｃ）に示した縞パターン画像は、１／３周期ずつ位相をシフトさせた３枚の組み合わせであるが、これに限るものではない。例えば、１／６周期ずつ位相をシフトさせた６枚の組み合わせなどであってもよい。また、縞パターンの波形は正弦波状に限らず、三角波等、位相が推定可能なものであればどのような波形であってもよい。尚、本実施例では、図４（ａ）〜（ｃ）の縞パターン画像にそれぞれ、上述した撮像番号とは別に、０〜２の番号（縞パターン画像番号）を付けるものとする。例えば、図４（ａ）の縞パターン画像は縞パターン画像番号０であり、図４（ｂ）の縞パターン画像は縞パターン画像番号１である。
【００２２】
本実施例では、図４（ａ）〜（ｃ）の縞パターン画像を被測定物体１０１に投影し、縞パターンが投影された被測定物体１０１を第１撮像装置１０４と第２撮像装置１０５とによって撮像して得られた画像データから、撮像装置ごとに位相を算出する。そして、第１撮像装置の画像データと第２撮像装置の画像データとで位相が一致する画素位置から三角測量により三次元形状を算出する。このとき、画像データには複数周期の正弦波が含まれるため、同一の画像データ内で同じ位相となる画素が周期的に複数存在してしまう。そこで、同一の画像データ内で同じ位相が存在しないよう周期ごとに異なるオフセットを足しこむ位相接続処理がなされる。このオフセットを決定する際に、図４（ｄ）〜（ｇ）に示す、縞パターンに平行なステップエッジを有する位置合わせパターンが使用される。具体的には、まず、位置合わせパターンが投影された被測定物体１０１を第１撮像装置１０４及び第２撮像装置１０５によって撮像して得られた画像データから、ステップエッジの部分が投影された位置をそれぞれ抽出する。そして、抽出した位置のオフセットが第１撮像装置１０４と第２撮像装置１０５とで同一の値となるようオフセットを決定する。尚、本実施例では、図４（ｄ）〜（ｇ）の位置合わせパターン画像にそれぞれ、上述した撮像番号とは別に、０〜３の番号（位置合わせパターン画像番号）を付けるものとする。例えば、図４（ｄ）の位置合わせパターン画像は位置合わせパターン画像番号０であり、図４（ｅ）の位置合わせパターン画像は位置合わせパターン画像番号１である。
【００２３】
図４（ｈ）は、被測定物体１０１の色情報を取得するために投影される色取得パターンである。本実施例では全面均一な白色（画素値２５５）のパターンを用いるが、これに限るものではない。例えば、被測定物体１０１に色取得パターンを投影したとき、測定範囲１０７の範囲内で光量が均一となるよう画素の位置に応じて画素値を変化させてもよい。
【００２４】
＜形状算出部２０８の機能構成について＞
図５は、ステップＳ３０３を実行する形状算出部２０８の機能構成を示すブロック図である。撮像画像取得部５０１は、ステップＳ３０２において第１撮像装置１０４及び第２撮像装置１０５の撮像によって得られ、ＨＤ等の記憶媒体に記録された画像データを必要に応じて取得する。
【００２５】
位相画像生成部５０２は、撮像画像取得部５０１において取得した画像データの内、第１撮像装置１０４によって縞パターンが投影された被測定物体１０１を撮像して得られた画像データ３枚から式（４）に従って各画素の位相値を算出する。そして、各画素に算出された位相値を記録した第１位相画像データを生成する。
【００２６】
【数４】
2018169274.tif 000006
ただし、Φ（ｊ，ｉ）は０〜２πの値をとるものとする。Ｉａは図４（ａ）の縞パターンを被測定物体１０１に投影した場合の撮像によって得られた画像データのＧチャンネルの値とする。同様に、Ｉｂは図４（ｂ）の縞パターンを被測定物体１０１に投影した場合の撮像によって得られた画像データのＧチャンネルの値、Ｉｃは図４（ｃ）の縞パターンを被測定物体１０１に投影した場合の撮像によって得られた画像データのＧチャンネルの値とする。尚、Ｉａ、Ｉｂ、Ｉｃはいずれも画像データのＧ値としたが、Ｒ、Ｇ、Ｂの各チャンネルの値を所定の重みで加算した輝度情報でもよい。また、第１位相画像データは、各画素１チャンネル、０〜２πまでの値をとる３２ビットの浮動小数点の画像データとして不図示のＲＡＭ等の記憶媒体に記録されるものとするが、これに限るものではない。同様に、位相画像生成部５０２では、第２撮像装置１０５によって撮像された画像データ３枚についても式（４）に従って各画素の位相を算出し、算出した位相値を各画素に記録した第２位相画像データを生成する。
【００２７】
位相接続部５０３は、位置合わせパターンを投影した被測定物体１０１を撮像して得られた画像データと位相画像データから、周期ごとに位相の繰り返しが発生しない接続位相画像データを生成する。
【００２８】
図４（ｄ）〜（ｇ）の位置合わせパターンを用いて投影・撮像し、暗部領域（黒）を１、明部領域（白）を０として領域毎に符号化すると、４ビットの２進法の値となり、１６通りの領域が判別可能となる。従って、位置合わせパターンを用いて投影・撮像した画像の１領域のサイズを、位相画像データの１周期と同一に設定することによって、位相画像データに含まれる周期の数が１６以下であれば、各画素位置が何番目の周期であるか判別できる。第１位相画像データの位相接続を第１撮像装置１０４の撮像によって得られた画像データを用いて行うことによって第１接続位相画像データを生成する。第２位相画像データの位相接続を第２撮像装置１０５の撮像によって得られた画像データを用いて行うことによって第２接続位相画像データを生成する。第１撮像装置１０４及び第２撮像装置１０５それぞれについて生成された接続位相画像データはＲＡＭ等の記憶媒体にそれぞれ記録される。各接続位相画像データは、各画素１チャンネル、３２ビットの浮動小数点の画像データとするが、これに限るものではない。尚、位置合わせパターンの種類は４種類に限定されず、被測定物体１０１のサイズ等に合わせて増減させることが可能である。図６に位相接続した結果の一例を示す。位相画像データの画素値は、０〜２πの範囲で周期的に変化するため、図６（ａ）に示すように同一の画素値（位相）となる画素が画像の横方向（ｘ方向）に繰り返し現れる。位相接続により、図６（ｂ）に示すように位相画像データにおける位相の周期性が取り除かれる。
【００２９】
振幅画像生成部５０４は、撮像画像取得部５０１において取得した画像データの内、第１撮像装置１０４によって縞パターンが投影された被測定物体１０１を撮像して得られた画像データ３枚から式（４）及び式（５）に従って各画素の振幅値を算出する。そして、各画素に算出された振幅値を記録した第１振幅画像データを生成する。
【００３０】
【数５】
2018169274.tif 000007
振幅Ａ（ｊ，ｉ）は、Ｉａ、Ｉｂ、Ｉｃをいずれも画像データのＧ値として算出する。尚、Ｉａ、Ｉｂ、Ｉｃは、Ｒ、Ｇ、Ｂの各チャンネルを所定の重みで加算した輝度情報としてもよい。第また、各振幅画像データは、各画素１チャンネルの値をとる３２ビットの浮動小数点の画像データとして不図示のＲＡＭ等の記憶媒体に記録されるものとするが、これに限るものではない。同様に、振幅画像生成部５０４では、第２撮像装置１０５によって撮像された画像データ３枚についても式（４）及び式（５）に従って各画素の振幅を算出し、算出した振幅値を各画素に記録した第２振幅画像データを生成する。
【００３１】
取得範囲決定部５０５は、位相画像生成部５０２で生成した位相画像データ、及び、振幅画像生成部５０４で生成した振幅画像データを用いて取得範囲画像データを生成することによって、三次元形状を取得する範囲（領域）を決定する。取得範囲画像データは、三次元形状を取得する範囲（領域）を表す画像データである。
【００３２】
取得範囲決定部５０５の処理の詳細については後述する。後述する対応点探索処理においてこの取得範囲画像データが参照され、対応点の探索範囲が決定される。尚、取得範囲画像データは、各画素１チャンネルの値をとる１ビットの２値画像データとしてＲＡＭ等の記憶媒体に記録されるものとするが、これに限るものではない。
【００３３】
対応点探索部５０６は、第１接続位相画像データの各画素において、位相値が同じとなる第２接続位相画像データの画素位置を算出する。対応点（位相値が同一となる画素位置）は、エピポーラ線の線上から探索する。エピポーラ線は、２台のカメラの位置と姿勢が既知である場合に、三次元空間上の１点をそれぞれ撮像したときの対応点に関する拘束条件である。図７にエピポーラ線の模式図を示す。カメラ視点位置Ｃ１から三次元空間上の点Ｘまでを結ぶ直線と、カメラ視点位置Ｃ１からカメラ視点位置Ｃ２までを結ぶ直線について、２つの直線を含む三次元空間上の平面（エピポーラ面）が一意に定まる。この平面と撮像面とが交差して生じる直線がエピポーラ線である。具体的には、まず、第１撮像装置１０４及び第２撮像装置１０５の姿勢と位置との関係からあらかじめ３×３の基礎行列Ｆを算出しておき、式（６）の関係からエピポーラ線を算出する。
【００３４】
【数６】
2018169274.tif 000008
ここで、（ｕ，ｖ）は第１接続位相画像データの画素の位置を示す二次元座標である。また、（ｕ´，ｖ´）は第２接続位相画像データの画素の位置を示す二次元座標である。式（６）より任意の（ｕ，ｖ）に対し、（ｕ´，ｖ´）との関係を示す直線の方程式が一意に決定する。対応点探索部５０６では、第１接続位相画像データの（ｕ，ｖ）の位置にある位相値と等しくなる位相値を、第２接続位相画像データにおいて上記直線の方程式に沿って探索し、その位置の二次元座標（ｕ´，ｖ´）をＲＡＭ等の記憶媒体に記録する。この処理を第１接続位相画像データの全画素について行う。本実施例においては、上記直線の方程式に沿って対応点を探索する際、取得範囲決定部５０５で生成した取得範囲画像データを参照する。取得範囲画像データの参照方法については後述する。
【００３５】
三角測量部５０７は、対応点探索部５０６で取得した第１接続位相画像データの位置（ｕ，ｖ）に対応する第２接続位相画像データの位置（ｕ´，ｖ´）から、被測定物体１０１の三次元座標（Ｘ，Ｙ，Ｚ）を算出する。具体的には、式（７）及び式（８）で示される３×４の投影行列Ｐ及びＰ´をあらかじめ第１撮像装置１０４及び第２撮像装置１０５の焦点距離や位置、姿勢から算出しておき、（Ｘ，Ｙ，Ｚ）について連立方程式を解く。
【００３６】
【数７】
2018169274.tif 000009
【００３７】
【数８】
2018169274.tif 000010
この連立方程式は、行列Ｐのｓ行ｔ列の要素をＰｓｔ、行列Ｐ´のｓ行ｔ列の要素をＰ´ｓｔとすると、以下の式（９）を解くことと等価である。
【００３８】
【数９】
2018169274.tif 000011
三角測量部５０７は、上記のように第１接続位相画像データの全画素に対し、逐次三次元座標（Ｘ，Ｙ，Ｚ）を算出し、ＸＹＺの３チャンネル、３２ビットの浮動小数点で記録した点群情報を生成し、ＨＤ等の記憶媒体に記録する。
【００３９】
＜三次元形状を算出する処理（Ｓ３０３）の流れについて＞
図８は、ステップＳ３０３の詳細な処理の流れを示すフローチャートである。まず、ステップＳ８０１において、撮像装置を指定するための変数ｖを初期化する。本実施例では、ｖ＝０は第１撮像装置１０４を示す識別番号であり、ｖ＝１が第２撮像装置１０５を示す識別番号となる。次に、ステップＳ８０２でｖが撮像装置の数Ｎｖ（本実施例の場合にはＮｖ＝２）より小さい場合はステップＳ８０３に進み、そうでない場合はステップＳ８２０に進む。ステップＳ８０３において、撮像画像取得部５０１に第１撮像装置１０４と第２撮像装置１０５とのどちらの撮像によって得られた画像データを取得するかの指示を与える。この指示により、ｖ＝０の場合は第１撮像装置１０４の撮像によって得られた画像データが後続する処理で読み込まれ、ｖ＝１の場合は第２撮像装置１０５の撮像によって得られた画像データが後続する処理で読み込まれる。ステップＳ８０４において、図４に示したパターン画像に付けられた撮像番号を参照するための変数ｃｎｔを０で初期化する。ステップＳ８０５において、縞パターン画像番号を参照するための変数ｎを初期化する。ステップＳ８０６で変数ｎが縞パターン画像の数Ｎｎ（本実施例の場合にはＮｎ＝３）より小さい場合はステップＳ８０７に進み、そうでない場合はステップＳ８１０に進む。ステップＳ８０７において、撮像番号ｃｎｔのパターン画像を投影した被測定物体１０１を変数ｖによって指定される撮像装置が撮像して得られた画像データを撮像画像取得部５０１が取得する。ステップＳ８０８において、変数ｃｎｔに１を加える。ステップＳ８０９において、変数ｎに１を加え、ステップＳ８０６に戻る。
【００４０】
ステップＳ８１０において、ステップＳ８０７で取得した画像データを用いて、位相画像データを位相画像生成部５０２において生成する。ステップＳ８１１において、ステップＳ８０７で取得した画像データを用いて、振幅画像データを振幅画像生成部５０４において生成する。ステップＳ８１２において、位置合わせパターン画像番号を参照するための変数ｍを０で初期化する。ステップＳ８１３において、変数ｍが位置合わせパターン画像の数Ｎｍ（本実施例の場合にはＮｍ＝４）より小さい場合はステップＳ８１４に進み、そうでない場合はステップＳ８１７に進む。ステップＳ８１４において、撮像番号ｃｎｔのパターン画像を投影した被測定物体１０１を変数ｖによって指定される撮像装置が撮像して得られた画像データを撮像画像取得部５０１が取得する。ステップＳ８１５において、変数ｃｎｔに１を加える。ステップＳ８１６において、変数ｍに１を加え、ステップＳ８１３に戻る。
【００４１】
ステップＳ８１７において、ステップＳ８１４において取得した画像データとステップＳ８１０において生成した位相画像データとから、位相接続部５０３において接続位相画像データを生成する。ステップＳ８１８において、取得範囲画像データを生成する。処理の詳細については後述する。ステップＳ８１９において、変数ｖに１を加え、ステップＳ８０２に戻る。全ての撮像装置についてステップＳ８０３からステップＳ８１９の処理で接続位相画像データが生成されると、処理がステップＳ８０２からステップＳ８２０に進む。ステップＳ８２０において、対応点探索部５０６が第１接続位相画像データと第２接続位相画像データとから対応点を算出する。最後に、ステップＳ８２１において、三角測量部５０７が対応点から点群情報を生成して処理を終了する。
【００４２】
＜取得範囲画像データを生成する処理（Ｓ８１８）について＞
まず、取得範囲画像データの生成の原理を説明する。本実施例においては、まず、位相画像データが表す位相画像の領域分割を行う。領域分割を行うのは、位相画像データの以下で説明する特徴を利用するためである。位相画像データにおいて、投影した縞パターンが周期的であるため、投影したパターン光を十分に反射した領域は周期的な特徴を持つ。一方、投影したパターン光を反射しにくい領域は、位相画像データにおいてパターン光の周期的な特徴が表れない。尚、領域分割に用いる所定のサイズは、位相画像データの周期より小さいサイズとする。尚、位相画像データの周期は、投影する縞パターンの周期と、プロジェクターから被測定物体１０１までの距離とによって決まる。尚、領域分割は、データ自体を分ける必要はなく、位相画像データが表す位相画像が複数の領域に分かれるように区切りを付けるだけで良い。
【００４３】
図１３は位相画像データの分割領域毎のヒストグラムである。図１３（ａ）は、投影したパターン光が反射しにくい領域のヒストグラムである。パターン光の周期的な特徴が表れないため、ヒストグラムはブロードな分布となる。一方で、投影したパターン光が十分に反射した領域のヒストグラムは、パターン光の周期的な特徴が表れるため、図１３（ｂ）〜（ｄ）のいずれかとなる。図１３（ｂ）〜（ｄ）のいずれの場合も、分割領域のサイズを位相画像データの周期より小さく設定しているため、頻度０となる画素値（位相値）が存在する。図１３（ｂ）は、頻度０となる画素値が頻度０とならない画素値より大きい場合である。図１３（ｃ）は、頻度０となる画素値が、頻度０とならない画素値より小さい場合と大きい場合の両方を含む場合である。図１３（ｄ）は、頻度０となる画素値が頻度０とならない画素値より小さい場合である。よって、頻度０の画素の数をカウントすることによって、分割領域毎に、投影したパターン光を反射しにくい（又は反射しない）領域か、投影したパターン光を十分に反射する領域かを判定することが出来る。
【００４４】
上述した位相画像データを利用した領域の反射特性の判定は、分割領域の粒度で行われる。分割領域よりもさらに細かく領域の反射特性を判定するため、振幅画像データを利用した領域の反射特性の判定を行う。式（５）より、投影したパターン光が反射しにくい領域においては振幅が小さくなるという特徴がある。図１４は振幅画像データのラインプロファイルである。公知の大津の方法などによる２値化処理を用いることによって、画素毎に、投影したパターン光を反射しにくい領域（画素）か、投影したパターン光を十分に反射する領域（画素）かを判別することが出来る。
【００４５】
取得範囲画像データを生成する処理（ステップＳ８１８）においては、まず、位相画像データを用いて分割領域の粒度で取得範囲を決定する。その後、取得する領域と取得しない領域との境界の近傍領域（境界領域）を判定する。最後に、当該境界領域について、振幅画像データを利用して取得する領域と取得しない領域とを判定する。このように、位相画像データと振幅画像データとの両方を利用した判定結果によって、三次元形状を取得する範囲（領域）を表す取得範囲画像データを生成することできる。尚、取得範囲画像データは、第１撮像装置１０４と第２撮像装置１０５とについてそれぞれ生成する。
【００４６】
＜取得範囲画像データを生成する処理（Ｓ８１８）の流れについて＞
図９、図１０、図１１は、取得範囲決定部５０５における取得範囲画像データを生成する処理（ステップＳ８１８）の流れを説明するためのフローチャートである。以下、図９〜図１１を用いてステップＳ８１８の処理を説明する。
【００４７】
図９は、ステップＳ９０１〜ステップＳ９１５における、位相画像データを利用することによって分割領域の粒度で取得範囲画像データを生成する処理の流れを表す。まず、ステップＳ９０１において、分割領域を設定する。本実施例においては、第１撮像装置１０４及び第２撮像装置１０５のエリアセンサの画素数から、取得範囲決定部５０５が用いる位相画像データと振幅画像データの横の画素数は８６８８であり、縦の画素数は５７９２である。これらの画像を１８１×１８１のブロックに分割する。この分割により、横方向は４８個のブロック（分割領域）に分割され、縦方向は３２個のブロック（分割領域）に分割される。以下、分割領域が設定された画像を分割画像と呼ぶ。ステップＳ９０２において、分割画像の縦方向の位置を示す変数ｉを０で初期化する。ステップＳ９０３において、変数ｉが縦方向の領域分割数に達しない場合はステップＳ９０４に進み、達している場合はステップＳ９１６に進む。Ｓ９０４において、分割画像の横方向の位置を示す変数ｊを０で初期化する。ステップＳ９０５において、変数ｊが横方向の領域分割数に達しない場合はステップＳ９０６に進み、達している場合はステップＳ９１５に進む。ステップＳ９０６において、分割領域における位相画像データの画素値を読み込む。ステップＳ９０７において、ステップＳ９０６で読み込んだ画素値についてヒストグラムを算出し、頻度０の画素値の数Ｎ０をカウントする。ステップＳ９０８において、ステップＳ９０７で算出したＮ０が予め設定しておいた閾値Ｔｈ以上である場合はステップＳ９０９に進み、それ以外の場合はステップＳ９１０に進む。ステップＳ９０９において、分割領域毎に三次元形状を取得するか否かを示す行列α［ｊ，ｉ］に、取得することを示す値である１を格納し、ステップＳ９１４に進む。ステップＳ９１０において、α［ｊ，ｉ］に、取得しないことを示す値である０を格納し、ステップＳ９１４に進む。ステップＳ９１４において、変数ｊに１を加え、ステップＳ９０５に戻る。ステップ９１５において、変数ｉに１を加え、ステップＳ９０３に戻る。以上のステップＳ９０１〜ステップＳ９１５の処理により、各画素にα［ｊ，ｉ］が記録された第１取得範囲画像データを生成する。
【００４８】
図１０は、ステップＳ９０６〜ステップＳ９２４における、境界領域を算出する処理の流れを表す。ステップＳ９１６において、分割画像の縦方向の位置を示す変数ｉを０で初期化する。ステップＳ９１７において、分割画像の横方向の位置を示す変数ｊを０で初期化する。ステップＳ９１８において、変数ｉが縦方向の領域分割数に達しない場合はステップＳ９１９に進み、達している場合はステップＳ９２５に進む。ステップＳ９１９において、変数ｊが横方向の領域分割数に達しない場合はステップＳ９２０に進み、達している場合はステップＳ９２４に進む。ステップＳ９２０において、注目領域の画素値α［ｊ，ｉ］を読み込む。ステップＳ９２１において、注目領域の近傍領域のαの値を読み込む。注目領域の近傍領域のαの値は、α［ｊ−１，ｉ］、α［ｊ＋１，ｉ］、α［ｊ，ｉ−１］、α［ｊ，ｉ＋１］である。この際、注目領域が画像の端である場合は、存在しない近傍領域のαの値は読み込まない。ステップＳ９２２において、領域毎に境界領域であるか否かを示す行列β［ｊ，ｉ］を算出する。具体的には、ステップＳ９２０で読み込んだ注目画素のαの値と、ステップＳ９２１で読み込んだ近傍画素のαの値をそれぞれ比較し、近傍画素のαの値の中に注目画素のαの値と異なる値がある場合は、境界領域であることを示す値０をβ［ｊ，ｉ］に格納する。近傍画素のαの値の中に注目画素のαの値と異なる値がない場合は、境界領域でないことを示す値１をβ［ｊ，ｉ］に格納する。
【００４９】
図１１は、ステップＳ９２５〜ステップＳ９３３における、振幅画像データを利用することによって、取得範囲画像データを生成する処理の流れを表す。ステップＳ９２５において、分割画像の縦方向の位置を示す変数ｉを０で初期化する。ステップＳ９２６において、分割画像の横方向の位置を示す変数ｊを０で初期化する。ステップＳ９２７において、変数ｉが縦方向の領域分割数に達しない場合はステップＳ９２８に進み、達している場合はステップＳ９３４に進む。ステップＳ９２８において、変数ｊが横方向の領域分割数に達しない場合はステップＳ９２９に進み、達している場合はステップＳ９３２に進む。ステップＳ９２９において、注目領域においてβ［ｊ，ｉ］の値を参照し、値が０であればステップＳ９３０に進み、それ以外であればステップＳ９３２に進む。ステップＳ９３０において、分割領域における振幅画像データの画素値を読み込む。ステップＳ９３１において、公知の大津の方法などによる２値化方法により２値化を行い、ステップＳ９３２に進む。２値化において、０は振幅が閾値より小さい場合であるため取得しない領域を表し、１は振幅が閾値以上の場合であるため取得する領域を表す。ステップＳ９３２において、変数ｊに１を加え、ステップＳ９２８に戻る。ステップ９３３において、変数ｉに１を加え、ステップＳ９２７に戻る。ステップＳ９３４において、第１取得範囲画像データと振幅画像データの２値化結果とに基づいて、後述する対応点探索に用いる第２取得範囲画像データを生成する。第２取得画像データは、境界領域と判定されていない領域においては、第１取得範囲画像データの画素値を画素値として記録する。境界領域と判定された領域においては、振幅画像データの２値化結果を画素値として記録する。以上の処理により、三次元形状を取得しない領域には０、三次元形状を取得する領域には１を記録した２値データである第２取得範囲画像データを生成する。
【００５０】
図１２は取得範囲画像データを生成する処理において生成された取得範囲画像である。図１２（ａ）は、第１撮像装置１０４の取得範囲画像であり、図１２（ｂ）は第２撮像装置１０５の取得範囲画像である。黒い領域は画素値が０である領域であり、三次元形状を取得しない領域である。白い領域は画素値が１である領域であり、三次元形状を取得する領域である。第１撮像装置１０４及び第２撮像装置１０５のエリアセンサの画素数から、生成される取得範囲画像の横方向の画素数は８６８８であり、縦方向の画素数は５７９２である。
【００５１】
＜対応点を探索する処理（Ｓ８２０）の流れについて＞
図１５は、対応点探索部５０６がステップＳ８２０で実行する対応点探索の処理の流れを説明するフローチャートである。以下、図１５を用いてステップＳ８２０の処理を説明する。ステップＳ１３０１において、縦方向の画素の位置を表す変数ｖを０で初期化する。ステップＳ１３０２において、横方向の画素の位置を表す変数ｕを０で初期化する。ステップＳ１３０３において、変数ｖが画像における所定の縦方向の位置Ｈに達しない場合はステップＳ１３０４に進み、達している場合は処理を終了する。ステップＳ１３０４において、変数ｕが画像における所定の横方向の位置Ｗに達しない場合はステップＳ１３０５に進み、達している場合はステップＳ１３１０に進む。本実施例において、第１撮像装置１０４及び第２撮像装置１０５のエリアセンサの画素数から、所定の縦方向の位置Ｈは５７９２、所定の横方向の位置Ｗは８６８８となる。ステップＳ１３０５において、第１撮像装置１０４の第２取得範囲画像データの位置（ｕ，ｖ）の画素値Ｐを参照し、取得範囲であることを示す値１であればステップＳ１３０６に進み、取得範囲でないことを示す０であればステップＳ１３０９に進む。ステップＳ１３０６において、式（６）を用いてエピポーラ線を算出し、探索の候補となる画素群（ｕ’，ｖ’）を算出する。ステップＳ１３０７において、ステップＳ１３０６で算出した探索の候補となる画素群（ｕ’，ｖ’）に対応する第２撮像装置１０５の第２取得範囲画像データの画素位置（ｕ’，ｖ’）をそれぞれ参照する。取得範囲であることを示す値１であればその座標を残し、取得範囲でないことを示す値０であればその座標を探索の候補から取り除くことで、探索画素群（ｕ’，ｖ’）を算出する。ステップＳ１３０８において、画素（ｕ，ｖ）における第１撮像装置１０４の第１接続位相画像データの画素値と、ステップＳ１３０７で算出した探索画素群（ｕ’，ｖ’）における第２撮像装置１０５の第２接続位相画像データの画素値とを比較する。そして、画素値が一致する画素（ｕ’，ｖ’）を特定しステップＳ１３０９に進む。ステップＳ１３０９において、変数ｕに１を加え、ステップＳ１３０４に戻る。ステップＳ１３１０において、変数ｖに１を加え、ステップＳ１３０３に戻る。
【００５２】
以上説明したように、本実施例における画像処理装置１０６は、位相画像データと振幅画像データとを利用することによって、撮像画像に投影したパターンの周期的な特徴が表れる領域を三次元形状を取得する領域として決定する。これにより、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定することができる。
【００５３】
［実施例２］
実施例１においては、投影した光を反射しにくい領域を自動で判定し、投影した光を反射しにくい領域以外の領域において三次元形状を算出した。しかしながら、略平面体の中央付近の領域を測定する場合など、投影した光を反射しにくい領域を含まないことが予めわかっている場合、取得範囲画像データを生成する必要がない。本実施例においては、必要に応じて取得範囲画像データを生成する処理について説明する。以下、実施例１との差分について主に説明する。
【００５４】
＜三次元形状測定システムの装置構成について＞
図１６は、本実施例における三次元形状測定システムの装置構成を示すブロック図である。実施例１の装置構成に加えて、本実施例の装置構成はＸＹステージ１４０６、光学支持部１４０５を有する。ＸＹステージ１４０６は、被測定物体１０１に対して平行な二次元方向に移動可能なステージである。光学支持部１４０５は、投影装置１０３と第１撮像装置１０３と第２撮像装置１０４とを支持する支持部である。投影装置１０３と第１撮像装置１０３と第２撮像装置１０４とを用いた投影・撮像と、ＸＹステージ１４０６を用いた光学支持部１４０５の移動とを繰り返すことにより、カメラの画角より大きい略平面体の三次元形状情報と色情報とを取得する。
【００５５】
＜測定領域とステージ移動について＞
図１７は、測定領域とステージ移動とを説明するための模式図である。まず、左下の測定範囲１０７において、ＸＹステージ１４０６が静止した状態で投影・撮像を行う。投影・撮像が完了したら、一つ右隣りの測定範囲に移動し、同様の投影・撮像を行う。そして、投影・撮像とステージ移動とを繰り返しながら、右端の測定範囲における投影・撮像が終わったら、一つ上の測定範囲に移動し、投影・撮像を行う。次に一つ左隣りの測定範囲に移動し、また投影・撮像を行う。このようにステージ移動と撮像とを繰り返す。本実施例においては、横方向４箇所×縦方向５箇所の合計２０箇所の測定範囲で投影・撮像を行う。ステージ移動の方法は上記一例に限らない。例えば、中央付近の測定範囲から投影・撮像を開始し、渦を巻くようにステージ移動してもよい。
【００５６】
＜取得範囲画像データを生成する処理（Ｓ８１８）の流れについて＞
図１８は、本実施例における取得範囲画像データを生成する処理の流れを表すフローチャートである。ステップＳ１６０１において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったのか、それとも、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったのかを判定する。具体的には、図１９のような測定範囲データを予め作成しておき、読み込むことでこの処理を行う。測定範囲データは、ＸＹステージ１４０６の制御情報をもとに領域の端部かどうかを自動的に算出してもよいし、ＵＩ画面などを利用してステップＳ３０１の際にユーザに作成させてもよい。ステップＳ１６０１において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったと判定された場合は、実施例１で既に説明した、ステップＳ９０１〜ステップＳ９３４の処理を行う。ステップＳ１６０１において、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったと判定された場合はステップＳ１６０２に進む。ステップＳ１６０２において、撮像装置を指定するための変数ｖを０で初期化する。ステップＳ１６０３において、ｖが撮像装置の数Ｎｖより小さい場合はステップＳ１６０４に進み、そうでない場合は処理を。
ステップＳ１６０４において、図１２（ｃ）で示されている画像を生成する。この画像は全画素において、取得する範囲であることを示す値１が記録されている。撮像装置の数と同じ枚数の画像が生成される。以下、図１２（ｃ）で示されている画像を第３取得範囲画像データと呼ぶ。本実施例においては、第１撮像装置１０４及び第２撮像装置１０５のエリアセンサの画素数から、第３取得範囲画像データの横方向の画素数は８６８８であり、縦方向の画素数は５７９２である。この第３取得範囲画像データを、対応点の探索処理ステップＳ８２０において第２取得範囲画像データの代わりに用いる。
【００５７】
以上説明したように、本実施例における画像処理装置１０６は、投影した光が反射しにくい領域を含む測定範囲では実施例１で説明した処理で取得範囲画像データを生成する。投影した光が反射しにくい領域が含まれてないとわかっている測定領域では図１２（ｃ）に示す取得範囲画像データを生成する。その結果、無駄な処理を行わずに、三次元形状を算出することができるため、処理の高速化や、保持データの削減になる。
【００５８】
［変形例］
＜変形例１＞
上記実施例においては、画像処理装置１０６が第１撮像装置１０４と第２撮像装置１０５との撮像によって得られた画像データを取得し、取得した画像データから位相画像データと振幅画像データとを生成していたが、上記一例には限定されない。予め投影装置１０３と第１撮像装置１０４と第２撮像装置１０５とを用いて、上述した実施例と同様の処理から位相画像データと振幅画像データとを生成し、ＲＡＭやＨＤ等の記憶媒体に記憶させておく。画像処理装置１０６は、記憶させておいた位相画像データ及び振幅画像データを記憶媒体から取得し、上記実施例の処理を行ってもよい。この場合の画像処理装置１０６における形状算出部２０８の機能構成を図２１に示す。位相画像取得部２１０１及び振幅画像取得部２１０２は、ＲＡＭやＨＤ等の記憶媒体に記憶させておいた位相画像データ及び振幅画像データを取得する。尚、位相画像取得部２１０１が取得する位相画像データは、位相接続を予め行った接続位相画像データである。この構成により、位相画像データ及び振幅画像データの生成を行わずに、高精度に対象物体の三次元形状を得ることができる。
【００５９】
＜変形例２＞
上記実施例においては、撮像装置を２台利用し、ステレオ位相シフト法により三次元形状測定を行う例を示したが、これに限るものではない。例えば、１台の撮像装置を用いて三次元形状測定を行う公知の位相シフト法を利用してもよい。また、上記実施例のように複数のパターンではなく、１つのパターンが投影された物体を撮像することによって３次元形状測定を行う方法にも適用可能である。
【００６０】
＜変形例３＞
上記実施例においては、色情報が付加された点群情報を表示装置２０２に表示する、もしくは、ＨＤやフラッシュメモリ等に直接記録する。しかし、上記の例には限定されない。例えば、色情報が付加された点群情報に基づいて、インクジェットプリンタや３Ｄプリンタなどのプリンタが被測定物体１０１を表す画像又は三次元形状をプリントするためのプリントデータを生成しプリンタに出力してもよい。この場合、形状算出部２０８は、プリントデータ生成部およびプリントデータ出力部を有する。または、画像処理装置１０６が生成したプリントデータに基づいてプリントを行うプリント部を有していてもよい。尚、プリントデータは、例えば、色材量を表す色材量データや色材を記録するか否かの２値を表す２値データ、三次元形状を表すＳＴＬデータなどである。
【００６１】
［その他の実施例］
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６２】
１０６  画像処理装置
５０２  位相画像生成部
５０４  振幅画像生成部
５０５  取得範囲決定部
【図１】
2018169274.tif 000012
【図２】
2018169274.tif 000013
【図３】
2018169274.tif 000014
【図４】
2018169274.tif 000015
【図５】
2018169274.tif 000016
【図６】
2018169274.tif 000017
【図７】
2018169274.tif 000018
【図８】
2018169274.tif 000019
【図９】
2018169274.tif 000020
【図１０】
2018169274.tif 000021
【図１１】
2018169274.tif 000022
【図１２】
2018169274.tif 000023
【図１３】
2018169274.tif 000024
【図１４】
2018169274.tif 000025
【図１５】
2018169274.tif 000026
【図１６】
2018169274.tif 000027
【図１７】
2018169274.tif 000028
【図１８】
2018169274.tif 000029
【図１９】
2018169274.tif 000030
【図２０】
2018169274.tif 000031
【図２１】
2018169274.tif 000032