(57)【要約】【課題】  物体の表面形状が大きく変化している箇所においても、精度良く該物体までの三次元距離を計測するための技術を提供すること。【解決手段】  対象物体の三次元形状を表すモデルを概略位置姿勢で配置した場合の、該モデル上におけるパターンの投影位置を推定する。投影位置に対応する画像上の座標位置を求め、該求めた座標位置の近傍からパターンを探索する。画像から探索されたパターンと、投影部が投影するパターンと、の対応関係を用いて三角測量に基づく計算処理を行うことにより、撮影部から対象物体の表面までの距離を計算する。【選択図】  図１
2015137897.tif 000002
【特許請求の範囲】
【請求項１】
複数のスリットをもつ単一のパターンを投影する投影部と、該パターンが投影された対象物体の画像を撮影する撮影部と、に接続されている距離計測装置であって、
前記対象物体の概略の位置姿勢を取得する手段と、
前記対象物体の三次元形状を表すモデルを前記概略の位置姿勢で配置した場合の、該モデル上におけるパターンの投影位置を推定する推定手段と、
前記投影位置に対応する前記画像上の座標位置を求め、該求めた座標位置の近傍から前記パターンを探索する探索手段と、
前記画像から探索されたパターンと、前記投影部が投影するパターンと、の対応関係を用いて三角測量に基づく計算処理を行うことにより、前記撮影部から前記対象物体の表面までの距離を計算する計算手段と、
を備えることを特徴とする距離計測装置。
【請求項２】
前記推定手段は、前記投影部の光源から前記投影部が投影するパターンを通る直線と、前記モデルと、の交点位置を前記投影位置として求めることを特徴とする請求項１に記載の距離計測装置。
【請求項３】
前記探索手段は、前記撮影部と前記投影部との位置姿勢関係を表す情報を用いて前記投影位置を前記画像上に投影した位置を前記座標位置として求めることを特徴とする請求項１又は２に記載の距離計測装置。
【請求項４】
前記計算手段は、第１回目の計算処理では、前記画像中におけるパターンが表す符号列と、前記投影部が投影するパターンが表す符号列と、の対応関係を用いて、前記撮影部から前記対象物体の表面までの距離を計算し、
前記計算手段は、第２回目以降の計算処理では、前回に更新した概略の位置姿勢を用いて前記推定手段及び前記探索手段により前記画像から探索されたパターンと、前記投影部が投影するパターンと、の対応関係を用いて三角測量に基づく計算処理を行うことにより、前記撮影部から前記対象物体の表面までの距離を計算する
ことを特徴とする請求項１乃至３のいずれか１項に記載の距離計測装置。
【請求項５】
前記計算手段は、
前記第１回目の計算処理では、符号列を表すパターンを含むパターンを使用し、
前記第２回目以降の計算処理では、符号列を表すパターンを含まないパターンを使用する
ことを特徴とする請求項４に記載の距離計測装置。
【請求項６】
更に、
前記距離と、前記概略の位置姿勢で配置された前記モデルの表面から前記撮影部までの距離と、に基づいて、前記概略の位置姿勢を更新することで、前記対象物体の位置姿勢を導出する導出手段を備えることを特徴とする請求項１乃至５のいずれか１項に記載の距離計測装置。
【請求項７】
複数のスリットをもつ単一のパターンを投影する投影部と、該パターンが投影された対象物体の画像を撮影する撮影部と、に接続されている距離計測装置が行う距離計測方法であって、
前記距離計測装置の取得手段が、前記対象物体の概略の位置姿勢を取得する工程と、
前記距離計測装置の推定手段が、前記対象物体の三次元形状を表すモデルを前記概略の位置姿勢で配置した場合の、該モデル上におけるパターンの投影位置を推定する推定工程と、
前記距離計測装置の探索手段が、前記投影位置に対応する前記画像上の座標位置を求め、該求めた座標位置の近傍から前記パターンを探索する探索工程と、
前記距離計測装置の計算手段が、前記画像から探索されたパターンと、前記投影部が投影するパターンと、の対応関係を用いて三角測量に基づく計算処理を行うことにより、前記撮影部から前記対象物体の表面までの距離を計算する計算工程と、
を備えることを特徴とする距離計測方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の距離計測装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離計測技術に関するものである。
【背景技術】
【０００２】
三次元形状計測法としては種々の手法が提案されているが、ロバスト性が高く、高精度な計測には、投影装置と撮影装置とを組み合わせて用いるアクティブ型が広く用いられている。アクティブ型の特徴として、計測対象の表面テクスチャ情報が少ない場合でも、投影されたパターンを手がかりにして形状計測を行うことができる。アクティブ型の代表例として、投影パターンの位置に基づく手法、位相情報変化に基づく手法、投影パターンのデフォーカス情報に基づく手法などがある。
【０００３】
このうち、動的シーンに対応した計測において、複数スリットパターンを投影した光切断法が知られている。複数スリットパターンを投影した光切断法は一般的に全て同一形状のスリットパターンを投影する。そのため、測定距離範囲に限定を加えるなどしない限り、撮像されたスリットと投影されたスリットを一意に対応付ける事は困難である。そこで、特許文献１に記載の手法では、被計測対象に対して、スリットの幅の周期的な変化によって符号化された複数のスリットを投影する。そして、撮像されたスリットから符号を抽出し、投影されたスリットの符号と比較し、その比較結果に基づいて、撮像されたスリットと投影されたスリットを対応付け、対応付けられた結果に基づいて、三角測量の原理で三次元計測を行う。
【０００４】
以上のようにして求めた距離計測点群と、既知の形状モデルと、を用いて計測対象物体の位置姿勢を推定を行う手法が提案されている。計測対象物体表面の形状モデルが既知で、撮像装置から計測対象物体表面への複数の距離が点群として求められた場合に、点群から最近傍の点との距離の差を小さくするように位置姿勢を推定する方法が非特許文献１に開示されている。この方法は、ＩＣＰ（Iterative Closest Point）法として、距離計測と形状モデルの位置合わせの手法として広く利用されている。同様に、非特許文献２に記載の手法は、計測点群と形状モデルの面との距離を計算するもので、計測対象物体の形状モデルと計測点群の誤差を最小にするように計測対象物体の位置姿勢を推定することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５１７６３４
【非特許文献】
【０００６】
【非特許文献１】P.J. Besl and N. D. Mckay. “A method forregistration of 3-D shapes, ”IEEE Trans. Pattern Analysis and Machine Intelligence, 14(2),pp.239-256, 1992.
【非特許文献２】Y. Chen and G. Medioni, “Object modeling byregistration of multiple range images,” Robotics and Automation, 1991. Proceedings., 1991 IEEE InternationalConference on (1991),vol.3, pp. 2724-2729, 1991.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上の三次元形状計測方法において、計測対象物体の表面形状が大きく変化している場合、スリットパターンの対応が取れず、三次元形状計測が失敗する可能性がある。
【０００８】
本発明はこのような問題に鑑みてなされたものであり、物体の表面形状が大きく変化している箇所においても、精度良く該物体までの三次元距離を計測するための技術を提供する。
【課題を解決するための手段】
【０００９】
本発明の一様態によれば、複数のスリットをもつ単一のパターンを投影する投影部と、該パターンが投影された対象物体の画像を撮影する撮影部と、に接続されている距離計測装置であって、前記対象物体の概略の位置姿勢を取得する手段と、前記対象物体の三次元形状を表すモデルを前記概略の位置姿勢で配置した場合の、該モデル上におけるパターンの投影位置を推定する推定手段と、前記投影位置に対応する前記画像上の座標位置を求め、該求めた座標位置の近傍から前記パターンを探索する探索手段と、前記画像から探索されたパターンと、前記投影部が投影するパターンと、の対応関係を用いて三角測量に基づく計算処理を行うことにより、前記撮影部から前記対象物体の表面までの距離を計算する計算手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成により、物体の表面形状が大きく変化している箇所においても、精度良く該物体までの三次元距離を計測することができる。
【図面の簡単な説明】
【００１１】
【図１】システムの機能構成例を示すブロック図。
【図２】パターン画像の一例を示す図。
【図３】対象物体４の位置姿勢を推定するために行われる処理のフローチャート。
【図４】投影位置演算部３５が行う処理を説明する図。
【図５】対象物体４の形状情報の算出原理について説明する図。
【図６】位置姿勢演算部３７が行う処理の一例を示すフローチャート。
【図７】パターン画像の一例を示す図。
【図８】システムの機能構成例を示すブロック図。
【図９】対象物体４の位置姿勢を推定するために行われる処理のフローチャート。
【図１０】符号列の一例を示す図。
【図１１】符号列について説明する図。
【図１２】対象物体４の位置姿勢を推定するために行われる処理のフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
第１の実施形態に係る三次元計測装置（距離計測装置）は、三次元形状モデルとその概略位置姿勢から該モデル上におけるパターン（複数のスリットをもつ単一のパターン）の投影位置を推定し、その投影位置に対応する撮影画像上の座標位置を求め、スリットパターンの対応付けを行い、三角測量の原理に基づき距離計算を行うものである。これにより、パターンの対応付けができない計測物体に関し、三次元モデルとその概略位置姿勢の情報を用いることで対応付けを行うことが可能となり、三次元計測を行うことができる。
【００１４】
先ず、本実施形態に係るシステムの構成について、図１のブロック図を用いて説明する。図１に示す如く、本実施形態に係るシステムは、パターン画像に基づくパターン（光）を対象物体（計測対象物）４に投影する投影部１、該パターンが投影された対象物体４を撮影する撮影部２、対象物体４の位置姿勢を計算する三次元計測装置３、を有する。
【００１５】
先ず、投影部１について説明する。投影部１は、光源１１と、照明光学系１２と、表示素子１３と、投影光学系１４と、を備える。光源１１は、ハロゲンランプ、ＬＥＤなど各種の発光素子である。照明光学系１２は、光源１１から照射された光を表示素子１３へと導く機能を持つ光学系である。表示素子１３は、照明光学系１２から導かれた光をさらに投影光学系１４に導く際に、透過率、または、反射率を空間的に制御する機能を持つ。投影光学系１４は、表示素子１３から導かれた光を対象物体４の特定位置に結像させるように構成された光学系である。
【００１６】
次に、撮影部２について説明する。撮影部２は、撮影レンズ２１と、撮影素子２２と、を備える。撮影レンズ２１は、対象物体４の特定位置を撮影素子２２上に結像させるよう構成された光学系である。撮影素子２２は、ＣＭＯＳセンサ、ＣＣＤセンサなどの各種の光電変換素子である。また、撮影部２の位置・姿勢は、撮影素子２２上の画像座標系における垂直方向と、投影部１及び撮影部２の２つの光軸中心位置がなす直線とが平行になるように調整されている。
【００１７】
次に、三次元計測装置３について説明する。
【００１８】
形状モデル保持部３１は、対象物体４の三次元形状を表すモデル（三次元形状モデル）を取得して保持する。例えば、形状モデル保持部３１は、外部のサーバ装置に格納されている三次元形状モデルを、該サーバ装置からダウンロードして保持する。また、形状モデル保持部３１は、ユーザがキーボードやマウス等の不図示のインタフェースを操作することで入力した三次元形状モデルを取得して保持するようにしても構わない。また、形状モデル保持部３１は、三次元形状モデルの候補を不図示の表示画面に表示し、表示された候補のうちユーザが選択した候補を本装置内のメモリ若しくは外部装置から取得して保持するようにしても構わない。また、三次元形状モデル選択用の部品認識を利用しても構わない。
【００１９】
このように、形状モデル保持部３１による三次元形状モデルの取得方法については特定の取得方法に限るものではなく、必要時に本装置が三次元形状モデルを取得できていれば如何なる取得方法を採用しても構わない。
【００２０】
また三次元形状モデルの表現手法としては、任意の三次元座標位置を有する視点からの対象物体４の表面の三次元座標位置が計算できるモデルであれば良く、モデルの表現フォーマットは特定の表現フォーマットに限るものではない。
【００２１】
任意の三次元座標位置を有する視点からの三次元形状モデルの表面の三次元座標位置を計算することができるモデルには、例えば、以下のようなモデルを用いることができる。もちろん、本実施形態に適用可能な三次元形状モデルは以下のモデルに限るものではない。
【００２２】
・  三次元座標位置を有する頂点群と、頂点間を結ぶ線分で構成される平面と、で構成されたパッチモデル
・  物体の表面形状を記述する関数表現や、その係数を組み合わせた曲面関数の集合
・  空間上のボクセルのうち物体が占める領域の値を保持するモデル
概略位置姿勢保持部３２は、対象物体４が存在する空間（計測空間）の基準座標系（計測空間中における規定の１点を原点とし、該原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系）における対象物体４の概略の位置姿勢を保持する。計測空間における対象物体４の存在する範囲は、パーツフィーダーによる物理的な接触を保持して供給されるような部品などは位置姿勢を範囲として既定することができる。また、別の部品認識装置により事前に登録された画像との照合結果の範囲で、位置姿勢を推定することも可能である。ここでは、「概略の位置姿勢」（概略位置姿勢）は、三次元空間（計測空間）での位置姿勢を定める６自由度による表現であることが望ましい。
【００２３】
この概略位置姿勢を本装置に入力する方法には様々な方法が考えられ、特定の方法に限るものではない。例えば、位置姿勢のパラメータを数値入力できれば良く、他のセンサと接続して信号入力しても良い。また、投影部１および撮影部２がロボットアームの先端に装着されている場合は、ロボットアームが保持する各関節のエンコーダの値を用いて順運動学による手先の位置姿勢と装着位置とのオフセットを乗じて得られる位置姿勢を利用することも可能である。ここでは、現状の三次元空間における対象物体４の概略位置姿勢を取得できるようになっていれば構わない。既に対象物体４と計測空間との拘束が既定されているならば、それを利用して基準座標系における位置と姿勢の表現に変換すれば良い。
【００２４】
投影パターン画像生成部３３は、対象物体４に投影するパターン（パターン画像）を生成する。本実施形態では、動的シーンでの三次元計測を目的としているため、図２のような複数スリットパターンの画像を生成する。そして投影パターン画像生成部３３は、生成したパターン画像を、ＤＶＩのような汎用的なディスプレイ用インタフェースを介して投影部１に出力する。投影部１は、投影パターン画像生成部３３から出力されたパターン画像に基づくパターンを、対象物体４に対して投影する。
【００２５】
撮影画像取得部３４は、撮影部２で標本化ならびに量子化されたデジタル画像信号を取り込み、該取り込んだデジタル画像信号から、各画素が輝度値（濃度値）で表される画像を、撮影画像として取得する。また、撮影画像取得部３４は、ＲＳ２３２ＣやＩＥＥＥ４８８などの汎用の通信インタフェースを介して、撮影部２の動作（撮影のタイミングなど）を制御する。
【００２６】
投影位置演算部３５は、形状モデル保持部３１に保持されている三次元形状モデルを、概略位置姿勢保持部３２が保持する概略位置姿勢で配置した場合に、該三次元形状モデル上におけるパターンの投影位置を推定する。そして投影位置演算部３５は、該推定位置に対応する撮影部２の撮影面上の位置（撮影部２の撮影面に射影される位置）を、射影画像座標位置として求める。より具体的には、投影位置演算部３５は、投影パターン画像生成部３３が生成したパターン画像上の座標位置と、撮影部２による撮影画像上に投影される位置（射影画像座標位置）との関係を、三次元形状モデル及び概略位置姿勢を用いて算出する。投影位置演算部３５の動作については以下で詳しく説明する。
【００２７】
距離演算部３６は、撮影部２による対象物体４の撮影画像中の「投影位置演算部３５で推定された射影画像座標位置」の周辺（近傍）からパターンを探索し、該探索されたパターンと、パターン画像上のパターンと、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【００２８】
なお、投影位置演算部３５では、三次元形状モデルの投影と射影の関係があるパターンのみを使うことができるため、他の物体や背景の領域に対する距離計測の結果を含めないようにすることができる。
【００２９】
次に、対象物体４の位置姿勢を推定するために行われる処理について、同処理のフローチャートを示す図３を用いて説明する。
【００３０】
ステップＳ３０１では、形状モデル保持部３１は、対象物体４の三次元形状を表すモデルである三次元形状モデルを取得して保持する。ステップＳ３０２では、概略位置姿勢保持部３２は、対象物体４の基準座標系における概略位置姿勢を取得して保持する。
【００３１】
ステップＳ３０３では、投影パターン画像生成部３３は、対象物体４に投影するパターン（パターン画像）を生成して投影部１に出力する。ステップＳ３０４では、投影部１は、投影パターン画像生成部３３から出力されたパターン画像に基づくパターンを、対象物体４に対して投影する。
【００３２】
ステップＳ３０５では撮影画像取得部３４は、撮影部２を制御して、パターンが投影された対象物体４を撮影させる。そして撮影画像取得部３４は、撮影部２からのデジタル画像信号を取り込み、該取り込んだデジタル画像信号から撮影画像を生成する。当然ながら、この撮影画像には、パターンが投影された対象物体４が写っている。
【００３３】
ステップＳ３０６では、投影位置演算部３５は、形状モデル保持部３１に保持されている三次元形状モデルを、概略位置姿勢保持部３２が保持する概略位置姿勢で配置した場合に、該三次元形状モデル上におけるパターンの投影位置を推定する。そして投影位置演算部３５は、該推定した投影位置に対応する撮影部２の撮影面上の位置を射影画像座標位置として求める。
【００３４】
ステップＳ３０７では、距離演算部３６は、撮影画像中の射影画像座標位置の周辺（近傍）から対応するパターンを探索し、該探索されたパターンと、パターン画像上のパターンと、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【００３５】
次に、投影位置演算部３５が行う処理について、図４を用いて説明する。まず、投影部１の投影照明系が理想的な点光源からパターンを投影するものとして、焦点距離ｆ＝１とした仮想的な正規化投影画像面を設定し、これをパターン投影画像面と呼ぶ。投影パターン画像生成部３３は、模式的には、パターン投影画像面にパターンを書き込むと、投影部１が実際の照明、レンズなどのデバイスにより該パターンを対象物体４に対して投影する。実際には、投影のレンズ歪みや理想的な点光源を用いられないことによる影響で、投影される像に歪みが生じる場合があるが、事前に光学補正するか、パターン画像を補正することで影響を低減することができる。
【００３６】
パターン投影画像面上におけるパターンの座標位置ｍをｍ＝［ｕ，ｖ，１］Ｔとする。計測空間の基準座標系に対する投影中心の座標系を投影座標系と定義し、その座標系について、回転成分を３自由度、並進成分を３自由度の６自由度を用いて表現する。すなわち、計測空間の基準座標系に対する投影座標系の位置成分のオフセット及び姿勢成分のオフセットをそれぞれ３自由度で表し、合計６自由度を用いて表現する。
【００３７】
回転成分Ｒの表現としては、オイラー角、ロール・ピッチ・ヨー、回転軸回転角、４次元数などのいずれの表現手法を用いても構わない。ここでは、回転表現から得られる３×３の回転行列Ｒを用いる。並進成分はｔｘ、ｔｙ、ｔｚの３成分である３×１の行列ｔ＝［ｔｘ，ｔｙ，ｔｚ］Ｔを用いる。
【００３８】
投影部１から投影されたパターンは、基準座標系でのパターン投影位置Ｍ＝［Ｘ，Ｙ，Ｚ］Ｔに投影されるものとする。光源からパターン投影画像面上のパターン座標位置ｍを通過する直線上にパターン投影位置Ｍが存在するものとすると、光線（直線）上の位置（パターン投影位置Ｍとなりうる位置）は下記の式で表現できる。
【００３９】
【数１】
2015137897.tif 000003
【００４０】
ここで、λは直線の方向ベクトルのスケールとなる正の値である。Ｌ＝［Ｌｘ，Ｌｙ，Ｌｚ］Ｔは、直線の方向ベクトルの成分を簡単のためにまとめたものである。
【００４１】
次に、式（１）の直線と三次元形状モデル表面との交点位置を求め、これを三次元形状モデル表面上の投影位置Ｍとする。ここでは、形状モデル保持部３１に保持されている三次元形状モデルを構成するＮ個の三角形パッチのそれぞれについて、式（１）の直線と交差するかどうかが判定される。三次元形状モデルのｉ番目の三角形パッチのｊ番目の頂点の座標をＰｉｊ＝［ｐｘｉｊ、ｐｙｉｊ、ｐｚｉｊ］Ｔとする。そして以下の式（２）により、この座標Ｐｉｊを、概略位置姿勢保持部３２が保持する概略位置姿勢の回転成分（回転）Ｒｍ、並進成分（並進）ｔｍを使って、計測空間の基準座標系の座標Ｐ’ｉｊに変換する。
【００４２】
【数２】
2015137897.tif 000004
【００４３】
三角形パッチの平面の向き（法線ベクトル）は、三次元形状モデルのデータとして形状モデル保持部３１に保持されているものとする。計測空間でのｉ番目の三角形パッチの法線ベクトルｎ’ｉは、形状モデル保持部３１に保持されている三角形パッチの法線ベクトルｎｉに回転Ｒｍを掛けたものとなる。
【００４４】
頂点Ｐ’ｉｊと、直線との交点Ｐｃｉと、を結ぶ線分と、該頂点Ｐ’ｉｊを含む三角形パッチの法線ベクトルｎ’ｉと、は直交するので、内積の関係から、以下の式（３）が成り立つ。
【００４５】
【数３】
2015137897.tif 000005
【００４６】
この式３では、頂点Ｐ’ｉ０についての式である。この式（３）に式（１）を代入すると、次式（４）のようになる。
【００４７】
【数４】
2015137897.tif 000006
【００４８】
さらに、式（４）をλについてまとめると式（５）となる。
【００４９】
【数５】
2015137897.tif 000007
【００５０】
これを、式（１）に代入して交点Ｐｃｉの座標として求めると、次式（６）のようになる。
【００５１】
【数６】
2015137897.tif 000008
【００５２】
三角形パッチの内部に交点Ｐｃｉが存在するかどうかのチェックとして、三角形パッチの各頂点と交点Ｐｃｉとの外積を計算し、それぞれが法線ベクトルｎ’ｉと同じ向きの場合に、三角形パッチの内部に交点があることになる。具体的には、次の３つの式が全て正の場合に、交点が三角形パッチの内部に存在する。
【００５３】
【数７】
2015137897.tif 000009
【００５４】
なお、投影座標系原点により近い三角形パッチとの交点を求める必要がある。すなわち、交点を有する三角形パッチのうち、λ＞０の条件で投影座標系原点との距離が最も近い交点を有する三角形パッチを特定し、該特定した三角形パッチが有する交点を、三次元形状モデル表面上におけるパターンの推定位置（投影位置Ｍ）とすればよい。具体的には、以下の式（８）に従った計算処理を行えばよい。
【００５５】
【数８】
2015137897.tif 000010
【００５６】
式（８）により得られた、三角形パッチとの交点が、最終的な、三次元形状モデル表面上におけるパターンの推定位置（投影位置Ｍ）となる。換言すれば、パターン画像上のある位置のパターンが、概略位置姿勢で配置された三次元形状モデルに投影されたと仮定した場合に、その投影位置を、推定位置Ｍとして推定する。
【００５７】
一方、撮影部２は上記の通り、投影部１によりパターンが投影されている対象物体４を撮影している。撮影部２の撮像系をカメラとして中心射影のモデルとして考える。撮影画像面（射影画像面）までの焦点距離をｆ’とする。さらに、基準座標系におけるパターンの投影位置Ｍが撮影画像上に射影（撮影）されているとする。ここで、基準座標系におけるパターンの投影位置Ｍが写っている撮影画像中の位置（撮影画像上の射影画像座標位置）ｍ’を、ｍ’＝［ｕｃ’,ｖｃ’,１］Ｔとする。撮影部２が有する撮影レンズ２１の中心を基準座標系における回転と並進の６自由度で表現し、それぞれＲ’とｔ’の行列として表現すると中心射影の関係から次式（９）のようになる。
【００５８】
【数９】
2015137897.tif 000011
【００５９】
なお、ｓはスケール要素のスカラー値である。ここでは、投影部１のレンズの座標系と撮影部２の座標系が固定されているとし、事前にそのローカル座標変換（位置姿勢関係）は校正手続きにより求まっているとする。具体的な校正手続きは、校正指標を複数撮影して複数の校正指標座標値を用いて最小自乗法により求めることができるし、他の方法で校正しても構わない。ローカル座標変換行列をＲＬ（回転行列）及びｔＬ（並進行列）で表すと、以下の式（１０）が成り立つ。
【００６０】
【数１０】
2015137897.tif 000012
【００６１】
式（８）により得られた「三次元形状モデルの表面上におけるパターン投影位置Ｍ」と、式（１０）と、を式（９）に代入して式（１１）を得る。そして、この式（１１）により、基準座標系におけるパターンの投影位置Ｍが写っている撮影画像中の位置（撮影画像上の射影画像座標位置）ｍ’を得る。
【００６２】
【数１１】
2015137897.tif 000013
【００６３】
撮影画像上の射影画像座標位置ｍ’は、対象物体４の位置姿勢と概略位置姿勢保持部３２が保持している概略位置姿勢とが一致しているときには、該撮影画像中のパターンの位置と一致する。しかし、対象物体４の位置姿勢と概略位置姿勢保持部３２が保持している概略位置姿勢とがわずかに異なっている場合には、投影位置演算部３５が算出した射影画像座標位置ｍ’の近傍（撮影画像上）に、投影パターンの像が写っている。そこで、投影位置演算部３５は、距離演算部３６に対して照合領域の範囲を指示する。距離演算部３６は、指示された照合領域の範囲（すなわち算出した射影画像座標位置ｍ’の近傍領域）内で対応するパターンを探索し、該探索されたパターンと、パターン画像上のパターンと、の対応付けを行う。
【００６４】
そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出するのであるが、この算出の原理について、図５を用いて説明する。
【００６５】
撮影部２の光学中心をＣｃ、撮影画像面をＩｃ、焦点距離をｆｃ、画像中心ｃｃの座標を（ｕｃｏ、ｖｃｏ）、とする。このとき、撮影部２の内部行列Ａｃは以下の式（１２）のように記述される。
【００６６】
【数１２】
2015137897.tif 000014
【００６７】
また、投影部１の光学中心をＣｐ、投影画像面をＩｐ、焦点距離をｆｐ、画像中心ｃｐの座標を（ｕｐｏ、ｖｐｏ）、とする。このとき、投影部１の内部行列Ａｐは以下の式（１３）のように記述される。
【００６８】
【数１３】
2015137897.tif 000015
【００６９】
撮影部２の内部行列Ａｃと投影部１の内部行列Ａｐは公知の技術である内部パラメータのキャリブレーション方法を用いることで算出することが可能である。
【００７０】
撮影部２の座標系（Ｘ、Ｙ、Ｚ）と投影部１の座標系（Ｘｐ、Ｙｐ、Ｚｐ）との間の相対位置関係を表す外部パラメータは、回転行列Ｒと並進行列Ｔである（それぞれ図４のＲＬ，ｔＬに対応）。回転行列Ｒは３×３の行列であり、並進行列Ｔは３×１の行列である。ＲとＴは公知の技術である外部パラメータのキャリブレーション方法を用いることで算出することが可能である。
【００７１】
撮影部２のカメラ座標系を原点とする空間中の点Ｍの座標を（Ｘ、Ｙ、Ｚ）とする。点Ｍを撮影部２の撮影画像面Ｉｃに射影した点ｍｃの座標を（ｕｃ、ｖｃ）とする。その対応関係は以下の式（１４）で記述される。
【００７２】
【数１４】
2015137897.tif 000016
【００７３】
ｓはスカラーである。また、この点Ｍを投影部１の投影画像面Ｉｐに射影した点ｍｐの座標を（ｕｐ、ｖｐ）とする。その対応関係は以下の式（１５）で記述される。
【００７４】
【数１５】
2015137897.tif 000017
【００７５】
ｓ’はスカラーである。上記の式（１４）及び式（１５）を展開すると、以下の式（１６）で示す４つの連立方程式ができる。
【００７６】
【数１６】
2015137897.tif 000018
【００７７】
点ｍｃのピクセル座標（ｕｃ、ｖｃ）と点ｍｐのピクセル座標（ｕｐ、ｖｐ）は空間符号化法などのパターン投影法を用いることで求められる。また、Ｃｉｊ（ｉ＝１〜３、ｊ＝１〜３）、Ｐｉｊ（ｉ＝１〜３、ｊ＝１〜３）は内部行列と外部パラメータから算出されるため、予めキャリブレーションにより求められている。式（１４）において点Ｍの座標値（Ｘ、Ｙ、Ｚ）のみが未知数であり、連立方程式を解くことでこれを求めることができる。なお、求める未知数である点Ｍの座標値は（Ｘ、Ｙ、Ｚ）の３つであるため、投影部１の座標値（ｕｐ、ｖｐ）のいずれか一方を求めれば、点Ｍの座標値を算出することができる。以上が三角測量法に基づく距離計測の原理である。
【００７８】
このように、撮影画像上におけるスリットパターンの位置を三次元形状モデルとその概略位置姿勢から推定し、投影されるスリットパターンの撮影部２−投影部１間の対応付けを行うことで三次元計測点の取得が可能となる。
【００７９】
なお、三次元計測装置３、撮影部２、投影部１のそれぞれは別個の装置としても良いし、一体化させても良い。別個の装置とする場合には、例えば、投影部１には、市販の液晶プロジェクタを利用することができ、撮影部２には、市販のカメラとレンズを利用することが可能である。三次元計測装置とは、それぞれの装置で利用可能な信号を出力するための機構と、信号を受け取るための入出力部分があれば良い。そのようにすれば、利用者の用途や計測範囲に応じて装置を拡張して利用することができる。
【００８０】
［第２の実施形態］
第１の実施形態で説明した三次元計測装置では、距離計算をするために、複数スリットパターンを用いた。そのため、スリットパターンの対応付けに概略位置姿勢の初期値を必要とした。
【００８１】
本実施形態では、対象物体に対して、スリットの幅の周期的な変化によって複数のスリットパターンとそれを一意に対応付ける符号パターンを作成して投影する。例えば、図７のような符号パターンを投影することで粗く概略位置姿勢を求める。そして、対応付けできなかったスリットパターンに関しては、撮影画像上におけるスリットパターンの位置を三次元形状モデルと粗く推定した概略位置姿勢から求め、投影されるスリットパターンの撮影部−投影部間の対応付けを行う。以上の繰り返し処理により三次元計測点数を増やすことが目的である。
【００８２】
本実施形態に係るシステムの構成例について、図８のブロック図を用いて説明する。図８において、図１に示した機能部と同じ機能部については同じ参照番号を付しており、該機能部に係る説明は省略する。
【００８３】
図８に示した構成は、図１に示した構成に、位置姿勢演算部３７と、投影符号列生成部８１と、撮影符号列識別部８２と、を加えた構成を有している。
【００８４】
投影符号列生成部８１が符号列を生成する方法について説明する。符号列は、図１０に示す如く、ｕ、ｖ各方向に符号が並んでいる２次元配列であり、以下に述べる規則を用いて符号化されている。本実施形態では、ｕ方向、ｖ方向で１つずつ、計縦横２方向で２つのｄｅ  Ｂｒｕｉｊｎ系列を選択する。
【００８５】
ｄｅ  Ｂｒｕｉｊｎ系列とは、周期ｌの数列であって、連続するｍ個を見ると周期の中でどのパターンも一つのみ表れるものである。ｄｅ  Ｂｒｕｉｊｎ系列の選択は、パターン画像として使用できるシンボルの数をｋとし、サンプリング形状を囲む矩形の大きさをｍ×（ｎ＋１）とすると、ｕ方向のｄｅ  Ｂｒｕｉｊｎ系列はｌｕ＝ｋｍのものを、ｖ方向はｌｖ＝ｋｎのものをそれぞれ選択する。本実施形態では、シンボル数＝３であるため、ｋ＝３である。また、部分符号列の形状は、全て大きさ３×３の矩形で囲まれるため、ｍ＝３、ｎ＝２となる。本実施形態のｕ方向で用いるｋ＝３、ｍ＝３（系列長３３＝２７）のｄｅ  Ｂｒｕｉｊｎ系列は、以下に示す数列となる。
【００８６】
【数１７】
2015137897.tif 000019
【００８７】
同様に、本実施形態のｖ方向で用いるｋ＝３、ｎ＝２（系列長３２＝９）のｄｅ  Ｂｒｕｉｊｎ系列を以下に示す。
【００８８】
【数１８】
2015137897.tif 000020
【００８９】
次に、上記２つのｄｅ  Ｂｒｕｉｊｎ系列を用いた符号列の生成方法について説明する。生成される符号列ｆｉｊは、式（１９）のように最初にｕ方向ｉ＝１行目として、ｕ方向のｄｅ  Ｂｒｕｉｊｎ系列をそのまま符号列として使用する。
【００９０】
【数１９】
2015137897.tif 000021
【００９１】
ｕ方向２行目以降は、以下に示すような式（２０）で表わされる。
【００９２】
【数２０】
2015137897.tif 000022
【００９３】
１つ前の行に対して、ｕ方向のｄｅ  Ｂｒｕｉｊｎ系列を加算した結果を符号列とする。ここで、加算結果は１〜ｋで表されるｋ進数で表し、繰り上がりは無視する。以上のように、全てのｕ方向のｄｅ  Ｂｒｕｉｊｎ系列を１列ずつ加算して符号列を求めていくことにより、図１０に示すようなｕ、ｖ各方向２次元の符号列を生成することが出来る。
【００９４】
以上の方法で生成した符号列は図１１に示す如く、符号列内のｍ×ｎの大きさの任意の位置の矩形で囲まれる領域内で、ある行とある列とを固定した式（２１）のような順序でサンプリングしたｍ、ｎの長さの部分符号列は符号列中で一つしか存在しない。ｉおよびｊは、符号サンプリングの座標を示す。
【００９５】
【数２１】
2015137897.tif 000023
【００９６】
ただし、式（２１）は、図１１に示すようなサンプリング形状が十字状であるときの順序であることを前提とする。サンプリングする長さに応じ、サンプリング形状を変更し、任意の順序でサンプリングしても良い。また、本実施形態ではＤｅ  Ｂｒｕｉｊｎ系列を用いたが、符号列は、Ｍ系列など、任意で選択した部分符号列がほかの部分符号列に対して一意に決まる疑似ランダム系列を用いてもよい。
【００９７】
投影パターン画像生成部３３は、投影符号列生成部８１から受けた符号列の各符号を、該符号に対応するパターンに置き換えたものを、パターン画像として生成する。例えば、図７（ａ）のようなエピポーラ線と計測パターンで区切られた領域を３つの領域に分け、それぞれの領域を３値の符号に割り当てる。たとえば、左にあれば符号「１」、中央にあれば符号「２」、右にあれば符号「３」と対応づける。
【００９８】
そして図７（ｂ）に示す如く、符号列が示す最上ラインの符号が左端から順に「２」、「１」となっている場合、図７（ｂ）の右側に示す如く、最上ラインの左端から順に、符号「２」、符号「１」に対応するように符号パターンを割りあてる。このように、２ライン目以降の各ラインについても同様にして各符号に対応する符号パターンを割り当てることで、符号列に応じて画像を生成することができる。
【００９９】
なお、本実施形態では、投影パターン画像は、図７に示すように計測パターンと符号パターンの二種類の方向性を持つ線パターンで構成されているが、二種類以上の方向性を持つ線パターンから構成してもよい。この場合は、それぞれの方向性に応じたＳｏｂｅｌフィルタを使用してフィルタ処理を行い、同一の方向性をもつ線パターンのみを抽出すればよい。これにより、被写体の歪みをより詳細に計測することができる。
【０１００】
また、符号パターンの形状は四角に限るものではなく、円形や三角などでもよい。また、領域の割り当てによって符号と対応付けるのではなく、パターンの形状や方向性そのものを対応付けてもよい。
【０１０１】
撮影符号列識別部８２は、撮影画像取得部３４が取り込んだ撮影画像から、対象物体４上に投影されている符号パターンを抽出し、エピポーラ線と計測パターンとで区切られた領域の配置関係から、対応した符号パターンの符号を撮影符号列として取得する。
【０１０２】
本実施形態に係る距離演算部３６は、符号列の中で唯一決定づける特徴を示す部分符号列から、パターン画像と撮影画像の計測パターン同士の対応付けを行う。さらに、この対応付け結果を用いて、三角測量の原理で撮影部２とパターン画像が投影された対象物体４との間の距離を示す距離情報、すなわち対象物体４の形状を計算する。
【０１０３】
位置姿勢演算部３７は、距離演算部３６が求めた距離と、概略位置姿勢で配置された三次元形状モデルの表面から撮影部２までの距離と、の差を極小化するように該概略位置姿勢を繰り返し更新する（最適化計算）。そして位置姿勢演算部３７は、該繰り返し更新後の位置姿勢を対象物体４の位置姿勢とする。
【０１０４】
この位置姿勢の推定処理（最適化計算）では、姿勢に対して非線形な計算を伴うため、基本的には繰り返し誤差最小化を適用する。具体的には、非特許文献１に開示されるＩＣＰ法や、非特許文献２に開示される方法を利用して、三次元形状モデルと計測距離から該三次元形状モデルの位置姿勢を求めることができる。その際に、初期値としては概略位置姿勢保持部３２が保持している概略位置姿勢を使うことができる。
【０１０５】
また、位置姿勢演算部３７では、繰り返し演算の結果で生じる残差から最適化計算の繰り返しを継続するか否かを判定する。この判定のための閾値としては、ユーザが設定した閾値でもよいし、作業空間における観測面積と撮影装置との距離との関係を用いて設定された閾値でもよい。さらに、三次元計測装置既定値を保持していて、それを読み出して閾値としても構わない。
【０１０６】
いずれかの方法により設定された閾値と残差の値とを比較するが、実際には演算後の残差が小さくならない場合もある。そのため、本実施形態では、繰り返し回数を保持しておき、残差の繰り返しごとのトレンドを計算し、繰り返し回数が既定回数を越えた場合もしくはトレンドが増加する傾向にある場合には、位置姿勢演算部３７による最適化演算の繰り返しを停止するようにする。これにより、位置姿勢の最適化演算が成功したか否かを判定することができる。
【０１０７】
次に、対象物体４の位置姿勢を推定するために行われる処理について、同処理のフローチャートを示す図９を用いて説明する。
【０１０８】
ステップＳ９０１及びステップＳ９０２のそれぞれにおける処理は、ステップＳ３０１及びステップＳ３０２のそれぞれにおける処理と同様であるので、これらのステップに係る説明は省略する。なお、ステップＳ９０１及びステップＳ９０２における事前の準備が整った状態で、例えば位置姿勢演算部３７が位置姿勢計測処理で用いる変数ｋを０に初期化するなどの様々な初期化処理が行われ、以降の処理が開始される。
【０１０９】
ステップＳ９０３では、投影符号列生成部８１は、パターン画像と撮影画像とのそれぞれにおける計測パターンの対応付けを行うために符号列を生成する。
【０１１０】
ステップＳ９０４では、投影パターン画像生成部３３は、ステップＳ９０３で生成した符号列に従い、複数スリットパターンと、それぞれのスリットを一意に対応付ける符号パターンと、から成るパターン画像を生成する。そして投影パターン画像生成部３３は、生成したパターン画像を、投影部１に対して出力する。ステップＳ９０５では、投影部１は、投影パターン画像生成部３３から出力されたパターン画像に基づくパターンを、対象物体４に対して投影する。
【０１１１】
ステップＳ９０６では、撮影画像取得部３４は、撮影部２を制御して、パターンが投影された対象物体４を撮影させる。そして撮影画像取得部３４は、撮影部２からのデジタル画像信号を取り込み、該取り込んだデジタル画像信号から撮影画像を生成する。当然ながら、この撮影画像には、パターンが投影された対象物体４が写っている。
【０１１２】
ステップＳ９０７では、撮影符号列識別部８２は、ステップＳ９０６で取得した撮影画像から符号パターンを抽出し、該抽出した符号パターンから符号列を撮像符号列として検出する。
【０１１３】
ステップＳ９０８では、投影位置演算部３５は、形状モデル保持部３１に保持されている三次元形状モデルを、概略位置姿勢保持部３２が保持する概略位置姿勢で配置した場合に、該三次元形状モデル上におけるパターンの投影位置を推定する。そして投影位置演算部３５は、該推定した投影位置に対応する撮影部２の撮影面上の位置を射影画像座標位置として求める。
【０１１４】
ステップＳ９０９における計算処理では、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を計算する計算処理を行うのであるが、第１回目の計算処理と第２回目以降の計算処理とで計算方法が異なる。
【０１１５】
第１回目のステップＳ９０９では、距離演算部３６は、ステップＳ９０７で検出した撮影符号列と、パターン画像中に記されている符号パターンが表す符号列と、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【０１１６】
第２回目以降のステップＳ９０９では、距離演算部３６は、ステップＳ９０８で求めた射影画像座標位置の周辺（近傍）から対応する計測パターンを探索し、該探索された計測パターンと、パターン画像上の計測パターンと、の対応付けを行う。すなわち、前回の概略の位置姿勢に基づいて求めた射影画像座標位置の周辺（近傍）から対応する計測パターンを探索し、該探索された計測パターンと、パターン画像上の計測パターンと、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【０１１７】
ステップＳ９１０では、位置姿勢演算部３７は、距離演算部３６が求めた距離と、概略位置姿勢で配置された三次元形状モデルの表面から撮影部２までの距離と、の差を極小化するような対象物体４の位置姿勢を推定（導出）する。
【０１１８】
ステップＳ９１１では、位置姿勢演算部３７は、概略位置姿勢保持部３２が保持する概略位置姿勢を、ステップＳ９１０で推定した位置姿勢で更新する。ステップＳ９１２では、位置姿勢演算部３７は、変数ｋの値を１つインクリメントすることで、ステップＳ９１０の位置姿勢推定処理の繰り返し回数を１つカウントする。
【０１１９】
ステップＳ９１３では、位置姿勢演算部３７は、変数ｋの値が閾値以上（繰り返し回数が規定回数以上）であるか否かを判断する。この判断の結果、変数ｋの値が閾値以上であれば、図９のフローチャートに従った処理は終了する。一方、変数ｋの値が閾値未満である場合には、処理はステップＳ９０８に進む。
【０１２０】
次に、位置姿勢演算部３７が行う処理の一例について、図６のフローチャートを用いて説明する。
【０１２１】
ステップＳ６０１では、位置姿勢演算部３７は、位置姿勢計測処理で用いる変数ｋを０に初期化すると共に、移動平均値の値を０に初期化する。ステップＳ６０２では、位置姿勢演算部３７は、距離演算部３６が求めた距離を取得する。
【０１２２】
ステップＳ６０３では、位置姿勢演算部３７は、距離演算部３６が求めた距離と、概略位置姿勢で配置された三次元形状モデルの表面から撮影部２までの距離と、の差を極小化するような対象物体４の位置姿勢を推定する。そして位置姿勢演算部３７は、概略位置姿勢保持部３２が保持する概略位置姿勢を、この推定した位置姿勢で更新する。
【０１２３】
ステップＳ６０４では、位置姿勢演算部３７は、更新した位置姿勢と、ステップＳ６０３における計算処理で求めた残差と、を取得する。ステップＳ６０５では、位置姿勢演算部３７は、この残差が規定値以下であるか否かを判断する。この判断の結果、残差が規定値以下であれば、処理はステップＳ６０６に進む。ステップＳ６０６では、位置姿勢演算部３７は、対象物体４の位置姿勢の推定が成功（最適化成功）した旨を示す値をフラグに設定して本処理を終了する。
【０１２４】
一方、残差が閾値よりも大きい場合には、処理はステップＳ６０７に進む。ステップＳ６０７では、位置姿勢演算部３７は、残差が減少しているか増加しているかのトレンドを計算するため、残差の移動平均値を計算する。移動平均のフレーム数ｎはユーザが指定してもよいし、実験的に求めた値を設定しておいても良い。
【０１２５】
ステップＳ６０８では、位置姿勢演算部３７は、計算した移動平均値が前回計算した移動平均値よりも大きくなる傾向を示す場合には、最適化演算の誤差最小化計算が発散していると判断し、処理はステップＳ６０９に進む。ステップＳ６０９では、位置姿勢演算部３７は、対象物体４の位置姿勢の推定が失敗（最適化失敗）した旨を示す値をフラグに設定して本処理を終了する。
【０１２６】
一方、計算した移動平均値が前回計算した移動平均値よりも小さくなる傾向を示す場合には、処理はステップＳ６１０に進む。ステップＳ６１０では、位置姿勢演算部３７は、変数ｋの値を１つインクリメントする。
【０１２７】
ステップＳ６１１では、位置姿勢演算部３７は、変数ｋの値が閾値以上（繰り返し回数が規定回数以上）であるか否かを判断する。この判断の結果、変数ｋの値が閾値以上であれば、処理はステップＳ６１２に進む。ステップＳ６１２では、位置姿勢演算部３７は、繰り返し回数が規定回数以上となった旨を示す値をフラグに設定して本処理を終了する。一方、変数ｋの値が閾値未満である場合には、処理はステップＳ６０３に戻り、以降の処理を繰り返す。
【０１２８】
このように、本実施形態によれば、１回目の処理で撮影部２−投影部１間の対応付けができなかった箇所において、撮影画像上における計測パターンの位置を三次元形状モデルと１回目で推定した概略位置姿勢から求めることができる。そして、投影されるスリットパターンの撮影部２−投影部１間の対応付けを行うことで、三次元計測点の取得が可能となる。
【０１２９】
［第３の実施形態］
第２の実施形態では、パターンを変更せずに計測処理を行うことで三次元計測の精度向上を実現した。しかし、ボケ等の光学系によって符号パターンがスリットパターンに干渉し、精度が低下することがある。そこで本実施形態では、１回目の撮影では図７のような符号パターンを含むパターンを投影して、スリットパターンの対応付けを行う。２回目以降の撮影においては、例えば図２のような符号パターンがスリットパターンに干渉しないパターンに変更・投影し、概略位置姿勢と撮影画像をもとに、スリットパターンの対応付けを行う。
【０１３０】
本実施形態に係るシステムの構成は、第２の実施形態と同様（図８）である。次に、対象物体４の位置姿勢を推定するために行われる処理について、同処理のフローチャートを示す図１２を用いて説明する。
【０１３１】
ステップＳ１２０１〜ステップＳ１２０７のそれぞれにおける処理は、ステップＳ９０１〜ステップＳ９０７のそれぞれにおける処理と同様であるので、これらのステップに係る説明は省略する。
【０１３２】
ステップＳ１２０８における計算処理では、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を計算する計算処理を行うのであるが、第１回目の計算処理と第２回目以降の計算処理とで計算方法が異なる。
【０１３３】
ここで、投影パターン画像生成部３３は、使用するパターン画像の初期値として、図７のような符号パターンを含むパターン画像を設定している。然るに、第１回目のステップＳ１２０８では、距離演算部３６は、ステップＳ１２０７でこのパターン画像から検出した撮影符号列と、このパターン画像中に記されている符号パターンが表す符号列と、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【０１３４】
また、投影パターン画像生成部３３は、ステップＳ１２０４〜ステップＳ１２１２の処理を１回終えると、第２回目以降用に、図２に示したような、符号パターンがスリットパターンに干渉しないパターン画像を、ステップＳ１２１４で設定する。然るに、第２回目以降のステップＳ１２０８では、距離演算部３６は、ステップＳ１２１３で求めた射影画像座標位置の周辺（近傍）から対応するパターンを探索し、該探索されたパターンと、パターン画像上のパターンと、の対応付けを行う。すなわち、前回の概略の位置姿勢に基づいて求めた射影画像座標位置の周辺（近傍）から対応する計測パターンを探索し、該探索された計測パターンと、パターン画像上の計測パターンと、の対応付けを行う。そして距離演算部３６は、この対応付けの結果を用いて、三角測量の原理で、撮影部２と対象物体４の表面上の各点との間の距離を示す距離情報、即ち、対象物体４の形状情報を算出する。
【０１３５】
ステップＳ１２０９では、位置姿勢演算部３７は、距離演算部３６が求めた距離と、概略位置姿勢で配置された三次元形状モデルの表面から撮影部２までの距離と、の差を極小化するような対象物体４の位置姿勢を推定する。
【０１３６】
ステップＳ１２１０では、位置姿勢演算部３７は、概略位置姿勢保持部３２が保持する概略位置姿勢を、ステップＳ１２０９で推定した位置姿勢で更新する。ステップＳ１２１１では、位置姿勢演算部３７は、変数ｋの値を１つインクリメントすることで、ステップＳ１２０９の位置姿勢推定処理の繰り返し回数を１つカウントする。
【０１３７】
ステップＳ１２１２では、位置姿勢演算部３７は、変数ｋの値が閾値以上（繰り返し回数が規定回数以上）であるか否かを判断する。この判断の結果、変数ｋの値が閾値以上であれば、図１２のフローチャートに従った処理は終了する。一方、変数ｋの値が閾値未満である場合には、処理はステップＳ１２１３に進む。
【０１３８】
ステップＳ１２１３では、投影位置演算部３５は、形状モデル保持部３１に保持されている三次元形状モデルを、概略位置姿勢保持部３２が保持する概略位置姿勢で配置した場合に、該三次元形状モデル上におけるパターンの投影位置を推定する。そして投影位置演算部３５は、該推定した投影位置に対応する撮影部２の撮影面上の位置を射影画像座標位置として求める。
【０１３９】
ステップＳ１２１４では、投影パターン画像生成部３３は、上記の通り、投影部１に出力するパターン画像を切り替える。すなわち、投影パターン画像生成部３３は、使用するパターン画像の初期値として、図７のような符号パターンを含むパターン画像を設定している。そして、ステップＳ１２１４では、投影パターン画像生成部３３は、使用するパターンとして、図２に示したような、符号パターンがスリットパターンに干渉しないパターン画像を設定する。
【０１４０】
このようにすることで、２回目以降の処理では、符号パターンの影響を受けない、精度のよい三次元計測点を取得することができる。本実施形態では第２回目以降は複数スリットパターンのみに変更していたが、複数スリットパターンに干渉しないように符号パターンの形状・大きさを変更、またはスリットパターンの間隔を変更するようにしても構わない。また、２回目における複数スリットパターンは、符号を配置しないため、１回目の計測パターンに比べ、計測線の幅を大きくしても、計測線間隔を狭くし、計測線本数を増やしても構わない。
【０１４１】
［第４の実施形態］
図１，８に示した三次元計測装置３を構成する各機能部はハードウェアで構成してもよいが、形状モデル保持部３１及び概略位置姿勢保持部３２を除く各機能部をソフトウェア（コンピュータプログラム）で構成しても良い。
【０１４２】
例えば、形状モデル保持部３１及び概略位置姿勢保持部３２として機能するメモリと、このソフトウェアを格納するためのメモリと、このソフトウェアを実行する制御部と、を有する装置は、三次元計測装置３に適用することができる。この場合、この制御部（例えばＣＰＵ）がこのソフトウェアを実行することで、この制御部は、上記の実施形態で説明した三次元計測装置３の動作を実現することになる。
【０１４３】
（その他の実施例）
本発明は、三次元形状モデルとその概略位置姿勢から該モデル上におけるパターンの投影位置を推定し、その投影位置に対応する撮影画像上の座標位置を求め、スリットパターンの対応付けを行い、三角測量の原理に基づき距離計算を行うものであるが、三次元形状モデルがなくてもよい。１回目の処理として符号パターンを計測物体に投影することで三次元計測を行い、その三次元計測点から粗く三次元モデルを生成する。そして、２回目の処理として、対応付けできなかったスリットパターンに関しては、撮影画像上におけるスリットパターンの位置を生成した三次元形状モデルとその位置姿勢から求め、投影されるスリットパターンの撮影部−投影部間の対応付けを行ってもよい。この２回目において投影するスリットパターンは、符号を配置しないため、１回目の計測パターンに比べ、計測線の幅を大きくしても、計測線間隔を狭くし、計測線本数を増やしても構わない。
【０１４４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１４５】
＜実施例の効果＞
第１の実施形態により、撮影画像上におけるスリットパターンの位置を三次元形状モデルとその概略位置姿勢から推定し、投影されるスリットパターンの撮影部２−投影部１間の対応付けを行うことで三次元計測点の取得が可能となる。
【０１４６】
第２の実施形態により、１回目の処理で撮影部２−投影部１間の対応付けができなかった箇所において、撮影画像上における計測パターンの位置を三次元形状モデルと１回目で推定した概略位置姿勢から求めることができる。そして、投影されるスリットパターンの撮影部２−投影部１間の対応付けを行うことで、三次元計測点の取得が可能となる。
【０１４７】
第３の実施形態により、２回目以降の処理では、投影するパターンを切り替えることにより、符号パターンの影響を受けない、精度のよい三次元計測点を取得することができる。
【図１】
2015137897.tif 000024
【図２】
2015137897.tif 000025
【図３】
2015137897.tif 000026
【図４】
2015137897.tif 000027
【図５】
2015137897.tif 000028
【図６】
2015137897.tif 000029
【図７】
2015137897.tif 000030
【図８】
2015137897.tif 000031
【図９】
2015137897.tif 000032
【図１０】
2015137897.tif 000033
【図１１】
2015137897.tif 000034
【図１２】
2015137897.tif 000035