(57)【特許請求の範囲】
【請求項１】
複数種類の符号が二次元に並ぶ投影符号列の各符号に、符号の種類ごとに異なるシンボルを割り当てて得られた投影パターンを被写体に投影して得られた撮像画像を用いて前記被写体の三次元計測を行う画像情報処理装置であって、
前記撮像画像からシンボルを抽出して撮像パターンを取得する取得手段と、
前記取得手段で取得された前記撮像パターンの各シンボルを、対応する符号に変換して撮像符号列を取得する変換手段と、
所定数の符号の二次元の取得位置とそれらの順序が規定された複数種類のサンプリングパターンから選択された一つのサンプリングパターンにしたがって、前記撮像符号列から前記所定数の符号を取得し、並べて情報符号列を生成する生成手段と、
前記情報符号列と前記サンプリングパターンとに基づいて前記情報符号列と前記投影符号列を対応付けることで前記被写体の三次元計測を行う計測手段とを有し、
前記複数種類のサンプリングパターンは、前記取得位置の二次元の並びの形状が互いに異なっており、
前記生成手段は、前記選択された一つのサンプリングパターンを用いて前記撮像符号列から前記所定数の符号を取得できなかった場合には、前記複数種類のサンプリングパターンから別のサンプリングパターンを選択して前記情報符号列を生成することを特徴とする画像情報処理装置。
【請求項２】
一つのサンプリングパターンから得られる全ての情報符号列が前記投影パターンにおいて唯一つしか存在しないように前記サンプリングパターンと前記投影符号列が構成されていることを特徴とする請求項１に記載の画像情報処理装置。
【請求項３】
前記サンプリングパターンは、所定サイズの部分符号列から情報符号列を生成するためのものであり、
前記部分符号列における、前記情報符号列以外の冗長符号を用いて、前記情報符号列の誤りを検出する検出手段を更に備えることを特徴とする請求項１または２に記載の画像情報処理装置。
【請求項４】
前記サンプリングパターンは、横方向にｍ個、縦方向にｎ＋１個の点を有する部分符号列からｍ＋ｎ個の符号を抽出するための縦方向と横方向の各列の位置と、抽出された符号の順序を規定していることを特徴とする請求項２または３に記載の画像情報処理装置。
【請求項５】
前記部分符号列における、前記情報符号列の生成に用いられる前記ｍ＋ｎ個の符号以外の符号を冗長符号として用いて、前記情報符号列の誤りを検出、訂正する検出手段を更に備えることを特徴とする請求項４に記載の画像情報処理装置。
【請求項６】
前記投影符号列は、縦横の２つの方向に対して１つずつの、３値以上の符号で構成されたde Bruijn系列に基づいて生成されていることを特徴とする請求項３乃至５のいずれか１項に記載の画像情報処理装置。
【請求項７】
前記部分符号列の縦横の大きさが、前記投影符号列に用いられた縦横のde Bruijn系列における部分系列長と等しいことを特徴とする請求項６に記載の画像情報処理装置。
【請求項８】
前記投影符号列は、縦横の２つの方向に対して１つずつの、２値符号によるM系列に基づいて生成されていることを特徴とする請求項４または５に記載の画像情報処理装置。
【請求項９】
前記部分符号列の縦横の大きさが、前記投影符号列に用いられた縦横のM系列における部分系列長と等しいことを特徴とする請求項８に記載の画像情報処理装置。
【請求項１０】
複数種類の符号が二次元に並ぶ投影符号列の各符号に、符号の種類ごとに異なる所定のシンボルを割り当てて得られた投影パターンを被写体に投影して得られた撮像画像を用いて前記被写体の三次元計測を行う画像情報処理装置の制御方法であって、
前記撮像画像からシンボルを抽出して撮像パターンを取得する取得工程と、
前記取得工程で取得された前記撮像パターンの各シンボルを、対応する符号に変換して撮像符号列を取得する変換工程と、
所定数の符号の二次元の取得位置とそれらの順序が規定された複数種類のサンプリングパターンから選択された一つのサンプリングパターンにしたがって、前記撮像符号列から前記所定数の符号を取得し、並べて情報符号列を生成する生成工程と、
前記情報符号列と前記サンプリングパターンとに基づいて前記情報符号列と前記投影符号列を対応付けることで前記被写体の三次元計測を行う計測工程と、を有し、
前記複数種類のサンプリングパターンは、前記取得位置の二次元の並びの形状が互いに異なっており、
前記生成工程では、前記選択された一つのサンプリングパターンを用いて前記撮像符号列から前記所定数の符号を取得できなかった場合には、前記複数種類のサンプリングパターンから別のサンプリングパターンを選択して前記情報符号列を生成することを特徴とする画像情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定パターンを投影して撮像された画像から、所定パターンを検出して三次元計測を行う画像情報処理装置及びその方法に関する。
【背景技術】
【０００２】
物体の三次元形状計測装置は、産業分野における工場での部品検査、医学的な分野における生体の形状計測等、各分野において広く用いられている。特に非接触による計測方法は、対象物体が測定装置の接触によって変形、破損する恐れのある場合に有効である。このような非接触の三次元形状計測では、撮像装置により得られた画像を用いて三角測量を行う方式が広く用いられている。例えば非特許文献１では、色によって特徴付けられた点列パターンをプロジェクタによって被写体に投影し、カメラでその反射光を撮像することによって三次元形状計測を行う例が示されている。
【０００３】
特許文献１に記載された三次元計測の具体的な手順を下記に述べる。最初に、数学的な規則に従って二次元的な符号列で色の順序が決められたＲＧＢ３色の点列を、投影パターン画像としてプロジェクタで被写体へ投影する。投影パターン画像が投影された被写体をカメラで撮像し、撮像画像内で観察された点列を、撮像点列として抜き出す。抜き出した撮像点列の隣り合う色の順序を、予め決められた符号列に基づき撮像符号列として復号する。投影パターン画像の符号列の数学的な規則から、得られた撮像符号列に含まれる各部の部分符号列が、投影パターン画像の符号列上のどの二次元位置に存在するかを対応付ける。撮像符号列で取りうる全ての部分符号列を抜き出して上記二次元位置の対応付けを行い、三角測量の原理により各点の三次元位置を求める。以上の手順により、被写体の三次元形状計測を行う。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】P. M. Griffin, L.S. Narashimhan and S.R. Yee: “GENERATION OF UNIQUELY ENCODED LIGHT PATTERNS FOR RANGE DATA AQUISITION”, Pattern Recognition, Vol.25,  Issue 6 pp.609-616, 1992
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし上記従来技術例では、被写体の形状によっては、撮像符号列から十分な大きさの部分符号列を抜き出せない撮像画像の領域では対応付けが不能となるため、三次元形状計測が行えないという課題がある。また、誤って撮像点列から本来は隣り合わない点列から部分符号列を抜き出した場合や、撮像点列の色がノイズや被写体表面のテクスチャなどの影響で誤った色として識別された場合には、誤った二次元位置に対応付けされてしまい、不正確な三次元計測結果が出力されるという課題がある。対応付けに用いる部分符号列をより長くすることでこのような対応付けの誤りの検出を行うことは出来るものの、一方で被写体の形状によっては、撮像符号列から部分符号列を抜き出せない領域がより増加するという課題が生じる。
【０００６】
本発明は上記課題に鑑みてなされたものであり、その目的は、誤った対応付けを低減すると同時に、より様々な被写体の形状に対しても三次元計測を可能とする、よりロバストな三次元計測方法を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するための本発明の一態様による画像情報処理装置は以下の構成を備える。すなわち、
複数種類の符号が二次元に並ぶ投影符号列の各符号に、符号の種類ごとに異なるシンボルを割り当てて得られた投影パターンを被写体に投影して得られた撮像画像を用いて前記被写体の三次元計測を行う画像情報処理装置であって、
前記撮像画像からシンボルを抽出して撮像パターンを取得する取得手段と、
前記取得手段で取得された前記撮像パターンの各シンボルを、対応する符号に変換して撮像符号列を取得する変換手段と、
所定数の符号の二次元の取得位置とそれらの順序が規定された複数種類のサンプリングパターンから選択された一つのサンプリングパターンにしたがって、前記撮像符号列から前記所定数の符号を取得し、並べて情報符号列を生成する生成手段と、
前記情報符号列と前記サンプリングパターンとに基づいて前記情報符号列と前記投影符号列を対応付けることで前記被写体の三次元計測を行う計測手段とを有し、
前記複数種類のサンプリングパターンは、前記取得位置の二次元の並びの形状が互いに異なっており、
前記生成手段は、前記サンプリングパターンを用いて前記撮像符号列から前記所定数の符号を取得できなかった場合には、前記複数種類のサンプリングパターンから別のサンプリングパターンを選択して前記情報符号列を生成する。
【発明の効果】
【０００８】
本発明によれば、誤った対応付けが低減されるとともに、より様々な被写体の形状に対しても三次元計測を可能とする、よりロバストな三次元計測方法が提供される。
【図面の簡単な説明】
【０００９】
【図１】三次元計測装置の全体構成を示す図。
【図２】投影パターン画像の例を示す図。
【図３】投影パターン画像の生成に使用する投影符号列の例を示す図。
【図４】三次元計測装置による処理の流れを示すフローチャート。
【図５】撮像画像の例と、撮像画像から抽出した撮像点列の例を示す図。
【図６】撮像符号列の例を示す図。
【図７】撮像符号列を一部拡大した様子を示す図。
【図８】情報符号列と冗長符号の取得方法（Ｓ４０８）を説明するフローチャート。
【図９】本実施形態における全てのサンプリング形状を示す図。
【図１０】本実施形態における全てのサンプリング形状内の情報符号列を示す図。
【図１１】符号誤りの検出・訂正の方法を説明するフローチャート。
【図１２】符号誤り検出・訂正を行うサンプリング符号列の３例を示す図。
【図１３】サンプリング符号列の３例から計算されたハッシュ値を示す図。
【図１４】投影パターン画像と撮像符号列の対応付け方法を説明するフローチャート。
【図１５】本実施形態で使用する投影符号列テーブルの例を示す図。
【図１６】実施形態による三次元計測を説明する図。
【図１７】他の投影パターンの例を示す図。
【図１８】情報符号列と冗長符号の取得方法を説明するフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付の図面を参照して本発明の好適な実施形態の一例を説明する。
【００１１】
＜第１実施形態＞
図１に、本実施形態における画像情報処理装置の全体の構成を示す。プロジェクタ１０１は、計測対象となる被写体１０２に対して、図２に示すような赤、緑、青のいずれかの色で着色された点列からなる投影パターン画像を投影する、パターン投影部として作用する。パターン生成部１０３は、上述したプロジェクタ１０１で投影するための投影パターン画像（二次元シンボル列を含む投影パターンの画像）として、図３に示す1，2，3の符号からなる投影符号列を赤、緑、青の各色の点列に置き換える円形のシンボルとして割り当てた画像を生成するパターン投影装置として作用する。カメラ１０４は、投影パターン画像が投影された状態の被写体１０２を撮像する撮像部として作用する。ここで、カメラ１０４の位置・姿勢は、カメラ１０４上の画像座標系におけるｘ軸と、プロジェクタ１０１、カメラ１０４の２つの主点位置がなす直線とが平行になるよう調整されている。パターン抽出部１０５は、カメラ１０４で得られた撮像画像内から、被写体１０２上で投影パターン画像に照射されたシンボルの部分である撮像点列のみを抽出する処理を行う。
【００１２】
情報取得部１０６は、パターン抽出部１０５で抽出された撮像点列の各点を、各色に対応した符号に変換し、撮像符号列として取得する。この撮像符号列は、符号サンプリング部１０７は、情報取得部で得られた撮像符号列から、予め決められた複数種類のサンプリング形状（図９、図１０により後述）のうちの一つを選択して所定数の符号のサンプリングを行う。このサンプリングにより、対応付けの計算に用いるための情報符号列と符号誤り検出・訂正に用いるための冗長符号を取得する。符号誤り検出・訂正部１０８は、符号サンプリング部１０７で得られた情報符号列と冗長符号とを合わせて符号の照合を行い、情報符号列、冗長符号の符号誤りの検出と、可能であれば符号誤りの訂正を行い、照合済情報符号列を出力する。対応計算部１０９は、符号誤り検出・訂正部１０８で得られた照合済情報符号列と、パターン生成部１０３で使用した投影符号列と、符号サンプリング部１０７でサンプリングを行ったサンプリング形状から、投影パターン画像と撮像符号列の対応付けを行う。三次元形状取得部１１０は、対応付けが行われた撮像点列を用いて、三角測量の原理でカメラ１０４と、投影パターン画像が投影された被写体１０２との間の奥行き、すなわち形状を計算する。
【００１３】
図４に本実施形態による画像情報処理装置の制御を説明するフローチャートを示す。以下、フローチャートのステップ番号に従って、本実施形態による画像情報処理装置の動作説明を行う。
ステップＳ４０１：パターン生成部１０３が、投影パターン画像を生成する。ここで生成される投影パターン画像は図２に示すように、符号に応じて赤、緑、青の３色に着色され、縦横に規則的に配置された点列で構成されている。この赤、緑、青の点列は、投影符号列を表現するシンボル列として作用し、それらの並ぶ順序は、図３に示す投影符号列を用いて決められている。本実施形態では、投影符号列の１を赤、２を緑、３を青としてそれぞれ投影パターン画像内のシンボルに割り当てている。
【００１４】
図３に示すように、投影符号列はu,vの各方向の縦横二次元の数列で構成されており、以下に述べる規則を用いて符号化されている。最初に、u方向、v方向で１つずつ、すなわち、横方向と縦方向の計２方向で２つのdeBruijn系列を選択する。deBruijn系列は、使える単位符号の種類がk個の場合、系列長klからなる系列で、lの部分系列長を有する連続した部分系列が、全符号列中に一つしか存在しない性質を有する。たとえば、投影パターン画像として使用できるシンボルの数をk、後述するサンプリング形状を囲む矩形の大きさをu,v順でm×(n+1)（横方向にｍ個、縦方向にｎ＋１個のサイズ）とする。この場合、u方向のdeBruijn系列はkmのものを、v方向はknのものをそれぞれ選択する。本実施形態では、３つの色をシンボルとして使用するため、k=3である。また、後述するサンプリング形状は、全て大きさ3×3の矩形で囲まれるため、ｍ=3、n=2となる。
【００１５】
本実施形態のu方向で用いるk=3，m=3（系列長33=27）のdeBruijn系列は、以下に示す数列となる。
33132131123122121113323222333      …（１）
同様に、本実施形態のv方向で用いるk=3，n=2(系列長32=9)のdeBruijn系列を以下に示す。
3311322123      …（２）
なお、本実施例で使用している（１）、（２）のde Bruijn系列は巡回を考慮していないため、本来の系列長よりもそれぞれm+k-1、n+k-1だけ長い配列となる。（パターンに繰り返しを持つ場合については後述する）。
【００１６】
次に、上記2つのde Bruijn系列を用いた投影符号列の生成方法について述べる。最初にu方向１行目として、u方向のdeBruijn系列をそのまま投影符号列として使用する。u方向2行目以降は、１つ前の行の符号列の各値に対して、v方向のde Bruijn系列の値を加算した結果を符号列とする。ここで、加算結果は1〜kで表されるk進数で表し、繰り上がりは無視する。例えば、図２の１行目の符号列（最下行の符号列）の各値には、（２）に示される系列の１番目の数値“３”が加算される。この場合、１＋３＝１、２＋３＝２、３＋３＝３という演算が行なわれるので、１行目の符号列と２行目の符号列は等しくなる。また、４行目の符号列は、３行目の符号列に（２）の系列の３番目の値“１”が加算される。１＋１＝２、２＋１＝３、３＋１＝１となるので、図３の３行目の符号列の各値に１が加算されると４行目のような符号列が得られることになる。以上のように、全てのv方向のdeBruijn系列を１行ずつ加算して符号列を求めていくことで、図３に示すようなu,v各方向二次元の投影符号列を生成することが出来る。
【００１７】
以上の方法で生成した投影符号列は、投影符号列内のm×nの所定のサイズを持つ任意の位置にある矩形で囲まれる部分符号列の領域内で、所定のある行とある列を固定した順序でサンプリングしたm＋nの長さの符号列は、投影符号列の中で唯一つしか存在しない性質を有する。この性質は、後述するステップＳ４０８におけるサンプリング形状の決定と、ステップＳ４１０における符号誤りの検出・訂正に使用される。
【００１８】
以上の性質を持つ投影符号列が、上記のように３色の点でシンボル化して埋め込まれた投影パターン画像を生成することで、以下のステップの処理を可能にする。
ステップＳ４０２：プロジェクタ１０１が、被写体１０２に対して、ステップＳ４０１で生成された投影パターン画像の投影を行う。
ステップＳ４０３：カメラ１０４が、投影パターン画像の投影が行われた被写体１０２を撮像し、図５（ａ）に示す撮像画像５０１を生成する。
【００１９】
ステップＳ４０４：パターン抽出部１０５が、取得手段として機能し、ステップＳ４０３で生成された撮像画像５０１内から、図５（ｂ）に示すように被写体１０２上に照射された投影パターン画像に相当する撮像パターンである、撮像点列５０２を抽出する。本処理では、赤、緑、青の各色で一定以上の輝度の領域をそれぞれシンボルとして抽出することで撮像点列５０２を抽出する。なお、抽出した全ての色情報は保持しておく。また、単一の色を持つ１つの連続領域を単位撮像点として扱い、撮像点（の重心）ごとにカメラ座標系ｘｙ上の二次元位置を保持しておく。
【００２０】
ステップＳ４０５：情報取得部１０６が、ステップＳ４０４で抽出した撮像点列５０２に付加されている撮像符号列を取得する。ここでは、ステップＳ４０１において各色の点をシンボルとして割り当てた符号を、逆に数値へ復号すればよい。つまり、赤は1、緑は2、青は3として撮像符号列を取得する。撮像符号列を構成する単位撮像符号は、復元された符号の値と、対応する撮像点のｘｙ座標上の二次元位置を保持する。図６に、復号された撮像符号列６０１を示す。
【００２１】
次に、各撮像符号同士の上下左右に存在する、隣接符号との隣接関係を復元する。図７に撮像符号列を一部拡大した様子を示す。例として、図７における注目撮像符号７０１における隣接関係の復元を説明する。カメラ１０４の位置・姿勢は、カメラ１０４上の画像座標系におけるｘ軸と、プロジェクタ１０１、カメラ１０４の２つの主点位置がなす直線とが平行になるよう調整されているため、撮像点列は全てｘ軸に対して平行に撮像されている。ゆえに、撮像符号列同士のｘ方向の接続関係は容易に復元できる。最初に注目撮像符号７０１のｘ方向左右に存在する最近傍の符号を隣接する符号として探索する。次に、ｙ方向上下の隣接関係を探索する。この時、ｙ方向はｙ軸に対して平行ではなく、ｘ方向にオフセットを持った状態で隣接符号が存在する可能性があるため、ｘ方向に探索範囲７０２を設けて、この範囲内で隣接符号を探索する。
【００２２】
上記の手順により、各撮像符号同士の上下左右の隣接関係を復元し、結果を各撮像符号単位で保持しておく。
【００２３】
ステップＳ４０６：符号サンプリング部１０７が、情報取得部１０６で得られた撮像符号列を走査し、後述する情報符号列を得るための、符号をサンプリングする最初の点となる原点を設定する。走査は、同じ原点が重複して設定されないように行われ、全ての撮像符号列が原点として設定されるまで走査が行われたら、走査終了とする。
ステップＳ４０７：ステップＳ４０６における結果が、走査終了かどうかを判定する。走査終了であれば、本処理を終了する。そうでない場合は、ステップＳ４０８に進む。
【００２４】
ステップＳ４０８：符号サンプリング部１０７が、予め決められた複数種類のサンプリング形状から一つを選択する。そして、符号サンプリング部１０７は、情報取得部１０６で得られた撮像符号列のステップＳ４０６で設定された原点に対応した位置から、選択したサンプリング形状にしたがって符号のサンプリングを行う。そして、情報符号列と、冗長符号を一組取得する。図８に、ステップＳ４０８における情報符号列と冗長符号の取得方法を説明するフローチャートを示す。以下、図８のフローチャートのステップ番号に従って、ステップＳ４０８の動作を詳細に説明する。
【００２５】
ステップＳ８０１：符号サンプリング部１０７は、符号サンプリングに使用するサンプリング形状を示す、サンプリング形状番号Pを1に初期化する。本サンプリング形状は、抽出するべき所定数の点の位置と、それらの情報符号列における順序を規定したものである。たとえば、本実施形態におけるサンプリング形状は、撮像符号列中の3×3の部分点列を含む矩形内で、任意の行と任意の列を決まった順序でサンプリングする場合の、全ての組み合わせ形状を予め用意し、番号Pを割り当てておく。図９の（１）〜（９）に、本実施形態における全てのサンプリング形状を示す。丸印が各符号、点線が撮像符号列中の3×3の部分点列を含む矩形を示している。符号内の数字はサンプリングする順序（情報符号列における順序）を示しており、注目している符号のサンプリング順序を１として、番号順にサンプリングを行う。
【００２６】
また、上記部分点列における所定数の点以外の点（上記ｍ＋ｎ個の符号以外の点）に対応する符号は冗長符号として情報符号列の誤りを検出するために用いられる。たとえば、本実施形態においては、サンプリングする順序の１〜５が対応付けに用いる長さがm＋n＝５の長さの情報符号列、それ以外の、すなわち情報符号列以外の６〜９が符号誤り検出・訂正に用いる冗長符号を示している。情報符号列は、図１０の（１）〜（９）に示すように、各サンプリング形状で異なる組み合わせの撮像符号列からサンプリングするよう定められている。たとえば、複数のサンプリング形状は、横方向にｍ個、縦方向にｎ＋１個の点を有する部分符号列において（図１０の場合、ｍ＝３、ｎ＝２）、横方向から選択された１列と縦方向から選択された１列に含まれるｍ＋ｎ個の符号の位置とその順序が規定されている。
【００２７】
ステップＳ８０２：符号サンプリング部１０７は、サンプリングする符号列の順序を示す、サンプリング順序Nを１に初期化する。
ステップＳ８０３：符号サンプリング部１０７は、サンプリング形状番号Pが、最大の番号Pmaxを超えていないかどうかをチェックする。本実施形態においては、図９で示したようにPmax=９である。ステップＳ８０３においてPがPmaxを超えていると判定された場合は、全てのサンプリング形状で情報符号列を取得できなかったことを意味するため、ステップＳ４０６の処理を失敗として終了する。超えていなければ処理を続行する。
【００２８】
ステップＳ８０４：符号サンプリング部１０７は、現在のサンプリング形状番号Pにおける、サンプリング順序Nに当たる符号のサンプリングを行い、情報符号列を１つ取得する。取得に成功した場合はステップＳ８０６に進む。撮像符号列内で、隣接する符号が存在せず、サンプリング順序Nの位置での撮像符号列の取得に失敗した場合はステップＳ８０５に進む。
【００２９】
ステップＳ８０５：サンプリング形状番号Pに１を加えて、ステップＳ８０２に戻る。
ステップＳ８０６：符号サンプリング部１０７は、サンプリング順序Nが、情報符号列の長さ５に達しているかどうかをチェックする。達していなければ、ステップＳ８０７に進む。達していればステップＳ８０８に進む。
ステップＳ８０７：サンプリング順序Nに１を加えて、ステップＳ８０４に戻る。
【００３０】
ステップＳ８０８：符号サンプリング部１０７は、現在のサンプリング形状番号Pにおける、サンプリング順序Nに当たる符号のサンプリングを行い、冗長符号を１つ取得する。取得に成功した場合はステップＳ８０９に進む。撮像符号列内で、サンプリング順序Nの位置に取得できる符号が存在せず、取得に失敗した場合は符号サンプリング成功として処理を終了する。
【００３１】
ステップＳ８０９：符号サンプリング部１０７は、サンプリング順序Nが、情報符号列と冗長符号を合わせた最大長さの９に達しているかどうかをチェックする。達していなければ、ステップＳ８１０に進む。達していれば成功として処理を終了する。
ステップＳ８１０：サンプリング順序Nに１を加えて、ステップＳ８０８に戻る。
【００３２】
以上の手順で処理を行うことにより、ステップＳ４０８において、情報取得部１０６で得られた撮像符号列からサンプリングが行われ、情報符号列と冗長符号（以下で、これらを合わせてサンプリング符号列と呼ぶ）が取得される。ステップＳ４０８の符号サンプリングの処理を終えると、処理はステップＳ４０９へ進む。
【００３３】
ステップＳ４０９：符号誤り検出・訂正部１０８は、ステップＳ４０８における符号サンプリング処理の成否を判定する。処理結果が失敗であれば、ステップＳ４０６に戻る。処理結果が成功であればステップＳ４１０に進む。
ステップＳ４１０：符号誤り検出・訂正部１０８が、サンプリング符号列を用いて符号の照合を行い、サンプリング符号列における符号誤りを検出する。さらに、符号誤りが訂正可能であれば、符号の訂正を行う。図１１に、ステップＳ４１０における符号誤りの検出・訂正の方法を説明するフローチャートを示す。以下、図１１のフローチャートのステップ番号に従って、ステップＳ４１０の動作説明を行う。
【００３４】
ステップＳ１１０１：符号誤り検出・訂正部１０８は、サンプリング符号列から、符号照合結果を示すハッシュ値を計算する。図１２の（ａ）〜（ｃ）に、サンプリング符号列の例を示す。図１２の（ａ）〜（ｃ）は、いずれも同一の情報符号列１２０１を有し、冗長符号の数のみが異なっている。情報符号列と冗長符号の上下・左右の隣接関係は、いずれも撮像符号列の隣接関係に準じており、投影符号列における座標軸のｕを行方向、ｖを列方向とする。
【００３５】
ハッシュ値として、これらの情報符号列と冗長符号の行方向に対して、右列から左へ順に差分計算を行う。本実施形態では列の数がn+1＝3のため、各行２つの差分値をハッシュ値として計算する。なお、差分計算の結果は全てk進数で行う。本実施形態においてはk=3となるため、ハッシュ値は0、1、2のいずれかの値となる。また、サンプリング符号列が存在しない位置ではハッシュ値の計算を行わず、空白とする。図１２の（ａ）〜（ｃ）における情報符号列と冗長符号のハッシュ値を図１３の（ａ）〜（ｃ）に示す。符号誤り検出・訂正の処理においては、計算された全ての列が揃った１行のハッシュ値を、１つの符号照合結果として扱う。
【００３６】
ステップＳ１１０２：符号誤り検出・訂正部１０８は、ステップＳ１１０１において計算できたハッシュ値が１行よりも多く存在するかどうかを判定する。１行の場合は、情報符号列で生成される行でしかハッシュ値をもたず、符号誤りの検出は不能なため、ステップＳ４１０を成功として終了する。１行よりも多く存在する場合にはステップＳ１１０３に進む。図１３の（ａ）に示す例では、ハッシュ値が１行しか存在しないため、本ステップを成功として終了する。図１３の（ｂ）（ｃ）に示す例では、ハッシュ値がそれぞれ２行、３行と、いずれも１行よりも多く存在するため、ステップＳ１１０３に進む。
【００３７】
ステップＳ１１０３：符号誤り検出・訂正部１０８は、ハッシュ値が列方向で全て一致するかどうかを判定する。列方向で相互の値が同一の場合は、投影符号列の生成時に、列単位で同一の値を加算した結果に対して矛盾せず、計算されたハッシュ値の範囲では符号誤りが検出されなかったことを意味する。よって、計算を成功として終了する。他方、列方向で相互の値が一つでも異なる場合、上述の計算結果に矛盾が生じるため、符号誤りが存在すると判定して、処理はステップＳ１１０４に進む。図１３の（ｂ）（ｃ）に示す例では、いずれも右の列方向で値が異なるため、いずれも符号誤りが存在すると判定されて、処理はステップＳ１１０４に進む。
【００３８】
ステップＳ１１０４：符号誤り検出・訂正部１０８は、ステップＳ１１０１において計算したハッシュ値が、３行全て存在するかどうかを判定する。３行よりも少ない場合は、符号誤りの訂正は出来ないため、ステップＳ４１０を失敗として終了する。３行全て存在する場合にはステップＳ１１０５に進む。図１３の（ｂ）に示す例では、一番下の行のハッシュ値が揃っていないため、本ステップＳ４０１を失敗として終了する。図１３（ｃ）に示す例では、３行全てハッシュ値が揃っているため、ステップＳ１１０５に進む。
【００３９】
ステップＳ１１０５：符号誤り検出・訂正部１０８は、対象となるサンプリング符号列に対して、符号誤り訂正が可能であるかどうかを判定する。最初に、３行のハッシュ値のうち、列方向の値が同一でない行を検出する。全ての行で異なるハッシュ値が存在する場合は符号誤りが訂正できないため、ステップＳ４１０を失敗として終了する。３行のハッシュ値のうち、１行のハッシュ値のみが異なる場合、当該行に訂正可能な符号誤りが存在すると判定してステップＳ１１０６に進む。図１３の（ｃ）に示す例では、一番上の行１３０１における右列の値のみが異なっているため、この行に訂正可能な符号誤りが存在すると判定し、ステップＳ１１０６に進む。
【００４０】
ステップＳ１１０６：符号誤り検出・訂正部１０８は、ステップＳ１１０５で訂正可能な符号誤りが存在すると判定したサンプリング符号列の行に対して、他の行のハッシュ値を利用して符号誤りの訂正を行う。符号誤り検出・訂正部１０８は、最初に符号誤りが存在すると判定した行で、ハッシュ値が他の行と異なる列を調べる。
【００４１】
ハッシュ値の左列のみが異なる場合は、サンプリング符号列における当該行の左側の符号値に誤りが存在するとして、これが訂正される。誤り訂正は、サンプリング符号列における当該行の中央列の符号値から、当該行以外の左列ハッシュ値の差を取った値を、誤り値と置き換えればよい。この差分計算も繰り下げが存在しないk進数、本実施形態では答えが１、２、３のみとなる３進数で行う。
【００４２】
ハッシュ値の右列のみが異なる場合には、サンプリング符号列における当該行の右側の符号値に誤りが存在するとして、同様に訂正する。誤り訂正は、サンプリング符号列における当該行の中央列の符号値と、当該行以外の右列ハッシュ値の３進数での和の値を、誤り値と置き換えればよい。
【００４３】
ハッシュ値の左右の列双方ともに異なる場合には、サンプリング符号列における当該行の中央列の符号値に誤りが存在するとして、同様に訂正する。誤り訂正は、サンプリング符号列における当該行の右列の符号値から、当該行以外の右列ハッシュ値の３進数での差を取った値を、誤り値と置き換えればよい。
【００４４】
図１３の（ｃ）に示す例では、行１３０１のハッシュ値の右列のみが異なるため、サンプリング符号列における当該行右列の符号値である「3」に誤りが存在するとして訂正する。誤り訂正の計算では、図１２の（ｃ）におけるサンプリング符号列の当該行中央列の符号値である２と、行１３０１以外の右列ハッシュ値である０との和である訂正値「２」を誤り値「３」と置き換える。このように符号誤り訂正を行うことで、誤り訂正前の情報符号列が図１２の（ｃ）に示す「12321」であったのに対して、（ｄ）に示すように、訂正値１２０２によって「12221」へと訂正されることが分かる。
以上の計算の後、本ステップＳ４１０を成功として終了する。
【００４５】
上記のステップＳ１１０１〜Ｓ１１０６を実行することで、サンプリング符号列における符号誤りが検出される。さらに、符号誤りが訂正可能であれば、符号の訂正が行われる。なお、本ステップＳ４１０において処理に成功した情報符号列を、以下で照合済情報符号列とする。処理は、図４のステップＳ４１１に進む。
【００４６】
ステップＳ４１１：符号誤り検出・訂正部１０８が、ステップＳ４１０における符号誤り検出・訂正の処理結果を判定する。処理が成功であれば、処理はステップＳ４１２に進む。処理が失敗であれば、ステップＳ４０６に戻り、処理対象を次の符号サンプリング位置へ移動する。
【００４７】
ステップＳ４１２：対応計算部１０９が、投影パターン画像と、撮像符号列を構成する照合済情報符号列の対応付けを行う。図１４に、ステップＳ４１２における投影パターン画像と撮像符号列の対応付け方法を説明するフローチャートを示す。以下で、図１４のフローチャートのステップ番号に従って、ステップＳ４１２の動作を詳細に説明する。
【００４８】
ステップＳ１４０１：対応計算部１０９は、ステップＳ４０８において情報符号列をサンプリングした際に用いた、サンプリング形状番号Ｐに等しい番号の投影符号列テーブルを選択する。図１５に本実施形態で使用する投影符号列テーブルの例を示す。投影符号列テーブルは、投影符号列を各u，vの二次元位置でサンプリング形状番号Pを用いてサンプリングした場合の情報符号列の値を格納したものであり、使用するサンプリング形状の数（本例では９個）だけ用意される。このような投影符号列テーブルを使用することで、煩雑な計算を行うことなく、簡易に投影符号列と照合済情報符号列の対応付け計算が行える。
【００４９】
ステップＳ１４０２：対応計算部１０９は、ステップＳ１４０１にて選択した投影符号列テーブルをu，v方向二次元で走査し、照合済情報符号列と一致するテーブル値を探索する。一致するテーブル値があれば、そのu，v位置を記録する。
【００５０】
ステップＳ１４０３：対応計算部１０９は、ステップＳ１４０２の探索において、照合済情報符号列と一致するテーブル値が存在したかどうかを判定する。テーブル値が存在した場合には、ステップＳ１４０４に進む。テーブル値が存在しなかった場合には対応付けが行えないため、対応付け失敗と判定し、ステップＳ４１２を終了する。
ステップＳ１４０４：対応計算部１０９は、ステップＳ１４０３の探索において、照合済情報符号列と一致したテーブル値のu，v位置を含む照合済情報符号列を、対応済撮像符号列として出力し、対応付け成功と判定してステップＳ４１２を終了する。
【００５１】
以上の手順で処理を行うことにより、対応計算部１０９は、投影パターン画像と、撮像符号列を構成する照合済情報符号列の対応付けを行う。そして、処理はステップＳ４１３へ進む。
ステップＳ４１３：対応計算部１０９が、ステップＳ４１２における対応付け計算の処理結果を判定する。処理が成功であれば、ステップＳ４１４に進む。処理が失敗であれば、ステップＳ４０６に戻る。
【００５２】
ステップＳ４１４：三次元形状取得部１１０が、ステップＳ４１２で得られた対応済撮像符号列を用いて、被写体１０２の三次元形状を計測する。図１６に、カメラの主点位置１６０１を原点O(0,0)とするカメラ座標系１６０２を用いて、撮像点列中における対応済撮像符号列に相当する計測点１６０３の投影位置を同定する場合の模式図を示す。プロジェクタ１０１で投影される投影パターン画像内において、同一のu座標値を持つ点列は、v方向で単一の直線１６０４上に並ぶよう配置されている。このとき計測点１６０３は、直線１６０４が空間内になす切断平面１６０５と被写体１０２との交線上に存在する一点となる。ここで、投影計測線パターンがなす切断平面１６０５は、カメラ座標系を用いて以下の式（３）で予め較正されているものとする。
【数１】
0005854715.tif 000002
【００５３】
また、計測点１６０３は、図１におけるカメラ１０４による撮像画像１６０６上の投影点１６０７の位置P(Px,Py,-f)を用いて、以下の式（４）で表される直線１６０８上に存在する。なお、撮像画像１６０６には簡単のため、計測点１６０３以外の撮像点列は省略している。また、図１６における撮像画像１６０６は、図１におけるカメラ１０４をピンホールカメラと仮定したときの、撮像素子上における投影像と等しい実寸法としている。さらに、撮像画像１６０６はカメラ座標のｘｙ平面に対して平行で、画像中心が原点位置からｚ軸方向に焦点距離の-fだけ離れた位置に配置されているものとする。
【数２】
0005854715.tif 000003
tは任意の実数をとるパラメータである。
【００５４】
式（３）で示した切断平面１６０５と、式（４）で示した直線１６０８の交点が計測点１６０３となるため、計測点１６０３の位置C(Cx,Cy,Cz)はカメラ座標系において以下の式（５）で表される。
【数３】
0005854715.tif 000004
【００５５】
以上の計算を全ての対応済撮像符号列に対して適用すれば、計測点１６０３の集合により被写体１０２全体の形状が求められる。
【００５６】
以上の手順を実施することにより、従来手法では誤った対応付け結果となりやすかった、表面に著しいテクスチャを有するような被写体においても、ステップＳ４１０における符号誤り検出・訂正により誤った対応付けを最小限に出来る。また、従来手法ではサンプリング形状が単一のために、対応付けが困難であった複雑な形状の被写体においても、ステップＳ４０８において複数種類のサンプリング形状で情報符号列のサンプリングを試みることで、対応付け可能な領域が増加する。以上から、従来手法と比較してよりロバストな三次元計測が可能となる。
【００５７】
なお、本実施形態の図１における、パターン生成部１０３、パターン抽出部１０５、情報取得部１０６、符号サンプリング部１０７、符号誤り検出・訂正部１０８、対応計算部１０９、三次元形状取得部１１０は、必ずしも各部が独立した装置である必要はない。これらの各部は、中央演算装置、主記憶装置、外部記憶装置、そしてそれらを相互接続する情報バスから構成される計算機上において、実行するプログラムの一部分として実現しても良い。
【００５８】
また、ステップＳ４０１におけるパターン生成部１０３による投影パターン画像の生成は、必ずしも処理ごとにやり直す必要はない。一度生成した投影パターン画像を、メモリに格納しておき、次に必要になった場合には当該メモリから読み出すようにしても良い。撮像する被写体が限定されており、最適な投影パターン画像が事前に決定しているような場合には、上記の構成によって処理を省略し、高速化を図ることが出来る。
【００５９】
また、被写体１０２の周辺部が単純な直線形状であるなど、被写体１０２の形状、大きさ、表面の材質によっては、より少数のサンプリング形状でほとんどの領域から情報符号列を取得できる場合も存在する。このような場合には、ステップＳ４０８において使用するサンプリング形状を、最低一つまでに削減して、ステップＳ４１０における符号誤り検出・訂正のみを行うことで、誤った対応付けを最小限にできる。より少数のサンプリング形状とするほど計算負荷が減るため、前記の削減を適宜行うことで、撮像可能な被写体の複雑さと処理速度のバランスを取ることが出来る。
【００６０】
また、被写体１０２の表面が単一色であるなど、被写体１０２の形状、大きさ、表面の材質によっては、符号誤りがほとんど発生しない場合も存在する。このような場合には、符号誤り検出・訂正部１０８と、相当する処理であるステップＳ４１０を省略して、ステップＳ４０８において複数種類のサンプリング形状で情報符号列のサンプリングを試みるのみとしても良い。符号誤り検出・訂正の処理の省略によって計算負荷が減るため、前記の省略を適宜行うことで、撮像可能な被写体の複雑さと処理速度のバランスを取ることが出来る。
【００６１】
また、本実施形態においては、投影パターン画像に使用するシンボルを赤、青、緑の３種類として、サンプリング形状を囲む矩形の大きさを３×３としている。そのため、投影符号列を生成するde Bruijn系列は３値で、部分系列長が２と３のものを選択している。これらの数値も、投影パターン画像に使用できるシンボルの種類や、被写体の性質によって適宜３値以上で部分系列長が３以上のものに変更しても良い。使用するシンボル数を増やせれば、選択するdeBruijn系列によっては符号誤り検出・訂正能力を向上させることが出来る。あるいはより投影符号列全体のサイズを大きくして、撮像可能な範囲を向上させることもできる。
【００６２】
また、本実施形態においては、投影パターン画像に使用するシンボルとして、各符号値に赤、緑、青を対応させた点列を用いたがこれに限られるものではない。使用するシンボルは、各符号値に対応して、色、輝度、及び形状などの識別可能な特徴が設定され、各符号値を識別できるような形態であればよい。図１７にその他の投影パターン画像の例を示す。本例における投影パターン画像では、シンボルは点ではなく、縦横の格子状の線を有する投影パターン画像の交点位置の形状として表される。本例においては、交点位置の形状が矩形であれば対応する符号を1、×形であれば2、丸形であれば3としている。以上の構成により、単色の投影パターン画像を使用することが出来るため、プロジェクタ１０１を簡略化することが出来る。また、縦横の格子状の線を辿ることで、符号同士の隣接関係をより容易に検出することも出来る。
【００６３】
また、本実施形態においては、de Bruijn系列からなる投影符号列を1つだけ使用する構成としているが、被写体の奥行き方向の変化が十分に小さく、同一値の情報符号列同士が重なる事が無い場合には、投影符号列が繰り返される投影パターン画像にしてもよい。なお、投影符号列を繰り返す場合には、使用するdeBruijn系列に対して巡回を考慮する必要があるため、本来の系列長の配列を使用する必要がある。
本例のu方向で用いるk=3，m=3（系列長33=27）のde Bruijn系列は、以下に示す数列となる。
331321311231221211133232223      …（６）
【００６４】
同様に、本実施形態のv方向で用いるk=3，n=2(系列長32=9)のdeBruijn系列を以下に示す。
331132212      …（７）
【００６５】
以上のように、投影符号列が繰り返される投影パターン画像を使用することで、撮像可能な範囲を拡大することが出来る。
【００６６】
また、本実施形態におけるステップＳ４１０内のステップＳ１１０２では、ハッシュ値が１行しかない場合は符号誤りの検出が不能なため、符号誤り無しとして処理を終了させているが、より誤対応を削減したい場合には、これを失敗と判定しても良い。さらに、より長い冗長符号ほど符号誤り検出・訂正の能力が向上するため、取得できている冗長符号の長さを信頼度として扱い、対応付け結果として使用するかどうかの判定基準としても良い。
【００６７】
また、本実施形態のように、必ずしも投影符号列としてde Bruijn系列を使用する必要はない。モノクロのプロジェクタで投影パターン画像を投影する場合など、2種類しかシンボルが使用できない場合には、0,1の２値符号から形成されるM系列を投影符号列として使用しても良い。M系列を使用する場合は、サンプリング形状を囲む矩形の大きさをm×(n＋1)として、u方向とv方向、それぞれm次とn次の２種類のM系列を選択し、２進数の和の計算を行うことで、上記の例と同様に投影符号列を生成すればよい。M系列を使用する場合には、サンプリング形状が相対的に大きくなるものの、シンボル数は２種類で済み、高密度な投影パターン画像での投影が可能となるため、符号誤りが少ない環境であればより密な三次元計測が行える。
【００６８】
以上のように、本実施形態によれば、撮像画像内から抜き出す撮像パターンを最小限としながら、符号の誤りに対しても訂正が可能な符号列を得られるため、誤った対応付けを低減できると同時に、より様々な被写体形状にも対応することが可能となる。
【００６９】
＜第２実施形態＞
次に、本発明の第２実施形態を説明する。なお、第２実施形態における画像情報処理装置全体の構成は第１実施形態（図１）に準じる。また、第２実施形態による画像処理装置の制御を説明するフローチャートは、ステップＳ４０８の符号サンプリング処理を除き、同様に図４に示す実施例１に準じる。
【００７０】
第２実施形態におけるステップＳ４０８では、符号サンプリング部１０７が、情報取得部１０６で得られた撮像符号列のステップＳ４０６で設定された原点に対応した位置から、あらかじめ決められた複数種類のサンプリング形状で符号のサンプリングを行う。そして、符号サンプリング部１０７は、その中から最適な情報符号列と冗長符号を一組取得する。図１８に、ステップＳ４０８における情報符号列と冗長符号の取得方法を説明するフローチャートを示す。以下、図１８のフローチャートのステップ番号に従って、ステップＳ４０８の動作を詳細に説明する。
【００７１】
本ステップＳ４０８におけるステップＳ１８０１〜Ｓ１８１１の処理は、スレッド１８１２の処理単位に分けられ、符号サンプリング部１０７において同時並行して処理されるものとする。
【００７２】
ステップＳ１８０１： 符号サンプリングに使用するサンプリング形状を示す、サンプリング形状番号P1 〜 P9を設定する。サンプリング形状は、抽出するべき所定数の点の位置と、それらの情報符号列における順序を規定する。本サンプリング形状の定義は第１実施形態における処理のステップＳ８０１（図８）と同様であり、全ての組み合わせ形状を予め用意し、番号Pを割り当てておく。図９の（１）〜（９）に、第２実施形態における全てのサンプリング形状を示す。図１８に示すように、サンプリング形状Pはそれぞれのスレッド１８１２で異なるよう１〜９に設定する。
【００７３】
ステップＳ１８０２：サンプリングする符号列の順序を示す、サンプリング順序N1〜N9を１に初期化する。
ステップＳ１８０３：サンプリング形状番号P1 〜 P9における、サンプリング順序N1〜N9にあたる各符号のサンプリングを行い、情報符号列を各スレッドで１つ取得する。取得に成功した場合はステップＳ１８０４に進む。撮像符号列内で、隣接する符号が存在せず、サンプリング順序N1〜N9の位置で撮像符号列の取得に失敗した場合はステップＳ１８０９に進む。
ステップＳ１８０４：サンプリング順序N1〜N9が、情報符号列の長さ５に達しているかどうかをチェックする。達していなければ、ステップＳ１８０５に進む。達していればステップＳ１８０６に進む。
ステップＳ１８０５：サンプリング順序N1〜N9に１を加えて、ステップＳ１８０３に戻る。
【００７４】
ステップＳ１８０６：現在のサンプリング形状番号P1 〜 P9における、サンプリング順序N1〜N9に当たる符号のサンプリングを行い、冗長符号を各スレッドで１つ取得する。取得に成功した場合はステップＳ１８０７に進む。撮像符号列内で、サンプリング順序N1〜N9の位置に取得できる符号が存在せず、取得に失敗した場合はステップＳ１８０９に進む。
ステップＳ１８０７：サンプリング順序N1〜N9が、情報符号列の長さ９に達しているかどうかをチェックする。達していなければ、ステップＳ１８０８に進む。達していればステップＳ１８０９に進む。
ステップＳ１８０８：サンプリング順序N1〜N9に1を加えて、ステップＳ１８０６に戻る。
【００７５】
ステップＳ１８０９：最初に、スレッド１〜９が全てステップＳ１８０９に到達するまで待機する。到達後、スレッド１〜９におけるサンプリング順序N1〜N9を比較して、最大のサンプリング順序Nmaxを選択する。
ステップＳ１８１０：Nmaxが情報符号列の長さ５に達しているかどうかをチェックする。達していなければステップＳ４０８の処理を失敗として終了する。達していれば処理を続行する。
ステップＳ１８１１：最大のサンプリング順序Nmaxを有するサンプリング形状Pmaxにおける情報符号列と冗長符号を、出力する情報符号列と冗長符号列として選択し、ステップＳ４０８の処理を成功として終了する。
【００７６】
以上の手順で処理を行うことにより、ステップＳ４０８において、情報取得部１０６で得られた撮像符号列からサンプリングが行われ、情報符号列と冗長符号（以下で、これらを合わせてサンプリング符号列と呼ぶ）が取得される。以降の処理は第１実施形態と同様に行われる。
【００７７】
以上の手順を実施することにより、従来手法では誤った対応付け結果となりやすかった、表面に著しいテクスチャを有するような被写体においても、ステップＳ４１０における符号誤り検出・訂正により誤った対応付けを最小限に出来る。また、従来手法ではサンプリング形状が単一のために、対応付けが困難であった複雑な形状の被写体においても、対応付け可能な領域が増加することができる。すなわち、複雑な形状の被写体においても、ステップＳ４０８において複数種類のサンプリング形状で情報符号列のサンプリングを同時並行で試みることにより、処理の高速性を損なうことなく対応付け可能な領域が増加する。以上から、従来手法と比較してよりロバストかつ高速な三次元計測が可能となる。
【００７８】
なお、第２実施形態における符号サンプリング部１０７は、図１８におけるスレッド１８０２を同時並行して処理できる構成であればよい。たとえば、ステップＳ１８０１〜ステップＳ１８０８の処理部分を複数有することにより並列して実行できるような処理回路を用いれば、高速に同時並行して処理を行うことができる。また、必ずしも専用の処理回路を使用する必要はなく、マルチコア構成、あるいはマルチスレッド動作が可能な汎用のＣＰＵを用いて、ソフトウェアにより並列処理を行ってもよい。
【００７９】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００８０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005854715.tif 000005
【図２】
0005854715.tif 000006
【図３】
0005854715.tif 000007
【図４】
0005854715.tif 000008
【図５】
0005854715.tif 000009
【図６】
0005854715.tif 000010
【図７】
0005854715.tif 000011
【図８】
0005854715.tif 000012
【図９】
0005854715.tif 000013
【図１０】
0005854715.tif 000014
【図１１】
0005854715.tif 000015
【図１２】
0005854715.tif 000016
【図１３】
0005854715.tif 000017
【図１４】
0005854715.tif 000018
【図１５】
0005854715.tif 000019
【図１６】
0005854715.tif 000020
【図１７】
0005854715.tif 000021
【図１８】
0005854715.tif 000022