以下、本発明の実施形態を図面に基づいて詳細に説明する。尚、以下の好ましい実施形態の説明は、本質的に例示に過ぎず、本発明、その適用物或いはその用途を制限することを意図するものではない。
(実施形態1)
図1は、本発明の実施形態に係る画像計測システム1の運用状態を模式的に示すものである。画像計測システム1は、ワークW(計測対象物)を撮像した画像を用いてワークWの三次元形状の計測を実行するように構成されており、画像検査システムと呼ぶこともできる。画像計測システム1は、ワークWを照明する照明装置2と、ワークWを撮像する画像計測装置用撮像装置3と、当該撮像装置3の設定を行うパーソナルコンピュータ(PC)等で構成された設定装置4とを備えている。複数台の撮像装置3を設定装置4に接続することが可能に構成されている。設定装置4は、表示部5と、キーボード6及びマウス7とを備えている。表示部5は、たとえば有機ELディスプレイや液晶ディスプレイ等からなるものであり、撮像装置3で撮像された画像、撮像装置3で撮像された画像を各種処理した処理後の画像、各種ユーザーインターフェース(GUI)等を表示可能な部分である。各種ユーザーインターフェース等は、設定装置4の本体部分で生成することができる。表示部5の横方向を当該表示部5のX方向とし、表示部5の縦方向を当該表示部5のY方向とすることができる。
また、キーボード6及びマウス7は、従来から周知のコンピュータ操作時に使用される操作機器(操作手段)である。キーボード6またはマウス7の操作により、各種情報を設定装置4に入力することができるとともに、表示部5に表示されている画像等を選択したり、各種ボタンを操作することができる。尚、キーボード6及びマウス7の代わり、またはキーボード6及びマウス7に加えて、たとえば、音声入力機器、感圧式タッチ操作パネル等のコンピュータ操作用の機器を使用することもできる。
たとえば、設定装置4には、プログラマブル・ロジック・コントローラ(PLC)等からなる外部制御機器8が接続されている。この外部制御機器8は、画像計測システム1の一部を構成するものとしてもよい。また、外部制御機器8は、画像計測システム1の構成要素としなくてもよい。
図1では、複数のワークWが搬送用ベルトコンベアBの上面に載置された状態で図1における白抜き矢印で示す方向へ搬送されている場合を示している。外部制御機器8は、搬送用ベルトコンベアB及び画像計測システム1をシーケンス制御するための機器であり、汎用のPLCを利用することができる。
尚、この実施形態の説明では、搬送用ベルトコンベアBによるワークWの搬送方向(ワークWの移動方向)をY方向とし、搬送用ベルトコンベアBの平面視でY方向に直交する方向をX方向とし、X方向及びY方向に直交する方向(搬送用ベルトコンベアBの上面に直交する方向)をZ方向と定義するが、これは説明の便宜を図るために定義するだけである。
画像計測システム1は、ワークWの三次元形状の計測だけでなく、ワークWの外観検査、即ちワークWの表面の傷、汚れ、打痕等の欠陥の有無を検査する場合に使用することができるものであり、この検査結果からワークWの良否判定を行うこともできる。画像計測システム1は、その運用時において、外部制御機器8から信号線を介して、計測の開始タイミングを規定する計測開始トリガ信号を受信する。また、欠陥検査(良否判定検査)の開始タイミングを規定する検査開始トリガ信号を受信するように構成することもできる。計測開始トリガ信号と検査開始トリガ信号とは同じであってもよい。
画像計測システム1は、この計測開始トリガ信号または検査開始トリガ信号に基づいてワークWの撮像及び照明等を行って所定の処理後、計測用画像や検査用画像を得る。その後、計測用画像に基づいて三次元形状の計測を行い、また、検査用画像に基づいてワークWの外観検査をする。その測定結果や検査結果は、信号線を介して外部制御機器8へ送信される。このように、画像計測システム1の運用時には、画像計測システム1と外部制御機器8との間で、信号線を介してトリガ信号の入力と結果の出力が繰り返し行われる。なお、開始トリガ信号の入力や結果の出力は、上述したように、画像計測システム1と外部制御機器8との間の信号線を介して行ってもよいし、それ以外の図示しない信号線を介して行ってもよい。例えば、ワークWの到着を検知するためのセンサと画像計測システム1とを直接的に接続し、そのセンサから画像計測システム1へ開始トリガ信号を入力するようにしてもよい。また、画像計測システム1は、トリガ信号を内部で自動生成して計測や検査を行うように構成してもよい。
また、画像計測システム1は、専用のハードウェアで構成する他、汎用の機器にソフトウェアをインストールしたもの、たとえば汎用もしくは専用のコンピュータに画像計測プログラムや画像検査プログラムをインストールした構成としてもよい。たとえば、グラフィックボードなどのハードウェアを画像計測処理や画像検査処理に特化させた専用のコンピュータに、画像計測プログラムや画像検査プログラムをインストールした構成とすることもできる。
(照明装置2の構成)
照明装置2は、発光部2aと、発光部2aを制御する照明制御部2bとを備えている。発光部2aと照明制御部2bとは、別体であってもよいし、一体化されたものであってもよい。また、照明制御部2bは、設定装置4に組み込まれていてもよい。発光部2aは、たとえば発光ダイオード、液晶パネルを用いたプロジェクタ、有機ELパネル、デジタルマイクロミラーデバイス(DMD)等で構成することができ、照明部と呼ぶこともできる。発光ダイオード、液晶パネル、有機ELパネル、DMDについては図示しないが、従来から周知の構造のものを用いることができる。照明装置2は、設定装置4に対して信号線100aを介して接続されており、撮像装置3及び設定装置4から離して設置することができるようになっている。
実施形態1の照明装置2は、均一面発光を行うことができるように構成される。また、照明装置2は、均一面発光の他に、デフレクトメトリ処理を実現可能な照明を行うことができるように構成されており、従って、周期的な照度分布を有するパターン光をワークWに照射する発光部2aを有している。すなわち、照明装置2は、複数の異なるパターン光をワークWに対して順次照射するパターン光照明を実行するパターン光照明部とすることができる。以下、デフレクトメトリ処理を行うことによって計測用画像、検査用画像を生成する場合に用いる照明装置2について説明する。
複数の発光ダイオードを用いる場合には、複数の発光ダイオードをドットマトリクス状に配置して電流値制御によって周期的な照度分布を有するパターン光を生成することができる。たとえば、明暗がY方向に変化するY方向パターン光の場合、縞模様がY方向に繰り返されるパターン光という表現とすることもでき、このY方向パターン光を生成する際には、照度分布の位相をY方向にシフトさせることにより、照度分布の位相が異なった複数のY方向パターン光を生成することができる。Y方向パターン光の照度分布をsin波形に近似した波形で表すこともでき、この場合、たとえば位相を90゜ずつ変化させて、0゜の場合のY方向パターン光、90゜の場合のY方向パターン光、180゜の場合のY方向パターン光、270゜の場合のY方向パターン光を生成することができる。
また、明暗がX方向に変化するX方向パターン光の場合、縞模様がX方向に繰り返されるパターン光という表現とすることもでき、このX方向パターン光を生成する際には、照度分布の位相をX方向にシフトさせることにより、照度分布の位相が異なった複数のX方向パターン光を生成することができる。X方向パターン光の照度分布をsin波形に近似した波形で表すこともでき、この場合、たとえば位相を90゜ずつ変化させて、0゜の場合のX方向パターン光、90゜の場合のX方向パターン光、180゜の場合のX方向パターン光、270゜の場合のX方向パターン光を生成することができる。つまり、照明装置2は、異なる照明態様でワークWを照明することができる。デフレクトメトリ処理を行う場合、ワークWに照射するパターン光はsin波形だけでなく、三角波等のパターン光でも可能である。
尚、全ての発光ダイオードに同じ電流値の電流を流すことで照度分布が面内で均一な光を照射(均一面発光)することもできる。全ての発光ダイオードに流す電流値を同じにして変化させていくと、暗い面発光状態から明るい面発光状態まで発光状態を変化させることができる。
また、液晶パネル及び有機ELパネルの場合は、各パネルを制御することで各パネルから照射される光が周期的な照度分布を有するパターン光となるようにすることができる。デジタルマイクロミラーデバイスの場合は、内蔵された微小鏡面を制御することで周期的な照度分布を有するパターン光を生成して照射することができる。尚、照明装置2の構成は上述したものに限られるものではなく、周期的な照度分布を有するパターン光を生成することができる機器や装置等であれば使用することができる。
また、後述するが、フォトメトリックステレオ法を利用して計測用画像や検査用画像を生成する場合に用いる照明装置2は、少なくとも3以上の異なる方向から照明を個別に照射可能な照明装置を用いることができる。また、照明装置2は、波長が異なる光を順次照射するマルチスペクトル照明が可能に構成された照明装置であってもよく、照明装置2の構成は特に限定されるものではない。
(撮像装置3の構成)
撮像装置3は、ワークWを撮像し、取得した画像に基づいてワークWの計測処理を実行する装置である。撮像装置3は、カメラ31と、集光系光学系32と、撮像装置側プロセッサ33とを有している。撮像装置3は、設定装置4に対して信号線100bを介して接続されており、照明装置2及び設定装置4から離して設置することができるようになっている。
カメラ31は、集光系光学系32を通して得られた光の強度を電気信号に変換するCCDやCMOS等の撮像素子からなるイメージセンサを有している。撮像装置側プロセッサ33は、記憶装置や信号処理装置を有するとともに、カメラ31の露光開始及び終了の制御、露光時間の制御、アナログゲインの調整等を行う部分である。内部の論理回路によってイメージセンサの駆動や、画像データの転送を制御することができる。また、撮像装置側プロセッサ33によって各種画像処理、フィルター処理等を行うことができるようになっており、撮像装置3は、フィルター処理機能を保有した装置である。
集光系光学系32は、外部から入射する光を集光するための光学系であり、典型的には一以上の光学レンズを有している。また、集光系光学系32は、オートフォーカスを実行可能に構成されている。照明装置2からワークWの表面に向けて照射された光が該ワークWの表面で反射して集光系光学系32に入射するように、撮像装置3と照明装置2との位置関係を設定することができる。ワークWが透明フィルムやシートのように透光性を有する部材である場合、照明装置2からワークWの表面に向けて照射されたパターン光が該ワークWを透過して撮像装置3の集光系光学系32に入射するように、撮像装置3と照明装置2との位置関係を設定することができる。上記したいずれの場合も、ワークWの表面で反射した正反射成分及び拡散反射成分が撮像装置3の集光系光学系32に入射するように、撮像装置3と照明装置2とを配置する。また、撮像装置3には、受光素子がY方向に直線状に配置されたラインカメラを用いることもできるが、ラインカメラではなく、エリアカメラ(受光素子がX方向とY方向に並ぶように配置されたカメラ)を用いることもでき、このエリアカメラの場合は、同軸照明という形態も可能である。
(実施形態2)
図2は、本発明の実施形態2に係る画像計測システム1の概略構成及び運用状態を模式的に示す図である。実施形態2では、撮像装置側プロセッサ33が撮像素子を有するカメラ31及び集光系光学系32から分離しており、この撮像装置側プロセッサ33に照明制御部2bが取り込まれて一体化されている。撮像装置側プロセッサ33は、設定装置4に対して信号線100bを介して接続されている。撮像装置側プロセッサ33と照明制御部2bとは別体とすることもできる。
(実施形態3)
図3は、本発明の実施形態3に係る画像計測システム1の概略構成及び運用状態を模式的に示す図である。実施形態3では、撮像装置側プロセッサ33に照明制御部2bが取り込まれて一体化されるとともに、撮像装置側プロセッサ33に表示部5及びマウス7が接続されている。設定装置4は、たとえばノートパソコン等で構成されており、撮像装置側プロセッサ33に接続されている。設定装置4は、キーボード6を有している。また、設定装置4には、マウスを接続してもよい。設定装置4が生成した各種ユーザーインターフェース等は、撮像装置側プロセッサ33を介して表示部5に表示することができる。
(実施形態4)
図4は、本発明の実施形態4に係る画像計測システム1の概略構成及び運用状態を模式的に示す図である。実施形態4では、照明装置2と撮像装置3とが一体化されており、照明制御部2bと撮像装置側プロセッサ33とも一体化されている。尚、実施形態2~4において、実施形態1と同じ部分には同じ符号を付して説明を省略している。
(デフレクトメトリ処理)
実施形態1~4では、撮像装置3が撮像した複数の輝度画像からデフレクトメトリの原理に基づいてワークWの表面の位相データを生成し、当該位相データに基づいてワークWの形状を示す計測用画像を生成するデフレクトメトリ処理を行うように構成されている。
以下、図5に示すフローチャートに従って計測用画像の生成について詳細に説明する。フローチャートのステップSA1では、照明装置2が所定の照明条件に従ってパターン光を生成し、ワークWを照明する。このときの照明条件は、位相が0゜の場合のY方向パターン光、90゜の場合のY方向パターン光、180゜の場合のY方向パターン光、270゜の場合のY方向パターン光、0゜の場合のX方向パターン光、90゜の場合のX方向パターン光、180゜の場合のX方向パターン光、270゜の場合のX方向パターン光を順番に生成する照明条件とすることができる。従って、照明装置2は、合計8種類のパターン光(X方向で4種類、Y方向で4種類)を生成してワークWに順次照射する。パターン光が照射される都度、撮像装置3がワークWを撮像する。撮像装置3による撮像の際、パターン光の照射回数が8回であることから、8つの輝度画像が得られる。尚、ワークWの形状等によっては、X方向パターン光のみ、またはY方向パターン光のみ照射するようにしてもよい。また、パターン光の数は3つであってもよい。
その後、ステップSA2に進み、ステップSA1で得られた8つの輝度画像に対してデフレクトメトリ処理を行う。パターン光が照射されたワークWを撮像することで、得られた輝度画像の各画素値には、正反射成分と、拡散反射成分(+環境成分)とが含まれることになる。パターン光の照度分布の位相をX方向に90゜(π/2)ずつシフトさせて4回撮像しているので、各画素値はX方向パターン光の照射によって4種類得られる。拡散反射成分、正反射成分、正反射角度(位相)は、位相データであり、周知の計算式により算出することができる。
同様に、パターン光の照度分布の位相をY方向に90゜(π/2)ずつシフトさせて4回撮像しているので、各画素値はY方向パターン光の照射によって4種類得られる。Y方向についても同様に拡散反射成分、正反射成分、正反射角度(位相)を算出することができる。
たとえば、正反射成分画像は、逆相同士の差分により、拡散成分を排除することで得ることができる。X方向とY方向でそれぞれ得られ、それらを合成することで正反射成分画像となる。また、正反射角度は、π/2ずれの正反射成分により、tanθ=sinθ/cosθとして角度を算出することで得られる。また、平均画像は、拡散成分と環境成分とを含んでおり、逆相同士の加算により、正反射成分を排除することで得られる。
ステップSA3では拡散反射成分画像に対してコントラスト補正を行う。また、ステップSA4では正反射成分画像に対してコントラスト補正を行う。各コントラスト補正は、線形補正とすることができる。たとえば、ROIの平均が中央値になるように補正する。8ビットの場合は128レベルを中央値とすればよい。これによって、補正後の拡散成分、補正後の正反射成分が得られる。
また、ステップSA5では位相成分について参照位相との差分を取る。このステップSA5では、参照平面の位相に対して差分を取得する。たとえば、使用者が、参照平面として球面状、円筒状、平面状等を指定し、これらとの差分を取得するようにする。あるいは、自由曲面で抽出させてもよい。X方向について補正後の位相(差分)が得られ、Y方向についても補正後の位相が得られる。拡散反射成分画像、正反射成分画像、参照位相差分画像は出力画像とすることができる。
ステップSA6では、ステップSA5で得られた参照位相差分画像に基づいて階層化画像と深さ輪郭画像を得る。階層化画像は、1/2縮小を繰り返した画像である。これにより、階層化された位相の画像がX方向とY方向でそれぞれ得られる。
一方、深さ輪郭画像とは、位相差分が大きい部分を強調した出力画像であり、曲率とは異なる概念である。深さ輪郭画像は、形状積み上げによって得られる形状画像に比べて高速に得られ、ワークWの線キズが極めて見やすく、しかも、輪郭の抽出がし易い等の利点がある。
次に、ステップSA7では、階層化された位相の画像に対して形状積み上げを行って形状画像を生成する。X方向とY方向の正反射角度に対し、Gauss-Jacobi法などによる積み上げ計算を行うことで、形状画像を得ることができる。形状画像は出力画像となる。
一般的には、unwrappingをしてから、三角測距などによって形状を復元する例が多いところ、本実施形態においては、unwappingを回避し、局所的な微分値をGauss-Jacobi法で積み上げ計算することで、三角測距によらずに形状を復元している。形状復元方法は、既知の方法が適宜利用できる。好ましくは、三角測距を用いない方法である。また、縮小画像を多段に持つ、階層型方法とすることもできる。また、縮小画像と通常画像との差分を持つ方法とすることもできる。
さらに、パラメータとして特徴サイズを設定することもできる。特徴サイズとは、検査の目的や種別に応じた検出対象の傷のサイズを設定するためのパラメータである。例えば、特徴サイズのパラメータ値が1のときに一番細かい傷が検出でき、この値を上げていくと大きな傷が検出できるようにする。これにより、特徴サイズを大きくすると、より大きな傷が検出し易い状態となり、ワークW表面の傷や凸凹が明瞭となる。
ステップSA8では簡易欠陥抽出を行う。すなわち、ワークWの線キズ(欠陥)を検査し易い画像、ワークWの汚れ(欠陥)を検査し易い画像、ワークWの打痕(欠陥)を検査し易い画像をそれぞれ生成した後、画像に現れている欠陥を欠陥抽出画像に表示させる。欠陥抽出画像は、各画像に現れている欠陥を抽出して表示することができる画像であり、抽出した欠陥を1つの画像に合成して表示させることができるので合成欠陥画像と呼ぶこともできる。
たとえば、正反射成分画像は、正反射を鈍らせる汚れや、形状変化はないものの正反射の鈍いキズ、あるいは形状変化によって正反射が返ってこないキズ等の確認をし易い画像である。拡散反射画像は、ワークWの表面のテクスチャの状態(具体的には印刷物の文字や黒ずんだ汚れ等)を確認し易い画像である。形状画像は、特徴サイズに応じて周囲画素を見ながら位相の変化を積み上げた画像である。ここで、形状画像の特徴サイズを大きく設定すると、形状変化のなかでも比較的浅くて面積の広い凹凸を捉えることができる。一方、形状画像の特徴サイズを小さく設定すると、線キズや面積の小さなキズを捉えることができる。また、形状画像に現れにくい欠陥(たとえば細いキズや深い傷)は、正反射成分画像に現れやすい傾向がある。また、深さ輪郭画像は、基準となる平面を算出し、この基準平面からのずれを画像化している。深さ輪郭画像からは、線キズや面積の小さなキズを捉えることができる。
ステップSA8で簡易欠陥抽出を行った後に抽出された欠陥が表示された欠陥抽出画像を出力する。
(実施形態5)
図6は、本発明の実施形態5に係る画像計測システム1の概略構成及び運用状態を模式的に示す図である。上記実施形態1~4は、デフレクトメトリの原理に基づいて計測用画像や検査用画像を生成する形態であるのに対し、実施形態5では、フォトメトリックステレオ法を利用して計測用画像や検査用画像を生成するように構成されている。
以下、フォトメトリックステレオ法を利用して計測用画像を生成する具体的な方法について、図6を参照しながら、実施形態1と同じ部分には同じ符合を付して説明を省略し、異なる部分について詳細に説明する。
実施形態5に係る画像計測システム1は、たとえば特開2015-232486号公報に開示されている画像計測システムと同様に構成することができる。すなわち、画像計測システム1は、ワークWを一定の方向から撮像する撮像装置3と、ワークWを異なる三以上の照明方向から照明するための照明装置200とを備えるとともに、実施形態1と同様な表示部5、キーボード6及びマウス7を備えている。
照明装置200は、ワークWに対して、互いに異なる方向から光を照射するように構成されており、第1~第4発光部201~204と、第1~第4発光部201~204を制御する照明制御部205とを有している。この照明装置200は、ワークWに対して互いに異なる方向から光を照射する複数方向照明を実行する部分である。第1~第4発光部201~204は互いに間隔をあけてワークWを取り囲むように配置されている。第1~第4発光部201~204は、発光ダイオード、白熱球、蛍光灯等を利用することができる。また、第1~第4発光部201~204は別体であってもよいし、一体化されていてもよい。
この実施形態では、第1~第4発光部201~204を順次点灯させ、第1~第4発光部201~204のいずれかが点灯した時点で、撮像装置3がワークWを撮像する。たとえば、照明装置200が1回目の照明トリガ信号を受信すると、照明制御部205が第1発光部201のみ点灯させる。このとき撮像装置3は撮像トリガ信号を受信して光が照射されるタイミングでワークWを撮像する。照明装置200が2回目の照明トリガ信号を受信すると、照明制御部205が第2発光部202のみ点灯させ、このとき撮像装置3はワークWを撮像する。このようにして4枚の輝度画像を得ることができる。なお、照明の数は4つに限られるものではなく、3つ以上で、かつ、互いに異なる方向からワークWを照明することができれば任意の数にすることができる。
そして、撮像装置3によって撮像された複数の輝度画像同士で対応関係にある画素毎の画素値を用いて、各画素のワークWの表面に対する法線ベクトルを算出する。算出された各画素の法線ベクトルに対してX方向及びY方向に微分処理を施し、ワークWの表面の傾きの輪郭を示す輪郭画像を生成する。また、算出された各画素の法線ベクトルから、法線ベクトルと同個数の各画素のアルベドを算出し、アルベドから、ワークWの表面の傾き状態を除去した模様を示すテクスチャ描出画像を生成する。この手法は周知の手法であることから詳細な説明は省略する。複数の輝度画像をフォトメトリックステレオの原理に基づいて合成することで、ワークWの形状を示す形状画像を生成することができる。
(マルチスペクトル照明)
他の実施形態として、マルチスペクトル照明が可能な照明装置2であってもよい。マルチスペクトル照明とは、波長が異なる光を、タイミングをずらしてワークWに照射することであり、印刷物(検査対象物)の色むらや汚れ等を検査するのに適している。たとえば、黄色、青色、赤色を順番にワークWに照射可能となるように、照明装置2を構成することができ、具体的には、多数色のLEDを有する照明装置2としてもよいし、液晶パネルや有機ELパネル等で照明装置2を構成してもよい。
撮像装置3は、光が照射されるタイミングでワークWを撮像して複数の輝度画像を得る。そして、複数の輝度画像を合成して計測用画像や検査用画像を得ることができる。これをマルチスペクトルイメージングと呼ぶ。複数の輝度画像をマルチスペクトルイメージングにより合成することでワークWの形状を示す形状画像を生成することができる。尚、照明装置2が照射する光には、可視光以外の光、例えば紫外線や赤外線等も含むことができる。
(カメラとアプリケーションとの接続インターフェース)
カメラ31は、GenICam規格に対応したGenICam規格対応カメラである。GenICam規格は、設定装置4のアプリケーションであるPCアプリケーション40とカメラ31との接続インターフェースを標準化する規格であり、図7に示すように、主に設定装置4の本体部となるパーソナルコンピュータ上に構築するPCアプリケーション40からカメラ31を制御したり、カメラ31で撮像された画像を設定装置4のPCアプリケーション40で取得するインターフェースを標準化したものである。
撮像装置3と設定装置4のPCアプリケーション40の双方がGenICam規格に対応していれば、カメラ31と、設定装置4のPCアプリケーション40とを接続することが可能になっている。PCアプリケーション40は、パーソナルコンピュータにインストールされたソフトウェアで構成される。尚、この実施形態では、カメラ31及び設定装置4が標準化規格としてGenICam規格に対応している場合について説明するが、標準化規格はGenICam規格に限られるものではなく、他の標準化規格であってもよい。
PCアプリケーション40を階層構造に分解した場合を想定すると、GenICam層41は、PCアプリケーション40における実際に計測、画像検査や欠陥検査等を行う上位の階層(検査部4A)と、具体的なネットワーク通信規格に基づき制御を行う階層42との間に位置する中間層の位置付けとなる。GenICam層41は、大きく2つの部分、GenApi41a及びGenTL(TL:Transport Layer)41bに分類することができる。GenApi41aは、カメラ31の設定項目と、カメラ31内部のレジスタアドレスの変換を行う部分である。このGenApi41aにより、PCアプリケーション40からはカメラ31の具体的なアドレスを指定することなく、抽象的に、露光時間であれば、「ExposureTime」、アナログゲインであれば「AnalogGain」といった文字列を引数に設定項目を指定し、カメラ31と接続した際に、カメラ31から取得したDeviceXML(詳細は後述する)と呼ばれるファイルを解析することで、その文字列(Featureと呼ばれる)に対応したレジスタアドレスを割り出すことができる。
GenTL41bは、PCアプリケーション40とカメラ31との間のデータの転送を制御するインターフェース(API)を規定したものであり、具体的には、カメラ31のレジスタへの書き込み、読み出しAPIの仕様及びカメラ31から転送した画像データのPCアプリケーション40の上位の層への受け渡しを行うAPIの仕様を規定したものである。
PCアプリケーション40とカメラ31を接続する物理的な規格は、高速ネットワークを使用した規格であればよく、例えば、Ethernetケーブル31aを利用したGigE Vision規格3Aと、USB3.0対応ケーブル31bを利用したUSB3Vision規格3Bとがある。よって、撮像装置3と設定装置4とは、ネットワークを介して接続されることになるが、このネットワークは、高速ネットワークケーブルを利用した有線であってもよいし、無線であってもよい。また、ネットワークは、Ethernetケーブル31aやUSB3.0対応ケーブル31b以外のケーブルを用いたネットワークであってもよく、特に限定されるものではない。
GenICam規格は、物理的な通信規格として使用するものを具体的に特定しておらず、GenTL41bという形で抽象化した仕様を規定しているに留まっている。このGenTL41bの下位の階層42として、GigE Vision規格3AやUSB3Vision規格3Bといった、具体的な通信ネットワークを用いて通信規格が規定されている。具体的な通信規格は、GigE Vision規格3AやUSB3Vision規格3Bに限られるものではなく、GenICam規格に対応していればよい。図7では、GigE Vision規格3A及びUSB3Vision規格3Bの概念を説明するために、各規格に対応したカメラ31、31を設定装置4に接続した状態を示しているが、一方のカメラ31のみを設定装置4に接続して使用することができる。
GenICam規格対応カメラ31には、DeviceXMLと呼ばれるファイル(DeviceXMLファイル)31cが記憶されている。DeviceXMLファイル31cは、カメラ31に内蔵された記憶装置(内部メモリ)に記憶されている。
PCアプリケーション40による設定対象であるカメラ31と接続する際に、そのカメラ31からDeviceXMLファイル31cを読み込む。DeviceXMLファイル31cの読み込みは、たとえば、カメラ31からDeviceXMLファイル31cをダウンロードする方法がある。ダウンロードされたDeviceXMLファイル31cはGenApi41aで保持される。DeviceXMLファイル31cのダウンロードは、PCアプリケーション40側からの要求によって行うことや、カメラ31との接続時に自動的に行うことができ、このDeviceXMLファイル31cのダウンロードにより、設定装置4はDeviceXMLファイル31cを取得できる。また、接続するカメラ31からダウンロードせずに、そのカメラ31に対応したDeviceXMLファイル31cを別の手段(例えばウェブサイトからのダウンロード)により入手して、接続時にGenApi41aに対して指定することも可能である。
DeviceXMLファイル31cには、カメラ31の内部に保持する全ての設定項目と、各設定項目の設定値が格納されるレジスタアドレス(レジスタ情報)とが関連付けられて記述されている。設定項目はFeatureと呼ばれ、各Featureには、個々のFeatureを特定するための文字列が割り当てられている。各Featureのノードには、具体的なレジスタアドレスが記載されたノードへの参照が記載される。レジスタ情報には、レジスタアドレスや、レジスタを特定する文字列も含まれる。
DeviceXMLファイル31cにおいて、たとえば、「ExposureTime」(露光時間設定)という名称のFeatureがあり、その属性が「ExposureTimeReg」というレジスタアドレスを参照するように指示されており、具体的なアドレスとして、ある値が記載されていたとする。カメラ31が異なれば、アドレスが異なる値になることがあるが、「ExposureTime」というFeatureの名称については共通である。このように、多くのカメラ31で共通した設定項目として存在するものを統一した名称で管理することで、PCアプリケーション40においてはカメラ31の機種の違いやメーカーの違いを意識することなく、カメラ31を設定、制御することが可能になる。
上述したように、GenApi41aの階層では、DeviceXMLファイル31cの記載内容を解析することで、上位の階層であるPCアプリケーション40から引数として渡されたFeature文字列をレジスタのアドレスに変換する。たとえば、「ExposureTime」というFeatureに対応したレジスタにある値(値:100.5)を書き込む場合、WriteRegister(アドレスの値,100.5)といったように、アドレスの値と、書き込む値との2つを引数とした関数を実行することで、GigE Vision規格3AまたはUSB3Vision規格3Bなど、物理通信規格を経由してカメラ31のレジスタの値を設定することができる。
尚、DeviceXMLファイル31cには、各メーカーで共通のFeatureとして盛り込むべきものが規定されているが、それ以外にベンダー独自のFeatureを定義することも可能である。独自性の高い機能を有しているカメラ31の場合、専用のFeatureを通じてカメラ31にアクセスすることで、汎用的なカメラに存在しない特殊な機能を利用することも可能である。
(撮像装置3の内部処理ユニット)
図8は、撮像装置3の内部処理の一例を概念的に示すフローチャートである。撮像装置3は、上述のようにしてワークWを撮像する撮像処理を実行した後、当該撮像処理により取得した画像に基づいてワークWの計測処理フローを実行する。図8に示すフローチャートは、運用時に実行される計測処理フローの一例である。
図8に示すフローチャートにおいて、位置補正1のグループは、当該グループに内包されるパターンサーチのユニットと位置補正のユニットとからなるように記載されているが、位置補正2~5のグループは記載されていない。これは、図を簡略化するため、位置補正2~5のグループを折り畳んであることによる。
このフローチャートに示すように、複数のユニットの組み合わせで構成されている。ユニットは、撮像処理や画像処理を制御する単位であり、ユニットをフローチャート上で組み合わせることで、撮像装置3に所望の動作を実現させることができる。図8に示すフローチャートでは、ユニットを1つのステップとして記載している。
たとえば、使用者の設定により、ある処理を行う機能を有効にした場合、その機能に対応したユニットを追加することで、処理を実行可能にすることができる。ユニットは、処理を実行するためのプログラムと、処理を実行するために必要なパラメータや、処理結果のデータを格納する記憶領域を一つにまとめたものと定義することができる。各処理は、図1に示す撮像装置側プロセッサ33で行うことができ、また、記憶領域は、撮像装置側プロセッサ33の記憶装置に確保することができる。尚、ユニットの概念自体は、GenICam規格に対応したカメラ31の外部仕様を実現する際に必須なものではない。
図8に示すフローチャートは、複数のユニットを縦方向及び横方向にフローチャート形式で並べたものであり、単にフローと呼ぶこともできる。複数のユニットを縦方向にのみ並べたフローチャートであってもよい。図8に示すフローチャートのスタートからエンドに向かって順に処理を実行していくが、途中に分岐ステップSB1を設けることで、分岐させることもできる。分岐した場合には、エンドまでの間に合流ステップSB2を設けることができ、これにより、合流させてからエンドに進むことができる。
(パラメータセット)
PCアプリケーション40を実際の検査環境において動作させる場合、ワークWが切り替わったり、明るさなど、周囲の環境の変化を検知した場合には、撮像装置3の設定パラメータを動的に変更することがある。露光時間など、ごく限られたパラメータのみ変更する場合は、画像検査アプリケーション40から、それに対応したFeatureの値を直接書き込むことで対応することもできる。
一方で、高機能な撮像装置3の場合、設定可能な項目の数が増え、ワークWの切り替え時などに、一度に変更すべきパラメータの数も多くなる。この場合、設定変更に要する時間が、パラメータの数に相関して長くなっていく。実際の画像検査ラインにおいては、ワークWが切り替わり、新しいワークWが撮像装置3の撮像視野範囲に到達してから当該視野範囲を外れるまでの時間が短いことが多く、一連の設定変更を高速に行いたいケースが出てくる。このようなときに、パラメータセットと呼ばれる機能を使用することがある。
パラメータセットは、撮像装置3で撮像する際の各種パラメータの組合せを事前に複数パターン保有しておき、それぞれのパターンをパラメータセット番号によって管理できるようにしたものである。例えば、ワークWの品種が3種類あり、それぞれに異なるパラメータで撮像とその後の処理を行いたい場合、パラメータセットを3個用意しておく。
パラメータセットを利用すると、ワークWの撮像を行う前に、次に撮像するワークWの品種に対応したパラメータセット番号を指定するだけで、一連の設定変更を短時間で完了させることができる。PCアプリケーション40から見た場合、パラメータセット番号を指定するFeatureは、後述するセレクタの一種と考えることができる。
PCアプリケーション40側から設定する対象を切り替えるセレクタと、動作時に撮像装置3が内部的に参照するパラメータを切り替えるレジスタは、独立させることも、同一にすることも可能である。設定できるパラメータセットの数の上限は、撮像装置3の内部に設けられた内部メモリのパラメータ保持空間に限定される。
パラメータセットの概念は、フィルター処理機能を保有した撮像装置3に展開することも可能である。たとえば、パラメータセットIndexが1の時は2値化フィルターを実行し、パラメータセットIndexが2の時は膨張フィルターを実行し、パラメータセットIndexが3の時はフィルターを非実行とするように、パラメータセットIndexに対応したパラメータを設定していたとする。このようにすることで、撮像と、フィルター処理として実行する内容を、パラメータセットIndexにより動的に切り替えることができる。
GenICam規格では、撮像パラメータを動的に切り替える機能をサポートしている。撮像装置3は、GenICam規格に則り、全ての設定パラメータをFeatureによってアクセスできるようにしている。撮像機能としては、照明装置2と撮像装置3とを同期させて複数パターンで撮像した画像を専用のアルゴリズムによって合成する機能(上述したデフレクトメトリの原理を利用した検査画像の生成)、波長が異なる光を照射して複数の画像を取得するマルチスペクトルイメージング機能など、複数の照明-撮像制御モードを有している。これらは、上記のパラメータセットごとに設定可能であり、条件に応じて動的に切り替えながら、撮像処理、フィルター処理、合成処理、画像出力を実行することが可能である。撮像機能によって生成される画像には、照明の点灯パターンを切り替えながら、イメージセンサで取得した画像そのものであってもよいし、上述した専用アルゴリズムによって合成された複数の画像が含まれていてもよい。
フィルター処理は、同一パラメータセット内に、複数のパターンを設定することが可能である。例えば、上述の撮像機能では、一連の撮像実行により、複数パターンの画像が生成されることになるが、そこで生成された異なる複数の画像に対して、個別にフィルター処理を施すことが可能である。また、別のパターンでは、同一の画像に対して、特定の領域の範囲(ROI:Region Of Interest)を設定した上で、それぞれの領域内部のみをフィルター処理することも可能である。特定の領域の範囲の設定は、たとえばキーボード6やマウス7の操作によって行うことができる。特定の領域は、1つであってもよいし、複数であってもよい。特定の領域の大きさは任意に設定することができる。
フィルター処理は、同一の画像に対して複数種類を多段階に繰り返し設定することができる多段階フィルターであってもよい。たとえば、ある画像に対して膨張フィルター処理を実行した後、その画像に対して2値化フィルター処理を実行することができる。フィルター処理は多段階フィルターに限られるものではなく、1つのフィルター処理であってもよい。
GenICam規格の撮像パラメータを動的に切り替える機能を利用し、図8に示すように複数のパラメータセットを1つのフローチャートにまとめることができる。撮像装置3の内部処理フローチャート上で、分岐ステップSB1から合流ステップSB2までの間のフローチャートを形成するユニット群をまとめてパラメータセットと呼ぶ。図8に示す例では、4つのパラメータセット、即ち、第1~第4パラメータセットを有している。つまり、使用者により設定された処理を実現するための複数のセレクタの値の組み合わせが複数パターン存在している。第1~第4パラメータセットのいずれを選択するかは、使用者が設定することができ、たとえば、パラメータセット番号1を選択すると第1パラメータセットが自動的に選択される。
図8に示すフローチャートのスタート後、分岐ステップSB1において第1~第4パラメータセットのいずれかのパラメータセットを構成する各ユニットを経た後、合流ステップSB2で合流し、エンドに進むことができる。パラメータセット番号1が選択されていると、分岐ステップSB1において分岐番号が1になり、第1パラメータセットの各処理を実行する。パラメータセット番号2が選択されていると、分岐ステップSB1において分岐番号が2になり、第2パラメータセットの各処理を実行する。パラメータセット番号3が選択されていると、分岐ステップSB1において分岐番号が3になり、第3パラメータセットの各処理を実行する。パラメータセット番号4が選択されていると、分岐ステップSB1において分岐番号が4になり、第4パラメータセットの各処理を実行する。パラメータセットの数は4つに限られるものではなく、任意に設定することができる。
パラメータセットの具体例を図9及び図10に示す。図9は、デフレクトメトリの原理を利用した検査用画像の生成を行う場合のパラメータセットである。ユニットUA1では、デフレクトメトリの原理を利用した検査用画像の生成を行うべく、1回のトリガ信号で複数の撮像処理を実行し、ユニットUA2では膨張フィルター処理を実行し、ユニットUA3では平均化フィルター処理を実行し、ユニットUA4では濃淡反転処理を実行する。つまり、ユニットUA1で撮像された撮像画像に対して、フィルター処理を含むパラメータセットで定義された多段階の処理が逐次的に実行される。その後、ユニットUA5では、多段階の処理が逐次的に実行された画像データをPCへ転送、即ち外部機器である設定装置4等へ出力する。尚、画像データを転送することなく、内部に保持しておいてもよい。パラメータセットによっては、多段階の処理を行わないように設定することもできる。設定装置4に転送された場合、図7に示すPCアプリケーション40の検査部4Aにおいて欠陥検査、良否判定を行うことができる。欠陥検査及び良否判定のアルゴリズムは従来から周知のものを使用することができる。
一方、図10は、マルチスペクトルイメージングにより検査用画像の生成を行う場合のパラメータセットである。ユニットUB1ではマルチスペクトルイメージングにより検査用画像の生成を行うべく、1回のトリガ信号で複数の撮像処理を実行し、ユニットUB2では、ある領域(領域0)に対して二値化フィルター処理を実行し、ユニットUB3では、領域0とは別の領域(領域1)に対して膨張フィルター処理を実行する。つまり、この例でも、ユニットUB1で撮像された撮像画像に対して、フィルター処理を含むパラメータセットで定義された多段階の処理が逐次的に実行される。その後、ユニットUB4では処理を非実行とする。ユニットUB5では図9に示す場合と同様に画像データをPCへ転送する。この例のように、パラメータセット内には処理を行わないユニット、即ち無効化されたユニットが存在していてもよく、有効化されたユニットと無効化されたユニットとが混在したパラメータセットであってもよい。
したがって、撮像装置3は、設定装置4で設定されたとおり、撮像した画像に対して多段階の処理を順序立てて実行することができるので、使用者は順序性のある手順を自由に設定することができ、複雑な画像処理を撮像装置3に行わせることができる。尚、露光時間のように順序性が無い設定も反映させることができる。
(ユニットの種類)
ユニットには複数の種類があり、たとえば、検査領域を決定するパターンサーチ処理を行うパターンサーチユニット、位置補正ユニット、内部で画像の位置補正や色抽出、フィルター処理などを行う画像演算ユニット、あるいは、これらの比較的単純な処理を行うユニットを複合させて高機能化させたものなどがある。各ユニットは、撮像装置3が撮像した撮像画像を外部に出力する前に、当該撮像画像に対して適用される処理を実行するためのユニットであり、図9や図10に示すように撮像画像に対して多段階の処理を行うように配置することができる。
パターンサーチユニットは、撮像装置3が撮像したワークWを含む画像のなかから、当該ワークWや、ワークWにおける検査対象部分をサーチし、撮像画像中のワークWの位置補正を行うためのユニットである。たとえば、画像検査システム1の設定時に、ワークWを撮像した画像上で、周知のエッジ検出手法によってエッジ検出を行い、検出したエッジにより特定される領域をワークW、またはワークWの検査対象部分のモデル(サーチ用モデル画像)として撮像装置3の記憶装置に記憶させておくことができる。エッジ検出処理自体は従来から周知の手法を用いることができ、例えば、輝度画像上の各画素の画素値を取得し、輝度画像上の画素値の変化がエッジ検出用のしきい値以上となる領域が存在する場合に、その境界部分がエッジであるとして抽出する。エッジ抽出の閾値は使用者が任意に調整することができる。
画像検査システム1の設定後、画像検査システム1の運用時には、順次搬送されてくるワークWを撮像して検査用画像を得て、パターンサーチユニットが、得られた検査用画像上でワークWまたはワークWの検査対象部分の有無を、上記記憶されているモデルに基づいてサーチ処理を行うとともに、サーチ処理によってワークWの位置と角度を計測する。ワークWの位置はX座標及びY座標で特定することができる。また、ワークWの角度は、撮像装置Wの光軸回りの角度とすることや、図1に示すZ軸周りの角度とすることができる。
位置補正ユニットは、撮像装置3が撮像したワークWを含む画像のなかから、当該ワークWや、ワークWにおける検査対象部分をパターンサーチユニットでサーチし、ワークWの位置と角度を計測した後に、画像中のワークWの位置補正を行うためのユニットである。画像検査システム1の運用時には、複数のワークWが常に同じ位置及び姿勢で搬送されてくるとは限らず、様々な位置にあるワークWや様々な姿勢のワークWが搬送されてくることがある。パターンサーチユニットでワークWの基準となる部分をサーチしてから位置補正ユニットで位置補正することができるので、ワークWの基準となる部分が、常に一定の位置となり、かつ、ワークWが所定の姿勢となるように、画像を回転させたり、画像を縦方向や横方向に移動させることにより、位置補正を行う。位置補正を行うための位置補正ツールは、たとえばパターンサーチ等、複数の種類のツールを用意しておくことができる。
画像演算ユニットは、複数の種類があり、たとえば、フィルター処理を行うユニット、撮像装置3で撮像された複数の画像を合成する合成処理を行うユニット、デフレクトメトリ処理を行うユニット、フォトメトリックステレオ法を利用して検査用画像を生成するユニット、マルチスペクトルイメージングを行うユニット等がある。フィルター処理の種類は複数あるので、フィルター処理を行うユニットは、たとえば二値化フィルター、膨張フィルター等、複数の種類設けることができる。デフレクトメトリ処理による検査画像の生成は、上述したように複数の処理を経るので、処理毎にユニットを設けてもよく、正反射成分画像を生成するユニット、拡散反射成分画像を生成するユニット、参照位相差分画像を生成するユニット等を設けることができる。
(前処理モジュール)
図11は前処理モジュールの例を示すものである。前処理モジュールは、パターンサーチユニットと位置補正ユニットとからなるグループと、画像演算ユニットとが合わさったものとすることができるが、これは一例であり、1つのグループのみからなる前処理モジュールであってもよいし、他の任意のユニットを組み合わせた前処理モジュールであってもよい。前処理モジュールには、番号が付されており、「前処理モジュール0」、「前処理モジュール1」等と区別することができる。
機能の拡張性を高めるために、前処理モジュールは複数追加することや設定することができ、それぞれは、たとえば「前処理モジュール0(PreprocessingModule0)」、「前処理モジュール1(PreprocessingModule1)」といったインデックスで識別される。
(セレクタ)
図8に示すフローチャートの任意の1つのパラメータセットには、複数の前処理モジュールを追加することが可能である。たとえば、パターンサーチ処理を実行するための設定パラメータや、フィルター処理を実行するための設定パラメータにより、任意の前処理モジュールを追加することができる。
しかし、それぞれの前処理モジュールに個別の設定レジスタを設けると、同じレジスタ(Feature)が繰り返し現れることになるので、冗長になってしまう。この実施形態では、セレクタを用いることで、編集対象(設定対象)を動的に切り替えることができるようにしている。セレクタで切り替えることができる設定対象としては、たとえば、パラメータセット(分岐番号)、前処理モジュール番号、多段フィルターの場合のフィルター段数(何段目のフィルターを設定しているか)等である。つまり、パラメータセット番号を指定するFeatureや、前処理モジュール番号を指定するFeature、フィルター段数を指定するFeatureは、セレクタの一種である。このセレクタの値は、当該セレクタの値が格納される場所を示すレジスタ情報と共に、DeviceXMLファイルに含まれている。したがって、撮像装置3が撮像した撮像画像を外部に出力する前に、当該撮像画像に対して適用される多段階の処理を設定するための設定項目に関連付けられた複数のセレクタと、各セレクタの値が格納される場所を示すレジスタ情報とがDeviceXMLファイルには含まれることになる。
(多段セレクタ)
図8に示すように、フローチャートはパラメータセットによって横方向に分岐し、それぞれのパラメータセットの内部では、たとえば前処理モジュールを複数追加することができるようになっている。さらに、1つの前処理モジュールの中では、複数段の前処理(フィルター処理等)を設定することができる。設定用ユーザーインターフェース50の設定項目が関連付けられているFeatureと、そのFeatureによって実際に編集されるパラメータの実体を保持する編集対象のユニットとの関係は、これらのセレクタを複数段階経ることで特定される。この実施形態においては、セレクタの役割としては、大きく分けて、パラメータセットの指定、フィルター処理の指定、多段フィルターの指定の3つがあり、パラメータセットの指定が最上位に位置し、パラメータセットの下にフィルター処理の指定、フィルター処理の指定の下に多段フィルターの指定が位置する関係になるが、これに限られるものではない。フィルター処理を指定するセレクタは、パラメータセットを切り替えれば、異なるパラメータセット(フローチャート)の内部を指すことになる。さらに多段フィルターの指定によって、フィルター処理の内部に多段階に設定される実際のフィルターの設定が特定される。このように複数のセレクタの値の組み合わせにより、そのFeatureが関連づけられるパラメータを保持するユニットを特定することができる。尚、パラメータセットを指定するセレクタを切り替えた場合、少なくともパラメータの設定対象は切り替わるが、実行対象まで切り替わるかどうかは実装に依存する。
たとえば、図12に示すフローチャートにおいて、2重線で囲まれたユニットUXを特定する場合には、最上位のパラメータセットのセレクタがパラメータセット番号3であること、前処理モジュールのセレクタIndexが1であることの2つの値が決まることで、ユニットUXを特定することができる。セレクタの値で決めることができるのは、たとえば、パターンサーチユニット、位置補正ユニット、画像演算ユニット(フィルター処理ユニットを含む)などである。そして、アクセスするFeature名称に基づいて、パターンサーチユニット、位置補正ユニット、画像演算ユニットのどのユニットに属するFeatureなのかをPCアプリケーション40側から特定することで、目的とするユニットUXの保持するパラメータに辿り着くことができる。
(設定装置4の構成)
図7に示すように、設定装置4は、使用者により設定された各設定項目の設定値と、DeviceXMLファイル31cに含まれる各設定項目に対応するレジスタ情報を示すデータを撮像装置3に送信し、当該撮像装置3の設定を行うための装置であり、これを実行するための制御部としての設定装置側プロセッサ4bを備えている。
図16に示すように、GenICam規格に対応したPCアプリケーション40は、カメラ31の各種設定を行うための設定用アプリケーション40aと、実際に計測処理、画像検査処理や欠陥検査処理等を制御する画像検査アプリケーション(計測アプリケーション)40bと含んでいる。設定装置4は、設定用アプリケーション40a及び画像検査アプリケーション40bを実行可能に構成されている。
また、設定装置4は、表示制御部4aも備えている。表示制御部4aは、設定用アプリケーション40a及び画像検査アプリケーション40bを実行し、各種ユーザーインターフェース等を生成する部分である。表示制御部4aは、設定用アプリケーション40aを実行することにより、たとえば図13に示す設定用ユーザーインターフェース50を生成することができるように構成されている。表示制御部4aは、生成した各種ユーザーインターフェースを表示部5に表示する。
設定用ユーザーインターフェース50には、編集対象を切り替えるための第1領域50aと、設定項目の表示及び変更を行うための第2領域50bと、編集対象である画像を表示する画像表示領域50cとが設けられている。第1領域50aには、編集対象となる画像を切り替えるための画像切替操作領域51が設けられている。画像切替操作領域51には、撮像装置3で撮像された画像の識別情報がリスト形式で表示される。画像の識別情報は、たとえば画像の名称や画像に付された番号等を挙げることができる。この例では、4つの画像の名称が縦方向に並ぶように表示されているが、表示される画像の数や並び方向は任意に設定することができる。使用者は、キーボード6やマウス7の操作により、画像切替操作領域51に表示されている画像の名称の中から任意の名称を選択することができる。名称が選択されると、表示制御部4aは選択された名称に対応する画像を画像表示領域50cに表示させる。画像表示領域50cに表示された画像は、変更することもできる。
第2領域50bには、設定項目としての位置補正設定を行うための位置補正設定領域52と、設定項目としてのフィルター処理設定を行うためのフィルター設定領域53とが設けられている。位置補正設定領域52には、位置補正設定に対応するFeatureとして、位置補正を有効にするか否かの選択を行う部分と、位置補正ツールの種別選択を行う部分とが割り当てられて表示される。位置補正ツールの種別選択は、位置補正を有効にすることで初めて設定可能になるので、位置補正を有効にするか否かの選択と、位置補正ツールの種別選択とは、依存関係にある。
フィルター設定領域53には、フィルター処理設定に対応するFeatureとして、選択されたフィルターの種類と、抽出サイズや抽出色といったフィルターの設定に関するパラメータを選択、調整する部分とが割り当てられて表示される。画像切替操作領域51で選択された1つの画像に対して複数種類のフィルター処理が行われる場合があり、その場合には、フィルター設定領域53が複数設けられ、各フィルター処理設定に対応するFeatureが割り当てられて表示される。
使用者による設定作業について説明する。使用者が画像切替操作領域51に表示されている画像の名称のうち、任意の1つを選択すると、選択された名称の画像が画像表示領域50cに表示される。この選択された画像を生成するためのパラメータが編集、設定可能なものについては、第2領域50bの表示が自動的に切り替わる。内部的には、例えば画像切替操作領域51で、ある前処理画像を選択した場合、その画像を生成するために使用する前処理モジュールに対応したインデックスの値に、設定対象を指定するセレクタの値が切り替わり、これにより、第2領域50bに表示する設定内容が画像に応じて切り替わる。設定対象を指定するセレクタの値が指定されると、その値に対応したセレクタが指し示す前処理モジュールの一つ又は複数のFeatureを読み取り、設定項目を反映した画像を生成して画像表示領域50cに表示し、位置補正設定領域52やフィルター設定領域53にそれぞれのパラメータに設定された値を表示する。位置補正設定領域52やフィルター設定領域53に表示された操作部分を使用者が操作すると、その操作が受け付けられて、設定対象を指定するセレクタの値に対応した前処理モジュールに該当するユニットの設定項目が変更される。
セレクタの値からアクセス対象のユニットを特定する方法は、以下の方法を使用することができる。すなわち、前処理モジュールは複数のユニットから構成されており、前処理モジュールのインデックスを切り替えるセレクタは、これらユニットで共通したものを使用することができ、前処理モジュールを構成する複数のユニットに対して、どのFeatureがどのユニットに属するかは、Feature名称によって一意に定まるように命名することが可能である。これにより、セレクタの値と、編集対象として選択されているFeatureの組合せからアクセス対象のユニットを特定することができる。
図14は、パラメータセット番号の選択によって設定用ユーザーインターフェース50の第2領域50bが切り替えられる場合を模式的に示した図であり、この図に示すようにユーザーインターフェースの表示を切り替えることができる。たとえば、図14の左側に示すようなパラメータセット番号選択部54を設定用ユーザーインターフェース50に設けておく。また、図14の右側に示すように、第1パラメータセットの設定用ユーザーインターフェース50Aと、第2パラメータセットの設定用ユーザーインターフェース50Bと、第3パラメータセットの設定用ユーザーインターフェース50Cと、第4パラメータセットの設定用ユーザーインターフェース50Dとがパラメータ番号と関連付けられた状態で存在している。パラメータセット番号選択部54でパラメータセット番号が切り替わると、表示制御部4aは、設定用ユーザーインターフェース50を、そのパラメータセット番号に合わせて再構築する。すなわち、使用者がパラメータセット番号3を選択すると、パラメータセット番号3の設定用ユーザーインターフェース50Cが生成されて表示部5に表示される。
図15は、パラメータセット番号の選択によってパラメータセットが切り替えられる内部的な仕組みを概念的に説明する図である。撮像装置3は、パラメータセットの切替を実行するパラメータセット切替部30dを有している。パラメータセット切替部30dには、使用者が選択したパラメータセット番号(ParameterSetIndex)が入力される。パラメータセット切替部30dは、入力されたパラメータセット番号に対応したパラメータセットを選択し、選択したパラメータセットを撮像素子3cに適用する。
したがって、設定装置4は、設定用ユーザーインターフェース50を表示部5に表示し、当該設定用ユーザーインターフェース50上で使用者による各種設定を受け付けることができる。撮像装置3が撮像した画像に対して多段階の処理を実行するように、使用者が設定すると、設定装置4は、その使用者により設定された多段階の処理を実現するための複数のセレクタの値の組み合わせを多段セレクタとして特定し、当該複数のセレクタの値と、当該複数のセレクタが格納される場所を示すレジスタ情報とを撮像装置3に送信することが可能に構成されている。そして、撮像装置3は、設定装置4から送信された複数のセレクタの値と、当該複数のセレクタが格納される場所を示すレジスタ情報とを受信し、複数のセレクタの値を対応するレジスタ情報が示す場所に格納するとともに、各セレクタの値の組み合わせにより特定される多段階の処理を逐次的に実行するように構成されている。
また、使用者が撮像装置3の設定項目に対して設定値の変更を行うと、使用者により設定された各設定項目の設定値と、DeviceXMLファイルに含まれる各設定項目に対応するレジスタ情報を示すデータが撮像装置3に送信されて、撮像装置3の設定を行うことができるので、標準化規格に適合した撮像装置3であれば設定装置4側から設定値を変更することができ、撮像装置3の機種選定の自由度が向上する。
また、セレクタの値の組合せによって、逐次的に実行される多段階の処理の一部を一意に特定することができるので、標準化規格に適合した撮像装置3で、例えば、フォトメトリックステレオやデフレクトメトリの原理を利用した検査画像の生成、マルチスペクトルイメージング、生成後の検査画像にフィルター処理を施すといった複数段階の処理が行えるようになる。
(仮想フローチャート及び仮想ユニット)
図8に示すようなフローチャートとは異なり、実際の運用環境では、横方向、あるいは縦方向に登場するユニットにセレクタの組合せだけで指定できるような規則性が無いことも多く、その状態では、フローチャート上のユニット構成が変わるたびに、カメラ3の内部でDeviceXMLを生成し直したり、PCソフト側もその都度DeviceXMLファイルを取得しなおす必要があって、使いづらいものになってしまう。
固定的なDeviceXMLファイルを用い、なるべく少ないFeature表現でフローチャートに対応する場合、そのフローチャートは、縦方向にある程度決められたパターンを持ち、それがパラメータセットの概念によって、横方向にコピーされた形が望ましい。例えば縦方向にフローチャートを拡張可能にする、つまり、設定可能なフィルター処理の数を増やしていった場合、設定可能なフィルター処理の数だけ、フローチャート全体が縦方向に拡大していくことになる。また、利用可能なパラメータセットの数を増やせば、その分だけフローチャートが横方向に拡大していくことになる。しかし実際の運用環境においては、全てのパラメータセットに対して、設定可能な上限までフィルター処理を使用するケースは想定しにくく、特に設定可能な数の上限が大きな値になっている場合には、大半のユニットが、たとえば図10に示すユニットUB4のように「非実行」の設定となることが予想される。
ところで、フローチャート上の各ユニットに対して、それらの実行に必要なパラメータ群や、内部データを保持するメモリ領域を確保する手法としては、事前に全ての機能に対応したパラメータ群や内部データを保持するためのメモリ領域を固定的に確保しておく方法がある。フローチャート上に設定可能なパラメータセットの数や、1つのパラメータセットの内部に設定可能なフィルター処理の数を増やすことで、撮像装置3の使用者はより柔軟なフローチャートを実現できるようになるが、それに応じて、事前に確保すべき、パラメータ群や内部データを保持するためのメモリ領域も増やす必要がある。上述の通り、実際の運用環境においては非実行の設定がなされ、使用されないユニットが大部分を占める状況は容易に想定されるため、搭載可能なメモリ容量に大きな制約のある、撮像装置3では不向きな手法である。
この実施形態では、上述した内部メモリ容量の問題を解決しながら、撮像装置3の使用者が実現可能なフローチャートの高い柔軟性を確保するために、仮想フローチャート及び仮想ユニットの概念を導入している。この実施形態では、使用される可能性のある全てのユニットが追加された状態のフローチャートである固定フローチャートは概念上存在するものの、仮想的なものに過ぎず、これを仮想フローチャートと呼ぶことにする。また、この仮想フローチャートを構成するユニットのことを仮想ユニットと呼ぶこととし、上記フローチャートを仮想的なものとして、全ての機能が仮想的に存在する概念上のものを指す。仮想フローチャートにおいて、それぞれの仮想ユニットは、固定的に配置されている。また、セレクタの組合せによって各Featureが関連づけられて各機能のパラメータが確定する。
複数の機能の中から、実際に使用するユニットを決定する際には、そのユニットを使用する・使用しないを選択するパラメータを変更する。すなわち、実際に動作するフローチャートには、仮想フローチャートとは異なり、各ユニットの使用する・使用しないを決定するFeatureの設定状態に応じて、使用するユニットだけが追加される。使用する設定がなされたユニットを実行するために必要なパラメータ群や内部データに対しては、動的に確保した内部メモリ領域が割り当てられる。したがって、使用する機能を有効にした時点で、初めて実際のユニットが内部のフローチャート上に配置されて実際のフローチャートが構成されることになる。撮像装置3において、設定装置4側から指定された各セレクタの値の組合せによって各Featureが関連づけられるパラメータの実体は、それらのセレクタの値の組合せとFeatureによって指定されるユニットに対して、前記の要領で動的に割り当てられたメモリ領域内に配置されている。これにより、設定装置4側からは撮像装置3の内部の状態、すなわち、内部メモリ容量やその中のどこにパラメータ群の実体が配置されているかなどを意識することなく、動的に確保されたメモリ領域上に置かれた実体に対して、セレクタの組合せと、固定的に定義されたFeatureによってアクセスすることができる。
つまり、撮像装置3は、複数のセレクタの値を対応するレジスタ情報が示す場所に格納するとともに、各セレクタの値の組み合わせにより実行する処理を特定し、特定された処理を実行するための設定パラメータ群と内部データを撮像装置3が有する内部メモリに動的に展開するように構成されている。これにより、設定者により有効化される可能性のあるユニットが全て事前に追加された、大きな固定フローチャートを撮像装置3の内部メモリに予め記憶させることなく、内部メモリの消費を必要な分だけに抑えながら、使用者の設定に応じて必要な機能のみを有するフローチャートを構成し、標準化規格に適合した撮像装置3で、例えば、フォトメトリックステレオやデフレクトメトリの原理を利用した検査画像の生成や、生成後の検査画像にフィルター処理を施すといった複数の処理が行えるようになる。
また、使用者により設定された処理を実現するための複数のセレクタの値の組み合わせが複数パターン存在しているので、設定装置4は、撮像装置3に対して、複数パターンのセレクタの値の組み合わせを送信することができる。撮像装置3は、設定装置4から送信された複数パターンのセレクタの値の組み合わせを受信し、複数パターンのセレクタの値の組み合わせの中から使用者によって選択された任意の一のパターンのセレクタの値の組み合わせにより実行する処理を特定し、特定された処理を実行するための設定パラメータを撮像装置3の内部メモリに動的に展開するように構成されている。
DeviceXMLファイルのセレクタを含むFeatureが差し示すものは、あくまで仮想フローチャート上の仮想ユニットの設定項目である。複数の仮想ユニットのそれぞれに対して、使用する場合にだけ撮像装置3の内部メモリ領域を割り当てるようにすることで、内部メモリ領域の制約の問題を解決できるとともに、フローチャートの高い柔軟性、即ち設定者が撮像装置3によって実現可能な機能の柔軟な拡張性を実現することができる。
画像検査アプリケーション40の内部では、セレクタの組合せとFeatureの種類によってアクセス可能なユニットが決定され、実際に内部メモリ領域が割り当てられたユニットとFeatureとの関連付けを自動的に行う。これにより、使用者は、実際に内部で生成される仮想フローチャートの形状や仮想ユニットの配置を意識することなく、アクセスすることができる。
また、例えば位置補正用に使用する検査ツールは、パターンサーチなどを選択することができるが、これも設定者が使用することを選択し、かつ、位置補正用に使用するものとして指定した検査ツールを実行するために必要なパラメータ群や内部データだけを動的に確保するので、選択可能な全ての位置補正用の検査ツールに対して事前に内部メモリ領域を確保しておく必要はない。
(設定用エディタ)
図7に示す表示制御部4aは、設定用アプリケーション40aを実行し、図17に示す設定用エディタ60Aを表示部5に表示させることも可能に構成されている。設定用エディタ60Aは、設定用ユーザーインターフェース60を含んでおり、使用者が設定開始操作を行うことにより、設定用ユーザーインターフェース60が生成されて表示される。設定開始操作は、例えば操作ボタン等による操作を挙げることができる。
設定用ユーザーインターフェース60には、画像表示領域60aと、画像選択領域60bと、画像設定領域60cとが設けられている。画像表示領域60aには、撮像装置3で撮像された画像(図17に示す)や、撮像装置3で撮像された画像に各種フィルター処理を施した画像(図18及び図19に示す)が表示される。画像選択領域60bは、編集対象の画像を切り替えるための領域であり、撮像装置3で撮像された画像(フィルター処理未実行の画像)、第1のフィルター処理が施された画像、第2のフィルター処理が施された画像等の中から使用者が任意の画像を選択することができるようになっている。画像設定領域60cは、撮像装置3の露光時間やゲイン、ホワイトバランス等の複数の設定項目を使用者が個別に調整・設定するための領域である。画像設定領域60cでは、トリガ設定や照明設定等を行うこともできる。
(トレースログ)
運用時に、設定装置4から撮像装置3を動作させたときに想定通りに動作しないことがあり、その原因を探るためには、撮像装置3の内部動作を把握する必要がある。撮像装置3の内部動作の情報としては、例えば、端子入力を受け付けたか、端子出力を出しているか、露光したか、フィルター処理が実行されたか、画像出力が実行されたか、それらのタイミングはどうなっているか等がある。これらはイベント情報であり、このイベント情報を解析することはログ解析と呼ばれている。画像計測システム1は、使用者がログ解析を行うための機能を搭載しており、イベント情報を設定装置4ではなく、撮像装置3に保存するように構成されている。この機能は、設定装置4側からFeatureを操作することによって実現されるようになっている。
すなわち、図7に示す表示制御部4aは、設定用アプリケーション40aを実行し、図20に示すトレースログ画面61を表示部5に表示させることも可能に構成されている。トレースログ画面61は、設定用エディタ60Aの一部であり、例えば図17に示す設定用ユーザーインターフェース60上で、トレースログ画面61を開くための所定の操作を行うことで、トレースログ画面61を表示部5に表示させることができる。
トレースログ画面61には、ログ情報表示領域61a、収集開始ボタン61b、収集終了ボタン61c、ログデータ取得ボタン61d、ログデータ読込ボタン61e、ログデータ保存ボタン61fが設けられている。ログ情報表示領域61aには、所定期間のイベント情報、即ちログが表示されるようになっており、例えば、複数の撮像装置1が接続されている場合にはどの撮像装置3が撮像したか、どの撮像装置3の画像が転送されたか、どのフィルター処理が施されたかを示す情報をタイミングチャートの形式で表示することができる。ログ情報表示領域61aの横方向が時間の経過方向であり、この例では左側が始点側となっている。ログ種別は、ログ情報表示領域61aの上下方向に並んで表示されるようになっている。
図21は、ログ情報表示領域61aに表示可能なログの一例を示す図である。この例では、4つの撮像装置3が設定装置4に接続されている場合を示している。ユニットによる画像生成と、画像転送のタイミング、画像取得要求(Acquisition)、トリガ入力の有無、トリガ入力のタイミング等によりログが構成されているが、これら以外の情報をログが含んでいてもよく、ログを構成する情報の種類や数は問わない。
収集開始ボタン61bは、使用者が撮像装置3にイベント情報の収集開始を要求する際に操作するボタンである。収集開始ボタン61bの操作がなされたか否かは、イベント情報の収集開始操作がなされたか否かに相当しており、設定装置側プロセッサ4bは、収集開始ボタン61bの操作状態を検出することで、イベント情報の収集開始操作がなされたか否かを検出することができる。
また、収集終了ボタン61cは、使用者が撮像装置3にイベント情報の収集終了を要求する際に操作するボタンである。収集終了ボタン61cの操作がなされたか否かは、イベント情報の収集終了操作がなされたか否かに相当しており、設定装置側プロセッサ4bは、収集終了ボタン61cの操作状態を検出することで、イベント情報の収集終了操作がなされたか否かを検出することができる。
図16に矢印201で示すように、設定装置側プロセッサ4bは、収集開始ボタン61bが押されたこと、即ちイベント情報の収集開始操作がなされたことを検出すると、撮像装置3のレジスタの値を書き換えて撮像装置3にイベント情報の収集開始を要求する。また、設定装置側プロセッサ4bは、収集終了ボタン61cが押されたこと、即ちイベント情報の収集終了操作がなされたことを検出すると、撮像装置3のレジスタの値を書き換えて撮像装置3にイベント情報の収集終了を要求する。つまり、設定装置側プロセッサ4bは、表示部5に表示された設定用エディタ60Aの一部であるトレースログ画面61を用いて撮像装置3のレジスタの値を書き換えることができ、これにより、撮像装置3にイベント情報の収集を開始させたり、イベント情報の収集を終了させることができる。
撮像装置3の撮像装置側プロセッサ33は、設定装置4の画像検査アプリケーション40bと接続して計測処理を実行する処理と、設定装置4からのイベント情報の収集開始要求を受け取り、イベント情報の収集を開始する開始処理と、設定装置4からのイベント情報の収集終了要求を受け取り、イベント情報の収集を終了する終了処理とを実行するように構成されている。
具体的には、図16に矢印202で示すように、運用時には、撮像装置側プロセッサ33は、設定装置4の画像検査アプリケーション40bと接続して計測処理を実行する。一方、設定装置側プロセッサ4bが収集開始ボタン61bの操作を検出してイベント情報の収集開始を撮像装置3に要求すると、撮像装置側プロセッサ33がそのイベント情報の収集開始要求を受け取る。イベント情報の収集開始要求を受け取った撮像装置側プロセッサ33は、ログ収集部33aにてイベント情報の収集を開始する。撮像装置側プロセッサ33は、ログ収集部33aで収集されたイベント情報をログとしてログ記憶部33bに保存する。ログ収集部33a及びログ記憶部33bは、共に撮像装置3に設けられている。ログ記憶部33bは、例えばカード型の記憶媒体で構成することができ、撮像装置3に対して着脱可能になっている。
また、設定装置側プロセッサ4bが収集終了ボタン61cの操作を検出してイベント情報の収集終了を撮像装置3に要求すると、撮像装置側プロセッサ33がそのイベント情報の収集終了要求を受け取る。イベント情報の収集終了要求を受け取った撮像装置側プロセッサ33は、ログ収集部33aによるイベント情報の収集を終了する。
図20に示すログデータ取得ボタン61dは、使用者が撮像装置3にログの取得を要求する際に操作するボタンである。ログデータ取得ボタン61dの操作がなされたか否かは、ログの取得操作がなされたか否かに相当しており、設定装置側プロセッサ4bは、ログデータ取得ボタン61dの操作状態を検出することで、ログの取得操作がなされたか否かを検出することができる。
図16に矢印203で示すように、設定装置側プロセッサ4bは、ログデータ取得ボタン61dが押されたこと、即ちログの取得操作がなされたことを検出すると、撮像装置3のログ記憶部33bに保存されたログの設定装置4への送信を要求する。つまり、設定装置側プロセッサ4bは、表示部5に表示された設定用エディタ60Aの一部であるトレースログ画面61を用いてログの取得操作がなされたか否かを検出することができ、ログの取得操作がなされた場合には、撮像装置側プロセッサ33が、ログ記憶部33bに保存されたログを設定装置4に送信する。
図20に示すログデータ読込ボタン61eは、設定装置4に送信されたログをログ情報表示領域61aに表示させる際に操作するボタンである。設定装置側プロセッサ4bは、ログデータ読込ボタン61eが押されたことを検出すると、設定装置4に送信されたログをログ情報表示領域61aに表示させる。
図20に示すログデータ保存ボタン61fは、設定装置4に送信されたログを保存する際に操作するボタンである。設定装置側プロセッサ4bは、ログデータ保存ボタン61fが押されたことを検出すると、設定装置4に送信されたログを当該設定装置4に保存する。
トレースログ画面61のログ情報表示領域61aには、カーソルAとカーソルBとが表示可能になっている。図に示す例では、カーソルA及びカーソルBがトレースログ画面61の上下方向に延びる直線であり、カーソルAとカーソルBを個別に左右方向に移動させることができる。カーソルAとカーソルBを左右方向に移動させる際には、移動させたいカーソルを選択して例えばドラッグ操作すればよい。トレースログ画面61には、カーソルA及びカーソルB間の時間(ms)を表示する時間表示領域61gが設けられている。これにより、使用者は任意の区間の時間を把握することができる。
次に、図22に示すフローチャートに基づいてトレースログの手順について説明する。この実施形態では、運用時に、撮像装置3が画像検査アプリケーション40bと接続して計測処理を実行し、何らかの問題が発生すると、当該画像検査アプリケーション40bと撮像装置3との接続を切断した後に、撮像装置3が設定用アプリケーション40aと接続し、設定用エディタ60Aからの要求に応じて、ログ記憶部33bに保存されたログを設定装置4に送信するように動作する。
図22に示すフローチャートのスタート後のステップSB1では、図16に示す矢印200で示すように、設定用アプリケーション40aを実行して設定用エディタ60Aを撮像装置3に接続する。これは、使用者による設定開始操作が行われたことを設定装置4が検出することによって実行することができる。
図22に示すフローチャートのステップSB2は、ログの収集開始要求ステップである。設定装置側プロセッサ4bが、収集開始ボタン61bが押されたことを検出するとステップSB2が実行される。ログの収集開始要求は、図16の矢印201で示すようにログ収集部33aに対して送信される。ステップSB2を経るとログ収集部33aがログの収集を開始する。
図22に示すフローチャートのステップSB3は、設定用エディタ60Aを撮像装置3から切断するステップである。このステップは、ログの収集開始要求がログ収集部33aで受信されたタイミング以降に行うことができる。設定用エディタ60Aを撮像装置3から切断する信号は、図16の矢印200で示すように撮像装置3に対して送信される。これにより、設定用エディタ60Aと撮像装置3とが切り離された状態になる。
図22に示すフローチャートのステップSB4は、画像検査アプリケーション40bを撮像装置3に接続する。これは、使用者による運用開始操作が行われたことを設定装置4が検出することによって実行することができる。運用開始操作の検出は、例えば運転開始ボタンの操作を検出することによって可能である。画像検査アプリケーション40bを撮像装置3に接続する信号は、図16の矢印202で示すように撮像装置3に対して送信される。これにより、画像計測システム1が運用可能な状態になる。
図22に示すフローチャートのステップSB5は画像計測システム1の運用開始ステップである。このステップSB5は、例えば外部からの検査開始トリガ信号等を受信することで実行される。ステップSB5を経ることで、撮像装置側プロセッサ33は、ワークWを撮像した画像に基づいて計測処理等を実行する。画像計測システム1の運用中に特に問題が発生しなければ、使用者が任意のタイミングで画像計測システム1を停止させるまで、運用状態が継続される。
一方、図22に示すフローチャートのステップSB6に示すように、画像計測システム1の運用中に問題が発生した場合には、ステップSB7において画像検査アプリケーション40bを撮像装置3から切断する。画像検査アプリケーション40bを撮像装置3から切断する信号は、図16の矢印202で示すように撮像装置3に対して送信される。これにより、画像検査アプリケーション40bと撮像装置3とが切り離された状態になる。ステップSB7は、例えば使用者による計測停止ボタンの操作等によって実行することができる。
図22に示すフローチャートのステップSB8は、図16に示す矢印200で示すように、設定用アプリケーション40aを実行して設定用エディタ60Aを撮像装置3に接続する。ステップSB8は、ステップSB7の完了後に自動的に実行することができる。
図22に示すフローチャートのステップSB9は、ログの収集終了要求ステップである。設定装置側プロセッサ4bが、収集終了ボタン61cが押されたことを検出するとステップSB9が実行される。ログの収集終了要求は、図16の矢印201で示すようにログ収集部33aに対して送信される。ステップSB9を経るとログ収集部33aがログの収集を終了する。
ログ収集部33aがログの収集を終了すると、ステップSB10に進み、ログ収集部33aが収集したログをログ記憶部33bに保存する。この段階では、ログ記憶部33bに記憶されたログは設定装置4には送信されない。
ステップSB11は、ログの取得要求ステップである。設定装置側プロセッサ4bが、ログデータ取得ボタン61dが押されたことを検出するとステップSB11が実行される。ログの取得要求は、図16の矢印203で示すようにログ記憶部33bに対して送信され、ログ記憶部33bに記憶されたログが設定装置4に送信される。その後、ステップSB12では、設定装置4がログを取得する。
設定装置4がログを取得した後、ステップSB13では取得したログをトレースログ画面61のログ情報表示領域61aに表示させる。このステップSB13は、ログデータ読込ボタン61eが押されたことを、設定装置側プロセッサ4bが検出すると実行される。これにより、使用者がログを見ながらログ解析を行うことができ、問題の対策を検討することができる。
(変形例)
図23及び図24は、実施形態の変形例に係るものである。図23に示すように、撮像装置3は、設定用アプリケーション40aに接続され、ログ記憶部33bに保存されたログの出力が可能な専用ポート33cを備えている。設定装置4からのイベント情報の収集開始及び終了と、ログの取得は、専用ポート33cを介して撮像装置3に要求されるようになっている。専用ポート33cは、論理的なポートで構成されている。
変形例の場合、撮像装置側プロセッサ33は、設定用エディタ60Aからの要求に応じて、ログ記憶部33bに保存されたログを専用ポート33cから設定装置4に送信することができるので、設定用エディタ60Aを撮像装置3から切断するステップを不要にすることができる。
この変形例に係るトレースログの手順について図24に示すフローチャートに基づいて説明する。スタート後のステップSC1では、図23に示す矢印301で示すように、設定用アプリケーション40aを実行し、設定用エディタ60Aを、専用ポート33cを介して撮像装置3に接続する。これは、使用者による設定開始操作が行われたことを設定装置4が検出することによって実行することができる。
また、ステップSC2では、図22に示すフローチャートのステップSB4と同様に、画像検査アプリケーション40bを撮像装置3に接続する。画像検査アプリケーション40bを撮像装置3に接続する信号は、図23に示す矢印300で示すように撮像装置3に対して送信される。ステップSC1とステップSC2とは並行して行ってもよいし、一方を他方よりも早いタイミングで行ってもよい。ステップSC2に続くステップSC3では、図22に示すフローチャートのステップSB5と同様には画像計測システム1の運用を開始する。
一方、ステップSC1に続くステップSC4では、図22に示すフローチャートのステップSB2と同様にログの収集開始を要求する。ログの収集開始要求は、図23に矢印301で示すように専用ポート33cを介して撮像装置3に送信される。ステップSC4はステップSC3の後に実行される。ステップSC5は、設定用エディタ60Aを撮像装置3から切断するステップであるが、このステップは上述したように省略してもよい。
ステップSC6は、図22に示すフローチャートのステップSB6と同じである。ステップSC7では、設定用エディタ60Aを、専用ポート33cを介して撮像装置3に接続する。上記ステップSC5を省略した場合は、ステップSC7も省略する。
ステップSC8はログの収集終了要求ステップであり、ログの収集終了要求は専用ポート33cを介して撮像装置3に送信される。ステップSC9は、図22に示すフローチャートのステップSB10と同じである。ステップSC10はログの取得要求ステップであり、ログの取得要求は専用ポート33cを介して撮像装置3に送信される。
ステップSC11はログの取得要求ステップであり、ログ記憶部33bに記憶されたログが専用ポート33cを介して設定装置4に送信される。このとき、画像検査アプリケーション40bと撮像装置3との接続は維持されている。ステップSC12は、図22に示すフローチャートのステップSB13と同じである。
(実施形態の作用効果)
以上説明したように、この実施形態に係る画像計測システム1によれば、設定装置4の表示制御部4aが設定用アプリケーション40aを実行して設定用エディタ60Aを表示部5に表示させ、使用者が、その表示部5に表示されている設定用エディタ60Aにてログの収集開始または終了を指示すると、設定装置側プロセッサ4bは、設定用エディタ60Aを用いて撮像装置3のレジスタの値を書き換える。これにより、撮像装置3にイベント情報の収集開始及び終了を要求することが可能になる。
撮像装置3は、設定装置4からイベント情報の収集開始要求を受け取ると、計測処理を実行しながらイベント情報を収集し、収集されたイベント情報はログとしてログ記憶部33bに保存される。イベント情報は撮像装置3が記憶するので、設定装置4側への負担は殆どない。撮像装置3は、設定装置4からイベント情報の収集終了要求を受け取ると、イベント情報の収集を終了する。
撮像装置側プロセッサ33は、画像検査アプリケーション40bとの接続を切断した後に設定用アプリケーション40aと接続し、設定用エディタ60Aからの要求に応じて、ログ記憶部33bに記憶されたログを設定装置4に送信する。これにより、設定装置4側への負担を最小限に抑えながら、システムの運用中のログを収集して設定装置4側で確認することができる。
また、ログ記憶部33bに記憶されたログを出力する専用ポート33cを備えている場合は、画像検査アプリケーション40bと撮像装置3との接続状態を維持しながら、ログを設定装置4に送信して設定装置4側で確認することができる。
上述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。