以下、添付図面を参照して、本発明の一形態に係る撮像システムを検査装置に適用した一形態を説明する。図1に示すように、検査装置1は、搬送装置2により搬送経路CPに沿って搬送される対象物3をカメラ4にて撮影し、得られた画像に対応する画像信号を画像処理基板5に取り込んで所定の画像処理を実施し、処理後の画像をPC(Personal Computer)6に取り込んで対象物3の欠陥等の有無を検査する。検査の対象物3は、一例として、プラスチック製のボトルを成形するためのプリフォームである。搬送装置2は、一例として、ホイール7の外周に多数の対象物3を一定間隔で保持しつつ、ホイール7をその中心軸線CLの回りに旋回駆動して対象物3を搬送する旋回搬送式の搬送装置である。ただし、搬送装置2はベルトコンベア等を用いて対象物3を直線的に搬送するように構成されてもよい。搬送装置2は、さらに、各対象物3をその軸線の回りに自転させるスピン装置(不図示)を含む。スピン装置は、例えばベルト、ローラ等を対象物3に接触させて回転運動を対象物3に伝達する公知の装置でよい。対象物3としてのプリフォームは、一例としてその開口部が上方に向けられた正立状態で搬送されるが、上下に反転した状態で搬送されてもよい。対象物3はプリフォームに限らず、ボトル、壜等の容器であってもよいし、容器以外の物品が対象物3とされてもよい。
カメラ4及び画像処理基板5は、カメラリンク規格に準拠した構成を備えている。カメラリンク規格は、産業用カメラから出力される画像信号(又は映像信号)を伝送するためのデジタルインターフェース規格の一つとして、米国の標準化団体であるAIA(Automated Imaging Association)により策定された規格である。カメラリンク規格は、生産ライン等に組み込まれる産業用カメラの制御に関して標準的に利用されている。なお、ここでいうカメラリンク規格は、PoCL(Power Over Camera Link)規格、あるいはPoCL-Lite規格といったその派生型、あるいは発展型の規格を含む概念である。画像処理基板5は、フレームグラバと称される画像処理用の制御基板である。画像処理基板5はPC6と別に設けられ、イーサネット(登録商標)等の適宜の接続手段を介してPC6に接続される。ただし、画像処理基板5は、PC6の拡張スロットに装着されてPC6の内部バスに接続されてもよい。
検査装置1には、位置検出手段の一例としての位置検出装置8が設けられている。位置検出装置8は、一例として、搬送装置2の動作を位置センサ8aにて検出し、位置センサ8aの検出信号に基づいて位置検出基板8bが対象物3の位置に相関した位置検出信号を出力するように設けられてよい。位置検出信号は、対象物3の位置の判別に利用可能な信号であればよい。位置センサ8aとしては、例えばロータリーエンコーダ等の周知の回転角検出センサが用いられてよい。対象物3を検出してその移動量に応じた信号を出力するセンサが用いられてもよい。位置検出基板8bは、例えば、ホイール7が単位角度回転するごとに所定の位置信号を出力するように構成されてよい。位置検出基板8bが出力する位置検出信号は画像処理基板5に入力される。ただし、PC6を介して画像処理基板5に位置検出信号が入力されてもよい。
図2は、カメラ4の撮影範囲と対象物3との関係を示している。撮影範囲は、カメラ4が撮影可能な範囲であって、カメラ4の視野範囲と同義である。カメラ4の撮影範囲Apは、搬送装置2による搬送経路の所定区間を移動する対象物3を継続して捉えることができるように設定される。一方、カメラ4は、撮影範囲Ap内の一部に設定された検査領域Riの画像に対応する画像信号を出力するように制御される。例えば、カメラ4のパーシャルスキャン機能により、撮影範囲Ap内の画像のうち、検査領域Riを含む部分的なスキャン範囲Asの画像に対応した画像信号がカメラ4から出力される。対象物3は撮影範囲Apを搬送方向(矢印F方向)に移動する。ただし、搬送方向は図2の矢印F方向に対して逆方向に設定される場合もある。検査領域Riは、対象物3の移動に追従するように撮影タイミングに合わせてその位置が対象物3の移動方向、つまり図2のX軸方向に変更される。つまり、毎回の撮影タイミングにおいて検査領域Riが、対象物3の検査対象の範囲に重なるように検査領域Riの位置が撮影タイミングごとに変更される。加えて、撮影タイミング、及びこれに対応する検査領域Riの位置は、隣接する撮影タイミング間において検査領域Ri間に隙間が生じないように設定される。一例として、図2に示すように、一つの撮影タイミングに対応する検査領域Riに対して、次の撮影タイミングに対応する検査領域Riが部分的に重なり合うように、撮影タイミングと検査領域Riの位置とが設定される。ただし、対象物3の全周を検査することが可能であれば、画面上で検査領域Riごとの画像に隙間があっても差し支えない。このようにして、検査領域Riの位置が変更されつつ自転中の対象物3が繰り返し撮影されることにより、撮影範囲Apを通過する対象物3の全周の画像が取得される。
なお、図2に示した検査領域Riは、対象物3の検査対象位置に応じて適宜の大きさに設定されてよい。以下では、対象物3の移動方向をX軸方向とし、撮影範囲Ap内でX軸と直交する方向をY軸として画像の方向を定義する。また、図2に想像線で示したように、カメラ4による画像のスキャン範囲Asは、検査領域Riの外側に幾らかの余裕を加えた範囲であってもよいし、検査領域Riと一致してもよい。つまり、カメラ4から出力される画像信号は、検査領域Riと同一範囲に限定することを必須とせず、検査領域Riを包含する限りにおいて、検査領域Riより大きなスキャン範囲Asの画像に対応する画像信号がカメラ4から出力されてもよい。
次に、図3を参照して検査装置1における制御系の構成の一例を説明する。なお、図3では、対象物3の搬送経路CPを直線的に描いているが、上述したように搬送経路CPは円弧状であってもよいし、直線的であってもよい。
図3に示すように、カメラ4には、撮像部10と制御部11とが設けられている。撮像部10は、カメラ4の光学系によって捉えられた光学像を電子的な画像に変換するCCD、CMOS等の撮像素子を含み、制御部11から指定された範囲の画像信号を出力する。制御部11は撮像部10の動作を制御する。制御部11には、カメラ4の各種の動作を制御するための制御回路としてCPU12及びFPGA(Field Programmable Gate Array)13が設けられている。CPU12は、カメラ4の全般の動作を制御するための制御ユニットであって、検査領域Riに対応する画像信号の読み出し、読み出された画像信号の画像処理基板5への出力といった処理を担当する。
FPGA13は、画像処理基板5から伝送される制御信号をユーザロジックULcに従って処理することにより、撮影動作の制御に必要な情報をCPU12に提供する。ユーザロジックULcは、FPGA13に所定の処理を実行させるためのコンピュータプログラムであって、ユーザにより適宜に書き換え可能である。一例として、FPGA13は、撮像部10による撮影タイミング、及び撮影タイミングに対応した検査領域Riの位置を撮像部10に指示する。検査領域Riの位置は、例えば図2の検査領域Riを規定する頂点P1~P4のX軸座標及びY軸座標によって指定される。それらの座標値は、例えばFPGA13のレジスタにカメラ4の制御パラメータ群の一部として保持され、撮影タイミングに応じて更新される。撮像部10は、FPGA13から指示された撮影タイミング及び検査領域Riの位置に従って画像信号を読み出し、CPU12に出力する。
FPGA13には、一つの対象物3に対する検査領域Riの初期位置及び終了位置も制御パラメータ群の一部として予め与えられる。例えば、図2の初期位置Ps及び終了位置Peを示す情報も与えられる。検査開始時点での最初の初期位置及び終了位置はCPU12のレジスタに予め与えられており、FPGA13の検査開始後の初期位置及び終了位置は検査領域Riが移動を開始した後に、必要に応じて参照される。ただし、対象物3の搬送方向が逆方向の場合もあるため、図2の終了位置Peから初期位置Psに向かって検査領域Riが移動することもある。以下では、図2の初期位置Psをスタートポジション1と、終了位置Peをスタートポジション2と称することがある。スタートポジション1、2間における検査領域Riの移動範囲を検査範囲Aiと称する。
FPGA13が保持する制御パラメータ群の値は、後述する調整モードにおいてPC6から画像処理基板5を介して制御部11に与えられる。カメラ4からの画像のスキャン範囲Asを検査領域Riよりも大きく設定する場合には、位置P1~P4の座標値として、画像のスキャン範囲Asの頂点座標が設定されてもよい。あるいは、検査領域Riの頂点座標P1~P4をレジスタに保持し、カメラ4による画像の読み出し時にそれらの位置P1~P4を補正して検査領域Riよりも大きなスキャン範囲Asの画像に対応した画像信号をカメラ4から出力させてもよい。
画像処理基板5は、カメラ4と同様にCPU21及びFPGA22を含んでいる。CPU12は、カメラ4から出力される画像信号の取り込みといった画像処理に関連する主たる処理を担当する。FPGA22は、カメラ4を制御するための複数種類のカメラ制御信号をユーザロジックULfに従って生成し、それらのカメラ制御信号をカメラ4側に送信する。ユーザロジックULfは、FPGA22に所定の処理を実行させるためのコンピュータプログラムであって、ユーザにより適宜に書き換え可能である。FPGA22が出力するカメラ制御信号は予め定められており、その余のカメラ4の制御に必要な信号の伝送はCPU21の処理に委ねられる。
カメラ4のCPU12及びFPGA13と、画像処理基板5のCPU21及びFPGA22とは、カメラリンク規格に従って接続される。すなわち、CPU12、21は映像信号線VLを介して接続され、FPGA13、22は4組のカメラ制御線CC1~CC4を介して接続される。カメラ制御線CC1~CC4を介して伝送されるカメラ制御信号の詳細は後述する。さらに、画像処理基板5には位置検出基板8bの出力信号も入力される。
PC6は、CPUと、その動作に必要なキャッシュメモリ、ROM及びRAM等の内部記憶装置といった周辺装置とを含んだ制御ユニット31を含んでいる。PC6には、キーボード、ポインティングデバイスといった入力装置32、表示装置33及び外部記憶装置34がさらに接続される。外部記憶装置34には、対象物3の検査やカメラ4の制御に必要な各種の演算処理及び動作制御を制御ユニット31に実行させるためのコンピュータプログラムとしての検査プログラムPGiが保存されている。検査プログラムPGiは、PC6のオペレーティングシステム上で動作するアプリケーションプログラムである。制御ユニット31が検査プログラムPGiを実行することにより、制御ユニット31には検査部36及び調整部37が設けられる。検査部36及び調整部37は、PC6のハードウエアとソフトウエアとが協働して実現される論理的装置である。検査部36は、画像処理基板5にて処理された画像を取り込み、所定のアルゴリズムに従って対象物3の欠陥等を検出する検査処理を実行する。検査処理のアルゴリズムとしては、対象物3及びその検査対象項目に応じて、既存のアルゴリズムが適宜に用いられてよい。
調整部37は、カメラ4及び画像処理基板5のそれぞれに対して所定の調整処理を担当する。調整処理は、例えば、検査に必要な画像を撮像するために必要な各種の制御パラメータ群を設定する処理を含む。検査部36による処理と、調整部37による処理とは、PC6のユーザからの指示に従って択一的に選択される。カメラ4及び画像処理基板5は、検査部36による処理が選択された場合に検査モードで動作し、調整部37による処理が選択された場合には調整モードで動作する。
次に、検査モード及び調整モードにおける処理の一例について順次説明する。なお、以下では、図2に示したスキャン範囲Asに対応する画像信号が画像処理基板5に取り込まれる場合を例として説明する。図4は、検査モード及び調整モードにおいて表示装置33に表示される検査画面の一例を示している。図示の検査画面100は、対象物3の品種、検査設定(例えば搬送速度等の検査条件の設定)、カメラ設定等の設定情報を表示する情報部101と、画像処理基板5を介して取り込まれる画像が表示される画像表示部102と、検査モードにおける画像処理基板5の制御内容、あるいは画像表示部102における画像の表示態様等を設定するための設定部103とを含んでいる。情報部101には、現行の設定を保存するための保存ボタン104も表示される。設定部103には、画像表示部102における表示内容を指示するための設定項目として、上から順に「表示保持」、「自動解除」、「手動解除」、「一括解除」、「検査領域」、「演算信号」、「再演算」、「内部同期」、「明度」及び「彩度」が用意されている。以下では、これらの設定項目が選択された状態をオン、未選択の状態をオフと呼ぶ。ただし、図4に示した設定項目は一例である。
画像表示部102に表示される画像の一例を図5に示す。図5の例では、図2に示した撮影範囲Apを時計方向に90°回転させた状態でスキャン範囲Asの画像110が表示される。図5のX軸方向及びY軸方向は図2の軸方向に対応する。ただし、画像表示部102の画像110は、図2と同様に搬送方向を水平方向と一致させるようにして表示されてもよい。図5にて想像線で示した対象物3は、検査領域Riとの関係を示すための参考として描かれており、画像表示部102に表示されるものではない。画像110は、新たな画像信号が画像処理基板5に取り込まれるごとに逐次更新される。
図4の設定部103にて「表示保持」がオンの場合、画像表示部102の下部には、適宜の撮影タイミングにおけるスキャン範囲Asの画像111が表示される。例えば、欠陥等の異常が検出された場合の画像111が表示される。設定部103における「自動解除」、「手動解除」又は「一括解除」がオンの場合、画像表示部102の表示が所定の初期状態に戻される。初期状態は、例えば検査中の画像110のみが表示される状態として設定されてもよいし、画像111が一定時間に限って表示される状態であってもよい。
設定部103にて「検査領域」がオンの場合には、図5に一点鎖線で示したように、画像110及び画像111に検査領域Riを示す枠線が表示される。「演算信号」がオンの場合には、検査部36の演算処理によって検出された欠陥等の異常個所が所定の態様で画像110、111中に表示される。図5では、画像111に関して検出された異常個所を黒丸で例示するが、同様の異常個所が画像110にも表示されてよい。「再演算」がオンなると、例えば画像111に関する欠陥検査が再度実施されてその結果が表示される。「内部同期」がオンの場合は、PC6で決定されたパラメータに従って検査領域Riを移動させて、検査領域Riをそのパラメータの値で固定することができる。「明度」及び「彩度」のそれぞれがオンされた場合は、画像表示部102の明度及び彩度の調整が可能となる。
次に、図6~図8を参照して、検査モードにおける処理の一例を説明する。図6は位置検出基板8bから出力される位置検出信号と、画像処理基板5からカメラ制御線CC1、CC2に出力される制御信号との関係の一例を示している。位置検出基板8bからは、対象物3が所定の単位量移動するごとに位置検出信号がパルス信号として出力される。位置検出信号の出力タイミングは撮影範囲Apと対象物3との位置関係に関連付けて設定される。例えば、撮影範囲Apに対する所定の基準位置に対象物3が到達したときに位置検出信号が出力されるといったように、位置検出信号の出力タイミングと撮影範囲Ap内の位置とが互いに関連付けられる。位置検出信号の周期Tpは適宜でよいが、少なくとも検査領域Riの画像を繰り返し取得するための必要な程度の分解能が確保されるように周期Tpが設定される。
画像処理基板5のFPGA22は、位置検出基板8bから与えられる位置検出信号に基づいて、検査領域Riの位置をカメラ4に把握させるための位置指示信号を生成し、その位置指示信号を、カメラ制御信号の一種として、カメラ制御線CC2を介してカメラ4に所定の周期Tiで繰り返し出力する。周期Tiは、一例として撮影範囲Ap内で対象物3が搬送方向(X軸方向)に1画素相当量移動する時間長に設定される。周期Tiは、位置検出信号の周期Tp間における対象物3の移動量を単位移動量として割り出し、その単位移動量と撮影範囲Apの画素数との対応関係に基づいて算出することが可能である。なお、周期Tiは必ずしも1画素相当量に設定されることを要しない。制御に必要とされる分解能に応じて周期Tiは適宜に変更されてよい。
また、画像処理基板5のFPGA22は、撮影タイミングを指示するシャッタトリガ信号を生成し、そのシャッタトリガ信号を、カメラ制御信号の一種として、カメラ制御線CC1を介してカメラ4に出力する。シャッタトリガ信号は、例えばカメラ4から取得した画像信号の処理が完了すると出力される。一例として、図6では、所定の周期Tsで繰り返しシャッタトリガ信号が出力されてもよい。この場合、周期Tsは、対象物3の移動方向(X軸方向)において検査領域Ri間に隙間が生じない範囲で設定される。例えば、検査領域RiのX軸方向における幅が1画素相当に設定されている場合、周期Ts内で対象物3が1画素を超えて移動しないように周期Tsが設定される。図6の例では、最初の位置検出信号の出力タイミングから5画素相当遅れた時期に対象物3がスタートポジション1に位置してシャッタトリガ信号が出力され、以後、13画素相当の周期Tsでシャッタトリガ信号が繰り返し出力され、対象物3がスタートポジション2まで移動するまで画像が繰り返し撮像される。位置検出信号とスタートポジション1におけるシャッタトリガ信号の出力タイミングとの間の対象物3の移動量をシフト量Siとすれば、そのシフト量Siはスタートポジション1の設定によって変化する。周期Tsは、検査領域RiのX軸方向の幅と対象物3の移動速度に基づいて演算することが可能である。画像処理基板5のユーザロジックULfには、スタートポジション1、2の位置と検査領域Riとが予め与えられてよい。なお、スタートポジション2からスタートポジション1へと検査領域Riを順次移動させる場合もシャッタトリガ信号の制御は同様でよい。
図7は、FPGA22からカメラ制御線CC3及びCC4を介してカメラ4に出力されるカメラ制御信号の一例を示している。カメラ制御信号線CC3、CC4は、カメラ4の撮影動作を制御するための動作ステートを画像処理基板5からカメラ4に指定する用途に用いられる。図7の例では、検査領域Riの移動方向、及び検査領域Riをスタートポジション1又はスタートポジション2のいずれに復帰させるかを指定するためのステート信号が、カメラ制御信号の一種として、カメラ制御線CC3、CC4を介してカメラ4のFPGA13に出力される。すなわち、カメラ制御線CC3のステート信号の値が”0”の場合は移動方向の指定であり、カメラ制御線CC4のステート信号の値が”0”であればインクリメントステートが指定され、カメラ制御線CC4のステート値が”1”であればデクリメントステートが指定される。インクリメントステートは、図2の左から右へと検査領域Riを移動させる状態を意味し、デクリメントステートは図2の右から左へと検査領域Riを移動させる状態を意味する。
一方、カメラ制御線CC3のステート信号の値が”1”の場合は、検査領域Riをスタートポジション1又はスタートポジション2のいずれかに移動させる指示であり、カメラ制御線CC4のステート信号の値が”0”であればスタートポジション1への移動が指定され、カメラ制御線CC4のステート信号の値が”1”であればスタートポジション2への移動が指定される。
図8はカメラ制御線CC1~CC4を利用してカメラ4の撮影動作を制御する一例を示している。図8の例では、時刻t1にてシャッタトリガ信号がカメラ制御線CC1から出力され、その時点でのカメラ制御線CC3、CC4の値はそれぞれ”0”であるため、検査領域Riの位置は図2の左から右へ所定画素数相当量移動した位置にセットされる。そして、検査領域Riに対応した画像信号(スキャン範囲Asの画像信号)が撮像部10から読み出されてカメラ4から映像信号線VLを介して画像処理基板5に画像信号が伝送される。時刻t1の撮影タイミングに対応した検査領域Riがスタートポジション2、つまりインクリメントステートにおける検査領域Riの終了位置Pe(図2)に到達したとすれば、画像処理基板5は位置検出基板8bからの位置検出信号をリセット、つまり位置検出信号に基づいて算出された移動量をリセットし、カメラ制御線CC2からの位置指示信号の出力を一旦停止させる。位置指示信号の出力は、次に検査すべき対象物3が撮影範囲Apに対する所定の基準位置に到達したことを示す位置検出信号が位置検出基板8bから出力される等、所定の条件が満たされると再開される。
その後、時刻t11にてカメラ制御線CC3、CC4のステート信号がいずれも”1”にセットされると、次のシャッタトリガ信号の出力時刻t2にてステート信号に対応して検査領域Riがスタートポジション2に設定される。さらに、時刻t21にてカメラ制御線CC3のステート信号が”0”にリセットされると、その後は図7のデクリメントステートが指定された状態となり、その後のシャッタトリガ信号の出力時刻t3では検査領域Riが図2の右から左へ所定画素相当量だけ移動した位置にセットされて撮像部10からの画像読み出しが行われ、得られた画像信号が画像処理基板5に伝送される。なお、ステート信号の切り替えは、予めユーザロジックULfのプログラムに記述されてもよいし、PC6から画像処理基板5に必要に応じて指示されてもよい。
画像処理基板5のFPGA22からのカメラ制御信号はカメラ4のFPGA13に入力され、FPGA13は得られたカメラ制御信号に基づいて検査領域Riに対応する画像が撮像されるようにカメラ4を制御する。例えば、FPGA13はカメラ制御線CC2からの位置指示信号のパルス数をカウントして対象物3の位置を把握する。また、FPGA13は、シャッタトリガ信号を受信すると、その時点での位置指示信号のカウント値と、カメラ制御線CC3、CC4からのステート信号とに従って検査領域Riをどの位置に設定すべきかを判別し、判別結果に従って検査領域Riの位置を保持するレジスタの座標値を更新し、その座標値が示す検査領域Riの画像を読み出すように撮像部10に指示する。FPGA13からの指示に従って撮像部10を制御することにより、撮像部10から検査領域Riに対応した画像(スキャン範囲Asの画像)の画像信号が取得され、得られた画像信号が映像信号線VLを介して画像処理基板5のCPU21に伝送される。このような処理が繰り返し実行されることにより、検査領域Riを対象物3の所定位置に追従させつつ、検査領域Riに対応した画像を繰り返し取得することができる。
以上のように、検査モードでは、画像処理基板5から4組のカメラ制御線CC1~CC4を介してカメラ制御信号がカメラ4に出力されることにより、カメラ4に対して、検査領域Riの初期位置(スタートポジション1又は2のいずれか)、移動方向、画像の撮影タイミング、撮影タイミングごとの検査領域Riの位置のそれぞれを指定するカメラ制御信号をカメラ4に伝え、それにより、検査領域Riを対象物3に追従して移動させつつ検査領域Riの画像をカメラ4に繰り返し取得させるために必要な情報をカメラ4に与えることができる。カメラ制御線CC1~CC4は映像信号線VLとは別に設けられ、FPGA13、22同士を接続するものであるため、映像信号線VLを介した画像信号の送信完了を待って画像処理基板5からカメラ4に伝送することを要しない。そのため、画像信号の伝達に要する時間に影響されることなく、撮影タイミングごとに適切なカメラ制御信号をカメラ4に高速で伝送し、撮影タイミングを見逃し、あるいは対象物からずれた位置の画像を取得するといった不都合が生じるおそれを解消することが可能である。
次に、図9及び図10を参照して、調整モードにおける処理の一例を説明する。調整モードは、FPGA13、22のユーザロジックULc、ULfが保持すべき制御パラメータ群、例えば検査範囲Aiや検査領域Riの大きさ、スタートポジション1、2の位置といったパラメータの値をユーザが指定するために設けられたモードである。
図5に例示したように、検査モードでは、カメラ4の撮影範囲Apの一部であるスキャン範囲Asの画像110、111が表示される。そのため、撮影範囲Apを確認しながら図2の検査範囲Aiの位置、例えばスタートポジション1、2の位置、あるいは検査領域Riの位置を調整することは不可能である。そこで、調整モードでは、図9に示すように、撮影範囲Apの全体の画像120を調整用画像の一例として表示装置33(図3)に表示させる。ただし、画像120は検査範囲Aiが設定される可能性がある範囲の画像であれば足り、撮影範囲Apよりも小さい範囲が画像120として表示されてもよい。
画像120の表示は、一例として、画像処理基板5のCPU21から映像信号線VLを介してカメラ4のCPU12にカメラ制御信号を伝送し、そのカメラ制御信号に対応してカメラ4が取得した画像信号をCPU12から映像信号線VLを介してCPU21に取り込むことにより行われてよい。調整モードでは対象物3を検査する必要がないため、FPGA22からのカメラ制御線CC2~CC4を介したカメラ制御信号の出力は省略されてよい。撮影タイミングを指示するシャッタトリガ信号については、位置検出基板8bからの位置検出信号に基づいてFPGA22が生成し、これをカメラ制御線CC1を介してカメラ4に伝送すればよい。例えば、カメラ制御線CC1からシャッタトリガ信号をカメラ4側に伝送し、そのシャッタトリガ信号のオン時間をカメラ4の露光時間として制御し、あるいはシャッタトリガ信号のオンによって露光を開始し、CPU21からカメラ4側に伝送されるコマンドに従って露光時間を制御してもよい。シャッタトリガ信号は、最初の位置検出信号から次の位置検出信号の間に複数回に亘って出力されてもよい。調整モードにおけるシャッタトリガ信号の周期は、撮影範囲Apを対象物3が通過する様子をユーザが観察できる程度の画像が得られる程度で足り、検査モード時の周期Tsと比較して相当に長く設定されてよい。言い換えれば、調整モードでは、検査モード時よりも広い範囲の画像を取得するため、シャッタトリガ信号の周期は検査モード時のそれよりも長く設定されてよい。調整モードでは、検査領域Riの正確な画像を取得する必要がないため、カメラ4のパーシャルスキャン機能を利用して、撮影範囲Ap内の一部の画素を画像信号の読み出し対象から除外し、それにより画像120のデータ量を削減してもよい。それにより、画像信号の伝送に要する時間を短縮し、映像信号線VLを介したカメラ制御信号の伝送に必要な時間を確保することができる。
画像120には、検査範囲Aiを示す検査枠121、及び検査領域Riを示す対象枠122も表示される。検査枠121は、スタートポジション1、2に対応した端部枠123、124及び検査範囲Aiの中央を示す中央枠125をさらに含む。検査枠121、端部枠123、124及び中央枠125は、現在の検査範囲Ai及び検査領域Riの設定値を画像処理基板5のFPGA22が取得し、得られた値に基づいてFPGA22が検査枠122等を生成し、生成された各枠121、123、124、125をカメラ4から取得した画像に合成してPC6に出力すればよい。検査範囲Ai等の設定値は、一例としてカメラ4のユーザロジックULcに保持された値をカメラ4のCPU12が読み取り、得られた値をCPU21に出力するといった手法で取得されてよい。画像処理基板5側のユーザロジックULfがそれらの値を保持している場合は、そのユーザロジックULfから設定値が取得されてもよい。
対象枠122については、対象物3の移動に追従して画像120内を移動するようにその表示位置がFPGA22にて逐次計算されて制御される。その制御は、例えば位置検出基板8bから与えられる位置検出信号に基づいてFPGA22がシャッタトリガ信号間の対象物3の移動量を演算し、その演算結果に基づいて対象枠122の位置を撮影タイミングごとに更新すればよい。
調整モードにおける調整を実現するため、PC6の調整部37はユーザの所定の指示に基づいて、図10に示した設定画面130を表示装置33に表示させる。設定画面130は、各種の制御パラメータの値を設定するためのユーザインターフェースの一例である。図10の設定画面130には、設定項目として、上から順に「モード設定」、「検査方向」、「スキャン中央下移動」、「スキャン中央上移動」、「スキャン範囲」、「SGATE有効期間」、「本立て数」、「階調設定」、「検査枠垂直移動」、「検査枠水平移動」及び「検査枠色変更」が用意され、それらの設定値が設定項目と対応付けて表示される。設定項目の一部に関しては、画像120内の設定対象となる個所を図中に矢印で示している。なお、図10に示した設定項目や設定値は一例である。
「モード設定」は、カメラ4及び画像処理基板5を検査モード又は調整モードのいずれで動作させるべきかを指定する項目であって、”0”は検査モード、”1”は調整モードである。「検査方向」は、検査領域Riを移動させる方向、言い換えれば対象物3が移動する方向を指定する項目であって、”0”の場合は図2の左から右、”1”は図2の右から左に移動することを示す。この設定に対応して、検査モード時にカメラ制御線CC3、CC4から出力されるステート信号によるインクリメントモード又はデクリメントモードの指定が変化する。
「スキャン中央下移動」は、中央枠125の位置を画像120の下方向に変化させるための項目であって、その設定値は1画素単位で指定可能である。「スキャン中央上移動」は中央枠125の位置を画像120の上方向に変化させるための項目であって、その設定値は1画素単位で指定可能である。中央枠125は検査枠121の中央に位置する枠であるため、中央枠125の位置が上下方向に変化すると、検査枠121及び端部枠124、125も一体的に上下方向に移動する。それにより、検査範囲Aiのスタートポジション1、2の位置が変化する。
「スキャン範囲」は、検査枠121を画像120の上下方向における長さを指定する項目であって、その設定値は1画素単位で指定可能である。検査枠121の長さを変更することにより、検査範囲Aiのスタートポジション1、2の位置が変化する。検査範囲Aiは、さらに「検査枠水平移動」の項目によっても調整可能である。「検査枠水平移動」は、画像120の水平方向(すなわち、図9のY軸方向)における検査枠121の位置を指定する項目であって、その設定値は1画素単位で指定可能である。したがって、「スキャン中央下移動」、「スキャン中央上移動」、及び「検査枠水平移動」のそれぞれの設定値を調整することにより検査枠121を上下左右の任意の位置に設定し、かつ「スキャン範囲」の設定値を調整することにより、対象物3の搬送方向に関して検査枠121を拡大又は縮小し、それにより検査範囲Aiを所望の位置に配置することができる。なお、検査枠121の水平方向(つまり図9のY軸方向)の長さをさらに調整可能としてもよい。
さらに、「SGATE有効期間」は、検査範囲Aiの画像に関する同期信号の有効期間を設定する項目、「本立て数」は搬送装置2のホイール7(図1参照)に保持される対象物3の本数を指定する項目、「階調設定」は検査枠122がカラー表示されず、グレースケールで表示される場合にその検査枠122の階調を指定する項目、「検査枠垂直移動」は、検査モード時に停止状態で表示される検査領域Riの画像(一例として図5の画像111)の表示位置をX軸方向、つまり図9の上下方向に調整するための項目、「検査枠色変更」は対象枠122の色(グレースケールも選択肢に含む。)を指定するための項目である。
設定画面130を利用して設定された各種の値は、PC6の制御ユニット31から画像処理基板5に適宜のタイミングで出力されてFPGA22に伝送され、あるいは映像信号線VLを介してカメラ4のCPU12、FPGA13へと伝送される。それにより、ユーザロジックULc、ULfに検査範囲Aiや検査領域Riの位置、大きさ、スタートポジション1、2の位置といった検査モード時のカメラ制御に必要な制御パラメータの値が設定され、あるいは更新される。CPU12のレジスタに、検査領域Riの初期位置等が保持される場合には、その値にも調整モードの設定値が必要に応じて反映されてよい。
以上のように、調整モードでは、カメラ4の撮影範囲Ap内で、少なくとも検査範囲Aiが設定される可能性がある範囲を調整用範囲として、その調整用範囲の画像信号を読み出してその画像120を表示させ、画像120にて確認しながら検査範囲Ai等を設定することが可能である。したがって、調整作業に不慣れなユーザでも検査範囲Aiの設定を容易かつ確実に実行することが可能であり、ユーザによる調整作業の負担を軽減することができる。
以上の形態では、カメラ制御線CC3、CC4のステート信号を検査領域Riの初期位置の指定、及び検査領域Riの移動方向の指定に利用したが、ステート信号は他の用途で指定されてもよい。例えば、移動方向が一定で変化がない場合には、カメラ4による画像信号のゲインを指定する信号をステート信号として生成してカメラ制御線CC3又はCC4から伝送するといった変形が可能である。あるいは、検査領域Riの幅(図2のX軸方向の幅)を指定するようにステート信号が生成されてカメラ制御線CC3、又はCC4から伝送されてもよい。その他にも、カメラ4が保持している各種の制御パラメータの値を指定する信号をステート信号として画像処理基板5にて生成し、カメラ制御線CC3、CC4を介しカメラ4に伝送してもよい。対象物3の移動速度が一定で、撮影タイミングごとの検査領域Riの移動量が一定である場合には、その移動量を予めカメラ4側に与えてカメラ制御線CC2からの出力を不要とし、空いたカメラ制御線CC2をさらなるステート信号の伝送に利用してもよい。要するに、カメラ制御線CC1は従来と同様にシャッタトリガ信号の伝送に利用するとして、その他のカメラ制御線CC2~CC4を介して伝送するカメラ制御信号は、検査の条件等に応じて適宜に選択されてよい。
上述した実施の形態及び変形例のそれぞれから導き出される本発明の各種の態様を以下に記載する。なお、以下の説明では、本発明の各態様の理解を容易にするために添付図面に図示された対応する構成要素を括弧書きにて付記するが、それにより本発明が図示の形態に限定されるものではない。
本発明の一態様に係る撮像システムは、カメラリンク規格に準拠したカメラ(4)及び画像処理基板(5)を含み、対象物(3)の移動経路(CP)中の所定範囲が撮影範囲(Ap)に含まれるように前記カメラが配置され、前記撮影範囲内を通過する前記対象物の画像が取得されるように前記画像処理基板側から前記カメラを制御し、得られた画像に対応する画像信号を前記カメラから前記画像処理基板に取り込む撮像システムであって、前記カメラと前記画像処理基板とが、前記画像信号を取り込むための映像信号線(VL)と、前記カメラを制御するための複数のカメラ制御線(CC1~CC4)とを介して互いに接続され、前記撮影範囲内に設定される検査領域(Ri)を前記対象物に追従して移動させつつ当該検査領域の画像を前記カメラに繰り返し取得させるための複数のカメラ制御信号が前記画像処理基板にて生成され、前記画像処理基板にて生成された複数のカメラ制御信号が、互いに異なるカメラ制御線を介して前記カメラに伝送されるものである。
本発明の一態様に係る撮像制御方法は、カメラリンク規格に準拠したカメラ(4)及び画像処理基板(5)を含み、対象物(3)の移動経路(CP)中の所定範囲が撮影範囲(Ap)に含まれるように前記カメラが配置された撮像システムに適用され、前記撮影範囲内を通過する前記対象物の画像が取得されるように前記画像処理基板側から前記カメラを制御し、得られた画像に対応する画像信号を前記カメラから前記画像処理基板に取り込むための撮像制御方法であって、前記カメラと前記画像処理基板とを、前記画像信号を取り込むための映像信号線(VL)と、前記カメラを制御するための複数のカメラ制御線(CC1~CC4)とを介して互いに接続し、前記撮影範囲内に設定される検査領域(Ri)を前記対象物に追従して移動させつつ当該検査領域の画像を前記カメラに繰り返し取得させるための複数のカメラ制御信号を前記画像処理基板にて生成し、前記画像処理基板にて生成された複数のカメラ制御信号を、互いに異なるカメラ制御線を介して前記カメラに伝送するものである。
上記態様によれば、画像処理基板側で生成されるカメラ制御信号を複数のカメラ制御線を介してカメラ側に伝送することにより、映像信号の伝送完了を待って次の撮像に必要なカメラ制御信号を映像信号線からカメラ側に伝送する必要がなくなる。そのため、カメラ制御信号を高速で伝送して撮影タイミングごとにカメラを確実に制御することができる。したがって、移動する対象物の画像を高速で繰り返し取得することが可能である。
上記態様において、前記画像処理基板は、前記複数のカメラ制御信号の少なくとも一部として、前記カメラの撮影タイミングを繰り返し指示するシャッタトリガ信号と、前記撮影タイミングごとの前記検査領域の位置を前記カメラに指定するための位置指示信号とを生成してもよい。シャッタトリガ信号に加えて、位置指示信号をカメラ制御線からカメラ側に伝送することにより、毎回の撮影タイミングに対応した検査領域の位置をカメラ側に遅滞なく指示し、移動する対象物に追従するように検査領域の位置を変化させて目的とする検査領域の画像を確実に取得することができる。
上記態様において、撮像システムは、前記対象物の位置に相関する位置検出信号を出力する位置検出手段(8)をさらに備えてもよく、その場合、前記画像処理基板は、前記位置検出信号に基づいて前記位置指示信号を生成してもよい。位置検出手段から対象物の位置を把握する手掛かりとなる位置検出信号を出力させ、その位置検出信号に基づいて位置指示信号を生成することにより、撮影範囲内における対象物の位置を正しく反映した位置指示信号をカメラ側に伝送することができる。
前記画像処理基板は、前記複数のカメラ制御信号として、前記カメラの撮影動作に関して前記撮影タイミング及び前記撮影タイミングごとの前記検査領域の位置とは異なる動作ステートを前記カメラに指定するためのステート信号をさらに生成してもよい。ステート信号をカメラ制御線からカメラ側に伝送することにより、カメラの撮影動作を柔軟かつ高速で制御することが可能である。
前記画像処理基板は、前記複数のカメラ制御信号として、少なくとも2種類のステート信号を生成し、各ステート信号が互いに異なるカメラ制御線を介して前記カメラに伝送されてもよい。2種類以上のステート信号を生成してカメラ側に伝送することにより、それらのステート信号の組み合わせを利用して、より多様な動作ステートをカメラ側に高速で指示することができる。
前記画像処理基板は、前記ステート信号として、前記撮影範囲内における前記検査領域の初期位置(Ps又はPe)、及び前記検査領域の移動方向を前記カメラに指定するためのステート信号を生成してもよい。これによれば、複数の対象物を繰り返し撮像する場合の検査領域の初期位置への復帰、あるいは対象物の移動方向の切り替えに対応したステート信号をカメラ側に伝送して、検査領域の位置の変化をより柔軟に指示することが可能である。
前記カメラ及び前記画像処理基板のそれぞれがCPU(12、21)及びFPGA(13、22)を含み、前記映像信号線は前記CPU間を接続するように設けられ、前記カメラ制御線は前記FPGA間を接続するように設けられてもよい。カメラ制御線がFPGA同士を接続するように設けられることにより、CPU間の画像伝送の処理の影響を受けることなくカメラ制御信号を画像処理基板からカメラに伝送して毎回の撮影に必要な処理をカメラ側のFPGAに高速で実行させることができる。