(57)【特許請求の範囲】
【請求項１】
画像処理システムにおいてワークの画像処理を実行する画像処理装置と、当該画像処理装置の設定をサポートするデータサーバとを有する設定サポートシステムであって、
前記画像処理装置は、
画像検査の設定データを記憶する記憶手段と、
前記画像処理装置に接続または一体化された撮像手段により取得されたワークの画像に対して、前記設定データにしたがった画像検査を実行する検査手段と、を有し、
前記データサーバは、
前記画像処理システムの外部にある第一クライアント装置からの設定サポート要求を受信するサポート受付手段と、
前記画像処理装置の前記記憶手段に記憶されている第一設定データとワークの画像とを取得する取得手段と、
前記第一設定データを前記画像処理システムの外部にある第二クライアント装置からの指示に従って編集して第二設定データを作成する編集手段と、
前記第二設定データと前記ワークの画像とを用いて、前記検査手段が実行する画像検査をシミュレーションするシミュレーション手段と、
前記第一設定データに基づいて前記画像検査を実行して得られた検査結果と、前記第二設定データに基づいて前記画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに対比可能に表示させるための表示データを作成する作成手段と、
前記表示データを前記第一クライアント装置に送信する送信手段と
を有することを特徴とする設定サポートシステム。
【請求項２】
前記データサーバは、前記第一クライアント装置から前記検査結果と前記シミュレーション結果との切替指示を受け付ける受付手段を有し、
前記送信手段は、前記切替指示に応じて前記検査結果と前記シミュレーション結果との少なくとも一方を前記第一クライアント装置に送信することを特徴とする請求項１に記載の設定サポートシステム。
【請求項３】
前記切替指示は、前記検査結果を単独で表示するための切替指示と、前記シミュレーション結果を単独で表示するための切替指示と、前記検査結果と前記シミュレーション結果とを同時に表示するための切替指示とのうちのいずれかであることを特徴とする請求項２に記載の設定サポートシステム。
【請求項４】
前記第一クライアント装置は、前記画像処理装置とともに前記ワークを製造する工場に設置され、
前記第二クライアント装置は、前記工場の外部に設置され、
前記送信手段は、前記表示データを前記第一クライアント装置と前記第二クライアント装置との両方に送信するように構成されていることを特徴とする請求項１ないし３のいずれか一項に記載の設定サポートシステム。
【請求項５】
前記編集手段は、前記第二クライアント装置から入力された指示に従って前記第一設定データを編集して第二設定データを作成するように構成されていることを特徴とする請求項４に記載の設定サポートシステム。
【請求項６】
前記送信手段は、前記第二設定データを前記画像処理装置に反映させることの許可を求めるためのオブジェクトを前記第一クライアント装置に表示させる表示データを送信するように構成されていることを特徴とする請求項５に記載の設定サポートシステム。
【請求項７】
前記データサーバは、
前記第二設定データを前記画像処理装置に反映させることの許可を示す許可信号を前記第一クライアント装置から受信すると、前記第二設定データを前記記憶手段に書き込んで更新する更新手段をさらに有することを特徴とする請求項６に記載の設定サポートシステム。
【請求項８】
前記データサーバは、複数の画像処理装置に接続されており、
前記編集手段は、前記複数の画像処理装置のそれぞれの設定データを編集するように構成されていることを特徴とする請求項１ないし７のいずれか一項に記載の設定サポートシステム。
【請求項９】
前記作成手段は、前記編集手段により編集される前の設定データである前記第一設定データと前記編集手段により編集された後の設定データである前記第二設定データとの差分を表示する表示データを作成することを特徴とする請求項１ないし８のいずれか一項に記載の設定サポートシステム。
【請求項１０】
前記編集手段は、前記第二クライアント装置を含む複数のクライアント装置のうち一台のクライアント装置にのみ前記第一設定データの編集権限を付与するように構成されていることを特徴とする請求項１ないし９のいずれか一項に記載の設定サポートシステム。
【請求項１１】
前記編集手段は、前記第二クライアント装置を含む複数のクライアント装置のうち一台のクライアント装置にのみ前記第一設定データと関連付けられている他のデータの編集権限を付与するように構成されていることを特徴とする請求項１０に記載の設定サポートシステム。
【請求項１２】
前記編集手段は、前記第二クライアント装置を含む複数のクライアント装置のうち一台のクライアント装置にのみ前記設定データのアクセス権限を付与するように構成されていることを特徴とする請求項１乃至９のいずれか一項に記載の設定サポートシステム。
【請求項１３】
前記編集手段は、前記設定データが参照している他のデータに対するアクセス権限を前記一台のクライアント装置にのみ付与し、他のクライアント装置にはアクセス権限を付与しないように構成されていることを特徴とする請求項１２に記載の設定サポートシステム。
【請求項１４】
画像処理システムにおいてワークの画像処理を実行する画像処理装置と、データサーバと、サポート用クライアント装置とを有する設定サポートシステムであって、
前記画像処理装置は、
画像検査の設定データを記憶する記憶手段と、
前記画像処理装置に接続または一体化された撮像手段により取得されたワークの画像に対して、前記設定データにしたがった画像検査を実行する検査手段と、を有し、
前記データサーバは、
ユーザ用クライアント装置からの設定サポート要求を受信するサポート受付手段と、
前記画像処理装置の前記記憶手段に記憶されている第一設定データとワークの画像とを取得する取得手段と、
前記取得手段により取得された前記第一設定データを前記サポート用クライアント装置からの指示に従って編集して第二設定データを作成する編集手段と、
前記第二設定データと前記ワークの画像とを用いて、前記検査手段が実行する画像検査をシミュレーションするシミュレーション手段と、
前記第一設定データに基づいて前記画像検査を実行して得られた検査結果と、前記第二設定データに基づいて前記画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに対比可能に表示させるための表示データを作成する作成手段と、
前記表示データを前記ユーザ用クライアント装置に送信する送信手段と、を有し、
前記サポート用クライアント装置は、
前記検査結果と前記シミュレーション結果を受信する受信手段と、
前記検査結果と前記シミュレーション結果を表示する表示手段と、
を有することを特徴とする設定サポートシステム。
【請求項１５】
前記シミュレーション手段は、前記第一設定データと前記ワークの画像とを用いて前記画像検査をシミュレーションするように構成されており、
前記作成手段は、前記第一設定データのシミュレーション結果を、前記第一設定データに基づいて前記画像検査を実行して得られた検査結果として使用するように構成されていることを特徴とする請求項１または１４に記載の設定サポートシステム。
【請求項１６】
前記取得手段は、前記第一設定データに基づいて前記画像検査を実行して得られた検査結果を前記画像処理装置から取得するように構成されており、
前記作成手段は、前記画像処理装置から取得された検査結果を、前記第一設定データに基づいて前記画像検査を実行して得られた検査結果として使用するように構成されていることを特徴とする請求項１または１４に記載の設定サポートシステム。
【請求項１７】
画像検査の設定データを記憶する記憶手段とワークの画像に対して前記設定データにしたがった画像検査を実行する検査手段とを有する画像処理装置と接続されるデータサーバであって、
第一クライアント装置からの設定サポート要求を受信するサポート受付手段と、
前記画像処理装置の前記記憶手段に記憶されている第一設定データとワークの画像とを取得する取得手段と、
前記取得手段により取得された第一設定データを第二クライアント装置からの指示に従って編集して第二設定データを作成する編集手段と、
前記第二設定データと前記ワークの画像とを用いて、前記検査手段が実行する画像検査をシミュレーションするシミュレーション手段と、
前記第一設定データに基づいて前記画像検査を実行して得られた検査結果と、前記第二設定データに基づいて前記画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに対比可能に表示させるための表示データを作成する作成手段と、
前記表示データを前記第一クライアント装置に送信する送信手段と
を有することを特徴とするデータサーバ。
【請求項１８】
画像検査の設定データを記憶する記憶手段とワークの画像に対して前記設定データにしたがった画像検査を実行する検査手段とを有する画像処理装置と接続されるデータサーバの制御方法であって、
第一クライアント装置からの設定サポート要求を受信するサポート受付工程と、
前記画像処理装置の前記記憶手段に記憶されている設定データとワークの画像とを取得する取得工程と、
前記取得工程において取得された第一設定データを第二クライアント装置からの指示に従って編集して第二設定データを作成する編集工程と、
前記第二設定データと前記ワークの画像とを用いて、前記検査手段が実行する画像検査をシミュレーションするシミュレーション工程と、
前記第一設定データに基づいて前記画像検査を実行して得られた検査結果と、前記第二設定データに基づいて前記画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに対比可能に表示させるための表示データを作成する作成工程と、
前記第二クライアント装置からの指示に従って前記表示データを前記第一クライアント装置に送信する送信工程と
を有することを特徴とする制御方法。
【請求項１９】
請求項１７に記載のデータサーバの各手段としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査対象物の画像を取得して検査対象物を位置決めしたり、寸法を計測したり、または、外観を検査したりする画像処理システムをサポートする設定サポートシステムに関する。
【背景技術】
【０００２】
工場で生産された製品（ワーク）をカメラで撮像し、ワークの画像に基づいてワークを位置決めしたり、ワークの寸法を計測したり、または、ワークの外観を検査する画像処理システム（外観検査システム）が普及している。ワークの画像は画像処理システムの記憶装置を圧迫するため、画像処理が終了すると削除される。
【０００３】
一方で特許文献１によれば工業機械システムから工業データを収集するクラウドサービスとクラウドプラットフォームが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第9,477,936号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、画像処理システムは多数の画像処理ツールを備えているが、ユーザが多数の画像処理ツールを正しく設定することは困難であった。そのため、サポート担当者は画像処理システムが設置されている工場に出向いて画像処理システムの設定を手伝う必要があった。そこで、サポート担当会社からユーザのシステムにリモートログインして画像処理ツールの設定を支援することが考えられる。しかし、リモートログインを第三者に許可するには工場内のネットワークの設定を変更する必要がある。また、ユーザのセキュリティポリシーによって、リモートログインが禁止されていることもある。そこで、本発明は、ユーザによる画像処理システムの設定を効率よく支援することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
画像処理システムにおいてワークの画像処理を実行する画像処理装置と、当該画像処理装置の設定をサポートするデータサーバとを有する設定サポートシステムであって、
前記画像処理装置は、
画像検査の設定データを記憶する記憶手段と、
前記画像処理装置に接続または一体化された撮像手段により取得されたワークの画像に対して、前記設定データにしたがった画像検査を実行する検査手段と、を有し、
前記データサーバは、
前記画像処理システムの外部にある第一クライアント装置からの設定サポート要求を受信するサポート受付手段と、
前記画像処理装置の前記記憶手段に記憶されている第一設定データとワークの画像とを取得する取得手段と、
前記第一設定データを前記画像処理システムの外部にある第二クライアント装置からの指示に従って編集して第二設定データを作成する編集手段と、
前記第二設定データと前記ワークの画像とを用いて、前記検査手段が実行する画像検査をシミュレーションするシミュレーション手段と、
前記第一設定データに基づいて前記画像検査を実行して得られた検査結果と、前記第二設定データに基づいて前記画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに対比可能に表示させるための表示データを作成する作成手段と、
前記表示データを前記第一クライアント装置に送信する送信手段と
を有することを特徴とする設定サポートシステムを提供する。
【発明の効果】
【０００７】
本発明によれば、ユーザによる画像処理システムの設定を効率よく支援することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】設定サポートシステムを示す図
【図２】画像処理装置を示す図
【図３】画像処理装置の機能を説明する図
【図４】データストレージを示す図
【図５】データストレージの機能を示す図
【図６】クラウドを示す図
【図７】ＰＣを示す図
【図８】設定ＵＩを示す図
【図９】設定ＵＩを示す図
【図１０】バックアップ処理を示すフローチャート
【図１１】設定サポート処理を示すシーケンス図
【図１２】クラウドの機能を示す図
【図１３】編集ＵＩを示す図
【図１４】編集ＵＩを示す図
【図１５】編集ＵＩを示す図
【図１６】編集ＵＩを示す図
【図１７】編集結果ＵＩを示す図
【図１８】画像処理装置の機能を示す図
【図１９】クラウドの機能を示す図
【図２０】設定サポート処理を示すシーケンス図
【図２１】ＰＣの機能を示す図
【図２２】設定サポート処理を示すフローチャート
【図２３】編集結果ＵＩを示す図
【図２４】編集結果ＵＩを示す図
【図２５】シミュレーション結果の送信処理を示すフローチャート
【図２６】編集結果ＵＩの切替順序を示す図
【図２７】差分リストを示す図
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
図１は外観検査システム１の概略を示す概略図である。外観検査システム１は、工場で生産された製品（検査対象物）の外観を検査し、合格品かどうかを判定する画像処理システムである。検査対象物は一般にワークと呼ばれる。外観検査システム１は、画像処理装置２、プログラマブルロジックコントローラ（ＰＬＣ）３、カメラ４、照明装置５、コンソール９、モニタ１０、プログラム作成支援装置１１を有している。ＰＬＣ３はパーソナルコンピュータなどのコンピュータであってもよい。ＰＬＣ３によって制御されるベルトコンベヤなどの搬送装置７によって検査対象物８が搬送され、照明装置５によって照明された検査対象物８がカメラ４によって撮像される。検査対象物８はワークと呼ばれることもある。画像処理装置２は、たとえば、ＰＬＣ３からの命令にしたがって、照明装置５の照明条件を切り替えたり、カメラ４に撮像を実行させたりする。
【００１１】
画像処理装置２は検査対象物８の画像から寸法計測や位置検出、面積計算などの各種計測処理を実行する。たとえば、画像処理装置２はカメラ４から得られた画像データを用いて画像処理を実行し、外部接続されたＰＬＣ３などの制御機器に対し、検査対象物８の良否などの判定結果を示す信号として判定信号を出力する。
【００１２】
カメラ４は検査対象物８を撮像する撮像素子を有するカメラモジュールを備えている。撮像素子としては、たとえばＣＭＯＳ（相補型金属酸化膜半導体）やＣＣＤ（電荷結合素子）を用いることができる。カメラ４は、ＰＬＣ３から入力される制御信号、たとえばカメラ４から画像データを取り込むタイミングを規定する撮像トリガ信号に基づいて、検査対象物８の撮像を行う。
【００１３】
モニタ１０は液晶パネルや自発光式パネル等の表示装置である。検査対象物８を撮像して得られた画像や、その画像データを用いた計測処理の結果を表示する。モニタ１０は、パターンマッチング用の比較データ（規範画像）を作成するために使用される基準画像など、良品から取得された画像を表示してもよい。なお、規範画像はモデル画像と呼ばれてもよい。
【００１４】
コンソール９は、ユーザがモニタ１０上で各種操作するため（モニタ１０がタッチパネルなら省略可）の入力装置である。コンソール９は、モニタ１０上で各メニュー項目を選択したり、パラメータ値を設定したりする。コンソール９は、ポインティングデバイスの一例である。つまり、コンソール９はマウスであってもよい。ユーザは、モニタ１０を視認することで、画像処理装置２の運転中の動作状態を確認することができる。また、ユーザは、モニタ１０を視認しつつ、コンソール９を操作することによって、必要に応じて各種設定や各種編集を行うことができる。
【００１５】
照明装置５は、検査対象物８を照明する装置である。照明装置５としては、たとえば、光沢を際立たせる同軸落射照明、傷や刻印のエッジが際立つローアングル照明、ブラックライトを当てるブラックライト照明、面照明（検査対象物の透過光または影を観察するための透過照明）、四方八方から拡散光を照射するドーム照明など、各種の照明を行う照明装置が採用されうる。特に、同軸落射照明は、視野全体に略均一に照明を当てる照明手法であり、カメラ４と照明装置５をＶ字に配置して検査対象物８からの正反射光を受光する照明手法とほぼ同様の効果が得られる利点がある。また、ローアングル照明は、たとえばＬＥＤ等の投光素子をリング状に配置し、検査対象物８の表面を浅い角度で全周方向から光を照らす照明手法である。検査対象物８の表面に当たった光はカメラ４の方向には反射せず、刻印や傷のエッジ部分で反射した光だけが受光される。すなわち、照射角度が非常に浅い角度であるため、光沢面では反射が弱く、検査対象物８上の僅かな傷やエッジでのみ強い反射が得られ、はっきりとしたコントラストが得られる。
【００１６】
プログラム作成支援装置１１は、画像処理装置２が実行する制御プログラムまたは設定データを作成するためのコンピュータ（ＰＣ）である。制御プログラムは、以下で説明するような外観検査に関するそれぞれ異なる計測を実行するための複数の計測処理モジュールを有している。画像処理装置２は、設定された順番に沿って各種計測処理モジュールを呼び出して実行する。プログラム作成支援装置１１と画像処理装置２とは、通信ケーブルや通信ネットワークを介して接続されている。プログラム作成支援装置１１上で生成された制御プログラムやパラメータ値等の設定データは通信ケーブル等を介して画像処理装置２に転送される。また逆に、画像処理装置２から制御プログラムやパラメータ値等の設定データなどを取り込んで、プログラム作成支援装置１１が再編集してもよい。
【００１７】
工場において、複数の検査対象物８は、コンベアなどの搬送装置７のライン上を流れてくる。画像処理装置２は、検査対象物８の上方（または側方、下方）に設置されているカメラ４により検査対象物８を撮像し、撮像した画像を基準画像（たとえば良品を撮像した画像）や基準画像から作成したモデル画像と比較して、検査対象物８に傷や欠損等が存在するか否かの判断を行う。検査対象物８に傷や欠損等が存在すると判断した場合には、ＮＧ判定となる。一方、検査対象物８に傷や欠損等が存在しないと判断した場合には、ＯＫ判定となる。このように、外観検査システム１は、検査対象物８を撮像した画像を用いて、検査対象物８の外観の良否判定を行う。なお、本明細書において外観検査または画像検査は、検査対象物の傷や欠損の有無に基づく良否判定のみならず、検査対象物の有無の判別や、検査対象物の位置決め等を含む。
【００１８】
検査対象物８の外観検査を行う場合、ユーザは検査に用いる各種パラメータの内容（パラメータ値等）を設定する必要がある。パラメータとしては、たとえば、シャッタースピードなどの撮像条件を規定する撮像パラメータ、照度などの照明条件を規定する照明パラメータ、どのような検査を行うかを示す検査条件を規定する計測処理パラメータ（いわゆる検査パラメータ）等がある。外観検査システム１では、良否判定を行う前に、これらの各種パラメータの内容を設定する。
【００１９】
外観検査システム１は、実際に搬送装置７のライン上を次々と流れてくる検査対象物８の外観検査を行うモード、すなわち実際に検査対象物８の良否判定を行う運転モード（Ｒｕｎモード）と、検査に用いられる各種パラメータの内容の設定を行う設定モード（非Ｒｕｎモード）とを有しており、これらのモードを切り替えるためのモード切替手段を有している。ユーザは、運転モードにおいて、搬送装置７のライン上を流れてくる複数の検査対象物８に対して良否判定が繰り返し行われる前に、設定モードにおいて、各種パラメータに対して最適なパラメータ値を設定（調整）する。基本的に、各種パラメータに対してはデフォルト値が設定されており、ユーザがパラメータ値としてデフォルト値が最適であると判断した場合には、特段、パラメータ値を調整する必要はない。しかし、実際のところ、周囲の照明環境、カメラ４の取り付け位置、カメラ４の姿勢ずれ、ピント調整等の相違に起因して、デフォルト値のままではユーザが望む判定結果を得ることができない場合がある。そこで、設定モードにおいて、画像処理装置２のモニタ１０上またはプログラム作成支援装置１１上にて、運転モードから設定モードに切り換え、各種パラメータの内容を編集できるようになっている。
【００２０】
データストレージ６は、外観検査システム１の設定データや検査結果などをバックアップするＮＡＳ（Network Attached Storage）などのストレージである。データストレージ６は、自己が保持している設定データを画像処理装置２に対してリストアする機能を有していてもよい。
【００２１】
クラウド１２は、たとえば、データストレージ６に記憶されているデータをバックアップするストレージサーバ（ファイルサーバ）である。クラウド１２は、外観検査システム１が設置されている工場の外部に設けられていることから、外部サーバと呼ばれてもよい。なお、データストレージ６は、外観検査システム１が設置されている工場の内部に設置されていてもよいし、工場の外部に設置されていてもよい。ＰＣ（パーソナルコンピュータ）１３ａ、１３ｂ、１３ｃはデータストレージ６やクラウド１２に接続し、設定データや検査結果などを表示装置に表示するコンピュータである。
【００２２】
＜外観検査システム１のハードウエア構成＞
図２は外観検査システム１のハードウエア構成の一例を示す図である。主制御部２１は、各種プログラムに基づき数値計算や情報処理を行うとともに、ハードウエア各部の制御を行う。たとえば、中間演算処理装置としてのＣＰＵ２２ａ、ワークメモリ２３ａおよびプログラムメモリ２４ａとを有している。ワークメモリ２３ａは主制御部２１が各種プログラムを実行する際のワークエリアとして機能するＲＡＭなどである。プログラムメモリ２４ａは、起動プログラムや初期化プログラムなどが格納されたＲＯＭ、フラッシュＲＯＭまたはＥＥＰＲＯＭなどである。照明制御部２６は主制御部２１のＣＰＵ２２ａやＰＬＣ３からの命令に基づいて照明装置５に対して照明制御信号を送信する。
【００２３】
画像入力部２５はカメラ４での撮像により取得された画像データを取り込むＡＳＩＣ（Application Specific Integrated Circuit）などから構成される。画像入力部２５には画像データをバッファリングするためのフレームバッファが含まれていてもよい。具体的に、画像入力部２５は、ＣＰＵ２２ａからカメラ４の撮像指令を受信すると、カメラ４に対して画像データ取り込み信号を送信する。そして、画像入力部２５は、カメラ４で撮像が行われた後、撮像して得られた画像データを取り込む。取り込んだ画像データは、一旦バッファリング（キャッシュ）される。
【００２４】
操作入力部２７ａは、コンソール９からの操作信号が入力される。操作入力部２７ａは、ユーザの操作に応じてコンソール９が出力する操作信号を受信するインターフェース（Ｉ／Ｆ）として機能する。
【００２５】
モニタ１０には、コンソール９を用いたユーザの操作内容が表示される。具体的に説明すると、コンソール９を操作することによって、ユーザはモニタ１０上で、画像処理の制御プログラムを編集したり、各計測処理モジュールのパラメータ値を編集したり、カメラ４の撮像条件を設定したり、基準画像の中で特徴的な部分を規範画像として登録したり、サーチ領域内をサーチして規範画像に一致した領域を検査領域として設定したりと、様々なことを行うことができる。
【００２６】
表示制御部２８ａはモニタ１０に対して画像やＧＵＩを表示させる表示用ＤＳＰ（デジタルシグナルプロセッサ）などから構成される。ＧＵＩはグラフィカルユーザインタフェースの略称である。表示制御部２８ａには、画像を表示させる際に画像データを一時記憶するＶＲＡＭなどのビデオメモリが含まれていてもよい。表示制御部２８ａはＣＰＵ２２から送られてきた表示指令（表示コマンド）に基づいてモニタ１０に対して所定の画像（映像）を表示させるための制御信号を送信する。たとえば、表示制御部２８ａは、計測処理前または計測処理後の画像データを表示するために、モニタ１０に対して制御信号を送信する。また、表示制御部２８ａはコンソール９を用いたユーザの操作内容をモニタ１０に表示させるための制御信号も送信する。
【００２７】
通信部２９ａは、外部のＰＬＣ３やプログラム作成支援装置１１、データストレージ６などと通信可能に接続される。通信部２９ａは送信回路と受信回路とを含むネットワーク通信デバイスやシリアル通信デバイスなどである。たとえば、センサ（不図示の光電センサ等）が検査対象物８の到着タイミングを認識するために製造ラインに設置され、かつ、ＰＬＣ３に接続されている。当該センサは検査対象物８を検知するとトリガ信号を出力する。通信部２９ａはＰＬＣ３から出力されたトリガ信号を受信するインターフェース（Ｉ／Ｆ）として機能する。トリガ信号はカメラ４に撮像を実行させる制御信号として利用される。また、通信部２９は、プログラム作成支援装置１１から転送されてくる画像処理装置２の制御プログラムなどを受信するインターフェース（Ｉ／Ｆ）としても機能する。
【００２８】
画像処理部３０は寸法演算やエッジ検出、面積計算などの計測処理を実行する演算用ＤＳＰなどから構成される。画像処理部３０には計測処理用の画像データを記憶するメモリが含まれていてもよい。画像処理部３０は画像データに対する計測処理を実行する。具体的に、画像処理部３０は、画像入力部２５のフレームバッファから画像データを読み出して、画像処理部３０内のメモリへ内部転送を行う。そして、画像処理部３０は、そのメモリに記憶された画像データを読み出して、計測処理を実行する。
【００２９】
プログラムメモリ２４ａは、照明制御部２６、画像入力部２５、操作入力部２７、表示制御部２８、通信部２９、および画像処理部３０の各部を、ＣＰＵ２２ａのコマンド等により制御するための制御プログラムを格納している。また、プログラム作成支援装置１１から転送されてきた制御プログラムはプログラムメモリ２４ａに格納される。
【００３０】
ＣＰＵ２２ａは、通信部２９を介してＰＬＣ３から撮像トリガ信号を受信すると、画像入力部２５に対して撮像指令（コマンド）を送る。また、ＣＰＵ２２ａは、制御プログラムに基づいて、画像処理部３０に対して、実行すべき画像処理を指示するコマンドを送信する。なお、撮像トリガ信号を生成する装置として、ＰＬＣ３ではなく、光電センサなどのトリガ入力用のセンサを通信部２９に直接接続してもよい。
【００３１】
これらの各ハードウエアは、バスなどの電気的な通信路（配線）を介し、通信可能に接続されている。
【００３２】
＜計測モジュール（画像処理ツール）＞
ここでは、外観検査を実行する計測モジュールを画像処理ツールと呼ぶことにする。なお、画像処理ツールは検査ツールや計測ツールと呼ばれてもよい。画像処理ツールには様々なものがあり、主要な画像処理ツールとしては、エッジ位置計測ツール、エッジ角度計測ツール、エッジ幅計測ツール、エッジピッチ計測ツール、エリア計測ツール、ブロブ計測ツール、パターンサーチ計測ツール、傷計測ツールなどがある。
●エッジ位置計測ツール：検査対象物８の画像が表示される画面上において、エッジ位置を検出したい検査領域に対してウインドウを設定することにより、設定された検査領域内で、任意の方向にスキャンして複数のエッジ（明から暗に切り替わる箇所または暗から明に切り替わる箇所）を検出する。検出した複数のエッジから、一のエッジの指定を受け付け、指定を受け付けたエッジの位置を計測する。
●エッジ角度計測ツール：設定を受け付けた検査領域内に２つのセグメントを設定し、それぞれのセグメントで検出したエッジからの検査対象物８の傾斜角度を計測する。傾斜角度は、たとえば時計回りを正とすることができる。
●エッジ幅計測ツール：設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出し、検出した複数のエッジ間の幅を計測する。
●エッジピッチ計測ツール：設定を受け付けた検査領域内で、任意の方向にスキャンして複数のエッジを検出する。検出した複数のエッジ間の距離（角度）の最大値／最小値や平均値を計測する。
●エリア計測ツール：カメラ４で撮像した検査対象物８の画像を二値化処理して、白色領域または黒色領域の面積を計測する。たとえば、計測する対象として白色領域または黒色領域の指定をパラメータとして受け付けることにより、白色領域または黒色領域の面積を計測する。
●ブロブ計測ツール：カメラ４で撮像した検査対象物８の画像を二値化処理して、同一の輝度値（２５５または０）の画素の集合（ブロブ）に対してパラメータとしての数、面積、重心位置等を計測する。
●パターンサーチ計測ツール：比較対象とする画像パターン（モデル画像）を事前に記憶装置に記憶しておき、撮像した検査対象物８の画像の中から記憶してある画像パターンに類似している部分を検出することで、画像パターンの位置、傾斜角度、相関値を計測する。
●傷計測ツール：設定を受け付けた検査領域内で、小領域（セグメント）を移動させて画素値の平均濃度値を算出し、閾値以上の濃度差となった位置を傷が存在すると判定する。
●その他にも、検査領域内の文字情報を切り出して辞書データ等と照合することで文字列を認識するＯＣＲ認識ツール、画像上に設定したウインドウ（領域）をシフトさせながら、各ウインドウの位置においてエッジの検出を繰り返す機能を有するトレンドエッジツール、設定したウインドウ内の濃淡の平均、偏差等を計測する機能を有する濃淡ツール、設定したウインドウ内の濃度の平均、偏差等を計測する機能を有する濃度ツールなどもあり、ユーザは検査内容に応じて必要な画像処理ツールを選択することができる。なお、これらの画像処理ツールは、典型的な機能およびその実現方法の代表例を示すものに過ぎない。あらゆる画像処理に対応する画像処理ツールが本願発明の対象になり得る。
【００３３】
＜画像処理装置の機能＞
図３は画像処理装置２の主要部を示している。画像処理部３０のサーチ部３３はワークメモリ２３ａの設定データ４０ａの検査領域データ４２に基づき検査対象物８の画像から計測対象をサーチして計測対象の位置を求める。サーチ部３３は基準画像４１を用いたマッチング処理により計測対象の位置を求めてもよい。検査領域データ４２は、たとえば、基準画像４１における模範画像の位置を示す座標データや、模範画像の位置を基準とした計測対象の位置を示す座標データなどであってもよい。寸法演算部３４は上記の計測モジュールを有しており、たとえば、設定データ４０ａに基づき検査対象物８の画像から計測対象の寸法を計測する。
【００３４】
ＣＰＵ２２ａの検査部３１は画像処理部３０で取得された計測結果（例：検査結果３５ａの寸法データ３６）が、設定データ４０ａに含まれている判定条件（例：合格条件４３）を満たしているかどうかを判定する。合格条件は公差のデータであってもよい。検査部３１は検査対象物８ごとの検査結果３５ａをワークメモリ２３ａに書き込む。検査結果３５ａは、たとえば、寸法演算部３４により取得された寸法データ３６を含む。なお、合格と判定された検査対象物８の画像はＯＫ画像３７として検査結果３５ａに含まれていてもよい。不合格と判定された検査対象物８の画像はＮＧ画像３８として検査結果３５ａに含まれていてもよい。アップロード部３２は、アップロード条件が満たされると、ワークメモリ２３ａに保持されている設定データ４０ａや検査結果３５ａをデータストレージ６に対して通信部２９ａを介してアップロード（送信）する。アップロード条件は、たとえば、定期的、検査対象物８ごと、データストレージ６からアップロード要求を受信したことなどである。
【００３５】
＜データストレージ６のハードウエア構成＞
図４はデータストレージ６のハードウエア構成を示している。すでに説明された構成要素と同一または類似の構成要素には同一の参照符号が付与されている。ただし、参照符号の末尾には構成要素を区別するためのａ、ｂ、ｃ・・・文字が付与されている。本明細書において共通する事項が説明されるときは参照符号の末尾に付与されているａ、ｂ、ｃ・・・の文字は省略されることがある。
【００３６】
ＣＰＵ２２ｂはプログラムメモリ２４ｂに記憶されている制御プログラムを実行し、制御プログラムにしたがって画像処理装置２からデータを取得してワークメモリ２３ｂまたはＨＤＤ（ハードディスクドライブ）３９ｂに書き込む。通信部２９ｂは画像処理装置２やクラウド１２、ＰＣ１３ａへデータを送信する送信回路と、これらからデータを受信する受信回路とを含む通信回路である。ＣＰＵ２２ｂはクラウド１２への転送条件が満たされると、画像処理装置２からバックアップしたデータを、通信部２９ｂを介してクラウド１２に送信する。
【００３７】
図５はＣＰＵ２２ｂが制御プログラムを実行することで実現する機能を示している。各機能はハードウエア回路により実現されてもよい。判定部５０は、通信部２９ｂの受信回路が画像処理装置２から設定データを受信すると、受信された設定データ４０ａとＨＤＤ３９ｂに記憶されている設定データ４０ｂとの間に差があるかを判定する。たとえば、画像比較部５１は、画像処理装置２から受信された設定データ４０ａに含まれている基準画像４１とＨＤＤ３９ｂに記憶されている設定データ４０ｂに含まれている基準画像とが異なっている場合に、受信された設定データ４０ａと記憶されている設定データ４０ｂとの間に差があると判定してもよい。情報量比較部５２は、受信された設定データ４０ａの情報量と、記憶されている設定データ４０ｂの情報量とに差がある場合に、設定データ４０ａと設定データ４０ｂとの間に差があると判定する。タイムスタンプ比較部５３は、設定データ４０ａのタイムスタンプと、設定データ４０ｂのタイムスタンプとに差がある場合に、設定データ４０ｂと設定データ４０ｃとの間に差があると判定してもよい。なお、ＨＤＤ３９ｂが複数の設定データ４０ｂ、４０ｃを記憶している場合、判定部５０は、タイプスタンプが最も新しい設定データを比較対象として選択する。設定部５４は、画像処理装置２からのデータのバックアップに関する設定し、クラウド１２へのデータの転送処理に関する設定を実行する。
【００３８】
判定部５０が設定データ４０ａと設定データ４０ｂとの間に差があると判定すると、転送部５７は設定データ４０ａをクラウド１２へ送信する。なお、設定データ４０ａは、基準画像４１、検査領域データ４２、合格条件４３などの複数のサブデータを有していてもよい。判定部５０は、サブデータごとに一致／不一致を判定し、転送部５７は不一致と判定されたサブデータだけをクラウド１２へ転送してもよい。なお、書込み部５６は、バックアップ部５５が画像処理装置２から取得したデータをすべてＨＤＤ３９ｂに書き込んでもよい。ただし、書込み部５６は、一致したサブデータを削除し、その代わりに、ＨＤＤ３９ｂに保持されている同一の他のデータを参照することを示す参照情報（リンクファイルなど）をＨＤＤ３９ｂに格納してもよい。たとえば、画像処理装置２から今回受信した設定データ４０ｃがすでにＨＤＤ３９ｂに保持されている過去の設定データ４０ｂと一致している場合、書込み部５６は、設定データ４０ｃを参照する参照ファイル（リンクファイル）に置換してもよい。
【００３９】
設定部５４は、ＰＣ１３ａからバックアップに関する設定情報（バックアップ設定）を受け付け、設定情報をプログラムメモリ２４ｃまたはＨＤＤ３９ｃに記憶させる。なお、設定部５４はＰＣ１３ａに対して設定情報を作成するためのＷｅｂユーザインタフェースを提供してもよい。ＰＣ１３ａは、データストレージ６に関連付けられた所定のＵＲＬにＷｅｂブラウザを通じてアクセスすることで設定情報の作成画面を開き、必要な情報を入力してもよい。設定部５４は、検査結果３５ｂ、３５ｃに含まれているＯＫ画像３７をクラウド１２に送信するか否かを設定する第一設定手段として機能してもよい。設定部５４は、検査結果３５ｂ、３５ｃに含まれているＮＧ画像３８をクラウド１２に送信するか否かを設定する第二設定手段として機能してもよい。設定部５４は、検査結果３５ｂ、３５ｃをクラウド１２に送信するか否かを設定する第三設定手段として機能してもよい。なお、設定情報を作成するプログラムはＰＣ１３ａにインストールされていてもよい。この場合、設定部５４はＰＣ１３ａに設けられ、設定情報はＰＣ１３ａからデータストレージ６のＨＤＤ３９ｂなどに書き込まれる。
【００４０】
このようにバックアップ部５５は画像処理装置２から設定データ４０ａや検査結果３５ａなどを取得する。書込み部５６は、判定部５０の判定結果にしたがって、設定データ４０ａや検査結果３５ａなどを設定データ４０ｂ、４０ｃや検査結果３５ｂ、３５ｃとしてＨＤＤ３９ｂに書き込ででもよい。転送部５７は、判定部５０の判定結果にしがって設定データ４０ｂ、４０ｃや検査結果３５ｂ、３５ｃなどをクラウド１２へ転送する。なお、転送部５７が設定データ４０ａや検査結果３５ａをクラウド１２へ転送した後で、書込み部５６が設定データ４０ａや検査結果３５ａをＨＤＤ３９ｂに書き込んでもよい。設定データ４０ａや検査結果３５ａは一時的にワークメモリ２３ｂに保持されて判定処理を適用されてもよい。
【００４１】
設定部５４は、複数のサブデータのうち通信部２９ｂを通じてクラウド１２にバックアップされるサブデータを指定する指定手段として機能してもよい。この場合、判定部５０は、指定されたサブデータについて差の有無を判定する。転送部５７は、指定されたサブデータのうち判定部５０により差があると判定されたサブデータをクラウド１２に送信する。
【００４２】
書込み部５６は、画像処理装置２から設定データをバックアップしたタイミングごとにＨＤＤ３９ｂにフォルダ５８ａ、５８ｂを作成して設定データを記憶してもよい。フォルダ５８ａは、第一バックアップタイミングに画像処理装置２から取得された設定データ４０ｂを記憶する第一フォルダの一例である。フォルダ５８ｂは第一バックアップタイミングよりも後の第二バックアップタイミングに画像処理装置２から取得された設定データ４０ｃを記憶する第二フォルダの一例である。上述したように、フォルダ５８ｂは、第二バックアップタイミングに画像処理装置２から取得された複数のサブデータを記憶している。この複数のサブデータのうち一部が、フォルダ５８ａに記憶されているいずれかのサブデータと同一である場合もある。この場合に、書込み部５６は、フォルダ５８ｂに同一のサブデータを記憶する代わりに、フォルダ５８ａのサブデータを参照するファイルを書き込む。
【００４３】
＜クラウド１２の構成＞
図６はクラウド１２のハードウエア構成を示している。ＣＰＵ２２ｃはプログラムメモリ２４ｃに記憶されている制御プログラムを実行し、制御プログラムにしたがってデータストレージ６からデータを受信してワークメモリ２３ｃまたはＨＤＤ３９ｃに書き込む。通信部２９ｃはデータストレージ６やＰＣ１３とデータを送信したり、受信したりする通信回路である。ＣＰＵ２２ｃはデータストレージ６からログインＩＤやパスワードなどの認証情報を受信して認証処理を実行し、認証処理に成功すると、ログインＩＤに関連付けられているフォルダへのデータの書き込みを許可してもよい。上述したデータストレージ６の転送部５７は、ログインＩＤやパスワードをＨＤＤ３９ｂから読み出して、クラウド１２へ送信する。
【００４４】
＜ＰＣ１３の構成＞
図７はＰＣ１３のハードウエア構成を示している。ＣＰＵ２２ｄはプログラムメモリ２４ｄに記憶されている制御プログラムを実行し、制御プログラムにしたがってデータストレージ６の設定情報を作成し、データストレージ６に書き込む。この場合、制御プログラムは設定情報の作成プログラムである。データストレージ６がＷｅｂサーバ機能を有し、Ｗｅｂサーバ機能を通じてＷｅｂＵＩを提供している場合、制御プログラムはＷｅｂブラウザである。通信部２９ｄはデータストレージ６やクラウド１２へデータを送信する送信回路と、これらからデータを受信する受信回路とを含む通信回路である。ＣＰＵ２２ｄは通信部２９ｄを介して受信したデータをワークメモリ２３ｄまたはＨＤＤ３９ｄに書き込む。操作部１４はキーボードとポインティングデバイスであり、ユーザからの情報をＣＰＵ２２ｄに入力する。ディスプレイ１５は液晶表示装置などの表示デバイスであり、ＣＰＵ２２ｄから出力された情報を表示する。
【００４５】
＜設定ＵＩ＞
図８はバックアップ設定を編集するための設定ＵＩ（ユーザインタフェース）６０ａを示す図である。設定ＵＩ６０ａは、画像処理装置２からバックアップされた設定データや検査結果をクラウド１２へバックアップするための設定ＵＩである。画像処理装置２からデータストレージ６へバックアップするための設定は別の設定ＵＩを通じて設定されてもよい。あるいは、画像処理装置２からデータストレージ６へのバックアップと、データストレージ６からクラウド１２へのバックアップは、一連のバックアップ処理として実行されてもよい。
【００４６】
ＣＰＵ２２ｄは設定プログラムにしたがって設定ＵＩ６０ａをディスプレイ１５に表示する。あるいは、ＣＰＵ２２ｄはＷｅｂブラウザを通じてデータストレージ６から受信したｈｔｍｌファイルなどをディスプレイ１５に表示してもよい。メッセージ６１は、設定ＵＩ６０ａの概要と、現時点で設定されているバックアップ日時やバックアップ対象などを説明するためのテキストである。ラジオボタン６２はクラウド１２へのバックアップを実行するかどうかを選択するためのボタンである。キャンセルボタン６３は、今回ユーザにより入力または変更された設定内容を破棄することをＣＰＵ２２ｄに指示するためのボタンである。確定ボタン６４は、今回ユーザにより入力または変更された設定内容を確定することをＣＰＵ２２ｄに指示するためのボタンである。ＣＰＵ２２ｄは確定ボタン６４が押されたことを検知すると、変更された設定情報をプログラムメモリ２４ｄまたはＨＤＤ３９ｄに書き込む。さらに、ＣＰＵ２２ｄは設定情報（バックアップ設定）をデータストレージ６に送信し、データストレージ６のＨＤＤ３９ｂなどに書き込む。詳細設定ボタン６５は設定情報を詳細に設定することをＣＰＵ２２ｄに要求するためのボタンである。ＣＰＵ２２ｄは詳細設定ボタン６５が押されたことを検知すると、ディスプレイ１５に詳細設定を行うための設定ＵＩを表示する。
【００４７】
図９は詳細設定のための設定ＵＩ６０ｂを示している。テキストボックス６６はバックアップ時刻を設定するためのボックスである。テキストボックス６６は複数のバックアップ時刻の入力を受け付けてもよい。これにより、一日に複数回にわたりバックアップが実行される。バックアップ対象設定部６７は、バックアップ対象となる画像処理装置（コントローラ）、設定データおよび検査結果を設定するためのＵＩである。ここでは省略されているが、設定データに含まれている複数のサブデータのいずれをバックアップするかを指定するためのＵＩや検査結果に含まれる複数の計測データのうちいずれをバックアップするかを指定するためのＵＩ、クラウド１２のＵＲＬや認証情報を指定するためのＵＩなども設定ＵＩ６０ｂに含まれてもよい。
【００４８】
＜フローチャート＞
図１０はバックアップ処理を示すフローチャートである。データストレージ６のＣＰＵ２２ｂは制御プログラムにしたがって以下処理を実行する。ここでは、画像処理装置２からデータストレージ６へのバックアップとデータストレージ６からクラウド１２へのバックアップは一連のバックアップ処理として実行されるものと仮定されている。
【００４９】
Ｓ１でＣＰＵ２２ｂ（バックアップ部５５）はＰＣ１３ａによって編集されたバックアップ設定に含まれているバックアップ時刻とリアルタイムクロックの時刻とを比較し、バックアップ時刻が到来したかどうかを判定する。リアルタイムクロック（ＲＴＣ）はＣＰＵ２２ｂが備える内部時計である。バックアップ時刻が到来すると、ＣＰＵ２２ｂはＳ２に進む。
【００５０】
Ｓ２でＣＰＵ２２ｂ（バックアップ部５５や書込み部５６）は画像処理装置２から設定データ４０ａや検査結果３５ａをバックアップする。たとえば、バックアップ部５５は画像処理装置２が保持しているすべての設定データ４０ａと検査結果３５ａを画像処理装置２から取得してもよいし、バックアップ設定により指定された設定データ４０ａや検査結果３５ａの一部を画像処理装置２から取得してもよい。書込み部５６は、取得された設定データ４０ａや検査結果３５ａをＨＤＤ３９ｂに書き込む。
【００５１】
Ｓ３でＣＰＵ２２ｂ（判定部５０）は、今回取得された設定データ４０ａ（４０ｃ）や検査結果３５ａ（３５ｃ）と、前回取得された設定データ４０ａ（４０ｂ）や検査結果３５ａ（３５ｂ）とを比較し、両者に差分があるかどうかを判定する。ここで、比較対象とされるデータはバックアップ設定によりクラウド１２へのバックアップ対象として指定されたデータである。今回のデータと前回のデータとの間に差分があると、ＣＰＵ２２ｂはＳ４に進む。この判定処理は、バックアップ設定により指定された複数のバックアップ対象のそれぞれいついて実行される。また、複数のバックアップ対象のうち一つでも差分が検知されると、ＣＰＵ２２ｂはＳ４に進む。また、この判定処理には、画像比較部５１により実行される画像比較、情報量比較部５２により実行される情報量比較、タイムスタンプ比較部５３により実行されるタイムスタンプ比較などが含まれてもよい。また、書込み部５６は、差分の存在しない設定データや検査結果については前回の設定データや検査結果を参照する参照ファイルに置換してもよい。書込み部５６は、サブデータごとに参照フィルへの置き換えを実行してもよい。
【００５２】
Ｓ４でＣＰＵ２２ｂ（転送部５７）は、バックアップ対象をクラウド１２へ送信する。転送部５７は、バックアップ対象のうち、差分の検出されたデータだけをクラウド１２へ転送してもよい。これによりクラウド１２への通信負荷が削減される。あるいは、転送部５７は、バックアップ対象をすべて転送してもよい。この場合、転送部５７は、差分の検出されなかったバックアップ対象をそのまま転送せずに、過去のデータと同一であったことを示すデータ（参照ファイル）に置換してから送信してもよい。一般に参照ファイルの情報量は元のデータの情報量よりも少ないため、通信負荷が削減される。
【００５３】
＜まとめ１＞
図１を用いて説明したように、外観検査システム１は画像処理装置２と、画像処理装置２が実行する画像検査の設定データをバックアップするデータストレージ６とを有する。なお、外観検査システム１は画像処理システムと呼ばれてもよい。図２、図３が示すように、ワークメモリ２３ａは、画像検査の設定データを記憶する第一記憶手段の一例である。検査部３１や画像処理部３０は画像処理装置２に接続または一体化された撮像手段（例：カメラ４）により取得されたワークの画像に対して、設定データにしたがった画像検査を実行する検査手段の一例である。アップロード部３２や通信部２９ａは第一記憶手段に記憶されている設定データをデータストレージ６に送信する第一送信手段の一例である。図４、図５が示すように、ＨＤＤ３９ｂは画像処理装置２の設定データを記憶する第二記憶手段の一例である。通信部２９ｂやバックアップ部５５は、画像処理装置２から送信される設定データを受信する受信手段の一例である。判定部５０は、通信部２９ｂにより受信された設定データとＨＤＤ３９ｂに記憶されている設定データとの間に差があるかを判定する判定手段の一例である。転送部５７や通信部２９ｂは、受信された設定データと記憶されている設定データとの間に差があると判定部５０が判定すると、外観検査システム１の外部に存在する外部サーバ（例：クラウド１２）に対して、受信された設定データを送信する第二送信手段の一例である。このように、本実施例によれば、外観検査システム１のデータをクラウド１２に対してバックアップする際の通信負荷が軽減される。
【００５４】
図３が示すように、設定データ４０ａは、予め良品と判定されたワークから取得され、画像検査の基準として使用される基準画像４１を含んでもよい。判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）に含まれている基準画像と、ＨＤＤ３９ｂに記憶されている設定データ４０ｂに含まれている基準画像とが異なっている場合に、受信された設定データ４０ａ（４０ｃ）と記憶されている設定データ４０ｂとの間に差があると判定してもよい。とりわけ、基準画像４１は、他の設定データと比較して情報量が多い。そのため、基準画像４１の転送を省略することで、通信負荷が軽減される。
【００５５】
判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）の情報量と、ＨＤＤ３９ｂに記憶されている設定データ４０ｂの情報量とに差がある場合に、受信された設定データと記憶されている設定データとの間に差があると判定してもよい。一般に、二つのデータが異なれば、二つのデータの情報量も異なるからである。
【００５６】
判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）のタイムスタンプと、ＨＤＤ３９ｂに記憶されている設定データ４０ｂのタイムスタンプとに差がある場合に、受信された設定データと記憶されている設定データとの間に差があると判定してもよい。一般に二つのデータのタイムスタンプが異なれば、二つのデータが異なっている可能性が高いからである。
【００５７】
図３などに示したように、ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１により合格と判定されたワークの画像であるＯＫ画像３７を記憶するように構成されていてもよい。さらに、設定部５４は、ＯＫ画像３７を外部サーバに送信するか否かを設定する第一設定手段を有していてもよい。クラウド１２が多数のＯＫ画像３７を解析することで、ワークの製造精度に余裕があるのかどうかを判定することも可能となろう。
【００５８】
ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１により不合格と判定されたワークの画像であるＮＧ画像３８を記憶してもよい。設定部５４は、ＮＧ画像３８を外部サーバに送信するか否かを設定する第二設定手段を有してもよい。クラウド１２が多数のＮＧ画像３８を解析することで、ワークの製造上の課題を見つけやすくなろう。
【００５９】
設定データ４０ａは複数のサブデータから構成されていてもよい。設定部５４は複数のサブデータのうち通信部２９ｂにより送信されて外部サーバにバックアップされるサブデータを指定する指定手段を有してもよい。判定部５０は、設定部５４により指定されたサブデータについて差の有無を判定するように構成されていてもよい。転送部５７は、設定部５４により指定されたサブデータのうち判定部５０により差があると判定されたサブデータを外部サーバに送信してもよい。このように設定データの比較は設定データを構成しているサブデータごとに実行されてもよい。
【００６０】
ＨＤＤ３９ｂは、画像処理装置２から設定データ４０ａをバックアップしたタイミングごとにフォルダを作成して当該設定データを記憶してもよい。これにより、バックアップされた設定データ４０ａの管理が容易になろう。
【００６１】
ＨＤＤ３９ｂは、第一バックアップタイミングに画像処理装置２から取得された設定データ４０ｂを記憶する第一フォルダ（例：フォルダ５８ａ）と、第一バックアップタイミングよりも後の第二バックアップタイミングに画像処理装置２から取得された設定データ４０ａ（４０ｃ）を記憶する第二フォルダ（フォルダ５８ｂ）とを有してもよい。第二バックアップタイミングに画像処理装置２から取得された複数のサブデータに第一フォルダに記憶されているいずれかのサブデータと同一のサブデータが含まれていることがある。この場合、書込み部５６は、第二フォルダに同一のサブデータを記憶する代わりに、第一フォルダのサブデータを参照するファイルを記憶させてもよい。これにより、ＨＤＤ３９ｂの記憶容量を有効活用することが可能となろう。
【００６２】
ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１によるワークの検査結果３５ａを記憶するように構成されていてもよい。データストレージ６の設定部５４は、検査結果を外部サーバに送信するか否かを設定する第三設定手段をさらに有してもよい。これにより、検査結果の転送を省略して、設定データがクラウド１２にバックアップされるようになる。また、検査結果とともに設定データがクラウド１２にバックアップされるようになってもよい。
【００６３】
データストレージ６から設定データを外部サーバにバックアップする頻度は、画像処理装置２から設定データをデータストレージ６にバックアップする頻度よりも少なくてもよい。本実施例によれば、現在の設定データと過去の設定データとに差がある場合に、現在の設定データがクラウド１２にバックアップされる。これは、両者に差がない場合は、バックアップが実行されない、よって、クラウド１２のバックアップ頻度は、データストレージ６のバックアップ頻度よりもすくなくなる。また、データストレージ６が画像処理装置２から設定データをＮ回バックアップするごとに、データストレージ６はクラウド１２に対して設定データを１回転送してもよい。ここで、データストレージ６からクラウド１２へ転送されるデータは、Ｎ回のバックアップにより取得されたすべてのデータであってもよいし、最新の一回分のデータであってもよい。前者のバックアップは、ネットワークの通信負荷が比較的に低い深夜に実行されてもよい。
【００６４】
データストレージ６とクラウド１２との間の通信速度は、画像処理装置２とデータストレージ６との間の通信速度よりも遅くてもよい。このようなケースでは、特に本発明を適用することが望まれるであろう。
【００６５】
データストレージ６はネットワークアタッチストレージ（ＮＡＳ）であってもよい。また、外部サーバはクラウドであってもよい。
【００６６】
判定部５０は、バックアップ部５５により取得された現在の設定データと、現在の設定データよりも先にバックアップ部５５により取得されてＨＤＤ３９ｂに記憶された過去の設定データとの間にある差を検知する検知手段の一例である。転送部５７は、判定部５０が差を検知すると、外観検査システム１の外部に存在する外部サーバに現在の設定データを書き込む書き込み手段の一例である。プログラム作成支援装置１１は、画像処理装置２に接続され、第一記憶手段（ワークメモリ２３ａ）に記憶されている設定データを編集する編集手段（ＣＰＵ２２）を有していてもよい。プログラム作成支援装置１１のハードウエア構成はＰＣ１３と基本的に同じであってもよい。
【００６７】
＜設定支援＞
上述したように画像処理装置２の設定データ４０はデータストレージ６やクラウド１２などのデータサーバに保持されている。したがって、サポート担当者はデータサーバにアクセスできれば、設定データを編集できるだろう。しかし、編集された設定データが正しく動作するかどうかは、画像処理装置２に実際に設定データを設定してワークの検査を実行させて見なければわからない。そこで、本実施例では、クラウド１２に画像処理装置２のシミュレータが設けられ、編集された設定データが正しく動作するかどうかがチェックされる。これにより、サポート担当者は、プログラム作成支援装置１１やＰＣ１３ｃにリモートログインせずに、ユーザによる設定データの編集を支援できるようになる。
【００６８】
図１１は設定支援の流れを示すシーケンス図である。図１２はクラウド１２の機能を示す図である。各機能はＣＰＵ２２ｃがワークメモリ２３ｃに記憶されている制御プログラム（設定サポートプログラム）を実行することで実現される。
【００６９】
Ｓ１１でユーザのＰＣ１３ｃはサポート要求をクラウド１２に送信する。ＰＣ１３ｃの代わりにプログラム作成支援装置１１やＰＣ１３ａがサポート要求を送信してもよい。サポート要求は、ユーザ名や検査設定番号、画像処理装置２の機種やネットワークアドレスを特定可能な識別情報など、クラウド１２に保持されている設定データを特定可能な情報を含んでもよい。あるいは、クラウド１２がユーザの識別情報と画像処理装置２の識別情報との関連付を管理するデータベースを保持していてもよい。この場合に、サポート要求にはユーザの識別情報が含まれていればよい。クラウド１２はユーザの識別情報をキーとしてデータベースから画像処理装置２の識別情報を取得してもよい。クラウド１２のＵＩ部７０の要求受付部７１はサポート要求を受信する。たとえば、要求受付部７１はＰＣ１３ｃがアクセスしてくると、サポート要求を入力するためのＷｅｂページをＰＣ１３ｃに送信してもよい。このＷｅｂページはサポート要求を発行するためのボタン（buttonタグなど）などを有していてもよい。また、このＷｅｂページは、サポート要求先（サポート担当者）を指定するためのテキストボックスやプルダウンメニューを有していてもよい。このＷｅｂページは、画像処理装置２の識別情報を指定するためのテキストボックスやプルダウンメニューを有していてもよい。ユーザはＰＣ１３ｃを通じてサポート要求先や画像処理装置２の識別情報を指定し、サポート要求の発行ボタンを押す。ＰＣ１３ｃは、サポート担当者や画像処理装置２の識別情報などを含むサポート要求をクラウド１２へ送信する。要求受付部７１はサポート要求を受信すると、サポート担当者や画像処理装置２の識別情報を特定するとともに、発行部７２にアクセスコードの発行を指示する。
【００７０】
Ｓ１４でクラウド１２の発行部７２はアクセスコードを発行し、サポート担当者のＰＣ１３ｂに送信する。アクセスコードは、所定のＷｅｂページにアクセスする際に必要な認証情報やＵＲＬなどを含んでもよい。所定のＷｅｂページは、ＰＣ１３ｂが画像処理装置２の設定データを編集するための編集ＵＩを提供するＷｅｂページである。ＰＣ１３ｂのＣＰＵ２２ｂは通信部２９ｂを通じてアクセスコードを受信する。アクセスコードは、たとえば、電子メールやメッセージングサービスなどにより受信されてもよい。ＰＣ１３ｂのＣＰＵ２２ｂは通信部２９ｂを通じてアクセスコードを受信する。
【００７１】
Ｓ１５でＰＣ１３ｂのＣＰＵ２２ｂは通信部２９ｂを通じてアクセスコードをクラウド１２に送信することで編集作業を開始する。たとえば、ＣＰＵ２２ｂは、電子メールの本文に記述されたアクセスコードのうちＵＲＬリンクへのクリックを検知すると、Ｗｅｂブラウザを起動し、ＵＲＬリンクにしたがってクラウド１２へアクセスする。クラウド１２の認証部７３はＰＣ１３ｂから受信したアクセスコードが、発行部７２が発行したアクセスコードと一致しているかどうかを判定する。両者が一致していれば、認証部７３はＰＣ１３ｂからのアクセスを許可し、両者が一致していなければ、認証部７３はＰＣ１３ｂからのアクセスを禁止する。両者が一致していれば、認証部７３はＰＣ１３ｂのアドレスを編集部７４に渡す。編集部７４は、ＰＣ１３ｂのアドレスを宛先として、ＰＣ１３ｂに編集ＵＩを提供するためのＨＴＭＬファイルなどを送信する。ＰＣ１３ｂのＣＰＵ２２ｂは通信部２９ｂを通じてＨＴＭＬファイルなどを受信するとブラウザプログラムにしたがって編集ＵＩをディスプレイ１５に表示する。編集部７４は、ＰＣ１３ｂにだけ設定データ４０の編集権限を付与し、他のＰＣからの編集を制限してもよい。クラウド１２には複数のＰＣ１３がアクセス可能であり、ときには同一工場内の複数のＰＣ１３が設定データ４０の編集を試みることも考えられる。複数のＰＣ１３は異なる別の工場に配置されていることもある。そこで、編集部７４は、設定データ４０の編集権限を一つのＰＣ１３（一つのアカウント）にのみ付与する。この編集権限は、サポート要求で指定されている画像処理装置２の設定データを対象とした権限である。サポート担当者は、ディスプレイ１５に表示された編集ＵＩにしたがって設定データを編集する。たとえば、合格条件４３や検査領域データ４２、検査設定パラメータなどが編集される。編集部７４は画像処理装置２に保持されている第一設定データを編集して第二設定データを作成する。ＣＰＵ２２ｂは通信部２９ｂを通じてクラウド１２へ編集結果を送信する。クラウド１２の編集部７４は編集結果を受信すると、設定データ４０ｃに反映させる。
【００７２】
Ｓ１６でＣＰＵ２２ｂは通信部２９ｂを通じてシミュレーション指示を送信する。編集ＵＩにはシミュレーション指示を送信するためのボタンが設けられていてもよい。クラウド１２の編集部７４はシミュレーション指示を受信すると、編集された設定データ４０ｃと、画像処理装置２から取得されたワーク画像４４とをシミュレーション部８０に与えてシミュレーションを実行する。ワーク画像４４は画像処理装置２に接続されたカメラ４により撮像された検査対象物８の画像である。
【００７３】
Ｓ１７で編集部７４はＰＣ１３ｂにシミュレーション結果を表示するための編集ＵＩ９０のＨＴＭＬファイルなどを送信する。ＰＣ１３ｂのＣＰＵ２２ｂは編集ＵＩ９０のＨＴＭＬファイルを受信するとＷｅｂブラウザを通じて編集ＵＩ９０をディスプレイ１５に表示する。
【００７４】
図１３は編集ＵＩのうちシミュレーション結果を示す画面を示す図である。編集ＵＩ９０は、設定データの編集画面を呼び出すためのボタン９１ａを有している。編集ＵＩ９０は、シミュレーションの実行を指示するためのボタン９１ｂを有している。ボタン９１ｂが押されたことを検知すると、編集部７４はシミュレーション部８０に対して画像処理装置２による外観検査をシミュレーションするプログラムを実行する。演算エンジン８１は主に画像処理装置２のＣＰＵ２２ａや画像処理部３０などのハードウエアをシミュレーションする。ボタン９１ｂが押されると、シミュレーション部８０は演算エンジン８１に選択された計測ツールと選択れたワーク画像４４を通知し、演算エンジン８１に計測ツールにしたがった計測処理を実行させる。演算エンジン８１はシミュレーション結果（計測結果）を表示エンジン８２に渡す。表示エンジン８２は、表示制御部２８ａをシミュレーションするシミュレータである。つまり、表示エンジン８２は、演算エンジン８１が出力したシミュレーション結果にしたがって、モニタ１０などに表示される検査画面（計測結果の表示画面など）を作成し、編集部７４に出力する。編集部７４は検査画面を含む編集ＵＩ９０のＨＴＭＬファイルを作成してＰＣ１３ｂに送信する。編集部７４の代わりに作成部７６がＨＴＭＬファイルを作成してもよい。
【００７５】
検査ツール選択部９２は検査ツール（計測ツール）を選択するためのＵＩである。表示領域９３ａはワーク画像４４を表示する領域である。表示領域９３ｂは、複数のワーク画像４４のそれぞれの総合判定結果（合格／不合格）を表示する領域である。表示領域９３ｃは、選択された計測ツールがワーク画像４４から計測した結果を表示する領域である。表示領域９３ｄは、表示領域９３ａに表示されたワーク画像４４の総合判定結果を示す領域である。総合判定結果とは、複数の計測ツールのそれぞれについての計測結果と合格条件との比較結果をいう。サポート担当者はポインタ９７を操作することでいずれかのワーク画像４４を選択する。ＣＰＵ２２ｂは選択結果をクラウド１２の編集部７４へ送信する。クラウド１２の編集部７４は選択結果を編集ＵＩ９０のＨＴＭＬファイルに反映してＰＣ１３ｂに送信する。たとえば、編集部７４は選択されたワーク画像４４のサムネイル画像を作成し、サムネイル画像が編集ＵＩ９０に表示されるようにＨＴＭＬファイルを作成し、ＨＴＭＬファイルとサムネイル画像をＰＣ１３ｂに送信してもよい。
【００７６】
図１４は編集ＵＩ９０のうち調整ナビゲーションを示す図である。調整ナビゲーションとは、計測ツールを個別に調整するためのＵＩである。この例では、クラウド１２に蓄積されている複数のワーク画像４４のうち、対象ツールで不合格となるべきワーク画像４４を選択する画像選択部９８ａと、対象ツールで合格となるべきワーク画像４４を選択する画像選択部９８ｂとが例示されている。サポート担当者は、ポインタ９７を用いて画像ファイルをドラックアンドドロップすることで、各ワーク画像４４を画像選択部９８ａ、画像選択部９８ｂのどちらかに分類する。ボタン９１ｃがポインタ９７により押されたことを検知すると、編集部７４は、シミュレーションの一つである一括テストを実行するためのＵＩに遷移する。
【００７７】
図１５は編集ＵＩ９０のうち、一括テストの実行結果を表示するためのＵＩを示している。表示領域９３ｅは、一括テストを実行されている計測ツールを表示する領域である。ボタン９１ｇは一括テストを演算エンジン８１に実行させるためのボタンである。編集部７４は、ボタン９１ｇが押されたことを検知すると、演算エンジン８１に設定データ４０ｃやワーク画像４４を渡してシミュレーションを実行させる。表示領域９３ｆは、テスト対象として選択されたワーク画像４４ごとのシミュレーション結果（合否）を示す領域である。ワーク画像４４を識別するための番号や取得日時の左右には、編集前の設定データ４０ｃを使用したシミュレーション結果を示すマーク１０５ａと、編集後の設定データ４０ｃを用いたシミュレーション結果を示すマーク１０５ｂとが表示されている。これによりサポート担当者は設定データ４０ｃが正しく編集されたことを確認できる。この例では、編集前において合格とされるべきワーク画像が不合格と判定されていたが、編集後にはこのワーク画像が合格と判定されている。つまり、正しく設定データ４０ｃが編集されたことが分かる。
【００７８】
Ｓ１８でＰＣ１３ｂのＣＰＵ２２ｂは通信部２９ｂを通じて設定終了指示をクラウド１２へ送信する。サポート担当者はシミュレーション結果を確認して設定データ４０ｃが正しく編集されたことを確認すると、図１５に示されたボタン９１ｈを押す。ＨＴＴＰプロトコルにしたがってボタン９１ｈが押されたことを示す信号（設定終了指示）がＰＣ１３ｂからクラウド１２へ送信される。
【００７９】
Ｓ１９で編集部７４はボタン９１ｈが押されたことを検知すると、シミュレーション結果を含む編集結果を送信部７７に送信させる。送信部７７は、サポート要求を送信してきたＰＣ１３ｃに対して編集結果を送信する。なお、作成部７６は、編集前の設定データ４０ｃに基づくシミュレーション結果と、編集後の設定データ４０ｃに基づくシミュレーション結果とを含む編集結果ＵＩを作成し、送信部７７に送信させてもよい。
【００８０】
図１６は編集結果ＵＩ１００ａを示す図である。編集結果ＵＩ１００ａは、編集前の設定データ４０ｃに基づくシミュレーション結果を示す編集ＵＩ９０ａと、編集後の設定データ４０ｃに基づくシミュレーション結果を示す編集ＵＩ９０ｂとを含んでいる。このように、編集前の設定データ４０ｃに基づくシミュレーション結果を示す編集ＵＩ９０ａと、編集後の設定データ４０ｃに基づくシミュレーション結果を示す編集ＵＩ９０ｂとがユーザのＰＣ１３ｃにおいて対比可能に表示される。そのため、ユーザはどの設定を編集すると、どのようにシミュレーション結果が変化するかを理解しやすくなろう。ボタン９１ｉは、編集後の設定データ４０ｃを画像処理装置２に適用することをクラウド１２に指示するためのボタンである。ボタン９１ｊは編集結果ＵＩの切り替えを指示するためのボタンである。ＰＣ１３ｃのＣＰＵ２２ｄはボタン９１ｊが押されると、切替指示をクラウド１２へ送信する。ボタン９１ｋは編集前の設定データと編集後の設定データとの差分をリスト化して表示するためのボタンである。ＰＣ１３ｃのＣＰＵ２２ｄはボタン９１ｋが押されると、差分リストの表示指示をクラウド１２へ送信する。
【００８１】
Ｓ２０でＣＰＵ２２ｂはボタン９１ｉが押されたことを示す情報（設定反映指示）をクラウド１２へ送信する。クラウド１２の編集部７４は設定反映指示を受信する。なお、設定反映指示は、編集された設定データを画像処理装置２に反映させることの許可を示す許可信号である。
【００８２】
Ｓ２１で編集部７４は編集された設定データ４０ｃを画像処理装置２に送信することで、画像処理装置２が保持している設定データ４０ａを書き換える。編集部７４は画像処理装置２のネットワークアドレスをサポート要求から取得し、設定データ４０ｃの送信先に設定する。クラウド１２と画像処理装置２との通信には独自の通信プロトコルが使用されてもよいし、汎用の通信プロトコルが採用されてもよい。
【００８３】
図１７は画像処理装置２の機能を示している。すでに説明された箇所には同一の符号が付与されている。ＣＰＵ２２ａの設定更新部６８は、通信部２９ａを通じてクラウド１２から編集された設定データ４０ｃを受信する。設定更新部６８は受信した設定データ４０ｃをワークメモリ２３ａに書き込む。これにより、編集前の設定データ４０ａが編集後の設定データ４０ｃに置換される。
【００８４】
＜変形例１＞
上記の実施例では演算エンジン８１と表示エンジン８２がクラウド１２に搭載されていた。しかし、表示エンジン８２はＰＣ１３ｂに搭載されていてもよい。
【００８５】
図１８はクラウド１２のＣＰＵ２２ｃの機能を示している。クラウド１２はサポート要求とアクセスコードに関する処理を実行する。つまり、クラウド１２はサポート要求を受信すると、アクセスコードを発行してＰＣ１３ｂに送信する。ここで、アクセスコードに含まれるＵＲＬなどのアドレスは演算エンジン８１を指し示してもよい。演算エンジン８１は、ＰＣ１３ｂにより指定された画像処理装置２の演算エンジンをシミュレート（エミュレート）し、ＰＣ１３ｂにより編集された設定データ４０ｃを用いてシミュレーションを実行する。送信部７７は、演算エンジン８１により得られたシミュレーション結果をＰＣ１３ｂに送信する。
【００８６】
図１９はＰＣ１３ｂの機能を示している。すでに説明された機能には同一の参照符号が付与されている。上述した表示エンジン８２や編集部７４がＰＣ１３ｂのＣＰＵ２２ｄによって実現されている。なお、これらの機能はプログラムメモリ２４に記憶されている制御プログラムをＣＰＵ２２ｄが実行することで実現される。
【００８７】
取得部７５は、アクセスコードを受信すると、クラウド１２、画像処理装置２またはデータストレージ６から編集対象の設定データ４０ｃとワーク画像４４を取得し、ワークメモリ２３に記憶させる。アクセスコードには、設定データ４０ｃとワーク画像４４の取得先（アドレスなど）と認証情報などが含まれており、取得部７５によって使用される。編集部７４は、編集ＵＩ９０をディスプレイ１５に表示させ、操作部１４を通じて編集操作やシミュレーションの実行指示などを受け付ける。編集部７４は編集操作にしたがって設定データ４０ｃを編集する。操作部１４からシミュレーションの実行指示が入力されると、編集部７４は、アクセスコードにしたがってクラウド１２にアクセスし、クラウド１２の演算エンジン８１に設定データ４０ｃとワーク画像４４を渡し、外観検査のシミュレーションを実行させる。編集部７４は、シミュレーション結果（計測結果）をクラウド１２から受信すると、シミュレーション結果を表示エンジン８２に渡す。表示エンジン８２は画像処理装置２の表示制御部をエミュレートする。表示エンジン８２はシミュレーション結果を表示するための表示画面データを作成し、編集部７４に出力する。編集部７４は表示画面データを編集ＵＩ９０に反映させてディスプレイ１５に出力する。また、作成部７６もＰＣ１３ｂに搭載されてもよい。作成部７６は、編集前の設定データ４０ｃに基づくシミュレーション結果と、編集後の設定データ４０ｃに基づくシミュレーション結果とを含む編集結果ＵＩを作成し、通信部２９を通じてＰＣ１３ｃに送信してもよい。編集部７４はＰＣ１３ｃから設定反映指示を受信すると、編集された設定データ４０ｃを画像処理装置２に送信することで、画像処理装置２が保持している設定データ４０ａを書き換える。このように編集部７４や表示エンジン８２に関する機能はＰＣ１３ｂに搭載されてもよい。
【００８８】
＜変形例２＞
上記の実施例では予めクラウド１２にバックアップされている設定データ４０ｃとワーク画像４４が使用されていた。しかし、これらはサポート要求をトリガとして取得されてもよい。また、クラウド１２やデータサーバに設定データ４０ｃとワーク画像４４がまだバックアップされていないこともある。このような場合にもサポート要求をトリガとして設定データ４０ｃとワーク画像４４が取得されてもよい。
【００８９】
図２０は設定支援の流れを示すシーケンス図である。図２１はクラウド１２の機能を示している。すでに説明された箇所には同一の参照符号が付与されている。
・Ｓ１２で取得部７５はサポート要求の対象として指定されている画像処理装置２に、設定データ４０ｃとワーク画像４４の取得要求を送信する。画像処理装置２は取得要求を受信する。
・Ｓ１３で画像処理装置２は取得要求にしたがって設定データ４０ｃとワーク画像４４をクラウド１２へ送信する。取得部７５は画像処理装置２から設定データ４０ｃとワーク画像４４を受信し、ＨＤＤ３９ｃに格納する。
【００９０】
＜編集結果ＵＩの切り替え＞
図２２は、クラウド１２のＣＰＵ２２ｃまたはデータストレージ６のＣＰＵ２２ｂが実行する設定サポート処理を示している。プログラムメモリ２４ｃ、２４ｂには、設定サポート処理のためのプログラムが記憶されており、ＣＰＵ２２ｃ、２２ｂによって実行される。ここでは説明の便宜上、ＣＰＵ２２ｃが動作主体として採用されている。
・Ｓ３１でＣＰＵ２２ｃ（要求受付部７１）はＰＣ１３ｃから設定サポート要求を受信する。
・Ｓ３２でＣＰＵ２２ｃ（取得部７５）はサポート対象の画像処理装置２に記憶されている設定データ４０ｃとワーク画像を取得する。なお、設定データ４０ｃとワーク画像は上述のバックアップ処理により取得されてもよい。これらのデータはデータストレージ６を経由して取得されてもよい。
・Ｓ３３でＣＰＵ２２ｃ（編集部７４）は取得された設定データ４０ｃを編集する。
・Ｓ３４でＣＰＵ２２ｃ（シミュレーション部８０）は編集された設定データ４０ｃとワーク画像４４とを用いて、画像処理装置２が実行する画像検査（外観検査）をシミュレーションする。
・Ｓ３５でＣＰＵ２２ｃ（送信部７７）は編集された設定データ４０ｃに基づいて画像検査をシミュレーションすることで得られたシミュレーション結果をＰＣ１３ｂやＰＣ１３ｃに送信する。ＰＣ１３ｂを操作するサポート担当者はシミュレーション結果を確認することで、設定データ４０ｃを正しく編集できたことを判断できる。ＰＣ１３ｃを操作するユーザは、設定データ４０ｃを編集することでどのようなシミュレーション結果が得られたかを確認することができる。
【００９１】
ところで、編集結果ＵＩ１００ａは編集前の設定データに基づくシミュレーション結果と編集後の設定データに基づくシミュレーション結果とを対比しながらユーザやサポート担当者が確認できる点で優れている。しかし、ＰＣ１３ｃなどのディスプレイ１５のサイズが小さく、対比表示に向いていないことがある。このようなケースでは編集前の検査結果（シミュレーション結果）を単独表示したり、編集後の設定データに基づくシミュレーション結果を単独表示したりすることがユーザやサポート担当者にとって有益であろう。
【００９２】
図２３は編集前の設定データに基づくシミュレーション結果を単独表示するための編集結果ＵＩ１００ｂを示している。編集結果ＵＩ１００ｂでは、編集前の設定データに基づくシミュレーション結果が表示され、編集後の設定データに基づくシミュレーション結果は表示されない。そのため、ディスプレイ１５のサイズが小さくても、編集前の設定データに基づくシミュレーション結果を大きく表示することが可能となる。
【００９３】
図２４は編集後の設定データに基づくシミュレーション結果を単独表示するための編集結果ＵＩ１００ｃを示している。編集結果ＵＩ１００ｃでは、編集後の設定データに基づくシミュレーション結果が表示され、編集前の設定データに基づくシミュレーション結果は表示されない。そのため、ディスプレイ１５のサイズが小さくても、編集後の設定データに基づくシミュレーション結果を大きく表示することが可能となる。
【００９４】
図２５はＳ３５の処理をより詳細に示したフローチャートである。
・Ｓ４１でＣＰＵ２２ｃ（送信部７７）はシミュレーション結果を表示する。シミュレーション結果は、編集結果ＵＩ１００ａ、１００ｂ、１００ｃのいずれかにより表示される。ここでは、最初に、作成部７６が編集結果ＵＩ１００ａの表示データを作成し、送信部７７箱の表示データを送信するものと仮定される。
・Ｓ４２でＣＰＵ２２ｃ（切替部１２０）はＰＣ１３ｃから切替指示を受信したかどうかを判定する。上述したようにボタン９１ｊが押されると、ＰＣ１３ｃから切替指示が送信される。切替指示を受信していなければ、ＣＰＵ２２ｃはＳ４３をスキップしてＳ４４に進む。切替指示を受信すると、ＣＰＵ２２ｃはＳ４３に進む。
・Ｓ４３でＣＰＵ２２ｃ（送信部７７）はシミュレーション結果の表示データを別の表示データに切り替えて送信する。
【００９５】
図２６は編集結果ＵＩ１００ａ、１００ｂ、１００ｃの切替順序を示している。切替指示が入力されるたびに、編集結果ＵＩ１００ａ＝＞編集結果ＵＩ１００ｂ＝＞編集結果ＵＩ１００ｃ＝＞編集結果ＵＩ１００ａ・・・といったように巡回的にシミュレーション結果の表示形式が切り替えられる。切替部１２０は切替指示を受信すると、作成部７６に表示データの切替を指示する。作成部７６は、編集結果ＵＩ１００ａ、１００ｂ、１００ｃのどれがＰＣ１３ｃに現在表示されているかを管理している。作成部７６は、作成部７６に表示データの切替を指示されると、所定の切替順序にしたがって、次の表示データを作成し、送信部７７に出力する。たとえば、現在の表示データが編集結果ＵＩ１００ａの表示データであれば、次の表示データは編集結果ＵＩ１００ｂの表示データである。送信部７７は通信部２９ｃを制御し、作成部７６により作成された表示データをＰＣ１３ｃに送信する。
【００９６】
Ｓ４４でＣＰＵ２２ｃ（編集部７４）は設定反映指示を受信したかどうかを判定する。設定反映指示を受信していなければ、ＣＰＵ２２ｃはＳ４２に戻る。一方で、設定反映指示を受信したならば、ＣＰＵ２２ｃはＳ３６に進む。
【００９７】
このように、編集結果ＵＩ１００ａ、１００ｂ、１００ｃを切り替え可能とすることで、ユーザやサポート担当者は自分の好みに応じて編集結果を確認することが可能となる。
【００９８】
＜差分リスト＞
図２７は編集部７４により編集される前の設定データ（第一設定データ）と編集部７４により編集された後の設定データ（第二設定データ）との差分リスト１６０を示している。編集部７４は、第一設定データと第二設定データとを比較し、変更された設定内容を抽出し、差分リスト１６０を作成する。ツール番号は、計測ツールの識別情報である。ツール名は計測ツールの名称である。設定値名称は計測ツールを設定するための制御パラメータの名称である。編集前設定値は、第一設定データにおける設定値である。編集後設定値は、第二設定データにおける設定値である。編集結果ＵＩ１００ａ、１００ｂ、１００ｃに設けられたボタン９１ｋが押されると、ＰＣ１３ｃのＣＰＵ２２ｄは差分リストの表示指示をクラウド１２に送信する。クラウド１２の編集部７４は、差分リストの表示指示を受信すると、差分リスト１６０の表示データを作成し、送信部７７を通じてＰＣ１３ｃへ送信する。ＰＣ１３ｃのＣＰＵ２２ｄは差分リスト１６０の表示データを受信すると、差分リスト１６０をディスプレイ１５に表示する。ここではＰＣ１３ｃが一例とされているが、ＰＣ１３ｃに代えてＰＣ１３ａ、ＰＣ１３ｂが採用されてもよい。
【００９９】
ユーザは差分リスト１６０を確認することで、設定データのうちどの計測ツールのどのパラメータが変更されたかを容易に把握することが可能となる。
【０１００】
＜まとめ２＞
図１を用いて説明したように、外観検査システム１は画像処理装置２と、画像処理装置２が実行する画像検査の設定データをバックアップするデータストレージ６とを有する。なお、外観検査システム１は画像処理システムと呼ばれてもよい。図２、図３が示すように、ワークメモリ２３ａは、画像検査の設定データを記憶する第一記憶手段の一例である。画像検査は、ワーク２の画像に対する画像処理であり、ワーク２の寸法計測、ワーク２の位置決め、ワーク２の外観検査などを含む概念である。検査部３１や画像処理部３０は画像処理装置２に接続または一体化された撮像手段（例：カメラ４）により取得されたワークの画像に対して、設定データにしたがった画像検査を実行する検査手段の一例である。アップロード部３２や通信部２９ａは第一記憶手段に記憶されている設定データをデータストレージ６に送信する第一送信手段の一例である。図４、図５が示すように、ＨＤＤ３９ｂは画像処理装置２の設定データを記憶する第二記憶手段の一例である。通信部２９ｂやバックアップ部５５は、画像処理装置２から送信される設定データを受信する受信手段の一例である。判定部５０は、通信部２９ｂにより受信された設定データとＨＤＤ３９ｂに記憶されている設定データとの間に差があるかを判定する判定手段の一例である。転送部５７や通信部２９ｂは、受信された設定データと記憶されている設定データとの間に差があると判定部５０が判定すると、外観検査システム１の外部に存在する外部サーバ（例：クラウド１２）に対して、受信された設定データを送信する第二送信手段の一例である。このように、本実施例によれば、外観検査システム１のデータをクラウド１２に対してバックアップする際の通信負荷が軽減される。
【０１０１】
図３が示すように、設定データ４０ａは、予め良品と判定されたワークから取得され、画像検査の基準として使用される基準画像４１を含んでもよい。判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）に含まれている基準画像と、ＨＤＤ３９ｂに記憶されている設定データ４０ｂに含まれている基準画像とが異なっている場合に、受信された設定データ４０ａ（４０ｃ）と記憶されている設定データ４０ｂとの間に差があると判定してもよい。とりわけ、基準画像４１は、他の設定データと比較して情報量が多い。そのため、基準画像４１の転送を省略することで、通信負荷が軽減される。
【０１０２】
判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）の情報量と、ＨＤＤ３９ｂに記憶されている設定データ４０ｂの情報量とに差がある場合に、受信された設定データと記憶されている設定データとの間に差があると判定してもよい。一般に、二つのデータが異なれば、二つのデータの情報量も異なるからである。
【０１０３】
判定部５０は、画像処理装置２から受信された設定データ４０ａ（４０ｃ）のタイムスタンプと、ＨＤＤ３９ｂに記憶されている設定データ４０ｂのタイムスタンプとに差がある場合に、受信された設定データと記憶されている設定データとの間に差があると判定してもよい。一般に二つのデータのタイムスタンプが異なれば、二つのデータが異なっている可能性が高いからである。
【０１０４】
図３などに示したように、ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１により合格と判定されたワークの画像であるＯＫ画像３７を記憶するように構成されていてもよい。さらに、設定部５４は、ＯＫ画像３７を外部サーバに送信するか否かを設定する第一設定手段を有していてもよい。クラウド１２が多数のＯＫ画像３７を解析することで、ワークの製造精度に余裕があるのかどうかを判定することも可能となろう。
【０１０５】
ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１により不合格と判定されたワークの画像であるＮＧ画像３８を記憶してもよい。設定部５４は、ＮＧ画像３８を外部サーバに送信するか否かを設定する第二設定手段を有してもよい。クラウド１２が多数のＮＧ画像３８を解析することで、ワークの製造上の課題を見つけやすくなろう。
【０１０６】
設定データ４０ａは複数のサブデータから構成されていてもよい。設定部５４は複数のサブデータのうち通信部２９ｂにより送信されて外部サーバにバックアップされるサブデータを指定する指定手段を有してもよい。判定部５０は、設定部５４により指定されたサブデータについて差の有無を判定するように構成されていてもよい。転送部５７は、設定部５４により指定されたサブデータのうち判定部５０により差があると判定されたサブデータを外部サーバに送信してもよい。このように設定データの比較は設定データを構成しているサブデータごとに実行されてもよい。
【０１０７】
ＨＤＤ３９ｂは、画像処理装置２から設定データ４０ａをバックアップしたタイミングごとにフォルダを作成して当該設定データを記憶してもよい。これにより、バックアップされた設定データ４０ａの管理が容易になろう。
【０１０８】
ＨＤＤ３９ｂは、第一バックアップタイミングに画像処理装置２から取得された設定データ４０ｂを記憶する第一フォルダ（例：フォルダ５８ａ）と、第一バックアップタイミングよりも後の第二バックアップタイミングに画像処理装置２から取得された設定データ４０ａ（４０ｃ）を記憶する第二フォルダ（フォルダ５８ｂ）とを有してもよい。第二バックアップタイミングに画像処理装置２から取得された複数のサブデータに第一フォルダに記憶されているいずれかのサブデータと同一のサブデータが含まれていることがある。この場合、書込み部５６は、第二フォルダに同一のサブデータを記憶する代わりに、第一フォルダのサブデータを参照するファイルを記憶させてもよい。これにより、ＨＤＤ３９ｂの記憶容量を有効活用することが可能となろう。
【０１０９】
ワークメモリ２３ａおよびＨＤＤ３９ｂは、設定データ４０ａとともに、検査部３１によるワークの検査結果３５ａを記憶するように構成されていてもよい。データストレージ６の設定部５４は、検査結果を外部サーバに送信するか否かを設定する第三設定手段をさらに有してもよい。これにより、検査結果の転送を省略して、設定データがクラウド１２にバックアップされるようになる。また、検査結果とともに設定データがクラウド１２にバックアップされるようになってもよい。
【０１１０】
データストレージ６から設定データを外部サーバにバックアップする頻度は、画像処理装置２から設定データをデータストレージ６にバックアップする頻度よりも少なくてもよい。本実施例によれば、現在の設定データと過去の設定データとに差がある場合に、現在の設定データがクラウド１２にバックアップされる。これは、両者に差がない場合は、バックアップが実行されない、よって、クラウド１２のバックアップ頻度は、データストレージ６のバックアップ頻度よりもすくなくなる。また、データストレージ６が画像処理装置２から設定データをＮ回バックアップするごとに、データストレージ６はクラウド１２に対して設定データを１回転送してもよい。ここで、データストレージ６からクラウド１２へ転送されるデータは、Ｎ回のバックアップにより取得されたすべてのデータであってもよいし、最新の一回分のデータであってもよい。前者のバックアップは、ネットワークの通信負荷が比較的に低い深夜に実行されてもよい。
【０１１１】
データストレージ６とクラウド１２との間の通信速度は、画像処理装置２とデータストレージ６との間の通信速度よりも遅くてもよい。このようなケースでは、特に本発明を適用することが望まれるであろう。
【０１１２】
データストレージ６はネットワークアタッチストレージ（ＮＡＳ）であってもよい。また、外部サーバはクラウドであってもよい。
【０１１３】
判定部５０は、バックアップ部５５により取得された現在の設定データと、現在の設定データよりも先にバックアップ部５５により取得されてＨＤＤ３９ｂに記憶された過去の設定データとの間にある差を検知する検知手段の一例である。転送部５７は、判定部５０が差を検知すると、外観検査システム１の外部に存在する外部サーバに現在の設定データを書き込む書き込み手段の一例である。プログラム作成支援装置１１は、画像処理装置２に接続され、第一記憶手段（ワークメモリ２３ａ）に記憶されている設定データを編集する編集手段（ＣＰＵ２２）を有していてもよい。プログラム作成支援装置１１のハードウエア構成はＰＣ１３と基本的に同じであってもよい。
【０１１４】
設定サポートシステムは、外観検査システム１の画像処理装置２と、データサーバとを有していてもよい。上記の実施例ではデータサーバはクラウド１２により実現されているが、データストレージ６によって実現されてもよい。つまり、上記のクラウド１２のＣＰＵ２２ｃによって実現される機能はデータストレージ６のＣＰＵ２２ｂによって実現されてもよい。なお、画像処理装置２とクラウド１２とを含むシステムは、外観検査システム１の設定をサポートする設定サポートシステムと呼ばれてもよい。
【０１１５】
画像処理装置２のワークメモリ２３ａは、画像検査の設定データ４０ａを記憶する記憶手段の一例である。画像処理部３０やＣＰＵ２２ａは、画像処理装置２に接続または一体化された撮像手段により取得されたワークの画像に対して、設定データ４０ａにしたがった画像検査を実行する検査手段の一例である。取得部７５は画像処理装置２の記憶手段に記憶されている設定データ４０ａとワーク画像４４とを取得する取得手段の一例である。編集部７４は取得部７５により取得された設定データを編集する編集手段の一例である。シミュレーション部８０は、編集部７４により編集された設定データと、ワーク画像とを用いて、検査手段が実行する画像検査をシミュレーションするシミュレーション手段の一例である。送信部７７は、編集部７４により編集された設定データに基づいて画像検査をシミュレーションすることで得られたシミュレーション結果を外部のコンピュータ（例：ＰＣ１３ｂ、ＰＣ１３ｃ）に送信する送信手段として機能する。外部のコンピュータとは外観検査システム１の外部にあるコンピュータであり、たとえば、ＰＣ１３ａ、１３ｂ、１３ｃやプログラム作成支援装置１１などである。コンピュータはＣＰＵとメモリを備え、ＣＰＵがプログラムを実行する情報処理装置である。そのため、タブレットコンピュータやＨＭＩ（ヒューマンマシンインタフェース）、表示装置などもコンピュータの一例である。
【０１１６】
このように本実施例によれば、ユーザによる外観検査システム１の設定を効率よく支援することが可能となる。たとえば、サポート担当者のＰＣ１３ｂはユーザのＰＣ１３ｃやプログラム作成支援装置１１にリモートログインする必要がないため、画像処理装置２の設定を効率よく支援することが可能となる。つまり、ユーザネットワーク環境がリモートログインを制限されたネットワーク環境であってもサポート担当者はユーザをサポートすることが可能となる。また、サポート担当者は編集された設定データ４０ｃを画像処理装置２に設定する前に、事前にシミュレーションにより設定データ４０ｃの編集が正しいかどうかを確認することができる。つまり、サポート担当者は画像処理装置２を設置された工場に足を運ぶことなく、編集された設定データ４０ｃを用いた画像処理装置２の挙動を知ることができる。
【０１１７】
クラウド１２の作成部７６や表示エンジン８２は、シミュレーション結果を外部のコンピュータに表示させるための表示データを作成する作成手段の一例である。送信部７７や通信部２９は、シミュレーション結果を含む表示データを外部のコンピュータに送信するように構成されていてもよい。
【０１１８】
外部のコンピュータであるＰＣ１３ｂの作成部７６や表示エンジン８２は、クラウド１２から受信したシミュレーション結果を外部のコンピュータに表示させるための表示データを作成する作成手段の一例である。ディスプレイ１５は、作成手段により作成された表示データにしたがってシミュレーション結果を表示する表示手段の一例である。
【０１１９】
編集部７４は、外部のコンピュータとして機能する複数のクライアント装置のうち一台のクライアント装置にのみ設定データの編集権限を付与するように構成されていてもよい。これにより編集作業の混乱を回避することが可能となる。たとえば、編集部７４は、アクセスコードを送信したクライアント装置にのみ設定データの編集権限を付与する。あるいは、編集部７４は、クライアント装置の識別情報（クラウド１２へのログインアカウント）ごとに編集権限の有無を管理してもよい。
【０１２０】
編集部７４は、外部のコンピュータとして機能しうる複数のクライアント装置のうち一台のクライアント装置にのみ設定データと関連付けられている他のデータ（例：ワーク画像や基準画像など）の編集権限を付与するように構成されていてもよい。これにより、設定データ以外のデータについても編集作業の混乱を回避することが可能となる。他のデータは、パターンサーチの基準となるパターン画像や文字認識処理を実行するための辞書ファイルなどであってもよい。設定データは、一つ以上の他のデータを参照していることがある。そのため、設定データを編集する際には、この設定データだけでなく、設定データにより参照されている他のデータも編集権限を制限する必要がある。
【０１２１】
編集部７４は、コンピュータとして機能する複数のクライアント装置のうち一台のクライアント装置にのみ設定データのアクセス権限を付与してもよい。
【０１２２】
編集部７４は、設定データが参照している他のデータに対するアクセス権限を、当該設定データのアクセス権限を有している当該一台のクライアント装置にのみ付与し、他のクライアント装置にはアクセス権限を付与しないように構成されてもよい。他のデータは、たとえば、パターン画像、辞書ファイル、レシピファイル、ロボットキャリブレーションファイル、特徴描画用の特徴ファイル、Ｌｕａ設定ファイルなどである。
【０１２３】
図１１が示すように、複数のクライアント装置のうち、第一クライアント装置（例：ＰＣ１３ｃ）は、クラウド１２にアクセスし、クラウド１２を通じて第二クライアント装置（例：ＰＣ１３ｂ）に設定サポート要求を送信してもよい。あるいは、ＰＣ１３ｃは直接的にＰＣ１３ｂに設定サポート要求を送信してもよい。上述したアクセスコードは一種のサポート要求である。アクセスコードはサポート要求に応じてクラウド１２により発行されるからである。サポート要求は、画像処理装置２の識別情報を含んでもよい。クラウド１２は、画像処理装置２の識別情報にしたがって演算エンジン８１や表示エンジン８２を起動してもよい。画像処理装置２の機種ごとに、演算エンジン８１や表示エンジン８２が異なっていることもあるからである。ＰＣ１３ｂは設定サポート要求（例：アクセスコード）を受信し、当該設定サポート要求の識別情報（例：クラウド１２のＵＲＬなど）にしたがってクラウド１２にアクセスしてもよい。クラウド１２は当該クラウド１２にアクセスしてきたＰＣ１３ｂまたはＰＣ１３ｃから画像処理装置２の識別情報（例：アドレス、機種情報、シリアル番号など）を受信してもよい。取得部７５は当該識別情報にしたがって画像処理装置２にアクセスして設定データ４０ｃとワーク画像４４を取得してもよい。編集部７４はＰＣ１３ｂから設定データ４０ｃの編集操作を受け付けて設定データ４０ｃを編集する。シミュレーション部８０は編集部７４により編集された設定データ４０ｃにしたがって画像検査をシミュレーションする。送信部７７はシミュレーション結果をＰＣ１３ｂに送信する。編集部７４による設定データ４０ｃの編集が終了すると、ＰＣ１３ｂまたはクラウド１２の送信部７７はＰＣ１３ｃに設定データ４０ｃの編集が終了したことを示す通知を送信してもよい。これにより、サポート要求を送信したユーザは設定データ４０ｃの編集が終了したことを認識できるようになる。
【０１２４】
要求受付部７１や発行部７２はサポート受付手段の一例である。要求受付部７１は、ＰＣ１３ｃから、画像処理装置２の識別情報の指定または入力を受け付ける。発行部７２は画像処理装置２の識別情報に関連付けてアクセスコードを発行する。さらに、発行部７２は通信部２９ｃを介して当該アクセスコードを含む設定サポート要求をＰＣ１３ｂに送信してもよい。ＰＣ１３ｂはアクセスコードを用いてクラウド１２にアクセスする。クラウド１２は、アクセスコード関連付けられている画像処理装置２の識別情報を特定し、この識別情報に関連付けられている設定データ４０ｃとワーク画像４４の編集権限をＰＣ１３ｂに付与する。
【０１２５】
発行部７２は、設定データの編集画面にアクセスするためのアドレス情報（例：ＵＲＬ）を設定サポート要求に記述してＰＣ１３ｂに送信してもよい。これによりＰＣ１３ｂは編集画面に対して容易にアクセスできるようになる。
【０１２６】
送信部７７はＰＣ１３ｃにシミュレーション結果を送信する。編集部７４は、ＰＣ１３ｃから設定データの更新の許可（例：設定反映指示）を受信すると、ＰＣ１３ｂにより編集された設定データを画像処理装置２に書き込んでもよい。これによりユーザは編集された設定データを画像処理装置２に書き込むことを許可できるようになる。また、ユーザが知らない間に設定データが上書きされてしまうことが無くなるであろう。
【０１２７】
図１では一つの画像処理装置２が図示されているが、クラウド１２は複数の画像処理装置２に接続されていてもよい。編集部７４は、複数の画像処理装置２のそれぞれの設定データを編集するように構成されていてもよい。これにより複数の画像処理装置２についてユーザの設定をサポートすることが可能となる。複数の画像処理装置２の機種は異なっていてもよい。この場合、シミュレーション部８０は、各機種ごとのシミュレータ（演算エンジン８１や表示エンジン８２）を有する。編集部７４は、サポート要求に基づき機種を特定し、機種に対応するシミュレータのプログラムをプログラムメモリから起動する。サポート要求には、機種の識別情報が含まれていてもよい。
【０１２８】
作成部７６は、編集部７４により編集される前の設定データと編集部７４により編集された後の設定データとの差分を表示する表示データを作成してもよい。これにより、設定データのうちのどの項目が編集されたかをユーザは理解しやすくなるであろう。編集結果ＵＩ１００ａはこのような差分を表示する表示データに基づき差分箇所を強調表示してもよい。
【０１２９】
編集部７４は第一設定データを編集することで第二設定データを作成する。第一設定データは編集前の設定データであり、第二設定データは編集後の設定データである。作成部７６は、画像処理装置２の第一設定データに基づいて画像検査を実行して得られた検査結果と、編集部７４により第一設定データを編集して作成された第二設定データに基づいて画像検査をシミュレーションすることで得られたシミュレーション結果とを外部のコンピュータに表示させるための表示データを作成する。ここで、検査結果は、編集部７４により編集される前の設定データである第一設定データについての検査結果であり、画像処理装置２から取得されてもよい。あるいは、検査結果は、シミュレーション部８０が第一設定データを用いてシミュレーションを実行することで求められてもよい。このように編集前の設定データに基づくシミュレーション結果は、画像処理装置２が画像検査を実行することで取得された実際の検査結果であってもよい。なぜなら、ワーク画像と設定データとが同じであれば、画像処理装置２の検査結果と、シミュレーション部８０のシミュレーション結果とは一致するからである。送信部７７は、編集前の設定データ（第一設定データ）に基づく検査結果（シミュレーション結果）の表示データと、編集後の設定データ（第二設定データ）に基づくシミュレーション結果の表示データを、外部のコンピュータに送信してもよい。これにより、ユーザは、設定データの編集の前後でどのように検査結果が変わるかを理解することができる。つまり、ユーザによる外観検査システムの設定を効率よく支援することが可能となる。
【０１３０】
切替部１２０は、外部のコンピュータから検査結果とシミュレーション結果との切替指示を受け付ける受付手段として機能している。送信部７７は、切替指示に応じて外部のコンピュータから検査結果とシミュレーション結果との少なくとも一方を外部のコンピュータに送信する。上述したように、切替指示は、検査結果を単独で表示するための切替指示と、シミュレーション結果を単独で表示するための切替指示と、検査結果とシミュレーション結果とを同時に表示するための切替指示とのうちのいずれかである。図２４などでは切替指示を発行するための一つのボタン９１ｊが示されているが、三つの表示態様を選択可能な切替オブジェクト（例：三つのボタン、プルダウンメニュー）などが採用されてもよい。
【０１３１】
図１が示すように、プログラム作成支援装置１１、ＰＣ１３ａ、ＰＣ１３ｂは画像処理装置２とともにワークを製造する工場に設置されている第一クライアント装置の一例である。ＰＣ１３ｂは工場の外部に設置されている第二クライアント装置の一例である。送信部７７は、表示データを第一クライアント装置と第二クライアント装置との両方に送信してもよい。これによりユーザとサポート担当者とが同一のシミュレーション結果を確認できるようになろう。編集部７４は、第二クライアント装置であるＰＣ１３ｂから入力された指示に従って設定データを編集する。送信部７７は、第二クライアント装置により編集された設定データを画像処理装置２に反映させることの許可を求めるためのオブジェクト（例：ボタン９１ｉ）を第一クライアント装置に表示させる表示データを送信してもよい。このようなオブジェクトはＨＴＭＬによるボタンタグによって提供されうる。
【０１３２】
作成部７６や編集部７４は、編集される前の設定データと編集された後の設定データとの差分を表示する表示データ（例：差分リスト１６０の表示データ）を作成してもよい。これによりユーザやサポート担当者は編集の前後で設定データのどの部分が変更されたかを容易に把握することが可能となる。
【符号の説明】
【０１３３】
１...外観検査システム、２...画像処理装置、６...データストレージ、１２...クラウド
【図１】
0006987617.tif 000002
【図２】
0006987617.tif 000003
【図３】
0006987617.tif 000004
【図４】
0006987617.tif 000005
【図５】
0006987617.tif 000006
【図６】
0006987617.tif 000007
【図７】
0006987617.tif 000008
【図８】
0006987617.tif 000009
【図９】
0006987617.tif 000010
【図１０】
0006987617.tif 000011
【図１１】
0006987617.tif 000012
【図１２】
0006987617.tif 000013
【図１３】
0006987617.tif 000014
【図１４】
0006987617.tif 000015
【図１５】
0006987617.tif 000016
【図１６】
0006987617.tif 000017
【図１７】
0006987617.tif 000018
【図１８】
0006987617.tif 000019
【図１９】
0006987617.tif 000020
【図２０】
0006987617.tif 000021
【図２１】
0006987617.tif 000022
【図２２】
0006987617.tif 000023
【図２３】
0006987617.tif 000024
【図２４】
0006987617.tif 000025
【図２５】
0006987617.tif 000026
【図２６】
0006987617.tif 000027
【図２７】
0006987617.tif 000028