(57)【要約】【課題】ユーザ設定の処理フローが更新された場合であっても必要な機能の格納場所を特定することができる画像処理システムを提供する。【解決手段】画像処理システムは、設定装置１００と画像処理装置２００とを備える。画像処理装置２００は、記憶装置２２２とＦＰＧＡ（Field Programmable Gate Array）とを含む。設定装置１００は、ライブラリ１１０から選択された選択対象の画像処理プログラムの各々について記憶装置２２２における格納場所を規定した格納場所情報１３０を生成する生成部と、選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フロー１１１と、格納場所情報１３０とを画像処理装置２００に送信する送信部とを含む。画像処理装置２００は、受信した画像処理プログラムを格納場所情報１３０に規定される記憶装置２２２の格納場所に書き込む書換部を含む。【選択図】図２
2018151737.tif 000002
【特許請求の範囲】
【請求項１】
画像処理システムであって、
画像処理装置と、
前記画像処理装置と通信可能に構成されている情報処理装置とを備え、
前記画像処理装置は、
第１記憶部と、
内部の回路構成を再構成可能に構成されているＦＰＧＡ（Field Programmable Gate Array）とを含み、
前記情報処理装置は、
前記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを格納するための第２記憶部と、
前記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するための設定部と、
前記選択対象の画像処理プログラムの各々について前記第１記憶部における格納場所を規定した格納場所情報を生成するための生成部と、
前記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、前記格納場所情報とを前記画像処理装置に送信するための送信部とを含み、
前記画像処理装置は、さらに、
前記情報処理装置から受信した画像処理プログラムの各々を前記格納場所情報に規定される前記第１記憶部の格納場所に書き込むための書換部と、
前記処理フローの実行指示を受け付けたことに基づいて、当該処理フローに規定される実行順序に従って前記格納場所情報に規定される前記第１記憶部の格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従って前記ＦＰＧＡの回路構成を再構成するための再構成部とを含む、画像処理システム。
【請求項２】
前記画像処理装置における前記第１記憶部の容量は、前記情報処理装置における前記第２記憶部の容量よりも小さい、請求項１に記載の画像処理システム。
【請求項３】
前記格納場所情報は、前記選択対象の画像処理プログラムの各々における第１記憶部への格納先を示す先頭アドレスと、前記選択対象の画像処理プログラムの各々におけるデータサイズとを前記格納場所として規定する、請求項１または２に記載の画像処理システム。
【請求項４】
前記ユーザインターフェイスは、前記選択対象の画像処理プログラムに新たな画像処理プログラムを追加するための追加操作を受け付け可能に構成されており、
前記生成部は、前記ユーザインターフェイスが前記追加操作を受け付けたことに基づいて、前記新たな画像処理プログラムの前記第１記憶部における格納場所を前記格納場所情報に追加する、請求項１〜３のいずれか１項に記載の画像処理システム。
【請求項５】
前記ユーザインターフェイスは、前記選択対象の画像処理プログラムから特定の画像処理プログラムを削除するための削除操作を受け付け可能に構成されており、
前記生成部は、前記ユーザインターフェイスが前記削除操作を受け付けたことに基づいて、前記格納場所情報に規定されている格納場所の内、前記削除操作によって指定された画像処理プログラムの格納場所を削除する、請求項１〜４のいずれか１項に記載の画像処理システム。
【請求項６】
画像処理装置に備えられるＦＰＧＡにおける回路の再構成方法であって、
前記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、
前記選択対象の画像処理プログラムの各々について前記画像処理装置の記憶部における格納場所を規定した格納場所情報を生成するステップと、
前記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、前記格納場所情報とを前記画像処理装置に送信するステップと、
前記画像処理装置において、画像処理プログラムの各々を前記格納場所情報に規定される前記記憶部の格納場所に書き込むステップと、
前記画像処理装置において、前記処理フローに規定される実行順序に従って前記格納場所情報に規定される前記記憶部の格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従って前記ＦＰＧＡの回路構成を再構成するステップとを備える、再構成方法。
【請求項７】
第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置であって、
前記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを格納するための第２記憶部と、
前記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するための設定部と、
前記選択対象の画像処理プログラムの各々について前記第１記憶部における格納場所を規定している格納場所情報を生成するための生成部と、
前記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、前記格納場所情報とを前記画像処理装置に送信するための送信部とを含む、情報処理装置。
【請求項８】
第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置における情報処理方法であって、
前記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、
前記選択対象の画像処理プログラムの各々について前記第１記憶部における格納場所を規定している格納場所情報を生成するステップと、
前記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、前記格納場所情報とを前記画像処理装置に送信するステップとを備える、情報処理方法。
【請求項９】
第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置によって実行される情報処理プログラムであって、
前記情報処理プログラムは、前記情報処理装置に、
前記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、
前記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、
前記選択対象の画像処理プログラムの各々について前記第１記憶部における格納場所を規定している格納場所情報を生成するステップと、
前記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、前記格納場所情報とを前記画像処理装置に送信するステップとを実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ＦＰＧＡの回路構成を再構成するための技術に関するものである。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野において、ワークを自動で検査するための技術が普及している。ワークの検査処理は、様々な画像処理の組み合わせによって実現される。このような画像処理の組み合わせをユーザ自身で設定するためのユーザインターフェイスを提供するアプリケーションが開発されている。
【０００３】
当該アプリケーションに関し、特開２０１４−２０３３０９号公報（特許文献１）は、「ユーザが有している特定のアプリケーション画像処理についての知識を利用して、より効率かつ高速な画像処理を実現できる」画像処理装置を開示している。特許文献１によれば、ユーザは、異なる画像処理が定義された複数の処理項目の中から所望の処理項目を選択し、当該処理項目をユーザインターフェイス上に並べて配置し、その並び順に応じた実行順序で各処理項目が実行される。ユーザは、処理項目の組み合わせを変えることで任意の検査処理を実現することができる。以下では、ユーザによって組み合わされた処理項目で実現される一連の画像処理群を「ユーザ設定の処理フロー」ともいう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザ設定の処理フローは、たとえば、視覚センサなどの画像処理装置によって実行される。画像処理装置に搭載されているＦＰＧＡによっては、処理の実行中に回路構成を動的に再構成する機能（所謂ＰＲ：Partial Reconfiguration）を有するものがある。このようなＦＰＧＡが利用される場合、画像処理装置は、ユーザ設定の処理フローを実行する過程でＦＰＧＡの回路構成を適宜再構成する。
【０００６】
ＦＰＧＡの回路構成を再構成するための種々の画像処理プログラムは、たとえば、サーバなどの情報処理装置から提供される。画像処理装置のメモリ容量は一般的にはそれほど大きくないため、情報処理装置から提供され得る全ての画像処理プログラムを画像処理装置に予めインストールすることは現実的ではない。そのため、ユーザ設定の処理フローを実現するために必要な画像処理プログラムのみが情報処理装置からインストールされる。
【０００７】
ユーザ設定の処理フローが更新された場合には、画像処理装置は、必要な画像処理プログラムを情報処理装置から新たにインストールする必要がある。このとき、画像処理装置における画像処理プログラムの格納場所が書き換えられると、画像処理装置は、必要な機能がどこに格納されているのかを特定することができない。したがって、ユーザ設定の処理フローが更新された場合であっても必要な機能の格納場所を特定することができる技術が望まれている。
【課題を解決するための手段】
【０００８】
ある局面に従うと、画像処理システムは、画像処理装置と、上記画像処理装置と通信可能に構成されている情報処理装置とを備える。上記画像処理装置は、第１記憶部と、内部の回路構成を再構成可能に構成されているＦＰＧＡとを含む。上記情報処理装置は、上記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを格納するための第２記憶部と、上記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するための設定部と、上記選択対象の画像処理プログラムの各々について上記第１記憶部における格納場所を規定した格納場所情報を生成するための生成部と、上記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、上記格納場所情報とを上記画像処理装置に送信するための送信部とを含む。上記画像処理装置は、さらに、上記情報処理装置から受信した画像処理プログラムの各々を上記格納場所情報に規定される上記第１記憶部の格納場所に書き込むための書換部と、上記処理フローの実行指示を受け付けたことに基づいて、当該処理フローに規定される実行順序に従って上記格納場所情報に規定される上記第１記憶部の格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従って上記ＦＰＧＡの回路構成を再構成するための再構成部とを含む。
【０００９】
好ましくは、上記画像処理装置における上記第１記憶部の容量は、上記情報処理装置における上記第２記憶部の容量よりも小さい。
【００１０】
好ましくは、上記格納場所情報は、上記選択対象の画像処理プログラムの各々における第１記憶部への格納先を示す先頭アドレスと、上記選択対象の画像処理プログラムの各々におけるデータサイズとを上記格納場所として規定する。
【００１１】
好ましくは、上記ユーザインターフェイスは、上記選択対象の画像処理プログラムに新たな画像処理プログラムを追加するための追加操作を受け付け可能に構成されている。上記生成部は、上記ユーザインターフェイスが上記追加操作を受け付けたことに基づいて、上記新たな画像処理プログラムの上記第１記憶部における格納場所を上記格納場所情報に追加する。
【００１２】
好ましくは、上記ユーザインターフェイスは、上記選択対象の画像処理プログラムから特定の画像処理プログラムを削除するための削除操作を受け付け可能に構成されている。上記生成部は、上記ユーザインターフェイスが上記削除操作を受け付けたことに基づいて、上記格納場所情報に規定されている格納場所の内、上記削除操作によって指定された画像処理プログラムの格納場所を削除する。
【００１３】
他の局面に従うと、画像処理装置に備えられるＦＰＧＡにおける回路の再構成方法は、上記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、上記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、上記選択対象の画像処理プログラムの各々について上記画像処理装置の記憶部における格納場所を規定した格納場所情報を生成するステップと、上記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、上記格納場所情報とを上記画像処理装置に送信するステップと、上記画像処理装置において、画像処理プログラムの各々を上記格納場所情報に規定される上記記憶部の格納場所に書き込むステップと、上記画像処理装置において、上記処理フローに規定される実行順序に従って上記格納場所情報に規定される上記記憶部の格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従って上記ＦＰＧＡの回路構成を再構成するステップとを備える。
【００１４】
他の局面に従うと、第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置は、上記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを格納するための第２記憶部と、上記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するための設定部と、上記選択対象の画像処理プログラムの各々について上記第１記憶部における格納場所を規定している格納場所情報を生成するための生成部と、上記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、上記格納場所情報とを上記画像処理装置に送信するための送信部とを含む。
【００１５】
他の局面に従うと、第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置における情報処理方法は、上記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、上記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、上記選択対象の画像処理プログラムの各々について上記第１記憶部における格納場所を規定している格納場所情報を生成するステップと、上記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、上記格納場所情報とを上記画像処理装置に送信するステップとを備える。
【００１６】
他の局面に従うと、第１記憶部とＦＰＧＡとを備える画像処理装置と通信可能に構成されている情報処理装置によって実行される情報処理プログラムは、上記情報処理装置に、上記ＦＰＧＡによって実行され得る複数の画像処理プログラムを含むライブラリを準備するステップと、上記ライブラリから１つ以上の画像処理プログラムを選択する選択操作と、当該選択操作による選択対象の画像処理プログラムに対して実行順序を指定する指定操作とを受け付け可能に構成されているユーザインターフェイスを提供するステップと、上記選択対象の画像処理プログラムの各々について上記第１記憶部における格納場所を規定している格納場所情報を生成するステップと、上記選択対象の画像処理プログラムと、当該画像処理プログラムの実行順序を規定した処理フローと、上記格納場所情報とを上記画像処理装置に送信するステップとを実行させる。
【発明の効果】
【００１７】
ある局面において、ユーザ設定の処理フローが更新された場合であっても必要な機能の格納場所を特定することができる。
【００１８】
本開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に従う画像処理システムのシステム構成の一例を示す図である。
【図２】処理フローの設定処理を時系列に示す概念図である。
【図３】実施の形態に従う画像処理装置による計測処理を時系列に示す概念図である。
【図４】実施の形態に従う画像処理システムの全体構成を示す模式図である。
【図５】実施の形態に従う画像処理システムの機能構成の一例を示す図である。
【図６】設定部によって提供されるユーザインターフェイスを示す図である。
【図７】ライブラリのデータ構造の一例を示す図である。
【図８】設定部によって提供されるユーザインターフェイスを示す図である。
【図９】ユーザインターフェイスの変形例を示す図である。
【図１０】ユーザ設定の処理フローを更新するためのユーザインターフェイスを示す図である。
【図１１】実施の形態に従う画像処理装置の記憶装置におけるメモリ構造の一例を示す図である。
【図１２】実施の形態に従う設定装置と画像処理装置との間のデータの流れを示すシーケンス図である。
【図１３】実施の形態に従う設定装置の主要なハードウェア構成を示すブロック図である。
【図１４】実施の形態に従う画像処理装置および表示設定器の主要なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００２１】
［Ａ．概要］
図１〜図３を参照して、本実施の形態に従う画像処理システム１の概要について説明する。図１は、本実施の形態に従う画像処理システム１のシステム構成の一例を示す図である。画像処理システム１は、典型的には、生産ラインなどに組み込まれる。画像処理システム１は、生産ライン上を搬送される検査対象のワークを撮像することによって得られる画像に基づいて、文字の認識やキズの検査といった処理（以下、「計測処理」ともいう。）を実行する。
【００２２】
図１に示す例において、画像処理システム１は、情報処理装置の一例である設定装置１００と、設定装置１００に通信可能に構成されている１つ以上の画像処理装置２００とを含む。
【００２３】
設定装置１００および画像処理装置２００は、ネットワーク２に接続されている。たとえば、ワークはベルトコンベヤなどの搬送機構によって所定方向に搬送され、それぞれの画像処理装置２００は、この搬送経路に相対して予め定められた位置に配置される。
【００２４】
画像処理装置２００は、たとえば、撮像機能を備えた画像センサである。より具体的には、画像処理装置２００は、撮像部と、画像処理機能を実現するための機能モジュールを複数含むライブラリを格納する記憶装置と、少なくとも１つの機能モジュール（典型的には、プログラムモジュール）を実行することで、撮像部から得られる画像を処理する処理部とを含む。各機能モジュールは、画像処理装置２００において何らかの画像処理機能を実現するための命令コードや実行モジュールなどを含む。ユーザは、ライブラリに含まれる画像処理を任意に組み合わせることで様々な処理フローを画像処理装置２００に設定することができ、任意の計測処理を実現することができる。
【００２５】
このように、ユーザは、計測処理に先立って処理フローを設定する。以下では、処理フローの設定処理と、当該処理フローを実行することによって実現される計測処理とについて順に説明する。
【００２６】
（Ａ１．設定処理）
図２を参照して、ユーザによって設計された処理フローを画像処理装置に設定する過程について説明する。図２は、処理フローの設定処理を時系列に示す概念図である。
【００２７】
ステップＳ１において、設定装置１００の表示部において、複数の画像処理を含むライブラリ１１０が一覧表示される。ユーザは、キーボードやマウスなどの操作部を操作することで、ライブラリ１１０から１つ以上の画像処理を選択する操作と、当該操作によって選択された選択対象の各画像処理に対して実行順序を指定する操作とを行う。これらの操作が繰り返し行われることで任意の処理フローが設計される。画像処理の実行順序は、たとえば、選択対象の画像処理の並び順によって指定される。図２の例では、ライブラリ１１０から選択された画像処理群によって処理フロー１１１が設計されている。
【００２８】
好ましくは、設定装置１００は、処理フロー１１１に含まれる各画像処理について画像処理装置２００での実行主体を指定できるように構成される。一例として、画像処理装置２００は、ＣＰＵおよびＦＰＧＡを有し、ユーザは、ＣＰＵおよびＦＰＧＡの一方を実行主体として指定することができる。これにより、後述の計測処理では、処理フロー１１１に含まれる各画像処理が指定された実行主体によって実行される。典型的には、画像処理装置２００のＦＰＧＡには、ユーザ設定の処理フローの実行中に回路構成を動的に再構成する機能（所謂ＰＲ：Partial Reconfiguration）を有するものが採用される。回路構成が適宜再構成されることで、ＦＰＧＡの回路規模が仮想的に拡張される。
【００２９】
ステップＳ２において、設定装置１００は、ユーザ設定の処理フロー１１１に基づいて、格納場所情報１３０を生成する。格納場所情報１３０において、処理フロー１１１に含まれる各画像処理の識別情報と、各画像処理を実現するための画像処理プログラムの格納先とが対応付けられる。画像処理プログラムの格納先は、たとえば、画像処理装置２００の記憶装置２２２における先頭アドレスと、画像処理プログラムのデータサイズとで表わされる。
【００３０】
なお、画像処理プログラムの格納先は、他の情報で表わされてもよい。一例として、画像処理プログラムの格納先は、先頭アドレスと最終アドレスとで表わされてもよい。あるいは、画像処理プログラムの格納先は、最終アドレスとデータサイズとで表わされてもよい。
【００３１】
ステップＳ３において、設定装置１００は、ユーザ設定の処理フロー１１１と、格納場所情報１３０と、処理フロー１１１を実現するための各画像処理プログラムとを実行データ１２２として画像処理装置２００に送信する。典型的には、当該画像処理プログラムは、画像処理装置２００のＦＰＧＡ２０２の回路構成を再構成するための再構成データである。画像処理装置２００は、設定装置１００から受信した各画像プログラムを格納場所情報１３０に規定されている格納場所に書き込む。また、画像処理装置２００は、ユーザ設定の処理フロー１１１と格納場所情報１３０とを記憶装置２２２に書き込む。
【００３２】
（Ａ２．計測処理）
次に、図３を参照して、ユーザ設定の処理フロー１１１によって実現される計測処理について説明する。図３は、画像処理装置２００による計測処理を時系列に示す概念図である。
【００３３】
ステップＳ５において、画像処理装置２００は、計測処理の実行指示を受け付けたとする。当該実行指示は、たとえば、画像処理装置２００の撮像部から画像を取得する度に発せられる。画像処理装置２００のＣＰＵ２０１は、計測処理の実行指示を受け付けたことに基づいて、記憶装置２２２に格納されている処理フロー１１１を参照し、１番目に実行する画像処理を特定する。図３の例では、画像処理「膨張」が特定される。ＣＰＵ２０１は、記憶装置２２２に格納されている格納場所情報１３０を参照して、画像処理「膨張」を実現するための画像処理プログラムの格納場所を特定し、当該格納場所から当該画像処理プログラムを取得する。画像処理「膨張」の実行主体としてはＦＰＧＡ２０２が関連付けられているので、ＣＰＵ２０１は、取得した画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。これにより、ＦＰＧＡ２０２の各回路素子が結線し直される。その後、ＦＰＧＡ２０２は、再構成された回路構成に従って画像処理「膨張」を実行する。
【００３４】
ステップＳ６において、設定装置１００は、画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている処理フロー１１１を参照し、２番目に実行する画像処理を特定する。図３の例では、画像処理「収縮」が特定される。画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている格納場所情報１３０を参照して、画像処理「収縮」を実現するための画像処理プログラムの格納場所を特定し、当該格納場所から当該画像処理プログラムを取得する。画像処理「収縮」の実行主体としてはＦＰＧＡ２０２が関連付けられているので、ＣＰＵ２０１は、取得した画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。これにより、ＦＰＧＡ２０２の各回路素子が結線し直される。その後、ＦＰＧＡ２０２は、再構成された回路構成に従って画像処理「収縮」を実行する。
【００３５】
ステップＳ７において、画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている処理フロー１１１を参照し、３番目に実行する画像処理を特定する。図３の例では、画像処理「平滑化弱」が特定される。画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている格納場所情報１３０を参照して、画像処理「平滑化弱」を実現するための画像処理プログラムの格納場所を特定し、当該格納場所から当該画像処理プログラムを取得する。画像処理「平滑化弱」の実行主体としてはＦＰＧＡ２０２が関連付けられているので、ＣＰＵ２０１は、取得した画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。これにより、ＦＰＧＡ２０２の各回路素子が結線し直される。その後、ＦＰＧＡ２０２は、再構成された回路構成に従って画像処理「平滑化弱」を実行する。
【００３６】
以上のように、画像処理装置２００は、処理フロー１１１の実行指示を受け付けたことに基づいて、処理フロー１１１に規定される実行順序に従って格納場所情報１３０に規定される記憶装置２２２（第１記憶部）の格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。処理フロー１１１が設計される度に格納場所情報１３０が生成されるので、画像処理装置２００は、処理フロー１１１が更新された場合であっても処理フロー１１１を実現するための各機能の格納場所を特定することができる。
【００３７】
なお、図３では、ＣＰＵ２０１がＦＰＧＡ２０２の回路構成を書き換える例について説明を行ったが、ＦＰＧＡ２０２の回路構成は、その他の制御装置によって書き換えられてもよい。たとえば、ＦＰＧＡ２０２の回路構成は、ＤＭＡ（Direct Memory Access controller）コントローラによって書き換えられてもよい。
【００３８】
［Ｂ．システム全体構成］
次に、本実施の形態に従う画像処理システム１の全体構成について説明する。図４は、画像処理システム１の全体構成を示す模式図である。図４を参照して、画像処理システム１は、設定装置１００と、設定装置１００とネットワーク２を介して接続される１つ以上の画像処理装置２００および表示設定器３００を含む。画像処理装置２００には、ＰＬＣ（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）といったディスプレイなどからなる。表示制御部３０２は、処理部３０３からの指示に従って、表示部３０１に画像を表示させるための処理を行う。
【０１０６】
処理部３０３は、画像処理装置２００からの指示／命令に従って、表示部３０１に表示されるべき画像を生成する処理を行うとともに、操作部３０５を介したユーザ入力に応答して、その入力値を画像処理装置２００へ送出する。
【０１０７】
記憶装置３０８は、ＲＯＭ、フラッシュメモリ、ＨＤＤ、およびＳＳＤといった不揮発性記憶装置、および／または、ＲＡＭなどの不揮発メモリを含む。記憶装置３０８は、部品データ３０８Ａとして、画面表示に用いるオブジェクトを格納している。処理部３０３がこれらの部品データ３０８Ａを利用することで、画面表示を行う。
【０１０８】
通信部３０４は、画像処理装置２００などとの間でデータを遣り取りするためのインターフェイスである。
【０１０９】
操作部３０５は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令を処理部３０３などへ出力する。操作部３０５は、典型的には、表示部３０１の表面に配置されるタッチパネル（感圧センサ）、ボタンおよびキーなどからなる。
【０１１０】
メモリカードリーダ・ライタ３０６は、メモリカード３１０からデータを読み出し、およびメモリカード３１０へデータを書き込む。メモリカード３１０としては、ＳＤカードなどの公知の記録媒体を採用できる。
【０１１１】
［Ｇ．まとめ］
以上のようにして、設定装置１００は、処理フロー１１１を設計するためのユーザインターフェイスを提供し、当該ユーザインターフェイスで設定された処理フロー１１１を実現するための画像処理プログラムの格納先を格納場所情報１３０に規定する。その後、設定装置１００は、ユーザによって設定された処理フロー１１１と、処理フロー１１１を実現するための画像処理プログラムと、生成した格納場所情報１３０とを画像処理装置２００に送信する。画像処理装置２００は、情報処理装置から受信した画像処理プログラムの各々を格納場所情報１３０に規定される格納先に書き込む。画像処理装置２００は、処理フロー１１１の実行指示を受け付けたことに基づいて、処理フロー１１１に規定される実行順序に従って格納場所情報１３０に規定される格納場所から画像処理プログラムを順次読み出し、当該画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。
【０１１２】
処理フロー１１１が設計される度に格納場所情報１３０が生成されるので、画像処理装置２００は、処理フロー１１１が更新された場合であっても処理フロー１１１を実現するための各機能の格納場所を特定することができる。
【０１１３】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１１４】
１  画像処理システム、２  ネットワーク、１００  設定装置、１０１，２２０  制御装置、１０２  メモリ、１０３，２２２，３０８  記憶装置、１０３Ａ  アプリケーション、１０４  ネットワークインターフェイス、１０５，３０１  表示部、１０６，３０５  操作部、１０７，３０６  メモリカードリーダ・ライタ、１０７Ａ，３１０  メモリカード、１０８  内部バス、１１０  ライブラリ、１１０Ａ  識別情報、１１０Ｂ，１１０Ｃ  画像処理プログラム群、１１１  処理フロー、１１２，１３５  指定領域、１１２Ａ  セレクトボックス、１１２Ｂ  メニュー、１１３  更新欄、１１３Ａ，１１４Ａ  機能一覧、１１３Ｂ，１１４Ｂ  バージョン情報、１１３Ｃ，１１４Ｄ  容量情報、１１３Ｄ，１１４Ｅ  選択欄、１１４  削除欄、１１４Ｃ  使用シーン、１１５  推奨ボタン、１１６  実行ボタン、１１８  ＯＫボタン、１１９  キャンセルボタン、１２２  実行データ、１３０，１３０Ａ，１３０Ｂ  格納場所情報、１３１  画像処理プログラム、１４０，１４０Ａ，１４０Ｂ，１８０  ユーザインターフェイス、１５２  設定部、１５４  生成部、１５６  送信部、１８１  設定済項目表示領域、１８２  処理項目選択領域、１８３  カメラ画像表示領域、１８４  追加ボタン、１８５  ボタン、２００  画像処理装置、２０１  ＣＰＵ、２０２  ＦＰＧＡ、２１０  照明部、２１１  照明制御ユニット、２１２  照明レンズ、２２１，３０３  処理部、２２２Ａ  本体プログラム、２２３  ネットワーク通信部、２２５  外部入出力部、２３０  撮像部、２３１  撮像レンズ、２３２  撮像素子、２５２  受信部、２５４  書換部、２５６  再構成部、３００  表示設定器、３０２  表示制御部、３０４  通信部、３０８Ａ  部品データ、５００  ワーク。
【図１】
2018151737.tif 000003
【図２】
2018151737.tif 000004
【図３】
2018151737.tif 000005
【図４】
2018151737.tif 000006
【図５】
2018151737.tif 000007
【図６】
2018151737.tif 000008
【図７】
2018151737.tif 000009
【図８】
2018151737.tif 000010
【図９】
2018151737.tif 000011
【図１０】
2018151737.tif 000012
【図１１】
2018151737.tif 000013
【図１２】
2018151737.tif 000014
【図１３】
2018151737.tif 000015
【図１４】
2018151737.tif 000016
【手続補正書】
【提出日】平成30年4月4日(2018.4.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
ステップＳ３において、設定装置１００は、ユーザ設定の処理フロー１１１と、格納場所情報１３０と、処理フロー１１１を実現するための各画像処理プログラムとを実行データ１２２として画像処理装置２００に送信する。典型的には、当該画像処理プログラムは、画像処理装置２００のＦＰＧＡ２０２の回路構成を再構成するための再構成データである。画像処理装置２００は、設定装置１００から受信した各画像処理プログラムを格納場所情報１３０に規定されている格納場所に書き込む。また、画像処理装置２００は、ユーザ設定の処理フロー１１１と格納場所情報１３０とを記憶装置２２２に書き込む。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
ステップＳ６において、画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている処理フロー１１１を参照し、２番目に実行する画像処理を特定する。図３の例では、画像処理「収縮」が特定される。画像処理装置２００のＣＰＵ２０１は、記憶装置２２２に格納されている格納場所情報１３０を参照して、画像処理「収縮」を実現するための画像処理プログラムの格納場所を特定し、当該格納場所から当該画像処理プログラムを取得する。画像処理「収縮」の実行主体としてはＦＰＧＡ２０２が関連付けられているので、ＣＰＵ２０１は、取得した画像処理プログラムに従ってＦＰＧＡ２０２の回路構成を再構成する。これにより、ＦＰＧＡ２０２の各回路素子が結線し直される。その後、ＦＰＧＡ２０２は、再構成された回路構成に従って画像処理「収縮」を実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
ユーザは、ユーザインターフェイス１８０の処理項目選択領域１８２において、目的の像処理に必要な処理項目を選択する（（１）処理項目を選択）とともに、設定済項目表示領域１８１において選択した処理項目を追加すべき位置（順序）を選択する（（２）追加位置を選択）。そして、ユーザが処理項目挿入／追加ボタン１８４を選択する（（３）挿入／追加ボタンを押す）と、処理項目が追加される（（４）処理項目が追加される）。処理項目追加後の処理設定の内容は、設定済項目表示領域１８１に反映される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
設定部１５２は、ライブラリ１１０に含まれる画像処理プログラムを選択可能な画像処理項目として処理項目選択領域１８２に表示する。図７を参照して、ライブラリ１１０について説明する。図７は、ライブラリ１１０のデータ構造の一例を示す図である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
ユーザは、選択欄１１３Ｄにおけるチェックボックスを選択することで、追加対象または更新対象の画像処理を指定することができる。同様に、ユーザは、選択欄１１４Ｅにおけるチェックボックスを選択することで、削除対象の画像処理を指定することができる。ユーザが推奨ボタン１１５を押下すると、追加、更新、および削除が推奨される画像処理が自動で決定される。追加、更新、および削除が推奨される画像処理についてはチェックボックスが選択された状態になり、それ以外の画像処理についてはチェックボックスが選択されていない状態となる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
ステップＳ６０において、画像処理装置２００は、処理フロー１１１と格納場所情報１３０とを記憶装置２２２から読み込む。画像処理装置２００は、上述の書換部２５４（図５参照）として、処理フロー１１１に規定される実行順序に従って格納場所情報１３０に規定される格納場所から画像処理プログラムを順次読み込む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
（Ｆ１：設定装置１００）
設定装置１００は、典型的には、汎用のコンピュータで実現されるが、スマートフォン、タブレット端末、その他の通信機能を備える情報処理装置で実現されてもよい。設定装置１００は、制御装置１０１と、メモリ１０２と、ＨＤＤ（Hard Disk Drive）などの記憶装置１０３と、ネットワークインターフェイス（Ｉ／Ｆ）１０４と、表示部１０５と、操作部１０６と、メモリカードリーダ・ライタ１０７とを含む。これらの各部は、内部バス１０８を介して、互いに通信可能に接続されている。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
（Ｆ２：画像処理装置２００）
次に、図１４を参照して、画像処理装置２００の装置構成について説明する。画像処理装置２００は、照明部２１０と、制御装置２２０と、撮像部２３０とを含む。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
本体プログラム２２２Ａは、画像処理装置２００の基本的な動作を実現するための基本プログラムであり、ＯＳおよび基本的なアプリケーションを含み得る。典型的には、画像処理装置２００における記憶装置２２２の容量は、設定装置１００における記憶装置１０３の容量よりも小さい。そのため、画像処理プログラム１３１は、画像処理装置２００で実行可能な画像処理機能に応じた数だけインストールされる。すなわち、画像処理プログラム１３１は、設定装置１００の記憶装置１０３に格納されるライブラリ１１０の少なくとも部分集合である。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１０４
【補正方法】変更
【補正の内容】
【０１０４】
（Ｆ３：表示設定器３００）
引き続き図１４を参照して、表示設定器３００は、表示部３０１と、表示制御部３０２と、処理部３０３と、通信部３０４と、操作部３０５と、メモリカードリーダ・ライタ３０６と、記憶装置３０８とを含む。
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2018151737.tif 000017
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図６
【補正方法】変更
【補正の内容】
【図６】
2018151737.tif 000018