(57)【要約】  複数の面で囲われた空間全体の形状を正確に推定する。３次元モデル生成システム（１）の画像取得手段（１０１）は、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する。部分モデル生成手段（１０２）は、画像ごとに、当該画像に撮影された複数の面の一部を示す部分モデルを生成する。全体モデル生成手段（１０３）は、部分モデル生成手段（１０２）により生成された複数の部分モデルに基づいて、複数の面全体を示す全体モデルを生成する。
2017203709.tif 000002
【特許請求の範囲】
【請求項１】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含むことを特徴とする３次元モデル生成システム。
【請求項２】
各画像は、少なくとも１つの他の前記画像と撮影範囲の一部が重複し、
前記部分モデル生成手段は、少なくとも１つの他の前記部分モデルと表面の一部が重複する前記部分モデルを生成し、
前記全体モデル生成手段は、各部分モデルの重複部分の位置を合わせて前記全体モデルを生成する、
ことを特徴とする請求項１に記載の３次元モデル生成システム。
【請求項３】
前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とする請求項１又は２に記載の３次元モデル生成システム。
【請求項４】
前記画像取得手段は、前記空間が撮影された１枚の画像に基づいて、前記複数の画像を取得し、
前記画像情報は、前記１枚の画像における各画像の位置であり、
前記全体モデル生成手段は、前記１枚の画像における各画像の位置に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定する、
ことを特徴とする請求項３に記載の３次元モデル生成システム。
【請求項５】
前記画像取得手段は、水平方向の３６０°が撮影された１枚の画像に基づいて、前記複数の画像を取得する、
ことを特徴とする請求項１〜４の何れかに記載の３次元モデル生成システム。
【請求項６】
前記画像取得手段は、前記空間内の１点から互いに異なる方向が撮影された前記複数の画像を取得する、
ことを特徴とする請求項１〜５の何れかに記載の３次元モデル生成システム。
【請求項７】
前記画像取得手段は、部屋の内部で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、前記部屋の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記部屋全体を示す前記全体モデルを生成する、
ことを特徴とする請求項１〜６の何れかに記載の３次元モデル生成システム。
【請求項８】
前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、
前記３次元モデル生成システムは、前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段を更に含む、
ことを特徴とする請求項７に記載の３次元モデル生成システム。
【請求項９】
前記画像取得手段は、互いに略直交する６つ以上の側面を有する前記部屋の前記複数の画像を取得し、
前記部分モデル生成手段は、前記６つ以上の側面の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記６つ以上の側面全体を示す前記全体モデルを生成する、
請求項７又は８に記載の３次元モデル生成システム。
【請求項１０】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含むことを特徴とする３次元モデル生成方法。
【請求項１１】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元モデル生成システム、３次元モデル生成方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の面で囲われた空間において撮影された画像に基づいて、当該空間全体の形状を推定する技術が知られている。例えば、非特許文献１には、水平方向の３６０°を撮影可能な魚眼レンズを装着したカメラで部屋の内部を撮影し、撮影で得られた１枚のパノラマ画像に基づいて、直方体の部屋の形状を示す３次元モデルを生成する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】https://courses.cs.washington.edu/courses/cse590v/14au/cse590v_wk3_panocontext.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、実際には、例えば部屋には柱などがあり、推定対象となる空間は直方体のようにシンプルな形状ではなく、複雑な形状であることが多い。この点、非特許文献１の技術では、直方体の３次元モデルを生成することしかできないので、推定対象の空間の形状を正確に推定できないことがあった。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、複数の面で囲われた空間全体の形状を正確に推定することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る３次元モデル生成システムは、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、を含むことを特徴とする。【０００７】
本発明に係る３次元モデル生成方法は、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、としてコンピュータを機能させる。【０００９】
また、本発明に係る情報記憶媒体は、上記のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。【００１０】
また、本発明の一態様では、各画像は、少なくとも１つの他の前記画像と撮影範囲の一部が重複し、前記部分モデル生成手段は、少なくとも１つの他の前記部分モデルと表面の一部が重複する前記部分モデルを生成し、前記全体モデル生成手段は、各部分モデルの重複部分の位置を合わせて前記全体モデルを生成する、ことを特徴とする。【００１１】
また、本発明の一態様では、前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、ことを特徴とする。【００１２】
また、本発明の一態様では、前記画像取得手段は、前記空間が撮影された１枚の画像に基づいて、前記複数の画像を取得し、前記画像情報は、前記１枚の画像における各画像の位置であり、前記全体モデル生成手段は、前記１枚の画像における各画像の位置に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定する、ことを特徴とする。【００１３】
また、本発明の一態様では、前記画像取得手段は、水平方向の３６０°が撮影された１枚の画像に基づいて、前記複数の画像を取得する、ことを特徴とする。【００１４】
また、本発明の一態様では、前記画像取得手段は、前記空間内の１点から互いに異なる方向が撮影された前記複数の画像を取得する、ことを特徴とする。【００１５】
また、本発明の一態様では、前記画像取得手段は、部屋の内部で撮影された前記複数の画像を取得し、前記部分モデル生成手段は、前記部屋の一部を示す前記部分モデルを生成し、前記全体モデル生成手段は、前記部屋全体を示す前記全体モデルを生成する、ことを特徴とする。【００１６】
また、本発明の一態様では、前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、前記３次元モデル生成システムは、前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段を更に含む、ことを特徴とする。【００１７】
また、本発明の一態様では、前記画像取得手段は、互いに略直交する６つ以上の側面を有する前記部屋の前記複数の画像を取得し、前記部分モデル生成手段は、前記６つ以上の側面の一部を示す前記部分モデルを生成し、前記全体モデル生成手段は、前記６つ以上の側面全体を示す前記全体モデルを生成する。
【発明の効果】
【００１８】
本発明によれば、複数の面で囲われた空間全体の形状を正確に推定することが可能になる。
【図面の簡単な説明】
【００１９】
【図１】３次元モデル生成システムのハードウェア構成を示す図である。
【図２】実施形態１の３次元モデル生成システムで実現される機能の一例を示す機能ブロック図である。
【図３】撮影対象の部屋を上から見た様子を示す図である。
【図４】部屋の撮影画像を示す図である。
【図５】画像取得部による画像の取得方法を示す図である。
【図６】画像取得部による画像の取得方法を示す図である。
【図７】部分モデルを生成する手順を示す図である。
【図８】各画像から生成された部分モデルを示す図である。
【図９】全体モデルの一例を示す図である。
【図１０】３次元モデル生成システムにおいて実行される処理の一例を示すフロー図である。
【図１１】サイズパラメータと全体モデルとの関係を示す図である。
【図１２】実施形態２の３次元モデル生成システムで実現される機能の一例を示す機能ブロック図である。
【図１３】オブジェクトモデルデータベースのデータ格納例を示す図である。
【図１４】全体モデルとオブジェクトモデルが配置された仮想空間の一例を示す図である。
【図１５】仮想画像の一例を示す図である。
【図１６】オブジェクトの部分がマスクされた撮影画像の方向マップを示す図であり、
【図１７】オブジェクトモデルの部分がマスクされた仮想画像の方向マップを示す図である。
【図１８】仮想空間を上から見た様子を示す図である。
【図１９】モデルパラメータが調整された場合の仮想空間の様子を示す図である。
【図２０】モデルパラメータが調整された場合の仮想空間の様子を示す図である。
【図２１】３次元モデル生成システムにおいて実行される処理の一例を示すフロー図である。
【図２２】実施形態１に関する変形例の機能ブロック図である。
【発明を実施するための形態】
【００２０】
［１．実施形態１］
以下、本発明に関わる３次元モデル生成システムの実施形態の例を説明する。
【００２１】
［１−１．３次元モデル生成システムのハードウェア構成］
図１は、３次元モデル生成システムのハードウェア構成を示す図である。図１に示すように、３次元モデル生成システム１は、３次元モデル生成装置１０とカメラ２０とを含む。
【００２２】
３次元モデル生成装置１０は、３次元モデルを生成するコンピュータであり、例えば、パーソナルコンピュータ、携帯情報端末（タブレット型コンピュータを含む）、又は携帯電話機（スマートフォンを含む）等である。３次元モデル生成装置１０は、制御部１１、記憶部１２、通信部１３、操作部１４、表示部１５、及び入出力部１６を含む。
【００２３】
制御部１１は、例えば、一又は複数のマイクロプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークを介してデータ通信を行う。
【００２４】
操作部１４は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等である。操作部１４は、ユーザによる操作内容を制御部１１に伝達する。表示部１５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部１５は、制御部１１の指示に従って画面を表示する。入出力部１６は、入出力インタフェースであり、例えば、ＵＳＢポートである。入出力部１６は、外部機器とデータ通信を行うために用いられる。
【００２５】
なお、記憶部１２に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して供給されるようにしてもよい。また、３次元モデル生成装置１０のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、３次元モデル生成装置１０は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）を含んでもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが当該読取部や入出力部１６を介して、３次元モデル生成装置１０に供給されるようにしてもよい。
【００２６】
カメラ２０は、静止画や動画を撮影可能な一般的な撮像装置であり、例えば、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサなどの撮像素子を含む。カメラ２０は、撮像素子で撮影した画像を示す画像データを生成してメモリに記録する。このメモリは、カメラ２０に備えられたメモリであってもよいし、取り外し可能なフラッシュメモリなどであってもよい。
【００２７】
カメラ２０は、広角レンズ又は魚眼レンズを備えていてもよく、画角や焦点距離は任意であってよい。例えば、カメラ２０は、全天球カメラであってもよいし、複数のレンズを備えることで水平方向及び垂直方向の少なくとも一方の全方向を撮影可能なカメラであってもよい。本実施形態では、カメラ２０は、水平方向３６０°及び垂直方向１８０°を撮影可能な広角レンズを使用するものとする。即ち、カメラ２０は、１回の撮影で水平方向の全てを撮影した撮影画像を生成可能である。
【００２８】
実施形態１の３次元モデル生成システム１は、室内をカメラ２０で撮影した１枚のパノラマ画像を複数の画像に分割し、画像ごとに部屋の一部を示す３次元モデルを生成して仮想空間に並べることによって、部屋全体の３次元モデルを生成し、部屋の形状が複雑であったとしても３次元モデルを生成できるようになっている。以降、この技術の詳細を説明する。
【００２９】
［１−２．実施形態１において実現される機能］
図２は、実施形態１の３次元モデル生成システム１で実現される機能の一例を示す機能ブロック図である。図２に示すように、本実施形態では、データ記憶部１００、画像取得部１０１、部分モデル生成部１０２、及び全体モデル生成部１０３が、３次元モデル生成装置１０で実現される場合を説明する。
【００３０】
［１−２−１．データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、カメラ２０により撮影された撮影画像（写真）を示す撮影画像データを記憶する。撮影画像の縦横比、サイズ、及び解像度などは、任意であってよい。撮影画像データのデータ形式も任意であってよい。
【００３１】
本実施形態では、撮影画像として、水平方向の３６０°が撮影されたパノラマ画像を例に挙げる。撮影画像には、現実空間の一定範囲が撮影されていればよく、必ずしも水平方向の３６０°が撮影されていなくてもよい。例えば、撮影画像には、水平方向の１８０°以上３６０°未満の範囲が撮影されていてもよい。
【００３２】
なお、本実施形態では、３次元モデル生成装置１０のデータ記憶部１００に撮影画像データが記憶される場合を説明するが、撮影画像データは、他の機器又はコンピュータに記憶されているようにしてもよい。例えば、撮影画像データは、カメラ２０内のメモリに記憶されていてもよいし、サーバコンピュータに記憶されていてもよい。
【００３３】
［１−２−２．画像取得部］
画像取得部１０１は、制御部１１を主として実現される。画像取得部１０１は、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する。
【００３４】
面は、現実空間を区切る物体の表面であり、例えば、壁、柱、扉、窓、パーテーション、フェンス、床、地面、天井、又は屋根である。空間を囲う面の数は、２つ以上の任意の数であればよい。即ち、カメラ２０から見て前後・左右・上下のうちの少なくとも２つの方向に、面が配置されていればよい。また、各面は、他の面と接触していてもよいし、他の面と接触せずに離れていてもよい。本実施形態では、各面は、少なくとも１つの他の面と略直交している場合を説明する。略直交とは、直交すること、又は、直交とみなせる程度の角度（例えば、８０°以上）で交わることを意味する。例えば、２つ以上の面が略直交に交わることで、コーナーが形成される。
【００３５】
空間は、前後・左右・上下にわたって一定の広がりのある領域であり、地上にあってもよいし、地下にあってもよい。例えば、空間は、少なくとも下面と複数の側面で囲まれていればよく、前後、左右、及び上下の全てが面で囲まれている屋内であってもよいし、上面のない屋外であってもよい。他にも例えば、空間は、屋内であったとしても、水平方向の全てが面に囲まれている必要はなく、前・後・上・下のうちの少なくとも２つの方向に側面が配置された空間（例えば、前方と左右にだけ側面があり、後方には側面のない空間）であればよい。
【００３６】
本実施形態では、前後・左右・上下の全方向が面で囲まれた屋内の空間を例に挙げて説明する。このため、画像取得部１０１は、部屋の内部で撮影された複数の画像を取得することになる。また、部屋の一例として、隣接する面と略直交する６つ以上の側面により囲まれた部屋を説明する。このため、画像取得部１０１は、互いに略直交する６つ以上の側面を有する部屋の複数の画像を取得することになる。
【００３７】
図３は、撮影対象の部屋を上から見た様子を示す図である。なお、図３では、天井は省略している。図３に示すように、部屋Ｓは、互いに略直交する壁ｗ１〜ｗ６と、オブジェクトｏ１〜ｏ８と、を含む。
【００３８】
以降、壁ｗ１〜ｗ６を、まとめて壁Ｗとも記載する。即ち、壁Ｗ＝｛ｗｉ｝Ｎｗｉ＝１と記載することができる。Ｎｗは壁の総数であり、ここではＮｗ＝６である。また、オブジェクトｏ１〜ｏ８を、まとめてオブジェクトＯとも記載する。即ち、オブジェクトＯ＝｛ｏｊ｝Ｎｏｊ＝１と記載することができる。Ｎｏはオブジェクトの総数であり、ここではＮｏ＝８である。
【００３９】
なお、オブジェクトは、カメラ２０の被写体となりうる物体である。図３のオブジェクトＯは、カメラ２０から見て壁Ｗの手前に配置された物体である。別の言い方をすれば、オブジェクトＯは、壁Ｗ以外の被写体である。例えば、室内であれば、家具や家電などがオブジェクトＯに相当し、屋外であれば、車や自転車などがオブジェクトＯに相当する。図３に示す例では、オブジェクトｏ１はベッドであり、オブジェクトｏ２，ｏ３はサイドボードである。また、オブジェクトｏ４〜ｏ６は椅子であり、オブジェクトｏ７は机であり、オブジェクトｏ８はテレビである。
【００４０】
カメラ２０の撮影位置は、部屋Ｓ内の任意の位置であってよいが、ここでは、オブジェクトＯをまんべんなく撮影可能な撮影位置Ｐから部屋Ｓが撮影される場合を説明する。
【００４１】
図４は、部屋Ｓの撮影画像を示す図である。先述したように、カメラ２０は水平方向の３６０°を撮影可能なので、図４に示すように、撮影画像Ｉには、撮影位置Ｐから見て水平方向の全てが撮影される。別の言い方をすれば、撮影画像Ｉは、撮影位置Ｐから撮影された水平方向３６０°のパノラマ画像である。
【００４２】
撮影画像Ｉには、２次元の座標軸（スクリーン座標系の座標軸）が設定される。例えば、左上を原点ＯＳとし、水平方向をＸＳ軸とし、垂直方向をＹＳ軸とする。撮影画像Ｉの各画素の位置は、ＸＳ座標とＹＳ座標で示される。例えば、撮影画像Ｉの右端のＸＳ座標をＸＳＭＡＸとし、下端のＹＳ座標をＹＳＭＡＸとする。
【００４３】
本実施形態では、画像取得部１０１は、複数の壁Ｗで囲われた空間が撮影された１枚の撮影画像Ｉに基づいて、複数の画像を取得する場合を説明する。ここでは、画像取得部１０１は、水平方向の３６０°が撮影された１枚の撮影画像Ｉに基づいて、複数の画像を取得することになる。
【００４４】
図５及び図６は、画像取得部１０１による画像の取得方法を示す図である。図５では、撮影位置Ｐから見て、ＸＳ座標が０の画素に撮影された被写体の方向の点をＰ０とする。撮影画像ＩのＸＳ座標が大きくなるにつれて、撮影位置Ｐを中心にして点Ｐ０から時計回り（右回り）に撮影方向が変化している。なお、ここでは、撮影位置Ｐを中心とし、線分Ｐ−Ｐ０を半径とした円を３０°ずつ１２等分したときの円上の点をＰ１〜Ｐ１１とする。
【００４５】
図６に示すように、画像取得部１０１は、１枚の撮影画像Ｉを分割することによって、互いに撮影範囲が重複する６つの画像Ｉ１〜Ｉ６を生成する。以降では、画像Ｉ１〜Ｉ６を、まとめて画像Ｉｋとも記載する。即ち、撮影画像Ｉ＝｛Ｉｋ｝Ｋｋ＝１と記載することができる。Ｋは画像の総数であり、ここではＫ＝６である。なお、図６では、ＸＳ座標値が「０」から「ＸＳＭＡＸ」までを１２等分し、それぞれのＸＳ座標値を「ＸＳ１」〜「ＸＳ１１」としている。
【００４６】
例えば、画像Ｉ１は、ＸＳ座標値が「０」から「ＸＳ３」までの部分である。画像Ｉ１の撮影範囲は、画像Ｉ１の中心点に対応する点Ｑ１（図５）を注視点とし、画角は∠Ｐ０ＰＰ３＝９０°である。画像Ｉ２は、ＸＳ座標値が「ＸＳ２」から「ＸＳ５」までの部分である。画像Ｉ２の撮影範囲は、画像Ｉ２の中心点に対応する点Ｑ２（図５）を注視点とし、画角は∠Ｐ２ＰＰ５＝９０°である。画像Ｉ１と画像Ｉ２は、ＸＳ座標値が「ＸＳ２」から「ＸＳ３」までの撮影範囲（画角が∠Ｐ２ＰＰ３＝３０°の撮影範囲）が重複している。
【００４７】
画像Ｉ３は、ＸＳ座標値が「ＸＳ４」から「ＸＳ７」までの部分である。画像Ｉ３の撮影範囲は、画像Ｉ３の中心点に対応する点Ｑ３（図５）を注視点とし、画角は∠Ｐ４ＰＰ７＝９０°である。画像Ｉ２と画像Ｉ３は、ＸＳ座標値が「ＸＳ４」から「ＸＳ５」までの撮影範囲（画角が∠Ｐ４ＰＰ５＝３０°の撮影範囲）が重複している。画像Ｉ４は、ＸＳ座標値が「ＸＳ６」から「ＸＳ９」までの部分である。画像Ｉ４の撮影範囲は、画像Ｉ４の中心点に対応する点Ｑ４（図５）を注視点とし、画角は∠Ｐ６ＰＰ９＝９０°である。画像Ｉ３と画像Ｉ４は、ＸＳ座標値が「ＸＳ６」から「ＸＳ７」までの撮影範囲（画角が∠Ｐ６ＰＰ７＝３０°分の撮影範囲）が重複している。
【００４８】
画像Ｉ５は、ＸＳ座標値が「ＸＳ８」から「ＸＳ１１」までの部分である。画像Ｉ５の撮影範囲は、画像Ｉ５の中心点に対応する点Ｑ５（図５）を注視点とし、画角は∠Ｐ８ＰＰ１１＝９０°である。画像Ｉ４と画像Ｉ５は、ＸＳ座標値が「ＸＳ８」から「ＸＳ９」までの撮影範囲（画角が∠Ｐ８ＰＰ９＝３０°分の撮影範囲）が重複している。画像Ｉ６は、ＸＳ座標値が「ＸＳ１０」から「ＸＳＭＡＸ」までの部分と、「０」から「ＸＳ１」までの部分と、を結合したものである。画像Ｉ６の撮影範囲は、画像Ｉ６の中心点に対応する点Ｑ６（図５）を注視点とし、画角は∠Ｐ１０ＰＰ１＝９０°である。画像Ｉ６と画像Ｉ１は、ＸＳ座標値が「０」から「ＸＳ１」までの撮影範囲（画角が∠Ｐ０ＰＰ１＝３０°分の撮影範囲）が重複している。
【００４９】
上記のように、本実施形態では、各画像Ｉｋは、少なくとも１つの他の画像Ｉｋと撮影範囲の一部が重複している。なお、重複部分は、３０°分の画角に限られず、任意の広さであってよい。また、全ての重複部分が同じ広さである場合を説明したが、画像Ｉｋごとに重複部分の広さが異なっていてもよい。更に、画像Ｉｋのサイズが同じである場合を説明したが、互いにサイズが異なっていてもよい。
【００５０】
また、本実施形態の撮影画像Ｉには、部屋Ｓの複数の方向が撮影されているので、画像取得部１０１は、部屋Ｓの複数の方向がそれぞれ撮影された複数の画像Ｉｋを取得することになる。また、画像取得部１０１は、部屋Ｓ内の１点から互いに異なる方向が撮影された複数の画像Ｉｋを取得する。別の言い方をすれば、画像取得部１０１は、画像Ｉｋごとに、撮影委位置Ｐからの撮影方向が互いに異なる複数の画像Ｉｋを取得することになる。
【００５１】
なお、本実施形態では、１枚の撮影画像Ｉから複数の画像Ｉｋが生成される場合を説明したが、カメラ２０で複数回撮影することにより複数の画像Ｉｋが生成されるようにしてもよい。この場合、例えば、撮影位置Ｐから所定の撮影方向を撮影したら、その場所で所定角度回転して次の撮影が行われるようにしてもよい。以降、続けて回転と撮影を繰り返し、撮影位置Ｐから水平方向のある一定角度（例えば、３６０°）分が撮影された複数の画像Ｉｋが生成されるようにしてもよい。
【００５２】
［１−２−３．部分モデル生成部］
部分モデル生成部１０２は、制御部１１を主として実現される。部分モデル生成部１０２は、画像Ｉｋごとに、当該画像Ｉｋに撮影された複数の壁Ｗの一部を示す部分モデルを生成する。部分モデルは、１つ以上の壁を示す３次元モデルである。３次元モデルは、多角形のポリゴンから構成される平面又は立体である。
【００５３】
部分モデル生成部１０２は、画像Ｉｋのうち平面部分を特定し、当該部分の形状及び向きに基づいて部分モデルを生成する。当該平面部分は、ある一定の広さを有する所定形状の平面であればよい。例えば、壁Ｗは４角形なので、部分モデル生成部１０２は、画像Ｉｋのうち４角形の平面を特定することになる。例えば、部分モデル生成部１０２は、画像Ｉｋに撮影された被写体の輪郭を示す線分を抽出し、当該線分の位置的な関係及び方向的な関係に基づいて部分モデルを生成するようにしてよい。
【００５４】
画像Ｉｋに撮影された被写体の３次元モデルを生成する方法自体は、公知の種々の手法を適用可能であるが、ここでは、その一例として、学術論文「Lee, D.C., Hebert, M., Kanade, T.: Geometric reasoning for single image structure recovery. In: CVPR. (2009)」に示されるように、方向マップを用いた方法を説明する。
【００５５】
図７は、部分モデルを生成する手順を示す図である。ここでは、画像Ｉ１から、当該画像Ｉ１に撮影された壁ｗ１，ｗ２，ｗ３，ｗ６を示す部分モデルｍ１が生成される場合を例に挙げて説明する。図７に示すように、部分モデル生成部１０２は、（手順１）画像Ｉ１内の線分と消滅点とを抽出し、（手順２）画像Ｉ１に対応する方向マップから壁Ｗの領域を特定し、（手順３）特定した壁Ｗの領域に基づいて部分モデルｍ１を生成する。以降、これらの手順１〜３の詳細を説明する。
【００５６】
［手順１］
まず、部分モデル生成部１０２は、画像Ｉ１に対してエッジ検出処理を施すことによって、画像Ｉ１内の線分を特定する。現実空間では直線であっても魚眼レンズを使用すると湾曲するので、ここで検出する線分は、直線状であってもよいし曲線状であってもよい。エッジ検出処理自体は、公知の種々の処理を適用可能である。例えば、部分モデル生成部１０２は、ある注目画素の画素値と、周囲の画素の画素値と、の差が閾値以上である場合に、当該注目画素をエッジ画素として特定するようにしてよい。部分モデル生成部１０２は、画像Ｉ１からエッジ画素を検出し、隣り合うエッジ画素同士をつなげた画素を、線分として抽出する。
【００５７】
本実施形態では、壁Ｗは、互いに略９０°で交差しているので、撮影位置Ｐから見ると、壁Ｗの表面は、前後・左右・上下の何れかを向き、壁Ｗの輪郭も、前後・左右・上下の何れかを向く。このため、部分モデル生成部１０２は、抽出した各線分の方向（傾き）に基づいて、当該線分を、前後・左右・上下の何れかに分類する。
【００５８】
例えば、部分モデル生成部１０２は、ある線分の傾きの絶対値が、０（ＸＳ軸方向）以上であり、第１閾値（例えば、２０°程度）未満である場合、その線分は左右方向として分類する。即ち、画像Ｉ１において線分が横方向を向いていれば、その線分は、撮影位置Ｐから見て左右方向の輪郭を示すので、左右方向として分類することになる。
【００５９】
また、部分モデル生成部１０２は、ある線分の傾きの絶対値が、第１閾値以上であり、第２閾値未満（例えば、７０°程度）である場合、その線分は、前後方向として分類する。即ち、画像Ｉ１において線分が斜め方向を向いていれば、その線分は、撮影位置Ｐから見て前後方向の輪郭を示すので、前後方向として分類する。なお、第１閾値や第２閾値は、カメラ２０に装着されるレンズによる画像の歪み具合を考慮して定めてよい。
【００６０】
また、部分モデル生成部１０２は、ある線分の傾きの絶対値が第２閾値以上である場合、その線分は、上下方向として分類する。即ち、画像Ｉ１において線分が縦方向を向いていれば、その線分は、撮影位置Ｐから見て上下方向の輪郭を示すので、前後方向として分類する。
【００６１】
上記のように線分の方向が分類されると、部分モデル生成部１０２は、各線分を伸長させる。部分モデル生成部１０２は、各線分を、画像Ｉ１の縁まで伸ばしてもよいし、他の線分と交差するまで伸ばしてもよい。伸ばした線分の交点は、コーナーの候補である。このため、部分モデル生成部１０２は、当該伸ばした線で囲まれた領域を、壁Ｗの候補とする。別の言い方をすれば、部分モデル生成部１０２は、伸ばした線の交点を抽出し、複数の交点で囲まれた領域を壁Ｗの候補とする。壁Ｗの候補には、本当は壁Ｗではないものが含まれているが、そのような候補は、後述するように、方向マップとの一致度が低くなる。そこで、方向マップを利用することで、本当の壁Ｗの領域を絞り込むようにしている。
【００６２】
本実施形態では、部分モデル生成部１０２は、消滅点を利用して方向マップを取得する。部分モデル生成部１０２は、抽出した線分に基づいて、画像Ｉ１から消滅点を取得する。消滅点は、現実空間で同じ方向を向いている物体が画像上で交わる点であり、無限遠を示す地点といえる。例えば、平行する２本の線路上に立って線路を撮影すると、実際には２本の線路が交わることはないが、画像上では、２本の線路はお互いに向き合うように撮影される。この２本の線路を延長したときに交わる点が消滅点である。
【００６３】
図７に示す例では、部分モデル生成部１０２は、前後方向として分類した線分ｌ１，ｌ２同士を延長したときに交わる点を、前後方向の消滅点ｖ１として取得する。また、部分モデル生成部１０２は、左右方向として分類した線分ｌ３，ｌ４を延長したときに交わる点ｖ２を、左右方向の消滅点ｖ２として取得する。なお、画像Ｉ１では、上下方向の線分は、互いに平行であり交わらないので、上下方向の消滅点は検出されなかったものとする。
【００６４】
部分モデル生成部１０２は、線分と消滅点との位置関係に基づいて、方向マップを生成する。画像Ｉ１の方向マップは、画素ごとに、その画素の被写体の表面の向きを示す。本実施形態では、各画素は、前後・左右・上下の何れかを向いているかが方向マップに示される。方向マップの生成方法自体は、公知の種々の手法を適用可能であるが、本実施形態では、その一例として、線分を消滅点に向けて移動させる方法を説明する。
【００６５】
例えば、部屋Ｓの床や天井の表面は、上下方向を向くので、その輪郭は、前後方向の線分と、左右方向の線分と、により示される。このため、部分モデル生成部１０２は、左右方向の線分により挟まれた位置にある前後方向の線分を、水平方向の消滅点ｖ２に向けて、他の線分とぶつかるまで移動させたときに通過した画素に、上下方向を関連付ける。
【００６６】
また例えば、壁ｗ１，ｗ３の表面は、前後方向を向くので、その輪郭は、左右方向の線分と、上下方向の線分と、により示される。このため、部分モデル生成部１０２は、左右方向の線分により挟まれた位置にある上下方向の線分を、水平方向の消滅点ｖ２に向けて、他の線分とぶつかるまで移動させたときに通過した画素に、前後方向を関連付ける。
【００６７】
また例えば、壁ｗ２，ｗ６の表面は、左右方向を向くので、その輪郭は、前後方向の線分と、上下方向の線分と、により示される。このため、部分モデル生成部１０２は、前後方向の線分により挟まれた位置にある上下方向の線分を、水平方向の消滅点ｖ２に向けて、他の線分とぶつかるまで移動させたときに通過した画素に、左右方向を関連付ける。
【００６８】
［手順２］
部分モデル生成部１０２は、上記のようにして、画像Ｉ１の各画素の方向を特定し、方向マップを生成する。そして、部分モデル生成部１０２は、方向マップを生成したときと同様の方法により、壁Ｗの候補を構成する線分の方向に基づいて、当該候補の表面が向く方向を特定する。部分モデル生成部１０２は、壁Ｗの候補の方向と、当該候補内の方向マップが示す方向と、を比較して算出した一致度に基づいて、本当の壁Ｗの領域として特定する。一致度は、方向が一致する画素数又はその割合に基づいて算出されるようにすればよい。
【００６９】
図７に示す場合では、部分モデル生成部１０２は、画像Ｉ１内の点Ｒ１Ｓ，Ｒ２Ｓ，Ｒ３Ｓ，Ｒ４Ｓで囲われた候補を、壁ｗ１として特定する。部分モデル生成部１０２は、画像Ｉ１内の点Ｒ２Ｓ，Ｒ５Ｓ，Ｒ６Ｓ，Ｒ４Ｓで囲われた候補を、壁ｗ２として特定する。部分モデル生成部１０２は、画像Ｉ１内の点Ｒ５Ｓ，Ｒ６Ｓ，Ｒ７Ｓ，Ｒ８Ｓで囲われた候補を、壁ｗ３として特定する。部分モデル生成部１０２は、画像Ｉ１内の点Ｒ１Ｓ，Ｒ３Ｓ，Ｒ９Ｓ，Ｒ１０Ｓで囲われた候補を、壁ｗ６として特定する。
【００７０】
［手順３］
部分モデル生成部１０２は、画像Ｉ１から抽出した各領域に所定の座標変換処理を施すことにより、部分モデルｍ１を生成する。座標変換処理は、２次元座標を３次元座標に変換する行列変換処理である。例えば、部分モデル生成部１０２は、画像Ｉ１において特定した壁の頂点を示す点Ｒ１Ｓ〜Ｒ１０Ｓの２次元座標を、仮想空間内の３次元座標に変換して点Ｒ１Ｗ〜Ｒ１０Ｗとする。なお、３次元座標に変換する場合には、部分モデルｍ１の高さが所定の高さとなるようにしてもよい。即ち、部分モデルｍ１のサイズは、実施形態１では、予め決められたサイズであってよい。
【００７１】
本実施形態では、図７に示すように、仮想空間には、３次元の座標軸（ワールド座標系の座標軸）が設定される。例えば、任意の位置を原点ＯＷとし、互いに直交する３つの座標軸であるＸＷ軸−ＹＷ軸−ＺＷ軸が設定される。仮想空間の各位置は、３次元座標により定まる。部分モデル生成部１０２は、上記３次元座標に変換した点Ｒ１Ｗ〜Ｒ１０Ｗどうしを結合することにより、部分モデルｍ１を生成する。即ち、点Ｒ１Ｗ〜Ｒ１０Ｗは、部分モデルｍ１の頂点となる。
【００７２】
上記の手順１〜３により、画像Ｉ１から部分モデルｍ１が生成される。なお、先述したように、手順１〜３はあくまで部分モデルｍ１を生成する処理の一例なので、画像Ｉ１から部分モデルｍ１を生成する処理自体は、公知の手法を適用可能である。部分モデル生成部１０２は、画像Ｉ２〜Ｉ６に対し、同様の処理を実行することにより、画像Ｉ２〜Ｉ６の各々に対応する部分モデルを生成する。
【００７３】
図８は、各画像Ｉｋから生成された部分モデルを示す図である。図８に示すように、部分モデル生成部１０２は、各画像Ｉｋに撮影された壁Ｗを部分的に示す部分モデルｍ１〜ｍ６（以降、これらをまとめて単に部分モデルｍｋともいう。）を生成する。本実施形態では、壁Ｗは互いに略直交に交わっているので、図８に示すように、各部分モデルｍｋのうちコーナーの部分も略直交となる。
【００７４】
また、本実施形態では、各画像Ｉｋは、少なくとも１つの他の画像Ｉｋと撮影範囲の一部が重複しているので、図８に示すように、部分モデル生成部１０２は、少なくとも１つの他の部分モデルｍｋと表面の一部が重複する部分モデルｍｋを生成することになる。また、部屋Ｓを空間の一例として説明するので、部分モデル生成部１０２は、部屋Ｓの一部を示す部分モデルを生成することになる。また、部屋Ｓは、６つ以上の側面を有する場合を説明するので、部分モデル生成部１０２は、６つ以上の側面の一部を示す部分モデルを生成する。
【００７５】
［１−２−４．全体モデル生成部］
全体モデル生成部１０３は、制御部１１を主として実現される。全体モデル生成部１０３は、部分モデル生成部１０２により生成された複数の部分モデルｍｋに基づいて、複数の壁Ｗ全体を示す全体モデルを生成する。全体モデル生成部１０３は、実際の壁Ｗの配置と対応するように、部分モデルｍｋを仮想空間に並べて全体モデルを生成する。部分モデルｍｋは、ユーザにより指定された位置及び向きで並べてもよいが、ここでは、全体モデル生成部１０３は、実際の壁Ｗの位置関係と、部分モデルｍｋの位置関係と、が対応するように、部分モデルｍｋの位置及び向きを決定する。位置関係が対応するとは、位置関係が一致すること、又は、位置関係のずれが閾値未満であることを意味する。
【００７６】
本実施形態では、各部分モデルｍｋをどこにどの向きで配置するかを決定するために、全体モデル生成部１０３は、各画像Ｉｋの撮影方向に関する画像情報を取得する。画像情報は、撮影方向を特定可能な情報であればよく、ベクトル情報のように撮影方向を直接的に示すものであってもよいし、後述するように撮影方向を間接的に示すものであってもよい。
【００７７】
例えば、撮影画像Ｉを分割して画像Ｉｋを取得する場合には、撮影画像Ｉにおける画像Ｉｋの位置（即ち、画像Ｉｋが撮影画像Ｉ内のどこにあるか）によって、各画像Ｉｋの撮影方向を特定可能なので、本実施形態では、１枚の撮影画像Ｉにおける各画像Ｉｋの位置が画像情報に相当する場合を説明する。具体的には、撮影画像Ｉの左端にある画像Ｉ１の撮影方向（図５の撮影位置Ｐから点Ｑ１に対する方向）を基準にして考えると、その右隣に位置する画像Ｉ２の撮影方向（図５の撮影位置Ｐから点Ｑ２に対する方向）は、画像Ｉ１の撮影方向よりも右を向く。同様に、画像Ｉ１，Ｉ２よりも右側にある画像Ｉ３〜Ｉ６の各々の撮影方向は、画像Ｉ１，Ｉ２の撮影方向を更に右回転させた方向となる。このように、撮影画像Ｉ内における各画像Ｉｋの位置により相対的な撮影方向を特定可能なので、ここでは、全体モデル生成部１０３は、各画像Ｉｋの撮影画像Ｉにおける位置（例えば、Ｘｓ座標値）を参照することによって、画像情報を取得する。
【００７８】
全体モデル生成部１０３は、各画像Ｉｋの画像情報に基づいて、当該画像Ｉｋに対応する部分モデルｍｋを配置する位置及び向きを決定し、全体モデルを生成する。即ち、ここでは、全体モデル生成部１０３は、１枚の撮影画像Ｉにおける各画像Ｉｋの位置に基づいて、当該画像Ｉｋに対応する部分モデルｍｋを配置する位置及び向きを決定する。
【００７９】
例えば、全体モデル生成部１０３は、仮想空間内の基準点から各部分モデルｍｋに対する方向と、当該部分モデルｍｋに対応する画像Ｉｋの撮影方向と、が対応するように、当該部分モデルｍｋの位置及び向きを決定する。方向が対応するとは、方向が一致すること、又は、方向的なずれが閾値未満であることを意味する。基準点は、仮想空間内の任意の位置であってよく、ここでは、カメラ２０の撮影位置Ｐに対応する仮想カメラＶＰの位置とする。仮想カメラＶＰは、仮想空間の様子を描いた仮想画像を生成するための仮想的な視点である。
【００８０】
画像Ｉｋの位置と、部分モデルｍｋの位置及び向きと、の関係は、予めプログラムコードに記述されていてもよいし、数式形式又はテーブル形式のデータとしてデータ記憶部１００に記憶されていてもよい。この関係には、撮影画像Ｉにおける各画像Ｉｋの並び順と、仮想カメラＶＰから見たときの部分モデルｍｋの並び順と、が一致するように、部分モデルｍｋを配置する位置及び向きが定義されている。全体モデル生成部１０３は、各画像Ｉｋの位置に関連付けられた位置及び向きに基づいて、当該画像Ｉｋに対応する部分モデルｍｋを配置する。
【００８１】
図８に示すように、ここでは、全体モデル生成部１０３は、撮影画像Ｉにおける各画像Ｉｋの並び順に基づいて、基準点である仮想カメラＶＰを囲むように部分モデルｍｋを順番に配置する。より具体的には、まず、全体モデル生成部１０３は、仮想カメラＶＰから見て所定方向に所定距離だけ離れた位置に、画像Ｉ１に対応する部分モデルｍ１を仮想カメラＶＰの方を向くように配置する。そして、全体モデル生成部１０３は、画像Ｉ１の隣の画像Ｉ２に対応する部分モデルｍ２を、部分モデルｍ１の隣に仮想カメラＶＰの方を向くように配置する。以降同様にして、全体モデル生成部１０３は、部分モデルｍ３〜ｍ６が仮想カメラＶＰの方を向くように、右回りに部分モデルｍ３〜ｍ６を順番に並べて配置する。このように、全体モデル生成部１０３は、仮想カメラＶＰを囲むようにして並べた部分モデルｍｋに基づいて、全体モデルを生成する。
【００８２】
図９は、全体モデルの一例を示す図である。図９に示すにように、全体モデル生成部１０３は、整列した部分モデルｍｋの表面を合成してプレーンフィッティング処理を施し、１つの全体モデルＭＷを生成する。プレーンフィッティング処理は、平面の平滑化処理であり、２つ平面上の位置を平均した位置を新たな１つの平面とすることで行われるようにすればよい。このため、全体モデルＭＷは、壁Ｗの全体的な形状を再現した１つの３次元モデルとなる。
【００８３】
本実施形態では、各部分モデルｍｋは少なくとも１つの他の部分モデルｍｋと重複しているので、全体モデル生成部１０３は、各部分モデルｍｋの重複部分の位置を合わせて、全体モデルＭＷを生成することになる。また、全体モデル生成部１０３は、部屋Ｓが６つ以上の側面を有しているので、全体モデル生成部１０３は、６つ以上の側面全体を示す全体モデルＭＷを生成することになる。
【００８４】
［４．本実施形態において実行される処理］
図１０は、３次元モデル生成システムにおいて実行される処理の一例を示すフロー図である。図１０に示す処理は、制御部１１が、記憶部１２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図２に示す機能ブロックにより実行される処理の一例である。
【００８５】
図１０に示すように、まず、制御部１１は、部屋Ｓの撮影画像データを取得する（Ｓ１）。撮影画像データは、記憶部１２に記憶されていてもよいし、カメラ２０内のメモリに記憶されていてもよい。あるいは、３次元モデル生成装置１０に接続された情報記憶媒体に記憶されていてもよいし、サーバコンピュータなどに記憶されていてもよい。
【００８６】
制御部１１は、Ｓ１で取得した撮影画像データが示す撮影画像Ｉに基づいて、複数の画像Ｉｋを取得する（Ｓ２）。Ｓ２においては、制御部１１は、撮影画像Ｉを所定の位置で分割することにより、複数の画像Ｉｋを取得する。分割位置は、予め定められており、その位置を示す情報は記憶部１２に記憶させておけばよい。
【００８７】
制御部１１は、Ｓ２で取得した画像Ｉｋごとに、部分モデルｍｋを生成する（Ｓ３）。Ｓ３においては、制御部１１は、先述したように方向マップなどを利用して、各画像Ｉｋに撮影された壁Ｗ部分を示す部分モデルｍｋを生成すればよい。
【００８８】
制御部１１は、Ｓ３で生成した部分モデルｍｋを仮想空間に並べて配置する（Ｓ４）。Ｓ４においては、制御部１１は、各画像Ｉｋに対応する部分モデルｍｋを、撮影画像Ｉにおける当該画像Ｉｋの位置に対応する仮想空間内の位置及び向きに配置する。
【００８９】
制御部１１は、Ｓ４で並べた部分モデルｍｋに基づいて全体モデルＭＷを生成し（Ｓ５）、本処理は終了する。Ｓ５においては、制御部１１は、並べた部分モデルｍｋの重複部分を合成して表面をプレーンフィッティングすることによって全体モデルＭＷを生成することになる。
【００９０】
実施形態１の３次元モデル生成システム１によれば、画像Ｉｋごとに部分モデルｍｋを生成し、複数の部分モデルｍｋに基づいて全体モデルＭＷを生成するので、直方体のようなシンプルな形状ではなく、複雑な形状の空間であったとしても正確に推定することができる。また、１枚の撮影画像Ｉではなく、複数の画像Ｉｋから全体モデルＭＷを生成することで、個々の部分モデルｍｋを生成する方法は従来の手法を利用したとしても、複雑な形状の空間を推定することができる。その結果、簡易的な処理で全体モデルＭＷを生成できるので、コンピュータの処理負荷を軽減することができる。
【００９１】
また、部分モデルｍｋの重複部分の位置を合わせて全体モデルＭＷを生成することで、隙間なく部分モデルｍｋを並べることができるため、全体モデルＭＷの精度を向上させることができる。
【００９２】
また、画像Ｉｋの撮影方向に関する画像情報に基づいて部分モデルｍｋを配置する位置及び向きを決定することで、現実の空間における壁Ｗなどの配置や向きと対応するように部分モデルｍｋを配置することができるので、全体モデルＭＷの精度をより向上させることができる。また、ユーザが部分モデルｍｋの位置や向きを指定する必要がなくなるので、ユーザの負担を軽減するとともに、全体モデルＭＷを迅速に生成することができる。
【００９３】
また、１枚の撮影画像Ｉ内での各画像Ｉｋの位置に基づいて部分モデルｍｋを配置する位置や向きを決定するので、部分モデルｍｋを配置すべき位置や向きをより簡単に決定することができる。その結果、複雑な処理を実行する必要がなくなり、全体モデルＭＷを迅速に生成するとともに、３次元モデル生成装置１０の処理負荷を軽減することができる。
【００９４】
また、水平方向の３６０°が撮影された１枚の撮影画像Ｉに基づいて全体モデルＭＷを生成することで、撮影画像Ｉを一度の撮影で取得することができ、全体モデルＭＷを生成する場合の撮影の手間を軽減することができる。
【００９５】
また、画像Ｉｋは、現実空間における互いに異なる方向が撮影されたものなので、壁Ｗが広範囲に渡ったものであったとしても、その形状を再現した全体モデルＭＷを生成することができる。
【００９６】
また、部屋Ｓの一部を示す部分モデルｍｋを組み合わせて全体モデルＭＷを生成するので、部屋Ｓ全体が複雑な形状であったとしても、その形状を再現した３次元モデルを生成することができる。
【００９７】
また、部屋Ｓの壁Ｗが略直交する６つ以上の壁Ｗを有する複雑な形状であったとしても、部分モデルｍｋを組み合わせて全体モデルＭＷを生成するので、多数の壁Ｗからなる複雑な形状の部屋Ｓを再現した全体モデルＭＷを生成することができる。
【００９８】
［２．実施形態２］
次に、３次元モデル生成システム１の別実施形態を説明する。以降説明する実施形態２では、３次元モデル生成システム１のハードウェア構成は、実施形態１と同様であってよい。
【００９９】
［２−１．実施形態２の概要］
部屋Ｓは、形状が同じであったとしてもサイズは種々のものがあり、標準的なサイズというものは特に存在しない。このため、実施形態１のように全体モデルＭＷを生成しても、部屋Ｓのサイズは再現できていないことがある。この点、ベッドなどのオブジェクトＯは、サイズの個体差が少なく、大体のサイズが決まっている。即ち、オブジェクトＯは、標準的なサイズがおおよそ決まっているので、実施形態２では、この事実に着目して実際の部屋Ｓのサイズを推定し、全体モデルＭＷのサイズを調整するようにしている。
【０１００】
実施形態２では、全体モデルＭＷは、サイズパラメータλが設定されている。全体モデルＭＷのサイズは、サイズパラメータλにより変更可能である。サイズパラメータλは、標準的なサイズからの拡大率又は縮小率を示してもよいし、縦・横・高さの少なくとも１つの長さを示してもよい。
【０１０１】
図１１は、サイズパラメータλと全体モデルＭＷとの関係を示す図である。サイズパラメータλと全体モデルＭＷのサイズとの関係は、プログラムに記述された数式で定義しておけばよい。図１１に示すように、全体モデルＭＷは、サイズパラメータλに関連付けられたサイズとなる。例えば、サイズパラメータλが小さいほど全体モデルＭＷは小さくなり、サイズパラメータλが大きいほど全体モデルＭＷは大きくなる。全体モデルＭＷが生成された時点では、サイズパラメータλは初期値（例えば、１．０）となるようにしてよい。
【０１０２】
図１１の例では、サイズパラメータλは、全体モデルＭＷの高さを示している。例えば、λ＝１のときの標準的な高さをＬとすると、全体モデルＭＷの高さは、λ＊Ｌとなる。例えば、Ｌ＝２．５ｍとすると、λ＝０．８のときは全体モデルＭＷの高さは２．０ｍとなり、λ＝１．２のときは全体モデルＭＷの高さは２．５ｍとなる。
【０１０３】
なお、本実施形態では、水平方向（縦・横）及び垂直方向（高さ）の全ての比率を維持したまま、サイズが変わる場合を説明するが、水平方向の比率だけを維持してサイズが変わってもよい。水平方向の比率だけが維持される場合、全体モデルＭＷの高さは、固定値であってもよいし、ある一定範囲の中で変化してもよい。別の言い方をすれば、全体モデルＭＷは、少なくとも、上から見たときの形状が維持されていればよい。
【０１０４】
実施形態２では、上記のようにサイズを変更可能な全体モデルＭＷの上に、オブジェクトＯを示すオブジェクトモデルが配置される。以降、オブジェクトモデルは、Ｍｏｊの符号を付与する。オブジェクトモデルＭｏｊは、全体モデルＭＷのように画像Ｉｋから生成するのではなく、予め用意された３次元モデルである。オブジェクトモデルＭｏｊは、後述するオブジェクトモデルデータベースに登録されている。
【０１０５】
先述したように、オブジェクトＯのサイズは個体差が少ないので、オブジェクトモデルＭｏｊは、オブジェクトＯの一般的なサイズ（例えば、ベッドであればダブルベッドのサイズなど）となっている。このため、仮想空間における全体モデルＭＷとオブジェクトモデルＭｏｊとの相対的なサイズと、撮影画像Ｉにおける壁ＷとオブジェクトＯとの相対的なサイズと、が似るようにサイズパラメータλを調整すれば、全体モデルＭＷを実際の部屋Ｓのサイズに似せることができる。
【０１０６】
更に、実施形態２では、部屋ＳにおけるオブジェクトＯの位置及び向きと似るように、仮想空間におけるオブジェクトモデルＭｏｊの位置及び向きが調整される。以降、位置を示すパラメータにｐｊの符号を付与し、向きを示すパラメータにθｊの符号を付与する。また、仮想空間の状態は、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊに基づいて定まるので、以降、これらをまとめてモデルパラメータΦと記載する。
【０１０７】
上記のように、実施形態２では、実際の部屋Ｓの状態を再現するように、モデルパラメータΦが調整される。ここでは、ベイズ推定理論を利用して、部屋Ｓの再現度の高さを評価するようにしている。ベイズ推定理論は、現実世界の計測結果をもとに、推定したい事柄を確率的な意味で推定する手法である。ベイズ推定理論の確率が高いほど、推定したい事柄が実際に起こる蓋然性が高い。即ち、ベイズ推定理論の確率が高ければ、推定した仮想空間が実際の部屋Ｓの様子に似ていることになる。
【０１０８】
３次元モデル生成システム１は、ベイズ推定理論の確率が高くなるように、モデルパラメータΦを決める。実施形態２では、この確率を高めるために、現実空間と仮想空間との全体的なずれ具合を示す評価値ＥＳと、現実空間と仮想空間との局所的なずれ具合を示す評価値Ｅ０と、の２つの評価値を利用して、再現度の高い仮想空間を効率よく生成するようにしている。以降、この技術の詳細を説明する。
【０１０９】
［２−２．実施形態２において実現される機能］
図１２は、実施形態２の３次元モデル生成システム１で実現される機能の一例を示す機能ブロック図である。図１２に示すように、実施形態２では、データ記憶部１００、画像取得部１０１、モデル配置部１０４、仮想画像生成部１０５、及びパラメータ決定部１０６が３次元モデル生成装置１０で実現される場合を説明する。
【０１１０】
［２−２−１．データ記憶部］
実施形態２のデータ記憶部１００は、実施形態１で説明したデータに加えて、モデルパラメータΦと、オブジェクトモデルデータベースと、を記憶する。モデルパラメータΦは、パラメータ決定部１０６により値が変わる。なお、位置パラメータｐｊは、仮想空間における３次元座標が格納され、向きパラメータθｊは、３次元ベクトルが格納されてもよいし、ヨー角、ピッチ角、及びロール角により示されてもよい。
【０１１１】
図１３は、オブジェクトモデルデータベースのデータ格納例を示す図である。図１３に示すように、オブジェクトモデルデータベースには、オブジェクトＯのカテゴリと、当該カテゴリのオブジェクトＯの３次元モデルを示すオブジェクトモデルＭｏｊと、オブジェクトＯの向きと、が関連付けられている。なお、オブジェクトモデルデータベースには、オブジェクトモデルＭｏｊの実寸法を示すサイズ情報が含まれていてもよい。
【０１１２】
カテゴリは、オブジェクトＯの種類であり、被写体を分類する名称である。カテゴリは、家具や家電のような比較的大きなものであってもよいし、ベッドや椅子のような細かなものであってもよい。
【０１１３】
オブジェクトモデルＭｏｊは、標準的な形状及びサイズのオブジェクトＯの３次元モデルである。オブジェクトモデルデータベースには、オブジェクトモデルＭｏｊを示すデータが含まれていればよく、例えば、オブジェクトモデルＭｏｊの頂点の３次元座標、色情報、及びテクスチャ情報を含む。なお、実施形態２では、オブジェクトモデルＭｏｊが奥行きを有する立体的なものである場合を説明するが、オブジェクトモデルＭｏｊは、平面的なものであってもよい。平面的なものである場合、オブジェクトモデルＭｏｊは、１枚のポリゴンであってもよいし、複数枚のポリゴンを平面状につなげたものであってもよい。この場合、オブジェクトモデルＭｏｊ上に、オブジェクトＯのテクスチャ画像が張り付けられているものとする。
【０１１４】
図１３に示すように、オブジェクトモデルデータベースには、カテゴリごとに、複数の向き（姿勢）のオブジェクトモデルＭｏｊが登録されている。向きは、ヨー角、ピッチ角、及びロール角の全てにより示されてもよいが、水平面又は垂直面上の物体のロール角は一定なので、図１３のように、ヨー角及びピッチ角のみが示されてもよい。なお、水平面上に置かれるベッドなどのオブジェクトＯであれば、ピッチ角も一定なのでヨー角だけが示されてもよいし、垂直面上に置かれる壁掛け時計などのオブジェクトＯであれば、ヨー角は一定なのでピッチ角のみが示されてもよい。
【０１１５】
なお、本実施形態では、撮影画像ＩからオブジェクトＯを検出する処理を簡易化するために、オブジェクトモデルデータベースに、オブジェクトモデルＭｏｊの向きごとに、テンプレート画像が格納されているものとする。テンプレート画像は、オブジェクトの標準的な形状を示す画像であり、例えば、オブジェクトモデルＭｏｊが向いている方向から当該オブジェクトモデルＭｏｊを見た様子を示す画像であってよい。テンプレート画像は、他のデータベースに登録されていてもよいし、オブジェクトモデルＭｏｊから生成してもよい。
【０１１６】
［２−２−２．画像取得部］
画像取得部１０１は、実施形態１と同様であってよいが、現実空間に配置された第１オブジェクトと第２オブジェクトとが撮影された撮影画像Ｉを取得する。
【０１１７】
第１オブジェクトは、サイズが既知のオブジェクトであり、オブジェクトデータベースに３次元モデルが登録されているオブジェクトである。別の言い方をすれば、第１オブジェクトは、第２オブジェクトのサイズを推定する際に基準とするオブジェクトである。本実施形態では、壁Ｗ以外のオブジェクトＯが第１オブジェクトに相当する。即ち、第１オブジェクトは、部屋Ｓの中に配置された家具などである場合を説明する。このため、オブジェクトモデルＭｏｊが、第１オブジェクトを示す第１モデルの一例に相当する。
【０１１８】
第２オブジェクトは、サイズが未知のオブジェクトであり、サイズの推定対象となるオブジェクトである。本実施形態では、部屋Ｓの壁Ｗが第２オブジェクトに相当する。このため、全体モデルＭＷが、第２オブジェクトを示す第２モデルの一例に相当する。
【０１１９】
［２−２−３．モデル配置部］
モデル配置部１０４は、制御部１１を主として実現される。モデル配置部１０４は、オブジェクトモデルＭｏｊと、全体モデルＭＷと、を仮想空間に配置する。全体モデルＭＷは、実施形態１と同様の方法で生成されてもよいし、実施形態１とは異なる方法で生成されてもよい。例えば、ユーザが予めＣＡＤを利用してサイズが不明な全体モデルＭＷを描画しておいてもよい。なお、モデルパラメータλの初期値は、予め定められた値であればよく、ここではλ＝１とする。
【０１２０】
例えば、モデル配置部１０４は、撮影画像Ｉに基づいて定まる向きのオブジェクトＯを仮想空間に配置する。本実施形態では、オブジェクトモデルデータベースにテンプレート画像が登録されているので、モデル配置部１０４は、撮影画像Ｉと、所定の向きのオブジェクトＯを示すテンプレート画像と、の比較結果に基づいて定まる向きのオブジェクトモデルＭｏｊを仮想空間に配置する。この時点では、モデルパラメータΦは初期値となる。即ち、モデル配置部１０４は、撮影画像Ｉに撮影されたオブジェクトＯを検出し、当該検出したオブジェクトＯを示すオブジェクトモデルＭｏｊを初期位置に初期方向で、初期サイズの全体モデルＭＷ上に配置する。
【０１２１】
より具体的には、まず、モデル配置部１０４は、物体検出アルゴリズムに基づいて、撮影画像Ｉの中からオブジェクトＯを検出する。物体検出アルゴリズム自体は、公知の種々の手法を適用可能であり、例えば、テンプレート画像に基づくテンプレートマッチングを用いてもよいし、物体の形状的な特徴を示す特徴量の類否を用いてもよい。
【０１２２】
ここでは、物体検出アルゴリズムの一例として、テンプレートマッチングを説明する。例えば、モデル配置部１０４は、撮影画像Ｉ内の任意の領域に対して、テンプレート画像との類似度を計算する。類似度は、領域内の被写体の輪郭と、テンプレート画像が示す物体の輪郭と、の類似具合を示す。被写体の輪郭は、エッジ検出処理により検出されるようにすればよい。モデル配置部１０４は、類似度が閾値以上である領域内に、テンプレート画像が示す物体が撮影されていると判定することになる。
【０１２３】
モデル配置部１０４は、物体検出アルゴリズムによる検出結果に基づいて、オブジェクトモデルＭｏｊの位置パラメータｐｊと向きパラメータθｊの初期値を決定する。
【０１２４】
例えば、モデル配置部１０４は、撮影画像ＩにおいてオブジェクトＯが撮影された位置に基づいて、当該オブジェクトＯを示すオブジェクトモデルＭｏｊの位置パラメータｐｊの初期値を決定する。モデル配置部１０４は、オブジェクトＯが撮影された位置の２次元座標を３次元座標に変換し、当該３次元座標を位置パラメータｐｊの初期値とする。別の言い方をすれば、モデル配置部１０４は、カメラ２０及びオブジェクトＯの位置関係と、仮想カメラＶＰ及びオブジェクトモデルＭｏｊの位置関係と、が対応するように、位置パラメータｐｊの初期値を決定する。「対応する」とは、カメラ２０及びオブジェクトＯを結ぶベクトルと、仮想カメラＶＰ及びオブジェクトモデルＭｏｊを結ぶベクトルと、が同じこと又は違いが閾値未満であることを意味する。
【０１２５】
また例えば、モデル配置部１０４は、テンプレート画像に関連付けられた向きに基づいて、向きパラメータθｊの初期値を決定する。本実施形態では、複数の向きのテンプレート画像が用意されているので、モデル配置部１０４は、撮影画像Ｉ内の領域との類似度が閾値以上となったテンプレート画像に関連付けられた向きを取得することになる。
【０１２６】
上記のように、モデル配置部１０４は、初期値のモデルパラメータλが示すサイズの全体モデルＭｏｊを仮想空間に配置し、その上に、初期値の位置パラメータｐｊが示す初期位置に、初期値の向きパラメータθｊが示す初期方向を向くオブジェクトモデルＭｏｊを配置することになる。
【０１２７】
図１４は、全体モデルＭＷとオブジェクトモデルＭｏｊが配置された仮想空間の一例を示す図である。ここでは、撮影画像Ｉからオブジェクトｏ１，ｏ４，ｏ５，ｏ６，ｏ８が検出され、オブジェクトｏ２，ｏ３，ｏ７は検出されたかった場合を説明する。このように、部屋Ｓ内の全てのオブジェクトＯが検出されなければならない訳ではなく、検出された範囲でオブジェクトモデルＭｏｊが配置されるようにすればよい。図１４に示すように、モデル配置部１０４は、全体モデルＭＷの床面上に、オブジェクトモデルＭｏ１，Ｍｏ４，Ｍｏ５，Ｍｏ６，Ｍｏ８を配置する。即ち、本実施形態では、撮影画像Ｉには、複数のオブジェクトＯが撮影されているので、仮想空間には、複数のオブジェクトＯにそれぞれ対応する複数のオブジェクトモデルＭｏｊが配置されることになる。
【０１２８】
なお、実際のオブジェクトＯは、テンプレート画像が示す物体の形状と似ているが完全に一致しているわけではないので、オブジェクトモデルＭｏｊの位置や向きは、大まかに合っているだけであり、細かくは合わないことがある。また、サイズパラメータλがまだ調整されていないので、オブジェクトモデルＭｏｊに比べて全体モデルＭＷが大きかったり小さかったりすることがある。このため、後述するパラメータ決定部１０６により、モデルパラメータΦが調整されることになる。
【０１２９】
［２−２−４．仮想画像生成部］
仮想画像生成部１０５は、制御部１１を主として実現される。仮想画像生成部１０５は、標準的なサイズのオブジェクトＯを示すオブジェクトモデルＭｏｊと、サイズが標準的ではない壁Ｗを示す全体モデルＭＷと、が配置された仮想空間の様子を示す仮想画像を生成する。先述したように、壁Ｗはサイズの個体差が大きく、標準的なサイズが特に決まっていないので、全体モデルＭＷが生成された時点では、そのサイズは現実の壁Ｗとはまだ合っていない可能性がある。仮想画像生成部１０５は、仮想空間における全体モデルＭＷやオブジェクトモデルＭｏｊの頂点を所定の行列式により座標変換することによって、仮想画像を生成する。仮想空間に配置された３次元モデルを２次元的な画像として表す方法自体は、公知の種々の方法を適用可能である。
【０１３０】
図１５は、仮想画像の一例を示す図である。図１５に示すように、仮想画像生成部１０５は、仮想カメラから仮想空間を見た様子を示す仮想画像Ｄを生成する。撮影画像Ｉと同様に、ここでは、仮想画像Ｄの左上を原点ＯＳとし、ＸＳ軸及びＹＳ軸が設定されるものとする。図１５の撮影画像Ｉでは、壁Ｗの一部がオブジェクトＯで隠れているので、仮想画像Ｄでも、全体モデルＭＷの一部がオブジェクトモデルＭｏｊで隠れている。別の言い方をすれば、撮影画像Ｉでは、壁ＷはオブジェクトＯの奥に撮影されているので、仮想画像Ｄでは、全体モデルＭＷはオブジェクトモデルＯＷの奥に描かれることになる。
【０１３１】
なお、仮想画像Ｄの縦横比、サイズ、及び解像度と、撮影画像Ｉの縦横比、サイズ、及び解像度と、は同じであるものとする。このため、仮想画像ＤのＸＳ座標値の最大値は、撮影画像Ｉと同じＸＳＭＡＸとなり、仮想画像ＤのＹＳ座標値の最大値は、撮影画像Ｉと同じＹＳＭＡＸとなる。また、仮想カメラの画角は、カメラ２０の画角に合わせて設定すればよい。本実施形態では、カメラ２０は水平方向の画角が３６０°であり、垂直方向の画角が１８０°であるので、仮想カメラにも同じ条件の画角を設定すればよい。このため、仮想画像生成部１０５は、撮影画像Ｉと同様に、仮想空間において水平方向の全ての方向が表れた仮想画像Ｄを生成することになる。
【０１３２】
［２−２−５．パラメータ決定部］
パラメータ決定部１０６は、制御部１１を主として実現される。パラメータ決定部１０６は、モデルパラメータΦを決定する。即ち、パラメータ決定部１０６は、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊの少なくとも１つを初期値から変更する。
【０１３３】
例えば、パラメータ決定部１０６がサイズパラメータλを変更すると、変更後のサイズパラメータλが示すサイズとなるように全体モデルＭＷの頂点座標が変化する。また例えば、パラメータ決定部１０６が位置パラメータｐｊを変更すると、変更後の位置パラメータｐｊが示す位置にオブジェクトモデルＭｏｊが移動する。また例えば、パラメータ決定部１０６が向きパラメータθｊを変更すると、変更後の向きパラメータθｊが示す向きにオブジェクトモデルＭｏｊの向きが変わる。
【０１３４】
パラメータ決定部１０６は、撮影画像Ｉと仮想画像Ｄとに基づいてモデルパラメータΦを決定すればよいが、ここでは、その一例として、評価値ＥＳを利用して大まかにモデルパラメータΦを決定するレイアウト推定処理と、評価値Ｅ０を利用して詳細にモデルパラメータΦを決定する詳細決定処理と、を説明する。
【０１３５】
［レイアウト推定処理］
まず、レイアウト推定処理を説明する。レイアウト推定処理では、仮想画像Ｄの方向マップが撮影画像Ｉの方向マップと似るように、モデルパラメータΦが決定される。ここでは、モデルパラメータΦのうち、サイズパラメータλと位置パラメータｐｊとがレイアウト推定処理で決定される場合を説明する。このため、レイアウト推定処理では、向きパラメータθｊは、初期値のままでよい。
【０１３６】
まず、パラメータ決定部１０６は、撮影画像Ｉと仮想画像Ｄのそれぞれの方向マップを生成する。方向マップの生成方法は、実施形態１で説明した方法と同様であってよく、物体の輪郭を示す線分の位置関係に基づいて方向マップが生成されるようにすればよい。本実施形態では、パラメータ決定部１０６は、撮影画像Ｉの方向マップのうち、オブジェクトＯが撮影された部分をマスクし、仮想画像Ｄの方向マップのうち、オブジェクトモデルＭｏｊが描かれた部分をマスクする。別の言い方をすれば、パラメータ決定部１０６は、撮影画像Ｉの方向マップのうち、オブジェクトＯに隠れていない壁Ｗの部分を比較対象とし、仮想画像Ｄの方向マップのうち、オブジェクトモデルＭｏｊに隠れていない全体モデルＭＷの部分を比較対象とする。
【０１３７】
図１６は、オブジェクトＯの部分がマスクされた撮影画像Ｉの方向マップを示す図であり、図１７は、オブジェクトモデルＭｏｊの部分がマスクされた仮想画像Ｄの方向マップを示す図である。パラメータ決定部１０６は、図１６に示す撮影画像Ｉの方向マップと、図１７に示す仮想画像Ｄの方向マップと、に基づいて、下記の数式１により評価値ＥＳを計算する。
【０１３８】
【数１】
2017203709.tif 000003
【０１３９】
数式１のＮｐｉｘは、撮影画像Ｉ及び仮想画像Ｄの総画素数である。このため、Ｎｐｉｘ＝ＸＳＭＡＸ＊ＹＳＭＡＸとなる。数式１のＮＣは、撮影画像Ｉと仮想画像Ｄとで方向マップの方向が一致した画素数であり、具体的には、下記の数式２により算出する。
【０１４０】
【数２】
2017203709.tif 000004
【０１４１】
数式２のｍは、任意の画素を示し、ｌ（Ｉｍ）は、撮影画像Ｉの方向マップが示す画素ｍの方向である。数式２のｌ（Ｄｍ）は、仮想画像Ｄの方向マップが示す画素ｍの方向である。このため、数式２の右辺は、撮影画像Ｉの方向マップが示す方向と、仮想画像Ｄの方向マップが示す方向と、が一致する画素の総数を意味する。
【０１４２】
数式１に示すように、評価値ＥＳは、撮影画像Ｉの方向マップと仮想画像Ｄの方向マップとの一致度を示す。ここでは、評価値ＥＳが低いことは、方向的な一致度が高いことを示し、評価値ＥＳが高いことは、方向的な一致度が低いことを示す。方向マップの一致度は、全体モデルＭＷのサイズとオブジェクトモデルＭｏｊの位置に依存するため、パラメータ決定部１０６は、評価値ＥＳが低くなるように、サイズパラメータλと位置パラメータｐｊとを調整する。
【０１４３】
例えば、サイズパラメータλが小さすぎると、全体モデルＭＷがオブジェクトモデルＭｏｊに隠れる部分が実際よりも多くなる。この場合、サイズパラメータλを大きくすると、一致度が上がり評価値ＥＳが小さくなる。また例えば、サイズパラメータλが大きすぎると、全体モデルＭＷがオブジェクトモデルＭｏｊに隠れる部分が実際よりも少なくなる。この場合、サイズパラメータλを小さくすると、一致度が上がり評価値ＥＳが小さくなる。また例えば、全体モデルＭＷとオブジェクトモデルＭｏｊとの相対的な位置関係が実際と異なっていると、方向が一致する画素数が少なくなる。この場合、実際のオブジェクトＯの位置に近づくように位置パラメータｐｉを変化させると、一致度が上がり評価値ＥＳが小さくなる。
【０１４４】
パラメータ決定部１０６は、評価値ＥＳが閾値未満となるまで、サイズパラメータλと位置パラメータｐｊを調整する。例えば、パラメータ決定部１０６は、サイズパラメータλの初期値と位置パラメータｐｊの初期値とに基づいて、サイズパラメータλの候補値と位置パラメータｐｊの候補値を選出する。候補値は、初期値との差が閾値未満となるものであればよく、複数個の候補値が選出されてよい。
【０１４５】
パラメータ決定部１０６は、サイズパラメータλの候補値及び位置パラメータｐｊの候補値の組み合わせごとに、仮想画像Ｄを生成して評価値ＥＳを算出する。パラメータ決定部１０６は、当該組み合わせの中から、評価値ＥＳが最小又は閾値未満となる候補値の組み合わせを特定する。パラメータ決定部１０６は、当該特定した候補値に基づいて、サイズパラメータλと位置パラメータｐｊとを更新する。本実施形態では、上記説明したレイアウト推定処理により、サイズパラメータλと位置パラメータｐｊが大まかに調整される。
【０１４６】
［詳細決定処理］
次に、詳細決定処理を説明する。現実空間では、オブジェクトＯはランダムに配置されるのではなく、ある一定の規則に沿って配置されることが多い。例えば、本実施形態のような部屋Ｓであれば、家具などのオブジェクトＯは、人間が使いやすいように、所定法則のもとで配置される。例えば、ベッドや椅子は、壁と平行に配置され、各オブジェクトＯは互いに重ならないように配置されることが多い。
【０１４７】
この点に着目し、詳細決定処理では、現実空間の壁Ｗ及びオブジェクトＯの相対的な関係と、仮想空間の全体モデルＭＷ及びオブジェクトモデルＭｏｊの相対的な関係と、が似るように、モデルパラメータΦが調整される。ここでは、モデルパラメータΦのうち、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊの全てが詳細決定処理で決定される場合を説明する。
【０１４８】
なお、評価値Ｅ０は、全体モデルＭＷ及びとオブジェクトモデルＭｏｊの相対的な関係を評価するための評価値Ｅｏ，ωと、オブジェクトモデルＭｏｊどうしの相対的な関係を評価するための評価値Ｅｏ，ｏと、の２種類が用意されている。また、ここでは、処理を簡略化するために、全体モデルＭＷの床面にオブジェクトモデルＭｏｊを投影した形状を用いて、評価値Ｅｏ，ω，Ｅｏ，ｏを評価する。
【０１４９】
図１８は、仮想空間を上から見た様子を示す図である。図１８に示すように、パラメータ決定部１０６は、オブジェクトモデルＭｏｊを上方向から全体モデルＭＷの床面に正射影する。そして、パラメータ決定部１０６は、下記の数式３により評価値Ｅｏ，ωを計算する。
【０１５０】
【数３】
2017203709.tif 000005
【０１５１】
数式３のｐ（ｏｊ）は、正射影におけるオブジェクトモデルＭｏｊの位置である。ｐ（ωｉ＊（ｊ））は、全体モデルＭＷのうち、オブジェクトモデルＭｏｊに最も近い壁の位置である。このため、数式３の右辺第１項は、仮想空間における全体モデルＭＷと、オブジェクトモデルＭｏｊと、の距離を示す。この距離が短いほど評価値Ｅｏ，ω（Φ）が小さくなる。即ち、オブジェクトモデルＭｏｊが全体モデルＭＷに近いほど、部屋Ｓの再現度が高くなる。
【０１５２】
数式３のνｎは、重み付け係数である。重み付け係数は、任意の値であってよく、例えば、０．５程度であってよい。ｎ（ｏｊ）は、オブジェクトモデルＭｏｊの方向である。ｎ（ωｉ＊（ｊ））は、全体モデルＭＷのうち、オブジェクトモデルＭｏｊに最も近い壁の方向である。このため、数式３の右辺第２項は、仮想空間における全体モデルＭＷと、オブジェクトモデルＭｏｊと、の方向的なずれ具合を示すことになる。方向的なずれ具合が小さいほど評価値Ｅｏ，ω（Φ）が小さくなる。即ち、オブジェクトモデルＭｏｊが近くの全体モデルＭＷと同じ方向を向いているほど、再現度が高くなる。
【０１５３】
また、パラメータ決定部１０６は、下記の数式４により評価値Ｅｏ，ｏを計算する。
【０１５４】
【数４】
2017203709.tif 000006
【０１５５】
数式４のＡは、あるオブジェクトモデルＭｏｊを全体モデルＭＷの床面に正射影したときの領域ｂ（ｏｊ）と、他の任意のオブジェクトモデルＭｏｊを全体モデルＭＷの床面に正射影したときの領域ｂ（ｏｋ）と、の重なり具合を示すものである。このため、数式４の右辺は、オブジェクトモデルＭｏｊ同士の重なり部分が大きいほど高くなり、重なり部分が小さいほど小さくなる。即ち、オブジェクトモデルＭｏｊが近くのオブジェクトモデルＭｏｊと重なっていない場合に再現度が高くなる。
【０１５６】
パラメータ決定部１０６は、評価値Ｅｏ，ωと評価値Ｅｏ，ｏとに基づいて、モデルパラメータΦを決定する。例えば、パラメータ決定部１０６は、評価値Ｅｏ，ω及び評価値Ｅｏ，ｏがともに閾値未満となるように、モデルパラメータΦを決定する。
【０１５７】
例えば、レイアウト推定処理と同様に、パラメータ決定部１０６は、サイズパラメータλの候補値、位置パラメータｐｊの候補値、及び向きパラメータθｊの候補値を選出する。パラメータ決定部１０６は、これら候補値の中から、評価値Ｅｏ，ω及び評価値Ｅｏ，ｏが最小となる候補値の組み合わせを特定する。パラメータ決定部１０６は、当該特定した候補値に基づいて、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを更新する。
【０１５８】
図１９及び図２０は、モデルパラメータΦが調整された場合の仮想空間の様子を示す図である。図１９に示すように、モデルパラメータΦが調整されると、仮想空間の状態が現実空間の状態に近づく。例えば、図２０に示すように、オブジェクトモデルＭｏｊに対して全体モデルＭＷが小さすぎる場合には、サイズパラメータλを大きくすることで評価値ＥＳや評価値ＥＯが小さくなり、実際の部屋Ｓのサイズに近づく。即ち、全体モデルＭＷ及びオブジェクトモデルＭｏｊの相対的なサイズの関係と、部屋Ｓ及びオブジェクトＯの相対的なサイズの関係と、が似るように、サイズパラメータλが決定されることになる。
【０１５９】
また、オブジェクトモデルＭｏｊが全体モデルＭＷから遠かったり壁と平行でなかったりした場合やオブジェクトモデルＭｏｊどうしが重なっていたりすると評価値ＥＯが大きくなってしまうが、全体モデルＭＷの近くに移動するように位置パラメータｐｊを変更したり、全体モデルＭＷと平行になるように向きパラメータθｊを変更したり、オブジェクトモデルＭｏｊが互いに重ならないように位置パラメータｐｊ及び向きパラメータθｊを調整したりすることで、実際の部屋Ｓ内のオブジェクトＯの配置に近づく。即ち、全体モデルＭＷ及びオブジェクトモデルＭｏｊの相対的な位置及び向きと、部屋Ｓ及びオブジェクトＯの相対的な位置及び向きと、が似るように、位置パラメータｐｊ及び向きパラメータθｊが決定されることになる。
【０１６０】
上記のように、パラメータ決定部１０６は、撮影画像Ｉと仮想画像Ｄとの比較結果に基づいて、全体モデルＭＷのサイズを示すサイズパラメータλを決定する。例えば、サイズ決定部１０５は、撮影画像Ｉにおいて壁Ｗが撮影された画素と、仮想画像Ｄにおいて全体モデルＭＷが描かれた画素と、の比較結果に基づいて、サイズパラメータλを決定する。例えば、パラメータ決定部１０６は、撮影画像Ｉにおいて壁Ｗが撮影された画素と、仮想画像Ｄにおいて全体モデルＭＷが描かれた画素と、の一致度が閾値以上となるように、サイズパラメータλを決定する。ここでの一致度とは、上記説明した方向マップの一致度であってもよいし、画像の中での大きさの一致度であってもよい。
【０１６１】
なお、パラメータ決定部１０６は、撮影画像ＩにおいてオブジェクトＯが撮影された画素と、仮想画像ＤにおいてオブジェクトモデルＭｏｊが描かれた画素と、の比較結果に基づいて、サイズパラメータλを決定するようにしてもよい。この場合、パラメータ決定部１０６は、撮影画像ＩにおいてオブジェクトＯが撮影された画素と、仮想画像ＤにおいてオブジェクトモデルＭｏｊが描かれた画素と、の一致度が閾値以上となるように、サイズパラメータλを決定する。
【０１６２】
また、パラメータ決定部１０６は、壁ＷのうちオブジェクトＯで隠れた部分以外の部分（即ち、壁ＷのうちオブジェクトＯに隠れずに撮影画像Ｉに撮影された部分）と、全体モデルＭＷのうちオブジェクトモデルＭｏｊで隠れた部分以外の部分（即ち、全体モデルＭＷのうちオブジェクトモデルＭｏｊに隠れずに仮想画像Ｄに描かれた領域）と、の比較結果に基づいて、サイズパラメータλを決定する。即ち、パラメータ決定部１０６は、撮影画像ＩにおいてオブジェクトＯが撮影された領域と、仮想画像ＤにおいてオブジェクトモデルＭｏｊが描かれた領域と、はサイズパラメータλを決定するにあたり比較対象から外して参照しないことになる。
【０１６３】
また、パラメータ決定部１０６は、撮影画像Ｉと仮想画像Ｄとの比較結果に基づいて、オブジェクトモデルＭｏｊの位置を示す位置パラメータｐｊを決定する。例えば、パラメータ決定部１０６は、撮影画像ＩにおいてオブジェクトＯが撮影された画素と、仮想画像ＤにおいてオブジェクトモデルＭｏｊが描かれた画素と、の比較結果に基づいて、位置パラメータｐｊを決定する。
【０１６４】
また、パラメータ決定部１０６は、撮影画像Ｉの各画素に撮影されたオブジェクト（ここでは、壁ＷとオブジェクトＯの両方を意味する。）の向きと、仮想画像Ｄの各画素に描かれたモデル（ここでは、全体モデルＭＷとオブジェクトモデルＭｏｊの両方を意味する。）の向きと、の比較結果に基づいて、サイズパラメータλを決定する。即ち、パラメータ決定部１０６は、これらの向きの一致度が閾値以上となるように、サイズパラメータλを決定する。
【０１６５】
なお、上記では、評価値ＥＳに基づいてサイズパラメータλと位置パラメータｐｊが決定される場合を説明したが、評価値ＥＳに基づいて向きパラメータθｊが決定されてもよい。即ち、パラメータ決定部１０６は、撮影画像Ｉと仮想画像Ｄとの比較結果に基づいて、オブジェクトモデルＭｏｊの向きを示す向きパラメータθｊを決定するようにしてもよい。例えば、パラメータ決定部１０６は、撮影画像ＩにおいてオブジェクトＯが撮影された画素と、仮想画像ＤにおいてオブジェクトモデルＭｏｊが描かれた画素と、の比較結果に基づいて、向きパラメータθｊを決定する。
【０１６６】
また、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係に基づいて、サイズパラメータλを決定する。即ち、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係と、オブジェクトＯと壁Ｗとの現実空間における相対的な関係と、の一致度が閾値以上となるように、サイズパラメータλを決定する。
【０１６７】
また、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係に基づいて、オブジェクトモデルＭｏｊの位置を示す位置パラメータｐｊを決定する。即ち、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係と、オブジェクトＯと壁Ｗとの現実空間における相対的な関係と、の一致度が閾値以上となるように、位置パラメータｐｊを決定する。ここでの一致度とは、上記説明した方向マップの一致度であってもよいし、画像の中での大きさの一致度であってもよい。
【０１６８】
また、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係に基づいて、オブジェクトモデルＭｏｊの向きを示す向きパラメータθｊを決定する。即ち、パラメータ決定部１０６は、オブジェクトモデルＭｏｊと全体モデルＭＷとの仮想空間における相対的な関係と、オブジェクトＯと壁Ｗとの現実空間における相対的な関係と、の一致度が閾値以上となるように、向きパラメータθｊを決定する。ここでの一致度とは、上記説明した方向マップの一致度であってもよいし、画像の中での大きさの一致度であってもよい。
【０１６９】
また、パラメータ決定部１０６は、複数のオブジェクトＯの各々の仮想空間における相対的な関係に基づいて、サイズパラメータλを決定する。例えば、パラメータ決定部１０６は、複数のオブジェクトＯの各々の仮想空間における相対的な関係が所定の関係を見たすように、サイズパラメータλを決定する。所定の関係とは、オブジェクトモデルＭｏｊどうしが重ならない関係であり、サイズパラメータλが小さすぎると、オブジェクトモデルＭｏｊを配置する場所がなくなり、オブジェクトモデルＭｏｊが重なってしまうので、オブジェクトモデルＭｏｊが重ならない程度に十分な大きさのサイズパラメータλが決定される。
【０１７０】
また、パラメータ決定部１０６は、複数の全体モデルＭＷの各々の仮想空間における相対的な関係に基づいて、複数の全体モデルＭＷの各々の位置を示す位置パラメータｐｊを決定する。例えば、パラメータ決定部１０６は、複数のオブジェクトＯの各々の仮想空間における相対的な関係が所定の関係を見たすように、位置パラメータｐｊを決定する。所定の関係とは、オブジェクトモデルＭｏｊどうしが重ならない関係であり、オブジェクトモデルＭｏｊが重ならない位置又は向きとなるように、位置パラメータｐｊが決定される。
【０１７１】
また、パラメータ決定部１０６は、複数の全体モデルＭＷの各々の仮想空間における相対的な関係に基づいて、複数の全体モデルＭＷの各々の向きを示す向きパラメータθｊを決定する。例えば、パラメータ決定部１０６は、複数のオブジェクトＯの各々の仮想空間における相対的な関係が所定の関係を見たすように、向きパラメータθｊを決定する。所定の関係とは、オブジェクトモデルＭｏｊどうしが重ならない関係であり、オブジェクトモデルＭｏｊが重ならない位置又は向きとなるように、向きパラメータθｊが決定される。
【０１７２】
［２−３．本実施形態において実行される処理］
図２１は、３次元モデル生成システム１において実行される処理の一例を示すフロー図である。図２１に示す処理は、制御部１１が、記憶部１２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図１２に示す機能ブロックにより実行される処理の一例である。なお、実施形態１と同様の方法により全体モデルＭＷが生成される場合には、図１０の処理の後に図２１に示す処理が実行されるようにしてよい。
【０１７３】
図２１に示すように、まず、制御部１１は、オブジェクトモデルデータベースに基づいて、撮影画像Ｉに撮影されたオブジェクトＯを検出する（Ｓ１０）。Ｓ１０においては、先述したように、制御部１１は、テンプレート画像とのテンプレートマッチングにより、撮影画像ＩにおけるオブジェクトＯの有無を検出することになる。
【０１７４】
制御部１１は、初期値のサイズパラメータλに基づいて、全体モデルＭＷを仮想空間に配置し（Ｓ１１）、当該全体モデルＭＷの上に、初期値の位置パラメータｐｊ及び向きパラメータθｊに基づいて、Ｓ１０で検出したオブジェクトのオブジェクトモデルＭｏｊを配置する（Ｓ１２）。Ｓ１１においては、制御部１１は、初期値のサイズパラメータλが示すサイズの全体モデルＭＷを仮想空間に配置し、撮影画像Ｉに基づいて仮想視点ＶＰを配置する。Ｓ１２においては、制御部１１は、撮影画像ＩにおいてオブジェクトＯが撮影された位置を示す２次元座標を３次元座標に変換して位置パラメータｐｊの初期値とし、テンプレート画像に関連付けられた向きを向きパラメータθｊの初期値とする。
【０１７５】
制御部１１は、仮想カメラＶＰから仮想空間を見た様子を示す仮想画像Ｄを生成する（Ｓ１３）。なお、仮想カメラＶＰの画角などのパラメータは、カメラ２０に対応する値を示すように、予め記憶部１２に記憶されているものとする。Ｓ１３においては、制御部１１は、全体モデルＭＷ及びオブジェクトモデルＭｏｊの頂点の３次元座標を２次元座標に変換することにより、仮想画像を生成する。
【０１７６】
制御部１１は、撮影画像Ｉの方向マップと、仮想画像Ｄの方向マップと、に基づいてレイアウト推定処理を実行し、サイズパラメータλと位置パラメータｐｊとを決定する（Ｓ１４）。Ｓ１４においては、制御部１１は、数式１及び２に基づいて評価値ＥＳを計算し、評価値ＥＳが最小となるサイズパラメータλと位置パラメータｐｊを決定する。
【０１７７】
制御部１１は、仮想空間の相対的な関係に基づいて、詳細決定処理を実行し、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを決定する（Ｓ１５）。Ｓ１５においては、制御部１１は、評価値ＥＯを計算し、評価値ＥＯが最小となるサイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを決定する。なお、評価値ＥＳ，ＥＯが十分に小さくなるまで、Ｓ１４とＳ１５の処理を繰り返してもよい。
【０１７８】
実施形態２の３次元モデル生成システム１によれば、サイズの個体差の少ないオブジェクトＯに着目して、全体モデルＭＷとオブジェクトモデルＭｏｊとの相対的な関係からサイズパラメータλを調整するため、比較的簡易な処理によりサイズパラメータλを推定でき、部屋Ｓのサイズを推定する場合の撮影の手間を省きつつ、コンピュータの処理負荷を軽減することができる。
【０１７９】
また、オブジェクトＯをマスクした撮影画像Ｉと、オブジェクトモデルＭｏｊをマスクした仮想画像Ｄと、の比較結果に基づいてサイズパラメータλを推定することで、現実空間を推定するうえで信頼性の低い部分を排除したうえでサイズパラメータλを調整するので、サイズパラメータλの精度を上げることができる。更に、信頼性の低い部分に対する無駄な処理を実行しないので、コンピュータの処理負荷を軽減することができる。
【０１８０】
また、撮影画像Ｉに基づいて定まる向きのオブジェクトモデルＭｏｊを配置することによって、仮想空間にオブジェクトモデルＭｏｊを配置したときの向きの精度が向上する部屋Ｓ内の様子の再現度を高めることができる。例えば、オブジェクトモデルＭｏｊの初期の向きを、実際のオブジェクトＯの向きに大まかに合わせることによって、その後のサイズパラメータλや位置パラメータｐｊの調整を簡単にすることができるので、その後の処理におけるコンピュータの処理負荷を軽減することもできる。
【０１８１】
また、撮影画像Ｉの方向マップと、仮想画像Ｄの方向マップと、を利用して位置パラメータｐｊやサイズパラメータλを推定することで、位置パラメータｐｊやサイズパラメータλの精度を上げることができる。また、先述したように、これら方向マップを利用して向きパラメータθｊを推定してもよく、この場合は、向きパラメータθｊの精度を上げることができる。
【０１８２】
また、サイズの個体差の少ないオブジェクトＯに着目して、全体モデルＭＷとオブジェクトモデルＭｏｊとの相対的な関係からサイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを調整するため、比較的簡易な処理によりこれらを推定でき、部屋ＳのサイズやオブジェクトＯの位置及び向きを推定する場合の撮影の手間を省きつつ、コンピュータの処理負荷を軽減することができる。
【０１８３】
また、評価値Ｅｏ，ωに基づいてサイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを調整することで、現実世界における壁ＷとオブジェクトＯとの関係の経験則を反映することができるので、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊの精度を高めることができる。
【０１８４】
また、評価値Ｅｏ，ｏに基づいてサイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊを調整することで、現実世界におけるオブジェクトＯどうしの関係の経験則を反映することができるので、サイズパラメータλ、位置パラメータｐｊ、及び向きパラメータθｊの精度を高めることができる。
【０１８５】
また、オブジェクトモデルＭｏｊは、奥行きを有する立体形状であるので、より再現度の高い仮想空間を生成することができる。
【０１８６】
また、部屋Ｓの中に配置された家具であるオブジェクトＯをもとにサイズパラメータλを決定するので、現実世界の部屋Ｓを再現することができる。
【０１８７】
［３．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１８８】
［３−１．実施形態１に関する変形例］
例えば、実施形態１では、ある１つの部屋Ｓの全体モデルＭＷを生成する場合を説明したが、あるフロアに複数の部屋Ｓが配置されている場合、部屋Ｓごとに全体モデルＭＷが生成し、これら複数の全体モデルＭＷが並べられることにより、仮想空間においてフロア全体を再現するようにしてもよい。
【０１８９】
図２２は、実施形態１に関する変形例の機能ブロック図である。図２２に示すように、本変形例では、実施形態１で説明した機能に加えて、フロアモデル生成部が実現される。フロアモデル生成部１０７は、制御部１１を主として実現される。
【０１９０】
本変形例のデータ記憶部１００は、フロア内の部屋Ｓごとに撮影画像データを記憶しているものとする。即ち、データ記憶部１００は、あるフロアにおける複数の部屋Ｓの各々の撮影画像データを記憶する。また、データ記憶部１００は、フロア内における部屋Ｓの配置を示すデータを記憶してもよい。即ち、データ記憶部１００は、部屋Ｓの位置関係を示すデータを記憶してもよい。
【０１９１】
画像取得部１０１は、同じフロアにおける複数の部屋Ｓの各々で撮影された複数の画像Ｉｋを取得することになる。画像Ｉｋを取得する方法は、実施形態１と同様であってよく、例えば、画像取得部１０１は、ある部屋Ｓの撮影画像Ｉを分割することによって複数の画像Ｉｋを取得してよい。
【０１９２】
部分モデル生成部１０２は、各部屋Ｓに対応する部分モデルｍｋを生成する。全体モデル生成部１０３は、各部屋Ｓに対応する全体モデルＭＷを生成する。部分モデルｍｋ及び全体モデルＭＷの生成方法は、実施形態１と同様であってよい。
【０１９３】
フロアモデル生成部１０７は、全体モデル生成部１０３が生成した複数の全体モデルＭＷに基づいて、フロアの全体的な３次元モデルを生成する。フロアモデル生成部１０７は、仮想空間において、所定の配置となるように複数の全体モデルＭＷを並べる。ここでは、フロアモデル生成部１０７は、フロアにおける部屋Ｓの配置を示すデータに基づいて、各全体モデルＭＷが同じ配置となるように仮想空間に配置することでフロア全体の３次元モデルを生成することになる。
【０１９４】
上記変形例によれば、フロア全体を示す３次元モデルを比較的簡易な処理により生成することができる。
【０１９５】
なお、実施形態１では、画像Ｉｋの方向マップを利用して部分モデルｍｋを生成する場合を説明したが、画像Ｉｋから部分モデルｍｋを生成する方法自体は、公知の種々の手法を適用可能である。例えば、部分モデル生成部１０２は、物体の幾何学的な特徴量を示すジオメトリックコンテクストを利用して部分モデルｍｋを生成してよい。ジオメトリックコンテクストは、画像Ｉｋの下側（床付近）の精度が高いことが知られているので、画像Ｉｋの下側はジオメトリックコンテクストを利用し、上側は方向マップを利用してもよい。このように複数のモデル生成方法を組み合せることによって部分モデルｍｋを生成してもよい。
【０１９６】
また例えば、各画像Ｉｋの撮影範囲が重複している場合を説明したが、必ずしも画像Ｉｋどうしの撮影範囲は重複していなくてもよい。例えば、画像取得部１０１は、互いに重複しないように撮影画像Ｉを所定枚数に分割することによって、画像Ｉｋを取得してもよい。また例えば、画像取得部１０１は、画像Ｉｋどうしに隙間が空くように、撮影画像Ｉから画像Ｉｋを取得してもよい。更に、各画像Ｉｋのサイズや解像度などは、互いに異なっていてもよい。
【０１９７】
また例えば、向きパラメータθｊの初期値を推定するために、オブジェクトモデルデータベースに種々の向きのオブジェクトモデルＭｏｊが格納されている場合を説明したが、インターネット上のサーバコンピュータが配布している３次元モデルを利用して、初期状態のオブジェクトモデルＭｏｊを配置してもよい。その際に、条件付き確率分布を利用することで撮影画像ＩのオブジェクトＯと似た向きのオブジェクトモデルＭｏｊを探し、その向きを向きパラメータθｊの初期値としてもよい。
【０１９８】
また例えば、各画像ＩＫの撮影画像Ｉ内での位置に基づいて、各部分モデルｍｋを配置する位置及び向きが決定される場合を説明したが、画像Ｉｋは、１枚の撮影画像Ｉから分割されたものでなくてもよいので、この場合は、他の方法によって、部分モデルｍｋを配置する位置及び向きが決定されてもよい。例えば、画像Ｉｋごとに撮影方向を関連付けておき、当該撮影方向に基づいて部分モデルｍｋの位置及び向きが決定されるようにしてもよい。この場合、撮影方向は、画像Ｉｋの取得順（撮影順）に基づいて決定されてもよいし、ユーザが指定してもよい。
【０１９９】
［３−２．実施形態２に関する変形例］
また例えば、オブジェクトＯは、水平面に置かれているものに限られず、垂直面に置かれているものでもよい。実施形態２において、ベッドを示すオブジェクトモデルＭｏｊは、床上にしか配置されず、壁掛け時計を示すオブジェクトモデルＭｏｊは、壁上にしか配置されないので、オブジェクトＯに応じて位置パラメータｐｊの移動範囲を制限してもよい。
【０２００】
本変形例のパラメータ決定部１０６は、撮影画像Ｉに撮影されたオブジェクトＯに基づいて、位置パラメータｐｊの変更可能範囲を決定するようにしてもよい。例えば、オブジェクトＯと、変更可能範囲と、の関係は予めデータ記憶部１００に記憶されているものとする。変更可能範囲は、オブジェクトモデルＭｏｊが移動可能な範囲であり、位置パラメータｐｊの候補となる範囲である。
【０２０１】
例えば、水平面上に配置されるオブジェクトＯであれば、仮想空間の水平面上の領域が変更可能範囲となり、垂直面状に配置されるオブジェクトＯであれば、仮想空間の垂直面上の領域が変更可能範囲となる。パラメータ決定部１０６は、オブジェクトモデルＭｏｊの位置パラメータｐｊが、当該オブジェクトモデルＭｏｊが示すオブジェクトＯに関連付けられた変更可能範囲内に収まるように、位置パラメータｐｊを決定する。
【０２０２】
上記変形例によれば、オブジェクトＯの性質に応じた範囲内でオブジェクトモデルＭｏｊを移動させることができる。このため、オブジェクトモデルＭｏｊが現実ではありえないような不自然な位置に配置されてしまうことを防止することができる。
【０２０３】
なお、実施形態２では、第１オブジェクトの一例として家具などのオブジェクトＯを説明し、第２オブジェクトの一例としてその奥にある壁Ｗを説明したが、第１オブジェクトと第２オブジェクトとの位置関係は任意であってよい。第１オブジェクトの手前に第２オブジェクトが配置されていてもよいし、第１オブジェクトの隣に第２オブジェクトが配置されていてもよい。即ち、サイズが既知の第１オブジェクトと、サイズを推定したい第２オブジェクトと、が同じ撮影画像Ｉに撮影されているようにすればよい。
【０２０４】
［３−３．その他変形例］
また例えば、全体モデルＭＷは、屋外の駐車場などの壁を示してもよいし、オブジェクトモデルＭｏｊは、当該駐車場の車やバイクなどを示してもよい。全体モデルＭＷ及びオブジェクトモデルＭｏｊは、撮影画像Ｉから検出可能な種類のオブジェクトであればよく、壁ＷやオブジェクトＯに限られない。
【０２０５】
また例えば、３次元モデル生成システム１は、３次元モデル生成装置１０だけで構成されてもよいし、他のコンピュータを含んでいてもよい。例えば、３次元モデル生成システム１は、３次元モデル生成装置１０とサーバコンピュータとを含んでいてもよい。この場合、オブジェクトモデルデータベースは、サーバコンピュータに記憶されていてもよい。
【図１】
2017203709.tif 000007
【図２】
2017203709.tif 000008
【図３】
2017203709.tif 000009
【図４】
2017203709.tif 000010
【図５】
2017203709.tif 000011
【図６】
2017203709.tif 000012
【図７】
2017203709.tif 000013
【図８】
2017203709.tif 000014
【図９】
2017203709.tif 000015
【図１０】
2017203709.tif 000016
【図１１】
2017203709.tif 000017
【図１２】
2017203709.tif 000018
【図１３】
2017203709.tif 000019
【図１４】
2017203709.tif 000020
【図１５】
2017203709.tif 000021
【図１６】
2017203709.tif 000022
【図１７】
2017203709.tif 000023
【図１８】
2017203709.tif 000024
【図１９】
2017203709.tif 000025
【図２０】
2017203709.tif 000026
【図２１】
2017203709.tif 000027
【図２２】
2017203709.tif 000028
【手続補正書】
【提出日】平成29年6月15日(2017.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含み、
前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とする３次元モデル生成システム。
【請求項２】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含むことを特徴とする３次元モデル生成システム。
【請求項３】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含み、
前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、
前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段を更に含む、
ことを特徴とする３次元モデル生成システム。
【請求項４】
各画像は、少なくとも１つの他の前記画像と撮影範囲の一部が重複し、
前記部分モデル生成手段は、少なくとも１つの他の前記部分モデルと表面の一部が重複する前記部分モデルを生成し、
前記全体モデル生成手段は、各部分モデルの重複部分の位置を合わせて前記全体モデルを生成する、
ことを特徴とする請求項１〜３の何れかに記載の３次元モデル生成システム。
【請求項５】
前記画像取得手段は、前記空間が撮影された１枚の画像に基づいて、前記複数の画像を取得し、
前記画像情報は、前記１枚の画像における各画像の位置であり、
前記全体モデル生成手段は、前記１枚の画像における各画像の位置に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定する、
ことを特徴とする請求項１に記載の３次元モデル生成システム。
【請求項６】
前記画像取得手段は、前記空間内の１点から互いに異なる方向が撮影された前記複数の画像を取得する、
ことを特徴とする請求項１〜５の何れかに記載の３次元モデル生成システム。
【請求項７】
前記画像取得手段は、部屋の内部で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、前記部屋の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記部屋全体を示す前記全体モデルを生成する、
ことを特徴とする請求項１又は２に記載の３次元モデル生成システム。
【請求項８】
前記画像取得手段は、互いに略直交する６つ以上の側面を有する前記部屋の前記複数の画像を取得し、
前記部分モデル生成手段は、前記６つ以上の側面の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記６つ以上の側面全体を示す前記全体モデルを生成する、
請求項３又は７に記載の３次元モデル生成システム。
【請求項９】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含み、
前記全体モデル生成ステップは、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とする３次元モデル生成方法。
【請求項１０】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含むことを特徴とする３次元モデル生成方法。
【請求項１１】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含み、
前記画像取得ステップは、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成ステップは、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成ステップは、各部屋に対応する前記全体モデルを生成し、
前記全体モデル生成ステップにより生成された複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成ステップを更に含む、
ことを特徴とする３次元モデル生成方法。
【請求項１２】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラムであって、
前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とするプログラム。
【請求項１３】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラム。
【請求項１４】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラムであって、
前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、
前記コンピュータを、前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段、
として更に機能させるためのプログラム。
【手続補正書】
【提出日】平成29年8月8日(2017.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含み、
前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とする３次元モデル生成システム。
【請求項２】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含むことを特徴とする３次元モデル生成システム。
【請求項３】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段と、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段と、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成手段と、
を含み、
前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、
前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段を更に含む、
ことを特徴とする３次元モデル生成システム。
【請求項４】
各画像は、少なくとも１つの他の前記画像と撮影範囲の一部が重複し、
前記部分モデル生成手段は、少なくとも１つの他の前記部分モデルと表面の一部が重複する前記部分モデルを生成し、
前記全体モデル生成手段は、各部分モデルの重複部分の位置を合わせて前記全体モデルを生成する、
ことを特徴とする請求項１〜３の何れかに記載の３次元モデル生成システム。
【請求項５】
前記画像取得手段は、前記空間が撮影された１枚の画像に基づいて、前記複数の画像を取得し、
前記画像情報は、前記１枚の画像における各画像の位置であり、
前記全体モデル生成手段は、前記１枚の画像における各画像の位置に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定する、
ことを特徴とする請求項１に記載の３次元モデル生成システム。
【請求項６】
前記画像取得手段は、前記空間内の１点から互いに異なる方向が撮影された前記複数の画像を取得する、
ことを特徴とする請求項１又は２又は５に記載の３次元モデル生成システム。
【請求項７】
前記画像取得手段は、部屋の内部で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、前記部屋の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記部屋全体を示す前記全体モデルを生成する、
ことを特徴とする請求項１又は２に記載の３次元モデル生成システム。
【請求項８】
前記画像取得手段は、互いに直交する又は互いに８０°以上で交わる６つ以上の側面を有する前記部屋の前記複数の画像を取得し、
前記部分モデル生成手段は、前記６つ以上の側面の一部を示す前記部分モデルを生成し、
前記全体モデル生成手段は、前記６つ以上の側面全体を示す前記全体モデルを生成する、
請求項３又は７に記載の３次元モデル生成システム。
【請求項９】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含み、
前記全体モデル生成ステップは、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とする３次元モデル生成方法。
【請求項１０】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含むことを特徴とする３次元モデル生成方法。
【請求項１１】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得ステップと、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成ステップと、
前記部分モデル生成ステップにより生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成ステップと、
を含み、
前記画像取得ステップは、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成ステップは、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成ステップは、各部屋に対応する前記全体モデルを生成し、
前記全体モデル生成ステップにより生成された複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成ステップを更に含む、
ことを特徴とする３次元モデル生成方法。
【請求項１２】
複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラムであって、
前記全体モデル生成手段は、各画像の撮影方向に関する画像情報を取得し、各画像の前記画像情報に基づいて、当該画像に対応する部分モデルを配置する位置及び向きを決定し、前記全体モデルを生成する、
ことを特徴とするプログラム。
【請求項１３】
水平方向の３６０°が撮影された１枚の画像に基づいて、複数の面で囲われた空間において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラム。
【請求項１４】
複数の面で囲われた部屋の内部において、互いに異なる方向が撮影された複数の画像を取得する画像取得手段、
前記画像ごとに、当該画像に撮影された前記部屋の一部である前記複数の面の一部を示す部分モデルを生成する部分モデル生成手段、
前記部分モデル生成手段により生成された複数の部分モデルに基づいて、前記部屋全体である前記複数の面全体を示す全体モデルを生成する全体モデル生成手段、
としてコンピュータを機能させるためのプログラムであって、
前記画像取得手段は、同じフロアにおける複数の部屋の各々で撮影された前記複数の画像を取得し、
前記部分モデル生成手段は、各部屋に対応する前記部分モデルを生成し、
前記全体モデル生成手段は、各部屋に対応する前記全体モデルを生成し、
前記コンピュータを、前記全体モデル生成手段が生成した複数の全体モデルに基づいて、フロアの全体的な３次元モデルを生成するフロアモデル生成手段、
として更に機能させるためのプログラム。
【国際調査報告】
2017203709.tif 000029
2017203709.tif 000030