本発明者は、従来の技術において、以下の問題が生じることを見いだした。
近年、犯罪の抑止や犯罪発生時の証拠映像の記録のために、街頭、店内、道路等に多数の監視カメラが設置されている。また、監視カメラのインテリジェント機能の高度化に伴って監視目的以外で監視カメラを活用するようになった。例えば、店内に設置した監視カメラで、来店客の年齢や性別、行動パターン、滞在状況などを自動判別してマーケティングに活用する事が提案されている。このような監視カメラの用途の多様化により、機能を動的に追加し、削除できる監視カメラを供給する要望が高まっている。
一部の監視カメラメーカーは監視カメラ上で動作するアプリケーション開発の為のSDK(Software Development Kit)を提供しており、開発したアプリケーションはネットワーク経由で動的に監視カメラにインストールし、アンインストールすることができる。今後、このような動的にアプリケーションをインストールし、アンインストールできる監視カメラは、街頭、店内、道路等にますます多く設置されるようになると考えられる。
一方で、GPS(Global Positioning System)機能とインターネットへの常時接続機能を備えたスマートフォンの普及により、個人の位置情報をリアルタイムで把握する事は容易に実現可能である。街中に設置されており、動的にアプリケーションをインストールし、アンインストールできる監視カメラと、スマートフォンを連携させると、特定の人物の移動に追随して、その人物の近くに設置された監視カメラを逐次選択して、専用のアプリケーションを自動的にインストールして動作させることも可能である。
このようなシステムを利用すれば、例えば親が常時子供を見守る事ができるアプリケーションを実現することができる。つまり、子供にスマートフォンを持たせておき、スマートフォンの位置情報を取得してその近くにある監視カメラを検索する。検索した監視カメラから少なくとも1つのカメラを選択して、子供の動画や静止画を親が持つ端末に配信するアプリケーションをインストールして動作させる。子供が移動した場合には、スマートフォンの位置情報を頼りに移動先付近に設置された監視カメラを再検索して、その監視カメラで同様にアプリケーションを動作させれば、子供の移動に追随しながら常時子供の様子を確認することができる。アプリケーションに子供の顔や服装などの特徴情報を識別する機能を持たせておけば、子供のズーム画像を切り出して親が持つ端末に配信することもできる。あるいは、アプリケーションに犯罪歴がある人物の顔を識別する機能を持たせておけば、子供に特定の犯罪歴がある人物が近づいた際に親が持つ端末に通知することもできる。
また、システムが本人の移動に追随して撮影した画像を特定のサーバや端末に配信して記録する機能を持てば、本システムをライフログ用途に使うこともできる。あるいは、システムが、本人が乗車している車に追随して撮影した画像を記録する機能を持てば、交通事故があった場合の証拠として、記録画像を活用することが可能である。
特許文献1は、複数の監視カメラの中から観察対象の正面を撮影可能な監視カメラを特定する方法を開示している。スマートフォンの近くに複数の監視カメラが存在した場合に、その中からアプリケーションを動作させるカメラとして適切なカメラを選択するための一手法として、この技術を利用することができる。
特許文献2は、観察対象の移動先を予測して、移動先に存在する監視カメラを選択する方法を開示しているが、監視カメラで動作させる準備を開始すべきタイミングを特定することはできない。
例えば、図1のようにスマートフォンを持った人が9台の監視カメラCAM_A〜CAM_Iが設置された地域に入った場合を考える。このスマートフォンの過去の移動履歴情報がスマートフォンに格納されており、その情報を元に図1に示す地点Aから地点Bに点線矢印の経路を通って移動すると予測したとする。その経路を撮影可能な監視カメラはCAM_A、CAM_D、CAM_E、CAM_Hである。CAM_Aの撮影範囲はこの人物が到着するまでの時間が短いので、アプリケーションのインストールを直ぐに行ってアプリケーション起動の準備をしておくべきである。一方で、この人物がCAM_Hの撮影範囲に到着するまでには時間的余裕があるため、直ぐにアプリケーションをインストールしておく必要は無い。また、この人物が予測通りの行動をせずに、別の地点に向かったり、引き返したり、別の道を通る可能性もあるため、予測した経路上の地点であっても現在地である地点Aから遠ざかるに従って、実際にその地点に到着する可能性は徐々に低くなる。従って、この人物がまだ地点AにいるタイミングでCAM_Hにアプリケーションをインストールしておいても、この人物がCAM_Hの撮影範囲に到着せず、CAM_Hに対するアプリケーションのインストール処理が無駄になる可能性が比較的高い。
アプリケーションのインストール処理や起動処理は、監視カメラのCPUや記憶部などの資源や、ネットワーク資源を使う処理であるので、むやみに多数の監視カメラにアプリケーションをインストールすれば各種資源を圧迫することになる。図1の例では、スマートフォンが1台だけであり、監視カメラの台数も少ないが、実際にはスマートフォンの数も監視カメラの数も更に多く存在するシステムになることが考えられ、各種資源の圧迫がより顕著な問題になってくる。
このような問題を解決するために、本発明の一態様に係るカメラ制御装置は、ユーザ端末の移動履歴情報に基づいて、ユーザ端末がカメラの撮影範囲に到着する度合いを示す到着予測値を算出する到着予測値算出器と、ユーザ端末の位置を示す第1情報、カメラの位置を示す第2情報に基づいて、ユーザ端末がカメラの撮影範囲に到着するまでに要する予測時間である到着予測時間を算出する到着予測時間算出器と、アプリケーションをカメラで動作させるために必要な時間である準備時間を算出する準備時間算出器と、到着予測値、到着予測時間、準備時間に基づいて、アプリケーションをカメラで動作させる準備を開始するかを判断する判断器を含む。
これにより、カメラで動作させる準備を開始する適切な時期を決定することができる。
つまり、カメラなどのハードウエア資源の有効使用と、カメラの機能の高度化が実現できる。
また、準備時間は、アプリケーションが格納された場所から、カメラにアプリケーションを送付する時間を含み、アプリケーションを前記カメラで動作させる準備を開始するかの判断は、アプリケーションをカメラにインストールするかの判断を含んでもよい。
これにより、カメラにアプリケーションをインストールする適切な時期を決定できる。
また、アプリケーションをカメラで動作させる準備を開始するかの判断は、アプリケーションをカメラで起動する時期の判断を含んでもよい。
これにより、カメラでアプリケーションを起動する適切な時期を決定できる。
また、例えば、移動履歴情報はユーザ端末の所定時間前の位置情報である第3情報を含み、第1情報は現在のユーザ端末の位置を示す情報であり、到着予測値算出器は第3情報に基づいて到着予測値を算出するようにしてもよい。
これにより、適切な到着予測値を算出できる。
また、例えば、移動履歴情報はユーザ端末の長期的な移動履歴情報である第4情報を含み、第1情報は現在のユーザ端末の位置を示す情報であり、到着予測値算出器は第4情報に基づいて到着予測値を算出するようにしてもよい。
これにより、適切な到着予測値を算出できる。
また、例えば、第4情報はユーザ端末がカメラの撮影範囲に滞在した時間を示す情報を含むようにしてもよい。
これにより、適切な到着予測値を算出できる。
また、到着予測値が、ユーザ端末がカメラの撮影範囲に到着する度合いが高いことを示す場合であっても、到着予測時間が準備時間よりも長くなるに従い、アプリケーションをカメラにインストールする度合いを低減させてもよい。
これにより、無駄に広範囲のカメラにアプリケーションがインストールされてしまうことを抑制することができる。
また、カメラがアプリケーションを保持する場合は、カメラにアプリケーションを送付する時間を考慮せずに準備時間を算出してもよい。そして、到着予測値が、ユーザ端末がカメラの撮影範囲に到着する度合いが高いことを示す場合であっても、到着予測時間が準備時間よりも長くなるに従い、アプリケーションをカメラからアンインストールする度合いを増加させてもよい。
これにより、インストールされた無駄なアプリケーションをアンインストールすることができ、カメラのハードウエア資源を有効使用できる。
また、例えば、到着予測値算出器は移動履歴情報、ユーザ端末から取得した経路情報に基づいて到着予測値を算出するようにしてもよい。
これにより、適切な到着予測値を算出できる。
また、例えば、到着予測時間算出器は第1情報、第2情報、ユーザ端末の移動履歴情報に基づいて到着予測時間を算出するようにしてもよい。
これにより、適切な到着予測時間を算出できる。
また、例えば、到着予測時間算出器は第1情報、第2情報、ユーザ端末から取得した経路情報に基づいて到着予測時間を算出するようにしてもよい。
これにより、適切な到着予測時間を算出できる。
なお、これらの全般的または具体的な態様は、方法、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、方法、システム、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも本発明の包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、以下の説明では、同一の構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明を省略する場合がある。
また、本明細書においては、アプリケーションは関連する複数のファイルを1つにまとめたアプリケーションパッケージであってもよい。
(実施の形態)
図2は、本発明の一実施の形態におけるカメラ制御システムの全体構成を示すブロック図である。このカメラ制御システムは、設置された多数の監視カメラ2010の中から所定のユーザ端末が位置する領域を撮影する監視カメラを特定して、ユーザが望む機能を持つアプリケーションを特定された監視カメラ上で動作させるサービスを実現するものである。
ユーザ端末2020の各々は、GPSなどを利用し、自身の位置情報を取得する機能と移動通信網2050などを利用したインターネット2040への常時接続機能を備えた端末であり、例えばスマートフォンなどである。
監視カメラ2010はネットワーク経由で動的にアプリケーションのインストールやアンインストールすることが可能であり、インストールしたアプリケーションはネットワーク経由で起動や終了といった制御も可能である。監視カメラ2010へインストールして動作させることができるアプリケーションには、監視カメラ2010が備える機能を使う為のAPI(Application Programming Interface)が提供されている。APIとしては、例えば、画像センサーが出力する画像データを取得するAPI、ネットワーク経由でデータを送受信するAPIなどがある。それらのAPIを使うことによって、監視カメラ2010が撮影する画像を処理して得られたデータをネットワーク経由で任意のサーバや端末に送信するアプリケーションを実現することができる。
カメラ制御装置2030は、物理的には、CPU、メモリ、ハードディスクなどの記憶装置を備えたコンピュータシステムとして構成される。また、カメラ制御装置2030は複数のコンピュータシステムで構成されてもよい。図2のカメラ制御システムにおいて、カメラ制御装置2030は中心的役割を担っており、インターネットに接続された全ての監視カメラ2010とユーザ端末2020の情報を管理している。カメラ制御装置2030はインターネット経由で監視カメラ2010に各種制御要求を送信し、監視カメラ2010へアプリケーションのインストール、アンインストール、起動、終了する制御を行う。カメラ制御装置2030と監視カメラ2010間の情報や、カメラ制御装置2030とユーザ端末2020間の情報の送受信や各種制御要求は、例えばHTTP(Hypertext Transfer Protocol)などによって行うことができる。
図3は本実施の形態のカメラ制御装置2030の機能構成を示すブロック図である。カメラ制御装置2030は、監視カメラ情報管理部3010、ユーザ端末情報管理部3020、アプリケーション情報管理部3030、インストール要否判定情報管理部3040、通信部3110、到着予測値算出部3120、到着予測時間算出部3130、準備時間算出部3140、余裕時間算出部3150、インストール要否判定部3160、アプリケーション制御部3170、制御部3180を含む。次にこれらの各構成要素について詳しく説明する。
通信部3110は、インターネットへの接続部である。カメラ制御装置2030は通信部3110を通して、監視カメラ2010やユーザ端末2020とデータや制御要求の送受信などを行う。
監視カメラ情報管理部3010は、全ての監視カメラの情報を管理する。図4Aは、監視カメラ情報管理部3010が管理する監視カメラ情報データベース400を示しており、1行目が各フィールドのデータ種別、2行目以降に実データの例を示している。監視カメラ情報データベース400は、監視カメラ毎の監視カメラ情報レコードを含む。各監視カメラ情報レコードは、カメラID、監視カメラ位置情報、通信速度、起動中アプリID、インストール済みアプリIDのフィールドを含む。監視カメラ情報管理部3010は監視カメラ情報データベース400を含んでもよい。
カメラIDフィールド(図4A)には、監視カメラの識別子であるカメラIDが記憶される。全ての監視カメラは固有のカメラIDを持つ。
監視カメラ位置情報フィールドには、監視カメラが設置されている位置の緯度と経度のデータである監視カメラ位置情報が記憶される。
通信速度フィールドには、監視カメラとカメラ制御装置との間でデータの送受信を行う場合の通信速度が記憶される。通信速度はアプリケーションを監視カメラにインストールする時にアプリケーションの監視カメラへの送信に必要な時間を見積もるために使われる。また、通信速度は、ネットワークや監視カメラの状態によって変動するので、カメラ制御装置は、例えば一定時間毎に各監視カメラとカメラ制御装置との間の通信速度を測定して、通信速度の値を最新の情報に更新する機能を備える。例えば、カメラ制御装置が所定の情報を監視カメラに送付してから、カメラ制御装置が監視カメラから所定の返信情報を受信するまでの時間を測定し、通信速度を決定してもよい。
起動中アプリIDフィールドには、監視カメラで起動中のアプリケーションの識別子である起動中アプリIDが記憶される。監視カメラで同時に複数のアプリケーションを起動している場合は、このフィールドには複数のアプリIDが記憶される。
インストール済みアプリIDフィールドには、監視カメラに既にインストールされているアプリケーションの識別子であるインストール済みアプリIDが記憶される。監視カメラに同時に複数のアプリケーションがインストールされている場合には、インストール済みアプリIDフィールドには複数のアプリIDが記憶される。また、起動中アプリIDフィールドに記憶されたアプリIDで指定されるアプリケーションは、必ずインストール済みである。そこで、データの重複記憶を避けるために、起動中アプリIDフィールドに記憶されたアプリIDは、インストール済みアプリIDのフィールドには記憶されないようにしてもよい。
ユーザ端末情報管理部3020は、全てのユーザ端末の情報を管理する。図4Bは、ユーザ端末情報管理部3020が管理するユーザ端末情報データベース410を示しており、1行目が各フィールドのデータ種別、2行目以降に実データの例を示している。ユーザ端末情報データベース410は、ユーザ端末毎のユーザ端末情報レコードを含む。各ユーザ端末情報レコードは、ユーザ端末ID、ユーザ端末位置情報、使用アプリID、移動履歴情報のフィールドを含む。ユーザ端末情報管理部3020は、ユーザ端末情報データベース410を含んでもよい。
ユーザ端末IDフィールド(図4B)には、ユーザ端末の識別子であるユーザ端末IDが記憶される。全てのユーザ端末は固有のユーザ端末IDを持つ。
ユーザ端末位置情報フィールドには、ユーザ端末が存在する位置の緯度と経度のデータであるユーザ端末位置情報が記憶される。ユーザ端末は、このカメラ制御システムにおいて移動することを前提とした機器であるので、このユーザ端末位置情報フィールドに記憶される値は時々刻々と変化する。例えば、ユーザ端末はユーザ端末の位置情報をカメラ制御装置に通知し、カメラ制御装置はユーザ端末から送信された位置情報の更新通知を受け付けて、ユーザ端末位置情報フィールドに記憶する値を最新の情報に更新する機能を備える。
使用アプリIDフィールドには、ユーザ端末が位置する領域の撮像に使用されるアプリケーションの識別子である使用アプリIDが記憶される。カメラ制御装置は、対象のユーザ端末が位置する領域を撮影できる監視カメラを特定し、その特定された監視カメラに使用アプリIDで指定されたアプリケーションをインストールし、起動するように制御する。すなわち、監視カメラはアプリケーションを受信する。対象のユーザ端末が移動した場合にも、カメラ制御装置は、その移動先の領域を撮影できる監視カメラを特定し、同様に使用アプリIDで指定されたアプリケーションを特定された監視カメラにインストールし、起動するように制御する。つまり、常に対象のユーザ端末を追随して近くに位置する監視カメラで、使用アプリIDで指定されたアプリケーションを動作させることができる。1つのユーザ端末が複数のアプリケーションを同時に使用する場合は、使用アプリIDフィールドには複数のアプリケーション識別子が記憶される。本実施の形態では簡単のため、ユーザ端末毎に同時に使用できるアプリケーションは最大で1つという前提で説明を行う。すなわち、1台のユーザ端末に対応付けられるアプリケーションは1つという前提で説明を行う。
移動履歴情報フィールドにはユーザ端末の移動履歴情報が記憶される。移動履歴情報は短期の移動履歴情報や長期の移動履歴情報を含んでもよい。短期の移動履歴情報は短期の所定期間(例:直近5分)の所定の間隔(例:15秒)毎の時刻情報とその時刻に取得されたユーザ端末位置情報のペア情報としてもよい。また、長期の移動履歴情報は長期の所定期間(例えば6ヶ月間)に監視カメラの撮影範囲にユーザ端末が滞在した時間の積算値とその監視カメラのカメラIDのペアの情報としてもよい。
監視カメラの撮影範囲は、監視カメラの位置を原点として、角度や距離を用いて特定してもよい。例えば、監視カメラの撮影範囲が、監視カメラの位置を中心として真北から真南の半円領域で、かつ半径1メートル以上2メートル以内であるなら、(角度の開始情報、角度の終了情報、半径の開始情報、半径の終情報)=(0度、180度、1メートル、2メートル)なる情報を撮影範囲情報として監視カメラ情報データベース400において、対応するカメラIDに対応付けて記憶してもよい。
ユーザ端末が監視カメラの撮影範囲に到着したかどうか、滞在したかどうかを判断するには、ユーザ端末位置情報で示される位置情報が、上述した撮影範囲情報で特定された領域に含まれるか否かで判断してもよい。
また、処理の簡素化のため、ユーザ端末が監視カメラの撮影範囲に到着する時間を求める場合、ユーザ端末位置情報と撮影範囲情報で特定された領域を使用せず、ユーザ端末位置情報と監視カメラ位置情報を用いて距離を特定しもよい。例えば、ユーザ端末位置情報で特定されるユーザ端末位置と、監視カメラ位置情報で特定される監視カメラ位置の間の直線距離を用いてもよい。
アプリケーション情報管理部3030は、監視カメラにインストールされて動作する全てのアプリケーションの情報を管理する。図4Cは、アプリケーション情報管理部3030が管理するアプリケーション情報データベース420を示しており、1行目が各フィールドのデータ種別、2行目以降に実データの例を示している。アプリケーション情報データベース420は、アプリケーション毎のアプリケーション情報レコードを含む。各アプリケーション情報レコードは、アプリID、サイズ、アプリケーション保存場所のフィールドを含む。アプリケーション情報管理部3030は、アプリケーション情報データベース420を含んでもよい。
アプリIDフィールドには、アプリケーションの識別子であるアプリIDが記憶される。管理する全てのアプリケーションに固有のアプリID値が割り当てられている。既に説明済みの、起動中アプリID、インストール済みアプリID、使用アプリIDの各フィールドで使用される値には、このアプリIDフィールドで使用される値が使われる。
サイズフィールドにはアプリケーションのサイズの情報が記憶される。アプリケーションを監視カメラにインストールする場合に、サイズフィールドに示されたデータサイズを持つアプリケーションを監視カメラに送信するが、そのデータ送信に必要な時間を見積もるためにサイズフィールドに記憶された値が使われる。
アプリケーション保存場所フィールドにはアプリケーションの保存場所を示す情報が記憶される。カメラ制御装置がアプリケーションを保持してもよいし、アプリケーションを使用するユーザ端末がアプリケーションを保持するようにしてもよい。ユーザ端末がアプリケーションを保持する場合は、アプリケーションを監視カメラに送信する必要な時間を見積もる際に、カメラ制御装置と監視カメラ間の通信速度ではなく、ユーザ端末と監視カメラ間の通信速度の情報が使用される。また、カメラ制御装置やユーザ端末以外の場所でアプリケーションを保管してもよい。
ユーザ端末がアプリケーションを保持する場合、ユーザ端末と各々の監視カメラ間の通信速度を測定し、ユーザ端末情報データベース410のユーザ端末IDに対応付けて、測定された通信速度と監視カメラIDのペア情報を記憶してもよい。
さらにユーザ端末とカメラ制御装置の両方に同一のアプリケーションを保存し、カメラ制御装置が監視カメラにアプリケーションを送付するようにしてもよい。この場合、ユーザ端末と各々の監視カメラ間の通信速度を測定する負担などが軽減される。
ユーザ端末はアプリケーションを保持せず、ユーザ端末がカメラ制御装置に所望するアプリケーションに対応する使用アプリIDとユーザ端末IDを通知してもよい。カメラ制御装置は、この通知情報を元に、使用アプリIDに対応するアプリケーションを外部から入手し、この入手したアプリケーションを保持してもよい。
インストール要否判定情報管理部3040は、ユーザ端末が使用するアプリケーションを監視カメラにインストールすべきかどうかを判定するために使用される情報を管理する。図5は、インストール要否判定情報データベース500を示しており、1行目が各フィールドのデータ種別、2行目以降に実データの例を示している。インストール要否判定情報データベース500は、ユーザ端末毎のインストール要否判定情報レコードを含む。各インストール要否判定情報レコードは、ユーザ端末ID、カメラID、到着予測値、余裕時間のフィールドを含む。インストール要否判定情報管理部3040はインストール要否判定情報データベース500を含んでもよい。
ユーザ端末IDフィールド(図5)には、ユーザ端末の識別子であるユーザ端末IDが記憶される。このフィールドで使用される値には、図4Bのユーザ端末情報データベース410でユーザ端末IDに使用された値が使われる。
インストール要否判定情報データベース500においては、各インストール要否判定情報レコードに対応するアプリケーションを特定する情報が明示されていない。各インストール要否判定情報レコードはユーザ端末IDを1つのみ含む。また、前述したように本実施の形態では、1台のユーザ端末に対応付けられるアプリケーションは1つであるとしている。また、図4Bのユーザ端末情報データベース410を参照すると、各ユーザ端末IDに対する使用アプリIDが1つ特定できる。よって、この対応情報を用いれば、図5において、各インストール要否判定情報レコードに対応するアプリIDを特定することができる。
また、図4Bのユーザ端末情報データベース410で、使用アプリIDが指定されていないユーザ端末については、そもそもアプリケーションのインストール要否判定は不要であるので、図5のインストール要否判定情報データベース500には含まれないことになる。
カメラIDフィールド(図5)には、監視カメラの識別子であるカメラIDが記憶される。カメラIDフィールド(図5)には図4Aの監視カメラ情報データベース400のカメラIDフィールドで使用された値が使用される。図5の1つのユーザ端末ID毎に、そのユーザ端末に対応するアプリケーションを各監視カメラにインストールするかどうかを判定する必要があるので、図5のインストール要否判定情報データベース500のレコード数は、使用アプリIDを有するユーザ端末の数と、監視カメラの総数との積となる。
到着予測値フィールドには、カメラIDで指定される監視カメラの撮影範囲にユーザ端末IDで指定されるユーザ端末が到着する度合いである到着予測値が記憶される。到着予測値は0から1の範囲で示され、到着する可能性が高いほど大きい値を取るものとする。
余裕時間フィールドには、余裕時間が記憶される。余裕時間は、ユーザ端末IDで指定されるユーザ端末に対応するアプリケーションがカメラIDで指定される監視カメラにインストールされ、起動するために要する時間を準備時間T1とし、そのユーザ端末がその監視カメラの撮影範囲に到着するまでに要する予測時間を到着予測時間T2とした場合に、次式で表される。
余裕時間=T2−T1
到着予測値算出部3120は、図5のインストール要否判定情報データベース500の到着予測値を算出する。
到着予測時間算出部3130は、ユーザ端末が監視カメラの撮影範囲に到着するまでに要する予測時間である到着予測時間を算出する。
準備時間算出部3140は、監視カメラがアプリケーションを受信するために必要な時間や、インストールや起動するのに必要な時間を含む時間である準備時間を算出する。
余裕時間算出部3150は、到着予測時間算出部3130で算出した到着予測時間と、準備時間算出部3140で算出した準備時間、及び上記した式を用いて余裕時間を算出する。
インストール要否判定部3160は、インストール要否判定情報管理部3040が管理するインストール要否判断情報データベース500を元に、各監視カメラにどのアプリケーションをインストールすべきかの判定や、どのアプリケーションをアンインストールすべきかの判定を行う。
アプリケーション制御部3170は、監視カメラに対してアプリケーションのインストール、アンインストール、起動、終了などの制御を行う。
制御部3180は、各種機能を実現するために以上で説明した監視カメラ情報管理部3010、ユーザ端末情報管理部3020、アプリケーション情報管理部3030、インストール要否判定情報管理部3040、通信部3110、到着予測値算出部3120、到着予測時間算出部3130、準備時間算出部3140、余裕時間算出部3150、インストール要否判定部3160、アプリケーション制御部3170を制御する。
以下、図を参照しながらこのカメラアプリケーション制御システムの具体的手順について説明する。
図6は、カメラ制御装置2030が監視カメラに対するアプリケーションの制御を行う場合の流れを示すフローチャートである。カメラ制御装置2030は、例えば一定時間毎に、ユーザ端末情報管理部3020が管理する全てのユーザ端末に対して、それぞれのユーザ端末に対応するアプリケーションについて、一連のS6040〜S6080の制御を行う。管理する全てのユーザ端末について、このアプリケーションに対する一連の制御(S6040〜S6080)が終了するまでは、S6010の判定が「No」となり、アプリケーションに対する一連の制御(S6040〜S6080)がまだ行われていないユーザ端末が選択され(S6020)、S6040〜S6080の制御が繰り返される。管理する全てのユーザ端末について、アプリケーションに対する一連の制御(S6040〜S6080)が終了すると、S6010の判定は「Yes」となり、カメラ制御装置2030が監視カメラに対するアプリケーションの制御を行う処理は終了となる。以下、S6020で選択されたユーザ端末のユーザ端末IDがTERM_SELであるとして説明を行う。カメラ制御装置2030は、ユーザ端末情報管理部3020が管理するユーザ端末情報データベース410を参照し、TERM_SELに対応する使用アプリIDを取得する。この時、TERM_SELに対応する使用アプリIDが無かった場合は、S6030の判定は「No」となり、TERM_SELについてアプリケーションに対する一連の制御(S6040〜S6080)は不要であるので、S6040以下の処理は行われず再度S6010の判定に戻る。
S6030で「Yes」と判定された場合の処理を以下に説明する。なお、TERM_SELで特定されるユーザ端末に対応するアプリケーションを特定する使用アプリIDをAPP_SELとして以下の説明を行う。
次に、APP_SELのインストール要否判定情報レコードを更新する(S6040)。ここで、APP_SELのインストール要否判定情報レコードとは、インストール要否判定情報データベース500の中で、ユーザ端末IDとしてTERM_SELを値として持つレコードのことである。
図7は、APP_SELのインストール要否判定情報レコードを更新するステップS6040の流れを詳細に示すフローチャートである。
まず、APP_SELのインストール要否判定情報レコードに含まれる全ての到着予測値と余裕時間が更新済みであるかを判定し(S7010)、更新が行われていない到着予測値と余裕時間がある場合は「No」と判定されてS7020以下の処理を繰り返す。APP_SELのインストール要否判定情報レコードに含まれる全ての到着予測値と余裕時間の更新が完了すれば「Yes」と判定されて一連のAPP_SELのインストール要否判定情報レコードの更新処理は終了する。S7010で「No」と判定された場合、APP_SELのインストール要否判定情報レコードに含まれる到着予測値と余裕時間が未更新のカメラIDを1つ選択する(S7020)。選択されたカメラIDをCAM_SELとする。次に、到着予測値算出部3120が、TERM_SELで特定されるユーザ端末の移動履歴情報などを元に、CAM_SELで特定される監視カメラの撮影範囲にTERM_SELで特定されるユーザ端末が到着する度合いである到着予測値の算出を行う(S7030)。
TERM_SELで特定されるユーザ端末の移動履歴情報は、ユーザ端末情報データベース410に含まれる。カメラ制御装置2030は、このTERM_SELで特定される移動履歴情報を参照して、例えば長期の移動履歴情報を元に、過去に頻繁に滞在あるいは通過した地点を撮影範囲とする監視カメラの到着予測値を大きくしたり、避けていると判断される地点を撮影範囲とする監視カメラの到着予測値を小さくしたりする。
特定の監視カメラの撮影範囲に滞在した時間の合計が、他の監視カメラの撮影範囲に滞在した時間の合計よりも長ければ、その特定の監視カメラの到着予測値を他の監視カメラの到着予測値より大きくしてもよい。
特定の監視カメラの撮影範囲を通過した回数が、他の監視カメラの撮影範囲を通過した回数より多ければ、その特定の監視カメラの到着予測値を他の監視カメラの到着予測値より大きくしてもよい。ユーザ端末が監視カメラの撮影範囲を通過したか否かの判断は、図4Bのユーザ端末位置情報で示される位置が、監視カメラの撮影範囲に、所定の時間内(例えば10分)に少なくとも1回含まれた場合は、1回通過したと判断してもよい。
また、例えば、短期の移動履歴情報を元に現在の移動方向を判定して、それまでに通ってきた地点を撮影範囲とする監視カメラの到着予測値よりも、これから移動先になる方向の地点を撮影範囲とする監視カメラの到着予測値がより大きくなるようにしてもよい。
また、今後移動方向を変えたり、移動途中の地点で滞在したりする可能性を考慮して、現在地から見て移動先が同じ方向にある地点を撮影範囲に含む監視カメラが複数ある場合は、現在地により近い監視カメラの到着予測値を大きくしてもよい。
なお、短期の移動履歴情報、例えば現在の時刻から5分以内の移動履歴情報に基づいて、現在のユーザ端末の移動方向や移動速度を算出してもよい。例えば5分前のユーザ端末の位置を起点として、現在のユーザ端末の位置を含む延長線上の方向を移動方向としてもよい。また、例えば5分前のユーザ端末の位置と現在のユーザ端末の位置の直線距離を用いて移動速度を決定しもよい。また、移動速度は固定値としてもよい。ユーザ端末の現在位置を起点として、着目するカメラの位置を終点とした場合、起点と終点を結ぶ直線により近い点を撮影位置とする監視カメラほど到着予測値を大きくしてもよい。
このようなルールで到着予測値を算出すると、図9の地図においてユーザ端末が通ってきた経路を示す矢印9010の経路を通ってユーザ端末が地点9020に現在位置するとした場合、各監視カメラの到着予測値は、例えば、CAM_A:0.1、CAM_B:0.3、CAM_C:0.2、CAM_D:0.5、CAM_E:0.9、CAM_F:0.5、CAM_G:0.4、CAM_H:0.6、CAM_I:0.6、のような値が得られる。また、TERM_SELで特定されるユーザ端末がナビゲーション機能を備える端末であり、TERM_SELで特定されるユーザ端末のナビゲーション機能に目的地が設定されている場合は、以下のようにしてもよい。すなわち、到着予測値算出部3120は、ユーザ端末から取得したナビゲーション経路情報を用い、目的地とその目的地に至るまでのナビゲーション経路を撮影範囲に含む監視カメラに対する到着予測値が大きくなるようにしてもよい。
図7の説明に戻って、S7030の次のステップとして、APP_SELで特定されるアプリケーションをCAM_SELで特定される監視カメラで動作させるための余裕時間を算出する(S7040)。
図8は、余裕時間を算出するステップS7040の詳細フローチャートである。余裕時間を算出するために、まず到着予測時間算出部3130が、TERM_SELで特定されるユーザ端末がCAM_SELで特定される監視カメラの撮影範囲に到着するまでに要する到着予測時間を算出する(S8010)。到着予測時間算出部3130が到着予測時間を算出する方法として、まず、CAM_SELで特定される監視カメラ位置情報とTERM_SELで特定されるユーザ端末位置情報とから、CAM_SELで特定される監視カメラとTERM_SELで特定されるユーザ端末間の直線距離または経路に沿った距離を算出する。次に、ユーザ端末情報データベース410に記憶された移動履歴情報から、直近の移動速度を算出する。なお、直近の移動速度は上述した短期の移動履歴情報を用いて算出してもよい。そして、上記した距離と算出した移動速度により到着予測時間を算出することができる。なお、移動速度を求める際に、移動履歴情報を用いるかわりに、予め準備された固定値やユーザによって予め選択された固定値を用いてもよい。また、TERM_SELで特定されるユーザ端末がナビゲーション機能を備える端末であり、渋滞情報や交通情報を利用できる場合は、到着予測時間の算出精度を高めることが可能である。また、到着予測時間算出部3130が到着予測時間を算出する際に、TERM_SELで特定されるユーザ端末のナビゲーション機能から提供される経路情報をユーザ端末から取得し、CAM_SELで特定される監視カメラ位置情報で特定される位置と、TERM_SELで特定されるユーザ端末位置情報とで特定される位置の間の距離を、経路情報で示される経路に沿って求めてもよい。
S8010の次のステップとして、準備時間算出部3140が、APP_SELで特定されるアプリケーションをCAM_SELで特定される監視カメラで動作させるまでに要する準備時間を算出する(S8020)。準備時間算出部3140が準備時間を算出する方法として、まずアプリケーション情報管理部3030が管理するアプリケーション情報データベース420を参照し、APP_SELで特定されるアプリケーションのサイズを取得する。次に、アプリケーション情報データベース420からアプリケーション保存場所を参考にして、アプリケーションの保存場所を特定する。ここでは、アプリケーションはカメラ制御装置2030に保存されているとする。
次に監視カメラ情報管理部3010が管理する監視カメラ情報データベース400を参照し、CAM_SELで特定される監視カメラとカメラ制御装置2030間の通信速度を取得し、得られたサイズと通信速度から、アプリケーションをCAM_SELで特定される監視カメラに送信するのに要する時間を算出する。算出した送信に要する時間に、CAM_SELで特定される監視カメラの内部でのインストール処理と起動処理に必要な時間を加味して、準備時間の算出が完了する。各監視カメラに、CPUの使用率、メモリの使用率などの現在の自らのパフォーマンスを測定する機能を搭載し、各監視カメラがその測定データを定期的にカメラ制御装置に送付するようにしてもよい。カメラ制御装置はその測定データをカメラIDに対応付けて、記憶してもよい。カメラ制御装置は、その記憶したデータ、アプリケーションのサイズに基づいてインストール処理に必要な時間、起動処理に必要な時間を算出してもよい。カメラ制御装置はCPUの使用率が高くなればなるほど、メモリの使用率が高くなればなるほど、アプリケーションのサイズが大きければ大きいほど、インストール処理に必要な時間、起動処理に必要に時間が長くかかるとしてもよい。また、カメラ制御装置は、上記したような測定データを用いることなく、アプリケーションのサイズのみを用いて、インストール処理に必要な時間や起動処理に必要な時間を決定してもよい。
S8020の次のステップとして、余裕時間算出部3150が、APP_SELで特定されるアプリケーションをCAM_SELで特定される監視カメラで動作させる際の余裕時間を算出する(S8030)。余裕時間は既に説明したとおり、S8010で算出した到着予測時間T2と、S8020で算出した準備時間T1を用いて次式で表される。
余裕時間=T2−T1
図7の説明に戻って、S7040の次のステップとして、S7030で算出した到着予測値とS7040で算出した余裕時間をインストール要否判定情報レコードに反映する(S7050)。
図6の説明に戻って、S6040の次のステップとして、全ての監視カメラに対してAPP_SELで特定されるアプリケーションのインストール要否判定を行う(S6050)。各監視カメラに対してAPP_SELで特定されるアプリケーションをインストールするかしないかの判定は、S6040で算出した到着予測値と余裕時間を用いて行われる。この判定は、より近い将来に、より使われる可能性の高い監視カメラほど所定のアプリケーションがインストールされる状態になり、かつ、ユーザ端末が監視カメラの撮影範囲に到着した時にその監視カメラで所定のアプリケーションを動作させる準備が間に合わないことが無いようなタイミングでインストールが完了するように判定が行われる。具体的には、例えば、図10のように、縦軸に到着予測値、横軸に余裕時間をとった場合に、カメラ制御装置は、到着予測値と余裕時間とが斜線部の領域である領域Aに入るような組み合わせを持つカメラIDを持つ監視カメラのみにAPP_SELで特定されるアプリケーションをインストールすると判定する。
すなわち、カメラ制御装置は、到着予測値が、ユーザ端末が監視カメラの撮影範囲に到着する度合いが高いことを示す場合であっても、到着予測時間が準備時間よりも長くなるに従い、すなわち、余裕時間が大きくなるに従い、アプリケーションを監視カメラにインストールする度合いを低減させる。これにより、使われる可能性の高い監視カメラに、確実にアプリケーションの動作準備が間に合うようにアプリケーションがインストールされるのに加え、無駄に広範囲の監視カメラにインストールされてしまうことを抑制することができる。
また、カメラ制御装置は、アプリケーションが監視カメラにすでにインストールされた場合であり、到着予測値が、ユーザ端末が監視カメラの撮影範囲に到着する度合いが高いことを示す場合であっても、到着予測時間が準備時間よりも長くなるに従い、すなわち、余裕時間が大きくなるに従い、アプリケーションを監視カメラからアンインストールする度合いを増加させる。
なお、監視カメラに対象のアプリケーションがすでにインストールされている場合は、準備時間は監視カメラにアプリケーションを送付する時間を考慮せずに算出してもよい。
尚、監視カメラが密集した地域にある場合などは、図10の領域Aに存在する到着予測値と余裕時間を備えた監視カメラが多数存在する可能性があるが、そのような場合には、それら多数の監視カメラの中から、アプリケーションを動作させるのにより適した監視カメラを順位付けして選択するようにしてもよい。例えば、アプリケーションによっては、広角の監視カメラが適していたり、多くのデータを送信するアプリケーションであれば通信速度が速い監視カメラが適していたりする場合もある。あるいは、特許文献1で提案されているように、ユーザ端末所有者の正面をより捉えることができる監視カメラが適しているケースもありうる。アプリケーション情報データベース420に、それぞれのアプリケーション毎にどのような監視カメラで動作させるのが適しているのかという情報を追加し、監視カメラ情報データベース400に、それぞれの監視カメラが持っているリソースや設置条件などの情報を追加すれば、図10の領域Aに存在する到着予測値と余裕時間を備えた監視カメラの中から、各アプリケーションに適した監視カメラを更に絞り込んで選択することができる。
図6の説明に戻って、S6050の次のステップとして、アプリケーション制御部3170が、S6050でインストール要と判定された全ての監視カメラに対してAPP_SELで特定されるアプリケーションのインストールを行い、インストール不要と判定された全ての監視カメラに対してAPP_SELで特定されるアプリケーションのアンインストールを行い(もともとインストールされていなければアンインストールはしない)、監視カメラ情報データベース400のインストール済みアプリIDフィールドを更新する(S6060)。すなわち、APP_SELで特定されるアプリケーションのインストールを行った場合はAPP_SELをインストール済みアプリIDフィールドに記録する。APP_SELで特定されるアプリケーションのインストール不要と判定された場合はAPP_SELをインストール済みアプリIDフィールドから削除する。
次に、APP_SELで特定されるアプリケーションがインストールされている全ての監視カメラの中からAPP_SELで特定されるアプリケーションを起動する監視カメラを選択する(S6070)。監視カメラの選択方法については、例えば、単純にTERM_SELで特定されるユーザ端末の位置する領域を最も良い画質で撮影できる監視カメラを選択するようにしてもよい。あるいは、アプリケーション情報データベースに、それぞれのアプリケーション毎にどのような監視カメラで動作させるのが適しているのかという情報を追加し、監視カメラ情報データベース400に、それぞれの監視カメラが持っているリソースや設置条件などの情報を追加し、それらの情報を元に各アプリケーションに適した監視カメラを選択するようにしてもよい。また、同時に複数のアングルからの映像を扱うのが適しているアプリケーションの場合には、複数の監視カメラを選択するようにして、同時に複数の監視カメラ上で同一のアプリケーションを起動できるようにしてもよい。
次に、アプリケーション制御部3170は、選択された監視カメラ上でAPP_SELで特定されるアプリケーションを起動する。アプリケーション制御部3170は、選択されなかった監視カメラ上でAPP_SELで特定されるアプリケーションが既に動作しているものがあれば、APP_SELで特定されるアプリケーションを終了させる。アプリケーション制御部3170は、監視カメラ情報データベース400の起動中アプリIDフィールドを更新する(S6080)。すなわち、APP_SELで特定されるアプリケーションを起動した場合はAPP_SELを起動中アプリIDフィールドに記録する。また、APP_SELで特定されるアプリケーションの動作を終了させた場合はAPP_SELを起動中アプリIDフィールドから削除し、APP_SELをインストール済みアプリIDのフィールドに記録する。なお、前述したように、起動中アプリIDフィールドに記憶されたアプリIDはインストール済みアプリIDのフィールドに記憶されないようにしてもよい。このS6080のステップをもって、TERM_SELに関連するアプリケーションに対する一連の制御処理は完了し、再度S6010の判定に戻る。
以上で、図6のフローチャートの説明を終わる。
尚、図7においては、全ての監視カメラに対してS7040で余裕時間が算出されるが、S7030で算出した到着予測値がある規定値以下であった場合には、余裕時間を算出しないようにしてもよい。例えば、図10の領域Aに存在する到着予測値と余裕時間の組み合わせを持つ監視カメラにのみアプリケーションをインストールする場合、図10において到着予測値がα以下である監視カメラに対しては余裕時間を算出しないようにしてもよい。アプリケーションがインストールされる可能性がない監視カメラの余裕時間の算出処理や、アプリケーションをアンインストールすることが確実である監視カメラの余裕時間の算出処理を削減ができるからである。
また、実施の形態において、カメラ制御装置2030は、一定時間毎に、ユーザ端末情報管理部3020が管理する全てのユーザ端末に対して、それぞれのユーザ端末に対応するアプリケーションについての一連のS6040〜S6080の制御を行うとしたが、別の実施の形態においては、ユーザ端末毎にそれぞれ異なるタイミングで、それぞれのユーザ端末に対応するアプリケーションについての一連の制御を行うようにしてもよい。例えば、移動速度が速いユーザ端末は、移動速度が遅いユーザ端末よりも多い頻度でアプリケーションの制御を行うようにすれば、速度が速いユーザ端末に対して、アプリケーションを動作させる監視カメラの切り替えが遅れる可能性を減らし、また、速度が遅いユーザ端末に対して、無駄に頻繁な情報更新処理を行わないようにできる。
なお、監視カメラがアプリケーションをすでに保持しているが、監視カメラでアプリケーションが起動していないときは、準備時間算出部3140はアプリーションを起動するのに必要な時間を準備時間とし、インストール要否判断部3160は到着予測値、到着予測時間と、この準備時間に基づいて、監視カメラにアプリケーションをインストールするかの判断をすることに代えて、アプリケーションを監視カメラで起動する時期を決定してもよい。この決定は実施の形態で説明したように、到着予測値、到着予測時間、準備時間と図10とに基づいて決定すればよい。
カメラ制御装置2030は監視カメラがアプリケーションをすでに保持しているが、監視カメラでアプリケーションがまだ起動していないという状態は監視カメラ情報データベーベース400で監視カメラIDに対応する起動中アプリID,インストール済みアプリIDを確認すれば知ることができる。
カメラ制御装置2030は決定した時期を事前に監視カメラに通知し、監視カメラは通知された時期にアプリケーションを起動してもよい。
また、カメラ制御装置2030は、決定した時期の直前にアプリケーションの起動を監視カメラに指示し、当該起動通知をカメラ制御装置から2030から受信した監視カメラは、直ちに、アプリケーションを起動するようにしてもよい。
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の各装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(2)上記の各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。ICカードまたはモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカードまたはモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、ICカードまたはモジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されているデジタル信号であるとしてもよい。
また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記憶しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するとしてもよい。
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。