(57)【要約】【課題】３次元形状測定装置におけるプロジェクタキャリブレーションの精度を向上させて、３次元形状の形状計測の精度を向上するようにした３次元形状測定装置におけるキャリブレーション方法を提供する。【解決手段】２値化投影パターンを投影するプロジェクタと、上記プロジェクタにより投影された２値化投影パターンを撮影するカメラとを有し、上記プロジェクタにより２値化投影パターンを投影して空間に対し絶対的なコード値を生成する空間コード化法を用いた３次元形状測定装置におけるキャリブレーション方法において、プロジェクタのキャリブレーションに用いるプロジェクタ画像座標群を、カメラのキャリブレーション時に用いたチェッカーボード撮影画像上のチェッカー交点座標群が存在する範囲内で選択して上記プロジェクタのキャリブレーションを行うようにした。【選択図】        図９
2007309660.tif 000002
【特許請求の範囲】
【請求項１】
２値化投影パターンを投影するプロジェクタと、前記プロジェクタにより投影された２値化投影パターンを撮影するカメラとを有し、前記プロジェクタにより２値化投影パターンを投影して空間に対し絶対的なコード値を生成する空間コード化法を用いた３次元形状測定装置におけるキャリブレーション方法において、
プロジェクタのキャリブレーションに用いるプロジェクタ画像座標群を、カメラのキャリブレーション時に用いたチェッカーボード撮影画像上のチェッカー交点座標群が存在する範囲内で選択して前記プロジェクタのキャリブレーションを行う
ことを特徴とする３次元形状測定装置におけるキャリブレーション方法。
【請求項２】
請求項１に記載の３次元形状測定装置におけるキャリブレーション方法において、
前記２値化投影パターンは、一定の幅を有するとともに前記幅方向と直交する所定の方向に延長する光透過領域と光非透過領域とが交互にストライプ状に連続して形成されたものであり、
前記プロジェクタ画像座標は、
前記プロジェクタにより前記ストライプが垂直方向に延長する所定の２値化投影パターンを水平方向に所定の移動量でシフトしながら順次投影するとともに、前記シフト毎に投影された前記所定の２値化投影パターンの第１の種類の画像を前記カメラにより撮影し、
前記プロジェクタにより前記ストライプが垂直方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、前記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された前記それぞれ異なる複数の２値化投影パターンの第２の種類の画像を前記カメラにより撮影し、
前記カメラにより撮影した前記第１の種類の画像と前記第２の種類の画像とを合成した第３の種類の画像を生成し、
前記プロジェクタにより前記ストライプが水平方向に延長する所定の２値化投影パターンを垂直方向に所定の移動量でシフトしながら順次投影するとともに、前記シフト毎に投影された前記所定の２値化投影パターンの第４の種類の画像を前記カメラにより撮影し、
前記プロジェクタにより前記ストライプが水平方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、前記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された前記それぞれ異なる複数の２値化投影パターンの第５の種類の画像を前記カメラにより撮影し、
前記カメラにより撮影した前記第４の種類の画像と前記第５の種類の画像とを合成した第６の種類の画像を生成し、
前記第３の種類の画像と前記第６の種類の画像とに基づき取得する
ことを特徴とする３次元形状測定装置におけるキャリブレーション方法。
【請求項３】
請求項１に記載の３次元形状測定装置におけるキャリブレーション方法において、
前記２値化投影パターンは、一定の幅を有するとともに前記幅方向と直交する所定の方向に延長する光透過領域と光非透過領域とが交互にストライプ状に連続して形成されたものであり、
前記プロジェクタ画像座標は、
前記プロジェクタにより前記ストライプが垂直方向に延長する所定の２値化投影パターンを水平方向に所定の移動量でシフトしながら順次投影するとともに、前記シフト毎に投影された前記所定の２値化投影パターンの画像をオーバーサンプリングした第１の種類の画像を前記カメラにより撮影し、
前記プロジェクタにより前記ストライプが垂直方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、前記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された前記それぞれ異なる複数の２値化投影パターンの画像をオーバーサンプリングした第２の種類の画像を前記カメラにより撮影し、
前記カメラにより撮影した前記第１の種類の画像と前記第２の種類の画像とを合成した第３の種類の画像を生成し、
前記プロジェクタにより前記ストライプが水平方向に延長する所定の２値化投影パターンを垂直方向に所定の移動量でシフトしながら順次投影するとともに、前記シフト毎に投影された前記所定の２値化投影パターンの画像をオーバーサンプリングした第４の種類の画像を前記カメラにより撮影し、
前記プロジェクタにより前記ストライプが水平方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、前記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された前記それぞれ異なる複数の２値化投影パターンの画像をオーバーサンプリングした第５の種類の画像を前記カメラにより撮影し、
前記カメラにより撮影した前記第４の種類の画像と前記第５の種類の画像とを合成した第６の種類の画像を生成し、
前記第３の種類の画像と前記第６の種類の画像とに基づき取得する
ことを特徴とする３次元形状測定装置におけるキャリブレーション方法。
【請求項４】
請求項２または３のいずれか１項に記載の３次元形状測定装置におけるキャリブレーション方法において、
前記所定の２値化投影パターンは、前記それぞれ異なる複数の２値化投影パターンの中で前記幅が最も狭い２値化投影パターンである
ことを特徴とする３次元形状測定装置におけるキャリブレーション方法。
【請求項５】
請求項２、３または４のいずれか１項に記載の３次元形状測定装置におけるキャリブレーション方法において、
前記所定の２値化投影パターンは、前記光透過領域と前記光非透過領域との位置が入れ替わる１／２位相反転する範囲までシフトする
ことを特徴とする３次元形状測定装置におけるキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元形状測定装置におけるキャリブレーション方法に関し、さらに詳細には、２値化投影パターンにより空間に対し絶対的なコード値を生成する空間コード化法を用いた３次元形状測定装置におけるキャリブレーション方法に関する。
【背景技術】
【０００２】
一般に、光を用いて測定対象物の３次元形状を非接触で計測する技術としては、受動的測定法と能動的測定法とがある。
【０００３】
ここで、受動的測定法とは、ステレオ法に代表されるように、測定機器側は投光手段を持たずに、環境光を利用して計測するという手法である。
【０００４】
一方、能動的測定法とは、測定機器側の投光手段から測定対象物に向けて光を照射して、その反射光を計測するという手法である。
【０００５】
また、こうした能動的測定法のなかで、三角測量の原理を用いるものとしては、スリット光投影法や空間コード化法などが知られている。
【０００６】
ここで、空間コード化法とは、測定対象物に対して光透過領域と光非透過領域とよりなるストライプ状の光パターンたる２値化投影パターンを何種類も投影することにより、当該ストライプ状の光パターンを投影された測定対象物上の１点を観察していると、その観察している１点に投影される光線が点滅して符号（コード）を形成するようになるが、そのコードを利用して測定対象物の３次元形状を測定するという手法である。
【０００７】
この空間コード化法においては、コードが示す値（空間コード値）と光線の方向とは一対一の関係で対応しており、測定対象物上における光点の位置から観察位置の視線の方向が判り、また、その光点の空間コード値から光線の方向が判るので、三角測量の原理により測定対象物上における全ての光点までの距離を求めることができ、これにより測定対象物の３次元形状を非接触で計測することができるようになるものである。
【０００８】
一般に、上記した空間コード化法を用いた３次元形状測定装置は、コンピュータによりその全体の動作を制御するように構成されており、コンピュータの制御により測定対象物へ複数の２値化投影パターンを投影する投影手段としてのプロジェクタと、プロジェクタにより２値化投影パターンを投影された測定対象物を撮影する撮影手段としてのカメラとを有して構成されている。
【０００９】
即ち、３次元測定装置においては、プロジェクタはコンピュータに接続されていて、測定対象物の表面に、コンピュータで生成される各種の２値化投影パターンを投影することができるように配置にされている。また、カメラは、プロジェクタの投影方向とは異なる方向から測定対象物の表面を撮影することができるように配置されており、カメラで撮影された画像は、デジタル化されてコンピュータに取り込まれるようになされている。
【００１０】
ところで、上記したような空間コード化法を用いた３次元形状測定装置においては、カメラのキャリブレーション（カメラキャリブレーション）およびカメラのレンズの歪み補正ならびにプロジェクタのキャリブレーション（プロジェクタキャリブレーション）およびプロジェクタのレンズの歪み補正を行う必要がある（非特許文献１、２参照）。
【００１１】
即ち、空間コード化法を用いた３次元形状測定装置では、空間コード値がプロジェクタの方向に、また、画像上での画素の位置が視線の方向、即ち、カメラの撮影方向にそれぞれ対応し、それらを知ることにより三角測量の原理で距離情報を得ることができる。
【００１２】
ここで、空間コード値は光パターン面上における座標系（プロジェクタ座標系）上で定義された量であり、画素の位置はカメラ画面上における座標系（カメラ座標系）上で定義された量である。
【００１３】
従って、これらと測定対象物の存在する物体座標系との関係を求めなければ、三角測量の原理で距離情報を得ることはできない。
【００１４】
一般に、この各座標系間の関係を求める作業を、カメラパラメータのキャリブレーション、即ち、カメラキャリブレーションと称するとともに、プロジェクタパラメータのキャリブレーション、即ち、プロジェクタキャリブレーションと称している。
【００１５】
以下、上記したキャリブレーションについて詳細に説明するが、非特許文献１、２には、カメラキャリブレーションによりカメラパラメータを算出するとともに、プロジェクタキャリブレーションによりプロジェクタパラメータを算出する手法の一例が開示されている。この手法は、２次元のカメラ画像座標ならびにプロジェクタ画像座標と３次元の測定対象物座標との幾何学的関係を表すパラメータを求めるというものであり、非特許文献１、２をあわせて参照するものとする。
【００１６】
まず、画像座標系とカメラ座標系との関係は、図１（ａ）に示すようなピンホールカメラモデルで表すことができる。また、図１（ｂ）は、図１（ａ）の各平面の並びを入れ替え、横軸と縦軸の向きを合わせたものであるが、この図１（ｂ）でも同じ関係を示すことができる。
【００１７】
なお、図１（ａ）の方が実際のカメラの構造に近いが、図１（ｂ）の方が座標変換演算の様子を追いやすい。
【００１８】
これら図１（ａ）（ｂ）において、焦点面の（Ｃ，Ｘ，Ｙ，Ｚ）座標系をカメラ座標系、画像平面の（ｕ，ｖ）座標系を画像座標系、焦点面から単位焦点距離（ｆ＝１）だけ離れた位置にある平面の（ｃ、ｘ、ｙ）座標系を正規化画像座標系と称することとする。
【００１９】
また、点Ｃを通り画像平面に垂直な線が光軸であり、その光軸と画像平面との交点ｃが光軸点である。さらに、その光軸は、画像平面の中心（ｕ０，ｖ０）で交わる。
【００２０】
３Ｄカメラ座標Ｍ＝（Ｘ，Ｙ，Ｚ）を焦点Ｃで結像し、正規化画像平面に投影したものが２Ｄ正規化画像座標（ｘ、ｙ）、画像平面に投影したものが２Ｄ画像座標ｍ＝（ｕ，ｖ）である。
【００２１】
ここで、Ｍ＝（Ｘ，Ｙ，Ｚ）と正規化画像座標（ｘ，ｙ）との間には、次式の関係が成り立つ。
【数１】
2007309660.tif 000003
【００２２】
上記の非線形の式は、次のように線形に表現することができる。
【数２】
2007309660.tif 000004
【００２３】
また、正規化画像座標（ｘ，ｙ）と２Ｄ画像座標ｍ＝（ｕ，ｖ）との間には、次式の関係が成り立つ。
【数３】
2007309660.tif 000005
【００２４】
ｋｕ，ｋｖはそれぞれｕ、ｖ軸の単位長を示し、θはｕ、ｖ軸のなす角度を示す。ｆｋｕ、−ｆｋｕｃｏｓθ、ｆｋｖ／ｓｉｎθは、それぞれそのままで残るので、これらをα、β、γとそれぞれおくと、
【数４】
2007309660.tif 000006
【００２５】
と表すことができる。
【００２６】
（１）式および（２）式より、
【数５】
2007309660.tif 000007
【００２７】
となる。
【００２８】
ところで、３次元座標は実際にはカメラ座標系とは別のワールド座標系（ＸＷ，ＹＷ，ＺＷ）の値として表されるので、ワールド座標系とカメラ座標系との関係を回転・移動変換行列を用いて表すと、
【数６】
2007309660.tif 000008
【００２９】
となる。
【００３０】
（３）式および（４）式より、
【数７】
2007309660.tif 000009
【００３１】
となり、これらの座標系の値の関係は次式で示される。
【数８】
2007309660.tif 000010
【００３２】
ここで、
【数９】
2007309660.tif 000011
【００３３】
は画像座標の同次座標表示、
【数１０】
2007309660.tif 000012
【００３４】
は３Ｄ座標の同次座標表示である。
【００３５】
行列Ａは、焦点距離やレンズ歪みなどのカメラ内部に関する変数のみから成っており、カメラ内部パラメータと称する。
【００３６】
また、［Ｒ，ｔ］はワールド座標系でのカメラの姿勢と位置を表し、カメラ外部パラメータと称する。
【００３７】
次に、レンズ歪みについても考慮することになるが、レンズ歪みは画像の中心座標（ｕ０，ｖ０）から放射状に広がっていると仮定され、次式により表される。
【数１１】
2007309660.tif 000013
【００３８】
ここで、（ｕｄ，ｖｄ）は歪み後の画像座標であり、ｋ１、ｋ２は歪み係数である。
【００３９】
次に、上記した（５）式および（６）式のパラメータであるカメラ内部パラメータＡ、カメラ外部パラメータ［Ｒ，ｔ］および歪み係数ｋ＝［ｋ１，ｋ２］を求める手順を、図２に示すフローチャートを参照しながら説明する。
【００４０】
まず、同一平面でない異なる向きのチェッカーボードの画像を３枚以上撮影し、各画像についてチェッカー交点の画像座標をサブピクセル精度で推定するチェッカーボード交点検出を行う（ステップＳ２０２）。即ち、このチェッカーボード交点検出においては、入力データとしてチェッカーボード画像（３枚以上）を用い、出力データとしてチェッカー交点の２Ｄ画像座標群とそれぞれに対応する既知の３Ｄ座標を得る。
【００４１】
ここで、交点の画像座標をサブピクセル精度で推定する手順、即ち、チェッカーボード交点検出の手法を詳細に説明すると、まず、交点座標をピクセル単位で求め、その座標を中心として円形領域Ｒを設定する（図３参照）。
【００４２】
そして、円形領域Ｒ内の点ｑについて、その他の全ての点ｐｉとの間で次の４つについて計算を行う。即ち、
（ｉ）ベクトル（ｐｉ−ｑ）（図３における実線矢印参照）、
（ｉｉ）点ｐｉにおける輝度勾配ベクトルＤｐｉ（図３における破線矢印参照）、
（ｉｉｉ）上記（ｉ）（ｉｉ）で求めたベクトルの内積εｉ＝Ｄｐｉ・（ｐｉ−ｑ）、
（ｉｖ）上記（ｉｉｉ）で求めたベクトルの内積εｉの二乗の総和であるΣεｉ２を求める、
という計算を行う。
【００４３】
上記（ｉｖ）で求めたΣεｉ２が最小になる点ｑが、チェッカー交点に最も近いピクセルである。
【００４４】
ここで、点ｑのピクセルを元に、以下の（ｉ）〜（ｉｉｉ）のようにして、Σεｉ２が真に最小となる座標をサブピクセル推定する。
【００４５】
（ｉ）まず、点ｑの上下ｙ座標を通る水平ライン上でΣεｉ２が極小になるピクセルを探し、それらと点ｑを通る直線を最小二乗法で求める。
【００４６】
（ｉｉ）次に、点ｑの左右ｘ座標を通る垂直ライン上でΣεｉ２が極小になるピクセルを探し、それらと点ｑを通る直線を最小二乗法で求める。
【００４７】
（ｉｉｉ）そして、これらの直線の交点座標を実数値で求めると、サブピクセル単位でΣεｉ２が最も小さくなる座標がチェッカーパターンの交点となる。
【００４８】
次に、初期射影変換行列を求める（ステップＳ２０４）。より詳細には、各入力画像について、チェッカー交点の３Ｄ座標を対応する２Ｄ画像座標に変換する射影変換行列を求める。即ち、この初期射影変換行列を求める処理においては、入力データとしてチェッカー交点の２Ｄ画像座標群と対応する３Ｄ座標とを用い、出力データとして画像枚数分の射影変換行列Ｈを求める。
【００４９】
ここで、初期射影変換行列を求める手法を詳細に説明すると、まず、チェッカボードから推定したチェッカー交点の３次元座標と画像座標の関係は、（５）式より次式で表される。
【数１２】
2007309660.tif 000014
【００５０】
平面パターンではＺ＝０とできるので、
【数１３】
2007309660.tif 000015
【００５１】
カメラパラメータをＨで表すと、
【数１４】
2007309660.tif 000016
【００５２】
となる。
【００５３】
このＨは、３×３の行列で、ホモグラフィ（射影変換行列）と称する。これを平面パターン上の画像座標とそれに対応する既知のワールド座標の組を使って求める。
【００５４】
同一平面でない異なる方向から撮影した３種類以上の画像について、それぞれＨ１〜Ｈｎを求める。
【数１５】
2007309660.tif 000017
【００５５】
次に、初期射影変換行列からカメラ内部パラメータを推定する（ステップＳ２０６）。即ち、入力データとして画像枚数分の射影変換行列Ｈを用い、出力データとしてカメラ内部パラメータＡを求める。
【００５６】
ここで、初期射影変換行列からカメラ内部パラメータを推定する手法を詳細に説明すると、まず、ホモグラフィＨのｉ列のベクトルをｈｉ＝［ｈｉ１，ｈｉ２，ｈｉ３］Ｔと表すと、
【数１６】
2007309660.tif 000018
【００５７】
となる。
【００５８】
ｒ１、ｒ２が直交する単位ベクトルであることから、
【数１７】
2007309660.tif 000019
【００５９】
というカメラ内部パラメータＡに関する２つの拘束式が得られる。
【００６０】
これに３枚以上の画像から得られたホモグラフィＨ１〜Ｈｎの要素を当てはめると、カメラ内部パラメータＡの要素を求めることができる。
【００６１】
次に、初期射影変換行列ＨとステップＳ２０６で推定したカメラ内部パラメータＡとから、各画像についてのカメラ外部パラメータを推定する（ステップＳ２０８）。即ち、入力データとして各画像の初期射影変換行列ＨとステップＳ２０６で推定したカメラ内部パラメータＡとを用い、出力データとしてカメラ外部パラメータ［Ｒ，ｔ］を求める。
【００６２】
ここで、初期射影変換行列ＨとステップＳ２０６で推定したカメラ内部パラメータＡとから、各画像についてのカメラ外部パラメータを推定する手法を詳細に説明すると、各画像のカメラ外部変数を、それぞれの初期射影変換行列ＨとステップＳ２０６で求めたカメラ内部パラメータＡとから、次式によって推定する。
【数１８】
2007309660.tif 000020
【００６３】
次に、全ての画像について、カメラ内部パラメータと各画像についてのカメラ外部パラメータとが最適になるように調整し、カメラパラメータを最適化する（ステップＳ２１０）。即ち、入力データとしてカメラ内部パラメータＡと全画像のカメラ外部パラメータ［Ｒ，ｔ］とを用いて、出力データとして最適化後のカメラ内部パラメータおよびカメラ外部パラメータを求める。
【００６４】
ここで、カメラパラメータを最適化する手法を詳細に説明すると、ここまでで得られたパラメータを初期値として、次式が最小になるように非線形最小二乗法（Ｌｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ法）でパラメータＡ、Ｒｉ、ｔｉを最適化する。
【数１９】
2007309660.tif 000021
【００６５】
なお、
【数２０】
2007309660.tif 000022
【００６６】
は、画像Ｎｏ．ｉでのＭｊの射影座標である。
【００６７】
次に、最小二乗法でレンズ歪み補正係数を求める（ステップＳ２１２）。即ち、入力データとしてカメラ内部パラメータＡと全画像のカメラ外部パラメータ［Ｒ，ｔ］とを用いて、出力データとしてレンズ歪み補正係数を求める。
【００６８】
ここで、レンズ歪み補正係数を求める手法を詳細に説明すると、得られたカメラパラメータを用いて、チェッカー交点の既知３Ｄ座標から理想画像座標値（ｕ，ｖ）と正規化画像座標（ｘ，ｙ）を求める。
【数２１】
2007309660.tif 000023
【００６９】
そして、（ｕ，ｖ）と（ｘ，ｙ）とを（６）式に当てはめて、歪み係数ｋ１，ｋ２を求める。
【００７０】
次に、歪み係数を含めた全カメラパラメータ、即ち、カメラ内部パラメータおよびカメラ外部パラメータを最適化して決定する（ステップＳ２１４）。
【００７１】
より詳細には、次式が最小になるように、非線形最小二乗法（Ｌｅｖｅｎｂｅｒｇ−Ｍａｒｑｕａｒｄｔ法）で全てのカメラパラメータＡ、ｋ１、ｋ２、Ｒｉ、ｔｉを最適化して決定する。
【数２２】
2007309660.tif 000024
【００７２】
次に、プロジェクタキャリブレーションの手法について説明するが、プロジェクタキャリブレーションについては、例えば、非特許文献１、２に開示されており、この非特許文献１、２を合わせて参照する。
【００７３】
まず、図４には、カメラ、プロジェクタ、物体座標系の位置関係が示されている。このプロジェクタキャリブレーションの説明においても、カメラキャリブレーションの場合と同様に、数学的モデルにピンホールモデルを用いて説明する。
【００７４】
プロジェクタキャリブレーションにおいては、２次元のプロジェクタ投影画像座標系（Ｘｐ，Ｙｐ）と３次元の物体座標系（Ｘｗ，Ｙｗ，Ｚｗ）間のホモグラフィを３つ以上求め、最終的にプロジェクタパラメータ（内部パラメータＡ、外部パラメータ［Ｒ，ｔ］、歪み係数ｋ１、ｋ２）を求める。
【００７５】
ここで、プロジェクタキャリブレーションにおいて、カメラキャリブレーションの場合との相違点は、ホモグラフィの算出に用いる画像座標がカメラの撮影画像上の座標ではなく、プロジェクタ画像座標であるという点である。このプロジェクタ画像座標は、以下の手順により求められる。
【００７６】
まず、平板に垂直・水平グレイコードパターンを投影し撮影する。
【００７７】
そして、歪み補正後のカメラ座標としての整数ピクセル座標（ｕ，ｖ）に対応する実数座標を（ｕｄ，ｖｄ）を（６）式で求め、その座標の周囲の標本化ピクセルの画素値から（ｕ，ｖ）の画素値をバイリニア補間により決定し、撮影画像のカメラレンズによる歪みを補正する。
【００７８】
次に、撮影画像から垂直・水平それぞれの空間コード画像を作成する（図５（ａ）（ｂ）参照）。なお、図５（ａ）が垂直空間コード画像を表し、図５（ｂ）が水平空間コード画像を表す。
【００７９】
その後に、カメラ画像座標系での水平・垂直パターンの交点の座標をサブピクセル単位で検出する。即ち、まず、グレイコードパターンの境界を検出し、空間コード化法による計測時の場合と同様にして、図６に示すようにポジとネガとの相補的なパターンを平板に投影する。それから、パターン境界付近の濃度値を用いて直線当てはめを行い、２つの直線の交点を求めることにより、サブピクセル単位でパターン境界を検出する。
【００８０】
そして、対応点を得るために、上記において検出した垂直、水平方向のパターン境界の交点を求めると、図７に示すようにパターン境界点群が得られる。
【００８１】
さらに、その交点付近の画素に直線を当てはめ、２つの直線の交点を求めることにより、カメラ画像座標系での垂直・水平パターンの交点の座標をサブピクセル単位で検出する。
【００８２】
次に、交点の３Ｄ座標を求めるものであり、平板上の３Ｄ座標Ｍｍ＝［Ｘ，Ｙ］Ｔは、カメラ画像座標ｍｃ＝［ｕ，ｖ］Ｔと、予め求められているカメラ画像座標と平板の３Ｄ座標とのホモグラフィｃＨｍを用いて、次式で求められる。
【数２３】
2007309660.tif 000025
【００８３】
ここで、ｃＨｍはグレイコードパターンを投影したときと同じ方向、同じ位置の平面で算出したカメラパラメータＡ［Ｒ  ｔ］＝Ａ［ｒ１  ｒ２  ｒ３  ｔ］より求められる。さらに、平板上の３Ｄ座標のＺ値は０であるので、
ｃＨｍ＝Ａ［ｒ１  ｒ２  ｔ］
で求められる。以上から、３Ｄ座標は次のように求められる。
【数２４】
2007309660.tif 000026
【００８４】
それから、交点のプロジェクタ座標を求めるものであり、プロジェクタ画像座標系のｕ，ｖ座標値は、それぞれ垂直スリットによる空間コード画像、水平スリットによる空間コード画像のコード値である。また、先に求めたパターン交点カメラ画像座標に対応するコード値を取得する。
【００８５】
上記で求めた値を用いて、プロジェクタ画像座標ｍｐ＝［ｕ，ｖ］Ｔと平板上の３Ｄ座標Ｍｍ＝［Ｘ，Ｙ］Ｔが得られるので、これらを次式に当てはめホモグラフィｐＭｍを求めるが、その詳細な手順は上記したカメラキャリブレーションの場合と同様であるので省略する。
【数２５】
2007309660.tif 000027
【００８６】
そして、同一でない３方向以上の平面について同様にホモグラフィを求め、それらを用いてプロジェクタのキャリブレーション（内部パラメータ、外部パラメータ、レンズ歪み係数の算出）を行う。これの詳細な手順も、上記したカメラキャリブレーションの場合と同様であるので省略する。
【００８７】
以上において説明したように、上記したプロジェクタキャリブレーションの手法によりプロジェクタ画像座標と物体座標との対応を得るためには、グレイコードパターンを投影するときの平板の位置が、予めカメラ座標との関係が既知でカメラパラメータが求められているような位置である必要がある。
【００８８】
即ち、プロジェクタパラメータを算出するときには、カメラキャリブレーションを行ったときに使用したチェッカーボードをそのまま使用する必要がある。
【００８９】
こうした従来の技術による手法では、プロジェクタ画像座標上の交点を決定すると、当該交点とカメラキャリブレーション時に用いたチェッカー交点座標との関係は、図８に示すような関係となる。
【００９０】
ここで、カメラキャリブレーション時には、チェッカー交点座標が使われるので、求められたカメラパラメータは、チェッカー交点座標群がある範囲内では正確である。図８の場合は、その範囲はこのカメラ画像の中心付近の極めて限定された箇所である。
【００９１】
一方、そのチェッカー交点座標群がある範囲を超えた外側のカメラ画像座標は、カメラパラメータを用いて３Ｄ座標に変換したり、レンズ歪み補正を行うことにより、正確でなくなってしまうことになる。
【００９２】
仮に、他の角度で撮影をした画像でチェッカー交点座標群が、図８に示すチェッカー交点座標群の外側をくまなく網羅しているならば、最終的に得られるカメラパラメータは画像全体に対して正確になるかも知れないが、こうした撮影を行うことは実用的ではない。
【００９３】
また、チェッカーパターンがカメラ画像に占める範囲を広げたとしても、そのチェッカーパターンの外側に垂直水平スリット境界の交点が検出される可能性は依然として残されている。
【００９４】
上記において説明したように、求められたプロジェクタ画像座標と物体座標が不正確であると、それらを元に算出されるプロジェクタパラメータも不正確となり、このプロジェクタパラメータを用いる３次元計測の精度が悪化するという問題点があった。
【００９５】
また、プロジェクタキャリブレーション時には、プロジェクタ画像座標（＝空間コード値）からその画像のプロジェクタのレンズによる歪みを認識し、その歪み係数を求めることになるが、従来より知られた空間コード化法では、その歪みを正確に認識できないため歪み係数を正確に求めることができなかった。その結果、プロジェクタ投影画像の歪みを正確に補正することができず、最終的に３次元計測の精度が悪化するという問題点があった。
【非特許文献１】Ｚｈｅｎｙｏｕ  Ｚｈａｎｇ，“Ａ  ｆｌｅｘｉｂｌｅ  ｎｅｗ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｃａｍｅｒａ  ｃａｌｉｂｒａｔｉｏｎ”，Ｍｉｃｒｏｓｏｆｔ  Ｒｅｓｅａｒｃｈ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ，ｈｔｔｐ：／／ｒｅｓｅａｒｃｈ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／〜ｚｈａｎｇ／ｃａｌｉｂ／，１９９８．
【非特許文献２】福田正則，宮阪健夫，荒木和男，中京大学大学院情報科学研究科／中京大学生命システム工学部，“柔軟なキャリブレーション手法を用いた３次元計測装置の試作”，第１１回画像センシングシンポジウム講演論文集，Ｊｕｎｅ ２００５．
【発明の開示】
【発明が解決しようとする課題】
【００９６】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、３次元形状測定装置におけるプロジェクタキャリブレーションの精度を向上させて、３次元形状の形状計測の精度を向上するようにした３次元形状測定装置におけるキャリブレーション方法を提供しようとするものである。
【課題を解決するための手段】
【００９７】
上記目的を達成するために、本発明による３次元形状測定装置におけるキャリブレーション方法は、プロジェクタキャリブレーションに用いるプロジェクタ画像座標群を、先にカメラキャリブレーション時に用いたチェッカーボード撮影画像上のチェッカー交点座標群が存在する範囲内で選択するようにしたものである。
【００９８】
即ち、プロジェクタキャリブレーションにおいては、プロジェクタキャリブレーションに用いる画像座標として、水平スリットパターンと垂直スリットパターンとの交点座標群を用いているが、本発明による３次元形状測定装置におけるキャリブレーション方法は、その中にカメラキャリブレーション時に使用した画像座標範囲外のものが含まれないようにして、プロジェクタパラメータが不正確になることを防止するようにしたものである。
【００９９】
つまり、本発明による３次元形状測定装置におけるキャリブレーション方法は、ホモグラフィ算出に用いるプロジェクタ画像座標を、チェッカー交点群と同じ範囲で求めるようにしたものである。
【０１００】
また、上記目的を達成するために、本発明による３次元形状測定装置におけるキャリブレーション方法は、プロジェクタキャリブレーション時に、２値化投影パターンを任意の移動量でシフトすることで空間コードを細分化するようにした空間コード化法（以下、単に「位相シフト空間コード化法」と適宜に称する。）を用いて空間コード値を求め、これによりプロジェクタキャリブレーションパラメータを求めるようにしたものである。
【０１０１】
こうした本発明による３次元形状測定装置におけるキャリブレーション方法によれば、安定して正確なプロジェクタパラメータを得ることができるようになり、精度の高い３次元形状の形状計測を行うことができるようになる。
【０１０２】
なお、本発明における位相シフト空間コード化法によれば、空間コード化法のアルゴリズムをそのまま利用することができるので、ハードウェアやソフトウェアの構成も従来の空間コード化法のものをそのまま利用することが可能となり、簡単な構成で３次元形状の形状計測の測定分解能を向上することができるようになる。
【０１０３】
即ち、本発明のうち請求項１に記載の発明は、２値化投影パターンを投影するプロジェクタと、上記プロジェクタにより投影された２値化投影パターンを撮影するカメラとを有し、上記プロジェクタにより２値化投影パターンを投影して空間に対し絶対的なコード値を生成する空間コード化法を用いた３次元形状測定装置におけるキャリブレーション方法において、プロジェクタのキャリブレーションに用いるプロジェクタ画像座標群を、カメラのキャリブレーション時に用いたチェッカーボード撮影画像上のチェッカー交点座標群が存在する範囲内で選択して上記プロジェクタのキャリブレーションを行うようにしたものである。
【０１０４】
また、本発明のうち請求項２に記載の発明は、本発明のうち請求項１に記載の発明において、上記２値化投影パターンは、一定の幅を有するとともに上記幅方向と直交する所定の方向に延長する光透過領域と光非透過領域とが交互にストライプ状に連続して形成されたものであり、上記プロジェクタ画像座標は、上記プロジェクタにより上記ストライプが垂直方向に延長する所定の２値化投影パターンを水平方向に所定の移動量でシフトしながら順次投影するとともに、上記シフト毎に投影された上記所定の２値化投影パターンの第１の種類の画像を上記カメラにより撮影し、上記プロジェクタにより上記ストライプが垂直方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、上記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された上記それぞれ異なる複数の２値化投影パターンの第２の種類の画像を上記カメラにより撮影し、上記カメラにより撮影した上記第１の種類の画像と上記第２の種類の画像とを合成した第３の種類の画像を生成し、上記プロジェクタにより上記ストライプが水平方向に延長する所定の２値化投影パターンを垂直方向に所定の移動量でシフトしながら順次投影するとともに、上記シフト毎に投影された上記所定の２値化投影パターンの第４の種類の画像を上記カメラにより撮影し、上記プロジェクタにより上記ストライプが水平方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、上記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された上記それぞれ異なる複数の２値化投影パターンの第５の種類の画像を上記カメラにより撮影し、上記カメラにより撮影した上記第４の種類の画像と上記第５の種類の画像とを合成した第６の種類の画像を生成し、上記第３の種類の画像と上記第６の種類の画像とに基づき取得するようにしたものである。
【０１０５】
また、本発明のうち請求項３に記載の発明は、本発明のうち請求項１に記載の発明において、上記２値化投影パターンは、一定の幅を有するとともに上記幅方向と直交する所定の方向に延長する光透過領域と光非透過領域とが交互にストライプ状に連続して形成されたものであり、上記プロジェクタ画像座標は、上記プロジェクタにより上記ストライプが垂直方向に延長する所定の２値化投影パターンを水平方向に所定の移動量でシフトしながら順次投影するとともに、上記シフト毎に投影された上記所定の２値化投影パターンの画像をオーバーサンプリングした第１の種類の画像を上記カメラにより撮影し、上記プロジェクタにより上記ストライプが垂直方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、上記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された上記それぞれ異なる複数の２値化投影パターンの画像をオーバーサンプリングした第２の種類の画像を上記カメラにより撮影し、上記カメラにより撮影した上記第１の種類の画像と上記第２の種類の画像とを合成した第３の種類の画像を生成し、上記プロジェクタにより上記ストライプが水平方向に延長する所定の２値化投影パターンを垂直方向に所定の移動量でシフトしながら順次投影するとともに、上記シフト毎に投影された上記所定の２値化投影パターンの画像をオーバーサンプリングした第４の種類の画像を上記カメラにより撮影し、上記プロジェクタにより上記ストライプが水平方向に延長するそれぞれ異なる複数の２値化投影パターンをそれぞれ投影するとともに、上記それぞれ異なる複数の２値化投影パターンのそれぞれを投影する毎に投影された上記それぞれ異なる複数の２値化投影パターンの画像をオーバーサンプリングした第５の種類の画像を上記カメラにより撮影し、上記カメラにより撮影した上記第４の種類の画像と上記第５の種類の画像とを合成した第６の種類の画像を生成し、上記第３の種類の画像と上記第６の種類の画像とに基づき取得するようにしたものである。
【０１０６】
また、本発明のうち請求項４に記載の発明は、本発明のうち請求項２または３のいずれか１項に記載の発明において、上記所定の２値化投影パターンは、上記それぞれ異なる複数の２値化投影パターンの中で上記幅が最も狭い２値化投影パターンであるようにしたものである。
【０１０７】
また、本発明のうち請求項５に記載の発明は、本発明のうち請求項２、３または４のいずれか１項に記載の発明において、上記所定の２値化投影パターンは、上記光透過領域と上記光非透過領域との位置が入れ替わる１／２位相反転する範囲までシフトするようにしたものである。
【発明の効果】
【０１０８】
本発明は、以上説明したように構成されているので、３次元形状測定装置におけるプロジェクタキャリブレーションの精度を向上することができ、３次元形状の形状計測の精度を向上することができるようになるという優れた効果を奏する。
【発明を実施するための最良の形態】
【０１０９】
以下、添付の図面を参照しながら、本発明による３次元形状測定装置におけるキャリブレーション方法の実施の形態の一例について詳細に説明するものとする。
【０１１０】
図９には、本発明による３次元形状測定装置におけるキャリブレーション方法を実施する３次元形状測定装置の概略構成説明図が示されている。
【０１１１】
この３次元形状測定装置（以下、単に「測定装置」と適宜に称する。）１０は、バス１２ａを介して接続された中央処理装置（ＣＰＵ）１２ｂ、ＣＰＵ１２ｂが実行するプログラムなどを格納したリードオンリメモリ（ＲＯＭ）１２ｃ、データ信号を一時記憶するバッファメモリやＣＰＵ１２ｂによるプログラムの実行時に必要な各種レジスタなどが設定されたワーキングエリアとしてのランダムアクセスメモリ（ＲＡＭ）１２ｄ、キーボードやマウスなどの各種の入力装置１２ｅならびにＣＰＵ１２ｂの処理結果などを出力して表示する表示装置１２ｆなどを有して構成されるコンピュータ１２によりその全体の動作を制御するように構成されており、コンピュータ１２の制御により測定対象物１４へ複数の２値化投影パターンを投影する投影手段たるプロジェクタ（投影機）１６と、プロジェクタ１６により２値化投影パターンを投影された測定対象物１４を撮影する撮影手段たるカメラ（撮影機）１８とを有して構成されている。
【０１１２】
即ち、３次元形状測定装置１０においては、プロジェクタ１６はコンピュータ１２に接続されていて、測定対象物１４の表面に、コンピュータ１２で生成される各種の２値化投影パターンを投影することができるように配置にされている。また、カメラ１８は、プロジェクタ１６の投影方向とは異なる方向から測定対象物１４の表面を撮影することができるように配置されており、カメラ１８で撮影された画像は、デジタル化されてコンピュータ１２に取り込まれるようになされている。
【０１１３】
ここで、図１０（ａ）（ｂ）（ｃ）（ｄ）には、コンピュータ１２で生成される各種の２値化投影パターンの例が示されている。
【０１１４】
これら２値化投影パターンは、それぞれ一定の幅Ｗを有するとともに幅Ｗ方向と直交する所定の方向に延長するスリット状の光透過領域１００ａとスリットの枠に相当する光非透過領域１００ｂとが、交互に連続するようにして形成されている。光透過領域１００ａと光非透過領域１００ｂとの幅Ｗは、任意の大きさに設定することができる。なお、「発明を実施するための最良の形態」の項の説明においては、図１０（ａ）（ｂ）（ｃ）（ｄ）に示す光透過領域１００ａの延長方向（図１０（ａ）（ｂ）（ｃ）（ｄ）における上下方向）を垂直方向とし、図１０（ａ）（ｂ）（ｃ）（ｄ）に示す光透過領域１００ａの延長方向と直交する方向（図１０（ａ）（ｂ）（ｃ）（ｄ）における左右方向）を水平方向とする。
【０１１５】
また、図１０（ａ）（ｂ）（ｃ）（ｄ）に示す２値化投影パターンにおいては、幅Ｗが最も狭い２値化投影パターンは図１０（ｄ）に示すものである。このように、それぞれ異なる複数の２値化投影パターンの中で幅Ｗが最も狭い２値化投影パターンを「ＬＳＢパターン」と一般に称する。
【０１１６】
なお、こうした２値化投影パターンは、従来より周知の技術であるためその詳細な説明は省略する。
【０１１７】
また、この３次元形状測定装置１０においては、２値化投影パターンとして、光透過領域１００ａが図１０（ａ）（ｂ）（ｃ）（ｄ）に示す方向たる垂直方向と直交する方向たる水平方向に延長する２値化投影パターンを生成することができるようになされている。
【０１１８】
なお、こうした互いに光透過領域１００ａの延長方向が直交する２種類の２値化投影パターンは、後述するプロジェクタキャリブレーションの処理を行う際に用いられる。
【０１１９】
次に、図１１に示すコンピュータ１２により実現される３次元形状測定装置１０の制御システムのブロック構成説明図を参照しながら、３次元形状測定装置１０における測定対象物１４の３次元形状の形状計測動作について説明しておく。
【０１２０】
この制御システムは、プロジェクタ１６で投影する処理に使用する、光透過領域１００ａの延長方向が一方向の複数の２値化投影パターン（例えば、光透過領域１００ａの延長方向が、図１０（ａ）（ｂ）（ｃ）（ｄ）に示す２値化投影パターンと同方向、即ち、垂直方向のものである。）を決定して、当該決定した複数の２値化投影パターンを測定対象物１４の表面に投影するとともに、当該決定した複数の２値化投影パターンの中のいずれか１つを幅Ｗ方向に所定の移動量だけシフト（移動）させながら測定対象物１４の表面に投影するための制御を行う２値化投影パターン投影手段２０と、カメラ１８が撮影した画像をデジタル化して画像処理手段２４（後述する。）へ送る画像入力手段２２と、画像入力手段２２から送られた画像を処理して測定対象物１４の三次元情報を抽出する画像処理手段２４とを有して構成されている。
【０１２１】
ここで、２値化投影パターン投影手段２０は、図１０（ａ）（ｂ）（ｃ）（ｄ）に示すような２値化投影パターンを生成する２値化投影パターン生成部２０ａと、２値化投影パターン生成部２０ａにおいて生成された２値化投影パターンを測定対象物１４へ投影するようにカメラ１６を制御する２値化投影パターン投影制御部２０ｂとを有して構成されている。
【０１２２】
即ち、この２値化投影パターン投影手段２０においては、２値化投影パターン生成部２０ａで所定の幅Ｗの光透過領域１００ａと光非透過領域１００ｂとからなる複数の２値化投影パターンを生成する。
【０１２３】
そして、空間コード画像生成処理（後述する。）を行う場合には、２値化投影パターン投影制御部２０ｂがプロジェクタ１６を制御して、２値化投影パターン生成部２０ａが生成した種類の異なる複数の２値化投影パターンを測定対象物１４の表面にそれぞれ投影する。この際には、２値化投影パターン投影制御部２０ｂは、測定対象物１４の表面に投影する２値化投影パターンを幅Ｗ方向へシフトしない。
【０１２４】
一方、位相シフト画像生成処理（後述する。）を行う場合には、２値化投影パターン投影制御部２０ｂがプロジェクタ１６を制御して、２値化投影パターン生成部２０ａが生成した複数の２値化投影パターンのいずれか１つを測定対象物１４の表面に投影する。この際には、２値化投影パターン投影制御部２０ｂは、測定対象物１４の表面に投影する２値化投影パターンを幅Ｗ方向に所定の移動量ずつ順次にシフトさせながら投影する。
【０１２５】
この移動量は任意であり、幅Ｗよりも小さくてもよいし大きくてもよいが、この移動量が、測定対象物１４における３次元形状の形状計測の測定分解能に関する最小分解能となる。
【０１２６】
次に、画像入力手段２２は、測定対象物１４の表面に投影された２値化投影パターンをカメラ１８により撮影し、当該撮影により得られた画像をデジタル化して画像処理手段２４へ入力するものである。
【０１２７】
さらに、画像処理手段２４は、画像入力手段２２から送られた画像を処理して測定対象物１４の三次元情報を抽出するものであり、２値化投影パターン生成部２０ａが生成した種類の異なる複数の２値化投影パターンを測定対象物１４の表面にそれぞれ投影し、カメラ１８により２値化投影パターンを投影された測定対象物１４の表面を、当該種類の異なる複数の２値化投影パターン毎に撮影した画像を画像入力手段２２から送られて、当該送られた画像を合成した画像（以下、「空間コード画像」と適宜に称する。）を生成する空間コード画像処理を行う空間コード画像生成手段２４ａと、２値化投影パターン生成部２０ａが生成したいずれか１つの２値化投影パターンを幅Ｗ方向に所定の移動量だけ順次にシフトさせながら測定対象物１４の表面に投影し、カメラ１８により２値化投影パターンを投影された測定対象物１４の表面をシフト毎に撮影した画像を画像入力手段２２から送られて、当該送られた画像を合成した画像（以下、「位相シフト画像」と適宜に称する。）を生成する位相シフト画像生成処理を行う位相シフト画像生成手段２４ｂと、空間コード画像生成手段２４ａにより得られた空間コード画像（空間コード値）と位相シフト画像生成手段２４ｂにより得られた位相シフト画像（シフトコード値）とを合成した画像たる位相シフト空間コード画像を生成する位相シフト空間コード画像生成手段２４ｃと、位相シフト空間コード画像生成手段２４ｃにより得られた位相シフト空間コード画像から測定対象物１４の３次元形状情報を得る３次元形状情報取得手段２４ｄとを有して構成されている。
【０１２８】
そして、３次元形状情報取得手段２４ｄにより取得された測定対象物１４の３次元形状情報は、表示装置１２ｆなどへ出力されて利用に供される。
【０１２９】
なお、位相シフト空間コード画像生成手段２４ｃにより得られた画像たる位相シフト空間コード画像は空間コード画像であるので、３次元形状情報取得手段２４ｄは、空間コード化法のアルゴリズムのままで測定対象物１４の３次元形状情報を取得することができる。換言すれば、３次元形状情報取得手段２４ｄは、従来より公知の技術により構築することができ、従来より公知の技術を利用して３次元形状情報が得られる。
【０１３０】
次ぎに、図１２に示すフローチャートを参照しながら、３次元形状測定装置１０の動作についてさらに詳細に説明する。
【０１３１】
即ち、この３次元形状測定装置１０において測定対象物１４の３次元形状情報を得るには、まず、空間をコード化するために、所定の幅Ｗがそれぞれ異なる複数の２値化投影パターンを生成する（ステップＳ１２０２）。
【０１３２】
ここで、空間を分割するためのスリットの数をｎとすると、ｌｏｇ２ｎ枚の異なる２値化投影パターンを用意しなければならない。
【０１３３】
次に、ステップＳ１２０２で生成された２値化投影パターンの中で任意の一つを選択して、位相シフト画像を生成する位相シフト画像生成処理を行う（ステップＳ１２０４）。即ち、プロジェクタ１６により、選択した２値化投影パターンを幅Ｗ方向に所定の移動量だけ順次にシフトさせながら測定対象物１４の表面に投影し、カメラ１８により２値化投影パターンを投影された測定対象物１４の表面をシフト毎に撮影した画像を画像入力手段２２から送られて、当該送られた画像を合成して位相シフト画像を生成する。
【０１３４】
つまり、位相シフト画像生成処理においては、後述する空間コード画像生成処理に必要な２値化投影パターンのうちの任意の一つ選択して用いるものであり、この位相シフト画像生成処理で用いる２値化投影パターンを「シフトパターン」と適宜に称することとする。
【０１３５】
シフトパターンとしては、原理的にはいずれの２値化投影パターンを用いてもよく、いずれの２値化投影パターンでも同様の効果を得ることが可能であるが、シフト数を考慮すると最も幅Ｗの狭い２値化投影パターン、即ち、ＬＳＢパターンを用いることが好ましいものである。
【０１３６】
即ち、シフトパターンとしては、原理的にはいずれの２値化投影パターンを用いても同様な作用効果を得ることができるが、位相シフト画像生成処理においてはシフト毎に２値化投影パターンを投影された測定対象物１４の画像を撮影するため、撮影枚数が最も少なくなる、換言すれば、シフト回数が最も少なくなるＬＳＢパターンを用いてそれをシフトすることが好ましい。
【０１３７】
また、シフトパターンをシフトする際のシフト毎の移動量（以下、「シフトピッチ」と適宜に称する。）は、３次元形状測定装置１０のユーザーが希望する測定分解能のピッチでよく、このシフトピッチが最小分解能となる。なお、プロジェクタ１６の最小ドットピッチを採用すると、プロジェクタ１６の解像度に影響を受けることなく最も測定分解能を高くすることができる。
【０１３８】
また、シフトパターンは、そのパターンの１周期以内で複数回シフトするものとする。即ち、シフトパターンのシフト幅は、例えば、ＬＳＢパターンの光透過領域１００ａと光非透過領域１００ｂとの位置が入れ替わる１／２位相反転する範囲までシフトする。
【０１３９】
ここで、測定対象物１４の表面をシフト毎に撮影した画像を合成して位相シフト画像を生成する際には、シフト毎に撮影した各画像をそれぞれに重み無く（または、同一の重みでもよい。）足し込むことで、シフトピッチを最小分解能とする空間コード画像たる位相シフト画像を生成する。
【０１４０】
なお、位相シフト画像は、２値化投影パターンのストライプ幅間隔である幅Ｗ間隔でコード値が繰り返され、生成される位相シフト画像中に同一コード値が複数存在するようになる。このため、位相シフト画像生成処理においては、撮影空間に対して絶対的なコード値は生成されない。
【０１４１】
また、後述するように、２値化投影パターンに「グレイコード」を採用した場合には、足し込みの前にＢｉｔ演算をすることが望ましい。
【０１４２】
上記したステップＳ１２０４の処理を終了すると、ステップＳ１２０６の処理へ進み、ステップＳ１２０２で生成された所定の幅Ｗがそれぞれ異なる複数の２値化投影パターンを用いて、空間コード画像を生成する空間コード画像生成処理を行う。即ち、プロジェクタ１６により、種類の異なる複数の２値化投影パターンを測定対象物１４の表面にそれぞれ投影し、カメラ１８により２値化投影パターンを投影された測定対象物１４の表面を、当該種類の異なる複数の２値化投影パターン毎に撮影した画像を画像入力手段２２から送られて、当該送られた画像を合成して空間コード画像を生成する。
【０１４３】
つまり、空間コード画像生成処理においては、例えば、シフトパターンとしてＬＳＢパターンを選択したならば、シフトさせる前のＬＳＢパターンも含めた２値化投影パターンを測定対象物１４の表面に投影し、従来より公知の、所謂、空間コード画像を生成する。
【０１４４】
この空間コード画像の分解能はＬＳＢパターンのストライプ幅であるが、撮影空間に対して絶対的なコードとなる。
【０１４５】
次に、ステップＳ１２０４で生成した位相シフト画像とステップＳ１２０６で生成した空間コード画像とを合成して、位相シフト空間コード画像を生成する位相シフト空間コード画像生成処理を行う（ステップＳ１２０８）。この位相シフト空間コード画像は、撮影空間に対して相対的なコード値の画像たる位相シフト画像と撮影空間に対して絶対的なコード値の画像たる空間コード画像との合成であるため、これにより生成された位相シフト空間コード画像は、シフトピッチを測定分解能とし、かつ、撮影空間に対して絶対的なコード値の画像となる。即ち、シフトピッチまで細分化（高分解能化）された絶対的なコード画像（コード値）が生成される。
【０１４６】
ステップＳ１２０８の処理を終了すると、ステップＳ１２１０の処理へ進み、ステップＳ１２０８で生成された位相シフト空間コード画像に基づいて、測定対象物１４の３次元形状情報を取得する３次元形状情報取得処理を行う。即ち、位相シフト空間コード画像は空間コード画像であるため、位相シフト空間コード画像を空間コード画像として扱い、従来より公知の技術を用いて測定対象物１４の３次元形状情報を取得する。
【０１４７】
そして、ステップＳ１２１０の３次元形状情報取得処理により取得された測定対象物１４の３次元形状情報は、表示装置１２ｆなどへ出力されて各種の利用に供される。
【０１４８】
次に、シフトパターンをシフトしながら各シフト毎における測定対象物１４の表面へ投影された２値化投影パターン画像を撮影する手法の原理について、以下により詳細に説明することする。
【０１４９】
まず、図１３（ａ）（ｂ）（ｃ）には、光非透過領域（図１３（ａ）（ｂ）（ｃ）においてハッチングで示す領域）が、１６分割したシフトピッチ幅で図上左側から右側へシフトパターンをシフトして、光透過領域（図１３（ａ）（ｂ）（ｃ）においてハッチングされていない領域）と光非透過領域とが反転する位置までシフトしたときにおける、各シフトパターンのシフト状態と各シフトピッチに対応するコード値とが示されている。なお、図１３（ａ）（ｂ）（ｃ）において、黒１〜ｎは、シフトパターンをシフトしたことで光非透過領域がシフトパターンを含めて何回であったかを示している。
【０１５０】
ここで、図１３（ａ）は、シフトピッチを分解能とした空間に分割するものであり、シフトパターンを撮影した画像と、シフトごとに撮影した各画像の中の同一画素の２値化された値を単純に加算することによって空間を分割する。
【０１５１】
例えば、図１３（ｂ）に示すように、シフトパターンを予め二分割しておけばシフト回数は１／２になり、撮影枚数ならびに撮影時間ともに１／２となる。
【０１５２】
同様に、図１３（ｃ）に示すように、シフトパターンを４分割にすれば、シフト回数は１／４になり、さらに分割していけば同様に撮影枚数が減り、撮影時間も短縮することができる。
【０１５３】
このことから、シフトパターンとしては、２値化投影パターンの中で最もストライプ幅の小さい、即ち、分割数の多いＬＳＢパターンを選択することがより効率的である。
【０１５４】
また、図１３（ｂ）および図１３（ｃ）に示すように、位相シフト画像は、２値化投影パターンのストライプの幅Ｗの間隔でコード値が繰り返され、生成される位相シフト画像中に同一コード値が複数存在することになる。このため、撮影空間に対して絶対的なコード値は生成されない。
【０１５５】
しかしながら、シフトパターンをシフトさせることによって得られた同一コード値は、シフトパターンの光透過領域と光非透過領域という２値化された値の中では、複数回発生しないという特徴を備えている。
【０１５６】
例えば、図１３（ｃ）において、「光非透過領域｜光透過領域｜光非透過領域｜光透過領域」という２値化投影パターンで４分割されたパターンをシフトパターンとした場合、「黒１」というコード値は４カ所に発生している。
【０１５７】
しかしながら、シフトパターンの中の「光透過領域」の中には１カ所しか発生しない。同様に、シフトパターンの中の「光非透過領域」の中にも「黒１」というコード値は１カ所しかない。
【０１５８】
ここで、シフトさせる前のシフトパターンも含めた２値化投影パターンを投影および撮影し空間コード画像を生成すると、当該空間コード画像は分解能はＬＳＢパターンのストライプ幅であるが、撮影空間に対して絶対的なコード値となる。
【０１５９】
即ち、図１４に示すように、シフトパターンの「右側の光透過領域」は「空間コード０」、「左側の光非透過領域」は「空間コード３」というように撮影空間を一意にコード化できる。
【０１６０】
従って、図１５に示すように、撮影空間に対して相対的なコード値を持つ位相シフト画像と、絶対的なコード値を持つ空間コード画像との複雑な演算システムを必要としない足し合わせによる合成により、シフトピッチを分解能とし撮影空間に対して絶対的なコード値を持つ位相シフト空間コード画像を生成することができる。
【０１６１】
これにより、例えば空間を１６分割するのに１６回のシフトや撮影を行わずに撮影枚数を減少させ、撮影時間を短縮することができるようになる。
【０１６２】
なお、上記においては、バイナリコードを用いた場合について説明したが、一般に用いられているグレイコードでも原理は同じである。
【０１６３】
ここで、グレイコードで表現した２値化投影パターンを使用し、位相シフト空間コード画像を公知の表計算ソフトウェアを用いて処理した結果を図１６に示す。
【０１６４】
なお、図１６において、光透過領域は「１」、光非透過領域は「０」で表され、空間コード値は実際は２５５までであるが、３５までのみが表示されている。
【０１６５】
また、プロジェクタの解像度が、２値化投影パターンにおけるＬＳＢパターンのストライプの幅の４倍であるとしてシフトさせているため、バイナリコードであれば４回のシフトとなるが、グレイコードのため７回シフトとなっている。
【０１６６】
Ｇ３２〜Ｇ１はグレイコードで表現した２値化投影パターンを示し、Ｓ１〜Ｓ７はＧ１（ＬＳＢ）を位相シフトしたパターンを示す。
【０１６７】
足し合わせの覧には、位相シフトを単純に足し込みをした値を示している。ここで、足し合わせを行った位相シフト画像は「０〜３」までの変化でなくてはならないものが、「０〜７」「７〜０」と大きさと変化の方向が一定でなくなっている。
【０１６８】
このままでも空間コード画像との合成は可能であるが、三次元情報抽出時の演算が複雑になってしまうので、空間コード画像との合成の前に図１７に示すＢｉｔ演算を行うことで大きさと変化の方向をバイナリコードから生成された空間コード画像に合わせる値で示した。
【０１６９】
変換データの覧には、Ｇ３２〜Ｇ１のグレイコードパターンをバイナリコードパターンに変換した値を示す。バイナリ空間コードはバイナリコードから生成された空間コード画像を示す。
【０１７０】
Ｂｉｔ演算によりグレイコードからバイナリコードに変換された位相シフト画像とバイナリコードから生成された空間コード画像を合成した位相シフト空間コード画像は、図１８に示すように、グラフの傾きが階段状になっているバイナリコードから生成された空間コード画像に対し、位相シフト空間コード画像ではグラフの傾きが直線状となり分解能が向上したことがわかる。
【０１７１】
上記した３次元形状測定装置１０においては、シフトパターンをシフトする機能および位相シフト画像と空間コード画像とを合成する機能以外の特別な構成を必要とせずに、従来の空間コード化法で用いる構成を用いて、撮影画像の合成だけで高解像度の空間コード画像が生成でき、これにより測定対象物１４の３次元形状計測の分解能を向上することができる。
【０１７２】
また、上記した３次元形状測定装置１０においては、測定分解能はシフトピッチに依存し、２値化投影パターンのストライプの幅Ｗとは独立しているため、ＬＳＢパターンのストライプの幅Ｗは、プロジェクタ１６やカメラ１８の解像度に応じてＬＳＢパターンのストライプが識別が可能な幅とすることができる。
【０１７３】
なお、３次元形状測定装置１０は、上記において説明した２値化投影パターンを任意の移動量でシフトすることで空間コードを細分化するようにした空間コード化法の他に、２値化投影パターンをシフトしない従来の空間コード化法も実施できるものである。この従来の空間コード化法も実施する場合には、２値化投影パターンをシフトすることなしに空間コード化法を適用する。
【０１７４】
次に、上記した３次元形状測定装置１０におけるキャリブレーション方法（以下、単に「本発明キャリブレーション方法」と適宜に称する。）について説明すると、本発明キャリブレーション方法は、ホモグラフィ算出に用いるプロジェクタ画像座標を、チェッカー交点群と同じ範囲で求めるようにしたものである。
【０１７５】
以下に、本発明キャリブレーション方法の一例について詳細に説明するが、この例においては、空間コード画像を作成するまでは、「背景技術」の項において説明した従来の技術を用いることができる。
【０１７６】
そして、空間コード画像を作成した後は、チェッカーボードの撮影画像をカメラレンズの歪み係数を用いて補正する。そして、その画像上でチェッカー交点のカメラ画像座標をサブピクセル単位で求める。なお、このカメラ座標の求め方は、「背景技術」の項において説明したカメラキャリブレーションにおけるステップＳ２０２の処理と同様にして行う。
【０１７７】
次に、垂直にスリットの入った２値化投影パターン（例えば、図１０（ａ）（ｂ）（ｃ）に示すように、垂直方向にスリット状の光透過領域１００ａが延長する２値化投影パターンである。）の撮影画像より生成した空間コード画像（図５（ａ）参照）から交点座標に対応する第１の空間コード値を取得する。ここで、第１の空間コード値を取得するときは、空間コード画像の標本化・量子化誤差の補正を行う。
【０１７８】
また、同様にして水平にスリットの入った２値化投影パターン（例えば、図１０（ａ）（ｂ）（ｃ）に示すスリット状の光透過領域１００ａの延長方向たる垂直方向と直交する方向、即ち、図１０（ａ）（ｂ）（ｃ）上において水平方向にスリット状の光透過領域が延長する２値化投影パターンである。）の撮影画像より生成した空間コード画像（図５（ｂ）参照）から交点座標に対応する第２の空間コード値を取得する。ここで、第２の空間コード値を取得するときは、空間コード画像の標本化・量子化誤差の補正を行う。
【０１７９】
次に、上記のようにして得られた第１の空間コード値および第２の空間コード値を、それぞれプロジェクタ画像座標の水平・垂直方向座標とする。
【０１８０】
このプロジェクタ画像座標に対応するチェッカーボード上の３Ｄ座標値には、カメラキャリブレーションの場合と同様に既知のデータを用いる。
【０１８１】
上記した本発明キャリブレーション方法によれば、パラメータが正確である範囲はチェッカー交点のある範囲に限られることになるが、その範囲内においては高精度を確保することができる。
【０１８２】
なお、チェッカーパターンがカメラ画像に占める範囲が図８に示す例ほど極端に狭くなく、チェッカーパターンがカメラ画像に占める範囲が十分に広い場合には、その広い範囲で高い精度を確保することができる。
【０１８３】
ここで、上記した本発明キャリブレーション方法においては、空間コード画像を作成する際に従来の空間コード化法を用いたが、これに代えて、３次元形状測定装置１０において計測時に実施する手法である、２値化投影パターンを任意の移動量でシフトすることで空間コードを細分化するようにした空間コード化法（位相シフト空間コード化法）を用いるようにしてもよい。
【０１８４】
プロジェクタキャリブレーション時に行う空間コード化法の作業を位相シフト空間コード化法で行うことにより、より高い精度のパラメータを求めることができるようになる。
【０１８５】
ここで、キャリブレーションを行う際には、空間コード値は水平方向座標系だけではなく、垂直方向座標系についても求める必要がある。
【０１８６】
上記した３次元形状計測装置１０の動作の説明は、図１０（ａ）（ｂ）（ｃ）において光透過領域１００ａが垂直方向に延長した２値化投影パターンを水平方向にシフトする場合について行ったが、図１０（ａ）（ｂ）（ｃ）に示す２値化投影パターンとは反対に光透過領域が水平方向に延長した２値化投影パターンを垂直方向にシフトする場合にも、上記した３次元形状計測装置１０の動作と同様な動作を行えばよいものであるが、以下に、当該水平方向に延長した２値化投影パターンを垂直方向にシフトする場合について補足的に説明する。
【０１８７】
例えば、キャリブレーションの対象とするプロジェクタの解像度がＸＧＡ（１０２４×７６８ピクセル）である場合に、図１０（ａ）（ｂ）（ｃ）に示すような光透過領域１００ａが垂直方向に延長した２値化投影パターンを水平方向にシフトするには、水平方向に８ビットの空間コードの１コード分が連続する画素数４（＝１０２４÷２５６）をさらに４分割することで、空間コードの分解能を４倍に向上することができるものである。
【０１８８】
一方、垂直方向の空間コードを分割する場合は、１空間コードの画素数は３（＝７６８÷２５６）である。
【０１８９】
ここで、４画素を４分割する場合とは異なり、３画素を３分割する場合には、例えば、以下のような手法をとればよい。
【０１９０】
即ち、図１９（ａ）（ｂ）（ｃ）に示すように、３画素を３分割することにより垂直方向にシフトする位相シフト空間コード化法を行えばよい。この位相シフト空間コード化法は、上記において説明した垂直方向に延長した２値化投影パターンを水平方向にシフトする位相シフト空間コード化法と同様である。
【０１９１】
以下、具体的に説明すると、水平方向に延長するスリット状の光透過領域を備えた２値化投影パターンは、図１９（ａ）に示すように、垂直方向に延長する一定の高さＴを有するとともに、高さＴ方向と直交する水平方向に延長するスリット状の光透過領域２００ａとスリット枠に相当する光非透過領域２００ｂとが交互に連続するようにして形成されている。
【０１９２】
こうした水平方向に延長する光透過領域２００ａを備えた２値化投影パターンを用いて空間コード画像を生成することになるものであり、「光非透過領域｜光透過領域｜光非透過領域」という２値化投影パターンで３分割されたシフトパターンにより、それぞれにコード値が決められ（図１９（ｂ）参照）、位相シフト画像値を生成する。
【０１９３】
さらに、図１９（ｃ）に示すように、空間コード画像値と位相シフト画像値の足し合わせによる合成により位相シフト空間コード画像を生成する。
【０１９４】
また、上記においては、バイナリコードを用いた場合について説明したが、一般に用いられているグレイコードでも原理は同じである。
【０１９５】
ここで、グレイコードで表現した２値化投影パターンを使用し、位相シフト空間コード画像を処理した結果について図２０の図表に示している。
【０１９６】
なお、図２０において、光透過領域は「１」、光非透過領域は「０」で表され、同じ空間コード値が３つずつ行方向に続いている。
【０１９７】
また、プロジェクタの解像度が、２値化投影パターンにおけるＬＳＢパターンのストライプ幅の３倍であるとしてシフトさせているため、バイナリコードであれば３回のシフトとなるが、グレイコードのため５回シフトとなっている。
【０１９８】
２０ｈ〜０１ｈはグレイコードパターンで表現した２値化投影パターンを示し、Ｓ１〜Ｓ５は０１ｈ（ＬＳＢ）を位相シフトしたパターンを示す。
【０１９９】
図２０の図表に示すこれらの数値からは、以下のようにしてシフトデータを数値化することになる。
【０２００】
まず、グレイコードのＬＳＢと同じビット値が、Ｓ１〜Ｓ５にいくつあるかを数え（図２０の図表中では影の付いた範囲で示されている。）、その数が３以上である場合は３を引くことによりシフトデータを求める。
【０２０１】
そして、元の空間コード値（２０の図表中ではＢｉｎａｒｙと表示している。）を３倍した値に、得られたシフトデータの値を加えることにより位相シフト空間コード値を求める。
【０２０２】
このようにして、３画素分連続していた空間コードを３段階に分割することができるものであり、計測時に投影する画像は、８ビット目のグレイコードパターン画像を垂直方向に１〜５画素分シフトしたものになる。
【０２０３】
なお、位相シフトグレーコードパターンの撮影画像を２値化するときには、オーバーサンプリング技術を利用してオーバーサンプリング２値画像を生成し、擬似的にサンプリング周波数を逓倍するようにして、位相シフト空間コード化法の解像度を向上させるようにしてもよい。
【０２０４】
このオーバーサンプリング２値画像の生成について、図２１を参照しながら疑似的にサンプリング周波数を８倍にする場合を例に説明すると、まず、２値化投影パターンを撮影画像の１画素幅に満たないシフト幅で順次にシフトさせながら測定対象物１４の表面に投影し、カメラ１８により２値化投影パターンを投影された測定対象物１４の表面をシフト毎に撮影した画像（以下、「シフト画像」と適宜に称する。）について、各シフト画像のポジパターン（撮影した状態における輝度情報を示す画像）と各シフト画像のネガパターン（ポジパターンを反転した状態における輝度情報を示す画像）とのそれぞれの輝度情報から２値画像を生成する際に、シフト方向（以下、「ｘ方向」と適宜に称する。）の画素数を元の画素の８倍にする。このようにすることにより、２値化投影パターンにおけるパターン境界をより高精度に特定することができるようになる。
【０２０５】
次に、パターン境界付近におけるポジパターン輝度分布曲線とネガパターン輝度分布曲線とが交差する座標（以下、「交差座標」と適宜に称する。）ｘｃ×８（図２１においては、元の画素の交差座標を「ｘｃ」で示す。）の座標値を、サブピクセルの単位で実数値として求める（なお、この求め方については、例えば、井口征士・佐藤宏介著の「三次元画像計測」（１９９０年  昭晃堂発行）の第１１３頁〜第１１４頁を参照する。）。
【０２０６】
次に、上記で求めた実数値の小数部を切り捨てた値を交差座標ｘｃ×８のピクセル単位の座標値として設定し、当該交差座標ｘｃ×８の画素よりもｘ方向左側の座標（以下、「輝度変化左側座標」と適宜に称する。）の画素をｘｌ×８（図２１においては、元の画素の輝度変化左側座標「ｘｌ」で示す。）で表し、当該交差座標ｘｃ×８の画素よりもｘ方向右側の座標（以下、「輝度変化右側座標」と適宜に称する。）の画素をｘｒ×８（図２１においては、元の画素の輝度変化左側座標「ｘｒ」で示す。）で表すとき、輝度変化左側座標ｘｌ×８〜交差座標ｘｃ×８までを「１」（または「０」）とし、交差座標ｘｃ×８〜輝度変化右側座標ｘｒ×８までを「０」（または「１」）、即ち、、輝度変化左側座標ｘｌ×８〜交差座標ｘｃ×８の反転値として２値画像を生成する。本明細書においては、こうして生成された２値画像をオーバーサンプリング２値画像と称することとする。
【０２０７】
そして、上記したステップＳ１２０４の処理においては、上記した手法により全てのシフト画像に対してオーバーサンプリング２値画像を生成し、生成したオーバーサンプリング２値画像を合成して、ｘ方向に画素が８倍に拡大されたサイズのままの位相シフト画像であるオーバーサンプリング位相シフト画像を生成する。
【０２０８】
また、上記したステップＳ１２０６の処理においては、上記した手法を用いて、複数の２値化投影パターンを投影した全ての画像に対してオーバーサンプリング２値画像を生成し、生成したオーバーサンプリング２値画像を合成して、ｘ方向に画素が８倍に拡大されたサイズのままの空間コード画像であるオーバーサンプリング空間コード画像を生成する。
【０２０９】
そして、ステップＳ１２０８においては、ステップＳ１２０４で生成されたオーバーサンプリング位相シフト画像とステップＳ１２０６で生成されたオーバーサンプリング空間コード画像とをを合成して、ｘ方向に画素が８倍に拡大されたサイズのままの位相シフト空間コード画像であるオーバーサンプリング位相シフト空間コード画像を生成する。
【０２１０】
ステップＳ１２１０においては、ステップＳ１２０８で生成されたオーバーサンプリング位相シフト空間コード画像に基づいて３次元形状情報を取得することになる。具体的には、オーバーサンプリング位相シフト空間コード画像の各画素座標とコード値とを用いて３次元座標を計算する。
【０２１１】
この際に、２値化投影パターンのシフト方向であるｘ方向の画素数が８倍になっているので、画像座標値を１／８にしてから３次元座標値を計算する必要がある。
【０２１２】
ここで、全ての画素について上記した計算を行うとデータ数が膨大になり無駄も大きいため、データ点数がオーバーサンプリングしない場合と同じとなるように、ｘ方向に８画素おきに画像座標値を１／８にしてから３次元座標値を計算すればよい。
【０２１３】
なお、単純に８画素おきに計算したのでは、オーバーサンプリング２値画像生成時に求めたパターン境界のサブピクセル座標値を十分に利用することができないため、当該８画素おき画素の座標に最も近くでパターン境界がサブピクセル推定された箇所の座標値を用いて、３次元座標値を計算することにより標本化誤差を軽減することができるようになる。
【０２１４】
上記したように、オーバーサンプリング２値画像を用いることにより、極度に高解像度のカメラを必要とせずに、低い解像度で撮影しても、パターン境界を高精度で推定でき、位相シフト空間コード化法の解像度をさらに向上することができる。
【０２１５】
また、上記した３次元形状測定装置１０においては、シフトパターンをシフトする機能およびオーバーサンプリング位相シフト画像とオーバーサンプリング空間コード画像とを合成する機能以外の特別な構成を必要とせずに、従来の空間コード化法で用いる構成を用いて、撮影画像の合成だけで高解像度の空間コード画像が生成でき、これにより測定対象物１４の３次元形状計測の分解能を向上することができる。
【０２１６】
また、上記した３次元形状測定装置１０においては、測定分解能はシフトピッチに依存し、２値化投影パターンのストライプの幅Ｗとは独立しているため、ＬＳＢパターンのストライプの幅Ｗは、カメラ１６やプロジェクタ１８の解像度に応じてＬＳＢパターンのストライプが識別が可能な幅とすることができる。
【０２１７】
なお、上記したオーバーサンプリングする手法については、光透過領域１００ａが垂直方向に延長した２値化投影パターンを水平方向にシフトする場合と、光透過領域１００ａが水平方向に延長した２値化投影パターンを垂直方向にシフトする場合とで、ともに共通である。
【０２１８】
なお、上記した４画素を４分割する位相シフト空間コード化法においては、図１７に示す演算式を用いてシフトデータを求めていたが（図１６参照）、ＬＳＢと同じビット値を数える手法を用いてシフトデータを求めるようにすることもできる（図２２参照）。
【０２１９】
次に、本願発明者が行った各種の実験の結果ついて、その結果を示す図表を参照しながら詳細に説明する。
【０２２０】
まず、３次元形状測定の精度を左右する要因として、
（１）計測時におけるプロジェクタレンズの歪み補正の有無
（２）計測時ならびにキャリブレーション時における位相シフト空間コード化法の適用の有無
（３）キャリブレーション時におけるチェッカーボード撮影時のボードの傾き角度
について着目し、これらの組み合わせにより計測精度にどのような傾向があらわれるかを検討した。
【０２２１】
その結果、
ａ．キャリブレーションパラメータの算出時と計測時との双方において位相シフト空間コード化法を適用する、
ｂ．計測時にプロジェクタのレンズの歪み補正を行う、
ｃ．チェッカーボードの回転角度は、Ｘ軸およびＹ軸周りにそれぞれ１５度、Ｚ軸周りに１０度程度でチェッカーボード画像がカメラ画像から多くはみ出さないようにすること、
という、上記ａ、ｂ、ｃの条件を備えたときに最適な計測精度が得られることが判明した。
【０２２２】
以下、第１の実験の詳細について説明すると、まず、キャリブレーションパラメータ算出時の条件は以下の通りである。なお、第１の実験においては、位相シフト空間コード化法を適用するにあたっては、光透過領域１００ａが垂直方向に延長した２値化投影パターンを水平方向にのみシフトするものとして、光透過領域１００ａが水平方向に延長した２値化投影パターンについては垂直方向へのシフトは行わないようにした。
【０２２３】
カメラ：ＡＲＴＲＡＹ  ＡＲＴＣＡＭ−１３０ＭＩ（画素数１２８０×１０２４ピクセル）
レンズ：焦点距離ｆ＝１２ｍｍ、絞り値Ｆ＝１．４、Ｍｅｇａ  Ｐｉｘｅｌ対応
プロジェクタ：三菱電機株式会社製ＬＶＰ−ＸＬ５（画素数１０２４×７６８ピクセル）
画像サイズ：６４０×４８０ピクセル（プロジェクタ画像のピクセル間隙間の影響を軽減するため、１２８０×１０２４ピクセルで一旦撮影し、２次元移動平均フィルタ適用後間引き縮小した。）
撮影パターン：３５ｍｍ四方のマゼンタ色市松模様を横８個、縦７個のピッチで配置したものを、カラーレーザープリンタで普通紙に印刷後、セラミック製タイルに貼り付けたものをチェッカーボードとして用いる。
【０２２４】
まず、キャリブレーションパラメータの精度について検討した。即ち、チェッカーボードをカメラから６５０ｍｍの位置に設置し、Ｘ、Ｙ、Ｚ軸周りに全て５、１０、１５、２０度の様々な組み合わせで傾けてキャリブレーションを行った。
【０２２５】
その結果が図２３の図表に示されており、この図表において列方向がチェッカーコードを傾け色々な角度にして撮影した回数（以下、「面数」と適宜に称する。）、セルの値はＸＹＺ方向に傾けた角度を示す。このとき、チェッカーボードが撮影範囲から多くはみ出してしまう傾きは避けた。
【０２２６】
次に、既知のカメラおよびプロジェクタ画像座標と３Ｄ座標の対応を用いて得られたキャリブレーションパラメータで３Ｄ座標を画像座標に変換した値が、それに対応する画像座標とどれだけの誤差があるかを検討した。また、プロジェクタ画像座標の求め方による違いも検討した。
【０２２７】
従来は、プロジェクタ画像座標として、投影した水平・垂直スリット境界線の交点を算出していたが、それらのうち幾つかはチェッカーパターン画像の外側にある。
【０２２８】
カメラ画像の歪み係数は、それを求める際に使ったチェッカー交点のある範囲では正確であるが、それ以外の範囲ではその精度は信頼できない。
【０２２９】
そのような箇所の画像座標を用いると、歪み補正後の画像座標が不正確になり、その結果プロジェクタキャリブレーションパラメータも不正確になる。
【０２３０】
そこで、チェッカー交点カメラ画像座標をカメラ歪み係数で補正した座標を求め、その補正座標に対応する空間コード値をプロジェクタ画像座標とした場合のパラメータ算出についても検討した（コード値を求める場合は、標本化・量子化誤差の補間を行う。）。
【０２３１】
具体的には、図２３に示す４つの傾き角度の組み合わせにおいて、
・カメラパラメータ、
・チェッカー交点位置を用い、コード値の算出に位相シフト空間コード化法を用いたプロジェクタ画像座標位置によるプロジェクタパラメータ、
・チェッカー交点位置を用い、コード値算出に従来の空間コード化法を用いたプロジェクタ画像座標位置によるプロジェクタパラメータ、
・スリット境界線の交点を用い、コード値の算出に従来の空間コード化法を用いたプロジェクタ画像座標位置によるプロジェクタパラメータ、
の４つのパラメータについて、パラメータの算出に用いた面数と、そのパラメータでの誤差（ピクセル単位での距離差）との関係を図２４（ａ）（ｂ）（ｃ）（ｄ）に示す。
【０２３２】
図２４（ａ）は傾き角度５度における面数に対するパラメータでの誤差を示しており、図２４（ｂ）は傾き角度１０度における面数に対するパラメータでの誤差を示しており、図２４（ｃ）は傾き角度１５度における面数に対するパラメータでの誤差を示しており、図２４（ｄ）は傾き角度２０度における面数に対するパラメータでの誤差を示している。
【０２３３】
また、図２５には、図２４（ａ）（ｂ）（ｃ）（ｄ）のそれぞれの傾き角度におけるパラメータでの誤差の平均値が示されている。
【０２３４】
なお、図２５においては、スリット境界線の交点を用い、コード値の算出に空間コード化法を用いたプロジェクタ画像座標位置によるプロジェクタパラメータの場合、誤差が極端に大きい場合はそのデータを省いている。
【０２３５】
図２５に示されるように、キャリブレーション時のチェッカーボードの傾き角度としては、１５度においてキャリブレーションパラメータの誤差が最も小さくなった。
【０２３６】
そして、プロジェクタ画像座標の求め方としては、プロジェクタキャリブレーション時に、プロジェクタ画像座標と平板上の３Ｄ座標の対応を得るために用いる画像座標は、図２４（ａ）（ｂ）（ｃ）（ｄ））に示すように、スリットパターン境界の交点を用いるより、カメラキャリブレーション時に用いたチェッカー交点の範囲内で選ぶ方が、安定して良い精度が得られた。
【０２３７】
また、位相シフト空間コード化法を用いた場合は、チェッカーボード傾き角度１５度でわずかに誤差が小さくなっていた。
【０２３８】
次に、上記した３次元形状測定の精度を左右する３点の要因がそれぞれどのように影響するかを検討した。
【０２３９】
チェッカーボードの各傾き角度において、それぞれのキャリブレーション時の位相シフト空間コード化法適用の有無、計測時の位相シフト空間コード化法適用の有無およびプロジェクタレンズ歪み補正の有無の条件を変えて、平板をカメラから５５０ｍｍ〜８５０ｍｍまで５０ｍｍ毎に移動して計測した時の誤差を測定した。
【０２４０】
図２６（ａ）（ｂ）（ｃ）（ｄ）には、その誤差の平均値が示されている。ここで、図２６（ａ）は傾き角度５度における各条件の誤差の平均値を示し、図２６（ｂ）は傾き角度１０における各条件の誤差の平均値を示し、図２６（ｃ）は傾き角度１５度における各条件の誤差の平均値を示し、図２６（ｄ）は傾き角度２０度における各条件の誤差の平均値を示している。
【０２４１】
なお、誤差の測定方法はとしては、まず、５５０ｍｍ〜８５０ｍｍの各位置で平板を３次元計測し、カメラ座標系でｙ＝０、ｘ＝−１００〜＋１００での平板表面のｚ座標を計算する。そして、各計測区間で同じｘｙカメラ座標でのｚ値の差を求める。
【０２４２】
次に、得られたｚ値の差が物体座標系での５０ｍｍとどれだけ誤差があるかを計算する。
【０２４３】
ここで、物体座標系とカメラ座標系のｚ軸は必ずしも平行ではないため、物体座標系でのｚ方向に５０ｍｍという移動量をカメラ座標系のｚ方向の値に換算してから比較する。換算にはカメラ外部パラメータを用いる。
【０２４４】
この結果から、キャリブレーション時のチェッカーボードの傾き角度の影響としては、１５度の傾き角度でキャリブレーションしたパラメータを用いて計測した結果が全体的に最も誤差が少なかった（図２６（ｃ）参照）。
【０２４５】
また、キャリブレーション時の位相シフト空間コード化法の適用の影響としては、図２６（ｃ）に示す１５度の傾き角度でキャリブレーションしたパラメータを用いた場合では、キャリブレーション時に位相シフト空間コード化法を用いた方が誤差が少ない（プロジェクタレンズ歪み補正ありの場合）。
【０２４６】
さらに、計測時の位相シフト空間コード化法の適用の影響としては、キャリブレーション時のチェッカーボードの傾き角度にかかわらず、全ての場合において得られたキャリブレーションパラメータを用いて計測しても、位相シフト空間コード化法を用いた方が誤差が少なくなっている。
【０２４７】
そして、計測時のプロジェクタレンズ歪み補正の影響としては、１５度の傾きでキャリブレーションしたパラメータを用いて計測した場合は、歪み補正をした方が誤差は少ない（図２６（ｃ）参照）。
【０２４８】
しかしながら、それ以外の角度の場合では歪み補正をすると誤差は大きくなっているが、これは、それらの角度で求められたキャリブレーションパラメータの精度が悪く、そのパラメータの１つである歪み係数も不正確となっていることが原因と考えられる。
【０２４９】
図２７には、図２６（ｃ）の平均化前の詳細データが示されているが、最も少ない誤差を得られた条件は、キャリブレーション時にチェッカーボードの傾き角度を１５度とし、キャリブレーション時および計測時に位相シフト空間コード化法を用いるようにして、プロジェクタレンズ歪み補正を行い、平板の位置は８００ｍｍ〜８５０ｍｍ間の場合において、誤差は０．０２％であった。
【０２５０】
次に、第２の実験の詳細について説明すると、まず、キャリブレーションパラメータ算出時の条件は以下の通りである。なお、第２の実験においては、位相シフト空間コード化法を適用するにあたっては、光透過領域１００ａが垂直方向に延長した２値化投影パターンを水平方向にシフトするとともに、光透過領域１００ａが水平方向に延長した２値化投影パターンを垂直方向へシフトするようにした。
【０２５１】
カメラ：ＡＲＴＲＡＹ  ＡＲＴＣＡＭ−１３０ＭＩ（画素数１２８０×１０２４ピクセル）
レンズ：焦点距離ｆ＝１２ｍｍ、絞り値Ｆ＝１．４、Ｍｅｇａ  Ｐｉｘｅｌ対応
プロジェクタ：三菱電機株式会社製ＬＶＰ−ＸＬ５（画素数１０２４×７６８ピクセル）
画像サイズ：６４０×４８０ピクセル（プロジェクタ画像のピクセル間隙間の影響を軽減するため、１２８０×１０２４ピクセルで一旦撮影し、２次元移動平均フィルタ適用後間引き縮小した。）
撮影パターン：３５ｍｍ四方のマゼンタ色市松模様を横８個、縦７個のピッチで配置したものを、カラーレーザープリンタで普通紙に印刷後、セラミック製タイルに貼り付けたものをチェッカーボードとして用いる。
【０２５２】
そして、チェッカーボードをカメラから６５０ｍｍの位置に設置し、チェッカーボードの傾き角度は、上記した第１の実験の結果に鑑みて、最も精度の良い結果が得られた１５度とした。なお、Ｚ軸周りに関しては、Ｚ軸周りに１５度傾けるとチェッカーパターンが画像からはみ出す量が多いため、Ｚ軸周りについては１０度の傾き角度とした。
【０２５３】
図２８に示す図表には、撮影面数とそのときのＸＹＺ傾き角度の対応関係を示している。この図２８に示す図表において、列方向が面数を示し、セルの値はＸＹＺ方向に傾けた角度を示す。
【０２５４】
次に、チェッカー交点のカメラ画像座標とプロジェクタ画像座標と既知の３Ｄ座標との対応を用い、得られたキャリブレーションパラメータでその３Ｄ座標を画像座標に変換した値が、対応するカメラ／プロジェクタ画像座標でのチェッカー交点検出座標とどれだけ誤差があるかを調べた。その結果が、図２９ならびに図３０に示されている。
【０２５５】
次に、キャリブレーション時の位相シフト空間コード化法適用の有無、計測時の位相シフト空間コード化法適用の有無およびプロジェクタレンズの歪み補正の有無の条件を変えて、平板をカメラから５５０ｍｍ〜８５０ｍｍの位置まで５０ｍｍ毎に移動して計測したときの誤差を測定した。
【０２５６】
誤差の測定方法としては、まず、５５０ｍｍ〜８５０ｍｍの各位置で平板を３次元計測し、カメラ座標系でｙ＝０、ｘ＝−１００〜＋１００での平板表面のｚ座標を計算する。そして、各計測区間で同じｘｙカメラ座標でのｚ値の差を求める。
【０２５７】
次に、得られたｚ値の差が物体座標系での５０ｍｍとどれだけ誤差があるかを計算する。
【０２５８】
ここで、物体座標系とカメラ座標系のｚ軸は必ずしも平行ではないため、物体座標系でのｚ方向に５０ｍｍという移動量をカメラ座標系のｚ方向の値に換算してから比較する。換算にはカメラ外部パラメータを用いる。
【０２５９】
その結果が図３１（ａ）（ｂ）（ｃ）、図３２（ａ）（ｂ）（ｃ）ならびに図３３（ａ）（ｂ）（ｃ）に示されている。
【０２６０】
ここで、図３１（ａ）は、キャリブレーションパラメータ算出時に１９面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示している。また、図３１（ｂ）は、キャリブレーションパラメータ算出時に１９面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示している。さらに、図３１（ｃ）は、図３１（ａ）（ｂ）の全計測区間の誤差の平均値である。
【０２６１】
次に、図３２（ａ）は、キャリブレーションパラメータ算出時に２０面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示している。また、図３２（ｂ）は、キャリブレーションパラメータ算出時に２０面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示している。さらに、図３２（ｃ）は、図３２（ａ）（ｂ）の全計測区間の誤差の平均値である。
【０２６２】
一方、図３３（ａ）は、キャリブレーションパラメータ算出時に２１面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示している。また、図３３（ｂ）は、キャリブレーションパラメータ算出時に２１面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示している。さらに、図３３（ｃ）は、図３３（ａ）（ｂ）の全計測区間の誤差の平均値である。
【０２６３】
これらの結果より、位相シフト空間コード化法を適用してキャリブレーションパラメータを求め、得られたパラメータを用いて計測を行う場合には、計測時に位相シフト空間コード化法を適用すると、適用していない場合に比べ誤差は少なくなっている。
【０２６４】
さらに、計測時にプロジェクタレンズ歪み補正を行うことによっても誤差は少なくなっている（図３１（ｃ）、図３２（ｃ）、図３３（ｃ）の黒色棒グラフ参照）。
【０２６５】
上記したように、キャリブレーション時に位相シフト空間コード化法を用いることによって得られたパラメータを用い、計測時において位相シフト空間コード化法を適用する場合、プロジェクタレンズ歪み補正を行うと誤差が少なくなっている。
【０２６６】
これは、レンズ歪み係数は正確に求められ、適切に歪みを補正できていることを示している。さらに、歪み係数の計算に必要なプロジェクタレンズによる画像の歪み具合を、位相シフト空間コード化法によって従来技術の空間コード化法よりも正確にとられることができていると言える。
【０２６７】
即ち、計測時だけでなく、キャリブレーション時にも位相シフト空間コード化法を用いることによって、より精度の高い３次元形状の測定が可能となる。
【産業上の利用可能性】
【０２６８】
本発明は、工業デザインでの形状取得、人体の形状取得あるいは建築物の形状取得などに利用することができる。
【図面の簡単な説明】
【０２６９】
【図１】図１（ａ）（ｂ）は、ピンホールカメラモデルにおける画像座標系とカメラ座標系の関係を表した説明図である。
【図２】図２は、カメラキャリブレーションの処理手順を説明するためのフローチャートである。
【図３】図３は、交点座標をピクセル単位で求める場合の座標の中心としての円形領域Ｒを示す説明図である。
【図４】図４は、カメラ座標系とプロジェクタ座標系と物体座標系との位置関係を示す説明図である。
【図５】図５（ａ）（ｂ）は、プロジェクタキャリブレーションにおける空間コード画像を示す説明図である。
【図６】図６は、パターン境界検出のためのパターンを示す説明図である。
【図７】図７は、パターン交点検出のための交点群を示す説明図である。
【図８】図８は、プロジェクタ画像座標上の交点とカメラキャリブレーション時に用いたチェッカー交点座標との関係を示す説明図である。
【図９】図９は、本発明による３次元形状測定装置におけるキャリブレーション方法を実施する３次元形状測定装置の概略構成説明図である。
【図１０】図１０（ａ）（ｂ）（ｃ）（ｄ）は、各種の２値化投影パターンの例を示す説明図である。
【図１１】図１１は、図９に示す３次元形状測定装置の制御システムのブロック構成説明図である。
【図１２】図１２は、図９に示す３次元形状測定装置の動作を示すフローチャートである。
【図１３】図１３（ａ）（ｂ）（ｃ）は、図９に示す３次元形状測定装置の動作原理を示す説明図である。
【図１４】図１４は、図９に示す３次元形状測定装置の動作原理を示す説明図である。
【図１５】図１５は、図９に示す３次元形状測定装置の動作原理を示す説明図である。
【図１６】図１６は、グレイコードで表現した２値化投影パターンを使用し、位相シフト空間コード画像を公知の表計算ソフトウェアを用いて処理した結果を示す図表である。
【図１７】図１７は、Ｂｉｔ演算の演算内容を示すものである。
【図１８】図１８は、Ｂｉｔ演算によりグレイコードからバイナリコードに変換された位相シフト画像とバイナリコードから生成された空間コード画像を合成した位相シフト空間コード画像を示すグラフである。
【図１９】図１９（ａ）（ｂ）（ｃ）は、３画素を３分割することにより垂直方向にシフトする位相シフト空間コード化法の説明図である。
【図２０】図２０は、垂直３画素分の空間コードを分割し、グレイコードで表現した２値化投影パターンを使用し、位相シフト空間コード画像を公知の表計算ソフトウェアを用いることなく処理した結果を示す図表である。
【図２１】図２１は、オーバーサンプリング２値画像の生成の手法の説明図である。
【図２２】図２２は、水平４画素分の空間コードを分割し、グレイコードで表現した２値化投影パターンを使用し、位相シフト空間コード画像を公知の表計算ソフトウェアを用いることなく処理した結果を示す図表である。
【図２３】図２３は、チェッカーボードの傾き角度を表した図表である。
【図２４】図２４（ａ）（ｂ）（ｃ）（ｄ）は、４つのパラメータについてパラメータの算出に用いた面数とそのパラメータでの誤差（ピクセル単位での距離差）との関係を示すグラフであり、図２４（ａ）は傾き角度５度における面数に対するパラメータでの誤差を示し、図２４（ｂ）は傾き角度１０度における面数に対するパラメータでの誤差を示し、  図２４（ｃ）は傾き角度１５度における面数に対するパラメータでの誤差を示し、  図２４（ｄ）は傾き角度２０度における面数に対するパラメータでの誤差を示している。
【図２５】図２５は、図２４（ａ）（ｂ）（ｃ）（ｄ）のそれぞれの傾き角度におけるパラメータでの誤差の平均値を示すグラフである。
【図２６】図２６（ａ）（ｂ）（ｃ）（ｄ）は、チェッカーボードの各傾き角度において各条件での誤差の平均値を示すグラフであり、図２６（ａ）は傾き角度５度における各条件の誤差の平均値を示し、図２６（ｂ）は傾き角度１０度における各条件の誤差の平均値を示し、図２６（ｃ）は傾き角度１５度における各条件の誤差の平均値を示し、図２６（ｄ）は傾き角度２０度における各条件の誤差の平均値を示している。
【図２７】図２７は、図２６（ｃ）の平均化前の詳細データを示すグラフである。
【図２８】図２８は、撮影面数とその時のＸＹＺ軸周りの傾き角度の対応を示した図表である。
【図２９】図２９は、各面数に対するキャリブレーションパラメータの誤差を示す図表である。
【図３０】図３０は、図２９に示した図表をグラフで示したものである。
【図３１】図３１（ａ）（ｂ）（ｃ）は、キャリブレーションパラメータ算出時に１９面を使用し、位相シフト空間コード化法適用の有無による各計測区間に対する誤差を示すグラフであり、図３１（ａ）は、キャリブレーションパラメータ算出時に１９面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示し、  図３１（ｂ）は、キャリブレーションパラメータ算出時に１９面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示し、図３１（ｃ）は、図３１（ａ）（ｂ）の全計測区間の誤差の平均値を示している。
【図３２】図３２（ａ）（ｂ）（ｃ）は、キャリブレーションパラメータ算出時に２０面を使用し、位相シフト空間コード化法適用の有無による各計測区間に対する誤差を示すグラフであり、図３２（ａ）は、キャリブレーションパラメータ算出時に２０面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示し、図３２（ｂ）は、キャリブレーションパラメータ算出時に２０面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示し、図３２（ｃ）は、図３２（ａ）（ｂ）の全計測区間の誤差の平均値を示している。
【図３３】図３３は、キャリブレーションパラメータ算出時に２１面を使用し、位相シフト空間コード化法適用の有無による各計測区間に対する誤差を示すグラフであり、図３３（ａ）は、キャリブレーションパラメータ算出時に２１面を使用し、位相シフト空間コード化法を適用しない場合の各計測区間に対する誤差変化を示し、図３３（ｂ）は、キャリブレーションパラメータ算出時に２１面を使用し、位相シフト空間コード化法を適用した場合の各計測区間に対する誤差変化を示し、図３３（ｃ）は、図３３（ａ）（ｂ）の全計測区間の誤差の平均値を示している。
【符号の説明】
【０２７０】
１０      ３次元形状測定装置
１２      コンピュータ
１２ａ    バス
１２ｂ    中央処理装置（ＣＰＵ）
１２ｃ    リードオンリメモリ（ＲＯＭ）
１２ｄ    ランダムアクセスメモリ（ＲＡＭ）
１２ｅ    入力装置
１２ｆ    表示装置
１４      測定対象物
１６      プロジェクタ
１８      カメラ
２０      ２値化投影パターン投影手段
２０ａ    ２値化投影パターン生成部
２０ｂ    ２値化投影パターン投影制御部
２２      画像入力手段
２４      画像処理手段
２４ａ    空間コード画像生成手段
２４ｂ    位相シフト画像生成手段
２４ｃ    位相シフト空間コード画像生成手段
２４ｄ    ３次元形状情報取得手段
【図１】
2007309660.tif 000028
【図２】
2007309660.tif 000029
【図４】
2007309660.tif 000030
【図９】
2007309660.tif 000031
【図１０】
2007309660.tif 000032
【図１１】
2007309660.tif 000033
【図１２】
2007309660.tif 000034
【図１３】
2007309660.tif 000035
【図１４】
2007309660.tif 000036
【図１５】
2007309660.tif 000037
【図１６】
2007309660.tif 000038
【図１７】
2007309660.tif 000039
【図１８】
2007309660.tif 000040
【図１９】
2007309660.tif 000041
【図２１】
2007309660.tif 000042
【図２３】
2007309660.tif 000043
【図２４】
2007309660.tif 000044
【図２５】
2007309660.tif 000045
【図２６】
2007309660.tif 000046
【図２７】
2007309660.tif 000047
【図２８】
2007309660.tif 000048
【図３０】
2007309660.tif 000049
【図３１】
2007309660.tif 000050
【図３２】
2007309660.tif 000051
【図３３】
2007309660.tif 000052
【図３】
2007309660.tif 000053
【図５】
2007309660.tif 000054
【図６】
2007309660.tif 000055
【図７】
2007309660.tif 000056
【図８】
2007309660.tif 000057
【図２０】
2007309660.tif 000058
【図２２】
2007309660.tif 000059
【図２９】
2007309660.tif 000060