(57)【特許請求の範囲】
【請求項１】
撮像手段を有し、当該撮像手段により得られた映像情報をネットワークを介してクライアントに配送を行なう撮像サーバであって、
１つの撮像手段による撮像方向が変更可能な範囲内に映像情報の配送対象となる互いに異なる複数の撮影方向が変更可能な矩形領域を設定し、設定された矩形領域に関する情報および該矩形領域それぞれに対応する撮像手段名称に関する情報を記憶する記憶手段と、
前記クライアントから通知された撮像手段名称に対応する矩形領域に関する情報を前記記憶手段より読み出し、当該読出された矩形領域に関する情報に基づいて当該矩形領域を前記撮像手段の撮像方向が変更可能な範囲として設定し、当該撮像方向が変更可能な範囲内で前記撮像手段を制御する制御手段と
を備えることを特徴とする撮像サーバ。
【請求項２】
前記記憶手段には、前記互いに異なる複数の矩形領域それぞれに対応して、前記撮像手段名称に関する情報としての識別番号と、前記矩形領域に関する情報としての前記撮像手段のパン角及びチルト角の範囲を示す情報を記憶することを特徴とする請求項第１項に記載の撮像サーバ。
【請求項３】
前記記憶手段には、更に、前記複数の矩形領域それぞれに対応するズーム倍率の変更可能な範囲を示す情報が記憶されることを特徴とする請求項第２項に記載の撮像サーバ。
【請求項４】
前記制御手段は、仮想撮像手段を切り替えるために前記撮像手段の撮像方向を変更中においては、前記撮像手段で得られる映像情報の配送を禁止する手段を含むことを特徴とする請求項第１項に記載の撮像サーバ。
【請求項５】
請求項第１項に記載の撮像サーバに接続されるクライアントであって、
前記撮像手段名称を特定する情報を前記撮像サーバに通知する通知手段と、
前記撮像サーバから配送されてくる映像を表示する表示手段と、
前記通知手段によって通知された撮像手段名称に対応する撮像手段の撮像方向を変更し、当該変更結果を前記サーバに指示する撮像方向変更指示手段とを備えることを特徴とするクライアント。
【請求項６】
前記撮影可能領域に関する情報は、前記撮像サーバからダウンロードすることを特徴とする請求項第５項に記載のクライアント。
【請求項７】
撮像手段を有し、当該撮像手段により得られた映像情報をネットワークを介して配送を行なう撮像サーバと当該撮像サーバからの映像情報を受信するクライアントで構成される撮像システムであって、
前記撮像サーバは、
１つの撮像手段による撮像方向が変更可能な範囲内に映像情報の配送対象となる互いに異なる複数の撮影方向が変更可能な矩形領域を設定し、設定された矩形領域に関する情報及び該矩形領域それぞれに対応する撮像手段名称に関する情報を記憶する記憶手段と、
前記クライアントから通知された撮像手段名称に対応する矩形領域に関する情報を前記記憶手段より読み出し、当該読出された矩形領域に関する情報に基づいて当該矩形領域を前記撮像手段の撮像方向が変更可能な範囲として設定し、当該撮像方向が変更可能な範囲内で前記撮像手段を制御する制御手段とを備え、
前記クライアントは、
前記撮像手段名称を特定する情報を前記撮像サーバに通知する通知手段と、
前記撮像サーバから配送されてくる映像を表示する表示手段と、
前記通知手段によって通知された撮像手段名称に対応する撮像手段の撮像方向を変更し、当該変更結果を前記サーバに指示する撮像方向変更指示手段と
を備えることを特徴とする撮像システム。
【請求項８】
撮像手段を有し、当該撮像手段により得られた映像情報をネットワークを介してクライアントに配送を行なう撮像サーバの制御方法であって、
１つの撮像手段による撮像方向が変更可能な範囲内に映像情報の配送対象となる互いに異なる複数の撮影方向な変更可能な矩形領域を設定し、設定された矩形領域に関する情報および該矩形領域それぞれに対応する撮像手段名称に関する情報を記憶手段に格納する格納工程と、
前記クライアントから通知された撮像手段名称に対応する矩形領域に関する情報を前記記憶手段より読み出し、当該読出された矩形領域に関する情報に基づいて当該矩形領域を前記撮像手段の撮像方向が変更可能な範囲として設定し、当該撮像方向が変更可能な範囲内で前記撮像手段を制御する制御工程と
を備えることを特徴とする撮像サーバの制御方法。
【請求項９】
撮像手段を有するコンピュータに読込ませ実行させることで、前記撮像手段により得られた映像情報をネットワークを介してクライアントに配送を行なう撮像サーバとして機能させるプログラムを格納したコンピュータ可読の記憶媒体であって、
前記コンピュータに、
１つの撮像手段による撮像方向が変更可能な範囲内に映像情報の配送対象となる互いに異なる複数の撮影方向が変更可能な矩形領域を設定し、設定された矩形領域に関する情報および該矩形領域それぞれに対応する撮像手段名称に関する情報を記憶手段に格納する格納手順と、
前記クライアントから通知された撮像手段名称に対応する矩形領域に関する情報を前記記憶手段より読み出し、当該読出された矩形領域に関する情報に基づいて当該矩形領域を前記撮像手段の撮像方向が変更可能な範囲として設定し、当該撮像方向が変更可能な範囲内で前記撮像手段を制御する制御手順と
を実行させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は撮像手段で撮像して得られた映像情報をインターネット等のネットワーク上に配送する撮像サーバ及びクライアント及び制御方法及びシステム及び記憶媒体に関するものである。
【０００２】
【従来の技術】
撮像手段の１つであるビデオカメラの映像を遠隔地の多地点から観察できるシステムがある。そして、本願出願人は、汎用のネットワーク上にカメラを撮像するサーバ（カメラサーバ）と、そのサーバに接続するクライアントを設け、クライアント側でカメラサーバのカメラ映像を観察するだけでなく、そのカメラのパン・チルト角度やズーム倍率等を遠隔操作可能にする技術をいくつか提案した。
【０００３】
この場合の汎用ネットワークは、たとえばＴＣＰ／ＩＰプロトコルを用いたネットワークの代表的なインターネットである。そして上記のサーバの構成は、パーソナルコンピュータ（以下、単にＰＣ）とそれに接続しコンピュータ制御可能なカメラを接続したものであり、その上にカメラサーバとなるプログラムを搭載することで実現した。また、クライアントではＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ブラウザが動作させ、グラフィカルユーザインタフェースを介してカメラサーバのアングルを操作する。ただし、カメラサーバのカメラを遠隔操作できるのは、１つのクライアントのみであり、カメラサーバは接続している複数のクライアントに撮像した同じ映像を配送する。
【０００４】
【発明が解決しようとする課題】
このようなシステムにおいては、撮像しても良い範囲と、そうでない範囲を設けることが必要になる場合がある。理由は、パン・チルト角度およびズーム倍率を遠隔操作して、ある特定の角度（方向）におけるズーム倍率を非常に高くしてしまった場合に、プライバシー等の問題に繋がるからである。
【０００５】
このようなプライバシー保護のため、物理的なカメラの可動範囲よりも狭めてでも、カメラ操作可能な範囲に制限を設けることが必要である。この操作可能範囲（カメラが潜在的に変更可能な範囲ではない）は、単純に、パン・チルト角度あるいはズーム倍率に対して上限・下限を設定して範囲制限をかけるものであった。
【０００６】
つまり、
パン角度をθ（右にパンするほど値が大きいものとする）
チルト角度φ（上にパンするほど値が大きいものとする）
ズーム倍率ｚ（倍率が大きいほど値が大きいものとする）
とすると、操作可能な範囲は、たとえば次のように１つの領域に設定していた。θｍｉｎ≦θ≦θｍａｘ（θｍｉｎ：パン角度左端，θｍａｘ：パン角度右端）
φｍｉｎ≦φ≦φｍａｘ（φｍｉｎ：チルト角度下限，φｍａｘ：パン角度上限）
ｚｍｉｎ≦ｚ≦ｚｍａｘ（Ｚｍｉｎ：ズーム倍率下限，ｚｍａｘ：ズーム倍率上限）
しかし、現実には、撮像しても構わない範囲（領域）、或いは撮像しない範囲は離散的、つまり、とびとびに存在する場合があり、且つ、特定の範囲ではズーム倍率の上限は高くてもよいがそれ以外ではズーム倍率の上限は低く抑えたいといった要望には応えることができない。
【０００７】
また、このようなシステムでは、カメラサーバにおける操作可能範囲を設定する管理者と、カメラを操作するクライアント側の操作者（カメラ利用者）とが異なっているのが通常である。従って、仮に、管理者が複雑な操作範囲を設定してしまうと、クライアントの操作者にしてみれば、どの範囲（領域）でどのようにズーム倍率や可視範囲が制限されているのか、直感的にわかりづらくなってしまうという問題もある。
【０００８】
更に、管理者にとっても、よりわかりやすく、且つ、柔軟に操作可能範囲を設定し得ることが望まれていた。
【０００９】
【課題を解決するための手段】
本発明はかかる問題点に鑑みなされたものであり、撮像方向が変更可能な撮像手段でもって撮像できる範囲内に、点在する複数の撮像可能領域を設定しながらも、クライアントに何らの違和感を与えず、良好な操作環境を提供し得る撮像サーバ及びクライアント及び制御方法及びシステム及び記憶媒体を提供しようとするものである。
【００１０】
この課題を解決するため、たとえば本発明の撮像サーバは以下の構成を備える。すなわち、
撮像手段を有し、当該撮像手段により得られた映像情報をネットワークを介してクライアントに配送を行なう撮像サーバであって、
１つの撮像手段による撮像方向が変更可能な範囲内に映像情報の配送対象となる互いに異なる複数の撮影方向が変更可能な矩形領域を設定し、設定された矩形領域に関する情報および該矩形領域それぞれに対応する撮像手段名称に関する情報を記憶する記憶手段と、
前記クライアントから通知された撮像手段名称に対応する矩形領域に関する情報を前記記憶手段より読み出し、当該読出された矩形領域に関する情報に基づいて当該矩形領域を前記撮像手段の撮像方向が変更可能な範囲として設定し、当該撮像方向が変更可能な範囲内で前記撮像手段を制御する制御手段とを備える。
【００１１】
【発明の実施の形態】
以下、添付図面に従って本発明にかかる実施形態を詳細に説明する。
【００１２】
本実施形態の概要を簡単に説明すると、カメラサーバに接続された１つのカメラを、クライアント側から見たとき、それがあたかも複数のカメラであるかのように見せるものである。
【００１３】
図１は本実施例におけるシステムのブロック構成図である。
【００１４】
図中、１−１はカメラサーバ装置（以下、単にカメラサーバという）、１−２はカメラサーバ１−１からの映像を表示すると共にカメラを遠隔操作する表示操作端末（以下、クライアントという）であり、これらはネットワーク１−３によって接続されている。
【００１５】
さて、カメラサーバ１−１は、ビデオカメラ−１−１１からの映像を取り込みクライアント装置１−２への配送をおこなうとともに、クライアント１−２からのカメラ制御コマンドを受け付け、ビデオカメラ１−１１のズーム倍率および可動雲台１−１２を制御する（可動雲台１−１２を動作させることでパン角、チルト角が変更できることになる）。
【００１６】
なお、カメラサーバ１−１、クライアント１−２は、図示の場合には１台ずつ示しているものの、この数に制限はない。説明を簡単なものとするためである。以下の説明でもカメラサーバ、クライアントはそれぞれ１台であるものとして説明する。また、ネットワーク１−３に関しても、後で述べるカメラ制御信号、圧縮した映像信号を通すのに十分な帯域があるインターネットやイントラネット等のディジタルネットワークであればその種類は問わない。
【００１７】
ただし、実施形態でのネットワークプロトコルとしてＴＣＰ／ＩＰ（ＵＤＰ／ＩＰ）プロトコルを仮定し、以下アドレスといった場合にはＩＰアドレスを指すこととする。また、カメラサーバ１−１、クライアント１−２共にＩＰアドレスを割り当てられているものとする。
【００１８】
カメラサーバ１０１は、パーソナルコンピュータで構成し得るが、図示のように、ビデオカメラ１−１１、ビデオカメラの雲台のパン・チルト角度を制御する可動雲台装置１−１２、ビデオカメラ１−１１と可動雲台装置１−１２のズーム倍率、パン・チルト角度を制御するカメラ・雲台制御部１−１３、ビデオカメラ１−１１からの映像を取り込む映像入力部１−１５、取り込んだ映像データ圧縮する映像圧縮部１−１６、圧縮した映像データをネットワーク上に配送する通信制御部１−１４、ネットワーク１−３経由でのクライアント１−２からのコマンドを解釈し、カメラサーバ装置の各部を制御するコマンド解釈・実行部１−１７、各部のデータ受け渡しに用いる記憶装置１−１８から構成される。
【００１９】
なお映像入力部１−１５は、ビデオカメラ１−１１からのＮＴＳＣ映像信号を取り込みＡ／Ｄ変換後、ＭｏｔｉｏｎＪＥＰＧで圧縮して、通信制御部１−１４に渡す。ここでは映像の圧縮形式として、ＭｏｔｉｏｎＪＥＰＧ圧縮としたが、これに限らず如何なる圧縮形式でも良いのは勿論である。
【００２０】
次にカメラクライアント１−２について述べる。
【００２１】
このクライアントもサーバと同様、パーソナルコンピュータ等の汎用情報処理装置で構成し得るものであり、カメラサーバ１−１から配送されてきた圧縮映像データは、通信制御部１−２１を通じて受信され、映像伸長部１−２５で伸長され、映像表示部１−２６で表示される。また、カメラクライアント装置上のユーザインタフェースの操作によりカメラ制御や画像蓄積保存操作、等ができるようになっているものとする。これらの画面表示・操作の制御は表示制御部１−２４が行っている。
【００２２】
映像表示部１−２１には、ビットマップディスプレイが含まれており、図２のような画面（ユーザーインタフェース）を構成できる。実施形態における映像表示部１−２１としては、ウインドウシステムを用いた。このシステムとしては、米国マイクロソフト社のＷｉｎｄｏｗｓ９５、或いはＵＮＩＸのＸ−Ｗｉｎｄｏｗ等がある。
【００２３】
図２において、２−１は映像が表示される映像表示領域、２−２はカメラ操作のためのカメラ操作パネルであり、これはウインドウ形式で表示されるものである。カメラ操作パネル２−２中の２−２２，２−２３，２−２８はスクロールバーであって、それぞれ、カメラのパン角度、チルト角度、ズーム倍率を操作できるようになっている。スクロールバー２−２１はパン角操作用であって、バー中に表示されている矩形のツマミをマウス等のポインティングデバイスで左右に移動（一般にはドラッグ操作という）することでカメラサーバに対するパン角の指定コマンドを発行するために使用される。なお、「ツマミ」の表示位置は、パン角の操作制限領域内における現在の位置を示している。スクロールバー２−２３はチルト角操作用、スクロールバー２−２８はズーム倍率操作用であり、操作法及びそれぞれのツマミの位置の意味は、パン角用スクロールバー２−２１と同じである。
【００２４】
ただし、先に説明したように複数のクライアントのユーザは、同じカメラサーバの同じカメラからの映像を見ることができるので、結局の所、操作権を有するのは１つのクライアントのみである。従って、他のクライアントでは、スクロールバー２−２１、２−２３、２−２８は操作不能状態であることを示すような形態で表示する（たとえば薄く表示する等）。また、操作権の獲得の仕方であるが、図示の操作開始ボタン２−２１をマウス等で指示することで行なう。このボタンが指示されると、接続先のカメラサーバに操作権獲得要求を発行する。カメラサーバはこの要求を受けたとき、既に操作権を発行している他のクライアントが存在すれば要求に対して不可の通知を発行し、存在しなければ操作権を発行する。ただし、カメラサーバは、１つのクライアントに対して操作権を与えている時間を計時しており、所定時間経過したときに、操作権を無効にする通知を発行する。
【００２５】
説明を図２のユーザーインタフェースに戻す。図中、２−３０は、カメラ切替えボタンであり、このボタンを押すと２−３１のようなプルダウンメニューが表示される。なお、プルダウンメニュー２−３１の場合、カメラ１〜カメラ３の３通りのカメラが選択できるようになっている。このカメラ名は、実際のカメラ（実施形態におけるカメラサーバには物理的なカメラは１つだけである）ではなく、次に述べる「仮想的なカメラ」に対応しており、ここでのカメラ選択に対応して、「仮想的なカメラ」切替え（選択）を行う。また、ボタン２−３０には選択中の仮想カメラ名が表示されるものとする。更に、この選択できる「仮想的なカメラ」の一覧情報は、そのクライアントがカメラサーバに接続した際にサーバから送信してくるものである。
【００２６】
「仮想的なカメラ」について図９を用いて説明する。
【００２７】
枠９−３は、カメラサーバ１−１のカメラ１−１１が実際にに撮影することのできる全パン・チルト範囲における撮像できる範囲を示している（ただし、ズーム倍率は最低倍率における範囲である）。そして、斜線で示される領域が撮像を許可する領域を示している。換言すれば、斜線以外の領域はプライバシー等の問題で撮像してはいけない領域を示している。
【００２８】
カメラ１−１１は、そのパン角、チルト角を変更できるわけであるから、クライアントのユーザにしてみれば、１つのカメラは矩形範囲でそのアングルを変更できると考えるのは自然であろう。換言すれば、１つのカメラが図示の如く逆Ｌ字領域と、離散した領域で撮像できるようにしてしまうと、違和感を与える。そこで、この違和感を与えないようにするため、実施形態では、撮像できる領域をいくつかの矩形領域に分割し、それぞれの分割領域（図示では９−１１、９−１２，９−１３の３つ）に仮想的なカメラを割り当てた。この結果、ユーザにしてみれば、あたかも複数（図示では３つ）のカメラ（仮想的なカメラ）がカメラサーバ１−１に接続されているかのように見えるし、それぞれのカメラが矩形範囲内で自由にそのアングルを変更できるように見えるので、何らの違和感を与えないようにすることができる。図２のプルダウンメニュー２−３１で表示されるカメラ名はまさにこの仮想的なカメラを示している。
【００２９】
ここで、
パン角度をθ（右にパンするほど値が大きいものとする）
チルト角度φ（上にパンするほど値が大きいものとする）
ズーム倍率ｚ（倍率が大きいほど値が大きいものとする）
とすると、たとえばある特定の仮想カメラの操作可能な範囲は次のようにして設定できる。
【００３０】
θｍｉｎ≦θ≦θｍａｘ（θｍｉｎ：パン角度左端、θｍａｘ：パン角度右端）
φｍｉｎ≦φ≦φｍａｘ（φｍｉｎ：チルト角度下限，φｍａｘ：パン角度上限）
ｚｍｉｎ≦ｚ≦ｚｍａｘ（Ｚｍｉｎ：ズーム倍率下限，ｚｍａｘ：ズーム倍率上限）
たとえば、図９における矩形領域９−１１にあてはめた場合、この領域に対応する仮想的なカメラのパンチルト操作範囲は、その対角座標を（θｍｉｎ，φｍｉｎ），（θｍａｘ，φｍａｘ）となる。
【００３１】
もちろん、（θｍｉｎ，φｍｉｎ），（θｍａｘ，φｍａｘ）は物理的な全体の操作範囲内に収まっている。なお、実施形態では仮想カメラの数は３つとしているが、これに限らず、論理的にはいくつでも設定可能である。また、仮想カメラの操作範囲を示す領域は互いに重なっていてもかまわない。なお、すべての仮想的なカメラには、仮想カメラ識別のためのＩＤ番号が振られているものとする。内部的には、図１０に示すようなカメラ操作範囲テーブルが共有メモリ３−４３に保持しているものとする。また、１つのカメラサーバに接続される物理的なカメラは１つだけでなく、２つ、或いはそれ以上であってもよい。この場合には、１つの物理的なカメラと図１０に示すテーブルとを対応させることになる。つまり、図１０に示すテーブルは物理的なカメラの数だけ用意すればよい。
【００３２】
図３は、本実施例のプロセス構成図である。ここでプロセスとはＷｉｎｄｏｗｓＮＴやＵＮＩＸ等のマルチタスクオペレーティングシステムにおけるものを意味する。定常状態では、これらのすべてのプロセス３−１１，３−１２，３−２１，３−２２，３−３１が稼動しているものとする。
【００３３】
カメラサーバ１−１上でで動作する各プロセスは以下の通りである。
・カメラ制御サーバープロセス３−１１：操作権を有するクライアントプロセス３−３１が発行したカメラ制御命令を受け取り、カメラ制御部１−１３に命令を出力する制御を行なう。
・カメラ状態通知プロセス３−１２：カメラのパンチルト角度などの状態を検知してクライアントプロセス３−３１に通知する。
・映像サーバプロセス３−２１：カメラ映像の送信先を管理する
・映像獲得・送信プロセス３−２２：カメラ映像の取り込み・送信を行う。
【００３４】
なお、映像表示禁止フラグ３−４１、送信先リスト３−４２、カメラ制御範囲制限リスト３−４３、カメラ状態レジスタ３−４４は、プロセス間でデータの受け渡しに用いる共有メモリに設けられている。また、カメラ制御制限範囲レジスタ３−４５、制限権フラグ３−５１、カメラ番号リスト３−５２は、一時的にプロセスのデータを保存するためのレジスタである。
【００３５】
カメラサーバ１−１上のプロセス３−１１〜３−２２の動作の詳細はフローチャート図４，５，６に示し、カメラクライアント１−２上では、クライアントプロセス３−３１が動作しており、その動作の詳細は図７に示す。なお、これらのフローチャートに対応するプログラムは、サーバ或いはクライアントそれぞれが有する記憶装置（たとえばハードディスク装置等）に記憶されており、それが主記憶装置（メインＲＡＭ）にロードされ実行されることになる。
【００３６】
先ず、カメラサーバの各プロセスについて図４〜７のフローチャートを用いて説明する。
【００３７】
なお、パケットとしては図８のような形式のものが生成され、ネットワーク１−３に送信されることになる（厳密には、ＴＣＰ／ＩＰやＵＤＰ／ＩＰ等のパケットで用いられているフォーマットを使用する事になるが、図８では実施例の説明に必要なパケット情報のみ記述した）。
【００３８】
まず、図４のフローを用いてカメラ制御プロセス、カメラ状態通知プロセスについて説明する。
【００３９】
カメラ制御サーバプロセス３−１１が起動されると（ステップＳ４００）、カメラ状態通知プロセス３−１２を生成し（ステップＳ４０２）、クライアントプロセス３−３１からのカメラ制御接続要求（図８（１））を待つ（ステップＳ４０３）。クライアントプロセス３−３１から接続要求があると、接続受付処理（Ａｃｋを返す）を行い（ステップＳ４０４）、接続のあったクライアントプロセス３−３１から送信されてくるカメラ制御コマンド（図８（２）〜（４）を待つ（ステップＳ４０５）。なお、接続受付処理では、先に説明したように、カメラサーバが有する仮想的なカメラの一覧情報をクライアントに通知、つまり、転送する。また、このとき、タイマーセットして、ある一定時間（「制御持ち時間」と呼ぶ）が経つとカメラ制御接続を切断する（ステップＳ４０７）ようになっている。
【００４０】
カメラ制御コマンド（図８（２）〜（４））を受信すると、そのコマンドに応じてカメラ制御部１−１３を通じてビデオカメラ１−１１のズーム倍率、および可動雲台装置１−１２のパンチルト角度を制御する（ステップＳ４０９）。制御持ち時間が終わるまで、クライアントプロセス３−３１からカメラ制御コマンドを受付け、コマンド解釈部１−１７、カメラ雲台制御部１−１３２を通じて、コマンドに応じたカメラ制御を行う。なお、図５に制御コマンドに応じた処理の詳細を示した。ここでカメラ制御コマンドとしては、説明を簡単にするため、次の命令のいずれかであるものとした。
【００４１】
パン角度変更命令    ＰＡＮ  θ
チルト角度変更命令  ＴＩＬ  φ
ズーム倍率変更命令  ＺＯＭ  α
ただし、θ，φ，αは、それぞれ、パン角度、チルト角度、ズーム倍率をあらわすパラメータであり、このカメラ制御コマンドには、他にも逆光補正やオートフォーカス、マニュアルフォーカス値設定等、各種ありえるが、ここでは説明を省略する。
【００４２】
さらに、「仮想的なカメラ」切替えのための次の命令もある（図８（５））。
カメラ切替え命令    ＳＥＬ  ｎ
（ただし、ｎは仮想カメラの識別番号を示す）
カメラ切替え要求命令の時は、仮想カメラ識別番号に対応する操作範囲をカメラ制御範囲制限リスト３−４３から読み出し、カメラ制御制限範囲レジスタおよびカメラ状態レジスタ３−４４に設定し（ステップＳ５０２）、次の手順で計算したパン・チルト・ズームの値を、仮想的なカメラの初期位置として初期設定する（ステップＳ５０４）。仮想的なカメラの初期設定値は、パン・チルト角度に関しては制限範囲の中央の値とし、ズーム倍率に関しては制限範囲の最低倍率の値とする。ただし、あらかじめ制限範囲のパン・チルトズームを定めておき、その値にセットするのでも良い。
【００４３】
なお、仮想カメラ切替えの間、つまりカメラパン・チルト・ズーム変更中は、映像送信を許可しない領域を通過する可能性もあるので、この間の映像は送信しないよう、映像表示禁止フラグをＯＮにセットしておく（ステップＳ５０３，Ｓ５０５）。この映像挟持禁止フラグがＯＮ状態にあるときは、後述するように仮想カメラの識別番号として“−１”の情報を各クライアントに通知する。こうして、そして、指示された仮想カメラがステップ５０２で設定した状態（パン角、チルト角、ズーム倍率）になった場合に、映像表示禁止フラグをＯＦＦに設定しする。これによって、再び映像の配送処理が行なえるようになる。
【００４４】
一方、パン、チルト、ズーム要求命令の場合には、命令に含まれるパン角度、チルト角度、ズーム倍率がその仮想カメラの操作範囲内であるかどうかチェックし（ステップＳ５１１，Ｓ５２１）、値が範囲を超えている場合には、操作範囲の上限（値が大きすぎる場合）ないし下限（値が小さすぎる場合）の値に再設定して、カメラ制御を行う。
【００４５】
カメラ制御接続開始から一定時間が経過し、制御持ち時間が終了すると、接続切断処理（Ｓ４０７）を行い、このステップＳ４０７の処理の中でカメラ制御接続終了命令（図８（８））、つまり、カメラの操作権を無くす命令をクライアントプロセス３−３１に返送する。そして、再び接続要求が来るのを待つ（Ｓ４０３）。カメラ制御サーバープロセス３−１１は同様に実施された任意のクライアントプロセスからのカメラ制御接続要求を受け付け、カメラ操作を実現するが、図４からもわかるように同時に複数のクライアントプロセスとは接続できない。したがって、この接続はＴＣＰ／ＩＰのようなコネクション指向の接続がなされるものとする。
【００４６】
ステップＳ４０２で生成されたカメラ状態通知プロセス３−１２が動作中は、常時カメラ状態をチェックする。すなわちカメラのパン・チルト角度、ズーム倍率（＝ｐ，ｔ，ｚ）とする）をカメラ・雲台制御部１−１３に問い合わせる事で読み込み、カメラ状態レジスタ３−４４に書き込むと共に（ステップＳ４２２）、映像表示禁止フラグ３−４１の状態を見て（ステップＳ４２３）、フラグがＯＮであればカメラ状態を「カメラ切替え中」（仮想カメラ識別番号ｎ＝−１）として（ステップＳ４２４）、映像を送信しているクライアントプロセス１−２にカメラ状態（図８（９）の形式）を通知する（ステップＳ４２６）。
【００４７】
次に、図６のフローを用いて映像サーバプロセス、映像獲得・送信プロセスについて説明する。
【００４８】
映像サーバプロセス３−２１が起動されると（ステップＳ６００）、映像獲得・送信プロセス３−２２を生成し（ステップＳ６０２）、クライアントプロセス３−３１からのイベントを待つ（ステップＳ６０３）。ここで、イベントが映像表示開始要求コマンド（図８（７））であれば（ステップＳ６０４）、映像表示要求パケットに含まれているパケットの送信元アドレスを確認し、映像の送信先リスト３−４２に追加する。映像表示終了要求コマンドであれば（ステップＳ６０６）、同様に映像表示要求パケットに含まれているパケットの送信元アドレスを確認し、映像の送信先リスト３−４２から削除する。なお、映像送信先リスト３−４２には、リスト形式で映像送信先のアドレスが保持されている。
【００４９】
映像獲得・送信プロセス３−２２は、起動されると、次の操作を繰り返す。すなわち、カメラ映像のフレームとして取り込み（ステップＳ６２２）、圧縮を行い（ステップＳ６２３）、映像表示禁止フラグがＯＮでなければ（ステップＳ６２４）、この圧縮された映像データを、図８（１０）の形式にパケット化し、映像送信先リスト３−４２にある複数のアドレスに対して、送信する（ステップＳ６２５）。
【００５０】
次にクライアント側で動作するクライアントプロセス３−３１を図７のフローチャートに従って説明する。
【００５１】
まず、プロセス起動時に、初期化処理を行い（ステップＳ７０１）、接続するカメラサーバ装置１−１のアドレス（ＩＰアドレス、ここでは”ＡＤＤＲ＿Ｃ”とする）に対応するカメラサーバに映像表示開始要求を送信する（ステップＳ７０２）。このときのパケット形式は図８の（６）の通りである。
【００５２】
ここで、ＡＤＤＲ＿Ｃに対応するカメラサーバからＡｃｋが返ってこなければ（ステップＳ７０３）、アドレスが間違っている等、動作異常なので、クライアントプロセスを終了する（ステップＳ７０４）。
【００５３】
また、Ａｃｋが返ってくれば表示成功なので（ステップＳ７０３）、イベント、すなわちユーザのユーザインタフェースによる入力、或いは、カメラサーバ１−１からの各種パケットの受信を待つ（ステップＳ７０５）。
【００５４】
ここで、ユーザが操作開始ボタン２−２１を押すと（ステップＳ７０６）、自分が既にカメラ制御を開始している状態かどうかを操作権フラグ３−５１（クライアントが有するＲＡＭに確保された変数）で確認し（ステップＳ７０７）、既に制御中ならステップＳ６０５に戻る。操作中でなければ、カメラ制御接続要求（図８（１））をカメラ制御サーバプロセスに対して発行し（ステップＳ７０８）、許可（Ａｃｋ）を待つ（ステップＳ７０９）。ここでＡｃｋが返ってくれば、カメラ制御サーバプロセスに対して接続が成立し、クライアント装置の記憶部１−２９にある操作権フラグ３−５１をＯＮにし（ステップＳ７１１）、カメラ操作パネル２−２（撮像方向変更ボタンやスクロールバー）の操作を有効にする。なお、カメラ制御サーバプロセスは、カメラ制御接続要求待ちステップＳ４０３のときにしか、接続要求を受けつけない。
【００５５】
また、接続成立して「制御待ち時間」が終了するとカメラ制御サーバプロセスより、カメラ制御接続終了要求（図８（８））が返ってくるが、これを受け取ると（ステップＳ７１４）操作権フラグ３−５１をＯＦＦにして（ステップＳ７１５）、カメラ操作パネル２−２の操作を無効にする（ステップＳ７１６）。
【００５６】
カメラ操作パネル２−２の操作が有効になっている間は、カメラ操作パネル２−２の操作に対応したカメラ制御命令が生成され、カメラサーバプロセス１−２に発行される（ステップＳ７１７〜Ｓ７１８）。なお、カメラ操作パネル２−２のカメラ切替えプルダウンメニュー２−３１からカメラを選択した場合には、カメラ切替えの命令（図８（５））が発行される（ステップＳ７１９〜Ｓ７２０）。なお、命令の生成過程に関しては、ここでは省略する。
【００５７】
メニューなどの操作によって発行されるクライアントプロセス終了要求（ステップＳ７２６）に対しては、映像表示終了要求（図８（８））を発行し（ステップＳ７２８）、クライアントプロセスを終了する（ステップＳ６２８）。
【００５８】
パケットが到着した場合には（ステップＳ７２１）、それが映像データ（図８（１０））の場合（ステップＳ７２２）、映像データ中の圧縮映像データを読み出し、伸長処理を行った後、この映像フレームデータを用いて、２−１の映像表示パネルの表示映像を更新する（ステップＳ７２３）。
【００５９】
到着パケットがカメラ状態通知（図８（９））の場合には（ステップＳ７２４）、パンチルト角度およびズーム倍率を操作するスクロールバー２−２１，２−２３，２−２８のノッチ（ツマミ部分）の表示位置を、パケットに含まれているパラメータを用いて、対応する位置に変更する。また、２−３０のカメラ切替えプルダウンボタンには仮想カメラ識別番号に対応したカメラ名を表示する。（これは、他のクライアントプロセスがカメラを遠隔操作している場合に、その情報を更新していることになる）。なお、仮想カメラ識別番号とカメラ名の対応付けは、カメラ状態通知プロセス３−１２から対応関係を通知されたものを用いる。ただし、仮想カメラ識別番号が−１の時（カメラが仮想カメラの撮影可能な範囲に移動中の場合である）は、仮想カメラ切替え動作中であるとし、映像表示パネル２−１にカメラ切替え中である旨表示する。
【００６０】
以上の結果、実施形態によれば、カメラサーバが有する物理的な１つのカメラが、クライアントから見ればあたかも複数のカメラ（仮想的なカメラ）であるかのように見え、しかも、個々の仮想的カメラの少なくともパン角、チルト角は矩形範囲内であれば自由に変更可能であるので、そこにはプライバシーの問題で撮像が制限されている領域があることすら知らずに済み、しかも、何らの違和感も与えないようにすることができる。
【００６１】
なお、先にも説明したが、１つのカメラサーバに物理的なカメラを複数のカメラを設けることも可能である。この場合も、各物理的なカメラそれぞれに複数の仮想カメラを設定すればよい。このとき、カメラサーバは各物理的なカメラにつき、独立してクライアントに操作権を与えるようにする。
【００６２】
また、カメラサーバの管理者の場合、カメラサーバを直接操作してカメラ制御制限リストを編集しても良いが、クライアントと同様に接続し、そこで管理者であることをカメラサーバに通知し（たとえばＩＤとか、パスワード等で通知する）、ｆｔｐ等のプロトコルで制限リストのファイルをカメラサーバに転送するようにすればよい。
【００６３】
或いは、管理者である場合には、物理的なカメラが有するパン角、チルト角の変更可能な範囲枠を画面に表示し、その中でマウス等のポインティングデバイスでもって矩形をいくつも設定することで、それぞれの矩形領域に仮想カメラとその仮想カメラの移動可能なパン角、チルト角を設定するようにしてもよい。ズーム倍率はたとえば設定した各矩形領域につき、キーボードやマウス等で上限値、下限値を設定すればよい。勿論、このためには、カメラサーバ側には管理者がログインした場合に、上記の操作を管理者に提供するためのプログラムを動作させれば良いだけである。
【００６４】
次に、複数の制御制限領域（複数の仮想カメラ）を持つカメラサーバ装置や、とくに制限することを設定していないカメラサーバ装置が、混在してネットワークにそれぞれ接続されている状況を図１１を用いて説明する。
【００６５】
カメラサーバが複数存在する状況では、カメラクライアントを利用するユーザに、カメラサーバのリストを呈示して（たとえば図１２のような一覧を表示させ）、その中から自分が見たいカメラ・サーバをマウス等のポインティングデバイスで選択することができるようにすることが望まれる。
【００６６】
ユーザによりカメラ・サーバが選択されると、カメラクライアントは図７のステップＳ７０２にあるように、映像表示開始要求を送信する。本発明を利用すれば、他のカメラサーバ装置と同様に、複数の制御制限領域を別々の独立したカメラとして扱うことができるようになる。例えば、図１１のユーザ・インタフェースにおいて、カメラ１〜カメラ３は、同一のカメラサーバの各々の制御制限領域が対応する。カメラ４，カメラ５は、それぞれ別のカメラサーバである。
【００６７】
本実施例のように、
１）カメラサーバ装置に、複数のカメラ制御制限範囲すなわち、パン・チルト角度およびズーム倍率の範囲を制限した領域（「制御制限領域」と呼ぶ）を管理する手段を設け、
２）それぞれの制限領域は、パン左端角度、パン右端角度、チルト下限角度、パン上限角度、ズーム下限倍率、ズーム上限倍率を設定することで、制御範囲制限を行い、
３）クライアントプロセスからは、各々の制御制限領域はそれぞれ別々な独立した仮想的なカメラであるかのように見せ、
４）クライアントプロセスからは、複数の制御制限領域を切り替える場合に、複数のカメラ切替えであるかのように扱う、
ことにより、プライバシーの問題に対してより現実的で柔軟なカメラ制御制限範囲設定を可能にする。つまり、一つ一つのカメラ制御範囲制限領域は単純な設定になっており、複数の仮想的なカメラという概念で、このような制御制限範囲領域を複数の設定できるため、カメラ制御範囲を設定する者は、異なるカメラとして制御制限範囲を設定すればよく、クライアントプロセスからも、制御制限範囲の異なる別々なカメラとして見えるので、制限範囲の把握がやりやすくなる。
【００６８】
なお、上記実施形態では、カメラサーバには撮像手段及びネットワークに接続するための手段といったハードウェアを必要とするものの、そのベースはパーソナルコンピュータ等の汎用情報処理装置で実現できる。また、クライアントは撮像手段がないだけで、基本的なハードウェアはカメラサーバと同じ、パーソナルコンピュータ等の汎用情報処理装置で構築できる。
【００６９】
要は、必要とするハードウェアを活用して装置をカメラサーバ或いはクライアントとして動作させるプログラムを備えていれば良いことになる。従って、本願発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されるものである。
【００７０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７４】
また、本実施形態における撮像手段としてはカメラを例に挙げたが、これに限定される、フラットベットスキャナ等であっても良い。
【００７５】
【発明の効果】
以上説明したように本発明によれば、撮像方向が変更可能な撮像手段でもって撮像できる範囲内に、点在する複数の撮像可能領域を設定しながらも、クライアントに何らの違和感を与えず、良好な操作環境を提供することが可能になる。
【図面の簡単な説明】
【図１】実施形態におけるカメラシステムのブロック構成図である。
【図２】実施形態におけるクライアント側のユーザーインタフェースを示す図である。
【図３】実施形態におけるシステムにおける動作シーケンスを示す図である。
【図４】実施形態におけるカメラサーバの動作を示すフローチャートである。
【図５】実施形態におけるカメラサーバの動作を示すフローチャートである。
【図６】実施形態におけるカメラサーバの動作を示すフローチャートである。
【図７】実施形態におけるクライアントの動作を示すフローチャートである。
【図８】実施形態における各コマンドのフォーマットを示す図である。
【図９】実施形態における撮影可能領域の設定例を示す図である。
【図１０】実施形態におけるカメラ制御制限リストの構造を示す図である。
【図１１】実施形態における変形例のシステム構成を示す図である。
【図１２】図１１のシステムにおけるカメラリストを示す図である。
【図１】
0004298030.tif 000002
【図２】
0004298030.tif 000003
【図３】
0004298030.tif 000004
【図４】
0004298030.tif 000005
【図５】
0004298030.tif 000006
【図６】
0004298030.tif 000007
【図７】
0004298030.tif 000008
【図８】
0004298030.tif 000009
【図９】
0004298030.tif 000010
【図１０】
0004298030.tif 000011
【図１１】
0004298030.tif 000012
【図１２】
0004298030.tif 000013