【文献】
古川 泰隆,不動産画像データセットを利用したディープ多形態画像対応学習,人工知能,日本,(一社)人工知能学会,2017年 7月 1日,第32巻, 第4号,pp.542-546
(58)【調査した分野】(Int.Cl.,DB名)
前記間取り図画像に対して距離変換機能を実行して、前記間取り図画像からセグメンテーションされた画像における各点と、前記セグメンテーションされた画像における最も近い壁と、の間の距離を求めることを更に含む、
請求項1〜5の何れかに記載の方法。
前記部屋画像のそれぞれにおいて検出された前記物体及び前記物体ロケーションを、前記間取り図画像において検出された前記物体及び前記物体ロケーションと前記比較することは、前記各部屋画像及び前記間取り図画像における複数のロケーションについて行われる、
請求項1〜7の何れかに記載の方法。
前記AIシステムは、各部屋画像が前記間取り図画像における方位に関して第1の方位に整列されるように、各部屋画像を回転させなければならない度数を求めるように構成されている、
請求項9に記載のAIシステム。
前記間取り図画像に対して距離変換機能を実行して、前記間取り図画像からセグメンテーションされた画像における各点と、前記セグメンテーションされた画像における最も近い壁と、の間の距離を求める手段、
を更に含む請求項9〜12の何れかに記載のAIシステム。
【発明を実施するための形態】
【0017】
例示のブロック図及びフローチャートは、プロセスにおける特定の論理機能又はステップを実施する1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表すことができるプロセスステップ又はプロセスブロックを示している。特定の例は、特定のプロセスステップ又は手順を示しているが、多くの代替の実施態様が可能である。幾つかのプロセスステップは、例えば、機能、目的、標準への準拠、レガシー構造、ユーザーインターフェース設計等の考慮に基づいて、本明細書における特定の説明と異なる順序で実行することができる。
【0018】
本発明の複数の実施形態が説明されている。本発明の趣旨及び範囲から逸脱することなく様々な変更を行うことができることが理解されるであろう。例えば、上記に図示した様々な形態のフローは、ステップの並べ替え、追加、又は削除を行って用いることができる。また、リモート端末又はモバイルデバイスを認可する幾つかの実施形態が説明されているが、非常に多くの他の用途が考えられることが認識されるであろう。したがって、他の実施形態は、添付の特許請求の範囲の範囲内にある。
【0019】
図3は、本発明の一実施形態内への入力の一例を提供している。
図3に示すように、6つのパノラマ画像30、32、34、36、38及び39並びに間取り図画像10が、コンピューティングシステム1510(後に
図25において説明される)内に入力される。この実施形態は、6つのパノラマ画像に限定されるものではなく、例えば、コンピュータシステム1510に入力されるパノラマ画像の数は、1つの画像から、計算処理リソースによってのみ制限される上限にまで及ぶことができる。パノラマ画像は、不動産物件内の内部ロケーションにある2つ以上の物体をキャプチャーすることが可能な広視野を有する任意の画像とすることができる。パノラマ画像は、水平方向に360度の視野を有することができるが、270度、180度、90度、又はそれ未満のようにより狭い視野も用いることができる。パノラマ画像30、32、34、36、38及び39の場合に、それらの画像は、それぞれ360度の全視野を有し、2:1の縦横比又はそれよりも大きな縦横比(例えば、4:1又は10:1)を有する。画像は、専用の360度デジタルカメラ、間取り図画像内の或る点の回りを水平方向に360度回転された標準的なカメラ、又は映像をデジタル処理によってつなぎ合わせてパノラマ画像を形成することができる他の任意のタイプのカメラを用いて撮影することができる。パノラマ画像及び部屋画像という用語は区別なく用いることができる。すなわち、部屋、又は建物内の空間のパノラマ画像が撮影され、部屋画像と呼ぶこともできる。
【0020】
デジタル画像では、パノラマ画像のコンピュータ編集が可能である。例えば、デジタル画像は、画像を水平方向にクロッピングして、ユーザーが画像を見ることをより容易にするのに役立つことができる。すなわち、バーチャルツアーを作成するときに視野を360度にするのではなく、間取り図における部屋の特定の方向を見る(例えば、廊下を見通す)ときに、より自然な90度の視野を用いることができる。この機能は、パノラマ画像ビュアーでは標準的なものである。これらのビュアーは、パノラマ画像を入力として取り込み、そのパノラマ画像をボックス、円柱又は球のような単純な形状に投影するとともに、部屋を見るためにこの形状の内部に配置された(仮想)カメラを投影して、画面上に示すことができる。加えて、画像の中心ロケーションを水平方向に移動させるように、デジタル画像を容易に回転させることもできる。360度パノラマ画像の対向する端部は、つなぎ合わせることもできるし、画像内の任意の箇所で切断することもできる。これは、画像編集ソフトウェアを用いて行うことができる。さらに、パノラマ画像は、JPEG、TIFF、GIF、BMP、PNG等を含む任意の画像フォーマットのものとすることもできる。畳み込みニューラルネットワーク(CNN)又は他の画像認識物体識別システム等の人工知能の形態を用いる本システムは、パノラマ画像(複数の場合もある)を用いて、正確なバーチャルツアーの作成に役立つ必要な情報を取得することができる。
【0021】
CNNは、最も一般的には視覚画像の解析に適用される深層フィードフォワード人工ニューラルネットワークの一クラスである。CNNは、必要とされる前処理を最小限に抑えるように設計された多層パーセプトロン(MLP)の変形形態を用いることができる。CNNは、それらの共有重みアーキテクチャ及び並進不変特性に基づいて、シフト不変人工ニューラルネットワーク又は位置不変人工ニューラルネットワーク(SIANN)としても知られている。CNNの1つの利点は、CNNが用いる前処理が、他の画像分類アルゴリズムと比較して相対的に少ないことである。したがって、ネットワークは、従来のアルゴリズムではマニュアル設計(hand-engineered)されていたフィルターを学習する。特徴設計において事前知識及び人の労力に依拠しないことが、従来の方法を上回る主な利点である。
【0022】
間取り図画像は、建物における部屋(複数の場合もある)の配置の図であり、通常は、一律の縮尺で描かれている。小売業者、建築家、不動産業者等によって用いられる様々なタイプ又はスタイルの間取り図がある。例えば、芸術的な相違が間取り図画像に存在することが多い。すなわち、同じ不動産物件の2つの間取り図画像は、多くの場合、多くの類似点を有するが、幾つかの点において必然的に異なる。例えば、これらの相違は、異なる陰影、間取り図画像において識別される異なる項目(部屋、キッチン、トイレ等)及び同じ項目を表す異なるイラストを含むことができる。しかしながら、間取り図画像の設定された標準を本コンピュータシステム内に入力する必要はない。さらに、間取り図画像も、JPEG、TIFF、GIF、BMP、PNG等を含む任意の画像フォーマットのものとすることができる。畳み込みニューラルネットワーク(CNN)若しくは他のAI、又は画像認識物体識別システムを用いた本コンピュータシステムは、間取り図画像を用いて、正確なバーチャルツアーの作成に役立つ必要な情報を取得することができる。
【0023】
図4は、本発明の一実施形態によるコンピューティングシステムの出力の第1の態様を示している。具体的には、パノラマ画像30、32、34、36、38及び39のそれぞれは、そのパノラマ画像が撮影された間取り図画像10内のロケーションに関連付けられている。パノラマ画像が撮影される場所の間取り図画像10内におけるロケーションをどのように決定するのかの詳細については、以下でより詳細に論述される。
【0024】
パノラマ画像のセット及び間取り図画像における物体検出から取得されたデータを用いると、コンピュータシステムは、各パノラマ画像が撮影された場所の間取り図画像内のロケーションを求めることができる。さらに、各パノラマ画像の方位もシステムによって求めることができる。すなわち、間取り図画像内の求められたロケーションにおけるパノラマ画像の方位を確認することができる。この方位情報は、後に、バーチャルツアーを作成するときにパノラマ画像の方位を定めるのに用いることができる。
【0025】
図5は、本発明の一実施形態によるコンピューティングシステムの出力の第2の態様及び第3の態様を示している。第2の態様は、方位540に示されている。具体的には、間取り図内の異なるロケーションに関するパノラマ画像500のそれぞれの方位は、コンピューティングシステムの出力である。これは、方位矢印566によって示されている。パノラマ部屋画像500が、
図25に関して以下で論述されるコンピューティングシステム1510内に入力された後、パノラマ画像の方位が、方位540に示されるように求められる。360度パノラマ画像が用いられる場合、画像の方位(すなわち、画像が向いている方向)は、水平方向において画像の中心に位置しているとみなされる。
【0026】
図5に示す本発明の一実施形態の第3の態様は、様々な部屋とロケーションとの間の接続である。これは、一例として、接続矢印562及び564によって示されている。これらの矢印は、間取り図をどのように横断することができるのか、及び、不動産物件内のどの空間が他の空間からアクセス可能であるのかを示している。例えば、ユーザーが畳部屋にいるとすると、このユーザーには、第1の廊下又は西側バルコニーに行くという選択肢がある。この接続されたレイアウトは、間取り図レイアウトを求め、この間取り図レイアウトにおいてドア及び廊下がどこに位置しているのかを特定することによって実現することができる。これは、コンピュータシステム内に入力される間取り図画像に基づいている。これは、不動産物件のバーチャルツアーを作成するときに重要になる。
【0027】
CNNは、間取り図画像をセグメンテーションし、間取り図の或るエリアを間取り図の別のエリアにつなぐドア等の物体、又は壁の間の空間の位置を特定し識別するのに用いることができる。これは、間取り図画像全体について、
図5に示すように、特に接続矢印562及び564に関する接続マップ560を作成するために行うことができる。
【0028】
図6は、パノラマ画像のセット内の各パノラマ画像において物体を見つける方法を示すフローチャートである。ステップ10に示すように、パノラマ画像がコンピューティングシステム1510によって受信される。この画像は、バーチャルツアーが作成される間取り図内のロケーションから撮影される。パノラマ画像は、好ましくは、間取り図内の360度の視野を有するが、これよりも狭い視野角も可能である。
【0029】
ステップ12において、パノラマ画像が解析され、画像内の物体及びパノラマ画像内の物体のそれぞれの位置が特定される。特定される物体は、物体クラスによって事前に規定される。すなわち、
図7A、
図7B及び
図7Cに示すように、コーナー、ドア及び窓はそれぞれ、パノラマ画像から特定することができる物体クラスの例である。ただし、検出することができる物体は、これに限定されるものではない。検出することができる物体の例は、画像からラベル付け又は識別することができる壁、階段、トイレ、シンク、バスタブ、シャワー、ストーブ、冷蔵庫、書棚及び整理棚等の作り付けの特徴部、キッチンアイランド、又は他の任意の特徴部を含む。
【0030】
さらに、これらの物体のサブクラスも、検出及び分類することができる。例えば、
図7Aは、ドアのクラスが検出されることを示しているが、検出することができる物体の2つのサブクラス、具体的には、左ドア800、802及び804と、右ドア806、808及び810とを更に示している。
図7Bは、コーナーのクラスが検出されることを示しているが、検出することができる物体の2つの異なるサブクラス、具体的には、凹状コーナー900、902及び904と、凸状コーナー906、908及び910とを更に示している。
図7Cは、窓のクラスを検出することができることを示しているが、検出することができる物体の2つの更なるサブクラス、すなわち、左窓1000、1002及び1004と、右窓1006、1008及び1010とを示している。
【0031】
上掲のサブクラスだけでなく、様々な物体の種々のサブクラスを検出することができることが分かっている。例えば、ドアのスタイル及び窓又は窓枠のスタイルを検出することができる。さらに、様々なタイプのコーナー又はモールディングも検出することができる。CNNは、上記で論述した物体のクラス及びサブクラスを含む物体の様々なクラス/サブクラスを認識するようにトレーニングすることができる。物体のこれらのサブクラスを検出することの1つの利点は、パノラマ画像と仮想レイアウトにおける間取り図ロケーション画像とのマッチの精度を高めることである。
【0032】
物体は、パノラマ画像内の当該物体及びそれらの位置を正確に識別することができる限り、任意の技法を用いて検出することができる。例えば、トレーニングされた畳み込みニューラルネットワーク(CNN)を物体検出に用いることができる。CNNは、コーナー、窓、ドア等を検出するようにトレーニングすることができる。画像内の物体を検出するためにCNNをどのように用いるのかを論述したものについては、米国特許出願第15/798,349号及び同第15/798,343号を参照されたい。これらの米国特許出願の内容は、引用することによってそれらの全体が本明細書の一部をなす。物体検出の他の方法も用いることができ、本発明の実施形態はCNNに限定されるものではない。
【0033】
物体ラベルに加えて、CNNは、特定の物体が実際に指定された物体である確率も出力することができる。例えば、物体が実際の物体、例えばドアとして正しく識別される確率は、98.0%とすることができる。物体は、CNNによれば、窓である1.0%の可能性及びコーナーである1.0%の可能性も有することができる。この実施形態の目的のために、最も可能性の高い物体が、特定された物体として用いられる。したがって、物体が、ドアである98.0%の確率と、窓である1.0%の確率と、コーナーである1.0%の可能性とを有する場合、コンピュータシステムは、その物体をドアであるとして解釈する。一方、他の実施形態は、物体を特定するときに異なる閾値を用いることができる。例えば、物体が特定の物体である確率が65%しかない場合、その物体は無視されてもよいし、その物体の更なる解析を行って、物体を正しく識別する可能性を高めることもできる。更に他の実施形態は、後述するように、物体の生の確率的スコアを用いることができる。
【0034】
物体の検出に加えて、パノラマ画像内の物体の水平ロケーションも求められる。例えば、
図18Bのパノラマ画像2100は、窓の左端の水平位置を示す垂直ライン2102と、コーナーの水平位置を示す垂直ライン2104と、ドアの左端の水平位置を示す垂直ライン2106とを示している。様々な物体(例えば、窓、ドア及びコーナー)のロケーションは、後に、パノラマ画像からのデータが間取り図画像からのデータと比較されるときに用いられる。
【0035】
さらに、検出物体は、ピクセルの幅を越えて広がっている場合があり、したがって、物体のロケーションが指定される場所に関する判断が行われなければならない。例えば、物体が窓の左端であった場合、この物体は、水平方向に10ピクセルに広がっていると判断されている場合がある。したがって、精密なロケーションが確認される場合、ルール又は規約を用いて、ロケーションを求めることができる。窓の左端のロケーションを指定するのに、任意の数の方法を用いることができる。例えば、検出物体内の最も左のピクセル、最も右のピクセル、最も中心のピクセル、又はランダムなピクセルを物体のロケーションとして指定することができる。
【0036】
図6のステップ14において、パノラマ画像における物体及びその検出された位置が、その画像においてコード化されるか、又は、別のファイルに保存される。この一例が
図18Bに示されている。
図18Bでは、パノラマ画像2100は、垂直ライン2102、2104、2106等を用いてコード化されている。垂直ライン2102、2104及び2106と、これらの垂直ラインの上部に配置された1桁の文字とは、それぞれ、パノラマ画像内の物体の位置と、検出物体のクラスとを示している。物体のクラスは、文字C、W、Dによって示され、それぞれコーナー、窓及びドアに対応する。
【0037】
コード化されたデータ及び保存されたデータは区別なく用いられ、検出物体データを保持するのに、いずれの方法も実施することができることが理解される。
【0038】
次に、ステップ16において、パノラマ画像の全てが処理及びコード化されているか否かに関する判断が行われる。パノラマ画像の全てが処理されていない場合、次のパノラマ画像がステップ18において選択され、プロセスはステップ10に戻って、新たに選択されたパノラマ画像の処理を最初から開始する。パノラマ画像の全てが処理されていると判断されると、プロセスは終了する。
【0039】
図8は、寝室において撮影されたパノラマ画像1100内の検出物体の一例を示している。この例では、コーナー1102及びドア1104が検出される。例示として、物体の全てがパノラマ部屋画像1100において検出されるが、検出物体の全てがラベル付けされるとは限らない。
図6のステップ12及び14に従って、パノラマ画像1100内の検出物体のクラス及び検出物体の水平ロケーションの双方が求められ、パノラマ画像においてコード化されるか又は別個に保存される。
【0040】
図9は、本発明の一実施形態による間取り図画像10を取得して解析する方法を示している。前述したように、間取り図画像10等の間取り図画像は、
図9のステップ23に示すようにコンピュータシステム内に入力される。間取り図画像は、建物又は建物内のエリアの一般的なレイアウトを示すのに用いられる建物、住宅、マンション、ボート、飛行機、列車等の間取り図の表現とすることができる。
【0041】
ステップ24に示すように、間取り図画像の部屋が特定され、それらの構成要素に分離される。間取り図画像の部屋及び物体は、トレーニングされた畳み込みニューラルネットワーク(CNN)を用いて画像をセグメンテーションすることを含む様々な技法を用いて検出することができる。CNNを用いて間取り図画像内の部屋を特定することについての簡潔な説明は以下で論述される。CNNを用いて画像内の物体、部屋等を検出することについての詳細な説明は、米国特許出願第15/798,349号及び同第15/798,343号を参照されたい。これらの米国特許出願の内容は、引用することによって本明細書の一部をなす。
【0042】
図10A、
図10B及び
図10Cは、間取り図画像のみを用いて個々の部屋及び物体をどのように正確に識別することができるのかの一例を示している。まず、間取り図画像10が、コンピュータシステム内に入力される。コンピュータシステムは、間取り図画像の壁、ドア、窓、コーナー及び/又は他の特徴部を検出するCNNを備えるか又はCNN若しくは他の画像認識物体検出装置を用いる。CNNが間取り図画像から部屋及び特徴部をどのように正確に検出することができるのかの1つの例は、セマンティックセグメンテーション技法を用いることによるものである。これは、トレーニングされた畳み込みニューラルネットワークを用いて、間取り図画像内の個々のピクセルに、或る物体のクラスである確率を与える技法である。例えば、所与のピクセルは、壁、ドア、窓、空いているロケーション等とすることができる。画像内の各ピクセルに関する情報は、画像内の物体を確認するために最終的には集約される。
【0043】
セグメンテーションされた間取り図画像の一例が、セグメンテーションされた間取り図画像1402によって
図10Bに示されている。セグメンテーションされた間取り図画像1402に示すように、壁及び窓1403は白色で識別され、空いているロケーションは黒色で識別される。この例では、ドアは、セグメンテーションされた画像において、空いているロケーションとして示されている。このセグメンテーションされた画像に基づいて、元の間取り図画像における全ての部屋、廊下、ドア、窓、コーナー及び他のロケーションを識別することができる。元の間取り図画像内の各ピクセルは、セグメンテーションプロセスにおいて物体(又は空いているロケーション)として識別されて割り当てられている。
【0044】
CNNを用いて間取り図画像の特徴部を識別することに加えて、文字認識システムも用いることができる。例えば、幾つかの間取り図画像は、書き込まれたラベルを用いることによって幾つかの特徴部を識別することができる。これらのラベルは、その後、光学式文字認識(OCR)を用いて読み取ることができる。このOCRは、単独で用いることもできるし、セグメンテーション解析からのデータとともに用いることもできる。例えば、間取り図の特徴部が「窓」とラベル付けられ、OCRによってそのようなものと認識された場合、これをセグメンテーションプロセスからの結果と比較して、OCRデータがセグメンテーションデータと一致することを確認することができる。データが一致していない場合、更なるステップを実行することができる。セグメンテーション及びOCR技法の使用の更なる説明については、引用された上記出願を参照されたい。
【0045】
加えて、OCRを用いて、部屋タイプを特定し、この部屋タイプを、(CNN分類器を用いて)パノラマ画像から推定することができる部屋タイプとマッチングすることができる。
【0046】
図11A及び
図11Bは、間取り図画像10がセグメンテーションされ、個々の部屋が識別された後の間取り図画像10の一例を示している。セグメンテーションされた画像1502は、間取り図における識別された各部屋を示している一方、間取り図エリア1504は、分離及び画定された個々のロケーションを示している。
図11A及び
図11Bに示すように、9つのロケーションA、B、C、D、E、F、G、H及びIが、間取り図画像10において識別されている。これらのロケーションのそれぞれは、パノラマ画像が撮影された場所の候補である。
【0047】
セグメンテーションプロセスが完了すると、ドア、窓、コーナー等の個々の物体も識別することができる。(個々の物体も、セグメンテーションプロセスと並行して識別することができる。すなわち、間取り図画像が特定されるとき、間取り図画像内の物体を並行して特定することができる。)これは、
図9に示すように、ステップ25において実行される。セマンティックセグメンテーションステップにおいて、各ピクセルはラベル付けされるので、特定の間取り図画像内及びこの間取り図画像の部屋又はエリア内の物体の特定は、元のセグメンテーションに基づいて容易に確認される。
【0048】
このプロセスの補助的説明として、識別された物体を元の間取り図画像上に重ね合わせると、間取り図画像内の各ロケーションに対する物体が位置する場所の視覚表現を得ることができる。
【0049】
物体が検出された間取り図画像の一例が、
図10Cの画像1404に示されている。この画像は、CNNから出力され、入力された間取り図画像10上に重ね合わされた、検出物体を強調する物体ラベル及びボックスを含む。物体ラベルに加えて、CNNは、その特定の物体が実際に指定された物体である確率も出力することができる。例えば、参照符号1406は、画像1404におけるドアとしてラベル付けされる。参照符号1406がドアである確率は、98.0%として示されている。この実施形態において、最も可能性の高い物体が、特定された物体として用いられる。したがって、参照符号1406が、ドアである98.0%の確率と、窓である2.0%の確率とを有する場合、コンピュータシステムは、その物体をドアであるとして解釈する。一方、他の実施形態は、物体を特定するときに異なる閾値を用いることができる。例えば、物体が特定の物体である確率が65%しかない場合、その物体は無視されてもよいし、その物体の更なる解析を行って、物体を正しく識別する可能性を高めることもできる。更に他の実施形態は、後述するように、物体の生の確率的スコアを用いることができる。
【0050】
最後に、
図9のステップ28において、求められた間取り図データは、間取り図画像にコード化されるか又は別のファイルに保存される。
【0051】
図12は、間取り図画像を用いて、パノラマ画像が撮影された場所のロケーションをどのように確認することができるのかの別の実施形態を示している。
図12に示すプロセスにおけるステップ36は、
図9に示すプロセスにおいても、任意選択で実行することができる。
図12では、間取り図画像は、ステップ32において取得される。この実施形態では、これは、
図9のステップ23において取得することができる画像と同じ間取り図画像である。間取り図画像が取得されると、この間取り図画像の壁及び物体がステップ34において検出される。ここで、間取り図画像内の壁及び物体を検出するのに、トレーニングされたCNN又は他の光学式物体認識ツールを用いることができる。トレーニングされたCNNを用いる方法は、
図10Bの画像1402に関して上記で論述したものと同じ方法である。
【0052】
次に、ステップ36において、セグメンテーションされた画像における各点と、セグメンテーションされた画像における最も近い壁との間の距離が計算される。これは、距離変換方法を用いて計算することができる。この技法の一例は、
図13A、
図13B及び
図13Cに示されている。
図13Aにおけるセグメンテーションされた間取り図画像1402から、セグメンテーションされた間取り図画像における点のそれぞれから最も近い壁までの距離が計算される。したがって、例えば、部屋の中心部における距離は、最も高い値を有する一方、壁に近い部分における距離は、最も低い値を有する。
【0053】
セグメンテーションされた間取り図画像に対して行われる距離変換の一例が、
図13B及び
図13Cに示されている。これらの図において、対応する距離変換画像1604は、
図13Bに示されている。距離変換画像1604は、高い値を有する距離ほど、より明るい色であることを示している。したがって、最も明るい色は、部屋の中心部に示されている。部屋1602の距離変換の数値表現の一例が、
図13Cの数値距離変換画像1606に示されている。数値距離変換画像1606に示すように、「0」の値は、部屋の壁の最も近くに見られる。これは、部屋のこのエリアが壁に最も近いからである。次に、1を有するエリアは、壁に2番目に最も近いエリアを示している。以下、2以降の値についても同様である。数値距離変換画像1606に示すように、壁から最も遠いエリアは、左右の壁と平行に部屋の中心部を縦に並ぶ「5」の列によって表される。この列は、壁から最も遠くに離れた部屋のエリアを表している。
【0054】
壁又は他の物体から最も遠くに離れた部屋又は間取り図画像内のエリアも、パノラマ映像を撮影するのに用いられる最も可能性の高いエリアである。これは、パノラマ映像を撮影するとき、写真撮影者は、一般に、映像全体が均衡の取れたものとなり、壁が視野を遮らないように、部屋の中心部に自身を位置決めするからである。すなわち、写真撮影者が壁の近くに位置決めされると、パノラマ画像の一部が壁自体をクローズアップした眺めになり、これは望ましくない。
【0055】
しかしながら、部屋の正確な中心からパノラマ画像を撮影することが常に可能であるとは限らない。例えば、テーブルが、このロケーションを塞いでいる可能性があり、したがって、写真撮影者は、テーブルを移動させる代わりにテーブルの横に立つか又はテーブルの上に立つことを選ぶ場合がある。これは1つの例にすぎず、写真撮影者が部屋の中心とは異なるロケーションで映像を撮影する理由は幾つも存在し得る。
【0056】
一方、これを考慮に入れても、通常、写真撮影者がパノラマ画像をどこで撮影するのかを決定する際の最良の開始位置は、距離変換値が最も高い場所である。パノラマ画像ロケーションをどのようにして見つけるのかのより詳細な説明は、以下で論述される。
【0057】
上述したように、この距離変換ステップは、間取り図画像がセグメンテーションされた後に距離変換を行うことによって、
図9におけるプロセスにも適用することができる。
【0058】
最後に、
図12のステップ38において、距離変換データ及び物体データは、コード化された間取り図画像又は別のファイルに保存される。
【0059】
[パノラマ画像のロケーション及び方位を特定する第1の実施形態]
各パノラマ画像が撮影された場所の間取り図内におけるロケーション及び方位を特定するプロセスの第1の実施形態が、
図14のフローチャートに示されている。このプロセスは、コンピュータシステム1510によって実行される。
【0060】
ステップ180から開始して、パノラマ画像データがコンピュータシステム1510によって取得される。このデータは、
図6に関して論述されたコード化されたデータを含む。次に、ステップ190において、間取り図画像データがコンピュータシステム1510によって取得される。このデータは、
図9及び
図12に関して論述されたコード化されたデータを含む。
【0061】
ステップ200において、物体データ及びロケーションデータを有するコード化されたパノラマ画像が分割される。一例が、
図15Aに文字列182によって示されている。文字列182は、36文字からなる行を示している。行内の各列は、パノラマ画像における10度の増分を表す。すなわち、360度の視野を有するパノラマ画像を見るとき、その画像を10度の増分にセグメンテーションすることができる。この10度の増分における文字は、この10度の視野内の検出物体のクラスを表している。
【0062】
例えば、コーナーが10度の視野内で検出された場合、「C」が示される。ドアが10度の視野内で検出された場合、「D」が示される。窓が10度の視野内で検出された場合、「W」が示される。壁が10度の視野内で検出された場合すなわち物体が10度の視野内で検出されなかった場合、例えば、「A」が示される。2つの物体が10度の視野内で偶然に検出された場合、ルール又は規約に従うことができる。例えば、最初に検出された物体の使用、ランダムな選択、セグメンテーションによる最も高い確率を有する物体の選択等を行うことができる。
【0063】
図15Aに示すように、文字列182は、「AAAAA」がシーケンスを開始していることを示している。これは、50度の視野における10度の増分のそれぞれにおいて、壁が検出されたこと(すなわち物体が検出されなかったこと)を示している。次に、「CCC」が示され、これは、次の30度の視野における10度の増分のそれぞれにコーナーが識別されたことを示している。コード化されたパノラマ画像データのこの分割は、パノラマ画像の視野全体について行われる。360度の視野の場合、これは、360度の画像全体について行われる。
【0064】
図15Aに示す例では、画像を分割するのに10度の増分が用いられる。しかしながら、この特定の角度分割は必須ではなく、これよりも小さな角度又は大きな角度を用いることができる。例えば、3度、5度、6度、12度、20度等の角度を用いることができる。度数、すなわち視野が大きいほど、精度は小さくなり、必要とされる計算能力は小さくなり、度数、すなわち視野が小さいほど、精度及び必要とされる計算能力は大きくなる。
【0065】
ステップ200が完了した後、ステップ202において、コード化されたパノラマ画像データの角度のセットが生成される。この一例は、
図15Bに文字列セット190によって示されている。文字列セット190に示すように、それぞれ10度ずつ分離された全部で36個の異なる角度が作成される。
【0066】
例えば、文字列セット190の行0と行1との間の相違を見ると、行1は、10度の増分だけオフセットされている。すなわち、文字は、1列分だけ左にシフトされている。上記で論述したように、この例では、各文字は10度の視野を表す。したがって、各行とその隣接行との間の差は10度である。これは、この例では360度である画像の視野全体について行われる。したがって、文字列セット190には、360度のパノラマ画像の36行のデータが存在する。
【0067】
実際面で、物体データの10度のシフトは、パノラマ画像を10度回転させることになる。したがって、これは、パノラマ画像が撮影された場所に立ち、視点を左又は右の方向に10度調整することと同様である。
【0068】
文字列セット190が作成されると、ステップ204において、コード化された間取り図画像データが分割され、間取り図内の単一の点、すなわち点(n)の文字列が作成される。
【0069】
間取り図画像データをセグメントに分割し、文字列を作成することを示す一例が
図15Aに示されている。文字列186は、36文字からなる行を示している。行内の列は10度の増分を表す。すなわち、360度のパノラマ画像を見るとき、その画像を10度の36個の増分にセグメンテーションすることができる。この10度の増分における文字は、この10度の視野内の検出物体のクラスを表している。
【0070】
例えば、コーナーが10度の視野内で検出された場合、「C」が示される。ドアが10度の視野内で検出された場合、「D」が示される。窓が10度の視野内で検出された場合、「W」が示される。壁が10度の視野内で検出された場合すなわち物体が10度の視野内で検出されなかった場合、例えば、「A」が示される。2つの物体が10度の視野内で偶然に検出された場合、ルールに従うことができる。例えば、最初に検出された物体の使用、ランダムな選択、セグメンテーションによる最も高い確率を有する物体の選択等を行うことができる。
【0071】
図15Aに示すように、文字列186は、「DDD」がシーケンスを開始していることを示している。これは、30度の視野について、その視野における10度の増分のそれぞれにドアが検出されたことを示している。次に、「CAC」が示され、これは、この30度の視野にわたって、次の10度の増分にコーナーが識別され、次の10度に壁が続き、次の10度の増分にコーナーが続くことを示している。このコード化された間取り図画像データの分割及び文字列の作成は、
図9のステップ28において保存された間取り図画像データの視野全体について行われる。360度の視野の場合、これは、画像全体について行われる。
【0072】
視点が間取り図画像データに位置している場所に応じて、文字列186は変化することに留意することが重要である。この一例は、
図18A及び
図18Bに示されている。間取り図画像10の或る部屋又はエリア内に位置している所与の点2140について、視点がこの所与の点2140の回りに回転される場合、各物体が位置している場所の360度マップを作成することができる。
図18A及び
図18Bに示す例では、検出物体2110、2112及び2114は、コーナー、ドア、又は窓をそれぞれ表す物体のクラスC、D、又はWのラベルを付けられた垂直ラインによって示されている。これらの検出物体は、所与の点2140から見たときの検出物体を表す互いに対する空間位置も有する。
【0073】
第1のセットの下に示す垂直ラインの第2のセットは、
図18Aの点2140において間取り図画像に検出物体を表している。垂直ライン2110、2112及び2114は、間取り図画像に検出物体を表している。前述したように、間取り図画像を用いて検出された物体のロケーションは、それらの物体が観察される点に応じて互いに変化する可能性がある。
図19A、
図19B及び
図19Cに関する説明を参照されたい。したがって、間取り図画像において観察点の位置を変化させると、検出物体の配置が必然的に変化する。
【0074】
検出物体の位置は変化を受けるが、検出物体の互いの順序付けは一般に変化しない。すなわち、文字DDCCによって表される第1のドア(D)、第2のドア(D)、第1のコーナー(C)、及び第2のコーナー(C)が、左から右にその順序で検出された場合、これらの物体の間の相対角度は、シフトする視点とともに変化を受ける。一方、物体自体の順序は一般に変化しない。すなわち、異なる視点を用いても、物体は、CCDD、DCCD、CCDD及びCDDCの順序で見ることができるが、例えば、物体は、DCDCの順序にも、CDCDの順序にも決して見えない。
【0075】
図18Aの点2140において、垂直ライン2110、2112及び2114は、コード化されたパノラマ画像2100上に重ね合わされた検出物体を表している。実際には、パノラマ画像からのデータが得られると、パノラマ画像は、このステップに再度必要とされることはない。必要なものは、パノラマ画像の検出物体であって、パノラマ画像自体ではない。パノラマ画像は、このパノラマ画像が撮影されたロケーションがどのように特定されるのかの説明を補助するために例示として提供される。
【0076】
図18Aを見ると、点2140が部屋内で点2150に移動された場合、部屋における物体の間の角距離は、パノラマ画像及び間取り図画像の双方について、それに応じて変化する。位置のこの変化をリアルタイムで見た場合、物体を表す垂直ライン(例えば、2110、2112及び2114)が画像を巡って水平に移動し、物体を見ている角度に応じて伸縮しているのが見える。
【0077】
一例が
図19A、
図19B及び
図19Cに示されている。
図19Aは、間取り図画像10及び寝室2を示している。寝室2内には、2つの点2220及び2230がある。
図9のステップ28において特定及び保存された物体に基づいて、点2220から見たときの寝室2におけるこれらの物体の表現を、
図19Bに示すように作成することができる。画像2201は、対応するパノラマ画像上に重ね合わされた検出物体を表す垂直ライン2210、2212、2214、2216及び2218を、それらの物体を分離する角距離とともに示している。この時点では、パノラマ画像が撮影された間取り図内の正確なロケーションに対応する正確なパノラマ画像はまだ分かっていない。
【0078】
位置2220が、
図19Aに示す位置2230に変更されると、物体の見掛けのロケーションも、
図19Cにおける画像2202に示すように変更される。同じ検出物体を示す同じ垂直ライン2210、2212、2214、2216及び2218が存在するが、それらの互いに対する角度関係は変化している。これは、点2230の位置が位置2220と異なり、したがって、部屋内の視点が変更されたことから、検出物体の相対的な幾何学的配列も変化するからである。
【0079】
選ばれた第1の点(n)は、部屋の中心にある点とすることができる。
図12のステップ36において論述したように、距離変換値を用いて、部屋の中心が位置する場所を特定することができる。これは、最も高い距離変換値を有するエリアである。
【0080】
図14を参照すると、ステップ206において、間取り図画像データにおける点(n)の文字列が、文字列θ
zと比較される。ここで、zは、文字列セット190内のデータの行を表す。したがって、例えば、比較される最初の文字列θ
zは、
図15Bに示すように、文字列セット190の行0である。
【0081】
データのこの比較のために、編集距離が計算される。この一例が
図16に示されている。
図16に示すように、13文字の第1の文字列232が、13文字の第2の文字列234と比較される。
図15Aの例では、36文字のセットが互いに比較されるが、この例では、説明用に、13文字のみが比較される。
【0082】
編集距離を計算するために、対応するロケーションにおける文字とマッチングしない文字には、正の値が関連付けられる。例えば、この値は1とすることができる。比較される文字列内の文字が、対応するロケーションにおける文字とマッチングする場合には、編集距離は0である。次に、文字列のセットのこれらの差値を合計して、編集距離が得られる。したがって、第1の文字列232と第2の文字列234との編集距離を計算すると、解は3である。これは、それぞれの文字列の間の3つの文字が互いにマッチングしないからである。
【0083】
ステップ210において、文字列セット190内の各文字列の編集距離の全てが計算されたか否かが判断される。文字列データの各行における編集距離の全てが計算されてはいない場合、ステップ212において、文字列θ
zは1つインクリメントされ、編集距離の次のセットが計算される。これは、文字列セット190内の文字列の全てが間取り図画像の点(n)の文字列と比較されるまで繰り返される。
【0084】
文字列セット190の編集距離の全てが、ステップ210において計算されると、ステップ214において、間取り図画像内の更なる点(n)を文字列セット190と比較すべきか否かが判断される。
【0085】
例えば、文字列セット190と比較された点(n)の全ての編集距離が大きい場合、異なる点(n)の比較を継続するとの判断を行うことができる。上記で論述したように、編集距離が大きい場合、これは、点(n)のロケーションが、パノラマ画像が撮影された場所に近くなく、更なる点(n)を解析する必要があることを示す。大きな編集距離は、閾値とすることができ、文字の90%超がマッチングしないこと、又は文字の80%超がマッチングしないこと、又は文字の70%超がマッチングしないこと、又は文字の60%超がマッチングしないこと、又は文字の50%超がマッチングしないこと、又は文字の40%超がマッチングしないこと、又は文字の30%超がマッチングしないこと、又は文字の20%超がマッチングしないこと、又は文字の10%超がマッチングしないこと等とすることができる。
【0086】
代替的に、以前の点(n)の編集距離が小さいか又は閾値量未満である場合、更なる点(n)を比較しないという決定を行うことができる。小さな編集距離は、閾値とすることができ、文字の90%超がマッチングすること、又は文字の80%超がマッチングすること、又は文字の70%超がマッチングすること、又は文字の60%超がマッチングすること、又は文字の50%超がマッチングすること、又は文字の40%超がマッチングすること、又は文字の30%超がマッチングすること、又は文字の20%超がマッチングすること、又は文字の10%超がマッチングすること等とすることができる。
【0087】
更なる点(n)の編集距離を計算する必要があるか否かを判断する別の方法は、間取り図画像の幾つかの点(n)の編集距離勾配を計算し、次に、間取り図画像における特定の部屋の極小距離を求めることである。開始点(n)における編集距離を計算した後、間取り図画像における隣接点(n)の編集距離も計算することができる。これらの編集距離を合わせて調べることによって、編集距離勾配を作成することができる。この方法は、サーバーにおける処理能力を削減する。なぜならば、編集距離勾配を用いることによって、極小値を見つけることができ、更なる点(n)を計算する必要がないからである。極小値が見つからない場合、更なる点(n)を解析することができる。
【0088】
上記計算された編集距離は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、編集距離の極小値を計算するこのプロセスは、間取り図画像における部屋又はエリアの1つ以上又は全てについて繰り返すことができる。例えば、
図11A及び
図11Bに示すように、比較される間取り図画像における第1のロケーション又は部屋が部屋Aである場合、比較される次のロケーションは部屋Bであり、その次は部屋Cであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【0089】
間取り図画像における更なる点(n)の編集距離を計算する必要があるか否かを判断する別の方法は、特定の部屋について、距離変換データからのロケーションを開始点として用い、開始点(n)の周囲に位置する点(n)のランダムなガウスサンプルにおいて編集距離計算を行うことである。開始点(n)が、小さな編集距離を生成する可能性の高い候補であるとき、周囲の点は、小さな編集距離を生成する次の最も可能性の高い点(n)である。この方法は、サーバーにおける処理能力を削減する、なぜならば、この方法は、パノラマ画像が撮影されたロケーションを素早く見つけるために、パノラマ画像を撮影するときに本来的に望ましいロケーション、すなわち、写真撮影されるエリアの中心近くのロケーションを利用するからである。ランダムなガウスサンプルにおける点(n)の距離の全てが計算されると、最小の編集距離を有する点(n)が用いられる。
【0090】
上記計算された編集距離は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、編集距離の極小値を計算するこのプロセスは、間取り図画像における部屋又はエリアの1つ以上又は全てについて繰り返すことができる。例えば、
図11A及び
図11Bに示すように、比較される間取り図画像における第1のロケーション又は部屋が部屋Aである場合、比較される次のロケーションは部屋Bであり、その次は部屋Cであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【0091】
上記から分かるように、編集距離の計算を継続するか否かを判断するのに用いられる技法は、本発明の実施形態の範囲と一致させて用いることができるものが幾つも存在する。
【0092】
更なる点(n)が計算される場合、nは、ステップ216において1つインクリメントされ、プロセスはステップ204に戻って、間取り図画像内の別の点において解析を開始する。更なる点を計算する必要がない場合、プロセスはステップ220に進む。
【0093】
次に、ステップ220において、各パノラマ画像について、各編集距離が計算されたか否かが判断される。判断が肯定的でない場合、画像番号(i)が、ステップ224において1つインクリメントされ、プロセスは、再びステップ200から開始して、別のパノラマ画像に対して繰り返される。異なるパノラマ画像の文字列の一例が、文字列184によって示されている。
図15Aに示すように、各パノラマ画像は、それ自体の文字列を有する。
【0094】
ステップ220における判断が肯定的である場合、ステップ222において、各パノラマ画像が間取り図画像内の対応するロケーションとマッチングされる場所が、パノラマ画像が撮影された方向とともに特定される。
【0095】
ステップ222におけるマッチングは、各ロケーションの最小全体コスト(以下で説明)と、間取り図画像及び各対応するパノラマ画像における方位とを見つけることによって行われる。例えば、組み合わされた最小編集距離を有する間取り図ロケーション及び対応するパノラマ画像の全組み合わせを最良の組み合わせとして選ぶことができる。この特徴の一例が
図20に示されている。
【0096】
図20は、パノラマ画像及び間取り図ロケーションのペアの編集距離値の距離マトリックスを示している。パノラマ画像は、1〜9の番号が付けられ、x軸に示されている一方、間取り図ロケーションは、1〜9の番号が付けられ、y軸に示されている。このマトリックスにおける番号のそれぞれは、対応するパノラマ画像及び間取り図ロケーションの編集距離を示している。さらに、マトリックスにおける数字は、各パノラマ画像セットの最小編集距離を示している。すなわち、マトリックスは、画像の最適な回転を考慮したときの最小編集距離を示している。このマトリックスから、最小編集距離を有するペアリング(間取り図ロケーション及びパノラマ画像)の組み合わせを特定することができる。
【0097】
図20に示す例では、総最小編集距離を加算して(5+9+10+4+9+8+7+12+10)、74の総距離を得ることができる。これは、左上から右下への対角行に見られる。この対角行は、必ずしも最小編集距離ではなく、各間取り図ロケーションが1つの最良のマッチを有し、各パノラマ画像が1つの最良のマッチを有する限り、間取り図ロケーション及びパノラマ画像マッチングの最適な組み合わせをマトリックスに混合することができることに留意されたい。したがって、パノラマ画像1〜9のそれぞれが撮影された場所を特定するとき、最良の物体マッチングに等しい最小編集距離は74である。
図20に示すように、パノラマ画像1は間取り図ロケーション1において撮影され、パノラマ画像2は間取り図ロケーション2において撮影され、パノラマ画像3は間取り図ロケーション3において撮影されたものであり、以下、他のパノラマ画像についても
図20に示すとおりである。
【0098】
加えて、各ロケーションのマッチング角も、距離マトリックスの下部に示されている。パノラマ画像1〜9のそれぞれのマッチング角が示されている。すなわち、第1のパノラマ画像のマッチング角は190度であり、第2のパノラマ画像のマッチング角は90度であり、第3のパノラマ画像のマッチング角は90度であり、以下、他のパノラマ画像のマッチング角も
図20に示すとおりである。この角度は、最良のマッチ及び最小編集距離スコアを有するようにパノラマ画像を回転させなければならない度数を示している。
【0099】
パノラマ画像と間取り図における対応するロケーションとをマッチングする視覚表現が、
図17の二部グラフに示されている。
図17に示すように、パノラマ画像30、32、34、36、38及び39は、それらの画像を異なる間取り図ロケーションA〜Iに接続するラインを用いて示されている。これらのラインは、パノラマ画像と間取り図ロケーションとの間の最小編集距離を表す。上記で論述したように、全体の最小編集距離を用いたパノラマ画像及びロケーションのペアリングは、パノラマ画像を間取り図画像におけるロケーションと対応付けるように互いにペアリングすることができる。
【0100】
[パノラマ画像のロケーション及び方位を特定する第2の実施形態]
パノラマ画像が撮影された場所を間取り図のロケーションに関してどのように特定するのか、及び、パノラマ画像の方位に関してどのように特定するのかの第2の実施形態が
図21に示されている。
【0101】
ステップ312に示すように、コード化されたパノラマ画像及びデータが、コンピュータシステム1510によって最初に取得される。次に、ステップ314において、間取り図画像からの距離変換データ及び物体データが、コンピュータシステム1510によって取得される。この検出物体データは、上記で論述したように、検出物体のクラスのタイプと、検出物体のロケーションとを含み、検出物体の確率的データも含む場合がある。
【0102】
次に、ステップ318において、部屋(n)のコード化された物体データを有する特定のパノラマ画像が解析用に選択される。加えて、特定の点(i)の間取り図物体データも、ステップ318において選択される。
図21に示すフローチャートにおけるプロセスの最初の反復において、特定の点(i)は、距離変換データに基づいて選ぶことができる。したがって、間取り図画像における空間の中心位置は、パノラマ画像が撮影された最も可能性の高い候補であるので、第1の点として選ぶことができる。
【0103】
ステップ320において、特定の物体クラス(o)が選ばれる。例えば、物体クラスは、窓、左窓、右窓、ドア、左ドア、右ドア、コーナー、凹状コーナー、凸状コーナー等とすることができる。物体の任意の検出可能なクラスを選ぶことができる。任意のクラスを含むいずれのクラスも選ぶことができるが、プロセスの最初の反復については、ほとんどの物体を有するクラスを選ぶことができる。選ばれなかった他の全ての物体のクラスは、無視することができ、その後のステップにおいて用いることができる。したがって、選ばれた物体のクラスがドアである場合、パノラマ画像のドアデータ及び間取り図画像のドアデータのみが互いに比較される。1つの物体クラスのみを選択する1つの技術的利点は、パノラマ画像ロケーション及び方位を特定するためにCPU1520によって必要とされる計算能力の量が削減されるということである。
【0104】
ステップ322において、選択された物体のクラスに関して、パノラマ部屋(n)のデータと点(i)における間取り図データとの比較が行われる。この一例が
図22に示されている。
図22は、パノラマ画像用の上部ライン及び間取り図画像用の下部ラインの2つのラインを示している。これらのラインは、間取り図画像又はパノラマ画像における部屋又は空間の水平軸を表す。
【0105】
物体2302、2304、2306及び2308は、指定されたクラスの検出物体と、水平方向に関するパノラマ画像内のそれらのそれぞれのロケーションとを表す。物体2320、2322、2324及び2326は、指定されたクラスの検出物体と、水平方向に関する点(i)における間取り図画像内のそれらのそれぞれのロケーションとを表す。したがって、
図22の物体は、ドアを表すことができ、
図22は、ドアがパノラマ画像及び間取り図画像において検出された場所を示している。
【0106】
次に、特定の画像、例えば、間取り図画像又はパノラマ画像における物体のそれぞれのコストが計算される。このコストは、検討中の特定の物体と、この物体が比較されている画像内の最も近い近傍との間の距離を計算することによって求められる。したがって、例えば、パノラマ画像の物体2302は、間取り図画像の物体2320に最も近い。ただし、最も近い物体までの距離が求められたことを確認するために、少なくとも1つの他の距離測定を行うことができる。したがって、物体2302と物体2320との間の距離、及び、物体2302と物体2322との間の距離が求められる。その後、最短距離が記録される。これは、画像内の物体のそれぞれについて行われる。これは、以下の式によって数学的に表すことができる。
【0108】
上記式において、Cは、コスト関数を表し、Xは、物体クラスに対応する、間取り図画像から抽出された点のセットを表し、Yは、物体クラスに対応する、パノラマ画像から抽出された点のセットを表す。
【0109】
加えて、他の画像内の物体のそれぞれについて、同じ距離計算を行うことができる。すなわち、物体2320、2322、2324及び2326とパノラマ画像内のそれらの最も近い近傍物体との間の距離も計算することができる。次に、双方の画像における物体の全ての距離のそれぞれのコストを加算して、パノラマ画像及び間取り図画像の点(n)に関して、物体クラスのローカルな総コストを求めることができる。
【0110】
加えて、コストを評価することは、以下で説明するように、重み係数及び/又は閾値処理プロセスも伴うことができる。
図23A及び
図23Bに示すように、2つのグラフが、同じクラスにおける2つの物体間の距離に関するコストを求めることに対して重み/閾値処理要素を提供する。
図23Aを見ると、点の間の距離が増加するにつれて、対応するコストも増加するが、距離がどの程度遠いかに応じて、対応するコストは、2次関数又は線形関数のいずれかに基づくことが示されている。
【0111】
例えば、
図23Aは、コスト関数がゼロ点の近くでは2次であるが、ゼロ点の近くのエリアの外側では線形であるフーバー(Huber)関数を示している。コストのこの重みによって、異常値のペナルティーが削減される。したがって、点の間の距離が大きいことによって被るペナルティーは、重みがない場合よりも小さくなる。これは、点の間の距離が小さい場合に、コストを低く維持することも行う。
【0112】
これは、以下の式によって数学的に表すことができる。
【0115】
これらの式において、G(x)はロバスト距離であり、xは2つの物体の間の距離であり、cは定数である。
【0116】
或る特定の閾値λまでの距離については線形コストを示し、それよりも遠くの距離についてはλの定コストを示す第2の例が、
図23Bに示されている。これは、以下の式によって数学的に表すことができる。
【0118】
この式において、dは2つの点の間の距離であり、x、y、及びλは定数である。具体的には、x及びyは、パノラマ画像及び間取り図画像における物体の位置である。このコスト関数は、比較を圧倒しないように異常値コストを制限する。この式の1つの利点は、コンピュータシステム1510によって必要とされる計算能力の量を削減することである。
【0119】
上述したステップ322のプロセスの代替形態として、別の方法を用いて、パノラマ画像及び間取り図画像における物体の間の距離を求めることができる。具体的には、パノラマ画像及び間取り図画像の双方における物体の検出にCNNの確率的出力を用いることができる。前述したように、CNNは、任意の所与のピクセルが特定の物体である確率を出力することができる。
【0120】
パノラマ画像を一例として用いると、CNNは、ピクセルが特定の物体である可能性を0%〜100%に分類することができる。例えば、特定のピクセルは、ドアである5%の可能性と、コーナーである50%の可能性と、窓である25%の可能性と、壁である20%の可能性とを有することができる。これは、水平ロケーション/ピクセルごとに行われる。したがって、画像が水平方向に1080ピクセルを含む場合、それらのピクセルのそれぞれは、CNNによって出力される、物体である特定の確率を有することができる。さらに、ピクセルの垂直列内のピクセルのうちのいずれかが物体であると特定された場合、この垂直列内のあらゆるピクセルを特定された物体によって表すことができる。したがって、解析する必要があるのは、水平行におけるピクセルのみである。この方法の1つの利点は、コンピュータシステム1510によって必要とされる計算能力の量を削減することである。
【0121】
CNNの確率的出力は、間取り図画像にも同様に適用することができる。例えば、特定のピクセルは、ドアである15%の可能性と、コーナーである40%の可能性と、窓である15%の可能性と、壁である30%の可能性とを有することができる。パノラマ画像と同様に、これは、水平ロケーション/ピクセルごとに行われる。したがって、画像が水平方向に1080ピクセルを含む場合、それらのピクセルのそれぞれは、CNNによって出力される、物体である特定の確率を有することができる。さらに、ピクセルの垂直列内のピクセルのうちのいずれかが物体であると特定された場合、この垂直列内のあらゆるピクセルを特定された物体によって表すことができる。したがって、解析する必要があるのは、水平行におけるピクセルのみである。この方法の1つの利点は、コンピュータシステム1510によって必要とされる計算能力の量を削減することである。
【0122】
比較されている物体クラスが、例えば、ドアである場合、ピクセルがパノラマ画像におけるドアである確率は、間取り図画像における同じ位置にあるピクセルもドアである確率と比較される。したがって、ピクセルが、パノラマ画像におけるドアである5%の可能性を有し、間取り図画像におけるドアである15%の可能性を有する場合、確率の差は、10%であると求められる。
【0123】
この手順は、パノラマ画像及び間取り図画像上の水平ラインにおけるピクセルの全てが、それらの間で計算された確率差を有するまで、(パノラマ画像内及び間取り図画像内の)ピクセルの各ペアについて実行される。次に、確率の差を合計して、ローカルコストを求めることができる。すなわち、間取り図画像内の特定の点(i)における物体の所与のクラス及び特定のパノラマ画像の部屋(n)のコストを求めることができる。
【0124】
その後、プロセスは、物体の異なるクラスについて繰り返される。これは、物体の全てのクラスを含む物体の1つ以上のクラスについて行うことができる。確率の差は、比較される物体の各クラスについて求められる。その後、これらの差は合計されて、比較される物体の各クラスのローカルコストが求められる。
【0125】
比較される物体のクラスの全てのコストが合計される(すなわち、ローカルコストの全てが加算される)と、グロ−バルコストを求めることができる。グロ−バルコストは、全てのローカルコストが合計されたコストである。次に、間取り図画像における特定の点(i)及びパノラマ画像の部屋(n)の最小総コストを保存し、異なる点(i)及び異なるパノラマ部屋(n)画像の他のコストと比較することができる。これらの更なるパノラマ画像及び間取り図における点は、プロセスにおいて後に考慮され、以下でより詳細に論述される。上記確率差法は、以下に示すように数学的に表すことができる。
【0127】
この式において、Cはコスト関数であり、det
floorplanは、間取り図画像内の検出物体の出力値であり、det
panoramicは、パノラマ画像内の検出物体の出力値である。
【0128】
上記から理解することができるように、距離を重み付けする任意の数の方法及び物体ペアの間のコストを求める任意の数の方法を用いることができ、これらの方法は、本発明のこの実施形態の範囲内にある。
【0129】
図21に戻って、ステップ324において、パノラマ画像の部屋(n)の全ての角度が、点(i)における間取り図画像及び各角度について計算されたコストと比較されるか否かに関する判断が行われる。上記で論述したように、パノラマ画像を回転させることができる。パノラマ画像が回転されると、検出物体の相対位置は、互いに対して同じ状態を保つが、物体自体は、左又は右に平行移動又はシフトする可能性がある。したがって、
図22に示すようにパノラマ画像の部屋(n)を間取り図画像と比較すると、物体ロケーションを左又は右にシフトすることによって、パノラマ画像及び間取り図画像における物体の間の距離が変化する可能性があり、したがって、求められるコストが変化する可能性がある。
【0130】
この物体ロケーションの左又は右へのシフトは、ユーザーの視点を回転させること又はパノラマ画像の方位を回転させることと考えることができる。パノラマ画像の角度は、
図15A及び
図15Bに関して上記で論述したように、例えば10度の増分に分離することもできるし、それよりも大きな増分又は小さな増分に分離することもできる。回転の増分が小さい場合、より多くの処理が必要とされるが、パノラマ画像における物体と間取り図画像における物体との間のより近いマッチの可能性を高くすることができる。回転の増分が大きい場合、必要とされる処理は少なくなるが、パノラマ画像における物体と間取り図における物体との間のより近いマッチの可能性は低くなる。
【0131】
例えば、パノラマ画像の部屋(n)が360度画像であり、10度の増分に分割されている場合、パノラマ画像の部屋(n)と点(i)におけるセグメンテーションされた間取り図との間の36個の異なる比較を行う必要がある。
【0132】
全てのパノラマ画像角が、点(i)において間取り図画像と比較されてはいない場合、ステップ326において、パノラマ画像が、例えば10度だけ回転され、プロセスはステップ322に戻る。全てのパノラマ画像角が点(n)において間取り図画像と比較されている場合、プロセスはステップ328に進む。
【0133】
ステップ328において、物体のクラスの全てが評価されたか否かが判断される。前述したように、物体のクラスは、ドア、窓、コーナー等とすることができる。パノラマ画像内のドアが間取り図画像内のドアと比較され、パノラマ画像内の窓が間取り図画像内の窓と比較され、パノラマ画像内のコーナーが間取り図画像内のコーナーと比較されるように、パノラマ画像及び間取り図画像内の物体の各クラスが個別に評価される。
【0134】
物体のクラスの全てが評価されてはいない場合、ステップ330において、物体クラス(o)を1つインクリメントすることによって、物体の新たなクラスが選ばれる。プロセスは、次に、ステップ320に戻り、その点から進む。物体の全てのクラスが評価された場合、プロセスはステップ332に進む。物体の全てのクラスを評価する必要はないことに留意されたい。例えば、10個の物体のクラスが存在する場合、1又は2つの物体のクラスしか評価する必要がないという可能性もある。例えば、10個の物体のクラスが存在するが、検出物体の95%が第1のクラス又は第2のクラスに分類される場合、他のクラスは、パノラマ画像及び方位と間取り図画像内の点とのマッチングの全体的な判断にあまり付加するものがない場合があるので、評価する必要がない場合がある。これによって、コンピュータシステム1510によって必要とされる計算能力が削減される。第1のクラス及び第2のクラスよりも多くのクラスを評価することが必要である可能性もある。例えば、評価された各クラスは、パノラマ画像が撮影されたと判断されたロケーション及び方位の精度を高めることができる。
【0135】
ステップ332において、間取り図画像内の更なる点(i)を計算するか否かが判断される。間取り図画像内の更なる点(i)の距離を計算する必要があるか否かを判断する1つの方法は、間取り図画像内の幾つかの点(i)のコスト勾配を計算し、次に、それらの幾つかの点に基づいて極小コストを求めることである。例えば、開始点(i)におけるコストを計算した後、隣接点(i)のコストも計算することができる。これらのコストを合わせて調べると、コスト勾配を作成することができる。コスト勾配を用いると、極小コストを見つけることができ、極小が見つかると、更なる点(i)を計算する必要がない。極小コストを求めるとき、より多くの点(i)が計算され、より高い確実度を達成することができることに留意されたい。
【0136】
上記計算されたコスト勾配は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、コスト勾配を計算するこのプロセスは、間取り図画像における部屋又はエリアの1つ以上又は全てについて繰り返すことができる。例えば、
図11A及び
図11Bに示すように、比較される間取り図画像における第1のロケーション又は部屋が部屋Aである場合、比較される次のロケーションは部屋Bであり、その次は部屋Cであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【0137】
間取り図画像内の更なる点(i)のコストを計算する必要があるか否かを判断する別の方法は、距離変換データからのロケーションを開始点として用いることである。すなわち、開始点は、距離変換データによる部屋における中心ロケーションとすることができる。その場合、開始点の周囲に位置する点(i)のランダムなガウスサンプルにおけるコスト計算を行うことができる。開始点が、小さなコストを生成する可能性の高い候補であるとき、周囲の点は、小さなコストを生成する次の最も可能性の高い点である。この方法は、パノラマ画像を撮影するときに、可能性の高い所望のロケーション、すなわち、写真撮影されるエリアの中心の近くのロケーションを利用する。ランダムなガウスサンプルにおける点(i)の距離の全てが計算されると、最小コストを有する点(i)を用いることができる。
【0138】
更なる点(i)が計算される場合、点(i)は、ステップ334においてインクリメントされる。上記で論述したように、計算される次の点は、開始点の周囲の点(i)のランダムガウス分布の点とすることもできるし、コスト勾配の確認を試みるときの近傍点とすることもできる。更なる点(i)が計算されない場合、プロセスはステップ336に進む。
【0139】
上記計算されたコストは、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、コストを計算するこのプロセスは、間取り図画像における部屋又はエリアの1つ以上又は全てについて繰り返すことができる。例えば、
図11A及び
図11Bに示すように、比較される間取り図画像における第1のロケーション又は部屋が部屋Aである場合、比較される次のロケーションは部屋Bであり、その次は部屋Cであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【0140】
ステップ336において、各パノラマ画像がどのロケーションにおいて撮影されたのか及びパノラマ画像がどの方位で撮影されたのかに関する最終的な特定が行われる。この特定は、各パノラマ画像及び各間取り図の点の個々のコストを解析し、パノラマ画像及び間取り図内の点のどの組み合わせが総グロ−バル最小コストを有するのかを特定することによって行われる。これは、
図20の距離マトリックスに示すような解析と同様である。各パノラマ画像及び各間取り図の点のコストは、最小総コストを有するパノラマ画像及び間取り図の点のセットを見つけるために評価される。
【0141】
編集距離スコアを示すマトリックスの代わりに、
図20を一例として用いると、このマトリックスは、間取り図画像及びパノラマ画像の部屋の各ペアのコストを提供する。パノラマ画像は、1〜9の番号が付けられ、x軸に示されている一方、間取り図ロケーションは、1〜9の番号が付けられ、y軸に示されている。このマトリックスにおける番号のそれぞれは、対応するパノラマ画像及び間取り図ロケーションの総コストを示している。さらに、マトリックスにおける数字は、各パノラマ画像セットの最小コストを示している。すなわち、マトリックスは、画像の最適な回転を考慮したときの最小編集距離を示している。このマトリックスから、最小コストを有するペアリング(間取り図ロケーション及びパノラマ画像)の組み合わせを特定することができる。
【0142】
加えて、各ロケーションのマッチング角も、コストマトリックスの下部に示されている。パノラマ画像1〜9のそれぞれのマッチング角が示されている。すなわち、第1のパノラマ画像のマッチング角は190度であり、第2のパノラマ画像のマッチング角は90度であり、第3のパノラマ画像のマッチング角は90度であり、以下、他のパノラマ画像のマッチング角も
図20に示すとおりである。この角度は、最良のマッチ及び最小コストを有するようにパノラマ画像を回転させなければならない度数を示している。
【0143】
パノラマ画像と間取り図における対応するロケーションとをマッチングする視覚表現が、
図17の二部グラフに示されている。
図17に示すように、パノラマ画像30、32、34、36、38及び39は、それらの画像を異なる間取り図ロケーションA〜Iに接続するラインを用いて示されている。これらのラインは、パノラマ画像と間取り図ロケーションとの間の最小コストを表す。上記で論述したように、全体の最小コストを用いたパノラマ画像及びロケーションのペアリングは、パノラマ画像を間取り図画像におけるロケーションと対応付けるように互いにペアリングすることができる。
【0144】
ドアを有する部屋の単純化した側面図を示したとする。ドアは全高Hを有する。部屋のパノラマ画像が撮影されたときのデジタルカメラの高さをH
1とし、デジタルカメラからドアの上部までの高さをH
2とすると、ドアの全高Hは、高さH
1及びH
2の合計である。である。上記で論述したように、デジタルカメラは、視野70度を有すると推定することができる。この視野を2で除算することによって、角度θが得られる。したがって、この角度は35度である。
【0145】
[バーチャルツアーの作成]
パノラマ画像のそれぞれが間取り図画像内のロケーションとマッチングされ、各パノラマ画像の方位が求められると、バーチャルツアーを作成することができる。バーチャルツアーでは、ユーザーが不動産物件内を自然に移動する仕方と一致してパノラマ画像の方位を定めることが好ましい。例えば、ユーザーが、バーチャルツアーにおいてドアを歩いて通過する場合、又は、或るロケーションから隣接ロケーションに行く場合、パノラマ画像の方位は、ユーザーが進行する方向、すなわち、ドア又は隣接ロケーションを通過する方向にすべきである。これは、間取り図の或るロケーションから次のロケーションに移動しているときの予想される視点がユーザーの予想と一致していない場合に、ユーザーの方向感覚を失わせることになる可能性があるからである。
【0146】
特定の部屋に入ったときに正確な方位がユーザーに提示されるように、一致した方位を得るために、パノラマ画像を回転又は調整することができる。例えば、
図5に示すように、ユーザーが西側バルコニーから畳部屋に行く場合、ユーザーが実際の不動産物件内の畳部屋にちょうど入ったときのように、ユーザーが真っ直ぐ前を見るように畳部屋のパノラマ画像の方位を定めることができる。各パノラマ画像が、間取り図画像に対する方位を有すると、上述したように正確な方位がユーザーに提示されるように、各パノラマ画像をそれに応じて回転させることができる。
【0147】
例えば、パノラマ画像が0度の方向を指しているが、ユーザーの予想とマッチングさせるために270度の方向を指す必要がある場合、パノラマ画像をそれに応じて回転させ、パノラマ画像が270度の方向を向いている状態でバーチャルツアーに提示することができる。さらに、パノラマ画像をクロッピング又は別の方法で編集して、視野を360度から、例えば90度等のより標準的な視野に削減することができる。加えて、視野が、特定の位置にいる人の視野とマッチングするように、視野を編集することができる。
【0148】
バーチャルツアーは、複数の方法で作成することができる。例えば、バーチャルツアーは、コンピュータシステム1510によって自動的に再生して、ユーザーを不動産物件の既定のツアーに案内することができる。バーチャルツアーは、パノラマ画像が関連付けられた全ての部屋において停止することを含むことができる。さらに、バーチャルツアーは、部屋全体をユーザーに示すために、部屋にいるときに部屋のパノラマ画像を回転又はパンさせることができる。
【0149】
加えて、バーチャルツアーをインタラクティブなものにして、ユーザーがどのロケーションを訪問するのか及びどの順番で訪問するのかを選ぶことを可能にすることができる。バーチャルツアーは、ユーザーが、間取り図内の或るロケーションに留まっている時間を求めることも可能にすることができる。
【0150】
図24は、間取り
図10の3部屋ツアーの一例を示している。この例では、間取り
図10は、前述したものと同じ間取り図であり、同様の参照符号は同じ特徴部を表している。
【0151】
バーチャルツアーが開始する前に、不動産物件において撮影されたパノラマ画像は、この不動産物件の間取り図画像とともに、コンピュータシステム1510内に既に入力されている。上述した実施形態のうちの任意のものを用いて、各パノラマ画像が、間取り図画像における、そのパノラマ画像が撮影された場所のロケーションとマッチングされる。さらに、間取り図画像に対する各パノラマ画像の方位も特定される。この情報を用いて、コンピュータシステム1510は、不動産物件のバーチャルツアーを作成することができる。バーチャルツアーは、パノラマ画像が関連付けられた間取り図画像の1つ以上の部屋を含むことができる。バーチャルツアーの一例は、
図24に関して以下で論述される。
【0152】
図24において、バーチャルツアーは、玄関ドアから始まる経路P1から開始し、部屋2に入室する。部屋2内で撮影された対応するパノラマ画像には、ユーザーが部屋2に入る方位と同じ方位であるO1の方位が与えられる。したがって、対応するパノラマ画像は、ユーザーが部屋に入るときに、画像の中心の方位がO1方向になるように、向きが調整される。重要なこととして、1つの単一のフレームには、視野全体がユーザーに示されていない場合があることを想起されたい。すなわち、より小さくより自然な視野がユーザーに示されるように、パノラマ画像は、クロッピング又は別の方法で調整することができる。さらに、この視野は、ユーザーが部屋2内の指定されたロケーションにいるときに見ることができる視野と同じ又は類似のものとすることもできる。
【0153】
さらに、ロケーションL1は、パノラマ画像が撮影されたと判断されたロケーションである。したがって、バーチャルツアーは、パノラマ画像の方位を、L1ロケーションにおいてO1方向に定める。その後、ユーザーは、左又は右にパンして、部屋の残りの部分を見ることもできるし、これは、コンピュータシステムが自動的に行うこともできる。同時に、ユーザーを援助するために、ユーザーが間取り図画像にいる場所のマップも示すことができる。
【0154】
次に、例示のバーチャルツアーは、経路P2によって示すように、隣の部屋8に向かう。パノラマ画像の方位は、方位O2によって示されるものである。そして、パノラマ画像のロケーションは、ロケーションL2によって示されている。
【0155】
最後に、バーチャルツアーは、経路P3によって示すように、ユーザーを居間3に案内する。この場合も、方位はO3の方位であり、ロケーションはL3によって示される。
【0156】
バーチャルツアーは、3つの部屋に限定されるものではなく、バーチャルツアーは、対応するパノラマ画像が関連付けられた各部屋又は各空間を訪問することができ、及び/又は、訪問する場所にユーザーによって方向付けることができる。
【0157】
[ハードウェア]
図25は、本発明のコンピューティングシステムを動作させることができるデバイスの一例を示している。このコンピューティングシステムは、コンピュータ、モバイルデバイス又は任意の処理プラットフォーム上で実施することができる。このコンピューティングシステムは、ウェブサイトブラウザー、モバイルフォンアプリケーション、大規模ネットワーク等において動作することができる。このコンピューティングシステムは、上記で論述したように、画像処理を実行するために1つ以上のCNNも備えることができる。
【0158】
図25は、本明細書で説明したように、画像の解析及びバーチャルツアーの作成に適合した1つ以上の態様を実施するのに用いることができる4つのコンピューティングシステム1510の例示の構成要素の図である。これらの4つのコンピューティングシステムは、互いにネットワーク接続されて、ネットワーク接続コンピューティングシステム1500を形成している。1つ以上のコンピューティングシステム1510を用いて、本発明の様々な態様又は本発明全体を実施することができることに留意されたい。コンピューティングシステム1510というとき、これは、1510A等の単一のコンピューティングシステムを意味することもあるし、ネットワーク接続コンピューティングシステム1500等の複数のコンピューティングシステムを意味することもある。
【0159】
様々なコンピューティングシステムを用いて、本文書において説明したシステム及び方法をクライアント又は単数若しくは複数のサーバーとして実施することができる。コンピューティングシステムは、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバー、ブレードサーバー、メインフレーム、及び他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表すことを意図している。他のコンピューティングシステムは、パーソナルデジタルアシスタント、携帯電話、スマートフォン、及び他の同様のコンピューティングシステム等の様々な形態のモバイルデバイスを含むことができる。ここに示す構成要素、それらの接続及び関係、並びにそれらの機能は、単なる例であることを意図したものであり、本文書において説明及び/又は特許請求される本発明の実施形態を限定することを意図したものではない。
【0160】
コンピューティングシステム1510の構成要素のそれぞれは、様々なバスを用いて相互接続され、共通の基板上に実装することもできるし、適宜、他の方法で実装することもできる。プロセッサは、コンピューティングデバイス内で実行される命令を処理することができる。これらの命令には、ディスプレイ上にグラフィカル情報を表示するための、メモリ又は記憶デバイスに記憶された命令が含まれる。コンピューティングシステム1510の出力は、ディスプレイ上への表示、別のコンピューティングデバイスへの送信、3次元レンダリングにおける使用、別のマシンにおける使用等を行うことができる。他の実施形態では、複数のプロセッサ及び/又は複数のバスを、適宜、複数のメモリ及び複数のタイプのメモリとともに用いることができる。また、複数のコンピューティングシステムを(例えば、サーバーバンク、ブレードサーバー群、又はマルチプロセッサシステムとして)相互接続することができ、各デバイスが、必要な動作の一部を提供することができる。
【0161】
プロセッサは、個別の複数のアナログプロセッサ及びデジタルプロセッサを備えるチップからなるチップセットとして実施することができる。加えて、プロセッサは、幾つかのアーキテクチャのうちの任意のものを用いて実施することができる。例えば、プロセッサは、x86プロセッサであってもよいし、RISC(縮小命令セットコンピュータ)プロセッサであってもよい。プロセッサは、ユーザーインターフェース、デバイスによって実行されるアプリケーション、及び無線通信の制御等においてデバイスの他の構成要素と協調することができる。複数のプロセッサ又は複数のコアを有するプロセッサも用いることができる。プロセッサは、主として、この文書において論述された機能の実行を担当する。一方、特に、本発明の画像処理の態様と、並列処理方式でより効率的に実行される他の態様とに関して、GPUも用いることができる。例えば、パノラマ画像及び間取り図画像内の物体の検出は、CNNによって行うことができる。CNNの画像処理の多くは、GPUにおいて行うことができる一方、他の非画像処理に関連したタスクは、CPUによって行うことができる。
【0162】
プロセッサは、制御インターフェース及びディスプレイに結合されたディスプレイインターフェースを通じてユーザーと通信することができる。このディスプレイは、例えば、LED(液晶ディスプレイ)ディスプレイであってもよいし、他の適切な表示技術であってもよい。ディスプレイインターフェースは、ディスプレイを駆動して、グラフィカル情報及び他の情報をユーザーに提示するための適した回路機構を備えることができる。制御インターフェースは、ユーザーからコマンドを受信し、それらのコマンドをプロセッサにサブミットするために変換することができる。加えて、他のデバイスとの近接場通信を可能にするために、プロセッサと通信する外部インターフェースを設けることができる。外部インターフェースは、例えば、無線通信及び/又は有線通信を提供することができる。複数のインターフェースを用いることもできる。
【0163】
一般に、より多くのパラメーターを有するより深層のCNNは、高処理能力及び大量のキャッシュメモリを有するコンピュータシステム上でより良好に動作する。GPU等の大量の並列処理能力を有するコンピュータシステムは、単一のプロセッサよりもはるかに高速になる傾向を有する。GPUは、以下でより詳細に論述される。
【0164】
具体的には、画像処理アプリケーションでは、CPUよりも計算能力が高いGPU(グラフィック処理ユニット)を用いることができる。実際には、数十個、数百個又は数千個のGPUのセットを用いて、大量の情報をより高速に計算することができる。GPUは、通常、プロセッサ及び共有メモリを備える。プロセッサはそれぞれ、共有メモリからデータを効率的に取得し、共有プログラムを実行することによって算術処理を実行する。用いることができるGPUの一例は、GeForce1080GPUである。
【0165】
複数のコンピューティングシステム1510A、1510B、1510C及び1510Dが示されている。コンピューティングシステム1510は、この特定の構成に限定されるものではなく、単一のコンピュータ又は多くのコンピュータであってもよい。同様に、コンピューティングシステム1510は、複数の並列CPU若しくは並列GPU又はそれらの組み合わせを備えることができる。コンピューティングシステム1510は、CPU1520、メモリ1550、通信ユニット1530、並列コンピューティングデバイス1560、及びバス1540を備えることができる。コンピューティングシステム1510は、図示していないが、画像(複数の場合もある)(例えば、バーチャルツアー)の形態にすることができる結果を出力するディスプレイも有することができる。
【0166】
コンピューティングシステム1510への入力は、パーソナルコンピュータ、サーバー、又は他のコンピューティングデバイス1590を用いて行うことができる。
【0167】
CPU1520は、メモリ1550に記憶されたプログラムに従って動作する。CPU1520は、通信ユニット1530及び並列コンピューティングデバイス1560を制御する。プログラムは、インターネット等のネットワーク1580を通じて提供することもできるし、DVD−ROM又はUSBメモリ等のコンピュータ可読情報記憶媒体に記憶することによって提供することもできる。
【0168】
メモリ1550は、例えば、RAM又はROM等のメモリデバイス及びハードディスクドライブを含む。メモリ1550はプログラムを記憶する。メモリは、各ユニットから入力される情報又は計算結果も記憶する。
【0169】
通信ユニット1530は、ウェブサーバー又は他のコンピュータ等の他のデバイスと通信するように構成されたネットワークカードとすることができる。通信ユニット1530は、CPU1520の制御に基づいて、他のデバイスから受信された情報をCPU1520又はメモリ1550内に入力し、その情報を他のデバイスに送信する。
【0170】
バス1540は、CPU1520、メモリ1550、通信ユニット1530、及び並列コンピューティングデバイス1560との間でデータを送信又は受信するように構成されている。例えば、CPU1520又はメモリ1550は、バス1540内の拡張バスを通じて並列コンピューティングデバイス1560に接続される。
【0171】
並列コンピューティングデバイス1560は、並列計算によって大量の同じタイプの計算を効率的に実行するハードウェアである。並列コンピューティングデバイス1560は、例えばGPUである。並列コンピューティングデバイス1560は、並列プロセッサユニット及びデバイス内メモリを備える。各並列実行ユニットは、例えば、複数のプロセッサ、命令ユニット、及び高速メモリを備える。
【0172】
各並列プロセッサは、浮動小数点計算と、デバイス内メモリ及び高速メモリとの間のデータの読み出し又は書き込みとを実行する。命令ユニットは、この命令ユニットを備える並列実行ユニットに含まれる並列プロセッサに、デバイス内メモリ等に記憶されたプログラムに基づいて処理を実行させる。並列実行ユニットのうちの1つに含まれる並列プロセッサは、そのような並列実行ユニットに含まれる命令ユニットからの命令に従って同じ命令を処理する。このように、複数の並列プロセッサを1つの命令ユニットによって制御することができ、これによって、命令ユニットの回路サイズの増加が抑えられる。したがって、CPU1520の場合と比較して、並列コンピューティングデバイス1560に含まれる並列プロセッサの数を増加させることが可能である。
【0173】
デバイス内メモリは、DRAMから構成することができる。デバイス内メモリは、バス1540を通じてCPU1520及びメモリ1550に接続されている。並列コンピューティングデバイス1560は、デバイス内メモリとメモリ1550との間でDMA転送を介してデータを転送する回路も備える。高速メモリは、例えば、デバイス内メモリよりも高速アクセスが可能なSRAMから構成される。デバイス内メモリ及び高速メモリのそれぞれは、GPU1560の並列プロセッサからアクセス可能な共有メモリである。
【0174】
例示のブロック図及びフローチャートは、プロセスにおける特定の論理機能又はステップを実施する1つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表すことができるプロセスステップ又はプロセスブロックを示している。特定の例は、特定のプロセスステップ又は手順を示しているが、多くの代替の実施態様が可能である。幾つかのプロセスステップは、例えば、機能、目的、標準への準拠、レガシー構造、ユーザーインターフェース設計等の考慮に基づいて、本明細書における特定の説明と異なる順序で実行することができる。
【0175】
本発明の複数の実施形態が説明されている。本発明の趣旨及び範囲から逸脱することなく様々な変更を行うことができることが理解されるであろう。例えば、上記に図示した様々な形態のフローは、ステップの並べ替え、追加、又は削除を行って用いることができる。また、本発明の幾つかの実施形態が説明されてきたが、これらの実施形態は、組み合わせることもできるし、変更することもできることに留意されたい。