(57)【要約】【課題】１回のパターン投影、及び撮影により計測対象の３次元形状を復元する。【解決手段】投影装置１は、所定の投影パターン（円形白黒コード群）を計測対象４に投影する。撮像装置２は、投影パターンが投影された計測対象４を撮影する。コード抽出部３−２は、撮影した画像からコードを抽出する。コード識別部３−３は、抽出したコードからコード番号を識別する。ワード生成部３−４は、着目コード番号の４近傍のコード番号を探索してワードを生成する。対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと投影パターンのワードとの対応をとり、対応点の座標を得る。３次元位置算出部３−６は、３角測量の原理を用いて、撮影画像中のワードの中心座標と投影パターンの中心座標とから３次元座標位置を算出する。【選択図】図１
2011237296.tif 000002
【特許請求の範囲】
【請求項１】
１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測方法であって、
それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影ステップと、
前記投影パターンが投影された前記計測対象を撮影する撮影ステップと、
前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出ステップと、
前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別ステップと、
前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成ステップと、
前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出ステップと、
前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出ステップと
を含むことを特徴とする３次元形状計測方法。
【請求項２】
前記対応点位置算出ステップで算出された、前記撮影画像中のワードに対応する投影パターンのワードの対応点位置がエピポーラ線近傍に存在するかを判定し、前記エピポーラ線から所定の閾値以上離れる場合には、外れ値とみなして除去する第１の外れ値除去ステップを更に含み、
前記３次元位置算出ステップは、
前記外れ値が除去された残りの撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出することを特徴とする請求項１に記載の３次元形状計測方法。
【請求項３】
前記３次元位置算出ステップで算出された、前記計測対象に投影された円形白黒コードの３次元位置を用いて、着目３次元点の位置と近傍３次元点の位置との距離を測り、該距離が大きく外れる場合には、外れ値とみなして、前記計測対象に投影された円形白黒コードの３次元位置から、対象となる着目３次元点を除去する第２の外れ値除去ステップを更に含むことを特徴とする請求項２に記載の３次元形状計測方法。
【請求項４】
前記コード抽出ステップでコードは抽出されたが、前記ワード生成ステップでワードが生成できなかった場合に、その着目点のコードとその近傍点のコードとの位置を、穴埋め候補ワード群として保存する穴埋め候補保存ステップと、
前記第２の外れ値除去ステップによる外れ値除去後、コードは抽出されたが、ワードが生成できなかった着目点の３次元位置を、ワードが生成できた近傍３次元点の位置を用いて算出する穴埋めステップと
を更に含むことを特徴とする請求項３に記載の３次元形状計測方法。
【請求項５】
１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測装置であって、
それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影手段と、
前記投影パターンが投影された前記計測対象を撮影する撮影手段と、
前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出手段と、
前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別手段と、
前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成手段と、
前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出手段と、
前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出手段と
を備えることを特徴とする３次元形状計測装置。
【請求項６】
前記対応点位置算出手段で算出された、前記撮影画像中のワードに対応する投影パターンのワードの対応点位置がエピポーラ線近傍に存在するかを判定し、前記エピポーラ線から所定の閾値以上離れる場合には、外れ値とみなして除去する第１の外れ値除去手段を更に備え、
前記３次元位置算出手段は、
前記外れ値が除去された残りの撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出することを特徴とする請求項５に記載の３次元形状計測装置。
【請求項７】
前記３次元位置算出手段で算出された、前記計測対象に投影された円形白黒コードの３次元位置を用いて、着目３次元点の位置と近傍３次元点の位置との距離を測り、該距離が大きく外れる場合には、外れ値とみなして、前記計測対象に投影された円形白黒コードの３次元位置から、対象となる着目３次元点を除去する第２の外れ値除去手段を更に備えることを特徴とする請求項６に記載の３次元形状計測装置。
【請求項８】
前記コード抽出手段でコードは抽出されたが、前記ワード生成手段でワードが生成できなかった場合に、その着目点のコードとその近傍点のコードとの位置を、穴埋め候補ワード群として保存する穴埋め候補保存手段と、
前記第２の外れ値除去手段による外れ値除去後、コードは抽出されたが、ワードが生成できなかった着目点の３次元位置を、ワードが生成できた近傍３次元点の位置を用いて算出する穴埋め手段と
を更に備えることを特徴とする請求項７に記載の３次元形状計測装置。
【請求項９】
１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測装置のコンピュータに、
それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影機能、
前記投影パターンが投影された前記計測対象を撮影する撮影機能、
前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出機能、
前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別機能、
前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成機能、
前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出機能、
前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出機能
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、投影装置（例えば、プロジェクタ）でパターンが投影された計測対象を、撮像装置（例えば、カメラ）で撮影し、画像処理により対象物体の３次元形状を復元するための３次元形状計測方法、３次元形状計測装置、及びプログラムに関する。
【背景技術】
【０００２】
従来の１回のパターン投影、及び撮影により動物体の３次元形状を計測する方法は、空間コード化法と言われ、主に、階調、縞模様、点群を用いたパターン投影方法として知られている。ここで、階調を用いたパターン投影方法は、すべての画素に固有の階調を割り当てることにより、投影パターンの座標と撮影画像の座標との対応付けを行う方法である。
【０００３】
一方、縞模様を用いたパターン投影方法は、Ｄｅ  Ｂｒｕｉｊｎ系列という１次元の部分数列が特定できれば、数列中の位置が特定可能な数列を使い、その数列に複数の色の付いた縞模様割り当てることにより、投影パターンの座標と撮影画像の座標との対応付けを行う方法である。
【０００４】
一方、点群を用いたパターン投影方法は、Ｍ系列という２次元の部分数列が特定できれば、数列中の位置が特定可能な数列を使い、その数列に色や白黒の幾何学模様の点を割り当てることにより、投影パターンの座標と撮影画像の座標の対応付けを行う方法である（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】P. M. Griffin, L. S. Narasimhan, and S. R. Yee, “Generation of uniquely encoded light patterns for range data acquisition,” Pattern Recogn. 25(6), 609-616 (1992)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した空間コード化法では、多くの階調を識別する必要があるため、パターン抽出が不安定であるといった問題がある。また、画像中のノイズに弱く、投影対象とする物体表面の特性に大きく左右されるといった問題がある。
【０００７】
さらに、縞模様を用いたパターン投影方法では、複数の色を投影するため、投影対象の色に左右されるという問題がある。また、点群を用いたパターン投影方法では、色点群を用いたものは、複数の色を投影するため、投影対象の色に左右されるという問題がある。また、白黒の幾何模様の点群を用いたものは、対象の高さの変化が急である場所においては、コードが変形することにより、幾何模様の抽出が難しいといった問題があった。
【０００８】
本発明は、このような事情を考慮してなされたものであり、その目的は、投影対象の色によらず、物体の高さによりコードが変形した際にも、１回のパターン投影、及び撮影により、計測対象の３次元形状を復元することができる３次元形状計測方法、３次元形状計測装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、本発明は、１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測方法であって、それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影ステップと、前記投影パターンが投影された前記計測対象を撮影する撮影ステップと、前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出ステップと、前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別ステップと、前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成ステップと、前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出ステップと、前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出ステップとを含むことを特徴とする３次元形状計測方法である。
【００１０】
本発明は、上記の発明において、前記対応点位置算出ステップで算出された、前記撮影画像中のワードに対応する投影パターンのワードの対応点位置がエピポーラ線近傍に存在するかを判定し、前記エピポーラ線から所定の閾値以上離れる場合には、外れ値とみなして除去する第１の外れ値除去ステップを更に含み、前記３次元位置算出ステップは、前記外れ値が除去された残りの撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出することを特徴とする。
【００１１】
本発明は、上記の発明において、前記３次元位置算出ステップで算出された、前記計測対象に投影された円形白黒コードの３次元位置を用いて、着目３次元点の位置と近傍３次元点の位置との距離を測り、該距離が大きく外れる場合には、外れ値とみなして、前記計測対象に投影された円形白黒コードの３次元位置から、対象となる着目３次元点を除去する第２の外れ値除去ステップを更に含むことを特徴とする。
【００１２】
本発明は、上記の発明において、前記コード抽出ステップでコードは抽出されたが、前記ワード生成ステップでワードが生成できなかった場合に、その着目点のコードとその近傍点のコードとの位置を、穴埋め候補ワード群として保存する穴埋め候補保存ステップと、前記第２の外れ値除去ステップによる外れ値除去後、コードは抽出されたが、ワードが生成できなかった着目点の３次元位置を、ワードが生成できた近傍３次元点の位置を用いて算出する穴埋めステップとを更に含むことを特徴とする。
【００１３】
また、上述した課題を解決するために、本発明は、１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測装置であって、それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影手段と、前記投影パターンが投影された前記計測対象を撮影する撮影手段と、前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出手段と、前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別手段と、前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成手段と、前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出手段と、前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出手段とを備えることを特徴とする３次元形状計測装置である。
【００１４】
本発明は、上記の発明において、前記対応点位置算出手段で算出された、前記撮影画像中のワードに対応する投影パターンのワードの対応点位置がエピポーラ線近傍に存在するかを判定し、前記エピポーラ線から所定の閾値以上離れる場合には、外れ値とみなして除去する第１の外れ値除去手段を更に備え、前記３次元位置算出手段は、前記外れ値が除去された残りの撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出することを特徴とする。
【００１５】
本発明は、上記の発明において、前記３次元位置算出手段で算出された、前記計測対象に投影された円形白黒コードの３次元位置を用いて、着目３次元点の位置と近傍３次元点の位置との距離を測り、該距離が大きく外れる場合には、外れ値とみなして、前記計測対象に投影された円形白黒コードの３次元位置から、対象となる着目３次元点を除去する第２の外れ値除去手段を更に備えることを特徴とする。
【００１６】
本発明は、上記の発明において、前記コード抽出手段でコードは抽出されたが、前記ワード生成手段でワードが生成できなかった場合に、その着目点のコードとその近傍点のコードとの位置を、穴埋め候補ワード群として保存する穴埋め候補保存手段と、前記第２の外れ値除去手段による外れ値除去後、コードは抽出されたが、ワードが生成できなかった着目点の３次元位置を、ワードが生成できた近傍３次元点の位置を用いて算出する穴埋め手段とを更に備えることを特徴とする。
【００１７】
また、上述した課題を解決するために、本発明は、１回のパターン投影、及び該投影されたパターンの撮影により計測対象の３次元形状を計測する３次元形状計測装置のコンピュータに、それぞれを識別可能なコード番号に一意に対応付けられた、複数の円形白黒コードからなる投影パターンを前記計測対象に投影する投影機能、前記投影パターンが投影された前記計測対象を撮影する撮影機能、前記計測対象を撮影した撮影画像から円形白黒コードを抽出するコード抽出機能、前記抽出した円形白黒コードに対して楕円形状を当てはめることにより、前記抽出した円形白黒コードに対応するコード番号を識別するコード識別機能、前記撮影画像中のコード番号の分布に基づいて、各コード番号とその近傍のコード番号とからなるワードを生成するワード生成機能、前記撮影画像中のワードを用いて前記投影パターンのワードの対応点位置を算出する対応点位置算出機能、前記撮影画像中のワードの位置と対応する投影パターンのワードの対応点位置とを用いて、三角測量の原理に基づいて、前記計測対象に投影された円形白黒コードの３次元位置を算出する３次元位置算出機能を実行させることを特徴とするプログラムである。
【発明の効果】
【００１８】
この発明によれば、投影対象の色によらず、物体の高さによりコードが変形した際にも、１回のパターン投影、及び撮影により、動物体の３次元形状を復元することができる。
【図面の簡単な説明】
【００１９】
【図１】本第１実施形態による３次元形状計測装置の構成を示すブロック図である。
【図２】本第１実施形態によるパターン投影装置の動作を説明するためのフローチャートである。
【図３】本第１実施形態によるコードの一例を示す図である。
【図４】本第１実施形態による楕円当てはめの一例を示す図である。
【図５】本第１実施形態によるコード織別の一例を示す図である。
【図６】本第１実施形態による三角測量による計測対象の３次元位置算出を説明するための図である。
【図７】本第２実施形態による３次元形状計測装置の構成を示すブロック図である。
【図８】本第２実施形態による、対応点による外れ値除去の例を説明するための図である。
【図９】本第２実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。
【図１０】本第３実施形態による３次元形状計測装置の構成を示すブロック図である。
【図１１】本第３実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。
【図１２】本第３実施形態による、３次元点による外れ値除去の例を説明するための図である。
【図１３】本第４実施形態による３次元形状計測装置の構成を示すブロック図である。
【図１４】本第４実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。
【図１５】本第４実施形態による、形状の穴埋めの例を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態を、図面を参照して説明する。
【００２１】
本発明は、円形白黒コードを投影パターンに用いて、形状の変形が大きな際にも形状抽出が容易な楕円当てはめを行うことにより、投影対象の色や形状変化が大きい場合でも、１回のパターン投影、及び撮影により動物体の３次元形状を復元することを特徴としている。
【００２２】
通常、３次元物体に幾何模様を投影すると、撮影画像中の物体が存在する部分において幾何模様が変形する。特に、高さの変化が大きい場所においては、大きな変形となる。本発明においては、これに対処するため、円形白黒コードを投影パターンに用いて、形状の変形が大きな際にも、形状抽出が容易な楕円当てはめを行ってコードを抽出する。なお、本発明では、１つの円形白黒コード内での形状の傾き変化がない場合を対象とする。これを保証するため、本発明では、一投影パターン内に含まれるコード数の密度が高いパターンを用いる。
【００２３】
Ａ．第１実施形態
図１は、本第１実施形態による３次元形状計測装置の構成を示すブロック図である。図１において、計測対象にパターンを投影するプロジェクタ等の投影装置１、計測対象４を撮影するカメラなどの撮像装置２、画像処理を行う計算機、及び結果を表示するモニタなどの表示部を備える処理装置３からなる。
【００２４】
なお、本発明では、所定の位置に固定されたカメラ・プロジェクタを用いる。このとき、あらかじめ既知の校正パターンを用いて、カメラとプロジェクタとの内部・外部パラメータを求めておき、カメラとプロジェクタとは、時間同期が取れているものとする。また、画像処理を行うハードウェアについては、汎用の計算機、処理ロジックを実装したボード、チップなど様々なものが考えられるが、ここでは、それを限定しない。
【００２５】
以下では、パターン投影された計測対象を撮影した画像（フレーム画像）が時系列的に入力される状況を想定して説明を進める。ここでのパターンは、可視光波長領域外の光（例えば、赤外光）によるものでもよい。その場合には、カメラとプロジェクタにそれぞれ同じ特性を有した光学フィルタを装着するものとする。
【００２６】
処理装置３は、プロジェクタ制御部３−１、コード抽出部３−２、コード識別部３−３、ワード生成部３−４、対応点算出部３−５、３次元位置算出部３−６、及び表示部３−７を備えている。プロジェクタ制御部３−１は、所定の投影パターン（円形白黒コード群）を生成し、投影装置１に供給する。投影装置１は、所定の投影パターン（円形白黒コード群）を計測対象４に投影する。撮像装置２は、投影パターンが投影された計測対象４を撮影し、撮影した画像をコード抽出部３−２に供給する。
【００２７】
コード抽出部３−２は、撮影した画像（円形白黒コード群を含む）からコードを抽出する。コード識別部３−３は、抽出したコードからコード番号を識別する。ワード生成部３−４は、識別コード群からコード番号を読み出し、着目コード番号の４近傍のコード番号を探索することにより、ワードを生成する。対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと投影パターンのワードとの対応をとり、対応点の座標を得る。３次元位置算出部３−６は、３角測量の原理を用いて、算出した撮影画像中のワードの中心座標と投影パターンの中心座標とから、測対象４に投影された円形白黒コードの３次元座標位置を算出する。表示部３−７は、算出された３次元座標位置を表示する。
【００２８】
次に、本第１実施形態の動作について説明する。
図２は、本第１実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。投影装置１は、処理が開始されると、上述したように、プロジェクタ制御部３−１によって生成された投影パターンを計測対象４に投影し、撮像装置２は、該計測対象を撮影し、画像を取得する（ステップＳ１）。
【００２９】
投影パターンとしては、具体的には、図３に示すような円形白黒コードを用いる。ここで、円形白黒コードは、外円が白で、内円が生成するコードの数に応じて白黒に分割されている。図３の例においては、生成コード数が８なので、内円を９０度毎に分割している。外円と内円との割合は、（外円の直径）：（内円の直径）＝３：２とするようにしても良いし、あらかじめ、後の楕円当てはめ、コードの識別の実験を行った結果を持って割合を変化させても良い。投影パターンは、これらのコードをＭ系列に従うように並べる。
【００３０】
Ｍ系列は（非特許文献１）、２次元の数列であり、縦横の割合が（縦）：（横）＝（コードの数）２：（コードの数）３となるので、画像の縦横比に合わせて、余る分をカットする。例えば、コード数が８、１６００×１２００画素の投影パターンを考えると、Ｍ系列は、６４×５１２となるので、Ｍ系列を最大限用いようとすると、縦方向に伸ばすことになり、１コード当たり１２００／６４＝１８．７５画素となり、横方向のＭ系列の最大は、１６００／１８．７５＝８５．３３で８５なので、結局、６４×８５分を用いることなり、残りをカットする。パターン抽出しやすいように、コード間の間隔を空けるために、実際に１コード当たりに割ける画素数は、より少なくなる。
【００３１】
コード抽出部３−２は、撮影した撮影画像中のコードを抽出する（ステップＳ２）。次に、コード識別部３−３は、抽出したコードからコード番号を識別する（ステップＳ３）。ここでは、図４に示すように、撮影画像中の円形白黒コードに楕円を当てはめる（楕円形状であるとしてパターンマッチングする）ことで、長径・短径・傾き・中心座標を取得する。ここで、楕円当てはめに当たっては、撮影画像を二値化し、輪郭線抽出を行ったものについて行う。なお、図３のコード“１”のような場合には、内円にも楕円当てはめが可能であるが、楕円の内部に楕円がある場合には除外する。
【００３２】
続いて、図５に示すように、内円の内部を、当てはめた楕円の結果を用い、傾きに沿って、長径・短径の異なる同じ形でスキャンし、スキャンした結果によりコードを識別する。ここで、スキャンに当たっては、スキャンする楕円円周上のすべての画素を調べる必要はなく、コードの際の内円分割の角度に応じて、サンプル点Ｉ０〜Ｉ３をスキャンすればよい。ここでは、各サンプル点が白か黒かによってコード番号の識別が可能となる。こうして得られた、撮影画像上のコードの中心座標、コード番号を識別コード群として保存する。
【００３３】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ４）、終わっていない場合には、ステップＳ２に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、ワード生成部３−４は、識別コード群からコード番号を読み出し、着目コード番号の４近傍のコード番号を探索することにより、ワードを生成する（ステップＳ５）。
【００３４】
Ｍ系列の性質から、着目コード番号と４近傍のコード番号とが分かれば、対応関係が求められるので、１ワードは、５つのコード番号で形成されることとなる。ここで、近傍のコード番号が１つでも識別できていない場合、あるいは着目コード番号と近傍のコード番号との座標が大きく離れている場合には、ワードを生成しない。
【００３５】
次に、対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと投影パターンのワードとの対応をとり、対応点の座標を得る（ステップＳ６）。Ｍ系列の性質上、部分数列（ワード）が得られると、全体の数列での対応する位置が一意に定まる。よって、生成されたワードを用いて、撮影画像中のワードと投影パターンのワードとの対応をとることができる。撮影画像中のワードの中心座標は、楕円当てはめにより分かっており、また、投影パターンのワードの中心座標も投影パターン作成時に分かっているので、対応点の座標を得ることができる。
【００３６】
次に、３次元位置算出部３−６は、３角測量の原理を用いて、算出した撮影画像中のワードの中心座標と投影パターンの中心座標とから、計測対象４に投影された円形白黒コードの３次元座標位置を算出する（ステップＳ７）。図６に示すように、画像座標から撮像装置（カメラ）２からの視線方向αが決まり、位相値から投影装置（プロジェクタ）１からの見込み角βが決まるので、あらかじめキャリブレーションにより得ておいた、撮像装置（カメラ）２の中心、投影装置（プロジェクタ）１の中心間の距離Ｌを用いることで、三角測量の原理から計測対象４の３次元座標を求めることができる。そして、得られた３次元座標位置を３次元形状として保存する。
【００３７】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ８）、終わっていない場合には、ステップＳ５に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、実行時に指定された終了条件（指定時刻や、指定処理枚数等）を満たしたか否かを判定し（ステップＳ９）、終了条件を満たしていない場合には、ステップＳ１に戻り、上述した処理を繰り返す。一方、終了条件を満たした場合には、当該処理を終了する。
【００３８】
Ｂ．第２実施形態
次に、本発明による第２実施形態について説明する。
図７は、本第２実施形態による３次元形状計測装置の構成を示すブロック図である。なお、図１に対応する部分には同一の符号を付けて説明を省略する。本第２実施形態では、撮影画像中のワードに対応する投影パターンのワードの対応点の位置がエピポーラ線近傍に存在するかを判定し、エピポーラ線から大きく離れる場合には、外れ値とみなし、該外れ値を除去する、対応点による外れ値除去部３−８を設けている。
【００３９】
図８に示すように、ステレオ視の原理により撮影画像の点ｍ’に対応する投影パターンの点ｍは、エピポーラ線上に存在する。エピポーラ線ｌは、あらかじめ計測しておいた、投影装置１、撮像装置２の位置関係により、Ｆｕｎｄａｍｅｎｔａｌ  Ｍａｔｒｉｘが求められるので、計算が可能である。但し、あらかじめ計測しておいた投影装置１と撮像装置２との位置の誤差、楕円の当てはめ誤差等の影響があるので、閾値Ｔｈ＿ｌを設け、閾値Ｔｈ＿ｌの範囲内でエピポーラ線近傍に投影パターンの対応点ｍがある場合には、対応が取れているものとし、一方、エピポーラ線から大きく離れる場合には、外れ値とみなし、対象となる点を形状計測の候補から削除する。すなわち、図８において、画像面上の点ｍ’の対応点ｍが、投影パターン面上のエピポーラ線ｌの近傍にない場合には、外れ値とみなし、対象となる点を形状計測の候補から削除する。
【００４０】
図９は、本第２実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。投影装置１は、処理が開始されると、上述したように、プロジェクタ制御部３−１によって生成された投影パターンを計測対象４に投影し、撮像装置２は、該計測対象を撮影し、画像を取得する（ステップＳ２１）。
【００４１】
コード抽出部３−２は、撮影した撮影画像中のコードを抽出する（ステップＳ２２）。次に、コード識別部３−３は、抽出したコードからコード番号を識別する（ステップＳ２３）。こうして得られた、撮影画像上のコードの中心座標、コード番号を識別コード群として保存する。
【００４２】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ２４）、終わっていない場合には、ステップＳ２２に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、ワード生成部３−４は、識別コード群からコード番号を読み出し、着目コード番号の４近傍のコード番号を探索することにより、ワードを生成する（ステップＳ２５）。
【００４３】
次に、対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと投影パターンのワードとの対応をとり、対応点の座標を得る（ステップＳ２６）。次に、対応点による外れ値除去部３−８は、閾値の範囲内でエピポーラ線近傍に投影パターンの対応点がある場合には、対応が取れているものとし、一方、エピポーラ線から大きく離れる場合には、外れ値とみなし、対象となる点を形状計測の候補から削除する（ステップＳ２７）。次に、３次元位置算出部３−６は、３角測量の原理を用いて、算出した撮影画像中のワードの中心座標と投影パターンの中心座標とから、計測対象４に投影された円形白黒コードの３次元座標位置を算出する（ステップＳ２８）。そして、得られた３次元座標位置を３次元形状として保存する。
【００４４】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ２９）、終わっていない場合には、ステップＳ２５に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、実行時に指定された終了条件（指定時刻や、指定処理枚数等）を満たしたか否かを判定し（ステップＳ３０）、終了条件を満たしていない場合には、ステップＳ２１に戻り、上述した処理を繰り返す。一方、終了条件を満たした場合には、当該処理を終了する。
【００４５】
Ｃ．第３実施形態
次に、本発明による第３実施形態について説明する。
図１０は、本第３実施形態による３次元形状計測装置の構成を示すブロック図である。なお、図７に対応する部分には同一の符号を付けて説明を省略する。本第３実施形態では、図７に示す構成に、さらに、着目３次元点の位置と近傍の３次元点の位置との距離を測り、大きく外れる場合には、外れ値とみなして、対象となる着目３次元点を削除する、３次元位置による外れ値除去部３−９を設けている。
【００４６】
図１１は、本第３実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。投影装置１は、処理が開始されると、上述したように、プロジェクタ制御部３−１によって生成された投影パターンを計測対象４に投影し、撮像装置２は、該計測対象を撮影し、画像を取得する（ステップＳ４１）。
【００４７】
コード抽出部３−２は、撮影した撮影画像中のコードを抽出する（ステップＳ４２）。次に、コード識別部３−３は、抽出したコードからコード番号を識別する（ステップＳ４３）。こうして得られた、撮影画像上のコードの中心座標、コード番号を識別コード群として保存する。
【００４８】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ４４）、終わっていない場合には、ステップＳ４２に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、ワード生成部３−４は、識別コード群からコード番号を読み出し、着目コード番号の４近傍のコード番号を探索することにより、ワードを生成する（ステップＳ４５）。
【００４９】
次に、対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと、投影パターンのワードとの対応をとり、対応点の座標を得る（ステップＳ４６）。次に、対応点による外れ値除去部３−８は、閾値の範囲内でエピポーラ線近傍に投影パターンの対応点がある場合には、対応が取れているものとし、エピポーラ線から大きく離れる場合には、外れ値とみなし、対象となる点を形状計測の候補から削除する（ステップＳ４７）。次に、３次元位置算出部３−６は、３角測量の原理を用いて、算出した撮影画像中のワードの中心座標と投影パターンの中心座標とから、計測対象４に投影された円形白黒コードの３次元座標位置を算出する（ステップＳ４８）。そして、得られた３次元座標位置を初期３次元形状として保存する。
【００５０】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ４９）、終わっていない場合には、ステップＳ４５に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、３次元位置による外れ値除去部３−９は、ステップ４８で保存された初期３次元形状を読み出し、図１２に示すように、着目３次元点ｐの位置と近傍３次元点の位置との距離を測り、大きく外れる場合には、外れ値とみなして、対象となる着目３次元点を削除する（ステップＳ５０）。なお、近傍点は、４近傍であってもよいし、８近傍であっても良い。そして、外れ値を削除して得られた３次元座標位置を３次元形状として保存する。
【００５１】
次に、実行時に指定された終了条件（指定時刻や、指定処理枚数等）を満たしたか否かを判定し（ステップＳ５１）、終了条件を満たしていない場合には、ステップＳ４１に戻り、上述した処理を繰り返す。一方、終了条件を満たした場合には、当該処理を終了する。
【００５２】
Ｄ．第４実施形態
次に、本発明による第４実施形態について説明する。
図１３は、本第４実施形態による３次元形状計測装置の構成を示すブロック図である。なお、図１０に対応する部分には同一の符号を付けて説明を省略する。本第３実施形態では、図１０に示す構成に、さらに、コードが抽出されたが、ワードが作成できなかったワードの撮影画像上の位置（着目コードとその近傍コードとの位置を穴埋め候補ワード群という）を保存する穴埋め候補ワード保存部３−１０、コード抽出はされたが、ワード生成ができなかった点について、ワード生成できた近傍３次元点の座標値を用いて穴埋めをする形状穴埋め部３−１１を設けている。
【００５３】
図１４は、本第４実施形態による３次元形状計測装置の動作を説明するためのフローチャートである。投影装置１は、処理が開始されると、上述したように、プロジェクタ制御部３−１によって生成された投影パターンを計測対象４に投影し、撮像装置２は、該計測対象を撮影し、画像を取得する（ステップＳ６１）。
【００５４】
コード抽出部３−２は、撮影した撮影画像中のコードを抽出する（ステップＳ６２）。次に、コード識別部３−３は、抽出したコードからコード番号を識別する（ステップＳ６３）。こうして得られた、撮影画像上のコードの中心座標、コード番号を識別コード群として保存する。
【００５５】
次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ６４）、終わっていない場合には、ステップＳ６２に戻り、上述した処理を繰り返す。そして、すべての画素について処理が終わった場合には、ワード生成部３−４は、識別コード群からコード番号を読み出し、着目コード番号の４近傍のコード番号を探索することにより、ワードを生成する（ステップＳ６５）。
【００５６】
次に、穴埋め候補ワード保存部３−１０は、コードは抽出されたが、ワードが作成できなかったワードの撮影画像上の位置を保存する（ステップＳ６６）。具体的には、後述する形状穴埋めのため、着目コードの近傍のコードが識別できていない場合には、着目コードとその近傍コードとの位置を、穴埋め候補ワード群として保存する。
【００５７】
次に、対応点算出部３−５は、生成されたワードを用いて、撮影画像中のワードと、投影パターンのワードとの対応をとり、対応点の座標を得る（ステップＳ６７）。次に、対応点による外れ値除去部３−８は、閾値の範囲内でエピポーラ線近傍に投影パターンの対応点がある場合には、対応が取れているものとし、エピポーラ線から大きく離れる場合には、外れ値とみなし、対象となる点を形状計測の候補から削除する（ステップＳ６８）。
【００５８】
次に、３次元位置算出部３−６は、３角測量の原理を用いて、算出した撮影画像中のワードの中心座標と投影パターンの中心座標とから、計測対象４に投影された円形白黒コードの３次元座標位置を算出する（ステップＳ６９）。そして、得られた３次元座標位置を初期３次元形状として保存する。次に、撮影画像中のすべての画素について、処理が終わったか否かを判定し（ステップＳ７０）、終わっていない場合には、ステップＳ６５に戻り、上述した処理を繰り返す。
【００５９】
そして、すべての画素について処理が終わった場合には、ステップ６９で保存された初期３次元形状を読み出し、着目３次元点の位置と近傍３次元点の位置との距離を測り、大きく外れる場合には、外れ値とみなして、対象となる点を削除する（ステップＳ７１）。なお、近傍点は、４近傍であってもよいし、８近傍であっても良い。
【００６０】
次に、形状穴埋め部３−１１は、コード抽出されたが、ワード生成ができなかった点について、ワード生成できた近傍３次元点の座標値を用いて穴埋めをする。ここでは、ステップ６６で保存した穴埋め候補ワード群を読み出し、着目コードの近傍コードが外れ値除去後の３次元位置になったかどうかを鑑みて、図１５（ａ）〜（ｃ）に示すように、近傍の４〜２コードの３次元位置を用いて、着目コードに該当する３次元位置を算出する（ステップＳ７２）。
【００６１】
ワードを復号できた点が４つの場合には、図１５（ａ）に示すように、４つの近傍から穴埋めを行う。また、ワードを復号できた点が３つの場合には、図１５（ｂ）に示すように、３つの近傍から穴埋めを行う。さらに、ワードを復号できた点が２つの場合には、図１５（ｃ）に示すように、２つの近傍から穴埋めを行う。なお、近傍が１コードの場合には、着目コードの３次元位置が算出できないために穴埋めは行わない。そして、外れ値を削除して得られた３次元座標位置を３次元形状として保存する。
【００６２】
次に、実行時に指定された終了条件（指定時刻や、指定処理枚数等）を満たしたか否かを判定し（ステップＳ７３）、終了条件を満たしていない場合には、ステップＳ６１に戻り、上述した処理を繰り返す。一方、終了条件を満たした場合には、当該処理を終了する。
【００６３】
上述した第１ないし第４実施形態によれば、円形白黒コードを用いた投影パターンの検出で、形状の変形が大きな際にも形状抽出が容易な楕円当てはめを行うことにより、投影対象の色や形状変化が大きい場合でも、１回のパターン投影、及び撮影により動物体の３次元形状を復元することができる。
【００６４】
また、コードの内円の分割数を増やすことにより、より多くのコード群を生成することができ、計測密度を上げることが可能となる。
【符号の説明】
【００６５】
１  投影装置
２  撮像装置
３  処理装置
３−１  プロジェクタ制御部
３−２  コード抽出部
３−３  コード識別部
３−４  ワード生成部
３−５  対応点算出部
３−６  ３次元位置算出部
３−７  表示部
３−８  対応点による外れ値除去部
３−９  ３次元位置による外れ値除去部
３−１０  穴埋め候補ワード保存部
３−１１  形状穴埋め部
４  計測対象
【図１】
2011237296.tif 000003
【図２】
2011237296.tif 000004
【図３】
2011237296.tif 000005
【図４】
2011237296.tif 000006
【図５】
2011237296.tif 000007
【図６】
2011237296.tif 000008
【図７】
2011237296.tif 000009
【図８】
2011237296.tif 000010
【図９】
2011237296.tif 000011
【図１０】
2011237296.tif 000012
【図１１】
2011237296.tif 000013
【図１２】
2011237296.tif 000014
【図１３】
2011237296.tif 000015
【図１４】
2011237296.tif 000016
【図１５】
2011237296.tif 000017