(57)【特許請求の範囲】
【請求項１】
一定の時間間隔でフレームを配信する複数のカメラそれぞれから配信される一のフレームに対して所定のものを検出する処理を含む画像処理を行う複数の画像処理それぞれを計算装置が実行するときの複数の実行時間を計測し、前記複数のカメラそれぞれがフレームを配信する時間間隔を前記複数の実行時間それぞれに基づいて更新する処理部、
を有する情報処理装置。
【請求項２】
前記情報処理装置は、前記複数のカメラから配信されるフレームを記憶する記憶部を有し、
前記処理部は、前記記憶部に記憶されたフレームのうちの前記一のフレームを前記計算装置に送信し、前記計算装置への前記一のフレームの送信にかかった時間を含む前記複数の実行時間それぞれを計測する、
請求項１記載の情報処理装置。
【請求項３】
前記処理部は、前記計算装置から前記画像処理の結果を取得し、前記複数の画像処理それぞれの結果を出力し、前記複数の画像処理それぞれの結果の出力にかかった時間を含む前記複数の実行時間それぞれを計測する、
請求項１または２記載の情報処理装置。
【請求項４】
前記処理部は、前記複数のカメラのうちの一のカメラがフレームを配信する時間間隔が前記複数の画像処理のうちの前記一のカメラから配信される前記一のフレームに対する一の画像処理の、一の実行時間よりも第１の所定時間以上短い場合または前記一のカメラがフレームを配信する時間間隔が前記一の実行時間よりも第２の所定時間以上長い場合、前記一のカメラがフレームを配信する時間間隔を更新する、
請求項１ないし３のいずれかに記載の情報処理装置。
【請求項５】
コンピュータに、
一定の時間間隔でフレームを配信する複数のカメラそれぞれから配信される一のフレームに対して所定のものを検出する処理を含む画像処理を行う複数の画像処理それぞれを計算装置が実行するときの複数の実行時間を計測し、
前記複数のカメラそれぞれがフレームを配信する時間間隔を前記複数の実行時間それぞれに基づいて更新する、
処理を実行させるプログラム。
【請求項６】
一定の時間間隔でフレームを配信する複数のカメラと、
計算装置と、
前記複数のカメラそれぞれから配信される一のフレームに対して所定のものを検出する処理を含む画像処理を行う複数の画像処理それぞれを前記計算装置が実行するときの複数の実行時間を計測し、前記複数のカメラそれぞれがフレームを配信する時間間隔を前記複数の実行時間それぞれに基づいて更新する情報処理装置と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
近年、防犯カメラが多く設置されている。防犯カメラで撮影された動画像に対しては、目視による確認だけでなく、画像処理が行われることもある。例えば、画像処理によって、防犯カメラで撮影された動画像に写った人物に関する様々な判定処理が行われる。
【０００３】
防犯カメラで撮影された動画像に対する画像処理に関する技術としては、例えば、人物の体の向きが異なって映る複数のカメラ映像を用いて同一人物を同定する精度を高める画像処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
防犯カメラで撮影された動画に対して画像処理が行われる場合、画像処理を実行する装置は、防犯カメラからフレームを取得する。ここで、防犯カメラから大量のフレームが送信されると、防犯カメラと画像処理を実行する装置との間にあるネットワークに大きな負荷がかかる。
【０００６】
１つの側面では、本件は、ネットワークの負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
１つの案では、処理部を有する情報処理装置が提供される。処理部は、一定の時間間隔でフレームを配信するカメラから配信される一のフレームに対する画像処理を計算装置が実行する実行時間を計測し、カメラがフレームを配信する時間間隔を実行時間に基づいて更新する。
【発明の効果】
【０００８】
１態様によれば、ネットワークの負荷を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係る情報処理システムの一例を示す図である。
【図２】第２の実施の形態に係る情報処理システムの一例を示す図である。
【図３】画像処理装置のハードウェアの一構成例を示す図である。
【図４】画像処理装置の機能例を示すブロック図である。
【図５】画像処理の一例を示す図である。
【図６】配信間隔更新処理の手順の一例を示すフローチャートである。
【図７】更新後のカメラの配信間隔の一例を示す図である。
【図８】運用時処理の手順の一例を示すフローチャートである。
【図９】配信間隔更新による効果を説明するための図（その１）である。
【図１０】配信間隔更新による効果を説明するための図（その２）である。
【図１１】第３の実施の形態の概要を示す図である。
【図１２】画像処理装置の他の機能例を示すブロック図である。
【図１３】配信間隔更新処理の手順の他の一例を示すフローチャート（その１）である。
【図１４】配信間隔更新処理の手順の他の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず第１の実施の形態について説明する。
【００１１】
図１は、第１の実施の形態に係る情報処理システムの一例を示す図である。第１の実施の形態は、カメラ１から配信されるフレームを画像処理装置２０が画像処理を実行する実行時間に基づいて、カメラ１がフレームを配信する時間間隔を更新するものである。
【００１２】
カメラ１は、動画を撮影可能なカメラである。カメラ１は、一定の時間間隔でフレームを配信する。フレームは、動画のある時点での静止画（コマ）を示すデータである。なお、一定の時間間隔で配信されるフレームは、他のコマとの差分データであってもよい。カメラ１は、ネットワークを介して画像処理装置２０に接続されている。カメラ１と画像処理装置２０とが接続されているネットワークには、他のカメラや他の装置が接続されていてもよい。
【００１３】
画像処理装置２０は、カメラ１から配信されるフレームに対する画像処理を実行するコンピュータである。画像処理装置２０は、サーバコンピュータであってもよいし、クライアントコンピュータであってもよい。画像処理装置２０は、計算装置２および情報処理装置１０を含む。計算装置２は、画像処理を実行する。計算装置２は、例えば、アクセラレータまたは、プロセッサとアクセラレータとを組み合わせたものによって画像処理を実行する。なお、計算装置２は、複数のコンピュータであってもよい。
【００１４】
情報処理装置１０は、画像処理装置２０を制御する。情報処理装置１０は、記憶部１１と処理部１２とを有する。記憶部１１は、情報処理装置１０が用いるデータを記憶する。記憶部１１は、例えば、情報処理装置１０が有するメモリまたはストレージ装置である。記憶部１１は、カメラ１から配信されるフレームを記憶する。つまり、記憶部１１には、一定時間ごとに新しいフレームが追加される。なお、記憶部１１は、一定期間にカメラ１から配信されたフレームを記憶していてもよいし、最新のフレームのみを記憶していてもよい。処理部１２は、情報処理装置１０を制御し、所要の処理を実行可能である。処理部１２は、例えば、情報処理装置１０が有するプロセッサまたは演算回路である。
【００１５】
処理部１２は、フレーム３を計算装置２に送信する。フレーム３は、記憶部１１に記憶されたフレームのうちの一のフレームである。処理部１２は、フレーム３に対する画像処理を計算装置２に実行させる。計算装置２が実行する画像処理は、計算装置２が有するアクセラレータによって、処理部１２が実行するよりも高速に実行可能な処理である。計算装置２が実行する画像処理は、例えば、フレーム３から人物を検出し、検出した人物が所定の条件を満たすか否かを判定する処理である。
【００１６】
計算装置２による画像処理が終了すると、処理部１２は、計算装置２から画像処理の結果を取得する。処理部１２は、計算装置２から取得した画像処理の結果を出力する。例えば、処理部１２は、画像処理の結果を図示しない表示部に表示させてもよいし、記憶部１１に格納してもよい。
【００１７】
また、処理部１２は、フレーム３に対する画像処理を計算装置２が実行する実行時間を計測する。なお、画像処理の実行時間は、処理部１２による計算装置２へのフレーム３の送信にかかった時間を含む。また、画像処理の実行時間は、処理部１２による画像処理の結果の出力にかかった時間を含む。
【００１８】
そして、処理部１２は、カメラ１がフレームを配信する時間間隔を画像処理の実行時間に基づいて更新する。例えば、処理部１２は、カメラ１がフレームを配信する時間間隔を画像処理の実行時間に更新する。なお、処理部１２は、画像処理の実行時間を複数回測定してもよい。そして、処理部１２は、カメラ１がフレームを配信する時間間隔を、複数回の画像処理の実行時間に基づいて更新してもよい。例えば、処理部１２は、カメラ１がフレームを配信する時間間隔を、複数回の画像処理の実行時間の最大値、最小値、中央値、平均値などに更新してもよい。
【００１９】
第１の実施の形態によれば、処理部１２は、一定の時間間隔でフレームを配信するカメラ１から配信されるフレーム３に対する画像処理を計算装置２が実行する実行時間を計測する。そして、処理部１２は、カメラ１がフレームを配信する時間間隔を実行時間に基づいて更新する。これにより、情報処理装置１０は、計算装置２の処理能力に対して過剰なフレームがカメラ１から配信されることを抑制できる。よって、情報処理装置１０は、ネットワークの負荷を軽減することができる。
【００２０】
また、記憶部１１は、カメラ１から配信されるフレームを記憶する。処理部１２は、記憶部１１に記憶されたフレームのうちのフレーム３を計算装置２に送信する。そして、処理部１２は、計算装置２へのフレーム３の送信にかかった時間を含む実行時間を計測する。これにより、情報処理装置１０は、計算装置２へのフレーム３の送信に時間がかかる場合でも、カメラ１がフレームを配信する時間間隔を適切に更新できる。
【００２１】
また、処理部１２は、計算装置２から画像処理の結果を取得し、画像処理の結果を出力する。そして、処理部１２は、画像処理の結果の出力にかかった時間を含む実行時間を計測する。これにより、情報処理装置１０は、画像処理の結果の出力に時間がかかる場合でも、カメラ１がフレームを配信する時間間隔を適切に更新できる。
【００２２】
なお、処理部１２は、カメラ１がフレームを配信する時間間隔が実行時間よりも第１の所定時間以上短い場合またはカメラ１がフレームを配信する時間間隔が実行時間よりも第２の所定時間以上長い場合、カメラ１がフレームを配信する時間間隔を更新してもよい。これにより、情報処理装置１０は、計算装置２の処理能力に対して適切な頻度でカメラ１にフレームを配信させることができる。
【００２３】
また、カメラ１は、複数存在してもよい。また、計算装置２は、複数のカメラ１それぞれから配信される一のフレームに対する複数の画像処理を実行してもよい。また、処理部１２は、複数の画像処理の複数の実行時間それぞれを計測し、複数の実行時間それぞれに基づいて、複数のカメラ１それぞれがフレームを配信する時間間隔を更新してもよい。これにより、情報処理装置１０は、複数のカメラ１それぞれについて、フレームを配信する時間間隔を適切に更新できる。
【００２４】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、カメラがフレームを配信する時間間隔を、フレームに対する画像処理を実行する計算装置の処理能力に応じて更新するものである。
【００２５】
図２は、第２の実施の形態に係る情報処理システムの一例を示す図である。第２の実施の形態の情報処理システムは、カメラ２１−１，２１−２，・・・および画像処理装置３００を有する。カメラ２１−１，２１−２，・・・は、動画を撮影可能なカメラである。カメラ２１−１，２１−２，・・・は、例えば、店舗などに設置される防犯カメラである。カメラ２１−１，２１−２，・・・は、ネットワーク３０を介して画像処理装置３００に接続されている。ネットワーク３０は、例えば、ＬＡＮ（Local Area Network）である。カメラ２１−１，２１−２，・・・は、画像処理装置３００に、一定の時間間隔で現在のフレームを配信する。
【００２６】
画像処理装置３００は、カメラ２１−１，２１−２，・・・が撮影した動画に対する画像処理を用いたサービスを提供するコンピュータである。例えば、画像処理装置３００は、カメラ２１−１，２１−２，・・・が撮影した動画から不審者を検出するサービスを提供する。画像処理装置３００は、カメラ２１−１，２１−２，・・・から配信されたフレームに対する画像処理をリアルタイムで実行する。
【００２７】
ここで、画像処理装置３００は、画像処理の実行にかかる実行時間を測定する。そして、画像処理装置３００は、画像処理の実行時間に応じて、カメラ２１−１，２１−２，・・・がフレームを配信する時間間隔を更新する。なお、ネットワーク３０には、他の情報処理装置や他のデバイスがさらに接続されていてもよい。
【００２８】
図３は、画像処理装置のハードウェアの一構成例を示す図である。画像処理装置３００は、中継装置２２、情報処理装置１００および計算装置２００−１，２００−２，・・・を有する。情報処理装置１００は、画像処理装置３００を制御する。情報処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００２９】
メモリ１０２は、情報処理装置１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に利用する各種データが格納される。メモリ１０２としては、例えば、ＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００３０】
バス１０９に接続されている周辺機器としては、ストレージ装置１０３、グラフィック処理装置１０４、入力インタフェース１０５、媒体リーダ１０６、ネットワークインタフェース１０７および接続インタフェース１０８がある。
【００３１】
ストレージ装置１０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置１０３は、コンピュータの補助記憶装置として使用される。ストレージ装置１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置１０３としては、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）を使用することができる。
【００３２】
グラフィック処理装置１０４には、モニタ３１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ３１の画面に表示させる。モニタ３１としては、有機ＥＬ（Electro Luminescence）を用いた表示装置や液晶表示装置などがある。
【００３３】
入力インタフェース１０５は、情報処理装置１００に接続された入力デバイス３２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス３２としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置１００に、複数の種類の入力デバイスが接続されていてもよい。
【００３４】
媒体リーダ１０６は、記録媒体３３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体３３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００３５】
ネットワークインタフェース１０７は、ネットワーク３０に接続されている。ネットワークインタフェース１０７は、ネットワーク３０を介して、カメラ２１−１，２１−２，・・・との間でデータの送受信を行う。カメラ２１−１，２１−２，・・・は、カメラ２１−１，２１−２，・・・のレンズを向けた先の光景の動画のデータを生成する。カメラ２１−１，２１−２，・・・は、一定の時間間隔で、現在生成したフレームを情報処理装置１００に送信する。
【００３６】
接続インタフェース１０８は、中継装置２２に接続されている。接続インタフェース１０８は、中継装置２２を介して、計算装置２００−１，２００−２，・・・との間でデータの送受信を行う。中継装置２２は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express：ＰＣＩｅ、登録商標）の拡張バスを含むブリッジコントローラである。そして、プロセッサ１０１がホスト側として動作するＲＣ（Root Complex）となり、中継装置２２がデバイス側として動作するＥＰ（End Point）となるように、接続インタフェース１０８が中継装置２２に接続される。
【００３７】
計算装置２００−１，２００−２，・・・は、情報処理装置１００の命令に従って画像処理を実行する。計算装置２００−１は、プロセッサ２０１によって装置全体が制御されている。プロセッサ２０１には、バス２０６を介してメモリ２０２と複数の周辺機器が接続されている。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えば、ＣＰＵ、ＭＰＵ、またはＤＳＰである。プロセッサ２０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ、ＰＬＤなどの電子回路で実現してもよい。
【００３８】
メモリ２０２は、計算装置２００−１の主記憶装置として使用される。メモリ２０２には、プロセッサ２０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ２０２には、プロセッサ２０１による処理に利用する各種データが格納される。メモリ２０２としては、例えば、ＲＡＭなどの揮発性の半導体記憶装置が使用される。
【００３９】
バス２０６に接続されている周辺機器としては、不揮発性メモリ２０３、アクセラレータ２０４および接続インタフェース２０５がある。不揮発性メモリ２０３は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。不揮発性メモリ２０３は、コンピュータの補助記憶装置として使用される。不揮発性メモリ２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、不揮発性メモリ２０３としては、例えば、フラッシュメモリを使用することができる。
【００４０】
アクセラレータ２０４は、並列演算処理に適したプロセッサである。アクセラレータ２０４としては、例えば、ＧＰＵ（Graphics Processing Unit）やＦＰＧＡ（Field Programmable Gate Array）を使用することができる。
【００４１】
接続インタフェース２０５は、中継装置２２に接続されている。接続インタフェース２０５は、中継装置２２を介して、情報処理装置１００との間でデータの送受信を行う。例えば、ＰＣＩｅの拡張バスを含むブリッジコントローラである中継装置２２がＥＰ、プロセッサ２０１がＲＣとなるように、接続インタフェース２０５が中継装置２２に接続される。なお、接続インタフェース２０５は、中継装置２２を介して、計算装置２００−２，・・・との間でデータの送受信が可能であってもよい。
【００４２】
情報処理装置１００および計算装置２００−１は、以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した情報処理装置１０も、図３に示した情報処理装置１００と同様のハードウェアにより実現することができる。また、プロセッサ１０１は、第１の実施の形態に示した処理部１２の一例である。また、メモリ１０２またはストレージ装置１０３は、第１の実施の形態に示した、記憶部１１の一例である。また、計算装置２００−２，・・・および第１の実施の形態に示した計算装置２も、図３に示した計算装置２００−１と同様のハードウェアにより実現することができる。
【００４３】
情報処理装置１００は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。情報処理装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置１００に実行させるプログラムをストレージ装置１０３に格納しておくことができる。プロセッサ１０１は、ストレージ装置１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また、情報処理装置１００に実行させるプログラムを、記録媒体３３に記録しておくこともできる。記録媒体３３に格納されたプログラムは、例えば、プロセッサ１０１からの制御により、ストレージ装置１０３にインストールされた後、実行可能となる。また、プロセッサ１０１が、記録媒体３３から直接プログラムを読み出して実行することもできる。
【００４４】
計算装置２００−１は、例えば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。計算装置２００−１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、計算装置２００−１に実行させるプログラムを不揮発性メモリ２０３に格納しておくことができる。プロセッサ２０１およびアクセラレータ２０４は、不揮発性メモリ２０３内のプログラムの少なくとも一部をメモリ２０２にロードし、プログラムを実行する。また、計算装置２００−１に実行させるプログラムを、記録媒体３３に記録しておくこともできる。情報処理装置１００に接続された記録媒体３３に格納されたプログラムは、例えば、プロセッサ１０１の制御により、不揮発性メモリ２０３にインストールされた後、実行可能となる。またプロセッサ２０１およびアクセラレータ２０４が、記録媒体３３から直接プログラムを読み出して実行することもできる。
【００４５】
第２の実施の形態では、情報処理装置１００は、１つのカメラから配信されるフレームに対する画像処理を、対応する１つの計算装置に実行させる。以下では、情報処理装置１００が、カメラ２１−１から配信されるフレームを計算装置２００−１に画像処理させる場合について説明する。
【００４６】
次に、画像処理装置３００の機能について詳細に説明する。
図４は、画像処理装置の機能例を示すブロック図である。情報処理装置１００は、バッファ１２０、フレーム処理部１３０、結果記憶部１４０、および配信間隔更新部１５０を有する。バッファ１２０および結果記憶部１４０は、メモリ１０２またはストレージ装置１０３の記憶領域を用いて実現される。フレーム処理部１３０および配信間隔更新部１５０は、メモリ１０２に記憶されたプログラムをプロセッサ１０１が実行することで実現される。
【００４７】
バッファ１２０は、フレーム１２１−１，１２１−２，１２１−３，・・・を記憶する。フレーム１２１−１，１２１−２，１２１−３，・・・は、カメラ２１−１から一定の時間間隔で配信されるフレームである。なお、画像処理が行われたフレームは、バッファ１２０から削除される。
【００４８】
フレーム処理部１３０は、計算装置２００−１に画像処理を実行させ、画像処理の結果を出力する。フレーム処理部１３０は、バッファ１２０に記憶されたフレームのうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２１−１）に対して前処理を行う。例えば、フレーム処理部１３０は、フレーム１２１−１に対する前処理として、フレーム１２１−１を計算装置２００−１が処理できる形式に変換するデコード処理を実行する。フレーム処理部１３０は、前処理したフレーム１２１−１を計算装置２００−１に送信し、計算装置２００−１に画像処理を実行させる。フレーム処理部１３０は、計算装置２００−１による画像処理の結果を取得し、取得した画像処理の結果を結果記憶部１４０に格納する。なお、フレーム処理部１３０は、計算装置２００−１による画像処理の結果をモニタ３１に表示させてもよい。
【００４９】
配信間隔更新部１５０は、計算装置２００−１による画像処理の実行時間を計測し、計測した実行時間に基づいて、カメラ２１−１がフレームを配信する時間間隔を更新する。配信間隔更新部１５０は、フレーム処理部１３０が前処理を実行してから画像処理の結果を出力するまでの実行時間を計測する。ここで、配信間隔更新部１５０は、あらかじめ設定された指定回数だけ実行時間を計測する。配信間隔更新部１５０は、複数回の実行時間に基づいて、カメラ２１−１がフレームを配信する時間間隔を更新する。例えば、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔を、配信間隔更新部１５０が計測した複数回の実行時間のうち最大の実行時間に更新する。
【００５０】
計算装置２００−１は、画像処理部２２０を有する。画像処理部２２０は、メモリ２０２に記憶されたプログラムをプロセッサ２０１およびアクセラレータ２０４が実行することで実現される。画像処理部２２０は、情報処理装置１００から取得したフレーム１２１−１に対して、画像処理を実行する。例えば、画像処理部２２０は、画像処理として、フレーム１２１−１から人物を検出し、検出した人物が所定の条件を満たすか否かを判定する処理を実行する。
【００５１】
画像処理部２２０は、画像処理の結果を出力し、出力した画像処理の結果を情報処理装置１００に送信する。例えば、画像処理部２２０は、フレーム１２１−１から検出した人物が所定の条件を満たすか否かを判定する処理の結果として、所定の条件を満たす人物の位置に印をつけたフレーム１２１−１を出力する。また、例えば、画像処理部２２０は、第２の実施の形態の情報処理システムが設置された施設内における検出した人物の位置を示す位置情報（座標情報）、判定精度、満たした条件を示すラベルなどのメタデータを出力してもよい。なお、図４に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００５２】
次に、計算装置２００−１による画像処理について説明する。
図５は、画像処理の一例を示す図である。計算装置２００−１の画像処理部２２０は、情報処理装置１００から取得したフレームに写る所定の条件を満たす人物（例えば、不審者）を検出し、不審者に印をつけたフレームを出力する。
【００５３】
フレーム４１は、情報処理装置１００から計算装置２００−１に送信されたフレームである。画像処理部２２０は、フレーム４１から人物を検出する。例えば、画像処理部２２０は、入力画像に写る人物を囲う検出枠を出力する学習済みモデルに、フレーム４１を入力する。
【００５４】
フレーム４２は、フレーム４１に対する人物検出の結果を示すフレームである。フレーム４２は、フレーム４１から検出された人物を囲う枠（検出枠）がフレーム４１に追加されたものである。画像処理部２２０は、フレーム４１から検出された人物それぞれが不審者であるか否かを判定する。例えば、画像処理部２２０は、フレーム４２に含まれる検出枠内の画像それぞれを、入力画像に写る人物が不審者であるか否かを判定する学習済みモデルに入力する。
【００５５】
フレーム４３は、フレーム４１から検出された不審者に印がついたフレームである。フレーム４３は、不審者と判定された人物の検出枠がフレーム４１に追加されたものである。画像処理部２２０は、フレーム４１に対する画像処理の結果として、フレーム４３を情報処理装置１００に送信する。
【００５６】
そして、情報処理装置１００のフレーム処理部１３０は、フレーム４３を結果記憶部１４０に格納する。このようにして、結果記憶部１４０には、写っている不審者に印がついた、一定時間間隔のフレーム（つまり、動画）が格納される。また、フレーム処理部１３０は、フレーム４３をモニタ３１に表示させてもよい。これにより、フレーム処理部１３０は、第２の実施の形態の情報処理システムが設置された施設内に不審者がいることを、モニタ３１を見ているユーザにリアルタイムで通知できる。
【００５７】
なお、上記の例では、画像処理部２２０がフレーム４３を生成しているが、画像処理部２２０は検出枠の位置のみを生成し、フレーム処理部１３０がフレーム４１と検出枠の位置とに基づいてフレーム４３が生成してもよい。また、画像処理部２２０は、検出した人物の座標情報、判定精度、満たした条件を示すラベルなどのメタデータを生成し、フレーム処理部１３０がフレーム４１の検出された人物の近傍にメタデータの表示を追加したフレームを生成してもよい。
【００５８】
以下、配信間隔更新処理の手順について、詳細に説明する。なお、画像処理にかかる時間はキャッシュヒット率に応じて変化するため、配信間隔更新処理は、画像処理にかかる時間が安定した後（例えば、画像処理を用いたサービスの運用開始から５分後）に実行されることが好ましい。
【００５９】
図６は、配信間隔更新処理の手順の一例を示すフローチャートである。以下、図６に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］情報処理装置１００の配信間隔更新部１５０は、バッファ１２０にフレームがあるか否かを判定する。配信間隔更新部１５０は、バッファ１２０にフレームがあると判定した場合、処理をステップＳ１３に進める。また、配信間隔更新部１５０は、バッファ１２０にフレームがないと判定した場合、処理をステップＳ１２に進める。
【００６０】
［ステップＳ１２］配信間隔更新部１５０は、一定時間待機する。そして、処理がステップＳ１１に進む。つまり、配信間隔更新部１５０は、カメラ２１−１からバッファ１２０にフレームが配信されるまで待機する。
【００６１】
［ステップＳ１３］配信間隔更新部１５０は、実行時間の計測を開始する。
［ステップＳ１４］情報処理装置１００のフレーム処理部１３０は、バッファ１２０に記憶されたフレームのうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２１−１）に対して前処理を行う。例えば、フレーム処理部１３０は、フレーム１２１−１に対する前処理として、フレーム１２１−１を計算装置２００−１が処理できる形式に変換するデコード処理を実行する。
【００６２】
［ステップＳ１５］フレーム処理部１３０は、ステップＳ１４で前処理したフレーム１２１−１を計算装置２００−１に送信し、計算装置２００−１に画像処理を実行させる。
［ステップＳ１６］計算装置２００−１の画像処理部２２０は、情報処理装置１００から取得したフレーム１２１−１に対して、画像処理を実行する。例えば、画像処理部２２０は、画像処理として、フレーム１２１−１から人物を検出し、検出した人物が不審者であるか否かを判定する処理を実行する。
【００６３】
［ステップＳ１７］画像処理部２２０は、画像処理の結果を情報処理装置１００に送信する。例えば、画像処理部２２０は、検出した不審者に印をつけたフレーム１２１−１を情報処理装置１００に送信する。
【００６４】
［ステップＳ１８］フレーム処理部１３０は、計算装置２００−１による画像処理の結果を取得し、取得した画像処理の結果を出力する。例えば、フレーム処理部１３０は、検出した不審者に印をつけたフレーム１２１−１を結果記憶部１４０に格納する。また、例えば、フレーム処理部１３０は、検出した不審者に印をつけたフレーム１２１−１をモニタ３１に表示させる。
【００６５】
［ステップＳ１９］配信間隔更新部１５０は、実行時間計測を終了する。配信間隔更新部１５０は、ステップＳ１４〜ステップＳ１８までの時間を実行時間として計測する。
［ステップＳ２０］配信間隔更新部１５０は、実行時間を指定回数計測したか否かを判定する。配信間隔更新部１５０は、実行時間を指定回数計測したと判定した場合、処理をステップＳ２１に進める。また、配信間隔更新部１５０は、実行時間を指定回数計測していないと判定した場合、処理をステップＳ１１に進める。
【００６６】
［ステップＳ２１］配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔を更新する。例えば、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔を、指定回数計測した実行時間のうち最大の実行時間に更新する。
【００６７】
このように、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔を、計算装置２００−１に指定回数実行させた画像処理の実行時間のうち最大の実行時間に更新する。なお、計算装置２００−１が実行する複数回の画像処理の実行時間は大きく変わらないため、配信間隔更新部１５０は、フレームの配信間隔と画像処理の実行時間とを同程度にすることができる。フレームの配信間隔と画像処理の実行時間とが同程度になることによる効果を、以下の図７を参照して説明する。
【００６８】
図７は、更新後のカメラの配信間隔の一例を示す図である。カメラ２１−１は、一定の生成間隔でフレームを生成し、一定の配信間隔で現在生成したフレームを情報処理装置１００に配信する。以下では一例として、配信間隔更新部１５０は、カメラ２１−１によるフレームの配信間隔を、カメラ２１−１によるフレームの生成間隔の４倍に更新したものとする。
【００６９】
カメラ２１−１は、一定の生成間隔で、フレーム４４−１，４４−２，４４−３，４４−４，４４−５を生成する。カメラ２１−１は、フレーム４４−１を生成すると、フレーム４４−１を情報処理装置１００に配信する。情報処理装置１００のフレーム処理部１３０は、カメラ２１−１から配信されたフレーム４４−１を計算装置２００−１に送信し、計算装置２００−１に画像処理を実行させる。計算装置２００−１の画像処理部２２０は、フレーム４４−１に対して画像処理を実行する。
【００７０】
画像処理部２２０による画像処理は、フレーム４４−４が生成される時刻とフレーム４４−５が生成される時刻との間に終了したものとする。画像処理部２２０は、画像処理が終了すると、画像処理の結果を情報処理装置１００に送信する。フレーム処理部１３０は、画像処理の結果を出力する。
【００７１】
カメラ２１−１は、フレーム４４−５を生成すると、フレーム４４−１を配信してから配信間隔だけ経過したため、フレーム４４−５を情報処理装置１００に配信する。情報処理装置１００のフレーム処理部１３０は、カメラ２１−１から配信されたフレーム４４−５を計算装置２００−１に送信し、計算装置２００−１に画像処理を実行させる。計算装置２００−１の画像処理部２２０は、フレーム４４−５に対して画像処理を実行する。
【００７２】
このように、カメラ２１−１は、配信間隔更新部１５０が更新した配信間隔でフレーム４４−１，４４−５を情報処理装置１００に配信する。つまり、カメラ２１−１は、フレーム４４−２，４４−３，４４−４を情報処理装置１００に配信しない。カメラ２１−１がフレーム４４−２を情報処理装置１００に配信しても、画像処理部２２０がフレーム４４−１に対する画像処理を実行中であるため、フレーム処理部１３０は、フレーム４４−２に対する画像処理を計算装置２００−１に実行させることができない。カメラ２１−１がフレーム４４−３，４４−４を情報処理装置１００に配信する場合も同様である。よって、配信間隔更新部１５０は、カメラ２１−１のフレームを配信する時間間隔を更新することで、情報処理装置１００に余分なフレームを配信することを抑止できる。これにより、配信間隔更新部１５０は、カメラ２１−１と情報処理装置１００とが接続されるネットワーク３０の負荷を軽減することができる。
【００７３】
なお、フレームを取得する他の方法として、計算装置２００−１による画像処理が終了したときに、カメラ２１−１が生成した最新のフレームを取得する方法が考えられる。しかし、画像処理が終了したときにカメラ２１−１からフレームを取得する方法では、情報処理装置１００がフレームを取得する時間間隔は、画像処理にかかった時間によって異なる。すると、画像処理の結果として出力されるフレームを連結した動画は、フレームの間隔が異なる不自然な動画になる。これに対して、第２の実施の形態では、カメラ２１−１は、情報処理装置１００に一定の時間間隔でフレームを配信する。よって、画像処理の結果として出力されるフレームを連結した動画は、フレームの間隔が均等で自然な動画になる。
【００７４】
以下、画像処理を用いたサービスの運用時処理の手順について、詳細に説明する。
図８は、運用時処理の手順の一例を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００７５】
［ステップＳ３１］配信間隔更新部１５０は、計算装置２００−１による画像処理の実行時間を計測する。例えば、ステップＳ３１の処理として、図６に示したステップＳ１１〜ステップＳ１９の処理が実行される。
【００７６】
［ステップＳ３２］配信間隔更新部１５０は、計算装置２００−１による画像処理の実行時間がカメラ２１−１がフレームを配信する時間間隔以上であるか否かを判定する。つまり、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔が計算装置２００−１による画像処理の実行時間よりも（０［秒］以上）短いか否かを判定する。なお、０［秒］は、第１の実施の形態に示した、第１の所定時間の一例である。配信間隔更新部１５０は、計算装置２００−１による画像処理の実行時間がカメラ２１−１がフレームを配信する時間間隔以上であると判定した場合、処理をステップＳ３４に進める。また、配信間隔更新部１５０は、計算装置２００−１による画像処理の実行時間がカメラ２１−１がフレームを配信する時間間隔未満であると判定した場合、処理をステップＳ３３に進める。
【００７７】
［ステップＳ３３］配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔と計算装置２００−１による画像処理の実行時間との差（待ち時間）が所定時間以上であるか否かを判定する。つまり、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔が計算装置２００−１による画像処理の実行時間よりも所定時間以上長いか否かを判定する。なお、所定時間は、第１の実施の形態に示した、第２の所定時間の一例である。配信間隔更新部１５０は、待ち時間が所定時間以上であると判定した場合、処理をステップＳ３４に進める。また、配信間隔更新部１５０は、待ち時間が所定時間未満であると判定した場合、処理をステップＳ３１に進める。
【００７８】
［ステップＳ３４］配信間隔更新部１５０は、実行時間が配信間隔以上であるまたは待ち時間が所定時間以上であることが所定回数以上発生したか否かを判定する。配信間隔更新部１５０は、実行時間が配信間隔以上であるまたは待ち時間が所定時間以上であることが所定回数以上発生したと判定した場合、処理をステップＳ３５に進める。また、配信間隔更新部１５０は、実行時間が配信間隔以上であるまたは待ち時間が所定時間以上であることが所定回数以上発生していないと判定した場合、処理をステップＳ３１に進める。
【００７９】
［ステップＳ３５］配信間隔更新部１５０は、配信間隔更新処理を実行する。ステップＳ３５の処理として、図６に示した配信間隔更新処理が実行される。そして、処理がステップＳ３１に進む。
【００８０】
このように、配信間隔更新部１５０は、実行時間が配信間隔以上である場合または待ち時間が所定時間以上である場合に配信間隔を更新する。これにより、配信間隔更新部１５０は、画像処理を用いたサービスの運用を開始するときに更新した配信間隔が不適切になった場合、配信間隔を適切に更新することができる。実行時間が配信間隔以上である場合または待ち時間が所定時間以上である場合に配信間隔を更新することによる効果を、以下の図９および図１０を参照して説明する。
【００８１】
図９は、配信間隔更新による効果を説明するための図（その１）である。配信間隔更新部１５０は、実行時間が配信間隔以上である場合に配信間隔を更新することで、フレームが配信されてから画像処理が実行されるまでの遅れ時間の発生を抑制することができる。なお、図９では、実行時間は長方形の長さで示され、遅れ時間は両矢印の長さで示される。
【００８２】
グラフ５１は、実行時間が配信間隔以上である場合の実行時間と配信間隔との関係を示す。グラフ５１に示す例では、画像処理部２２０は、カメラ２１−１がフレームを配信する時間間隔より長い一定の実行時間で画像処理を実行する。すると、フレームが配信されてから画像処理が実行されるまでの遅れ時間が発生する。画像処理の実行時間がフレームの配信時間間隔より長い場合、画像処理の実行回数が増加することで、遅れ時間は増加する。遅れ時間が画像処理の実行時間を超えると、カメラ２１−１から配信されるフレームがバッファ１２０に複数溜まる。バッファ１２０に複数のフレームが溜まると、フレーム処理部１３０が最新のフレーム以外のフレームに対する画像処理を計算装置２００−１に実行させるため、画像処理のリアルタイム性は損なわれる。
【００８３】
グラフ５２は、配信間隔が実行時間と同程度に更新された場合の実行時間と配信間隔との関係を示す。グラフ５２に示す例では、画像処理部２２０は、カメラ２１−１がフレームを配信する時間間隔と同程度の実行時間で画像処理を実行する。配信間隔が実行時間と同程度の場合、遅れ時間の発生が抑制される。よって、配信間隔更新部１５０は、実行時間が配信間隔以上である場合に配信間隔を更新することで、計算装置２００−１に画像処理をリアルタイムに実行させることができる。
【００８４】
図１０は、配信間隔更新による効果を説明するための図（その２）である。配信間隔更新部１５０は、待ち時間が所定時間以上である場合に配信間隔を更新することで、待ち時間の発生を抑制することができる。なお、図１０では、実行時間は長方形の長さで示され、待ち時間は両矢印の長さで示される。
【００８５】
グラフ６１は、待ち時間が所定時間以上である場合の実行時間と配信間隔との関係を示す。グラフ６１に示す例では、画像処理部２２０は、カメラ２１−１がフレームを配信する時間間隔より所定時間以上短い一定の実行時間で画像処理を実行する。すると、画像処理が実行されてから次の画像処理が実行されるまで、計算装置２００−１が処理を実行しない待ち時間が発生する。
【００８６】
グラフ６２は、配信間隔が実行時間と同程度に更新された場合の実行時間と配信間隔との関係を示す。グラフ６２に示す例では、画像処理部２２０は、カメラ２１−１がフレームを配信する時間間隔と同程度の実行時間で画像処理を実行する。配信間隔が実行時間と同程度の場合、待ち時間の発生が抑制される。よって、配信間隔更新部１５０は、待ち時間が所定時間以上である場合に配信間隔を更新することで、計算装置２００−１のリソースを有効活用することができる。
【００８７】
第２の実施の形態によれば、配信間隔更新部１５０は、一定の時間間隔でフレームを配信するカメラ２１−１から配信されるフレームに対する画像処理を計算装置２００−１が実行する実行時間を計測する。そして、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔を実行時間に基づいて更新する。これにより、情報処理装置１００は、計算装置２００−１の処理能力に対して過剰なフレームがカメラ２１−１から配信されることを抑制できる。よって、情報処理装置１００は、ネットワーク３０の負荷を軽減することができる。
【００８８】
また、バッファ１２０は、カメラ２１−１から配信されるフレーム１２１−１，１２１−２，１２１−３，・・・を記憶する。フレーム処理部１３０は、バッファ１２０に記憶されたフレーム１２１−１，１２１−２，１２１−３，・・・のうちのフレーム１２１−１を計算装置２００−１に送信する。そして、配信間隔更新部１５０は、計算装置２００−１へのフレーム１２１−１の送信にかかった時間を含む実行時間を計測する。これにより、情報処理装置１００は、計算装置２００−１へのフレーム１２１−１の送信に時間がかかる場合でも、カメラ２１−１がフレームを配信する時間間隔を適切に更新できる。
【００８９】
また、フレーム処理部１３０は、計算装置２００−１から画像処理の結果を取得し、画像処理の結果を出力する。そして、配信間隔更新部１５０は、画像処理の結果の出力にかかった時間を含む実行時間を計測する。これにより、情報処理装置１００は、画像処理の結果の出力に時間がかかる場合でも、カメラ２１−１がフレームを配信する時間間隔を適切に更新できる。
【００９０】
また、配信間隔更新部１５０は、カメラ２１−１がフレームを配信する時間間隔が実行時間よりも短い場合またはカメラ２１−１がフレームを配信する時間間隔が実行時間よりも所定時間以上長い場合、カメラ２１−１がフレームを配信する時間間隔を更新する。これにより、情報処理装置１００は、計算装置２００−１の処理能力に対して適切な頻度でカメラ２１−１にフレームを配信させることができる。
【００９１】
〔第３の実施の形態〕
次に、第３の実施の形態を説明する。第３の実施の形態については、第２の実施の形態との違いを中心に説明し、第２の実施の形態と同様の内容については説明を省略することがある。第３の実施の形態は、複数のカメラがある場合に、複数のカメラそれぞれのフレームの配信間隔を、フレームに対する画像処理を実行する計算装置の処理能力に応じて更新するものである。
【００９２】
図１１は、第３の実施の形態の概要を示す図である。第２の実施の形態では、情報処理装置１００は、計算装置２００−１が実行する画像処理の実行時間を基にカメラ２１−１がフレームを配信する間隔を更新していた。これに対して、第３の実施の形態では、画像処理装置３００ａに含まれる情報処理装置１００ａは、画像処理装置３００ａに含まれる計算装置２００ａ−１が実行する画像処理の実行時間を基にカメラ２１ａ−１，２１ａ−２がフレームを配信する間隔を更新する。
【００９３】
例えば、計算装置２００ａ−１が図５に示した画像処理を実行する場合、画像処理の実行時間は、検出される人物の数によって変化する。よって、カメラ２１ａ−１が配信するフレームに対する画像処理の実行時間とカメラ２１ａ−２が配信するフレームに対する画像処理の実行時間とは、異なることがある。そこで、情報処理装置１００ａは、カメラ２１ａ−１，２１ａ−２のフレームの配信間隔を別々に更新する。
【００９４】
カメラ２１ａ−１，２１ａ−２は、情報処理装置１００に一定の時間間隔で現在のフレームを配信する。情報処理装置１００ａは、カメラ２１ａ−１，２１ａ−２から配信されたフレームに対する画像処理を、計算装置２００ａ−１に並列に実行させる。計算装置２００ａ−１は、情報処理装置１００ａから取得したフレームに対して並列に画像処理を実行する。計算装置２００ａ−１は、並列に実行する画像処理のうち、いずれかの画像処理が終了すると、終了した画像処理の結果を情報処理装置１００ａに送信する。
【００９５】
情報処理装置１００ａは、計算装置２００ａ−１が画像処理を実行する実行時間を測定する。そして、情報処理装置１００ａは、計算装置２００ａ−１によるカメラ２１ａ−１から配信されるフレームに対する画像処理の実行時間に応じて、カメラ２１ａ−１がフレームを配信する時間間隔を更新する。また、情報処理装置１００ａは、計算装置２００ａ−１によるカメラ２１ａ−２から配信されるフレームに対する画像処理の実行時間に応じて、カメラ２１ａ−２がフレームを配信する時間間隔を更新する。なお、計算装置２００ａ−１は、１つの計算装置でもよいし複数の計算装置でもよい。
【００９６】
情報処理装置１００ａは、第２の実施の形態の情報処理装置１００と同様に図３のハードウェア構成によって実現される。また、計算装置２００ａ−１は、第２の実施の形態の計算装置２００−１と同様に図３のハードウェア構成によって実現される。以下では、情報処理装置１００ａのハードウェアとして情報処理装置１００のハードウェアと同じ符号が用いられ、計算装置２００ａ−１のハードウェアとして計算装置２００−１のハードウェアと同じ符号が用いられる。
【００９７】
次に、画像処理装置３００ａの機能について詳細に説明する。
図１２は、画像処理装置の他の機能例を示すブロック図である。情報処理装置１００ａは、バッファ１２０ａ、フレーム処理部１３０ａ、結果記憶部１４０ａ、および配信間隔更新部１５０ａを有する。バッファ１２０ａおよび結果記憶部１４０ａは、情報処理装置１００ａのメモリ１０２またはストレージ装置１０３の記憶領域を用いて実現される。フレーム処理部１３０ａおよび配信間隔更新部１５０ａは、情報処理装置１００ａのメモリ１０２に記憶されたプログラムを情報処理装置１００ａのプロセッサ１０１が実行することで実現される。
【００９８】
バッファ１２０ａは、フレーム１２１ａ−１，１２１ａ−２，１２１ａ−３，・・・およびフレーム１２２ａ−１，１２２ａ−２，１２２ａ−３，・・・を記憶する。フレーム１２１ａ−１，１２１ａ−２，１２１ａ−３，・・・は、カメラ２１ａ−１から一定の時間間隔で配信されるフレームである。フレーム１２２ａ−１，１２２ａ−２，１２２ａ−３，・・・は、カメラ２１ａ−２から一定の時間間隔で配信されるフレームである。なお、画像処理が行われたフレームは、バッファ１２０ａから削除される。
【００９９】
フレーム処理部１３０ａは、計算装置２００ａ−１に画像処理を実行させ、画像処理の結果を出力する。フレーム処理部１３０ａは、フレーム１２１ａ−１，１２１ａ−２，１２１ａ−３，・・・のうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２１ａ−１）に対して前処理を行う。また、フレーム処理部１３０ａは、フレーム１２２ａ−１，１２２ａ−２，１２２ａ−３，・・・のうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２２ａ−１）に対して前処理を行う。フレーム処理部１３０ａは、前処理したフレーム１２１ａ−１，１２２ａ−１を計算装置２００ａ−１に送信し、計算装置２００ａ−１に画像処理を実行させる。フレーム処理部１３０ａは、計算装置２００ａ−１による画像処理の結果を取得し、取得した画像処理の結果を結果記憶部１４０ａに格納する。
【０１００】
配信間隔更新部１５０ａは、計算装置２００ａ−１による画像処理の実行時間を計測し、計測した実行時間に基づいて、カメラ２１ａ−１，２１ａ−２のフレーム配信間隔を更新する。配信間隔更新部１５０ａは、フレーム処理部１３０ａがフレーム１２１ａ−１に対する前処理を実行してからフレーム１２１ａ−１に対する画像処理の結果を出力するまでの実行時間を計測する。配信間隔更新部１５０ａは、カメラ２１ａ−１から配信されるフレームに対する複数回の実行時間に基づいて、カメラ２１ａ−１がフレームを配信する時間間隔を更新する。また、配信間隔更新部１５０ａは、フレーム処理部１３０ａがフレーム１２２ａ−１に対する前処理を実行してからフレーム１２２ａ−１に対する画像処理の結果を出力するまでの実行時間を計測する。配信間隔更新部１５０ａは、カメラ２１ａ−２から配信されるフレームに対する複数回の実行時間に基づいて、カメラ２１ａ−２がフレームを配信する時間間隔を更新する。
【０１０１】
計算装置２００ａ−１は、画像処理部２２０ａを有する。画像処理部２２０ａは、計算装置２００ａ−１のメモリ２０２に記憶されたプログラムを計算装置２００ａ−１のプロセッサ２０１およびアクセラレータ２０４が実行することで実現される。画像処理部２２０ａは、情報処理装置１００ａから取得したフレーム１２１ａ−１，１２２ａ−１に対して、並列に画像処理を実行する。画像処理部２２０ａは、並列に実行する画像処理のうち、いずれかの画像処理が終了すると、終了した画像処理の結果を出力し、出力した画像処理の結果を情報処理装置１００ａに送信する。なお、図１２に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【０１０２】
以下、第３の実施の形態の配信間隔更新処理の手順について、詳細に説明する。
図１３は、配信間隔更新処理の手順の他の一例を示すフローチャート（その１）である。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ４１］情報処理装置１００ａの配信間隔更新部１５０ａは、バッファ１２０ａにフレームがあるか否かを判定する。配信間隔更新部１５０ａは、バッファ１２０ａにフレームがあると判定した場合、処理をステップＳ４３に進める。また、配信間隔更新部１５０ａは、バッファ１２０ａにフレームがないと判定した場合、処理をステップＳ４２に進める。
【０１０４】
［ステップＳ４２］配信間隔更新部１５０ａは、一定時間待機する。そして、処理がステップＳ４１に進む。つまり、配信間隔更新部１５０ａは、カメラ２１ａ−１，２１ａ−２からバッファ１２０ａにフレームが配信されるまで待機する。
【０１０５】
［ステップＳ４３］配信間隔更新部１５０ａは、実行時間の計測を開始する。
［ステップＳ４４］情報処理装置１００ａのフレーム処理部１３０ａは、フレーム１２１ａ−１，１２１ａ−２，１２１ａ−３，・・・のうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２１ａ−１）に対して前処理を行う。また、フレーム処理部１３０ａは、フレーム１２２ａ−１，１２２ａ−２，１２２ａ−３，・・・のうち、撮影された時刻が最も古いフレーム（例えば、フレーム１２２ａ−１）に対して前処理を行う。
【０１０６】
［ステップＳ４５］フレーム処理部１３０ａは、ステップＳ４４で前処理したフレーム１２１ａ−１，１２２ａ−１を計算装置２００ａ−１に送信し、計算装置２００ａ−１に画像処理を実行させる。
【０１０７】
［ステップＳ４６］計算装置２００ａ−１の画像処理部２２０ａは、情報処理装置１００ａから取得したフレーム１２１ａ−１，１２２ａ−１に対して、並列に画像処理を実行する。
【０１０８】
［ステップＳ４７］画像処理部２２０ａは、並列に実行した画像処理のうちいずれかが終了すると、先に終了した画像処理（例えば、フレーム１２１ａ−１に対する画像処理）の結果を情報処理装置１００ａに送信する。
【０１０９】
［ステップＳ４８］フレーム処理部１３０ａは、先に終了した画像処理の結果を取得し、取得した画像処理の結果を出力する。例えば、フレーム処理部１３０ａは、フレーム１２１ａ−１に対する画像処理の結果を結果記憶部１４０ａに格納する。また、例えば、フレーム処理部１３０ａは、フレーム１２１ａ−１に対する画像処理の結果をモニタ３１に表示させる。
【０１１０】
［ステップＳ４９］配信間隔更新部１５０ａは、先に終了した画像処理の実行時間計測を終了する。配信間隔更新部１５０ａは、ステップＳ４４〜ステップＳ４８までの時間をフレーム１２１ａ−１に対する画像処理の実行時間として計測する。
【０１１１】
［ステップＳ５０］画像処理部２２０ａは、並列に実行した画像処理のうちステップＳ４７で終了していない方が終了すると、後に終了した画像処理（例えば、フレーム１２２ａ−１に対する画像処理）の結果を情報処理装置１００ａに送信する。
【０１１２】
［ステップＳ５１］フレーム処理部１３０ａは、後に終了した画像処理の結果を取得し、取得した画像処理の結果を出力する。例えば、フレーム処理部１３０ａは、フレーム１２２ａ−１に対する画像処理の結果を結果記憶部１４０ａに格納する。また、例えば、フレーム処理部１３０ａは、フレーム１２２ａ−１に対する画像処理の結果をモニタ３１に表示させる。
【０１１３】
［ステップＳ５２］配信間隔更新部１５０ａは、後に終了した画像処理の実行時間計測を終了する。配信間隔更新部１５０ａは、ステップＳ４４〜ステップＳ５１までの時間をフレーム１２２ａ−１に対する画像処理の実行時間として計測する。
【０１１４】
図１４は、配信間隔更新処理の手順の他の一例を示すフローチャート（その２）である。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ５３］配信間隔更新部１５０ａは、実行時間を指定回数計測したか否かを判定する。配信間隔更新部１５０ａは、実行時間を指定回数計測したと判定した場合、処理をステップＳ５４に進める。また、配信間隔更新部１５０ａは、実行時間を指定回数計測していないと判定した場合、処理をステップＳ４１に進める。
【０１１５】
［ステップＳ５４］配信間隔更新部１５０ａは、カメラ２１ａ−１，２１ａ−２がフレームを配信する時間間隔を更新する。例えば、配信間隔更新部１５０ａは、カメラ２１ａ−１がフレームを配信する時間間隔を、指定回数計測した、カメラ２１ａ−１が配信するフレームに対する画像処理の実行時間のうち最大の実行時間に更新する。また、例えば、配信間隔更新部１５０ａは、カメラ２１ａ−２がフレームを配信する時間間隔を、指定回数計測した、カメラ２１ａ−２が配信するフレームに対する画像処理の実行時間のうち最大の実行時間に更新する。
【０１１６】
このように、配信間隔更新部１５０ａは、カメラ２１ａ−１，２１ａ−２がフレームを配信する時間間隔を、計算装置２００ａ−１に指定回数実行させた画像処理の実行時間のうち最大の実行時間に更新する。これにより、配信間隔更新部１５０は、カメラ２１ａ−１，２１ａ−２がフレームを配信する時間間隔とカメラ２１ａ−１，２１ａ−２が配信するフレームに対する画像処理の実行時間とを同程度にすることができる。
【０１１７】
さらに、配信間隔更新部１５０ａは、図８に示した運用時処理と同様の処理を、カメラ２１ａ−１，２１ａ−２それぞれに対して並列に実行することもできる。これにより、配信間隔更新部１５０ａは、画像処理を用いたサービスの運用を開始するときに更新したカメラ２１ａ−１，２１ａ−２それぞれの配信間隔が不適切になった場合、配信間隔を適切に更新することができる。
【０１１８】
第３の実施の形態によれば、第２の実施の形態と同様に、情報処理装置１００ａは、ネットワークの負荷を軽減することができる。さらに第３の実施の形態では、計算装置２００ａ−１は、カメラ２１ａ−１，２１ａ−２それぞれから配信される一のフレームに対する複数の画像処理を実行する。また、配信間隔更新部１５０ａは、複数の画像処理の複数の実行時間それぞれを計測し、複数の実行時間それぞれに基づいて、カメラ２１ａ−１，２１ａ−２それぞれがフレームを配信する時間間隔を更新する。これにより、情報処理装置１００ａは、カメラ２１ａ−１，２１ａ−２それぞれについて、フレームを配信する時間間隔を適切に更新できる。
【０１１９】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１２０】
１  カメラ
２  計算装置
３  フレーム
１０  情報処理装置
１１  記憶部
１２  処理部
２０  画像処理装置
【要約】      （修正有）【課題】防犯カメラから大量のフレームが送信されたとき、防犯カメラと画像処理を実行する装置との間にあるネットワークにかかる大きな負荷を軽減する。【解決手段】情報処理システムにおいて、情報処理装置１０は、一定の時間間隔で配信するカメラ１から配信されるフレームを記憶部１１に記憶し、フレーム３に対する画像処理を計算装置２が実行する実行時間を計測する。そして、情報処理装置１０は、カメラ１がフレームを配信する時間間隔を、実行時間に基づいて更新する。【選択図】図１【図１】
0006788210.tif 000002
【図２】
0006788210.tif 000003
【図３】
0006788210.tif 000004
【図４】
0006788210.tif 000005
【図５】
0006788210.tif 000006
【図６】
0006788210.tif 000007
【図７】
0006788210.tif 000008
【図８】
0006788210.tif 000009
【図９】
0006788210.tif 000010
【図１０】
0006788210.tif 000011
【図１１】
0006788210.tif 000012
【図１２】
0006788210.tif 000013
【図１３】
0006788210.tif 000014
【図１４】
0006788210.tif 000015