(57)【要約】【課題】処理負荷を適宜分散させ、推論処理を効率的に行う。【解決手段】実施形態の推論処理システムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムにおいて、前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、を備える。【選択図】図２
2020135061.tif 000002
【特許請求の範囲】
【請求項１】
複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、推論処理システムにおいて、
前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、
前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、
前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、
前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、
を備えた推論処理システム。
【請求項２】
前記複数の推論処理装置の制御を行う管理制御部を備え、
前記推論処理結果記憶部は、前記管理制御部に設けられて、少なくとも最終段の推論処理装置以外の各前記推論処理装置の推論処理の処理結果を記憶する、
請求項１記載の推論処理システム。
【請求項３】
前記複数の推論処理装置は、それぞれ自己の推論結果を記憶する前記推論処理結果記憶部を備えている、
請求項１記載の推論処理システム。
【請求項４】
前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に、何らの推論処理も割り当てられていない予備の推論処理装置を選択する、
請求項１乃至請求項３のいずれか一項記載の推論処理システム。
【請求項５】
前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理を追加で割り当て可能な推論処理装置を選択する、
請求項１乃至請求項３のいずれか一項記載の推論処理システム。
【請求項６】
前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する、
請求項１乃至請求項３のいずれか一項記載の推論処理システム。
【請求項７】
前記推論処理システムは、入力された画像に対して一連の推論処理を行うものであり、
前記推論処理結果記憶部は、当該一連の推論処理に対応する画像を記憶するとともに、前記推論処理装置の推論処理の処理結果を記憶するに際し、前記処理結果に前記画像を特定する情報を特定する情報を付加して記憶する、
請求項１乃至請求項６のいずれか一項記載の推論処理システム。
【請求項８】
複数の推論処理装置によりパイプライン処理型の推論処理を行う推論処理システムにおいて用いられる推論処理装置であって、
入力された推論処理対象の入力データに対して推論処理を行う推論処理部と、
前記推論処理部で処理を行って得られた自己の推論結果を記憶する推論処理結果記憶部と、
を備えた推論処理装置。
【請求項９】
複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムをコンピュータにより制御するためのプログラムであって、
前記コンピュータを、
前記推論処理装置の推論処理の処理結果を記憶する手段、
前記推論処理装置における推論処理に処理遅延が発生しているかを検出する手段、
前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する手段、
前記選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推論処理システム、推論処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の計算機（演算装置）を用いて並列計算を行なう手法が知られており、例えば、イーサネット（登録商標）回線を用いて計算機間でデータのやりとりを行う情報処理システムが提案されている。
【０００３】
近年においては、パーソナルコンピュータ（以下、パソコン）の性能が向上し、切れ目が無いデータ（例えば、撮像画像）を外部から大量に取り込んで、処理（例えば、推論処理）を並列して行うことにも利用されるようになってきている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−００３２７１号公報
【特許文献２】特開２０１８−１２０５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、処理を並列して行う場合でも、実際の処理対象によって処理系統毎の負荷が大きく異なる場合がある。
【０００６】
例えば、カメラの撮像画像中に含まれる人物の年齢及び性別を推論する処理を行う場合に、人通りの多い場所の撮像画像に対して処理を行う場合と、人通りの少ない場所の撮像画像に対して処理を行う場合と、では、人通りの多い場所の撮像画像における処理負荷が大きくなる。
【０００７】
したがって、複数の処理装置において前段の処理装置の処理結果を利用して処理を行う場合や、複数の処理系統を並列して処理を行う場合に、いずれかの処理装置あるいは処理系統では、処理負荷が大きくなって処理遅延が発生しているにも拘わらず、前段の処理装置の処理結果を利用する後段の処理装置や、他の処理系統では、待機状態が続くなどの虞があり、システム全体としては、非効率的とならざるを得なかった。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、処理負荷を適宜分散させ、推論処理を効率的に行うことができる推論処理システム、推論処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の第１態様にかかる推論処理システムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムにおいて、前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、を備える。
【００１０】
上記構成において、前記複数の推論処理装置の制御を行う管理制御部を備え、前記推論処理結果記憶部は、前記管理制御部に設けられて、少なくとも最終段の推論処理装置を除く、各前記推論処理装置の推論処理の処理結果を記憶するようにしてもよい。
【００１１】
また、複数の推論処理装置は、それぞれ自己の推論結果を記憶する前記推論処理結果記憶部を備えているようにしてもよい。
【００１２】
また、選択部は、前記他の推論処理装置として、前記処理遅延の検出時に、何らの推論処理も割り当てられていない予備の推論処理装置を選択するようにしてもよい。
【００１３】
また、選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理を追加で割り当て可能な推論処理装置を選択するようにしてもよい。
【００１４】
また、選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択するようにしてもよい。
【００１５】
また、推論処理システムは、入力された画像に対して一連の推論処理を行うものであり、前記推論処理結果記憶部は、当該一連の推論処理に対応する画像を記憶するとともに、前記推論処理装置の推論処理の処理結果を記憶するに際し、前記処理結果に前記画像を特定する情報を特定する情報を付加して記憶するようにしてもよい。
【００１６】
また、本発明の第２態様にかかる推論処理装置は、複数の推論処理装置によりパイプライン処理型の推論処理を行う推論処理システムにおいて用いられる推論処理装置であって、入力された推論処理対象の入力データに対して推論処理を行う推論処理部と、前記推論処理部で処理を行って得られた自己の推論結果を記憶する推論処理結果記憶部と、を備える。
【００１７】
また、本発明の第３態様にかかるプログラムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムをコンピュータにより制御するためのプログラムであって、前記コンピュータを、前記推論処理装置の推論処理の処理結果を記憶する手段、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する手段、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する手段、前記選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる手段、として機能させる。
【発明の効果】
【００１８】
本発明の上記態様によれば、推論処理における処理負荷を適宜分散させ、推論処理を効率的に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】図１は、実施形態に係る情報処理システムのハードウェア構成の一例を示す図である。
【図２】図２は、情報処理装置及び推論処理装置の機能構成の一例を示す図である。
【図３】図３は、途中結果のデータフォーマットの一例を示す図である。
【図４】図４は、実施形態の処理フローチャートである。
【図５】図５は、第１実施形態における処理遅延が発生していない場合の動作説明図である。
【図６】図６は、第１実施形態における処理遅延が発生している場合の動作説明図である。
【図７】図７は、第２実施形態における装置構成及び処理遅延が発生していない場合の動作説明図である。
【図８】図８は、第１実施形態における処理遅延が発生している場合の動作説明図である。
【図９】図９は、第３実施形態における装置構成及び処理遅延が発生している場合の動作説明図である。
【図１０】図１０は、第４実施形態における装置構成及び処理遅延が発生している場合の動作説明図である。
【発明を実施するための形態】
【００２０】
以下に、本願の開示する推論処理装置及び推論処理システムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により開示技術が限定されるものではない。また、実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略される。
【００２１】
図１は、実施形態に係る情報処理システムのハードウェア構成の一例を示す図である。
情報処理システム１は、図１に示すように、大別すると、情報処理装置１００、中継装置２００、６個の推論処理装置３００−１〜３００−６及び２個のカメラ４００−１、４００−２を備えている。
【００２２】
情報処理装置１００は、マザーボード１０１、メインプロセッサ１０２、ディスプレイ１０３、ＵＳＢ（Universal  Serial  Bus）インタフェース１０４−１、１０１−２、イーサネット（登録商標）（Ethernet）インタフェース１０５、ＤＩＭＭ（Dual  Inline  Memory  Module）１０６、ＳＳＤ（Solid  State  Drive）１０７、ＨＤＤ（Hard  Disk  Drive）１０８、及びＴＰＭ（Trusted  Platform  Module）１０９を備えている。
【００２３】
マザーボード１０１は、情報処理装置１００の主機能を担う部品が装着された基板である。メインプロセッサ１０２は、情報処理装置１００の主機能を担うプロセッサであり。メインプロセッサ１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の電子回路を採用できる。ディスプレイ１０３は、各種の情報を表示する表示部として機能する。
【００２４】
ＵＳＢインタフェース１０４−１、１０４−２は、ＵＳＢデバイスが接続可能であり、ＵＳＢデバイスとメインプロセッサ１０２との通信を媒介可能である。本実施形態の情報処理システム１では、ＵＳＢデバイスとしてのカメラ４００−１が、ＵＳＢインタフェース１０４−１に接続され、カメラ４００−２が、ＵＳＢインタフェース１０４−２に接続されている。
そして、カメラ４００−１、４００−２で撮像された画像データ（以下、カメラ画像）が、それぞれＵＳＢインタフェース１０４−１、１０４−２を介して、情報処理装置１００に入力される。
【００２５】
イーサネットインタフェース１０５は、イーサネットケーブルが接続可能であり、イーサネットケーブルを介した外部機器とメインプロセッサ１０２との通信を媒介可能である。
ＤＩＭＭ１０７は、各種の情報を一時記憶可能なＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性の記憶媒体である。
ＳＳＤ１０７及びＨＤＤ１０８は、各種の情報を電源断後も記憶可能な不揮発性の記憶媒体である。ＳＳＤ１０７及びＨＤＤ１０８は、メインプロセッサ１０２が実行する各種のプログラム、後述するモデルファイル３０４、情報処理装置１００の動作に係る各種の設定情報、各推論処理装置３００−１、３００−２、３００−４、３００−５の推論結果（途中結果）等を記憶する。
ＴＰＭ１０９は、システムのセキュリティ機能を実現するモジュールである。
【００２６】
中継装置２００は、ブリッジボード２０１及びブリッジコントローラ２０２を有する。
ブリッジボード２０１は、ボードコンピュータとして構成されている推論処理装置３００−１〜３００−６を装着するための複数の図示しないスロット及びブリッジコントローラ２０２が搭載されるための基板である。このブリッジボード２０１で用いられるＩ／Ｏインタフェースとしては、例えば、ＰＣＩｅ（Peripheral  Component  Interconnect  express）を用いることが可能である。
ブリッジコントローラ２０２は、情報処理装置１００に対して複数の推論処理装置３００をスロットを介してブリッジ接続しており、情報処理装置１００及び複数の推論処理装置３００の間の通信を媒介（中継）する。
【００２７】
推論処理装置３００−１〜３００−６は、互いに並列して中継装置２００に接続されている。各推論処理装置３００−１〜３００−６は、変換ボード（ｃｏｎｖ．ボード）３０１−１〜３０１−４及びコプロセッサ３０２−１〜３０２−４を備えている。
ここで、変換ボード３０１−１〜３０１−４は、アクセラレータボードとも呼ばれ、情報処理システム１の処理能力を高めるために、追加して利用するハードウェアが搭載された基板である。
【００２８】
コプロセッサ３０２−１〜３０２−４は、ＡＩ（Artificial  Intelligence）推論処理や画像処理等の演算処理に適したプロセッサである。コプロセッサ３０２−１〜３０２−４は、ＧＰＵ（Graphics  Processing  Unit）や専用チップなどのアクセラレータ等を採用できる。また、コプロセッサ３０２−１〜３０２−４は、ＣＰＵ及びＧＰＵを組み合わせて構成することも可能である。
【００２９】
ＡＩ推論処理は、人工知能（ＡＩ）を用いた推論処理であり、多層構造のニューラルネットワーク（階層ニューラルネットワーク）を用いた推論モデルによる推論処理を含む。
推論処理装置３００−１〜３００−６は、本実施形態においては、推論処理装置３００−１〜３００−３で構成される第１の群と、推論処理装置３００−４〜３００−６で構成される第２の群と、に分けられており、第１の群と第２の群とは、同様の構成とされて同様の処理を行うことが可能となっている。すなわち、処理機能の観点からは、推論処理装置３００−１は、推論処理装置３００−４と相互に代替可能であり、推論処理装置３００−２は、推論処理装置３００−５と相互に代替可能であり、推論処理装置３００−３は、推論処理装置３００−６と相互に代替可能である。したがって、図２においては、第１の群を構成している推論処理装置３００−１〜３００−３のみ詳細な構成を図示し、以下、主として推論処理装置３００−１〜３００−３の構成について説明する。
【００３０】
図２は、情報処理装置及び推論処理装置の機能構成の一例を示す図である。
情報処理装置１００は、大別すると、カメラ画像取得部１１０と、途中結果取得部１２１、遅延対応処理部１２２、推論処理制御部１２３、入出力制御部１２４、遅延検出部１２５及び推論処理接続設定情報記憶部１２６を有するシステム制御部１２０と、を備えている。
ここで、情報処理装置１００の各機能構成は、例えばメインプロセッサ１０２内で機能的に構成され得る。
【００３１】
カメラ画像取得部１１０は、カメラ４００−１及びカメラ４００−２から入力されるカメラ画像を取得し、取得したカメラ画像をＤＩＭＭ１０６、ＳＳＤ１０７等の記憶媒体に一時記憶させる。
【００３２】
システム制御部１２０の途中結果取得部１２１は、各段階の推論処理で出力される途中の推論結果を取得し、ＳＳＤ１０７等の記憶装置に一時記憶する。具体的には、途中結果取得部１２１は、推論処理装置３００−１（人物抽出推論処理）から出力される第１推論結果と、推論処理装置３００−２（年齢推論処理）から出力される第２推論結果とをそれぞれ取得し、途中結果として記憶装置に一時記憶する。
【００３３】
途中結果には、各段階の推論処理から導出された推論結果が含まれる。例えば、第１推論結果には、推論処理装置３００−１の人物抽出推論処理で推論（抽出）された各人物を識別する人物識別子、当該人物のカメラ画像内での位置情報、推論（抽出）の信頼度等が含まれる。
【００３４】
第２推論結果には、推論処理装置３００−２の年齢抽出推論処理で推論された各人物の年齢、推論の信頼度等が含まれる。これらの第１推論結果及び第２推論結果は、処理対象となった共通のカメラ画像を識別する画像識別子に対応付けて出力される。また、第２推論結果は、第１推論結果中の該当する人物識別子に対応付けて出力される。なお、第２推論結果は、第１推論結果に第２推論結果を追加した状態で出力されてもよい。
【００３５】
図３は、途中結果のデータフォーマットの一例を示す図である。
ここで、図３は、第２推論結果の一例であり、第１推論結果に第２推論結果を追加して記録する場合の出力例を示している。
【００３６】
図３において、途中結果は、データ区切りを表す先頭と末尾の角括弧“［］”で規定される領域Ａ１内に記録されている。領域Ａ１は、処理対象画像データに対応するデータであることを表すデータ区切り“［］”内における詳細なデータ区切り、本実施形態では、処理対象画像データに含まれる人物毎のデータを表す波括弧“｛｝”で規定される領域Ａ２を一又は複数含み、カメラ画像毎の途中結果が領域Ａ２内に記録される。
【００３７】
領域Ａ２には、カメラ画像を識別するための画像識別子Ａ２１（＃００１）が含まれる。また、領域Ａ２は、角括弧“［］”で規定された領域Ａ３を含む。また、領域Ａ２には、推論処理装置３００での推論処理が完了した処理日時Ａ２２と、途中結果取得部１２１がこの途中結果を取得した受信日時Ａ２３とが記録される。本例の場合、処理日時Ａ２２は、推論処理装置３００−２での年齢抽出推論処理が完了した日時となる。
【００３８】
領域Ａ３は、波括弧“｛｝”で規定された領域Ａ４を一又は複数含む。領域Ａ４は、画像識別子Ａ２１のカメラ画像から抽出（推論）された人物毎に生成され、人物毎の途中結果（推論結果）が記録される。
【００３９】
具体的には、領域Ａ４には、抽出された各人物を識別するための人物識別子Ａ４１（＃０１、＃０２等）が含まれる。また、領域Ａ４内には、第１推論結果として推論された、人物識別子Ａ４１の人物の位置情報Ａ４２と、その信頼度Ａ４３とが含まれる。また、領域Ａ４内には、第２推論結果として推論された、人物識別子Ａ４１の人物の年齢Ａ４４と、その信頼度Ａ４５とが含まれる。
【００４０】
このように、図３の途中結果では、カメラ画像や人物に係る項目を入れ子状に記録しており、第１推論処理の結果に第２推論処理の結果を追加して記録する形態となる。
【００４１】
なお、途中結果が第１推論結果の場合には、領域Ａ４内の項目は、人物識別子Ａ４１、位置情報Ａ４２及び信頼度Ａ４３となり、年齢Ａ４４及び信頼度Ａ４５はヌルとなる。また、処理日時Ａ２２は、推論処理装置３００−１での人物抽出推論処理が完了した日時となる。
【００４２】
また、推論処理装置３００−３の推論処理で出力される推論結果（第３推論結果）についても、上記と同様のフォーマットで出力される構成としてもよい。この場合、第３推論結果は、第２推論結果と同様に、該当する人物（人物識別子）の領域Ａ４内に記録される。
【００４３】
図２に戻り、システム制御部１２０の遅延対応処理部１２５は、推論処理装置３００−１〜３００−６のうち、いずれかにおいて処理遅延が発生した場合に、遅延の影響を最低限にすべく後に詳述する遅延対応処理を行う。
【００４４】
また、推論処理制御部１２３は、推論処理装置３００−１〜３００−６における推論処理の制御を行う。
入出力制御部１２４は、推論処理制御部１２３の制御下で、推論処理装置３００−１〜３００−６のそれぞれについて、後に詳述するように、推論用データの入力元及び推論結果データの出力先を指定し、設定する。
【００４５】
遅延検出部１２５は、推論処理装置３００−１〜３００−６を監視し、処理遅延が発生した推論処理装置を検出し、遅延対応処理部１２２に通知する。この場合において、遅延の検知方法は特に問わず、種々の方法を採用することが可能である。
【００４６】
例えば、遅延検出部１２５は、推論処理装置３００−１〜３００−３のそれぞれから所定の処理許容時間を超えた旨の通知を受けることで、推論処理装置３００−１〜３００−６のうち処理遅延が発生した推論処理装置を検出するようにしてもよい。
【００４７】
また、例えば、遅延検出部１２５は、途中結果取得部１２１が所定の途中結果取得許容時間内に途中結果を取得できなかったこと、あるいは、複数の推論処理装置が共働して得られる推論結果を所定の推論結果取得許容時間内に取得できなかったことを検出することにより推論処理装置３００−１〜３００−６のうち処理遅延が発生した推論処理装置を検出するようにしてもよい。
【００４８】
また、前段の推論処理装置から途中結果（前段の推論処理装置の推論処理結果）が所定時間内に入力されなかったことが通知されたことにより、推論処理装置３００−１〜３００−６のうち処理遅延が発生した推論処理装置を検出するようにしてもよい。
【００４９】
推論処理接続設定情報記憶部１２６は、推論処理装置３００−１〜３００−６において、処理遅延が発生していない場合の通常処理状態における各推論処理装置３００−１〜３００−６の入出力設定に関する情報（推論処理用データの入力元の推論処理装置を特定する情報及び推論処理結果データの出力先の推論処理装置を特定する情報）を記憶する。
【００５０】
また推論処理接続設定情報記憶部１２６は、いずれかの推論処理装置において処理遅延が発生した場合に、他の推論処理装置を用いて遅延の影響を抑制しようとする場合に、推論処理装置３００−１〜３００−６の入出力設定に関する情報（及び必要に応じてさらに予備の推論処理装置等の他の推論処理装置についての入出力設定に関する情報）を予め記憶している。
【００５１】
さらにいずれかの推論処理装置３００−１〜３００−６（及び必要に応じてさらに予備の推論処理装置等の他の推論処理装置）に新たに、あるいは、追加で割り当てるべき一または複数の推論処理についての情報を予め記憶している。
【００５２】
次に推論処理装置３００−１〜３００−６の構成について説明する。
推論処理装置３００−１〜３００−６は、基本的に同様の構成を採っており、階層ニューラルネットワークを用いた推論モデルに対して機械学習を行うことで生成された学習済み推論モデルとして、モデルファイル３０４−１〜３０４−６を図示しない記憶媒体にそれぞれ保持する。
【００５３】
なお、図２においては、理解の容易のため、各推論処理装置３００−１〜３００−６が一つのモデルファイル（一つの推論処理に対応）を備えているものとしているが、一つの推論処理装置において、複数のモデルファイルを記憶し、用いるモデルファイルを切り替えたり、一つのモデルファイルで処理手順を切り替えたりすることで、いずれかの推論処理を選択して行うようにすることも可能である。
【００５４】
さらに推論処理装置の処理能力に余裕が有る場合には、複数の推論処理に対応した一のモデルファイルあるいは複数のモデルファイルに基づいて、複数の推論処理を連続して行ったり、あるいは、並列して行うようにしたり構成することも可能である。
コプロセッサ３０２−１〜３０２−６は、それぞれ対応するモデルファイル３０４−１〜３０４−６を読み込むことで、読み込んだモデルファイル（例えば、コプロセッサ３０２−１は、モデルファイル３０４−１）に基づく推論処理を実行する。
【００５５】
本実施形態においては、別途説明する場合を除き、基本的には、推論処理装置３００−１〜３００−３は、互いに異なる推論処理に対応したモデルファイル３０４−１〜３０４−３を保持し、推論処理装置３００−４〜３００−５は、互いに異なる推論処理に対応したモデルファイルを保持するものとする。
【００５６】
また、別途説明する場合を除き、推論処理装置３００−１が保持するモデルファイル３０４−１は、推論処理装置３００−４が保持するモデルファイルと同一であり、推論処理装置３００−２が保持するモデルファイル３０４−２は、推論処理装置３００−５が保持するモデルファイルと同一であり、推論処理装置３００−３が保持するモデルファイル３０４−３は、推論処理装置３００−６が保持するモデルファイルと同一であるものとする。
【００５７】
以下の説明においては、推論処理の一例として、カメラ画像から人物を検出し、当該人物の年齢及び性別を推論（判別）するシステムを構築する場合、モデルファイル３０４−１〜３０４−３の各々は、以下の推論処理に対応する。
【００５８】
すなわち、モデルファイル３０４−１は、カメラ画像から人物が存在する画像領域（人物画像）を抽出する人物抽出推論処理に対応する。
したがって、本実施形態においては、図１に示したように、推論処理装置３００−１及び推論処理装置３００−４は、人物抽出推論処理を行う。
【００５９】
また、モデルファイル３０４−２は、人物画像の外観的特徴から年齢を推論する年齢推論処理に対応する。
したがって、本実施形態においては、図１に示したように、推論処理装置３００−２及び推論処理装置３００−５は、年齢推論処理を行う。
【００６０】
また、モデルファイル３０４−３は、人物画像の外観的特徴から性別を推論する性別推論処理に対応する。
したがって、本実施形態においては、図１に示したように、推論処理装置３００−３及び推論処理装置３００−６は、性別推論処理を行う。
【００６１】
推論処理装置３００−１〜３００−６のコプロセッサ３０２−１〜３０２−３は、それぞれ推論アプリケーション３０３を実行する際に、自己の推論処理装置３００−１〜３００−３が保持するモデルファイル３０４−１〜３０３−３をロードして処理を行うことで、通常状態においては、コプロセッサ３０２−１〜３０２−３全体としては、カメラ４００−１によって撮像された人物の年齢及び性別を推論する一連の推論処理を実行することとなる。
同様に、推論処理装置３００−４〜３００−６のコプロセッサ３０２−４〜３０２−６は、それぞれ推論アプリケーション３０３を実行する際に、自己の推論処理装置３００−４〜３００−６が保持するモデルファイルをロードして処理を行うことで、通常状態においては、コプロセッサ３０２−４〜３０２−６全体としては、カメラ４００−２によって撮像された人物の年齢及び性別を推論する一連の推論処理を実行することとなる。
【００６２】
この場合において、モデルファイル３０４−１〜３０４−３及び推論処理装置３００−４〜３００−６で用いられるモデルファイルは、推論処理装置３００−１〜３００−６の各々が予め保持する形態であってもよい。また、モデルファイル３０４−１〜３０４−３及び推論処理装置３００−４〜３００−６で用いられるモデルファイルは、情報処理システム１の起動時等に、情報処理装置１００から推論処理装置３００−１〜３００−６の各々に送信（転送）される形態であってもよい。
【００６３】
次に第１実施形態の動作を説明する。
システム制御部１２０は、推論処理装置３００−１〜３００６の動作を制御する。
システム制御部１２０は、例えば情報処理システム１の起動時等において、ＳＳＤ１０７及び／又はＨＤＤ１０８から推論処理装置３００−１〜３００−３に対応するモデルファイル３０４−１〜３０３−３、推論処理装置３００−３〜３００−６に対応するモデルファイル、推論処理装置３００−１〜３００−３に対応するミドルウェア３０５−１〜３０５−３及び推論処理装置３００−４〜３００−６に対応するミドルウェアを読み出し、ブリッジコントローラ２０２経由で対応する推論処理装置３００−１〜３００−６にロードさせる。
【００６４】
具体的には、例えば、推論処理装置３００−１の場合、システム制御部１２０は、モデルファイル３０４−１及びミドルウェア３０５−１を推論処理装置３００−１にロードさせることとなる。
これらの結果、推論処理装置３００−１〜３００−６の各々では、モデルファイルを用いることで、所定の推論処理を実行することが可能となる。
【００６５】
また、システム制御部１２０は、推論処理装置３００を用いて後述する推論処理を実行させるため、カメラ画像取得部１１０によって一時記憶されたカメラ画像を、当該カメラ画像を識別するカメラ識別子とともに推論処理装置３００−１に入力する。
【００６６】
一方、推論処理装置３００−１〜３００−３は、図２に示すように、推論処理アプリケーション３０３、モデルファイル３０４−１〜３０４−３、ミドルウェア３０５、ドライバ３０５及びホストＯＳ（Operating  System）３０７を有している。
また、推論処理装置３００−３〜３００−６も同様である。
【００６７】
ここで、推論処理装置３００−１〜３００−６は、同様の構成であるので、主として推論処理装置３００−１を例として説明を行う。
【００６８】
上記構成において、推論処理装置３００−１の推論アプリケーション３０３は、仮想環境技術等を用いることで、システム制御部１２０からロードが指示されたミドルウェア３０５及びモデルファイル３０４−１をロードする。
また、推論アプリケーション３０３は、推論処理装置３００−１の起動時に、ミドルウェア３０５及びモデルファイル３０４−１の初期化を行う。
【００６９】
また、モデルファイル３０４−１〜３０３〜３のロードにより、推論処理装置３００−１〜３００−３の各々で実行される推論処理は、シーケンシャルに実行され、前段の推論処理の処理結果が、次段の推論処理で利用されるよう構成されている。
以下、本実施形態に係る推論処理として、カメラ４００で撮像されたカメラ画像から人物を検出し、当該人物の年齢及び性別を判別する場合の推論処理について説明する。
【００７０】
すなわち、推論処理装置３００−１のコプロセッサ３０２−１は、推論アプリケーション３０３を実行することにより、ロードされたミドルウェア３０５及びモデルファイル３０４−１を用いることで、所定の推論処理、本実施形態では、人物抽出推論処理が実行可能となる。
【００７１】
同様に、推論処理装置３００−２では、年齢推論処理が実行可能となり、推論処理装置３００−３では、性別推論処理が実行可能となり、推論処理装置３００−４では、推論処理装置３００−１と同様に人物抽出推論処理が実行可能となり、推論処理装置３００−５では、推論処理装置３００−２と同様に年齢推論処理が実行可能となり、推論処理装置３００−６では、推論処理装置３００−３と同様に性別推論処理が実行可能となる。
【００７２】
［１］第１実施形態
まず、各推論処理装置３００−１〜３００−６において処理遅延が発生していない場合の動作を説明する。
図４は、実施形態の処理フローチャートである。
図５は、第１実施形態における処理遅延が発生していない場合の動作説明図である。
まず、システム制御部１２０の遅延検出部１２５は、遅延検出処理を行う（ステップＳ１１）。
【００７３】
これにより遅延対応処理部１２２は、推論処理装置３００−１〜３００−６のうち、いずれかの推論処理装置において、遅延が検出されたか否かを判定する（ステップＳ１２）。
【００７４】
この場合においては、推論処理装置３００−１〜３００−６において処理遅延が発生していないので、ステップＳ１２の判定において、遅延が発生していないと判定される（ステップＳ１２；Ｎｏ）。
この結果、入出力設定は基本設定のままに維持される（ステップＳ１３）。
【００７５】
すなわち、入出力設定が基本設定のままの場合には、推論処理装置３００−１は、カメラ画像Ｇ１に基づいて、推論処理を行い、推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）は、推論処理装置３００−２に出力される。
【００７６】
さらに、推論処理装置３００−２は、カメラ画像Ｇ１及び推論処理装置３００−１の推論結果に基づいて、推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）は、推論処理装置３００−３に出力される。
【００７７】
さらにまた、推論処理装置３００−３は、カメラ画像Ｇ１及び推論処理装置３００−２の推論結果に基づいて、推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【００７８】
そして、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【００７９】
同様に推論処理装置３００−１は、推論処理を行い、推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）は、推論処理装置３００−２に出力される。さらに、推論処理装置３００−２は推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）は、推論処理装置３００−３に出力される。さらにまた、推論処理装置３００−３は推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【００８０】
そして、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【００８１】
ここで、カメラ画像から人物を検出し、当該人物の年齢及び性別を判別する場合、推論処理装置３００−１〜３００−３の各々で実行される推論処理は以下の通りとなっている。
【００８２】
まず、推論処理装置３００−１では、モデルファイル３０４−１を用いることで、カメラ画像から人物を抽出するための推論処理（人物抽出推論処理）が以下の通りになされる。
人物抽出推論処理では、カメラ画像及び当該カメラ画像を識別するカメラ画像識別子を入力とし、カメラ画像に含まれた人物を表す画像領域（人物領域）を抽出する。そして、人物抽出推論処理では、カメラ画像上における人物領域の座標情報と、各人物（人物領域）を識別する人物識別子とを対応付けた第１途中結果（第１推論結果）ＲＩ１１を、カメラ画像Ｇ１及びカメラ画像識別子とともにシステム制御部１２０の途中結果取得部１２１及び推論処理装置３００−２に出力する。
これにより、途中結果取得部１２１は、第１途中結果ＲＩ１１をＳＳＤ１０７に一時的に記憶させる。
【００８３】
また、推論処理装置３００−２では、モデルファイル３０４−２を用いることで、人物の年齢を推論するための処理（年齢推論処理）が以下の通りになされる。
年齢推論処理では、カメラ画像Ｇ１、カメラ画像識別子及び第１途中結果ＲＩ１１を入力とし、第１途中結果ＲＩ１１で指示された人物識別子毎の座標情報に基づき、カメラ画像上での人物領域の特徴等から当該人物領域に表された人物の年齢を推論する。そして、年齢推論処理では、推論した年齢と人物識別子とを対応付けた第２途中結果（第２推論結果）ＲＩ１２を、カメラ画像、カメラ画像識別子及び第１途中結果ＲＩ１１とともに出力する。
【００８４】
また、推論処理装置３００−３では、モデルファイル３０４−３を用いることで、人物の性別を推論するための処理（性別推論処理）を実行する。具体的には、性別推論処理では、カメラ画像、カメラ画像識別子及び第１途中結果ＲＩ１１を入力とし、第１途中結果ＲＩ１１で指示された人物識別子毎の座標情報に基づき、カメラ画像上での人物領域の特徴等から当該人物領域に表された人物の年齢を推論する。そして、性別推論処理では、推論した年齢と人物識別子とを対応付けた推論結果ＲＩ１３として、カメラ画像Ｇ１、カメラ画像識別子及び第２途中結果（第２推論結果）ＲＩ１２を含めて出力する。
【００８５】
そして、システム制御部１２０は、性別推論処理部３３０から出力されるカメラ画像識別子、第１途中結果ＲＩ１１及び第２途中結果ＲＩ１２を含む推論結果ＲＩ１３を取得し、当該カメラ画像識別子に対応するカメラ画像に対応付けて保持する。例えば、システム制御部１２０は、カメラ画像及び推論結果の組に基づき、カメラ画像から推定された各人物の年齢及び性別を表示したり、年齢及び性別毎に人数を計数したりする。
【００８６】
このように、情報処理システム１では、前段の推論処理装置（例えば、推論処理装置３００−１）で行われた推論処理の処理結果を用いて後段の推論処理装置（例えば、推論処理装置３００−２）が推論処理を行う、パイプライン処理型の構成となっている。これにより、複数段にわたる推論処理を並行して進めることができるため、処理の高速化を図ることができるようになっている。
【００８７】
ところで、上述したパイプライン処理型の構成では、複数段にわたる推論処理のうち、ある段階で処理遅延が発生した場合、次段以降の推論処理を実行することができないため処理が滞ることになる。例えば、上述した人物抽出推論処理を行う推論処理装置３００−１、年齢推論処理を行う推論処理装置３００−２及び性別推論処理を行う推論処理装置３００−３のうち、年齢推論処理を行う推論処理装置３００−２で処理遅延が発生した場合には、性別推論処理を行う推論処理装置３００−３は、性別推論処理を実行することができない。
【００８８】
そこで、本実施形態では、推論処理装置３００−１〜３００−３の何れかで処理遅延が発生し、他の推論処理装置３００−４〜３００−６において処理に余裕がある場合には、それらのいずれかの推論処理装置に、処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理結果をバイパスし、当該処理遅延が発生している推論処理装置の推論処理を肩代わりさせ、処理遅延が発生している推論処理装置の後段の推論処理装置に推論結果を出力させることで、情報処理システム１のリソースの有効利用を図り、実効的に処理遅延の影響を低減することとしている。
【００８９】
図６は、第１実施形態における処理遅延が発生している場合の動作説明図である。
以下の説明においては、再び、図３を参照するととともに、推論処理装置３００−２で処理遅延が発生し、推論処理装置３００−５に比較的処理能力の余裕がある場合を例として説明する。
まず、システム制御部１２０の遅延検出部１２５は、遅延検出処理を行う（ステップＳ１１）。
【００９０】
これにより遅延対応処理部１２２は、推論処理装置３００−１〜３００−６のうち、いずれかの推論処理装置において、遅延が検出されたか否かを判定する（ステップＳ１２）。
【００９１】
この場合においては、推論処理装置３００−２において処理遅延が発生しているので、ステップＳ１２の判定において、遅延が発生していると判定される（ステップＳ１２；Ｙｅｓ）。
【００９２】
この結果、システム制御部１２０の遅延対応処理部１２２は、処理遅延の影響をより低減できる遅延最適化処理装置、すなわち、処理遅延の影響をより低減できる最も処理能力に余裕がある推論処理装置を選定する（ステップＳ１４）。
具体的には、遅延対応処理部１２２は、当該時点において、最も処理負荷が少ない推論処理装置、本例では、推論処理装置３００−５を選定することとなる。
【００９３】
続いて、遅延対応処理部１２２は、遅延最適化処理装置に対する入出力設定を行う（ステップＳ１５）。
この場合において、推論処理装置３００−１は、図５に示すように、第１途中結果として、過去から、現在に向かって第１途中結果ＲＩ１１ｙ→第１途中結果ＲＩ１１ｚ→第１途中結果ＲＩ１１をシステム制御部１２０のＳＳＤ１０７に格納済みであるが、推論処理装置３００−２は、処理遅延が発生して、未だ第１途中結果ＲＩ１１ｚの処理を行っており、第１途中結果ＲＩ１１に対して所定の処理開始予定タイミングを過ぎても処理が開始できない状態となっているものとする。
【００９４】
上記状態の場合、遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−５の入力として、ＳＳＤ１０７から読み出したカメラ画像Ｇ１１及び第１途中結果ＲＩ１１とする。さらに遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−５の出力先として、推論処理装置３００−３を設定する。
したがって、この場合には、推論処理装置３００−１は、実効的には、カメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）を推論処理装置３００−５に出力したのと等価とされる。
【００９５】
この結果、推論処理装置３００−５は、遅延最適化処理として、カメラ画像Ｇ１及び推論処理装置３００−１の推論結果に基づいて、推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）を、推論処理装置３００−３に出力する（ステップＳ１６）。
【００９６】
さらにまた、推論処理装置３００−３は、推論処理装置３００−５から第２途中結果ＲＩ１２が入力された場合には、カメラ画像Ｇ１及び推論処理装置３００−５の推論結果である第２途中結果ＲＩ１２に基づいて、推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【００９７】
そして、推論処理装置３００−５の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【００９８】
一方、推論処理装置３００−２は、前回の推論処理装置３００−１のカメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１ｚ）に基づく推論処理が終了した場合には、推論結果（年齢推論結果：第２途中結果ＲＩ１２ｚ）を推論処理装置３００−３に出力し、推論処理装置３００−３は、未だ推論処理装置３００−５の推論結果（年齢推論結果）ＲＩ１１が入力されていない場合、あるいは、既に推論処理装置３００−５の推論結果（年齢推論結果）ＲＩ１１に対する推論処理が終わっている場合には、推論処理装置３００−２の推論結果（年齢推論結果）ＲＩ１１ｚに対する推論処理を行い、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【００９９】
このように、情報処理システム１では、処理遅延が発生した推論処理装置（上述の例では、推論処理装置３００−２）で次回以降に行うべき推論処理を比較的処理能力に余裕のある他の推論処理装置（上述の例の場合、推論処理装置３００−５）に対し、当該処理遅延が発生した推論処理装置の前段の推論処理装置（上述の例の場合、推論処理装置３００−１）の推論処理結果をバイパスして、並列に処理させるので、情報処理システム１のリソースの有効利用を図ることができ、パイプライン処理型の構成を採っていても、実効的に処理遅延の影響を低減することができる。
【０１００】
［２］第２実施形態
図７は、第２実施形態における装置構成及び処理遅延が発生していない場合の動作説明図である。
本第２実施形態の構成が第１実施形態の構成と異なる点は、第１実施形態が推論処理結果記憶部として、管理制御部として機能するシステム制御部１２０に設けられている推論処理結果記憶部として機能するＳＳＤ１０７に全ての途中結果を少なくとも最終段の推論処理装置（図５の例の場合、推論処理装置３００−３及び推論処理装置３００−６）以外の推論処理装置（図５の例の場合、推論処理装置３００−１、３００−２、３００−４、３００−５）の推論処理の処理結果である途中結果を記憶していたが、本第２実施形態は、推論処理装置３００−１、３００−２、３００−４、３００−５にメモリＭ１１、Ｍ１２、Ｍ２１及びＭ２２を設け、各推論処理装置３００−１、３００−２、３００−４、３００−５が当該推論処理装置の推論処理の処理結果である途中結果を記憶させるようにした点である。
処理遅延が発生していない状態においては、推論処理装置３００−１、３００−２、３００−４、３００−５がメモリＭ１１、Ｍ１２、Ｍ２１、Ｍ２２に推論処理の処理結果である途中結果ＲＩ１１、ＲＩ１２、ＲＩ２１、ＲＩ２２を記憶させる点以外は、図５に示した第１実施形態の動作と同様であるので、その詳細な説明を援用するものとする。
【０１０１】
図８は、第２実施形態における処理遅延が発生している場合の動作説明図である。
以下の説明においては、再び、図３を参照するととともに、推論処理装置３００−２で処理遅延が発生し、推論処理装置３００−５に比較的処理能力の余裕がある場合を例として説明する。
まず、システム制御部１２０の遅延検出部１２５は、遅延検出処理を行う（ステップＳ１１）。
【０１０２】
これにより遅延対応処理部１２２は、推論処理装置３００−１〜３００−６のうち、いずれかの推論処理装置において、遅延が検出されたか否かを判定する（ステップＳ１２）。
【０１０３】
この場合においては、推論処理装置３００−２において処理遅延が発生しているので、ステップＳ１２の判定において、遅延が発生していると判定される（ステップＳ１２；Ｙｅｓ）。
【０１０４】
この結果、システム制御部１２０の遅延対応処理部１２２は、処理遅延の影響をより低減できる遅延最適化処理装置、すなわち、処理遅延の影響をより低減できる最も処理能力に余裕がある推論処理装置を選定する（ステップＳ１４）。
具体的には、遅延対応処理部１２２は、当該時点において、最も処理負荷が少ない推論処理装置、本例では、推論処理装置３００−５を選定することとなる。
【０１０５】
続いて、遅延対応処理部１２２は、遅延最適化処理装置に対する入出力設定を行う（ステップＳ１５）。
この場合において、推論処理装置３００−１は、図５に示すように、第１途中結果として、過去から、現在に向かって第１途中結果ＲＩ１１ｙ→第１途中結果ＲＩ１１ｚ→第１途中結果ＲＩ１１をメモリＭ１１に格納済みであるが、推論処理装置３００−２は、処理遅延が発生して、未だ第１途中結果ＲＩ１１ｚの処理を行っており、第１途中結果ＲＩ１１に対して所定の処理開始予定タイミングを過ぎても処理が開始できない状態となっているものとする。
【０１０６】
上記状態の場合、遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−５の入力として、システム制御部１２０のＳＳＤ１０７から読み出したカメラ画像Ｇ１１及びメモリＭ１１から読み出した第１途中結果ＲＩ１１とする。さらに遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−５の出力先として、推論処理装置３００−３を設定する。
したがって、この場合には、推論処理装置３００−１は、実効的には、カメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）を推論処理装置３００−５に出力したのと等価とされる。
【０１０７】
この結果、推論処理装置３００−５は、遅延最適化処理として、カメラ画像Ｇ１及び推論処理装置３００−１の推論結果ＲＩ１１に基づいて、推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）を、推論処理装置３００−３に出力する（ステップＳ１６）。
【０１０８】
さらにまた、推論処理装置３００−３は、推論処理装置３００−５から第２途中結果ＲＩ１２が入力された場合には、カメラ画像Ｇ１及び推論処理装置３００−５の推論結果である第２途中結果ＲＩ１２に基づいて、推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【０１０９】
そして、推論処理装置３００−５の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１１０】
一方、推論処理装置３００−２は、前回の推論処理装置３００−１のカメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１ｚ）に基づく推論処理が終了した場合には、推論結果（年齢推論結果：第２途中結果ＲＩ１２ｚ）を推論処理装置３００−３に出力し、推論処理装置３００−３は、未だ推論処理装置３００−５の推論結果（年齢推論結果）ＲＩ１１が入力されていない場合、あるいは、既に推論処理装置３００−５の推論結果（年齢推論結果）ＲＩ１１に対する推論処理が終わっている場合には、推論処理装置３００−２の推論結果（年齢推論結果）ＲＩ１１ｚに対する推論処理を行い、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１１１】
このように、本第２実施形態の情報処理システム１においても、処理遅延が発生した推論処理装置（上述の例では、推論処理装置３００−２）で次回以降に行うべき推論処理を比較的処理能力に余裕のある他の推論処理装置（上述の例の場合、推論処理装置３００−５）に対し、当該処理遅延が発生した推論処理装置の前段の推論処理装置（上述の例の場合、推論処理装置３００−１）の推論処理結果をバイパスして、並列に処理させるので、情報処理システム１のリソースの有効利用を図ることができ、パイプライン処理型の構成を採っていても、実効的に処理遅延の影響を低減することができる。
【０１１２】
［３］第３実施形態
図９は、第３実施形態における装置構成及び処理遅延が発生している場合の動作説明図である。
本第３実施形態の構成が第１実施形態及び第２実施形態の構成と異なる点は、上記各実施形態においては、各推論処理装置３００−１〜３００−６にそれぞれ一つの推論処理を割り当てていたが、本第３実施形態は、処理遅延が発生している推論処理装置の処理を他の推論処理装置に割り当てるに際し、処理遅延の検出時に処理遅延が発生している推論処理装置と同一の推論処理以外の推論処理が割り当てられている推論処理装置であって、同一の推論処理を追加で割り当て可能な推論処理装置を選択して、割り当てる点である。
処理遅延が発生していない状態においては、本第３実施形態の動作は、図５に示した第１実施形態の動作と同様であるので、その詳細な説明を援用するものとする。
【０１１３】
図９は、第３実施形態における処理遅延が発生している場合の動作説明図である。
以下の説明においては、再び、図３を参照するととともに、推論処理装置３００−２で処理遅延が発生し、推論処理装置３００−３に推論処理装置３００−２と同様の処理を追加で割り当てても比較的処理能力の余裕がある場合を例として説明する。
まず、システム制御部１２０の遅延検出部１２５は、遅延検出処理を行う（ステップＳ１１）。
【０１１４】
これにより遅延対応処理部１２２は、推論処理装置３００−１〜３００−６のうち、いずれかの推論処理装置において、遅延が検出されたか否かを判定する（ステップＳ１２）。
【０１１５】
この場合においては、推論処理装置３００−２において処理遅延が発生しているので、ステップＳ１２の判定において、遅延が発生していると判定される（ステップＳ１２；Ｙｅｓ）。
【０１１６】
この結果、システム制御部１２０の遅延対応処理部１２２は、処理遅延の影響をより低減できる遅延最適化処理装置、すなわち、処理遅延の影響をより低減できる最も処理能力に余裕がある推論処理装置を選定する（ステップＳ１４）。
具体的には、遅延対応処理部１２２は、当該時点において、推論処理装置３００−２と同様の処理を追加で割り当てても比較的処理能力の余裕がある推論処理装置、本例では、推論処理装置３００−３を選定することとなる。
【０１１７】
続いて、システム制御部１２０の推論処理制御部１２３は、推論処理装置３００−３に対し、推論処理装置３００―２に割り当てられているモデルファイル３０４−２と同一（あるいは、同一の処理結果を得られる同様）のモデルファイル３０４−２を追加で割り当て、動作可能な状態とさせ、遅延対応処理部１２２は、遅延最適化処理装置に対する入出力設定を行う（ステップＳ１５）。
この場合においても、推論処理装置３００−１は、図５に示すように、第１途中結果として、過去から、現在に向かって第１途中結果ＲＩ１１ｙ→第１途中結果ＲＩ１１ｚ→第１途中結果ＲＩ１１をメモリＭ１１に格納済みであるが、推論処理装置３００−２は、処理遅延が発生して、未だ第１途中結果ＲＩ１１ｚの処理を行っており、第１途中結果ＲＩ１１に対して所定の処理開始予定タイミングを過ぎても処理が開始できない状態となっているものとする。
【０１１８】
上記状態の場合、遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−３の入力として、システム制御部１２０のＳＳＤ１０７から読み出したカメラ画像Ｇ１１及び第１途中結果ＲＩ１１とする。さらに遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−３において、年齢推論結果を出力するモデルファイル３０４−２を用いた推論アプリケーション３０３の出力先として、推論処理装置３００−３の性別推論結果を出力するモデルファイル３０４−３の入力側を設定する。
したがって、この場合には、推論処理装置３００−１は、実効的には、カメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）を推論処理装置３００−３に出力し、推論処理装置３００−３は、推論処理装置３００−２の推論処理及び自己の推論処理を連続して行ったのと等価とされる。
【０１１９】
この結果、推論処理装置３００−３は、遅延最適化処理として、カメラ画像Ｇ１及び推論処理装置３００−１の推論結果ＲＩ１１に基づいて、年齢を推論するための推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）を用いて、さらに性別を推論するための推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【０１２０】
そして、推論処理装置３００−３の推論結果（年齢推論結果及び性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１２１】
一方、推論処理装置３００−２は、前回の推論処理装置３００−１のカメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１ｚ）に基づく推論処理が終了した場合には、推論結果（年齢推論結果：第２途中結果ＲＩ１２ｚ）を推論処理装置３００−３に出力し、推論処理装置３００−３は、推論処理装置３００−１の推論結果ＲＩ１１に対応する推論処理（年齢推論結果及び性別推論）が終わっている場合には、推論処理装置３００−２の推論結果（年齢推論結果）ＲＩ１１ｚに対する推論処理を行い、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１２２】
このように、本第３実施形態の情報処理システム１においても、処理遅延が発生した推論処理装置（上述の例では、推論処理装置３００−２）で次回以降に行うべき推論処理を比較的処理能力に余裕のある他の推論処理装置（上述の例の場合、推論処理装置３００−３）に対し、当該処理遅延が発生した推論処理装置の前段の推論処理装置（上述の例の場合、推論処理装置３００−１）の推論処理結果をバイパスして、推論処理装置３００−３に二つの推論処理を並列に処理させるので、情報処理システム１のリソースの有効利用を図ることができ、パイプライン処理型の構成を採っていても、実効的に処理遅延の影響を低減することができる。
【０１２３】
［４］第４実施形態
図１０は、第４実施形態における装置構成及び処理遅延が発生している場合の動作説明図である。
本第４実施形態の構成が第１実施形態の構成と異なる点は、処理遅延が発生している推論処理装置の処理を他の推論処理装置に割り当てるに際し、他の推論処理装置として、処理遅延の検出時に、何らの推論処理も割り当てられていない予備の推論処理装置を選択して、割り当てる点である。
処理遅延が発生していない状態においては、本第４実施形態の動作は、図５に示した第１実施形態の動作と同様であるので、その詳細な説明を援用するものとする。
【０１２４】
以下の説明においては、再び、図３を参照するととともに、推論処理装置３００−２で処理遅延が発生し、何らの推論処理も割り当てられていない予備の推論処理装置３００−７を備えている場合を例として説明する。
まず、システム制御部１２０の遅延検出部１２５は、遅延検出処理を行う（ステップＳ１１）。
【０１２５】
これにより遅延対応処理部１２２は、推論処理装置３００−１〜３００−６のうち、いずれかの推論処理装置において、遅延が検出されたか否かを判定する（ステップＳ１２）。
【０１２６】
この場合においては、推論処理装置３００−２において処理遅延が発生しているので、ステップＳ１２の判定において、遅延が発生していると判定される（ステップＳ１２；Ｙｅｓ）。
【０１２７】
この結果、システム制御部１２０の遅延対応処理部１２２は、処理遅延の検出時に、何らの推論処理も割り当てられていない予備の推論処理装置を選定する（ステップＳ１４）。
具体的には、遅延対応処理部１２２は、当該時点において、何らの推論処理も割り当てられていない予備の推論処理装置、本例では、推論処理装置３００−７を選定することとなる。
【０１２８】
続いて、システム制御部１２０の推論処理制御部１２３は、推論処理装置３００−７に対し、推論処理装置３００―２に割り当てられているモデルファイル３０４−２と同一（あるいは、同一の処理結果を得られる同様）のモデルファイル３０４−２を割り当て、動作可能な状態とさせ、遅延対応処理部１２２は、遅延最適化処理装置に対する入出力設定を行う（ステップＳ１５）。
この場合においても、推論処理装置３００−１は、図５に示すように、第１途中結果として、過去から、現在に向かって第１途中結果ＲＩ１１ｙ→第１途中結果ＲＩ１１ｚ→第１途中結果ＲＩ１１をメモリＭ１１に格納済みであるが、推論処理装置３００−２は、処理遅延が発生して、未だ第１途中結果ＲＩ１１ｚの処理を行っており、第１途中結果ＲＩ１１に対して所定の処理開始予定タイミングを過ぎても処理が開始できない状態となっているものとする。
【０１２９】
上記状態の場合、遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−７の入力として、システム制御部１２０のＳＳＤ１０７から読み出したカメラ画像Ｇ１１及び第１途中結果ＲＩ１１とする。さらに遅延対応処理部１２２は、遅延最適化処理装置である推論処理装置３００−７において、推論処理装置３００−３を出力に設定する。
したがって、この場合には、推論処理装置３００−１は、実効的には、カメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１）を推論処理装置３００−７に出力し、推論処理装置３００−３は、推論処理装置３００−７の推論結果が入力されるのと等価とされる。
【０１３０】
この結果、推論処理装置３００−７は、遅延最適化処理として、カメラ画像Ｇ１及び推論処理装置３００−１の推論結果ＲＩ１１に基づいて、推論処理を行い、推論結果（年齢推論結果：第２途中結果ＲＩ１２）を、推論処理装置３００−３に出力する（ステップＳ１６）。
【０１３１】
さらにまた、推論処理装置３００−３は、推論処理装置３００−７から第２途中結果ＲＩ１２が入力された場合には、カメラ画像Ｇ１及び推論処理装置３００−７の推論結果である第２途中結果ＲＩ１２に基づいて、推論処理を行い、推論結果（性別推論結果）を出力する（ステップＳ１７）。
【０１３２】
そして、推論処理装置３００−７の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１３３】
一方、推論処理装置３００−２は、前回の推論処理装置３００−１のカメラ画像Ｇ１に基づく推論処理の推論結果（人物抽出推論結果：第１途中結果ＲＩ１１ｚ）に基づく推論処理が終了した場合には、推論結果（年齢推論結果：第２途中結果ＲＩ１２ｚ）を推論処理装置３００−３に出力し、推論処理装置３００−３は、未だ推論処理装置３００−７の推論結果（年齢推論結果）ＲＩ１１が入力されていない場合、あるいは、既に推論処理装置３００−７の推論結果（年齢推論結果）ＲＩ１１に対する推論処理が終わっている場合には、推論処理装置３００−２の推論結果（年齢推論結果）ＲＩ１１ｚに対する推論処理を行い、推論処理装置３００−２の推論結果（年齢推論結果）及び推論処理装置３００−３の推論結果（性別推論結果）は、（トータルの）推論結果としてシステム制御部１２０に出力され、ディスプレイ１０３に結果が表示され、あるいは、結果がＳＳＤ１０７あるいはＨＤＤ１０８に蓄積される（ステップＳ１８）。
【０１３４】
このように、本第４実施形態の情報処理システム１においても、処理遅延が発生した推論処理装置（上述の例では、推論処理装置３００−２）で次回以降に行うべき推論処理を比較的処理能力に余裕のある他の推論処理装置（上述の例の場合、推論処理装置３００−５）に対し、当該処理遅延が発生した推論処理装置の前段の推論処理装置（上述の例の場合、推論処理装置３００−１）の推論処理結果をバイパスして、並列に処理させるので、情報処理システム１のリソースの有効利用を図ることができ、パイプライン処理型の構成を採っていても、実効的に処理遅延の影響を低減することができる。
【０１３５】
［５］変形例
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１３６】
上述の実施形態では、各部のＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、Ｉ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースのいずれであってもよい。
【０１３７】
Ｉ／Ｏインタフェースは、シリアル転送可能な場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルート・コンプレックス、Ｉ／Ｏデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【０１３８】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１３９】
［６］他の態様
以上の実施形態に関し、さらに他の態様について記載する。
［６．１］第１の他の態様
実施形態の第１の他の態様の推論処理システムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムにおいて、前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、を備える。
上記構成によれば、処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理結果を他の推論処理装置にバイパスし、他の推論処理をうちに当該処理遅延が発生している推論処理装置の推論処理を肩代わりさせ、処理遅延が発生している推論処理装置の後段の推論処理装置に推論結果を出力させることで、情報処理システムのリソースの有効利用を図り、実効的に処理遅延の影響を低減することができる。
［６．２］第２の他の態様
実施形態の第２の他の態様の推論処理システムは、前記複数の推論処理装置の制御を行う管理制御部を備え、前記推論処理結果記憶部は、前記管理制御部に設けられて、少なくとも最終段の推論処理装置以外の各前記推論処理装置の推論処理の処理結果を記憶する。
上記構成によれば、管理制御部が、各推論処理装置の推論結果を管理することで、処理遅延発生時の対応を推論処理システム全体を考慮して効率的に行える。
［６．３］第３の他の態様
実施形態の第３の他の態様の推論処理システムは、前記複数の推論処理装置は、それぞれ自己の推論結果を記憶する前記推論処理結果記憶部を備えている。
上記構成によれば、推論結果を各推論処理装置に記憶しておくことで、処理遅延が発生している場合でも、処理負荷の分散を図りつつ、容易に情報処理システムのリソースの有効利用を図り、実効的に処理遅延の影響を低減することができる。
［６．４］第４の他の態様
実施形態の第４の他の態様の推論処理システムの前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に、何らの推論処理も割り当てられていない予備の推論処理装置を選択する。
上記構成によれば、処理遅延が発生した場合に、他の処理に影響を与えることなく、容易に処理遅延に対応して、処理遅延の影響を低減することができる。
［６．５］第５の他の態様
実施形態の第５の他の態様の推論処理システムの前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理を追加で割り当て可能な推論処理装置を選択する。
上記構成によれば、処理遅延が発生した場合に、当該推論処理システムで比較的処理能力に余裕がある他の推論処理装置に追加で推論処理を割り当てるので、推論処理システムのリソースをより有効に活用しつつ、処理遅延の影響を低減することができる。
［６．６］第６の他の態様
前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する。
上記構成によれば、処理遅延が発生した場合に、選択した他の推論処理装置を入力先とし、当該他の推論処理装置の出力先を処理遅延が発生している推論処理装置の後段の推論処理装置とするだけでよいので、より容易に処理遅延の影響を低減できる。
［６．７］第７の他の態様
実施形態の第７の他の態様の推論処理システムは、入力された画像に対して一連の推論処理を行うものであり、前記推論処理結果記憶部は、当該一連の推論処理に対応する画像を記憶するとともに、前記推論処理装置の推論処理の処理結果を記憶するに際し、前記処理結果に前記画像を特定する情報を特定する情報を付加して記憶する。
したがって、処理遅延が発生した推論処理装置で行うべきであった推論処理を他の推論処理装置に代替させる場合であっても、データの入出力先を変更するだけで容易に対応することができる。
［６．８］第８の他の態様
実施形態の第８の他の態様の推論処理装置は、複数の推論処理装置によりパイプライン処理型の推論処理を行う推論処理システムにおいて用いられる推論処理装置であって、入力された推論処理対象の入力データに対して推論処理を行う推論処理部と、前記推論処理部で処理を行って得られた自己の推論結果を記憶する推論処理結果記憶部と、を備える。
上記構成によれば、推論結果を各推論処理装置に記憶しておくことで、処理遅延が発生している場合でも、処理負荷の分散を図りつつ、容易に情報処理システムのリソースの有効利用を図り、実効的に処理遅延の影響を低減することができる。
［６．９］第９の他の態様
実施形態の第９の他の態様のプログラムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムをコンピュータにより制御するためのプログラムであって、前記コンピュータを、前記推論処理装置の推論処理の処理結果を記憶する手段、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する手段、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する手段、前記選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる手段、として機能させる。
上記構成によれば、処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理結果を他の推論処理装置にバイパスし、他の推論処理をうちに当該処理遅延が発生している推論処理装置の推論処理を肩代わりさせ、処理遅延が発生している推論処理装置の後段の推論処理装置に推論結果を出力させることで、情報処理システムのリソースの有効利用を図り、実効的に処理遅延の影響を低減することができる。
【符号の説明】
【０１４０】
１  情報処理システム（推論処理システム）
１００  情報処理装置
１２０  システム制御部（管理制御部）
２００  中継装置
２０２  ブリッジコントローラ
３００−１〜３００−７  推論処理装置
４００−１、４００−２  カメラ
Ｍ１１、Ｍ１２、Ｍ２１、Ｍ２２  メモリ（推論処理結果記憶部）
ＲＩ１１、ＲＩ１２  第１途中結果
ＲＩ２１、ＲＩ２２  第２途中結果
【図１】
2020135061.tif 000003
【図２】
2020135061.tif 000004
【図３】
2020135061.tif 000005
【図４】
2020135061.tif 000006
【図５】
2020135061.tif 000007
【図６】
2020135061.tif 000008
【図７】
2020135061.tif 000009
【図８】
2020135061.tif 000010
【図９】
2020135061.tif 000011
【図１０】
2020135061.tif 000012
【手続補正書】
【提出日】令和1年9月20日(2019.9.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、推論処理システムにおいて、
前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、
前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、
前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、
前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、
を備え、
前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する、
推論処理システム。
【請求項２】
前記複数の推論処理装置の制御を行う管理制御部を備え、
前記推論処理結果記憶部は、前記管理制御部に設けられて、少なくとも最終段の推論処理装置以外の各前記推論処理装置の推論処理の処理結果を記憶する、
請求項１に記載の推論処理システム。
【請求項３】
前記複数の推論処理装置は、それぞれ自己の推論結果を記憶する前記推論処理結果記憶部を備えている、
請求項１に記載の推論処理システム。
【請求項４】
前記推論処理システムは、入力された画像に対して一連の推論処理を行うものであり、
前記推論処理結果記憶部は、当該一連の推論処理に対応する画像を記憶するとともに、前記推論処理装置の推論処理の処理結果を記憶するに際し、前記処理結果に前記画像を特定する情報を特定する情報を付加して記憶する、
請求項１乃至請求項３のいずれか一項に記載の推論処理システム。
【請求項５】
複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムをコンピュータにより制御するためのプログラムであって、
前記コンピュータを、
前記推論処理装置の推論処理の処理結果を記憶する手段、
前記推論処理装置における推論処理に処理遅延が発生しているかを検出する手段、
前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する手段、
前記選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる手段、として機能させ、
前記選択する手段は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する、
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記課題を解決するため、本発明の第１態様にかかる推論処理システムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムにおいて、前記推論処理装置の推論処理の処理結果を記憶する推論処理結果記憶部と、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する処理遅延検出部と、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する選択部と、前記選択部により選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる入出力制御部と、を備え、前記選択部は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
また、本発明の第２態様にかかるプログラムは、複数の推論処理装置を有し、前段の推論処理装置で行われた推論処理の処理結果を用いて後段の推論処理装置が推論処理を行う、パイプライン処理型の推論処理システムをコンピュータにより制御するためのプログラムであって、前記コンピュータを、前記推論処理装置の推論処理の処理結果を記憶する手段、前記推論処理装置における推論処理に処理遅延が発生しているかを検出する手段、前記処理遅延が発生している推論処理装置と同一の推論処理を実行可能な他の推論処理装置を選択する手段、前記選択された前記他の推論処理装置に前記処理遅延が発生している推論処理装置の前段の推論処理装置の推論処理の処理結果を入力し、当該他の推論処理装置の処理結果を前記処理遅延が発生している推論処理装置の後段の推論処理装置に出力させる手段、として機能させ、前記選択する手段は、前記他の推論処理装置として、前記処理遅延の検出時に前記処理遅延が発生している推論処理装置と同一の推論処理が割り当てられている推論処理装置であって、当該推論処理装置において、処理遅延が発生しないと予測される推論処理装置を選択する。