立体形状計測装置および立体形状計測方法
【課題】立体形状を簡易に計測できる立体形状計測装置を提供する。
【解決手段】計測装置500は、六方状の格子を傾けることにより構成された格子550と、プロセッサ610と、画像センサ620と、光源640とを備える。プロセッサ610は、画像センサ620から送られるデータに基づいて被写体の画像を認識し、被写体の表面に形成された格子縞の座標値を算出し、六方格子を構成する3つの格子縞に対して合致法を適用することによりそれぞれの格子縞に対応する縞次数を探索し、探索結果に基づいて被写体のZ軸方向の値(すなわち高さ)を算出する。
【解決手段】計測装置500は、六方状の格子を傾けることにより構成された格子550と、プロセッサ610と、画像センサ620と、光源640とを備える。プロセッサ610は、画像センサ620から送られるデータに基づいて被写体の画像を認識し、被写体の表面に形成された格子縞の座標値を算出し、六方格子を構成する3つの格子縞に対して合致法を適用することによりそれぞれの格子縞に対応する縞次数を探索し、探索結果に基づいて被写体のZ軸方向の値(すなわち高さ)を算出する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、形状を計測する技術に関し、より特定的には、光の投影により生じる格子縞の画像に基づいて立体形状を計測する技術に関する。
【背景技術】
【0002】
被計測物の立体形状を計測するための技術として、格子を通して光を被計測物に照射し、被計測物の表面に投影される縞を撮影して、その撮影画像を解析して立体形状の計測値を算出する技術が知られている。
【0003】
たとえば、特開2002−366931号公報(特許文献1)は、被計測者の頭部全体について非接触の3次元形状計測を高精度に行なうための技術を開示している。この技術は、正弦波格子位相シフト法を用いており、複数の照射部より正弦波状の明暗分布を持つパターンを照射しながら位相シフトさせ、その位相シフトに同期させて、複数の撮影部で撮影したパターン画像をもとに照射光の位相値を計算し、これら撮影部の相対的な位置関係から、撮像画像を1つの統一された座標系で統合し、頭部全体の高精度な三次元形状を得る、というものである([要約]参照)。
【0004】
また、被計測物の格子の位置の移動を検出する他の技術として、フーリエ変換法が知られている(たとえば、非特許文献1参照)。
【特許文献1】特開2002−366931号公報
【非特許文献1】Mitsuo Takeda, Hideki Ina and Seiji Kobayashi, J. Opt. Soc. Am. Vol.72, No. 1 (1982) pp156-160.
【発明の開示】
【発明が解決しようとする課題】
【0005】
位相シフト方法は、格子の位置を少しずつずらして複数回の撮影を行ない、その撮影結果に基づいて格子1ピッチ以内の位置のずれを計算する方法である。この方法によると、格子の位置をずらすこと(以下、「位置ずらし」ともいう。)が、少なくとも3回必要とされ、通常は、計算の迅速化の観点から、4回の位置ずらしが行なわれている。そのため、撮影に時間を要し、立体形状の計測値を算出するまでの時間も長くなるという問題点がある。
【0006】
一方、上記のフーリエ変換法は、一度の撮影から、フーリエ変換を行ない、その1次スペクトルを取り出し、逆フーリエ変換を行ない、格子の位置ずれを計算する方法である。その利点は、1回の撮影結果によって格子の位置ずれを計算することができるということである。しかしながら、1次スペクトルを取り出すため、空間分解能が低下するという問題点がある。
【0007】
ところで、計測対象物によっては、表面の凹凸の程度が大きいものもある。位相シフト法およびフーリエ変換法のいずれにおいても、そのような計測対象物を撮影した場合には、格子のずれが格子の1ピッチ以上になる場合がある。しかしながら、位相シフト法およびフーリエ変換法のいずれも、1ピッチ以内のずれ(以下「端数分」という)のみを計測することができる。そのため、これらの方法を用いる場合には、ずれのピッチの整数倍の成分(以下「縞次数」という。)を算出する必要がある。
【0008】
縞次数を算出する必要のない方法として、ピッチを大きくするということも考えられる。この場合、1ピッチ以上のずれはなくなるが、測定精度が低下するという問題点がある。また、フーリエ変換法によると、空間分解能も低下するという問題点もある。
【0009】
縞次数を算出する方法として、異なるピッチの格子を順次投影して、それぞれのピッチに対する端数分を測定して、それから縞次数を推定する方法がある。しかし、この場合に用いられる明確なアルゴリズムは存在しない。
【0010】
本発明は、上述のような問題点を解決するためになされたものであって、その目的は、立体形状を短時間で計測できる立体形状計測装置を提供することである。他の目的は、立体形状の計測精度が向上する立体形状計測装置を提供することである。他の目的は、立体形状を低コストで計測できる立体形状計測装置を提供することである。
【0011】
本発明の他の局面における目的は、立体形状を短時間で計測できる立体形状計測方法を提供することである。他の目的は、立体形状の計測精度が向上する立体形状計測方法を提供することである。他の目的は、立体形状を低コストで計測できる立体形状計測方法を提供することである。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、この発明のある局面に従う立体形状計測装置は、間隔が異なる複数のピッチを有する格子と、格子を通して光を発する光源と、立体形状計測装置に対する命令の入力を受ける入力手段と、被写体を撮影して画像データを出力する撮像手段とを備える。撮像手段は、複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されている。この立体形状記憶装置は、画像データを格納する記憶手段と、画像データに基づいて被写体の形状データを算出する演算手段と、算出結果を出力する出力手段とを備える。撮像手段は、複数のピッチを有する格子を透過した光によって被写体の表面に形成された投影縞を1回撮影する。演算手段は、1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出し、縞次数に基づいて被写体の形状データを算出する。
【0013】
好ましくは、撮像手段は、マトリクス状に配置された複数の撮像素子を含む。複数のピッチが異なる間隔となるように、格子は、撮像手段と光源とを結ぶ方向と、格子の底辺が交差するように、構成されている。
【0014】
好ましくは、複数のピッチは、3つのピッチを含む。
好ましくは、格子は六方格子を含む。
【0015】
好ましくは、演算手段は、次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出し、算出する処理を各撮像素子に対して行うことにより形状データを算出する。
【0016】
【数1】
【0017】
ただし、
【0018】
【数2】
【0019】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【0020】
【数3】
【0021】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【0022】
【数4】
【0023】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【0024】
【数5】
【0025】
wk:k番目の格子に対する重み係数。
【0026】
【数6】
【0027】
好ましくは、出力手段は、結果を表示する表示手段と、結果を表わすデータを出力するデータ出力インターフェイスとのいずれかを含む。
【0028】
この発明の他の局面に従うと、撮像装置が立体形状を計測する方法が提供される。撮像装置は、間隔が異なる複数のピッチを有する格子と、格子を通して光を発する光源と、撮像装置に対する命令の入力を受ける入力装置と、被写体を撮影して画像データを出力するカメラと、メモリと、プロセッサとを備えている。カメラは、複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されている。この方法は、カメラが、複数のピッチを有する格子を透過した光によって被写体の表面に形成された投影縞を1回撮影するステップと、プロセッサが、1回の撮影により生成された画像データをメモリに格納する記憶ステップと、プロセッサが、画像データに基づいて被写体の形状データを算出する演算ステップと、プロセッサが、算出結果を出力する出力ステップとを備える。演算ステップは、1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出するステップと、縞次数に基づいて被写体の形状データを算出するステップとを含む。
【発明の効果】
【0029】
本発明によると、立体形状を短時間で、精度良く、また低コストで計測することができる。
【発明を実施するための最良の形態】
【0030】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0031】
最初に、図1を参照して、物体の立体形状を計測する手法について説明する。図1は、格子投影法による立体形状計測法の概略を表わす図である。
【0032】
物体100の立体形状を計測するために、光源110と画像センサ120とが設置される。光源110は、物体100に対して光を投影する。画像センサ120は被写体(たとえば光が投影された物体100)を撮影して画像データを出力する。光源110の投影中心Aと、画像センサ120の撮像中心Bとの間隔は、距離aである。光源110から物体100上の点Pに至る光線の投影方向は、光源110(点A)と撮像中心Bとを結ぶ直線ABに垂直な面に対して角度dの方向である。この方向は、光源110を固定していても、物体100上の点Pの位置によって変化する。また、物体100上の点Pと画像センサ120とを結ぶ直線は、当該垂直な面に対して、角度eの方向に当たる。この角度も、画像センサ120上における点Pの位置に対応する像の位置の変化に従って変化する。このような、物体100上の位置によって変化する2つの角度dおよび角度eを知ることによって、次に述べる式により、直線ABから物体100上の任意の点Pまでの距離zが計算される。
【0033】
ここで、座標軸として、撮像中心Bを基準に、BA方向をx座標軸、撮像中心Bから物体100に向かう方向をz座標軸とし、x−z座表面に垂直方向をy座標軸とする。この場合、直線ABから物体100上の点Pまでの距離z0と、距離aと、角度d、角度eとの関係は、「z0=a/(tand+tane)」となる。
【0034】
角度eの値は、画像センサ120の画素の位置から幾何学的に計算可能である。また、画像センサ120のうちの任意の画素に映る格子縞が、何縞分だけ位置を移動したかを判別できれば、角度dの値が算出される。その結果、距離aが既知であれば、距離z0が計測できる。このような計算を、画像センサ120によって撮影された画面上の全ての点について行なうと、z0(x0,y0)が計算でき、物体100の立体形状が分かることになる。
【0035】
次に、図2および図3を参照して、本発明の実施の形態に係る六方格子について説明する。図2は、六方格子の構成を表わす図である。六方格子とは、2次元の最密構造の格子である。より具体的には、六方格子は、六角形200,200−1,200−2,200−3,200−4,200−5,200−6の各中心点を結ぶことによって構成される。六角形200の中心点210と、六角形200−1の中心点210−1とを結ぶ線と、中心点210と六角形200−2の中心点210−2とを結ぶ線とは、60度の角度を形成している。他の六角形についても、同様に60度の角度が形成される。
【0036】
図3は、六方格子に近い格子を角度ξだけ傾けた状態で構成される格子300を表わす図である。角度ξだけ傾けることにより、ピッチdを有する格子のピッチから、ピッチdとは異なるものとすることができる。より詳しくは、x軸方向(たとえば水平方向)に対して角度ξだけ傾けられた格子300は、x軸方向の間隔px1を有するピッチ310と、間隔px2を有するピッチ320と、間隔px3を有するピッチ330とを有する。また、x軸方向に垂直のy軸方向については、間隔py1を有するピッチ312と、間隔py2を有するピッチ322と、間隔py3を有するピッチ332とを有する。
【0037】
本実施の形態においては、図3に示すような六方格子に近い格子を用いて縞次数を算出する方法として、合致法を使用する。合致法は、たとえば以下の参考文献1−3に記載されている。しかし、参考文献1や2に示されている合致法のアルゴリズムは立体形状計測を目的としたものであるが、本願発明に係るアルゴリズムとは、基本的考え方が異なる。一方、参考文献3のアルゴリズムの基本的考え方は、本願発明に係る実施の形態に用いられるものである。しかし、参考文献3に記載の技術は、立体形状計測を目的としたものではなく、干渉計測に応用することを目的としたものである。本願発明は、参考文献3に記載の考え方を六方格子を用いる立体形状計測に応用した。それによって、上に述べたような複雑な数式が導出された。
参考文献1) 格内敏 他、「2ピッチ格子投影による3次元形状計測」、精密工学会誌、58、pp133−138(1992)
参考文献2) Mitsuo Takeda et al. "Frequency-multiplex Fourier-transform profilometry": a single-shot three-dimensional shape measurement of objects with large height discontinuities and/or surface isolations, Vol.36, No.22, APPLIED OPTICS (1997), PP5347-5354.
参考文献3) Koichi IWATA et al., "Consideration of Fractional Fringe Method on the Basis of the Least Squares Method", OPTICAL REVIEW, Vol. 10, No. 4 (2003), pp202-205.
図4を参照して、本実施の形態における合致法のアルゴリズムについて説明する。図4は、光源400と、カメラ中心410と、基準面420と、カメラ面430と、格子300との位置関係を表わす図である。光源400とカメラ中心410と格子300とは、立体形状を計測するための装置に含まれている。
【0038】
基準面420は、光源400からの光が格子300の格子面に垂直方向に投影された場合に、その方向に垂直な面であって、光が投影される被写体が含まれる平面をいう。基準面420は、たとえば、実際の撮影の局面においては壁、スクリーン等に相当する。したがって、格子300による格子縞は、この基準面に投影されることになる。
【0039】
カメラ面430は、カメラ中心410(すなわちレンズの中心)と撮像素子(図示しない)とを結ぶ仮想線に垂直な仮想平面である。光源400とカメラとの位置関係に応じて、基準面420とカメラ面430との位置関係も規定される。
【0040】
ここで、3次元の座標空間を、基準面420を用いて以下のように定義する。まず、カメラ中心410を通る光軸が基準面420と交わる点が、原点O(0,0,0)として規定される。基準面に垂直な方向にz軸を、カメラ中心410と光源400を結ぶ直線と、z軸を含む平面と基準面との交線をx軸とし、x軸とz軸とに垂直な方向にy軸をとる。
【0041】
光源400の座標Sを、S(xS,yS,zS)と表わす。カメラ中心410の座標Cを、C(xC,yC,zC)と表わす。上記の座標の取り方では、yS=0、yC=0となるが、設定誤差を考慮して、yS、yCと表わしている。今、物体上の1点をP(xp,yp,zp)とし、光源400と点Pとを結ぶ直線と基準面との交点をQ(xq,yq,0)とし、カメラ中心410と基準面420との交点をR(xr,yr,0)とする。
【0042】
カメラ中心410と点Rとを結ぶ線とカメラ面430との交点Tの座標を、(X,Y,Z)と表わす。これは、カメラの画面上の座標と関係した座標である。
【0043】
カメラ面430と基準面420とは、角度αだけ交差している。この角度αは、光源400とカメラ中心410との位置関係と、光源400からの投影方向およびカメラの撮影方向によって規定される。
【0044】
格子300は、基準面に平行に置くものとする。また、図3に示されるように、x軸に対して角度ξだけ傾けられた状態で構成されている。そのため、格子300を透過した光は、基準面420において、角度ξだけ傾いた像を投影する。
【0045】
[合致法のアルゴリズム]
合致法という言葉は以前から使用されていたが、合致法を行なうためのアルゴリズムは整備されていなかった。本発明の実施の形態においては、上記の参考文献3に記載の内容を拡張した合致法を用いている。具体的には、カメラおよび光源を有する計測装置と、被写体とが近接している場合に適用可能な合致法のアルゴリズムを見い出した。このアルゴリズムは、以下の式(1)から式(6)に対応する。なお、3次元の座標は、図4に示す座標を用いる。
【0046】
格子の位置ずれをΔx、Δyと表わし、格子のずれΔφkをピッチpx、pyを用いて表わすと、次式(1)のようになる。
【0047】
【数7】
【0048】
式(1)は格子のずれΔφkの定義式である。k=1,2,3は、3つの格子に対応する。
【0049】
この場合、フーリエ変換法によると、格子のずれΔφkは、次式(2)における格子の1ピッチ以内のずれεkである。
【0050】
【数8】
【0051】
ただし、
nk:Δφkの整数部分(縞次数)、
εk:Δφkの端数部分(格子の位置ずれから求められる。)である。
【0052】
フーリエ変換法でεkの値が求められるのは、既に知られている方法である。しかし、nkが分からないと、高さzkが分からない。縞次数nkを求めて、Δφを導出し、被写体の基準面からの高さzkを算出するのが本発明の実施の形態に係る合致法である。
【0053】
より詳しくは、以下のとおりである。図4に示すように、測定の基準面420上に、x−y座標軸を規定し、基準面420から垂直方向にz座標を規定する。x方向は、計測装置(たとえば、演算機能を有するカメラ)の画面の横軸方向に一致させる。基準面420は、被写体である立体形状の高さz=0の面である。この基準面420に平面板を置いて、立体形状を算出するためのプログラムを調整する。この座標空間において、上述のとおり、光源400の座標は、S(xs,ys,zs)であり、カメラ中心410の座標は、C(xC,yC,zC)である。この場合、縞次数nkは、次式(3),(4)から算出される。ここで、それぞれの格子に対する値であることを明確にするため、zに添え字(suffix)kを付ける。
【0054】
【数9】
【0055】
ただし、
【0056】
【数10】
【0057】
ここで、
x:被写体を通る基準面において、前記光源と前記撮影手段の中心を結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値、である。
【0058】
それぞれのピッチに対する端数部εkの測定値とnkの推定値を代入したとき、次の式にこれを代入し、Vの値を最小にする縞次数nkを選んで、物体上の1点のz座標を算出するというのがこの合致法である。
【0059】
【数11】
【0060】
上記の式(5)により得られた縞次数nkを用いて、高さzを次式(6)を用いて算出する。
【0061】
【数12】
【0062】
ここで、wkは、k番目の格子に対する重みである。どの格子を重要視するのかの目安である。具体的には、wkの値は、たとえば、
【0063】
【数13】
【0064】
【数14】
【0065】
のように決める。これは、x方向のピッチPxkの小さい格子の重みを大きくしている。
上記で得られたzを用いて、物体上の一点のx、y座標(xp,yp)は、次式(9)のように表わされる。
【0066】
【数15】
【0067】
これによって、物体上の一点の座標(xp,yp,zp)が得られる。これを画像の各ピクセルに対して算出すると、物体の形状zp=f(xp,yp)が得られる。
【0068】
なお、当該合致法の適用は、六方格子に限らず、異なるピッチを有する格子が用いられる場合に広く適用できる。また、上記の手法は、位相シフト法にも適用することができる。
【0069】
なお、上記の算出を行うに際しては、まず基準面上に実際の平面(基準板)を置き、それに対してΔφskを求め、各画面上の点に対して、その値をメモリに保存しておく、次に、測定する物体を置いて、それに対してΔφ0kを求め、その差Δφkを求めて、上記の計算をする。これによって、光学系の設定誤差が補正される。実際上は、測定の度にΔφskを求める必要はない。基準板についてのΔφskの測定を行って、それをメモリに保存しておけば、光源と格子とカメラの位置に変化が無い限り、同じデータを用いて、物体の立体形状を測定することができる。それ故、基準板は、測定対象となる物体の測定範囲の中央位置に置くことができる。
【0070】
[実施例]
図5を参照して、本発明の実施の形態に係る計測装置500の構成について説明する。図5は、計測装置500の外観を表わす図である。計測装置500は、筐体510と、調整ボタン520と、撮影ボタン530と、ファインダ540と、格子550と、レンズ560と、カードリーダ/ライタ570と、インターフェイス580とを備える。計測装置500は、たとえばデジタルカメラ程度の大きさとして実現することができる。
【0071】
計測装置500の使用者は、たとえば計測装置500をカメラのように片手でまたは両手で把持して調整ボタン520および撮影ボタン530を操作する。より具体的には、調整ボタン520が操作されると、計測装置500と被写体との間の距離が計測され、計測装置500のキャリブレーションが実現される。一方、撮影ボタン530が操作されると、格子550の奥に配置されている光源から光が発せられる。格子550を介して投影された映像は、レンズ560を介して撮影される。
【0072】
図6は、計測装置500のハードウエア構成を表わすブロック図である。計測装置500は、図5に示される構成に加えて、プロセッサ610と、画像センサ620と、RAM(Random Access Memory)630と、光源640と、フラッシュメモリ650と、ROM(Read Only Memory)660と、ディスプレイ670とを備える。カードリーダ/ライタ570には、メモリカード680が装着可能である。
【0073】
調整ボタン520は、計測装置500に対する命令の入力を受け付けて、当該命令に応じた信号をプロセッサ610に送出する。プロセッサ610は、その信号に基づいて予め規定された調整処理を実行する。
【0074】
撮影ボタン530は、計測装置500に対する撮影命令の入力を受け付けて、その入力に応じた信号をプロセッサ610に送出する。プロセッサ610は、その信号に応答して、予め定められた撮影動作を実行する。より詳しくは、プロセッサ610は、光を発する命令を光源640に送出する。また、プロセッサ610は、画像センサ620から出力されるデータの入力を受け付ける。このデータは、レンズ560によって集光された光を電気信号に変換した後の画像データに対応する。プロセッサ610は、RAM630に確保したメモリ領域に、そのデータを書き込む。
【0075】
ファインダ540は、図5に示されるように、格子550の近傍に構成されている。ファインダ540は、計測装置500の前方から後方まで貫通するように空孔部分が形成されており、計測装置500の使用者は、このファインダ540を介して被写体を視認することができる。なお、ファインダ540と格子550との位置関係は、図5に示されるものに限られず、たとえばファインダ540と格子550とが水平方向に並べて配置される構成であってもよい。
【0076】
格子550は、たとえば図3に示されるような傾きを有する部材によって構成される。すなわち、格子550は、少なくとも3つの異なるピッチを有することになる。格子550の背後に配置されている光源640から光が発せられると、その光は格子550を透過し、格子縞が被写体の表面に生じる。
【0077】
格子550は、ある局面において、樹脂により構成される。格子550は、筐体510と一体として成型されてもよく、また、他の局面において、筐体510とは別個の部材として構成されてもよい。
【0078】
レンズ560は、ある局面において、コリメートレンズとして実現される。計測装置500の被写体に現れた像の反射光は、レンズ560を介して画像センサ620に入射する。画像センサ620は、その光を画像データに変換し、変換により生成されたデータをプロセッサ610に送出する。
【0079】
ある局面において、プロセッサ610は、CPU(Central Processing Unit)あるいはMPU(Micro Processing Unit)その他の処理デバイスとして構成される。他の局面において、プロセッサ610は、FPGA(Field Programmable Gate Array)としても実現される。
【0080】
フラッシュメモリ650は、プロセッサ610により生成されたデータあるいは画像センサ620から送られたデータを不揮発的に格納する。あるいはフラッシュメモリ650の代わりにハードディスク装置その他のデータを不揮発的に保持できる記憶装置が使用されてもよい。
【0081】
ROM660は、計測装置500に予め規定された動作を実行させるためのプログラム、データを格納している。
【0082】
RAM630は、プロセッサ610により生成されたデータを一時的に(揮発的に)格納する。ディスプレイ670は、画像センサ620により取得された画像、計測装置500の設定値、設定メニューなどを表示する。ディスプレイ670は、ある局面において、LCD(Liquid Crystal Display)装置、有機EL(Electro Luminescence)などの表示デバイスにより構成される。
【0083】
光源640は、たとえばLED(Light Emitting Diode)その他の発光素子により実現される。カードリーダ/ライタ570は、メモリカード680に対してデータを書き込み、あるいはメモリカード680に格納されているデータを読み出し、プロセッサ610に送出する。
【0084】
インターフェイス580は、通信ケーブル(図示しない)の接続を受け付けて、計測装置500と他の情報処理装置との間のデータの通信を実現する。インターフェイス580による通信の態様は特に限られない。
【0085】
次に、図7を参照して、計測装置500を実現するプロセッサ610について説明する。図7は、プロセッサ610によって実現される機能の構成を表わすブロック図である。プロセッサ610は、画像認識部710と、距離計測部720と、座標値算出部730と、抽出部740と、縞次数探索部750と、高さ算出部760とを含む。これらの機能は、プロセッサ610がROM660に格納されているプログラムを実行することにより実現される。
【0086】
画像認識部710は、画像センサ620から送られるデータに基づいて被写体の画像を認識するように構成されている。
【0087】
距離計側部720は、その認識された画像に基づいて計測装置500と被写体までの距離を計測するように構成されている。
【0088】
座標値算出部730は、被写体の表面に形成された格子縞と、距離計測部520によって計測された距離とに基づいて当該被写体の表面上の座標値を算出するように構成されている。
【0089】
抽出部740は、画像認識部710から送られるデータに基づいて投影縞を抽出するように構成されている。
【0090】
縞次数探索部750は、抽出部740によって抽出された投影縞に基づいて合致法を適用することにより縞次数を探索するように構成されている。
【0091】
高さ算出部760は、縞次数探索部750の探索結果に基づいて当該被写体のZ軸方向の値(すなわち高さ)を算出する。高さ算出部760は、その結果を計測結果としてプロセッサ610の外部に出力するように構成されている。
【0092】
次に、図8を参照して、本実施の形態に係る計測装置500のデータ構造について説明する。図8は、ROM660におけるデータの格納の一態様を概念的に表わす図である。ROM660は、データを格納するための複数のメモリ領域を含む。
【0093】
カレンダー情報は、メモリ領域810に格納されている。カレンダー情報は、たとえば一般のカメラが有する情報と同様に、日付情報その他の撮影日を特定するための情報をいう。
【0094】
計測装置500が有する格子550の設計情報は、メモリ領域820に格納されている。当該設計情報は、たとえばX軸方向のピッチ(Px1,Px2,Px3)と、Y軸方向のピッチ(Py1,Py2,Py3)を含む。
【0095】
六方格子550のピッチの間隔dは、メモリ領域830に格納されている。ここでいうピッチは六方格子を角度ξ傾ける前の状態をいう。その角度ξを表わすデータは、メモリ領域840に格納されている。
【0096】
また、基準板に対する位相値Δφskは、プロセッサ610によって算出され、フラッシュメモリ650に格納されている。
【0097】
計測装置500が、撮影により取得した投影データに基づいて高さ情報を得るための計算プログラムは、メモリ領域850に格納されている。計測装置500の基本的な動作を制御するためのファームウェアは、メモリ領域860に格納されている。ROM660に格納されるデータは、計測装置500の製造時に決定される。したがって、これらのデータは計測装置500の製造時にROM660に記録されるが、他のタイミングですなわち、計測装置500が製造された後に書き換え可能であってもよい。この場合、ROM660は、EEPROM(Electronically Erasable Programmable Read-Only Memory)などにより実現される。
【0098】
図9は、RAM630におけるデータの格納の一態様を概念的に表わす図である。RAM630は、プロセッサ610により処理の実行時に、プロセッサ610による命令に従ってって、データを格納するためのメモリ領域を1つ以上確保する。たとえば、光源640の座標値は、メモリ領域910に格納されている。また、カメラ中心の座標値(xc,yc,zc)は、メモリ領域920に格納されている。プロセッサ610は、ROM660あるいはフラッシュメモリ650もしくはメモリカード680から処理に必要なデータを読み出し、その読み出したデータをRAM630に確保した領域に書き込む。他の局面において、プロセッサ610は、RAM630に書き込まれているデータを読み出し、保存が指示されたメモリ領域にデータを転送する。
【0099】
図10および図11を参照して、本実施の形態に係る計測装置500の使用態様について説明する。図10は、壁の一部100に設けられた拡散平面板1010を用いて計測装置500を較正するための状態を表わす図である。
【0100】
すなわち図10(A)を参照して、壁100の特定の場所1010に、拡散平面板1010を設ける。拡散平面板1010は、計測装置500から発せられる光を反射させる。拡散平面板1010の高さはたとえば立体計測装置500が把持される高さと同じであるのが好ましい。なお、拡散平面板1010のみが較正に使用されるわけではなく、光を一様に反射することができる部材であればよい。
【0101】
その状態で、計測装置500は拡散平面板1010を撮影し、計測装置500と壁1000との距離を算出する。距離の算出態様は特に限られない。これにより、計測装置500による較正が完了する。その後、たとえば、壁1000の前方に被写体1020が立っている(図10(B))。被写体1020は、背中を壁1000につける。計測装置500は被写体1020を撮影する。被写体は、たとえば、計測装置500が家庭で使用される場合における個人、計測装置500が医療機関で使用される場合における受診者、計測装置500が服飾店で使用される場合における顧客(服の注文者)である。
【0102】
なお、前述のとおり、カメラと光源と格子との間の位置関係が変化しなければ、較正のための撮影および処理は、最初に一度行なっておけばよい。この場合、算出結果をメモリに保存しておくことにより、同一の算出結果を使用することができる。したがって、較正のための撮影および算出処理を再度行なう必要はない。なお、拡散平面板は、特定の材質からなる板に限られるものではなく、少なくとも、光を四方八方に散乱させることができるものであればよい。たとえば、一例として、普通の板に、光沢紙ではない紙を貼付したものが、拡散平面板として機能することができる。
【0103】
図11(A)および図11(B)は、計測装置500の画像の表示態様を表わす図である。図11(A)を参照して、壁1000に取り付けられた拡散平面板1010の画像1100は、ディスプレイ590に表示されている。このとき画像1100は、ディスプレイ590の中心部に一致している。
【0104】
この状態で、壁1000の前に被写体が立つと、その映像は図11(B)に示されるようになる。ここで、計測装置500の使用者が撮影ボタン530を押下すると、当該撮影により取得された画像データは、RAM630に一時的に書き込まれる。なお、被写体の撮影は、壁1000の前に限らない。
【0105】
次に、図12を参照して、本実施の形態に係る計測装置500の動作について説明する。図12は、計測装置500に対する操作によってプロセッサ610が実行する一連の動作の一部を表わすフローチャートである。
【0106】
ステップS1210にて、プロセッサ610は、計測装置500に対する初期の認識処理を実現する。当該認識処理の詳細は、以下のとおりである。
【0107】
まず、ステップS1212にて、計測装置500の使用者は、ファインダ540を介して、壁1000のような基準面上に設けられた基準点(たとえば拡散平面板1010)を認識し、調整ボタン520を押下する。プロセッサ610は、調整ボタン520に対する操作に応答して、画像センサ620から出力されるデータをRAM630に書き込む。このデータは基準点の像をレンズ560を介して取得したものである。プロセッサ610は、このデータを書き込むときに、拡散平面板1010以外の領域のデータを排除するために、2値化処理、濃淡処理、エッジ強調処理等の画像認識処理を実行する。
【0108】
ステップS1214にて、プロセッサ610は、当該基準点から計測装置500のカメラ中心(たとえば光源640)までの距離を計測する。この距離の計測は、たとえば一般の光学式カメラによって使用されるレンジングの手法によって実現される。
【0109】
ステップS1216にて、プロセッサ610は、当該基準点を原点として、光源640の座標値とカメラ(計測装置500)の座標値とを算出する。プロセッサ610は、その算出したデータをRAM630に書き込む。
【0110】
ステップS1230にて、プロセッサ610は、被写体の立体形状を計測するための処理を実行する。より詳しくは、ステップS1232にて、プロセッサ610は、撮影ボタン530の押下に応答して被写体を撮影する。すなわち、撮影ボタン530が押下されると、プロセッサ610は、光源640に対して発光命令を与える。光源640は、その発光命令に応答して予め規定された強度の光を格子550に向けて発する。格子550から発せられた光は、壁1000の前面に立っている被写体1020を照射する。その被写体の表面には、格子550によって形成された格子縞が現われている。プロセッサ610は、光源640に対する発光命令の後、画像をキャプチャする命令を画像センサ620に対して与える。レンズ560は、被写体の表面に形成された増幅の光を集めて、その光を画像センサ620に伝える。画像センサ620は、プロセッサ610から送られた命令に従って、光電変換処理を実行し、変換後のデータをプロセッサ610に伝送する。プロセッサ610は、そのデータをRAM630に格納する。
【0111】
さらに、プロセッサ610は、RAM630に格納したデータに基づいて撮影した画像をディスプレイ670に表示する。計測装置500の使用者は、その像を見ることにより、被写体を正しく撮影できたか否かを確認することができる。
【0112】
ステップS1234にて、プロセッサ610は、調整ボタン520に対する命令に応答して、画像データをフラッシュメモリ650に保存する。
【0113】
ステップS1236にて、プロセッサ610は、RAM630に格納されている画像データを用いて投影縞を抽出する。
【0114】
ステップS1238にて、プロセッサ610は、投影縞上の1点(点R)の座標値(xr,yr,0)を算出する。
【0115】
ステップS1240にて、プロセッサ610は、Aの値(式(4))を算出する。
ステップS1242にて、プロセッサ610は、Bの値(式(4))を算出する。
【0116】
ステップS1244にて、プロセッサ610は、格子のずれΔφk(式(2))の値を算出する。
【0117】
ステップS1246にて、プロセッサ610は、Dの値(式(4))を算出する。
ステップS1248にて、プロセッサ610は、Vの値(式(6))を最小にする縞次数nkを探索する。
【0118】
ステップS1250にて、プロセッサ610は、Δφkを算出する。
ステップS1252にて、プロセッサ610は、その算出したΔφkを用いて被写体の高さzp(式(5))を算出する。
【0119】
図13および図14を参照して、本実施の形態に係る計測装置500のデータ構造についてさらに説明する。図13は、フラッシュメモリ650におけるデータの格納の一態様を概念的に表わす図である。フラッシュメモリ650は、データを不揮発的に格納するためのメモリ領域を含む。
【0120】
撮影により生成されたデータを特定するための記録番号は、メモリ領域1310に格納されている。当該データに関連付けられる被写体(すなわち被計測者)を識別するためのデータ(たとえばユーザ名称、ユーザID(Identification))は、メモリ領域1320に格納されている。その被写体の計測が行なわれた日時は、メモリ領域1330に格納されている。計測結果は、メモリ領域1340に格納されている。当該データおよび計測結果を保護するか否かを表わすフラグデータは、メモリ領域1350に格納されている。
【0121】
たとえば記録番号「01」のユーザ「A」は、2007年10月1日20時00分に撮影されており、その計測結果(200710012000.dat)は、データ保護されている。
【0122】
図13に示されるデータの件数は、一例として99件が示されているが、フラッシュメモリ650に格納されるデータの件数は、図13に示されるのに限られず、それよりも少なくてもあるいは多くてもよい。これらのデータは、インターフェイス580を介してコンピュータ(図示しない)に伝送可能である。あるいは、プロセッサ610は、カードリーダ/ライタ570に装着されるメモリカード680にこれらのデータを書き込むこともできる。これにより、計測装置500によって取得されたデータを用いた分析が可能になるため、たとえば、遠隔地において取得されたデータを利用することができる。たとえば、計測装置500の使用者は、衣類を作成するためのデータを縫製工場に伝送することにより、自己の体型に応じた衣類の作成を依頼することができる。
【0123】
図14は、計測結果(メモリ領域1340)の具体的内容を表わす図である。計測結果1340は、たとえば座標値(x,y)と、高さ(z)とを含む。これらのデータは、図12に示されるステップS1238およびステップS1252において算出されたものである。
【0124】
ある局面において、計測装置500は、このようなデータを外部に出力することができる。出力先は、パーソナルコンピュータ、インターネットに接続された情報処理装置等が考えられる。たとえば、情報処理装置は、各家庭が有する計測装置500からネットワーク送信されたデータを受信して、被写体である各個人の体型データを算出し、当該個人の健康診断を行なうことができる。
【0125】
[実施例の効果]
以上のようにして、本発明の実施の形態に係る計測装置500は、多方向の格子を一度に撮影することにより、データを短時間で取得することができる。たとえば、30分の1秒の撮影でもデータを取得することができる。短時間での取得が可能になるため、被験者は長時間同じ姿勢を維持する必要がなくなり、簡易に立体形状を計測することができる。
また、計測装置500は、運動している物体の形状を計測することができる。さらに、計測装置500は、時間の経過に合わせて、当該物体の形状を計測することもできる。
【0126】
また、計測装置500は、ピッチの異なる格子300を用いて合致法により形状を計測するため、広い範囲の高さ(すなわち凹凸の程度が大きいもの)を精度良く計測することができる。
【0127】
計測装置500は、被写体との距離が短い場合でも使用することができる。したがって、立体形状を計測するために大掛かりなシステムが不要となり、コンパクトなシステム構成とすることができる。よって、たとえば、家庭、医療機関、服飾の縫製業者などが、簡易に計測装置500を導入することができる。
【0128】
また、計測装置500は、内部に駆動機構を有さないため、その構成が複雑にならず、計測装置500の製造コストの増加も抑制できる。
【0129】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0130】
本発明は、たとえば、人体、モックアップその他の模型、化石、標本、タービンブレードその他の精密加工品等の立体形状の計測に適用可能である。
【図面の簡単な説明】
【0131】
【図1】格子投影法による立体形状計測法の概略を表わす図である。
【図2】六方格子の構成を表わす図である。
【図3】六方格子に近い格子を角度ξだけ傾けた状態で構成される格子300を表わす図である。
【図4】光源400と、カメラ中心410と、基準面420と、カメラ面430と、格子300との位置関係を表わす図である。
【図5】本発明の実施の形態に係る計測装置500の外観を表わす図である。
【図6】計測装置500のハードウエア構成を表わすブロック図である。
【図7】プロセッサ610によって実現される機能の構成を表わすブロック図である。
【図8】ROM660におけるデータの格納の一態様を概念的に表わす図である。
【図9】RAM630におけるデータの格納の一態様を概念的に表わす図である。
【図10】壁に設けられた拡散平面板1010を用いて計測装置500を較正する状態を表わす図である。
【図11】計測装置500の画像の表示態様を表わす図である。
【図12】計測装置500に対する操作によってプロセッサ610が実行する一連の動作の一部を表わすフローチャートである。
【図13】フラッシュメモリ650におけるデータの格納の一態様を概念的に表わす図である。
【図14】計測結果の具体的内容を表わす図である。
【符号の説明】
【0132】
100 物体、110 光源、120 画像センサ、130 投影パターン、200,200−1,200−2,200−3,200−4,200−5,200−6 六角形、210,210−1,210−2 中心点、300 格子、310,312,320,322,330,332 ピッチ、400 光源、410 カメラ中心、420 基準面、430 カメラ面、500 計測装置、510 筐体、520 調整ボタン、530 撮影ボタン、540 ファインダ、550 格子、560 レンズ、570 インターフェイス、580 カードリーダ/ライタ、680 メモリカード、1000 壁、1010 拡散平面板、1020 被写体、1100 拡散平面板の撮影画像。
【技術分野】
【0001】
本発明は、形状を計測する技術に関し、より特定的には、光の投影により生じる格子縞の画像に基づいて立体形状を計測する技術に関する。
【背景技術】
【0002】
被計測物の立体形状を計測するための技術として、格子を通して光を被計測物に照射し、被計測物の表面に投影される縞を撮影して、その撮影画像を解析して立体形状の計測値を算出する技術が知られている。
【0003】
たとえば、特開2002−366931号公報(特許文献1)は、被計測者の頭部全体について非接触の3次元形状計測を高精度に行なうための技術を開示している。この技術は、正弦波格子位相シフト法を用いており、複数の照射部より正弦波状の明暗分布を持つパターンを照射しながら位相シフトさせ、その位相シフトに同期させて、複数の撮影部で撮影したパターン画像をもとに照射光の位相値を計算し、これら撮影部の相対的な位置関係から、撮像画像を1つの統一された座標系で統合し、頭部全体の高精度な三次元形状を得る、というものである([要約]参照)。
【0004】
また、被計測物の格子の位置の移動を検出する他の技術として、フーリエ変換法が知られている(たとえば、非特許文献1参照)。
【特許文献1】特開2002−366931号公報
【非特許文献1】Mitsuo Takeda, Hideki Ina and Seiji Kobayashi, J. Opt. Soc. Am. Vol.72, No. 1 (1982) pp156-160.
【発明の開示】
【発明が解決しようとする課題】
【0005】
位相シフト方法は、格子の位置を少しずつずらして複数回の撮影を行ない、その撮影結果に基づいて格子1ピッチ以内の位置のずれを計算する方法である。この方法によると、格子の位置をずらすこと(以下、「位置ずらし」ともいう。)が、少なくとも3回必要とされ、通常は、計算の迅速化の観点から、4回の位置ずらしが行なわれている。そのため、撮影に時間を要し、立体形状の計測値を算出するまでの時間も長くなるという問題点がある。
【0006】
一方、上記のフーリエ変換法は、一度の撮影から、フーリエ変換を行ない、その1次スペクトルを取り出し、逆フーリエ変換を行ない、格子の位置ずれを計算する方法である。その利点は、1回の撮影結果によって格子の位置ずれを計算することができるということである。しかしながら、1次スペクトルを取り出すため、空間分解能が低下するという問題点がある。
【0007】
ところで、計測対象物によっては、表面の凹凸の程度が大きいものもある。位相シフト法およびフーリエ変換法のいずれにおいても、そのような計測対象物を撮影した場合には、格子のずれが格子の1ピッチ以上になる場合がある。しかしながら、位相シフト法およびフーリエ変換法のいずれも、1ピッチ以内のずれ(以下「端数分」という)のみを計測することができる。そのため、これらの方法を用いる場合には、ずれのピッチの整数倍の成分(以下「縞次数」という。)を算出する必要がある。
【0008】
縞次数を算出する必要のない方法として、ピッチを大きくするということも考えられる。この場合、1ピッチ以上のずれはなくなるが、測定精度が低下するという問題点がある。また、フーリエ変換法によると、空間分解能も低下するという問題点もある。
【0009】
縞次数を算出する方法として、異なるピッチの格子を順次投影して、それぞれのピッチに対する端数分を測定して、それから縞次数を推定する方法がある。しかし、この場合に用いられる明確なアルゴリズムは存在しない。
【0010】
本発明は、上述のような問題点を解決するためになされたものであって、その目的は、立体形状を短時間で計測できる立体形状計測装置を提供することである。他の目的は、立体形状の計測精度が向上する立体形状計測装置を提供することである。他の目的は、立体形状を低コストで計測できる立体形状計測装置を提供することである。
【0011】
本発明の他の局面における目的は、立体形状を短時間で計測できる立体形状計測方法を提供することである。他の目的は、立体形状の計測精度が向上する立体形状計測方法を提供することである。他の目的は、立体形状を低コストで計測できる立体形状計測方法を提供することである。
【課題を解決するための手段】
【0012】
上記の課題を解決するために、この発明のある局面に従う立体形状計測装置は、間隔が異なる複数のピッチを有する格子と、格子を通して光を発する光源と、立体形状計測装置に対する命令の入力を受ける入力手段と、被写体を撮影して画像データを出力する撮像手段とを備える。撮像手段は、複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されている。この立体形状記憶装置は、画像データを格納する記憶手段と、画像データに基づいて被写体の形状データを算出する演算手段と、算出結果を出力する出力手段とを備える。撮像手段は、複数のピッチを有する格子を透過した光によって被写体の表面に形成された投影縞を1回撮影する。演算手段は、1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出し、縞次数に基づいて被写体の形状データを算出する。
【0013】
好ましくは、撮像手段は、マトリクス状に配置された複数の撮像素子を含む。複数のピッチが異なる間隔となるように、格子は、撮像手段と光源とを結ぶ方向と、格子の底辺が交差するように、構成されている。
【0014】
好ましくは、複数のピッチは、3つのピッチを含む。
好ましくは、格子は六方格子を含む。
【0015】
好ましくは、演算手段は、次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出し、算出する処理を各撮像素子に対して行うことにより形状データを算出する。
【0016】
【数1】
【0017】
ただし、
【0018】
【数2】
【0019】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【0020】
【数3】
【0021】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【0022】
【数4】
【0023】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【0024】
【数5】
【0025】
wk:k番目の格子に対する重み係数。
【0026】
【数6】
【0027】
好ましくは、出力手段は、結果を表示する表示手段と、結果を表わすデータを出力するデータ出力インターフェイスとのいずれかを含む。
【0028】
この発明の他の局面に従うと、撮像装置が立体形状を計測する方法が提供される。撮像装置は、間隔が異なる複数のピッチを有する格子と、格子を通して光を発する光源と、撮像装置に対する命令の入力を受ける入力装置と、被写体を撮影して画像データを出力するカメラと、メモリと、プロセッサとを備えている。カメラは、複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されている。この方法は、カメラが、複数のピッチを有する格子を透過した光によって被写体の表面に形成された投影縞を1回撮影するステップと、プロセッサが、1回の撮影により生成された画像データをメモリに格納する記憶ステップと、プロセッサが、画像データに基づいて被写体の形状データを算出する演算ステップと、プロセッサが、算出結果を出力する出力ステップとを備える。演算ステップは、1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出するステップと、縞次数に基づいて被写体の形状データを算出するステップとを含む。
【発明の効果】
【0029】
本発明によると、立体形状を短時間で、精度良く、また低コストで計測することができる。
【発明を実施するための最良の形態】
【0030】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0031】
最初に、図1を参照して、物体の立体形状を計測する手法について説明する。図1は、格子投影法による立体形状計測法の概略を表わす図である。
【0032】
物体100の立体形状を計測するために、光源110と画像センサ120とが設置される。光源110は、物体100に対して光を投影する。画像センサ120は被写体(たとえば光が投影された物体100)を撮影して画像データを出力する。光源110の投影中心Aと、画像センサ120の撮像中心Bとの間隔は、距離aである。光源110から物体100上の点Pに至る光線の投影方向は、光源110(点A)と撮像中心Bとを結ぶ直線ABに垂直な面に対して角度dの方向である。この方向は、光源110を固定していても、物体100上の点Pの位置によって変化する。また、物体100上の点Pと画像センサ120とを結ぶ直線は、当該垂直な面に対して、角度eの方向に当たる。この角度も、画像センサ120上における点Pの位置に対応する像の位置の変化に従って変化する。このような、物体100上の位置によって変化する2つの角度dおよび角度eを知ることによって、次に述べる式により、直線ABから物体100上の任意の点Pまでの距離zが計算される。
【0033】
ここで、座標軸として、撮像中心Bを基準に、BA方向をx座標軸、撮像中心Bから物体100に向かう方向をz座標軸とし、x−z座表面に垂直方向をy座標軸とする。この場合、直線ABから物体100上の点Pまでの距離z0と、距離aと、角度d、角度eとの関係は、「z0=a/(tand+tane)」となる。
【0034】
角度eの値は、画像センサ120の画素の位置から幾何学的に計算可能である。また、画像センサ120のうちの任意の画素に映る格子縞が、何縞分だけ位置を移動したかを判別できれば、角度dの値が算出される。その結果、距離aが既知であれば、距離z0が計測できる。このような計算を、画像センサ120によって撮影された画面上の全ての点について行なうと、z0(x0,y0)が計算でき、物体100の立体形状が分かることになる。
【0035】
次に、図2および図3を参照して、本発明の実施の形態に係る六方格子について説明する。図2は、六方格子の構成を表わす図である。六方格子とは、2次元の最密構造の格子である。より具体的には、六方格子は、六角形200,200−1,200−2,200−3,200−4,200−5,200−6の各中心点を結ぶことによって構成される。六角形200の中心点210と、六角形200−1の中心点210−1とを結ぶ線と、中心点210と六角形200−2の中心点210−2とを結ぶ線とは、60度の角度を形成している。他の六角形についても、同様に60度の角度が形成される。
【0036】
図3は、六方格子に近い格子を角度ξだけ傾けた状態で構成される格子300を表わす図である。角度ξだけ傾けることにより、ピッチdを有する格子のピッチから、ピッチdとは異なるものとすることができる。より詳しくは、x軸方向(たとえば水平方向)に対して角度ξだけ傾けられた格子300は、x軸方向の間隔px1を有するピッチ310と、間隔px2を有するピッチ320と、間隔px3を有するピッチ330とを有する。また、x軸方向に垂直のy軸方向については、間隔py1を有するピッチ312と、間隔py2を有するピッチ322と、間隔py3を有するピッチ332とを有する。
【0037】
本実施の形態においては、図3に示すような六方格子に近い格子を用いて縞次数を算出する方法として、合致法を使用する。合致法は、たとえば以下の参考文献1−3に記載されている。しかし、参考文献1や2に示されている合致法のアルゴリズムは立体形状計測を目的としたものであるが、本願発明に係るアルゴリズムとは、基本的考え方が異なる。一方、参考文献3のアルゴリズムの基本的考え方は、本願発明に係る実施の形態に用いられるものである。しかし、参考文献3に記載の技術は、立体形状計測を目的としたものではなく、干渉計測に応用することを目的としたものである。本願発明は、参考文献3に記載の考え方を六方格子を用いる立体形状計測に応用した。それによって、上に述べたような複雑な数式が導出された。
参考文献1) 格内敏 他、「2ピッチ格子投影による3次元形状計測」、精密工学会誌、58、pp133−138(1992)
参考文献2) Mitsuo Takeda et al. "Frequency-multiplex Fourier-transform profilometry": a single-shot three-dimensional shape measurement of objects with large height discontinuities and/or surface isolations, Vol.36, No.22, APPLIED OPTICS (1997), PP5347-5354.
参考文献3) Koichi IWATA et al., "Consideration of Fractional Fringe Method on the Basis of the Least Squares Method", OPTICAL REVIEW, Vol. 10, No. 4 (2003), pp202-205.
図4を参照して、本実施の形態における合致法のアルゴリズムについて説明する。図4は、光源400と、カメラ中心410と、基準面420と、カメラ面430と、格子300との位置関係を表わす図である。光源400とカメラ中心410と格子300とは、立体形状を計測するための装置に含まれている。
【0038】
基準面420は、光源400からの光が格子300の格子面に垂直方向に投影された場合に、その方向に垂直な面であって、光が投影される被写体が含まれる平面をいう。基準面420は、たとえば、実際の撮影の局面においては壁、スクリーン等に相当する。したがって、格子300による格子縞は、この基準面に投影されることになる。
【0039】
カメラ面430は、カメラ中心410(すなわちレンズの中心)と撮像素子(図示しない)とを結ぶ仮想線に垂直な仮想平面である。光源400とカメラとの位置関係に応じて、基準面420とカメラ面430との位置関係も規定される。
【0040】
ここで、3次元の座標空間を、基準面420を用いて以下のように定義する。まず、カメラ中心410を通る光軸が基準面420と交わる点が、原点O(0,0,0)として規定される。基準面に垂直な方向にz軸を、カメラ中心410と光源400を結ぶ直線と、z軸を含む平面と基準面との交線をx軸とし、x軸とz軸とに垂直な方向にy軸をとる。
【0041】
光源400の座標Sを、S(xS,yS,zS)と表わす。カメラ中心410の座標Cを、C(xC,yC,zC)と表わす。上記の座標の取り方では、yS=0、yC=0となるが、設定誤差を考慮して、yS、yCと表わしている。今、物体上の1点をP(xp,yp,zp)とし、光源400と点Pとを結ぶ直線と基準面との交点をQ(xq,yq,0)とし、カメラ中心410と基準面420との交点をR(xr,yr,0)とする。
【0042】
カメラ中心410と点Rとを結ぶ線とカメラ面430との交点Tの座標を、(X,Y,Z)と表わす。これは、カメラの画面上の座標と関係した座標である。
【0043】
カメラ面430と基準面420とは、角度αだけ交差している。この角度αは、光源400とカメラ中心410との位置関係と、光源400からの投影方向およびカメラの撮影方向によって規定される。
【0044】
格子300は、基準面に平行に置くものとする。また、図3に示されるように、x軸に対して角度ξだけ傾けられた状態で構成されている。そのため、格子300を透過した光は、基準面420において、角度ξだけ傾いた像を投影する。
【0045】
[合致法のアルゴリズム]
合致法という言葉は以前から使用されていたが、合致法を行なうためのアルゴリズムは整備されていなかった。本発明の実施の形態においては、上記の参考文献3に記載の内容を拡張した合致法を用いている。具体的には、カメラおよび光源を有する計測装置と、被写体とが近接している場合に適用可能な合致法のアルゴリズムを見い出した。このアルゴリズムは、以下の式(1)から式(6)に対応する。なお、3次元の座標は、図4に示す座標を用いる。
【0046】
格子の位置ずれをΔx、Δyと表わし、格子のずれΔφkをピッチpx、pyを用いて表わすと、次式(1)のようになる。
【0047】
【数7】
【0048】
式(1)は格子のずれΔφkの定義式である。k=1,2,3は、3つの格子に対応する。
【0049】
この場合、フーリエ変換法によると、格子のずれΔφkは、次式(2)における格子の1ピッチ以内のずれεkである。
【0050】
【数8】
【0051】
ただし、
nk:Δφkの整数部分(縞次数)、
εk:Δφkの端数部分(格子の位置ずれから求められる。)である。
【0052】
フーリエ変換法でεkの値が求められるのは、既に知られている方法である。しかし、nkが分からないと、高さzkが分からない。縞次数nkを求めて、Δφを導出し、被写体の基準面からの高さzkを算出するのが本発明の実施の形態に係る合致法である。
【0053】
より詳しくは、以下のとおりである。図4に示すように、測定の基準面420上に、x−y座標軸を規定し、基準面420から垂直方向にz座標を規定する。x方向は、計測装置(たとえば、演算機能を有するカメラ)の画面の横軸方向に一致させる。基準面420は、被写体である立体形状の高さz=0の面である。この基準面420に平面板を置いて、立体形状を算出するためのプログラムを調整する。この座標空間において、上述のとおり、光源400の座標は、S(xs,ys,zs)であり、カメラ中心410の座標は、C(xC,yC,zC)である。この場合、縞次数nkは、次式(3),(4)から算出される。ここで、それぞれの格子に対する値であることを明確にするため、zに添え字(suffix)kを付ける。
【0054】
【数9】
【0055】
ただし、
【0056】
【数10】
【0057】
ここで、
x:被写体を通る基準面において、前記光源と前記撮影手段の中心を結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値、である。
【0058】
それぞれのピッチに対する端数部εkの測定値とnkの推定値を代入したとき、次の式にこれを代入し、Vの値を最小にする縞次数nkを選んで、物体上の1点のz座標を算出するというのがこの合致法である。
【0059】
【数11】
【0060】
上記の式(5)により得られた縞次数nkを用いて、高さzを次式(6)を用いて算出する。
【0061】
【数12】
【0062】
ここで、wkは、k番目の格子に対する重みである。どの格子を重要視するのかの目安である。具体的には、wkの値は、たとえば、
【0063】
【数13】
【0064】
【数14】
【0065】
のように決める。これは、x方向のピッチPxkの小さい格子の重みを大きくしている。
上記で得られたzを用いて、物体上の一点のx、y座標(xp,yp)は、次式(9)のように表わされる。
【0066】
【数15】
【0067】
これによって、物体上の一点の座標(xp,yp,zp)が得られる。これを画像の各ピクセルに対して算出すると、物体の形状zp=f(xp,yp)が得られる。
【0068】
なお、当該合致法の適用は、六方格子に限らず、異なるピッチを有する格子が用いられる場合に広く適用できる。また、上記の手法は、位相シフト法にも適用することができる。
【0069】
なお、上記の算出を行うに際しては、まず基準面上に実際の平面(基準板)を置き、それに対してΔφskを求め、各画面上の点に対して、その値をメモリに保存しておく、次に、測定する物体を置いて、それに対してΔφ0kを求め、その差Δφkを求めて、上記の計算をする。これによって、光学系の設定誤差が補正される。実際上は、測定の度にΔφskを求める必要はない。基準板についてのΔφskの測定を行って、それをメモリに保存しておけば、光源と格子とカメラの位置に変化が無い限り、同じデータを用いて、物体の立体形状を測定することができる。それ故、基準板は、測定対象となる物体の測定範囲の中央位置に置くことができる。
【0070】
[実施例]
図5を参照して、本発明の実施の形態に係る計測装置500の構成について説明する。図5は、計測装置500の外観を表わす図である。計測装置500は、筐体510と、調整ボタン520と、撮影ボタン530と、ファインダ540と、格子550と、レンズ560と、カードリーダ/ライタ570と、インターフェイス580とを備える。計測装置500は、たとえばデジタルカメラ程度の大きさとして実現することができる。
【0071】
計測装置500の使用者は、たとえば計測装置500をカメラのように片手でまたは両手で把持して調整ボタン520および撮影ボタン530を操作する。より具体的には、調整ボタン520が操作されると、計測装置500と被写体との間の距離が計測され、計測装置500のキャリブレーションが実現される。一方、撮影ボタン530が操作されると、格子550の奥に配置されている光源から光が発せられる。格子550を介して投影された映像は、レンズ560を介して撮影される。
【0072】
図6は、計測装置500のハードウエア構成を表わすブロック図である。計測装置500は、図5に示される構成に加えて、プロセッサ610と、画像センサ620と、RAM(Random Access Memory)630と、光源640と、フラッシュメモリ650と、ROM(Read Only Memory)660と、ディスプレイ670とを備える。カードリーダ/ライタ570には、メモリカード680が装着可能である。
【0073】
調整ボタン520は、計測装置500に対する命令の入力を受け付けて、当該命令に応じた信号をプロセッサ610に送出する。プロセッサ610は、その信号に基づいて予め規定された調整処理を実行する。
【0074】
撮影ボタン530は、計測装置500に対する撮影命令の入力を受け付けて、その入力に応じた信号をプロセッサ610に送出する。プロセッサ610は、その信号に応答して、予め定められた撮影動作を実行する。より詳しくは、プロセッサ610は、光を発する命令を光源640に送出する。また、プロセッサ610は、画像センサ620から出力されるデータの入力を受け付ける。このデータは、レンズ560によって集光された光を電気信号に変換した後の画像データに対応する。プロセッサ610は、RAM630に確保したメモリ領域に、そのデータを書き込む。
【0075】
ファインダ540は、図5に示されるように、格子550の近傍に構成されている。ファインダ540は、計測装置500の前方から後方まで貫通するように空孔部分が形成されており、計測装置500の使用者は、このファインダ540を介して被写体を視認することができる。なお、ファインダ540と格子550との位置関係は、図5に示されるものに限られず、たとえばファインダ540と格子550とが水平方向に並べて配置される構成であってもよい。
【0076】
格子550は、たとえば図3に示されるような傾きを有する部材によって構成される。すなわち、格子550は、少なくとも3つの異なるピッチを有することになる。格子550の背後に配置されている光源640から光が発せられると、その光は格子550を透過し、格子縞が被写体の表面に生じる。
【0077】
格子550は、ある局面において、樹脂により構成される。格子550は、筐体510と一体として成型されてもよく、また、他の局面において、筐体510とは別個の部材として構成されてもよい。
【0078】
レンズ560は、ある局面において、コリメートレンズとして実現される。計測装置500の被写体に現れた像の反射光は、レンズ560を介して画像センサ620に入射する。画像センサ620は、その光を画像データに変換し、変換により生成されたデータをプロセッサ610に送出する。
【0079】
ある局面において、プロセッサ610は、CPU(Central Processing Unit)あるいはMPU(Micro Processing Unit)その他の処理デバイスとして構成される。他の局面において、プロセッサ610は、FPGA(Field Programmable Gate Array)としても実現される。
【0080】
フラッシュメモリ650は、プロセッサ610により生成されたデータあるいは画像センサ620から送られたデータを不揮発的に格納する。あるいはフラッシュメモリ650の代わりにハードディスク装置その他のデータを不揮発的に保持できる記憶装置が使用されてもよい。
【0081】
ROM660は、計測装置500に予め規定された動作を実行させるためのプログラム、データを格納している。
【0082】
RAM630は、プロセッサ610により生成されたデータを一時的に(揮発的に)格納する。ディスプレイ670は、画像センサ620により取得された画像、計測装置500の設定値、設定メニューなどを表示する。ディスプレイ670は、ある局面において、LCD(Liquid Crystal Display)装置、有機EL(Electro Luminescence)などの表示デバイスにより構成される。
【0083】
光源640は、たとえばLED(Light Emitting Diode)その他の発光素子により実現される。カードリーダ/ライタ570は、メモリカード680に対してデータを書き込み、あるいはメモリカード680に格納されているデータを読み出し、プロセッサ610に送出する。
【0084】
インターフェイス580は、通信ケーブル(図示しない)の接続を受け付けて、計測装置500と他の情報処理装置との間のデータの通信を実現する。インターフェイス580による通信の態様は特に限られない。
【0085】
次に、図7を参照して、計測装置500を実現するプロセッサ610について説明する。図7は、プロセッサ610によって実現される機能の構成を表わすブロック図である。プロセッサ610は、画像認識部710と、距離計測部720と、座標値算出部730と、抽出部740と、縞次数探索部750と、高さ算出部760とを含む。これらの機能は、プロセッサ610がROM660に格納されているプログラムを実行することにより実現される。
【0086】
画像認識部710は、画像センサ620から送られるデータに基づいて被写体の画像を認識するように構成されている。
【0087】
距離計側部720は、その認識された画像に基づいて計測装置500と被写体までの距離を計測するように構成されている。
【0088】
座標値算出部730は、被写体の表面に形成された格子縞と、距離計測部520によって計測された距離とに基づいて当該被写体の表面上の座標値を算出するように構成されている。
【0089】
抽出部740は、画像認識部710から送られるデータに基づいて投影縞を抽出するように構成されている。
【0090】
縞次数探索部750は、抽出部740によって抽出された投影縞に基づいて合致法を適用することにより縞次数を探索するように構成されている。
【0091】
高さ算出部760は、縞次数探索部750の探索結果に基づいて当該被写体のZ軸方向の値(すなわち高さ)を算出する。高さ算出部760は、その結果を計測結果としてプロセッサ610の外部に出力するように構成されている。
【0092】
次に、図8を参照して、本実施の形態に係る計測装置500のデータ構造について説明する。図8は、ROM660におけるデータの格納の一態様を概念的に表わす図である。ROM660は、データを格納するための複数のメモリ領域を含む。
【0093】
カレンダー情報は、メモリ領域810に格納されている。カレンダー情報は、たとえば一般のカメラが有する情報と同様に、日付情報その他の撮影日を特定するための情報をいう。
【0094】
計測装置500が有する格子550の設計情報は、メモリ領域820に格納されている。当該設計情報は、たとえばX軸方向のピッチ(Px1,Px2,Px3)と、Y軸方向のピッチ(Py1,Py2,Py3)を含む。
【0095】
六方格子550のピッチの間隔dは、メモリ領域830に格納されている。ここでいうピッチは六方格子を角度ξ傾ける前の状態をいう。その角度ξを表わすデータは、メモリ領域840に格納されている。
【0096】
また、基準板に対する位相値Δφskは、プロセッサ610によって算出され、フラッシュメモリ650に格納されている。
【0097】
計測装置500が、撮影により取得した投影データに基づいて高さ情報を得るための計算プログラムは、メモリ領域850に格納されている。計測装置500の基本的な動作を制御するためのファームウェアは、メモリ領域860に格納されている。ROM660に格納されるデータは、計測装置500の製造時に決定される。したがって、これらのデータは計測装置500の製造時にROM660に記録されるが、他のタイミングですなわち、計測装置500が製造された後に書き換え可能であってもよい。この場合、ROM660は、EEPROM(Electronically Erasable Programmable Read-Only Memory)などにより実現される。
【0098】
図9は、RAM630におけるデータの格納の一態様を概念的に表わす図である。RAM630は、プロセッサ610により処理の実行時に、プロセッサ610による命令に従ってって、データを格納するためのメモリ領域を1つ以上確保する。たとえば、光源640の座標値は、メモリ領域910に格納されている。また、カメラ中心の座標値(xc,yc,zc)は、メモリ領域920に格納されている。プロセッサ610は、ROM660あるいはフラッシュメモリ650もしくはメモリカード680から処理に必要なデータを読み出し、その読み出したデータをRAM630に確保した領域に書き込む。他の局面において、プロセッサ610は、RAM630に書き込まれているデータを読み出し、保存が指示されたメモリ領域にデータを転送する。
【0099】
図10および図11を参照して、本実施の形態に係る計測装置500の使用態様について説明する。図10は、壁の一部100に設けられた拡散平面板1010を用いて計測装置500を較正するための状態を表わす図である。
【0100】
すなわち図10(A)を参照して、壁100の特定の場所1010に、拡散平面板1010を設ける。拡散平面板1010は、計測装置500から発せられる光を反射させる。拡散平面板1010の高さはたとえば立体計測装置500が把持される高さと同じであるのが好ましい。なお、拡散平面板1010のみが較正に使用されるわけではなく、光を一様に反射することができる部材であればよい。
【0101】
その状態で、計測装置500は拡散平面板1010を撮影し、計測装置500と壁1000との距離を算出する。距離の算出態様は特に限られない。これにより、計測装置500による較正が完了する。その後、たとえば、壁1000の前方に被写体1020が立っている(図10(B))。被写体1020は、背中を壁1000につける。計測装置500は被写体1020を撮影する。被写体は、たとえば、計測装置500が家庭で使用される場合における個人、計測装置500が医療機関で使用される場合における受診者、計測装置500が服飾店で使用される場合における顧客(服の注文者)である。
【0102】
なお、前述のとおり、カメラと光源と格子との間の位置関係が変化しなければ、較正のための撮影および処理は、最初に一度行なっておけばよい。この場合、算出結果をメモリに保存しておくことにより、同一の算出結果を使用することができる。したがって、較正のための撮影および算出処理を再度行なう必要はない。なお、拡散平面板は、特定の材質からなる板に限られるものではなく、少なくとも、光を四方八方に散乱させることができるものであればよい。たとえば、一例として、普通の板に、光沢紙ではない紙を貼付したものが、拡散平面板として機能することができる。
【0103】
図11(A)および図11(B)は、計測装置500の画像の表示態様を表わす図である。図11(A)を参照して、壁1000に取り付けられた拡散平面板1010の画像1100は、ディスプレイ590に表示されている。このとき画像1100は、ディスプレイ590の中心部に一致している。
【0104】
この状態で、壁1000の前に被写体が立つと、その映像は図11(B)に示されるようになる。ここで、計測装置500の使用者が撮影ボタン530を押下すると、当該撮影により取得された画像データは、RAM630に一時的に書き込まれる。なお、被写体の撮影は、壁1000の前に限らない。
【0105】
次に、図12を参照して、本実施の形態に係る計測装置500の動作について説明する。図12は、計測装置500に対する操作によってプロセッサ610が実行する一連の動作の一部を表わすフローチャートである。
【0106】
ステップS1210にて、プロセッサ610は、計測装置500に対する初期の認識処理を実現する。当該認識処理の詳細は、以下のとおりである。
【0107】
まず、ステップS1212にて、計測装置500の使用者は、ファインダ540を介して、壁1000のような基準面上に設けられた基準点(たとえば拡散平面板1010)を認識し、調整ボタン520を押下する。プロセッサ610は、調整ボタン520に対する操作に応答して、画像センサ620から出力されるデータをRAM630に書き込む。このデータは基準点の像をレンズ560を介して取得したものである。プロセッサ610は、このデータを書き込むときに、拡散平面板1010以外の領域のデータを排除するために、2値化処理、濃淡処理、エッジ強調処理等の画像認識処理を実行する。
【0108】
ステップS1214にて、プロセッサ610は、当該基準点から計測装置500のカメラ中心(たとえば光源640)までの距離を計測する。この距離の計測は、たとえば一般の光学式カメラによって使用されるレンジングの手法によって実現される。
【0109】
ステップS1216にて、プロセッサ610は、当該基準点を原点として、光源640の座標値とカメラ(計測装置500)の座標値とを算出する。プロセッサ610は、その算出したデータをRAM630に書き込む。
【0110】
ステップS1230にて、プロセッサ610は、被写体の立体形状を計測するための処理を実行する。より詳しくは、ステップS1232にて、プロセッサ610は、撮影ボタン530の押下に応答して被写体を撮影する。すなわち、撮影ボタン530が押下されると、プロセッサ610は、光源640に対して発光命令を与える。光源640は、その発光命令に応答して予め規定された強度の光を格子550に向けて発する。格子550から発せられた光は、壁1000の前面に立っている被写体1020を照射する。その被写体の表面には、格子550によって形成された格子縞が現われている。プロセッサ610は、光源640に対する発光命令の後、画像をキャプチャする命令を画像センサ620に対して与える。レンズ560は、被写体の表面に形成された増幅の光を集めて、その光を画像センサ620に伝える。画像センサ620は、プロセッサ610から送られた命令に従って、光電変換処理を実行し、変換後のデータをプロセッサ610に伝送する。プロセッサ610は、そのデータをRAM630に格納する。
【0111】
さらに、プロセッサ610は、RAM630に格納したデータに基づいて撮影した画像をディスプレイ670に表示する。計測装置500の使用者は、その像を見ることにより、被写体を正しく撮影できたか否かを確認することができる。
【0112】
ステップS1234にて、プロセッサ610は、調整ボタン520に対する命令に応答して、画像データをフラッシュメモリ650に保存する。
【0113】
ステップS1236にて、プロセッサ610は、RAM630に格納されている画像データを用いて投影縞を抽出する。
【0114】
ステップS1238にて、プロセッサ610は、投影縞上の1点(点R)の座標値(xr,yr,0)を算出する。
【0115】
ステップS1240にて、プロセッサ610は、Aの値(式(4))を算出する。
ステップS1242にて、プロセッサ610は、Bの値(式(4))を算出する。
【0116】
ステップS1244にて、プロセッサ610は、格子のずれΔφk(式(2))の値を算出する。
【0117】
ステップS1246にて、プロセッサ610は、Dの値(式(4))を算出する。
ステップS1248にて、プロセッサ610は、Vの値(式(6))を最小にする縞次数nkを探索する。
【0118】
ステップS1250にて、プロセッサ610は、Δφkを算出する。
ステップS1252にて、プロセッサ610は、その算出したΔφkを用いて被写体の高さzp(式(5))を算出する。
【0119】
図13および図14を参照して、本実施の形態に係る計測装置500のデータ構造についてさらに説明する。図13は、フラッシュメモリ650におけるデータの格納の一態様を概念的に表わす図である。フラッシュメモリ650は、データを不揮発的に格納するためのメモリ領域を含む。
【0120】
撮影により生成されたデータを特定するための記録番号は、メモリ領域1310に格納されている。当該データに関連付けられる被写体(すなわち被計測者)を識別するためのデータ(たとえばユーザ名称、ユーザID(Identification))は、メモリ領域1320に格納されている。その被写体の計測が行なわれた日時は、メモリ領域1330に格納されている。計測結果は、メモリ領域1340に格納されている。当該データおよび計測結果を保護するか否かを表わすフラグデータは、メモリ領域1350に格納されている。
【0121】
たとえば記録番号「01」のユーザ「A」は、2007年10月1日20時00分に撮影されており、その計測結果(200710012000.dat)は、データ保護されている。
【0122】
図13に示されるデータの件数は、一例として99件が示されているが、フラッシュメモリ650に格納されるデータの件数は、図13に示されるのに限られず、それよりも少なくてもあるいは多くてもよい。これらのデータは、インターフェイス580を介してコンピュータ(図示しない)に伝送可能である。あるいは、プロセッサ610は、カードリーダ/ライタ570に装着されるメモリカード680にこれらのデータを書き込むこともできる。これにより、計測装置500によって取得されたデータを用いた分析が可能になるため、たとえば、遠隔地において取得されたデータを利用することができる。たとえば、計測装置500の使用者は、衣類を作成するためのデータを縫製工場に伝送することにより、自己の体型に応じた衣類の作成を依頼することができる。
【0123】
図14は、計測結果(メモリ領域1340)の具体的内容を表わす図である。計測結果1340は、たとえば座標値(x,y)と、高さ(z)とを含む。これらのデータは、図12に示されるステップS1238およびステップS1252において算出されたものである。
【0124】
ある局面において、計測装置500は、このようなデータを外部に出力することができる。出力先は、パーソナルコンピュータ、インターネットに接続された情報処理装置等が考えられる。たとえば、情報処理装置は、各家庭が有する計測装置500からネットワーク送信されたデータを受信して、被写体である各個人の体型データを算出し、当該個人の健康診断を行なうことができる。
【0125】
[実施例の効果]
以上のようにして、本発明の実施の形態に係る計測装置500は、多方向の格子を一度に撮影することにより、データを短時間で取得することができる。たとえば、30分の1秒の撮影でもデータを取得することができる。短時間での取得が可能になるため、被験者は長時間同じ姿勢を維持する必要がなくなり、簡易に立体形状を計測することができる。
また、計測装置500は、運動している物体の形状を計測することができる。さらに、計測装置500は、時間の経過に合わせて、当該物体の形状を計測することもできる。
【0126】
また、計測装置500は、ピッチの異なる格子300を用いて合致法により形状を計測するため、広い範囲の高さ(すなわち凹凸の程度が大きいもの)を精度良く計測することができる。
【0127】
計測装置500は、被写体との距離が短い場合でも使用することができる。したがって、立体形状を計測するために大掛かりなシステムが不要となり、コンパクトなシステム構成とすることができる。よって、たとえば、家庭、医療機関、服飾の縫製業者などが、簡易に計測装置500を導入することができる。
【0128】
また、計測装置500は、内部に駆動機構を有さないため、その構成が複雑にならず、計測装置500の製造コストの増加も抑制できる。
【0129】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0130】
本発明は、たとえば、人体、モックアップその他の模型、化石、標本、タービンブレードその他の精密加工品等の立体形状の計測に適用可能である。
【図面の簡単な説明】
【0131】
【図1】格子投影法による立体形状計測法の概略を表わす図である。
【図2】六方格子の構成を表わす図である。
【図3】六方格子に近い格子を角度ξだけ傾けた状態で構成される格子300を表わす図である。
【図4】光源400と、カメラ中心410と、基準面420と、カメラ面430と、格子300との位置関係を表わす図である。
【図5】本発明の実施の形態に係る計測装置500の外観を表わす図である。
【図6】計測装置500のハードウエア構成を表わすブロック図である。
【図7】プロセッサ610によって実現される機能の構成を表わすブロック図である。
【図8】ROM660におけるデータの格納の一態様を概念的に表わす図である。
【図9】RAM630におけるデータの格納の一態様を概念的に表わす図である。
【図10】壁に設けられた拡散平面板1010を用いて計測装置500を較正する状態を表わす図である。
【図11】計測装置500の画像の表示態様を表わす図である。
【図12】計測装置500に対する操作によってプロセッサ610が実行する一連の動作の一部を表わすフローチャートである。
【図13】フラッシュメモリ650におけるデータの格納の一態様を概念的に表わす図である。
【図14】計測結果の具体的内容を表わす図である。
【符号の説明】
【0132】
100 物体、110 光源、120 画像センサ、130 投影パターン、200,200−1,200−2,200−3,200−4,200−5,200−6 六角形、210,210−1,210−2 中心点、300 格子、310,312,320,322,330,332 ピッチ、400 光源、410 カメラ中心、420 基準面、430 カメラ面、500 計測装置、510 筐体、520 調整ボタン、530 撮影ボタン、540 ファインダ、550 格子、560 レンズ、570 インターフェイス、580 カードリーダ/ライタ、680 メモリカード、1000 壁、1010 拡散平面板、1020 被写体、1100 拡散平面板の撮影画像。
【特許請求の範囲】
【請求項1】
立体形状計測装置であって、
間隔が異なる複数のピッチを有する格子と、
前記格子を通して光を発する光源と、
前記立体形状計測装置に対する命令の入力を受ける入力手段と、
被写体を撮影して画像データを出力する撮像手段とを備え、前記撮像手段は、前記複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されており、
前記画像データを格納する記憶手段と、
前記画像データに基づいて被写体の形状データを算出する演算手段と、
算出結果を出力する出力手段とを備え、
前記撮像手段は、前記複数のピッチを有する格子を透過した光によって前記被写体の表面に形成された投影縞を1回撮影し、
前記演算手段は、
前記1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出し、
前記縞次数に基づいて前記被写体の形状データを算出する、立体形状計測装置。
【請求項2】
前記撮像手段は、マトリクス状に配置された複数の撮像素子を含み、
前記複数のピッチが異なる間隔となるように、前記格子は、前記撮像手段と前記光源とを結ぶ方向と、前記格子の底辺とが交差するように、構成されている、請求項1に記載の立体形状計測装置。
【請求項3】
前記複数のピッチは、3つのピッチを含む、請求項2に記載の立体形状計測装置。
【請求項4】
前記格子は六方格子を含む、請求項3に記載の立体形状計測装置。
【請求項5】
前記演算手段は、
次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出し、
前記算出する処理を各前記撮像素子に対して行うことにより前記形状データを算出する、請求項4に記載の立体形状計測装置。
【数1】
ただし、
【数2】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【数3】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【数4】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【数5】
wk:k番目の格子に対する重み係数。
【数6】
【請求項6】
前記出力手段は、前記結果を表示する表示手段と、前記結果を表わすデータを出力するデータ出力インターフェイスとのいずれかを含む、請求項1に記載の立体形状計測装置。
【請求項7】
撮像装置が立体形状を計測する方法であって、前記撮像装置は、間隔が異なる複数のピッチを有する格子と、前記格子を通して光を発する光源と、前記撮像装置に対する命令の入力を受ける入力装置と、被写体を撮影して画像データを出力するカメラと、メモリと、プロセッサとを備えており、前記カメラは、前記複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されており、
前記方法は、
前記カメラが、前記複数のピッチを有する格子を透過した光によって前記被写体の表面に形成された投影縞を1回撮影するステップと、
前記プロセッサが、前記1回の撮影により生成された画像データを前記メモリに格納する記憶ステップと、
前記プロセッサが、前記画像データに基づいて被写体の形状データを算出する演算ステップと、
前記プロセッサが、算出結果を出力する出力ステップとを備え、
前記演算ステップは、
前記1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出するステップと、
前記縞次数に基づいて前記被写体の形状データを算出するステップとを含む、立体形状計測方法。
【請求項8】
前記カメラは、マトリクス状に配置された複数の撮像素子を含み、
前記複数のピッチが異なる間隔となるように、前記格子は、前記カメラと前記光源とを結ぶ方向と、前記格子の底辺とが交差するように、構成されている、請求項7に記載の立体形状計測方法。
【請求項9】
前記複数のピッチは、3つのピッチを含む、請求項8に記載の立体形状計測方法。
【請求項10】
前記格子は六方格子を含む、請求項9に記載の立体形状計測方法。
【請求項11】
前記演算ステップは、
次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出するステップと、
前記算出する処理を各前記撮像素子に対して行うことにより前記形状データを算出するステップとを含む、請求項10に記載の立体形状計測方法。
【数7】
ただし、
【数8】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の各座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の各座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【数9】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【数10】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【数11】
wk:k番目の格子に対する重み係数。
【数12】
【請求項12】
前記出力ステップは、前記結果を表示するステップと、前記結果を表わすデータを前記撮像装置の外部に出力するステップとのいずれかを含む、請求項7に記載の立体形状計測方法。
【請求項1】
立体形状計測装置であって、
間隔が異なる複数のピッチを有する格子と、
前記格子を通して光を発する光源と、
前記立体形状計測装置に対する命令の入力を受ける入力手段と、
被写体を撮影して画像データを出力する撮像手段とを備え、前記撮像手段は、前記複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されており、
前記画像データを格納する記憶手段と、
前記画像データに基づいて被写体の形状データを算出する演算手段と、
算出結果を出力する出力手段とを備え、
前記撮像手段は、前記複数のピッチを有する格子を透過した光によって前記被写体の表面に形成された投影縞を1回撮影し、
前記演算手段は、
前記1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出し、
前記縞次数に基づいて前記被写体の形状データを算出する、立体形状計測装置。
【請求項2】
前記撮像手段は、マトリクス状に配置された複数の撮像素子を含み、
前記複数のピッチが異なる間隔となるように、前記格子は、前記撮像手段と前記光源とを結ぶ方向と、前記格子の底辺とが交差するように、構成されている、請求項1に記載の立体形状計測装置。
【請求項3】
前記複数のピッチは、3つのピッチを含む、請求項2に記載の立体形状計測装置。
【請求項4】
前記格子は六方格子を含む、請求項3に記載の立体形状計測装置。
【請求項5】
前記演算手段は、
次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出し、
前記算出する処理を各前記撮像素子に対して行うことにより前記形状データを算出する、請求項4に記載の立体形状計測装置。
【数1】
ただし、
【数2】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【数3】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【数4】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【数5】
wk:k番目の格子に対する重み係数。
【数6】
【請求項6】
前記出力手段は、前記結果を表示する表示手段と、前記結果を表わすデータを出力するデータ出力インターフェイスとのいずれかを含む、請求項1に記載の立体形状計測装置。
【請求項7】
撮像装置が立体形状を計測する方法であって、前記撮像装置は、間隔が異なる複数のピッチを有する格子と、前記格子を通して光を発する光源と、前記撮像装置に対する命令の入力を受ける入力装置と、被写体を撮影して画像データを出力するカメラと、メモリと、プロセッサとを備えており、前記カメラは、前記複数のピッチを有する格子を透過した光により形成される投影縞を撮影可能なように配置されており、
前記方法は、
前記カメラが、前記複数のピッチを有する格子を透過した光によって前記被写体の表面に形成された投影縞を1回撮影するステップと、
前記プロセッサが、前記1回の撮影により生成された画像データを前記メモリに格納する記憶ステップと、
前記プロセッサが、前記画像データに基づいて被写体の形状データを算出する演算ステップと、
前記プロセッサが、算出結果を出力する出力ステップとを備え、
前記演算ステップは、
前記1回の撮影によって取得された投影縞の画像データに基づいて、縞次数を算出するステップと、
前記縞次数に基づいて前記被写体の形状データを算出するステップとを含む、立体形状計測方法。
【請求項8】
前記カメラは、マトリクス状に配置された複数の撮像素子を含み、
前記複数のピッチが異なる間隔となるように、前記格子は、前記カメラと前記光源とを結ぶ方向と、前記格子の底辺とが交差するように、構成されている、請求項7に記載の立体形状計測方法。
【請求項9】
前記複数のピッチは、3つのピッチを含む、請求項8に記載の立体形状計測方法。
【請求項10】
前記格子は六方格子を含む、請求項9に記載の立体形状計測方法。
【請求項11】
前記演算ステップは、
次の各式に基づいてVを最小にするような縞次数nkを求めて、物体上の1点のz座標を算出するステップと、
前記算出する処理を各前記撮像素子に対して行うことにより前記形状データを算出するステップとを含む、請求項10に記載の立体形状計測方法。
【数7】
ただし、
【数8】
x:被写体を通る基準面において、前記光源と前記撮影手段の中心とを結ぶ方向に一致するx座標軸上の座標値、
y:前記基準面において前記x座標軸に直交するy座標軸上の座標値、
z:前記基準面に垂直なz座標軸上の座標値、
xp,yp,zp:物体上の一点の座標値、
xc,yc,zc:前記撮像手段の各座標値、
xr,yr:前記撮像手段と物体上の一点とを結ぶ線の前記基準面との交点、
xs,ys,zs:前記光源の各座標値、
Pxk,Pyk:k番目の格子に対する基準面上の投影縞のx方向、y方向のピッチ、
k:3つの格子を表す数字(k=1,2,3)、
zk:k番目の格子により算出された、物体上の1点のz座標値。
【数9】
ここで、Δφk:格子のずれ、Δxk=k番目の格子のx座標軸上の格子の位置ずれ、Δyk=k番目の格子のy座標軸上の格子の位置ずれである。
【数10】
nk:Δφkの整数部分(縞次数)
εk:Δφkの端数部分(格子の位置ずれから求められる。)
【数11】
wk:k番目の格子に対する重み係数。
【数12】
【請求項12】
前記出力ステップは、前記結果を表示するステップと、前記結果を表わすデータを前記撮像装置の外部に出力するステップとのいずれかを含む、請求項7に記載の立体形状計測方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−97911(P2009−97911A)
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願番号】特願2007−267790(P2007−267790)
【出願日】平成19年10月15日(2007.10.15)
【出願人】(502240353)デベロソリューションズ株式会社 (4)
【出願人】(000205627)大阪府 (238)
【Fターム(参考)】
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願日】平成19年10月15日(2007.10.15)
【出願人】(502240353)デベロソリューションズ株式会社 (4)
【出願人】(000205627)大阪府 (238)
【Fターム(参考)】
[ Back to top ]