(57)【要約】【課題】重複できない処理を同時に実行しないように、設定された各処理を実行することができる画像処理装置を提供する。【解決手段】画像処理装置は、予め準備された複数の処理項目から処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを備える。画像処理装置は、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、並列化項目および多段化項目３５２，３５４を指定可能に構成されている。画像処理装置は、並列化項目の実行順序が到来すると、当該並列化項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始し、多段化項目３５２，３５４の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、多段化項目３５２，３５４に関連付けられている処理項目集合３６０，３７０，３８０の各々の処理を順次開始する。【選択図】図４
2018005501.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
処理設定に従って画像処理を実行する実行制御部と、
予め準備された複数の処理項目から前記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供する設定部とを備え、
前記設定部は、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されており、
前記実行制御部は、
前記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始し、
前記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始する、画像処理装置。
【請求項２】
前記ユーザインターフェイスは、前記第２順序指定項目が、当該第２順序指定項目に関連付けられている複数の処理項目集合よりも上層になるように、前記第２順序指定項目と当該処理項目集合とを階層的に表示する、請求項１に記載の画像処理装置。
【請求項３】
前記第２順序指定項目は、当該第２順序指定項目に関連付け得る処理項目集合の範囲を定める開始処理項目と終了処理項目とで構成されており、
前記設定部は、前記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、前記開始処理項目と前記終了処理項目との間に設定された処理項目集合の各々の処理を順次開始する、請求項１または２に記載の画像処理装置。
【請求項４】
前記複数の処理項目は、検査対象物を撮像して得られた画像内において、当該検査対象物を表わす領域をサーチする処理を含む、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記複数の処理項目は、前記画像処理装置に接続され得る撮像部から画像を取得する処理を含む、請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記予め定められた信号は、前記撮像部が撮像中であるか否かを示し、
前記予め定められた条件は、前記撮像部が撮像中である状態から前記撮像部が撮像中でない状態に移行したことにより満たされる、請求項５に記載の画像処理装置。
【請求項７】
処理設定に従って画像処理を実行する画像処理方法であって、
予め準備された複数の処理項目から前記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供するステップを備え、前記ユーザインターフェイスは、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されており、さらに、
前記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始するステップと、
前記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始するステップとを備える、画像処理方法。
【請求項８】
処理設定に従って画像処理を実行する画像処理プログラムであって、
前記画像処理プログラムは、コンピュータに、
予め準備された複数の処理項目から前記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供するステップを実行させ、前記ユーザインターフェイスは、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されており、さらに、
前記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始するステップと、
前記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理の実行順序を指定することが可能な画像処理装置、画像処理方法、および画像処理プログラムに関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークなどの検査対象物を自動で検査するための技術が普及している。当該技術に関し、特開２０１５−２３２４７９号公報（特許文献１）は、照明光源でワークを照らすことによりワークを検査するための検査装置を開示している。
【０００３】
ワークの検査処理は、様々な画像処理の組み合わせによって実現される。このような画像処理の組み合わせをユーザ自身で設定するためのユーザインターフェイスを提供するアプリケーションが開発されている。当該アプリケーションに関し、特開２０１４−２０３３０９号公報（特許文献２）は、「ユーザが有している特定のアプリケーション画像処理についての知識を利用して、より効率かつ高速な画像処理を実現できる」画像処理装置を開示している。特許文献２によれば、ユーザは、異なる画像処理が定義された複数の処理項目の中から所望の処理項目を選択し、当該処理項目をユーザインターフェイス上に並べて配置し、その並び順に応じた実行順序に従って各処理項目が実行される。ユーザは、処理項目の組み合わせを変えることで任意の検査処理を実現することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２３２４７９号公報
【特許文献２】特開２０１４−２０３３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＦＡ分野においては、ワークを連続的に検査するために、ワークの撮像処理と得られた画像に対する所定の画像処理との一連の処理が繰り返し実行されることがある。特許文献２によれば、ユーザは、当該一連の処理の各々を並列処理させるように処理項目を組み合わせることができる。当該一連の処理の各々を並列処理したときに、１つの撮像部に対して複数の撮像処理を重複させないことが望まれている。すなわち、重複できない処理を同時に実行しないように、設定された各処理を実行することが望まれている。
【課題を解決するための手段】
【０００６】
ある局面に従うと、画像処理装置は、処理設定に従って画像処理を実行する実行制御部と、予め準備された複数の処理項目から上記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供する設定部とを備える。上記設定部は、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されている。上記実行制御部は、上記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始し、上記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始する。
【０００７】
好ましくは、上記ユーザインターフェイスは、上記第２順序指定項目が、当該第２順序指定項目に関連付けられている複数の処理項目集合よりも上層になるように、上記第２順序指定項目と当該処理項目集合とを階層的に表示する。
【０００８】
好ましくは、上記第２順序指定項目は、当該第２順序指定項目に関連付け得る処理項目集合の範囲を定める開始処理項目と終了処理項目とで構成されている。上記設定部は、上記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、上記開始処理項目と上記終了処理項目との間に設定された処理項目集合の各々の処理を順次開始する。
【０００９】
好ましくは、上記複数の処理項目は、検査対象物を撮像して得られた画像内において、当該検査対象物を表わす領域をサーチする処理を含む。
【００１０】
好ましくは、上記複数の処理項目は、上記画像処理装置に接続され得る撮像部から画像を取得する処理を含む。
【００１１】
好ましくは、上記予め定められた信号は、上記撮像部が撮像中であるか否かを示す。上記予め定められた条件は、上記撮像部が撮像中である状態から上記撮像部が撮像中でない状態に移行したことにより満たされる。
【００１２】
他の局面に従うと、処理設定に従って画像処理を実行する画像処理方法は、予め準備された複数の処理項目から上記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供するステップを備える。上記ユーザインターフェイスは、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されている。上記画像処理方法は、さらに、上記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始するステップと、上記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始するステップとを備える。
【００１３】
他の局面に従うと、処理設定に従って画像処理を実行する画像処理プログラムは、コンピュータに、予め準備された複数の処理項目から上記処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供するステップを実行させる。上記ユーザインターフェイスは、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる、第１順序指定項目および第２順序指定項目を指定可能に構成されている。上記画像処理プログラムは、上記コンピュータに、さらに、上記第１順序指定項目の実行順序が到来すると、当該第１順序指定項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始するステップと、上記第２順序指定項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該第２順序指定項目に関連付けられている複数の処理項目集合の各々の処理を順次開始するステップとを実行させる。
【発明の効果】
【００１４】
ある局面において、重複できない処理を同時に実行しないように、設定された各処理を実行することができる。
【００１５】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１６】
【図１】画像処理装置を含む画像処理システムの全体構成を示す概略図である。
【図２】画像処理装置の機能構成を示す模式図である。
【図３】画像処理装置が提供する処理設定作成に係るユーザインターフェイスを示す図である。
【図４】画像処理装置が提供する撮像処理の多段化に係るユーザインターフェイスの一例を示す図である。
【図５】多段処理のフローを表わす図である。
【図６】図５に示される処理フローに伴う各コアへの処理の割り当ての推移を示す図である。
【図７】取得処理が重複している様子を示す図である。
【図８】図５および図６に示される多段処理の実行により撮像されるワークを示す図である。
【図９】画像処理装置が提供する処理の並列化に係るユーザインターフェイスの一例を示す図である。
【図１０】並列処理のフローを表わす図である。
【図１１】並列処理時において各コアに割り当てられている処理を時系列に示す図である。
【図１２】画像処理装置に実装される画像処理プログラムの構成を示す模式図である。
【図１３】画像処理装置が設定モードにおいて実行する設定処理を表わすフローチャートである。
【図１４】画像処理装置が測定モードにおいて実行する測定処理を表わすフローチャートである。
【図１５】応用例に従う画像処理装置が提供する撮像処理の多段化に係るユーザインターフェイスの一例を示す図である。
【図１６】複数の多段化項目が設定された場合の処理フローを示す図である。
【図１７】図１６に示される処理フローに伴う各コアへの処理の割り当ての推移を示す図である。
【図１８】本応用例に従う多段処理で撮像されているワークＷを示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各変形例は、適宜選択的に組み合わされてもよい。
【００１８】
＜Ａ．画像処理システム１の構成＞
まず、本発明の実施の形態に係る画像処理装置１００を含む画像処理システム１の全体構成について説明する。図１は、本実施の形態に係る画像処理装置１００を含む画像処理システム１の全体構成を示す概略図である。
【００１９】
図１を参照して、画像処理システム１は、主要なコンポーネントとして、視覚センサとも称される画像処理装置１００と、画像処理装置１００に接続された撮像部８と、画像処理装置１００と通信可能なＰＬＣ（Programmable Logic Controller）５とを含む。一例として、表示部１０２と一体的に構成された画像処理装置１００を示す。
【００２０】
画像処理装置１００は、生産ラインなどに組み込まれ、検査対象物（以下、「ワークＷ」ともいう。）上の欠陥や汚れの有無の検査、ワークＷの大きさや配置向きなどの計測、ワークＷ表面上の文字や図形などの認識といった画像処理を実行する。すなわち、画像処理装置１００は、ワークＷを撮像することで生成された画像データに対する画像処理を実行する。画像処理システム１においては、ワークＷはベルトコンベヤなどの搬送機構６によって搬送され、撮像部８によって順次撮像される。ＰＬＣ５は、画像処理装置１００と連係して、搬送機構６などの制御を実行する。
【００２１】
撮像部８は、一例として、レンズなどの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサといった、複数の画素に区画された撮像素子を含んで構成される。撮像部８による撮像によって取得された画像データ（以下、「カメラ画像」ともいう。）は、画像処理装置１００へ伝送される。そして、画像処理装置１００は、撮像部８により撮像されたカメラ画像に対して画像処理を行う。撮像部８によって撮像されるワークＷに対して光を照射する照明装置をさらに設けてもよい。より多くの撮像部８を接続できるように画像処理装置１００を構成してもよい。
【００２２】
画像処理装置１００は、撮像部８からのカメラ画像に対して予め設定された画像処理を実行するための「測定モード」と、画像処理の内容を設定や調整するための「設定モード」とを少なくとも有している。「設定モード」において、ユーザは、画像処理を実現するための処理項目およびその実行順序などを画像処理装置１００に対して設定できる。この画像処理に係る設定手順などの詳細については後述する。
【００２３】
＜Ｂ．画像処理装置１００の構成＞
次に、図１に示す画像処理システム１に含まれる画像処理装置１００の全体構成について説明する。図２は、本実施の形態に係る画像処理装置１００の機能構成を示す模式図である。
【００２４】
図２を参照して、画像処理装置１００は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の画像処理を実現する。
【００２５】
より具体的には、画像処理装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１１０と、ＲＡＭ（Random Access Memory）１１２と、表示コントローラ１１４と、システムコントローラ１１６と、Ｉ／Ｏ（Input Output）コントローラ１１８と、ハードディスク１２０と、カメラインターフェイス１２２と、入力インターフェイス１２４と、ＰＬＣインターフェイス１２６と、通信インターフェイス１２８と、メモリカードインターフェイス１３０とを含む。これらの各部は、システムコントローラ１１６を中心として、互いにデータ通信可能に接続される。
【００２６】
プロセッサ１１０は、複数の処理部に相当する複数のプロセッサコア（コア１１０Ａ〜１１０Ｄ）を有する。プロセッサ１１０は、システムコントローラ１１６との間でプログラム（コード）などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
【００２７】
コア１１０Ａ〜１１０Ｄは、互いに独立して命令を実行可能である。プロセッサ１１０に実装されるコアの数は、４個に限られず、技術的に実現可能な範囲の複数個であればよい。図２には、単一のプロセッサ内に複数のコアが実装されている構成（いわゆる、マルチコアプロセッサシステム）を示すが、複数のプロセッサを実装する構成（いわゆる、マルチプロセッサシステム）を採用してもよい。さらに、マルチプロセッサシステムを構成するプロセッサの一部または全部がマルチコアプロセッサシステムを採用していてもよい。すなわち、本実施の形態に係る画像処理装置は、互いに独立して処理を実行可能な複数の処理部を有していれば、どのようなアーキテクチャを採用してもよい。
【００２８】
システムコントローラ１１６は、プロセッサ１１０、ＲＡＭ１１２、表示コントローラ１１４、およびＩ／Ｏコントローラ１１８とそれぞれバスを介して接続されており、各部との間でデータ交換などを行うとともに、画像処理装置１００全体の処理を司る。
【００２９】
ＲＡＭ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１２０から読み出されたプログラムや、撮像部８によって取得されたカメラ画像（画像データ）、カメラ画像に対する処理結果、およびワークデータなどを保持する。
【００３０】
表示コントローラ１１４は、表示部１０２と接続されており、システムコントローラ１１６からの内部コマンドに従って、各種の情報を表示するための信号を表示部１０２へ出力する。表示部１０２は、一例として、液晶ディスプレイや有機ＥＬ（Electro Luminescence）ディスプレイや有機ＥＬなどを含む。
【００３１】
Ｉ／Ｏコントローラ１１８は、画像処理装置１００に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、Ｉ／Ｏコントローラ１１８は、ハードディスク１２０と、カメラインターフェイス１２２と、入力インターフェイス１２４と、ＰＬＣインターフェイス１２６と、通信インターフェイス１２８と、メモリカードインターフェイス１３０と接続される。
【００３２】
ハードディスク１２０は、典型的には、不揮発性の磁気記憶装置であり、プロセッサ１１０で実行される画像処理プログラム１５０に加えて、各種設定値などが格納される。このハードディスク１２０にインストールされる画像処理プログラム１５０は、メモリカード１０６などに格納された状態で流通する。さらに、ハードディスク１２０には、カメラ画像が格納される。なお、ハードディスク１２０に代えて、フラッシュメモリなどの半導体記憶装置やＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）などの光学記憶装置を採用してもよい。
【００３３】
カメラインターフェイス１２２は、ワークＷ（検査対象物）を撮像することで生成された画像データを受け付ける入力部に相当し、プロセッサ１１０と撮像部８との間のデータ伝送を仲介する。より具体的には、カメラインターフェイス１２２は、１つ以上の撮像部８と接続が可能であり、プロセッサ１１０からカメラインターフェイス１２２を介して撮像部８に撮像指示が出力される。これにより、撮像部８は、被写体を撮像し、生成された画像をカメラインターフェイス１２２を介してプロセッサ１１０に出力する。
【００３４】
入力インターフェイス１２４は、プロセッサ１１０とキーボード１０４、マウス、タッチパネル、専用コンソールなどの入力装置との間のデータ伝送を仲介する。すなわち、入力インターフェイス１２４は、ユーザが入力装置を操作することで与えられる操作指令を受け付ける。
【００３５】
ＰＬＣインターフェイス１２６は、プロセッサ１１０とＰＬＣ５との間のデータ伝送を仲介する。より具体的には、ＰＬＣインターフェイス１２６は、ＰＬＣ５によって制御される生産ラインの状態に係る情報やワークＷに係る情報などをプロセッサ１１０へ伝送する。
【００３６】
通信インターフェイス１２８は、プロセッサ１１０と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス１２８は、典型的には、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）などからなる。なお、後述するように、メモリカード１０６に格納されたプログラムを画像処理装置１００にインストールする形態に代えて、通信インターフェイス１２８を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置１００にインストールしてもよい。一例として、通信インターフェイス１２８は、撮像部８の状態を表わす信号を撮像部８やＰＬＣ５などから受信する。当該信号は、撮像部８が撮像中であるか否かを示す。
【００３７】
メモリカードインターフェイス１３０は、プロセッサ１１０と記録媒体であるメモリカード１０６との間のデータ伝送を仲介する。すなわち、メモリカード１０６には、画像処理装置１００で実行される画像処理プログラム１５０などが格納された状態で流通し、メモリカードインターフェイス１３０は、このメモリカード１０６から画像処理プログラム１５０を読み出す。また、メモリカードインターフェイス１３０は、プロセッサ１１０の内部指令に応答して、撮像部８によって取得されたカメラ画像および／または画像処理装置１００における処理結果などをメモリカード１０６へ書き込む。なお、メモリカード１０６は、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記録媒体や、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体等からなる。
【００３８】
上述のような汎用的なコンピュータアーキテクチャに従う構造を有するコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係る画像処理プログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、ＯＳと協働して処理が実行される場合もある。したがって、本実施の形態に係る画像処理プログラムとしては、このような一部のモジュールを含まない形態であってもよい。
【００３９】
さらに、本実施の形態に係る画像処理プログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る画像処理プログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００４０】
なお、代替的に、画像処理プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００４１】
＜Ｃ．概要＞
本実施の形態に係る画像処理装置１００は、異なる処理が予め定義されている複数の処理項目の内から任意の処理項目の選択を受け付けるユーザインターフェイスを提供する。ユーザは、ユーザインターフェイスにおいて任意の処理項目を選択および配置することができる。画像処理装置１００は、選択された処理項目の組み合わせおよび配置の並び順に従った実行順序で各処理項目を実行する。処理項目の設定によって定義される画像処理の内容を、以下では「処理設定」とも称する。すなわち、「処理設定」は、ユーザの入力により選択された処理項目の組み合わせを意味する。なお、本明細書における処理項目は、特定の用途を有する機能単位（「処理項目」または「ユニット」）であり、各処理項目について、処理対象および処理結果を特定することができるようになっている。
【００４２】
本実施の形態に係る画像処理装置１００においては、ユーザの知見を利用して画像処理をより効率化かつ高速化できるように、目的の画像処理を構成する処理項目の並列的な実行をより簡単に設定するためのユーザインターフェイスが提供される。並列化対象の処理項目は、特定の処理項目によって関連付けられることにより指定される。このような、並列化対象の処理項目を指定するための項目を、以下では「並列化項目」とも称する。
【００４３】
また、本実施の形態においては、１つの撮像部に対する撮像処理が重複しないように画像の取得処理を順次実行しつつ、後続の画像処理を並列化するように処理項目の実行順序を指定することができる。このような実行順序を指定するための項目を、以下では「多段化項目」とも称する。多段化項目が各処理項目に設定されることで、重複できない撮像処理が順次実行されつつ、後続の画像処理は並列処理される。このような多段化項目の設定によって実行される処理を、以下では「多段処理」ともいう。
【００４４】
並列化項目だけでなく、多段化項目が設定できることで、画像処理の設計の自由度がさらに改善される。すなわち、通常、画像の取得処理と後続の画像処理との一連の処理に対しては、撮像処理が重複するため並列化項目を設定できない。この場合、ユーザは、一連の処理の各々を直列的に実行することとなる。しかしながら、本実施の形態に従う画像処理装置１００には、画像の取得処理を順次実行しつつ、後続の各画像処理を並列化するための多段化項目が予め準備されている。そのため、任意のタイミングで撮像処理を実行することができ、かつ、後続の画像処理については処理時間を短縮することができる。
【００４５】
＜Ｄ．処理設定を作成するためのユーザインターフェイス＞
次に、本実施の形態に係る画像処理装置１００が提供する処理設定作成に係るユーザインターフェイスについて説明する。図３は、本実施の形態に係る画像処理装置１００が提供する処理設定作成に係るユーザインターフェイス３００を示す図である。
【００４６】
画像処理装置１００は、図３に示されるように、予め定義された複数の処理項目のうち画像データに対する画像処理に用いる１つ以上の処理項目の選択、およびその選択された処理項目の実行順序の指定を受け付けるためのユーザインターフェイス３００を少なくとも提供する。一例として、選択可能な処理項目の１つには、画像処理装置１００に接続され得る撮像部８（図１参照）から画像を取得するための取得処理が定義されている。また、選択可能な処理項目の１つには、検査対象物を撮像して得られた画像内において、当該検査対象物を表わす領域をサーチするための画像処理が定義されている。
【００４７】
より具体的に、ユーザが目的の画像処理を実現するための処理設定を作成する手順について説明する。ユーザインターフェイス３００は、設定済項目表示領域３０２と、処理項目選択領域３０４と、カメラ画像表示領域３０６と、処理項目挿入／追加ボタン３０８と、実行順序入替ボタン３１０とを含む。設定済項目表示領域３０２には、現在設定されている処理設定の内容がグラフィカルに表示される。処理項目選択領域３０４には、追加可能な処理項目を示すアイコンがその名称とともに一覧表示される。
【００４８】
ユーザは、ユーザインターフェイス３００の処理項目選択領域３０４において、目的の画像処理に必要な処理項目を選択する（（１）処理項目を選択）とともに、設定済項目表示領域３０２において選択した処理項目を追加すべき位置（順序）を選択する（追加位置）。そして、ユーザが処理項目挿入／追加ボタン３０８を選択する（（３）挿入／追加ボタンを押す）と、処理項目が追加される（（４）処理項目が追加される）。処理項目追加後の処理設定の内容は、設定済項目表示領域３０２に反映される。
【００４９】
ユーザは、この処理を適宜繰り返すことで目的の画像処理を実現するための処理設定を作成する。また、ユーザは、処理設定の作成中または作成完了後に、設定済項目表示領域３０２において処理項目を選択した上で、実行順序入替ボタン３１０を選択することで、実行順序を適宜変更することもできる。
【００５０】
このような操作によって、ユーザは、目的の画像処理に必要な処理設定を作成できる。この処理設定の作成は、設定モードにおいて実行される。
【００５１】
その後、測定モードにおいて指示されると、指定された処理設定の実行が開始される。より具体的には、処理設定の作成が完了する（典型的には、作成された処理設定が保存される）と、その保存された処理設定に対応する命令列が生成される。この命令列がプロセッサにおいて実行されることで、目的の画像処理が実現される。なお、この命令列は、プロセッサに与えられるネイティブコードであってもよいし、ＯＳやミドルウェアに対して与えられる内部コマンドであってもよいし、これらを混合したものであってもよい。すなわち、画像処理装置１００は、対話処理によって受け付けられた画像処理についての設定に従って、複数のプロセッサコア（処理部）に対する命令列を生成する。
【００５２】
＜Ｅ．多段処理＞
（Ｅ１．多段化項目）
次に、画像の取得処理の重複しないように後続の画像処理を並列化するための上述の多段化項目について詳細に説明する。ユーザインターフェイス３００において、ユーザは、多段化対象の処理項目を明示的に設定することができる。多段化対象の処理項目は、多段化項目に関連付けられることにより指定される。多段化項目は、ユーザインターフェイス３００の処理項目選択領域３０４に表示される処理項目の一つとして予め準備されている。
【００５３】
図４は、本実施の形態に係る画像処理装置１００が提供する撮像処理の多段化に係るユーザインターフェイスの一例を示す図である。ステップＳ１に示されるように、初期状態においては処理項目が設定されてない。この状態において、処理項目選択領域３０４に表示される多段化項目のアイコンをユーザが選択することで、ステップＳ２に示されるように、多段化ブロック３５０が設定済項目表示領域３０２に追加される。
【００５４】
多段化ブロック３５０は、多段処理の開始を示す多段化項目３５２と、多段処理の終了を示す多段化項目３５４との組を含む。多段化項目３５２と多段化項目３５４との間には、複数の多段化タスクを設定することができる。多段化ブロック３５０に含まれる多段化タスクの数は、ユーザによって任意に変更され得る。すなわち、ユーザの操作によって、指定された多段化ブロック３５０に対して、多段化タスクの追加または削除が行われる。図４の例では、多段化項目３５２，３５４の間に３つの多段化タスク３６２，３７２，３８２が設定されている。
【００５５】
各多段化タスクには、任意の処理項目を追加することができる。たとえば、ステップＳ３に示されるように、多段化タスク３６２には、撮像部から画像を取得するための取得項目３６４と、当該画像からワークなどの検査対象物をサーチする画像処理項目３６６とが処理項目集合３６０として追加されている。多段化タスク３７２には、取得項目３７４と画像処理項目３７６とが処理項目集合３７０として追加されている。多段化タスク３８２には、取得項目３８４と画像処理項目３８６とが処理項目集合３８０として追加されている。このように、各多段化タスクには、１つ以上の処理項目の組み合わせからなる処理項目集合が関連付けられる。１つの処理項目集合は、単一のプロセッサコアで直列的に順次実行される処理項目の集合を表わす。
【００５６】
図４に示されるように、多段化ブロック３５０は、典型的には、ツリー構造を用いて階層的に表示される。一例として、ユーザインターフェイス３００は、多段化項目３５２，３５４を処理項目集合３６０，３７０，３８０よりも上層になるように表示する。これにより、ユーザは、多段化対象の処理項目集合を容易に把握することができる。
【００５７】
また、処理項目集合３６０，３７０，３８０のそれぞれに関連付けられている各処理項目は、同一の階層になるように表示される。これにより、ユーザは、直列的に処理される処理項目を容易に把握することができる。
【００５８】
（Ｅ２．多段処理のフロー）
測定モードにおいて、画像処理装置１００は、ユーザインターフェイス３００に設定された多段化項目に基づいて、当該多段化項目に関連付けられている処理項目集合の各々を多段処理する。より具体的には、画像処理装置１００は、多段化項目の実行順序が到来すると、予め定められた信号が予め定められた条件を満たす度に、当該多段化項目に関連付けてられている複数の処理項目集合の各々の処理を順次開始する。
【００５９】
以下では、図５および図６を参照して、このような多段処理のフローについて説明する。図５は、多段処理のフローを表わす図である。図６は、図５に示される処理フローに伴う各コアへの処理の割り当ての推移を示す図である。
【００６０】
上述の図４で説明した通り、ユーザインターフェイス３００において、撮像部８から画像を取得するための取得処理と、得られた画像内から検査対象物をサーチする画像処理との一連の処理項目集合３６０，３７０，３８０が多段処理対象として設定されているとする。画像処理装置１００は、次の撮像開始を示すトリガー信号をＰＬＣ５（図１参照）から受け付ける度に、多段化項目３５２（開始処理項目）と多段化項目３５４（終了処理項目）との間に設定された処理項目集合３６０，３７０，３８０の各々の処理を順次開始する。
【００６１】
典型的には、撮像部８が撮像中であるか否かがＰＬＣ５によって定期的に撮像部８に問い合わされ、ＰＬＣ５は、撮像部８が撮像中で無いことを確認した上で必要なタイミングで次の撮像処理の開始を示すトリガー信号を画像処理装置１００に送信する。典型的には、ＰＬＣ５は、撮像部８が撮像中である状態から撮像部８が撮像中でない状態になったことに基づいて、撮像処理の開始を示すトリガー信号を画像処理装置１００に送信する。画像処理装置１００は、当該トリガー信号をＰＬＣ５から受信する度に、多段処理対象の処理項目集合の実行を開始する。すなわち、画像処理装置１００は、撮像部８が撮像中である状態から撮像部８が撮像中でない状態に移行する度に、多段処理対象の処理項目集合を順次実行する。
【００６２】
より具体的な処理フローとして、時刻Ｔ１において、多段化項目の実行順序が到来すると、画像処理装置１００は、ＰＬＣ５（図１参照）から出力されるトリガー信号を受け付けたことに基づいて、処理項目集合３６０の取得処理３１Ａをコア１１０Ａに割り当てる。すなわち、画像処理装置１００は、外部設定としての多段化項目の実行開始タイミングが到来すると、処理項目集合３７０の取得処理３１Ｂ（第２取得処理）の実行開始に先立って、処理項目集合３６０の取得処理３１Ａ（第１取得処理）の実行を開始する。
【００６３】
時刻Ｔ２において、取得処理３１Ａが終了したとする。画像処理装置１００は、取得処理３１Ａの完了に引き続いて、コア１１０Ａでの画像処理３２Ａの実行を開始し、取得処理３１Ａの完了後に、コア１１０Ｂでの取得処理３１Ｂの実行を開始する。より具体的には、画像処理装置１００は、取得処理３１Ａの終了を検知したことに基づいて、取得処理３１Ａをコア１１０Ａに割り当てる。また、画像処理装置１００は、撮像の開始を示すトリガー信号を外部装置としてのＰＬＣ５から受信したことに基づいて、コア１１０Ｂでの取得処理３１Ｂの実行を開始する。このように、取得処理３１Ａ，３１Ｂがトリガー信号に基づいて順次実行されることで、１つの撮像部に対する撮像処理が重複することを防ぐことができる。また、画像処理３２Ａおよび取得処理３１Ｂについては並列処理されるので、処理時間が短縮される。
【００６４】
トリガー信号について具体的に説明する。ＰＬＣ５は、撮像部８が撮像中の状態を監視し、撮像部８が撮像中であるか否かを撮像部８に定期的に問い合わす。ＰＬＣ５は、撮像部８が撮像中である状態から撮像部８が撮像中でない状態になったことに基づいて、撮像処理の開始を示すトリガー信号を画像処理装置１００に送信する。画像処理装置１００は、外部装置としてのＰＬＣ５から当該トリガー信号受信すると、コア１１０Ｂでの取得処理３１Ｂの実行を開始する。
【００６５】
時刻Ｔ３において、取得処理３１Ｂが終了したとする。画像処理装置１００は、取得処理３１Ｂが終了したことに基づいて、後続の画像処理３２Ｂと、取得処理３１Ｃとの実行を開始する。すなわち、画像処理装置１００は、画像処理３２Ａが完了したか否かに関わらず、取得処理３１Ｂの完了に引き続いて画像処理３２Ｂを実行するとともに、取得処理３１Ｃの実行を開始する。より具体的には、画像処理装置１００は、画像処理３２Ｂをコア１１０Ｂに割り当てる。また、画像処理装置１００は、撮像の開始を示すトリガー信号を受け付けたことに基づいて、取得処理３１Ｃをコア１１０Ｃに割り当てる。
【００６６】
時刻Ｔ４において、取得処理３１Ｃが終了したとする。画像処理装置１００は、取得処理３１Ｃの完了に引き続いて、後続の画像処理３２Ｃをコア１１０Ｃに割り当てる。
【００６７】
図７は、取得処理が重複している様子を示す図である。図７に示されるように、取得処理３３Ａが終了する前に取得処理３３Ｂが実行されると、撮像部による撮像処理が重複してしまう。同様に、取得処理３３Ｂが終了する前に取得処理３３Ｃが実行されると、撮像部による撮像処理が重複してしまう。本実施の形態に従うユーザインターフェイス３００においては、撮像処理が重複しないように各画像処理を並列処理するように指定できる多段処理項目が予め準備されているので、撮像処理の重複を防ぐことができる。
【００６８】
図８は、図５および図６に示される多段処理の実行により撮像されるワークＷを示す図である。多段処理により撮像処理が順次実行されるので、撮像部８は、ワークＷの異なる領域を撮像することができる。一例として、多段処理による１回目の撮像処理によりワークＷの領域７０Ａが撮像される。多段処理による２回目の撮像処理によりワークＷの領域７０Ｂが撮像される。多段処理による３回目の撮像処理によりワークＷの領域７０Ｃが撮像される。このように、第１撮像処理に続く画像処理を実行する前に次の第２撮像処理を実行できるので、撮像間隔が短くなり、任意のタイミングで撮像処理が実行される。
【００６９】
以上のように、画像処理装置１００は、多段化項目の実行順序が到来すると、トリガー信号を受け付ける度に、多段化項目に関連付けてられている複数の処理項目集合の各々の処理を順次開始する。なお、上述では、画像処理装置１００がＰＬＣ５からトリガー信号を受け付けたことを条件に、各処理項目集合の取得処理が順に開始される例について説明を行ったが、各処理項目集合の取得処理の開始条件は、これに限定されない。たとえば、画像処理装置１００は、撮像中であるか否かを撮像部８に定期的に問い合わせ、当該問い合わせの応答として得られた信号が撮像部８の撮像中でないことを示したことを条件に、各処理項目集合の取得処理を開始してもよい。あるいは、撮像部８自体が撮像を終了したことを条件にトリガー信号を発してもよい。
【００７０】
＜Ｆ．並列処理＞
（Ｆ１．並列化項目）
次に、処理項目の実行順序を指定するための上述の並列処理について詳細に説明するユーザインターフェイス３００において、ユーザは、並列化対象の処理項目を明示的に設定することができる。多段化対象の処理項目は、並列化項目に関連付けられることにより指定される。並列化項目は、ユーザインターフェイス３００の処理項目選択領域３０４に表示される処理項目の一つとして予め準備されている。
【００７１】
図９は、本実施の形態に係る画像処理装置１００が提供する処理の並列化に係るユーザインターフェイスの一例を示す図である。ステップＳ１１に示されるように、初期状態または何らかの処理項目が設定されている状態において、処理項目選択領域３０４に表示されるアイコンをユーザが選択することで、設定済項目表示領域３０２において、並列化ブロック４５０が処理設定に追加される。
【００７２】
並列化ブロック４５０は、並列処理の開始を示す並列化項目４５２と、並列処理の終了を示す並列化項目４５４との組を含む。並列化項目４５２と並列化項目４５４との間には、複数の並列化タスクを設定することができる。並列化ブロック４５０に含まれる並列化タスクの数は、ユーザによって任意に変更され得る。すなわち、ユーザの操作によって、指定された並列化ブロック４５０に対して、並列化タスクの追加または削除が行われる。図９の例では、並列化項目４５２，４５４の間に２つの並列化タスク４６２，４７２が設定されている。
【００７３】
各並列化タスクには、任意の処理項目を追加することができる。たとえば、ステップＳ３に示されるように、並列化タスク４６２には、画像内において検査対象物を表わす領域をサーチする画像処理項目４６４，４６６が処理項目集合４６０として追加されている。並列化タスク４７２には、画像処理項目４７４，４７６が処理項目集合４７０として追加されている。このように、各並列化タスクには、１つ以上の処理項目の組み合わせからなる処理項目集合が複数関連付けられる。１つの処理項目集合は、単一のプロセッサコアで順次処理される処理項目の集合を表わす。
【００７４】
図９に示されるように、並列化ブロック４５０は、典型的には、ツリー構造を用いて階層的に表示される。一例として、ユーザインターフェイス３００は、並列化項目４５２，４５４を処理項目集合４６０，４７０よりも上層になるように表示する。これにより、ユーザは、並列化対象の処理項目集合を容易に把握することができる。
【００７５】
また、処理項目集合４６０，４７０に関連付けられている各処理項目は、同一の階層になるように表示される。これにより、ユーザは、直列的に処理される処理項目を容易に把握することができる。
【００７６】
（Ｆ２．並列処理のフロー）
測定モードにおいて、画像処理装置１００は、ユーザインターフェイス３００に設定された並列化項目に基づいて、当該並列化項目に関連付けられている処理項目集合の各々を並列処理する。より具体的には、画像処理装置１００は、並列化項目（第１順序指定項目）の実行順序が到来すると、当該並列化項目に関連付けてられている複数の処理項目集合の各々の処理を同時に開始する。
【００７７】
以下では、図１０および図１１を参照して、並列処理のフローについて説明する。図１０は、並列処理のフローを表わす図である。図１１は、並列処理時において各コアに割り当てられている処理を時系列に示す図である。
【００７８】
時刻Ｔ１１において、並列化項目の実行順序が到来すると、画像処理装置１００は、処理項目集合４６０の画像処理４１Ａをコア１１０Ａに割り当てるとともに、処理項目集合４７０の画像処理４２Ａをコア１１０Ｂに割り当てる。すなわち、画像処理装置１００は、外部設定としての並列化項目の実行開始タイミングが到来すると、画像処理４１Ａおよび画像処理４２Ａを並列処理する。
【００７９】
時刻Ｔ１２において、画像処理４１Ａが終了したとする。画像処理装置１００は、画像処理４１Ａの完了に引き続いて、後続の画像処理４２Ａをコア１１０Ａに割り当て、画像処理４２Ａの実行を開始する。このように、１つの処理項目集合４６０として設定されている画像処理４１Ａ，４２Ａは直列的に順次実行される。
【００８０】
時刻Ｔ１３において、画像処理４１Ｂが終了したとする。画像処理装置１００は、画像処理４１Ｂの完了に引き続いて、後続の画像処理４２Ｂをコア１１０Ｂに割り当て、画像処理４２Ｂの実行を開始する。このように、１つの処理項目集合４７０として設定されている画像処理４１Ｂ，４２Ｂは直列的に順順次実行される。
【００８１】
＜Ｇ．画像処理プログラムの機能構成＞
次に、本実施の形態に係る画像処理プログラムの機能構成について説明する。図１２は、本実施の形態に係る画像処理装置１００に実装される画像処理プログラム１５０の構成を示す模式図である。
【００８２】
図１２を参照して、画像処理プログラム１５０は、基本的なコンポーネントとして、設定部１５２と、実行制御部１５４と、ライブラリ１６０とを含む。
【００８３】
設定部１５２は、予め準備された複数の処理項目から処理設定１７０に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定を受け付けるユーザインターフェイスを提供する。すなわち、設定部１５２は、ユーザ操作に従って、ユーザが所望の画像処理の処理設定１７０を作成するための対話型のユーザインターフェイスを提供する。より具体的には、設定部１５２は、上述の図３，４，９に示されるようなユーザインターフェイスを表示部１０２に表示するとともに、ユーザ操作に従って処理設定１７０を生成する。生成された処理設定１７０は、ＲＡＭ１１２（図２参照）などに確保されたワーク領域に一時的に格納される。
【００８４】
実行制御部１５４は、設定部１５２が受け付けた処理項目の設定（処理設定１７０）に従って各処理項目を実行する。より具体的には、実行制御部１５４は、並列化項目の実行順序が到来した場合には、当該並列化項目に関連付けられている複数の処理項目集合の各々の処理を同時に開始する。また、実行制御部１５４は、多段化項目の実行順序が到来した場合にはと、撮像の開始を示すトリガー信号を受け付ける度に、当該多段化項目に関連付けてられている複数の処理項目集合の各々の処理を順次開始する。実行制御部１５４は、並列化項目や多段化項目などの実行順序の指定項目が関連付けられていない処理項目については、処理設定１７０に設定された処理順に従って直列的に順次実行する。
【００８５】
典型的には、実行制御部１５４は、予め用意されたライブラリ１６０を参照することで、各処理項目に関連付けられている処理を実行する。すなわち、図３に示すユーザインターフェイス３００の処理項目選択領域３０４（図３参照）に一覧表示される処理項目にそれぞれ対応するライブラリプログラムがライブラリ１６０に含まれており、実行制御部１５４は、必要なライブラリプログラムを呼出すことで、指定された処理項目に対応する画像処理を実行する。このようなライブラリ１６０を採用することで、処理項目の追加や改良をより容易に行うことができる。
【００８６】
なお、図１２には、所定設定、スケジュール、および画像処理の実行の全ての処理を実行可能な単一の画像処理プログラム１５０を例示したが、複数のプログラムが連係して、これらの機能を実現するようにしてもよい。たとえば、処理設定および命令列の生成に係る処理については、パーソナルコンピュータ上で実行され、その実行の結果生成される命令列が画像処理装置へ転送されて実行されるという機能を分担するような実装形態を採用することもできる。この場合には、パーソナルコンピュータでは、設定部１５２に相当する部を含むプログラムが実行され、画像処理装置１００では、実行制御部１５４およびライブラリ１６０を含むプログラムが実行されることになる。このような実装形態についても、本発明の技術的範囲に含まれることは自明である。
【００８７】
＜Ｈ．フローチャート＞
図１３および図１４を参照して、画像処理システム１の制御構造について説明する。図１３は、画像処理装置１００が設定モードにおいて実行する設定処理を表わすフローチャートである。図１４は、画像処理装置１００が測定モードにおいて実行する測定処理を表わすフローチャートである。
【００８８】
以下では、設定モードにおける設定処理の制御フローと、測定モードにおける測定処理の制御フローについて順に説明する。
【００８９】
［Ｈ１．設定処理の制御フロー］
まず、図１３を参照して、画像処理装置１００が設定モードにおいて実行する設定処理の制御フローについて説明する。
【００９０】
図１３に示される処理は、たとえば、画像処理装置１００のプロセッサ１１０（図２参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、コントローラ５（図１参照）またはその他のハードウェアによって実行されてもよい。
【００９１】
ステップＳ１１０において、プロセッサ１１０は、処理項目の設定画面を表示するユーザ操作を受け付けたか否かを判断する。プロセッサ１１０は、処理項目の設定画面を表示するユーザ操作を受け付けたと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、プロセッサ１１０は、ステップＳ１１０の処理を再び実行する。
【００９２】
ステップＳ１１２において、プロセッサ１１０は、上述の設定部１５２（図１２参照）として、処理項目を設定するためのユーザインターフェイス３００（図３参照）を提供する。当該ユーザインターフェイス３００は、たとえば、画像処理装置１００の表示部１０２（図１参照）に表示される。
【００９３】
ステップＳ１１４において、プロセッサ１１０は、上述の設定部１５２（図１２参照）として、ユーザインターフェイス３００において、予め準備された複数の処理項目から処理設定に含ませる１つ以上の処理項目の選択、および、選択された処理項目の実行順序の指定をユーザ操作で受け付ける。
【００９４】
ステップＳ１２０において、プロセッサ１１０は、処理設定を保存するための操作を受け付けたか否かを判断する。一例として、プロセッサ１１０は、ユーザインターフェイス３００の保存ボタンが押下を検知した場合に、処理設定を保存するための操作を受け付けたと判断する。プロセッサ１１０は、処理設定を保存するための操作を受け付けた判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、プロセッサ１１０は、制御をステップＳ１１４に戻す。
【００９５】
ステップＳ１２２において、プロセッサ１１０は、ユーザインターフェイス３００に設定された設定項目を処理設定に反映する。これにより、ユーザインターフェイス３００に設定された内容が処理設定として保存される。
【００９６】
［Ｈ２．測定処理の制御フロー］
図１４を参照して、画像処理装置１００が測定モードにおいて実行する測定処理の制御フローについて説明する。
【００９７】
図１４に示される処理は、たとえば、画像処理装置１００のプロセッサ１１０（図２参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、コントローラ５（図１参照）またはその他のハードウェアによって実行されてもよい。
【００９８】
ステップＳ１５０において、プロセッサ１１０は、ワークなどの検査対象物の測定指示を受け付けたか否かを判断する。プロセッサ１１０は、検査対象物の測定指示を受け付けたと判断した場合（ステップＳ１５０においてＹＥＳ）、制御をステップＳ１５２に切り替える。そうでない場合には（ステップＳ１５０においてＮＯ）、プロセッサ１１０は、ステップＳ１５０の処理を再び実行する。
【００９９】
ステップＳ１５２において、プロセッサ１１０は、上述の設定モードで保存された処理設定から最初の処理項目を読み出す。当該処理項目は、ユーザインターフェイス３００の設定済項目表示領域３０２（図３参照）の最上部に設定された処理項目に相当する。
【０１００】
ステップＳ１６０において、プロセッサ１１０は、読み出された処理項目が処理の実行順序を指定するための処理項目（たとえば、並列化項目や多段化項目）であるか否かを判断する。プロセッサ１１０は、読み出された処理項目が処理の実行順序を指定するための処理項目であると判断した場合（ステップＳ１６０においてＹＥＳ）、制御をステップＳ１７０に切り替える。そうでない場合には（ステップＳ１６０においてＮＯ）、プロセッサ１１０は、制御をステップＳ１６２に切り替える。
【０１０１】
ステップＳ１６２において、プロセッサ１１０は、上述の実行制御部１５４（図１２参照）として、読み出された処理項目で定義される処理を実行する。
【０１０２】
ステップＳ１７０において、プロセッサ１１０は、読み出された処理項目が並列化項目であるか否かを判断する。プロセッサ１１０は、読み出された処理項目が並列化項目であると判断した場合（ステップＳ１７０においてＹＥＳ）、制御をステップＳ１７２に切り替える。そうでない場合には（ステップＳ１７０においてＮＯ）、プロセッサ１１０は、制御をステップＳ１８０に切り替える。
【０１０３】
ステップＳ１７２において、プロセッサ１１０は、実行制御部１５４として、並列化項目に関連付けられている処理項目集合の各々をプロセッサ１１０内のコアのいずれかに割り当て、当該処理項目集合の各々を並列処理する。当該並列処理の方法は、図１０，図１１で説明した通りである。
【０１０４】
ステップＳ１８０において、プロセッサ１１０は、読み出された処理項目が多段化項目であるか否かを判断する。プロセッサ１１０は、読み出された処理項目が多段化項目であると判断した場合（ステップＳ１８０においてＹＥＳ）、制御をステップＳ１８２に切り替える。そうでない場合には（ステップＳ１８０においてＮＯ）、プロセッサ１１０は、制御をステップＳ１９０に切り替える。
【０１０５】
ステップＳ１８２において、プロセッサ１１０は、実行制御部１５４として、撮像処理中でないことを示すトリガー信号をＰＬＣ５（図１参照）から受け付ける度に、多段化項目に関連付けてられている複数の処理項目集合の各々の処理を順次開始する。当該多段処理の方法は、図５，図６で説明した通りである。
【０１０６】
ステップＳ１９０において、プロセッサ１１０は、ステップＳ１６２，Ｓ１７２，Ｓ１８２で実行された処理によってワークに対する測定結果が得られたか否かを判断する。プロセッサ１１０は、ワークに対する測定結果が得られたと判断した場合（ステップＳ１９０においてＹＥＳ）、制御をステップＳ１９２に切り替える。そうでない場合には（ステップＳ１９０においてＮＯ）、プロセッサ１１０は、制御をステップＳ２００に切り替える。
【０１０７】
ステップＳ１９２において、プロセッサ１１０は、画像処理装置１００の表示部１０２（図１参照）に測定結果を表示する。表示される測定結果としては、たとえば、検査対象物の寸法に関する検査結果や、検査対象物の外観に関する検査結果などが挙げられる。一例として、ワークがコネクタである場合には、寸法の検査結果として、コネクタのピンの長さが正常であるか否かを示す結果や、コネクタのピン間の距離が正常であるか否かを示す結果などが出力される。外観の検査結果として、コネクタのピン部分に欠陥や汚れがあるか否かを示す結果などが出力される。
【０１０８】
ステップＳ２００において、プロセッサ１１０は、処理設定に含まれる処理項目が全て実行されたか否かを判断する。プロセッサ１１０は、処理設定に含まれる処理項目が全て実行されたと判断した場合（ステップＳ２００においてＹＥＳ）、図１３に示される測定処理を終了する。そうでない場合には（ステップＳ２００においてＮＯ）、プロセッサ１１０は、制御をステップＳ１６０に戻す。
【０１０９】
ステップＳ２０２において、プロセッサ１１０は、処理設定から次に実行する処理項目を読み出す。
【０１１０】
＜Ｉ．応用例＞
次に、本実施の形態に係る画像処理装置１００の応用例について説明する。
【０１１１】
上述では、画像処理装置１００に１つの撮像部８が接続されている前提で説明を行ったが、本応用例においては、画像処理装置１００に複数の撮像部８が接続される。撮像部８が１つである場合には撮像処理を重複させることはできないが、撮像部８が複数ある場合には撮像部８の各々で撮像処理を同時に実行させることができる。本応用例については、複数の撮像部８の各々に多段化処理を実行させるための処理項目が予め準備されている。
【０１１２】
図１５は、応用例に従う画像処理装置１００が提供する撮像処理の多段化に係るユーザインターフェイス３００の一例を示す図である。初期状態または何らかの処理項目（たとえば、画像を取得するための取得項目３５１）が設定されている状態において、処理項目選択領域３０４に表示される手動並列化のアイコンをユーザが選択することで、設定済項目表示領域３０２において多段化ブロック３５０が追加される。
【０１１３】
多段化ブロック３５０は、多段処理の開始を示す多段化項目３５２と、多段処理の終了を示す多段化項目３５４との組を含む。多段化項目３５２と多段化項目３５４との間には、画像処理装置１００に接続され得る撮像部の数を上限として、複数のサブ多段化項目を設定することができる。図１５の例では、サブ多段化項目３５６，３５７で挟まれている多段化タスク３６２，３７２，３８２が第１多段化対象として指定され、サブ多段化項目３５８，３５９で挟まれている多段化タスク３９２，４０２が第２多段化対象として指定されている。
【０１１４】
図１６は、複数の多段化項目が設定された場合の処理フローを示す図である。図１７は、図１６に示される処理フローに伴う各コアへの処理の割り当ての推移を示す図である。なお、上述の図２においてはプロセッサ１１０（図２参照）においては４つのコア１１０Ａ〜１１０Ｄで構成されていたが、以下では、プロセッサ１１０が５つのコア１１０Ａ〜１１０Ｅで構成されているとする。また、画像処理装置１００には、２つの第１撮像部と第２撮像部が接続されているとする。
【０１１５】
図１６に示される取得処理５１Ａおよび画像処理５２Ａは、上述の図１５に示される処理項目集合３６０に相当する。取得処理５１Ｂおよび画像処理５２Ｂは、上述の図１５に示される処理項目集合３７０に相当する。取得処理５１Ｃおよび画像処理５２Ｃは、上述の図１５に示される処理項目集合３８０に相当する。取得処理５１Ｄおよび画像処理５２Ｄは、上述の図１５に示される処理項目集合３９０に相当する。取得処理５１Ｅおよび画像処理５２Ｅは、上述の図１５に示される処理項目集合４００に相当する。
【０１１６】
時刻Ｔ２１において、画像処理装置１００は、第１撮像部が撮像中でないことを示すトリガー信号をＰＬＣ５から受け付けたことに基づいて、コア１１０Ａに取得処理５１Ａを割り当てる。これにより、第１撮像部から画像を取得するための取得処理５１Ａが開始される。
【０１１７】
時刻Ｔ２２において、画像処理装置１００は、第２撮像部が撮像中でないことを示すトリガー信号をＰＬＣ５から受け付けたことに基づいて、取得処理５１Ａの終了を待たずして、コア１１０Ｄに取得処理５１Ｄを割り当てる。これにより、第２撮像部から画像を取得する取得処理５１Ｄが開始される。その結果、第２撮像部における取得処理５１Ｄは、第１撮像部における取得処理５１Ａと並列に処理されることとなる。
【０１１８】
時刻Ｔ２３において、取得処理５１Ａが終了したとする。画像処理装置１００は、取得処理５１Ａの完了に引き続いて、後続の画像処理５２Ａと、取得処理５１Ｂとの実行を同時に開始する。より具体的には、画像処理装置１００は、画像処理５２Ａをコア１１０Ａに割り当てる。また、画像処理装置１００は、第１撮像部における撮像の開始を示すトリガー信号を受け付けたことに基づいて、取得処理５１Ｂをコア１１０Ｂに割り当てる。このように、取得処理５１Ａ，５１Ｂがトリガー信号に基づいて順次実行されることで、第１撮像部で撮像処理が重複することはない。
【０１１９】
時刻Ｔ２４において、取得処理５１Ｄが終了したとする。画像処理装置１００は、取得処理５１Ｄの完了に引き続いて、後続の画像処理５２Ｄと、取得処理５１Ｅとの実行を同時に開始する。より具体的には、画像処理装置１００は、画像処理５２Ｄをコア１１０Ｄに割り当てる。また、画像処理装置１００は、第２撮像部における撮像の開始を示すトリガー信号を受け付けたことに基づいて、取得処理５１Ｅをコア１１０Ｅに割り当てる。このように、取得処理５１Ｄ，５１Ｅがトリガー信号に基づいて順次実行されることで、第２撮像部で撮像処理が重複することはない。
【０１２０】
時刻Ｔ２５において、取得処理５１Ｂが終了したとする。画像処理装置１００は、取得処理５１Ｂの完了に引き続いて、後続の画像処理５２Ｂと、取得処理５１Ｃとの実行を同時に開始する。より具体的には、画像処理装置１００は、画像処理５２Ｂをコア１１０Ｂに割り当てる。また、画像処理装置１００は、第１撮像部における撮像の開始を示すトリガー信号を受け付けたことに基づいて、取得処理５１Ｃをコア１１０Ｃに割り当てる。
【０１２１】
時刻Ｔ２６において、取得処理５１Ｅが終了したとする。画像処理装置１００は、取得処理５１Ｅの完了に引き続いて、後続の画像処理５２Ｅをコア１１０Ｅに割り当て、画像処理５２Ｅの実行を開始する。
【０１２２】
時刻Ｔ２７において、取得処理５１Ｃが終了したとする。画像処理装置１００は、取得処理５１Ｃの完了に引き続いて、後続の画像処理５２Ｃをコア１１０Ｃに割り当て、画像処理５２Ｃの実行を開始する。
【０１２３】
図１８は、本応用例に従う多段処理で撮像されているワークＷを示す図である。第１多段化処理の対象として設定された処理項目集合３６０，３７０，３８０（図１５参照）でワークＷの領域７０Ａ〜７０Ｃが順次撮像される。第２多段化処理の対象として設定された処理項目集合３９０，４００（図１５参照）でワークＷの領域７２Ａ，７２Ｂが順次撮像される。上述のように多段化対象が複数設定されることで、複数の撮像部８Ａ，８Ｂのそれぞれについて任意のタイミングで撮像処理を実行することができる。
【０１２４】
＜Ｊ．利点＞
以上のようにして、画像処理装置１００においては、各処理を並列化するための並列化項目と、撮像の開始を示すトリガー信号を受け付ける度に各処理を順次実行する多段化項目とが予め準備されている。並列化項目だけでなく、多段化項目が設定できることで、画像処理の設計の自由度が改善される。すなわち、通常、画像の取得処理と後続の画像処理との一連の処理に対しては、撮像処理が重複するため並列化項目を設定できない。この場合、ユーザは、一連の処理の各々を直列的に実行することとなる。しかしながら、本実施の形態に従う画像処理装置１００には、撮像の開始を示すトリガー信号を受け付ける度に各一連の処理を順次実行するための多段化項目が予め準備されている。そのため、任意のタイミングで撮像処理を実行することができ、かつ、後続の画像処理については処理時間を短縮することができる。
【０１２５】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１２６】
１  画像処理システム、５  コントローラ、６  搬送機構、８，８Ａ，８Ｂ  撮像部、３１Ａ〜３１Ｃ，３３Ａ〜３３Ｃ，５１Ａ〜５１Ｅ  取得処理、３２Ａ〜３２Ｃ，４１Ａ，４１Ｂ，４２Ａ，４２Ｂ，５２Ａ〜５２Ｅ  画像処理、７０Ａ〜７０Ｃ，７２Ａ，７２Ｂ  領域、１００  画像処理装置、１０２  表示部、１０４  キーボード、１０６  メモリカード、１１０  プロセッサ、１１０Ａ〜１１０Ｅ  コア、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  Ｉ／Ｏコントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２４  入力インターフェイス、１２６  インターフェイス、１２８  通信インターフェイス、１３０  メモリカードインターフェイス、１５０  画像処理プログラム、１５２  設定部、１５４  実行制御部、１６０  ライブラリ、１７０  処理設定、３００  ユーザインターフェイス、３０２  設定済項目表示領域、３０４  処理項目選択領域、３０６  カメラ画像表示領域、３０８  追加ボタン、３１０  ボタン、３５０  多段化ブロック、３５１，３６４，３７４，３８４  取得項目、３５２，３５４  多段化項目、３５６，３５７，３５８，３５９  サブ多段化項目、３６０，３７０，３８０，３９０，４００，４６０，４７０  処理項目集合、３６２，３７２，３８２，３９２，４０２  多段化タスク、３６６，３７６，３８６，４６４，４６６，４７４，４７６  画像処理項目、４５０  並列化ブロック、４５２，４５４  並列化項目、４６２，４７２  並列化タスク。
【図１】
2018005501.tif 000003
【図２】
2018005501.tif 000004
【図３】
2018005501.tif 000005
【図４】
2018005501.tif 000006
【図５】
2018005501.tif 000007
【図６】
2018005501.tif 000008
【図７】
2018005501.tif 000009
【図８】
2018005501.tif 000010
【図９】
2018005501.tif 000011
【図１０】
2018005501.tif 000012
【図１１】
2018005501.tif 000013
【図１２】
2018005501.tif 000014
【図１３】
2018005501.tif 000015
【図１４】
2018005501.tif 000016
【図１５】
2018005501.tif 000017
【図１６】
2018005501.tif 000018
【図１７】
2018005501.tif 000019
【図１８】
2018005501.tif 000020