(57)【要約】【課題】解析部を更新する際のデータストリーム解析の中断を抑制する。【解決手段】解析部１１，１２は、入力されたデータを解析する。受信部１３は、データストリーム１６のデータを受信し、受信したデータストリーム１６のデータを解析部１１に出力する。受信部１４は、データストリーム１７のデータを受信し、受信したデータストリーム１７のデータを解析部１２に出力する。制御部１５は、解析部１１の更新を示す更新要求１８を受け付けた場合、データストリーム１７に対して間引き処理を行って間引き処理後のデータを出力するよう受信部１４に指示し、データストリーム１６の少なくとも一部のデータが解析部１２に出力されるよう受信部１３の出力先を変更する。【選択図】図１
2020088658.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを解析する第１の解析部および第２の解析部と、
第１のデータストリームのデータを受信し、受信した前記第１のデータストリームのデータを前記第１の解析部に出力する第１の受信部と、
第２のデータストリームのデータを受信し、受信した前記第２のデータストリームのデータを前記第２の解析部に出力する第２の受信部と、
前記第１の解析部の更新を示す更新要求を受け付けた場合、前記第２のデータストリームに対して間引き処理を行って前記間引き処理後のデータを出力するよう前記第２の受信部に指示し、前記第１のデータストリームの少なくとも一部のデータが前記第２の解析部に出力されるよう前記第１の受信部の出力先を変更する制御部と、
を有する監視装置。
【請求項２】
前記第１のデータストリームおよび前記第２のデータストリームはそれぞれ、複数のフレームを含む画像データストリームであり、前記間引き処理は、前記画像データストリームの前記複数のフレームのうち一部のフレームを削除することを含む、
請求項１記載の監視装置。
【請求項３】
前記第１のデータストリームおよび前記第２のデータストリームはそれぞれ、複数のフレームを含む画像データストリームであり、前記間引き処理は、前記画像データストリームの各フレームから一部の画像領域を削除することを含む、
請求項１記載の監視装置。
【請求項４】
前記第１の解析部、前記第２の解析部、前記第１の受信部および前記第２の受信部は、プログラマブルデバイス上に形成されており、前記出力先の変更は、前記第１の受信部と前記第２の解析部との間に配線を追加することを含む、
請求項１記載の監視装置。
【請求項５】
前記第２の受信部への指示では、前記第２の受信部から前記第２の解析部に出力される前記第２のデータストリームのデータを所定割合だけ減少させ、
前記出力先の変更では、前記第１の受信部から前記第１の解析部への前記第１のデータストリームのデータの出力を停止させ、前記第１のデータストリームのデータのうち前記所定割合のデータを前記第１の受信部から前記第２の解析部に出力させる、
請求項１記載の監視装置。
【請求項６】
前記第１の解析部および前記第２の解析部を含む複数の解析部と、前記第１の受信部および前記第２の受信部を含む前記複数の解析部に対応する複数の受信部とを有しており、
前記所定割合は、解析部の個数に応じて決定される、
請求項５記載の監視装置。
【請求項７】
監視装置が実行する監視方法であって、
前記監視装置が有する第１の受信部から前記監視装置が有する第１の解析部に、前記第１の受信部で受信された第１のデータストリームのデータを出力させ、
前記監視装置が有する第２の受信部から前記監視装置が有する第２の解析部に、前記第２の受信部で受信された第２のデータストリームのデータを出力させ、
前記第１の解析部の更新を示す更新要求を受け付けた場合、前記第２のデータストリームに対して間引き処理を行って前記間引き処理後のデータを出力するよう前記第２の受信部に指示し、前記第１のデータストリームの少なくとも一部のデータが前記第２の解析部に出力されるよう前記第１の受信部の出力先を変更する、
監視方法。
【請求項８】
コンピュータに、
前記コンピュータが有する第１の受信部から前記コンピュータが有する第１の解析部に、前記第１の受信部で受信された第１のデータストリームのデータを出力させ、
前記コンピュータが有する第２の受信部から前記コンピュータが有する第２の解析部に、前記第２の受信部で受信された第２のデータストリームのデータを出力させ、
前記第１の解析部の更新を示す更新要求を受け付けた場合、前記第２のデータストリームに対して間引き処理を行って前記間引き処理後のデータを出力するよう前記第２の受信部に指示し、前記第１のデータストリームの少なくとも一部のデータが前記第２の解析部に出力されるよう前記第１の受信部の出力先を変更する、
処理を実行させる監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は監視装置、監視方法および監視プログラムに関する。
【背景技術】
【０００２】
複数のデータストリームを受信し、それら複数のデータストリームをリアルタイムに解析する監視システムがある。例えば、道路を撮影する複数の監視カメラから映像データを受信し、映像データをリアルタイムに解析して車両などの物体を認識する交通監視システムがある。データストリームのリアルタイム解析の負荷が大きい場合、監視システムは、高速化のためＦＰＧＡ（Field-Programmable Gate Array）やＧＰＵ（Graphics Processing Unit）などのハードウェアアクセラレータを利用することが考えられる。
【０００３】
なお、監視カメラの映像データをリムーバブルディスクに記録する監視システムが提案されている。提案の監視システムは、リムーバブルディスクの交換直後は通常記録モードで映像データを記録し、次の交換タイミングが迫ると通常記録モードよりもフレームレートを下げた延長記録モードで映像データを記録する。また、カメラの映像データの中からファームウェアにより所望の物体を検知する検知認識システムが提案されている。提案の検知認識システムは、過去の映像データを教師データとして用いて機械学習により検知アルゴリズムを学習し、学習結果に基づいてファームウェアを更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４８０１号公報
【特許文献２】特開２０１８−８８１５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
解析アルゴリズムの変更などの理由により、監視システムを運用したままハードウェアアクセラレータ内の解析部を更新したいことがある。例えば、ＦＰＧＡに読み込ませる回路情報を変更して動的再構成を行うことにより、ＦＰＧＡ内に形成した解析部の論理回路を更新したいことがある。しかし、あるデータストリームを担当する解析部を更新する際には当該解析部を一時的に停止させることになるため、そのままでは当該データストリームのリアルタイム解析が実行されなくなってしまう。そのため、映像データに写った物体を見逃すリスクが生じるなど、監視システムの監視精度が低下するおそれがある。
【０００６】
この問題に対しては、ハードウェアアクセラレータ内に通常時には使用しない予備の解析部を確保しておき、あるデータストリームを担当する解析部を更新する際には、予備の解析部に当該データストリームを解析させる方法も考えられる。しかし、ハードウェアアクセラレータに予備の解析部を確保することは、回路規模やコストの点で不利となる。
【０００７】
１つの側面では、本発明は、解析部を更新する際のデータストリーム解析の中断を抑制する監視装置、監視方法および監視プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、第１の解析部および第２の解析部と、第１の受信部と、第２の受信部と、制御部とを有する監視装置が提供される。第１の解析部および第２の解析部は、入力されたデータを解析する。第１の受信部は、第１のデータストリームのデータを受信し、受信した第１のデータストリームのデータを第１の解析部に出力する。第２の受信部は、第２のデータストリームのデータを受信し、受信した第２のデータストリームのデータを第２の解析部に出力する。制御部は、第１の解析部の更新を示す更新要求を受け付けた場合、第２のデータストリームに対して間引き処理を行って間引き処理後のデータを出力するよう第２の受信部に指示し、第１のデータストリームの少なくとも一部のデータが第２の解析部に出力されるよう第１の受信部の出力先を変更する。
【０００９】
また、１つの態様では、監視装置が実行する監視方法が提供される。また、１つの態様では、コンピュータに実行させる監視プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、解析部を更新する際のデータストリーム解析の中断を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の監視装置の例を説明する図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】監視サーバのハードウェア例を示すブロック図である。
【図４】監視サーバの機能例を示すブロック図である。
【図５】ＦＰＧＡの回路構成例を示すブロック図である。
【図６】ＦＰＧＡの第１の再構成例を示す図である。
【図７】ＦＰＧＡの第２の再構成例を示す図である。
【図８】映像データの第１の間引き例を示す図である。
【図９】映像データの第２の間引き例を示す図である。
【図１０】ＦＰＧＡ再構成の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１３】
図１は、第１の実施の形態の監視装置の例を説明する図である。
第１の実施の形態の監視装置１０は、複数のデータストリームをリアルタイムに解析する監視システムに用いられる。例えば、監視装置１０は、複数の監視カメラにより得られた複数の画像データストリームをリアルタイムに解析して、道路上の車両などの物体を認識する交通監視システムに用いられる。監視装置１０を、情報処理装置やコンピュータと言うこともできる。監視装置１０は、クライアント装置でもよいしサーバ装置でもよい。
【００１４】
監視装置１０は、解析部１１，１２、受信部１３，１４および制御部１５を有する。監視装置１０は、データストリーム解析の高速化のためハードウェアアクセラレータを利用する。ハードウェアアクセラレータには、ＦＰＧＡなどのプログラマブルデバイスや、ＧＰＵなどの専用プロセッサが含まれる。例えば、解析部１１，１２、受信部１３，１４および制御部１５は、ハードウェアアクセラレータ上に形成される。
【００１５】
ＦＰＧＡは、多数の論理ブロックと論理ブロック間を接続する配線階層とを有している。論理ブロック間の配線や入出力を示す回路情報をＦＰＧＡに与えて構成変更を指示することで、解析部１１，１２、受信部１３，１４および制御部１５に相当する回路領域をＦＰＧＡ上に形成することができる。ＧＰＵは、多数のプロセッサコアとプロセッサコアから使用される揮発性の共有メモリとを有している。アプリケーションプログラムをＧＰＵに与えることで、解析部１１，１２、受信部１３，１４および制御部１５に相当するプロセッサコアをＧＰＵ内に確保することができる。
【００１６】
解析部１１，１２は、入力されたデータを所定の解析アルゴリズムに従って解析する。例えば、解析部１１，１２は、画像データストリームに含まれるフレームの入力を受け付け、入力されたフレームに対して所定の画像認識アルゴリズムに従って画像認識を行う。解析部１１，１２は、並列かつリアルタイムにデータ解析を実行できる。画像認識の目的の例として、道路上の車両台数のカウント、車両のナンバープレート番号の認識、車両の種類の判定、通行中の人物の認識などが挙げられる。
【００１７】
ここで、解析部１１，１２の解析アルゴリズムを、監視装置１０の運用を継続しながら更新したいことがある。例えば、監視対象の変更、監視場所の変更、解析アルゴリズムの改良などの際に、解析部１１，１２の解析アルゴリズムを更新したいことがある。例えば、監視装置１０は、解析部１２によるデータ解析を継続しながら、一時的に解析部１１を停止して解析部１１を更新する。また、監視装置１０は、解析部１１によるデータ解析を継続しながら、一時的に解析部１２を停止して解析部１２を更新する。ＦＰＧＡを利用する場合、このような解析部１１，１２の更新は、他の回路領域を動作させながら一部の回路領域の配線を変更する動的再構成によって行うことができる。また、ＧＰＵを利用する場合、このような解析部１１，１２の更新は、一部のプロセッサコアに新たなアプリケーションプログラムをロードすることによって行うことができる。
【００１８】
受信部１３，１４は、データストリームのデータを受信し、受信したデータストリームのデータを何れかの解析部に出力する。受信部１３，１４は、データストリームに含まれる単位データをバッファリングし、解析部１１，１２のデータ解析速度に合わせて単位データを１つずつ何れかの解析部に出力することが考えられる。例えば、受信部１３，１４は、画像データストリームに含まれるフレームをバッファリングし、解析部１１，１２のフレーム解析速度に合わせてフレームを１つずつ何れかの解析部に出力する。
【００１９】
受信部１３は、データストリーム１６（第１のデータストリーム）のデータを継続的に受信する。通常モードでは、受信部１３は、受信したデータストリーム１６のデータを受信順に解析部１１に出力する。受信部１４は、データストリーム１７（第２のデータストリーム）のデータを継続的に受信する。通常モードでは、受信部１４は、受信したデータストリーム１７のデータを受信順に解析部１２に出力する。すなわち、解析部１１と受信部１３とが対応し、解析部１２と受信部１４とが対応する。
【００２０】
データストリーム１６，１７は、単位データが時系列に並んだデータ列である。例えば、データストリーム１６，１７は、画像のフレームが時系列に並んだフレーム列である。データストリーム１６，１７は、異なるセンサデバイスなど異なるデータソースから受信されるデータ列であってもよい。例えば、データストリーム１６，１７は、異なる監視カメラから受信されるフレーム列であってもよい。受信部１３がデータストリーム１６を担当し、受信部１４がデータストリーム１７を担当する。よって、通常モードでは、解析部１１がデータストリーム１６を解析し、解析部１２がデータストリーム１７を解析する。
【００２１】
ただし、受信部１３，１４は、後述するように、制御部１５からの指示に応じて一時的に間引きモードで実行することがある。間引きモードでは、受信したデータの出力先となる解析部が変わることがある。また、間引きモードでは、受信したデータに対して間引き処理を行い、一部のデータを削除して残ったデータのみ出力することがある。
【００２２】
制御部１５は、解析部１１，１２の更新を制御する。制御部１５は、１つの解析部の更新を示す更新要求１８を受け付ける。第１の実施の形態では、解析部１１を更新することを考える。更新要求１８は、監視装置１０の内部で発生してもよいし監視装置１０の外部から受信されてもよい。更新要求１８は、監視装置１０または他の情報処理装置のユーザによって入力されてもよい。更新要求１８は、更新対象の解析部を識別する識別情報を含んでもよく、更新後の解析アルゴリズムを示す情報を含んでもよい。例えば、ＦＰＧＡを利用する場合、更新要求１８は、解析部１１に相当する回路領域を形成するための回路情報を含んでもよい。また、ＧＰＵを利用する場合、更新要求１８は、解析部１１に相当するプロセッサコアに実行させるアプリケーションプログラムを含んでもよい。
【００２３】
更新要求１８を受け付けると、制御部１５は、更新対象ではない解析部１２に対応する受信部１４に対して間引きモードの実行を指示する。間引きモードの指示は、例えば、受信部１４がもつパラメータの書き換えによって行う。間引きモードでは、受信部１４は、データストリーム１７に対して間引き処理を行い、間引き処理後のデータを解析部１２に出力することになる。これにより、単位時間当たりに受信部１４から解析部１２に出力されるデータが減少する。例えば、受信部１４は、画像データストリームに含まれるフレームの中から一定間隔で所定割合のフレームを削除する。
【００２４】
解析部１１を含む３以上の解析部を用いて３以上のデータストリームを解析していた場合、制御部１５は、更新対象ではない２以上の解析部に対応する２以上の受信部それぞれに対して間引きモードの実行を指示してもよい。間引きモードにおいて各受信部がデータを削除する所定割合は、通常モードで使用されている解析部の数に応じて決めてもよい。例えば、通常モードではＮ個（Ｎは２以上の整数）の解析部が使用されている場合、更新対象ではない解析部に対応する受信部はそれぞれ、データストリームから１／Ｎだけデータを間引くことが考えられる。受信部１４は、画像データストリームに含まれるフレームのうちＮ個に１個の間隔でフレームを間引いてもよい。その場合、受信部１４から解析部１２への出力には、Ｎ個に１個の割合で空き時間が生じることになる。
【００２５】
また、更新要求１８を受け付けると、制御部１５は、更新対象である解析部１１に対応する受信部１３の出力先を一時的に変更する。出力先の変更により、受信部１３は、データストリーム１６のデータを解析部１１に出力することを停止し、データストリーム１６の少なくとも一部のデータを更新対象ではない解析部１２に出力する。受信部１３は、受信部１４と同様にデータストリーム１６に対して間引き処理を行ってもよい。ＦＰＧＡを利用する場合、制御部１５は、受信部１３と解析部１２の間に配線を追加してもよい。また、例えば、制御部１５は、受信部１３がもつパラメータを書き換える。
【００２６】
単位時間当たりに受信部１４から解析部１２に出力されるデータが減少した分だけ、単位時間当たりに受信部１３から解析部１２にデータを出力するようにしてもよい。これにより、単位時間当たりに解析部１２に入力されるデータは増加しない。受信部１４から解析部１２にデータが出力されない空き時間に、受信部１３から解析部１２にデータが出力されるようにしてもよい。例えば、受信部１３は、画像データストリームに含まれるフレームの中から一定間隔で所定割合のフレームを抽出して解析部１２に出力する。
【００２７】
通常モードではＮ個の解析部が使用されている場合、受信部１３は、更新対象ではない解析部それぞれに対してデータストリーム１６のデータの１／Ｎを出力することが考えられる。例えば、受信部１４がＮ個に１個の割合でフレームを間引いている場合、空き時間を利用して受信部１３がＮ個に１個の割合でフレームを解析部１２に出力する。
【００２８】
解析部１１の更新が完了すると、制御部１５は間引きモードを通常モードに戻してもよい。例えば、受信部１３は、制御部１５からの指示に応じて、データストリーム１６のデータを解析部１２に出力することを停止し、データストリーム１６のデータの全てを解析部１１に出力する。また、受信部１４は、制御部１５からの指示に応じて、間引き処理を停止し、データストリーム１７のデータの全てを解析部１２に出力する。
【００２９】
第１の実施の形態の監視装置１０によれば、解析部１１の更新を示す更新要求１８に応じて、受信部１４においてデータストリーム１７のデータの間引き処理が行われ、受信部１４から解析部１２に出力されるデータが減少する。また、受信部１３の出力先が変更され、データストリーム１６の少なくとも一部のデータが解析部１２に出力される。
【００３０】
これにより、解析部１１の更新中も、データストリーム１６，１７それぞれのデータが少なくとも部分的には解析され、解析部１１が担当するデータストリーム１６のデータが全く解析されなくなることを抑制できる。よって、解析部１１の更新中も監視装置１０の運用を継続することができ、監視精度の低下を抑制できる。また、受信部１４による間引き処理により、解析部１１を更新している間の解析部１２の負荷増加を抑制できる。よって、監視装置１０は予備の解析部をもたなくてもよく、解析部１２の演算能力を過大に確保しなくてもよい。このため、監視装置１０の回路規模やコストを抑制できる。このように、監視装置１０の解析アルゴリズムの更新を効率化することができる。
【００３１】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００３２】
第２の実施の形態の情報処理システムは、道路を走行する車両のナンバープレート番号を認識する交通監視システムである。この交通監視システムは、例えば、警察が特定の車両を捜索する犯罪捜査に利用することが可能である。
【００３３】
第２の実施の形態の情報処理システムは、監視カメラ３１〜３４および監視サーバ１００を含む。監視サーバ１００は、第１の実施の形態の監視装置１０に対応する。監視カメラ３１〜３４は、ネットワーク３０を介して監視サーバ１００に接続されている。監視カメラ３１〜３４は、車両２１，２２などの様々な車両が走行する道路２０を撮影する。監視カメラ３１〜３４は、道路２０の異なる位置を撮影している。例えば、監視カメラ３１〜３４は、道路２０を見下ろすように道路２０の上方に設置されている。
【００３４】
監視カメラ３１〜３４はそれぞれ、ネットワーク３０を介して映像データを監視サーバ１００に継続的に送信する。映像データは、道路２０を写した画像であるフレームを時系列に並べた画像データストリームである。監視カメラ３１が送信する映像データは、第１の実施の形態のデータストリーム１６に対応する。監視カメラ３２が送信する映像データは、第１の実施の形態のデータストリーム１７に対応する。
【００３５】
監視サーバ１００は、監視カメラ３１〜３４などの複数の監視カメラから映像データを継続的に受信し、受信した映像データをリアルタイムに解析する。監視サーバ１００は、映像データから画像認識により、車両２１，２２のナンバープレート番号など各車両のナンバープレート番号を認識する。映像データの解析を高速化するため、監視サーバ１００は、ハードウェアアクセラレータとしてＦＰＧＡを使用する。
【００３６】
図３は、監視サーバのハードウェア例を示すブロック図である。
監視サーバ１００は、バスに接続されたＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ（Hard Disk Drive）１０３、ＦＰＧＡ１０４、画像信号処理部１０５、入力信号処理部１０６、媒体リーダ１０７および通信インタフェース１０８を有する。
【００３７】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、監視サーバ１００は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００３８】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、監視サーバ１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【００３９】
ＨＤＤ１０３は、ＯＳ（Operating System）やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、監視サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【００４０】
ＦＰＧＡ１０４は、回路構成を事後的に変更することができるプログラマブルデバイスである。ＦＰＧＡ１０４は、入力信号を出力信号に変換する単位ブロックである複数の論理ブロックと、それら複数の論理ブロックを接続する配線階層とを有する。ＣＰＵ１０１からの指示に応じてＲＡＭ１０２からＦＰＧＡ１０４に回路情報が転送される。ＦＰＧＡ１０４は、回路情報に従って論理ブロックおよび配線階層を設定して所望の論理回路を形成する。ＦＰＧＡ１０４は、他の回路領域を動作させながら一部の回路領域を更新する動的再構成を行うこともできる。ＦＰＧＡ１０４は、ＲＡＭ１０２から入力データを受け付け、回路構成に従って入力データを処理する。ＦＰＧＡ１０４の処理結果は、ＣＰＵ１０１によりＦＰＧＡ１０４からＲＡＭ１０２に読み出される。
【００４１】
画像信号処理部１０５は、ＣＰＵ１０１からの命令に従って、監視サーバ１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを使用することができる。
【００４２】
入力信号処理部１０６は、監視サーバ１００に接続された入力デバイス１１２から入力信号を受信する。入力デバイス１１２として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、監視サーバ１００に複数種類の入力デバイスが接続されてもよい。
【００４３】
媒体リーダ１０７は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０７は、例えば、記録媒体１１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００４４】
通信インタフェース１０８は、ネットワーク３０に接続され、ネットワーク３０を介して監視カメラ３１〜３４と通信を行う。通信インタフェース１０８は、ネットワーク３０から受信した受信データをＲＡＭ１０２に格納し、また、ＲＡＭ１０２から送信データを読み出してネットワーク３０に送信する。通信インタフェース１０８は、ケーブルが接続される有線通信インタフェースである。ただし、通信インタフェース１０８が、無線リンクによって通信を行う無線通信インタフェースであってもよい。
【００４５】
図４は、監視サーバの機能例を示すブロック図である。
監視サーバ１００は、回路情報記憶部１２１、解析結果記憶部１２２、ＦＰＧＡ構成部１２３、映像データ転送部１２４および解析結果抽出部１２５を有する。回路情報記憶部１２１および解析結果記憶部１２２は、例えば、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域を用いて実装される。ＦＰＧＡ構成部１２３、映像データ転送部１２４および解析結果抽出部１２５は、例えば、ＣＰＵ１０１が実行するプログラムを用いて実装される。
【００４６】
回路情報記憶部１２１は、ＦＰＧＡ１０４に適用する回路情報を記憶する。回路情報は、例えば、各論理ブロックについて入力信号と出力信号との間の関係を定義したルックアップテーブルや、配線階層であるクロスバースイッチの各接点のＯＮ／ＯＦＦを定義した配線情報を含む。回路情報は、監視カメラ３１〜３４の映像データを解析する解析アルゴリズムが実装されるように予めユーザにより作成される。回路情報は、監視サーバ１００で作成されてもよいし他の情報処理装置で作成されてもよい。
【００４７】
解析結果記憶部１２２は、ＦＰＧＡ１０４により生成された映像データの解析結果を記憶する。解析結果は、映像データから認識されたナンバープレート番号を含む。
ＦＰＧＡ構成部１２３は、ユーザからの指示に応じてＦＰＧＡ１０４の回路構成を変更する。映像データを解析する解析アルゴリズムは、監視カメラ３１〜３４の設置位置を変更した場合や解析アルゴリズムを改良した場合などに更新されることがある。その場合、新たな解析アルゴリズムに対応する回路情報が回路情報記憶部１２１に格納され、ユーザから更新要求が入力される。すると、ＦＰＧＡ構成部１２３は、ＦＰＧＡ１０４に新たな回路情報を転送し、ＦＰＧＡ１０４に更新要求を入力して動的再構成を行う。
【００４８】
映像データ転送部１２４は、ネットワーク３０および通信インタフェース１０８を介して監視カメラ３１〜３４から映像データを取得する。異なる監視カメラの映像データは異なるデータストリームとして区別される。映像データ転送部１２４は、取得した監視カメラ３１〜３４の映像データを継続的にＦＰＧＡ１０４に転送する。
【００４９】
解析結果抽出部１２５は、ＦＰＧＡ１０４から継続的に解析結果を読み出して解析結果記憶部１２２に格納する。解析結果抽出部１２５は、認識されたナンバープレート番号と所定のナンバープレート番号とを比較して、所定のナンバープレート番号が発見されたか否かを判定してもよい。解析結果抽出部１２５は、解析結果または解析結果を利用した判定結果を出力してもよい。例えば、解析結果抽出部１２５は、解析結果または判定結果をディスプレイ１１１に表示するなど、監視サーバ１００の出力デバイスに出力する。また、解析結果抽出部１２５は、解析結果または判定結果を他の情報処理装置に送信する。
【００５０】
図５は、ＦＰＧＡの回路構成例を示すブロック図である。
ＦＰＧＡ１０４は、ＦＰＧＡインタフェース１３１、制御部１３２、回路情報メモリ１３３、複数の解析部、複数の受信部および配線部１３６を有する。複数の解析部には、解析部１３４（解析部＃０）、解析部１３４−１（解析部＃１）、解析部１３４−２（解析部＃２）および解析部１３４−３（解析部＃３）が含まれる。複数の受信部には、受信部１３５（受信部＃０）、受信部１３５−１（受信部＃１）、受信部１３５−２（受信部＃２）および受信部１３５−３（受信部＃３）が含まれる。複数の解析部、複数の受信部および配線部１３６は、回路情報に基づいて形成される。
【００５１】
制御部１３２は、第１の実施の形態の制御部１５に対応する。解析部１３４は、第１の実施の形態の解析部１１に対応する。解析部１３４−１は、第１の実施の形態の解析部１２に対応する。受信部１３５は、第１の実施の形態の受信部１３に対応する。受信部１３５−１は、第１の実施の形態の受信部１４に対応する。
【００５２】
ＦＰＧＡインタフェース１３１は、ＦＰＧＡ１０４の外部からの入力を受け付けるインタフェースである。ＦＰＧＡインタフェース１３１は、回路情報を受信し、受信した回路情報を回路情報メモリ１３３に転送する。また、ＦＰＧＡインタフェース１３１は、１つの解析部の更新を示す更新要求をＣＰＵ１０１から受信し、受信した更新要求を制御部１３２に転送する。また、ＦＰＧＡインタフェース１３１は、映像データを受信し、受信した映像データを受信部１３５，１３５−１〜１３５−３に振り分ける。また、ＦＰＧＡインタフェース１３１は、解析結果の読み出しを示す読み出し要求をＣＰＵ１０１から受信し、解析部１３４，１３４−１〜１３４−３から解析結果を読み出して応答する。
【００５３】
制御部１３２は、解析部１３４，１３４−１〜１３４−３の動的再構成を制御する。制御部１３２は、更新要求を受け付け、更新後の解析アルゴリズムに対応する回路情報を回路情報メモリ１３３から読み出し、更新要求が示す解析部の回路構成を変更する。回路情報メモリ１３３は、解析部１３４，１３４−１〜１３４−３、受信部１３５，１３５−１〜１３５−３および配線部１３６を形成するための回路情報を記憶する。
【００５４】
解析部１３４，１３４−１〜１３４−３は、映像データに含まれるフレームを１つずつ受け付け、入力されたフレームに対して所定の解析アルゴリズムを実行して、入力されたフレームに写った１以上のナンバープレート番号を認識する。解析部１３４，１３４−１〜１３４−３は、ナンバープレート番号を示す解析結果を保持し、ＣＰＵ１０１からの読み出し要求に応答して、保持している解析結果を出力する。
【００５５】
解析部１３４，１３４−１〜１３４−３はそれぞれ、１つの監視カメラの映像データを担当する。解析部１３４，１３４−１〜１３４−３により、異なる監視カメラの映像データを並列に解析できる。例えば、解析部１３４が監視カメラ３１の映像データを担当し、解析部１３４−１が監視カメラ３２の映像データを担当し、解析部１３４−２が監視カメラ３３の映像データを担当し、解析部１３４−３が監視カメラ３４の映像データを担当する。解析部１３４，１３４−１〜１３４−３は、異なる監視カメラの解析結果をＣＰＵ１０１が区別できるように、監視カメラを識別するラベルを解析結果に付加してもよい。
【００５６】
受信部１３５，１３５−１〜１３５−３は、監視カメラ３１〜３４から映像データのフレームを継続的に受信する。受信部１３５，１３５−１〜１３５−３は、受信タイミングのゆらぎを解消するため、受信したフレームをバッファリングする。受信部１３５，１３５−１〜１３５−３は、解析部１３４，１３４−１〜１３４−３が一定速度でフレームを処理できるように、配線部１３６を介して適切な解析部にフレームを１つずつ出力する。
【００５７】
受信部１３５，１３５−１〜１３５−３はそれぞれ、１つの監視カメラの映像データを受信する。例えば、受信部１３５が監視カメラ３１の映像データを受信し、受信部１３５−１が監視カメラ３２の映像データを受信し、受信部１３５−２が監視カメラ３３の映像データを受信し、受信部１３５−３が監視カメラ３４の映像データを受信する。初期状態では、受信部１３５，１３５−１〜１３５−３はそれぞれ、受信したフレームの全てを１つの解析部に出力する。例えば、受信部１３５が解析部１３４にフレームを出力し、受信部１３５−１が解析部１３４−１にフレームを出力し、受信部１３５−２が解析部１３４−２にフレームを出力し、受信部１３５−３が解析部１３４−３にフレームを出力する。
【００５８】
配線部１３６は、解析部１３４，１３４−１〜１３４−３と受信部１３５，１３５−１〜１３５−３とを配線で接続する。配線部１３６の配線は、回路情報を用いた動的再構成により変更可能である。初期状態では少なくとも、解析部１３４と受信部１３５とが配線で接続され、解析部１３４−１と受信部１３５−１とが配線で接続され、解析部１３４−２と受信部１３５−２とが配線で接続され、解析部１３４−３と受信部１３５−３とが配線で接続されている。ただし、各受信部が全ての解析部と接続されているように配線部１３６を形成しておいてもよい。その場合、配線の事後的変更を抑制できる。
【００５９】
ここで、解析アルゴリズムを変更するため、ＦＰＧＡ１０４が有する何れか１つの解析部を動的再構成により更新することを考える。１つの解析部の更新には数秒から十数秒程度の時間を要することがある。更新対象の解析部が何れか１つの監視カメラの映像データを担当している場合、そのまま当該解析部を停止して更新すると、更新中は当該監視カメラの映像データの解析が全く行われなくなってしまう。これにより、発見したいナンバープレート番号を見過ごしてしまうリスクが高くなり、監視精度が低下するおそれがある。
【００６０】
そこで、第２の実施の形態のＦＰＧＡ１０４は、画像データの間引き処理を行うことで、当初のハードウェアリソースの範囲内で、更新中であっても全く解析されない監視カメラの映像データが生じないようにし、監視精度の低下を抑制する。
【００６１】
図６は、ＦＰＧＡの第１の再構成例を示す図である。
ここでは説明を簡単にするため、監視カメラ３１，３２の２台の監視カメラで道路２０を撮影しており、解析部１３４，１３４−１の２つの解析部を用いて監視カメラ３１，３２の映像データを並列に解析している場合を考える。
【００６２】
通常時には、受信部１３５は監視カメラ３１から映像データのフレームを順次受信し、受信部１３５−１は監視カメラ３２から映像データのフレームを順次受信する。受信部１３５は、受信した監視カメラ３１のフレームを、間引き処理を行わずに解析部１３４に１つずつ出力する。解析部１３４は、入力されたフレームを解析する。受信部１３５−１は、受信した監視カメラ３２のフレームを、間引き処理を行わずに解析部１３４−１に１つずつ出力する。解析部１３４−１は、入力されたフレームを解析する。
【００６３】
解析部１３４の更新を示す更新要求がＣＰＵ１０１により発行されると、制御部１３２は、更新対象の解析部１３４に対応する受信部１３５と、更新対象でない解析部１３４−１との間に配線を追加する。ただし、受信部１３５と解析部１３４−１との間に既に配線が存在する場合は配線の追加は不要である。そして、制御部１３２は、更新対象の解析部１３４に対応する受信部１３５と、更新対象でない解析部１３４−１に対応する受信部１３５−１に対して、フレーム出力方法の変更を指示する。フレーム出力方法の変更は、例えば、受信部１３５，１３５−１の動作を制御するパラメータを受信部１３５，１３５−１の内部または外部に用意し、制御部１３２がパラメータを書き換えることで行う。
【００６４】
更新対象でない解析部１３４−１に対応する受信部１３５−１は、監視カメラ３２の映像データに対して間引き処理を行う。間引き処理は、映像データの一部を削除して出力することで、単位時間当たりの出力データ量を削減するものである。後述するように、間引き処理の例として、連続する複数のフレームの中から一定間隔でフレームを削除するフレーム間引きと、各フレームから一部の画像領域を削除する領域間引きとが挙げられる。受信部１３５−１は、間引き処理後の監視カメラ３２のフレームを解析部１３４−１に出力する。フレーム間引きの場合、間引き処理によって削除されなかったフレームが解析部１３４−１に１つずつ入力される。削除されたフレームのタイミングでは受信部１３５−１から解析部１３４−１に対して何も出力されない。
【００６５】
更新対象の解析部１３４に対応する受信部１３５は、更新対象の解析部１３４へのフレームの出力を停止する。その代わりに、受信部１３５は、更新対象でない解析部１３４−１に監視カメラ３１のフレームを出力する。ただし、受信部１３５−１から解析部１３４−１にもフレームが流入するため、監視カメラ３１のフレームの全てを解析部１３４−１が処理可能なわけではない。そのため、受信部１３５でも間引き処理が行われる。
【００６６】
受信部１３５−１がフレーム間引きを行う場合、受信部１３５も監視カメラ３１の映像データに対してフレーム間引きを行う。受信部１３５は、間引き処理によって削除されなかったフレームを解析部１３４−１に１つずつ出力する。受信部１３５がフレームを出力するタイミングは、受信部１３５−１がフレームを出力しないタイミングである。例えば、受信部１３５と受信部１３５−１とが２個に１個の割合でフレームを削除し、削除されなかったフレームを交互に解析部１３４−１に出力する。
【００６７】
受信部１３５−１が領域間引きを行う場合、受信部１３５も監視カメラ３１の映像データに対して領域間引きを行う。受信部１３５，１３５−１はそれぞれ、間引き処理によって削除されなかった画像領域を解析部１３４−１に出力する。受信部１３５が出力する画像領域と受信部１３５−１が出力する画像領域とを結合したものが１つのフレームとして取り扱われる。例えば、受信部１３５と受信部１３５−１とが元のフレームの半分のサイズの画像領域を抽出し、抽出した画像領域を解析部１３４−１に出力する。
【００６８】
制御部１３２は、受信部１３５，１３５−１のフレーム出力方法が変更されると、変更後の解析アルゴリズムを示す回路情報を用いて解析部１３４を更新する。解析部１３４の更新では、例えば、解析部１３４に含まれる論理ブロックに適用するルックアップテーブルの更新や、解析部１３４内での配線の更新などが行われる。
【００６９】
解析部１３４の更新が完了すると、制御部１３２は、更新対象の解析部１３４に対応する受信部１３５と、更新対象でない解析部１３４−１に対応する受信部１３５−１に対して、フレーム出力方法の復元を指示する。フレーム出力方法の復元は、例えば、受信部１３５，１３５−１の動作を制御するパラメータを受信部１３５，１３５−１の内部または外部に用意し、制御部１３２がパラメータを書き換えることで行う。
【００７０】
これにより、受信部１３５は、受信した監視カメラ３１のフレームを、間引き処理を行わずに解析部１３４に１つずつ出力する。受信部１３５−１は、受信した監視カメラ３２のフレームを、間引き処理を行わずに解析部１３４−１に１つずつ出力する。受信部１３５と解析部１３４−１の間の配線は削除せずに残しておいてよい。ただし、制御部１３２は、受信部１３５と解析部１３４−１の間の配線を削除するようにしてもよい。
【００７１】
このようにして、ＦＰＧＡ１０４の運用を継続しながら解析部１３４の解析アルゴリズムを変更することができる。解析部１３４の更新中も、監視カメラ３１の映像データと監視カメラ３２の映像データの両方が少なくとも部分的には解析される。よって、発見すべきナンバープレート番号を見落とすリスクが低減され、監視精度が向上する。また、当初の解析部１３４，１３４−１のハードウェアリソースの範囲内で映像データの解析を継続でき、通常時には使用されない予備の解析部を用意しなくてよい。
【００７２】
次に、使用する解析部が多い場合、すなわち、並列に解析する映像データが多い場合を考える。通常時に使用する解析部がＮ個（Ｎは２以上の整数）あり、これら解析部に０，１，２，…という非負整数の識別番号が付与されているとする。また、Ｎ個の監視カメラから受信される映像データに含まれるフレームは、ある時刻を基準にして０，１，２，…という非負整数の識別番号によって識別できるものとし、Ｎ個の解析部に対応するＮ個の受信部においてフレームタイミングを揃えることができるとする。
【００７３】
フレーム間引きの場合、Ｎ個の受信部のうちｉ番目（ｉ＝０，１，２，…）の受信部は、連続するＮ個のフレームのうちｉ番目のフレーム（非負整数の識別番号をＮで割った余りがｉであるフレーム）を削除すればよい。更新対象でない解析部に対応する受信部は、連続するＮ個のフレームのうち削除しなかったＮ−１個のフレームを、対応する解析部に出力する。一方、更新対象の解析部に対応する受信部は、連続するＮ個のフレームのうち削除しなかったＮ−１個のフレームを、更新対象でないＮ−１個の解析部に振り分ける。
【００７４】
更新対象でないｉ番目の解析部は、ｉ番目のフレームタイミングでは対応する受信部からフレームが入力されない。このため、更新対象の解析部に対応する受信部は、削除しなかったｉ番目のフレームをｉ番目の解析部に出力すればよい。これにより、更新対象でないＮ−１個の解析部には、当初と同じ速度でフレームが入力されることになる。
【００７５】
領域間引きの場合、Ｎ個の受信部のうちｉ番目の受信部は、各フレームから１／Ｎのサイズの画像領域を削除すればよい。更新対象でない解析部に対応する受信部は、削除しなかった（Ｎ−１）／Ｎのサイズの画像領域を、対応する解析部に出力する。一方、更新対象の解析部に対応する受信部は、残った（Ｎ−１）／Ｎのサイズの画像領域を、更新対象でないＮ−１個の解析部に振り分ける。ここでは、残った（Ｎ−１）／Ｎのサイズの画像領域をＮ−１等分すればよい。各受信部がフレームを出力する速度は間引き処理前と同じである。更新対象でない解析部は、（Ｎ−１）／Ｎのサイズの画像領域の入力と１／Ｎのサイズの画像領域の入力とを受け付け、両者を結合する。これにより、更新対象でないＮ−１個の解析部には、間引き処理前と同じサイズのフレームが入力されることになる。
【００７６】
図７は、ＦＰＧＡの第２の再構成例を示す図である。
通常時には、受信部１３５は監視カメラ３１から映像データのフレームを順次受信する。受信部１３５−１は監視カメラ３２から映像データのフレームを順次受信する。受信部１３５−２は監視カメラ３３から映像データのフレームを順次受信する。受信部１３５−３は監視カメラ３４から映像データのフレームを順次受信する。
【００７７】
受信部１３５は、受信した監視カメラ３１のフレームを、間引き処理を行わずに解析部１３４に１つずつ出力する。受信部１３５−１は、受信した監視カメラ３２のフレームを、間引き処理を行わずに解析部１３４−１に１つずつ出力する。受信部１３５−２は、受信した監視カメラ３３のフレームを、間引き処理を行わずに解析部１３４−２に１つずつ出力する。受信部１３５−３は、受信した監視カメラ３４のフレームを、間引き処理を行わずに解析部１３４−３に１つずつ出力する。
【００７８】
解析部１３４−１の更新を示す更新要求がＣＰＵ１０１により発行されると、制御部１３２は、更新対象の解析部１３４−１に対応する受信部１３５−１と、更新対象でない解析部１３４，１３４−２，１３４−３との間に配線を追加する。ただし、配線が存在する場合は配線の追加は不要である。そして、制御部１３２は、受信部１３５，１３５−１〜１３５−３に対して、フレーム出力方法の変更を指示する。
【００７９】
受信部１３５は、監視カメラ３１の映像データに対して間引き処理を行い、解析部１３４への出力のデータ量を１／４だけ減少させる。フレーム間引きの場合、受信部１３５は、連続する４個のフレームのうち０番目のフレームを削除する。領域間引きの場合、受信部１３５は、各フレームから１／４のサイズの画像領域を削除する。同様に、受信部１３５−２は、監視カメラ３３の映像データに対して間引き処理を行い、解析部１３４−２への出力のデータ量を１／４だけ減少させる。フレーム間引きの場合、受信部１３５−２は、連続する４個のフレームのうち２番目のフレームを削除する。領域間引きの場合、受信部１３５−２は、各フレームから１／４のサイズの画像領域を削除する。受信部１３５−３は、監視カメラ３４の映像データに対して間引き処理を行い、解析部１３４−３への出力のデータ量を１／４だけ減少させる。フレーム間引きの場合、受信部１３５−３は、連続する４個のフレームのうち３番目のフレームを削除する。領域間引きの場合、受信部１３５−３は、各フレームから１／４のサイズの画像領域を削除する。
【００８０】
受信部１３５−１は、監視カメラ３２の映像データのうち１／４ずつを解析部１３４，１３４−２，１３４−３に振り分け、残った１／４を削除する。フレーム間引きの場合、受信部１３５−１は、連続する４個のフレームのうち０番目のフレームを解析部１３４に出力し、１番目のフレームを削除し、２番目のフレームを解析部１３４−２に出力し、３番目のフレームを解析部１３４−３に出力する。領域間引きの場合、受信部１３５−１は、各フレームの１／４のサイズの画像領域を解析部１３４，１３４−２，１３４−３にそれぞれ出力し、残った１／４のサイズの画像領域を削除する。
【００８１】
なお、上記では通常時にＮ個の解析部が使用されている場合、更新対象の解析部が担当する映像データをＮ−１個の解析部に振り分けている。すなわち、更新対象でない解析部の全てを使って、更新対象の解析部が担当する映像データを処理するようにして、振り分け先の数を最大化している。これに対して、更新対象でない解析部の一部のみを使って、更新対象の解析部が担当する映像データを処理するようにしてもよい。
【００８２】
例えば、振り分け先の解析部の個数を予めユーザが決めておいてもよいし、通常時に使用する解析部の個数の一定割合としてもよい。また、更新対象でない解析部の一部のみを振り分け先とする場合、振り分け先の解析部をランダムに選択してもよいし、所定の監視カメラに対応する所定の解析部を選択してもよい。また、振り分け先の解析部を所定のルールに従って決定してもよい。例えば、Ｉ番目の解析部を更新する場合にＩ−１番目の解析部とＩ＋１番目の解析部を選択するなど、更新対象の解析部の前後の識別番号をもつ解析部を選択するようにしてもよい。また、制御部１３２が各解析部の負荷を監視し、負荷の低い解析部を振り分け先として優先的に選択してもよい。
【００８３】
次に、フレーム間引きと領域間引きの例を説明する。
図８は、映像データの第１の間引き例を示す図である。
ここでは説明を簡単にするため、図６と同様に、監視カメラ３１，３２の２台の監視カメラで道路２０を撮影しており、解析部１３４，１３４−１の２つの解析部を用いて監視カメラ３１，３２の映像データを並列に解析している場合を考える。
【００８４】
受信部１３５は、監視カメラ３１からフレーム１４１〜１４８（フレーム＃０〜＃７）を順に受信する。受信部１３５−１は、監視カメラ３２からフレーム１５１〜１５８（フレーム＃０〜＃７）を順に受信する。間引き処理としてフレーム間引きを行う場合、受信部１３５は、連続する２個のフレームのうち０番目のフレームを削除し、１番目のフレームを解析部１３４−１に出力する。よって、受信部１３５から解析部１３４−１には、監視カメラ３１のフレーム１４１〜１４８のうちフレーム１４２，１４４，１４６，１４８が出力される。一方、受信部１３５−１は、連続する２個のフレームのうち１番目のフレームを削除し、０番目のフレームを解析部１３４−１に出力する。よって、受信部１３５−１から解析部１３４−１には、監視カメラ３２のフレーム１５１〜１５８のうちフレーム１５１，１５３，１５５，１５７が出力される。
【００８５】
図９は、映像データの第２の間引き例を示す図である。
受信部１３５は、監視カメラ３１からフレーム１６１を受信する。受信部１３５−１は、監視カメラ３２からフレーム１６３を受信する。間引き処理として領域間引きを行う場合、受信部１３５は、フレーム１６１の中央から、フレーム１６１の半分のサイズの画像領域１６２を抽出する。例えば、フレーム１６１のサイズが横１９２０ピクセル×縦１０８０ピクセルである場合、画像領域１６２はフレーム１６１の中央の横１９２０ピクセル×縦５４０ピクセルの画像領域である。同様に、受信部１３５−１は、フレーム１６３の中央から、フレーム１６３の半分のサイズの画像領域１６４を抽出する。
【００８６】
受信部１３５は画像領域１６２を解析部１３４−１に出力し、受信部１３５−１は画像領域１６４を解析部１３４−１に出力する。解析部１３４−１は、画像領域１６４の下に画像領域１６２を結合してフレーム１６５を生成する。フレーム１６５のサイズはフレーム１６１，１６３と同じである。解析部１３４−１は、生成したフレーム１６５を入力されたフレームとみなしてナンバープレート番号の認識を行う。
【００８７】
なお、上記では各フレームの上側と下側を削除して複数の画像領域を縦方向に結合しているが、各フレームの左側と右側を削除して複数の画像領域を横方向に結合してもよい。また、上記では各フレームの中央の画像領域を抽出しているが、各フレームの上半分、下半分、左半分、右半分など中央以外の画像領域を抽出してもよい。
【００８８】
また、上記では監視カメラ３１のフレーム１６１と監視カメラ３２のフレーム１６３とで抽出位置が同じであるが、監視カメラによって抽出位置を変えてもよい。例えば、監視カメラ３１のフレーム１６１からは上半分または左半分の画像領域を抽出し、監視カメラ３２のフレーム１６３からは下半分または右半分の画像領域を抽出してもよい。また、上記では全てのフレームを通じて抽出位置が固定であるが、フレームによって抽出位置を変えてもよい。例えば、０番目のフレームでは上半分、１番目のフレームでは下半分、２番目のフレームでは左半分、３番目のフレームでは右半分の画像領域を抽出してもよい。
【００８９】
次に、ＦＰＧＡ１０４の処理手順について説明する。
図１０は、ＦＰＧＡ再構成の手順例を示すフローチャートである。
（Ｓ１０）制御部１３２は、１つの解析部の更新を示す更新要求を受信する。更新する解析部に適用する回路情報は、既に回路情報メモリ１３３に書き込まれている。
【００９０】
（Ｓ１１）制御部１３２は、更新要求で指定された更新対象の解析部＃Ｘを特定する。
（Ｓ１２）制御部１３２は、更新対象の解析部＃Ｘに対応する受信部＃Ｘから、更新対象でない各解析部への配線が既に存在しているか判断する。配線がある場合はステップＳ１４に進み、配線が無い場合はステップＳ１３に進む。
【００９１】
（Ｓ１３）制御部１３２は、配線部１３６を更新して、更新対象の解析部＃Ｘに対応する受信部＃Ｘから、更新対象でない各解析部への配線を追加する。
（Ｓ１４）制御部１３２は、受信部＃Ｘ以外の受信部、すなわち、更新対象でない解析部に対応する受信部を、その受信部が受信する映像データの１／Ｎだけ間引くよう設定する。例えば、その受信部が受信するフレームをＮ個に１個間引くよう設定する。
【００９２】
（Ｓ１５）制御部１３２は、更新対象の解析部＃Ｘに対応する受信部＃Ｘを、解析部＃Ｘ以外の解析部に映像データの１／Ｎずつ振り分けるよう設定する。例えば、受信部＃Ｘが受信するフレームをＮ個に１個ずつ解析部＃Ｘ以外の解析部に出力するよう設定する。
【００９３】
（Ｓ１６）制御部１３２は、更新対象の解析部＃Ｘを停止させる。
（Ｓ１７）制御部１３２は、回路情報メモリ１３３から更新された回路情報を読み出し、読み出した回路情報を解析部＃Ｘに適用する。すなわち、制御部１３２は、動的再構成により、読み出した回路情報に基づいて解析部＃Ｘの回路領域を書き換える。
【００９４】
（Ｓ１８）制御部１３２は、更新した解析部＃Ｘを再起動する。
（Ｓ１９）制御部１３２は、更新した解析部＃Ｘに対応する受信部＃Ｘを、受信部＃Ｘが受信する映像データの振り分けを解除するよう設定する。これにより、受信部＃Ｘが受信したフレームは全て解析部＃Ｘに出力される。
【００９５】
（Ｓ２０）制御部１３２は、受信部＃Ｘ以外の受信部、すなわち、更新対象でない解析部に対応する受信部を、その受信部が受信する映像データに対する間引き処理を解除するよう設定する。これにより、フレームが間引き処理されずに出力される。
【００９６】
第２の実施の形態の監視サーバ１００によれば、ある解析部を更新する際、複数の監視カメラの映像データに対して間引き処理が行われ、間引き処理によって生じた余剰能力を利用して更新対象の解析部が担当する監視カメラの映像データが解析される。これにより、解析アルゴリズムを変更する際も複数の監視カメラの映像データの解析を継続できる。また、更新対象の解析部が担当する監視カメラの映像データが更新中に全く解析されなくなることを抑制できる。また、複数の監視カメラの映像データの何れもが少なくとも部分的には解析される。よって、映像データから監視対象物を見落とすリスクを低減でき、監視精度を向上させることができる。また、当初のハードウェアリソースの範囲内で複数の監視カメラの映像データの解析を継続できる。よって、通常時に使用されない予備の解析部を用意しなくてもよく、回路規模やコストを抑制できる。
【符号の説明】
【００９７】
１０  監視装置
１１，１２  解析部
１３，１４  受信部
１５  制御部
１６，１７  データストリーム
１８  更新要求
【図１】
2020088658.tif 000003
【図２】
2020088658.tif 000004
【図３】
2020088658.tif 000005
【図４】
2020088658.tif 000006
【図５】
2020088658.tif 000007
【図６】
2020088658.tif 000008
【図７】
2020088658.tif 000009
【図８】
2020088658.tif 000010
【図９】
2020088658.tif 000011
【図１０】
2020088658.tif 000012