(57)【要約】      （修正有）【課題】パノラマ画像を間取り図のロケーション及び方位と高速かつ効率的にマッチングすることができるとともにバーチャルツアーを作成可能な人工知能を用いるコンピュータ実施方法を提供する。【解決手段】人工知能を用いるコンピュータ実施方法は、複数のパノラマ画像を取得するステップＳ３１２と、間取り図画像を取得するステップＳ３１４と、パノラマ画像のそれぞれにおいて物体及びそれらのロケーションを検出するステップＳ３１８と、間取り図画像において物体及びそれらのロケーションを検出するステップＳ３２０と、パノラマ画像のそれぞれにおいて検出された物体及びロケーションを、間取り図画像において検出された物体及びロケーションと比較することと、各パノラマ画像が撮影された間取り図画像におけるロケーションを特定することとによって、画像をロケーション及び方向とマッチングするステップＳ３３６を有する。【選択図】図２１
2020038657.tif 000002
【特許請求の範囲】
【請求項１】
カメラを用いて撮影された複数の部屋画像を取得し、
人工知能を用いて、前記複数の部屋画像のそれぞれにおいて少なくとも１つの物体を検出し、
前記部屋画像のそれぞれにおいて検出された前記少なくとも１つの物体の物体ロケーションを検出し、
間取り図画像を取得し、
人工知能を用いて、前記間取り図画像において少なくとも１つの物体を検出し、
前記間取り図画像において検出された前記少なくとも１つの物体の物体ロケーションを検出し、
前記複数の部屋画像のそれぞれにおいて検出された前記少なくとも１つの物体及び前記物体ロケーションを、前記間取り図画像において検出された前記少なくとも１つの物体及び前記物体ロケーションと比較し、
各部屋画像が撮影された前記間取り図画像におけるロケーションを特定する、
人工知能を用いるコンピュータ実施方法。
【請求項２】
各部屋画像が前記間取り図画像における方位に関して第１の方位に整列されるように、各部屋画像を水平軸に沿ってシフトしなければならない度数が求められる、
請求項１に記載の方法。
【請求項３】
前記複数の部屋画像における第１の部屋画像が、畳み込みニューラルネットワークを用いて解析され、各物体の分類及び各物体の前記ロケーションが特定される、
請求項１又は２に記載の方法。
【請求項４】
前記間取り図画像は、畳み込みニューラルネットワークを用いて解析され、前記間取り図画像における各物体の分類及び各物体の前記ロケーションが特定される、
請求項３に記載の方法。
【請求項５】
前記間取り図画像に対して距離変換機能を実行して、前記間取り図画像における各点と前記間取り図画像における最も近い物体との間の距離を求めることを更に含む、
請求項１〜４の何れかに記載の方法。
【請求項６】
前記検出された物体は、ドア、窓、コーナー又は壁を含むクラスの物体である、
請求項１〜５の何れかに記載の方法。
【請求項７】
前記部屋画像のそれぞれにおいて検出された前記物体及び前記物体ロケーションを、前記間取り図画像において検出された前記物体及び前記物体ロケーションと前記比較することは、一時に単一の物体のクラスを用いて行われる、
請求項６に記載の方法。
【請求項８】
単一の物体のクラスの間の前記比較は、前記部屋画像における前記物体と前記間取り図画像における前記物体との間の距離を測定し、前記部屋画像からの前記物体と前記間取り図画像からの前記物体との間にコストを割り当てることによって行われる、
請求項７に記載の方法。
【請求項９】
重み係数が、前記コストを求めるのに用いられる、
請求項８に記載の方法。
【請求項１０】
前記部屋画像のそれぞれにおいて検出された前記物体及び前記物体ロケーションを、前記間取り図画像において検出された前記物体及び前記物体ロケーションと前記比較することは、前記各部屋画像及び前記間取り図画像における複数のロケーションについて行われる、
請求項１に記載の方法。
【請求項１１】
前記物体の間の前記比較は、編集距離を用いて行われる、
請求項１〜１０の何れかに記載の方法。
【請求項１２】
画像をロケーション及び方向とマッチングする人工知能（ＡＩ）システムであって、
複数の部屋画像を取得する部屋画像取得手段と、
間取り図画像を取得する間取り図画像取得手段と、
前記部屋画像のそれぞれにおいて物体及び物体ロケーションを検出する第１検出手段と、
前記間取り図画像において物体及び物体ロケーションを検出する第２検出手段と、
前記部屋画像のそれぞれにおいて検出された前記物体及び前記物体ロケーションを、前記間取り図画像において検出された前記物体及び前記物体ロケーションと比較する比較手段と、
各部屋画像が撮影された前記間取り図画像におけるロケーションを特定する特定手段と、
を含むＡＩシステム。
【請求項１３】
前記ＡＩシステムは、各部屋画像が前記間取り図画像における方位に関して第１の方位に整列されるように、各部屋画像を回転させなければならない度数を求めるように構成されている、
請求項１２に記載のＡＩシステム。
【請求項１４】
畳み込みニューラルネットワークを実行して、前記複数の部屋画像における第１の部屋画像の各物体の分類及び各物体の前記ロケーションを特定する手段、
を更に含む請求項１２又は１３に記載のＡＩシステム。
【請求項１５】
前記第２検出手段は、畳み込みニューラルネットワークを実行して、前記間取り図画像の各物体の分類及び各物体の前記ロケーションを特定する、
請求項１４に記載のＡＩシステム。
【請求項１６】
前記間取り図画像に対して距離変換機能を実行して、前記間取り図画像における各点と前記間取り図画像における最も近い物体との間の距離を求める手段、
を更に含む請求項１２〜１５の何れかに記載のＡＩシステム。
【請求項１７】
前記検出された物体は、ドア、窓、コーナー又は壁を含むクラスを有する、
請求項１２〜１６の何れかに記載のＡＩシステム。
【請求項１８】
単一の物体のクラスの間で比較をするとき、前記部屋画像における前記物体と前記間取り図画像における前記物体との間の距離を求め、前記部屋画像からの前記物体と前記間取り図画像からの前記物体との間にコストを割り当てる手段、
を更に含む請求項１７に記載のＡＩシステム。
【請求項１９】
複数の部屋画像を取得する部屋画像取得手段、
間取り図画像を取得する間取り図画像取得手段、
前記部屋画像のそれぞれにおいて物体及び物体ロケーションを検出する第１検出手段、
前記間取り図画像において物体及び物体ロケーションを検出する第２検出手段、
前記部屋画像のそれぞれにおいて検出された前記物体及び前記物体ロケーションを、前記間取り図画像において検出された前記物体及び前記物体ロケーションと比較する比較手段、
各部屋画像が撮影された前記間取り図画像におけるロケーションを特定する特定手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、人工知能を用いるコンピュータ実施方法、ＡＩシステム、及びプログラムに関する。
【背景技術】
【０００２】
住宅又はマンション等の不動産物件を検索するとき、土地／建物のオンラインビューイングが、インターネットの出現及び発展に伴って一般的なものとなってきた。これによって、ユーザーは、多数の不動産物件を、それらの不動産物件に本人自ら訪問する必要なく検索することが可能になっている。不動産ブローカー及び認可代理人は、多くの場合、不動産物件の映像を撮影し、それらの映像をオンラインリストに掲載する。このオンラインリストは、多くの場合、代理人によって掲載された映像に加えて、不動産物件の間取り図を有する。時には、映像にラベルが付けられることもあるし、映像は、不動産物件内の部屋に関連付けられることもある。例えば、認可代理人は、「主寝室」、「キッチン」、「ボーナスルーム」等として映像にラベルを付けることができる。しかしながら、認可代理人は、通常、映像が不動産物件において撮影された正確なロケーションを含めず、また、通常、映像が不動産物件内でどの方向で撮影されたのかの方位を提供しない。
【０００３】
不動産物件のレイアウトは、寝室、キッチン、クローゼット、バルコニー、部屋寸法等の不動産物件の特徴及びエリアを示すことができる間取り図画像に示すことができる。不動産物件の特徴には、時に、その特徴の識別に役立つようにラベルを付けることができる。図１は、間取り図画像１０の一例であり、マンションの間取り図を示している。部屋２及び８は、廊下４によって接続された寝室である。多目的ルーム６は、居間３に隣接している。キッチン９は、居間３に隣接して配置されている。
【０００４】
図２は、オンラインリストの部屋写真２０の一例を示している。写真２０は、標準的なデジタルカメラから撮影することができる。写真２０に付加的な情報は提供されておらず、この写真が不動産物件のどのエリアを示しているのかの推測は、ユーザーに委ねられる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
これまで、パノラマ画像を間取り図におけるロケーション及び方位に関連付ける唯一の方法は、手動でそれを行うことであった。すなわち、人は、画像を見て、画像が撮影された間取り図における場所及び方位を特定する必要があった。これは、画像の数が増加するにつれて、その困難さが大幅に増加する非常に困難な作業となる可能性がある。例えば、１０部屋を１０個の対応するパノラマ画像とともに有する大きな住宅は、手動でマッチングを行うのに長い時間を要する。間取り図における適したロケーション及び間取り図における適した方位を有するパノラマ画像を正確に求めることは、非常に困難となる可能性がある。例えば、寝室等の類似した部屋は、手動でマッチングすることが困難である可能性がある。画像が間取り図ロケーションと正しくマッチングされたことを確認する唯一の方法は、画像が撮影された時点で、画像が撮影された間取り図における場所及び画像が撮影された方位を書き留めることであった。このデータが無い場合、一群のパノラマ画像の正確なロケーション及び方位を手動で特定することはほぼ不可能であった。
【０００６】
さらに、現在、数百万もの不動産物件がオンラインでリスト化されている。実際上、本明細書において説明される本発明及びその実施の形態にもかかわらず、方位及びロケーションの情報は得ることができない。したがって、パノラマ画像を間取り図のロケーション及び方位と高速かつ効率的にマッチングすることができるとともにバーチャルツアーを作成することができる自動化されたコンピュータ実施ＡＩシステムを作製することが本発明者らによって試みられた。
【課題を解決するための手段】
【０００７】
上記に鑑み、本発明者らは、不動産物件の１つ以上のパノラマ画像にロケーション及び方位を割り当て、割り当てられた画像のロケーション及び方位を用いて不動産物件のバーチャルツアーを作成する人工知能（ＡＩ）を用いる新規なマシン及び方法を作成した。１つ以上の画像のセット、好ましくは、広視野を示すパノラマ画像のセットと、対応する間取り図画像とが、専用コンピュータシステム内に入力される。次に、これらの１つ以上のパノラマ画像は、当該パノラマ画像が撮影された間取り図における特定のロケーションとマッチングされる。画像がどの方向で撮影されたかの方位も、本発明の実施の形態において特定される。
【０００８】
本発明の一実施の形態では、間取り図画像は、部屋、廊下、バルコニー、地下室等の個々のロケーション内にパースすることができる。これは、間取り図画像の物体及び他の特徴部を識別するセグメンテーションプロセスを用いて行うことができる。識別することができる物体の例には、壁、コーナー、ドア、窓、階段、トイレ、シンク、バスタブ、シャワー、ストーブ、冷蔵庫、書棚及び整理棚等の作り付けの特徴部、キッチンアイランド、又は間取り図画像からラベル付け又は識別することができる他の任意の特徴部が含まれる。
【０００９】
本発明の一実施の形態では、間取り図画像、又は、壁、ドア、窓等の物体を表す画像領域を抽出した、間取り図画像を処理したものに対して距離変換を行うことができる。この距離変換は、間取り図画像内の任意の点と、壁、ドア、窓等の最も近い物体との間の距離を示すことができる。
【００１０】
不動産物件において撮影されたパノラマ画像のセットについては、個々の各パノラマ画像においても物体を検出することができる。パノラマ画像のそれぞれにおいて検出された物体と、間取り図画像において検出された物体とを互いに比較して、パノラマ画像と、間取り図画像におけるこのパノラマ画像が撮影されたロケーションとの間のマッチを見つけることができる。このマッチングを用いると、特定のパノラマ画像を、このパノラマ画像が撮影された間取り図画像における特定のロケーションに関連付けることができる。これは、パノラマ画像ごとに行うことができる。さらに、パノラマ画像のそれぞれにおける物体と間取り図画像における物体とのマッチングに基づいて、各パノラマ画像の方位も確認することができる。
【００１１】
間取り図内における撮影されたパノラマ画像のそれぞれのロケーション及び方位が特定されると、不動産物件の自動的及び／又はインタラクティブなツアーを提供するバーチャルツアーを作成することができる。バーチャルツアーは、当該バーチャルツアーにおいて訪問される間取り図ロケーションを対応するパノラマ画像に提供する。パノラマ画像を編集して、バーチャルツアーの標準的な視野画像として見えるようにすることもできる。すなわち、パノラマ画像の広視野の代わりに標準的な視野をバーチャルツアーにおいて示すように、パノラマ画像をクロッピング又は別の方法で編集することができる。
【００１２】
一例として、不動産業者は、不動産物件を訪問し、この不動産物件内の部屋の一部又は全てのパノラマ画像を撮影することができる。その後、不動産業者は、これらの画像をコンピュータシステムにアップロードすることができる。不動産業者は、間取り図画像もコンピュータシステム内にアップロードすることができる。ＪＰＥＧ、ＴＩＦＦ、ＧＩＦ、ＢＭＰ、ＰＮＧ等の種々のフォーマットを有する画像を含む任意のフォーマットのパノラマ画像及び間取り図画像をコンピュータシステム内にアップロードすることができる。コンピュータシステムは、その後、各パノラマ画像を間取り図における正確なロケーション、すなわち、画像が撮影された間取り図における場所とマッチングする。コンピュータシステムは、パノラマ画像が撮影された方向も識別する。すなわち、パノラマ画像の方向を間取り図画像における方向とマッチングする。
【００１３】
パノラマ画像が間取り図画像とマッチングされると、コンピュータシステムは、不動産物件のバーチャルツアーを自動的に作成し、それによって、間取り図を通る不動産物件のツアーが作成される。バーチャルツアーは、ユーザーが不動産物件内を部屋から部屋にどのように進むのかを模倣することができる。
【００１４】
本発明者らは、畳み込みニューラルネットワークシステム（以下、「ＣＮＮシステム」又は「ＣＮＮ」という）等のＡＩ及びコンピュータハードウェアを実装する１つ以上の専用コンピュータを用いて、不動産物件の１つ以上のパノラマ画像にロケーション及び方位を割り当て、割り当てられた画像のロケーション及び方位を用いて不動産物件のバーチャルツアーを作成する装置及び方法を本明細書に開示している。これらの概念は、以下でより詳細に説明される。
【００１５】
以下の図面は、本明細書に開示された本発明の実施形態の様々な構成要素の例を示し、例示を目的としたものにすぎない。
【図面の簡単な説明】
【００１６】
【図１】マンションの間取り図画像を示す図である。
【図２】オンラインリストにおいて用いられる部屋の画像を示す図である。
【図３】本発明の一実施形態内に入力されるパノラマ画像のセット及び間取り図画像を示す図である。
【図４】本発明の一実施形態による第１の出力を示す図である。
【図５】本発明の一実施形態による第２の出力及び第３の出力を示す図である。
【図６】パノラマ画像のセットについてのパノラマ画像内の物体を検出する方法を示す図である。
【図７Ａ】パノラマ画像から検出することができる物体のクラスの第１の例を示す図である。
【図７Ｂ】パノラマ画像から検出することができる物体のクラスの第２の例を示す図である。
【図７Ｃ】パノラマ画像から検出することができる物体のクラスの第３の例を示す図である。
【図８】パノラマ画像に検出される種々の物体の一例を示す図である。
【図９】本発明の一実施形態による、入力された間取り図画像に基づいて部屋及び物体を特定する第１の方法を示す図である。
【図１０Ａ】本発明の一実施形態による、入力された間取り図画像に基づいて部屋及び物体を特定する一例を示す図である。
【図１０Ｂ】本発明の一実施形態による、入力された間取り図画像に基づいて部屋及び物体を特定する一例を示す図である。
【図１０Ｃ】本発明の一実施形態による、入力された間取り図画像に基づいて部屋及び物体を特定する一例を示す図である。
【図１１Ａ】本発明の一実施形態による、間取り図画像に基づいて識別される部屋又はエリアの特定を示す図である。
【図１１Ｂ】本発明の一実施形態による、間取り図画像に基づいて識別される部屋又はエリアの特定を示す図である。
【図１２】本発明の一実施形態による、入力された間取り図画像に基づいて壁、物体を特定し、距離変換を行う第２の方法を示す図である。
【図１３Ａ】本発明の一実施形態の第２の方法による、或るロケーションと最も近い壁との間の距離を求める一例を示す図である。
【図１３Ｂ】本発明の一実施形態の第２の方法による、或るロケーションと最も近い壁との間の距離を求める一例を示す図である。
【図１３Ｃ】本発明の一実施形態の第２の方法による、或るロケーションと最も近い壁との間の距離を求める一例を示す図である。
【図１４】本発明の一実施形態による、パノラマ画像のセットが撮影された場所の、間取り図画像に対するロケーション及び方位を求める方法を示す図である。
【図１５Ａ】パノラマ画像及び間取り図画像から文字列データを作成する一例を示す図である。
【図１５Ｂ】パノラマ画像の文字列の種々の角度を生成する一例を示す図である。
【図１６】２つの文字列の間の編集距離を計算する一例を示す図である。
【図１７】計算された編集距離に基づく、パノラマ画像と間取り図ロケーションとの可能なマッチの一例を提供する二部グラフを示す図である。
【図１８Ａ】間取り図画像と、図１８Ｂの検出物体に対応する間取り図画像内の点とを示す図である。
【図１８Ｂ】パノラマ画像及び間取り図画像内の点に従って検出物体を示す図である。
【図１９Ａ】図１９Ｂ及び図１９Ｃに対応する間取り図画像内の２つの識別された点を有する間取り図画像を示す図である。
【図１９Ｂ】間取り図画像内で検出された物体と、図１９Ａに従って間取り図画像内の第１の点から検出物体を見たときの検出物体の見掛けロケーションとの視覚表現を示す図である。
【図１９Ｃ】間取り図画像内で検出された物体と、図１９Ａに従って間取り図画像内の第２の点から検出物体を見たときの検出物体の見掛けロケーションとの視覚表現を示す図である。
【図２０】種々のパノラマ画像及び間取り図ロケーションに関する編集距離の距離マトリックスを示す図である。
【図２１】本発明の一実施形態による、パノラマ画像のセットが撮影された場所の、間取り図画像に対するロケーション及び方位を求める方法を示す図である。
【図２２】パノラマ画像内で検出された物体と間取り図画像内で検出された物体との間の距離を測定する方法を示す図である。
【図２３Ａ】距離計算とともに用いることができる重み関数を示す図である。
【図２３Ｂ】距離計算とともに用いることができる重み関数を示す図である。
【図２４】バーチャルツアーの経路を示す図である。
【図２５】本発明を実施するのに用いられるハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
例示のブロック図及びフローチャートは、プロセスにおける特定の論理機能又はステップを実施する１つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表すことができるプロセスステップ又はプロセスブロックを示している。特定の例は、特定のプロセスステップ又は手順を示しているが、多くの代替の実施態様が可能である。幾つかのプロセスステップは、例えば、機能、目的、標準への準拠、レガシー構造、ユーザーインターフェース設計等の考慮に基づいて、本明細書における特定の説明と異なる順序で実行することができる。
【００１８】
本発明の複数の実施形態が説明されている。本発明の趣旨及び範囲から逸脱することなく様々な変更を行うことができることが理解されるであろう。例えば、上記に図示した様々な形態のフローは、ステップの並べ替え、追加、又は削除を行って用いることができる。また、リモート端末又はモバイルデバイスを認可する幾つかの実施形態が説明されているが、非常に多くの他の用途が考えられることが認識されるであろう。したがって、他の実施形態は、添付の特許請求の範囲の範囲内にある。
【００１９】
図３は、本発明の一実施形態内への入力の一例を提供している。図３に示すように、６つのパノラマ画像３０、３２、３４、３６、３８及び３９並びに間取り図画像１０が、コンピューティングシステム１５１０（後に図２５において説明される）内に入力される。この実施形態は、６つのパノラマ画像に限定されるものではなく、例えば、コンピュータシステム１５１０に入力されるパノラマ画像の数は、１つの画像から、計算処理リソースによってのみ制限される上限にまで及ぶことができる。パノラマ画像は、不動産物件内の内部ロケーションにある２つ以上の物体をキャプチャーすることが可能な広視野を有する任意の画像とすることができる。パノラマ画像は、水平方向に３６０度の視野を有することができるが、２７０度、１８０度、９０度、又はそれ未満のようにより狭い視野も用いることができる。パノラマ画像３０、３２、３４、３６、３８及び３９の場合に、それらの画像は、それぞれ３６０度の全視野を有し、２：１の縦横比又はそれよりも大きな縦横比（例えば、４：１又は１０：１）を有する。画像は、専用の３６０度デジタルカメラ、間取り図画像内の或る点の回りを水平方向に３６０度回転された標準的なカメラ、又は映像をデジタル処理によってつなぎ合わせてパノラマ画像を形成することができる他の任意のタイプのカメラを用いて撮影することができる。パノラマ画像及び部屋画像という用語は区別なく用いることができる。すなわち、部屋、又は建物内の空間のパノラマ画像が撮影され、部屋画像と呼ぶこともできる。
【００２０】
デジタル画像では、パノラマ画像のコンピュータ編集が可能である。例えば、デジタル画像は、画像を水平方向にクロッピングして、ユーザーが画像を見ることをより容易にするのに役立つことができる。すなわち、バーチャルツアーを作成するときに視野を３６０度にするのではなく、間取り図における部屋の特定の方向を見る（例えば、廊下を見通す）ときに、より自然な９０度の視野を用いることができる。この機能は、パノラマ画像ビュアーでは標準的なものである。これらのビュアーは、パノラマ画像を入力として取り込み、そのパノラマ画像をボックス、円柱又は球のような単純な形状に投影するとともに、部屋を見るためにこの形状の内部に配置された（仮想）カメラを投影して、画面上に示すことができる。加えて、画像の中心ロケーションを水平方向に移動させるように、デジタル画像を容易に回転させることもできる。３６０度パノラマ画像の対向する端部は、つなぎ合わせることもできるし、画像内の任意の箇所で切断することもできる。これは、画像編集ソフトウェアを用いて行うことができる。さらに、パノラマ画像は、ＪＰＥＧ、ＴＩＦＦ、ＧＩＦ、ＢＭＰ、ＰＮＧ等を含む任意の画像フォーマットのものとすることもできる。畳み込みニューラルネットワーク（ＣＮＮ）又は他の画像認識物体識別システム等の人工知能の形態を用いる本システムは、パノラマ画像（複数の場合もある）を用いて、正確なバーチャルツアーの作成に役立つ必要な情報を取得することができる。
【００２１】
ＣＮＮは、最も一般的には視覚画像の解析に適用される深層フィードフォワード人工ニューラルネットワークの一クラスである。ＣＮＮは、必要とされる前処理を最小限に抑えるように設計された多層パーセプトロン（ＭＬＰ）の変形形態を用いることができる。ＣＮＮは、それらの共有重みアーキテクチャ及び並進不変特性に基づいて、シフト不変人工ニューラルネットワーク又は位置不変人工ニューラルネットワーク（ＳＩＡＮＮ）としても知られている。ＣＮＮの１つの利点は、ＣＮＮが用いる前処理が、他の画像分類アルゴリズムと比較して相対的に少ないことである。したがって、ネットワークは、従来のアルゴリズムではマニュアル設計（hand-engineered）されていたフィルターを学習する。特徴設計において事前知識及び人の労力に依拠しないことが、従来の方法を上回る主な利点である。
【００２２】
間取り図画像は、建物における部屋（複数の場合もある）の配置の図であり、通常は、一律の縮尺で描かれている。小売業者、建築家、不動産業者等によって用いられる様々なタイプ又はスタイルの間取り図がある。例えば、芸術的な相違が間取り図画像に存在することが多い。すなわち、同じ不動産物件の２つの間取り図画像は、多くの場合、多くの類似点を有するが、幾つかの点において必然的に異なる。例えば、これらの相違は、異なる陰影、間取り図画像において識別される異なる項目（部屋、キッチン、トイレ等）及び同じ項目を表す異なるイラストを含むことができる。しかしながら、間取り図画像の設定された標準を本コンピュータシステム内に入力する必要はない。さらに、間取り図画像も、ＪＰＥＧ、ＴＩＦＦ、ＧＩＦ、ＢＭＰ、ＰＮＧ等を含む任意の画像フォーマットのものとすることができる。畳み込みニューラルネットワーク（ＣＮＮ）若しくは他のＡＩ、又は画像認識物体識別システムを用いた本コンピュータシステムは、間取り図画像を用いて、正確なバーチャルツアーの作成に役立つ必要な情報を取得することができる。
【００２３】
図４は、本発明の一実施形態によるコンピューティングシステムの出力の第１の態様を示している。具体的には、パノラマ画像３０、３２、３４、３６、３８及び３９のそれぞれは、そのパノラマ画像が撮影された間取り図画像１０内のロケーションに関連付けられている。パノラマ画像が撮影される場所の間取り図画像１０内におけるロケーションをどのように決定するのかの詳細については、以下でより詳細に論述される。
【００２４】
パノラマ画像のセット及び間取り図画像における物体検出から取得されたデータを用いると、コンピュータシステムは、各パノラマ画像が撮影された場所の間取り図画像内のロケーションを求めることができる。さらに、各パノラマ画像の方位もシステムによって求めることができる。すなわち、間取り図画像内の求められたロケーションにおけるパノラマ画像の方位を確認することができる。この方位情報は、後に、バーチャルツアーを作成するときにパノラマ画像の方位を定めるのに用いることができる。
【００２５】
図５は、本発明の一実施形態によるコンピューティングシステムの出力の第２の態様及び第３の態様を示している。第２の態様は、方位５４０に示されている。具体的には、間取り図内の異なるロケーションに関するパノラマ画像５００のそれぞれの方位は、コンピューティングシステムの出力である。これは、方位矢印５６６によって示されている。パノラマ部屋画像５００が、図２５に関して以下で論述されるコンピューティングシステム１５１０内に入力された後、パノラマ画像の方位が、方位５４０に示されるように求められる。３６０度パノラマ画像が用いられる場合、画像の方位（すなわち、画像が向いている方向）は、水平方向において画像の中心に位置しているとみなされる。
【００２６】
図５に示す本発明の一実施形態の第３の態様は、様々な部屋とロケーションとの間の接続である。これは、一例として、接続矢印５６２及び５６４によって示されている。これらの矢印は、間取り図をどのように横断することができるのか、及び、不動産物件内のどの空間が他の空間からアクセス可能であるのかを示している。例えば、ユーザーが畳部屋にいるとすると、このユーザーには、第１の廊下又は西側バルコニーに行くという選択肢がある。この接続されたレイアウトは、間取り図レイアウトを求め、この間取り図レイアウトにおいてドア及び廊下がどこに位置しているのかを特定することによって実現することができる。これは、コンピュータシステム内に入力される間取り図画像に基づいている。これは、不動産物件のバーチャルツアーを作成するときに重要になる。
【００２７】
ＣＮＮは、間取り図画像をセグメンテーションし、間取り図の或るエリアを間取り図の別のエリアにつなぐドア等の物体、又は壁の間の空間の位置を特定し識別するのに用いることができる。これは、間取り図画像全体について、図５に示すように、特に接続矢印５６２及び５６４に関する接続マップ５６０を作成するために行うことができる。
【００２８】
図６は、パノラマ画像のセット内の各パノラマ画像において物体を見つける方法を示すフローチャートである。ステップ１０に示すように、パノラマ画像がコンピューティングシステム１５１０によって受信される。この画像は、バーチャルツアーが作成される間取り図内のロケーションから撮影される。パノラマ画像は、好ましくは、間取り図内の３６０度の視野を有するが、これよりも狭い視野角も可能である。
【００２９】
ステップ１２において、パノラマ画像が解析され、画像内の物体及びパノラマ画像内の物体のそれぞれの位置が特定される。特定される物体は、物体クラスによって事前に規定される。すなわち、図７Ａ、図７Ｂ及び図７Ｃに示すように、コーナー、ドア及び窓はそれぞれ、パノラマ画像から特定することができる物体クラスの例である。ただし、検出することができる物体は、これに限定されるものではない。検出することができる物体の例は、画像からラベル付け又は識別することができる壁、階段、トイレ、シンク、バスタブ、シャワー、ストーブ、冷蔵庫、書棚及び整理棚等の作り付けの特徴部、キッチンアイランド、又は他の任意の特徴部を含む。
【００３０】
さらに、これらの物体のサブクラスも、検出及び分類することができる。例えば、図７Ａは、ドアのクラスが検出されることを示しているが、検出することができる物体の２つのサブクラス、具体的には、左ドア８００、８０２及び８０４と、右ドア８０６、８０８及び８１０とを更に示している。図７Ｂは、コーナーのクラスが検出されることを示しているが、検出することができる物体の２つの異なるサブクラス、具体的には、凹状コーナー９００、９０２及び９０４と、凸状コーナー９０６、９０８及び９１０とを更に示している。図７Ｃは、窓のクラスを検出することができることを示しているが、検出することができる物体の２つの更なるサブクラス、すなわち、左窓１０００、１００２及び１００４と、右窓１００６、１００８及び１０１０とを示している。
【００３１】
上掲のサブクラスだけでなく、様々な物体の種々のサブクラスを検出することができることが分かっている。例えば、ドアのスタイル及び窓又は窓枠のスタイルを検出することができる。さらに、様々なタイプのコーナー又はモールディングも検出することができる。ＣＮＮは、上記で論述した物体のクラス及びサブクラスを含む物体の様々なクラス／サブクラスを認識するようにトレーニングすることができる。物体のこれらのサブクラスを検出することの１つの利点は、パノラマ画像と仮想レイアウトにおける間取り図ロケーション画像とのマッチの精度を高めることである。
【００３２】
物体は、パノラマ画像内の当該物体及びそれらの位置を正確に識別することができる限り、任意の技法を用いて検出することができる。例えば、トレーニングされた畳み込みニューラルネットワーク（ＣＮＮ）を物体検出に用いることができる。ＣＮＮは、コーナー、窓、ドア等を検出するようにトレーニングすることができる。画像内の物体を検出するためにＣＮＮをどのように用いるのかを論述したものについては、米国特許出願第１５／７９８，３４９号及び同第１５／７９８，３４３号を参照されたい。これらの米国特許出願の内容は、引用することによってそれらの全体が本明細書の一部をなす。物体検出の他の方法も用いることができ、本発明の実施形態はＣＮＮに限定されるものではない。
【００３３】
物体ラベルに加えて、ＣＮＮは、特定の物体が実際に指定された物体である確率も出力することができる。例えば、物体が実際の物体、例えばドアとして正しく識別される確率は、９８．０％とすることができる。物体は、ＣＮＮによれば、窓である１．０％の可能性及びコーナーである１．０％の可能性も有することができる。この実施形態の目的のために、最も可能性の高い物体が、特定された物体として用いられる。したがって、物体が、ドアである９８．０％の確率と、窓である１．０％の確率と、コーナーである１．０％の可能性とを有する場合、コンピュータシステムは、その物体をドアであるとして解釈する。一方、他の実施形態は、物体を特定するときに異なる閾値を用いることができる。例えば、物体が特定の物体である確率が６５％しかない場合、その物体は無視されてもよいし、その物体の更なる解析を行って、物体を正しく識別する可能性を高めることもできる。更に他の実施形態は、後述するように、物体の生の確率的スコアを用いることができる。
【００３４】
物体の検出に加えて、パノラマ画像内の物体の水平ロケーションも求められる。例えば、図１８Ｂのパノラマ画像２１００は、窓の左端の水平位置を示す垂直ライン２１０２と、コーナーの水平位置を示す垂直ライン２１０４と、ドアの左端の水平位置を示す垂直ライン２１０６とを示している。様々な物体（例えば、窓、ドア及びコーナー）のロケーションは、後に、パノラマ画像からのデータが間取り図画像からのデータと比較されるときに用いられる。
【００３５】
さらに、検出物体は、ピクセルの幅を越えて広がっている場合があり、したがって、物体のロケーションが指定される場所に関する判断が行われなければならない。例えば、物体が窓の左端であった場合、この物体は、水平方向に１０ピクセルに広がっていると判断されている場合がある。したがって、精密なロケーションが確認される場合、ルール又は規約を用いて、ロケーションを求めることができる。窓の左端のロケーションを指定するのに、任意の数の方法を用いることができる。例えば、検出物体内の最も左のピクセル、最も右のピクセル、最も中心のピクセル、又はランダムなピクセルを物体のロケーションとして指定することができる。
【００３６】
図６のステップ１４において、パノラマ画像における物体及びその検出された位置が、その画像においてコード化されるか、又は、別のファイルに保存される。この一例が図１８Ｂに示されている。図１８Ｂでは、パノラマ画像２１００は、垂直ライン２１０２、２１０４、２１０６等を用いてコード化されている。垂直ライン２１０２、２１０４及び２１０６と、これらの垂直ラインの上部に配置された１桁の文字とは、それぞれ、パノラマ画像内の物体の位置と、検出物体のクラスとを示している。物体のクラスは、文字Ｃ、Ｗ、Ｄによって示され、それぞれコーナー、窓及びドアに対応する。
【００３７】
コード化されたデータ及び保存されたデータは区別なく用いられ、検出物体データを保持するのに、いずれの方法も実施することができることが理解される。
【００３８】
次に、ステップ１６において、パノラマ画像の全てが処理及びコード化されているか否かに関する判断が行われる。パノラマ画像の全てが処理されていない場合、次のパノラマ画像がステップ１８において選択され、プロセスはステップ１０に戻って、新たに選択されたパノラマ画像の処理を最初から開始する。パノラマ画像の全てが処理されていると判断されると、プロセスは終了する。
【００３９】
図８は、寝室において撮影されたパノラマ画像１１００内の検出物体の一例を示している。この例では、コーナー１１０２及びドア１１０４が検出される。例示として、物体の全てがパノラマ部屋画像１１００において検出されるが、検出物体の全てがラベル付けされるとは限らない。図６のステップ１２及び１４に従って、パノラマ画像１１００内の検出物体のクラス及び検出物体の水平ロケーションの双方が求められ、パノラマ画像においてコード化されるか又は別個に保存される。
【００４０】
図９は、本発明の一実施形態による間取り図画像１０を取得して解析する方法を示している。前述したように、間取り図画像１０等の間取り図画像は、図９のステップ２３に示すようにコンピュータシステム内に入力される。間取り図画像は、建物又は建物内のエリアの一般的なレイアウトを示すのに用いられる建物、住宅、マンション、ボート、飛行機、列車等の間取り図の表現とすることができる。
【００４１】
ステップ２４に示すように、間取り図画像の部屋が特定され、それらの構成要素に分離される。間取り図画像の部屋及び物体は、トレーニングされた畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像をセグメンテーションすることを含む様々な技法を用いて検出することができる。ＣＮＮを用いて間取り図画像内の部屋を特定することについての簡潔な説明は以下で論述される。ＣＮＮを用いて画像内の物体、部屋等を検出することについての詳細な説明は、米国特許出願第１５／７９８，３４９号及び同第１５／７９８，３４３号を参照されたい。これらの米国特許出願の内容は、引用することによって本明細書の一部をなす。
【００４２】
図１０Ａ、図１０Ｂ及び図１０Ｃは、間取り図画像のみを用いて個々の部屋及び物体をどのように正確に識別することができるのかの一例を示している。まず、間取り図画像１０が、コンピュータシステム内に入力される。コンピュータシステムは、間取り図画像の壁、ドア、窓、コーナー及び／又は他の特徴部を検出するＣＮＮを備えるか又はＣＮＮ若しくは他の画像認識物体検出装置を用いる。ＣＮＮが間取り図画像から部屋及び特徴部をどのように正確に検出することができるのかの１つの例は、セマンティックセグメンテーション技法を用いることによるものである。これは、トレーニングされた畳み込みニューラルネットワークを用いて、間取り図画像内の個々のピクセルに、或る物体のクラスである確率を与える技法である。例えば、所与のピクセルは、壁、ドア、窓、空いているロケーション等とすることができる。画像内の各ピクセルに関する情報は、画像内の物体を確認するために最終的には集約される。
【００４３】
セグメンテーションされた間取り図画像の一例が、セグメンテーションされた間取り図画像１４０２によって図１０Ｂに示されている。セグメンテーションされた間取り図画像１４０２に示すように、壁及び窓１４０３は白色で識別され、空いているロケーションは黒色で識別される。この例では、ドアは、セグメンテーションされた画像において、空いているロケーションとして示されている。このセグメンテーションされた画像に基づいて、元の間取り図画像における全ての部屋、廊下、ドア、窓、コーナー及び他のロケーションを識別することができる。元の間取り図画像内の各ピクセルは、セグメンテーションプロセスにおいて物体（又は空いているロケーション）として識別されて割り当てられている。
【００４４】
ＣＮＮを用いて間取り図画像の特徴部を識別することに加えて、文字認識システムも用いることができる。例えば、幾つかの間取り図画像は、書き込まれたラベルを用いることによって幾つかの特徴部を識別することができる。これらのラベルは、その後、光学式文字認識（ＯＣＲ）を用いて読み取ることができる。このＯＣＲは、単独で用いることもできるし、セグメンテーション解析からのデータとともに用いることもできる。例えば、間取り図の特徴部が「窓」とラベル付けられ、ＯＣＲによってそのようなものと認識された場合、これをセグメンテーションプロセスからの結果と比較して、ＯＣＲデータがセグメンテーションデータと一致することを確認することができる。データが一致していない場合、更なるステップを実行することができる。セグメンテーション及びＯＣＲ技法の使用の更なる説明については、引用された上記出願を参照されたい。
【００４５】
加えて、ＯＣＲを用いて、部屋タイプを特定し、この部屋タイプを、（ＣＮＮ分類器を用いて）パノラマ画像から推定することができる部屋タイプとマッチングすることができる。
【００４６】
図１１Ａ及び図１１Ｂは、間取り図画像１０がセグメンテーションされ、個々の部屋が識別された後の間取り図画像１０の一例を示している。セグメンテーションされた画像１５０２は、間取り図における識別された各部屋を示している一方、間取り図エリア１５０４は、分離及び画定された個々のロケーションを示している。図１１Ａ及び図１１Ｂに示すように、９つのロケーションＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ及びＩが、間取り図画像１０において識別されている。これらのロケーションのそれぞれは、パノラマ画像が撮影された場所の候補である。
【００４７】
セグメンテーションプロセスが完了すると、ドア、窓、コーナー等の個々の物体も識別することができる。（個々の物体も、セグメンテーションプロセスと並行して識別することができる。すなわち、間取り図画像が特定されるとき、間取り図画像内の物体を並行して特定することができる。）これは、図９に示すように、ステップ２５において実行される。セマンティックセグメンテーションステップにおいて、各ピクセルはラベル付けされるので、特定の間取り図画像内及びこの間取り図画像の部屋又はエリア内の物体の特定は、元のセグメンテーションに基づいて容易に確認される。
【００４８】
このプロセスの補助的説明として、識別された物体を元の間取り図画像上に重ね合わせると、間取り図画像内の各ロケーションに対する物体が位置する場所の視覚表現を得ることができる。
【００４９】
物体が検出された間取り図画像の一例が、図１０Ｃの画像１４０４に示されている。この画像は、ＣＮＮから出力され、入力された間取り図画像１０上に重ね合わされた、検出物体を強調する物体ラベル及びボックスを含む。物体ラベルに加えて、ＣＮＮは、その特定の物体が実際に指定された物体である確率も出力することができる。例えば、参照符号１４０６は、画像１４０４におけるドアとしてラベル付けされる。参照符号１４０６がドアである確率は、９８．０％として示されている。この実施形態において、最も可能性の高い物体が、特定された物体として用いられる。したがって、参照符号１４０６が、ドアである９８．０％の確率と、窓である２．０％の確率とを有する場合、コンピュータシステムは、その物体をドアであるとして解釈する。一方、他の実施形態は、物体を特定するときに異なる閾値を用いることができる。例えば、物体が特定の物体である確率が６５％しかない場合、その物体は無視されてもよいし、その物体の更なる解析を行って、物体を正しく識別する可能性を高めることもできる。更に他の実施形態は、後述するように、物体の生の確率的スコアを用いることができる。
【００５０】
最後に、図９のステップ２８において、求められた間取り図データは、間取り図画像にコード化されるか又は別のファイルに保存される。
【００５１】
図１２は、間取り図画像を用いて、パノラマ画像が撮影された場所のロケーションをどのように確認することができるのかの別の実施形態を示している。図１２に示すプロセスにおけるステップ３６は、図９に示すプロセスにおいても、任意選択で実行することができる。図１２では、間取り図画像は、ステップ３２において取得される。この実施形態では、これは、図９のステップ２３において取得することができる画像と同じ間取り図画像である。間取り図画像が取得されると、この間取り図画像の壁及び物体がステップ３４において検出される。ここで、間取り図画像内の壁及び物体を検出するのに、トレーニングされたＣＮＮ又は他の光学式物体認識ツールを用いることができる。トレーニングされたＣＮＮを用いる方法は、図１０Ｂの画像１４０２に関して上記で論述したものと同じ方法である。
【００５２】
次に、ステップ３６において、セグメンテーションされた画像における各点と、セグメンテーションされた画像における最も近い壁との間の距離が計算される。これは、距離変換方法を用いて計算することができる。この技法の一例は、図１３Ａ、図１３Ｂ及び図１３Ｃに示されている。図１３Ａにおけるセグメンテーションされた間取り図画像１４０２から、セグメンテーションされた間取り図画像における点のそれぞれから最も近い壁までの距離が計算される。したがって、例えば、部屋の中心部における距離は、最も高い値を有する一方、壁に近い部分における距離は、最も低い値を有する。
【００５３】
セグメンテーションされた間取り図画像に対して行われる距離変換の一例が、図１３Ｂ及び図１３Ｃに示されている。これらの図において、対応する距離変換画像１６０４は、図１３Ｂに示されている。距離変換画像１６０４は、高い値を有する距離ほど、より明るい色であることを示している。したがって、最も明るい色は、部屋の中心部に示されている。部屋１６０２の距離変換の数値表現の一例が、図１３Ｃの数値距離変換画像１６０６に示されている。数値距離変換画像１６０６に示すように、「０」の値は、部屋の壁の最も近くに見られる。これは、部屋のこのエリアが壁に最も近いからである。次に、１を有するエリアは、壁に２番目に最も近いエリアを示している。以下、２以降の値についても同様である。数値距離変換画像１６０６に示すように、壁から最も遠いエリアは、左右の壁と平行に部屋の中心部を縦に並ぶ「５」の列によって表される。この列は、壁から最も遠くに離れた部屋のエリアを表している。
【００５４】
壁又は他の物体から最も遠くに離れた部屋又は間取り図画像内のエリアも、パノラマ映像を撮影するのに用いられる最も可能性の高いエリアである。これは、パノラマ映像を撮影するとき、写真撮影者は、一般に、映像全体が均衡の取れたものとなり、壁が視野を遮らないように、部屋の中心部に自身を位置決めするからである。すなわち、写真撮影者が壁の近くに位置決めされると、パノラマ画像の一部が壁自体をクローズアップした眺めになり、これは望ましくない。
【００５５】
しかしながら、部屋の正確な中心からパノラマ画像を撮影することが常に可能であるとは限らない。例えば、テーブルが、このロケーションを塞いでいる可能性があり、したがって、写真撮影者は、テーブルを移動させる代わりにテーブルの横に立つか又はテーブルの上に立つことを選ぶ場合がある。これは１つの例にすぎず、写真撮影者が部屋の中心とは異なるロケーションで映像を撮影する理由は幾つも存在し得る。
【００５６】
一方、これを考慮に入れても、通常、写真撮影者がパノラマ画像をどこで撮影するのかを決定する際の最良の開始位置は、距離変換値が最も高い場所である。パノラマ画像ロケーションをどのようにして見つけるのかのより詳細な説明は、以下で論述される。
【００５７】
上述したように、この距離変換ステップは、間取り図画像がセグメンテーションされた後に距離変換を行うことによって、図９におけるプロセスにも適用することができる。
【００５８】
最後に、図１２のステップ３８において、距離変換データ及び物体データは、コード化された間取り図画像又は別のファイルに保存される。
【００５９】
［パノラマ画像のロケーション及び方位を特定する第１の実施形態］
各パノラマ画像が撮影された場所の間取り図内におけるロケーション及び方位を特定するプロセスの第１の実施形態が、図１４のフローチャートに示されている。このプロセスは、コンピュータシステム１５１０によって実行される。
【００６０】
ステップ１８０から開始して、パノラマ画像データがコンピュータシステム１５１０によって取得される。このデータは、図６に関して論述されたコード化されたデータを含む。次に、ステップ１９０において、間取り図画像データがコンピュータシステム１５１０によって取得される。このデータは、図９及び図１２に関して論述されたコード化されたデータを含む。
【００６１】
ステップ２００において、物体データ及びロケーションデータを有するコード化されたパノラマ画像が分割される。一例が、図１５Ａに文字列１８２によって示されている。文字列１８２は、３６文字からなる行を示している。行内の各列は、パノラマ画像における１０度の増分を表す。すなわち、３６０度の視野を有するパノラマ画像を見るとき、その画像を１０度の増分にセグメンテーションすることができる。この１０度の増分における文字は、この１０度の視野内の検出物体のクラスを表している。
【００６２】
例えば、コーナーが１０度の視野内で検出された場合、「Ｃ」が示される。ドアが１０度の視野内で検出された場合、「Ｄ」が示される。窓が１０度の視野内で検出された場合、「Ｗ」が示される。壁が１０度の視野内で検出された場合すなわち物体が１０度の視野内で検出されなかった場合、例えば、「Ａ」が示される。２つの物体が１０度の視野内で偶然に検出された場合、ルール又は規約に従うことができる。例えば、最初に検出された物体の使用、ランダムな選択、セグメンテーションによる最も高い確率を有する物体の選択等を行うことができる。
【００６３】
図１５Ａに示すように、文字列１８２は、「ＡＡＡＡＡ」がシーケンスを開始していることを示している。これは、５０度の視野における１０度の増分のそれぞれにおいて、壁が検出されたこと（すなわち物体が検出されなかったこと）を示している。次に、「ＣＣＣ」が示され、これは、次の３０度の視野における１０度の増分のそれぞれにコーナーが識別されたことを示している。コード化されたパノラマ画像データのこの分割は、パノラマ画像の視野全体について行われる。３６０度の視野の場合、これは、３６０度の画像全体について行われる。
【００６４】
図１５Ａに示す例では、画像を分割するのに１０度の増分が用いられる。しかしながら、この特定の角度分割は必須ではなく、これよりも小さな角度又は大きな角度を用いることができる。例えば、３度、５度、６度、１２度、２０度等の角度を用いることができる。度数、すなわち視野が大きいほど、精度は小さくなり、必要とされる計算能力は小さくなり、度数、すなわち視野が小さいほど、精度及び必要とされる計算能力は大きくなる。
【００６５】
ステップ２００が完了した後、ステップ２０２において、コード化されたパノラマ画像データの角度のセットが生成される。この一例は、図１５Ｂに文字列セット１９０によって示されている。文字列セット１９０に示すように、それぞれ１０度ずつ分離された全部で３６個の異なる角度が作成される。
【００６６】
例えば、文字列セット１９０の行０と行１との間の相違を見ると、行１は、１０度の増分だけオフセットされている。すなわち、文字は、１列分だけ左にシフトされている。上記で論述したように、この例では、各文字は１０度の視野を表す。したがって、各行とその隣接行との間の差は１０度である。これは、この例では３６０度である画像の視野全体について行われる。したがって、文字列セット１９０には、３６０度のパノラマ画像の３６行のデータが存在する。
【００６７】
実際面で、物体データの１０度のシフトは、パノラマ画像を１０度回転させることになる。したがって、これは、パノラマ画像が撮影された場所に立ち、視点を左又は右の方向に１０度調整することと同様である。
【００６８】
文字列セット１９０が作成されると、ステップ２０４において、コード化された間取り図画像データが分割され、間取り図内の単一の点、すなわち点（ｎ）の文字列が作成される。
【００６９】
間取り図画像データをセグメントに分割し、文字列を作成することを示す一例が図１５Ａに示されている。文字列１８６は、３６文字からなる行を示している。行内の列は１０度の増分を表す。すなわち、３６０度のパノラマ画像を見るとき、その画像を１０度の３６個の増分にセグメンテーションすることができる。この１０度の増分における文字は、この１０度の視野内の検出物体のクラスを表している。
【００７０】
例えば、コーナーが１０度の視野内で検出された場合、「Ｃ」が示される。ドアが１０度の視野内で検出された場合、「Ｄ」が示される。窓が１０度の視野内で検出された場合、「Ｗ」が示される。壁が１０度の視野内で検出された場合すなわち物体が１０度の視野内で検出されなかった場合、例えば、「Ａ」が示される。２つの物体が１０度の視野内で偶然に検出された場合、ルールに従うことができる。例えば、最初に検出された物体の使用、ランダムな選択、セグメンテーションによる最も高い確率を有する物体の選択等を行うことができる。
【００７１】
図１５Ａに示すように、文字列１８６は、「ＤＤＤ」がシーケンスを開始していることを示している。これは、３０度の視野について、その視野における１０度の増分のそれぞれにドアが検出されたことを示している。次に、「ＣＡＣ」が示され、これは、この３０度の視野にわたって、次の１０度の増分にコーナーが識別され、次の１０度に壁が続き、次の１０度の増分にコーナーが続くことを示している。このコード化された間取り図画像データの分割及び文字列の作成は、図９のステップ２８において保存された間取り図画像データの視野全体について行われる。３６０度の視野の場合、これは、画像全体について行われる。
【００７２】
視点が間取り図画像データに位置している場所に応じて、文字列１８６は変化することに留意することが重要である。この一例は、図１８Ａ及び図１８Ｂに示されている。間取り図画像１０の或る部屋又はエリア内に位置している所与の点２１４０について、視点がこの所与の点２１４０の回りに回転される場合、各物体が位置している場所の３６０度マップを作成することができる。図１８Ａ及び図１８Ｂに示す例では、検出物体２１１０、２１１２及び２１１４は、コーナー、ドア、又は窓をそれぞれ表す物体のクラスＣ、Ｄ、又はＷのラベルを付けられた垂直ラインによって示されている。これらの検出物体は、所与の点２１４０から見たときの検出物体を表す互いに対する空間位置も有する。
【００７３】
第１のセットの下に示す垂直ラインの第２のセットは、図１８Ａの点２１４０において間取り図画像に検出物体を表している。垂直ライン２１１０、２１１２及び２１１４は、間取り図画像に検出物体を表している。前述したように、間取り図画像を用いて検出された物体のロケーションは、それらの物体が観察される点に応じて互いに変化する可能性がある。図１９Ａ、図１９Ｂ及び図１９Ｃに関する説明を参照されたい。したがって、間取り図画像において観察点の位置を変化させると、検出物体の配置が必然的に変化する。
【００７４】
検出物体の位置は変化を受けるが、検出物体の互いの順序付けは一般に変化しない。すなわち、文字ＤＤＣＣによって表される第１のドア（Ｄ）、第２のドア（Ｄ）、第１のコーナー（Ｃ）、及び第２のコーナー（Ｃ）が、左から右にその順序で検出された場合、これらの物体の間の相対角度は、シフトする視点とともに変化を受ける。一方、物体自体の順序は一般に変化しない。すなわち、異なる視点を用いても、物体は、ＣＣＤＤ、ＤＣＣＤ、ＣＣＤＤ及びＣＤＤＣの順序で見ることができるが、例えば、物体は、ＤＣＤＣの順序にも、ＣＤＣＤの順序にも決して見えない。
【００７５】
図１８Ａの点２１４０において、垂直ライン２１１０、２１１２及び２１１４は、コード化されたパノラマ画像２１００上に重ね合わされた検出物体を表している。実際には、パノラマ画像からのデータが得られると、パノラマ画像は、このステップに再度必要とされることはない。必要なものは、パノラマ画像の検出物体であって、パノラマ画像自体ではない。パノラマ画像は、このパノラマ画像が撮影されたロケーションがどのように特定されるのかの説明を補助するために例示として提供される。
【００７６】
図１８Ａを見ると、点２１４０が部屋内で点２１５０に移動された場合、部屋における物体の間の角距離は、パノラマ画像及び間取り図画像の双方について、それに応じて変化する。位置のこの変化をリアルタイムで見た場合、物体を表す垂直ライン（例えば、２１１０、２１１２及び２１１４）が画像を巡って水平に移動し、物体を見ている角度に応じて伸縮しているのが見える。
【００７７】
一例が図１９Ａ、図１９Ｂ及び図１９Ｃに示されている。図１９Ａは、間取り図画像１０及び寝室２を示している。寝室２内には、２つの点２２２０及び２２３０がある。図９のステップ２８において特定及び保存された物体に基づいて、点２２２０から見たときの寝室２におけるこれらの物体の表現を、図１９Ｂに示すように作成することができる。画像２２０１は、対応するパノラマ画像上に重ね合わされた検出物体を表す垂直ライン２２１０、２２１２、２２１４、２２１６及び２２１８を、それらの物体を分離する角距離とともに示している。この時点では、パノラマ画像が撮影された間取り図内の正確なロケーションに対応する正確なパノラマ画像はまだ分かっていない。
【００７８】
位置２２２０が、図１９Ａに示す位置２２３０に変更されると、物体の見掛けのロケーションも、図１９Ｃにおける画像２２０２に示すように変更される。同じ検出物体を示す同じ垂直ライン２２１０、２２１２、２２１４、２２１６及び２２１８が存在するが、それらの互いに対する角度関係は変化している。これは、点２２３０の位置が位置２２２０と異なり、したがって、部屋内の視点が変更されたことから、検出物体の相対的な幾何学的配列も変化するからである。
【００７９】
選ばれた第１の点（ｎ）は、部屋の中心にある点とすることができる。図１２のステップ３６において論述したように、距離変換値を用いて、部屋の中心が位置する場所を特定することができる。これは、最も高い距離変換値を有するエリアである。
【００８０】
図１４を参照すると、ステップ２０６において、間取り図画像データにおける点（ｎ）の文字列が、文字列θｚと比較される。ここで、ｚは、文字列セット１９０内のデータの行を表す。したがって、例えば、比較される最初の文字列θｚは、図１５Ｂに示すように、文字列セット１９０の行０である。
【００８１】
データのこの比較のために、編集距離が計算される。この一例が図１６に示されている。図１６に示すように、１３文字の第１の文字列２３２が、１３文字の第２の文字列２３４と比較される。図１５Ａの例では、３６文字のセットが互いに比較されるが、この例では、説明用に、１３文字のみが比較される。
【００８２】
編集距離を計算するために、対応するロケーションにおける文字とマッチングしない文字には、正の値が関連付けられる。例えば、この値は１とすることができる。比較される文字列内の文字が、対応するロケーションにおける文字とマッチングする場合には、編集距離は０である。次に、文字列のセットのこれらの差値を合計して、編集距離が得られる。したがって、第１の文字列２３２と第２の文字列２３４との編集距離を計算すると、解は３である。これは、それぞれの文字列の間の３つの文字が互いにマッチングしないからである。
【００８３】
ステップ２１０において、文字列セット１９０内の各文字列の編集距離の全てが計算されたか否かが判断される。文字列データの各行における編集距離の全てが計算されてはいない場合、ステップ２１２において、文字列θｚは１つインクリメントされ、編集距離の次のセットが計算される。これは、文字列セット１９０内の文字列の全てが間取り図画像の点（ｎ）の文字列と比較されるまで繰り返される。
【００８４】
文字列セット１９０の編集距離の全てが、ステップ２１０において計算されると、ステップ２１４において、間取り図画像内の更なる点（ｎ）を文字列セット１９０と比較すべきか否かが判断される。
【００８５】
例えば、文字列セット１９０と比較された点（ｎ）の全ての編集距離が大きい場合、異なる点（ｎ）の比較を継続するとの判断を行うことができる。上記で論述したように、編集距離が大きい場合、これは、点（ｎ）のロケーションが、パノラマ画像が撮影された場所に近くなく、更なる点（ｎ）を解析する必要があることを示す。大きな編集距離は、閾値とすることができ、文字の９０％超がマッチングしないこと、又は文字の８０％超がマッチングしないこと、又は文字の７０％超がマッチングしないこと、又は文字の６０％超がマッチングしないこと、又は文字の５０％超がマッチングしないこと、又は文字の４０％超がマッチングしないこと、又は文字の３０％超がマッチングしないこと、又は文字の２０％超がマッチングしないこと、又は文字の１０％超がマッチングしないこと等とすることができる。
【００８６】
代替的に、以前の点（ｎ）の編集距離が小さいか又は閾値量未満である場合、更なる点（ｎ）を比較しないという決定を行うことができる。小さな編集距離は、閾値とすることができ、文字の９０％超がマッチングすること、又は文字の８０％超がマッチングすること、又は文字の７０％超がマッチングすること、又は文字の６０％超がマッチングすること、又は文字の５０％超がマッチングすること、又は文字の４０％超がマッチングすること、又は文字の３０％超がマッチングすること、又は文字の２０％超がマッチングすること、又は文字の１０％超がマッチングすること等とすることができる。
【００８７】
更なる点（ｎ）の編集距離を計算する必要があるか否かを判断する別の方法は、間取り図画像の幾つかの点（ｎ）の編集距離勾配を計算し、次に、間取り図画像における特定の部屋の極小距離を求めることである。開始点（ｎ）における編集距離を計算した後、間取り図画像における隣接点（ｎ）の編集距離も計算することができる。これらの編集距離を合わせて調べることによって、編集距離勾配を作成することができる。この方法は、サーバーにおける処理能力を削減する。なぜならば、編集距離勾配を用いることによって、極小値を見つけることができ、更なる点（ｎ）を計算する必要がないからである。極小値が見つからない場合、更なる点（ｎ）を解析することができる。
【００８８】
上記計算された編集距離は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、編集距離の極小値を計算するこのプロセスは、間取り図画像における部屋又はエリアの１つ以上又は全てについて繰り返すことができる。例えば、図１１Ａ及び図１１Ｂに示すように、比較される間取り図画像における第１のロケーション又は部屋が部屋Ａである場合、比較される次のロケーションは部屋Ｂであり、その次は部屋Ｃであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【００８９】
間取り図画像における更なる点（ｎ）の編集距離を計算する必要があるか否かを判断する別の方法は、特定の部屋について、距離変換データからのロケーションを開始点として用い、開始点（ｎ）の周囲に位置する点（ｎ）のランダムなガウスサンプルにおいて編集距離計算を行うことである。開始点（ｎ）が、小さな編集距離を生成する可能性の高い候補であるとき、周囲の点は、小さな編集距離を生成する次の最も可能性の高い点（ｎ）である。この方法は、サーバーにおける処理能力を削減する、なぜならば、この方法は、パノラマ画像が撮影されたロケーションを素早く見つけるために、パノラマ画像を撮影するときに本来的に望ましいロケーション、すなわち、写真撮影されるエリアの中心近くのロケーションを利用するからである。ランダムなガウスサンプルにおける点（ｎ）の距離の全てが計算されると、最小の編集距離を有する点（ｎ）が用いられる。
【００９０】
上記計算された編集距離は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、編集距離の極小値を計算するこのプロセスは、間取り図画像における部屋又はエリアの１つ以上又は全てについて繰り返すことができる。例えば、図１１Ａ及び図１１Ｂに示すように、比較される間取り図画像における第１のロケーション又は部屋が部屋Ａである場合、比較される次のロケーションは部屋Ｂであり、その次は部屋Ｃであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【００９１】
上記から分かるように、編集距離の計算を継続するか否かを判断するのに用いられる技法は、本発明の実施形態の範囲と一致させて用いることができるものが幾つも存在する。
【００９２】
更なる点（ｎ）が計算される場合、ｎは、ステップ２１６において１つインクリメントされ、プロセスはステップ２０４に戻って、間取り図画像内の別の点において解析を開始する。更なる点を計算する必要がない場合、プロセスはステップ２２０に進む。
【００９３】
次に、ステップ２２０において、各パノラマ画像について、各編集距離が計算されたか否かが判断される。判断が肯定的でない場合、画像番号（ｉ）が、ステップ２２４において１つインクリメントされ、プロセスは、再びステップ２００から開始して、別のパノラマ画像に対して繰り返される。異なるパノラマ画像の文字列の一例が、文字列１８４によって示されている。図１５Ａに示すように、各パノラマ画像は、それ自体の文字列を有する。
【００９４】
ステップ２２０における判断が肯定的である場合、ステップ２２２において、各パノラマ画像が間取り図画像内の対応するロケーションとマッチングされる場所が、パノラマ画像が撮影された方向とともに特定される。
【００９５】
ステップ２２２におけるマッチングは、各ロケーションの最小全体コスト（以下で説明）と、間取り図画像及び各対応するパノラマ画像における方位とを見つけることによって行われる。例えば、組み合わされた最小編集距離を有する間取り図ロケーション及び対応するパノラマ画像の全組み合わせを最良の組み合わせとして選ぶことができる。この特徴の一例が図２０に示されている。
【００９６】
図２０は、パノラマ画像及び間取り図ロケーションのペアの編集距離値の距離マトリックスを示している。パノラマ画像は、１〜９の番号が付けられ、ｘ軸に示されている一方、間取り図ロケーションは、１〜９の番号が付けられ、ｙ軸に示されている。このマトリックスにおける番号のそれぞれは、対応するパノラマ画像及び間取り図ロケーションの編集距離を示している。さらに、マトリックスにおける数字は、各パノラマ画像セットの最小編集距離を示している。すなわち、マトリックスは、画像の最適な回転を考慮したときの最小編集距離を示している。このマトリックスから、最小編集距離を有するペアリング（間取り図ロケーション及びパノラマ画像）の組み合わせを特定することができる。
【００９７】
図２０に示す例では、総最小編集距離を加算して（５＋９＋１０＋４＋９＋８＋７＋１２＋１０）、７４の総距離を得ることができる。これは、左上から右下への対角行に見られる。この対角行は、必ずしも最小編集距離ではなく、各間取り図ロケーションが１つの最良のマッチを有し、各パノラマ画像が１つの最良のマッチを有する限り、間取り図ロケーション及びパノラマ画像マッチングの最適な組み合わせをマトリックスに混合することができることに留意されたい。したがって、パノラマ画像１〜９のそれぞれが撮影された場所を特定するとき、最良の物体マッチングに等しい最小編集距離は７４である。図２０に示すように、パノラマ画像１は間取り図ロケーション１において撮影され、パノラマ画像２は間取り図ロケーション２において撮影され、パノラマ画像３は間取り図ロケーション３において撮影されたものであり、以下、他のパノラマ画像についても図２０に示すとおりである。
【００９８】
加えて、各ロケーションのマッチング角も、距離マトリックスの下部に示されている。パノラマ画像１〜９のそれぞれのマッチング角が示されている。すなわち、第１のパノラマ画像のマッチング角は１９０度であり、第２のパノラマ画像のマッチング角は９０度であり、第３のパノラマ画像のマッチング角は９０度であり、以下、他のパノラマ画像のマッチング角も図２０に示すとおりである。この角度は、最良のマッチ及び最小編集距離スコアを有するようにパノラマ画像を回転させなければならない度数を示している。
【００９９】
パノラマ画像と間取り図における対応するロケーションとをマッチングする視覚表現が、図１７の二部グラフに示されている。図１７に示すように、パノラマ画像３０、３２、３４、３６、３８及び３９は、それらの画像を異なる間取り図ロケーションＡ〜Ｉに接続するラインを用いて示されている。これらのラインは、パノラマ画像と間取り図ロケーションとの間の最小編集距離を表す。上記で論述したように、全体の最小編集距離を用いたパノラマ画像及びロケーションのペアリングは、パノラマ画像を間取り図画像におけるロケーションと対応付けるように互いにペアリングすることができる。
【０１００】
［パノラマ画像のロケーション及び方位を特定する第２の実施形態］
パノラマ画像が撮影された場所を間取り図のロケーションに関してどのように特定するのか、及び、パノラマ画像の方位に関してどのように特定するのかの第２の実施形態が図２１に示されている。
【０１０１】
ステップ３１２に示すように、コード化されたパノラマ画像及びデータが、コンピュータシステム１５１０によって最初に取得される。次に、ステップ３１４において、間取り図画像からの距離変換データ及び物体データが、コンピュータシステム１５１０によって取得される。この検出物体データは、上記で論述したように、検出物体のクラスのタイプと、検出物体のロケーションとを含み、検出物体の確率的データも含む場合がある。
【０１０２】
次に、ステップ３１８において、部屋（ｎ）のコード化された物体データを有する特定のパノラマ画像が解析用に選択される。加えて、特定の点（ｉ）の間取り図物体データも、ステップ３１８において選択される。図２１に示すフローチャートにおけるプロセスの最初の反復において、特定の点（ｉ）は、距離変換データに基づいて選ぶことができる。したがって、間取り図画像における空間の中心位置は、パノラマ画像が撮影された最も可能性の高い候補であるので、第１の点として選ぶことができる。
【０１０３】
ステップ３２０において、特定の物体クラス（ｏ）が選ばれる。例えば、物体クラスは、窓、左窓、右窓、ドア、左ドア、右ドア、コーナー、凹状コーナー、凸状コーナー等とすることができる。物体の任意の検出可能なクラスを選ぶことができる。任意のクラスを含むいずれのクラスも選ぶことができるが、プロセスの最初の反復については、ほとんどの物体を有するクラスを選ぶことができる。選ばれなかった他の全ての物体のクラスは、無視することができ、その後のステップにおいて用いることができる。したがって、選ばれた物体のクラスがドアである場合、パノラマ画像のドアデータ及び間取り図画像のドアデータのみが互いに比較される。１つの物体クラスのみを選択する１つの技術的利点は、パノラマ画像ロケーション及び方位を特定するためにＣＰＵ１５２０によって必要とされる計算能力の量が削減されるということである。
【０１０４】
ステップ３２２において、選択された物体のクラスに関して、パノラマ部屋（ｎ）のデータと点（ｉ）における間取り図データとの比較が行われる。この一例が図２２に示されている。図２２は、パノラマ画像用の上部ライン及び間取り図画像用の下部ラインの２つのラインを示している。これらのラインは、間取り図画像又はパノラマ画像における部屋又は空間の水平軸を表す。
【０１０５】
物体２３０２、２３０４、２３０６及び２３０８は、指定されたクラスの検出物体と、水平方向に関するパノラマ画像内のそれらのそれぞれのロケーションとを表す。物体２３２０、２３２２、２３２４及び２３２６は、指定されたクラスの検出物体と、水平方向に関する点（ｉ）における間取り図画像内のそれらのそれぞれのロケーションとを表す。したがって、図２２の物体は、ドアを表すことができ、図２２は、ドアがパノラマ画像及び間取り図画像において検出された場所を示している。
【０１０６】
次に、特定の画像、例えば、間取り図画像又はパノラマ画像における物体のそれぞれのコストが計算される。このコストは、検討中の特定の物体と、この物体が比較されている画像内の最も近い近傍との間の距離を計算することによって求められる。したがって、例えば、パノラマ画像の物体２３０２は、間取り図画像の物体２３２０に最も近い。ただし、最も近い物体までの距離が求められたことを確認するために、少なくとも１つの他の距離測定を行うことができる。したがって、物体２３０２と物体２３２０との間の距離、及び、物体２３０２と物体２３２２との間の距離が求められる。その後、最短距離が記録される。これは、画像内の物体のそれぞれについて行われる。これは、以下の式によって数学的に表すことができる。
【０１０７】
【数１】
2020038657.tif 000003
【０１０８】
上記式において、Ｃは、コスト関数を表し、Ｘは、物体クラスに対応する、間取り図画像から抽出された点のセットを表し、Ｙは、物体クラスに対応する、パノラマ画像から抽出された点のセットを表す。
【０１０９】
加えて、他の画像内の物体のそれぞれについて、同じ距離計算を行うことができる。すなわち、物体２３２０、２３２２、２３２４及び２３２６とパノラマ画像内のそれらの最も近い近傍物体との間の距離も計算することができる。次に、双方の画像における物体の全ての距離のそれぞれのコストを加算して、パノラマ画像及び間取り図画像の点（ｎ）に関して、物体クラスのローカルな総コストを求めることができる。
【０１１０】
加えて、コストを評価することは、以下で説明するように、重み係数及び／又は閾値処理プロセスも伴うことができる。図２３Ａ及び図２３Ｂに示すように、２つのグラフが、同じクラスにおける２つの物体間の距離に関するコストを求めることに対して重み／閾値処理要素を提供する。図２３Ａを見ると、点の間の距離が増加するにつれて、対応するコストも増加するが、距離がどの程度遠いかに応じて、対応するコストは、２次関数又は線形関数のいずれかに基づくことが示されている。
【０１１１】
例えば、図２３Ａは、コスト関数がゼロ点の近くでは２次であるが、ゼロ点の近くのエリアの外側では線形であるフーバー（Huber）関数を示している。コストのこの重みによって、異常値のペナルティーが削減される。したがって、点の間の距離が大きいことによって被るペナルティーは、重みがない場合よりも小さくなる。これは、点の間の距離が小さい場合に、コストを低く維持することも行う。
【０１１２】
これは、以下の式によって数学的に表すことができる。
【０１１３】
【数２】
2020038657.tif 000004
【０１１４】
【数３】
2020038657.tif 000005
【０１１５】
これらの式において、Ｇ（ｘ）はロバスト距離であり、ｘは２つの物体の間の距離であり、ｃは定数である。
【０１１６】
或る特定の閾値λまでの距離については線形コストを示し、それよりも遠くの距離についてはλの定コストを示す第２の例が、図２３Ｂに示されている。これは、以下の式によって数学的に表すことができる。
【０１１７】
【数４】
2020038657.tif 000006
【０１１８】
この式において、ｄは２つの点の間の距離であり、ｘ、ｙ、及びλは定数である。具体的には、ｘ及びｙは、パノラマ画像及び間取り図画像における物体の位置である。このコスト関数は、比較を圧倒しないように異常値コストを制限する。この式の１つの利点は、コンピュータシステム１５１０によって必要とされる計算能力の量を削減することである。
【０１１９】
上述したステップ３２２のプロセスの代替形態として、別の方法を用いて、パノラマ画像及び間取り図画像における物体の間の距離を求めることができる。具体的には、パノラマ画像及び間取り図画像の双方における物体の検出にＣＮＮの確率的出力を用いることができる。前述したように、ＣＮＮは、任意の所与のピクセルが特定の物体である確率を出力することができる。
【０１２０】
パノラマ画像を一例として用いると、ＣＮＮは、ピクセルが特定の物体である可能性を０％〜１００％に分類することができる。例えば、特定のピクセルは、ドアである５％の可能性と、コーナーである５０％の可能性と、窓である２５％の可能性と、壁である２０％の可能性とを有することができる。これは、水平ロケーション／ピクセルごとに行われる。したがって、画像が水平方向に１０８０ピクセルを含む場合、それらのピクセルのそれぞれは、ＣＮＮによって出力される、物体である特定の確率を有することができる。さらに、ピクセルの垂直列内のピクセルのうちのいずれかが物体であると特定された場合、この垂直列内のあらゆるピクセルを特定された物体によって表すことができる。したがって、解析する必要があるのは、水平行におけるピクセルのみである。この方法の１つの利点は、コンピュータシステム１５１０によって必要とされる計算能力の量を削減することである。
【０１２１】
ＣＮＮの確率的出力は、間取り図画像にも同様に適用することができる。例えば、特定のピクセルは、ドアである１５％の可能性と、コーナーである４０％の可能性と、窓である１５％の可能性と、壁である３０％の可能性とを有することができる。パノラマ画像と同様に、これは、水平ロケーション／ピクセルごとに行われる。したがって、画像が水平方向に１０８０ピクセルを含む場合、それらのピクセルのそれぞれは、ＣＮＮによって出力される、物体である特定の確率を有することができる。さらに、ピクセルの垂直列内のピクセルのうちのいずれかが物体であると特定された場合、この垂直列内のあらゆるピクセルを特定された物体によって表すことができる。したがって、解析する必要があるのは、水平行におけるピクセルのみである。この方法の１つの利点は、コンピュータシステム１５１０によって必要とされる計算能力の量を削減することである。
【０１２２】
比較されている物体クラスが、例えば、ドアである場合、ピクセルがパノラマ画像におけるドアである確率は、間取り図画像における同じ位置にあるピクセルもドアである確率と比較される。したがって、ピクセルが、パノラマ画像におけるドアである５％の可能性を有し、間取り図画像におけるドアである１５％の可能性を有する場合、確率の差は、１０％であると求められる。
【０１２３】
この手順は、パノラマ画像及び間取り図画像上の水平ラインにおけるピクセルの全てが、それらの間で計算された確率差を有するまで、（パノラマ画像内及び間取り図画像内の）ピクセルの各ペアについて実行される。次に、確率の差を合計して、ローカルコストを求めることができる。すなわち、間取り図画像内の特定の点（ｉ）における物体の所与のクラス及び特定のパノラマ画像の部屋（ｎ）のコストを求めることができる。
【０１２４】
その後、プロセスは、物体の異なるクラスについて繰り返される。これは、物体の全てのクラスを含む物体の１つ以上のクラスについて行うことができる。確率の差は、比較される物体の各クラスについて求められる。その後、これらの差は合計されて、比較される物体の各クラスのローカルコストが求められる。
【０１２５】
比較される物体のクラスの全てのコストが合計される（すなわち、ローカルコストの全てが加算される）と、グロ−バルコストを求めることができる。グロ−バルコストは、全てのローカルコストが合計されたコストである。次に、間取り図画像における特定の点（ｉ）及びパノラマ画像の部屋（ｎ）の最小総コストを保存し、異なる点（ｉ）及び異なるパノラマ部屋（ｎ）画像の他のコストと比較することができる。これらの更なるパノラマ画像及び間取り図における点は、プロセスにおいて後に考慮され、以下でより詳細に論述される。上記確率差法は、以下に示すように数学的に表すことができる。
【０１２６】
【数５】
2020038657.tif 000007
【０１２７】
この式において、Ｃはコスト関数であり、ｄｅｔｆｌｏｏｒｐｌａｎは、間取り図画像内の検出物体の出力値であり、ｄｅｔｐａｎｏｒａｍｉｃは、パノラマ画像内の検出物体の出力値である。
【０１２８】
上記から理解することができるように、距離を重み付けする任意の数の方法及び物体ペアの間のコストを求める任意の数の方法を用いることができ、これらの方法は、本発明のこの実施形態の範囲内にある。
【０１２９】
図２１に戻って、ステップ３２４において、パノラマ画像の部屋（ｎ）の全ての角度が、点（ｉ）における間取り図画像及び各角度について計算されたコストと比較されるか否かに関する判断が行われる。上記で論述したように、パノラマ画像を回転させることができる。パノラマ画像が回転されると、検出物体の相対位置は、互いに対して同じ状態を保つが、物体自体は、左又は右に平行移動又はシフトする可能性がある。したがって、図２２に示すようにパノラマ画像の部屋（ｎ）を間取り図画像と比較すると、物体ロケーションを左又は右にシフトすることによって、パノラマ画像及び間取り図画像における物体の間の距離が変化する可能性があり、したがって、求められるコストが変化する可能性がある。
【０１３０】
この物体ロケーションの左又は右へのシフトは、ユーザーの視点を回転させること又はパノラマ画像の方位を回転させることと考えることができる。パノラマ画像の角度は、図１５Ａ及び図１５Ｂに関して上記で論述したように、例えば１０度の増分に分離することもできるし、それよりも大きな増分又は小さな増分に分離することもできる。回転の増分が小さい場合、より多くの処理が必要とされるが、パノラマ画像における物体と間取り図画像における物体との間のより近いマッチの可能性を高くすることができる。回転の増分が大きい場合、必要とされる処理は少なくなるが、パノラマ画像における物体と間取り図における物体との間のより近いマッチの可能性は低くなる。
【０１３１】
例えば、パノラマ画像の部屋（ｎ）が３６０度画像であり、１０度の増分に分割されている場合、パノラマ画像の部屋（ｎ）と点（ｉ）におけるセグメンテーションされた間取り図との間の３６個の異なる比較を行う必要がある。
【０１３２】
全てのパノラマ画像角が、点（ｉ）において間取り図画像と比較されてはいない場合、ステップ３２６において、パノラマ画像が、例えば１０度だけ回転され、プロセスはステップ３２２に戻る。全てのパノラマ画像角が点（ｎ）において間取り図画像と比較されている場合、プロセスはステップ３２８に進む。
【０１３３】
ステップ３２８において、物体のクラスの全てが評価されたか否かが判断される。前述したように、物体のクラスは、ドア、窓、コーナー等とすることができる。パノラマ画像内のドアが間取り図画像内のドアと比較され、パノラマ画像内の窓が間取り図画像内の窓と比較され、パノラマ画像内のコーナーが間取り図画像内のコーナーと比較されるように、パノラマ画像及び間取り図画像内の物体の各クラスが個別に評価される。
【０１３４】
物体のクラスの全てが評価されてはいない場合、ステップ３３０において、物体クラス（ｏ）を１つインクリメントすることによって、物体の新たなクラスが選ばれる。プロセスは、次に、ステップ３２０に戻り、その点から進む。物体の全てのクラスが評価された場合、プロセスはステップ３３２に進む。物体の全てのクラスを評価する必要はないことに留意されたい。例えば、１０個の物体のクラスが存在する場合、１又は２つの物体のクラスしか評価する必要がないという可能性もある。例えば、１０個の物体のクラスが存在するが、検出物体の９５％が第１のクラス又は第２のクラスに分類される場合、他のクラスは、パノラマ画像及び方位と間取り図画像内の点とのマッチングの全体的な判断にあまり付加するものがない場合があるので、評価する必要がない場合がある。これによって、コンピュータシステム１５１０によって必要とされる計算能力が削減される。第１のクラス及び第２のクラスよりも多くのクラスを評価することが必要である可能性もある。例えば、評価された各クラスは、パノラマ画像が撮影されたと判断されたロケーション及び方位の精度を高めることができる。
【０１３５】
ステップ３３２において、間取り図画像内の更なる点（ｉ）を計算するか否かが判断される。間取り図画像内の更なる点（ｉ）の距離を計算する必要があるか否かを判断する１つの方法は、間取り図画像内の幾つかの点（ｉ）のコスト勾配を計算し、次に、それらの幾つかの点に基づいて極小コストを求めることである。例えば、開始点（ｉ）におけるコストを計算した後、隣接点（ｉ）のコストも計算することができる。これらのコストを合わせて調べると、コスト勾配を作成することができる。コスト勾配を用いると、極小コストを見つけることができ、極小が見つかると、更なる点（ｉ）を計算する必要がない。極小コストを求めるとき、より多くの点（ｉ）が計算され、より高い確実度を達成することができることに留意されたい。
【０１３６】
上記計算されたコスト勾配は、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、コスト勾配を計算するこのプロセスは、間取り図画像における部屋又はエリアの１つ以上又は全てについて繰り返すことができる。例えば、図１１Ａ及び図１１Ｂに示すように、比較される間取り図画像における第１のロケーション又は部屋が部屋Ａである場合、比較される次のロケーションは部屋Ｂであり、その次は部屋Ｃであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【０１３７】
間取り図画像内の更なる点（ｉ）のコストを計算する必要があるか否かを判断する別の方法は、距離変換データからのロケーションを開始点として用いることである。すなわち、開始点は、距離変換データによる部屋における中心ロケーションとすることができる。その場合、開始点の周囲に位置する点（ｉ）のランダムなガウスサンプルにおけるコスト計算を行うことができる。開始点が、小さなコストを生成する可能性の高い候補であるとき、周囲の点は、小さなコストを生成する次の最も可能性の高い点である。この方法は、パノラマ画像を撮影するときに、可能性の高い所望のロケーション、すなわち、写真撮影されるエリアの中心の近くのロケーションを利用する。ランダムなガウスサンプルにおける点（ｉ）の距離の全てが計算されると、最小コストを有する点（ｉ）を用いることができる。
【０１３８】
更なる点（ｉ）が計算される場合、点（ｉ）は、ステップ３３４においてインクリメントされる。上記で論述したように、計算される次の点は、開始点の周囲の点（ｉ）のランダムガウス分布の点とすることもできるし、コスト勾配の確認を試みるときの近傍点とすることもできる。更なる点（ｉ）が計算されない場合、プロセスはステップ３３６に進む。
【０１３９】
上記計算されたコストは、間取り図画像における特定の部屋又はエリアについてのものあることに留意されたい。一方、コストを計算するこのプロセスは、間取り図画像における部屋又はエリアの１つ以上又は全てについて繰り返すことができる。例えば、図１１Ａ及び図１１Ｂに示すように、比較される間取り図画像における第１のロケーション又は部屋が部屋Ａである場合、比較される次のロケーションは部屋Ｂであり、その次は部屋Ｃであり、以下、間取り図画像における各部屋又は各エリアが各パノラマ画像と比較されるまで行われる。
【０１４０】
ステップ３３６において、各パノラマ画像がどのロケーションにおいて撮影されたのか及びパノラマ画像がどの方位で撮影されたのかに関する最終的な特定が行われる。この特定は、各パノラマ画像及び各間取り図の点の個々のコストを解析し、パノラマ画像及び間取り図内の点のどの組み合わせが総グロ−バル最小コストを有するのかを特定することによって行われる。これは、図２０の距離マトリックスに示すような解析と同様である。各パノラマ画像及び各間取り図の点のコストは、最小総コストを有するパノラマ画像及び間取り図の点のセットを見つけるために評価される。
【０１４１】
編集距離スコアを示すマトリックスの代わりに、図２０を一例として用いると、このマトリックスは、間取り図画像及びパノラマ画像の部屋の各ペアのコストを提供する。パノラマ画像は、１〜９の番号が付けられ、ｘ軸に示されている一方、間取り図ロケーションは、１〜９の番号が付けられ、ｙ軸に示されている。このマトリックスにおける番号のそれぞれは、対応するパノラマ画像及び間取り図ロケーションの総コストを示している。さらに、マトリックスにおける数字は、各パノラマ画像セットの最小コストを示している。すなわち、マトリックスは、画像の最適な回転を考慮したときの最小編集距離を示している。このマトリックスから、最小コストを有するペアリング（間取り図ロケーション及びパノラマ画像）の組み合わせを特定することができる。
【０１４２】
加えて、各ロケーションのマッチング角も、コストマトリックスの下部に示されている。パノラマ画像１〜９のそれぞれのマッチング角が示されている。すなわち、第１のパノラマ画像のマッチング角は１９０度であり、第２のパノラマ画像のマッチング角は９０度であり、第３のパノラマ画像のマッチング角は９０度であり、以下、他のパノラマ画像のマッチング角も図２０に示すとおりである。この角度は、最良のマッチ及び最小コストを有するようにパノラマ画像を回転させなければならない度数を示している。
【０１４３】
パノラマ画像と間取り図における対応するロケーションとをマッチングする視覚表現が、図１７の二部グラフに示されている。図１７に示すように、パノラマ画像３０、３２、３４、３６、３８及び３９は、それらの画像を異なる間取り図ロケーションＡ〜Ｉに接続するラインを用いて示されている。これらのラインは、パノラマ画像と間取り図ロケーションとの間の最小コストを表す。上記で論述したように、全体の最小コストを用いたパノラマ画像及びロケーションのペアリングは、パノラマ画像を間取り図画像におけるロケーションと対応付けるように互いにペアリングすることができる。
【０１４４】
ドアを有する部屋の単純化した側面図を示したとする。ドアは全高Ｈを有する。部屋のパノラマ画像が撮影されたときのデジタルカメラの高さをＨ１とし、デジタルカメラからドアの上部までの高さをＨ２とすると、ドアの全高Ｈは、高さＨ１及びＨ２の合計である。である。上記で論述したように、デジタルカメラは、視野７０度を有すると推定することができる。この視野を２で除算することによって、角度θが得られる。したがって、この角度は３５度である。
【０１４５】
［バーチャルツアーの作成］
パノラマ画像のそれぞれが間取り図画像内のロケーションとマッチングされ、各パノラマ画像の方位が求められると、バーチャルツアーを作成することができる。バーチャルツアーでは、ユーザーが不動産物件内を自然に移動する仕方と一致してパノラマ画像の方位を定めることが好ましい。例えば、ユーザーが、バーチャルツアーにおいてドアを歩いて通過する場合、又は、或るロケーションから隣接ロケーションに行く場合、パノラマ画像の方位は、ユーザーが進行する方向、すなわち、ドア又は隣接ロケーションを通過する方向にすべきである。これは、間取り図の或るロケーションから次のロケーションに移動しているときの予想される視点がユーザーの予想と一致していない場合に、ユーザーの方向感覚を失わせることになる可能性があるからである。
【０１４６】
特定の部屋に入ったときに正確な方位がユーザーに提示されるように、一致した方位を得るために、パノラマ画像を回転又は調整することができる。例えば、図５に示すように、ユーザーが西側バルコニーから畳部屋に行く場合、ユーザーが実際の不動産物件内の畳部屋にちょうど入ったときのように、ユーザーが真っ直ぐ前を見るように畳部屋のパノラマ画像の方位を定めることができる。各パノラマ画像が、間取り図画像に対する方位を有すると、上述したように正確な方位がユーザーに提示されるように、各パノラマ画像をそれに応じて回転させることができる。
【０１４７】
例えば、パノラマ画像が０度の方向を指しているが、ユーザーの予想とマッチングさせるために２７０度の方向を指す必要がある場合、パノラマ画像をそれに応じて回転させ、パノラマ画像が２７０度の方向を向いている状態でバーチャルツアーに提示することができる。さらに、パノラマ画像をクロッピング又は別の方法で編集して、視野を３６０度から、例えば９０度等のより標準的な視野に削減することができる。加えて、視野が、特定の位置にいる人の視野とマッチングするように、視野を編集することができる。
【０１４８】
バーチャルツアーは、複数の方法で作成することができる。例えば、バーチャルツアーは、コンピュータシステム１５１０によって自動的に再生して、ユーザーを不動産物件の既定のツアーに案内することができる。バーチャルツアーは、パノラマ画像が関連付けられた全ての部屋において停止することを含むことができる。さらに、バーチャルツアーは、部屋全体をユーザーに示すために、部屋にいるときに部屋のパノラマ画像を回転又はパンさせることができる。
【０１４９】
加えて、バーチャルツアーをインタラクティブなものにして、ユーザーがどのロケーションを訪問するのか及びどの順番で訪問するのかを選ぶことを可能にすることができる。バーチャルツアーは、ユーザーが、間取り図内の或るロケーションに留まっている時間を求めることも可能にすることができる。
【０１５０】
図２４は、間取り図１０の３部屋ツアーの一例を示している。この例では、間取り図１０は、前述したものと同じ間取り図であり、同様の参照符号は同じ特徴部を表している。
【０１５１】
バーチャルツアーが開始する前に、不動産物件において撮影されたパノラマ画像は、この不動産物件の間取り図画像とともに、コンピュータシステム１５１０内に既に入力されている。上述した実施形態のうちの任意のものを用いて、各パノラマ画像が、間取り図画像における、そのパノラマ画像が撮影された場所のロケーションとマッチングされる。さらに、間取り図画像に対する各パノラマ画像の方位も特定される。この情報を用いて、コンピュータシステム１５１０は、不動産物件のバーチャルツアーを作成することができる。バーチャルツアーは、パノラマ画像が関連付けられた間取り図画像の１つ以上の部屋を含むことができる。バーチャルツアーの一例は、図２４に関して以下で論述される。
【０１５２】
図２４において、バーチャルツアーは、玄関ドアから始まる経路Ｐ１から開始し、部屋２に入室する。部屋２内で撮影された対応するパノラマ画像には、ユーザーが部屋２に入る方位と同じ方位であるＯ１の方位が与えられる。したがって、対応するパノラマ画像は、ユーザーが部屋に入るときに、画像の中心の方位がＯ１方向になるように、向きが調整される。重要なこととして、１つの単一のフレームには、視野全体がユーザーに示されていない場合があることを想起されたい。すなわち、より小さくより自然な視野がユーザーに示されるように、パノラマ画像は、クロッピング又は別の方法で調整することができる。さらに、この視野は、ユーザーが部屋２内の指定されたロケーションにいるときに見ることができる視野と同じ又は類似のものとすることもできる。
【０１５３】
さらに、ロケーションＬ１は、パノラマ画像が撮影されたと判断されたロケーションである。したがって、バーチャルツアーは、パノラマ画像の方位を、Ｌ１ロケーションにおいてＯ１方向に定める。その後、ユーザーは、左又は右にパンして、部屋の残りの部分を見ることもできるし、これは、コンピュータシステムが自動的に行うこともできる。同時に、ユーザーを援助するために、ユーザーが間取り図画像にいる場所のマップも示すことができる。
【０１５４】
次に、例示のバーチャルツアーは、経路Ｐ２によって示すように、隣の部屋８に向かう。パノラマ画像の方位は、方位Ｏ２によって示されるものである。そして、パノラマ画像のロケーションは、ロケーションＬ２によって示されている。
【０１５５】
最後に、バーチャルツアーは、経路Ｐ３によって示すように、ユーザーを居間３に案内する。この場合も、方位はＯ３の方位であり、ロケーションはＬ３によって示される。
【０１５６】
バーチャルツアーは、３つの部屋に限定されるものではなく、バーチャルツアーは、対応するパノラマ画像が関連付けられた各部屋又は各空間を訪問することができ、及び／又は、訪問する場所にユーザーによって方向付けることができる。
【０１５７】
［ハードウェア］
図２５は、本発明のコンピューティングシステムを動作させることができるデバイスの一例を示している。このコンピューティングシステムは、コンピュータ、モバイルデバイス又は任意の処理プラットフォーム上で実施することができる。このコンピューティングシステムは、ウェブサイトブラウザー、モバイルフォンアプリケーション、大規模ネットワーク等において動作することができる。このコンピューティングシステムは、上記で論述したように、画像処理を実行するために１つ以上のＣＮＮも備えることができる。
【０１５８】
図２５は、本明細書で説明したように、画像の解析及びバーチャルツアーの作成に適合した１つ以上の態様を実施するのに用いることができる４つのコンピューティングシステム１５１０の例示の構成要素の図である。これらの４つのコンピューティングシステムは、互いにネットワーク接続されて、ネットワーク接続コンピューティングシステム１５００を形成している。１つ以上のコンピューティングシステム１５１０を用いて、本発明の様々な態様又は本発明全体を実施することができることに留意されたい。コンピューティングシステム１５１０というとき、これは、１５１０Ａ等の単一のコンピューティングシステムを意味することもあるし、ネットワーク接続コンピューティングシステム１５００等の複数のコンピューティングシステムを意味することもある。
【０１５９】
様々なコンピューティングシステムを用いて、本文書において説明したシステム及び方法をクライアント又は単数若しくは複数のサーバーとして実施することができる。コンピューティングシステムは、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバー、ブレードサーバー、メインフレーム、及び他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表すことを意図している。他のコンピューティングシステムは、パーソナルデジタルアシスタント、携帯電話、スマートフォン、及び他の同様のコンピューティングシステム等の様々な形態のモバイルデバイスを含むことができる。ここに示す構成要素、それらの接続及び関係、並びにそれらの機能は、単なる例であることを意図したものであり、本文書において説明及び／又は特許請求される本発明の実施形態を限定することを意図したものではない。
【０１６０】
コンピューティングシステム１５１０の構成要素のそれぞれは、様々なバスを用いて相互接続され、共通の基板上に実装することもできるし、適宜、他の方法で実装することもできる。プロセッサは、コンピューティングデバイス内で実行される命令を処理することができる。これらの命令には、ディスプレイ上にグラフィカル情報を表示するための、メモリ又は記憶デバイスに記憶された命令が含まれる。コンピューティングシステム１５１０の出力は、ディスプレイ上への表示、別のコンピューティングデバイスへの送信、３次元レンダリングにおける使用、別のマシンにおける使用等を行うことができる。他の実施形態では、複数のプロセッサ及び／又は複数のバスを、適宜、複数のメモリ及び複数のタイプのメモリとともに用いることができる。また、複数のコンピューティングシステムを（例えば、サーバーバンク、ブレードサーバー群、又はマルチプロセッサシステムとして）相互接続することができ、各デバイスが、必要な動作の一部を提供することができる。
【０１６１】
プロセッサは、個別の複数のアナログプロセッサ及びデジタルプロセッサを備えるチップからなるチップセットとして実施することができる。加えて、プロセッサは、幾つかのアーキテクチャのうちの任意のものを用いて実施することができる。例えば、プロセッサは、ｘ８６プロセッサであってもよいし、ＲＩＳＣ（縮小命令セットコンピュータ）プロセッサであってもよい。プロセッサは、ユーザーインターフェース、デバイスによって実行されるアプリケーション、及び無線通信の制御等においてデバイスの他の構成要素と協調することができる。複数のプロセッサ又は複数のコアを有するプロセッサも用いることができる。プロセッサは、主として、この文書において論述された機能の実行を担当する。一方、特に、本発明の画像処理の態様と、並列処理方式でより効率的に実行される他の態様とに関して、ＧＰＵも用いることができる。例えば、パノラマ画像及び間取り図画像内の物体の検出は、ＣＮＮによって行うことができる。ＣＮＮの画像処理の多くは、ＧＰＵにおいて行うことができる一方、他の非画像処理に関連したタスクは、ＣＰＵによって行うことができる。
【０１６２】
プロセッサは、制御インターフェース及びディスプレイに結合されたディスプレイインターフェースを通じてユーザーと通信することができる。このディスプレイは、例えば、ＬＥＤ（液晶ディスプレイ）ディスプレイであってもよいし、他の適切な表示技術であってもよい。ディスプレイインターフェースは、ディスプレイを駆動して、グラフィカル情報及び他の情報をユーザーに提示するための適した回路機構を備えることができる。制御インターフェースは、ユーザーからコマンドを受信し、それらのコマンドをプロセッサにサブミットするために変換することができる。加えて、他のデバイスとの近接場通信を可能にするために、プロセッサと通信する外部インターフェースを設けることができる。外部インターフェースは、例えば、無線通信及び／又は有線通信を提供することができる。複数のインターフェースを用いることもできる。
【０１６３】
一般に、より多くのパラメーターを有するより深層のＣＮＮは、高処理能力及び大量のキャッシュメモリを有するコンピュータシステム上でより良好に動作する。ＧＰＵ等の大量の並列処理能力を有するコンピュータシステムは、単一のプロセッサよりもはるかに高速になる傾向を有する。ＧＰＵは、以下でより詳細に論述される。
【０１６４】
具体的には、画像処理アプリケーションでは、ＣＰＵよりも計算能力が高いＧＰＵ（グラフィック処理ユニット）を用いることができる。実際には、数十個、数百個又は数千個のＧＰＵのセットを用いて、大量の情報をより高速に計算することができる。ＧＰＵは、通常、プロセッサ及び共有メモリを備える。プロセッサはそれぞれ、共有メモリからデータを効率的に取得し、共有プログラムを実行することによって算術処理を実行する。用いることができるＧＰＵの一例は、ＧｅＦｏｒｃｅ１０８０ＧＰＵである。
【０１６５】
複数のコンピューティングシステム１５１０Ａ、１５１０Ｂ、１５１０Ｃ及び１５１０Ｄが示されている。コンピューティングシステム１５１０は、この特定の構成に限定されるものではなく、単一のコンピュータ又は多くのコンピュータであってもよい。同様に、コンピューティングシステム１５１０は、複数の並列ＣＰＵ若しくは並列ＧＰＵ又はそれらの組み合わせを備えることができる。コンピューティングシステム１５１０は、ＣＰＵ１５２０、メモリ１５５０、通信ユニット１５３０、並列コンピューティングデバイス１５６０、及びバス１５４０を備えることができる。コンピューティングシステム１５１０は、図示していないが、画像（複数の場合もある）（例えば、バーチャルツアー）の形態にすることができる結果を出力するディスプレイも有することができる。
【０１６６】
コンピューティングシステム１５１０への入力は、パーソナルコンピュータ、サーバー、又は他のコンピューティングデバイス１５９０を用いて行うことができる。
【０１６７】
ＣＰＵ１５２０は、メモリ１５５０に記憶されたプログラムに従って動作する。ＣＰＵ１５２０は、通信ユニット１５３０及び並列コンピューティングデバイス１５６０を制御する。プログラムは、インターネット等のネットワーク１５８０を通じて提供することもできるし、ＤＶＤ−ＲＯＭ又はＵＳＢメモリ等のコンピュータ可読情報記憶媒体に記憶することによって提供することもできる。
【０１６８】
メモリ１５５０は、例えば、ＲＡＭ又はＲＯＭ等のメモリデバイス及びハードディスクドライブを含む。メモリ１５５０はプログラムを記憶する。メモリは、各ユニットから入力される情報又は計算結果も記憶する。
【０１６９】
通信ユニット１５３０は、ウェブサーバー又は他のコンピュータ等の他のデバイスと通信するように構成されたネットワークカードとすることができる。通信ユニット１５３０は、ＣＰＵ１５２０の制御に基づいて、他のデバイスから受信された情報をＣＰＵ１５２０又はメモリ１５５０内に入力し、その情報を他のデバイスに送信する。
【０１７０】
バス１５４０は、ＣＰＵ１５２０、メモリ１５５０、通信ユニット１５３０、及び並列コンピューティングデバイス１５６０との間でデータを送信又は受信するように構成されている。例えば、ＣＰＵ１５２０又はメモリ１５５０は、バス１５４０内の拡張バスを通じて並列コンピューティングデバイス１５６０に接続される。
【０１７１】
並列コンピューティングデバイス１５６０は、並列計算によって大量の同じタイプの計算を効率的に実行するハードウェアである。並列コンピューティングデバイス１５６０は、例えばＧＰＵである。並列コンピューティングデバイス１５６０は、並列プロセッサユニット及びデバイス内メモリを備える。各並列実行ユニットは、例えば、複数のプロセッサ、命令ユニット、及び高速メモリを備える。
【０１７２】
各並列プロセッサは、浮動小数点計算と、デバイス内メモリ及び高速メモリとの間のデータの読み出し又は書き込みとを実行する。命令ユニットは、この命令ユニットを備える並列実行ユニットに含まれる並列プロセッサに、デバイス内メモリ等に記憶されたプログラムに基づいて処理を実行させる。並列実行ユニットのうちの１つに含まれる並列プロセッサは、そのような並列実行ユニットに含まれる命令ユニットからの命令に従って同じ命令を処理する。このように、複数の並列プロセッサを１つの命令ユニットによって制御することができ、これによって、命令ユニットの回路サイズの増加が抑えられる。したがって、ＣＰＵ１５２０の場合と比較して、並列コンピューティングデバイス１５６０に含まれる並列プロセッサの数を増加させることが可能である。
【０１７３】
デバイス内メモリは、ＤＲＡＭから構成することができる。デバイス内メモリは、バス１５４０を通じてＣＰＵ１５２０及びメモリ１５５０に接続されている。並列コンピューティングデバイス１５６０は、デバイス内メモリとメモリ１５５０との間でＤＭＡ転送を介してデータを転送する回路も備える。高速メモリは、例えば、デバイス内メモリよりも高速アクセスが可能なＳＲＡＭから構成される。デバイス内メモリ及び高速メモリのそれぞれは、ＧＰＵ１５６０の並列プロセッサからアクセス可能な共有メモリである。
【０１７４】
例示のブロック図及びフローチャートは、プロセスにおける特定の論理機能又はステップを実施する１つ以上の実行可能命令を含むコードのモジュール、セグメント、又は部分を表すことができるプロセスステップ又はプロセスブロックを示している。特定の例は、特定のプロセスステップ又は手順を示しているが、多くの代替の実施態様が可能である。幾つかのプロセスステップは、例えば、機能、目的、標準への準拠、レガシー構造、ユーザーインターフェース設計等の考慮に基づいて、本明細書における特定の説明と異なる順序で実行することができる。
【０１７５】
本発明の複数の実施形態が説明されている。本発明の趣旨及び範囲から逸脱することなく様々な変更を行うことができることが理解されるであろう。例えば、上記に図示した様々な形態のフローは、ステップの並べ替え、追加、又は削除を行って用いることができる。また、本発明の幾つかの実施形態が説明されてきたが、これらの実施形態は、組み合わせることもできるし、変更することもできることに留意されたい。
【符号の説明】
【０１７６】
１５００  ネットワーク接続コンピューティングシステム、１５１０  コンピュータシステム、１５２０  ＣＰＵ、１５３０  通信ユニット、１５４０  バス、１５５０  メモリ、１５６０  ＧＰＵ、１５８０  ネットワーク、１５９０  コンピューティングデバイス。
【図１】
2020038657.tif 000008
【図２】
2020038657.tif 000009
【図３】
2020038657.tif 000010
【図４】
2020038657.tif 000011
【図５】
2020038657.tif 000012
【図６】
2020038657.tif 000013
【図７Ａ】
2020038657.tif 000014
【図７Ｂ】
2020038657.tif 000015
【図７Ｃ】
2020038657.tif 000016
【図８】
2020038657.tif 000017
【図９】
2020038657.tif 000018
【図１０Ａ】
2020038657.tif 000019
【図１０Ｂ】
2020038657.tif 000020
【図１０Ｃ】
2020038657.tif 000021
【図１１Ａ】
2020038657.tif 000022
【図１１Ｂ】
2020038657.tif 000023
【図１２】
2020038657.tif 000024
【図１３Ａ】
2020038657.tif 000025
【図１３Ｂ】
2020038657.tif 000026
【図１３Ｃ】
2020038657.tif 000027
【図１４】
2020038657.tif 000028
【図１５Ａ】
2020038657.tif 000029
【図１５Ｂ】
2020038657.tif 000030
【図１６】
2020038657.tif 000031
【図１７】
2020038657.tif 000032
【図１８Ａ】
2020038657.tif 000033
【図１８Ｂ】
2020038657.tif 000034
【図１９Ａ】
2020038657.tif 000035
【図１９Ｂ】
2020038657.tif 000036
【図１９Ｃ】
2020038657.tif 000037
【図２０】
2020038657.tif 000038
【図２１】
2020038657.tif 000039
【図２２】
2020038657.tif 000040
【図２３Ａ】
2020038657.tif 000041
【図２３Ｂ】
2020038657.tif 000042
【図２４】
2020038657.tif 000043
【図２５】
2020038657.tif 000044