(57)【特許請求の範囲】
【請求項１】
俯瞰画像を生成するための画像処理装置において、
撮像手段によって撮像された画像から生成された二次元のパノラマ画像を表示させる表示手段と、
前記表示されたパノラマ画像上において、ユーザによって指定された、実空間のコーナー部分に対応する複数の点の位置情報を取得する取得手段と、
前記取得手段が取得した前記位置情報に基づいて、前記撮像手段の撮像範囲に対応する三次元の球面座標上に前記複数の点を配置する配置手段と、
前記球面座標上に配置された前記複数の点を頂点とする立体形状が前記実空間に対応する立体形状になるように、前記球面座標における前記複数の点の位置を補正する補正手段と、
前記補正手段の補正結果に基づいて、前記撮像手段が撮像した撮像画像を変形することにより、前記実空間に対応する立体形状を俯瞰する俯瞰画像を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項２】
前記実空間に対応する立体形状は、直方体とであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
複数の立体形状についての情報を記憶する記憶手段と、
前記複数の立体形状のうちから前記実空間に対応する立体形状を選択する選択手段と
を有することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記選択手段は、前記複数の点の数に基づいて前記実空間に対応する立体形状を選択することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記生成手段は、前記補正手段が位置を補正した点をつないで構成される立体形状の各面に対応して、前記実空間における領域の撮像画像を変形することにより前記俯瞰画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記俯瞰画像における前記撮像手段の位置を示す画像を前記俯瞰画像上に表示させる表示制御手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記表示制御手段は、前記撮像手段の撮像方向を示す前記画像を前記俯瞰画像上に表示させることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記生成手段は、前記俯瞰画像として、撮像装置の撮像位置と異なる仮想的な視点から撮影した様子を表す画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記生成手段が生成した前記平面画像をネットワークを介して前記撮像手段に送信する送信手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
俯瞰画像を生成するための画像処理方法において、
撮像手段によって撮像された画像から生成された二次元のパノラマ画像上において、ユーザによって指定された、実空間のコーナー部分に対応する複数の点の位置情報を取得する取得ステップと、
前記取得ステップにおいて取得した前記位置情報に基づいて、前記撮像手段の撮像範囲に対応する三次元の球面座標上に前記複数の点を配置する配置ステップと、
前記球面座標上に配置された前記複数の点を頂点とする立体形状が前記実空間に対応する立体形状になるように、前記球面座標における前記複数の点の位置を補正する補正ステップと、
前記補正ステップにおける補正結果に基づいて、前記撮像手段が撮像した撮像画像を変形することにより、前記実空間に対応する立体形状を俯瞰する俯瞰画像を生成する生成ステップとを有することを特徴とする画像処理方法。
【請求項１１】
請求項１ないし９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
撮像装置が撮像した画像を変形して、所定の立体形状に対応する画像を生成するための画像処理技術に関する。
【背景技術】
【０００２】
従来、撮像装置が被写体の周囲を撮像した撮像画像を変形し、当該被写体を撮像装置位置と異なる仮想的な視点から俯瞰した様子を表す俯瞰画像を生成する技術が知られている。
【０００３】
特許文献１には、車両の下方を撮像する車載撮像装置によって撮像された画像を変形して、車両上部に設定された仮想的な視点から車両を見下ろした様子を表す俯瞰画像を生成する技術が開示されている。
【０００４】
特許文献１には、立体形状を有する仮想投影面を設定し、実際の車載撮像装置が撮像した撮像画像の各画素をその仮想投影モデルに投影することにより俯瞰画像を生成することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１３７６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、車載撮像装置に映った被写体が路面であるか、壁などであるかを区別せずに画像の変形を行う。特許文献１では、車載撮像装置が撮影した被写体は全て路面であることを前提に画像の変形を行う。従って、車載撮像装置が撮像した撮像画像に壁などの画像が映っている場合、変形後の俯瞰画像において、路面の画像は歪みの少ない状態で表示される。しかし、壁の画像についても路面と同様の画像処理が行われてしまうため、変形後の壁の画像の形状が歪む場合があった。
【０００７】
本発明では、撮像装置が撮像した画像を変形して立体形状に対応する画像を生成する場合に、撮像画像中の被写体がユーザの所望の形状で表されるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、俯瞰画像を生成するための画像処理装置において、撮像手段によって撮像された画像から生成された二次元のパノラマ画像を表示させる表示手段と、前記表示されたパノラマ画像上において、ユーザによって指定された、撮像手段を含む実空間のコーナー部分に対応するにおける所定の複数の点の位置情報を取得する取得手段と、前記取得手段が取得した前記位置情報に基づいて、前記撮像手段の撮像範囲に対応する三次元の球面座標上に前記複数の点を配置する配置手段と、
前記球面座標上に配置された前記複数の点を頂点とする立体形状が所定の前記実空間に対応する立体形状になるように、前記球面座標における前記複数の点の位置を補正する補正手段と、前記補正手段の補正結果に基づいて、前記撮像手段が撮像した撮像画像を変形することにより、から前記所定の実空間に対応する立体形状を俯瞰するに対応する平面俯瞰画像を生成する生成手段とを有することを特徴とする。
【発明の効果】
【０００９】
このようにして、撮像装置が被写体を撮像した画像を変形して、ユーザの所望の形状で表されるようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の画像処理システムを説明するためのブロック図。
【図２】画像生成処理の流れを示すフローチャート。
【図３】被写体と撮像装置１１０の設置状態の例を示す図。
【図４】撮像装置１１０の撮像範囲を表すパノラマ画像を示す図。
【図５】パノラマ画像上で部屋の隅の位置を指定した様子を示す図。
【図６】球面座標Ｓ上に配置された点ｐ１からｐ８を示す図。
【図７】球面座標Ｓ上に配置された点ｐ５、部屋の隅７０１との位置関係を示す図。
【図８】点ｐ１からｐ８を結び、生成した立体形状８００を示す図。
【図９】点ｐ１からｐ８を結んでできる面ｉの内角が成す、二つのベクトルを示す図。
【図１０】変形後の立体形状１０００に撮像画像を投影した様子を示す図。
【図１１】立体形状１０００に基づいて生成した俯瞰画像１１００を示す図。
【図１２】Ｌ字状の部屋に撮像装置１１０が設置されている様子を示す図。
【図１３】Ｌ字状の部屋を表すパノラマ画像において部屋の隅の位置を指定した様子を示す図。
【図１４】点ｐ１１、ｐ１２、ｐ１３、ｐ１７、ｐ１８、ｐ１９、ｐ２０、ｐ２４を結び生成される立体形状１４００を示す図。
【図１５】点ｐ１４、ｐ１５、ｐ１６、ｐ１７、ｐ２１、ｐ２２、ｐ２３、ｐ２４を結び生成される立体形状１５００を示す図。
【図１６】変形後のＬ字状の立体形状１６００に撮像画像を投影した様子を示す図。
【図１７】立体形状１６００に基づいて生成した俯瞰画像１７００を示す図。
【図１８】円柱形状の部屋の俯瞰画像の生成処理について説明するための図。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態を添付の図面に基づいて詳細に説明する。以下の実施形態では、部屋の内部を撮像した撮像画像を変形して、俯瞰画像を生成する例について説明する。俯瞰画像は、撮像装置１１０の撮像位置と異なる仮想的な視点から被写体を撮影した様子を表す画像である。変形後の画像は必ずしも被写体を俯瞰した俯瞰画像である必要はなく、任意の視点から被写体を見た場合の様子を表す画像とすることができる。
【００１２】
（実施形態１）
本実施形態では、直方体形状の部屋の内部を撮像した撮像画像を変形して、部屋の天井から部屋を見た様子を表す画像を生成する例について説明する。
【００１３】
本実施形態では、図３に示されるように、部屋の天井に撮像装置１１０が設置されている場合について説明する。本実施形態では、図４の例に示されるパノラマ画像を変形して、図１１の例に示される俯瞰画像を生成する例について説明する。図４は撮像装置１１０が撮像方向を変更して撮像した複数の撮像画像を合成して生成したパノラマ画像である。
【００１４】
本実施形態では、撮像装置１１０は撮像方向をパン方向及びチルト方向に動作させることにより、パン方向に３６０度の範囲の撮像画像を取得できるものとする。撮像装置１１０は必ずしもパン方向に３６０度回転できる駆動機構を有する必要はなく、パン駆動、及び、チルト駆動を併せて駆動させることによりパン方向に３６０度の範囲の撮像画像を取得できるものであればよい。例えば、撮像装置１１０について、パン方向の可動範囲が１８０度であり、チルト方向の可動範囲が１８０度であれば、パン方向に３６０度の範囲の撮像画像を取得することができる。このような構成の場合、パン駆動機構による駆動だけでは、パン２７０度の方向を撮影することができない。しかし、まずパン駆動機構によりパン９０度の方向に撮像方向を駆動し、その後、チルト駆動機構により１８０度チルト駆動することによって、パン２７０度の方向を撮影することができる。
【００１５】
本実施形態では、撮像装置１１０が取得した撮像画像を合成して、パン方向に３６０度の範囲を表すパノラマ画像を生成する。そして、生成したパノラマ画像においてユーザが指定した点、或いは、パノラマ画像から撮像装置１１０が自動的に検出した点のパノラマ画像における位置を示す情報を取得する。
【００１６】
これに限らず、撮像装置１１０が設置されている実空間における所定の点の位置を取得することができるものであればよい。所定の点とは例えば、撮像装置１１０を含む部屋の隅部（コーナー部）である。パノラマ画像を用いる場合に限らず、予め撮像装置１１０が保持している画像であって撮像装置１１０の周囲の状況を示すマップ画像であってもよい。あるいは、撮像装置１１０の撮像範囲を示すパノラマ画像以外の画像であってもよい。
【００１７】
実施形態１における画像処理システムの構成について、図１（ａ）を用いて説明する。撮像装置１１０は、撮像部１１１が撮像した撮像画像をネットワーク１５０を介してクライアント装置１２０に送信する。本実施形態では、撮像装置１１０が撮像部１１１を内蔵する場合について説明するが、これに限らない。撮像装置１１０に替えて、撮像部１１１を有する外部の撮像装置から撮像画像を受信し、受信した撮像画像をクライアント装置１２０に中継する情報処理装置であってもよい。
【００１８】
クライアント装置１２０は、撮像装置１１０から受信した撮像画像を表示装置１４０に表示させる。またクライアント装置１２０は、入力装置１３０によって入力された指示に応じて、撮像部１１１の撮像方向や画角等を制御するための制御信号を撮像装置１１０にネットワーク１５０を介して出力する。クライアント装置１２０は例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）とすることができる。あるいは、タブレット端末、スマートフォン等の携帯用端末とすることができる。
【００１９】
表示装置１４０は、クライアント装置１２０から受信した画像を表示する。なお表示装置１４０は、クライアント装置１２０と一体として構成されることとしてもよい。
【００２０】
入力装置１３０は、ユーザ操作に応じた信号をクライアント装置１２０に入力する。入力装置１３０は例えば、マウスやキーボードなどとすることができる。入力装置１３０はクライアント装置１２０と一体として構成されることとしてもよい。たとえば、タブレット端末のタッチパネルなどによって、ユーザ操作に応じた信号が後述の入力部１２１に入力されることとしてもよい。
【００２１】
ネットワーク１５０は、例えば、インターネットや有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、又は、アナログケーブル等により構成することができる。ネットワーク１５０は、複数のルータ、スイッチ、ケーブル等から構成され、その通信規格、規模、構成を問わない。ＬＡＮの通信規格として、例えばＥｔｈｅｒｎｅｔ（登録商標）等を用いることができる。ネットワーク１５０には複数の撮像装置１１０、又は、複数のクライアント装置１２０が接続されることとしてもよい。
【００２２】
次に、撮像装置１１０の構成について説明する。撮像部１１１は、レンズユニット等により構成される光学系と、撮像素子とを有する。撮像部１１１は、光学系の光軸と撮像素子との交点を撮像中心として撮像素子上に撮像を行う。撮像素子は、ＣＭＯＳ（ＣｏｍｐｌｅｍｅｎｔａｒｙＭｅｔａｌ‐Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）あるいはＣＣＤ（Ｃｈａｒｇｅｄ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等の撮像素子とすることができる。撮像素子は光学系によって結像された被写体の像を画像信号に変換する。撮像部１１１は、後述の駆動制御部１１３の指示に応じてレンズユニットを動作させて焦点距離（ズーム倍率）を変化させることにより、カメラの画角を変更することができる。ここで本実施形態における画角とは、撮像部１１１が任意のある撮像方向を撮像している場合に撮像装置１１０が撮像する範囲を表す。例えば本実施形態の画角とは、撮像部１１１が矩形の撮像画像を出力する場合の縦の長さ及び横の長さに対応する。あるいは、矩形の撮像画像の縦の長さ及び横の長さの両方を取得しなくても、縦と横のアスペクト比が決まっている場合には、当該撮像画像の対角線の長さにより画角を特定することができる。
【００２３】
処理部１１２は撮像部１１１によって撮像された画像信号の処理を行う。処理部１１２は、例えば、撮像部１１１によって撮像された画像の符号化を行う。符号化方式として例えば、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）を用いることができる。または、符号化方式として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下Ｈ．２６４）を用いることができる。あるいは符号化方式として、ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ符号化方式）を用いることができる。ただし符号化方式はこれらに限らない。また、処理部１１２は複数の符号化方式の中から符号化方式を選択して符号化を行うこととしてもよい。
【００２４】
駆動制御部１１３は、撮像部１１１の撮像方向、および、画角を変更させる制御を行う。本実施形態では、駆動制御部１１３が撮像部１１１の撮像方向をパン方向、チルト方向に変更でき、画角（ズーム）を変更することができる場合について説明するが、これに限らない。撮像部１１１が画角を変更する機能を有さなくても、本発明の効果を奏することができる。
【００２５】
通信制御部１１４は、処理部１１２が処理を行った撮像画像をクライアント装置１２０へ送信する制御を行う。また通信制御部１１４は、クライアント装置１２０から撮像装置１１０に対する制御命令を受信する。
【００２６】
制御部１１５は、撮像装置１１０の各構成の動作を制御する。本実施形態では、制御部１１５は、クライアント装置１２０から受信した命令を解釈して撮像装置１１０の各構成の動作を制御する。制御部１１５は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサとすることができる。制御部１１５がプロセッサとして構成される場合、例えば制御部１１５は、後述の記憶部１１６に記憶されたプログラムを実行することにより撮像装置１１０の各構成を制御する。
【００２７】
記憶部１１６は、撮像装置１１０の各種設定値およびデータを保持する。記憶部１１６は、制御部１１５がプロセッサで構成される場合には、制御部１１５が実行するためのプログラムを保持する。記憶部１１６は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリとすることができる。あるいはＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記録媒体であってもよい。また記憶部１１６は、フラッシュメモリやメモリカード等のリムーバブルメディアとしてもよい。
【００２８】
次にクライアント装置１２０の構成について説明する。入力部１２１は、入力装置１３０から撮像装置１１０を制御するための信号を受け付けて、クライアント装置１２０に入力する。通信制御部１２２は撮像装置制御入力部が受け付けたユーザ入力を撮像装置１１０へ送信する。さらに撮像装置１１０から撮像画像を受信する。表示制御部１２６は通信制御部１２２が受信した撮像画像を表示装置１４０へ出力する。さらに後述する生成部１２７で生成した俯瞰画像を表示装置１４０へ出力する。
【００２９】
取得部１２５は、撮像部１１１の撮像範囲を表す平面における複数の点の位置情報を取得する。例えば取得部１２５は、パノラマ画像を表す二次元座標における複数の点の座標値を入力装置１３０から取得する。パノラマ画像は、撮像装置１１０が撮像方向を変更して撮像可能な撮像範囲を二次元で表す画像である。例えば、パノラマ画像は撮像装置１１０が撮像方向を変更して撮像した複数の撮像画像を合成して生成することができる。本実施形態において、パノラマ画像を生成する主体は撮像装置１１０であっても、クライアント装置１２０であってもよい。
【００３０】
表示装置１４０に表示されるパノラマ画像の例を図４に示す。ユーザは入力装置１３０を用いて表示装置１４０に表示されたパノラマ画像上の複数の点を指定する。例えば、ユーザはマウス（入力装置１３０）を操作して、ディスプレイ（表示装置１４０）に表示されているパノラマ画像でマウスポインタを移動させ、所望の点でマウスをクリックすることにより、パノラマ画像上の点を指定することができる。あるいは、タッチディスプレイ（表示装置１４０、兼、入力装置１３０）に表示されたパノラマ画像上の位置でユーザがタッチ操作を行うことによりパノラマ画像上の位置を指定することとしてもよい。取得部１２５は、このようにして指定されたパノラマ画像上の点の位置を示す座標を取得する。
【００３１】
パノラマ画像上の複数の点が指定された様子を図５に示す。図５の点５０１から５０８は、パノラマ画像上でユーザが指定した点である。図５の例では、直方体形状の部屋の８つの頂点に対応するパノラマ画像上の位置をユーザが指定した様子を示す。取得部１２５は、パノラマ画像上の位置を表す二次元の座標における点５０１から点５０８の夫々の座標を取得する。
【００３２】
配置部１２４は、取得部１２５が取得した位置情報に基づいて、撮像部１１１の撮像範囲に対応する球面座標上に、指定された複数の点を配置する。この球面座標は、撮像装置１１０が撮像方向を示す三次元の座標である。図７に示すように、撮像装置１１０を中心とする球面座標Ｓを設定することにより撮像装置１１０の撮像方向を表すことができる。例えば、図７に示した部屋の角７０１を撮影するための撮像方向は、球面座標上の位置ｐ５によって表される。
【００３３】
球面座標Ｓについて、図６（ａ）を用いて詳細を説明する。図６（ａ）に示した球面座標Ｓにおいて、原点Ｏは撮像装置１１０の位置を表す。球面座標Ｓの球面は、撮像装置１１０が撮像可能な撮像方向を示す点の集合である。図６（ａ）の例では半球であるが、半球に限らず、球などとしてもよい。球面座標Ｓ上の位置は、例えば、パン角度、及び、チルト角度によって表すことができる。
【００３４】
図６（ａ）の例において、球面座標Ｓ上の点Ａは、撮像装置１１０の撮像方向の基準方向（いわゆる、ホームポジション）を示す。点Ｂは撮像装置１１０の現在の撮像方向を示す。点Ｂは、点Ａからパン方向に移動する角度φ、及び、点Ａからチルト方向に移動する角度９０−θによって表すことができる。すなわち、点Ａの座標を（ｐａｎ，ｔｉｌｔ）＝（０，０）とすると、点Ｂの座標は（ｐａｎ，ｔｉｌｔ）＝（φ、９０−θ）と表すことができる。
【００３５】
このようにして、球面座標Ｓにおける座標値によって撮像装置１１０の撮像方向を表すことができる。パン角、及び、チルト角によって撮像方向を表す場合に限らず、互いに異なる３方向を示す軸（例えば、Ｘ軸、Ｙ軸、及び、Ｚ軸）上の位置を表す座標値（例えば、Ｘ座標、Ｙ座標、及び、Ｚ座標）により撮像装置１１０の撮像方向を表してもよい。
【００３６】
配置部１２４は、図５に示したパノラマ画像上で指定された点５０１から５０８を、球面座標Ｓ上に配置する。配置部１２４は、パノラマ画像上で指定された点を、当該指定された点が示す撮像方向に対応する球面座標Ｓ上の位置に配置する。
【００３７】
図４、及び、図５において示したパノラマ画像において縦方向はチルト方向を示し、横方向はパン方向を示す。このように、パノラマ画像上の点の位置は、撮像装置１１０のパン角、及び、チルト角によって表すことができる。配置部１２４は、例えば、パノラマ画像上で指定された点の位置をパン角、及び、チルト角で表すことにより、球面座標Ｓ上の対応する位置に指定された点を配置することができる。指定された点５０１から５０８が球面座標Ｓ上に配置された様子を図６（ｂ）に示す。図５の点５０１から点５０８は、図６（ｂ）のｐ１からｐ８に対応する。
【００３８】
補正部１２３は、球面座標Ｓ上に配置された複数の点を頂点とする立体形状が所定の立体形状になるように、球面座標Ｓにおける複数の点の位置を補正する。図８に示すように球面座標Ｓに配置した点をつなぐことにより形成される立体形状を変形して、所定の立体形状になるように、点ｐ１からｐ８の球面座標Ｓにおける位置を補正する。本実施形態では、点ｐ１からｐ８をつないで形成される立体形状が、撮像装置１１０を囲う部屋の形状に対応する立体形状となるように補正する例について説明する。本実施形態では、被写体である部屋の形状は直方体である。補正前の点ｐ１からｐ８をつないで形成した立体形状の例を図８に示す。配置部１２４は、図８に示される立体形状が、図１０に示したｐ″１からｐ″８で表される形状に対応した形状となるように、点ｐ１からｐ８の球面座標Ｓにおける位置を補正する。点ｐ１からｐ８の位置を補正する方法の詳細については図２のフローチャートを用いて後述する。
【００３９】
生成部１２７は、補正部１２３の補正結果に基づいて、撮像部１１１が撮像した撮像画像から所定の立体形状に対応する平面画像を生成する。本実施形態において生成部１２７は、補正部１２３によって補正された点ｐ１からｐ８の三次元座標に基づき撮像画像を変形し、俯瞰画像を生成する。生成部１２７によって生成された俯瞰画像の例を図１１に示す。ｑ１からｑ８はそれぞれ、補正後の点ｐ１からｐ８に対応する。生成部１２７は、パノラマ画像の画素データを、補正後の点ｐ１からｐ８をつないで形成される立体の平面にそれぞれ配置して俯瞰画像を生成する。例えば、図５のパノラマ画像において、点５０２、５０３、５０６、及び、５０７によって囲われる平面の画像が、図１１のｑ２、ｑ３、ｑ６、及び、ｑ７によって囲われる平面に収まるように画像の形状及び位置を補正する。図１１が表す直方体のその他の面についても同様に、パノラマ画像上の画像データを補正して生成する。以上のようにして、パノラマ画像から俯瞰画像を形成することができる。
【００４０】
またクライアント装置１２０は、図１（ｂ）に示したように構成することとしてもよい。すなわち、取得部１２５、配置部１２４、補正部１２３、及び、生成部１２７が行う処理を制御部１２８が実行することとしてもよい。
【００４１】
制御部１２８は、クライアント装置１２０の各構成の動作を制御する。本実施形態では、制御部１２８は、記憶部１２９に記憶されたプログラムを読み出して実行することにより、クライアント装置１２０の各構成の動作を制御する。制御部１２８は、例えばＣＰＵ等のプロセッサとすることができる。
【００４２】
記憶部１２９は、クライアント装置１２０に入力された値およびデータを保持する。記憶部１２９は、制御部１２８がプロセッサとして構成される場合には、制御部１２８が実行するためのプログラムを保持する。記憶部１２９は、例えば、ＲＡＭやＲＯＭ等のメモリとすることができる。あるいはＨＤＤ等の記録媒体であってもよい。また記憶部１２９は、フラッシュメモリやメモリカード等のリムーバブルメディアとしてもよい。
【００４３】
次に、本実施形態にかかるクライアント装置１２０が俯瞰画像を生成する処理を図２（ａ）及び（ｂ）のフローチャートを用いて説明する。クライアント装置１２０の制御部１２８がプロセッサを内蔵する形態では、プロセッサはコンピュータとして機能する。図２（ａ）及び（ｂ）に示した処理は、図２（ａ）及び（ｂ）に示される手順をプロセッサが記憶部１２９に格納されたプログラムを展開して実行することにより実現される。あるいは、図２（ａ）及び（ｂ）に示す処理の一部又は全体をハードウェアが行うこととしてもよい。
【００４４】
まず、クライアント装置１２０は、撮像装置１１０の撮像範囲を示す画像上で指定された点の位置情報を取得する（Ｓ２０１）。たとえば、パノラマ画像上で指定された点の位置を示す座標を取得する。たとえば、直方体形状の部屋の内部の様子を表すパノラマ画像のうち、直方体形状の頂点（部屋の隅）を示す位置をユーザが指定する。ステップＳ２０１において表示制御部１２６は、立体形状を有する被写体の頂点の位置をパノラマ画像上で指定するようにユーザに促すメッセージを表示装置１４０に表示させる制御を行うこととしてもよい。
【００４５】
窓と扉が存在する部屋において、部屋の内部に撮像装置１１０が設置されている状況を横側から見た図を図３に示す。図３に示される例において撮像装置１１０がパン、チルト方向に撮像方向を駆動させて撮像した複数の撮像画像をつなぎ合わせて生成したパノラマ画像を図４に示す。このパノラマ画像は、撮像装置１１０が撮像可能な撮像可能範囲を表す。図４に示されるパノラマ画像は横軸がパン方向に、縦軸がチルト方向に対応しており、パノラマ画像の左上を座標原点とする二次元の座標系４００を定義すると、パノラマ画像上の任意の点は、ｐａｎとｔｉｌｔの二次元座標で表すことができる。例えば、図４中の任意の点４０１は、（ｐａｎ，ｔｉｌｔ）＝（ｘ１，ｙ１）として表すことができる。
【００４６】
表示装置１４０に表示されるパノラマ画像に映る部屋の隅の位置を示した図を図５に示す。本実施形態では直方体で表現可能な部屋を被写体としているため、パノラマ画像には八つの部屋の隅が映る。図５に示した点５０１から５０８が本実施形態で説明する部屋の隅である。ユーザが入力装置１３０を制御してパノラマ画像上の点５０１から５０８をクリックして指定する。クライアント装置１２０の取得部１２５は、ユーザがクリックした位置に基づいて、パノラマ画像に映る部屋の隅５０１から５０８の二次元座標を取得する。
【００４７】
本実施形態では、図４に示す通り、横軸にパン、縦軸にチルトが対応するパノラマ画像を使用するが、撮像装置１１０の撮像範囲を表す画像はこれに限らない。例えば、魚眼レンズを用いて撮像した広角画像でもよい。
【００４８】
また本実施形態では、ユーザの操作に基づいて二次元座標の取得を行ったが、これに限らない。撮像装置１１０又はクライアント装置１２０がパノラマ画像から部屋の隅を自動的に検出することとしてもよい。
【００４９】
たとえば、部屋の隅に特定の形状もしくは特定の色のマーカーを設置した後に撮像装置１１０に部屋の内部を撮影させ、撮影した撮像画像から部屋の隅の位置を検出する。撮像装置１１０又はクライアント装置１２０は、撮像画像又は当該撮像画像から生成されたパノラマ画像からマーカーを検出することにより、撮像画像又はパノラマ画像における部屋の隅の位置を取得することができる。このマーカーは所定の色又はパターンを有する被写体である。取得部１２５は、所定の色又はパターンを有する被写体の位置情報を取得する。部屋の隅の位置を撮像装置１１０が検出する場合には、クライアント装置１２０は撮像装置１１０から部屋の隅の位置の情報を取得する。
【００５０】
部屋の隅の位置の検出の方法としては例えば、マーカーを部屋の隅に設置して撮影した撮像画像をラスタースキャンすることであらかじめクライアント装置１２０に登録してある前述のマーカーの情報（パターン形状）とパターンマッチングする方法がある。また、例えば赤色のマーカーを部屋の隅に設置し、撮像画像をラスタースキャンしながらＲＧＢの値に基づく閾値処理によって赤色のマーカーを検出してもよい。このとき、マーカーの色は赤色に限らず、他の色でもよい。
【００５１】
あるいは、マーカーを設置せずに部屋の隅を自動的に検出することとしてもよい。例えばパノラマ画像から少なくとも３本の線が交差する点を検出し、検出した点を部屋の隅として判定することとしてもよい。また自動的に検出した結果をユーザが確認して、実際に部屋の隅として扱うか否かをユーザが決定できるようにしてもよい。
【００５２】
次に配置部１２４は、ステップＳ２０１で取得した点の二次元座標を、撮像装置１１０の向きを表す球面座標上に配置する。このようにして、ステップＳ１００において取得した位置情報を球面座標上に反映させる（Ｓ２０２）。パノラマ画像上で指定された点の位置をパン角、及び、チルト角を用いて表した位置情報をステップＳ２０１で取得した場合、球面座標Ｓにおける当該パン角、及び、チルト角に対応する位置に、指定された点を配置する。
【００５３】
配置の方法はこれに限らない。たとえば、パノラマ画像上で指定された点の位置情報をパノラマ画像に対応するＸＹ座標平面におけるｘｙ座標によって取得することとしてもよい。この場合、当該ＸＹ座標平面における座標の値を、球面座標Ｓ上の座標に変換するための変換情報を予め記憶部に保持しておいてもよい。パノラマ画像上で指定された点の位置情報を、当該変換情報を用いて球面座標Ｓの座標に変換することにより、指定された点を、球面座標上に配置することとしてもよい。指定された点を球面座標上に配置する方法は特に限定しない。
【００５４】
配置部１２４は、図６（ｂ）に示すように、パノラマ画像上で指定された点に対応する点ｐ１からｐ８を球面座標Ｓ上に配置する。
【００５５】
図７は、球面座標Ｓ、球面座標Ｓ上に配置した点ｐ５、及び、部屋の隅７０１の位置関係を表した図である。図７に示す通り、球面座標Ｓの原点と点ｐ５を結ぶ直線上に、部屋の隅７０１が存在する。つまり、点ｐ５は撮像装置１１０から見た、各部屋の隅７０１の方向を表す。これは、点ｐ５以外の点も同様である。つまり、指定された点の座標の取得（Ｓ２０１）と、取得した座標を球面座標に配置する処理と（Ｓ２０２）を行うことによって、撮像装置１１０から見た各部屋の隅の方向を特定することができる。
【００５６】
また、本実施形態では座標の取得（Ｓ２０１）と、座標を球面座標に配置する処理（Ｓ２０２）にパノラマ画像を使用しているが、これに限らない。例えば、部屋の隅が映るように撮像装置１１０を駆動させ、部屋の隅の位置情報を取得してもよい。部屋の隅を映すように撮像方向を変更させた撮像装置１１０のパン角度、及び、チルト角度と、その撮像方向で撮影した撮像画像における部屋の隅の位置とに基づき、撮像装置１１０が撮像可能な撮像範囲における部屋の隅の位置を特定してもよい。
【００５７】
次に配置部１２４は、球面座標における特定の点の座標値を、三次元座標における座標値に変換する（Ｓ２０３）。球面座標から三次元座標への変換は以下の式（１）を用いる。
【００５８】
【数１】
0006584093.tif 000002
【００５９】
ただし、球面座標Ｓは単位球面を表し、半径は１であるものとする。球面座標における特定の点の座標は、図６（ａ）に示すように（ｐａｎ，ｔｉｌｔ）＝（φ，９０−θ）であるものとする。θは（９０°−特定の点のチルト角）である。また、φは特定の点のパン角である。
【００６０】
本ステップを行うことにより、球面座標Ｓ上の点ｐ１からｐ８の位置を三次元ベクトルｖ１からｖ８で表すことができる。
【００６１】
次にクライアント装置１２０は、補正目標となる立体形状を選択する（Ｓ２０４）。本実施形態では被写体である部屋の形に一致する立体形状として、直方体を所定の立体形状として選択する。補正目標となる立体形状の選択は、配置部１２４が行う。あるいは、補正部１２３が行うこととしてもよい。本実施形態では、所定の立体形状として何を選択するかを、クライアント装置１２０の記憶部１２９が記憶している立体形状のうちからユーザに選択させる。このようにして、ユーザ操作に基づいて、所定の立体形状を選択する。または、取得部１２５がステップＳ２０１において取得した特定の点（部屋の隅）の数に基づいて所定の立体形状を選択してもよい。例えば、特定の点の数が８つなら直方体を選択する。また、たとえば１４個なら実施形態２において図１６を用いて説明するようなＬ字型の立体であると特定してもよい。また、所定の立体形状の選択を行ってから特定の点の位置情報の取得を行ってもよい。また、ステップＳ２０５の立体形状の生成を行った後に補正目標となる立体形状を選択することとしてもよい。
【００６２】
次にクライアント装置１２０は配置部１２４において、点ｐ１からｐ８を結び、立体形状を生成する（Ｓ２０５）。このとき、どの点同士を結ぶかは、ユーザが部屋の隅をクリックする順番で決定してもよいし、マーカーの形状や色で決定してもよい。図８に点ｐ１からｐ８を結び、生成した立体形状８００を示す。
【００６３】
補正部１２３は、三次元ベクトルｖ１からｖ８の大きさを定数倍することにより点ｐ１からｐ８を移動させ、立体形状８００を所定の立体形状へ変形させる（Ｓ２０６）。ここで所定の立体形状とは、ステップＳ２０５において選択した立体形状である。
【００６４】
補正部１２３は、立体形状８００が所定の立体形状になったかを判定する（Ｓ２０７）。所定の立体形状になったと判定した場合はステップＳ２０８の処理へ進む。一方、所定の立体形状になっていないと判定した場合には、ステップＳ２０６の処理を繰り返す。
【００６５】
ステップＳ２０６の変形処理、および、ステップＳ２０７の判定処理の詳細については、図２（ｂ）を用いて後述する。
【００６６】
立体形状８００が所定の立体形状になったと補正部１２３が判定すると、生成部１２７は、変形させた立体形状に基づいて撮像画像を俯瞰画像に変形する（Ｓ２０８）。撮像画像の変形は、変形させた立体形状に撮像画像を投影した後、立体形状の各面を変形することで実現する。立体形状の各面を変形する方法の詳細については、図１０、図１１を用いて後述する。
【００６７】
以上のようにして、クライアント装置１２０は俯瞰画像を生成することができる。
【００６８】
ここで、図２（ａ）のステップＳ２０６における、立体形状の各頂点の移動処理及びステップＳ２０７における判定処理の詳細について、図２（ｂ）および図２（ｃ）を用いて説明する。
【００６９】
図２（ｃ）は、ステップＳ２０６において行われる処理の概念図である。図２（ｃ）は図８の球面座標の面ｐ１ｐ２ｐ３ｐ４についての処理を示す図である。また、図２（ｂ）は処理フローを示す。
【００７０】
図２（ｃ）の上段の図は、球面座標Ｓに点ｐ１、ｐ２、ｐ３、及び、ｐ４が配置されている様子が示されている。
【００７１】
まず補正部１２３は、図２（ｃ）上段に示した図を拡大して、図２（ｃ）中段に示した図を作成する（Ｓ２１１）。図２（ｃ）の中段に示す図ｐ´１ｐ´２ｐ´３ｐ´４は、球面座標Ｓに対応する円の中心Ｏを始点として各点ｐ１、ｐ２、ｐ３、及び、ｐ４を表すベクトルの大きさを所定倍に拡大することによって作成することができる。球面座標Ｓに対応する円も同じ倍率で拡大する。
【００７２】
次に、四角形ｐ´１ｐ´２ｐ´３ｐ´４の頂点のうち一つの頂点を選択する（Ｓ２１２）。次に、選択した頂点の為す角が９０°より大きいか、又は、小さいかを判定する（Ｓ２１３）。選択した頂点の為す角が９０°よりも大きい場合には、頂点の位置を拡大円の外側に新たな点を設定する。例えば、選択した頂点ｐ´２の為す角が９０°より大きい場合、図２（ｃ）下段に示すように、頂点の位置を拡大円の外側に移動させて、新たな点ｑ２を設定する。このとき、頂点ｐ´２の位置は円の中心を始点としｐ´２を示すベクトルの大きさを拡大することにより新たな点を設定する。すなわち、円の中心Ｏと移動前の点ｐ´２を結んだ線の延長線上に移動後の点ｑ２が存在するようにする。
【００７３】
一方、選択した頂点の為す角が９０°未満である場合には、拡大円の内側に新たな点を設定する。例えば、選択した頂点ｐ´４の為す角が９０°未満である場合、図２（ｃ）下段に示すように、頂点の位置を拡大円の内側に移動させて、新たな点ｑ４を設定する。このとき、頂点ｐ´４の位置は円の中心を始点としｐ´４を示すベクトルの大きさを縮小することにより新たな点を設定する。すなわち、円の中心Ｏと移動前の点ｐ´４を結んだ線上に移動後の点ｐ４が存在するようにする。
【００７４】
このように、選択した頂点と、円の中心とを結んだ直線上に移動後の頂点が存在するように頂点の移動を行う。かつ、各辺が直交するように頂点の移動を行う。このようにして、実際の部屋の縦横比と同じ縦横比の長方形を生成することができる。
【００７５】
図２（ｃ）の例では、便宜のため平面における処理を例にとって説明したが、直方体等の立体においても同様である。選択した頂点と、球面座標Ｓの中心とを結んだ直線上に移動後の頂点が存在するように頂点の移動を行う。かつ、各辺が直交するように頂点の移動を行う。このようにして、実際の部屋の縦横高さの比と同じ縦横高さの比の直方体を生成することができる。
【００７６】
補正部１２３は、全ての点の為す角が９０°になったかを判定（Ｓ２１６）する。全ての点の為す角が９０°になっていない場合は、ステップＳ２１２以降の処理を繰り返す。全ての点の為す角が９０°になった場合に処理を終了する。
【００７７】
このようにして、図２（ｃ）下段に示した長方形ｐ″１ｐ″２ｐ″３ｐ″４を得ることができる。この長方形ｐ″１ｐ″２ｐ″３ｐ″４は、図１１に示した俯瞰画像の面ｑ１ｑ２ｑ３ｑ４に対応する。長方形ｐ″１ｐ″２ｐ″３ｐ″４と同様にして生成された長方形をつなぎ合わせて生成される立体は図１０のようになる。また、図２（ｃ）下段に示した長方形ｐ″１ｐ″２ｐ″３ｐ″４に対する原点Ｏの位置は、室内における撮像装置１１０の位置に対応する。
【００７８】
以上のようにして、補正部１２３は、球面座標Ｓに配置した点を結んだ立体形状８００の形状を補正する。
【００７９】
より詳細には、立体形状８００の直方体への変形は、式（２）に示すコスト関数Ｅ（ａ）を最小化するように点ｐ１からｐ８を移動させることにより行うことができる。
【００８０】
【数２】
0006584093.tif 000003
【００８１】
式（２）中のａは三次元ベクトルｖ１からｖ８の係数ａｎ（ｎ＝１，．．．，８）をベクトル化したものである。このとき、点ｐｎの座標はａｎとｖｎの積で表すことができる。
【００８２】
また、式（２）中のｅｉについて図９を用いて説明する。ｅｉは点ｐ１からｐ８を結んだときにできる面ｉの各内角を成す、二つのベクトルの内積の二乗和を表す。ｅｉについて式（３）に示す。
【００８３】
【数３】
0006584093.tif 000004
【００８４】
式（３）中のｊは面ｉの内角を表すインデックスである。また、式（３）中のｉｊｍ（ｍ＝１，２，３）は面ｉの内角ｊを成す二つのベクトルを構成する三つの点を表すインデックスである。ｍ＝２は二つのベクトルの始点となる点を表し、ｍ＝１，３は終点となる点を表す。
【００８５】
ｅｉの値が０に近づくほど面ｉの各内角が９０度に近づくため、面ｉは長方形に近づく。このとき、面１から６それぞれを長方形に近づけることで、直方体を生成することができる。また式（２）中のｄ（ａ）は、点ｐ１からｐ８を結んだときにできる直方体の辺の一つのユークリッドノルムを定数Ｃに近づけるための量である。ｄ（ａ）の計算方法を式（４）に示す。
【００８６】
【数４】
0006584093.tif 000005
【００８７】
ｄ（ａ）の値が０に近づくほど、点ｐ１、ｐ２間の距離が定数Ｃに近づく。またλはコストの重みを調節するパラメータである。
【００８８】
上記二つのコストｅｉ（ａ）とｄ（ａ）を足し合わしたコスト関数Ｅ（ａ）を最小化することにより、定数Ｃで指定した大きさの辺を持つ直方体を生成することが可能になる。
【００８９】
本実施形態では、コスト関数Ｅ（ａ）の最小化に最急降下法を採用するが、この限りではない。非線形関数の最適化アルゴリズムであればいずれでもよい。最急降下法に基づくコスト関数の最小化アルゴリズムは以下に示す通りである。
【００９０】
１．初期値を次のように設定する。ｋ＝１、ａｋ＝［１  １  ．．．  １］Ｔ。
【００９１】
２．式（５）で表す∇Ｅ（ａｋ）を計算する。
【００９２】
【数５】
0006584093.tif 000006
【００９３】
３．変数ａを式（６）に従い更新する。
【００９４】
【数６】
0006584093.tif 000007
【００９５】
４．式（７）を満たす場合、処理を終了する。
【００９６】
【数７】
0006584093.tif 000008
【００９７】
５．ｋ＝ｋ＋１とする。ｋがｋｍａｘでなければ２．に戻る。ｋがｋｍａｘであれば処理を終了する。
【００９８】
上記アルゴリズムについて１．から３．がＳ２０６の変形処理に対応する。また４．、５．がＳ２０７の判定処理に対応する。このとき、変形した立体形状の縦横高さの比は、被写体である部屋の縦横高さの比に一致する。また、立体形状を基準としたときの球面座標Ｓの原点Ｏの位置は、被写体である部屋の内部に設置した撮像装置１１０の位置に対応する。また、本実施形態では定数Ｃ、λ、ε、αはクライアント装置１２０にあらかじめ設定した値を使用したが、この限りでは無く、俯瞰画像を生成する度にユーザに指定させてもよい。
【００９９】
以上のようにしても、補正部１２３は、球面座標Ｓに配置した点を結んだ立体形状８００の形状を補正することができる。
【０１００】
次に、図２（ａ）を用いて説明したＳ２０８の俯瞰画像生成処理について説明する。
【０１０１】
生成部１２７は、ステップＳ２０６において変形させた立体形状に基づいて撮像画像から俯瞰画像を生成する。例えば、生成部１２７は、ステップＳ２０６で変形した後の立体形状の面ｐ″２ｐ″３ｐ″７ｐ″６に撮像画像を投影する。生成部１２７は、面ｐ″２ｐ″３ｐ″７ｐ″６に対応する領域を撮影した撮像画像を投影する。生成部１２７は、点ｐ″２ｐ″３ｐ″７、及び、ｐ″６に対応する点５０２、５０３、５０７、及び、５０６をつないだ撮影領域の撮像画像を、面ｐ″２ｐ″３ｐ″７ｐ″６に投影する。変形後の立体形状の各面に撮像画像を投影した様子を図１０に示す。さらに生成部１２７は、撮像画像を投影した立体形状の各面を変形して図１１に示すような俯瞰画像を生成する。例えば、面ｐ″２ｐ″３ｐ″７ｐ″６投影した撮像画像を変形して、図１１に示す面ｑ２ｑ３ｑ７ｑ６の画像を生成する。
【０１０２】
本実施形態では生成部１２７は、撮像装置１１０が設置されている面ｐ″１ｐ″２ｐ″３ｐ″４には、撮像画像を投影しない。俯瞰画像を生成する際に、天井（面ｐ″１ｐ″２ｐ″３ｐ″４）を通して部屋の内部が確認できるようにするためである。あるいは、面ｐ″１ｐ″２ｐ″３ｐ″４には、他の面の画像が透過して見えるように、透明な（透過度が他の面に投影する撮像画像よりも高い）撮像画像を投影するようにしてもよい。
【０１０３】
このようにして生成部１２７は、補正部１２３が位置を補正した点をつないで構成される所定の立体形状の各面に、該各面に対応する領域を撮像装置１１０が撮影した撮像画像を投影する（例えば、図１０）。そして、生成部１２７は撮像画像を投影した各面の形状を変更することにより所定の立体形状を表す平面画像（例えば、図１１）を生成する。
【０１０４】
立体形状の各面に投影した撮像画像を補正する方法の詳細を図１０、図１１を用いて説明する。図１１中の点ｑ１からｑ８は図１０中の点ｐ″１からｐ″８に対応する点を表す。つまり、図１０中の４点から成る面を図１１中の対応する４点で囲まれた画像へ変形する操作を立体形状の各面で行うことにより、俯瞰画像を生成する。
【０１０５】
また、立体形状を生成する際、被写体である部屋の内部に設置した撮像装置１１０の位置が求まる。そこで表示制御部１２６は、俯瞰画像１１００上に、撮像装置１１０の位置を表す画像１１１０を重畳して表示させることとしてもよい。このようにして、表示制御部１２６は、生成部１２７が生成した平面画像における撮像装置１１０の位置を示す画像を平面画像上に表示させる制御を行う。撮像装置１１０の位置を表す画像１１１０は複数の画像候補のうちからユーザに選択させてもよいし、設置してある撮像装置の機種を判定し、判定した機種に対応する画像を自動で俯瞰画像上に表示してもよい。撮像装置１１０の位置を表す画像１１１０の向きで、撮像装置１１０の撮像方向を表現してもよい。このようにして表示制御部１２６は、撮像装置１１０の撮像方向を示す画像を生成部１２７が生成した平面画像上に表示させる制御を行うことができる。
【０１０６】
立体形状の各面の変形には、式（８）に示す変換を行う。
【０１０７】
【数８】
0006584093.tif 000009
【０１０８】
式（８）中のｐｘ、ｐｙは立体形状の各面を一枚の平面として扱った場合の座標を表し、ｑｘ、ｑｙは俯瞰画像として表示する際の座標である。式（８）中のｈ１１からｈ３２は変換パラメータであり、式（９）を用いて計算することができる。
【０１０９】
【数９】
0006584093.tif 000010
【０１１０】
式（９）中のｐ″ｘ１、ｐ″ｙ１、．．．、ｐ″ｘ４、ｐ″ｙ４は立体形状の各面を一枚の平面として扱った場合の四隅の座標を表し、ｑｘ１、ｑｙ１、．．．、ｑｘ４、ｑｙ４は変換後の四隅の座標をそれぞれ表す。本実施形態では、立体形状の各面を俯瞰画像へ変換した後の点ｑ１からｑ８があらかじめクライアント装置１２０に設定されているものとするが、この限りでは無い。俯瞰画像を生成する度にユーザに入力させてもよいし、部屋の幅、奥行きの比を考慮して自動で設定してもよい。生成された俯瞰画像は表示制御部１２６によって表示装置１４０を介してユーザに表示される。
【０１１１】
本実施形態では立体形状の各面を変形させることにより俯瞰画像を生成したが、この限りではない。立体形状を見下ろす仮想視点を作成し、撮像画像を投影した立体形状をさらに平面に投影することにより俯瞰画像を生成してもよい。
【０１１２】
また本実施形態では俯瞰画像の生成をクライアント装置１２０で生成したが、この限りではなく、撮像装置１１０内で生成してもよい。
【０１１３】
このようにして、撮像装置が被写体を撮像した画像を変形する場合に、変形後の画像において、当該被写体がユーザの所望の形状で表されるようにすることができる。
【０１１４】
（実施形態２）
実施形態２では、被写体である部屋がＬ字状で表現される場合の俯瞰画像の生成方法について説明する。本実施形態では、実施形態１で説明した直方体を二つ生成し、それらを組み合わせることによりＬ字状の立体形状を生成する。
【０１１５】
本実施形態における画像処理システム構成については、実施形態１で説明した内容と同様であるため、説明を省略する。本実施形態における俯瞰画像の生成フローについて、図２（ａ）に沿って説明する。
【０１１６】
まず、本実施形態における部屋の隅を示す点の座標の取得（Ｓ２０１）について、図１２、図１３を用いて説明する。図１２は窓と扉が存在するＬ字状の部屋において、部屋の内部に撮像装置１１０が設置されている状況を横側から見た図である。図１２に示される環境において撮像装置１１０のパン、チルトを駆動させ生成した撮像装置１１０の撮像範囲に対応するパノラマ画像を図１３に示す。図１３に示すパノラマ画像は図４と同様に、パノラマ画像中の任意の点をｐａｎ、ｔｉｌｔの二次元座標で表すことができる。図１３中の点１３０１から１３１４は、被写体であるＬ字状の部屋を二つの直方体の組み合わせで表現した際の、各直方体の頂点を表す。ユーザが入力装置１３０を操作して、パノラマ画像上の点１３０１から１３１４をクリックする事により、取得部１２５は、部屋の隅１３０１から１３１４の二次元座標を取得する。
【０１１７】
次に配置部１２４は、取得部１２５が取得した点１３０１から１３１４を球面座標Ｓ上に配置する（Ｓ２０３）。そして、球面座標Ｓにおける各点の座標を三次元座標に変換する（Ｓ２０３）。点１３０１から１３１４の二次元座標に対応する球面上の点をそれぞれ、ｐ１１からｐ２４とする。
【０１１８】
次にクライアント装置１２０は、補正目標となる立体形状としてＬ字型を選択する（Ｓ２０４）。本実施形態では、取得部１２５が取得した座標の数が１４個であることから、クライアント装置１２０は所定の立体形状がＬ字型であると判断する。そして、次に配置部１２４は点ｐ１１からｐ２４を結び、立体形状を生成する（Ｓ２０５）。クライアント装置１２０は点ｐ１１からｐ２４を結び、二つの立体形状を生成する。図１４に点ｐ１１、ｐ１２、ｐ１３、ｐ１７、ｐ１８、ｐ１９、ｐ２０、及び、ｐ２４を結び生成される立体形状１４００を示す。また図１５に点ｐ１４、ｐ１５、ｐ１６、ｐ１７、ｐ２１、ｐ２２、ｐ２３、及び、ｐ２４を結び生成される立体形状を示す。
【０１１９】
次に配置部１２４は、点ｐ１１からｐ２４を移動させることによって、立体形状１４００と立体形状１５００を直方体に変形させる（Ｓ２０６、Ｓ２０７）。実施形態１では、球面座標Ｓ上に配置された複数の点の全てを頂点とする立体形状が直方体となるように複数の点の位置を補正した。一方、本実施形態では、球面座標Ｓ上に配置された複数の点のうち一部の点を頂点とする立体形状が直方体となるように、複数の点の位置を補正する。
【０１２０】
点の移動方法は実施形態１と同様のため、説明を省略する。このとき、立体形状１４００と立体形状１５００はどちらも点ｐ１７とｐ２４を持つ。補正部１２３は、立体形状１５００、立体形状１４００それぞれにおいてｐ１７とｐ２４を結ぶ線の長さを式（４）に示す定数Ｃとし、式（２）に示すコスト関数Ｅ（ａ）を最小化する。このようにして、ｐ１７とｐ２４を結ぶ線の長さが等しい二つの直方体を生成することができる。そして変形させた立体形状１４００と立体形状１５００を組み合わせ、Ｌ字状の立体形状を生成する。
【０１２１】
次にクライアント装置１２０は生成部１２７において、Ｌ字状の立体形状に基づいて撮像画像を俯瞰画像に変形する（Ｓ２０８）。撮像画像を俯瞰画像に変形する方法は実施形態１と同様のため、説明を省略する。図１６に、撮像画像を投影したＬ字状の立体形状１６００を示す。また図１７に生成したＬ字状の立体形状の俯瞰画像を示す。図１７中の点ｑ１１からｑ２４は図１６中の点ｐ１１からｐ２４に対応する点を表す。
【０１２２】
本実施形態では、Ｌ字状の部屋についてのみ説明したが、これに限らない。直方体を組み合わせることで生成することが可能な立体形状については、本実施形態が適用可能である。また、実施形態１及び実施形態２では、直方体及びＬ字型の形状の部屋の俯瞰画像を生成する場合について説明したが、図２（ｂ）を用いて説明した処理を応用して、円柱状の俯瞰画像を作成することも可能である。この場合、ユーザは図５と同様にパノラマ画像上で８つの点を指定する。さらに、ステップＳ２０４において補正目標の立体形状が円柱形となるように、ユーザはクライアント装置１２０に対して設定を行う。ステップＳ２０６及びＳ２０７において補正部１２３は、図１８左図に示すような、上面、及び、下面が正方形の直方体（含立方体）を生成する。さらに、上面、又は、仮面の正方形が内接する円を生成し、図１８右図に示すような円柱形を生成する。
【０１２３】
ステップＳ２０８において、生成部１２７は、生成した円柱形に撮像画像を投影した後、上述の実施形態と同様に画像を補正して俯瞰画像を生成することができる。
【０１２４】
また、実施形態１、又は、実施形態２において説明した方法により生成した俯瞰画像を、クライアント装置１２０の通信制御部１２２はネットワークを介して撮像装置１１０に送信することとしてもよい。撮像装置１１０は、クライアント装置１２０が生成した俯瞰画像を記憶部１１６に保持する。そして、撮像装置１１０は、撮像装置１１０に接続された１又は複数のクライアント装置からの俯瞰画像の取得要求に応じて、要求を行ったクライアント装置に保持している俯瞰画像を配信することができる。
【０１２５】
以上、本発明の実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【０１２６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２７】
１２２  通信制御部
１２３  補正部
１２４  配置部
１２５  取得部
１２６  表示制御部
１２７  生成部
【図１】
0006584093.tif 000011
【図２】
0006584093.tif 000012
【図３】
0006584093.tif 000013
【図４】
0006584093.tif 000014
【図５】
0006584093.tif 000015
【図６】
0006584093.tif 000016
【図７】
0006584093.tif 000017
【図８】
0006584093.tif 000018
【図９】
0006584093.tif 000019
【図１０】
0006584093.tif 000020
【図１１】
0006584093.tif 000021
【図１２】
0006584093.tif 000022
【図１３】
0006584093.tif 000023
【図１４】
0006584093.tif 000024
【図１５】
0006584093.tif 000025
【図１６】
0006584093.tif 000026
【図１７】
0006584093.tif 000027
【図１８】
0006584093.tif 000028