(57)【要約】【課題】トラフィックの軽減、ＡＩ処理部の演算負荷の軽減を行う。【解決手段】ＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部に対して撮像装置で撮像した画像データを出力する情報処理装置において、前記ＡＩ処理部でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかを判定する判定部と、前記判定部によってｎ個のフレーム以上連続で検出対象物が未検出であると判定した場合、前記ＡＩ処理部への画像データの転送を中止する出力制御部と、を備える。【選択図】図９
2020107268.tif 000002
【特許請求の範囲】
【請求項１】
ＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部に対して撮像装置で撮像した画像データを出力する情報処理装置において、
前記ＡＩ処理部でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかを判定する判定部と、
前記判定部によってｎ個のフレーム以上連続で検出対象物が未検出であると判定した場合、前記ＡＩ処理部への画像データの転送を中止する出力制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
画像データのフレーム間の動体物の検知を行う動体検知部を更に備え、
前記出力制御部は、前記動体検知部により新しく動体物を検知するまで、前記ＡＩ処理部への画像データの転送を中止する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記動体検知部は、前記撮像装置から新たに取得した画像データと当該画像データの１フレーム前の画像データとの差分をとって、動体物の検知を行う、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記動体検知部は、前記撮像装置から新たに取得した画像データと当該画像データの数フレーム前の画像データとの差分をとって、動体物の検知を行う、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記出力制御部は、前記ＡＩ処理部への転送を中止した画像データを、蓄積部に蓄積する、
ことを特徴とする請求項１ないし４の何れか一項に記載の情報処理装置。
【請求項６】
撮像装置で撮像された画像データを取得する、請求項１ないし５の何れか一項に記載の情報処理装置と、
前記情報処理装置から出力された画像データに対してＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部と、
を備え、
前記ＡＩ処理部は、前記情報処理装置に対するＡＩ処理結果に、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかの情報を含める、
ことを特徴とする情報処理システム。
【請求項７】
ＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部に対して撮像装置で撮像した画像データを出力する情報処理装置を制御するコンピュータを、
前記ＡＩ処理部でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかを判定する判定部と、
前記判定部によってｎ個のフレーム以上連続で検出対象物が未検出であると判定した場合、前記ＡＩ処理部への画像データの転送を中止する出力制御部と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、機械学習手法であるディープラーニング（Deep  Learning）技術を利用した物体認識等のＡＩ（Artificial  Intelligence）処理による各種サービスが提供されつつある。
【０００３】
例えば、特許文献１には、ディープラーニング技術を用いてカメラ画像中の人物の年齢を判別し、不審人物等を自動的に特定することができる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１４２１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術によれば、人物が全く映り込んでいないカメラ画像に対しても常に人物検出などのＡＩ処理は行わなければならないため、画像データのデータ転送によるトラフィック増加、ＡＩ処理にかかる演算負荷の増加が問題になる。このような問題は、システム全体のスループットを悪化させてしまう。また、複数の監視カメラが存在する場合、各監視カメラで撮像された画像はシステム全体として処理がなされる。そのため、リアルタイム性の維持を考えると、人物が存在する画像のみに対してＡＩ処理できるのが望ましい。
【０００６】
本発明は、上記に鑑みてなされたものであって、トラフィックの軽減、ＡＩ処理部の演算負荷の軽減を行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理装置は、ＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部に対して撮像装置で撮像した画像データを出力する情報処理装置において、前記ＡＩ処理部でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかを判定する判定部と、前記判定部によってｎ個のフレーム以上連続で検出対象物が未検出であると判定した場合、前記ＡＩ処理部への画像データの転送を中止する出力制御部と、を備える。
【０００８】
また、情報処理装置は、例えば、画像データのフレーム間の動体物の検知を行う動体検知部を更に備え、前記出力制御部は、前記動体検知部により新しく動体物を検知するまで、前記ＡＩ処理部への画像データの転送を中止する。
【０００９】
また、情報処理装置は、例えば、前記動体検知部は、前記撮像装置から新たに取得した画像データと当該画像データの１フレーム前の画像データとの差分をとって、動体物の検知を行う。
【００１０】
また、情報処理装置は、例えば、前記動体検知部は、前記撮像装置から新たに取得した画像データと当該画像データの数フレーム前の画像データとの差分をとって、動体物の検知を行う。
【００１１】
また、情報処理装置は、例えば、前記出力制御部は、前記ＡＩ処理部への転送を中止した画像データを、蓄積部に蓄積する。
【００１２】
本発明の第２態様に係る情報処理システムは、撮像装置で撮像された画像データを取得する、請求項１ないし５の何れか一項に記載の情報処理装置と、前記情報処理装置から出力された画像データに対してＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部と、を備え、前記ＡＩ処理部は、前記情報処理装置に対するＡＩ処理結果に、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかの情報を含める。
【００１３】
本発明の第３態様に係るプログラムは、ＡＩ（Artificial  Intelligence）処理を行うＡＩ処理部に対して撮像装置で撮像した画像データを出力する情報処理装置を制御するコンピュータを、前記ＡＩ処理部でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム以上連続で検出対象物が未検出かどうかを判定する判定部と、前記判定部によってｎ個のフレーム以上連続で検出対象物が未検出であると判定した場合、前記ＡＩ処理部への画像データの転送を中止する出力制御部と、として機能させる。
【発明の効果】
【００１４】
本発明の上記第１態様によれば、特定の撮像装置の画像データに対するＡＩ処理を取りやめることによって、トラフィックの軽減、ＡＩ処理部の演算負荷の軽減を行うことができる。
【００１５】
本発明の上記第２態様によれば、特定の撮像装置の画像データに対するＡＩ処理を取りやめることによって、トラフィックの軽減、ＡＩ処理部の演算負荷の軽減を行うことができる。
【００１６】
本発明の上記第３態様によれば、特定の撮像装置の画像データに対するＡＩ処理を取りやめることによって、トラフィックの軽減、ＡＩ処理部の演算負荷の軽減を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本実施形態にかかる情報処理システムにおける複数のプラットフォームの接続構成を模式的に示す図である。
【図２】図２は、プラットフォームのハードウェア構成を模式的に示す図である。
【図３】図３は、プラットフォームのソフトウェア構成を例示する図である。
【図４】図４は、ＰＣＩｅブリッジコントローラのハードウェア構成を模式的に示す図である。
【図５】図５は、ＰＣＩｅのレイヤ構成を示す図である。
【図６】図６は、プロセッサ（プロセッサＨ）からの他のプロセッサの見え方を例示する図である。
【図７】図７は、プロセッサ（プロセッサＥ）からの他のプロセッサの見え方を例示する図である。
【図８】図８は、ＰＣＩｅブリッジコントローラを介したプロセッサ間のデータ転送方法を説明するための図である。
【図９】図９は、情報処理システムにおける機能を示す機能ブロック図である。
【図１０】図１０は、情報処理装置としてのプラットフォームにおける処理の流れを示すフローチャートである。
【図１１】図１１は、ＡＩ処理部の混み具合を判断する処理の流れを示すフローチャートである。
【図１２】図１２は、混雑度合いテーブルを例示的に示す図である。
【図１３】図１３は、モニタにおける表示例を示す図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、情報処理装置、情報処理システムおよびプログラムの実施形態を詳細に説明する。
【００１９】
図１は、本実施形態にかかる情報処理システム１における複数のプラットフォームの接続構成を模式的に示す図である。
【００２０】
［システム構成］
図１に例示する情報処理システム１においては、ＰＣＩｅ（Peripheral  Component  Interconnect  Express；登録商標）ブリッジコントローラ３および複数（図１に示す例では８つ）のプラットフォーム２−１〜２−８を備える。各プラットフォーム２−１〜２−８は、それぞれＰＣＩｅブリッジコントローラ３に接続されている。
【００２１】
なお、以下、プラットフォームを示す符号としては、複数のプラットフォームのうち１つを特定する必要があるときには符号２−１〜２−８を用いるが、任意のプラットフォームを指すときには符号２を用いる。プラットフォーム２は、ＰＣプラットフォーム２といってもよい。
【００２２】
［プラットフォーム］
情報処理装置としてのプラットフォーム２−１は、プロセッサ２１−１を備える。同様に、プラットフォーム２−２〜２−８は、プロセッサ２１−２〜２１−８をそれぞれ備える。ＰＣＩｅにおいては、プロセッサ２１−１〜２１−８がホスト側として動作可能なＲＣ（Root  Complex）となり、ＰＣＩｅブリッジコントローラ３に搭載されているデバイスがＥＰ（End  Point）となり、ホストとデバイスとの間でのデータ転送が行なわれる。
【００２３】
プロセッサ２１−１〜２１−８はそれぞれ違うメーカ（ベンダ）から提供されてもよい。例えば、プロセッサ２１−１，２１−２，２１−３，２１−４，２１−５，２１−６，２１−７，２１−８は、それぞれ、Ａ社，Ｂ社，Ｃ社，Ｄ社，Ｅ社，Ｆ社，Ｇ社，Ｈ社が提供するものであるとする。
【００２４】
また、以下、プロセッサ２１−１，２１−２，２１−３，２１−４，２１−５，２１−６，２１−７，２１−８を、それぞれプロセッサＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈという場合がある。また、ＰＣＩｅブリッジコントローラ３に搭載されているＥＰに対して、それぞれ異なるプラットフォームを接続しても良い。さらに、２つ以上の複数のＥＰを１つのプラットフォームに接続し、プラットフォーム側が複数のＲＣを用いてＰＣＩｅブリッジコントローラ３と通信しても良い。
【００２５】
なお、以下、プロセッサを示す符号としては、複数のプロセッサのうち１つを特定する必要があるときには符号２１−１〜２１−８もしくは符号Ａ〜Ｈ等を用いるが、任意のプロセッサを指すときには符号２１を用いる。
【００２６】
プラットフォーム２−１〜２−８は、ＡＩ処理や画像処理等の演算処理を行なうコンピュータ環境である。ここで、図２は、情報処理システム１におけるプラットフォーム２のハードウェア構成を模式的に示す図である。
【００２７】
図２に示すように、プラットフォーム２は、各種情報を一時記憶するメモリ２２と、ストレージ２３とを有する。また、プラットフォーム２は、各種演算処理を実行するプロセッサ２１と、データ入力を受け付ける入力装置２４と、モニタ２５とを有する。また、プラットフォーム２は、記憶媒体からプログラム等を読み取る媒体読取装置２６と、各種装置と接続するためのインタフェース装置２７と、他の情報処理装置等と有線または無線により接続するための通信装置２８とを有する。また、各装置２１〜２８は、バス２９に接続される。
【００２８】
入力装置２４は、例えば、プラットフォーム２の管理者から操作情報等の各種情報の入力を受け付ける。モニタ２５は、例えば、プラットフォーム２の管理者に対して表示画面等の各種画面を表示する。インタフェース装置２７は、例えば複数の監視カメラ（撮像装置）５０（図９参照）、印刷装置等が接続される。監視カメラ５０は、画像データを生成するデータ生成装置である。なお、データ生成装置としては監視カメラ５０に限るものではなく、ＡＩ処理の対象となるデータを生成する各種の装置を適用可能である。
【００２９】
メモリ２２はＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ２２のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２２上のソフトウェアプログラムは、プロセッサ２１に適宜読み込まれて実行される。また、メモリ２２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３０】
ストレージ２３は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。ストレージ２３には各種ソフトウェアプログラムが記憶される。また、ストレージ２３には、混雑度合いテーブルＴ（図１２参照）などの各種データが記憶される。
【００３１】
プロセッサ２１は、プラットフォーム２全体を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ２１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００３２】
プラットフォーム２においては、プロセッサ２１がメモリ２２やストレージ２３に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００３３】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ２２やストレージ２３に記憶されている必要はない。例えば、プラットフォーム２の媒体読取装置２６が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム２が読み出して実行するようにしてもよい。プラットフォーム２が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこの情報処理プログラムを記憶させておき、プラットフォーム２がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【００３４】
図３は、情報処理システム１におけるプラットフォーム２のソフトウェア構成を例示する図である。なお、図３中においては、便宜上、プラットフォーム２−１〜２−３のソフトウェア構成のみを図示する。
【００３５】
図３に例示する情報処理システム１において、プラットフォーム２−１は、一般的なＰＣ（Personal  Computer）システムであり、Windows（登録商標）をＯＳ（Operating  System）とする。プラットフォーム２−１は、このＯＳ上において、アプリケーションである店舗管理プログラムを実行する。
【００３６】
プラットフォーム２−２，２−３は、組込みシステムであり、それぞれLinux（登録商標）をＯＳとする。プラットフォーム２−２，２−３は、このＯＳ上において、ＡＩ処理にかかる分散処理プログラム（分散処理Ａ，Ｂ）を実行する。
【００３７】
各プラットフォーム２には、ブリッジドライバ２０が備えられている。プラットフォーム２は、このブリッジドライバ２０を介してＰＣＩｅブリッジコントローラ３および他のプラットフォーム２との間で通信を行なう。なお、ブリッジドライバ２０による通信方法については後述する。
【００３８】
各プラットフォーム２においては、プロセッサ２１およびメモリ（物理メモリ）２２を備え、プロセッサ２１がメモリ２２に格納されたＯＳや各種プログラム，ドライバ等を実行することでそれぞれの機能を実現する。
【００３９】
各プラットフォーム２に備えられるプロセッサ２１は、互いに違うベンダによって提供されるものであってもよい。図１に示す例においては、少なくとも一部のプラットフォーム２（例えば、プラットフォーム２−７）に複数のＲＣを有するプラットフォーム（例えば、Intel社のx86プロセッサ）が用いられてもよい。
【００４０】
また、各プラットフォーム２は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
【００４１】
プラットフォーム２において、メモリ２２の記憶領域の一部は、図８を用いて後述する如く、プラットフォーム２間（プロセッサ２１間）において転送されるデータが一時的に格納される通信バッファ２２１として用いられる。
【００４２】
［ＰＣＩｅブリッジコントローラ］
ＰＣＩｅブリッジコントローラ３は、複数のプラットフォーム２−１〜２−８間におけるデータ等の通信を実現する。
【００４３】
図４は、情報処理システム１におけるＰＣＩｅブリッジコントローラ３のハードウェア構成を模式的に示す図である。
【００４４】
ＰＣＩｅブリッジコントローラ３は、例えば、８チャネルのＥＰを１チップ内に有する中継装置である。このＰＣＩｅブリッジコントローラ３は、図４に示すように、ＣＰＵ３１，メモリ３２，インターコネクトバス３３および複数（図４に示す例では８つ）のスロット３４−１〜３４−８を備える。
【００４５】
スロット３４−１〜３４−８にはそれぞれＰＣＩｅの規格を満たすよう構成されたデバイスが接続される。特に、情報処理システム１においては、スロット３４−１〜３４−８のそれぞれにプラットフォーム２が接続される。
【００４６】
なお、以下、スロットを示す符号としては、複数のスロットのうち１つを特定する必要があるときには符号３４−１〜３４−８を用いるが、任意のスロットを指すときには符号３４を用いる。
【００４７】
なお、プラットフォーム２−１〜２−８のように、一つのスロット３４に対して一つのプロセッサ２が接続されてもよいが、これに限るものではなく、複数（例えば、２つ）のスロット３４に対して一つのプラットフォーム２が接続されてもよく、種々変形して実施することができる。
【００４８】
一つのプラットフォーム２に対して複数のスロット３４をアサインすることで、このプラットフォーム２−７に広い通信帯域を用いた通信を行なわせることができる。
【００４９】
各スロット３４は、内部バス（Internal  Bus）を介してインターコネクトバス３３にそれぞれ接続されている。また、インターコネクトバス３３には、ＣＰＵ３１およびメモリ３２が接続されている。これにより、各スロット３４とＣＰＵ３１およびメモリ３２は、インターコネクトバス３３を介して相互に通信可能に接続されている。
【００５０】
メモリ３２は、例えば、ＲＯＭおよびＲＡＭを含む記憶メモリ（物理メモリ）である。メモリ３２のＲＯＭには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３２上のソフトウェアプログラムは、ＣＰＵ３１に適宜読み込まれて実行される。また、メモリ３２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００５１】
さらに、ＰＣＩｅブリッジコントローラ３においては、各スロットに対応させてレジスタ３５（図８参照）が備えられる。レジスタ３５のＢＡＲ（Base  Address  Register）空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ３５のＢＡＲ空間にはスロット＃０〜＃７のそれぞれに対応する記憶領域が設けられている。
【００５２】
ＰＣＩｅブリッジコントローラ３においては、後述の如く、ＢＡＲ空間のスロット毎の記憶領域を用いてプラットフォーム２間のデータ転送を行なう。
【００５３】
ＣＰＵ３１は、ＰＣＩｅブリッジコントローラ３全体を制御する。ＣＰＵ３１は、マルチプロセッサであってもよい。なお、ＣＰＵ３１に代えてＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つが用いられてもよい。また、ＣＰＵ３１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００５４】
そして、ＣＰＵ３１がメモリ３２に格納されたソフトウェアプログラムを実行することで、ＰＣＩｅブリッジコントローラ３におけるプラットフォーム２間（プロセッサ２１間）のデータ転送を実現する。
【００５５】
ＰＣＩｅブリッジコントローラ３は、プラットフォーム２間のデータ転送を高速化するためにＰＣＩｅを用い、図１に示すように、各プラットフォーム２に備えられるプロセッサをそれぞれＲＣとして動作させ、デバイスとして動作するＥＰ間でデータ転送を実現する。
【００５６】
具体的には、情報処理システム１においては、各プラットフォーム２のプロセッサを、データ転送インタフェースとしてＰＣＩｅのＲＣとして動作させる。また、各プラットフォーム２（プロセッサ２１）に対して、ＰＣＩｅブリッジコントローラ３を、すなわち、各プラットフォーム２が接続されているスロット３４をＥＰとして動作させる。
【００５７】
ＰＣＩｅブリッジコントローラ３をプロセッサ２１に対してＥＰとして接続する手法としては、既知の種々の手法を用いて実現することができる。
【００５８】
例えば、ＰＣＩｅブリッジコントローラ３は、プラットフォーム２との接続時に、ＥＰとして機能することを示す信号を当該プロセッサ２１に通知することで、ＥＰとしてプロセッサ２１と接続する。
【００５９】
ＰＣＩｅブリッジコントローラ３においては  ＥＰｔｏＥＰ（End  Point  to  End  Point）でデータをトンネリングさせて、複数のＲＣにデータを転送する。プロセッサ２１間の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続され、１つのプロセッサ２１にデータ転送が集中しないときは、それぞれのプロセッサ２１間で並行してデータ転送できる。
【００６０】
図５は、ＰＣＩｅのレイヤ構成を示す図である。図５においては、プラットフォーム２−１のプロセッサＡとプラットフォーム２−２のプロセッサＢとの間で通信を行なう例を示す。
【００６１】
送信元のプラットフォーム２−１においては、ＲＣであるプロセッサＡにおいて生成されたデータが、ソフトウェア，トランザクション層，データリンク層および物理層（ＰＨＹ）を、順次、転送され、物理層においてＰＣＩｅブリッジコントローラ３の物理層に転送される。
【００６２】
ＰＣＩｅブリッジコントローラ３においては、物理層，データリンク層，トランザクション層およびソフトウェアを順次、転送され、送信先のプラットフォーム２のＲＣに対応するＥＰにトンネリングによりデータが転送される。
【００６３】
すなわち、ＰＣＩｅブリッジコントローラ３においては、ＥＰ間でデータをトンネリングさせることで、一のＲＣ（プロセッサ２１）から他のＲＣ（プロセッサ２１）にデータが転送される。
【００６４】
送信先のプラットフォーム２−２においては、ＰＣＩｅブリッジコントローラ３から転送されたデータが、物理層（ＰＨＹ），データリンク層，トランザクション層およびソフトウェアを、順次、転送され、送信先のプラットフォーム２−２のプロセッサＢに転送される。
【００６５】
情報処理システム１において、プロセッサ２１間（プラットフォーム２間）の通信は、ＰＣＩｅのトランザクションが発生したときに論理的に接続される。
【００６６】
ＰＣＩｅブリッジコントローラ３が有する８スロットのうちの一つに接続された特定のプロセッサ２１に対して複数の他のプロセッサ２１からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ２１間で並行してデータ転送してもよい。
【００６７】
例えば、プラットフォーム２−１のプロセッサＡに対して、プラットフォーム２−２のプロセッサＢおよびプラットフォーム２−３のプロセッサＣのそれぞれが通信しようとする場合には、ＰＣＩｅブリッジコントローラ３は、プロセッサＢ，Ｃの通信をシリアルに処理する。
【００６８】
ただし、プロセッサＡ−プロセッサＢ，プロセッサＣ−プロセッサＤ，プロセッサＥ−プロセッサＦのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、ＰＣＩｅブリッジコントローラ３は、各プロセッサ２１間通信を並行して処理する。
【００６９】
図６は、情報処理システム１におけるプロセッサ２１−８（プロセッサＨ）からの他のプロセッサ２１の見え方を例示する図であり、図７はプロセッサ２１−５（プロセッサＥ）からの他のプロセッサ２１の見え方を例示する図である。
【００７０】
各プロセッサ２１間で通信が行なわれている状態においても、各プロセッサ２１上のＯＳ（例えばWindowsのデバイスマネージャ）からは、ＰＣＩｅブリッジコントローラ３しか見えず、接続先の他のプロセッサ２１を直接管理する必要がない。すなわち、ＰＣＩｅブリッジコントローラ３のデバイスドライバでＰＣＩｅブリッジコントローラ３の先に接続されたプロセッサ２１を管理すれば良い。
【００７１】
そのため、送信元、受信先それぞれのプロセッサ２１を動作させるためのデバイスドライバを準備する必要がなく、ＰＣＩｅブリッジコントローラ３のドライバでＰＣＩｅブリッジコントローラ３に対して通信処理を行なうだけでプロセッサ２１間の通信を行なうことができる。
【００７２】
［プロセッサ間のデータ転送方法］
次に、上述の如く構成された情報処理システム１におけるＰＣＩｅブリッジコントローラ３を介したプロセッサ２１間のデータ転送方法について説明する。
【００７３】
ここで、図８は情報処理システム１におけるＰＣＩｅブリッジコントローラ３を介したプロセッサ２１間のデータ転送方法を説明するための図である。図８に示す例においては、スロット＃０に接続されたプラットフォーム２−１からスロット＃４に接続されたプラットフォーム２−５にデータを転送する場合について説明する。
【００７４】
データ送信元のプラットフォーム２−１は、ソフトウェアプログラム等によって送信されるデータ（以下、送信データという場合がある）を、プラットフォーム２−１に備えられるストレージ２３等からプラットフォーム２−１のメモリ領域３５に格納する（符号Ｐ１参照）。メモリ領域３５は、通信バッファ２２１の一部であってもよい。メモリ領域３５は、プロットフォーム２のそれぞれにメモリ２２等に同じ大きさで設けられた領域である。メモリ領域３５は、スロット数に応じて分割されている。メモリ領域３５の分割された記憶領域は、いずれかのスロットに対応付けられている。例えば、メモリ領域３５内にＳｌｏｔ＃０で示す記憶領域は、Ｓｌｏｔ＃０に接続されたプラットフォーム２−１に対応付けられ、メモリ領域３５内にＳｌｏｔ＃４で示す記憶領域は、Ｓｌｏｔ＃０に接続されたプラットフォーム２−５に対応付けられている。プラットフォーム２−１は、メモリ領域３５のうち、送信先のスロットに割り当てられた領域（ここでは、Ｓｌｏｔ＃４）に送信データを格納する。
【００７５】
ブリッジドライバ２０は、プラットフォーム２のメモリ領域３５の記憶領域に基づいて、送信先のスロットを示すスロット情報と、送信先のメモリ領域３５における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する（符号Ｐ２参照）。
【００７６】
送信元ＥＰにおいて、ブリッジドライバ２０は、スロット情報と、アドレス情報と、送信データとを含む転送データを中継装置３に渡す（符号Ｐ３参照）。これにより、ＰＣＩｅブリッジコントローラ３は、スロット情報に基づいてＥＰｔｏＥＰにより送信元のスロットと送信先のスロットとを接続することにより、転送データを送信先のプラットフォーム２−４へ転送する（符号Ｐ４参照）。
【００７７】
送信先のブリッジドライバ２０は、スロット情報及びアドレス情報に基づいて、送信先のプラットフォーム２のメモリ領域３５のスロット＃４に対応する記憶領域内のアドレス情報が示すアドレスの領域に送信データ（または転送データ）を格納する（符号Ｐ５参照）。
【００７８】
送信先プラットフォーム２において、例えば、プログラムが、メモリ領域３５に格納された送信データを読み出して、メモリ（ローカルメモリ）２２やストレージ２３に移動させる（符号Ｐ６，Ｐ７参照）。
【００７９】
以上のようにして、転送元のプラットフォーム２−１から転送先のプラットフォーム２−５にデータ（転送データ）が転送される。
【００８０】
このように、情報処理システム１においては、ＰＣＩｅブリッジコントローラ３において、当該ＰＣＩｅブリッジコントローラ３内のＥＰ間でデータ転送を媒介する。これにより、ＰＣＩｅブリッジコントローラ３に接続された複数のＲＣ（プロセッサ２１）間でのデータ転送を実現することができる。
【００８１】
すなわち、各プロセッサ２１をＰＣＩｅのＲＣとして独立動作させ、ＰＣＩｅブリッジコントローラ３において、それぞれのプロセッサ２１に接続するデバイスをＥＰとして接続し、ＥＰ間でデータ転送を行なう。これにより、デバイスドライバに起因する問題を回避し、高速データ転送を１つのシステムとして動作させることができる。
【００８２】
また、ＰＣＩｅの規格に適合したデータ通信機能を有してさえいれば異なるプロセッサ２１間でのデータ転送が可能となるため、デバイスドライバの有無や、サポートＯＳ等を気にすることなく使用するプロセッサ２１の選択肢を広げることが可能となる。
【００８３】
各プロセッサ２１はＥＰとなるＰＣＩｅブリッジコントローラ３を介して接続されるため、ＥＰの先のＲＣのデバイスドライバを追加する必要がない。従って、デバイスドライバの開発が不要であるとともに、デバイスドライバを追加することに起因する不具合が発生することもない。
【００８４】
［情報処理システム１が有している特徴的な機能］
次いで、プラットフォーム２−１〜２−７のストレージ２３にインストールされたＯＳおよびソフトウェアプログラムによりプロセッサ２１が実現する機能の内、本実施形態の情報処理システム１が有している特徴的な機能について説明する。尚、以下の説明では、プラットフォーム２−８が、スロット３４−８に接続されていないものとして説明する。
【００８５】
図９は、情報処理システム１における機能を示す機能ブロック図である。なお、図９においては、ＰＣＩｅブリッジコントローラ３を省略している。
【００８６】
プラットフォーム２−２〜２−７は、機械学習、特にディープラーニング（Deep  Learning）技術を用いて、店舗等における監視のためのＡＩ処理にかかる分散処理プログラムを実行する。
【００８７】
図９に示すように、プラットフォーム２−２〜２−７は、ＡＩ処理部１００を実現する。ＡＩ処理部１００は、監視カメラ５０から取得した画像データに対して、ディープラーニング（Deep  Learning）技術を利用した人物の認識等のＡＩ処理を実行する。より詳細には、ＡＩ処理部１００は、店舗等における監視のために、人物特定処理、人物紐付け処理、人物分類処理などのＡＩ処理を、分散して実行する。
【００８８】
人物特定処理は、複数の監視カメラ５０で撮像された画像データから、人物そのものや人物を構成するパーツ、持ち物の種類とその検出座標を特定する。図９に示すように、プラットフォーム２−２〜２−４が担当する。すなわち、プラットフォーム２−２〜２−４は、人物特定処理を担当する第１のＡ１処理部１０１を構成する。
【００８９】
人物紐付け処理は、特定した人物を時系列で紐付けていく。図９に示すように、プラットフォーム２−５〜２−６が担当する。すなわち、プラットフォーム２−５〜２−６は、人物紐付け処理を担当する第２のＡ１処理部１０２を構成する。
【００９０】
人物分類処理は、時系列で紐付けた人物を分類する。図９に示すように、プラットフォーム２−７が担当する。すなわち、プラットフォーム２−７は、人物分類処理を担当する第３のＡ１処理部１０３を構成する。
【００９１】
一方、プラットフォーム２−１は、店舗管理プログラムを実行する。
【００９２】
プラットフォーム２−１は、複数の監視カメラ５０で撮像された画像データを、プラットフォーム２−２〜２−７に出力する。また、プラットフォーム２−１は、複数の監視カメラ５０で撮像された画像データを、同時にモニタ２５に表示する。
【００９３】
図９に示すように、プラットフォーム２−１は、画像取得部２０１と、制御部２０２と、出力制御部２０３と、ＡＰＩ（Application  Programming  Interface）部２０４と、表示制御部２０５と、判定部２０６と、動体検知部２０７と、不審者判定部２０８と、補助出力制御部２０９と、を備えている。
【００９４】
画像取得部２０１は、監視カメラ５０から画像データを取得する。画像取得部２０１は、取得した画像データをキューＱ１に順に蓄積する。
【００９５】
ＡＰＩ（Application  Programming  Interface）部は、プラットフォーム２−１からプラットフォーム２−２〜２−７に対するデータ提供のためのインタフェースである。
【００９６】
制御部２０２は、ＡＩ処理部１００におけるＡＩ処理の進行具合を監視する。制御部２０２は、ＡＩ処理部１００におけるＡＩ処理の進行具合が混んでいない場合、画像データをＡＩ処理部１００へ渡すように出力制御部２０３を制御する。一方、制御部２０２は、ＡＩ処理部１００におけるＡＩ処理の進行具合が混んでいる場合、画像データをＡＩ処理部１００へ渡さないように出力制御部２０３を制御する。
【００９７】
例えば、制御部２０２は、ＡＩ処理部１００で処理待ちになっている画像の枚数（キュー情報）を監視してＡＩ処理の進行具合を判断する。具体的には、制御部２０２は、予め設定してある枚数のしきい値に対して、処理待ちになっている画像の枚数が多いか少ないかで、混み具合を判断する。
【００９８】
また、例えば、制御部２０２は、ＡＰＩ部２０４からプラットフォーム２−２〜２−７までの処理時間を監視してＡＩ処理の進行具合を判断するようにしてもよい。具体的には、制御部２０２は、予め設定してある時間のしきい値に対して、処理にかかっている時間が長いか短いかで、混み具合を判断する。
【００９９】
出力制御部２０３は、Ｇａｔｅ１、Ｇａｔｅ２、Ｇａｔｅ４、Ｇａｔｅ５のＯＮ／ＯＦＦを制御することで、制御部２０２によりＡＩ処理部１００が混んでいないと判断した場合、画像データをＡＩ処理部１００へ出力し、制御部２０２によりＡＩ処理部１００が混んでいると判断した場合、画像データのＡＩ処理部１００への出力をスキップする。
【０１００】
また、出力制御部２０３は、制御部２０２によりＡＩ処理部１００が混んでいないと判断した場合、スキップされた画像データを蓄積部であるキューＱ２に振り分けて蓄積する。
【０１０１】
補助出力制御部２０９は、キューＱ２に振り分けられたスキップされた画像データをキューＱ３に蓄積する。また、補助出力制御部２０９は、制御部２０２により判断されたＡＩ処理部１００の混雑具合が所定条件を満たした場合、Ｇａｔｅ３のＯＮ／ＯＦＦを制御することで、キューＱ３に蓄積された画像データをＡＩ処理部１００へ出力する。
【０１０２】
表示制御部２０５は、キューＱ２に蓄積された画像データを監視カメラ５０毎に区別してモニタ２５に同時に表示する。また、表示制御部２０５は、ＡＩ処理部１００でのＡＩ処理された画像データに時間を合わせて他の画像データをモニタ２５に表示する。
【０１０３】
判定部２０６は、ＡＩ処理部１００でＡＩ処理を行った結果を参照し、画像データについてｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出かどうかを判定する。
【０１０４】
出力制御部２０３は、判定部２０６によってｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出であると判定した場合、ＡＩ処理部１００への画像データの転送を中止する。また、出力制御部２０３は、ＡＩ処理部１００への転送を中止した画像データは、キューＱ２に振り分けて蓄積する。
【０１０５】
動体検知部２０７は、画像データのフレーム間の動体物の検知を行う。出力制御部２０３は、Ｇａｔｅ４およびＧａｔｅ５のＯＮ／ＯＦＦを制御することにより、動体検知部２０７により新しく動体物を検知するまで、ＡＩ処理部１００への画像データの転送を中止する。例えば、動体検知部２０７が動体を検知すると、出力制御部２０３は、Ｇａｔｅ４をＯＮにするとともに、Ｇａｔｅ５をＯＦＦにして、ＡＩ処理部１００への画像データの転送を中止する。一方、動体検知部２０７が動体を検知していない場合、出力制御部２０３は、Ｇａｔｅ４をＯＦＦにするとともに、Ｇａｔｅ５をＯＮにして、ＡＩ処理部１００へ画像データを転送する。
【０１０６】
動体検知部２０７は、例えば、監視カメラ５０から新たに取得した画像データと当該画像データの１フレーム前の画像データとの差分をとって、動体物の検知を行う。また、動体検知部２０７は、例えば、処理中の画像データと当該画像データの数フレーム前の画像データとの差分をとって、動体物の検知を行う。
【０１０７】
不審者判定部２０８は、ＡＩ処理部１００でＡＩ処理を行った結果に基づいて、不審者を判定する。
【０１０８】
［処理についての説明］
ところで、複数の監視カメラ５０で撮像した画像に写った人物の特徴の解析をリアルタイムでＡＩ処理する場合、演算量が大きくなりすぎると遅延が発生してしまう、という課題がある。
【０１０９】
そこで、本実施形態においては、プラットフォーム２−２〜２−７は、プラットフォーム２−２〜２−７におけるそれぞれのＡＩ処理の混雑状況を、ＰＣプラットフォーム２（プラットフォーム２−１）に対してフィードバックする。
【０１１０】
ここで、図１０は情報処理装置としてのプラットフォーム２−１における処理の流れを示すフローチャートである。図１０に示すように、制御部２０２は、ＡＩ処理部１００からＡＩ処理結果を入手する（ステップＳ１）。例えば、制御部２０２は、ＡＩ処理部１００からＪＳＯＮ（JavaScript（登録商標）  Object  Notation）形式でタイムスタンプが付されたＡＩ処理結果を入手する。また、ＪＳＯＮ形式のＡＩ処理結果には、ＡＩ処理に要した時間またはＡＩ処理部１００（第１のＡ１処理部１０１、第２のＡ１処理部１０２、第３のＡ１処理部１０３）のキュー情報を混雑情報として含んでいる。
【０１１１】
続いて、制御部２０２は、入手のＡＩ処理結果が制御対象の監視カメラ５０の画像のＡＩ処理結果であるかを判断する（ステップＳ２）。
【０１１２】
制御部２０２は、制御対象の監視カメラ５０の画像のＡＩ処理結果でないと判断した場合（ステップＳ２のＮｏ）、ステップＳ１に戻る。
【０１１３】
一方、制御部２０２は、制御対象の監視カメラ５０の画像のＡＩ処理結果であると判断した場合（ステップＳ２のＹｅｓ）、ＡＩ処理結果から人物検出情報を抽出する（ステップＳ３）。
【０１１４】
次いで、判定部２０６は、ｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物（検出対象物）が未検出であるかを判断する（ステップＳ４）。なお、ｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出かどうかは、ＡＩ処理部１００側でＡＩ処理を行ったＡＩ処理結果を参照する。例えば、３フレーム連続で人物が検出されなければ、未検出フラグに１をセットする。ＡＩ処理部１００側のＡＩ処理においては、人物が静止していようが動いていようがどちらでも検出することができる。
【０１１５】
判定部２０６は、ｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出であると判断した場合（ステップＳ４のＹｅｓ）、フレーム間のピクセル差分の大きさを計算して動体検知を行い（ステップＳ５）、ステップＳ６に進む。
【０１１６】
具体的には、判定部２０６は、監視カメラ５０から新たに取得した画像データとその１フレーム前の画像データとの差分をとる。これにより、メモリを多く使わなくとも、動体物の検知を行うことができる。動体物があれば、動体物が発生した部分のピクセルの差が大きくなる。画像は行列で表すことができるので、行列の引き算を行うことで差を見ることができる。
【０１１７】
なお、判定部２０６は、監視カメラ５０から新たに取得した画像データとその数フレーム前の画像データとの差分をとるようにしてもよい。こうすることにより、動体物の検知精度を高めることができる。
【０１１８】
一方、判定部２０６は、ｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出でないと判断した場合（ステップＳ４のＮｏ）、ステップＳ８に進む。
【０１１９】
動体検知部２０７は、ステップＳ５で検出したピクセル差分の大きさに基づき、動体があるかを判断する（ステップＳ６）。
【０１２０】
動体検知部２０７において動体がないと判断した場合（ステップＳ６のＮｏ）、出力制御部２０３は、Ｇａｔｅ４をＯＮにし、Ｇａｔｅ５をＯＦＦにして、画像データをキューＱ２に振り分け（ステップＳ７）、ステップＳ１に戻る。すなわち、ステップＳ６のＮｏの場合、“人物が存在しない、かつ、動体物がない”ということになるので、新しく動体物が現れるまでは、ＡＩ処理部１００への画像の転送を中止する。
【０１２１】
このようにするのは、人物が全く映り込んでいなくても常に人物検出などのＡＩ処理を行う場合、画像転送によるトラフィックの増加、ＡＩ処理部１００のＡＩ処理にかかる演算負荷の増加が問題になるからである。このような問題は、システム全体のスループットを悪化させてしまう。
【０１２２】
また、複数の監視カメラ５０が存在する場合、各監視カメラ５０で撮像された画像はＡＩ処理部１００を共有する形で、システム全体として処理がなされる。そのため、リアルタイム性の維持を考えると、人物が存在する画像のみに対してＡＩ処理できるのが望ましいためである。
【０１２３】
一方、判定部２０６がｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出でないと判断し（ステップＳ４のＮｏ）、動体検知部２０７において動体があると判断した場合（ステップＳ６のＹｅｓ）、出力制御部２０３は、Ｇａｔｅ５をＯＮにし、Ｇａｔｅ４をＯＦＦにして、画像データをＧａｔｅ１およびＧａｔｅ２へと振り分けて（ステップＳ８）、ステップＳ９に進む。
【０１２４】
すなわち、ｎ個のフレーム（ｎＦｒａｍｅ）以上連続で人物が未検出でない場合、または、動体がある場合、人物が画像内に存在する可能性が高いので、ＡＩ処理部１００側に画像が到達できるように制御する。
【０１２５】
これにより、特定の監視カメラ５０の画像のＡＩ処理を取りやめることによって、トラフィックの軽減、ＡＩ処理部１００の演算負荷の軽減を行うことができる。トラフィック軽減により、システム全体のスループットを向上させることができ、望まない後述するスキップ処理を減らすことができる。また、他の監視カメラ５０で映り込む人物が多いなど負荷が高くなってしまう場合に、ＡＩ処理部１００の演算負荷軽減により得られたコンピュータリソースを割り当てることができる。
【０１２６】
続いて、制御部２０２は、ＡＩ処理に要した時間またはＡＩ処理部１００のキュー情報を混雑情報としてＪＳＯＮより抽出する（ステップＳ９）。
【０１２７】
続いて、制御部２０２は、ＡＩ処理部１００の混み具合を判断する処理を行う（ステップＳ１０）。
【０１２８】
上述したように、制御部２０２は、ＡＩ処理部１００で処理待ちになっている画像の枚数（キュー情報）を監視してＡＩ処理の進行具合を判断する。具体的には、制御部２０２は、予め設定してある枚数のしきい値に対して、処理待ちになっている画像の枚数が多いか少ないかで、混み具合を判断する。
【０１２９】
また、例えば、制御部２０２は、ＡＰＩ部２０４からプラットフォーム２−２〜２−７までの処理時間を監視してＡＩ処理の進行具合を判断するようにしてもよい。具体的には、制御部２０２は、予め設定してある時間のしきい値に対して、処理にかかっている時間が長いか短いかで、混み具合を判断する。
【０１３０】
ここで、図１１はＡＩ処理部１００の混み具合を判断する処理の流れを示すフローチャートである。
【０１３１】
図１１に示すように、制御部２０２は、混雑情報は第１のＡ１処理部１０１の情報であるかを判断する（ステップＳ１０１）。
【０１３２】
制御部２０２は、混雑情報が第１のＡ１処理部１０１の情報である場合（ステップＳ１０１のＹｅｓ）、混雑状況が第１のＡ１処理部１０１用のしきい値Ｔｈｒｅ１より大きいか（ステップＳ１０２）、混雑状況が第１のＡ１処理部１０１用のしきい値Ｔｈｒｅ２（Ｔｈｒｅ１＞Ｔｈｒｅ２）より大きいか（ステップＳ１０３）、を判定する。
【０１３３】
制御部２０２は、混雑状況が第１のＡ１処理部１０１用のしきい値Ｔｈｒｅ１より大きい場合（ステップＳ１０２のＹｅｓ）、第１のＡ１処理部１０１の混雑度合：２（高）をセットし（ステップＳ１０４）、ステップＳ１１８に進む。
【０１３４】
制御部２０２は、混雑状況が第１のＡ１処理部１０１用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きい場合（ステップＳ１０２のＮｏ、ステップＳ１０３のＹｅｓ）、第１のＡ１処理部１０１の混雑度合：１（中）をセットし（ステップＳ１０５）、ステップＳ１１８に進む。
【０１３５】
制御部２０２は、混雑状況が第１のＡ１処理部１０１用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きくない場合（ステップＳ１０２のＮｏ、ステップＳ１０３のＮｏ）、第１のＡ１処理部１０１の混雑度合：０（小）をセットし（ステップＳ１０６）、ステップＳ１１８に進む。
【０１３６】
また、制御部２０２は、混雑情報が第１のＡ１処理部１０１の情報でない場合（ステップＳ１０１のＮｏ）、混雑情報は第２のＡ１処理部１０２の情報であるかを判定する（ステップＳ１０７）。
【０１３７】
制御部２０２は、混雑情報が第２のＡ１処理部１０２の情報である場合（ステップＳ１０７のＹｅｓ）、混雑状況が第２のＡ１処理部１０２用のしきい値Ｔｈｒｅ１より大きいか（ステップＳ１０８）、混雑状況が第２のＡ１処理部１０２用のしきい値Ｔｈｒｅ２（Ｔｈｒｅ１＞Ｔｈｒｅ２）より大きいか（ステップＳ１０９）、を判定する。
【０１３８】
制御部２０２は、混雑状況が第２のＡ１処理部１０２用のしきい値Ｔｈｒｅ１より大きい場合（ステップＳ１０８のＹｅｓ）、第２のＡ１処理部１０２の混雑度合：２（高）をセットし（ステップＳ１１０）、ステップＳ１１８に進む。
【０１３９】
制御部２０２は、混雑状況が第２のＡ１処理部１０２用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きい場合（ステップＳ１０８のＮｏ、ステップＳ１０９のＹｅｓ）、第２のＡ１処理部１０２の混雑度合：１（中）をセットし（ステップＳ１１１）、ステップＳ１１８に進む。
【０１４０】
制御部２０２は、混雑状況が第２のＡ１処理部１０２用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きくない場合（ステップＳ１０８のＮｏ、ステップＳ１０９のＮｏ）、第２のＡ１処理部１０２の混雑度合：０（小）をセットし（ステップＳ１１２）、ステップＳ１１８に進む。
【０１４１】
また、制御部２０２は、混雑情報が第１のＡ１処理部１０１の情報でなく、かつ、混雑情報が第２のＡ１処理部１０２の情報でない場合（ステップＳ１０１のＮｏ、ステップＳ１０７のＮｏ）、混雑状況が第３のＡ１処理部１０３用のしきい値Ｔｈｒｅ１より大きいか（ステップＳ１１３）、混雑状況が第３のＡ１処理部１０３用のしきい値Ｔｈｒｅ２（Ｔｈｒｅ１＞Ｔｈｒｅ２）より大きいか（ステップＳ１１４）、を判定する。
【０１４２】
制御部２０２は、混雑状況が第３のＡ１処理部１０３用のしきい値Ｔｈｒｅ１より大きい場合（ステップＳ１１３のＹｅｓ）、第３のＡ１処理部１０３の混雑度合：２（高）をセットし（ステップＳ１１５）、ステップＳ１１８に進む。
【０１４３】
制御部２０２は、混雑状況が第３のＡ１処理部１０３用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きい場合（ステップＳ１１３のＮｏ、ステップＳ１１４のＹｅｓ）、第３のＡ１処理部１０３の混雑度合：１（中）をセットし（ステップＳ１１６）、ステップＳ１１８に進む。
【０１４４】
制御部２０２は、混雑状況が第３のＡ１処理部１０３用のしきい値Ｔｈｒｅ１より大きくなく、かつ、しきい値Ｔｈｒｅ２より大きくない場合（ステップＳ１１３のＮｏ、ステップＳ１１４のＮｏ）、第３のＡ１処理部１０３の混雑度合：０（小）をセットし（ステップＳ１１７）、ステップＳ１１８に進む。
【０１４５】
そして、制御部２０２は、混雑度合いをテーブルＴに上書きして更新する（ステップＳ１１８）。ここで、図１２は混雑度合いテーブルＴを例示的に示す図である。図１２に示すように、混雑度合いテーブルＴは、監視カメラ５０毎に設けられている。図１２に示す例によれば、第１のＡ１処理部１０１の混雑度合いは混雑度合：１（中）、第２のＡ１処理部１０２の混雑度合いは混雑度合：０（小）、第３のＡ１処理部１０３の混雑度合いは混雑度合：２（高）である。また、混雑度合いテーブルＴにおけるＷｏｒｓｔは、第１のＡ１処理部１０１〜第３のＡ１処理部１０３の最も大きい混雑度合いである。
【０１４６】
制御部２０２は、第１のＡ１処理部１０１〜第３のＡ１処理部１０３の最も大きい混雑度合いが混雑度合いテーブルＴのＷｏｒｓｔと異なるかを判定する（ステップＳ１１９）。
【０１４７】
制御部２０２は、第１のＡ１処理部１０１〜第３のＡ１処理部１０３の最も大きい混雑度合いが混雑度合いテーブルＴのＷｏｒｓｔと異なる場合（ステップＳ１１９のＹｅｓ）、Ｗｏｒｓｔを第１のＡ１処理部１０１〜第３のＡ１処理部１０３の最も大きい混雑度合いに上書きする（ステップＳ１２０）。
【０１４８】
制御部２０２は、第１のＡ１処理部１０１〜第３のＡ１処理部１０３の最も大きい混雑度合いが混雑度合いテーブルＴのＷｏｒｓｔと同じ場合（ステップＳ１１９のＮｏ）、上書きせずに、ステップＳ１に戻る。
【０１４９】
以上により、ＡＩ処理部１００の混み具合を判断する処理を終了する。
【０１５０】
図１０に戻り、出力制御部２０３および補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが２であるか否かを判定する（ステップＳ１１）。
【０１５１】
出力制御部２０３および補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが２である場合（ステップＳ１１のＹｅｓ）、Ｇａｔｅ２をＯＮし（ステップＳ１２）、Ｇａｔｅ３をＯＦＦし（ステップＳ１３）、Ｇａｔｅ１をＯＦＦし（ステップＳ１４）、ステップＳ１に戻る。
【０１５２】
出力制御部２０３および補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが２でない場合（ステップＳ１１のＮｏ）、ステップＳ３４：Ｗｏｒｓｔの混雑度合いが１であるか否かを判定する（ステップＳ１５）。
【０１５３】
出力制御部２０３および補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが１である場合（ステップＳ１５のＹｅｓ）、Ｇａｔｅ１をＯＮし（ステップＳ１６）、Ｇａｔｅ３をＯＦＦし（ステップＳ１７）、Ｇａｔｅ２をＯＦＦし（ステップＳ１８）、ステップＳ１に戻る。
【０１５４】
出力制御部２０３および補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが１でない場合（ステップＳ１５のＮｏ）、Ｇａｔｅ１をＯＮし（ステップＳ１９）、Ｇａｔｅ３をＯＮし（ステップＳ２０）、Ｇａｔｅ２をＯＦＦし（ステップＳ２１）、ステップＳ１に戻る。
【０１５５】
なお、ステップＳ１２〜Ｓ１４、ステップＳ１６〜Ｓ１８、ステップＳ１９〜Ｓ２１においては、Ｇａｔｅを同時にＯＮ／ＯＦＦできない場合に、全ＧａｔｅがＯＦＦになることがないような制御順になっている。ただし、ある瞬間にＧａｔｅ１とＧａｔｅ２がＯＮとなる場合は、Ｇａｔｅ２が優先される。また、ある瞬間にＧａｔｅ４とＧａｔｅ５がＯＮとなる場合は、Ｇａｔｅ５が優先される。
【０１５６】
ステップＳ２０のように、補助出力制御部２０９は、混雑度合いテーブルＴのＷｏｒｓｔの混雑度合いが１でない場合にＧａｔｅ３をＯＮすることにより、ＡＩ処理部１００の混み具合が十分に少ない場合に、転送スキップされた画像をＡＩ処理部１００に転送し、遅れながらもＡＩ処理部１００におけるＡＩ処理を実行させることができる。
【０１５７】
なお、本実施形態においては、出力制御部２０３は、データ生成装置である監視カメラ５０毎の画像データの出力を制御するようにしたが、これに限るものではなく、複数の監視カメラ５０の全体の画像データの出力を制御するようにしてもよい。
【０１５８】
加えて、表示制御部２０５は、キューＱ２に蓄積された画像データを監視カメラ５０毎に区別してモニタ２５に同時に表示する。ここで、複数の監視カメラ５０で撮像された画像データを同時にモニタ２５に表示する場合、監視カメラ５０間でのＡＩ処理の遅延の大小がユーザに目に見える形で表れてしまう、という課題がある。
【０１５９】
ここで、図１３はモニタ２５における表示例を示す図である。表示制御部２０５は、タイムスタンプが付されたＪＳＯＮ形式のＡＩ処理結果および不審者判定部２０８での不審者判定結果を参照し、ＡＩ処理部１００でＡＩ処理された画像データに時間を合わせて他の画像データをモニタ２５に表示することで、表示画像の時間軸のずれを抑制することができる。図１３に示すように、モニタ２５に表示されている各画像データの時間が同じになっている。
【０１６０】
これにより、複数の監視カメラ５０で撮像された画像データを、同時にモニタ２５に表示する場合、監視カメラ５０間でのＡＩ処理の遅延の大小がユーザに目に見える形で表れてしまうことがなくなる。
【０１６１】
このように本実施形態によれば、ＡＩのリアルタイム処理を行う際に、演算量が大きくなってもシステム全体のリアルタイム動作を維持することができる。
【０１６２】
また、本実施形態によれば、ＡＩ処理をリアルタイムに継続的に行いながらも、その維持のために犠牲となった（ＡＩ処理できなかった）画像／フレームについても、ＡＩ処理の結果を得ることができる。
【０１６３】
さらに、本実施形態によれば、リアルタイムにＡＩ処理できたかどうかも記録しておくことで、リアルタイム処理に向けたＡＩ処理プロセッサの性能が十分であるかを測ることができる。
【０１６４】
さらにまた、本実施形態によれば、特定の監視カメラの画像データに対するＡＩ処理を取りやめることによって、トラフィックの軽減、ＡＩ処理部１００の演算負荷の軽減を行うことができる。トラフィック軽減により、システム全体のスループットを向上させることができ、望まないスキップ処理を減らすことができる。また、他の監視カメラ５０で映り込む人物が多いなど負荷が高くなってしまう場合に、ＡＩ処理部１００の演算負荷軽減により得られたコンピュータリソースを割り当てることができる。
【０１６５】
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１６６】
例えば、図４に示す構成においては、ＰＣＩｅブリッジコントローラ３は８つのスロット３４−１〜３４−８を有しているが、これに限定されるものではなく種々変形して実施することができる。すなわち、ＰＣＩｅブリッジコントローラ３は７つ以下もしくは９つ以上のスロット３４を備えてもよい。
【０１６７】
上述の実施形態では、各部のＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、Ｉ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステムまたは１つの装置）で高速にデータを転送できる汎用のバスであってよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースのいずれであってもよい。
【０１６８】
Ｉ／Ｏインタフェースは、ポイント・ツー・ポイント接続ができ、データをパケットベースでシリアル転送可能な構成でよい。尚、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１または複数のポートを有するルート・コンプレックス、Ｉ／Ｏデバイスであるエンド・ポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【０１６９】
１        情報処理システム
２−１    情報処理装置
５０      監視カメラ
１００    ＡＩ処理部
２０３    出力制御部
２０６    判定部
２０７    動体検知部
【図１】
2020107268.tif 000003
【図２】
2020107268.tif 000004
【図３】
2020107268.tif 000005
【図４】
2020107268.tif 000006
【図５】
2020107268.tif 000007
【図６】
2020107268.tif 000008
【図７】
2020107268.tif 000009
【図８】
2020107268.tif 000010
【図９】
2020107268.tif 000011
【図１０】
2020107268.tif 000012
【図１１】
2020107268.tif 000013
【図１２】
2020107268.tif 000014
【図１３】
2020107268.tif 000015