図1は、例示的な映像検査機器100のブロック図である。図1に示す映像検査機器100は例示であり、本発明の範囲は、特定の映像検査機器100または映像検査機器100内の構成要素の特定の構成に限定されないことが理解されよう。
映像検査機器100は、挿入チューブ110と、挿入チューブ110の遠位端に配置されたヘッドアセンブリ120とを備える細長いプローブ102を含み得る。挿入チューブ110は、可撓性の管状部であって、その中をヘッドアセンブリ120とプローブ電子回路140との間のすべての相互配線が通る可撓性の管状部であり得る。ヘッドアセンブリ120は、観視対象202からの光をイメージャ124に導いて集光するためのプローブ光学系122を含み得る。プローブ光学系122は、例えば単レンズ(lens singlet)、または複数の構成要素を有するレンズを備え得る。イメージャ124は、観視対象202の画像を取得するための固体CCDまたはCMOS画像センサであり得る。
着脱可能な先端部またはアダプタ130は、ヘッドアセンブリ120の遠位端に配置され得る。着脱可能な先端部130は、観視対象202からの光をイメージャ124に導いて集光するためにプローブ光学系122と協働する先端部観視光学系132(例えば、レンズ、窓、またはアパーチャ)を含み得る。着脱可能な先端部130はまた、映像検査機器100の光源がプローブ102から観視対象202に光を送るために先端部130または光透過素子(図示せず)から発する場合、照明LED(図示せず)を含み得る。先端部130はまた、カメラ視野および光出力を側方に向ける導波路(例えば、プリズム)を含むことによって側方観視能力を提供し得る。先端部130はまた、観視表面の3次元データの測定で用いる立体光学系または構造化光投光素子(structured−light projecting element)を設けてもよい。先端部130に含まれ得る素子はまた、プローブ102自体に含まれ得る。
イメージャ124は、複数の行および列に形成された複数の画素を含むことができ、イメージャ124の各画素に入射する光を表すアナログ電圧の形で画像信号を生成し得る。画像信号は、信号のバッファリングおよび調整用の電子回路を提供するイメージャハイブリッド126を介して、イメージャハイブリッド126とイメージャインタフェース電子回路142との間の、制御信号および映像信号用の配線を提供するイメージャハーネス112に伝送され得る。イメージャインタフェース電子回路142は、電源と、イメージャクロック信号を生成するためのタイミングジェネレータと、イメージャ映像出力信号をデジタル化するためのアナログフロントエンドと、デジタル化されたイメージャ映像データを処理してより有用な映像フォーマットにするためのデジタル信号プロセッサとを含み得る。
イメージャインタフェース電子回路142は、映像検査機器100を動作させるための機能の集合を提供するプローブ電子回路140の一部である。プローブ電子回路140はまた、プローブ102および/または先端部130用の較正データを記憶する較正メモリ144を含み得る。ゲインおよび露出の設定を決定して設定するためにイメージャインタフェース電子回路142と通信し、較正メモリ144への/からの較正データの記憶および読み出しを行い、観視対象202に供給される光を制御し、映像検査機器100の中央処理装置(CPU)150と通信するためのマイクロコントローラ146もまた、プローブ電子回路140に含まれ得る。
さらに、マイクロコントローラ146との通信に加えて、イメージャインタフェース電子回路142は、1つ以上の映像プロセッサ160とも通信し得る。映像プロセッサ160は、イメージャインタフェース電子回路142から映像信号を受信し、一体型ディスプレイ170または外部モニタ172を含む様々なモニタ170、172に信号を出力し得る。一体型ディスプレイ170は、様々な画像またはデータ(例えば、観視対象202の画像、メニュー、カーソル、測定結果)を検査者に表示するための、映像検査機器100に組み込まれたLCDスクリーンであり得る。外部モニタ172は、様々な画像またはデータを表示するために映像検査機器100に接続される映像モニタまたはコンピュータ用モニタ(computer−type monitor)であり得る。
映像プロセッサ160は、コマンド、ステータス情報、ストリーミング映像、静止映像画像、およびグラフィックオーバーレイをCPU150に/から送信/受信することができ、また、画像キャプチャ、画像強調、グラフィックオーバーレイのマージ、歪み補正、フレーム平均化、スケーリング、デジタルズーム、オーバーレイ、マージ、フリッピング、動き検出、ならびに映像フォーマットの変換および圧縮などの機能を提供するFPGA、DSP、または他の処理要素からなっていてもよい。
CPU150は、画像、映像、および音声の記憶および呼び出し機能、システム制御、ならびに測定処理を含む他の機能のホストを提供することに加えて、ジョイスティック180、ボタン182、キーパッド184、および/またはマイクロフォン186を介して入力を受信することによってユーザインタフェースを管理するために使用され得る。ジョイスティック180は、メニュー選択、カーソル移動、スライダ調整、およびプローブ102の関節制御(articulation control)などの操作を実行するためにユーザによって操作され得るものであり、押しボタン機能を含み得る。ボタン182および/またはキーパッド184もまた、メニュー選択およびCPU150へのユーザコマンド(例えば、静止画像のフリーズ(freezing)または保存)の送信に使用され得る。マイクロフォン186は、静止画像をフリーズまたは保存する音声命令を送信するために検査者によって使用され得る。
映像プロセッサ160はまた、処理中のデータのフレームバッファリングおよび一時保持のために映像プロセッサ160によって使用される映像メモリ162と通信し得る。CPU150はまた、CPU150によって実行されるプログラムを記憶するためのCPUプログラムメモリ152と通信し得る。さらに、CPU150は、揮発性メモリ154(例えば、RAM)および不揮発性メモリ156(例えば、フラッシュメモリデバイス、ハードドライブ、DVD、またはEPROMメモリデバイス)と通信し得る。不揮発性メモリ156は、ストリーミング映像および静止画像用の主記憶装置である。
CPU150はまた、周辺機器およびネットワーク(USB、Firewire、イーサネット(登録商標)、音声I/O、および無線トランシーバなど)に対して様々なインタフェースを提供するコンピュータI/Oインタフェース158と通信し得る。このコンピュータI/Oインタフェース158は、静止画像、ストリーミング映像、または音声の保存、呼び出し、送信、および/または受信を行うために使用され得る。例えば、USB「サムドライブ」またはコンパクトフラッシュ(登録商標)メモリカードが、コンピュータI/Oインタフェース158に差し込まれ得る。さらに、映像検査機器100は、画像フレームデータまたはストリーミング映像データを外部のコンピュータまたはサーバに送信するように構成され得る。映像検査機器100は、TCP/IP通信プロトコルスイートを組み込むことができ、複数のローカルコンピュータおよびリモートコンピュータ(これらのコンピュータのそれぞれも同様にTCP/IP通信プロトコルスイートを組み込んでいる)を含む広域ネットワークに組み込まれ得る。TCP/IPプロトコルスイートを組み込むことにより、映像検査機器100は、TCPおよびUDPを含むいくつかのトランスポート層プロトコルと、HTTPおよびFTPを含むいくつかの異なる層プロトコルとを組み込む。
図1では、特定の構成要素が単一の構成要素(例えば、CPU150)として示されているが、複数の別個の構成要素を使用して、CPU150の機能を実行し得ることが理解されよう。
図2は、本発明の例示的な実施形態において、異常204を有する観視対象202の対象表面210の、映像検査機器100によって取得された例示的な画像200である。この例では、異常204は、材料が損傷または磨耗によって異常204において観視対象202の対象表面210から除去された窪みとして示されている。この例示的な実施形態に示されている異常204は単なる例であり、本発明の方法は他の種類の凹凸(例えば、亀裂、腐食孔、コーティング損失、表面堆積など)に適用されることが理解されよう。画像200が取得され、異常204が確認されたら、画像200は、異常204の寸法(例えば、高さまたは深さ、長さ、幅、面積、体積、ポイントツーライン(point to line)、プロファイルスライスなど)を算出するために使用され得る。一実施形態では、使用される画像200は、異常204を含む、観視対象202の対象表面210の2次元画像200であり得る。
図3は、本発明の例示的な実施形態において、図2の画像200に示されている観視対象202における対象表面210の異常204の最深点を自動的に特定するための例示的な方法300のフロー図である。図3のフロー図に記載されているステップは、フロー図に示されている順序とは異なる順序で実行され得るものであり、特定の実施形態では、ステップのすべてが必要なわけではないことが理解されよう。
例示的な方法300(図3)のステップ310では、図2に示されているように、ユーザは、映像検査機器100(例えば、イメージャ124)を使用して、異常204を有する観視対象202の対象表面210の少なくとも1つの画像200を取得して、それを映像モニタ(例えば、一体型ディスプレイ170または外部モニタ172)に表示し得る。一実施形態では、画像200は、映像検査機器の測定モードで表示され得る。
例示的な方法300(図3)のステップ320では、映像検査機器100(例えば、CPU150)は、異常204の表面点を含む、観視対象202の対象表面210上の複数の表面点の3次元座標(例えば、(x,y,z)を算出し得る。一実施形態では、映像検査機器は、3次元座標を算出するために、画像200から3次元データを生成し得る。いくつかの異なる既存の技術(例えば、ステレオ、走査システム、ステレオ三角測量、構造化光法(structured light method)(位相シフト分析、位相シフトモアレ、レーザドット投影など)など)が、対象表面210の画像200(図2)における表面点の3次元座標を提供するために使用され得る。
このような技術の大部分は、3次元座標の誤差を低減するために使用される光学特性データを特に含む較正データの使用を含み、そうでなければ、光学的歪みによって、3次元座標の誤差が生じる。一部の技術では、3次元座標は、投影パターンなどを含んでもよい、近接時間(close time proximity)にキャプチャされた1つ以上の画像を使用して算出されてもよい。画像200を使用して算出された3次元座標への言及はまた、近接時間にキャプチャされた対象表面210の1つまたは複数の画像200を使用して算出された3次元座標を含んでもよく、記載した動作中にユーザに表示される画像200は、実際には3次元座標の算出に使用されても使用されなくてもよいことを理解されたい。
例示的な方法300(図3)のステップ330では、図4に示すように、映像検査機器100(例えば、CPU150)は、基準表面250を算出し得る。一部の実施形態では、基準表面250は平坦であってもよく、他の実施形態では、基準表面250は湾曲していてもよい。同様に、一実施形態では、基準表面250は平面の形態であってもよく、他の実施形態では、基準表面250は異なる形状(例えば、円筒形、球形など)の形態であってもよい。例えば、ユーザは、基準表面を算出するために、映像検査機器100のジョイスティック180(または他のポインティングデバイス(例えば、マウス、タッチスクリーン))を使用して、異常204の近傍の、観視対象202の対象表面210上の1つ以上の基準表面点を選択し得る。
一実施形態では、図4に示すように、合計で3つの基準表面点221、222、223が、異常204の深さ測定を行うために異常204の近傍の、観視対象202の対象表面210上に選択され、3つの基準表面点221、222、223が、異常204の近傍の対象表面210上に選択される。一実施形態では、観視対象202の対象表面210上の複数の基準表面点221、222、223は、基準表面カーソル231、232、233(または他のポインティングデバイス)を、対象表面210上の複数の基準表面点221、222、223に対応する、画像200の画素241、242、243に配置することによって選択され得る。例示的な深さ測定では、映像検査機器100(例えば、CPU150)は、複数の基準表面点221、222、223のそれぞれの3次元座標を算出し得る。
異常204の近傍の対象表面210上に選択された3つの基準表面点221、222、223のうちの1つ以上の近傍の3つ以上の表面点の3次元座標が、基準表面250(例えば、平面)を算出するために使用され得る。一実施形態では、映像検査機器100(例えば、CPU150)は、3つの基準表面点221、222、223の3次元座標のカーブフィッティングを実行して、以下の形式を有する、基準表面250(例えば、平面)の式を算出し得る。
k0RS+k1RS・xiRS+k2RS・yiRS=ziRS(1)
ただし、(xiRS,yiRS,ziRS)は、定められた基準表面250上の任意の3次元点の座標であり、k0RS、k1RS、およびk2RSは、3次元座標のカーブフィッティングによって得られる係数である。
カーブフィッティングを実行するために、複数の基準表面点(すなわち、K係数の数と少なくとも同じ数の点)が使用されることに留意されたい。カーブフィッティング(例えば、最小二乗法)は、使用される点に最適なk係数を発見する。この結果、k係数は、使用される3次元点に近い平面または他の基準表面250を定める。しかしながら、k係数の数よりも多くの点がカーブフィッティングで使用される場合、平面の式(1)に使用される点のx座標およびy座標を代入したとき、zの結果は、一般に、実際には存在し得るノイズおよび平面からの偏差に起因して点のz座標と正確には一致しない。このように、xiRS1およびyiRS1は任意の値であってもよく、結果として得られるziRSは、xiRS,yiRSにおける、定められた平面のzを示す。したがって、これらの式に示されている座標は、定められた表面上の正確な任意の点のものであってもよく、必ずしも、k係数を算出するフィッティングで使用される点でなくてもよい。
他の実施形態では、1つまたは2つの基準表面点しか選択されず、このため、k0RS、k1RS、およびk2RSを算出するためには3つの点が必要であることから、これらの基準表面点の3次元座標のみに基づくカーブフィッティングは使用することができない。この場合、映像検査機器100(例えば、CPU150)は、基準表面点の近傍の対象表面210上の複数の点に対応する、画像の画素のそれぞれの近傍の複数の画素を特定して、近傍点の3次元座標を算出し、これにより、基準表面250を算出するカーブフィッティングを可能にする。
例示的な基準表面250は、基準表面カーソル231、232、233によって選択された基準表面点221、222、223に基づいて算出されるものとして説明してきたが、他の実施形態では、基準表面250は、基準表面形状260(例えば、円形、正方形、長方形、三角形など)を異常204の近傍に配置するためにポインティングデバイスを使用し、基準表面250を算出するために形状260の基準表面点261、262、263、264を使用することによって形成され得る。形状260の基準表面点261、262、263、264は、ポインティングデバイスによって選択される点であってもよいし、異常204を囲むサイズにされ得る形状の外周上またはその近傍の他の点であってもよいことが理解されよう。
例示的な方法300(図3)のステップ340では、図5に示すように、映像検査機器100(例えば、CPU150)は、基準表面250の基準表面点に基づいて異常204の近傍に関心領域270を算出する。関心領域270は、異常204の複数の表面点を含む。一実施形態では、関心領域270は、基準表面点221、222、223のうちの2つ以上に基づいて関心領域形状271(例えば、円)を形成することによって形成される。別の実施形態では、関心領域270は、基準表面250に垂直な円柱を形成し、これに、基準表面点221、222、223のうちの2つ以上を通過させるか、またはこれらの近傍を通過させることによって算出され得る。再び図4を参照すると、関心領域は、基準表面形状260および基準表面点261、262、263、264内に形成され得る。
図5の例示的な関心領域形状271は、基準表面点221、222、223を通過することによって形成されているが、別の実施形態では、より小さい直径の基準表面形状が、基準表面点の近傍のみを通過することによって形成され得る。例えば、図6に示すように、関心領域280は、関心領域形状281(例えば、円)に2つの基準表面点221、222の近傍を通過させることによって形成され、この場合、円281の直径は、2つの基準表面点221、222間の距離よりも小さい。関心領域形状271、281および関心領域270、280は、画像200上に表示されてもされなくてもよいことが理解されよう。
関心領域270、280が算出された後、例示的な方法300(図3)のステップ350では、映像検査機器100(例えば、CPU150)は、関心領域内の複数の表面点のそれぞれから基準表面250までの距離(すなわち、深さ)を算出する。一実施形態では、映像検査機器100(例えば、CPU150)は、基準表面250と、関心領域270、280内の複数の表面点のそれぞれとの間に延びる直線の距離を算出するが、この場合、この直線は、基準表面250と直角に交差する。
例示的な方法300(図3)のステップ360では、映像検査機器は、基準表面250から最も遠い表面点を算出する(例えば、基準表面250まで延びる最も長い直線を有する表面点を選択する)ことによって関心領域270、280内の最も深い表面点224の位置を算出する。本明細書で使用される場合、「最深点」または「最も深い表面点」は、基準表面250から最も遠い、凹所の点または基準表面250から最も遠い、凸所の点(すなわち、最も高い点)であり得ることが理解されよう。映像検査機器100は、例えばカーソル234(図5)または他のグラフィック標識282(図6)を最も深い表面点224に表示することによって、画像上の関心領域270、280内の最も深い表面点224を特定し得る。さらに、図5および図6に示すように、映像検査機器100は、画像200上の関心領域270、280内の最も深い表面点224の深さ290(インチまたはミリメートル)(すなわち、最も深い表面点224から基準表面250まで延びる垂直線の長さ)を表示し得る。カーソル234または他のグラフィック標識282(図6)を関心領域270、280内の最も深い表面点224に自動的に表示することによって、映像検査機器100は、ユーザが、異常204内の最も深い表面点224を手動で特定する必要がないことから、深さ測定を実行するのに必要な時間を短縮し、深さ測定の精度を改善する。
カーソル234が関心領域270、280内の最も深い表面点224に表示されたら、ユーザは、深さ測定値を取得して保存するためにその点を選択し得る。ユーザはまた、関心領域270、280内の他の表面点の深さを算出するために関心領域270、280内でカーソル234を移動させ得る。一実施形態では、映像検査機器100(例えば、CPU150)は、カーソル234の移動を監視し、カーソル234の移動が停止した時点を検出し得る。カーソル234の移動が、所定の時間量(例えば、1秒)の間停止したとき、映像検査機器100(例えば、CPU150)は、カーソル234の近傍(例えば、カーソル234を中心とする所定の円)の最も深い表面点を算出し、その位置にカーソル234を自動的に移動させ得る。
図7は、図1の画像200に示されている観視対象202の対象表面210の例示的なプロファイル370のグラフ表示である。この例示的なプロファイル370では、2つの基準表面点221、222間およびそれぞれの基準表面カーソル231、232間に延びる基準表面250が示されている。関心領域内の最も深い表面点224の位置および深さ290もまた、グラフ表示に示されている。別の実施形態では、さらに点群図が、最も深い表面点224を示すために使用されてもよい。
図8は、本発明の例示的な実施形態において、異常504を有する観視対象502の対象表面510の、映像検査機器100によって取得された別の画像500である。同様に、この例でも、異常504は、材料が損傷または磨耗によって異常504において観視対象502の対象表面510から除去された窪みとして示されている。この例示的な実施形態に示されている異常504は単なる例であり、本発明の方法は他の種類の凹凸(例えば、亀裂、腐食孔、コーティング損失、表面堆積など)に適用されることが理解されよう。画像500が取得され、異常504が確認されたら、画像500は、異常504の寸法(例えば、高さまたは深さ、長さ、幅、面積、体積、ポイントツーライン、プロファイルスライスなど)を算出するために使用され得る。一実施形態では、使用される画像500は、異常504を含む、観視対象502の対象表面510の2次元画像500であり得る。
図9は、本発明の例示的な実施形態において、図8の画像500に示されている観視対象502の対象表面510を検査するために3次元データを表示するための方法600のフロー図である。図9のフロー図に記載されているステップは、フロー図に示されている順序とは異なる順序で実行され得るものであり、特定の実施形態では、ステップのすべてが必要なわけではないことが理解されよう。
ステップ610では、図8に示すように、オペレータは、異常504を有する、観視対象502の対象表面510の画像500を取得して、これを映像モニタ(例えば、一体型ディスプレイ170または外部モニタ172)に表示するために映像検査機器100を使用し得る。一実施形態では、画像500は、映像検査機器の測定モードで表示され得る。
ステップ620では、映像検査機器100のCPU150は、異常504を含む、観視対象502の対象表面510上の複数の表面点の、第1の座標系における3次元座標(xiS1、yiS1、ziS1)を算出し得る。一実施形態では、映像検査機器は、3次元座標を算出するために、画像500から3次元データを生成し得る。上述したように、いくつかの異なる既存の技術(例えば、ステレオ、走査システム、構造化光法(位相シフト、位相シフトモアレ、レーザドット投影など)など)が、対象表面510の画像500上の点の3次元座標を提供するために使用され得る。
ステップ630では、図8に示すように、オペレータは、映像検査機器100のジョイスティック180(または他のポインティングデバイス(例えば、マウス、タッチスクリーン))を使用して、特定の種類の測定を行うために、異常504の近傍の、観視対象502の対象表面510上の複数の測定点を選択し得る。選択される測定点の数は、行われる測定の種類に依存する。特定の測定(例えば、長さ、プロファイル)は、2つの測定点の選択を必要とし得る一方で、他の測定(例えば、ポイントツーライン、面積、マルチセグメント(multi−segment))は、3つ以上の測定点の選択を必要とし得る。一実施形態では、図8に示すように、合計で4つの測定点521、522、523、524が、異常504の深さ測定を行うために異常504の近傍の、観視対象502の対象表面510上に選択され、測定点のうちの3つ521、522、523は、異常504の近傍の対象表面510上に選択され、第4の測定点524は異常504の最深点になるように選択される。一実施形態では、観視対象502の対象表面510上の複数の測定点521、522、523、524は、カーソル531、532、533、534(または他のポインティングデバイス)を、対象表面510上の複数の測定点521、522、523、524に対応する、画像500の画素541、542、543、544に配置することによって選択され得る。例示的な深さ測定では、映像検査機器100は、複数の測定点521、522、523、524のそれぞれの、第1の座標系における3次元座標を算出し得る。本発明の方法は、4つの測定点の選択を伴う深さ測定または測定に限定されるものではなく、それどころか、上述したものを含む、異なる数の点を伴う様々な種類の測定に適用されることが理解されよう。
ステップ640では、図8に示すように、映像検査機器100のCPU150は、基準表面550を算出し得る。図8に示されている異常504の例示的な深さ測定では、異常504の近傍の対象表面510上に選択された3つの測定点521、522、523のうちの1つ以上の近傍の3つ以上の表面点の3次元座標が、基準表面550(例えば、平面)を算出するために使用され得る。一実施形態では、映像検査機器100は、3つの測定点521、522、523の、第1の座標系における3次元座標(xiM1,yiM1,ziM1)のカーブフィッティングを実行して、以下の形式を有する、基準表面550(例えば、平面)の式を算出し得る。
k0RS1+k1RS1・xiRS1+k2RS1・yiRS1=ziRS1(2)
ただし、(xiRS1,yiRS1,ziRS1)は、定められた基準表面550上の、第1の座標系における任意の3次元点の座標であり、k0RS1、k1RS1、およびk2RS1は、第1の座標系における3次元座標のカーブフィッティングによって得られる係数である。
カーブフィッティングを実行するために、複数の測定点(すなわち、k係数の数と少なくとも同じ数の点)が使用されることに留意されたい。カーブフィッティング(例えば、最小二乗法)は、使用される点に最適なk係数を発見する。この結果、k係数は、使用される3次元点に近い平面または他の基準表面550を定める。しかしながら、k係数の数よりも多くの点がカーブフィッティングで使用される場合、平面の式(2)に使用される点のx座標およびy座標を代入したとき、zの結果は、一般に、実際には存在し得るノイズおよび平面からの偏差に起因して点のz座標と正確には一致しない。このように、xiRS1およびyiRS1は任意の値であってもよく、結果として得られるziRS1は、xiRS1,yiRS1における、定められた平面のzを示す。したがって、これらの式に示されている座標は、定められた表面上の正確な任意の点のものであってもよく、必ずしも、k係数を算出するフィッティングで使用される点でなくてもよい。
別の実施形態では、特定の測定(例えば、長さ、プロファイル)のために2つの測定点しか選択されず、このため、k0RS1、k1RS1、およびk2RS1を算出するためには3つの点が必要であることから、これらの2つの測定点の3次元座標のみに基づくカーブフィッティングは使用することができない。この場合、映像検査機器100は、測定点のそれぞれの近傍の対象表面510上の複数の点に対応する、画像の画素のそれぞれの近傍の複数の画素を特定して、これらの点の3次元座標を算出し、これにより、基準表面550を算出するカーブフィッティングを可能にする。
一実施形態では、図8に示すように、映像検査機器100は、基準表面550の、異常504および測定点521、522、523、524の周りにフレーム562(例えば、長方形)を形成する複数のフレーム点560の、第1の座標系における3次元座標(xiF1,yiF1,ziF1)を算出することができ、それは、基準表面550の位置を表示するために後で使用され得る。
基準表面550が算出されたら、図8に示されている例示的な実施形態において、映像検査機器100は、異常504の最深点に位置するように選択された第4の測定点524と基準表面550との間の距離を算出することによって異常504の測定(例えば、深さの)を行い得る。この深さ測定の精度は、観視対象502の対象表面510上の複数の測定点521、522、523、524を選択する際の精度によって決定される。前述したように多くの場合、2次元画像から画像500内の異常504の輪郭を判断することは困難であり、複数の測定点521、522、523、524の位置を確実に決定するにはあまりに小さかったり、不十分であったりし得る。したがって、多くの場合、オペレータは、これらの測定点521、522、523、524の位置の精度を評価するために異常504の領域のさらなる詳細を必要とする。このため、一部の映像検査機器100は、画像500の全体の点群図を提供し得るが、この図は、前述したように異常504の必要なレベルの詳細を提供しない場合がある。画像500の全体の3次元データの点群図によって提供されるものに比べて有意義な、測定点521、522、523、524の周りの領域の対象表面510の図を提供するために、本発明の方法は、関心領域内の3次元データのサブセットを生成する。
ステップ650では、映像検査機器100のCPU150は、第1の座標系とは異なる第2の座標系を確立し得る。一実施形態では、第2の座標系は、基準表面550および複数の測定点521、522、523、および524に基づき得る。映像検査機器100は、対象表面510上の複数の測定点521、522、523、524のうちの2つ以上に対応する、基準表面550上の点の3次元座標の平均位置525の近傍に位置するように第2の座標系の原点(xO2,yO2,zO2)=(0,0,0)を割り当て得る(例えば、測定点521、522、523、および524を基準表面550に射影し、基準表面550上の平均位置525を算出することによって)。場合によっては、測定点521、522、523に対応する、基準表面550上の点の3次元座標は同じであり得る。しかしながら、一部の状況では、ノイズおよび/または対象表面510の小さな変化に起因して、測定点521、522、523は、基準表面550上に正確には位置せず、したがって、異なる座標を有する。
対象表面510上の測定点521、522、523、524に対応する、基準表面550上の点を算出するとき、直線の方向の概念を適用することが好適であり、これは、x、y、およびz平面における直線の相対的な傾きを教え、垂直線または平行線を確立するために使用され得る。2つの3次元座標(x1,y1,z1)および(x2,y2,z2)を通過する所与の直線について、直線方向(dx,dy,dz)は、以下のように定義されてもよい。
dx=x2−x1(3)
dy=y2−y1(4)
dz=z2−z1(5)
直線上の点(x1,y1,z1)および直線の方向(dx,dy,dz)が与えられたと仮定すると、直線は、以下によって定義され得る。
したがって、x、y、またはz座標のいずれか1つが与えられれば、残りの2つが計算され得る。平行線は、同じまたは線形にスケーリングされた直線方向を有する。方向(dx1,dy1,dz1)および(dx2,dy2,dz2)を有する2つの直線は、
dx1・dx2+dy1・dy2+dz1・dz2=0(7)
ならば、互いに垂直である。
式(2)を使用して定義された基準平面に垂直なすべての直線の方向は、以下によって与えられる。
dxRSN=−k1RS(8)
dyRSN=−k2RS(9)
dzRSN=1(10)
式(6)および式(8)〜式(10)に基づいて、基準表面550に垂直であり、かつ表面点(xS,yS,zS)を通る直線は、次のように定義され得る。
一実施形態では、対象表面510上の点(x
iS1,y
iS1,z
iS1)に対応する、基準表面550上の点の座標(x
iRS1,y
iRS1,z
iRS1)(例えば、測定点521、522、523、524に対応する、基準表面550上の点の、第1の座標系における3次元座標)は、式(8)〜式(10)で与えられる方向を有し、かつ(x
iS1,y
iS1,z
iS1)を通過する、基準表面550に垂直な直線を定め、この直線と基準表面550との交点の座標を算出することによって算出され得る。したがって、式(2)および式(11)から、
x
iRS1=k
1RS1・(z
iS1−Z
iRS1)+x
iS1(13)
y
iRS1=k
2RS・(z
iS1−Z
iRS1)+y
iS1(14)
である。
一実施形態では、これらのステップ(式(3)〜式(14))は、測定点521、522、523、524に対応する、基準表面550上の点の3次元座標を算出するために使用され得る。この結果、基準表面550上の測定点のこれらの射影点の平均位置525(xM1avg,yM1avg,zM1avg)が算出され得る。この結果、第2の座標系の原点(xO2,yO2,zO2)=(0,0,0)が、平均位置525(xM1avg,yM1avg,zM1avg)の近傍に割り当てられて配置され得る。
異常504の領域内の平均位置525の近傍に第2の座標系の原点が配置され、z値が、各表面点から基準表面550までの垂直距離であることにより、異常504の領域を中心に点群図を回転させることができるようになり、深さマップカラースケールで基準表面550からの表面点の高さまたは深さを示すことが可能となる。
この第2の座標系を利用するために、ステップ660では、映像検査機器100のCPU150は、様々な点(例えば、複数の表面点、複数の測定点521、522、523、524、フレーム点560を含む基準表面550上の点など)に関して算出された、第1の座標系における3次元座標(xi1,yi1,zi1)を第2の座標系における3次元座標(xi2,yi2,zi2)に変換する。
一実施形態では、座標変換行列([T])が、以下に従って座標を変換するために使用され得る。
([xi1 yi1 zi1]−[xM1avg yM1avg zM1avg])*[T]=[xi2 yi2 zi2](15)
ただし、[T]は、変換行列である。
非行列形式では、第2の座標系における3次元座標は、以下によって算出され得る。
xi2=(xi1−xM1avg)*T00+(yi1−yM1avg)*T10+(zi1−zM1avg)*T20(16)
yi2=(xi1−xM1avg)*T01+(yi1−yM1avg)*T11+(zi1−zM1avg)*T21(17)
zi2=(xi1−xM1avg)*T02+(yi1−yM1avg)*T12+(zi1−zM1avg)*T22(18)
ただし、変換行列値は、第1の座標系における新しいx、y、およびz軸の直線方向値である。
ステップ670では、映像検査機器100のCPU150は、観視対象502の対象表面510上の関心領域内にある複数の表面点のサブセットを算出する。一実施形態では、関心領域は、点群図に使用される3次元データの量を最小にするように複数の選択された測定点521、522、523、524を囲む、観視対象502の対象表面510上の限定領域であり得る。サブセットを算出するステップは変換ステップ660の前または後に行われ得ることが理解されよう。例えば、ステップ670におけるサブセットの算出が変換ステップ660の後に行われる場合、映像検査機器100は、関心領域外にある点を含むすべての表面点の座標を、これらの点のうちのどれが関心領域内にあるかを算出する前に変換してもよい。あるいは、ステップ670におけるサブセットの算出が変換ステップ660の前に行われる場合、映像検査機器100は、関心領域内にある表面点の座標を変換するだけでよい。
一実施形態では、関心領域は、測定点521、522、523、524に対応する、基準表面550上の各点と、基準表面550上のこれらの点の平均位置525(変換後に行われる場合は第2の座標系の原点(xO2,yO2,zO2)=(0,0,0)または変換前に行われる場合は第1の座標系における(xM1avg,yM1avg,zM1avg))との間の最大距離(dMAX)を算出することによって定められ得る。一実施形態では、関心領域は、基準表面550上の、測定点521、522、523、524の平均位置525から特定の閾値距離(dROI)(例えば、これは、最大距離よりも小さい(dROI<dMAX)または最大距離よりもわずかに大きい(例えば、20%大きい)(dROI=1.2*dMAX))内にある、基準表面550上の対応する(すなわち、基準表面に射影されたときの)点を有するすべての表面点を含み得る。例えば、第2の座標系における平均位置525が、(xO2,yO2,zO2)=(0,0,0)にある場合、その位置から、表面点に対応する、基準表面550上の点(xiRS2、yiRS2、ziRS2)までの距離(d)は、以下によって与えられる。
同様に、第1の座標系における平均位置525が、(x
M1avg,y
M1avg,z
M1avg)にある場合、その位置から、表面点に対応する、基準表面550上の点(x
iRS1,y
iRS1,z
iRS1)までの距離(d)は、以下によって与えられる。
表面点が、関心領域閾値距離(d
ROI)未満の距離値(d
iRS1またはd
iRS2)を有し、したがって、関心領域内にある場合、映像検査機器100は、その表面点の3次元座標およびその表面点の深さに対応する画素の色を点群図ファイルに書き込み得る。この例示的な実施形態では、関心領域は、円柱の半径内にある表面点を含む円柱の形態である。関心領域を算出するための他の形状および方法が使用され得ることが理解されよう。
関心領域はまた、第1の座標系で映像検査機器100によって算出された、観視対象502の対象表面510上の異常504の深さに基づいて定められ得る。例えば、異常504の深さが0.005インチ(0.127mm)と測定された場合、関心領域は、基準表面550までの測定点521、522、523、524のうちの1つ以上の距離に基づいて、基準表面550(またはz寸法)から特定の範囲(±0.015インチ(0.381mm))内の距離を有する点のみを含むものとして定められ得る。表面点が、関心領域内に深さ値を有する場合、映像検査機器100は、その表面点の3次元座標およびその表面点の深さに対応する画素の色を点群図ファイルに書き込み得る。表面点が、関心領域外の深さ値を有する場合、映像検査機器100は、その表面点を点群図ファイルに含まなくてもよい。
ステップ680では、図10に示すように、映像検査機器100のモニタ170、172は、第2の座標系の3次元座標で複数の表面点のサブセットの、図の中心に原点725を有するレンダリング3次元図(例えば、点群図)700を表示し得る。一実施形態(図示せず)では、点群図700の表示は、第2の座標系における各表面点と基準表面750との間の距離を示すカラーマップを含み得る(例えば、特定の深さの第1の点は、その深さに対応する赤の色調で示され、異なる深さの第2の点は、その深さに対応する緑の色調で示される)。表示された点群図700は、複数の測定点721、722、723、724の位置も含み得る。オペレータが点群図700を見るのを補助するために、映像検査機器100はまた、複数の測定点721、722、723のうちの2つ以上の間の直線に沿って3次元直線点771、772、773の、第2の座標系の3次元座標を算出し、これらの直線点771、772、773を点群図700に表示し得る。点群図700は、異常504の最深点に意図的に配置された測定点724から基準表面750までの深さ直線774も含み得る。一実施形態では、映像検査機器100は、深さ直線774が公差仕様または他の閾値を超えているかどうかを判定し、そのような発生の視覚的または聴覚的表示または警報を提供し得る。
表示された点群図700は、基準表面750の位置を示すために、第2の座標系で基準表面750上にフレーム762を形成する複数のフレーム点760も含み得る。別の実施形態では、表示された点群図700は、基準表面750からの垂直距離を示すスケールも含み得る。
図10に示すように、点群図700のデータを関心領域内の点に限定し、関心領域の中心(例えば、原点)の点725を中心として図を回転させることによって、オペレータは、より容易に異常504を分析し、深さ測定および測定点721、722、723、724の配置が正確であるかどうかを判断し得る。一実施形態では、オペレータは、補正が必要な場合、点群図700内の測定点721、722、723、724の1つ以上の位置を変更し得る。あるいは、補正が必要な場合、オペレータは、図8の2次元画像500に戻り、測定点521、522、523、524の1つ以上を再選択し、プロセスを繰り返し得る。
別の実施形態では、映像検査機器100のモニタ170、172は、座標の変換を一度も行うことなく、第1の座標系の3次元座標で複数の表面点のサブセットのレンダリング3次元図700を表示し得る。本実施形態において、元の座標に基づく点群図700も同様に、カラーマップ、複数の測定点の位置、3次元直線点、深さ直線、フレーム、またはスケールの表示を含む、オペレータを補助する上記した様々な特徴を含み得る。
図11は、別の例示的な実施形態において、観視対象の3次元形状を描画する画像と同時に観視対象の2次元画像を表示するための例示的な方法800のフロー図である。図11のフロー図に記載されているステップは、フロー図に示されている順序とは異なる順序で実行され得るものであり、特定の実施形態では、ステップのすべてが必要なわけではないことが理解されよう。
例示的な方法(図11)のステップ810では、図12に示すように、映像検査機器100(例えば、図1のイメージャ124)は、異常912を有する、観視対象910の対象表面911の少なくとも1つの2次元画像903を取得し、これをディスプレイ900(例えば、一体型ディスプレイ170、外部モニタ172、またはユーザインタフェースのタッチスクリーン)の第1の側901に表示する。一実施形態では、2次元画像903は、映像検査機器100の測定モードで表示される。
例示的な方法800(図11)のステップ820では、図12に示すように、映像検査機器100(例えば、図1のCPU150)は、観視対象910の対象表面911上の複数の表面点913、914の3次元座標(例えば、(x,y,z))を算出する。一実施形態では、映像検査機器は、3次元座標を算出するために、2次元画像903から3次元データを生成する。図12は、ディスプレイ900の第1の側901の、観視対象910の2次元の第1のステレオ画像903と、ディスプレイ900の第2の側902の、観視対象910の対応する2次元の第2のステレオ画像904とのディスプレイ900である。一実施形態では、映像検査機器100(例えば、CPU150)は、対応する2次元の第2のステレオ画像904上の一致する表面点915、916を発見し、次に、2次元の第1のステレオ画像903上の複数の表面点913、914(または画素領域(例えば4×4の領域)と、対応する2次元の第2のステレオ画像904上の一致する表面点915、916との間の画素距離視差(pixel distance disparity)に基づいて3次元座標を算出することによって、2次元の第1のステレオ画像903上の複数の表面点913、914の3次元座標(例えば、(x,y,z))を算出するためにステレオ技術を用いる。図12〜図14に示すように、ステレオ画像903、904に関する、2次元画像への本明細書での言及は、第1(左)のステレオ画像903および第2(右)のステレオ画像904の両方または一方を含み得ることが理解されよう。
いくつかの異なる既存の技術(例えば、ステレオ、走査システム、ステレオ三角測量、構造化光法(位相シフト分析、位相シフトモアレ、レーザドット投影など)など)が、対象表面911の2次元画像903(図12)における表面点913、914の3次元座標を提供するために使用され得る。このような技術の大部分は、3次元座標の誤差を低減するために使用される光学特性データを特に含む較正データの使用を含み、そうでなければ、光学的歪みによって、3次元座標の誤差が生じる。一部の技術では、3次元座標は、投影パターンなどを含んでもよい、近接時間にキャプチャされた1つ以上の2次元画像を使用して算出されてもよい。2次元画像903を使用して算出された3次元座標への言及はまた、近接時間にキャプチャされた対象表面911の1つまたは複数の2次元画像を使用して算出された3次元座標を含んでもよく、記載した動作中にオペレータに表示される2次元画像903は、実際には3次元座標の算出に使用されても使用されなくてもよいことを理解されたい。
例示的な方法800(図11)のステップ830では、図13および図14に示すように、測定カーソル931、932を伴う、観視対象910の2次元画像903の少なくとも一部が、ディスプレイ900の第1の側901に表示され、観視対象910の対象表面911の少なくとも一部の3次元形状のレンダリング画像905が、ディスプレイ900の第2の側902に表示される。図12と比較して、ディスプレイ900内の第2(右)のステレオ画像904が、レンダリング画像905に置き換わっている。一実施形態では、映像検査機器100(例えば、CPU150)は、測定カーソル931、932の配置および表示の前に、観視対象910の対象表面911上の複数の表面点913、914の3次元座標(例えば、(x,y,z))を算出するプロセスを開始する(そして、一実施形態ではこれを完了する)。図13および図14に示されている例示的な実施形態は、ディスプレイ900の第2の側902に表示された、観視対象910の対象表面911の3次元形状の単一のレンダリング画像905を示しているが、1つより多いレンダリング画像905が、2次元画像903と同時にまたは2次元画像903なしに表示され得ることが理解されよう。
図13に示す例示的な実施形態では、レンダリング画像905は、異常912を含む、観視対象910の対象表面911の3次元形状を示す深さプロファイル画像906である。図14に示す別の例示的な実施形態では、レンダリング画像905は、異常912を含む、観視対象910の対象表面911の3次元形状を示す点群図907である。図14に示す例示的な点群図907では、観視対象910の対象表面911上の表面点913、914の3次元座標のサブセットのみが、測定カーソル931、932の位置に基づく関心領域に表示されている。別の実施形態では、点群図907は、観視対象910の対象表面911上の表面点913、914の計算された3次元座標のすべてを表示する。一実施形態では、例えば、ディスプレイがユーザインタフェースタッチスクリーンである場合、ユーザは、タッチスクリーンを使用して点群図907を回転させ得る。
一実施形態では、図14に示すように、点群図907は、観視対象910の対象表面911の表面点と、基準表面960(例えば、複数の測定カーソル931、932のうちの1つ以上の近傍の3次元座標を使用して算出された参照平面)との間の距離を示すように色付けされてもよい。例えば、特定の深さの第1の点は、その深さに対応する赤の色調で示され、異なる深さの第2の点は、その深さに対応する緑色の色調で示される。色深さスケール908は、点群図907に示されている色と基準表面960からのそれぞれの距離との関係を示すために設けられる。一実施形態では、点群図907は、点群図907内の隣接点の間の移行をグラフィカルに滑らかにするように平らにされてもよい。
観視対象910の対象表面911上の複数の表面点913、914の3次元座標が算出されたら、ユーザは、2次元画像903の測定を行い得る。
一実施形態では、映像検査機器100は、2次元画像903およびレンダリング画像905の分割図を画像として保存する。映像検査機器100はまた、3次元データの再計算および保存されたファイルからの再測定を可能にするために、図12に示されているような第1(左)のステレオ画像903および第2(右)のステレオ画像904の元の完全なステレオ画像(例えば、グレースケールのみの)および較正データをメタデータとして保存し得る。あるいは、映像検査機器100は、計算された3次元座標および/または視差データ(disparity data)をメタデータとして保存し得るが、これは、呼び出し時の処理時間を短縮するものの、ファイルサイズが大きくなる。
例示的な方法800(図11)のステップ840では、図13および図14に示すように、測定カーソル931、932が(ポインティングデバイスを使用して)2次元画像903上に配置されて表示され、これにより、映像検査機器100(例えば、CPU150)は、異常912の寸法(例えば、高さまたは深さ、長さ、幅、面積、体積、ポイントツーライン、プロファイルスライスなど)を算出することができるようになる。2次元画像がステレオ画像でない別の実施形態でも、映像検査機器100(例えば、CPU150)が、異常912の寸法(例えば、高さまたは深さ、長さ、幅、面積、体積、ポイントツーライン、プロファイルスライスなど)を算出することができるようにするために、測定カーソル931、932(図13および図14に示されいるような)は2次元画像903上に配置され得る。さらに別の実施形態では、2次元画像903上に配置する代わりに、測定カーソルは、(ポインティングデバイスを使用して)ディスプレイ900の第2の側902の、観視対象910の対象表面911の少なくとも一部の3次元形状のレンダリング画像905上に配置され得る。
例示的なディスプレイ900では、第1の測定カーソル931は、観視対象910の対象表面911上の第1の測定点921に配置され、第2の測定カーソル932は、観視対象910の対象表面911上の第2の測定点922に配置される。観視対象910の対象表面911上の測定点921、922の3次元座標が知られるため、対象表面911の幾何学的測定(例えば、深さまたは長さの測定)をユーザは実行することができ、映像検査機器100(例えば、CPU150)は、図13および図14に示されているように測定寸法950を算出し得る。図13および図14に示されている例では、測定線933が、2次元画像903上に表示されている。
観視対象910の対象表面911の3次元形状のレンダリング画像905は、幾何学的測定を行うために2次元画像903上に測定カーソル931、932を配置することを補助するためにディスプレイ900の第2の側902に表示される。ステレオまたは非ステレオ2次元画像に関わる従来のシステムでは、これらの測定カーソル931、932(図13および図14に示されているような)は、2次元画像903によって提供される図のみに基づいて配置されるが、このことは、測定カーソル931、932の正確な配置および正確な測定を可能としない場合がある。
例示的な方法800(図11)のステップ850では、図13および図14に示すように、2次元画像903上に配置された測定カーソル931、932に対応する測定標識941、942が、観視対象910の対象表面911の3次元形状のレンダリング画像905上に表示される。例えば、第1の測定標識941は、第1の測定カーソル931と同じ、観視対象910の対象表面911の3次元座標でレンダリング画像905上に示され、第2の測定標識942は、第2の測定カーソル932と同じ、観視対象910の対象表面911の3次元座標でレンダリング画像905上に示される。図14に示されている例示的な点群図907では、2次元画像903の測定線933(例えば、深さ測定線)に対応する測定線標識943が表示されている。観視対象910の対象表面911の2次元画像903と同時に表示される、観視対象910の対象表面911の3次元形状のレンダリング画像905は、ユーザが、より正確な幾何学的測定を行うためにより正確に測定カーソル931、932を配置することを可能にする。さらに別の実施形態では、測定カーソルが(ポインティングデバイスを使用して)レンダリング画像905上に配置される場合、測定カーソルに対応する測定標識は、2次元画像903上に表示される。
一実施形態では、ユーザが2次元画像903内の測定カーソル931、932の位置を変更すると、ユーザが新しい測定を実質的にリアルタイムで想像することができるように、映像検査機器100(例えばCPU150)は、測定カーソル931、932に対応する測定標識941、942の位置および観視対象910の対象表面911の3次元形状のレンダリング画像905(例えば、図14の点群図907の関心領域または深さの色)を自動的に更新する。別の実施形態では、測定カーソル931、932が2次元画像903内に配置された後、測定標識941、942が、レンダリング画像905内に再配置され得る。
さらに別の実施形態では、測定カーソルが(ポインティングデバイスを使用して)レンダリング画像905上に配置され、測定カーソルに対応する測定標識が、2次元画像903上に表示される場合、ユーザがレンダリング画像905内の測定カーソルの位置を変更すると、ユーザが新しい測定を実質的にリアルタイムで想像することができるように、映像検査機器100(例えば、CPU150)は、測定カーソルに対応する測定標識の位置を自動的に更新し、二次元画像も変更される。別の実施形態では、測定カーソルがレンダリング画像905上に配置された後、測定標識が、2次元画像903内に再配置され得る。
例示的な方法800(図11)のステップ860では、図13および図14に示すように、映像検査機器100(例えば、CPU150)は、測定カーソル931、932の位置に基づいて、ユーザが求める、特定の幾何学的測定(例えば、深さまたは長さの測定)の測定寸法950を算出し、この測定寸法950をディスプレイ900上に表示する。別の実施形態では、測定寸法は、ディスプレイ900上のレンダリング画像905に表示され得る。
図12〜図14に示すように、ソフトキー909は、画像の取得および測定の実行の際にユーザに様々な機能(例えば、図の表示、取り消し、測定の追加、次の測定、オプション、削除、注釈、画像の取得、リセット、ズーム、フル画像/測定画像、深さマップのオン/オフなど)を提供するためにディスプレイ900に設けられ得る。一実施形態では、ユーザが2次元画像903またはレンダリング画像905のいずれかを有効にすると、表示される特定のソフトキー909が、アクティブな画像に基づいて変更され得る。
上記によれば、本発明の実施形態は、表面上の異常における点の深さまたは高さを自動的に算出する。技術的効果は、測定の実行に必要な時間を短縮し、測定の精度を改善することである。
当業者によって理解されるように、本発明の態様は、システム、方法、またはコンピュータプログラム製品として具体化されてもよい。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとり得る。なお、これらはすべて、本明細書では一般的に「サービス」、「回路」、「電気回路」、「モジュール」、および/または「システム」と呼ばれ得る。さらに、本発明の態様は、1つ以上のコンピュータ可読媒体であって、そこで具体化されるコンピュータ可読プログラムコードを有する1つ以上のコンピュータ可読媒体で具体化されるコンピュータプログラム製品の形態をとってもよい。
1つ以上のコンピュータ可読媒体の任意の組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子的な、磁気的な、光学的な、電磁的な、赤外線の、もしくは半導体のシステム、装置、もしくは機器、またはこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、以下、すなわち、1つ以上の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROMもしくはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光記憶機器、磁気記憶機器、またはこれらの任意の適切な組み合わせを含む。本文書に関連して、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくは機器によって、またはこれらと共に使用されるプログラムを含むまたは記憶することができる任意の有形媒体であってもよい。
コンピュータ可読媒体で具体化されたプログラムコードおよび/または実行可能命令は、無線、有線、光ファイバケーブル、RFなど、またはこれらの任意の適切な組み合わせを含むが、これらに限定されない任意の適切な媒体を使用して送信されてもよい。
本発明の態様の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、またはC++などのオブジェクト指向プログラミング言語および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つ以上のプログラミング言語の組み合わせで記述されてもよい。プログラムコードは、完全にユーザのコンピュータ(機器)上で、単独のソフトウェアパッケージとして部分的にユーザのコンピュータ上で、部分的にはユーザのコンピュータ、部分的にはリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行されてもよい。最後の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてもよく、この接続は、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部コンピュータに対して行われてもよい。
本発明の態様は、本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図および/またはブロック図を参照して説明されている。フローチャート図および/またはブロック図の各ブロックならびにフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータプログラム命令によって実施され得ることが理解されよう。これらのコンピュータプログラム命令は、機械を製造するために汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに供給されてもよく、これにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令は、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定された機能/動作を実施するための手段をもたらす。
特定の方法で機能するようにコンピュータ、他のプログラム可能データ処理装置、または他の機器に指示し得るこれらのコンピュータプログラム命令はまた、コンピュータ可読媒体に記憶されてもよく、これにより、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定された機能/動作を実施する命令を含む、コンピュータ可読媒体に記憶された命令は、製品を製造する。
コンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能装置上で実行された命令が、フローチャートおよび/またはブロック図のブロックまたは複数のブロックで指定された機能/動作を実施するためのプロセスを提供するように、コンピュータ、他のプログラム可能装置、または他の機器で一連の動作ステップを実行させてコンピュータ実施プロセスを生じるためにコンピュータ、他のプログラム可能データ処理装置、または他の機器にロードされてもよい。
ここに記載された説明は、最良の態様を含む本発明を開示するため、また、任意の機器またはシステムの作成および使用、ならびに任意の組み合わせられた方法の実行を含み、当業者が本発明を実施できるようにするために例を用いる。本発明の特許可能な範囲は、特許請求の範囲によって規定されており、また、当業者によって想到される他の例を含み得る。このような他の実施例が請求項の字義通りの文言と異ならない構造要素を有する場合、または、それらが請求項の字義通りの文言と実質的な差異がない等価な構造要素を含む場合には、このような他の実施例は特許請求の範囲内であることを意図している。