(57)【要約】【課題】３次元形状検出装置のキャリブレーションに用いる校正用治具の構成を複雑にせず、しかもキャリブレーションのために位置を移動することなく、システムパラメータのキャリブレーションを可能とする校正用冶具を提供すること。【解決手段】システムパラメータの校正するための校正用治具において、基面上に位置し、所定方向に延在する第１の平面部と、基面と異なる平面であって同基面に平行な平面上に位置して所定方向に延在する第２の平面部とを、所定方向と交差する方向に交互に配置することによって、第１の平面部と第２の平面部をそれぞれ複数設け、複数の第１の平面部と複数の第２の平面部とに少なくとも６以上の校正用指標が離散して配置する。【選択図】図１５
2007212159.tif 000002
【特許請求の範囲】
【請求項１】
明と暗とを交互に並べてなる複数種類のパターン光の各々を時系列に被写体に投影する投影手段と、その投影手段から各パターン光が投影されている状態の被写体を撮像する撮像手段と、その撮像手段によって撮像される各撮影画像に基づいて被写体の３次元形状を算出する３次元形状算出手段と、を備えた３次元形状検出装置において前記被写体の３次元形状を算出するのに用いるシステムパラメータの校正するための校正用治具において、
基面上に位置し、所定方向に延在する第１の平面部と、前記基面と異なる平面であって同基面に平行な平面上に位置して前記所定方向に延在する第２の平面部とを、前記所定方向と交差する方向に交互に配置することによって、少なくとも前記第１の平面部と前記第２の平面部とをそれぞれ複数設け、前記複数の第１の平面部と前記複数の第２の平面部とに少なくとも６以上の校正用指標が離散して配置されたことを特徴とする校正用治具。
【請求項２】
前記校正用冶具は、前記所定方向と直交する方向における中心を通る前記所定方向の軸に対して、左右対称に形成したことを特徴とする請求項１に記載の校正用冶具。
【請求項３】
前記被写体の実空間座標系の一軸が通る平面上に前記複数の第１の平面部または前記複数の第２の平面部が配置されることを特徴とする請求項１又は請求項２に記載の校正用治具。
【請求項４】
前記複数の第１の平面部と前記複数の第２の平面部とにそれぞれに前記所定の方向に離散して３以上、かつ前記第１の平面部ごと及び前記第２の平面部ごとに少なくとも１以上の校正用指標を設けたことを特徴とする請求項１〜３のいずれか１項に記載の校正用治具。
【請求項５】
前記複数の第１の平面部及び前記複数の第２の平面部は、荷重成型加工により形成したことを特徴とする請求項１〜４のいずれか１項に記載の校正用治具。
【請求項６】
前記複数の第１の平面部及び前記複数の第２の平面部は、押し出し加工により形成したことを特徴とする請求項１〜４のいずれか１項に記載の校正用治具。
【請求項７】
前記複数の第１の平面部及び前記複数の第２の平面部は、複数の部材を用いて形成したことを特徴とする請求項１〜４のいずれか１項に記載の校正用治具。
【請求項８】
前記複数の第１の平面部及び前記複数の第２の平面部は、射出整形することによって形成したことを特徴とする請求項１〜４のいずれか１項に記載の校正用治具。
【請求項９】
前記校正用指標は、校正用指標を除く他の部分と異なる表面加工処理によって、この校正用指標を除く他の部分と反射率を異ならしめたことを特徴とする請求項１〜８のいずれか１項に記載の校正用治具。
【請求項１０】
前記複数の第１の平面部と前記複数の第２の平面部とにそれぞれ開口穴を形成することによって前記指標を設けたことを特徴とする請求項１〜８のいずれか１項に記載の校正用治具。
【請求項１１】
前記複数の第１の平面部と前記複数の第２の平面部とは反射率と異なるシールを貼り付けることによって前記指標を設けたことを特徴とする請求項１〜８のいずれか１項に記載の校正用治具。
【請求項１２】
前記複数の第１の平面部と前記複数の第２の平面部とは反射率の異なるインクによる印刷処理によって前記指標を設けたことを特徴とする請求項１〜８のいずれか１項に記載の校正用治具。
【請求項１３】
前記複数の第１の平面部及び前記複数の第２の平面部のうち少なくとも一つの平面部の一端に前記３次元形状検出装置に設けられる載置台と嵌合するための嵌合部を設けたことを特徴とする請求項１〜１２のいずれか１項に記載の校正用治具。
【請求項１４】
請求項１〜１３のいずれか１項に記載の校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、
前記校正用治具に明暗の３つ以上の境界が現れるように前記パターン光投光手段からパターン光を校正用治具へ投光し、前記撮像手段によって前記校正用治具を撮像する第１の撮像ステップと、
前記撮像手段によって撮像した画像から前記第１の平面部及び前記第２の平面部における前記パターン光の境界を検出する第１の境界検出ステップと、
前記第２のステップで検出したパターン光の境界を用いて前記システムパラメータを校正する校正ステップと、
を有することを特徴とする３次元形状検出装置のキャリブレーション方法。
【請求項１５】
請求項１〜１３のいずれか１項に記載の校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、
前記校正用治具に明暗の境界が異なる複数のパターン光を前記パターン光投光手段から校正用治具へ投光し、前記撮像手段によって前記校正用治具を前記投光したパターン光ごとに撮像する第２の撮像ステップと、
前記撮像手段によって撮像した複数の画像から前記第１の平面部及び前記第２の平面部におけるパターン光の境界を検出する第２の境界検出ステップと、
前記第２のステップで検出したパターン光の境界を用いて前記システムパラメータを校正する校正ステップと、
を有することを特徴とする３次元形状検出装置のキャリブレーション方法。
【請求項１６】
請求項１〜１３のいずれか１項に記載の校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、
前記校正用治具に明暗の境界が異なる複数のパターン光を前記パターン光投光手段から校正用治具へ投光し、前記撮像手段によって前記校正用治具を前記投光したパターン光ごとに撮像する第２の撮像ステップと、
前記撮像手段によって撮像した複数の画像から空間コード画像を生成する空間コード画像生成ステップと、
前記空間コード画像生成ステップで生成された空間コード画像を参照し、前記第１の平面部及び前記第２の平面部における空間コード境界を検出する空間コード境界検出ステップと、
前記空間コード境界検出ステップで検出した空間コード境界を用いて前記システムパラメータを校正する校正ステップと、
を有することを特徴とする３次元形状検出装置のキャリブレーション方法。
【請求項１７】
前記第１の境界検出ステップ又は前記第２の境界検出ステップは、
前記撮像された前記校正用治具の撮像画像を表示する表示ステップと、
前記表示した撮像画像上で前記第１の平面部と前記第２の平面部における前記パターン光の境界を含む領域を指定する境界領域指定ステップと、
前記指定された領域から前記パターン光の境界を検出する検出ステップと、を有することを特徴とする請求項１４又は請求項１５に記載の３次元形状検出装置のキャリブレーション方法。
【請求項１８】
前記空間コード境界検出ステップは、
前記空間コード画像生成ステップで生成された空間コード画像を表示する表示ステップと、
前記表示した撮像画像上で前記第１の平面部と前記第２の平面部における前記空間コードの境界を含む領域を指定する境界領域指定ステップと、
前記指定された領域から前記空間コードの境界を検出する検出ステップと、を有することを特徴とする請求項１６に記載の３次元形状検出装置のキャリブレーション方法。
【請求項１９】
請求項１〜１３のいずれか１項に記載の校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、
照明手段によって前記校正用治具を照らし、前記撮像手段によって前記校正用治具を撮像する撮像ステップと、
前記ステップにおいて撮像された前記校正用治具の撮像画像を表示する表示ステップと、
前記表示した撮像画像上で前記校正用指標を含む領域を指定する指標領域指定ステップと、
前記指定された領域から前記校正用指標の中心を検出する検出ステップと、を有することを特徴とする３次元形状検出装置のキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元形状検出装置のキャリブレーションに用いる校正用治具及びそのキャリブレーション方法に関する。詳細には、３次元形状検出装置において被写体の３次元形状を算出するのに用いるシステムパラメータの校正するための校正用治具及びそのキャリブレーション方法に関する。
【背景技術】
【０００２】
従来より、対象物体である被写体に投影部からスリット光やスポット光などのパターン光を投光して、そのパターン光が投光された被写体を撮像手段によって撮像し、その撮像された画像から検出されるパターン光の軌跡に基づいて、被写体の３次元形状を検出する３次元形状検出装置が知られている。
【０００３】
このような３次元形状検出装置においては、３次元空間の１点を、平面と直線の交点、２本の直線の交点として決定するアクティブ型３次元画像計測法が用いられる。すなわち、所定の位置にある投影部から投影されるパターン光と、所定の位置にある撮像部からの視線とを、それぞれ平面と直線として捉え、投影部及び撮像部による結像光学系をその位置及び姿勢などを含むパラメータによってモデル化し、このパラメータ（以下、「システムパラメータ」という。）を用いて３次元形状を計測する（例えば、非特許文献１参照。）。
【０００４】
投影部及び撮像部の位置と姿勢は、設計モデルと完全に一致していることが望ましい。ところが、部品の精度や組み立て精度などの諸要因により、その位置及び姿勢共に誤差が生じてしまう。投影部及び撮像部の位置と姿勢とを測定器を用いて測定することによって、システムパラメータを求めることもできるが手間がかかる。
【０００５】
そこで、３次元形状が既知である複数の校正用指標を設けた基準の物体（校正用治具）を用いることによって、プロジェクタ部及びカメラ部の位置と姿勢の情報を含むシステムパラメータをキャリブレーション（校正）する方法が一般的に用いられている（例えば特許文献１参照）。
【非特許文献１】佐藤宏介、他１名、「三次元画像計測」、株式会社昭晃堂、ｐ９１〜９９
【特許文献１】特開平８−３５８２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、従来の校正用治具は、投影部のキャリブレーションと撮像部のキャリブレーションとが別々であったり、或いはキャリブレーションのために位置を移動させなければならなかった。
【０００７】
たとえば、特許文献１においては、位置が既知である複数の格子点を有する校正用治具平面を移動させ、その移動前後の画像を撮像手段で撮像し、この撮像画像に基づいてカメラパラメータを演算する。その後、校正用治具平面を移動させ、その移動前後の画像を撮像手段で撮像し、この撮像画像と第１パラメータとに基づいてプロジェクタパラメータを演算するように校正されている。したがって、校正用治具平面は平面状であるものの、校正用治具平面を移動させる構造を設ける必要があった。
【０００８】
そこで、本発明は、校正用治具の構成を複雑にせず、しかもキャリブレーションのために位置を移動することなく、システムパラメータのキャリブレーションを可能とする校正用冶具を提供することを目的とする。また、校正用冶具に配置される校正用指標やパターン光境界の検出を容易にするキャリブレーション方法を提供すること目的とする。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために、請求項１に記載の発明は、明と暗とを交互に並べてなる複数種類のパターン光の各々を時系列に被写体に投影する投影手段と、その投影手段から各パターン光が投影されている状態の被写体を撮像する撮像手段と、その撮像手段によって撮像される各撮影画像に基づいて被写体の３次元形状を算出する３次元形状算出手段と、を備えた３次元形状検出装置において前記被写体の３次元形状を算出するのに用いるシステムパラメータの校正するための校正用治具において、基面上に位置し、所定方向に延在する第１の平面部と、前記基面と異なる平面であって同基面に平行な平面上に位置して前記所定方向に延在する第２の平面部とを、前記所定方向と交差する方向に交互に配置することによって、前記第１の平面部と前記第２の平面部をそれぞれ複数設け、前記複数の第１の平面部と前記複数の第２の平面部とに少なくとも６以上の校正用指標が離散して配置されたことを特徴とする。
【００１０】
また、請求項２に記載の発明は、請求項１に記載の発明であって、前記校正用冶具は、前記所定方向と直交する方向における中心を通る前記所定方向の軸に対して、左右対称に形成したことを特徴とする。
【００１１】
また、請求項３に記載の発明は、請求項１又は請求項２に記載の発明であって、前記被写体の実空間座標系の一軸が通る平面上に前記複数の第１の平面部または前記複数の第２の平面部が配置されることを特徴とする。
【００１２】
また、請求項４に記載の発明は、請求項１〜３のいずれか1項に記載の発明であって、前記複数の第１の平面部と前記複数の第２の平面部とにそれぞれに前記所定の方向に離散して３以上、かつ前記第１の平面部ごと及び前記第２の平面部ごとに少なくとも１以上の校正用指標を設けたことを特徴とする。
【００１３】
また、請求項５に記載の発明は、請求項１〜４のいずれか１項に記載の発明であって、前記複数の第１の平面部及び前記複数の第２の平面部は、荷重成型加工により形成したことを特徴とする。
【００１４】
また、請求項６に記載の発明は、請求項１〜４のいずれか１項に記載の発明であって、前記複数の第１の平面部及び前記複数の第２の平面部は、押し出し加工により形成したことを特徴とする。
【００１５】
また、請求項７に記載の発明は、請求項１〜４のいずれか１項に記載の発明であって、前記複数の第１の平面部及び前記複数の第２の平面部は、複数の部材を用いて形成したことを特徴とする。
【００１６】
また、請求項８に記載の発明は、請求項１〜４のいずれか１項に記載の発明であって、前記複数の第１の平面部及び前記複数の第２の平面部は、射出整形することによって形成したことを特徴とする。
【００１７】
また、請求項９に記載の発明は、請求項１〜８のいずれか１項に記載の発明であって、前記校正用指標は、校正用指標を除く他の部分と異なる表面加工処理によって、この校正用指標を除く他の部分と反射率を異ならしめたことを特徴とする。
【００１８】
また、請求項１０に記載の発明は、請求項１〜８のいずれか１項に記載の発明であって、前記複数の第１の平面部と前記複数の第２の平面部とにそれぞれ開口穴を形成することによって前記指標を設けたことを特徴とする。
【００１９】
また、請求項１１に記載の発明は、請求項１〜８のいずれか１項に記載の発明であって、前記複数の第１の平面部と前記複数の第２の平面部とは反射率と異なるシールを貼り付けることによって前記指標を設けたことを特徴とする。
【００２０】
また、請求項１２に記載の発明は、請求項１〜９のいずれか１項に記載の発明であって、前記複数の第１の平面部と前記複数の第２の平面部とは反射率の異なるインクによる印刷処理によって前記指標を設けたことを特徴とする。
【００２１】
また、請求項１３に記載の発明は、請求項１〜１２のいずれか１項に記載の発明であって、前記複数の第１の平面部及び前記複数の第２の平面部のうち少なくとも一つの平面部の一端に前記３次元形状検出装置に設けられる載置台と嵌合するための嵌合部を設けたことを特徴とする。
【００２２】
また、請求項１４に記載の発明は、請求項１〜１３のいずれか１項に記載の発明である校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、前記校正用治具に明暗の３つ以上の境界が現れるように前記パターン光投光手段からパターン光を校正用治具へ投光し、前記撮像手段によって前記校正用治具を撮像する第１の撮像ステップと、前記撮像手段によって撮像した画像から前記第１の平面部及び前記第２の平面部における前記パターン光の境界を検出する第１の境界検出ステップと、前記第２のステップで検出したパターン光の境界を用いて前記システムパラメータを校正する校正ステップとを有することを特徴とする。
【００２３】
また、請求項１５に記載の発明は、請求項１〜１３のいずれか１項に記載の発明である校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、前記校正用治具に明暗の境界が異なる複数のパターン光を前記パターン光投光手段から校正用治具へ投光し、前記撮像手段によって前記校正用治具を前記投光したパターン光ごとに撮像する第２の撮像ステップと、前記撮像手段によって撮像した複数の画像から前記第１の平面部及び前記第２の平面部におけるパターン光の境界を検出する第２の境界検出ステップと、前記第２のステップで検出したパターン光の境界を用いて前記システムパラメータを校正する校正ステップとを有することを特徴とする。
【００２４】
また、請求項１６に記載の発明は、請求項１〜１３のいずれか１項に記載の発明である校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、前記校正用治具に明暗の境界が異なる複数のパターン光を前記パターン光投光手段から校正用治具へ投光し、前記撮像手段によって前記校正用治具を前記投光したパターン光ごとに撮像する第２の撮像ステップと、前記撮像手段によって撮像した複数の画像から空間コード画像を生成する空間コード画像生成ステップと、前記空間コード画像生成ステップで生成された空間コード画像を参照し、前記第１の平面部及び前記第２の平面部における空間コード境界を検出する空間コード境界検出ステップと、前記空間コード境界検出ステップで検出した空間コード境界を用いて前記システムパラメータを校正する校正ステップとを有することを特徴とする。
【００２５】
また、請求項１７に記載の発明は、請求項１４又は請求項１５に記載の発明であって、前記第１の境界検出ステップ又は前記第２の境界検出ステップは、前記撮像された前記校正用治具の撮像画像を表示する表示ステップと、前記表示した撮像画像上で前記第１の平面部と前記第２の平面部における前記パターン光の境界を含む領域を指定する境界領域指定ステップと、前記指定された領域から前記パターン光の境界を検出する検出ステップとを有することを特徴とする。
【００２６】
また、請求項１８に記載の発明は、請求項１６に記載の発明であって、前記空間コード境界検出ステップは、前記空間コード画像生成ステップで生成された空間コード画像を表示する表示ステップと、前記表示した撮像画像上で前記第１の平面部と前記第２の平面部における前記空間コードの境界を含む領域を指定する境界領域指定ステップと、前記指定された領域から前記空間コードの境界を検出する検出ステップとを有することを特徴とする。
【００２７】
また、請求項１９に記載の発明は、請求項１〜１３のいずれか１項に記載の発明である校正用治具を用いた３次元形状検出装置のキャリブレーション方法であって、照明手段によって前記校正用治具を照らし、前記撮像手段によって前記校正用治具を撮像する撮像ステップと、前記ステップにおいて撮像された前記校正用治具の撮像画像を表示する表示ステップと、前記表示した撮像画像上で前記校正用指標を含む領域を指定する指標領域指定ステップと、前記指定された領域から前記校正用指標の中心を検出する検出ステップとを有することを特徴とする。
【発明の効果】
【００２８】
請求項１に記載の発明によれば、システムパラメータの校正するための校正用治具において、基面上に位置し、所定方向に延在する第１の平面部と、前記基面と異なる平面であって同基面に平行な平面上に位置して前記所定方向に延在する第２の平面部とを、前記所定方向と交差する方向に交互に配置することによって、前記第１の平面部と前記第２の平面部をそれぞれ複数設け、前記複数の第１の平面部と前記複数の第２の平面部とに少なくとも６以上の校正用指標が離散して配置されているので、校正用治具の構成を複雑にせず、しかもキャリブレーションのために位置を移動することなく、システムパラメータのキャリブレーションを可能とする校正用冶具を提供することができる。
【００２９】
また、請求項２に記載の発明によれば、前記所定方向と直交する方向における中心を通る前記所定方向の軸に対して、左右対称に校正用冶具を形成したので、校正用治具の構成を複雑にせず、たとえば、校正用冶具を上下反転した場合でもシステムパラメータのキャリブレーションを可能とする校正用冶具を提供することができる。
【００３０】
また、請求項３に記載の発明によれば、被写体の実空間座標系の一軸が通る平面上に複数の第１の平面部または複数の第２の平面部が配置されるので、実際の３次元計測と同様の状態で校正を行うことになり、精度の高い校正が可能になる。
【００３１】
また、請求項４に記載の発明によれば、複数の第１の平面部と複数の第２の平面部とにそれぞれに所定の方向に離散して３以上、かつ第１の平面部ごと及び前記第２の平面部ごとに少なくとも１以上の校正用指標を設けたので、上下に離散して３以上の校正用指標を設けることにより、カメラパラメータのキャリブレーション時の収束性を向上させることができる。また、第１の平面部ごと及び第２の平面部ごとに少なくとも１以上の校正用指標を設けることにより、カメラパラメータのキャリブレーション精度を向上させることができる。
【００３２】
また、請求項５に記載の発明によれば、複数の第１の平面部及び複数の第２の平面部を荷重成型加工により形成したので、鉄板などの金属板をプレス成型することにより校正用冶具を低コストで生産することができる。
【００３３】
また、請求項６に記載の発明によれば、複数の第１の平面部及び複数の第２の平面部を押し出し加工により形成したので、校正用冶具を低コストで生産することができ、また校正用冶具の重量を軽くすることができる。
【００３４】
また、請求項７に記載の発明によれば、複数の第１の平面部及び複数の第２の平面部を複数の部材を用いて形成したので、校正用冶具の形状を高精度で形成することができる。
【００３５】
また、請求項８に記載の発明によれば、複数の第１の平面部及び複数の第２の平面部を射出整形することによって形成したので、校正用冶具の低コストで製造することができる他校正用指標の同時成形が可能となるため生産工程の軽減等を図ることができる。
【００３６】
また、請求項９に記載の発明によれば、校正用指標を表面加工処理によって、この校正用指標を除く他の部分と反射率を異ならしめたので、たとえば、アルミニウム等軽金属素材により校正用治具を形成した場合、校正用指標に相当する表面をサンドブラスト加工することで、校正用指標の形成が容易となる。
【００３７】
また、請求項１０に記載の発明によれば、複数の第１の平面部と複数の第２の平面部とにそれぞれ開口穴を形成することによって指標を設けたので、校正用指標の形成を容易にすることができる。特に、校正用冶具を金属板の荷重成型加工により形成する場合、この開口穴を貫通孔とせず凹形状とすれば、一度の加工で校正用指標を有する校正用冶具を形成できる。
【００３８】
また、請求項１１に記載の発明によれば、複数の第１の平面部と複数の第２の平面部とは反射率の異なるシールを貼り付けることによって指標を設けたので、校正用指標を他の部分と著しく異なる色にすることができるため校正用冶具を撮像したときの画像において校正用指標の識別の精度が向上する。
【００３９】
また、請求項１２に記載の発明によれば、複数の第１の平面部と複数の第２の平面部とは反射率の異なるインクによる印刷処理によって指標を設けたので、校正用指標を他の部分と著しく異なる色にすることができるため校正用冶具を撮像したときの画像において校正用指標の識別の精度が向上する。しかも、シールのように剥れる可能性も少ない。
【００４０】
また、請求項１３に記載の発明によれば、複数の第１の平面部及び複数の第２の平面部のうち少なくとも一つの平面部の一端に前記３次元形状検出装置に設けられる載置台と嵌合するための嵌合部を設けたので、所定位置への載置のずれを防止することができると共に位置決めが容易である。
【００４１】
また、請求項１４に記載の発明によれば、校正用治具に明暗の３つ以上の境界が現れるようにパターン光を投光し、撮像手段によって撮像した画像から第１の平面部及び第２の平面部における前記パターン光の境界を検出してシステムパラメータを校正するので、一つのパターン光を用いてシステムパラメータの校正を行うことができるため、校正時間の短縮を図ることができる。
【００４２】
また、請求項１５に記載の発明によれば、校正用治具に明暗の境界が異なる複数のパターン光を投光し、撮像手段によって撮像した複数の画像から第１の平面部及び第２の平面部における前記パターン光の境界を検出してシステムパラメータを校正するので、投光する複数のパターン光の組合せにより、検出するパターン光境界の数を増加させたり、検出するパターン光境界の位置を校正治具上で偏り無く分布させることが出来るため、システムパラメータの校正の精度を向上させることができる。
【００４３】
また、請求項１６に記載の発明によれば、校正用治具に明暗の境界が異なる複数のパターン光を投光して、撮像手段によって撮像した複数の画像から空間コード画像を生成し、この空間コード画像を参照し、第１の平面部及び第２の平面部における空間コード境界を検出してシステムパラメータを校正するので、検出する空間コード境界の数を増加させたり、検出する空間コード境界の位置を校正治具上で偏り無く分布させることが出来るため、システムパラメータの校正の精度を向上させることができる。
【００４４】
また、請求項１７に記載の発明によれば、境界検出を、撮像された校正用治具の撮像画像を表示し、撮像画像上で第１の平面部と第２の平面部におけるパターン光の境界を含む領域を指定するようにし、指定された領域から前記パターン光の境界を検出するので、パターン光の境界位置の特定を容易に行うことができると共に、パターン光の境界位の算出精度が増す。
【００４５】
また、請求項１８に記載の発明によれば、空間コード境界検出を、空間コード画像を表示して、この空間コード画像上で第１の平面部と第２の平面部における空間コードの境界を含む領域を指定するようにし、指定された領域から空間コードの境界を検出するので、空間コード境界位置の特定を容易に行うことができると共に、空間コード境界位置の算出精度が増す。
【００４６】
また、請求項１９に記載の発明によれば、照明手段によって校正用治具を照らして、撮像手段によって校正用治具を撮像し、このように撮像された校正用治具の撮像画像を表示すると共に、この撮像画像上で校正用指標を含む領域を指定するようにし、指定された領域から校正用指標の中心を検出するので、校正用指標の位置特定を容易に行うことができる。しかも、校正用指標の中心位置を特定した校正用指標からその重心を算出するようにすれば、校正用指標の中心位置の算出精度が増す。
【発明を実施するための最良の形態】
【００４７】
以下、本発明のさらに具体的な実施の形態のうちのいくつかを図面に基づいて詳細に説明する。
【００４８】
図１には、本発明の第１実施形態に従う３次元形状検出装置１０の外観が斜視図で示されている。この３次元形状検出装置１０は、明と暗とを交互に並べてなるストライプ状の複数種類のパターン光の被写体Ｓ（物体）への投影と、被写体Ｓの撮像と、その撮像結果に基づき、被写体Ｓの３次元情報および表面色情報をコンピュータによって取得する信号処理とを行うように設計されている。この３次元形状検出装置１０は、被写体Ｓとの間における予定外の相対変位にもかかわらず、被写体Ｓの３次元形状情報と表面色情報とを画素の位置に関して互いに正確にマッチングするように被写体Ｓを撮像するように設計されている。
【００４９】
図１ないし図４には、３次元形状検出装置１０の外部構成が示される一方、図５ないし図１１には、３次元形状検出装置１０の内部構成が示されている。以下、まず、外部構成を説明し、次に、内部構成を説明する。
【００５０】
図１に示すように、３次元形状検出装置１０は、測定ヘッドＭＨと、台座部ＨＤとを含むように構成されている。
【００５１】
測定ヘッドＭＨは、被写体Ｓを光学的に撮像し、その撮像結果に基づいて被写体Ｓの３次元形状および表面色を測定するために設けられている。台座部ＨＤは、測定ヘッドＭＨ及び被写体Ｓを載置可能に構成されており、一端の領域に測定ヘッドＭＨを装着する測定ヘッド装着部を設けると共に、他端に被写体Ｓを載置する載置台としての回転テーブル部ＲＴを設けている。回転テーブル部ＲＴは、測定ヘッドＭＨに対して被写体Ｓを割り出し回転させるごとに測定ヘッドＭＨによる被写体Ｓの撮像を可能にし、それにより、被写体Ｓの外面の全体領域を複数の部分領域に分割して撮像することを可能にするために設けられている。
【００５２】
被写体Ｓについては、各部分領域ごとの撮像によって複数の部分画像が取得される。それら取得された複数の部分画像は１つのステッチ画像に結合される。同じ被写体Ｓについて取得された表面色情報がそのステッチ画像にマッピングされ、それにより、その被写体Ｓについてのステッチテクスチャが生成される。
【００５３】
図１に示すように、測定ヘッドＭＨは、被写体Ｓにパターン光を投影するための投影部１２と、被写体Ｓを撮像するための撮像部１４と、被写体Ｓの３次元情報および表面色情報の取得とを行うために信号処理を行う処理部１６とを備えている。それら投影部１２、撮像部１４および処理部１６は、測定ヘッドＭＨの、略直方体状を成すケーシング２０に装着されている。
【００５４】
図１に示すように、そのケーシング２０には、鏡筒２４とフラッシュ２６とが、それぞれが部分的にケーシング２０の正面において露出する姿勢で装着されている。このケーシング２０には、さらに、撮像部１４の一部である撮像光学系３０が、それのレンズの一部がケーシング２０の正面において露出する姿勢で装着されている。その撮像光学系３０は、それの露出部分において、被写体Ｓを表す画像光を受光する。
【００５５】
鏡筒２４は、図１に示すように、ケーシング２０の正面から突出しており、その内部において、図５に示すように、投影部１２の一部である投影光学系３２を収容している。投影光学系３２は、複数枚の投影レンズ３４と絞り３６とを含むように構成されている。
【００５６】
鏡筒２４は、投影光学系３２を、焦点調節のために全体的に移動可能である状態で保持し、さらに、この鏡筒２４は、投影光学系３２を損傷から保護している。鏡筒２４の露出端面から、複数枚の投影レンズ３４のうち最も外側に位置するものが露出している。投影光学系３２は、その最も外側の投影レンズ３４において、被写体Ｓに向かってパターン光を投影する。
【００５７】
フラッシュ２６は、不足光量を補充するために発光する光源であり、例えば、キセノンガスが充填された放電管を用いて構成されている。したがって、このフラッシュ２６は、ケーシング２０に内蔵されているコンデンサ（図示しない）の放電により繰り返し使用することができる。
【００５８】
図１に示すように、ケーシング２０には、それの上面において、レリーズボタン４０が装着されている。また、図２（ｂ）に示すように、ケーシング２０には、さらに、それの背面において、モード切替スイッチ４２（図２（ｂ）に示す例においては、３個のボタンから成る。）と、４方向カーソルキー（十字キー）４３と、モニタＬＣＤ４４とが装着されている。それらモード切替スイッチ４２および４方向カーソルキー４３はそれぞれ、ファンクションボタンの一例を構成する。
【００５９】
レリーズボタン４０は、３次元形状検出装置１０を作動させるためにユーザによって操作される。このレリーズボタン４０は、ユーザの操作状態（押下状態）が「半押し状態」である場合と「全押し状態」である場合とで異なる指令を発令できる２段階の押しボタン式のスイッチによって構成されている。レリーズボタン４０の操作状態は処理部１６によって監視される。処理部１６によって「半押し状態」が検出されれば、よく知られたオートフォーカス（ＡＦ）および自動露出（ＡＦ）の機能が起動し、ピント、絞りおよびシャッタスピードが自動的に調節される。これに対し、処理部１６によって「全押し状態」が検出されれば、撮像等が行われる。
【００６０】
モード切替スイッチ４２は、３次元形状検出装置１０の作動モードを、後述の三次元測定モード（図２（ｂ）において「３Ｄ」で示す。）、校正モード（図２（ｂ）において「Ｃ」でしめす。）およびオフモード（図２（ｂ）において「ＯＦＦ」で示す。）を含む複数種類のモードのいずれかとして設定するためにユーザによって操作される。このモード切替スイッチ４２の操作状態は処理部１６によって監視されており、モード切替スイッチ４２の操作状態が処理部１６によって検出されると、その検出された操作状態に対応するモードでの処理が３次元形状検出装置１０において行われる。
【００６１】
モニタＬＣＤ４４は、液晶ディスプレイ（Liquid Crystal Display）を用いて構成されており、処理部１６から画像信号を受けて、画像をユーザに表示する。このモニタＬＣＤ４４は、例えば、被写体Ｓの３次元形状の検出結果を表す画像（立体画像）等を表示する。
【００６２】
図２に示すように、ケーシング２０には、さらに、ＲＦ（無線）インタフェイスとしてのアンテナ５０が装着されている。アンテナ５０は、図５に示すように、ＲＦドライバ５２に接続されている。このアンテナ５０は、被写体Ｓを立体画像として表すデータ等を、ＲＦドライバ５２を介して、図示しない外部インタフェイスに無線によって送信する。
【００６３】
ここで、図１および図３を参照することにより、測定ヘッドＭＨを台座部ＨＤに着脱可能に装着する構造を説明する。
【００６４】
測定ヘッドＭＨは、台座部ＨＤの一端の上面に機械的に係合することにより、その台座部ＨＤに装着される。その係合を実現するために、測定ヘッドＭＨは、図３に示すように、台座部ＨＤとの係合部である下端部にヘッド沈座部１５０が形成されている。このヘッド沈座部１５０は、第１および第２の係合爪１５２，１５４を一対の雄側係合部として有している。
【００６５】
図３に示すように、それら第１および第２の係合爪１５２，１５４は、測定ヘッドＭＨの横方向、すなわち、台座部ＨＤの幅方向に互いに隔たる一対の位置において、それぞれ測定ヘッドＭＨの前後方向、すなわち、台座部ＨＤの長さ方向に延びるように形成されている。本実施形態においては、測定ヘッドＭＨが台座部ＨＤにできる限り強固に固定されるようにするために、それら第１および第２の係合爪１５２，１５４間の距離ができる限り長くなるようにそれら第１および第２の係合爪１５２，１５４の各位置が選定されている。
【００６６】
図３に示すように、台座部ＨＤには、ヘッド沈座部１５０との機械的係合によってそのヘッド沈座部１５０を固定的に受容するヘッド受容部１６０が形成されている。このヘッド受容部１６０は、ヘッド沈座部１５０が嵌り入るヘッドベース沈座空隙１６２を備え、さらに、測定ヘッドＭＨの第１および第２の係合爪１５２，１５４にそれぞれ係合する第１および第２の爪突き当て部１６４，１６６を一対の雌側係合部として備えている。
【００６７】
第１の爪突き当て部１６４は、対応する第１の係合爪１５２に係合して、測定ヘッドＭＨが台座部ＨＤから、それの上面に直角な方向に離脱することを阻止する固定爪突き当て部である。一方、第２の爪突き当て部１６６は、（ａ）対応する第２の係合爪１５４に係合して、測定ヘッドＭＨが台座部ＨＤから、それの上面に直角な方向に離脱することを阻止する係合位置と、（ｂ）対応する第２の係合爪１５４から離脱して、測定ヘッドＭＨが台座部ＨＤから、それの上面に直角な方向に離脱することを許可する解放位置とに変位可能な可動爪突き当て部である。
【００６８】
第２の爪突き当て部１６６の一例は、台座部ＨＤの長さ方向（台座部ＨＤに対する測定ヘッドＭＨの装着・離脱時にその測定ヘッドＭＨが回転する回転平面に直角な方向）に延びるピボット軸線まわりにピボット可能なピボット部材１７０を含んでいる。
【００６９】
そのピボット部材１７０は、そのピボット軸線と同軸な軸線を有するジョイント１７２によって台座部ＨＤにピボット可能に装着される。このピボット部材１７０は、対応する第２の係合爪１５４に機械的に係合してその第２の係合爪１５４が離脱することを阻止する可動係合部１７４を含んでいる。その可動係合部１７４が第２の係合爪１５４を上方から係合する向きにピボット部材１７０が常時、弾性部材としてのスプリング１７６によって付勢される。本実施形態においては、そのピボット部材１７０が、さらに、可動係合部１７４による係合を解除するためにユーザによって押圧操作される操作部１７８と、スプリング１７６の弾性力を拡大して可動係合部１７４に伝達するレバレッジ１８０とを含んでいる。
【００７０】
次に、図３を参照することにより、台座部ＨＤに対する測定ヘッドＭＨの着脱作業を説明する。
【００７１】
測定ヘッドＭＨを台座部ＨＤに装着するためには、ユーザは、ピボット部材１７０の操作部１７８を、スプリング１７６の弾性力に抗して、可動係合部１７４が係合位置から解放位置に向かう解放方向に押圧する。その押圧状態で、ユーザは、ヘッド沈座部１５０がヘッドベース沈座空隙１６２内に進入しつつ第１の係合爪１５２が第１の爪突き当て部１６４内に進入して当接するように、測定ヘッドＭＨを概して垂直面内において回転させつつ下降させる。その後、ユーザは、操作部１７８の押圧を解除し、それにより、ピボット部材１７０がスプリング１７６の弾性回復力によって解放位置から係合位置に回動して、可動係合部１７４が第２の係合爪１５４に上方から係合して突き当たる。その結果、第１の係合爪１５２が第１の爪突き当て部１６４から上方に離脱することが阻止されるとともに、第２の係合爪１５４が第２の爪突き当て部１６６から上方に離脱することも阻止される。それにより、測定ヘッドＭＨが台座部ＨＤから離脱することが阻止される。
【００７２】
これに対し、測定ヘッドＭＨを台座部ＨＤから離脱するためには、ユーザは、上記の場合と同様にして、ピボット部材１７０の操作部１７８をスプリング１７６の弾性力に抗して、解放方向に押圧する。その押圧状態で、ユーザは、ヘッド沈座部１５０がヘッドベース沈座空隙１６２から退避しつつ第１の係合爪１５２が第１の爪突き当て部１６４から退避するように、測定ヘッドＭＨを概して垂直面内において回転させつつ上昇させて、測定ヘッドＭＨを台座部ＨＤから離脱させる。その後、ユーザは、操作部１７８の押圧を解除し、それにより、ピボット部材１７０がスプリング１７６の弾性回復力によって解放位置から係合位置に復元する。
【００７３】
次に、図４を参照することにより、回転テーブル部ＲＴを詳細に説明する。
【００７４】
この回転テーブル部ＲＴは、被写体Ｓが載置されるべき回転テーブル１８４と、その回転テーブル１８４を回転可能に支持する支持フレーム１８６とを含んでいる。その支持フレーム１８６は、上板部１８８と下板部１８９とを含むように薄い中空箱状を成しており、上板部１８８の開口から回転テーブル１８４の上面が露出している。本実施形態においては、その支持フレーム１８６のうちの下板部１８９がテーブルベースとしても機能する。
【００７５】
回転テーブル１８４の上面は、撮像されるべき被写体Ｓが載置される載置面１９０である。一方、回転テーブル１８４の下面から、回転シャフト１９１が同軸に延び出しており、この回転シャフト１９１は、軸受け１９２を介して支持フレーム１８６に回転可能に支持されている。その軸受け１９２は、支持フレーム１８６に形成された軸受けホルダ１９３によって保持されている。
【００７６】
回転テーブル１８４を回転させるテーブルモータ１９４が支持フレーム１８６に装着されている。このテーブルモータ１９４を収容するモータボックス１９５が支持フレーム１８６に形成されている。
【００７７】
このモータボックス１９５は、支持フレーム１８６の上板部１８８の上面に、その上面から上方に突出する姿勢で形成されている。このモータボックス１９５の上面は、回転テーブル１８４の上面より高く設定されている。それにより、被写体Ｓが回転テーブル１８４と共に回転させられる際にその被写体Ｓが、回転テーブル１８４を同軸に投影した投影空間から外側にはみ出していると、モータボックス１９５のうち回転テーブル１８４の上面より上方に位置する部分が被写体Ｓに当接してその被写体Ｓの向きを変化させる。
【００７８】
したがって、モータボックス１９５は、テーブルモータ１９４の収容部として機能するのみならず、被写体Ｓが回転テーブル１８４に位置決めされる位置を規制する位置規制部１９６としても機能する。
【００７９】
テーブルモータ１９４の回転を回転テーブル１８４に伝達するために、テーブルモータ１９４の回転シャフトにモータギヤ１９７が同軸に固定され、このモータギヤ１９７にかみ合うテーブルギヤ１９８が回転テーブル１８４に同軸に固定されている。モータギヤ１９７は、テーブルギヤ１９８より小径であるため、テーブルギヤ１９８の回転速度が減速されて回転テーブル１８４に伝達される。
【００８０】
ところで、テーブルモータ１９４は、支持フレーム１８６の上板部１８８の上面から突出しないように支持フレーム１８６に装着することが可能である。一方、上板部１８８の上面のうち回転テーブル１８４が露出する部分を除く部分の上方空間にテーブルモータ１９４を配置しても、何ら支障がなく、むしろ、支持フレーム１８６の薄型化に有利である。
【００８１】
したがって、本実施形態によれば、テーブルモータ１９４を上板部１８８の上面から突出するように配置することにより、上述の位置規制部１９６としての機能に加えて、支持フレーム１８６の薄型化を容易にするという機能も実現される。
【００８２】
この３次元形状検出装置１０は、複数種類のモードのうちユーザによって選択されたものに従って作動する。それらモードは、三次元計測モード（以下「３Ｄモード」とする。）と、校正モード、オフモードとを含んでいる。３Ｄモードは、被写体Ｓを撮像し、被写体Ｓの立体形状を検出するモードである。校正モードは、後述の校正用冶具ＫＡを用いて３次元形状検出装置１０における後述のシステムパラメータをキャリブレーションするためのモードである。オフモードは、この３次元形状検出装置１０の動作を停止させるモードである。
【００８３】
撮像部１４は、被写体Ｓを撮像し、その被写体Ｓを表す全体画像を構成する複数個の画素のいずれかを間引いて形成される画素間引き画像を取り出すことが可能であるように構成されている。
【００８４】
ここで、ＣＣＤを用いた撮像の分野においては、被写体Ｓの撮像結果から画素間引き画像を取り出すために、加算方式と選択方式とがすでに知られている。
【００８５】
加算方式によれば、被写体Ｓを表す全体画像を構成する複数個の画素がグループ分けされた複数個の画素グループの各々に属する複数個の対象画素の照度検出値が各画素グループごとに加算され、その加算された照度を用いて、各画素グループに属する複数個の対象画素の照度検出値が均等に分散される。
【００８６】
これに対し、選択方式によれば、それら複数個の画素グループの各々に属する複数個の対象画素から、それら対象画素を代表する代表画素が各画素グループごとに選択され、その選択された代表画素の照度検出値を用いて、各画素グループに属する複数個の対象画素の照度検出値が均等に分散される。
【００８７】
本実施形態においては、撮像部１４は、それら加算方式と選択方式とのうち予め選択されたものに従い、被写体Ｓの撮像結果から画素間引き画像を取り出すように設計されている。
【００８８】
投影部１２は、被写体Ｓにパターン光を投影するためのユニットである。この投影部１２は、図５および図６に示すように、基板６０と、ＬＥＤ６２（例えば、単一のＬＥＤ素子によって広い出射面から光を出力するＬＥＤ）と、照明絞り６３と、光源レンズ６４と、マスク２００を送るためのマスクモータ（例えば、パルスモータ）６５を駆動源とする投影機構６６と、投影光学系３２とを、投影方向に沿って直列に備えている。
【００８９】
図６には、この投影部１２のハードウエア構成のうち、基板６０と、ＬＥＤ６２と、照明絞り６３と、光源レンズ６４と、マスク２００と、投影光学系３２とが詳細に示されている。図７には、この投影部１２を含む３次元形状検出装置１０全体のソフトウエア構成および電気的接続関係が詳細に示されている。図８ないし図１１には、投影部１２のハードウエア構成のうち、投影機構６６が詳細に示されている。
【００９０】
撮像部１４は、被写体Ｓを撮像するためのユニットである。この撮像部１４は、図５に示すように、撮像光学系３０と、ＣＣＤ（Charge Coupled Device）７０とを、画像光の入射方向に沿って直列に備えている。このＣＣＤ７０は、インターライントランスファー方式でプログレッシブ走査を行うように構成されている。
【００９１】
撮像光学系３０は、図５に示すように、複数枚のレンズを用いて構成されている。この撮像光学系３０は、よく知られたオートフォーカス機能により、焦点距離および絞りを自動調整して外部からの光をＣＣＤ７０上に結像する。
【００９２】
ＣＣＤ７０は、フォトダイオード素子などの光電変換素子をマトリクス状に配列して構成されている。このＣＣＤ７０は、撮像光学系３０を介してこのＣＣＤ７０の表面に結像される画像の光の色および強さに応じた信号を各画素ごとに生成する。その生成された信号は、デジタルデータに変換されて処理部１６に出力される。
【００９３】
図７にブロック図で表すように、処理部１６は、フラッシュ２６、レリーズボタン４０およびモード切替スイッチ４２にそれぞれ電気的に接続されている。処理部１６は、さらに、モニタＬＣＤ４４にはモニタＬＣＤドライバ７２を介して、アンテナ５０にはＲＦドライバ５２を介して、バッテリ７４には電源インタフェイス７６を介してそれぞれ電気的に接続されている。それらフラッシュ２６等は、処理部１６によって制御される。
【００９４】
処理部１６は、さらに、外部メモリ７８およびキャッシュメモリ８０にそれぞれ電気的に接続されている。処理部１６は、さらに、ＬＥＤ６２には光源ドライバ８４を介して、投影機構６６のマスクモータ６５にはマスクモータドライバ８６を介して、ＣＣＤ７０にはＣＣＤインタフェイス８８を介してそれぞれ電気的に接続されている。それらＬＥＤ６２等は、処理部１６によって制御される。
【００９５】
外部メモリ７８は、着脱可能なフラッシュＲＯＭであり、立体画像モードにおいて撮像された撮像画像や３次元情報（前述のステッチテクスチャを含む。）を記憶することが可能である。外部メモリ７８を構成するために、例えば、ＳＤカード、コンパクトフラッシュ（登録商標）カード等を使用することができる。
【００９６】
キャッシュメモリ８０は、データの読み書きを高速で行い得る記憶装置である。キャッシュメモリ８０は、例えば、デジカメモードにおいて撮像された撮像画像を高速でキャッシュメモリ８０に転送し、処理部１６で画像処理を行ってから外部メモリ７８に格納することを可能にするために使用される。キャッシュメモリ８０を構成するために、例えば、ＳＤＲＡＭ、ＤＤＲＲＡＭ等を使用することができる。
【００９７】
電源インタフェイス７６、光源ドライバ８４、マスクモータドライバ８６およびＣＣＤインタフェイス８８はそれぞれ、バッテリ７４、ＬＥＤ６２、投影機構６６のマスクモータ６５およびＣＣＤ７０を制御する各種のＩＣ(Integrated Circuit）によって構成されている。
【００９８】
図２（ａ）に示すように、測定ヘッドＭＨには、ＡＣアダプタ端子９０と、ＵＳＢ端子９１と、テーブルモータ端子９２とが設けられている。ＡＣアダプタ端子９０は、図５にも示すように、バッテリ７４に電気的に接続されており、それにより、３次元形状検出装置１０が外部の交流電源を電力源として利用することが可能となっている。ＵＳＢ端子９１は、図５に示すように、ＵＳＢドライバ９３を介して処理部１６に接続されている。テーブルモータ端子９２は、図５に示すように、テーブルモータドライバ９４を介して処理部１６に接続されている。
【００９９】
図１に示すように、回転テーブル部ＲＴのテーブルモータ１９４から電気ラインとしてのハーネス９５が延び出している。このハーネス９５は、図２（ａ）に示すように、そのハーネス９５の先端に接続されたＬ字プラグ９６においてテーブルモータ端子９２に接続されている。そのハーネス９５は、測定ヘッドＭＨからテーブルモータ１９４に制御信号および電力を供給する電気ラインとして機能する。したがって、図８に示すように、テーブルモータ１９４がテーブルモータドライバ９４を介して処理部１６に接続されることになる。
【０１００】
図１に示すように、ハーネス９５は、台座部ＨＤの表面上でハーネス止め９７，９８，９８によって規定される。
【０１０１】
前述のように、投影部１２は、図６に示すように、基板６０と、ＬＥＤ６２と、照明絞り６３と、光源レンズ６４と、投影機構６６と、投影光学系３２とをパターン光の投影方向に沿って直列に備えている。
【０１０２】
基板６０は、それにＬＥＤ６２が装着されることにより、その装着されたＬＥＤ６２との間において電気的な配線を行う。基板６０は、例えば、アルミニウム製基板に絶縁性合成樹脂を塗布してから無電解メッキによってパターンを形成したものや、ガラスエポキシ基材をコアとする単層または多層構造の基板を使用して製作することができる。ＬＥＤ６２は、投影機構６６に向けて放射状のアンバー色の光を広い面積で発光する光源であり、ＬＥＤケーシング１００内に収容されている。
【０１０３】
図６に示すように、照明絞り６３は、ＬＥＤ６２から出力された光のうち不要な部分を遮蔽することにより、必要な部分のみを光源レンズ６４に誘導するために設けられている。光源レンズ６４は、ＬＥＤ６２から放射状に発光される光を集光するレンズであり、その材質はアクリルに代表される光学樹脂である。
【０１０４】
本実施形態においては、図６に示すように、ＬＥＤ６２から発光される放射状の光が、光源レンズ６４によって効率良く集光され、ＬＥＤ６２からの出射光が投影機構６６の入射面１０６に略直角に入射するとともに、指向性の高い放射光として投影機構６６の出射面１０８から出射する。この意味において、光源レンズ６４は、コリメータレンズとして機能する。図６には、その出射面１０８上において互いに隔たった２個の注目点Ａ，Ｂにつき、それぞれの指向性特性が照度分布のグラフ（θ：半値拡がり半角）で表されている。
【０１０５】
投影光学系３２は、投影機構６６を通過した光を被写体Ｓに向かって投影するための複数枚の投影レンズ３４を含んでいる。それら投影レンズ３４は、ガラス製レンズと合成樹脂製レンズとの組合せから成るテレセントリックレンズによって構成されている。テレセントリックとは、投影光学系３２を通過する主光線が、入射側の空間では光軸に平行になり、入射瞳の位置が無限になる構成をいう。
【０１０６】
投影光学系３２は、上述のようにテレセントリック特性を持ち、その入射ＮＡが０．１程度であるため、垂直±５°以内の光のみが投影光学系３２の内部の絞り３６を通過できるように、投影光学系３２の光路が規制されている。したがって、本実施形態においては、投影光学系３２のテレセントリック性により、投影機構６６を垂直±５°で通過する光のみを投影光学系３２に投影し得る構成と相俟って、画質の向上を容易に図り得る。
【０１０７】
ここで、図８ないし図１１を参照することにより、投影部１２のハードウエア構成のうち投影機構６６を詳細に説明する。
【０１０８】
この投影機構６６は、光源としてのＬＥＤ６２からの入射光を複数種類のパターン光に選択的に変換することにより、それら複数種類のパターン光を順次被写体Ｓに投影するために設けられている。図８には、この投影機構６６が正面図で示され、図９には、この投影機構６６が部分断面側面図で示されている。
【０１０９】
図８に示すように、この投影機構６６は、シート状を成して長さ方向に延びるマスク２００を備えており、そのマスク２００はマスクモータ６５によってそのマスク２００の長さ方向に送られる。
【０１１０】
図１０には、そのマスク２００の長さ方向における一部が拡大されて正面図で示されている。このマスク２００には、前記複数種類のパターン光にそれぞれ対応する複数のフレーム２０２がマスク２００の長さ方向に並んで割り当てられている。図８に示すように、それらフレーム２０２は、選択的に前記入射光の照射領域に位置させられる。
【０１１１】
本実施形態においては、３Ｄモードの際、被写体Ｓを撮像するために８種類のパターン光が順次被写体Ｓに投影される。図１０には、パターン番号ＰＮが５であるパターン光を形成するためのフレーム２０２（図１０において「コード５」を付して示す。）と、パターン番号ＰＮが６であるパターン光を形成するためのフレーム２０２（図１０において「コード６」を付して示す。）と、パターン番号ＰＮが７であるパターン光を形成するためのフレーム２０２（図１０において「コード７」を付して示す。）とが代表的に示されている。また、校正モードの際には、フラッシュ光やパターン光が校正用冶具ＫＡに投射される。
【０１１２】
マスク２００は、各フレーム２０２ごとに、マスク２００をそれの厚さ方向に貫通する貫通穴（空気開口）２０４を、各フレーム２０２に対応するパターン光の形状に対応する形状を有する状態で備えている。図１０に示すように、いずれのフレーム２０２においても、個々の貫通穴２０４が直線的に延びるスリット状を成している。複数個のフレーム２０２のうち、複数個の貫通穴２０４を有するものにおいては、それら複数個の貫通穴２０４がストライプ状を成すように配列されている。
【０１１３】
さらに、本実施形態においては、いずれのフレーム２０２においても、各貫通穴２０４がマスク２００の長さ方向に平行に延びるように配置されている。
【０１１４】
そのマスク２００は、長さ方向と厚さ方向との双方に平行な平面内において屈曲可能である。このマスク２００は、金属製の薄いシートによって構成されている。マスク２００を構成する金属は、不透明弾性材料の一例であり、そのような材料の一例はステンレスである。このマスク２００の板厚の一例は、０．１ｍｍである。
【０１１５】
本実施形態においては、厚さ０．１ｍｍのステンレス板に対してウエットエッチングが施されることにより、そのステンレス板に複数個の貫通穴２０４がミクロン精度で形成され、それにより、マスク２００が製作されている。
【０１１６】
このマスク２００は、弾性屈曲性を有しており、後述のようにローラに巻き取られて収容されていても、そのローラから解放されれば、真っ直ぐな平面を成す原形状に復元する性質を有する。
【０１１７】
図８に示すように、投影機構６６は、マスク２００を巻き取り可能に保持しつつ送るために、ハウジング２１０を備えている。このハウジング２１０に、供給具としての供給ローラ２２０と、案内具としてのガイドローラ２２２と、送り具としての送りローラ２２４と、巻き取り具としての巻き取りローラ２２６とが、互いに平行な各軸線を有する姿勢で支持されている。それら供給ローラ２２０，ガイドローラ２２２，送りローラ２２４および巻き取りローラ２２６の軸線はいずれも、マスク２００の幅方向に平行に延びている。
【０１１８】
図９に示すように、マスク２００は、それの長さ方向における両端部においてそれぞれ、供給ローラ２２０と巻き取りローラ２２６とに結合されている。マスク２００は、さらに、それら供給ローラ２２０と巻き取りローラ２２６との間において、供給ローラ２２０寄りのガイドローラ２２２と、巻き取りローラ２２６寄りの送りローラ２２４とに支持されている。
【０１１９】
３次元形状検出装置１０の不使用状態においては、マスク２００は、供給ローラ２２０と巻き取りローラ２２６とのうち主に供給ローラ２２０に巻き付けられており、マスク２００は、この状態で３次元形状検出装置１０内において収容される。すなわち、マスク２００のうちの未使用部分は、供給ローラ２２０に巻き付けられて収容されるのであり、供給ローラ２２０は、マスク２００のうちの未使用部分を屈曲状態において収容するローラなのである。
【０１２０】
被写体Ｓの撮像が開始されると、マスク２００のうちの未使用部分は、マスクモータ６５の正回転により、供給ローラ２２０から剥がされて巻き取りローラ２２６に向かって供給される。その未使用部分が被写体Ｓの撮像に使用されると、使用済部分として、巻き取りローラ２２６に巻き取られて収容される。すなわち、巻き取りローラ２２６は、マスク２００のうちの使用済部分を屈曲状態において収容するローラなのである。
【０１２１】
被写体Ｓの撮像が終了した時点においては、マスク２００は、供給ローラ２２０と巻き取りローラ２２６とのうち主に巻き取りローラ２２６に巻き付けられ、マスク２００は、この状態で３次元形状検出装置１０内において収容される。その後、次回の撮像に備えて、マスクモータ６５の逆回転により、マスク２００は、供給ローラ２２０と巻き取りローラ２２６とのうち主に供給ローラ２２０に巻き取られ、それにより、マスク２００は、供給ローラ２２０に巻き付けられた状態で、３次元形状検出装置１０内において収容される。
【０１２２】
図９に示すように、それらガイドローラ２２２と送りローラ２２４との間に、ＬＥＤ６２からの入射光がマスク２００に照射される照射位置２２８が設定されている。マスク２００のうちそれらガイドローラ２２２と送りローラ２２４とによって両端を支持される部分が、前記設定された照射位置２２８を前記入射光に直角な方向に通過する直線部２３０を形成している。
【０１２３】
図９に示すように、本実施形態においては、マスク２００のうち供給ローラ２２０とガイドローラ２２２とによって両端を支持される部分２３２（図９において直線部より左側の部分）と、送りローラ２２４と巻き取りローラ２２６とによって両端を支持される部分２３４（図９において直線部より右の部分）とがそれぞれ、直線部２３０に対して同じ側に傾斜させられている。その傾斜角度は、小さいほど、直線部２３０に対する部分２３２，２３４の弾性曲げに起因する直線部２３０の反りを軽減するために望ましい。一方、その傾斜角度は、大きいほど、マスク２００の長さ方向においてこの投影機構６６を小型化するために望ましい。
【０１２４】
図９に示すように、マスク２００は、それの長さ方向における両端部においてそれぞれ、供給ローラ２２０と巻き取りローラ２２６とに結合されている。
【０１２５】
供給ローラ２２０は、ハウジング２１０に固定されたシャフト２４０と、そのシャフト２４０を同軸に取り囲むローラ部２４２とを含むように構成されている。ローラ部２４２は、シャフト２４０に対して同軸に相対回転可能に支持されている。このローラ部２４２にマスク２００の一端部が固定され、そのローラ部２４２の回転によってそのローラ部２４２の外周面にマスク２００が巻き付けられる。ローラ部２４２の両回転方向のうち、ローラ部２４２にマスク２００が巻き付けられる回転方向が戻り回転方向であり、ローラ部２４２からマスク２００が剥がされる回転方向が送り回転方向である。
【０１２６】
ローラ部２４２には、付勢部材としてのスプリング２４６が係合させられており、それにより、ローラ部２４２は、戻り回転方向に常時付勢されている。そのスプリング２４６は、例えば、図９に示すように、ローラ部２４２とシャフト２４０との間の半径方向隙間内において、可動部材としてのローラ部２４２と静止部材としてのシャフト２４０とに係合させられるように使用される。そのスプリング２４６は、例えば、図９に示すように、シャフト２４０の外周面に巻き付けられるリーフスプリングとして構成される。そのスプリング２４６の弾性力により、マスク２００にテンションがそのマスク２００の長さ方向に作用させられる。
【０１２７】
図８および図１０に示すように、マスク２００の両側縁部にはそれぞれ、マスク２００の長さ方向に並んだ複数個の送り穴２５０から成るパーフォレーション領域２５２が形成されている。ガイドローラ２２２および送りローラ２２４は、それら送り穴２５０に貫通してそれら送り穴に係合する歯２５４，２５６を備えている。本実施形態においては、図９に示すように、ガイドローラ２２２も送りローラ２２４も、複数個の歯２５４，２５６を、各外周面上において等間隔に並んで備えている。
【０１２８】
ガイドローラ２２２はフリーローラであるのに対し、送りローラ２２４は、マスクモータ６５によって駆動される駆動ローラである。図８に示すように、本実施形態においては、マスクモータ６５が送りローラ２２４に同軸に連結されており、送りローラ２２４がマスクモータ６５によって回転駆動される。送りローラ２２４の両回転方向のうち、マスク２００が供給ローラ２２０から剥がされる回転方向が送り回転方向であり、マスク２００が供給ローラ２２０に巻き付けられる回転方向が戻り回転方向である。
【０１２９】
図９に示すように、そのマスクモータ６５は、送りローラ２２４を回転させる機能と、それと同期して巻き取りローラ２２６を回転させる機能とを有している。そのため、マスクモータ６５は、マスク２００を送りつつ巻き取りローラ２２６によって巻き取られる正回転と、マスク２００を巻き取りローラ２２６から剥がしつつ供給ローラ２２０に供給する逆回転とを選択的に行わせられる。
【０１３０】
図８に示すように、本実施形態においては、送りローラ２２４およびマスクモータ６５と同軸かつ一体的に回転させられる回転体としての駆動プーリ２６０と、巻き取りローラ２２６と同軸かつ一体的に回転させられる回転体としての被動プーリ２６２とに、動力伝達体としてのベルト２６４が巻き掛けられている。このように構成された伝動機構２６６により、マスクモータ６５の回転力が巻き取りローラ２２６に伝達される。
【０１３１】
図８および図９に示すように、投影機構６６は、照射位置２２８においてマスクガイド２７０を備えている。そのマスクガイド２７０は、マスク２００のうちの直線部２３０の送りを案内するために設けられている。
【０１３２】
本実施形態においては、マスクガイド２７０が、マスク２００の直線部２３０をそれの厚さ方向における両側から挟む構造を有しており、具体的には、マスク２００の直線部２３０を隔てて互いに対向する一対のガイド板２７２，２７２を備えている。このマスクガイド２７０は、マスク２００をそれの長さ方向にスライド可能に保持する一方、マスク２００をそれの幅方向にはできる限り変位しないように保持する。
【０１３３】
各ガイド板２７２には、それを厚さ方向に貫通する窓２７６が形成されている。この窓２７６も、貫通穴２０４と同様に、空気開口として形成されている。ＬＥＤ６２からの入射光のうち窓２７６を通過する部分のみが、マスク２００に照射される。
【０１３４】
図１０に示すように、マスク２００には、各フレーム２０２ごとに、位置基準穴２８０とＩＤ穴領域２８２とが、マスク２００の幅方向に並んで形成されている。それら位置基準穴２８０およびＩＤ穴領域２８２は、いずれも貫通穴（空気開口）としてマスク２００に形成されている。位置基準穴２８０は、いずれかのフレームが照射位置２２８に位置していることを光学的に検出するために設けられている。一方、ＩＤ穴領域２８２は、照射位置２２８に位置しているフレームのＩＤすなわちパターン番号ＰＮを光学的に特定するために設けられている。
【０１３５】
本実施形態においては、ＩＤ穴領域２８２が、３ビットの情報によって８個のフレーム２０２すなわち８種類のパターン光をそれぞれ識別する。そのため、各フレーム２０２ごとのＩＤ穴領域２８２には、最大で３個のＩＤ穴２９０，２９２，２９４が形成される。
【０１３６】
図１１に示すように、投影機構６６は、位置基準穴２８０を光学的に検出するために、位置センサ３００を、マスク２００の幅方向位置に関して位置基準穴２８０と一致する位置に備えている。本実施形態においては、その位置センサ３００は、位置基準穴２８０を高い位置精度で検出するために、絞ったビームをマスク２００に照射するとともに、マスク２００からの反射光を絞って受光する。
【０１３７】
そのため、位置センサ３００は、発光素子としてのＬＥＤ３０２と、受光素子としてのフォトダイオード（以下、「ＰＤ」という。）３０４と、ＬＥＤ３０２のための集光素子としてのＬＥＤレンズ３０６と、ＰＤ３０４のための集光素子としてのＰＤレンズ３０８とを含んでいる。この位置センサ３００は、図７に示すように、処理部１６に電気的に接続されている。
【０１３８】
ＰＤ３０４は、マスク２００からの反射光の受光の有無に応じて変化するＰＤ信号を出力する。具体的には、ＰＤ信号は、図１２にタイミングチャートで表すように、いずれの位置基準穴２８０も位置センサ３００に対向しないために位置センサ３００からの光がマスク２００で反射して位置センサ３００に入射する場合に、ハイレベルを示す一方、いずれかの位置基準穴２８０が位置センサ３００に対向するために位置センサ３００からの光がその位置基準穴２８０を透過して位置センサ３００に入射しない場合に、ローレベルを示すように変化する。
【０１３９】
ＬＥＤレンズ３０６は、ＬＥＤ３０２からの光を集光してマスク２００に照射する集光機能を有する。ＰＤレンズ３０８は、マスク２００からの反射光を集光してＰＤ３０４に照射する集光機能を有する。それらＬＥＤレンズ３０６およびＰＤレンズ３０８により、位置基準穴２８０の位置ひいてはフレーム２０２の位置を高精度に検出することが可能となっている。
【０１４０】
図１１に示すように、投影機構６６は、さらに、ＩＤ穴２９０，２９２，２９４を光学的に検出するために、第１ないし第３のＩＤセンサ３１０，３１２，３１４を備えている。それら第１ないし第３のＩＤセンサ３１０，３１２，３１４はそれぞれ、マスク２００の幅方向位置に関して３個のＩＤ穴２９０，２９２，２９４と一致する位置に配置されている。いずれのＩＤセンサ３１０，３１２，３１４も、ＩＤ穴領域２８２に向けて光を照射する発光素子と、ＩＤ穴領域２８２からの反射光を受光する受光素子とを含んでいる。
【０１４１】
第１ないし第３のＩＤセンサ３１０，３１２，３１４の３個の受光素子はそれぞれ、ＩＤ穴領域２８２からの反射光の有無を表す信号を、信号Ｓ１ないしＳ３として出力する。それら信号Ｓ１ないしＳ３は、前述のＰＤ信号と同様に変化する。それら第１ないし第３のＩＤセンサも、位置センサ３００と同様に、図７に示すように、処理部１６に電気的に接続されている。
【０１４２】
図１２には、ＰＤ信号およびＳ１ないしＳ３信号が互いに同期して変化する様子の一例がタイミングチャートで表されている。処理部１６においては、後に詳述するが、マスクモータ６５の駆動によってマスク２００が送られている間にいずれかの位置基準穴２８０が位置センサ３００に対向したためにＰＤ信号がハイレベルからローレベルに変化した事象をトリガとして、第１ないし第３のＩＤセンサ３１０，３１２，３１４からそれぞれＳ１ないしＳ３信号がサンプリングされる。
【０１４３】
図１１に示すマスク２００の例においては、第１および第３のＩＤセンサ３１０，３１４がそれぞれ、ＩＤ穴２９０，２９４に対向するため、Ｓ１信号およびＳ３信号がそれぞれ、ハイレベルからローレベルに変化する一方、第２のＩＤセンサ３１２は、ＩＤ穴２９２に対向しないため、Ｓ２信号がハイレベルに維持される。それらサンプリングされたＳ１ないしＳ３信号のレベルの組合せにより、位置センサ３００によって検出されたフレーム２０２のＩＤすなわちパターン番号ＰＮが検出される。
【０１４４】
図７には、３次元形状検出装置１０の電気的な構成がブロック図で表されている。処理部１６はコンピュータ４００を主体として構成されており、そのコンピュータ４００は、ＣＰＵ４０２と、ＲＯＭ４０４と、ＲＡＭ４０６と、バス４０８とを含むように構成されている。
【０１４５】
ＣＰＵ４０２は、ＲＯＭ４０４に記憶されたプログラムをＲＡＭ４０６を利用しつつ実行することにより、レリーズボタン４０の操作状態の検出、ＣＣＤ７０からの画像データの取込み、その取り込まれた画像データの転送および格納、モード切替スイッチ４２の操作状態の検出等の各種処理を行う。
【０１４６】
ＲＯＭ４０４には、カメラ制御プログラム４０４ａと、撮像処理プログラム４０４ｂと、輝度画像生成プログラム４０４ｃと、コード画像生成プログラム４０４ｄと、コード境界抽出プログラム４０４ｅと、レンズ収差補正プログラム４０４ｆと、三角測量演算プログラム４０４ｇと、マスクモータ制御プログラム４０４ｈと、テーブルモータ制御プログラム４０４ｉ、校正プログラム４０４ｊとが格納されている。
【０１４７】
カメラ制御プログラム４０４ａは、３次元形状検出装置１０全体の制御を実行するために実行され、その制御には、図１３にフローチャートで概念的に表されているメイン処理が含まれる。
【０１４８】
撮像処理プログラム４０４ｂは、被写体Ｓの３次元形状を検出するためにパターン光が投影された被写体Ｓを撮像してパターン光有画像を取得し、さらに、パターン光が投影されていない被写体Ｓを撮像してパターン光無画像を取得するために実行される。
【０１４９】
輝度画像生成プログラム４０４ｃは、撮像処理プログラム４０４ｂの実行によって被写体Ｓについて取得された各画素のＲＧＢ値に基づき、複数枚のパターン光有画像にそれぞれ対応する複数枚の輝度画像が生成される。
【０１５０】
本実施形態においては、同じ被写体Ｓに対して複数種類のパターン光が時系列に順次投影され、各パターン光が投影されるごとに被写体Ｓが撮像される。そのようにして撮像された複数枚のパターン光有画像の各々について各画素のＲＧＢ値が取得され、その結果、パターン光の種類と同数の輝度画像が生成される。
【０１５１】
コード画像生成プログラム４０４ｄは、輝度画像生成プログラム４０４ｃの実行によって生成された複数枚の輝度画像それぞれに対する閾値処理により生成される２値化画像から、各画素毎に空間コードが割り当てられたコード画像を生成するために実行される。
【０１５２】
概略的に説明するに、このコード画像生成プログラム４０４ｄが実行されると、複数種類のパターン光のうちパターンライン間の間隔が最も狭いものが投影された被写体Ｓの輝度画像におけるパターンライン間の間隔が周期として取得され、その周期の輝度画像全体における分布が周期分布として取得される。
【０１５３】
このコード画像生成プログラム４０４ｄが実行されると、さらに、その取得された周期分布に従ってサイズが変化する可変窓が各パターン光ごとの輝度画像にローカルに設定されることにより、前記可変窓を用いたフィルタ処理により輝度画像全体に対して閾値がローカルに算出されて設定される。そのようにして設定された閾値の分布を表す閾値画像と各パターン光ごとの輝度画像との関係から、各パターン光ごとに２値化画像が生成される。
【０１５４】
可変窓を用いたフィルタ処理により輝度画像全体に対して閾値をローカルに算出する技術は、本出願人の特願２００４−２８５７３６号明細書に詳細に開示されており、その明細書を参照することによってその明細書の内容を本明細書に引用する。
【０１５５】
コード境界抽出プログラム４０４ｅは、コード画像生成プログラム４０４ｄの実行によって生成されたコード画像と、輝度画像生成プログラム４０４ｃの実行によって生成された輝度画像とを利用することにより、コードの境界座標をサブピクセル精度で求めるために実行される。
【０１５６】
レンズ収差補正プログラム４０４ｆは、コード境界抽出プログラム４０４ｅの実行によってサブピクセル精度で求められたコードの境界座標に対して、撮像光学系３０の収差補正を行うために実行される。
【０１５７】
三角測量演算プログラム４０４ｇは、レンズ収差補正プログラム４０４ｆの実行によって収差補正が行われたコードの境界座標から、その境界座標に関する実空間の３次元座標を演算するために実行される。
【０１５８】
マスクモータ制御プログラム４０４ｈは、複数種類のパターン光を順次被写体Ｓに投影すべくマスクモータ６５を制御するために実行される。このマスクモータ制御プログラム４０４ｈは、図３３にフローチャートで概念的に表されている。
【０１５９】
テーブルモータ制御プログラム４０４ｉは、回転テーブル１８４を被写体Ｓと共に割り出し回転させるべくテーブルモータ１９４を制御するために実行される。このテーブルモータ制御プログラム４０４ｉは、他の処理と共に図３１にフローチャートで概念的に表されている。
【０１６０】
校正プログラム４０４ｊは、被写体の３次元形状を算出するために用いるシステムパラメータの校正を実行する。すなわち、被写体の実空間３次元座標系の３次元座標演算に用いるカメラパラメータとプロジェクタパラメータから構成されるシステムパラメータを校正する。この校正プログラム４０４ｊは、図１４，図２２，図２５にフローチャートで概念的に表されている。
【０１６１】
本実施形態においては、前述の一連のパターン光の被写体Ｓへの投影および被写体Ｓの撮像が、被写体Ｓの回転位置が等間隔で割り出されるごとに行われる。具体的には、被写体Ｓの回転位置が９０度ずつ間欠的に割り出され、各割り出し位置において、一連のパターン光の投影および被写体Ｓの撮像が行われる。その結果、被写体Ｓの外面の全体領域が４つの部分領域に分割され、各部分領域ごとに立体画像（３次元形状情報）が取得される。それら立体画像が、互いにオーバラップする部分を除去する処理が施されて互いに結合されることにより、被写体Ｓに対応する１つの全体画像がステッチ画像として生成される。
【０１６２】
さらに、本実施形態においては、その生成されたステッチ画像に、同じ被写体Ｓについて計測された表面色情報がマッピングされることにより、ステッチテクスチャが生成される。これにより、被写体Ｓについての一連の３次元入力処理が終了する。
【０１６３】
図７に示すように、ＲＡＭ４０６には、パターン光有画像格納部４０６ａと、パターン光無画像格納部４０６ｂと、輝度画像格納部４０６ｃと、コード画像格納部４０６ｄと、コード境界座標格納部４０６ｅと、収差補正座標格納部４０６ｇと、３次元座標格納部４０６ｈと、周期分布格納部４０６ｐと、閾値画像格納部４０６ｑと、２値化画像格納部４０６ｒと、ステッチ画像格納部４０６ｓと、ステッチテクスチャ格納部４０６ｔと、システムパラメータ格納部４０６ｕと、ワーキングエリア４１０とがそれぞれ記憶領域として割り当てられている。
【０１６４】
パターン光有画像格納部４０６ａは、撮像処理プログラム４０４ｂの実行によって撮像されたパターン光有画像を表すパターン光有画像データを格納する。パターン光無画像格納部４０６ｂは、撮像処理プログラム４０４ｂの実行によって撮像されたパターン光無画像を表すパターン光無画像データを格納する。
【０１６５】
輝度画像格納部４０６ｃは、輝度画像生成プログラム４０４ｃの実行によって生成された輝度画像を表すデータを格納する。コード画像格納部４０６ｄは、コード画像生成プログラム４０４ｄの実行によって生成されたコード画像を表すデータを格納する。コード境界座標格納部４０６ｅは、コード境界抽出プログラム４０４ｅの実行によってサブピクセル精度で抽出された各コードの境界座標を表すデータを格納する。
【０１６６】
収差補正座標格納部４０６ｇは、レンズ収差補正プログラム４０４ｆの実行によって収差補正が行われたコードの境界座標を表すデータを格納する。３次元座標格納部４０６ｈは、三角測量演算プログラム４０４ｇの実行によって演算された実空間の３次元座標を表すデータを格納する。
【０１６７】
周期分布格納部４０６ｐ、閾値画像格納部４０６ｑおよび２値化画像格納部４０６ｒは、コード画像生成プログラム４０４ｄの実行によって取得された周期分布、閾値画像および２値化画像を表すデータをそれぞれ格納する。
【０１６８】
ステッチ画像格納部４０６ｓは、前述のステッチ画像を格納し、ステッチテクスチャ格納部４０６ｔは、前述のステッチテクスチャを格納する。また、システムパラメータ格納部４０６ｕは、前述のシステムパラメータを格納する。ワーキングエリア４１０は、ＣＰＵ４０２がその動作のために一時的に使用するデータを格納する。
【０１６９】
ここで、システムパラメータ格納部４０６ｕに格納するシステムパラメータについて説明する。
【０１７０】
本実施形態における３次元形状検出装置１０では、３次元空間の１点を、平面と直線の交点、２本の直線の交点として決定するアクティブ型３次元画像計測法を用いる。すなわち、所定の位置にある投影部から投影されるパターン光と、所定の位置にある撮像部からの視線とを、それぞれ平面と直線として捉え、投影部及び撮像部による結像光学系をその位置及び姿勢などを含むシステムパラメータによってモデル化し、このシステムパラメータを用いて３次元形状を計測する。システムパラメータは、カメラパラメータ及びプロジェクタパラメータとから構成されるパメラメータであり、以下具体的に説明する。
【０１７１】
カメラパラメータは、以下の３×４のパラメータで表される。このパラメータには、撮像部に関して、その位置、姿勢、画角などのデータが含まれることになる。言い換えれば、撮像部からの視線を表す。
【０１７２】
【数１】
2007212159.tif 000003
【０１７３】
このカメラパラメータにより、実空間３次元座標（Ｘ，Ｙ，Ｚ）と撮像部における歪曲収差補正後の撮像座標系の座標（ccdcx，ccdcy）との関係は、以下の式（１）のように表すことができる。
【０１７４】
【数２】
2007212159.tif 000004
【０１７５】
また、プロジェクタパラメータは、以下の２×４のパラメータで表される。このパラメータには、投影部に関して、その位置、姿勢などのデータが含まれることになる。言い換えれば、パターン光の平面を表す。
【０１７６】
【数３】
2007212159.tif 000005
【０１７７】
このプロジェクタパラメータにより、実空間３次元座標（Ｘ，Ｙ，Ｚ）と空間コード境界値code（或いは、パターン光境界位置を示す座標）との関係は、以下の式（２）にように表すことができる。
【０１７８】
【数４】
2007212159.tif 000006
【０１７９】
以上のカメラパラメータ及びプロジェクタパラメータを元に、以下の式（３）によって被写体Ｓの実空間３次元座標Ｖ＝（Ｘ，Ｙ，Ｚ）を求めることができる。
【０１８０】
【数５】
2007212159.tif 000007
【０１８１】
以上のようなシステムパラメータ、すなわちカメラパラメータ及びプロジェクタパラメータがシステムパラメータ格納部４０６ｕに格納されることになる。
【０１８２】
ここで、図１３を参照することにより、カメラ制御プログラム４０４ａを説明する。このカメラ制御プログラム４０４ａがコンピュータ４００によって実行されることにより、前述のメイン処理が実行される。
【０１８３】
このメイン処理においては、まず、ステップＳ１０１（以下、単に「Ｓ１０１」で表す。他のステップについても同じとする。）において、バッテリ７４を含む電源がＯＮされる。次に、Ｓ１０２において、処理部１６、周辺インタフェイス等が初期化される。
【０１８４】
続いて、Ｓ１０３において、モード切替スイッチ４２の操作状態を判別するためにキースキャンが行われ、その後、Ｓ１０４において、モード切替スイッチ４２の操作によって校正用モードが選択されたか否かが判定される。今回は、校正用モードが選択されたと仮定すれば、判定がＹＥＳとなり、Ｓ１０５において、システムパラメータの校正処理が実行され、続いて、Ｓ１０３に戻る。
【０１８５】
また、Ｓ１０４において、校正用モードが選択されなかったと仮定すれば、判定がＮＯとなり、Ｓ１０６において、モード切替スイッチ４２の操作によって３Ｄモードが選択されたか否かが判定される。今回は、３Ｄモードが選択されたと仮定すれば、判定がＹＥＳとなり、Ｓ１０７において、前述の間引き画像処理モードが設定される。このＳ１０７の実行後、後に詳述するＳ１０８が実行され、続いて、Ｓ１０３に戻る。
【０１８６】
これに対し、今回は、モード切替スイッチ４２の操作によって３Ｄモードが選択されなかったと仮定すれば、Ｓ１０６の判定がＮＯとなり、Ｓ１０９において、モード切替スイッチ４２の操作によってオフモードが選択されたか否かが判定される。今回は、モード切替スイッチ４２の操作によってオフモードが選択されたと仮定すれば、判定がＹＥＳとなり、直ちに今回のメイン処理が終了するが、今回は、モード切替スイッチ４２の操作によってオフモードが選択されなかったと仮定すれば、判定がＮＯとなり、Ｓ１０３に戻る。
【０１８７】
図１４には、図１３におけるＳ１０５が校正処理ルーチンとしてフローチャートで概念的に表されている。この構成理ルーチンには、校正プログラム４０４ｊが組み込まれており、この校正プログラム４０４ｊは、図１４におけるＳ５０１およびＳ５０２、図２２におけるＳ５１０ないしＳ５１２、図２５におけるＳ５２０ないしＳ５２２を含むように構成されている。この校正処理ルーチンの実行により、システムパラメータの生成が行われ、このように生成されたシステムパラメータがシステムパラメータ格納部４０６ｕに格納される。この処理は、ＣＰＵ４０２がＲＯＭ４０４から校正プログラム４０４ｊを読み出して実行することによって実現するものであり、処理部１６による処理である。
【０１８８】
この校正処理ルーチンは、図１５に示すように校正用治具ＫＡを回転テーブル部ＲＴに載置した後、ユーザがモード切替スイッチ４２を操作することによって、校正用モードが設定されることによって、開始される。なお、ユーザは回転テーブル１８４の回転位置を初期位置に合わせるため、フレーム１８６に記されたマーク１８２と、回転テーブル１８４の位置に記されたマーク１８１が一致する様、テーブルを手動で回転させておく。
【０１８９】
校正用モードが設定されると、処理部１６は、Ｓ５０１において、カメラパラメータのキャリブレーションを行い、その後Ｓ５０２において、プロジェクタパラメータのキャリブレーションが行われる。このようにキャリブレーションされたカメラパラメータ及びプロジェクタパラメータは、システムパラメータ格納部４０６ｕに格納される。
【０１９０】
ここで、校正用冶具ＫＡの校正について、図１６を用いて具体的に説明する。図面上校正用冶具ＫＡは、基面である第１の平面上に位置し、上下方向に延在し、上下方向が開放された複数の第１の平面部５０１ａ，５０１ｂ，５０１ｃと、基面と異なる平面であってこの基面に平行な平面である第２の平面上に位置して上下方向に延在し、上下方向が開放された第２の平面部５０２ａ，５０２ｂとを、上下方向と交差する左右方向に交互に配置する構成を有している。言い換えれば、凹条溝である第１の平面部と凸条溝である第２の平面部とが交互に配置された形状とも表現できる。なお、校正用冶具ＫＡの方向は、図１５に示すように、３次元形状検出装置１０の回転テーブル１８４の所定位置に校正用冶具ＫＡを配置したときに、台座部ＨＤ側となる方を下側とし、その反対方向を上側として説明する。このように２平面上にそれぞれ少なくとも離隔した２つ以上の平面部分をその表面に有すればよいため、校正用治具の構成を複雑にせず、しかもキャリブレーションのために位置を移動することなく、システムパラメータのキャリブレーションを可能とする校正用冶具を提供することができる。また、この校正用冶具ＫＡは、図１６に示すように、左右対称に形成されている。すなわち、校正用冶具ＫＡは、上下方向と直交する左右方向における中心を通る上下方向の軸に対して、左右対称に形成している。したがって、校正用治具の構成を複雑にせず、たとえば、校正用冶具を上下反転した場合でもシステムパラメータのキャリブレーションを可能とする校正用冶具を提供することができる。
【０１９１】
この校正用冶具ＫＡは、アルミニュウム材を押し出し加工により、基面表面を第１の平面部５０１ａ，５０１ｂ，５０１ｃと第２の平面部５０２ａ，５０２ｂとを有するように形成したものである。このように校正用冶具ＫＡをアルミ押し出し材としているため、校正用冶具ＫＡを低コストで生産することができ、また校正用冶具ＫＡの重量を軽くすることができる。
【０１９２】
また、校正用冶具ＫＡを荷重成型加工により形成するようにしてもよい。すなわち、略正方形の基面を有する薄肉状の鉄板などの金属板を所定の金型上に配置し、プレス機によってこの金属板に荷重をかけることによって金型に応じた形状に加工する。このように校正用冶具ＫＡを鉄板などの金属板をプレス成型しているため、校正用冶具ＫＡを低コストで生産することができる。
【０１９３】
また、校正用冶具ＫＡは、上述のように一体的に構成するのではなく、複数の部材で形成するようにしてもよい。たとえば、図１７に示すように、方形板５１０の基面５００に断面方形状或いは断面凹状の長手状の部材５１１ａ，５１１ｂを所定の間隔をおいてその長手方向が上下となるように取り付けることによって、基面上に複数の第１の平面部５０１ａ，５０１ｂ，５０１ｃを設けると共に、上述の長手状の部材の一面を第２の平面部５０２ａ，５０２ｂとを設けるのである。方形板５１０及び長手状の部材５１１ａ，５１１ｂは、金属部材で形成しても、樹脂部材で形成してもよい。このように複数の部材で形成するようにしているために、校正用冶具ＫＡの形状を高精度で形成することができる。
【０１９４】
また、校正用冶具ＫＡは、ＡＢＳ樹脂などのプラスティク材を射出整形することによって形成するようにしてもよい。このように射出成型を用いることにより、校正用冶具ＫＡの低コストで製造することができる他、後述の校正用指標の同時成形が可能となるため生産工程の軽減等を図ることができる。
【０１９５】
校正用冶具ＫＡには、図１６に示すように、複数の校正用指標が第１の平面部及び第２の平面部の所定位置に配置されている。すなわち、第１の平面部５０１ａ，５０１ｂ，５０１ｃにはそれぞれ上下方向に所定間隔で３つの校正用指標５１２ａ〜５１２ｃ，５１２ｄ〜５１２ｆ，５１２ｇ〜５１２ｉが、第２の平面部５０２ａ，５０２ｂにはそれぞれ５１３ａ〜５１３ｃ，５１３ｄ〜５１３ｆが配置されている。
【０１９６】
ここで、校正用指標は、カメラパラメータを算出するために設けられるものであり、少なくとも複数の第１の平面部と複数の第２の平面部とにそれぞれに上下に離散して３以上、かつ第１の平面部ごと及び第２の平面部ごとに少なくとも１以上の校正用指標を設けることが望ましい。上下に離散して３以上の校正用指標を設けることにより、また、第１の平面部ごと及び第２の平面部ごとに少なくとも１以上の校正用指標を設けることにより、カメラパラメータのキャリブレーション精度を向上させることができる。
【０１９７】
また、各校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆは、この校正用指標を除く他の部分と異なる表面加工処理によって、この校正用指標を除く他の部分と反射率を異ならしめている。すなわち、押し出し成形したアルミの表面をサンドブラスト加工等により表面加工処理を施して他の部分と反射率を異ならしめた校正用指標を形成するのである。
【０１９８】
この校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆは、上記表面加工処理とは別の方法で形成するようにしてもよい。たとえば、図１８に示すように、押し出し成形したアルミの表面に円形の開口穴を形成することによって校正用指標とするのである。このように校正用指標を開口穴とすることにより、校正用指標の形成を容易にすることができる。特に、校正用冶具ＫＡを金属板の荷重成型加工により形成する場合、この開口穴を貫通孔とせず凹形状とすれば、一度の加工で校正用指標を有する校正用冶具ＫＡを形成できる。
【０１９９】
また、反射率と異なるシール（たとえば、黒色のシール）を貼り付けることによって校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆを形成するようにしてもよい。このようにシールで校正用指標を形成すれば、校正用指標を他の部分と著しく異なる色にすることができるため校正用冶具ＫＡを撮像したときの画像において校正用指標の識別の精度が向上する。
【０２００】
また、反射率の異なるインク（たとえば、黒インク）による印刷処理によって校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆを形成するようにしてもよい。このように印刷処理で校正用指標を形成すれば、上記シールと同様に、校正用指標を他の部分と著しく異なる色にすることができるため校正用冶具ＫＡを撮像したときの画像において校正用指標の識別の精度が向上する。しかも、シールのように剥れる可能性も少ない。
【０２０１】
ここで、全ての校正用指標を同一の円形状とするのではなく、図１９に示すように、一部又は全部を三角形状（図１９においては、５１２ｅのみ三角形状でその他は円形状）とするようにしてもよい。このようにすれば、校正用冶具ＫＡの上下判別が可能となり、しかも、円形状と同様に、重心と中心が一致しているため、中心位置の判別が容易となる。
【０２０２】
また、この校正用冶具ＫＡは、システムパラメータのキャリブレーション時に、回転テーブル１８４の所定位置に載置される。所定位置への載置にずれが発生すると、キャリブレーションが正確に行えない。図２０に示すように、校正用冶具ＫＡに回転テーブル１８４と位置決め固定のための嵌合部を設けるようにし、所定位置への載置のずれを防止することができる。
【０２０３】
すなわち、一の第１の平面部５０１ａの下端を他の第１の平面部５０１ｂ，５０１ｃの下端よりも下方に突出させて第１嵌合部５０３ａとすると共に、一の第２の平面部５０２ｂの下端を他の第２の平面部５０２ａの下端よりも下方に突出させて第２嵌合部５０３ｂとする。一方、回転テーブル１８４には、図２１に示すように、第１嵌合部５０３ａと嵌合するための細長状の開口部１８３ａと、第２嵌合部５０３ｂと嵌合するための細長状の開口部１８３ｂとが設けられている。また、第１及び第２嵌合部５０３ａ，５０３ｂを開口部１８３ａ，１８３ｂに差し込み所定位置に校正用冶具ＫＡを配置した後、この校正用冶具ＫＡが測定ヘッドＭＨに対して一定の角度内で対向することができるように、回転テーブル１８４の角度を合わせる。このとき、回転テーブル１８４の角度を合わせる目安とするために、フレーム１８６にマーク１８２、回転テーブル１８４にマーク１８１がそれぞれ形成されている。
【０２０４】
このように校正用冶具ＫＡの下面における前後左右の異なる位置に嵌合部を配置しているために、安定して校正用冶具ＫＡを回転テーブル１８４に配置することができ、しかも、第１及び第２嵌合部５０３ａ，５０３ｂを開口部１８３ａ，１８３ｂに差し込むだけでよいため所定位置への配置が極めて容易となる。
【０２０５】
また、実空間３次元座標系の一軸が通る平面上に複数の第２の平面部５０２ａ，５０２ｂが配置されるように所定位置を決定することにより、実際の３次元計測に即した冶具構成となる。すなわち、実際に物体を３次元測定する場合、回転テーブル１８４の中心付近に被写体Ｓを置いて測定するが、測定できる範囲は、投影部１２及び撮像部１４に面した面、つまり実空間３次元座標系の１軸である回転テーブル１８４の回転軸よりも前にある面を測定していることになる。従って、遠い平面上に実空間３次元座標系の１軸を通し、近い面にもう１つの面を設定することが、上述のように配置することにより実際の３次元計測と同様の状態で校正を行うことになり、精度の高い校正が可能になる。
【０２０６】
なお、複数の第２の平面部５０２ａ，５０２ｂが複数の第１の平面部５０１ａ，５０１ｂ，５０１ｃよりも測定ヘッドＭＨ側にある場合には、実空間座標系の一軸が通る平面上に複数の第１の平面部５０１ａ，５０１ｂ，５０１ｃが配置されるように所定一を決定することが望ましい。
【０２０７】
以上のように形成された校正用冶具ＫＡを用いることにより、Ｓ５０１のカメラキャリブレーションとＳ５０２のプロジェクタキャリブレーションが行われる。
【０２０８】
図２２には、図１４におけるＳ５０１がカメラキャリブレーション処理ルーチンとしてフローチャートで概念的に表されている。
【０２０９】
このカメラキャリブレーション処理においては、まず、Ｓ５１０において、投影部１２からパターン光を投影しない状態で、図２３に示すように、校正用治具ＫＡ全体がフラッシュ２６よりフラッシュ投光された状態で、校正用冶具ＫＡが撮像部１４によって撮像され、校正用冶具ＫＡの撮像画像が取得される。撮像部１４で取得された撮像画像は、ＣＣＤインタフェイス８８を介して、処理部１６に入力される。
【０２１０】
処理部１６に入力された校正用冶具ＫＡの撮像画像のデータは、Ｓ５１１において、処理部１６によって所定の処理が施された後、モニタＬＣＤドライバ７２に出力され、モニタＬＣＤ４４に表示される。このようにモニタＬＣＤ４４に表示される校正用冶具ＫＡの撮像画像の例を図２４に示す。
【０２１１】
図２４に示すように、撮像部１４が撮影した校正用冶具ＫＡ全体の撮像画像（以下、「全体画像」とも呼ぶ。）がモニタＬＣＤ４４の一部の領域である右上部領域６０１に表示される。この領域６０１に表示される校正用冶具ＫＡ全体の撮像画像上には、方形状の枠が重ねて表示される。領域６０１に表示された全体画像のうち、この方形状の枠で囲われた部分の画像（以下、「部分画像」ともいう。）が、領域６０１を除いた領域６０２に表示される。すなわち、部分画像が拡大されて領域６０１よりも大きな領域である領域６０２に表示される。
【０２１２】
また、領域６０２には、上記のように部分画像を表示すると共に、この部分画像上に校正用指標を指定するための方形状の枠６０３（以下、「指標特定枠６０３」とする。）が表示される。この方形状の指標特定枠６０３は、指標特定枠操作手段である４方向カーソルキー４３を操作することによって、部分画像上の位置を移動可能に処理部１６によって処理される。
【０２１３】
ユーザは、モニタＬＣＤ４４に表示された部分画像上で指標特定枠６０３を移動させ、この指標特定枠６０３が校正用指標を囲む位置になるように４方向カーソルキー４３を操作する。このように指標特定枠６０３を校正用指標を含む領域に移動させたあと、４方向カーソルキー４３の中心に位置する決定ボタン（図示せず）を押下することによって、この校正用指標を含む領域を指定する。
【０２１４】
処理部１６は、このように校正用指標を含む領域の指定があったことを検出すると、指定された領域から校正用指標の中心を検出する。校正用指標の中心の検出は、指標特定枠６０３で囲われた画像から色の異なる部分を抽出し、このように抽出した部分の重心を求めることにより行われる。
【０２１５】
ユーザは、上記校正用指標を含む領域の指定を、全ての校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆについて行うことによって、Ｓ５１１における校正用指標の位置認識及びその中心位置の推定処理が行われる。このように指標特定枠６０３によって校正用指標を含む領域の指定を行うため、校正用指標の位置特定を容易に行うことができる。また、校正用指標の中心位置を特定した校正用指標からその重心を算出することによって行うようにしているため、校正用指標の中心位置の算出精度が増す。なお、以上の処理を処理部１６が動的に行うことも可能であるが、校正用指標が他の部分との識別をするための処理プログラムが複雑となり、校正用冶具ＫＡにおける校正用指標の状態によっては、その精度を向上させることが困難となる場合が多い。
【０２１６】
校正用指標の中心位置の推定が終了すると、Ｓ５１２において、この推定結果に基づいて、カメラパラメータを算出する。
【０２１７】
校正用冶具ＫＡの校正用指標５１２ａ〜５１２ｉ、５１３ａ〜５１３ｆの中心位置は、実空間３次元系の座標の値が既知であり、それぞれ以下のように設定されている。
【０２１８】
（Ｘ０，Ｙ０，Ｚ０），・・・，（Ｘ１４，Ｙ１４，Ｚ１４）
この設定は、校正プログラム４０４ｊに予め記述しておくことによって行われる。
【０２１９】
また、それぞれの校正用指標に対応する歪曲収差補正済み撮像部空間座標は、以下のように設定されている。
【０２２０】
（ｃｃｄｘ０，ｃｃｄｙ０），・・・，（ｃｃｄｘ１４，ｃｃｄｘ１４）
この設定も、実空間３次元系の座標の値と同様に、校正プログラム４０４ｊに予め記述しておくことによって行われる。
【０２２１】
そして、処理部１６は、以下の式（４）を演算することによって、カメラパラメータを算出する。
【０２２２】
【数６】
2007212159.tif 000008
【０２２３】
このように算出されたカメラパラメータは、処理部１６によって、システムパラメータ格納部４０６ｕに格納される。
【０２２４】
図２５には、図１４におけるＳ５０２がプロジェクタキャリブレーション処理ルーチンとしてフローチャートで概念的に表されている。
【０２２５】
このプロジェクタキャリブレーション処理においては、まず、Ｓ５２０において、パターン光投光手段としての投影部１２からパターン光を投影して校正用冶具ＫＡを照らす。すなわち、校正用冶具ＫＡにパターン光を投光する。このパターン光は、たとえば図２６に示すように、校正用治具ＫＡに明暗の３つ以上の境界が現れるようなパターン光であり、このようなパターン光を投射することができるような貫通穴２０４がマスク２００の一フレームに形成されており、このようなフレームが選択される。このようにパターン光が投光された状態で、校正用冶具ＫＡが撮像部１４によって撮像され、校正用冶具ＫＡの撮像画像が取得される。撮像部１４で取得された撮像画像は、ＣＣＤインタフェイス８８を介して、処理部１６に入力される。
【０２２６】
処理部１６に入力された校正用冶具ＫＡの撮像画像のデータは、Ｓ５２１において、処理部１６によって所定の処理が施された後、モニタＬＣＤドライバ７２に出力され、モニタＬＣＤ４４に表示される。このようにモニタＬＣＤ４４に表示される校正用冶具ＫＡの撮像画像の例を図２７に示す。
【０２２７】
図２７に示すように、撮像部１４が撮影した校正用冶具ＫＡ全体の撮像画像（以下、「パターン光全体画像」とも呼ぶ。）がモニタＬＣＤ４４の一部の領域である右上部領域７０１に表示される。この領域７０１に表示される校正用冶具ＫＡ全体の撮像画像上には、方形状の枠が重ねて表示される。領域７０１に表示されたパターン光全体画像のうち、この方形状の枠で囲われた部分の画像（以下、「パターン光部分画像」ともいう。）が、領域７０１を除いた領域７０２に表示される。すなわち、パターン光部分画像が拡大されて領域７０１よりも大きな領域である領域７０２に表示される。
【０２２８】
また、領域７０２には、上記のようにパターン光部分画像を表示すると共に、この部分画像上にパターン光の境界を含む領域を指定するための方形状の枠７０３（以下、「パターン光境界特定枠７０３」とする。）が表示される。この方形状のパターン光境界特定枠７０３は、パターン光境界特定枠操作手段である４方向カーソルキー４３を操作することによって、パターン光部分画像上の位置を移動可能に処理部１６によって処理される。
【０２２９】
ユーザは、モニタＬＣＤ４４に表示された部分画像上でパターン光境界特定枠７０３を移動させ、このパターン光境界特定枠７０３がパターン光境界を囲む位置になるように４方向カーソルキー４３を操作する。このようにパターン光境界特定枠７０３をパターン光境界を囲む領域に移動させたあと、４方向カーソルキー４３の決定ボタン（図示せず）を押下することによって、このパターン光境界を囲む領域を指定する。パターン光境界をサブピクセル精度で算出する技術については、本出願人の特願２００４−１０５４２６号明細書に詳細に記載されているため、その特許出願を参照することにより容易に実施可能である。具体的には、指定された領域内の各画素の輝度値の平均を計算し、それを閾値とする。その閾値と領域内の画素を比較し、閾値より小さければ０、大きければ２５５とすることにより、２値化画像を生成する。２値化画像を参照して、領域幅（ｃｃｄｘ方向）中央で明暗変化（０→２５５あるいは２５５→０）する画素の位置を求める。そして、求めた画素ｃｃｄｙ方向について、輝度の変化の近似式（３次乃至５次程度）を求める。この近似式と閾値の交点を求めることにより、サブピクセル精度でパターン光境界を求めることができる。
【０２３０】
処理部１６は、このようにパターン光の境界を含む領域の指定があったことを検出すると、指定された領域からパターン光の境界位置を検出する。そして、パターン光境界特定枠７０３で囲われた画像からパターン光境界線を抽出することによって行う。
【０２３１】
ユーザは、上記パターン光の境界を含む領域の指定を、第１の平面部５０１ａ，５０１ｂ，５０１ｃ及び第２の平面部５０２ａ，５０２ｂごとに形成されるパターン光の境界の数だけ行う。すなわち、本実施形態における校正用冶具ＫＡでは、１０回（５平面×２パターン光境界）繰り返し行うことになる。このようにパターン光境界特定枠７０３によってパターン光の境界を含む領域の指定を行うため、パターン光の境界位置の特定を容易に行うことができると共に、パターン光の境界位の算出精度が増す。なお、以上の処理を処理部１６が動的に行うことも可能であるが、パターン光の境界位置を識別するための処理プログラムが複雑となり、校正用冶具ＫＡにおけるパターン光の境界の状態によっては、その精度を向上させることが困難となる場合が多い。
【０２３２】
パターン光の境界位置の算出が終了すると、Ｓ５２２において、この算出結果に基づいて、プロジェクタパラメータを算出する。
【０２３３】
プロジェクタパラメータの算出は、パターン光全体画像から、校正用冶具ＫＡ上のパターン光境界を通る画素の位置であって、撮像歪曲収差補正後の撮像空間領域を（ｃｃｄｃｘ，ｃｃｄｃｙ）とする。パターン光境界と画素位置との組み合わせを、第１の平面部５０１ａ，５０１ｂ，５０１ｃ及び第２の平面部５０２ａ，５０２ｂごとにそれぞれ形成されるパターン光の２つの境界上にある１０個の画素の位置とし、下記の式（５）を用いて、プロジェクタパラメータを算出する。
【０２３４】
【数７】
2007212159.tif 000009
【０２３５】
ここで、上述の式（５）における実空間３次元座標（Ｘ，Ｙ，Ｚ）は、校正用冶具ＫＡ上の各平面部５０１ａ，５０１ｂ，５０１ｃ，５０２ａ，５０２ｂは、Ｘ−Ｙ平面に平行で、Ｚ値が既知であるとする。
【０２３６】
式（２）において、媒介変数Ｈｃを消去すると、以下のように表すことができる。
【０２３７】
【数８】
2007212159.tif 000010
【０２３８】
そして、上述のようにＺ値は既知であるとして整理すると、以下のように表すことができる。
【０２３９】
【数９】
2007212159.tif 000011
【０２４０】
Ｄの逆行列が存在すると仮定すると、Ｕ＝Ｄ−1×Ｅとなり、実空間３次元座標（Ｘ，Ｙ，Ｚ）の算出が可能となる。すなわち、実空間３次元座標（Ｘ，Ｙ，Ｚ）は、カメラ歪曲収差補正後の撮像系空間座標（ｃｃｄｃｘ，ｃｃｄｃｙ）から変換される。このように算出した実空間３次元座標（Ｘ，Ｙ，Ｚ）を、式（５）を用いてプロジェクタパラメータを算出する。
【０２４１】
このように算出されたプロジェクタパラメータは、処理部１６によって、システムパラメータ格納部３０６ｕに格納される。以上のようにして、システムパラメータの校正が行われる。
【０２４２】
ところで、Ｓ５２１では、校正用治具ＫＡに明暗の３つ以上の境界が現れるようなパターン光を投射するようにしたが、たとえば、図２８，図２９に示すように、校正用治具ＫＡに明暗の境界が異なる複数のパターン光をパターン光投光手段としての投影部１２から校正用治具ＫＡへ投光するようにしてもよい。そして、このように撮像部１４によって校正用治具ＫＡを投光したパターン光ごとに撮像画像を取得し、これらの複数の撮像画像からパターン光の境界を検出する第２の境界検出し、このように検出したパターン光の境界を用いてシステムパラメータを校正するのである。
【０２４３】
また、空間コード法によって、プロジェクタパラメータの算出を行うようにしてもよい。空間コード法による場合には、Ｓ５２０〜Ｓ５２２の手順を以下のように行う。
【０２４４】
まず、Ｓ５２０において、パターン光投光手段としての投影部１２から校正用治具ＫＡに明暗の境界が異なる複数のパターン光を投光する。すなわち、投影部１２によって、複数種類のパターン光が時系列に順次校正用冶具ＫＡに投光される。そして、各パターン光が投影されるごとに校正用冶具ＫＡが撮像される。そのようにして撮像された複数枚のパターン光有画像の各々について各画素のＲＧＢ値が取得され、その結果、パターン光の種類と同数の輝度画像が生成される。
【０２４５】
撮像部１４で取得された撮像画像は、ＣＣＤインタフェイス８８を介して、処理部１６に入力される。処理部１６は、コード画像生成プログラム４０４ｄによる処理（後述のＳ４００２の処理）と同様に、生成された複数枚の輝度画像それぞれに対する閾値処理により２値化画像を生成し、各画素毎に空間コードが割り当てられた空間コード画像を生成する。
【０２４６】
処理部１６に入力された校正用冶具ＫＡの撮像画像のデータは、Ｓ５２１において、処理部１６によって所定の処理が施された後、モニタＬＣＤドライバ７２に出力され、モニタＬＣＤ４４に表示される。このようにモニタＬＣＤ４４に表示される校正用冶具ＫＡの撮像画像は、上述した図２７と同様に表示される。
【０２４７】
ユーザは、モニタＬＣＤ４４に表示された部分画像上で光パターン境界特定枠と同様の空間コード境界特定枠を移動させ、この空間コード境界特定枠が空間コード境界を囲む位置になるように４方向カーソルキー４３を操作する。このように空間コード境界特定枠を空間コード境界を囲む領域に移動させたあと、４方向カーソルキー４３の決定ボタン（図示せず）を押下することによって、この空間コード境界を囲む領域を指定する。
【０２４８】
処理部１６は、このように空間コード境界を含む領域の指定があったことを検出すると、指定された領域から空間コード境界位置を検出する。そして、空間コード境界特定枠で囲われた画像から空間コード境界を抽出する。空間コード境界をサブピクセル精度で算出する技術については、本出願人の特願２００４−１０５４２６号明細書に詳細に記載されているため、その特許出願を参照することにより容易に実施可能である。具体的には、特定枠で囲われた領域内の空間コードの変化を調べる。その変化に対応する、光パターンを投光した画像を選び出す。その画像において、特定枠で囲われた領域に相当する領域について、各画素の輝度値の平均を計算し、それを閾値とする。その閾値と領域内の画素を比較し、閾値より小さければ０、大きければ２５５とすることにより、２値化画像を生成する。２値化画像を参照して、領域幅（ｃｃｄｘ方向）中央で明暗変化（０→２５５あるいは２５５→０）する画素の位置を求める。そして、求めた画素ｃｃｄｙ方向について、輝度の変化の近似式（３次乃至５次程度）を求める。この近似式と閾値の交点を求めることにより、サブピクセル精度でパターン光境界を求めることができる。このパターン光境を空間コード境界とすることで、サブピクセル精度で空間コード境界を求めることが出来る。
【０２４９】
ユーザは、上記パターン光の境界を含む領域の指定を、第１の平面部５０１ａ，５０１ｂ，５０１ｃ及び第２の平面部５０２ａ，５０２ｂごとに形成される空間コード境界のうち、少なくとも上下に離散した２つ以上の境界行う。このように空間コード境界特定枠によって空間コード境界を含む領域の指定を行うため、検出する空間コード境界の数を増加させたり、検出する空間コード境界の位置を校正治具上で偏り無く分布させることが出来るので、システムパラメータの校正の精度を向上させることができる。
【０２５０】
図３０には、図１３におけるＳ１０８が立体画像処理ルーチンとしてフローチャートで概念的に表されている。この立体画像処理ルーチンの実行により、被写体Ｓの３次元形状を立体画像として検出し、表示する立体画像処理が実行される。この立体画像処理においては、さらに、同じ被写体Ｓの表面色も検出される。それら立体画像の検出結果と表面色の検出結果とが位置に関連付けて組み合わされたものが３次元色形状検出結果である。
【０２５１】
この立体画像処理においては、まず、Ｓ１００１において、ファインダ画像、すなわち、撮像光学系３０を通して見える範囲の画像と同じ画像がモニタＬＣＤ４４に表示される。よって、ユーザは、モニタＬＣＤ４４に表示された画像を見ることにより、実際の撮像前に、撮像画像（撮像範囲）を確認することができる。
【０２５２】
次に、Ｓ１００２において、レリーズボタン４０の操作状態がスキャンされ、その後、Ｓ１００３において、そのスキャン結果に基づき、レリーズボタン４０が半押し状態にあるか否かが判定される。半押し状態にあれば、判定がＹＥＳとなり、Ｓ１００４において、オートフォーカス（ＡＦ）および自動露出（ＡＥ）機能が起動し、それにより、ピント、絞りおよびシャッタスピードが調節される。レリーズボタン４０が半押し状態になければ、Ｓ１００３の判定がＮＯとなり、Ｓ１０１０に移行する。
【０２５３】
Ｓ１００４の実行後、Ｓ１００５において、再度、レリーズボタン４０の操作状態がスキャンされ、その後、Ｓ１００６において、そのスキャン結果に基づき、レリーズボタン４０が全押し状態にあるか否かが判定される。レリーズボタン４０が全押し状態になければ、このＳ１００６の判定がＮＯとなってＳ１００２に戻る。
【０２５４】
レリーズボタン４０が半押し状態から全押し状態に移行すれば、Ｓ１００６の判定がＹＥＳとなり、Ｓ１００７において、後述の３次元色形状検出処理が実行され、それにより、被写体Ｓの３次元形状および表面色が検出される。
【０２５５】
概略的に説明するに、その３次元色形状検出処理により、被写体Ｓについて３次元色形状検出結果が生成される。ここに、３次元色形状検出結果とは、後述の空間コード画像において検出される複数の空間コード境界画像を３次元座標に変換した結果取得される頂点座標の集合体であって、各頂点ごとに色形状情報とポリゴン情報とが互いに関連付けられたものを意味する。色形状情報は、実空間座標とＲＧＢ値との組合せを表す情報である。ポリゴン情報は、複数個の頂点のうち、被写体Ｓを３次元的に表面する立体を構成するために互いに連結されるべき複数の頂点の組合せを表す情報である。
【０２５６】
その後、Ｓ１００８において、その３次元色形状検出結果が外部メモリ７８に格納され、続いて、Ｓ１００９において、その３次元色形状検出結果が３次元コンピュータグラフィック画像としてモニタＬＣＤ４４に表示される。
【０２５７】
その後、Ｓ１０１０において、図１３におけるＳ１０３と同様にしてキースキャンが行われる。続いて、Ｓ１０１１において、モード切替スイッチ４２の操作状態に変化が無いか否かが判定される。変化が無ければ、Ｓ１０１１の判定がＹＥＳとなり、Ｓ１００１に戻るが、変化が有れば、Ｓ１０１１の判定がＮＯとなり、今回の立体画像処理が終了する。
【０２５８】
図３０のＳ１００７において実行される３次元色形状検出処理においては、空間コード化法を用いて被写体Ｓの３次元形状が検出される。
【０２５９】
図３１には、図３０におけるＳ１００７が３次元色形状検出処理ルーチンとしてフローチャートで概念的に表されている。この３次元色形状検出処理ルーチンには、テーブルモータ制御プログラム４０４ｉが組み込まれており、このテーブルモータ制御プログラム４０４ｉは、図３１におけるＳ１２０１およびＳ１２２１ないしＳ１２２３を含むように構成されている。
【０２６０】
この３次元色形状検出処理ルーチンにおいては、まず、Ｓ１２０１において、回転テーブル１８４の回転位相ＰＨが０に初期化される。本実施形態においては、回転テーブル１８４が１回転する間に４回停止させられるため、回転テーブル１８４には４つの回転位相ＰＨが離散的に設定される。具体的には、回転位相ＰＨは、初期の回転位相ＰＨを表す「０」と、次の回転位相ＰＨを表す「１」と、次の回転位相ＰＨを表す「２」と、最後の回転位相ＰＨを表す「３」とに離散的に変化させられる。
【０２６１】
次に、Ｓ１２１０において、撮像処理プログラム４０４ｂが実行されることにより、今回の回転位相ＰＨについて撮像処理が実行される。この撮像処理においては、投影部１２からストライプ状のパターン光が時系列的に被写体Ｓに投影される。さらに、複数種類のパターン光が投影されている被写体Ｓをそれぞれ撮像した複数枚のパターン光有画像と、パターン光が投影されていない同じ被写体Ｓを撮像した１枚のパターン光無画像とが取得される。このＳ１２１０は、後に図３２を参照して詳述する。
【０２６２】
撮像処理が終了すると、Ｓ１２２０において、今回の回転位相ＰＨについて３次元計測処理が実行される。この３次元計測処理が実行されると、上述の撮像処理によって取得された複数枚のパターン光有画像と１枚のパターン光無画像とが利用されて、実際に被写体Ｓの３次元形状が計測される。このＳ１２２０は、後に図３６を参照して詳述する。
【０２６３】
この３次元計測処理が終了すると、Ｓ１２２１において、次回の撮像に備えて、回転位相ＰＨが１だけインクリメントされる。続いて、Ｓ１２２２において、回転位相ＰＨの現在値が４より大きいか否か、すなわち、被写体Ｓについての一連の撮像が既に終了しているか否かが判定される。
【０２６４】
今回は、回転位相ＰＨの現在値が４より大きくはないと仮定すれば、そのＳ１２２２の判定がＮＯとなり、Ｓ１２２３において、回転テーブル１８４を時計方向に９０度回転させるのに必要な駆動信号がテーブルモータ１９４に対して出力される。その結果、回転テーブル１８４が時計方向に９０度回転させられ、それにより、被写体Ｓが、前回の撮像時とは異なる部分領域において測定ヘッドＭＨに対向させられる。その後、Ｓ１２１０およびＳ１２２０が実行され、それにより、次の回転位相ＰＨについて前述の撮像処理および３次元計測処理が行われる。
【０２６５】
Ｓ１２１０ないしＳ１２２３のループが必要回数実行された結果、Ｓ１２２２の判定がＹＥＳとなれば、その後、Ｓ１２３０において、被写体Ｓについて計測された３次元形状と表面色とを組み合わせることにより、３次元色形状検出結果が生成される。このＳ１２３０は、後に図３８を参照して詳述する。
【０２６６】
この３次元色形状検出結果が生成されると、今回の３次元色形状検出処理が終了する。
【０２６７】
ここで、図３２を参照することにより、図３１におけるＳ１２１０を詳述する。図３２には、そのＳ１２１０が撮像処理プログラム４０４ｂとしてフローチャートで概念的に表されている。
【０２６８】
この撮像処理プログラム４０４ｂにおいては、まず、Ｓ２００１において、パターン光を形成するために使用されるマスクパターンの番号を表すパターン番号ＰＮが０に初期化される。続いて、Ｓ２００２において、そのパターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さいか否かが判定される。その最大値ＰＮｍａｘは、使用されるマスクパターンの合計数に応じて決定される。例えば、８種類のマスクパターンが使用される場合には、最大値ＰＮｍａｘが８に設定される。
【０２６９】
今回は、パターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さいと仮定すれば、Ｓ２００２の判定がＹＥＳとなり、続いて、Ｓ２００２ａにおいて、マスクモータ制御プログラム４０４ｈが実行される。
【０２７０】
このマスクモータ制御プログラム４０４ｈにおいては、図３３に示すように、まず、Ｓ２２０１において、マスクモータ６５を一定速度で回転駆動するための信号がマスクモータドライバ８６に供給される。これにより、マスク２００が供給ローラ２２０から照射位置２２８に供給される向きにマスク２００が送られる。
【０２７１】
次に、Ｓ２２０２において、位置センサ３００からＰＤ信号が読み取られる。続いて、Ｓ２２０３において、その読み取られたＰＤ信号がローレベルを示すか否かが判定される。すなわち、位置センサ３００がいずれかの位置基準穴２８０（今回は、先頭の位置基準穴２８０）が検出されたか否かが判定されるのである。
【０２７２】
今回は、ＰＤ信号がハイレベルを示すと仮定すれば、Ｓ２２０３の判定がＮＯとなり、Ｓ２２０１に戻り、マスクモータ６５の駆動およびＰＤ信号の読み取りが繰り返される。Ｓ２２０１ないしＳ２２０３の実行が何回か繰り返された結果、ＰＤ信号がハイレベルからローラベルに変化したと仮定すれば、Ｓ２２０３の判定がＹＥＳとなる。
【０２７３】
その後、Ｓ２２０４において、第１ないし第３のＩＤセンサ３１０ないし３１４からＳ１ないしＳ３信号がそれぞれ読み取られる。続いて、Ｓ２２０５において、それら読み取られたＳ１ないしＳ３信号のレベルの組合せ（３ビットの情報）がパターン番号ＰＮの現在値を表すか否かが判定される。すなわち、マスク２００における複数のフレーム２０２のうち現在、照射位置２２８に位置しているものすなわち現在フレーム２０２のパターン番号ＰＮが、パターン番号ＰＮの現在値と一致するか否かが判定されるのである。
【０２７４】
今回は、現在フレーム２０２のパターン番号ＰＮがパターン番号ＰＮの現在値と一致しないと仮定すると、Ｓ２２０５の判定がＮＯとなり、Ｓ２２０１に戻る。これに対し、今回は、現在フレーム２０２のパターン番号ＰＮがパターン番号ＰＮの現在値と一致すると仮定すると、Ｓ２２０５の判定がＹＥＳとなる。本実施形態においては、マスク２００において複数のフレーム２０２が並ぶ順序と同じ順序に、パターン番号ＰＮが１ずつ増加させられるようになっている。すなわち、マスク２００がシーケンシャルに送られるようになっているのであり、よって、Ｓ２２０５の判定は、３次元形状検出装置１０に異常が存在しない限り、ＹＥＳとなる。
【０２７５】
Ｓ２２０５の判定がＹＥＳとなると、その後、Ｓ２２０６において、マスクモータ６５が停止させられ、それにより、現在フレーム２０２が照射位置２２８に停止させられる。その結果、現在フレーム２０２の位置決めが完了する。
【０２７６】
以上で、このマスクモータ制御プログラム４０４ｈの一回の実行が終了する。
【０２７７】
なお付言するに、本実施形態においては、マスクモータ６５の間欠的駆動によるマスク２００の間欠的送りにより、複数のフレーム２０２が順次、照射位置２２８に位置決めされるように、マスクモータ６５が制御される。これに対し、マスクモータ６５の連続的駆動によるマスク２００の連続的送りにより、複数のフレーム２０２が順次、照射位置２２８に位置決めされるように、マスクモータ６５が制御される態様で本発明を実施することが可能である。
【０２７８】
ところで、前述のように、本実施形態においては、マスク２００において各貫通穴２０４の長さ方向がマスク２００の送り方向に一致させられている。よって、マスク２００の移動中でも、いずれかのフレーム２０２が照射位置２２８を通過する際に、同じフレーム２０２によって同じパターン光が生成されて被写体Ｓに投影される時間を確保することが容易である。
【０２７９】
したがって、マスク２００が一時的に停止しないにもかかわらず、同じパターン光を事実上、静止画像として被写体Ｓに投影することが容易である。このことは、マスク２００の連続的送りにより、複数のフレーム２０２を順次、照射位置２２８に確実に位置決めするために好都合である。
【０２８０】
本実施形態においては、マスクモータ制御プログラム４０４ｈの一回の実行が終了すると、図３２におけるＳ２００３において、使用される複数種類のマスクパターンのうち、パターン番号ＰＮの現在値と等しい番号が付されたＰＮ番目のマスクパターンの投影が開始される。
【０２８１】
続いて、Ｓ２００４において、ＰＮ番目のマスクパターンを被写体Ｓに投影するための投影処理が行われる。図３４には、このＳ２００４の詳細が投影処理サブルーチンとしてフローチャートで概念的に表されている。この投影処理サブルーチンの実行により、ＰＮ番目のマスクパターンを有するパターン光を投影部１２から被写体Ｓに投影する投影処理が投影機構６６との共同作用によって実行される。
【０２８２】
この投影処理においては、まず、Ｓ３００４において、光源ドライバ８４が駆動され、続いて、Ｓ３００５において、その光源ドライバ８４からの電気信号によってＬＥＤ６２が発光する。以上で、今回の投影処理が終了する。
【０２８３】
ＬＥＤ６２から発光した光は、光源レンズ６４を経て投影機構６６に到達する。その投影機構６６においては、マスク２００の現在フレーム２０２の開口パターンに応じた空間変調が施され、その結果、投影機構６６への入射光がパターン光に変換されて出力される。その投影機構６６から出力されるパターン光は、投影光学系３２を経て被写体Ｓに投影画像として投影される。
【０２８４】
以上のようにして、ＰＮ番目のマスクパターンによって形成されるＰＮ番目のパターン光が被写体Ｓに投影されると、続いて、図３２におけるＳ２００５において、そのＰＮ番目のパターン光が投影されている被写体Ｓが撮像部１４によって撮像される。
【０２８５】
その撮像により、ＰＮ番目のパターン光が投影されている被写体Ｓを撮像したＰＮ番目のパターン光有画像が取得される。その取得されたパターン光有画像は、対応するパターン番号ＰＮに関連付けてパターン光有画像格納部４０６ａに格納される。
【０２８６】
その撮像が終了すると、Ｓ２００６において、ＰＮ番目のパターン光の投影が終了し、続いて、Ｓ２００７において、次のパターン光を投影すべく、パターン番号ＰＮが１だけインクリメントされ、その後、Ｓ２００２に戻る。
【０２８７】
Ｓ２００２ないしＳ２００７の実行がパターン光の種類の数と同数回繰り返された結果、パターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さくはない値になると、Ｓ２００２の判定がＮＯとなり、今回の撮像処理が終了する。したがって、一回の撮像処理により、最大値ＰＮｍａｘと同数枚のパターン光有画像が取得されることになる。
【０２８８】
続いて、Ｓ２００８において、フラッシュモードが選択されているか否かが判定される。フラッシュモードが選択されていれば、その判定がＹＥＳとなり、Ｓ２００９において、フラッシュ２６が発光させられるが、フラッシュモードが選択されていなければ、Ｓ２００８の判定がＮＯとなり、Ｓ２００９がスキップされる。いずれにしても、その後、Ｓ２０１０において、被写体Ｓが撮像される。
【０２８９】
この撮像は、被写体Ｓの表面色を計測することを目的として、投影部１２からパターン光を被写体Ｓに投影することなく、行われる。その結果、被写体Ｓについて１枚のパターン光無画像が取得される。その取得されたパターン光無画像はパターン光無画像格納部４０６ｂに格納される。
【０２９０】
続いて、Ｓ２０１１において、マスク２００のうちの長さ方向における先頭部分が照射位置２２８に位置するようにマスク２００の長さ方向位置を初期化すべくマスクモータ６５が駆動される。
【０２９１】
以上で、この撮像処理プログラム４０４ｂの一回の実行が終了する。
【０２９２】
図３５には、この撮像処理プログラム４０４ｂの一回の実行に伴うこの３次元形状検出装置１０の作動の一例がタイミングチャートで表されている。この作動例は、ユーザによって３Ｄモードが選択されている状態でユーザによってレリーズボタン４０が全押し状態に操作された場合にこの３次元形状検出装置１０によって実行されるものである。
【０２９３】
図３５（ａ）には、被写体Ｓからの入射光によってＣＣＤ７０が複数回、連続して露光される様子が示されている。図３５（ｂ）には、それら複数回の露光のそれぞれにつき、被写体Ｓからの入射光によって表される全体画像のうちの各画素ごとに光がＣＣＤ７０によって電気信号に変換されてＣＣＤ７０から出力される信号出力タイミングがタイミングチャートで表されている。図３５（ｃ）には、撮像部１４の画像処理モードが前述の間引き画像処理モードと非間引き画像処理モードとに時間的に切り替わるタイミングがタイミングチャートで表されている。
【０２９４】
さらに、図３５（ｄ）には、撮像部１４の状態が、待機状態と、撮像および信号取り出しのための作動状態とに時間的に切り替わるタイミングがタイミングチャートで表されている。図３５（ｅ）には、各パターン光を形成するためにマスク２００において各フレーム２０２が割り出されるタイミングがタイミングチャートで表されている。図３５（ｆ）には、フラッシュ２６がＯＦＦ状態とＯＮ状態とに時間的に切り替わるタイミングがタイミングチャートで表されている。図３５（ｇ）には、レリーズボタン４０が非操作状態（ＯＦＦ状態）と操作状態（ＯＮ状態）とに時間的に切り替わるタイミングがタイミングチャートで表されている。
【０２９５】
本実施形態においては、被写体Ｓからの入射光によるＣＣＤ７０の露光後に、その露光を反映した信号のＣＣＤ７０からの取り出しが行われる。１回の露光に１回の信号取り出しが対応しており、それら露光と信号取り出しとが互いに共同して１回の個別撮像処理を構成する。
【０２９６】
本実施形態においては、同じ被写体Ｓについて３次元形状情報の取得と表面色情報の取得とが連続的に、かつ、それらの順で行われる。
【０２９７】
前述のように、被写体Ｓの３次元形状情報を取得するために、その被写体Ｓに８種類のパターン光（パターン番号ＰＮ＝０〜７）が順次投影され、各パターン光の投影ごとに、ＣＣＤ７０の露光とＣＣＤ７０からの信号取り出しとが行われる。すなわち、被写体Ｓの３次元形状情報を取得するために、その被写体Ｓに対する個別撮像処理が順次、合計８回行われるのである。図３５においては、３次元形状情報を取得するための各回の個別撮像処理に対応するパターン光の番号ＰＮが、「０」ないし「７」の数字によって示されている。
【０２９８】
被写体Ｓの表面色情報を取得するために、被写体Ｓからの入射光によってＣＣＤ７０が１回露光され、その後に信号取り出しが行われる。すなわち、被写体Ｓの表面色情報を取得するために、被写体Ｓに対する個別撮像処理が１回行われるのである。図３５においては、表面色情報を取得するための１回の個別撮像処理が「ｃ」という記号によって示されている。
【０２９９】
３次元形状情報取得のための撮像においては、照明光としてパターン光を被写体Ｓに投影することが必須であるのに対し、表面色情報取得のための撮像においては、照明光を被写体Ｓに投影することが選択的である。具体的には、表面色情報取得のための撮像においては、被写体Ｓからの受光量が不足している場合に、フラッシュ２６が自動的に発光させられ、それにより、被写体Ｓに照明光が投影される。
【０３００】
したがって、本実施形態においては、３次元形状情報取得のための８回の個別撮像処理と、表面色情報取得のための１回の個別撮像処理とが連続的に行われ、合計９回の個別撮像処理が連続的に行われる。本実施形態においては、それら９回の個別撮像処理が互いに共同して１回の全体撮像処理を構成している。
【０３０１】
それら９回の個別撮像処理においては、同じ被写体Ｓについて９回の露光が順次行われ、それら９回の露光は、例えば、ビデオレートと同じ速度で同一周期で行われる。それら９回の露光が連続的に行われる期間は、被写体Ｓと３次元形状検出装置１０との相対位置が変化するとその影響がＣＣＤ７０の撮像結果に現れる期間である。この期間は、３次元形状検出装置１０の撮像時間である。
【０３０２】
３次元形状情報取得のための８回の個別撮像処理における信号取り出しは、間引き画像処理として実行される。したがって、３次元形状情報取得のための各回の個別撮像処理においては、ＣＣＤ７０の露光に後続し、必要な信号取り出し時間ｔ１の経過後、ＣＣＤ７０から電気信号が出力される。信号取り出し時間ｔ１は、１フレーム取り出し時間ともいい、各パターン光の投影ごとに、ＣＣＤ７０の露光が終了してから、３次元形状情報が１フレーム分、ＣＣＤ７０から出力されるまでに必要な３次元形状情報出力時間を意味する。
【０３０３】
これに対し、図３５に示す一例においては、表面色情報取得のための１回の個別撮像処理における信号取り出しが、非間引き画像処理として実行される。したがって、表面色情報取得のための１回の個別撮像処理については、ＣＣＤ７０の露光に後続し、必要な信号取り出し時間ｔ２の経過後、ＣＣＤ７０から電気信号が出力される。信号取り出し時間ｔ２は、１フレーム取り出し時間ともいい、ＣＣＤ７０の露光が終了してから、表面色状情報が１フレーム分、ＣＣＤ７０から出力されるまでに必要な表面色情報出力時間を意味する。
【０３０４】
間引き画像処理に必要な信号取り出し時間ｔ１は、例えば、約３３ｍｓであるのに対し、信号取り出し時間ｔ２は、約０．５ｓである。
【０３０５】
図３５（ａ）および（ｂ）に示すように、１回の個別撮像処理においては、露光が終了した後に信号取り出しが開始されるが、次回の個別撮像処理における露光は、前回の個別撮像処理における信号取り出しが終了する前に開始される。すなわち、ある回の個別撮像処理における信号取り出しと次回の個別撮像処理における露光とが時間的に部分的にオーバラップするように行われるのである。ただし、ある回の個別撮像処理における信号取り出しは、次回の個別撮像処理における露光が終了する前に終了する。
【０３０６】
したがって、本実施形態においては、図３５（ｂ）に示すように、３次元形状情報取得のための８回の信号取り出しが時間的に隙間なく連続的に行われる。
【０３０７】
各回の信号取り出しは、それが間引き画像処理として実行される場合には、約３３ｍｓで終了する。したがって、８回の信号取り出しは約０．２６ｓで終了する。よって、図３５に示す撮像時間（全体撮像時間）のうち３次元形状情報取得のための撮像に必要な部分（以下、「部分撮像時間」という。）の長さは、信号取り出し時間の長さの合計値によって支配されるため、約０．２６ｓの程度の長さで済む。
【０３０８】
このように、ＣＣＤ７０からの信号取り出しを間引き画像処理として実行する場合には、撮像時間が短縮され、その結果、被写体Ｓの動きや３次元形状検出装置１０の手振れにもかかわらず、被写体Ｓの３次元形状を高精度で計測できる。
【０３０９】
さらに、図３５に示すように、本実施形態においては、３次元形状情報取得のための２回目ないし８回目の露光のそれぞれと、表面色情報取得のための露光とが、それぞれ、先行する直前の露光に対応する信号取り出しの終了を待つことなく、開始される。先行する露光に対応する信号取り出しと、後続する露光とが互いに並行して行われるのであり、これにより、９回の信号取出しが時間的に隙間なく連続的に行われる。したがって、図３５に示す撮像時間、すなわち、３次元形状情報取得のための撮像と表面色情報取得のための撮像との双方を連続的に行うのに必要な時間が短縮される。
【０３１０】
具体的には、各回の信号取り出しは、約３３ｍｓで終了するため、９回の信号取り出しは約０．３ｓで終了し、よって、それに対応する全体撮像時間もその程度の長さで済む。
【０３１１】
仮に、表面色情報取得のための１回の個別撮像処理すなわち表面色計測撮像処理（信号取り出しが非間引き画像処理として実行される。）を先に、３次元形状情報取得のための８回の個別撮像処理すなわち３次元計測撮像処理（信号取り出しが間引き画像処理として実行される。）を後に実行した場合には、先行する表面色計測撮像処理における信号取出しがほとんど終了するまで、３次元形状情報取得のための初回の露光を待たせなければならない。その待ち時間は、信号取り出し時間ｔ２の長さにほぼ等しく、約０．５ｓである。
【０３１２】
この場合には、表面色情報取得のための露光と、３次元形状情報取得のための初回の露光との間にやや長い時間間隔が存在し、図３５に示す全体撮像時間が長くなる。一方、測定ヘッドＭＨと被写体Ｓとの間の相対変位が存在しないかないしは十分に小さい場合には、その全体撮像時間がやや長いことは問題にならない。これに対し、測定ヘッドＭＨと被写体Ｓとの間の相対変位が大きい場合には、その全体撮像時間が長いと、表面色情報と３次元形状情報とが画素の位置に関して互いに十分に正確にマッチングしなくなってしまう。すなわち、テクスチャマッピング精度が低下してしまうのである。
【０３１３】
これに対し、本実施形態においては、図３５に示すように、３次元形状情報取得のための８回の個別撮像処理が先に、表面色情報取得のための１回の個別撮像処理が後に行われる。その結果、先行する３次元形状情報取得のための８回目の露光と、後続する表面色情報取得のための露光とを、先行する３次元形状情報取得のための８回の露光が行われる周期と同じ周期で連続して行うことが可能となる。よって、本実施形態によれば、全体撮像時間を、約０．３ｓ程度にまで短縮することが可能となる。
【０３１４】
したがって、本実施形態によれば、３次元形状情報取得のための露光と表面色情報取得のための露光とを十分に短い時間間隔で連続して行うことが可能となり、その結果、測定ヘッドＭＨと被写体Ｓの間の相対変位の有無やその程度の大小にかかわらず、高いテクスチャマッッピング精度が実現される。
【０３１５】
ここで、図３６を参照することにより、図３１におけるＳ１２２０を詳述する。図３６には、そのＳ１２２０が３次元計測処理サブルーチンとしてフローチャートで概念的に表されている。
【０３１６】
この３次元計測処理サブルーチンにおいては、まず、Ｓ４００１において、輝度画像生成プログラム４０４ｃの実行により、輝度画像が生成される。
【０３１７】
このＳ４００１においては、輝度値が、ＹＣｂＣｒ空間におけるＹ値として定義されており、各画素のＲＧＢ値より、
Ｙ＝０．２９８９・Ｒ＋０．５８６６・Ｇ＋０．１１４５・Ｂ
なる式を用いて計算される。各画素についてＹ値を求めることにより、複数枚のパターン光有画像にそれぞれ対応複数枚の輝度画像が生成される。それら生成された輝度画像は、パターン番号ＰＮに関連付けて輝度画像格納部４０６ｃに格納される。ただし、輝度値の算出に用いられる式は、上記式に限定されるものではなく、他の式に適宜変更することが可能である。
【０３１８】
次に、Ｓ４００２において、コード画像生成プログラム４０４ｄが実行される。このコード画像生成プログラム４０４ｄが実行されると、生成された複数枚の輝度画像が前述の空間コード化法を利用して組み合わされることにより、各画素ごとに空間コードが割り当てられたコード画像が生成される。そのコード画像は、輝度画像格納部４０６ｃに格納された複数種類のパターン光有画像に関する輝度画像と、各画素ごとに輝度閾値が割り当てられた閾値画像との比較による２値化処理によって生成される。その生成されたコード画像はコード画像格納部４０６ｄに格納される。
【０３１９】
図３７には、このコード画像生成プログラム４０４ｄの詳細がフローチャートで概念的に表されている。このコード画像生成プログラム４０４ｄにおいて採用されている技術は、本出願人の特願２００４−２８５７３６号明細書に詳細に記載されているため、その特許出願を参照することにより、その特許出願の内容を本明細書に引用する。
【０３２０】
以下、このコード画像生成プログラム４０４ｄを時系列的に説明するが、それに先立ち、原理的に説明する。
【０３２１】
本実施形態においては、同じ被写体Ｓ（３次元対象物）につき、複数種類のパターン光のもとにそれぞれ複数枚の輝度画像が生成される。それらパターン光はいずれも、明部、すなわち、幅を有する明るいパターンラインと、暗部、すなわち、幅を有する暗いパターンラインとが交互に一定の周期で繰り返すように形成される。それらパターン光は、その周期に関して互いに異なっており、それぞれ、パターン番号ＰＮを有するパターン光と称される。それらパターン光のうち最も短い周期を有するパターン光が、パターン番号ＰＮが０であるパターン光であり、最も長い周期を有するパターン光が、パターン番号ＰＮが（ＰＮｍａｘ−１）であるパターン光である。
【０３２２】
いずれの輝度画像も、対応するパターン光のもとに取得されるため、明部としての明るいパターンラインと、暗部としての暗いパターンラインとが交互に並んで成るパターン画像として形成される。パターンライン間の間隔すなわち周期は、３次元形状検出装置１０と被写体Ｓとの間における相対的な幾何学的関係（位置および向きに関する関係）に依存するため、各輝度画像内のすべての位置において一定であるとは限らない。複数種類のパターン光のもとにそれぞれ取得される複数枚の輝度画像は、対応するパターン光のパターン番号ＰＮを用いて特定される。
【０３２３】
本実施形態においては、それら複数枚の輝度画像のうちのいずれかが代表パターン画像に選択される。その代表パターン画像の一典型例は、複数種類のパターン光のうちパターンライン周期が最小であるものに対応する輝度画像であり、これは、パターン番号ＰＮが０である輝度画像である。
【０３２４】
パターン光が投影された被写体Ｓを撮像した輝度画像においては、輝度値が画素列の方向において空間的にかつ周期的に変化する。その周期的変化を表すグラフにそれの複数個の下ピーク点（最低輝度点）において接する包絡線が存在する。この包絡線は、同じ被写体Ｓを無照射状態で撮像した輝度画像における輝度値、すなわち、被写体Ｓの背景光の輝度値の空間的変化を表している。このような包絡線が存在する輝度画像については、各画素の輝度値を閾値処理によって正確に２値化するためには、閾値を画素位置に応じて変化させることが望ましい。すなわち、輝度画像の実際の輝度値変化をトラッキングすることによって閾値を適応的に変化させることが望ましいのである。
【０３２５】
このような知見に基づき、本実施形態においては、輝度画像に対してフィルタ処理を行うことによって閾値を算出するフィルタ窓がローカルに設定され、フィルタ処理されることによりその位置に適した閾値が、輝度画像に対してローカルに設定される。輝度画像のうちのあるローカル位置に窓が設定されれば、輝度画像を構成する複数本のパターンラインのうちその窓内に存在する画素の輝度値が取り出されて参照されることにより、そのあるローカル位置に対応する閾値が設定される。
【０３２６】
本実施形態において使用される窓は、方形窓である。この方形窓を採用する場合には、その方形窓内に存在する複数本のパターンラインを構成する画素の輝度値が取り出され、それら輝度値に対して同一の重み係数が用いられて閾値が算出される。その重み係数により、方形窓の窓関数が定義される。
【０３２７】
さらに、方形窓を採用する場合には、その方形窓の、パターンラインが延びるライン方向におけるライン方向サイズに応じて、その方形窓内においてライン方向に存在する画素の数を可変とすることができる。一方、その方形窓の、複数本のパターンラインが列を成して並ぶ列方向における列方向サイズに応じて、その方形窓内において列方向に存在するパターンラインの数も画素の数も可変とすることができる。
【０３２８】
したがって、方形窓を採用する場合には、その方形窓の列方向サイズにより、輝度画像に窓を設定することによってその輝度画像から算出される閾値が変化することになる。よって、その閾値を適応的に変化させることが必要である場合には、方形窓の列方向サイズを適応的に変化させればよい。
【０３２９】
本実施形態においては、方形窓として構成される窓のサイズが、その窓内に存在するパターンラインの数がそれらパターンラインの間隔すなわち周期（例えば、明るいパターンラインが繰り返される周期）の整数倍であるように設定することが望ましい。すなわち、窓内に、明るいパターンラインと暗いパターンラインとが同数ずつ存在するように窓のサイズを設定することが望ましいのである。このように設定すれば、窓内に存在する複数本のパターンラインの輝度値の平均値を算出することにより、望ましい閾値を高精度取得することができる。
【０３３０】
しかしながら、同じ輝度画像上であっても、パターンラインの周期は場所によって異なる可能性がある。そのため、窓のサイズを固定した場合には、窓内に存在するパターンラインの数が場所によって変動してしまい、閾値の設定精度が低下してしまう。
【０３３１】
本実施形態においては、複数枚の輝度画像のうち、パターンラインの周期が最小であるパターン光のもとに撮像されたもの、すなわち、パターン番号ＰＮが０である輝度画像が代表パターン画像として選択される。さらに、本実施形態においては、その代表パターン画像に対してローカルに設定される窓ＶＷが、それのサイズが可変である可変窓として構成されている。それにより、その可変窓ＶＷのサイズが、代表パターン画像の実際のパターンライン周期に適応して変化させられる。
【０３３２】
したがって、本実施形態によれば、代表パターン画像におけるパターンライン周期が列方向位置に応じて変動しても、それに追従するように可変窓ＶＷのサイズが変更され、その結果、パターンライン周期の変動にもかかわらず、可変窓ＶＷ内に存在する明部と暗部のパターンラインの数が一定に維持される。本実施形態においては、代表パターン画像に対して可変窓ＶＷが設定される各ローカル位置ごとに閾値ＴＨが取得される。各ローカル位置ごとの閾値ＴＨは、各ローカル位置に最適なサイズを有する可変窓ＶＷのもとに精度よく取得されることになる。
【０３３３】
また、明部と暗部のパターンラインの数が一定に維持されるような可変窓ＶＷのサイズは、パターン番号ＰＮが０である輝度画像において最小となる。したがって、パターン番号ＰＮが０である輝度画像を代表パターン画像として選択することにより、最小の可変窓ＶＷのサイズが可能になり、可変窓ＶＷを用いた後のフィルタ処理の計算負担を抑えることが可能になる。
【０３３４】
本実施形態においては、その可変窓ＶＷが、サイズが可変である方形窓として構成されている。その可変窓ＶＷのサイズは、代表パターン画像の列方向には可変であるが、ライン方向には固定であるように設定されている。
【０３３５】
本実施形態においては、その可変窓ＶＷのサイズ、すなわち、代表パターン画像の列方向におけるサイズが、その代表パターン画像の実際のパターンライン周期を適応的に反映するように設定される。そのため、可変窓ＶＷのサイズを設定するために、代表パターン画像の実際のパターンライン周期分布が事前に判明していることが必要である。
【０３３６】
よって、本実施形態においては、可変窓ＶＷのサイズの設定に先立ち、サイズが固定された固定窓が代表パターン画像に対して設定される。その設定された固定窓によって捕捉される複数個の連続画素が複数個の注目画素として選択され、それら選択された注目画素の輝度値に基づき、代表パターン画像の実際のパターンライン周期分布が取得される。
【０３３７】
本実施形態においては、さらに、代表パターン画像における複数個の注目画素の輝度値に対してＦＦＴ(Fast Fourier Transform：高速フーリエ変換）処理が施され、それにより、代表パターン画像の列方向において輝度値変化の周波数成分のそれぞれについて強度（例えば、パワースペクトル）が取得される。ここに、「周波数成分」は、１個の固定窓によって捕捉される複数個の注目画素を列方向に辿った場合に、輝度値の変化が反復される反復回数を意味する。
【０３３８】
本実施形態においては、代表パターン画像において列方向に連続的に並んだ複数個の連続画素のそれぞれが順次注目画素に選定され、その選定された各注目画素ごとにパターンライン周期が、代表パターン画像の輝度値分布に基づいて取得される。
【０３３９】
以上、このコード画像生成プログラム４０４ｄを原理的に説明したが、以下、図３７を参照することにより、時系列的に説明する。
【０３４０】
このコード画像生成プログラム４０４ｄにおいては、まず、Ｓ５００１において、パターン番号ＰＮが０であるパターン光が投影された被写体Ｓが撮像された輝度画像が輝度画像格納部４０６ｃから、代表パターン画像として読み込まれる。
【０３４１】
次に、Ｓ５００２において、その代表パターン画像につき、前記読み込まれた輝度画像に基づき、前述のＦＦＴ変換によるアプローチにより、代表パターン画像において列方向に連続的に並んだ各画素ごとにパターンライン周期が演算される。演算された複数個のパターンライン周期は各画素（各列方向画素位置）に関連付けて周期分布格納部４０６ｐに格納される。
【０３４２】
続いて、Ｓ５００３において、演算された複数個のパターンライン周期に基づき、可変窓ＶＷの特性がローカルに設定される。本実施形態においては、可変窓ＶＷのライン方向サイズは、その可変窓ＶＷが設定される代表パターン画像上の位置にかかわらず、変化しないように設定されるのに対し、可変窓ＶＷの列方向サイズは、各列方向画素位置に関連付けて演算されたパターンライン周期の整数倍に相当するように設定される。
【０３４３】
その後、Ｓ５００４において、代表パターン画像に対して可変窓ＶＷが、ライン方向と列方向とに沿って平面的に、かつ、各画素に関連付けて設定される。それにより、各画素ごとに、可変窓ＶＷ内に存在する複数個の画素の輝度値の平均値がローカルな閾値として演算される。このＳ５００４においては、さらに、演算された閾値が各画素に割り当てられた閾値画像が生成される。生成された閾値画像は閾値画像格納部４０６ｑに格納される。
【０３４４】
続いて、Ｓ５００５において、パターン番号ＰＮが０に初期化され、その後、Ｓ５００６において、パターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さいか否かが判定される。今回は、パターン番号ＰＮの現在値が０であるため、判定がＮＯとなり、Ｓ５００７に移行する。
【０３４５】
このＳ５００７においては、パターン番号ＰＮの現在値と等しいパターン番号ＰＮが割り当てられた輝度画像の輝度値と、前記生成された閾値画像の閾値とが、各画素ごとに互いに比較される。その比較結果は、各画素ごとに２値化画像に反映される。具体的には、輝度画像の輝度値が閾値より大きい場合には、「１」を表すデータが、２値化画像のうち対応する画素位置に関連付けて２値化画像格納部４０６ｒに格納され、一方、輝度画像の輝度値が閾値より大きくはない場合には、「０」を表すデータが、２値化画像のうち対応する画素位置に関連付けて２値化画像格納部４０６ｒに格納される。
【０３４６】
その後、Ｓ５００８において、パターン番号ＰＮが１だけインクリメントされる。続いて、Ｓ５００６に戻り、パターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さいか否かが判定される。今回も、最大値ＰＮｍａｘより小さい場合には、判定がＮＯとなり、Ｓ５００７に移行する。
【０３４７】
Ｓ５００６ないしＳ５００８の実行がパターン光の種類の数と同数回繰り返された結果、パターン番号ＰＮの現在値が最大値ＰＮｍａｘより小さくはない値になると、Ｓ５００６の判定がＹＥＳとなり、Ｓ５００９に移行する。
【０３４８】
このＳ５００９においては、各画素ごとに、最大値ＰＮｍａｘと同数枚の２値化画像から画素値（「１」または「０」）が、パターン番号ＰＮが０である輝度画像に対応する２値化画像から、パターン番号ＰＮが（ＰＮｍａｘ−１）である輝度画像に対応する２値化画像に至る順序に従って抽出され、最下位ビットＬＳＭから最上位ビットＭＳＢに至る順序に従って並んだ空間コードが生成される。各画素ごとの空間コードのビット数は、最大値ＰＮｍａｘと同数である。各画素ごとに空間コードが生成されることにより、今回の被写体Ｓに対応する空間コード画像が生成される。生成された空間コードは、各画素位置に関連付けて空間コード格納部１１６ｄに格納される。例えば、最大値ＰＮｍａｘが８である場合には、生成される空間コードは０から２５５までの範囲内の値を有する。
【０３４９】
以上で、このコード画像生成プログラム４０４ｄの一回の実行が終了する。
【０３５０】
その後、図３６におけるＳ４００３において、コード境界抽出プログラム４０４ｅの実行により、コード境界座標検出処理が実施される。前述の空間コード化法によるコード化は、各画素単位で行われるため、実際のパターン光における明暗の境界線と、前記生成されたコード画像における空間コードの境界線（ある空間コードが割り当てられた領域と別の空間コードが割り当てられた領域との間の境界線）との間にサブピクセル精度の誤差が生ずる。そのため、このコード境界座標検出処理は、空間コードの境界座標値をサブピクセル精度で検出することを目的として実施される。
【０３５１】
例えば、各パターン光のライン方向と交差する離散的な基準線の位置をＣＣＤ座標系において２５５本設定すると、最大値ＰＮｍａｘが８（空間コードを２５６有するため、境界は２５５）である場合には、図３６におけるＳ４００３（コード境界抽出プログラム４０４ｅの実行）により、最大約６万５千の空間コードの境界座標値が検出される。
【０３５２】
検出されたコード境界座標値はコード境界座標格納部４０６ｅに格納される。コード境界座標値は、ＣＣＤ７０の結像面に設定された２次元座標系であるＣＣＤ座標系ｃｃｄｘ−ｃｃｄｙにおいて定義される。
【０３５３】
続いて、Ｓ４００４において、レンズ収差補正プログラム４０４ｆの実行により、レンズ収差補正処理が実施される。このレンズ収差補正処理は、撮像光学系３０に入射した光束の実際の結像位置であってその撮像光学系３０の収差の影響を受けたものを、その撮像光学系３０が理想レンズであったならば結像されるはずである理想結像位置に近づくように補正する処理である。
【０３５４】
このレンズ収差補正処理により、Ｓ４００３において検出されたコード境界座標値が、撮像光学系３０の歪みなどに起因した誤差が除去されるように補正される。そのようにして補正されたコード境界座標は収差補正座標格納部４０６ｇに格納される。
【０３５５】
その後、Ｓ４００５において、三角測量演算プログラム４０４ｇの実行により、三角測量の原理による実空間変換処理が実施される。この実空間変換処理が実施されれば、三角測量の原理により、前述の、ＣＣＤ座標系ｃｃｄｘ−ｃｃｄｙ上のコード境界座標値であって収差補正が施されたものが、実空間に設定された３次元座標系である実空間座標系Ｘ−Ｙ−Ｚ上の３次元座標値に変換され、その結果、３次元色形状検出結果としての３次元座標値が取得される。その取得された３次元座標値は、対応する部分画像の回転位相ＰＨに関連付けて、３次元座標格納部４０６ｈに格納される。
【０３５６】
このＳ４００５においては、被写体Ｓの３次元形状を複数個の３次元頂点の集まりとして空間離散的に計測するために、２次元的なコード画像が、各パターン光のライン方向と交差する離散的な複数本の基準線に関して空間離散的に参照される。これにより、そのコード画像の外周境界上の複数個の離散点にそれぞれ対応する複数個の３次元頂点が取得されるのみならず、そのコード画像の内部の複数個の離散点（Ｓ４００３において検出されたコードの境界座標点）にそれぞれ対応する複数個の３次元頂点が取得される。
【０３５７】
ここで、図３８を参照することにより、図３１におけるＳ１２３０を詳述する。図３８には、そのＳ１２３０が３次元色形状検出結果生成サブルーチンとして概念的にフローチャートで表されている。
【０３５８】
この３次元色形状検出結果生成サブルーチンにおいては、まず、Ｓ５５０１において、３次元座標格納部４０６ｈから、回転位相ＰＨ０ないし３のそれぞれに関連付けて、複数個の３次元座標値がロードされる。本実施形態においては、被写体Ｓの外面全体が４つの部分面（正面、右側面、左側面および背面）に分割され、各部分面ごとに立体画像が生成される。このＳ５５０１においては、それら４つの部分面のすべてについて、各部分面に属する複数個の３次元座標値が３次元座標格納部４０６ｈからロードされる。
【０３５９】
次に、Ｓ５５０２において、それらロードされた複数個の３次元座標値（頂点座標値）に対し、各３次元座標値が属する各部分面の回転位相ＰＨに応じた回転変換が行われ、それにより、４つの部分面に属する複数個の３次元座標値が、各部分面の回転位相ＰＨを見込んで組み合わされる。その結果、複数個の３次元座標値によって３次元的に表現される４つの部分面が一体化されて、被写体Ｓの外面全体を現す画像が合成される。ただし、この段階においては、その合成画像に、測定ヘッドＭＨの分割撮像手法に起因して空間的にオーバラップする部分が存在する。
【０３６０】
続いて、Ｓ５５０３において、その生成された合成画像において空間的にオーバラップする部分が抽出される。さらに、その合成画像の長さ方向における各領域においてオーバラップする２つの部分が、それら２部分に属する複数個の３次元座標値の平均化等の手法により、１つの部分に結合される。その結果、合成画像において空間的なオーバラップが除去され、それにより、ステッチ画像が完成する。そのステッチ画像を表すデータがステッチ画像格納部４０６ｓに格納される。
【０３６１】
その後、Ｓ６００１において、前述の実空間３次元座標系に座標変換された３次元頂点群の各実座標空間座標値に対応するＲＧＢ値（Ｒ輝度値、Ｇ輝度値およびＢ輝度値）が前述の表面色画像から抽出される。
【０３６２】
実空間座標系と、表面色画像を定義する平面座標系との関係は、前述の三角測量計算によって幾何学的に互いに対応付けられている。すなわち、コード画像、すなわち、被写体Ｓの３次元形状を計測するための２次元画像である形状画像を定義する平面座標系を実空間３次元座標系に計算によってマッピングさせるために用いられる関数が存在する場合に、その関数の逆関数を用いることにより、実空間３次元座標系を、表面色画像を定義する平面座標系に計算によってマッピングさせることが可能なのである。したがって、このＳ６００１においては、２次元的な表面色画像から、各３次元頂点ごとに、それに対応する表面色値すなわちＲＧＢ値を抽出することが可能である。
【０３６３】
次に、Ｓ６００２において、各頂点ごとに、対応する実空間座標値とＲＧＢ値とが組み合わされて色形状情報が生成される。さらに、その生成された色形状情報が、対応する頂点に直接にまたは間接に関連付けてワーキングエリア４１０にローカル保存される。
【０３６４】
続いて、Ｓ６００３において、被写体Ｓの表面形状を複数個のポリゴンの一例である三角形に分割することによって近似的に表現するために、その被写体Ｓについて取得された複数個の頂点のうち、距離的に互いに近接する複数個の頂点が３個ずつ、グループ分けされる。各グループごとに、３個の頂点が互いに連結されることにより、１個のポリゴンが形成される。
【０３６５】
その後、Ｓ６００４において、各ポリゴンごとに、そのポリゴンを形成するために互いに連結すべき３個の頂点の組合せがポリゴン情報として、各ポリゴンに直接にまたは間接に関連付けてワーキングエリア４１０にローカル保存される。また、そのポリゴン情報は、必要に応じ、ステッチテクスチャを表す情報として、ステッチテクスチャ格納部４０６ｔに格納される。
【０３６６】
以上で、この３次元色形状検出結果生成サブルーチンの一回の実行が終了し、それに伴い、図３８に示す３次元色形状検出処理ルーチンの一回の実行が終了する。
【０３６７】
本実施形態においては、測定ヘッドＭＨに対する回転テーブル１８４の相対位置が自動的にかつ一義的に決まっている。その相対位置は、例えば、測定ヘッドＭＨからの距離と、その測定ヘッドＭＨの光軸に対する角度とによって規定される。
【０３６８】
被写体Ｓの撮像および測定のために測定ヘッドＭＨに課されるべき負担が軽減される理由はその他にも存在する。その一例を説明するに、回転テーブル１８４を用いた、被写体Ｓの４面方向（ＰＮ＝０〜３）からの３次元形状測定において、その回転テーブル１８４の回転中心軸の座標を推定するための処理が高効率化される。
【０３６９】
具体的に説明するに、本実施形態においては、被写体Ｓが配置される回転テーブル１８４の回転中心軸の、測定ヘッドＭＨに対する空間座標値が既知である。したがって、４面各々についての３次元形状測定結果である各３次元座標値（図３６におけるＳ４００５において演算される。）に対して、前記回転中心軸を中心に空間回転演算処理を行うことにより、被写体Ｓの形状および色を表すポリゴンサーフェスおよびテクスチャのステッチ処理（結合処理）が行われ、ひいては、最終的な出力である、被写体Ｓの全周の３次元色形状検出結果が生成される（図３１におけるＳ１２３０）。その結果、被写体Ｓの全周の形状および色が、位置のずれなく、正しく結合されることになる。
【０３７０】
よって、この３次元形状検出装置１０によれば、被写体Ｓの３次元測定のために、回転テーブル１８４の回転中心軸の検出または推定を完全にないしは部分的に省略可能となる。
【０３７１】
いずれにしても、本実施形態によれば、同じ被写体Ｓにつき、各面ごとに独立して測定された複数の形状および色を正しく結合するために行われる回転中心軸推定処理の負担を軽減することが容易となる。ここに、「回転中心軸推定処理」の一例としては、被写体Ｓの全周について離散的に測定された複数の色形状間の位置ずれが実質的に最小となるように、回転中心軸の座標を推定する手法を採用することが可能である。
【０３７２】
被写体Ｓの撮像および測定のために測定ヘッドＭＨに課されるべき負担が軽減される別の理由を説明するに、回転テーブル１８４は常に同じ正規位置（測定ヘッドＭＨからの距離および角度）に位置決めされるため、被写体Ｓが常に撮像視野の中心に位置するという効果、焦点調節を簡略化することができるという効果等が得られ、それら効果により、被写体Ｓの撮像および測定のために測定ヘッドＭＨに課されるべき負担が軽減される。
【０３７３】
さらに、回転テーブル１８４は常に同じ正規位置（測定ヘッドＭＨからの距離および角度）に位置決めされるため、測定ヘッドＭＨの撮像可能領域いっぱいに配置された被写体Ｓを、撮像視野内で画面全体にできる限り大きく撮像することが容易となる。その結果、被写体Ｓの３次元入力精度を向上させることが容易となり、このことによっても、被写体Ｓの撮像および測定のために測定ヘッドＭＨに課されるべき負担が軽減される可能性がある。
【０３７４】
上記実施の形態においては、測定ヘッドＭＨを装着する測定ヘッド装着部と被写体Ｓや校正用冶具ＫＡを載置する回転テーブル部ＲＴとを一体的に形成した台座部ＨＤを説明したが、図３９に示すように、測定ヘッドを設置するための第１の台座ＨＤａと、被写体Ｓや校正用冶具ＫＡを載置する表面が平面状の第２の台座ＨＤｂと分離して構成するようにしてもよい。分離した構成である第２の台座ＨＤｂを用いた場合、測定ヘッドＭＨと、台座ＨＤｂを任意の距離で設置できる。このようにすることで、測定ヘッドＭＨと台座ＨＤが常に同じ正規位置に一位置決めされた場合に比べ、被写体Ｓの大きさに自由度を持たせることが出来、より大きな被写体Ｓの測定も可能になる。この場合も、分離した構成である第２の台座ＨＤｂに本発明の校正用治具ＫＡを用いて校正処理を行うことにより、簡単に測定ヘッドＭＨと台座ＨＤｂの位置関係に適合したシステムパラメータに更新することができる。
【０３７５】
なお、校正用冶具ＫＡにおいて、上述の第１嵌合部５０３ａ及び第２嵌合部５０３ｂを設けている場合であっても、上下反転させることによって第２の台座ＨＤｂに載置することができる。
【０３７６】
以上、本発明の実施の形態のうちのいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記［発明の開示］の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０３７７】
たとえば、図４０，図４１に示すように、図面上校正用冶具ＫＡを、基面である第１の平面上に位置し、上下方向に延在し、上下方向が開放された複数の第１の平面部８０１ａ，８０１ｂと、基面と異なる平面であってこの基面に平行な平面である第２の平面上に位置して上下方向に延在し、上下方向が開放された第２の平面部８０２ａ，８０２ｂと、基面及び第２の平面部と異なる平面であってこの基面及び第２の平面部に平行な平面上に位置して上下方向に延在し、上下方向が開放された第３の平面部８０３とを上下方向と交差する左右方向に配置する構成にしてもよい。すなわち、第１の平面部と第２の平面部とをそれぞれ複数設けていれば、第３の平面部が設けられた構成であってもよい。
【図面の簡単な説明】
【０３７８】
【図１】本発明の第１実施形態に従う３次元形状検出装置の外観を示す斜視図である。
【図２】図１に示す３次元形状検出装置を示す側面図および背面図である。
【図３】図１における測定ヘッドホルダとの取付構造を説明するための部分断面背面図である。
【図４】図１における回転テーブル部を示す背面断面図である。
【図５】図１における測定ヘッドの内部構成を示す平面断面図である。
【図６】図１における投影部を拡大して示す平面図である。
【図７】図１に示す３次元形状検出装置の電気的構成を概念的に表すブロック図である。
【図８】図５における投影機構を示す正面図である。
【図９】図８に示す投影機構を示す部分側面断面図である。
【図１０】図８におけるマスクを部分的に拡大して示す正面図である。
【図１１】図８におけるマスクを部分的に示す正面図および図７における位置センサおよび第１ないし第３のＩＤセンサをマスクと共に示す側面図である。
【図１２】図１１における位置センサのＰＤ信号および第１ないし第３のＩＤセンサの信号を説明するためのタイミングチャートである。
【図１３】図７におけるカメラ制御プログラムにおいて実行されるメイン処理を概念的に表すフローチャートである。
【図１４】図１３における校正処理を概念的に表すフローチャートである。
【図１５】図１４における校正処理時の３次元形状検出装置の外観を示す斜視図である。
【図１６】本発明の実施形態に従う校正用冶具の外観を示す斜視図である。
【図１７】本発明の実施形態に従う他の校正用冶具の外観を示す斜視図である。
【図１８】本発明の実施形態に従う別の校正用冶具の外観を示す斜視図である。
【図１９】本発明の実施形態に従うまた別の校正用冶具の外観を示す斜視図である。
【図２０】本発明の実施形態に従うさらに別の校正用冶具の外観を示す斜視図である。
【図２１】図２０の校正用冶具の回転テーブルへの配置方法の説明図である。
【図２２】図１５におけるカメラキャリブレーション処理ルーチンを概念的に表すフローチャートである。
【図２３】カメラキャリブレーションのためのフラッシュ光が校正用冶具ＫＡの全面に投影されたときの状態を示す図である。
【図２４】モニタＬＣＤに表示された校正用指標を指定するための画像を示す図である。
【図２５】図１５におけるプロジェクタキャリブレーション処理を概念的に表すフローチャートである。
【図２６】プロジェクタキャリブレーションのためのパターン光が校正用冶具ＫＡに投影されたときの状態を示す図である。
【図２７】モニタＬＣＤに表示されたパターン光境界を指定するための画像を示す図である。
【図２８】プロジェクタキャリブレーションのために複数のパターン光のうちの一つが校正用冶具ＫＡに投影されたときの状態を示す図である。
【図２９】プロジェクタキャリブレーションのために複数のパターン光のうちの他の一つが校正用冶具ＫＡに投影されたときの状態を示す図である。
【図３０】図１３における立体画像処理を概念的に表すフローチャートである。
【図３１】図３０における３次元色形状検出処理を３次元色形状検出処理ルーチンとして概念的に表すフローチャートである。
【図３２】図３１における撮像処理プログラムとして概念的に表すフローチャートである。
【図３３】図３２におけるマスクモータ制御プログラムとして概念的に表すフローチャートである。
【図３４】図３２における投影処理を投影処理サブルーチンとして概念的に表すフローチャートである。
【図３５】図１に示す３次元形状検出装置の作動の一例を説明するためのタイミングチャートである。
【図３６】図３１における３次元計測処理サブルーチンとして概念的に表すフローチャートである。
【図３７】図３６におけるコード画像生成プログラムを概念的に表すフローチャートである。
【図３８】図３１における３次元色形状検出結果生成ルーチンとして概念的に表すフローチャートである。
【図３９】本発明の実施形態に従う他の３次元形状検出装置の外観を示す斜視図である。
【図４０】本発明の実施形態に従うその他の校正用冶具の外観を示す斜視図である。
【図４１】本発明の実施形態に従うさらにその他の校正用冶具の外観を示す斜視図である。
【符号の説明】
【０３７９】
ＭＨ  測定ヘッド
ＲＴ  回転テーブル
ＨＤ  ホルダ
ＫＡ  校正用冶具
１０  ３次元形状検出装置
１２  投影部
１４  撮像部
１６  処理部
１８４  回転テーブル
５０１ａ，５０１ｂ，５０１ｃ  第１の平面部
５０２ａ，５０２ｂ  第２の平面部
５０３ａ  第１嵌合部
５０３ｂ  第２嵌合部
５１２ａ〜ｉ，５１３ａ〜ｆ  校正用指標
【図１】
2007212159.tif 000012
【図２】
2007212159.tif 000013
【図３】
2007212159.tif 000014
【図４】
2007212159.tif 000015
【図５】
2007212159.tif 000016
【図６】
2007212159.tif 000017
【図７】
2007212159.tif 000018
【図８】
2007212159.tif 000019
【図９】
2007212159.tif 000020
【図１０】
2007212159.tif 000021
【図１１】
2007212159.tif 000022
【図１２】
2007212159.tif 000023
【図１３】
2007212159.tif 000024
【図１４】
2007212159.tif 000025
【図１５】
2007212159.tif 000026
【図１６】
2007212159.tif 000027
【図１７】
2007212159.tif 000028
【図１８】
2007212159.tif 000029
【図１９】
2007212159.tif 000030
【図２０】
2007212159.tif 000031
【図２１】
2007212159.tif 000032
【図２２】
2007212159.tif 000033
【図２３】
2007212159.tif 000034
【図２４】
2007212159.tif 000035
【図２５】
2007212159.tif 000036
【図２６】
2007212159.tif 000037
【図２７】
2007212159.tif 000038
【図２８】
2007212159.tif 000039
【図２９】
2007212159.tif 000040
【図３０】
2007212159.tif 000041
【図３１】
2007212159.tif 000042
【図３２】
2007212159.tif 000043
【図３３】
2007212159.tif 000044
【図３４】
2007212159.tif 000045
【図３５】
2007212159.tif 000046
【図３６】
2007212159.tif 000047
【図３７】
2007212159.tif 000048
【図３８】
2007212159.tif 000049
【図３９】
2007212159.tif 000050
【図４０】
2007212159.tif 000051
【図４１】
2007212159.tif 000052