(57)【要約】【課題】第１処理部を所定の周期で実行させるべく、第１処理部の実行時期と第２処理部の実行時期とを調停できるようにすること。【解決手段】複数のカメラ２を備える映像監視システムにおいて、各カメラ２から画像を取得して所定の第１処理を実行する第１処理部１１０と、第１処理部１１０の処理結果と画像とに基づいて所定の第２処理を実行する第２処理部１２０と、第１処理部１１０を所定の周期で実行させるべく、第１処理部１１０の実行時期と第２処理部１２０の実行時期とを調停する実行時期調停部１６０と、を備える。これにより、第２処理部１２０の処理時間が長い場合であっても、第１処理部１１０を所定の周期で実行させる。【選択図】図１
2018093324.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラを備える映像監視システムにおいて、
前記各カメラから画像を取得して所定の第１処理を実行する第１処理部と、
前記第１処理部の処理結果と前記画像とに基づいて所定の第２処理を実行する第２処理部と、
前記第１処理部を所定の周期で実行させるべく、前記第１処理部の実行時期と前記第２処理部の実行時期とを調停する実行時期調停部と、
を備える映像監視システム。
【請求項２】
前記第１処理部の実行には第１優先度が設定されており、
前記第２処理部の実行には前記第１優先度よりも低い第２優先度が設定されており、
前記実行時期調停部は、前記第１優先度および前記第２優先度に応じて、前記第１処理部の実行時期と前記第２処理部の実行時期とを調停する、
請求項１に記載の映像監視システム。
【請求項３】
前記実行時期調停部は、前記第１処理部の実行されていない時間に前記第２処理部を実行させるべく、前記第１処理部の実行時期と前記第２処理部の実行時期を調停する、
請求項１に記載の映像監視システム。
【請求項４】
前記実行時期調停部は、前記第２処理部の実行が完了する前に前記第１処理部の実行時期が到来する場合、前記第２処理部の実行を中断して前記第１処理部を実行させ、前記第１処理部の実行完了後に、前記中断した前記第２処理部の実行を再開させる、
請求項３に記載の映像監視システム。
【請求項５】
前記第１処理部は、一定時間内に実行完了し、
前記第２処理部は、実行完了に要する時間が前記第１処理部の処理結果に依存し、定まらない、
請求項１〜４のいずれか一項に記載の映像監視システム。
【請求項６】
前記第１処理部の処理結果と対応する画像の組のうち、前記第２処理部の処理対象とする組を選択する処理対象選択部をさらに備える
請求項５に記載の映像監視システム。
【請求項７】
前記処理対象選択部は、前記第１処理部の処理結果と対応する画像の組のうち、最新の組を前記第２処理部の処理対象として選択する、
請求項６に記載の映像監視システム。
【請求項８】
前記第１処理は、前記カメラの画像からオブジェクトを検出する処理であり、
前記第２処理は、前記第１処理により検出されたオブジェクトの特徴を前記カメラの画像から抽出する処理である、
請求項５に記載の映像監視システム。
【請求項９】
前記処理対象選択部は、前記第２処理部に割り当てられる計算リソースに上限値を設定する、
請求項６に記載の映像監視システム。
【請求項１０】
前記処理対象選択部は、前記第２処理部の実行頻度に上限値を設定する、
請求項６に記載の映像監視システム。
【請求項１１】
前記処理対象選択部は、前記第２処理部が前記カメラの画像を処理する頻度を表す重み値を前記カメラごとに指定する、
請求項６に記載の映像監視システム。
【請求項１２】
前記第１処理は、前記カメラの画像から検出したオブジェクトが初めて出現したオブジェクトである場合、その初出現したオブジェクトの特徴を前記第２処理に代わって前記カメラの画像から抽出し、
前記第２処理は、前記第１処理により既に検出されているオブジェクトの特徴を前記カメラの画像から抽出する処理である、
請求項５に記載の映像監視システム。
【請求項１３】
前記第１処理部は、前記カメラと一対一で対応するように複数設けられており、
前記第２処理部の数は、前記カメラの数以下に設定することができる、
請求項１〜５のいずれか一項に記載の映像監視システム。
【請求項１４】
複数のカメラを備える映像監視システムの制御方法であって、
前記映像監視システムは、前記各カメラから所定の周期で画像を取得して所定の第１処理を実行する第１処理部と、前記第１処理部の処理結果と前記画像とに基づいて所定の第２処理を実行する第２処理部とを備えており、
前記所定の周期が到来すると、前記第２処理部が実行中であるか判定し、前記第２処理部が実行中の場合は前記第２処理部の実行を中断して前記第１処理部を実行し、前記第２処理部が実行中ではない場合は前記第１処理部を実行し、
前記第１処理部による処理結果と対応する画像との組を記憶領域へ保存し、
前記第１処理部の実行が終了して計算機リソースに空きが発生すると、実行すべき第２処理部または前記中断された所定の第２処理部がある場合に、前記記憶領域に保存された前記組のうち所定の組を選択し、
前記所定の第２処理部を起動して、前記選択した組が含む前記第１処理部の処理結果および対応する画像に基づいて前記第２処理を実行する、
映像監視システムの制御方法。
【請求項１５】
複数のカメラからの画像を監視する映像監視装置において、
前記各カメラから画像を取得して所定の第１処理を実行する第１処理部と、
前記第１処理部の処理結果と前記画像とに基づいて所定の第２処理を実行する第２処理部と、
前記第１処理部を所定の周期で実行させるべく、前記第１処理部の実行時期と前記第２処理部の実行時期とを調停する実行時期調停部と、
を備える映像監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像監視システム、映像監視システムの制御方法および映像監視装置に関する。
【背景技術】
【０００２】
監視カメラの映像から不審者や不審物をリアルタイムで発見し、安心と安全を実現する映像監視システムが広く用いられている。近年、単一の場所を監視するだけではなく、複数の場所、さらには、施設全体を統合監視することのできる、映像監視システムが出現している。映像監視システムの大規模化に伴い、多数台のカメラの映像をリアルタイムで監視することが求められる。映像監視システムでは、カメラが撮影した映像を、映像解析プログラムで分析し、不審者等の有無を判断し、警報等により監視者に報告する。
【０００３】
本技術分野の背景技術として、特開２０１５−０４９５３２号公報（特許文献１）、特開２０１５−２７８５１５号（特許文献２）、および、「大規模映像解析システム向けのサーバ割当手法」（非特許文献１）が知られている。
【０００４】
特許文献１は、大規模監視システムの処理負荷を低減する方法を開示する。特許文献１では、各カメラの映像に撮影されている物体の状況に応じて各カメラの映像解析処理を切り替え、処理負荷を低減する際に、複数のカメラが撮影した映像内の物体の動きをシミュレートし、その結果に基づき処理負荷を低減できる処理方式を選択する。それにより、特許文献１では、多数台のカメラを持つシステムでの映像解析処理の負荷を低減する。
【０００５】
特許文献２は、所定処理の周期を厳守するように複数の映像解析処理を制御する方法を開示する。特許文献２では、各映像解析処理が必要とする画像取り込みのタイミングをスケジューリングする。これにより特許文献２では、複数の映像解析処理を並行して実行しつつ、各映像解析処理が必要とする画像取り込みのタイミングを守ることができる。
【０００６】
非特許文献１は、映像解析処理において、応答要求が高い処理と、応答要求が低い処理とを分離することにより、応答要求が高い処理の実行が遅延しないように制御する方法を開示している。非特許文献１では、応答要求が高い処理と応答要求が低い処理とをそれぞれ別のバッファに入れ、応答要求が高い処理を優先的に処理する。それにより、非特許文献１では、応答要求が低い処理の負荷が増大した場合でも、応答要求が高い処理の実行が遅延しないようにすることができる。
【０００７】
なお、非特許文献２は、映像から人の流れを解析する技術を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１５−０４９５３２号公報
【特許文献２】特開２０１５−２７８５１５号公報
【非特許文献】
【０００９】
【非特許文献１】岩松他、「大規模映像解析システム向けのサーバ割当手法」、情報処理学会第７７回全国大会１Ｄ−０６
【非特許文献２】米司他、「Ｔｒａｃｋｌｅｔ特徴量とＭｅａｎ−Ｓｈｉｆｔクラスタリングによる歩行者流量推定方式の提案」、電子情報通信学会技術研究報告．ＩＢＩＳＭＬ，情報論的学習理論と機械学習  １１３．１９７
【発明の概要】
【発明が解決しようとする課題】
【００１０】
映像解析プログラムでは、（Ａ）一定時間毎に映像フレームを入力しなければならない処理と、（Ｂ）一回あたりの処理時間が大きく変動する処理とが混在する。
【００１１】
（Ａ）の一定時間毎に映像フレームを入力しなければならない処理には、例えば、非特許文献２に記載のＴｒａｃｋｌｅｔ技術による人流解析技術や、背景差分による動体検出等がある。
【００１２】
（Ｂ）の一回あたりの処理時間が大きく変動する処理には、例えば、顔や物品などの認識、人物や物体の特徴（服色等）抽出等がある。
【００１３】
（Ａ）の映像解析処理は、一定時間間隔で実行されなければならない。もし一定時間で実行できない場合、映像解析を正しく実行できなくなるためである。例えばＴｒａｃｋｌｌｅｔによる移動物体の検出では、実行間隔が一定（例えば１０ＦＰＳ（Frame Per Second））で無い場合、移動物体を正しく検出できない。ただしこの場合、１フレームあたりの処理時間の変動は小さい。したがって、各フレームの処理がある一定時間内に終わる前提でスケジューリングすることができる。以下、本明細書では、これらの処理を総称して、「Ｌｉｇｈｔ処理」と呼ぶ。
【００１４】
それに対して、（Ｂ）の映像解析処理では、検出された物体数に比例した計算時間が必要となるため、各映像フレームの分析がいつ終わるかを予測することができない。一方、これらの映像解析処理は、必ずしも一定時間間隔で実行される必要は無い。すなわち、人物の特徴抽出を、毎フレーム実行する必要は無く、人が画面に写っている間に一回〜数回実施すれば十分である。以下、本明細書では、これらの処理を総称して、「Ｈｅａｖｙ処理」と呼ぶ。
【００１５】
映像解析を行う画像処理システムは、複数のカメラの映像に対して、（Ａ）（Ｂ）で述べた各映像解析処理を、各映像解析処理に対して要求されている時間間隔で、かつ、少ない計算リソースで実行できなければならない。
【００１６】
しかし、上述のＬｉｇｈｔ処理とＨｅａｖｙ処理とを同一の計算リソースを使用してそのまま実行すると、一定頻度で実行されなければならない映像解析処理（Ｌｉｇｈｔ処理）の実行が、Ｈｅａｖｙ処理によって妨げられるため、Ｌｉｇｈｔ処理を一定頻度で実行できなくなる、という課題がある。
【００１７】
本発明は上述の課題に鑑みてなされたもので、その目的は、第１処理部を所定の周期で実行させるべく、第１処理部の実行時期と第２処理部の実行時期とを調停できるようにした映像監視システム、映像監視システムの制御方法および映像監視装置を提供することにある。
【課題を解決するための手段】
【００１８】
上記課題を解決すべく、本発明に従う映像監視システムは、複数のカメラを備える映像監視システムにおいて、各カメラから画像を取得して所定の第１処理を実行する第１処理部と、第１処理部の処理結果と画像とに基づいて所定の第２処理を実行する第２処理部と、第１処理部を所定の周期で実行させるべく、第１処理部の実行時期と第２処理部の実行時期とを調停する実行時期調停部と、を備える。
【発明の効果】
【００１９】
本発明によれば、第２処理部の処理時間が長い場合であっても、第１処理部を所定の周期で実行させることができる。
【図面の簡単な説明】
【００２０】
【図１】映像監視システムの機能構成図である。
【図２】映像監視システムのハードウェア構成図である。
【図３】「第１処理」としての第１解析処理のフローチャートである。
【図４】「第２処理」としての第２解析処理のフローチャートである。
【図５】初期化処理のフローチャートである。
【図６】「実行時期調停部」としてのタイミング調停部の動作を示すフローチャートである。
【図７】「処理対象選択部」としての解析対象選択部が実行する処理のフローチャートである。
【図８】一時記憶される取得画像およびその解析結果の例を示す説明図である。
【図９】第１解析処理と第２解析処理の動作タイミングを示す説明図である。
【図１０】第２実施例に係り、解析対象選択部の動作を示す説明図である。
【図１１】第４実施例に係り、解析対象選択部の動作を示す説明図である。
【図１２】第５実施例に係り、第１解析処理のフローチャートである。
【図１３】第６実施例に係り、カメラに割り当てるスレッド数を更する様子（（ａ）（ｂ））と、一つのカメラに複数スレッドを割り当てた場合の処理タイミング（（ｃ））とを示す説明図である。
【発明を実施するための形態】
【００２１】
以下、図面に基づいて本発明の実施の形態を説明する。本実施形態の映像監視システムは、処理時間が不定である処理（第２処理）に妨げられることなく、周期的に実行することが必要な処理（第１処理）を実行する。
【００２２】
本実施形態の映像監視システムは、後述のように、複数のカメラ２と、所定間隔でカメラ２から画像を取得する第１解析部１１０と、画像を解析する第２解析部１２０と、第１解析部１１０および第２解析部１２０の処理タイミングを所定のルールに基づき調停するタイミング調停部１６０とを備える。第１解析部１１０は、所定周期で実施しなければならない映像解析処理（Ｌｉｇｈｔ処理）を実行する。第２解析部１２０は、処理時間が不定の映像解析処理（Ｈｅａｖｙ処理）を実施する。
【００２３】
換言すれば、本実施形態の映像監視システムは、第１解析処理を実施するためのスレッドをカメラ２毎に用意するとともに、複数のカメラに共有される第２解析処理用のスレッドを用意し、第１解析処理が所定の周期で実行されるように、第２解析処理用スレッドの優先度を第１解析処理用スレッドの優先度よりも低く設定する。本実施例の映像監視システムは、映像解析システムと呼ぶこともできる。
【実施例１】
【００２４】
図１〜図９を用いて第１実施例を説明する。図１は映像監視システムの機能構成を示し、図２は映像監視システムのハードウェア構成を示す。先に図２を参照してハードウェア構成を説明し、次に図１を参照して機能構成を説明する。
【００２５】
映像監視システムは、図２に示すように例えば、「映像監視装置」としての映像解析サーバ１と、複数のカメラ２と、映像解析結果を保持するデータベースサーバ３と、映像解析結果を表示する端末４とを備える。端末４は、複数設けることができるが、図２では１つのみ示す。
【００２６】
映像解析サーバ１は、複数のカメラ２で撮影した映像（画像とも呼ぶ）を解析し、その解析結果をデータベースサーバ３および端末４へ出力する装置である。映像監視システムのユーザ（監視者）は、端末４を用いてデータベースサーバ３にアクセスすることで、解析結果を端末４に表示させて確認することができる。
【００２７】
映像解析サーバ１は、通常のＰＣ（Personal Computer）サーバとして構成される。映像解析サーバ１は、例えば、ＣＰＵ（Central Processing Unit）１０と、メモリ１１と、ストレージ１２と、ネットワークインターフェース１３と、入出力部１４とを備える。
【００２８】
メモリ１１は、例えば、第１解析処理プログラムＰ１１０と、第２解析処理プログラムＰ１２０と、解析対象選択処理プログラムＰ１５０と、タイミング調停処理プログラムＰ１６０とをそれぞれ実現するためのコンピュータプログラムを記憶している。それらのコンピュータプログラムは、ストレージ１２からメモリ１１へ読み出されてもよいし、最初からメモリ１１に格納されていてもよい。ＣＰＵ１０がそれらのコンピュータプログラムを読み込んで実行することにより、第１解析部１１０、第２解析部１２０、解析対象選択部１５０、タイミング調停部１６０が実現される。なお、図１に示す一時記憶部１３０と解析結果出力部１４０とは、コンピュータプログラムＰ１１０，Ｐ１２０，Ｐ１５０，Ｐ１６０を実行する際に実現される。
【００２９】
ストレージ１２は、例えば、ハードディスクドライブ（HDD：Hard Disk Drive）、フラッシュメモリデバイス（SSD：Solid State Drive）等である。
【００３０】
ネットワークインターフェース１３は、専用通信回線または公衆通信回線等の通信ネットワークＣＮ１を介して、データベースサーバ３および端末４と通信する。各カメラ２は、例えば、ＬＡＮ（Local Area Network）等の通信ネットワークＣＮ２を介して、映像解析サーバ１の入出力部１４に映像を出力する。入出力部１４が受信した映像は、ストレージ１２に格納される。
【００３１】
カメラ２は、例えば、商業施設、官公庁の施設、駅、空港、交差点、工場、病院等に設置される。各カメラ２は、例えば、同一の施設内の同一フロアに分散して配置されてもよいし、同一施設内の異なるフロアにそれぞれ配置されてもよい。または、各カメラ２は、異なる施設の異なるフロアにそれぞれ配置されてもよい。カメラ２は、例えば、ボックス型カメラ、またはドーム型カメラのいずれでもよい。カメラレンズの向きや角度を遠隔操作できるカメラでもよい。
【００３２】
各カメラ２は、有線通信経路または無線通信経路のいずれかまたは両方を含む通信ネットワークＣＮ２を介して、映像を映像解析サーバ１へ送信する。各カメラの種類、仕様、フレームレートなどの設定値は、同一であってもよいし、異なってもよい。複数のカメラ２の一部は、移動可能なカメラでもよい。
【００３３】
データベースサーバ３は、解析結果を管理するデータベース３１０を有する。データベースサーバ３は、例えば、ＣＰＵ３０と、メモリ３１と、ストレージ３２と、ネットワークインターフェース３３とを備える。データベース３１０は、ストレージ３２内に設けられている。データベースサーバ３は、ネットワークインターフェース３３から通信ネットワークＣＮ１を介して、映像解析サーバ１および端末４に接続されている。データベースサーバ３を映像解析サーバ１内に設ける構成でもよい。
【００３４】
端末４は、ユーザの使用する装置である。ユーザは、端末４を介してデータベースサーバ３にアクセスすることで、映像解析サーバ１の解析結果を利用することができる。端末４は、例えば、パーソナルコンピュータ、携帯電話（いわゆるスマートフォンを含む）、携帯情報端末、ウエアラブルコンピュータ等のように構成される。
【００３５】
端末４は、例えば、ＣＰＵ４０と、メモリ４１と、ネットワークインターフェース４３と、ユーザインターフェース部４４とを備える。図示は省略するが端末４は、ストレージを備えてもよい。端末４は、ネットワークインターフェース４３から通信ネットワークＣＮ１を介して、データベースサーバ３に接続されている。
【００３６】
メモリ４１には、例えば、実時間解析結果表示処理プログラムＰ４１０と、解析結果検索処理プログラムＰ４２０とを格納している。ＣＰＵ４０が、それらのコンピュータプログラムを読み込んで実行することで、実時間解析結果表示部４１０と解析結果検索部４２０とが実現される。
【００３７】
図１を参照する。第１解析部１１０は、各カメラ２に対応して設けられる。各第１解析部１１０は、対応するカメラ２から最新の映像フレームの画像を取得し、取得した画像について第１解析処理を実行する。第１解析部１１０は、画像から例えば人体や荷物などの各種オブジェクトを検出する。第１解析部１１０がカメラ２から取得した画像とその解析結果（オブジェクトの検出結果）とは、一時記憶部１３０に保持される。一時記憶部１３０は、メモリ１１の空き領域に画像および解析結果を記憶する。
【００３８】
以下、第１解析部１１０による画像解析（映像中の画像の解析。以下同じ）を第１解析処理または一次解析とよぶことがある。第２解析部１２０による画像解析を第２解析処理または二次解析と呼ぶことがある。第１解析部１１０は、例えば「画像取得・解析処理部」と呼ぶこともできる。
【００３９】
第２解析部１２０は、一時記憶部１３０に記憶された画像およびその解析結果のうち、解析対象選択部１５０により選択されたカメラ２の画像およびその解析結果に基づいて、第２解析処理を実施する。第２解析部１２０は、例えば、画像から検出されたオブジェクトについて、その特徴を抽出する。オブジェクトの特徴としては、例えば、肌の色、顔色、手荷物の形状、危険性の有無等である。第２解析部１２０は、その解析結果を解析結果出力部１４０へ出力する。第２解析部１２０は、例えば「画像解析処理部」と呼ぶこともできる。
【００４０】
ここで、上述した通り、第１解析部１１０は、カメラ２と一対一で対応する。これに対し、第２解析部１２０の数（図中ｍ）は、カメラの数（図中ｎ）とは無関係に決めることができる。例えば、第２解析部１２０の数（ｍ）は、カメラの数（ｎ）以下に設定することができる（ｍ≦ｎ）。
【００４１】
解析対象選択部１５０は、上述の通り、各第１解析部１１０が処理した画像の中から、第２解析部１２０で処理すべき画像を選択する。後述のように、本実施例では、ほぼ一定の短時間で完了する第１解析部１１０の処理を、処理に要する時間が第１解析部１１０の解析結果等に依存するため定まらない第２解析部１２０の処理よりも優先する。したがって、解析対象選択部１５０は、第１解析部１１０の処理した画像の中から、第２解析部１２０の実行タイミングに適合する最新の画像を選択して、第２解析部１２０により処理させる。換言すれば、本実施例では、第１解析部１１０の処理した画像のうち選択しなかった画像、つまり第２解析部１２０の実行タイミングに適合しなかった画像を、第２解析部１２０の処理対象とせず、無視する。
【００４２】
タイミング調停部１６０は、「実行時期調停部」の例である。タイミング調停部１６０は、各第１解析部１１０および各第２解析部１２０の実行順序を所定のルールに基づいて制御する。
【００４３】
実時間解析結果表示部４１０は、各第１解析部１１０の解析結果を解析結果出力部１４０を介して取得し、端末４のユーザインターフェース部４４に表示する。ユーザは、実時間解析結果表示部４１０を用いることで、第１解析部１１０による実時間の解析結果を確認することができる。
【００４４】
解析結果検索部４２０は、データベース３１０に格納されている、各第１解析部１１０の解析結果および各第２解析部１２０の解析結果に対して検索し、その検索結果をユーザインターフェース部４４に表示する。
【００４５】
映像監視システムの動作について図３〜図７を用いて説明する。図３では第１解析処理を説明し、図４では第２解析処理を説明する。図４では、第２解析処理を説明する。図５では、初期化処理を説明する。図６では、タイミング調停処理を説明する。図７では、解析対象選択処理を説明する。
【００４６】
図３に示す第１解析処理は、各第１解析部１１０により実行される。以下に述べるように、各第１解析部１１０は、各カメラ２のうち対応するカメラ２から、最新の映像を取得するとともに（Ｓ１１１）、所定周期で実施しなければならない第１の解析処理（Ｓ１１２）を実施する。
【００４７】
具体的には、以下に示す処理が繰り返し実行される。すなわち、第１解析部１１０は、指定された実行タイミングになると（スケジュールされたタイミングになると）、第１解析部１１０は、対応するカメラ２から最新の画像データ（映像フレーム）を取得する（Ｓ１１１）。第１解析部１１０は、カメラ２の撮影する動画映像のストリームから、現時点での最新の映像フレームを表す静止画像のデータを取得する。以下、画像データを「画像」と略記する場合がある。
【００４８】
第１解析部１１０は、ステップＳ１１１で取得した画像に対して、第１解析処理を実施する（Ｓ１１２）。第１解析処理は、例えば、Ｔｒａｃｋｌｅｔの人流解析や、背景差分による動体検出等の、所定周期で実施しなければならない解析処理である。
【００４９】
第１解析部１１０は、ステップＳ１１１で取得した画像と、ステップＳ１１２での解析結果のメタデータとを、一時記憶部１３０へ格納する（Ｓ１１３）。
【００５０】
解析結果のメタデータとは、例えば人流解析結果の場合、検出された人物の位置等を表す座標データである。図８を用いて解析結果のメータデータについて説明する。
【００５１】
図８は、一時記憶部１３０の記憶内容の例を示す。一時記憶部１３０は、例えばカメラＩＤ１３１と、時刻１３２と、取得画像１３３と、解析結果１３４とを対応づけて管理する。つまり、一時記憶部１３０は、カメラごとに、各カメラで撮影した画像とその解析結果とを対応づけて記憶する。
【００５２】
カメラＩＤ１３１は、映像監視システム内で各カメラ２を一意に特定するための識別情報である。時刻１３２は、カメラ２で撮影した画像を第１解析処理した時刻を示す。第１解析処理は、カメラ２で撮影した画像をほぼ実時間で処理するため、第１解析処理の時刻と撮影時刻とは近い。したがって、時刻１３２を撮影時刻と呼ぶこともできる。取得画像１３３は、カメラ２で撮影した画像のデータである。
【００５３】
解析結果１３４は、取得画像１３３について第１解析処理を行った結果を示す。解析結果１３４は、例えば、人物ＩＤ（オブジェクトＩＤ）と、人物の位置（オブジェクトの位置）と、人物の大きき（オブジェクトの大きさ）とを含む。
【００５４】
第１行目の例では、「１２３」は人物ＩＤを示し、それに続く「１００，５０」はその人物の画像上の位置のｘｙ座標である。その次の「１５０，３００」はその人物の画像上での大きさを示す。ここでは、第１解析処理を実時間処理するために、人物と手荷物とを区別せずに検出している。これに限らず、第１解析処理は、人物と手荷物とを区別して検出してもよい。
【００５５】
図３に戻る。第１解析部１１０は、ステップＳ１１２の解析結果（および必要な場合は解析対象の画像）を、解析結果出力部１４０へ出力する（Ｓ１１４）。これにより一連の第１解析処理が終了すると、第１解析部１１０は、次の実行タイミングが来るまで待機する（Ｓ１１５）。実行タイミングは、タイミング調停部１６０により決定される。
【００５６】
以上の処理により、カメラ２から最新画像を取得する一連の流れの中で、第１解析処理が実施される。また、カメラ２と第１解析部１１０とは一対一で対応しているため、必ず同一のカメラ２から画像が取得される。したがって、第１解析部１１０の内部状態として、今までの映像フレームに対する処理結果を記憶しておくことにより、同一のカメラ２からの一定時間間隔の映像フレームを解析する、Ｔｒａｃｋｌｅｔや背景差分等の処理を実施することができる。
【００５７】
ステップＳ１１４で出力された解析結果は、タイムスタンプとともに、データベース３１０に格納される。これにより、端末４からデータベース３１０に対して第１解析処理の結果を検索することができる。さらに、端末４は、第１解析処理の結果を実時間で表示することもできる。
【００５８】
図４は、第２解析部１２０の実行する第２解析処理のフローチャートである。第２解析部１２０は、一時記憶部１３０に記憶されている、処理対象となるカメラ２の最新の映像フレームの画像と、第１解析部１１０における解析結果とを取得して、第２解析処理を実施する。具体的には、以下に示す処理が繰り返し実行される。
【００５９】
すなわち、第２解析部１２０は、スケジュールされた実行タイミングが到来すると、画像解析対象決定機能１５０に問合せることにより、解析対象のカメラ２を決定する（Ｓ１２１）。続いて一時記憶部１３０より、前ステップで決定したカメラの最新映像フレームの画像データと該当する第１の映像解析結果を取得する（Ｓ１２２）。次に、取得した画像データ、さらには必要な場合は第１の映像解析結果を用いて、第２の映像解析処理を実施する（Ｓ１２３）。解析結果は、解析結果出力機能を介して、データベースサーバ３および端末４に出力される（Ｓ１２４）。
【００６０】
図４で述べたように、第２解析部１２０が実行されると、解析対象選択部１５０により決められたカメラ２の最新画像に対して、第２解析処理が実行される。
【００６１】
第２解析部１２０は、解析対象選択部１５０により選択されたカメラ２の最新画像とその最新画像についての第１解析処理の結果とを組として、一時記憶部１３０から取得することにより、第１解析処理の結果を用いて、第２解析処理を実施できる。
【００６２】
例えば、第１解析処理により人物を検出し、第２解析処理によりその人物の服の色や手荷物の形状等の特徴を解析することができる。第２解析部１２０は、一時記憶部１３０から第１解析処理の結果を得ることにより、第１解析処理で検出した人物の位置データを活用できるため、第２解析処理の負荷を軽減できる。
【００６３】
図５を参照して映像監視システムの初期化処理を説明する。映像解析サーバ１は起動すると、最初に、第１解析部１１０を初期化する。すなわち、映像解析サーバ１は、映像監視システム内のカメラ２の一覧であるカメラリストを取得する（Ｓ１０）。映像解析サーバ１は、例えば、図示せぬ設定ファイルや構成データベースからカメラリストを取得することができる。その後、映像解析サーバ１は、各カメラ２に対して、ステップＳ１１からステップＳ１５の処理を繰り返す。
【００６４】
繰り返し処理では、処理対象のカメラ２を選択した後（Ｓ１１）、選択されたカメラ２に対応した第１解析部１１０を一つ作成する（Ｓ１２）。具体的には、例えば、選択されたカメラ２の画像の処理を担当するスレッドが１つ生成される。生成されたスレッドは、処理対象として選択されたカメラ２に紐づけられており、そのカメラ２のみから画像を取得して、第１解析処理を実施する。
【００６５】
映像解析サーバ１は、生成した第１解析部１１０の実行間隔を、予め決められた値に設定する（Ｓ１３）。さらに、映像解析サーバ１は、第１解析処理の優先度を高優先度に設定する（Ｓ１４）。
【００６６】
映像解析サーバ１は、第１解析部１１０に該当するスレッドの起動間隔を、予め決められた値に設定するとともに（Ｓ１３）、その優先度を高く設定することにより（Ｓ１４）、ステップＳ１２で生成したスレッド（第１解析部）が必ず一定間隔で起動されるように設定する。これにより、所定の間隔で実行する必要がある第１解析処理を、決められた時間間隔で実行することができる。
【００６７】
映像解析サーバ１は、メモリ１１またはストレージ１２内に、第１解析処理の結果と解析対象の画像を記憶させるための一時記憶部１３０を確保する（Ｓ１５）。映像解析サーバ１は、ステップＳ１１〜Ｓ１５の処理を全てのカメラ２について実行したか判定する（Ｓ１６）。映像解析サーバ１は、未処理のカメラ２が残っていると判定すると（Ｓ１６：ＮＯ）、ステップＳ１１に戻って未処理のカメラ２の中から一つを選択し、ステップＳ１２〜Ｓ１５を実行する。
【００６８】
以上により、全てのカメラ２に対して、対応する第１解析部１１０がそれぞれ生成され、実行間隔と優先度および一時記憶部が設定される。
【００６９】
その後、映像解析サーバ１は、第２解析部１２０の初期化を開始する。すなわち、映像解析サーバ１は、第２解析部１２０の数を取得する（Ｓ１７）。映像解析サーバ１は、ステップＳ１７で取得した第２解析部１２０の数だけ、ステップＳ１８およびＳ１９の処理を繰り返す。
【００７０】
第２解析部１２０の数は、予め定められた設定値である。第２解析部１２０の数は、カメラ２の設置数とは無関係に定めることができる。第２解析部１２０を生成する数は、カメラ２の設置数以下に定めてもよいし、カメラ２の設置数よりも少なくてもよい。具体的には、映像監視システムの負荷や、第２解析部１２０を実行させるべき頻度等に応じて、最適な数を設定する必要がある。
【００７１】
繰り返し処理では、映像解析サーバ１は、第２解析部１２０を一つ作成する（Ｓ１８）。具体的には、映像解析サーバ１は、第２解析部１２０に該当するスレッドを一個生成する。ここで、第２解析部１２０に該当するスレッドは、特定のカメラ２に紐づけられることはなく、解析対象選択部１５０により決められた任意のカメラ２の画像を解析する。
【００７２】
映像解析サーバ１は、ステップＳ１８で作成した第２解析部１２０の優先度を、低優先度に設定する（Ｓ１９）。すなわち第２解析部１２０は、第１解析部１１０の優先度よりも低い優先度に設定される。これにより、第２解析部１２０は、高優先度の第１解析部１１０が動作していない空き時間にのみ実行されるよう、タイミング調停部１６０によりスケジューリングされる。
【００７３】
映像解析サーバ１は、ステップＳ１７で取得した数だけ、第２解析部１２０を生成したかチェックする（Ｓ２０）。映像解析サーバ１は、ステップＳ１７で取得した数だけ第２解析部１２０を生成していない場合（Ｓ２０：ＮＯ）、ステップＳ１８へ戻り、第２解析部１２０を新たに一つ作成し、優先度を設定する（Ｓ１９）。
【００７４】
映像解析サーバ１は、ステップＳ１７で取得した数だけ第２解析部１２０を作成すると（Ｓ２０：ＹＥＳ）、本処理を終了する。
【００７５】
図６のフローチャートは、タイミング調停部１６０の動作を示す。タイミング調停部１６０は起動すると、基本状態に遷移し、以下のいずれかのイベントが発生するのを待つ（Ｓ１６１）。
【００７６】
（イベント１）第１解析部１１０の実行タイミングが到来（Ｓ１６１ａ）
【００７７】
タイミング調停部１６０は、第１解析部１１０の実行タイミングが到来すると（Ｓ１６１ａ）、映像解析サーバ１のＣＰＵリソースに空きがあるか判定する（Ｓ１６２）。タイミング調停部１６０は、ＣＰＵリソースに空きがないと判定すると（Ｓ１６２：ＮＯ）、実行中の第２解析部１２０を一時停止させて、実行待ち状態とする（Ｓ１６３）。そして、タイミング調停部１６０は、第１解析部１１０を起動させて（Ｓ１６４）、ステップＳ１６１へ戻る。
【００７８】
一方、タイミング調停部１６０は、ＣＰＵリソースに空きがあると判定すると（Ｓ１６２：ＹＥＳ）、ステップＳ１６３をスキップし、第１解析部１１０を起動させて（Ｓ１６４）、基本状態へ戻る（Ｓ１６１）。
【００７９】
（イベント２）ＣＰＵリソースに空きが出た場合（Ｓ１６１ｂ）
【００８０】
第１解析部１１０の実行が全て終了すると、映像解析サーバ１のＣＰＵリソースに空きが生じる。タイミング調停部１６０は、映像解析サーバ１のＣＰＵリソースに所定量以上の空きが生じると（Ｓ１６１ｂ）、実行待ち状態の第２解析部１２０が存在するか判定する（Ｓ１６５）。
【００８１】
タイミング調停部１６０は、実行待ち状態の第２解析部１２０が存在すると判定すると（Ｓ１６５：ＹＥＳ）、実行待ち状態の第２解析部１２０を起動させた後（Ｓ１６６）、基本状態へ戻る（Ｓ１６１）。これに対し、タイミング調停部１６０は、実行待ち状態の第２解析部１２０が存在しない場合（Ｓ１６５：ＮＯ）、何もせずに基本状態へ戻る（Ｓ１６１）。
【００８２】
以上述べたタイミング調停部１６０の処理により、本実施例の映像解析サーバ１は、第１解析部１１０を定期的に実行するとともに、空いている時間で第２解析部１２０を実行することができる。タイミング調停部１６０は、例えば、バックグラウンド処理（デーモン等）、もしくはＯＳ（Operating System）のスケジューリング等により実現することができる。
【００８３】
図７のフローチャートを用いて、解析対象選択部１５０の処理を説明する。解析対象選択部１５０は起動すると、カメラリストを取得する（Ｓ１５１）。解析対象選択部１５０は、カメラリストに記載されたカメラＩＤを順番に整列させて記憶する（Ｓ１５２）。その後、解析対象選択部１５０は、後述するステップＳ１５３からステップＳ１５７の処理を繰り返す。
【００８４】
解析対象選択部１５０は、解析対象のカメラを選択する要求が到来するのを待ち合わせる（Ｓ１５３）。この選択要求は、いずれかの第２解析部１２０において、図４で述べたステップＳ１２１が実行されると、発生する。つまり、この選択要求は、第２解析処理を実施すべきカメラ２の画像を選択するための要求である。
【００８５】
解析対象選択部１５０は、選択要求が発生すると（Ｓ１５３：ＹＥＳ）、最後に第２解析部１２０を起動させたカメラのＩＤを内部記憶から取得する（Ｓ１５４）。解析対象選択部１５０は、ステップＳ１５２で並べ替えた順番に従って、次に処理すべきカメラのＩＤを選択する（Ｓ１５５）。
【００８６】
解析対象選択部１５０は、ステップＳ１５５で選択したカメラＩＤを、ステップＳ１５３で受信した選択要求の発行元である第２解析部１２０へ出力する（Ｓ１５６）。選択さされたカメラＩＤを受信した第２解析部１２０は、図４で述べたステップＳ１２２〜Ｓ１２４の処理を実行する。なお、解析対象選択部１５０は、ステップＳ１５６で出力したカメラＩＤを内部記憶へ記憶する。
【００８７】
映像解析サーバ１は、解析対象選択処理により、第２解析部１２０が各カメラ２の画像データを均等に処理するように制御することができる。
【００８８】
解析対象選択部１５０は、全ての第２解析部１２０に対して１個のみ設けられる。解析対象選択部１５０を１個だけ設けることで、各第２解析部１２０に対して、処理を実施するカメラ２を均等に割り当てることができる。本実施例では、解析対象選択部１５０は、各第２解析部１２０に対して、カメラ２を順番に割り当てる。
【００８９】
図６、図７で述べた処理により、複数のカメラ２からの映像を解析する映像解析サーバ１において、第１解析処理を要求された頻度で実行することができ、限られた計算リソースを有効に活用してリアルタイムで監視することができる。
【００９０】
図９を用いて、本実施例の効果について説明する。図９は、第１解析部１１０および第２解析部１２０の動作タイミングを示すタイムチャートである。図９（１）および（２）は、比較例１，２の動作タイミングを示すタイムチャートである。図９（３）は、本実施例の動作タイミングを示すタイムチャートである。図９（３）に示す本実施例のタイムチャートは、図９（２）に示す比較例２の状況下に本実施例を適用した場合を示す。
【００９１】
図９では、２台のカメラ２の画像からオブジェクトを検出する軽い処理（Ｌｉｇｈｔ処理）と、検出されたオブジェクトから特徴を検出する重い処理（Ｈｅａｖｙ処理）を、同一のＣＰＵリソースで順番に実行する。Ｌｉｇｈｔ処理は、第１解析部１１０の行う第１処理に相当し、例えば、人物の移動を解析する人流解析を行う。人流解析結果と画像とはデータベース３１０に書き込まれる。Ｈｅａｖｙ処理は、第２解析部１２０の行う第２処理に相当し、人物の服の色などの特徴を抽出する。人物の特徴はデータベース３１０に書き込まれる。
【００９２】
図９では、Ｌｉｇｈｔ処理に符号”Ａ”を、Ｈｅａｖｙ処理に符号”Ｂ”を付す。符号”Ａ”および”Ｂ”には、カメラＩＤに対応する数字を付加する。つまり、符号”Ａ１”は、１番目のカメラの画像に対するＬｉｇｈｔ処理であることを示す。符号”Ａ２”は、２番目のカメラの画像に対するＬｉｇｈｔ処理であることを示す。同様に、符号”Ｂ１”は、１番目のカメラの画像に対するＨｅａｖｙ処理であることを示す。符号”Ｂ２”は、２番目のカメラの画像に対するＨｅａｖｙ処理であることを示す。ここでは以下、第１解析処理に符号”Ａ”を用い、第２解析処理に符号”Ｂ”を用いる。
【００９３】
第１解析処理Ａ１，Ａ２は、所定の周期Ｔで定期的に実行される必要がある。前回の周期で取得した画像と今回の周期で取得した画像との差分を抽出することで、オブジェクトの存在を正確に検出するためである。各カメラ２に関する第１解析処理の所要時間は一定である。つまり、第１解析処理Ａ１の処理時間ｔａ１と第１解析処理Ａ２の処理時間ｔａ２とは等しい。
【００９４】
これに対し、第２解析処理Ｂ１，Ｂ２の処理に要する時間は一定ではなく、第１解析処理の結果等に応じて変動する。つまり、第２解析処理Ｂ１の処理時間ｔｂ１と第２解析処理Ｂ２の処理時間ｔｂ２とは、その長さがまちまちである。
【００９５】
図９（１）は、比較例の第１ケースにおけるタイムチャートを示す。第１ケースでは、第１解析処理Ａ１，Ａ２の実行されていない空き時間内に、第２解析処理Ｂ１，Ｂ２が行われる場合を示す。第１解析処理Ａ１，Ａ２の実行されていない空き時間とは、前の周期での第１解析処理Ａ１，Ａ２の終了時から次の周期での第１解析処理Ａ１，Ａ２の開始時までの時間である。図９（３）では、この空き時間に符号”ｔｉ”を付している。
【００９６】
図９（２）は、比較例の第２ケースにおけるタイムチャートを示す。第２ケースでは、周期Ｔ（２）で開始された第２解析処理Ｂ２の処理時間ｔｂ２が長くなったために、周期Ｔ（３）で行われるべきであった第１解析処理Ａ１，Ａ２が実行されていない。つまり、第１解析処理Ａ１，Ａ２を所定周期Ｔで実行できなくなる。この場合、第１解析処理Ａ１，Ａ２の解析精度は低下する。
【００９７】
図９（３）は、本実施例のタイムチャートを示す。図９（３）では、図９（１）（２）と同様に、２台のカメラ２の映像を１つのＣＰＵリソースで処理する場合を示す。図９（３）では、第１解析処理Ａ１を実行するタイムチャートＴＣ１と、第１解析処理Ａ２を実行するタイムチャートＴＣ２と、第２解析処理Ｂ１，Ｂ２を実行するタイムチャートＴＣ３とを上下に並べて示している。第１解析処理Ａ１，Ａ２および第２解析処理Ｂ１，Ｂ２は、この例ではスレッドにより実装されている。ここでは以下、第１解析部１１０スレッド、第２解析部１２０スレッドと呼ぶことがある。
【００９８】
本実施例では、各カメラ２の第１解析部１１０（図中Ａ１，Ａ２）のスレッド（ＴＣ１，ＴＣ２）は、必ず一定の時間間隔で実行されるようにスケジュールされる。これが可能になる理由は、図５で述べた初期化処理のステップＳ１３で第１解析部１１０の実行間隔Ｔを設定し、さらに図６で述べたタイミング調停処理において、第１解析部１１０スレッドを定期的に起動（状態遷移Ｓ１６１ａ）させるためである。
【００９９】
第２解析部１２０スレッドにおける一枚のフレーム画像あたりの処理時間ｔｂ１，ｔｂ２は、処理対象の画像の内容（例えば画像に写っている人物の数等）に従って大きく変動する。しかし、本実施例では、第２解析部１２０の処理が長引いて、第２解析部１２０の実行中に次の第１解析部１１０の実行タイミングが到来した場合、第２解析部１２０をいったん休止させ、第１解析部１１０を優先的に実行させる。以下では、処理を休止させることを、処理を中断させると表現する場合がある。
【０１００】
第１解析部１１０の実行を第２解析部１２０よりも優先させることができるのは、初期化処理時に第２解析部１２０の優先度を第１解析部１１０の優先度よりも低く設定する（Ｓ１９，Ｓ１４）とともに、タイミング調停部１６０により第１解析部１１０を第２解析部１２０よりも優先して起動させるためである（図６のＳ１６３，Ｓ１６４）。
【０１０１】
これに対し、第２解析部１２０の処理Ｂ１，Ｂ２は、初期化処理時に生成された第２解析部１２０スレッドにより、第１解析部１１０の空き時間でのみ実行される。すなわち、図６で述べたように、タイミング調停部１６０において、第１解析部１１０が動作するタイミングでＣＰＵリソースに空きが無い場合は（Ｓ１６２）、第２解析部１２０スレッドの実行が休止され（Ｓ１６３）、第１解析部１１０が起動される（Ｓ１６４）。
【０１０２】
その後、第１解析部１１０が全て終了してＣＰＵリソースに空きが生じると（状態遷移Ｓ１６１ｂ）、実行待ちの第２解析部１２０が存在するか判定され（Ｓ１６５）、実行待ちの第２解析部１２０が存在する場合には、実行が再開される（Ｓ１６６）。
【０１０３】
具体的に説明する。図９の例では、周期Ｔ（２）で開始された第２解析処理Ｂ２は、周期Ｔ（３）での最初の第１解析処理Ａ１の実行タイミングが到来したときに、その動作が一時中断される。そして、周期Ｔ（３）における最後の第１解析処理Ａ２の実行が終了すると、中断されていた第２解析処理Ｂ２は再開される。
【０１０４】
再開された第２解析処理Ｂ２の実行が、周期Ｔ（４）での第１解析処理Ａ１の実行前に終了しなかった場合、再開された第２解析処理Ｂ２は再び中断する。つまり、再開された第２解析処理Ｂ２は、周期Ｔ（４）で最初に実行される第１解析処理Ａ１の実行タイミングが到来したときに、再び休止する。
【０１０５】
そして、周期Ｔ（４）で最後に実行される第１解析処理Ａ２が終了すると、中断されていた第２解析処理Ｂ２は、再開される。第２解析処理Ｂ２が終了すると、ただちに他のカメラについての第２解析処理Ｂ１が開始される。
【０１０６】
図９（３）に示す例では、第２解析部１２０スレッドは１個（タイムチャートＴＣ３に該当するスレッド）のみ生成される。そのスレッドは、１番目のカメラに関する第２解析処理Ｂ１と、２番目のカメラに関する第２解析処理Ｂ２とを実施する。
【０１０７】
すなわち、本実施例では、解析対象選択部１５０の指示に従い、第２解析処理を行うカメラを決定する。本実施例では、カメラを順番に処理する。すなわち、１番目のカメラの画像の第２解析処理Ｂ１と、２番目のカメラの画像の第２解析処理Ｂ２とは、交互に実施される。タイムチャートＴＣ３の右端に示すように、第２解析処理Ｂ２が終了すると直ちに、第２解析処理Ｂ１が同一スレッドで実施される。
【０１０８】
さらに、本実施例では、第２解析部１２０のスレッド数をシステム初期化処理時に予め設定するため（図５のＳ１７）、第２解析部１２０が使用するＣＰＵリソースを制限することができる。
【０１０９】
すなわち、本実施例では、例えば画像に写っている人数が増えて、第２解析部１２０の負荷が増大した場合であっても、第２解析部１２０の負荷が無制限に増えて、同一ＣＰＵリソースを共有する他の処理の負荷を圧迫するのを未然に回避できる。
【０１１０】
さらに、本実施例では、第２解析部１２０において、解析対象のカメラを決めた後（図４のＳ１２１）、解析対象のカメラの最新画像および第１解析部１１０の解析結果を一時記憶部１３０から取得する（Ｓ１２２）。これにより、本実施例では、常にリアルタイムで画像を解析することができる。
【０１１１】
さらに、本実施例では、一時記憶部１３０から、最新画像とともに第１解析処理の解析結果を取得するため、依存関係のある映像解析処理を取り扱うことができる。
【０１１２】
本実施例では、事前に設定したＣＰＵリソース内で第２解析部１２０の実行を保証しつつ、第１解析部１１０のリアルタイム解析処理を実現することができる。つまり、本実施例では、処理時間が不定の映像解析処理（第２解析処理）に妨げられることなく、周期的に実行することが必要な映像解析処理（第１解析処理）を実行することができる。これにより本実施例では、例えば施設や道路などでのセキュリティ監視、病院や介護施設での秒人の見守り監視などをリアルタイムで行うことができる。
【０１１３】
これに対し、非特許文献１に記載の技術を利用して、各第１解析処理の結果をバッファリングしておき、それぞれ独立にスケジューリングする構成とすれば、第１解析処理の実行周期を守ることはできる。しかしこの場合は、バッファリングによる遅延が生じるため、リアルタイム監視処理ができなくなる。
【０１１４】
ここで、第１解析処理と第２解析処理との対応関係を説明する。図９（３）に二点鎖線で示すように、第２解析処理は、選択されたカメラの画像のうち最新の画像およびその第１解析結果について解析する。具体的には、周期Ｔ（１）の第２解析処理Ｂ１は、１番目のカメラの画像と第１解析処理Ａ１の解析結果とに基づいて解析する。周期Ｔ（２）では、第２解析処理Ｂ２は、周期Ｔ（２）で実行された最新の第１解析処理Ａ２の解析結果と画像とに基づいて解析する。周期Ｔ（１）で実行された第１解析結果Ａ２の解析結果と画像とは、第２解析処理Ｂ２の対象とならない。
【０１１５】
同様に、周期Ｔ（４）の第２解析処理Ｂ１では、周期Ｔ（４）で実行された最新の第１解析処理Ａ１の解析結果と画像とに基づいて解析する。周期Ｔ（４）の第２解析処理Ｂ１は、周期Ｔ（２），Ｔ（３）でそれぞれ行われた第１解析処理Ａ１の解析結果と画像については、処理対象としない。このように、第２解析部１２０は、選択されたカメラの最新画像とその画像に対する第１解析部１１０の解析結果とに基づいて、第２解析処理を実行する。これにより、第２解析部１２０は、常に最新の画像を対象として解析することができる。
【実施例２】
【０１１６】
図１０を用いて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当するため、第１実施例との相違を中心に述べる。本実施例では、第２解析部１２０の実行頻度に上限を設ける。
【０１１７】
第１実施例では、処理時間が不定の第２解析処理は、第２解析部１２０により、ベストエフォートで実行される。すなわち、第２解析処理は、初期化処理で生成された第２解析部１２０スレッドに空きがある限り、解析対象選択部１５０が指定したカメラ２の最新映像と第１解析処理の解析結果とを用いて実行される。
【０１１８】
第２解析処理の処理時間は、画像の内容により大きく異なるため、第２解析処理の負荷が小さい場合、第２解析処理の実行頻度が極端に高くなることがある。例えば第１解析処理が検出した人物の服装の特徴を第２解析処理で検出する場合、第１解析処理で人物がほとんど検出されないときは、第２解析処理の実行時間が短くなる。しかし、必要以上の頻度で第２解析処理を実行しても、無駄にＣＰＵリソースを消費するだけであり、効果は得られない。
【０１１９】
そこで本実施例では、第２解析処理の実行頻度に上限を設ける。具体的には、解析対象選択部１５０内に、図１０に示す第２解析部１２０の実行タイミングを管理するテーブル１５１を設ける。テーブル１５１は、解析対象選択部１５０により使用される。
【０１２０】
テーブル１５１は、例えばカメラＩＤ１５１１と、第２解析部１２０を実行する間隔の下限１５１２と、第２解析部１２０を次回実行可能な時刻１５１３とを対応づけて管理している。
【０１２１】
つまり、テーブル１５１は、カメラ毎に、第２解析処理を実行する間隔の下限（列１５１２）と、次回第２解析処理が実行可能になる時刻（列１５１３）を記憶する。初期化処理時に、テーブル１５１の列１５１２には、時間間隔の時間の初期値（設定値）が設定され、列１５１３には現時刻に時間間隔を加算した時刻が次回実行可能になる時刻として設定される。図１０では、時間間隔の下限値１５１２には２００ｍｓが設定されている。次回実行可能な時刻１５１３の値は、映像解析サーバ１の内部表現で設定されている。
【０１２２】
解析対象選択部１５０は、各カメラ２を、次回第２解析処理が実行可能になる時刻（列１５１３）の順番にソートして記憶する。解析対象選択部１５０は、現時刻と、次回第２解析処理が実行可能になる時刻（列１５１３）の一番早い時刻とを比較し、次回第２解析処理能になる時刻（列１５１３）が現時刻よりも早い場合（既に実行可能になっている場合）は、該当するカメラのＩＤを出力する。これに対し、解析対象選択部１５０は、現時刻の方が次回第２解析処理が実行可能になる時刻（列１５１３）よりも早い場合（実行可能になっていない場合）は、カメラのＩＤと実行可能になる時刻とが出力する。
【０１２３】
図４で述べた第２解析部１２０の実行する処理では、以下の部分の処理が第１実施例とは異なる。
【０１２４】
すなわち、本実施例では、ステップＳ１２１において、解析対象のカメラ２を決定する場合に、対象のカメラ２が実行可能ではないと判断されると、カメラのＩＤがセットされた後、該当する第２解析部１２０スレッドの動作が休止され、タイミング調停部１６０の対象から外される。その後、実行可能になる時刻が到来したタイミングで、第２解析部１２０スレッドが再び実行可能になり、タイミング調停部１６０の対象に戻される。すなわち、ＣＰＵリソースに空きがある場合は、第２解析処理が再開される。
【０１２５】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、処理時間が不定の第２解析処理が必要以上の頻度で実行されてしまい、ＣＰＵリソースをいたずらに浪費するのを抑制できる。
【実施例３】
【０１２６】
第３実施例を説明する。第１実施例では、各カメラ２に対応する第２解析処理は、全て同一頻度で実行されていた。しかし、映像監視の処理内容によっては、カメラ毎に第２解析処理の実行頻度を変更することが必要な場合がある。例えば、重要な場所に設置したカメラ２の解析処理の頻度を高く設定する場合である。
【０１２７】
そこで、本実施例では、カメラ２に対する第２解析処理の実行頻度をカメラ毎に異なる値に設定するための手段を設ける。例えば、解析対象選択部１５０の初期化時において、ステップＳ１５２で映像解析対象のカメラＩＤを並べる場合に、処理頻度を高くする所定のカメラのＩＤが複数回入るようにする。その結果、ステップＳ１５５で次のカメラを選択する場合に、所定のカメラが他のカメラより高い頻度で選ばれるようになる。
【０１２８】
Ｃ１，Ｃ２，Ｃ３，Ｃ４の４台のカメラ２から構成される映像監視システムを例に挙げて説明する。図示しなくてもいわゆる当業者であれば理解できるため、それら４台のカメラ２の図示は省略する。
【０１２９】
通常の場合、ステップＳ１５２で作成されるカメラＩＤのリストは、例えば、［Ｃ１，Ｃ２，Ｃ３，Ｃ４］となる。カメラ２（Ｃ１）の実行頻度を高く設定する場合は、［Ｃ１，Ｃ２，Ｃ１，Ｃ３，Ｃ４］のように、カメラ２（Ｃ１）がリスト中に現れる頻度を高く設定する。これにより、カメラ２（Ｃ１）が第２解析部１２０で処理される頻度を上げることができる。この例では、カメラ２（Ｃ１）では、他のカメラの２倍の頻度で第２解析処理が実行される。
【０１３０】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、カメラ毎に第２解析処理の実行頻度を変えることができるため、映像監視システムの使い勝手が向上する。本実施例は、第２実施例と組み合わせることもできる。
【実施例４】
【０１３１】
図１１を用いて第４実施例を説明する。本実施例では、第２解析処理の実行頻度として任意の重みづけを設定する。
【０１３２】
第２実施例で述べた、各カメラ２に対応する第２解析処理の実行比率を、カウンタを設けて管理することができる。
【０１３３】
図１１に示すように、解析対象選択部１５０の内部に、第２解析部の実行タイミングを管理するテーブル１５２を設ける。このテーブル１５２は、例えば、カメラＩＤ１５２１と、第２解析処理の実行比率を表す重み１５２２と、実行回数１５２３と、実行回数１５２３を重み１５２２で割った値１５２４とを対応づけて管理する。
【０１３４】
すなわち、テーブル１５２は、カメラ毎に、第２解析処理を実行する比率を表す重みを表す設定値（列１５２２）と、第２解析処理の実行回数を表すカウンタ値（列１５２３）と、カウンタ値を設定値で割った値（列１５２４）とを保持する。
【０１３５】
テーブル１５２の列１５２２は、第２解析処理の実行頻度の重みづけをカメラ毎に保持する。第２解析処理は、この重みに比例する実行頻度で実行されるように調整される（重みが大きいほど実行頻度は高くなる）。重みには、任意の正の値を設定できる。基本的には、システム初期設定時に値が設定される。
【０１３６】
列１５２３は、該当するカメラに対して第２解析処理が何回実行されたかを記憶するカウンタの値を保持する。カウンタ値は、システムの初期化時にゼロに初期化される。列１５２４には、列１５２３の値を列１５２２の値で割った結果が入れられる。
【０１３７】
解析対象選択部１５０は、次に第２解析処理を実行するカメラを選択する場合に、列１５２４の値が一番小さいカメラのＩＤを出力する。複数のカメラ２が同じ値の場合は、テーブル１５２において上側に記載されている方のカメラ２が選択される。
【０１３８】
これにより、指定された重みに対して、第２解析処理の呼ばれた回数が一番少ないカメラ２が選択される。図１１の例では、カメラＩＤ＝２の列１５２４の値が”５”と一番小さいため、今回はカメラＩＤ＝２のカメラが選択される。その結果、カメラＩＤ＝２に対応するカウンタの値は”６”になる。このため次回は、カメラＩＤ＝４の列１５２４の値が”５．５”で一倍小さくなるため、カメラＩＤ＝４を持つカメラが選択される。
【０１３９】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、、第２解析処理の実行頻度として、任意の重みづけを設定することができるため、使い勝手が向上する。
【０１４０】
第３実施例および第４実施例では、カメラ２の実行頻度を変更する簡単な例を述べたが、これらに代えて、一般に重み付きラウンドロビン等で知られる任意のスケジューリングアルゴリズムを用いてもよい。
【０１４１】
さらに上記においては、各カメラの解析処理頻度は固定であるが、撮影された映像の内容に応じて頻度を変更することも可能である。例えば、人が多く映っているカメラの解析処理頻度を高く設定することができる。これは、例えば第１解析処理の結果に基づいて第２解析処理を呼び出す重み（列１５２２）を定期的に見直すことにより、実現することができる。本実施例は第２実施例と組み合わせることもできる。
【実施例５】
【０１４２】
図１２を用いて第５実施例を説明する。本実施例では、第１解析部１１０が、所定の場合に第２解析処理を実行する。
【０１４３】
第１実施例では、第１解析処理および第２解析処理の内容は、それぞれ固定的に決められていた。例えば、第１解析処理では画像の中から人物を検知し、第２解析処理では第１解析処理により発見された人物の服装の特徴を検知する場合等である。しかし、映像監視システムによっては、第１解析処理と第２解析処理の内容を柔軟に変更することが求められる場合がある。
【０１４４】
例えば、第１解析処理により発見された人物の服装の特徴を第２解析処理によって解析して検知する場合を考える。第１実施例では、第２解析処理は決められた数のスレッドでベストエフォートにより行われる。その結果、カメラに写る人数が予想以上に多い場合、第２解析処理に必要となる時間が増大し、第２解析処理の処理頻度が低下する、すなわち実行の時間間隔が増大する場合がある。
【０１４５】
第２解析処理の実行間隔が開き過ぎると、第１解析処理により検知されたにも関わらず、第２解析処理が一回も実行されない人物が出現する可能性がある。第２解析処理が一回も実行されない場合、その人物の特徴量がデータベース３１０に書き込まれないため、後刻、その人物の特徴を検索することができなくなる。
【０１４６】
そこで本実施例では、今回の映像フレームで初めて検出された人物、つまり画像中に初めて出現した人物については、その初出現の人物の特徴量解析と、データベース３１０への書き込み等との一連の処理（第２解析処理に相当する処理）を、第１解析部１１０の内部で実施する。
【０１４７】
これにより、本実施例では、第１解析処理で検出された全ての人物に対して、特徴量検出処理が最低一回は実行されることを保証することができる。Ｔｒａｃｋｌｅｔによる人流解析処理においては、検出した人物の追跡を可能にするために、検出した人物に対して映像フレームを渡っても共通なＩＤを付与して管理している。したがって、新しいＩＤが付与された人物が見つかった場合は、今回の映像フレームで初めて検出された人物と判断することができる。
【０１４８】
図１２のフローチャートを用いて、本実施例の第１解析部１１０の処理を説明する。図１２のフローチャートは、図３のフローチャートと比べて、図３のフローチャートのステップＳ１１２の内容が異なる。
【０１４９】
つまり、本実施例の第１解析部１１０は、第１解析処理としての人物検出処理を実行し、ステップＳ１１１で取得した画像から人物を検出する（Ｓ１１２Ａ）。第１解析部１１０は、ステップＳ１１１Ａで検出した人物が、該当する映像フレームで初めて検出された人物であるか判定する（Ｓ１１２Ｂ）。
【０１５０】
初めて検出された人物が存在する場合（Ｓ１１２Ｂ：ＹＥＳ）、本実施例の第１解析部１１０は、その初出現の人物の特徴量を解析する処理（第２解析処理）を実行する（Ｓ１１２Ｃ）。
【０１５１】
そして、第１解析部１１０は、ステップＳ１１２Ａで検出した人物の情報とステップＳ１１２Ｃで検出した特徴量とを一時記憶部１３０へ記憶させる（Ｓ１１３）。それらの情報は、データベース３１０に格納されたり、解析結果出力部１４０から外部へ出力されたりする（Ｓ１１４）。
【０１５２】
図示は省略するが、本実施例の第２解析部１２０は、ステップＳ１１２Ｃで既に分析された初出現の人物に対する特徴量検出処理を重複して実行することの無いように、図４に示す第２解析処理のステップＳ１２３を実行する。
【０１５３】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、第２解析処理の負荷が増大した場合であっても、第１解析処理で検出された全ての人物に対して、第２解析処理の実行を保証することができる。これにより、映像監視システムの信頼性を向上することができる。本実施例は第２〜第４実施例のいずれとも組み合わせることができる。
【実施例６】
【０１５４】
図１３を用いて第６実施例を説明する。本実施例では、複数のカメラ２のうちいずれか所定のカメラに割り当てるＣＰＵリソースを動的に制御できるようにした。
【０１５５】
図１３（１）は、通常時における、カメラ２とスレッドの関係を示す。通常時では、各カメラ２に対して１つずつスレッドが割り当てられているものとする。
【０１５６】
図１３（２）は、重点監視対象として選択された１番目のカメラ２（＃１）に複数のスレッド（＃１，＃２）を割当て、その他のカメラ２（＃２，＃３，＃４）に対して残りのスレッド（＃３，＃４）を割り当てた様子を示す。
【０１５７】
図１３（３）は、１番目のカメラ２（＃１）の解析処理のタイムチャートを示す。１番目のカメラ２（＃１）に割り当てられた第１のスレッド（＃１）では、第１解析処理Ａ１と第２解析処理の一部Ｂ１−１が実行される。１番目のカメラ２（＃１）に割り当てられた第２のスレッド（＃２）では、第２解析処理の残りの部分Ｂ１−２が実行される。
【０１５８】
第２解析処理の一部Ｂ１−１の処理時間ｔｂ１−１と、残りの部分Ｂ１−２の処理時間ｔｂ１−２とは、第１解析処理の結果などでそれぞれ異なり、一定ではない。
【０１５９】
本実施例では、重点監視対象として選択したカメラ２に複数のスレッドを割り当てることができるため、重点監視対象として選択したカメラ２からの画像に対して、他のカメラの画像で行われるよりも詳しく第２解析処理を行うことができる。例えば、処理Ｂ１−１を共通の第２解析処理とし、処理Ｂ１−２を特別な第２解析処理とすれば、重点監視対象として選択したカメラ２の画像は詳細に解析することができ、他のカメラ２の画像には通常通りの第２解析処理を行うことができる。
【０１６０】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、複数のカメラのうちいずれか所定のカメラに割り当てるＣＰＵリソース量を制御することができるため、所定のカメラからの画像を重点的に解析等することもでき、使い勝手が向上する。
【０１６１】
なお、本発明は前記各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、各実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１６２】
また、上述の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【０１６３】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実場合には殆どすべての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１６４】
１：映像解析サーバ１、２：カメラ、３：データベースサーバ、４：端末、１１０：第１解析部、１２０：第２解析部、１３０：一時記憶部、１４０：解析結果出力部、１５０：解析対象選択部、１６０：タイミング調停部、３１０：データベース、４１０：実時間解析結果表示部、４２０：解析結果検索部
【図１】
2018093324.tif 000003
【図２】
2018093324.tif 000004
【図３】
2018093324.tif 000005
【図４】
2018093324.tif 000006
【図５】
2018093324.tif 000007
【図６】
2018093324.tif 000008
【図７】
2018093324.tif 000009
【図８】
2018093324.tif 000010
【図９】
2018093324.tif 000011
【図１０】
2018093324.tif 000012
【図１１】
2018093324.tif 000013
【図１２】
2018093324.tif 000014
【図１３】
2018093324.tif 000015