以下に、本発明の実施形態について、図面を参照しながら詳細に説明する。以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
なお、以下の実施例において示す構成は一例に過ぎず、本発明は、図示された構成に限定されるものではない。また、以下の実施例におけるコマンド及び座標系は、例えばOpen Network Video Interface Forum(以下ONVIFと称する場合がある)規格に基づいて定められているものとする。
(実施例1)
以下に、図1を参照して本実施例に係るネットワーク構成について説明する。より詳細には、図1は、本実施例に係る監視システムのシステム構成の一例を示す図である。
本実施例における監視システムにおいて、動画像を撮像する監視カメラ1000とクライアント装置2000とは、IPネットワーク網1500を介して(ネットワーク経由で)相互に通信可能な状態で接続される。これにより、監視カメラ1000は、画像データをIPネットワーク網1500経由でクライアント装置2000に配信することができる。
なお、本実施例におけるクライアント装置2000は、PC等の外部装置の一例である。又、本実施例における監視システムは、撮像システムに相当する。
また、IPネットワーク網1500は、例えばEthernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成されるものとする。しかしながら、本実施例においては、監視カメラ1000とクライアント装置2000との間の通信を行うことができるものであれば、その通信規格、規模、構成を問わない。
例えば、IPネットワーク網1500は、インターネットや有線LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されていても良い。なお、本実施例における監視カメラ1000は、例えば、PoE(Power Over Ethernet(登録商標))に対応していても良く、LANケーブルを介して電力を供給されても良い。
クライアント装置2000は、監視カメラ1000に対し、各種コマンドを送信する。これらのコマンドは、例えば、監視カメラ1000の撮像方向及び画角を変更させるためのコマンド、撮像パラメータを変更するためのコマンド、画像ストリーミングを開始させるためのコマンド等である。
一方、監視カメラ1000は、これらのコマンドに対するレスポンスや画像ストリーミングをクライアント装置2000に送信する。また、監視カメラ1000は、クライアント装置2000から受信した画角を変更するためのコマンドに応じて画角を変更する。
続いて、図2は、本実施例に係る監視カメラ1000のハードウェア構成の一例を示す図である。
図2における制御部1001は、監視カメラ1000の各構成要素を統括的に制御する。また、制御部1001は、CPU(Central Processing Unit)により構成される。そして、制御部1001は、記憶部1002に記憶されたプログラムを実行する。又は、制御部1001は、ハードウェアを用いて制御を行うこととしても良い。
記憶部1002は、主に制御部1001が実行するプログラム格納領域、プログラム実行中のワーク領域、後述する撮像部1004で生成される画像データの格納領域等、様々なデータの格納領域として使用される。また、通信部1003は、各制御コマンドをクライアント装置2000から受信する。また、通信部1003は、各制御コマンドをクライアント装置2000に送信する。
撮像部1004は、不図示の撮像光学系、及びCCDやCMOS等の撮像素子などから構成される。この撮像部1004は、この撮像光学系により結像された被写体の像を撮像することにより、アナログ信号を生成する。また、撮像部1004は、生成したアナログ信号をデジタルデータに変換する。
さらに、撮像部1004は、変換したデジタルデータを画像データとして、記憶部1002、露出補正処理部1005、及びワイドダイナミックレンジ画像合成処理部1006に出力する。
露出補正処理部1005は、撮像部1004から出力された画像データを解析し、画像処理設定の内容に基づき、この画像データに対して露出補正処理を行う。また、露出補正処理部1005は、露出補正処理を行った画像データを記憶部1002に出力する。
なお、本実施例における露出補正処理には、逆行補正処理、及び暗部補正処理等の画像処理が含まれる。ここで、逆行補正処理とは、逆光状況における暗部を含んだ画像データの全体を明るくする処理である。また、暗部補正処理とは、この画像データに含まれる暗部を判定し、明るい部分の画像の明るさを保持したまま、判定された暗部を明るく補正する処理である。
また、本実施例における露出補正処理は、撮像部1004の露出条件を設定する露出設定機能を備える。ここで、露出条件とは、撮像部1004に含まれる撮像光学系の絞りの値、及び撮像部1004に含まれる撮像素子の露光時間(蓄積時間)等が含まれる。
なお、本実施例における露出補正処理部1005は、撮像部1004の露出条件を設定し、撮像部1004が設定された露出条件で被写体を撮像して生成した1枚の画像データを取得する露出設定部に相当する。
1006は、ワイドダイナミックレンジ画像合成処理部である。以下、ワイドダイナミックレンジをWDR、またワイドダイナミックレンジ画像合成処理をWDR処理と省略することがある。
WDR画像合成処理部1006は、撮像部1004から出力された露光条件の異なる複数の画像から、これら複数の画像の最適な明るさの部分を判定して合成することにより、ダイナミックレンジの広い1枚の合成画像データを生成する。そして、WDR画像合成処理部1006は、生成した合成画像データを記憶部1002に出力する。
なお、本実施例における露光条件とは、撮像部1004に含まれる撮像素子の露光時間(蓄積時間)等である。また、本実施例におけるWDR画像合成処理部1006は、撮像部1004が異なる露光条件で被写体を撮像して生成した複数の画像データを合成することにより、合成画像データを生成する合成部に相当する。これに対し、本実施例における露出補正処理部1005は、これら複数の画像を合成することはないものとする。
圧縮符号化部1007は、撮像部1004、露出補正処理部1005、及びWDR画像合成処理部1006が出力する画像データに対し、圧縮符号化設定の内容に基づき、JPEG、H.264、或いはH.265等の形式に基づき圧縮符号化処理を行う。そして、圧縮符号化部1007は、圧縮符号化処理を行った画像データを、記憶部1002に出力する。
なお、本実施例における監視カメラ1000は、ストリーミング配信をクライアント装置2000から要求された場合、この要求の内容に基づき、圧縮符号化部1007から出力された画像データを、通信部1003を介して外部にストリーミング配信する。
続いて、図3は、本実施例に係るクライアント装置2000のハードウェア構成の一例を示す図である。本実施例におけるクライアント装置2000は、IPネットワーク網1500に接続されるコンピュータ装置として構成される。
図3における制御部2001は、クライアント装置2000の全体の制御を行う。制御部2001は、例えば、CPUにより構成され、後述の記憶部2002に記憶されたプログラムを実行する。又は、制御部2001は、ハードウェアを用いて制御を行うこととしてもよい。そして、記憶部2002は、制御部2001が実行するプログラム格納領域、プログラム実行中のワーク領域、データの格納領域として使用される。
通信部2003は、制御部2001の指示を受け、監視カメラ1000にコマンド等を送信する。又、通信部2003は、監視カメラ1000から、コマンドのレスポンスやストリーミング配信された画像データ等を受信する。
入力部2004は、例えば、ボタン、十字キ―、タッチパネル、マウスなどで構成される。この入力部2004は、ユーザからの指示の入力を受け付ける。例えば、入力部2004は、ユーザからの指示として、監視カメラ1000に対する各種のコマンドの送信指示の入力を受け付けることができる。
また、入力部2004は、ユーザから監視カメラ1000に対する命令送信指示が入力されると、制御部2001にこの入力があった旨を通知する。そして、制御部2001は、入力部2004に入力された指示に応じて、監視カメラ1000に対する命令を生成する。次に、制御部2001は、通信部2003に指示し、生成した命令を監視カメラ1000に送信させる。
さらに、入力部2004は、制御部2001が記憶部2002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等に対するユーザの応答の入力を受け付けることができる。
復号部2005は、通信部2003から出力された画像データを復号し且つ伸長する。そして、復号部2005は、この復号し且つ伸長された画像データを表示部2006に出力する。これにより、表示部2006は、復号部2005から出力された画像データに対応する画像を表示する。
なお、表示部2006は、制御部2001が記憶部2002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等を表示させることができる。
以上、監視カメラ1000及びクライアント装置2000のそれぞれの内部構成について説明したが、図2及び図3に示す処理ブロックは、本発明における撮像装置及び外部装置の好適な実施例を説明したものであり、この限りではない。音声入力部や音声出力部を備えるなど、本発明の要旨の範囲内で、種々の変形及び変更が可能である。
続いて、図4は、監視カメラ1000とクライアント装置2000との間における、ストリーミング配信される画像のパラメータの設定開始から画像がストリーミング配信されるまでの、典型的なコマンドシーケンスを説明するためのシーケンス図である。
なお、本実施例におけるトランザクションとは、クライアント装置2000から監視カメラ1000へ送信されるコマンドと、それに対して監視カメラ1000がクライアント装置2000へ返送するレスポンスのペアのことを指している。
図4における6000は、ネットワーク機器接続のトランザクションである。クライアント装置2000は、ネットワーク機器を接続するためのProbeコマンドをユニキャスト、或いはマルチキャストでIPネットワーク網1500に送信する。ネットワークに接続されている監視カメラ1000は、コマンド受け付け可能となったことを示すProbeMatchレスポンスをクライアント装置2000へ返送する。
6001は、Subscribeのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000に対し、イベント配信を行うよう指示することができる。
6002は、GetProfilesトランザクションである。このトランザクションは、配信プロファイルに相当するMediaProfileを取得するためのトランザクションである。ここで、MediaProfileとは、監視カメラ1000の各種設定項目を関連づけて記憶するためのパラメータセットである。
この各種設定項目は、このMediaProfileのIDであるProfileTokenと、後述のVideoSourceConfiguration、後述のVideoEncoderConfigurationのほか、音声のエンコーダ等を含む。そして、MediaProfileは、これら各種設定項目へのリンクを保持する。
クライアント装置2000は、GetProfilesコマンドを監視カメラ1000に送信する。そして、GetProfilesコマンドを受信した監視カメラ1000は、MediaProfileのリストをクライアント装置2000に送信する。
これにより、クライアント装置2000は、MediaProfileを識別するための配信プロファイルIDとともに、監視カメラ1000で現在使用可能なMediaProfileのリストを取得する。なお、クライアント装置2000は、監視カメラ1000内に存在する配信可能な配信プロファイル設定を配信プロファイルIDで識別している。
6003は、GetVideoSourcesコマンドのトランザクションである。このコマンドにより、クライアント装置2000は、監視カメラ1000が保持するVideoSourceのリストを取得する。
ここで、VideoSourceとは、監視カメラ1000が備える1つの撮像部1004の性能を示すパラメータの集合体である。また、VideoSourceは、VideoSourceのIDであるVideoSourceTokenと、撮像部1004が出力可能な画像データの解像度を示すResolutionを含む。
クライアント装置2000は、GetVideoSourcesコマンドを監視カメラ1000に送信する。そして、GetVideoSourcesコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
6004は、GetVideoSourceConfigurationsトランザクションである。このトランザクションは、監視カメラ1000の保持するVideoSourceConfigurationのリストを取得するためのトランザクションである。
ここで、VideoSourceConfigurationとは、監視カメラ1000が備えるVideoSourceをMediaProfileに関連付けるパラメータの集合体である。また、VideoSourceConfigurationは、VideoSourceが出力する画像データのうち、どの部分を切り出して配信画像とするかを指定するBoundsを含む。
なお、以下、VideoSourceConfigurationを、VSCと称することがある、
クライアント装置2000は、GetVideoSourceConfigurationsコマンドを監視カメラ1000に送信する。そして、GetVideoSourceConfigurationsコマンドを受信した監視カメラ1000は、監視カメラ1000が保持するVSCのIDを含むリストをクライアント装置2000に返送する。
6005は、GetVideoEncorderConfigurationsトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000が保持するVideoEncorderConfigurationのリストを取得する。
クライアント装置2000は、GetVideoEncorderConfigurationsコマンドを監視カメラ1000に送信する。又、このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
ここで、VideoEncoderConfigurationとは、画像データの圧縮符号化に関するエンコーダ設定をMediaProfileに関連付けるパラメータの集合体である。以下、VideoEncorderConfigurationをVECと称することがある。
VECは、VECのIDであるVECToken、圧縮符号化方式(JPEGやH.264等)を指定するEncoding、出力画像の解像度を指定するResolution、圧縮符号化品質を指定するQualityを含む。更に、VECは、監視カメラ1000から出力される画像データに関し、最大フレームレートを指定するFramerateLimit、及び最大ビットレートを指定するBitrateLimitを含む。
例えば、監視カメラ1000は、VideoSource、及びVSCの内容に基づいて出力された画像データを、このVEC内に設定されたパラメータに従って、圧縮符号化し、通信部1003を介してクライアント装置2000に配信する。
6006は、GetVideoEncorderConfigurationOptionsトランザクションである。このトランザクションにより、クライアント装置2000は、IDによって指定されたVECに関し、監視カメラ1000が受け付け可能な各パラメータの選択肢や設定値の範囲を取得することができる。
クライアント装置2000は、GetVideoEncorderConfigurationOptionsコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。このトランザクションにより、クライアント装置2000は、記憶部1002に記憶されている圧縮符号化設定のIDを含むリストを監視カメラ1000から取得する。
6007は、CreateProfileのトランザクションである。このトランザクションは、配信プロファイルの作成を要求するためのトランザクションである。クライアント装置2000は、CreateProfileコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
このトランザクションにより、クライアント装置2000は、配信プロファイルを監視カメラ1000内に新たに作成し、作成した配信プロファイルのIDを得ることができる。又、監視カメラ1000は、この新たに作成された配信プロファイルを記憶する。
このトランザクションのコマンド処理後、監視カメラ1000は、MediaProfile変更通知イベントをクライアント装置2000に送信することで、MediaProfileに何らかの変更があったことをクライアント装置2000に通知する。
6008は、AddVideoSourceConfigurationのトランザクションである。このトランザクションは、VSCの追加を要求するためのトランザクションである。クライアント装置2000は、AddVideoSourceConfigurationのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6007で取得した配信プロファイルIDと6004で取得したVSCのIDとを指定する。これにより、クライアント装置2000は、指定した配信プロファイルIDに対応するMediaProfileに対し、指定したVSCのIDに対応する所望のVSCを関連付けることができる。
一方、監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに対応するMediaProfileと、クライアント装置2000により指定されたVSCのIDに対応する所望のVSCと、を関連付けて記憶する。
6009は、AddVideoEncorderConfigurationのトランザクションである。このトランザクションは、VECの追加を要求するためのトランザクションである。クライアント装置2000は、AddVideoEncorderConfigurationのコマンドを監視カメラ1000に送信する。監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6007で取得した配信プロファイルIDと6005で取得したVECのIDとを指定する。これにより、クライアント装置2000は、指定した配信プロファイルIDに対応するMediaProfileに対し、指定したVECのIDに対応するVECを関連付けることができる。
一方、監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに対応するMediaProfileと、クライアント装置2000により指定されたVECのIDに対応する所望のVECと、を関連付けて記憶する。
6008、6009のトランザクションの処理後、監視カメラ1000は、MediaProfile変更通知イベントをクライアント装置2000に送信することで、MediaProfileに何らかの変更があったことをクライアント装置2000に通知する。
6010は、SetVideoEncorderConfigurationのトランザクションである。このトランザクションは、VECの各パラメータを設定するためのトランザクションである。クライアント装置2000は、SetVideoEncorderConfigurationのコマンドを監視カメラ1000に送信する。
このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。このトランザクションにより、クライアント装置2000は、6005で取得したVECの内容を、6006で取得した選択肢に基づいて設定する。例えば、圧縮符号化方式や切出しサイズを変更する。監視カメラ1000は、設定された圧縮符号化設定等の内容を記憶する。
このトランザクションの処理後、監視カメラ1000は、VEC変更通知イベントをクライアント装置2000に送信することにより、VECに何らかの変更があったことをクライアント装置2000に通知する。
6011は、GetStreamUriのトランザクションである。このトランザクションは、配信アドレスの取得を要求するためのトランザクションである。このトランザクションにて、クライアント装置2000は、6007で取得した配信プロファイルIDを指定し、指定した配信プロファイルの設定に基づいてストリーミング配信される画像等を取得するためのアドレス(URI)を取得する。
監視カメラ1000は、クライアント装置2000により指定された配信プロファイルIDに関連付けられているVSC、及びVECの内容に対応する画像をストリーミング配信するためのアドレスを、クライアント装置2000に返送する。
6012は、DESCRIBEのトランザクションである。このトランザクションは、配信情報の取得を要求するためのトランザクションである。クライアント装置2000は、DESCRIBEのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6011で取得したURIを使用してDESCRIBEコマンドを実行することにより、監視カメラ1000がストリーミング配信するコンテンツの情報を要求して取得する。
6013は、SETUPのトランザクションである。このトランザクションは、配信設定を要求するためのトランザクションである。クライアント装置2000は、SETUPのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
このトランザクションにおいて、クライアント装置2000は、6012で取得した配信情報に関する詳細データに基づき、監視カメラ1000に対してストリーミングの準備を行わせる。このコマンドを実行することにより、クライアント装置2000と監視カメラ1000との間で、セッション番号を含むストリームの伝送方法が共有される。
6014は、PLAYのトランザクションである。このトランザクションは、ストリーミング配信を開始させるためのトランザクションである。クライアント装置2000は、PLAYのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスをクライアント装置2000に返送する。
クライアント装置2000は、PLAYのコマンドを監視カメラ1000に送信する際、6013で取得したセッション番号を用いることで、監視カメラ1000にストリーミングの開始を要求することができる。
6015は、監視カメラ1000からクライアント装置2000に配信されるストリームである。6014で開始を要求されたストリームを6013において共有された伝送方法によって配信する。
6016は、TEARDOWNのトランザクションである。このトランザクションは、配信を停止させるためのトランザクションである。クライアント装置2000は、TEARDOWNのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
このトランザクションにおいて、クライアント装置2000は、6013にて取得したセッション番号を指定してTEADOWNコマンドを実行することにより、監視カメラ1000に対してストリーミングの停止を要求することができる。
続いて、図5は、監視カメラ1000とクライアント装置2000の間における、画像処理設定に相当するImagingSettingを変更するための、典型的なコマンドシーケンスを説明するためのシーケンス図である。
図5における6050は、GetServicesのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000がサポートしているWebサービスの種類と各Webサービスを利用するためのアドレスURIを取得することができる。
クライアント装置2000は、GetServicesコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
6051は、GetServiceCapabilitiesのトランザクションである。このトランザクションにより、クライアント装置2000は、6050で取得された各Webサービスの機能の一覧を取得することができる。
クライアント装置2000は、GetServiceCapabilitiesのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返送する。
6052は、GetImagingSettingsのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000が保持するImagingSettingsのリストを取得することができる。
クライアント装置2000は、GetImagingSettingsのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返信する。
6053は、GetOptionsコマンドのトランザクションである。このトランザクションにより、クライアント装置2000は、ImagingSettingsのパラメータに関し、監視カメラ1000が受け付け可能な選択肢を取得することができる。
クライアント装置2000は、GetOptionsのコマンドを監視カメラ1000に送信する。このコマンドを受信した監視カメラ1000は、このコマンドのレスポンスを返信する。
6054は、SetImagingSettingsのトランザクションである。このトランザクションにより、クライアント装置2000は、監視カメラ1000に対して新しいImagingSettingsを送信することで、ImagingSettingsの内容を変更することができる。
6055は、ImagingSetting変更通知イベントである。6054のコマンド処理後、監視カメラ1000は、ImagingSetting変更通知イベントをクライアント装置2000に送信することで、ImagingSettingsに何らかの変更があったことをクライアント装置2000に通知する。
続いて、図6は、本実施例に係る、ImagingSettings型の定義の一例を説明するための図である。なお、本実施例では、このImagingSetttings型を定義するために、ONVIF規格で用いられる、XML Schema Definition言語(以下、XSDと称することがある)を用いるものとする。
なお、本実施例では、図5における6052のレスポンス及び6054のコマンドのそれぞれは、図6に示したImagingSettgings型のデータを含むものとする。
図6(a)は、ImagingSettings型の内容を示す。図6(a)では、sequence指定子により、図6(a)の要素の順番が定義通りに出現することを指定している。
図6(a)において、BacklightCompensation(以下、BLCと称することがある)は、逆光補正をON及びOFFするためのパラメータである。このBLCは、XSDのminOccurs指定子により、省略されても良いようになっている。
Brightnessは、撮像部1004により撮像される画像の明るさを指定するためのパラメータである。このBrightnessは、XSDのminOccurs指定子により、省略されても良いようになっている。ColorSaturationは、撮像部1004により撮像される画像の明度を指定するためのパラメータである。このColorSaturationは、XSDのminOccurs指定子により、省略されても良いようになっている。
Contrastは、撮像部1004により撮像される画像の色の濃さを指定するためのパラメータである。このContrastは、XSDのminOccurs指定子により、省略されても良いようになっている。Exposureは、撮像部1004により撮像される画像の露出を変更するためのパラメータである。このExposureは、XSDのminOccurs指定子により、省略されても良いようになっている。
Focusは、撮像部1004のフォーカス設定を変更するためのパラメータである。このFocusは、XSDのminOccurs指定子により、省略されても良いようになっている。IrCutFilterは、撮像部1004に含まれる撮像光学系の光路に挿抜可能なIRCF(Infrared Cut Filter)の設定を変更するためのパラメータである。
なお、ここで、IRCFは、赤外線を遮断するためのフィルタ―である。また、IRCutFilterは、XSDのminOccurs指定子により、省略されても良いようになっている。
Sharpnessは、撮像部1004により撮像される画像のシャープネスの設定を変更するためのパラメータである。このSharpnessは、XSDのminOccurs指定子により、省略されても良いようになっている。
WideDynamicRangeは、WDR画像合成処理部1006によるWDR処理の設定を変更するためのパラメータである。このWideDynamicRangeの値には、ON及びOFFを設定することができる。また、このWideDynamicRangeは、XSDのminOccurs指定子により、省略されても良いようになっている。
なお、値がONに設定されたWideDynamicRangeは、監視カメラ1000にWDR処理をONさせることを示す。また、値がOFFに設定されたWideDynamicRangeは、監視カメラ1000にWDR処理をOFFさせることを示す。よって、本実施例におけるSetImagingSettingsのコマンドは、WDR画像合成処理部1006の動作を制御するための合成コマンドに相当する。
WhiteBalanceは、撮像部1004により撮像される画像のホワイトバランスを調整するためのパラメータである。このWhiteBalanceは、XSDのminOccurs指定子により、省略されても良いようになっている。また、Extentionは、図6(b)に展開される拡張されたパラメータを含む。このExtentionは、XSDのminOccurs指定子により、省略されても良いようになっている。
続いて、図6(b)乃至(e)は、いずれも図6(a)に示すImiagingSettingsに追加されるパラメータである。また、これらのパラメータは、図6(a)の各パラメータと同様に画像処理設定の一部である。
図6(b)におけるImageStabilizationは、撮像部1004により撮像される画像の防振機能を設定するためのパラメータである。なお、図6(b)では、sequence指定子により、図6(b)の要素の順番が定義通りに出現することを指定している。
図6(c)における、IrCutFilterAutoAdjustmentは、IRCFを挿入及び抜去それぞれの場合に用いられる情報(被写体の輝度や遅延時間)を設定するためのパラメータである。図6(c)では、sequence指定子により、図6(c)の要素の順番が定義通りに出現することを指定している。
なお、ImageStabilization及びIrCutFilterAutoAdjustmentのそれぞれは、XSDのminOccurs指定子により、省略されても良いようになっている。
図6(d)におけるDarkCompensationは、露出補正処理部1005により、撮像部1004で撮像される画像の暗部及び明部を検出し、暗部のみを明るく補正する暗部補正機能を設定するためのパラメータである。図6(d)では、sequence指定子により、図6(d)の要素の順番が定義通りに出現することを指定している。
なお、以下、DarkCompensationをDCと称することがある。また、このDarkCompensationは、XSDのminOccurs指定子により、省略されても良いようになっている。
このDCの値には、ON、OFF、及びAUTOを設定することができる。ここで、値がONに設定されたDCは、監視カメラ1000に暗部補正機能をONさせることを示す。また、値がOFFに設定されたDCは、監視カメラ1000に暗部補正機能をOFFさせることを示す。さらに、値がAUTOに設定されたDCは、監視カメラ1000に暗部補正機能のON及びOFFを自動で判断させることを示す。
よって、本実施例におけるSetImagingSettingsのコマンドは、露出補正処理部1005の動作を制御するための露出設定コマンドに相当する。
なお、本実施例における監視カメラ1000は、WDR及びBLCのそれぞれ値には、ON及びOFFのいずれか一方が設定可能である。(つまり、WDRの選択肢及びBLCの選択肢はともに、ON及びOFFである。)一方、DCの値には、ON、OFF、及びAUTOのうち、いずれか1つが設定可能である(つまり、DCの選択肢は、ON、OFF、及びAUTOである)。
従って、6053のGetOptionsのトランザクションでは、WDR、BLC、及びDCに関し、前述の選択肢が、設定可能パラメータとしてクライアント装置2000に返送されることとなる。
また、6054のSetImagingSettingsのトランザクションにおいて、値がONのWDRには、有効強度を指定するためのLevelパラメータを添えることができるが、本明細書では、このLevelに関する説明を省略する。同様に、このトランザクションにおいて、値がONのDCには、有効強度を指定するためのLevelパラメータを添えることができるが、本明細書では、このLevelに関する説明を書略する。
続いて、図7は、本実施例に係る監視カメラ1000における、6053のGetOptionsレスポンスをクライアント装置2000に送信するGetOptionsレスポンス送信処理を説明するためのフローチャートである。
なお、この処理は、制御部1001により実行される。また、この説明では、ImagingSettingsにおいて、WDR及びDCのパラメータにのみ言及し、その他のパラメータに言及することはない。
ステップS7000では、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がONであるか否かを判定する。さらに、制御部1001は、この画像処理設定におけるDCの値がOFFであるか否かを判定する。
そして、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がONであると判定し、且つこの画像処理設定におけるDCの値がOFFであると判定した場合には、ステップS7001に処理を進める。
一方、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がONではないと判定し、またはこの画像処理設定におけるDCの値がOFFではないと判定した場合には、ステップS7003に処理を進める。
なお、本実施例の制御部1001は、記憶部1002が記憶する現在の画像処理設定におけるWDR及びDCのそれぞれの値に基づき、露出補正処理部1005及びWDR画像合成処理部1006のいずれが動作させられているのかを判定する判定部に相当する。
ここで、記憶部1002が記憶する現在の画像処理設定におけるWDRの値がONであることは、WDR画像合成処理部1006が動作していることを示す。また、このWDRの値がOFFであることは、WDR画像合成処理部1006の動作が停止していることを示す。
また、記憶部1002が記憶する現在の画像処理設定におけるDCの値がONであることは、露出補正処理部1005が動作していることを示す。また、このDCの値がOFFであることは、露出補正処理部1005の動作が停止していることを示す。
ステップS7001では、制御部1001は、まず、GetOptionsレスポンスを生成する。次に、制御部1001は、値がON及びOFFであるWDR、並びに値がAUTO及びOFFであるDCを含むImagingSettingを、この生成されたGetOptionsレスポンスの引数として設定する。
ステップS7002では、制御部1001は、通信部1003に指示し、制御部1001により生成されたGetOptionsレスポンスを、クライアント装置2000にネットワークを介して送信させる。
なお、本実施例では、ステップS7002で送信されるGetOptionsレスポンスは、クライアント装置2000がWDR及びDCのそれぞれに指定可能な値を示す動作情報に相当する。
ステップS7003では、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がOFFであるか否かを判定する。さらに、制御部1001は、この画像処理設定におけるDCの値がONであるか否かを判定する。
そして、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がOFFであると判定し、且つこの画像処理設定におけるDCの値がONであると判定した場合には、ステップS7004に処理を進める。
さらに、制御部1001は、記憶部1002に記憶されている現在の画像処理設定におけるWDRの値がOFFではないと判定し、又はこの画像処理設定におけるDCの値がONではないと判定した場合には、ステップS7005に処理を進める。
ステップS7004では、制御部1001は、まず、GetOptionsレスポンスを生成する。次に、制御部1001は、値がOFFであるWDR、並びに値がON、AUTO及びOFFであるDCを含むImagingSettingsを、この生成されたGetOptionsの引数として設定する。
ステップS7005では、制御部1001は、まず、GetOptionsレスポンスを生成する。次に、制御部1001は、値がON及びOFFであるWDR、並びに値がON、AUTO、及びOFFであるDCを、この生成されたGetOptionsレスポンスの引数として設定する。
続いて、図8は、監視カメラ1000のImagingSettingsを設定するためのImagingSettings設定画面の一例を説明するための図である。この画面は、制御部2001により表示部2006に表示される。
図8において、ImagingSettings設定画面8000は、WideDynamicRange設定パラメータ入力エリア8010と、DarkCompensation設定パラメータ入力エリア8020と、を含む。また、ImagingSettings設定画面8000は、BacklightCompensation設定パラメータ入力エリア8030と、設定ボタン8040と、閉じるボタン8041と、を含む。
ここで、ユーザにより設定ボタン8040が押下された場合、クライアント装置2000は、ImagingSettings設定画面8000に設定された内容に応じたSetImagingSettingsのコマンドを監視カメラ1000に送信する。さらに、クライアント装置2000は、この送信とともに、ImagingSettings設定画面8000の表示を終了する。
なお、本実施例におけるImagingSettings設定画面8000は、SetImagingSettingsコマンドに含まれるWDR及びDCのそれぞれの値をユーザに指定させるためのユーザーインターフェースに相当する。
また、ユーザにより閉じるボタン8041が押下された場合、クライアント装置2000は、SetImagingSettingsのコマンドを監視カメラ1000に送信することなく、ImagingSettings設定画面の表示を終了する。
続いて、図9は、本実施例に係るクライアント装置2000における、SetImagingSettings設定画面表示処理を説明するためのフローチャートである。この処理は、監視カメラ1000からストリーミング配信される画像に対する画像処理設定をクライアント装置2000のユーザが変更する際に、クライアント装置2000にて実行される処理である。
なお、この処理は、制御部2001により実行される。また、この処理の結果、クライアント装置2000の表示部2006には、図8の画面が表示されることとなる。
また、図8の画面には、ImagingSettingsのうち、WDR、DC、及びBLCの値のみが設定可能に表示されているが、これに限られるものではない。例えば、図8の画面には、図6(a)乃至(e)に含まれる他のパラメータ(或いは全てのパラメータ)の値が設定可能に表示されていても良い。
図9におけるステップS9000では、制御部2001は、表示部2006に指示し、図8に示されるImagingSettings設定画面を表示させる。
ステップS9001では、制御部2001は、6052のトランザクションを実行することにより、監視カメラ1000からImagingSettingsのリストを取得する。
なお、この取得したリストに含まれるImagingSettingsの数は、監視カメラが備える撮像部の数と同等であることが通常である。本実施例における監視カメラ1000は、1つの撮像部1004を備えているので、ステップS9001で取得されたリストに含まれるImagingSettingsの数は、1つであるが、この限りではない。
例えば、監視カメラが複数の撮像部を備えているために、ステップS9001で取得されたリストに複数のImagingSettingsが含まれる場合も想定され得る。このような想定の場合は、これら複数のImagingSettingsの表示を切り替えるために、図8の画面内に複数のタブを設けても良い。
また、これら複数のImagingSettingsのそれぞれに図8の画面が表示されるように構成しても良い。例えば、ステップS9001で取得されたリストに2つのImagingSettingsが含まれている場合には、2つのImagingSettingsのそれぞれのために、図8の画面を2つ表示するように構成しても良い。
ステップS9002では、制御部2001は、6053のトランザクションを実行することにより、ImagingSettingsの各パラメータについて、監視カメラ1000が受け付け可能な選択肢を監視カメラ1000から取得する。
ステップS9003では、制御部2001は、図8の画面を表示部2006に表示させる。ここで、制御部2001は、ステップS9001で得られたImagingSettingsに含まれるWDR、DC、及びBLCの設定値に応じ、図8の画面における、それぞれの設定値に対応するラジオボタンを選択された状態にする。
さらに、制御部2001は、ステップS9002で得られた選択肢の内容に基づき、図8の画面におけるラジオボタンのうち、監視カメラ1000が受け付け可能な選択肢以外のラジオボタンは、ユーザが選択することができないように表示させる。
ステップS9004では、制御部2001は、図8の画面におけるいずれかのボタンが押下されるまで、又は、6055のImagingSettings設定変更イベントを監視カメラ1000から受信するまで、待機する。
そして、制御部2001は、設定ボタン8040が押下されたと判定した場合には、ステップS9005に処理を進める。また、制御部2001は、閉じるボタン8041が押下されたと判定した場合には、ステップS9006に処理を進める。そして、制御部2001は、通信部2003により6055のImagingSettings設定変更イベントが受信された場合には、制御部2001は、ステップS9001に処理を戻す。
ステップS9005では、制御部2001は、8010、8020、及び8030のそれぞれの入力エリアで選択されたラジオボタンに応じたパラメータを含むSetImaingSettingsコマンドを生成する。そして、制御部2001は、通信部2003に指示し、生成したSetImagingSettingコマンドを、監視カメラ1000に送信させる。
ステップS9006では、制御部2001は、表示部2006における図8の画面の表示を、終了させる。
以上のように、本実施例における監視カメラ1000は、露出補正処理部1005及びWDR画像合成処理部1006の両方を同時に動作させることができない。このため、それぞれの動作を指定するための選択肢のうち、監視カメラ1000が受け付けるとエラー応答を返してしまう選択肢は、それぞれの動作状況に応じて変化してしまう。
そこで、本実施例では、この動作状況に応じて適切に、それぞれの動作を指定するための選択肢のうち、監視カメラ1000がエラー応答することなく正常に受け付け可能な選択肢を、クライアント装置2000に送信するよう、監視カメラ1000を構成した。
これにより、露出補正処理部1005及びWDR画像合成処理部1006のそれぞれの動作を指定するための選択肢のうち、監視カメラ1000が受け付けるとエラー応答を返してしまう選択肢を、ユーザが指定してしまうことを防止することができる。この結果、ユーザの操作性を向上させることができる。
なお、本実施例では、ステップS7000にて、記憶部1002が記憶する現在の画像処理設定におけるWDRの値がONであるか否かを判定するよう、制御部1001を構成した。更に、本実施例では、ステップS7000にて、この画像処理設定におけるDCの値がOFFであるか否かを判定するよう、制御部1001を構成した。しかしながら、このような構成に限られるものではない。
例えば、ステップS7000にて、この画像処理設定におけるDCの値がOFFであるか否かを判定する代わりに、この画像処理設定におけるDCの値がAUTO又はOFFであるか否かを判定するよう、制御部1001を構成しても良い。
さらに、ステップS7000にて、この画像処理設定におけるWDRの値がONであると判定し、且つこの画像処理設定におけるDCの値がAUTO又はOFFであると判定した場合には、ステップS7001に処理を進めるよう、制御部1001を構成しても良い。
一方、ステップS7000にて、この画像処理設定におけるWDRの値がONではないと判定した場合、及び、この画像処理設定におけるDCの値がONである場合に、ステップS7003に処理を進めるよう、制御部1001を構成しても良い。
また、本実施例では、ステップS7003にて、記憶部1002が記憶する現在の画像処理設定におけるWDRの値がOFFであるか否かを判定するよう、制御部1001を構成した。更に、本実施例では、ステップS7003にて、この画像処理設定におけるDCの値がONであるか否かを判定するよう、制御部1001を構成した。しかしながら、このような構成に限られるものではない。
例えば、ここで、記憶部1002が記憶する現在の画像処理設定におけるWDRの値は、ON、OFF、及びAUTOの値をとり得るものと仮定する。このような仮定の下、ステップS7003にて、この画像処理設定におけるWDRの値がOFFであるか否かを判定する代わりに、この画像処理設定におけるWDRの値がAUTO又はOFFであるか否かを判定するよう、制御部1001を構成しても良い。
さらに、ステップS7000にて、この画像処理設定におけるDCの値がONであると判定し、且つこの画像処理設定におけるWDRの値がAUTO又はOFFであると判定した場合には、ステップS8001に処理を進めるよう、制御部1001を構成しても良い。
一方、ステップS7000にて、この画像処理設定におけるDCの値がONではないと判定した場合、及び、この画像処理設定におけるWDRの値がONである場合に、ステップS7005に処理を進めるよう、制御部1001を構成しても良い。
(実施例2)
続いて、図10を用い、本発明の実施例2について説明する。なお、上述の実施例と同一の構成要素には、同一の符号を付し、その説明を省略する。
ここで、上述の実施例1では、次のような監視カメラ1000について述べた。即ち、露出補正処理部1005及びWDR画像合成処理部1006のそれぞれの動作を指定するための選択肢のうち、監視カメラ1000が正常に受け付け可能な選択肢のみを、クライアント装置2000に送信する監視カメラ1000である。
具体的には、上述の実施例1における監視カメラ1000は、次のようなものである。即ち、記憶部1002が記憶する現在の画像処理設定におけるWDR及びDCの一方の値がONの場合は、GetOptionsレスポンスのImagingSettingsにおける他方の選択肢からONの値を外すことができる監視カメラ1000である。これにより、ユーザは、選択可能かつ適切な選択肢を提供され得る。
しかしながら、この他方の選択肢からONの値が外されるということは、クライアント装置2000を操作するユーザは、この他方の選択肢のうち、OFFに対応する選択肢を設定することが殆どである。このため、他方の選択肢をユーザに選択させることは、ユーザにとって煩雑であるとも考えられる。
そこで、実施例2で述べられることになる、監視カメラ1000からクライアント装置2000に送信されるGetOptionsレスポンスは、この他方の選択肢を含まないImagingSettingsが引数として設定されるものである。このような点を考慮した実施例2を以下に説明する。
ステップS8000では、制御部1001は、まず、GetOptionsレスポンスを生成する。次に、制御部1001は、値がON及びOFFであるWDRを含むImagingSettingsを、この生成されたGetOptionsの引数として設定する。この引数として設定されたImagingSettingsにおいて、DCのパラメータは、省略されている。
ステップS8001では、制御部1001は、まず、GetOptionsレスポンスを生成する。次に、制御部1001は、値がON、AUTO、及びOFFであるWDRを含むImagingSettingsを、この生成されたGetOptionsの引数として設定する。この引数として設定されたImagingSettingsにおいて、WDRのパラメータは、省略されている。
以上のように、本実施例における監視カメラ1000は、記憶部1002が記憶する現在の画像処理設定におけるWDR及びDCの一方の値がONの場合、次のようなGetOptionsレスポンスを、クライアント装置2000に送信する。即ち、他方の選択肢を含まないImagingSettingsが引数として設定されたGetOptionsレスポンスである。
これにより、露出補正処理部1005及びWDR画像合成処理部1006のそれぞれの動作を指定するための選択肢のうち、ユーザが殆ど選択することがない選択肢以外の選択肢を、クライアント装置2000は、監視カメラ1000から受信することになる。この結果、選択される必要が殆どない選択肢をユーザが選択してしまうことがなくなるので、ユーザの利便性を向上させることができる。
上述の実施例では、露出補正処理部1005による露出補正処理、及びWDR画像合成処理部1006によるWDR処理を排他的(択一的)に動作させる必要があるものとした。そして、この露出補正処理に対応するパラメータは、DarkCompensationであるものとして説明したが、この限りではない。
この露出補正処理に対応するパラメータは、例えば、BacklightCompensation、シャッター速度を示すExposure等、図6に示される他のImagingSettingsのパラメータであっても良い。
具体的には、図7及び図10で示したフローチャートにて、記憶部1002が記憶する画像処理設定におけるDCの値の代わりに、この画像処理設定に含まれるBacklightCompensationの値を用いるよう、制御部1001を構成しても良い。更に、このフローチャートにて、GetOptionsレスポンスの引数として設定されるImagingSettingsに含まれるDCの値の代わりに、BacklightCompensationの値を用いるよう、制御部1001を構成しても良い。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウエア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に提供し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。