以下、本発明の実施形態について、図面を用いて説明する。
(本発明の一形態を得るに至った経緯)
監視カメラシステムとして、ネットワークを介してアプリケーションサーバ(以下、Appサーバともいう)により複数のカメラ(撮像装置)を制御するシステムが想定される。この監視カメラシステムでは、例えば、Appサーバは、各カメラにカメラアプリケーション(以下、CamAppという)をインストールさせる。
この監視カメラシステムでは、例えば、カメラのマスタキーをアプリケーションサーバに登録し、このマスタキーを用いてカメラとAPPサーバとの間で、セキュリティを確保してアクセスすることが想定される。
しかし、このような監視カメラシステムでは、安全性や操作性が不十分である。例えば、Appサーバは、CamAppの契約終了後も、カメラのマスタキーを保持するので、特許文献1,2の技術を用いたとしても、CamAppを用いてカメラを制御できる。これに対し、カメラのオーナーがカメラに一度登録されたマスタキーを削除又は変更することは困難であった。
また、マスタキーが流出した場合、他のAppサーバからCamAppを用いたカメラ制御が可能となる虞がある。従って、CamAppを含むアプリケーションの契約終了後、CamAppを用いたカメラ制御が不可能となることが望まれる。
また、Appサーバによるカメラへのアクセス権限を制御することが困難であった。例えば、どのカメラに対して、どのCamAppの制御権限を与えるかをAppサーバに対して指定することが困難であった。
以下、アプリケーションへ制御要求を行う制御装置による撮像装置に対するアプリケーション制御の安全性及び操作性を向上できる撮像システム及び撮像装置制御方法について説明する。
以下の実施形態の撮像システムは、例えば店舗に出入りする人物を監視する監視カメラシステムに適用される。
(第1の実施形態)
図1は、第1の実施形態におけるカメラシステム5の構成例を示す模式図である。図2は、店舗3に配置された各装置の構成例を示す模式図である。図3は、プロバイダ拠点90に配置された各装置の構成例を示す模式図である。
カメラシステム5は、管理サーバ30、店舗3に配置された各装置、及びプロバイダ拠点90に配置された各装置を備える。店舗3には、例えば、PC10、入力装置14、ディスプレイ15、1つ以上のカメラ20a,20b,20cが配置される。プロバイダ拠点90には、例えば、PC10A、入力装置14A、ディスプレイ15A、1つ以上のアプリケーション(App)サーバ40が配置される。尚、カメラやAppサーバ40の台数は、図1〜図3の例に限られない。
カメラシステム5では、例えば、店舗3に設置された複数種類のカメラ20a,20b,20c、及びPC10がインターネット等のネットワーク8に接続される。個々のカメラ20a,20b,20cを特に区別する必要が無い場合、カメラ20と総称する。尚、カメラ20は、店舗以外の場所(例えば屋外の催事場、有料道路)に設置されてもよい。PC10は、例えば店舗3のユーザ7に使用される。
また、カメラシステム5では、管理サーバ30及びAppサーバ40が、ネットワーク8に接続される。カメラシステム5に含まれる各装置は、ネットワーク8を介して相互にデータを通信可能である。ネットワーク8を用いた通信路は、例えばSSL(Secure Sockets Layer)で暗号化された通信路でもよい。この場合、通信されるデータの安全性が向上する。
また、カメラシステム5では、PC10Aがネットワーク8に接続される。PC10Aは、例えば、Appプロバイダ9に使用される。
PC10,10Aは、例えば、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)、ROM(Read Only Memory)又はRAM(Random Access Memory)を有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS(Operating System)、ミドルウェアプログラム、アプリケーションプログラム)を実行し、PC10,10Aが有する各種機能を実現する。PC10,10Aは、例えば、各種アプリケーションをダウンロードし、インストールし、実行する。
また、PC10,10Aは、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
PC10は、Webブラウザ機能部12を有し、入力装置14及びディスプレイ15を有する。PC10Aは、Webブラウザ機能部12Aを有し、入力装置14A及びディスプレイ15Aを有する。Webブラウザ機能部12,12Aは、Webブラウザの機能を有し、例えば、Webサーバからアプリケーション(例えば、HTML(HyperText Markup Language)、javascript(登録商標))をダウンロードして、実行する。
ユーザ7は、例えば、カメラ20用のアプリケーション(カメラアプリケーション:CamApp)の提供を受けて使用する使用者である。Appプロバイダ9は、例えば、CamAppを生成して提供する提供者である。
PC10のWebブラウザ機能部12は、例えば、WebブラウザからAppサーバ40にアクセスして、Webアプリケーション(例えばWebサーバが提供するHTML、Javascript(登録商標))を実行する。Webアプリケーションにより、PC10は、CamAppが提供する機能やCamAppに対応するAppが提供する機能によるサービス(例えば撮像画像の表示、撮像画像から導出されるメタデータに基づく統計情報の表示)を受けることができる。例えば、ユーザ7(例えば店舗3のオーナー)は、PC10を用いて、Appストアを運営する管理サーバ30から、所望のAppを購入することで、カメラシステム5の動作によりAppに対応するCamAppをカメラ20にインストールして利用できる。尚、管理サーバ30は、Appストアの機能を有しており、Appサーバ40は、各Appを実現するためにAppプロバイダ9が開発・管理するサーバである。
アプリケーションは、例えば、Webサーバにユーザ情報を提示し、ユーザからの入力情報をWebサーバに送信するために用いられる。尚、PC10,10Aは、必ずしもWebブラウザの機能を有する必要は無く、PC10,10A上で動作する他のアプリケーション(例えば、ネイティブアプリケーション(Windows(登録商標)アプリケーション、java(登録商標)アプリケーション、ios(登録商標)アプリケーション、MacOS(登録商標)アプリ等)でもよい。
PC10,10Aは、アプリケーションをダウンロードし、インストールし、実行する。また、情報処理装置として、PC10,10Aの代わりに、スマートフォンやタブレット端末が用いられてもよい。
尚、PC10とカメラ20とが異なる位置(例えば異なる店舗3)に設けられてもよい。また、Appサーバ40は、プロバイダ拠点90以外の位置に配置されてもよい。Appサーバ40が複数存在する場合、ハードウェアで区別されても、ソフトウェアで区別されても、ハードウェア及びソフトウェアで区別されてもよい。Appサーバ40がハードウェアで区別されて複数存在する場合、Appサーバ40が離れて(例えば別拠点に)設置されてもよい。
図4は、カメラ20の構成例を示すブロック図である。
カメラ20、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、カメラ20が有する各種機能を実現する。カメラ20は、例えば、各種アプリケーションをダウンロードし、インストールし、実行する。
また、カメラ20は、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
カメラ20は、CamApp管理部21、制御権限管理部22、制御要求受付判定部23、管理サーバ認証部24、通信部25、カメラ画配信部26、撮像部27、及びアプリケーション実行部28を有する。カメラ20は、例えば店舗3内又は店舗3外に設置される。尚、アプリケーション実行部28は、CamAppがインストールされることで、カメラ20に備えられる。
撮像部27は、画像を撮像する。アプリケーション実行部28は、撮像部27により撮像された画像(撮像画像)から、例えば公知の方法に基づいて、メタデータを生成する。メタデータは、例えば、顔特徴、年齢、性別、身なり、時刻(例えば撮像時刻やメタデータ生成時刻)、身なり、の情報を含む。
CamApp管理部21は、CamAppのインストール、アンインストール、起動、終了を制御し、管理する。CamApp管理部21は、例えばCamApp制御要求に応じてCamAppを管理する。この制御要求は、例えば、CamAppのインストール、アンインストール、起動、終了、アップデートの要求を含む。
制御権限管理部22は、管理サーバ30からCamApp制御権限の変更要求を受け付け、変更要求に従って、CamApp毎にCamApp制御権限を管理する。この変更要求は、例えば、CamApp制御権限の設定要求、破棄要求を含む。ここでは、CamApp制御権限は、管理サーバ30により生成されるCamApp制御キーである。CamApp制御権限は、契約毎、又は、契約及びカメラ20毎、に管理されてもよい。
制御要求受付判定部23は、Appサーバ40からCamApp制御要求を受信し、CamApp制御要求が正当な権限を持ったAppサーバ40からの要求であるかどうか判定する。正当なAppサーバ40からのCamApp制御要求である場合、CamApp管理部21によりCamApp制御要求に応じた処理が実行される。例えば、制御権限管理部22が保持するCamApp制御キーと、Appサーバ40からのCamApp制御キーと、が一致する場合、正当なCamApp制御要求と判定される。
管理サーバ認証部24は、管理サーバ30を認証し、管理サーバ30からの要求や指示が正当であることを保証する。例えば、カメラ20の製造時に管理サーバ30の認証キー(例えばCamApp制御権限制御キー(マスタキー))を埋め込んでおくことで、管理サーバ30を認証できる。
通信部25は、各種情報、データを通信する。通信部25は、例えば、管理サーバ30又はAppサーバ40からCamApp制御要求を受け付ける。
カメラ画配信部26は、例えば、各CamAppからの要求に応じて、撮像部27で撮像されたカメラ画(撮像画像)を取得し、CamAppにカメラ画を送る。尚、アプリケーション実行部28は、CamAppを実行して、カメラ画に基づいてメタデータを生成する。
図5は、管理サーバ30の構成例を示すブロック図である。
管理サーバ30は、例えば、複数のユーザ7、複数のAppプロバイダ9、ユーザ7毎に複数のカメラ20、Appプロバイダ9毎に複数のApp、App毎に1つのAppサーバ40及び複数のCamApp、を管理する。
管理サーバ30は、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、管理サーバ30が有する各種機能を実現する。
また、管理サーバ30は、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
管理サーバ30は、各種情報を管理し、例えばCamAppに対する制御を管理する。管理サーバ30は、ユーザ管理部31、カメラ管理部32、Appプロバイダ管理部33、App管理部34、Appサーバ認証部35、契約管理部36、制御権限管理部37、及び通信部38を有する。
ユーザ管理部31は、ユーザ情報(例えば、CamAppを利用するユーザに関する情報)を管理する。ユーザ管理部31は、例えば、PC10からWebブラウザを介してアクセスされた場合、ユーザ管理部31が管理するパスワードにより認証(ユーザ認証)する。ユーザ情報は、例えば後述するテーブル51に蓄積される。
カメラ管理部32は、カメラ20の情報(例えば、CamAppがインストールされるカメラ20に関する情報)を管理する。カメラ20の情報は、例えばカメラ20の所有者情報を含む。カメラ20の情報は、例えば後述するテーブル52に蓄積される。
Appプロバイダ管理部33は、Appプロバイダ9の情報(例えば、CamAppを提供するAppプロバイダに関する情報)を管理する。Appプロバイダ9の情報は、例えば後述するテーブル53に蓄積される。
App管理部34は、CamAppの情報を含むAppの情報を管理する。Appの情報は、例えば、提供元のAppプロバイダの情報を含む。Appの情報は、例えば後述するテーブル54に蓄積される。
尚、Appは、例えば、カメラ20用のアプリケーションであるCamAppと、Appサーバ40用のアプリケーションであるサーバアプリケーション(ServerAppともいう)と、を含む。CamApp及びServerAppの実行の組み合わせにより、Appの機能が実現される。
Appサーバ認証部35は、Appを実行するために用いられるAppサーバ40を認証する。これにより、CamApp制御権限(CamApp制御キー)の受け渡しを正しく実施できる。Appサーバ40の認証技術は、例えば、メッセージ認証符号やデジタル署名を含む。メッセージ認証符号では、MAC(Message Authentication Code)を使用する場合、例えば、使用される鍵は共通鍵である。この共通鍵は、例えば、乱数生成器により生成された十分な長さを持つ乱数である。デジタル署名では、送信側(例えば管理サーバ30)と受信側(例えばAppサーバ40)とで別の鍵が使用される。この鍵は、例えば、公開鍵暗号方式の鍵生成アルゴリズムによって生成される。
契約管理部36は、App(CamApp)の契約に関する契約情報を管理する。例えば、契約管理部36は、どのユーザがどのAppを使用するかを管理する。契約情報は、例えば後述するテーブル55に蓄積される。
制御権限管理部37は、Appサーバ40がどのカメラ20に対するどのCamAppを制御する権限を持つか、つまりCamApp制御権限を管理する。具体的には、制御権限管理部37は、CamApp制御権限を管理するためのCamApp制御キーを生成し、管理する。CamApp制御キーは、CamAppがインストールされるカメラ20に送られ、CamAppを提供するAppサーバ40に送られる。CamApp制御キーは、CamAppの制御時に使用される。CamApp制御キーは、例えば、図示しない乱数生成器により生成される乱数であり、サブキーに相当する。
Appサーバ40からカメラ20に対して行われるCamApp制御要求の送信時に、このCamApp制御キーが一緒に送信されることで、カメラ20は、要求送信元が正しいCamApp制御権限を持つAppサーバ40であることを確認できる。
また、制御権限管理部37は、後述するCamApp制御キーに係る情報を管理する。CamApp制御キーに係る情報は、例えば後述するテーブル55,56に蓄積される。
通信部38は、各種情報、データを通信する。通信部38は、例えば、ユーザ7やAppプロバイダ9の指示によりPC10のWebブラウザ機能部12を介してアクセスされた際、ユーザ7やAppプロバイダ9向けのHTMLやJavaScript(登録商標)のデータをWebブラウザ機能部12に返す。
図6は、Appサーバ40の構成例を示すブロック図である。
Appサーバ40は、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、Appサーバ40が有する各種機能を実現する。
また、Appサーバ40は、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
Appサーバ40は、例えば、1つ以上のカメラ20のCamAppを制御して、1つ以上のカメラ20から各種データ(例えばメタデータ)を収集し、ServerApp等を実行して、各種統計情報を導出する。つまり、Appサーバ40は、各カメラ20から収集したメタデータを利用してユーザ価値の高いデータを生成し、ネットワーク8を経由してユーザのPC10等に提供する。
Appサーバ40は、例えば、顧客分析App用のAppサーバ、店員分析App用のAppサーバ、お得意様通知App用のAppサーバ、を含む。
Appサーバ40は、CamApp管理部41、制御部42、通信部45、及び統計情報管理部46を有する。Appサーバ40は、CamApp及びServerAppを蓄積する。
統計情報管理部46は、カメラ20から各種データ(例えばメタデータ)を収集し、各種統計情報を導出する。統計情報管理部46は、収集されたメタデータとともに、Appサーバ40が保持するServerAppの処理結果に応じて、統計情報を導出してもよい。統計情報の結果は、例えば、ネットワーク8を介してPC10に送られ、PC10のディスプレイ15に表示される。統計情報は、例えば、店舗3の監視やマーケティングに用いられる。
CamApp管理部41は、CamAppの情報と、カメラ20にインストールされるCamAppPackage(カメラアプリケーションパッケージ)と、を蓄積し、管理する。CamAppの情報は、例えば、CamAppの識別情報を含む。CamAppPackageは、例えば、CamAppのアプリケーション本体と、CamAppをインストールや実行するための設定情報と、を含む。
通信部45は、各種情報、データを通信する。通信部45は、例えば、カメラ20にCamApp制御要求を送信する際に必要なCamApp制御キーの取得を管理サーバ30に要求する。通信部45は、例えば、CamApp制御要求(例えば、CamAppの起動、終了、インストール、アンインストール、アップデートの要求)やCamAppPackageをカメラ20に送信する。
通信部45は、例えば、ユーザ7にAppの初期設定やApp利用時の情報表示のためのGUI(例えば図18参照)の情報を通信する。例えば、イベント発生時にユーザ7にメールを送るアプリである場合、GUIが不要とされてもよい。このイベントは、例えば、予めメモリ等に登録された人物の検出、店舗内の人数が所定人数以上に達したこと、所定時間の来店客数が所定数以上に達したこと、含む。
次に、App、CamApp、及びSeverAppの具体例について説明する。
Appの具体例としては、例えば、顧客分析App、店員分析App、万引き犯及びお得意様通知App、が挙げられる。顧客分析Appは、顧客の年齢や性別毎に店舗3での導線や滞在時間等を統計情報として提供するためのアプリケーションである。店員分析Appは、店員の業務態度を統計情報として提供するためのアプリケーションである。万引き犯又はお得意様通知Appは、例えば、特定の人物が店舗3内に入店した際にメール等で通知するためのアプリケーションである。特定の人物の情報(例えば顔特徴の情報)としては、ユーザが登録した情報が予めAppサーバ40のメモリ上に登録されている。
CamAppの具体例としては、例えば、顔識別App、年齢性別推定App、姿勢検出App、顔識別マッチングApp、が挙げられる。顔識別Appは、例えば、撮像画像に対して公知の顔識別処理(顔認識処理)を行うことで、顔識別情報(顔認識情報)を得るためのアプリケーションである。年齢性別推定Appは、例えば、撮像画像に対して公知の年齢性別推定処理を行うことで、年齢性別の情報を得るためのアプリケーションである。年齢性別とは、年齢及び性別の少なくとも一方を含む。姿勢検出Appは、例えば、撮像画像に対して公知の姿勢検出処理を行うことで、店員等の姿勢の情報を得るためのアプリケーションである。姿勢の情報は、例えば、立っている姿勢、座っている姿勢、お辞儀をしている姿勢、の情報を含む。顔識別マッチングAppは、例えば、予め登録された顔情報と顔識別により検出された顔情報とを比較し(顔識別マッチング)、同一人物であるか否かの判別結果を得るためのアプリケーションである。
上記のCamAppは、例えば、店舗3の入口用のCamApp、店舗3の内部用(例えばレジカウンタ用)のCamApp、店舗3の出口用のCamApp、として用いられる。
ServerAppの具体例としては、例えば、顧客トラッキングApp、統計情報算出App、メール通知App、が挙げられる。顧客トラッキングAppは、例えば、顔識別処理、年齢性別推定処理、姿勢検出処理の結果に応じて、店舗3内の顧客の動向を追跡するためのアプリケーションである。統計情報算出Appは、CamAppにより得られた各種情報に基づいて、様々な統計情報を算出するためのアプリケーションである。この統計情報、App毎、CamApp毎、カメラ20毎、App契約毎など、様々な側面を考慮して導出され得る。メール通知Appは、例えば、顔識別マッチングにより特定の人物を検出した際に、メール通知するためのアプリケーションである。
例えば、Appサーバ40は、顧客分析として顧客トラッキングや統計情報を算出する場合、CamAppに係るメタデータとして、顔識別情報や年齢・性別推定情報を収集する。Appサーバ40は、収集されたメタデータに基づいて、例えば、顧客の年齢、店舗3内の顧客の導線、顧客の滞在時間を統計情報として導出できる。そして、Appサーバ40は、導出された統計情報を、店舗3のオーナー等に提供できる。
例えば、Appサーバ40は、店員分析として店員トラッキングや統計情報を算出する場合、CamAppに係るメタデータとして、顔識別情報や姿勢検出情報等を収集する。Appサーバ40は、収集されたメタデータに基づいて、例えば、店舗3内の店員の導線、店員の業務態度を統計情報として導出できる。業務態度として、例えば、立っている、座っている、又はお辞儀をしている姿勢が挙げられる。
例えば、Appサーバ40は、メールを用いて万引犯の通知やお得意様通知を行う場合、例えば、CamAppに係るメタデータとして、顔識別情報や予め登録された顔画像等とのマッチング情報を収集する。これにより、Appサーバ40は、特定の人物が店舗3内に入店されたことが検出された際、メールによりユーザ7(例えば店舗3のオーナー)等に通知できる。
尚、各CamAppに含まれるパラメータとして、例えば、顔特徴量の算出に用いられる画像の解像度、顔の探索処理に用いられるマッチング閾値、が挙げられる。
図7は、管理サーバ30が管理するユーザ情報が登録されたテーブル51の登録内容の一例を示す模式図である。
テーブル51は、管理サーバ30内のユーザ管理部31によって管理される。テーブル51には、例えば、ユーザ情報として、ユーザ7毎に、ユーザID、メールアドレス、及びパスワードの情報が登録されている。
ユーザIDは、CamAppのユーザの識別情報の一例である。メールアドレスは、ユーザ7が使用するメールアドレスである。パスワードは、ユーザ7が使用するパスワードである。例えば、ユーザID:「1001」、メールアドレス:「xxx@xxx.com」、パスワード:「xxx」が登録される。
図8は、管理サーバ30が管理するカメラ情報が登録されたテーブル52の登録内容の一例を示す模式図である。
テーブル52は、管理サーバ30内のカメラ管理部32によって管理される。テーブル52には、例えば、カメラ情報として、カメラ20毎に、カメラID、URL(Uniform Resource Locator)、ユーザID、及びカメラ名が登録されている。
カメラIDは、CamAppがインストールされるカメラ20の識別情報の一例である。URLは、CamAppがインストールされるカメラ20のURLである。カメラ名は、CamAppがインストールされるカメラ20の名称である。尚、カメラ名は、例えば、ユーザ7によりPC10の入力装置14を介して任意に設定され得る。
例えば、カメラID:「1101」、URL:「http://xxx.xxx.xxx.001/camera.cgi」、ユーザID:「1001」、カメラ名:「入口カメラ」が登録される。
図9は、管理サーバ30が管理するAppプロバイダ情報が登録されたテーブル53の登録内容の一例を示す模式図である。
テーブル53は、管理サーバ30内のAppプロバイダ管理部33によって管理される。テーブル53には、例えば、Appプロバイダ情報として、Appプロバイダ9毎に、AppプロバイダID、メールアドレス、及びパスワードが登録されている。
AppプロバイダIDは、CamAppを提供するAppプロバイダ9の識別情報の一例である。メールアドレスは、CamAppを提供するAppプロバイダ9が使用するメールアドレスである。パスワードは、CamAppを提供するAppプロバイダ9が使用するパスワードである。
例えば、AppプロバイダID:「2001」、メールアドレス:「xxx@pppp.com」、パスワード:「xxxxxxxx」が登録される。
図10は、管理サーバ30が管理するApp情報が登録されたテーブル54の登録内容の一例を示す模式図である。
テーブル54は、管理サーバ30内のApp管理部34によって管理される。テーブル54には、例えば、App情報として、AppID、App名、App説明、AppプロバイダID、及びAppサーバ認証キーが登録されている。
AppIDは、CamAppに対応するAppの識別情報の一例である。App名は、CamAppに対応するAppの名称である。App説明は、CamAppに対応するAppの内容を説明する情報である。AppプロバイダIDは、CamAppに対応するAppを提供するAppプロバイダ9の識別情報の一例である。Appサーバ認証キーは、CamAppに対応するAppを提供するAppサーバ40を認証するためのキーである。
例えば、AppID:「2101」、App名:「People Count」、App説明:「人を数え、時間帯毎、曜日毎、月毎、などの統計情報を算出する。」、AppプロバイダID:「2002」、Appサーバ認証キー:「qazwsxedcrfvtgb」が登録される。
図11は、管理サーバ30が管理する契約情報が登録されたテーブル55の登録内容の一例を示す模式図である。
テーブル55は、管理サーバ30内の契約管理部36によって管理される。テーブル55には、例えば、契約情報として、契約ID、ユーザID、AppID、契約認証キー、及びCamApp制御キーが登録されている。契約IDは、Appの提供を受ける契約を識別するための識別情報の一例である。ユーザIDは、契約者としてのユーザの識別情報の一例である。AppIDは、契約されたAppの識別情報の一例である。契約認証キーは、契約内容や、契約されたAppの利用情報(例えば利用履歴の情報)を参照するためのキーである。CamApp制御キーは、契約されたAppに対応するCamAppを制御するための制御キーである。
例えば、契約ID:「3001」、ユーザID:「1001」、AppID:「2101」、契約認証キー:「asdfghjklasdfghjklasdfghjkl」が登録される。
テーブル55が用いられる場合、例えば、1つの契約毎に1つのCamApp制御キーが発行される。この場合、CamApp制御キーは、Appの契約を行ったユーザ7が所有する各カメラ20に送信され、使用される。
また、テーブル55が用いられる場合、1つの契約及び1つのカメラ毎にCamApp制御キーが発行されてもよい。この場合、1つの契約(1つのApp)に対して、カメラ毎に個別のCamApp制御キーが送信され、使用される。また、この場合、管理サーバ30は、後述する図12に示すテーブル56も利用する。更に、この場合、テーブル55の「CamApp制御キー」の情報が不要になる。
図12は、管理サーバ30が管理するCamApp制御キーの情報が登録されたテーブル56の登録内容の一例を示す模式図である。テーブル56は、テーブル55とともに参照される。
テーブル56は、管理サーバ30内の制御権限管理部37によって管理される。テーブル56には、例えば、CamApp制御キーの情報として、CamApp制御キーID、契約ID、カメラID、及びCamApp制御キーが登録されている。CamApp制御キーIDは、CamApp制御キーの識別情報の一例である。
テーブル55及びテーブル56を用いることで、1つの契約及び1つのカメラ毎に、1つのCamApp制御キー、CamApp制御権限が定まる。
また、ユーザ7が入力装置14等を介して、App毎に使用されるカメラ20を指定してもよい。これにより、ユーザ7は、ユーザ7が所有する各カメラ20のうち、特定のカメラ20へのアクセスを許可できる。
テーブル56の例では、契約ID:3001に係るApp(Appサーバ)は、カメラID:1101,1102,1103で識別される計3台のカメラ20へのCamAppに対する制御が許可される。契約ID:3002に係るApp(Appサーバ)は、カメラID:1101で識別される計1台のカメラ20へのCamAppに対する制御が許可される。
テーブル56を用いることで、一層セキュリティを向上できる。
次に、カメラシステム5の動作例について説明する。
図13は、カメラシステム5によるユーザ登録及びカメラ登録の手順の一例を示すシーケンス図である。
PC10では、ユーザ7が入力装置14を介してユーザ登録を要求すると、Webブラウザ機能部12は、管理サーバ30に対し、ユーザ登録要求を行う(T1)。このユーザ登録要求では、PC10から管理サーバ30へ、PC10が保持する又は入力装置14を介して入力された、ユーザ7のメールアドレス及びパスワードの情報が送信される。
管理サーバ30では、通信部38が、PC10からユーザ登録要求を受けると、ユーザ管理部31が、ユーザ登録を行い、通信部38が、ユーザ登録完了をPC10に返信する(T2)。ユーザ登録では、ユーザ管理部31が、ユーザ登録要求に基づいてユーザ7を識別するユーザIDを付し、ユーザID、PC10からのメールアドレス及びパスワードの情報をテーブル51に保持させる。
PC10では、ユーザ7が入力装置14等を介してメールアドレス及びパスワードを入力してログインを要求すると、Webブラウザ機能部12は、管理サーバ30に対し、メールアドレス及びパスワードを送信してログイン要求する(T3)。
管理サーバ30では、通信部38が、PC10からログイン要求とメールアドレス及びパスワードとを受けると、ユーザ管理部31が、テーブル51を参照し、メールアドレス及びパスワードを照合する。照合に成功すると、つまり一致するメールアドレス及びパスワードが存在すると、通信部38が、セッションIDを発行してログイン完了通知を行う(T4)。このセッションIDは、ユーザIDに紐付けて管理される。
PC10では、ユーザ7が入力装置14等を介してカメラ登録を要求すると、Webブラウザ機能部12は、セッションIDを用いて、管理サーバ30に対し、カメラ登録要求を行う(T5)。このカメラ登録要求では、PC10から管理サーバ30に、カメラ名及びカメラURLが送信される。
管理サーバ30では、通信部38がPC10からカメラ登録要求を受けると、カメラ管理部32がカメラ登録を行う。このカメラ登録では、カメラ管理部32が、カメラ登録要求に基づいてカメラ20を識別するためのカメラID、ネットワークを経由してカメラ20にアクセスするためのURL(カメラURL)、カメラ20の所有者情報としてのユーザID、及びカメラ20の名称(カメラ名)の情報を、テーブル52に保持させる。ユーザIDとしては、セッションIDに紐付けられた値が使用される。
通信部38は、カメラ登録要求により指定されたカメラURLに対して接続確認を送る(T6)。カメラ20が正常に接続されている場合には、通信部38は、カメラ20からカメラ接続応答を受信する(T7)。そして、通信部38は、カメラ登録完了をPC10へ返信する(T8)。
図13に示したユーザ登録及びカメラ登録手順によれば、カメラシステム5は、ユーザ7の情報とカメラ20の情報とを容易に管理サーバ30に設定できる。
尚、T5では、PC10がカメラ20を介さず管理サーバ30へカメラ登録要求することを例示したが、ユーザ7の入力に基づいて、PC10がカメラ20を介して管理サーバ30へカメラ登録要求してもよい。この場合、カメラ登録要求時には、ユーザID、パスワード、カメラ名の情報が送られる。この場合でも、管理サーバ30からカメラ20へアクセスできるようになる。
図14は、カメラシステム5によるAppプロバイダ登録及びApp登録手順の一例を示すシーケンス図である。
PC10Aでは、Appプロバイダ9が入力装置14A等を介してAppプロバイダ登録を要求すると、Webブラウザ機能部12が、管理サーバ30に対し、Appプロバイダ登録要求を行う(T11)。このAppプロバイダ登録要求では、PC10Aから管理サーバ30へ、PC10Aが保持する又は入力装置14A等を介して入力された、Appプロバイダ9のメールアドレス及びパスワードの情報が送信される。
管理サーバ30では、通信部38がPC10AからAppプロバイダ登録要求を受けると、Appプロバイダ管理部33がAppプロバイダ登録を行い、通信部38がAppプロバイダ登録完了をPC10Aに返信する(T12)。
このAppプロバイダ登録では、Appプロバイダ管理部33が、Appプロバイダ登録要求に基づいてAppプロバイダ9を識別するAppプロバイダIDを付し、AppプロバイダID、Appプロバイダ9のメールアドレス及びパスワードを、テーブル53に保持させる。Appプロバイダ登録完了では、AppプロバイダIDがPC10Aへ返信される。
PC10Aでは、Appプロバイダ9が入力装置14A等を介してメールアドレス及びパスワードを入力してログインを要求すると、Webブラウザ機能部12Aは、管理サーバ30に対し、メールアドレス及びパスワードを送信してログイン要求する(T3A)。
管理サーバ30では、通信部38が、PC10Aからログイン要求とメールアドレス及びパスワードとを受けると、ユーザ管理部31が、テーブル53を参照し、メールアドレス及びパスワードを照合する。照合に成功すると、つまり一致するメールアドレス及びパスワードが存在すると、通信部38が、セッションIDを発行してログイン完了通知を行う(T4A)。このセッションIDは、AppプロバイダIDに紐付けて管理される。
PC10Aでは、Appプロバイダ9が入力装置14A等を介してApp登録要求すると、Webブラウザ機能部12が、セッションIDを用いて、管理サーバ30に対し、App登録要求を行う(T13)。このApp登録要求では、PC10Aから管理サーバ30へ、App名及びApp説明が送信される。App名は、例えば、PC10Aの入力装置14A等により入力される。
管理サーバ30では、通信部38がPC10AからApp登録要求を受けると、App管理部34がApp登録を行い、通信部38がApp登録完了をPC10Aに返信する(T14)。App登録では、App管理部34が、App登録要求に基づいてAppIDを付し、Appサーバ認証キーを生成し、AppID、PC10AからのApp名、AppIDで識別されるAppに関するApp説明、AppIDで識別されるAppを提供するAppプロバイダ9を識別するAppプロバイダID、及びAppサーバ認証キーを、テーブル54に保持させる。App登録完了では、AppID、Appサーバ認証キーがPC10Aへ返信される。
Appサーバ40では、Appプロバイダ9がAppサーバ40の入力装置14B等を介して各種情報を受け付けると、制御部42が各種情報を設定する(T15)。この設定は、例えば、Appサーバ40のメモリにより各種情報が保持されることを指す。この各種情報は、例えば、AppID及びAppサーバ認証キーの情報を含む。
通信部45は、設定されたAppID及びAppサーバ認証キーを用いて、管理サーバ30にアクセス可能となる(T16)。
図14に示したAppプロバイダ登録及びApp登録手順によれば、カメラシステム5は、Appプロバイダ9の情報とAppの情報とを容易に設定できる。また、Appサーバ認証キーを用いることで、Appプロバイダ9が使用可能なAppサーバ40と管理サーバ30との間の通信のセキュリティを確保できる。
図15は、カメラシステム5によるApp契約手順の一例を示すシーケンス図である。
まず、PC10は、図13に示したT3の処理を行う。管理サーバ30は、図13に示したT4の処理を行う。
PC10では、ユーザ7が入力装置14等を介してApp一覧の取得を要求すると、Webブラウザ機能部12は、セッションIDを用いて、管理サーバ30に対し、App一覧の取得を要求する(T21)。
管理サーバ30では、通信部38がApp一覧の取得の要求を受けると、App管理部34がテーブル54からApp一覧としてApp情報を抽出し、通信部38が抽出された情報をPC10に送信する(T22)。この場合、App管理部34は、App一覧として各App情報の全部又は一部を抽出する。
PC10では、Webブラウザ機能部12がApp一覧を取得し、ユーザ7が入力装置14等を介してApp一覧から所望のAppを選択すると、Webブラウザ機能部12は、セッションIDを用いて、管理サーバ30に対し、App契約要求を行う(T23)。App契約要求では、PC10から管理サーバ30へ、選択されたAppを識別するAppIDが送られる。
管理サーバ30では、通信部38は、App契約の要求を受けると、GUI画面59(図16参照)の情報をPC10へ送信する(T24)。GUI画面59は、契約するAppで利用するカメラを設定するための設定画面である。
PC10では、Webブラウザ機能部12がGUI画面59を取得し、ユーザ7が入力装置14等を介して、契約するAppで利用するカメラを選択する(T25)。そして、Webブラウザ機能部12は、カメラの選択情報を設定情報に含めて、管理サーバ30に送信する(T26)。
管理サーバ30では、通信部38がPC10からの設定情報を受けると、制御権限管理部37が、CamApp制御キーを生成することで、CamApp制御権限を生成する(T27)。そして、通信部38が、CamApp制御キーの情報を含むCamApp制御キーの登録要求を、カメラ20に通知する(T28)。CamApp制御キーの登録要求は、例えば、T25において選択されたカメラ20へ通知される。
カメラ20では、通信部25が、CamApp制御キーの登録要求を受信し、制御権限管理部22が、CamApp制御キーを登録することで、CamApp制御権限を設定する。CamApp制御キーは、例えば制御権限管理部22に保持される。また、通信部25が、CamApp制御キーの登録完了を管理サーバ30に返信する(T29)。
尚、CamApp制御キーがカメラ20に登録される際、管理サーバ認証部24は、カメラ20の製造時に書き込まれたカメラ制御権限制御キー(マスタキー)を用いて、CamApp制御キーの登録可否、つまりCamApp制御権限の設定可否を判断してもよい。
管理サーバ30では、通信部38が、カメラ20からCamApp制御権限の登録完了の通知を受けると、契約管理部36が契約登録を行う。契約登録では、契約管理部36が、App契約要求に基づいて契約IDを付し、契約認証キーを生成し、契約ID、契約に係るユーザID、契約に係るAppID、契約認証キー、及びCamApp制御キーを、テーブル55に保持させる。尚、契約登録は、管理サーバ30がカメラ20から登録完了の通知を受ける前に行われてもよい。
1つの契約毎に1つのCamApp制御キーが発行される場合、テーブル55への情報登録で済むが、1つの契約及び1つのカメラ毎にCamApp制御キーが発行される場合、テーブル56への情報登録も行われる。具体的には、契約登録において、制御権限管理部37は、App契約要求とT26における設定情報とに基づいてCamApp制御キーIDを発行し、契約ID、カメラID、及びCamApp制御キーを、テーブル56に保持させる。
通信部25は、テーブル55に保持された契約ID及び契約認証キーの情報をPC10に送信し、App契約完了を通知する(T30)。
図15に示したApp契約手順によれば、カメラ20は、契約されたApp毎にCamApp制御キーを登録でき、つまりCamApp制御権限を設定できる。これにより、カメラ20にインストールされるCamAppに対する制御を特定の装置に制限でき、CamAppの不正な変更や使用を抑制できる。
尚、T24〜T26の処理は省略されてもよい。この場合、T23において選択されたAppについては、ユーザ7が所有するカメラ20の全部にCamApp制御キーが設定される。従って、Appサーバ40は、ユーザ7が所有するカメラ20の全部に対して、CamAppの制御が可能となる。
図16は、GUI画面59の一例である。GUI画面59は、例えば、ユーザ7が新規にApp契約を行う際、又は、ユーザ7が契約済みのAppの設定を変更する際に、管理サーバ30によりPC10へ提供される。GUI画面59により、Appに対応するCamAppを、どのカメラ20にインストールすることを許容するかが指定される。
図16では、Appが顧客分析Appであり、CamAppのインストールを許容するカメラ20として、入口カメラ、出口カメラ、及びドリンクコーナーカメラが選択されていることを例示している。この場合、PC10から管理サーバ30へ、例えば、選択されたカメラ20を識別するためのカメラIDが送られる。
尚、GUI画面59において表示されるカメラ名は、ユーザ7が入力装置14等を介して任意に選択されてもよい。例えば、カメラ20の情報が管理サーバ30に登録される際に、カメラ名が指定される。
図16の場合、GUI画面59により選択された入口カメラ、出口カメラ、及びドリンクコーナーカメラに対して、CamApp制御キーが登録され、Appサーバ40からのアクセス権限(CamApp制御権限)が与えられる。
図17は、カメラシステム5によるApp利用開始手順の一例を示すシーケンス図である。
PC10では、ユーザ7が入力装置14等を介して契約ID及び契約認証キーを入力してログインを要求すると、Webブラウザ機能部12は、Appサーバ40に対し、契約ID及び契約認証キーを送信してログインを行う(T31)。
Appサーバ40では、上記ログインされると、通信部45は、管理サーバ30に対し、PC10から取得された契約IDと契約認証キーの情報を送信して、契約情報を要求する(T32)。尚、Appサーバ40の認証のために、通信部45は、管理サーバ30に対し、他に、AppID、Appサーバ認証キーを送信してもよい。
管理サーバ30では、通信部38が、契約情報の要求を受けると、契約管理部36が、取得された契約IDに係るテーブル55に保持された契約情報の一部又は全部を抽出し、通信部38が、Appサーバ40に対し、抽出された契約情報を送信する(T33)。契約情報は、CamApp制御キーを含む。Appサーバ40では、制御部42が、CamApp制御キーを保持する。尚、Appサーバ40では、CamApp制御キーは、契約ID毎、又は、契約ID及びカメラID毎、に紐付けて管理される。
1つの契約毎に1つのCamApp制御キーが発行された場合、契約管理部36が、テーブル55から契約情報を抽出すれば済む。一方、1つの契約及び1つのカメラ毎にCamApp制御キーが発行された場合、制御権限管理部37が、更に、テーブル56からCamApp制御キーの情報の一部又は全部を抽出する。そして、通信部38が、Appサーバ40に対し、抽出されたCamApp制御キーの情報を送信する。Appサーバ40では、制御部42が、CamApp制御キーを保持する。
Appサーバ40では、通信部45は、管理サーバ30に対し、契約ID及び契約認証キーを送信して、カメラ情報を要求する(T34)。
管理サーバ30では、通信部38が、カメラ情報の要求を受けると、カメラ管理部32が、取得された契約IDに係るテーブル52に保持されたカメラ情報の一部又は全部を抽出し、通信部38は、Appサーバ40に対し、抽出されたカメラ情報を送信する(T35)。
Appサーバ40では、通信部38が、管理サーバ30からのカメラ情報を受けると、PC10に対し、セッションIDを発行し、初期設定画面である設定GUI60(例えば図18参照)の情報を送信する(T36)。このセッションIDは、契約IDと紐付けられる。
PC10では、例えば設定GUI60を用いて、ユーザ7が入力装置14を介して設定情報を入力すると、Webブラウザ機能部12は、セッションIDを用いて、この設定情報をAppサーバ40に送信する(T37)。この設定情報には、例えば、CamAppを識別するCamAppIDやカメラ20の設置場所がPC10により選択された情報が含まれる。
Appサーバ40では、設定情報を受けると、通信部45が、カメラ20に対し、選択されたCamAppIDやカメラ20の設置場所に係るCamAppPackageとCamApp制御キーとを送信して、CamAppのインストールを要求する(T38)。このインストール要求は、インストール対象のカメラ20、つまり、契約に係る全てのカメラ20又は特定のカメラ20に対して行われる。尚、送信されるCamApp制御キーとしては、契約ID、又は、契約ID及びカメラIDに紐付けられたCamApp制御キーが選択される。
インストール対象のカメラ20では、通信部25が、CamAppのインストール要求を受けると、制御要求受付判定部23が、CamApp制御キーを用いてAppサーバ40からのインストール要求の許否を判定する。例えば、制御要求受付判定部23は、T38で送信されたCamApp制御キーと、管理サーバ30からT28で登録されたCamApp制御キーと、が一致する場合、インストール要求を許諾し、一致しない場合、インストール要求を許諾しない。
インストール要求を許諾すると判定された場合、CamApp管理部21は、CamAppPackageを用いてCamAppをインストールする。通信部25は、CamAppのインストールが完了すると、インストール完了をAppサーバ40に送信する(T39)。尚、インストール完了の通知には、インストールIDが含まれる。インストール済みのCamAppの制御は、インストールIDを用いて行われる。
Appサーバ40では、通信部45が、カメラ20に対し、選択されたCamAppIDやカメラ20の設置場所に係るCamApp制御キー及びインストールIDを送信して、CamAppの起動を要求する(T40)。この起動要求は、起動対象のカメラ20、つまり、契約に係る全てのカメラ20又は特定のカメラ20に対して行われる。
起動対象のカメラ20では、通信部25が、CamAppの起動要求を受けると、制御要求受付判定部23が、CamApp制御キーを用いてAppサーバ40からの起動要求の許否を判定する。起動要求の許否の判定方法は、先述したインストール要求の許否の判定方法と同様である。
起動要求を許諾すると判定された場合、CamApp管理部21は、インストールIDに係るCamAppを起動する。通信部25は、CamAppの起動が完了すると、起動完了をAppサーバ40に送信する(T41)。
Appサーバ40では、通信部25が、起動完了をカメラ20から受けると、PC10に対し、ダッシュボードページを送信する(T42)。
図17に示したApp利用開始手順によれば、PC10により、どのカメラにどのCamAppをインストールすべきかを指定できる。ユーザ7は、例えば、店舗3(例えば販売店やレストラン)のオーナーであり、どのカメラの画像をどのような目的に使用したいかを十分に把握している。このユーザ7がPC10を用いてインストール対象のカメラ20とCamAppを指定することで、ユーザ7の意図を反映してCamAppにインストールできる。
また、Appサーバ40は、契約認証キーを用いることで、契約情報やカメラ情報を管理サーバ30から安全に取得できる。また、カメラ20は、契約に係るCamApp制御キーを用いてAppサーバ40を認証することで、CamAppへの制御を安全に行わせることができ、例えば不正利用やCamAppの改変を抑制できる。
図18は、PC10のディスプレイ15に表示される設定GUI60の一例を示す模式図である。
設定GUI60は、例えば、PC10のディスプレイ15により画面表示され、ユーザにより、PC10の入力装置14等を介して操作される。入力装置14は、例えば、店舗3に設置された複数のカメラ20から特定のカメラ20を選択するための入力操作を受け付ける。例えば、店舗3の各所に設置されたカメラ20に対して、どのCamAppをインストールするかを設定できる。
CamAppは、例えば、店舗3の入口に設置されたカメラ20用のCamApp(図18では単に「入口」と記載されている)、店舗3の出口に設置されたカメラ20用のCamApp(図18では単に「出口」と記載されている)、店舗3のその他に設置されたカメラ20用のCamApp(図18では単に「その他」と記載されている)、を含む。
図18では、店舗3に設置された複数のカメラ20として、カメラ名:「入口カメラ」、「出口カメラ」、「弁当コーナーカメラ」、「ドリンクコーナーカメラ」のそれぞれが表示されている。このカメラ名は、カメラ20の設置場所に対応している。
「入口カメラ」、「出口カメラ」、「弁当コーナーカメラ」、「ドリンクコーナーカメラ」のそれぞれにインストールされるCamAppは、例えば、入力装置14によりプルダウンメニュー61を用いて選択される。選択された情報(例えば選択されたCamAppを識別するためのCamAppID)は、例えば、Appサーバ40へ、設定情報として送信される。
また、PC10の入力装置14は、設定GUI60を用いて、Appサーバ40による統計を希望する時間帯の開始時刻及び終了時刻を、プルダウンメニュー64を用いて選択する。選択された情報は、例えば、Appサーバ40へ送信され、Appサーバ40による統計情報の導出処理に用いられる。
設定GUI60を用いることで、ユーザ7は、どのカメラ20にどのCamAppをインストールすべきかを入力装置14を用いて容易に入力できる。また、ユーザ7は、統計を希望する時間帯や統計に係るその他の情報を容易に入力できる。
尚、ここでは、ユーザ7が入力装置14等を介してインストールすべきCamAppを選択することを例示したが、ユーザ7がCamAppを選択することなく、CamAppがインストール先のカメラ20にインストールされてもよい。これにより、ユーザ7が個々のCamAppを意識することなく、Appを簡単に利用できる。
以下に、インストール対象のCamAppの指定方法の他例を2つ示す。他例では、カメラ20の設置場所とこのカメラ20にインストールされるCamAppとの組み合わせが予め定められており、組み合わせの情報がAppサーバ40のCamApp管理部41に予め保持されていることを想定する。尚、カメラ20の設置場所とインストールされるCamAppとの組み合わせは、App毎に異なってもよい。
例えば、カメラ20において、通信部25が、撮像部27により撮像された画像をAppサーバ40へ送信してもよい。Appサーバ40において、CamApp管理部41が、所定の画像処理を行うことにより、カメラ20の設置位置(例えば、店舗3の入口、店舗3の出口)を判定してもよい。CamApp管理部41は、判定された設置位置に対応するCamAppを、インストール対象のCamAppとして指定してもよい。
例えば、App契約時(例えばカメラ20の初期設定時)に、遠隔に所在するオペレータ(不図示)が、各カメラ20の映像を視認して設置位置を判断し、入力装置等を介してAppサーバ40に判断結果としての各カメラ20の設置位置の情報を設定してもよい。Appサーバ40では、CamApp管理部41が、判定された設置位置に対応するCamAppを、インストール対象のCamAppとして指定してもよい。
ユーザ7がインストール対象のCamAppを選択しないでCamAppをインストールすることにより、Appの利用者は、店舗3の入口や出口に設置されたカメラ20に、入口用のCamAppや出口用のCamAppがインストールされることを認識しなくてよい。また、Appの利用者は、入口用のCamAppと出口用のCamAppがどのような処理を行うかを認識しなくてよい。
図19は、カメラシステム5によるApp利用手順の一例を示すシーケンス図である。
カメラ20では、撮像部27が画像を撮像し、アプリケーション実行部28が、撮像画像からメタデータを生成し、通信部25がメタデータをAppサーバ40に送信する(T51)。メタデータは、各カメラ20から順次送信されてもよい。
例えば、カメラ20は、店舗3の入口用のCamAppを実行することで、顧客の顔の特徴量(メタデータの一例)を算出し、その特徴量を店舗3の内部用のCamApp及び出口用のCamAppに対応するAppサーバ40へ送信する。尚、Appサーバ40は、App毎に1つである。特徴量のマッチングがCamApp内で行われる場合には、入口用CamAppで算出された特徴量は、内部用CamApp及び出口用CamAppへ送られる。特徴量のマッチングがAppサーバ40で行われる場合には、入口用CamAppで算出された特徴量は、Appサーバ40へ送信される。
例えば、カメラ20は、店舗3の内部用のCamAppを実行することで、店舗3の入口用のCamAppにより算出された特徴量(メタデータの一例)に合致する顔を探索する。カメラ20は、合致する顔が発見された場合、合致する顔が存在する旨を含む情報(メタデータの一例)を、店舗3の内部用のCamAppに対応するAppサーバ40に送信する。尚、上記算出された特徴量がメタデータとしてAppサーバ40へ送信され、Appサーバ40が顔のマッチング処理を行ってもよい。
カメラ20は、店舗3の出口用のCamAppを実行することで、例えば、店舗3の入口用のCamAppにより算出された特徴量に合致する顔を探索する。カメラ20は、合致する顔が発見された場合、合致する顔が存在する旨を含む情報を、Appサーバ40に送信する。尚、上記算出された特徴量がメタデータとしてAppサーバ40へ送信され、Appサーバ40が顔のマッチング処理を行ってもよい。
Appサーバ40では、通信部45が、メタデータを受信し、アプリケーション実行部28が、取得された撮像画像の送信元のカメラ20に基づいて、どの契約やメタデータであるかを判別し、契約毎の統計情報等を算出する。
PC10では、ユーザ7が入力装置14等を介して契約ID及び契約認証キーを入力してログインを要求し、Webブラウザ機能部12は、Appサーバ40に対し、契約ID及び契約認証キーを送信してログインを行う(T52)。
Appサーバ40では、通信部45がログイン要求を受けると、CamApp管理部41がログインに応じてセッションIDを発行し、通信部45がPC10に対してダッシュボードページの情報を送信する(T53)。
PC10では、Webブラウザ機能部12が、ダッシュボードページの情報を受信すると、ディスプレイ15に受信された情報を含むダッシュボードページを表示する。
PC10では、ユーザ7が入力装置14等を介して、セッションIDを用いて、ダッシュボードページにおけるボタンのいずれかを選択すると、Webブラウザ機能部12は、Appサーバ40に対し、選択された実行ボタンに係る必要な情報を要求する(T54)。
Appサーバ40では、通信部45が、選択されたボタンに係る必要な情報の要求を受けると、統計情報管理部46は、取得された情報に基づいて各種統計情報を導出する。通信部45は、PC10に対し、ダッシュボードページに表示させる表示情報を送信する(T55)。尚、Appサーバ40は、セッションIDと契約IDを紐付けて管理し、セッションIDによって、アクセス元がどの契約IDに基づくユーザ7であるかを判定する。
PC10では、Webブラウザ機能部12がAppサーバ40から表示情報を受信し、ディスプレイ15が表示情報に応じてダッシュボードページを表示する。
これにより、例えば、所定のボタンが選択された場合には、選択された統計処理に係る結果が、ディスプレイ15に表示される。
図19に示したApp利用手順によれば、ユーザ7は、PC10を用いて所望のカメラ20による撮像画像や所望のAppに係る統計情報を確認でき、利便性を向上できる。また、ユーザ7は、所望のカメラ20による撮像画像や所望のAppに係る統計情報を確認しようとする際に、ダッシュボードページを用いて簡単に入力できる。
図20は、カメラシステム5によるApp契約破棄手順の一例を示すシーケンス図である。
まず、PC10は、図13に示したT3の処理を行う。管理サーバ30は、図13に示したT4の処理を行う。
PC10では、ユーザ7が入力装置14等を介してApp契約一覧の取得を要求すると、Webブラウザ機能部12は、セッションIDを用いて、管理サーバ30に対し、App契約一覧の取得を要求する(T61)。
管理サーバ30では、通信部38が、App契約一覧の取得の要求を受けると、契約管理部36が、テーブル55からApp契約一覧として契約情報を抽出し、通信部38が、抽出された情報をPC10に送信する(T62)。この場合、契約管理部36は、App契約一覧として各契約情報の全部又は一部を抽出する。
PC10では、Webブラウザ機能部12がApp契約一覧を取得し、ユーザ7がディスプレイ15に表示されたApp契約一覧を参照し、入力装置14等により特定のApp契約の破棄を指示する。すると、Webブラウザ機能部12は、セッションIDを用いて、管理サーバ30に対し、契約破棄を指示された契約の契約IDを送信して、App契約破棄を要求する(T63)。
管理サーバ30では、通信部38が、PC10からApp契約破棄の要求を受けると、制御権限管理部37が、取得された契約IDに係るCamApp制御キーの破棄をカメラ20に要求する(T64)。
カメラ20では、通信部25が、CamApp制御キーの破棄要求を受けると、制御権限管理部22が、保持されたCamApp制御キーを破棄する。尚、制御権限管理部22がCamApp制御キーを破棄するとともに、CamApp管理部21が、CamApp制御キーに係るCamAppを探索し、このCamAppをアンインストールしてもよい。
カメラ20では、CamApp制御キーが破棄されると、通信部25が、CamApp制御キーの破棄完了を管理サーバ30及びPC10に通知する(T65,T66)。
図20に示したApp契約破棄手順によれば、カメラ20は、App契約を容易に破棄でき、破棄されたApp契約に係るCamApp制御キーを破棄できる。従って、カメラ20は、Appサーバ40からCamApp制御キーを取得した場合でも、CamAppに対する制御を許諾しないことができる。従って、App契約の終了後には、CamAppを用いてカメラ20が制御されることを抑制できる。
本実施形態のカメラシステム5によれば、管理サーバ30は、Appサーバ40に対し、カメラ20へのアクセス権限(制御権限)を制御できる。つまり、管理サーバ30は、CamApp制御キーを用いて、特定のAppサーバ40に、特定のカメラ20に対するCamAppの制御権限を容易に提供できる。従って、カメラシステム5は、Appサーバ40がCamAppを用いてカメラ20を制御する仕組みを、ユーザ7にとって安全かつ簡単に実現できる。
従って、例えば、カメラ20の設置後に、遠隔からユーザ7の要望により新たにCamAppをインストールする場合でも、カメラシステム5は、インストールに係る安全性を向上でき、CamAppによる機能追加を実現できる。
また、ユーザ7やカメラ20による監視業者とは異なる第三者としてのAppプロバイダ9が、新たにCamAppを開発し、Appサーバ40を用いてCamAppを提供する場合でも、カメラシステム5は、CamAppへのアクセスを特定のAppサーバ40に限定することができる。従って、Appサーバ40を使用する際の自由度を大きくした場合でも、Appサーバ40からCamAppやカメラ20に対するアクセス時のセキュリティを確保できる。
また、カメラ20が、CamAppにより撮像画像から年齢や性別などのメタデータを抽出し、Appサーバ40が、メタデータを用いて各種統計情報を得ることができる。得られた情報を、ユーザ7は、監視やマーケティングに活用できる。また、Appサーバ40は、例えば、統計情報として、店舗3内の顧客滞留時間と売上との相関を導出することもでき、顧客心理を推測し、店舗運営に活用することもできる。
また、カメラ20毎に適切なCamAppがインストールされることで、Appサーバ40は、様々な属性(例えば、顔特徴、年齢、性別、身なり、時間)を収集して分析でき、例えば店舗3の運営に分析結果を活用できる。
また、管理サーバ30により生成されたCamApp制御キーを用いることで、カメラ20は、正当なAppサーバ40からのインストール要求及び起動要求であることを確認でき、CamAppのインストール時及び起動時の安全性を向上できる。
また、カメラ20は、管理サーバ認証部24により管理サーバ30を認証することで、管理サーバ30からの要求や指示が正当であることを保障できる。
また、App契約が終了する場合にCamApp制御権限をカメラ20から削除することで、Appサーバ40からCamAppを介してカメラ20へアクセス不能となるので、契約終了後のAppサーバ40によるカメラ20への不正を防止できる。
また、CamApp制御権限を用いることで、契約が終了する度にカメラ20のマスタキーを変更する必要がなく、鍵管理における煩雑性を低減できる。また、Appサーバ40は、マスタキーを取得せずCamApp制御キーを取得するので、カメラ20のマスタキーが漏洩することを低減できる。
また、設定GUI60を用いることで、ユーザ7がカメラ20の設置場所を選択する操作を容易に実施でき、操作性を向上できる。
(第2の実施形態)
第1の実施形態では、Appサーバ40(Appサーバ40のCamApp管理部41)が、CamAppを含むCamAppPackageを保存することを例示した。第2の実施形態では、管理サーバ30Aが、CamAppを含むCamAppPackageを保存することを例示する。
第2の実施形態のカメラシステム5Aにおいて、第1の実施形態のカメラシステム5と同一の構成要素については、同一の符号を用いて、その説明を省略又は簡略化する。本実施形態の各装置の構成は、第1の実施形態と同様である。
図21は、カメラ20Aの構成例を示すブロック図である。
カメラ20A、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、カメラ20Aが有する各種機能を実現する。カメラ20Aは、例えば、各種アプリケーションをダウンロードし、インストールし、実行する。
また、カメラ20Aは、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
カメラ20Aは、CamApp管理部21、制御権限管理部22、制御要求受付判定部23、管理サーバ認証部24、通信部25、カメラ画配信部26、撮像部27、及びアプリケーション実行部28を有する。よって、カメラ20Aは、制御権限管理部22及び制御要求受付判定部23を有しない。つまり、カメラ20Aを制御可能か否かの制御権限の有無の判定は、カメラ20Aでは行われない。
図22は、管理サーバ30Aの構成例を示すブロック図である。管理サーバ30Aは、CamAppを蓄積する。
管理サーバ30Aは、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、管理サーバ30Aが有する各種機能を実現する。
また、管理サーバ30Aは、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
管理サーバ30Aは、ユーザ管理部31、カメラ管理部32、Appプロバイダ管理部33、App管理部34、Appサーバ認証部35、契約管理部36、制御権限管理部37A、通信部38A、CamApp管理部39A、制御要求受付判定部39B、及びインストール済みCamApp管理部39Cを有する。
制御権限管理部37Aは、Appサーバ40Aがどのカメラ20Aに対するどのCamAppを制御する権限を持つか、つまりCamApp制御権限を管理する。第1の実施形態では、CamApp制御権限は、制御キーを用いて判定されたが、第2の実施形態では、CamApp制御権限は、CamAppに対応するAppの契約情報を用いて判定される。Appの契約情報とは、テーブル55Aに登録された契約に関する情報であり、少なくとも契約IDを含む。
CamApp管理部39Aは、CamAppの情報と、カメラ20AにインストールされるCamAppPackage(カメラアプリケーションパッケージ)と、を蓄積し、管理する。CamApp管理部39Aは、例えば、後述するCamApp情報をテーブル62に蓄積する。
尚、CamAppの情報及びCamAppPackageは、Appプロバイダ9により入力装置14A等を介して登録される。当該登録のためのGUIは、例えば、WebサーバによりAppプロバイダ9が操作するPC10Aに送信される。
制御要求受付判定部39Bは、Appサーバ40AからCamApp制御要求を受信し、CamApp制御権限を参照して、CamApp制御要求が正当な権限を持ったAppサーバ40Aからの要求であるかどうか判定する。つまり、カメラ20AへのCamApp制御要求が、Appサーバ40Aに許可されるCamApp制御権限の範囲内であるか否かが判定される。正当なAppサーバ40AからのCamApp制御要求である場合、CamApp管理部39AによりCamApp制御要求に応じた処理を、カメラ20Aへ指示する。
制御要求受付判定部39Bは、例えば、契約に関する契約情報(例えば契約ID)に基づいて、CamApp制御要求を行ったAppサーバ40Aが、特定のカメラ20AのCamAppに対する制御権限を有するか否かを判定する。制御要求受付判定部39Bは、例えば、契約情報が登録されたテーブル55Aを参照し、制御要求に係る契約IDがテーブル55Aに登録されている場合、制御権限が有ると判定し、CamAppの制御を許可する。一方、制御要求受付判定部39Bは、例えば、契約情報が登録されたテーブル55Aを参照し、制御要求に係る契約IDがテーブル55Aに登録されていない場合、制御権限が無いと判定し、CamAppの制御を禁止する。
通信部38Aは、各種情報、データを通信する。通信部38Aは、例えば、CamAppPackageやCamApp制御要求(例えば、CamAppの起動、終了、インストール、アンインストール、アップデートの要求)を、カメラ20Aに送信する。
図23は、Appサーバ40Aの構成例を示すブロック図である。Appサーバ40Aは、ServerAppを蓄積する。
Appサーバ40Aは、例えば、CPU又はDSP、ROM又はRAMを有する。CPU又はDSPは、ROM又はRAMに保持された各種プログラム(例えば、OS、ミドルウェアプログラム、アプリケーションプログラム)を実行し、Appサーバ40Aが有する各種機能を実現する。
また、Appサーバ40Aは、例えば、他の通信装置と通信するための通信インタフェース、データの入出力を行うための入出力インタフェースやユーザインタフェース、を備える。
Appサーバ40Aは、制御部42、通信部45、及び統計情報管理部46を有する。通信部45は、各種情報、データを通信する。通信部45は、例えば、CamApp制御要求(例えば、CamAppの起動、終了、インストール、アンインストール、アップデートの要求)を、管理サーバ30Aに送信する。
図24は、第2の実施形態における管理サーバ30Aが管理するCamApp情報が登録されたテーブル62の登録内容の一例を示す模式図である。
テーブル62は、管理サーバ30A内のCamApp管理部39Aによって管理される。テーブル62には、例えば、CamApp情報として、CamAppID、CamApp名、AppID、及びパッケージファイルパス(PackageFilepath)が登録されている。
CamAppIDは、CamAppの識別情報の一例である。CamApp名は、CamAppの名称である。AppIDは、CamAppに対応するAppの識別情報の一例である。パッケージファイルパスは、CamAppPackageのファイルの保存先へアクセスするためのパスである。
例えば、CamAppID:「2201」、CamApp名:「PeapleCountCamApp」、AppID:「2101」、パッケージファイルパス:「/packageFile/2201」が登録される。
図25は、管理サーバ30Aが管理するインストールされたCamApp情報が登録されたテーブル63の登録内容の一例を示す模式図である。
テーブル63は、管理サーバ30A内のインストール済みCamApp管理部39Cによって管理される。テーブル63には、例えば、インストール情報として、InstalledCamAppID、契約ID、CamAppID、カメラID、及びインストールIDが登録されている。
InstalledCamAppIDは、カメラ20AにインストールされたCamAppを管理するための管理情報の一例である。契約IDは、CamAppのインストールに係る契約の識別情報の一例である。CamAppIDは、カメラ20AにインストールされたCamAppの識別情報の一例である。カメラIDは、CamAppがインストールされたカメラ20Aの識別情報の一例である。インストールIDは、CamAppのインストールを識別するための識別情報の一例であり、カメラ20Aから取得される。
例えば、InstalledCamAppID:「3201」、契約ID:「3001」、CamAppID:「2201」、カメラID:「1101」、及びインストールID:「0001」が登録される。
図26は、管理サーバ30Aが管理する契約情報が登録されたテーブル55Aの登録内容の一例を示す模式図である。
テーブル55Aと第1の実施形態のテーブル55とを比較すると、テーブル55Aは、CamApp制御キーの情報を保持していない。CamApp制御キー以外については、テーブル55と同様である。
テーブル55Aが用いられる場合、例えば、1つの契約毎に1つのCamApp制御権限が存在する。本実施形態では、テーブル55Aに契約情報が登録されることで、CamApp制御権限が生成される。従って、制御要求受付判定部39Bは、カメラ20Aのユーザ7がApp契約しているか否かに基づいて、CamApp制御権限の有無を判定するとも言える。
また、テーブル55Aが用いられる場合、1つの契約及び1つのカメラ毎にCamApp制御権限が生成されてもよい。この場合、カメラ20A及びAppサーバ40Aが保持する契約ID及びカメラID毎に、制御権限管理部37AがCamApp制御権限を生成する。この場合、CamApp制御権限に係る情報は、後述する図27に示すテーブル56Aに保持される。
図27は、管理サーバ30Aが管理するCamApp制御権限に係る情報が登録されたテーブル56Aの登録内容の一例を示す模式図である。テーブル56Aは、例えば制御権限管理部37Aに保持される。
テーブル56Aと第1の実施形態のテーブル56とを比較すると、テーブル56Aは、CamApp制御キーIDの代わりにCamApp制御権限IDの情報を保持し、CamApp制御キーの情報を保持していない。CamApp制御権限ID(CamApp制御キーID)及びCamApp制御キー以外については、テーブル56と同様である。
テーブル55A及びテーブル56Aを用いることで、1つの契約及び1つのカメラ毎に、制御権限管理部37Aにより管理される1つのCamApp制御権限が定まる。
また、ユーザ7が入力装置14等を介して、App毎に使用されるカメラ20Aを指定してもよい。これにより、ユーザ7は、ユーザ7が所有する各カメラ20Aのうち、特定のカメラ20Aへのアクセスを許可できる。
テーブル56Aの例では、契約ID:3001に係るApp(Appサーバ40A)は、カメラID:1101,1102,1103で識別される計3台のカメラ20AへのCamAppに対する制御が許可される。契約ID:3002に係るApp(Appサーバ40A)は、カメラID:1101で識別される計1台のカメラ20AへのCamAppに対する制御が許可される。
テーブル56Aを用いることで、一層セキュリティを向上できる。
尚、管理サーバ30Aは、第1の実施形態と同様、ユーザ情報が登録されたテーブル51、カメラ情報が登録されたテーブル52、Appプロバイダ情報が登録されたテーブル53、App情報が登録されたテーブル54を管理する。
次に、カメラシステム5Aの動作例について説明する。
図28は、カメラシステム5AによるAppプロバイダ登録及びApp登録手順の一例を示すシーケンス図である。
まず、カメラシステム5Aは、図14のT11,T12,T3A,T4A,T13,T14の処理を実行する。
T14の処理後、PC10Aでは、Appプロバイダ9が入力装置14A等を介してCamApp登録を要求すると、Webブラウザ機能部12Aは、セッションIDを用いて、管理サーバ30Aに対し、CamApp登録を要求する(T71)。
このCamApp登録要求では、PC10Aから管理サーバ30Aへ、Appプロバイダ用のPC10Aが保持する又は入力装置14Aを介して入力されたCamApp名、CamAppPackage、及びAppIDが送信される。
管理サーバ30Aでは、通信部38AがCamApp登録要求を受けると、CamApp管理部39AがCamApp登録を行い、通信部38AがCamApp登録完了をPC10Aに送信する(T72)。CamApp登録では、CamApp管理部39Aが、CamApp登録要求に基づいてCamAppIDを付し、CamAppID、PC10AからのCamApp名、CamAppに対応するAppID、及び、CamAppPackage又はそのファイルパスを、テーブル62に保持させる。CamApp登録完了では、CamAppIDがPC10Aへ返信される。
続いて、PC10Aでは、入力装置14A等を介して各種情報を受け付けると、CamApp管理部41が各種情報を設定する(T73)。この設定情報は、例えば、AppID、Appサーバ認証キー、CamAppIDの情報を含む。尚、例えば、Webブラウザを介して各種情報が設定されてもよい。また、直接Appサーバ40Aが動作するコンピュータにログインしてファイルが編集されることで、各種情報が設定されてもよい。
Appサーバ40Aは、設定情報が設定されると、AppID、及びAppサーバ認証キーを用いて、管理サーバ30Aにアクセス可能となる(T74)。尚、管理サーバ30Aに登録されたCamAppの制御は、発行されたCamAppIDを用いて、Appサーバ40Aから管理サーバ30Aに制御要求されることで行われる。尚、Appサーバ40AがCamApp制御要求を行う場合には、CamAppIDも用いて、管理サーバ30Aへアクセスされる。
図28に示したApp登録手順によれば、Appプロバイダ9により生成されたCamAppを管理サーバ30Aに容易に登録できる。また、管理サーバ30AがCamAppを蓄積して管理することで、CamAppの保管時の安全性を向上できる。
図29は、カメラシステム5AによるApp契約手順の一例を示すシーケンス図である。
まず、カメラシステム5Aは、T3,T4,T21〜T26の処理を行う。
T26の処理後、管理サーバ30Aでは、通信部38AがPC10からの設定情報を受けると、制御権限管理部37Aが、CamApp制御権限を生成する(T27A)。CamApp制御権限は、契約管理部36による契約登録に基づいて生成され、制御権限管理部37Aにより管理される。契約管理部36が契約登録すると、テーブル55AにAppの契約情報が登録される(図26参照)。この契約情報は、契約ID、ユーザID、AppID、及び契約認証キーを含む。契約管理部36がテーブル55Aへ契約登録することで、制御権限管理部37Aは、CamApp制御権限を生成する。
1つの契約毎に1つのCamApp制御権限が生成される場合、テーブル55Aへの情報登録で済むが、1つの契約及び1つのカメラ毎にCamApp制御権限が生成される場合、テーブル56Aへの情報登録も行われる。具体的には、契約登録において、制御権限管理部37は、App契約要求及び設定情報に基づいてCamApp制御権限IDを発行し、契約ID及びカメラIDを、テーブル56Aに保持させる。
T27Aの処理後、管理サーバ30Aは、T30の処理を行う。
このように、本実施形態では、CamApp制御キーが生成されず、管理サーバ30AがCamApp制御権限を、契約情報(例えば契約ID)に基づいて管理する。
図30は、カメラシステム5AによるApp利用開始手順の一例を示すシーケンス図である。
まず、カメラシステム5Aは、T31,T32の処理を実行する。
T32の処理後、管理サーバ30Aでは、通信部38Aが、契約情報の要求を受けると、契約管理部36が、取得された契約IDに係るテーブル55Aに保持された契約情報の一部又は全部を抽出し、通信部38Aが、Appサーバ40Aに対し、抽出された契約情報を送信する(T91)。
続いて、カメラシステム5Aは、T34〜T37の処理を実行する。
通信部45は、管理サーバ30Aに対し、T37の設定情報で指定されたCamAppID及びカメラIDを送信して、CamAppのインストールを要求する(T92)。このインストール要求は、インストール対象のカメラ20A、つまり、契約に係る全てのカメラ20A又は特定のカメラ20Aに対して行われる。従って、送信されるカメラIDは、インストール対象のカメラ20AのカメラIDである。
管理サーバ30Aでは、通信部38Aが、Appサーバ40AからのCamAppのインストール要求を受けると、制御要求受付判定部39Bが、Appサーバ40AがCamApp制御権限を有するか否かを判定する。詳細は後述するが、制御要求受付判定部39Bは、AppIDに紐付けられた契約IDが、テーブル55Aに保持されているか否かにより判定する。テーブル55Aに該当する契約IDが存在すればCamApp制御権限を有し、テーブル55Aに該当する契約IDが不在であればCamApp制御権限を有しない、と判定される。
1つの契約毎に1つのCamApp制御権限が生成された場合、制御要求受付判定部39Bが、Appサーバ40Aから取得した契約IDがテーブル55Aに保持されているか否かを判定すれば済む。一方、1つの契約及び1つのカメラ毎にCamApp制御権限が生成された場合、制御要求受付判定部39Bが、更に、契約ID及びAppサーバ40Aから取得したカメラIDが、1つのCamApp制御権限IDに関連付けてテーブル56Aに保持されているか否かを判定する。この場合、該当するCamApp制御権限IDが存在すればCamApp制御権限を有し、該当するCamApp制御権限IDが不在であればCamApp制御権限を有しない、と判定される。
尚、Appサーバ40から管理サーバ30への要求には、AppID及びAppサーバ認証キーが付加される。Appサーバ40は、App毎に存在する。AppIDは、どのAppIDに紐づくAppサーバ40からのアクセスなのかを、管理サーバ30が識別するために使用される。Appサーバ認証キーは、管理サーバ30がAppサーバ40を認証するために使用される。このことは、第1の実施形態においても同様である。
CamApp制御権限を有すると判定された場合、通信部38Aは、取得されたカメラIDで識別されるカメラ20Aに対し、CamAppIDで識別されるCamAppPackageを送信して、CamAppのインストールを要求する(T93)。尚、管理サーバ30Aは、インストール要求を受けた際、Appサーバ認証部35が、Appサーバ40Aを認証してもよい。管理サーバ30Aは、認証の結果、正当なAppサーバ40Aであると判定した場合に、CamApp制御権限の有無を判定してもよい。
インストール対象のカメラ20Aでは、通信部25が、CamAppのインストール要求を受けると、CamApp管理部21は、CamAppのインストールを識別するためのインストールIDを発行し、CamAppPackageを用いてCamAppをインストールする。CamApp管理部21は、インストールIDとCamAppとを関連付けて保持する。尚、CamAppのインストール要求を受けた際、管理サーバ認証部24は、例えば、カメラ20Aの製造時に書き込まれたカメラ制御権限制御キーを用いて、インストールの設定可否を判断してもよい。通信部25は、CamAppのインストールが完了すると、管理サーバ30Aを介してインストール完了をAppサーバ40Aに送信する(T94)。インストール完了の情報には、インストールIDが含まれる。
管理サーバ30Aでは、通信部38Aがカメラ20Aからのインストール完了の情報を受けると、CamApp管理部39Aは、InstalledCamAppIDを発行し、テーブル63にインストール情報を登録する。インストール情報は、InstalledCamAppID、契約ID、CamAppID、カメラID、及びインストールIDを含む。このインストールIDは、カメラ20Aからのインストール完了の情報に含まれる。
通信部38Aは、インストール情報が登録されると、インストール完了の情報をAppサーバ40Aへ送信する(T95)。このインストール完了の情報には、InstalledCamAppIDが含まれる。
Appサーバ40Aでは、通信部45が、管理サーバ30Aからのインストール完了の情報を受けると、このインストール完了の情報に含まれるInstalledCamAppIDを制御部42に保持する。
Appサーバ40Aでは、通信部45が、管理サーバ30Aに対し、保持されたInstalledCamAppIDを送信して、CamAppの起動を要求する(T96)。
管理サーバ30Aでは、通信部38Aが、Appサーバ40AからのCamAppの起動要求を受けると、制御要求受付判定部39Bは、Appサーバ40AがCamApp制御権限を有するか否かを判定する。具体的には、制御要求受付判定部39Bは、テーブル63を参照し、Appサーバ40AからのInstalledCamAppIDに関連付けられた契約ID、カメラID、及びインストールIDを取得する。制御要求受付判定部39Bは、取得された契約IDが、テーブル55Aに保持されているか否かにより、CamApp制御権限の有無を判定する。テーブル55Aに該当する契約IDが存在すればCamApp制御権限を有し、テーブル55Aに該当する契約IDが不在であればCamApp制御権限を有しない、と判定される。尚、CamApp制御権限は、制御権限管理部37Aにより生成され、保持される。
1つの契約毎に1つのCamApp制御権限が生成された場合、制御要求受付判定部39Bが、契約IDがテーブル55Aに保持されているか否かを判定すれば済む。一方、1つの契約及び1つのカメラ毎にCamApp制御権限が生成された場合、制御要求受付判定部39Bが、契約ID及びカメラIDが、1つのCamApp制御権限IDに関連付けてテーブル56Aに保持されているか否かを判定する。この場合、該当するCamApp制御権限IDが存在すればCamApp制御権限を有し、該当するCamApp制御権限IDが不在であればCamApp制御権限を有しない、と判定される。
CamApp制御権限を有すると判定された場合、CamApp管理部39Aは、取得されたカメラIDで識別されるカメラ20Aに対して、取得されたインストールIDを送信して、CamAppの起動を要求する(T97)。尚、管理サーバ30Aは、起動要求を受けた際、Appサーバ認証部35が、Appサーバ40Aを認証してもよい。管理サーバ30Aは、認証の結果、正当なAppサーバ40Aであると判定した場合に、CamApp制御権限の有無を判定してもよい。
起動対象のカメラ20Aでは、通信部25が管理サーバ30AからのCamAppの起動要求を受けると、アプリケーション実行部28が、インストールIDに対応するCamAppを起動する。尚、CamAppの起動要求を受けた際、管理サーバ認証部24は、例えば、カメラ20Aの製造時に書き込まれたカメラ制御権限制御キーを用いて、起動の許否を判断してもよい。通信部25は、この起動が完了すると、起動完了を管理サーバ30Aを介してAppサーバ40Aに送信する(T98,T99)。
CamAppの起動完了後、Appサーバ40Aは、T45の処理を実行する。
図30に示したApp利用開始手順によれば、PC10により、どのカメラにどのCamAppをインストールすべきかを指定できる。ユーザ7は、例えば、店舗3(例えば販売店やレストラン)のオーナーであり、どのカメラの画像をどのような目的に使用したいかを十分に把握している。このユーザ7がPC10を用いてインストール対象のカメラ20AとCamAppを指定することで、ユーザ7の意図を反映してCamAppにインストールできる。
また、管理サーバ30Aは、CamApp制御権限の有無を判定することで、Appサーバ40Aが、直接カメラ20Aにアクセスさせずに管理サーバ30Aを介して安全にアクセスするよう制御できる。これにより、例えばカメラ20AのCamAppの不正利用やCamAppの改変を抑制できる。
図31は、カメラシステム5AによるApp契約破棄手順の一例を示すシーケンス図である。
まず、カメラシステム5Aは、T3,T4,T61〜T63の処理を実行する。
T63の処理後、管理サーバ30Aでは、制御権限管理部37Aが、内部で保持している、取得された契約IDに対応するCamApp制御権限を破棄する。この場合、契約管理部36は、取得された契約IDに対応する契約情報を、テーブル55Aから削除する。更に、CamApp制御権限が契約及びカメラ毎に生成されている場合、制御権限管理部37Aは、取得された契約IDに対応するCamApp制御権限に係る情報を、テーブル56Aから削除する。
尚、本実施形態では、カメラ20AがCamApp制御キーを保持していないので、CamApp制御キーの破棄をカメラ20Aに要求する必要はない。尚、通信部25は、破棄対象の契約IDに対応するCamAppをカメラ20Aからアンインストールするよう、カメラ20Aに対して要求してもよい。
続いて、カメラシステム5Aは、T66の処理を実行する。
図31に示したApp契約破棄手順によれば、カメラ20AによるApp契約の終了に伴って、管理サーバ30Aは、契約破棄されたCamAppに係るCamApp制御権限を破棄できる。従って、管理サーバ30Aは、Appサーバ40AからCamAppの制御要求を取得した場合でも、CamAppに対する制御を許諾しないことができる。従って、App契約の終了後には、CamAppを用いてカメラ20Aが制御されることを抑制できる。
尚、本実施形態におけるカメラシステム5Aによるユーザ登録及びカメラ登録手順、App利用手順については、第1の実施形態と同様である。
このように、カメラシステム5Aでは、管理サーバ30AがCamApp制御権限を生成し、管理サーバ30A自身が管理するので、CamApp制御キーをカメラ20A及びAppサーバ40Aの双方に渡さないで済み、CamApp制御キーが外部に漏洩することを抑制できる。従って、管理サーバ30Aは、CamAppに対する制御を一層安全性高く管理できる。
また、管理サーバ30Aがカメラ20Aにアクセスし、Appサーバ40Aが直接カメラ20Aにアクセスしない。そのため、カメラ20Aに直接接続する場合に起こり得る事象を低減できる。例えば、カメラ20Aを自由に制御可能であることを抑制できる。また、NAT(Network Address Translation)を介する通信接続に対する対策を管理サーバ30が行えばよく、Appサーバ40はNATを意識する必要がない。
このような本実施形態のカメラシステム5Aによれば、Appサーバ40AがCamAppを用いてカメラ20Aを制御する仕組みを、ユーザにとって安全かつ簡単に実現できる。
尚、第2の実施形態におけるCamApp制御権限の有無の判定は、以下のように実施されてもよい。
(1)Appサーバ40Aから管理サーバ30Aへの通信時に、AppIDとAppサーバ認証キーが送られる。
(2)続いて、管理サーバ30Aは、Appに係るテーブル54を参照し、送られてきたAppIDとAppサーバ認証キーを同時に持つエントリ(レコード)が存在するか否かを判定する。
(3)管理サーバ30Aは、契約に係るテーブル55Aを参照し、「送られてきたAppID」を持つエントリを抽出し、各エントリが持つ契約IDのリストを作成する。尚、エントリーが0である場合、CamApp権限なしと判定する。尚、1つのAppが複数のユーザから契約されている場合、AppIDに紐付く契約IDが複数存在する。
(3)の処理後、以下の(4A),(5A)又は(4B),(5B)が実施される。
[CamAppインストール指示(引数:CamAppID、カメラID)の場合]
(4A)管理サーバ30Aは、CamAppに係るテーブル62を参照し、「引数で指定されたCamAppID」と「送られてきたAppID」とを同時に持つエントリが存在するか否かを判定する。この処理は、契約毎に制御権限を設定する場合、契約毎かつカメラ毎に制御権限を設定する場合、のいずれにおいても行われる。
(5A)契約毎且つカメラ毎に制御権限を設定する場合、管理サーバ30Aは、CamApp制御権限に係るテーブル56Aを参照し、(3)で作成された契約IDリストに含まれる契約IDと、引数で指定されたカメラIDと、を同時に持つエントリが存在するか否かを判定する。当該エントリが存在する場合、管理サーバ30Aは、Appサーバ40AがCamApp制御権限を有すると判定する。
[インストール済みCamApp制御指示(引数:InstalledCamAppID)の場合]
(4B)管理サーバ30Aは、インストール済みCamAppに係るテーブル63を参照し、引数で指定されたInstalledCamAppIDと、(3)で作成された契約IDリストに含まれる契約IDと、を同時に持つエントリが存在するか否かを判定する。上記エントリが存在する場合、管理サーバ30Aは、上記エントリに係る契約ID、CamAppID、カメラIDを取得する。
(5B)管理サーバ30Aは、CamApp制御権限に係るテーブル56Aを参照して、 (4B)で取得された契約IDと、(4B)で取得されたカメラID」とを同時に持つエントリが存在するか否かを判定する。当該エントリが存在する場合、管理サーバ30Aは、Appサーバ40AがCamApp制御権限を有すると判定する。
尚、上記(1)、(2)、(3)においても、CanAppインストール指示の場合と、インストール済みCamApp制御指示の場合と、に分けられる。CamAppインストール指示の場合、引数は、ApID,Appサーバ認証キー、CamapID、及びカメラIDである。インストール済みCamApp制御指示の場合、引数は、AppID、Appサーバ認証キー、及びInstalledCamAppIDである。
このようなCamApp制御権限の有無の判定により、管理サーバ30Aは、契約に係るAppが間違いなく存在することを確認して、CamApp制御権限の有無を判定できる。
以上、図面を参照しながら各種の実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
上記実施形態では、図30において、Appサーバ40Aがユーザ7から入手した契約ID等を用いて管理サーバ30からカメラ情報を取得するように説明したが、これに限られない。例えば、Appサーバ40Aが、ユーザ7から入手した契約ID等を用いることなく、Appサーバ40Aと管理サーバ30Aとの間で別途の契約をしておき、別途の契約に基づいてカメラ情報を管理サーバ30Aから取得するようにしてもよい。
このとき、管理サーバ30Aがユーザ7との間の契約とAppサーバ40Aとの間の契約とを紐付けて管理しておけば、カメラ情報に基づいて(例えば、Appサーバ40Aに予め送信したカメラ情報とAppサーバ40Aからの制御要求受付時に受信したカメラ情報とが一致するか否かにより)Appサーバ40AがCamApp制御権限を有するか否かの判定も可能となる。
例えば、Appプロバイダ9が、歩道に向けて設置された多数のカメラ20Aからメタデータを収集して、時間毎、性別毎、年齢毎、の情報を集めてデータを第3者に販売する(サービスを提供する)とする。このAppプロバイダ9は、Appサーバ40Aと管理サーバ30Aとの間で締結した別途の契約に基づいて、管理サーバ30Aからカメラ情報を取得できる。そのため、Appプロバイダ9は、各々のカメラ所有者であるユーザ7と管理サーバ30Aとの契約について何も知らなくとも、カメラ20Aを利用して上記サービスを提供できる。
一方、ユーザ7にとっては、ユーザ7と管理サーバ30Aとの契約に基づいて管理サーバ30A側でCamApp制御権限が生成されて、そのCamApp制御権限の元でユーザ7のカメラ20Aに対するアプリケーション制御が管理されている。そのため、カメラ20Aが利用される場合の安全性を確保できる。
以上のように、上記実施形態における撮像システムは、撮像装置と、撮像装置用のアプリケーションに対する制御を管理する管理装置と、がネットワークを介して接続される。管理装置は、撮像装置用のアプリケーションを制御するための制御キーを生成し、制御キーを、撮像装置と、撮像装置用のアプリケーションを保持し撮像装置用のアプリケーションに対して制御要求を行う制御装置と、へ送信する。撮像装置は、管理装置からの制御キーを受信して保持し、制御装置からの制御キー及び制御要求を受信する。撮像装置は、保持された制御キーと制御装置からの制御キーとが一致するか否かを判定し、制御キーが一致する場合、制御要求に応じて、制御キーに対応する撮像装置用のアプリケーションを制御する。
撮像システムは、例えばカメラシステム5である。撮像装置は、例えばカメラ20Aである。管理装置は、例えば管理サーバ30である。制御装置は、例えばAppサーバ40Aである。制御キーは、例えばCamApp制御キーである。
これにより、撮像装置用のアプリケーションに対して制御要求を行う制御装置とは別に、撮像装置用のアプリケーションに対する制御を管理する管理装置を設けることで、制御キーを用いて、制御要求に対する許否を高精度に行うことができる。例えば、どの制御装置に対して、どの撮像装置に対するどの撮像装置用のアプリケーションの制御権限を与えるかを、容易に設定できる。このように、制御装置が撮像装置用のアプリケーションを用いて撮像装置を制御する仕組みを、ユーザにとって安全かつ簡単に実現できる。
また、撮像システムは、制御キーの送信先としての撮像装置を指定し、指定された撮像装置を識別するための第1の識別情報を管理装置へ送信する情報処理装置を備えてもよい。管理装置は、第1の識別情報を受信し、第1の識別情報で識別される撮像装置へ制御キーを送信する。第1の識別情報で識別される撮像装置は、管理装置から制御キーを受信して保持してもよい。
情報処理装置は、例えばPC10である。第1の識別情報は、例えばカメラIDである。
これにより、制御キーを送信する撮像装置を制限できる。従って、例えば、ユーザが所有する一部の撮像装置に限って、撮像装置用のアプリケーションへの制御要求の許可でき、撮像装置毎に許否を分けられる。
また、管理装置は、第1の識別情報を制御装置へ送信してもよい。第1の識別情報で識別される撮像装置は、制御装置から制御キー、撮像装置用のアプリケーション、及び制御要求を受信してもよい。
これにより、制御装置から各種情報を送信する撮像装置を制限できる。従って、撮像装置用のアプリケーション等、比較的データ量の大きいデータの通信量を低減でき、ネットワーク資源を有効利用できる。
また、管理装置は、撮像装置用のアプリケーションに係る契約毎に、制御キーを生成してもよい。
これにより、契約に応じた制御キーを生成でき、契約毎に共通してアプリケーションを制御できる。
また、管理装置は、撮像装置用のアプリケーションに係る契約毎及び撮像装置毎に、制御キーを生成してもよい。
これにより、契約と撮像装置とに応じた制御キーを生成でき、撮像装置を加味して様々なバリエーションでアプリケーションの制御を許否できる。
また、撮像システムでは、管理装置を認証し、認証が成功した場合に、管理装置からの制御キーを保持してもよい。
これにより、撮像装置が管理装置を認証することで、管理装置からの要求や指示が正当であることを保障できる。
また、撮像システムは、契約を破棄するための破棄要求を管理装置へ送信する情報処理装置を備えてもよい。破棄要求は、破棄対象の契約を識別するための第2の識別情報を含んでもよい。管理装置は、破棄要求を受信し、破棄要求に応じて、契約に係る制御キーを破棄するための破棄通知を送信してもよい。撮像装置は、破棄通知に応じて、撮像装置により保持された制御キーを破棄してもよい。
これにより、撮像装置が保持する制御キーを破棄するという簡単な処理で、制御装置から撮像装置にインストールされた撮像装置用のアプリケーションに対する制御を不可とすることができる。従って、撮像装置は、契約終了後に、制御装置から撮像装置用のアプリケーションに対して制御することを抑制できる。
また、制御要求は、撮像装置用のアプリケーションのインストール要求又は起動要求を含んでもよい。
これにより、撮像装置に対して撮像装置用のアプリケーションをインストール際、撮像装置が保持する撮像装置用のアプリケーションを起動する際に、不当な制御装置からの要求である場合には制御要求を拒否できる。
また、撮像装置は、画像を撮像し、撮像画像から所定の特徴を抽出し、抽出された撮像画像の特徴の情報を制御装置へ送信してもよい。
これにより、制御装置は、各撮像装置の特徴を収集し、収集された特徴に応じた統計情報(例えば、特定の人物の有無、特定の人物の追跡情報、特定の動作の有無)を分析できる。
また、上記実施形態におけるアプリケーション制御方法は、撮像装置と、撮像装置用のアプリケーションに対する制御を管理する管理装置と、がネットワークを介して接続された撮像システムにおける方法である。この方法は、管理装置により、撮像装置用のアプリケーションを制御するための制御キーを生成し、管理装置により、制御キーを、撮像装置と、撮像装置用のアプリケーションを保持し撮像装置用のアプリケーションに対して制御要求を行う制御装置と、へ送信し、撮像装置により、管理装置からの制御キーを受信して保持し、撮像装置により、制御装置からの制御キー及び制御要求を受信し、撮像装置により、保持された制御キーと制御装置からの制御キーとが一致するか否かを判定し、撮像装置により、制御キーが一致する場合、制御要求に応じて、制御キーに対応する撮像装置用のアプリケーションを制御する。
これにより、撮像装置用のアプリケーションに対して制御要求を行う制御装置とは別に、撮像装置用のアプリケーションに対する制御を管理する管理装置を設けることで、制御キーを用いて、制御要求に対する許否を高精度に行うことができる。例えば、どの制御装置に対して、どの撮像装置に対するどの撮像装置用のアプリケーションの制御権限を与えるかを、容易に設定できる。このように、制御装置が撮像装置用のアプリケーションを用いて撮像装置を制御する仕組みを、ユーザにとって安全かつ簡単に実現できる。