三次元計測装置、三次元計測方法及びプログラム
【課題】空間符号化法において、反射光がぼやけてしまうような場合に明部と暗部との境界位置を適切に決定できるようにする。
【解決手段】プロジェクター12からビット数の異なる複数の縞パターン光を被写体に投影し、カメラ13によりこれらの反射光を撮影する。そして、信頼度算出部15は、これらの反射光から複数の縞パターン光のそれぞれに対応する信頼度を算出し、信頼度が閾値以上の縞パターン光を決定する。さらに、プロジェクター12から信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を投影し、信頼度が閾値以上の縞パターン光及びこれらの所定の周期分シフトさせた縞パターン光に対応する被写体の距離情報を取得する。
【解決手段】プロジェクター12からビット数の異なる複数の縞パターン光を被写体に投影し、カメラ13によりこれらの反射光を撮影する。そして、信頼度算出部15は、これらの反射光から複数の縞パターン光のそれぞれに対応する信頼度を算出し、信頼度が閾値以上の縞パターン光を決定する。さらに、プロジェクター12から信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を投影し、信頼度が閾値以上の縞パターン光及びこれらの所定の周期分シフトさせた縞パターン光に対応する被写体の距離情報を取得する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に、空間符号化法に用いて好適な三次元計測装置、三次元計測方法及びプログラムに関する。
【背景技術】
【0002】
従来、被写体にパターン光を複数投影して、パターン光が投影された被写体を撮像することにより、パターンの変形から三角測量の原理を用いて形状測定するパターン投影法が知られている。その中で、明部と暗部とが任意の幅で交互に配置される縞パターン光を投影して空間を2進符号化する空間符号化法が三次元計測でよく用いられ、製品化もされている。そして、空間符号化法の三次元計測で精度を向上させるには、得られた画像データから明部と暗部との境界位置を正確に決定する必要がある。
【0003】
ところが実際の計測では、被写体の反射率による影響を受けたり、外光による影響を受けたりする。その結果、図10(b)に示すように、境界近傍で輝度値がなだらかな変化となり、境界位置を一意に決定することができない。このとき、撮影した画像上では、明部と暗部との境界位置が灰色の混色となり、分離できない状態で観察される。
【0004】
そこで、境界位置を決定するために、明部と暗部との境界位置を分離できるようにする方法が開示されている(例えば、特許文献1参照)。例えば図11(a)に示す縞パターン光110が図11(b)に示すように被写体111に投影されると、被写体111の反射率などの影響により被写体111の上部に明部と暗部とに分離できないエリア112が生じることがある。この場合、エリア112を投影する縞パターン光110で表すと図11(c)に示すようなパターンになる。そして、図11(c)に示すエリア113の投射光量を部分調整し、縞パターン光を投影した際に、図11(d)に示すような一部修正された縞パターン光を作成する。以上のようにして被写体全体に対して明部と暗部との境界位置を分離している。
【0005】
また、特許文献2には、複数枚の縞パターン光を投影する際に、明部と暗部との幅が最小となる縞パターン光を所定の周期分シフトすることにより計測密度を上げる計測方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−32608号公報
【特許文献2】特開2008−145139号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の発明は、被写体の反射率や外光により影響を受けても明部と暗部とを分離できるが、反射光がぼやけてしまうような場合には対応できない。被写体の反射率や外光による影響は、投射された光が被写体から反射する際の輝度値の大小が原因であるため、投射光の光量を調整することにより対応できる。しかしながら、ボケによる影響は、被写体面における光の拡がりが合焦位置に比べ大きくなり、被写体からの反射光の輝度値が小さくなることが原因のため、投射光の光量を調整しても境界位置の分離はできない。
【0008】
また、特許文献2に記載の発明においても、反射光がぼやけてしまうような場合を考慮しておらず、ボケによる影響により明部と暗部との幅が最小となる縞パターン光の境界位置を分離できない場合は利用できない。
【0009】
本発明は前述の問題点に鑑み、空間符号化法において、反射光がぼやけてしまうような場合に明部と暗部との境界位置を適切に決定できるようにすることを目的としている。
【課題を解決するための手段】
【0010】
本発明の三次元計測装置は、交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影手段と、前記投影手段によって前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影手段と、前記撮影手段によって撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得手段と、前記複数の反射光のそれぞれの信頼度を算出する算出手段とを有し、前記投影手段は、前記算出手段により算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、前記撮影手段は、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする。
【発明の効果】
【0011】
本発明によれば、反射光がぼやけてしまうような場合に明部と暗部との境界位置を適切に決定し、所望する計測密度を維持しながら三次元計測を行うことができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係る三次元計測装置の基本構成例を示すブロック図である。
【図2】第1の実施形態における信頼度の算出方法を説明する図である。
【図3】縞パターン光をシフトさせた場合の境界位置を示す図である。
【図4】縞パターン光をシフトさせた場合の境界位置を示す図である。
【図5】三次元計測の処理手順の一例を示すフローチャートである。
【図6】第2の実施形態における信頼度の算出方法を説明する図である。
【図7】第3の実施形態における信頼度の算出方法を説明する図である。
【図8】一般的な三次元形測装置の構成及び計測方法の概念を示す図である。
【図9】グレイコードと呼ばれる2進符号の縞パターン光の一例を示す図である。
【図10】境界位置付近の輝度の勾配を示す図である。
【図11】従来の修正された縞パターン光を作成する概念を示す図である。
【発明を実施するための形態】
【0013】
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。
【0014】
まず、縞パターン光を投影して空間を2進符号化する空間符号化法の概要について説明する。
図8は、一般的な三次元形測装置の構成及び計測方法の概念を示す図である。
一般の形状測定装置は、測定物体にパターン光を照射するプロジェクター80と、パターン光の反射パターンを撮像するカメラ81とから構成されている。この構成では、プロジェクター80から被写体82に向けて、明部と暗部とが任意の幅で交互に配置される縞パターン光が投射される。縞パターン光は予め決められた明暗領域の幅が異なる複数のパターン形状があり、これらのパターン形状がおのおの投影され、そのたびにカメラ81によりその反射光が撮像され、画像データとして取得される。
【0015】
ここで、被写体82の明部及び暗部の境界位置を(X,Y,Z)とし、境界位置(X,Y,Z)とプロジェクター80とを結んだ時のプロジェクター80の主点位置を(X1,Y1)とする。また、境界位置(X,Y,Z)とカメラ81とを結んだ時のカメラ81の主点位置を(X2,Y2)とする。カメラ81の主点位置(X2,Y2)は、カメラ81のCCDやCMOSなどの撮像センサの水平座標によって求まる。また、水平座標は、撮像センサの水平幅と垂直幅とによって決まり、例えば640×480の撮像センサでは、水平方向のX座標は0から640、垂直方向のY座標は0から480の値を有する。
【0016】
一方、プロジェクター80の主点位置(X1,Y1)も同様に、CCDやCMOSなどの投光センサの水平座標によって求まる。また、プロジェクター80とカメラ81と間の距離Lは基線長となり、装置の構成条件から定められる。これらのパラメータから三角測量の原理によって被写体82の境界位置(X,Y,Z)を求めることができる。そして、被写体82全面に対してそれぞれの境界位置(X,Y,Z)を求めることにより、被写体82の三次元形状を測定することができる。
【0017】
次に、縞パターン光の形状について説明する。
図9は、符号化誤り耐性のあるグレイコードと呼ばれる2進符号の縞パターン光の一例を示す図である。図9においてはいずれも、撮像された反射パターンで黒く観察された部分は0、白く観察された部分は1に対応する。図9(a)に示す例では、全体を2分割し、2つの領域で左から順に1,0と符号化する。図9(b)に示す例では、明部及び暗部の4つの領域を1、0、0、1と符号化し、対応する縞パターン光を照射してその反射パターンを撮像する。さらに、図9(c)に示す例では、8つの領域を1、0、0、1、1、0、0、1と符号化し、対応する縞パターン光を照射してその反射パターンを撮像する。以下、図9(a)〜図9(c)に示す縞パターン光をそれぞれ1bitの縞パターン光、2bitの縞パターン光、3bitの縞パターン光と呼ぶ。このように、各領域に符号化された領域番号が付与され、各領域を判断することができる。図9に示す例では、各領域は左側から順に(1,1,1)、(1,1,0)、(1,0,0)、(1,0,1)、(0,0,1)、(0,0,0)、(0,1,0)、(0,1,1)として判断できる。このようにして3枚の縞パターン光を用いて空間を8分割することができるため、この空間符号化は3bitの空間符号化と呼ばれている。
【0018】
さらに詳細に形状測定を行う場合には、明部及び暗部の領域を次々に縮小しながらn枚の縞パターン光を照射すると、プロジェクターの照射領域に対して2nに分割した領域番号を付与することができ、各領域を判断できる。例えば領域を1024分割する三次元計測においては10bitの空間符号化が行われる。
【0019】
このようなグレイコードは、縞パターン光のずれやぼけなどにより領域境界に符号化の誤りが発生しても、隣接領域と判断されるだけで、大きくずれた領域として符号化誤りを生じないことが特長である。そのため、グレイコードによる空間符号化は一般に用いられている方法である。
【0020】
さらに、空間符号化法の三次元計測で精度を向上させるには、撮像した画像データから明部と暗部との境界の水平座標位置X(以後、境界位置と呼ぶ)を決定する必要がある。図10は、2bitの縞パターン光を撮像した画像データの輝度と水平座標Xとの関係を示す図である。図10(a)に示す例は、理想的な境界位置を示しており、明部及び暗部の輝度値が境界において異なるため、明部と暗部との境界位置が一意に決まり、位置a及び位置bが境界位置と決定することができる。
【0021】
次に、本実施形態に係る三次元計測装置について説明する。
図1は、本実施形態に係る三次元計測装置100の基本構成例を示すブロック図である。
図1において、三次元計測装置100は、縞パターン光を被写体17に投影するプロジェクター12と、縞パターン光が投影された被写体17を撮像するカメラ13とを備えている。また、縞パターン光の投影や被写体17の撮像を指示したり、生成された画像データを計算処理して三次元計測を行ったりする計算処理部1を備えている。
【0022】
計算処理部1は、中央処理部(CPU)10、パターンメモリ11、画像メモリ14、信頼度算出部15、及び計測処理部16を備えており、バスを介して信号のやり取りがなされる。パターンメモリ11はROM等で構成されており、縞パターン光のパターン形状プログラム、投影時間を設定するタイムアカウントプログラムなどを格納する。CPU10から投影指示がなされると、パターンメモリ11は縞パターン光形状信号をプロジェクター12に送信する。そして、タイムアカウント信号をプロジェクター12及びカメラ13に送信し、縞パターン光を投影するタイミング及び反射パターンを撮像するタイミングを管理する。
【0023】
反射パターンを撮像してカメラ13により生成された画像データは、画像メモリ14に一時的に格納され、信頼度算出部15に順次送信される。信頼度算出部15はROMやRAM等で構成されており、縞パターン光の明部と暗部との境界位置を決定し、さらに境界位置の信頼度を算出する。そして、画像データを2値化処理して2値化画像データを生成する。Nbitで空間符号化を行う場合は、縞パターン光はN種類のパターン形状となるので、2値化画像データはN枚生成されることになる。なお、信頼度算出部15にはこれらの処理を行うためのプログラムが格納されており、境界位置を決定する方法及び信頼度を算出する方法については後述する。
【0024】
また、信頼度算出部15は、算出した信頼度の結果をCPU10に送信する。CPU10は信頼度の結果に基づき、信頼度が所定の閾値以上の縞パターン光を所定の周期分シフトするか否かを判断する。この処理の詳細については後述する。
【0025】
以上のように生成された2値化画像データは、計測処理部16に送信される。計測処理部16はROMやRAM等で構成されており、プロジェクター12とカメラ13との基線長、焦点距離、画素数などの機器に依存するパラメータや、予め行うキャリブレーションによるディストーション、外光輝度などの外部パラメータを格納している。さらに、三角測量による三次元計測プログラムも格納している。
【0026】
また、計測処理部16は、2値化画像データを符合化し、画像データを空間変調する。次に、符号化されたデータからプロジェクター12の画素とカメラ13の画素との対応関係をとり、三角測量を行って三次元計測を行う。そして、計測結果をカメラ13の画素数に応じた距離画像データ(距離情報)として生成する。距離画像データは不図示の出力部で画像化され、不図示の表示部に距離画像として表示される。以上の画像メモリ14、信頼度算出部15、計測処理部16の処理はすべてCPU10からの指示に基づいて行われる。
【0027】
次に、信頼度の算出方法について説明する。
図2(a)は、本実施形態において、投影する縞パターン光の一例を示す図である。
図2(a)に示す縞パターン光21は、ビット数が3bitのグレイコードによる空間符号化の縞パターン光であり、以下、ポジパターンと呼ぶ。一方、縞パターン光22は、縞パターン光21の明部と暗部とを反転させた縞パターン光であり、以下、ネガパターンと呼ぶ。図2(a)には、一例として3bitの縞パターン光のポジパターン及びネガパターンを示すが、実際の空間符号化による計測では、プロジェクター12の解像度に応じて、例えば1bitから10bitまでのそれぞれの縞パターン光を投影し、撮影する。例えば、10bitの計測である場合は、撮影枚数は20枚必要となる。
【0028】
図2(b)は、境界位置を決定する方法を説明する図であり、生成した画像データの輝度と水平座標との関係を示す図である。
図2(b)において、輝度線23は縞パターン光21を投影して撮像した画像データの輝度線である。一方、輝度線24は縞パターン光22を投影して撮像した画像データの輝度線であり、水平ピクセル座標の相対位置は輝度線23と同じであるものとする。ここで、縞パターン光21の輝度線23及び縞パターン光22の輝度線24は、互いに位置M及び位置Nで交わっているため、位置M及び位置Nを境界位置とする。
【0029】
図2(c)は、実際の計算方法を説明する図である。
図2(c)において、点25、点26はそれぞれ、縞パターン光21を投影して撮影した画像データのs番目、s+1番目の画素である。一方、点27、点28はそれぞれ、縞パターン光22を投影して撮影した画像データのs番目、s+1番目の画素である。そして、点25と点26とを結ぶ線分と、点27と点28とを結ぶ線分との交点29の水平座標を求め、境界位置Nを算出する。ここで、信頼度は勾配とする2直線の交わりで形成される角度φで定義する。
【0030】
図10(a)に示す例のように、プロジェクターから理想的な矩形波が投影でき、かつボケもなく、被写体反射率なども考慮しないという理想条件では、角度φは180度となる。しかしながら、実際には様々な劣化要因が加わるため、角度φは180度より小さくなり、図10(b)に示す例のように、劣化条件としてボケや反射率などの影響が多ければ多いほど角度φは小さくなる。
【0031】
信頼度である角度φに閾値を設定すると、閾値以下の角度の縞パターン光は信頼度が低く、三次元計測に使用しても正確な距離計測ができないと判定できる。例えば、10bitの計測を行った際に、10bitの縞パターン光のみ信頼度が閾値未満の場合、正確な計測は9bitまでしかできず、10bitの計測に比べ計測密度が小さくなる。本実施形態では、このような場合でも、信頼度が閾値以上の最大ビット数の9bitの縞パターン光を以下に説明する方法で所定の周期分シフトさせて追撮像して計測することにより、10bitの計測と同様の計測密度を得る。
【0032】
次に、計測密度を向上させるために縞パターン光をシフトさせる方法について説明する。
図3は、8bit、9bit、10bitの縞パターン光の形状及びシフトさせた9bitの縞パターン光の形状を示す図である。
図3において、垂直方向は輝度を示し、凸部は明部であり、凹部は暗部である。また、水平方向は画素番号を示している。
【0033】
図3に示すように、8bitの縞パターン光の一周期は16画素、9bitの縞パターン光の一周期は8画素、10bitの縞パターン光の一周期は4画素である。また、9bitの縞パターン光を画素番号でマイナス方向に1/8周期分シフトさせた縞パターン光を9bit−とし、画素番号でプラス方向に1/8周期分シフトさせた縞パターン光を9bit+とする。また8bit、9bit、10bitの縞パターン光で取得できる境界位置を中段に示している。
【0034】
ここで、最初に現われる10bitの縞パターン光の境界位置と9bit+の縞パターン光の境界位置とが一致する。また、10bitの縞パターン光の次の境界位置では、9bit−の縞パターン光の境界位置と一致する。このように、10bitの縞パターン光の境界位置は、9bit+の縞パターン光の境界位置と、9bit−の縞パターン光の境界位置とで交互に一致する。以上より、10bitの縞パターン光は、9bit+の縞パターン光と9bit−の縞パターン光とを用いることにより補うことができる。
【0035】
例えば、10bitの計測において、10bitの縞パターン光が信頼度不足で9bitまでしか計測できない場合に、9bit+の縞パターン光と9bit−の縞パターン光との2枚をさらに撮像する。これにより、10bitの計測と同等の計測密度を得ることができる。
【0036】
図4は、8bitの縞パターン光をシフトさせた場合を説明する図である。
図4において、8bitの縞パターン光を画素番号でマイナス方向に1/16、2/16、3/16周期分シフトさせた縞パターン光をそれぞれ8bit−1、8bit−2、8bit−3とする。また、8bitの縞パターン光を画素番号でプラス方向に1/16、2/16、3/16周期分シフトさせた縞パターン光をそれぞれ8bit+1、8bit+2、8bit+3とする。
【0037】
図4に示すように、最初に現われる10bitの縞パターン光の境界位置と8bit−1の縞パターン光の境界位置とが一致する。また、10bitの縞パターン光の次の境界位置では、8bit+1の縞パターン光の境界位置と一致する。さらに、3番目に現われる10bitの縞パターン光の境界位置では、8bit+3の縞パターン光の境界位置と一致する。同様に4番目に現われる10bitの縞パターン光の境界位置では、8bit−3の縞パターン光の境界位置と一致する。そして、5番目に現われる10bitの縞パターン光の境界位置では、再び8bit−1の縞パターン光の境界位置と一致する。
【0038】
このようにして10bitの縞パターン光は、8bit−1の縞パターン光と、8bit+1の縞パターン光と、8bit−3の縞パターン光と、8bit+3の縞パターン光との4つを用いることにより補うことができる。また、図4に示すように、9bitの縞パターン光は、同様に8bit−2の縞パターン光と8bit+2の縞パターン光との2つを用いることにより補うことができる。
【0039】
以上のように、下位のbitの縞パターン光は、上位のbitの縞パターン光をシフトさせることによって補うことができる。そして、Mbitの縞パターン光を用いてLbitの縞パターン光を補うためのシフト量は下記の式(1)により算出することができる。
シフト量=±k/2(L-M+2) ・・・式(1)
但しk=1〜2L-M−1、かつL>M
【0040】
次に、本実施形態における三次元計測の手順について説明する。
図5は、本実施形態における三次元計測の処理手順の一例を示すフローチャートである。なお、図5に示す各処理は、CPU10の制御により行われる。
まず、ステップS500において、予め決められたNbitの計測を行うため、プロジェクター12により1bitからNbitまでの縞パターン光のポジパターン及びネガパターンを投影し、カメラ13により撮影を順次行う。このとき、2×N枚の画像データが撮影され、画像メモリ14に記憶される。
【0041】
次に、ステップS501において、信頼度算出部15は、各bitの信頼度を、ポジパターン及びネガパターンを用いて図2に示した手順により算出する。そして、ステップS502において、信頼度が閾値未満の縞パターン光が存在するか否かを判定する。この判定の結果、閾値未満のものが存在しない場合は、十分な精度の計測が可能であると判断することができるため、ステップS503に進む。そして、ステップS503において、計測処理部16は、撮影した画像データを用いて2値化処理を行い、三次元計測演算処理を行って距離画像を生成する。
【0042】
一方、ステップS502の判定の結果、閾値未満の縞パターン光が存在する場合は、ステップS504において、信頼度算出部15は、信頼度が閾値以上の縞パターン光を決定する。ここで、M(1≦M<N)bitの縞パターン光は、信頼度が閾値以上である最大ビットの縞パターン光であるものとする。すなわち、Mbitの縞パターン光は、計測劣化要因によって満足できる計測ができる最低限の縞パターン光である。そこで、Mbitの縞パターン光をシフトさせて計測を行うことにより、Nbitまでの縞パターン光を用いて計測した場合と同じ計測密度を得ることができる。また、このMbitの情報を不図示の表示部に表示し、Mbitが最大ビットの縞パターン光であることを計測者に知らせる。
【0043】
次に、ステップS505において、計測処理部16は、計測者により所望する計測密度を達成するためのbit数の変更指示があったか否かを判定する。例えば、Nbitの計測密度を当初は想定して計測を始めたが、劣化による影響のためMbitまでしか測定できない場合がある。このような場合に、Nbitまで計測を行うか、もしくはNよりも小さいX(M≦X<N)bitで計測を止めるかを計測者は判断できる。その結果、Xbitまで計測を行うように不図示の操作部からbit数の変更指示があったか否かを判定する。
【0044】
この判定の結果、bit数の変更指示があった場合は、ステップS506において、計測処理部16は、計測を行う最大bit数をNよりも小さいXに変更する。そして、ステップS507において、XがMと一致するか否かを判断する。この判断の結果、XがMである場合は、縞パターン光をシフトさせる必要がないため、ステップS503に進む。一方、ステップS507の判断の結果、XがMよりも大きい値である場合は、ステップS508に進む。一方、ステップS505の判定の結果、bit数の変更指示がない場合は、ステップS508において、計測処理部16は、(M+1)bit〜N(またはX)bitの縞パターン光に対して、前述した式(1)に従ってシフト量を算出する。
【0045】
次に、ステップS509において、算出したシフト量分の枚数の縞パターン光の形状信号をパターンメモリ11に記憶して、プロジェクター12からこれらの縞パターン光を投射し、カメラ13により順次撮影を行う。次に、ステップS510において、計測処理部16は、ステップS509で撮影した画像データから2値化処理を行い、その2値化画像データと、Mbitまでの2値化画像データとを用いて三次元計測演算処理を行う。そして、最終的にN(またはX)bitの距離画像を生成する。
【0046】
以上のように本実施形態によれば、予め定めたNbitまでの計測ができない場合においても、計測可能な間隔の縞パターン光を信頼度に基づいて決定し、前述の式(1)により算出されるシフト量に基づいてシフトさせて計測を行う。これにより、使用者が所望する計測密度を達成することができる。また、本実施形態のように縞パターン光をシフトさせると、通常の空間符号化法に比べて投影する縞パターン光の枚数が多くなるが、計測状況に応じた適切な計測が可能になる。具体的には、全ての縞パターン光の信頼度が閾値以上の場合は通常の空間符号化法を行う。これに対して閾値以下の縞パターン光がある場合は、計測者が任意の計測密度を設定して計測を行うことができるので、自由度の高い計測が可能となる。
【0047】
(第2の実施形態)
第1の実施形態では、ポジパターン及びネガパターンを用いて縞パターン光の信頼度を算出した。これに対して本実施形態では、ポジパターン及びネガパターンを用いずに空間符号化法の信頼度を算出する方法について説明する。なお、本実施形態の三次元計測装置100の基本構成については第1の実施形態と同様であるため、説明は省略する。また、三次元計測の処理手順についても図5と同様であるため、説明は省略する。
【0048】
図6(a)は、本実施形態において、投影する縞パターン光の一例を示す図である。
図6(a)に示す縞パターン光21は、3bitのグレイコードによる空間符号化の縞パターン光である。全照明パターン62は、明部のみのパターンであり、全消灯パターン63は暗部のみのパターンである。本実施形態では、3bitの空間符号化を行う場合に、1bitから3bitの縞パターン光と、明部のみの全照明パターン62と、暗部のみの全消灯パターン63とを用いる。
【0049】
図6(b)は、縞パターン光21の境界位置を決定する方法について説明する図であり、生成した画像データの輝度と水平座標との関係を示す図である。
図6(b)において、輝度線23は、縞パターン光21を投影して撮像した画像データの輝度線である。一方、輝度線64は全照明パターン62を投影して撮像した画像データの輝度線であり、輝度線65は全消灯パターン63を投影して撮像した画像データの輝度線である。また、輝度線66は、2つの輝度線64、65の平均値とする。ここで、縞パターン光21の輝度線23及び平均値の輝度線66は、互いに位置M′、位置N′で交わっているため、位置M′、位置N′を境界位置とする。
【0050】
図6(c)は実際の計算方法を説明する図である。
図6(c)において、点67、点68はそれぞれ縞パターン光21を投影して撮影した画像データのs番目、s+1番目の画素である。また、点69、点70はそれぞれ、全照明パターン62を投影して撮影した画像データのs番目、s+1番目の画素である。さらに、点71、点72はそれぞれ、全消灯パターン63を投影して撮影した画像データのs番目、s+1番目の画素である。
【0051】
全照明パターン62と全消灯パターン63とを投影して撮影した画像データの対応する画素の平均値を求めると、s番目の点69と点71との平均値は点73となり、s+1番目の点70と点72との平均値は点74となる。そして、点67と点68とを結ぶ線分と、点73と点74とを結ぶ線分との交点75の水平座標を求め、境界位置N′を算出できる。ここで、信頼度は2直線の交わりで形成される角度θで定義する。
【0052】
以上のように本実施形態によれば、ポジパターン及びネガパターンを使用しないで第1の実施形態と同様に信頼度を求めることができる。このようなポジパターン及びネガパターンを使用しない空間符号化法は、ポジパターン及びネガパターンを用いる場合に比べ、撮影枚数は約半分で済むため、高速性をより重視した計測では有効な手段である。
【0053】
(第3の実施形態)
本実施形態では、さらに、第1及び第2の実施形態とは異なる信頼度の算出方法について説明する。なお、本実施形態の三次元計測装置100の基本構成については第1の実施形態と同様であるため、説明は省略する。また、三次元計測の処理手順についても図5と同様であるため、説明は省略する。
【0054】
図7は、本実施形態において、生成した画像データの輝度と水平座標Xの関係を示す図である。
図7に示すように、縞パターン光の輝度の上限値及び下限値を求め、それぞれLmax、Lminとする。本実施形態では、この上限値及び下限値の差分値として輝度差D=Lmax−Lminを求め、その輝度差Dを信頼度と定義する。なお、輝度差Dの代わりに、以下の式(2)から算出されるコントラスト比を信頼度と定義してもよい。コントラスト比は、
C=(Lmax−Lmin)/(Lmax+Lmin) ・・・式(2)
【0055】
以上のように本実施形態によれば、画像データの輝度値の上限値及び下限値に基づいて算出する。このように、コントラスト比など一般的な概念を用いて信頼度として使用することも可能である。
【0056】
(第4の実施形態)
本発明は、被写体の材質による縞パターン光のぼけに対しても有効である。被写体の材質が半透明体や多孔質などの場合、投影された縞パターン光が表面近傍で内部散乱を起こし、縞パターン光がぼける。その現象が発生した際にも、第1から第3の実施形態で示した信頼度を用いて、信頼できる縞パターン光をシフトさせることにより所望の計測密度で距離計測を行うことが可能である。
【0057】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0058】
10 CPU
12 プロジェクター
13 カメラ
15 信頼度算出部
16 計測処理部
【技術分野】
【0001】
本発明は、特に、空間符号化法に用いて好適な三次元計測装置、三次元計測方法及びプログラムに関する。
【背景技術】
【0002】
従来、被写体にパターン光を複数投影して、パターン光が投影された被写体を撮像することにより、パターンの変形から三角測量の原理を用いて形状測定するパターン投影法が知られている。その中で、明部と暗部とが任意の幅で交互に配置される縞パターン光を投影して空間を2進符号化する空間符号化法が三次元計測でよく用いられ、製品化もされている。そして、空間符号化法の三次元計測で精度を向上させるには、得られた画像データから明部と暗部との境界位置を正確に決定する必要がある。
【0003】
ところが実際の計測では、被写体の反射率による影響を受けたり、外光による影響を受けたりする。その結果、図10(b)に示すように、境界近傍で輝度値がなだらかな変化となり、境界位置を一意に決定することができない。このとき、撮影した画像上では、明部と暗部との境界位置が灰色の混色となり、分離できない状態で観察される。
【0004】
そこで、境界位置を決定するために、明部と暗部との境界位置を分離できるようにする方法が開示されている(例えば、特許文献1参照)。例えば図11(a)に示す縞パターン光110が図11(b)に示すように被写体111に投影されると、被写体111の反射率などの影響により被写体111の上部に明部と暗部とに分離できないエリア112が生じることがある。この場合、エリア112を投影する縞パターン光110で表すと図11(c)に示すようなパターンになる。そして、図11(c)に示すエリア113の投射光量を部分調整し、縞パターン光を投影した際に、図11(d)に示すような一部修正された縞パターン光を作成する。以上のようにして被写体全体に対して明部と暗部との境界位置を分離している。
【0005】
また、特許文献2には、複数枚の縞パターン光を投影する際に、明部と暗部との幅が最小となる縞パターン光を所定の周期分シフトすることにより計測密度を上げる計測方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−32608号公報
【特許文献2】特開2008−145139号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の発明は、被写体の反射率や外光により影響を受けても明部と暗部とを分離できるが、反射光がぼやけてしまうような場合には対応できない。被写体の反射率や外光による影響は、投射された光が被写体から反射する際の輝度値の大小が原因であるため、投射光の光量を調整することにより対応できる。しかしながら、ボケによる影響は、被写体面における光の拡がりが合焦位置に比べ大きくなり、被写体からの反射光の輝度値が小さくなることが原因のため、投射光の光量を調整しても境界位置の分離はできない。
【0008】
また、特許文献2に記載の発明においても、反射光がぼやけてしまうような場合を考慮しておらず、ボケによる影響により明部と暗部との幅が最小となる縞パターン光の境界位置を分離できない場合は利用できない。
【0009】
本発明は前述の問題点に鑑み、空間符号化法において、反射光がぼやけてしまうような場合に明部と暗部との境界位置を適切に決定できるようにすることを目的としている。
【課題を解決するための手段】
【0010】
本発明の三次元計測装置は、交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影手段と、前記投影手段によって前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影手段と、前記撮影手段によって撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得手段と、前記複数の反射光のそれぞれの信頼度を算出する算出手段とを有し、前記投影手段は、前記算出手段により算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、前記撮影手段は、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする。
【発明の効果】
【0011】
本発明によれば、反射光がぼやけてしまうような場合に明部と暗部との境界位置を適切に決定し、所望する計測密度を維持しながら三次元計測を行うことができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係る三次元計測装置の基本構成例を示すブロック図である。
【図2】第1の実施形態における信頼度の算出方法を説明する図である。
【図3】縞パターン光をシフトさせた場合の境界位置を示す図である。
【図4】縞パターン光をシフトさせた場合の境界位置を示す図である。
【図5】三次元計測の処理手順の一例を示すフローチャートである。
【図6】第2の実施形態における信頼度の算出方法を説明する図である。
【図7】第3の実施形態における信頼度の算出方法を説明する図である。
【図8】一般的な三次元形測装置の構成及び計測方法の概念を示す図である。
【図9】グレイコードと呼ばれる2進符号の縞パターン光の一例を示す図である。
【図10】境界位置付近の輝度の勾配を示す図である。
【図11】従来の修正された縞パターン光を作成する概念を示す図である。
【発明を実施するための形態】
【0013】
(第1の実施形態)
以下、本発明の第1の実施形態について、図面を参照しながら説明する。
【0014】
まず、縞パターン光を投影して空間を2進符号化する空間符号化法の概要について説明する。
図8は、一般的な三次元形測装置の構成及び計測方法の概念を示す図である。
一般の形状測定装置は、測定物体にパターン光を照射するプロジェクター80と、パターン光の反射パターンを撮像するカメラ81とから構成されている。この構成では、プロジェクター80から被写体82に向けて、明部と暗部とが任意の幅で交互に配置される縞パターン光が投射される。縞パターン光は予め決められた明暗領域の幅が異なる複数のパターン形状があり、これらのパターン形状がおのおの投影され、そのたびにカメラ81によりその反射光が撮像され、画像データとして取得される。
【0015】
ここで、被写体82の明部及び暗部の境界位置を(X,Y,Z)とし、境界位置(X,Y,Z)とプロジェクター80とを結んだ時のプロジェクター80の主点位置を(X1,Y1)とする。また、境界位置(X,Y,Z)とカメラ81とを結んだ時のカメラ81の主点位置を(X2,Y2)とする。カメラ81の主点位置(X2,Y2)は、カメラ81のCCDやCMOSなどの撮像センサの水平座標によって求まる。また、水平座標は、撮像センサの水平幅と垂直幅とによって決まり、例えば640×480の撮像センサでは、水平方向のX座標は0から640、垂直方向のY座標は0から480の値を有する。
【0016】
一方、プロジェクター80の主点位置(X1,Y1)も同様に、CCDやCMOSなどの投光センサの水平座標によって求まる。また、プロジェクター80とカメラ81と間の距離Lは基線長となり、装置の構成条件から定められる。これらのパラメータから三角測量の原理によって被写体82の境界位置(X,Y,Z)を求めることができる。そして、被写体82全面に対してそれぞれの境界位置(X,Y,Z)を求めることにより、被写体82の三次元形状を測定することができる。
【0017】
次に、縞パターン光の形状について説明する。
図9は、符号化誤り耐性のあるグレイコードと呼ばれる2進符号の縞パターン光の一例を示す図である。図9においてはいずれも、撮像された反射パターンで黒く観察された部分は0、白く観察された部分は1に対応する。図9(a)に示す例では、全体を2分割し、2つの領域で左から順に1,0と符号化する。図9(b)に示す例では、明部及び暗部の4つの領域を1、0、0、1と符号化し、対応する縞パターン光を照射してその反射パターンを撮像する。さらに、図9(c)に示す例では、8つの領域を1、0、0、1、1、0、0、1と符号化し、対応する縞パターン光を照射してその反射パターンを撮像する。以下、図9(a)〜図9(c)に示す縞パターン光をそれぞれ1bitの縞パターン光、2bitの縞パターン光、3bitの縞パターン光と呼ぶ。このように、各領域に符号化された領域番号が付与され、各領域を判断することができる。図9に示す例では、各領域は左側から順に(1,1,1)、(1,1,0)、(1,0,0)、(1,0,1)、(0,0,1)、(0,0,0)、(0,1,0)、(0,1,1)として判断できる。このようにして3枚の縞パターン光を用いて空間を8分割することができるため、この空間符号化は3bitの空間符号化と呼ばれている。
【0018】
さらに詳細に形状測定を行う場合には、明部及び暗部の領域を次々に縮小しながらn枚の縞パターン光を照射すると、プロジェクターの照射領域に対して2nに分割した領域番号を付与することができ、各領域を判断できる。例えば領域を1024分割する三次元計測においては10bitの空間符号化が行われる。
【0019】
このようなグレイコードは、縞パターン光のずれやぼけなどにより領域境界に符号化の誤りが発生しても、隣接領域と判断されるだけで、大きくずれた領域として符号化誤りを生じないことが特長である。そのため、グレイコードによる空間符号化は一般に用いられている方法である。
【0020】
さらに、空間符号化法の三次元計測で精度を向上させるには、撮像した画像データから明部と暗部との境界の水平座標位置X(以後、境界位置と呼ぶ)を決定する必要がある。図10は、2bitの縞パターン光を撮像した画像データの輝度と水平座標Xとの関係を示す図である。図10(a)に示す例は、理想的な境界位置を示しており、明部及び暗部の輝度値が境界において異なるため、明部と暗部との境界位置が一意に決まり、位置a及び位置bが境界位置と決定することができる。
【0021】
次に、本実施形態に係る三次元計測装置について説明する。
図1は、本実施形態に係る三次元計測装置100の基本構成例を示すブロック図である。
図1において、三次元計測装置100は、縞パターン光を被写体17に投影するプロジェクター12と、縞パターン光が投影された被写体17を撮像するカメラ13とを備えている。また、縞パターン光の投影や被写体17の撮像を指示したり、生成された画像データを計算処理して三次元計測を行ったりする計算処理部1を備えている。
【0022】
計算処理部1は、中央処理部(CPU)10、パターンメモリ11、画像メモリ14、信頼度算出部15、及び計測処理部16を備えており、バスを介して信号のやり取りがなされる。パターンメモリ11はROM等で構成されており、縞パターン光のパターン形状プログラム、投影時間を設定するタイムアカウントプログラムなどを格納する。CPU10から投影指示がなされると、パターンメモリ11は縞パターン光形状信号をプロジェクター12に送信する。そして、タイムアカウント信号をプロジェクター12及びカメラ13に送信し、縞パターン光を投影するタイミング及び反射パターンを撮像するタイミングを管理する。
【0023】
反射パターンを撮像してカメラ13により生成された画像データは、画像メモリ14に一時的に格納され、信頼度算出部15に順次送信される。信頼度算出部15はROMやRAM等で構成されており、縞パターン光の明部と暗部との境界位置を決定し、さらに境界位置の信頼度を算出する。そして、画像データを2値化処理して2値化画像データを生成する。Nbitで空間符号化を行う場合は、縞パターン光はN種類のパターン形状となるので、2値化画像データはN枚生成されることになる。なお、信頼度算出部15にはこれらの処理を行うためのプログラムが格納されており、境界位置を決定する方法及び信頼度を算出する方法については後述する。
【0024】
また、信頼度算出部15は、算出した信頼度の結果をCPU10に送信する。CPU10は信頼度の結果に基づき、信頼度が所定の閾値以上の縞パターン光を所定の周期分シフトするか否かを判断する。この処理の詳細については後述する。
【0025】
以上のように生成された2値化画像データは、計測処理部16に送信される。計測処理部16はROMやRAM等で構成されており、プロジェクター12とカメラ13との基線長、焦点距離、画素数などの機器に依存するパラメータや、予め行うキャリブレーションによるディストーション、外光輝度などの外部パラメータを格納している。さらに、三角測量による三次元計測プログラムも格納している。
【0026】
また、計測処理部16は、2値化画像データを符合化し、画像データを空間変調する。次に、符号化されたデータからプロジェクター12の画素とカメラ13の画素との対応関係をとり、三角測量を行って三次元計測を行う。そして、計測結果をカメラ13の画素数に応じた距離画像データ(距離情報)として生成する。距離画像データは不図示の出力部で画像化され、不図示の表示部に距離画像として表示される。以上の画像メモリ14、信頼度算出部15、計測処理部16の処理はすべてCPU10からの指示に基づいて行われる。
【0027】
次に、信頼度の算出方法について説明する。
図2(a)は、本実施形態において、投影する縞パターン光の一例を示す図である。
図2(a)に示す縞パターン光21は、ビット数が3bitのグレイコードによる空間符号化の縞パターン光であり、以下、ポジパターンと呼ぶ。一方、縞パターン光22は、縞パターン光21の明部と暗部とを反転させた縞パターン光であり、以下、ネガパターンと呼ぶ。図2(a)には、一例として3bitの縞パターン光のポジパターン及びネガパターンを示すが、実際の空間符号化による計測では、プロジェクター12の解像度に応じて、例えば1bitから10bitまでのそれぞれの縞パターン光を投影し、撮影する。例えば、10bitの計測である場合は、撮影枚数は20枚必要となる。
【0028】
図2(b)は、境界位置を決定する方法を説明する図であり、生成した画像データの輝度と水平座標との関係を示す図である。
図2(b)において、輝度線23は縞パターン光21を投影して撮像した画像データの輝度線である。一方、輝度線24は縞パターン光22を投影して撮像した画像データの輝度線であり、水平ピクセル座標の相対位置は輝度線23と同じであるものとする。ここで、縞パターン光21の輝度線23及び縞パターン光22の輝度線24は、互いに位置M及び位置Nで交わっているため、位置M及び位置Nを境界位置とする。
【0029】
図2(c)は、実際の計算方法を説明する図である。
図2(c)において、点25、点26はそれぞれ、縞パターン光21を投影して撮影した画像データのs番目、s+1番目の画素である。一方、点27、点28はそれぞれ、縞パターン光22を投影して撮影した画像データのs番目、s+1番目の画素である。そして、点25と点26とを結ぶ線分と、点27と点28とを結ぶ線分との交点29の水平座標を求め、境界位置Nを算出する。ここで、信頼度は勾配とする2直線の交わりで形成される角度φで定義する。
【0030】
図10(a)に示す例のように、プロジェクターから理想的な矩形波が投影でき、かつボケもなく、被写体反射率なども考慮しないという理想条件では、角度φは180度となる。しかしながら、実際には様々な劣化要因が加わるため、角度φは180度より小さくなり、図10(b)に示す例のように、劣化条件としてボケや反射率などの影響が多ければ多いほど角度φは小さくなる。
【0031】
信頼度である角度φに閾値を設定すると、閾値以下の角度の縞パターン光は信頼度が低く、三次元計測に使用しても正確な距離計測ができないと判定できる。例えば、10bitの計測を行った際に、10bitの縞パターン光のみ信頼度が閾値未満の場合、正確な計測は9bitまでしかできず、10bitの計測に比べ計測密度が小さくなる。本実施形態では、このような場合でも、信頼度が閾値以上の最大ビット数の9bitの縞パターン光を以下に説明する方法で所定の周期分シフトさせて追撮像して計測することにより、10bitの計測と同様の計測密度を得る。
【0032】
次に、計測密度を向上させるために縞パターン光をシフトさせる方法について説明する。
図3は、8bit、9bit、10bitの縞パターン光の形状及びシフトさせた9bitの縞パターン光の形状を示す図である。
図3において、垂直方向は輝度を示し、凸部は明部であり、凹部は暗部である。また、水平方向は画素番号を示している。
【0033】
図3に示すように、8bitの縞パターン光の一周期は16画素、9bitの縞パターン光の一周期は8画素、10bitの縞パターン光の一周期は4画素である。また、9bitの縞パターン光を画素番号でマイナス方向に1/8周期分シフトさせた縞パターン光を9bit−とし、画素番号でプラス方向に1/8周期分シフトさせた縞パターン光を9bit+とする。また8bit、9bit、10bitの縞パターン光で取得できる境界位置を中段に示している。
【0034】
ここで、最初に現われる10bitの縞パターン光の境界位置と9bit+の縞パターン光の境界位置とが一致する。また、10bitの縞パターン光の次の境界位置では、9bit−の縞パターン光の境界位置と一致する。このように、10bitの縞パターン光の境界位置は、9bit+の縞パターン光の境界位置と、9bit−の縞パターン光の境界位置とで交互に一致する。以上より、10bitの縞パターン光は、9bit+の縞パターン光と9bit−の縞パターン光とを用いることにより補うことができる。
【0035】
例えば、10bitの計測において、10bitの縞パターン光が信頼度不足で9bitまでしか計測できない場合に、9bit+の縞パターン光と9bit−の縞パターン光との2枚をさらに撮像する。これにより、10bitの計測と同等の計測密度を得ることができる。
【0036】
図4は、8bitの縞パターン光をシフトさせた場合を説明する図である。
図4において、8bitの縞パターン光を画素番号でマイナス方向に1/16、2/16、3/16周期分シフトさせた縞パターン光をそれぞれ8bit−1、8bit−2、8bit−3とする。また、8bitの縞パターン光を画素番号でプラス方向に1/16、2/16、3/16周期分シフトさせた縞パターン光をそれぞれ8bit+1、8bit+2、8bit+3とする。
【0037】
図4に示すように、最初に現われる10bitの縞パターン光の境界位置と8bit−1の縞パターン光の境界位置とが一致する。また、10bitの縞パターン光の次の境界位置では、8bit+1の縞パターン光の境界位置と一致する。さらに、3番目に現われる10bitの縞パターン光の境界位置では、8bit+3の縞パターン光の境界位置と一致する。同様に4番目に現われる10bitの縞パターン光の境界位置では、8bit−3の縞パターン光の境界位置と一致する。そして、5番目に現われる10bitの縞パターン光の境界位置では、再び8bit−1の縞パターン光の境界位置と一致する。
【0038】
このようにして10bitの縞パターン光は、8bit−1の縞パターン光と、8bit+1の縞パターン光と、8bit−3の縞パターン光と、8bit+3の縞パターン光との4つを用いることにより補うことができる。また、図4に示すように、9bitの縞パターン光は、同様に8bit−2の縞パターン光と8bit+2の縞パターン光との2つを用いることにより補うことができる。
【0039】
以上のように、下位のbitの縞パターン光は、上位のbitの縞パターン光をシフトさせることによって補うことができる。そして、Mbitの縞パターン光を用いてLbitの縞パターン光を補うためのシフト量は下記の式(1)により算出することができる。
シフト量=±k/2(L-M+2) ・・・式(1)
但しk=1〜2L-M−1、かつL>M
【0040】
次に、本実施形態における三次元計測の手順について説明する。
図5は、本実施形態における三次元計測の処理手順の一例を示すフローチャートである。なお、図5に示す各処理は、CPU10の制御により行われる。
まず、ステップS500において、予め決められたNbitの計測を行うため、プロジェクター12により1bitからNbitまでの縞パターン光のポジパターン及びネガパターンを投影し、カメラ13により撮影を順次行う。このとき、2×N枚の画像データが撮影され、画像メモリ14に記憶される。
【0041】
次に、ステップS501において、信頼度算出部15は、各bitの信頼度を、ポジパターン及びネガパターンを用いて図2に示した手順により算出する。そして、ステップS502において、信頼度が閾値未満の縞パターン光が存在するか否かを判定する。この判定の結果、閾値未満のものが存在しない場合は、十分な精度の計測が可能であると判断することができるため、ステップS503に進む。そして、ステップS503において、計測処理部16は、撮影した画像データを用いて2値化処理を行い、三次元計測演算処理を行って距離画像を生成する。
【0042】
一方、ステップS502の判定の結果、閾値未満の縞パターン光が存在する場合は、ステップS504において、信頼度算出部15は、信頼度が閾値以上の縞パターン光を決定する。ここで、M(1≦M<N)bitの縞パターン光は、信頼度が閾値以上である最大ビットの縞パターン光であるものとする。すなわち、Mbitの縞パターン光は、計測劣化要因によって満足できる計測ができる最低限の縞パターン光である。そこで、Mbitの縞パターン光をシフトさせて計測を行うことにより、Nbitまでの縞パターン光を用いて計測した場合と同じ計測密度を得ることができる。また、このMbitの情報を不図示の表示部に表示し、Mbitが最大ビットの縞パターン光であることを計測者に知らせる。
【0043】
次に、ステップS505において、計測処理部16は、計測者により所望する計測密度を達成するためのbit数の変更指示があったか否かを判定する。例えば、Nbitの計測密度を当初は想定して計測を始めたが、劣化による影響のためMbitまでしか測定できない場合がある。このような場合に、Nbitまで計測を行うか、もしくはNよりも小さいX(M≦X<N)bitで計測を止めるかを計測者は判断できる。その結果、Xbitまで計測を行うように不図示の操作部からbit数の変更指示があったか否かを判定する。
【0044】
この判定の結果、bit数の変更指示があった場合は、ステップS506において、計測処理部16は、計測を行う最大bit数をNよりも小さいXに変更する。そして、ステップS507において、XがMと一致するか否かを判断する。この判断の結果、XがMである場合は、縞パターン光をシフトさせる必要がないため、ステップS503に進む。一方、ステップS507の判断の結果、XがMよりも大きい値である場合は、ステップS508に進む。一方、ステップS505の判定の結果、bit数の変更指示がない場合は、ステップS508において、計測処理部16は、(M+1)bit〜N(またはX)bitの縞パターン光に対して、前述した式(1)に従ってシフト量を算出する。
【0045】
次に、ステップS509において、算出したシフト量分の枚数の縞パターン光の形状信号をパターンメモリ11に記憶して、プロジェクター12からこれらの縞パターン光を投射し、カメラ13により順次撮影を行う。次に、ステップS510において、計測処理部16は、ステップS509で撮影した画像データから2値化処理を行い、その2値化画像データと、Mbitまでの2値化画像データとを用いて三次元計測演算処理を行う。そして、最終的にN(またはX)bitの距離画像を生成する。
【0046】
以上のように本実施形態によれば、予め定めたNbitまでの計測ができない場合においても、計測可能な間隔の縞パターン光を信頼度に基づいて決定し、前述の式(1)により算出されるシフト量に基づいてシフトさせて計測を行う。これにより、使用者が所望する計測密度を達成することができる。また、本実施形態のように縞パターン光をシフトさせると、通常の空間符号化法に比べて投影する縞パターン光の枚数が多くなるが、計測状況に応じた適切な計測が可能になる。具体的には、全ての縞パターン光の信頼度が閾値以上の場合は通常の空間符号化法を行う。これに対して閾値以下の縞パターン光がある場合は、計測者が任意の計測密度を設定して計測を行うことができるので、自由度の高い計測が可能となる。
【0047】
(第2の実施形態)
第1の実施形態では、ポジパターン及びネガパターンを用いて縞パターン光の信頼度を算出した。これに対して本実施形態では、ポジパターン及びネガパターンを用いずに空間符号化法の信頼度を算出する方法について説明する。なお、本実施形態の三次元計測装置100の基本構成については第1の実施形態と同様であるため、説明は省略する。また、三次元計測の処理手順についても図5と同様であるため、説明は省略する。
【0048】
図6(a)は、本実施形態において、投影する縞パターン光の一例を示す図である。
図6(a)に示す縞パターン光21は、3bitのグレイコードによる空間符号化の縞パターン光である。全照明パターン62は、明部のみのパターンであり、全消灯パターン63は暗部のみのパターンである。本実施形態では、3bitの空間符号化を行う場合に、1bitから3bitの縞パターン光と、明部のみの全照明パターン62と、暗部のみの全消灯パターン63とを用いる。
【0049】
図6(b)は、縞パターン光21の境界位置を決定する方法について説明する図であり、生成した画像データの輝度と水平座標との関係を示す図である。
図6(b)において、輝度線23は、縞パターン光21を投影して撮像した画像データの輝度線である。一方、輝度線64は全照明パターン62を投影して撮像した画像データの輝度線であり、輝度線65は全消灯パターン63を投影して撮像した画像データの輝度線である。また、輝度線66は、2つの輝度線64、65の平均値とする。ここで、縞パターン光21の輝度線23及び平均値の輝度線66は、互いに位置M′、位置N′で交わっているため、位置M′、位置N′を境界位置とする。
【0050】
図6(c)は実際の計算方法を説明する図である。
図6(c)において、点67、点68はそれぞれ縞パターン光21を投影して撮影した画像データのs番目、s+1番目の画素である。また、点69、点70はそれぞれ、全照明パターン62を投影して撮影した画像データのs番目、s+1番目の画素である。さらに、点71、点72はそれぞれ、全消灯パターン63を投影して撮影した画像データのs番目、s+1番目の画素である。
【0051】
全照明パターン62と全消灯パターン63とを投影して撮影した画像データの対応する画素の平均値を求めると、s番目の点69と点71との平均値は点73となり、s+1番目の点70と点72との平均値は点74となる。そして、点67と点68とを結ぶ線分と、点73と点74とを結ぶ線分との交点75の水平座標を求め、境界位置N′を算出できる。ここで、信頼度は2直線の交わりで形成される角度θで定義する。
【0052】
以上のように本実施形態によれば、ポジパターン及びネガパターンを使用しないで第1の実施形態と同様に信頼度を求めることができる。このようなポジパターン及びネガパターンを使用しない空間符号化法は、ポジパターン及びネガパターンを用いる場合に比べ、撮影枚数は約半分で済むため、高速性をより重視した計測では有効な手段である。
【0053】
(第3の実施形態)
本実施形態では、さらに、第1及び第2の実施形態とは異なる信頼度の算出方法について説明する。なお、本実施形態の三次元計測装置100の基本構成については第1の実施形態と同様であるため、説明は省略する。また、三次元計測の処理手順についても図5と同様であるため、説明は省略する。
【0054】
図7は、本実施形態において、生成した画像データの輝度と水平座標Xの関係を示す図である。
図7に示すように、縞パターン光の輝度の上限値及び下限値を求め、それぞれLmax、Lminとする。本実施形態では、この上限値及び下限値の差分値として輝度差D=Lmax−Lminを求め、その輝度差Dを信頼度と定義する。なお、輝度差Dの代わりに、以下の式(2)から算出されるコントラスト比を信頼度と定義してもよい。コントラスト比は、
C=(Lmax−Lmin)/(Lmax+Lmin) ・・・式(2)
【0055】
以上のように本実施形態によれば、画像データの輝度値の上限値及び下限値に基づいて算出する。このように、コントラスト比など一般的な概念を用いて信頼度として使用することも可能である。
【0056】
(第4の実施形態)
本発明は、被写体の材質による縞パターン光のぼけに対しても有効である。被写体の材質が半透明体や多孔質などの場合、投影された縞パターン光が表面近傍で内部散乱を起こし、縞パターン光がぼける。その現象が発生した際にも、第1から第3の実施形態で示した信頼度を用いて、信頼できる縞パターン光をシフトさせることにより所望の計測密度で距離計測を行うことが可能である。
【0057】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0058】
10 CPU
12 プロジェクター
13 カメラ
15 信頼度算出部
16 計測処理部
【特許請求の範囲】
【請求項1】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影手段と、
前記投影手段によって前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影手段と、
前記撮影手段によって撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得手段と、
前記複数の反射光のそれぞれの信頼度を算出する算出手段とを有し、
前記投影手段は、前記算出手段により算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影手段は、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする三次元計測装置。
【請求項2】
前記算出手段は、前記明暗領域が反転している境界位置での輝度値の勾配に基づいた信頼度を算出することを特徴とする請求項1に記載の三次元計測装置。
【請求項3】
前記算出手段は、前記明暗領域の輝度値を算出し、前記算出した輝度値の上限値と下限値との差分、またはコントラスト比に基づいた信頼度を算出することを特徴とする請求項1に記載の三次元計測装置。
【請求項4】
前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を用いて、前記信頼度が閾値未満の縞パターン光に対応する距離情報の代わりとすることを特徴とする請求項1〜3の何れか1項に記載の三次元計測装置。
【請求項5】
前記所定の周期は、計測に必要とする縞パターン光のビット数をLと、前記信頼度が閾値以上の縞パターンの最大ビット数をMとした場合に、±k/2(L-M+2)(k=1〜2L-M−1)となる量であることを特徴とする請求項1〜4の何れか1項に記載の三次元計測装置。
【請求項6】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影工程と、
前記投影工程において前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影工程と、
前記撮影工程において撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得工程と、
前記複数の反射光のそれぞれの信頼度を算出する算出工程とを有し、
前記投影工程においては、前記算出工程において算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影工程においては、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得工程においては、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする三次元計測方法。
【請求項7】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影工程と、
前記投影工程において前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影工程と、
前記撮影工程において撮影された複数の反射光から、前記複数の縞パターン光のそれぞ
れに対応する前記被写体の距離情報を取得する取得工程と、
前記複数の反射光のそれぞれの信頼度を算出する算出工程とをコンピュータに実行させ、
前記投影工程においては、前記算出工程において算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影工程においては、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得工程においては、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とするプログラム。
【請求項1】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影手段と、
前記投影手段によって前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影手段と、
前記撮影手段によって撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得手段と、
前記複数の反射光のそれぞれの信頼度を算出する算出手段とを有し、
前記投影手段は、前記算出手段により算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影手段は、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする三次元計測装置。
【請求項2】
前記算出手段は、前記明暗領域が反転している境界位置での輝度値の勾配に基づいた信頼度を算出することを特徴とする請求項1に記載の三次元計測装置。
【請求項3】
前記算出手段は、前記明暗領域の輝度値を算出し、前記算出した輝度値の上限値と下限値との差分、またはコントラスト比に基づいた信頼度を算出することを特徴とする請求項1に記載の三次元計測装置。
【請求項4】
前記取得手段は、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を用いて、前記信頼度が閾値未満の縞パターン光に対応する距離情報の代わりとすることを特徴とする請求項1〜3の何れか1項に記載の三次元計測装置。
【請求項5】
前記所定の周期は、計測に必要とする縞パターン光のビット数をLと、前記信頼度が閾値以上の縞パターンの最大ビット数をMとした場合に、±k/2(L-M+2)(k=1〜2L-M−1)となる量であることを特徴とする請求項1〜4の何れか1項に記載の三次元計測装置。
【請求項6】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影工程と、
前記投影工程において前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影工程と、
前記撮影工程において撮影された複数の反射光から、前記複数の縞パターン光のそれぞれに対応する前記被写体の距離情報を取得する取得工程と、
前記複数の反射光のそれぞれの信頼度を算出する算出工程とを有し、
前記投影工程においては、前記算出工程において算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影工程においては、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得工程においては、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とする三次元計測方法。
【請求項7】
交互に位置する明暗領域の幅が異なる複数の縞パターン光を被写体に投影する投影工程と、
前記投影工程において前記複数の縞パターン光が投影された被写体からの反射光を撮影する撮影工程と、
前記撮影工程において撮影された複数の反射光から、前記複数の縞パターン光のそれぞ
れに対応する前記被写体の距離情報を取得する取得工程と、
前記複数の反射光のそれぞれの信頼度を算出する算出工程とをコンピュータに実行させ、
前記投影工程においては、前記算出工程において算出された信頼度が閾値以上の縞パターン光を所定の周期分シフトさせた縞パターン光を前記被写体に投影し、
前記撮影工程においては、前記所定の周期分シフトさせた縞パターン光の反射光を撮影し、
前記取得工程においては、前記所定の周期分シフトさせた縞パターン光に対応する前記被写体の距離情報を取得することを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−103239(P2012−103239A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2011−217174(P2011−217174)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]