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