(57)【要約】  全方向カメラで撮影したイメージにおける歪みと知覚問題とを軽減する、リアルタイムな約３６０度イメージ修正システムおよび方法である。一般に、リアルタイムパノラマイメージ修正方法はパノラマイメージのピクセル座標から歪みテーブルを生成し、歪みテーブルをパノラマイメージに適用して修正されたパノラマイメージを生成する。修正は、空間的に変化する一様な（ＳＶＵ）スケーリング関数を含む歪み関数のパラメトリッククラスを用いて実施される。ＳＶＵスケーリング関数およびスケーリング係数を使用して、垂直方向のスケーリングと水平方向のスケーリングとをパノラマイメージピクセル座標上で実施する。水平方向の歪み修正が、ＳＶＵスケーリング関数を少なくとも２つの異なるスケーリング係数で用いて実施される。この処理は歪みテーブルを生成する。歪みテーブルをパノラマイメージに適用して、修正されたパノラマイメージを生成することができる。一実施形態において、パノラマイメージの生成に使用されるステッチテーブルと歪みテーブルが連結される。
2008536238.tif 000002
【特許請求の範囲】
【請求項１】
パノラマイメージのリアルタイムな修正を実施する方法であって、
パノラマピクセル座標を約３６０度パノラマイメージから取得するステップと、
空間的に変化する一様な（ＳＶＵ）スケーリング関数を前記パノラマピクセル座標に適用することで歪みテーブルを生成するステップと、
前記歪みテーブルと前記パノラマイメージ内の水平方向の特徴ジオメトリ(feature geometry)とを用いて前記パノラマイメージを歪ませて、修正されたパノラマイメージを生成するステップと
を備えたことを特徴とする方法。
【請求項２】
歪みテーブルを生成するステップであって、
前記ＳＶＵスケーリング関数を用いて前記パノラマイメージピクセル座標を垂直にスケーリングして、垂直にスケーリングしたパノラマイメージピクセル座標を生成するステップと、
前記ＳＶＵスケーリング関数を用いて前記の垂直にスケーリングしたパノラマイメージピクセル座標を水平にスケーリングして、予備ピクセル座標を含む予備歪みテーブルを生成するステップと、
前記ＳＶＵスケーリング関数を用いて前記予備歪みテーブル上で水平方向の歪み修正を実施して、前記歪みテーブルを生成するステップと
をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
垂直にスケーリングするステップは、メインスケーリング係数を用いて前記パノラマイメージピクセル座標を垂直方向にスケーリングするステップを備えたことを特徴とする請求項２に記載の方法。
【請求項４】
ソース曲線とターゲット曲線とを用いて前記メインスケーリング係数を計算することをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
ソース曲線を指定するステップと、
歪み係数を指定するステップと、
前記ソース曲線と前記歪み係数とを用いてターゲット曲線を計算するステップと
をさらに備えたことを特徴とする請求項４に記載の方法。
【請求項６】
前記ソース曲線はさらに下部ソース曲線と上部ソース曲線とを備えたことを特徴とする請求項５に記載の方法。
【請求項７】
前記下部ソース曲線は前記水平方向の特徴ジオメトリにより定義されることを特徴とする請求項６に記載の方法。
【請求項８】
前記水平特徴はテーブルであり、前記パノラマイメージを撮影するカメラはテーブルのほぼ中央に位置することを特徴とする請求項７に記載の方法。
【請求項９】
前記下部ソース曲線は次式で定義されることを特徴とする請求項８に記載の方法。
【数１】
2008536238.tif 000008
ここで、Ｗはテーブル幅、Ｌはテーブル長、ｈはカメラの高さ、ｒはカメラの焦点距離、αは０と１の間の歪み係数、およびθはカメラ方位である。
【請求項１０】
前記上部ソース曲線は、前記パノラマイメージを撮影するカメラを中央に置いたテーブルの周囲に座る人々の頭部の上端にほぼ接触する平面に基づくことを特徴とする請求項６に記載の方法。
【請求項１１】
前記上部ソース曲線は次式で定義されることを特徴とする請求項１０に記載の方法。
【数２】
2008536238.tif 000009
ここで、Ｗはテーブル幅、Ｌはテーブル長、ｈ’は人々の頭に接触する平面の高さ、ｒはカメラの焦点距離、αは０と１の間の歪み係数、およびθはカメラ方位である。
【請求項１２】
水平方向のスケーリングはさらに、各垂直走査線に対してメインスケーリング係数を使用して水平方向に前記パノラマイメージピクセル座標をスケーリングすることを特徴とする請求項２に記載の方法。
【請求項１３】
前記メインスケーリング係数はソース曲線とターゲット曲線とを用いて計算されることを特徴とする請求項１２に記載の方法。
【請求項１４】
水平方向の歪み修正を実施するステップは、
前記予備歪みテーブルを複数のセクションに分割するステップと、
前記セクションのそれぞれに含まれる予備ピクセル座標を、少なくとも２つの異なるスケーリング係数を用いて垂直方向にスケーリングするステップと
を備えたことを特徴とする請求項３に記載の方法。
【請求項１５】
前記歪みテーブルはユーザが指定したテーブル寸法とカメラパラメータとから計算されることを特徴とする請求項１に記載の方法。
【請求項１６】
請求項１に記載の方法を実施するコンピュータ実行可能命令を有するコンピュータ読取可能記憶媒体。
【請求項１７】
約３６０度パノラマイメージの歪み修正方法であって、
イメージ集合を入力するステップと、
前記入力イメージ集合から生成した仮想パノラマイメージのピクセル座標に対応するイメージピクセル座標を入力するステップと、
スケーリング係数を有する空間的に変化する一様な（ＳＶＵ）スケーリング関数を使用して、イメージ歪みを修正する修正ピクセル座標を含む歪みテーブルを生成するステップと、
前記仮想パノラマイメージの生成に用いるステッチテーブルを歪みテーブルと連結するステップと、
前記連結された歪みおよびステッチングテーブルを用いて前記入力イメージ集合から修正されたパノラマイメージを生成するステップと
を備えたことを特徴とする方法。
【請求項１８】
前記修正されたパノラマイメージはリアルタイムに生成されることを特徴とする請求項１７に記載の方法。
【請求項１９】
イメージを縫合して前記パノラマイメージを生成するために用いられるステッチテーブルと前記歪みテーブルとを連結するステップをさらに備えたことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記修正されたパノラマイメージは、イメージの列を撮影する前記カメラから遠方に離れたオブジェクトの大きさを増加するよう修正されることを特徴とする請求項１８に記載の方法。
【請求項２１】
パノラマイメージのリアルタイムな修正と表示を行うコンピュータ実行可能命令を有するコンピュータ読取可能記憶媒体であって、
歪みテーブルを生成してイメージ列内のピクセルを歪ませ、パノラマイメージを生成するステップであって、
前記パノラマイメージ上でソース曲線を指定するステップと、
前記パノラマイメージピクセル座標に適用した歪みの量に対応する歪み係数を指定するステップと、
前記ソース曲線と前記歪み係数とを用いてターゲット曲線を計算するステップと、
前記ソース曲線と前記ターゲット曲線とを用いてメインスケーリング係数を計算するステップと、
前記メインスケーリング係数を用いて前記パノラマイメージピクセル座標をスケーリングし、前記歪みテーブルを生成するステップと
をさらに備える生成するステップと、
前記パノラマイメージの生成に用いるステッチテーブルを前記歪みテーブルと連結するステップと、
前記イメージ列を修正されたパノラマイメージに縫合する間に、前記連結された歪みおよびステッチングテーブルを適用するステップと
を備えることを特徴とするコンピュータ読取可能記憶媒体。
【請求項２２】
前記コンピュータ読取可能記録媒体は全方向カメラ内に組み込まれることを特徴とする請求項２１に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００２年６月２８日に出願された「REAL-TIME WIDE-ANGLE IMAGE CORRECTION SYSTEM AND METHOD FOR COMPUTER IMAGE VIEWING」という名称の特許出願第１０／１８６，９１５号の一部継続出願である。
【０００２】
本発明は、一般にコンピュータを使用してイメージを閲覧する方法に関し、より詳細には、全方向（ｏｍｎｉ−ｄｉｒｅｃｔｉｏｎａｌ）カメラで撮影したパノラマイメージに関連するゆがみ（ｄｉｓｔｏｒｔｉｏｎ）や認知（ｐｅｒｃｅｐｔｉｏｎ）の問題を軽減するための、リアルタイムパノラマイメージ修正システムおよびその方法に関する。
【背景技術】
【０００３】
広角カメラ（Ｗｉｄｅ−ａｎｇｌｅ  ｃａｍｅｒａｓ）は、一般に６０度を超える視野があり、多くの場合に大きなシーン（ｓｃｅｎｅｓ）の撮影に使用する。広角カメラで撮影された広角イメージ（ｗｉｄｅ−ａｎｇｌｅ  ｉｍａｇｅ）は、少なくとも２種類の投影を使用して閲覧できる。線遠近法（Ｌｉｎｅａｒ  ｐｅｒｓｐｅｃｔｉｖｅ）と円筒図法（ｃｙｌｉｎｄｒｉｃａｌ  ｐｒｏｊｅｃｔｉｏｎｓ）は、広角イメージの表示に使用する最も一般的な投影である。
【０００４】
線遠近法は、広角レンズで撮影されたイメージを平面フィルム上に投影したものである。線遠近法では、直線は維持されるが、形状は維持されない。このことによって、遠近法のゆがみ（ｐｅｒｓｐｅｃｔｉｖｅ  ｄｅｆｏｒｍａｔｉｏｎｓ）が発生する。イメージの閲覧者がその目を投影中心に配置した場合は、イメージは正確に現れ、ゆがみは発生しない。しかし、広角イメージをより小さな視野で閲覧する場合に、閲覧者は、イメージサイズがわずかに大きくなり、オブジェクトが回転するときにイメージ平面にわずかなゆがみ発生することを期待する。このことは、オブジェクトの端が伸びて見える原因である。イメージ平面上のサイズの変化とゆがみが予想を上回る場合、ユーザはシーンが固定されて（ｒｉｇｉｄ）おらず、まるでシーンが閲覧者の周囲を浮遊しているように感じられる。パノラマイメージを閲覧する場合は特にこのことがいえる。
【０００５】
円筒図法は、曲面フィルムと回転するスリットレンズを備える広角カメラを使用して生成される。円筒図法では、形状が線遠近法よりよく維持される。さらに、円筒図法では目に見える浮遊した動き（ｓｗｉｍｍｉｎｇ  ｍｏｔｉｏｎ）が緩和される。円筒図法では、線遠近法に比べて閲覧は改善されるが、ゆがみと認知の問題は依然として残る。特に、円筒図法では直線を必要以上に歪曲させる。さらに、円筒図法ではパノラマイメージを閲覧するときの人の頭が回るときの（ｔｕｒｎｉｎｇ  ｏｎｅ’ｓ  ｈｅａｄ）の幻影（ｉｌｌｕｓｉｏｎ）がほとんど除去される。
【０００６】
広角イメージのゆがみと湾曲の問題は、視野の不一致によって発生する。特に、コンピュータのモニタ上の閲覧サイズと標準の閲覧距離が制限されるため、イメージが閲覧されるときに範囲が定まる角度は、イメージ平面にシーンを最初に投影したカメラの視野よりはるかに小さい。この不一致は、多くのゆがみと認知の問題の原因である。
【０００７】
広角イメージを狭い視野で閲覧することによって発生する閲覧時の関連の問題は、奥行き（ｄｅｐｔｈ）の誤った認知（ｍｉｓｐｅｒｃｅｐｔｉｏｎ）である。広角イメージでは、近くにあるオブジェクトと遠くにあるオブジェクトとの奥行きの格差が誇張される。シーン内にあるオブジェクトの奥行きに関する１つの重要なビジュアルキュー（ｖｉｓｕａｌ  ｃｕｅ）は、近い位置と遠い位置にある同様のオブジェクトのイメージサイズの比率である（奥行きの縮小率（ｆｏｒｅｓｈｏｒｔｅｎｉｎｇ  ｒａｔｉｏ）と呼ばれる）。視野が小さいほど縮小率も小さくなる。例えば、１つのシーンに互いに隣り合う２人が含まれており、１人はもう１人よりわずかにカメラから遠い位置にいると仮定する。シーンが標準（約６０度）の視野のカメラで撮影され、さらに同じシーンが広角視野のカメラで撮影された場合に、シーン内のオブジェクトのサイズは異なって見える。具体的には、標準の視野のカメラを使用した場合は、カメラから遠い人物はもう１人の人物よりカメラから少し遠くに見える。しかし、広角視野のカメラを使用した場合は、カメラから遠い人物はもう１人の人物よりはるかに小さく見える。この誇張されたサイズの違いのために、カメラから遠い人物は実際の位置よりはるかに遠く見える。奥行きのあるシーンの広角イメージ（テレビ会議のシーンなど）がコンピュータのモニタに閲覧される場合は、閲覧者の視野は一般に実際のイメージの視野よりはるかに小さい。したがって、閲覧者によって認知される奥行きは、実際の奥行きよりはるかに大きい。
【０００８】
こうしたゆがみと認知の問題が発生する１つのアプリケーションは、テレビ会議システム内において明らかである。広角カメラは、テレビ会議システムでたびたび使用されており、会議室にいるすべての出席者を含むイメージ撮影し、それを送信する。しかし、１つの問題は、テレビ会議を閲覧する場合に、広角イメージでは部屋の奥行きが誇張されることである。この結果、極端な縮小のために、イメージの中心にいる人物（通常はカメラから最も離れている人物）は室内にいる他の人物に比べて非常に小さく見える。
【０００９】
広角カメラのイメージによくあるゆがみと認知の問題は、３６０度の視野をカバーするパノラマイメージを閲覧するときにさらに明らかになる。パノラマイメージは、１台のカメラで得られた複数の入力イメージの位置合わせ（ａｌｉｇｎｉｎｇ）と「ステッチング」（ｓｔｉｔｃｈｉｎｇ）によって生成できる。あるいは、複数台のカメラを使用して入力イメージを得、これらのイメージをステッチングすることによってパノラマイメージを作成することもできる。例えば、複数のカメラを使用してパノラマビデオを生成する場合がそうである。基本的に、パノラマビデオの作成にはシーンを囲む３６０度の視野全体を描写する複数のビデオを得る必要がある。カメラの装置は、背中合わせに配置された複数台のカメラを備えており、ときどきこうしたビデオを撮影するために使用される。一般的には、入力イメージのピクセル位置をパノラマイメージのピクセル位置にマップするステッチングテーブルを使用して、イメージをパノラマにステッチングする。３６０度の全方向カメラは、会議の記録やテレビ会議に使用されてきた。通常、カメラはテーブルの中央に配置され、会議の出席者はテーブルの周囲に座っている。会議用テーブルが長方形の場合は、パノラマイメージ上の人物の頭部のサイズはカメラまでの距離によって変わる。例えば、テーブルのカメラから遠い端に座っている人物は、カメラの近くに座っている人物に比べてはるかに小さく見える。パノラマイメージにおけるこうした頭部のサイズの変化は、視覚に訴えないので、テーブルの遠い端の人物を認識したり、彼らの表情を認識したりするのは、多くの場合に困難である。
【００１０】
パノラマイメージを使用したテレビ会議に関する別の問題は、何台かの全方向カメラが３７００×６００ピクセルのパノラマイメージを生成しても、多くのユーザは１０２４×７６８ピクセルのディスプレイしか使用しておらず、この場合は１０２４×１６６ピクセルのパノラマしか表示できないことである。このように解像度が大幅に低下するため、テーブルの遠い端に座っている人物は、頭部のサイズを正規化しないと表示できない。
【００１１】
【特許文献１】２００２年６月２８日に出願された「REAL-TIME WIDE-ANGLE IMAGE CORRECTION SYSTEM AND METHOD FOR COMPUTER IMAGE VIEWING」という名称の特許出願第１０／１８６，９１５号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、パノラマカメラで撮影されたイメージのゆがみと認知の問題を軽減することによって、こうしたイメージをリアルタイムで修正するシステムおよび方法が必要になる。本システムおよび方法では、パノラマイメージ内の頭部のサイズを正規化し、標準的な解像度のモニタにイメージ内の人物を閲覧できるようにする必要がある。さらに、本システムおよび方法は、セットアップと操作が容易であり、計算効率が高くなければならない。
【課題を解決するための手段】
【００１３】
本発明は、約３６０度のパノラマイメージにおけるゆがみと認知の欠点をリアルタイムで修正できるシステムおよび方法で使用するユーザインターフェースを提供する。本リアルタイムパノラマイメージ修正システムおよびその方法では、パラメトリック歪み関数（ｐａｒａｍｅｔｒｉｃ  ｗａｒｐｉｎｇ  ｆｕｎｃｔｉｏｎｓ）、すなわちＳＶＵ（Ｓｐａｔｉａｌｌｙ  Ｖａｒｙｉｎｇ  Ｕｎｉｆｏｒｍ）スケーリング関数を使用してパノラマイメージを歪め、不連続性を導入することなく人物の頭部のサイズを均等化する。ＳＶＵ関数については、２００２年６月２８日に出願された「REAL-TIME WIDE-ANGLE IMAGE CORRECTION SYSTEM AND METHOD FOR COMPUTER IMAGE VIEWING」という名称の特許文献１ですでに説明されている。しかし、以前の特許出願では最大１８０度のイメージについてのみこの技術が使用された。本発明において、ＳＶＵスケーリング関数は、約３６０度のパノラマイメージに適用されており、会議用テーブルのジオメトリ（ｇｅｏｍｅｔｒｙ）や会議出席者の頭部に接する平面などの水平方向の特徴（ｈｏｒｉｚｏｎｔａｌ  ｆｅａｔｕｒｅｓ）を考慮に入れている。前述の特許出願において、ＳＶＵスケーリング関数は一般に会議室のテーブルの一端に配置された広角カメラで生成した最大１８０度のイメージに対して使用された。一方、３６０度の全方向カメラは、通常はテーブルの中央に配置される。したがって、広角イメージと約３６０度のパノラマイメージのＳＶＵスケーリング関数の計算に使用する上側と下側の曲線は異っている。
【００１４】
本リアルタイムパノラマイメージ修正システムおよびその方法では、頭部のサイズの正規化を実行し、遠くにあるオブジェクト（頭部など）をより近く見えるように、したがってより大きくしている。また、近くにある頭部（大きい）はより小さくなっている。結果として、テーブルの遠い端にいる人物はより大きくなり、１０２４×１６６ピクセルのディスプレイでも閲覧可能である。本発明によるシステムおよび方法の１つの実施形態では、さらにユーザが会議用テーブルの形状とサイズを選択でき、本リアルタイムパノラマイメージ修正システムは、パノラマイメージのステッチングテーブルを会議用テーブルに合わせて変更し、会議出席者の頭部のサイズを正規化すると同時に、ステッチングが計算されるようにする。
【００１５】
一般に、本発明の一実施形態において、リアルタイムパノラマイメージ修正方法は、遠方のオブジェクトがカメラ近傍のものより非常に小さいパノラマイメージと、テーブル寸法および人々の頭部の上端といったイメージ内の水平方向のジオメトリパラメータを入力する。次いで前記方法は、強調された奥行きと水平方向の歪みとを修正し、修正されたパノラマイメージを出力する。修正は歪み関数のクラスを用いて実施される。歪み関数は、パノラマイメージに関連する問題の大部分を解決しつつ、新たな歪みの導入を最小限にするよう設計される。この歪み関数のクラスは、空間的に変化する一様なスケーリング関数を含む。一般に、局所レベルでのスケーリングはグローバルコンテクストを保存しつつ実施される。ビデオ会議の適用例に対して、これは歪みが遠方の人々にズームインし、その際に個々人を歪ませず部屋の状況を保存することを意味する。
【００１６】
上述の実施形態において、リアルタイムパノラマイメージ修正方法は、約３６０度のパノラマイメージのピクセル座標と水平方向のジオメトリ寸法とを受信し、パノラマイメージのピクセル座標上で垂直および水平方向のスケーリングを実施する。スケーリングはパノラマイメージの歪み関数を用いて実施される。このスケーリングにより、垂直方向の線は維持するが水平方向の線を歪ませる可能性のあるイメージに対応する、予備歪みテーブルが生成される。結果として、修正イメージピクセル座標を元のイメージのピクセル座標にマップする歪みテーブルが出力される。換言すれば、歪みテーブルは、新規の修正されたパノラマイメージ内にある元のピクセル座標の各位置を決定する。修正されたパノラマイメージは、元のパノラマイメージからリアルタイムに構築される。
【００１７】
本発明の別実施形態では、歪みテーブルとステッチテーブルを連結して計算効率を改善し、入力イメージをパノラマイメージに縫合する最中に頭の大きさを正規化することを可能とする。本実施態様では、ステッチテーブルを用いてイメージの集合を仮想(imaginary)ステッチパノラマイメージに縫合する。さらに、イメージの集合、水平方向のジオメトリパラメータも入力される。仮想パノラマイメージを用いて歪みテーブルを計算し、次いで歪みテーブルをステッチテーブルと連結する。この連結された歪みおよびステッチングテーブルを次いで使用して、入力イメージの集合を実際の歪み修正パノラマに縫合する。
【００１８】
上述の実施形態の両方に対して、歪みテーブルまたは連結ステッチ・歪みテーブルを規定どおりに使用して、垂直および水平方向の歪みを修正する。
【００１９】
垂直方向のスケーリングを、パノラマイメージの歪み関数と歪み係数とを用いてパノラマイメージ内、または仮想パノラマイメージ内のそれぞれの垂直走査線上で実施する。メインスケーリング係数を、ソース曲線、歪み係数、ならびにソース曲線および歪み係数から計算したターゲット曲線を用いて計算する。本発明の１形態は、ユーザが定義したソース曲線および歪み係数を有する。または、ソース曲線を所与の歪み係数に対する水平方向の特徴ジオメトリとカメラパラメータとから自動的に計算することができる。メインスケーリング係数を使用してピクセル座標を垂直方向にスケーリングする。仮想的な意味では、この垂直方向のスケーリングによりパノラマイメージ（または仮想パノラマイメージ）は、選択した垂直走査線に対してメインスケーリング係数の量だけ垂直方向に“伸張”／“縮小”される。垂直走査線の水平方向スケーリングも実施し、同じメインスケーリング係数を使用してアスペクト比を保存する。垂直方向のスケーリングと同様、水平方向のスケーリングにより仮想的な意味でパノラマイメージの垂直走査線の幅はメインスケーリング係数の量だけ水平方向に局所的に“伸張”／“縮小”されると考えることができる。仮想的な意味では、縫合されていない入力イメージの集合の場合に垂直および水平方向のスケーリングを元のパノラマイメージまたは仮想パノラマイメージに適用することで、予備修正イメージが得られる。計算速度を高めるため、予備修正イメージの予備ピクセル座標を元のイメージのピクセル座標にマップする予備歪みテーブルを生成する。
【００２０】
水平方向の歪みは、ピクセル座標の位置に従って予備歪みテーブルをセクションに分割することで修正する。これらのセクションのそれぞれは異なるスケーリング係数を用いて垂直にスケーリングする。本発明の１形態では、下部ソース曲線と上部ソース曲線との間のピクセルに対応するピクセル座標を含むセクションを、第１のセクションと定義する。次いでメインスケーリング係数を用いて、このセクション内のピクセル座標を垂直にスケーリングする。他セクション内のピクセル座標は、メインスケーリング係数とは異なる値である２次スケーリング係数を用いて垂直にスケーリングする。連続性を保存するため、平滑化(smoothing)関数を用いてセクションのそれぞれを接続する。水平方向の歪み修正プロセスが予備歪みテーブル内のピクセル座標上で実施されると、歪みテーブルが生成される。この歪みテーブルを使用して、パノラマイメージのリアルタイムワーピングを実施し、修正されたパノラマイメージをリアルタイムに生成する。上述のように、本発明の一実施形態では歪みテーブルをステッチテーブルと連結し、パノラマイメージの縫合中にパノラマイメージを修正することで計算効率を向上させる。
【００２１】
本発明の形態を説明する以下の記述と添付図面とを参照することで、本発明をさらに理解することができる。他の特徴および利点は、添付図面と関連させた本発明の以下の詳細な記述から明らかになるであろう。添付図面は本発明の原理を例として示す。
【発明を実施するための最良の形態】
【００２２】
本発明の以下の説明では添付図面を参照する。添付図面は本発明の説明の一部を形成し、添付図面には例として本発明を実践可能な具体例を示してある。本発明の範囲から逸脱することなく、他の実施形態を利用でき、構造を変更できることは理解されるべきである。
【００２３】
１．０  一般概要
図１は、会議室内のテーブル中央に置いた３６０度全方向カメラで取得したイメージを示す。このカメラ構成は、ビデオ会議の適用例で使用可能なもののうち一般的なものである。図１を参照すると、白い人が他の２人より非常に小さく見えることが分かる。この理由は、彼がカメラから遠く離れて座っているからである。最初に、白い人はほとんど見えず、観察者から遠く離れて見えるので、リアルタイム通信の実施に影響する。第２にネットワークの帯域制限および有限の画面スペースにより、通常はイメージ大きさが制限される。人々のイメージが非常に小さい場合、多数の送信ピクセルが無駄になる。従って、人々の頭の大きさを均等化して送信および表示されるピクセル数を最大限に利用することが望ましい。図２は、リアルタイムパノラマイメージ修正システムおよび方法を用いて修正した図１のイメージを示す。
【００２４】
リアルタイムパノラマイメージ修正システムおよび方法は、イメージの不連続性を生じさせずに人々の頭の大きさを均等化または正規化する技術を利用する。その技術は、２００２年６月２８日出願の“コンピュータイメージビューイングのためのリアルタイム広角イメージ修正のシステムおよび方法”というタイトルの特許出願番号１０／１８６，９１５で説明されるＳＶＵスケーリング関数の拡張である。以前の特許出願ではＳＶＵスケーリング関数を、会議室テーブルの一端に置いた広角カメラで通常は生成する１８０度イメージに対して使用した。対照的に、上述のように３６０度カメラはテーブル中央に通常は置かれる。従って、３６０度パノラマイメージ向けに生成したＳＶＵスケーリング関数の計算に用いる上方および下方曲線は、広角（例えば、高々１８０度）のイメージで使用されるものと異なる。図３は、１８０度イメージに対するＳＶＵスケーリング関数の計算に用いる上方および下方ソース曲線（緑線）を示す。図４は、３６０度イメージに対するＳＶＵスケーリング関数の計算に用いる上方および下方ソース曲線（緑線）を示す。緑のソース曲線とターゲット曲線（赤線）が与えられると、前述の特許出願で説明されるものと同じ方法でＳＶＵスケーリング関数を生成することができる。
【００２５】
前述の同時係属特許出願にあるように、空間的に変化する一様な（ＳＶＵ）スケーリング関数と呼ばれるパラメトリックな歪み関数のクラスを用いて、パノラマイメージの修正を実現する。空間的に変化する一様な（ＳＶＵ）スケーリング関数は、局所的なスケーリングの見え方を保存し奥行きの誤認知を修正する。ＳＶＵスケーリング関数およびスケーリング係数を使用して、イメージのピクセル座標上で垂直方向のスケーリングおよび水平方向のスケーリングを実施する。これにより、予備修正イメージのピクセル位置を元のピクセル座標にマップする予備歪みテーブルが生成される。この予備修正イメージは仮想的なイメージであり、実際に構築される訳ではない。しかしながら、予備修正イメージは垂直線を真直ぐに保つが、水平線は歪ませる。ＳＶＵスケーリング関数と少なくとも２つの異なるスケーリング係数とを用いて水平方向の歪み修正を実施することで、この水平方向の歪みを修正する。このプロセスにより歪みテーブルが生成される。歪みテーブルは、修正されたパノラマイメージ内の位置を歪んだパノラマイメージ内の元のピクセル座標にマップする。本発明の一部の実施形態ではイメージを縫合してパノラマイメージを生成し、歪みテーブルをステッチテーブルと連結して計算効率を向上させることができる。歪みテーブル、または連結ステッチ・歪みテーブルを用いて、修正されたパノラマイメージを元のパノラマイメージからリアルタイムに構築する。
【００２６】
図５Ａは、本発明のリアルタイムパノラマイメージ修正システム５００Ａの一実施形態の一般概要を示すブロック図である。一般に、システム５００Ａは水平方向の特徴ジオメトリ５０５（例えば、会議卓の形状、および人々の頭部の上端に接触する平面）とパノラマイメージ５１０とを取得し、水平方向の特徴ジオメトリ５０５とパノラマイメージ内の各ピクセルの座標に対応するパノラマイメージピクセル座標５２０とを入力する。水平方向の特徴ジオメトリ５０５およびパノラマイメージピクセル座標５２０をリアルタイムパノラマイメージ修正システム５００Ａにより処理し、修正されたパノラマイメージ５３０を出力する。
【００２７】
パノラマイメージ５１０は（例えばスチールカメラからの）単一縫合イメージ、または（例えばビデオカメラからの）イメージ列の一部であることができる。パノラマイメージ５１０内の各ピクセルの座標を取得してパノラマイメージピクセル座標５２０を生成する。例えば、直線で囲った座標枠においてピクセル座標５２０はパノラマイメージ５１０内の各ピクセルの（ｘ，ｙ）位置であり、それらの位置はパノラマイメージを取得するために縫合した一連のイメージに一般に対応する。リアルタイムパノラマイメージ修正モジュール５００Ａは歪みテーブル生成モジュール５４０、歪みテーブル５５０およびリアルタイムイメージ歪みシステム５６０を含む。
【００２８】
歪みテーブル生成モジュール５４０は、パラメトリックイメージ歪み関数を用いて歪みテーブル５５０を生成するために使用される。パノラマイメージピクセル座標５２０を処理して歪みテーブル５５０を生成する。歪みテーブル生成モジュール５４０の詳細を以下で説明する。歪みテーブル５５０は、修正されたパノラマイメージ５３０内の位置に対応するように配置したパノラマイメージピクセル座標５２０を含む。従って、歪みテーブル５５０は、パノラマイメージピクセル座標５２０に対する修正されたパノラマイメージ５３０内の新規位置を決定する。
【００２９】
歪みテーブル５５０を生成すると、パノラマイメージ５１０をリアルタイム歪みシステム５６０に対する入力として受信する。リアルタイムパノラマイメージ歪みシステム５６０は歪みテーブル５５０をパノラマイメージ５１０に適用して修正されたパノラマイメージ５３０を生成する。リアルタイム歪みシステム５６０は、歪みテーブル５５０内に含まれるピクセル座標に位置するパノラマイメージ５１０のＲＧＢ値を取得することで、修正されたパノラマイメージ５３０内の各位置に対して修正されたパノラマイメージ５３０を生成する。パノラマピクセル座標５２０でのＲＧＢ値は従って、修正されたパノラマイメージ５３０内で再配置される。歪みテーブル５５０を用いて新規位置を決定する。例えばＹＵＶのような任意の色空間を用いてもよいことに留意されたい。
【００３０】
図５Ｂに示す本発明の別実施形態５００Ｂでは、パノラマイメージの縫合に用いるステッチテーブルと歪みテーブルとを連結する。本実施形態では入力イメージ集合５１２を仮想パノラマイメージ５１５に縫合し、ステッチングされた仮想パノラマイメージ５２２に対するイメージピクセル座標をシステム５００Ｂに入力する。リアルタイムパノラマイメージ修正モジュール５００Ｂは歪みテーブル生成モジュール５４０、歪みテーブル５５０、連結ステッチ・歪みテーブル５５５（セクション４．５でさらに詳述）、およびリアルタイムイメージ歪みシステム５６０を含む。
【００３１】
歪みテーブル生成モジュール５４０を使用して、パノラマイメージ歪み関数を用いて歪みテーブル５５０を生成する。仮想パノラマイメージ５１５のパノラマイメージピクセル座標５２２を処理し、歪みテーブル５５０を生成する。歪みテーブル生成モジュール５４０の詳細は後述する。歪みテーブル５５０は、修正されたパノラマイメージ５３０内の位置に対応するように配置したパノラマイメージピクセル座標５２２を含む。従って、歪みテーブル５５０は、パノラマイメージピクセル座標５２２に対する修正されたパノラマイメージ５３０内の新規位置を決定する。
【００３２】
歪みテーブル５５０が生成されると、歪みテーブル５５０は入力イメージ集合５１２の縫合に使用するステッチテーブルと連結されて、連結された歪みおよびステッチングテーブル５５５を生成する。入力イメージ集合５１２は、リアルタイムイメージ歪みシステム５６０に対する入力として受信する。リアルタイムパノラマイメージ歪みシステム５６０は連結された歪みおよびステッチングテーブル５５５を入力イメージ集合５１２に適用して、修正されたパノラマイメージ５３０を生成する。リアルタイムイメージ歪みシステム５６０は、連結された歪みおよびステッチングテーブル５５５内のピクセル座標に位置する入力イメージ集合５１２に対してＲＧＢ（またはＹＵＶ、または他の色空間）値を取得することで、修正されたパノラマイメージ５３０内の各位置に対して修正されたパノラマイメージ５３０を生成する。仮想パノラマピクセル座標５２２でのＲＧＢ値は従って、入力イメージ集合５１２の縫合中に修正されたパノラマイメージ５３０内で再配置される。連結された歪みおよびステッチングテーブル５５５を用いて新規位置を決定する。
【００３３】
ステッチャが静的であり且つ最小量の計算を必要とするので、歪みプロセスはリアルタイムで生じる。歪みテーブルを生成すると、修正されたパノラマイメージ５３０の生成に必要なもの全てが歪みテーブル５５０（または連結された歪みおよびステッチングテーブル）をパノラマイメージ５１０または入力イメージ集合５１２に適用し、これを素早く完了することができる。
【００３４】
２．０  動作環境例
本発明のリアルタイムパノラマイメージ修正システム５００Ａまたは５００Ｂは、コンピューティング環境で動作するよう設計してある。以下の説明は、本発明の実装に適したコンピューティング環境の簡潔で一般的な説明を与えることを意図している。
【００３５】
図６は本発明の実行に適したコンピューティング装置を示すブロック図である。必要ではないが、プログラムモジュールのようなコンピュータが実行するコンピュータ実行可能命令の一般的なコンテクストで本発明を説明する。一般に、プログラムモジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含み、これらは特定のタスクを実施するかまたは特定の抽象データ型を実装する。さらに、当業界の技術者は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能消費家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、等を含む様々なコンピュータシステム構成で本発明を実践できることを理解するであろう。本発明を分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、通信ネットワークを通して接続したリモート処理装置がタスクを実施する。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体の両方に置くことができる。
【００３６】
図６を参照する。本発明を実装するシステムの例には汎用目的コンピューティング装置６００が含まれる。特に、コンピューティング装置６００には演算装置６０２、システムメモリ６０４、およびシステムメモリ６０４を含む様々なシステムコンポーネントを演算装置６０２に接続するシステムバス６０６が含まれる。システムバス６０６は数種のバス構造のうち任意のものであることができ、そのバス構造には、メモリバスまたはメモリ制御装置、周辺バス、および様々なバスアーキテクチャのうち任意のものを使用するローカルバスが含まれる。システムメモリは読取専用メモリ（ＲＯＭ）６１０およびランダムアクセスメモリ（ＲＡＭ）６１２を含む。例えば起動時にコンピューティング装置６００内部の要素間での情報転送を支援する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）６１４を、ＲＯＭ６１０内に記憶する。コンピューティング装置６００はさらに、示していないがハードディスクを読み書きするハードディスクドライブ６１６、取り外し可能磁気ディスク６２０を読み書きする磁気ディスクドライブ６１８、およびＣＤ−ＲＯＭまたは他の光媒体のような取り外し可能光ディスク６２４を読み書きする光ディスクドライブ６２２を含む。ハードディスクドライブ６１６、磁気ディスクドライブ６２８および光ディスクドライブ６２２をそれぞれ、ハードディスクドライブインターフェース６２６、磁気ディスクドライブインターフェース６２８および光ディスクドライブインターフェース６３０によりシステムバス６０６に接続する。前記ドライブおよびそれらに関連するコンピュータ読取可能記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールおよびコンピューティング装置６００に対する他のデータを、不揮発に記憶する。
【００３７】
本明細書で説明した環境の例ではハードディスク、取り外し可能磁気ディスク６２０および取り外し可能光ディスク６２４を利用したが、当業界の技術者は、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、等といった、コンピュータが利用可能なデータを記憶できる他種のコンピュータ読取可能記憶媒体をも動作環境例で使用できることを理解するであろう。
【００３８】
多数のプログラムモジュールを、ハードディスク、磁気ディスク６２０、光ディスク６２４、ＲＯＭ６１０またはＲＡＭ６１２に記憶することができる。上記プログラムモジュールにはオペレーティングシステム６３２、１つまたは複数のアプリケーションプログラム６３４、他のプログラムモジュール６３６およびプログラムデータ６３８が含まれる。ユーザ（示さず）はキーボード６４０およびポインティングデバイス６４２のような入力装置を通してコンピューティング装置６００に命令および情報を入力することができる。加えて、（ビデオカメラのような）カメラ６４３および、例えばマイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、等を含む他の入力装置（示さず）をコンピューティング装置６００に接続することができる。これらの他の入力装置を、システムバス６０６に結合したシリアルポートインターフェース６４４を通して演算装置６０２に接続することがよくあるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）のような他のインターフェースにより接続してもよい。モニタ６４６（または他種の表示装置）も、ビデオアダプタ６４８のようなインターフェースを通してシステムバス６０６に接続される。モニタ６４６に加えて、パーソナルコンピュータのようなコンピューティング装置は一般に、スピーカおよびプリンタのような他の周辺出力装置（示さず）を含む。
【００３９】
コンピューティング装置６００は、リモートコンピュータ６５０のような１つまたは複数のリモートコンピュータに対する論理接続を用いてネットワーク環境で動作することができる。リモートコンピュータ６５０は別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ，ピアデバイスまたは他の共通ネットワークノードであることができ、一般にコンピューティング装置６００に関して上述した多数または全ての要素を含むが、メモリ記憶装置６５２のみを図６に示してある。図６に示した論理接続はローカルエリアネットワーク（ＬＡＮ）６５４および広域ネットワーク（ＷＡＮ）６５６を含む。上記のネットワーク環境は職場、企業規模のコンピュータネットワーク、イントラネットおよびインターネットで一般的である。
【００４０】
ＬＡＮネットワーク環境で使用するとき、コンピューティング装置６００はネットワークインターフェースまたはアダプタ６５８を通してローカルネットワーク６５４に接続される。ＷＡＮネットワーク環境で使用するとき、コンピューティング装置６００は一般にモデム６６０または、インターネットなどの広域ネットワーク６５６上で通信を確立する他の手段を含む。モデム６６０は内部または外部にあることができ、シリアルポートインターフェース６４４経由でシステムバス６０６に接続される。ネットワーク環境において、コンピューティング装置６００に関して示したプログラムモジュール、またはその一部を、リモートメモリ記憶装置６５２に格納することができる。示したネットワーク接続は例であって、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されるべきである。
【００４１】
３．０  リアルタイムパノラマイメージ修正システムの詳細
一般に、リアルタイムパノラマイメージ修正システム５００はパノラマイメージ５１０をリアルタイムに修正し、カメラから遠く離れて座る人々の頭の大きさを特に正規化または均等化する。システム５００は垂直および水平方向の湾曲および歪みを修正する。加えて、システム５００は奥行きおよび泳ぎ動作のような知覚問題を修正する。
【００４２】
図７は図５Ａまたは５Ｂに示した歪みテーブル生成モジュール５４０の詳細を示すブロック図である。特に、歪みテーブル生成モジュール５４０は入力モジュール７００を含む。入力モジュール７００により、パノラマイメージピクセル座標５２０または仮想パノラマイメージ５２２のピクセル座標および水平方向の特徴ジオメトリ５０５を入力する。これらのピクセル座標５２０、５２２は、パノラマイメージ５１０または仮想パノラマイメージ５１５内の各ピクセル位置を表す。モジュール５４０は垂直方向のスケーリングモジュール７１０も含む。垂直方向のスケーリングモジュール７１０は歪み関数を使用して、パノラマイメージピクセル座標５２０、５２２が垂直方向にスケーリングされるように、パノラマイメージピクセル座標５２０のそれぞれの垂直走査線または仮想パノラマイメージ５２２のピクセル座標を処理する。概念的には、これはパノラマイメージ５１０（または仮想パノラマイメージ５１５）の垂直方向への“伸張”と考えることができる。この垂直方向のスケーリングにより、パノラマイメージ５１０（または仮想パノラマイメージ５１５）において強調された奥行きを部分的に修正する。
【００４３】
歪みテーブル生成モジュール５４０は、パノラマイメージ歪み関数を用いて水平方向にイメージピクセル座標５２０、５２２をスケーリングするための水平方向のスケーリングモジュール７２０も含む。垂直方向のスケーリングと同様、概念的にはこれはパノラマイメージ５１０または仮想パノラマイメージ５１５の水平方向への“伸張”と考えることができる。加えて、パノラマイメージ５１０または仮想パノラマイメージ５１５のアスペクト比が保存されるように、水平方向のスケーリングをそれぞれの垂直走査線上で独立して実施する。
【００４４】
垂直方向のスケーリングモジュール７１０および水平方向のスケーリングモジュール７２０は、予備ピクセル座標を元のピクセル座標にマップする予備歪みテーブルを生成する。この予備歪みテーブルを使用して予備修正イメージを生成することができる。実際にはこれは行われず、予備修正イメージは仮想的なイメージである。予備修正イメージは、垂直線が垂直として維持されるが水平線は歪まされるという特性を有する。
【００４５】
水平方向の歪みを修正するため、水平方向の歪みモジュール７３０も歪みテーブル生成モジュール５４０に含める。水平方向の歪みモジュール７３０は予備歪みテーブル内の予備ピクセル座標を、位置に依存して異なる量だけ垂直にスケーリングする。歪みテーブル生成モジュール５４０の出力は歪みテーブル５５０である。歪みテーブルは修正されたパノラマイメージ５３０内のピクセル座標を、元のパノラマイメージピクセル座標５２０または仮想ステッチイメージ５２２のピクセル座標にマップする。歪みテーブルをステッチテーブルと連結して連結された歪みおよびステッチングテーブルを生成することができ、一連の入力イメージからパノラマイメージに縫合することに使用できる。
【００４６】
４．０  リアルタイムパノラマイメージ修正方法
本発明のリアルタイムパノラマイメージ修正方法は、空間的に変化する一様なスケーリング関数、またはＳＶＵスケーリング関数と呼ばれるパラメトリックイメージ歪み関数を使用する。ＳＶＵスケーリング関数はアスペクト比を保存する一様スケーリング関数と局所的に類似するかもしれないが、歪みを生成するためにスケーリング係数がイメージ上で変化する。パノラマイメージの表示時、ＳＶＵスケーリング関数は循環を回避して泳ぎ動作を除去する。
【００４７】
図８Ａは、図５Ａに示すリアルタイムパノラマイメージ修正システム５００Ａのリアルタイムパノラマイメージ修正方法の一実施形態の動作を示す一般的なフロー図である。パノラマイメージ５１０からのパノラマイメージピクセル座標５２０および水平方向の特徴ジオメトリ５０５を入力として受信する（囲み８００）。次に、歪みテーブル５５０を生成する（囲み８１０）。この歪みテーブル５５０を使用して、修正されたパノラマイメージピクセル座標５３０の位置を決定する。
【００４８】
以下で説明するように、歪みテーブル５５０の生成は垂直方向のスケーリング、水平方向のスケーリング、および水平方向の歪み修正を含む。垂直方向のスケーリングは、強調された奥行きに関してパノラマイメージ５１０を修正する。強調された奥行きを修正するため、遠方のオブジェクトまたはパノラマイメージ５１０の中央にいる人々を、カメラ近傍のオブジェクトまたは人々に対して拡大する必要がある。
【００４９】
パノラマイメージ５１０のアスペクト比を維持するため、水平方向のスケーリングも実施する。詳細には、（ＳＶＵスケーリング関数のような）パラメトリックイメージ歪み関数を使用して水平方向のスケーリングを実施し、パノラマイメージ５１０のそれぞれの垂直走査線に対して新規の幅を生成する。ＳＶＵスケーリング関数が垂直線を垂直に維持する一方、一定量の垂直方向のずれが生じる。視覚的には、これは水平線の傾斜または歪みとして認知される。テーブルまたは部屋の天井のように、背景が水平面をイメージの上端または下端の近くに含むことがよくあり、この場合は歪みが顕著となる可能性がある。
【００５０】
この垂直方向のずれを修正するため、リアルタイムパノラマイメージ修正方法は、水平方向の歪み修正を実施してパノラマイメージ５１０の水平方向の歪みを修正することをさらに含む。一般にこれは、垂直方向のスケーリングの均一性を緩和し、パノラマイメージ５１０内の垂直位置を（例えば垂直走査線に沿って）非線形にスケーリングすることで実現される。垂直方向のスケーリング、水平方向のスケーリング、および水平方向の歪み修正の後、修正されたパノラマイメージ５３０内のピクセルをパノラマイメージ５１０にマップする歪みテーブル５５０が生成される。
【００５１】
歪みテーブル５５０を生成すると、パノラマイメージ５１０を入力として受信する（囲み８２０）。パノラマイメージ５１０を次いでリアルタイムに歪ませ、修正されたパノラマイメージ５３０を生成する。歪みが無いパノラマイメージを生成するために修正パノラマ画像５３０内の各位置に対して見つけるべきパノラマイメージ５１０内のピクセルにおいて、歪みテーブルを確立する。
【００５２】
図８Ｂは、図５Ｂに示すリアルタイムパノラマイメージ修正システム５００Ｂのリアルタイムパノラマイメージ修正方法の一実施形態の動作を示す一般的なフロー図であり、図８Ａに関して説明したものとほぼ同様に動作する。仮想パノラマイメージ５１５からのイメージピクセル座標５２２および水平方向の特徴ジオメトリ５０５を入力として受信する（囲み８００）。次に、歪みテーブル５５０を生成する（囲み８１０）。次いで歪みテーブルを歪みテーブル５５０と連結し、連結された歪みおよびステッチングテーブル（囲み８１５）を生成する。仮想パノラマイメージの生成に用いる入力イメージ集合を入力する（囲み８２０）。次いで連結された歪みおよびステッチングテーブル５５５を使用して、入力イメージ集合の縫合中に修正されたパノラマイメージピクセル座標５３０の位置を決定する（囲み８３０）。次いで修正されたパノラマイメージを出力する（囲み８４０）。
【００５３】
様々なスケーリング手順およびモジュールの詳細を以下でさらに詳述する。
【００５４】
４．１  垂直方向のスケーリング
図９は、図７の７１０で示した垂直方向のスケーリングモジュールの詳細を示すフロー図である。水平方向の特徴ジオメトリ５０５およびパノラマピクセル座標５２０または５２２を入力として受信する（囲み９００）。次に、（ＳＶＵスケーリング関数のような）パラメトリックイメージ歪み関数を曲線集合およびスケーリング係数を用いて決定する。特に、歪み係数とともに（囲み９２０）ソース曲線を特定する（囲み９１０）。これらのソース曲線と歪み係数を用いて、ターゲット曲線を計算する（囲み９３０）。
【００５５】
図１０は２つの曲線集合、即ち（１）ソース曲線、および（２）ターゲット曲線による歪み関数の決定を示す。本発明の１態様では、ユーザがソース曲線を単純なユーザインターフェースを通して入力する。これらのソース曲線はパラメータをパラメトリックイメージ歪み関数に与える。ユーザインターフェースを通してユーザに２つの三次曲線を定義するよう求める。これらの２つのソース曲線は、人々の頭部の上端、テーブル端のような共通（実世界）の水平方向の特徴を定義する。図１０に示すように、上部ソース曲線Ｓｔと下部ソース曲線Ｓｂを特定する。図１０と図４を比較することで、パノラマに対するソースおよびターゲット曲線を計算するためには上方および下方ソース曲線の４つの異なる部分を定義し、全体のパノラマイメージに対してソース曲線を定義しなければならないことが分かる。
【００５６】
ソース曲線を手動で指定するのではなく、例えば会議卓および会議参加者の頭部の上端に接触する平面のような水平方向の特徴ジオメトリからソース曲線を自動的に決定することができる。会議卓が長方形であると仮定する。テーブルの幅Ｗおよび長さＬ、カメラの高さｈ、カメラの焦点距離ｒ、およびカメラの方位θを知ると、緑のソース曲線を計算することができる。焦点距離ｒおよびカメラの高さｈは、カメラが製造段階で分かる。テーブルの寸法は設置中にユーザが与えることができる。図１１はテーブル端の筒状フィルムへの投影を示す図である（標準的なカメラ方位を仮定）。以下は、円筒状のイメージ上のテーブル境界を表す下方ソース曲線の４つの部分に対する式である。
【００５７】
【数１】
2008536238.tif 000003
【００５８】
同様に、以下は、円筒状のイメージ上の人々の頭部の上端に接触する平面を表す上方ソース曲線の４つの部分に対する式であり、ｈ’はカメラから会議参加者の頭部の上端の平面への距離を表す。
【００５９】
【数２】
2008536238.tif 000004
【００６０】
歪み係数αをユーザが選択することも可能であり、歪み係数αはイメージが歪められる程度を決定する。歪み係数αは０と１との間にあり、α＝０は歪み無しで、α＝１は最大の歪みである。概念的には、α＝０と指定するとイメージに影響を及ぼさず、α＝１と指定するとソース曲線上のピクセルが端点間の線に引き寄せられる。一般に、理想的な歪み係数は０と１のほぼ中間にある。
【００６１】
ソース曲線と歪み係数が指定されると、ターゲット曲線を計算することができる（囲み９３０）。ｙ＝Ｓｔ（ｘ）およびｙ＝Ｓｂ（ｘ）をそれぞれ上部および下部ソース曲線の式とする。（ソース曲線上の点の移動先である）２つのターゲット曲線をソース曲線とαとにより決定する。詳細には、上部ターゲット曲線Ｔｔおよび下部ターゲット曲線Ｔｂを定義する。Ｓｔ（ｘ）の端点間で直線の式がｙ＝ｙｔ（ｘ）と定義され、下部ソースの両端を接続する直線の式がｙ＝ｙｂ（ｘ）と定義される場合、上部ターゲット曲線の式はＴｔ（ｘ）＝（１−α）Ｓｔ（ｘ）＋αｙｔ（ｘ）となり、Ｔｂ（ｘ）＝（１−α）Ｓｂ（ｘ）＋αｙｂ（ｘ）となる。
【００６２】
次いで要スケーリング係数ｒ（ｘ）を、ソース曲線とターゲット曲線を用いて計算する（囲み９４０）。特に、図１０に示すように任意の垂直走査線ｘが与えられるとき、Ａ、Ｂがソース曲線との交点を示し、Ａ’、B’がターゲット曲線との交点を示すとする。ＳＶＵスケーリング関数はＡＢをＡ’Ｂ’にスケーリングする。
【００６３】
【数３】
2008536238.tif 000005
【００６４】
とする。
【００６５】
比率ｒ（ｘ）は、水平位置ｘにある垂直走査線に対するメインスケーリング係数である。次いで垂直走査線のパノラマピクセル座標５２０を、メインスケーリング係数ｒ（ｘ）を用いて垂直方向にスケーリングする（囲み９５０）。
【００６６】
４．２  水平方向のスケーリング
アスペクト比を保存するため、パノラマピクセル座標５２０は水平方向にもスケーリングされる。この水平方向スケーリングは同じメインスケーリング係数ｒ（ｘ）を使用する。換言すれば、ちょうど垂直方向のスケーリングの場合のように垂直走査線もメインスケーリング係数ｒ（ｘ）により水平方向にスケーリングし、アスペクト比を保存する。
【００６７】
図１２は、図７に示す水平方向のスケーリングモジュールの詳細を示すフロー図である。垂直にスケーリングしたパノラマピクセル座標を入力として受信する（囲み１２００）。メインスケーリング係数ｒ（ｘ）を使用して、垂直にスケーリングしたパノラマピクセル座標を水平方向にスケーリングする（囲み１２１０）。垂直にスケーリングしたパノラマピクセル座標５２０をスケーリングすると、予備修正イメージの全幅ｗ’は
【００６８】
【数４】
2008536238.tif 000006
【００６９】
となる。ここで、ｗはパノラマ（またはソース）イメージ５１０の幅である。
【００７０】
次に、予備歪みテーブルを生成する（囲み１２２０）。予備歪みテーブルは予備ピクセル座標を含む。予備ピクセル座標は、垂直および水平にスケーリングしたパノラマピクセル座標である。概念的には、予備ピクセル座標を使用して予備修正イメージを構築することができる。従って、パノラマイメージ５１０内の任意のピクセル（ｘ，ｙ）に対して、（ｘ’，ｙ’）が予備修正イメージ内の新規位置を示すとすると、
【００７１】
【数５】
2008536238.tif 000007
【００７２】
となる。
【００７３】
上式はＳＶＵスケーリング関数に対する前方マッピング式である。ＳＶＵスケーリング関数は、全ての場所で完全に均一なスケーリングではない。全ての場所で完全に均一である唯一の関数は、均一グローバルスケーリング関数であることは容易に証明できる。
【００７４】
ＳＶＵスケーリング関数は、汎用円柱面への投影と同様である。しかしながら、そのような単純な投影によるスケーリングは局所的に均一とならない。局所的に均一なスケーリングが望ましく、このように局所的に均一なスケーリングが行われないため予備修正イメージ内のオブジェクトが伸張されたように見える。
【００７５】
４．３  水平方向の歪み修正
パノラマピクセル座標５２０を垂直および水平方向にスケーリングすると、結果の予備歪みテーブルが水平方向の歪みに対して修正される。（ＳＶＵスケーリング関数のような）イメージ歪み関数のパラメトリッククラスが垂直線を垂直に維持し、水平線を歪ませるので、水平方向の歪み修正が必要である。この問題を最小限にするため、スケーリングの均一性を緩和し、それぞれの垂直走査線でのスケーリングを非線形に行う。
【００７６】
図１３は、図７に示す水平方向の歪みモジュール７３０の詳細を示すフロー図である。一般に、モジュール７３０は予備歪みテーブル内の予備ピクセル座標をセクションに分割し、そのセクションに対する固有のスケーリング係数に従って垂直方向に各セクションをスケーリングする。スケーリング係数はセクション間で異なってもよく、通常は少なくとも１つのセクションに対して異なる。
【００７７】
詳細には、水平方向の歪み修正モジュール７３０が最初に予備歪みテーブルをセクションに分割する（囲み１３００）。本発明の１態様において、概念的には予備修正イメージを図１４に示すように分割する。図１４は垂直方向のスケーリング関数と、予備修正イメージの３つのセクションへの分割を示す概念図とを示す。図１４においてｙが垂直方向であることに留意されたい。図１４を参照する。第１のセクション１４００を下部ソース曲線Ｓｂと上部ソース曲線Ｓｔとの間で定義する。他のセクションはソース曲線外にあるセクションを含み、それらはソース曲線下方の第２セクション１４１０とソース曲線上方の第３セクション９２０とを含む。
【００７８】
ソース曲線間の第１セクション１３００内に位置する予備ピクセル座標を、メインスケーリング係数ｒ（ｘ）を用いて垂直（ｙ）方向にスケーリングする（囲み１３１０）。この垂直方向へのスケーリングは上述のように実施する。ソース曲線外部のセクション（第２セクション１３１０および第３セクション１３２０）内に位置する予備ピクセル座標は垂直方向に少なめにスケーリングされる。これは最初に２次スケーリング係数を指定することで実施する（囲み１３２０）。２次スケーリング係数ｓは図１４においてメインスケーリング係数ｒ（ｘ）の下方に示してある。次に、ソース曲線外部の他セクション１４１０、１４２０内に位置する予備ピクセル座標を、２次スケーリング係数（囲み１３３０）を用いて垂直方向にスケーリングする。水平方向のスケーリングは同一なままであり（換言すれば、メインスケーリング係数ｒ（ｘ）を用い）、その結果、垂直線の真直度が維持されることに留意されたい。セクション間の連続性を維持するため、平滑化パラメータｗを適用することでセクション間の遷移を行う（囲み１３４０）。平滑化パラメータは垂直方向のスケーリング関数を滑らかにし、垂直方向のスケーリング関数がソース曲線と交差する際に異種のスケーリング係数を滑らかに接続する。
【００７９】
図１０および１４を参照する。図１０に示す垂直線ｘを考える。図１４に示すように、ｇ（ｙ）は、この垂直線上にある任意の点ｙでの垂直方向のスケーリング係数として定義可能な垂直方向のスケーリング関数である。ｇ（ｙ）はｘに従属することに留意されたい。関数ｇ（ｙ）を２つのパラメータ、即ち２次スケーリング係数ｓおよび平滑化パラメータｗにより制御する。ソース曲線からｗ／２以上離れた垂直走査線の部分は、ソース曲線間のメインスケーリング係数ｒ（ｘ）、およびソース曲線外部の２次スケーリング係数ｓによりスケーリングされる。３つの定常セグメントを２つの３次スプラインにより[Ｓｔ−０．５ｗ，Ｓｔ＋０．５ｗ]において結合する。それぞれの３次スプラインは両端で値ｓおよびｒ（ｘ）を取り、両端で傾きが０となる。
【００８０】
平滑化パラメータｗはソース曲線での連続性を制御する。例えば、背景がソース曲線で不連続な場合、非常に小さいｗを選択して目立った不自然さがないようにすることができる。ｓ＝ｒ（ｘ）である特殊な場合、ｇ（ｙ）は一定となり、これは予備修正イメージ内に新規ピクセル位置を導出する際に仮定したことである。水平方向の歪み修正関数を予備歪みテーブルに適用すると、修正されたパノラマイメージ５３０内にパノラマピクセル座標の位置を含む歪みテーブル５５０が生成される（囲み１３５０）。次いで歪みテーブル５５０を出力として送信する（囲み１３６０）。歪みテーブルは、パノラマイメージ５１０からの修正されたパノラマイメージ５３０の構築に使用する。
【００８１】
４．４  パノラマイメージ誤認知の修正
ＳＶＵスケーリング関数は、奥行き誤認知の問題の修正を支援する。対称ＳＶＵスケーリング関数をパノラマイメージの表示に用いて、これを実現する。下部ソース曲線は上部ソース曲線の鏡像である。ソース曲線はイメージの隅を通り、中央の垂直走査線で最小（または最大）値を有する。１つ目のパラメータが中心点の高さを指定し、第２のパラメータは上述の歪み係数αである。
【００８２】
４．５  連結された歪みおよびステッチングテーブル
前述のように、歪みテーブルを、イメージのパノラマイメージへの縫合に用いるステッチテーブルと連結することができる。例えば一実施形態において、円形会議卓に対し、複数カメラから撮影したイメージを縫合することで会議室の円筒図法を生成する。ステッチャは、カメライメージをパノラマイメージ上にマップするステッチテーブルを使用する。ステッチテーブルは一般に、工場較正中にカメラ製造者により工場で生成される。テーブルはパノラマ内の各ピクセル（ｘ，ｙ）に対して以下の情報を含む。
【００８３】
（ｘ，ｙ）−パノラマピクセル座標
（ｕ１，ｖ１）−カメラ１に対するイメージピクセル座標
（ｕ２，ｖ２）−カメラ２に対するイメージピクセル座標
カメラ１−メインソースカメラ
カメラ２−（ｘ，ｙ）が重複領域内にある場合の第２ソースカメラ
Ｓ（ｘ，ｙ）がピクセル（ｘ，ｙ）でのステッチャテーブルエントリを示すとする。即ち、Ｓ（ｘ，ｙ）＝｛カメラ１，ｕ１，ｖ１，カメラ２，ｕ２，ｖ２｝である。ステッチャを円筒状から長方形に変換するため、ステッチャテーブルを歪みテーブルと連結する必要がある。（頭の大きさの正規化後の）最終パノラマイメージ上の各ピクセル（ｘ，ｙ）に対して、円筒状パノラマイメージ上のピクセル座標であるテーブルエントリをＷ（ｘ，ｙ）が示すとし、ＴがＳおよびＷの連結テーブルを示すとする。すると、Ｔ（ｘ，ｙ）＝Ｓ（Ｗ（ｘ，ｙ））である。この連結テーブルを取り付け時に予め計算することができる。実行時には、動作はパノラマステッチに対するものと同一である。
【００８４】
５．０  ユーザインターフェース
リアルタイムパノラマイメージ修正システムの一実施形態は、ユーザに対してシステムの動作を簡略化するユーザインターフェース（ＵＩ）を与える。ＵＩは所望の設定を登録するためのコントロールパネル（例えば、タッチパネル式液晶ディスプレイ）、およびスピーカウィンドウを有するディスプレイを含むことができる。スピーカウィンドウ内で、正規化した頭がパノラマイメージから抽出されて表示される。加えて、ＵＩは修正またはスケーリングしたパノラマイメージを表示するディスプレイを含むことができる。そのディスプレイの大きさは適用した歪み係数によって変化し、イメージの周囲に余分なピクセルが追加されている。これによりネットワーク上で修正イメージを標準大きさで送信することができ、様々な大きさおよび解像度のイメージを送信するためにネットワークスタックを再ネゴシエーションする必要がない。
【００８５】
５．１  コントロールパネル
パノラマイメージの撮影に用いる全方向カメラはタッチ式ＬＣＤスクリーンのようなコントロールパネルを有することができ、これは本発明のリアルタイムパノラマイメージ修正システムのセットアップと通常の使用例で用いられる。一実施形態では、テーブル形状と大きさ、カメラ位置および方位および頭の大きさの正規化設定（０−１００％）を登録することができる。テーブル形状と大きさの設定は、円形（これがデフォルトであることが望ましい）、小型長方形（例えば、１０×５’）、大型長方形（例えば、１６×５’）、およびその他（この場合、ユーザにテーブルの長さと幅の指定を要求する）を含むことができる。デフォルトのテーブル設定（円形）は非円形テーブルに対するステッチイメージを生成するが、これらのテーブル種類に対しては頭の大きさを正規化しない。
【００８６】
上述のように、本発明の一実施形態では、コントロールパネルを通して全方向カメラの位置と方位を設定することができる。デフォルトの位置はテーブルの中央である。デフォルトの方位は、テーブルの長端近傍のＬＣＤ読取可能な方向である（即ち、テキストがテーブルの主対称軸に並行である）。カメラの方位は非常に重要である。なぜならば、その方位が不正ならば歪みにより実際に頭の大きさは等価とならず、相違するからである。カメラの方位は目立った影響なしに＋／−１５度だけ変化してもよい。様々な従来方法を使用してセットアップ後のカメラの方位を維持することができる。カメラテーブルの形状および大きさならびに全方向カメラの位置および方位も自動的に決定することができる。
【００８７】
さらに、本発明の一実施形態では、ＬＣＤを通して頭の大きさの正規化パーセンテージを設定することができる。このパラメータは、０％正規化（円柱形）から１００％正規化（長方形）まで連続的な設定を可能とするスライダにより設定することができる。設定を１００％にしない主な理由は、カメラの位置と回転の変化に対して正規化をより堅牢にするためと、一部のユーザが希望する幾分かの遠近歪みを与えるためである。
【００８８】
５．２  スピーカウィンドウ
ＵＩはスピーカウィンドウを有する表示ペインを含むことができる。スピーカウィンドウ内では、パノラマイメージからサブウィンドウを直接コピーすることでパノラマイメージから頭を抽出する。次いでサブウィンドウを独立した表示ペインとして表示する。抽出した頭を非正規化または正規化することができる。この機能は、人がビデオ会議で会話しているとき、特に彼らがカメラから相対的に遠くに離れて位置するときに特に有用である。拡大した頭を抽出することで、人の表情が可視となる。これは彼らが会話しているときに特に有益である。
【００８９】
５．３  パディングパノラマイメージ
加えて、ＵＩはパディングパノラマイメージの表示機能および送信機能を含むことができる。異なる歪み係数を有する表示イメージは異なる大きさに修正されるので、このパディングパノラマイメージは修正イメージ表示の周りに余分なピクセルを追加して標準大きさとする。例えば、黒い帯のような帯をイメージの上端と下端に追加することができる。パディング修正イメージの例を図１５に示す。このパディングパノラマイメージにより、システムはそれぞれの修正されたパノラマイメージに対して一定の大きさと解像度を維持することができる。これにより、様々な大きさおよび解像度のイメージを送信するためにネットワークスタックを再ネゴシエーションする必要なく、それぞれの修正されたパノラマイメージを送信することができる。そのイメージを受信する相手方は次いで、帯を有するかまたは有さないパディングパノラマイメージを表示することができる。
【００９０】
本発明の以上の説明は、例示と説明を目的とするものである。本発明のすべてを説明する意図はなく、本発明を開示した特定の形に限定する意図もない。以上の開示に照らして、多くの変更や変形が可能である。本発明の範囲は、以上に示す本発明の詳細な説明には限定されず、前述の特許請求の範囲によって定義されるものとする。
【図面の簡単な説明】
【００９１】
【図１】会議室内の３６０度パノラマカメラで取得したイメージである。
【図２】本発明のリアルタイムパノラマイメージ修正システムおよび方法で修正した図１内のイメージである。
【図３】１８０度イメージのためのＳＶＵスケーリング関数に対する上方および下方曲線（緑線）である。
【図４】３６０度パノラマイメージのためのＳＶＵスケーリング関数に対する上方および下方曲線（緑線）である。
【図５Ａ】本発明のリアルタイムパノラマイメージ修正システムの一実施形態の一般的概要を示すブロック図である。
【図５Ｂ】連結ステッチ・歪みテーブルを利用する本発明のリアルタイムパノラマイメージ修正システムの別実施形態の一般的概要を示すブロック図である。
【図６】本発明の実行に適したコンピューティング装置を示すブロック図である。
【図７】図５Ａおよび５Ｂに示すリアルタイムパノラマイメージ修正システムの歪みテーブル生成モジュールの詳細を示すブロック図である。
【図８Ａ】図５Ａに示すリアルタイムパノラマイメージ修正システムの動作を示す一般的なフロー図である。
【図８Ｂ】図５Ｂに示すリアルタイムパノラマイメージ修正システムの動作を示す一般的なフロー図である。
【図９】図７に示す垂直方向のスケーリングモジュールの詳細を示すフロー図である。
【図１０】２つの曲線集合による歪み関数の決定を示す。
【図１１】テーブル端の筒状フィルムへの投影を示す図である（標準的なカメラ方位を仮定）。
【図１２】図７に示す水平方向のスケーリングモジュールの詳細を示すフロー図である。
【図１３】図７に示す水平方向の歪み修正モジュールの詳細を示すフロー図である。
【図１４】垂直方向のスケーリング関数と、予備ピクセル座標の３つのセクションへの分割を示す概念図とを示す図である。
【図１５】ネットワーク送信用または表示用の標準大きさに従うように、イメージの周囲に余分なピクセルを追加したパディング修正されたパノラマイメージを示す。
【図５Ａ】
2008536238.tif 000010
【図５Ｂ】
2008536238.tif 000011
【図６】
2008536238.tif 000012
【図７】
2008536238.tif 000013
【図８Ａ】
2008536238.tif 000014
【図８Ｂ】
2008536238.tif 000015
【図９】
2008536238.tif 000016
【図１０】
2008536238.tif 000017
【図１１】
2008536238.tif 000018
【図１２】
2008536238.tif 000019
【図１３】
2008536238.tif 000020
【図１４】
2008536238.tif 000021
【図１】
2008536238.tif 000022
【図２】
2008536238.tif 000023
【図３】
2008536238.tif 000024
【図４】
2008536238.tif 000025
【図１５】
2008536238.tif 000026
【国際調査報告】
2008536238.tif 000027