(57)【特許請求の範囲】
【請求項１】
投影手段によって投影される、複数のシンボルが配置された投影パターンと、前記投影パターンが前記投影手段から投影された被写体を撮像した画像を取得する画像取得手段と、
前記投影パターンを構成する第１の領域と、前記画像を構成する第２の領域とを対応づけ、前記第１の領域の画素と前記第２の領域の画素との視差を求める第１の計算手段と、
前記第１の計算手段の計算結果に基づいて、前記画像の中の前記第２の領域の中で、前記第１の領域に含まれるシンボルに対応するシンボルの位置を探索する第２の計算手段と、
前記画像における第２の領域ごとに、該第２の領域を評価する評価手段と、
前記評価手段による評価結果が所定値よりも高い評価値である領域の場合には、前記第２の計算手段によって探索されたシンボルの位置に基づいて前記被写体の三次元形状を計測し、前記評価手段による評価結果が所定値よりも低い評価値である領域の場合には、前記シンボルの位置の探索をせずに、前記第１の計算手段で求めた視差に基づいて前記被写体の三次元形状を計測する計測手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第２の計算手段は、前記第１の計算手段の結果に基づいて、前記第２の領域の奥行き情報を算出し、該奥行き情報に基づいて前記第１の領域に含まれるシンボルを前記第２の領域に投影することにより、前記第２の領域におけるシンボルの位置を探索することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記評価手段は、前記画像における前記被写体に投影された投影パターンのコントラストを評価することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記評価手段による評価結果に基づいて、前記第２の計算手段による計算結果の精度を示す情報を生成する精度決定手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記精度決定手段は、前記評価結果が所定値よりも高い評価値である場合に、前記第２の計算手段による計算結果の精度が高精度であることを示す情報を、前記投影パターンを構成するシンボル単位に生成し、前記評価結果が所定値よりも低い評価値である場合に、前記第２の計算手段による計算結果の精度が低精度であることを示す情報を、前記投影パターンを構成するシンボル単位に生成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記計測手段は、前記精度決定手段によって生成された情報に基づいて、選択的に三次元形状の情報を出力しないようにすることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記評価手段による評価結果が所定値よりも低い場合に、前記投影手段によって投影される投影パターンのシンボルの間隙に所定の加算値を加える変更手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記投影手段によって投影される投影パターンは、相互に所定値以上の間隙を有する点群で構成されていることを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記投影手段によって投影される投影パターンは、相互にランダムな位置関係のシンボル、または所定の計算手順に基づいた位置関係のシンボルが配置されていることを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記投影パターンを被写体に対して投影する投影手段と、
前記投影手段によって前記投影パターンが投影された被写体を撮像する撮像手段と、をさらに備えることを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
投影手段によって投影される、複数のシンボルが配置された投影パターンと、前記投影パターンが前記投影手段から投影された被写体を撮像した画像を取得する画像取得工程と、
前記投影パターンを構成する第１の領域と、前記画像を構成する第２の領域とを対応づけ、前記第１の領域の画素と前記第２の領域の画素との視差を求める第１の計算工程と、
前記第１の計算工程の計算結果に基づいて、前記画像の中の前記第２の領域の中で、前記第１の領域に含まれるシンボルに対応するシンボルの位置を探索する第２の計算工程と、
前記画像における第２の領域ごとに、該第２の領域を評価する評価工程と、
前記評価工程による評価結果が所定値よりも高い評価値である領域の場合には、前記第２の計算工程において探索されたシンボルの位置に基づいて前記被写体の三次元形状を計測し、前記評価工程による評価結果が所定値よりも低い評価値である領域の場合には、前記シンボルの位置の探索をせずに、前記第１の計算工程で求めた視差に基づいて前記被写体の三次元形状を計測する計測工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
投影手段によって投影される、複数のシンボルが配置された投影パターンと、前記投影パターンが前記投影手段から投影された被写体を撮像した画像を取得する画像取得工程と、
前記投影パターンを構成する第１の領域と、前記画像を構成する第２の領域とを対応づけ、前記第１の領域の画素と前記第２の領域の画素との視差を求める第１の計算工程と、
前記第１の計算工程の計算結果に基づいて、前記画像の中の前記第２の領域の中で、前記第１の領域に含まれるシンボルに対応するシンボルの位置を探索する第２の計算工程と、
前記画像における第２の領域ごとに、該第２の領域を評価する評価工程と、
前記評価工程による評価結果が所定値よりも高い評価値である領域の場合には、前記第２の計算工程において探索されたシンボルの位置に基づいて前記被写体の三次元形状を計測し、前記評価工程による評価結果が所定値よりも低い評価値である領域の場合には、前記シンボルの位置の探索をせずに、前記第１の計算工程で求めた視差に基づいて前記被写体の三次元形状を計測する計測工程と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、被写体の三次元形状を計測するために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、所定のパターンを被写体に投影して、その撮像画像から所定のパターンの歪みを計算することによって、被写体の三次元形状や表面の歪みを計測する手法が実施されている。特に、ランダムパターンを投影した被写体を撮像し、その撮像画像から被写体上のパターンの局所的な変位量を相関演算によって計算し、被写体の三次元形状や表面の歪み具合を計測できる手法が広く知られている。このような手法における相関演算は、例えば特許文献１に示すように、レーザースペックルで生成した投影ランダムパターンと撮像画像の一部領域を切り抜いた単位でウィンドウマッチングなどが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２７１４１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のウィンドウマッチングでは計算する際に一定以上の領域が必要であり、切り抜いた一部領域を同一の変位量、すなわち同一の奥行きとみなし、任意の点で計算される奥行きは、周囲の奥行きと平均化された状態で計算されてしまう。そのため、例えば投影パターンが良好なコントラストで撮像され、より高精度に奥行きを計測できる条件においても奥行きが平均化されるため、高精度に計測できないという問題がある。
【０００５】
本発明は前述の問題点に鑑み、投影パターンが良好なコントラストで撮像されている場合に、高精度に被写体の三次元形状を計測できるようにすることを目的としている。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、投影手段によって投影される、複数のシンボルが配置された投影パターンと、前記投影パターンが前記投影手段から投影された被写体を撮像した画像を取得する画像取得手段と、前記投影パターンを構成する第１の領域と、前記画像を構成する第２の領域とを対応づけ、前記第１の領域の画素と前記第２の領域の画素との視差を求める第１の計算手段と、前記第１の計算手段の計算結果に基づいて、前記画像の中の前記第２の領域の中で、前記第１の領域に含まれるシンボルに対応するシンボルの位置を探索する第２の計算手段と、前記画像における第２の領域ごとに、該第２の領域を評価する評価手段と、前記評価手段による評価結果が所定値よりも高い評価値である領域の場合には、前記第２の計算手段によって探索されたシンボルの位置に基づいて前記被写体の三次元形状を計測し、前記評価手段による評価結果が所定値よりも低い評価値である領域の場合には、前記シンボルの位置の探索をせずに、前記第１の計算手段で求めた視差に基づいて前記被写体の三次元形状を計測する計測手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、投影パターンが良好なコントラストで撮像されている場合に、高精度に被写体の三次元形状を計測することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態における画像処理装置の全体の構成例を示すブロック図である。
【図２】実施形態に係る投影パターンの一例を示す図である。
【図３】実施形態において、被写体の三次元形状を計測する全体的な処理手順の一例を示すフローチャートである。
【図４】実施形態に係る投影パターンの一部を拡大した図である。
【図５】実施形態において、マッチング画像を取得する詳細な処理手順の一例を示すフローチャートである。
【図６】第１の実施形態において、投影パターンを構成する点群のシンボル位置を計算する詳細な処理手順の一例を示すフローチャートである。
【図７】Sobelフィルタの一例を説明するための図である。
【図８】プロジェクタとカメラと被写体との位置関係を説明するための図である。
【図９】第２の実施形態における画像処理装置の全体の構成例を示すブロック図である。
【図１０】第２の実施形態において、投影パターンを構成する点群のシンボル位置を計算する詳細な処理手順の一例を示すフローチャートである。
【図１１】第３の実施形態における画像処理装置の全体の構成例を示すブロック図である。
【図１２】第３の実施形態において、投影パターンを構成する点群のシンボル位置を計算する詳細な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
［第１の実施形態］
以下、本実施形態では、ウィンドウマッチングによる計測精度の低下を改善する具体的な一実施形態について説明する。
従来のウィンドウマッチングにおいては、被写体が撮像された状態に関係なく、相関演算を行うウィンドウの大きさによって計測結果が平均化されてしまうという問題がある。そこで本実施形態においては、撮像画像を評価して、高精度な形状計測が可能と判定された領域に対して、投影パターンを構成する点単位でマッチング位置の再計算を行うことにより、ウィンドウの大きさで平均化されない高精度な計測が可能になる。以下、本実施形態の詳細について説明する。
【００１０】
図１は、本実施形態における被写体１０１の三次元形状を計測するための画像処理装置１００の全体の構成例を示すブロック図である。以下、図２に示す投影パターンＥを用いて三次元形状を計測するよう制御する例について説明する。
図１において、プロジェクタ１０２は、計測対象となる被写体１０１へ、後述する投影パターン生成部１０３で生成された投影パターンを投影する投影部として作用する。投影パターン生成部１０３は、画像データとして図２に示す投影パターンＥを生成する。
【００１１】
カメラ１０４は、投影パターンＥが投影された被写体１０１の撮像画像Ｃを取得する撮像部として作用する。マッチング計算部１０５は、撮像画像Ｃ中に存在する被写体１０１上に投影された投影パターンＥと、投影パターン生成部１０３で生成された投影パターンＥの画像とのマッチング計算を行い、マッチング画像Ｄを取得する。
【００１２】
画像評価部１０６は、後述する手順によって撮像画像Ｃの評価を行い、撮像画像Ｃ内の領域単位で高精度な計測が可能であるかどうかの評価基準を求める。本実施形態においては、評価基準としてコントラスト画像Ｊを算出する。計算決定部１０７は、画像評価部１０６が求めた評価基準に基づいて、投影パターンＥを構成するシンボル単位で高精度な形状計測が可能かどうかを判定する。
【００１３】
シンボル位置計算部１０８は、計算決定部１０７で高精度な形状計測が可能と判定された撮像画像Ｃ内の領域について、投影パターンＥを構成する複数の点群の個々の位置を高精度に計算し、シンボル位置Ｕを取得する。三次元形状計算部１０９は、マッチング画像Ｄと、シンボル位置Ｕと、後述するプロジェクタ１０２及びカメラ１０４の位置関係とを用いて、カメラ１０４から観察した被写体の奥行き、すなわち三次元形状Ｓを計算する。
【００１４】
図３は、本実施形態において、被写体の三次元形状を計測する全体的な処理手順の一例を示すフローチャートである。以下、図３のフローチャートに従って動作の説明を行う。
【００１５】
（ステップＳ３０１）
まず、投影パターン生成部１０３は、例えば図２に示す投影パターンＥを分解能（ｎx，ｎy）の画像として生成する。投影パターンＥは、個々に重なりを有さず、相互に所定値以上の間隙を有する点ｅ（ｅx，ｅy）をシンボルとして、その集合からなる点群で構成されている。具体的には、点２０１同士のシンボル間隙ａは、図４に示すように、被写体１０１がプロジェクタ１０２の焦点面から外れてぼやけて投影された状況においても各点の位置が計算可能となるように、シンボル間隙閾値ａthよりも大きく配置されている。また、点２０１は、後述するウィンドウマッチング計算で正しくマッチングが行えるように、相互にランダムな位置関係で配置されている。そして、点２０１は、投影パターンＥの部分領域における自己相関性のピークが鋭く、その他の部分領域に対する相互相関性が低いという特性を有する。
【００１６】
（ステップＳ３０２）
次に、プロジェクタ１０２は、ステップＳ３０１において生成された投影パターンＥを被写体１０１に投影する。
【００１７】
（ステップＳ３０３）
続いてカメラ１０４は、投影パターンＥが投影されている被写体１０１を撮像し、撮像画像Ｃを取得する。なお、本実施形態では処理を簡易にするためにプロジェクタ１０２及びカメラ１０４の画角は同一であり、かつ投影パターンＥ及び撮像画像Ｃはｘｙ方向に同一の分解能（ｎx，ｎy）を有するものとする。また、プロジェクタ１０２及びカメラ１０４の光軸は並行となるよう配置されているものとする。
【００１８】
（ステップＳ３０４）
次に、マッチング計算部１０５は、ステップＳ３０３で得られた撮像画像Ｃと、ステップＳ３０１で得られた投影パターンＥとを用いてマッチング計算を行い、撮像画像の画素単位で視差ｄを計算し、視差ｄの集合としてマッチング画像Ｄを取得する。本ステップの詳細については後述する。
【００１９】
（ステップＳ３０５）
次に、画像評価部１０６は、撮像画像Ｃの評価を行い、評価結果としてコントラスト画像Ｊを求める。任意の画素ｐにおけるコントラストｊは以下の式（１）で表わされる。
【００２０】
【数１】
0006456084.tif 000002
【００２１】
式（１）において、撮像画像Ｃ中における画素ｐを中心して上下左右の画素を含む矩形領域ｎの中で、最も高輝度の画素値をＩpmax、低輝度の画素値をＩpminとする。そして、撮像画像Ｃ中の全ての画素についてコントラストｊを計算することにより、コントラスト画像Ｊを取得する。このコントラストｊの値がより大きい場合は、被写体１０１上に投影された投影パターンＥを構成する点の中心ではより明るく、点が存在しない領域ではより暗く撮像されていることを意味している。投影パターンＥを構成する点が十分な明るさを有して、かつボケが生じずに確実に結像した状態で投影されている場合には、点群の個々の位置をより高精度に検出可能な条件を満たしている判断できる。
【００２２】
（ステップＳ３０６）
次に、シンボル位置計算部１０８は、撮像画像Ｃと、投影パターンＥの画像とステップＳ３０４で求めたマッチング画像Ｄとを用いて、投影パターンＥを構成する点群の個々の輝度ピーク位置ｕの集合であるシンボル位置Ｕを計算する。本ステップの詳細については後述する。
【００２３】
（ステップＳ３０７）
次に、三次元形状計算部１０９は、ステップＳ３０７で得られたシンボル位置Ｕを用いて、被写体１０１の三次元形状を計算する。図８は、プロジェクタ１０２と、カメラ１０４と、被写体１０１との位置関係を簡略化して示した模式図である。ここで、三次元計測結果を表現するための座標系として、撮像画像と同一のｘ方向、ｙ方向に加えて、奥行きを示すｚ方向がカメラ１０４の主点を原点Ｏとして光軸方向に設定された空間座標系を定義する。
【００２４】
この空間座標系において、カメラ１０４で被写体１０１を任意の点ｓ（ｘs，ｙs，ｚs）で観察する場合を考える。点ｓが、撮像画像Ｃ上の輝度ピーク位置ｕ（ｘu，ｙu）の位置に観察されるものとすると、点ｓの空間座標は以下の式（２）で表わされる。
【００２５】
【数２】
0006456084.tif 000003
【００２６】
ここで、ｆはプロジェクタ１０２、カメラ１０４の画素単位で表現された焦点距離を示し、ｋは所定の値を取るパラメータを示す。また、プロジェクタ１０２から投影された点ｓ上の投影パターンＥの座標をｓp（ｘsp，ｙsp）とすると、ｙu＝ｙspであり、かつステップＳ３０４で求めた視差ｄはｘuとｘspとの差を意味している。したがって、輝度ピーク位置ｕに対応する視差ｄuを用いて、点ｓの奥行きｚsは以下の式（３）で表わされる。
【００２７】
【数３】
0006456084.tif 000004
【００２８】
ここで、ｂは図８に示すようにプロジェクタ１０２とカメラ１０４との位置関係を決定する基線長である。式（２）と式（３）とを用いてパラメータｋを消去することにより、点ｓの三次元の空間座標（ｘs，ｙs，ｚs）を以下の式（４）から得ることができる。
【００２９】
【数４】
0006456084.tif 000005
【００３０】
このようにステップＳ３０６で計算されたすべての輝度ピーク位置ｕについて、点ｓの三次元の空間座標を計算することにより、点ｓの集合として被写体１０１の三次元形状Ｓを求めることができる。
【００３１】
次に、ステップＳ３０４における処理の詳細について、以下に説明する。図５は、ステップＳ３０４におけるマッチング計算部１０５の処理の詳細な手順の一例を示すフローチャートである。
【００３２】
（ステップＳ５０１）
まず、撮像画像の走査を行い、マッチング計算を行う画素ｐを設定する。
【００３３】
（ステップＳ５０２）
次に、ステップＳ５０１で設定した画素ｐの上下左右の周囲の画素を含む撮像画像Ｃの矩形領域ｍを、評価演算に使用する撮像画像ウィンドウＷpとして設定する。なお、矩形領域ｍのうち、撮像画像Ｃの範囲を超える部分は、輝度０として扱うものとする。
【００３４】
（ステップＳ５０３）
次に、画素ｐにおける最小評価値Ｒpminを、取り得る最大の値である最大評価値Ｒmaxで初期化する。
【００３５】
（ステップＳ５０４）
次に、画素ｐにおける最小評価値を示す最小評価位置ｘpminを、画素ｐの撮像画像Ｃ中の位置であるｘpで初期化する。
【００３６】
（ステップＳ５０５）
次に、撮像画像ウィンドウＷpと評価演算を行う投影パターンＥとの走査を行い、画素ｐcを設定する。この画素ｐcは、ステップＳ５０１において定めた撮像画像の画素ｐに対応する候補となる投影パターンＥの画像上の画素である。なお、プロジェクタ１０２とカメラ１０４との位置関係から、画素ｐcの取り得る範囲は、画素ｐのｙ座標ｙpに対応した投影パターン上のｙ座標ｙpc上に限定されるため、この座標ｙpc上で走査を行う。また、ｙpとｙpcとの対応関係は、事前に計測してテーブル化しておくものとする。
【００３７】
（ステップＳ５０６）
次に、ステップＳ５０５で設定した投影パターンＥ上の画素ｐcの上下左右の周囲の画素の矩形領域ｍを評価演算に使用する投影パターンウィンドウＷpcとして設定する。なお、矩形領域ｍのうち、撮像画像の範囲を超える部分は、輝度０として扱うものとする。
【００３８】
（ステップＳ５０７）
次に、ステップＳ５０２で設定した撮像画像ウィンドウＷpと、ステップＳ５０６で設定した投影パターンウィンドウＷpcとの間で、以下の式（５）を用いて評価値Ｒppcを計算する。
【００３９】
【数５】
0006456084.tif 000006
【００４０】
ここで、ｘwは同一形状の撮像画像ウィンドウＷp及び投影パターンウィンドウＷpc内における全ピクセルを走査する相対位置を示している。また、Ｉwp（ｘw）は撮像画像ウィンドウＷp内の相対位置ｘwにおける輝度値を示し、Ｉwpc（ｘw）は投影パターンウィンドウＷpc内の相対位置ｘwにおける輝度値を示している。この評価値Ｒppcが小さければ小さいほど、撮像画像ウィンドウＷpと投影パターン評価ウィンドウＷpcとの類似度が高いことを意味している。よって、評価値Ｒppcが最小となる投影パターン中の画素ｐcを、撮像画像中の画素ｐに一対一対応する画素として扱う。
【００４１】
（ステップＳ５０８）
次に、最小評価値Ｒpminと評価値Ｒppcとを比較する。この比較の結果、評価値Ｒppcの方が小さい場合にはステップＳ５０９へ進み、そうでない場合はステップＳ５１１へ進む。
【００４２】
（ステップＳ５０９）
この処理では、最小評価値Ｒpminに評価値Ｒppcを代入する。
【００４３】
（ステップＳ５１０）
続いて最小評価位置ｘpminに現在の評価計算の画素位置であるｘpcを代入する。
【００４４】
（ステップＳ５１１）
次に、画素ｐcについて投影パターンＥにおける座標ｙpc上の全ての画素を走査したかどうかを判定する。この判定の結果、走査が終了した場合はステップＳ５１２に進み、終了していない場合はステップＳ５０５に戻る。
【００４５】
（ステップＳ５１２）
次に、最小評価値Ｒpminが基準評価値Ｒref以下であるかどうかを判定する。この判定の結果、最小評価値Ｒpminが基準評価値Ｒrefよりも大きい値の場合、類似度の計算結果を信頼できないと判定し、ステップＳ５１４に進む。一方、最小評価値Ｒpminが基準評価値Ｒref以下の値の場合は、類似度の計算結果が信頼できると判定し、ステップＳ５１３に進む。
【００４６】
（ステップＳ５１３）
この処理では、現在の画素ｐの画素位置ｘpから、投影パターン内における画素ｐcに一対一する最小評価位置ｘpminで差分を取り、画素ｐにおけるマッチング結果である視差ｄpを求める。
【００４７】
（ステップＳ５１４）
この処理では、画素ｐにおけるマッチング結果である視差ｄpに、無効を意味するＮａＮを代入する。以降、この画素ｐにおける視差ｄpは計算不能として、以降の計算に使用しないようにする。
【００４８】
（ステップＳ５１５）
次に、画素ｐについて、撮像画像Ｃ中における全ての画素位置ｘpを走査したかどうかを判定する。この判定の結果、走査が終了した場合は、ステップＳ３０４における動作を終了し、走査が終了していない場合はステップＳ５０１に戻る。
【００４９】
以上の動作を行うことにより、撮像画像Ｃと同一のｘｙ分解能（ｎx，ｎy）で各画素ｐにおける視差ｄpを求めることができる。この画素単位の視差ｄの集合をマッチング画像Ｄと呼ぶ。
【００５０】
次に、ステップＳ３０６における処理の詳細について、以下に説明する。図６は、ステップＳ３０６における詳細な処理手順の一例を示すフローチャートである。
【００５１】
（ステップＳ６０１）
まず、シンボル位置計算部１０８は、ステップＳ３０４で求めたマッチング画像Ｄの視差ｄpに基づいて投影パターンＥを構成する点群を参照して再投影を行い、再投影点群Ｈを求める。再投影点群Ｈの再投影点ｈ（ｈx，ｈy）と、それに対応する投影パターンＥの点ｅ（ｅx，ｅy）との関係は以下の式（６）で表わされる。
【００５２】
【数６】
0006456084.tif 000007
【００５３】
ここで、ｄhはマッチング画像Ｄ中の位置（ｈx，ｈy）における視差ｄを示している。なお、視差ｄhがＮａＮとなる位置では再投影を行わないようにする。視差ｄhがＮａＮ以外の全ての投影パターンＥの点ｅについて再投影を行うことにより、再投影点群Ｈを取得する。
【００５４】
（ステップＳ６０２）
続いてシンボル位置計算部１０８は、ステップＳ６０１で求めた再投影点群Ｈを走査し、シンボル位置計算を行う対象の再投影点ｈ（ｈx，ｈy）を設定する。
【００５５】
（ステップＳ６０３）
次に、計算決定部１０７は、画像評価部１０６で得られたコントラスト画像Ｊの画素位置（ｈx，ｈy）におけるコントラストｊhに基づいて、以降の計算を切り替える。具体的には、コントラストｊhがコントラスト閾値ｊthよりも大きいか否かを判定する。この判定の結果、コントラストｊhがコントラスト閾値ｊthよりも大きい場合はステップＳ６０４に進み、そうでない場合はステップＳ６０５に進む。このコントラスト閾値ｊthは、再投影点ｈの位置と比較して、以降のシンボル位置計算でより高精度な計算が可能となる境界の値として、予め実験的に求めておくものとする。本ステップにおける計算の切り替えによって、より高精度な計測結果が期待できる場合にのみ、選択的に以降のシンボル位置計算を行うようにする。
【００５６】
（ステップＳ６０４）
この処理では、シンボル位置計算部１０８は、再投影点ｈと同一の撮像画像Ｃ上の画素位置（ｈx，ｈy）を中心として、上下左右の画素の矩形領域ｗ内で、最も高い輝度を有する近傍輝度ピーク画素ｑ（ｑx，ｑy）を探索する。矩形領域の範囲を決めるｗの値は、隣接する点の誤検出を避けるために、シンボル間隙閾値ａthより小さい値とするのが好ましい。この探索により、撮像画像Ｃ中における投影された点群の個々の位置を画素単位で検出する。
【００５７】
（ステップＳ６０５）
この処理では、シンボル位置計算部１０８は、輝度ピーク位置ｕの座標位置に、再投影点ｈの座標位置を代入する。
【００５８】
（ステップＳ６０６）
シンボル位置計算部１０８は、ステップＳ６０４で探索した近傍輝度ピーク画素ｑ（ｑx，ｑy）を基準位置として、サブピクセル単位で輝度ピーク位置ｕ（ｕx，ｕy）を求める。まず、図７に示すSobelフィルタを用いた場合の撮像画像Ｃの画素位置（ｑx，ｑy）におけるSobelフィルタ値をＺqとする。さらに、画素位置（ｑx−１，ｑy）におけるSobelフィルタ値をＺq-、画素位置（ｑx＋１，ｑy）におけるSobelフィルタ値をＺq+とする。この場合、輝度ピーク位置ｕx、ｕyは以下の式（７）で表わされる。
【００５９】
【数７】
0006456084.tif 000008
【００６０】
ｕyの位置については、プロジェクタ１０２とカメラ１０４との位置関係から、投影パターンＥ内における点ｅの位置ｅyと等しいため、そのままこの値を用いる。上記計算により、撮像画像Ｃ中における投影された点群の個々の位置を、マッチング位置としてサブピクセル単位で再計算する。
【００６１】
（ステップＳ６０７）
次に、シンボル位置計算部１０８は、再投影点群Ｈ中における全ての再投影点ｈを走査したかどうかを判定する。この判定の結果、全て走査した場合にはステップＳ３０６におけるシンボル位置計算を終了し、走査し終えていない場合にはステップＳ６０２に戻る。
【００６２】
前記の処理を行うことにより、投影パターンＥを構成する点群の個々の輝度ピーク位置ｕの集合であるシンボル位置Ｕを計算することができる。
【００６３】
以上のように本実施形態によれば、撮像画像を評価し、高精度な形状計測が可能と判定された領域に対して、ウィンドウマッチングで求めた結果に基づいて投影パターンを構成する点単位でマッチング位置の再計算を行う。すなわち、マッチング計算部１０５による計算の後に、シンボル位置計算部１０８によって再計算を行うようにした。これにより、ウィンドウマッチングによる計測精度の低下を改善することができる。また、シンボル単位に一対一で対応する三次元点ごとに三次元形状を計算することにより、シンボル位置以外の補完された正確でない三次元形状を含まない、軽量なデータとして出力することができる。これにより、三次元形状を扱う場合のデータ容量及び計算量についても削減することができる。
【００６４】
［第２の実施形態］
本実施形態では、第１の実施形態に加えて、三次元計測結果を使用する際に有用となる計測精度情報を付加する具体的な実施の一形態について説明する。第１の実施形態においては、高精度な形状計測が可能な領域に対しては、高精度な三次元点を求めていたが、出力される結果には低精度な三次元点と高精度な三次元点とが混在した状態となる。本実施形態では、これらを同一の三次元点でなく、高精度、低精度といった計測精度情報を付加して出力することによって、出力結果に対して重みづけを考慮した使用が可能になる。
【００６５】
図９は、本実施形態における被写体９０１の三次元形状を計測するための画像処理装置９００全体の構成例を示すブロック図である。
図９において、本実施形態におけるプロジェクタ９０２〜三次元形状計算部９０９は、それぞれ図１におけるプロジェクタ１０２〜三次元形状計算部１０９に対応し、同様の機能を有する。したがって、これらの構成の詳細な説明は省略する。計算精度決定部９１０は、計算決定部９０７で得られたコントラスト画像Ｊの値に基づいて、投影パターンＥを構成するシンボル単位で計測精度情報を付加する。
【００６６】
本実施形態における全体的な動作手順は、基本的には図３と同様である。ただし、ステップＳ３０６におけるシンボル位置計算の処理のみ異なる動作を行う。図１０は、本実施形態におけるステップＳ３０６の詳細な処理手順の一例を示すフローチャートである。以下、図１０の各処理について説明する。なお、ステップＳ６０１〜６０７については図６と同様の動作を行うため、説明は省略する。
【００６７】
（ステップＳ１００８）
計算精度決定部９１０は、輝度ピーク位置ｕに対応する計測精度情報ｖpに、高精度を意味する１を代入する。
【００６８】
（ステップＳ１００９）
計算精度決定部９１０は、輝度ピーク位置ｕに対応する計測精度情報ｖpに、低精度を意味する０を代入する。
【００６９】
上記の動作を行うことにより、ステップＳ３０６において、撮像画像Ｃと、投影パターンＥの画像とステップＳ３０４で求めたマッチング画像Ｄとを用いて、シンボル位置Ｕと、各シンボル位置に対応する計測精度情報ｖpとを計算することができる。
【００７０】
以上のように本実施形態によれば、撮像画像を評価して、所定値よりも大きいコントラストを示す位置に対応する投影パターンＥ内の点には、高精度であることを示す精度情報を付加することができる。さらには、所定値以下の点には、低精度であることを示す精度情報を付加することができる。これにより、例えば出力結果を用いて三次元再構成を行う際に、高精度な三次元点の重みづけを高く設定し、低精度な三次元点を低く設定することにより、重みづけを行わない場合よりも高精度な再構成が可能になる。
【００７１】
［第３の実施形態］
本実施形態では、第１の実施形態に加えて、投影パターンの投影状態に応じて、投影パターン内のシンボル間の間隙を適切に調節する具体的な実施の一形態について説明する。被写体に投影された投影パターンは、被写体の反射率が低い場合には低い輝度で撮像されるため、コントラストが低下する。また、被写体がプロジェクタの焦点面よりも著しく近い、もしくは遠い場合には、投影パターンを構成する点に著しいボケが生じ、投影された点像同士が重なり合うことによって、それぞれの点のコントラストが低下し、結果として三次元計測の精度が低下する。そこで、本実施形態においてはコントラストの低下を検出した場合には点同士の間隙を大きく再設定することによって、計測精度の低下の抑制を可能にする。
【００７２】
図１１は、本実施形態における被写体１１０１の三次元形状を計測するための画像処理装置１１００全体の構成例を示すブロック図である。
本実施形態におけるプロジェクタ１１０２〜三次元形状計算部１１０９は、それぞれ図１におけるプロジェクタ１０２〜三次元形状計算部１０９に対応し、同様の機能を有するため、説明は省略する。投影パターン変更部１１１０は、計算決定部１１０７による高精度な形状測定が可能か否かの判定結果に基づいて、投影パターンＥを構成するシンボルの間隙を調節する。
【００７３】
本実施形態における全体的な動作手順は、基本的には図３と同様である。ただし、ステップＳ３０６におけるシンボル位置計算の処理のみ異なる動作を行う。図１２は、本実施形態におけるステップＳ３０６の詳細な処理手順の一例を示すフローチャートである。以下、流図１２の各処理について説明する。なお、ステップＳ６０１〜Ｓ６０７については図６と同様の動作を行うため、説明は省略する。
【００７４】
（ステップＳ１２０８）
まず、投影パターン変更部１１１０は、低精度と判断されたシンボル位置の数を示す低精度シンボル数ｇを０で初期化する。
【００７５】
（ステップＳ１２０９）
この処理においては、投影パターン変更部１１１０は、低精度シンボル数ｇに１を加える。
【００７６】
（ステップＳ１２１０）
続いて、投影パターン変更部１１１０は、低精度シンボル数ｇと予め定められたシンボル数閾値ｇthの値とを比較する。この比較の結果、低精度シンボル数ｇがシンボル数閾値ｇthより大きい場合には、シンボル同士の間隙を調整する必要があると判定して、ステップＳ１２１１に進む。一方、低精度シンボル数ｇがシンボル数閾値ｇth以下の場合には、ステップＳ３０６における動作を終了する。なお、シンボル数閾値ｇthは、高ければ計測密度を優先し、低ければ計測可能な距離範囲を優先する設定となるため、これらのバランスを考慮して予め値を決定しておくものとする。
【００７７】
（ステップＳ１２１１）
この処理では、投影パターン変更部１１１０は、投影パターン生成部１１０３に対してシンボル間隙閾値ａthの値に所定の加算値αを加えるよう指示する。これにより、次回計測時に生成される投影パターンＥのシンボル間隙ａはより大きなものになるため、被写体１１０１がプロジェクタ１１０２の焦点面から前回よりも大きく外れた状況においても、各点の位置が計算可能となる。なお、所定の加算値αは、被写体の距離や、反射率の変化に対して適切なシンボル間隙ａの値を実験的に算出し、予め適切な大きさを決定しておくものとする。
【００７８】
上記の動作を行うことにより、ステップＳ３０６において、撮像画像Ｃ、投影パターンＥの画像とステップＳ３０４で求めたマッチング画像Ｄを用いて、投影パターンを構成する点群の個々の輝度ピーク位置ｕの集合であるシンボル位置Ｕを計算する。さらに、撮像画像Ｃを評価して適切にシンボル間隙ａを調節した投影パターンを生成することができる。
【００７９】
以上のように本実施形態によれば、低精度と判定された三次元点の数を計数することにより、投影パターンを構成する点のボケや、投影された点像同士の重なりで生じたコントラストの低下を検出する。そして、コントラストの低下を検出した場合には、投影パターン内のシンボルの間隙を適切に調節することによって、次回以降の計測時のコントラスト低下を抑制させることができる。これにより、被写体表面の反射率がより低い場合や、被写体がプロジェクタの投影面により近い、もしくはより遠い場合などにおいても、計測動作を繰り返すことによって計測が可能となる。
【００８０】
（その他の実施形態）
前述した実施形態における投影パターンＥは円状の点群をシンボルとして構成されているが、これに限るものではない。例えば、撮像画像の分解能に応じて、矩形や十字の形状を有するシンボルを用いて投影パターンを構成してもよい。このようなシンボルを用いることにより、矩形画素の集合で構成された任意の画像を投影するためのプロジェクタを使用した場合においても、良好に投影パターンを投影することができる。
【００８１】
また、前述した実施形態における投影パターンＥは点群が相互にランダムな位置関係で配置されているが、これに限るものではない。例えば、ランダムに代わり所定の計算手順で生成可能な疑似ランダムな位置関係を用いてもよい。疑似ランダムな位置関係を用いることにより、安定したマッチング性能が得られるため、様々な形状を有する三次元形状に対しても、大きく破綻することなく計測が可能になる。
【００８２】
さらに、前述した実施形態におけるコントラストは、式（１）によって求められているが、これに限るものではない。例えば、輝度によって画素数を計数してヒストグラムを生成し、ヒストグラムの最低輝度、中央値輝度、最高輝度に属する画素数の比率からコントラストを求めてもよい。これにより、プロジェクタの反射光が小さい、もしくはカメラの性能によりＳＮ比が良好でないなど、撮像画像内のノイズが無視できないような状況下においても、良好にコントラストを計算することができる。
【００８３】
また、第２の実施形態における計算精度決定部９１０では計測精度情報を付加しているが、さらに三次元形状フィルタ部を設け、低精度の情報が付加された三次元点にフィルタを適用して三次元形状Ｓとして出力しないようにしてもよい。これにより、三次元点の数よりも、精度を重視した三次元形状を得ることができる。
【００８４】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８５】
１０２  プロジェクタ
１０４  カメラ
１０５  マッチング計算部
１０８  シンボル位置計算部
１０９  三次元形状計算部
【図１】
0006456084.tif 000009
【図２】
0006456084.tif 000010
【図３】
0006456084.tif 000011
【図４】
0006456084.tif 000012
【図５】
0006456084.tif 000013
【図６】
0006456084.tif 000014
【図７】
0006456084.tif 000015
【図８】
0006456084.tif 000016
【図９】
0006456084.tif 000017
【図１０】
0006456084.tif 000018
【図１１】
0006456084.tif 000019
【図１２】
0006456084.tif 000020