JP2014178801A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法 Download PDFInfo
- Publication number
- JP2014178801A JP2014178801A JP2013051290A JP2013051290A JP2014178801A JP 2014178801 A JP2014178801 A JP 2014178801A JP 2013051290 A JP2013051290 A JP 2013051290A JP 2013051290 A JP2013051290 A JP 2013051290A JP 2014178801 A JP2014178801 A JP 2014178801A
- Authority
- JP
- Japan
- Prior art keywords
- imaging
- image
- recognition
- recognition processing
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Electric Connection Of Electric Components To Printed Circuits (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
Abstract
【解決手段】画像処理装置は、演算処理部と並列処理可能な複数系統の画像入力部と、複数のカメラによる画像データを格納する画像メモリとを備える。撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて、カメラによる撮像を要求し、認識処理タスクを割り当てる。撮像完了時にタスクの優先順位を設定又は更新し、認識終了毎に優先順位に従って、次に実行すべきタスクを選定し移行させる。連続撮像の認識処理の優先度を定めた実行可能キューへの認識処理タスクの接続順位を、ハード演算占有率が高いものほど優先度が高くなるよう並び替える。
【選択図】図10
Description
この画像処理装置では、撮像終了をトリガにして、あらかじめ設定された優先順位に従って、認識処理を行う画像データを選定し直して、優先順位の高い画像データへの認識処理切り替え行っている。このときの優先順位は、回路基板への電子部品の装着順もしくは被検査物における大きさの順位としている。
まず、従来の画像処理装置では、撮像の要求を受けると、画像データを所定のメモリに記憶するために、時刻t1から所定のメモリに対するバス接続処理を実行する。
その後、時刻t2から、第1画像データの撮像を開始する。そして、時刻t3にて、画像撮像を終了し、メモリに併設されたコントローラから装置の制御及び画像処理を行うためのCPUに対して割込信号を送出する。
これにより、CPUは、第2画像データの撮像のための設定や画像データの記憶領域の確保等を割込処理にて実行する。そして、割込処理の後に、CPUは、既に記憶された第1画像データに対し、第1画像認識処理を実行する。
これにより、CPUは、処理中であった第1画像認識処理を一時中断する。さらに、CPUは第3画像データの撮像のための設定を割込処理にて実行する。そして、既に記憶された第1画像データ及び第2画像データについて、予め設定されている画像認識処理の優先順位を判定し、優先順位の高い方の画像認識処理を実行する。画像認識処理の優先順位が、例えば、第3画像データ、第2画像データ、第1画像データの順であるとすると、CPUは、画像撮像動作が終了して未処理状態にある第1画像データ及び第2画像データに対して、優先順位の高い第2画像データの方を第1画像データに優先して画像認識処理を実行する。
これにより、第1画像データ に対する画像認識処理は、当該第1画像データの画像認識処理よりも優先順位の高い画像データの画像認識処理が全て終了するまで一時中断することとなる。
前述したように、第3画像データの優先順位が最も高いので、当該第3画像データに対する画像認識処理がまず実行され、これが終わると時刻t8において、その次に第2画像データにおける一時中断後の残りのデータに対して画像認識処理が実行され、さらに、これが終わると時刻t9において、第1画像データにおける一時中断後の残りのデータに対して画像認識処理が実行され、時刻t10にて終了する。
このようにして全ての画像データに対して画像認識処理が終了したところで一連の画像撮像及び画像認識処理の作業は終了することとなる。
尚、このような、画像認識処理を実行する画像データの変更機能は、CPUのオペレーションシステムが、マルチタスク機能をサポートしていれば簡単に実現することが可能である。
即ち、カメラを複数搭載する場合、複数系統からの非同期での処理要求の組み合わせは増大し、あらかじめ適切な優先順位を設定しておくことは困難となる。例えば、処理要求の重なり具合によって、ある時間での処理の多重度が上がり負荷が重くなる、また、処理時間がかかる処理が混ざるなど、CPUの負荷状態が刻々と変動する。このような環境下では、あらかじめきめた優先順位に従って処理を進めた場合、低優先順位の処理まで順番が回ってこなくなり、想定されている以上の遅れが発生し、タイムアウトによるエラーが発生する場合があった。
また、近年のキャッシュ制御により高速化をはかっているCPUにとっては、タスクの切り替えは最小限に止めたほうがキャッシュのヒット率が保持されるために速度的に有利となる。
このように、従来方法では、優先順位の設定によっては、無駄なディスパッチ処理が発生する可能性があり、優先順位に従って想定された順番で処理を進めることはできるが、トータル的な作業効率は低下を生じるものとなっていた。
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記演算処理部は、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求部と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て手段とを有し、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、
前記複数の要求に基づくそれぞれの撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定手段と、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理手段と、
前記優先順位内での認識処理の優先度をさらに定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先度設定手段を備え、
前記優先度設定手段は、前記実行可能キューへの認識処理タスクの接続順位を並び替える際に、認識処理タスクがハード演算を含むか否かを判定し、ハード演算を含み、前記演算処理部との並列処理が可能な認識処理タスクについて、ハード演算占有率が高いものほど優先度を高くして並び替えることを特徴とする。
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記演算処理部は、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求部と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て手段とを有し、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、
前記複数の要求に基づくそれぞれの撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定手段と、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理手段と、
認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を並び替える接続順位補正手段を備え、
前記接続順位補正手段は、
前記複数の要求に基づくそれぞれの撮像画像の認識処理に要する画像認識処理時間及び前記複数の要求に基づくそれぞれの撮像画像の認識処理について目標とする画像認識処理終了時刻とに基づいて、前記複数の要求に基づくそれぞれの撮像画像の認識処理の遅延時間を求め、それぞれの前記遅延時間の合計が低減するように認識処理タスクを並び替えることを特徴とする。
前記複数のカメラの中で2番目以降の順番で連続撮像を行うカメラの連続撮像における最初の撮像の露光完了をトリガとして認識処理タスクの並び替えを実行することを特徴とする。
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求工程と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て工程と、
前記複数の要求に基づく毎回の撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定工程とを備え、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理工程と、
前記優先順位内での認識処理の優先度をさらに定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先度設定工程とを備え、
前記優先度設定工程は、前記実行可能キューへの認識処理タスクの接続順位を並び替える際に、認識処理タスクがハード演算を含むか否かを判定し、ハード演算を含み、前記演算処理部との並列処理が可能な認識処理タスクについて、ハード演算占有率が高いものほど優先度を高くして並び替えることを特徴とする。
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求工程と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て工程と、
前記複数の要求に基づく毎回の撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定工程とを備え、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理工程と、
認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を並び替える接続順位補正工程を備え、
前記接続順位補正工程は、
前記複数の要求に基づくそれぞれの撮像画像の認識処理に要する画像認識処理時間及び前記複数の要求に基づくそれぞれの撮像画像の認識処理について目標とする画像認識処理終了時刻とに基づいて、前記複数の要求に基づくそれぞれの撮像画像の認識処理の遅延時間を求め、それぞれの前記遅延時間の合計が低減するように認識処理タスクを並び替えることを特徴とする。
前記複数のカメラの中で2番目以降の順番で連続撮像を行うカメラの連続撮像における最初の撮像の露光完了をトリガとして認識処理タスクの並び替えを実行することを特徴とする。
これにより、一の認識処理が終了したときに、次に実行可能に認識処理タスクが存在すれば割込処理を介することなく次に認識処理につなぐことができ、割込処理の発生頻度を低減し、全体の処理の遅延をなくして迅速化を図ることが可能となる。
さらに、認識処理タスクの認識処理の終了毎に次の認識処理タスクに移行するので、一の認識処理の完了が複数回の割込処理により過剰に遅延することを抑止することが可能となる。従って、優先順位が低い認識処理タスクの場合でも、待ち時間が過剰に長くなることに起因するタイムアウトの発生を低減することが可能となる。
上記複数のカメラによる連続撮像を行った場合に、個々の撮像の何れかは目標とする画像認識処理終了時刻に対する余裕時間を生じる場合があるので、余裕時間を生じる撮像の認識処理タスクと遅延を生じる撮像の認識処理タスクの接続順位を入れ替えることで、いずれの認識処理タスクも遅延を解消する場合がある。
このような入れ替えによって遅延を解消する認識処理タスクの組み合わせを適宜探索し、実行可能キューへの認識処理タスクの接続順位を並び替えることにより、個々の撮像の認識処理の遅延を低減又は解消し、複数のカメラの連続撮像の認識処理のトータルでの処理時間をより短くすることが可能となる。
本発明の実施形態について、図1乃至図17に基づいて説明する。本実施形態は、撮像画像内の電子部品Cにおける中心位置や傾きを検出するために画像処理を行う画像処理装置19が電子部品実装装置100に搭載され、電子部品Cを基板Kに実装する位置決め制御に利用される場合の例を示している。
図1は電子部品実装装置100の平面図である。電子部品実装装置100は、基板Kに各種の電子部品Cの搭載を行うものであって、電子部品Cの搭載手段として、図1に示すように、搭載される電子部品Cを供給する複数の電子部品フィーダ101と、電子部品フィーダ101を複数並べて保持する電子部品供給部としてのフィーダバンク102と、一定方向に基板Kを搬送する基板搬送手段103と、当該基板搬送手段103による基板搬送経路の途中に設けられた基板Kに対する電子部品搭載作業を行うための搭載作業部104と、電子部品Cを吸着する吸着ノズル108を保持して電子部品Cの保持を行う部品保持手段としてのヘッド106と、ヘッド106を所定範囲内の任意の位置に駆動搬送するヘッド移動手段としてのX−Yガントリ107と、吸着ノズル108に吸着された電子部品Cの撮像を行う部品用カメラ6と、搭載作業部104の基板Kに付された基板マークMの撮像を行う基板用カメラ4と、部品用カメラ6による撮像位置に照明光を照射する照明装置(図示略)と、基板用カメラ4による撮像位置に照明光を照射する照明装置(図示略)と、電子部品実装装置100の各構成に対して制御を行うマシン制御装置13(図3参照)と、マシン制御装置13に対して作業者による各種の設定の入力及びコマンドの入力を行うためのマンマシンインターフェイス(図示略)と、カメラ4又は6の撮像画像から探索対象となる電子部品C又は基板マークMの位置認識処理を実行する画像処理装置19(図3参照)とを備えている。
また、上記電子部品実装装置100は、基板搬送手段103を挟んでその両側に、電子部品フィーダ101、フィーダバンク102、ヘッド106、X−Yガントリ107、部品用カメラ6及び基板用カメラ4をそれぞれ一つずつ設ける構成としている。
画像処理装置19は、カメラ4又は6による基板マークM又は電子部品Cの撮像画像からこれらの正確な位置情報を求め、マシン制御装置13に出力することでヘッド106の位置決め動作に反映させるために利用される。
カメラ4及び6はいずれもCCDカメラ又はCMOSカメラであり、部品用カメラ6は定位置において下方から吸着ノズル108に吸着された電子部品Cを撮像し、基板用カメラ4はヘッド106に搭載されて上方から搭載作業部104に搬送された基板Kの基板マークMを撮像する。
また、以下の説明において、水平面に沿って互いに直交する一の方向をX軸方向とし、他の方向をY軸方向とし、垂直上下方向をZ軸方向と称することとする。
また、前述したように、基板搬送手段103による基板搬送経路の途中には、電子部品を基板Kへ搭載する搭載作業部104が設けられている。基板搬送手段103は、搭載作業部104まで基板Kを搬送すると共に停止して、図示しない保持機構により基板Kの保持を行う。つまり、基板Kは保持機構により保持された状態で安定した電子部品Cの搭載作業が行われる。
また、吸着ノズル108は負圧発生装置に接続され、当該吸着ノズル108の先端部において吸気吸引を行うことにより電子部品Cの吸着及び保持が行われる。
つまり、これらの構造により、搭載作業時には、吸着ノズル108の先端部で所定の電子部品フィーダ101から電子部品Cを吸着し、所定位置で基板に向かって吸着ノズル108を下降させると共に吸着ノズル108を回転させて電子部品Cの向きの調整を行いつつ搭載作業が行われる。
また、前述した各部品用カメラ6は、ベースフレーム114に固定支持されている。
なお、各X−Yガントリ107は、二本のY軸ガイドレール107bを共用している。
また、各モータには、ぞれぞれの回転量を検出するエンコーダが装備されており、その回転角度がマシン制御装置13に認識され、所望の回転量となるように制御されることにより、ヘッド106を介して吸着ノズル108の位置決めやカメラ6への移動を行っている。
各電子部品フィーダ101は、後端部に電子部品Cが一列に並んで封止された部品テープのリール(図示略)が保持されており、部品テープはリールから電子部品フィーダ101の先端部(基板側の端部)の上側に設けられた部品受け渡し位置101aまで繰り出され、当該部品受け渡し位置101aにおいて吸着ノズル108により電子部品Cの吸着が行われるようになっている。
また、マシン制御装置13は、上記電子部品Cの角度修正制御及び位置修正制御を行うために、各カメラ6による電子部品Cの撮像制御と電子部品Cの位置や姿勢を認識するための要求を画像処理装置19に対して実行する。
即ち、マシン制御装置13は、X−Yガントリ107のX軸モータ、Y軸モータを制御してヘッド106を電子部品Cの所定の電子部品フィーダ101に対する吸着位置に移動し(ステップS101)、Z軸モータを制御して所定の吸着ノズル108の下降により電子部品Cの吸着を行う(ステップS102)。
なお、複数の電子部品Cをそれぞれ複数の吸着ノズル108に吸着するために、ステップS101とS102の動作は、電子部品Cの吸着数に応じて繰り返し実行する。
しかる後に、部品用カメラ6の撮像位置に向かってヘッド106の移動を開始する(ステップS103)。
かかる移動の際には、まず、X−Yガントリ107のX軸モータ、Y軸モータを所定の目標速度まで加速させ(ステップS104)、目標速度に達すると、当該目標速度を維持しつつ各電子部品Cについてカメラ6の撮像位置を通過させる(ステップS105)。この時、画像処理装置19では、部品用カメラ6を制御して撮像を実行する。
各電子部品Cの撮像後は、マシン制御装置13は、X−Yガントリ107のX軸モータ、Y軸モータを制御して、所定の低速状態となるまで減速し(ステップS106)、基板Kに対する搭載位置にヘッド106を移動させる(ステップS107)。その際、必要があれば、基板マークMの撮像位置にヘッド106を移動して基板マークMの撮像を実行する。
その後、ヘッド106が搭載位置に位置決めされると、Z軸モータを制御して吸着ノズル108を下降し、電子部品Cの搭載を行う(ステップS108)。
また、ヘッド106が吸着を行っている全ての電子部品Cについて搭載が完了したか否かが判定され(ステップS109)、全ての電子部品Cについて搭載が完了するまで、ステップS107とS108の動作が繰り返し実行される。
そして、全ての電子部品Cについて搭載が完了すると、搭載動作制御は終了する。
なお、上記の動作制御では、後述するノンストップ撮像の場合を例示したが、ストップ撮像の場合には、ステップS104において各モータの加速から減速までを行い、ステップS105で撮像位置でヘッド106を位置決め停止させて撮像を行い、ステップS107で各モータの加速から減速までを行い、ステップS108で搭載位置で位置決め停止を行う。
また、上記の動作制御では、一方のヘッド106についてのみ説明を行ったが、実際には、各ヘッド106についてステップS101〜S109までの制御が非同期で個々に実行される。
また、画像処理装置19は、上記ステップS103からステップS108までの間で、電子部品Cの位置及び姿勢の認識処理を実行する。
図3は、電子部品実装装置100に搭載された画像処理装置19とその周辺の装置構成図である。
画像処理装置19は、個々に非同期に撮像を行う基板用カメラ4,4(図3では図示略)と、個々に非同期に撮像を行う部品用カメラ6,6と、各基板用カメラ4,4の照明装置(図示略)と、各部品用カメラ6の照明装置8(図4参照)と、各カメラ4,6の撮像制御及び撮像による画像データを記憶する画像入力部15と、画像データから基板マークMの位置認識、種別の識別、電子部品Cの位置及び姿勢の認識のための認識処理を行う演算処理部18とを備えている。
また、画像入力部15は、LANポート20とこれに接続された画像メモリ7とを備えており、このLANポート20には追加の部品用カメラ6の増設が可能となっている。
例えば、カメラ6からUDP(User Datagram Protocol)により画像が転送される場合、LANポート20にてパケットの取りこぼしが無いように配慮し、どの処理よりも最優先でパケットを画像に変換する必要がある。
なお、基板用カメラ4もLANポートを設けて増設可能としても良い。
各部品用カメラ6(増設した部品用カメラ6を含む、以下、同様)は、それぞれ非同期に撮像を行い、それぞれの入力回路3を介して個別の画像メモリ7に画像データを記憶することができる。
また、図示を省略しているが、基板用カメラ4,4も非同期に撮像を行い、それぞれの入力回路を介して個別の画像メモリに画像データを記憶することができる。
そして、各画像メモリ7は、出力回路5を介してモニタ16に接続されており、各カメラ4,6により撮像した画像データを表示することができる。
また、画像入力部15では、撮像処理以外に、演算制御回路9を用いて、画像メモリ7に記憶された画像データに対して、フィルタ演算やマッチング演算などの大量の繰り返しの演算処理を制御CPU11と並列で高速に動作させることが可能である。即ち、これらの繰り返し演算処理は制御CPU11に負荷がかからないようになっている。
そして、各カメラ6からのデータは、各画像メモリ7に格納されるのと並列して、演算制御回路9にてデータ処理が行われ、制御CPU11がアクセス可能な作業用メモリ10にデータ転送されるようになっている。
画像撮像の指令は、制御CPU11が出す。各カメラ6に撮像させる撮像要求を出した後、制御CPU11は、上述の撮像、及びデータ転送処理中は別の作業を行うことが可能である。
演算制御回路9で行うデータ処理は、撮像時だけでなく、制御CPU11の指令で、いつでも各画像メモリ7のデータに対して行うことができる。
制御CPU11は、作業用メモリ10のデータ処理中においても、演算制御回路9を制御して並列処理を行うことで効率良く作業を進めることができる。
また、マシン制御装置13からの処理要求は、コマンドとして、インターフェイス12を介して画像処理装置19に送信され、画像処理装置19での処理結果がレスポンスとして、マシン制御装置13に返信される。
図4は電子部品Cの撮像に関する主要な構成を示した説明図、図5は撮像方式の説明図であって図5(A)は電子部品のストップ撮像における平面図、図5(B)は基板マークのストップ撮像における平面図、図5(C)は電子部品のノンストップ撮像における平面図、図5(D)は基板マークのノンストップ撮像における平面図である。
画像処理装置19に接続された部品用カメラ6の上部に照明装置8が設けられ、撮像時には点灯するよう画像処理装置19により制御される。
マシン制御装置13は、撮像対象となる電子部品Cを各吸着ノズル108に電子部品フィーダ101からピックアップし、吸着保持した後、各吸着ノズル108を備えるヘッド106を制御して、部品用カメラ6の上に移動させ、撮像を行う。
撮像方式として、静止撮像としてのストップ撮像と移動撮像としてのノンストップ撮像の2つをサポートする。
図5(A)に示すように、ストップ撮像は、部品用カメラ6上で対象物である電子部品Cを静止させ、照明装置8を点灯させ、画像処理装置19に撮像を指示する。
また、ノンストップ撮像は、あらかじめ画像処理装置19に撮像タイミングを示すX軸モータのエンコーダカウンタ値をセットしておき、エンコーダパルスを画像処理装置19に入力し、図5(C)に示すように、ヘッド106の移動により設定されたカウント値になったら、画像処理装置19が照明装置8を点灯させ、部品用カメラ6による撮像を実行する。
即ち、ストップ撮像は、図5(B)に示すように、基板マークM上で基板用カメラ4を静止させ、照明装置を点灯させ、画像処理装置19に撮像を指示する。
また、ノンストップ撮像は、あらかじめ画像処理装置19に撮像タイミングを示すX軸モータのエンコーダカウンタ値をセットしておき、エンコーダパルスを画像処理装置19に入力し、図5(D)に示すように、ヘッド106の移動により設定されたカウント値になったら、画像処理装置19が照明装置を点灯させ、基板用カメラ4による撮像を実行する。
画像処理装置19は画像撮像を最優先し、マシンの動きに合わせて所望の画像を取りこぼさないようにしている。
また、ノンストップ撮像においては、複数の電子部品Cについて個別にマシン制御装置13から画像処理装置19に認識コマンドを出すものとし、認識コマンド順序が各電子部品Cの搭載順を示すものとする。
これにより、例えば、各吸着ノズル108の並び順と各電子部品Cの搭載の順番が一致している場合には、画像処理装置19は連続処理される複数の電子部品Cが順番に撮像されると、個々の電子部品Cについてその搭載の順番を識別することができ、例えば、搭載の順番に従って認識の優先順位が定められているような場合には、これに応じた認識処理を実行することができる。
また、画像処理装置19は、認識対象物の種別や端子数等のデータから、制御CPU11による撮像画像の認識処理に要する画像認識処理時間の予測が可能である。
このとき、画像処理装置19が、連続処理される複数の電子部品Cについて、マシン制御装置13から搭載の順番だけでなく、最後の電子部品の画像撮像完了から個々の電子部品Cの搭載位置までの移動時間という相対的なタイミング情報が受け渡される事で、ヘッド移動に支障をきたさない程度に余裕を持ったタスクのスケジューリングが可能となる。また、複数のカメラによる複数の画像入力系統の処理についても、それぞれの系統の第1の撮像がすべて完了した時点で複数の画像入力系統の処理をひとつの時間軸に並べることができるようになる。
即ち、最後の電子部品Cの画像撮像完了の時刻と相対的なタイミング情報とにより、個々の電子部品Cがそれぞれの搭載位置に到達する時刻(目標とする画像認識終了時刻)を算出することが可能である。
これにより、図3に示すように複数の画像入力系統について、非同期に撮像タイミングが重なり又は時間的に近接し、複数の認識処理を行わなければならない場合に、先の側の認識処理のスケジューリングの余裕時間になるべく影響を与えずに後の側の認識処理を割り込ませていき、複数の画像入力系統に対して、効率的に認識処理を実行することができる。この効率的な認識処理については図13の例により後述する。
次に、画像処理装置19において、画像認識のために制御CPU11により実行されるプログラムのタスク構成を図6に示す。これにより、上記タスク構成について説明する。
図6に示すタスク構成は、主に、コマンド管理を行う「タスク割り当て手段」としてのコマンド受付タスク34と、認識処理を行う三つの認識処理タスク37〜39と、サブルーチンモジュールである画像入力API(Application Program Interface)35と、タイマ割込みを処理するハンドラのボディ部であるタイマ処理46と、撮像終了割り込みを処理するハンドラのボディ部である割込み処理36とから成る。なお、認識処理タスクの個体数は、処理の数に応じて増減することが可能である。
また、図6の符号45はコマンド管理ブロック、47は画像入力ステータス管理ブロックを示している。
取り込みが完了するとUDP画像認識タスク51を呼び出し、画像処理を実施後、認識結果を取得する。
図3のマシン制御装置13から画像処理装置19への撮像とその撮像画像の認識処理とを実行させる要求は図6に示すコマンド30として通知される。
コマンド受付タスク34は、コマンド30を受信すると、コマンド管理ブロック45を参照し、タスクのリソースを獲得して、受け付けたコマンドを登録する。
そして、獲得した認識処理タスク37(又は38又は39)に対してコマンド30を送信し、起床させる。そして、コマンド受付タスク34は、次のコマンド待ち状態となる。
これにより、コマンド受付タスク34は「前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て手段」として機能し、当該機能の実行により「タスク割り当て工程」が実行される。
ハード演算処理を行う場合、コマンド処理時間に対してするハード演算処理時間の推定値の割合であるハード演算占有率を同時に求めておいてもよい。コマンド処理時間、ハード演算処理時間の推定値、及びハード演算占有率は、同じく、作業用メモリ10(図3)内のコマンド管理ブロック45に保持しておく。
図7は認識処理タスク37〜39が実行する処理種別毎の優先順位の一例を示す図表である。
認識処理タスク37〜39が実行する処理種別毎の優先順位は高、中、低の3レベルで段階的に定義され、処理種別と撮像方法の種類とによって優先順位が割り当てられている。優先順位のレベルや割り当てのルールは使用するRTOS(real time operation system)の仕様、実装するアプリケーションの仕様に合わせて、自由に設定することができるが、ここでは、画像処理装置19において採用されている一例を説明する。
なお、優先順位が同じタスクが複数存在する場合には、処理が可能となった順番に実行される。例えば、ノンストップ撮像の場合には、対応する撮像が完了した順番でタスクが実行される。
図7に示す優先順位の設定に従って、実行タスクの切り替えは、RTOSの機能を用いて実現する。
各認識処理タスク37〜39は、いずれも、休止状態から実行可能状態に遷移すると、図8のような優先順位別のキューにつながれ、管理される。優先順位が同じタスクについては、基本的に先に実行可能状態になった順番につながれる。即ち、この画像処理装置19の例では、撮像が終了した順番に応じてキューにつながれて、同じ優先順位の中での優先度がさらに定められる。
図8ではUDP画像認識タスク51の優先順位を「高」とした場合を図示しているがこれに限らない。例えば、ノンストップ撮像による部品又はマーク認識タスクの優先順位「高」とUDP画像変換タスク50の優先順位「最優先」との間に新たな優先順位を新規設定し、当該優先順位にUDP画像認識タスク51のキューをつないで、他の認識タスクよりも高順位で処理を実施しても良い(図8では図示しない)。
例えば、キューの順番入れ替えだけでなく、同一優先レベル内で優先度に差をつけることが可能となる。
これにより、上記制御CPU11は、「前記優先順位内での認識処理の優先度をさらに定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先度設定手段」として機能し、「前記実行可能キューへの認識処理タスクの接続順位を並び替える際に、認識処理タスクがハード演算を含むか否かを判定し、ハード演算を含み、前記演算処理部との並列処理が可能な認識処理タスクについて、ハード演算占有率が高いものほど優先度を高くして並び替える」処理を行う。また、これらを実行することにより、「優先度設定工程」が実行されることとなる。
そして、RTOSは、ディスパッチ要求があると、最も優先順位の高く、その中でもキューの最も先頭につながれたタスク(例えば、図8における左上のタスク)を実行状態へと遷移させる。
ノンストップ撮像における3つの撮像認識のコマンド要求が連続して投入されると、コマンド受付タスク34はコマンド管理ブロック45の参照、タスクのリソースの獲得、受け付けたコマンドの登録の処理を繰り返す(時刻t1〜t2)。
これにより、認識処理タスク37、38及び39は、撮像認識コマンドを受信した順番に実行可能状態となり、それぞれのタスクの実行内容に基づく優先順位によって、実行状態となるタスクが決定することになる。いずれのタスクも優先順位が同じである場合には、基本的に先に実行可能状態となっているタスクが優先される。つまり、各認識処理タスク37〜39は、画像撮像が完了した順に処理されることになる。
なお、上述のように各認識処理タスク37〜39について当初は最も高い優先順位が設定されるが、認識処理タスク37の画像データが取得されると、処理種別及び撮像方法によって定められた優先順位に再設定される。このような優先順位の再設定は、カメラを複数使用する場合にも同様に行われる。即ち、制御CPU11は、「前記複数の要求に基づくそれぞれの撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定手段」として機能する。また、当該機能により「第一の設定工程」が実行される。
また、このように連続して画像撮像要求を出す場合、最初の撮像である第1画像データ撮像が行われると(時刻t3〜t4)、その終了時にのみ割込み通知要求を設定し(時刻t4)、二番目以降の撮像終了時(時刻t7,t10)についてはあえて割込み通知要求を設定しない。
画像入力API35での処理は、ハードウエアのキックとその返答待ちである。画像入力API35は、サブルーチンとして呼び出されるので、認識処理タスクとして動作する。
画像入力API35を呼び出した時点で既に画像撮像が終了していれば、そのまま処理は続行されるが、画像撮像を行う場合、認識処理タスクは画像撮像が終了するまでは、休止状態となる。
このタイミングでタスクのディスパッチ処理が動作し、複数の認識処理タスクが実行可能であった場合、優先順位の高いタスクに切り替わる。
図9の場合は、時刻t5において、他に実行可能なタスクが存在しないので(認識処理タスク38,39は画像データを取得していないので)、これらの処理は行われず、そのまま、認識処理タスク37が実行される。
一方、画像入力部15は制御CPU11と並行処理が可能であるため、第2画像データ撮像処理が第1画像認識処理中に実行される(時刻t6〜t7)。
そして、認識処理結果を示すレスポンスが生成されたならば、コマンド受付タスク34に送信され、図3の画像処理装置19からマシン制御装置13へとレスポンス31が受け渡されることになる。
これらの過程において、画像認識処理が次の画像データ撮像の完了より早く終了しない限り、第2画像データ、第3画像データの撮像終了時に撮像通知割込みは発生しないので、同じ優先順位のタスク間での遷移は起こらない。
また、図11において後述するが、低優先順位のタスクが待ち時間の経過とともに優先順位を上げて、タイムアウトエラーを防止する仕組みとして、コマンド管理ブロック45に登録された各コマンド別に、コマンド経過時間と待ち時間を管理するようにし、タイマ処理にて、時間の更新を行い、それぞれの時間を評価し、必要に応じて、優先順位の再設定、及びタスク切り替えのリクエストを発行する。
それでは、各タスクと処理モジュールの動作を順を追って説明する。図10に認識処理タスク37〜39による処理のフローチャートを例示する。
認識処理タスク37〜39は、迅速に画像撮像を行えるように、ステップS1のコマンド解析とステップS2の画像撮像要求とについては、コマンド受付タスク34に次いで高い優先順位で動作させる。
演算処理部18は、前述したように、処理種別毎の優先順位を予め定めて記憶しており(図7参照)、これが参照される。
そして、画像撮像ステータス取得の処理では、画像入力API35の撮像ステータスI/Fを呼び出す(ステップS3)。
そして、撮像完了の有無を判定し(ステップS4)、撮像が終了していない場合には撮像完了待ちとなり(ステップS5)、休止状態になる。また、撮像が終了した場合には、図6に示す割込み処理36にて起床される。撮像完了の有無をチェック(ステップS4)で撮像が終了いれば、そのまま処理が続行される。
即ち、制御CPU11は、「複数の要求に基づくそれぞれの撮像完了時に認識処理タスクの優先順位を設定又は更新する設定手段」としての処理を行う。
ここで一旦、タスク切り替え要求を出し(ステップS7)、続いて、認識処理を行い(ステップS8)、認識処理終了後再度、タスク切り替え要求を出す(ステップS9)。なお、ステップS1〜S9の処理は、カメラを複数使用する場合も基本的には同様である。そして、ステップS9の処理を行うことにより制御CPU11は、「前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理手段」として機能し、「進行管理工程」を実行する。
また、タスク切り替え要求を行う(ステップS7、S9)際は、図6のコマンド管理ブロック45を参照し、登録コマンドが自身のみであるとか、自身が最も高い優先順位であるとか、タスク切り替えが発生し得ない状況であることが明確な場合は、システムコールの呼び出しは行わないようにする。
図6に示すタイマ処理46について、図11のフローチャートに基づいて説明する。このタイマ処理46では、優先順位の低いことが原因でいつまでも順番が回ってこないタスクについて、その待ち時間が予め設定された時間を超過した場合に優先順位を高くする処理が行われる。
このタイマ処理46は周期タイマハンドラに登録され、一定周期毎に呼び出される。例えば、この画像処理装置19では、最初の認識処理タスク37による処理が開始されると、それ以降1[ms]毎に呼び出されるものとする。
次に、コマンド管理ブロック45へのコマンド登録数の回数分だけ、ステップS13〜S20の工程のループ処理を行ったか否かを判定する(ステップS12)。コマンド登録数の回数分の処理が完了した場合には、タイマ処理46を終了する。
そして、ステップS11で取得したIDと比較し、実行中か否かを判定する(ステップS14)。
実行中でなければ、待ち時間を更新し(ステップS15)、予め設定しておいた判定時間と更新された待ち時間とを比較し、さらにコマンドを受け付けてからの経過時間も考慮して優先順位再設定が必要か否かを判定する(ステップS16)。
さらに、設定された優先順位をチェックし(ステップS18)、再設定の結果、「高」まで優先順位が上がっていた場合には、そのタスクの緊急度が高くなっているものと判断し、この時点でタスク切り替え要求を出す(ステップS19)。
最後に、カレントポジションを次エントリへ進めて(ステップS20)、ループ先頭のステップS12に戻る。
即ち、制御CPU11は、上記ステップS13〜S15の処理により、「撮像とその撮像画像の認識処理とを実行させる要求を受け付けてからの経過時間を計時する計時手段」として機能する。なお、この「計時手段」としての処理は、撮像完了からその撮像画像の認識処理の開始までの待ち時間を計時する構成としてもよい。
また、制御CPU11は、上記ステップS16,S17の処理により、「前記経過時間又は待ち時間が規定時間を超えると、前記撮像画像の認識処理の開始を待つ認識処理タスクの優先順位を上げるように再設定するタスク再設定手段」として機能する。
次に、二機のヘッド106により並行して電子部品Cの搭載を実行する場合にノンストップ撮像を行った場合の例について説明する。図12は二軸時のノンストップ撮像のタイミングチャートを示している。
2つのヘッド106,106がそれぞれ3つの電子部品を保持しており、ほぼ同時に撮像が行われるよう、それぞれについてコマンド送信された場合の動きを記述している。図12では一方のヘッド106をフロントヘッド、他方のヘッド106をリアヘッドと記述する。
各ヘッド106,106が部品用カメラ6,6の上を通過する時刻t4のタイミングで、それぞれの画像撮像が行われる。画像入力部15は、図3に示したように、2系統の入力回路3,3及び画像メモリ7,7を備えているので、それぞれの系統での同時撮像が可能となっている。また、画像入力部15は、制御CPU11と独立したハードモジュールであるので、画像撮像と認識処理が並列で行うことができる。
そして、これら2系統の撮像は同時刻の時刻t4〜t5、t7〜t9、t10〜t12に実行される。
認識処理は、初回の撮像終了の時刻t5の撮像通知割込みをトリガに開始される。
2軸なので認識処理タスクは計6つ用意され、それぞれ優先順位は同じである。
まずは、割込み通知のあったフロントヘッドの第1画像認識処理が実行される(時刻t5)。この画像処理装置19では、認識処理の終了時(時刻t8)に、画像撮像状況を調べて、次に実行すべき認識処理タスクに制御を渡すようにする。
時刻t8において、実行可能状態にあるのは、リアヘッドの第1画像認識処理のみであるのでこの処理が実行される。
その間、各ヘッド106,106の第2画像データ撮像が行われ(時刻t7〜t9)、リアヘッド106の第1画像の認識終了時の時刻t11では、フロント、リアの第2画像認識処理が実行可能状態になっている。図中では同時刻に画像撮像が終了しているが、先に待ちキューにつながれた方を優先して、フロントの第2画像認識処理(時刻t11〜t13)、リアの第2画像認識処理(時刻t13〜t14)の順で処理される。これらの間に、各ヘッド106,106の第3画像データ撮像が行われ(時刻t10〜t12)、リアの第2画像認識処理が終わると、フロントの第3画像認識処理(時刻t14〜t15)、リアの第3画像認識処理(時刻t15〜t16)の順で処理される。
例えば、フロントヘッド、リアヘッド各処理で第2及び第3の部品の搭載時刻が時刻to13、to14、to15、to16であったとする。
図12において、フロントヘッド、リアヘッド各処理で第2及び第3の部品の搭載可能な時刻は、時刻t13、t14、t15、t16であった。
このように、画像データの撮像が完了した順に効率よく認識タスクを処理し、画像処理装置のトータル処理時間を最短で済むようスケジューリングしたとしても、電子部品実装装置としての効率は必ずしも良くはならない場合がある。
各部品の搭載時刻to13〜to16は、コマンドパラメータとして、図3のマシン制御装置13から受け渡されるものとする。搭載時刻to13〜to16は、それぞれのヘッドの第1画像データの撮像開始時刻を0とした相対時刻で表現される。これら搭載時刻to13〜to16はコマンド毎に図3の作業用メモリ10内のコマンド管理ブロック45(図6)に保持される。
まず、フロントヘッドの第1の部品の撮像完了時t5にフロントヘッド側の認識処理のスケジューリングが完成する。このとき、リアヘッドでの認識処理が発生するかどうかはまだ分からないので、図12に示すタイミングチャートのように画像撮像が完了した順にスケジューリングされることになる。その後、リアヘッドの第1の部品の撮像完了のイベントを受け取り(図ではt5となっているが厳密には若干t5よりも遅れる)、フロントヘッド、リアヘッドで並列して動作しなければならないことが分かる。
それぞれの認識タスクについて、画像認識処理時間と搭載時刻から処理の開始を遅延させることが可能な余裕時間を割り出す。
割り出された余裕時間分だけ処理の開始を遅延させた結果、他の認識タスクと処理が重なる場合には、搭載時刻からの遅延時間が最小になるようにキューの接続順序を入れ替え、さらに必要に応じて、2つのタスクについて同一優先順位のレベル内で優先度に差をつけるようにし、スケジュール制御を行う。
例えば、図13の例では、フロントヘッドの第2及び第3画像処理について余裕時間分だけ処理の開始を遅延させるだけでは、リアヘッドの第2及び第3画像処理と処理が重なりを生じるが、フロントヘッドの第2画像処理とリアヘッドの第2画像処理、フロントヘッドの第3画像処理とリアヘッドの第3画像処理のそれぞれについて、キューの接続順序を入れ替え、同一優先レベル内で優先度に差をつけることにより処理の順番の入れ替えることにより、全ての画像処理が各々の搭載時刻までに終了し、ヘッドの待ち時間を解消又は低減することが可能となる。
即ち、図13に示すように、リアヘッドとフロントヘッドに対応する複数(二台)のカメラ6,6の中で最後の順番で連続撮像を行うカメラ(リアヘッド側)の連続撮像における最初の撮像(リアヘッドの第1画像データ撮像)の露光完了をトリガとして割込が発生し、認識処理タスクの並び替え(リスケジューリング)を実行する構成とすることが望ましい。なお、カメラ6を三台以上使用する場合には、2番目以降の順番で連続撮像を行うカメラの連続撮像における最初の撮像の露光完了をトリガとして割込が発生し、認識処理タスクの並び替え(リスケジューリング)を実行することが望ましい。
これにより、露光完了からデータ転送完了までの制御CPU11の待ち時間を有効活用でき、より速くリスケジューリングを終えることができる。
また、カメラが3台以上存在し、これらが連続的に撮像行う場合(より厳密には、撮像のタイミングが近いことにより各カメラの撮像画像データの認識処理がタイミング的に重合を生じる場合)には、最後に撮像を行うカメラの第1画像データ撮像における露光時にリスケジューリングを実行する。
図14は、低優先順位のストップ撮像コマンドとノンストップ撮像の重複時のタイミングチャートについて撮像方法・処理種別のみで優先順位の設定をした場合を示したものである。
例えば、フロントヘッド106が、3つの電子部品を保持しており、ノンストップ撮像を行うのとほぼ同時刻にリアヘッド106でストップ撮像コマンドが実行され、ストップ撮像の画像撮像終了の方が早く終了した場合の動きを記述している。
フロントヘッド106については、ノンストップ撮像の要求であるので、3つの撮像要求に関する設定が終了したら、その旨をマシン制御装置13に通知し、フロントヘッド106の移動が開始される。
リアヘッド106については、ストップ撮像の要求である。コマンド送信時には、ヘッド106は既に部品用カメラ6上に位置しているので、撮像要求に続いて、フロントヘッド106より早い時刻t4で撮像が開始される。
一方、フロントヘッドの撮像は時刻t4に遅れて時刻t5〜t8、t10〜t12、t13〜t15に実行される。
認識処理タスクは計4つで、優先順位は、フロントヘッド106の3つが「高」、リアヘッド106の1つが「中」に設定されている。
また、この図14の例のフロントヘッド106の画像認識処理は次の画像撮像終了よりも早く終了し、次の画像認識処理の開始までに空き時間が出来るような場合を事例としている。
その後、時刻t8でフロントヘッド106の第1画像データ撮像が終了し、撮像通知割込みが入る。この時点でフロントヘッド106の第1画像認識処理タスクが実行可能状態となる。2つの実行可能状態の認識処理タスクで優先順位を比較し、実行タスクは、フロントヘッドの第1画像認識処理を行う認識処理タスクに切り替わる。
そして、第1画像認識処理の実行中に、第2画像データ撮像が時刻t10で開始され、時刻t11にフロントヘッドの第1画像認識処理は終了するが、この時点で、第2画像データの撮像は終了していない。そのため、実行可能なリアヘッドの認識処理タスクが再び実行タスクとなる。
しかし、図14に示すように、次の画像処理の画像データが間に合っていない場合(撮像が完了していない場合)には、前の認識処理の終了時、画像撮像状況をチェックした際に、次の認識処理の画像撮像について、撮像通知割込みの発生要求を立てておく。
すると、第2画像データ撮像終了の時刻t12に撮像通知割込みが発生し、実行タスクをリアヘッドの認識処理タスクからフロントヘッドの第2画像認識処理を行う認識処理タスクに切り替えることができる。
このように優先順位が「中」の設定であると、他の認識処理タスクがすべて終了しないと処理の順番が回ってこない。
図15に待ち時間の累積時間により低優先順位のタスクの優先順位を動的に変動させるためのタイマ処理を組み込んだ場合のタイミングチャートを示す。この処理は、前述した図14の処理に図11に示したタイマ処理を組み込んだものであり、各ヘッド106,106の動作自体は図14と同じである。
この図15の処理は、時刻t8〜t11の待ち時間の間に、周期的に実行されるタイマ処理が入ると、リアヘッド106の認識処理タスクに所定時間以上の待ち時間が生じている場合に、その優先順位が再設定され、「中」から「高」に切り替えられる。
そして、このリアヘッド106の画像認識処理の終了時の時刻t14では、第2画像認識処理を実行する認識処理タスクが実行可能となっているので、当該認識処理タスクにタスク切り替えが行われる。
さらに、第2画像認識処理の終了時の時刻t16では、第3画像認識処理を実行する認識処理タスクが実行可能となっているので、当該認識処理タスクにタスク切り替えが行われる。
また、これに伴い、割込処理の発生頻度が低減して、全体の処理時間も短縮される。
なお、この処理では、一般的に実行される周期的に時間の経過を報知するタイマ処理に優先順位の更新機能を持たせているので、発明の課題である割込処理の低減の趣旨に反するものではない。
図16に1軸でノンストップ撮像を行う場合であって、三つの電子部品の搭載の順序を反映させて認識処理を実行する場合のタイミングチャートを示す。
このノンストップ撮像では、第3撮像画像の電子部品Cが最初に搭載され、第2撮像画像の電子部品Cが二番目に搭載され、第1撮像画像の電子部品Cが最後に搭載される場合の認識処理である。この場合、搭載に順番を反映すると、いずれも処理の優先順位は「高」であるが、その中でも、優先順位が、第3撮像画像>第2撮像画像>第1撮像画像となる。
ヘッド106の動作が図11の例と同じように制御される場合に、上述の有せ印順位を適用すると、まず、撮像要求が行われ(時刻t1〜t2)、撮像の順番に従って第1画像データ撮像が行われる(時刻t3〜t4)。
撮像終了時には、撮像通知割込が入り、割込処理が行われる結果、処理が可能な状態である第1画像認識処理を実行する認識処理タスクの処理が開始される(時刻t5)。
この時、第1画像認識処理の処理時間の長く、その実行中に第2画像データ撮像(時刻t6〜t7)と第3画像データ撮像(時刻t8〜t9)とが完了した場合、第3画像データ撮像の終了時の優先順位の更新において、第3画像認識処理の認識処理タスクが、タスクキューに対して、第2画像認識処理の認識処理タスクより前につながれた状態となる。
従って、第1画像認識処理が終了すると(時刻t10)、第3画像認識処理の認識処理タスクにタスクが切り替えられる。
さらに、第3画像認識処理が終了すると(時刻t11)、第2画像認識処理の認識処理タスクにタスクが切り替えられ、時刻t12で処理全体が終了する。
上記画像処理装置19は、複数の撮像認識コマンドに基づいて撮像とその撮像画像の認識処理とを行う際に、撮像終了時に認識処理タスクの優先順位を更新し、認識処理タスクの認識終了毎に優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する。
これにより、一の認識処理が終了したときに、次に実行可能に認識処理タスクが存在すれば割込処理を介することなく次に認識処理につなぐことができ、割り込み通知、タスク切り替えを最小限に止め、OSのオーバーヘッド、キャッシュの入れ替え処理を削減することで、作業効率を向上することが可能となる。
さらに、処理待ち時間の経過に合わせて認識処理タスクの優先順位を上げることで、低優先順位の処理のタイムアウトを防止できる。
また、ノンストップ撮像する対象物について、撮像順に認識される場合に限らず、認識順を制御できるタスク管理手段を設けたことで、軸の搭載点までの移動時間を含めた範囲で効率良く、各部品の認識時間の配分ができ、システム全体として効率向上を図ることができる。なお、この場合、認識の順番を全ての電子部品Cについて搭載の順番に従わせる場合に限らず、一部の電子部品Cのみについて、例えば、最初に搭載が行われる電子部品のみについて認識を優先するというような補正を行うことも可能である。
また、認識の順番を全ての電子部品Cについて搭載の順番に従わせる場合には、よりきめ細かな認識順の制御が可能となり、理屈的には最後の搭載点までの移動時間をフルに使って、各部品の認識時間の配分ができ、システム全体として効率向上を図ることができる。
例えば、図17は、図12のリアヘッド第1画像認識処理がハード演算を含むように変わった場合のタイミングチャートを示している。
リアヘッド第1画像認識処理(t8〜t13)に含まれるハード演算実行区間(t10〜t11)は、制御CPU11の空き時間となり、この時間(t10〜t11)にフロントヘッド第2認識処理を実行することができ、t18の終了時間をt10〜t11の時間だけ短縮することが可能となる。
上記複数のカメラ6,6による連続撮像を行った場合に、個々の撮像の何れかは目標とする画像認識処理終了時刻に対する余裕時間を生じる場合があるので(例えば図13のフロントヘッドにおける第2及び第3画像認識処理)、余裕時間を生じる撮像の認識処理タスクと遅延を生じる撮像の認識処理タスク(例えば図13のリアヘッドにおける第2及び第3画像認識処理)の接続順位をそれぞれ入れ替えることで、いずれの認識処理タスクも遅延を解消する場合がある。
特に上記のリスケジューリングでは、複数のカメラ6,6の中で最後の順番で連続撮像を行うカメラ6(リアヘッド側)の連続撮像における最初の撮像(第1画像データ撮像)の露光完了をトリガとして、遅延時間の合計を低減させるための認識処理タスクの並び替えを実行するので、撮像完了を待たずに並び替える認識処理タスクの組み合わせを探索する処理を開始することができ、認識処理のトータルでの処理時間をさらに短くすることが可能となる。
6 部品用カメラ
7 画像メモリ
11 制御CPU
15 画像入力部
18 演算処理部
19 画像処理装置
34 コマンド受付タスク(タスク割り当て手段)
35 画像入力API(撮像要求部)
37〜39 認識処理タスク
C 電子部品(対象物)
Claims (6)
- 演算処理部と、
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記演算処理部は、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求部と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て手段とを有し、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、
前記複数の要求に基づくそれぞれの撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定手段と、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理手段と、
前記優先順位内での認識処理の優先度をさらに定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先度設定手段を備え、
前記優先度設定手段は、前記実行可能キューへの認識処理タスクの接続順位を並び替える際に、認識処理タスクがハード演算を含むか否かを判定し、ハード演算を含み、前記演算処理部との並列処理が可能な認識処理タスクについて、ハード演算占有率が高いものほど優先度を高くして並び替えることを特徴とする画像処理装置。 - 演算処理部と、
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記演算処理部は、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求部と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て手段とを有し、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置において、
前記複数の要求に基づくそれぞれの撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定手段と、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理手段と、
認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を並び替える接続順位補正手段を備え、
前記接続順位補正手段は、
前記複数の要求に基づくそれぞれの撮像画像の認識処理に要する画像認識処理時間及び前記複数の要求に基づくそれぞれの撮像画像の認識処理について目標とする画像認識処理終了時刻とに基づいて、前記複数の要求に基づくそれぞれの撮像画像の認識処理の遅延時間を求め、それぞれの前記遅延時間の合計が低減するように認識処理タスクを並び替えることを特徴とする画像処理装置。 - 前記接続順位補正手段は、
前記複数のカメラの中で2番目以降の順番で連続撮像を行うカメラの連続撮像における最初の撮像の露光完了をトリガとして認識処理タスクの並び替えを実行することを特徴とする請求項2記載の画像処理装置。 - 演算処理部と、
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求工程と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て工程と、
前記複数の要求に基づく毎回の撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定工程とを備え、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理工程と、
前記優先順位内での認識処理の優先度をさらに定め、認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を前記優先度に応じて並び替える優先度設定工程とを備え、
前記優先度設定工程は、前記実行可能キューへの認識処理タスクの接続順位を並び替える際に、認識処理タスクがハード演算を含むか否かを判定し、ハード演算を含み、前記演算処理部との並列処理が可能な認識処理タスクについて、ハード演算占有率が高いものほど優先度を高くして並び替えることを特徴とする画像処理方法。 - 演算処理部と、
当該演算処理部と並列処理可能であって複数のカメラが接続される画像入力部と、
画像データを格納する画像メモリとを備え、
前記複数のカメラが非同期に連続撮像して得られる複数の画像データを処理する画像処理装置が行う画像処理方法において、
撮像とその撮像画像の認識処理とを実行させる複数の要求に応じて前記カメラに撮像させる撮像要求を行う撮像要求工程と、
前記複数の要求に対して認識処理タスクを割り当てるタスク割り当て工程と、
前記複数の要求に基づく毎回の撮像完了時に前記認識処理タスクの優先順位を設定又は更新する設定工程とを備え、
前記認識処理タスクの認識終了毎に前記優先順位に従って、次に実行すべき認識処理タスクを選定し、当該次の認識処理タスクに移行する進行管理工程と、
認識処理タスクの実行順を記憶する実行可能キューへの認識処理タスクの接続順位を並び替える接続順位補正工程を備え、
前記接続順位補正工程は、
前記複数の要求に基づくそれぞれの撮像画像の認識処理に要する画像認識処理時間及び前記複数の要求に基づくそれぞれの撮像画像の認識処理について目標とする画像認識処理終了時刻とに基づいて、前記複数の要求に基づくそれぞれの撮像画像の認識処理の遅延時間を求め、それぞれの前記遅延時間の合計が低減するように認識処理タスクを並び替えることを特徴とする画像処理方法。 - 前記接続順位補正工程は、
前記複数のカメラの中で2番目以降の順番で連続撮像を行うカメラの連続撮像における最初の撮像の露光完了をトリガとして認識処理タスクの並び替えを実行することを特徴とする請求項5記載の画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051290A JP6075912B2 (ja) | 2013-03-14 | 2013-03-14 | 画像処理装置及び画像処理方法 |
CN201410096426.1A CN104052926B (zh) | 2013-03-14 | 2014-03-14 | 图像处理装置以及图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051290A JP6075912B2 (ja) | 2013-03-14 | 2013-03-14 | 画像処理装置及び画像処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014178801A true JP2014178801A (ja) | 2014-09-25 |
JP6075912B2 JP6075912B2 (ja) | 2017-02-08 |
Family
ID=51505259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013051290A Active JP6075912B2 (ja) | 2013-03-14 | 2013-03-14 | 画像処理装置及び画像処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6075912B2 (ja) |
CN (1) | CN104052926B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020100652A1 (ja) * | 2018-11-14 | 2020-05-22 | 日本電信電話株式会社 | 処理要求管理装置、処理要求管理方法及びプログラム |
JP2020197886A (ja) * | 2019-06-03 | 2020-12-10 | 日立オートモティブシステムズ株式会社 | 制御装置および制御方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017017733A1 (ja) * | 2015-07-24 | 2017-02-02 | 富士通株式会社 | 製造工程管理システム、製造工程管理方法および製造工程管理プログラム |
CN106453834B (zh) * | 2016-09-07 | 2019-08-27 | 努比亚技术有限公司 | 移动终端和相机拍摄方法 |
KR102527925B1 (ko) * | 2017-11-29 | 2023-05-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
JP2019161249A (ja) * | 2018-03-07 | 2019-09-19 | Juki株式会社 | 画像処理装置、実装装置、画像処理方法、プログラム |
JP6890101B2 (ja) * | 2018-04-13 | 2021-06-18 | 日東電工株式会社 | 画像識別装置、及び画像識別装置を備える物品製造装置 |
WO2019216131A1 (ja) * | 2018-05-11 | 2019-11-14 | 富士フイルム株式会社 | 撮影システム |
JP7405564B2 (ja) * | 2019-11-06 | 2023-12-26 | Juki株式会社 | 画像処理装置、ミシン、及び画像処理方法 |
CN110913138B (zh) * | 2019-11-28 | 2021-03-02 | Oppo广东移动通信有限公司 | 连拍方法、装置、终端及计算机可读存储介质 |
TWI800983B (zh) | 2021-11-16 | 2023-05-01 | 華碩電腦股份有限公司 | 影像處理方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62284437A (ja) * | 1986-05-31 | 1987-12-10 | Nec Corp | タスク管理方式 |
US5394548A (en) * | 1992-10-09 | 1995-02-28 | Fujitsu Limited | Multi-media scheduling system |
JPH0816410A (ja) * | 1994-06-29 | 1996-01-19 | Natl Aerospace Lab | スケジュール制御装置とその方法 |
JPH1123240A (ja) * | 1997-06-30 | 1999-01-29 | Matsushita Electric Ind Co Ltd | 部品認識方法、部品認識装置、及び部品装着装置 |
JP2003135451A (ja) * | 2001-10-31 | 2003-05-13 | Toshiba Corp | 医用画像撮影装置 |
JP2006065844A (ja) * | 1995-10-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | ファイルシステム |
JP2007509549A (ja) * | 2003-10-24 | 2007-04-12 | インターナショナル・ユニヴァーシティ・ブレーメン・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング | 予約インジケータを用いたセル間干渉緩和技術 |
JP2007102399A (ja) * | 2005-10-03 | 2007-04-19 | Seiko Epson Corp | データ処理装置 |
JP2010185998A (ja) * | 2009-02-12 | 2010-08-26 | Nikon Corp | 撮像素子および撮像装置 |
WO2012082421A1 (en) * | 2010-12-13 | 2012-06-21 | Advanced Micro Devices, Inc. | Accessibility of graphics processing compute resources |
JP2013025823A (ja) * | 2011-07-18 | 2013-02-04 | Apple Inc | 仮想gpu |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232401A (ja) * | 1998-02-10 | 1999-08-27 | Dainippon Printing Co Ltd | カード情報書換装置 |
JP2007074425A (ja) * | 2005-09-07 | 2007-03-22 | Juki Corp | カメラ切替システム |
-
2013
- 2013-03-14 JP JP2013051290A patent/JP6075912B2/ja active Active
-
2014
- 2014-03-14 CN CN201410096426.1A patent/CN104052926B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62284437A (ja) * | 1986-05-31 | 1987-12-10 | Nec Corp | タスク管理方式 |
US5394548A (en) * | 1992-10-09 | 1995-02-28 | Fujitsu Limited | Multi-media scheduling system |
JPH0816410A (ja) * | 1994-06-29 | 1996-01-19 | Natl Aerospace Lab | スケジュール制御装置とその方法 |
JP2006065844A (ja) * | 1995-10-26 | 2006-03-09 | Matsushita Electric Ind Co Ltd | ファイルシステム |
JPH1123240A (ja) * | 1997-06-30 | 1999-01-29 | Matsushita Electric Ind Co Ltd | 部品認識方法、部品認識装置、及び部品装着装置 |
JP2003135451A (ja) * | 2001-10-31 | 2003-05-13 | Toshiba Corp | 医用画像撮影装置 |
JP2007509549A (ja) * | 2003-10-24 | 2007-04-12 | インターナショナル・ユニヴァーシティ・ブレーメン・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツング | 予約インジケータを用いたセル間干渉緩和技術 |
JP2007102399A (ja) * | 2005-10-03 | 2007-04-19 | Seiko Epson Corp | データ処理装置 |
JP2010185998A (ja) * | 2009-02-12 | 2010-08-26 | Nikon Corp | 撮像素子および撮像装置 |
WO2012082421A1 (en) * | 2010-12-13 | 2012-06-21 | Advanced Micro Devices, Inc. | Accessibility of graphics processing compute resources |
JP2013025823A (ja) * | 2011-07-18 | 2013-02-04 | Apple Inc | 仮想gpu |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020100652A1 (ja) * | 2018-11-14 | 2020-05-22 | 日本電信電話株式会社 | 処理要求管理装置、処理要求管理方法及びプログラム |
JP2020080119A (ja) * | 2018-11-14 | 2020-05-28 | 日本電信電話株式会社 | 処理要求管理装置、処理要求管理方法及びプログラム |
US11893417B2 (en) | 2018-11-14 | 2024-02-06 | Nippon Telegraph And Telephone Corporation | Process request management apparatus, process request management method and program |
JP2020197886A (ja) * | 2019-06-03 | 2020-12-10 | 日立オートモティブシステムズ株式会社 | 制御装置および制御方法 |
JP7236939B2 (ja) | 2019-06-03 | 2023-03-10 | 日立Astemo株式会社 | 制御装置および制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104052926A (zh) | 2014-09-17 |
JP6075912B2 (ja) | 2017-02-08 |
CN104052926B (zh) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6075912B2 (ja) | 画像処理装置及び画像処理方法 | |
KR102450528B1 (ko) | 애플리케이션을 인식하는 효율적인 io 스케줄러 시스템 및 방법 | |
US8521930B1 (en) | Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment | |
JP2005508550A (ja) | ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置 | |
JP2007053271A (ja) | 電子部品実装方法 | |
CN103493440B (zh) | 集成电路装置和执行直通转发的方法 | |
CN113179227B (zh) | 基于队列的at指令控制方法 | |
EP2988583A1 (en) | Substrate working device, substrate working method, and substrate working system | |
JP2010016115A (ja) | 部品実装方法 | |
CN112540605A (zh) | 多机器人协作通关方法、服务器、机器人及存储介质 | |
JP2009238873A (ja) | 部品実装方法 | |
JP2013142949A (ja) | 画像処理装置及び画像処理方法 | |
JP5130030B2 (ja) | 電子部品装着装置 | |
JP6448766B2 (ja) | 実装装置及び実装方法 | |
CN111752638A (zh) | 自动化控制平台及自动化平台控制方法 | |
JP5969789B2 (ja) | 電子部品実装装置 | |
CN111930488B (zh) | 一种操作系统任务调度的优先级继承方法及系统 | |
JP6139948B2 (ja) | 部品実装装置 | |
JP5794856B2 (ja) | 電子部品装着装置、および、電子部品装着方法 | |
CN112165562B (zh) | 搬运过程中的物体拍照方法和装置 | |
CN105763856B (zh) | 高速图像采集处理方法及系统 | |
JP3762519B2 (ja) | 部品認識方法、部品認識装置、及び部品装着装置 | |
JP2024011267A (ja) | メンテナンス通知システム及び制御方法 | |
JP7474988B2 (ja) | 部品実装システム及び部品実装機の制御方法 | |
JP7088809B2 (ja) | ワーク作業装置、ワーク作業システム、及び、ワーク作業装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6075912 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |