(57)【特許請求の範囲】
【請求項１】
少なくとも１つの計算装置がカメラに接続され、前記カメラが撮影した画像に基づく画像処理を実行する複数の計算装置と、
前記複数の計算装置から、前記複数の計算装置が実行した画像処理の結果を収集し、前記収集した画像処理の結果に基づいた処理を実行する制御装置と、
を有し、
前記複数の計算装置それぞれは、複数の条件と前記複数の条件それぞれに対応する送信先とを含む送信先情報を記憶し、前記複数の条件のうちの自装置が実行した画像処理の結果が満たす条件を判定し、自装置が実行した画像処理の結果に基づくデータを、前記送信先情報に示される、前記判定した条件に対応する送信先に送信する、
情報処理システム。
【請求項２】
前記情報処理システムは、前記複数の計算装置および前記制御装置それぞれに、前記複数の計算装置および前記制御装置それぞれのデバイスとして接続され、前記複数の計算装置および前記制御装置間のデータ送信を中継する中継装置を有する、
請求項１記載の情報処理システム。
【請求項３】
前記複数の計算装置のうちの前記カメラに接続される計算装置は、前記カメラから前記カメラが撮影した画像を取得し、前記カメラが撮影した画像に対する画像処理を実行し、前記カメラが撮影した画像と自装置が実行した画像処理の結果とに基づくデータを前記複数の計算装置および前記制御装置のうちの少なくとも１つに送信し、
前記複数の計算装置のうちの前記カメラに接続されていない計算装置は、前記複数の計算装置のうちの少なくとも１つの計算装置から取得した取得データに基づく画像処理を実行し、前記取得データと自装置が実行した画像処理の結果とに基づくデータを前記複数の計算装置または前記制御装置のうちの少なくとも１つに送信する、
請求項１または２記載の情報処理システム。
【請求項４】
前記カメラは複数であり、
前記複数の計算装置は、複数の前記カメラのうちの少なくとも１つに接続される計算装置を複数含む、
請求項１ないし３のいずれかに記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
近年、ＡＩ（Artificial Intelligence）を用いた推論処理や画像処理が普及している。このような推論処理や画像処理は、負荷が高いため、複数の計算装置で実行されることが多い。
【０００３】
複数の計算装置を用いた処理に関する技術としては、例えば、処理負荷を適宜分散させ、推論処理を効率的に行う推論処理システムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６６１４３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の計算装置による画像処理が行われる場合、全体の画像処理を統括する制御装置が設けられることがある。例えば、制御装置は、カメラから取得した画像を計算装置に送信し、計算装置の画像処理結果を取得することが考えられる。しかし、制御装置が、複数のカメラから画像を取得する場合や、１つのカメラから連続して画像を取得する場合、制御装置とカメラとの間および制御装置と計算装置との間のデータ送受信量が大きくなり、画像処理の効率が低下する。
【０００６】
１つの側面では、本件は、画像処理の効率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、複数の計算装置と制御装置とを有する情報処理システムが提供される。複数の計算装置は、少なくとも１つの計算装置がカメラに接続され、カメラが撮影した画像に基づく画像処理を実行する。制御装置は、複数の計算装置から、複数の計算装置が実行した画像処理の結果を収集し、収集した画像処理の結果に基づいた処理をする。
【発明の効果】
【０００８】
１態様によれば、画像処理の効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係る情報処理システムの一例を示す図である。
【図２】第２の実施の形態に係る情報処理システムの一例を示す図である。
【図３】情報処理システムの接続状態の一例を示す図である。
【図４】制御装置のハードウェアの一構成例を示す図である。
【図５】計算装置のハードウェアの一構成例を示す図である。
【図６】ＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。
【図７】情報処理システムの各装置のソフトウェア構成の一例を示す図である。
【図８】装置間における通信処理の一例を示す図である。
【図９】ＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法の一例を示す図である。
【図１０】情報処理システムの機能例を示すブロック図である。
【図１１】送信先情報の一例を示す図である。
【図１２】１次診断および２次診断の範囲の一例を示す図である。
【図１３】情報処理システムの処理内容の第１の例を示す図である。
【図１４】診断結果収集の例を示すシーケンス図である。
【図１５】送信先設定処理の手順の一例を示すフローチャートである。
【図１６】１次診断の手順の一例を示すフローチャートである。
【図１７】２次診断の手順の一例を示すフローチャートである。
【図１８】診断結果表示処理の手順の一例を示すフローチャートである。
【図１９】情報処理システムの処理内容の第２の例を示す図である。
【図２０】情報処理システムの処理内容の第３の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１１】
図１は、第１の実施の形態に係る情報処理システムの一例を示す図である。第１の実施の形態は、情報処理システム１０がカメラ１−１，１−２，・・・が撮影した画像に基づく画像処理を実行するものである。
【００１２】
情報処理システム１０は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・、制御装置１３および中継装置１４を有する。計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、少なくとも１つの計算装置がカメラ１−１，１−２，・・・に接続される。また、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、カメラ１−１，１−２，・・・のうちの少なくとも１つに接続される計算装置を複数含む。ここでは、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・のうちの計算装置１１−１，１１−２，・・・がカメラ１−１，１−２，・・・に接続される。例えば、計算装置１１−１は、カメラ１−１に接続され、計算装置１１−２は、カメラ１−２に接続される。
【００１３】
中継装置１４は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれに、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれのデバイスとして接続される。例えば、中継装置１４は、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express：ＰＣＩｅ、登録商標）の拡張バスを含むブリッジコントローラである。そして、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれは、ホスト側として動作するＲＣ（Root Complex）となり、中継装置１４は、デバイス側として動作するＥＰ（End Point）となる。中継装置１４は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３間のデータ送信を中継する。
【００１４】
計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、カメラ１−１，１−２，・・・が撮影した画像に基づく画像処理を実行する画像処理を実行するコンピュータである。なお、以下では、計算装置１１−１，１２−１の構成について説明するが、  計算装置１１−２，・・・の構成は計算装置１１−１と同様であり、計算装置１２−２，・・・の構成は、計算装置１２−１と同様である。
【００１５】
計算装置１１−１は、記憶部１１ａ−１と演算部１１ｃ−１とを有する。記憶部１１ａ−１は、計算装置１１−１が実行する処理に用いられるデータを記憶する。記憶部１１ａ−１は、例えば、計算装置１１−１が有するメモリ、またはストレージ装置である。演算部１１ｃ−１は、計算装置１１−１を制御し、所要の処理を実行可能である。演算部１１ｃ−１は、例えば、計算装置１１−１が有するプロセッサ（並列処理に適したコプロセッサを含んでもよい）または演算回路である。
【００１６】
記憶部１１ａ−１は、送信先情報１１ｂ−１を記憶する。送信先情報１１ｂ−１には、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも一つが登録されている。例えば、送信先情報１１ｂ−１には、計算装置１２−１が登録されている。
【００１７】
演算部１１ｃ−１は、まず、カメラ１−１からカメラ１−１が撮影した画像を取得する。例えば、演算部１１ｃ−１は、製造ラインを流れる製品をカメラ１−１が撮影した画像を取得する。次に、演算部１１ｃ−１は、カメラ１−１が撮影した画像に対する画像処理を実行する。例えば、演算部１１ｃ−１は、カメラ１−１が撮影した画像に写る製品からキズを検出する処理を実行する。
【００１８】
そして、演算部１１ｃ−１は、カメラ１−１が撮影した画像と自装置が実行した画像処理の結果とに基づくデータ（結果データ）を計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも一つに送信する。ここで、演算部１１ｃ−１は、結果データを、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの送信先情報１１ｂ−１が示す送信先に送信する。つまり、演算部１１ｃ−１は、結果データを計算装置１２−１に送信する。例えば、演算部１１ｃ−１は、カメラ１−１が撮影した画像と検出したキズの画像上の位置とを計算装置１２−１に送信する。
【００１９】
計算装置１２−１は、記憶部１２ａ−１と演算部１２ｃ−１とを有する。記憶部１２ａ−１は、計算装置１２−１が実行する処理に用いられるデータを記憶する。記憶部１２ａ−１は、例えば、計算装置１２−１が有するメモリ、またはストレージ装置である。演算部１２ｃ−１は、計算装置１２−１を制御し、所要の処理を実行可能である。演算部１２ｃ−１は、例えば、計算装置１２−１が有するプロセッサ（並列処理に適したコプロセッサを含んでもよい）または演算回路である。
【００２０】
記憶部１２ａ−１は、送信先情報１２ｂ−１を記憶する。送信先情報１２ｂ−１には、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも一つが登録されている。例えば、送信先情報１２ｂ−１には、制御装置１３が登録されている。
【００２１】
演算部１２ｃ−１は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・のうちの少なくとも１つの計算装置からデータを取得する。ここでは、演算部１２ｃ−１は、計算装置１１−１から送信されたデータ（取得データ）を取得する。次に、演算部１２ｃ−１は、取得データに基づく画像処理を実行する。例えば、演算部１２ｃ−１は、キズの画像上の位置に基づいて、カメラ１−１が撮影した画像から製品のキズが写った部分を抽出し、抽出された部分に写るキズの大きさが出荷基準外であるか否かを判定する処理を実行する。
【００２２】
そして、演算部１２ｃ−１は、取得データと自装置が実行した画像処理の結果とに基づくデータ（結果データ）を計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも１つに送信する。ここで、演算部１２ｃ−１は、結果データを送信先情報１２ｂ−１に示される制御装置１３に送信する。例えば、演算部１２ｃ−１は、カメラ１−１が撮影した画像に写った製品に出荷基準外の大きさのキズがあるか否かの判定結果を制御装置１３に送信する。
【００２３】
なお、計算装置１１−２，・・・，１２−２，・・・も計算装置１１−１，１２−１と同様の処理を実行し、計算装置１２−２，・・・は、結果データを制御装置１３に送信する。例えば、計算装置１２−２，・・・は、カメラ１−２，・・・が撮影した画像に写った製品に出荷基準外の大きさのキズがあるか否かの判定結果を制御装置１３に送信する。
【００２４】
制御装置１３は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・を統括して制御するコンピュータである。制御装置１３は、処理部１３ａを有する。処理部１３ａは、制御装置１３を制御し、所要の処理を実行可能である。処理部１３ａは、例えば、制御装置１３が有するプロセッサまたは演算回路である。処理部１３ａは計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・から、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・が実行した画像処理の結果を収集する。そして、処理部１３ａは、収集した画像処理の結果に基づいた処理を実行する。例えば、処理部１３ａは、カメラ１−１，１−２，・・・が撮影した製品のうち出荷基準外の大きさのキズがある製品の割合をユーザに通知する処理を実行する。
【００２５】
第１の実施の形態の情報処理システム１０では、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、少なくとも１つの計算装置がカメラ１−１，１−２，・・・に接続され、カメラ１−１，１−２，・・・が撮影した画像に基づく画像処理を実行する。また、制御装置１３は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・から、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・が実行した画像処理の結果を収集し、収集した画像処理の結果に基づいた処理を実行する。これにより、情報処理システム１０では、計算装置１１−１，１１−２，・・・は、制御装置１３を介さずに、カメラ１−１，１−２，・・・が撮影した画像を取得できるため、制御装置１３のデータ送受信量が減少する。よって、情報処理システム１０は、画像処理の効率を向上させることができる。
【００２６】
また、中継装置１４は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれに、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれのデバイスとして接続される。そして中継装置１４は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３間のデータ送信を中継する。これにより、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３それぞれは、他の装置へのデータ送信のために中継装置１４のデバイスドライバのみを有していればよい。よって、情報処理システム１０は、装置間のデータ送信を容易にできる。
【００２７】
また、カメラ１−１，１−２，・・・に接続される計算装置１１−１，１１−２，・・・は、カメラ１−１，１−２，・・・からカメラ１−１，１−２，・・・が撮影した画像を取得し、カメラ１−１，１−２，・・・が撮影した画像に対する画像処理を実行する。計算装置１１−１，１１−２，・・・は、結果データを計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも１つに送信する。また、カメラ１−１，１−２，・・・に接続されていない計算装置１２−１，１２−２，・・・は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・のうちの少なくとも１つの計算装置から取得した取得データに基づく画像処理を実行する。計算装置１２−１，１２−２，・・・は、結果データを計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの少なくとも１つに送信する。これにより、情報処理システム１０は、カメラに接続されていない計算装置１２−１，１２−２，・・・も利用した多段階の画像処理を実行できる。
【００２８】
また、計算装置１１−１，１２−１それぞれは、送信先情報１１ｂ−１，１２ｂ−１を記憶する。そして計算装置１１−１，１２−１それぞれは、結果データを、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・および制御装置１３のうちの送信先情報１１ｂ−１，１２ｂ−１が示す送信先に送信する。これにより、情報処理システム１０は、画像処理におけるデータの流れを制御装置１３を介さずに制御できる。
【００２９】
また、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、カメラ１−１，１−２，・・・のうちの少なくとも１つに接続される計算装置を複数含む。これにより、情報処理システム１０は、複数のカメラそれぞれが撮影した画像に基づいた処理を、複数の計算装置に分散して実行させることができる。
【００３０】
なお、送信先情報１１ｂ−１，１２ｂ−１は、複数の条件と複数の条件それぞれに対応する送信先とを含んでもよい。そして計算装置１１−１，１２−１それぞれは、結果データを、送信先情報１１ｂ−１，１２ｂ−１に示される、複数の条件のうちの自装置が実行した画像処理の結果が満たす条件に対応する送信先に送信してもよい。これにより、情報処理システム１０は、分岐があるデータの流れを制御できる。
【００３１】
〔第２の実施の形態〕
次に、第２の実施の形態について説明する。第２の実施の形態は、製造ラインを流れる製品を画像処理を用いて検査するものである。
【００３２】
図２は、第２の実施の形態に係る情報処理システムの一例を示す図である。第２の実施の形態の情報処理システムは、カメラ２１−１，２１−２，２１−３，２１−４および情報処理システム４００を含む。カメラ２１−１〜２１−４は、製造ラインに設置され、製造ラインを流れる製品を撮影する。カメラ２１−１〜２１−４は、それぞれ１度に１つの製品を撮影してもよいし、複数の製品を撮影してもよい。以下では、カメラ２１−１〜２１−４は、それぞれ１度に１つの製品を撮影する（つまり、カメラ２１−１〜２１−４が撮影した画像それぞれには１つの製品が写る）ものとする。
【００３３】
情報処理システム４００は、カメラ２１−１〜２１−４が撮影した製品を検査する。情報処理システム４００は、制御装置１００、計算装置２００−１，２００−２，２００−３，２００−４，２００−５，２００−６およびＰＣＩｅブリッジコントローラ３００を含む。制御装置１００および計算装置２００−１〜２００−６は、ＰＣＩｅブリッジコントローラ３００に接続され、ＰＣＩｅブリッジコントローラ３００を介して他の装置にデータを送信する。なおＰＣＩｅブリッジコントローラ３００は、第１の実施の形態に示した中継装置１４の一例である。
【００３４】
計算装置２００−１〜２００−６は、画像処理に適したプロセッサ（コプロセッサ）を有するコンピュータである。計算装置２００−１は、カメラ２１−１に接続されている。また、計算装置２００−２は、カメラ２１−２に接続されている。また、計算装置２００−３は、カメラ２１−３に接続されている。また、計算装置２００−４は、カメラ２１−４に接続されている。計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４が撮影した製品の画像に基づいて、製品にキズがあるか否かの判定（１次診断）をする。計算装置２００−５〜２００−６は、計算装置２００−１〜２００−４によって検出されたキズの大きさ（深さでもよい）が出荷基準外であるか否かの判定（２次診断）をする。
【００３５】
制御装置１００は、情報処理システム４００を統括するホストＰＣ（Personal Computer）である。制御装置１００は、計算装置２００−１〜２００−６による１次診断および２次診断の結果を収集し、出荷基準外の大きさのキズがある製品の割合をユーザに通知する。
【００３６】
図２に示すようなシステムにおいて、情報処理システム４００は、カメラ２１−１〜２１−４が撮影した製品の検査（つまり、カメラ２１−１〜２１−４が撮影した画像に対する画像処理）をする。ここで、カメラが撮影した画像に対する画像処理をする他の情報処理システムとしては、情報処理システムのホストＰＣである制御装置がカメラが撮影した画像を取得し、取得した画像を計算装置に送信して、計算装置に画像処理を実行させることが考えられる。しかし、制御装置がカメラが撮影した画像を取得し、取得した画像を計算装置に送信する場合、カメラと制御装置との間および制御装置と計算装置との間のデータの送受信に時間がかかる。これにより、画像処理全体の効率が低下する。そこで、情報処理システム４００では、計算装置２００−１〜２００−４がカメラ２１−１〜２１−４に接続されることで、制御装置１００を介したデータの送受信量が削減される。
【００３７】
図３は、情報処理システムの接続状態の一例を示す図である。情報処理システム４００は、制御装置１００、計算装置２００−１〜２００−６およびＰＣＩｅブリッジコントローラ３００を含む。
【００３８】
制御装置１００および計算装置２００−１〜２００−６は、ＰＣＩｅブリッジコントローラ３００に通信可能に接続されている。具体的には、制御装置１００は、２つのＲＣを用いて（例えば、２つのＰＣＩｅインタフェースをＲＣとして機能させて）ＰＣＩｅブリッジコントローラ３００に搭載されている２つのＥＰと接続されている。ＥＰは、拡張バスの末端機器（デバイス）として認識されるスレイブ側の接続部であり、ＲＣは、ＥＰ側を末端機器として認識して拡張バスを介した通信を制御するマスター側の接続部である。また、制御装置１００は、プロセッサ１０１を有する。
【００３９】
なお、制御装置１００は、ホストＰＣとして機能するため、データの送受信量が大きくなることが想定されることから２つのＲＣを用いてＰＣＩｅブリッジコントローラ３００と接続されている。このように２つのＲＣと２つのＥＰとが接続されているため、制御装置１００は、データの通信経路を適切に振り分けることで（即ち、いずれのＲＣ−ＥＰ間で通信するか決定することで）広い通信帯域の通信を行うことができる。なお、制御装置１００は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ３００に搭載されている１つのＥＰと接続されていてもよい。
【００４０】
計算装置２００−１〜２００−６は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ３００に搭載されている１つのＥＰと接続されている。また、計算装置２００−１〜２００−６は、プロセッサ２０１−１〜２０１−６をそれぞれ有する。
【００４１】
このように情報処理システム４００においては、制御装置１００および計算装置２００−１〜２００−６がホスト側として動作可能なＲＣとなり、ＰＣＩｅブリッジコントローラ３００がデバイス側として動作可能なＥＰとなり、データ転送が行われる。
【００４２】
なお、プロセッサ１０１，２０１−１〜２０１−６は、それぞれ同じメーカ（またはベンダ）から提供されてもよいし、違うメーカから提供されてもよい。例えば、プロセッサ１０１は、Ａ社が提供するものであり、プロセッサ２０１−１は、Ｂ社が提供するものであり、プロセッサ２０１−２は、Ｃ社が提供するものであり、プロセッサ２０１−３は、Ｄ社が提供するものであるものとすることができる。また、プロセッサ２０１−４は、Ｅ社が提供するものであり、プロセッサ２０１−５は、Ｆ社が提供するものであり、プロセッサ２０１−６は、Ｇ社が提供するものであるものとすることができる。
【００４３】
ＰＣＩｅブリッジコントローラ３００は、拡張バス（例えば、制御装置１００および計算装置２００−１〜２００−６の拡張バスとして機能するバス）を有し、拡張バスを介した通信を中継する。
【００４４】
図４は、制御装置のハードウェアの一構成例を示す図である。制御装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１１０を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４５】
メモリ１０２は、制御装置１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００４６】
バス１１０に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７、ネットワークインタフェース１０８およびＰＣＩｅインタフェース１０９−１，１０９−２がある。
【００４７】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００４８】
グラフィック処理装置１０４には、モニタ３１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ３１の画面に表示させる。モニタ３１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００４９】
入力インタフェース１０５には、キーボード３２とマウス３３とが接続されている。入力インタフェース１０５は、キーボード３２やマウス３３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス３３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク３４に記録されたデータの読み取りを行う。光ディスク３４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク３４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００５１】
機器接続インタフェース１０７は、制御装置１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置３５やメモリリーダライタ３６を接続することができる。メモリ装置３５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ３６は、メモリカード３７へのデータの書き込み、またはメモリカード３７からのデータの読み出しを行う装置である。メモリカード３７は、カード型の記録媒体である。
【００５２】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００５３】
ＰＣＩｅインタフェース１０９−１，１０９−２は、ＰＣＩｅブリッジコントローラ３００の拡張バスと接続するための通信インタフェース（即ち、接続インタフェース）である。ＰＣＩｅインタフェース１０９−１，１０９−２は、ＰＣＩｅブリッジコントローラ３００と接続され、ＰＣＩｅブリッジコントローラ３００を介した計算装置２００−１〜２００−６との通信を媒介する。
【００５４】
制御装置１００は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した制御装置１３も、図４に示した制御装置１００と同様のハードウェアにより実現することができる。またプロセッサ１０１は、第１の実施の形態に示した処理部１３ａの一例である。
【００５５】
制御装置１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。制御装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御装置１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また制御装置１００に実行させるプログラムを、光ディスク３４、メモリ装置３５、メモリカード３７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５６】
図５は、計算装置のハードウェアの一構成例を示す図である。計算装置２００−１は、プロセッサ２０１−１によって装置全体が制御されている。プロセッサ２０１−１には、バス２０６−１を介してメモリ２０２−１と複数の周辺機器が接続されている。プロセッサ２０１−１は、マルチプロセッサであってもよい。プロセッサ２０１−１は、例えばＣＰＵ、ＭＰＵ、またはＤＳＰである。また例えば、プロセッサ２０１−１には、ＧＰＵ（Graphics Processing Unit）やＦＰＧＡ（Field Programmable Gate Array）といった、特定の処理に適するプロセッサ（コプロセッサともいう）が含まれていてもよい。プロセッサ２０１−１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ、ＰＬＤなどの電子回路で実現してもよい。
【００５７】
メモリ２０２−１は、計算装置２００−１の主記憶装置として使用される。メモリ２０２−１には、プロセッサ２０１−１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ２０２−１には、プロセッサ２０１−１による処理に利用する各種データが格納される。メモリ２０２−１としては、例えばＲＡＭなどの揮発性の半導体記憶装置が使用される。
【００５８】
バス２０６−１に接続されている周辺機器としては、不揮発性メモリ２０３−１、ＰＣＩｅインタフェース２０４−１および接続インタフェース２０５−１がある。不揮発性メモリ２０３−１は、コンピュータの補助記憶装置として使用される。不揮発性メモリ２０３−１には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、不揮発性メモリ２０３−１としては、例えば、フラッシュメモリを使用することができる。
【００５９】
ＰＣＩｅインタフェース２０４−１は、ＰＣＩｅブリッジコントローラ３００の拡張バスと接続するための通信インタフェースである。ＰＣＩｅインタフェース２０４−１は、ＰＣＩｅブリッジコントローラ３００と接続され、ＰＣＩｅブリッジコントローラ３００を介した制御装置１００および計算装置２００−２〜２００−６との通信を媒介する。
【００６０】
接続インタフェース２０５−１は、カメラ２１−１と接続するためのインタフェースである。カメラ２１−１は、カメラ２１−１のレンズを向けた先の光景の静止画または動画のデータを生成する。接続インタフェース２０５−１は、ＵＳＢ（Universal Serial Bus）などのインタフェースでカメラ２１−１に接続してもよい。また、接続インタフェース２０５−１は、ネットワークインタフェースであってもよく、ネットワークを介してカメラ２１−１に接続してもよい。
【００６１】
計算装置２００−１は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・も、図５に示した計算装置２００−１と同様のハードウェアにより実現することができる。またプロセッサ２０１−１は、第１の実施の形態に示した演算部１１ｃ−１，１２ｃ−１の一例である。またメモリ２０２−１または不揮発性メモリ２０３−１は、第１の実施の形態に示した記憶部１１ａ−１，１２ａ−１の一例である。また、計算装置２００−２〜２００−６も、図５に示した計算装置２００−１と同様のハードウェアによって実現することができる。ただし、計算装置２００−５〜２００−６は、接続インタフェース２０５−１と同様の接続インタフェースを有しなくてもよい。
【００６２】
計算装置２００−１は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。計算装置２００−１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、計算装置２００−１に実行させるプログラムを不揮発性メモリ２０３−１に格納しておくことができる。プロセッサ２０１−１は、不揮発性メモリ２０３−１内のプログラムの少なくとも一部をメモリ２０２−１にロードし、プログラムを実行する。
【００６３】
図６は、ＰＣＩｅブリッジコントローラのハードウェア構成の一例を示す図である。ＰＣＩｅブリッジコントローラ３００は、８チャネルのＥＰとして機能する接続インタフェースを１チップ内に有する中継装置である。ＰＣＩｅブリッジコントローラ３００は、プロセッサ３０１、メモリ３０２、インターコネクト３０３およびスロット３０４−１〜３０４−８（スロット＃０〜＃７）を有する。
【００６４】
プロセッサ３０１は、ＰＣＩｅブリッジコントローラ３００全体を制御する。プロセッサ３０１は、マルチプロセッサであってもよい。プロセッサ３０１は、例えばＣＰＵ、ＭＰＵ、またはＤＳＰである。プロセッサ３０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ、ＰＬＤなどの電子回路で実現してもよい。
【００６５】
メモリ３０２は、例えば、ＲＯＭおよびＲＡＭを含む記憶メモリ（物理メモリ）である。メモリ３０２のＲＯＭには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３０２上のソフトウェアプログラムは、プロセッサ３０１に適宜読み込まれて実行される。また、メモリ３０２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００６６】
プロセッサ３０１およびメモリ３０２は、インターコネクト３０３に接続されている。また、スロット３０４−１〜３０４−８は、内部バスを介してインターコネクト３０３にそれぞれ接続されている。これにより、プロセッサ３０１およびメモリ３０２とスロット３０４−１〜３０４−８とは、インターコネクト３０３を介して相互に通信可能に接続されている。
【００６７】
スロット３０４−１〜３０４−８は、ＰＣＩｅの規格を満たすよう構成されたデバイスが接続される接続インタフェースである。情報処理システム４００では、スロット３０４−１，３０４−２に制御装置１００が接続され、スロット３０４−３〜３０４−８のそれぞれに計算装置２００−１〜２００−６が接続される。このように、制御装置１００に対して２つのスロットをアサインすることで、制御装置１００は、広い通信帯域を用いた通信を行うことができるようになる。
【００６８】
なお、以下では、Ｓｌｏｔ＃０に制御装置１００のＰＣＩｅインタフェース１０９−１が接続され、Ｓｌｏｔ＃１に制御装置１００のＰＣＩｅインタフェース１０９−２が接続されているものとする。また、Ｓｌｏｔ＃２に計算装置２００−１のＰＣＩｅインタフェース２０４−１が接続され、Ｓｌｏｔ＃３に計算装置２００−２のＰＣＩｅインタフェースが接続され、Ｓｌｏｔ＃４に計算装置２００−３のＰＣＩｅインタフェースが接続されているものとする。また、Ｓｌｏｔ＃５に計算装置２００−４のＰＣＩｅインタフェースが接続され、Ｓｌｏｔ＃６に計算装置２００−５のＰＣＩｅインタフェースが接続され、Ｓｌｏｔ＃７に計算装置２００−６のＰＣＩｅインタフェースが接続されているものとする。
【００６９】
そして、プロセッサ３０１がメモリ３０２に格納されたプログラムを実行することで、ＰＣＩｅブリッジコントローラ３００による制御装置１００および計算装置２００−１〜２００−６間（またはプロセッサ間）のデータ転送（即ち、データの送受信）を実現する。なお、ＰＣＩｅブリッジコントローラ３００は、制御装置１００および計算装置２００−１〜２００−６間のデータ転送を高速化するためにＰＣＩｅを用いる。ＰＣＩｅブリッジコントローラ３００は、制御装置１００および計算装置２００−１〜２００−６の各プロセッサをそれぞれＲＣとして動作させ、デバイスとして動作するＥＰ間でデータ転送を実現している。
【００７０】
具体的には、情報処理システム４００において、制御装置１００および計算装置２００−１〜２００−６のプロセッサは、データ転送インタフェースとしてＰＣＩｅのＲＣとして動作している。また、制御装置１００および計算装置２００−１〜２００−６（または各装置のプロセッサ）に対して、ＰＣＩｅブリッジコントローラ３００（例えば、各装置が接続されているスロット３０４−１〜３０４−８）は、ＥＰとして動作している。
【００７１】
なお、ＰＣＩｅブリッジコントローラ３００をプロセッサに対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。例えば、ＰＣＩｅブリッジコントローラ３００は、制御装置１００および計算装置２００−１〜２００−６との接続時に、ＥＰとして機能することを示す信号を当該プロセッサに通知することで、ＥＰとしてプロセッサと接続することができる。
【００７２】
ＰＣＩｅブリッジコントローラ３００においてはＥＰｔｏＥＰ（End Point to End Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。制御装置１００および計算装置２００−１〜２００−６のプロセッサ間の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続され、１つのプロセッサにデータ転送が集中しないときは、それぞれのプロセッサ間で並行してデータ転送できる。
【００７３】
次に、情報処理システム４００の各装置のソフトウェア構成について説明する。
図７は、情報処理システムの各装置のソフトウェア構成の一例を示す図である。なお、図７中においては、便宜上、制御装置１００および計算装置２００−１，２００−２のソフトウェア構成のみを図示する。計算装置２００−３〜２００−６は、計算装置２００−１，２００−２と同様のソフトウェア構成である。
【００７４】
制御装置１００は、アプリケーション１２０ａ、ドライバ１２０ｂ、ＯＳ１２０ｄおよびＢＩＯＳ（Basic Input Output System）１２０ｅを有する。アプリケーション１２０ａは、制御装置１００で行うＯＳ１２０ｄが提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション１２０ａは、ＯＳ１２０ｄ上で動作する。制御装置１００は、アプリケーション１２０ａの制御下で各種処理を行う。
【００７５】
ドライバ１２０ｂは、制御装置１００に搭載されているハードウェア等をＯＳ１２０ｄによって制御可能にするために用意されたソフトウェアである。制御装置１００が有するドライバ１２０ｂとしては、ブリッジドライバ１２０ｃ−１，１２０ｃ−２がある。
【００７６】
ブリッジドライバ１２０ｃ−１，１２０ｃ−２は、ＰＣＩｅブリッジコントローラ３００を制御するためのドライバ（言い換えればＰＣＩｅブリッジコントローラ３００に電気的にアクセスして計算装置と通信を行うためのドライバ）である。制御装置１００は、２つのＲＣを用いてＰＣＩｅブリッジコントローラ３００に搭載されている２つのＥＰと接続しているため、それぞれの接続として機能するＲＣに対応するブリッジドライバ１２０ｃ−１，１２０ｃ−２を有している。なお、以下では、ブリッジドライバ１２０ｃ−１がＰＣＩｅインタフェース１０９−１に対応するドライバであり、ブリッジドライバ１２０ｃ−２がＰＣＩｅインタフェース１０９−２に対応するドライバであるものとする。
【００７７】
ＯＳ１２０ｄは、制御装置１００を動かすための基本ソフトウェアまたは基本プログラムである。ＢＩＯＳ１２０ｅは、制御装置１００におけるＯＳ１２０ｄの起動を制御するソフトウェアである。制御装置１００では、例えば、ＢＩＯＳ１２０ｅによってＢｏｏｔｌｏａｄｅｒが起動され（または呼び出され）、起動されたＢｏｏｔｌｏａｄｅｒによりＯＳ１２０ｄが検出され、ＯＳ１２０ｄが起動する。
【００７８】
次に計算装置２００−１〜２００−６について説明する。計算装置２００−１〜２００−６は、同様のソフトウェア構成であるので、計算装置２００−１を例として用いて説明する。計算装置２００−１は、アプリケーション２２０ａ−１、ドライバ２２０ｂ−１、ＯＳ２２０ｄ−１およびＢｏｏｔｌｏａｄｅｒ２２０ｅ−１を有する。
【００７９】
アプリケーション２２０ａ−１は、計算装置２００−１で行うＯＳ２２０ｄ−１が提供する機能を利用して各種処理を実行する応用ソフトウェアまたは応用プログラムである。アプリケーション２２０ａ−１は、ＯＳ２２０ｄ−１上で動作する。計算装置２００−１は、アプリケーション２２０ａ−１の制御下で各種処理を行う。
【００８０】
ドライバ２２０ｂ−１は、計算装置２００−１に搭載されているハードウェア等をＯＳ２２０ｄ−１によって制御可能にするために用意されたソフトウェアである。計算装置２００−１が有するドライバ２２０ｂ−１としては、ブリッジドライバ２２０ｃ−１がある。
【００８１】
ブリッジドライバ２２０ｃ−１は、ＰＣＩｅブリッジコントローラ３００を制御するためのドライバである。計算装置２００−１は、１つのＲＣを用いてＰＣＩｅブリッジコントローラ３００に搭載されている１つのＥＰと接続するため、１つのブリッジドライバ２２０ｃ−１を有している。
【００８２】
ＯＳ２２０ｄ−１は、計算装置２００−１を動かすための基本ソフトウェアまたは基本プログラムである。Ｂｏｏｔｌｏａｄｅｒ２２０ｅ−１は、計算装置２００−１の起動時に呼び出され、ＯＳ２２０ｄ−１を起動するソフトウェアである。計算装置２００−１では、例えば、Ｂｏｏｔｌｏａｄｅｒ２２０ｅ−１によりＯＳ２２０ｄ−１が検出され、ＯＳ２２０ｄ−１が起動する。
【００８３】
次にＰＣＩｅブリッジコントローラ３００に接続される各装置間における通信処理について説明する。
図８は、装置間における通信処理の一例を示す図である。ここでは制御装置１００のプロセッサ１０１と計算装置２００−１のプロセッサ２０１−１との間で通信を行う例を用いて説明する。
【００８４】
送信元の制御装置１００は、ＲＣであるプロセッサ１０１において生成したデータを、ソフトウェア、トランザクション層、データリンク層および物理層（ＰＨＹ）に順次転送し、物理層においてＰＣＩｅブリッジコントローラ３００の物理層に転送する。
【００８５】
ＰＣＩｅブリッジコントローラ３００は、制御装置１００から転送されたデータを、物理層、データリンク層、トランザクション層およびソフトウェアに順次転送し、計算装置２００−１のＲＣに対応するＥＰにトンネリングにより転送する。即ち、ＰＣＩｅブリッジコントローラ３００においては、ＥＰ間でデータをトンネリングさせることで、１つのＲＣ（またはプロセッサ）から他のＲＣ（またはプロセッサ）にデータが転送される。
【００８６】
送信先の計算装置２００−１は、ＰＣＩｅブリッジコントローラ３００から転送されたデータを、物理層、データリンク層、トランザクション層およびソフトウェアに順次転送し、送信先の計算装置２００−１のプロセッサ２０１−１に転送する。
【００８７】
情報処理システム４００では、装置間の通信はＰＣＩｅのトランザクションが発生したときに論理的に接続される。ＰＣＩｅブリッジコントローラ３００が有する８スロットのうちの一つに接続された特定のプロセッサに対して複数の他のプロセッサからのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ間で並行してデータ転送してもよい。例えば、プロセッサ１０１に対して、プロセッサ２０１−１およびプロセッサ２０１−２が通信する場合には、ＰＣＩｅブリッジコントローラ３００は、プロセッサ２０１−１およびプロセッサ２０１−２による通信をシリアルに処理する。
【００８８】
一方、異なる装置のプロセッサ同士が通信し、特定の装置のプロセッサに通信が集中しない場合には、ＰＣＩｅブリッジコントローラ３００は、装置間の通信を並行して処理することも可能である。
【００８９】
次に、ＰＣＩｅブリッジコントローラ３００を介した装置間のデータ転送方法を説明する。
図９は、ＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法の一例を示す図である。ここではＳｌｏｔ＃０に接続された制御装置１００が、Ｓｌｏｔ＃３に接続された計算装置２００−１にデータを転送する場合を例に用いて説明する。
【００９０】
送信元の制御装置１００は、ソフトウェア等によって送信されるデータ（以下、送信データという）を、制御装置１００に備えられるストレージ装置１０３から制御装置１００のメモリ１０２（物理メモリ）のメモリ領域１０２ａに格納する（Ｐ１０）。メモリ領域１０２ａは、転送されるデータが一時的に格納される通信バッファの一部であってもよい。
【００９１】
メモリ領域１０２ａは、ＰＣＩｅブリッジコントローラ３００のスロットの数に応じて分割されている。メモリ領域１０２ａの分割された記憶領域は、ＰＣＩｅブリッジコントローラ３００のいずれかのスロットに対応付けられている。即ち、メモリ領域１０２ａには、Ｓｌｏｔ＃０〜＃７のそれぞれに対応する記憶領域が設けられている。なお計算装置２００−１〜２００−６のメモリにも、メモリ領域１０２ａと同様のメモリ領域が設けられている。
【００９２】
例えば、メモリ領域１０２ａ内のＳｌｏｔ＃０で示す記憶領域は、Ｓｌｏｔ＃０に接続された制御装置１００に対応付けられ、Ｓｌｏｔ＃３で示す記憶領域は、Ｓｌｏｔ＃３に接続された計算装置２００−１に対応付けられている。制御装置１００は、メモリ領域１０２ａのうち、送信先のスロット（ここでは、Ｓｌｏｔ＃３）に割り当てられた領域に送信データを格納する。
【００９３】
ブリッジドライバ１２０ｃ−１は、メモリ領域１０２ａの記憶領域に基づいて、送信先のスロットを示すスロット情報と、送信先のメモリ領域における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する（Ｐ１１）。
【００９４】
送信元ＥＰにおいて、ブリッジドライバ１２０ｃ−１は、スロット情報と、アドレス情報と、送信データとを含む転送データをＰＣＩｅブリッジコントローラ３００に渡す（Ｐ１２）。これにより、ＰＣＩｅブリッジコントローラ３００は、スロット情報に基づいてＥＰｔｏＥＰにより送信元のスロットと送信先のスロットとを接続することにより、転送データを送信先の計算装置２００−１に転送する（Ｐ１３）。送信先の計算装置２００−１は、スロット情報およびアドレス情報に基づいて、送信先の計算装置２００−１のメモリ領域２０２ａ−１のＳｌｏｔ＃３に対応する記憶領域内のアドレス情報が示す領域に送信データ（または転送データ）を格納する（Ｐ１４）。
【００９５】
送信先の計算装置２００−１において、例えば、プログラムが、メモリ領域２０２ａ−１に格納された送信データを読み出して、メモリ２０２−１のメモリ領域２０２ａ−１以外の記憶領域や不揮発性メモリ２０３−１に移動させる（Ｐ１５、Ｐ１６）。
【００９６】
このように、ＰＣＩｅブリッジコントローラ３００内のＥＰ間でデータ転送を媒介して制御装置１００から計算装置２００−１にデータが転送される。これにより、情報処理システム４００は、ＰＣＩｅブリッジコントローラ３００に接続された複数のＲＣ間でのデータ転送を実現することができる。
【００９７】
情報処理システム４００では、制御装置１００および計算装置２００−１〜２００−６のプロセッサをＰＣＩｅのＲＣとして独立動作する。また、情報処理システム４００では、ＰＣＩｅブリッジコントローラ３００は、デバイスであるＥＰとして制御装置１００および計算装置２００−１〜２００−６に接続され、ＥＰ間でデータ転送を行う。ここで、制御装置１００および計算装置２００−１〜２００−６は、ＥＰとなるＰＣＩｅブリッジコントローラ３００を介して接続されるため、ＥＰの先のＲＣのデバイスドライバを追加しなくてよい。従って、情報処理システム４００は、デバイスドライバの開発を不要にし、デバイスドライバを追加することに起因する不具合の発生を防止できる。また、制御装置１００および計算装置２００−１〜２００−６のプロセッサは、ＰＣＩｅの規格に適合したデータ通信機能を有してさえいればよい。
【００９８】
よって、情報処理システム４００は、デバイスドライバの有無や、サポートＯＳ等によらず使用するプロセッサの選択肢を広げることが可能となる。また、情報処理システム４００は、ＰＣＩｅブリッジコントローラ３００によるＰＣＩｅでの接続および通信により、イーサネットよりも高速なデータ転送を実現することができる。
【００９９】
次に、第２の実施の形態の情報処理システムに含まれる各装置の機能について詳細に説明する。
図１０は、情報処理システムの機能例を示すブロック図である。制御装置１００は、ブリッジドライバ１２０ｃ−１、記憶部１３０および管理部１４０を有する。記憶部１３０は、メモリ１０２またはストレージ装置１０３の記憶領域を用いて実現される。管理部１４０は、メモリ１０２に記憶されたプログラムをプロセッサ１０１が実行することで実現される。
【０１００】
記憶部１３０は、送信先情報４０および画像処理結果１３１−１，１３１−２，・・・を有する。送信先情報４０は、計算装置２００−１〜２００−６それぞれが画像処理の結果を送信する送信先を示す情報である。画像処理結果１３１−１，１３１−２，・・・は、計算装置２００−１〜２００−６から収集された、計算装置２００−１〜２００−６それぞれによる画像処理の結果を示すデータである。例えば、画像処理結果１３１−１，１３１−２，・・・それぞれは、１つの製品について出荷基準外の大きさのキズがあるか否かを示す情報が含まれる。
【０１０１】
管理部１４０は、計算装置２００−１〜２００−６の画像処理結果の送信先の設定および画像処理結果１３１−１，１３１−２，・・・に基づくユーザへの通知処理をする。管理部１４０は、計算装置２００−１〜２００−６の画像処理結果の送信先の設定では、送信先情報４０を生成する。例えば、管理部１４０は、ユーザによる計算装置２００−１〜２００−６の画像処理結果の送信先の設定を受け付ける。管理部１４０は、ユーザによって設定された計算装置２００−１〜２００−６それぞれの画像処理結果の送信先を示す送信先情報４０を生成する。管理部１４０は、生成した送信先情報４０をブリッジドライバ１２０ｃ−１を介して計算装置２００−１〜２００−６に送信する。管理部１４０は、画像処理結果１３１−１，１３１−２，・・・に基づくユーザへの通知処理では、例えば、出荷基準外のキズがある製品の割合をモニタ３１に表示させる。
【０１０２】
計算装置２００−１は、ブリッジドライバ２２０ｃ−１、記憶部２３０−１および画像処理部２４０−１を有する。記憶部２３０−１は、メモリ２０２−１または不揮発性メモリ２０３−１の記憶領域を用いて実現される。画像処理部２４０−１は、メモリ２０２−１に記憶されたプログラムをプロセッサ２０１−１が実行することで実現される。なお、計算装置２００−２〜２００−４が有する機能は、計算装置２００−１と同様である。記憶部２３０−１は、送信先情報４０を記憶する。
【０１０３】
画像処理部２４０−１は、カメラ２１−１が撮影した画像を取得し、取得した画像から製品のキズを検出する処理（１次診断）をする。例えば、画像処理部２４０−１は、入力画像に写るキズの位置を示す情報を出力する学習済みモデルに、カメラ２１−１が撮影した画像を入力する。そして、画像処理部２４０−１は、１次診断の結果を送信先情報４０が示す送信先に、ブリッジドライバ２２０ｃ−１を介して送信する。ここで、送信先情報４０では、画像から製品のキズが検出された場合および画像から製品のキズが検出されなかった場合それぞれに、異なる送信先が対応付けられている。
【０１０４】
例えば、画像から製品のキズが検出された場合、画像処理部２４０−１は、カメラ２１−１が撮影した画像と製品のキズの位置を示す情報とを計算装置２００−５，２００−６のうちの負荷が小さい計算装置（例えば、計算装置２００−５）に送信する。また、例えば、画像から製品のキズが検出されなかった場合、画像処理部２４０−１は、カメラ２１−１が撮影した画像を圧縮した画像と製品にキズがなかったことを示す情報とを制御装置１００に送信する。
【０１０５】
計算装置２００−５は、ブリッジドライバ２２０ｃ−５、記憶部２３０−５および画像処理部２４０−５を有する。記憶部２３０−５は、計算装置２００−５のメモリまたは不揮発性メモリの記憶領域を用いて実現される。画像処理部２４０−５は、計算装置２００−５のメモリに記憶されたプログラムを計算装置２００−５のプロセッサが実行することで実現される。なお、計算装置２００−６が有する機能は、計算装置２００−５と同様である。記憶部２３０−５は、送信先情報４０を記憶する。
【０１０６】
画像処理部２４０−５は、計算装置２００−１〜２００−４による１次診断の結果を取得し、キズの大きさが出荷基準外であるか否かを判定する処理（２次診断）をする。例えば、画像処理部２４０−５は、カメラ２１−１が撮影した画像と製品のキズの位置を示す情報とを計算装置２００−１から取得する。画像処理部２４０−５は、製品のキズの位置を示す情報に基づいて、カメラ２１−１が撮影した画像から製品のキズが写る部分を抽出する。画像処理部２４０−５は、入力画像に写るキズの大きさを示す情報を出力する学習済みモデルに、カメラ２１−１が撮影した画像から抽出した部分を入力する。そして、画像処理部２４０−５は、学習モデルが出力したキズの大きさが出荷基準外であるか否かを判定する。
【０１０７】
画像処理部２４０−５は、２次診断の結果を送信先情報４０が示す送信先に、ブリッジドライバ２２０ｃ−５を介して送信する。例えば、キズの大きさが出荷基準外と判定された場合、画像処理部２４０−５は、カメラ２１−１が撮影した画像と製品のキズの大きさが出荷基準外であったことを示す情報とを制御装置１００に送信する。また、例えば、キズの大きさが出荷基準内と判定された場合、画像処理部２４０−５は、カメラ２１−１が撮影した画像を圧縮した画像と製品のキズの大きさが出荷基準内であったことを示す情報とを制御装置１００に送信する。なお、図１０に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【０１０８】
次に、各装置が記憶する送信先情報４０について説明する。
図１１は、送信先情報の一例を示す図である。送信先情報４０には、「装置名」、「処理名」、「ＭＡＣ（Media Access Control）アドレス」、「ＯＫ判定」および「ＮＧ判定」の欄が設けられている。「装置名」の欄には、制御装置１００および計算装置２００−１〜２００−６のうちの対応する装置の名称が設定されている。「処理名」の欄には、対応する装置が実行する処理名が設定されている。「ＭＡＣアドレス」の欄には、対応する装置のＭＡＣアドレスが設定されている。なお、装置のＭＡＣアドレスは、ＰＣＩｅブリッジコントローラ３００を仮想ＬＡＮ（Local Area Network）としたときに、当該装置のＰＣＩｅインタフェースに設定されるＭＡＣアドレスである。
【０１０９】
「ＯＫ判定」の欄には、対応する装置が実行した処理結果がＯＫ判定であった場合の送信先の装置のＭＡＣアドレスが設定される。ここで、ＯＫ判定は、１次診断において製品のキズが検出されなかったことおよび２次診断において、製品のキズが出荷基準内であったことを示す。「ＮＧ判定」の欄には、対応する装置が実行した処理結果がＮＧ判定であった場合の送信先の装置のＭＡＣアドレスが設定される。ここで、ＮＧ判定は、１次診断において製品のキズが検出されたことおよび２次診断において、製品のキズが出荷基準外であったことを示す。
【０１１０】
なお、ＯＫ判定およびＮＧ判定は、第１の実施の形態に示した、送信先情報１１ｂ−１，１２ｂ−１に含まれる複数の条件の一例である。また、制御装置１００および計算装置２００−１〜２００−６は、それぞれ送信先情報４０の情報のうち、自装置に対応する情報だけ記憶していてもよい。また、制御装置１００は、送信先情報４０を有していなくてもよい。
【０１１１】
次に、１次診断および２次診断の範囲について説明する。
図１２は、１次診断および２次診断の範囲の一例を示す図である。グラフ５０は、第２の実施の形態で検査する製品のキズの大きさと製造される数量との関係の一例を示す。なお、製品の出荷基準は、キズの大きさがｓ２未満とする。情報処理システム４００は、製品を撮影した画像に対する画像処理によって、製品のキズの大きさがｓ２未満であるか否かを判定する。ここで、製品の画像から製品のキズの大きさを判定する処理は、製品の画像から製品のキズを検出する処理に比べて負荷が大きい。
【０１１２】
そこで、情報処理システム４００では、計算装置２００−１〜２００−４は、製品の画像に対する１次診断を行い、キズの大きさがｓ１（キズとして検出される大きさ）以上の場合に、計算装置２００−５〜２００−６は、製品の画像に対する２次診断を行う。これにより、キズの大きさがｓ１未満（１次診断正常範囲）の製品の画像は、２次診断の対象外となる。このように、情報処理システム４００は、負荷の大きい画像処理を行う回数を減らし、全体の画像処理の効率を向上させることができる。なお、計算装置２００−５〜２００−６が実行する２次診断は、製品にキズが付いた理由の解析等のキズの詳細な解析処理を含んでもよい。
【０１１３】
次に、情報処理システム４００全体の処理について説明する。
図１３は、情報処理システムの処理内容の第１の例を示す図である。計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４から製品を撮影した画像を取得する。計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４が撮影した製品の画像に対する１次診断を実行する。
【０１１４】
計算装置２００−１〜２００−４は、１次診断によってカメラ２１−１〜２１−４が撮影した製品にキズが検出されなかった場合（キズなしの場合）、１次診断の結果を制御装置１００に送信する。１次診断の結果は、第１の実施の形態に示した取得データの一例である。また、計算装置２００−１〜２００−４は、１次診断によってカメラ２１−１〜２１−４が撮影した製品にキズが検出された場合（キズありの場合）、カメラ２１−１〜２１−４が撮影した画像と１次診断の結果とを計算装置２００−５〜２００−６に送信する。
【０１１５】
計算装置２００−５〜２００−６は、計算装置２００−１〜２００−４から取得したカメラ２１−１〜２１−４が撮影した画像と１次診断の結果とに基づいて、２次診断を実行する。そして、計算装置２００−５〜２００−６は、２次診断の結果を制御装置１００に送信する。
【０１１６】
制御装置１００は、計算装置２００−１〜２００−６から収集した１次診断および２次診断の結果を集計する。そして、制御装置１００は、出荷基準外の製品の割合をユーザに通知する。
【０１１７】
次に、制御装置１００による１次診断および２次診断の結果の収集処理をシーケンス図を用いて説明する。
図１４は、診断結果収集の例を示すシーケンス図である。図１４では、計算装置２００−１による１次診断の結果および計算装置２００−５による２次診断の結果を制御装置１００が収集する例を示す。
【０１１８】
カメラ２１−１は、製品を撮影した画像を計算装置２００−１に送信する（ステップＳ１１）。計算装置２００−１の画像処理部２４０−１は、カメラ２１−１が撮影した画像を取得する。画像処理部２４０−１は、カメラ２１−１が撮影した画像に対する１次診断を実行する（ステップＳ１２）。ここで、画像処理部２４０−１は、送信先情報４０を参照し、１次診断の結果に対応する送信先を特定する。そして、画像処理部２４０−１は、特定した送信先に１次診断の結果を送信する。
【０１１９】
１次診断によってキズが検出されなかった場合（ＯＫ判定の場合）、画像処理部２４０−１は、１次診断の結果を制御装置１００に送信する（ステップＳ１３）。制御装置１００の管理部１４０は、計算装置２００−１から取得した１次診断の結果（例えば、画像処理結果１３１−１）を、記憶部１３０に格納する。
【０１２０】
また、１次診断によってキズが検出された場合（ＮＧ判定の場合）、画像処理部２４０−１は、カメラ２１−１が撮影した画像と１次診断の結果とを計算装置２００−５に送信する（ステップＳ１４）。計算装置２００−５の画像処理部２４０−５は、カメラ２１−１が撮影した画像と１次診断の結果とに基づいて、２次診断を実行する（ステップＳ１５）。そして、画像処理部２４０−５は、送信先情報４０を参照し、２次診断の結果を制御装置１００に送信する（ステップＳ１６）。管理部１４０は、計算装置２００−１から取得した２次診断の結果（例えば、画像処理結果１３１−２）を、記憶部１３０に格納する。
【０１２１】
そして、管理部１４０は、２次診断で出荷基準外のキズが検出された数を画像処理結果１３１−１，１３１−２・・・の数（製品数）で除して、出荷基準外のキズがある製品の割合を算出する。管理部１４０は、出荷基準外のキズがある製品の割合を集計結果として表示出力する（ステップＳ１７）。
【０１２２】
このようにして、制御装置１００の管理部１４０は、１次診断の結果および２次診断の結果を収集できる。ここで、計算装置２００−１の画像処理部２４０−１は、カメラ２１−１から直接画像を取得している。また、計算装置２００−１，２００−５は、送信先情報４０によって決められた送信先に診断結果を送信しているため、制御装置１００を介さずに適切な送信先にデータを送信できる。このように、情報処理システム４００は、制御装置１００にデータの送受信が集中することを抑制することで、画像処理の効率を向上させることができる。
【０１２３】
以下、制御装置１００および計算装置２００−１〜２００−６の各装置が実行する処理の手順について、詳細に説明する。まず、制御装置１００による各装置の送信先の設定処理の手順について説明する。
【０１２４】
図１５は、送信先設定処理の手順の一例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ１０１］管理部１４０は、ユーザによる計算装置２００−１〜２００−６の画像処理結果の送信先の設定を受け付ける。
【０１２５】
［ステップＳ１０２］管理部１４０は、ステップＳ１０１で設定された計算装置２００−１〜２００−６それぞれの画像処理結果の送信先を示す送信先情報４０を生成する。
【０１２６】
［ステップＳ１０３］管理部１４０は、ステップＳ１０２で生成した送信先情報４０をブリッジドライバ１２０ｃ−１を介して計算装置２００−１〜２００−６に送信する。ブリッジドライバ１２０ｃ−１は、送信先情報４０を計算装置２００−１〜２００−６それぞれに転送するようＰＣＩｅブリッジコントローラ３００に指示する。
【０１２７】
このようにして、管理部１４０は、送信先情報４０を生成し、送信先情報４０を計算装置２００−１〜２００−６に通知する。なお、管理部１４０は、送信先情報４０とともに計算装置２００−１〜２００−６それぞれが実施する処理内容を通知してもよい。なお、送信先情報４０は、制御装置１００にネットワーク２０を介して接続されるユーザ端末等の制御装置１００以外の情報処理装置によって生成され、計算装置２００−１〜２００−６に通知されてもよい。
【０１２８】
次に、計算装置２００−１による１次診断の手順について説明する。なお、計算装置２００−２〜２００−４による１次診断の手順についても、計算装置２００−１による１次診断の手順と同様である。
【０１２９】
図１６は、１次診断の手順の一例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］画像処理部２４０−１は、カメラ２１−１が撮影した画像を取得する。
【０１３０】
［ステップＳ１１２］画像処理部２４０−１は、ステップＳ１１１で取得した画像を画像処理実行用のメモリにコピーする。
［ステップＳ１１３］画像処理部２４０−１は、ステップＳ１１１で取得した画像に対するキズ検出処理を実行する。例えば、画像処理部２４０−１は、入力画像に写るキズの位置を示す情報を出力する学習済みモデルに、ステップＳ１１１で取得した画像を入力する。
【０１３１】
［ステップＳ１１４］画像処理部２４０−１は、ステップＳ１１３の処理でキズが検出された（キズあり）か否かを判定する。画像処理部２４０−１は、キズありと判定した場合、処理をステップＳ１１８に進める。また、画像処理部２４０−１は、キズなしと判定した場合、処理をステップＳ１１５に進める。
【０１３２】
［ステップＳ１１５］画像処理部２４０−１は、ステップＳ１１１で取得した画像を圧縮する。
［ステップＳ１１６］画像処理部２４０−１は、処理結果を示すＣＳＶ（Comma Separated Value）ファイルを生成する。例えば、画像処理部２４０−１は、ステップＳ１１１で取得した画像に写る製品にキズがないことを示すＣＳＶファイルを生成する。
【０１３３】
［ステップＳ１１７］画像処理部２４０−１は、送信先情報４０を参照し、キズなし（ＯＫ判定）に対応する１次診断の結果の送信先である制御装置１００を特定する。そして、画像処理部２４０−１は、制御装置１００に、ステップＳ１１５で圧縮した画像とステップＳ１１６で生成したＣＳＶファイルとをブリッジドライバ２２０ｃ−１を介して送信する。ブリッジドライバ２２０ｃ−１は、圧縮した画像とＣＳＶファイルとを制御装置１００に転送するようＰＣＩｅブリッジコントローラ３００に指示する。そして、処理が終了する。
【０１３４】
［ステップＳ１１８］画像処理部２４０−１は、処理結果を示すＣＳＶファイルを生成する。例えば、画像処理部２４０−１は、ステップＳ１１１で取得した画像上の製品のキズの位置を示すＣＳＶファイルを生成する。
【０１３５】
［ステップＳ１１９］画像処理部２４０−１は、送信先情報４０を参照し、キズあり（ＮＧ判定）に対応する１次診断の結果の送信先である計算装置２００−５〜２００−６を特定する。画像処理部２４０−１は、送信先である計算装置２００−５〜２００−６の負荷状況を確認する。
【０１３６】
［ステップＳ１２０］画像処理部２４０−１は、計算装置２００−５〜２００−６のうち、ステップＳ１１９で確認した負荷が低い計算装置（例えば、計算装置２００−５）を１次診断の結果の送信先に決定する。そして、画像処理部２４０−１は、計算装置２００−５に、ステップＳ１１１で取得した画像とステップＳ１１８で生成したＣＳＶファイルとをブリッジドライバ２２０ｃ−１を介して送信する。ブリッジドライバ２２０ｃ−１は、画像とＣＳＶファイルとを計算装置２００−５に転送するようＰＣＩｅブリッジコントローラ３００に指示する。
【０１３７】
このようにして、画像処理部２４０−１は、カメラ２１−１から画像を取得し、取得した画像に写る製品のキズの検出（１次診断）をする。そして、画像処理部２４０−１は、製品のキズが検出されなかった場合、診断結果を収集する制御装置１００に１次診断の結果を送信し、キズが検出された場合、２次診断を実行する計算装置２００−５〜２００−６に１次診断の結果を送信する。ここで、画像処理部２４０−１は、１次診断の結果の送信先を送信先情報４０を参照することで特定できる。
【０１３８】
このように、画像処理部２４０−１は、画像処理の対象の画像の取得と画像処理結果の送信とを制御装置１００を介さずに行うことができる。よって、情報処理システム４００は、制御装置１００へのデータ送信を軽減し、画像処理の効率を向上させることができる。また、送信先情報４０は、キズが検出されなかった場合の送信先とキズが検出された場合の送信先とを含んでいるため、画像処理部２４０−１は、２次診断が不要な場合に１次診断の結果を制御装置１００に送信することができる。このように、情報処理システム４００は、分岐を含む２段階の画像処理を実現できる。
【０１３９】
また、画像処理部２４０−１から制御装置１００および計算装置２００−５〜２００−６へのデータ送信は、各装置のデバイスとして動作するＰＣＩｅブリッジコントローラ３００によって中継される。よって、画像処理部２４０−１は、制御装置１００および計算装置２００−５〜２００−６のいずれの装置への１次診断の結果の送信においても、ブリッジドライバ２２０ｃ−１を用いればよい。このように、情報処理システム４００は、データ転送のための各装置専用のドライバを不要にし、データ送信を容易にすることができる。
【０１４０】
また、計算装置２００−２〜２００−４も、カメラ２１−２〜２１−４から取得した画像に基づいて、上記の計算装置２００−１と同様の処理を実行する。よって情報処理システム４００は、複数の画像処理を並列して実行できる。
【０１４１】
次に、計算装置２００−５による２次診断の手順について説明する。なお、計算装置２００−６による２次診断の手順についても、計算装置２００−５による２次診断の手順と同様である。
【０１４２】
図１７は、２次診断の手順の一例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ１３１］画像処理部２４０−５は、１次診断用の計算装置から、１次診断の結果を取得する。例えば、画像処理部２４０−５は、計算装置２００−１からカメラ２１−１が撮影した画像と画像上の製品のキズの位置を示すＣＳＶファイルとを取得する。
【０１４３】
［ステップＳ１３２］画像処理部２４０−５は、ステップＳ１３１で取得した画像からステップＳ１３１で取得したＣＳＶファイルに記載されたキズの領域を抽出する。
［ステップＳ１３３］画像処理部２４０−５は、ステップＳ１３１で取得した画像に写るキズの大きさを判定する。例えば、画像処理部２４０−５は、入力画像に写るキズの大きさを示す情報を出力する学習済みモデルに、ステップＳ１３２で画像から抽出した領域を入力する。
【０１４４】
［ステップＳ１３４］画像処理部２４０−５は、ステップＳ１３３の処理で判定されたキズの大きさが出荷基準内であるか否かを判定する。画像処理部２４０−５は、キズが出荷基準内であると判定した場合、処理をステップＳ１３５に進める。画像処理部２４０−５は、キズが出荷基準外であると判定した場合、処理をステップＳ１３８に進める。
【０１４５】
［ステップＳ１３５］画像処理部２４０−５は、ステップＳ１３１で取得した画像を圧縮する。
［ステップＳ１３６］画像処理部２４０−５は、処理結果を示すＣＳＶファイルを生成する。例えば、画像処理部２４０−５は、ステップＳ１３１で取得した画像に写る製品のキズの大きさが出荷基準内であることを示すＣＳＶファイルを生成する。
【０１４６】
［ステップＳ１３７］画像処理部２４０−５は、送信先情報４０を参照し、２次診断の結果の送信先である制御装置１００を特定する。そして、画像処理部２４０−５は、制御装置１００に、ステップＳ１１５で圧縮した画像とステップＳ１３６で生成したＣＳＶファイルとをブリッジドライバ２２０ｃ−５を介して送信する。ブリッジドライバ２２０ｃ−５は、圧縮した画像とＣＳＶファイルとを制御装置１００に転送するようＰＣＩｅブリッジコントローラ３００に指示する。そして、処理が終了する。
【０１４７】
［ステップＳ１３８］画像処理部２４０−５は、処理結果を示すＣＳＶファイルを生成する。例えば、画像処理部２４０−５は、ステップＳ１３１で取得した画像上の製品のキズの位置とキズの大きさが出荷基準外であることとを示すＣＳＶファイルを生成する。
【０１４８】
［ステップＳ１３９］画像処理部２４０−５は、送信先情報４０を参照し、２次診断の結果の送信先である制御装置１００を特定する。そして、画像処理部２４０−５は、計算装置２００−５に、ステップＳ１３１で取得した画像とステップＳ１３８で生成したＣＳＶファイルとをブリッジドライバ２２０ｃ−５を介して送信する。ブリッジドライバ２２０ｃ−５は、画像とＣＳＶファイルとを制御装置１００に転送するようＰＣＩｅブリッジコントローラ３００に指示する。
【０１４９】
このようにして、画像処理部２４０−５は、１次診断を行った計算装置から製品の画像と１次診断の結果とを取得し、取得した画像に写った製品のキズの大きさの判定（２次診断）をする。ここで、画像処理部２４０−５は、制御装置１００を介さずに画像と１次診断の結果とを取得できる。そして、画像処理部２４０−５は、送信先情報４０に示される送信先である制御装置１００に２次診断の結果を送信する。
【０１５０】
次に、制御装置１００による診断結果表示処理の手順について説明する。
図１８は、診断結果表示処理の手順の一例を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
【０１５１】
［ステップＳ１４１］管理部１４０は、各計算装置から画像とＣＳＶファイルとを受信する。管理部１４０は、受信した画像とＣＳＶファイルと（診断結果）を画像処理結果１３１−１，１３１−２，・・・として記憶部１３０に格納する。
【０１５２】
［ステップＳ１４２］管理部１４０は、出荷基準内の診断結果と出荷基準外の診断結果とを分別する。例えば、管理部１４０は、画像処理結果１３１−１，１３１−２，・・・を出荷基準内と診断されたものと出荷基準外と診断されたものとに分けて保存する。
【０１５３】
［ステップＳ１４３］管理部１４０は、出荷基準外の製品の割合を表示する。例えば、管理部１４０は、画像処理結果１３１−１，１３１−２，・・・のうちステップＳ１４２で出荷基準外として保存されたものの数を画像処理結果１３１−１，１３１−２，・・・の数で除することで、出荷基準外の製品の割合を算出する。そして、管理部１４０は、算出した出荷基準外の製品の割合をモニタ３１に表示させる。なお、管理部１４０は、生産数、出荷基準内の製品の割合、出荷基準外の製品の画像等を表示してもよい。
【０１５４】
このようにして、管理部１４０は、診断結果を集計し、出荷基準外の製品の割合を表示する。なお、制御装置１００は、基準外の製品の割合が大きい場合、製造ラインを止めてもよい。
【０１５５】
このように第２の実施の形態の情報処理システム４００では、計算装置２００−１〜２００−４がカメラ２１−１〜２１−４に接続され、計算装置２００−１〜２００−６がカメラ２１−１〜２１−４が撮影した画像に基づく画像処理を実行する。制御装置１００は、計算装置２００−１〜２００−６から、計算装置２００−１〜２００−６が実行した画像処理の結果を収集し、収集した画像処理の結果に基づいた処理を実行する。これにより、情報処理システム４００では、計算装置２００−１〜２００−６が制御装置１００を介さずに、カメラ２１−１〜２１−４が撮影した画像を取得できるため、制御装置１００のデータ送受信量が減少する。よって、情報処理システム４００は、画像処理の効率を向上させることができる。
【０１５６】
また、情報処理システム４００では、ＰＣＩｅブリッジコントローラ３００は、計算装置２００−１〜２００−６および制御装置１００それぞれに、計算装置２００−１〜２００−６および制御装置１００それぞれのデバイスとして接続される。そして、ＰＣＩｅブリッジコントローラ３００は、計算装置２００−１〜２００−６および制御装置１００間のデータ送信を中継する。これにより、計算装置２００−１〜２００−６および制御装置１００それぞれは、他の装置へのデータ送信のためにＰＣＩｅブリッジコントローラ３００のブリッジドライバのみを有していればよい。よって、情報処理システム４００は、装置間のデータ送信を容易にできる。
【０１５７】
また、情報処理システム４００では、カメラ２１−１〜２１−４に接続される計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４が撮影した画像を取得し、カメラ２１−１〜２１−４が撮影した画像に対する画像処理を実行する。そして、計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４が撮影した画像と自装置が実行した画像処理の結果とに基づくデータを計算装置２００−５〜２００−６および制御装置１００のうちの少なくとも１つに送信する。カメラ２１−１〜２１−４に接続されていない計算装置２００−５〜２００−６は、計算装置２００−１〜２００−４から取得した取得データに基づく画像処理を実行し、取得データと自装置が実行した画像処理の結果とに基づくデータを制御装置１００に送信する。これにより、情報処理システム４００は、カメラに接続されていない計算装置２００−５〜２００−６も利用した２段階の画像処理を実行できる。
【０１５８】
また、情報処理システム４００では、計算装置２００−１〜２００−６それぞれは、送信先情報４０を記憶し、自装置が実行した画像処理の結果に基づくデータを送信先情報４０が示す送信先に送信する。これにより、情報処理システム４００は、画像処理におけるデータの流れを制御装置１００を介さずに制御できる。
【０１５９】
また、情報処理システム４００では、送信先情報４０は、複数の条件と複数の条件それぞれに対応する送信先とを含む。計算装置２００−１〜２００−４それぞれは、自装置が実行した画像処理の結果に基づくデータを、送信先情報４０に示される複数の条件のうちの自装置が実行した画像処理の結果が満たす条件に対応する送信先に送信する。これにより、情報処理システム４００は、分岐があるデータの流れを制御できる。
【０１６０】
計算装置２００−１〜２００−４は、カメラ２１−１〜２１−４のうちの１つに接続される。これにより、情報処理システム４００は、複数のカメラそれぞれが撮影した画像に基づいた処理を、複数の計算装置に分散して実行させることができる。
【０１６１】
〔その他の実施の形態〕
第２の実施の形態の情報処理システム４００では、製品のキズの１次診断および２次診断の２段階の処理を行っていたが、他の２段階の画像処理が行われてもよいし、１段階の処理や３段階以上の画像処理が行われてもよい。また、第２の実施の形態の情報処理システム４００は６つの計算装置２００−１〜２００−６を含み、４つの計算装置２００−１〜２００−４がカメラと接続されていた。しかし、情報処理システムが含む計算装置の総数とカメラと接続される計算装置の数とは、第２の実施の形態に示したものに限られない。以下に、画像処理をする情報処理システムの他の例を２つ示す。
【０１６２】
図１９は、情報処理システムの処理内容の第２の例を示す図である。情報処理システム４００ａは、カメラ２１ａ−１〜２１ａ−６が撮影した街頭の画像から人物を検出するものである。情報処理システム４００ａは、制御装置１００ａおよび計算装置２００ａ−１〜２００ａ−６を含む。計算装置２００ａ−１は、カメラ２１ａ−１と接続される。また、計算装置２００ａ−２は、カメラ２１ａ−２と接続される。また、計算装置２００ａ−３は、カメラ２１ａ−３と接続される。また、計算装置２００ａ−４は、カメラ２１ａ−４と接続される。また、計算装置２００ａ−５は、カメラ２１ａ−５と接続される。また、計算装置２００ａ−６は、カメラ２１ａ−６と接続される。
【０１６３】
計算装置２００ａ−１〜２００ａ−６は、カメラ２１ａ−１〜２１ａ−６が撮影した街頭の画像から人物を検出する。計算装置２００ａ−１〜２００ａ−６は、人物検出処理の結果を制御装置１００ａに送信する。制御装置１００ａは、計算装置２００ａ−１〜２００ａ−６から収集した人物検出処理の結果に基づいて、人物が検出された位置をユーザに通知する。
【０１６４】
図２０は、情報処理システムの処理内容の第３の例を示す図である。情報処理システム４００ｂは、カメラ２１ｂ−１〜２１ｂ−３が撮影した施設内の動画から不審人物を検出するものである。情報処理システム４００ｂは、制御装置１００ｂおよび計算装置２００ｂ−１〜２００ｂ−６を含む。計算装置２００ｂ−１は、カメラ２１ｂ−１と接続される。また、計算装置２００ｂ−２は、カメラ２１ｂ−２と接続される。また、計算装置２００ｂ−３は、カメラ２１ｂ−３と接続される。
【０１６５】
計算装置２００ｂ−１〜２００ｂ−３は、カメラ２１ｂ−１〜２１ｂ−３から施設内を撮影した動画を取得する。計算装置２００ｂ−１〜２００ｂ−３は、カメラ２１ｂ−１〜２１ｂ−３が撮影した画像から人物を検出する。計算装置２００ｂ−１〜２００ｂ−３は、カメラ２１ｂ−１〜２１ｂ−３が撮影した動画と人物の検出結果とを計算装置２００ｂ−４〜計算装置２００ｂ−５に送信する。
【０１６６】
計算装置２００ｂ−４〜２００ｂ−５は、計算装置２００ｂ−１〜２００ｂ−３から取得したカメラ２１ｂ−１〜２１ｂ−３が撮影した動画と人物の検出結果とに基づいて、検出された人物の動画上の位置を追跡する。そして、計算装置２００ｂ−４〜２００ｂ−５は、カメラ２１ｂ−１〜２１ｂ−３が撮影した動画と人物の追跡結果とを計算装置２００ｂ−６に送信する。
【０１６７】
計算装置２００ｂ−６は、計算装置２００ｂ−４〜２００ｂ−５から取得したカメラ２１ｂ−１〜２１ｂ−３が撮影した動画と人物の追跡結果とに基づいて、人物が不審人物か否かの判定（属性推定）をする。そして、計算装置２００ｂ−６は、カメラ２１ｂ−１〜２１ｂ−３が撮影した動画と属性推定結果とを制御装置１００ｂに送信する。
【０１６８】
制御装置１００ｂは、計算装置２００ｂ−６から取得したカメラ２１ｂ−１〜２１ｂ−３が撮影した動画と属性推定結果とに基づいて、ユーザに不審人物の施設内の位置を通知する。
【０１６９】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１７０】
１−１，１−２，・・・  カメラ
１０  情報処理システム
１１−１，１１−２，・・・，１２−１，１２−２，・・・  計算装置
１１ａ−１，１２ａ−１  記憶部
１１ｂ−１，１２ｂ−１  送信先情報
１１ｃ−１，１２ｃ−１  演算部
１３  制御装置
１３ａ  処理部
１４  中継装置
【要約】
【課題】画像処理の効率を向上させることができる。
【解決手段】計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、少なくとも１つの計算装置がカメラ１−１，１−２，・・・に接続される。計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・は、カメラ１−１，１−２，・・・が撮影した画像に基づく画像処理を実行する。制御装置１３は、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・から、計算装置１１−１，１１−２，・・・，１２−１，１２−２，・・・が実行した画像処理の結果を収集する。そして、制御装置１３は、収集した画像処理の結果に基づいた処理を実行する。
【選択図】図１【図１】
0006839374.tif 000002
【図２】
0006839374.tif 000003
【図３】
0006839374.tif 000004
【図４】
0006839374.tif 000005
【図５】
0006839374.tif 000006
【図６】
0006839374.tif 000007
【図７】
0006839374.tif 000008
【図８】
0006839374.tif 000009
【図９】
0006839374.tif 000010
【図１０】
0006839374.tif 000011
【図１１】
0006839374.tif 000012
【図１２】
0006839374.tif 000013
【図１３】
0006839374.tif 000014
【図１４】
0006839374.tif 000015
【図１５】
0006839374.tif 000016
【図１６】
0006839374.tif 000017
【図１７】
0006839374.tif 000018
【図１８】
0006839374.tif 000019
【図１９】
0006839374.tif 000020
【図２０】
0006839374.tif 000021