(57)【要約】      （修正有）【課題】複数のカメラの画像データを並列に処理する場合の画像処理効率を向上させる。【解決手段】複数のカメラ６で非同期に撮像して得られる画像データを処理する画像処理装置１４において、演算処理部１８と、当該演算処理部と並列処理可能な複数系統の画像入力部１５と、複数の画像データを格納する画像メモリ７とを備え、演算処理部は、撮像とその撮像画像の認識処理とを実行させる複数の要求に応じてカメラによる撮像要求を行う撮像要求部と、複数の要求に対して処理タスクを割り当てるタスク割り当て手段と、複数の撮像完了時に処理タスクの優先順位を設定又は更新する第一の設定手段とを備え、処理タスクの認識終了毎に優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行する。【選択図】図３
2013142949.tif 000002
【特許請求の範囲】
【請求項１】
演算処理部と、
当該演算処理部と並列処理可能な複数系統の画像入力部と、
前記複数の画像データを格納する画像メモリとを備え、
前記演算処理部は、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラによる撮像要求を行う撮像要求部と、
前記複数の要求に対して処理タスクを割り当てるタスク割り当て手段とを有し、
複数のカメラに接続され、それぞれのカメラ毎に非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、
前記複数の要求に基づくそれぞれの撮像完了時に前記処理タスクの優先順位を設定又は更新する第一の設定手段とを備え、
前記処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行することを特徴とする画像処理装置。
【請求項２】
前記第一の設定手段は、前記複数の要求に対して処理タスクを割り当てる際の優先順位の初期設定を最も高い優先順位に設定すると共に、当該最も高い優先順位に従って撮像開始要求を出力した後に、処理種別と撮像方法の組み合わせに応じて定められる優先順位に再設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間又は撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する計時手段と、
前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定する第二の設定手段を設けたことを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
連続的に撮像を行う複数の撮像対象物の一部又は全部について、認識処理の優先度を定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先順位補正手段を備えることを特徴とする請求項１から３のいずれか一項に記載の画像処理装置。
【請求項５】
演算処理部と、
当該演算処理部と並列処理可能な複数系統の画像入力部と、
前記複数の画像データを格納する画像メモリとを備え、
複数のカメラに接続され、それぞれのカメラ毎に非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラによる撮像要求を行う撮像要求工程と、
前記複数の要求に対して処理タスクを割り当てるタスク割り当て工程と、
前記複数の要求に基づく毎回の撮像完了時に前記処理タスクの優先順位を設定又は更新する工程とを備え、
前記処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行することを特徴とする画像処理方法。
【請求項６】
前記複数の要求に対して処理タスクを割り当てる際の優先順位の初期設定を最も高い優先順位に設定する工程と、
当該最も高い優先順位に従って撮像開始要求を出力した後に、処理種別と撮像方法の組み合わせに応じて定められる優先順位に再設定する工程とを備えることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間又は撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する工程と、
前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定する工程とを備えることを特徴とする請求項５又は６記載の画像処理方法。
【請求項８】
連続的に撮像を行う複数の撮像対象物の一部又は全部について、認識処理の優先度を定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える工程を備えることを特徴とする請求項５から７のいずれか一項に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像撮像中に既に入力済みの画像データを並列に処理する画像処理装置及び方法に関するものである。
【背景技術】
【０００２】
従来技術として、例えば、部品実装装置に適用されている画像処理装置では、複数の部品について連続して撮像が行われ、撮像により得られた画像データに対して、優先順位に従い、並列して認識処理を実行する部品認識方法が提案されている（例えば、特許文献１参照）。
この画像処理装置では、撮像終了をトリガにして、あらかじめ設定された優先順位に従って、認識処理を行う画像データを選定し直して、優先順位の高い画像データへの認識処理切り替え行っている。このときの優先順位は、回路基板への電子部品の装着順もしくは被検査物における大きさの順位としている。
【０００３】
図１６に上記画像処理装置が行う処理のタイムチャートを示す。
まず、従来の画像処理装置では、撮像の要求を受けると、画像データを所定のメモリに記憶するために、時刻ｔ１から所定のメモリに対するバス接続処理を実行する。
その後、時刻ｔ２から、第１画像データの撮像を開始する。そして、時刻ｔ３にて、画像撮像を終了し、メモリに併設されたコントローラから装置の制御及び画像処理を行うためのＣＰＵに対して割込信号を送出する。
これにより、ＣＰＵは、第２画像データの撮像のための設定や画像データの記憶領域の確保等を割込処理にて実行する。そして、割込処理の後に、ＣＰＵは、既に記憶された第１画像データに対し、第１画像認識処理を実行する。
【０００４】
一方、第１画像認識処理と並列して、カメラは第２画像データの撮像を実行する。時刻ｔ４から第２画像データの撮像を開始し、時刻ｔ５にて画像撮像終了し、ＣＰＵに対してメモリのコントローラから割込信号を送出する。
これにより、ＣＰＵは、処理中であった第１画像認識処理を一時中断する。さらに、ＣＰＵは第３画像データの撮像のための設定を割込処理にて実行する。そして、既に記憶された第１画像データ及び第２画像データについて、予め設定されている画像認識処理の優先順位を判定し、優先順位の高い方の画像認識処理を実行する。画像認識処理の優先順位が、例えば、第３画像データ、第２画像データ、第１画像データの順であるとすると、ＣＰＵは、画像撮像動作が終了して未処理状態にある第１画像データ及び第２画像データに対して、優先順位の高い第２画像データの方を第１画像データに優先して画像認識処理を実行する。
これにより、第１画像データ に対する画像認識処理は、当該第１画像データの画像認識処理よりも優先順位の高い画像データの画像認識処理が全て終了するまで一時中断することとなる。
【０００５】
上記割込処理の終了後、カメラにより第３画像データの撮像が実行される。時刻ｔ６から第３画像データの撮像を開始し、時刻ｔ７にて、画像撮像を終了し、メモリのコントローラからＣＰＵに対して、割込信号を送出する。ＣＰＵは、第２画像認識処理を一時中断し、上述したように優先順位を判定する。
前述したように、第３画像データの優先順位が最も高いので、当該第３画像データに対する画像認識処理がまず実行され、これが終わると時刻ｔ８において、その次に第２画像データにおける一時中断後の残りのデータに対して画像認識処理が実行され、さらに、これが終わると時刻ｔ９において、第１画像データにおける一時中断後の残りのデータに対して画像認識処理が実行され、時刻ｔ１０にて終了する。
このようにして全ての画像データに対して画像認識処理が終了したところで一連の画像撮像及び画像認識処理の作業は終了することとなる。
尚、このような、画像認識処理を実行する画像データの変更機能は、ＣＰＵのオペレーションシステムが、マルチタスク機能をサポートしていれば簡単に実現することが可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第３７６２５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の画像認識装置における画像処理の方法では、複数のカメラを搭載し、これらのカメラが個々に非同期で連続的に撮像を行い、それらの撮像画像データについて画像処理を行うような場合には不適であった。
即ち、カメラを複数搭載する場合、複数系統からの非同期での処理要求の組み合わせは増大し、あらかじめ適切な優先順位を設定しておくことは困難となる。例えば、処理要求の重なり具合によって、ある時間での処理の多重度が上がり負荷が重くなる、また、処理時間がかかる処理が混ざるなど、ＣＰＵの負荷状態が刻々と変動する。このような環境下では、あらかじめきめた優先順位に従って処理を進めた場合、低優先順位の処理まで順番が回ってこなくなり、想定されている以上の遅れが発生し、タイムアウトによるエラーが発生する場合があった。
【０００８】
さらに、画像撮像終了毎に各認識処理を一時中断して、優先順位を評価し、優先して実行する認識処理を決定するディスパッチ処理の負荷であるオーバーヘッドも作業効率を低下させる一因となる。特に、カメラを複数搭載する場合、ディスパッチ処理が増加してオーバーヘッドによる負荷が増大する。
また、近年のキャッシュ制御により高速化をはかっているＣＰＵにとっては、タスクの切り替えは最小限に止めたほうがキャッシュのヒット率が保持されるために速度的に有利となる。
このように、従来方法では、優先順位の設定によっては、無駄なディスパッチ処理が発生する可能性があり、優先順位に従って想定された順番で処理を進めることはできるが、トータル的な作業効率は低下を生じるものとなっていた。
【課題を解決するための手段】
【０００９】
請求項１記載の発明は、演算処理部と、当該演算処理部と並列処理可能な複数系統の画像入力部と、前記複数の画像データを格納する画像メモリとを備え、前記演算処理部は、撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラによる撮像要求を行う撮像要求部と、前記複数の要求に対して処理タスクを割り当てるタスク割り当て手段とを有し、複数のカメラに接続され、それぞれのカメラ毎に非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、前記複数の要求に基づくそれぞれの撮像完了時に前記処理タスクの優先順位を設定又は更新する第一の設定手段とを備え、前記処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行することを特徴とする。
【００１０】
請求項２記載の発明は、請求項１記載の発明と同様の構成を備えると共に、前記第一の設定手段は、前記複数の要求に対して処理タスクを割り当てる際の優先順位の初期設定を最も高い優先順位に設定すると共に、当該最も高い優先順位に従って撮像開始要求を出力した後に、処理種別と撮像方法の組み合わせに応じて定められる優先順位に再設定することを特徴とする。
【００１１】
請求項３記載の発明は、請求項１又は２記載の発明と同様の構成を備えると共に、前記撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間又は撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する計時手段と、前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定する第二の設定手段を設けたことを特徴とする。
【００１２】
請求項４記載の発明は、請求項１から３のいずれか一項に記載の発明と同様の構成を備えると共に、連続的に撮像を行う複数の撮像対象物の一部又は全部について、認識処理の優先度を定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先順位補正手段を備えることを特徴とする。
【００１３】
請求項５記載の発明は、演算処理部と、当該演算処理部と並列処理可能な複数系統の画像入力部と、前記複数の画像データを格納する画像メモリとを備え、複数のカメラに接続され、それぞれのカメラ毎に非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラによる撮像要求を行う撮像要求工程と、前記複数の要求に対して処理タスクを割り当てるタスク割り当て工程と、前記複数の要求に基づく毎回の撮像完了時に前記処理タスクの優先順位を設定又は更新する工程とを備え、前記処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行することを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の発明と同様の構成を備えると共に、前記複数の要求に対して処理タスクを割り当てる際の優先順位の初期設定を最も高い優先順位に設定する工程と、当該最も高い優先順位に従って撮像開始要求を出力した後に、処理種別と撮像方法の組み合わせに応じて定められる優先順位に再設定する工程とを備えることを特徴とする。
【００１５】
請求項７記載の発明は、請求項６記載の発明と同様の構成を備えると共に、前記撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間又は撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する工程と、前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定する工程とを備えることを特徴とする。
【００１６】
請求項８記載の発明は、請求項５から７のいずれか一項に記載の発明と同様の構成を備えると共に、連続的に撮像を行う複数の撮像対象物の一部又は全部について、認識処理の優先度を定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える工程を備えることを特徴とする。
【発明の効果】
【００１７】
請求項１又は５では、複数の要求に基づいて撮像とその撮像画像の認識処理とを行う際に、撮像終了時に認識処理タスクの優先順位を更新し、処理タスクの認識終了毎に優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行する。
これにより、一の認識処理が終了したときに、次に実行可能に認識処理タスクが存在すれば割込処理を介することなく次に認識処理につなぐことができ、割込処理の発生頻度を低減し、全体の処理の遅延をなくして迅速化を図ることが可能となる。
【００１８】
請求項２又は６では、優先順位の設定又は更新を処理種別と撮像方法の組み合わせに応じて優先順位が異なるように行うので、例えば、移動撮像時には静止撮像時よりも処理タクトの優先順位を高くする等のように、タクトの要求に応じた処理を行うことが可能となる。
【００１９】
請求項３又は７では、撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間又は撮像完了からその撮像画像の認識処理の開始までの待ち時間に応じて認識処理タスクの優先順位を上げるように再設定が行われるので、優先順位が低い認識処理タスクの場合でも、待ち時間が過剰に長くなることに起因するタイムアウトの発生を低減することが可能となる。
【００２０】
請求項４又は８では、連続的に撮像を行う複数の撮像対象物の一部又は全部について、同じ前記優先順位内での認識処理の優先度を新たに定め、実行可能キューへの認識処理タスクの接続順位を優先度に応じて並び替える補正を行うことから、同一の優先順位の認識処理について、撮像の順番に認識処理が行われることを回避し、適宜必要な順番に従って複数の認識処理を行うことを可能とする。
【図面の簡単な説明】
【００２１】
【図１】電子部品実装装置の平面図である。
【図２】電子部品実装装置の搭載動作の動作フローチャートである。
【図３】電子部品実装装置に搭載された画像処理装置とその周辺の装置構成図である。
【図４】電子部品の撮像に関する主要な構成を示した説明図である。
【図５】図５は撮像方式の説明図であって図５（Ａ）は電子部品のストップ撮像における平面図、図５（Ｂ）は基板マークのストップ撮像における平面図、図５（Ｃ）は電子部品のノンストップ撮像における平面図、図５（Ｄ）は基板マークのノンストップ撮像における平面図である。
【図６】画像処理装置の制御ＣＰＵが画像認識のために実行するプログラムのタスク構成図である。
【図７】認識処理タスクが実行する処理種別毎の優先順位の一例を示す図表である。
【図８】撮像認識コマンドが入力され、実行可能状態となった認識処理タスクの管理方法を示す説明図である。
【図９】一軸による部品実装動作でのノンストップ撮像時の動作のタイミングチャートである。
【図１０】認識処理タスクによる処理のフローチャートである。
【図１１】タイマ処理のフローチャートである。
【図１２】二軸時のノンストップ撮像のタイミングチャートを示す。
【図１３】低優先順位のストップ撮像コマンドと連続撮像の重複時のタイミングチャートについて撮像方法・処理種別のみで優先順位の設定をした場合を示したものである。
【図１４】待ち時間の累積時間により低優先順位のタスクの優先順位を動的に変動させるためのタイマ処理を組み込んだ場合のタイミングチャートを示す。
【図１５】１軸でノンストップ撮像を行う場合であって、三つの電子部品の搭載の順序を反映させて認識処理を実行する場合のタイミングチャートを示す。
【図１６】従来の画像処理装置が行う処理のタイムチャートを示す。
【発明を実施するための形態】
【００２２】
［発明の実施形態の全体構成］
本発明の実施形態について、図１乃至図１５に基づいて説明する。本実施形態は、撮像画像内の電子部品Ｃにおける中心位置や傾きを検出するために画像処理を行う画像処理装置１９が電子部品実装装置１００に搭載され、電子部品Ｃを基板Ｋに実装する位置決め制御に利用される場合の例を示している。
【００２３】
［電子部品実装装置］
図１は電子部品実装装置１００の平面図である。電子部品実装装置１００は、基板Ｋに各種の電子部品Ｃの搭載を行うものであって、電子部品Ｃの搭載手段として、図１に示すように、搭載される電子部品Ｃを供給する複数の電子部品フィーダ１０１と、電子部品フィーダ１０１を複数並べて保持する電子部品供給部としてのフィーダバンク１０２と、一定方向に基板Ｋを搬送する基板搬送手段１０３と、当該基板搬送手段１０３による基板搬送経路の途中に設けられた基板Ｋに対する電子部品搭載作業を行うための搭載作業部１０４と、電子部品Ｃを吸着する吸着ノズル１を保持して電子部品Ｃの保持を行う部品保持手段としてのヘッド１０６と、ヘッド１０６を所定範囲内の任意の位置に駆動搬送するヘッド移動手段としてのＸ−Ｙガントリ１０７と、吸着ノズル１に吸着された電子部品Ｃの撮像を行う部品用カメラ６と、搭載作業部１０４の基板Ｋに付された基板マークＭの撮像を行う基板用カメラ４と、部品用カメラ６による撮像位置に照明光を照射する照明装置（図示略）と、基板用カメラ４による撮像位置に照明光を照射する照明装置（図示略）と、電子部品実装装置１００の各構成に対して制御を行うマシン制御装置１３（図３参照）と、マシン制御装置１３に対して作業者による各種の設定の入力及びコマンドの入力を行うためのマンマシンインターフェイス（図示略）と、カメラ４又は６の撮像画像から探索対象となる電子部品Ｃ又は基板マークＭの位置認識処理を実行する画像処理装置１９（図３参照）とを備えている。
また、上記電子部品実装装置１００は、基板搬送手段１０３を挟んでその両側に、電子部品フィーダ１０１、フィーダバンク１０２、ヘッド１０６、Ｘ−Ｙガントリ１０７、部品用カメラ６及び基板用カメラ４をそれぞれ一つずつ設ける構成としている。
画像処理装置１９は、カメラ４又は６による基板マークＭ又は電子部品Ｃの撮像画像からこれらの正確な位置情報を求め、マシン制御装置１５に出力することでヘッド１０６の位置決め動作に反映させるために利用される。
カメラ５及び６はいずれもＣＣＤカメラ又はＣＭＯＳカメラであり、部品用カメラ６は定位置において下方から吸着ノズル１０８に吸着された電子部品Ｃを撮像し、基板用カメラ５はヘッド１０６に搭載されて上方から搭載作業部１０４に搬送された基板Ｋの基板マークＭを撮像する。
【００２４】
以下の説明では、主に部品用カメラ６により電子部品Ｃが撮像される場合を例として説明を行うが、撮像対象は電子部品Ｃに限定されるものではなく、基板マークＭの撮像時にも後述する構成及び処理が適用可能であることは言うまでもない。
また、以下の説明において、水平面に沿って互いに直交する一の方向をＸ軸方向とし、他の方向をＹ軸方向とし、垂直上下方向をＺ軸方向と称することとする。
【００２５】
基板搬送手段１０３は、図示しない搬送ベルトを備えており、その搬送ベルトにより基板をＸ軸方向に沿って搬送する。
また、前述したように、基板搬送手段１０３による基板搬送経路の途中には、電子部品を基板Ｋへ搭載する搭載作業部１０４が設けられている。基板搬送手段１０３は、搭載作業部１０４まで基板Ｋを搬送すると共に停止して、図示しない保持機構により基板Ｋの保持を行う。つまり、基板Ｋは保持機構により保持された状態で安定した電子部品Ｃの搭載作業が行われる。
【００２６】
それぞれのヘッド１０６は、その先端部で空気吸引により電子部品Ｃを保持する六本の吸着ノズル１０８と、この吸着ノズル１０８をＺ軸方向に駆動する駆動源であるＺ軸モータと、吸着ノズル１０８を介して保持された電子部品ＣをＺ軸方向を中心として回転駆動させる回転駆動源であるθ軸モータとが設けられている。
また、吸着ノズル１０８は負圧発生装置に接続され、当該吸着ノズル１０８の先端部において吸気吸引を行うことにより電子部品Ｃの吸着及び保持が行われる。
つまり、これらの構造により、搭載作業時には、吸着ノズル１０８の先端部で所定の電子部品フィーダ１０１から電子部品Ｃを吸着し、所定位置で基板に向かって吸着ノズル１を下降させると共に吸着ノズル１０８を回転させて電子部品Ｃの向きの調整を行いつつ搭載作業が行われる。
また、前述した各部品表カメラ６は、ベースフレーム１１４に固定支持されている。
【００２７】
各Ｘ−Ｙガントリ１０７は、Ｘ軸方向にヘッド１０６の移動を案内するＸ軸ガイドレール１０７ａと、このＸ軸ガイドレール１０７ａと共にヘッド１０６をＹ軸方向に案内する二本のＹ軸ガイドレール１０７ｂと、Ｘ軸方向に沿ってヘッド１０６を移動させる駆動源であるＸ軸モータと、Ｘ軸ガイドレール１０７ａを介してヘッド１０６をＹ軸方向に移動させる駆動源であるＹ軸モータとを備えている。そして、各モータの駆動により、ヘッド１０６を二本のＹ軸ガイドレール１０７ｂの間となる領域のほぼ全体に搬送することを可能としている。
なお、各Ｘ−Ｙガントリ１０７は、二本のＹ軸ガイドレール１０７ｂを共用している。
また、各モータには、ぞれぞれの回転量を検出するエンコーダが装備されており、その回転角度がマシン制御装置１５に認識され、所望の回転量となるように制御されることにより、ヘッド１０６を介して吸着ノズル１０８の位置決めやカメラ６への移動を行っている。
【００２８】
各フィーダバンク１０２には、複数の電子部品フィーダ１０１がＸ軸方向に沿って羅列して載置装備される。
各電子部品フィーダ１０１は、後端部に電子部品Ｃが一列に並んで封止された部品テープのリール（図示略）が保持されており、部品テープはリールから電子部品フィーダ１０１の先端部（基板側の端部）の上側に設けられた部品受け渡し位置１０１ａまで繰り出され、当該部品受け渡し位置１０１ａにおいて吸着ノズル１により電子部品Ｃの吸着が行われるようになっている。
【００２９】
マシン制御装置１３は、基板Ｋに搭載する電子部品Ｃのリスト、搭載順番、各電子部品Ｃの部品吸着位置（いずれの電子部品フィーダ１０１から受け取るか）及び基板Ｋにおける搭載位置等が定められた搭載プログラムを記録し、当該搭載プログラムに従って各Ｘ−Ｙガントリ１０７のＸ軸モータ、Ｙ軸モータ及びＺ軸モータを制御し、ヘッド１０６の位置決め制御を行う。また、このマシン制御装置１３は、吸着時の電子部品Ｃに対してθ軸モータを駆動して吸着ノズル１０８を回転させて角度修正制御を行い、Ｘ軸モータ及びＹ軸モータにより位置修正制御を行う。
また、マシン制御装置１３は、上記電子部品Ｃの角度修正制御及び位置修正制御を行うために、各カメラ６による電子部品Ｃの撮像制御と電子部品Ｃの位置や姿勢を認識するための要求を画像処理装置１９に対して実行する。
【００３０】
上記構成からなる電子部品実装装置１００は、図２の動作フローチャートに従って電子部品の搭載を行う。
即ち、マシン制御装置１３は、Ｘ−Ｙガントリ１０７のＸ軸モータ、Ｙ軸モータを制御してヘッド１０６を電子部品Ｃの所定の電子部品フィーダ１０１に対する吸着位置に移動し（ステップＳ１０１）、Ｚ軸モータを制御して所定の吸着ノズル１０８の下降により電子部品Ｃの吸着を行う（ステップＳ１０２）。
なお、複数の電子部品Ｃをそれぞれ複数の吸着ノズル１０８に吸着するために、ステップＳ１０１とＳ１０２の動作は、電子部品Ｃの吸着数に応じて繰り返し実行する。
しかる後に、部品用カメラ６の撮像位置に向かってヘッド１０６の移動を開始する（ステップＳ１０３）。
かかる移動の際には、まず、Ｘ−Ｙガントリ１０７のＸ軸モータ、Ｙ軸モータを所定の目標速度まで加速させ（ステップＳ１０４）、目標速度に達すると、当該目標速度を維持しつつ各電子部品Ｃについてカメラ６の撮像位置を通過させる（ステップＳ１０５）。この時、画像処理装置１９では、部品用カメラ６を制御して撮像を実行する。
各電子部品Ｃの撮像後は、マシン制御装置１３は、Ｘ−Ｙガントリ１０７のＸ軸モータ、Ｙ軸モータを制御して、所定の低速状態となるまで減速し（ステップＳ１０６）、基板Ｋに対する搭載位置にヘッド１０６を移動させる（ステップＳ１０７）。その際、必要があれば、基板マークＭの撮像位置にヘッド１０６を移動して基板マークＭの撮像を実行する。
その後、ヘッド１０６が搭載位置に位置決めされると、Ｚ軸モータを制御して吸着ノズル１０８を下降し、電子部品Ｃの搭載を行う（ステップＳ１０８）。
また、ヘッド１０６が吸着を行っている全ての電子部品Ｃについて搭載が完了したか否かが判定され（ステップＳ１０９）、全ての電子部品Ｃについて搭載が完了するまで、ステップＳ１０７とＳ１０８の動作が繰り返し実行される。
そして、全ての電子部品Ｃについて搭載が完了すると、搭載動作制御は終了する。
なお、上記の動作制御では、後述するノンストップ撮像の場合を例示したが、ストップ撮像の場合には、ステップＳ１０４において各モータの加速から減速までを行い、ステップＳ１０５で撮像位置でヘッド１０６を位置決め停止させて撮像を行い、ステップＳ１０７で各モータの加速から減速までを行い、ステップＳ１０８で搭載位置で位置決め停止を行う。
また、上記の動作制御では、一方のヘッド１０６についてのみ説明を行ったが、実際には、各ヘッド１０６についてステップＳ１０１〜Ｓ１０９までの制御が非同期で個々に実行される。
また、画像処理装置１９は、上記ステップＳ１０３からステップＳ１０８までの間で、電子部品Ｃの位置及び姿勢の認識処理を実行する。
【００３１】
［画像処理装置］
図３は、電子部品実装装置１００に搭載された画像処理装置１９とその周辺の装置構成図である。
画像処理装置１９は、個々に非同期に撮像を行う基板用カメラ４，４（図３では図示略）と、個々に非同期に撮像を行う部品用カメラ６，６と、各基板用カメラ４，４の照明装置（図示略）と、各部品用カメラ６の照明装置８（図４参照）と、各カメラ４，６の撮像制御及び撮像による画像データを記憶する画像入力部１５と、画像データから基板マークＭの位置認識、種別の識別、電子部品Ｃの位置及び姿勢の認識のための認識処理を行う演算処理部１８とを備えている。
【００３２】
画像入力部１５は制御ＣＰＵ１１と並列で動作が可能である。
各部品用カメラ６は、それぞれ非同期に撮像を行い、それぞれの入力回路３を介して個別の画像メモリ７に画像データを記憶することができる。
また、図示を省略しているが、基板用カメラ４，４も非同期に撮像を行い、それぞれの入力回路を介して個別の画像メモリに画像データを記憶することができる。
そして、各画像メモリ７は、出力回路５を介してモニタ１６に接続されており、各カメラ４，６により撮像した画像データを表示することができる。
【００３３】
演算処理部１８は、制御ＣＰＵ１１が画像処理を行うための作業用メモリ１０と、制御ＣＰＵ１１を電子部品実装装置１００の全体を制御するマシン制御装置１３と接続するインターフェイス１２とを備えている。また、制御ＣＰＵ１１と画像入力部１５とは内部バス（ＰＣＩｅ）で接続されている。
そして、各カメラ６からのデータは、各画像メモリ７に格納されるのと並列して、演算制御回路９にてデータ処理が行われ、制御ＣＰＵ１１がアクセス可能な作業用メモリ１０にデータ転送されるようになっている。
画像撮像の指令は、制御ＣＰＵ１１が出す。撮像要求を出した後、制御ＣＰＵ１１は、上述の撮像、及びデータ転送処理中は別の作業を行うことが可能である。
また、マシン制御装置１３からの処理要求は、コマンドとして、インターフェイス１２を介して画像処理装置１９に送信され、画像処理装置１９での処理結果がレスポンスとして、マシン制御装置１３に返信される。
【００３４】
［撮像制御］
図４は電子部品Ｃの撮像に関する主要な構成を示した説明図、図５は撮像方式の説明図であって図５（Ａ）は電子部品のストップ撮像における平面図、図５（Ｂ）は基板マークのストップ撮像における平面図、図５（Ｃ）は電子部品のノンストップ撮像における平面図、図５（Ｄ）は基板マークのノンストップ撮像における平面図である。
画像処理装置１９に接続された部品用カメラ６の上部に照明装置８が設けられ、撮像時には点灯するよう画像処理装置１９により制御される。
マシン制御装置１３は、撮像対象となる電子部品Ｃを各吸着ノズル１０８に電子部品フィーダ１０１からピックアップし、吸着保持した後、各吸着ノズル１０８を備えるヘッド１０６を制御して、部品用カメラ６の上に移動させ、撮像を行う。
【００３５】
［撮像方式］
撮像方式として、図５（Ａ）に示すように、部品用カメラ６上で対象物である電子部品Ｃを静止させ、照明装置８を点灯させ、画像処理装置１９に撮像を指示する静止撮像としてのストップ撮像と、あらかじめ画像処理装置１９に撮像タイミングを示すＸ軸モータのエンコーダカウンタ値をセットしておき、エンコーダパルスを画像処理装置１９に入力し、図５（Ｃ）に示すように、ヘッド１０６の移動により設定されたカウント値になったら、画像処理装置１９が照明装置８を点灯させ、部品用カメラ６による撮像を実行する移動撮像としてのノンストップ撮像の２つをサポートする。
【００３６】
また、基板マークＭの撮像についても同様であり、図５（Ｂ）に示すように、基板マークＭ上で基板用カメラ４を静止させ、照明装置を点灯させ、画像処理装置１９に撮像を指示するストップ撮像と、あらかじめ画像処理装置１９に撮像タイミングを示すＸ軸モータのエンコーダカウンタ値をセットしておき、エンコーダパルスを画像処理装置１９に入力し、図５（Ｄ）に示すように、ヘッド１０６の移動により設定されたカウント値になったら、画像処理装置１９が照明装置を点灯させ、基板用カメラ４による撮像を実行するノンストップ撮像の２つをサポートする。
【００３７】
ノンストップ撮像で、ヘッド１０６に設けられた複数の吸着ノズル１０８に保持される複数の電子部品（ここでは、ノズル１０８，電子部品Ｃ共に三つのみを図示する）をヘッド１０６が部品用カメラ６上をノンストップで移動する際に、連続的に撮像し、各々の画像データを順次別々のメモリ空間に格納する。
画像処理装置１９は画像撮像を最優先し、マシンの動きに合わせて所望の画像を取りこぼさないようにしている。
また、ノンストップ撮像においては、複数の電子部品Ｃについて個別にマシン制御装置１３から画像処理装置１９に認識コマンドを出すものとし、認識コマンド順序が各電子部品Ｃの搭載順を示すものとする。
これにより、例えば、各吸着ノズル１０８の並び順と各電子部品Ｃの搭載の順番が一致している場合には、画像処理装置１９は連続処理される複数の電子部品Ｃが順番に撮像されると、個々の電子部品Ｃについてその搭載の順番を識別することができ、例えば、搭載の順番に従って認識の優先順位が定められているような場合には、これに応じた認識処理を実行することができる。
【００３８】
［タスク構成］
次に、画像処理装置１９において、画像認識のために制御ＣＰＵ１１により実行されるプログラムのタスク構成を図６に示す。これにより、上記タスク構成について説明する。
図６に示すタスク構成は、コマンド管理を行うタスク割り当て手段としてのコマンド受付タスク３４と、認識処理を行う三つの認識処理タスク３７〜３９と、サブルーチンモジュールである画像入力ＡＰＩ(Application Program Interface)３５と、タイマ割込みを処理するハンドラのボディ部であるタイマ処理４６と、撮像終了割り込みを処理するハンドラのボディ部である割込み処理３６とから成る。
なお、認識処理タスクの個体数は、処理の数に応じて増減することが可能である。
【００３９】
［タスク構成：コマンド受付タスク］
図３のマシン制御装置１３から画像処理装置１９への撮像とその撮像画像の認識処理とを実行させる要求は図６に示すコマンド３０として通知される。
コマンド受付タスク３４は、コマンド３０を受信すると、コマンド管理ブロック４５を参照し、タスクのリソースを獲得して、受け付けたコマンドを登録する。
そして、獲得した認識処理タスク３７（又は３８又は３９）に対してコマンド３０を送信し、起床させる。そして、コマンド受付タスク３４は、次のコマンド待ち状態となる。
【００４０】
認識実行タスク３７（又は３８又は３９）はコマンドの内容を解析し、撮像要求部としての画像入力ＡＰＩ３５を呼び出し、画像撮像要求を行い、画像撮像が終了したら、ノンストップ部品認識４０、ストップ部品認識４１、ノンストップ基板マークＭ認識４８、ストップ基板マークＭ認識４９、メンテナンスコマンド４３、ティーチング４４の６つのカテゴリのコマンドモジュールの内、コマンド３０に該当するモジュールを呼び出して、コマンド処理を実行する。
【００４１】
また、認識処理タスク３７〜３９の優先順位は、コマンド受付タスク３４に比べて低く設定されており、認識処理タスク３７の実行中に、次のコマンドを受信したならば、コマンド受付タスク３４が再び起床し、コマンド３０の受信、コマンド管理ブロック４５の参照、空きリソースの獲得及び受け付けたコマンドの登録が行われる。そして、獲得した認識処理タスク３８（又は３９）に対してコマンド３０を送信し、起床させる。コマンド受付タスク３４は、再び次のコマンド待ち状態となる。
【００４２】
［タスク構成：認識処理タスク］
図７は認識処理タスク３７〜３９が実行する処理種別毎の優先順位の一例を示す図表である。
認識処理タスク３７〜３９が実行する処理種別毎の優先順位は高、中、低の３レベルで段階的に定義され、処理種別と撮像方法の種類とによって優先順位が割り当てられている。優先順位のレベルや割り当てのルールは使用するＲＴＯＳ(real time operation system)の仕様、実装するアプリケーションの仕様に合わせて、自由に設定することができるが、ここでは、画像処理装置１９において採用されている一例を説明する。
【００４３】
この電子部品実装装置１００に搭載された画像処理装置１９においては、ノンストップ撮像で部品認識又はマーク認識処理を行う場合には、直ぐに次コマンドが投入されて、タイトな間隔での高速な処理が要求される場合が多いので優先順位を最も高い「高」としている。それに比べて、ヘッドが止まった状態で撮像を行うストップ撮像で部品認識又はマーク認識処理を行う場合は、ノンストップ撮像よりも時間的な余裕があるので優先順位を「中」としている。また、部品認識やマーク認識のように生産中のタクトが要求される処理ではないメンテナンスコマンドに関する処理は優先順位を「低」としている。
なお、優先順位が同じタスクが複数存在する場合には、処理が可能となった順番に実行される。例えば、ノンストップ撮像の場合には、対応する撮像が完了した順番でタスクが実行される。
【００４４】
図８に複数の撮像認識コマンドが入力され、当該各コマンドが登録されて実行可能状態となった認識処理タスク３７〜３９の管理方法を示す。
図７に示す優先順位の設定に従って、実行タスクの切り替えは、ＲＴＯＳの機能を用いて実現する。
各認識処理タスク３７〜３９は、いずれも、休止状態から実行可能状態に遷移すると、図８のような優先順位別のキューにつながれ、管理される。優先順位が同じタスクについては、基本的に先に実行可能状態になった順番につながれる。即ち、この画像処理装置１９の例では、撮像が終了した順番に応じてキューにつながれて、同じ優先順位の中での順位がさらに定められる。
【００４５】
但し、連続する複数の認識処理について搭載順序の指示がある場合は、キューへの挿入位置を制御し、同一優先順位のタスクについても、さらに細かな優先順位を定めることができる。即ち、この搭載順序に基づく優先順位は、図６のコマンド管理ブロック４５に予め登録され、認識処理タスク３７〜３９をキューに接続する際に参照して搭載順序を比較し、搭載順序に応じたキューへの挿入位置を判定してつなげるようにする。このようにすれば、持ち時間を効率的に使え、実装装置全体として効率よく処理を進めることができる。
そして、ＲＴＯＳは、ディスパッチ要求があると、最も優先順位の高く、その中でもキューの最も先頭につながれたタスク（例えば、図８における左上のタスク）を実行状態へと遷移させる。
なお、搭載順序に基づく優先順位が「優先度」に相当し、上記処理を行う制御ＣＰＵ１１は、「連続的に撮像を行う複数の撮像対象物の一部又は全部について、認識処理の優先度を定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先順位補正手段」として機能するものである。
【００４６】
ここで、基本的な動作パターンである一軸（一つのヘッドによる部品実装動作）でのノンストップ撮像時の動作のタイミングチャートを示す図９を参考にしつつ、認識処理タスク３７〜３９について説明する。
ノンストップ撮像における３つの撮像認識のコマンド要求が連続して投入されると、コマンド受付タスク３４はコマンド管理ブロック４５の参照、タスクのリソースの獲得、受け付けたコマンドの登録の処理を繰り返す（時刻ｔ１〜ｔ２）。
これにより、認識処理タスク３７、３８及び３９は、撮像認識コマンドを受信した順番に実行可能状態となり、それぞれのタスクの実行内容に基づく優先順位によって、実行状態となるタスクが決定することになる。いずれのタスクも優先順位が同じである場合には、基本的に先に実行可能状態となっているタスクが優先される。つまり、各認識処理タスク３７〜３９は、画像撮像が完了した順に処理されることになる。
【００４７】
ノンストップ撮像で連続的に複数の電子部品の認識が行われる場合、最初に搭載される電子部品の認識処理タスクについては、同一優先順位の実行可能タスクキューの先頭につながれて、最優先で処理されるが、実行可能タスクキューの先頭に接続されたタスクが既に実行中である場合には、その次に接続するようにすれば、現在実行中のタスクを中断することがなく、画像処理装置全体として効率よく処理を進めることができる。
【００４８】
また、認識処理タスク３７〜３９の優先順位は、リアルタイムに画像撮像が行えるよう、最初の画像撮像終了までは、すべての認識処理タスクに対して同様に、最も高い優先順位が設定される。これにより、認識処理タスク３７が画像撮像要求を出すと、最優先で撮像が開始され、他の処理が先に実行される事により撮像が遅れを生じるような事態を排除し、適正なタイミングで撮像が実行されることとなる。そして、先に実行状態となっていた認識処理タスク３７が画像撮像要求を出し（時刻ｔ２）、続いて認識処理タスク３８、３９の順で撮像要求を出すこととなる。
なお、上述のように各認識処理タスク３７〜３９について当初は最も高い優先順位が設定されるが、認識処理タスク３７の画像データが取得されると、処理種別及び撮像方法によって定められた優先順位に再設定される。即ち、制御ＣＰＵ１１は、「前記複数の要求に対して処理タスクを割り当てる際の優先順位の初期設定を最も高い優先順位に設定すると共に、当該最も高い優先順位に従って撮像開始要求を出力した後に、処理種別と撮像方法の組み合わせに応じて定められる優先順位に再設定する」第一の設定手段としての処理を行う。
また、このように連続して画像撮像要求を出す場合、最初の撮像である第１画像データ撮像が行われると（時刻ｔ３〜ｔ４）、その終了時にのみ割込み通知要求を設定し（時刻ｔ４）、二番目以降の撮像終了時（時刻ｔ７，ｔ１０）についてはあえて割込み通知要求を設定しない。
【００４９】
画像撮像、画像データの転送など図３に示す画像入力部１５のハードウエアがサポートする機能を呼び出すためのモジュールとして設けたのが画像入力ＡＰＩ３５である。画像入力ＡＰＩ３５は、ハードウエア依存部分を隠蔽し、独立性の高いアプリケーションの実装を実現している。
画像入力ＡＰＩ３５での処理は、ハードウエアのキックとその返答待ちである。画像入力ＡＰＩ３５は、サブルーチンとして呼び出されるので、認識処理タスクとして動作する。
画像入力ＡＰＩ３５を呼び出した時点で既に画像撮像が終了していれば、そのまま処理は続行されるが、画像撮像を行う場合、認識処理タスクは画像撮像が終了するまでは、休止状態となる。
【００５０】
例えば、図９では、３つの認識処理タスクが撮像要求を出した後、すべてのタスクは撮像終了待ちとなっている。第１画像データ撮像が時刻ｔ４で終了すると、撮像通知割込み３３がかかり、割込み処理３６が実行される（時刻ｔ４）。割込み処理３６は、割込み要因を解析し、該当する画像の撮像終了（第１画像データ）を待っている認識処理タスク３７を起床する（時刻ｔ５）。
【００５１】
認識処理タスク３７は、画像データを取得し、認識処理に移行した時点で処理種別によって、適切な優先順位に動的に切り替えられる。
このタイミングでタスクのディスパッチ処理が動作し、複数の認識処理タスクが実行可能であった場合、優先順位の高いタスクに切り替わる。
図９の場合は、時刻ｔ５において、他に実行可能なタスクが存在しないので（認識処理タスク３８，３９は画像データを取得していないので）、これらの処理は行われず、そのまま、認識処理タスク３７が実行される。
一方、画像入力部１５は制御ＣＰＵ１１と並行処理が可能であるため、第２画像データ撮像処理が第１画像認識処理中に実行される（時刻ｔ６〜ｔ７）。
そして、認識処理結果を示すレスポンスが生成されたならば、コマンド受付タスク３４に送信され、図３の画像処理装置１９からマシン制御装置１３へとレスポンス３１が受け渡されることになる。
【００５２】
こうして、認識処理タスク３７が終了した時点で、同じ優先順位で、かつ第２画像データ撮像が終了している認識処理タスク３８に制御が移る（時刻ｔ８）。そして同様な処理を経て、第３画像データ撮像処理が第２画像認識処理中に実行される（時刻ｔ９〜ｔ１０）と共に、認識処理結果のレスポンスが返答され、認識処理タスク３８が終了したら（時刻ｔ１１）、認識処理タスク３９に制御が移る（時刻ｔ１１〜ｔ１２）。
これらの過程において、画像認識処理が次の画像データ撮像の完了より早く終了しない限り、第２画像データ、第３画像データの撮像終了時に撮像通知割込みは発生しないので、同じ優先順位のタスク間での遷移は起こらない。
【００５３】
この画像処理装置１９では、優先順位の高い認識処理は途中、極力、不用意な割り込み処理やシステムコールによるディスパッチ処理が発生しないようにタスク制御を行い、最速で画像認識の結果が得られるように考慮している。
また、図１１において後述するが、低優先順位のタスクが待ち時間の経過とともに優先順位を上げて、タイムアウトエラーを防止する仕組みとして、コマンド管理ブロック４５に登録された各コマンド別に、コマンド経過時間と待ち時間を管理するようにし、タイマ処理にて、時間の更新を行い、それぞれの時間を評価し、必要に応じて、優先順位の再設定、及びタスク切り替えのリクエストを発行する。
【００５４】
［認識処理タスクによる処理］
それでは、各タスクと処理モジュールの動作を順を追って説明する。図１０に認識処理タスク３７〜３９による処理のフローチャートを例示する。
認識処理タスク３７〜３９は、迅速に画像撮像を行えるように、ステップＳ１のコマンド解析とステップＳ２の画像撮像要求とについては、コマンド受付タスク３４に次いで高い優先順位で動作させる。
【００５５】
まず、コマンド解析では受け渡されたコマンド文字列を解析し、処理種別に応じた優先順位を取得する（ステップＳ１）。
演算処理部１８は、前述したように、処理種別毎の優先順位を予め定めて記憶しており（図７参照）、これが参照される。
【００５６】
次に、画像撮像要求の処理では、図６の画像入力ＡＰＩ３５の撮像開始Ｉ／Ｆを呼び出し、ハードウエアをキックする（ステップＳ２）。これにより、電子部品Ｃ又は基板マークＭの撮像が開始される。
そして、画像撮像ステータス取得の処理では、画像入力ＡＰＩ３５の撮像ステータスＩ／Ｆを呼び出す（ステップＳ３）。
そして、撮像完了の有無を判定し（ステップＳ４）、撮像が終了していない場合には撮像完了待ちとなり（ステップＳ５）、休止状態になる。また、撮像が終了した場合には、図６に示す割込み処理３６にて起床される。撮像完了の有無をチェック（ステップＳ４）で撮像が終了いれば、そのまま処理が続行される。
【００５７】
そうして、撮像完了の状態で認識処理タスクに制御が移ってきたら、タスク優先順位再設定（ステップＳ６）を行う。設定する優先順位はコマンド解析（ステップＳ１）で取得済みの値である。
即ち、制御ＣＰＵ１１は、「複数の要求に基づくそれぞれの撮像完了時に処理タスクの優先順位を設定又は更新する第一の設定手段」としての処理を行う。
ここで一旦、タスク切り替え要求を出し（ステップＳ７）、続いて、認識処理を行い（ステップＳ８）、認識処理終了後再度、タスク切り替え要求を出す。（ステップＳ９）
タスク切り替え要求を行う（ステップＳ７、Ｓ９）際は、図６のコマンド管理テーブルを参照し、登録コマンドが自身のみであるとか、自身が最も高い優先順位であるとか、タスク切り替えが発生し得ない状況であることが明確な場合は、システムコールの呼び出しは行わないようにする。
【００５８】
［タイマ処理］
図６に示すタイマ処理４６について、図１１のフローチャートに基づいて説明する。このタイマ処理４６では、優先順位の低いことが原因でいつまでも順番が回ってこないタスクについて、その待ち時間が予め設定された時間を超過した場合に優先順位を高くする処理が行われる。
このタイマ処理４６は周期タイマハンドラに登録され、一定周期毎に呼び出される。例えば、この画像処理装置１９では、最初の認識処理タスク３７による処理が開始されると、それ以降1[ms]毎に呼び出されるものとする。
【００５９】
まず、図６のコマンド管理ブロック４５を参照し、実行中の認識処理タスクのＩＤを取得する（ステップＳ１１）。
次に、コマンド管理ブロック４５へのコマンド登録数の回数分だけ、ステップＳ１３〜Ｓ２０の工程のループ処理を行ったか否かを判定する（ステップＳ１２）。コマンド登録数の回数分の処理が完了した場合には、タイマ処理４５を終了する。
【００６０】
一方、コマンド登録数の回数分の処理を完了していない場合には、登録コマンドについて、割り付けられた認識処理タスク３７〜３９のタスクＩＤを取得する（ステップＳ１３）。
そして、ステップＳ１１で取得したＩＤと比較し、実行中か否かを判定する（ステップＳ１４）。
実行中でなければ、待ち時間を更新し（ステップＳ１５）、予め設定しておいた判定時間と更新された待ち時間とを比較し、さらにコマンドを受け付けてからの経過時間も考慮して優先順位再設定が必要か否かを判定する（ステップＳ１６）。
【００６１】
そして、コマンドを受け付けてからの経過時間が判定時間を超過しており、優先順位の再設定が必要な場合には、タスク優先順位の再設定を行う（ステップＳ１７）。
さらに、設定された優先順位をチェックし（ステップＳ１８）、再設定の結果、「高」まで優先順位が上がっていた場合には、そのタスクの緊急度が高くなっているものと判断し、この時点でタスク切り替え要求を出す（ステップＳ１９）。
最後に、カレントポジションを次エントリへ進めて（ステップＳ２０）、ループ先頭のステップＳ１２に戻る。
即ち、制御ＣＰＵ１１は、上記ステップＳ１３〜Ｓ１５の処理により、「撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間を計時する計時手段」として機能する。なお、この「計時手段」としての処理は、撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する構成としてもよい。
また、制御ＣＰＵ１１は、上記ステップＳ１６，Ｓ１７の処理により、「前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定する第二の設定手段」として機能する。
【００６２】
［２軸時のノンストップ撮像のタイミングチャート説明］
次に、二機のヘッド１０６により並行して電子部品Ｃの搭載を実行する場合にノンストップ撮像を行った場合の例について説明する。図１２は二軸時のノンストップ撮像のタイミングチャートを示している。
２つのヘッド１０６，１０６がそれぞれ３つの電子部品を保持しており、ほぼ同時に撮像が行われるよう、それぞれについてコマンド送信された場合の動きを記述している。図１２では一方のヘッド１０６をフロントヘッド、他方のヘッド１０６をリアヘッドと記述する。
【００６３】
まず、送信されたコマンドは、時刻ｔ１〜ｔ２、ｔ２〜ｔ３の間にコマンド受付タスク３４でリアルタイムで受け付けられ、認識処理タスク３７〜３９が割り当てられ、コマンド送信順に撮像要求が出される。すべての撮像要求に関する設定が終了したら、その旨をマシン制御装置１３に通知し、ヘッド１０６，１０６の移動が開始される。
各ヘッド１０６，１０６が部品用カメラ６，６の上を通過する時刻ｔ４のタイミングで、それぞれの画像撮像が行われる。画像入力部１５は、図３に示したように、２系統の入力回路３，３及び画像メモリ７，７を備えているので、それぞれの系統での同時撮像が可能となっている。また、画像入力部１５は、制御ＣＰＵ１３と独立したハードモジュールであるので、画像撮像と認識処理が並列で行うことができる。
【００６４】
この場合も、第１画像データ撮像が終了した場合のみ撮像通知割込みを出すよう設定されている（時刻ｔ４）。
そして、これら２系統の撮像は同時刻の時刻ｔ４〜ｔ５、ｔ７〜ｔ９、ｔ１０〜ｔ１２に実行される。
認識処理は、初回の撮像終了の時刻ｔ５の撮像通知割込みをトリガに開始される。
２軸なので認識処理タスクは計６つ用意され、それぞれ優先順位は同じである。
まずは、割込み通知のあったフロントヘッドの第１画像認識処理が実行される（時刻ｔ５）。この画像処理装置１９では、認識処理の終了時（時刻ｔ８）に、画像撮像状況を調べて、次に実行すべき認識処理タスクに制御を渡すようにする。
時刻ｔ８において、実行可能状態にあるのは、リアヘッドの第１画像認識処理のみであるのでこの処理が実行される。
その間、各ヘッド１０６，１０６の第２画像データ撮像が行われ（時刻ｔ７〜ｔ９）、リアヘッド１０６の第１画像の認識終了時の時刻ｔ１１では、フロント、リアの第２画像認識処理が実行可能状態になっている。図中では同時刻に画像撮像が終了しているが、先に待ちキューにつながれた方を優先して、フロントの第２画像認識処理（時刻ｔ１１〜ｔ１３）、リアの第２画像認識処理（時刻ｔ１３〜ｔ１４）の順で処理される。これらの間に、各ヘッド１０６，１０６の第３画像データ撮像が行われ（時刻ｔ１０〜ｔ１２）、リアの第２画像認識処理が終わると、フロントの第３画像認識処理（時刻ｔ１４〜ｔ１５）、リアの第３画像認識処理（時刻ｔ１５〜ｔ１６）の順で処理される。
【００６５】
［２軸でストップ撮像とノンストップ撮像とを実行するタイミングチャート説明（１）］
図１３は、低優先順位のストップ撮像コマンドとノンストップ撮像の重複時のタイミングチャートについて撮像方法・処理種別のみで優先順位の設定をした場合を示したものである。
例えば、フロントヘッド１０６が、３つの電子部品を保持しており、ノンストップ撮像を行うのとほぼ同時刻にリアヘッド１０６でストップ撮像コマンドが実行され、ストップ撮像の画像撮像終了の方が早く終了した場合の動きを記述している。
【００６６】
まず、送信されたコマンドは、時刻ｔ１〜ｔ２、ｔ２〜ｔ３の間にコマンド受付タスク３４でリアルタイムで受け付けられ、認識処理タスクが割り当てられ、コマンド送信順に撮像要求が出される。
フロントヘッド１０６については、ノンストップ撮像の要求であるので、３つの撮像要求に関する設定が終了したら、その旨をマシン制御装置１３に通知し、フロントヘッド１０６の移動が開始される。
リアヘッド１０６については、ストップ撮像の要求である。コマンド送信時には、ヘッド１０６は既に部品用カメラ６上に位置しているので、撮像要求に続いて、フロントヘッド１０６より早い時刻ｔ４で撮像が開始される。
一方、フロントヘッドの撮像は時刻ｔ４に遅れて時刻ｔ５〜ｔ８、ｔ１０〜ｔ１２、ｔ１３〜ｔ１５に実行される。
【００６７】
リアヘッド１０６における認識処理は、リアヘッド１０６の撮像終了の時刻ｔ６の撮像通知割込みをトリガに開始される。
認識処理タスクは計４つで、優先順位は、フロントヘッド１０６の３つが「高」、リアヘッド１０６の１つが「中」に設定されている。
また、この図１３の例のフロントヘッド１０６の画像認識処理は次の画像撮像終了よりも早く終了し、次の画像認識処理の開始までに空き時間が出来るような場合を事例としている。
【００６８】
時刻ｔ６では、実行可能状態の認識処理タスクはリアヘッド１０６の１つだけなので、時刻ｔ７からリアヘッド１０６の認識処理タスクが実行中となる。
その後、時刻ｔ８でフロントヘッド１０６の第１画像データ撮像が終了し、撮像通知割込みが入る。この時点でフロントヘッド１０６の第１画像認識処理タスクが実行可能状態となる。２つの実行可能状態の認識処理タスクで優先順位を比較し、実行タスクは、フロントヘッドの第１画像認識処理を行う認識処理タスクに切り替わる。
そして、第１画像認識処理の実行中に、第２画像データ撮像が時刻ｔ１０で開始され、時刻ｔ１１にフロントヘッドの第１画像認識処理は終了するが、この時点で、第２画像データの撮像は終了していない。そのため、実行可能なリアヘッドの認識処理タスクが再び実行タスクとなる。
【００６９】
ノンストップ撮像処理において、認識処理時に時間がかかり、認識処理終了時に既に次の認識処理の画像データが用意されている場合は、途中で撮像通知割込みは発生しない。
しかし、図１３に示すように、次の画像処理の画像データが間に合っていない場合（撮像が完了していない場合）には、前の認識処理の終了時、画像撮像状況をチェックした際に、次の認識処理の画像撮像について、撮像通知割込みの発生要求を立てておく。
すると、第２画像データ撮像終了の時刻ｔ１２に撮像通知割込みが発生し、実行タスクをリアヘッドの認識処理タスクからフロントヘッドの第２画像認識処理を行う認識処理タスクに切り替えることができる。
【００７０】
同様の仕組みで、フロントヘッドの第２画像認識処理タスクが終了する時刻ｔ１４で、タスク切り替えが起こり、リアヘッドの認識処理タスクが実行タスクとなる。そして、フロントヘッドの第３画像データ撮像が終了する時刻ｔ１５で撮像通知割込みが発生し、フロントヘッドの第３画像認識処理を行う認識処理タスクが実行タスクとなり、処理が終了する時刻ｔ１７でリアヘッドの認識処理タスクが唯一の実行可能状態のタスクとなるので、やっと制御が戻り、残りの処理を実行して時刻ｔ１８にすべての処理が終了となる。
このように優先順位が「中」の設定であると、他の認識処理タスクがすべて終了しないと処理の順番が回ってこない。
【００７１】
［２軸でストップ撮像とノンストップ撮像とを実行するタイミングチャート説明（２）］
図１４に待ち時間の累積時間により低優先順位のタスクの優先順位を動的に変動させるためのタイマ処理を組み込んだ場合のタイミングチャートを示す。この処理は、前述した図１３の処理に図１１に示したタイマ処理を組み込んだものであり、各ヘッド１０６，１０６の動作自体は図１３と同じである。
この図１４の処理は、時刻ｔ８〜ｔ１１の待ち時間の間に、周期的に実行されるタイマ処理が入ると、リアヘッド１０６の認識処理タスクに所定時間以上の待ち時間が生じている場合に、その優先順位が再設定され、「中」から「高」に切り替えられる。
【００７２】
これにより、フロントヘッド１０６の第１画像認識処理の終了時の時刻ｔ１１において、リアヘッド１０６の画像認識処理にタスク切替が行われる。
そして、このリアヘッド１０６の画像認識処理の終了時の時刻ｔ１４では、第２画像認識処理を実行する認識処理タスクが実行可能となっているので、当該認識処理タスクにタスク切り替えが行われる。
さらに、第２画像認識処理の終了時の時刻ｔ１６では、第３画像認識処理を実行する認識処理タスクが実行可能となっているので、当該認識処理タスクにタスク切り替えが行われる。
【００７３】
このように、優先順位「中」のタスクのレスポンス時間が、優先順位の繰り上げにより、短縮、改善される。
また、これに伴い、割込処理の発生頻度が低減して、全体の処理時間も短縮される。
なお、この処理では、一般的に実行される周期的に時間の経過を報知するタイマ処理に優先順位の更新機能を持たせているので、発明の課題である割込処理の低減の趣旨に反するものではない。
【００７４】
［１軸で搭載順序を考慮してノンストップ撮像とを実行するタイミングチャート説明］
図１５に１軸でノンストップ撮像を行う場合であって、三つの電子部品の搭載の順序を反映させて認識処理を実行する場合のタイミングチャートを示す。
このノンストップ撮像では、第３撮像画像の電子部品Ｃが最初に搭載され、第２撮像画像の電子部品Ｃが二番目に搭載され、第１撮像画像の電子部品Ｃが最後に搭載される場合の認識処理である。この場合、搭載に順番を反映すると、いずれも処理の優先順位は「高」であるが、その中でも、優先順位が、第３撮像画像＞第２撮像画像＞第１撮像画像となる。
ヘッド１０６の動作が図１１の例と同じように制御される場合に、上述の有せ印順位を適用すると、まず、撮像要求が行われ（時刻ｔ１〜ｔ２）、撮像の順番に従って第１画像データ撮像が行われる（時刻ｔ３〜ｔ４）。
撮像終了時には、撮像通知割込が入り、割込処理が行われる結果、処理が可能な状態である第１画像認識処理を実行する認識処理タスクの処理が開始される（時刻ｔ５）。
この時、第１画像認識処理の処理時間の長く、その実行中に第２画像データ撮像（時刻ｔ６〜ｔ７）と第３画像データ撮像（時刻ｔ８〜ｔ９）とが完了した場合、第３画像データ撮像の終了時の優先順位の更新において、第３画像認識処理の認識処理タスクが、タスクキューに対して、第２画像認識処理の認識処理タスクより前につながれた状態となる。
従って、第１画像認識処理が終了すると（時刻ｔ１０）、第３画像認識処理の認識処理タスクにタスクが切り替えられる。
さらに、第３画像認識処理が終了すると（時刻ｔ１１）、第２画像認識処理の認識処理タスクにタスクが切り替えられ、時刻ｔ１２で処理全体が終了する。
【００７５】
［発明の実施の形態における効果］
上記画像処理装置１９は、複数の撮像認識コマンドに基づいて撮像とその撮像画像の認識処理とを行う際に、撮像終了時に認識処理タスクの優先順位を更新し、処理タスクの認識終了毎に優先順位に従って、次に実行すべき処理タスクを選定し、当該次の処理タスクに移行する。
これにより、一の認識処理が終了したときに、次に実行可能に認識処理タスクが存在すれば割込処理を介することなく次に認識処理につなぐことができ、割り込み通知、タスク切り替えを最小限に止め、ＯＳのオーバーヘッド、キャッシュの入れ替え処理を削減することで、作業効率を向上することが可能となる。
【００７６】
また、画像処理装置１９では、処理種別にて認識処理タスクの優先順位を動的に切り替えることで、作業効率を向上できる。
さらに、処理待ち時間の経過に合わせて認識処理タスクの優先順位を上げることで、低優先順位の処理のタイムアウトを防止できる。
また、ノンストップ撮像する対象物について、撮像順に認識される場合に限らず、認識順を制御できるタスク管理手段を設けたことで、軸の搭載点までの移動時間を含めた範囲で効率良く、各部品の認識時間の配分ができ、システム全体として効率向上を図ることができる。なお、この場合、認識の順番を全ての電子部品Ｃについて搭載の順番に従わせる場合に限らず、一部の電子部品Ｃのみについて、例えば、最初に搭載が行われる電子部品
のみについて認識を優先するというような補正を行うことも可能である。
また、認識の順番を全ての電子部品Ｃについて搭載の順番に従わせる場合には、よりきめ細かな認識順の制御が可能となり、理屈的には最後の搭載点までの移動時間をフルに使って、各部品の認識時間の配分ができ、システム全体として効率向上を図ることができる。
【符号の説明】
【００７７】
４  基板用カメラ
６  部品用カメラ
７  画像メモリ
１１  制御用ＣＰＵ
１５  画像入力部
１８  演算処理部
１９  画像処理装置
３４  コマンド受付タスク（タスク割り当て手段）
３５  画像入力ＡＰＩ（撮像要求部）
３７〜３９  認識処理タスク
Ｃ  電子部品（対象物）
【図１】
2013142949.tif 000003
【図２】
2013142949.tif 000004
【図３】
2013142949.tif 000005
【図４】
2013142949.tif 000006
【図５】
2013142949.tif 000007
【図６】
2013142949.tif 000008
【図７】
2013142949.tif 000009
【図８】
2013142949.tif 000010
【図９】
2013142949.tif 000011
【図１０】
2013142949.tif 000012
【図１１】
2013142949.tif 000013
【図１２】
2013142949.tif 000014
【図１３】
2013142949.tif 000015
【図１４】
2013142949.tif 000016
【図１５】
2013142949.tif 000017
【図１６】
2013142949.tif 000018