以下、図面を参照して、本発明の実施の形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
(第1の実施形態)
本実施形態に係る欠陥抽出装置は、表面に少なくとも1つの凹凸構造(例えば、溝)が形成された測定対象物(鋳造品)の断面(例えば、溝断面)を検査するように設定されている。図7は、本実施形態に係る欠陥抽出装置の構成を模式的に示す斜視図である。
図7において、欠陥抽出装置700は、測定装置部701と、測定対象物702を保持可能であり、該測定対象物702を回転させるように構成された回転テーブル703と、測定装置部701に対して測定対象物702をX軸方向に相対的に移動させるように構成されたXステージ704と、測定装置部701に対して測定対象物702をY軸方向に相対的に移動させるように構成されたYステージ705と、欠陥抽出装置700が備える各部の動作を制御し、各種データの生成、データ処理を行うコントローラ706とを備える。測定装置部701、回転テーブル703、Xステージ704、およびYステージ705はそれぞれ、コントローラ706に電気的に接続されている。よって、コントローラ706は、測定装置部701、回転テーブル703、Xステージ704、およびYステージ705にそれぞれ制御信号を送信してそれらの駆動を制御することができる。また、コントローラ706は、測定装置部701の動作を制御することができ、測定装置部701にて撮影された画像データを測定装置部701から取得することができる。
本実施形態では、コントローラ706と、欠陥抽出装置700との上記電気的接続は、有線であっても無線であっても良い。また、LANやWANといったネットワークを介して行っても良い。すなわち、コントローラ706から欠陥抽出装置700に向かって、該欠陥抽出装置700の所定の構成要素を制御するための制御信号を伝送でき、かつ、欠陥抽出装置700にて取得された画像データをコントローラ706に伝送できればいずれの方式を用いても良いのである。
なお、本実施形態では、X軸方向およびY軸方向を測定対象物702の加工面の面内方向、すなわち、回転テーブル703の測定対象物の保持面の面内方向を規定する2次元方向(測定装置部701から照射されたスリット光707の光軸方向と垂直な2次元方向)に設定し、Z軸方向を測定対象物702の厚さ方向(すなわち、測定装置部701から照射されたスリット光707の光軸方向に沿った方向)に設定する。
図8は、本実施形態に係る測定装置部701の構成を説明するための模式図である。
図8において、測定装置部701は、スリット光707を照射するレーザスリット平行投光器720と、レーザスリット平行投光器720から測定対象物に対してスリット光707が照射され、該測定対象物にて反射された反射光を受光する、すなわち測定対象物702のスリット光707が照射されている領域を撮像する撮像部723とを備える。レーザスリット平行投光器720は、測定対象物702上の複数の凹凸(溝)表面を死角なく照射するためのレーザスリット投光器721と、シリンドリカルレンズ722とを有する。また、撮像部723は、CMOS素子727のカバーガラス裏面反射により発生するノイズ光を除去するための偏光板724と、画角ゼロで測定対象物702上の複数の凹凸(溝)表面を死角なく撮像するためのテレセントリック系レンズ725と、CMOS素子727を有するCMOSカメラ726とを有する。
レーザスリット平行投光器720はレーザ光を平行スリット状のスリット光707にして該スリット光707を測定対処物702に照射する。測定される断面形状は、レーザスリット平行光であるスリット光707が形成する面と交差する測定対象物702の断面である。測定対象物702の表面形状を反映した、スリット光707の測定対象物702の照射領域における反射光は測定装置701の撮像部723に入射し、CMOS素子727にて受光され、画像データに変換される。該画像データは、コントローラ706に送信される。コントローラ706は、撮像部723と測定対象物702との位置関係から測定対象物702の表面の形状データを演算し、欠陥のない基準点データとの照合により欠陥を抽出し、OK・NG判定するように構成されている。
本実施形態では、コントローラ706は、実質的にはコンピュータユニットとして構成されている。従って、コントローラ706は、種々の演算、制御、判別などの処理動作を実行するCPU(不図示)、このCPUによって実行される制御プログラムなどを格納するROM(不図示)、CPUの処理動作中のデータや入力データなどを一時的に格納するRAM(不図示)、および所定のデータなどを保持可能な不揮発性メモリなどを有する。また、コントローラ706は、光源制御部708と、画像メモリ709と、画像処理部710と、3次元測定データ演算部711と、評価モジュール712と、昇降機構制御部713と、回転テーブル制御部714と、Xステージ制御部715と、Yステージ制御部716とを備えている。さらに、コントローラ706には、所定の指令あるいはデータなどを入力するキーボードあるいは各種スイッチなどを含む入力操作部717、欠陥抽出装置700の入力・設定状態などをはじめとする種々の表示を行う表示部718がそれぞれ接続されている。
光源制御部708は、レーザスリット投光器721に接続され、スリット光707の投光強度を制御する。CMOSカメラ726からコントローラ706に送られてきた撮像画像(画像データ)は、画像メモリ709に展開される。さらに、必要に応じて、画像処理部710によって座標変換やレベル補正、エッジ検出などの画像処理が施され、スリット光707による光切断線Sが検出される。3次元測定データ演算部711は、スリット光707の照射点や照射角度、スリット光軸と撮像光軸とのなす角度が既知なので、画像処理部710で検出された光切断線Sの座標値から三角測量法に基づいて演算することで、光切断線S、つまり複数の直線状深溝を形成している測定対象物702の3次元断面形状に対応する多数の測定点データ(距離画像)を得ることができる。ここでいう距離画像とは、測定点としての画素にその三次元位置座標値を割り当てた測定データである。なお、三角測量法に基づく演算に代えて、その演算結果を格納したテーブルを用いる方法を採用してもよい。
Xステージ制御部715は、測定対象物702をX方向に移動させるようにXステージ704を制御し、Yステージ制御部716は、測定対象物702をY方向に移動させるようにYステージ705を制御する。すなわち、測定対象物702の全面を測定するように、Xステージ制御部715およびYステージ制御部716はXステージ704およびYステージ705の駆動を制御する。また、昇降機構制御部713は、レーザスリット平行投光器720および撮像部723の、Z軸方向に沿った高さ(レーザスリット平行投光器720および撮像部723の、測定対象物702に対する高さ)を調整するように、測定装置部701が有するレーザスリット平行投光器720および撮像部723の昇降機構(不図示)を制御する。
3次元測定データ演算部711によって生成された測定点データは評価モジュール712に転送される。評価モジュール712は、図9に示すように、表面評価モジュール712Aと、欠陥評価モジュール712Bと、基準データ変更モジュール712Cとを有する。
表面評価モジュール712Aは、転送されてきた測定点データに、所定の位置合わせアルゴリズムを適用して測定点群の基準点群への位置合わせを行い測定対象物の表面形状を評価する。測定データ入力部900は、3次元測定データ演算部711から測定点データを取得する。基準データ格納部901には、測定対象物の表面形状を示す基準点データが格納されている。基準点データは、測定対象物において予め区分けされた所定ブロック毎に測定点に対応するように設定された理想的な仕上がり形状を示すデータである。また、基準データ格納部901には、エッジ基準点データも格納されている。点群対応付け部902は、上記所定ブロック単位で、対応する測定点と基準点との間の距離を逐次収束させて測定点と基準点とを位置合わせする所定の位置合わせアルゴリズムに基づいて測定点と基準点とを対応させる。この所定の位置合わせアルゴリズムとしては、例えば、基準点群の各基準点について最も近い測定点群の点を対応点とし、各対応点距離の2乗和を最小とする合同変換パラメータを推定して、逐次収束させていくICPアルゴリズム等を用いれば良い。本実施形態では、点群対応付け部902は、ICPアルゴリズムにより、測定点と基準点とを対応付ける形態について説明する。また、点群対応付け部902は、測定点と基準点との対応付け後に、各測定点または各基準点について隣接点間距離を算出する。
重み演算部903は、測定点群と基準点群とのいずれかの点群においてその点群に属する各点(測定点、または基準点)に対して、隣接する点における隣接点間距離di(i:点番号であって、1≦i≦k、k:点の総数)に基づいて、隣接点間距離重み係数γiを算出する。隣接点間距離重み係数γiは、重み関数をΓとすると、γi=Γ(di 2)で求められる。例えば、重み関数Γを次のような閾値関数とすると好都合である。例えば、di 2が所定の閾値以上のとき、γi=0.01とし、di 2が所定の閾値未満のとき、γi=1とする。なお、上記所定の閾値を、基準点群や測定点群の特性によって適宜設定すれば良い。
また、重み演算部903は、(X、Y、Z)からなる3次元の軸要素であるX要素、Y要素、Z要素の各々について、下記式(1)に基づいて、ネルダーミード法の関数値としての評価値を算出するためのバイウェイト係数B(Ni)(N:X、Y、Z)(バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、バイウェイト係数B(Zi))を算出する。すなわち、各ブロック中の測定点の各々に対して、X要素、Y要素、Z要素毎に、式(1)より、対応するバイウェイト係数が算出される。なお、本明細書において、「バイウェイト係数」とは、対応点間距離の重み係数として用いる評価係数であって、3次元のX要素、Y要素、Z要素の各々について算出される。
B(Ni)=(1−(1−(udi)n)m)l (1)
m=log(1−0.5 n )1−0.51/l (2)
「l、n」は、評価値特性変化パラメータであり、0.0<l<4.0、0.0<n<4.0である。また、「udi」は、ユークリッド距離比率(%)である。該ユークリッド比率は、X、Y、Z要素の各々について各測定点毎に算出されるものであり、基準となる距離と、ある測定点に対する対応点間距離との比率である。よって、ユークリッド比率udi=100%の場合は、上述の、i番目の測定点に対する対応点間距離は、上記基準となる距離と一致している。よって、重み演算部903は、X要素、Y要素、Z要素の各々に対して、1〜k番目までの各々の測定点についてユークリッド距離比率udiをそれぞれ算出し、該算出されたユークリッド距離比率udiを、ユークリッド距離比率udが0%〜100%に向かって評価係数が連続的に増加している関数を規定する式(1)に代入して、1〜k番目の各々の測定点毎にバイウェイト係数を算出する。
なお、式(1)は、ネルダーミード法の関数値として用いる評価値(後述するP(s)Eval)を算出する際に用いられる評価係数(バイウェイト係数)とユークリッド距離比率との関係を示す関数であり、パラメータn、lを変えることにより、該関数の波形を変化させることができる。
上記式(1)の導出について説明する。
従来では、上記対応点間距離の重み係数として、下記式(3)を用いていた。なお、式(3)では、例えば、Ba=4.5と設定する。また、式(3)中のパラメータx(mm)は、実距離である対応点間距離とする。
式(3)から分かるように、従来では、対応点間距離が4.5mm以上となると評価値(対応点間距離の重み係数)は飽和してしまう。これに対して、本実施形態では、従来式である式(3)から固定値要素Baを取り除き、入力値ud(「Ba/x」はユークリッド距離比率の逆数と見なせる)、2乗項、3乗項に対してパラメータとして変数n、m、lにすると、式(4)が得られる(eval:評価係数)。
eval=(1−(1−udn)m)l (4)
本実施形態では、ユークリッド距離比率udが50%の時に評価値が最大評価値の半分となるように調整したいので、式(5)が成り立つ。
0.5=(1−(1−0.5n)m)l (5)
これをパラメータmについて解くと、パラメータmは式(6)となる。
m=log(1−0.5 n )1−0.51/l (6)
このように、パラメータmは式(6)によって決まるので、n、lをパラメータとして扱って式(1)が得られる。すなわち、本実施形態では、収束評価の際に用いるユークリッド距離比率と評価係数(バイウェイト係数)との波形特性を可変とすることができる。従って、あるパラメータn、lで規定されるバイウェイト係数では収束していないと評価される場合、式(1)で表される波形特性を緩やかになるように変更することで、バイウェイト係数を評価値が良い方向に進むような値に変更することができる。
収束評価部904は、測定点と基準点との間の距離を逐次収束させる逐次収束処理としてネルダーミード法を用いて暫定合同変換パラメータを算出し、該暫定合同変換パラメータを用いて測定点群が基準点群に収束移動させようとする際にその逐次収束評価値を演算し、測定点群の移動が基準点群に逐次収束していくかどうかを評価する。また、収束評価部904は、各測定点について、対応点間距離も算出する。点群変換部905は、収束評価部904によって収束していると判定された暫定合同変換パラメータに基づいて、対応付けされた基準点群に測定点群を位置合わせするための合同変換パラメータを求め、この合同変換パラメータを用いて測定点群の位置座標を変換する。エッジ検出部906は、測定点データに基づいて測定点群をワーキングメモリに展開し、ソーベルフィルタなどのエッジ検出フィルタを用いて測定対象物の表面におけるエッジに対応するエッジ測定点検出して、エッジ測定点群からなるエッジ測定点データを生成する。
複合要素リスト作成部907は、所望に応じて、例えば図10に示すような複合要素リスト1001を作成する。該作成された複合要素リストは、コントローラ706が有するRAM等の記憶部に格納されれば良い。なお、複合要素リスト1001の各複合要素には番号(複合要素リスト番号)が付されている。よって、上記RAMには、各複合要素には対応する複合要素リスト番号が関連付けて保持されている。
本実施形態において、「複合要素」とは、ネルダーミード法に係る多面体の頂点の1つであって、移動または回転要素を複合した要素である。すなわち、複合要素は、3つの軸平行移動要素(移動要素)および3つの軸回転要素(回転要素)のうちいずれか2つの要素(例えば、X軸平行移動およびY軸平行移動のような軸平行移動の組み合わせ、Z軸平行移動およびX軸回転のような1つの軸平行移動と1つの軸回転との組み合わせ、Y軸回転およびZ軸回転のような軸回転の組み合わせ)を有するものである。本実施形態では、3つの軸平行移動要素および3つの軸回転要素から選択される2つの要素の組み合わせを変化させて複数用意されており、複合要素リスト1001は、該用意された複数の複合要素を含むものである。なお、「軸平行移動」とは、3次元直交座標系(デカルト座標系)の3つの軸(X軸、Y軸、Z軸)の1つに沿った平行移動を指す。よって、例えば、X軸に沿った軸平行移動はX軸平行移動となる。また、「軸回転」とは、上記3つの軸(X軸、Y軸、Z軸)周りの回転(ある軸を回転軸とした回転)を指す。よって、例えば、Y軸を回転軸として回転はY軸回転となる。
また、図10において、「Pitch」とは、X軸回転における回転であり、「Yaw」とは、Y軸回転における回転であり、「Roll」とは、Z軸回転における回転である。よって、図10において、「+Pitch(−Roll)」とは、X軸の正の方向に所定の角度だけ回転すること(Z軸の負の方向に所定の角度だけ回転すること)を示す。また、「+Y(−X)」とは、Y軸の正の方向に所定の距離だけ平行移動すること(X軸の負の方向に所定の距離だけ平行移動すること)を示す。
なお、図10は、Pitch、Yaw、Rollの回転角を各々を5°とし、X軸平行移動量、Y軸平行移動量、Z軸平行移動量の各々を1mmとした際の複合要素リストの作成例である。
欠陥評価モジュール712Bは、表面評価モジュール712Aから出力された測定点群の基準点群への位置合わせ結果に基づいて測定対象物の表面欠陥を評価する。誤対応測定群抽出部908は、後述する表面欠陥判定アルゴリズムに基づいて、切粉残り、はがれ、バリといった欠陥に対応した測定点を含むと推定された領域である誤対応領域(欠陥の候補点)を抽出する。欠陥判定部909は、誤対応測定群抽出部908にて抽出された誤対応領域が欠陥であるか否かを判定する。
さて、測定対象物が金型製作されるような製品の場合、ロット生産の途中で金型の一部を修正した場合、金型修正後の正常に製作された製品の形状と、金型修正前の基準点データによる形状が一致しなくなり、その不一致を欠陥とみなすという問題が生じる。後述する、型修正による形状違い判定ルーチン、および欠陥・型修正箇所判定ルーチンは、この問題を解決すべく、欠陥判定部909によって判定された欠陥が使用された金型を部分的に修正したために生じたものであるかどうかを欠陥情報を参照して判定する機能を有する。型修正による形状違い判定部910は、測定対象物の金型の一部に修正がある可能性がある場合、金型の修正(以降、“型修正”とも呼ぶ)があったか否かを判定する。また、欠陥・型修正箇所判定部911は、測定対象物の金型の一部に修正がある可能性がある場合、型修正があったか否かを判定し、その判定対象となる測定対象物に欠陥があるか否かを判定する。
なお、表面評価モジュール712Aおよび欠陥評価モジュール712Bは、それぞれの評価を測定対象物において予め区分けされた所定ブロック単位で行う。
基準データ変更モジュール712Cは所定の測定対象物数ごとに、欠陥評価モジュール712BからOKと判定された測定点データについて形状をチェックし、必要に応じて基準点データを変更する。測定対象物が金型製作されるような製品の場合、所定数の製品が製作されると磨耗等によって金型に寸法変動が生じる。このような寸法変動は、製品が正常に製作されているにもかかわらず、その測定点データと基準データとの間のずれが生じることがある。このずれを欠陥と判定することを避けるためには、そのようなずれが生じる領域の基準データを正常に製作された製品の測定点データによって修正することが好ましい。この目的のために設けられた基準データ変更モジュール712Cは、図9に示すように、測定データ入力部912と、測定点データ形状チェック部913と、基準データ変更部914とを有する。測定データ入力部912は、表面評価モジュール712Aで生成された測定点データと製品設計データである形状データとを受け取り、内部処理可能な形式に変換して測定点データ形状チェック部913に転送する。測定点データ形状チェック部913は、測定点データと製品設計データとを比較して製品が設計寸法の許容範囲であると評価すると、基準データ変更部914が基準データ格納部901にアクセスして、この測定点データで基準点データを変更する。
上述したように構成された欠陥抽出装置700を用いた、測定対象物の検査手順を図11A、11Bに示された計測フローチャートを用いて以下に説明する。例えばコントローラ706が有するCPUによって実行される処理である。従って、処理の制御は、コントローラ706が有するCPUが、コントローラ706が有するROMまたは記憶装置に格納された図11A、11BのS2〜S29に示す処理を行うプログラムを読み出し、該プログラムを実行することによって行われる。
ここでの測定対象物は、長方形のプレート体の表面に多数の直線状の深溝が形成されたもので、その測定領域は400mm×300mm程度である。この測定領域は100mm×15mmの測定ブロックに区分けされている。1回のX軸方向走査で4つの測定ブロックを走査して、走査ピッチと撮像解像度によって規定される測定単位での直線状深溝の3次元断面形状位置を表す測定点データを取得して、測定ブロック毎に区分けしてメモリに格納する。1回のX軸方向走査が完了する毎に所定ピッチでY軸方向移動を行い、次の測定ブロックに対するX軸方向走査を逆方向で行う。このような、X軸方向走査とY軸方向移動を繰り返すことで、全測定領域おける直線状深溝の測定点データを取得する。さらに、測定死角の発生を考慮して、測定対象物を90度回転させた状態で、再度同じ測定領域における測定を行う。なお、取得した測定点データを用いた測定対象物の測定結果に対する評価は、つまり測定対象物に対する検査は、各ブロック単位で行われ、各ブロック単位での検査結果をまとめて、最終的な総合判定が行われる。
本実施形態に係る欠陥抽出を行うために、測定対象物702を回転テーブル703上にセットされる(S1)。図示されていない測定開始ボタンが操作されると(S2Y(Yes)分岐)、測定が開始される。まず、光源制御部708は、レーザスリット投光器721を制御して、スリット光707照射させる(S3)。Xステージ制御部715、Yステージ制御部716、および回転テーブル制御部714は、測定開始ポイントである1番目の測定ブロックの左エッジがスリット光707によって照射されるように、Xステージ704及びYステージ705、回転テーブル703を動作させる(S4)。Xステージ制御部714は、Xステージ704を制御して、該Xステージ704を正方向に定速移動させながらX軸方向走査を行う(S5)。それとともに、CMOSカメラ726は、測定対象物702を撮影することにより得られた画像データをコントローラ706に送信する。すなわち、コントローラ706は、CMOSカメラ726から画像データを取得し、画像メモリ709に転送する(S6)。このX軸方向走査と画像データの取得は、スリット光707が測定対象物702の側端に達するまで行われる。
スリット光707が測定対象物702の側端に達すると(S7Y分岐)、Xステージ制御部715は、Xステージ704の移動を停止させて、X軸方向走査を停止する(S8)。X軸方向走査が停止すると、画像処理部710は、転送され画像メモリ709に展開された画像データを処理し、その光切断線画素位置情報(スリット光707による光切断線に沿った各点(測定点に対応)の、画像データベースの座標情報)を生成する(S9)。この光切断線画素位置情報から、3次元測定データ演算部711は、画素位置と、その画素位置から三角測量法に基づいて演算された3次元位置との関係を格納したテーブルを利用して、光切断線画素位置情報に基づき深溝の三次元座標値を読み出し、この値を測定点データとして各測定点に対応付けられたメモリアドレスに転送する(S10)。もちろん、テーブルを用いずに、その都度、光切断線画素位置情報を用いて三角測量法に基づく演算を行い、深溝の三次元座標値を求めて測定点データとしてもよい。コントローラ706は、測定点データから測定対象の縁(エッジ)を抽出するエッジ抽出ルーチンを実行する(S11)。
このエッジ抽出ルーチンは図12に示すように、エッジ検出部906は、測定点データ全点を読み出し(S100)、測定ブロック全領域で欠落部(高さ情報がない領域)と、高さ情報のある境界を抽出し、測定下限値以下の指定値をセットする(S101)。次いで、エッジ検出部906は、高さ方向の微分フィルタ(例えばソーベル微分フィルタ等)により、測定ブロック全領域で微分値を算出し(S102)、ある閾値以上の微分値をエッジとしてメモリに保存する(S103)。落部(高さ情報がない)と高さ情報のある境界に測定下限値以下の指定値をセットしているため、対象物の外周や貫通穴などの底面がないところでもエッジを抽出できる。
本実施形態ではエッジも抽出しているので、基準点に関するデータは、同じ対象物なら、全点データである基準点データと、対象物の縁(エッジ)のみを抽出したエッジ基準点データとの2種類を持つ。続いて、同じ対象物の追加基準データが無い場合(つまり型修正後の基準点データが無い場合)(S12Y分岐)、表面評価モジュール712Aは、所定の位置合わせアルゴリズムを用いて測定点のエッジデータと基準点のエッジデータ(エッジ基準点データ)との位置合わせを行う位置合わせルーチンを実行する(S13)。
この位置合わせルーチンでは、図13に示すように、測定データ入力部900は、S11にて抽出されたエッジの測定点データを読み出し(S200)、さらにその測定点群に対応するエッジ基準点データを基準データ格納部901から読み出す(S201)。
複合要素リスト作成部907は、複合要素リストの作成ルーチンを実行する(S202)。本実施形態では、ネルダーミード法により合同変換パラメータを生成するので、ネルダーミード法における移動推定要素を組み合わせた複合要素リスト1001を用意する。但し、クォータニオン(四元数)で回転を表現する場合、後述する、ネルダーミード法での反射、拡大、縮小、収縮時の位置推定計算上、拡大、縮小成分も含まれるので、ネルダーミード法に関する頂点として拡大・縮小用の頂点は特に必要はない。
上記複合要素リストの作成ルーチンでは、図14に示すように、複合要素作成部907は、ネルダーミード法による位置合わせの推定要素として軸平行移動が必要か否かを判断する(S2021)。本実施形態では、入力操作部718により、ユーザが予め軸平行移動が必要か否かに関する指示を入力している。すなわち、複合要素リスト作成部907は、S202の前に、表示部719に、軸平行移動が必要か否かの指示をユーザに入力させる表示(例えば、GUI(Graphical User Interface))を行わせ、ユーザに軸平行移動が必要か否かの指示を行わせる。ユーザが入力操作部718を操作して該指示を行うと、コントローラ706は該ユーザ入力を受け付け、コントローラ706が有するRAMにその情報を格納する。複合要素リスト作成部907は、S2021において、RAMに格納された、ユーザより入力された軸平行移動が必要か否かの指示を読み出し、該指示が軸平行移動を必要とする内容であれば、推定要素の1つである複合要素として軸平行移動が必要であると判断し、S2022に進み、該指示が軸平行移動を必要としない内容であれば、該複合要素として軸平行移動が必要無いと判断し、S2025に進む。
複合要素リスト作成部907は、軸平行移動の要素に関する複合要素群を複合要素リスト1001に追加する(S2022)。本実施形態では、軸平行移動の要素に関する複合要素群(雛形)がコントローラ706が有する不揮発性メモリに予め保持されている。また、図10に示すようなネルダーミード法の各初期頂点P0〜P7(ただし、P4は除く)のクォータニオン(回転・拡大・縮小)を表す四元数(q0、q1、q2、q3)、および3次元のデカルト座標系を構成する3つの軸に沿った3つの平行移動成分(x、y、z)の初期値も、上記不揮発性メモリに予め保持されている。よって、S2021にて軸平行移動が必要であると判断されると、複合要素リスト作成部907は、上記不揮発性メモリから各初期値を有する各初期頂点P0〜P7(ただし、P4は除く)、および軸平行移動に関する複合要素群を読み出し、該読み出された軸平行移動に関する複合要素群を頂点P4に係る複合要素リスト1001に追加する。
複合要素作成部907は、ネルダーミード法による位置合わせの推定要素として軸回転、または軸回転・拡大が必要か否かを判断する(S2023)。本実施形態では、入力操作部718により、ユーザが予め軸回転、または軸回転・拡大が必要か否かに関する指示を入力している。よって、コントローラ706は該指示を受け付けると、コントローラ706が有するRAMにその情報を格納する。複合要素リスト作成部907は、S2023において、RAMに格納された、ユーザより入力された軸回転、または軸回転・拡大が必要か否かに関する指示を読み出し、該軸回転、または軸回転・拡大を必要とする内容であれば、推定要素の1つである複合要素として軸回転、または軸回転・拡大が必要であると判断し、S2024に進み、該指示が軸回転、または軸回転・拡大を必要としない内容であれば、該複合要素として軸平行移動が必要無いと判断し、S2025に進む。
複合要素リスト作成部907は、軸回転、および軸回転・拡大の要素に関する複合要素群を複合要素リスト1001に追加する(S2024)。本実施形態では、軸回転、および軸回転・拡大の要素に関する複合要素群(雛形)がコントローラ706が有する不揮発性メモリに予め保持されている。複合要素リスト作成部907は、S2022を経ている場合は、上記不揮発性メモリから軸回転、および軸回転・拡大の要素に関する複合要素群を読み出し、該読み出された軸回転、および軸回転・拡大の要素に関する複合要素群をS2022にて軸平行移動に関する複合要素群が追加された複合要素リスト1001に追加する。一方、S2022を経ていない場合は、複合要素リスト作成部907は、上記不揮発性メモリから各初期値を有する各初期頂点P0〜P7(ただし、P4は除く)、および軸平行移動に関する複合要素群を読み出し、該読み出された軸回転、および軸回転・拡大の要素に関する複合要素群を頂点P4に係る複合要素リスト1001に追加する。
なお、複合要素リストの回転、拡大・縮小のパラメータである四元数(q0、q1、q2、q3)、および3次元の平行移動成分(x、y、z)に所定の数値が設定されていることが重要であり、その数値自体は位置合わせ時間に影響するのみであり、位置合わせの精度に影響を与えるものではない。よって、上記各パラメータに設定される数値を任意に設定すれば良い。
複合要素リスト作成部907は、ネルダーミード法の初期頂点のP4に、作成された複合要素リスト1001の1つを設定する(S2025)。このとき、複合要素リスト作成部907は、設定された複合要素に対応する複合要素リスト番号をコントローラ706が有するRAMに保存する。ただし、S2023およびS2025の双方ともN分岐であった場合は複合要素リスト1001は作成されていない。よって、この場合は、複合要素リスト作成部907は、図1に示すような従来のネルダーミード法の初期頂点P0〜P7を設定値として設定する。よって、図1に示すような従来のネルダーミード法の各初期頂点P0〜P7のクォータニオン(回転・拡大・縮小)を表す四元数(q0、q1、q2、q3)、および平行移動成分(x、y、z)の初期値も、上記不揮発性メモリに予め保持されている。
さて、本実施形態では、ネルダーミード法に係る重心Pcentroid(後述する)に、3つの軸平行移動および3つの軸回転のうち2つの要素を軸とするデカルト座標系における象限の概念を適用して複合要素リスト1001を作成することにより、位置合わせによる評価値を局所解により陥らないようにすることができる(詳細は後述する)。上記「2つの要素を軸とするデカルト座標系」は、上記ネルダーミード法に係る重心Pcentroidを原点1500とした、ある軸Eと、該軸Eに直交する軸Fとによって規定された2次元のデカルト座標系である。また、上記「2つの要素を軸とするデカルト座標系」は、E座標およびF座標共に正である領域の第1象限1501と、E座標が負であり、F座標が正である領域の第2象限1502と、E座標およびF座標共に負である領域の第3象限1503と、E座標が正であり、F座標が負である領域の第4象限1504とを有する。
ここで、複合要素になり得る、3つの軸平行移動(X軸平行移動(以降、単に“X”と表記することもある)、Y軸平行移動(以降、単に“Y”と表記することもある)、Z軸平行移動(以降、単に“Z”と表記することもある))、および3つの軸回転(X軸回転(Pitch)、Y軸回転(Yaw)、Z軸回転(Roll))のうち任意の2つの要素をそれぞれ軸E、軸Fに割り当てる場合を考える。このとき、デカルト座標系の軸の組み合わせ(E、F)は、(X、Y)、(Y、Z)、(X、Z)、(Pitch、x)、(Pitch、Y)、(Pitch、Z)、(Yaw、X)、(Yaw、Y)、(Yaw、Z)、(Roll、X)、(Roll、Y)、(Roll、Z)、(Pitch、Yaw)、(Yaw、Roll)、(Pitch、Roll)の15種類となる。例えば、(E、F)=(X、Y)であり、複合要素(+X、+Y)(X軸の正の方向に所定量(+X)だけ移動させ、Y軸の正の方向に所定量(+Y)だけ移動させる場合)の場合、デカルト座標系(X、Y)における座標は(+X、+Y)となり、この複合要素は該デカルト座標系の第1象限1501にあることになる。また、複合要素(−X、+Y)(X軸の正の方向に所定量(−X)だけ移動させ、Y軸の正の方向に所定量(+Y)だけ移動させる場合)、デカルト座標系(X、Y)における座標は(−X、+Y)となり、この複合要素は該デカルト座標系の第2象限1502にあることになる。一方、例えば、(E、F)=(Yaw、Roll)であり、複合要素(−Yaw、−Roll)(Y軸の負の方向に所定の回転角(−Yaw)だけ回転させ、Z軸の負の方向に所定の回転角(−Roll)だけ回転させる場合)、デカルト座標系(Yaw、Roll)における座標は(−Yaw、−Roll)となり、この複合要素は該デカルト座標系の第3象限1503にあることになる。また、複合要素(+Yaw、−Roll)(Y軸の正の方向に所定の回転角(+Yaw)だけ回転させ、Z軸の負の方向に所定の回転角(−Roll)だけ回転させる場合)、デカルト座標系(Yaw、Roll)における座標は(+Yaw、−Roll)となり、この複合要素は該デカルト座標系の第4象限1504にあることになる。
本実施形態では、複合要素リストに加えられる複合要素として、ある2つの要素の組み合わせについて、例えば、(P4:+X、+Y)および(P4:+X、−Y)、(P4:+Roll、+Pitch)および(P4:+Roll、−Pitch)、(P4:+Z、+Yaw)および(P4:+Z、−Yaw)というように、上記2つの要素の組み合わせにより規定されるデカルト座標系における座標が第1象限1501にある場合と第4象限1504にある場合との2種類を設定することが好ましい。このように設定することにより、ある2つの要素からなる複合要素についてネルダーミード法により反射、拡大、縮小、または収縮を行っても、収束性が対角に並ぶ象限(第1象限1501および第3象限1503、または第2象限1502および第4象限1504)に偏ることを低減することができる。
なお、本実施形態では、ある2つの要素からなる複合要素を設定するに当たり、該2つの要素の組み合わせにより規定されるデカルト座標系における座標が第1象限1501にある場合に対応する複合要素と第4象限1504にある場合に対応する複合要素との2種類を用意することが本質ではない。本実施形態では、2つの移動または回転の要素からなる複合要素に対してネルダーミード法による反射、拡大、縮小、および収縮の少なくとも1つを行う場合、上述の2つの要素の組み合わせにより規定されるデカルト座標系において対角に位置する2つの象限に収束性を偏らせることを低減することが重要である。
ネルダーミード法における反射、拡大、縮小、および収縮では、頂点の各要素に対して一定の係数が掛かってしまう。よって、2つの要素からなる複合要素に対して反射、拡大、縮小、および収縮のいずれか1つを行うと、ある象限にある複合要素に対応する座標は、ネルダーミード法に係る重心Pcentroidである原点1500に対して対角に位置する象限に位置するか、または上記ある象限内に位置することになる。すなわち、例えば第1象限1501(第3象限1503)にある複合要素に係る座標は、第1象限1501または第3象限1503に位置することになり、また例えば第2象限1502(第4象限1504)にある複合要素に係る座標は、第2象限1502または第4象限1504に位置することになる。このように、2つの要素から構成されるデカルト座標系において、頂点の2要素が全て正の数か負の数であれば収束性が第1象限1501と第3象限1503に偏り、片方要素が正の数でもう1つの要素が負の数であれば、第2象限1502と第4象限1504に偏る。
従って、上記デカルト座標系の第1象限1501または第3象限1503に位置する、ある2つの要素を複合要素として用いるのであれば、第2象限1502または第4象限1504に位置する上記ある2つの要素を複合要素として加えることによって、ネルダーミード法の位置推定方向に幅ができ、評価値が局所解に陥いってしまうことをより低減することができる。すなわち、上記3つの軸平行移動および3つの軸回転のうち任意の2つの要素の組み合わせについて、該2つの要素からなるデカルト座標系における、該2つの要素の座標が第1象限または第3象限に位置するように設定された複合要素と、上記2つの要素の座標が第2象限または第4象限に位置するように設定された複合要素とを対で設定する。よって、本実施形態では、上記任意の2つの要素については、ネルダーミード法により反射、拡大、縮小、および収縮の少なくとも1つを行っても、上記デカルト座標系の第1〜第4象限の全てを考慮した評価を行うことができる。
また、上記3の軸平行移動および3つの軸回転の各要素の複合を考えられる全ての組み合わせ(組み合わせ数を2つに限らない)、かつそれら組み合わせの各々について、全象限に対応するように複合した要素をリスト化して頂点P4に適用すると、ネルダーミード法に係る重心が平均化されてしまい局所解に陥りやすくなる可能性がある。よって、図10に示すように、移動に必要と考えられる2つの要素を複合させた複合要素をリスト化しておき、ネルダーミード法の解が収束する毎に、リストを切り替える等するとネルダーミード法に係る重心が変動し局所解に陥らなくなる。
点群対応付け部902は、ICPアルゴリズムにより最も小さい対応点間距離を有するように測定点と基準点を対応付ける(S203)。また、点群対応付け部902は、各測定点の間、または各基準点の間の距離である隣接点間距離を算出する。
重み演算部903は、隣接点間距離重み係数γiを算出する(S204)。すなわち、重み演算部903は、各測定点間の隣接点間距離diを算出し、該隣接点間距離diに基づいて、各測定点に対する隣接点間距離重み係数γiを取得する。なお、隣接点間距離diは、固定値であるので、評価処理がループされて2回目以降の評価の際には隣接点間距離di算出を省略しても良い。また、重み演算部903は、バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、バイウェイト係数B(Zi)を算出する。なお、重み演算部903は、これから処理される評価処理S205が初回か否かに応じて(次のステップであるS205が所定の位置合わせにおける1番目の収束評価算出ルーチンであるか否かに応じて)、バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、バイウェイト係数B(Zi)の算出処理を変える。
(i)これから処理される評価処理S205が初回である場合(次に行われる評価処理S205のS2041にてY分岐の場合)
重み演算部903は、各測定点について、パラメータn、lが共に初期値に設定された式(1)にユークリッド距離比率ud=100(%)を代入して、X要素のバイウェイト係数B(Xi)、Y要素のバイウェイト係数B(Yi)、およびZ要素のバイウェイト係数B(Zi)を算出する。本実施形態では、パラメータnの初期値を「3」とし、パラメータlの初期値を「1」とする。
これから処理される評価処理S205が初回では無い場合(次に行われる評価処理S205のS2041にてN分岐の場合)
重み演算部903は、後述するS20410またはS20411にて変更されたユークリッド距離比率の最大値となる距離(基準の距離)に対する、各測定点毎の対応点間距離(各測定点に固有の対応点間距離)の割合を算出して各測定点に対応するユークリッド距離比率udを算出する。なお、本処理を行っているということは、後述するS2046を一度行っているので、前回の、ネルダーミード法による暫定合同変換パラメータの算出ルーチン(S2045)により得られた暫定合同変換パラメータにより移動する場合の対応点間距離は算出されているので、ユークリッド距離比率udの算出時にはこれら対応点間距離を用いれば良い。重み演算部903は、該算出されたユークリッド距離比率udを式(1)に代入することにより、バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、およびバイウェイト係数B(Zi)を算出する。なお、2回目以降の算出ルーチン(S2045)を行う場合は、後述するS2048にて式(1)で規定される波形特性が緩やかになるようにパラメータn、lが変更されている場合もある。
収束評価部904は、図16に示す収束評価値算出ルーチンを実行する。収束評価部904は、今回の収束評価値算出ルーチンは、位置合わせ処理における初回か否かを判定する(S2041)。上記初回と判断された場合はS2042に進み、上記初回ではないと判断された場合はS2044に進む。
収束評価部904は、初回の位置推定時には、ネルダーミード法に係る頂点P0〜P7の基本移動量(四元数(q0、q1、q2、q3)、および平行移動成分(x、y、z))を初期化する(S2042)。一方、収束評価部904は、収束条件でのリトライ時(S206やS211からのリトライ時)からの復帰時で、前回の収束時に評価値が悪化したか否かを判定する(S2043)。すなわち、収束評価部904は、コントローラ706が有するRAMに保存されている前回の、各測定点に対する対応点間距離の平均値、および前々回の、各測定点に対する対応点間距離の平均値を読み出し、前回の対応点間距離の平均値が、前々回の対応点間距離の平均値よりも大きくなっていたら上記評価値が悪化したと判定し、S2044に進み、前回の対応点間距離の平均値が、前々回の対応点間距離の平均値以下となっていたら上記評価値が悪化していないと判定し、S2045に進む。なお、S206またはS211からの1回目のリトライ時には前々回の対応点間距離の平均値は算出されていない。従って、該1回目のリトライ時の場合、収束評価部904は、自動的にS2045に進む。
収束評価部904は、ネルダーミード法に係る頂点のうち、複合要素に関する頂点P4については、複合要素リストにおいて現在設定されている複合要素を、その次の複合要素に変更し、頂点P0〜P3、P5〜P7についてはそれぞれ初期値に初期化する(S2044)。
収束評価部904は、図17に示す、ネルダーミード法による暫定合同変換パラメータを算出するルーチンを実行する(S2045)。収束評価部904は、ネルダーミード法に測定点データ点群を読み込み(S20451)、次に基準点データ点群を読み込む(S20452)。
収束評価部904は、各頂点P0〜P7に対して、S204にて算出されたバイウェイト係数を掛けたICP法評価値で最良点から最悪点まで評価計算を行い暫定的な格付けを行なう(S20453)。すなわち、収束評価部904は、下記式(7)を用いて各頂点P0〜P7毎に評価値P(s)Eval(s:ネルダーミード法に係る頂点番号、0〜7)を算出する。
ここで、記号iは点群番号であり、記号kは点群数である。また、隣接点間距離diは、S203にて算出されている。
上記Xa(i)、Ya(i)、Za(i)はそれぞれ、各測定点に各頂点パラメータが反映されたものである。すなわち、各頂点により得られる合同変換パラメータに従って測定点を移動させ、該移動後の各測定点のX要素、Y要素、およびZ要素がそれぞれ、Xa(i)、Ya(i)、Za(i)となる。上記Xb(i)、Yb(i)、Zb(i)はそれぞれ、測定点に対応付けられた基準点である。よって、収束評価部904は、ネルダーミード法に係る頂点P0について、該頂点P0から得られる合同変換パラメータにより各測定点を移動させる。これにより、移動後の測定点の3次元座標として(Xa(i)、Ya(i)、Za(i))が得られる。次いで、収束評価部904は、上記頂点P0の合同変換パラメータが反映されたXa(i)、Ya(i)、Za(i)、およびXb(i)、Yb(i)、Zb(i)を式(8)に代入して、頂点P0に対するeuclid(Xi)、euclid(Yi)、euclid(Zi)をそれぞれ算出し、それらを式(7)に代入して頂点P0に係る評価値P(0)Evalを算出することになる。収束評価部904は、同様にして、評価値P(1)Eval〜P(7)Evalを算出する。
一方、バイウェイト係数については、S204にて算出されたバイウェイト係数B(Xi)、バイウェイト係数B(Yi)、およびバイウェイト係数B(Zi)を用いる。しかしながら、頂点P4に設定する複合要素を変更した場合(S2044を経てS2045を行う場合)、S2044にて頂点P4として設定された複合要素のとっては、S2045は初めての処理となる。従って、この場合、収束評価部904は、S204にて算出されたバイウェイト係数を破棄し、それと共に、重み演算部903は、各測定点について、パラメータn、lが共に初期値に設定された式(1)にユークリッド距離比率ud=100(%)を代入して、バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、およびバイウェイト係数B(Zi)を算出し、収束評価部904は、S2045にて算出されたバイウェイト係数を用いて評価値P(1)Eval〜P(7)Evalを算出する。
収束評価部904は、S204または本ステップにより算出された、バイウェイト係数B(Xi)、バイウェイト係数B(Yi)、およびバイウェイト係数B(Zi)、ならびに本ステップにより算出された、euclid(Xi)、euclid(Yi)、およびeuclid(Zi)により、頂点P0〜P7の各々に対して評価値を算出する。上記各頂点P0〜P7に対する評価値P(0)Eval〜P(7)Evalが算出されると、収束評価部904は、各評価値を比較し、最も評価値が小さい頂点を最良点Pbestと設定し、最も評価値が大きい頂点を最悪点Pworstと設定し、2番目に評価値が大きい頂点を最悪点の次点と設定する。
本実施形態では、S2045におけるS20454以降の処理については、従来のネルダーミード法による合同変換パラメータの算出処理と同様に行う。
収束評価部904は、図18に示す、ネルダーミード法の反射ルーチンを実行する。収束評価部904は、頂点P0〜P7の中で暫定最悪点Pworstを選定する(S204541)。S204541にて選定された暫定最悪点Pworstの除いた各頂点の重心Pcentroidを求める(S204542)。収束評価部904は、反射係数α(本実施形態では、α=1)を用いて、暫定最悪点最悪点Pworstの反射点Preflectionを算出し、該反射点Preflectionについて式(7)により評価値を算出する(S204543)。
収束評価部904は、S204543にて算出された反射点Preflectionの評価値と、最悪点Pworstの評価値との比較を行う(S204519)。収束評価部904は、最悪点Pworstより反射点Preflectionの評価値がよければ(S204519 Y分岐)、最悪点Pworstを反射点Preflectionに置き換える(S204520)。ここで、収束評価部904は、S204519にてN分岐の場合は最悪点PworstをPwとし、S204520にて最悪点から反射点に置き換えたネルダーミードの頂点PreflectionをPwとする。次いで、収束評価部904は、Pwの評価値と最良点Pworstの評価値とを比較する(S20455)。Pwの方が最良点よりも評価値が良ければ(S20455 Y分岐)、収束評価部904は、図19に示すネルダーミード法の拡大ルーチンを行う(S20456)。
上記拡大ルーチンにおいて、収束評価部904は、S20454にて得られた反射点(Pw)の評価値を保持しておき(S204561)、拡大係数γ(本実施形態では、γ=2)を用いて、反射点(Pw)による拡大点Pexpansionを計算する(S204562)。次いで、収束評価部904は、拡大点Pexpansionについて式(7)により評価値を算出する(S204563)。次いで、収束評価部904は、S204563にて取得された拡大点Pexpansionの評価値と、反射点(Pw)の評価値とを比較する(S20457)。拡大点Pexpansionの方が反射点Pwよりも評価値が良ければ(S20457 Y分岐)、収束評価部904は、最悪点Pworstを拡大点Pexpansionに置き換え(S20458)、S0245110に進む。拡大点Pexpansionの方が反射点Pwよりも評価値が悪ければ(S20457 N分岐)、収束評価部904は、S0245110に進む。収束評価部904は、ネルダーミード法が収束したかを判定する(S2045110)。収束していなければS20453へ処理を再帰する。
頂点Pwの評価値が最良点Pbestの評価値より良くなかった場合(S20455 N分岐)は、収束評価部904は、頂点Pwの評価値を最悪点の次点の評価値と比較する(S204511)。頂点Pwの評価値が最悪点の次点より良かった場合は(S204511 N分岐)、収束評価部904は、ネルダーミード法が収束したか判定を行なう(S2045110)。
頂点Pwの評価値が最悪点の次点より悪い場合は(S204511 Y分岐)、収束評価部904は、図20に示すネルダーミード法の縮小ルーチンを行う(S204514)。該縮小ルーチンにおいて、収束評価部904は、頂点Pwの評価値(Pwが反射点である場合は、S20454にて算出された評価値、またPwが最悪点Pworstである場合は、S20453にて算出された評価値)を保持しておき(S2045141)、縮小係数ρ(本実施形態では、ρ=0.5)を用いて、Pwの縮小点Pcontractionを計算し、該縮小点Pcontractionについて式(7)により評価値を算出する(S2045142)。次いで、収束評価部904は、S2045141にて保持されたPwの評価値と、S2045142にて算出されたPcontractionの評価値とを比較する(S2045143)。Pwの評価値より縮小点Pcontractionの評価値の方が良ければ(S2045143 Y分岐)、頂点Pwを縮小点Pcontractionに置き換える(S2045144)。次いで、収束評価部904は、収束評価部904は、S2045141にて取得されたPwの評価値と、最悪点の次点の評価値とを比較する(S204513)。上記頂点Pwの評価値が最悪点の次点の評価値より良ければ(S204513 Y分岐)、収束評価部904は、ネルダーミード法が収束したか判定処理を行う(S2045110)。
頂点Pwの評価値が最悪点の次点の評価値より悪い場合(S204513 N分岐)、収束評価部904は、図21に示すネルダーミード法の収縮ルーチンを行う(S204516)。該収縮ルーチンにおいて、収束評価部904は、収縮係数σ(本実施形態では、σ=0.5)を用いて、最良点以外の全頂点をそれぞれ、この次点での暫定最良点Pbestに向かって収縮させる(S20451611)。
S2045110においてネルダーミード法の収束条件を満たした場合(S2045110)は、収束評価部904は、その時のPbestを暫定合同変換パラメータとして設定する。
上記暫定合同変換パラメータが取得されると、S2046において、収束評価部904は、各測定点を、該暫定合同変換パラメータによって暫定移動させる。次いで、収束評価部904は、暫定移動された測定点の各々について、該暫定移動された測定点と、対応付けられた基準点との間の3次元の対応点間距離を算出し、各測定点の対応点間距離の平均値を算出し、該算出された対応点間距離および対応点間距離の平均値をコントローラ706が有するRAMに格納する。なお、暫定合同変換パラメータが算出された順番に、対応点間距離の平均値をRAMに格納することが好ましい。このようにすることで、前々回の対応点間距離と前回の対応点間距離とがコントローラ706において保持されているので、S2043の比較を容易に行うことができる。また、収束評価部904は、対応付けした基準点と、暫定移動された測定点との間のユークリッド距離をX要素、Y要素、Z要素毎に算出する。X要素のユークリッド距離UXi、Y要素のユークリッド距離UYi、およびZ要素のユークリッド距離UZiは式(9)で表される。
式(9)において、x1iは暫定移動された測定点のX要素であり、y1iは暫定移動された測定点のY要素であり、z1iは暫定移動された測定点のZ要素であり、x2iは暫定移動された測定点に対応付けられた基準点のX要素であり、y2iは暫定移動された測定点に対応付けられた基準点のY要素であり、z2iは暫定移動された測定点に対応付けられた基準点のZ要素である。
収束評価部904は、式(9)にて算出されたX要素のユークリッド距離UXi、Y要素のユークリッド距離UYi、およびZ要素のユークリッド距離UZiから、X、Y、Z要素の各々について、ユークリッド距離の平均値(平均距離)を算出し、RAMに保存する。また、X、Y、Z要素の各々について、ユークリッド距離の最大値(最大距離)を抽出し、RAMに保存する。
次に、収束評価部904は、複合頂点リストが一周しても、位置合わせに失敗しているかを判定する(S2047)。すなわち、収束評価部904は、現在設定されている複合要素の複合要素リスト番号を参照し、該現在設定されている複合要素リスト番号が、複合要素数と一致している場合は、複合要素リスト1001の全複合要素について暫定合同変換パラメータを算出しても評価値が収束していないと判断しS2048に進む。また、該現在設定されている複合要素リスト番号が、複合要素数よりも小さい場合は、まだ複合要素リストの全てについて評価が行われてないと判断し、S2049に進む。
位置合わせに失敗していると判断される場合(S2047 Y分岐)、収束評価部904は、式(1)で示す波形特性の傾きを小さくする(S2048)。このS2048において、例えば、収束評価部904は、現在の式(1)で表される関数の波形を緩やかにするパラメータn、lの値を入力するようにユーザに促す。このような促す方法の例として、収束評価部904は、式(1)のパラメータn、lの値をユーザに入力させる画面を表示部718に表示させる。ユーザは、入力操作部717を介して、所望のパラメータn、lを入力すると、収束評価部904は該ユーザ入力に基づいて、式(1)のパラメータn、lをユーザが入力した値に変更する。図22において、波形特性2201は、パラメータn、lが共に所期値(n=3、l=1)に設定されたときの式(1)に関するグラフであり、波形特性2202は、パラメータn=2、l=1に設定されたときの式(1)に関するグラフである。本実施形態では、式(1)で表される波形特性のユークリッド距離比率が50%の時の傾斜(このときの接線の傾き)が緩やかになるようにパラメータn、lを決定することが好ましい。図22においては、波形特性2202の方が波形特性2201よりも緩やかである。従って、例えば、現在パラメータn=3、l=1が設定されている場合(波形特性2201が得られている場合)、ユーザによりパラメータn=2、l=1が入力されることにより、収束評価部904は、バイウェイト推定法に関する波形特性(式(1)の関数の波形)を波形特性2201よりも緩やかな波形特性2202に変更する。
なお、S2047にて失敗されていると判断されても、S2048にて、次の評価に備えてバイウェイト推定に関する波形を可変としているだけであり、複合要素リストの最後の複合要素に対して算出された暫定合同変換パラメータにより収束する場合も有り得ることは言うまでもない。
上記波形を緩やかにするパラメータの変更をコントローラ706が自動で行っても良い。この場合は、例えば、波形が緩やかになるようなパラメータn、lの組み合わせを、波形が急峻から緩やかに向かって複数用意し、それらをテーブル化してコントローラ706が有する不揮発性メモリ等に予め保持させておく。収束評価部904は、S2048に進むと、上記テーブルを参照して、現在のパラメータn、lの組み合わせよりも波形が緩やかになるパラメータn、lの組み合わせを抽出し、該抽出されたパラメータに変更すれば良い。
次いで、収束評価部904は、現在設定されている複合要素について、ネルダーミード法による暫定合同変換パラメータの算出処理(S2045)が初回であるか否かを判定する(S2049)。ある複合要素に対する初回の評価であれば、S20410に進み、ある複合要素に対する初回の評価では無いのであれば、S20411に進む。
ある複合要素に対する初回の評価であれば(S2049 Y分岐)、収束評価部904は、本実施形態に係るバイウェイト推定のユークリッド距離比率の最大値(ユークリッド距離の基準の距離)を、X要素、Y要素、およびZ要素の各々について、要素別(X要素、Y要素、Z要素)の最大距離以上に設定する(S20410)。すなわち、収束評価部904は、S2046にて取得したX要素のユークリッド距離UXの最大値を読み出し、式(1)のユークリッド距離比率udの100%となる距離(上記基準の距離)を、該読み出されたX要素のユークリッド距離UXの最大値に設定する。同様に、収束評価部904は、Y要素、およびZ要素についても同様の設定を行う。このように設定することにより、式(1)におけるユークリッド距離比率において100%の距離を越える所期の位置ズレがあった場合に、測定形状に応じて起こり得る局所解に陥ることを防止、ないしは低減することができる。
複合要素パラメータの更新初回の評価でなければ(S2049 N分岐)、収束評価部904は、本実施形態に係るバイウェイト推定のユークリッド距離比率の最大値(ユークリッド距離の基準の距離)を、X要素、Y要素、およびZ要素の各々について、要素別(X要素、Y要素、Z要素)の平均距離以上から最大距離未満の所定の値に設定する(S20411)。すなわち、収束評価部904は、S2046にて取得したX要素のユークリッド距離UXの平均値(平均距離)、およびX要素のユークリッド距離UXの最大値(最大距離)を読み出し、式(1)のユークリッド距離比率udの100%となる距離(上記基準の距離)を、上記平均値以上、最大値未満の所定の値に設定する。同様に、収束評価部904は、Y要素、およびZ要素についても同様の設定を行う。このように設定することにより、収束するのにかかる繰り返し数を減らすことができ、時間的に速く収束させることができる。
収束評価部904は、算出された逐次収束評価値に基づいてこの対応付けられた対応点群が逐次収束しているかどうかチェックする(S206)。収束しない場合(S206 N分岐)、ステップS203に戻り再度測定点と基準点との対応付けを行う。収束する場合(S206Y分岐)、点群変換部905は、S205にて取得された暫定合同変換パラメータを合同変換パラメータとして設定する(S207)。
次いで、点群変換部905は、生成された合同変換パラメータを用いてエッジ測定点群の位置座標を変換し、エッジ測定点群を移動させ(S208)、該合同変換パラメータを用いて測定点群の位置座標を変換し、全点測定群を移動させる(S209)。表面評価モジュール712Aは、移動後のエッジ測定点群とエッジ基準点群とから平均対応距離を算出し(S210)、算出された平均対応距離と予め設定された閾値を比較して、終了条件が満たされたかどうかをチェックする(S211)。なお、このチェックステップにおいて、上限の繰り返し回数を付加的に設定しておくと好都合である。終了条件が満たされていない場合(S211N分岐)、ステップS203に戻り、移動後の測定点と基準点との対応付けを行う。終了条件が満たされた場合(S211Y分岐)、この位置合わせルーチンを終了する。
位置合わせルーチンが終了すると、欠陥評価モジュール512Bが表面欠陥領域の検出を行う欠陥判定ルーチンを実行する(S14)。この欠陥判定ルーチンでは、図23に示すように、まず、誤対応測定群抽出部908は、対応点間距離閾値を用いて、全点基準点に対して3次元対応点間距離(X,Y,Z)が閾値以上となる測定点の集合体(特定測定点群)を誤対応領域として仮抽出する処理を実行する(S400)。欠陥判定部909は、誤対応領域が抽出されたか否かを判定し、誤対応領域が抽出されなかった場合(S401N分岐)、この欠陥判定ルーチンを終了する。誤対応領域が抽出された場合(S401Y分岐)、欠陥判定部909は、誤対応領域に含まれている測定点間の隣接点間距離が予め設定されている隣接点間距離閾値以下となる集合を一塊りとして、塊ごとに番号を付けるラベリングを行い(S402)、各ラベルの塊ごとに特徴量(重心、等価楕円体長軸長、等価楕円体長軸角度、フェレ径等)を算出する(S403)。欠陥判定部909は、その特徴量が設定値よりも大きい場合(S404 Y分岐)、欠陥と判断し、その情報をメモリに記録する(S405)。また、欠陥判定部909は、特徴量が設定値以下である場合(S404N分岐)、欠陥と判定せずその情報を記録しない。
欠陥判定ルーチンが終了すると、欠陥評価モジュール712Bは、型修正による形状違い判定ルーチンを実行する(S15)。この判定ルーチンを図24に示す。金型の型修正による形状違いは、型修正後の異なる測定対象物同士で同じ位置・同じ場所に発生することを利用するものである。型修正による形状違い判定部910は、前回の測定対象物の欠陥の特徴量を読み出し(S500)、今回の測定対象物の欠陥の特徴量を読み出す(S501)。型修正による形状違い判定部910は、前回と今回の欠陥の特徴量(重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等)差がある範囲内にあれば(S502 Y分岐)、型修正箇所有りと判定し(S503)、ある範囲外(S502N分岐)なら型修正箇所無しと判定する(S504)。
型修正による形状違い判定ルーチンが終了し、型修正箇所がある場合(S16Y分岐)には、欠陥評価モジュール712Bは、その計測ブロックの基準値データ(エッジ基準点および全基準点)を新たに型修正後の基準値データとして追加し(S17)、型修正箇所が無ければ(S16N分岐)追加しない。
図11AのS12にもどり、同じ測定対象物の追加基準データが有る場合(つまり型修正後の基準値データが有る場合)(S12N分岐)、表面評価モジュール712Aは、上述した位置合わせアルゴリズムを用いて、測定点のエッジデータと型修正前のエッジ基準点データ、および測定点のエッジデータと型修正後のエッジ基準点データとの位置合わせを行う位置合わせルーチンを実行する(S18)。
位置合わせルーチンが終了すると、欠陥評価モジュール712Bは、金型の型修正前と型修正後の測定対象物が混在しても、基準点データからずれた測定点群が欠陥なのか、あるいは型修正箇所なのかを判定する欠陥・型修正箇所判定ルーチンを実行する(S19)。この判定ルーチンは図25に示すように、誤対応測定群抽出部908は、型修正前の基準値データから、対応点間距離閾値を用いて、対応点間距離が閾値以上となる測定点の集合体(特定測定点群)を誤対応領域として抽出する処理を実行する(S700)。誤対応領域が抽出されなかった場合(S701 N分岐)、ステップS706へ飛ぶ。誤対応領域が抽出された場合(S701Y分岐)、欠陥判定部909は、誤対応領域に含まれている測定点間の隣接点間距離が予め設定されている隣接点間距離しきい値以下となる集合を一塊りとして、塊ごとに番号を付けるラベリングを行い(S702)、各ラベルの塊ごとに特徴量(重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等)を算出する(S703)。欠陥判定部909は、その特徴量が設定値よりも大きい場合(S704Y分岐)、欠陥と判断し、その情報を第1の欠陥情報としてメモリに記録する(S705)。また、欠陥判定部909は、その特徴量が設定値以下である場合(S704N分岐)、欠陥ではないと判定し、その情報を記録しない。
次に、誤対応測定群抽出部908は、対応点間距離閾値を用いて、対応点間距離が閾値以上となる測定点の集合体(特定測定点群)を誤対応領域として抽出する処理を実行する(S706)。誤対応領域が抽出されなかった場合(S707N分岐)、ステップS712へ飛ぶ。誤対応領域が抽出された場合(S707Y分岐)、結果判定部909は、誤対応領域に含まれている測定点間の隣接点間距離が予め設定されている隣接点間距離しきい値以下となる集合を一塊りとして、塊ごとに番号を付けるラベリングを行い(S708)、各ラベルの塊ごとに特徴量(重心、等価楕円長軸長、等価楕円長軸角度、フェレ径等)を算出する(S709)。欠陥判定部909は、その特徴量が設定値よりも大きい場合(S710Y分岐)、欠陥と判断し、その情報を第2の欠陥情報としてメモリに記録する(S711)。また、欠陥判定部909は、その特徴量が設定値以下である場合(S710 N分岐)、その情報を記録しない。
次に、S700〜S711にて抽出されたそれぞれの欠陥が、金型の型修正による形状違いにより検出されたものではなく、本当の欠陥なら、型修正前と後の両方の基準値データからの評価により欠陥として抽出されると考えられる。欠陥・型修正箇所判定部911は、第1の欠陥情報および第2の欠陥情報に基づいて、第1の欠陥情報および第2の欠陥情報に欠陥として共通の領域がある場合(S712Y分岐)、それら共通の領域を欠陥として判定し(S714)、欠陥として共通の領域を有さない場合は欠陥ではない判断する(S712N分岐)。次に、欠陥・型修正箇所判定部911は、S700〜S711にて抽出された欠陥が型修正前の基準値データからのみを検出した場合は(S713Y分岐)、本当は欠陥でなく、型修正箇所であると判定し、第1の欠陥情報のみの欠陥を、型修正箇所として判定し、型修正後の測定対象物数をカウントアップする(S714)。第2の欠陥情報のみもしくは欠陥が無い場合は(S713N分岐)このルーチンを終了する。
欠陥・型修正箇所判定ルーチンが終了すると、欠陥評価モジュール712Bは、型修正後の測定対象物数が設定値以下か否かを判定して、型修正前と型修正後の測定対象物が混在しているか否かを判定する(S20)。型修正後の測定対象物数が設定値以下なら型修正前後対象物混載中であると判断(S20Y分岐)し、ステップS23に飛ぶ。一方、型修正後の対象物数が設定値より大きい場合は型修正前の対象物はないと判断し(S20N分岐)し、欠陥評価モジュール712Bは、型修正前の基準値データを消去し(S21)、型修正後の対象物のカウントをリセットする(S22)。
なお、ステップS8でX軸方向走査を停止すると、ステップS9からS22を行うと同時に、Yステージ制御部716は、Yステージ11を動作させ、所定のピッチでY軸方向のシフトが行われる(S23)。ステップS9からS22の処理とシフト処理の両方が終わると、コントローラ706が有するCPUは、X軸方向走査がまだ残っているかどうかのチェックを行う(S24)。
ステップS24のチェックでX軸方向走査がまだ残っている場合(S24Y分岐)、Xステージ制御部715は、X軸方向走査の方向を反転し(S25)、ステップS5に戻ってX軸方向走査を行う。ステップS24のチェックでX軸方向走査が残っていない場合(S24N分岐)、光源制御部708は、レーザスリット投光器721をOFFするように制御して、スリット光707の照射を停止する(S26)。さらに、コントローラ706が有するCPUは、測定死角の発生に伴う測定不能箇所の測定データを補完するために、回転テーブル703を90度回転させる必要があるかどうかをチェックする(S27)。回転テーブル703を90度回転させる必要がある場合は(S27Y分岐)、回転テーブル制御部714は、回転テーブル703が90度回転するように回転テーブル703の動作を制御する。次いで、再びステップS3に戻り、この測定を繰り返す。なお、この90度の追加回転では不十分な場合には、さらに90度毎のあと2回までの回転(最初の姿勢位置に対する180度位置と270度位置)が行われる。回転テーブル703を90度回転させる必要がない場合は(S27N分岐)、コントローラ706のCPUは、全ての測定ブロックにおける欠陥評価結果に基づいて総合判定を行う(S28)。この総合判定において、測定対象物の全体を示す全体図の上で欠陥の位置をマーキングした欠陥位置表示図をモニタ又はプリントを通じて出力することができる。
次に、型摩耗による形状違いによる誤判定を防止するため、基準データ変更部914は、基準値データを時々変更する基準データ変更ルーチンを実行する(S29)。この判定ルーチンは図26に示すように、基準データ変更部914は、測定対象物数をカウントし(S800)、設定数以下なら(S801N分岐)、このルーチンを終了し、設定数よりも大きかったら(S801Y分岐)次ステップへ進む。次に、基準データ変更部914は、その測定対象物がNG(欠陥有り)なら、このルーチンを終了し、OKなら、測定点データから測定対象物が図面寸法どおりできているか形状をチェックする(S803)。基準データ変更部914は、形状チェックがNGなら(S804N分岐)このルーチンを終了し、OKなら(S804Y分岐)、その測定点データを基準値データとして変更する。
上述のように、本実施形態では、位置合わせの手段として、最小値算出法であるネルダーミード法を用いて解として暫定合同変換パラメータを生成し、評価算術法としてICP法を用いる。ネルダーミード法は、多面体の頂点毎に評価を行い、最小評価となる頂点を選択する。このとき、図1に示す従来のように、ネルダーミード法の多面体の頂点として、1つの移動または回転要素を設定する場合において、図5(a)に示すように例えば2方向(X軸、Y軸方向)に測定点群302aが基準点群302cからズレている場合、図5(d)に示すように、評価値が局所解に陥り易い。
しかしながら、本実施形態では、上記ネルダーミード法の多面体の頂点の1つを、3つの軸平行移動および3つの軸回転のうち2つからなる複合要素としている。従って、2つの移動または回転要素を複合的に評価することができ、評価値が局所解に陥ることを防止、ないしは低減することができる。すなわち、本実施形態では、図5(a)の位置ズレ状態について、X(←)方向への移動およびY(↑)方向への移動を複合して位置推定を行うことができるので、図27(a)に示すように、測定点群302aを基準点群302cにぴったりと合せることができる。また、図27(b)は、平均距離と評価値との関係を示す図であり、符号2701は上記従来のネルダーミード法による評価値と平均距離との関係を示すグラフであり、符号2702は、本実施形態の複合要素を用いたネルダーミード法による評価値と平均距離との関係を示すグラフである。従来では、グラフ2701に示されるように、平均距離を小さくしようとすると、平均距離を小さくする方向に山が存在するので、局所解に陥ってしまう。しかしながら、本実施形態では、グラフ2702に示すように、平均距離を小さくする方向に局所解を生じさせてしまう程の山が無い。よって、平均距離が小さくなる方に進んでも、評価値を局所解に陥らせないようにすることができる。
また、本実施形態では、移動または回転要素の所定の2つの要素からなる複合要素を、種々の、2つの要素の組み合わせを種々のパターンで複数用意し、すなわち、複合要素をリスト化し、ある複合要素に評価した際に収束していないと判断される場合は、ネルダーミード法の複合要素に関する頂点P4を他の複合要素に変更している。従って、現在設定されている複合要素では収束しないと判断されても、他の複合要素により評価することができるので、測定対象物の形状が変化しても、その形状に適切な複合要素を適宜選択することができる。従って、測定対象物の形状によらず、評価値が局所解に陥ることを低減することができる。
本実施形態では、上述のように、少なくとも1つの複合要素を用いることにより、評価値が局所解に陥ってしまうことを低減することができるが、ネルダーミード法の、反射処理(S20454)、拡大処理(S20456)、縮小処理(S204514)、および収縮処理(S204516)においては、頂点の各要素に対して一定に係数が掛かってしまう。よって、上述したように、3つの軸平行移動の要素および3つの軸回転の要素のうち2つの要素から構成されるデカルト座標系において、収束性の所定の象限への偏りが生じてしまうことがある。しかしながら、本実施形態では、上記3つの軸平行移動および3つの軸回転のうち任意の2つの要素の組み合わせについて、ネルダーミード法に係る重心Pcentroidを原点とした該2つの要素からなるデカルト座標系における、該2つの要素の座標が第1象限または第3象限に位置するように設定された複合要素と、上記2つの要素の座標が第2象限または第4象限に位置するように設定された複合要素とを対で設定する。従って、上記デカルト座標系の全象限についてネルダーミード法の評価を行うことができ、評価値が局所解に陥る可能性を低減することができる。
さて、本実施形態では、位置を推定する評価値として、ICP評価法にM推定法であるバイウェイト推定法を用いる。バイウェイト推定法にICP評価法の基である、測定点データ点に対応する基準点データ点群中の最近傍点までのユークリッド距離の三次元要素、X要素、Y要素、Z要素に対して、それぞれ平均距離と最大距離を算出し、X要素、Y要素、およびZ要素の各々に対して、バイウェイト係数を掛けてICPの評価法に代入する。ここで、従来のように式(3)を用いて対応点間距離の重み係数を算出すると、最大距離を4.5mmに設定した場合は、実距離が4.5mmより短くなる方向は評価値が単調減少し、長くなる方向は一定の評価値となる。すなわち、対応点間距離の重み係数の曲線は、実距離が4.5mmで一定の評価値に飽和してしまう。従って、測定対象物の形状が図6(a)に示すように複雑な場合、図6(c)に示すように、評価値は局所解に陥ってしまう。
これに対して、本実施形態では、ネルダーミード法の評価に用いる評価値P(s)Evalを算出するための評価係数(バイウェイト係数)を算出する際に、ユークリッド距離比率を用い、ユークリッド距離比率が0%〜100%に向かって評価係数が連続的に増加している関数を用いることにより、ネルダーミード法の評価に用いる評価値の算出に用いる係数から飽和要素を除外することができるので、評価値が局所解に陥ることを低減することができる。
また、本実施形態では、同一の複合要素に対する評価の2回目以降において、X〜Z要素のバイウェイト係数を求める際に、X〜Z要素(座標要素)の各々について、ユークリッド距離比率の100%に対応する距離を、対応する座標要素のユークリッド距離の最大値(最大距離)ではなく、対応する座標要素のユークリッド距離の平均値(平均距離)以上、該最大距離未満(例えば、平均距離)とする。従って、例えば、図6(a)に示すような複雑な形状の位置ズレの位置合わせにおいて、収束評価部904は、図28(a)に示すように、測定点群303aから一点鎖線で囲まれた領域2803を除いた状態で評価する。例えば、ユークリッド距離比率の100%に対応する距離を平均距離に設定すると、実際の距離とは関係無く収束評価部904は、平均距離よりも大きく最大距離未満のユークリッド距離を全て該平均距離と見なして評価することになる。よって、収束評価部904は、図28(a)の位置ズレの総面積の方が、ズレ状態である図6(a)の位置ズレの総面積よりも小さいと解釈し、局所解でる図6(a)を解とせず、評価を続行することができる。よって、図28(b)に示すように、測定点群303aを基準点群303cにぴったりと合せることができる。
図27(b)は、平均距離と評価値との関係を示す図であり、符号2801は上記従来のネルダーミード法による評価値と平均距離との関係を示すグラフであり、符号2702は、本実施形態のバイウェイト係数を用いたネルダーミード法による評価値と平均距離との関係を示すグラフである。従来では、グラフ2801に示されるように、平均距離を小さくしようとすると、平均距離を小さくする方向に山が存在するので、局所解に陥ってしまう。しかしながら、本実施形態では、グラフ2802に示すように、平均距離を小さくする方向に局所解を生じさせてしまう程の山を小さくすることができる。よって、平均距離が小さくなる方に進んでも、評価値を局所解に陥らせないようにすることができる。
また、従来では、バイウェイト法による評価値の算出においては式(3)のように固定曲線を用いており、評価値と実距離との関係は画一的であり局所解に陥ることがあった。しかしながら、本実施形態では、ユークリッド距離比率が0%〜100%に向かって評価係数が連続的に増加している関数(バイウェイト係数を求めるための式(1)にて規定される関数)の波形形状を可変としている。従って、上記関数をある波形にして評価したが、収束しない場合は、波形の形状を変化させることにより、評価値が局所解に陥ることを低減することができる。すなわち、式(1)(図22参照)のように曲線を変動するように計算式化しておき、式(1)のパラメータn、lを適宜変更することによって、バイウェイト係数を求めるための関数の波形特性を変化させることができる。波形特性は、ユークリッド距離比率50%を境に傾きが大きいほどユークリッド距離に対して評価値が位置ズレ量に対して過大評価になるが、10%付近では反対に小さくなり、位置ズレ量を過少評価してしまう。そのため、評価値が小さくならない場合は、パラメータn、lを1に近づけ、ずれ量を過小評価しにくくしたり、 パラメータn、lを0より大きく1未満に設定することで過大評価としたり、適宜パラメータn、lを選択する。これにより、局所解に陥らなくなるようにすることができる。
従って、従来法では局所解に陥り、位置合わせをしたはずなのに基準点データと測定点データとの位置ずれが大きく、欠陥と誤判定が発生する場合でも、本実施形態に係る方法を用いることで、評価値が局所解に陥ることを低減できる。よって、図29に示すように、各重心間距離Mと移動量yとをほぼ同一にすることができ、最大位置ズレ距離も±2×10−7mmと小さくすることができる。よって、基準点データと位置合わせ後の測定点データとの位置ズレが低減されているので、誤判定を低減することができる。
本実施形態では、複合要素を用いたネルダーミード法を実行することと、ネルダーミード法における関数値としての評価値を算出する際の評価係数を算出するための関数を、ユークリッド距離比率が0%〜100%に向かって評価係数が連続的に増加している関数とすることの双方を行っているが、それらのうちいずれか一方を行うのみであっても良い。何故ならば、上記2つの方法のいずれも、上述するように、評価値を局所解に陥らせることを低減する効果を奏することができるからである。
(その他の実施形態)
本発明の一実施形態では、コントローラ706が欠陥抽出装置700を制御することができれば、欠陥抽出装置700に内蔵されても良いし、LAN等によるローカルな接続、または、インターネットといったWANによる接続を介して、欠陥抽出装置700と別個に設けても良い。すなわち、本発明では、コントローラ706の配置位置が問題ではなく、上述の実施形態のようにして位置合わせや欠陥抽出を行うようにコントローラ706を構成することが重要なのである。
また、前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラム(例えば、図11A、11BのS2〜S29に示す処理を行うプログラム)を記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。
かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD―ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。
また前述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。