JP5189570B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP5189570B2
JP5189570B2 JP2009190548A JP2009190548A JP5189570B2 JP 5189570 B2 JP5189570 B2 JP 5189570B2 JP 2009190548 A JP2009190548 A JP 2009190548A JP 2009190548 A JP2009190548 A JP 2009190548A JP 5189570 B2 JP5189570 B2 JP 5189570B2
Authority
JP
Japan
Prior art keywords
imaging
unit
image
image data
measurement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009190548A
Other languages
English (en)
Other versions
JP2011043363A (ja
Inventor
一彦 寺田
敏寛 小中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Keyence Corp
Original Assignee
Keyence Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keyence Corp filed Critical Keyence Corp
Priority to JP2009190548A priority Critical patent/JP5189570B2/ja
Priority to US12/835,837 priority patent/US20110043621A1/en
Priority to DE102010034546A priority patent/DE102010034546A1/de
Priority to CN201010260123.0A priority patent/CN101995410B/zh
Publication of JP2011043363A publication Critical patent/JP2011043363A/ja
Application granted granted Critical
Publication of JP5189570B2 publication Critical patent/JP5189570B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8851Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/147Details of sensors, e.g. sensor lenses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Description

本発明は、検査対象物をカメラ等の撮像手段で撮像して、得られた画像データを用いて計測処理を実行する画像処理装置及び画像処理方法に関する。
工場など数多くの生産現場では、人の目視に頼っていた検査を自動化・高速化する画像処理装置が導入されている。画像処理装置は、ベルトコンベア等の生産ラインを流れてくるワークをカメラによって撮像し、得られた画像データを用いて、所定領域のエッジ検出や面積計算などの計測処理を実行する。そして、計測処理の処理結果に基づいて、ワークの欠け検出やアライメントマークの位置検出などの検査を行い、ワークの欠けや位置ずれの有無を判定する判定信号を出力する。このように、画像処理装置は、FAセンサの一つとして利用されることがある。
画像処理装置の中には、実行される処理手順が予め決められているパッケージ型のものや、ユーザがパソコン上で作成した所望の処理手順を実行する画像処理プログラムを転送し、思い通りの計測処理を行わせるものなどがある。前者は、予め決められた処理手順でしか画像処理を行うことができないため、画像処理の自由度が制限される一方、後者は、所望の計測処理を行わせるには高度なプログラミングスキルと多大な工数を必要とする。これらの課題を解決する画像処理装置の一つとして、画像処理一連の処理手順をフローチャートで表示し、そのフローチャート上で、ユーザにより処理手順を変更可能にしたものがある(例えば特許文献1参照)。ユーザが所望の処理手順を実現するためには、例えばPC上の専用ソフトウェアによりフローチャート上で処理手順をカスタマイズし、カスタマイズされた処理手順を画像処理装置に実行させるための画像処理プログラムを生成し、その画像処理プログラムを画像処理装置のコントローラに転送すればよい。
ユーザが処理手順をカスタマイズ可能な画像処理装置の使用態様について、図20を用いて具体的に説明する。図20は、画像処理装置が使用される場面の一例を示す図である。図20では、ベルトコンベア200上を流れているワーク100を、2台のカメラ301及びカメラ302により撮像し、カメラ301及びカメラ302が接続されている1台のコントローラ300において、得られた画像データを用いて計測処理が実行される。図21は、ユーザによって作成された処理手順の一例を示すフローチャートである。
図20及び図21に示すように、ワーク100がカメラ301の下まで流れてくると、外部(例えば光電センサ等)からのトリガ入力に基づき、カメラ301によってワーク100の撮像が行われる。そして、ワーク100がカメラ302の下まで流れてくると、再び外部(例えば光電センサ等)からのトリガ入力に基づき、カメラ302によってワーク100の撮像が行われる。このようにして、カメラ301及びカメラ302での撮像が終わると(図21のステップS101)、コントローラ300において、これらの撮像により得られた2つの画像データを用いて計測処理が実行される(図21のステップS102)。なお、図21に示すフローチャートでは、STARTシンボルからENDシンボルまでのフローシーケンスを1周期分の画像処理として、計測周期が定められている。
ここで、図21において、ステップS102の計測処理が終わるまでは、ワーク100の次に流れてくるワーク(ワーク100の左隣のワーク)の撮像をカメラ301で行うことができない。上述したように、STARTシンボルからENDシンボルまでのフローシーケンスが1周期分の画像処理であり、ステップS102の計測処理を実行している最中に、ステップS101の撮像処理を実行することはできないからである。この点について更に詳細に説明すると、図21において、まず、STARTシンボル直下に位置する撮像処理(ステップS101)が実行され、ワーク100の撮像が行われる。そして、次の計測処理(ステップS102)において必要になるカメラ301及びカメラ302からの画像データが得られると、ステップS101の撮像は完了する。その後、カメラ301及びカメラ302からの画像データを用いてステップS102の計測処理が実行され、この計測処理が完了すると、1周期分の画像処理(一フローシーケンス)が終了する。このように各画像処理(ステップS101及びステップS102)を、フローチャートに示す処理手順と同期させて実行することによって享受できる利点はいくつかある。例えば、各画像処理を非同期で実行すると、撮像して得られた画像データをメモリへ書き込む、計測処理を実行するために画像データをメモリから読み出す、といった動作が同時に行われることに起因するメモリ競合の問題が生じるが、各画像処理をフローチャートに示す処理手順と同期させて実行するようにすれば、このようなメモリ競合の問題は生じない。また、各画像処理をフローチャートに示す処理手順と同期させて実行することによって、その処理手順に沿ってデバッグを行うことができるようになり、ひいてはバグ修正も容易になる。
このような理由から、ユーザが処理手順をカスタマイズ可能な画像処理装置では、各画像処理は所定の処理手順と同期させて実行するようになっており、現在実行中の処理ステップが終わらなければ、次の処理ステップに移行できないようになっている。そのため、上述したように、図21においてステップS102の計測処理を実行している最中に、ステップS101の撮像処理を実行することはできず、撮像の取りこぼしを防ぐためには、カメラ301で撮像を行うことができない撮像禁止期間を設けなければならなかった。
この点、ステップS102の計測処理を実行している最中であっても、内部的に、カメラ301での撮像を可能にする技術がある。例えば特許文献2に開示されているように、撮像用の画像データメモリと計測用の画像データメモリを設けておき、計測処理を実行しながら撮像を行う技術である。このような技術を採用すれば、図21に示すフローチャートにおいて、計測用の画像データメモリを使用するステップS102の計測処理が終わっていなくても、撮像用の画像データメモリを使用して、次の計測周期におけるカメラ301での撮像を予め行っておくことが可能になる。
ところで、図21に示すフローチャートは、ステップS102の計測処理において、カメラ301での撮像により得られた画像データと、カメラ302での撮像により得られた画像データとを用いて、一の画像処理を行うものであるが、それぞれの画像データに対し、別々に画像処理を行いたい場合がある。
図22は、カメラ301での撮像により得られた画像データと、カメラ302での撮像により得られた画像データのそれぞれに対し、別々の画像処理を行う場合のフローチャートである。図22に示すフローチャートでは、まず、ワーク100がカメラ301の下まで流れてくると、カメラ301での撮像により画像データを取得する第1撮像(ステップS201)が実行される。第1撮像の処理が完了すると、得られた画像データに対して第1計測が実行される(ステップS202)。次に、ワーク100がカメラ302の下まで流れてくると、カメラ302での撮像により画像データを取得する第2撮像(ステップS203)が実行される。第2撮像の処理が完了すると、得られた画像データに対して第2計測が実行される(ステップS204)。
また、上述した特許文献2に開示されている技術を適用することによって、ステップS202に示す第1計測が終わる前に、内部的に、カメラ302での撮像を予め行っておくことができるし、ステップS204に示す第2計測が終わる前に、内部的に、次の計測周期におけるカメラ301での撮像を予め行っておくことができる。このように、計測処理を実行しながら撮像を行う技術(すなわち計測処理と撮像処理を非同期で行う技術)を用いることによって、各画像処理(ステップS201〜ステップS204)をフローチャートに示す処理手順と同期させて実行しつつ、撮像の取りこぼしを防ぐことができる。
特開平09−288568号公報 特開平10−32810号公報
しかしながら、図22に示すフローチャートにおいては、少なくとも、カメラ301での撮像(ステップS201の第1撮像)とカメラ302での撮像(ステップS203の第2撮像)は、シリアルに処理されなければならない。すなわち、ステップS203に示す第2撮像が実行されている最中に、ワーク100の次のワークがカメラ301の下に流れてきた場合、次の計測周期におけるステップS201の第1撮像を実行することはできない。図21を用いて説明したように、各画像処理をフローチャートの処理手順と同期させて実行するようになっている画像処理装置では、現在実行中の処理ステップが終わらなければ、次の処理ステップ(計測周期)に移行できないようになっているからである。また、たとえ上述した特許文献2に開示されている技術を適用したとしても、カメラ301での第1撮像により得られた画像データをメモリへ書き込む動作と、カメラ302での第2撮像により得られた画像データをメモリへ書き込む動作とが同時に行われると、メモリ競合の問題が生じるからである。
そのため、図22に示すフローチャートでは、撮像の取りこぼしを防ぐために、やはりカメラ301で撮像を行うことができない撮像禁止期間を設けなければならない。この撮像禁止期間の存在は、カメラ301での処理時間の遅延、ひいては検査タクト遅延に繋がる。
そこで、例えば図20に示すコントローラ300を2台用意して、カメラ301での撮像と、カメラ302での撮像とを独立させることを考える。すなわち、2台のコントローラのうち、一方のコントローラにはカメラ301を接続し、他方のコントローラにはカメラ302を接続する。そうすると、処理手順としては、図23に示すように、独立した2本のフローチャートが存在することと等価である。図23(a)は、カメラ301から画像データを得る第1撮像(ステップS201)及びその画像データを用いた第1計測(ステップS202)がシリアルに接続された処理手順であり、図23(b)は、カメラ302から画像データを得る第2撮像(ステップS203)及びその画像データを用いた第2計測(ステップS204)がシリアルに接続された処理手順である。
図23によれば、一方のコントローラにおけるカメラ301での撮像(ステップS201の第1撮像)と、他方のコントローラにおけるカメラ302での撮像(ステップS203の第2撮像)とを独立させることができるので、カメラ302での第2撮像(ステップS203)が実行されている最中に、ワーク100の次のワークがカメラ301の下に流れてきた場合であっても、ステップS201の第1撮像を実行することができる。
ところが、図23に示すフローチャートによる画像処理を実現するためには、上述したように2台のコントローラが必要になるため、その分ユーザに余分なコスト負担を強いることになる。そこで、図23に示すフローチャートによる画像処理を1台のコントローラで実現することも考えられるが、図23(a)に示すフローチャートに示す各画像処理と、図23(b)に示すフローチャートに示す各画像処理という2つのフローシーケンスを、2台のコントローラを用いるときのように非同期で実行させると、上述同様、メモリ競合の問題が生じたり、一のフローシーケンスに沿ってデバッグを行うことができなかったりと、各画像処理をフローチャートに示す処理手順と同期させて実行することで享受し得る利点が失われてしまう。
このように、従来の画像処理装置では、検査タクトを向上させるため、また、ユーザに余分なコスト負担を掛けないようにするために、1台のコントローラで撮像の取りこぼしを防ぐための撮像禁止期間をなくそうとすると、図23を用いて説明したように、各画像処理を所定の処理手順と同期させて実行することにより享受し得る利点(メモリ競合を防ぐ、バグ修正が容易)が失われてしまうという問題があった。
本発明は、以上の点に鑑みてなされたものであり、その目的は、1台のコントローラで、各画像処理を所定の処理手順と同期させて実行しつつ、撮像の取りこぼしを防ぐための撮像禁止期間をなくし得る画像処理装置及び画像処理方法を提供することにある。
本発明に係る画像処理装置は、検査対象物を撮像して画像データを生成する複数のカメラを有し、複数の画像処理を所定の処理手順と同期させて実行するための制御プログラムが記憶され、当該制御プログラムの実行結果に基づいて、検査対象物の良否を判定して判定信号を出力する画像処理装置において、前記複数の画像処理には、検査対象物を撮像する撮像処理と、当該撮像処理により生成された画像データを用いて実行される複数の異なる計測処理と、が含まれており、前記所定の処理手順は、当該撮像処理を含む第1の処理、当該複数の異なる計測処理を含む第2の処理がこの順で実行されるように構成されており、前記複数の異なる計測処理のうち少なくとも一の計測処理に対して前記複数のカメラのうち複数の特定のカメラを対応付け可能であって、前記第1の処理から前記第2の処理に移行するための移行条件を設定可能な設定手段と、前記第1の処理の際に、前記複数のカメラのうちいずれのカメラから画像データが取得されるかを識別して、前記設定手段により設定された移行条件にて規定される前記特定のカメラから画像データが取得されたかを判定する判定手段と、前記判定手段により、前記設定手段により設定された移行条件にて規定される前記特定のカメラから画像データが取得されたと判定されたことを契機として、取得された画像データに対して、当該移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行するための割り当て処理を実行する割り当て手段と、前記割り当て手段により割り当て処理が実行されて前記第2の処理に移行したときに、前記移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行する計測手段と、を備える。
このような構成によれば、例えば外部のプログラム作成支援装置からの画像処理プログラム転送により、複数の異なる計測処理のうち少なくとも一の計測処理に対して複数のカメラのうち複数の特定のカメラを対応付け可能な移行条件であって、撮像処理を含む第1の処理から複数の異なる計測処理を含む第2の処理に移行するための移行条件が設定され、設定された移行条件にて規定される特定のカメラから画像データが取得されたかが判定され、画像データが取得されたと判定されたことを契機として、取得された画像データに対して当該移行条件にて規定され且つ特定のカメラに対応付けられた計測処理を実行するための割り当て処理が実行される。したがって、カメラによる撮像及び計測に用いるための割り当て処理、画像データを用いた計測処理、という所定の処理手順に同期させて各処理を実行することができる。また、本発明でいう割り当て処理では、設定手段により設定された移行条件にて規定される特定のカメラから画像データが取得されたことが契機となって行われるので、検査対象物を撮像する複数のカメラから画像データを取得する撮像機構を、上述した所定の処理手順と非同期で動作させることができる。その結果、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができる。さらに、このような効果を1台のコントローラで実現することができる。
ここで、画像処理装置は、上述した割り当て手段が、判定手段により画像データが取得されていないと判定されたときには、計測処理を実行するための割り当てを行わずに待機するような構成としてもよい。
このような構成によれば、上述した割り当て手段は、判定手段により画像データが取得されていないと判定されたときには、計測処理を実行するための割り当てを行わずに待機するので、このようなときであっても、割り当て手段による割り当てを行うことができない割り当てエラーが生じることはなく、所定の処理手順に同期させて割り当て処理や一の計測処理を実行することができる。
また、画像処理装置は、上述した割り当て手段が、設定手段により設定された複数の対応付けのうち二以上の対応付けにおいて規定される種別のカメラから画像データが取得されたと判定されたときには、予め定めた優先順位に基づく一の対応付けにおいて規定される一の計測処理を実行するための割り当てを行うような構成としてもよい。
このような構成によれば、上述した割り当て手段は、設定手段により設定された複数の対応付けのうち二以上の対応付けにおいて規定される種別のカメラから画像データが取得されたと判定されたときには、予め定めた優先順位に基づく一の対応付けにおいて規定される一の計測処理を実行するための割り当てを行うので、このようなときであっても、割り当て手段による割り当ての対象が不明になることはなく(すなわち、二以上の対応付けにおいて規定される種別のカメラから画像データが取得されたと判定されたときであっても、どの対応付けにおいて規定される一の計測処理を実行するための割り当てを行えばよいかが特定されるので)、所定の処理手順に同期させて割り当て処理や一の計測処理を実行することができる。
また、画像処理装置は、上述した優先順位が、設定手段により設定された複数の対応付けのうち一の対応付けにおいて規定される種別のカメラから画像データが取得されたタイミングに基づいて定められているような構成としてもよい。
このような構成によれば、カメラから画像データが取得されたタイミングが早いか遅いかに基づいて割り当てを行うことができるので、カメラから画像データが取得された順番を考慮して(いわゆる早いもの順で)割り当てを行うことができる。
さらに、検査対象物を撮像して画像データを生成する複数のカメラを有し、複数のカメラから取得した画像データを用いて計測を行い、計測結果に基づき検査対象物の良否を判定して判定信号を出力するとともに、複数のカメラから取得した画像データを計測に用いるための割り当てを行う割り当て処理と、割り当て処理により割り当てが行われた画像データを用いて計測を行う複数の計測処理とが実行されるように規定される画像処理装置を用いた画像処理方法において、複数のカメラのうち一又は複数のカメラの種別と、複数の計測処理のうち一の計測処理との対応付けを複数パターン設定する設定ステップと、複数のカメラのうちいずれのカメラから画像データが取得されるかを識別して、設定ステップにより設定された複数パターンの対応付けのうち一の対応付けにおいて規定される種別のカメラから画像データが取得されたかを判定する判定ステップと、画像データが取得されたと判定された一の対応付けにおいて規定される一の計測処理を実行するための割り当てを行う割り当てステップと、を含むようにしてもよい。
このような方法によれば、上述した画像処理装置と同様に、1台のコントローラで、所定の処理手順に同期させて割り当て処理や計測処理を実行することができるとともに、撮像機構を所定の処理手順と非同期で動作させて、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができる。
以上説明したように、本発明によれば、所定の処理手順に同期させて割り当て処理や計測処理を実行することができるので、これらを非同期で実行した場合に生じるメモリ競合やバグ修正の問題を防ぐことができる。
また、本発明によれば、検査対象物を撮像する複数の撮像手段から画像データを得る撮像機構を、所定の処理手順と非同期で動作させることができるので、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができる。さらに、これらの効果を1台のコントローラで実現することができる。
本発明の実施の形態に係る画像処理装置の概略構成例を示す図である。 画像処理装置の概略動作について説明するためのフローチャートである。 本発明の実施の形態に係る画像処理装置のハードウェア構成を示すブロック図である。 本実施形態に係る画像処理装置における撮像機構の動作を示すフローチャートである。 本実施形態に係る画像処理装置における画像処理の流れを示すフローチャートである。 図5に示す撮像ユニット処理の詳細な流れを示すフローチャートである。 予め設定された撮像完了条件の一例を示す図である。 本実施形態に係る画像処理装置における画像処理の流れを示すタイミングチャート(概念図)である。 画像処理装置の画像処理プログラムを作成するPCの機能構成例を示すブロック図である。 PCの表示部に表示されたエディタ画面(主要部のみ)の一例を示す図である。 図7に示す撮像完了条件を設定する設定画面の一例を示す図である。 本発明の他の実施の形態に係る画像処理装置における画像処理の流れを示すタイミングチャート(概念図)である。 本発明の他の実施の形態に係る画像処理装置で使用する撮像完了条件設定テーブルである。 本発明の他の実施の形態に係る画像処理装置で使用する撮像完了条件設定テーブルである。 図14に示す撮像完了条件設定テーブルを用いた画像処理の流れを示すタイミングチャート(概念図)である。 本発明の他の実施の形態に係る画像処理装置で使用する撮像完了条件設定テーブルである。 本発明の他の実施の形態に係る画像処理装置における画像処理の流れを示すフローチャートである。 本発明の他の実施の形態に係る画像処理装置で使用する撮像完了条件設定テーブルである。 本発明の他の実施の形態に係る画像処理装置における画像処理の流れを示すフローチャートである。 ベルトコンベア上を流れているワークを2台のカメラで撮像する様子を示す図である。 ワークを検査する際の従来の画像処理の流れを示すフローチャートである。 ワークを検査する際の従来の画像処理の流れを示すフローチャートである。 ワークを検査する際の従来の画像処理の流れを示すフローチャートである。
以下、本発明の実施の形態に係る画像処理装置について、図面に基づいて具体的に説明する。
[概略構成]
図1は、本発明の実施の形態に係る画像処理装置1の概略構成例を示す図である。図1に示すように、画像処理装置1は、エッジ検出や面積計算などの計測処理を実行するコントローラ10と、検査対象物を撮像する3台のカメラ30a,30b,30cと、液晶パネル等のモニタ40と、ユーザがモニタ40上で各種操作するためのコンソール50と、を有している。カメラ30a,30b,30c、モニタ40、及びコンソール50は、コントローラ10と着脱可能に接続される。コントローラ10は、カメラ30a,30b,30cから得られた画像データを用いた計測処理を実行し、PLC60に対し、ワークの良否などの判定結果を示す信号として判定信号を出力する。
3台のカメラ30a,30b,30cは、PLC60から入力される制御信号、すなわちカメラ30a,30b,30cから画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、検査対象物の撮像を行う。モニタ40は、検査対象物を撮像して得られた画像データや、その画像データを用いた計測処理の結果を表示するための表示装置である。一般に、ユーザはモニタ40を視認することによって、画像処理装置1が運転中である場合のコントローラ10の動作状態を確認することができる。コンソール50は、モニタ40上でフォーカス位置を移動させたり、メニュー項目を選択したりするための入力装置である。
また、画像処理装置1のコントローラ10には、画像処理装置1の画像処理プログラム(制御プログラム)を生成するためのPC70が接続されており、このPC70上で動作するソフトウェアによって、画像処理ユニットの処理手順を規定する画像処理プログラムが生成される(詳細については後述する)。画像処理装置1では、その処理手順に沿って各画像処理ユニットが順次実行される。PC70とコントローラ10とは、通信ネットワークを介して接続されており、PC70上で生成された画像処理プログラムは、モニタ40の表示態様を規定するレイアウト情報などとともにコントローラ10に転送される。また逆に、コントローラ10から画像処理プログラムやレイアウト情報などを取り込んで、PC70上で編集することもできる。
図2は、画像処理装置1の概略動作について説明するためのフローチャートである。図2(a)及び図2(b)において、ステップS2の計測Aは、カメラ30aでの撮像により得られた画像データを用いた所定の計測処理を実行する計測ユニットを示し、ステップS3の計測Bは、カメラ30bでの撮像により得られた画像データを用いた所定の計測処理を実行する計測ユニットを示し、ステップS4の計測Cは、カメラ30cでの撮像により得られた画像データを用いた所定の計測処理を実行する計測ユニットを示している。また、これらの計測ユニットは、ステップS1の撮像ユニット、ステップS5の分岐ユニット(図2(a))、ステップS6の合流ユニット(図2(a))とともに、実行される処理内容が規定された複数の画像処理ユニットとしてコントローラ10に記憶されている。また、図2に示すフローチャートは、例えば図1に示すPC70上で動作するソフトウェアによってユーザが作成したものであって、画像処理ユニットの処理手順を示している。
ここで、本実施形態に係る画像処理装置1における撮像ユニット(ステップS1)は、カメラ30a,30b,30cから得られた画像データに対して、計測ユニットで実行される計測処理に用いるための割り当て処理を実行するユニットである。そして、この割り当て処理を実行するにあたっては、カメラ30a,30b,30cのうち所定のカメラから画像データが得られるときに成立する複数種類の撮像完了条件(詳細は後述する)が成立しているかが判定され、成立していると判定された撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して、割り当て処理を実行する。
図2(a)及び図2(b)においては、カメラ30aからの画像データが得られたときに撮像完了条件として条件Aが成立し、カメラ30bからの画像データが得られたときに撮像完了条件として条件Bが成立し、カメラ30cからの画像データが得られたときに撮像完了条件として条件Cが成立するようになっている。
また、条件Aが計測Aに対応付けられ、条件Bが計測Bに対応付けられ、条件Cが計測Cに対応付けられている。具体的には、図2(a)では、ステップS5の分岐ユニットのプロパティにおいて、このような対応付けがなされており、図2(b)では、各計測ユニットのプロパティにおいて、このような対応付けがなされている。
まず、図2(a)に示すフローチャートについて詳述すると、STARTシンボル直下に位置する撮像ユニット(ステップS1)が実行される。具体的には、コントローラ10は、図2(a)に示すフローチャートと非同期で動作させることが可能な撮像機構を有しており、この撮像機構によって、図2(a)に示すフローチャートとは独立して、カメラ30a,30b,30cでの撮像により得られた画像データを取得する。そして、コントローラ10は、その画像データがいずれのカメラから得られたものであるかを識別する機能を有しており、その識別結果に基づいて、上述した条件A〜Cが成立しているかを判定する。いずれも成立していないと判定したときには、上述した識別機能を発揮しながら条件A〜Cのいずれかが成立するまで待機する。なお、画像データがいずれのカメラから得られたものであるかを識別するタイミング(例えばメモリにアクセスするタイミング)については、常時識別するようにすることもできるし、定期的に識別するようにすることもできる。
例えばカメラ30aでの撮像により得られた画像データを取得した場合、コントローラ10は条件Aが成立していると判定し、条件Aに対応付けられた計測ユニット(計測A)の実行に用いる画像データとして、その画像データに対して割り当て処理を実行する。この割り当て処理が実行されることによって、その画像データは計測Aの実行対象として認識される。
割り当て処理が終わると、撮像ユニット(ステップS1)の実行は終了し、次に分岐ユニット(ステップS2)の実行に移行する。この分岐ユニットでは、フローチャートを各計測ユニット(計測A〜計測C)それぞれへ分岐させる分岐処理が実行されるが、この際、上述したように条件Aは計測Aに対応付けられているため、処理は分岐ユニットを抜けた後、ステップS2の計測ユニット(計測A)に移行する。その後、カメラ30aでの撮像により得られた画像データを用いて、計測Aが示す計測処理が実行される。その計測処理が終了すると、ステップS6の合流ユニットを経て、ENDシンボルにより一のフローシーケンスが終了する。
コントローラ10がカメラ30bでの撮像により得られた画像データを取得した場合や、コントローラ10がカメラ30cでの撮像により得られた画像データを取得した場合も同様である。すなわち、前者の場合は、ステップS1の撮像ユニットから、ステップS5の分岐ユニットを介して、ステップS3の計測ユニット(計測B)が実行されるし、後者の場合は、ステップS1の撮像ユニットから、ステップS5の分岐ユニットを介して、ステップS4の計測ユニット(計測C)が実行される。
従来は、撮像ユニット(ステップS1)の実行終了タイミングが、単に、例えば計測Aの実行に用いる画像データに対して割り当て処理が実行されたときと決まっていたため、図2(a)に示すようなフローシーケンスを実現することができなかった。すなわち、撮像ユニットの実行終了タイミングが、計測Aの実行に用いる画像データに対して割り当て処理が実行されたときと決まっている場合には、ステップS1の撮像ユニット→ステップS5の分岐ユニットを介してステップS2の計測ユニット(計測A)という処理フローでしか画像処理を行うことができないし、撮像ユニットの実行終了タイミングが、計測Bの実行に用いる画像データに対して割り当て処理が実行されたときと決まっている場合には、ステップS1の撮像ユニット→ステップS5の分岐ユニットを介してステップS3の計測ユニット(計測B)という処理フローでしか画像処理を行うことができないし、撮像ユニットの実行終了タイミングが、計測Cの実行に用いる画像データに対して割り当て処理が実行されたときと決まっている場合には、ステップS1の撮像ユニット→ステップS5の分岐ユニットを介してステップS4の計測ユニット(計測C)という処理フローでしか画像処理を行うことができなかった。
しかし、本実施形態に係る画像処理装置1のように、撮像ユニット(ステップS1)の実行終了タイミングを、複数種類の撮像完了条件のうちいずれかが成立していると判定され、その撮像完了条件に対応付けられた計測ユニット(計測A〜計測Cのいずれか)の実行に用いる画像データに対して割り当て処理が実行されたときとすることによって、図2(a)に示すような処理フローが可能になる。
次に、図2(b)に示すフローチャートについて説明する。図2(b)に示すフローチャートでは、図2(a)に示すフローチャートにある分岐ユニット(ステップS5)及び合流ユニット(ステップS6)が存在しない。図2(b)では、上述したように、撮像完了条件と計測ユニットとの対応付けが各計測ユニットのプロパティにおいてなされている。したがって、ステップS2の計測ユニット(計測A)は、条件Aが成立していると判定されたときに実行されるが、それ以外のときには何も実行されずに通過(スルー)される。また、ステップS3の計測ユニット(計測B)は、条件Bが成立していると判定されたときに実行されるが、それ以外のときには何も実行されずに通過される。また、ステップS4の計測ユニット(計測C)は、条件Cが成立していると判定されたときに実行されるが、それ以外のときには何も実行されずに通過される。なお、撮像ユニット(ステップS1)の処理内容については、図2(a)と同様である。
したがって、撮像ユニット(ステップS1)において、条件Aが成立していると判定され上で割り当て処理が実行されている場合には、その後の処理フローとして、ステップS2の計測ユニット(計測A)のみが実行され、ステップS3の計測ユニット(計測B)及びステップS4の計測ユニット(計測C)は通過し、ENDシンボルにより一のフローシーケンスが終了する。条件Bや条件Cが成立していると判定された上で割り当て処理が実行されている場合も同様である。
なお、図2(a)及び図2(b)では、コントローラ10において、カメラ30a〜カメラ30cからの画像データが“得られた”ときに撮像完了条件が成立することとしているが、カメラ30a〜カメラ30cからの画像データが“得られる”ときに撮像完了条件が成立することとしてもよい。具体的には、例えば、PLC60からカメラ30a〜カメラ30cの撮像トリガ信号がコントローラ10に入力されたとき、としてもよい。
以上説明したように、画像処理装置1には、実行される処理内容が規定された複数の画像処理ユニットが記憶されており、その画像処理ユニットには、検査対象物を撮像するカメラから得られた画像データを用いた計測処理を実行する計測ユニット(ステップS2〜ステップS4)と、カメラから得られた画像データに対して計測処理に用いるための割り当て処理を実行する撮像ユニット(ステップS1)とが含まれている。また、画像処理装置1は、画像処理ユニットの処理手順を規定する画像処理プログラムに基づいて、その処理手順に沿って各画像処理ユニットが順次実行されるようになっている。
また、画像処理装置1には、複数のカメラのうち所定のカメラから画像データが得られるときに成立する複数種類の撮像完了条件が記憶されている。すなわち、複数のカメラのうち一又は複数のカメラの種別(カメラ30a,30b,30cなど)と、複数の計測処理(ステップS2〜ステップS4)のうち一の計測処理との対応付けが複数パターン設定されている。さらに、撮像ユニット(ステップS1)の処理内容として、画像データが複数のカメラのうちいずれのカメラから得られるものであるかが識別され、複数種類の撮像完了条件のうちいずれかが成立しているかが判定され、成立していると判定した撮像完了条件に対応付けられた計測ユニット(すなわち、複数パターンの対応付けのうち一の対応付けにおいて規定される種別のカメラから画像データが取得されたと判定されたとき、その一の対応付けにおいて規定される一の計測処理)の実行に用いる画像データに対して割り当てが行われるようになっている。
これにより、一の撮像ユニットから、処理手順内に存在する計測ユニットのうち、成立していると判定された撮像完了条件に対応付けられた計測ユニットに移行する、というように、所定の処理手順に同期させて撮像ユニット及び計測ユニットを実行することができる。しかも、本発明でいう撮像ユニットでは、複数種類の撮像完了条件のうちいずれかが成立していると判定されたことが契機となって計測ユニットへ移行するので、検査対象物を撮像する複数の撮像手段から画像データを得る撮像機構を、所定の処理手順と非同期で動作させることができる。その結果、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができる。さらに、このような効果を1台のコントローラで実現することができる。
以下に説明する本実施形態では、図2(a)に示すように、分岐ユニット(ステップS5)のプロパティにおいて撮像完了条件と計測ユニットの対応付けを行う場合を考える。
[ハードウェア構成]
図3は、本実施形態に係る画像処理装置1におけるコントローラ10のハードウェア構成を示すブロック図である。図3に示すように、画像処理装置1におけるコントローラ10は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行うCPUなどの主制御部11と、起動プログラムや初期化プログラムなどが格納されたROMやフラッシュROMなどのプログラムメモリ12と、CPU11が各種プログラムを実行する際のワークエリアとして機能するRAMなどのメインメモリ13と、外部のPLC60やPC70などと通信可能に接続される通信部14と、コンソール50からの操作信号が入力される操作入力部15と、を有する。また、画像処理装置1は、カメラ30a〜カメラ30cでの撮像により得られた画像データを取り込むASICなどの画像入力部16と、画像データをバッファリングする画像メモリ(フレームバッファ)17aと、エッジ検出や面積計算などの計測処理を実行するDSPなどの画像処理部18と、計測処理用に画像データを記憶する画像メモリ(ワークメモリ)17bと、液晶パネル等のモニタ40に対して画像を表示させるDSPなどの画像表示部19と、画像を表示させる際に画像データを一時記憶するVRAMなどのビデオメモリ20と、を有している。そして、これらの各ハードウェアは、バス等の電気配線を介して通信可能に接続されている。
プログラムメモリ12には、画像入力部16、画像処理部18、及び画像表示部19、並びに、通信部14及び操作入力部15の各部を、主制御部11により制御するための装置制御プログラムが格納されている。また、画像入力部16内のプログラムメモリ(図示せず)には、カメラ30a〜カメラ30cでの撮像により得られた画像データの取り込み、画像メモリ17aへのバッファリング、バッファリングされた画像データの計測処理用割り当て処理、画像メモリ17bへの内部転送などの各種処理を実行するための画像入力プログラムが格納され、画像処理部18内のプログラムメモリ(図示せず)には、計測処理を実行するための計測処理プログラムが格納され、画像表示部19内のプログラムメモリ(図示せず)には、モニタ40に画像を表示させるための画像表示プログラムが格納されている。なお、これら画像入力プログラム、計測処理プログラム、及び画像表示プログラムは、上述したプログラムメモリ12やメインメモリ13などに格納することもできる。
メインメモリ13、画像メモリ17a,17b、ビデオメモリ20は、SRAMやSDRAM等の揮発性メモリで構成されており、図3に示すコントローラ10で、別個独立したメモリとして設けられている。なお、不揮発性メモリを用いることもできるし、一個のメモリの記憶領域を切り分けて各メモリを構成することもできる。また、画像メモリ17aのフレームバッファは、読み書き同時アクセス可能となるように構成されている。
通信部14は、外部のPLC60に接続されたセンサ(光電センサ等)でトリガ入力があったときに、PLC60から撮像トリガ信号を受信するインターフェース(I/F)として機能する。また、PC70から転送されてくる画像処理装置1の画像処理プログラムやモニタ40の表示態様を規定するレイアウト情報などを受信するインターフェース(I/F)としても機能する。主制御部11は、この通信部14を介して、PLC60から撮像トリガ信号を受信すると、画像入力部16に対して撮像指令を送る。なお、撮像トリガ信号は、カメラ30a〜カメラ30cのいずれか一に対する撮像トリガになる場合もあるし、カメラ30a〜カメラ30cの全部に対する撮像トリガになる場合もある。したがって、主制御部11から画像入力部16へ送られる撮像指令も、カメラ30a〜カメラ30cのいずれか一方の撮像指令の場合もあるし、カメラ30a〜カメラ30cの全部同時の撮像指令の場合もある。なお、撮像トリガ信号を生成する装置として、PLC60ではなく、光電センサなどのトリガ入力用のセンサを通信部14に直接接続することもできる。
操作入力部15は、コンソール50からの操作信号を受信するインターフェース(I/F)として機能する。なお、コンソール50には、モニタ40上に表示されるカーソルを上下左右に移動させる十字キー、決定ボタン、又はキャンセルボタンなどが配置されている。これらの各部品は、ユーザが撮像完了条件を設定する際などに用いることができる。なお、コンソール50は、キーボードやマウスで代用することもできる。また、コンソール50の機能とモニタ40の機能を一体化させたタッチパネルを用いることもできる。
カメラ30a〜カメラ30cは、可視光線や赤外線を利用して検査対象物を撮像する撮像手段の一例であり、例えばCCDやCMOSを用いることができる。画像入力部16に接続された3台のカメラ30a〜30cは、内部にA/D変換器を有しており、撮像して得られた画像データをデジタルデータで出力する。また、画像入力部16(或いは主制御部11)からの画像データ取り込み信号に基づき動作する。例えば、カメラ30a〜カメラ30cのいずれか一のみで検査対象物を撮像することもできるし、カメラ30a〜カメラ30cの全部で検査対象物を撮像することもできる。なお、カメラ30a〜カメラ30cと、画像入力部16との間にリピーター等の増幅器を介在させることもできる。また、本実施形態では、カメラ30a〜30cにA/D変換器を内蔵させることとしたが、画像入力部16側にA/D変換器を設け、アナログ出力のカメラを用いることもできる。また、本実施形態では、3台のカメラを画像入力部16に接続しているが、例えば4台のカメラを画像入力部16に接続することもできる。
画像入力部16は、上述した画像入力プログラムに従って、画像データの取り込みを行う。具体的には、例えば、主制御部11からカメラ30aの撮像指令を受信すると、カメラ30aに対して画像データ取り込み信号を送信する。そして、カメラ30aで撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦画像メモリ17aにバッファリングされる。
ここで、本実施形態に係る画像処理装置1では、主制御部11から画像入力部16に送られた撮像指令は、画像入力部16内のワークメモリ(図示せず)に一時キャッシュされるようになっている。したがって、画像入力部16は、ワークメモリにキャッシュされている撮像指令の内容を参照することによって、画像メモリ17aにバッファリングされた画像データが、カメラ30a〜カメラ30cのうちいずれのカメラから得られるものであるかを識別することができる。一方、メインメモリ13には、カメラ30a〜カメラ30cのうち所定のカメラから画像データが得られるときに成立する複数種類の撮像完了条件(詳細は後述する)が記憶されている。
画像入力部16は、キャッシュされている撮像指令の内容を参照することによって、画像メモリ17aにバッファリングされた画像データが、カメラ30a〜カメラ30cのうちいずれのカメラから得られるものであるかを識別するとともに、メインメモリ13にアクセスして、複数種類の撮像完了条件を参照し、複数種類の撮像完了条件のうちいずれかが成立しているかを判定する。
画像入力部16は、複数種類の撮像完了条件のうち一の撮像完了条件が成立していると判定したときには、その一の撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データとしての、画像メモリ17aに記憶されている画像データに対して計測処理用割り当て処理(割り当て処理)を実行する。具体的には、画像メモリ17aにおいて、その画像データを予め用意しておいた画像変数に代入する。画像変数は、数値を扱う通常の変数と異なり、対応する画像処理ユニット(画像処理ユニットの詳細については後述する)の入力画像として割り付けることで、計測処理や画像表示の参照先となる変数である。画像入力部16により画像データが画像変数に代入され、計測処理用割り当て処理が実行されることで、図2を用いて説明したように、撮像ユニットの実行が終了する。
また、画像入力部16は、複数種類の撮像完了条件のうち複数の撮像完了条件が成立していると判定したときには、予め規定された優先順位に基づく一の撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して計測処理用割り当て処理を実行する。「予め規定された優先順位」についての詳細については後述する。
一方、画像入力部16は、複数種類の撮像完了条件のうちいずれの撮像完了条件も成立していないと判定したときには、計測処理用割り当て処理を実行することなく、画像データがカメラ30a〜カメラ30cのうちいずれのカメラから得られるものであるかを識別する処理を継続する。なお、識別する処理を常時繰り返してもよいし、定期的に繰り返してもよいし、継続する態様の如何は問わない。
計測ユニットの実行が始まると、画像入力部16は、画像メモリ17aから画像データを読み出して、画像処理部18を通じて画像メモリ17bに内部転送を行う。そして、画像処理部18は、上述した画像変数を参照しつつ、画像データに対する計測処理を実行する。
なお、本実施形態では、画像データがどのカメラから得られるものであるかを識別するにあたって、主制御部11から受信した撮像指令の内容を用いているが、画像入力部16からカメラ30a〜カメラ30cに送信される画像取り込み信号を用いることもできる。この場合、この画像取り込み信号を、画像入力部16内のワークメモリに一時キャッシュすればよい。また、撮像指令や画像取り込み信号以外にも、[概略構成]で説明したように、PLC60からの撮像トリガ信号を用いることもできる。
また、本実施形態では、画像データの計測処理用割り当て処理として、画像メモリ17aにおいて画像データを予め用意しておいた画像変数に代入することを考えたが、他にも方法はいろいろ考えられる。例えば、C言語のポインタを使って、画像データが記憶されている配列要素を画像変数として指し示すようにすることもできる。或いは、カメラ30a〜カメラ30cから得られる画像データが画像メモリ17aへバッファリングされる際、最初から、画像データをカメラに対応する画像変数に代入しておくことができる。この場合、画像変数を用いて、画像データがどのカメラから得られるものであるかを識別するとともに、画像メモリ17bへの内部転送を、画像データに対する計測処理用割り当て処理とすることができる。
画像処理部18は、画像メモリ17bに記憶された画像データを読み出して、計測処理を実行する。なお、計測処理の実行対象となる画像データは、画像メモリ17aに記憶されていた画像データと同一のものであってもよいし、画像入力部16又は画像処理部18において前処理(ノイズ除去等)が実行された後の画像データであってもよい。
画像表示部19は、主制御部11から送られてきた表示指令に基づいて、モニタ40に所定画像を表示させる。例えば、画像メモリ17bに記憶されている計測処理前又は計測処理後の画像データを読み出して、ビデオメモリ20に一時記憶し(展開し)、モニタ40に対して画像データ表示信号を送信する。
[画像処理の流れ]
図4は、本実施形態に係る画像処理装置1における撮像機構の動作を示すフローチャートである。なお、ここでいう「撮像機構」は、図2を用いて説明したように、所定の処理手順とは非同期に、カメラ30a〜カメラ30cから画像データを(繰り返し)取得する機構である。
図4に示すように、まず、外部からのトリガ入力があったか否かが判断される(ステップS7)。具体的には、主制御部11は、通信部14を介してPLC60から撮像トリガ信号を受信したか否かを判断する。未だ受信していないと判定した場合には(ステップS7:NO)、受信するまで待機する。一方、受信したと判定した場合には(ステップS7:YES)、主制御部11は画像入力部16に対して撮像指令を送る。これにより、上述したように、画像入力部16において画像データの取り込み(ステップS8)、画像メモリ17aへのバッファリング(ステップS9)が行われる。画像データの取り込みと画像メモリ17aへのバッファリングは、外部からのトリガ入力を契機として繰り返し行われる。これにより、撮像の取りこぼしを防ぐための撮像禁止期間をなくすることができる。
図5は、本実施形態に係る画像処理装置1を制御するための処理手順の一例を示すフローチャートである。図5に示すフローチャートは、STARTシンボル(ここではSで示す)からENDシンボル(ここではEで示す)までのフローシーケンスを1周期分の画像処理として計測周期が定められており、撮像ユニット(ステップS11)、処理フローを2以上の枝フローに分岐させる分岐ユニット(ステップS12)、計測ユニットの一例として面積計算を行うエリアユニット(ステップS13及びステップS14)、分岐された枝フローを合流させる合流ユニット(ステップS15)から構成されている。これらの各処理ユニットは、パラメータが変更可能な処理を示すシンボルであり、PC70上においてフローチャートに配置される。なお、以下の説明では、説明の便宜上、カメラ30a〜カメラ30cのうちカメラ30a及びカメラ30bのみを使用する。
図5に示すように、まず、撮像ユニットが実行される(ステップS11)。この撮像ユニットが実行されているとき、画像入力部16において、撮像機構(図4)によって得られる画像データが、カメラ30a又はカメラ30bのうちいずれのカメラから得られるものであるかが識別される。そして、画像入力部16において、その識別結果に基づいて、複数種類の撮像完了条件のうちいずれかが成立しているかが判定され、成立していると判定された撮像完了条件に対応付けられたエリアユニット(ステップS13或いはステップS14)の実行に用いる画像データに対して計測処理用割り当て処理が実行される。その後、分岐ユニット(ステップS12)を介して、ステップS13のエリアユニットか、或いは、ステップS14のエリアユニットが実行される。
ステップS11の撮像ユニットについて、図6を用いて更に詳述する。図6は、図5に示す撮像ユニット(ステップS11)における処理の流れを示すフローチャートである。図6に示すように、本実施形態では、画像メモリ17aが撮像完了条件を満たすか否かが判断される(ステップS111)。具体的には、画像入力部16は、メインメモリ13にアクセスして、予め設定された撮像完了条件を参照し、主制御部11から受信した撮像指令に基づき撮像完了条件が成立しているか否かを判定する。
例えば図7は、撮像完了条件の一例を示す図である。図7では、画像メモリ17aに記憶されている画像データが、カメラ30aから得られた画像データであるときに条件0が成立し、カメラ30bから得られた画像データであるときに条件1が成立するように設定されている。本実施形態では、図6に示すステップS111において、画像メモリ17aが、図7に示す(条件0又は条件1の2種類から構成される)撮像完了条件を満たすか否かが判断される。
撮像完了条件を満たしていないと判定された場合(ステップS111:NO)、すなわち、画像メモリ17aに、カメラ30aから得られた画像データもカメラ30bから得られた画像データも記憶されていないと判定された場合には、画像入力部16は、撮像完了条件が満たされるまで待機する。一方、撮像完了条件を満たすと判定された場合(ステップS111:YES)、すなわち、画像メモリ17aに、カメラ30aから得られた画像データ、或いはカメラ30bから得られた画像データのいずれか記憶されていると判定された場合には、画像入力部16は計測処理用割り当て処理を行う(ステップS112)。具体的には、画像入力部16は、画像メモリ17aにバッファリングされている画像データを、計測処理用に予め用意しておいた画像変数に代入する。この計測処理用割り当て処理が終わると、ステップS11の撮像ユニットの実行は終了する。なお、この撮像ユニットが実行されている最中に、常時ステップS111の判定処理が行われてもよいし、定期的な間隔でステップS111の判定処理が行われてもよい。
図5に戻って、ステップS11の撮像ユニットの実行が終了した後、次に分岐ユニットの処理が実行される(ステップS12)。具体的には、本実施形態では、分岐ユニットのプロパティにおいて、図7に示す条件0は、図5に示すステップS13のエリアユニットと対応付けられ、図7に示す条件1は、図5に示すステップS14のエリアユニットと対応付けられている。したがって、図7に示す撮像完了条件のうち条件0が成立していると判定された場合には、図5に示すステップS13のエリアユニットが実行される一方で、図7に示す撮像完了条件のうち条件1が成立していると判定された場合には、図5に示すステップS14のエリアユニットが実行される。
ステップS13のエリアユニット又はステップS14のエリアユニットが実行されているとき、画像入力部16は、画像変数に代入された画像データを画像メモリ17aから画像メモリ17bへ内部転送する。画像処理部18は、画像メモリ17bから画像データを読み出して、エッジ検出や面積計算(エリア計算)などの計測処理を実行する。その際、画像データが代入されている画像変数を参照することによって、カメラ30aから得られた画像データに対して計測処理を実行しているか、カメラ30bから得られた画像データに対して計測処理を実行しているかを認識する。
最後に、合流ユニット(ステップS15)において、エンドシンボルにより1回のフローシーケンスが終了する。なお、ステップS13とステップS14で示すエリアユニットの実行内容は、同じあっても異なっていてもよい。
以上説明したように、画像処理装置1のコントローラ10では、図5に示すフローチャートのバックグラウンドで動作する撮像機構によって、検査対象物を非同期で撮像するとともに(図4)、図5に示すフローチャートの撮像ユニット(ステップS11)において、複数種類の撮像完了条件のうちいずれかが成立しているかが判定され、成立していると判定された撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して計測処理用割り当て処理が実行される。すなわち、図5に示すフローチャートに同期させて撮像ユニット(ステップS11)及びエリアユニット(ステップS13又はステップS14)を実行することができる。したがって、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができるとともに、撮像ユニットやエリアユニットを非同期で実行した場合に生じるメモリ競合やバグ修正の問題を防ぐことができる。
[タイミングチャート]
次に、図4〜図7を用いて説明した画像処理を、タイミングチャートを用いて時系列に説明する。図8は、本実施形態に係る画像処理装置1における画像処理の流れを示すタイミングチャート(概念図)である。図8(a)は、撮像トリガ信号などの外部トリガの入力タイミングを示し、図8(b)は、カメラ30aを用いた撮像(図4のステップS8)及びバッファリング(図4のステップS9)の処理期間を示し、図8(c)は、カメラ30bを用いた撮像(図4のステップS8)及びバッファリング(図4のステップS9)の処理期間を示し、図8(d)は、画像メモリ17aの記憶状態(図8(d)では、カメラ30aから得られた画像データKaが記憶されているときには上半分を塗りつぶし、カメラ30bから得られた画像データKbが記憶されているときには下半分を塗りつぶしている。)を示し、図8(e)は、画像メモリ17aが撮像完了条件を満たす記憶状態になったタイミングを示し、図8(f)は、撮像ユニット(図5のステップS11)が実行中である期間(実行期間)を示し、図8(g)は、分岐ユニット(図5のステップS12)から合流ユニット(図5のステップS15)までの実行タイミング(実行期間)を示す。
なお、図8(a)については、上段にカメラ30aに対する外部トリガの入力タイミングを示し、下段にカメラ30bに対する外部トリガの入力タイミングを示す。また、図8(g)では、計測ユニット(図5に示すステップS13及びステップS14のエリアユニット)の実行期間が主となるため、「計測ユニット」と示している。また、図8(a)〜図8(e)までのタイミングチャートは、図4に示すフローチャートに対応するものであって、図8(f)と図8(g)のタイミングチャートは、図5に示すフローチャートに対応するものである。
また、図8は、あくまで概念図であって、各パルスの時間幅や立ち上がり/立ち下がりタイミングは、適宜変更可能である。例えば図8とは異なり、各外部トリガのパルスの時間幅を限りなく0にしてもよいし、各パルスの立ち下がりタイミングで、カメラ30a又はカメラ30bの撮像が行われるようにしてもよい。
図8(a)に示すように、まず、カメラ30aに対する外部トリガTra1の入力があったとき、カメラ30aにおいて検査対象物(ワークW1)の撮像が行われる。図8(b)は、上述したように、カメラ30aでの撮像により得られた画像データKaの取り込み、画像入力部16により画像メモリ17aへのバッファリングが行われている期間を示している。また、図8(b)中のW1は最初のワーク、W2は次のワーク、W3は更に次のワークを示している。
画像メモリ17aへのバッファリングが終了すると、図8(d)に示すように、画像メモリ17aに、カメラ30aから得られた画像データKaが記憶された状態となる。そのとき、画像メモリ17aが撮像完了条件のうち“条件0”(図7参照)を満たす記憶状態になるため(図8(e))、画像入力部16で撮像完了条件が成立していると判定され、画像入力部16で計測処理用割り当て処理が実行される。具体的には、カメラ30aから得られた画像データKaが、計測処理用に予め用意しておいた画像変数に代入される。
その後、画像変数に代入された画像データKaは、画像メモリ17bへ内部転送され、画像データKaに対してエリアユニット(図5に示すステップS13)が実行される。なお、図8(g)において、(W1,Ka)は、カメラ30aにおいてワークW1の撮像が行われた結果、得られた画像データKaに対するエリアユニットが実行されることを意味する。
以下同様にして、外部トリガTrb1,Tra2,Trb2の入力があったときも同様である。外部トリガTrb1の入力→カメラ30bでの撮像→画像データKbの取り込み→画像メモリ17aへのバッファリング→撮像ユニットから計測ユニット(W1,Kb)への移行、が順次行われ、外部トリガTra2の入力→カメラ30aでの撮像→画像データKaの取り込み→画像メモリ17aへのバッファリング→撮像ユニットから計測ユニット(W2,Ka)への移行、が順次行われ、外部トリガTrb2の入力→カメラ30bでの撮像→画像データKbの取り込み→画像メモリ17aへのバッファリング→撮像ユニットから計測ユニット(W2,Kb)への移行、が順次行われる。
ここで、3個目のワークW3が、カメラ30aの下に早く到着したとする。すなわち、カメラ30bでの撮像により得られた画像データKbの取り込み及びバッファリングが終了する前に、外部トリガTra3が入力されたとする(図8(a)参照)。この場合、カメラ30aでの撮像により得られたW3の画像データKaが取り込まれ(図8(b)参照)、その画像データが画像メモリ17aに一旦バッファリングされる(図8(d)参照)。したがって、外部トリガTra3が入力されたとき、撮像をとりこぼすことなく、カメラ30aにおいてワークW3の撮像を行うことができる。
また、外部トリガTra3の入力により、カメラ30aでの撮像により得られたW3の画像データKaがバッファリングされたとき、(W2,Kb)の計測ユニットが実行されている(図8(f)中の矢印O参照)。画像処理部18において(W2,Kb)の計測ユニットの処理が終了すると、画像入力部16は、計測ユニットの処理が終了した旨の信号を画像処理部18から受信したことを契機として、次の計測周期に移行する。それに伴い、次の計測周期における撮像ユニットが実行される(図8(f)中の矢印P参照)。そして、この撮像ユニットにおいては、上述同様、画像入力部16によって、画像メモリ17aが、図7に示す撮像完了条件を満たすか否かが判断され、撮像完了条件のうち“条件0”を満たすと判定されるため、計測処理用割り当て処理が実行される。
その後、図8(g)に示す計測ユニットに移行する。具体的には、画像入力部16によって、画像メモリ17aから画像メモリ17bへ内部転送が行われ、面積計算などの計測処理が実行される。
[撮像完了条件の設定]
図9は、画像処理装置1の画像処理プログラムが生成されるPC70の機能構成例を示すブロック図である。図10は、PC70の表示部705に表示されたエディタ画面(主要部のみ)の一例を示す図である。図11は、図7に示す撮像完了条件を設定する設定画面の一例を示す図である。
図1又は図3に示すPC70は、CPUやROM、RAM等から構成され、フローチャート生成部7011及びプログラム生成部7012として機能する制御部701と、ハードディスク等から構成され、処理ユニット記憶部7021及び検査用データ記憶部7022として機能するメモリ702と、画像処理装置1のコントローラ10と通信可能に接続される通信部703と、マウスやキーボード等から構成される入力部704と、液晶モニタ等で構成される表示部705と、を有している。
フローチャート生成部7011は、スタートシンボルにおいて開始し、エンドシンボルにおいて終了するフローチャートを生成する機能を有し、実行フロー上に画像処理ユニットを配置することによって生成する。具体的には、入力部704の操作によって、所望の画像処理ユニットが、図10に示すエディタ画面のパーツリスト(右側)からフロービューウィンドウ(左側)の所望の箇所にドラッグアンドドロップされると、フローチャート生成部7011は、その箇所にその画像処理ユニットを配置する。
各画像処理ユニットは、処理ユニット記憶部7021から読み出される。図10に示すように、パーツリスト内には複数の画像処理ユニットが表示されており、「画像入力」「計測」「制御」「演算」「タイミング」「表示」「出力」「コマンド出力」のカテゴリーに区分されている。「画像入力」は、撮像に関する画像処理ユニットが属するカテゴリーであり、上述した撮像ユニット(図5のステップS11)が属している。この撮像ユニットには、シャッタースピード、カメラ感度、フラッシュオン時間、フラッシュ遅延時間、撮像対象カメラ、トリガ端子を指定するためのパラメータがプロパティとして関連付けられている。特に、本実施形態に係る画像処理装置1では、図11を用いて後述するように、撮像完了条件を設定するためのパラメータもプロパティとして関連付けられる。
その他、「計測」は、計測に関する画像処理ユニットが属するカテゴリーであり、撮像ユニットによって得られた画像データから計測結果を抽出し、この計測結果に基づいて検査対象物の良否を判定する計測ユニットが属している。例えば、上述したエリアユニット(図5のステップS13、ステップS14)や、エッジ位置検出ユニット、色検査ユニットなどが属している。「制御」は、制御に関する画像処理ユニットが属するカテゴリーであり、バイパスユニットやエンドシンボルなどの制御ユニットが属している。バイパスユニットは、実行フローを2以上の枝フローに分岐させる分岐ユニットと、分岐された枝フローを合流させる合流ユニットからなる画像処理ユニットであり、所定条件で実行フローを分岐させるユニットである。エンドシンボルは、1回のフローシーケンスを終了させるためのシンボルである。「演算」は、数値演算ユニットなど、演算に関する画像処理ユニットが属するカテゴリーであり、「タイミング」は、タイマ待ちユニットなど、フロー遷移のタイミング制御に関する画像処理ユニットが属するカテゴリーであり、「表示」は、表示に関する画像処理ユニットが属するカテゴリーであり、「出力」及び「コマンド出力」は、それぞれ出力及びコマンド出力に関する画像処理ユニットが属するカテゴリーである。
図9に戻って、プログラム生成部7012は、ユーザが図10に示すフロービューウィンドウで作成したフローチャートを、コントローラ10で解釈できる設定データに直して、検査用データを生成する機能を有する。生成された検査用データ(画像処理プログラム)は、メモリ702の検査用データ記憶部7022に記憶される。制御部701は、検査用データ記憶部7022から検査用データを読み出して、通信部703を介してコントローラ10へ転送する。
このように、図10に示すフロービューウィンドウは、コントローラ10の画像処理プログラムを新たに作成し、又は、コントローラ10から取得した画像処理プログラムを編集するために、処理手順を示すフローチャートを表示するためのウィンドウとなる。ユーザは、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に、画像処理ユニットを配置することによって、簡易に所望の画像処理プログラムを作成することができる。すなわち、コントローラ10に行わせる一連の画像処理は、画像処理ユニットとしてブロック化されていて、ユーザが画像処理ユニットを実行フロー上に配置するだけで、その画像処理ユニットが、直前の画像処理ユニットの処理結果に基づいて所定の処理を行うフローシーケンスを作成することができる。
ここで、図10に示すフロービューウィンドウにおいて、撮像ユニットにカーソルを合わせて右クリック操作(入力部704を操作)すると、図11に示すプロパティを設定するための編集画面が表示部705に表示される。或いは、設定エディタ画面にはユニットプロパティウィンドウ(図示せず)が設けられ、そのユニットプロパティウィンドウに、フロービューウィンドウで選択され、フォーカス表示されている画像処理ユニットのプロパティが表示される。そして、図11に示す編集画面において、複数種類の撮像完了条件が設定される。
図11に示すように、設定画面の上部には、撮像に関する全般的な設定を行う全般設定用タブ1001、外部トリガの入力タイミング(或いは一定の遅延時間を加味して)同期させるか否か等の設定を行うトリガ設定用タブ1002、撮像を行う際の照明設定を行う照明設定用タブ1004、そして、現在選択されている撮像完了条件設定用タブ1003が配置されている。
撮像完了条件設定用タブ1003を選択すると、撮像完了条件設定テーブル1005、コメントエリア1006、OKボタン1007、キャンセルボタン1008が現れる。ユーザは、PC70の入力部704を介して、例えば、撮像完了条件設定テーブル1005上のチェックボックスにチェックを入れ、撮像完了条件を設定する。撮像完了条件設定テーブル1005では、カメラが4台接続されるケースを想定して、カメラ1〜カメラ4の4列を用意するとともに、4種類の条件を設定できるように、条件0〜条件3の4行を用意している。本実施形態では、カメラ1とカメラ2が、それぞれ実際に使用するカメラ30aとカメラ30bに相当する。図7に示す撮像完了条件を設定するには、条件0でカメラ30aを選択し、条件1でカメラ30bを選択すればよい。
最後に、OKボタン1007を押すことによって、撮像完了条件の設定が完了する。このように、本実施形態に係る画像処理装置1では、複数種類の撮像完了条件の各々は、カメラ30a(カメラ1)又はカメラ30b(カメラ2)のうちいずれのカメラから画像データが得られるときに成立するかを設定し得るように構成されている(図11)。すなわち、つまり、PC70或いはコンソール50を用いて、ユーザが複数種類の撮像完了条件の内容について設定可能に構成されている。これにより、画像処理装置1の使い勝手を高めることができる。
なお、分岐ユニット(図5のステップS12)のプロパティ設定についても同様である。すなわち、特に図示しないが、分岐ユニットのプロパティ設定を設定するための編集画面が表示部705に表示され、入力部704を通じて、撮像完了条件と計測ユニットとの対応付けが行われる。すなわち、本実施形態に係る画像処理装置1では、画像処理ユニットの中に、処理手順を複数の計測ユニットそれぞれへ分岐させる分岐処理を実行する分岐ユニットが含まれており、画像入力部16により成立していると判定された撮像完了条件と計測ユニットとの対応付けを設定し得るように構成されている。その結果、複数のカメラのうち一又は複数のカメラの種別と、複数の計測処理のうち一の計測処理との対応付けを複数パターン(条件0とカメラ1との対応付け、条件1とカメラ2との対応付け)設定することが可能になる。
その後、フローチャートに基づき検査用データが生成され、その検査用データがコントローラ10に転送される。主制御部11は、画像処理プログラムを含む検査用データをメインメモリ13に記憶するとともに、画像入力部16から撮像完了条件設定テーブル1005の設定内容を参照できるようにする。そして、画像入力部16が、撮像完了条件設定テーブル1005の設定内容を適宜参照することによって、撮像完了条件が成立しているか否かの判定が行われる。なお、本実施形態では、撮像完了条件設定テーブル1005の設定内容をメインメモリ13に記憶させることとしたが、画像入力部16内のワークメモリ、或いは画像メモリ17aに記憶させてもよい。また、EEPROMなどの不揮発性メモリを用いれば、例えば製品出荷前に予め撮像完了条件を設定しておくこともできる。これにより、ユーザが撮像完了条件を設定する手間を省くこともできる。
このように、画像処理装置1に接続され、画像処理装置1の検査用データ(画像処理プログラム)を作成するPC70において、ユーザの操作により複数の撮像完了条件(条件0及び条件1)が設定された撮像ユニットを含むフローチャートが生成され、フローチャートに基づいて画像処理装置1の検査用データ(画像処理プログラム)が生成された後、その画像処理プログラムが画像処理装置1に転送される。そして、主制御部11は、その画像処理プログラムに基づいて、画像入力部16からも撮像完了条件設定テーブル1005の設定内容を参照できるように、撮像完了条件を設定する。なお、図11に示す画面は、画像処理装置1のモニタ40に表示されるようにして、ユーザのコンソール50操作に基づいて、主制御部11が撮像完了条件を設定するようにしてもよい。
[変形例]
図12は、本発明の他の実施の形態に係る画像処理装置1における画像処理の流れを示すタイミングチャート(概念図)である。図12に示すタイミングチャートでは、計測ユニットの実行に時間が掛かっている。すなわち、図12(g)に示すように、計測ユニットの実行時間が、図8(g)に示す実行時間と比べて長くなっている。これは、例えば精緻なパターンマッチングなど、演算負荷の重い計測処理が行われる場合などに想定される。このような場合には、一つ前の計測処理が長引いたことに起因して、画像入力部16において二以上の撮像完了条件が複数同時に成立していると判定される可能性がある。
具体的には、図12(g)に示す(W2,Ka)の計測ユニットの実行が終了した後、次の計測周期において、撮像ユニットが実行されるとする(図12(f)の矢印Q、図5のステップS11)。このとき、画像入力部16は、撮像完了条件設定テーブル1005の設定内容を参照し、図7に示す撮像完了条件が成立しているか否かを判断するが、図12(e)に示すように、条件0と条件1の双方が成立している。したがって、このような場合には、画像入力部16は、カメラ30aから得られた画像データに対して計測処理用割り当て処理を行えばよいのか、或いは、カメラ30bから得られた画像データに対して計測処理用割り当て処理を行えばよいのか分からない。その結果、画像処理エラーに繋がる可能性がある。
そこで、本発明の他の実施形態に係る画像処理装置1では、画像入力部16は、複数種類の撮像完了条件のうち複数の撮像完了条件が成立していると判定されたときには、予め規定された優先順位(詳細は後述する)に基づく一の撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して割り当て処理を実行するようにしている。また、画像メモリ17aにおいて最も早く成立した撮像完了条件を使用できるように、撮像完了条件が成立したタイミングを検出する検出手段としての機能をもたせている。具体的には、これらの機能を画像入力部16に実現させるプログラムが、画像入力部16内のプログラムメモリ(図示せず)等に格納されている。なお、タイミングを検出する機能を実現するにあたっては、例えば、外部タイマ又は外部カウンタ、或いはCPU内蔵タイマ等を用いて、成立タイミング(成立時刻等)を画像入力部16内のワークメモリ或いは画像メモリ17a等に記憶しておけばよい。
画像入力部16は、(W2,Ka)の計測ユニットの実行が終了した後、次の計測周期において、撮像ユニットを実行する。このとき、画像メモリ17aでは、図12(f)の矢印Qのタイミングにおいて撮像完了条件のうち条件1と条件0が両方同時に成立している。そこで、画像処理部16は、条件1が成立したタイミングと、条件0が成立したタイミングとをワークメモリ等から読み出して、両者を比較する。そして、先に成立している条件1を使用して、カメラ30bから得られた画像データを計測処理の実行対象として決定し、計測処理用割り当て処理(上述同様、画像変数への代入)を行う。その結果、(W2,Kb)の計測ユニットが実行される。
このように、画像入力部16に、予め規定された優先順位に基づき画像データに対して割り当て処理を実行する機能や撮像完了条件が成立したタイミングを検出する機能をもたせることで、計測処理対象が不明となる画像処理エラーを防ぐことができる。また、ここでは最先の成立タイミングを用いたが、最も直近の(最も後の)成立タイミング(すなわち、図12でいえば条件0)を用いてもよい。また、例えば各撮像完了条件で、予め優先順位を規定することもできる(図13参照)。
図13は、本発明の他の実施の形態に係る画像処理装置1で使用する撮像完了条件設定テーブルである。図7に示す撮像完了条件設定テーブルと異なる点は、最右列に優先順位の項目がある点である。例えば、カメラ1(カメラ30a)は、ワークの種類を識別するための識別子(バーコード等)を撮像するカメラであって、カメラ2(カメラ30b)は、ワークの所定面を撮像するカメラである場合に、カメラ1での撮像を優先させたいときがある。このようなときには、例えばプルダウンメニュー等により、図13の最右列に示すように、条件0の優先順位を“高”に設定し、条件1の優先順位を“低”に設定しておく。優先順位の設定は、例えばPC70上で、或いはモニタ40とコンソール50を使って設定する。画像入力部16は、図13に示す撮像完了条件設定テーブルを参照する際に、優先順位の高い条件(条件0)から使用する。これにより、図12(f)の矢印Qのタイミングにおいて、カメラ30aから得られた画像データに対して計測処理用割り当て処理が実行される。その結果、図12とは異なり、(W2,Kb)の代わりに、(W3,Ka)の計測ユニットが実行される。このように、撮像完了条件に優先順位をつけておけば、撮像完了条件の重要度ランク付けを行うことができる。つまり、図13に示す撮像完了条件設定テーブルを用いれば、複数種類の撮像完了条件のうちいずれの撮像完了条件も成立していないと判定されたときには、割り当て処理を実行することなく、画像データが複数の撮像手段のうちいずれの撮像手段から得られるものであるかを識別する処理を継続し、複数種類の撮像完了条件のうち一の撮像完了条件が成立していると判定されたときには、撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して割り当て処理を実行し、複数種類の撮像完了条件のうち二以上の撮像完了条件が成立していると判定されたときには、予め規定された優先順位に基づく一の撮像完了条件に対応付けられた計測ユニットの実行に用いる画像データに対して割り当て処理を実行することができる。したがって、撮像完了条件が成立していない場合、或いは、二以上の撮像完了条件が成立している場合であっても、撮像ユニットの処理内容が不明になることなく、所定の処理手順に同期させて撮像ユニット及び計測ユニットを実行することができる。
図14は、本発明の他の実施の形態に係る画像処理装置1で使用する撮像完了条件設定テーブルである。図13に示す撮像完了設定テーブルと異なる点は、コントローラ10に接続された4台のカメラ(カメラ1〜カメラ4)について、撮像完了条件を設定している点である。例えば、カメラ1(カメラ30a)は、ワークの種類を識別するための識別子を撮像するカメラであって、カメラ2〜カメラ4(カメラ30b〜カメラ30d)は、それぞれワークの上面、下面、側面を同時に撮像するカメラである。なお、図12と同様に、条件0の優先順位を“高”に設定し、条件1の優先順位を“低”に設定している。
図15は、図14に示す撮像完了条件設定テーブルを用いた画像処理の流れを示すタイミングチャート(概念図)である。なお、図15(c)〜図15(e)に示すように、カメラ2〜4は撮像タイミングが同時であることが分かる。また、Trb1〜Trb3は、カメラ30b〜30dに対する外部トリガの入力タイミングを示す。また、図15(f)に示す画像メモリ17aの記憶状態は、カメラ30a(Ka)〜カメラ30d(Kd)から得られた画像データにのみ着目しており、カメラ30a(Ka)〜カメラ30d(Kd)それぞれ2画面分のみを図示している。さらに、図15(i)に示すように、カメラ2〜カメラ4から得られた画像データに対する計測ユニットを実行する際は、カメラ1から得られた画像データに対する計測ユニットを実行するときよりも処理時間が長く掛かっている。
図15(h)及び図15(i)に示すように、(W2,Ka)の計測ユニットが終了した後、次の計測周期において、撮像ユニット処理が実行される(図15(h)の矢印R参照)。このとき、画像入力部16は、撮像完了条件設定テーブルの設定内容を参照し、図14に示す撮像完了条件が成立しているか否かを判断するが、その際、優先順位の高い条件(条件0)から使用する。これにより、図15(h)の矢印Rのタイミングにおいて、カメラ30aから得られた画像データに対して計測処理用割り当て処理が実行される。その結果、(W3,Ka)の計測ユニットが実行される。
なお、(W3,Ka)の計測ユニットの実行が完了する前に、カメラ30b〜カメラ30dでの画像データ取り込み(図15(c)〜図15(e)参照)が行われた場合には、画像メモリ17aに2画面分の画像データが記憶される(図15(f)参照)。その後、例えば、画像メモリ17aに記憶された順に計測ユニットを実行することができる。
画像メモリ17aに何画面分の画像データが記憶できるようにするかは、ユーザが設定可能である。すなわち、画像処理装置1に、撮像手段の撮像によって得られた画像データを記憶手段に記憶可能な容量を設定する容量設定手段を設けることもできる。これにより、撮像機構によりストック可能な画像データの許容量を調整することができ、ひいては画像処理装置1の利便性を高めることができる。
また、画像メモリ17aに追加の画像データを記憶することができない状態のとき、その状態を取得するようにしてもよい。すなわち、記憶手段に、撮像手段の撮像によって得られた画像データを追加記憶することができない場合には、その旨をユーザに報知する報知手段を設けてもよい。ユーザに報知する態様としては、例えば、モニタ40にアラーム表示を行うことが考えられる。これにより、ワークが流れてくる間隔を広げたり、上述した容量設定手段により許容量を増やしたりするなど、ユーザは迅速に対応することができる。
また、画像メモリ17aに追加の画像データを記憶することができない状態のとき、追加の撮像をさせないか、上書きで撮像するかを選択できるようにしてもよい。すなわち、記憶手段に、撮像手段の撮像によって得られた画像データを追加記憶することができない場合には、それ以降の撮像手段による撮像を禁止させるか、或いは、既に記憶手段に記憶されている画像データに上書きしていくかを選択する選択手段を設けてもよい。これにより、ユーザの要望に応じて撮像禁止を行うか否かを決めることができ、ひいては画像処理装置1の利便性を高めることができる。
なお、上述した容量設定手段、報知手段、選択手段の各機能は、モニタ40及びコンソール50や、主制御部11及び画像入力部16などによって実現することができる。
図16は、本発明の他の実施の形態に係る画像処理装置1で使用する撮像完了条件設定テーブルである。図16の撮像完了条件設定テーブルに示すように、条件0でカメラ1とカメラ2が設定され(カメラ1とカメラ2は同時に動作する)、条件1でカメラ3が設定され、条件2でカメラ4が設定されてもよい。
図17は、本実施形態に係る画像処理装置1における画像処理の他の処理手順の一例を示すフローチャートである。特に、図16に示す撮像完了条件設定テーブルを用いた処理手順について説明する。
図17に示す撮像ユニット(ステップS21)のプロパティとして、撮像完了条件設定テーブルは図16に示すようになっている。そして、分岐ユニット(ステップS22)のプロパティとして、条件0とステップS23のエリアユニット及びステップS24の色検査ユニットとが対応付けられ、それ以外の条件(条件1、条件2)は他の計測ユニットとが対応付けられている。また、分岐ユニット(ステップS26)のプロパティとして、条件1とステップS27の数値演算ユニットとが対応付けられ、それ以外の条件(条件2)とステップS29のエッジ位置検出ユニットとが対応付けられている。このように、分岐ユニットのプロパティにおいて、撮像完了条件の各条件と、撮像ユニットより下流に配置された計測ユニットの対応付けがなされている。
なお、対応付けの態様については様々あって、要は、移行する処理フローが認識できればよい。したがって、例えば、分岐ユニット(ステップS22)のプロパティとして、条件0とステップS23のエリアユニット及びステップS24の色検査ユニットとが対応付けられていなくても、条件0とステップS23のエリアユニットのみが対応付けられていてもよい。このような対応付けでも、移行する処理フローは認識することができる。更にいえば、例えば、分岐ユニット(ステップS22)のプロパティとして、それよりも下にある何らかの計測ユニットに対応付けられていてもよい。このような対応付けでも、移行する処理フローは認識することができる。
このようなフローチャートにおいて、画像メモリ17aにカメラ1とカメラ2からの画像データがバッファリングされると、計測処理用割り当て処理が行われた後、ステップS21からステップS22を介して、エリアユニット(ステップS23)と色検査ユニット(ステップS24)が実行される。また、画像メモリ17aにカメラ3からの画像データがバッファリングされると、計測処理用割り当て処理が行われた後、ステップS21からステップS22、ステップS26を介して、数値演算ユニット(ステップS27)が実行される。さらに、画像メモリ17aにカメラ4からの画像データがバッファリングされると、計測処理用割り当て処理が行われた後、ステップS21からステップS22、ステップS26を介して、エッジ位置検出ユニット(ステップS29)が実行される。
なお、図17では、2個の分岐ユニット及び2個の合流ユニットを用いることとしたが、1個の分岐ユニット及び1個の合流ユニットを用いるようにしてもよい。すなわち、ステップS22とステップS26の分岐ユニットを1つの分岐ユニットに纏め、ステップS25とステップS28の合流ユニットを1つの合流ユニットに纏めることによって、3分岐としてもよい。また、他にも、図18の撮像完了条件設定テーブルに示すように、条件0でカメラ1、条件1でカメラ2、条件2でカメラ3、条件3でカメラ4が設定されてもよい。
図19は、本発明の他の実施の形態に係る画像処理装置1における画像処理の主な流れを示すフローチャートである。これまで説明した画像処理では、図4に示す撮像機構を切り離して、非同期で動作させることとしたが、図19に示すように、図4に示す撮像機構を組み込んで、撮像ユニット内でシリアルに動作させることとしてもよい。
図19に示す画像処理は、大きく分けて撮像ユニット(ステップS31、点線枠参照)と、計測ユニット(ステップS32)に分けられる。なお、ステップS32の計測ユニットは、図5と同様に分岐ユニット・エリアユニット・合流ユニットの各ユニット(ステップS12〜ステップS14)としてもよい。
図19に示す撮像ユニット(ステップS31)において、まず、外部からのトリガ入力があったか否かが判断される(ステップS311)。トリガ入力がなかった場合には(ステップS311:NO)、これがあるまで待機し、トリガ入力があった場合には(ステップS311:YES)、画像データの取り込みが行われる(ステップS312)。ここでは、バッファリングメモリ(フレームバッファ)として機能する画像メモリ17aを設けていないため、トリガ入力があると、画像データの取り込みとともに及び内部転送も行われる。この際、内部転送を行った画像データが、どのカメラから得られたものであるかを示す識別情報(例えば上述のように撮像指令の情報など)も一緒に内部転送される。なお、識別情報だけ画像処理部18内のワークメモリに記憶することもできる。
その後、画像入力部16ではなくて画像処理部18によって、撮像完了条件を満たす画像が取り込まれたか否かが判断される(ステップS313)。具体的には、画像処理部18は、画像メモリ17bにアクセスして、上述した識別情報を参照し、記憶されている画像データが、どのカメラから得られたものであるかを認識する。一方、メインメモリ13にアクセスして、予め設定された撮像完了条件を参照し、認識された画像データが、その撮像完了条件を満たす画像データであるか否かを判断する。
撮像完了条件を満たしていないと判定された場合には(ステップS313:NO)、処理はステップS311に戻され、撮像完了条件を満たしていると判定された場合には(ステップS313:YES)、計測処理用割り当て処理(ステップS314)が行われる。具体的には、画像処理部18によって、上述したステップS112で説明したような処理と同様に、画像変数への代入が行われる。最後に、ステップS314の計測処理用割り当て処理が終了すると、計測ユニットに移行する(ステップS32)。
このように、撮像ユニット処理を実行する段階で撮像機構が(シリアルに)動作するようにしてもよい。
[実施形態の主な効果]
以上説明したように、本発明の実施形態及び他の実施形態に係る画像処理装置1によれば、カメラから得られた画像データを、画像メモリ17a(図19に示す画像処理では画像メモリ17b)に逐次ストックしながら、撮像の取りこぼしを防ぐための撮像禁止期間をなくすことができる。その結果、カメラ毎の処理時間を短縮し、検査タクトを短縮することができる。また、複数種類の撮像完了条件を設定し、一の撮像ユニットから、処理手順内に存在する計測ユニットのうち、画像入力部16によって成立していると判定された撮像完了条件に対応付けられた計測ユニットに移行する、というように、フローチャートに同期させて撮像ユニット及び計測ユニットを実行することができる。したがって、これらを非同期で実行した場合に生じるメモリ競合やバグ修正の問題を防ぐことができる。また、1台のコントローラで足りるので、ユーザに対してコスト負担を軽減することができる。
1 画像処理装置
10 コントローラ
11 主制御部
12 プログラムメモリ
13 メインメモリ
14 通信部
15 操作入力部
16 画像入力部
17a,17b 画像メモリ
18 画像処理部
19 画像表示部
20 ビデオメモリ
30 カメラ
40 モニタ
50 コンソール
60 PLC
70 PC

Claims (6)

  1. 検査対象物を撮像して画像データを生成する複数のカメラを有し、複数の画像処理を所定の処理手順と同期させて実行するための制御プログラムが記憶され、当該制御プログラムの実行結果に基づいて、検査対象物の良否を判定して判定信号を出力する画像処理装置において、
    前記複数の画像処理には、検査対象物を撮像する撮像処理と、当該撮像処理により生成された画像データを用いて実行される複数の異なる計測処理と、が含まれており、
    前記所定の処理手順は、当該撮像処理を含む第1の処理、当該複数の異なる計測処理を含む第2の処理がこの順で実行されるように構成されており、
    前記複数の異なる計測処理のうち少なくとも一の計測処理に対して前記複数のカメラのうち複数の特定のカメラを対応付け可能であって、前記第1の処理から前記第2の処理に移行するための移行条件を設定可能な設定手段と、
    前記第1の処理の際に、前記複数のカメラのうちいずれのカメラから画像データが取得されるかを識別して、前記設定手段により設定された移行条件にて規定される前記特定のカメラから画像データが取得されたかを判定する判定手段と、
    前記判定手段により、前記設定手段により設定された移行条件にて規定される前記特定のカメラから画像データが取得されたと判定されたことを契機として、取得された画像データに対して、当該移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行するための割り当て処理を実行する割り当て手段と、
    前記割り当て手段により割り当て処理が実行されて前記第2の処理に移行したときに、前記移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行する計測手段と、を備えることを特徴とする画像処理装置。
  2. 前記計測処理の実行中に前記複数のカメラから取得された画像データをバッファリングするメモリを備え、
    前記判定手段は、前記設定手段により設定された移行条件にて規定される前記特定のカメラから取得された画像データが前記メモリにバッファリングされたかを判定することを特徴とする請求項1記載の画像処理装置。
  3. 前記割り当て手段は、前記判定手段により画像データが取得されていないと判定されたときには、計測処理を実行するための割り当てを行わずに待機することを特徴とする請求項1又は2記載の画像処理装置。
  4. 前記割り当て手段は、前記設定手段により設定された前記移行条件を構成する複数の条件のうち二以上の条件にて規定される前記特定のカメラから画像データが取得されたと判定されたときには、予め定めた優先順位に基づく一の条件において規定される一の計測処理を実行するための割り当てを行うことを特徴とする請求項1から3のいずれか記載の画像処理装置。
  5. 前記優先順位は、前記設定手段により設定された前記移行条件を構成する複数の条件のうち一の条件において規定される前記特定のカメラから画像データが取得されたタイミングに基づいて定められていることを特徴とする請求項4記載の画像処理装置。
  6. 検査対象物を撮像して画像データを生成する複数のカメラを有し、複数の画像処理を所定の処理手順と同期させて実行するための制御プログラムが記憶され、当該制御プログラムの実行結果に基づいて、検査対象物の良否を判定して判定信号を出力する画像処理装置を用いた画像処理方法において、
    前記複数の画像処理には、検査対象物を撮像する撮像処理と、当該撮像処理により生成された画像データを用いて実行される複数の異なる計測処理と、が含まれており、
    前記所定の処理手順は、当該撮像処理を含む第1の処理、当該複数の異なる計測処理を含む第2の処理がこの順で実行されるように構成されており、
    前記複数の異なる計測処理のうち少なくとも一の計測処理に対して前記複数のカメラのうち複数の特定のカメラを対応付け可能であって、前記第1の処理から前記第2の処理に移行するための移行条件を設定する設定ステップと、
    前記第1の処理の際に、前記複数のカメラのうちいずれのカメラから画像データが取得されるかを識別して、前記設定ステップにより設定された移行条件にて規定される前記特定のカメラから画像データが取得されたかを判定する判定ステップと、
    前記判定ステップにより、前記設定ステップにより設定された移行条件にて規定される前記特定のカメラから画像データが取得されたと判定されたことを契機として、取得された画像データに対して、当該移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行するための割り当て処理を実行する割り当てステップと、
    前記割り当てステップにより割り当て処理が実行されて前記第2の処理に移行したときに、前記移行条件にて規定され且つ前記特定のカメラに対応付けられた計測処理を実行する計測ステップと、を含むことを特徴とする画像処理方法。
JP2009190548A 2009-08-19 2009-08-19 画像処理装置及び画像処理方法 Expired - Fee Related JP5189570B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009190548A JP5189570B2 (ja) 2009-08-19 2009-08-19 画像処理装置及び画像処理方法
US12/835,837 US20110043621A1 (en) 2009-08-19 2010-07-14 Image Processing Device And Image Processing Method
DE102010034546A DE102010034546A1 (de) 2009-08-19 2010-08-17 Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren
CN201010260123.0A CN101995410B (zh) 2009-08-19 2010-08-19 图像处理设备及图像处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009190548A JP5189570B2 (ja) 2009-08-19 2009-08-19 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2011043363A JP2011043363A (ja) 2011-03-03
JP5189570B2 true JP5189570B2 (ja) 2013-04-24

Family

ID=43495602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009190548A Expired - Fee Related JP5189570B2 (ja) 2009-08-19 2009-08-19 画像処理装置及び画像処理方法

Country Status (4)

Country Link
US (1) US20110043621A1 (ja)
JP (1) JP5189570B2 (ja)
CN (1) CN101995410B (ja)
DE (1) DE102010034546A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5060677B2 (ja) * 2007-12-13 2012-10-31 株式会社キーエンス 画像処理コントローラ及び検査支援システム
EP2538672B1 (en) * 2011-06-21 2020-08-12 Axis AB Method for configuring networked cameras
JP5806563B2 (ja) * 2011-09-08 2015-11-10 パナソニック デバイスSunx株式会社 画像処理装置
TW201312503A (zh) 2011-09-15 2013-03-16 Chroma Ate Inc 一種處理用於測試之影像資料之系統及方法
CN103245675A (zh) * 2013-05-17 2013-08-14 苏州福丰科技有限公司 具有图像识别功能的灯检机
JP2018132299A (ja) * 2015-06-19 2018-08-23 株式会社イシダ 検査装置および検査システム
JP6608708B2 (ja) * 2016-01-08 2019-11-20 株式会社キーエンス 外観検査装置、外観検査方法及び該外観検査装置に用いるコントローラで実行することが可能なコンピュータプログラム
JP6723863B2 (ja) * 2016-08-01 2020-07-15 オリンパス株式会社 組み込みシステム、撮影機器及びリフレッシュ方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4691231A (en) * 1985-10-01 1987-09-01 Vistech Corporation Bottle inspection system
JPH0740162Y2 (ja) * 1989-02-28 1995-09-13 株式会社明電舎 監視装置
JPH04118588A (ja) * 1990-09-10 1992-04-20 Toshiba Corp プラントモニタ装置
JPH0546736A (ja) * 1991-08-19 1993-02-26 Omron Corp 視覚センサ
EP0683596B1 (en) * 1994-05-18 2000-08-30 Sharp Kabushiki Kaisha Card type camera with image processing function
US5659624A (en) * 1995-09-01 1997-08-19 Fazzari; Rodney J. High speed mass flow food sorting appartus for optically inspecting and sorting bulk food products
JP3426068B2 (ja) * 1995-12-20 2003-07-14 三菱電機株式会社 テレビカメラ切替監視方式
JPH09288568A (ja) 1996-04-23 1997-11-04 Matsushita Electric Works Ltd 画像処理装置およびその実行フロー作成方法
JPH1032810A (ja) 1996-07-15 1998-02-03 Matsushita Electric Works Ltd 画像処理検査装置
JP4387015B2 (ja) * 1999-12-08 2009-12-16 名古屋電機工業株式会社 マルチタスクスケジューリングによる画像処理の統合方法
JP2002024802A (ja) * 2000-07-04 2002-01-25 Nippon Sheet Glass Co Ltd 画像処理システム
JP4860841B2 (ja) * 2000-08-25 2012-01-25 シスメックス株式会社 分析データ提供方法、分析データ提供装置及び分析データ提供プログラム
JP2002091894A (ja) * 2000-09-20 2002-03-29 Ricoh Co Ltd 画像処理装置
JP3891859B2 (ja) * 2002-02-22 2007-03-14 株式会社日立国際電気 ネットワーク型監視システムの監視方法
JP2003256843A (ja) * 2002-02-26 2003-09-12 Oki Electric Ind Co Ltd 計測システム
US7082347B2 (en) * 2002-08-07 2006-07-25 Kimberly-Clark Worldwide, Inc. Autosetpoint registration control system and method associated with a web converting manufacturing process
JP2004140799A (ja) * 2002-09-27 2004-05-13 Fuji Photo Film Co Ltd 撮像装置制御方法および装置並びにプログラム
JP2004226328A (ja) * 2003-01-24 2004-08-12 Hitachi Ltd 外観検査システムおよびそれらを用いた品質評価システムおよび品質評価情報提供システム
JP2004235745A (ja) * 2003-01-28 2004-08-19 Kyocera Corp 撮像装置、その撮像装置を利用可能な画像処理システム、および画像処理方法
JP4388286B2 (ja) * 2003-01-31 2009-12-24 喜彦 蒲田 微小物体検査装置
JP4875833B2 (ja) * 2004-03-16 2012-02-15 オリンパス株式会社 撮像装置、画像処理装置、画像処理システム、及び画像処理方法
CN100493144C (zh) * 2004-09-10 2009-05-27 佳能株式会社 数据处理装置及其控制方法
JP4788475B2 (ja) * 2005-06-17 2011-10-05 オムロン株式会社 画像処理装置および画像処理方法
CN101371575A (zh) * 2006-01-23 2009-02-18 佳能株式会社 摄像设备、摄像方法和程序
US20080304053A1 (en) * 2007-06-05 2008-12-11 Snow Gerald F Apparatus and method for coating and inspecting objects
JP2009116381A (ja) * 2007-11-01 2009-05-28 Keyence Corp 画像処理コントローラ用のプログラム作成装置
JP5074896B2 (ja) * 2007-11-16 2012-11-14 株式会社キーエンス 検査支援システム及び画像処理コントローラ
WO2009114297A2 (en) * 2008-03-03 2009-09-17 Greenline Foods, Inc. Automatic defect detector and rejecter

Also Published As

Publication number Publication date
JP2011043363A (ja) 2011-03-03
CN101995410B (zh) 2014-12-24
US20110043621A1 (en) 2011-02-24
DE102010034546A1 (de) 2011-02-24
CN101995410A (zh) 2011-03-30

Similar Documents

Publication Publication Date Title
JP5189570B2 (ja) 画像処理装置及び画像処理方法
JP5415182B2 (ja) 画像処理装置及びプログラム作成支援装置並びに画像処理方法
JP5469433B2 (ja) 画像処理装置及び画像処理方法
CN103403793B (zh) 可编程显示器及绘图数据的生成方法
CN102591570A (zh) 用于控制图形用户界面的设备和方法、计算机存储装置
JP6214824B2 (ja) 自動試験装置
CN103945109A (zh) 摄像装置及其控制方法、远程控制装置及其控制方法
CN101860674A (zh) 拍摄装置、连拍速度的设定方法以及记录介质
TW201100987A (en) Programmable displayer
JP2011211678A (ja) 画像処理装置および画像処理プログラム
JP4944739B2 (ja) 画像処理コントローラ用のプログラム作成装置
JP2022016659A (ja) 外部設定機器、ロギング設定方法およびプログラム
JP6608708B2 (ja) 外観検査装置、外観検査方法及び該外観検査装置に用いるコントローラで実行することが可能なコンピュータプログラム
JP5696194B2 (ja) プログラム作成支援装置及び画像処理装置
JP4929133B2 (ja) 検査支援システム
US20130194311A1 (en) Image reproducing apparatus
KR102254564B1 (ko) 몸짓 인식을 위한 이미지 매트릭스를 생성하기 위한 모듈, 시스템 및 방법
JP5060674B2 (ja) 画像処理コントローラ用のプログラム作成装置
JP7103746B2 (ja) 画像処理装置、画像処理方法、および画像処理プログラム
CN105991896B (zh) 图像读取装置以及图像读取方法
CN104781717A (zh) 对显微镜设备异步排序的同时利用卷帘式快门照相机采集图像的系统和方法
CN105308492A (zh) 光观察装置、用于其的摄像装置以及光观察方法
JP6987617B2 (ja) 設定サポートシステム、データサーバ、制御方法およびプログラム
JP7067869B2 (ja) 画像処理システム、情報処理装置、情報処理方法、および情報処理プログラム
JP6986125B2 (ja) プログラマブルロジックコントローラおよびメインユニット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130124

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5189570

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees