(57)【要約】      （修正有）【課題】２Ｄ画像の分類を改善するために、関数を学習するよう構成されたデータセットを形成する方法を提供する。【解決手段】関数は、２Ｄ画像内の可視オブジェクトについての３Ｄ配置の所定のタイプに応じて２Ｄ画像を分類するように構成される。３Ｄ配置の各タイプについて、３Ｄ配置の各タイプに応じて配置された３Ｄモデル化オブジェクトを含む３Ｄシーンを構築することと、構築した各３Ｄシーンにおける各２Ｄ視野をそれぞれが表す２Ｄ画像を生成することであって、当該シーンにおける可視３Ｄモデル化オブジェクトが、３Ｄ配置の各タイプに応じて配置された、構築された各３Ｄシーンの３Ｄモデル化オブジェクトのうちのオブジェクトであるような、生成することと、それぞれが生成された各２Ｄ画像と３Ｄ配置の各タイプを示す情報とを含む訓練パターンをデータセットに追加することとを含む。【選択図】なし【特許請求の範囲】
【請求項１】
関数を学習するよう構成されたデータセットを形成するための、コンピュータにより実施される方法であって、前記関数は、２Ｄ画像内における可視オブジェクトについての３Ｄ配置の所定のタイプに応じて２Ｄ画像を分類するように構成されており、３Ｄ配置の各タイプについて、
３Ｄ配置の各タイプに応じて配置された３Ｄモデル化オブジェクトを含む３Ｄシーンを構築することと、
構築した各３Ｄシーンにおける各２Ｄ視野をそれぞれが表す２Ｄ画像を生成することであって、当該シーンにおける可視３Ｄモデル化オブジェクトが、３Ｄ配置の各タイプに応じて配置された、構築された各３Ｄシーンの３Ｄモデル化オブジェクトのうちのオブジェクトであるような、生成することと、
それぞれが生成された各２Ｄ画像と３Ｄ配置の各タイプを示す情報とを含む訓練パターンをデータセットに追加することと
を含むことを特徴とする方法。
【請求項２】
３Ｄ配置の少なくとも１つのタイプについて、構築された１つまたは複数の３Ｄシーンの全ての３Ｄモデル化オブジェクトは、３Ｄ配置の各タイプに応じて配置される
ことを特徴とする、請求項１に記載の方法。
【請求項３】
３Ｄ配置の前記所定のタイプは、マンハッタンタイプ、および／または、アトランタタイプを含む
ことを特徴とする、請求項１または２に記載の方法。
【請求項４】
３Ｄ配置の各タイプについてのそれぞれの３Ｄシーンの前記構築は、
最初の３Ｄシーンおよび１つまたは複数の基準フレームを提供することと、
３Ｄ配置の各タイプに基づいて、前記１つまたは複数の基準フレームを基準として前記最初の３Ｄシーン内に３Ｄモデル化オブジェクトを配置することとを含む
ことを特徴とする、請求項１、２、または３に記載の方法。
【請求項５】
前記３Ｄ配置の所定のタイプはマンハッタンタイプを含み、マンハッタンタイプについて各３Ｄシーンを構築するために、前記提供された１つまたは複数の基準フレームは単一のマンハッタンフレームからなり、かつ／または、前記提供された最初の３Ｄシーンは、それぞれが前記単一のマンハッタンフレームとアラインしている３Ｄモデル化オブジェクトを含み、かつ／または、
前記３Ｄ配置の所定のタイプはアトランタタイプを含み、アトランタタイプについて各３Ｄシーンを構築するために、前記提供された１つまたは複数の基準フレームは、軸を共有する１つまたは複数のマンハッタンフレームからなり、かつ／または、前記提供された最初の３Ｄシーンは、それぞれのマンハッタンフレームと、またはオプションとして、同一のマンハッタンフレームとアラインしている３Ｄモデル化オブジェクトを含む
ことを特徴とする、請求項４に記載の方法。
【請求項６】
マンハッタンタイプについて各３Ｄシーンを構築するために、それぞれ前記単一のマンハッタンフレームとアラインした３Ｄモデル化オブジェクトを前記最初の３Ｄシーンに追加すること、および／または
前記アトランタについて各３Ｄシーンを構築するために、それぞれ各マンハッタンフレームとアラインした３Ｄモデル化オブジェクトを前記最初の３Ｄシーンに追加すること
を含むことを特徴とする、請求項５に記載の方法。
【請求項７】
最初の３Ｄシーンを提供することは、
前記最初の３Ｄシーンを表す最初の２Ｄ画像を提供することと、
前記最初の２Ｄ画像に基づいて前記最初の３Ｄシーンを決定することと
を含むことを特徴とする、請求項４〜６のいずれか１つに記載の方法。
【請求項８】
前記最初の２Ｄ画像に基づく前記最初の３Ｄシーンの前記決定は、
前記最初の２Ｄ画像の特徴線分を算出することと、
前記特徴線分に基づいて消失点を決定することと、
それぞれの消失点に基づいて、１つまたは複数のマンハッタンフレームおよび２Ｄから３Ｄへのそれぞれの投影を決定することと、
それぞれの特徴線分およびそれぞれの投影に基づいて、少なくとも１つのマンハッタンフレームに３Ｄモデル化オブジェクトを構築することと
を含むことを特徴とする、請求項７に記載の方法。
【請求項９】
前記最初の２Ｄ画像の前記特徴線分の前記算出は、
エッジ画素を算出することと、
エッジ画素を極大線にフィッティングすることと
を含むことを特徴とする、請求項８に記載の方法。
【請求項１０】
前記データセットに基づいて関数を学習することをさらに含み、またオプションとして、入力２Ｄ画像を提供することと、前記入力２Ｄ画像に前記学習した関数を適用して、前記入力２Ｄ画像を分類することとをさらに含む
ことを特徴とする、請求項１〜９のいずれか１つに記載の方法。
【請求項１１】
前記入力２Ｄ画像および前記入力２Ｄ画像の分類に基づいて、それぞれ２Ｄから各３Ｄのマンハッタンフレームへの、１つまたは複数の投影を決定することをさらに含む
ことを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記１つまたは複数の投影に基づき、前記入力２Ｄ画像によって表される３Ｄシーンを出力することをさらに含み、またオプションとして、入力２Ｄ画像の表現の上にユーザがスケッチすることによって前記３Ｄシーンを編集することをさらに含む
ことを特徴とする、請求項１１に記載の方法。
【請求項１３】
請求項１〜１２のいずれか１つに記載の方法を実行するための指示を含むコンピュータプログラム、および／または
請求項１〜１２のいずれか１つに記載の方法によって形成可能なデータセットを含む
ことを特徴とするデータ構造。
【請求項１４】
請求項１３に記載のデータ構造を記憶したコンピュータ読み取り可能媒体を備える装置。
【請求項１５】
前記装置は、前記コンピュータ読み取り可能媒体に接続されたプロセッサをさらに備え、前記装置はコンピュータシステムを構成する
ことを特徴とする、請求項１４に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、３次元（３Ｄ）配置の所定の種類により２次元（２Ｄ）画像を分類するために適用される関数の学習のために構成されたデータセットの形成に関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。ＣＡＤは、コンピュータ支援設計（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。ＣＡＥは、コンピュータ支援エンジニアリング（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇ）の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。ＣＡＭは、コンピュータ支援製造（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ：ＰＬＭ）システムに組み込むことができる。ＰＬＭとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するＰＬＭソリューション（製品名ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ）は、製品エンジニアリング知識を体系化するエンジニアリング・ハブ、製造エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【０００３】
こうした文脈において、２Ｄ画像内における可視オブジェクトの３Ｄ配置のタイプ、例えば、マンハッタン（Ｍａｎｈａｔｔａｎ）タイプ、あるいはマンハッタンタイプでもアトランタ（Ａｔｌａｎｔａ）タイプでもないタイプを認識するのに、２Ｄ画像を分類することは、有用であり得る。
【発明の概要】
【０００４】
したがって、関数を学習するよう構成されたデータセットを形成するための、コンピュータにより実施される方法が提供される。当該関数は、２Ｄ画像内における可視オブジェクトについての３Ｄ配置の所定のタイプに応じて２Ｄ画像を分類するように構成される。本方法は、３Ｄ配置の各タイプについてループされる。本方法は、３Ｄシーンを構築することを含む。構築された各３Ｄシーンは、３Ｄ配置の各タイプに応じて配置された３Ｄモデル化オブジェクトを含む。本方法はまた、２Ｄ画像を生成することを含む。生成された各２Ｄ画像は、構築された各３Ｄシーンの２Ｄ視野を表す。各２Ｄ視野において、可視３Ｄモデル化オブジェクトは、３Ｄ配置の各タイプに応じて配置された、構築された各３Ｄシーンの３Ｄモデル化オブジェクトのうちのオブジェクトである。本方法はまた、上記データセットに訓練パターンを追加することを含む。追加された各訓練パターンは、生成された各２Ｄ画像と、３Ｄ配置の各タイプを示す情報とを含む。
【０００５】
これにより、本方法は、２Ｄ画像内における可視オブジェクトの３Ｄ配置のタイプに応じた２Ｄ画像の分類に対する、機械学習パラダイムの適用をなす。本方法は、実際、そのような分類を実行するように構成された関数を学習するように適合されたデータセットの形成を提案する。このように、本方法は、リアルタイムで用いるのに十分高速な、正確な関数を、比較的効率的に提供する。さらに、本方法は、３Ｄモデル化経由でデータセットを形成することを提案する。具体的には、本方法は、３Ｄシーンを構築することと、次いで当該３Ｄシーンに基づいて訓練パターンを生成してデータセットに取り込むことを含む。そのようなワークフローのおかげで、本方法は、比較的効率的に、比較的多様なデータセットを形成する。当該ワークフローにより、実際、本方法は、訓練パターンを必要な数だけ、完全な制御下で出力できるようになる。これにより効率的で安全な機械学習が可能になる。
【０００６】
本方法は、以下のうちの１つまたは複数を含んでいてもよい。
・３Ｄ配置の少なくとも１つのタイプについて、構築された１つまたは複数の３Ｄシーンの全ての３Ｄモデル化オブジェクトは、３Ｄ配置の各タイプに応じて配置される。
・３Ｄ配置の所定のタイプは、マンハッタンタイプ、および／または、アトランタタイプを含む。
・３Ｄ配置の各タイプについてのそれぞれの３Ｄシーンの前記構築は、最初の３Ｄシーンおよび１つまたは複数の基準フレームを提供することと、３Ｄ配置の各タイプに基づいて、前記１つまたは複数の基準フレームを基準として前記最初の３Ｄシーン内に３Ｄモデル化オブジェクトを配置することとを含む。
・前記３Ｄ配置の所定のタイプはマンハッタンタイプを含み、マンハッタンタイプについて各３Ｄシーンを構築するために、前記提供された１つまたは複数の基準フレームは単一のマンハッタンフレームからなり、かつ／または、前記提供された最初の３Ｄシーンは、それぞれ、前記単一のマンハッタンフレームとアラインした３Ｄモデル化オブジェクトを含む。
・前記３Ｄ配置の所定のタイプは前記アトランタタイプを含み、前記アトランタタイプについて各３Ｄシーンを構築するために、前記提供された１つまたは複数の基準フレームは、軸を共有する１つまたは複数のマンハッタンフレームからなり、かつ／または、前記提供された最初の３Ｄシーンは、それぞれのマンハッタンフレームと、またはオプションとして、同一のマンハッタンフレームとアラインした３Ｄモデル化オブジェクトを含む。
・前記マンハッタンタイプについて３Ｄシーンを構築するために、それぞれ前記単一のマンハッタンフレームとアラインした３Ｄモデル化オブジェクトを前記最初の３Ｄシーンに追加すること。
・前記アトランタタイプについて３Ｄシーンを構築するために、それぞれ各マンハッタンフレームとアラインした３Ｄモデル化オブジェクトを前記最初の３Ｄシーンに追加すること。
・最初の３Ｄシーンを提供することは、前記最初の３Ｄシーンを表す最初の２Ｄ画像を提供することと、前記最初の２Ｄ画像に基づき前記最初の３Ｄシーンを決定することとを含む。
・前記最初の２Ｄ画像に基づく前記最初の３Ｄシーンの決定は、前記最初の２Ｄ画像の特徴線分を算出することと、前記特徴線分に基づいて消失点を決定することと、前記消失点に基づいて、１つまたは複数のマンハッタンフレームおよび２Ｄから３Ｄへのそれぞれの投影を決定することと、各特徴線分および各投影に基づいて、少なくとも１つのマンハッタンフレームにおいて３Ｄモデル化オブジェクトを構築することとを含む。
・前記最初の２Ｄ画像の前記特徴線分の算出は、エッジ画素を算出することと、エッジ画素を極大線にフィッティングすることとを含む。
・本方法は、前記データセットに基づいて関数を学習することをさらに含み、またオプションとして、入力２Ｄ画像を提供することと、前記入力２Ｄ画像に前記学習した関数を適用して、前記入力２Ｄ画像を分類することとをさらに含む。
・本方法は、前記入力２Ｄ画像および前記入力２Ｄ画像の分類に基づいて、それぞれ２Ｄから各３Ｄマンハッタンフレームへの、１つまたは複数の投影を決定することをさらに含む。かつ／または、
・本方法は、前記１つまたは複数の投影に基づき、前記入力２Ｄ画像によって表される３Ｄシーンを出力することをさらに含み、またオプションとして、入力２Ｄ画像の表現の上にユーザがスケッチすることによって前記３Ｄシーンを編集することをさらに含む。
さらには、本方法によって形成可能なデータセットが提供される。このようなデータセットは本方法によって追加された訓練パターンを含み、当該データセットはそれにより比較的網羅的で、正確である。
【０００７】
さらには、データセットで関数を学習することを含むプロセスが提供される。さらには、このようなプロセスによって学習可能な関数が提供される。当該関数、例えばニューラルネットワークは、３Ｄ配置の所定のタイプに応じて２Ｄ画像を分類するように構成される。
【０００８】
さらには、本方法、および／または、本プロセスを実行するための命令を含むコンピュータプログラムが提供される。
【０００９】
さらには、前記データセット、前記関数、および／または、前記プログラムを含むデータ構造が提供される。
【００１０】
さらには、前記データ構造が記録されたデータ記憶媒体を含む装置が提供される。前記装置は、非一時的コンピュータ読み取り可能媒体を構成してもよい。あるいは、前記装置は、前記データ記憶媒体に接続されたプロセッサを備えていてもよい。前記装置は、そのように、システムを構成してもよい。前記システムはさらに、前記プロセッサに接続されたグラフィカル・ユーザ・インターフェースを備えていてもよい。
【図面の簡単な説明】
【００１１】
【図１】本システムの一例を示す。
【図２】本方法を説明する図である。
【図３】本方法を説明する図である。
【図４】本方法を説明する図である。
【図５】本方法を説明する図である。
【図６】本方法を説明する図である。
【図７】本方法を説明する図である。
【図８】本方法を説明する図である。
【図９】本方法を説明する図である。
【図１０】本方法を説明する図である。
【図１１】本方法を説明する図である。
【図１２】本方法を説明する図である。
【図１３】本方法を説明する図である。
【図１４】本方法を説明する図である。
【図１５】本方法を説明する図である。
【図１６】本方法を説明する図である。
【図１７】本方法を説明する図である。
【図１８】本方法を説明する図である。
【図１９】本方法を説明する図である。
【図２０】本方法を説明する図である。
【図２１】本方法を説明する図である。
【図２２】本方法を説明する図である。
【図２３】本方法を説明する図である。
【図２４】本方法を説明する図である。
【図２５】本方法を説明する図である。
【図２６】本方法を説明する図である。
【図２７】本方法を説明する図である。
【発明を実施するための形態】
【００１２】
本方法は、コンピュータにより実施される。これは、本方法のステップ（あるいは略全てのステップ）が少なくとも１つのコンピュータ、または類似の任意のシステムによって実行されることを意味する。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例において、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例において、このレベルは、ユーザが設定し、かつ／または、予め定義されていてもよい。例において、３Ｄシーンの構築、２Ｄ画像の生成、およびデータセットの追加は、完全に自動的に実行され得る。
【００１３】
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリに接続されたプロセッサ、および、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分（例えば、プログラム用に１つ、場合によりデータベース用に１つ）を含む。
【００１４】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに本方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【００１５】
モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、モデル化オブジェクトは、異なる種類のデータによって定義されてもよい。実際、システムは、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、ＣＡＤ兼ＰＬＭシステムであってもよい。
【００１６】
ＣＡＤの文脈において、モデル化オブジェクトは、典型的には、３Ｄモデル化オブジェクトであってもよい。「３Ｄモデル化オブジェクト」は、３Ｄ表現が可能なデータによってモデル化される任意のオブジェクトを意味する。３Ｄ表現は、その部品をすべての角度から見ることを可能にする。たとえば、３Ｄで表現された３Ｄモデル化オブジェクトは、その軸のうちの任意の軸、あるいは、その表現が表示された画面中の任意の軸を中心に、処理して回転させることが可能である。これは、特に、３Ｄモデル化されていない２Ｄアイコンについては除外される。３Ｄ表現の表示は、設計を容易にする（すなわち、設計者が作業を達成するスピードを統計的に速める）。
【００１７】
３Ｄモデル化オブジェクトは、ＣＡＤシステムを用いて設計され、かつ／または、ＣＡＤシステムにロードされてもよい。ＣＡＤシステムは、少なくとも、ＣＡＴＩＡのようなモデル化オブジェクトのグラフィック表現に基づくモデル化オブジェクトの設計に適した任意のシステムを意味する。この場合、モデル化オブジェクトを定義するデータは、モデル化オブジェクトを表現可能にするデータを含む。ＣＡＤシステムは、例えば、辺や線を用い、また、場合により面（ｆａｃｅｓ  ｏｒ  ｓｕｒｆａｃｅｓ）を用いて、ＣＡＤモデル化オブジェクトの表現を提供してもよい。線、辺、あるいは面は、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）など、様々な様式で表現されてもよい。具体的には、ＣＡＤファイルは仕様を含み、その仕様に基づきジオメトリが生成可能であり、よって表現が生成可能となる。モデル化オブジェクトの仕様は１つまたは複数のＣＡＤファイルに格納されていてもよい。ＣＡＤシステムでモデル化オブジェクトを表現するファイルの典型的なサイズは、一部分あたり１メガバイトの範囲である。また、モデル化オブジェクトは、典型的には、数千の部分の集合体であってもよい。
【００１８】
３Ｄシーンとは、３Ｄスペースにおける３Ｄモデル化オブジェクトの任意の配置（配列）を指す。３Ｄ空間は、例えば部屋の壁に対応する境界を含んでいてもよい。３Ｄ空間が境界を含む場合、例においては、１つまたは複数の境界が、テクスチャで覆われてもよい。
【００１９】
本方法による３Ｄシーンの構築は、３Ｄ空間（例えば、空の３Ｄ空間または既に３Ｄモデル化オブジェクトを含む３Ｄ空間）を含む最初の３Ｄシーンを提供することと、次いで３Ｄモデル化オブジェクトを最初の３Ｄシーン内に配置することを含んでいてもよい。本方法は、例えば、３Ｄ空間に割り当てられた１つまたは複数の基準フレーム（すなわち、基礎）を提供することと、当該１つまたは複数の基準フレームに基づいて任意の配置を実行することを含んでいてもよい。最初の３Ｄシーンに３Ｄモデル化オブジェクトを配置することは、新たな３Ｄモデル化オブジェクトを追加、移動、および／または、編集すること、および／または、既存の３Ｄモデル化オブジェクトを除去、移動、および／または、編集することを含んでいてもよい。追加された３Ｄモデル化オブジェクトのソースは任意のものでよく、例えば３Ｄモデル化オブジェクトのデータベースから取得されたり、かつ／または、ＣＡＤシステムで設計されたりしてもよい。
【００２０】
本方法によって企図される２Ｄ画像は、写真などのような物理的信号の２Ｄの空間的分布を表すデータ構造である。当該物理的信号は、例えば、物質または物体境界の色、グレーレベル、深度、または存在など、任意の信号であってもよい。これに対応して、画像は、ＲＧＢ、グレースケール、または深度画像、またあるいは、２Ｄ輪郭モデルであってもよい。空間的分布は、任意の方法で、例えば値のグリッドを用いて表現されてもよく、それによって画素を定義し、グリッドは、不規則または規則的である可能性がある。データセットに追加された画像、および／または、関数に入力される画像は、すべて同じ種類であってもよく、例えば、すべて矩形の２ＤのＲＧＢまたはグレースケール画像であってもよい。あるいは、データセットに追加された画像、および／または、関数に入力される画像は、異なる種類の画像を含んでいてもよい（例えば、訓練パターンの第１の要素のうちの画像、または第２の要素のうちの画像であってもよい）。本方法は、合成写真のような、データセットを形成する合成２Ｄ画像を生成してもよい。学習した関数は、次いで、合成２Ｄ画像（例えば合成写真など）、および／または、自然２Ｄ画像（自然の写真など）に適用されてもよい。
【００２１】
構築されたシーンの少なくとも一部（例えば、全て）は、構築された３Ｄシーンそれぞれの２Ｄ視野をそれぞれ表す１つまたは複数の（すなわち任意の数の）２Ｄ画像を生成するために、本方法によりそれぞれ用いられてもよい。生成された各２Ｄ画像は、それにより、可視３Ｄモデル化オブジェクト（すなわち、２Ｄ画像によって部分的または完全にキャプション付けされた３Ｄモデル化オブジェクト）からなる構築された３Ｄシーンの一部の視覚的表現を形成する。
【００２２】
２Ｄ画像の生成は、２Ｄ視野の仕様を提供することと、構築された３Ｄシーンを２Ｄ視野に合わせて２Ｄ構造に投影して２Ｄ画像を形成することとを含んでいてもよい。仕様は、投影を実行するための表面（平面など）および観察者の位置（有限位置など）を含んでいてもよい。例において、２Ｄ視野は、円錐視野であってもよい。
【００２３】
生成は、オプションとして、構築された３Ｄシーンに対する投影前の任意の前処理、および／または、構築された３Ｄシーンに対する投影後の任意の後処理を含んでいてもよい。例において、前処理は、任意の所定の基準に従って重要でないと考えられる３Ｄモデル化オブジェクトを除去すること、および／または、可視３Ｄオブジェクトと隠れた３Ｄモデルオブジェクトを識別して可視オブジェクトのみを投影することとを含む。例において、後処理は、色、および／または、テクスチャ（例えば、３Ｄにまだ存在しない場合）を追加することを含んでいてもよい。
【００２４】
構築された３Ｄシーンは、現実世界のシーン、すなわち現実世界の物体の配置を表してもよい。構築された３Ｄシーンの３Ｄモデル化オブジェクトは、それぞれ現実世界の物体のジオメトリを表していてもよい。構築された３Ｄシーンの３Ｄモデル化オブジェクトは、特に、機械部品、家具、および／または消耗品などの製品を表す３Ｄモデル化オブジェクトを含んでいてもよく、３Ｄモデル化オブジェクトは、建物の外観、建物の内装、および／または、都市の建設物など、建築物を表し、かつ／または、３Ｄモデル化オブジェクトは、植物、動物、人間、および／または、風景など、自然物を表す。例において、構築された３Ｄシーンは、建築シーンを表してもよい。
【００２５】
本方法は、３Ｄ配置タイプの所定の集合を扱う。
【００２６】
３Ｄ配置は、オブジェクト（例えば、３Ｄシーンの３Ｄモデル化オブジェクトまたは現実世界の物体）が３Ｄにおいて互いに対して相対的に配置される特定のやり方、または方法である。言い換えれば、３Ｄ配置タイプは、オブジェクトが他のオブジェクトに対して３Ｄにおいてどのように配置されるかを定義する。
【００２７】
各配置タイプに従って配置された３Ｄモデル化オブジェクトを含む３Ｄシーンを構築する際、本方法は、３Ｄモデル化オブジェクトを３Ｄシーンにおいて各配置タイプに従って配置することを含んでいてもよい。このように、前記３Ｄモデル化オブジェクトが常に配置タイプに従うことを確実にしつつ、任意の構築ステップを実行することができる。
【００２８】
３Ｄモデル化オブジェクトの配置は、各３Ｄモデル化オブジェクトにそれぞれ割り当てられたフレームを介して定義してもよい。２つ以上の３Ｄモデル化オブジェクトの相対的な配置は、次いで、当該２つ以上の３Ｄモデル化オブジェクトの１つずつにそれぞれ関連付けられたフレームが互いに対してどのように配置されるかによって定義されてもよい。フレーム間の相対位置を考慮してもよい。あるいは、３Ｄシーンの１つまたは複数の基準フレームに対するフレームの位置決めが考慮されてもよい。現実世界の物体の配置は、現実世界の物体を表す３Ｄモデル化オブジェクトの配置を定義することを介して定義してもよい。
【００２９】
フレームは、有向であっても無向であってもよい。各３Ｄモデル化オブジェクトは、（例えば、自然な）直交フレーム、すなわち３つの直交する方向を定義し、例えば（ｘ，ｙ，ｚ）で表されるフレームに割り当てられてもよい。例えば、車や椅子を表す３Ｄモデル化オブジェクトには自然なフレームが割り当てられ、例えば、ｘ軸はオブジェクト上またはオブジェクト内に座ったときの左から右に向かう方向に対応し、ｙ軸はオブジェクト上またはオブジェクト内に座ったときの後から前に向かう方向に対応する。３Ｄモデル化オブジェクトに割り当てられたフレームは、３Ｄモデル化オブジェクトを表す２Ｄ画像内に特徴線を生成する３Ｄモデル化オブジェクトのエッジに対応していてもよい。エッジは、最も長いもの、例えば、最も長い３つのエッジのうちのものあってもよい。エッジは、鋭く、かつ／または、真っ直ぐ（すなわち、直線状）であってもよい。これに代えて、またはこれに加えて、３Ｄモデル化オブジェクトに割り当てられたフレームは、互いに正規直交するこのような３つのエッジの集合に対応してもよい。
【００３０】
例において、３Ｄ配置タイプの所定の集合は、３Ｄアラインメントタイプの集合を含むか、またはそれからなっていてもよい。すなわちオブジェクトをアラインさせる異なる方法に対応していてもよい。
【００３１】
２つ以上の３Ｄモデル化オブジェクトは、それらのフレームがすべてアラインしたとき、アラインしたとみなしてもよい。そうでないとき、３Ｄモデル化オブジェクトはアラインしていないとみなしてもよい。２つ以上の３Ｄモデル化オブジェクトは、それらのフレームがすべてはアラインしていないが、軸を共有しているとき、アラインしていないが、軸を共有しているとみなしてもよい。
【００３２】
フレームの各軸が他のフレームの軸に平行であるとき、２つのフレームはアラインしているとみなしてもよい。２つのフレームが無向である場合、当該条件で十分であり得る。２つのフレームが有向である場合、この定義は、オプションとして、２つのそのような平行な軸が同じ向きを有し、かつ／または、同じ軸のインデックスに対応するという条件をさらに含んでいてもよい。
【００３３】
フレームの少なくとも１つの軸が他のフレーム（群）それぞれの軸に平行であるとき、２つ以上のフレームは軸を共有しているとみなしてもよい。２つのフレームが無向である場合、当該条件で十分であってもよい。２つのフレームが有向である場合、この定義は、オプションとして、２つのそのような平行な軸が同じ向きを有し、かつ／または、同じ軸のインデックスに対応するという条件をさらに含んでいてもよい。
【００３４】
したがって、３Ｄモデル化オブジェクトは、必ずしも線あるいはグリッド上に配置されていなくても、アラインしていると見なしてもよく、アラインメントの概念は、３Ｄモデル化オブジェクトに関連付けられたフレームの３つの軸がどのように互いに関連しているかに対応する。なお、３Ｄモデル化オブジェクトは、他の３Ｄモデル化オブジェクトと同様のアラインメントの定義を用いて、基準フレームとアラインするか、またはそのような基準フレームと軸を共有してもよい。
【００３５】
例において、３Ｄ配置の所定のタイプは、マンハッタンタイプ、および／または、１つまたは複数の他の３Ｄ配置タイプを含んでもよい。そのような例では、１つまたは複数の他のタイプは、例えば、アトランタタイプを含んでいてもよい。例えば、関数は、２Ｄ画像を、マンハッタンタイプ、アトランタタイプ、およびマンハッタンタイプでもアトランタタイプでもないタイプ（「その他」タイプとも呼ばれる）の３つの３Ｄアラインメントタイプのうちの１つに分類するように構成されていてもよい。そのようなアラインメントのカテゴリーは、特に２Ｄ画像で認識するのに興味深い。
【００３６】
マンハッタンタイプとアトランタタイプはよく知られた３Ｄアラインメントのタイプである。３Ｄモデル化オブジェクトは、それらがすべてアラインしているとき、マンハッタンタイプに従って配置されていると言われる。３Ｄモデル化オブジェクトは、それらがすべてはアラインしていないが、すべてが共通の軸を共有しているとき、アトランタタイプに従って配置されていると言われる。オプションとして、アトランタタイプは、３Ｄモデル化オブジェクトを、マンハッタンタイプに従って配置された有限数のサブセットに分割してもよいというさらなる条件を含んでもよく、オプションとして、当該分割が３Ｄシーンの凸なサブシーンへの分割に対応するというさらなる条件を含んでもよい。マンハッタンタイプでもアトランタタイプでも、マンハッタンタイプにもアトランタタイプにも従わない３Ｄアライメントを指定することはできない。
【００３７】
３Ｄシーンは、１つまたは複数のマンハッタンフレームとともに提供されてもよく、３Ｄモデル化オブジェクトは、そのような１つまたは複数のマンハッタンフレームに基づいて３Ｄシーン内に配置されてもよい。マンハッタンフレームは、マンハッタンタイプまたはアトランタタイプに従って配置された３Ｄモデル化オブジェクトを含む３Ｄシーンのフレームに過ぎない。全てが３Ｄシーンの同じ（例えば、単一の）マンハッタンフレームにアラインされた複数の３Ｄモデル化オブジェクトが、マンハッタンタイプに従って配置される。少なくとも２つの３Ｄモデル化オブジェクトが異なるマンハッタンフレームとアラインしたときに、全てがそれぞれ、同じ軸を共有する３Ｄシーンのいくつかのマンハッタンフレームの１つにアラインした、複数の３Ｄモデル化オブジェクトが、アトランタタイプに従って配置される。１つまたは複数の基準フレームを含む最初の３Ｄシーンに基づくことにより、本方法は、基準フレームに応じて位置合わせされた最初の３Ｄシーンに１つまたは複数の新たな３Ｄモデル化オブジェクトを追加することによって、各回において、マンハッタンタイプまたはアトランタタイプの新たな配置を効率的に生成する。これにより、当該基準フレーム（群）はマンハッタンフレーム（群）に変わる。
【００３８】
本方法は、関数を学習するように構成されたデータセットを形成する（すなわち、構築するまたは確立する）ためのものである。本方法は、上記データセットに訓練パターンを追加する。データセットは、本方法の開始前に、初期化したり空にしたりしてもよい。本方法は、データセットに訓練パターンを取り込む。
【００３９】
所定のタイプの３Ｄ配置のうちの所与の各タイプについて、本方法は、少なくともいくつかの３Ｄモデル化オブジェクトが当該所与のタイプの３Ｄ配置に従って配置された３Ｄシーンを構築する。本方法は、次いで、可視３Ｄモデル化オブジェクトの少なくともいくつかが当該所与のタイプの３Ｄ配置に従って配置された３Ｄモデル化オブジェクトに含まれる１つまたは複数の２Ｄ画像を生成してもよい。
【００４０】
可視３Ｄモデル化オブジェクトの上記少なくともいくつかは、可視３Ｄモデル化オブジェクトのすべてまたはその大部分（例えば、任意の所定の定量化閾値を上回る。これは例えば、３Ｄシーン内の３Ｄモデル化オブジェクトの平均数に基づいて決定される）、あるいは最も重要な可視３Ｄモデル化オブジェクトのすべて（例えば、サイズ閾値のような、任意の所定の重要度閾値を上回る。これは例えば、３Ｄシーン内の３Ｄモデル化オブジェクトの平均サイズに基づいて決定される）またはその大部分（例えば、任意の所定の定量化閾値を上回る。これは３Ｄシーン内の３Ｄモデル化オブジェクトの平均数に基づいて決定される）から構成されてもよい。
【００４１】
形成された３Ｄ配置のタイプを示す任意のタイプの情報（例えば、ラベルなど）に関連付けられたそのような２Ｄ画像をそれぞれ含む訓練パターンを、形成されるデータセットに追加することによって、本方法は、２Ｄ画像によって表されるオブジェクトの３Ｄ配置のタイプを認識可能な関数を後に機械学習することを可能にするデータを、データセットに取り込む。
【００４２】
当該関数は２Ｄ画像を分類するように構成されている。言い換えれば、当該関数は、入力として、２Ｄ画像（例えば、３Ｄシーンによって表現可能な現実世界のシーンを表す２Ｄ画像）を受け取り、出力として、自動的に、入力２Ｄ画像に適用される３Ｄ配置タイプを示す任意の情報を提供する。この関数の出力は、各配置タイプを示すラベルを含むか、またはそれからなっていてもよい。出力されるラベルは、例えば、入力２Ｄ画像における可視オブジェクトが従う可能性が最も高い配置タイプを示してもよい。これに代えて、またはこれに加えて、関数の出力は、すべての配置タイプの確率分布を含むか、それからなっていてもよい。出力される確率分布は、例えば、所与の配置タイプにそれぞれ関連付けられ、かつ、入力２Ｄ画像内における可視オブジェクトが当該所与の配置タイプに従う確率を示す値を含んでいてもよい。
【００４３】
１つまたは複数（例えばすべて）のタイプの３Ｄ配置についての１つまたは複数（例えばすべて）の３Ｄシーンの構築は、すべての３Ｄモデル化オブジェクトが各配置タイプに従って毎回配置されるようなものであってもよい。このように、それに合わせて３Ｄシーンの２Ｄ画像が生成される２Ｄ視野がどれであっても、２Ｄ画像におけるすべての可視３Ｄモデル化オブジェクトは、各３Ｄ配置のタイプに従って配置される必要がある。これにより、少なくともランダムなレベルの２Ｄ視野のような、任意の２Ｄ視野に合わせて２Ｄ画像を生成することが可能になる。
【００４４】
例において、１つまたは複数のタイプの３Ｄ配置についての１つまたは複数の３Ｄシーンの構築は、あるいは、各３Ｄ配置タイプに従って配置されない３Ｄモデル化オブジェクトを含んでもよい。そのような場合の例において、２Ｄ画像は、そのような３Ｄモデル化オブジェクトのすべて、あるいはほぼすべてが不可視であるような（例えば、それぞれの３Ｄ配置タイプに従って配置された他の３Ｄモデル化オブジェクトによって隠れているような）２Ｄ視野に合わせて生成されてもよい。そのような２Ｄ視野は、任意の方法で決定されてもよい。そのような場合の他の例において、配置されていない３Ｄモデル化オブジェクトは、より重要性が低くてもよい。それにより、そのような３Ｄモデル化オブジェクトは、機械学習の堅牢性に及ぼす影響の小さい、生成された２Ｄ画像において、可視であってもよい。
【００４５】
各３Ｄ配置タイプについての３Ｄシーンの構築は、最初の３Ｄシーンを提供すること、意図された３Ｄ配置タイプに結果が従うように３Ｄモデル化オブジェクトを最初の３Ｄシーンに追加することによって行ってもよい。同じ最初の３Ｄシーンを、１つまたは複数の３Ｄ配置タイプについて構築された複数のシーンについて用いてもよい。
【００４６】
ここで、マンハッタンタイプについて各３Ｄシーンを構築するために、提供された最初の３Ｄシーンは、例えばそれぞれが単一のマンハッタンフレームにアラインした、マンハッタンタイプに従って配置された３Ｄモデル化オブジェクト（例えばそれのみ）をすでに含んでいてもよい。アトランタタイプについて各３Ｄシーンを構築するために、提供された最初の３Ｄシーンは、例えばそれぞれが同じ（例えば単一の）マンハッタンフレームにアラインした、マンハッタンタイプに従って配置された３Ｄモデル化オブジェクト（例えばそれのみ）をすでに含んでいてもよいし、あるいは、例えば同じ軸を共有するいくつかのマンハッタンフレームの１つにそれぞれがアラインした、アトランタタイプに従って配置された３Ｄモデル化オブジェクト（例えばそれのみ）をすでに含んでいてもよい。
【００４７】
マンハッタンタイプでもアトランタタイプでもないタイプについて各３Ｄシーンを構築するために、例においては、同じ初期３Ｄシーン（マンハッタンまたはアトランタに従った３Ｄモデル化オブジェクトの既存の配置を有する）を用いてもよい。すべての場合において、結果として、構築したシーンにおける３Ｄモデル化オブジェクトが、確実に、マンハッタンタイプにもアトランタタイプにも従わずに配置されていなければならない。例えば、前記３Ｄモデル化オブジェクトが全てに共通な軸を有さないことが保証されてもよい。マンハッタンタイプでもアトランタタイプでもない訓練パターンも、例えば歪みを使用することによって、他のタイプを表す２Ｄ画像から前記タイプを表す２Ｄ画像を生成することによって、データセットに追加してもよい。
【００４８】
このように、上記の原理は、多様で冗長でないデータセットを効率的に形成する自動取り込みプロセスを実施するのに用いられてもよい。取り込みプロセスは、（例えば、空の）データセットを初期化することを含んでいてもよい。取り込みプロセスは、次いで、異なるステップを含んでいてもよく、それらはインターレースされていてもされていなくてもよい。取り込みプロセスは、１つまたは複数の最初の２Ｄ画像を提供することと、各２Ｄ画像に基づいて、認識されるべき異なる３Ｄ配置タイプをカバーする代表的ないくつかの訓練パターンを作成することとを含んでいてもよい。訓練パターンの作成は、企図された３Ｄ配置タイプの少なくとも一部のための３Ｄシーンを構築することと、企図されたすべての３Ｄ配置タイプについて２Ｄ画像を生成することとを含んでいてもよい。３Ｄシーンの構築は、３Ｄモデル化オブジェクトの任意の提供されたデータベースに基づいていてもよい。
【００４９】
本方法において任意の最初の３Ｄシーンを提供することは、最初の３Ｄシーンを表す最初の２Ｄ画像を提供することと、当該最初の２Ｄシーンに基づき当該最初の３Ｄシーンを決定することとを含んでいてもよい。言い換えれば、本方法は、再構成された３Ｄシーンが比較的現実的であり得るように、最初の２Ｄ画像（例えば、自然の写真）から３Ｄシーンを再構成してもよい。
【００５０】
最初の２Ｄ画像に基づいて最初の３Ｄシーンを決定することは、２Ｄから３Ｄへの再構成の任意のアルゴリズムに従って実行してもよい。このアルゴリズムは、例えば、最初の２Ｄ画像の特徴線分を算出することを含んでいてもよい。アルゴリズムはまた、特徴線分に基づいて消失点を決定することを含んでいてもよい。アルゴリズムはまた、それぞれの消失点に基づいて、１つまたは複数のマンハッタンフレームおよび２Ｄから３Ｄへのそれぞれの投影を決定することを含んでいてもよい。そして、アルゴリズムは、それぞれの特徴線分およびそれぞれの投影に基づいて、少なくとも１つのマンハッタンフレームに３Ｄモデル化オブジェクトを構築することを含んでいてもよい。最初の２Ｄ画像の特徴線分の算出は、任意のアルゴリズムで行ってもよい。そのようなアルゴリズムは、エッジ画素を算出することと、エッジ画素を極大線にフィッティングすることとを含んでいてもよい。これらの特に効率的なアルゴリズムの例は後ほど提供する。
【００５１】
本方法によって形成されたデータセットは、任意のやり方で、後の任意の時に使用してもよい。データセットは、例えば任意のニューラルネットワーク訓練を介して、例えば関数を学習するのに用いてもよい。このような関数は、それ自体が任意の応用に用いられてもよい。１つの応用例は、入力２Ｄ画像を提供し、学習した関数を入力２Ｄ画像に適用し、それによって入力２Ｄ画像を分類することである。
【００５２】
このような分類は、次いで、例において、入力２Ｄ画像および入力２Ｄ画像の分類に基づいて、それぞれ２Ｄから各３Ｄ（例えば、マンハッタン）フレームへの、１つまたは複数の投影を決定するのに用いられてもよい。
【００５３】
特に、関数が、マンハッタンタイプに従って、またはアトランタタイプに従って、あるいはマンハッタンタイプにもアトランタタイプにも従わずに２Ｄ画像を分類するように構成されている場合、関数は、２Ｄ画像に割り当てるために、ユーザに対し、ある数の関連するマンハッタンフレームを出力することができる（それぞれ１、１より大きい正の整数、または０）。１つまたは複数の投影の決定は、次いで、そのような数に基づいて任意の方法で、例えばユーザによって、あるいは自動的に、実行されてもよい。
【００５４】
このようなマンハッタンフレーム（群）の割り当てには、いくつかの応用があってもよい。それらのうちの１つは、入力２Ｄ画像によって表される３Ｄシーンを再構成することである。さらに、ユーザは、次いで、入力２Ｄ画像の表現上に直接スケッチすることによって、３Ｄシーンを編集してもよい。マンハッタンフレーム（群）と投影（群）によって、２Ｄスケッチを意図した３Ｄジオメトリに変換することができる。
【００５５】
そのような応用は先行技術で知られている。
【００５６】
図１は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【００５７】
本例のクライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０、および同じくバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィックス処理装置（ＧＰＵ）１１１０を備える。ビデオＲＡＭ１１００は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ１０２０は、ハードドライブ１０３０などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスク１０４０を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置１０９０を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御装置は、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび／または感知スクリーンを備えてもよい。
【００５８】
ここで本方法の例について、図２〜図２７を参照して説明する。所定のタイプは、マンハッタンタイプ、アトランタタイプ、およびマンハッタンタイプでもアトランタタイプでもないタイプを含む。
【００５９】
例における本方法は、２Ｄ写真の配置タイプ、すなわちマンハッタンタイプ、アトランタタイプ、または、その他のタイプを認識するように設計された人工ニューラルネットワークを扱う。より具体的には、人工ニューラルネットワークは、それが用いられる前に訓練されてもよい。
【００６０】
大まかに言えば、ニューラルネットワークは、２つの特徴、すなわち、トポロジーと重みによって定義される。トポロジーは、接続された演算ユニットからなるシステムであり、その設計は任意のタイプのものでよい。各演算ユニットは、それに対する入力数値データの重み付けされた組み合せを出力し、この結果を、指示された接続に従って、隣接する演算ユニットに送る。データは、最初のデータを与えられた最初のユニットから終端のユニットまで流れ、これにより出力数値結果が得られる。
【００６１】
数値の組み合わせは、重みと呼ばれる数値係数を用いて実行してもよい。最初、重みの値は未知であり、ニューラルネットワークの目的、すなわち、２Ｄ画像の配置タイプを認識するという目的に応じて、調整してもよい。この調整ステップは、訓練と呼ばれる。ニューラルネットワークを訓練するためには、訓練パターンのサンプルが必要である。訓練パターンは、整合性のある入力データと出力データの対である。この情報を用いて、専用アルゴリズムが、重みの値を算出することができる。
【００６２】
訓練プロセスのボトルネックは、訓練パターンの適切なサンプルである。ニューラルネットワークが堅牢で正確であるように、サンプルは非常に数が多く精密であってもよい。視野画像認識の文脈において、訓練パターンのサンプルは、先行技術において、ユーザが画像を見て透視画像のタイプを認識することによって準備されることがある。この手動プロセスにより、数千の訓練パターンが生成される。
【００６３】
訓練パターンを準備するための人間の認識は、数千の要素を提供するが、これでは数が少な過ぎる。このプロセスは長くて冗長であり、貧弱な訓練データベースしか提供しない。以下の条件でテストが行われた。２人のユーザがワールドワイドウェブから３７１２２枚の画像を集め、それぞれの配置タイプを認識した。認識したすべてのタイプのうち、１４４９１枚が正しかった。これらの正しかったタイプのうち、１１７９０枚がマンハッタンタイプ、９９５枚がアトランタタイプ、そして１７０６枚がその他のタイプであった。これは、人間の認識が間違いを起こしやすく、均一な再割り当てを提供しないことを示している。この材料で訓練されたニューラルネットワークは十分に効率的ではない。
【００６４】
例における本方法は、２Ｄ写真の配置タイプの認識専用のニューラルネットワークを訓練するために訓練パターンを準備するプロセスを提供する。例における本方法は、現実の３Ｄシーンのマンハッタンタイプの写真を利用する。原則は、これらのマンハッタンタイプの写真に仮想３Ｄオブジェクトを挿入することである。３Ｄオブジェクトを適切に挿入することにより、別のマンハッタンタイプの画像、新たなアトランタタイプの画像、あるいは新たな「他のタイプ」の画像を生成することができる。したがって、挿入されたオブジェクトを自動的に変化させることによって、２Ｄ画像の任意の大きな集合およびその配置タイプを作成することができる。
【００６５】
ニューラルネットワークの定義の例
ニューラルネットワークは、式として、６つ組の
【数１】
2019091436.tif 000002
により定義してもよく、ここで、
【数２】
2019091436.tif 000003
はニューロンの集合であり、
【数３】
2019091436.tif 000004
は有向接続の集合であり、マッピング
【数４】
2019091436.tif 000005
は接続の開始ニューロンを表し、マッピング
【数５】
2019091436.tif 000006
は接続の終了ニューロンを表し、マッピング
【数６】
2019091436.tif 000007
は数値重みを各接続に関連付け、
【数７】
2019091436.tif 000008
は活性化関数と呼ばれる。
【００６６】
これは、接続
【数８】
2019091436.tif 000009
の開始ニューロンが
【数９】
2019091436.tif 000010
であり、終了ニューロンが
【数１０】
2019091436.tif 000011
であり、その重みが
【数１１】
2019091436.tif 000012
であることを意味する。さらには、ニューロン
【数１２】
2019091436.tif 000013
の入力接続の集合は
【数１３】
2019091436.tif 000014
であり、ニューロン
【数１４】
2019091436.tif 000015
の出力接続の集合は、
【数１５】
2019091436.tif 000016
である。同様に、ニューロン
【数１６】
2019091436.tif 000017
の内向きニューロン
【数１７】
2019091436.tif 000018
は
【数１８】
2019091436.tif 000019
の入力接続の開始ニューロンであり、すなわち、
【数１９】
2019091436.tif 000020
である。ニューラルネットワークのトポロジーは、ニューロンと接続
【数２０】
2019091436.tif 000021
によって定義される。
【００６７】
定義上、活性化関数は、ネットワーク内の情報伝播の非線形閾値効果を捕捉する。テキストＫｒｉｅｓｅｌ  Ｄａｖｉｄ，Ａ  ｂｒｉｅｆ  ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，２００６に記載のように、典型的な活性化関数は
【数２１】
2019091436.tif 000022
である。
【００６８】
数学的観点からは、ニューラルネットワークは、活性化関数に関連付けられた加重弧を有する有向グラフである。
【００６９】
定義上、入力ニューロン
【数２２】
2019091436.tif 000023
は入力接続を持たず、これは
【数２３】
2019091436.tif 000024
を意味し、出力ニューロン
【数２４】
2019091436.tif 000025
は出力接続を持たず、これは
【数２５】
2019091436.tif 000026
を意味する。
【００７０】
各ニューロン
【数２６】
2019091436.tif 000027
は、次のような意味で、演算ユニットのように振る舞う。出力数値
【数２７】
2019091436.tif 000028
は、その内向きニューロンの数値を以下の式に従って組み合わせることによって算出できる。
【数２８】
2019091436.tif 000029
【００７１】
値
【数２９】
2019091436.tif 000030
は、プロパゲーション値と呼ばれる。これはニューロン
【数３０】
2019091436.tif 000031
で終了するすべての接続
【数３１】
2019091436.tif 000032
の開始ニューロン
【数３２】
2019091436.tif 000033
によって算出される数値の重み付け合計である。値
【数３３】
2019091436.tif 000034
は、プロパゲーション値
【数３４】
2019091436.tif 000035
に適用される閾値効果
【数３５】
2019091436.tif 000036
である。この数式は再帰的に定義され、順序の問題は、トポロジーを通じて対処される。図２は、ニューロン５での３つの内向きニューロン１、２、および３からの演算を示す。
【００７２】
ニューラルネットワークの非常に一般的なトポロジーは、Ｋｒｉｅｓｅｌ  ＤａｖｉｄによるテキストＡ  ｂｒｉｅｆ  ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，２００６で提示されているようなフィードフォワードモデルである。ニューロンの集合は、層
【数３６】
2019091436.tif 000037
と呼ばれる順序付けされた互いに素な部分集合から構成され、ここで
【数３７】
2019091436.tif 000038
は、入力層（入力ニューロンの層）と呼ばれ、
【数３８】
2019091436.tif 000039
は、隠れ層と呼ばれ、
【数３９】
2019091436.tif 000040
は、出力層（出力ニューロンの層）と呼ばれる。層
【数４０】
2019091436.tif 000041
の各ニューロンから層
【数４１】
2019091436.tif 000042
のすべてのニューロンへの接続が存在する。層
【数４２】
2019091436.tif 000043
の各ニューロンから、
【数４３】
2019091436.tif 000044
である層
【数４４】
2019091436.tif 000045
のすべてのニューロンへの接続が存在する。最後の隠れ層
【数４５】
2019091436.tif 000046
の各ニューロンから出力層
【数４６】
2019091436.tif 000047
のすべてのニューロンへの接続が存在する。フィードフォワードニューラルネットワークの文脈では、特定の活性化関数を各層に関連付けることができる。
【００７３】
図３は、２つの隠れ層を特徴とするフィードフォワードニューラルネットワークを示す。入力ニューロンは、入力矢印で記号化されている。出力ニューロンは、出力矢印で記号化されている。
【００７４】
明らかに、フィードフォワードニューラルネットワークは非周期的である。したがって、入力ニューロンに数値
【数４７】
2019091436.tif 000048
を設定することは、すべての
【数４８】
2019091436.tif 000049
について
【数４９】
2019091436.tif 000050
であることを意味し、層から層へと演算を伝播することにより、出力ニューロンにより算出された数値
【数５０】
2019091436.tif 000051
が得られる。フィードフォワードニューラルネットワークを通じて
【数５１】
2019091436.tif 000052
から
【数５２】
2019091436.tif 000053
を算出するマッピングは
【数５３】
2019091436.tif 000054
と表され、ここで、
【数５４】
2019091436.tif 000055
は入力ニューロンの個数であり、
【数５５】
2019091436.tif 000056
は出力ニューロンの個数である。
ニューラルネットワーク訓練の例
【００７５】
フィードフォワードニューラルネットワークのトポロジーが与えられ、その活性化関数（群）が与えられると、ニューラルネットワーク訓練ステップの目的は、重みマッピング
【数５６】
2019091436.tif 000057
を算出することであってもよい。この目的のため、訓練パターンの集合が必要となる。訓練パターンは、組
【数５７】
2019091436.tif 000058
となる。この組は、入力データ
【数５８】
2019091436.tif 000059
が供給されたときにニューラルネットワークが算出すると考えらえる出力データ
【数５９】
2019091436.tif 000060
を表す。入力と出力は別の手段により算出され、これらは「入力が
【数６０】
2019091436.tif 000061
の場合、ニューラルネットワークは必ず
【数６１】
2019091436.tif 000062
を出力する」ということを表す。
【数６２】
2019091436.tif 000063
個の訓練パターンの集合
【数６３】
2019091436.tif 000064
が与えられたとき、
【数６４】
2019091436.tif 000065
が
【数６５】
2019091436.tif 000066
について可能な限り
【数６６】
2019091436.tif 000067
に近づくように、専用のアルゴリズムを用いて重みマッピングを調整する。この目的のための典型的なアルゴリズムは、Ｋｒｉｅｓｅｌ  ＤａｖｉｄによるテキストＡ  ｂｒｉｅｆ  ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，２００６で提示されているようなバックプロパゲーションである。数学的観点からは、これはマッピング
【数６７】
2019091436.tif 000068
を算出する補間問題である。
【００７６】
図４は、ニューラルネットワークの実行ステップ対訓練ステップの例を示す。
分類ニューラルネットワークの訓練の例
【００７７】
ニューラルネットワークは、特に分類に用いられてもよい。３Ｄデータの
【数６８】
2019091436.tif 000069
個のタイプの有限集合が与えられたとき、目的は、ニューラルネットワークが、未知の入力データがどのタイプに属するかを認識することである。分類ニューラルネットワークは、タイプごとに１つの出力ニューロンを特徴としてもよい。数値出力値は区間
【数６９】
2019091436.tif 000070
における
【数７０】
2019091436.tif 000071
個のベクトル
【数７１】
2019091436.tif 000072
であってもよい。各数
【数７２】
2019091436.tif 000073
は、入力データがタイプ
【数７３】
2019091436.tif 000074
のデータである確率である。典型的な訓練パターンは、
【数７４】
2019091436.tif 000075
かつ
【数７５】
2019091436.tif 000076
のとき
【数７６】
2019091436.tif 000077
であるような出力ベクトルを有する、既知のタイプ
【数７７】
2019091436.tif 000078
の入力データであってもよい。
画像定義の例、およびエッジ画素の算出
【００７８】
２Ｄ写真は、点、画素、および、各画素に付加された色情報の、２Ｄグリッドであってもよい。これは、インデックス
【数７８】
2019091436.tif 000079
のグリッド、２Ｄ座標をインデックス
【数７９】
2019091436.tif 000080
に関連付ける位置マッピング
【数８０】
2019091436.tif 000081
および、色マッピング
【数８１】
2019091436.tif 000082
によって捕捉されてもよく、ここで、
【数８２】
2019091436.tif 000083
はすべての色の集合であり、これは、
【数８３】
2019091436.tif 000084
がすべての
【数８４】
2019091436.tif 000085
について画素
【数８５】
2019091436.tif 000086
の色であることを意味する。エッジ画素算出のための関連するグラフィック情報は、輝度であってもよい。これは、画素テーブル
【数８６】
2019091436.tif 000087
から、負でない数の集合
【数８７】
2019091436.tif 000088
へのマッピング
【数８８】
2019091436.tif 000089
を定義してもよく、これはすなわち
【数８９】
2019091436.tif 000090
である。画素
【数９０】
2019091436.tif 000091
における輝度変数
【数９１】
2019091436.tif 000092
は、マッピング
【数９２】
2019091436.tif 000093
の（離散的な）勾配の大きさにより定義されてもよく、これはすなわち、
【数９３】
2019091436.tif 000094
である。閾値
【数９４】
2019091436.tif 000095
が与えられたとき、画素
【数９５】
2019091436.tif 000096
は、その輝度変数が閾値よりも大きいとき、すなわち、
【数９６】
2019091436.tif 000097
のとき、エッジ画素と呼ばれてもよい。３Ｄシーンの写真上のエッジ画素の算出は、Ｌｕ  Ｗａｎｇ、Ｓｕｙａ  Ｙｏｕ、Ｕｌｒｉｃｈ  Ｎｅｕｍａｎｎによる論文Ｓｕｐｐｏｒｔｉｎｇ  ｒａｎｇｅ  ａｎｄ  ｓｅｇｍｅｎｔ−ｂａｓｅｄ  ｈｙｓｔｅｒｅｓｉｓ  ｔｈｒｅｓｈｏｌｄｉｎｇ  ｉｎ  ｅｄｇｅ  ｄｅｔｅｃｔｉｏｎ，ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  ２００８に記載のアルゴリズムなど、任意のアルゴリズムによって実行されてもよい。
【００７９】
特徴線分算出の例
次に、極大線分を、ほぼアラインしたエッジ点の集合にフィッティングしてもよい。特徴線分は、所定の閾値よりも長いことを特徴とする線分であってもよい。
【００８０】
特徴線分の算出は、専用のアルゴリズムを用いて行ってもよい。アルゴリズムの核心は、エッジ画素で始まりほぼアラインした隣接エッジ画素の最大の集合を算出することであってもよい。ほぼアラインした画素の集合を近似する線分は、それが十分な数の画素を含み、当該画素がその線から離れ過ぎていない場合には、有意であると見なされてもよい。
【００８１】
定式化したアルゴリズムの例をここで説明する。
【数９７】
2019091436.tif 000098
は、すべてのエッジ画素の（入力）集合を表し、
【数９８】
2019091436.tif 000099
は特徴線分の（出力集合）を表す。集合
【数９９】
2019091436.tif 000100
はアラインしていると考えらえる画素の現在の集合を表す。集合
【数１００】
2019091436.tif 000101
は隣接画素の現在の集合を表す。
【数１０１】
2019091436.tif 000102
【００８２】
関数
【数１０２】
2019091436.tif 000103
は、入力エッジ画素
【数１０３】
2019091436.tif 000104
の隣接エッジ画素を出力する。隣接エッジ画素は、図５に示されるような８隣接画素ストラテジーに従って検索する。エッジ画素は黒い正方形である。画素Ｘの隣接画素は画素番号１〜８である。
エッジ画素Ｘの隣接エッジ画素は画素番号１、５、６、および８である。
【００８３】
関数
【数１０４】
2019091436.tif 000105
は画素の集合
【数１０５】
2019091436.tif 000106
に対する最適線
【数１０６】
2019091436.tif 000107
の平均二乗偏差である。関数
【数１０７】
2019091436.tif 000108
は、画素
【数１０８】
2019091436.tif 000109
から線
【数１０９】
2019091436.tif 000110
までの距離を出力する。関数
【数１１０】
2019091436.tif 000111
は、集合
【数１１１】
2019091436.tif 000112
の要素の個数を出力する。
【００８４】
閾値
【数１１２】
2019091436.tif 000113
は、最大二乗平均偏差であり、典型的な値は
【数１１３】
2019091436.tif 000114
である。閾値
【数１１４】
2019091436.tif 000115
は画素から線までの最大距離であり、典型的な値は
【数１１５】
2019091436.tif 000116
である。閾値
【数１１６】
2019091436.tif 000117
は特徴線分を生成する画素の最小個数であり、典型的な値は
【数１１７】
2019091436.tif 000118
である。
円錐視野：３Ｄシーンから画像まで
視野のジオメトリ
【００８５】
３Ｄシーン
【数１１８】
2019091436.tif 000119
を３次元空間
【数１１９】
2019091436.tif 000120
の部分集合と考え、画像平面と呼ばれる平面
【数１２０】
2019091436.tif 000121
の一部と、観察者位置またはカメラ位置と呼ばれる点
【数１２１】
2019091436.tif 000122
とを考える。画像平面の法線ベクトルを
【数１２２】
2019091436.tif 000123
で表す。カメラは、３Ｄシーン
【数１２３】
2019091436.tif 000124
を、円錐視野にしたがい、画像平面
【数１２４】
2019091436.tif 000125
を通して感知する。これは、３Ｄシーンの各点
【数１２５】
2019091436.tif 000126
が、画像平面上に、画像点と呼ばれる対応する点
【数１２６】
2019091436.tif 000127
を以下のように生成することを意味する。定義上、画像点
【数１２７】
2019091436.tif 000128
は、図６に示すように、画像平面
【数１２８】
2019091436.tif 000129
と、
【数１２９】
2019091436.tif 000130
および
【数１３０】
2019091436.tif 000131
を通る線との交点である。
【００８６】
数式は以下のとおりである。
【数１３１】
2019091436.tif 000132
隠れた部分対可視部分
【００８７】
このジオメトリ的定義を超えて、３Ｄシーンの隠れた部分と可視部分を定義してもよい。３Ｄシーン
【数１３２】
2019091436.tif 000133
の数学的画像は
【数１３３】
2019091436.tif 000134
であり、これは平面
【数１３４】
2019091436.tif 000135
に含まれる。各点
【数１３５】
2019091436.tif 000136
に関して、同じ画像点Ｚ
【数１３６】
2019091436.tif 000137
を共有する３Ｄシーンにおける点の集合を考える。これは次のように表される。
【数１３７】
2019091436.tif 000138
【００８８】
一般的に、
【数１３８】
2019091436.tif 000139
は複数の点を含むが、１点のみが
【数１３９】
2019091436.tif 000140
から可視であり、これは以下のように定式化してもよい。定義上、点
【数１４０】
2019091436.tif 000141
から可視である点は、
【数１４１】
2019091436.tif 000142
で表され、これは
【数１４２】
2019091436.tif 000143
に最も近い点
【数１４３】
2019091436.tif 000144
であり、これは以下のように表される。
【数１４４】
2019091436.tif 000145
【００８９】
図７において
【数１４５】
2019091436.tif 000146
であり、また
【数１４６】
2019091436.tif 000147
について
【数１４７】
2019091436.tif 000148
であるため、
【数１４８】
2019091436.tif 000149
から可視である点は、点
【数１４９】
2019091436.tif 000150
である。
【００９０】
３Ｄシーン
【数１５０】
2019091436.tif 000151
における可視の部分
【数１５１】
2019091436.tif 000152
は、すべての可視点の集合、すなわち
【数１５２】
2019091436.tif 000153
である。
【００９１】
最後に、定義上、３Ｄシーン
【数１５３】
2019091436.tif 000154
の円錐視野
【数１５４】
2019091436.tif 000155
は、マッピング
【数１５５】
2019091436.tif 000156
を通した可視点
【数１５６】
2019091436.tif 000157
の画像であり、すなわち
【数１５７】
2019091436.tif 000158
である。
【００９２】
図８は、２つの矩形ブロックからなる３Ｄシーン
【数１５８】
2019091436.tif 000159
を示す。可視部分
【数１５９】
2019091436.tif 000160
は、太線を含む。隠れた部分は点線である。
消失点
【００９３】
画像平面と平行でない同一の方向
【数１６０】
2019091436.tif 000161
を共有する３Ｄシーンの２本の線を考える。それぞれの円錐視野は、
【数１６１】
2019091436.tif 000162
だけに依存して線の位置には依存しない点において交差する、２本の線であることが証明され得る。この点は消失点と呼ばれ、
【数１６２】
2019091436.tif 000163
として算出される。方向
【数１６３】
2019091436.tif 000164
が画像平面と平行の場合、その円錐視野も方向
【数１６４】
2019091436.tif 000165
の線であることが証明され得る。したがって、画像平面に平行な３Ｄシーンの線は、消失点を生成しない。
【００９４】
図９は、矩形ブロック（太線）の円錐画像の３つの消失点
【数１６５】
2019091436.tif 000166
【数１６６】
2019091436.tif 000167
および
【数１６７】
2019091436.tif 000168
を示す。
【００９５】
図１０は、視野画像の２つの消失点を示す。ブロックの鉛直線は画像平面に平行であるため、消失点を生成しない。
【００９６】
２Ｄ画像から３Ｄシーンへ：マンハッタンフレーム仮説
２Ｄ画像を入力データとして考えると、ここで問題となり得るのは、画像平面に対するカメラ位置
【数１６８】
2019091436.tif 000169
を算出することである。これは、３Ｄシーンの３Ｄオブジェクトについて十分な情報がない限り、一般的には不可能である。例における本方法の文脈において、適切な３Ｄオブジェクトは、立方体またはアラインした矩形の集合で記号化された、直交グリッドであってもよい。これはＪ．Ｍ．ＣｏｕｇｈｌａｎおよびＡ．Ｌ．Ｙｕｉｌｌｅによる論文、Ｍａｎｈａｔｔａｎ  Ｗｏｒｌｄ：Ｃｏｍｐａｓｓ  Ｄｉｒｅｃｔｉｏｎ  ｆｒｏｍ  ａ  Ｓｉｎｇｌｅ  Ｉｍａｇｅ  ｂｙ  Ｂａｙｅｓｉａｎ  Ｉｎｆｅｒｅｎｃｅ，Ｐｒｏｃｅｅｄｉｎｇｓ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ＩＣＣＶ’９９．Ｃｏｒｆｕ，Ｇｒｅｅｃｅ，１９９９で提案されている、公知のマンハッタンフレーム仮説である。
【００９７】
背景技術において、マンハッタンフレーム仮説が２Ｄ視野の観点から定式化されている。
【００９８】
３Ｄシーン
【数１６９】
2019091436.tif 000170
は、前のセクションで定義したように、円錐視野
【数１７０】
2019091436.tif 000171
が直交グリッドに合わせてアラインされた３Ｄオブジェクトの視野のみを含むように、平面
【数１７１】
2019091436.tif 000172
と点
【数１７２】
2019091436.tif 000173
を有する２Ｄ画像で表される場合、例における本方法で企図されている分類を行う目的で、Ｍａｎｈａｔｔａ３Ｄシーンとみなされてもよい。これはすなわち、３Ｄシーンは、カーブオブジェクトのアラインされていないオブジェクトが含まれていてもよいが、それらはアラインされたオブジェクトに隠されているか、あるいは
【数１７３】
2019091436.tif 000174
および
【数１７４】
2019091436.tif 000175
で定義された範囲外にあることを意味する。
２Ｄ画像から３Ｄシーンへ：マンハッタンフレームの算出
【００９９】
以下、消失点とカメラ位置との関係について説明する。
【数１７５】
2019091436.tif 000176
であるため
【数１７６】
2019091436.tif 000177
であり、これはカメラ
【数１７７】
2019091436.tif 000178
から消失点
【数１７８】
2019091436.tif 000179
への、方向
【数１７９】
2019091436.tif 000180
によって定義される線は、方向
【数１８０】
2019091436.tif 000181
に平行であることを意味する。この性質のおかげで、また３Ｄ立方体の方向が互いに直交することが分かっているおかげで、カメラ位置
【数１８１】
2019091436.tif 000182
は非線形システムの解となる：
【数１８２】
2019091436.tif 000183
【０１００】
これは、カメラ位置を算出する簡単な方法を提供する。その結果、３Ｄ立方体のエッジ方向は、
【数１８３】
2019091436.tif 000184
について、
【数１８４】
2019091436.tif 000185
となる。これは図１１に示されている。
【０１０１】
実際、例における本方法は、マンハッタンフレームを算出するのに、Ｐａｔｒｉｃｋ  Ｄｅｎｉｓ、Ｊａｍｅｓ  Ｈ．Ｅｌｄｅｒ、およびＦｒａｎｃｉｓｃｏ  Ｊ．Ｅｓｔｒａｄａによる論文Ｅｆｆｉｃｉｅｎｔ  Ｅｄｇｅ−Ｂａｓｅｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｅｓｔｉｍａｔｉｎｇ  Ｍａｎｈａｔｔａｎ  Ｆｒａｍｅｓ  ｉｎ  Ｕｒｂａｎ  Ｉｍａｇｅｒｙ，Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ２００８，Ｐａｒｔ  ＩＩ，ＬＮＣＳ  ５３０３，ｐｐ．１９７−２１０，２００８を利用している。このアルゴリズムは、上述のジオメトリ的原理に基づいており、統計的演算のため堅牢である。主なステップは図１２に記載されている。図１３は当該アルゴリズムの応用を示している。
仮想追加３Ｄオブジェクトを２Ｄ画像に挿入する例
【０１０２】
先に説明したように、グリッド状のオブジェクトの円錐視野が与えられたとき、画像平面
【数１８５】
2019091436.tif 000186
およびカメラ位置
【数１８６】
2019091436.tif 000187
への法線ベクトル
【数１８７】
2019091436.tif 000188
を知り得るので、マッピング
【数１８８】
2019091436.tif 000189
が容易に設定できる。さらに、上に定義したように、ベクトル
【数１８９】
2019091436.tif 000190
【数１９０】
2019091436.tif 000191
および
【数１９１】
2019091436.tif 000192
からなるマンハッタンフレームと呼ばれる軸系を、３Ｄシーンのグリッド状のオブジェクトに付与することができる。このマンハッタンフレームのおかげで、追加の仮想オブジェクトを３Ｄシーン内に仮想的に配置することができる。円錐視野に対するこの仮想３Ｄオブジェクトのジオメトリ的寄与度は、マッピング
【数１９２】
2019091436.tif 000193
を用いて算出することができる。全体的なデータフローは図１４に示されている。
【０１０３】
マンハッタン視野対アトランタ視野
マンハッタンタイプの３Ｄシーンは、矩形グリッドに応じて配置された特徴線を特徴とする。一般的に、矩形グリッドの一方向は画像平面に平行であり、この方向は建築写真を扱う場合には伝統的に鉛直方向である。
【０１０４】
図１５は、３つのアラインされたブロックからなる３Ｄシーンの典型的なマンハッタン画像を示す。消失点は
【数１９３】
2019091436.tif 000194
と
【数１９４】
2019091436.tif 000195
である。３Ｄシーンの鉛直線は画像平面に平行であるので、それらの画像も鉛直線である。
【０１０５】
逆に、アトランタタイプの３Ｄシーンは、すべての矩形グリッドが一方向を共有するように、少なくとも２つのアラインしていない矩形グリッドに合わせて配置された特徴線を含む。共有される方向は、一般に鉛直方向である。
【０１０６】
図１６は、画像平面
【数１９５】
2019091436.tif 000196
およびカメラ位置
【数１９６】
2019091436.tif 000197
とともに、アラインされていない２つのブロックを示す。図面の描写平面は、画像平面
【数１９７】
2019091436.tif 000198
に直交する。平行線
【数１９８】
2019091436.tif 000199
および
【数１９９】
2019091436.tif 000200
に対応する消失点は
【数２００】
2019091436.tif 000201
である。平行線
【数２０１】
2019091436.tif 000202
および
【数２０２】
2019091436.tif 000203
に対応する消失点は
【数２０３】
2019091436.tif 000204
である。平行線
【数２０４】
2019091436.tif 000205
および
【数２０５】
2019091436.tif 000206
に対応する消失点は
【数２０６】
2019091436.tif 000207
である。各消失点
【数２０７】
2019091436.tif 000208
は、画像平面
【数２０８】
2019091436.tif 000209
と
【数２０９】
2019091436.tif 000210
から方向
【数２１０】
2019091436.tif 000211
への線との交点である。一番右のブロックの水平線は、画像平面に平行であるため、消失点を生成しない。
【０１０７】
図１７は、アラインしていない２つのブロックの円錐斜視図を示す。これは、２つのブロックが一方向（鉛直方向）を共有しつつアラインしていないため、アトランタタイプの画像である。
その他のタイプの配置（すなわちマンハッタンタイプでもアトランタでもないタイプ）
【０１０８】
画像がマンハッタンタイプの画像でもアトランタタイプの画像でもない場合、画像が「その他のタイプ」の斜視図であると言われる。それは、全く方向を共有しない少なくとも２つのマンハッタングリッドか、あるいは特徴線を全く備えていない歪んだ視野によって特徴付けられる。
【０１０９】
図１８は、「その他のタイプ」の画像のアラインされていないオブジェクトを示す。
【０１１０】
図１９は、歪んだ「その他のタイプ」の画像を示す。
【数２１１】
2019091436.tif 000212
を、歪む画像の全ての画素位置を含む矩形であるとする。歪みは、入力画像（典型的にはマンハッタン画像）を歪みマッピング
【数２１２】
2019091436.tif 000213
で構成することによって得られる。マッピング
【数２１３】
2019091436.tif 000214
は、歪み画像が最初の画像の矩形を含むようなもの、すなわち
【数２１４】
2019091436.tif 000215
である。
【０１１１】
元の画像の画素
【数２１５】
2019091436.tif 000216
は、
【数２１６】
2019091436.tif 000217
に位置する。これは、マッピング
【数２１７】
2019091436.tif 000218
により位置
【数２１８】
2019091436.tif 000219
に移動させられる。したがって点
【数２１９】
2019091436.tif 000220
における歪み画像が有すると考えられる色は、ソース画素
【数２２０】
2019091436.tif 000221
の色
【数２２１】
2019091436.tif 000222
である。
【数２２２】
2019091436.tif 000223
上ですべての
【数２２３】
2019091436.tif 000224
について
【数２２４】
2019091436.tif 000225
を補間する色マッピング
【数２２５】
2019091436.tif 000226
を考える。すると、
【数２２６】
2019091436.tif 000227
上の歪み画像の色マッピング
【数２２７】
2019091436.tif 000228
は、
【数２２８】
2019091436.tif 000229
であり、
【数２２９】
2019091436.tif 000230
である。
【０１１２】
典型的なマッピングは、次のような放射状の歪みである：
【数２３０】
2019091436.tif 000231
【０１１３】
ここで
【数２３１】
2019091436.tif 000232
は、区間
【数２３２】
2019091436.tif 000233
から選択される。係数
【数２３３】
2019091436.tif 000234
は、各歪み画像を生成するために、この区間からランダムに選択される。このマッピングは、
【数２３４】
2019091436.tif 000235
を中心とする画像に適用される。
【０１１４】
図２０は、矩形グリッドに対する放射状の歪み効果を示す。直線は曲線へと変わり、それによりマンハッタン構造が削除される。
【０１１５】
訓練パターンの構築例
例において、訓練パターン生成プロセスは、次のようなものであってもよく、図２１に示すようなものであってよい。入力はマンハッタンタイプの画像の集合である。出力は、マンハッタンタイプの画像、アトランタタイプの画像、および、それぞれのタイプに関連付けられた他のタイプの画像の、データベースである。マンハッタンタイプの画像が与えられると、（仮想の）矩形オブジェクトを３Ｄシーン内に（仮想的に）挿入し、２Ｄ写真に対するその寄与度を算出することによって、新たな画像が得られる。挿入されたオブジェクトがマンハッタンフレームとアラインすると、新たなマンハッタン画像が得られる。挿入されたオブジェクトがマンハッタンフレームと１方向のみ共有する場合には、新たなアトランタ画像が得られる。挿入されたオブジェクトがマンハッタンフレームと１方向も共有しない場合には、新たな他のタイプの画像が得られる。他のタイプの画像を作成する別の方法は、特徴線が１つも認識できないように、入力マンハッタン画像を歪ませることである。データベースにおいて、結果として得られた各タイプ（マンハッタン、アトランタ、あるいは他のタイプ）に関連付けられた画像は、ネットワーク訓練に有用な、入力および出力データを提供する。
【０１１６】
図２２は、マンハッタン画像を示す。図２３は、マンハッタンフレームとアラインする仮想オブジェクトを挿入することによって得られた新たなマンハッタン画像を示す。
【０１１７】
図２４は、マンハッタン画像を示す。図２５は、マンハッタンフレームとアラインせず、鉛直方向を共有する仮想オブジェクトを挿入することによって得られた新たなアトランタ画像を示す。
【０１１８】
図２６〜図２７は、マンハッタン画像から得られた「他のタイプ」の歪んだ画像を示す。
【図１】
2019091436.tif 000236
【図２】
2019091436.tif 000237
【図３】
2019091436.tif 000238
【図４】
2019091436.tif 000239
【図５】
2019091436.tif 000240
【図６】
2019091436.tif 000241
【図７】
2019091436.tif 000242
【図８】
2019091436.tif 000243
【図９】
2019091436.tif 000244
【図１０】
2019091436.tif 000245
【図１１】
2019091436.tif 000246
【図１２】
2019091436.tif 000247
【図１３】
2019091436.tif 000248
【図１４】
2019091436.tif 000249
【図１５】
2019091436.tif 000250
【図１６】
2019091436.tif 000251
【図１７】
2019091436.tif 000252
【図１８】
2019091436.tif 000253
【図１９】
2019091436.tif 000254
【図２０】
2019091436.tif 000255
【図２１】
2019091436.tif 000256
【図２２】
2019091436.tif 000257
【図２３】
2019091436.tif 000258
【図２４】
2019091436.tif 000259
【図２５】
2019091436.tif 000260
【図２６】
2019091436.tif 000261
【図２７】
2019091436.tif 000262
【外国語明細書】
2019091436.tif 000263
2019091436.tif 000264
2019091436.tif 000265
2019091436.tif 000266
2019091436.tif 000267
2019091436.tif 000268
2019091436.tif 000269
2019091436.tif 000270
2019091436.tif 000271
2019091436.tif 000272
2019091436.tif 000273
2019091436.tif 000274
2019091436.tif 000275
2019091436.tif 000276
2019091436.tif 000277
2019091436.tif 000278
2019091436.tif 000279
2019091436.tif 000280
2019091436.tif 000281
2019091436.tif 000282
2019091436.tif 000283
2019091436.tif 000284
2019091436.tif 000285
2019091436.tif 000286
2019091436.tif 000287
2019091436.tif 000288
2019091436.tif 000289
2019091436.tif 000290
2019091436.tif 000291
2019091436.tif 000292
2019091436.tif 000293
2019091436.tif 000294
2019091436.tif 000295
【図１】
2019091436.tif 000296
【図２】
2019091436.tif 000297
【図３】
2019091436.tif 000298
【図４】
2019091436.tif 000299
【図５】
2019091436.tif 000300
【図６】
2019091436.tif 000301
【図７】
2019091436.tif 000302
【図８】
2019091436.tif 000303
【図９】
2019091436.tif 000304
【図１０】
2019091436.tif 000305
【図１１】
2019091436.tif 000306
【図１２】
2019091436.tif 000307
【図１３】
2019091436.tif 000308
【図１４】
2019091436.tif 000309
【図１５】
2019091436.tif 000310
【図１６】
2019091436.tif 000311
【図１７】
2019091436.tif 000312
【図１８】
2019091436.tif 000313
【図１９】
2019091436.tif 000314
【図２０】
2019091436.tif 000315
【図２１】
2019091436.tif 000316
【図２２】
2019091436.tif 000317
【図２３】
2019091436.tif 000318
【図２４】
2019091436.tif 000319
【図２５】
2019091436.tif 000320
【図２６】
2019091436.tif 000321
【図２７】
2019091436.tif 000322