(57)【要約】［課題］負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる解析ノードを得る。［解決手段］解析ノードを、解析実行手段１と、内容変動観測手段２と、資源割当手段３を備える構成とする。解析実行手段１は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段２は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段３は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。
2018097058.tif 000002
【特許請求の範囲】
【請求項１】
前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する解析実行手段と、
前記前段工程における処理対象データの内容変化を内容変動観測情報として観測する内容変動観測手段と、
前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して、前記後段工程に割り当てられている前記計算資源を変更する資源割当手段と、
を備えることを特徴とする解析ノード。
【請求項２】
前記内容変動観測手段は、前記前段工程における解析処理の結果のうち、前記前段工程が前記後段工程へ出力する解析結果と、前記前段工程が内部的に保持する内部情報とを観測し、
前記資源割当手段は、前記解析結果と前記内部情報を基に前記後段工程の処理負荷の変動を予測することを特徴とする請求項１に記載の解析ノード。
【請求項３】
前記内容変動観測情報は、解析対象の映像中に映っている対象物の数を基にした情報であり、
前記解析結果は、品質基準を満たした対象物であり、前記内部情報は、前記品質基準を満たさない対象物であることを特徴とする請求項２に記載の解析ノード。
【請求項４】
前記後段工程の前記解析実行手段は、複数の解析手段を備え、
前記資源割当手段は、前記解析手段の数を増減することで、前記後段工程への前記計算資源の割り当てを変更することを特徴とする請求項１から３いずれかに記載の解析ノード。
【請求項５】
前記解析実行手段が解析処理を実行している際の負荷を負荷観測情報として観測する負荷観測手段をさらに備え、
前記資源割当手段は、前記内容変動観測情報と、前記負荷観測情報とを基に、前記後段工程の処理負荷の変動を予測することを特徴とする請求項１から４いずれかに記載の解析ノード。
【請求項６】
前記負荷観測情報は、前記解析実行手段における前記計算資源の消費量として観測されることを特徴とする請求項５に記載の解析ノード。
【請求項７】
前記解析実行手段は、解析処理を他の解析ノードに要求するタスク送信手段をさらに備え、
前記資源割当手段は、前記計算資源の不足を検出した場合に、前記タスク送信手段を介して他の解析ノードへ前記後段工程の解析処理の要求を送信することを特徴とする請求項１から６いずれかに記載の解析ノード。
【請求項８】
請求項７に記載の解析ノードからなる第１のノードと
入力されたデータの解析処理を行う第２のノードと、
を備え、
前記第１のノードの前記資源割当手段は、前記計算資源の不足を検出した場合に、前記タスク送信手段を介して前記第２のノードに前記後段工程の解析処理の要求を送信し、
前記第２のノードは、前記第１のノードから要求された前記後段工程の解析処理を実行することを特徴とする解析システム。
【請求項９】
前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する際に、
前記前段工程における処理対象データの内容変化を内容変動観測情報として観測し、
前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して前記後段工程に割り当てられている前記計算資源を変更することを特徴とするリソース管理方法。
【請求項１０】
前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、前記工程にそれぞれ割り当てられた計算資源によって実行する際に、
前記前段工程の解析処理から対象データの内容変動を内容変動観測情報として観測する内容変動観測処理と、
前記内容変動観測情報を基に前記後段工程の処理負荷の変動を予測して前記後段工程に割り当てられている前記計算資源を変更する資源割当処理と、
をコンピュータに実行させることを特徴とするリソース管理プログラムを記録したコンピュータ読み取り可能なプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解析処理に関するものであり、特に、複数段階の解析処理を行う際の技術に関するものである。
【背景技術】
【０００２】
映像解析システムなどでは継続的に生じるデータを短時間で解析することが要求され得る。また、リアルタイム性が要求される用途では、解析対象となるデータが増大した場合にも、スループットを低下させずに解析処理を行うことが要求される。そのため、映像解析システムなどでは解析を行うサーバの計算資源、すなわち、リソースを解析処理に適切に割り当てる必要がある。そのような映像解析リソース管理システムの一例として、非特許文献１のような技術が開示されている。【０００３】
図１４は、非特許文献１に示されている映像解析リソース管理システムの構成の概要を示したものである。非特許文献１の映像リソース管理システムは、配置管理サーバ(Ｎｉｍｂｕｓ)と、解析ワーカノード群(Ｗｏｒｋｅｒ  ｎｏｄｅ）と、スケジューラプラグイン(Ｓｃｈｅｄｕｌｅｒ  ｐｌｕｇｉｎｓ）を備えている。また、非特許文献１の映像リソース管理システムは、解析実行ワーカプロセス(Ｗｏｒｋｅｒ  Ｐｒｏｃｅｓｓ)と、性能情報モニタスレッド(Ｍｏｎｉｔｏｒｉｎｇ  ｔｈｒｅａｄ)と、性能情報蓄積部(Ｐｅｒｆｏｒｍａｎｃｅ  ｌｏｇ)をさらに備えている。【０００４】
図１４の映像解析リソース管理システムでは、性能情報モニタスレッドが、解析実行ワーカプロセスのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用時間などの性能情報を収集し、性能情報蓄積部へ蓄積する。図１４の映像解析リソース管理システムでは、スケジューラプラグインは、収集された性能情報を基に、最適なプロセス数やスレッド数を定期的に算出し新しい配置プランを生成する。図１４の映像解析リソース管理システムでは、配置管理サーバは、全解析ワーカの解析実行ワーカプロセスを停止し、生成された新しい配置プランに基づいて、新しい解析実行ワーカプロセスを全解析ワーカで起動する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｌｅｏｎａｒｄｏ  Ａｎｉｅｌｌｏ  ｅｔ．  ａｌ，  “Ａｄａｐｔｉｖｅ  Ｏｎｌｉｎｅ  Ｓｃｈｅｄｕｌｉｎｇ  ｉｎ  Ｓｔｏｒｍ”，  ＤＥＢＳ  ’１３  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ｔｈｅ  ７ｔｈ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ，  Ａｓｓｏｃｉａｔｉｏｎ  ｆｏｒ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｒｙ，  ｐ．２０７−ｐ．２０９
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１の技術は次のような点で十分ではない。非特許文献１の技術では、生成される新しい配置プランに対応するために解析実行ワーカプロセスの停止および起動が行われ、再配置中に定期的に解析処理の一時停止が生じる。また、定期的な再配置処理では、頻繁に負荷変動が生じた際にリソースの過不足が生じ、遊休リソースの発生によるスループットの低下や、リソース待ちの行列の発生による遅延が生じ得る。そのため、非特許文献１の技術では、負荷変動が頻繁に発生するシステムでは、リアルタイム性と高スループットの両立を行うことができない。【０００７】
本発明は、上記の課題を解決するため、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる解析ノード、リソース管理方法およびリソース管理プログラムを得ることを目的としている。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明の解析ノードは、解析実行手段と、内容変動観測手段と、資源割当手段を備えている。解析実行手段は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。【０００９】
本発明のリソース管理方法は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する際に、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。本発明のリソース管理方法は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して後段工程に割り当てられている計算資源を変更する。【００１０】
本発明のリソース管理プログラムは、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する際に、内容変動観測処理と、資源割当処理をコンピュータに実行させる。内容変動観測処理は、複数の工程からなる解析処理について、前段工程の解析処理から対象データの内容変動を観測する。資源割当処理は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して後段工程に割り当てられている計算資源を変更する。
【発明の効果】
【００１１】
本発明によると、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態の解析ノードの構成を示すブロック図である。
【図４】本発明の第２の実施形態の負荷観測データの例を示す図である。
【図５】本発明の第２の実施形態の内容観測データの例を示す図である。
【図６】本発明の第２の実施形態における動作フローを示す図である。
【図７】本発明の第２の実施形態における動作フローを示す図である。
【図８】本発明の第２の実施形態における入力データの例を模式的に示した図である。
【図９】本発明の第２の実施形態の負荷変動の予測処理におけるデータの例を示した図である。
【図１０】本発明の第２の実施形態における処理負荷と資源割当の例を示した図である。
【図１１】本発明の第３の実施形態の構成の概要を示す図である。
【図１２】本発明の第３の実施形態の解析ノードの構成を示すブロック図である。
【図１３】本発明の第３の実施形態における動作フローを示す図である。
【図１４】本発明と対比した構成の解析システムの例を示す図である。
【発明を実施するための形態】
【００１３】
［第１の実施形態］
［第１の実施形態の構成］
本発明の第１の実施形態について図を参照して詳細に説明する。図１は、本実施形態の解析ノードの構成の概要を示したものである。本実施形態の解析ノードは、解析実行手段１と、内容変動観測手段２と、資源割当手段３を備えている。解析実行手段１は、前段工程および後段工程を少なくとも含む複数の工程からなる解析処理を、工程にそれぞれ割り当てられた計算資源によって実行する。内容変動観測手段２は、前段工程における処理対象データの内容変化を内容変動観測情報として観測する。資源割当手段３は、内容変動観測情報を基に後段工程の処理負荷の変動を予測して、後段工程に割り当てられている計算資源を変更する。
【００１４】
［第１の実施形態の効果］
本実施形態の解析ノードは、内容変動観測手段２において、前段工程の内容変化を内容変動観測情報として観測している。また、本実施形態の解析ノードは、資源割当手段３において内容変動観測情報を基に後段工程の負荷の変動を予測して、予測結果を基に後段工程に割り当てられている計算資源を変更している。このように、前段工程の変化を基に、後段工程の負荷を予測して、後段工程への計算資源の割り当てを変更することで、負荷が変動した際にスループットを低下させることなく、解析処理を行うことができる。また、本実施形態の解析ノードは、解析処理を行っている際に前段工程の変化を基に、後段工程への計算資源の割り当てを動的に変更することができるので、計算資源の割り当ての変更を行う際に解析処理の停止を必要としない。その結果、本実施形態の解析ノードを用いることで、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
【００１５】
［第２の実施形態］
［第２の実施形態の構成］
本発明の第２の実施形態について図を参照して詳細に説明する。図２は、本実施形態の解析システムの構成を示したものである、本実施形態の解析システムは、解析ノード１０と、データ取得部２０を備えている。
【００１６】
本実施形態の解析システムは、データ取得部２０から解析ノード１０に入力されたデータの解析を、解析ノード１０において前段工程と後段工程の２段階の解析処理によって行う。本実施形態の解析システムは、例えば、入力された映像データから人の顔を検出し、さらに検出した顔の特徴を抽出する映像解析システムとして用いられる。
【００１７】
解析ノード１０の構成について説明する。図３は、本実施形態の解析ノード１０の構成を示すブロック図である。解析ノード１０は、解析実行部１００と、負荷観測部２００と、内容変動観測部３００と、観測データ記憶部４００と、資源割当部５００を備えている。
【００１８】
解析実行部１００は、データ取得部２０から入力されたデータの解析処理を行う。解析実行部１００は、前段解析部１１０と、後段解析部１２０をさらに備えている。前段解析部１１０は、複数の解析ワーカ１１１をさらに備えている。また、後段解析部１２０は、複数の解析ワーカ１２１をさらに備えている。図３では、解析ワーカ１１１および解析ワーカ１２１をそれぞれ２つずつ備えている例を示しているが、解析ワーカ１１１および解析ワーカ１２１は、単数であってもよく、また、３つ以上であってもよい。
【００１９】
解析実行部１００は、前段解析部１１０の解析ワーカ１１１において、入力されたデータに前段工程として１次処理を施す。また、解析実行部１００は、後段解析部１２０の解析ワーカ１２１において、１次処理の処理結果に後段工程として２次処理を施して最終結果として出力する。前段解析部１１０の解析ワーカ１１１は、１次処理の処理結果のデータのうち所定の品質基準を満たしたデータのみを後段解析部１２０に出力する。所定の品質基準は、後段工程における解析処理を正常に行うことができるデータであるかを判断する基準として設定されている。
【００２０】
本実施形態の解析システムが、例えば、映像解析システムとして用いられているとき、解析ワーカ１１１は、前段工程として、データ取得部２０から映像データから、映像に映っている人の顔を検出する。前段解析部１１０の解析ワーカ１１１は、検出した顔のうち基準以上の大きさの顔のデータを解析結果として後段解析部１２０に出力する。
【００２１】
前段解析部１１０が解析結果のデータとして出力する顔の大きさを判断する際の基準は、後段解析部１２０における後段工程において顔の特徴量を抽出するために十分な大きさとしてあらかじめ設定されている。すなわち、本実施形態の解析システムが映像解析システムとして用いられているとき、所定の品質基準は、顔の大きさとして設定されている。
【００２２】
後段解析部１２０は、解析ワーカ１２１において前段解析部１１０から入力されたデータの後段工程の解析処理を行って、処理結果を最終結果として出力する。本実施形態の解析システムが映像解析システムとして用いられているとき、後段解析部１２０の解析ワーカ１２１は、後段工程として、解析ワーカ１１１において検出された顔から顔の特徴量を抽出する。すなわち、前段解析部１１０は、解析タスクとして入力された映像データから顔の検出を行う。また、後段解析部１２は、解析タスクとして検出された顔から顔の特徴量のデータの抽出を行う。
【００２３】
解析実行部１００は、複数のコアを有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、半導体記憶装置およびＣＰＵコアで実行するプログラムを記録するハードディスクドライブ等によって構成されている。ＣＰＵコアで実行するプログラムとしては、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）および解析処理用のプログラムが記録されている。ＯＳおよび解析処理用のプログラムは、不揮発性の半導体記憶装置に記録されていてもよい。前段解析部１１０および後段解析部１２０は、それぞれに割り当てられたＣＰＵコアにおいてデータの解析処理を行う。また、本実施形態の解析実行部１００は、第１の実施形態の解析実行手段１に相当する。
【００２４】
負荷観測部２００は、解析実行部１００の計算資源の負荷を観測し、観測した結果を負荷観測データとして観測データ記憶部４００に保存する。負荷観測部２００は、計算資源の負荷として、例えば、解析実行部１００の計算資源であるＣＰＵコアやメモリの消費量を観測する。ＣＰＵコアの消費量は、例えば、ＣＰＵコアの使用時間として観測される。また、メモリの消費量は、解析処理に使用している記憶容量の値として観測される。負荷観測部２００は、負荷観測データとして解析処理のスループットを観測してもよい。
【００２５】
図４は、映像解析システムにおいて負荷観測部２００が観測した負荷観測データの例を示したものである。図４の負荷観測データは、フェーズＩＤ、カメラＩＤ、ＷｏｒｋｅｒＩＤ、消費ＣＰＵ、消費メモリおよび観測日時の情報によって構成されている。フェーズＩＤは、前段工程と後段工程のどちらの処理を行っているかを示している。図４では、前段工程の処理が「顔検出」、後段工程の処理が「顔特抽」として示されている。フェーズＩＤには、実行内容を示す文字列、数値またはフラグなどを用いることができる。また、フェーズＩＤには、前段または後段を示すフラグを用いてもよい。カメラＩＤは、解析対象の映像データの送信元のカメラの識別子を示している。図４では、カメラＩＤが「１」と「２」の２台のカメラから映像データが入力されている。
【００２６】
ＷｏｒｋｅｒＩＤは、解析ワーカ１１１および解析ワーカ１２１の識別子を示している。ＷｏｒｋｅｒＩＤの識別子には、ＯＳのプロセスＩＤ、起動時に割り振られたシーケンス番号または文字列などを用いることもできる。消費ＣＰＵおよび消費メモリは、ＣＰＵコアおよびメモリの消費量をそれぞれ示している。観測日時は、負荷観測データを観測した日時を示している。
【００２７】
内容変動観測部３００は、前段解析部１１０における解析対象データの内容変化を観測し、観測した結果を内容観測データとして観測データ記憶部４００に保存する。内容変動観測部３００は、前段解析部１１０が後段解析部１２０に出力する解析結果のデータ数と、内部的に保持している解析結果のデータ数を取得し、観測データ記憶部４００に保存する。本実施形態では、前段解析部１１０が後段解析部１２０に出力せずに内部的に保持しているデータを内部情報と呼ぶ。また、本実施形態の内容変動観測部３００は、第１の実施形態の内容変動観測手段２に相当する。
【００２８】
解析システムが映像解析システムの場合、内部情報は、前段解析部１１０が画像から検出した顔のうち、基準よりも小さいために後段解析部１２０の処理に送られない顔の検出結果が該当する。
【００２９】
図５は、映像解析システムにおける内容観測データの例を示したものである。図５の内容観測データは、フェーズＩＤ、カメラＩＤ、項目、解析結果、内部情報および観測日時の情報によって構成されている。フェーズＩＤは、観測対象の処理内容を示している。フェーズＩＤの「顔検出」は、前段工程における顔の検出処理を示している。フェーズＩＤには、解析内容を示す文字列に代えて、数値やフラグなどをもちいてもよい。カメラＩＤは、解析用の映像データの送信元のカメラの識別子を示している。項目は、観測している映像データの属性を示している。映像データに含まれる顔の数を処理対象とするので、図５では、項目として「対象数」が設定されている。解析結果は、前段解析部１１０の解析ワーカ１１１が後段解析部１２０に出力するデータに含まれるデータ数を示している。内部情報は、前段解析部１１０の解析ワーカ１１１が後段解析部１２０に出力しないデータ数を示している。解析結果および内容情報は、数値データ以外であってもよい。解析結果および内容情報は、例えば、行列やベクトルなどの値であってもよい。観測日時は、内容観測データを観測した日時を示している。
【００３０】
観測データ記憶部４００は、内容変動観測部３００が前段解析部１１０から取得した解析対象データの内容変化の情報を保存する。内容変化とは、例えば、解析結果および内容情報のデータ数の変化のことをいう。また、観測データ記憶部４００は、負荷観測部２００が観測した解析実行部１００の負荷観測データを保存する。観測データ記憶部４００は、例えば、半導体記憶装置によって構成されている。観測データ記憶部４００は、ハードディスクドライブ等の他の記憶装置によって構成されていてもよい。
【００３１】
資源割当部５００は、前段解析部１１０で行われている解析処理の変化を観測した内容観測データを基に、後段解析部１２０へのＣＰＵコアやメモリ等の計算資源の割り当てを動的に変更する機能を有する。資源割当部５００は、負荷変動予測部５０１と、資源割当計画部５０２をさらに備えている。
【００３２】
負荷変動予測部５０１は、内容観測データと、負荷観測データを基に、後段解析部１２０で発生する負荷を予測する。負荷変動予測部５０１は、観測データ記憶部４００から内容観測データおよび負荷観測データを取得し、後段解析部１２０の負荷を予測し、負荷情報として資源割当計画部５０２に出力する。
【００３３】
資源割当計画部５０２は、負荷情報を基に後段解析部１２０に割り当てられている計算資源量を変更する。資源割当計画部５０２は、例えば、解析ワーカ１２１に対応するＯＳのプロセス数を増減させる。解析ワーカ１２１に割り当てられるＣＰＵコアの数やメモリの容量などを変更することで、資源の最適な割り当てを行うことができる。また、本実施形態の資源割当部５００は、第１の実施形態の資源割当手段３に相当する。
【００３４】
負荷観測部２００、内容変動観測部３００および資源割当部５００は、ＣＰＵ、半導体記憶装置および各処理を実行するプログラムが記録されたハードディスクドライブ等によって構成されている。負荷観測部２００、内容変動観測部３００および資源割当部５００は、それぞれ独立したユニットであってもよく、また、同一のユニットにおいて動作してもよい。また、負荷観測部２００、内容変動観測部３００および資源割当部５００を構成するＣＰＵや記憶装置は、解析実行部１００および観測データ記憶部４００のいずれか、または、両方と同一のユニットであってもよい。
【００３５】
データ取得部２０は、解析用データを取得し、取得したデータを解析ノード１０に送る。解析システムが映像解析システムであるとき、データ取得部２０は、例えば、映像を撮影するカメラが該当する。カメラによって撮影された映像データは、通信回線を介して解析ノード１０に伝送される。本実施形態の解析システムは、データ取得部２０を２つ備えている。データ取得部２０の数は、２つ以外であってもよい。
【００３６】
［第２の実施形態の動作］
本実施形態の解析システムの動作について説明する。始めに解析システムの起動時の動作について説明する。図６は、本実施形態の解析システムにおけるシステム起動動作を示したものである。
【００３７】
作業者の操作等によって解析システムの起動が行われ解析ノード１０が起動すると、解析実行部１００は、解析ワーカ１１１と、解析ワーカ１２１を初期配置で起動する（ステップＡ１）。初期配置は、解析システムの仕様等に基づいてあらかじめ設定されている。
【００３８】
解析ワーカ１１１および解析ワーカ１２１を初期配置で起動すると、解析実行部１００は、データ取得部２０から入力される解析対象のデータの解析を行う。解析実行部１００に解析対象のデータが入力されると、前段解析部１１０の解析ワーカ１１１は、前段工程として、入力されたデータの解析を行う。前段解析部１１０は、解析結果を前段工程における１次処理の結果として後段解析部１２０に送る。
【００３９】
後段解析部１２０に１次処理の処理結果が入力されると、後段解析部１２０の解析ワーカ１２１は、後段工程として、１次処理の処理結果の解析を行う。後段解析部１２０は、解析結果を後段工程における２次処理の結果、すなわち、最終結果として出力する。
【００４０】
解析実行部１００は、入力される解析対象のデータの解析および出力を、解析対象のデータが入力されるごとに繰り返し行う。
【００４１】
次に、本実施形態の解析システムにおいて計算資源の割り当てを変更する際の動作について説明する。図７は、本実施形態の解析システムにおいて計算資源の割り当てを動的に変更する際の動作フローを示したものである。
【００４２】
解析実行部１００が入力されたデータの解析および出力を行っている際に、負荷観測部２００は、解析実行部１００の前段解析部１１０および後段解析部１２０の負荷を監視する。負荷観測部２００は、前段解析部１１０および後段解析部１２０の負荷の情報を負荷観測データとして収集する（ステップＢ１）。負荷観測部２００は、収集した負荷観測データを観測データ記憶部４００に保存する。
【００４３】
また、内容変動観測部３００は、前段解析部１１０から解析結果と内部情報を内容観測データとして収集する（ステップＢ２）。内容変動観測部３００は、収集した内容観測データを観測データ記憶部４００に保存する。
【００４４】
負荷観測データおよび内容観測データが保存されると、負荷変動予測部５０１は、観測データ記憶部４００に保存された負荷観測データおよび内容観測データを基に、後段解析部１２０の負荷変動を予測する（ステップＢ３）。
【００４５】
負荷変動予測部５０１は、例えば、過去の負荷変動の履歴を基にした学習モデルベースの予測によって後段解析部１２０の負荷変動の予測を行う。また、負荷変動予測部５０１は、あらかじめ設定されたルールに基づくルールベースでの予測によって後段解析部１２０の負荷変動の予測を行ってもよい。負荷変動予測部５０１は、負荷変動の予測を行うと、予測結果を資源割当計画部５０２に送る。
【００４６】
資源割当計画部５０２は、負荷変動の予測結果を受け取ると、後段解析部１２０内の解析ワーカ１２１の数と解析ワーカ１２１への計算資源の割り当てを変更する（ステップＢ４）。資源割当計画部５０２によって後段解析部１２０の構成が再設定されると、解析実行部１００は、再設定された構成に基づいて、入力される解析対象のデータの解析および出力を行う。解析システムが動作しているとき（ステップＢ５でＮｏ）、解析ノード１０の各部位は、ステップＢ１からの処理を繰り返し行う。また、解析システムが停止したとき（ステップＢ５でＹｅｓ）、解析ノード１０の各部位は動作を停止する。
【００４７】
次に、本実施形態の解析システムを映像解析システムとして用いた場合を例に、解析システムの動作について、より具体的に説明する。以下では、データ取得部２０である２台のカメラから入力される映像データについて人の顔の検出と特徴量抽出の２段階の処理を、解析ノード１０である６つのコアを有するＣＰＵを備えたサーバで処理する場合の動作を例に説明を行う。また、以下の説明では、前段解析部１１０において顔検出処理を行う解析ワーカ１１１は、初期設定として、各カメラについて１プロセス、合計２プロセス設定されているとする。また、後段解析部１２０において顔の特徴量の抽出処理を行う解析ワーカ１２１は、初期設定として、カメラ１について２プロセス、カメラ２について３プロセスの合計５プロセス設定されているとする。また、各プロセスはＣＰＵコアを１つまで使用できるものする。
【００４８】
カメラとして備えられているデータ取得部２０から映像データが解析ノード１０として備えられているサーバに入力されると、解析実行部１００は、初期設定に基づいて映像データの解析を行う。初期設定に基づいて、解析実行部１００は、解析実行部１００が入力されたデータの解析を行っている際に、内容変動観測部３００は、前段解析部１１０から内容観測データを収集し、観測データ記憶部４００に保存する。
【００４９】
図８は、解析ノード１０に入力される映像に含まれる映像フレームの例を模式的に示したものである。図８のような映像フレームを処理する場合には、前段解析部１１０は、例えば、画像の中の通路８０１を通行する人の顔を検知する。
【００５０】
前段解析部１１０は、検知した顔８０２および顔８０３のうち、カメラに近く十分な大きさで写っている顔８０３について、顔照合などの入力データとして品質が十分であると判断する。顔照合などの入力データとして品質が十分であると、前段解析部１１０は、顔８０３を検知した情報を、顔の特徴量の抽出に用いるための解析結果として後段解析部１２０に送る。また、前段解析部１１０は、カメラから遠く小さく写っている顔８０２について、顔照合などの入力データとして不適合と判断し、後段解析部１２０には送られない。前段解析部１１０は、後段解析部１２０に送らない顔８０２のデータ数を、内部情報として保持する。
【００５１】
前段解析部１１０が図８の画像について上記のような処理を行ったとき、内容変動観測部３００は、十分な大きさで写っている顔８０３の数である５をカメラ１についての解析結果として取得する。また、内容変動観測部３００は、カメラから遠く小さく写っている顔８０２の数である１２をカメラ１についての内部情報として取得する。内容変動観測部３００は、解析結果および内部情報の数を取得すると、取得した解析結果および内部情報の数を内部観測データとして観測データ記憶部４００に保存する。
【００５２】
また、負荷観測部２００は、解析実行部１００内の解析ワーカ１１１および解析ワーカ１２１から負荷情報を収集する。負荷観測部２００は、収集した負荷情報を観測データ記憶部４００に負荷観測データとして保存する。
【００５３】
図４の例では、前段解析部１１０の解析ワーカ１１１である「Ｗｏｒｋｅｒ  ＩＤ＝顔検出＿１−１」プロセスが、ＣＰＵコアを７８パーセント消費し、７３２ＭＢのメモリを消費している。サーバは、６コアのＣＰＵによって構成されているので、ＣＰＵの消費量は６００パーセント以下である必要がある。図４では、解析ワーカ１１１および解析ワーカ１２１において実行される５プロセスのＣＰＵコアの使用率の合計は４９２パーセントである。そのため、図４の例ではＣＰＵコアの使用率に１０８パーセントの余剰がある。
【００５４】
次に、負荷変動予測部５０１は、現時刻ＴよりΔｔ時間前からの内容観測データを観測データ記憶部４００から取得する。負荷変動予測部５０１は、取得した内容観測データを基に、内容変化を予測する。図９は、モデルベースで予測を行う場合の例を概念図として示している。
【００５５】
図９の例では、負荷変動予測部５０１は、負荷変動を表現する複数のモデル関数ｆ１（Ｒ，Ｉ）からｆＮ（Ｒ，Ｉ）を保持している。Ｒは、内容観測データ内の解析結果のデータ数である。また、Ｉは、内容観測データ内の内部情報のデータ数である。
【００５６】
現時刻ＴからΔｔ時間前からの内部観測データを基に、負荷変動予測部５０１は、直近の内容変動を最もよく表現するモデルｆｎ（Ｒ，Ｉ）を選択する。内容変動を最もよく表現するモデルｆｎ（Ｒ，Ｉ）を選択すると、負荷変動予測部５０１は、現時刻Ｔにおける解析結果のデータ数Ｒ＝５と、内部情報のデータ数Ｉ＝１２をモデルの引数としてｆｎ（５，１２）を計算する。負荷変動予測部５０１は、時刻Ｔ＋１以降の後段解析部１２０における解析対象のデータ数を予測する。また、負荷変動予測部５０１は、カメラ２についても同様の方法で後段解析部１２０における負荷を予測する。負荷変動予測部５０１は後段解析部１２０における負荷を予測すると、予測結果を資源割当計画部５０２に送る。
【００５７】
負荷変動予測部５０１は、負荷変動の予測を、上記のようなモデルベースの手法に代えて、ルールベースなどの他の予測手法によって行ってもよい。
【００５８】
負荷変動予測部５０１から負荷変動の予測結果を受け取ると、資源割当計画部５０２は、観測データ記憶部４００が保存している負荷観測データと、負荷変動の予測結果の負荷予測値を基に、後段解析部１２０における解析ワーカ１２１の数の最適値を算出する。
【００５９】
図１０は、後段解析部１２０において解析を行うデータ数および解析ワーカ１２１の数の実数と予測値の例を模式的に示したものである。図１０において、負荷変動予測部５０１は、時刻Ｔ以降においてカメラ１の負荷の増加を予測している。しかし、図４に示す負荷観測データでは、既にカメラ１の顔特徴量の抽出処理にＣＰＵコアの１７９パーセントを消費している。プロセス２つに割り当てられたＣＰＵコアの使用可能量２００パーセントに対して、既に１７９パーセント消費しているため、増加する負荷に耐えられない可能性が高い。
【００６０】
一方で、図１０に示すように、カメラ２については、時刻Ｔ以降において、負荷の減少が予測されている。カメラ２の顔特徴量の抽出処理において必要なＣＰＵコアの消費量は１６４パーセントである。そのため、カメラ２の顔特徴量の抽出処理において必要なＣＰＵコアの消費量はプロセス３つに割り当てられたＣＰＵコアの使用可能量３００パーセントに対して余裕がある。このようなとき、資源割当計画部５０２は、時刻Ｔ以降の処理において、カメラ１の解析ワーカ１２１を１プロセス増加し、カメラ２の解析ワーカ１２１を１プロセス削減する。
【００６１】
このように、前段解析部１１０において行われる処理を監視して、後段解析部１２０の解析ワーカ１２１の構成を動的に見直すことで、後段解析部１２０における処理を効率的に行うことができる。
【００６２】
［第２の実施形態の効果］
本実施形態の解析システムでは、資源割当部５００が前段解析部１１０の内容変動観測データを基に、後段解析部１２０の負荷を予測している。また、資源割当部５００は、負荷の予測を基に、後段解析部１２０の解析ワーカの数だけを増減させている。そのため、本実施形態の解析システムは、計算資源の割り当てを変更する際に、解析ノード１０を停止させることなく、計算資源の割り当てを最適化することができる。
【００６３】
また、本実施形態の解析システムでは、内容変動観測部３００が解析対象の内容の変動を観測している。また、資源割当部５００は、内容の変動の観測結果を基に、後段解析部１２０の負荷を予測している。よって、資源割当部５００は、実際に後段解析部１２０の負荷が増加または減少する前に、解析ワーカ１２１の数を最適な数に変更することできる。そのため、本実施形態の解析システムは、負荷変動が頻繁に発生するシステムにおいて、リアルタイム性と高スループットを両立することができる。すなわち、本実施形態の解析システムは、負荷変動に対応して計算資源を適切に管理し、高スループットで解析処理を継続的に行うことができる。
【００６４】
［第３の実施形態］
［第３の実施形態の構成］
本発明の第３の実施形態について図を参照して詳細に説明する。図１１は、本実施形態の解析システムの構成を示したものである、本実施形態の解析システムは、第１の解析ノード３０と、第２の解析ノード４０と、データ取得部２０を備えている。データ取得部２０の構成は、第２の実施形態と同様である。
【００６５】
本実施形態の解析システムは、第１の解析ノード３０において後段工程に十分な計算資源の割り当てを行えないとき、第２の解析ノード４０において解析処理の一部を分散処理することを特徴する。本実施形態の解析システムは、第２の実施形態と同様に、入力された映像データから人の顔を検出し、さらに検出した顔の特徴を抽出する映像解析システムなどに用いることができる。
【００６６】
第１の解析ノード３０の構成について説明する。図１２は、本実施形態の第１の解析ノード３０の構成を示すブロック図である。第１の解析ノード３０は、解析実行部６００と、負荷観測部２００と、内容変動観測部３００と、観測データ記憶部４００と、資源割当部７００を備えている。
【００６７】
本実施形態の負荷観測部２００、内容変動観測部３００および観測データ記憶部４００の構成と機能は、第２の実施形態の同名称の部位と同様である。
【００６８】
解析実行部６００は、データ取得部２０から入力されたデータの解析を行う。解析実行部６００は、前段解析部１１０と、後段解析部６２０をさらに備えている。前段解析部１１０は、複数の解析ワーカ１１１をさらに備えている。本実施形態の前段解析部１１０および解析ワーカ１１１の構成と機能は、第２の実施形態の同名称の部位と同様である。
【００６９】
後段解析部６２０は、複数の解析ワーカ１２１と、タスク送信部６３０をさらに備えている。本実施形態の解析ワーカ１２１の構成と機能は、第２の実施形態の解析ワーカ１２１と同様である。
【００７０】
タスク送信部６３０は、資源割当計画部７０２の制御に基づいて、他の解析ノードに解析タスクを送信する機能を有する。タスク送信部６３０は、資源割当計画部７０２が自装置の後段解析部６２０で処理しきれないと判断した解析タスクを、資源割当計画部７０２からの送信指示に基づいて、第２の解析ノード４０に送信する。
【００７１】
解析実行部６００は、第２の実施形態の解析実行部１００と同様に、複数のコアを有するＣＰＵ、半導体記憶装置およびＣＰＵコアで実行するプログラムを記録するハードディスクドライブ等によって構成されている。
【００７２】
資源割当部７００は、負荷変動予測部５０１と、資源割当計画部７０２を備えている。本実施形態の負荷変動予測部５０１の構成と機能は、第２の実施形態の負荷変動予測部５０１と同様である。
【００７３】
資源割当計画部７０２は、第２の実施形態の資源割当計画部５０２と同様の機能を有する。また、資源割当計画部７０２は、解析タスクの処理に必要な計算資源が自装置の後段解析部６２０に割り当てられている計算資源内であるかを判断する機能をさらに有する。資源割当計画部７０２は、解析タスクの処理に必要な計算資源を自装置の後段解析部６２０において確保できないと判断したときに、解析タスクの一部を第２の解析ノード４０に送信する指示をタスク送信部６３０に送る。
【００７４】
資源割当部７００は、第２の実施形態の資源割当部５００と同様に、ＣＰＵ、半導体記憶装置および各処理を実行するプログラムが記録されたハードディスクドライブ等によって構成されている。
【００７５】
第２の解析ノード４０は、第１の解析ノード３０と同一の構成の解析ノードを用いることができる。また、第２の解析ノード４０は、後段工程の処理のみを実行する解析ノードであってもよい。
【００７６】
［第３の実施形態の動作］
本実施形態の解析システムの動作について説明する。図１３は、本実施形態の解析システムにおいて、解析処理の一部を分散処理によって行う際の動作フローを示したものである。
【００７７】
本実施形態の解析システムにおいて、初期設定でシステムを起動し、初期設定に基づいて解析処理が行われている際に、内容観測データおよび負荷観測データの収集が行われる動作は、第２の実施形態と同様である。
【００７８】
すなわち、解析実行部６００が入力されたデータの解析および出力を行っている際に、負荷観測部２００は、解析実行部６００の前段解析部１１０および後段解析部６２０を監視し、前段解析部１１０および後段解析部６２０の負荷観測データを収集する。負荷観測部２００は、収集した負荷観測データを観測データ記憶部４００に保存する。
【００７９】
また、内容変動観測部３００は、前段解析部１１０から解析結果と内部情報を内容観測データとして収集する。内容変動観測部３００は、収集した内容観測データを観測データ記憶部４００に保存する。
【００８０】
負荷観測データおよび内容観測データが保存されると、負荷変動予測部５０１は、観測データ記憶部４００に保存された負荷観測データおよび内容観測データを基に、後段解析部６２０の負荷変動を予測する。負荷変動予測部５０１は、負荷変動の予測を行うと、予測結果を資源割当計画部７０２に送る。資源割当計画部７０２は、負荷変動の予測結果を受け取ると、後段解析部６２０の計算資源の割り当ての見直しを行う（ステップＣ１）。
【００８１】
計算資源の割り当ての見直しを行った際に、解析システムが停止しているとき（ステップＣ２でＹｅｓ）、第１の解析ノード３０の各部位は処理を停止する。
【００８２】
解析システムが動作を継続しているとき（ステップＣ２でＮｏ）、資源割当計画部７０２は、負荷変動の予測結果を受け取ると、後段解析部６２０において必要な計算資源を確保できるかを判断する。必要な資源を確保できた場合には（ステップＣ３でＹｅｓ）、資源割当計画部７０２は、第２の実施形態と同様に、後段解析部６２０内の解析ワーカの数や、解析ワーカへの資源の割り当てを変更する。
【００８３】
資源割当計画部７０２によって計算資源の構成が再設定されると、解析実行部６００は、再設定された構成に基づいて、入力される解析対象のデータの解析および出力を行う。解析実行部６００が再設定された構成に基づいて解析処理を行うと、第１の解析ノード３０の各部位は、ステップＣ１からの動作を繰り返し行う。
【００８４】
必要な資源を確保できない場合には（ステップＣ３でＮｏ）、資源割当計画部７０２は、タスク送信部６３０を生成する（ステップＣ４）。タスク送信部６３０を生成すると、資源割当計画部７０２は、タスク送信部６３０に後段解析部６２０における解析タスクの一部を第２の解析ノード４０に送信する指示を送る。
【００８５】
解析タスクの一部を第２の解析ノード４０に送信する指示を受け取ると、タスク送信部６３０は、指示された解析タスクを第２の解析ノード４０に送信する（ステップＣ５）。第１の解析ノード３０の後段解析部６２０および第２の解析ノード４０は、それぞれに割り当てられた解析タスクの処理を行い、処理結果を最終結果として出力する。
【００８６】
また、タスク送信部６３０から、解析タスクの一部が第２の解析ノード４０に送られて解析処理が行われると、第１の解析ノード３０の各部位および第２の解析ノード４０は、システムが動作している間、上記の動作を繰り返し行う。
【００８７】
次に、本実施形態の解析システムを映像解析システムに適用した場合において、解析タスクの分散処理を行う場合の動作についてより詳細に説明する。
【００８８】
以下では、顔の検出と特徴量抽出の２段階からなる映像解析を２台のカメラ映像に対して、５つのコアを有するＣＰＵを備えるサーバで処理する場合について説明する。また、初期配置として、前段解析部１１０において顔検出処理を行う解析ワーカ１１１に、各カメラについて１プロセスずつの合計２プロセス設定されているとする。また、後段解析部６２０において顔の特徴量の抽出を行う処理を行う解析ワーカ６２１に、カメラ１について２プロセス、カメラ２について３プロセスの合計５プロセスが設定されているとする。また、各プロセスはＣＰＵコアを１つまで使用できるものとする。
【００８９】
資源割当計画部７０２は、観測データ記憶部４００が保存している負荷観測データと、負荷変動予測部５０１が予測した負荷予測データを基に、後段解析部６２０における解析ワーカ１２１の数の最適値を算出する。
【００９０】
図４のような状態のとき、図１０に示しように負荷変動予測部５０１は、カメラ１の負荷の増加を予測する。しかし、図４に示すように、既にカメラ１の顔特徴抽出処理では、プロセス２つに割り当てられたＣＰＵコアの使用可能量２００パーセント分の処理能力に対して１７９パーセントを消費している。そのため、資源割当計画部７０２は、現在の設定では増加する負荷に耐えられないと判断する。
【００９１】
第１の解析ノード３０は、５コアを有するＣＰＵを備えているため、ＣＰＵコアの消費量は合計で５００パーセントを上回ることはできない。しかし、図４の例では、配備されている解析ワーカ１１１および解析ワーカ１２１の合計５プロセスのＣＰＵコア使用率は４９２パーセントであり、８パーセントの余剰しかない。よって、カメラ１に対して、顔特徴抽出処理を実行するプロセスをさらに追加して計算資源を割り当てることができない。そのため、資源割当計画部７０２は、自装置において後段工程の処理を全て実行することは出来ないと判断する。
【００９２】
自装置において全ての処理を実行できないと判断すると、資源割当計画部７０２は、タスク送信部６３０を生成し、後段解析部６２０の解析ワーカ１２１の１プロセスに相当する解析タスクを、タスク送信部６３０から第２の解析ノード４０に送信する。第１の解析ノード３０と第２の解析ノード４０で分散処理を行うことで、処理速度を落とすことなく処理を継続することができる。
【００９３】
［第３の実施形態の効果］
本実施形態の解析システムでは、資源割当計画部７０２は、第１の解析ノード３０の解析ワーカ１２１の増減に加えて、第２の解析ノード４０にタスクを送信するためのタスク送信部６３０を生成している。本実施形態の解析システムでは、タスク送信部６３０が、第２の解析ノード４０に、自装置で処理できない解析タスクを分散することで、負荷が自装置の処理の能力を超えて増大した場合にも解析システム全体のスループットを維持することができる。
【００９４】
第３の実施形態では、解析ノードが２台の例について示したが、解析システムは、解析ノードを３台以上備えていてもよい。そのような構成とした場合に、タスクの送信元の解析ノードは、他の解析ノードにタスクを均等に分配してもよく、負荷の小さい解析ノードにタスクを送信してもよい。また、各解析ノードに、カメラ等から解析用のデータの入力が行われ、それぞれの解析ノードで解析処理を行いつつ、処理能力が足りないときに互いにタスクを送信する構成としてもよい。そのような、構成とすることで、計算資源をより効率的に活用することができる。
【００９５】
また、第３の実施形態では、第１の解析ノード３０から第２の解析ノード４０に直接、タスクを送信しているが、メッセージキューを介して、複数の解析ノードに均一にタスクを分散する構成としてもよい。
【００９６】
第２および第３の実施形態では、前段工程と後段工程の２段階の処理を行っているが、３段階以上の解析処理を行ってもよい。３段階以上の解析処理を行う場合にも、いずれかの工程の内容変動を基に、内容変動を観測した工程よりも後段の工程に割り当てる計算資源を動的に変更することで、解析システムと停止せずに負荷変動に対応して計算資源を適切に管理することができる。
【００９７】
また、第２のおよび第３の実施形態の解析システムは、起動時に初期設定に基づいて動作しているが、起動時に、以前に動作した際の後段工程への計算資源の割り当てに基づいて動作が行われるようにしてもよい。そのような構成とすることで、起動時から効率的に計算資源を活用して動作することが可能になる。
【００９８】
第２および第３の実施形態では、人の顔を検出する映像解析システムを例に説明をしたが、映像解析システムの解析対象は、人以外の生物や物であってもよい。また、第２および第３の実施形態の解析システムは、複数段階の処理によってデータを処理する用途であれば、映像解析システム以外の用途のシステムに用いてもよい。
【００９９】
第１乃至第３の実施形態の解析ノードの各機能に相当する処理は、コンピュータプログラムとしてコンピュータで実行されるようにしてもよい。また、第１乃至第３の実施形態に示した各処理をコンピュータに実行させることのできるプログラムは、記録媒体に格納して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、ＣＤ-ＲＯＭ（Compact Disc Read Only Memory）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto Optical disk）を用いることもできる。半導体メモリを記録媒体として用いてもよい。
【０１００】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【０１０１】
この出願は、２０１６年１１月２２日に出願された日本出願特願２０１６−２２６４６５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１０２】
１    解析実行手段
２    内容変動観測手段
３    資源割当手段
１０    解析ノード
２０    データ取得部
３０    第１の解析ノード
４０    第２の解析ノード
１００    解析実行部
１１０    前段解析部
１１１    解析ワーカ
１２０    後段解析部
１２１    解析ワーカ
２００    負荷観測部
３００    内容変動観測部
４００    観測データ記憶部
５００    資源割当部
５０１    負荷変動予測部
５０２    資源割当計画部
６００    解析実行部
６２０    後段解析部
６３０    タスク送信部
７００    資源割当部
７０２    資源割当計画部
８０１    通路
８０２    顔
８０３    顔
【図１】
2018097058.tif 000003
【図２】
2018097058.tif 000004
【図３】
2018097058.tif 000005
【図４】
2018097058.tif 000006
【図５】
2018097058.tif 000007
【図６】
2018097058.tif 000008
【図７】
2018097058.tif 000009
【図８】
2018097058.tif 000010
【図９】
2018097058.tif 000011
【図１０】
2018097058.tif 000012
【図１１】
2018097058.tif 000013
【図１２】
2018097058.tif 000014
【図１３】
2018097058.tif 000015
【図１４】
2018097058.tif 000016
【国際調査報告】
2018097058.tif 000017
2018097058.tif 000018