(57)【特許請求の範囲】
【請求項１】
映像を撮影する撮像手段と、
上記撮像手段の撮像する方角を制御する駆動手段と、
上記撮像手段の撮像する方角を変化させることによって得られた複数の画像を、上記駆動手段の回転中心から見た仮想球面に対し写像し、上記仮想球面に対して写像された上記画像を、上記仮想球面の緯度、経度で正規化することによって平面に写像することによって歪みなく連結する画像連結手段と
からなり、
上記駆動手段は、駆動系に遊びがある機構を有するものであって、上記撮像手段の撮像する方角を変化させる際に、同一方向に駆動されることによってバックラッシュの影響を補正するようにしたことを特徴とするパノラマ画像生成装置。
【請求項２】
上記画像連結手段によって複数枚の画像を連結する場合、１枚の画像を取得するたびに、その連結結果を表示手段に表示せず、全画像を取得した後に、上記表示手段に表示するようにしたことを特徴とする請求項１に記載のパノラマ画像生成装置。
【請求項３】
上記画像連結手段によって複数枚の画像を連結する場合、１枚の画像を取得するたびに逐次画像の連結を行うが、その結果を表示手段に表示せず、全画像が取り込まれ、連結が終了した時に、その結果を表示手段に表示するようにしたことを特徴とする請求項１に記載のパノラマ画像生成装置。
【請求項４】
上記駆動手段の可動範囲の画像を上記撮像手段によって撮像し、パノラマ画像を自動的に生成するようにしたことを特徴とする請求項１に記載のパノラマ画像生成装置。
【請求項５】
上記駆動手段の駆動方向の指示を行うためのパノラマ操作領域に、パノラマ画像を表示するようにしたことを特徴とする請求項４に記載のパノラマ画像生成装置。
【請求項６】
上記パノラマ操作領域の任意の一点を指定することで、指定された任意の一点に対応する位置の被写体を、上記駆動手段の任意の位置座標に移動するようにしたことを特徴とする請求項５に記載のパノラマ画像生成装置。
【請求項７】
上記パノラマ操作領域の任意の領域を指定することで、上記任意の領域より生成される任意の一点に対応する位置の被写体を、上記駆動手段の任意の位置座標に移動するようにしたことを特徴とする請求項５に記載のパノラマ画像生成装置。
【請求項８】
映像を撮影する撮像ステップと、
上記映像を撮像する方角を制御する駆動ステップと、
撮影することによって得られた複数の画像を、上記撮影する位置の回転中心から見た仮想球面に対し写像し、上記仮想球面に対して写像された上記画像を、上記仮想球面の緯度、経度で正規化することによって平面に写像することによって歪みなく連結する画像連結ステップと
からなり、
上記駆動ステップにおいて、駆動系に遊びがある機構を有する駆動手段が使用され、上記撮像手段の撮像する方角を変化させる際に、同一方向に上記駆動系が駆動されることによってバックラッシュの影響を補正されることを特徴とするパノラマ画像生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、高解像度、高品質のパノラマ画像を安価な装置により、且つ容易に得ることができるパノラマ画像生成装置および方法に関する。
【０００２】
【従来の技術】
従来、画像同士を連結する場合、連結したい画像の相関する位置（画素）を見つけだし、単純に重ね合わせたり、１枚の画像に対して、連結する画像を拡大／縮小したり、変形した後に重ね合わせるといった手法がとられていた。
【０００３】
【発明が解決しようとする課題】
しかしながら、画像の拡大／縮小、変形は、画像の解像度の劣化など、画質の低下をもたらす問題があった。また、複数の画像を単に連結する場合には、歪みが発生する問題があった。例えば、図２１Ａに示すような、１０枚の画像同士を連結する場合、撮像装置から得られた１０枚の画像は、レンズの光軸に垂直な平面群を写像している。このため、単に１０枚の画像を連結する手法によると、奥行きの方向にある被写体が連結する画像間に映し出されている場合、図２１Ｂに示すように、連結部分に歪みが生じる問題があった。
【０００４】
従って、この発明の目的は、高画質であって、連結部分に歪みが生じることのないパノラマ画像を生成することができるパノラマ画像生成装置および方法を提供することにある。
【０００５】
【課題を解決するための手段】
請求項１に記載の発明は、映像を撮影する撮像手段と、
撮像手段の撮像する方角を制御する駆動手段と、
撮像手段の撮像する方角を変化させることによって得られた複数の画像を、駆動手段の回転中心から見た仮想球面に対し写像し、仮想球面に対して写像された画像を、仮想球面の緯度、経度で正規化することによって平面に写像することによって歪みなく連結する画像連結手段と
からなり、
駆動手段は、駆動系に遊びがある機構を有するものであって、撮像手段の撮像する方角を変化させる際に、同一方向に駆動されることによってバックラッシュの影響を補正するようにしたことを特徴とするパノラマ画像生成装置である。
【０００６】
請求項８に記載の発明は、映像を撮影する撮像ステップと、
映像を撮像する方角を制御する駆動ステップと、
撮影することによって得られた複数の画像を、撮影する位置の回転中心から見た仮想球面に対し写像し、仮想球面に対して写像された画像を、仮想球面の緯度、経度で正規化することによって平面に写像することによって歪みなく連結する画像連結ステップと
からなり、
駆動ステップにおいて、駆動系に遊びがある機構を有する駆動手段が使用され、撮像手段の撮像する方角を変化させる際に、同一方向に駆動系が駆動されることによってバックラッシュの影響を補正されることを特徴とするパノラマ画像生成方法である。
【０００７】
撮像手段（例えば、ビデオカメラ）では、ズームレンズを通して撮像された被写体の映像を電気信号に変換し、映像信号として出力すると共に、画像連結手段より指令されるズームレンズ位置座標に対してレンズを駆動する。また、現在のズームレンズの位置座標を、画像連結手段に供給する。
【０００８】
駆動手段（例えば、パンチルタ）は、撮像手段を回転方向に駆動して撮像装置の撮像する方向を変更することが可能で、画像連結手段より指令される、位置座標に対して駆動手段を移動すると共に、画像連結手段に対して現在の駆動手段の位置座標を供給する。画像連結手段は、撮像手段より現在のレンズのズーム位置を取得し、その倍率を計算すると共に、駆動手段より現在のパンチルタのパン、チルト方向の位置データを取得し、ホームポジション（例えば駆動手段の可動範囲の中心位置）を緯度、経度の原点とするパンチルタの角度座標を計算する。そして、パノラマ画像作成の指示が、装置内部（例えば、周期的な作成指令）、または装置外部（例えば、操作者の指令）より発生した場合、駆動手段に対して、パノラマ画像を作成するための映像を取得するために位置座標を指示し、目標位置到達後、映像を取得し、得られた映像の仮想球面への写像、水平、垂直方向への画像の圧縮、先に取り込まれた画像への連結処理などを行い、連結した画像を表示手段に出力する。そして、このような手順で画像の連結を順次行っていき、最終的に得られたパノラマ画像を表示手段に出力すると共に、画像の保存を行う。なお、駆動手段への目標位置を設定する際、画像連結手段は、バックラッシュによる影響で駆動手段の絶対位置が狂わぬよう、同一方向から目標位置に進入するように駆動手段に指示を与える。
【０００９】
【発明の実施の形態】
以下、この発明のいくつかの実施形態について図面を参照して説明する。図１−１はこの発明の一実施形態の概略的な構成を示す。モニタ２およびマウス８が接続されているコンピュータ１は、遠隔地に接続されてたパンチルタカメラ３の駆動を制御する。すなわち、コンピュータ１によって、撮像装置のコントローラが構成される。
【００１０】
パンチルタカメラ３は、パンチルタ部とカメラ部が一体的に構成されたものを意味する。この図１では、一例としてパンチルタカメラ３は、４に示すような環境にある実際の景色に設置される。この環境の実際の景色４に設置されたパンチルタカメラ３によって撮影された画面（以下、撮影画面と称する）を５に示す。この撮影画面は、実際に撮影されている画面であって、ズームレンズを望遠側に操作すると画角が小さくなり、ワイド側に操作すると画角が大きくなる。
【００１１】
パンチルタカメラ３によって取り込まれる撮影画面５の映像は、ビデオケーブルなどを経て、コンピュータ１に供給され、コンピュータ１に供給された映像データがデコードされ、モニタ２の操作領域６Ａに表示される。また、モニタ２では、パノラマ画像表示領域６Ｂを有しており、パノラマ生成ボタン６Ｅにより、パノラマ画面生成指示がなされると、パンチルタ、ズームレンズを所定の位置に駆動し、各々の場所で画像を取得するとともに、取得した複数枚の画像を、パンチルタカメラの可動軸を原点とした仮想球面に対して画像を連結し、仮想球面の緯度、経度方向に対して正規化を行った平面画像を表示する。パノラマ操作領域６Ｂは、マウス８に位置に矢印形のカーソル７が描画されている、映像又はパノラマ画像中の任意の一点または任意の領域６Ｃをマウス８で指示することによって、パンチルタカメラ３を操作するようになされている。さらに、パノラマ操作領域６Ｂには、点線で示すように、パンチルタリミッタ表示６Ｄが表示される。パンチルタリッタ表示６Ｄは、パンチルタカメラ３の可動範囲の限界を示す。
【００１２】
図２に示すように、モニタ２の画面上には、操作領域６Ａとパノラマ操作領域６Ｂが表示される。マウス８を操作することによって、カーソルが移動し、パノラマ操作領域６Ｂの任意の一点または、任意の領域６Ｃから生成される任意の一点を指示することができる。指示された任意の一点が操作領域６Ａの中央になるように、パンチルタを駆動させ、撮像画面５が移動する。すなわち、予め表示させたい結果を入力し、その入力に応じて選択された被写体が、操作領域６Ａの中央になるように表示される。
【００１３】
図３は、この発明の実施の一形態を適用した全システムのブロック図である。このシステムは、カメラ部１１、パンチルタ部１２、ＴＶモニタ１３、コンピュータ１、マウス８等のポインティングデバイス１４、モニタ２から構成される。また、上述したパンチルタカメラ３は、カメラ部１１とパンチルタ部１２からなり、一例としてカメラ部１１がパンチルタ部１２の上に設置される。カメラ部１１は、レンズブロック部１５、ズームレンズ１６、ズーム部１７、ズームレンズ１６用のモータ１８、固体撮像素子１９、信号分離／自動利得調整回路（ＳＨ／ＡＧＣ）２０、Ａ／Ｄ変換器２１、信号処理回路２２から構成され、全体としてビデオカメラを示す。
【００１４】
パンチルタ部１２は、モードコントローラ２３、カメラコントローラ２４、パンチルタコントローラ２５、パン用のモータ２６、チルト用のモータ２７、パンチルタ２８から構成される。コンピュータ１は、制御部３１、ビデオキャプチャーボードからなるビデオキャプチャー部２９、記憶部３０から構成される。
【００１５】
被写体から到達する撮像光は、レンズブロック部１５のレンズ群、絞りを通って固体撮像素子１９に結像される。固体撮像素子１９の一例として、ＣＣＤ（Charge Coupled Device ）がある。結像された撮像光は、視野映像を映像信号に変換した後、信号分離／自動利得調整回路２０に供給される。信号分離／自動利得調整回路２０では、映像出力信号がサンプルホールドされるとともに、オートアイリス（ＡＥ）の制御信号によって所定のゲインを持つように利得制御される。それによって、得られる映像出力信号は、Ａ／Ｄ変換器２１を介して、信号処理回路２２へ供給される。信号処理回路２２では、入力された信号が輝度（Ｙ）、色（Ｃ）、ビデオ信号といった各信号に変換され、映像信号としてＴＶモニタ１３を介してコンピュータ１のビデオキャプチャー部２９へ供給される。
【００１６】
また、カメラ部１１のレンズブロック部１５は、ズームレンズ１６を駆動することによって撮像する画角を変化させることが可能とされている。このレンズブロック部１５は、パンチルタ部１２のカメラコントローラ２４の駆動命令により、例えばステッピングモータからなるモータ１８を回転させ、ズームレンズ１６を駆動させる。このカメラコントローラ２４は、カメラ部１１のレンズ制御（例えば、フォーカス、ズーム等）、露出制御（例えば、絞り、ゲイン、電子シャッタースピード等）、白バランス制御、画質制御等を通常行うコントローラであるとともに、モードコントローラ２３とのインタフェースも行っている。ズームレンズ１６の制御に関連するインタフェース制御として、モードコントローラ２３より送られてくるズームレンズ１６の駆動命令に対して、ズームレンズ１６が命令された位置に駆動されるように制御信号をモータドライバに出力するとともに、現在のズームレンズ１６の位置情報が常時モードコントローラ２３に通信される。
【００１７】
また、カメラ部１１は、パン、チルトといった２軸の回転方向の自由度を持つ装置であるパンチルタ部１２の上に設置される。そのパンチルタ部１２は、パンチルタコントローラ２５の駆動命令により、パン用のモータ２６およびチルト用のモータ２７を回転させ、パンチルタ２８の雲台が各々駆動される。これらモータ２６および２７の、一例としてステッピングモータがある。このパンチルタコントローラ２５は、モードコントローラ２３より送られてくるパン、チルト各々の方向の駆動命令に対して、パン、チルト各々の雲台が、命令された位置に駆動されるように制御信号をモータドライバに出力するとともに、現在のパンチルタ２８のパン、チルト各々の雲台の位置情報が常時モードコントローラ２３に通信される。
【００１８】
モードコントローラ２３は、カメラ部１１、パンチルタ部１２の内部状態、およびパンチルタカメラ３の外部からのインタフェース情報に従い、後述するようにシステム全体を制御する。モードコントローラ２３は、例えばコンピュータ１とＲＳ−２３２Ｃにより接続され、コンピュータ１からの駆動命令に対し、パンチルタ２８、レンズブロック部１５のズームレンズ１６を駆動するようにパンチルタコントローラ２５、カメラコントローラ２４に命令を振り分けるとともに、パンチルタコントローラ２５、カメラコントローラ２４より送られてくる現在の位置情報をコンピュータ１に送信する。
【００１９】
この実施の一形態では、パンチルタカメラ３の映出する映像を選択するためにコンピュータ１を使用している。そして、モニタ２の画面上の操作領域６Ａおよびパノラマ操作領域６Ｂに表示されるグラフィック表示と、ポインティングデバイス１４（マウス８）の指示位置、クリック等の操作とから得られる情報を処理することでモードコントローラ２３への通信データを決定している。また、カメラ部１１の映像をモニタ２に表示するため、ビデオキャプチャー部２９が使用される。このビデオキャプチャー部２９は、カメラ部１１より入力されてくる映像信号を任意の品質でモニタ２に表示することが可能であるとともに、キャプチャー信号により任意の画像フォーマット（例えば、ビットマップ形式、ＪＰＥＧ形式の静止画、ＪＰＥＧ形式の動画等）に、任意の品質でキャプチャーし、コンピュータ１の記憶部３０（例えば、ハードディスク）上にストレージすることができる。
【００２０】
ここで、図４を用いて、この実施の一形態におけるパノラマ画像を作成するための概略的な説明を行う。まず、パンチルタカメラ３が設定されている周囲の環境を球面とする。これを仮想球面と称する。この図４では、仮想球面上の隣合う２枚の画像を連結して１枚のパノラマ画像を作成する。まず、パノラマ画像を作成するためには、図４Ａに示すように、中心に位置するパンチルタカメラ３は、仮想球面上の隣合う２枚の画像を撮影する。パンチルタカメラ３は、レンズの光軸に直交する平面を撮像する。図４Ｄは、仮想球面上の隣合う２つの画像をパンチルタカメラ３によって撮像することにより、光軸に直交する平面にこの２つの画像が写像された状態を示す。隣合う２つの画像を単純に連結した場合、つなぎ目の重複や、歪みが生じる部分がある。
【００２１】
このつなぎ目の重複や、歪みをなくすために、図４Ｂに示すように、仮想球面に隣合う２つの画像をそれぞれ写像する。図４Ｅは、光軸に直交する平面である２つの撮像画像を仮想球面に写像した状態を示す。このように、光軸に直交する平面、すなわち撮像画像を仮想球面へ写像し、写像した画像を連結し、重複画像、不要画像の削除を行う画像の連結処理が行われる。そして、仮想球面に写像された像を緯度、経度で正規化することによって、図４Ｃおよび図４Ｄに示すように、パノラマ画像を生成することができる。
【００２２】
次に、この発明によるパノラマ画像を作成する一方法を説明する。この一方法では、図５に示すように、１０枚の画像を連結して１枚のパノラマ画像とする。まず、図５Ａに示すように仮想球面の中心に配置されたパンチルタカメラ３（図示しない）から１０枚の画像が撮影される。このとき、図に示すように画像領域毎に丸で示す位置にパンチルタカメラ３のレンズの光軸を合わせることによって、パンチルタカメラ３は１〜１０の各画像を取得することができる。パンチルタカメラ３によって撮像された画像は、図５Ｂに示すように、レンズの光軸に直交する平面上の画像である。取得された画像は、それぞれ仮想球面上に展開された後、図５Ｃに示すように、緯度、経度で正規化される。仮想球面上に展開された１０枚の画像は、連結処理の際につなぎ目に抜けがないように、お互いの画像が重複するような位置で画像の取得が行われる。そして、重複画像、不要画像の削除がなされた後、１０枚の画像が連結され、図５Ｄに示すように、パノラマ画像が生成される。
【００２３】
次に、この発明によるパノラマ画像を作成する他の方法を図６を参照して説明する。緯度、経度で正規化されるパノラマ画像の画素、すなわち各座標（ｓ，ｔ）には、パンチルタカメラ３で取得した画像のどの画素が割り当てられるかが算出される。図５の方法のように、パンチルタカメラ３で取得した画像の画素をパノラマ画像の画素に対応させた場合、対応する画素のないパノラマ画像の画素が生じることがあり、パノラマ画像の全ての画素に取得した画像の画素を対応させるためである。このように、座標毎に算出された画素によってパノラマ画像が実現される。その処理の手順として、まずパノラマ画像の座標（ｓ，ｔ）（図６Ａ）に対応する仮想球面上の角度座標（α，β）（図６Ｂ）を式（１）を用いて算出する。
【００２４】
（α，β）＝（ａ（ｓ），ｂ（ｔ））      （１）
この式（１）の詳細は後述する図７において説明する。
【００２５】
この座標（ｓ，ｔ）および画像を取得したパンチルタ２８の角度座標（θ，φ）と、撮像装置のワイド端を１倍とした撮像倍率γとを用いて、図６Ｃに示すように、取得した画像上の座標データ（ξ，η）を式（２）を用いて算出する。
【００２６】
（ξ，η）＝（f(α，β，θ，φ，γ），g(α，β，θ，φ，γ))    （２）
この式（２）の詳細は後述する図８において説明する。
【００２７】
以上の式を用いて、パノラマ画像の各画素と、取得した画像とを対応付けることで連結画像、すなわちパノラマ画像を生成している。
【００２８】
ここで、上述したパノラマ画像の座標（ｓ，ｔ）を仮想球面上の角度座標（α，β）に変換する方法を図７を用いて説明する。まず、図７Ａに示す、PragMin は、パンチルタ２８のホームポジションを０（rag)とした時の左端の角度データであり、PragMax は、パンチルタ２８のホームポジションを０（rag)とした時の右端の角度データである。また、Ｎｙ2 は、パノラマ操作領域６Ｂの水平方向の座標であり、−Ｎｙ2 ／２は、パノラマ操作領域６Ｂの左端の座標データであり、Ｎｙ2 ／２は、パノラマ操作領域６Ｂの右端の座標データである。
【００２９】
そして、座標データｓからパン角度αを求めるために、
(PragMax−α）：(PragMax−PragMin)＝ (Ny2 /2−ｓ）：Ny2 
となり、これよりパン角度αは、
α＝PragMax −(PragMax−PragMin)× (Ny2 /2−ｓ）／Ny2 
となる。
【００３０】
また、図７Ｂに示す、TragMin は、パンチルタ２８のホームポジションを０（rag)とした時の上端の角度データであり、TragMax は、パンチルタ２８のホームポジションを０（rag)とした時の下端の角度データである。また、Ｎｚ2 は、パノラマ操作領域６Ｂの垂直方向の座標であり、−Ｎｚ2 ／２は、パノラマ操作領域６Ｂの上端の座標データであり、Ｎｚ2 ／２は、パノラマ操作領域６Ｂの下端の座標データである。
【００３１】
そして、座標データｔからチルト角度βを求めるために、
(TragMax−β）：(TragMax−TragMin)＝ (Nz2 /2−ｔ）：Nz2 
となり、これよりチルト角度βは、
β＝TragMax −(TragMax−TragMin)× (Nz2 /2−ｔ）／Nz2 
となる。
【００３２】
図８を参照して平面球面変換の処理を説明する。図８Ａに示すように、ホームポジション（緯度、経度の原点）を向いたカメラ映像上の点（ξ，η）の空間上の座標は、次のように表せる。
【００３３】
【数１】
0003744147.tif 000002
【００３４】
このとき、
ｋ1 ＝tan(λ／２γ）／（Ｎｙ／２）
ｋ2 ＝tan(μ／２γ）／（Ｎｚ／２）
となり、（Ｎｙ，Ｎｚ）は、ポインティングデバイス１４（マウス８）の駆動範囲（ｙ方向，ｚ方向）であり、（λ，μ）はワイド端での水平、垂直画角であり、γはワイド端を１倍とする現在のズーム相対倍率（倍率情報）である。
【００３５】
また、図８Ｂに示すように、一般的に３次元の回転行列は、次式のように示すことが知られている。
【００３６】
【数２】
0003744147.tif 000003
【００３７】
ホームポジションから角度情報（θ，φ）だけパン、チルトしたカメラ画像上の一点（ξ，η）と、ホームポジションから（α，β）の一点が同じ方向にあることから、次の関係が成り立つ。
【００３８】
Ｒz （θ）Ｒy （φ）ｐ＝ｌＲz （α）Ｒy （β）ｅx 
これをｐについて解くと、
【００３９】
【数３】
0003744147.tif 000004
【００４０】
ここで、
【００４１】
【数４】
0003744147.tif 000005
【００４２】
とおくと、次のようにξ，ηが求められる。
【００４３】
ｌ＝１／ａ
ξ＝−ｌｂ／ｋ1 ＝−ｂ／ｋ1a
η＝ｌｃ／ｋ2 ＝ｃ／ｋ2a
以上の式よりホームポジションから（α，β）の角度にある座標データより、撮像座標に映し出される（ξ，η）を求めることができる。
【００４４】
ξ＝(-sin(α−θ)cosβ)/(k1 (cos( α−θ)cosφ cosβ＋ sinφ sinβ))
η＝(-cos(α−θ)sinφ cosβ＋ cosφ sinβ)/(k2 (cos( α−θ)cosφ cosβ＋ sinφ sinβ))
このようにして、パノラマ画像の座標（ｓ，ｔ）に対応する仮想球面上の角度座標（α，β）からパンチルタカメラ３で取得した画像上の座標データ（ξ，η）を求めることによって、パノラマ画像を生成することができる。
【００４５】
逆に以下の式より撮像座標に映し出される（ξ，η）より、（α，β）の角度にある座標データを求めることもできる。
【００４６】
まず、ｌ＝｜ｐ｜であるから、
ａ＝１／√（１＋ｋ1 2 ξ2 ＋ｋ2 2 η2 ）
ｂ＝−ｋ1 ξ／√（１＋ｋ1 2 ξ2 ＋ｋ2 2 η2 ）
ｃ＝ｋ2 η／√（１＋ｋ1 2 ξ2 ＋ｋ2 2 η2 ）
となる。ただし、√（  ）は、（  ）内の計算結果に対して平方根の処理を行うものである。
【００４７】
また、式（３）より、
ａ＝cos(α−θ)cosφ cosβ＋ sinφ sinβ
ｂ＝sin(α−θ)cosβ
ｃ＝−cos(α−θ)sinφ cosβ＋ cosφ sinβ
となる。
【００４８】
以上の式より
ａ sinφ＋ｃ sinθ＝ sinβ
tan(α−θ) ＝ｂ/(ａ cosφ−ｃ sinθ)
であるから、
β＝sin -1(sinφ/ √(1＋ｋ1 2 ξ2 ＋ｋ2 2 η2 ）＋ sinθｋ2 η/ √(1＋ｋ1 2 ξ2 ＋ｋ2 2 η2 ）
α＝tan -1（−ｋ1 ξ/( cosφ−ｋ2 η sinθ))＋θ
となる。
【００４９】
よって、
（α，β）＝（f(ξ，η，θ，φ，γ），g(ξ，η，θ，φ，γ))    （４）
が求めることができる。
【００５０】
また、誤差を多少許容するのであれば、以下のように（α，β）を求めることができる。
【００５１】
α＝θ＋（λ／γ）×（ξ／Ｎｙ）
β＝φ＋（μ／γ）×（η／Ｎｚ）
つまり、式（４）は、
（α，β）＝（f(ξ，θ，γ），g(η，φ，γ))      （５）
となり、簡略化することができる。
【００５２】
上述した式（４）および式（５）に示されるパンチルタ２８の角度情報（α，β）を操作領域６Ａの位置座標（ξ，η）から算出する処理を図９を用いて説明する。まず、操作領域６Ａ中の任意の一点を直接指定する方法の一例を説明する。図９Ａに示すように操作領域６Ａの中心を（０，０）とした相対座標とし、その操作領域６Ａ上のマウス８の位置座標（ξ，η）が獲得される。
【００５３】
次に、操作領域６Ａ中の任意の領域から生成される任意の一点を指定する他の方法の一例を説明する。まず、図９Ａに示すように、任意の領域の始点（ｍ１，ｎ１）が指定された後、任意の領域の終点（ｍ２，ｎ２）が指定され、それら２点より生成される四角形の中心座標として、
（ξ，η）＝（（ｍ１，ｎ１）＋（ｍ２，ｎ２））／２      （６）
により、任意の一点（ξ，η）が獲得される。
【００５４】
この図９Ａは、操作領域６Ａ上のマウス８（ポインティングデバイス１４）の座標であり、操作領域６Ａ内のマウス８の可動範囲（ｙ方向、ｚ方向）を（Ｎｙ1 ，Ｎｚ1 ）とする。この任意の一点（マウス８）の位置座標（ξ，η）と、パンチルタ２８が向いている角度情報（θ，φ）と、ズームレンズ１６のワイド端を１倍とする現在のズーム相対倍率とする倍率情報（γ）とを用いて、式（４）または式（５）からパンチルタ２８の角度座標（α，β）が求められる。
【００５５】
図９Ｂに示す角度座標（α，β）は、パンチルタ２８のホームポジションを緯度、経度の原点としたとき、ポインティングデバイスで指定された場所を撮像画面の中心に映し出すためのものである。
【００５６】
この図９において、求められる座標は、モニタ２の画面の絶対座標でも良く、操作領域６Ａの中心を（０，０）とした相対座標でも良い。この座標は、パン方向の座標をξ、ｍ１、ｍ２、θ、αで示し、チルト方向の座標をη、ｎ１、ｎ２、φ、βで示す。
【００５７】
このように、マウス８が操作領域６Ａにある場合、受信データで得られた現在のパンチルタ２８の角度情報（θ，φ）、ズームの倍率情報（γ）、マウス８で指定された領域のマウス８の位置情報（ξ，η）を用いて、指定された操作領域６Ａ上の被写体が、操作領域６Ａの中心に来るようなパンチルタ２８の角度情報（α，β）を式（４）または式（５）を用いて算出する。こうして得られた、パンチルタ２８の角度座標（α，β）を図１１に従って、パンチルタ２８の内部位置情報（PNew，TNew）に変換し、パンチルタ２８の絶対位置駆動命令と共に送信バッファに格納する。また、後述するように、同時にデータ送信要求フラグ（FlagSo) をセットし、タイマイベントでデータが送信されるようにする。
【００５８】
パノラマ画像が表示されるパノラマ操作領域６Ｂのマウス８の位置座標（ξ，η）を角度座標（α，β）へ変換する処理を図１０を用いて説明する。パノラマ操作領域６Ｂ中の任意の一点を直接指定する方法は、上述した操作領域６Ａ中の任意の一点を直接指定する方法と同様の方法で、図１０Ａに示すように、マウス８の位置座標（ξ，η）を得ることができる。
【００５９】
次に、パノラマ操作領域６Ｂ中の任意の領域から生成される任意の一点を指定する他の方法の一例を説明する。まず、図１０Ａに示すように、任意の領域の始点（ｍ１，ｎ１）が指定された後、任意の領域の終点（ｍ２，ｎ２）が指定され、式（６）により、任意の一点（ξ，η）が獲得される。
【００６０】
この図１０Ａは、パノラマ操作領域６Ｂ上のマウス８（ポインティングデバイス１４）の座標であり、パノラマ操作領域６Ｂ内のマウス８の可動範囲（ｙ方向、ｚ方向）を（Ｎｙ2 ，Ｎｚ2 ）とする。この可動範囲は、パノラマ操作領域６Ｂ内に点線で示すパンチルタリミッタ表示６Ｄによって制限される。このパンチルタリミッタ表示６Ｄは、パンチルタカメラ３のレンズの光軸の可動範囲を示す。すなわち、パンチルタリミッタ表示６Ｄを超えて指示することはできない。この任意の一点の位置座標（ξ，η）と、パンチルタ２８が向いている角度情報（θ，φ）と、ズームレンズ１６のワイド端を１倍とする現在のズーム相対倍率とする倍率情報（γ）とを用いて、式（７）、式（８）および式（９）からパノラマ操作領域６Ｂの位置座標（ｘ，ｙ）、画角情報（ｓ，ｔ）およびパンチルタ２８の角度座標（α，β）が求められる。
【００６１】
（ｘ，ｙ）＝（ｆ0 （θ），ｇ0 （φ））      （７）
（ｓ，ｔ）＝（ｆ1 （γ），ｇ1 （γ））      （８）
（α，β）＝（ｆ（ξ），ｇ（η））      （９）
図１０Ｂに示す位置座標（ｘ，ｙ）は、パンチルタ２８のホームポジションを緯度、経度の原点としたとき、現在のパンチルタ２８の向きであり、画角情報（ｓ，ｔ）は、現在操作領域６Ａに表示されている画角である。この図１０Ｂは、パノラマ操作領域６Ｂ上のズーム、パンチルタの状態を表示したものである。
【００６２】
図１０Ｃに示す角度座標（α，β）は、パンチルタ２８のホームポジションを緯度、経度の原点としたとき、ポインティングデバイスで指定された場所を撮像画面の中心に映し出すためのものである。（PragMax ，TragMax)〜（PragMin ，TragMin)は、パンチルタの駆動可能範囲、すなわちパンチルタリミッタ表示６Ｄで示す範囲である。この図１０Ｃは、パンチルタ可動範囲上の駆動目標値を表したものである。
【００６３】
この図１０において、求められる座標は、モニタ２の画面の絶対座標でも良く、パノラマ操作領域６Ｂの中心を（０，０）とした相対座標でも良い。この座標は、パン方向の座標をξ、ｍ１、ｍ２、ｘ、ｓ、αで示し、チルト方向の座標をη、ｎ１、ｎ２、ｙ、ｔ、βで示す。
【００６４】
このように、マウス８がパノラマ操作領域６Ｂにある場合、マウス８で指定された領域のマウス８の位置情報（ξ，η）を用いて、指定された操作領域６Ａ上の被写体が、操作領域６Ａの中心に来るようなパンチルタ２８の角度情報（α，β）を式（９）を用いて算出する。こうして得られた、パンチルタ２８の角度座標（α，β）を図１１に従って、パンチルタ２８の内部位置情報（PNew，TNew）に変換し、パンチルタ２８の絶対位置駆動命令と共に送信バッファに格納する。また、後述するように、同時にデータ送信要求フラグ（FlagSo）をセットし、タイマイベントでデータが送信されるようにする。
【００６５】
ここで、上述したパンチルタ２８内部の位置情報（ｐ，ｔ）を角度情報（θ，φ）に変換する方法並びに角度座標（α，β）をパンチルタ２８内部の位置情報（PNew,TNew ）に変換する方法を図１１を用いて説明する。まず、図１１Ａに示す、PragMin は、パンチルタ２８のホームポジションを０（rag)とした時の左端の角度データであり、PragMax は、パンチルタ２８のホームポジションを０（rag)とした時の右端の角度データである。また、PdatMin は、パンチルタコントローラ２５の左端の内部カウントデータであり、PdatMax は、パンチルタコントローラ２５の右端の内部カウントデータである。
【００６６】
そして、パンデータｐからパン角度θを求めるために、
(PragMax−θ）：(PragMax−PragMin)＝(PdatMax−p)：(PdatMax−PdatMin)
となり、これよりパン角度θは、
θ＝PragMax −(PragMax−PragMin)×(PdatMax−p)／(PdatMax−PdatMin)
となる。
【００６７】
またこれより、パンデータｐは、
ｐ＝PdatMax −(PragMax−θ）×(PdatMax−PdatMin)／(PragMax−PragMin)
となる。
【００６８】
また、パン角度αからパンデータPNewを求めるために、
(PragMax−α）：(PragMax−PragMin)＝(PdatMax−p-new)：(PdatMax−PdatMin)
となり、これよりパンデータPNewは、
PNew＝PragMax −(PragMax−α）×(PdatMax−PdatMin)／(PragMax−PragMin)
となる。
【００６９】
また、図１１Ｂに示す、TragMin は、パンチルタ２８のホームポジションを０（rag)とした時の上端の角度データであり、TragMax は、パンチルタ２８のホームポジションを０（rag)とした時の下端の角度データである。また、TdatMin は、パンチルタコントローラ２５の上端の内部カウントデータであり、TdatMax は、パンチルタコントローラ２５の下端の内部カウントデータである。
【００７０】
そして、チルトデータｔからチルト角度φを求めるために、
(TragMax−φ）：(TragMax−TragMin)＝(TdatMax−t)：(TdatMax−TdatMin)
となり、これよりチルト角度φは、
φ＝TragMax −(TragMax−TragMin)×(TdatMax−t)／(TdatMax−TdatMin)
となる。
【００７１】
またこれより、チルトデータｔは、
ｔ＝TdatMax −(TragMax−φ）×(TdatMax−TdatMin)／(TragMax−TragMin)
となる。
【００７２】
また、チルト角度βからチルトデータTNewを求めるために、
(TragMax−β）：(TragMax−TragMin)＝(TdatMax−TNew) ：(TdatMax−TdatMin)
となり、これよりチルトデータTNewは、
TNew＝TragMax −(TragMax−β）×(TdatMax−TdatMin)／(TragMax−TragMin)
となる。
【００７３】
次に、上述したパノラマ操作領域６Ｂ内の位置座標（ξ，η）をパンチルタ２８の角度座標（α，β）へ変換する方法並びにパンチルタ２８の角度情報（θ，φ）をパノラマ操作領域６Ｂ内の位置座標（ｘ，ｙ）へ変換する方法を図１２を用いて説明する。まず、図１２Ａに示す、PragMin は、パンチルタ２８のホームポジションを０（rag)とした時の左端の角度データであり、PragMax は、パンチルタ２８のホームポジションを０（rag)とした時の右端の角度データである。また、Ｎｙ2 は、パノラマ操作領域６Ｂの水平方向の座標であり、−Ｎｙ2 ／２は、パノラマ操作領域６Ｂの左端の座標データであり、Ｎｙ2 ／２は、パノラマ操作領域６Ｂの右端の座標データである。
【００７４】
そして、座標データξからパン角度αを求めるために、
(PragMax−α）：(PragMax−PragMin)＝ (Ny2 /2−ξ）：Ny2 
となり、これよりパン角度αは、
α＝PragMax −(PragMax−PragMin)× (Ny2 /2−ξ）／Ny2 
となる。
【００７５】
また、パン角度θから座標データｘを求めるために、
(PragMax−θ）：(PragMax−PragMin)＝ (Ny2 /2−ｘ）：Ny2 
となり、これより座標データｘは、
ｘ＝Ny2 /2−(PragMax−θ）×Ny2 ／(PragMax−PragMin)
となる。
【００７６】
また、図１２Ｂに示す、TragMin は、パンチルタ２８のホームポジションを０（rag)とした時の上端の角度データであり、TragMax は、パンチルタ２８のホームポジションを０（rag)とした時の下端の角度データである。また、Ｎｚ2 は、パノラマ操作領域６Ｂの垂直方向の座標であり、−Ｎｚ2 ／２は、パノラマ操作領域６Ｂの上端の座標データであり、Ｎｚ2 ／２は、パノラマ操作領域６Ｂの下端の座標データである。
【００７７】
そして、座標データηからチルト角度βを求めるために、
(TragMax−β）：(TragMax−TragMin)＝ (Nz2 /2−η）：Nz2 
となり、これよりチルト角度βは、
β＝TragMax −(TragMax−TragMin)× (Nz2 /2−η）／Nz2 
となる。
【００７８】
また、チルト角度φから座標データｙを求めるために、
(TragMax−φ）：(TragMax−TragMin)＝ (Nz2 /2−ｙ）：Nz2 
となり、これより座標データｙは、
ｙ＝Nz2 /2−(TragMax−θ）×Nz2 ／(TragMax−TragMin)
となる。
【００７９】
パンチルタ２８が切り出している画角情報（ψ，ω）からパノラマ操作領域６Ｂ内の画枠６Ｃの画角情報（ｓ，ｔ）へ変換する方法を図１３を用いて説明する。まず、図１３Ａには、現在のパンチルタ２８の画角情報（ψ，ω）を示す。この画角情報（ψ，ω）は、
（ψ，ω）＝１／γ×（ψ０，ω０）
によって求められる。このとき、（ψ０，ω０）はワイド端での水平画角と垂直画角を示し、γはワイド端を１倍としたときのレンズ倍率を示す。
【００８０】
図１３Ｂに示すように、PragMin は、パンチルタ２８のホームポジションを０（rag)とした時の左端の角度データであり、PragMax は、パンチルタ２８のホームポジションを０（rag)とした時の右端の角度データである。また、Ｎｙ2 は、パノラマ操作領域６Ｂの水平方向の座標であり、−Ｎｙ2 ／２は、パノラマ操作領域６Ｂの左端の座標データであり、Ｎｙ2 ／２は、パノラマ操作領域６Ｂの右端の座標データである。
【００８１】
そして、水平画角ψから水平画角ｓを求めるために、
ψ：(PragMax−PragMin)＝ｓ：Ny2 
となり、これより水平画角ｓは、
ｓ＝ψ×Ny2 ／(PragMax−PragMin)
となる。
【００８２】
また、図１３Ｃに示す、TragMin は、パンチルタ２８のホームポジションを０（rag)とした時の下端の角度データであり、TragMax は、パンチルタ２８のホームポジションを０（rag)とした時の上端の角度データである。また、Ｎｚ2 は、パノラマ操作領域６Ｂの垂直方向の座標であり、−Ｎｚ2 ／２は、パノラマ操作領域６Ｂの下端の座標データであり、Ｎｚ2 ／２は、パノラマ操作領域６Ｂの上端の座標データである。
【００８３】
そして、垂直画角ωから垂直画角ｔを求めるために、
ω：(TragMax−TragMin)＝ｔ：Nz2 
となり、これより垂直画角ｔは、
ｔ＝ω×Nz2 ／(TragMax−TragMin)
となる。
【００８４】
これらより、図１３Ｄに示す画角情報（ｓ，ｔ）がパノラマ操作領域６Ｂ内に画枠６Ｃとして、表示される。
【００８５】
次に、上述したズームレンズ１６の位置情報（ｚ）を倍率情報（γ）に変換する方法を図１４を用いて説明する。この図１４は、縦軸にレンズ倍率情報を表し、横軸にズームレンズの内部情報を表す。取得したズームレンズ１６の位置情報（ｚ）は、図１４に示す変換グラフに照らし合わし、コンピュータ１上で倍率情報（γ）に変換される。一例として、ＲＯＭテーブルまたは数式によって、位置情報（ｚ）が倍率情報（γ）に変換される。
【００８６】
次に、コンピュータ１内の制御アルゴリズムの一例を図１５を用いて説明する。まず、ステップＳ１では、プログラムがスタートすると、図２に示すように、モニタ２上に操作領域６Ａ、パノラマ操作領域６Ｂ、カーソル７、さらにパンチルタリミッタ表示６Ｄに示すパンチルタリミッタが設定される初期化が行われる。パンチルタリミッタの範囲は、固定値でも良いし、その範囲を変更したいときに自由に変更することができるようにしても良い。そして、ステップＳ２では、コンピュータ１とモードコントローラ２３とが所定の周期で通信を行うために、タイマが設定される。これらの初期設定動作が完了すると、ステップＳ３の各種発生するイベント待ち状態に制御が移り、発生したイベントに対応してステップＳ３から制御が移る。発生するイベントは、先に設定したタイマイベント（ステップＳ４）、パノラマ作成要求イベント（ステップＳ５）がある。
【００８７】
パノラマ作成要求イベントのアルゴリズムの詳細について、図１６のフローチャートを用いて説明する。パノラマ作成要求イベントが発生すると、ステップＳ８では、パノラマ作成要求（FlagPa）がセット（True）される。
【００８８】
タイマイベントのアルゴリズムの詳細について、図１７のフローチャートを用いて説明する。この一例のタイマイベントは、周期的にコンピュータ１とモードコントローラ２３との通信を行うために発生するイベントである。このタイマイベントは、一例として５０ｍｓｅｃ間隔で発生する。タイマイベントが発生すると、ステップＳ１１では、通信ポートの設定が完了しているか否かが判断される。通信ポートの設定が完了している（済）と判断されると、ステップＳ１２へ制御が移り、通信ポートの設定が完了していない（未）と判断されると、ステップＳ１８へ制御が移る。ここでは、通信ポートの設定が完了していない初回のみ、ステップＳ１８に制御が移り、通信ポートの開設処理が行われる。具体的には、ステップＳ１８において、コンピュータ１上のＲＳ−２３２Ｃポートの開設が行われる。
【００８９】
それ以降のタイマイベントでは、受信データの確認、解析処理、パンチルタ２８の駆動命令など送信バッファにたまっているデータの送信処理、またはパンチルタ２８、ズームレンズ１６の状態確認要求のための通信データの送信処理が行われる。このアルゴリズムでは、ステップＳ１１からステップＳ１２へ制御が移り、ステップＳ１２では、受信バッファのデータの有無が確認され、受信データが存在する場合、ステップＳ１３に制御が移り、受信データが存在しない場合、ステップＳ１４に制御が移る。ステップＳ１３では、受信バッファに存在する受信データが解析され、モードコントローラ２３に要求したパンチルタ２８の位置情報（ｐ，ｔ）や、ズームレンズ１６の位置情報（ｚ）が取得される。これらのデータが上述した図１１、図１４の方式に従い、パンチルタ２８の角度情報（θ，φ）、ズームレンズ１６の倍率情報（γ）に変換される。
【００９０】
次に、ステップＳ１４では、データの送信要求の有無が確認される。データの送信要求が存在する（FlagSo＝＝True）場合、ステップＳ１９に制御が移り、ステップＳ１９では、送信バッファに格納されているデータの送信処理がなされた後、送信要求フラグ（FlagSo）がリセット（False)される。この送信バッファにたまったデータの一例として、マウス８で設定されたパンチルタ２８の駆動命令のデータなどがある。そして、送信要求がない（FlagSo＝＝False)場合、ステップＳ１５へ制御が移る。ステップＳ１５では、送信要求の内部カウンタ（ReqCnt）が０が否かが判断され、送信要求の内部カウンタが０の場合（ReqCnt＝０）、ステップＳ１６へ制御が移り、送信要求の内部カウンタが０でない場合（ReqCnt≠０）、ステップＳ２０へ制御が移る。
【００９１】
ステップＳ１６では、パンチルタ２８およびズームレンズ１６の位置要求命令がモードコントローラ２３に送信される。そして、ステップＳ１７では、送信要求の内部カウンタ（ReqCnt）がインクリメントされる。
【００９２】
ステップＳ２０では、パノラマ作成要求が存在するか否かが判断され、パノラマ作成要求が存在する場合（FlagPa＝＝True）、ステップＳ２１へ制御が移り、パノラマ作成要求が存在しない場合（FlagPa＝＝False)、ステップＳ２２へ制御が移る。ステップＳ２１では、後述するパノラマ作成処理が実行される。そして、ステップＳ２２では、送信要求の内部カウンタ（ReqCnt）が０にされる。
【００９３】
次に、上述したパノラマ作成処理のアルゴリズムについて図１８のフローチャートを用いて説明する。パノラマ作成は、パノラマ作成要求イベントによって設定（FlagPa＝True）される。このパノラマ作成要求イベントが予め発生すると、上述したようにタイマイベント時、パノラマ作成処理（ステップＳ２１）が実行される。このフローチャートでは、パノラマ作成処理の手順をパノラマカウンタ（PanoCnt)に従って行っている。
【００９４】
まず、この処理が開始されると、撮像装置の画角を最広角に設定する処理が行われる。すなわち、ステップＳ３１において、パノラマカウンタ（PanoCnt)が１であるか否かが判断され、パノラマカウンタが１である（PanoCnt ＝＝１）と判断された場合、ステップＳ４３へ制御が移り、パノラマカウンタが１でない（PanoCnt ≠１）と判断された場合、ステップＳ３２へ制御が移る。ステップＳ４３では、ズームをワイド端に移動する駆動命令を送信すると共に、パノラマカウンタをインクリメントする。これは、より広範囲のパノラマ画像を、少ない画像取得回数で行うためである。
【００９５】
ステップＳ３２では、パノラマカウンタが２であるか否かが判断され、パノラマカウンタが２である（PanoCnt ＝＝２）と判断された場合、ステップＳ４４へ制御が移り、パノラマカウンタが２でない（PanoCnt ≠２）と判断された場合、ステップＳ３３へ制御が移る。ステップＳ４４では、パンチルタ２８を最初に撮影するポジション（ＰＯＳ（PanoCnt −２））に移動する駆動命令を送信すると共に、パノラマカウンタをインクリメントする。すなわち、ＰＯＳ（PanoCnt −２）で示すパンチルタ２８の画角を取得する最初の位置（図５の１で示す位置）に移動する処理を行う。
【００９６】
また、パノラマカウンタ（PanoCnt)が３以降の場合、設定したズーム、パンチルタ位置に撮像装置が移動したのを確認し、指定位置に到達した場合、画像のキャプチャを行う。ステップＳ３３では、ズームレンズ１６の位置情報（ｚ）の確認が行われ、ズーム位置があっている場合、ステップＳ３４へ制御が移り、ズーム位置があっていない場合、このフローチャートは終了する。さらに、ステップＳ３４では、パンチルタ２８の位置情報（ｐ，ｔ）の確認が行われ、パンチルタ位置があっている（＝＝ＰＯＳ（PanoCnt −３））場合、ステップＳ３５へ制御が移り、パンチルタ位置があっていない（≠ＰＯＳ（PanoCnt −３））場合、このフローチャートは終了する。そして、ステップＳ３５では、現在のパンチルタ位置の画像が取得される。取得された画像は、ビットマップの画像ファイルとしてメモリに記憶される。
【００９７】
ステップＳ３６では、パンチルタ２８を次に撮影するポジション（ＰＯＳ（PanoCnt −２））に移動する駆動命令が送信される。ステップＳ３７では、上述したように、取得した画像を仮想球面にデータ変換し、重複画像、不要画像の削除を行う画像の連結処理が行われる。また、コンピュータ１の処理能力がない場合、このステップＳ３７では、水平方向および垂直方向に圧縮も行う。ステップＳ３８では、連結された画像が緯度、経度で正規化され、表示される。そして、ステップＳ３９では、パノラマカウンタ（PanoCnt)がインクリメントされる。
【００９８】
すなわち、次の画像取得位置にパンチルタ２８を移動する処理を行い、続いて、先にキャプチャした画像の仮想球面への写像処理、水平、垂直方向への圧縮処理、重複画像、不要画像の削除処理等を行い、パノラマ画像作成の進行状況を表示する。以上の動作をパノラマ画像が完成するまで行う。
【００９９】
ステップＳ４０では、パノラマ画像が完全に完成したか否かが判断され、完成したと判断された場合、ステップＳ４１へ制御が移り、未完成と判断された場合、このフローチャートは終了し、再度上述の制御をパノラマ画像が完成するまで繰り返す。ステップＳ４１では、パノラマ画像が完成したので、パノラマ作成要求（FlagPa）がリセット（False)される。そして、ステップＳ４２では、完成されたパノラマ画像が保存される。
【０１００】
このフローチャートでは、図５に示す１の画像はパノラマカウンタ（PanoCnt)が３のときに獲得でき、図５に示す２の画像はパノラマカウンタが４のときに獲得でき、そしてパノラマカウンタが１２のときに獲得される図５に示す１０の画像が獲得されると、パノラマ画像を生成するための全ての画像が獲得され、パノラマ画像が完成する。
【０１０１】
なお、駆動装置は、ここで指令される目標位置に対して、常に同一方向から進入するように動作し、画像連結の際発生し得る駆動系の機構の遊び（例えば、ギアのバックラッシュ）による、連結画像のずれを補正している。
【０１０２】
上述したこの発明の一実施形態によって、図５Ｂに示すような１０枚の映像から図５Ｄに示すようなパノラマ画像を得ることができる。
【０１０３】
上述した一実施形態では、すべての制御を１台のコンピュータを用いて行うようになされている。この発明の他の実施形態は、図１９に示すように、サーバ用コンピュータ、クライアント用コンピュータ間で役割を分担して、ネットワーク回線のように通信容量に制限のある形態でもパンチルタカメラを制御するようにしたものである。モニタ２およびマウス８が接続されているコンピュータ１は、伝送路およびサーバ９を介して遠隔地に設置されたパンチルタカメラ３の駆動を制御する。すなわち、コンピュータ１によって、撮像装置コントローラが構成される。伝送路としては、通信回線（無線、有線）、ネットワークなどの既存の種々のものが使用可能である。サーバ９に対してコンピュータ１は、クライアントの関係にあり、サーバ９に対して複数のコンピュータ１の接続が可能である。
【０１０４】
パンチルタカメラ３およびサーバ９は、４に示すような環境にある実際の景色に設置される。この環境の実際の景色４に設置されたパンチルタカメラ３によって撮影された画面（以下、撮影画面と称する）を５に示す。この撮影画面５は、実際に撮影している画面であって、ズームレンズを望遠側に操作すると画角が小さくなり、ワイド側に操作すると画角が大きくなる。
【０１０５】
パンチルタカメラ３によって取り込まれる撮影画面５の映像は、サーバ９を経由することによって映像データに変換される。この映像データが伝送路を介してコンピュータ１に供給される。コンピュータ１に供給された映像データがモニタ２に表示される。モニタ２では、供給された撮影画面５がモニタ２の画面上の操作領域６Ａに表示される。
【０１０６】
また、モニタ２では、パノラマ操作領域６Ｂおよびパノラマ生成ボタン６Ｅを有している。パノラマ生成ボタン６Ｅによりパノラマ画像の作成指示がサーバ９に発信され、サーバ９では、パンチルタ、ズームを所定の位置に駆動し、各々の場所で画像を取得するとともに、取得した複数枚の画像を、パンチルタの可動軸を原点とした仮想球面に対して画像を連結し、仮想球面の緯度、経度方向に対して正規化を行った平面画像を作成する。作成されたパノラマ画像がサーバ９から伝送路を介してコンピュータ１によりモニタ２のパノラマ操作領域６Ｂに表示される。
【０１０７】
また、上述した一実施形態と同様に、パノラマ操作領域６Ｂに、マウス８の位置に矢印形のカーソル７が描画される。映像またはパノラマ画像中の任意の一点または領域６Ｃをマウス８により指示することによって、パンチルタカメラ３が操作される。さらに、パノラマ操作領域６Ｂには、点線で示すように、パンチルタリミッタ表示６Ｄが表示される。パンチルタリッタ表示６Ｄは、パンチルタカメラ３の可動範囲の限界を示す。
【０１０８】
そして、マウス８を操作することによって、カーソルは移動し、パノラマ操作領域６Ｂの任意の一点または、任意の領域６Ｃから生成される任意の一点を指示することができる。指示された任意の一点が操作領域６Ａの中央になるように、サーバ９および伝送路を介してパンチルタを駆動させ、撮像画面５が移動する。すなわち、選択された被写体がサーバ９および伝送路を介して、パノラマ操作領域６Ｂの中央になるように表示される。
【０１０９】
図２０は、この発明の実施の他の実施形態の全システムのブロック図である。但し、カメラ部１１およびパンチルタ部１２の構成、機能は、上述した一実施形態（図３）と同様であるので、図２０では、その詳細な構成が省略されている。サーバ９は、制御部１３１、ビデオキャプチャーボードからなるビデオキャプチャー部１２９、記憶部３０から構成される。コンピュータ１は、伝送路１３２とネットワークで接続されており、図３に示す一実施形態と同様に制御部３１等から構成される。なお、各コンピュータ内の詳細なアルゴリズムについても、前記一実施形態と内容が重複するため、その説明を省略する。
【０１１０】
被写体から到達する撮像光は、一実施形態と同様、カメラ部１１で信号処理され、輝度（Ｙ）、色（Ｃ）、ビデオ信号といった各信号に変換され、映像信号としてＴＶモニタ１３およびサーバ９のビデオキャプチャー部１２９へ供給される。また、一実施形態のとおり、パンチルタカメラは、モードコントローラ２３、カメラコントローラ２４、パンチルタコントローラ２５を有し、カメラ部１１、パンチルタ部２８を制御している。モードコントローラ２３は、カメラ部１１、パンチルタ部１２の内部状態、および、外部からの命令に従い、システム全体を一実施形態と同様に制御する。
【０１１１】
モードコントローラ２３は、通信路（具体的には、ＲＳ２３２Ｃを用いている）によりサーバ９と接続され、サーバ９から直接送られてくる命令、または、コンピュータ１から、サーバ９経由で送られてくる命令に対し、パンチルタ２８、レンズブロック部１５のズームレンズ１６を駆動するように、パンチルタコントローラ２５、カメラコントローラ２４に、受け取った命令を振り分ける。また、モードコントローラ２３は、パンチルタカメラの内部状態をサーバ９を経由して外部に送出するため、パンチルタコントローラ２５、カメラコントローラ２４から情報を常に取得している。
【０１１２】
サーバ９は、パンチルタ部１２のモードコントローラ２３より、パンチルタカメラの内部状態（たとえば、パンチルタ、ズームレンズの現在の位置情報等）を周期的に取得するようになっている。また、カメラ部１１の映像を伝送路１３２に送出するために、ビデオキャプチャー部１２９を使用しており、カメラ部１１より入力されてくる映像情報を任意の品質で、伝送路１３２に送出しやすいデジタル画像データ（具体的には、ＪＰＥＧ形式の静止画またはビットマップ形式の静止画）に変換している。また、同形式のデジタル画像を、記憶部１３０（例えば、ハードディスク）上にストレージすることができる。
【０１１３】
サーバ９に対し、コンピュータ１より接続要求がなされると、サーバ９は、コンピュータ１に接続されているモニタ２に表示するための、ＧＵＩ（グラフィカルインターフェース）パネル情報を送出する。パネル情報としては、パネルの配置、パネル上でマウス操作されたときの、コンピュータ１での動作プログラム等があり、具体的には、ＨＴＭＬ、ＪＡＶＡのプログラムを使用している。また、周期的にパンチルタカメラが撮像した画像データ、パンチルタカメラの状態などを伝送路１３２を介してコンピュータ１に送出する。
【０１１４】
他の実施形態では、伝送路１３２にインターネットを使用し、伝送路１３２上を、ＨＴＴＰプロトルコを用いてやり取りがなされている。また、コンピュータ１では、インターネット用のフラウザを用いて、サーバ９より送られてくるＧＵＩパネル情報、画像情報、パンチルタカメラ状態などを、モニタ２に表示する。モニタ２の画面上に表示されるＧＵＩパネルには、操作領域６Ａおよびパノラマ操作領域６Ｂ、ズームの操作ボタン、ポインティングデバイス１４（マウス８）のカーソル等が表示される。そして、操作領域６Ａには、サーバより送られてくる画像データがデコード表示され、画像データの更新と共に映像が書き換えられる。また、サーバ９より送られてくるパノラマ画像データがデコードされ、パノラマ操作領域６Ｂに、パノラマ画像が表示され、さらに、パンチルタカメラの動作範囲及び、現在のパンチルタの位置、ズームの画角などが一実施形態と同様な手法で表示される。そして、コンピュータ１は、サーバ９より送られてきた、ＧＵＩパネルが操作されたときの動作プログラムが実行される。
【０１１５】
他の実施形態の上記動作プログラムは、パンチルタカメラへの駆動命令及び、サーバ上での動作命令を、マウスのクリック動作によって発生させる。操作領域６Ａ上で、マウスがクリックされた場合、一実施形態と同様、画角情報、現在のパンチルタ位置情報、クリックされたときのマウスの位置情報を元に、操作領域６Ａに表示される映像上でマウスクリックされた位置が、操作領域６Ａ（映像表示）の中心に来るようにパンチルタが駆動されるように、命令（絶対位置駆動命令又は相対位置駆動命令）をサーバ９に発信する。
【０１１６】
サーバ９がこの命令を取得すると、命令を中継して、パンチルタカメラに発信し、パンチルタが所望の位置に駆動される。このように、映像上でパンチルタの駆動目標を設定するため、ネットワークでの駆動命令、映像のディレー等を意識せずにパンチルタを容易に操作することが可能になる。
【０１１７】
コンピュータ１では、送られてきたパノラマ画像が、モニタ２のパノラマ操作領域６Ｂに重ね合わすように表示され、現在パンチルタカメラが設定されている環境を一目で表示することが可能になる。また、先の説明でも述べたように、パノラマ操作領域６Ｂには、パンチルタの位置情報、ズームレンズ画角、パンチルタの駆動範囲が表示されてるため、パノラマ画像上で、現在のパンチルタの状態を容易に確認することが可能になる。つまり、コンピュータ１または、サーバ９がパンチルタやズームを駆動する命令を発生すれば、それに応じたパンチルタカメラの状況が、パノラマ画像上で確認できることになる。
【０１１８】
また、パノラマ操作領域６Ｂ上で、マウスがクリックされた場合、一実施形態と同様、クリックされたときのマウスの位置情報を元に、パノラマ画像上のマウスクリックされた位置が、操作領域６Ａ（映像）の中心に来るように駆動されるように、命令（絶対位置駆動命令）をサーバ９に発信する。サーバ９がこの命令を取得すると、命令を中継して、パンチルタカメラに発信し、パンチルタが所望の位置に駆動される。このように、パノラマ画像上でパンチルタの駆動目標を設定するため、ネットワークでの駆動命令、映像のディレー等を意識せずにパンチルタを容易に操作することが可能になる。
【０１１９】
この発明の実施形態では、パノラマ画像は、パンチルタカメラ３からコンピュータ１へ画像が供給される度にコンピュータ１内で連結し、連結されるたびに画像をパノラマ操作領域６Ｂに表示しているが、全ての画像が連結された後にパノラマ操作領域６Ｂに表示するようにしても良い。
【０１２０】
この発明の実施形態では、コンピュータ１に接続されているモニタ２の画面上に操作領域６Ａおよびパノラマ操作領域６Ｂを表示しているが、モニタ２とは異なる別のディスプレイに操作領域６Ａおよび／またはパノラマ操作領域６Ｂを表示しても良い。
【０１２１】
この発明の実施形態では、パンチルタカメラ３によって撮影可能な範囲をパンチルタカメラ３の可動できる最大範囲としても良いし、リミッタによって撮影可能な範囲を制限しても良い。また、そのリミッタにより撮影範囲を制限する機能は、パンチルタカメラ３に持っても良いし、コンピュータ１に持っても良い。
【０１２２】
この発明の実施形態では、任意の領域から生成される任意の一点をその領域の中心としたが、それに限らず任意の領域の外心、内心、重心または垂心を任意の一点としても良い。
【０１２３】
この発明の他の実施形態では、パノラマ画像の作成をコンピュータ１で行うようになされているが、サーバ９でパノラマ画像を作成し、回線容量の少ないネットワーク回線にそのパノラマ画像のデータをコンピュータ１に転送し、モニタ２のパノラマ操作領域６Ｂに表示するようにしても良い。
【０１２４】
この発明の他の実施形態では、説明を容易とするために、遠隔地に設置されたサーバ９とパンチルタカメラ３に対して１つのコンピュータ１としたが、サーバ９とパンチルタカメラ３は、世界中に配置され、例えばインターネットを介して複数のコンピュータから１つのパンチルタカメラ３を制御するようにしても良い。
【０１２５】
【発明の効果】
この発明に依れば、撮像した映像を仮想球面上に写像し、連結する手法をとっているため、連結部に歪みのない画像を提供することが可能になる。これによって、低コストのデバイス、画像フォーマットを用いた機器の画像を連結しても、高解像度のデバイス、画像フォーマットを用いてしか得られないようなハイクオリティー（高画質、高品質）な画像を得ることができる。また、一般に高価である超広角系のレンズまたは魚眼レンズを用いて可能になるパノラマ画像を、安易に作成できるため、撮像装置の撮像方向が変更可能な装置（例えば、パンチルタ内蔵カメラ）に用いたアプリケーションなどで効果が期待できる。
【０１２６】
また、この発明に依れば、例えば、パノラマ画像上に、ズーム画角、パンチルタ位置などを表示することで、撮像装置の状況を容易に把握することが可能になると共に、パノラマ画像上で、駆動したい場所、映したい被写体を指定することができるので、容易に目的の映像を得るが可能となる。特に、こういったアプリケーションにパノラマ画像を用いることで、回線を利用した遠隔地にあるビデオカメラでの監視、観察、案内、紹介などの制御用途で、より良い操作性と、視認性を実現することができる。さらに、この発明では、指令される目標位置に対して、駆動装置が常に同一方向から進入するように動作し、画像連結の際発生し得る駆動系の機構の遊び（例えば、ギアのバックラッシュ）による、連結画像のずれの発生を防止することができる。
【図面の簡単な説明】
【図１】この発明の一実施形態のシステムの概略的構成を示す略線図である。
【図２】この発明の一実施形態における画面を説明するための略線図である。
【図３】この発明の一実施形態のシステム構成を示すブロック図である。
【図４】この発明の一実施形態におけるパノラマ画像の生成を説明するための略線図である。
【図５】この発明の一実施形態におけるパノラマ画像の生成を説明するための概略図である。
【図６】この発明の一実施形態におけるパノラマ画像の生成を説明するための概略図である。
【図７】この発明の一実施形態におけるパノラマ操作領域上の位置座標からパンチルタカメラの角度情報を生成する説明にもちいた略線図である。
【図８】この発明の一実施形態における平面球面変換を説明するための略線図である。
【図９】この発明の一実施形態における操作領域での座標変換を説明するための略線図である。
【図１０】この発明の一実施形態におけるパノラマ操作領域での座標変換を説明するための略線図である。
【図１１】この発明の一実施形態におけるパンチルタカメラの内部の位置情報と角度情報とを説明するための略線図である。
【図１２】この発明の一実施形態におけるパンチルタカメラの角度座標とパノラマ操作領域の位置座標とを説明するための略線図である。
【図１３】この発明の一実施形態におけるパンチルタカメラの画角とパノラマ操作領域内の枠とを説明するための略線図である。
【図１４】この発明の一実施形態におけるズームデータと倍率データの変換を説明するための略線図である。
【図１５】この発明の一実施形態の全体の処理の一例を示すフローチャートである。
【図１６】この発明の一実施形態におけるパノラマ作成要求イベントの処理の一例を示すフローチャートである。
【図１７】この発明の一実施形態におけるタイマイベントの処理の一例を示すフローチャートである。
【図１８】この発明の一実施形態におけるパノラマ作成処理の一例を示すフローチャートである。
【図１９】この発明の他の実施形態のシステムの概略的構成を示す略線図である。
【図２０】この発明の他の実施形態のシステム構成を示すブロック図である。
【図２１】パノラマ画像の作成を説明するための略線図である。
【符号の説明】
１・・・コンピュータ、２・・・モニタ、６Ａ・・・操作領域、６Ｂ・・・パノラマ操作領域、７・・・カーソル、９・・・サーバ、１１・・・カメラ部、１２・・・パンチルタ部、１３・・・ＴＶモニタ、１４・・・ポインティングデバイス、１５・・・レンズブロック部、１６・・・ズームレンズ、１７・・・ズーム部、１８、２６、２７・・・モータ、１９・・・固体撮像素子、２０・・・信号分離／自動利得調整回路、２１・・・Ａ／Ｄ変換器、２２・・・信号処理回路、２３・・・モードコントローラ、２４・・・カメラコントローラ、２５・・・パンチルタコントローラ、２８・・・パンチルタ、２９・・・ビデオキャプチャー、３０・・・記憶部、３１・・・制御部
【図１】
0003744147.tif 000006
【図２】
0003744147.tif 000007
【図３】
0003744147.tif 000008
【図４】
0003744147.tif 000009
【図５】
0003744147.tif 000010
【図６】
0003744147.tif 000011
【図７】
0003744147.tif 000012
【図８】
0003744147.tif 000013
【図９】
0003744147.tif 000014
【図１０】
0003744147.tif 000015
【図１１】
0003744147.tif 000016
【図１２】
0003744147.tif 000017
【図１３】
0003744147.tif 000018
【図１４】
0003744147.tif 000019
【図１５】
0003744147.tif 000020
【図１６】
0003744147.tif 000021
【図１７】
0003744147.tif 000022
【図１８】
0003744147.tif 000023
【図１９】
0003744147.tif 000024
【図２０】
0003744147.tif 000025
【図２１】
0003744147.tif 000026