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