以下、本発明をその好適な実施例に基づいて詳細に説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は、図示された構成に限定されるものではない。
(実施例1)
図1(A)は、本実施例に係る撮像システムのシステム構成の一例を示す図である。本実施例に係る撮像システムでは、撮像装置1000がネットワーク3020を介してクライアント3000に接続される。これにより、撮像装置1000は、クライアント3000と通信可能となる。そして、撮像装置1000は、撮像した撮像画像をネットワーク3020経由でクライアント3000に配信する。
ここで、クライアント3000は、外部装置の一例である。また、表示部3010は、図2(B)を用いて後述する。なお、本実施例における撮像装置1000は、動画像を撮像する監視カメラであり、より詳細には、監視に用いられるネットワークカメラであるものとする。また、本実施例における撮像装置1000は、壁面や天井に設置されるものとする。
ネットワーク3020は、例えばEthernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。本実施例においては、撮像装置1000とクライアント3000との間の通信を行うことができるものであれば、その通信規格、規模、構成を問わない。
例えば、ネットワーク3020は、インターネットや有線LAN(Local AreaNetwork)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されてもよい。なお、本実施例における撮像装置1000は、例えば、PoE(Power Over Ethernet(登録商標))に対応していても良く、LANケーブルを介して電力を供給されても良い。
クライアント3000は、撮像装置1000に対して命令を送信する。例えば、クライアント3000は、撮像装置1000の撮像方向又は画角を変更するための命令を送信する。また、撮像装置1000は、クライアント3000から受信した撮像方向を変更するための命令に応じて撮像方向を変更する。更に、撮像装置1000は、クライアント3000から受信した画角を変更するための命令に応じて画角を変更する。
更に、撮像装置1000は、撮像方向を変更する際の「速度」を指定するための命令をクライアント3000から受信する。そして、撮像装置1000は、この受信に応じ、撮像方向を変更する際の「速度」を変更する。その上、撮像装置1000は、撮像方向を変更する際の「加速度」を指定するための命令をクライアントから受信する。そして、撮像装置1000は、この受信に応じ、撮像方向を変更する際の「加速度」を変更する。
続いて、図1(B)は、本実施例に係る撮像装置1000が撮像方向又は画角を変更するための駆動機構の一例を示す図である。パン駆動機構1101は、撮像装置1000の撮像方向をパン方向に変更させる。また、チルト駆動機構1102は、撮像装置1000の撮像方向をチルト方向に変更する。さらに、ズーム機構1103は、撮像装置1000の画角を変更させる。
なお、本実施例において、パン駆動機構1101、チルト駆動機構1102及びズーム機構1103のそれぞれは、ステッピングモータ及びギヤ等から構成されているものとする。また、本実施例に於いて、パン駆動機構1101及びチルト駆動機構1102は、後述の撮像部1003を所定の方向に回転させる回転部に相当する。
続いて、図2(A)は、本実施例に係る撮像装置1000のハードウェア構成の一例を示す図である。図2(A)において、制御部1001は、撮像装置1000の全体の制御を行う。制御部1001は、例えばCPU(Central Processing Unit)により構成され、後述のメモリ1002に記憶されたプログラムを実行する。又は、制御部1001は、ハードウェアを用いて制御を行うこととしても良い。
メモリ1002は、制御部1001が実行するプログラム格納領域、プログラム実行中のワーク領域、後述する撮像部1003が生成する撮像画像の格納領域等、データの格納領域として使用される。また、メモリ1002は、撮像装置1000の撮像方向を表すために用いる座標系を保持する。更に、メモリ1002は、後述の通信部1004が受信した命令の実行を保留するための命令保留キューを保持する。
撮像部1003は、被写体の像を撮像して生成したアナログ信号をデジタルデータに変換する。また撮像部1003は、ADCT(Adaptive Discrete Cosine Transform、適応離散コサイン変換)等によりデータの圧縮処理を行って撮像画像を生成し、メモリ1002に出力する。撮像部1003は、撮像画像をメモリ1002に出力した後、制御部1001に画像取得イベントを送信する。
通信部1004は、各制御コマンドをクライアント3000から受信する。また、各制御コマンドをクライアント3000に送信する場合に使用される。
位置検出部1005は、パン駆動機構1101、チルト駆動機構1102、及びズーム機構1103の座標を検出する。撮像方向や画角の情報の要求がクライアント3000から撮像装置1000に送信された場合は、撮像装置1000は、それぞれの機構の座標を位置検出部1005で検出し、検出した座標を位置情報としてクライアント3000に送信する。
撮像制御部1006は、制御部1001の指示に従って、パン駆動機構1101、チルト駆動機構1102、及びズーム機構1103を制御する。すなわち、通信部1004がクライアント3000から撮像範囲の変更命令を受信すると、当該命令に応じた受信イベントが制御部1001に送信される。
制御部1001は、受信イベントを受信すると、当該受信イベントの内容に応じて撮像制御部1006に制御指示を行う。制御指示を受けた撮像制御部1006は、制御指示に応じてパン駆動機構1101、チルト駆動機構1102、又はズーム機構1103を駆動させるための制御を行う。
以上、撮像装置1000の内部構成について説明したが、図2(A)に示す処理ブロックは、本発明における撮像装置の好適な実施例を説明したものであり、この限りではない。音声入力部を備えるなど、本発明の要旨の範囲内で、種々の変形及び変更が可能である。
続いて、図2(B)は、本実施例に係るクライアント3000のハードウェア構成の一例を示す図である。本実施例におけるクライアント3000は、ネットワーク3020に接続されるコンピュータ装置として構成される。
制御部3001は、クライアント3000の全体の制御を行う。制御部3001は、例えばCPUにより構成され、後述のメモリ3002に記憶されたプログラムを実行する。又は、制御部3001は、ハードウェアを用いて制御を行うこととしてもよい。
メモリ3002は、制御部3001が実行するプログラム格納領域、プログラム実行中のワーク領域、データの格納領域として使用される。通信部3004は、撮像装置1000から送信された撮像画像を受信する。また、通信部3004は、撮像装置1000を制御するための命令や、撮像装置1000の情報を要求するための命令を送信する。
入力部3005は、ユーザからの指示の入力を受け付ける。例えば入力部3005は、ユーザからの指示として、撮像装置1000に対する各種の命令の送信指示の入力を受け付けることができる。
入力部3005は、ユーザから撮像装置1000に対する命令送信指示が入力されると、制御部3001に命令の入力があった旨を通知する。制御部3001は、入力部3005に入力された指示に応じて、撮像装置1000に対する命令を生成し、通信部3004を介して撮像装置1000に生成した命令を送信する送信制御を行う。
また、入力部3005は、制御部3001がメモリ3002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等に対するユーザの応答の入力を受け付けることができる。
表示部3010は、通信部3004が受信した撮像画像を表示する。また、表示部3010は、制御部3001がメモリ3002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等を表示させることができる。
続いて、図3は、撮像装置1000の撮像方向を変更する際の「加速度」を指定することができるか否かを問い合わせるための、クライアント3000と撮像装置1000との間のコマンドシーケンスを説明するための図である。この図を用い、クライアント3000が撮像装置1000に対して送信するコマンドリクエストと、それに対応して撮像装置1000がクライアント3000に対して送信するコマンドレスポンスについて説明する。
コマンドリクエストのそれぞれは、命令を実行させる対象である撮像装置1000の宛先を示す宛先アドレスの情報と、命令の送信元であるクライアント3000の送信元アドレスの情報と、を有する。
一方、コマンドレスポンスのそれぞれは、命令の結果を返信する対象であるクライアント3000の宛先を示す宛先アドレスの情報と、結果の送信元である撮像装置1000の送信元アドレスの情報と、を有する。更に各命令は、命令の内容と引数についての情報を有する。
なお、本実施例において、コマンドリクエスト及びコマンドレスポンスは、例えば、ONVIF規格に基づいて定められているものとして説明する。ONVIF規格では、XML SchemaDefinition言語(以下、XSDと称することがある)を用いてコマンドリクエスト及びコマンドレスポンスに使用されるデータの型定義が行われる。また、これらコマンドリクエスト及びコマンドレスポンスは、XMLを用いて記述される。
更に、本実施例の撮像装置1000は、このONVIF規格のNetwork Video Transmitter(以下、NVTと称することがある)として動作する。
図3におけるステップS300では、制御部3001は、通信部3004に指示し、「GetServiceCapabilitiesリクエスト」を撮像装置1000に向けて送信させる。この「GetServiceCapabilitiesリクエスト」は、撮像装置1000が提供する機能を問い合わせるためのコマンドである。
また、「GetServiceCapabilitiesリクエスト」を受信した撮像装置1000にて、制御部1001は、通信部1004に指示し、「GetServiceCapabilitiesレスポンス」をクライアント3000に向けて返信させる。この「GetServiceCapabilitiesレスポンス」は、本実施例の機能やコマンドに撮像装置1000が対応しているか否かを示すためのレスポンスである。
ステップS301では、制御部3001は、通信部3004に指示し、「GetConfigurationOptionsリクエスト」を撮像装置1000に向けて送信させる。この「GetConfigurationOptionsリクエスト」は、PTZ座標系の種類等を含むPTZ関連のパラメータを問い合わせるためのリクエストである。なお、図10は、GetConfigurationOptionsリクエストの一例である。
又、「GetConfigurationOptionsリクエスト」を受信した撮像装置1000にて、制御部1001は、通信部1004に指示し、「GetConfigurationOptionsレスポンス」をクライアント3000に向けて返信させる。このレスポンスは、パン相対/絶対座標系情報、チルト相対/絶対座標系情報、パンチルト速度相対/絶対情報、パンチルト加速度相対/絶対情報を含む。
なお、図11は、GetConfigurationOptionsレスポンスの一例である。
クライアント3000は、撮像装置1000の撮像方向を変更する際の「加速度」を指定することができるか否かを、撮像装置1000から受信した「GetConfigurationsOptionsレスポンス」に基づいて判定することができる。
例えば、撮像装置1000の撮像方向を変更する際の「速度」を指定することができ且つこの際の「加速度」を指定することができない場合を想定する。このような想定の場合には、「GetConfigurationOptionsレスポンス」は、<tptz2:PanTiltSpeedSpace>タグを含む。ただし、このレスポンスは、<tptz2:PanTiltAccelarationSpace>タグを含まない。
ここで、<tptz2:PanTiltSpeedSpace>タグは、<tptz2:Spaces>タグに対応付けられている。また、<tptz2:PanTiltSpeedSpace>タグは、撮像装置1000の撮像方向を変更する際の速度を示すデータが対応付けられている。
また、例えば、撮像装置1000の撮像方向を変更する際の「速度」を指定することができ且つこの際の「加速度」を指定することができる場合を想定する。このような想定の場合には、「GetConfigurationOptionsレスポンス」は、次のようなタグを含む。即ち、<tptz2:PanTiltSpeedSpace>タグ及び<tptz2:PanTiltAccelarationSpace>タグである。
なお、本実施例における<tptz2:PanTiltAccelarationSpace>タグは、加速度情報に相当する。
従って、制御部3001は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:PanTiltAccelarationSpace>タグが含まれているか否かを判定する。
そして、制御部3001は、この<tptz2:PanTiltAccelarationSpace>タグが含まれていると判定した場合には、撮像装置1000の撮像方向を変更する際の「加速度」を指定することができると判定する。一方、制御部3001は、この<tptz2:PanTiltAccelarationSpace>タグが含まれていないと判定した場合には、撮像装置1000の撮像方向を変更する際の「加速度」を指定することができないと判定する。
同様に、制御部3001は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:PanTiltSpeedSpace>タグが含まれているか否かを判定する。
そして、制御部3001は、この<tptz2:PanTiltSpeedSpace>タグが含まれていると判定した場合には、撮像装置1000の撮像方向を変更する際の「速度」を指定することができると判定する。一方、この<tptz2:PanTiltSpeedSpace>タグが含まれていないと判定した場合には、撮像装置1000の撮像方向を変更する際の「速度」を指定することができないと判定する。
以上のような「GetConfigurationOptionsレスポンス」の差異から、クライアント3000は、撮像装置1000の撮像方向を変更する際の「加速度」を指定することができるのか否かを判定することができる。
同様に、クライアント3000は、撮像装置1000の画角を変更する際の「加速度」を指定することができるか否かを、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に基づいて判定することができる。
例えば、撮像装置1000の画角を変更する際の「速度」を指定することができ且つこの際の「加速度」を指定することができない場合を想定する。このような想定の場合には、「GetConfigurationOptionsレスポンス」は、<tptz2:ZoomSpeedSpace>タグを含む。ただし、このレスポンスは、<tptz2:ZoomAccelarationSpace>タグを含まない。
ここで、<tptz2:ZoomSpeedSpace>タグは、<tptz2:Spaces>タグに対応付けられている。また、<tptz2:PanTiltSpeedSpace>タグは、撮像装置1000の画角を変更する際の速度を示すデータが対応付けられている。
また、例えば、撮像装置1000の画角を変更する際の「速度」を指定することができ且つこの際の「加速度」を指定することができる場合には、「GetConfigurationOptionsレスポンス」は、次のようなタグを含む。即ち、<tptz2:ZoomSpeedSpace>タグ及び<tptz2:ZoomAccelarationSpace>タグである。
従って、制御部3001は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:ZoomSpeedSpace>タグが含まれているか否かを判定する。
そして、制御部3001は、この<tptz2:ZoomSpeedSpace>タグが含まれていると判定した場合には、撮像装置1000の画角を変更する際の「速度」を指定することができると判定する。一方、制御部3001は、この<tptz2:ZoomSpeedSpace>タグが含まれていないと判定した場合には、撮像装置1000の画角を変更する際の「速度」を指定することができないと判定する。
同様に、制御部3001は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:ZoomAccelarationSpace>タグが含まれているか否かを判定する。
そして、制御部3001は、この<tptz2:ZoomAccelarationSpace>タグが含まれていると判定した場合には、撮像装置1000の画角を変更する際の「加速度」を指定することができると判定する。
一方、制御部3001は、この<tptz2:ZoomAccelarationSpace>タグが含まれていないと判定した場合には、撮像装置1000の画角を変更する際の「加速度」を指定することができないと判定する。
このように、本実施例における「GetConfigurationOptionsレスポンス」は、撮像装置1000の撮像方向及び画角を変更する際の速度及び加速度を別々に指定することができるのか否かを示す情報に相当する。
続いて、図4は、撮像装置1000の撮像方向を変更する際の「速度」及びこの際の「加速度」を指定するための、クライアント3000と撮像装置1000との間のコマンドシーケンスを説明するための図である。なお、図4におけるステップS300は、図3におけるステップS300と同様であるので、その説明を省略する。また、図4におけるステップS301は、図3におけるステップS301と同様であるので、その説明を省略する。
ステップS402では、制御部3001は、通信部3004に指示し、「SetConfigurationリクエスト」を撮像装置1000に向けて送信させる。このリクエストは、例えば、撮像装置1000の撮像方向を変更する際の「速度」及びこの際の「加速度」が含まれている。
なお、図12は、SetConfigurationリクエストの一例である。また、本実施例におけるSetConfigurationリクエストは、パン駆動機構1101等の回転部を制御するための制御命令に相当する。
この「SetConfigurationリクエスト」を受信した撮像装置1000にて、制御部1001は、通信部1004に指示し、「SetConfigurationレスポンス」をクライアント3000に向けて送信させる。なお、図13は、SetConfigurationレスポンスの一例である。
ステップS403では、制御部3001は、通信部3004に指示し、例えば、「AbsoluteMoveリクエスト」を撮像装置1000に向けて送信させる。
この「AbsoluteMoveリクエスト」を受信した撮像装置1000にて、制御部1001は、通信部1004に指示し、「AbsoluteMoveレスポンス」をクライアント3000に返信する。
なお、「AbsoluteMoveリクエスト」とは、パン方向及びチルト方向の絶対位置、並びにズームの絶対位置を指定することにより、撮像装置1000の撮像方向及び画角を変更させる命令である。また、「AbsoluteMoveレスポンス」は、この「AbsoluteMoveリクエスト」のレスポンスである。
また、本実施例における「GetConfigurationOptionsレスポンス」は、制御部1001により用いられる「SetConfigurationリクエスト」に関する指定情報に相当する。
続いて、図6は、クライアント3000が撮像装置1000を制御するための処理であって、撮像装置1000の撮像方向及び画角を変更するための処理の一例を示すフローチャートである。
なお、本処理は、制御部3001により実行されるものとする。また、本実施例では、本処理が開始される前の、撮像装置1000の撮像方向及び画角を変更する際のデフォルトの「速度」は、V0であり、この際のデフォルトの「加速度」は、α0であるものとする。
図6におけるステップS600では、制御部3001は、撮像装置1000の撮像方向及び画角を変更する際の「加速度」を指定することができるか否かを判定する。
そして、制御部3001は、撮像装置1000の撮像方向及び画角を変更する際の「加速度」を指定することができると判定した場合には、ステップS601に処理を進める。一方、制御部3001は、撮像装置1000の撮像方向及び画角を変更する際の「加速度」を指定することができないと判定した場合には、ステップS605に処理を進める。
ステップS601では、制御部3001は、通信部3004に指示し、「SetConfigurationリクエスト」を撮像装置1000に向けて送信させる。このリクエストに含まれる<DefaultPTZSpeed>タグは、撮像装置1000の撮像方向及び画角を変更させる際のデフォルトの「速度」が対応付けられている。
また、<DefaultPTZAccelaration>タグは、撮像装置1000の撮像方向及び画角を変更させる際のデフォルトの「加速度」が対応付けられている。具体的には、このデフォルトの「速度」は、V1であり、このデフォルトの「加速度」は、α1である。
ステップS601で送信された「SetConfigurationリクエスト」を受信した撮像装置1000にて、制御部1001は、撮像装置1000の撮像方向を変更させる際の「速度」をV1に変更する。その上、制御部1001は、撮像装置1000の画角を変更させる際の「加速度」をα1に変更する。
ステップS602では、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」がユーザにより設定されているか否かを判定する。
そして、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」が設定されていると判定した場合には、ステップS603に処理を進める。一方、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」が設定されていないと判定した場合には、ステップS604に処理を進める。
ステップS603では、制御部3001は、通信部3004に指示し、「AbsoluteMoveリクエスト」を撮像装置1000に向けて送信させる。このリクエストに含まれる<PTZSpeed>タグは、ステップS602で設定された速度が対応づけられている。
なお、ステップS603で送信された「AbsoluteMoveリクエスト」を受信した撮像装置1000は、この撮像装置1000の撮像方向及び画角を、ステップS602で設定された速度、及びデフォルトの加速度で変更する。具体的には、この設定された速度は、V2であり、このデフォルトの加速度は、α1である。
ステップS604では、制御部3001は、通信部3004に指示し、「AbsoluteMoveリクエスト」を撮像装置1000に向けて送信させる。このリクエストは、<PTZSpeed>タグに対応するデータが省略されているものとする。
なお、<PTZSpeed>タグに対応するデータが省略された「AbsoluteMoveリクエスト」を受信した撮像装置1000は、この撮像装置1000の撮像方向及び画角をデフォルトの速度及び加速度で変更する。具体的には、このデフォルトの速度は、V1であり、このデフォルトの加速度は、α1である。
ステップS605では、制御部3001は、通信部3004に指示し、「SetConfigurationリクエスト」を撮像装置1000に向けて送信させる。このリクエストに含まれる<DefaultPTZSpeed>タグは、撮像装置1000の撮像方向及び画角を変更させる際のデフォルトの「速度」が対応付けられている。このデフォルトの「速度」は、V1である。
ステップS606では、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」がユーザにより設定されているか否かを判定する。
そして、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」が設定されていると判定した場合には、ステップS607に処理を進める。一方、制御部3001は、撮像装置1000の撮像方向及び画角を変更させる際の「速度」が設定されていないと判定した場合には、ステップS608に処理を進める。
ステップS607では、制御部3001は、通信部3004に指示し、「AbsoluteMoveリクエスト」を撮像装置1000に向けて送信させる。このリクエストに含まれる<PTZSpeed>タグは、ステップS607で設定された速度が対応付けられている。
なお、ステップS607で送信された「AbsoluteMoveリクエスト」を受信した撮像装置1000は、この撮像装置1000の撮像方向及び画角を、ステップS607で設定された速度、及びデフォルトの加速度で変更する。具体的には、この設定された速度は、V2であり、このデフォルトの加速度は、α0である。
ステップS608では、制御部3001は、通信部3004に指示し、「AbsoluteMoveリクエスト」を撮像装置1000に向けて送信させる。このリクエストは、<PTZSpeed>タグに対応するデータが省略されているものとする。この<PTZSpeed>タグは、撮像装置1000の撮像方向及び画角を変更する際の「速度」を指定するためのものである。
なお、<PTZSpeed>タグに対応するデータが省略された「AbsoluteMoveリクエスト」を受信した撮像装置1000は、この撮像装置1000の撮像方向及び画角をデフォルトの速度及び加速度で変更する。具体的には、このデフォルトの速度は、V1であり、このデフォルトの加速度は、α0である。
続いて、図7は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に応じて適切に、撮像装置1000の撮像方向を変更する際の「加速度」を設定することができる入力画面の一例を説明するための図である。
ここで、図7(A)は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:PanTiltAccelarationSpace>タグが含まれる場合における、入力画面の一例を示した図である。
また、図7(B)は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に<tptz2:ZoomAccelarationSpace>タグが含まれていない場合における、入力画面の一例を示した図である。
より詳細には、制御部3001は、撮像装置1000から受信した「GetConfigurationOptionsレスポンス」に次の2つのタグが含まれているか否かを判定する。即ち、<tptz2:PanTiltSpeedSpace>タグ及び<tptz2:ZoomSpeedSpace>タグである。
なおかつ、制御部3001は、この「GetConfigurationOptionsレスポンス」に<tptz2:PanTiltAccelarationSpace>タグが含まれるか否かを判定する。
そして、制御部3001は、この「GetConfigurationOptionsレスポンス」に次の3つのタグが含まれていると判定した場合には、図7(A)の入力画面を表示部3010に表示させる。即ち、<tptz2:PanTiltSpeedSpace>タグ、<tptz2:ZoomSpeedSpace>タグ、<tptz2:PanTiltAccelarationSpace>タグである。
一方、制御部3001は、このレスポンスに<tptz2:PanTiltAccelarationSpace>タグが含まれておらず且つ次の2つのタグが含まれていると判定した場合には、図7(B)の入力画面を表示部3010に表示させる。即ち、<tptz2:PanTiltSpeedSpace>タグ、<tptz2:ZoomSpeedSpace>タグである。
図7(A)におけるウインドウ700には、撮像装置1000の画角を変更する際の「速度」をユーザに入力させるためのズーム速度入力部7001が表示される。また、撮像部1003をパン方向に回転させる際の「速度」をユーザに設定させるためのPAN速度入力部7002が表示される。更に、ウインドウ700には、撮像部1003をチルト方向に回転させる際の「速度」をユーザに入力させるためのTILT速度入力部7003が表示される。
表示エリア701には、撮像部1003をパン方向に回転させる際の「加速度」をユーザに入力させるPAN加速度入力部7011が表示される。また、表示エリア701には、撮像部1003をチルト方向に回転させる際の「加速度」をユーザに入力させるTILT加速度入力部7012が表示される。
図7(B)におけるウインドウ700には、ズーム速度入力部7001、PAN速度入力部7002、及びTILT速度入力部7003が表示される。一方、ウインドウ700には、PAN加速度入力部7011及びTILT加速度入力部7012が表示されない。
なお、図7では、撮像装置1000の撮像方向を変更する際の「加速度」を設定する場合について説明したが、撮像装置1000の画角を変更する際の「加速度」を設定する場合も同様である。
続いて、図8は、撮像部1003をパン方向に回転させる速度の変化の一例を説明するための図である。この図で示された速度の変化は、次のような時間に応じたものである。即ち、AbsoluteMoveコマンドを受信した撮像装置1000が、撮像装置1000の撮像方向の移動を開始させ、この撮像方向を所定の方向に到達させ、この移動を停止するまでの時間である。
図8における破線801は、撮像部1003をパン方向に回転させる速度の変化を示している。例えば、破線801は、時刻t0から時刻t1までの間、この速度を速度V0まで加速度α0で加速する様子を示している。次に、破線801は、時刻t1から時刻t2までの間、撮像部1003をパン方向に回転させる速度が速度V0である様子を示している。
そして、破線801は、撮像部1003が停止位置に近づき、時刻t2から時刻t3までの間、撮像部1003をパン方向に回転させる速度が加速度−α0で減速され、この撮像部1003がこの停止位置に到達した時にこの速度が0になる様子を示している。
また、実線802も、撮像部1003をパン方向に回転させる速度の変化を示している。例えば、実線802は、時刻t0から時刻t4までの間、この速度を速度V0まで加速度α1で加速する様子を示している。なお、加速度α1は、加速度α0よりも大きい。次に、実線802は、時刻t4から時刻t2までの間、撮像部1003をパン方向に回転させる速度が速度V0である様子を示している。
そして、実線802は、撮像部1003が停止位置に近づき、時刻t2から時刻t5までの間、撮像部1003をパン方向に回転させる速度が加速度−α1で減速され、この撮像部1003がこの停止位置に到達した時にこの速度が0になる様子を示している。
図8で示したように、実線802で示された速度は、破線801で示された速度よりも早く速度V0に到達する。また、撮像部1003をパン方向に回転させる速度を減速する場合に関し、実線802で示された速度は、破線801で示された速度と同じタイミングで減速を開始するが、実線802で示された速度は、破線801で示された速度よりも早く速度0に到達する。
続いて、図9は、ステップS402で示した「SetConfigurationリクエスト」が含む加速度と、撮像装置1000の撮像方向を変更する際の「加速度」との対応関係の一例を説明するための図である。図9では、この「SetConfigurationリクエスト」が含む加速度は、「正規化加速度」と示されている。また、図9では、撮像装置1000の撮像方向を変更する際の加速度は、「実加速度」と示されている。
なお、この「SetConfigurationリクエスト」が含む加速度の値の範囲は、0.0〜1.0に制限されており、この値の単位は無い。また、撮像装置1000の撮像方向を変更する際の加速度の単位は、「m/s2」である。
図9で示される場合、撮像装置1000は、撮像装置1000の撮像方向を、次のように変更する。例えば、加速度の値が「0.1」の「SetConfigurationリクエスト」を受信した撮像装置1000にて、制御部1001は、撮像装置1000の撮像方向を「0.18m/s2」の加速度で変更する。
また、例えば、加速度の値が「0.5」の「SetConfigurationリクエスト」を受信した撮像装置1000にて、制御部1001は、撮像装置1000の撮像方向を「0.9m/s2」の加速度で変更する。そして、例えば、加速度の値が「1」の「SetConfigurationリクエスト」を受信した撮像装置1000にて、制御部1001は、撮像装置1000の撮像方向を「1.8m/s2」の加速度で変更する。
なお、図9で示すテーブルは、メモリ1002に記憶されているものとする。
続いて、図10は、GetConfigurationOptionsリクエストの一例である。図10において、<GetConfigurationOptions>タグには、<ConfigurationToken>タグが対応付けられている。また、図10において、<ConfigurationToken>タグには、0が対応付けられている。
なお、<ConfigurationToken>タグは、撮像装置1000の撮像方向及び画角に関連する複数パラメータを識別するための識別子が対応付けられる。
続いて、図11は、GetConfigurationOptionsレスポンスの一例である。図11に示したGetConfigurationOptionsは、<tptz1:PTZConfigurationOptions>タグが対応付けられている。
この<tptz1:PTZConfigurationOptions>タグには、<tptz2:Spaces>タグ、<tptz2:PTZTimeout>タグ、<tptz2:PTControlDirection>タグが対応付けられている。
ここで、<tptz2:Spaces>タグは、撮像装置1000が対応している座標系の一覧が対応付けられている。なお、これら座標系には、これら座標系の範囲の制限を示す情報も含まれる。本実施例では、<tptz2:Spaces>タグには、<AbsolutePanTiltPositionSpace>タグ、<AbsoluteZoomPositionSpace>タグが対応付けられている。
次に、<tptz2:Spaces>タグには、<tptz2:PanTiltSpeedSpace>タグ、<tptz2:ZoomSpeedSpace>タグ、<tptz2:PanTiltAccelarationSpace>タグが対応付けられている。また、<tptz2:Spaces>タグには、<tptz2:ZoomAccelarationSpace>タグが対応付けられている。
<AbsolutePanTiltPositionSpace>タグは、絶対パンチルト位置の座標系が対応付けられている。本実施例の<AbsolutePanTiltPositionSpace>タグには、<tptz2:URI>タグ、<tptz2:XRange>タグ、及び<tptz2:YRange>タグが対応付けられている。
<tptz2:URI>タグには、座標系のURIが対応付けられる。この<tptz2:URI>タグには、PositionGenericSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された位置空間を示している。また、<tptz2:XRange>タグには、X軸の範囲、換言すれば、パン方向における位置の範囲が対応付けられる。
この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、−1.000000が対応付けられている。また、この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が−1.000000から1.000000までに制限されていることを示す。
同様に、<tptz2:YRange>タグには、Y軸の範囲、換言すれば、チルト方向における位置の範囲が対応付けられる。この<tptz2:YRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、−1.000000が対応付けられている。また、この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:YRange>タグは、Y軸の範囲が−1.000000から1.000000までに制限されていることを示す。
<AbsoluteZoomPositionSpace>タグには、<tptz2:URI>タグ、及び<tptz2:XRange>タグが対応付けられている。この<tptz2:URI>タグには、PositionGenericSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された位置空間を示している。
<tptz2:XRange>タグには、X軸の範囲、換言すれば、ズーム位置の範囲が対応付けられる。この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、−1.000000が対応付けられている。また、この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が−1.000000から1.000000までに制限されていることを示す。
<tptz2:PanTiltSpeedSpace>タグには、<tptz2:URI>タグ、及び<tptz2:XRange>タグが対応付けられている。この<tptz2:URI>タグには、GenericSpeedSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された速度空間を示している。
この<tptz2:XRange>タグには、X軸の範囲、換言すれば、パン方向及びチルト方向の回転速度の範囲が対応付けられる。この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、0.000000が対応付けられている。また、この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が0.000000から1.000000までに制限されていることを示す。
<tptz2:ZoomSpeedSpace>タグには、<tptz2:URI>タグ、及び<tptz2:XRange>タグが対応付けられている。この<tptz2:URI>タグには、GenericSpeedSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された速度空間を示している。
この<tptz2:XRange>タグには、X軸の範囲、換言すれば、ズーム速度の範囲が対応付けられる。この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、0.000000が対応付けられている。また、この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が0.000000から1.000000までに制限されていることを示す。
<tptz2:PanTiltAccelarationSpace>タグには、<tptz2:URI>タグ、及び<tptz2:XRange>タグが対応付けられている。この<tptz2:URI>タグには、GenericAccelarationSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された加速度空間を示している。
この<tptz2:XRange>タグには、X軸の範囲、換言すれば、パン方向及びチルト方向の回転の加速度の範囲が対応付けられる。この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、0.000000が対応付けられている。この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が0.000000から1.000000までに制限されていることを示す。
<tptz2:ZoomAccelarationSpace>タグには、<tptz2:URI>タグ、及び<tptz2:XRange>タグが対応付けられている。この<tptz2:URI>タグには、GenericAccelarationSpaceが対応付けられている。つまり、この<tptz2:URI>タグは、正規化された加速度空間を示している。
この<tptz2:XRange>タグには、X軸の範囲、換言すれば、ズームの加速度の範囲が対応付けられる。この<tptz2:XRange>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。この<tptz2:Min>タグには、0.000000が対応付けられている。この<tptz2:Max>タグには、1.000000が対応付けられている。
つまり、この<tptz2:XRange>タグは、X軸の範囲が0.000000から1.000000までに制限されていることを示す。
<tptz2:PTZTimeOut>タグには、撮像装置1000が連続パンチルトズーム駆動に対応している場合に、タイムアウト時間の範囲が対応付けられている。このタイムアウト時間が経過した後、連続パンチルトズーム駆動は停止する。この<tptz2:PTZTimeOut>タグには、<tptz2:Min>タグ、及び<tptz2:Max>タグが対応付けられている。
この<tptz2:Min>タグには、PT1Sが対応付けられている。また、<tptz2:Max>タグには、PT04M32Sが対応付けられている。つまり、本実施例におけるタイムアウト時間の範囲は、1秒から4分32秒までとなる。
<tptz2:PTControlDirection>タグには、撮像装置1000のパンチルト制御方向の情報が対応付けられている。この<tptz2:PTControlDirection>タグには、<tptz2:Reverse>タグが対応付けられている。この<tptz2:Reverse>タグは、パンチルト制御方向を反転させるか否かを示す。
この<tpt2:Reverse>タグには、2つの<tptz2:Mode>タグが対応付けられている。1つ目の<tptz2:Mode>タグには、OFFが対応付けられている。一方、2つ目の<tptz2:Mode>タグには、ONが対応付けられている。
これにより、SetConfigurationリクエストにおいて、<Reverse>タグに対応付けられた<Mode>には、OFF又はONが対応付けられることを意味する。なお、1つ目の<tptz2:Mode>タグは、パンチルト制御方向を反転させないことを意味する。また、2つ目の<tptz2:Mode>タグは、パンチルト制御方向を反転させることを意味する。
続いて、図12は、SetConfigurationリクエストの一例である。図12に示したSetConfigurationリクエストは、<SetConfiguration>タグを含む。また、この<SetConfiguration>タグは、<PTZConfiguration>タグを含む。
この<PTZConfiguration>タグには、<Name>タグ、<UseCount>タグ、<NodeToken>タグ、及び<DefaultAbsolutePanTiltPositionSpace>タグが対応付けられ。また、<PTZConfiguration>タグには、<DefaultAbsoluteZoomPositionSpace>タグが対応付けられる。
更に、<PTZConfiguration>タグには、<DefaultRelativePanTiltTranslationSpace>タグ、<DefaultRelativeZoomTranslationSpace>タグが対応付けられる。また、<PTZConfiguration>タグには、<DefaultContinuousPanTiltVelocitySpace>タグが対応付けられる。
そして、<PTZConfiguraion>タグには、<DefaultPTZSpeed>タグ、<DefaultPTZAccelaration>タグ、<DefaultPTZTimeout>タグ、<Extention>タグが対応付けられる。
本実施例では、<Name>タグには、ptzが対応付けられている。このptzは、ユーザにより付与された名称である。また、<UseCount>タグには、1が対応付けられている。<UseCount>タグに対応付けられた値は、<PTZConfiguration>が関連付けられたMediaProfileの数を示す。
つまり、本実施例の<PTZConfiguration>タグは、1つのMediaProfileに関連付けられている。なお、MediaProfileとは、撮像装置1000が送信可能な映像の形式(符号化方式等)を示す情報である。
<NodeToken>には、PTZNodeを識別するための識別子が対応付けられる。本実施例の<NodeToken>には、0が対応付けられている。なお、PTZNodeは、例えば、パン駆動機構1101、チルト駆動機構1102、及びズーム機構1103それぞれの可動範囲等を示す情報である。
<DefaultAbsolutePanTiltPositionSpace>タグには、撮像装置1000が絶対パンチルト駆動に対応している場合に、デフォルトの絶対パンチルト位置空間が対応付けられる。本実施例の<DefaultAbsolutePanTiltPositionSpace>タグには、PositionGenericSpaceが対応付けられている。
つまり、本実施例では、デフォルトの絶対パンチルト位置空間は、正規化された位置空間である。
<DefaultAbsoluteZoomPositionSpace>タグには、撮像装置1000が絶対ズーム駆動に対応している場合に、デフォルトの絶対ズーム位置空間が対応付けられている。本実施例の<DefaultAbsoluteZoomPositionSpace>タグには、PositionGenericSpaceが対応付けられている。
つまり、本実施例では、デフォルトの絶対ズーム位置空間は、正規化された位置空間である。
<DefaultRelativePanTiltTranslationSpace>タグには、撮像装置1000が相対パンチルト駆動に対応している場合に、デフォルトの相対パンチルト移動空間が対応付けられている。本実施例の<DefaultRelativePanTiltTranslationSpace>タグには、TranslationGenericSpaceが対応付けられている。
つまり、本実施例では、デフォルトの相対パンチルト移動空間は、正規化された移動空間である。
<DefaultRelativeZoomTranslationSpace>タグには、撮像装置1000が相対ズーム駆動に対応している場合に、デフォルトの相対ズーム移動空間が対応付けられている。本実施例の<DefaultRelativeZoomTranslationSpace>タグには、TranslationGenericSpaceが対応付けられている。
つまり、本実施例では、デフォルトの相対ズーム移動空間は、正規化された移動空間である。
<DefaultContinuoutPanTiltVelocitySpace>タグには、撮像装置1000が連続パンチルト駆動に対応している場合に、デフォルトの連続パンチルト速度空間が対応付けられている。本実施例の<DefaultContinuoutPanTiltVelocitySpace>には、VelocityGenericSpaceが対応付けられている。
つまり本実施例では、デフォルトの連続パンチルト速度空間は、正規化された速度空間である。
<DefaultContinuoutZoomVelocitySpace>タグには、撮像装置1000が連続ズーム駆動に対応している場合に、デフォルトの連続ズーム速度空間が対応付けられている。本実施例の<DefaultContinuoutZoomVelocitySpace>タグには、VelocityGenericSpaceが対応付けられている。
つまり本実施例では、デフォルトの連続ズーム速度空間は、正規化された速度空間である。
<DefaultPTZSpeed>タグには、撮像装置1000が絶対パンチルトズーム駆動又は相対パンチルトズーム駆動に対応している場合に、デフォルトのパンチルトズームの速度が対応付けられている。本実施例の<DefaultPTZSpeed>タグには、正規化された速度空間において、デフォルトのパンの速度として1、デフォルトのチルトの速度として1、デフォルトのズームの速度として1が対応付けられている。
<DefaultPTZAccelaration>タグには、撮像装置1000が絶対パンチルトズーム駆動又は相対パンチルトズーム駆動に対応している場合に、デフォルトのパンチルトズームの加速度が対応付けられている。
本実施例の<DefaultPTZAccelaration>タグには、正規化された加速度空間において、デフォルトのパンの加速度として1が、デフォルトのチルトの加速度として1が、デフォルトのズームの加速度として1が対応付けられている。
<DefaultPTZTimeout>タグには、撮像装置1000が連続パンチルトズーム駆動に対応している場合に、デフォルトのタイムアウト時間が対応付けられている。このタイムアウト時間が経過した後、連続パンチルトズーム駆動は停止する。本実施例の<DefaultPTZTimeout>タグには、PT8Sが対応付けられている。
つまり、本実施例の撮像装置1000は、連続パンチルトズーム駆動を開始してから8秒後、この駆動を停止する。
拡張用の<Extension>タグには、<PTControlDirection>タグが対応付けられている。この<PTControlDirection>タグは、<Reverse>タグが対応付けられている。この<Reverse>タグには、<Mode>タグが対応付けられている。この<Mode>タグには、OFFが対応付けられている。
<ForcePersistent>タグには、falseが対応付けられている。
続いて、図13は、SetConfigurationレスポンスの一例である。図13に示したSetConfigurationレスポンスは、<tptz1:SetConfigurationResponse>タグを含む。
なお、図13のように、値が対応付けられていない<tptz1:SetConfigurationResponse>タグは、クライアント3000から送信されたSetConfigurationリクエストの処理に撮像装置1000が成功したことを示す。
一方、エラーを示す値が対応付けられた<tptz1:SetConfigurationResponse>タグは、クライアント3000から送信されたSetConfigurationリクエストの処理に撮像装置1000が失敗したことを示す。
なお、本実施例では、撮像装置1000の撮像方向及び画角を変更させる命令として「AbsoluteMoveリクエスト」を用いたが、これに限られるものではない。例えば、「GotoHomePositionリクエスト」でも良い。なお、「GotoHomePositionリクエスト」とは、撮像装置1000の撮像方向及び画角をホームポジション(予め登録された位置)に変更させる命令である。
また、本実施例では、撮像装置1000の撮像方向及び画角を変更する際の加速度を次のように求めるように、制御部1001を構成した。即ち、「SetConfigurationリクエスト」が含む<DefaultPTZAccelaration>タグの加速度に図9のテーブル上で対応付けられた加速度を、メモリ1002から読み出すことである。しかしながら、このような構成に限られるものではない。
例えば、撮像装置1000の撮像方向及び画角を変更する際の加速度を次のように算出するよう、制御部1001を構成しても良い。即ち、メモリ1002に予め格納されている所定の値を、「SetConfigurationリクエスト」が含む<DefaultPTZAccelaration>タグに対応付けられた加速度に加算することである。
(実施例2)
続いて、実施例2では、撮像装置1000に指示し、撮像部1003を複数の撮像位置に巡回させる、所謂プリセット巡回をさせる場合について説明する。なお、本実施例における撮像位置は、撮像部1003のパン方向における位置、撮像部1003のチルト方向における位置、及び撮像装置1000の画角に相当する。また、上述の実施例と同一の要素には、同一の符号を付し、その説明を省略する。
続いて、図5は、撮像装置1000の撮像方向及び画角を変更する際の「速度」及びこの際の「加速度」を指定してプリセット巡回をさせるための、クライアント3000と撮像装置1000との間のコマンドシーケンスを説明するための図である。
なお、図5におけるステップS300は、図3におけるステップS300と同様であるので、その説明を省略する。また、図5におけるステップS301は、図3におけるステップS301と同様であるので、その説明を省略する。そして、図5におけるステップS402は、図4におけるステップS402と同様であるので、その説明を省略する。
ステップS503では、制御部3001は、通信部3004に指示し、「PresetTourリクエスト」を撮像装置1000に向けて送信させる。この「PresetTourリクエスト」は、撮像部1003を予め設定された複数の撮像位置に所定の順序で巡回させるように、撮像装置1000に指示するためのコマンドである。
この「PresetTourリクエスト」は、<PTZSpeed>タグを含む。この<PTZSpeed>タグは、撮像装置1000の撮像方向及び画角を変更させる際の「速度」が対応付けられることにより、この「速度」を撮像装置1000に指定するためのものである。
更に、この「PresetTourリクエスト」は、<Extension>タグを含む。この<Extension>タグは、撮像装置1000の撮像方向及び画角を変更させる際の「加速度」が対応付けられることにより、この「加速度」を撮像装置1000に指定するためのものである。
このような指定の方法により、「PresetTourリクエスト」は、撮像装置1000の撮像方向及び画角を変更させる際の「加速度」を指定することができる機種とこの「加速度」を指定することができない機種との間で、互換性を備えることができる。
なお、「PresetTourリクエスト」を受信した撮像装置1000は、撮像部1003を複数の撮像位置に巡回させる。この際、この撮像装置1000は、撮像装置1000の撮像方向及び画角をこのリクエストで指定された速度及び加速度で変更する。
ただし、「PresetTourリクエスト」で加速度が指定されていない場合には、撮像装置1000は、撮像装置1000の撮像方向及び画角を「SetConfigurationリクエスト」で指定された加速度で変更する。
更に、「PresetTourリクエスト」及び「SetConfigurationリクエスト」で加速度が指定されていない場合には、撮像装置1000は、撮像装置1000の撮像方向及び画角をデフォルトの加速度で変更する。
また、ステップS301で送信された「GetConfigurationOptionsレスポンス」が<tptz2:PanTiltAccelarationSpace>タグを含まない場合も想定される。このような想定の場合、ステップS503で「PresetTourリクエスト」を受信した撮像装置1000は、撮像装置1000の撮像方向を固有の加速度で変更する。撮像装置1000の画角についても同様である。
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。