説明

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

【課題】 メモリ資源を効率的に活用しつつ、通常運転を停止させることなく、登録画像等の編集やシミュレーションを行って、編集後の登録画像等を通常運転に反映させることができ、ひいては生産効率を高める。
【解決手段】 第2の処理部300において編集された画像処理用データを第1の処理部200において継続して実行される画像処理(通常運転)に反映させるときには、その編集された画像処理用データが第3のデータ記憶領域(第3のデータ記憶領域310)から第2のデータ記憶領域(第2のデータ記憶領域220)に転送され、第1の処理部200において編集された画像処理用データを用いて画像処理が実行される際には第2のデータ記憶領域(第2のデータ記憶領域220)から編集された画像処理用データが読み出される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検査対象物をカメラで撮像して、得られた画像データを用いて計測処理を実行する画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
工場など数多くの生産現場では、人の目視に頼っていた検査を自動化・高速化する画像処理装置が導入されている。画像処理装置は、ベルトコンベア等の生産ラインを流れてくるワークをカメラによって撮像し、得られた画像データを用いて、所定領域のエッジ検出や面積計算などの計測処理を実行する。そして、計測処理の処理結果に基づいて、ワークの欠け検出やアライメントマークの位置検出などの検査を行い、ワークの欠けや位置ずれの有無を判定する判定信号を出力する。このように、画像処理装置は、FAセンサの一つとして利用されることがある。
【0003】
画像処理装置の中には、実行される画像処理の処理順序が予め決められているパッケージ型のものや、ユーザがパソコン上で作成した所望の処理順序を実行する画像処理プログラムを転送し、思い通りの計測処理を行わせるものなどがある。前者は、予め決められた処理順序でしか画像処理を行うことができないため、画像処理の自由度が制限される一方、後者は、所望の計測処理を行わせるには高度なプログラミングスキルと多大な工数を必要とする。これらの課題を解決する画像処理装置として、画像処理の検査項目一連の処理順序をフローチャートで表示し、そのフローチャート上で、ユーザにより処理順序を変更可能にしたものがある(例えば特許文献1参照)。ユーザが所望の処理順序を実現するためには、例えば、PC上の専用ソフトウェアによりフローチャート上で処理順序をカスタマイズし、カスタマイズされた処理順序を画像処理装置に実行させるための処理順序プログラムを生成した後、その処理順序プログラムを画像処理装置のコントローラに転送する。
【0004】
このような画像処理装置によれば、高度なプログラミングスキルを必要とすることなく、フローチャート上で、少ない工数で画像処理の処理順序をカスタマイズすることができる。また、複雑な画像処理を行おうとすると、検査項目が数十、数百になる場合もあるが、一連の処理順序がフローチャートで表示されれば、ユーザは全体の画像処理の内容を一見して把握することができるため、フローチャート全体を俯瞰しながら所望のカスタマイズをすることができ、ひいては画像処理の自由度を高めることができる。また、各画像処理をフローチャートに示す処理順序と同期させて実行することによって、撮像して得られた画像データをメモリへ書き込む、計測処理を実行するために画像データをメモリから読み出す、といった動作が同じタイミングで行われることはなく、メモリ競合の問題を防ぐこともできる。さらに、その処理順序に沿ってデバッグを行うことができ、バグ修正を容易化することもできる。
【0005】
このような画像処理装置の検査設定では、まず、撮像のような必須の画像処理や、エッジ検出や面積計算など、検査に必要な個別の画像処理を検査項目として選択し、それらを所望の順序(例えば上から下へ順番に)に並べて配置し、処理順序を示すフローチャートを作成する。なお、検査項目の配置を入れ替えることによって、上述したようにフローチャート上で処理順序を変更することができる。また、フローチャートの作成・編集は、画像処理装置に接続されたパーソナルコンピュータを使用することもできるし、画像処理装置に接続されたモニタやコンソール等を使用することもできる。
【0006】
次に、各検査項目についてパラメータ値の設定を行うとともに、例えばパターンサーチなど、特定の検査項目で必要になる登録画像の設定などを行う。具体的に説明すると、例えば撮像では、撮像対象カメラやシャッタースピードなどを指定するためのパラメータ値を設定する。また、エッジ検出や面積計算では、ワークの欠けや位置ずれの有無を判定する判定条件などを設定する。さらに、例えば検査対象物を撮像して得られた画像データの中に特定のパターンが出現するか否か、出現する場合には位置はどこか、を特定するパターンサーチでは、特定のパターンとして基準となる画像を登録画像として予め設定する。このようにして、検査項目の選択・配置によるフローチャートの作成・編集、各検査項目について最適なパラメータ値の設定、必要に応じて最適な登録画像の設定が終わると、検査設定が完了し、作成されたフローチャートに従って、画像処理装置の通常運転が開始される。
【0007】
ここで、一旦検査設定が完了し、画像処理装置の通常運転が開始された後は、メンテナンスを不要にするため同じパラメータ値や登録画像を使用し続けることが望ましい。しかし、ワークを照らすLEDの経年劣化により撮像照明環境が変化したり、生産ラインを流れてくるワークの種類が変わったりして、パラメータ値や登録画像を編集したい場合がある。加えて、編集後のパラメータ値や登録画像を用いてシミュレーションを行って、編集後のパラメータ値や登録画像の妥当性を検証したい場合がある。一般的な画像処理装置では、上述したエッジ検出や面積計算などの計測処理を実行するプロセッサは1個であるため、ユーザがパラメータ値や登録画像を編集したり、編集後のパラメータ値や登録画像を用いてシミュレーションを行ったりするためには、画像処理装置の通常運転を一時的に停止させる必要があった。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平09−288568号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、FAセンサとして利用されている画像処理装置の通常運転を一時的に停止させると、生産ラインも一時的に停止させなければならなくなり、生産効率の低下を招いてしまう。特に、画像処理装置の通常運転を停止させて登録画像の編集を行おうとすると、数十秒や数分といったように、それなりの時間を必要とする。具体例を挙げると、登録画像の中に特定パターンとして不要な部分(ノイズなど)がある場合には、ユーザは、まず画像処理装置の運転を一時的に停止させて、画像処理装置に接続されたモニタとコンソールを使用して、その不要な部分をマスク領域(不要な部分を隠すための領域)として設定することにより、より最適な登録画像に編集することができるが、この作業にはそれなりの時間を必要とする。また、編集後の登録画像を用いてシミュレーションまで行うとなると、更なる時間が必要になる。
【0010】
この点、例えば特開平08−128960号公報に開示されているように、CPUとメモリを2組設けることにより、通常運転を停止させることなく、登録画像の編集を行ったり編集後の登録画像を用いてシミュレーションを行ったりすることができる可能性がある。具体的には、一方のCPUとメモリで通常運転を行い、他方のCPUとメモリで登録画像の編集や編集後の登録画像を用いたシミュレーションを行う。シミュレーションの結果、編集後の登録画像を通常運転で使用したい場合には、今度は他方のCPUとメモリで通常運転を行うように切り替える。その後、一方のCPUとメモリは、他方のCPUとメモリで通常運転が行われている最中、登録画像の編集や編集後の登録画像を用いたシミュレーションを行う。このように、2組のCPUとメモリで通常運転とシミュレーションとを交互に行えば、通常運転を停止させることなく、登録画像の編集を行ったり編集後の登録画像を用いてシミュレーションを行ったりすることができる可能性がある。
【0011】
しかしながら、2組のCPUとメモリで通常運転とシミュレーションを交互に行うとなると(2組のCPUとメモリでミラーリングするとなると)、同じパフォーマンスのCPUとメモリが2組必要になる。特に、メモリについていえば、一方のメモリと他方のメモリは同等の記憶容量を有していなければならず、その結果、確保しなければならないヒープ領域が増大して、メモリ資源を効率的に活用することが困難である。
【0012】
本発明は、以上の点に鑑みてなされたものであり、その目的は、メモリ資源を効率的に活用しつつ、通常運転を停止させることなく、登録画像等の編集やシミュレーションを行って、編集後の登録画像等を通常運転に反映させることができ、ひいては生産効率を高めることが可能な画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【0013】
本発明に係る画像処理装置は、検査対象物を撮像して画像データを生成するカメラを有し、複数の画像処理の処理順序が規定された処理順序プログラムが記憶され、その処理順序プログラムに基づいて、カメラから取得した画像データを用いて複数の画像処理を順次実行して、処理結果に基づき検査対象物の良否を判定して判定信号を出力する画像処理装置において、複数の画像処理のうち少なくとも一つの画像処理に用いられる画像処理用データを記憶する第1のデータ記憶領域および第2のデータ記憶領域を有し、複数の画像処理を実行する第1の処理部と、画像処理用データを記憶する第3のデータ記憶領域を有し、複数の画像処理のうち少なくとも一つの画像処理を実行する第2の処理部と、第1の処理部および第2の処理部に対して実行すべき画像処理を指示するコマンドを送信する制御部と、ユーザの操作に基づく操作信号が入力される操作入力部と、を備え、制御部は、第1の処理部に対し、第1の処理部において画像処理用データを用いて画像処理が実行される際には第1のデータ記憶領域から画像処理用データを読み出すように指示しつつ、処理順序プログラムに基づき複数の画像処理を継続して実行するように指示するコマンドを送信する一方で、第2の処理部に対し、上述した操作信号に基づいて、第3のデータ記憶領域に記憶された画像処理用データの編集を指示するコマンドを送信するとともに、編集された画像処理用データを用いた画像処理を実行するように指示するコマンドを送信し、編集された画像処理用データを第1の処理部において継続して実行される画像処理に反映させるときには、編集された画像処理用データが第3のデータ記憶領域から第2のデータ記憶領域に転送され、第1の処理部において編集された画像処理用データを用いて画像処理が実行される際には第2のデータ記憶領域から編集された画像処理用データが読み出される。
【0014】
このような構成によれば、第1の処理部において、必要に応じて第1のデータ記憶領域から画像処理用データを読み出しつつ、処理順序プログラムに基づき複数の画像処理が継続して実行されているとき(通常運転中)に、ユーザは、例えばコンソール等を操作して、第2の処理部を通じて画像処理用データを編集し、編集した画像処理用データを用いて画像処理を実行することができる。そして、編集された画像処理用データを第1の処理部において継続して実行される画像処理に反映させるときには、編集された画像処理用データが第2の処理部の第3のデータ記憶領域から第1の処理部の第2のデータ記憶領域に転送され、第1の処理部においてその編集された画像処理用データを用いて画像処理が実行される際には第2のデータ記憶領域から編集された画像処理用データが読み出される。したがって、第1の処理部における通常運転を停止させることなく、第2の処理部において画像処理用データの編集や編集後の画像処理用データを用いたシミュレーションを行うことができるとともに、編集後の画像処理用データを通常運転に反映させることができ、ひいては生産効率を高めることができる。
【0015】
また、本発明に係る画像処理装置では、第1の処理部は通常運転用の処理部として、第2の処理部は編集・シミュレーション用の処理部として、それぞれ固定されているので、第2の処理部のスペックは第1の処理部のスペックよりも低いもので足りる(例えば、第3のデータ記憶領域の記憶容量としては、編集した画像処理用データを記憶可能な記憶容量があれば足りる)。その結果、第1の処理部と第2の処理部で同じパフォーマンスのCPUとメモリを準備する必要はなく、メモリ資源を効率的に活用することができる。
【0016】
ここで、「編集された画像処理用データが第3のデータ記憶領域から第2のデータ記憶領域に転送される」にあたって、その転送主体の如何は問わない。例えば、制御部が、一旦編集された画像処理用データを第3のデータ記憶領域から読み出して所定の記憶領域に記憶した後、それを第2のデータ記憶領域に転送するような構成としてもよい。また、制御部が、一旦編集された画像処理用データを第3のデータ記憶領域から読み出して所定の記憶領域に記憶した後、制御部からのコマンドに基づいて第1の処理部がそれを読み出して、第2のデータ記憶領域に転送するような構成としてもよい。また、第2の処理部が、制御部からのコマンドに基づいて、画像処理用データを第3のデータ記憶領域から読み出して、第2のデータ記憶領域に直接転送するような構成としてもよい。さらに、第1の処理部が、制御部からのコマンドに基づいて、画像処理用データを第3のデータ記憶領域から直接読み出して、第2のデータ記憶領域に直接転送するような構成としてもよい。
【0017】
また、本発明に係る画像処理装置では、制御部は、第3のデータ記憶領域から読み出した編集された画像処理用データを記憶する第4のデータ記憶領域を有し、編集された画像処理用データを第1の処理部において継続して実行される画像処理に反映させるときには、編集された画像処理用データを第3のデータ記憶領域から読み出して第4のデータ記憶領域に記憶するとともに、第1の処理部に対し、第4のデータ記憶領域から編集された画像処理用データを読み出して第2のデータ記憶領域に記憶するように指示するコマンドを送信するとともに、第1の処理部において編集された画像処理用データを用いて画像処理が実行される際には第2のデータ記憶領域から編集された画像処理用データを読み出すように指示するコマンドを送信するような構成としてもよい。これにより、第1の処理部における通常運転を停止させることなく、第2の処理部において画像処理用データの編集や編集後の画像処理用データを用いたシミュレーションを行うことができるとともに、編集後の画像処理用データを通常運転に反映させることができ、ひいては生産効率を高めることができる。特に、編集された画像処理用データが第3のデータ記憶領域から第2のデータ記憶領域に転送されるにあたって、制御部における第4のデータ記憶領域を介在させることで、画像処理用データが大きな容量であったとしても、制御部において一旦バッファリングすることができるとともに、制御部のコマンドに基づいて第1の処理部が所望のタイミングで第4のデータ記憶領域から画像処理用データを読み出せるようになる。例えば、第1の処理部は、デュアルコアを有するなど、第1の処理部において継続して実行される画像処理と並行して画像処理用データを読み出すことが可能であれば、そのようにしてもよいし、シングルコアを有するなど、第1の処理部において継続して実行される画像処理と並行して画像処理用データを読み出すことが困難であれば、第1の処理部において継続して実行される画像処理の合間に画像処理用データを読み出すようにしてもよい。
【0018】
また、本発明に係る画像処理装置では、第1の処理部および第2の処理部に、それぞれ第1のプロセッサおよび第2のプロセッサが設けられており、制御部からのコマンドに基づき第1のプロセッサが画像処理を継続して実行している最中に、第2のプロセッサにより編集された画像処理用データを第1のプロセッサにより継続して実行される画像処理に反映させるときには、制御部は、編集された画像処理用データを第3のデータ記憶領域から読み出して第4のデータ記憶領域に記憶するとともに、第1のプロセッサに対し、画像処理の実行中又は前後の画像処理の間に割り込んで、第4のデータ記憶領域から編集された画像処理用データを読み出して第2のデータ記憶領域に記憶するように指示するコマンドを送信するような構成としてもよい。これにより、第1の処理部では、第1のデータ記憶領域にアクセスして画像処理を継続して実行しながら、一方で、合間を縫って編集された画像処理用データを第2のデータ記憶領域に記憶することができる。特に、第1のプロセッサがシングルコアのプロセッサであったとしても、通常運転中に、編集された画像処理用データを第2のデータ記憶領域に記憶することができる。
【0019】
また、本発明に係る画像処理装置では、第2のプロセッサにより編集される画像処理用データは画像データであって、制御部は、第1のプロセッサに対し、第4のデータ記憶領域から編集された画像データを読み出す際には、画像データを小単位に分割して、第2のデータ記憶領域に順次記憶するように指示するコマンドを送信するような構成としてもよい。これにより、容量が大きな(2次元)画像データなどを記憶する場合であっても、第2のデータ記憶領域に少しずつ記憶することができる。その結果、通常運転を停止させることなく、加えて通常運転のスピードをほとんど低下させることなく、編集後の画像データを通常運転に反映させることができ、ひいては生産効率を高めることができる。
【0020】
また、本発明に係る画像処理装置では、第1の処理部および前記第2の処理部における画像処理結果を表示する表示部を備え、第2の処理部は、第1の処理部において画像処理が継続して実行されているときには、制御部からのコマンドに基づいて、第1の処理部における画像処理結果を表示するための制御信号を表示部に送信するとともに、第2の処理部において第3のデータ記憶領域に記憶された画像処理用データが編集され、編集された画像処理用データを用いた画像処理が実行されたときには、制御部からのコマンドに基づいて、第2の処理部における画像処理結果を表示するための制御信号を表示部に送信するような構成としてもよい。これにより、ユーザの操作に基づいて、第1の処理部と第2の処理部における画像処理結果を、表示部に簡易に切り替え表示することができる。また、表示部に対して制御信号を送信する第2の処理部において、画像処理用データが編集され、編集された画像処理用データを用いた画像処理が実行されるので、第1の処理部における通常運転中の処理能力低下を防ぐことができる。さらに、一般に、表示部に対して制御信号を送信する第2の処理部が有する第3のデータ記憶領域は、例えばビデオRAMなど記憶容量の少ないメモリにより具現化される。このような場合であっても、上述した構成によれば、第3のデータ記憶領域で画像処理用データを編集し、編集後の画像処理用データは第2のデータ記憶領域へ転送され、再び第3のデータ記憶領域で画像処理用データを編集し、編集後の画像処理用データは第2のデータ記憶領域へ転送され、・・・という処理を繰り返すことによって、複数の画像処理用データを編集する場合であっても第3のデータ記憶領域の容量は少なくて済む(1個の画像処理用データが記憶できる容量があれば足りる場合もある)。このように、上述した構成によれば、第3のデータ記憶領域に一定の使用制限が課せられていても(例えば所定個数の画像処理用データしか記憶できなくても)、実質的に、その使用制限の中で複数(その所定個数以上)の画像処理用データを編集することができる。
【0021】
また、本発明に係る画像処理装置では、処理順序プログラムにおいて参照可能な変数の変数値を記憶する変数値記憶領域を有し、制御部は、操作信号に基づいて変数の変数値が変更されたとき、変更後の変数値を変数値記憶領域に記憶するとともに、実行すべき画像処理を指示するコマンドとともに変数の変数値を第1の処理部に送信するときに、操作信号に基づいて変数値が変更された変数については、変更後の変数値を送信するような構成としてもよい。これにより、例えばフロー周期のカウントアップ変数など、ユーザが意図的に変えてはならないような変数については通常運転に反映されず、ユーザが意図的に変更した変数についてのみを通常運転に反映させることができる。
【発明の効果】
【0022】
以上説明したように、本発明によれば、通常運転を停止させることなく、画像処理用データの編集やシミュレーションを行って、編集後の画像処理用データを通常運転に反映させることができ、ひいては生産効率を高めることができる。また、メモリ資源を効率的に活用することができる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施の形態に係る画像処理装置の概略構成例を示す図である。
【図2】本実施形態に係る画像処理装置におけるコントローラのハードウェア構成例を示すブロック図である。
【図3】本実施形態に係る画像処理装置におけるコントローラの機能構成例を示すブロック図である。
【図4】本実施形態に係る画像処理装置におけるコントローラの動作例を示す説明図である。
【図5】本実施形態に係る画像処理装置におけるコントローラの動作例を示す説明図である。
【図6】本実施形態に係る画像処理装置におけるコントローラの動作例を示す説明図である。
【図7】本実施形態に係る画像処理装置におけるコントローラの動作例を示す説明図である。
【図8】本実施形態に係る画像処理装置の処理動作を示すフローチャートである。
【図9】本実施形態に係る画像処理装置の処理動作を示すフローチャートである。
【図10】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図11】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図12】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図13】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図14】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図15】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図16】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図17】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図18】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図19】図8に示す処理動作が行われているときのモニタの表示画面例である。
【図20】パラメータ値の編集が行われている際のモニタの表示画面例である。
【図21】ユーザが定義した変数の変数値が編集されている際のモニタの表示画面例である。
【図22】本発明の他の実施形態に係る画像処理装置のコントローラを説明するためのブロック図である。
【図23】本発明の他の実施形態に係る画像処理装置のコントローラを説明するためのブロック図である。
【図24】本発明の他の実施形態に係る画像処理装置のコントローラを説明するためのブロック図である。
【図25】本発明の他の実施形態に係る画像処理装置のコントローラを説明するためのブロック図である。
【図26】本発明の他の実施形態に係る画像処理装置のコントローラを説明するためのブロック図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施の形態に係る画像処理装置について、図面に基づいて具体的に説明する。
【0025】
[概略構成]
図1は、本発明の実施の形態に係る画像処理装置1の概略構成例を示す図である。図1に示すように、画像処理装置1は、エッジ検出や面積計算などの計測処理を実行するコントローラ10と、検査対象物を撮像する3台のカメラ30a,30b,30cと、液晶パネル等のモニタ40と、ユーザがモニタ40上で各種操作するためのコンソール50と、を有している。カメラ30a,30b,30c、モニタ40、及びコンソール50は、コントローラ10と着脱可能に接続される。コントローラ10は、カメラ30a,30b,30cから得られた画像データを用いて画像処理を実行し、外部接続されたPLC(Programmable Logic Controller)60に対し、ワークの良否などの判定結果を示す信号として判定信号を出力する。
【0026】
3台のカメラ30a,30b,30cは、PLC60から入力される制御信号、例えばカメラ30a,30b,30cから画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、検査対象物の撮像を行う。モニタ40は、検査対象物を撮像して得られた画像データや、その画像データを用いた計測処理の結果を表示するための表示装置である。一般に、ユーザはモニタ40を視認することによって、画像処理装置1が通常運転中である場合のコントローラ10の動作状態を確認することができる。コンソール50は、モニタ40上でフォーカス位置を移動させたり、メニュー項目を選択したりするための入力装置である。特に、後述するように、本実施形態では登録画像を編集するための入力装置となる。
【0027】
また、画像処理装置1のコントローラ10には、画像処理装置1の制御プログラムを生成するためのPC70が接続されており、このPC70上で動作するソフトウェアによって、画像処理ユニットの処理順序を規定する処理順序プログラムが生成される。画像処理装置1では、その処理順序に沿って各画像処理ユニットが順次実行される。PC70とコントローラ10とは、通信ネットワークを介して接続されており、PC70上で生成された処理順序プログラムは、モニタ40の表示態様を規定するレイアウト情報などとともにコントローラ10に転送される。また逆に、コントローラ10から処理順序プログラムやレイアウト情報などを取り込んで、PC70上で編集することもできる。なお、この処理順序プログラムは、PC70だけでなく、コントローラ10においても生成することができる。
【0028】
[ハードウェア構成]
図2は、本実施形態に係る画像処理装置1におけるコントローラ10のハードウェア構成例を示すブロック図である。図2に示すように、画像処理装置1におけるコントローラ10は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウェア各部の制御を行うCPU11と、起動プログラムや初期化プログラムなどが格納されたROM,フラッシュROM,EEPROMなどのプログラムメモリ12と、CPU11が各種プログラムを実行する際のワークエリアとして機能するRAMなどの(揮発性或いは不揮発性)メモリ13と、外部のPLC60やPC70などと通信可能に接続される通信部14と、コンソール50からの操作信号が入力される操作入力部15と、を有している。
【0029】
また、画像処理装置1は、カメラ30a〜カメラ30cでの撮像により得られた画像データを取り込むASIC(Application Specific Integrated Circuit)などの画像入力部16と、画像データをバッファリングするメモリ(フレームバッファ)17と、エッジ検出や面積計算などの計測処理を実行する演算用DSPなどのプロセッサ18と、計測処理用に画像データを記憶するメモリ(ワークメモリ)19と、液晶パネル等のモニタ40に対して画像を表示させる表示用DSPなどのプロセッサ20と、画像を表示させる際に画像データを一時記憶するVRAMなどのメモリ21と、を有している。そして、これらの各ハードウェアは、バス等の通信路を介して通信可能に接続されている。
【0030】
プログラムメモリ12には、画像入力部16、プロセッサ18、及びプロセッサ20、並びに、通信部14及び操作入力部15の各部を、CPU11のコマンド等により制御するための制御プログラムが格納されている。また、本実施形態では、PC70において生成され、PC70から転送されてきた処理順序プログラムは、プログラムメモリ12に格納される。なお、メモリ13に格納されるようにすることもできる。メモリ13、メモリ17,メモリ19、メモリ21は、SRAMやSDRAM等の揮発性メモリで構成されており、コントローラ10で別個独立したメモリとして設けられている。なお、不揮発性メモリを用いることもできるし、一個のメモリの記憶領域を切り分けて各メモリを構成することもできる。通信部14は、外部のPLC60に接続されたセンサ(光電センサ等)でトリガ入力があったときに、PLC60から撮像トリガ信号を受信するインターフェース(I/F)として機能する。また、PC70から転送されてくる画像処理装置1の画像処理プログラムやモニタ40の表示態様を規定するレイアウト情報などを受信するインターフェース(I/F)としても機能する。
【0031】
CPU11は、通信部14を介してPLC60から撮像トリガ信号を受信すると、画像入力部16に対して撮像指令(コマンド)を送る。また、処理順序プログラムに基づいて、プロセッサ18やプロセッサ20に対して、実行すべき画像処理を指示するコマンドを送信する。なお、撮像トリガ信号を生成する装置として、PLC60ではなく、光電センサなどのトリガ入力用のセンサを通信部14に直接接続することもできる。
【0032】
操作入力部15は、ユーザの操作に基づきコンソール50からの操作信号を受信するインターフェース(I/F)として機能する。そして、受信した操作信号はCPU11に転送される。モニタ40には、コンソール50を用いたユーザの操作内容が表示される。具体的に説明すると、コンソール50には、モニタ40上に表示されるカーソルを上下左右に移動させる十字キー、決定ボタン、又はキャンセルボタンなどの各部品が配置されており、これらの各部品を操作することによって、ユーザはモニタ40上でフローチャートを作成したり、各画像処理ユニットのパラメータ値を編集したり、登録画像を編集したり、シミュレーションを開始させたりすることができる。
【0033】
画像入力部16は、上述した画像入力プログラムに従って、画像データの取り込みを行う。具体的には、例えばCPU11からカメラ30aの撮像指令を受信すると、カメラ30aに対して画像データ取り込み信号を送信する。そして、カメラ30aで撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦メモリ17にバッファリング(キャッシュ)され、予め用意しておいた画像変数に代入される。この画像変数は、数値を扱う通常の変数と異なり、対応する画像処理ユニットの入力画像として割り付けることで、計測処理や画像表示の参照先となる変数である。
【0034】
プロセッサ18は、画像データに対する計測処理を実行する。具体的には、まず画像入力部16が上述した画像変数を参照しつつ、メモリ17から画像データを読み出して、プロセッサ18を通じてメモリ19へ内部転送を行う。そして、プロセッサ18は、メモリ19に記憶された画像データを読み出して、計測処理を実行する。
【0035】
プロセッサ20は、CPU11から送られてきた表示指令(表示コマンド)に基づいて、モニタ40に対して所定画像(映像)を表示させるための制御信号を送信する。例えば、メモリ17又はメモリ19に記憶されている計測処理前又は計測処理後の画像データを読み出して、メモリ21に一時記憶し(展開し)、モニタ40に対して制御信号を送信する。また、プロセッサ20は、コンソール50を用いたユーザの操作内容をモニタ40に表示させるための制御信号も送信する。なお、プロセッサ20は、制御部100から送られてくる処理順序プログラムが示すフローチャート、画像入力部16から送られてきた撮像画像などをモニタ40の一画面に表示するために、これらを合成する機能を有する。
【0036】
ここで、本実施形態に係る画像処理装置1におけるコントローラ10では、プロセッサ18およびメモリ19は、CPU11からのコマンドに基づいて、複数の画像処理を実行する第1の処理部200として機能する。また、メモリ19は、複数の画像処理のうち少なくとも一つの画像処理に用いられる画像処理用データを記憶する第1のデータ記憶領域および第2のデータ記憶領域の一例として機能する。一方、プロセッサ20およびメモリ21は、CPU11からのコマンドに基づいて、複数の画像処理のうち少なくとも一つの画像処理を実行する第2の処理部300として機能する。また、メモリ21は、上述した画像処理用データを記憶する第3のデータ記憶領域の一例として機能する。そして、CPU11、プログラムメモリ12、及びメモリ13は、第1の処理部200および第2の処理部300に対して実行すべき画像処理を指示するコマンドを送信する制御部100として機能する。なお、第1の処理部200と第2の処理部300には、制御部100から受信したコマンドに応じて実行される各画像処理が規定された画像処理プログラムが記憶されている。
【0037】
また、図2に示すように、第1の処理部200と第2の処理部300は、それぞれ制御部100に電気的に接続されるとともに、両者は制御部100に対して並列に接続されている。したがって、画像処理装置1では、制御部100が、処理順序プログラムに基づいて、第1の処理部200に対して複数の画像処理を継続して実行するように指示するコマンドを送信することによって、通常運転を行う。一方で、制御部100が、ユーザのコンソール50の操作に基づいて、第2の処理部300に対してメモリ21に記憶された画像処理用データの編集を指示するコマンドを送信するとともに、編集された画像処理用データを用いた画像処理を実行するように指示するコマンドを送信することによって、仮運転(シミュレーション)を行う。
【0038】
本実施形態に係る画像処理装置1によれば、第1の処理部200における通常運転を停止させることなく、第2の処理部300における仮運転を行うことが可能である。特に、検査項目の一つとして重要になるパターンサーチ(特定画像処理の一例)では、基準となる特定パターンとして登録画像が用いられるが、第2の処理部300における仮運転を行う際に、この登録画像の編集を行うこともでき、また、編集後の登録画像を用いてシミュレーションを行うこともでき、さらには、通常運転を停止させることなく編集後の登録画像を本運転に反映させることができる。以下、コントローラ10の機能構成例を参照しながら具体的に説明する。
【0039】
[機能構成]
図3は、本実施形態に係る画像処理装置1におけるコントローラ10の機能構成例を示すブロック図である。図4から図7は、本実施形態に係る画像処理装置1におけるコントローラ10の動作例を示す説明図である。
【0040】
図3に示すように、コントローラ10は、制御部100と、第1の処理部200と、第2の処理部300とを有している。また、第1の処理部200は、プロセッサ18と、第1のデータ記憶領域210と第2のデータ記憶領域220(とを含むメモリ19)と、を有している。第2の処理部300は、プロセッサ20と、第3のデータ記憶領域310(を含むメモリ21)と、を有している。なお、本実施形態では、図2に示すメモリ19の記憶領域を2つの記憶領域に分割することによって、第1のデータ記憶領域210と第2のデータ記憶領域220を具現化している。
【0041】
また、上述したパターンサーチで用いる登録画像の画像データ(登録画像データ)は、制御部100によって通常運転開始前に、所定の外部入出力装置(USBメモリなど)からメモリ13に読み込まれ、第1の処理部200のメモリ19に転送され、第1の処理部200によって編集され、第1のデータ記憶領域210にロード(記憶)される。或いは、モニタ40上でユーザがコンソール50を操作することによって、通常運転開始前に第1の処理部200において生成され、第1のデータ記憶領域210に記憶される。
【0042】
なお、登録画像データは、ユーザによって予め準備され、少なくとも一つの画像処理に用いられる画像処理用データの一例であるが、これは計測ごとには変化しないデータであるので、通常運転を開始する前に予め編集しておくことによって、計測処理を高速化することができる。登録画像データは、計測領域やマスク領域などを合成した画像データであってもよいし、フィルタ処理,色抽出処理,縮小処理などが施された画像データであってもよいし、ユーザが任意に作成した画像データであってもよい。その他、登録画像データ以外に、画像処理用データとしては、例えばユーザが作成したコンパイル後のプログラムデータであってもよい。他にも、画像処理用データとしては、幾何特徴を含んだデータであってもよい。
【0043】
図4は、第1の処理部200において通常運転が行われる様子を示している。具体的には、制御部100は、処理順序プログラムに基づいて、実行すべき画像処理を指示するコマンドを第1の処理部200のプロセッサ18に送信する(図中の矢印参照)。このとき、制御部100からのコマンドに基づいて、実行すべき画像処理が登録画像データをパラメータとして用いるパターンサーチである場合には、第1のデータ記憶領域210から登録画像データを読み出して実行する(図中の網掛け参照)。
【0044】
図5は、第1の処理部200において通常運転を停止させることなく、第2の処理部300において登録画像の編集やシミュレーションが行われる様子を示している。具体的には、制御部100は、第1の処理部200のプロセッサ18に対して複数の画像処理を継続して実行するように指示するコマンドを送信する一方で、ユーザのコンソール50の操作に基づく操作信号の受信を契機として、第2の処理部300の第2のプロセッサ20に対し、第3のデータ記憶領域310に記憶された画像処理用データの編集を指示するコマンドを送信するとともに、編集された画像処理用データを用いた画像処理を実行するように指示するコマンドを送信する(図中の矢印参照)。例えば、ユーザがモニタ40上で編集したい登録画像を選択すると、制御部100から上述した所定の外部入出力装置(或いは、図2に示す画像入力部16に接続されたメモリ17であってもよいし、図2に示す制御部100のメモリ13であってもよい)から第3のデータ記憶領域310に、登録画像データがロードされる。そして、ユーザがモニタ40上で、例えば計測領域やマスク領域を設定する(詳細は後述)など、登録画像の編集を行った場合には、制御部100からのコマンドに基づいて、プロセッサ20が、第3のデータ記憶領域310に記憶されている登録画像データを、計測領域やマスク領域が設定された新たな登録画像データに編集する。
【0045】
登録画像の編集が終わると、第2の処理部300においてシミュレーションが行われる。登録画像の編集と同様に、ユーザがモニタ40上で所定の操作を行うことによって、プロセッサ20は、第3のデータ記憶領域310に記憶されているマスク領域が設定された新たな登録画像データを読み出して、パターンサーチなどの画像処理を行う(図中の網掛け参照)。このとき、編集された登録画像データを用いたパターンサーチだけのシミュレーションを行ってもよいし、処理手順プログラムに規定された画像処理で用いる全ての登録画像データが第3のデータ記憶領域310に記憶されていれば、処理手順プログラムに規定された全ての画像処理を実行する全体シミュレーションを行ってもよい。
【0046】
図6は、第2の処理部300の第3のデータ記憶領域310に記憶されている登録画像データが、第1の処理部200の第2のデータ記憶領域220に転送されている様子を示している。具体的には、編集された画像処理用データを第1の処理部200において継続して実行される画像処理(通常運転)に反映させたいときには、ユーザがモニタ40上で所定の操作を行う。そうすると、制御部100は、第3のデータ記憶領域310に記憶されている編集後の登録画像データを読み出して、これをメモリ13(図2)に記憶する。そして、制御部100は、第1の処理部200に対し、メモリ13から編集された画像処理用データを読み出して第2のデータ記憶領域220に記憶するように指示するコマンドを送信する。
【0047】
このとき、第1の処理部200では、制御部100からのコマンドに基づいて、プロセッサ18が第1のデータ記憶領域210にアクセスして複数の画像処理を継続して実行している。したがって、第1の処理部200のプロセッサ18は、現在実行中の画像処理に割り込んで(画像処理の実行中に割り込んで)、或いは、複数の画像処理のうち前後の画像処理の合間に割り込んで、メモリ13から編集された登録画像データを読み出して第2のデータ記憶領域220に記憶する。これにより、プロセッサ18は、第1のデータ記憶領域210にアクセスして複数の画像処理を継続して実行することを優先しながら、転送されてきた登録画像データを第2のデータ記憶領域220に記憶することができる。
【0048】
また、登録画像データの容量が大きい場合には、現在実行中の画像処理に割り込んだり、複数の画像処理のうち前後の画像処理の合間に割り込んだりすると、通常運転が停止したり通常運転の処理能力が大幅に低下してしまう虞がある。このような場合には、プロセッサ18は、制御部100からのコマンドに基づいて、メモリ13から編集された登録画像データを読み出す際には、例えばセクタ単位などの小単位に分割して、第2のデータ記憶領域220に順次(少しずつ)記憶する。これにより、多少通常運転のスピードが低下したとしても、通常運転が停止したり通常運転の処理能力が大幅に低下したりしてしまうのを防ぐことができる。
【0049】
また、本実施形態では、第3のデータ記憶領域310に記憶されている編集後の登録画像データを、第1の処理部200外部の記憶領域(例えば画像処理装置1で共用されているメモリなど)ではなく、第1の処理部200の内部の第2のデータ記憶領域220に記憶するようにしている。第2のデータ記憶領域220は、主としてプロセッサ18がアクセス可能な専用のメモリであるので(図2でいえばメモリ19が相当する)、第1の処理部200においてパターンサーチなど編集後の登録画像データを用いた画像処理を行う際には、編集後の登録画像データを高速に読み出すことができる。
【0050】
図7は、第1の処理部200においてプロセッサ18が登録画像データを読み出す先として、第1のデータ記憶領域210から第2のデータ記憶領域220に切り替わっている様子を示している。具体的には、制御部100は、通常運転として、プロセッサ18に対してパターンサーチなど編集後の登録画像データを用いた画像処理を行わせる場合には、第1のデータ記憶領域210からではなく(図4参照)、第2のデータ記憶領域220から編集後の登録画像データを読み出すように指示する。これにより、例えば、現在実行中のフロー1周期が終了して、次のフロー1周期が始まる直前タイミングで、登録画像データを読み出す先が切り替わり、通常運転を停止させることなく、ユーザが編集した登録画像を通常運転に反映させることができる。なお、本実施形態では、第2のデータ記憶領域220に記憶されるデータのうち編集後の登録画像データに着目して説明したが、例えば、第2のデータ記憶領域220には、編集後の登録画像データと、編集する必要がなかったために編集されない登録画像データとが含まれる場合もある。この場合、編集する必要がなかったために編集されない登録画像データは、第1のデータ記憶領域210から第2のデータ記憶領域に転送することができる。また、第1のデータ記憶領域210から第2のデータ記憶領域220に切り替えるのは、第2のデータ記憶領域220への転送が全て完了した後とすることができる。この場合、転送が全て完了した後、第2のデータ記憶領域220が通常運転に必要な画像処理用データを提供することになり、第1のデータ記憶領域210が編集後の登録画像データを転送する先となる。なお、読み出し先の切り替えについては、ポインタの指定先を切り替えるなどソフトウェアにより行ってもよい。
【0051】
[処理動作]
図8及び図9は、本実施形態に係る画像処理装置1の処理動作を示すフローチャートである。特に、図9は、図8における再設定の反映(ステップS8)を詳細に説明するためのフローチャートである。また、図10から図19は、図8に示す処理動作が行われているときのモニタ40の表示画面例(一部抜粋)である。
【0052】
図8において、まず、運転開始前の準備工程として、画像処理装置1では検査用データの受信が行われる(ステップS1)。具体的に説明すると、例えば汎用のパーソナルコンピュータで構成されるPC70(図2参照)には、プログラム作成支援ソフトウェアがインストールされており、このソフトウェアが実行されることによって、PC70はプログラム作成支援装置として機能する。ユーザは、マウスやキーボードを操作しつつ、モニタ画面上で複数の画像処理を検査項目として選択し、それらを所望の順序に並べて配置し、処理順序を示すフローチャートを作成する。すなわち、コントローラ10に行わせる一連の画像処理は、画像処理ユニットとしてブロック化されていて、ユーザが画像処理ユニットを実行フロー上に配置するだけで、その画像処理ユニットが、それより前の画像処理ユニットの処理結果に基づいて所定の処理を行うフローシーケンスを作成することができる。
【0053】
このようなフローチャートは、スタートシンボルにおいて開始し、エンドシンボルにおいて終了し、スタートシンボルからエンドシンボルまでのフローシーケンスがフロー1周期となる。また、フローチャートの作成とともに、各検査項目についてパラメータ値の設定を行ったり、パターンサーチなどの画像処理で用いられ、特定パターンとして基準となる登録画像の設定を行ったりする。登録画像の設定では、既存の登録画像をそのまま使ってもよいが、例えばマスク領域を設定するなどして、より最適な登録画像に編集することが可能である(登録画像の編集についての詳細は後述する)。
【0054】
このようにして、フローチャートの作成、パラメータ値の設定、登録画像の設定などが終わると、作成されたフローチャートについてはコントローラ10で解釈できる設定データ(処理順序プログラム)に変換される。そして、ユーザがPC70のモニタ画面上で所定のボタン等をクリックすることによって、PC70からコントローラ10へ、上述した設定データ、パラメータ値、登録画像のデータ(登録画像データ)などが検査用データとして転送される。そして、画像処理装置1では、この検査用データの受信が行われる(ステップS1)。
【0055】
なお、受信された検査用データは、画像処理装置1の各部に記憶される。具体的には、処理順序プログラムやパラメータ値は制御部100のメモリ13に記憶され、登録画像データは、制御部100のコマンドに基づき第1処理部200の第1のデータ記憶領域210に記憶される。上述したように、パターンサーチ等に必要となる登録画像データを、運転開始前に予め第1のデータ記憶領域210に記憶しておくことによって、計測処理を高速に実行することが可能である。
【0056】
次に、通常運転が開始される(図8のステップS2)。具体的には、制御部100のCPU11は、メモリ13に記憶された処理順序プログラムに基づいて、実行すべき画像処理に用いられるパラメータ値をメモリ13から読み出すとともに、実行すべき画像処理を指示するコマンドとともに第1の処理部200のプロセッサ18に送信する。これを受信したプロセッサ18は、CPU11から受信したコマンドに基づいて画像処理を実行する際に、CPU11から受信したパラメータ値を、その画像処理の対応するパラメータに割り付ける。また、実行すべき画像処理が、パターンサーチのように登録画像データを用いる画像処理である場合には、第1のデータ記憶領域210から登録画像データを読み出す。プロセッサ18において画像処理が実行されると、その実行結果が制御部100に送られる。
【0057】
このように、処理順序プログラムに基づいて、制御部100から第1の処理部200へ実行すべき画像処理を指示するコマンド及び必要なパラメータ値が送信され、第1の処理部200において、必要に応じて登録画像データが読み出され、画像処理が実行された後、第1の処理部200から制御部100へ実行結果が送信される、という一連の画像処理が繰り返し実行されることにより、通常運転が行われる。
【0058】
通常運転中、モニタ40の表示画面には、例えば図10に示すような画像(映像)が表示される。図10は、パターンサーチの実行結果がモニタ40に表示されている様子を示している。パターンサーチは、特定のパターンを基準となる画像として登録しておき、入力画像の中から、この登録画像に最も似ている部分を検出し、その部分の位置や角度、相関値を計測する処理(画像処理ユニット)である。本実施形態では、登録画像として、「JUICE」を含む矩形枠内の画像を採用するとともに、その検出位置を示すパラメータとして矩形枠の重心位置を採用している。また、この登録画像の検出位置は、サーチ領域1001の左上隅を原点(0,0)とし、右方向に伸びるX軸と下方向に延びるY軸とが示す座標によって特定される。また、四角枠のサーチ領域1001は、登録画像に似ている部分があるか否かをサーチする領域である。
【0059】
図10に示す例では、サーチ領域1001内のワーク1000に対してパターンサーチが実行された結果、登録画像の個数1002は1個、登録画像の検出位置のX座標1003は227.968、登録画像の検出位置のY座標1004は198.986、登録画像が水平方向(図10でいうとX軸方向)から何度傾いたかを示す角度1005は20.509度、検出された画像が登録画像にどの程度似ているかを示す相関値1006は97.707、と検出されている。そして、これらのX座標1003,Y座標1004,角度1005,相関値1006に基づいて、ワーク1000の判定結果1007は「OK」と判定されている。
【0060】
このようにして、生産ライン上を流れてくる複数のワーク1000に対し、パターンサーチを含む複数の画像処理が実行される。このとき、ユーザは、再設定モードを利用することにより、通常運転を停止させることなく、パターンサーチで用いられる登録画像を編集したり、編集された登録画像を用いてシミュレーションを行ったりすることができる。加えて、通常運転を停止させることなく、編集された登録画像を通常運転に反映させることができる。以下、この再設定モードについて、詳細に説明する。
【0061】
モニタ40上でユーザがコンソール50を所定操作する(例えばメニューバーの「再設定ボタン」をクリックする)ことによって、再設定モードに移行する(図8のステップS3)。具体的には、制御部100のCPU11は、操作入力部15から操作信号を受信したことを契機として、第2の処理部300に対し、通常運転開始前に第1の処理部200に送信した登録画像データと同じものを送信する。そうすると、編集用の登録画像データが第3のデータ記憶領域310に記憶される。なお、ここでは通常運転開始前に第1の処理部200に送信した登録画像データと同じものを送信することとしたが、例えば、画像入力部16を通じてメモリ17に記憶された画像データを編集用の登録画像データとして送信することもできるし、画像処理装置1に接続された外部入出力装置(USBデバイス)等に記憶された画像データを編集用の登録画像データとして送信することもできる。
【0062】
また、制御部100のCPU11は、モニタ40に再設定モード用の画像を表示するように指示するコマンドを送信する。その結果、例えば、モニタ40の表示画面は、図10に示す画面から図11に示す画面に切り替わる。図11の右上端には、「運転中編集」と表示されており、再設定モードに移行した後も通常運転が継続して行われていることを意味している。図11に示すように、ユーザが作成したフローチャートは、スタートシンボルから下方へ、撮像ユニット,パターンサーチユニット1010,キャリブレーションユニット,位置補正ユニット,エッジ位置,・・・と配置されている。また、フローチャートの右側に、ファンクションメニューが表示されており、フローチャートに対して検査項目の追加,切り取り,コピー,削除,グループ化などの編集を行うことができる。
【0063】
次に、ユーザは登録画像の編集を行う(図8のステップS4)。具体的には、制御部100のCPU11は、操作入力部15から受信する操作信号に基づいて、第2の処理部300に対し、第3のデータ記憶領域310に記憶された登録画像データを編集するようにコマンドを送信する。コマンドを受信した第2の処理部300のプロセッサ20は、第3のデータ記憶領域310にアクセスして、ここに記憶された登録画像データを編集する。例えば、図11に示す画面において、コンソール50を用いてパターンサーチにカーソルを合わせ、実行キーを押すと、図11に示す画面から図12に示す画面に切り替わる。図12に示す画面の左端には、パターンサーチにおいて編集可能な項目が表示されており、入力画像,画像登録,画像設定,サーチ領域,パターン領域1020,色抽出,前処理,検出条件1021などが編集可能となっている。例えば、ユーザはパターン領域1020にカーソルを合わせ、実行キーを押すと、図12に示す画面から図13に示す画面に切り替わる。図13は、パターンサーチ1010の設定項目のうちパターン領域1020を編集している様子を示している。図13には、登録画像1021として、「JUICE」を含む矩形枠(計測領域)内の画像が表示されている。
【0064】
ここで、登録画像1021の内部のうち左上方と右下方には、ノイズがのっている(説明の便宜上、やや大きめのホワイトノイズがのっている)。このようなノイズが登録画像に含まれている場合には、全体的に相関値が低下するなど、好ましい計測結果が得られない。そこで、例えばこのノイズ部分をマスク領域として設定することにより、登録画像をより最適なものに編集することができる。図13では、1つの計測領域に対してマスク領域を最大4つまで設定することができる(図13の右方に表示されたマスク領域0〜3)。ユーザは、コンソール50を用いてマスク領域0にカーソルを合わせてクリックし、ドロップダウンメニューの中からマスク領域の形状として「円」を選択する。そして、上述した右下方のノイズがモニタ40に表示された円1031の内部に含まれるように、その円1031の中心位置や半径Rを設定する。引き続き、ユーザは、コンソール50を用いてマスク領域1にカーソルを合わせてクリックし、先ほどと同様に、ドロップダウンメニューの中からマスク領域の形状として「円」を選択し、上述した左上方のノイズがモニタ40に表示された円1032の内部に含まれるように、その円1032の中心位置や半径Rを設定する。図14は、左上方のノイズが、モニタ40に表示された円1032の内部に含まれるように、円1032の中心位置(0128,0223)や半径R(0007)を設定している様子を示している。これらの設定が終了すると、図15に示すように、2個のノイズを囲う円1031,1032の内部については、パターンサーチを行う際に無視される。このような登録画像の編集を行うことにより、登録画像中のノイズに起因した相関値の低下を防ぎ、計測精度を高めることができる。登録画像の編集が終わり、図15に示すOKボタン1041をクリックすると、円1031,1032からなるマスク領域が設定された登録画像が、新たな登録画像データとして第3のデータ記憶領域310に記憶される。このように、モニタ40上に表示されたOKボタン1041は、ユーザによって編集された新たな登録画像データが、第3のデータ記憶領域310に記憶される契機となる部品画像となる。
【0065】
次に、シミュレーションが行われる(図8のステップS5)。具体的には、ユーザがシミュレーションを行うための所定のボタン(図示せず)をクリックすると、制御部100のCPU11は、操作入力部15から受信する操作信号に基づいて、第2の処理部300に対し、第3のデータ記憶領域310に記憶された登録画像データを用いてシミュレーションを行うように指示するコマンドを送信する。シミュレーションで用いる実験用の画像データとしては、例えば、画像入力部16を介してメモリ17に記憶された複数の画像データを用いる。メモリ17は、カメラ30a〜30cの撮像により生成された画像データを複数蓄積しておく機能を有し、第2の処理部300においてシミュレーションが行われる際には、それらを実験用の画像データとして提供する。制御部100は、画像入力部16を通じて、メモリ17から過去に撮像された画像データを読み出して、第2の処理部300のプロセッサ20に転送する。プロセッサ20は、制御部100からのコマンドに基づいて、第3のデータ記憶領域310に記憶された編集後の新たな登録画像データ(図8のステップS4、図15参照)を読み出しつつ、画像入力部16から転送された複数の実験用の画像データを用いて、シミュレーションを行う。
【0066】
図16は、複数の実験用の画像データでシミュレーションを行った結果がモニタ40に表示されている様子を示している。図16に示す画面は、ユーザがシミュレーション結果を確認したい場合に、コンソール50を用いてファンクションメニューから履歴ビューア(図示せず)を選択することによって表示される。図16では、画像変数「&Cam1Img」で特定されるカメラ1(カメラ30a)の撮像により生成された画像データが用いられている。また、画面右半分には、計測回数2701回目から2704回目までの4枚の入力画像が表示されており、画面左半分の判定結果一覧をみると、いずれも「OK」となっている。このように、ユーザは履歴ビューアを確認することで、編集した新たな登録画像を用いてシミュレーションを行ったときに、個々の実験用の画像データはどのように判定されるかを、一つ一つ確認していくことができる。また、これらの実験用の画像データの中から、新たな登録画像データの候補を選択することもできる。
【0067】
図17から図19は、シミュレーション結果に対して統計解析を行った様子を示している。図17から図19に示す画面は、ユーザがシミュレーション結果に対して統計解析を行いたい場合に、コンソール50を用いてファンクションメニューから統計解析(図示せず)を選択することによって表示される。図17では、シミュレーション結果に基づいて、各計測処理に対する判定結果1051、計測回数1052およびX座標の計測値1053などが表示されるとともに、計測値の統計量1054なども表示される。また、計測値の統計量1054については、図18に示すように、トレンドグラフにして偏差σの3倍を超える計測値がないかどうかを一目で視認することもできるし、図19に示すように、ヒストグラムにして平均の計測値よりも個々の度数がどちらに偏っているかを一目で視認することもできる。
【0068】
このように、ユーザは、図17から図19に示す統計解析結果を参考にして、編集した登録画像が妥当か否かを検証し、妥当であると判断した場合には、モニタ40上で図11に示す画面に戻って、保存ボタン1011をクリックした後、終了ボタン1012をクリックし、再設定モードを終了する(図8のステップS6)。一方、編集した登録画像が妥当でないと判断した場合には、登録画像の編集(図8のステップS4)をし直すか、或いは、キャンセルボタン(図示せず)をクリックして再設定モードを終了する。キャンセルボタンをクリックした場合には、画像処理装置1は再設定モードに移行する前の状態に戻る。
【0069】
一方で、保存ボタン1011と終了ボタン1012により再設定モードを終了した場合には、再設定の反映が行われる(図8のステップS7)。具体的には、図9に示すように、制御部100は、第3のデータ記憶領域310に記憶されている編集後の登録画像データ、すなわち図15に示すようにマスク領域が設定された登録画像データを、メモリ13に取り込む(読み出す)。そして、制御部100からのコマンドに基づいて、第1の処理部200のプロセッサ18は、メモリ13に記憶されている登録画像データを、第1の処理部200の第2のデータ記憶領域220に転送した後(ステップS11)、これを記憶する(ステップS12)。その後、制御部100は、現在実行中のフロー1周期が終了し、次のフロー1周期が始まる直前のタイミングで、第1の処理部200においてプロセッサ18が登録画像データを読み出す先として、第1のデータ記憶領域210から第2のデータ記憶領域220に切り替えるようなコマンドを送信する(ステップS13)。その結果、画像処理装置1の通常運転を停止させることなく、ユーザが再設定した内容を通常運転に反映させることができる。
【0070】
なお、図10や図16等を用いて説明したように、モニタ40は、第1の処理部200および第2の処理部300における画像処理結果を表示する表示部の一例として機能する。すなわち、第2の処理部300は、第1の処理部200において画像処理が継続して実行されているときには、制御部100からのコマンドに基づいて、第1の処理部200における画像処理結果を表示するための制御信号をモニタ40に送信するとともに、第2の処理部300において第3のデータ記憶領域310に記憶された画像処理用データが編集され、編集された画像処理用データを用いた画像処理が実行されたときには、制御部100からのコマンドに基づいて、第2の処理部300における画像処理結果を表示するための制御信号を前記表示部に送信する。
【0071】
また、上述した実施形態では、次のフロー1周期が始まる直前のタイミングで、登録画像データを読み出す先を切り替えるためのコマンドを送信することとしたが、コマンドの送信タイミングは如何なるタイミングであってもよい。例えば、現在実行中のフロー1周期が終了する前に予めコマンドを送信しておき、現在実行中のフロー1周期が終了したら、そのコマンドを実行するようにしてもよい。また、本実施形態では、現在実行中のフローについては最後まで優先的に実行するようにしているが、例えば現在実行中のフロー1周期を強制的に終了して、登録画像データを読み出す先を切り替えて、次のフロー1周期を開始してもよい。
【0072】
また、再設定した内容が通常運転に反映された後に、再び再設定(2回目の再設定)が行われた場合には、図8のステップS6において、再設定モードの終了とともに、第3のデータ記憶領域310に記憶されている編集後の新たな登録画像データが、今度は第1の処理部200の第1のデータ記憶領域210に転送される。そして、図8のステップS7において、第1の処理部200において登録画像データを読み出す先として、第2のデータ記憶領域220から第1のデータ記憶領域210に切り替えられる。
【0073】
このように、再設定モードにおいてユーザが登録画像データを編集し、新たな登録画像データを生成し、その編集された新たな登録画像データを通常運転に反映させるたびに、第1の処理部200において登録画像データを読み出す先が入れ替わる。これにより、通常運転を停止させることなく、ユーザは何度でも、登録画像の編集,編集した登録画像を用いたシミュレーション,編集した登録画像の通常運転への反映を繰り返すことができる。最後に、ユーザがモニタ40上で所定の終了ボタン(図示せず)をクリックした場合には、画像処理装置1は通常運転を終了する(図8のステップS8)。以上説明したように、ユーザは通常運転を停止させることなく登録画像を編集することができるが、その他、各検査項目についてのパラメータ値や、ユーザが独自に定義した変数の変数値なども編集することができる。以下、詳細に説明する。
【0074】
[パラメータ値の編集]
図20は、パラメータ値の編集が行われている際のモニタ40の表示画面例である。図20に示す表示画面は、図12に示す表示画面において、ユーザがコンソール50を用いてカーソルを検出条件1021に合わせてクリックすると表示される。
【0075】
図20に示すように、パターンサーチユニットの検出条件としては、角度範囲(+方向および−方向),検出個数,設定可能検出個数,サーチ感度1061,サーチ精度などを設定することができる。角度範囲は、入力画像中の特定のパターン(登録画像)が回転している場合に、計測する角度の範囲を指定するパラメータであり、検出個数は、パターンサーチ計測で検出する特定のパターンの最大個数を指定するパラメータであり、設定可能検出個数は、設定可能な検出個数を指定するパラメータであり、サーチ感度1061は、検出の安定度と処理時間との優先付けを調整するサーチ感度を指定するパラメータであり、サーチ精度は、検出の精度と処理時間との優先付けを調整するサーチ精度を指定するパラメータである。図20では、これらのうちサーチ感度1061にカーソルを合わせてクリックしている様子を示しており、プルダウンメニューとして、低い,より低い,やや低い,普通,やや高い,より高い,高い、という7段階のパラメータ値が表示されている。ユーザは、これらのうち所望のパラメータ値を選択してOKボタン1062をクリックすると、パラメータ値の編集を行うことができる。
【0076】
OKボタン1062のクリックによりパラメータ値の編集が行われると、制御部100は、編集後のパラメータ値をメモリ13に複製する。パラメータ値の編集が行われているときも通常運転は継続しており、通常運転とは別にシミュレーション用にパラメータ値が必要になるからである。例えば図20において、通常運転におけるサーチ感度1061のパラメータ値が「普通」である場合に、ユーザによってサーチ感度1061のパラメータ値が「やや高い」に編集されると、制御部100のCPU11は、パラメータ値「やや高い」をメモリ13に複製する。
【0077】
その後、制御部100は、シミュレーションを行う際に、第2の処理部300に対してパターンサーチを実行させるとき、パターンサーチを実行すべき旨のコマンドとともにパラメータ値「やや高い」を送信する。一方で、第1の処理部200に対しては、パターンサーチを実行させるとき、パターンサーチを実行すべき旨のコマンドとともにパラメータ値「普通」を送信する。
【0078】
このように、ユーザが編集したパラメータ値のみをメモリ13において複製し、シミュレーションに必要な場合には複製したパラメータ値を第2の処理部300に送信する。そして、シミュレーションの結果、パラメータ値が妥当であれば、ユーザは保存ボタン1011および終了ボタン1012(図11参照)をクリックすることによって、再設定モードを終了させ、再設定の反映を行うことができる(図8のステップS7参照)。具体的には、制御部100は、現在実行中のフロー1周期が終了し、次のフロー1周期が始まる直前のタイミングで、複製した方のパラメータ値「やや高い」を送信する。このように、必要なパラメータ値のみメモリ13において複製すればよいので、メモリ資源を有効に活用しつつ、かつ、通常運転を止めることなく、パラメータ値を編集することができる。なお、複製元となったパラメータ値「普通」については、再設定の反映とともに破棄することができる。
【0079】
[変数値の編集]
図21は、ユーザが定義した変数の変数値が編集されている際のモニタ40の表示画面例である。図21に示す表示画面は、図11に示す表示画面において、ユーザがコンソール50を用いてカーソルを変数設定1013に合わせてクリックすると表示される。
【0080】
ここで、画像処理装置1において、ユーザが定義可能な変数としては、ローカル変数,グローバル変数,画像変数の3個の変数がある。「ローカル変数」は、一時的に数字や文字等を記憶しておくとともに、一の検査設定内で参照可能な変数であり、画像処理ユニットの一の処理順序(フローチャート)において参照し得る変数である。ローカル変数は、コントローラ10の電源起動時や検査設定切換時に、ユーザによって予め定義された初期値で初期化される。また、特定の画像処理ユニットの実行結果(例えばエッジ位置など)が一時的に記憶された後、その画像処理ユニット以下に配置された画像処理ユニットの実行(例えばエッジ位置とエッジ位置との間の距離など)において参照され得る。「グローバル変数」は、一時的に数字や文字等を記憶しておくとともに、複数の検査設定を跨いで(全検査設定に共通して)参照可能な変数である。すなわち、画像処理ユニットの処理順序(フローチャート)が複数ある場合に、それら複数の処理順序において共通で参照し得る変数である。「画像変数」は、上述のとおりである。
【0081】
また、ローカル変数,グローバル変数,画像変数は、本実施形態では制御部100のメモリ13に記憶されている。したがって、メモリ13は、処理順序プログラムにおいて参照可能な変数の変数値を記憶する変数値記憶領域の一例として機能する。
【0082】
図21は、ローカル変数を編集する際の表示画面例を示しており、スカラ量の変数として#L0000,#L0001,#a,#bなどが定義されている。ユーザは、これらの変数のうち編集したい変数にカーソルを合わせてクリックし、変数値を変更することができる。変数値の編集が終わると、ユーザは閉じるボタン1071をクリックにすることにより、変数値の編集を終える。このとき、メモリ13には、第2の処理部200においてシミュレーションを行うために、制御部100のCPU11によって編集後の変数値が記憶される。
【0083】
ここで、変数には、図21に示すようにユーザが自らの意思によって定義したり変更したりすることが可能な変数だけでなく、例えば実行されたフローの実行回数(何周期が実行されたか)を示すカウントアップ変数なども存在する。このカウントアップ変数は、第1の処理部200で通常運転を継続している関係上、ユーザが勝手に変更してはならない変数である。
【0084】
そこで、本実施形態では、図21に示す各変数に、ユーザがコンソール50を用いて変更を行ったか否かのフラグが対応付けられており(メモリ13にフラグの記憶領域が設けられており)、制御部100のCPU11は、このフラグが立っているか否かにより、ユーザの意思により変更された変数であるか否かを識別する。そして、制御部100のCPU11は、第1の処理部200に対し、変数の変数値を送信するときには、ユーザがコンソール50を用いて変更を行った変数の変数値についてのみ、実行すべき画像処理を指示するコマンドとともに第1の処理部200に対して送信する。このように、ユーザが勝手に変更してはならない変数(カウントアップ変数など)については変更されないようにしつつ、ユーザが自らの意思により値を変更した変数についてのみ通常運転に反映させることができるので、システム上のエラーを防ぎつつ、かつ、通常運転を止めることなく、パラメータ値を編集することができる。
【0085】
[変形例]
図22から図26は、本発明の他の実施形態に係る画像処理装置1のコントローラ10を説明するためのブロック図である。
【0086】
本発明の実施にあたっては、図22に示すように、第1のデータ記憶領域210と第2のデータ記憶領域220を、プロセッサ18内に内蔵することもできる。つまり、図2に示すプロセッサ18とメモリ19を1チップ化することもできる。ただし、1チップ化されたプロセッサは高価になるため、図2に示すハードウェア構成を採用することにより、安価なプロセッサ18やメモリ19を利用することができる。
【0087】
また、本発明の実施にあたっては、図23に示すように、第1のデータ記憶領域210と第2のデータ記憶領域220を別個独立の2個のメモリとすることもできる。ただし、2個のメモリを用いると同種部品の部品点数の増加に繋がるため、図2に示すハードウェア構成を採用することにより、同種部品の部品点数を減らして製造コストを抑えることができる。
【0088】
また、本発明の実施にあたっては、図24に示すように、第1の処理部200と第2の処理部300を、プロセッサ20やメモリ21とは別個に設けることもできる。ただし、上述同様、2個のプロセッサ18,18’を用いると同種部品の部品点数の増加に繋がるため、図2に示すハードウェア構成を採用することにより、同種部品の部品点数を減らして製造コストを抑えることができる。
【0089】
加えて、図2に示す第2の処理部300におけるプロセッサ20は、モニタ40にも接続されており、モニタ40の表示内容を制御する表示制御部としても機能している。したがって、プロセッサ20からの表示制御信号に基づいて、第1の処理部200および第2の処理部300の処理結果をモニタ40に表示させるとともに、コンソール50を用いたユーザの操作内容もモニタ40に表示させることによって、第1の処理部200の処理結果(通常運転の計測結果)と第2の処理部300の処理結果(シミュレーションの処理結果)を、ユーザの操作に基づき高速に切り替えることができる。
【0090】
また、通常運転用のプロセッサ18は、数十ミリ秒という単位で極めて高速に画像処理を行わなければならないため、高価かつ高性能なプロセッサを用いる必要がある一方、表示用のプロセッサ20は、数百ミリ秒という単位でモニタ40に対する表示制御を行えばよい(ユーザが画面遷移を視認できる程度の速さで表示切替を行えばよい)。したがって、上述した本実施形態に係る画像処理装置1(図2参照)では、あえて表示用のプロセッサ20とメモリ21の方に、シミュレーションを行う第2の処理部300としての機能をもたせている。これにより、通常運転用のプロセッサ18の処理能力をほとんど低下させることなく、通常運転の裏でシミュレーションを行うことができる。
【0091】
さらに、シミュレーション用のプロセッサと表示用のプロセッサを兼用させるときには、ビデオRAMなど表示用のメモリ21の使用制限が課せられる。しかし、上述した本実施形態に係る画像処理装置1(図2参照)では、ユーザが編集したい登録画像データを記憶できる領域さえ確保できればシミュレーション可能であるため、この使用制限が弊害になるのを防止できる。具体的には、例えばメモリ21に記憶できる登録画像データが1枚分である場合には、ユーザがメモリ21に新たな登録画像データを生成し、実験用の画像データをメモリ17から読み出しつつシミュレーションを行って、その新たな登録画像データが妥当であれば第1の処理部200に転送する。次に、再びユーザがメモリ21に新たな登録画像データを生成し、シミュレーションを行って妥当であれば、その新たな登録画像データを第1の処理部200に転送する。以下同様にして、新たな登録画像データの生成・第1の処理部200への転送を、必要な回数だけ繰り返すことにより、メモリ21に使用制限が課せられていても複数の登録画像の編集を行うことが可能である。なお、全ての登録画像の編集が終了したら、図7を用いて説明したように、登録画像データの読み出し先を切り替えればよい。
【0092】
また、本発明の実施にあたっては、図25に示すように、プロセッサ18としてデュアルコアのプロセッサを用いて、一方のコア181およびそれに接続されたメモリ19に、第1の処理部200としての機能をもたせるとともに、他方のコア182およびそれに接続されたメモリ19’に、第2の処理部300としての機能をもたせることもできる。なお、図26に示すように、プロセッサ18としてトリプルコアのプロセッサを用いて、制御部100のCPU11の機能も、プロセッサ18にもたせることもできる。
【符号の説明】
【0093】
1 画像処理装置
10 コントローラ
11 CPU
12 プログラムメモリ
13 メモリ
14 通信部
15 操作入力部
16 画像入力部
17 メモリ
18 プロセッサ
19 メモリ
20 プロセッサ
21 メモリ
30a〜30c カメラ
40 モニタ
50 コンソール
60 PLC
70 PC

【特許請求の範囲】
【請求項1】
検査対象物を撮像して画像データを生成するカメラを有し、複数の画像処理の処理順序が規定された処理順序プログラムが記憶され、当該処理順序プログラムに基づいて、当該カメラから取得した画像データを用いて当該複数の画像処理を順次実行して、処理結果に基づき検査対象物の良否を判定して判定信号を出力する画像処理装置において、
前記複数の画像処理のうち少なくとも一つの画像処理に用いられる画像処理用データを記憶する第1のデータ記憶領域および第2のデータ記憶領域を有し、前記複数の画像処理を実行する第1の処理部と、
前記画像処理用データを記憶する第3のデータ記憶領域を有し、前記複数の画像処理のうち少なくとも一つの画像処理を実行する第2の処理部と、
前記第1の処理部および前記第2の処理部に対して実行すべき画像処理を指示するコマンドを送信する制御部と、
ユーザの操作に基づく操作信号が入力される操作入力部と、を備え、
前記制御部は、前記第1の処理部に対し、前記第1の処理部において前記画像処理用データを用いて画像処理が実行される際には前記第1のデータ記憶領域から当該画像処理用データを読み出すように指示しつつ、前記処理順序プログラムに基づき前記複数の画像処理を継続して実行するように指示するコマンドを送信する一方で、前記第2の処理部に対し、前記操作信号に基づいて、前記第3のデータ記憶領域に記憶された画像処理用データの編集を指示するコマンドを送信するとともに、編集された画像処理用データを用いた画像処理を実行するように指示するコマンドを送信し、
前記編集された画像処理用データを前記第1の処理部において継続して実行される画像処理に反映させるときには、当該編集された画像処理用データが前記第3のデータ記憶領域から前記第2のデータ記憶領域に転送され、前記第1の処理部において編集された画像処理用データを用いて画像処理が実行される際には前記第2のデータ記憶領域から当該編集された画像処理用データが読み出されることを特徴とする画像処理装置。
【請求項2】
前記制御部は、前記第3のデータ記憶領域から読み出した前記編集された画像処理用データを記憶する第4のデータ記憶領域を有し、
前記編集された画像処理用データを前記第1の処理部において継続して実行される画像処理に反映させるときには、前記編集された画像処理用データを前記第3のデータ記憶領域から読み出して前記第4のデータ記憶領域に記憶するとともに、前記第1の処理部に対し、前記第4のデータ記憶領域から前記編集された画像処理用データを読み出して前記第2のデータ記憶領域に記憶するように指示するコマンドを送信するとともに、前記第1の処理部において編集された画像処理用データを用いて画像処理が実行される際には前記第2のデータ記憶領域から当該編集された画像処理用データを読み出すように指示するコマンドを送信することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記第1の処理部および前記第2の処理部は、それぞれ第1のプロセッサおよび第2のプロセッサを有しており、
前記制御部からのコマンドに基づき前記第1のプロセッサが画像処理を継続して実行している最中に、前記第2のプロセッサにより編集された画像処理用データを前記第1のプロセッサにより継続して実行される画像処理に反映させるときには、前記制御部は、前記編集された画像処理用データを前記第3のデータ記憶領域から読み出して前記第4のデータ記憶領域に記憶するとともに、前記第1のプロセッサに対し、画像処理の実行中又は前後の画像処理の間に割り込んで、前記第4のデータ記憶領域から前記編集された画像処理用データを読み出して前記第2のデータ記憶領域に記憶するように指示するコマンドを送信することを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記第2のプロセッサにより編集される画像処理用データは画像データであって、
前記制御部は、前記第1のプロセッサに対し、前記第4のデータ記憶領域から前記編集された画像データを読み出す際には、当該画像データを小単位に分割して、前記第2のデータ記憶領域に順次記憶するように指示するコマンドを送信することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記第1の処理部および前記第2の処理部における画像処理結果を表示する表示部を備え、
前記第2の処理部は、前記第1の処理部において画像処理が継続して実行されているときには、前記制御部からのコマンドに基づいて、前記第1の処理部における画像処理結果を表示するための制御信号を前記表示部に送信するとともに、前記第2の処理部において前記第3のデータ記憶領域に記憶された画像処理用データが編集され、編集された画像処理用データを用いた画像処理が実行されたときには、前記制御部からのコマンドに基づいて、前記第2の処理部における画像処理結果を表示するための制御信号を前記表示部に送信することを特徴とする請求項1から4のいずれか記載の画像処理装置。
【請求項6】
前記処理順序プログラムにおいて参照可能な変数の変数値を記憶する変数値記憶領域を有し、
前記制御部は、前記操作信号に基づいて前記変数の変数値が変更されたとき、変更後の変数値を前記変数値記憶領域に記憶するとともに、
実行すべき画像処理を指示するコマンドとともに前記変数の変数値を前記第1の処理部に送信するときに、前記操作信号に基づいて変数値が変更された変数については、変更後の変数値を送信することを特徴とする請求項1から5のいずれか記載の画像処理装置。
【請求項7】
検査対象物を撮像して画像データを生成するカメラを有し、複数の画像処理の処理順序が規定された処理順序プログラムが記憶され、当該処理順序プログラムに基づいて、当該カメラから取得した画像データを用いて当該複数の画像処理を順次実行して、処理結果に基づき検査対象物の良否を判定して判定信号を出力する画像処理装置を用いた画像処理方法において、
前記画像処理装置は、前記複数の画像処理のうち少なくとも一つの画像処理に用いられる画像処理用データを記憶する第1のデータ記憶領域および第2のデータ記憶領域を有し、前記複数の画像処理を実行する第1の処理部と、
前記画像処理用データを記憶する第3のデータ記憶領域を有し、前記複数の画像処理のうち少なくとも一つの画像処理を実行する第2の処理部と、
前記第1の処理部および前記第2の処理部に対して実行すべき画像処理を指示するコマンドを送信する制御部と、
ユーザの操作に基づく操作信号が入力される操作入力部と、を備え、
前記制御部が、前記第1の処理部に対し、前記第1の処理部において前記画像処理用データを用いて画像処理が実行される際には前記第1のデータ記憶領域から当該画像処理用データを読み出すように指示しつつ、前記処理順序プログラムに基づき前記複数の画像処理を継続して実行するように指示するコマンドを送信する第1ステップと、
前記第2の処理部に対し、前記操作信号に基づいて、前記第3のデータ記憶領域に記憶された画像処理用データの編集を指示するコマンドを送信する第2ステップと、
前記第2の処理部に対し、前記操作信号に基づいて、編集された画像処理用データを用いて画像処理の実行を指示するコマンドを送信する第3ステップと、
前記第1の処理部および前記第2の処理部に対し、前記編集された画像処理用データが前記第3のデータ記憶領域から前記第2のデータ記憶領域に転送されるとともに、前記第1の処理部において編集された画像処理用データを用いて画像処理が実行される際には前記第2のデータ記憶領域から当該編集された画像処理用データが読み出されるように指示するコマンドを送信する第4ステップと、を含むことを特徴とする画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−96047(P2011−96047A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−250169(P2009−250169)
【出願日】平成21年10月30日(2009.10.30)
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】