以下、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
(実施例1)
本実施例に係る撮像システムの構成を図1Aに示す。本実施例に係る撮像システムでは、撮像装置1000がネットワーク3020を介してクライアント3000に接続される。撮像装置1000は撮像した撮像画像をネットワーク3020を介してクライアント3000に配信する。
ネットワーク3020は、例えばEthernet(登録商標)等の通信規格を満足す
る複数のルータ、スイッチ、ケーブル等から構成される。本発明においては撮像装置1000、クライアント3000間の通信を行うことができるものであればその通信規格、規模、構成を問わない。例えば、ネットワーク3020はインターネットや有線LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)等により構成されてもよい。
クライアント3000は、撮像装置1000に対して命令を送信する。クライアント3000は、撮像装置1000の撮像方向又は画角を変更するための命令を送信する。また、クライアント3000は、撮像装置1000の撮像範囲における位置を表すために用いる座標系を原点を中心として回転させる命令を送信する。さらにクライアント3000は、撮像装置1000が撮像した撮像画像を表示させるための表示部3010を有し、表示部3010において表示される撮像画像を撮像装置1000において回転させるための命令を送信する。
撮像装置1000は、クライアント3000から受信した撮像方向を変更するための命令に応じて撮像方向を変更する。また、撮像装置1000は、クライアント3000から受信した画角を変更するための命令に応じて画角を変更する。本実施例に係る撮像装置1000が撮像方向又は画角を変更するための駆動機構について図1Bを用いて説明する。パン駆動機構1101は撮像装置1000の撮像方向をパン方向に変更させる。また、チルト駆動機構1102は撮像装置1000の撮像方向をチルト方向に変更する。さらに、ズーム機構1103は撮像装置1000の画角を変更させる。
本実施例に係る撮像装置1000の内部構成を図2Aに示す。図2Aにおいて、制御部1001は、撮像装置1000の全体の制御を行う。制御部1001は、例えばCPU(Central Processing Unit)により構成され、後述のメモリ1002に記憶されたプログラムを実行する。または、制御部1001はハードウエアを用いて制御を行うこととしてもよい。
メモリ1002は、制御部1001が実行するプログラム格納領域、プログラム実行中のワーク領域、後述する撮像部1003が生成する撮像画像の格納領域等、データの格納領域として使用される。またメモリ1002は、後述の撮像部1003の撮像方向を表すために用いる座標系を保持する。またメモリ1002は、制御部1001が後述の特定の命令(自動画像方向変更命令又は自動座標方向変更命令)を実行している場合に、これらの命令を実行中であることを示すための情報を保持する。例えば、特定の命令を実行中である場合にはメモリ1002において管理されるフラグを立てることにより、特定の命令を実行中であることを示すことができる。
撮像部1003は、被写体を撮影して取得したアナログ信号をデジタルデータに変換する。また撮像部1003は、ADCT(Adaptive Discrete Cosine Transform、適応離散コサイン変換)等によりデータの圧縮処理を行って撮像画像を生成し、メモリ1002に出力する。撮像部1003は、撮像画像をメモリ1002に出力した後、制御部1001に画像取得イベントを送信する。
通信部1004は、図5Aに示す撮像範囲変更命令、図5Bに示す画像方向変更命令、及び、図5Cに示す座標方向変更命令をクライアント3000から受信する。通信部1004は図5A〜5Cに示す命令を受信すると、制御部1001に対し受信イベントを送信する。また通信部1004は、図5A〜5Cの命令に対する応答をクライアントへ送信する。本実施例では、通信部1004は、受信した命令が正常に実行されることを示すための応答である正常応答、又は、受信した命令が実行されないことを示すための応答であるエラー応答をクライアントに送信する。正常応答の例を図5Eに示す。また、エラー応答の例を図5Fに示す。
計時部1005は、撮像装置1000が画像方向変更命令又は座標方向変更命令を受信してから経過した時間の計時を行う。計時部1005は、後述の特定の命令(自動画像方向変更命令又は自動座標方向変更命令)の実行を開始してから所定時間が経過した場合は、制御部1001にタイムアウトイベントを送信する。
撮像制御部1006は、制御部1001の指示に従って、パン駆動機構1101、チルト駆動機構1102、及びズーム機構1103を制御する。すなわち、通信部1004がクライアント3000から図5Aを用いて後述する撮像範囲変更命令を受信すると、制御
部1001に対し当該命令に応じた受信イベントが送信される。制御部1001は受信イベントを受信すると、当該受信イベントの内容に応じて撮像制御部1006に制御指示を行う。制御指示を受けた撮像制御部1006は、制御指示に応じてパン駆動機構1101、チルト駆動機構1102、又はズーム機構1103を駆動させる制御を行う。撮像制御部1006は、図5Aを用いて後述する撮像範囲変更命令により指定された座標と、メモリ1002に保持されている上述の座標系とによって特定される位置に撮像部1003が撮像を行う撮像方向を変更する変更制御を行う。このようにして、撮像制御部1006は特定情報により特定される撮像方向に、撮像部1003の撮像方向を変更する制御を行う。
以上、撮像装置1000の内部構成について説明したが、図2Aに示す処理ブロックは、本発明における撮像装置の好適な実施形態の一例を説明したものでありこの限りではない。音声入力部を備えるなど、本発明の要旨の範囲内で、種々の変形及び変更が可能である。
次にクライアント3000の内部構成について図2Cを用いて説明する。クライアント3000は、ネットワーク3020に接続されるコンピュータ装置として構成される。制御部3001はクライアント3000の全体の制御を行う。制御部3001は、例えばCPUにより構成され、後述のメモリ3002に記憶されたプログラムを実行する。または制御部3001はハードウエアを用いて制御を行うこととしてもよい。
メモリ3002は制御部3001が実行するプログラム格納領域、プログラム実行中のワーク領域、データの格納領域として使用される。
通信部3004は、撮像装置1000から送信された撮像画像を受信する。また、通信部3004は、撮像装置1000を制御するための命令を送信する。
入力部3005は、ユーザからの指示の入力を受け付ける。例えば入力部3005は、ユーザからの指示として、撮像装置1000に対する各種の命令の送信指示の入力を受け付けることができる。撮像装置1000に対する命令の詳細については図5A〜5Cを用いて後述する。入力部3005は、ユーザから撮像装置1000に対する命令送信指示が入力されると、制御部3001に命令の入力があった旨を通知する。制御部3001は、入力部3005に入力された指示に応じて、撮像装置1000に対する命令を生成し、通信部3004を介して撮像装置1000に生成した命令を送信する送信制御を行う。
また入力部3005は、制御部3001がメモリ3002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等に対するユーザの応答の入力を受け付けることができる。
計時部3006は、画像方向変更命令又は座標方向変更命令を撮像装置1000に送信してから経過した時間を計時する。
表示部3010は、通信部3004が受信した撮像画像を表示する。また、表示部3010は、制御部3001がメモリ3002に記憶されたプログラムを実行することにより生成されるユーザへの問い合わせメッセージ等を表示させることができる。
次に、クライアント3000が撮像装置1000に提供する命令について図5A〜5Cを用いて説明する。各命令は、図5A〜5Cに示すように、命令を実行させる対象の宛先を示す宛先アドレスと、命令の送信元を示す送信元アドレスの情報とを有する。さらに各命令は命令の内容と引数についての情報を有する。
まず、撮像範囲変更命令の例について図5Aを用いて説明する。撮像範囲変更命令により、クライアント3000は撮像装置1000の撮像範囲を変更させる。撮像範囲変更命
令の引数は、メモリ1002に保持された座標系におけるパン座標、チルト座標、及びズーム座標である。本実施例では、クライアント3000及び撮像装置1000は、撮像装置1000が撮像可能な水平方向の角度を−1.0から+1.0に正規化する。そして、−1.0から+1.0までの値をパン座標として、撮像装置のパン方向を表す。同様に、クライアント3000及び撮像装置1000は、撮像装置1000が撮像可能な垂直方向の角度を−1.0から+1.0に正規化する。そして、−1.0から+1.0までの値をチルト座標として、撮像装置のチルト方向を表す。
さらに本実施例では、クライアント3000及び撮像装置1000は、ズームのテレ端からワイド端までの範囲についての値を0.0から+1.0に正規化する。ズームの値は例えば、ズーム倍率や焦点距離の値を用いることができる。そして、0.0から+1.0までの値をズーム座標として、撮像装置のズーム位置を表す。本命令を用いてクライアント3000は、パン座標、チルト座標、及びズーム座標の絶対位置を指定し、撮像装置1000の撮像範囲を任意に変更することができる。撮像範囲変更命令が保持するパン座標、チルト座標又はズーム座標は、メモリ1002に保持された座標系における撮像方向を特定するための特定情報である。撮像範囲変更命令が、パン座標、チルト座標及びズーム座標の全ての特定情報を有する必要はなく、少なくとも一つの特定情報を有していればよい。
また、特定情報はパン座標、チルト座標、又はズーム座標の絶対位置を指定するものに限られない。特定情報は、現在の撮像方向に対する移動後の撮像方向の相対的な位置を座標系を用いて表すための情報であってもよい。例えば、特定情報は座標系における現在位置からの移動方向と移動量の情報であってもよい。このようにしても、座標系における撮像方向を特定することができる。このようにすれば、ユーザはクライアント3000を用いて、例えば「現在位置からパン方向に+0.5だけ撮像方向を移動」などの指示をすることができる。
さらに特定情報は、上述のように正規化された値を用いる場合に限られない。例えば、パン座標、チルト座標は、パン駆動機構1101あるいはチルト駆動機構1102の可動範囲における基準位置(例えば、パン端、チルト端など)からの移動角度であってもよい。また、ズーム座標として、ズーム倍率や焦点距離の値を用いてもよい。
次に、画像方向変更命令の例について図5Bを用いて説明する。画像方向変更命令により、クライアント3000は撮像装置1000が配信する撮像画像の方向を所定の角度(本実施例では、180度)、回転させる。撮像装置1000は、例えば、撮像画像の対角線の交点を回転中心として撮像画像の方向を回転させることができる。画像方向変更命令の引数は画像方向であり、本実施例においてOFFは正方向、ONは反転方向を示す。撮像画像の正方向と反転方向について図6を用いて説明する。
図6において、撮像画像1070は撮像装置1000の撮像部1003が撮像した撮像画像である。撮像画像1071は、図5Bに示す画像方向変更命令によりOFF(正方向)が指定された場合にクライアント3000に配信される撮像画像を示している。画像方向変更命令によりOFF(正方向)が指定された場合、撮像装置1000は、撮像画像1
070と画像方向が同じ撮像画像1071をクライアント3000に送信する。また撮像画像1072は、図5Bに示す画像方向変更命令によりON(反転方向)が指定された場合にクライアント3000に配信される撮像画像を示している。画像方向変更命令によりON(反転方向)が指定された場合、本実施例において撮像装置1000は、撮像画像1070の上下及び左右を反転させた撮像画像1072をクライアント3000に送信する。
このように、図5Bに示す画像方向変更命令を受信した場合は、撮像装置1000は、
撮像部1003が撮像している撮像画像を所定の角度回転(本実施例の場合、180度反転)させて、クライアント3000に送信する。
続いて、座標方向変更命令の例について図5Cを用いて説明する。座標方向変更命令により、クライアント3000はメモリ1002に保持された座標系を原点を中心として所定の角度(本実施例の場合、180度)、回転させることができる。クライアント3000は座標方向変更命令により、上述の画像方向変更命令によって撮像画像を回転させることができる角度と同じ角度、座標系の方向を回転させることができる。撮像装置1000は、座標方向変更命令を受信した場合、例えば座標系の原点を回転中心として座標系の方向を回転させる。座標方向変更命令の引数は座標方向であり、OFFは正方向、ONは反転方向を示す。図7を用いて座標方向の正方向と反転方向を説明する。
図7において、座標1080は撮像装置1000の撮像部1003の撮像可能範囲を示している。座標1080において、前述の通り、パン座標、チルト座標の範囲が−1.0から+1.0に正規化されている。撮像範囲1081は、撮像可能範囲における現在の撮像部1003の撮像範囲を示しており、座標1080においては、パン座標、チルト座標、及びズーム座標がそれぞれ(0.0,0.0,1.0)に設定されている。
座標1082及び座標1083は、それぞれ、図5Aに示した撮像範囲変更命令により、撮像範囲1081のパン座標、チルト座標、及びズーム座標が(0.3,−0.2,1.0)に変更された場合を示している。
座標1082は図5Cの座標方向変更命令の引数として正方向の座標方向が選択された場合の撮像範囲を示している。座標方向変更命令の引数として正方向の座標方向が選択された場合、撮像装置1000は座標1080と同じ方向の座標系を保持する。
一方、座標1083は図5Cの座標方向変更命令の引数として反転方向の座標方向が選択された場合の撮像範囲1081を示している。座標方向変更命令の引数として反転方向の座標方向が選択された場合、撮像装置1000は座標1080の座標系を回転(本実施例では180度反転)させる。
座標1082に対して座標1083は撮像可能範囲を示す座標系が回転(180度反転)している。従って、座標1082と座標1083とでは、撮像範囲1081のパン座標、チルト座標、及びズーム座標が(0.3,−0.2,1.0)に変更された場合に、撮像可能範囲において撮像装置1000が撮像する撮像範囲1081の位置が異なる。
次に、本実施例にかかる撮像装置1000の動作を図3及び図4A〜4Dに示したフローチャートを用いて説明する。撮像装置1000の制御部1001がプロセッサを内蔵する形態では、図3及び図4A〜4Dの処理フローは、図3及び図4A〜4Dに示される手順を制御部1001に実行させるためのプログラムを示す。撮像装置1000の制御部1001が内蔵するプロセッサはコンピュータであり、撮像装置1000が内蔵するメモリ1002から読み出したプログラムを実行する。
撮像装置1000のメイン処理について図3を用いて説明する。まず、制御部1001はイベント待ちを行う(S1100)。本実施例では、撮像装置1000は画像取得、撮像範囲変更命令受信、画像方向変更命令受信、座標方向変更命令受信、又は、自動命令タイムアウトのイベントが生じた場合にイベント有りと判断する。
撮像装置1000は、画像取得イベントが生じた場合、ステップS1101からステップS1102の処理を実行する。ここで、画像取得イベントとは、撮像装置1000が撮像した撮像画像を取得するための画像取得要求をクライアント3000から撮像装置1000が受信した場合に発生するイベントである。
画像取得イベントが発生すると、撮像装置1000の制御部1001は配信画像作成処理を行う(S1101)。配信画像作成処理の詳細は図4Aを用いて後述する。
配信画像作成処理が完了すると制御部1001は送信処理を行う(S1102)。送信処理において制御部1001は、撮像装置1000からの映像配信を要求しているクライアント3000に対して、ステップS1101の配信画像作成処理にて作成された配信画像を通信部1004を介して送信する。送信処理を行った後、制御部1001は、ステップS1100に戻って処理を行う。
また撮像装置1000の制御部1001は、クライアント3000から図5Aに示した撮像範囲変更命令を受信すると、図4Bを用いて後述する撮像範囲変更処理を行う(S1110)。
また制御部1001は、クライアント3000から図5Bに示した画像方向変更命令を受信すると、図4Cを用いて後述する画像方向変更処理を行う(S1120)。
また制御部1001は、クライアント3000から図5Cに示した座標方向変更命令を受信すると、図4Dを用いて後述する座標方向変更処理を行う(S1130)。
また制御部1001は、図4Cまたは図4Dを用いて説明する自動画像方向変更処理又は自動座標方向変更処理が実行中であることを示す情報をメモリ1002に保持してから所定時間経過すると、後述する自動変更処理タイムアウト処理を行う(S1140)。あるいは制御部1001は、画像方向変更命令又は座標方向変更命令を受信してから所定時間経過すると、後述する自動変更処理タイムアウト処理を行うこととしてもよい。
ステップS1110、ステップS1120、ステップS1130、または、ステップS1140の処理を終了すると、制御部1001はステップS1100に戻って処理を行う。
次に、ステップS1101の配信画像作成処理について図4Aを用いて説明する。制御部1001はメモリ1002を参照し、画像方向パラメータを判定する(S1200)。画像方向パラメータがONである場合(S1200でYesの場合)、制御部1001は図6の撮像画像1072に示すように撮像画像を反転(180度回転)させ、メモリ1002に記憶されている撮像画像を上書きして配信画像作成処理を終了する(S1201)。画像方向パラメータがOFFであった場合(S1200でNoの場合)は、制御部1001は処理を行わず配信画像作成処理を終了する。
次に、ステップS1110の撮像範囲変更処理について図4Bを用いて説明する。制御部1001は、メモリ1002を参照し、図5Cに示す座標方向変更命令の座標方向パラメータを取得する(S1300)。さらに制御部1001は、メモリ1002を参照し、図5Aに示す撮像範囲変更命令の引数(パン座標、チルト座標、ズーム座標)を取得する
(S1301)。
そして制御部1001は、取得した座標方向パラメータ、及び、パン座標、チルト座標、ズーム座標を撮像制御部1006に入力する(S1302)。これにより、座標方向パラメータがON(反転方向)である場合、撮像制御部1006は、図7に示した座標1083のように、座標系を反転させて撮像部1003の撮像方向を操作する。一方、座標方向パラメータがOFF(正方向)である場合、撮像制御部1006は、図7に示した座標1082のように、座標系を反転させないで撮像部1003の撮像方向を操作する。以上のようにして、制御部1001は、撮像範囲変更処理を終了する。
次に、ステップS1120の画像方向変更処理について図4Cを用いて説明する。まず制御部1001は、メモリ1002を参照して、自動画像方向変更処理を実行しているかどうか判定する(S1400)。ここで、自動画像方向変更処理とは、通信部1004が受信した画像方向変更命令によらずに、制御部1001が自動的に画像方向変更命令を実行する処理である。自動画像方向変更処理は、通信部1004が座標方向変更命令を受信すると、画像方向変更命令の受信に先立って実行される。自動画像方向変更処理の詳細については、図4Dを用いて後述する。
自動画像方向変更処理を実行していない場合(S1400でNoの場合)、制御部1001は、受信した画像方向変更命令の引数を読出し、メモリ1002上の画像方向パラメータを変更する。さらに、自動座標方向変更処理を行う(S1401)。
ここで、自動座標方向変更処理とは、通信部1004が受信した座標方向変更命令によらずに、制御部1001が自動的に座標方向変更命令を実行する処理である。自動座標方向変更処理は、通信部1004が画像方向変更命令を受信すると、座標方向変更命令の受信に先立って実行される。
自動座標方向変更処理では、画像方向変更命令によって撮像画像を回転させることができる角度と同じ角度、制御部1001が座標系の方向を自動的に回転させる命令を実行する。すなわち、制御部1001は受信した画像方向変更命令を実行すると共に、座標方向変更命令を自動的にステップS1401において実行する。
ステップS1401において自動座標方向変更処理が開始されると、制御部1001はメモリ1002に自動座標方向変更処理を実行中であることを示す情報を保持させる。自動座標方向変更処理を実行中であることを示す情報は、例えば、自動座標方向変更処理フラグを立てると自動座標方向変更処理の実行中を示し、フラグを降ろすと実行していないことを示すようにすることができる。自動座標方向変更処理を実行中であることを示す情報の保持方法はこれに限られず、制御部1001が、自動座標方向変更処理が実行されているか否かを判断することができるものであればよい。
自動座標方向変更処理を開始すると、制御部1001は、計時部1005を使用し、タイマを起動する(S1402)。このタイマは、自動座標方向変更処理を開始してから所定時間の間、自動座標方向変更処理により座標方向パラメータが変更された状態を継続するためのタイマである。このタイマのタイマ値は、使用者が予め設定できるものとしてよく、数百ミリ秒〜数秒程度としてよい。タイマを起動すると、制御部1001は画像方向変更処理を終了する。
あるいは、自動座標方向変更処理の開始時点ではなく、通信部1004が画像方向変更命令を受信した時点でタイマを起動することとしてもよい。このようにすれば、命令を受信してから所定時間の間、自動座標方向変更処理により座標方向パラメータが変更された状態を継続させることができる。
このように、制御部1001は、通信部1004が画像方向変更命令を受信すると、座標方向変更命令の受信に先立って、画像方向変更命令及び座標方向変更命令を実行させる制御を行う。この画像方向変更命令は通信部1004が受信した命令である。また、この座標方向変更命令は、制御部1001が自動座標方向変更処理を行うことにより実行される命令である。
これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標1083)に基づいて撮像範囲の変更を行うことができる。従って、画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。こうして、座標方向が変更されない状態(図7の座標1082)で画像方向のみが変更された状態(図6の撮像画像1072)となることにより、座標方向(正方向/反転方向)と撮像画像の画像方向(正方向/反転方向)が不一致となることを防ぐことができる。
一方、自動画像方向変更処理を実行している場合(S1400でYesの場合)、制御部1001はタイマを削除する(S1410)。このタイマは後述のステップS1502において起動されるタイマである。このタイマは、自動画像方向変更処理により画像方向パラメータが変更された状態を継続するための所定の時間のうち、どれだけの時間が経過したかを計測するためのタイマである。
タイマを削除した後、制御部1001は、受信した画像方向変更命令の引数を読出し、メモリ1002上の画像方向パラメータを更新する。また、制御部1001は自動画像方向変更処理を終了する(S1411)。ここで、自動画像方向変更処理を終了するとは、自動画像方向変更処理によって、変更された画像方向パラメータを、自動画像方向変更処理を行う前の状態に戻すように撮像画像の方向を回転させることをいう。
すなわち、制御部1001は、ステップS1411の処理を行うことにより、自動画像方向変更処理を実行する前の状態から、受信した画像方向変更命令によって命令された角度だけ、撮像画像を回転させる。ステップS1411の処理を完了すると、制御部1001は画像方向変更処理を終了する。
上述のように、自動画像方向変更処理は、通信部1004が座標方向変更命令を受信した後に実行される処理である。すなわち、自動画像方向変更処理が実行されている(S1400でYes)の場合、通信部1004において既に座標方向変更命令が受信され、当該命令が実行されている状態である。このような状態で、ステップS1411の処理を実行することにより、制御部1001は、通信部1004において受信した画像方向変更命令と通信部1004で受信した座標方向変更命令とを実行することができる。
このように、制御部1001は自動画像方向変更処理が実行されている間に画像方向変更命令を受信した場合、自動画像方向変更処理を終了し、画像方向変更命令と座標方向変更命令とを実行する。これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標1083)に基づいて撮像範囲の変更を行うことができる。従って画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。
このようにして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、画像方向変更命令を実行させることができる。
次に、ステップS1130の座標方向変更処理について図4Dを用いて説明する。
まず制御部1001は、メモリ1002を参照して、自動座標方向変更処理を実行しているかどうか判定する(S1500)。ここで、自動座標方向変更処理とは、通信部1004受信した座標方向変更命令によらずに、制御部1001が自動的に座標方向変更命令を実行する処理である。自動座標方向変更処理は、通信部1004が画像方向変更命令を受信すると、座標方向変更命令の受信に先立って実行される。
自動座標方向変更処理を実行していない場合(S1500でNoの場合)、制御部1001は、通信部1004が受信した座標方向変更命令の引数を読出し、メモリ1002上の座標方向パラメータを変更する。さらに制御部1001は、上述の自動画像方向変更処理を行う(S1501)。
自動画像方向変更処理では、座標方向変更命令によって座標系を回転させることができる角度と同じ角度、制御部1001が撮像画像を自動的に回転させる命令を実行する。すなわち、制御部1001は受信した座標方向変更命令を実行すると共に、画像方向変更命令を自動的にステップS1501において実行する。
ステップS1501において自動画像方向変更処理が開始されると、制御部1001はメモリ1002に自動画像方向変更処理を実行中であることを示す情報を保持させる。自動画像方向変更処理を実行中であることを示す情報は、例えば、自動画像方向変更処理フラグを立てると自動画像方向変更処理の実行中を示し、フラグを降ろすと実行していないことを示すようにすることができる。自動画像方向変更処理を実行中であることを示す情報の保持方法はこれに限られず、制御部1001が、自動画像方向変更処理が実行されているか否かを判断することができるものであればよい。
そして制御部1001は、計時部1005を使用し、タイマを起動する(S1502)。このタイマは、自動画像方向変更処理を開始してから所定時間の間、自動画像方向変更処理により画像方向パラメータが変更された状態を継続するためのタイマである。このタイマのタイマ値は、使用者が予め設定できるものとしてよく、数百ミリ秒〜数秒程度としてよい。タイマを起動すると、制御部1001は座標方向変更処理を終了する。
あるいは、自動画像方向変更処理の開始時点ではなく、通信部1004が座標方向変更命令を受信した時点でタイマを起動することとしてもよい。このようにすれば、命令を受信してから所定時間の間、自動画像方向変更処理により画像方向パラメータが変更された状態を継続させることができる。
このように、制御部1001は、通信部1004が座標方向変更命令を受信すると、画像方向変更命令の受信に先立って、座標方向変更命令及び画像方向変更命令を実行させる制御を行う。この座標方向変更命令は、通信部1004において受信した命令である。また、この画像方向変更命令は、制御部1001が自動画像方向変更処理を行うことにより実行される命令である。
これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標1083)に基づいて撮像範囲の変更を行うことができる。従って、画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。こうして、画像方向が変更されない状態(図6の撮像画像1071)で座標方向のみが変更された状態(図7の座標1083)となることにより、撮像画像の画像方向(正方向/反転方向)と座標方向(正方向/反転方向)とが不一致となることを防ぐことができる。
一方、自動座標方向変更処理を実行している場合(S1500でYesの場合)、制御部1001はタイマを削除する(S1510)。このタイマは上述の図4CのステップS1402において起動されるタイマである。このタイマは、自動座標方向変更処理により座標方向パラメータが変更された状態を継続するためのタイマである。
そして、制御部1001は、受信した座標方向変更命令の引数を読出し、メモリ1002上の座標方向パラメータを変更する。また、自動座標方向変更処理を終了する(S111)。ここで、自動座標方向変更処理を終了するとは、自動座標方向変更処理によって、変更された座標方向パラメータを、自動座標方向変更処理を行う前の状態に戻すように座標系の方向を回転させることをいう。
すなわち、制御部1001は、ステップS1511の処理を行うことにより、自動座標方向変更処理を実行する前の状態から、受信した座標方向変更命令によって命令された角度だけ、座標を回転させる。ステップS1511の処理を完了すると、制御部1001は座標方向変更処理を終了する。
上述のように、自動座標方向変更処理は、通信部1004が画像方向変更命令を受信した後に実行される処理である。すなわち、自動座標方向変更処理が実行されている(S1500でYes)場合、通信部1004において既に画像方向変更命令が受信され当該命令が実行されている状態である。このような状態で、ステップS1511の処理を実行することにより、制御部1001は、通信部1004において受信した座標方向変更命令と通信部1004で受信した画像方向変更命令とを実行することができる。
このように、制御部1001は自動座標方向変更処理が実行されている間に座標方向変更命令を受信した場合、自動座標方向変更処理を終了し、座標方向変更命令と画像方向変更命令とを実行する。これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標1083)に基づいて撮像範囲の変更を行うことができる。従って画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。
このようにして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、座標方向変更命令を実行させることができる。
次に、図3のステップS1140の自動変更処理タイムアウト処理について説明する。自動変更処理タイムアウト処理は、自動座標方向変更処理及び自動画像方向変更処理のうち一方を実行してから所定時間経過すると実行される処理である。所定時間経過したか否かは、図4CのステップS1402又は図4DのステップS1502において起動されるタイマを用いて判断する。
あるいは、自動変更処理タイムアウト処理は、座標方向変更命令及び画像方向変更命令のうち一方を受信してから所定時間経過すると実行されることとしてもよい。この場合には、タイマは座標方向変更命令又は画像方向変更命令を受信した時点からカウントを開始するようにすればよい。
自動変更処理タイムアウト処理において、制御部1001は、自動座標方向変更処理又は自動画像方向変更処理を終了する。そして、自動座標方向変更処理又は自動画像方向変更処理を実行中であることを示すメモリ1002上の情報を削除する。
さらに自動変更処理タイムアウト処理において、制御部1001は、通信部1004で受信した画像方向変更命令又は座標方向変更命令の実行を終了する。
このようにして、画像方向変更命令及び座標方向変更命令のうち一方を受信してから所定時間経過しても他方の命令を受信しない場合、制御部1001は受信した命令を受信する前の状態(画像方向変更命令及び座標方向変更命令を実行する前の状態)に戻すように画像方向又は座標方向を回転させる。従って、画像方向変更命令又は座標方向変更命令のいずれか一方のみが実行されることがないため、撮像装置1000の座標系の方向(正方向/反転方向)と撮像画像の画像方向(正方向/反転方向)が不一致となることを防ぐことができる。
こうして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、座標方向変更命令を実行させることができる。
本実施例に係る撮像装置1000は、画像方向と座標方向のいずれか一方だけ変更された状態になることを防止することができる。これにより、ユーザが撮像装置1000から配信されている撮像画像を見ながら撮像範囲を変更する場合、配信されている撮像画像の方向と撮像範囲を変更させるための命令の方向を一致させることができる。従って、ユーザの意図に沿った撮像範囲の変更を実現することができる。
また自動変更処理タイムアウト処理において、自動画像方向変更命令又は自動座標方向変更命令のいずれか一方を実行してから所定時間経過しても他方の命令を受信しない場合、制御部1001は自動座標方向変更処理又は自動画像方向変更処理を終了することとしてもよい。あるいは、自動変更処理タイムアウト処理において、画像方向変更命令又は座標方向変更命令のいずれか一方を通信部1004が受信してから所定時間経過しても他方の命令を受信しない場合、制御部1001は自動座標方向変更処理又は自動画像方向変更処理を終了することとしてもよい。
このようにすれば、ユーザが画像方向変更命令又は座標方向変更命令のいずれか一方を実行することを望んでいる場合には、命令を受信してから所定時間経過した後に当該命令を実行させることができる。また、ユーザが画像方向変更命令及び座標方向変更命令の両方を実行することを望んでいる場合には、一方の命令を受信してから他方の命令を受信するまでの間、撮像装置1000の座標系の方向と撮像画像の画像方向が不一致となることを防ぐことができる。
また、実施例1において説明した図5A〜5Cに示す各命令に対して、正常応答、或いはエラー応答を要求元のクライアントに送信するようにしてもよい。すなわち、撮像装置1000は、クライアント3000からの命令を正常に処理する場合、命令要求元のクライアント3000に正常応答を送信する。また、クライアント3000からの命令を正常に処理しない場合、撮像装置1000は命令要求元のクライアント3000にエラー応答を送信する。このようにすれば、各命令の処理結果や処理タイミングをクライアントがより把握しやすくすることができる。
また、画像方向変更命令、或いは座標方向変更命令のいずれか一方の命令の実行中に、再度同じ命令を連続して受信した場合、これらの命令に対してはエラー応答するようにしてもよい。このようにして、通信部1004が画像方向変更命令及び座標方向変更命令のうち一方の命令を連続して受信した場合には、制御部1001は最初に受信した命令のみを実行させる制御を行うことができる。
また、本実施例では画像方向変更命令と、座標方向変更命令が別々に定義される場合について説明したが、これらの命令に加えて図5Dに示すような画像方向と座標方向の双方を変更する命令が定義されてもよい。
(実施例2)
実施例2では、撮像画像をトリミングする領域を変更することによってクライアントに表示される撮像画像を変更する、いわゆるデジタルPTZ(Pan Tilt Zoom)機能を有する撮像装置に本発明を適用する場合について説明する。
また、実施例2では、ネットワーク3020を介して撮像装置1000に複数のクライアント3000が接続されている場合について説明する。
さらに、実施例2では、クライアント3000からの命令に対して命令が正常に実行さ
れたことを示す正常レスポンス又は命令が実行されなかったことを示すエラーレスポンスを行う例について説明する。
実施例2に係る撮像装置2000を図1Cに示す。本実施例にかかる撮像装置2000は、パン駆動機構1101、チルト駆動機構1102、及び、ズーム機構1103を有さない。
次に、撮像装置2000の内部構成について図2Bを用いて説明する。
撮像装置2000のメモリ1002は、実施例1と同様に、制御部1001が自動座標方向変更処理又は自動画像方向変更処理を実行したことを示す情報を保持する。さらに、本実施例において、メモリ1002は、自動座標方向処理又は自動画像変更処理が、ネットワーク3020に接続された複数のクライアントのうちいずれのクライアントからの命令に応じて実行されたものであるかについての情報を保持する。
撮像装置2000は実施例1における撮像装置1000と比較して、撮像制御部1006を有さない。撮像装置2000の制御部1001は、撮像部1003が撮像した撮像画像の一部を切り出した撮像画像を生成し、通信部1004を介してクライアント3000に送信する。
実施例2における撮像装置2000は、クライアント3000から撮像画像の切り出し位置についての指示をトリミングパラメータとして受信する。トリミングパラメータは、撮像部1003が生成する撮像画像をトリミングしてクライアントに配信する部分を特定するためのパラメータである。トリミングパラメータは、撮像画像の水平方向を示すX座標、垂直方向を示すY座標にて表現される2点(x1,y1)、(x2,y2)から成り、この2点を対角とする長方形がトリミングする範囲を示す。
さらに、実施例2における撮像装置2000は、クライアント3000から画像座標方向変更命令を受信することができる。画像座標方向変更命令の例を図5Dに示す。画像座標方向変更命令により、クライアント3000は撮像装置2000の配信する撮像画像の方向、及び撮像可能範囲の座標の方向を併せて変更することができる。画像方向の変更及び座標方向の変更についての詳細は、実施例において図5B及び5Cを用いて説明した内容と同様であり説明を省略する。
実施例2において撮像装置2000は、クライアント3000からの命令を正常に処理する場合、命令要求元のクライアント3000に正常応答を送信する。また、クライアント3000からの命令を正常に処理しない場合、撮像装置2000は命令要求元のクライアント3000にエラー応答を送信する。正常応答の例を図5Eに示す。また、エラー応答の例を図5Fに示す。
次に、実施例2における撮像装置2000の動作について図8及び図9A〜9Cのフローチャートを用いて説明する。撮像装置1000の制御部1001がプロセッサを内蔵する形態では、図8及び図9A〜9Cの処理フローは、図8及び図9A〜9Cに示される手順を制御部1001に実行させるためのプログラムを示す。撮像装置1000の制御部1001が内蔵するプロセッサはコンピュータであり、撮像装置1000が内蔵するメモリ1002から読み出したプログラムを実行する。または、図8及び図9A〜9Cに示される処理はハードウエアによって行われることとしてもよい。
撮像装置2000のメイン処理について図8を用いて説明する。まず、制御部1001はイベント待ちを行う(S2100)。本実施例では、撮像装置2000は画像取得、撮像範囲変更命令受信、画像方向変更命令受信、座標方向変更命令受信、自動変更処理タイムアウトに加え、画像座標方向変更命令受信のイベントが生じた場合にイベント有りと判断する。
画像取得イベントが発生すると、撮像装置2000の制御部1001は配信画像作成処理を行う(S2101)。本実施例にかかる配信画像作成処理について、実施例1において図4Aを用いて説明した処理と異なる点について説明する。本実施例では制御部1001は配信画像作成処理において、画像方向パラメータがOFF(正方向)である場合(図4AのステップS1200においてNoの場合)、トリミングパラメータに従い、撮像画像をトリミングする。ここでトリミングとは、撮像部1003の撮像範囲からトリミングパラメータにより特定される領域の撮像画像を切り出すことを言う。
また制御部1001は画像方向パラメータがON(反転方向)である場合(S1200でYesの場合)、図4Aに示したステップS1201において画像方向パラメータに従い画像方向を変更した後にトリミングパラメータに従って撮像画像をトリミングする。撮像画像をトリミングすると、制御部1001はトリミングした撮像画像でメモリ1002に記憶されている撮像画像を上書きし、配信画像作成処理を終了する。
配信画像作成処理が終了すると制御部1001は送信処理を行う(S2102)。送信処理において制御部1001は、撮像装置1000からの映像配信を要求しているクライアント3000に対して、ステップS2101の配信画像作成処理にてトリミングされた配信画像を通信部1004を介して送信する。送信処理を行った後、制御部1001は、ステップS1100に戻って処理を行う。
また制御部1001は、クライアント3000から撮像範囲変更命令を受信すると、撮像範囲変更処理を行う(S2110)。本実施例において撮像範囲変更命令は、撮像範囲のうち画像を切り出す範囲を変更させるために用いられる。本実施例における撮像範囲変更処理について、実施例1において図4Bを用いて説明した処理と異なる点について説明する。撮像範囲変更処理において本実施例に係る制御部1001は、図4Bに示したステップS1300及びステップS1301の処理を行った後、図4BのステップS1302においてトリミングパラメータを算出する。すなわち、制御部1001は、取得した座標方向パラメータがON(反転方向)である場合は、座標系を図7の座標1083のように反転させてトリミング範囲を決める。一方、取得した座標方向パラメータがOFF(正方向)である場合は、制御部1001は座標系を図7の座標1082のように反転させないでトリミング範囲を決める。
続いて、本実施例の制御部1001は、ピクセルを単位とする座標におけるトリミング範囲の位置を求める。図7の座標2082および座標2083は、左下の頂点を原点とし、ピクセルを単位とするX座標とY座標によって表される座標である。制御部1001は、図7の座標2082、座標2083に示すように、決定したトリミング範囲の対角を成す2つの頂点に対応する、撮像画像上のピクセル座標2点(x1,y1)と(x2,y2)をトリミングパラメータとして算出する。そして制御部1001は算出したトリミングパラメータをメモリ1002に記憶する。そして制御部1001は、撮像範囲変更処理を終了する。
また本実施例に係る制御部1001は、クライアント3000から画像方向変更命令を受信すると、図9Aを用いて後述する画像方向変更処理を行う(S2120)。
また本実施例に係る制御部1001は、クライアント3000から座標方向変更命令を受信すると、図9Bを用いて後述する座標方向変更処理を行う(S2130)。
また、本実施例に係る制御部1001は、自動画像方向変更処理及び自動座標方向変更処理のうち一方を実行してから所定時間経過すると、図9Cを用いて後述する自動変更処理タイムアウト処理を行う(S2140)。あるいは、制御部1001は画像方向変更命令及び座標方向変更命令のうち一方を受信してから所定時間経過すると、自動変更処理タイムアウト処理を行うようにすることもできる。
また、本実施例に係る制御部1001は、クライアント3000から図5D に示した画像座標方向変更命令を受信すると、図9Cを用いて後述する画像座標方向変更処理を行う(S2111)。ステップS2111の処理を終了すると、制御部1001はステップS2100に戻って処理を行う。
次に、ステップS2120の画像方向変更処理について図9Aを用いて説明する。まず制御部1001は、メモリ1002を参照し、画像方向変更命令を送信したクライアント3000から受信した座標方向変更命令に応じて自動画像方向変更処理を実行しているかどうか判定する(S2400)。
ここで、自動画像方向変更処理は、実施例1において説明したのと同様に、通信部1004が座標方向変更命令を受信すると、画像方向変更命令の受信に先立って実行される処理である。すなわち、自動画像方向変更処理を実行している場合には、通信部1004はすでに座標方向変更命令を受信している。また、自動画像方向変更処理を実行していない場合には、通信部1004は座標方向変更命令を受信していない。
ステップS2400の判定はメモリ1002を参照することにより行う。メモリ1002は実施例1と同様に、自動画像方向変更処理を実行したか否かについての情報を保持する。さらに本実施例におけるメモリ1002は、ネットワーク3020を介して撮像装置1000に接続された複数のクライアントのうちいずれのクライアントからの座標方向変更命令に応じて自動画像方向変更処理が実行されたかについての情報を保持する。制御部1001は自動画像方向変更処理を実行する際に、当該自動画像方向変更処理がいずれのクライアントからの座標方向変更命令に応じて為されるものかについての情報をメモリ1002に対して保持させる制御を行う。
自動画像方向変更処理を実行していない場合(S2400においてNoの場合)、制御部1001は、ステップS2401の処理を行う。すなわち制御部1001は、画像方向変更命令を送信したクライアント3000が当該画像方向変更命令を送信する前に送信した別の画像方向変更命令に応じて自動座標方向変更処理を実行しているか判定する(S2401)。
ここで、自動座標方向変更処理は、実施例1において説明したと同じく、通信部1004が画像方向変更命令を受信すると、座標方向変更命令の受信に先立って実行される処理である。すなわち、自動座標方向変更処理を実行している場合には、通信部1004はすでに画像方向変更命令を受信している。また、自動座標方向変更処理を実行していない場合には、通信部1004は画像方向変更命令を受信していない。
ステップS2401の判定はメモリ1002を参照することにより行う。メモリ102には実施例1と同様に、自動座標方向変更処理を実行したか否かについての情報を保する。さらに、本実施例におけるメモリ1002は、ネットワーク3020を介して撮装置1000に接続された複数のクライアントのうちいずれのクライアントからの画像向変更命令に応じて自動座標方向変更処理が実行されたかについての情報を保持する。御部1001は自動座標方向変更処理を実行する際に、当該自動座標方向変更処理がいれのクライアントからの画像方向変更命令に応じて為されるものかについての情報をメリ1002に対して保持させる制御を行う。
自動座標方向変更処理を実行中である場合(S2401でYesの場合)は、制御部1001は、現在受信中の画像方向変更命令に対してエラー応答を送信する(S2420)。すなわち、通信部1004が現在受信した画像方向変更命令送信元のクライアントからすでに画像方向変更命令を受信している場合には、制御部1001は、現在受信した画像方向命令に対してエラー応答を送信する。
このようにして、制御部1001は、画像方向変更命令を連続して受信した場合には、最初に受信した画像方向変更命令のみを実行させる制御を行う。こうして、本実施例にかかる撮像装置1000は、同一のクライアントからの命令により、画像方向変更命令を重複して実行することを防止することができる。
自動座標方向変更処理を実行中でない場合(S2401でNoの場合)、制御部1001は受信した画像方向変更命令の引数を読出し、メモリ1002上の画像方向パラメータを変更する。さらに、自動座標方向変更処理を行う(S2402)。
ステップS2402において自動座標方向変更処理が開始されると、制御部1001はメモリ1002に自動座標方向変更処理を実行したことを示す情報を保持させる(S2403)。自動座標方向変更処理を実行中であることを示す情報は、実施例1で述べたのと同様にしてメモリ1002に保持させることができる。
そして制御部1001は、計時部1005を使用し、今回受信した画像方向変更命令を送信したクライアント用のタイマを起動する(S2404)。
次に制御部1001は、ステップS2402において実行した画像方向変更命令に対する正常応答を、当該画像方向変更命令を送信したクライアントに送信する(S2412)。
このように、本実施例の制御部1001は、画像方向変更命令を受信すると、当該命令を送信したクライアントからの座標方向変更命令に先立って、画像方向変更命令及び座標方向変更命令を実行する。この画像方向変更命令は、通信部1004が受信した画像方向変更命令である。また、この座標方向変更命令は、ステップS2402において制御部1001が自動座標方向変更処理を行うことにより実行される命令である。
従って、座標方向が変更されない状態(図7の座標2082)で画像方向のみが変更された状態(図6の撮像画像1072)となることにより、座標方向(正方向/反転方向)と撮像画像の画像方向(正方向/反転方向)が不一致となることを防ぐことができる。
一方、自動画像方向変更処理を実行中である場合(S2400においてYesの場合)は、制御部1001は画像方向変更命令を送信したクライアント用のタイマを削除する(S2410)。
そして制御部1001は、受信した画像方向変更命令の引数を読出し、メモリ1002
上の画像方向パラメータを変更する。また、制御部1001は自動画像方向変更処理を終了する(S2411)。
次に制御部1001は、ステップS2411において実行した画像方向変更命令に対する正常応答を、当該画像方向変更命令を送信したクライアントに送信する(S2412)。
このように、制御部1001は自動画像方向変更処理を実行した状態で画像方向変更命令を受信した場合に、自動画像方向変更処理を終了して、画像方向変更命令及び座標方向変更命令を実行する。この画像方向変更命令は通信部1004が受信した画像方向変更命令である。また、この座標方向変更命令は、自動画像方向変更処理を実行する前に通信部1004において受信された座標方向変更命令である。
これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標2083)に基づいて撮像範囲の変更を行うことができる。従って、画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。
このようにして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、画像方向変更命令を実行させることができる。
本実施例では、ステップS2400及びステップS2401において、制御部1001は、自動画像方向変更処理又は自動座標方向変更処理が画像方向変更命令を送信したクライアントからの命令に応じて実行された処理であるか判定する。このようにすることで、クライアントから画像方向変更命令を受信すると、同一クライアントからの座標方向変更命令の受信に先立って、画像方向変更命令及び座標方向変更命令を実行することができる。これにより、画像方向と座標方向が一致するようにして両方の命令を実行させる制御をクライアントごとに行うことができる。
または、ステップS2400及びステップS2401において、制御部1001は命令が画像方向変更命令を送信したクライアント3000によってなされた命令であるかについての判定を行わないようにしてもよい。この場合、クライアントを区別せず、撮像装置に対して当該1対の命令がなされた場合に両方の命令が実行される。従って、複数のクライアントが画像方向変更命令又は座標方向変更命令を行う場合でも、撮像装置1000は画像方向と座標方向が一致するようにして両方の命令を実行させることができる。
このようにして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、画像方向変更命令を実行させることができる。
次に、ステップ2130の座標方向変更処理について図9Bを用いて説明する。座標方向変更処理では、上述の画像方向変更処理と同様の処理を行う。
まず制御部1001は、メモリ1002を参照し、座標方向変更命令を送信したクライアント3000から受信した画像方向変更命令に応じて自動座標方向変更処理を実行しているかどうか判定する(S2500)。
自動座標方向変更処理を実行していない場合(S2500においてNoの場合)、制御部1001は、自動画像方向変更処理を実行しているかどうか判定する(S2501)。
自動画像方向変更処理を実行中である場合(S2501でYesの場合)は、制御部1001は、現在受信中の座標方向変更命令に対してエラー応答を送信する(S2520)。すなわち、通信部1004がすでに座標方向変更命令を受信している場合には、制御部1001は、現在受信中の座標方向命令に対してエラー応答を送信する。
このようにして、制御部1001は、座標方向変更命令を連続して受信した場合には、最初に受信した座標方向変更命令のみを実行させる制御を行う。こうして、本実施例にかかる撮像装置1000は、座標方向変更命令を重複して実行することを防止することができる。
自動画像方向変更処理を実行中でない場合(S2501でNoの場合)、制御部1001は受信した座標方向変更命令の引数を読出し、メモリ1002上の座標方向パラメータを変更する。さらに、自動画像方向変更処理を行う(S2502)。
そして制御部1001は、計時部1005を使用し、今回受信した座標方向変更命令を送信したクライアント用のタイマを起動する(S2504)。
次に制御部1001は、ステップS2502において実行した座標方向変更命令に対する正常応答を、当該座標方向変更命令を送信したクライアントに送信する(S2512)。
本実施例では、ステップS2500及びステップS2501において、制御部1001は、自動画像方向変更処理又は自動座標方向変更処理が座標方向変更命令を送信したクライアントからの命令に応じて実行された処理であるか判定する。このようにすることで、クライアントから座標方向変更命令を受信すると、同一クライアントからの画像方向変更命令の受信に先立って、画像方向変更命令及び座標方向変更命令を実行することができる。これにより、画像方向と座標方向が一致するようにして両方の命令を実行させる制御をクライアントごとに行うことができる。
また、通信部1004が第1のクライアントから画像方向変更命令及び座標方向変更命令のうち一方を受信してから第1のクライアントから画像方向変更命令及び座標方向変更命令のうち他方の命令を受信するまでは、制御部1001は第2のクライアントから受信した画像方向変更命令及び座標方向変更命令を実行しないようにしてもよい。すなわち、1台のクライアントから1対の画像方向変更命令及び座標方向変更命令を受信するまでは、他のクライアントからの画像方向変更命令又は座標方向変更命令に対してエラーを応答するようにしてもよい。
このようにすれば、画像方法変更命令及び座標方向変更命令のうち一方を送信したクライアントが他のクライアントによる命令の影響を受けることなく、撮像装置2000の制御を行うことができる。これにより、撮像装置2000の画像方向及び座標方向を常に一致させることができる。
または、ステップS2500及びステップS2501において、制御部1001は命令が座標方向変更命令を送信したクライアントによってなされた命令であるかについての判定を行わないようにしてもよい。この場合、クライアントを区別せず、撮像装置に対して当該1対の命令がなされた場合に両方の命令が実行される。従って、複数のクライアントが画像方向変更命令又は座標方向変更命令を行う場合でも、撮像装置1000は画像方向と座標方向が一致するようにして両方の命令を実行させることができる。
このように、本実施例の制御部1001は、座標方向変更命令を受信すると、当該命令を送信したクライアントからの画像方向変更命令に先立って、座標方向変更命令及び画像方向変更命令を実行する。この座標方向変更命令は、通信部1004が受信した座標方向変更命令である。また、この画像方向変更命令は、ステップS2502において制御部1001が自動画像方向変更処理を行うことにより実行される命令である。
従って、画像方向が変更されない状態(図6の撮像画像1071)で座標方向のみが変更された状態(図7の座標2083)となることにより、座標方向(正方向/反転方向)と撮像画像の画像方向(正方向/反転方向)が不一致となることを防ぐことができる。
一方、自動座標方向変更処理を実行中である場合(S2500においてYesの場合)は、制御部1001は座標方向変更命令を送信したクライアント用のタイマを削除する(S2510)。
そして制御部1001は、受信した座標方向変更命令の引数を読出し、メモリ1002上の座標方向パラメータを変更する。また、制御部1001は自動座標方向変更処理を終了する(S2511)。
次に制御部1001は、ステップS2511において実行した座標方向変更命令に対する正常応答を、当該座標方向変更命令を送信したクライアントに送信する(S2512)。
このように、制御部1001は自動座標方向変更処理を実行した状態で座標方向変更命令を受信した場合に、自動座標方向変更処理を終了して、座標方向変更命令及び画像方向変更命令を実行する。この座標方向変更命令は通信部1004が受信した座標方向変更命令である。また、この画像方向変更命令は、自動座標方向変更処理を実行する前に通信部1004において受信された画像方向変更命令である。
これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標2083)に基づいて撮像範囲の変更を行うことができる。従って、画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。
このようにして、撮像装置1000は撮像方向と座標方向が常に一致するようにして、画像方向変更命令を実行させることができる。
次に、図8のフローのステップS2140の自動変更処理命令タイムアウト処理について説明する。制御部1001は、タイムアウトが発生した場合、画像方向又は座標方向を自動変更処理(自動画像方向変更処理又は自動座標方向変更処理)を行う前の状態に戻すように制御することができる。すなわち、制御部1001は、自動画像方向変更処理を実行した場合には、切り出した撮像画像の画像方向を自動画像方向変更処理を実行する前の状態に戻すように回転させる。また、制御部1001は、自動座標方向変更処理を実行した場合には、座標方向を自動座標方向変更処理を実行する前の状態に戻すように座標を回転させる。
自動変更処理を実行する前の状態に戻すように画像方向又は座標方向を回転させた場合には、制御部1001はメモリ1002に自動画像方向変更処理又は自動座標方向変更処理を行う前の状態に戻したことを示す情報を保持させる。例えば、制御部1001は自動画像方向変更処理又は自動座標方向変更処理を実行する際に立てたメモリ1002上のフラグを降ろすようにすることができる。
このようにすれば、命令を実行することにより座標方向と撮像画像の画像方向が不一致となる場合であっても、所定時間経過後には、クライアントからの命令を指示された通りに実行させることができる。
または制御部1001は、タイムアウトが発生した場合、通信部1004が画像方向変更命令又は座標方向変更命令を受信する前の状態になるように、切り出した撮像画像の画像方向及び座標方向を回転させる制御を行うことができる。すなわち、制御部1001は、通信部1004が画像方向変更命令を受信し、当該画像方向変更命令とそれに応じた自動座標方向変更処理を実行した場合、撮像画像を画像方向変更処理を実行する前の状態になるように回転させる。さらに、制御部1001は、座標方向を自動座標方向変更処理を実行する前の状態になるように回転させる。または制御部1001は、通信部1004が座標方向変更命令を受信し、当該座標方向変更命令とそれに応じた自動画像方向変更処理を実行した場合、座標方向を座標方向変更命令を実行する前の状態になるように回転させる。さらに、制御部1001は、画像方向を自動画像方向変更命令を実行する前の状態になるように回転させる。
自動変更処理を実行する前の状態に戻すように画像方向又は座標方向を回転させた場合、制御部1001はメモリ1002に自動画像方向変更処理又は自動座標方向変更処理を行う前の状態に戻したことを示す情報を保持させる。
さらに、制御部1001は、画像方向変更命令又は座標方向変更命令を送信したクライアントに対し、切り出された撮像画像の画像方向又は座標方向が、当該画像方向変更命令又は座標方向変更命令を実行する前の状態に戻されたことを通知する。
このようにすれば、座標方向変更命令及び画像方向変更命令のうち一方のみが実行されることがないので、座標方向と画像方向が不一致となることを防ぐことができる。
以上のようにして、自動画像方向変更処理を実行してから所定時間経過しても画像方向変更命令を受信しない場合には、制御部1001は、通信部1004が受信した座標方向変更命令及び自動画像方向変更処理を実行させる前の状態に戻すように撮像画像及び座標系を回転させることができる。
同様に、自動座標方向変更処理を実行してから所定時間経過しても座標方向変更命令を受信しない場合には、制御部1001は、通信部1004が受信した画像方向変更命令及び自動座標方向変更処理を実行させる前の状態に戻すように撮像画像及び座標系を回転させることができる。
上記の例では、計時部1005は自動画像方向変更処理又は自動座標方向変更処理を受信してからカウントを開始する例について説明したが、計時部1005は画像方向変更命令又は座標方向変更命令を受信した時点からカウントを開始することとしてもよい。
このようにすれば、画像方向変更命令及び座標方向変更命令のうち一方を受信してから所定時間経過しても他方の命令を受信しない場合には、制御部1001は画像方向変更命令及び座標方向変更命令を実行させる前の状態に戻すように撮像画像および座標系を回転させる制御を行うことができる。
次に、画像座標方向変更処理について図9Cを用いて説明する。まず制御部1001は、メモリ1002上を参照して、自動変更処理(自動画像方向変更処理又は自動座標方向変更処理)を実行しているかを判定する(S2700)。自動変更処理を実行している場合(S2700でYesの場合)は、制御部1001は、計時部1005を使用し、起動中の全てのタイマを削除する(S2710)。
ここで、制御部1001が自動変更処理を実行している場合、撮像装置2000は1台のクライアントからは画像方向変更命令及び座標方向変更命令のうち一方のみ受信して実行している状態である。制御部1001は、ステップS2710の処理を行った後、クライアントから受信した命令を実行する前の状態に戻すように、画像方向又は座標方向を回転させる(S2711)。そして制御部1001は後述のステップS2701に処理を移す。
自動画像方向変更処理又は自動座標方向変更処理を行っていない場合(S2700でNoの場合)又は、ステップS2711の処理を終えた場合、制御部はステップS2701の処理を行う。ステップS2701において制御部1001は、受信している画像座標方向変更命令の画像・座標方向引数に従って、メモリ1002上の画像方向パラメータ、座標方向パラメータの双方を更新する。次に、制御部1001は、画像座標方向変更命令の送信元へ正常応答を送信する(S2702)。
このようにして制御部1001は自動画像方向変更処理又は自動座標方向変更処理を実行している場合に画像座標方向変更命令を受信した場合には、通信部1004が受信した命令及び自動変更処理を実行する前の状態に画像方向及び座標方向を変更した後、画像座標方向変更命令を実行する。
これにより、撮像装置1000は変更後の画像方向の撮像画像(図6の撮像画像1072)を出力し、変更後の座標(図7の座標2083)に基づいて撮像範囲の変更を行うことができる。従って、画像方向(正方向/反転方向)と座標方向(正方向/反転方向)が一致した状態で撮像画像を出力し、撮像範囲の変更を行うことができる。
以上の処理により、撮像装置2000は、画像の方向と撮像可能範囲の座標の方向が片方だけ変更された状態になることを防止することができる。また、複数のクライアントから受信する画像方向変更命令、座標方向変更命令を適切に処理し、正常/エラー応答を返送することができる。
本実施例では、ネットワーク3020を介して撮像装置1000に複数のクライアント3000が接続されている場合の処理について説明した。また本実施例では、クライアント3000からの命令に対して命令が正常に実行されたことを示す正常レスポンス又は命令が実行されなかったことを示すエラーレスポンスを行う場合の処理について説明した。さらに、本実施例では、画像座標方向変更命令をクライアント3000から受信した場合の処理について説明した。これらの処理は、本実施例のようにいわゆるデジタルPTZ機能を有する撮像装置に適用する場合に限られず、実施例1において説明した撮像装置にも適用できる。
(実施例3)
実施例3では、撮像装置1000に対して、図5Bに示す画像方向変更命令、又は、図5Cに示す座標方向変更命令をクライアント3000が送信するためのクライアントアプリケーションについて説明する。
クライアント3000が座標方向変更命令、又は、画像方向変更命令を撮像装置1000に対して送信する際の処理について図10A及び図10Bに示したフローチャートを用いて説明する。クライアント3000の制御部3001がプロセッサを内蔵する形態では、図10A及び図10Bの処理フローは、図10A及び図10Bに示される手順をクライアント3000の制御部3001に実行させるためのプログラムを示す。制御部3001が内蔵するプロセッサはコンピュータであり、クライアント3000が内蔵するメモリ3002から読み出したプログラムを実行する。あるいは、図10A及び図10Bの処理をハードウエアを用いて実行することとしてもよい。
まず、クライアント3000が座標方向変更命令を撮像装置1000に対して送信する場合について図10Aを用いて説明する。
座標方向変更命令を撮像装置1000に対して送信する指示をユーザがクライアント3000に対して行うと、制御部3001は当該座標方向変更命令が撮像装置1000において正常に実行されたか判定する(S3100)。制御部3001は、例えば、座標方向変更命令に対する撮像装置1000からの応答の内容に基づいて、座標方向変更命令が正常に実行されたか判定することができる。
座標方向変更命令が撮像装置1000において正常に実行されなかった場合(S3100においてNoの場合)、制御部3001は処理を終了する。一方、座標方向変更命令が撮像装置1000において正常に実行された場合(S3100においてYesの場合)、制御部3001は自動画像方向変更処理を行う(S3101)。ここで、自動画像方向変更処理とは、座標方向変更命令を撮像装置1000に送信する指示を受けると、画像方向変更命令を撮像装置に対して送信する指示の受信に先立って、自動的に画像方向変更命令を撮像装置1000に送信する処理のことをいう。
撮像装置1000において座標方向変更命令が正常に実行されたと判定した後に、自動的に画像方向変更命令を撮像装置1000に送信することができる。このようにして、座標方向変更命令を撮像装置1000に送信する指示を受けると、画像方向変更命令を撮像装置1000に対して送信するクライアントの指示に先立って撮像装置に座標方向変更命令御及び画像方向変更命令を実行させることができる。
このようにして、座標方向変更命令が正常に実行されてから、クライアントの指示によって画像方向変更命令が撮像装置1000に送信されるまでの間も、撮像画像の画像方向と座標方向とが不一致となることを防ぐことができる。
次に、制御部3001は計時部3006を用いてタイマを起動させる(S3102)。このタイマは、ステップS3101において自動的に送信される画像方向変更命令によって撮像画像の画像方向が変更された状態を継続する時間のうちどれだけの時間が経過したかを計測する。
次に、制御部3001はタイマを起動させてから所定時間が経過したか判定する(S3103)。ステップS3103の判定に用いる時間は任意に設定することができる。タイマを起動させてから所定時間が経過した場合(S3103でYesの場合)、制御部3001はタイマを削除する(S3104)。そして、制御部3001は自動画像方向変更処理を終了する(S3106)。制御部3001は、ステップS3101において撮像装置1000に送信した画像方向変更命令によって撮像画像を回転した方向と逆方向に、当該画像方向変更命令によって撮像画像を回転させた角度、現在の撮像画像を回転させる命令を撮像装置1000に送信する。このようにして、制御部3001は、ステップ3101において自動的に画像方向変更命令を撮像装置1000に送信してから所定時間経過後は、当該画像方向変更命令を送信する前の状態に戻すように撮像画像を回転させる。
ステップS3103において、タイマの起動から所定時間が経過していないと判定された場合(S3103においてNoの場合)、制御部3001はユーザから画像方向変更命令を撮像装置1000に送信する指示がなされたか判定する(S3105)。ユーザからの指示がない場合(S3105においてNoの場合)、制御部3001はステップS3103の処理を繰り返す。
一方、ユーザから画像方向変更命令を撮像装置1000に送信する指示がなされた場合(S3105においてYesの場合)、制御部3001はステップS3101において行った自動画像方向変更処理を終了する処理を行う。すなわち、制御部3001は、ステップS3101において撮像装置1000に送信した画像方向変更命令によって撮像画像を回転した方向と逆方向に、当該画像方向変更命令によって撮像画像を回転させた角度だけ、現在の撮像画像を回転させる命令を撮像装置1000に送信する。このようにして、ユーザにより指示された画像方向変更命令とステップS3101において行った自動画像方向変更命令が重複して実行されることを防ぐことができる。
このようにして、ユーザから画像方向変更命令を送信する指示がなされた場合には、撮像装置1000において、ユーザの指示に応じて送信する座標方向変更命令が実行される。また、ユーザの指示に応じて送信する画像方向変更命令が撮像装置1000において実行される。従って、画像方向と座標方向が一致した状態とすることができる。
次に、クライアント3000が画像方向変更命令を撮像装置1000に対して送信する場合について図10Bを用いて説明する。画像方向変更命令を撮像装置1000に対して送信する場合にも、図10Aを用いて説明した処理と同様の処理を行う。
画像方向変更命令を撮像装置1000に対して送信する指示をユーザがクライアント3000に対して行うと、制御部3001は当該画像方向変更命令が撮像装置1000において正常に実行されたか判定する(S4100)。
画像方向変更命令が撮像装置1000において正常に実行されなかった場合(S4100においてNoの場合)、制御部3001は処理を終了する。
一方、画像方向変更命令が撮像装置1000において正常に実行された場合(S4100においてYesの場合)、制御部3001は自動座標方向変更処理を行う(S4101)。ここで、自動座標方向変更処理とは、画像方向変更命令を撮像装置1000に送信する指示を受けると、座標方向変更命令を撮像装置に対して送信する指示の受信に先立って、自動的に座標方向変更命令を撮像装置1000に送信する処理のことをいう。
次に、制御部3001は計時部3006を用いてタイマを起動させる(S4102)。次に、制御部3001はタイマを起動させてから所定時間が経過したか判定する(S4103)。
タイマを起動させてから所定時間が経過した場合(S4103でYesの場合)、制御部3001はタイマを削除する(S4104)。そして、制御部3001は自動座標方向変更処理を終了する(S4106)。
ステップS4103において、タイマの起動から所定時間が経過していないと判定された場合(S4103においてNoの場合)、制御部3001はユーザから座標方向変更命令を撮像装置1000に送信する指示がなされたか判定する(S4105)。ユーザからの指示がない場合(S4105においてNoの場合)、制御部3001はステップS4103の処理を繰り返す。
一方、ユーザから画像方向変更命令を撮像装置1000に送信する指示がなされた場合(S4105においてYesの場合)、制御部3001はステップS4101において行った自動座標方向変更処理を終了する処理を行う。
このようにして、ユーザから座標方向変更命令を送信する指示がなされた場合には、撮像装置1000において、ユーザの指示に応じて送信する画像方向変更命令が撮像装置100において実行される。また、ユーザの指示に応じて送信する座標方向変更命令が撮像装置1000において実行される。従って、画像方向と座標方向が一致した状態とすることができる。
こうして、制御部3001は画像方向変更命令又は座標方向変更命令のうち一方の命令を撮像装置1000に送信する指示を受けると、画像方向変更命令及び座標方向変更命令のうち他方の命令を撮像装置1000に送信する指示の受信に先立って、撮像装置1000に画像方向変更命令及び座標方向変更命令を実行させる制御を行う。
以上の処理により、クライアント3000は制御対象の撮像装置において、画像の方向と撮像可能範囲の座標の方向が片方だけ変更された状態になることを防止することができる。したがって、撮像装置1000から配信されている撮像画像を見ながら撮像範囲を変更する場合、配信されている撮像画像の方向と同じ方向に撮像範囲を変更させることが可能となる。よって、ユーザの意図に沿った撮像範囲の変更を実現することが可能となる。
(その他の実施例)
実施形態は必ずしも上述の限りでなく、部分的に変更されてもよい。実施例1から実施例3では画像方向変更、座標方向変更のインタフェースは、正向き/反転向きのいずれかを指定する場合について説明したがこの限りではない。90度毎の指定や、1度毎の指定ができるようなインタフェースであってもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために以下の請求項を添付する。