以下、本発明を実施するための最良の形態について、添付図面を参照して説明を行う。
(第1の実施形態)
まず、本発明の第1の実施形態について説明する。
図1は、本発明の第1の実施形態に係る撮像制御システムの概略構成の一例を示す図である。
図1に示すように、撮像制御システム100は、カメラサーバ110と、ビューワクライアント120と、ネットワーク130とを有して構成されている。
カメラサーバ110は、撮影画角が可変であり、360度の全周をエンドレスに旋回するカメラ(ネットワークカメラ)を備えている。そして、カメラサーバ110は、当該カメラにより撮影(撮像)された画像の画像データを、ネットワーク130を介して配信する。
ビューワクライアント120は、カメラサーバ110にアクセスしてカメラの設定を変更し、当該カメラでの撮像の結果得られた画像データを処理し、或いは、蓄積された画像データなどを処理して、処理後の画像データに基づく画像の表示を行うものである。
なお、図1に示す撮像制御システム100には、クライアントとして、ビューワクライアント120のみを示しているが、ビューワクライアント120以外に、カメラサーバ110にアクセスして画像データの受信や蓄積を行う他のクライアントを構成しても良い。
ネットワーク130は、カメラサーバ110とビューワクライアント120とを通信可能に接続するものであり、例えば、Ethernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成されている。なお、本実施形態において、ネットワーク130は、カメラサーバ110とビューワクライアント120とを間の通信が支障なく行えるものであれば、その通信規格や規模、構成は問わない。したがって、ネットワーク130としては、インターネットからLAN(Local Area Network)にまで適用が可能である。
図2は、図1に示すカメラサーバ110の内部構成の一例を示すブロック図である。
カメラサーバ110は、その内部に内部バス201が構成されている。そして、カメラサーバ110は、内部バス201に接続された、CPU200、1次記憶装置210、2次記憶装置220、及び、各種のインターフェース(I/F)230〜260を有して構成されている。具体的に、カメラサーバ110には、各種のI/Fとして、画像キャプチャI/F230、雲台制御I/F240、入出力I/F250及び、ネットワークI/F260が構成されている。さらに、カメラサーバ110は、画像キャプチャI/F230に接続されたカメラ231、雲台制御I/F240に接続された雲台241、及び、入出力I/F250に接続された入出力機器(I/O機器)251を有して構成されている。
CPU200は、当該カメラサーバにおける動作を統括的に制御するものである。
1次記憶装置210は、例えば、RAMに代表される書き込み可能な高速の記憶装置である。この1次記憶装置210は、例えば、OS(オペレーティングシステム)や各種のプログラム及び各種のデータ等がロードされ、また、CPU200がOSや各種のプログラム等を実行する際の作業領域としても使用される。
2次記憶装置220は、例えば、FDDやHDD、フラッシュメモリ、CD−ROMドライブ等に代表される不揮発性の記憶装置である。この2次記憶装置220は、OSや各種のプログラム及び各種のデータ等の永続的な記憶領域として使用される他に、短期的な各種のデータ等の記憶領域としても使用される。
画像キャプチャI/F230は、接続されているカメラ231で撮影(撮像)された画像の画像データを所定のフォーマットに変換・圧縮して、例えば、2次記憶装置220(1次記憶装置210であっても良い)に転送する。カメラ231は、360度の全周をエンドレスに旋回可能に構成された撮像手段である。
雲台制御I/F240には、カメラ231を搭載した可動式の雲台241が接続されている。雲台制御I/F240は、CPU200からの命令を受けて雲台241を制御し、カメラ231のパン角、チルト角等を変更する。
入出力I/F250は、接続されているI/O機器251を介して、外部からの信号・割り込みを受け付けたり、外部への信号の出力を行ったりする。
ネットワークI/F260は、図1に示すネットワーク130と接続するためのインターフェースであり、ネットワーク130を介して、ビューワクライアント120等との通信を担う。
図3は、図1に示すビューワクライアント120の内部構成の一例を示すブロック図である。
ビューワクライアント120は、その内部に内部バス301が構成されている。そして、ビューワクライアント120は、内部バス301に接続された、CPU300、1次記憶装置310、2次記憶装置320、ユーザ入出力I/F330、及び、ネットワークI/F350を有して構成されている。さらに、ビューワクライアント120は、ユーザ入出力I/F330に接続された入出力機器(I/O機器)331を有して構成されている。
CPU300は、当該ビューワクライアントにおける動作を統括的に制御するものである。
1次記憶装置310は、例えば、RAMに代表される書き込み可能な高速の記憶装置である。この1次記憶装置310は、例えば、OSや各種のプログラム及び各種のデータ等がロードされ、また、CPU300がOSや各種のプログラム等を実行する際の作業領域としても使用される。
2次記憶装置320は、例えば、FDDやHDD、フラッシュメモリ、CD−ROMドライブ等に代表される不揮発性の記憶装置である。この2次記憶装置320は、OSや各種のプログラム及び各種のデータ等の永続的な記憶領域として使用される他に、短期的な各種のデータ等の記憶領域としても使用される。
ユーザ入出力I/F330は、接続されているI/O機器331を介してユーザとの入出力を司るものである。I/O機器331は、例えば、キーボード、マウス、ディスプレイ等から構成される入出力機器である。
ネットワークI/F340は、図1に示すネットワーク130と接続するためのインターフェースであり、ネットワーク130を介して、カメラサーバ110等との通信を担う。
図4は、図2に示すカメラサーバ110の1次記憶装置210及び2次記憶装置220に記憶される各種のプログラムや各種のデータ等の一例を示す図である。具体的には、図4(a)に、図2に示すカメラサーバ110の1次記憶装置210に記憶される各種のプログラム等を示し、図4(b)に、図2に示すカメラサーバ110の2次記憶装置220に記憶される各種のデータ等を示す。
図4(a)に示すように、1次記憶装置210には、OS400、画像撮像プログラム410、パノラマ画像作成プログラム420、設定プログラム430、及び、プリセット巡回プログラム440がロードされる。但し、パノラマ画像作成プログラム420、設定プログラム430及びプリセット巡回プログラム440は、必ずしも、カメラサーバ110の1次記憶装置210に存在する必要はない。例えば、後述するように、ビューワクライアント120の1次記憶装置310に存在しても良い。
図4(a)に示すOS400は、カメラサーバ110の全体を制御するための基本プログラムである。ここで、各種のプログラム(410〜440)の1次記憶装置210における位置(番地)や大きさは、OS400が管理する。
図4(a)に示す画像撮像プログラム410は、カメラ231における画像の撮像の処理を行うと共に、受信したイベントに基づいてカメラ231で撮像された画像の処理を行う。
例えば、画像撮像プログラム410は、カメラ231から画像キャプチャ終了イベントを受信すると、カメラ231で撮像された画像の画像データを画像キャプチャI/F230を介して取得する処理を行う。そして、画像撮像プログラム410は、取得した画像データを所定のフォーマットに変換・圧縮して、これを撮像画像データ450として2次記憶装置220に記憶して保存(蓄積)する処理を行う。また、画像撮像プログラム410は、ネットワーク130を介して外部装置であるビューワクライアント120から配送要求イベントを受信すると、2次記憶装置220に保存されている撮像画像データ450をビューワクライアント120へ配送する処理を行う。このように、画像撮像プログラム410は、撮像画像データ450を管理等するためのイベントを受信することで、カメラサーバ110のカメラ231による画像(画像データ)の撮像からネットワーク130を介した画像データの配信等に至るまでの処理を行う。
図4(a)に示すパノラマ画像作成プログラム420は、2次記憶装置220に保存されている撮像画像データ450を用いて、指定された任意の向きを中心に360度のパノラマ画像データを作成する処理を行う。この際、パノラマ画像作成プログラム420は、例えば、原点(0度)を中心とするパノラマ画像データや、カメラ231の現在向いている角度を中心とするパノラマ画像データ、或いは、複数のプリセット地点の重心を中心とするパノラマ画像データ等を作成する。そして、パノラマ画像作成プログラム420は、作成したパノラマ画像データをパノラマ画像データ460として2次記憶装置220に記憶して保存(蓄積)する処理を行う。
図4(a)に示す設定プログラム430は、従来のネットワークカメラにおける設定データを拡張して、プリセット位置情報に加えてその巡回経路の属性情報に基づいて、プリセット巡回プログラム440のための設定データを生成する処理を行う。そして、設定プログラム430は、生成した設定データを設定データ470として2次記憶装置220に記憶して保存(蓄積)する処理を行う。
図4(a)に示すプリセット巡回プログラム440は、従来のネットワークカメラにおける機能を拡張したものである。具体的に、プリセット巡回プログラム440は、2次記憶装置220に保存されている設定データ470を読み込んで、当該設定データ470に基づいて、雲台制御I/F240を介して雲台241を制御して、自動プリセット巡回を実行する処理を行う。
図4(b)に示すように、2次記憶装置220には、撮像画像データ450、パノラマ画像データ460、及び、設定データ470が保存される。但し、パノラマ画像データ460及び設定データ470は、必ずしも、カメラサーバ110の2次記憶装置220に存在する必要はない。例えば、後述するように、ビューワクライアント120の2次記憶装置320に存在しても良い。
図4(b)に示す撮像画像データ450は、カメラ231で撮像されて、画像撮像プログラム410で処理された画像データである。
図4(b)に示すパノラマ画像データ460は、パノラマ画像作成プログラム420による処理で作成された画像データである。
設定データ470は、従来のプリセット巡回のための設定データを拡張したものであって、カメラサーバ110の動作を制御するための設定値であり、特に、プリセット巡回に係る移動経路(巡回経路)の属性情報を持たせるようにしたものである。具体的に、設定データ470は、プリセット位置におけるPTZの値を設定することに加えて、プリセット巡回の少なくとも2点間の属性を保持させるようにしたものである。
図5は、図3に示すビューワクライアント120の1次記憶装置310及び2次記憶装置320に記憶される各種のプログラムや各種のデータ等の一例を示す図である。具体的には、図5(a)に、図3に示すビューワクライアント120の1次記憶装置310に記憶される各種のプログラム等を示し、図5(b)に、図3に示すビューワクライアント120の2次記憶装置320に記憶される各種のデータ等を示す。
図5(a)に示すように、1次記憶装置310には、OS500、及び、ビューワプログラム510がロードされる。また、1次記憶装置310には、必要に応じて、カメラサーバ110の1次記憶装置210のプログラム420〜440に替えて、パノラマ画像作成プログラム520、設定プログラム530及びプリセット巡回プログラム540がロードされる。
図5(a)に示すOS500は、ビューワクライアント120の全体を制御するための基本プログラムである。ここで、各種のプログラム(510〜540)の1次記憶装置310における位置(番地)や大きさは、OS500が管理する。
図5(a)に示すビューワプログラム510は、カメラサーバ110で撮像された撮像画像データに基づく画像を表示装置341に表示する際の処理を行う。例えば、ビューワプログラム510は、表示装置341にユーザインターフェースを表示するためのユーザインターフェース機能を備えている。このユーザインターフェース機能によるユーザインターフェースの表示により、カメラサーバ110からの動画像の表示や静止画像の表示、及び、ユーザ操作による動画像の表示や静止画像の表示、蓄積画像の表示、並びに、カメラ231の設定が行なわれる。なお、ユーザインターフェースとしては、例えば、CUIやGUI、或いはWebアプリケーションなどを適用することができる。また、ここで言うCUIやGUI、或いはWebアプリケーションのインターフェースは、例えば、カメラサーバ110の設定プログラム430(或いは、設定プログラム530)によって提供される。
図5(a)に示すパノラマ画像作成プログラム520、設定プログラム530及びプリセット巡回プログラム540は、それぞれ、図4(a)のパノラマ画像作成プログラム420、設定プログラム430及びプリセット巡回プログラム440と同様のものである。
図5(b)に示すように、2次記憶装置320には、必要に応じて、カメラサーバ110の2次記憶装置310のパノラマ画像データ460及び設定データ470に替えて、それぞれ、パノラマ画像データ560及び設定データ570が保存されてもよい。
図5(b)に示すパノラマ画像データ560及び設定データ570は、それぞれ、図4(b)のパノラマ画像データ460及び設定データ470と同様のものである。この際、例えば、パノラマ画像データ560は、パノラマ画像作成プログラム520の処理により作成されたものであり、設定データ570は、設定プログラム530の処理により生成されたものである。
図6は、本発明の第1の実施形態を示し、設定プログラム430を用いた処理手順の一例を示すフローチャートである。この際、図6に示すフローチャートは、例えば、カメラサーバ110のCPU200が、図4に示す1次記憶装置210に記憶されている設定プログラム430を実行することによって行われる。
なお、上述したように、ビューワクライアント120に設定プログラム530が記憶されている形態の場合には、図6の処理は、ビューワクライアント120のCPU300が、図5の1次記憶装置310の設定プログラム530を実行することにより行われる。また、本実施形態では、ビューワクライアント120において、ネットワーク130を介して、カメラサーバ110の設定データ470を読み込んで、ビューワクライアント120側で処理を行う形態も、適用することが可能である。
以下の説明では、設定プログラムがカメラサーバ110に記憶されており、当該設定プログラムを用いてカメラサーバ110側のCPU200で処理を行う場合について説明するが、ビューワクライアント120側のCPU300で処理を行う形態であっても良い。
まず、図6の処理を開始する際に、カメラサーバ110のCPU200は、1次記憶装置210に記憶されている設定プログラム430を用いた処理を開始する。そして、ステップS601において、カメラサーバ110のCPU200は、設定データ470を読み込む処理を行う。
なお、図6の処理をビューワクライアント120側で行う場合には、CPU300において、自装置に記憶されている設定プログラム530、或いは、ネットワーク130を介して、カメラサーバ110の設定データ470を読み込む処理が行われる。
続いて、ステップS602において、カメラサーバ110のCPU200は、設定データ470を、ホスト(例えば、ビューワクライアント120)のディスプレイにダイアログ等として表示する処理を行う。その表示形態については後述する。なお、図6の処理をビューワクライアント120側で行う場合には、CPU300において、当該表示処理が行われる。
続いて、ステップS603において、カメラサーバ110のCPU200は、例えば、ユーザからI/O機器331を介して入力された情報等に基づいて、設定データ470の入力や修正(変更)等の処理を行う。これは、例えば、図8の設定データ470(470−1)の例に示すような表形式のGUI上で、設定データの各値が編集等されることで実現される。なお、図6の処理をビューワクライアント120側で行う場合には、CPU300において、当該入力・変更処理が行われる。
続いて、ステップS604において、カメラサーバ110のCPU200は、例えばI/O機器331を介してユーザから、設定データ470の設定に係る終了のイベントがあったか否かを判断する。この判断の結果、設定データ470の設定に係る終了のイベントがない場合には、ステップS602に戻る。
一方、ステップS604の判断の結果、設定データ470の設定に係る終了のイベントがあった場合には、ステップS605に進む。ステップS605に進むと、カメラサーバ110のCPU200は、ステップS603で処理された設定データ470を、自装置の2次記憶装置220に記憶して保存して、設定データ470の設定を行う。その後、処理を終了する。
なお、図6の処理をビューワクライアント120側で行う場合には、CPU300において、ステップS604の終了イベントの有無の判断がなされる。そして、終了イベントがあった場合に、CPU300において、設定データ570を、自装置の2次記憶装置320に記憶して保存する処理が行われる。
図7は、本発明の第1の実施形態を示し、プリセット巡回プログラム440を用いた処理手順の一例を示すフローチャートである。この際、図7に示すフローチャートは、例えば、カメラサーバ110のCPU200が、図4に示す1次記憶装置210に記憶されているプリセット巡回プログラム440を実行することによって行われる。
なお、上述したように、ビューワクライアント120にプリセット巡回プログラム540が記憶されている形態の場合には、図7の処理は、ビューワクライアント120のCPU300が、当該プリセット巡回プログラム540を実行することにより行われる。
以下の説明では、プリセット巡回プログラムがカメラサーバ110に記憶されており、当該プリセット巡回プログラムを用いてカメラサーバ110側のCPU200で処理を行う場合について説明する。しかしながら、本実施形態においては、上述したように、プリセット巡回プログラムを用いてビューワクライアント120側のCPU300で処理を行う形態であっても良い。
まず、図7の処理を開始する際に、カメラサーバ110のCPU200は、1次記憶装置210に記憶されているプリセット巡回プログラム440を用いた処理を開始する。そして、ステップS701において、カメラサーバ110のCPU200は、設定データ470を読み込む処理を行う。
なお、図7の処理をビューワクライアント120側で行う場合には、CPU300において、自装置に記憶されているプリセット巡回プログラム540を用いた処理を開始し、設定データ570を読み込む処理が行われる。この際、ネットワーク130を介して、カメラサーバ110の設定データ470を読み込む処理を行うようにしても良い。
続いて、ステップS702において、カメラサーバ110のCPU200は、ステップS702で読み込んだ設定データ470に基づいて、雲台241及びカメラ231を制御して、カメラ231の旋回動作を制御する処理を行う。この際、CPU200は、画像撮像プログラム410を用いて、雲台241及びカメラ231の制御を行う。
なお、図7の処理をビューワクライアント120側で行う場合には、CPU300が、設定データ570に基づいて、カメラサーバ110のCPU200を介して、雲台241及びカメラ231の制御を行う形態となる。
続いて、ステップS703において、カメラサーバ110のCPU200は、例えばI/O機器331を介してユーザから、プリセット巡回に係る制御の終了のイベントがあったか否かを判断する。この判断の結果、プリセット巡回に係る制御の終了のイベントがない場合には、ステップS701に戻る。ここで、ステップS701に戻るのは、設定プログラム430によって設定データ470が非同期に変更されている可能性があるからである。
一方、ステップS703の判断の結果、プリセット巡回に係る制御の終了のイベントがあった場合には、処理を終了する。
次に、設定データ470(或いは設定データ570)の表示形態について説明する。
図8は、設定データ470−1の一例を示す図である。この図8に示す設定データ470−1は、例えば、ビューワクライアント120のユーザ入出力I/F330におけるディスプレイに表示される。この際、具体的なユーザインターフェースについては従来と同様のGUIなどを適用することが可能であるため、その説明は省略する。
図8に示す設定データ470−1では、カメラ231に対するプリセット位置情報Preset1〜Preset9として、それぞれ、Pan/Tilt/Zoomの値を設定して画角を定めることで、360度全周の任意のプリセット位置が設定される。このプリセット位置を設定することで、カメラ231における複数の撮像位置が設定される。さらに、静止時間情報Pauseを定めることで、そのプリセット位置での停止時間が設定される。
さらに、図8に示す設定データ470−1では、カメラ231のプリセット巡回に係る移動経路(巡回経路)の属性情報をPreset_Tour_Attributeとして設定している。具体的に、図8に示す例では、カメラ231の巡回経路の属性情報として、プリセット位置情報Preset1〜Preset3における巡回の順序を示す巡回順序情報Tourと、速度情報Speed及び巡回方向情報Roundの属性が設定される。
速度情報Speedは、PTZの移動速度であり、PTZそれぞれに設定しても良いが、本実施形態では、便宜的に1つの情報として示している。また、巡回方向情報Roundは、正負をもった整数であり、例えば、正(プラス)の値が右旋回を示し、負(マイナス)の値が左旋回を示し、例えば0の場合には同一の360度全周内の旋回を示す。図8に示す例では、プリセット位置情報Preset1〜Preset3における全て巡回方向情報Roundが0であり、この場合のカメラ231の動作は、その巡回がエンドレスでない、従来の360度PTZカメラと同様の動きとなる。
即ち、図8に示す設定データ470−1を用いた場合のステップS702の処理では、雲台241及びカメラ231の制御は、以下に示す従来制御1と同様となる。
具体的に、中心を0度とし、その右方向をプラス、その左方向をマイナスとして合わせて±180度の360度を全周とする。そして、上方向にプラス、下方向にマイナスとした場合に、プリセット巡回は、Preset1→Preset3→Preset2→Preset1→…となる。そして、Preset1の(P,T,Z)が(100,−60,30)に設定され、その位置で、画角30度で撮像が10秒間行われる。その後、Preset3の(P,T,Z)である(−100,30,30)に向かって、左へ200度、上へ90度だけ雲台241が移動制御される。この雲台241の移動に伴ってカメラ231が移動し、以下の説明においても同様とする。この状態で撮像を10秒間行った後、Preset2の(P,T,Z)である(−150,20,15)に向かって、左へ50度、下へ10度だけ雲台241が移動制御され、また、画角20度へカメラ231が制御される。この状態で撮像を10秒行った後、Preset1に向かって、右へ250度、下へ80度だけ雲台241が移動制御され、また、画角30度へカメラ231が制御される。そして、この状態で撮像を10秒間行って、以下、繰り返し処理が行われる。この制御の際のスピードは、速度情報Speedの値により適宜制御される。
この制御により処理では、PTが制御される角度は、次のプリセット位置にむけての角度の増加分だけ、パン(pan)は右、チルト(Tilt)は上に制御される。また、増加分がマイナス、つまり減少しているときには、パンは左、チルトは下に制御される。
また、例えば、360度エンドレスのカメラで最短距離へ制御する場合には、パンの移動による角度の増加(減少)分Xの絶対値が180を超えた場合に、(360−X)度分だけ逆に回転させることになる。つまり、この場合、ステップS702の処理による雲台241の移動制御では、図8の設定データ470−1を用いて、以下に示す従来制御2と同様となる。
具体的に、従来制御1と同様に、プリセット巡回は、Preset1→Preset3→Preset2→Preset1→…となる。そして、Preset1の(P,T,Z)が(100,−60,30)に設定され、その位置で、画角30度で撮像が10秒間行われる。その後、Preset3の(P,T,Z)である(−100,30,30)に向かって、右へ160度だけ雲台241が移動制御されて撮像が行われる。その後、Preset2の(P,T,Z)である(−150,20,15)に向かって、左へ50度だけ雲台241が移動制御されて撮像が行われ、その後、Preset1に向かって、左へ110度だけ雲台241が移動制御されて撮像が行われる。以下、同様に繰り返し処理が行われる。
この360度エンドレスのカメラの場合、前述した360度エンドレスでないカメラの場合の裏側でプリセット巡回をするような例となっている。
これに対して、本実施形態では、設定データ470(或いは設定データ570)の巡回方向情報Roundを0以外の値とするものである。即ち、本実施形態では、設定データ470において、360度の周回を跨いだ移動経路(巡回経路)を設定するものである。
ここで、ステップS702において、設定データ470(或いは設定データ570)の巡回方向情報Roundが0以外の値に設定されている場合の処理について説明する。上述したように、巡回方向情報Roundの値が0以外の場合、正の値であれば、その数だけ右旋回し、負の値であれば、その数だけ左旋回することになる。そのため、本実施形態の場合には、前述した雲台241の従来制御1のパン制御角度に、符号付の巡回方向情報Roundの値に360度を掛けてから、加算して制御することになる。
図9は、本発明の第1の実施形態に係る設定データ470−2の一例を示す図である。具体的に、図9に示す例では、設定データ470−2には、プリセット位置情報Preset1における巡回方向情報Roundの値として「−1」が設定されている。同様に、プリセット位置情報Preset2における巡回方向情報Roundの値として「+1」が設定され、プリセット位置情報Preset3における巡回方向情報Roundの値として「−1」が設定されている。
即ち、図9に示す設定データ470−2を用いた場合のステップS702の処理では、雲台241及びカメラ231の制御は、以下に示す本特許制御1の動作が行われる。
具体的に、プリセット巡回は、Preset1→Preset3→Preset2→Preset1→…となる。そして、Preset1の(P,T,Z)が(100,−60,30)に設定され、その位置で、画角30度で撮像が10秒間行われる。その後、Preset3の(P,T,Z)である(−100,30,30)に向かって、Round=−1に示す巡回方向に基づいて、左方向へ(−200−360)の560度だけ雲台241が移動制御されて撮像が行われる。その後、Preset2の(P,T,Z)である(−150,20,15)に向かって、Round=+1に示す巡回方向に基づいて、右方向へ(−50+360)の310度だけ雲台241が移動制御されて撮像が行われる。その後、Preset1に向かって、Round=−1に示す巡回方向に基づいて、左方向へ(+250−360)の110度だけ雲台241が移動制御されて撮像が行われる。以下、繰り返し処理が行われる。
この場合、プリセット巡回を一巡すると、カメラ231は、当初より360度だけ左を向いた状態になり、その後もズレが増加していくが、巡回経路のループが閉じた形態でない、巡回経路のループが開いたプリセット巡回の設定を行うことが可能となっている。以上のように、設定データを設定することで、360度の全周に制限されない、プリセット巡回が実現される。この際、上述したように、プリセット巡回の経路も閉じたものだけでなく、開いたプリセット巡回の経路が実現される。
また、本実施形態の変形例として、ステップS702の処理において、設定データ470の巡回方向情報Roundの値に0を認めず、必ず、正負の整数を入れるように設定することも考えられる。この場合、例えば、設定データ470の巡回方向情報Roundの値が0の場合には処理を行わず、巡回方向情報Roundの値がプラスである場合に右旋回を設定し、マイナスである場合に左旋回を設定して、次のプリセット位置へ向かうと判定すればよい。この際、周回に関しては、それぞれ絶対値から1を減算した周回数で計算する。
図10は、本発明の第1の実施形態に係る設定データ470−3の他の一例を示す図である。具体的に、図10に示す例では、設定データ470−3には、プリセット位置情報Preset1における巡回方向情報Roundの値として「−1」が設定されている。また、設定データ470−3には、プリセット位置情報Preset2における巡回方向情報Roundの値として「−2」が設定され、プリセット位置情報Preset3における巡回方向情報Roundの値として「+2」が設定されている。
即ち、図10に示す設定データ470−3を用いた場合のステップS702の処理では、雲台241及びカメラ231の制御は、以下に示す本特許制御2の動作が行われる。
具体的に、プリセット巡回は、Preset1→Preset3→Preset2→Preset1→…となる。そして、Preset1の(P,T,Z)が(100,−60,30)に設定され、その位置で、画角30度で撮像が10秒間行われる。その後、Preset3の(P,T,Z)である(−100,30,30)に向かって、Round=−1に示す巡回方向に基づいて、左方向へ200度だけ雲台241が移動制御されて撮像が行われる。その後、Preset2の(P,T,Z)である(−150,20,15)に向かって、Round=−2に示す巡回方向に基づいて、左方向へ50度、さらに360度の計410度だけ雲台241が移動制御されて撮像が行われる。その後、Preset1に向かって、Round=+2に示す巡回方向に基づいて、右方向へ50度、さらに360度の計610度だけ雲台241が移動制御されて撮像が行われる。以下、繰り返し処理が行われる。
以上のように、周回数も考慮した設定データを設定することで、明確に右旋回(右巡回)か左旋回(左巡回)を指定したプリセット巡回の動作の設定が実現できる。
次に、ステップS702における、上述した本特許制御1及び本特許制御2における雲台241のパン角度の算出方法について説明する。
図11は、図7に示すステップS702における雲台241のパン角度の算出方法の一例を示すフローチャートである。
ここで、以下の説明では、中心が0度で左右±180度のパンの座標において、(P1,T1,Z1)が元のプリセット位置、(P2,T2,Z2)が移動先のプリセット位置、その間のPreset_Tour_AttributeのRoundの値をRとする。また、その際、Roundがプラスの場合は右旋回、マイナスの場合は左旋回とする。
まず、ステップS1101において、カメラサーバ110のCPU200は、パン(Pan)値P1及びP2と、Round値であるRを読み込む。
続いて、ステップS1102において、カメラサーバ110のCPU200は、設定データ470の内容に基づいて、上述した本特許制御1を実行するのか、上述した本特許制御2を実行するのかについて判断する。
ステップS1102に判断の結果、本特許制御1を実行する場合には、ステップS1103に進む。ステップS1103に進むと、カメラサーバ110のCPU200は、P2−P1+R×360を計算して、パン角度を算出する。その後、処理を終了する。
一方、ステップS1102に判断の結果、本特許制御2を実行する場合には、ステップS1104に進む。なお、R=+1は右回り0周回を示し、R=+2は右回り1周回を示している。同様に、R=−1は左回り0周回を示し、R=−2は左回り1周回を示している。
ステップS1104に進むと、カメラサーバ110のCPU200は、Round値であるRが正(右回り)であるか否かを判断する。この判断の結果、Round値であるRが正(右回り)である場合には、ステップS1105に進む。
ステップS1105に進むと、カメラサーバ110のCPU200は、P2−P1が正であるか否かを判断する。
ステップS1105の判断の結果、P2−P1が正である場合には、ステップS1106に進む。ステップS1106に進むと、カメラサーバ110のCPU200は、P2−P1に(R−1)×360を加算することで右回りに(R−1)周回した後、P2で止まるパン角度を算出する。その後、処理を終了する。
一方、ステップS1105の判断の結果、P2−P1が正ではない場合(即ち、負である場合)には、ステップS1107に進む。ステップS1106に進むと、カメラサーバ110のCPU200は、P2−P1にR×360を加算することで右回りに(R−1)周回した後、P2で止まるパン角度を算出する。その後、処理を終了する。
また、ステップS1104の判断の結果、Round値であるRが正(右回り)ではない場合(即ち、負(左回り)である場合)には、ステップS1108に進む。
ステップS1108に進むと、カメラサーバ110のCPU200は、P2−P1が負であるか否かを判断する。
ステップS1108の判断の結果、P2−P1が負である場合には、ステップS1109に進む。ステップS1109に進むと、カメラサーバ110のCPU200は、P2−P1に(R+1)×360を加算することで左回りに(R−1)周回した後、P2で止まるパン角度を算出する。その後、処理を終了する。
一方、ステップS1108の判断の結果、P2−P1が負ではない場合(即ち、正である場合)には、ステップS1110に進む。ステップS1110に進むと、カメラサーバ110のCPU200は、P2−P1にR×360を加算することで左回りに(R−1)周回した後、P2で止まるパン角度を算出する。その後、処理を終了する。
なお、上述した図11のフローチャートの説明に当たっては、カメラサーバ110のCPU200が処理を行う例を示したが、ビューワクライアント120のCPU300が処理を行う形態であっても良い。
本実施形態においては、上述した本特許制御1及び本特許制御2の処理は、どちらか一方の処理を行う形態であっても、これらの処理を切り替えて行う形態であっても適用可能である。この場合、明示的に巡回方向を決定する際には、本特許制御2の処理を用いることがより好適である。
本実施形態によれば、360度の全周に制限されないプリセット巡回を実現できる。また、プリセット巡回の経路も閉じたものだけでなく、開いたプリセット巡回の経路を実現できる。さらに、明確に右旋回(右巡回)か左旋回(左巡回)かを指定したプリセット巡回の動作の設定が実現できる。これにより、撮像手段(カメラ231)を用いた撮像において、従来よりも、撮像の自由度をより向上させることができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
第2の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
上述した第1の実施形態では、設定データ470を一般的なユーザインターフェースを用いて設定していたが、第2の実施形態では、360度の全周をエンドレスに旋回するカメラに特有のGUIが実現される。この際、図4に示す設定プログラム430は、GUIに対応した、本実施形態に係る処理を行う設定プログラム(以下、設定プログラム431とする)となる。
図12は、本発明の第2の実施形態を示し、設定データ470を設定する際のGUIの一例を示す図である。
ダイアログ1201は、プリセット巡回設定のダイアログの一例を示したものである。ダイアログ1201内の太線の枠で囲まれた画像1202、並びに、破線の枠で囲まれた画像1207及び1208には、パノラマ画像データ460に係るパノラマ画像が表示されている。この各パノラマ画像1202、1207及び1208は、360度の全周における周回ごとに表示されたものである。設定部1203には、設定データ470から読み出されたプリセット位置情報におけるPTZの情報が表示され、カメラ231の撮像位置の編集による指定が可能となっている。設定部1204には、設定データ470から読み出された巡回経路の属性情報(Preset_Tour_Attribute)が表示され、当該巡回経路の編集による指定が可能となっている。なお、図12には、図9に示す設定データ470−2の情報を示している。
ダイアログ1201において、パノラマ画像1202、1207及び1208には、画像ごとに、対応するプリセット位置情報に係る番号が矩形の中に表示されている。
マイナスの数値が表示された矢印1205は、例えば、左クリックでインクリメント、右クリックでデクリメントのキー入力でその数値が変更される。この数値は、本例の場合、n周回の左旋回を意味する。プラスの数値が表示された矢印1206は、矢印1205と同様にキー入力されるが、その数値は、右旋回を意味する。
巡回順序情報を示すTourのトップの欄1210がクリックされると、設定データ470の読み込みが行われる。例えば、本実施形態では、Tourのトップの欄1210はPreset1であるため、パノラマ画像1202の中の該当する矩形1211が太い実線で表示される。また、設定部1203の中でプリセット欄1213が選択された場合も、同様に選択されたプリセット位置情報に該当する矩形1211が太い実線で表示され、巡回経路の属性情報の設定部1204の相当する欄1210も選択状態となる。
また、この際、設定データ470によって次の巡回先のプリセット位置である矩形1212は太い破線で表示され、相当するRoundの値が矢印1205又は矢印1206に表示される。
次に、例えば、(本例では、たまたま同じ矩形1212であるが)任意のパノラマ画像1207の中の矩形1212が選択されると、矩形1212は太い破線で表示され、Tourに示す巡回順で次の欄は3となり、Roundは−1となる。ここで、矢印1205をクリックして、インクリメント乃至デクリメント、或いは数値入力した場合、Roundはその値となる。
また、イメージ1220は、例えば、各プリセット位置に対応するカメラ231の位置のイメージを示している。
図13は、本発明の第2の実施形態を示し、設定プログラム431によるGUIを用いた処理手順の一例を示すフローチャートである。この際、図13に示すフローチャートは、例えば、カメラサーバ110のCPU200が、設定プログラム431を実行することによって行われる。なお、第1の実施形態と同様に、設定プログラム431を設定プログラム531としてビューワクライアント120に保存し、ビューワクライアント120のCPU300において処理を行う形態も適用可能である。
まず、ステップS1301において、カメラサーバ110のCPU200は、パノラマ画像データ460と設定データ470を読み込む処理を行う。
なお、ビューワクライアント120側で処理を行う場合には、同様に、ビューワクライアント120のCPU300がパノラマ画像データ560と設定データ570を読み込む形態と採る。この際、ビューワクライアント120のCPU300は、ネットワーク130を介してカメラサーバ110からパノラマ画像データ460と設定データ470を受信する形態であっても良い。
続いて、ステップS1302において、カメラサーバ110のCPU200は、図12に示すプリセット巡回設定のダイアログ1201を、例えば、ビューワクライアント120のI/O機器331のディスプレイに表示する処理を行う。なお、図13の処理をビューワクライアント120側で行う場合には、CPU300において、当該表示処理が行われる。
続いて、ステップS1303において、カメラサーバ110のCPU200は、例えばユーザからのI/O機器331を介した入力情報等によりイベントが発生したか否かを判断する。この判断の結果、イベントが発生していない場合には、ステップS1303で待機する。
一方、ステップS1303の判断の結果、イベントが発生した場合には、ステップS1304に進む。ステップS1304に進むと、カメラサーバ110のCPU200は、発生したイベントがプリセット位置の編集イベントであるか否かを判断する。
ステップS1304の判断の結果、発生したイベントがプリセット位置の編集イベントである場合には、ステップS1305に進む。この際、プリセット位置の編集イベントは、例えば、図12に示すプリセット巡回設定のダイアログ1201において、設定部1203が、ユーザによりI/O機器331のマウスでポイント動作を含む編集指示が行われた場合を示す。
ステップS1305に進むと、カメラサーバ110のCPU200は、前述した手順によって、GUI上の設定部1203の表示を変更して、設定データ470を更新する。
続いて、ステップS1306において、カメラサーバ110のCPU200は、前述したように連携して巡回経路の属性情報を示す設定部1204の選択がなされるので、必要に応じて、巡回経路の属性情報の編集イベントを投げる。また、同様に、カメラサーバ110のCPU200は、必要に応じて、ダイアログ1201の更新のイベントを投げる。その後、ステップS1303に戻る。
一方、ステップS1304の判断の結果、発生したイベントがプリセット位置の編集イベントでない場合には、ステップS1307に進む。ステップS1307に進むと、カメラサーバ110のCPU200は、発生したイベントが巡回経路の属性情報の編集イベントであるか否かを判断する。
ステップS1307の判断の結果、発生したイベントが巡回経路の属性情報の編集イベントである場合には、ステップS1308に進む。この際、巡回経路の属性情報の編集イベントは、例えば、図12に示すプリセット巡回設定のダイアログ1201において、設定部1204が、ユーザによりI/O機器331のマウスでポイント動作を含む編集指示が行われた場合を示す。
ステップS1308に進むと、カメラサーバ110のCPU200は、前述した手順によってGUI上の設定部1204の表示を変更して、設定データ470を更新する。
続いて、ステップS1309において、カメラサーバ110のCPU200は、前述したように連携してプリセット位置情報におけるPTZを示す設定部1203の選択がなされるので、必要に応じて、プリセット位置情報の編集イベントを投げる。また、同様に、カメラサーバ110のCPU200は、必要に応じて、ダイアログ1201の更新のイベントを投げる。その後、ステップS1303に戻る。
一方、ステップS1307の判断の結果、発生したイベントが巡回経路の属性情報の編集イベントでない場合には、ステップS1310に進む。ステップS1310に進むと、カメラサーバ110のCPU200は、発生したイベントがダイアログ1201の更新であるか否かを判断する。
ステップS1310の判断の結果、発生したイベントがダイアログ1201の更新イベントである場合には、ステップS1311に進む。ステップS1311に進むと、カメラサーバ110のCPU200は、設定データ470からプリセット位置情報と巡回経路の属性情報を読み込む処理を行う。
続いて、ステップS1312において、カメラサーバ110のCPU200は、前述した手順に従って、新たなRound値、パノラマ画像上のプリセット枠表示など、ダイアログ1201の更新を行う。その後、ステップS1303に戻る。
一方、ステップS1310の判断の結果、発生したイベントがダイアログ1201の更新イベントでない場合には、ステップS1313に進む。ステップS1313に進むと、カメラサーバ110のCPU200は、カメラサーバ110のCPU200は、発生したイベントが終了イベントであるか否かを判断する。この判断の結果、発生したイベントが終了イベントでない場合には、ステップS1303に戻る。
また、ステップS1313の判断の結果、発生したイベントが終了イベントである場合には、設定プログラム431によるGUIを用いた処理を終了する。
以上のようにすることで、本実施形態によれば、360度全周を超えたプリセット巡回の設定を、パノラマ画像データ460に基づく(3つの)パノラマ画像を利用して、プリセット位置の位置関係を明示しながら行うことができる。
なお、図13に示すステップS1303〜1313の処理をビューワクライアント120側で行う場合には、CPU300において、当該処理が行われる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
第3の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
第3の実施形態は、第2の実施形態の図12に示すGUIの変形例に係る形態である。具体的に、第3の実施形態に係るGUIとしては、図12に示すように、パノラマ画像を横に並べずに、1つのパノラマ画像の表示だけでレイヤ切り替え表示を行うものである。この際、360度全周分のパノラマ画像を1レイヤとして、切り替えて表示する。
図14は、本発明の第3の実施形態を示し、設定データ470を設定する際のGUIの一例を示す図である。この際、当該GUIを用いた処理手順については、第2の実施形態における図13に示す処理を適用することが可能である。
ダイアログ1401は、プリセット巡回設定のダイアログの一例を示したものであり、図12に示すダイアログ1201に対応するものである。また、パノラマ画像1402は、図12に示すパノラマ画像1202に対応するものである。この際、ダイアログ1201には、360度の全周における1つのパノラマ画像のみが表示されている。また、設定部1403及び1404は、それぞれ、図12に示す設定部1203及び1204に対応するものである。また、矢印1405及び1406は、それぞれ、図12に示す矢印1205及び1206に対応するものである。
また、巡回順序情報を示すTourのトップの欄1410は、図12に示す巡回順序情報を示すTourのトップの欄1210に対応するものである。また、矩形1411及び1412は、それぞれ、図12に示す矩形1211及び1212に対応するものである。また、プリセット欄1413は、図12に示すプリセット欄1213に対応するものである。
図14に示すパノラマ画像1407とパノラマ画像1408は、必要に応じて、ダイアログ1401のパノラマ表示領域に表示されているパノラマ画像1402と入れ替わる画像の一例を示したものである。この際、周回数を表すレイヤが表示される設定部(周回数設定部)1409は、それぞれに相当する数字が入れ替わり表示され、その数字がレイヤを区別する。
例えば、第2の実施形態と同様に、巡回順序情報を示すTourのトップの欄1410がクリックされると、設定データ470の読み込みが行われる。この際、Tourのトップの欄1410はPreset1であるため、Round値が0のパノラマ画像1402の中で該当する矩形1411が太い実線で表示される。この際、同一レイヤのPreset3は、巡回順で次のプリセット番号ではあるが、Round値が−1ではないため、太枠表示とはならない。
Round値が−1に設定されることで、パノラマ表示領域の表示がパノラマ画像1402からパノラマ画像1407となり、プリセット3が太枠で表示されることになる。この際、Preset1に該当する矩形は、Round値が0で指定されている当初のものとは異なることを示すため、太枠表示されない。
また、例えば、設定部1403の中でプリセット欄1413が選択された場合、Round値が0の矩形1411と、設定部1404で相当する欄1410が選択状態となる。
ここで、例えば、矢印1405をクリックすると、設定部1409は−1となり、パノラマ表示領域にパノラマ画像1407が表示される。さらに、今度は、矢印1406を2回クリックすると、設定部1409は+1となり、パノラマ表示領域にパノラマ画像1408が表示される。
次に、例えば、(本例では、たまたま同じ矩形1412であるが)任意のパノラマ画像1407の中のプリセット3に係る矩形1412が選択されると、矩形1412は太い破線で表示され、Tourに示す巡回順で次の欄は3となり、Roundは−1となる。ここで、矢印1405をクリックしたり、矢印1406をクリックしたりして、設定部1409の数値をインクリメント乃至デクリメントした場合、上述した本特許制御1におけるRoundはその値となる。また、上述した本特許制御2におけるRoundは、正の値なら1を加えたRound値となり、負の値なら1を減じたRound値となる。
図14に示す例では、上述した本特許制御1の場合を示している。ここで、本特許制御2の場合は、+1が右旋回の0周回、−1が左旋回の0周回を表すので、設定部1409に0が表示されることはなく、次のプリセットへの巡回経路の属性情報に従って、表示がなされる。
本実施形態によれば、360度全周を超えたプリセット巡回の設定を、1つのパノラマ表示領域を利用するレイヤ切り替えで、プリセット位置の位置関係を明示しながら行うことができる。
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。
第4の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
第1〜第3の実施形態では、プリセット巡回に係る巡回経路の属性情報として、明示的に左右の旋回が指定されていたが、本実施形態では、更に、大回り・小回りの属性情報によりカメラ231の旋回を変更する形態である。この際、図4に示す設定プログラム430は、本実施形態に係る処理を行う設定プログラム(以下、設定プログラム432とする)となる。また、図4に示す設定データ470は、本実施形態に係る処理において設定された設定データ(以下、設定データ471とする)となる。
図15は、本発明の第4の実施形態に係る設定データ471の一例を示す図である。
図15に示す設定データ471は、設定データ470と同様に、プリセットの位置情報として、それぞれ、Pan/Tilt/Zoom及び静止時間の情報を設定する。さらに、設定データ471は、設定データ470と同様に、プリセット位置情報Preset1〜Preset3における巡回の順序を示す巡回順序情報Tourと、速度情報Speed及び巡回方向情報Roundの巡回経路の属性情報を設定する。さらに、本実施形態では、巡回方向情報Roundをユーザが直接設定するものではないため、巡回経路の属性情報として、巡回方向情報Roundの値を算出するための大回り・小回り情報と周回情報の2つの属性情報が設定される。
また、設定データ471の設定処理については、図13に示す処理と同様の処理を経ることにより行われる。この際、カメラサーバ110のCPU200は、設定プログラム432によるGUIを用いた処理により設定データ471の設定処理を行う。
図16は、本発明の第4の実施形態を示し、設定データ471を設定する際のGUIの一例を示す図である。
ダイアログ1601は、プリセット巡回設定のダイアログの一例を示したものである。また、パノラマ画像1602は、パノラマ画像データ460に基づくパノラマ画像であり、例えば、図14に示すパノラマ画像1402に対応するものである。設定部1603には、図15に示す設定データ471から読み出されたプリセット位置情報におけるPTZの情報が表示され、編集可能となっている。設定部1604には、図15に示す設定データ471から読み出された巡回経路の属性情報(Preset_Tour_Attribute)が表示され、編集可能となっている。なお、図16に示す設定部1604には、図15に示す巡回経路の属性情報のうち、Round値は直接設定されないため、表示されない。
パノラマ画像1607及び1608は、パノラマ画像データ460に基づくパノラマ画像であり、例えば、図14に示すパノラマ画像1407及び1408に対応するものである。
矢印1605及び1606は、一方がEnableを示し、他方がDisableを示すものである。この場合、有効となっている矢印の方向に旋回することを示している。例えば、左クリックでインクリメントされ、右クリックでデクリメントのキー入力となる。設定部(周波数設定部)1609には、矢印1605及び1606のクリック等により、周回数(n周回)を表すレイヤが表示される。
例えば、上述した実施形態と同様に、巡回順序情報を示すTourのトップの欄1610がクリックされると、設定データ471の読み込みが行われる。この際、Tourのトップの欄1610はPreset1であるため、パノラマ画像1602の中で該当する矩形1611が太い実線で表示される。
また、例えば、設定部1603の中でプリセット欄1613が指定された場合も同様に、選択されたプリセットの番号(1)に対応する矩形1611が太い実線で表示され、設定部1604の相当する欄1610が選択状態となる。
このとき、本実施形態では、設定部1604では、Preset1からPreset3への巡回経路の属性情報として、「大回り・周回1」が指定されている。この際、Panの移動角の絶対値が180度以上であればそのまま旋回し、そうでなければ逆旋回が選択され、大回りすることになる。
また、小回りの場合は、Panの移動角の絶対値が180度以下であればそのまま旋回し、そうでなければ逆旋回が選択され、大回りすることになる。
次に、例えば、(本例では、たまたま同じ矩形1612であるが)任意のパノラマ画像1607の中のプリセット3に係る矩形1612が選択されると、矩形1612は太い破線で表示され、Tourに示す巡回順で次の欄は3となり、Roundは−2となる。ここで、矢印1605をクリックして、インクリメント乃至デクリメント、或いは数値入力した場合、Roundはその値になる。また、Roundの値に応じて矢印1605及び1606は、Enable/Disableが変更される。
図17は、本発明の第4の実施形態を示し、Roundの算出方法の一例を示すフローチャートである。
ここで、以下の説明では、中心が0度で左右±180度のパンの座標において、(P1,T1,Z1)が元のプリセット位置、(P2,T2,Z2)が移動先のプリセット位置とする。また、その間のPreset_Tour_Attributeの大回り・小回り情報と周回情報の属性情報を用いる。また、その際、プラスの場合は右旋回、マイナスの場合は左旋回とする。
まず、ステップS1701において、カメラサーバ110のCPU200は、パン(Pan)値P1及びP2と、大回り・小回り情報及び周回情報を読み込む。
続いて、ステップS1702において、カメラサーバ110のCPU200は、ステップS1701で読み込んだ大回り・小回り情報が大回り情報であるか否かを判断する。
ステップS1702の判断の結果、ステップS1701で読み込んだ大回り・小回り情報が大回り情報でない場合(小回り情報である場合)には、ステップS1703に進む。ステップS1703に進むと、カメラサーバ110のCPU200は、P2−P1の絶対値が180(度)以下であるか否かを判断する。
ステップS1703の判断の結果、P2−P1の絶対値が180(度)以下である場合には、ステップS1704に進む。ステップS1704に進むと、カメラサーバ110のCPU200は、P2−P1が負であるか否かを判断する。
ステップS1704の判断の結果、P2−P1が負である場合には、ステップS1705に進む。ステップS1705に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+1)として算出し、右回りのRound値を設定データ471に設定する。ここで、「周回」は、ステップS1701で読み込まれた周回情報の周回数の値が入力される。以下の説明においても同様である。
一方、ステップS1704の判断の結果、P2−P1が負でない場合(0以上である場合)には、ステップS1706に進む。ステップS1706に進むと、カメラサーバ110のCPU200は、Round値を、−1×(周回+1)として算出し、左回りのRound値を設定データ471に設定する。
また、ステップS1703の判断の結果、P2−P1の絶対値が180(度)以下でない場合には、ステップS1707に進む。ステップS1707に進むと、カメラサーバ110のCPU200は、P2−P1が0以上であるか否かを判断する。
ステップS1707の判断の結果、P2−P1が0以上である場合には、ステップS1708に進む。ステップS1708に進むと、カメラサーバ110のCPU200は、Round値を、−1×(周回+1)として算出し、左回りのRound値を設定データ471に設定する。
一方、ステップS1707の判断の結果、P2−P1が0以上でない場合(負である場合)には、ステップS1709に進む。ステップS1709に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+1)として算出し、右回りのRound値を設定データ471に設定する。
また、ステップS1702の判断の結果、ステップS1701で読み込んだ大回り・小回り情報が大回り情報である場合には、ステップS1710に進む。ステップS1710に進むと、カメラサーバ110のCPU200は、P2−P1の絶対値が180(度)以上であるか否かを判断する。
ステップS1710の判断の結果、P2−P1の絶対値が180(度)以上である場合には、ステップS1711に進む。ステップS1711に進むと、カメラサーバ110のCPU200は、P2−P1が正であるか否かを判断する。
ステップS1711の判断の結果、P2−P1が正である場合には、ステップS1712に進む。ステップS1712に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+1)として算出し、右回りのRound値を設定データ471に設定する。
一方、ステップS1711の判断の結果、P2−P1が正でない場合(0以下である場合)には、ステップS1713に進む。ステップS1713に進むと、カメラサーバ110のCPU200は、Round値を、−1×(周回+1)として算出し、左回りのRound値を設定データ471に設定する。
また、ステップS1710の判断の結果、P2−P1の絶対値が180(度)以上でない場合には、ステップS1714に進む。ステップS1714に進むと、カメラサーバ110のCPU200は、P2−P1が負であるか否かを判断する。
ステップS1714の判断の結果、P2−P1が負である場合には、ステップS1715に進む。ステップS1715に進むと、カメラサーバ110のCPU200は、Round値を、−1×(周回+1)として算出し、左回りのRound値を設定データ471に設定する。
一方、ステップS1714の判断の結果、P2−P1が負でない場合には、ステップS1716に進む。ステップS1716に進むと、カメラサーバ110のCPU200は、P2−P1が正であるか否かを判断する。
ステップS1716の判断の結果、P2−P1が正である場合には、ステップS1717に進む。ステップS1717に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+1)として算出し、右回りのRound値を設定データ471に設定する。
ステップS1717の判断の結果、P2−P1が正でない場合(この場合は、0である場合)には、ステップS1718に進む。ステップS1718に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+2)として算出し、パン角0度の大回りとして右回りに一周多く回るRound値を設定データ471に設定する。
なお、本実施形態の制御方式としては、第1の実施形態で示した本特許制御2を用いる。この場合、図15の設定データ471では、設定部1604のPreset1からPreset3への巡回経路の属性情報として、大回り・小回り情報の属性は「大」、周回は「1」である。この際、Preset1の(P,T,Z)である(100,−60,30)からPreset3の(P,T,Z)である(−100,30,30)では、通常で大回りであることから、Roundは−2となる。
また、この際、設定データ471によって次の巡回先のプリセット位置を示す矩形1612は太い破線で表示され、相当するRound値が設定部1609に表示される。この場合、矢印1605がEnable、矢印1606がDisableで表示される。
設定部1609に表示されるRound値は、内部の値であるので、実際のプリセット巡回設定のダイアログ1601では、旋回方向と周回数が明示されていれば良い。例えば、Round値が正であれば1を減じ、負であれば1を加えた値を表示し、矢印1605と矢印1606のEnable/Disableが変更されれば、その表示が0で矢印1606がEnableの表示で「0周回右旋回」が表現される。
なお、第4の実施形態においても、第1の実施形態と同様の趣旨で、設定プログラム432は、ビューワクライアント120に設定プログラム532として保存される形態であっても良い。この場合、ビューワクライアント120のCPU300が、設定プログラム532を用いて設定データの設定を行う形態を採る。この際に用いる設定データ及びパノラマ画像データは、ネットワーク130を介してカメラサーバ110から取得するようにしても良いし、或いは、自装置に保存してあるパノラマ画像データ560及び設定データ570を利用しても良い。
本実施形態によれば、360度の全周を超えたプリセット巡回の設定を行うことができる。
(第5の実施形態)
次に、本発明の第5の実施形態について説明する。
第5の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
第4の実施形態では、プリセット巡回に係る巡回経路の属性情報として、大回り・小回りの属性情報を考慮した設定データについて説明したが、本実施形態では、原点通過要求の属性情報を考慮した設定データを設定する。これにより、カメラ231を原点通過の方向に旋回させることができる。具体的に、例えば、位置ずれ検出センサや電源供給接点、通信のための接点などが原点などにある場合に、そこを通過させる若しくは通過させないようにすることで、より好適な自動プリセット巡回動作を行うことができる。
本実施形態の場合、図4に示す設定プログラム430は、本実施形態に係る処理を行う設定プログラム(以下、設定プログラム433とする)となる。また、図4に示す設定データ470は、本実施形態に係る処理において設定された設定データ(以下、設定データ472とする)となる。
図18は、本発明の第5の実施形態に係る設定データ472の一例を示す図である。
図18に示す設定データ472は、基本的には、図15に示す設定データ471と同様のものであるが、図15に示す設定データ471の巡回経路の属性情報に対して、原点通過の要・不要を表す属性情報(原点通過要否情報)が追加されている。また、本実施形態では、図15に示す設定データ471の大回り・小回り情報の属性情報は使用されない。また、Round値は、第4の実施形態と同様に、ユーザが直接設定するものではないため、巡回経路の属性情報として、巡回方向情報Roundの値を算出するための原点通過要否情報と周回情報の2つの属性情報が設定される。
また、設定データ472の設定処理については、図13に示す処理と同様の処理を経ることにより行われる。この際、カメラサーバ110のCPU200は、設定プログラム433によるGUIを用いた処理により設定データ472の設定処理を行う。具体的に、設定プログラム433では、設定プログラム432で扱われていた大回り・小回りの属性情報の代わりに、原点通過に係る属性情報(原点通過要否情報)を扱うものであるため、基本的には第4の実施形態と同様に実現できる。
図19は、本発明の第5の実施形態を示し、Roundの算出方法の一例を示すフローチャートである。
まず、ステップS1901において、カメラサーバ110のCPU200は、パン(Pan)値P1及びP2と、原点通過要否情報及び周回情報を読み込む。
続いて、ステップS1902において、カメラサーバ110のCPU200は、ステップS1901で読み込んだ原点通過要否情報が原点通過要求あり(図18に示す「要」)であるか否かを判断する。
ステップS1902の判断の結果、原点通過要求ありである場合には、ステップS1903に進む。ステップS1903に進むと、カメラサーバ110のCPU200は、ステップS1901で読み込んだ周回情報における周回(数)が0であるか否かを判断する。
ステップS1902で原点通過要求なし(図18に示す「不要」)と判断された場合、後述するステップS1907以降の処理を考慮する必要がないため、ステップS1904に進む。また、ステップS1903で周回(数)が0でないと判断された場合(周回が1以上である場合)には、必ず原点を通るので、後述するステップS1907以降の処理を考慮する必要がないため、ステップS1904に進む。
ステップS1904に進むと、カメラサーバ110のCPU200は、P2−P1が0以上であるか否かを判断する。
ステップS1904の判断の結果、P2−P1が0以上である場合には、ステップS1905に進む。ステップS1905に進むと、カメラサーバ110のCPU200は、Round値を、+1×(周回+1)として算出し、右回りのRound値を設定データ472に設定する。
一方、ステップS1904の判断の結果、P2−P1が0以上でない場合(負である場合)には、ステップS1906に進む。ステップS1906に進むと、カメラサーバ110のCPU200は、Round値を、−1×(周回+1)として算出し、左回りのRound値を設定データ472に設定する。
また、ステップS1903の判断の結果、ステップS1901で読み込んだ周回情報における周回(数)が0である場合には、ステップS1907に進む。ステップS1907に進むと、カメラサーバ110のCPU200は、P2−P1のパン角動作で原点を通過するか否かを判断する。
ステップS1907の判断の結果、P2−P1のパン角動作で原点を通過する場合には、ステップS1908に進む。ステップS1908に進むと、カメラサーバ110のCPU200は、P2−P1が0以上であるか否かを判断する。
ステップS1908の判断の結果、P2−P1が0以上である場合には、ステップS1909に進む。ステップS1909に進むと、カメラサーバ110のCPU200は、Round値を+1として算出し、右回りのRound値を設定データ472に設定する。
一方、ステップS1908の判断の結果、P2−P1が0以上でない場合(負である場合)には、ステップS1910に進む。ステップS1910に進むと、カメラサーバ110のCPU200は、Round値を−1として算出し、左回りのRound値を設定データ472に設定する。
また、ステップS1907の判断の結果、P2−P1のパン角動作で原点を通過しない場合には、ステップS1911に進む。ステップS1911に進むと、カメラサーバ110のCPU200は、P2−P1が0以上であるか否かを判断する。
ステップS1911の判断の結果、P2−P1が0以上である場合には、ステップS1912に進む。ステップS1912に進むと、カメラサーバ110のCPU200は、Round値を−1として算出し、左回りのRound値を設定データ472に設定する。
一方、ステップS1911の判断の結果、P2−P1が0以上でない場合(負である場合)には、ステップS1913に進む。ステップS1913に進むと、カメラサーバ110のCPU200は、Round値を+1として算出し、右回りのRound値を設定データ472に設定する。
本実施形態の制御方式としては、第1の実施形態で示した本特許制御2を用いる。この場合、図18に示す設定データ472では、設定部1604のPreset1からPreset3への巡回経路の属性情報として、原点通過要否情報の属性は「要」、周回は「1」である。この際、Preset1の(P,T,Z)である(100,−60,30)からPreset3の(P,T,Z)である(−100,30,30)では、原点を通過することから、Roundは−2となる。
また、この際、設定データ472によって、第4の実施形態と同様のプリセット巡回設定のダイアログが表示される。
なお、第5の実施形態においても、第1の実施形態と同様の趣旨で、設定プログラム433は、ビューワクライアント120に設定プログラム533として保存される形態であっても良い。この場合、ビューワクライアント120のCPU300が、設定プログラム533を用いて設定データの設定を行う形態を採る。この際に用いる設定データ及びパノラマ画像データは、ネットワーク130を介してカメラサーバ110から取得するようにしても良いし、或いは、自装置に保存してあるパノラマ画像データ560及び設定データ570を利用しても良い。
本実施形態によれば、360度の全周を超えたプリセット巡回の設定において、ある角度(原点)を通過するように自動巡回させることができる。
(第6の実施形態)
次に、本発明の第6の実施形態について説明する。
第6の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
プリセット巡回に係る巡回経路の属性情報として、第4の実施形態では、大回り・小回り情報の属性情報を用いて、第5の実施形態では、原点通過要否情報の属性情報を用いて設定データを設定するものであった。第6の実施形態では、全体で、大回り・小回り情報や、原点通過要否情報の属性情報を設定することで、任意の位置から指定のPTZに移動するに当たって、その動作に適用する。
本実施形態の場合、図4に示す設定プログラム430は、本実施形態に係る処理を行う設定プログラム(以下、設定プログラム434とする)となる。また、図4に示す設定データ470は、本実施形態に係る処理において設定された設定データ(以下、設定データ473とする)となる。さらに、図4に示す画像撮像プログラム410は、本実施形態に係る処理を行う画像撮像プログラム(以下、画像撮像プログラム411とする)となる。
図20は、本発明の第6の実施形態に係る設定データ473の一例を示す図である。
図20に示す設定データ473は、図18に示す設定データ472に対して、全体用の移動時の属性情報2001を追加したものである。図20に示す例では、この全体用の移動時の属性情報2001として、大回り・小回り属性と原点要求属性の情報が加わっており、その値と適用するか否かが指定される。この属性情報は、第4及び第5の実施形態で扱っていた、プリセット巡回の巡回経路の属性情報とは、非依存の情報である。
図21は、本発明の第6の実施形態を示し、設定データ473を設定する際のGUIの一例を示す図である。
ダイアログ2101は、プリセット巡回設定のダイアログの一例を示したものである。具体的に、ダイアログ2101は、図16に示すダイアログ1601に対して、設定部1604に原点通過要否情報を追加して設定部2104とすると共に、図20に示す移動時の属性情報2001に対応する設定部2114を設けたものである。ここで、図21に示す2102〜2113は、それぞれ、図16に示す1602〜1613に対応するものである。
設定部2114には、移動時の属性情報として、大回り・小回り属性と原点要求属性の情報の更新・編集が可能であり、2つの属性の適用/非適用がラジオボタン2114によって設定可能となっている。これによって設定データ473が設定される。
また、設定データ473の設定処理については、図13に示す処理と同様の処理を経ることにより行われる。この際、カメラサーバ110のCPU200は、設定プログラム434によるGUIを用いた処理により設定データ473の設定処理を行う。
図22は、本発明の第6の実施形態を示し、画像撮像プログラム411を用いた処理手順の一例を示すフローチャートである。この図22は、画像撮像プログラム410の処理に対して、指定位置の撮像要求イベントが投げられた場合に追加される処理を示している。
ステップS2201において、カメラサーバ110のCPU200は、画像撮像プログラム410の場合の処理と同様に、イベントが発生したか否かを判断する。この判断の結果、イベントが発生していない場合には、ステップS2201で待機する。
一方、ステップS2201の判断の結果、イベントが発生した場合には、ステップS2202に進む。ステップS2202に進むと、カメラサーバ110のCPU200は、発生したイベントが指定位置の撮像要求イベントであるか否かを判断する。
ステップS2202の判断の結果、発生したイベントが指定位置の撮像要求イベントである場合には、ステップS2203に進む。ステップS2203に進むと、カメラサーバ110のCPU200は、現在位置と指定位置及び設定データを読み込む処理を行う。具体的に、現在位置としては、現在位置のPTZを、雲台制御I/F240を介して雲台241から読み込む。また、指定位置として、指定位置の撮像要求イベントから、移動先である指定位置のPTZを読み込む。さらに、設定データとして、設定データ473から全体用の大回り・小回り属性と原点要求属性の情報(全体用の移動時の属性情報2001)を読み込む。
続いて、ステップS2204において、カメラサーバ110のCPU200は、ステップS2203で読み込んだ現在位置と指定位置及び設定データの情報に基づいて、Pan制御のための動作角を取得する。この際、Round値も取得する。
具体的に、ステップS2204では、現在位置のPTZと次の移動位置(指定位置)のPTZを、それぞれ、現在位置(P1,T1,Z1)と次の移動位置(P2,T2,Z2)とする。そして、図20に示す設定データ473から、全体用の移動時の属性情報2001によって、図17に示す第4の実施形態におけるRound値の算出方法、或いは、図19に示す第5の実施形態におけるRound値の算出方法を用いて取得する。
例えば、現在位置のPTZが(10,10,40)であるとした場合に、次の移動位置のPTZとして、プリセット1或いは数値などの指定によって、(100,−60,30)が指定された場合について説明する。
この場合、図20の設定データ473によって、全体用の移動時の属性情報2001は、原点要求「要」であるため、P1を現在位置のPan値である10にし、P2を指定されたPan値である100にする。この際、図19に示す第5の実施形態におけるRound値の算出方法を用いる。これによって、通常のP2−P1のパン角動作、つまり左旋回では原点を通らないことがわかるので、右旋回によって指定位置に移動する。
続いて、ステップS2205において、カメラサーバ110のCPU200は、ステップS2204で取得した値に基づいて、雲台制御I/F240を介して雲台241を制御してカメラ231を制御する。その後、カメラ231を用いた画像の撮像が行われる。
一方、ステップS2202の判断の結果、発生したイベントが指定位置の撮像要求イベントでない場合には、画像撮像プログラム410と同様のイベント処理が行われるため、図22に示す処理は終了する。
なお、第6の実施形態においても、第1の実施形態と同様の趣旨で、設定プログラム434は、ビューワクライアント120に設定プログラム534として保存される形態であっても良い。この場合、ビューワクライアント120のCPU300が、設定プログラム534を用いて設定データの設定を行う形態を採る。この際に用いる設定データ及びパノラマ画像データは、ネットワーク130を介してカメラサーバ110から取得するようにしても良いし、或いは、自装置に保存してあるパノラマ画像データ560及び設定データ570を利用しても良い。
本実施形態によれば、プリセット巡回の設定に限らず、360度の全周を超えた動作が可能な監視カメラにおいて、移動時の属性情報に基づいて自動動作を行うことができる。
(第7の実施形態)
次に、本発明の第7の実施形態について説明する。
第7の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
上述した第6の実施形態等では、大回り・小回り情報や、原点通過要求に係る原点通過要否情報の属性情報を予め設定する形態であったが、第7の実施形態では、巡回経路の属性を動的に変更するものである。具体的に、本実施形態では、性能耐久を予測することによって、巡回経路の属性を動的に変更して、より好適な自動プリセット巡回動作を実現するものである。
本実施形態の場合、図4に示す設定プログラム430は、本実施形態に係る処理を行う設定プログラム(以下、設定プログラム435とする)となる。また、図4に示す設定データ470は、本実施形態に係る処理において設定された設定データ(以下、設定データ474とする)となる。さらに、本実施形態では、図4に示す1次記憶装置210に、本実施形態で用いる動作変更プログラム(図4には、不図示であるが動作変更プログラム480とする)を新たに設けたものとなる。
図23は、本発明の第7の実施形態に係る設定データ474の一例を示す図である。
図23に示す設定データ473は、図20に示す設定データ473に対して、全体用の動作変更時の属性情報2301を追加したものである。図23に示す例では、この全体用の動作変更時の属性情報2301として、大回り・小回り属性と原点要求属性の情報が加わっており、その値と適用するか否かが指定される。この属性情報は、第4及び第5の実施形態で扱っていたプリセット巡回の巡回経路の属性情報や、図20に示す全体用の移動時の属性情報2001とは、非依存である。
また、本実施形態で用いるGUIは、不図示であるが、第6の実施形態における図21のGUIに対して、設定部2114と同様な動作変更時の属性を設定する設定部を設けたものとなる。これによって、図23に示す設定データ474が設定される。
図24は、本発明の第7の実施形態を示し、動作変更プログラム(480)を用いた処理手順の一例を示すフローチャートである。
ステップS2401において、カメラサーバ110のCPU200は、イベントが発生したか否かを判断する。
ステップS2401の判断の結果、イベントが発生していない場合には、ステップS2402に進む。ステップS2402に進むと、カメラサーバ110のCPU200は、設定データ474が変更されているか否かを判断する。この判断の結果、設定データ474が変更されていない場合には、ステップS2401に戻る。
一方、ステップS2402の判断の結果、設定データ474が変更されている場合には、ステップS2403に進む。ステップS2403に進むと、カメラサーバ110のCPU200は、設定データの変更に係る設定変更イベントを自身に投げる。その後、ステップS2401に戻る。
また、ステップS2401の判断の結果、イベントが発生した場合には、ステップS2404に進む。ステップS2404に進むと、カメラサーバ110のCPU200は、発生したイベントが設定変更イベントであるか否かを判断する。
ステップS2404の判断の結果、発生したイベントが設定変更イベントである場合には、ステップS2405に進む。ステップS2405に進むと、カメラサーバ110のCPU200は、プリセット巡回の動作量を予測する処理を行う。
続いて、ステップS2405において、カメラサーバ110のCPU200は、ステップS2405で予測した動作量が、予め設定されている閾値を超えたか否かを判断する。この判断の結果、ステップS2405で予測した動作量が、予め設定されている閾値を超えていない場合には、ステップS2401に戻る。
一方、ステップS2406の判断の結果、ステップS2405で予測した動作量が、予め設定されている閾値を超えた場合には、ステップS2407に進む。ステップS2407に進むと、カメラサーバ110のCPU200は、動作変更イベントを投げる。その後、ステップS2401に戻る。
具体的に、ステップS2405のプリセット巡回の動作量としては、例えば年間での角運動の角度が算出される。より詳細に、予め設定されている雲台241の動作スピードの性能データと、設定データ474より、プリセット巡回の動作時間を算出できることから、プリセット巡回一巡でのPan値、Tilt値の累積角度と動作時間から、年間での角運動の角度が算出される。
この際、プリセット巡回の動作量が、例えば、推奨する『年間百万回転』という閾値に対して越えている場合には、現在のプリセット巡回動作が閾値を越えて耐久性に懸念があることが考えられるため、ステップS2407で動作変更イベントが投げられる。また、閾値や上述した動作スピードを設定データ474に持たせた場合には、GUIから変更を行うこともできる。
また、ステップS2404の判断の結果、発生したイベントが設定変更イベントでない場合には、ステップS2408に進む。ステップS2408に進むと、カメラサーバ110のCPU200は、発生したイベントが動作変更イベントであるか否かを判断する。
ステップS2408の判断の結果、発生したイベントが動作変更イベントである場合には、ステップS2409に進む。ステップS2409に進むと、カメラサーバ110のCPU200は、設定データ474より、全体用の動作変更時の属性情報2301を読み込む。この属性情報は、図23の設定データ474に示すように、小回り属性が適用されるように設定されており、より動作が少なくなる設定がなされている。
続いて、ステップS2410において、カメラサーバ110のCPU200は、ステップS2409で読み込んだ全体用の動作変更時の属性情報2301に基づいて、動作変更処理を行う。
以下、ステップS2410の動作変更処理の一例について説明する。
まず、本実施形態における第1の動作変更処理としては、設定変更要求ダイアログの表示であり、従来からある警告ダイアログをビューワクライアント120に表示してその旨を報知し、設定変更を促すものである。そして、表示後は、例えば、1日などの予め定められた時間だけ休止して変更を待っても良いし、警告後は、次の設定変更イベントが発生するまで本処理をスキップしても良い。その後、ステップS2401に戻る。
また、本実施形態における第2の動作変更処理としては、全体用の動作変更時の属性情報2301で、巡回経路の属性情報(Preset_Tour_Attribute)の属性を置き換えてしまうものであり、設定データ474が変更される。これにより、カメラサーバ110のCPU200は、変更された設定データ474に基づいて、カメラ231の旋回動作を制御する。例えば、本実施形態では、大回り動作をしていたプリセット巡回については、小回りするように動作が変更される。その後、ステップS2401に戻る。
また、本実施形態における第3の動作変更処理としては、第2の動作変更処理を行った上で、周回情報の値についても、全て0を適用するものであり、設定データ474が変更される。これにより、カメラサーバ110のCPU200は、変更された設定データ474に基づいて、カメラ231の旋回動作を制御する。例えば、本実施形態では、複数周回の旋回動作をしていたプリセット巡回については、プリセット間を最短で動作するだけに動作が変更される。また、第3の動作変更処理では、周回を0にするだけではなく、周回数が1以上で有れば1を減ずるだけとすることも考えられる。その後、ステップS2401に戻る。
なお、第2及び第3の動作変更処理は、全てのプリセット巡回に係る巡回経路の属性情報の属性に適用するのではなく、乱数で適用・非適用を選択したり、プリセット間の角度の絶対値が大きいものから適用したりするなど、適当な間引きを行うこともできる。また、一巡の中だけで決められるのではなく、以下のようにしても良い。例えば、1→3→2→1→3→2→1→3→2→1…というような巡回のときに、三巡に1回、1→3→2→1→3→2→1'→3'→2'→1…と、1'→3'→2' の場合だけ変更するなど、時間軸で間引いて動作するようにしても良い。また、図24に示す例では、ステップS2402で設定変更の判断を行っているが、設定プログラム435で変更の際に、設定変更イベントを投げるようにしても良い。
また、ステップS2408の判断の結果、発生したイベントが動作変更イベントでない場合には、ステップS2411に進む。ステップS2411に進むと、カメラサーバ110のCPU200は、発生したイベントが終了イベントであるか否かを判断する。この判断の結果、発生したイベントが終了イベントでない場合には、ステップS2401に戻る。
一方、ステップS2411の判断の結果、発生したイベントが終了イベントである場合には、処理を終了する。
なお、第7の実施形態においても、第1の実施形態と同様の趣旨で、設定プログラム435は、ビューワクライアント120に設定プログラム535として保存される形態であっても良い。同様に、動作変更プログラム480は、ビューワクライアント120に動作変更プログラム580として保存される形態であっても良い。この場合、ビューワクライアント120のCPU300が、設定プログラム535及び動作変更プログラム580を用いて設定データの設定を行う形態を採る。この際に用いる設定データ及びパノラマ画像データは、ネットワーク130を介してカメラサーバ110から取得するようにしても良いし、或いは、自装置に保存してあるパノラマ画像データ560及び設定データ570を利用しても良い。
本実施形態によれば、360度の全周を超えた動作が可能な監視カメラにおいて、動作量を予測して推奨動作量よりも多い動作である場合、つまり耐久性に懸念がある場合に、警告等を行うことができる。また、動作量を減らすように設定された全体用の動作変更時の属性情報2301に基づいて動作を変更して自動動作させることで、より信頼性の高い自動動作を実現することができる。
(第8の実施形態)
次に、本発明の第8の実施形態について説明する。
第8の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
上述した第7の実施形態では、動作量を予測する形態であったが、第8の実施形態では、当該動作量を実測することによって、巡回経路の属性を動的に変更することで、より好適な自動プリセット巡回動作を実現するものである。
本実施形態の場合、第7の実施形態においてカメラサーバ110の1次記憶装置210に保存される動作変更プログラム480は、本実施形態に係る処理を行う動作変更プログラム(以下、動作変更プログラム481とする)となる。
雲台制御I/F240には、上述した実施形態と同様に雲台241を制御し、カメラ231のパン角、チルト角等を変更するとともに、パン角、チルト角の積算が行われ値が保持される。なお、本実施形態で用いる設定データは、第7の実施形態における設定データ474と同様である。
動作変更プログラム481を用いた処理は、図24に示す動作変更プログラム480を用いた処理のフローチャートと同様であり、ステップS2405の動作量の予測処理を、動作量の実測処理(以下、ステップS2405−2とする)に置き換えたものである。
ステップS2421−2では、カメラサーバ110のCPU200は、雲台制御I/F240に問い合わせて、動作量の実測値を取得する。そして、取得した動作量の実測値を、ステップS2405と同じ処理で動作量を予測したものから減じた値を、ステップS2406で閾値と比較する動作量とすることで、実際の閾値までの残り動作量で動作変更を判断することができる。
また、図24に示すステップS2410と同様の動作変更処理において、第7の実施形態における第1の動作変更処理を変形した処理を適用するものであっても良い。具体的には、前述の予測値から実測値を減じて判断した値から、予め設定されている閾値に対する残り運動量なども、ダイアログで明示させるようにしても良い。
なお、第7の実施形態においても、第7の実施形態と同様の趣旨で、動作変更プログラム481は、ビューワクライアント120の1次記憶装置310の動作変更プログラム581として保存される形態であっても良い。この場合、ネットワーク130を経由して、カメラサーバ110からイベントが受け取られる。
本実施形態によれば、360度の全周を超えた動作が可能な監視カメラにおいて、動作量を実測して推奨動作量よりも多い動作が見込まれる場合、つまり耐久性に懸念がある場合に、警告等を行うことができる。即ち、監視用途で長期間自動巡回させられるネットワークカメラの場合には、耐久性や信頼性が重要となるが、本実施形態では、これらを加味してプリセット巡回を設定し、より堅牢な撮像制御システムを提供することが可能となる。
(第9の実施形態)
次に、本発明の第9の実施形態について説明する。
第9の実施形態における撮像制御システムの概略構成、並びに、カメラサーバ110及びビューワクライアント120の内部構成については、それぞれ、第1の実施形態における図1〜図3に示すものと同様である。
上述した第8の実施形態では、動作量を実測して耐久性を考慮する形態であったが、第9の実施形態では、原点での角度ずれを検知することによって、ずれ易さを検知し、より好適な自動プリセット巡回動作を実現するものである。
本実施形態の場合、第8の実施形態においてカメラサーバ110の1次記憶装置210に保存される動作変更プログラム481は、本実施形態に係る処理を行う動作変更プログラム(以下、動作変更プログラム482とする)となる。さらに、図4に示す画像撮像プログラム410は、本実施形態に係る処理を行う画像撮像プログラム(以下、画像撮像プログラム412とする)となる。また、本実施形態で用いる設定データは、第8の実施形態で用いる設定データ474と同じであるが、内容については後述する。
また、本実施形態におけるI/O機器251は、例えば、位置検出センサを具備している。例えば、位置検出センサは、原点の位置に設置されており、雲台制御I/F240で原点に制御した場合に、カメラ231が物理的に正しくその通り原点位置に有るかどうかを入出力I/F250で判断する。
図25は、本発明の第9の実施形態を示し、動作変更プログラム(482)を用いた処理手順の一例を示すフローチャートである。なお、本実施形態では、設定変更イベントは、設定プログラム435の処理において投げられるものとする。
なお、図25に示すフローチャートにおいて、図24に示すフローチャートと同様のステップについては、同じ符号を付し、その詳細な説明は省略する。
ステップS2501において、カメラサーバ110のCPU200は、イベントが発生したか否かを判断する。
ステップS2501の判断の結果、イベントが発生していない場合には、ステップS2502に進む。ステップS2502に進むと、カメラサーバ110のCPU200は、入出力I/F250でカメラ231の原点位置におけるずれを検知したか否かを判断する。この判断の結果、ずれを検知していない場合には、ステップS2501に戻る。
一方、ステップS2502の判断の結果、ずれを検知した場合には、ステップS2503に進む。ステップS2503に進むと、カメラサーバ110のCPU200は、ずれ検知イベントを投げる。また、このずれ検知イベントを投げる際に、動作変更イベントも同時に投げられる。この場合、ずれ検知を耐久性がなくなったものと看做して、動作変更を起こさせる。こうすることにより、小回りによってなるべく動作を減らしてずれを減らすことが可能となる。
ステップS2501の判断の結果、イベントが発生している場合には、図24に示すステップS2404に進み、必要に応じて、ステップS2405〜S2411の処理が行われる。
また、本実施形態の場合、ステップS2410の動作変更処理において、第8の実施形態における第1の動作変更処理を変形して、ずれが検知されていることをダイアログで明示させるようにしても良い。
また、本実施形態で用いられる画像撮像プログラム412では、画像撮像プログラム411と同様の動作の他に、ずれ検知イベントを受け取った場合に、雲台241のリセット動作を行うように変更がされる。これにより、正常な動作に戻すことができる。
また、設定データ474の全体用の動作変更時の属性情報を、原点要求属性を「要」として適用している場合、ステップS2403のずれ検知イベントを、さらにずれる可能性があるものとみなして、動作変更を起こすようにする。こうすることで、原点を通ることとなり、画像撮像プログラム412での補正が可能であることから、より信頼性のある動作を見込むことができる。
また、第7の実施形態〜第9の実施形態における動作変更処理に係る上述した第1〜第3の動作変更処理は、それぞれ、別個に記述したが、組み合わせて複数の動作を行わせても良い。
なお、第9の実施形態においても、他の実施形態と同様の趣旨で、動作変更プログラム482及び画像撮像プログラム412は、ビューワクライアント120に保存される形態であっても良い。
本実施形態によれば、360度の全周を超えた動作が可能な監視カメラにおいて、原点位置からのずれを検知して、ずれを減らすための警告等を行うことができる。また、ずれを減らすように設定された全体用の動作変更時の属性情報に基づいて動作を変更させて自動動作させることで、より信頼性の高い自動動作を実現することができる。
前述した各実施形態に係る撮像制御システムの撮像制御方法を示す図6、図7、図11、図13、図17、図19、図22、図24及び図25の各ステップは、コンピュータのCPUが記憶媒体に記憶されたプログラムを実行することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
具体的に、前記プログラムは、例えばCD−ROMのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、CD−ROM以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク(LAN、インターネットの等のWAN、無線通信ネットワーク等)システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
また、本発明は、コンピュータが供給されたプログラムを実行することにより各実施形態に係る撮像制御システムの機能が実現される態様に限られない。そのプログラムがコンピュータにおいて稼働しているOS(オペレーティングシステム)或いは他のアプリケーションソフト等と共同して各実施形態に係る撮像制御システムの機能が実現される場合も、かかるプログラムは本発明に含まれる。また、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて各実施形態に係る撮像制御システムの機能が実現される場合も、かかるプログラムは本発明に含まれる。
また、前述した本実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術的思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。