(57)【要約】【課題】ユーザ設定の処理フローにおける各画像処理について実行主体を指定することができる画像処理システムを提供する。【解決手段】画像処理システムは、ＣＰＵ（Central Processing Unit）と、ＦＰＧＡ（Field Programmable Gate Array）と、ＣＰＵまたはＦＰＧＡによって実行され得る複数の画像処理を含むライブラリ１１０を格納するための記憶部と、ライブラリ１１０から１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、実行順序に従って選択対象の各画像処理を表示するための表示部１０５とを備える。操作部は、表示部１０５に表示されている選択対象の各画像処理についてＣＰＵおよびＦＰＧＡのいずれかを実行主体として指定する操作をさらに受け付ける。【選択図】図２
2018124607.tif 000002
【特許請求の範囲】
【請求項１】
第１制御装置と、
前記第１制御装置とは異なる種類の第２制御装置と、
前記第１制御装置または前記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、
前記実行順序に従って前記選択対象の各画像処理を表示するための表示部とを備え、
前記操作部は、前記表示部に表示されている前記選択対象の各画像処理について前記第１制御装置および前記第２制御装置のいずれかを実行主体として指定する操作をさらに受け付ける、画像処理システム。
【請求項２】
前記ライブラリは、
前記第１制御装置によって実行され得る第１画像処理群と、
前記第１画像処理群の各画像処理と同じ処理内容であって、前記第２制御装置によって実行され得る第２画像処理群とを含む、請求項１に記載の画像処理システム。
【請求項３】
前記記憶部は、前記第１制御装置および前記第２制御装置の各々による前記複数の画像処理の各々の実行時間を規定した実行時間情報さらに格納し、
前記画像処理システムは、前記実行時間情報に基づいて、前記操作部によって指定された組み合わせの実行主体で前記選択対象の各画像処理を処理した場合の実行時間を推定するための推定部をさらに備え、
前記表示部は、前記推定部によって推定された前記実行時間をさらに表示する、請求項１または２に記載の画像処理システム。
【請求項４】
前記推定部は、前記実行主体の指定が変更される度に前記実行時間を推定し、
前記表示部は、前記実行主体の指定操作に連動して前記実行時間の表示を更新する、請求項３に記載の画像処理システム。
【請求項５】
前記第１制御装置および前記第２制御装置のいずれか一方は、ＦＰＧＡ（Field Programmable Gate Array）を含み、
前記表示部は、前記選択対象の各画像処理を前記実行順序に従って前記指定された実行主体で実行した場合に前記ＦＰＧＡにおいて生じる回路再構成の回数をさらに表示する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
前記画像処理システムは、前記指定された実行主体の組み合わせを維持した状態で前記選択対象の各画像処理の実行順序を最適化するための最適化部をさらに備える、請求項１〜５のいずれか１項に記載の画像処理システム。
【請求項７】
第１制御装置と当該第１制御装置とは異なる種類の第２制御装置とを備える画像処理装置と通信可能に構成されている情報処理装置であって、
前記第１制御装置または前記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、
前記実行順序に従って前記選択対象の各画像処理を表示するための表示部とを備え、
前記操作部は、前記表示部に表示されている前記選択対象の各画像処理について前記第１制御装置および前記第２制御装置のいずれかを実行主体として指定する操作をさらに受け付ける、情報処理装置。
【請求項８】
第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、
前記実行順序に従って前記選択対象の各画像処理を表示するステップと、
表示されている前記選択対象の各画像処理について前記第１制御装置および前記第２制御装置のいずれかを実行主体として指定する操作を受け付けるステップとを備える、情報処理方法。
【請求項９】
情報処理装置に実行される情報処理プログラムであって、
前記情報処理プログラムは、前記情報処理装置に、
第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、
前記実行順序に従って前記選択対象の各画像処理を表示するステップと、
表示されている前記選択対象の各画像処理について前記第１制御装置および前記第２制御装置のいずれかを実行主体として指定する操作を受け付けるステップとを実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザによって組み合わされた画像処理の実行主体を最適化するための技術に関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークを自動で検査するための技術が普及している。ワークの検査処理は、様々な画像処理の組み合わせによって実現される。このような画像処理の組み合わせをユーザ自身で設定するためのユーザインターフェイスを提供するアプリケーションが開発されている。
【０００３】
このようなアプリケーションに関し、特開２０１４−２０３３０９号公報（特許文献１）は、「ユーザが有している特定のアプリケーション画像処理についての知識を利用して、より効率かつ高速な画像処理を実現できる」画像処理装置を開示している。特許文献１によれば、ユーザは、異なる画像処理が定義された複数の処理項目の中から所望の処理項目を選択し、当該処理項目をユーザインターフェイス上に並べて配置し、その並び順に応じた実行順序で各処理項目が実行される。ユーザは、処理項目の組み合わせを変えることで任意の検査処理を実現することができる。以下では、ユーザによって組み合わされた処理項目で実現される一連の画像処理群を「ユーザ設定の処理フロー」ともいう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザ設定の処理フローは、たとえば、画像センサなどの画像処理装置によって実行される。画像処理装置の中には、ＣＰＵ（Central Processing Unit）やＦＰＧＡ（Field Programmable Gate Array）などの複数種類の制御装置が搭載されているものがある。ユーザ設定の処理フローに含まれる各画像処理が複数種類の制御装置によって協働して実行されることで、処理の高速化が実現される。このとき、各画像処理の最適な実行主体は、画像処理の組み合わせや画像処理の実行順序など様々な要因に応じて変わる。そのため、ユーザ設定の処理フローにおける各画像処理について実行主体を指定するための技術が望まれている。
【課題を解決するための手段】
【０００６】
ある局面に従うと、画像処理システムは、第１制御装置と、上記第１制御装置とは異なる種類の第２制御装置と、上記第１制御装置または上記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、上記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、上記実行順序に従って上記選択対象の各画像処理を表示するための表示部とを備える。上記操作部は、上記表示部に表示されている上記選択対象の各画像処理について上記第１制御装置および上記第２制御装置のいずれかを実行主体として指定する操作をさらに受け付ける。
【０００７】
好ましくは、上記ライブラリは、上記第１制御装置によって実行され得る第１画像処理群と、上記第１画像処理群の各画像処理と同じ処理内容であって、上記第２制御装置によって実行され得る第２画像処理群とを含む。
【０００８】
好ましくは、上記記憶部は、上記第１制御装置および上記第２制御装置の各々による上記複数の画像処理の各々の実行時間を規定した実行時間情報さらに格納する。上記画像処理システムは、上記実行時間情報に基づいて、上記操作部によって指定された組み合わせの実行主体で上記選択対象の各画像処理を処理した場合の実行時間を推定するための推定部をさらに備える。上記表示部は、上記推定部によって推定された上記実行時間をさらに表示する。
【０００９】
好ましくは、上記推定部は、上記実行主体の指定が変更される度に上記実行時間を推定する。上記表示部は、上記実行主体の指定操作に連動して上記実行時間の表示を更新する。
【００１０】
好ましくは、上記第１制御装置および上記第２制御装置のいずれか一方は、ＦＰＧＡを含む。上記表示部は、上記選択対象の各画像処理を上記実行順序に従って上記指定された実行主体で実行した場合に上記ＦＰＧＡにおいて生じる回路再構成の回数をさらに表示する。
【００１１】
好ましくは、上記画像処理システムは、上記指定された実行主体の組み合わせを維持した状態で上記選択対象の各画像処理の実行順序を最適化するための最適化部をさらに備える。
【００１２】
他の局面に従うと、第１制御装置と当該第１制御装置とは異なる種類の第２制御装置とを備える画像処理装置と通信可能に構成されている情報処理装置は、上記第１制御装置または上記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、上記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、上記実行順序に従って上記選択対象の各画像処理を表示するための表示部とを備える。上記操作部は、上記表示部に表示されている上記選択対象の各画像処理について上記第１制御装置および上記第２制御装置のいずれかを実行主体として指定する操作をさらに受け付ける。
【００１３】
他の局面に従うと、情報処理方法は、第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、上記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、上記実行順序に従って上記選択対象の各画像処理を表示するステップと、表示されている上記選択対象の各画像処理について上記第１制御装置および上記第２制御装置のいずれかを実行主体として指定する操作を受け付けるステップとを備える。
【００１４】
他の局面に従うと、情報処理プログラムは、情報処理装置に、第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、上記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、上記実行順序に従って上記選択対象の各画像処理を表示するステップと、表示されている上記選択対象の各画像処理について上記第１制御装置および上記第２制御装置のいずれかを実行主体として指定する操作を受け付けるステップとを実行させる。
【発明の効果】
【００１５】
ある局面において、ユーザ設定の処理フローにおける各画像処理について実行主体を指定することができる。
【００１６】
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態に従う画像処理システムのシステム構成の一例を示す図である。
【図２】ユーザが処理フローを設定する過程の一例を概略的に示す概念図である。
【図３】第１の実施の形態に従う画像処理装置による処理フローの実行時間を示している。
【図４】第１の実施の形態に従う画像処理システムの全体構成を示す模式図である。
【図５】第１の実施の形態に従う管理装置の機能構成の一例を示す図である。
【図６】設定部によって提供されるユーザインターフェイスを示す図である。
【図７】ライブラリのデータ構造の一例を示す図である。
【図８】実行時間情報のデータ構造の一例を示す図である。
【図９】実行データのデータ構造の一例を示す図である。
【図１０】第１の実施の形態に従う管理装置が実行する処理の一部を表わすフローチャートである。
【図１１】第１の実施の形態に従う画像処理装置が実行する処理の一部を表わすフローチャートである。
【図１２】第１の実施の形態に従う管理装置の主要なハードウェア構成を示すブロック図である。
【図１３】第１の実施の形態に従う画像処理装置および表示設定器の主要なハードウェア構成を示すブロック図である。
【図１４】第２の実施の形態に従う管理装置の機能構成の一例を示す図である。
【図１５】実行主体を指定するためのユーザインターフェイスの一例を示す図である。
【図１６】実行主体を指定するためのユーザインターフェイスの一例を示す図である。
【図１７】実行主体を指定するためのユーザインターフェイスの変形例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００１９】
＜第１の実施の形態＞
［Ａ．概要］
図１〜図３を参照して、本実施の形態に従う画像処理システム１の概要について説明する。図１は、本実施の形態に従う画像処理システム１のシステム構成の一例を示す図である。画像処理システム１は、典型的には、生産ラインなどに組み込まれる。画像処理システム１は、生産ライン上を搬送される検査対象のワークを撮像することによって得られる画像に基づいて、文字の認識やキズの検査といった処理（以下、「計測処理」ともいう。）を実行する。
【００２０】
図１に示す例において、画像処理システム１は、情報処理装置の一例である管理装置１００と、管理装置１００に通信可能に構成されている１つ以上の画像処理装置２００とを含む。たとえば、ワークはベルトコンベヤなどの搬送機構によって所定方向に搬送され、それぞれの画像処理装置２００は、この搬送経路に相対して予め定められた位置に配置される。
【００２１】
画像処理装置２００は、撮像部と、画像処理機能を実現するための機能モジュールを複数含むライブラリを格納する記憶装置と、少なくとも１つの機能モジュール（典型的には、プログラムモジュール）を実行することで、撮像部から得られる画像を処理する処理部とを含む。各機能モジュールは、画像処理装置２００において何らかの画像処理機能を実現するための命令コードや実行モジュールなどを含む。ユーザは、ライブラリに含まれる画像処理を任意に組み合わせることで様々な計測処理を実現することができる。画像処理装置２００は、ＣＰＵやＦＰＧＡなどの複数種類の制御装置で協働して計測処理を実行することで処理時間を短縮することができる。
【００２２】
図２を参照して、所望の計測処理を実現するための処理フローを設定する過程について説明する。図２は、ユーザが処理フローを設定する過程の一例を概略的に示す概念図である。
【００２３】
ステップＳ１において、管理装置１００の表示部において、複数の画像処理を含むライブラリ１１０が一覧表示される。ユーザは、キーボードやマウスなどの操作部を操作することで、ライブラリ１１０から１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを行う。画像処理の実行順序は、たとえば、選択対象の画像処理の並び順によって指定される。
【００２４】
図２の例では、ライブラリ１１０から選択された画像処理群によって処理フロー１１１が設定されている。図３は、処理フロー１１１の実行時間を示している。
【００２５】
図３（Ａ）に示されるように、処理フロー１１１が画像処理装置２００のＣＰＵのみで実行された場合には、実行時間は「ΔＴ１」となる。図３（Ｂ）に示されるように、処理フロー１１１が画像処理装置２００のＦＰＧＡのみで実行された場合には、実行時間は「ΔＴ２」となる。図３（Ｃ）に示されるように、処理フロー１１１が画像処理装置２００のＣＰＵおよびＦＰＧＡで協働して実行された場合には、実行時間は「ΔＴ３」となる（ΔＴ３＜ΔＴ１，ΔＴ２）。
【００２６】
ＦＰＧＡの処理速度は、典型的には、ＣＰＵの処理速度よりも速いが、ＦＰＧＡの中には、処理の実行中に回路構成を動的に再構成する機能（所謂ＰＲ：Partial Reconfiguration）を有するものがある。ＦＰＧＡの回路が適宜再構成されることで、ＦＰＧＡの回路規模を仮想的に拡張することができる。しかしながら、ＦＰＧＡの再構成が頻繁に行われると、再構成のための時間が長くなり、処理フロー１１１の実行時間が想定よりも長くなることがある。ユーザ設定の各画像処理がＣＰＵおよびＦＰＧＡで協働して実行されることで、処理フロー１１１の実行時間が短縮される。
【００２７】
処理フロー１１１に含まれる各画像処理を実行する最適な実行主体は、画像処理の組み合わせや画像処理の実行順序など様々な要因に応じて変わる。そのため、本実施の形態に従う画像処理システム１は、処理フロー１１１に含まれる各画像処理に対して実行主体を指定することが可能な環境を提供する。
【００２８】
より具体的には、ステップＳ２において、管理装置１００の表示部１０５は、処理フロー１１１に含まれる各画像処理について、ＣＰＵ（第１制御装置）およびＦＰＧＡ（第２制御装置）のいずれかを実行主体として指定する操作を受け付けるためのユーザインターフェイス１４０を表示する。実行主体の指定領域１１２は、処理フロー１１１に並べて表示される。図２の例では、指定領域１１２において、セレクトボックス１１２Ａが実行主体の指定を受け付けるオブジェクトとして示されている。セレクトボックス１１２Ａは、処理フロー１１１における対応する画像処理項目に並べて表示される。セレクトボックス１１２Ａが選択されると、メニュー１１２Ｂが展開される。ユーザは、メニュー１１２Ｂに示される項目のいずれかを選択することができる。
【００２９】
ステップＳ３において、管理装置１００は、指定された実行主体の組み合わせの良否についてシミュレーションする。その結果、シミュレーション結果１１３，１１４が表示される。
【００３０】
シミュレーション結果１１３は、たとえば、実行主体の指定前後における処理フロー１１１の類似度と、実行主体の指定前後における出力結果の変化の度合いを表わす安定度と、指定された実行主体の組み合わせで処理フロー１１１を実行した場合にかかる実行時間とを含む。好ましくは、管理装置１００は、指定領域１１２における実行主体の指定操作に連動してシミュレーション結果１１３を更新する。すなわち、シミュレーション結果１１３は、実行主体の指定が変更される度に更新される。これにより、ユーザは、指定した実行主体の組み合わせの良否を判断しやすくなる。
【００３１】
シミュレーション結果１１４は、たとえば、指定された実行主体で処理フロー１１１を実行した場合に画像処理装置２００のＦＰＧＡにおいて生じる回路再構成の回数を含む。管理装置１００は、処理フロー１１１に対するＦＰＧＡの設定数が多いほど、回路再構成の回数を多くする。一例として、管理装置１００は、処理フロー１１１に対するＦＰＧＡの設定数を予め定められた値で除算することで回路再構成の回数を算出する。当該予め定められた値は、ＦＰＧＡの再構成が生じるＦＰＧＡの設定数に相当する。
【００３２】
また、シミュレーション結果１１４は、ＦＰＧＡの空きリソースを表わすＦＰＧＡ残量をさらに含む。管理装置１００は、処理フロー１１１に対するＦＰＧＡの設定数が多いほど、ＦＰＧＡ残量を少なくなる。一例として、管理装置１００は、予め定められた値から、処理フロー１１１に対するＦＰＧＡの設定数を減算することでＦＰＧＡ残量を算出する。当該予め定められた値は、ＦＰＧＡの再構成が生じるＦＰＧＡの設定数に相当する。算出されたＦＰＧＡ残量がゼロを下回っている場合には、当該ＦＰＧＡ残量は、ゼロに設定される。あるいは、ＦＰＧＡ残量は、処理フロー１１１に対してＦＰＧＡが設定される度に所定数（たとえば、１）ずつ減算され、ＦＰＧＡ残量がゼロを下回る度に上記予め定められた値にリフレッシュされる。
【００３３】
好ましくは、管理装置１００は、指定領域１１２における実行主体の指定操作に連動してシミュレーション結果１１４を更新する。すなわち、シミュレーション結果１１４は、実行主体の指定が変更される度に更新される。これにより、ユーザは、指定した実行主体の組み合わせの良否を判断しやすくなる。
【００３４】
ユーザがＯＫボタン１１８を押下した場合には、管理装置１００は、指定された実行主体の組み合わせを反映した上で処理を終了する。ユーザがキャンセルボタン１１９を押下した場合には、管理装置１００は、指定された実行主体の組み合わせを反映せずに処理を終了する。
【００３５】
なお、上述では、画像処理装置２００の制御装置として、ＣＰＵおよびＦＰＧＡを例に挙げて説明を行ったが、画像処理装置２００の制御装置は、これらに限定されない。たとえば、画像処理装置２００の制御装置は、ＤＳＰ（Digital Signal Processor）やＧＰＵ（Graphics Processing Unit）などのその他のハードウェアであってもよい。
【００３６】
また、上述では、画像処理装置２００が２種類の制御装置（すなわち、ＣＰＵおよびＦＰＧＡ）で構成されている例について説明を行ったが、画像処理装置２００は、３種類以上の制御装置で構成されてもよい。
【００３７】
［Ｂ．システム全体構成］
次に、本実施の形態に従う画像処理システム１の全体構成について説明する。図４は、画像処理システム１の全体構成を示す模式図である。図４を参照して、画像処理システム１は、管理装置１００と、管理装置１００とネットワーク２を介して接続される１つ以上の画像処理装置２００および表示設定器３００を含む。画像処理装置２００には、ＰＬＣ（Programmable Logic Controller）４００が接続される。
【００３８】
表示設定器３００は、たとえば、画像処理装置２００に対して実行される画像処理のパラメータなどの設定、および、画像処理装置２００での画像処理の実行により得られる検査結果などを表示する。
【００３９】
ＰＬＣ４００は、画像処理装置２００との間でタイミング信号や結果情報などを遣り取りする。ＰＬＣ４００は、他の装置からの信号を受信したり、当該他の装置に信号を送信したりすることによって、画像処理システム１の全体制御を行うこともできる。
【００４０】
ＰＬＣ４００は、ネットワーク２を介して画像処理装置２００と接続されてもよいし、表示設定器３００は、画像処理装置２００と直接的に接続されてもよい。
【００４１】
図４に示す画像処理システム１において、画像処理装置２００の各々は、ＰＬＣ４００などからのトリガー信号に応答して、その視野範囲にある被写体を撮像するとともに、その撮像によって得られた画像を処理することで、計測処理を実行する。この計測処理は、所定周期で繰り返されてもよいし、ＰＬＣ４００などからのトリガー信号に応答してイベント的に実行されてもよい。画像処理装置２００で実行される画像処理としては、上述したように適宜入れ替えが可能になっている。そのため、図１に示すように、同一の生産ラインに複数の画像処理装置２００を並べて配置した場合には、同一の検査対象に対して、それぞれの画像処理装置２００が異なる画像処理を行って、その計測結果をそれぞれ出力するようにしてもよい。
【００４２】
［Ｃ．管理装置１００の機能構成］
図５〜図９を参照して、管理装置１００の機能について説明する。図５は、管理装置１００の機能構成の一例を示す図である。
【００４３】
図５に示されるように、管理装置１００は、主要なハードウェア構成として、制御装置１０１と、記憶装置１０３とを含む。制御装置１０１は、機能構成として、設定部１５２，１５４と、推定部１５６と、生成部１６０とを含む。以下では、これらの機能構成について順に説明する。
【００４４】
（Ｃ１．設定部１５２）
設定部１５２は、予め準備された複数の画像処理を含むライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるためのユーザインターフェイスを提供する。図６は、設定部１５２によって提供されるユーザインターフェイス１８０を示す図である。
【００４５】
ユーザインターフェイス１８０は、たとえば、管理装置１００の表示部１０５に表示される。ユーザインターフェイス１８０は、設定済項目表示領域１８１と、処理項目選択領域１８２と、カメラ画像表示領域１８３と、処理項目挿入／追加ボタン１８４と、実行順序入替ボタン１８５とを含む。設定済項目表示領域１８１には、現在設定されている処理設定の内容がグラフィカルに表示される。処理項目選択領域１８２には、選択可能な処理項目を示すアイコンがその名称とともに一覧表示される。
【００４６】
ユーザは、ユーザインターフェイス１８０の処理項目選択領域１８２において、目的の画像処理に必要な処理項目を選択する（（１）処理項目を選択）とともに、設定済項目表示領域１８１において選択した処理項目を追加すべき位置（順序）を選択する（追加位置）。そして、ユーザが処理項目挿入／追加ボタン１８４を選択する（（３）挿入／追加ボタンを押す）と、処理項目が追加される（（４）処理項目が追加される）。処理項目追加後の処理設定の内容は、設定済項目表示領域１８１に反映される。
【００４７】
ユーザは、この処理を適宜繰り返すことで目的の計測処理を実現するための処理フローを作成する。また、ユーザは、処理設定の作成中または作成完了後に、設定済項目表示領域１８１において処理項目を選択した上で、実行順序入替ボタン１８５を選択することで、実行順序を適宜変更することもできる。
【００４８】
設定部１５２は、選択可能な処理項目として、ライブラリ１１０に含まれる画像処理を処理項目選択領域１８２に表示する。図７を参照して、ライブラリ１１０について説明する。図７は、ライブラリ１１０のデータ構造の一例を示す図である。
【００４９】
図７に示されるように、ライブラリ１１０は、各画像処理を識別するための項目群１１０Ａと、画像処理装置２００のＣＰＵによって実行され得る画像処理群１１０Ｂ（第１画像処理群）と、画像処理装置２００のＦＰＧＡによって実行され得る画像処理群１１０Ｃ（第２画像処理群）とを含む。画像処理群１１０Ｂと画像処理群１１０Ｃとは、互いに同じ処理内容である。ここでいう「同じ処理内容」とは、所定の入力に対して得られる結果が同じまたは略同じになる処理のことをいう。ＣＰＵおよびＦＰＧＡのそれぞれについて同じまたは略同じ画像処理が準備されていることで、ＣＰＵおよびＦＰＧＡのいずれでもライブラリ１１０に含まれる各画像処理を実行することができる。
【００５０】
画像処理群１１０Ｂ，１１０Ｃは、たとえば、機能モジュール（典型的には、プログラムモジュール）である。各機能モジュールは、画像処理を実現するための命令コードや実行モジュールなどを含む。
【００５１】
（Ｃ２．設定部１５４）
設定部１５４は、ユーザ設定の処理フローに含まれる各画像処理に対して、実行主体の指定を受け付けるためのユーザインターフェイス１４０を提供する。ユーザインターフェイス１４０については、図２で説明した通りであるので、その説明については繰り返さない。
【００５２】
設定部１５４は、ユーザインターフェイス１４０において設定された実行主体の組み合わせを推定部１５６および生成部１６０に出力する。
【００５３】
なお、設定部１５４によって提供されるユーザインターフェイス１４０は、設定部１５２によって提供されるユーザインターフェイス１８０と一体的に構成されてもよいし、別個に構成されてもよい。
【００５４】
（Ｃ３．推定部１５６）
再び図５を参照して、推定部１５６は、ユーザインターフェイス１４０において指定された実行主体の組み合わせでユーザ設定の処理フロー１１１を処理した場合の実行時間を推定する。当該実行時間は、たとえば、図８に示される実行時間情報１２０に基づいて推定される。図８は、実行時間情報１２０のデータ構造の一例を示す図である。
【００５５】
図８に示されるように、実行時間情報１２０は、上述のライブラリ１１０（図７参照）に規定される各画像処理の実行時間を画像処理装置２００の制御装置の種類ごとに規定している。図８の例では、ＣＰＵによる各画像処理の実行時間と、ＦＰＧＡによる各画像処理の実行時間とが規定されている。実行時間情報１２０に規定される各実行時間は、実験やシミュレーションなどによって予め求められている。
【００５６】
推定部１５６は、実行時間情報１２０に規定される項目群の内から、ユーザ設定の処理フロー１１１に含まれる各画像処理に対応する項目群を特定する。次に、推定部１５６は、当該特定した項目群に対応付けられており、かつ、指定された実行主体に対応付けられている実行時間を積算する。算出された実行時間は、シミュレーション結果として管理装置１００の表示部１０５に表示される。推定部１５６は、処理フロー１１１を実行せずに処理フロー１１１の実行時間を推定することができるので、推定処理に要する処理時間が短縮される。
【００５７】
なお、上述では、処理フロー１１１の実行時間が実行時間情報１２０に基づいて推定される例について説明を行ったが、当該実行時間は、他の方法で推定されてもよい。一例として、推定部１５６は、指定された実行主体の組み合わせで処理フロー１１１を実際に実行することで、処理フロー１１１の実行時間を計測してもよい。これにより、処理フロー１１１の実行時間がより正確に計測される。
【００５８】
（Ｃ４．生成部１６０）
生成部１６０は、図９に示される実行データ１２２を生成する。図９は、実行データ１２２のデータ構造の一例を示す図である。
【００５９】
実行データ１２２は、処理フロー１１１に含まれる各画像処理の実行順序、各画像処理の識別情報（たとえば、項目名や画像処理ＩＤなど）、および各画像処理の実行主体などを規定している。生成部１６０によって生成された実行データ１２２は、指定された画像処理装置２００に送信される。
【００６０】
画像処理装置２００は、管理装置１００から実行データ１２２を受信すると、当該実行データ１２２を記憶する。画像処理装置２００は、計測処理の実行指示を受け付けたことに基づいて、記憶している実行データ１２２を参照し、実行データ１２２に規定されている実行主体の組み合わせで処理フロー１１１を実行する。より具体的には、画像処理装置２００は、管理装置１００にインストールされているライブラリの全部または一部を予め格納しており、実行データ１２２に規定されている画像処理の識別情報および実行順序に従って必要な機能モジュールをライブラリから順次読み込む。このとき、画像処理装置２００は、実行データ１２２に規定されている実行主体の組み合わせに従って各機能モジュールの実行主体を順次切り替える。
【００６１】
［Ｄ．画像処理システム１の制御構造］
図１０および図１１を参照して、画像処理システム１の制御構造について説明する。
【００６２】
図１０は、管理装置１００が実行する処理の一部を表わすフローチャートである。図１０の処理は、管理装置１００の制御装置１０１（図５参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００６３】
図１１は、画像処理装置２００が実行する処理の一部を表わすフローチャートである。図１１の処理は、画像処理装置２００の制御装置２２０（図１３参照）がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００６４】
以下では、図１０および図１１に示される処理のフローについて順に説明する。
（Ｄ１．管理装置１００の制御構造）
ステップＳ１１０において、制御装置１０１は、上述の設定部１５２（図５参照）として、処理フローを設定するためのユーザインターフェイス１８０（図６参照）を提供する。ユーザインターフェイス１８０は、ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付ける。これらの操作は、たとえば、後述の操作部１０６（図１２参照）が受け付ける。画像処理の選択操作と実行順序の指定操作とが繰り返されることで、任意の処理フローが設定される。
【００６５】
ステップＳ１３０において、制御装置１０１は、ユーザ設定の処理フローに対して実行主体を最適化する操作を受け付けたか否かを判断する。当該操作は、たとえば、最適化モードに切り替えるための所定のボタンがユーザインターフェイス１８０上で押下されたにより行われる。制御装置１０１は、当該操作を受け付けたと判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、制御装置１０１は、制御をステップＳ１４４に切り替える。
【００６６】
ステップＳ１３２において、制御装置１０１は、上述の設定部１５４（図５参照）として、ユーザ設定の処理フローに含まれる各画像処理について実行主体を指定するためのユーザインターフェイス１４０（図２参照）を提供する。ユーザインターフェイス１４０に対する操作は、たとえば、後述の操作部１０６（図１２参照）が受け付ける。
【００６７】
ステップＳ１３４において、制御装置１０１は、上述の推定部１５６（図５参照）として、ステップＳ１３２において指定された実行主体の組み合わせでユーザ設定の処理フローを実行した場合の実行時間を推定する。当該推定方法は図８で説明した通りであるので、その説明については繰り返さない。
【００６８】
ステップＳ１４０において、制御装置１０１は、ステップＳ１３４で特定された実行主体の組み合わせを反映する操作を受け付けたか否かを判断する。当該操作は、たとえば、図２に示されるＯＫボタン１１８の押下操作により受け付けられる。制御装置１０１は、ステップＳ１３４で特定された実行主体の組み合わせを反映する操作を受け付けたと判断した場合（ステップＳ１４０においてＹＥＳ）、制御をステップＳ１４２に切り替える。そうでない場合には（ステップＳ１４０においてＮＯ）、制御装置１０１は、制御をステップＳ１４４に切り替える。
【００６９】
ステップＳ１４２において、制御装置１０１は、上述の生成部１６０（図５参照）として、ステップＳ１３４で特定された実行主体の組み合わせでユーザ設定の処理フローが実行されるように実行データ１２２（図９参照）を生成する。
【００７０】
ステップＳ１４４において、制御装置１０１は、予め定められたルールに従ってユーザ設定の処理フローの実行主体の組み合わせを決定し、当該実行主体の組み合わせでユーザ設定の処理フローが実行されるように実行データ１２２を生成する。
【００７１】
（Ｄ２．画像処理装置２００の制御構造）
次に、図１１を参照して、画像処理装置２００の制御構造について説明する。
【００７２】
ステップＳ２１０において、制御装置２２０は、管理装置１００から実行データ１２２（図９参照）を受信したか否かを判断する。制御装置２２０は、管理装置１００から実行データ１２２を受信したと判断した場合（ステップＳ２１０においてＹＥＳ）、制御をステップＳ２１２に切り替える。そうでない場合には（ステップＳ２１０においてＮＯ）、制御装置２２０は、制御をステップＳ２２０に切り替える。
【００７３】
ステップＳ２１２において、制御装置２２０は、ステップＳ２１０で管理装置１００から受信した実行データ１２２を画像処理装置２００の記憶装置２２２（図１３参照）に格納する。
【００７４】
ステップＳ２２０において、制御装置２２０は、計測処理の実行指示を受け付けたか否かを判断する。当該指示は、画像処理装置２００の撮像部がワークの撮影処理を実行したタイミングなどに発せられる。制御装置２２０は、計測処理の実行指示を受け付けたと判断した場合（ステップＳ２２０においてＹＥＳ）、制御をステップＳ２２２に切り替える。そうでない場合には（ステップＳ２２０においてＮＯ）、制御装置２２０は、制御をステップＳ２１０に戻す。
【００７５】
ステップＳ２２２において、制御装置２２０は、ステップＳ２１２で格納した実行データ１２２を参照し、実行データ１２２に規定されている実行主体の組み合わせで処理フロー１１１を実行する。より具体的には、制御装置２２０は、管理装置１００にインストールされているライブラリの全部または一部を予め格納しており、実行データ１２２に規定されている画像処理の識別情報および実行順序に従って必要な機能モジュールを当該ライブラリから順次読み込む。このとき、制御装置２２０は、実行データ１２２に規定されている実行主体の組み合わせに従って各機能モジュールの実行主体を順次切り替える。
【００７６】
［Ｅ．画像処理システム１の装置構成］
図１２および図１３を参照して、画像処理システム１を構成するそれぞれの装置の構成について説明する。図１２は、管理装置１００の主要なハードウェア構成を示すブロック図である。図１３は、画像処理装置２００および表示設定器３００の主要なハードウェア構成を示すブロック図である。
【００７７】
（Ｅ１：管理装置１００）
管理装置１００は、たとえば、汎用のコンピュータで実現される。管理装置１００を実現するコンピュータは、制御装置１０１と、メモリ１０２と、ＨＤＤ（Hard Disk Drive）などの記憶装置１０３と、ネットワークインターフェイス（Ｉ／Ｆ）１０４と、表示部１０５と、操作部１０６と、メモリカードリーダ・ライタ１０７とを含む。これらの各部は、内部バス１０８を介して、互いに通信可能に接続されている。
【００７８】
制御装置１０１は、記憶装置１０３などに格納されているプログラム（命令コード）をメモリ１０２へ展開した上で実行することで、上述の各種機能を実現する。メモリ１０２および記憶装置１０３は、それぞれ揮発的および不揮発的にデータを格納する。記憶装置１０３は、ＯＳ（Operating System）に加えて、アプリケーション１０３Ａ、上述のライブラリ１１０（図７参照）、および、上述の実行時間情報１２０（図８参照）を保持している。
【００７９】
アプリケーション１０３Ａは、上述のユーザインターフェイス１４０，１８０（図６参照）を提供する基本プログラムである。ライブラリ１１０は、ユーザ操作に応じてその全部または一部が画像処理装置２００へ送信される。すなわち、画像処理装置２００の記憶装置２２２に格納されるライブラリ２２２Ｂ（図１３参照）は、管理装置１００の記憶装置１０３に格納されるライブラリ１１０の少なくとも部分集合である。
【００８０】
ネットワークインターフェイス１０４は、ネットワーク２（図１参照）を介して、管理装置１００と画像処理装置２００との間でデータを遣り取りする。
【００８１】
表示部１０５は、制御装置１０１がアプリケーション１０３Ａを実行することで実現される設定操作画面（たとえば、ユーザインターフェイス１４０，１８０）などを表示する。表示部１０５は、ＬＣＤ（Liquid Crystal Display）といったディスプレイなどからなる。
【００８２】
操作部１０６は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を制御装置１０１などへ出力する。操作部１０６は、典型的には、キーボード、マウス、タッチパネル、タブレット、音声認識装置などからなる。
【００８３】
メモリカードリーダ・ライタ１０７は、メモリカード１０７Ａからデータを読み出し、およびメモリカード１０７Ａへデータを書き込む。メモリカード１０７Ａとしては、ＳＤ（Secure Digital）カードなどの公知の記録媒体を採用できる。
【００８４】
（Ｅ２：画像処理装置２００）
次に、図１３を参照して、画像処理装置２００の装置構成について説明する。画像処理装置２００は、照明部２１０と、制御装置２２０と、撮像部２３０とを含む。
【００８５】
照明部２１０は、検査対象であるワーク５００に撮像に必要な光を照射する。つまり、照明部２１０は、撮像部２３０の撮像範囲に光を照射する。より具体的には、照明部２１０は、照明基板上に設けられる複数の照明制御ユニット２１１を含む。これらのユニットは、照明基板上に配置される。照明制御ユニット２１１の各々は、照明レンズ２１２と、ＬＥＤ２１３とを含む。照明制御ユニット２１１は、制御装置２２０からの指令に従って、光を照射する。より具体的には、ＬＥＤ２１３で発生した光は、照明レンズ２１２を通じてワーク５００へ照射される。
【００８６】
撮像部２３０は、照明部２１０が照射した光の反射光を受けて、画像信号を出力する。この画像信号は、制御装置２２０へ送られる。より具体的には、撮像部２３０は、撮像レンズ２３１などの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの複数の画素に区画された撮像素子２３２を含む。
【００８７】
制御装置２２０は、画像処理装置２００の全体を制御する。すなわち、制御装置２２０は、照明部２１０および撮像部２３０を制御するとともに、撮像部２３０からの画像信号に基づいて画像処理を行う。より具体的には、制御装置２２０は、処理部２２１と、記憶装置２２２と、ネットワーク通信部２２３と、外部入出力部２２５とを含む。
【００８８】
処理部２２１は、ＣＰＵ１２１ＡやＦＰＧＡ１２１Ｂといった集積回路によって構成される。あるいは、処理部２２１は、ＤＳＰ、ＧＰＵ、ＡＳＩＣ（Application Specific Integrated Circuit）、その他の集積回路によって構成されてもよい。
【００８９】
記憶装置２２２は、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ＨＤＤ、およびＳＳＤ（Static Silicon Disk）といった不揮発性記憶装置、および／または、ＲＡＭ（Random Access Memory）などの不揮発メモリを含む。典型的に、処理部２２１が記憶装置２２２に格納されたプログラム（命令コード）やモジュールなどを実行することで、各種画像処理を実現する。
【００９０】
このようなプログラム（命令コード）やモジュールなどは、記憶装置２２２のうち不揮発性メモリに格納され、不揮発性メモリから読み出されたプログラム、プログラムの実行に必要なワークデータ、撮像部２３０によって取得された画像データ、および計測結果を示すデータなどは、記憶装置２２２のうち揮発性メモリに格納される。
【００９１】
より具体的には、記憶装置２２２は、本体プログラム２２２Ａと、種々の機能モジュール（画像処理）を含むライブラリ２２２Ｂとを含む。
【００９２】
本体プログラム２２２Ａは、画像処理装置２００の基本的な動作を実現するための基本プログラムであり、ＯＳおよび基本的なアプリケーションを含み得る。ライブラリ２２２Ｂは、画像処理装置２００が提供する画像処理機能を実現するための複数のプログラム（典型的には、命令コードおよび／またはライブラリ）からなる。画像処理装置２００で実行可能な画像処理機能に応じた数だけインストールされる。上述のように、ライブラリ２２２Ｂは、管理装置１００の記憶装置１０３に格納されるライブラリ１１０の少なくとも部分集合である。
【００９３】
ネットワーク通信部２２３は、ネットワーク２を介して、管理装置１００および表示設定器３００などとデータを遣り取りするためのインターフェイスである。より具体的には、ネットワーク通信部２２３は、Ｅｔｈｅｒｎｅｔ（登録商標）などに従う構成が採用される。外部入出力部２２５は、ＰＬＣ４００との間で各種データ（入力データおよび／または出力データ）を遣り取りするためのインターフェイスである。
【００９４】
（Ｅ３：表示設定器３００）
引き続き図１３を参照して、表示設定器３００は、表示部３０１と、表示制御部３０２と、処理部３０３と、通信部３０４と、操作部３０５と、メモリカードリーダ・ライタ３０６と、記憶装置３０８とを含む。
【００９５】
表示部３０１は、接続先の画像処理装置２００に対して実行される画像処理のパラメータなどを設定するための画面、画像処理装置２００での画像処理の実行により得られる検査結果を示す画面などを表示する。表示部３０１は、典型的には、ＬＣＤ（Liquid Crystal Display）といったディスプレイなどからなる。表示制御部３０２は、処理部３０３からの指示に従って、表示部３０１に画像を表示させるための処理を行う。
【００９６】
処理部３０３は、画像処理装置２００からの指示／命令に従って、表示部３０１に表示されるべき画像を生成する処理を行うとともに、操作部３０５を介したユーザ入力に応答して、その入力値を画像処理装置２００へ送出する。
【００９７】
記憶装置３０８は、ＲＯＭ、フラッシュメモリ、ＨＤＤ、およびＳＳＤといった不揮発性記憶装置、および／または、ＲＡＭなどの不揮発メモリを含む。記憶装置３０８は、部品データ３０８Ａとして、画面表示に用いるオブジェクトを格納している。処理部３０３がこれらの部品データ３０８Ａを利用することで、画面表示を行う。
【００９８】
通信部３０４は、画像処理装置２００などとの間でデータを遣り取りするためのインターフェイスである。
【００９９】
操作部３０５は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を処理部３０３などへ出力する。操作部３０５は、典型的には、表示部３０１の表面に配置されるタッチパネル（感圧センサ）、ボタンおよびキーなどからなる。
【０１００】
メモリカードリーダ・ライタ３０６は、メモリカード３１０からデータを読み出し、およびメモリカード３１０へデータを書き込む。メモリカード３１０としては、ＳＤカードなどの公知の記録媒体を採用できる。
【０１０１】
［Ｆ．第１の実施の形態のまとめ］
以上のようにして、管理装置１００は、ユーザ設定の処理フローに含まれる各画像処理に対して実行主体として指定するユーザインターフェイス１４０を提供する。指定可能な実行主体は、たとえば、画像処理装置２００のＣＰＵまたはＦＰＧＡである。実行主体が指定されることにより、ユーザは、ユーザ設定の処理フローの各画像処理について実行主体を最適化することができる。
【０１０２】
特に、このような実行主体の最適化は、処理フローがユーザによって設定される環境下では有利に働く。すなわち、複写機やテレビなど装置が特定されている場合には、最適な実行主体が予め分かり、実行主体を変える必要がない。しかしながら、本実施の形態に従う画像処理システム１は、処理フローを設定することが可能な環境をユーザに提供し、様々な画像処理装置２００に対して任意の処理フローを設定することができる。そのため、最適な実行主体は、画像処理装置２００の種類や設定された処理フローの内容などによって変化する。
【０１０３】
一例として、最適な実行主体は、入力画像のサイズに応じて変化する。一般的に、入力画像のサイズが小さければ、ＣＰＵの処理速度の方がＦＰＧＡの処理速度よりも速い。一方で、入力画像のサイズが大きければ、ＦＰＧＡの処理速度の方がＣＰＵの処理速度よりも速い。その他にも、最適な実行主体は、入力画像の種類（たとえば、モノクロ画像、カラー画像）や、入力画像に適用するフィルタのサイズなどによって変化する。本実施の形態に従う管理装置１００は、任意に設定される各画像処理に対して、任意の実行主体を指定することができる。このような実行主体の指定は、回路再構成の機能を有するＦＰＧＡが搭載されている場合において、特に効果的となる。
【０１０４】
＜第２の実施の形態＞
［Ａ．概要］
第１の実施の形態においては、ユーザ設定の処理フローの各画像処理に対して実行主体が指定されることで、実行主体が最適化されていた。これに対して、第２の実施の形態に従う画像処理システム１は、ユーザ設定の処理フローにおける実行主体を最適化するだけでなく、ユーザ設定の処理フローにおける各画像処理の実行順序をさらに最適化する。
【０１０５】
第２の実施の形態に従う画像処理システム１におけるその他の点については第１の実施の形態に従う画像処理システム１と同じであるので、以下では、それらの説明については繰り返さない。
【０１０６】
［Ｂ．管理装置１００の機能構成］
図１４および図１５を参照して、第２の実施の形態に従う管理装置１００の機能について説明する。図１４は、第２の実施の形態に従う管理装置１００の機能構成の一例を示す図である。
【０１０７】
図１４に示されるように、管理装置１００は、主要なハードウェア構成として、制御装置１０１と、記憶装置１０３とを含む。制御装置１０１は、機能構成として、設定部１５２，１５４と、推定部１５６と、最適化部１５８と、生成部１６０とを含む。
【０１０８】
最適化部１５８以外の機能構成については図５で説明した通りであるので、以下では、それらの説明については繰り返さない。
【０１０９】
画像処理の実行順序が入れ替えられたとしても、出力結果が変化しない場合がある。このような場合、最適化部１５８は、実行時間がより短くなるように、ユーザ設定の処理フローに含まれる各画像処理の実行順序を最適化する。このとき、好ましくは、各画像処理の実行順序は、設定部１５２において設定された実行主体の組み合わせを維持した状態で最適化される。あるいは、実行順序の最適化後の処理フローに対して、再度、実行主体が指定されてもよい。
【０１１０】
一例として、処理時間が短縮され得る画像処理の組み合わせ、および、当該組み合わせに対する最適化後の実行順序が予め規定されている。最適化部１５８は、当該規定を参照して、ユーザ設定の処理フローから、処理時間が短縮され得る画像処理の組み合わせを特定し、当該組み合わせについて規定されている最適化後の実行順序に従ってユーザ設定の画像処理の実行順序を最適化する。当該最適化結果は、管理装置１００の表示部１０５に表示される。
【０１１１】
図１５を参照して、最適化部１５８による最適化結果を表示する画面の一例について説明する。図１５は、実行主体を指定するためのユーザインターフェイス１４０を示す図である。
【０１１２】
ユーザインターフェイス１４０は、ユーザ設定の処理フロー１１１と、処理フロー１１１に含まれる各画像処理に対して実行主体を指定する指定領域１１２と、指定された実行主体で処理フロー１１１を実行した場合のシミュレーション結果１１３とを含む。
【０１１３】
また、ユーザインターフェイス１４０は、実行速度を優先して最適化された処理フロー１１１Ｃと、処理フロー１１１Ｃの実行主体の組み合わせ１１２Ｃと、組み合わせ１１２Ｃの実行主体で処理フロー１１１Ｃを実行した場合のシミュレーション結果１１３Ｃとを含む。図１５の例では、処理フロー１１１Ｃに対する実行主体の組み合わせ１１２Ｃは、指定領域１１２において指定された実行主体の組み合わせと同じである。
【０１１４】
さらに、ユーザインターフェイス１４０は、最適化前後における処理フローの類似度を優先して最適化された処理フロー１１１Ｄと、処理フロー１１１Ｄの実行主体の組み合わせ１１２Ｄと、組み合わせ１１２Ｄの実行主体で処理フロー１１１Ｄを実行した場合のシミュレーション結果１１３Ｄとを含む。図１５の例では、処理フロー１１１Ｄに対する実行主体の組み合わせ１１２Ｄは、指定領域１１２において指定された実行主体の組み合わせと同じである。
【０１１５】
さらに、ユーザインターフェイス１４０は、セレクトボックス１１７を含む。セレクトボックス１１７は、図１５に示される候補「１」〜「３」の中から特定の候補を選択する操作を受け付ける。ユーザが特定の候補を選択した状態でＯＫボタン１１８を押下すると、管理装置１００は、選択された候補に示される、処理フローと実行順序と実行主体の組み合わせとを実行データ１２２（図９参照）に書き込む。ユーザがキャンセルボタン１１９を押下すると、管理装置１００は、指定された実行主体の組み合わせや実行順序の最適化結果を反映せずに処理を終了する。
【０１１６】
［Ｃ．第２の実施の形態のまとめ］
以上のようにして、本実施の形態においては、管理装置１００は、ユーザ設定の処理フローの実行主体を最適化するだけでなく、当該処理フローにおける画像処理の実行順序をさらに最適化する。実行順序は、実行時間がより短くなるように最適化される。このとき、好ましくは、当該実行順序は、ユーザによって指定された実行主体の組み合わせを維持した状態で最適化される。これにより、管理装置１００は、実行主体が最適化された状態でユーザ設定の処理フローの実行時間をより短縮することができる。
【０１１７】
＜第３の実施の形態＞
［Ａ．概要］
第１の実施の形態においては、実行主体を指定する操作がセレクトボックスに対して行われていたが、実行主体を指定する方法は、これに限定されない。以下では、実行主体のその他の指定方法について説明する。
【０１１８】
第２の実施の形態に従う画像処理システム１におけるその他の点については第１の実施の形態に従う画像処理システム１と同じであるので、以下では、それらの説明については繰り返さない。
【０１１９】
［Ｂ．実行主体を設定するためのユーザインターフェイス］
図１６は、実行主体を指定するためのユーザインターフェイス１４０Ａを示す図である。
【０１２０】
ユーザインターフェイス１４０Ａは、全体処理フロー１３０を含む。全体処理フロー１３０は、処理内容を表わす項目１３０Ａ，１３０Ｂを含む。ユーザは、項目１３０Ａ，１３０Ｂのいずれかを選択することができる。管理装置１００は、項目１３０Ａ，１３０Ｂのいずれかが選択されたことに基づいて、選択された項目において設定されている処理フローを表示する。図１６の例では、前処理を表わす項目１３０Ａが選択されており、前処理を表わす処理フロー１１１が表示されている。
【０１２１】
また、ユーザインターフェイス１４０Ａは、画像処理装置２００に搭載されている制御装置の種類を表わす実行主体情報１３３を表示する。図１６の例では、実行主体情報１３３として、ＣＰＵおよびＦＰＧＡが示されている。
【０１２２】
さらに、ユーザインターフェイス１４０Ａは、処理フロー１１１に含まれる各画像処理に対して実行主体を指定する指定領域１３５を含む。図１６の例では、指定領域１３５においてチェックボックスが示されている。各チェックボックスは、処理フロー１１１における対応する画像処理項目に並べて表示される。チェックボックスは、実行主体別に表示される。ユーザは、処理フロー１１１に含まれる各画像処理に対して１つの実行主体を指定することができる。
【０１２３】
たとえば、実行主体「ＦＰＧＡ」における項目「膨張」のチェックボックスが選択された場合には、当該チェックボックスにチェックマークが付与される。このとき、実行主体「ＣＰＵ」における項目「膨張」のチェックボックスにおいては、チェックマークが消される。このように、１つの画像処理に対しては、１つの実行主体しか指定することができない。選択されたチェックボックスについては実行順序が表示される。
【０１２４】
さらに、ユーザインターフェイス１４０Ａは、指定領域１３５において指定された実行主体の組み合わせで処理フロー１１１を実行した場合のシミュレーション結果１３７を表示する。シミュレーション結果１３７は、全体処理フロー１３０における各処理が実行されるタイミングを示すタイミングチャート１３７Ａと、当該各処理の処理時間１３７Ｂとを含む。
【０１２５】
［Ｃ．変形例］
図１７を参照して、図１６に示されるユーザインターフェイス１４０Ａの変形例について説明する。図１７は、ユーザインターフェイス１４０Ａの変形例を示す図である。図１７には、変形例として、ユーザインターフェイス１４０Ｂが示されている。
【０１２６】
ユーザインターフェイス１４０Ｂにおいては、最新のシミュレーション結果１３７と、過去のシミュレーション結果１３８とが並べて表示される。すなわち、本変形例においては、過去のシミュレーション結果が履歴として記憶されており、ユーザは、任意の時点でのシミュレーション結果を表示させることができる。一例として、ユーザは、ボタン１３９Ａを押下すると、シミュレーション結果１３８の前のシミュレーション結果を表示させることができる。ユーザは、ボタン１３９Ｂを押下すると、シミュレーション結果１３８の次のシミュレーション結果を表示させることができる。
【０１２７】
比較対象のシミュレーション結果１３８は、全体処理フロー１３０における各処理が実行されるタイミングを示すタイミングチャート１３８Ａと、当該各処理の処理時間１３８Ｂとを含む。最新のシミュレーション結果１３７と、過去のシミュレーション結果１３８とが並べて表示されることで、ユーザは、指定した実行主体の組み合わせにおける有効性を確認することができる。
【０１２８】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１２９】
１  画像処理システム、２  ネットワーク、１００  管理装置、１０１，２２０  制御装置、１０２  メモリ、１０３，２２２，３０８  記憶装置、１０３Ａ  アプリケーション、１０４  ネットワークインターフェイス、１０５，３０１  表示部、１０６，３０５  操作部、１０７，３０６  メモリカードリーダ・ライタ、１０７Ａ，３１０  メモリカード、１０８  内部バス、１１０，２２２Ｂ  ライブラリ、１１０Ａ  項目群、１１０Ｂ，１１０Ｃ  画像処理群、１１１，１１１Ｃ，１１１Ｄ  処理フロー、１１２，１３５  指定領域、１１２Ａ，１１７  セレクトボックス、１１２Ｂ  メニュー、１１２Ｃ，１１２Ｄ  組み合わせ、１１３，１１３Ｃ，１１３Ｄ，１１４，１３７，１３８  シミュレーション結果、１１８  ＯＫボタン、１１９  キャンセルボタン、１２０  実行時間情報、１２１Ａ  ＣＰＵ、１２１Ｂ  ＦＰＧＡ、１２２  実行データ、１３０  全体処理フロー、１３０Ａ，１３０Ｂ  項目、１３３  実行主体情報、１３７Ａ，１３８Ａ  タイミングチャート、１３７Ｂ，１３８Ｂ  処理時間、１３９Ａ，１３９Ｂ，１８５  ボタン、１４０，１４０Ａ，１４０Ｂ，１８０  ユーザインターフェイス、１５２，１５４  設定部、１５６  推定部、１５８  最適化部、１６０  生成部、１８１  設定済項目表示領域、１８２  処理項目選択領域、１８３  カメラ画像表示領域、１８４  追加ボタン、２００  画像処理装置、２１０  照明部、２１１  照明制御ユニット、２１２  照明レンズ、２２１，３０３  処理部、２２２Ａ  本体プログラム、２２３  ネットワーク通信部、２２５  外部入出力部、２３０  撮像部、２３１  撮像レンズ、２３２  撮像素子、３００  表示設定器、３０２  表示制御部、３０４  通信部、３０８Ａ  部品データ、５００  ワーク。
【図１】
2018124607.tif 000003
【図２】
2018124607.tif 000004
【図３】
2018124607.tif 000005
【図４】
2018124607.tif 000006
【図５】
2018124607.tif 000007
【図６】
2018124607.tif 000008
【図７】
2018124607.tif 000009
【図８】
2018124607.tif 000010
【図９】
2018124607.tif 000011
【図１０】
2018124607.tif 000012
【図１１】
2018124607.tif 000013
【図１２】
2018124607.tif 000014
【図１３】
2018124607.tif 000015
【図１４】
2018124607.tif 000016
【図１５】
2018124607.tif 000017
【図１６】
2018124607.tif 000018
【図１７】
2018124607.tif 000019