JP2004133556A - 三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 - Google Patents
三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 Download PDFInfo
- Publication number
- JP2004133556A JP2004133556A JP2002295440A JP2002295440A JP2004133556A JP 2004133556 A JP2004133556 A JP 2004133556A JP 2002295440 A JP2002295440 A JP 2002295440A JP 2002295440 A JP2002295440 A JP 2002295440A JP 2004133556 A JP2004133556 A JP 2004133556A
- Authority
- JP
- Japan
- Prior art keywords
- image
- camera
- dimensional shape
- images
- cameras
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
【課題】複数のカメラの視点が一直線上に存在せず、また、当該カメラの向きが一致しない状況において、対応点探索のテンプレートマッチング処理が単純なマルチプルベースラインステレオ法を実施することを可能とする。
【解決手段】本発明は、入力された複数の画像からある1枚の画像をベース画像として選択し、ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成し、複数のステレオペアのそれぞれについて平行化を行い、複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出する。
【選択図】 図1
【解決手段】本発明は、入力された複数の画像からある1枚の画像をベース画像として選択し、ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成し、複数のステレオペアのそれぞれについて平行化を行い、複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体に係り、特に、物体形状計測システム、仮想現実構築システムなどにおいて、複数のカメラで撮影された画像から、被写体の形状を得るための三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体に関する。
【0002】
【従来の技術】
物体の3次元形状を測定する方法として、ステレオ法が知られている(例えば、非特許文献1)。
【0003】
ステレオ法は、2枚の写真を用いて、被写体の像点の位置から、その像点に対応する被写体の点の位置を算出する方法である。
【0004】
ステレオ法の原理を図16を用いて説明する。
【0005】
図16は、2台のピンホールカメラで同一の物体点P(px ,py ,pz )103を撮影する状況を示したものである。なお、点Pの座標(px ,py ,pz )は、カメラ1のカメラ座標で表す。点101は、カメラ1の視点を、座標軸102は、カメラ1のカメラ座標系を表している。スクリーン104は、カメラ1のスクリーンであり、焦点距離はfである。カメラ1で点P103を撮影すると、点Pはスクリーン104上の点(X,Y)105に投影される。ここで、カメラ1に対してx軸方向に距離Lだけ平行移動した位置にカメラ2があるとする。点106は、カメラ2の視点を、座標軸107は、カメラ2のカメラ座標系を表している。スクリーン108は、カメラ2のスクリーンであり、焦点距離はfである。カメラ1とカメラ2は同一方向を向いており、カメラ座標系は互いに平行である。カメラ2で点Pを撮影すると、点Pは、スクリーン108上の点(X’,Y’)109に投影される。カメラは、x軸方向に平行移動しただけであるので、点105と点109のY座標は、同一である。ここで、点(X,Y)と点(X’,Y’)のX座標の差dを視差という。仮に、スクリーン108上の座標(X,Y)に点110をとると、点110と点109のX距離が視差となる。視差は、カメラから見た物体点の奥行きによって変化するので、視差がわかれば、物体点の奥行きを計算することができる。視差をdとすると、点Pの座標を数式1により求めることができる。
【0006】
数式1 … (px ,py ,pz )=(XL/d,YL/d,fL/d)ステレオ法は、測定対象物体を計測するための特別な装置を必要としないことや、測定対象物体に接触する必要もないので、物体を傷つける恐れもなく、大きな物体でも計測できるという長所がある。
【0007】
しかしながら、2枚の写真の間で、同一物体を対応付ける、対応点探索が困難であるという問題がある。対応点探索には、像点の周囲の小領域(ウィンドウと呼ぶ)を比較し、最も良く似ている点同士を同一点と見做す、いわゆるテンプレートマッチングの方法がよく用いられる。例えば、縦2w+1画素、横2w+1画素の矩形領域をウィンドウとし、画像I0 の点(x0 ,y0 )と、画像I1 の点(x1 ,y1 )の類似度は、数式2によって求められる。数式2は、点(x0 ,y0 )、点(x1 ,y1 )の近傍で、点(x0 ,y0 ),点(x1 ,y1 )から同一の値(i,j)だけオフセットさせた点同士を比較することを表している。
【0008】
【数1】
テンプレートマッチングによる同一点探索では、一般に、被写体に周期的な模様がある場合には、誤った点を同一点と認識してしまう可能性があるという問題がある。また、一方のカメラから見えている点がもう一方のカメラから見えていない状態、いわゆるオクルージョンが発生している状態を正しく判定するのは困難である。
【0009】
これらのステレオ法の問題を解決するために、マルチプルベースラインステレオ法(以下、MBSと記す)(例えば、非特許文献2)が提案されている。この方法は、3台以上のカメラで撮影した画像を用いて、誤対応の排除と距離計測の精度向上を達成する方法である。この方法は、ある1枚の画像を基準画像とし、基準画像と他の1枚の画像によってステレオペアを複数構成し、ある像点の奥行きを変数とし、各々のステレオペアにおけるテンプレートマッチングの評価値(類似度)の合計値を最小にする奥行きを物体点の奥行きとするものである。
【0010】
しかしながら、上記のMBSの方法では、複数台のカメラの視点が正確に一直線上にあり、すべてのカメラがその直線と垂直である同一方向を向いていることが前提となっている。このようにカメラを配置するには、設置において精密な調整が必要となる。この制限を緩和し、カメラの配置が前述の条件から外れている場合でも、MBSを改良して適用可能な方法がある(例えば、非特許文献3)。この方法では、予めカメラの姿勢を測定しておき、ある画像の点の他方の画像における対応点を探索する際に、対応点の存在する可能性のある点の座標を座標変換によって求め(対応点の存在する可能性のある点の集合はエピポーラ線となる)、探索するようにする。
【0011】
【非特許文献1】
Barnard,S.T. and M.A.Fischler,”Computational Stero,” Computing Surveys, vol.14.no.4,1982,pp.553−572.
【非特許文献2】
M.Okutomi and T.Kanade, ”A multiple−baseline stero,” IEEE PAMI, vol.15,no.4,pp.353−363,1993.
【非特許文献3】
R.Y.Tsai, ”A Versatile Camera Calibration Technique for High−Accuracy 3D Machine Vision Metrology Uing Off−the Shelf TV Cameras and Lenses, ”IEEE Journal of Robotics and Automation, Vol.RA−3,No.4, pp.323−344, 1987.
【発明が解決しようとする課題】
しかしながら、上記のMBSを改良して適用可能な方法では、テプレートマッチングのウィンドウ内の1画素の比較を行う度に、座標変換を行う必要が生じる。その分テンプレートマッチングの処理が複雑になる。
【0012】
本発明は、上記の点に鑑みなされたもので、複数のカメラの視点が一直線上に存在せず、また、当該カメラの向きが一致しない状況において、対応点探索のテンプレートマッチング処理が単純なマルチプルベースラインステレオ法を実施することが可能な三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体を提供することを目的とする。
【0013】
【課題を解決するための手段】
図1は、本発明の原理を説明するための図である。
【0014】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出方法において、
複数のカメラによって同一の被写体を撮影した複数の画像を入力し(ステップ1)、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力し(ステップ2)、
入力された複数の画像からある1枚の画像をベース画像として選択し(ステップ3)、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成し(ステップ4)、
複数のステレオペアのそれぞれについて平行化を行い(ステップ5)
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出する(ステップ7)。
【0015】
本発明は、平行化を行う際に、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求め、
方向bに垂直である方向hを一つ定め、
方向bと該方向hに垂直である方向eを求め、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成する。
【0016】
また、本発明は、平行化を行う際に、
全てのカメラの平均焦点距離f’を求め、
カメラaの変数aに1を代入し、
ベース像I1 と画像Ia+1 をステレオペアaとし、該ステレオペアaに対して向きの基準となる直交する単位ベクトルb,h,eを求め、
ベース画像I1 を変換するための画像変換行列MBaを求め、
ベース画像I1 を画像変換行列MBaによって、カメラのx軸、y軸、視軸を単位ベクトルに沿うように回転し、平均焦点距離にして同じ被写体を再度撮影した場合に得られる画像と等価になるように変換し、画像I’a1を求め、
画像Ia+1 について、カメラa+1の視線が単位ベクトルのベースラインに垂直なベクトルeを向き、かつスクリーンのX軸が、ステレオペアのベースカメラの視点から他方のカメラの視点への直線の向きと一致するベクトルbを向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表す変換行列MTaを求め、
画像Ia+1 を変換行列MTaによって変換し、画像I’a+1 を求め、
変数aにa+1を代入し、全画像の枚数Nになるまで単位ベクトルb,h,eを求める処理以降の処理を繰り返す。
【0017】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムであって、
複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された複数の画像からある1枚の画像をベース画像として選択するステップと、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成するステップと、
複数のステレオペアのそれぞれについて平行化を行うステップと、
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
平行化を行うステップは、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
方向bに垂直である方向hを一つ定めるステップと、
方向bと該方向hに垂直である方向eを求めるステップと、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含む。
【0018】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムを格納した記憶媒体であって、
複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された複数の画像からある1枚の画像をベース画像として選択するステップと、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成するステップと、
複数のステレオペアのそれぞれについて平行化を行うステップと、
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
平行化を行うステップは、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
方向bに垂直である方向hを一つ定めるステップと、
方向bと該方向hに垂直である方向eを求めるステップと、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含む。
【0019】
上記のように、本発明では、画像を平行化し、平行された画像に対してマルチプルベースラインステレオ法を実施することにより、対応点探索のための座標変換の計算量を削減することが可能となる。
【0020】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態について説明する。
【0021】
図2は、本発明の一実施の形態における被写体を複数のビデオカメラで撮影する撮影系を示し、図3は、本発明の一実施の形態における撮影された映像から被写体の3次元形状を復元する情報処理系を示す。
【0022】
図2に示す撮影系は、ビデオカメラ201〜205と、キャリブレーションパタン206から構成される。ビデオカメラ201〜205は、位置や向きを厳密に揃えて配置しなくともよい。但し、撮影中に動かないように固定する必要がある。各々のビデオカメラは、ビデオテープに映像を記録できるようになっている。キャリブレーションパタン206は、模様の描かれた板を用意してもよいし、床に模様を描いて利用してもよい。模様は図の通りでなくとも、3次元座標(位置)が既知である点が複数識別できればよい。点の必要数は条件により異なってくるが、少なくとも5点は必要である。この詳細については、文献『R.Y. Tsai,”A Versatile Camera Calibration Technique for High−Accuracy 3D Machine Vision Metrology Using Off−the−Shelf TV Cameras and Lenses, ”IEEE Jounalof Robotics and Automation, Vol.RA−3,No.4, pp.323−344, 1987』(以下文献1)を参照されたい。
【0023】
本実施の形態では、ビデオカメラ203をベースカメラとし、ビデオカメラ203で撮影した画像をベース画像とする。本手法では、ベースカメラ以外のカメラは、ベースカメラとの向きの差が90度以内になるよう設置する必要がある。
なお、ビデオカメラとしてはピンホールカメラモデルを用いる。
【0024】
図3の情報処理系は、ビデオカメラ再生装置301と、映像入力装置302と、情報処理装置303と、表示装置304と、マウスなどの入力装置305とからなる。
【0025】
以下、上記の構成における動作を説明する。
【0026】
図4は、本発明の一実施の形態における処理のフローチャートである。
【0027】
ステップ401) まず、カメラキャリブレーションを行う。カメラキャリブレーションは、ビデオカメラの外部パラメータと内部パラメータを得る処理である。外部パラメータとしては、カメラの位置と姿勢がある。内部パラメータとしては、焦点距離やレンズ歪などがある。実際の空間の何処か1点を世界座標の原点に定め、x軸、y軸、z軸の方向を直交するように定め、ビデオカメラ201〜206から同時に映るようにキャリブレーションパタン207を置き、撮影する。それぞれのカメラで撮影された画像から、それぞれのカメラのパラメータを得る。得られるパラメータは、カメラ外部パラメータR,Tx,Ty,Tzと、内部パラメータの焦点距離f、レンズ歪みkである。Rは、3×3行列であり、その他はスカラーである。実施の詳細については、前述の文献1を参照されたい。なお、本実施の形態では、レンズ歪みが小さく、k=0と見做せるものとして説明する。
【0028】
カメラキャリブレーションによって、被写体のある点の世界座標と、カメラによってその点を撮影した像点の画像座標との変換が可能となる。世界座標が(xw ,yw ,zw )である点をあるカメラによって撮影された画像を図5とする。図5の点501が撮影された点の像点であるとする。当該像点の画像座標を(X,Y)とすると、次の数式4を用いて、世界座標から画像座標を計算することができる。
【0029】
【数2】
ここで、Dx ,Dy は、座標の単位を変換するための定数であり、画像の1画素に相当するCCD上の矩形の縦、横長を表す定数である。
【0030】
なお、本実施の形態では、図5に示されているように、画像座標は、原点を画像の中心にとり、右方向にX軸、下方向にY軸を取り、画素を単位として表すものとする。
【0031】
ステップ402) 図6に示すように、撮影系を用いて被写体の撮影を行う。このとき、カメラキャリブレーションを行った状態と同じ状態で撮影を行うようにする。後の工程で同時刻の映像を選択できるようにするために、すべてのカメラを同期しておく。例えば、同時刻に同一のタイムコードが記録されるようにしておく。複数のカメラから同時に被写体が映るように被写体を配置し、被写体を撮影し、映像をビデオテープに記録する。
【0032】
ステップ403) ステップ402で撮影した映像を情報処理系に入力する。ビデオテープをビデオカメラ201〜205から取り出し、ビデオ再生装置301に装填し、映像入力装置302を用いて映像をデジタル化し、情報処理装置303に入力する。
【0033】
ステップ404) 入力した画像を平行化する。カメラは厳密には一直線上に並んでおらず、向きも異なる。そこで、入力画像を変形し、カメラの視点が1直線状に並び、カメラの向きがその直線に垂直な同一方向であるような状態で撮影された場合に得られる画像を作成する。これは、カメラの方向を変えて再度撮影して画像を得る代わりに、画像の変形によって同等の画像を得る処理である。この画像変形処理を平行化という。平行化の手順の詳細なフローチャートを図7に示す。
【0034】
図7のフローチャートに基づいて、平行化の手順を説明する。
【0035】
入力画像として、図8に示すような画像があるとする。画像I1 〜I5 は、被写体を同時刻に異なる位置から撮影した画像である。ここで、I1 はベースカメラ203から撮影したベース画像である。I2 はビデオカメラ201から撮影された画像、I3 はビデオカメラ202から撮影された画像、I4 はビデオカメラ204から撮影された画像、I5 は、ビデオカメラ205から撮影された画像を表している。ビデオカメラと被写体の距離が同一である保証はないので、被写体の像の大きさが同一である保証はなく、カメラが傾いている可能性もあるので、像も傾いている可能性がある。
【0036】
本実施の形態では、被写体が全ての画像において映っていると仮定して説明する。
【0037】
カメラの台数をNとおく。本実施の形態では、図2に示すように、N=5である。
【0038】
以下の説明では、ビデオカメラ203をベースカメラまたは、カメラ1と呼ぶ。また、ビデオカメラ201をカメラ2と呼ぶ。ビデオカメラ202をカメラ3と呼ぶ。ビデオカメラ2042をカメラ4と呼ぶ。ビデオカメラ205をカメラ5と呼ぶ。ステップ401でカメラaについて得られたカメラパラメータをRa,Tax,Tay,Taz,fa とする。
【0039】
平行化される前のもとの状態では、カメラ毎にスクリーン(CCD)の1画素に相当する矩形の大きさが異なる可能性がある。カメラaのこの矩形の幅を定数Dxa、高さを定数Dyaとする。平行化によって1画素の矩形の大きさが一致するような画像を作成する。その平行化後の1画素の矩形の幅及び高さ共に、Dr とする。平行化後は、画素は正方形になるようにする。Dr は、任意の正数でよいが、本実施の形態では、ベースカメラの1画素の矩形の幅と一致させる(Dr =Dx1)。
【0040】
ステップ701) 全カメラの焦点距離の平均f’を求める。
【0041】
【数3】
平行化される前のもとの状態では、カメラ毎に焦点距離が異なるが、平行化後は、焦点距離がf’であるように統一する。
【0042】
ステップ702) 変数aに1を代入する。以下では、ベース画像I1 と、画像Ia+1 をステレオペアaとし、これら2枚の画像に対して処理を行う。
【0043】
ステップ703) ステレオペアaに対してカメラの向きを仮想的に揃えるために、向きの基準となる直交する単位ベクトル
【0044】
【数4】
を定める。
【0045】
【数5】
は、ワールド座標で表記したベクトルである。
【0046】
【数6】
は、ステレオペアのベースカメラの視点から他方のカメラの視点への直線(ベースライン)の向きと一致させる。ベースラインのワールド座標表記を求めるためには、カメラ視点の座標をワールド座標で表記しなければならない。カメラ1のワールド座標
【0047】
【数7】
は、次の数式5によって得られる。
【0048】
【数8】
同様に、カメラa+1のワールド座標
【0049】
【数9】
は、次の数式6によって得られる。
【0050】
【数10】
よって、
【0051】
【数11】
は、次の数式7によって得られる。
【0052】
【数12】
【0053】
【数13】
の決定には、任意性があるが、本実施の形態では、
【0054】
【数14】
と、ベースカメラの視線とは張る平面の法線ベクトルを
【0055】
【数15】
とする。具体的には、数式8のように、カメラ1の視線方向と
【0056】
【数16】
との外積によって定める。
【0057】
【数17】
これに限らず、
【0058】
【数18】
【数19】
と、ベースカメラの視線方向とカメラa+1の視線方向の線形結合とが張る平面の法線ベクトルによって定めてもよいし、
【0059】
【数20】
を定数としてもよい。最後に、数式9によって
【0060】
【数21】
を求める。
【0061】
【数22】
このようにして求めた
【0062】
【数23】
は、ベースラインに垂直になっている。
【0063】
以上述べたステップ703の処理について図9を用いて説明する。点C1 は、ベースカメラの視点、点Ca+1 902はカメラa+1の視点、矢印905は、ベースカメラの視線方向、矢印906はカメラa+1の視線方向、ベースカメラの焦点距離はf1であり、カメラa+1の焦点距離はfa+1 である。点C1 901と、点Ca+1 902を結んだ直線903がベースラインであり、ベースラインと同じ向きに単位ベクトル
【0064】
【数24】
を採る。
【0065】
【数25】
と矢印905に垂直な方向に単位ベクトル
【0066】
【数26】
をとる。最後に
【0067】
【数27】
に垂直な向きに
【0068】
【数28】
をとる。
【0069】
【数29】
は、ベースライン903に垂直になっている。
【0070】
ステップ704) ベース画像を変換するための変換行列MBaを求める。この変換行列MBaは、ベースカメラの視線が
【0071】
【数30】
を向き、かつ、スクリーンのX軸が
【0072】
【数31】
を向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表すものである。
【0073】
図9を用いて説明する。図9の矢印904は、ベースカメラの向きを仮想的に回転させた後の方向を表している。スクリーン909の回転前のベースカメラのスクリーン、スクリーン908は、回転後のベースカメラのスクリーンを表している。矢印904は、ベクトル
【0074】
【数32】
と同じ向きであり、スクリーン908のx軸は、ベクトル
【0075】
【数33】
と同じ向きであり、スクリーン908のy軸は、ベクトル
【0076】
【数34】
と同じ向きである。
【0077】
まず、元のベース画像の像点をベースカメラのスクリーン上にある点と対応付ける。画像座標で(X,Y)t である点は、ベースカメラのカメラ座標で(Dx1X,Dy1Y,f1 )t でる点に対応付けられる。なお、ここでは、画像座標の単位は画素であり、カメラ座標の単位はワールド座標単位と同じである(メートルなど)。
【0078】
カメラのx軸、y軸、視軸をベクトル
【0079】
【数35】
に合わせるような回転行列の逆行列をQとする。
【0080】
【数36】
をベースカメラのカメラ座標系で記述すると、
【0081】
【数37】
であるので、
【0082】
【数38】
である。
【0083】
【数39】
は、縦ベクトル
【0084】
【数40】
を並べて3×3行列を作ることを指す。カメラを回転させる代わりに、カメラを固定して、点が逆に回転すると考えれば、この逆の回転はQで表される。
【0085】
最後に、回転後のスクリーン上の点(X’,Y’,Z’)t を、焦点距離f’であるスクリーンに投影した点(X”,Y”)t は、数式10により求まる。
【0086】
【数41】
まとめると、数式11及び数式12により、ベース画像の点(X,Y)t を、点(X”,Y”)t に変換することができる。
【0087】
【数42】
ここで、diag(a,b,c)は、a,b,cを対角成分に持つ対角行列を表す。変換行列MBaは、数式11のように定義する。
【0088】
また、逆に数式13及び数式14により、変換後の画像の点(X”,Y”)t を、ベース画像の点(X,y)t に逆変換することができる。
【0089】
【数43】
ステップ705) 変換行列MBaによって、ベース画像I1 を変換し、画像I’a1を作成する。
【0090】
一般に、この変換により被写体の位置が変わるので、変換後の画像は、変換後の像を含むことが可能な大きさにする必要がある。変換後の画像の大きさを見積もる手順を、図10を用いて説明する。
【0091】
図10の画像1001はベース画像I1 を表し、画像1001は変換後の画像I’a1を表す。点(Xc1,Yc1)1002、点(Xc2,Yc2)1003、点(XC3,Yc3)1004、点(Xc4,Yc4)1005は、ベース画像の四隅を表す。点(X”c1,Y”c1)1006は点1002を数式11及び数式12によって変換した点を表す。同様に、点1007、点1008、点1009は、点1003、点1004、点1005を同様に変換した点を表す。なお、ここでは、座標の単位は画素とする。
【0092】
変換後の画像の縦の長さ(画素数)H、横の長さ(画素数)Wは、元のベース画像の四隅を変換した点が入るように定める。即ち、
W=2MAXi |X”ci|
H=2MAXi |Y”ci|
とする。ここで、MAXは、最大値を表す。
【0093】
画像の変換は、元のベース画像の点を、変換行列MBaを用いた数式11及び数式12によって写像することにより行う。実装上は、変換後の画像を隙間無く生成するために、変換後の画像の1画素毎に、元のベース画像から画像の輝度値をサンプリングすることにより画像変換を行う。変換後の画像の全画素(X”,Y”)について、数式13及び数式14によって元のベース画像の対応点(X,Y)の座標を算出し、(X,Y)に最も近い画素の輝度値を、画素(X”,Y”)に設定する。(X,Y)が元のベース画像の外側である場合には、画素(X”,Y”)に既定値を設定する。このサンプリング方法は、nearest−neighbor法と呼ばれる方法であるが、他のサンプリング法を用いてもよい。
【0094】
【数44】
に沿うように回転し、焦点距離を平均焦点距離f’にして同じ被写体を再度撮影した場合に得られる画像と等価である。
【0095】
ステップ706) 画像Ia+1 を変換するための変換行列MTaを求める。この変換行列MTaは、カメラa+1の視線が
【0096】
【数45】
を向き、かつ、スクリーンのX軸が
【0097】
【数46】
を向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表すものである。
【0098】
図9の矢印907は、カメラa+1のスクリーン、スクリーン911は回転後のカメラa+1のスクリーンを表している。矢印907はベクトル
【0099】
【数47】
と同じ向きであり、スクリーン911のx軸は、ベクトル
【0100】
【数48】
と同じ向きであり、スクリーン911のy軸はベクトル
【0101】
【数49】
と同じ向きである。
【0102】
本ステップの処理は、対象がベースカメラでなく、カメラa+1である点を除けば、ステップ704と同じであるので、詳細な説明は省略するが、数式15及び数式16により、画像Ia+1 の点(X,Y)t を、点(X”,Y”)に変換することができる。
【0103】
【数50】
変換行列MTaは数式15のように定義する。
【0104】
また、逆に数式17及び数式18により、変換後の画像の点(X”,Y”)t を、画像Ia+1 の点(X,Y)t に逆変換することができる。
【0105】
【数51】
ステップ707) 変換行列MTaによって、画像Ia+1 を変換し、画像I’a,a+1 を作成する。
【0106】
本ステップの処理は、処理対象がベース画像ではなく画像Ia+1 であることと、変換に用いる変換行列がMBaではなく、MTaであることを除けば、ステップ705と同様であるので、手順の説明は省略する。
【0107】
得られた画像I’a,a+1 は、カメラa+1のx軸、y軸、視軸をベクトル
【0108】
【数52】
に沿うように回転し、焦点距離を平均焦点距離f’にして同じ被写体を再度撮影した場合に得られる画像と等価である。
【0109】
ステップ708) 変数aに1を加える。
【0110】
ステップ709) 変数aと、画像の枚数Nを比較し、一致していなければステップ703へ戻り、次のペアについて同様に処理を行う。一致していれば、本平行化処理を終了する。
【0111】
平行化処理が終了すると、平行化されたベース画像I’11,I’21,…,I’N−1,1 と、それらとペアになる平行化された画像I’12,I’23,…,I’N−1,N と、平行化のための変換行列MB1,MB2,…, MBN−1,MT1,MT2,…,MTN−1が得られている。図11に、これらの画像と変換行列との関係を示す。なお、同図では、N=6として示している。
【0112】
以上でステップ404の平行化の処理の詳細の説明を終了する。
【0113】
ステップ405) ステップ404で作成した変換後の画像に対して、MBSを適用し、ベース画像I1 の画素に対応する被写体の点の世界座標を求める。MBSの手順の詳細なフローチャートを図12及び図13に示す。
【0114】
以下、図12及び図13のフローチャートに基づいてMBSの手順を説明する。
【0115】
ステップ1201) ステレオペア毎にベースライン長Laを求める。ステレオペアaのベースライン長Laは、数式5及び数式6及び数式19によって求めることができる。
【0116】
【数53】
ステップ1202) 最長ベースライン長Lmax を求める。Lmax は、Baの中で最大のものでる。最長ベースライン長を与えるステレオペアをamax とする。
【0117】
ステップ1203) 変数xに−wb を代入する。wb は、変換前のベース画像の横幅の画素数の1/2である。
【0118】
ステップ1204) 変数yに−hb を代入する。hb は、変換前のベース画像の高さの画素数の1/2である。
【0119】
以下では、ベース画像の画像座標(x,y)の点に着目し、この点の3次元座標を計算する。
ステップ1205) 補正ベースライン長比Baを求める。ステレオペアaのベースライン長比を、最大ベースライン長との比La/Lmax で定義する。カメラの向きを変えることにより、同一の点であっても見かけ上、奥行きが変化する。また、焦点距離を変えると、奥行きと視差の関係も変化する。そこで、これらの変化率でベースライン長を補正し、補正ベースライン長比とする。
【0120】
ベースライン長の補正方法を図14を用いて説明する。図14は、点Oを視点とするベースカメラから点Pを観測する状況を、平行化前のカメラ座標系1413と、平行化後のカメラ座標系1414で表したものである。点O1401は、視点、軸1402は、平行化前カメラ座標系のx軸、軸1403は、平行化前カメラ座標系のz軸を表す。平行化前カメラ座標系のy軸は、紙面に垂直である。点P1404は、ある物体点を表している。スクリーン1405は平行化前のベースカメラのスクリーンであり、焦点距離はf1 でる。平行化前の状態でベースカメラで点Pを撮影すると、点Pがスクリーン1405上の点1406に投影される。点Pのz座標(奥行き)はpz でる。ベースライン長をLとしてステレオ法を用いれば、奥行きがpz である点に対して視差dが生じ、pz =Lf1 /dなる関係が成立する。
【0121】
ここで、平行化のためのカメラの視軸をz’軸に、x軸をx’軸に(仮想的に)なるよう回転させたとする。点O1407は視点、軸1408は平行化後カメラ座標系のx軸、軸1409は平行化後カメラ座標系のz軸を表す。点P1410は、点1404と同じ物体点であり、動いていない。スクリーン1411は、平行化後のベースカメラのスクリーンであり、焦点距離はf’である。平行化後の状態でベースカメラで点P1410を撮影すると、点Pがスクリーン1411上の点1412に投影される。点Pのz’座標(奥行き)はp’z である。平行化後にベースライン長をLとしてステレオ法を用いれば、奥行きがp’z である点に視差d’m が生じ、p’z =Lf’/dm なる関係が成立する。
【0122】
物体点Pの平行化前のカメラ座標を(px ,py ,pz )、平行化後のカメラ座標を(p’x ,p’y ,p’z )とすれば、数式20の関係が成立する。
【0123】
本ステップ1205では、ベース画像の点(x,y)に着目しているのであるから、対応する物体点は、ベースカメラの視点と、スクリーン上の点(xDx ,yDy ,f1 )を結ぶ直線上に存在するはずである。この場合には、平行化前後の物体点の見かけ上の奥行きには、数式21の関係が成立する。従って、平行化前後の視差dm ,d’m の間には、数式22の関係が成立する。ここで、dm ,d’m の単位は実世界の長さ(メートルなど)である。視差の単位を画素で表した平行化前後の視差dp ,d’p の間には、数式23の関係が成立する。
【0124】
【数54】
平行化後のステレオペアで得られた視差d’から、ベースカメラの元のカメラ座標で奥行きpz を計算するためには、視差を数式23によって補正する必要がある。数式23の示す比率を予めベースライン長比に算入し、補正ベースライン長Baとする。
【0125】
【数55】
ステップ1206) 変数Smin に定数MAXVALを代入する。定数MAXVALは、変数Smin の取り得る値の最大値(可能な限り大きい値)を代入する。視差探索変数dは、平行化前のベース画像I1 に対して、元の向きのままで、ベースライン長をLmax としてステレオ法を行った場合に発生するはずの視差(変移)を画素数で表したものとする。
【0126】
最適な視差dを探索するとき、視差の可能な定義行きを全て評価すると計算コストがかさむので、探索範囲を限定するようにする。ベースカメラの元のカメラ座標での被写体の奥行きの探索範囲の最大最小値を予め定め、Zmax ,Zmin とする。視差dの探索範囲の最大値dmax は数式25によって、dmin は数式26によって求められる。
【0127】
【数56】
ステップ1207) 配列Ax ,Ay に、ベース画像の画像座標を変換行列MBaで変換した座標を格納する。Ax ,Ay は3次元配列とし、ベース画像の点(x,y)を数式11及び数式12を用いてステレオペアaの平行化後ベース画像I’a1の座標(xb ,yb )を計算し、Ax [x,y,a]にxb を、Ay [x,y,a]にyb を格納する。ベース画像のすべての画素、全てのステレオペアについてこの計算を行い、配列Ax ,Ay に値を格納する。画像座標x,yは負の値を取り得るが、配列の添字に負の値が使えるかどうかはプログラム処理系に依存する。添字に負の値が使えない場合は、座標値にオフセット値を加えるなどして、添字が0以上になるようにすればよい。
【0128】
ステップ1208) 変数dに値dmin を代入する。
【0129】
ステップ1209) 変数Sに0を代入する。
【0130】
ステップ1210) 変数Cp に0を代入する。
【0131】
ステップ1211) 変数aに1を代入する。
【0132】
ステップ1212) 平行化前のベース画像の点の座標(x,y)と変数aを用いて、配列Ax ,Ay からステレオペアaの平行化後ベース画像I’a1の座標(xb ,yb )を得る。xb =Ax [x,y,a],yb =Ay [x,y,a]である。
【0133】
図15は、平行化前のベース画像I1 1501上の点1504が、平行化後ベース画像I’a1上の点1505に変換されたことを表している。図15では、a=1の場合について表している。ここで、ベースライン長をLmax としたとき、ベース画像1501の点1504の視差がDであるとする。すると、平行化後のステレオペア1の画像I’11とI’12では、視差はB1 Dとなるはずである。即ち、点1504が、画像I’121503の点(xb −B1 D,yb )(点1506)に観測されるはずである。しかしながら、値Dは未知数なので、テンプレートマッチングの評価値の最小化によりDを求める。
【0134】
以下のステップ1213以降では、視差をdとした場合のテンプレートマッチングを行う。
【0135】
ステップ1213) 画像I’a1の点(xb ,yb )の周囲のウィンドウと、画像I’a,a+1 の点(xb −Ba d,yb )の周囲のウィンドウがそれぞれの画像の中に収まるかを検査する。ウィンドウの形は通例、矩形領域とし、ウィンドウの大きさは10×10画素程度とするが、これに限るものではない。両画像でウィンドウが画像内に収まる場合には、ステップ1215に移行し、テンプレートマッチングを行う。収まらない場合には、テンプレートマッチングをスキップし、図13のステップ1302に移行する。
【0136】
ステップ1214) 変数Cp に1を加える。変数Cp には、点(x,y)、視差dについて、テンプレートマッチングを行ったステレオペアの数が格納される。次に、図13のステップ1301に移行する。
【0137】
以下図13のフローチャートの処理を説明する。
【0138】
ステップ1301) テンプレートマッチングの評価値を変数Sに加算する。画像I’a1の点(xb ,yb )の周囲のウィンドウと、画像I’a,a+1 の点(xb −Ba d,yb )の周囲のウィンドウの対応する画素についての輝度のSSD(輝度値の差の二乗の合計)を計算し、テンプレートマッチングの評価値とする。SSDは、ウィンドウ内の画像の類似度を評価する尺度であり、似ているほど小さい値をとる。
【0139】
ステップ1302) 変数aに1を加える。
【0140】
ステップ1303) 変数aの値と、カメラ台数Nを比較し、a=Nであれば、ステップ1304へ進み、そうでなければ図12のステップ1212に移行し、次のステレオペアについてテンプレートマッチングを行う。
【0141】
ステップ1304) 変数Cp の値を検査し、0より大きければステップ1305に移行し、評価値の比較を行う。そうでなければ、テンプレートマッチング実行可能なステレオペアが1組もなかったことを表しているので、評価値の比較をスキップし、ステップ1308に移行する。
【0142】
ステップ1305) 評価値の平均S/Cp と、変数Smin を比較し、S/Cp の方が小さければ、ステップ1306へ移行し、変数Smin を更新する。そうでなければ、Smin の値を更新せずに、ステップ1308へ移行する。
【0143】
ステップ1306) 変数Smin にS/Cp の値を代入する。変数Smin には、現時点での評価値S/Cp の最小値が格納されている。
【0144】
ステップ1307) 変数Dに視差dの値を代入する。変数Dには、現時点での最小評価値S/Cp を与える視差dが格納されている。
【0145】
ステップ1308) 変数dに刻み幅dstepを加える。dstepは、予め定めた定数で、例えば、1(画素)とする。これに限らず、他の値でもよい。
【0146】
ステップ1309) dとdmax を比較し、d>dmax であれば、ステップ1310に移行する。そうでなければ、図12のステップ1209に移行し、次なる視差dについて評価を行う。
【0147】
ステップ1310) 変数Smin の値と定数MAXVALを比較し、同値であれば、画素(x,y)について、テンプレートマッチングが1回も行われなかった、即ち、対応点が見つからなかったことを表している。Smin <MAXVALであば、点の奥行きの計算のためのステップ1311に移行する。そうでなければ、点の奥行き計算をスキップし、ステップ1312に移行する。
【0148】
ステップ1311) 変数x,y,Dの値から数式27によって被写体の点の世界座標(xw ,yw ,zw )を計算し、出力する。Dには、テプレートマッチングの評価値の最小値を与える視差dの値が格納されている。
【0149】
【数57】
ステップ1312) 変数yに1を加える。
【0150】
ステップ1313) 変数yの値とベース画像I1 の高さhb を比較し、y>hb であれば、ステップ1314に移行する。そうでなければ、図12のステップ1205に移行し、次なる画素についてMBSを行う。
【0151】
ステップ1314) 変数xに1を加える。
【0152】
ステップ1315) 変数xの値とベース画像I1 の幅wb を比較し、x>wb であれば、MBS処理を終了する。そうでなければ、図12の1204に移行し、次なる画素についてMBSを行い、奥行きの得られた点については3次元世界座標が出力されている。このようにして、被写体の形状を表す3次元の点群が得られる。
【0153】
本実施の形態で得られる物体点の奥行きは、視差Dの探索を刻み幅dstepで行うため、その刻み幅に応じた粗さでしか求まらないが、前述の文献(M.Okutomi and T.Kanade, ”A multiple−baseline stero,” IEEE PAMI, vol.15,no.4,pp.353−363,1993.)に示される方法などを用いて、さらに、細かい精度で視差を求め、奥行きを求めてもよい。
【0154】
また、ステップ1301で行うテンプレートマッチングの処理は、同一サイズの同一形状のウィンドウで、ウィンドウ内で相対的に同一の位置にある画素同士を比較することによって実施できる。この処理は単純であり、ハードウェアによる実装も比較的容易であるので、ハードウェア化による高速化が比較的容易である。
【0155】
また、上記のフローチャートで示した処理をプログラムとして構築し、三次元形状抽出装置として利用されるコンピュータにインストールする、または、ネットワークを介して流通させることも可能である。
【0156】
また、構築されたプログラムを三次元形状抽出装置として利用されるコンピュータに接続されるハードディスク装置や、フレキシブルディスク、CD−ROM等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることも可能である。
【0157】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0158】
【発明の効果】
上述のように、本発明によれば、画像を平行化し、平行化された画像に対してマルチプルベースラインステレオ法を実施すれば、対応点探索のための座標変換の計算量が削減でき、処理が高速化される。
【0159】
また、マルチプルベースラインステレオ法を適用する際に、テンプレートマッチングの処理が単純化され、ハードウェアによる計算の実行にも適するようになる。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図である。
【図2】本発明の一実施の形態における被写体を複数のビデオカメラで撮影する撮影系を示す図である。
【図3】本発明の一実施の形態における撮影された映像から被写体の3次元形状を復元する情報処理系を示す図である。
【図4】本発明の一実施の形態における処理のフローチャートである。
【図5】本発明の一実施の形態における画像座標系の定義を示す図である。
【図6】本発明の一実施の形態における撮影系によって被写体の撮影の様子を示す図である。
【図7】本発明の一実施の形態における平行化の処理のフローチャートである。
【図8】本発明の一実施の形態における入力画像の例である。
【図9】本発明の一実施の形態における平行化の説明図である。
【図10】本発明の一実施の形態における平行化画像の大きさの決定方法を示す図である。
【図11】本発明の一実施の形態における画像の平行化と座標変換行列とステレオペアの関係を示す図である。
【図12】本発明の一実施の形態におけるMBSの処理のフローチャート(その1)である。
【図13】本発明の一実施の形態におけるMBSの処理のフローチャート(その2)である。
【図14】本発明の一実施の形態におけるベースライン長の補正を説明するための図である。
【図15】本発明の一実施の形態における平行化後の画像における対応点探索を説明するための図である。
【図16】ステレオ法の原理を説明するための図である。
【符号の説明】
201〜205 ビデオカメラ
206 キャリブレーションパタン
301 ビデオ再生装置
302 映像入力装置
303 情報処理装置
304 表示装置
305 入力装置
501 点
601 被写体
I1 〜I5 ベース画像
901 点C1
902 点Ca+1
903 直線(ベースライン)
904,905,906907 矢印
908,909,910,911 スクリーン
1001 ベース画像I1
1002 点(Xc1,Yc1)
1003 点(Xc2,Yc2)
1004 点(Xc3,Yc3)
1005 点(Xc4,Yc4)
1007,1008,1009 変換した点
1401,1407 視点O
1402,1403 軸
1404 点P
1405 スクリーン
1406 点
1408 平行化後カメラ座標系のx軸
1409 平行化後カメラ座標系のz軸
1410 点P
1411 平行化後のベースカメラのスクリーン
1412 点
1413 平行化前のカメラ座標系
1414 平行化後のカメラ座標系
1501 平行化前のベース画像I1
1503 画像I’12の点
1504 平行化前のベース画像I1 上の点
1505 平行化後ベース画像I’1 上の点
1506 画像I’12の点(xb −B1 D,yb )
【発明の属する技術分野】
本発明は、三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体に係り、特に、物体形状計測システム、仮想現実構築システムなどにおいて、複数のカメラで撮影された画像から、被写体の形状を得るための三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体に関する。
【0002】
【従来の技術】
物体の3次元形状を測定する方法として、ステレオ法が知られている(例えば、非特許文献1)。
【0003】
ステレオ法は、2枚の写真を用いて、被写体の像点の位置から、その像点に対応する被写体の点の位置を算出する方法である。
【0004】
ステレオ法の原理を図16を用いて説明する。
【0005】
図16は、2台のピンホールカメラで同一の物体点P(px ,py ,pz )103を撮影する状況を示したものである。なお、点Pの座標(px ,py ,pz )は、カメラ1のカメラ座標で表す。点101は、カメラ1の視点を、座標軸102は、カメラ1のカメラ座標系を表している。スクリーン104は、カメラ1のスクリーンであり、焦点距離はfである。カメラ1で点P103を撮影すると、点Pはスクリーン104上の点(X,Y)105に投影される。ここで、カメラ1に対してx軸方向に距離Lだけ平行移動した位置にカメラ2があるとする。点106は、カメラ2の視点を、座標軸107は、カメラ2のカメラ座標系を表している。スクリーン108は、カメラ2のスクリーンであり、焦点距離はfである。カメラ1とカメラ2は同一方向を向いており、カメラ座標系は互いに平行である。カメラ2で点Pを撮影すると、点Pは、スクリーン108上の点(X’,Y’)109に投影される。カメラは、x軸方向に平行移動しただけであるので、点105と点109のY座標は、同一である。ここで、点(X,Y)と点(X’,Y’)のX座標の差dを視差という。仮に、スクリーン108上の座標(X,Y)に点110をとると、点110と点109のX距離が視差となる。視差は、カメラから見た物体点の奥行きによって変化するので、視差がわかれば、物体点の奥行きを計算することができる。視差をdとすると、点Pの座標を数式1により求めることができる。
【0006】
数式1 … (px ,py ,pz )=(XL/d,YL/d,fL/d)ステレオ法は、測定対象物体を計測するための特別な装置を必要としないことや、測定対象物体に接触する必要もないので、物体を傷つける恐れもなく、大きな物体でも計測できるという長所がある。
【0007】
しかしながら、2枚の写真の間で、同一物体を対応付ける、対応点探索が困難であるという問題がある。対応点探索には、像点の周囲の小領域(ウィンドウと呼ぶ)を比較し、最も良く似ている点同士を同一点と見做す、いわゆるテンプレートマッチングの方法がよく用いられる。例えば、縦2w+1画素、横2w+1画素の矩形領域をウィンドウとし、画像I0 の点(x0 ,y0 )と、画像I1 の点(x1 ,y1 )の類似度は、数式2によって求められる。数式2は、点(x0 ,y0 )、点(x1 ,y1 )の近傍で、点(x0 ,y0 ),点(x1 ,y1 )から同一の値(i,j)だけオフセットさせた点同士を比較することを表している。
【0008】
【数1】
テンプレートマッチングによる同一点探索では、一般に、被写体に周期的な模様がある場合には、誤った点を同一点と認識してしまう可能性があるという問題がある。また、一方のカメラから見えている点がもう一方のカメラから見えていない状態、いわゆるオクルージョンが発生している状態を正しく判定するのは困難である。
【0009】
これらのステレオ法の問題を解決するために、マルチプルベースラインステレオ法(以下、MBSと記す)(例えば、非特許文献2)が提案されている。この方法は、3台以上のカメラで撮影した画像を用いて、誤対応の排除と距離計測の精度向上を達成する方法である。この方法は、ある1枚の画像を基準画像とし、基準画像と他の1枚の画像によってステレオペアを複数構成し、ある像点の奥行きを変数とし、各々のステレオペアにおけるテンプレートマッチングの評価値(類似度)の合計値を最小にする奥行きを物体点の奥行きとするものである。
【0010】
しかしながら、上記のMBSの方法では、複数台のカメラの視点が正確に一直線上にあり、すべてのカメラがその直線と垂直である同一方向を向いていることが前提となっている。このようにカメラを配置するには、設置において精密な調整が必要となる。この制限を緩和し、カメラの配置が前述の条件から外れている場合でも、MBSを改良して適用可能な方法がある(例えば、非特許文献3)。この方法では、予めカメラの姿勢を測定しておき、ある画像の点の他方の画像における対応点を探索する際に、対応点の存在する可能性のある点の座標を座標変換によって求め(対応点の存在する可能性のある点の集合はエピポーラ線となる)、探索するようにする。
【0011】
【非特許文献1】
Barnard,S.T. and M.A.Fischler,”Computational Stero,” Computing Surveys, vol.14.no.4,1982,pp.553−572.
【非特許文献2】
M.Okutomi and T.Kanade, ”A multiple−baseline stero,” IEEE PAMI, vol.15,no.4,pp.353−363,1993.
【非特許文献3】
R.Y.Tsai, ”A Versatile Camera Calibration Technique for High−Accuracy 3D Machine Vision Metrology Uing Off−the Shelf TV Cameras and Lenses, ”IEEE Journal of Robotics and Automation, Vol.RA−3,No.4, pp.323−344, 1987.
【発明が解決しようとする課題】
しかしながら、上記のMBSを改良して適用可能な方法では、テプレートマッチングのウィンドウ内の1画素の比較を行う度に、座標変換を行う必要が生じる。その分テンプレートマッチングの処理が複雑になる。
【0012】
本発明は、上記の点に鑑みなされたもので、複数のカメラの視点が一直線上に存在せず、また、当該カメラの向きが一致しない状況において、対応点探索のテンプレートマッチング処理が単純なマルチプルベースラインステレオ法を実施することが可能な三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体を提供することを目的とする。
【0013】
【課題を解決するための手段】
図1は、本発明の原理を説明するための図である。
【0014】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出方法において、
複数のカメラによって同一の被写体を撮影した複数の画像を入力し(ステップ1)、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力し(ステップ2)、
入力された複数の画像からある1枚の画像をベース画像として選択し(ステップ3)、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成し(ステップ4)、
複数のステレオペアのそれぞれについて平行化を行い(ステップ5)
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出する(ステップ7)。
【0015】
本発明は、平行化を行う際に、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求め、
方向bに垂直である方向hを一つ定め、
方向bと該方向hに垂直である方向eを求め、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成する。
【0016】
また、本発明は、平行化を行う際に、
全てのカメラの平均焦点距離f’を求め、
カメラaの変数aに1を代入し、
ベース像I1 と画像Ia+1 をステレオペアaとし、該ステレオペアaに対して向きの基準となる直交する単位ベクトルb,h,eを求め、
ベース画像I1 を変換するための画像変換行列MBaを求め、
ベース画像I1 を画像変換行列MBaによって、カメラのx軸、y軸、視軸を単位ベクトルに沿うように回転し、平均焦点距離にして同じ被写体を再度撮影した場合に得られる画像と等価になるように変換し、画像I’a1を求め、
画像Ia+1 について、カメラa+1の視線が単位ベクトルのベースラインに垂直なベクトルeを向き、かつスクリーンのX軸が、ステレオペアのベースカメラの視点から他方のカメラの視点への直線の向きと一致するベクトルbを向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表す変換行列MTaを求め、
画像Ia+1 を変換行列MTaによって変換し、画像I’a+1 を求め、
変数aにa+1を代入し、全画像の枚数Nになるまで単位ベクトルb,h,eを求める処理以降の処理を繰り返す。
【0017】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムであって、
複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された複数の画像からある1枚の画像をベース画像として選択するステップと、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成するステップと、
複数のステレオペアのそれぞれについて平行化を行うステップと、
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
平行化を行うステップは、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
方向bに垂直である方向hを一つ定めるステップと、
方向bと該方向hに垂直である方向eを求めるステップと、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含む。
【0018】
本発明は、複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムを格納した記憶媒体であって、
複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された複数の画像からある1枚の画像をベース画像として選択するステップと、
ベース画像以外の画像のそれぞれ1枚と、ベース画像とからなる複数のステレオペアを構成するステップと、
複数のステレオペアのそれぞれについて平行化を行うステップと、
複数のステレオペアの平行化された画像に対してマルチプルベースラインステレオ法を適用し、被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
平行化を行うステップは、
ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
方向bに垂直である方向hを一つ定めるステップと、
方向bと該方向hに垂直である方向eを求めるステップと、
ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が方向eを向き、水平方向が方向bと平行し、垂直方向が該方向hを向くように回転させ、かつ、内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含む。
【0019】
上記のように、本発明では、画像を平行化し、平行された画像に対してマルチプルベースラインステレオ法を実施することにより、対応点探索のための座標変換の計算量を削減することが可能となる。
【0020】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態について説明する。
【0021】
図2は、本発明の一実施の形態における被写体を複数のビデオカメラで撮影する撮影系を示し、図3は、本発明の一実施の形態における撮影された映像から被写体の3次元形状を復元する情報処理系を示す。
【0022】
図2に示す撮影系は、ビデオカメラ201〜205と、キャリブレーションパタン206から構成される。ビデオカメラ201〜205は、位置や向きを厳密に揃えて配置しなくともよい。但し、撮影中に動かないように固定する必要がある。各々のビデオカメラは、ビデオテープに映像を記録できるようになっている。キャリブレーションパタン206は、模様の描かれた板を用意してもよいし、床に模様を描いて利用してもよい。模様は図の通りでなくとも、3次元座標(位置)が既知である点が複数識別できればよい。点の必要数は条件により異なってくるが、少なくとも5点は必要である。この詳細については、文献『R.Y. Tsai,”A Versatile Camera Calibration Technique for High−Accuracy 3D Machine Vision Metrology Using Off−the−Shelf TV Cameras and Lenses, ”IEEE Jounalof Robotics and Automation, Vol.RA−3,No.4, pp.323−344, 1987』(以下文献1)を参照されたい。
【0023】
本実施の形態では、ビデオカメラ203をベースカメラとし、ビデオカメラ203で撮影した画像をベース画像とする。本手法では、ベースカメラ以外のカメラは、ベースカメラとの向きの差が90度以内になるよう設置する必要がある。
なお、ビデオカメラとしてはピンホールカメラモデルを用いる。
【0024】
図3の情報処理系は、ビデオカメラ再生装置301と、映像入力装置302と、情報処理装置303と、表示装置304と、マウスなどの入力装置305とからなる。
【0025】
以下、上記の構成における動作を説明する。
【0026】
図4は、本発明の一実施の形態における処理のフローチャートである。
【0027】
ステップ401) まず、カメラキャリブレーションを行う。カメラキャリブレーションは、ビデオカメラの外部パラメータと内部パラメータを得る処理である。外部パラメータとしては、カメラの位置と姿勢がある。内部パラメータとしては、焦点距離やレンズ歪などがある。実際の空間の何処か1点を世界座標の原点に定め、x軸、y軸、z軸の方向を直交するように定め、ビデオカメラ201〜206から同時に映るようにキャリブレーションパタン207を置き、撮影する。それぞれのカメラで撮影された画像から、それぞれのカメラのパラメータを得る。得られるパラメータは、カメラ外部パラメータR,Tx,Ty,Tzと、内部パラメータの焦点距離f、レンズ歪みkである。Rは、3×3行列であり、その他はスカラーである。実施の詳細については、前述の文献1を参照されたい。なお、本実施の形態では、レンズ歪みが小さく、k=0と見做せるものとして説明する。
【0028】
カメラキャリブレーションによって、被写体のある点の世界座標と、カメラによってその点を撮影した像点の画像座標との変換が可能となる。世界座標が(xw ,yw ,zw )である点をあるカメラによって撮影された画像を図5とする。図5の点501が撮影された点の像点であるとする。当該像点の画像座標を(X,Y)とすると、次の数式4を用いて、世界座標から画像座標を計算することができる。
【0029】
【数2】
ここで、Dx ,Dy は、座標の単位を変換するための定数であり、画像の1画素に相当するCCD上の矩形の縦、横長を表す定数である。
【0030】
なお、本実施の形態では、図5に示されているように、画像座標は、原点を画像の中心にとり、右方向にX軸、下方向にY軸を取り、画素を単位として表すものとする。
【0031】
ステップ402) 図6に示すように、撮影系を用いて被写体の撮影を行う。このとき、カメラキャリブレーションを行った状態と同じ状態で撮影を行うようにする。後の工程で同時刻の映像を選択できるようにするために、すべてのカメラを同期しておく。例えば、同時刻に同一のタイムコードが記録されるようにしておく。複数のカメラから同時に被写体が映るように被写体を配置し、被写体を撮影し、映像をビデオテープに記録する。
【0032】
ステップ403) ステップ402で撮影した映像を情報処理系に入力する。ビデオテープをビデオカメラ201〜205から取り出し、ビデオ再生装置301に装填し、映像入力装置302を用いて映像をデジタル化し、情報処理装置303に入力する。
【0033】
ステップ404) 入力した画像を平行化する。カメラは厳密には一直線上に並んでおらず、向きも異なる。そこで、入力画像を変形し、カメラの視点が1直線状に並び、カメラの向きがその直線に垂直な同一方向であるような状態で撮影された場合に得られる画像を作成する。これは、カメラの方向を変えて再度撮影して画像を得る代わりに、画像の変形によって同等の画像を得る処理である。この画像変形処理を平行化という。平行化の手順の詳細なフローチャートを図7に示す。
【0034】
図7のフローチャートに基づいて、平行化の手順を説明する。
【0035】
入力画像として、図8に示すような画像があるとする。画像I1 〜I5 は、被写体を同時刻に異なる位置から撮影した画像である。ここで、I1 はベースカメラ203から撮影したベース画像である。I2 はビデオカメラ201から撮影された画像、I3 はビデオカメラ202から撮影された画像、I4 はビデオカメラ204から撮影された画像、I5 は、ビデオカメラ205から撮影された画像を表している。ビデオカメラと被写体の距離が同一である保証はないので、被写体の像の大きさが同一である保証はなく、カメラが傾いている可能性もあるので、像も傾いている可能性がある。
【0036】
本実施の形態では、被写体が全ての画像において映っていると仮定して説明する。
【0037】
カメラの台数をNとおく。本実施の形態では、図2に示すように、N=5である。
【0038】
以下の説明では、ビデオカメラ203をベースカメラまたは、カメラ1と呼ぶ。また、ビデオカメラ201をカメラ2と呼ぶ。ビデオカメラ202をカメラ3と呼ぶ。ビデオカメラ2042をカメラ4と呼ぶ。ビデオカメラ205をカメラ5と呼ぶ。ステップ401でカメラaについて得られたカメラパラメータをRa,Tax,Tay,Taz,fa とする。
【0039】
平行化される前のもとの状態では、カメラ毎にスクリーン(CCD)の1画素に相当する矩形の大きさが異なる可能性がある。カメラaのこの矩形の幅を定数Dxa、高さを定数Dyaとする。平行化によって1画素の矩形の大きさが一致するような画像を作成する。その平行化後の1画素の矩形の幅及び高さ共に、Dr とする。平行化後は、画素は正方形になるようにする。Dr は、任意の正数でよいが、本実施の形態では、ベースカメラの1画素の矩形の幅と一致させる(Dr =Dx1)。
【0040】
ステップ701) 全カメラの焦点距離の平均f’を求める。
【0041】
【数3】
平行化される前のもとの状態では、カメラ毎に焦点距離が異なるが、平行化後は、焦点距離がf’であるように統一する。
【0042】
ステップ702) 変数aに1を代入する。以下では、ベース画像I1 と、画像Ia+1 をステレオペアaとし、これら2枚の画像に対して処理を行う。
【0043】
ステップ703) ステレオペアaに対してカメラの向きを仮想的に揃えるために、向きの基準となる直交する単位ベクトル
【0044】
【数4】
を定める。
【0045】
【数5】
は、ワールド座標で表記したベクトルである。
【0046】
【数6】
は、ステレオペアのベースカメラの視点から他方のカメラの視点への直線(ベースライン)の向きと一致させる。ベースラインのワールド座標表記を求めるためには、カメラ視点の座標をワールド座標で表記しなければならない。カメラ1のワールド座標
【0047】
【数7】
は、次の数式5によって得られる。
【0048】
【数8】
同様に、カメラa+1のワールド座標
【0049】
【数9】
は、次の数式6によって得られる。
【0050】
【数10】
よって、
【0051】
【数11】
は、次の数式7によって得られる。
【0052】
【数12】
【0053】
【数13】
の決定には、任意性があるが、本実施の形態では、
【0054】
【数14】
と、ベースカメラの視線とは張る平面の法線ベクトルを
【0055】
【数15】
とする。具体的には、数式8のように、カメラ1の視線方向と
【0056】
【数16】
との外積によって定める。
【0057】
【数17】
これに限らず、
【0058】
【数18】
【数19】
と、ベースカメラの視線方向とカメラa+1の視線方向の線形結合とが張る平面の法線ベクトルによって定めてもよいし、
【0059】
【数20】
を定数としてもよい。最後に、数式9によって
【0060】
【数21】
を求める。
【0061】
【数22】
このようにして求めた
【0062】
【数23】
は、ベースラインに垂直になっている。
【0063】
以上述べたステップ703の処理について図9を用いて説明する。点C1 は、ベースカメラの視点、点Ca+1 902はカメラa+1の視点、矢印905は、ベースカメラの視線方向、矢印906はカメラa+1の視線方向、ベースカメラの焦点距離はf1であり、カメラa+1の焦点距離はfa+1 である。点C1 901と、点Ca+1 902を結んだ直線903がベースラインであり、ベースラインと同じ向きに単位ベクトル
【0064】
【数24】
を採る。
【0065】
【数25】
と矢印905に垂直な方向に単位ベクトル
【0066】
【数26】
をとる。最後に
【0067】
【数27】
に垂直な向きに
【0068】
【数28】
をとる。
【0069】
【数29】
は、ベースライン903に垂直になっている。
【0070】
ステップ704) ベース画像を変換するための変換行列MBaを求める。この変換行列MBaは、ベースカメラの視線が
【0071】
【数30】
を向き、かつ、スクリーンのX軸が
【0072】
【数31】
を向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表すものである。
【0073】
図9を用いて説明する。図9の矢印904は、ベースカメラの向きを仮想的に回転させた後の方向を表している。スクリーン909の回転前のベースカメラのスクリーン、スクリーン908は、回転後のベースカメラのスクリーンを表している。矢印904は、ベクトル
【0074】
【数32】
と同じ向きであり、スクリーン908のx軸は、ベクトル
【0075】
【数33】
と同じ向きであり、スクリーン908のy軸は、ベクトル
【0076】
【数34】
と同じ向きである。
【0077】
まず、元のベース画像の像点をベースカメラのスクリーン上にある点と対応付ける。画像座標で(X,Y)t である点は、ベースカメラのカメラ座標で(Dx1X,Dy1Y,f1 )t でる点に対応付けられる。なお、ここでは、画像座標の単位は画素であり、カメラ座標の単位はワールド座標単位と同じである(メートルなど)。
【0078】
カメラのx軸、y軸、視軸をベクトル
【0079】
【数35】
に合わせるような回転行列の逆行列をQとする。
【0080】
【数36】
をベースカメラのカメラ座標系で記述すると、
【0081】
【数37】
であるので、
【0082】
【数38】
である。
【0083】
【数39】
は、縦ベクトル
【0084】
【数40】
を並べて3×3行列を作ることを指す。カメラを回転させる代わりに、カメラを固定して、点が逆に回転すると考えれば、この逆の回転はQで表される。
【0085】
最後に、回転後のスクリーン上の点(X’,Y’,Z’)t を、焦点距離f’であるスクリーンに投影した点(X”,Y”)t は、数式10により求まる。
【0086】
【数41】
まとめると、数式11及び数式12により、ベース画像の点(X,Y)t を、点(X”,Y”)t に変換することができる。
【0087】
【数42】
ここで、diag(a,b,c)は、a,b,cを対角成分に持つ対角行列を表す。変換行列MBaは、数式11のように定義する。
【0088】
また、逆に数式13及び数式14により、変換後の画像の点(X”,Y”)t を、ベース画像の点(X,y)t に逆変換することができる。
【0089】
【数43】
ステップ705) 変換行列MBaによって、ベース画像I1 を変換し、画像I’a1を作成する。
【0090】
一般に、この変換により被写体の位置が変わるので、変換後の画像は、変換後の像を含むことが可能な大きさにする必要がある。変換後の画像の大きさを見積もる手順を、図10を用いて説明する。
【0091】
図10の画像1001はベース画像I1 を表し、画像1001は変換後の画像I’a1を表す。点(Xc1,Yc1)1002、点(Xc2,Yc2)1003、点(XC3,Yc3)1004、点(Xc4,Yc4)1005は、ベース画像の四隅を表す。点(X”c1,Y”c1)1006は点1002を数式11及び数式12によって変換した点を表す。同様に、点1007、点1008、点1009は、点1003、点1004、点1005を同様に変換した点を表す。なお、ここでは、座標の単位は画素とする。
【0092】
変換後の画像の縦の長さ(画素数)H、横の長さ(画素数)Wは、元のベース画像の四隅を変換した点が入るように定める。即ち、
W=2MAXi |X”ci|
H=2MAXi |Y”ci|
とする。ここで、MAXは、最大値を表す。
【0093】
画像の変換は、元のベース画像の点を、変換行列MBaを用いた数式11及び数式12によって写像することにより行う。実装上は、変換後の画像を隙間無く生成するために、変換後の画像の1画素毎に、元のベース画像から画像の輝度値をサンプリングすることにより画像変換を行う。変換後の画像の全画素(X”,Y”)について、数式13及び数式14によって元のベース画像の対応点(X,Y)の座標を算出し、(X,Y)に最も近い画素の輝度値を、画素(X”,Y”)に設定する。(X,Y)が元のベース画像の外側である場合には、画素(X”,Y”)に既定値を設定する。このサンプリング方法は、nearest−neighbor法と呼ばれる方法であるが、他のサンプリング法を用いてもよい。
【0094】
【数44】
に沿うように回転し、焦点距離を平均焦点距離f’にして同じ被写体を再度撮影した場合に得られる画像と等価である。
【0095】
ステップ706) 画像Ia+1 を変換するための変換行列MTaを求める。この変換行列MTaは、カメラa+1の視線が
【0096】
【数45】
を向き、かつ、スクリーンのX軸が
【0097】
【数46】
を向くように回転させ、焦点距離を平均焦点距離f’としたとき、像がどのように変化するかを表すものである。
【0098】
図9の矢印907は、カメラa+1のスクリーン、スクリーン911は回転後のカメラa+1のスクリーンを表している。矢印907はベクトル
【0099】
【数47】
と同じ向きであり、スクリーン911のx軸は、ベクトル
【0100】
【数48】
と同じ向きであり、スクリーン911のy軸はベクトル
【0101】
【数49】
と同じ向きである。
【0102】
本ステップの処理は、対象がベースカメラでなく、カメラa+1である点を除けば、ステップ704と同じであるので、詳細な説明は省略するが、数式15及び数式16により、画像Ia+1 の点(X,Y)t を、点(X”,Y”)に変換することができる。
【0103】
【数50】
変換行列MTaは数式15のように定義する。
【0104】
また、逆に数式17及び数式18により、変換後の画像の点(X”,Y”)t を、画像Ia+1 の点(X,Y)t に逆変換することができる。
【0105】
【数51】
ステップ707) 変換行列MTaによって、画像Ia+1 を変換し、画像I’a,a+1 を作成する。
【0106】
本ステップの処理は、処理対象がベース画像ではなく画像Ia+1 であることと、変換に用いる変換行列がMBaではなく、MTaであることを除けば、ステップ705と同様であるので、手順の説明は省略する。
【0107】
得られた画像I’a,a+1 は、カメラa+1のx軸、y軸、視軸をベクトル
【0108】
【数52】
に沿うように回転し、焦点距離を平均焦点距離f’にして同じ被写体を再度撮影した場合に得られる画像と等価である。
【0109】
ステップ708) 変数aに1を加える。
【0110】
ステップ709) 変数aと、画像の枚数Nを比較し、一致していなければステップ703へ戻り、次のペアについて同様に処理を行う。一致していれば、本平行化処理を終了する。
【0111】
平行化処理が終了すると、平行化されたベース画像I’11,I’21,…,I’N−1,1 と、それらとペアになる平行化された画像I’12,I’23,…,I’N−1,N と、平行化のための変換行列MB1,MB2,…, MBN−1,MT1,MT2,…,MTN−1が得られている。図11に、これらの画像と変換行列との関係を示す。なお、同図では、N=6として示している。
【0112】
以上でステップ404の平行化の処理の詳細の説明を終了する。
【0113】
ステップ405) ステップ404で作成した変換後の画像に対して、MBSを適用し、ベース画像I1 の画素に対応する被写体の点の世界座標を求める。MBSの手順の詳細なフローチャートを図12及び図13に示す。
【0114】
以下、図12及び図13のフローチャートに基づいてMBSの手順を説明する。
【0115】
ステップ1201) ステレオペア毎にベースライン長Laを求める。ステレオペアaのベースライン長Laは、数式5及び数式6及び数式19によって求めることができる。
【0116】
【数53】
ステップ1202) 最長ベースライン長Lmax を求める。Lmax は、Baの中で最大のものでる。最長ベースライン長を与えるステレオペアをamax とする。
【0117】
ステップ1203) 変数xに−wb を代入する。wb は、変換前のベース画像の横幅の画素数の1/2である。
【0118】
ステップ1204) 変数yに−hb を代入する。hb は、変換前のベース画像の高さの画素数の1/2である。
【0119】
以下では、ベース画像の画像座標(x,y)の点に着目し、この点の3次元座標を計算する。
ステップ1205) 補正ベースライン長比Baを求める。ステレオペアaのベースライン長比を、最大ベースライン長との比La/Lmax で定義する。カメラの向きを変えることにより、同一の点であっても見かけ上、奥行きが変化する。また、焦点距離を変えると、奥行きと視差の関係も変化する。そこで、これらの変化率でベースライン長を補正し、補正ベースライン長比とする。
【0120】
ベースライン長の補正方法を図14を用いて説明する。図14は、点Oを視点とするベースカメラから点Pを観測する状況を、平行化前のカメラ座標系1413と、平行化後のカメラ座標系1414で表したものである。点O1401は、視点、軸1402は、平行化前カメラ座標系のx軸、軸1403は、平行化前カメラ座標系のz軸を表す。平行化前カメラ座標系のy軸は、紙面に垂直である。点P1404は、ある物体点を表している。スクリーン1405は平行化前のベースカメラのスクリーンであり、焦点距離はf1 でる。平行化前の状態でベースカメラで点Pを撮影すると、点Pがスクリーン1405上の点1406に投影される。点Pのz座標(奥行き)はpz でる。ベースライン長をLとしてステレオ法を用いれば、奥行きがpz である点に対して視差dが生じ、pz =Lf1 /dなる関係が成立する。
【0121】
ここで、平行化のためのカメラの視軸をz’軸に、x軸をx’軸に(仮想的に)なるよう回転させたとする。点O1407は視点、軸1408は平行化後カメラ座標系のx軸、軸1409は平行化後カメラ座標系のz軸を表す。点P1410は、点1404と同じ物体点であり、動いていない。スクリーン1411は、平行化後のベースカメラのスクリーンであり、焦点距離はf’である。平行化後の状態でベースカメラで点P1410を撮影すると、点Pがスクリーン1411上の点1412に投影される。点Pのz’座標(奥行き)はp’z である。平行化後にベースライン長をLとしてステレオ法を用いれば、奥行きがp’z である点に視差d’m が生じ、p’z =Lf’/dm なる関係が成立する。
【0122】
物体点Pの平行化前のカメラ座標を(px ,py ,pz )、平行化後のカメラ座標を(p’x ,p’y ,p’z )とすれば、数式20の関係が成立する。
【0123】
本ステップ1205では、ベース画像の点(x,y)に着目しているのであるから、対応する物体点は、ベースカメラの視点と、スクリーン上の点(xDx ,yDy ,f1 )を結ぶ直線上に存在するはずである。この場合には、平行化前後の物体点の見かけ上の奥行きには、数式21の関係が成立する。従って、平行化前後の視差dm ,d’m の間には、数式22の関係が成立する。ここで、dm ,d’m の単位は実世界の長さ(メートルなど)である。視差の単位を画素で表した平行化前後の視差dp ,d’p の間には、数式23の関係が成立する。
【0124】
【数54】
平行化後のステレオペアで得られた視差d’から、ベースカメラの元のカメラ座標で奥行きpz を計算するためには、視差を数式23によって補正する必要がある。数式23の示す比率を予めベースライン長比に算入し、補正ベースライン長Baとする。
【0125】
【数55】
ステップ1206) 変数Smin に定数MAXVALを代入する。定数MAXVALは、変数Smin の取り得る値の最大値(可能な限り大きい値)を代入する。視差探索変数dは、平行化前のベース画像I1 に対して、元の向きのままで、ベースライン長をLmax としてステレオ法を行った場合に発生するはずの視差(変移)を画素数で表したものとする。
【0126】
最適な視差dを探索するとき、視差の可能な定義行きを全て評価すると計算コストがかさむので、探索範囲を限定するようにする。ベースカメラの元のカメラ座標での被写体の奥行きの探索範囲の最大最小値を予め定め、Zmax ,Zmin とする。視差dの探索範囲の最大値dmax は数式25によって、dmin は数式26によって求められる。
【0127】
【数56】
ステップ1207) 配列Ax ,Ay に、ベース画像の画像座標を変換行列MBaで変換した座標を格納する。Ax ,Ay は3次元配列とし、ベース画像の点(x,y)を数式11及び数式12を用いてステレオペアaの平行化後ベース画像I’a1の座標(xb ,yb )を計算し、Ax [x,y,a]にxb を、Ay [x,y,a]にyb を格納する。ベース画像のすべての画素、全てのステレオペアについてこの計算を行い、配列Ax ,Ay に値を格納する。画像座標x,yは負の値を取り得るが、配列の添字に負の値が使えるかどうかはプログラム処理系に依存する。添字に負の値が使えない場合は、座標値にオフセット値を加えるなどして、添字が0以上になるようにすればよい。
【0128】
ステップ1208) 変数dに値dmin を代入する。
【0129】
ステップ1209) 変数Sに0を代入する。
【0130】
ステップ1210) 変数Cp に0を代入する。
【0131】
ステップ1211) 変数aに1を代入する。
【0132】
ステップ1212) 平行化前のベース画像の点の座標(x,y)と変数aを用いて、配列Ax ,Ay からステレオペアaの平行化後ベース画像I’a1の座標(xb ,yb )を得る。xb =Ax [x,y,a],yb =Ay [x,y,a]である。
【0133】
図15は、平行化前のベース画像I1 1501上の点1504が、平行化後ベース画像I’a1上の点1505に変換されたことを表している。図15では、a=1の場合について表している。ここで、ベースライン長をLmax としたとき、ベース画像1501の点1504の視差がDであるとする。すると、平行化後のステレオペア1の画像I’11とI’12では、視差はB1 Dとなるはずである。即ち、点1504が、画像I’121503の点(xb −B1 D,yb )(点1506)に観測されるはずである。しかしながら、値Dは未知数なので、テンプレートマッチングの評価値の最小化によりDを求める。
【0134】
以下のステップ1213以降では、視差をdとした場合のテンプレートマッチングを行う。
【0135】
ステップ1213) 画像I’a1の点(xb ,yb )の周囲のウィンドウと、画像I’a,a+1 の点(xb −Ba d,yb )の周囲のウィンドウがそれぞれの画像の中に収まるかを検査する。ウィンドウの形は通例、矩形領域とし、ウィンドウの大きさは10×10画素程度とするが、これに限るものではない。両画像でウィンドウが画像内に収まる場合には、ステップ1215に移行し、テンプレートマッチングを行う。収まらない場合には、テンプレートマッチングをスキップし、図13のステップ1302に移行する。
【0136】
ステップ1214) 変数Cp に1を加える。変数Cp には、点(x,y)、視差dについて、テンプレートマッチングを行ったステレオペアの数が格納される。次に、図13のステップ1301に移行する。
【0137】
以下図13のフローチャートの処理を説明する。
【0138】
ステップ1301) テンプレートマッチングの評価値を変数Sに加算する。画像I’a1の点(xb ,yb )の周囲のウィンドウと、画像I’a,a+1 の点(xb −Ba d,yb )の周囲のウィンドウの対応する画素についての輝度のSSD(輝度値の差の二乗の合計)を計算し、テンプレートマッチングの評価値とする。SSDは、ウィンドウ内の画像の類似度を評価する尺度であり、似ているほど小さい値をとる。
【0139】
ステップ1302) 変数aに1を加える。
【0140】
ステップ1303) 変数aの値と、カメラ台数Nを比較し、a=Nであれば、ステップ1304へ進み、そうでなければ図12のステップ1212に移行し、次のステレオペアについてテンプレートマッチングを行う。
【0141】
ステップ1304) 変数Cp の値を検査し、0より大きければステップ1305に移行し、評価値の比較を行う。そうでなければ、テンプレートマッチング実行可能なステレオペアが1組もなかったことを表しているので、評価値の比較をスキップし、ステップ1308に移行する。
【0142】
ステップ1305) 評価値の平均S/Cp と、変数Smin を比較し、S/Cp の方が小さければ、ステップ1306へ移行し、変数Smin を更新する。そうでなければ、Smin の値を更新せずに、ステップ1308へ移行する。
【0143】
ステップ1306) 変数Smin にS/Cp の値を代入する。変数Smin には、現時点での評価値S/Cp の最小値が格納されている。
【0144】
ステップ1307) 変数Dに視差dの値を代入する。変数Dには、現時点での最小評価値S/Cp を与える視差dが格納されている。
【0145】
ステップ1308) 変数dに刻み幅dstepを加える。dstepは、予め定めた定数で、例えば、1(画素)とする。これに限らず、他の値でもよい。
【0146】
ステップ1309) dとdmax を比較し、d>dmax であれば、ステップ1310に移行する。そうでなければ、図12のステップ1209に移行し、次なる視差dについて評価を行う。
【0147】
ステップ1310) 変数Smin の値と定数MAXVALを比較し、同値であれば、画素(x,y)について、テンプレートマッチングが1回も行われなかった、即ち、対応点が見つからなかったことを表している。Smin <MAXVALであば、点の奥行きの計算のためのステップ1311に移行する。そうでなければ、点の奥行き計算をスキップし、ステップ1312に移行する。
【0148】
ステップ1311) 変数x,y,Dの値から数式27によって被写体の点の世界座標(xw ,yw ,zw )を計算し、出力する。Dには、テプレートマッチングの評価値の最小値を与える視差dの値が格納されている。
【0149】
【数57】
ステップ1312) 変数yに1を加える。
【0150】
ステップ1313) 変数yの値とベース画像I1 の高さhb を比較し、y>hb であれば、ステップ1314に移行する。そうでなければ、図12のステップ1205に移行し、次なる画素についてMBSを行う。
【0151】
ステップ1314) 変数xに1を加える。
【0152】
ステップ1315) 変数xの値とベース画像I1 の幅wb を比較し、x>wb であれば、MBS処理を終了する。そうでなければ、図12の1204に移行し、次なる画素についてMBSを行い、奥行きの得られた点については3次元世界座標が出力されている。このようにして、被写体の形状を表す3次元の点群が得られる。
【0153】
本実施の形態で得られる物体点の奥行きは、視差Dの探索を刻み幅dstepで行うため、その刻み幅に応じた粗さでしか求まらないが、前述の文献(M.Okutomi and T.Kanade, ”A multiple−baseline stero,” IEEE PAMI, vol.15,no.4,pp.353−363,1993.)に示される方法などを用いて、さらに、細かい精度で視差を求め、奥行きを求めてもよい。
【0154】
また、ステップ1301で行うテンプレートマッチングの処理は、同一サイズの同一形状のウィンドウで、ウィンドウ内で相対的に同一の位置にある画素同士を比較することによって実施できる。この処理は単純であり、ハードウェアによる実装も比較的容易であるので、ハードウェア化による高速化が比較的容易である。
【0155】
また、上記のフローチャートで示した処理をプログラムとして構築し、三次元形状抽出装置として利用されるコンピュータにインストールする、または、ネットワークを介して流通させることも可能である。
【0156】
また、構築されたプログラムを三次元形状抽出装置として利用されるコンピュータに接続されるハードディスク装置や、フレキシブルディスク、CD−ROM等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることも可能である。
【0157】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0158】
【発明の効果】
上述のように、本発明によれば、画像を平行化し、平行化された画像に対してマルチプルベースラインステレオ法を実施すれば、対応点探索のための座標変換の計算量が削減でき、処理が高速化される。
【0159】
また、マルチプルベースラインステレオ法を適用する際に、テンプレートマッチングの処理が単純化され、ハードウェアによる計算の実行にも適するようになる。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図である。
【図2】本発明の一実施の形態における被写体を複数のビデオカメラで撮影する撮影系を示す図である。
【図3】本発明の一実施の形態における撮影された映像から被写体の3次元形状を復元する情報処理系を示す図である。
【図4】本発明の一実施の形態における処理のフローチャートである。
【図5】本発明の一実施の形態における画像座標系の定義を示す図である。
【図6】本発明の一実施の形態における撮影系によって被写体の撮影の様子を示す図である。
【図7】本発明の一実施の形態における平行化の処理のフローチャートである。
【図8】本発明の一実施の形態における入力画像の例である。
【図9】本発明の一実施の形態における平行化の説明図である。
【図10】本発明の一実施の形態における平行化画像の大きさの決定方法を示す図である。
【図11】本発明の一実施の形態における画像の平行化と座標変換行列とステレオペアの関係を示す図である。
【図12】本発明の一実施の形態におけるMBSの処理のフローチャート(その1)である。
【図13】本発明の一実施の形態におけるMBSの処理のフローチャート(その2)である。
【図14】本発明の一実施の形態におけるベースライン長の補正を説明するための図である。
【図15】本発明の一実施の形態における平行化後の画像における対応点探索を説明するための図である。
【図16】ステレオ法の原理を説明するための図である。
【符号の説明】
201〜205 ビデオカメラ
206 キャリブレーションパタン
301 ビデオ再生装置
302 映像入力装置
303 情報処理装置
304 表示装置
305 入力装置
501 点
601 被写体
I1 〜I5 ベース画像
901 点C1
902 点Ca+1
903 直線(ベースライン)
904,905,906907 矢印
908,909,910,911 スクリーン
1001 ベース画像I1
1002 点(Xc1,Yc1)
1003 点(Xc2,Yc2)
1004 点(Xc3,Yc3)
1005 点(Xc4,Yc4)
1007,1008,1009 変換した点
1401,1407 視点O
1402,1403 軸
1404 点P
1405 スクリーン
1406 点
1408 平行化後カメラ座標系のx軸
1409 平行化後カメラ座標系のz軸
1410 点P
1411 平行化後のベースカメラのスクリーン
1412 点
1413 平行化前のカメラ座標系
1414 平行化後のカメラ座標系
1501 平行化前のベース画像I1
1503 画像I’12の点
1504 平行化前のベース画像I1 上の点
1505 平行化後ベース画像I’1 上の点
1506 画像I’12の点(xb −B1 D,yb )
Claims (5)
- 複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出方法において、
前記複数のカメラによって同一の被写体を撮影した複数の画像を入力し、
前記複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力し、
入力された前記複数の画像からある1枚の画像をベース画像として選択し、
前記ベース画像以外の画像のそれぞれ1枚と、前記ベース画像とからなる複数のステレオペアを構成し、
前記複数のステレオペアのそれぞれについて平行化を行い、
前記複数のステレオペアの平行化された画像に対して前記マルチプルベースラインステレオ法を適用し、前記被写体の世界座標を求めることにより、該被写体の3次元形状を抽出することを特徴とする三次元形状抽出方法。 - 前記平行化を行う際に、
前記ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求め、
前記方向bに垂直である方向hを一つ定め、
前記方向bと該方向hに垂直である方向eを求め、
前記ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が前記方向eを向き、水平方向が前記方向bと平行し、垂直方向が前記方向hを向くように回転させ、かつ、前記内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成する請求項1記載の三次元形状抽出方法。 - 前記平行化を行う際に、
全てのカメラの平均焦点距離f’を求め、
カメラaの変数aに1を代入し、
前記ベース像I1 と画像Ia+1 をステレオペアaとし、該ステレオペアaに対して向きの基準となる直交する単位ベクトルb,h,eを求め、
前記ベース画像I1 を変換するための画像変換行列MBaを求め、
前記ベース画像I1 を前記画像変換行列MBaによって、カメラのx軸、y軸、視軸を前記単位ベクトルに沿うように回転し、前記平均焦点距離にして同じ被写体を再度撮影した場合に得られる画像と等価になるように変換し、画像I’a1を求め、
前記画像Ia+1 について、カメラa+1の視線が前記単位ベクトルのベースラインに垂直なベクトルeを向き、かつスクリーンのX軸が、前記ステレオペアのベースカメラの視点から他方のカメラの視点への直線の向きと一致するベクトルbを向くように回転させ、焦点距離を前記平均焦点距離f’としたとき、像がどのように変化するかを表す変換行列MTaを求め、
前記画像Ia+1 を前記変換行列MTaによって変換し、画像I’a+1 を求め、
前記変数aにa+1を代入し、全画像の枚数Nになるまで前記単位ベクトルb,h,eを求める処理以降の処理を繰り返す請求項2記載の三次元形状抽出方法。 - 複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムであって、
前記複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
前記複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された前記複数の画像からある1枚の画像をベース画像として選択するステップと、
前記ベース画像以外の画像のそれぞれ1枚と、前記ベース画像とからなる複数のステレオペアを構成するステップと、
前記複数のステレオペアのそれぞれについて平行化を行うステップと、
前記複数のステレオペアの平行化された画像に対して前記マルチプルベースラインステレオ法を適用し、前記被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
前記平行化を行うステップは、
前記ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
前記方向bに垂直である方向hを一つ定めるステップと、
前記方向bと該方向hに垂直である方向eを求めるステップと、
前記ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が前記方向eを向き、水平方向が前記方向bと平行し、垂直方向が前記方向hを向くように回転させ、かつ、前記内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含むことを特徴とする三次元形状抽出プログラム。 - 複数のカメラによって同一の被写体を撮影した複数の画像からマルチプルベースライン法を用いて該被写体の3次元形状を抽出する三次元形状抽出プログラムを格納した記憶媒体であって、
前記複数のカメラによって同一の被写体を撮影した複数の画像を入力するステップと、
前記複数のカメラの内部カメラパラメータ及び外部カメラパラメータを入力するステップと、
入力された前記複数の画像からある1枚の画像をベース画像として選択するステップと、
前記ベース画像以外の画像のそれぞれ1枚と、前記ベース画像とからなる複数のステレオペアを構成するステップと、
前記複数のステレオペアのそれぞれについて平行化を行うステップと、
前記複数のステレオペアの平行化された画像に対して前記マルチプルベースラインステレオ法を適用し、前記被写体の世界座標を求めることにより、該被写体の3次元形状を抽出するステップと、を有し、
前記平行化を行うステップは、
前記ステレオペアの2画像を撮影した2つのカメラの視点を結ぶ直線の方向bを求めるステップと、
前記方向bに垂直である方向hを一つ定めるステップと、
前記方向bと該方向hに垂直である方向eを求めるステップと、
前記ステレオペアの画像を撮影したカメラの向きを、視点を動かさずに、視軸が前記方向eを向き、水平方向が前記方向bと平行し、垂直方向が前記方向hを向くように回転させ、かつ、前記内部カメラパラメータをある所定の値に変更し、再度撮影した場合に得られるような画像を作成するステップと、を含むことを特徴とする三次元形状抽出プログラムを格納した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002295440A JP2004133556A (ja) | 2002-10-08 | 2002-10-08 | 三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002295440A JP2004133556A (ja) | 2002-10-08 | 2002-10-08 | 三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004133556A true JP2004133556A (ja) | 2004-04-30 |
Family
ID=32285699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002295440A Pending JP2004133556A (ja) | 2002-10-08 | 2002-10-08 | 三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004133556A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007334583A (ja) * | 2006-06-14 | 2007-12-27 | Kddi Corp | 多視点画像を用いた自由視点画像生成方法、装置及びプログラム |
JP2008131176A (ja) * | 2006-11-17 | 2008-06-05 | Aisin Seiki Co Ltd | カメラ校正装置 |
JP2012173032A (ja) * | 2011-02-18 | 2012-09-10 | Ricoh Co Ltd | 画像処理装置、方法、プログラムおよび記録媒体 |
JP2015019346A (ja) * | 2013-06-12 | 2015-01-29 | 日本放送協会 | 視差画像生成装置 |
JP2015114954A (ja) * | 2013-12-13 | 2015-06-22 | 株式会社ジオ技術研究所 | 撮影画像解析方法 |
-
2002
- 2002-10-08 JP JP2002295440A patent/JP2004133556A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007334583A (ja) * | 2006-06-14 | 2007-12-27 | Kddi Corp | 多視点画像を用いた自由視点画像生成方法、装置及びプログラム |
JP2008131176A (ja) * | 2006-11-17 | 2008-06-05 | Aisin Seiki Co Ltd | カメラ校正装置 |
JP2012173032A (ja) * | 2011-02-18 | 2012-09-10 | Ricoh Co Ltd | 画像処理装置、方法、プログラムおよび記録媒体 |
JP2015019346A (ja) * | 2013-06-12 | 2015-01-29 | 日本放送協会 | 視差画像生成装置 |
JP2015114954A (ja) * | 2013-12-13 | 2015-06-22 | 株式会社ジオ技術研究所 | 撮影画像解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Capel | Image mosaicing | |
US10846885B2 (en) | Methods and computer program products for calibrating stereo imaging systems by using a planar mirror | |
CN101630406B (zh) | 摄像机的标定方法及摄像机标定装置 | |
JP5392415B2 (ja) | ステレオ画像生成装置、ステレオ画像生成方法及びステレオ画像生成用コンピュータプログラム | |
JPWO2018235163A1 (ja) | キャリブレーション装置、キャリブレーション用チャート、チャートパターン生成装置、およびキャリブレーション方法 | |
JP5106375B2 (ja) | 3次元形状復元装置及びそのプログラム | |
JP2000215311A (ja) | 仮想視点画像生成方法およびその装置 | |
CN105005964B (zh) | 基于视频序列影像的地理场景全景图快速生成方法 | |
JP2010513907A (ja) | カメラシステムのキャリブレーション | |
KR20100119559A (ko) | 2d 이미지 데이터를 스테레오스코픽 이미지 데이터로 변환하기 위한 방법 및 시스템 | |
KR102152436B1 (ko) | 3차원 포인트 클라우드 기반의 동적 3차원 모델 생성을 위한 뼈대 정보 처리 시스템 및 방법 | |
CN109613974B (zh) | 一种大场景下的ar家居体验方法 | |
KR100951309B1 (ko) | 광학식 모션 캡처 장비를 위한 다중 카메라 보정 방법 | |
GB2567245A (en) | Methods and apparatuses for depth rectification processing | |
KR20220053332A (ko) | 파노라마 영상으로부터 공간 모델을 생성하는 서버, 방법 및 컴퓨터 프로그램 | |
CN113643414A (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
US20100158482A1 (en) | Method for processing a video data set | |
Liu et al. | Epipolar rectification method for a stereovision system with telecentric cameras | |
JP2022024688A (ja) | デプスマップ生成装置及びそのプログラム、並びに、デプスマップ生成システム | |
KR20000011022A (ko) | 화상 합성 장치 및 방법,위치 검출 장치 및 방법, 및공급 매체 | |
JP4102386B2 (ja) | 3次元情報復元装置 | |
CN117011494A (zh) | 一种基于多深度相机的三维建模方法、电子设备和存储介质 | |
JP2004133556A (ja) | 三次元形状抽出方法及び三次元形状抽出プログラム及び三次元形状抽出プログラムを格納した記憶媒体 | |
RU2384882C1 (ru) | Способ автоматической компоновки ландшафтных панорамных изображений | |
CN115719320A (zh) | 基于遥感影像的倾斜校正稠密匹配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070828 |