(57)【特許請求の範囲】
【請求項１】
検査対象物を撮影してカメラ画像を生成するカメラと、上記カメラからカメラ画像を取得して当該カメラ画像から計測結果を抽出し、この計測結果に基づいて上記検査対象物の良否を判定して判定信号を出力する画像処理コントローラとからなる画像処理装置に用いられる上記画像処理コントローラの制御プログラムを作成するプログラム作成装置において、
上記画像処理コントローラの制御プログラムとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムを生成するプログラム生成手段と、
上記制御プログラムを実行するシミュレーション手段と、
上記制御プログラムを上記画像処理コントローラへ転送する転送手段とを備え、
上記シミュレーション手段は、登録画像として予め保持されているカメラ画像から上記計測結果を抽出するオフラインシミュレーション手段と、
上記制御プログラムの実行時に上記画像処理コントローラを介して上記カメラからカメラ画像を取得し、取得したカメラ画像から上記計測結果を抽出するオンラインシミュレーション手段とからなることを特徴とする画像処理コントローラ用のプログラム作成装置。
【請求項２】
制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得された一連のカメラ画像を保持するカメラ画像記憶手段と、
上記一連のカメラ画像の中から上記登録画像として保持させるカメラ画像を抽出するカメラ画像抽出手段とを備えたことを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項３】
パラメータが変更可能な処理を示す処理ユニットとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得する撮像ユニット、及び、上記撮像ユニットによって取得された上記カメラ画像から計測結果を抽出する２以上の計測ユニットを保持する処理ユニット記憶手段と、
スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に上記処理ユニットを配置することによって生成されたフローチャートを表示するフローチャート表示手段と、
上記フローチャート上で選択された上記撮像ユニットの上記パラメータとして、複数のカメラの中からカメラ画像の取得対象とするカメラを決定する撮像条件決定手段とを備え、
上記プログラム生成手段が、上記フローチャートに基づいて上記制御プログラムを生成し、
上記フローチャート上には、複数の上記撮像ユニットを配置することができ、これらの撮像ユニットごとにカメラ画像の取得対象とするカメラを選択することができることを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項４】
制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得されたカメラ画像を上記撮像ユニットに関連付けて保持するカメラ画像記憶手段を備え、
上記フローチャート上に複数の上記撮像ユニットが配置された制御プログラムが上記オフラインシミュレーション手段によって実行される場合に、当該フローチャート上の各撮像ユニットについて、上記カメラ画像記憶手段に保持されているカメラ画像の中から上記登録画像として保持させるカメラ画像が自動抽出されることを特徴とする請求項３に記載の画像処理コントローラ用のプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理コントローラ用のプログラム作成装置に係り、さらに詳しくは、検査対象物を撮影して得られるカメラ画像に基づいて判定信号を出力する画像処理コントローラの制御プログラムを作成するプログラム作成装置の改良に関する。
【背景技術】
【０００２】
検査対象物を撮影して得られるカメラ画像を画像処理し、検査対象物の形状、位置、カメラ画像に基づく判定結果を示す判定信号などを処理結果として出力する画像処理コントローラには、一連の処理手順を変更可能なものが知られている（例えば、特許文献１）。通常、一連の処理手順をこの様な画像処理コントローラに実行させるための制御プログラムは、ＰＣ（パーソナルコンピュータ）などの情報処理端末上で動作するエディタ（ソフトウェア）を用いて作成される。ユーザは、作成した制御プログラムを画像処理コントローラに転送することにより、検査対象物に対して所望の検査を行うことができる。
【０００３】
上述した様な従来のプログラム作成装置では、撮像条件や計測条件を示すパラメータを変更した場合に、パラメータの変更後の制御プログラムが所望の動作をするか否かを確かめるには、作成した制御プログラムを画像処理コントローラへ転送して画像処理コントローラ上で実行させる必要があった。このため、制御プログラムを動作確認しようとするごとに、制御プログラムを転送して画像処理コントローラ上で実行させなければならず、操作性が良くないという問題があった。
【０００４】
一般に、ＰＣ上で動作するシミュレータと呼ばれるソフトウェアを用いれば、制御プログラムの動作確認をＰＣ上で行うことができる。しかしながら、この様なシミュレータでは、登録画像として予め保持されているカメラ画像を使用して画像処理のシミュレーションが行われる。このため、制御プログラムの実行時にカメラからカメラ画像を取り込んで動作確認を行うというような運用はできず、パラメータの高精度な設定ができないという問題があった。
【特許文献１】特開平９−２８８５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した通り、従来の画像処理コントローラ用のプログラム作成装置では、作成した制御プログラムを動作確認しようとするごとに、制御プログラムを転送して画像処理コントローラ上で実行させなければならず、操作性が良くないという問題があった。また、登録画像として予め保持されているカメラ画像を使用して画像処理のシミュレーションが行われるので、パラメータの高精度な設定ができないという問題があった。
【０００６】
本発明は、上記の事情に鑑みてなされたものであり、作成した制御プログラムを動作確認する際の操作性を向上させた画像処理コントローラ用のプログラム作成装置を提供することを目的とする。特に、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができるプログラム作成装置を提供することを目的とする。また、制御プログラムの実行時にカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の本発明による画像処理コントローラ用のプログラム作成装置は、検査対象物を撮影してカメラ画像を生成するカメラと、上記カメラからカメラ画像を取得して当該カメラ画像から計測結果を抽出し、この計測結果に基づいて上記検査対象物の良否を判定して判定信号を出力する画像処理コントローラとからなる画像処理装置に用いられる上記画像処理コントローラの制御プログラムを作成するプログラム作成装置であって、上記画像処理コントローラの制御プログラムとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムを生成するプログラム生成手段と、上記制御プログラムを実行するシミュレーション手段と、上記制御プログラムを上記画像処理コントローラへ転送する転送手段とを備え、上記シミュレーション手段は、登録画像として予め保持されているカメラ画像から上記計測結果を抽出するオフラインシミュレーション手段と、上記制御プログラムの実行時に上記画像処理コントローラを介して上記カメラからカメラ画像を取得し、取得したカメラ画像から上記計測結果を抽出するオンラインシミュレーション手段とからなるように構成される。
【０００８】
このプログラム作成装置では、制御プログラムを実行するシミュレーション手段が、登録画像として予め保持されているカメラ画像を用いるオフラインシミュレーション手段と、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うオンラインシミュレーション手段とからなる。この様な構成によれば、プログラム作成装置上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することもできる。
【０００９】
第２の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得された一連のカメラ画像を保持するカメラ画像記憶手段と、上記一連のカメラ画像の中から上記登録画像として保持させるカメラ画像を抽出するカメラ画像抽出手段とを備えて構成される。この様な構成によれば、オンラインシミュレーション時に得られた一連のカメラ画像をオフラインシミュレーション用の登録画像として使用することができるので、撮像条件や計測条件などのパラメータの高精度な設定をすることができる。
【００１０】
第３の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、パラメータが変更可能な処理を示す処理ユニットとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得する撮像ユニット、及び、上記撮像ユニットによって取得された上記カメラ画像から計測結果を抽出する２以上の計測ユニットを保持する処理ユニット記憶手段と、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に上記処理ユニットを配置することによって生成されたフローチャートを表示するフローチャート表示手段と、上記フローチャート上で選択された上記撮像ユニットの上記パラメータとして、複数のカメラの中からカメラ画像の取得対象とするカメラを決定する撮像条件決定手段とを備え、上記プログラム生成手段が、上記フローチャートに基づいて上記制御プログラムを生成し、上記フローチャート上には、複数の上記撮像ユニットを配置することができ、これらの撮像ユニットごとにカメラ画像の取得対象とするカメラを選択することができるように構成される。この様な構成によれば、フローチャート上に複数の撮像ユニットが配置された制御プログラムをオンラインシミュレーションした場合に、制御プログラムの実行中にカメラから取得された撮像ユニットごとのカメラ画像をシミュレーション結果として得ることができる。
【００１１】
第４の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得されたカメラ画像を上記撮像ユニットに関連付けて保持するカメラ画像記憶手段を備え、上記フローチャート上に複数の上記撮像ユニットが配置された制御プログラムが上記オフラインシミュレーション手段によって実行される場合に、当該フローチャート上の各撮像ユニットについて、上記カメラ画像記憶手段に保持されているカメラ画像の中から上記登録画像として保持させるカメラ画像が自動抽出されるように構成される。この様な構成によれば、オンラインシミュレーション時に得られたカメラ画像がオフラインシミュレーション用の登録画像として自動抽出されるので、オフラインシミュレーション用に登録画像を指定する際の操作性を向上させることができる。
【発明の効果】
【００１２】
本発明による画像処理コントローラ用のプログラム作成装置によれば、プログラム作成装置上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することができる。
【発明を実施するための最良の形態】
【００１３】
<検査支援システム>
図１は、本発明の実施の形態による検査支援システムの一構成例を示した斜視図である。この検査支援システムは、検査対象物の搬送ライン上に配置される画像処理装置１と、この画像処理装置１の制御プログラムを生成するＰＣ（パーソナルコンピュータ）２とからなる。
【００１４】
画像処理装置１は、画像処理コントローラ１１、カメラ１２、ディスプレイ１３ａ及び操作ユニット１３ｂからなり、検査対象物から得られたカメラ画像に基づいて判定信号を出力するセンサー装置である。この判定信号は、図示しないＰＬＣ（Programmable Logic Controller：プログラマブルコントローラ）などへ入力され、画像処理装置１は、ＦＡ（Factory Automation）センサーとして使用される。
【００１５】
カメラ１２は、被写体を撮影して画像データを生成し、カメラ画像として出力する撮像装置であり、画像処理コントローラ１１に着脱可能に接続される。カメラ１２は、検査対象物が搬送される搬送ライン上に配置され、検査対象物を被写体として撮影が行われる。
【００１６】
ディスプレイ１３ａは、検査対象物を撮影して得られたカメラ画像やカメラ画像に基づく画像処理結果を表示するための出力装置である。このディスプレイ１３ａは、画像処理コントローラ１１によって表示制御され、通常、画像処理コントローラ１１の近傍に配置される。つまり、このディスプレイ１３ａは、画像処理コントローラ１１が運転中である場合に、画像処理コントローラ１１の動作状態をユーザに確認させるための表示装置となっている。操作ユニット１３ｂは、ディスプレイ１３ａ上でフォーカス位置を移動させたり、メニュー項目を選択するための入力装置である。
【００１７】
画像処理コントローラ１１は、カメラ１２からのカメラ画像を取り込んで処理し、カメラ画像に基づいて行った判定結果を示す判定信号を処理結果として出力する画像処理装置１の本体ユニットである。カメラ画像の取得動作は、例えば、ＰＬＣなどの外部機器から入力される制御信号であって、カメラ画像を取り込むタイミングを規定する撮像トリガ信号に基づいて行われる。
【００１８】
この画像処理コントローラ１１には、最大で４台のカメラ１２が接続され、これらのカメラ１２から取得したカメラ画像に基づいて画像処理が行われる。画像処理コントローラ１１から出力される判定信号は、製品の良否などの判定結果を示す信号として生成される。
【００１９】
また、画像処理コントローラ１１には、ディスプレイ１３ａ及び操作ユニット１３ｂが接続されており、ＰＣ２を接続しなくても、操作ユニット１３ｂを入力装置とし、ディスプレイ１３ａを出力装置として動作させることができる。
【００２０】
ＰＣ２は、画像処理コントローラ１１の制御プログラムを作成するプログラム作成装置であり、ＰＣ２上で動作するエディタ（ソフトウェア）によって制御プログラムが生成される。画像処理コントローラ１１の制御プログラムを作成する際、ＰＣ２上でシミュレーションして動作確認することができる。
【００２１】
ＰＣ２では、画像処理コントローラ１１によるディスプレイ１３ａ上の表示態様を規定するレイアウト情報が作成される。このレイアウト情報もエディタによってＰＣ２における編集画面上で作成され、制御プログラム及びレイアウト情報からなる検査設定データが生成される。
【００２２】
ＰＣ２と画像処理装置１の画像処理コントローラ１１とは、イーサネット（Ethernet：登録商標）などの通信ネットワークを介して接続される。ＰＣ２には、複数の画像処理コントローラ１１が着脱可能に接続される。ＰＣ２上で作成した検査設定データを画像処理コントローラ１１に転送することにより、画像処理コントローラ１１内の検査設定データを書き換えることができる。また、画像処理コントローラ１１内の検査設定データを取り込んでＰＣ２上で編集することもできる。このＰＣ２は、通常、画像処理装置１のメンテナンス時に画像処理コントローラ１１が接続される。
【００２３】
<システム構成>
図２は、図１の検査支援システムのシステム構成の一例を示したブロック図である。この検査支援システム１００は、１台のＰＣ２と、通信ネットワーク３を介してＰＣ２に接続された複数の画像処理装置１により構成される。ＰＣ２上で作成された制御プログラムは、検査設定データ２２としてメモリ２１内に格納される。
【００２４】
ＰＣ２上で作成された検査設定データ２２は、通信ネットワーク３を介して画像処理コントローラ１１に転送される。このとき、転送先を指定して検査設定データ２２を転送することにより、所望の画像処理コントローラ１１について、メモリ１４内の検査設定データ１５を更新し、或いは、メモリ１４内に新たな検査設定データを追加することができる。
【００２５】
この画像処理コントローラ１１では、フラッシュメモリなどのメモリ１４内に複数の検査設定データ１５が保持されている。各検査設定データ１５は、処理手順や検査内容が異なる制御プログラムからなり、ユーザ操作に基づいて実行対象とする検査設定データ１５を変更することができる。
【００２６】
ＰＣ２では、通信ネットワーク３によって接続されている画像処理コントローラ１１から検査設定データ１５を取得して編集する動作が行われる。
【００２７】
<エディタ画面>
図３は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、検査設定データ２２を作成するためのエディタ画面４０が示されている。エディタ画面４０は、ＰＣ２上で検査設定データを新たに作成し、或いは、画像処理コントローラ１１から取得した検査設定データを編集するための編集画面であり、ＰＣ２上に表示される。
【００２８】
このエディタ画面４０は、それぞれ表示位置や表示範囲が変更可能な複数のウィンドウ画面からなる。具体的には、システムビューウィンドウ４１、パーツリストウィンドウ４２、ユニットプロパティウィンドウ４３、ビジョンビューウィンドウ４４及びリザルトビューウィンドウ４５からなる。
【００２９】
システムビューウィンドウ４１は、システム構成や編集対象とする検査設定データを一覧表示するためのウィンドウ画面であり、コントローラ一覧画面４１ａ及びワークスペース一覧画面４１ｂからなる。
【００３０】
コントローラ一覧画面４１ａは、ＰＣ２に接続されている画像処理コントローラ１１を一覧表示するための画面であり、画像処理コントローラ１１を示すアイコンや、画像処理コントローラ１１内に保持されている検査設定データ１５を示すアイコンが表示されている。
【００３１】
画像処理コントローラ１１や検査設定データ１５を示す各アイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ１１を上階層とし、この画像処理コントローラ１１内に保持されている検査設定データ１５を下階層として、検査設定データ１５がどの画像処理コントローラ１１に保持されているのかが識別可能なように表示されている。
【００３２】
ワークスペース一覧画面４１ｂは、編集対象とする検査設定データを一覧表示するための画面であり、画像処理コントローラ１１ごとに設けられるメモリ２１上の作業領域を示すアイコンや、検査設定データを示すアイコンが表示されている。画像処理コントローラ１１ごとに設けられるメモリ２１上の作業領域は、該当する画像処理コントローラ１１に関連付けられており、ワークスペースとして表示されている。つまり、ＰＣ２上には、検査設定データが画像処理コントローラ１１ごとに保持され、画像処理コントローラ１１ごとのワークスペースにおいて編集が行われる。
【００３３】
この様な作業領域を示すアイコンや検査設定データを示すアイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ１１に対応するワークスペースを上階層とし、このワークスペース内の検査設定データを下階層として、検査設定データがどのワークスペースに存在するのかが識別可能なように表示されている。
【００３４】
コントローラ一覧画面４１ａの見出し欄に配置されている更新ボタン（アイコン）を操作すれば、画像処理コントローラ１１から新たに検査設定データが取得され、ＰＣ２上に保持されている検査設定データやシステム構成が最新のものに更新される。また、登録ボタンを操作すれば、ＰＣ２上で作成された検査設定データが画像処理コントローラ１１に転送される。
【００３５】
ワークスペース一覧画面４１ｂの見出し欄に配置されている更新ボタン（アイコン）を操作すれば、画像処理コントローラ１１から取得された検査設定データによって、編集対象とする検査設定データが更新される。また、追加ボタンを操作すれば、新たな作業領域が設けられ、検査設定データを示すアイコンが追加される。
【００３６】
パーツリストウィンドウ４２は、検査設定データを作成する際に選択可能な処理ユニットをユニット一覧として表示するためのウィンドウ画面である。処理ユニットは、パラメータが変更可能な処理を示すシンボルであり、画像処理を示す画像処理ユニット、撮像処理を示す撮像ユニット、フロー制御処理を示す制御ユニット、及び、出力処理を示す出力ユニットなどが処理ユニットとして設けられている。この様な処理ユニットを後述するフロービューウィンドウ内のフローチャート上に配置することによって、所望のフローシーケンスからなる制御プログラムが作成される。
【００３７】
パーツリストウィンドウ４２内には、複数の処理ユニットが表示される。この例では、処理の種類によって処理ユニットが８つのカテゴリーに区分され、各カテゴリーを示すアイコンが表示されている。具体的には、「画像入力」、「計測」、「制御」、「演算」、「タイミング」、「表示」、「出力」及び「コマンド出力」のカテゴリーに区分されている。
【００３８】
「画像入力」は、撮像に関する処理ユニットが属するカテゴリーであり、カメラ画像を取り込む撮像ユニットが属している。撮像ユニットは、撮像トリガ信号に基づいて、画像処理用のカメラ画像を取得する処理ユニットである。撮像トリガ信号には、ＰＬＣなどの外部機器から撮像トリガ入力端子を介して入力される入力信号、及び、画像処理コントローラ１１内で生成される内部トリガ信号を用いることができる。この様な撮像ユニットには、シャッタースピード、カメラ感度、フラッシュ遅延時間、フラッシュオン時間、撮像対象カメラ、フラッシュ端子及びトリガ端子を指定するためのパラメータがプロパティとして関連付けられている。
【００３９】
「計測」は、計測に関する処理ユニットが属するカテゴリーであり、カメラ画像から計測結果を抽出し、この計測結果に基づいて検査対象物の良否を判定する計測ユニットが属している。この様な計測ユニットには、パターンサーチユニット、エッジ位置検出ユニット、ブロブ検出ユニット、色検査ユニットなどの画像処理ユニットがある。
【００４０】
パターンサーチは、カメラ画像上のサーチ領域内を走査して予め登録されたパターン画像と一致する位置を検出する処理である。エッジ位置検出は、カメラ画像上の計測領域について、検出方向に垂直な方向の平均濃度を求め、検出方向の濃度変化からエッジの位置を検出する処理である。
【００４１】
ブロブ検出は、カメラ画像を２値化し、同一濃度を有する画素の塊をブロブとして抽出して、計測領域内に存在するブロブの数、面積、重心位置を検出する処理である。色検査は、検査領域内の色を測定する処理であり、色に対応する数値が計測結果として抽出される。
【００４２】
この様な計測に関する画像処理では、検査対象物の形状、サイズ、カメラ画像内における位置などが検知され、その計測値が画像処理結果として出力される。また、計測値と、ユーザが予め指定したパラメータとを比較し、この比較結果に基づいて検査対象物の良否、例えば、不具合や異常の有無を判定し、その判定結果が画像処理結果として出力される。また、計測領域や、検知された検査対象物の位置などをグラフィカルに示すシンボルを埋め込んだカメラ画像が生成され、画像処理結果として出力される。
【００４３】
「制御」は、制御に関する処理ユニットが属するカテゴリーであり、繰返しユニット、バイパスユニット、エンドシンボルなどの制御ユニットが属している。繰返しユニットは、実行フローを繰り返す際の始点を示す繰返し開始ユニットと、終点を示す繰返し終了ユニットとからなる処理ユニットであり、所定の条件が満たされるまで開始ユニット及び終了ユニット間の実行フローを繰り返させる処理を示す。
【００４４】
バイパスユニットは、実行フローを２以上の枝フローに分岐させる分岐ユニットと、この分岐ユニットによって分岐された枝フローを合流させる合流ユニットとからなる処理ユニットであり、所定の条件で実行フローを分岐させる処理を示す。エンドシンボルは、１回のフローシーケンスを終了させるための表示オブジェクトである。
【００４５】
「演算」は、演算に関する処理ユニットが属するカテゴリーであり、数値演算ユニット及び位置補正ユニットの画像処理ユニットが属している。「タイミング」は、フロー遷移の停止動作に関する処理ユニットが属するカテゴリーであり、ウェイトユニット、イベント待ちユニットなどの制御ユニットが属している。ウェイトユニットは、所定時間だけフロー遷移を停止させる処理を示す。イベント待ちユニットは、端子入力や変数値が所定の状態となるまでフロー遷移を停止させる処理を示す。
【００４６】
「表示」は、表示に関する処理ユニットが属するカテゴリーであり、グラフィック表示ユニットなどの画像処理ユニットが属している。グラフィック表示ユニットは、他の処理ユニットを参照し、当該処理ユニットの処理結果をグラフィカルに表示する処理を示す。
【００４７】
「出力」は、出力に関する処理ユニットが属するカテゴリーであり、端子出力ユニット、結果出力ユニット、画像出力ユニットなどの出力ユニットが属している。端子出力ユニットには、参照先ユニット、判定結果及び判定結果の出力先端子を指定するためのパラメータがプロパティとして関連付けられている。結果出力ユニットには、参照先ユニット、処理結果を示す数値データ、数値データを出力する際のデータ形式（テキスト形式又はバイナリ形式）、及び、数値データの出力先を指定するためのパラメータがプロパティとして関連付けられている。画像出力ユニットには、参照先ユニット、カメラ画像、画像データを出力する際のデータ形式、及び、画像データの出力先を指定するためのパラメータがプロパティとして関連付けられている。
【００４８】
「コマンド出力」は、コマンド出力に関する処理ユニットが属するカテゴリーであり、コマンド発行ユニット、表示パターン切替ユニット及びダイアログ表示ユニットの出力ユニットが属している。コマンド発行ユニットは、画像登録、検査設定の切替え、リセットなどのコマンドを発行する処理を示す。
【００４９】
ユニットプロパティウィンドウ４３は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットのプロパティを表示するためのウィンドウ画面である。
【００５０】
ビジョンビューウィンドウ４４は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットに関連付けられているカメラ画像を表示するためのウィンドウ画面である。
【００５１】
リザルトビューウィンドウ４５は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットのパラメータと、シミュレーション結果とを表示するためのウィンドウ画面である。
【００５２】
このエディタ画面４０では、システムビューウィンドウ４１の下部に配置されているフロービューボタン４１ｃを操作すれば、上述したシステムビューウィンドウ４１に代えて、フロービューウィンドウを表示させることができる。フロービューウィンドウは、画像処理コントローラ１１に実行させる処理手順をフローチャートとして表示するウィンドウ画面であり、ワークスペース一覧画面４１ｂ上で選択された検査設定データが表示される。
【００５３】
また、リザルトビューウィンドウ４５の下部に配置されている抽出一覧ボタン４５ａを操作すれば、リザルトビューウィンドウ４５に代えて、抽出一覧ウィンドウを表示させることができる。抽出一覧ウィンドウは、リザルトビューウィンドウ４５上で選択されたパラメータ及び処理結果を抽出して処理ユニットごとの抽出結果を一覧表示するためのウィンドウ画面である。
【００５４】
<フロービューウィンドウ>
図４は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６が表示されたエディタ画面４０が示されている。フロービューウィンドウ４６は、検査設定データの制御プログラムを新たに作成し、或いは、画像処理コントローラ１１から取得した制御プログラムを編集するために、処理手順を示すフローチャート４７を表示するウィンドウ画面である。
【００５５】
フロービューウィンドウ４６には、複数の処理ユニット４８を配列することによって構成されたフローチャート４７が表示されている。フローチャート４７には、スタートシンボル「Ｓ」において開始し、エンドシンボル「Ｅ」において終了する実行フロー上で時系列に実行される処理ユニットが表されている。ユーザは、この様な実行フロー上に処理ユニット４８を配置することによって所望の制御プログラムを構成することができる。
【００５６】
つまり、画像処理コントローラ１１に行わせる一連の画像処理は、処理ユニットとしてブロック化されており、ユーザは、処理ユニットをフロービューウィンドウ４６内の実行フロー上に配置するだけで、当該処理ユニットが直前の処理ユニットの処理結果に基づいて所定の処理を行うフローシーケンスを作成することができる。
【００５７】
フロービューウィンドウ４６の下部に配置されているシステムビューボタン４６ａを操作すれば、このフロービューウィンドウ４６に代えて、システムビューウィンドウ４１を表示させることができる。
【００５８】
フロービューウィンドウ４６上で選択されている処理ユニットは、フォーカス表示され、ユニットプロパティウィンドウ４３内にそのプロパティが表示される。ユニットプロパティウィンドウ４３内には、編集ボタン４３ａが配置され、編集ボタン４３ａを操作すれば、処理ユニットのプロパティを編集するためのプロパティ編集画面が表示される。プロパティ編集画面は、ユーザ操作に基づいて処理ユニットのパラメータを指定し、或いは、既に指定されているパラメータを変更するための編集画面である。
【００５９】
<フローチャート>
図５は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６内のフローチャート４７の一例が示されている。このフローチャート４７は、スタートシンボル６１ａで開始し、エンドシンボル６１ｂで終了する実行フロー上に複数の処理ユニットが配置されている。
【００６０】
フロービューウィンドウ４６上でフローチャート４７を作成編集する場合、パーツリストウィンドウ４２を用いて作業が行われる。例えば、フローチャート４７内に処理ユニットを挿入する際には、パーツリストウィンドウ４２上で所望の処理ユニットを選択し、マウスポインタなどで実行フロー上の位置を指定することによって挿入される。
【００６１】
この例では、フローチャート４７が、分岐ユニット６２ａ、撮像ユニット、色検査ユニット、数値演算ユニット、合流ユニット６２ｂ、ブロブ検出ユニット、繰返し開始ユニット６５ａ、エッジ位置検出ユニット、パターンサーチユニット、繰返し終了ユニット６５ｂ及びグラフィック表示ユニットをこの順序で実行フロー上に配置することによって構成されている。
【００６２】
分岐ユニット６２ａ及び合流ユニット６２ｂは、バイパスユニットを構成する制御ユニットであり、実行フロー上にバイパスユニットを挿入する際には、常に分岐ユニット６２ａ及び合流ユニット６２ｂを対にして挿入される。分岐ユニット６２ａでは、直前の処理ユニットの計測結果や判定結果に基づいて、分岐後の枝フローを択一的に選択する処理が行われる。分岐後の枝フローのいずれを選択するかという条件は、分岐ユニット６２ａのパラメータとして、ユーザが指定する。
【００６３】
この例では、スタートシンボル６１ａからの実行フローが分岐ユニット６２ａにより２つの枝フロー６３に分岐され、この分岐ユニット６２ａで分岐された枝フローが合流ユニット６２ｂにおいて合流されている。その際、一方の枝フロー６３は、撮像ユニット、色検査ユニット及び数値演算ユニットを経て合流ユニット６２ｂに達しているのに対して、他方の枝フロー６３は、撮像ユニットを経て合流ユニット６２ｂに達するバイパス経路（迂回路）となっている。
【００６４】
繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂは、繰返しユニットを構成する制御ユニットであり、実行フロー上に繰返しユニットを挿入する際にも、繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂを対にして挿入される。
【００６５】
この例では、繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂ間にエッジ位置検出ユニット及びパターンサーチユニットが配置されており、実行時にはエッジ位置検出ユニット及びパターンサーチユニットの処理が繰り返される。
【００６６】
フローチャート４７内の分岐ユニット６２ａ及び繰返し開始ユニット６５ａには、折畳みアイコン６４ａが配置されている。この折畳みアイコン６４ａは、制御ユニット間の実行フローを省略してフローチャート４７を表示させるためのアイコンであり、処理ユニットに隣接させて表示される。
【００６７】
また、フローチャート４７上で選択されている処理ユニットは、フォーカス表示され、ユニットプロパティウィンドウ４３内に当該処理ユニットのプロパティを表示させ、或いは、編集対象として当該処理ユニットのプロパティを変更することができる。
【００６８】
本実施の形態では、この様に、フローチャート４７内の実行フロー上に分岐ユニット６２ａが配置され、さらに、異なる２つの枝フロー６３上にそれぞれ撮像ユニットが配置されている場合に、これらの撮像ユニットについて、枝フローごとにカメラ画像の撮像条件を編集することができる。
【００６９】
<撮像ユニットのプロパティ編集画面>
図６は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、撮像ユニットのプロパティを編集するためのプロパティ編集画面７０の一例が示されている。プロパティ編集画面７０は、カメラ画像の撮像に関するパラメータの入力画面であり、ユニットプロパティウィンドウ４３内の編集ボタン４３ａを操作することによって、エディタ画面４０上に表示される。
【００７０】
プロパティ編集画面７０では、撮像に関する様々なパラメータを選択し、或いは、指定することができる。このプロパティ編集画面７０には、編集可能なプロパティとして、撮像設定７１、カメラ設定７２、トリガ設定７３、フラッシュ設定７４などの項目が設けられている。
【００７１】
ここでは、撮像設定７１の項目が選択されており、カメラ選択欄８１、シャッタースピードの入力欄８２、カメラ感度の入力欄８３及びゲイン調整選択欄が配置されている。カメラ選択欄８１は、撮像対象とするカメラ１２を選択するための入力欄であり、「カメラ１」から「カメラ４」までのいずれかを指定することができる。
【００７２】
シャッタースピードの入力欄８２は、カメラ１２のシャッタースピードを入力するための入力欄であり、直接に数値を指定し、或いは、複数の規定値から選択することができる。カメラ感度の入力欄８３は、カメラ１２の感度レベルを入力するための入力欄である。ゲイン調整選択欄は、カメラ１２から取得した画像データについて、ゲイン調整を行うか否かを選択するための入力欄である。
【００７３】
トリガ設定７３では、画像処理用のカメラ画像を取得する際の取得条件や撮像トリガに関する設定を行うことができる。取得条件としては、トリガ同期モード又はトリガ非同期モードのいずれかを選択することができる。トリガ同期モードは、撮像トリガ信号に同期して撮影させたカメラ画像を画像処理用として取り込む撮影モードである。一方、トリガ非同期モードは、繰返し撮影させて得られるカメラ画像から撮像トリガ信号に基づいて画像処理用のカメラ画像を抽出する撮影モードである。
【００７４】
また、撮像トリガに関する設定では、カメラ画像を取得する際に使用する撮像トリガを選択することができる。例えば、「カメラ１」から「カメラ４」のカメラごとに撮像トリガの入力端子、通信インターフェース、或いは、内部トリガを選択することができる。
【００７５】
この様に、フローチャート４７上で選択された撮像ユニットごとに、カメラ画像の撮像に関する設定を行うことができる。
【００７６】
<ワークスペース設定画面>
図７は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、オフラインシミュレーション時のエディタ画面４０が示されている。このエディタ画面４０は、登録画像として予め保持されているカメラ画像を使用して画像処理をシミュレーションするオフラインシミュレーション時の編集画面である。
【００７７】
このエディタ画面４０には、シミュレーションモードの選択欄９１及びシミュレーション実行ボタン９２が配置され、ワークスペース一覧画面４１ｂ上で選択されたワークスペースの設定画面９０が表示されている。
【００７８】
シミュレーションモードの選択欄９１は、シミュレーションモードを選択するための入力欄であり、オフラインシミュレーションモード又はオンラインシミュレーションモードのいずれかを選択することができる。
【００７９】
オンラインシミュレーションとは、制御プログラムの実行時に画像処理コントローラ１１を介してカメラ１２からカメラ画像を取得し、取得したカメラ画像を使用して画像処理をシミュレーションすることである。この様なシミュレーションの対象となる制御プログラムは、ワークスペース一覧画面４１ｂ上で編集対象として選択されたワークスペース（検査設定データ）である。
【００８０】
シミュレーション実行ボタン９２は、画像処理のシミュレーションを実行させるための操作用アイコンである。このシミュレーション実行ボタン９２を操作することにより、ワークスペース一覧画面４１ｂ上で選択された検査設定データ（制御プログラム）を実行させることができる。
【００８１】
ここでは、シミュレーション実行ボタン９２の操作によって、１計測周期分だけ制御プログラムが実行されるものとする。具体的には、スタートシンボルで開始し、エンドシンボルで終了するフローシーケンスを計測周期として、この様な１計測周期分のフローシーケンスが１回だけ実行され、実行後にシミュレーションが自動停止する。この様な画像処理のシミュレーションによって得られるシミュレーション結果（計測値や判定値）は、例えば、リザルトビューウィンドウ４５内に表示される。
【００８２】
設定画面９０は、ワークスペース一覧画面４１ｂ上で選択されたワークスペース（検査設定データ）のプロパティを編集するための入力画面である。この設定画面９０には、ワークスペース名の入力欄、接続先の選択欄、仮想ドライブの設定欄、シミュレーション画像の格納先の入力欄などが設けられている。このシミュレーション画像の格納先の入力欄は、オフラインシミュレーション時に使用する登録画像を指定し、或いは、既に指定されている登録画像を変更するための入力欄である。
【００８３】
<撮像ファイル設定画面>
図８は、図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、オンラインシミュレーション時のエディタ画面４０が示されている。このエディタ画面４０は、オンラインシミュレーション時の編集画面であり、シミュレーションモードの選択欄９１、シミュレーション実行ボタン９２〜９４及び録画ボタン９５が配置され、撮像ファイル設定画面９６が表示されている。
【００８４】
シミュレーション実行ボタン９３は、画像処理のシミュレーションを実行させるための操作用アイコンであり、このシミュレーション実行ボタン９３を操作することにより、スタートシンボルからエンドシンボルまでのフローシーケンスを１計測周期分だけ実行させることができる。
【００８５】
シミュレーション実行ボタン９４は、画像処理のシミュレーションを連続実行させるための操作用アイコンであり、このシミュレーション実行ボタン９４を操作することにより、制御プログラムを繰返し実行させることができる。
【００８６】
録画ボタン９５は、オンラインシミュレーション時にカメラ１２から取得されたカメラ画像を撮像ファイルとして保持させるための操作用アイコンである。この録画ボタン９５を操作することにより、録画モードとなり、録画モード中にシミュレーション実行ボタン９２〜９４を操作すれば、制御プログラムの実行時に取得されたカメラ画像を撮像ファイルとして保持させることができる。
【００８７】
カメラ画像の取得は、エディタのリモートキャプチャ機能を利用して行われる。このリモートキャプチャ機能は、画像処理コントローラ１１を遠隔制御し、画像処理コントローラ１１を介してカメラ１２からカメラ画像を取得する機能である。
【００８８】
具体的には、撮像条件などのパラメータと共に撮像要求（コマンド）がＰＣ２から画像処理コントローラ１１へ送信される。そして、撮像要求を受信した画像処理コントローラ１１では、運転を停止し、リモートキャプチャモードとなる。このリモートキャプチャモードでは、操作ユニット１３ｂによる操作が制限され、ＰＣ２からの撮像要求に基づいて取得したカメラ画像をＰＣ２へ転送する動作が行われる。
【００８９】
撮像ファイル設定画面９６は、撮像ファイルのプロパティを編集するためのウィンドウ画面であり、オンラインシミュレーションによって計測周期ごとに得られたカメラ画像が撮像ユニットに対応付けて表示されている。
【００９０】
この例では、カメラ画像の取得対象として「カメラ１」が選択された撮像ユニットによって撮像ファイルに取り込まれた計測周期ごとのカメラ画像Ａ１〜Ａ３が表示欄９７に時系列に表示されている。カメラ画像Ａ１は、計測１回目に取得されたカメラ画像であり、カメラ画像Ａ２は、計測２回目に取得されたカメラ画像であり、カメラ画像Ａ３は、計測３回目に取得されたカメラ画像である。これらのカメラ画像Ａ１〜Ａ３は、撮像ユニットを実行するタイミングで取得される。
【００９１】
撮像ファイルとして保持されているカメラ画像は、オフラインシミュレーション用の登録画像として使用することができる。
【００９２】
<エディタの機能構成>
図９は、図２の検査支援システム１００におけるＰＣ２の構成例を示したブロック図であり、画像処理コントローラ１１の制御プログラムを作成するエディタの機能構成の一例が示されている。このＰＣ２は、メモリ２１、処理ユニット記憶部２３、フローチャート表示部２４、プログラム生成部２５、通信部２６、操作入力部２７、ユニットプロパティ編集部２８、撮像条件決定部２９、登録画像記憶部３０、オフラインシミュレーション部３１、オンラインシミュレーション部３２、シミュレーション結果記憶部３３、カメラ画像抽出部３４及びシミュレーション結果表示部３５により構成される。
【００９３】
処理ユニット記憶部２３には、撮像ユニット、計測ユニットなどの処理ユニットが保持されている。撮像ユニットは、撮像トリガ信号に基づいて、カメラ１２からカメラ画像を取得する処理を示す処理ユニットである。計測ユニットは、撮像ユニットによって取得されたカメラ画像から計測結果を抽出する処理を示す処理ユニットである。
【００９４】
フローチャート表示部２４は、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に処理ユニットを配置することによって生成されたフローチャート４７をエディタ画面４０のフロービューウィンドウ４６上に表示する動作を行っている。
【００９５】
プログラム生成部２５は、ユーザがフロービューウィンドウ４６上で作成したフローチャート４７を実行形式に変換することにより、画像処理コントローラ１１の制御プログラムを生成する動作を行っている。具体的には、撮像ユニットや計測ユニットを実行フロー上に配置することによって、撮像トリガ入力端子からの入力信号に基づいてカメラ１２からカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムが生成される。
【００９６】
メモリ２１には、プログラム生成部２５により生成された制御プログラムが検査設定データ２２として保持される。通信部２６は、メモリ２１内の検査設定データ２２を画像処理コントローラ１１へ転送する動作を行っている。
【００９７】
ユニットプロパティ編集部２８は、フローチャート４７上で選択された処理ユニットのプロパティを編集する動作を行っている。具体的には、ユーザが編集対象として選択した処理ユニットについて、プロパティ編集画面を表示し、当該処理ユニットのパラメータをユーザ操作に基づいて指定し、或いは、既に指定されているパラメータを変更する動作が行われる。
【００９８】
撮像条件決定部２９は、フローチャート４７上で選択された撮像ユニットのパラメータとして、複数のカメラ１２の中からカメラ画像の取得対象とするカメラを決定する動作を行っている。
【００９９】
フローチャート４７上に分岐ユニットが配置され、さらに、分岐ユニットによって分岐された複数の枝フロー上にそれぞれ撮像ユニットが配置されている場合には、これらの撮像ユニットごとにカメラ画像の取得対象を選択することができる。
【０１００】
登録画像記憶部３０には、オフラインシミュレーション用の登録画像が保持されている。オフラインシミュレーション部３１は、メモリ２１に検査設定データ２２として保持されている制御プログラムを実行するシミュレーション手段であり、登録画像記憶部３０に登録画像として予め保持されているカメラ画像から計測結果を抽出する動作を行っている。
【０１０１】
オンラインシミュレーション部３２は、メモリ２１に検査設定データ２２として保持されている制御プログラムを実行するシミュレーション手段であり、制御プログラムの実行時にカメラ画像を取得して計測結果を抽出する動作を行っている。具体的には、制御プログラムの実行時に、撮像ユニットを実行するタイミングで通信部２６を介して画像処理コントローラ１１へ撮像要求を送信し、この画像処理コントローラ１１を介してカメラ１２からカメラ画像が取得される。そして、取得したカメラ画像から計測結果を抽出する動作が行われる。
【０１０２】
シミュレーション結果記憶部３３は、制御プログラムを実行することによって得られたシミュレーション結果（計測値や判定値）と共に、オンラインシミュレーション部３２によって取得されたカメラ画像３３ａを保持するカメラ画像の記憶手段となっている。
【０１０３】
このシミュレーション結果記憶部３３には、制御プログラムを繰返し実行させた際に、オンラインシミュレーション部３２によって取得された一連のカメラ画像３３ａが保持されている。各カメラ画像３３ａは、撮像ユニットに関連付けて保持されている。例えば、カメラ画像３３ａに対応付けて、処理ユニットの識別情報３３ｂが保持される。
【０１０４】
シミュレーション結果表示部３５は、シミュレーション結果をエディタ画面４０上に表示する動作を行っている。例えば、フロービューウィンドウ４６内のフローチャート４７上で選択されている処理ユニットについて、シミュレーション結果がリザルトビューウィンドウ４５内に表示される。
【０１０５】
カメラ画像抽出部３４は、シミュレーション結果記憶部３３に保持されている一連のカメラ画像３３ａの中から登録画像として保持させるカメラ画像を抽出する動作を行っている。この様な構成によれば、オンラインシミュレーション時に得られた一連のカメラ画像３３ａをオフラインシミュレーション用の登録画像として使用することができるので、撮像条件や計測条件などのパラメータの高精度な設定をすることができる。すなわち、オンラインシミュレーションによって得られた計測値や判定値を参考にしてパラメータを調整する。次に、オンラインシミュレーション時に得られた撮像ファイル上のカメラ画像を使ってオフラインシミュレーションを実行するというような運用を行うことにより、パラメータを精度良く決定することができる。
【０１０６】
このカメラ画像抽出部３４では、フローチャート４７上に複数の撮像ユニットが配置された制御プログラムがオフラインシミュレーション部３１によって実行される場合に、当該フローチャート４７上の各撮像ユニットについて、シミュレーション結果記憶部３３に保持されているカメラ画像３３ａの中から登録画像として保持させるカメラ画像を自動抽出する動作が行われる。この様な構成によれば、オンラインシミュレーション時に得られたカメラ画像３３ａがオフラインシミュレーション用の登録画像として自動抽出されるので、オフラインシミュレーション用に登録画像を指定する際の操作性を向上させることができる。すなわち、撮像ユニットごとにカメラ画像を指定する手間を省くことができる。
【０１０７】
本実施の形態によれば、ＰＣ２上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラ１１へ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラ１１を介してカメラ１２からカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することもできる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態による検査支援システムの一構成例を示した斜視図である。
【図２】図１の検査支援システムのシステム構成の一例を示したブロック図である。
【図３】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、検査設定データ２２を作成するためのエディタ画面４０が示されている。
【図４】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６が表示されたエディタ画面４０が示されている。
【図５】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６内のフローチャート４７の一例が示されている。
【図６】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、撮像ユニットのプロパティ編集画面７０の一例が示されている。
【図７】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、オフラインシミュレーション時のエディタ画面４０が示されている。
【図８】図２の検査支援システム１００におけるＰＣ２の動作の一例を示した図であり、オンラインシミュレーション時のエディタ画面４０が示されている。
【図９】図２の検査支援システム１００におけるＰＣ２の構成例を示したブロック図であり、エディタの機能構成の一例が示されている。
【符号の説明】
【０１０９】
１  画像処理装置
２  ＰＣ
３  通信ネットワーク
１１  画像処理コントローラ
１２  カメラ
１３ａ  ディスプレイ
１３ｂ  操作ユニット
１４，２１  メモリ
１５，２２  検査設定データ
２３  処理ユニット記憶部
２４  フローチャート表示部
２５  プログラム生成部
２６  通信部
２７  操作入力部
２８  ユニットプロパティ編集部
２９  撮像条件決定部
３０  登録画像記憶部
３１  オフラインシミュレーション部
３２  オンラインシミュレーション部
３３  シミュレーション結果記憶部
３４  カメラ画像抽出部
３５  シミュレーション結果表示部
４０  エディタ画面
４１  システムビューウィンドウ
４６  フロービューウィンドウ
４７  フローチャート
４８  処理ユニット
１００  検査支援システム
【図１】
0004944739.tif 000002
【図２】
0004944739.tif 000003
【図９】
0004944739.tif 000004
【図３】
0004944739.tif 000005
【図４】
0004944739.tif 000006
【図５】
0004944739.tif 000007
【図６】
0004944739.tif 000008
【図７】
0004944739.tif 000009
【図８】
0004944739.tif 000010