(57)【要約】【課題】鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成する。【解決手段】画像処理装置は、明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する装置である。画像処理装置は、前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成する投影パターン生成部７０２と、前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する撮像画像取得部７０３と、前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する詳細形状生成部７０５と、を有する。【選択図】図７
2020169856.tif 000002
【特許請求の範囲】
【請求項１】
明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理装置であって、
前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成するパターン生成手段と、
前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得手段と、
前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成手段と、
を有する
ことを特徴とする画像処理装置。
【請求項２】
明部と暗部の領域が交互に規則的に配置されるパターンを前記投影パターンに変換する関数のパラメータを取得するパラメータ取得手段をさらに有し、
前記パターン生成手段は、前記パラメータ取得手段で取得した前記パラメータと前記関数を用いて前記パターンを変換して前記投影パターンを生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記パラメータ取得手段は、前記計測対象物の形状に応じた前記パラメータを取得することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記パラメータ取得手段は、前記計測対象物が有する曲面の曲率に応じた前記パラメータを取得することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記投影パターンの前記計測対象物への投影、前記計測対象物の撮像、前記計測対象物に関する情報を取得するキャリブレーション手段と、
前記計測対象物の概略形状を取得する形状取得手段とを有し、
前記パラメータ取得手段は、前記キャリブレーション手段で取得した前記情報、前記形状取得手段で取得した前記計測対象物の概略形状に基づき、前記パラメータを取得することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記計測対象物に、カラーグラデーションパターンを投影し撮像したプレ撮像画像を取得するプレ画像取得手段を有し、
前記パラメータ取得手段は、前記プレ画像取得手段で取得した前記プレ撮像画像に基づき、前記パラメータを取得することを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記プレ画像取得手段は、前記計測対象物と同一色を除いた前記カラーグラデーションパターンを用いて前記プレ撮像画像を取得することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記投影パターンを前記計測対象物に投影する投影手段は、前記投影パターンを表示する表示手段であることを特徴とする請求項１から７の何れか一項に記載の画像処理装置。
【請求項９】
前記表示手段は複数で構成され、
前記複数の表示手段はそれぞれ、互いが異なる前記明部および前記暗部の領域を有する前記投影パターンを表示することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記表示手段は、ディスプレイであることを特徴とする請求項８または９に記載の画像処理装置。
【請求項１１】
前記表示手段は、前記投影パターンをスクリーンに投影して表示するプロジェクタであることを特徴とする請求項８または９に記載の画像処理装置。
【請求項１２】
前記投影パターンが投影された前記計測対象物を撮像した撮像画像を取得する画像取得手段は、１台のカメラが撮像した前記撮像画像を取得することを特徴とする請求項１から１０の何れか一項に記載の画像処理装置。
【請求項１３】
前記投影パターンは、互いが異なる複数のパターンで構成され、互いが直交する第１パターンおよび第２パターンを含むことを特徴とする請求項１から１２の何れか一項に記載の画像処理装置。
【請求項１４】
前記投影パターンは、グレイコードパターンであることを特徴とする請求項１から１３の何れか一項に記載の画像処理装置。
【請求項１５】
前記計測対象物は、鏡面体または透明体であることを特徴とする請求項１から１４の何れか一項に記載の画像処理装置。
【請求項１６】
コンピュータを請求項１から１５の何れか一項に記載の画像処理装置として機能させるためのプログラム。
【請求項１７】
明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理方法であって、
前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成する生成ステップと、
前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得ステップと、
前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成ステップと、
を有する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計測対象物の表面の三次元情報を生成する技術に関する。
【背景技術】
【０００２】
計測対象物にパターンを投影しカメラで撮像して取得した複数の撮像画像を基に、計測対象物（以下、被写体という）の表面の三次元情報を生成する技術がある。非特許文献１は、投影方向が同じとなる２箇所に位置付けられたディスプレイから被写体へバイナリコードパターンを投影しその反射を１台のカメラで撮像して取得した複数の撮像画像を基に、被写体の表面の三次元情報を生成する技術を開示している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｓｉｕ−Ｋｅｉ  Ｔｉｎ  ｅｔ  ａｌ．、”３Ｄ  Ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ  ｏｆ  Ｍｉｒｒｏｒ−ｔｙｐｅ  Ｏｂｊｅｃｔｓ  ｕｓｉｎｇ  Ｅｆｆｉｃｉｅｎｔ  Ｒａｙ  Ｃｏｄｉｎｇ．”、２０１６  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｐｈｏｔｏｇｒａｐｈｙ  （ＩＣＣＰ）、２０１６
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１では、被写体に鏡面反射する曲面があると、撮像画像中の反射像にてパターンの周期が曲面に対応する箇所で変化する。曲面の曲率が大きいと、パターンの周期が曲面に対応する箇所で極端に大きくなったり小さくなったりする。パターンの周期が変わると、撮像画像の注目画素と、ディスプレイおよびカメラの画素とを正確に対応させることができず、被写体の形状を推定する際の空間分解能を補償するには、必要な撮像画像の枚数が増加する。よって、被写体の表面の三次元情報を効率よく生成できなかった。
【０００５】
被写体の表面の三次元情報を効率よく生成できないという問題は、被写体に鏡面反射する曲面がある場合に限らず被写体に鏡面反射する非平面がある場合でも生じる。例えば、曲面ではなく複数の様々な方向をもった平面によって構成された立体である場合でも生じる問題である。
【０００６】
本発明は、鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る画像処理装置は、明部と暗部の領域が交互に配置されるパターンが投影された計測対象物の撮像画像に基づき、前記計測対象物の表面の三次元情報を生成する画像処理装置であって、前記パターンとして、前記撮像画像において前記明部および前記暗部の領域が規則的に現れるように、前記計測対象物の形状に応じて投影パターンを生成するパターン生成手段と、前記パターンが投影された計測対象物を撮像することにより得られる撮像画像を取得する取得手段と、前記撮像画像に基づいて、前記計測対象物の表面の三次元情報を生成する形状生成手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、鏡面反射する面がある計測対象物の表面の三次元情報を効率よく生成することができる。
【図面の簡単な説明】
【０００９】
【図１】液晶ディスプレイと被写体とカメラの関係を示す図
【図２】液晶ディスプレイからパターンが投影された被写体の撮像画像例を示す図
【図３】画像計測システムの概略構成例を示す図
【図４】グレイコードパターン例を示す図
【図５】撮像画像例を示す図
【図６】画像処理装置のハードウェア構成例を示す図
【図７】画像処理装置の機能構成を示すブロックを含む図
【図８】被写体の詳細形状生成処理の手順例を示すフローチャート
【図９】縦縞のグレイコードパターンに関するシミュレーションモデルの概略を示す図
【図１０】横縞のグレイコードパターンに関するシミュレーションモデルの概略を示す図
【図１１】グレイコードパターンの投影パターンへの変更を説明する図
【図１２】グレイコードパターン例を示す図
【図１３】グレイコードパターンが投影された被写体の撮像画像例を示す図
【図１４】グレイコードパターンと被写体の大きさの関係を説明する図
【図１５】被写体の注目画素と、２つのＬＣＤおよびカメラの画素との関係を示す図
【図１６】画像処理装置の機能構成を示すブロックを含む図
【図１７】被写体の詳細形状生成処理の手順例を示すフローチャート
【図１８】画像処理装置の機能構成を示すブロックを含む図
【図１９】被写体の詳細形状生成処理の手順例を示すフローチャート
【図２０】カラーグラデーションパターン例およびカラーグラデーションパターンが投影された被写体のプレ撮像画像例を示す図
【図２１】画像計測システムの概略構成例を示す図
【発明を実施するための形態】
【００１０】
本発明の実施形態の説明に先立ち、鏡面反射する面がある計測対象物（以下、被写体という）を撮像して得た複数の撮像画像に基づき、被写体の表面の三次元情報を生成する技術の概要について説明する。
【００１１】
先ず、被写体の表面の三次元情報を生成する技術である三次元形状計測では、通常複数台のカメラによって二次元情報を取得し、被写体の共通の特徴点を探索して三角測量を行い特徴点の三次元の位置を特定する。複数の特徴点の三次元の位置を点群として表面形状を形成することで被写体の三次元情報（以下、三次元形状ともいう）を取得する。しかし、三角測量を行うには特徴点が少なくとも二台のカメラから見える必要がある。ここで見えるとは、外部の環境光ないしは照明などの入射光が特徴点によって反射され、それがカメラで受光される必要がある、という意味である。そのため、被写体の表面反射特性はランバート反射かそれに近い特性であることが望ましい。これは、ランバート反射では全方位に光が反射されるため、特徴点がカメラから見える位置であれば、カメラによって反射光を測定できるためである。特徴点に関してはより望ましくは特徴点が抽出しやすいよう、模様など被写体面上で反射特性（色や反射強度など）が変化する特徴があることがより望ましい。
【００１２】
一方で、被写体が鏡面体のような強いスペキュラーの反射特性を持つ場合、必ずカメラ方向に反射光が出射するとは限らない。また、鏡面体は反射そのものに特徴がない場合が多いため、特徴点を特定しにくい。そのため、被写体が鏡面体のような強いスペキュラーの反射特性をもつ場合、被写体の三次元情報を生成することは非常に困難であった。
【００１３】
それに対して、非特許文献１は、投影方向が同じとなる２箇所に配置されたディスプレイを用い入射光の位置と方向を特定し、反射光の反射点位置を三角測量で導出して、鏡面体のような被写体の表面の三次元情報を生成する技術を開示している。
【００１４】
この手法では、二枚のディスプレイと被写体、反射光を測定するカメラが所定の位置に設置される。二枚のディスプレイ上のそれぞれ一画素の発光点、すなわち合計二画素の発光点を結ぶ線を入射光の方向とする。この二画素の発光点からの反射光がカメラ素子の同じ画素で測定されると、前記入射光と反射光の位置と方向が特定され、三角測量による反射点が導出可能となる。
【００１５】
この原理の第一の課題は、ディスプレイ上の発光点の二画素を総当たりで調べなくてはならず、そのため二枚のディスプレイの画素を一つずつ点灯して調べなくてはならないという点にある。この課題を克服するために非特許文献１においてはグレイコードパターンを用いた点灯画素の特定手法を開示している。グレイコードパターンは一定の周期をもった二値の縞画像で、縦横それぞれ数枚から十数枚の画像を組み合わせることで容易にディスプレイ上の発光画素とカメラによって取得した反射光の位置を紐付けることが可能である。
【００１６】
この手法では、取得できる鏡面体の反射方向がディスプレイの方向で限定される。そのため、被写体が立体物である場合、回転ステージに固定するなどしてあらゆる方向からの被写体のデータを取得しステッチングすることで全体の立体形状を取得する。
【００１７】
しかし、回転ステージによる多数回の撮像プロセスはそのまま撮像時間の増加につながる。そのため、一度の撮像でなるべく広い角度から入射する光線のデータを収集することが望ましい。そのためには、複数、あるいは巨大な発光スクリーンを用いるか、被写体と液晶ディスプレイの距離を狭めるか、あるいはその両方を行う必要がある。
【００１８】
図１は、液晶ディスプレイと被写体とカメラの関係を示す図である。被写体１０２は、鏡面体で、球体であるとする。液晶ディスプレイ１０１は、グレイコードパターンなどのパターンを表示可能な装置である。液晶ディスプレイ１０１は、被写体１０２に対して所定の距離Ｌ１となるディスプレイ位置に配置される。カメラ１０３は、１台であり、パターンが液晶ディスプレイ１０１に表示されて液晶ディスプレイ１０１から投影された被写体１０２を撮像可能な位置に配置される。カメラ１０３は、液晶ディスプレイ１０１からパターンが投影された被写体１０２を撮像して撮像画像を取得する。
【００１９】
図２（ａ）−（ｄ）は、それぞれのディスプレイ位置に配置された液晶ディスプレイ１０１からパターンが投影された被写体１０２の撮像画像例を示す図である。図２（ａ）は、距離Ｌ１が７０ｃｍである場合の撮像画像例、図２（ｂ）は、距離Ｌ１が４５ｃｍである場合の撮像画像例、図２（ｃ）は、距離Ｌ１が２０ｃｍである場合の撮像画像例、図２（ｄ）は、距離Ｌ１が５ｃｍである場合の撮像画像例を示している。
【００２０】
撮像画像２００では、被写体の輪郭２０１内にて、被写体に投影されたパターンの鏡面反射像２１０のみが視認可能となる。図２（ａ）−（ｄ）に示すように、被写体１０２と液晶ディスプレイ１０１との距離Ｌ１が短く近いほど鏡面反射像２１０が大きくなることから、被写体１０２の広範囲の領域にて鏡面反射していることがわかる。被写体１０２が球体であることを考慮すると、これは、さまざまな角度からの入射光を反射した鏡面反射像をカメラ１０３で撮像できることを示している。
【００２１】
撮像画像２００の鏡面反射像２１０を見ると、パターンの形状は、被写体１０２と液晶ディスプレイ１０１との距離Ｌ１（液晶ディスプレイ１０１のディスプレイ位置）によって異なり、空間的に均一でないことがわかる。すなわち、撮像画像２００の鏡面反射像２１０において、左右方向や上下方向の位置によってパターン幅（明部または暗部となる領域の大きさ）が異なり均一でないことがわかる。特に、図２（ｄ）に示すように、図２（ａ）−（ｃ）の撮像画像例と比べて、鏡面反射像２１０の中央部分２１１にあってはパターンの周期が大きく（パターン幅が大きく）強調されていることがわかる。一方、鏡面反射像２１０の上下方向の中央部分で左右方向の右端部分２１２にあっては、パターンの周期が小さく（パターン幅が小さく）、パターンを判別できないほどにつぶれていることがわかる。
【００２２】
１つのパターン幅が撮像画像の複数の画素に対応することから、パターンの周期が増大すると、それに伴い、被写体形状の推定にて、空間分解能が低下することを示している。よって、空間分解能を補償するためには、さらに細かいレベルのパターンが投影された被写体を撮像する必要があり、これは、撮像枚数がさらに増えることを意味する。一方、つぶれた個所においては、複数のパターン幅が撮像画像の１つの画素に対応することになり、画素単位で白黒を判定できず、二値判定による値が不安定となる。そのため、これ以上細かいグレイコードパターンが投影された被写体の撮像が無意味であり、この撮像で取得した撮像画像はむしろノイズ要因となりやすい。ノイズ要因である不安定さが残ったまま撮像枚数のみがいたずらに増えることは、被写体の正確な形状取得には不利となる。
【００２３】
このように、鏡面反射する面がある被写体に対してグレイコードパターンを投影しその反射を撮像した場合、被写体に曲率の大きな面があると、反射像にてパターンの周期が場所によって極端に変化し、被写体形状の推定に必要な撮像枚数が増加してしまう。また一方で場所によってはノイズが増えてしまう。最も好適な状態は、カメラ、すなわち撮像側から見てパターンの縞がほぼ均等になることである。それにより、撮像枚数が最小限に抑えられ、且つ、ノイズが少なくなる。
【００２４】
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らず、種々の変形及び変更が可能である。
【００２５】
［実施形態１］
図３は、本実施形態に係る画像計測システムの概略構成例を示す図である。本実施形態の画像計測システムは、パターン表示装置３０１、撮像装置３０２、被写体ステージ（以下、ステージという）３０４、画像処理装置３０５を有する。画像処理装置３０５は、パターン表示装置３０１、撮像装置３０２およびステージ３０４と接続されて画像および各種の制御情報などを送受信可能に構成される。
【００２６】
パターン表示装置３０１は、グレイコードパターンなどのパターンを表示する装置である。パターン表示装置３０１として、例えば、液晶ディスプレイ（ＬＣＤ：Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの、パターンを表示する表示装置を用いることが可能である。また、パターン表示装置３０１として、例えば、ブラウン管やプロジェクタのような投影装置を用いることが可能である。パターンを被写体３０３に投影するプロジェクタを用いる場合、例えば、不透明な薄い板（スクリーン）に投影することで板の位置にディスプレイを設置したことと同等の効果を有する。
【００２７】
パターン表示装置（以下、ＬＣＤという）３０１は、不図示の移動装置により、被写体３０３（ステージ３０４）に対して前後方向に移動可能となっている。ＬＣＤ３０１は、第一の位置と、第一の位置とＬＣＤ３０１の投影方向が同じであるが、第一の位置と異なる第二の位置に位置付け可能である。第一の位置は、被写体３０３に対して近接し、被写体３０３の表面とＬＣＤ３０１の距離がＬ１であって、被写体３０３の中心（ステージ３０４の中心）とＬＣＤ３０１の距離がＬ１１となる位置である。第二の位置は、被写体３０３に対して第一の位置の後方側であって、第一の位置と比べて被写体３０３に対して離間し、被写体３０３とＬＣＤ３０１の距離がＬ１２（＞Ｌ１１）となる位置である。本実施形態では、非特許文献１の原理と同様、第一および第二の位置それぞれに位置付けられたＬＣＤ３０１でパターンを表示して被写体３０３に投影し、パターンが投影された被写体３０３を撮像装置３０２によって撮像する。すなわち、撮像装置３０２による被写体３０３の撮像は、ＬＣＤ３０１が第一および第二の位置それぞれに位置付けられた場合の２回実行する。ただし、これら二つの位置は単純に被写体３０３に対して前後方向位置となる関係であり、ＬＣＤ３０１を移動させる距離も理論上５ｃｍ程度である。以下、本実施形態では、ＬＣＤ３０１を第一の位置に位置付けた場合について説明する。ＬＣＤ３０１を第二の位置に位置付けた場合においても、ＬＣＤ３０１と被写体３０３との位置関係にほぼ変化がないとみなせるため、本実施形態の原理は第二の位置においても同様に適用可能であることに留意されたい。
【００２８】
なお、ＬＣＤ３０１は、画像処理装置３０５から入力されたパターンを表示する。ＬＣＤ３０１がパターンを表示することで、ＬＣＤ３０１に表示したパターンは、ステージ３０４に固定された被写体３０３に投影される。
【００２９】
撮像装置３０２は、例えば、１台のカメラであって、ステージ３０４に固定された被写体３０３を撮像して撮像画像を取得する。撮像装置（以下、カメラという）３０２の光軸は、被写体３０３（ステージ３０４）の中心と一致するように調整される。カメラ３０２の画角は、例えば、光学的に被写体ステージ３０４に固定された被写体３０３の全体が入るように調整される。カメラ３０２は、取得した撮像画像を画像処理装置３０５に出力する。
【００３０】
ステージ３０４は、被写体３０３を固定可能な台であって、ステージ３０４の中心軸周りに回転可能である。これにより、ステージ３０４に固定された被写体３０３は、回転方向全体の領域がカメラ３０２の撮像方向（撮像視野）に正対可能となり、カメラ３０２でステージ３０４の回転方向に沿う被写体３０３全体の領域を撮像できる。なお、被写体３０３は、例えば、その中心がステージ３０４の中心軸と一致するように固定される。ステージ３０４には位置センサ（不図示）が設けられており、位置センサが検出したステージ３０４の回転位置データは、画像処理装置３０５に出力される。
【００３１】
画像処理装置３０５は、例えば、パーソナルコンピュータなどの任意の情報処理装置である。画像処理装置３０５は、ユーザ操作を受け付けるキーボードやマウスなどの入力装置３０６を有する。画像処理装置３０５は、入力装置３０６を介したユーザ操作で後述のパラメータを選択可能に表示する表示装置３０７を有する。
【００３２】
本実施形態では、被写体３０３は、例えば全領域に鏡面を持ち、その形状が直径１０ｃｍの球体であるとする。ＬＣＤ３０１と被写体３０３の中心からの距離は１０ｃｍであり、ＬＣＤ３０１の横幅（図３にて上下方向の長さ）は１００ｃｍ（１６：９のアスペクト比のディスプレイで４６インチサイズ相当）であるとする。カメラ３０２は、中心点がＬＣＤ３０１の端部（図３にてＬＣＤ３０１の下端部）から５ｃｍの位置に配置されると共に、撮像方向が被写体３０３となり、カメラ３０２の光軸が被写体３０３の中心に一致するように配置される。
【００３３】
ここで、ＬＣＤ３０１の画素とグレイコードパターンとの関係について説明する。図４は、ＬＣＤ３０１に表示されるグレイコードパターンの従来例を示す図である。グレイコードパターン４１１−４１６は縦縞のグレイコードパターン例であり、グレイコードパターン４２１−４２６は横縞のグレイコードパターン例である。グレイコードは、明部および暗部で示され点灯非点灯の白黒二値で表現されたバイナリコードの一種であり、ノイズに対してロバストになるように工夫されている。すべてのグレイコードパターン４１１−４１６、４２１−４２６を符号の若番から順番にＬＣＤ３０１に表示し何枚目で点灯であり何枚目で非点灯であるかが、ＬＣＤ３０１の各画素で固有である特徴を持つ。すなわち、ＬＣＤ３０１の各画素は、グレイコードと対応付けられ固有のグレイコードを持つ。そのため、縦縞または横縞のグレイコードパターンが例えば１０枚のグレイコードパターンであれば一方向１０２４画素について固有のパターンが与えられる。縦縞または横縞のグレイコードパターンが例えば１２枚のグレイコードパターンであれば、一方向４０９６画素について固有のパターンが与えられる。ＬＣＤ３０１のような二次元配列であれば縦縞および横縞のグレイコードパターンで同様に、ＬＣＤ３０１に表示する。例えば、縦縞および横縞それぞれ１０枚のグレイコードパターンを用いることで１０２４×１０２４のディスプレイの各画素について固有のパターンを与えることができる。すなわち、グレイコードパターンの枚数は、ＬＣＤ３０１の解像度に応じて適宜に設定される。
【００３４】
したがって、カメラ３０２側では、グレイコードパターンの何枚目で点灯し、何枚目で非点灯であるかを記録するだけで、カメラの各画素に到達する反射光はＬＣＤ３０１のどの画素を発光させることで取得された反射光であるかを特定することができる。
【００３５】
図５は、従来例として縦縞のグレイコードパターン４１６をＬＣＤ３０１から被写体３０３に投影し、その反射光をカメラ３０２で撮像した撮像画像例を示す図である。撮像画像５００は、被写体の輪郭５０１内にて、被写体に投影されたグレイコードパターンの反射像５１０のみが視認可能な画像である。
【００３６】
反射像５１０は、中央部分５１１にてパターンの周期が大きくなる特徴を有する。すなわち、反射像５１０は、中央部分５１１にて１パターン当たりの幅が大きくなる特徴を有する。反射像５１０は、左端部分および右端部分５１２にてパターンの周期が確認できないほど小さくなる特徴を有する。すなわち、反射像５１０は、右端部分５１２にて１パターン当たりの幅が小さくなる特徴を有する。
【００３７】
パターンの周期が大きい反射像５１０の中央部分５１１は、まだ空間的に解像される余地があるため、さらに細かいグレイコードパターンが投影された被写体を撮像して被写体の反射像を含む撮像画像を取得する必要がある。一方、パターンの周期が小さい反射像５１０の右端部分５１２では、パターンを確認し難く、グレイコードパターンの白黒判定が困難であり、これ以上細かいパターンを利用することは意味が無いことを示している。むしろ、反射像の右端部分５１２および左端部分に対し二値化処理を行う際にどちらになるか不確定要因となり、ノイズの原因となりうる。しかしながら、従来例で、解像度を増すには、反射像５１０の中央部分５１１の解像度に合わせてさらに細かいパターンを用いた撮像を余儀なくされる。
【００３８】
以上を前提とし、以下では本実施形態の詳細について説明する。
【００３９】
＜画像処理装置のハードウェア構成＞
図６は、画像処理装置３０５のハードウェア構成例を示す図である。画像処理装置３０５は、ＣＰＵ３０５１、ＲＡＭ３０５２、ＲＯＭ３０５３、二次記憶装置３０５４、入力インターフェース３０５５、および出力インターフェース３０５６を含む。画像処理装置３０５の各構成要素は、システムバス３０５７によって相互に接続される。画像処理装置３０５は、入力インターフェース３０５５を介してカメラ３０２および入力装置３０６および外部記憶装置６０１と接続される。画像処理装置３０５は、出力インターフェース３０５６を介してＬＣＤ３０１および表示装置３０７および外部記憶装置６０１と接続される。
【００４０】
ＣＰＵ３０５１は、ＲＡＭ３０５２をワークメモリとして、ＲＯＭ３０５３などに格納されたプログラムを実行し、システムバス３０５７を介して画像処理装置３０５の各構成要素を統括的に制御する。これにより、後述する様々な処理が実行される。二次記憶装置３０５４は、画像処理装置３０５で取り扱われる種々のデータを記憶する記憶装置であり、例えばハードディスクドライブ（ＨＤＤ）が用いられる。ＣＰＵ３０５１は、システムバス３０５７を介して二次記憶装置３０５４へのデータの書き込みおよび二次記憶装置３０５４に記憶されたデータの読出しを行う。なお、二次記憶装置３０５４にはＨＤＤの他に、光ディスクドライブやフラッシュメモリなど、様々な記憶デバイスを用いることが可能である。
【００４１】
入力インターフェース３０５５は、例えば、ＵＳＢやＩＥＥＥ１３９４等のシリアルバスインターフェースである。画像処理装置３０５は、入力インターフェース３０５５を介して、外部装置からデータや命令等を入力する。本実施形態では、画像処理装置３０５は、入力インターフェース３０５５を介して、外部記憶装置６０１（例えば、ＨＤＤ、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリなどの記憶媒体）からデータを取得する。
【００４２】
画像処理装置３０５は、カメラ３０２で被写体を撮像して取得した撮像画像などのデータを、入力インターフェース３０５５を介して取得する。また本実施形態では、画像処理装置３０５は、入力装置３０６に入力されたユーザの指示を、入力インターフェース３０５５を介して取得する。入力装置３０６は、マウスやキーボードなどの入力装置であり、ユーザの各種の指示を入力する。
【００４３】
出力インターフェース３０５６は、入力インターフェース３０５５と同様にＵＳＢやＩＥＥＥ１３９４等のシリアルバスインターフェースである。なお、出力インターフェース３０５６は、例えばＤＶＩやＨＤＭＩ（登録商標）等の映像出力端子であってもよい。画像処理装置３０５は、出力インターフェース３０５６を介して、外部装置にデータ等を出力する。本実施形態では、画像処理装置３０５は、出力インターフェース３０５６を介してＬＣＤ３０１や表示装置３０７や外部記憶装置６０１に、ＣＰＵ３０５１によって処理されたデータ（例えば、画像データ）を出力する。なお、画像処理装置３０５の構成要素は上記以外にも存在し得るが、ここでは説明を省略する。
【００４４】
＜画像処理装置の機能構成＞
次に、画像処理装置３０５の機能構成について、図７を参照して説明する。図７は、画像処理装置３０５の機能構成を示すブロックを含む図である。画像処理装置３０５は、パラメータ取得部７０１、投影パターン生成部７０２、撮像画像取得部７０３、キャリブレーション取得部７０４、詳細形状生成部７０５を有する。被写体３０３は、ステージ３０４に固定されているとする。なお、画像処理装置３０５の各部の一部もしくは全部は、ＣＰＵ３０５１が二次記憶装置３０５４に格納されたプログラムをＲＡＭ３０５２に展開し、実行することで実現される。あるいは、各部の一部もしくは全部は、専用のハードウェアによって実現されてもよい。
【００４５】
パラメータ取得部７０１は、例えばマウスやキーボードなどの入力操作によってユーザが指定したパラメータをパラメータ記憶部７１０から取得する。パラメータ記憶部７１０は、例えば、詳細につき後述するパラメータを、パラメータと被写体３０３の形状と対応させたルックアップテーブルなどのデータを格納する。パラメータ記憶部７１０は、例えば、外部記憶装置６０１などで実現される。被写体３０３の形状として、例えば、曲率や曲率半径などが挙げられる。なお、パラメータは、予め、曲率や曲率半径などの被写体３０３の形状と対応させて導出されたデータである。パラメータ記憶部７１０に格納された複数のパラメータは、ユーザにより選択可能に表示装置３０７に表示される。パラメータ取得部７０１は、取得したパラメータを投影パターン生成部７０２に出力する。
【００４６】
投影パターン生成部７０２は、グレイコードパターンとパラメータと後述の式１などの変換式を用いて、ＬＣＤ３０１に表示する投影グレイコードパターン（以下、投影パターンという）を生成する。投影パターン生成手順の詳細については後述する。投影パターン生成部７０２は、生成した投影パターンを撮像画像取得部７０３に出力する。なお、投影パターンは、ＬＣＤ３０１の解像度などに応じた枚数のグレイコードパターンで構成される。投影パターンは、詳細につき後述する互いが異なる複数のグレイコードパターンで構成され、互いが直交する第１パターン（縦縞のグレイコードパターン）および第２パターン（横縞のグレイコードパターン）を含む。グレイコードパターンは、公知の手法で作成されたパターンであって、二次記憶装置３０５４などに予め格納される。
【００４７】
撮像画像取得部７０３は、投影パターンをＬＣＤ３０１に出力する。ＬＣＤ３０１が投影パターンを表示して被写体３０３に投影する。撮像画像取得部７０３は、投影パターンが投影された被写体３０３をカメラ３０２で撮像した撮像画像（以下、撮像データともいう）を取得する。撮像画像は、投影された投影パターンを被写体の鏡面で反射した鏡面反射像を含む。撮像画像取得部７０３は、取得した撮像画像を詳細形状生成部７０５に出力する。
【００４８】
キャリブレーション取得部７０４は、キャリブレーション記憶部７１１に格納されたキャリブレーション情報を取得し、取得したキャリブレーション情報を詳細形状生成部７０５に出力する。キャリブレーション情報は、例えば、ＬＣＤ３０１の位置および姿勢等の投影パターンの投影に関する情報、カメラ３０２の位置および姿勢等の撮像に関する情報、被写体の３０３の位置等に関する情報を含む。キャリブレーション情報は、予め公知の手法で生成される。キャリブレーション記憶部７１１は、例えば、外部記憶装置６０１などで実現される。
【００４９】
詳細形状生成部７０５は、撮像画像取得部７０３から入力された撮像画像と、キャリブレーション取得部７０４から入力されたキャリブレーション情報とを用いて、被写体３０３の詳細な立体形状（三次元形状）に関する詳細形状情報を生成する。詳細形状情報（三次元情報ともいう）の生成手順の詳細については後述する。詳細形状生成部７０５は、生成した被写体３０３の詳細形状情報（以下、詳細形状ともいう）を詳細形状記憶部７１２に出力する。
【００５０】
詳細形状記憶部７１２は、詳細形状生成部７０５から入力された詳細形状を格納する。詳細形状記憶部７１２は、例えば、二次記憶装置３０５４などで実現される。
【００５１】
（詳細形状生成処理手順例）
次に、画像処理装置３０５で行われる、詳細形状の生成処理手順について、図８を参照して説明する。図８は、被写体の詳細形状情報生成処理手順例を示すフローチャートである。具体的には、画像処理装置３０５がパターン、パラメータ、キャリブレーション情報および撮像画像に基づき生成した、被写体の詳細形状情報を外部記憶装置に格納するまでの手順を示したフローチャートである。図８のフローチャートで示される一連の処理は、ＣＰＵ３０５１が二次記憶装置３０５４に記憶されているプログラムコードをＲＡＭ３０５２に展開し実行することにより行われる。あるいはまた、図８におけるステップの一部または全部の機能をＡＳＩＣまたは電子回路等のハードウェアで実現してもよい。以降、フローチャートに従い、処理のフローを説明する。なお、フローチャートの説明における記号「Ｓ」は、ステップを表すものとする。この点、以下のフローチャートの説明においても同様とする。
【００５２】
Ｓ８０１にて、パラメータ取得部７０１は、パラメータ記憶部７１０に格納された複数のパラメータの中から、入力装置３０６を介して不図示のユーザによるパラメータの選択を受け付け、選択されたパラメータを取得して投影パターン生成部７０２に出力する。例えば、パラメータ取得部７０１は、予め導出されたパラメータと曲率半径の対応関係を示すデータを表示装置３０７に表示し、入力装置３０６を介してユーザによるパラメータの選択を受け付け、受け付けたパラメータを投影パターン生成部７０２に出力する。すなわち、投影パターン生成部７０２は、パラメータ記憶部７１０に格納されパラメータの中から、入力装置３０６を介したユーザ操作で選択されたパラメータを取得する。投影パターン生成部７０２は、二次記憶装置３０５４などに格納された複数のグレイコードパターンを取得する。投影パターン生成部７０２が取得する複数のグレイコードパターンは、従来の手法で作成された、明部と暗部の領域が交互に規則的に配置されるグレイコードパターンであって、例えば、図４に示すグレイコードパターンである。
【００５３】
パラメータは、あらかじめ被写体の形状とパラメータの対応を実測して記録、あるいは演算して導出することで取得される。また、パラメータは、シミュレーションなどの演算で導出した結果から作成されたパラメータのルックアップテーブル（ＬＵＴ）をデータベースに格納しておき、データベースからパラメータのＬＵＴを読み込んでもよい。
【００５４】
なお、被写体が目標の形状で生産されたか、被写体にキズなどがないかなどの検査用途などで被写体の詳細形状情報を用いる場合、投影パターンを生成するための変換式に用いるパラメータを固定値とし、パラメータの取得を省略することも可能である。これは、被写体の形状が全て同じであり、変換式に用いるパラメータも被写体間の差が無く全て同じであるためである。
【００５５】
Ｓ８０２にて、投影パターン生成部７０２は、パラメータ取得部７０１から入力されたパラメータと、二次記憶装置３０５４などから取得したグレイコードパターンとに基づき、被写体３０３に投影する投影パターンを生成する。投影パターン生成部７０２は、生成した投影パターンを撮像画像取得部７０３に出力する。投影パターンの生成は、投影パターン生成部７０２がＬＣＤ３０１の解像度に応じて取得した全てのグレイコードパターンについて実行する。
【００５６】
Ｓ８０３にて、撮像画像取得部７０３は、投影パターン生成部７０２から入力された投影パターンをＬＣＤ３０１に出力する。ＬＣＤ３０１は、撮像画像取得部７０３から入力された投影パターンを表示して被写体３０３に投影する。撮像画像取得部７０３は、投影パターンが投影された被写体３０３をカメラ３０２で撮像して撮像画像（以下、撮像データともいう）を取得する。撮像画像取得部７０３は、取得した撮像画像を詳細形状生成部７０５に出力する。このような投影パターンの投影と被写体３０３の撮像とは、Ｓ８０２において生成した全ての投影パターンを用いて実行する。投影パターンの投影と被写体３０３の撮像は、ステージ３０４の回転方向に沿う被写体３０３の周方向全体に対して実行する。
【００５７】
Ｓ８０４にて、詳細形状生成部７０５は、キャリブレーション取得部７０４が取得したキャリブレーション情報と、撮像画像取得部７０３から入力された撮像画像に基づき、被写体３０３の詳細形状情報を生成する。詳細形状生成部７０５は、生成した被写体３０３の詳細形状情報を詳細形状記憶部７１２に出力する。詳細形状記憶部７１２は、詳細形状生成部７０５から入力された被写体３０３の詳細形状情報を格納する。なお、キャリブレーション取得部７０４は、キャリブレーション情報をキャリブレーション記憶部７１１から取得する。
【００５８】
以下、パラメータの導出例について、具体的に説明する。
【００５９】
先ず、被写体に関し、いくつかの形状についてシミュレーションを実行する。図９及び図１０はそのシミュレーションに関しての概略を示した図である。
【００６０】
図９（ａ）、（ｂ）は、投影パターンのうち、縦縞のグレイコードパターン（第１パターン）に関するシミュレーションモデルの概略を示す図である。図９（ａ）は、被写体とディスプレイとカメラ素子（画像センサ）の関係例を示す図である。図９（ｂ）は、図９（ａ）のモデルにて、ディスプレイ上の相対位置座標とカメラ素子の位置座標の関係例を示すグラフである。ここでは、ＬＣＤ３０１、カメラ素子３０２１、全領域に鏡面を持つ被写体３０３の３つの要素からなる簡単なモデルを用いる。ＬＣＤ３０１およびカメラ素子３０２１は、所望の位置に配置される。ＬＣＤ３０１は被写体３０３との距離がＬ１となる位置に配置される。被写体３０３を半径ｒの球体とする。グレイコードパターンの導出範囲は、図９（ａ）に示す通り上から俯瞰した２次元とする。実際のカメラは光学的には焦点を中心にスケーリングファクターを伴い素子に投影されるモデルが正しいが、ここでは、簡略化のためカメラ素子は無限遠にあり、球体の被写体で反射された光は平行にカメラ素子に直接投影される、とする。
【００６１】
先ず、ＬＣＤ３０１の任意の画素を点灯した場合、被写体３０３で鏡面反射しカメラ素子３０２１のどの画素で観測されるかについて導出する。すなわち、ＬＣＤ３０１の任意の画素、被写体の表面の位置、カメラ素子の画素の対応関係について導出する。シミュレーションの場合、カメラ素子３０２１の任意の画素がカメラ素子３０２１からトレースし、ＬＣＤ３０１のどの画素に対応するかを導出するほうが簡便である。
【００６２】
図９（ｂ）において、縦軸はカメラ素子３０２１のｙ位置座標（画素）を示している。縦軸の「０」は、ＬＣＤ３０１から投影し被写体３０３で反射してカメラ素子３０２１に至る、被写体でのパターンの反射領域において、カメラの素子の左端に対応する位置を示している。縦軸の「１」は、ＬＣＤ３０１から投影し被写体３０３で反射してカメラ素子３０２１に至る、被写体でのパターンの反射領域において、カメラの素子の右端に対応する位置を示している。
【００６３】
図９（ｂ）において、横軸は、単位がｍであって、カメラ素子３０２１の画素に対応するＬＣＤ３０１上の相対位置座標を示している。横軸の「−０．５」は、カメラ素子の位置「０」に対応するＬＣＤ上の相対位置を示している。横軸の「０．５」は、カメラ素子の位置「１」に対応するＬＣＤ上の相対位置を示している。横軸の「０」は、カメラ素子の位置「０」に対応するＬＣＤ上の相対位置とカメラ素子の位置「１」に対応するＬＣＤ上の相対位置の中間となるＬＣＤ上の相対位置を示している。
【００６４】
図９（ｂ）に示すように、実線の曲線が中央部でカメラ素子のｙ位置座標が極端に変化する形状となっていることがわかる。これは、図５においてグレイコードのパターンが拡大され周期が大きくなっている箇所５１１に相当する。また、カメラ素子のｙ位置座標の変化がほとんどない左右両端（縦軸の「０」付近や「１」付近）はパターンがつぶれている箇所５１２に相当する。
【００６５】
図９（ｂ）において、実線の曲線は、シグモイド関数に近いことがわかる。そこで、図９（ｂ）の実線の曲線を以下の式１で近似する。
【００６６】
【数１】
2020169856.tif 000003
【００６７】
式１には、ａとｂの二つのパラメータが存在する。パラメータａ、ｂは、例えば、図９（ｂ）の実線の曲線に基づき導出される。パラメータｂは、図９（ｂ）のグラフにて、カメラ素子のｙ位置座標の半値（０．５）における横軸座標を、パラメータａは、その座標におけるグラフの傾きｋから以下の式２を用いてａ＝４ｋで定義すればよい。
【００６８】
【数２】
2020169856.tif 000004
【００６９】
その結果、図９（ｂ）の場合、以下の式（３）が導出される。
【００７０】
【数３】
2020169856.tif 000005
【００７１】
横縞のグレイコードパターンに関しても、縦縞のグレイコードパターンと同様に、導出する。図１０（ａ）−（ｃ）は、投影パターンのうち、横縞のグレイコードパターン（第２コードパターン）に関するシミュレーションモデルの概略を示す図である。図１０（ａ）は、図９（ａ）のカメラ素子から被写体を見た状態にて、被写体とディスプレイとカメラ素子（画素センサ）の関係例を示す図である。図１０（ｂ）は、図１０（ａ）に示す被写体を俯瞰した図である。図１０（ｃ）は、図１０（ａ）、（ｂ）のモデルにて、ディスプレイ上の相対位置座標とカメラ素子の位置座標の関係例を示すグラフである。
【００７２】
横縞のグレイコードパターンの導出は、図１０（ａ）、（ｂ）にて、被写体３０３における一点破線３０３１上の位置での反射が、ＬＣＤ３０１のどの光点からの反射かを基準として作成する。一点破線３０３１は被写体中央からＬＣＤ３０１方向のベクトル３０３３と、カメラ中心方向のベクトル３０３２の成す角の中心を通る線であり（図１０（ｂ）参照）、この線に沿ってグレイコードの間隔が均等になるようにすることが望ましい。
【００７３】
図１０（ｃ）において、縦軸（ｚ座標）は、カメラ素子３０２１の一点破線３０３１上の画素を示し、横軸（ｚ０座標）は、カメラ素子３０２１の画素に対応するＬＣＤ３０１上の相対位置座標を示している。縦軸は、被写体である球上の相対的な位置で「０」が被写体中央を示し、「±１」がそれぞれ、被写体３０３の上下の頂点部の位置を示している。横軸は、単位がｍであって、ＬＣＤ３０１の縦方向の座標を示している。
【００７４】
図１０（ｃ）において、実線の曲線は、縦方向の縞を持つグレイコードパターンの場合と同様、シグモイド関数に近いことがわかる。そこで、図１０（ｃ）のグラフでは、縦軸の範囲が−１から１の範囲であることから、図１０（ｃ）の実線の曲線を以下の式４で近似する。
【００７５】
【数４】
2020169856.tif 000006
【００７６】
パラメータｃ，ｄは、例えば、図１０（ｃ）の実線の曲線に基づき導出される。パラメータｄは、図１０（ｃ）のグラフにて、カメラ素子のｚ位置座標の原点（０）における横座標（ｚ０）を、パラメータｃは、その座標におけるグラフの傾きから、上述の図９（ｂ）の場合と同様にして導出される。その結果、図１０（ｃ）の場合、以下の式５が導出される。
【００７７】
【数５】
2020169856.tif 000007
【００７８】
ここで、図９（ｂ）のグラフに関し、図１１を用いて具体的に説明する。図１１は、公知の手法で作成したグレイコードパターン１１０１と投影パターン１１０２の関係例を説明する図である。縦軸は、カメラ素子の位置座標を示している。横軸は、ディスプレイ上の相対位置座標を示している。グラフ中の実線の曲線は、シミュレーションなどで予め導出したパラメータａ，ｂの値を式１に代入して得られた式に対応する。
【００７９】
図１１に示すように、公知の手法で作成したグレイコードパターン１１０１を投影パターン１１０２に変換できることがわかる。すなわち、投影パターン１１０２をＬＣＤ３０１に表示して被写体３０３に投影することで、投影パターン１１０２に投影された被写体３０３をカメラ３０２で撮像して取得した撮像画像においては、公知の手法で作成したグレイコードパターンと同じとなる。撮像画像において、明部と暗部の領域が交互に規則的に配置されるグレイコードパターン１１０１となる。グレイコードパターン１１０１に基づき被写体の表面の三次元情報を生成することで、空間分解能の低下が抑制される。
【００８０】
図１２は、上述の図１０および図１１を用いて説明した手法と同じ手法を用いて、投影パターン生成部７０２で生成したグレイコードパターン例（以下、本実施形態の投影パターン例という）を示す図である。本実施形態の投影パターンと従来のグレイコードパターンとの違いについて説明する。先ず、従来のグレイコードパターンでは、例えば、図４に示すように、白黒明暗のパターンの周期が一定である。すなわち、明部と暗部の領域が交互に規則的に配置される。これに対して、本実施形態で使用するグレイコードパターンにおいては、例えば、縦縞のパターン１２１１−１２１５のように、白黒明暗のパターンの周期が不定に変化する。縦縞のパターン１２１１−１２１５では、一般的には左右方向両側で周期が大きく、左右方向中央部で周期が小さくなり、全体的に中央に対して縮小した形になることがわかる。また、横縞のパターン１２２１−１２２５のように、白黒明暗のパターンの周期が不定に変化する。また、横縞のパターン１２２１−１２２５では、一般的には上下方向両側で周期が大きく上下方向中央部で周期が小さくなり、全体的に中央に対して縮小した形になることがわかる。
【００８１】
図１３は、グレイコードパターンが投影された被写体の撮像画像例を示す図である。なお、図１３（ａ）−（ｄ）の各図に示されるグレイコードパターンは、同じレベル（縞数）のコードであるとする。
【００８２】
図１３（ａ）は、従来の縦縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。図１３（ｂ）は、投影パターン生成部７０２で生成した縦縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。鏡面反射像１３１０では、右端部分１３１１においてグレイコードパターンの白黒明暗がつぶれ二値判定が困難な領域となっていることがわかる。これに対し、鏡面反射像１３２０では、右端部分１３２１においても、グレイコードパターンの白黒明暗が均一である領域となっていることがわかる。すなわち、撮像画像において、明部および暗部の領域が規則的に交互に現われていることがわかる。
【００８３】
図１３（ｃ）は、従来の横縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。図１３（ｄ）は、投影パターン生成部７０２で生成した横縞のグレイコードパターンが投影された被写体の撮像画像例を示す図である。鏡面反射像１３３０では、上端部分１３３１においてグレイコードパターンの白黒明暗がつぶれ二値判定が困難な領域となっていることがわかる。これに対し、鏡面反射像１３４０では、上端部分１３４１においても、グレイコードパターンの白黒明暗が均一である領域となっていることがわかる。すなわち、撮像画像において、明部および暗部の領域が規則的に交互に現われていることがわかる。
【００８４】
上述したように、本実施形態の投影パターンによる撮像画像では、縦縞および横縞のどちらのパターンであっても、従来のグレイコードパターンによる撮像画像と比べて縞の間隔が均一化していることが確認された。また、従来のグレイコードパターンによる撮像画像では、疎になっていた領域が密に、密になってパターンがつぶれていた領域にも判別可能な縞が存在していることが確認された。縞の間隔が空間分解能にそのまま反映されることを考慮すると、撮像画像中のパターンの均一化によって、従来例では空間分解能が低かった疎の部分（パターン幅が大きい部分）が密となり、従来例と同じレベルでも空間分解能が向上する。空間分解能の向上の目安は、式２における線形式にした際の傾きａ／４である。本実施形態の場合、空間分解能は、縦縞のグレイコードパターンではおよそ０．４８となり、横縞のグレイコードパターンでは０．２０となる。これは、従来例の場合の傾きである０．１に比べるとそれぞれ最大で４倍、２倍の密度の縞が生成できていることを示し、同時に従来例のグレイコードパターンに比べてそれぞれ２枚、１枚の撮像枚数が削減可能であることを示している。
【００８５】
表１は、画像計測システム全体のパフォーマンスがどれだけ向上したかを示す表である。
【００８６】
【表１】
2020169856.tif 000008
【００８７】
表１では、縦項目として、被写体とＬＣＤの距離、被写体全体の撮像に要するステージポジション数、各ポジションでの撮像枚数、全ポジションでの総撮像枚数、パターン潰れの有無を示している。比較例で必要なグレイパターンのコード枚数を１０種類とした。実際には縦横それぞれ白黒反転させたパターンを用いて差分を導出するため、標準では４０枚必要である。さらには、投影方向が同じとなる２箇所それぞれに位置付けたＬＣＤから投影パターンを投影した被写体を撮像するため、８０枚必要となる。比較例として比較例１と比較例２を示しており、その違いはＬＣＤと被写体の距離であるＬになる。Ｌが小さいほど被写体とＬＣＤの距離が近くなるため、被写体の撮像可能な領域が増加し回転ステージによるポジション数が減少する。しかし、距離Ｌを大きく、被写体とＬＣＤを離して設置すると、例えば、図１２に示すような、投影パターンを使用する必要はなくなり、ノイズ要因となるパターン潰れが生じにくくなる。比較例１ではＬを５０ｃｍと大きくしたが、比較例２では１０ｃｍまで近づけたため、撮像可能な領域が増加して、回転ステージのポジション数は半分に減少したが、一回のポジションでの撮像枚数が増加しており、またノイズ要因となるパターン潰れが目立つ。
【００８８】
それに対して、実施例においては１ポジションでの撮像枚数が減少しており、同時にパターン潰れによるノイズも減少する。そのため、比較例１、比較例２および実施例の３つの中では、実施例の場合、総撮像枚数が最も減少することが分かる。撮像枚数が最適化され全体の撮像時間が短縮化されることになる。これは、被写体の表面の三次元形状の生成処理の高速化に等しく、本実施形態の効果を示している。
【００８９】
上述した投影パターンに関するパラメータは、被写体の大きさと場所によっても変化する。図１４（ｄ）は、上記で説明した半径１０ｃｍの球形状の被写体用に作成した投影パターン１４０１（図１４（ａ）参照）が投影された直径５０ｃｍの被写体の撮像画像例を示す図である。図１４（ｄ）に示すように、被写体の輪郭１４１０内における投影パターンの鏡面反射像１４１１では、場所によってパターンの周期（明部および暗部の領域の繰り返し）が変化していることがわかる。
【００９０】
図１４（ｂ）は、上記のプロセスと同じ手法で式１のパラメータａ、ｂを再度導出して作成した投影パターン例を示す図である。図１４（ｅ）は、図１４（ｂ）に示す投影パターン１４０２が投影された直径５０ｃｍの被写体の撮像画像例を示す図である。図１４（ｅ）に示すように、被写体の輪郭１４１０内における投影パターンの鏡面反射像１４１２では、パターンの周期が均一化していることがわかる。すなわち、撮像画像において、明部と暗部とが規則的に現われていることがわかる。
【００９１】
図１４（ｃ）は、従来のグレイコードパターン例を示す図である。図１４（ｆ）は、図１４（ｃ）に示すグレイコードパターン１４０３が投影された直径５０ｃｍの被写体の撮像画像例を示す図である。図１４（ｆ）に示すように、被写体の輪郭１４１０内における投影パターンの鏡面反射像１４１３では、場所によってパターンの周期が変化していることがわかる。
【００９２】
上述した通り、パラメータａ、ｂは、被写体の大きさによって異なるため、撮像毎に異なる種類の被写体の形状を取得しようとする場合、適切な投影パターンを選択する必要がある。また、前述の通り非特許文献１においては、ＬＣＤ３０１を投影方向が同じとなる２箇所で撮像を行う。すなわち、撮像パターンが投影された被写体の撮像を２回行う。撮像を行う際、ＬＣＤに表示する投影パターンは、被写体３０３との距離が変わるため異なる形状を用いることにも留意されたい。
【００９３】
図１５は、同じ撮像方向にて２箇所に配置されたＬＣＤによる入射光のベクトルとカメラの視線ベクトルと被写体の三次元情報との関係を説明するための図である。上述したように、投影パターンの鏡面反射像にて、パターンの周期が均一となる。よって、前方位置のＬＣＤに表示したパターン３０１１の座標位置Ｐｆ（ｓｆ、ｔｆ）と後方位置のＬＣＤに表示したパターン３０１２の座標位置Ｐｂ（ｓｂ、ｔｂ）とから入射光の方向を特定することができる。さらに、キャリブレーション情報のうちのＬＣＤの位置および姿勢等の投影パターンの投影に関する情報を用いることで入射光のベクトルＬが導出される。また、カメラ３０２による撮像画像３０２２の画像座標Ｐｃ（ｘ，ｙ）を特定することができる。そして、キャリブレーション情報のうちのカメラの位置および姿勢等の撮像に関する情報を用いることでカメラの視線ベクトルＶが導出される。そして、入射光のベクトルＬとカメラ視線のベクトルＶに基づき、これらベクトルＬ，Ｖの交点１５０１または最も近接した近接位置が、被写体の三次元情報として導出される。
【００９４】
以上、説明したように、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。すなわち、カメラ側から見たパターンの周期を均一化することができる。同じレベルのグレイコードにおいてもカメラ側から見たパターンの周期が揃うため、空間分解能が向上し、同時にノイズ要因となるコードの周期がつぶれて見える個所がなくなる。その結果、同じ空間分解能の要求に対して撮像枚数が従来のグレイコードパターンを用いる場合と比べてよりも少なくて済み、ノイズにも強くなる。
【００９５】
なお、上記では被写体として鏡面体を例に説明を行ったが、本実施形態の適用はこれに限られるものではなく、鏡面性の強い反射特性を持つ物体であればよく、例えば自動車の外装などの塗装面やプラスチックなどの樹脂にも適用が可能である。さらに、ガラスなどの透明な物体であっても鏡面性の強い反射特性を持つ物体に適用が可能である。
【００９６】
［実施形態２］
実施形態１では、パラメータ記憶部７１０に予め格納された複数のパラメータの中からユーザが選択した最適なパラメータを使用して投影パターンを生成する場合について説明した。本実施形態では、投影パターンを生成するためのパラメータをキャリブレーション情報および被写体の概略形状から自動的に取得する（生成する）プロセスを有する場合について説明する。
【００９７】
図１６は、本実施形態に係る画像処理装置の機能構成を示すブロックを含む図である。なお、本実施形態では、上述の実施形態の画像処理装置と同一のブロックには同一符号を付記しその説明を省略する。
【００９８】
本実施形態の画像処理装置３０５は、パラメータ取得部１６０１、キャリブレーション取得部１６０４、概略形状取得部１６０６を有する。
【００９９】
パラメータ取得部１６０１は、被写体の概略形状およびキャリブレーション情報に基づき、パラメータを取得する。パラメータは、被写体の概略形状およびキャリブレーション情報に基づき、撮像画像において明部および暗部の領域が規則的に現われるように、被写体の形状に応じて明部および暗部の領域を変更した投影パターンを生成するためのパラメータである。すなわち、パラメータ取得部１６０１は、被写体の概略形状およびキャリブレーション情報に基づき、式１などのパラメータを取得する。パラメータは、あらかじめ被写体の概略形状とパラメータの対応を実測して記録、あるいは演算して導出することで取得される。
【０１００】
このように被写体の概略形状に応じた最適化されたパラメータの取得手法を内蔵することにより、様々な被写体の形状に正確に対応した投影パターンを生成することが可能となる。その結果、鏡面反射する面を有する被写体の表面の、より正確な三次元情報を生成することが可能となる。
【０１０１】
キャリブレーション取得部１６０４は、キャリブレーション記憶部７１１に格納されたキャリブレーション情報を取得し、取得したキャリブレーション情報をパラメータ取得部１６０１と詳細形状生成部７０５に出力する。キャリブレーション取得部１６０４が取得するキャリブレーション情報は、キャリブレーション取得部７０４が取得するキャリブレーション情報と同様である。すなわち、キャリブレーション取得部１６０４は、例えば、ＬＣＤ３０１の位置等の投影パターンの投影に関する情報、カメラ３０２の位置および姿勢等の撮像に関する情報、被写体の３０３の位置等に関する情報を含むキャリブレーション情報を取得する。
【０１０２】
概略形状取得部１６０６は、概略形状記憶部１６１４に格納された被写体の概略形状を取得する。概略形状取得部１６０６は、取得した被写体の概略形状をパラメータ取得部１６０１に出力する。概略形状は、例えば、ステージでいくつかのポジションから被写体のシルエットを撮り、このシルエット画像を基にシルエット法などの手法により取得される。シルエット法は、三角測量や反射特性を用いずに、被写体の概略形状を取得することができるので、鏡面体や透明体などの特殊な被写体に対しても有効な手法である。概略形状は、あらかじめ概略形状記憶部１６１４に格納される。概略形状記憶部１６１４は、例えば、外部記憶装置６０１などで実現される。
【０１０３】
（詳細形状生成処理手順例）
次に、本実施形態の画像処理装置３０５で行われる、詳細形状情報の生成処理手順について、図１７を参照して説明する。図１７は、図１６に示す画像処理装置３０５による被写体の詳細形状生成処理の手順例を示すフローチャートである。
【０１０４】
Ｓ１７０１において、キャリブレーション取得部１６０４は、キャリブレーション情報をキャリブレーション記憶部７１１から取得し、取得したキャリブレーション情報をパラメータ取得部１６０１に出力する。概略形状取得部１６０６は、被写体の概略形状を概略形状記憶部１６１４から取得し、取得した被写体の概略形状をパラメータ取得部１６０１に出力する。
【０１０５】
Ｓ１７０２において、パラメータ取得部１６０１は、概略形状とキャリブレーション情報とに基づき、パラメータを取得する。パラメータ取得部１６０１は、取得したパラメータを投影パターン生成部７０２に出力する。
【０１０６】
Ｓ１７０３、Ｓ１７０４およびＳ１７０５での処理は、それぞれＳ８０２、Ｓ８０３およびＳ８０４での処理と同一であり、その説明を省略する。
【０１０７】
以上、説明したように、被写体の概略形状およびキャリブレーション情報を取得することで、パターンを投影パターンに変換するパラメータを取得することができる。これにより、ユーザの入力操作によるパラメータの取得処理が不要となり、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。
【０１０８】
このように形状に応じた最適化された投影パターンの生成手法を内蔵することにより、さまざまな被写体に正確に対応することが可能となる。
【０１０９】
なお、投影パターン生成部７０２による投影パターンの生成方法は、上述した手法に限定されない。例えば、式２のように近似してもよいし、シミュレーションを実施してシミュレーションで得られたマップをそのまま利用してもよい。式１のパラメータａ、ｂと、被写体３０３の半径ｒおよび被写体３０３とＬＣＤ３０１の距離Ｌ１とを紐付けるＬＵＴ（ルックアップテーブル）を読み込み、それを利用してもよい。また、外部から必要なパラメータを入力するなど概略形状情報とキャリブレーション情報を用いるさまざまな形態に適用可能である。
【０１１０】
［実施形態３］
本実施形態では、実施形態２と同様、被写体の形状に応じて投影パターンを生成する。ただし、投影パターンを生成する際に概略形状情報やキャリブレーション情報を用いず、別途投影パターン生成のための撮像を実施し、被写体の概略に関する情報を取得する。
【０１１１】
図１８は、本実施形態に係る画像処理装置の機能構成を示すブロックを含む図である。なお、本実施形態では、上述の実施形態の画像処理装置と同一のブロックには同一符号を付記しその説明を省略する。
【０１１２】
本実施形態の画像処理装置３０５は、パラメータ取得部１８０１、プレ撮像画像取得部１８０７を有する。
【０１１３】
パラメータ取得部１８０１は、パラメータを取得する。パラメータは、プレ撮像画像に基づき、撮像画像取得部７０３で取得する撮像画像にて明部および暗部の領域が規則的に現われるように、被写体の形状に応じて明部および暗部の領域を変更した投影パターンを生成するためのパラメータである。すなわち、パラメータ取得部１８０１は、プレ撮像画像に基づき、式１などのパラメータを取得する。パラメータは、あらかじめ被写体の形状とプレ撮像画像の対応を実測して記録、あるいは演算して導出することで取得される。
【０１１４】
プレ撮像画像取得部１８０７は、概略形状、キャリブレーション情報の代わりに、パラメータ取得部１８０１でパラメータを取得するための詳細につき後述するプレ撮像画像を取得する。プレ撮像画像は、あらかじめ、カラーグラデーションパターンを投影した被写体を撮像して取得された画像であって、外部記憶装置６０１などに格納される。プレ撮像画像取得部１８０７は、特許請求の範囲のプレ画像取得手段に相当する。
【０１１５】
（詳細形状生成処理手順例）
次に、本実施形態の画像処理装置３０５で行われる、詳細形状情報の生成処理手順について、図１９を参照して説明する。図１９は、図１８に示す画像処理装置３０５による被写体の詳細形状生成処理の手順例を示すフローチャートである。
【０１１６】
Ｓ１９０１において、プレ撮像画像取得部１８０７は、ＬＣＤからカラーグラデーションパターンが投影された被写体を撮像したプレ撮像画像を取得する。図２０（ａ）は、カラーグラデーションパターン例を示す図である。図２０（ｂ）は、図２０（ａ）に示すカラーグラデーションパターンが投影された被写体のプレ撮像画像例を示す図である。カラーグラデーションパターン２００１は、例えば、図２０（ａ）に示すように、グラデーションによって色相が横方向（一方向）にて赤から紫へと変化している。なお、カラーグラデーションパターンは、図２０（ａ）に示されるカラーグラデーションパターン例に限定されない。例えば、被写体が赤色である場合には、赤を除き、グラデーションによって、色相が黄から緑へ、緑から水色へ、水色から青へ、青から紫へ変化するカラーグラデーションパターンを用いることも可能である。すなわち、被写体の色に応じて、被写体と同一色を除いたカラーグラデーションパターンを用いることも可能である。
【０１１７】
なお、上記では、グラデーションによって色相が横方向に変化するカラーグラデーションパターンを用いて説明したが、グラデーションによって色相が縦方向に変化するカラーグラデーションパターンを用いることも可能である。
【０１１８】
プレ撮像画像は、例えば、図２０（ｂ）に示すように、被写体の輪郭２０１０内にて、被写体に投影されたカラーグラデーションパターンの反射像２００２のみが視認可能な画像である。ここでは水色から青の領域の色の面積が濃く出ており、図２０（ａ）のカラーグラデーションパターン２００１の領域のうち、中央からやや右よりの箇所が拡大されて反射していることを示している。プレ撮像画像取得部１８０７は、取得したプレ撮像画像をパラメータ取得部１８０１に出力する。パラメータ取得部１８０１は、プレ撮像画像に基づき、プレ撮像画像のカラー情報から色に該当する箇所の縞を密に、各色相が均等に映るような、式１のパラメータａ，ｂを生成する。パラメータ取得部１８０１は、生成したパラメータａ，ｂを投影パターン生成部７０２に出力する。
【０１１９】
Ｓ１９０２において、投影パターン生成部７０２は、パラメータａ，ｂと、式１と、二次記憶装置３０５４から取得したパターンとに基づき、投影パターンを生成する。投影パターン生成部７０２は、生成した投影パターンを撮像画像取得部７０３に出力する。
【０１２０】
Ｓ１９０３、Ｓ１９０４およびＳ１９０５での処理は、それぞれＳ８０２、Ｓ８０３およびＳ８０４での処理と同一であり、その説明を省略する。
【０１２１】
以上、説明したように、プレ撮像画像を取得することで、パターンを投影パターンに変換するパラメータを取得することができる。これにより、被写体の概略形状、キャリブレーション情報を取得する必要がなく、鏡面反射する面を有する被写体の表面の三次元情報を効率よく生成することができる。
【０１２２】
［実施形態４］
実施形態１では、一つのＬＣＤを備える画像計測システムについて説明した。本実施形態では、複数のＬＣＤを備える画像計測システムについて説明する。一つのＬＣＤでは、ＬＣＤに表示した投影パターンを被写体に投影するため、被写体の大きさに比べてＬＣＤの大きさを十分に大きくする必要がある。そのため、装置全体がＬＣＤの大きさに律束される可能性があった。
【０１２３】
図２１は、本実施形態に係る画像計測システムの概略構成例を示す図である。なお、上述した実施形態と同一機器には同一符号を付記しその説明を省略する。本実施形態の画像計測システムは、５枚のＬＣＤ２１０１、２１０２、２１０３、２１０４、２１０５を有する。ＬＣＤ２１０１、２１０２、２１０３、２１０４、２１０５はそれぞれ独立した投影パターンを表示する。各ＬＣＤ２１０１、２１０２、２１０３、２１０４、２１０５に表示される投影パターンは、実施形態１のように決定されていてもよいし、実施形態２もしくは３のように決定されてもよい。その際は各々のＬＣＤ２１０１、２１０２、２１０３、２１０４、２１０５が独立して実施形態２および３で示した手法でグレイコードの生成を行う。
【０１２４】
実施形態１の方法に倣うのであれば中央のＬＣＤ２１０１に表示する投影パターンは、周りのＬＣＤ２１０２−２１０５に表示する投影パターンに比べて周期が狭くなるように設定される。また、ＬＣＤ２１０１−２１０５は、各ＬＣＤ２１０１−２１０５から投影された投影パターンが被写体３０３にて重ならないように位置および姿勢が調整される。
【０１２５】
以上、説明したように、複数のＬＣＤから投影パターンを被写体に投影することで、１つのＬＣＤから投影パターンを被写体に投影した場合と比べて、被写体に対して広範囲に亘って投影パターンを投影することができる。これにより、１つのカメラ３０２で１度の撮像によって、１つのＬＣＤを用いた場合と比べて被写体の広範囲に亘る投影パターンの鏡面反射像を１度に取得することができる。その結果、鏡面反射する面を有する被写体の表面の三次元情報をより効率よく生成することができる。
【０１２６】
［その他の実施形態］
上記では、被写体として球体を例に説明した。被写体の形状は球体に限定されない。形状が非曲面で構成される被写体に適用可能である。例えば、複数の様々な方向をもった平面によって構成された立体や、準平面構造のように大きな非平面の凹凸はあるが全体形状としては平面に近い形状に適用可能である。
【０１２７】
上記では、符号化コードとしてグレイコードパターンを例に説明した。グレイコードパターンに限定されない。バイナリコードやその他さまざまなコードを用いることが可能である。
【０１２８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２９】
７０２  投影パターン生成部
７０３  撮像画像取得部
７０５  詳細形状生成部
【図１】
2020169856.tif 000009
【図２】
2020169856.tif 000010
【図３】
2020169856.tif 000011
【図４】
2020169856.tif 000012
【図５】
2020169856.tif 000013
【図６】
2020169856.tif 000014
【図７】
2020169856.tif 000015
【図８】
2020169856.tif 000016
【図９】
2020169856.tif 000017
【図１０】
2020169856.tif 000018
【図１１】
2020169856.tif 000019
【図１２】
2020169856.tif 000020
【図１３】
2020169856.tif 000021
【図１４】
2020169856.tif 000022
【図１５】
2020169856.tif 000023
【図１６】
2020169856.tif 000024
【図１７】
2020169856.tif 000025
【図１８】
2020169856.tif 000026
【図１９】
2020169856.tif 000027
【図２０】
2020169856.tif 000028
【図２１】
2020169856.tif 000029