(57)【要約】      （修正有）【課題】ユーザ設定の処理フローにおける各画像処理について最適な実行主体を特定することができる画像処理システムを提供する。【解決手段】画像処理システムは、ＣＰＵと、ＦＰＧＡと、ＣＰＵまたはＦＰＧＡによって実行され得る複数の画像処理を含むライブラリを格納する記憶部と、ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付ける操作部と、選択対象の各画像処理を実行順序に従ってＣＰＵまたはＦＰＧＡで処理した場合にかかる実行時間を、選択対象の各画像処理についての実行主体の組み合わせごとに推定する推定部と、選択対象の各画像処理についての実行主体の組み合わせの中から実行時間が相対的に短い組み合わせを特定する特定部と、当該特定部によって特定された組み合わせを表示する表示部とを備える。【選択図】図５
2018124605.tif 000002
【特許請求の範囲】
【請求項１】
第１制御装置と、
前記第１制御装置とは異なる種類の第２制御装置と、
前記第１制御装置または前記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、
前記選択対象の各画像処理を前記実行順序に従って前記第１制御装置または前記第２制御装置で処理した場合にかかる実行時間を、前記選択対象の各画像処理についての実行主体の組み合わせごとに推定するための推定部と、
前記選択対象の各画像処理についての実行主体の組み合わせの中から前記実行時間が相対的に短い組み合わせを特定するための特定部と、
前記特定部によって特定された組み合わせを表示するための表示部とを備える、画像処理システム。
【請求項２】
前記ライブラリは、
前記第１制御装置によって実行され得る第１画像処理群と、
前記第１画像処理群の各画像処理と同じ処理内容であって、前記第２制御装置によって実行され得る第２画像処理群とを含む、請求項１に記載の画像処理システム。
【請求項３】
前記記憶部は、前記第１制御装置および前記第２制御装置の各々による前記複数の画像処理の各々の実行時間を規定した実行時間情報さらに格納し、
前記推定部は、前記実行時間情報に基づいて、前記実行主体の組み合わせごとの実行時間を算出する、請求項１または２に記載の画像処理システム。
【請求項４】
前記表示部は、前記特定部によって特定された組み合わせの実行主体を前記選択対象の各画像処理を示す各項目に並べて表示する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記表示部は、前記特定部によって特定された組み合わせの実行主体で前記選択対象の各画像処理を実行した場合にかかる処理時間をさらに表示する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
前記画像処理システムは、前記特定部によって特定された実行主体の組み合わせを維持した状態で前記選択対象の各画像処理の実行順序を最適化するための最適化部をさらに備える、請求項１〜５のいずれか１項に記載の画像処理システム。
【請求項７】
第１制御装置と当該第１制御装置とは異なる種類の第２制御装置とを備える画像処理装置と通信可能に構成されている情報処理装置であって、
前記第１制御装置または前記第２制御装置によって実行され得る複数の画像処理を含むライブラリを格納するための記憶部と、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるための操作部と、
前記選択対象の各画像処理を前記実行順序に従って前記第１制御装置または前記第２制御装置で実行した場合にかかる処理時間を、前記選択対象の各画像処理の実行主体の組み合わせごとに推定するための推定部と、
前記実行主体の組み合わせの中から前記処理時間が相対的に短い実行主体の組み合わせを特定するための特定部と、
前記特定部によって特定された組み合わせを表示するための表示部とを備える、情報処理装置。
【請求項８】
第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、
前記選択対象の各画像処理を前記実行順序に従って前記第１制御装置または前記第２制御装置で処理した場合にかかる実行時間を、前記選択対象の各画像処理についての実行主体の組み合わせごとに推定するステップと、
前記選択対象の各画像処理についての実行主体の組み合わせの中から前記実行時間が相対的に短い組み合わせを特定するステップと、
前記特定するステップにおいて特定された組み合わせを表示するステップとを備える、情報処理方法。
【請求項９】
情報処理装置に実行される情報処理プログラムであって、
前記情報処理プログラムは、前記情報処理装置に、
第１制御装置または当該第１制御装置とは異なる種類の第２制御装置によって実行され得る複数の画像処理を含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを受け付けるステップと、
前記選択対象の各画像処理を前記実行順序に従って前記第１制御装置または前記第２制御装置で処理した場合にかかる実行時間を、前記選択対象の各画像処理についての実行主体の組み合わせごとに推定するステップと、
前記選択対象の各画像処理についての実行主体の組み合わせの中から前記実行時間が相対的に短い組み合わせを特定するステップと、
前記特定するステップにおいて特定された組み合わせを表示するステップとを実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザによって組み合わされた画像処理の実行主体を最適化するための技術に関するものである。
【背景技術】
【０００２】
ＦＡ（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）といったディスプレイなどからなる。表示制御部３０２は、処理部３０３からの指示に従って、表示部３０１に画像を表示させるための処理を行う。
【００９７】
処理部３０３は、画像処理装置２００からの指示／命令に従って、表示部３０１に表示されるべき画像を生成する処理を行うとともに、操作部３０５を介したユーザ入力に応答して、その入力値を画像処理装置２００へ送出する。
【００９８】
記憶装置３０８は、ＲＯＭ、フラッシュメモリ、ＨＤＤ、およびＳＳＤといった不揮発性記憶装置、および／または、ＲＡＭなどの不揮発メモリを含む。記憶装置３０８は、部品データ３０８Ａとして、画面表示に用いるオブジェクトを格納している。処理部３０３がこれらの部品データ３０８Ａを利用することで、画面表示を行う。
【００９９】
通信部３０４は、画像処理装置２００などとの間でデータを遣り取りするためのインターフェイスである。
【０１００】
操作部３０５は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を処理部３０３などへ出力する。操作部３０５は、典型的には、表示部３０１の表面に配置されるタッチパネル（感圧センサ）、ボタンおよびキーなどからなる。
【０１０１】
メモリカードリーダ・ライタ３０６は、メモリカード３１０からデータを読み出し、およびメモリカード３１０へデータを書き込む。メモリカード３１０としては、ＳＤカードなどの公知の記録媒体を採用できる。
【０１０２】
［Ｆ．第１の実施の形態のまとめ］
以上のようにして、管理装置１００は、ユーザ設定の処理フローに含まれる各画像処理を画像処理装置２００のＣＰＵまたはＦＰＧＡで実行した場合にかかる実行時間を、ＣＰＵおよびＦＰＧＡの実行主体の組み合わせごとに推定する。管理装置１００は、当該組み合わせの中から、処理フローの実行時間が相対的に短くなる実行主体の組み合わせを特定する。これにより、管理装置１００は、ユーザ設定の処理フローの各画像処理について最適な実行主体を特定することができる。
【０１０３】
特に、このような実行主体の最適化は、処理フローがユーザによって設定される環境下では有利に働く。すなわち、複写機やテレビなど装置が特定されている場合には、最適な実行主体が予め分かり、実行主体を変える必要がない。しかしながら、本実施の形態に従う画像処理システム１は、処理フローを設定することが可能な環境をユーザに提供し、様々な画像処理装置２００に対して任意の処理フローを設定することができる。そのため、最適な実行主体は、画像処理装置２００の種類や設定された処理フローの内容などによって変化する。
【０１０４】
一例として、最適な実行主体は、入力画像のサイズに応じて変化する。一般的に、入力画像のサイズが小さければ、ＣＰＵの処理速度の方がＦＰＧＡの処理速度よりも速い。一方で、入力画像のサイズが大きければ、ＦＰＧＡの処理速度の方がＣＰＵの処理速度よりも速い。その他にも、最適な実行主体は、入力画像の種類（たとえば、モノクロ画像、カラー画像）や、入力画像に適用するフィルタのサイズなどによって変化する。本実施の形態に従う管理装置１００は、処理フローが任意に設定される場合であっても、設定された処理フローに合わせて実行主体を最適化することができる。このような最適化は、回路再構成の機能を有するＦＰＧＡが他の種類の制御装置とともに搭載されている場合において、特に効果的となる。
【０１０５】
また、実行主体を最適化するためには、実行主体の特性を理解する必要があるため、専門的な知識が必要となる。しかしながら、本実施の形態に従う管理装置１００は、ユーザ設定の処理フローに合わせて自動で実行主体を最適化するため、専門的な知識を有さないユーザであっても、容易に実行主体を最適化することができる。
【０１０６】
＜第２の実施の形態＞
［Ａ．概要］
第１の実施の形態に従う画像処理システム１は、ユーザ設定の処理フローにおける実行主体を最適化していた。これに対して、第２の実施の形態に従う画像処理システム１は、ユーザ設定の処理フローにおける実行主体を最適化するだけでなく、当該処理フローにおける各画像処理の実行順序をさらに最適化する。
【０１０７】
第２の実施の形態に従う画像処理システム１におけるその他の点については第１の実施の形態に従う画像処理システム１と同じであるので、以下では、それらの説明については繰り返さない。
【０１０８】
［Ｂ．管理装置１００の機能構成］
図１４および図１５を参照して、第２の実施の形態に従う管理装置１００の機能について説明する。図１４は、第２の実施の形態に従う管理装置１００の機能構成の一例を示す図である。
【０１０９】
図１４に示されるように、管理装置１００は、主要なハードウェア構成として、制御装置１０１と、記憶装置１０３とを含む。制御装置１０１は、機能構成として、設定部１５２と、推定部１５４と、特定部１５６と、最適化部１５８と、生成部１６０とを含む。
【０１１０】
最適化部１５８以外の機能構成については図５で説明した通りであるので、以下では、それらの説明については繰り返さない。
【０１１１】
画像処理の実行順序が入れ替えられたとしても、出力結果が変化しない場合がある。このような場合、最適化部１５８は、実行時間がより短くなるように、ユーザ設定の処理フローに含まれる各画像処理の実行順序を最適化する。このとき、好ましくは、各画像処理の実行順序は、特定部１５６によって特定された実行主体の組み合わせを維持した状態で最適化される。あるいは、実行順序の最適化後の処理フローに対して、再度実行主体が最適化されてもよい。
【０１１２】
一例として、処理時間が短縮され得る画像処理の組み合わせ、および、当該組み合わせに対する最適化後の実行順序が予め規定されている。最適化部１５８は、当該規定を参照して、ユーザ設定の処理フローから、処理時間が短縮され得る画像処理の組み合わせを特定し、当該組み合わせについて規定されている最適化後の実行順序に従ってユーザ設定の画像処理の実行順序を最適化する。当該最適化結果は、管理装置１００の表示部１０５に表示される。
【０１１３】
図１５を参照して、当該最適化結果を表示する画面の一例について説明する。図１５は、実行主体の最適化結果と、実行順序の最適化結果とを表示する画面の一例を示す図である。
【０１１４】
表示部１０５は、たとえば、ユーザ設定の処理フロー１１１と、実行順序の最適化後の処理フロー１１１Ａと、処理フロー１１１の実行主体の組み合わせ１１４と、処理フロー１１１Ａの実行主体の組み合わせ１１４Ａと、実行主体の最適化結果の良否を判断するための指標１１５と、実行順序の最適化結果の良否を判断するための指標１１６と、セレクトボックス１１７とを表示する。図１５の例では、実行主体の組み合わせ１１４，１１４Ａは、同じである。
【０１１５】
指標１１５は、実行主体の最適化前後の処理フローの類似度と、実行主体の最適化前後における出力結果の変化の度合いを表わす安定度と、実行主体の最適化後における実行時間とを含む。
【０１１６】
指標１１６は、実行順序の最適化前後の処理フローの類似度と、実行順序の最適化前後における出力結果の変化の度合いを表わす安定度と、実行順序の最適化後における実行時間とを含む。
【０１１７】
セレクトボックス１１７は、実行主体および実行順序の最適化候補の中から特定の候補を選択する操作を受け付ける。ユーザが特定の候補を選択した状態でＯＫボタン１１８を押下すると、管理装置１００は、選択された候補に示される実行主体および実行順序を実行データ１２２（図９参照）に書き込む。ユーザがキャンセルボタン１１９を押下すると、管理装置１００は、実行主体や実行順序の最適化結果を反映せずに処理を終了する。
【０１１８】
［Ｃ．第２の実施の形態のまとめ］
以上のようにして、本実施の形態においては、管理装置１００は、ユーザ設定の処理フローの実行主体を最適化するだけでなく、当該処理フローにおける画像処理の実行順序をさらに最適化する。実行順序は、実行時間がより短くなるように最適化される。このとき、好ましくは、当該実行順序は、特定部１５６によって特定された実行主体の組み合わせを維持した状態で最適化される。これにより、管理装置１００は、実行主体が最適化された状態でユーザ設定の処理フローの実行時間をより短縮することができる。
【０１１９】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１２０】
１  画像処理システム、２  ネットワーク、１００  管理装置、１０１，２２０  制御装置、１０２  メモリ、１０３，２２２，３０８  記憶装置、１０３Ａ  アプリケーション、１０４  ネットワークインターフェイス、１０５，３０１  表示部、１０６，３０５  操作部、１０７，３０６  メモリカードリーダ・ライタ、１０７Ａ，３１０  メモリカード、１０８  内部バス、１１０，２２２Ｂ  ライブラリ、１１０Ａ  項目群、１１０Ｂ，１１０Ｃ  画像処理群、１１１，１１１Ａ  処理フロー、１１２  実行時間、１１３  推定結果、１１４，１１４Ａ  組み合わせ、１１５，１１６  指標、１１７  セレクトボックス、１１８  ＯＫボタン、１１９  キャンセルボタン、１２０  実行時間情報、１２１Ａ  ＣＰＵ、１２１Ｂ  ＦＰＧＡ、１２２  実行データ、１５２  設定部、１５４  推定部、１５６  特定部、１５８  最適化部、１６０  生成部、１８０  ユーザインターフェイス、１８１  設定済項目表示領域、１８２  処理項目選択領域、１８３  カメラ画像表示領域、１８４  追加ボタン、１８５  ボタン、２００  画像処理装置、２１０  照明部、２１１  照明制御ユニット、２１２  照明レンズ、２２１，３０３  処理部、２２２Ａ  本体プログラム、２２３  ネットワーク通信部、２２５  外部入出力部、２３０  撮像部、２３１  撮像レンズ、２３２  撮像素子、３００  表示設定器、３０２  表示制御部、３０４  通信部、３０８Ａ  部品データ、５００  ワーク。
【図１】
2018124605.tif 000003
【図２】
2018124605.tif 000004
【図３】
2018124605.tif 000005
【図４】
2018124605.tif 000006
【図５】
2018124605.tif 000007
【図６】
2018124605.tif 000008
【図７】
2018124605.tif 000009
【図８】
2018124605.tif 000010
【図９】
2018124605.tif 000011
【図１０】
2018124605.tif 000012
【図１１】
2018124605.tif 000013
【図１２】
2018124605.tif 000014
【図１３】
2018124605.tif 000015
【図１４】
2018124605.tif 000016
【図１５】
2018124605.tif 000017