(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-30
(45)【発行日】2023-07-10
(54)【発明の名称】部屋レイアウト推定方法および技法
(51)【国際特許分類】
G06T 7/00 20170101AFI20230703BHJP
G06V 10/82 20220101ALI20230703BHJP
G06N 3/04 20230101ALI20230703BHJP
G06N 3/08 20230101ALI20230703BHJP
【FI】
G06T7/00 350C
G06V10/82
G06N3/04
G06N3/08
(21)【出願番号】P 2022137791
(22)【出願日】2022-08-31
(62)【分割の表示】P 2021131087の分割
【原出願日】2018-03-16
【審査請求日】2022-08-31
(32)【優先日】2017-03-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】チェン-ユー リー
(72)【発明者】
【氏名】ヴィジャイ バドリナラヤナン
(72)【発明者】
【氏名】トマシュ マリシーウィッツ
(72)【発明者】
【氏名】アンドリュー ラビノビッチ
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2014-220804(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06V 10/82
G06N 3/04
G06N 3/08
G06N 3/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
部屋のレイアウトを推定するための方法であって、前記方法は、
部屋のレイアウトの推定のための部屋画像にアクセスすることと、
部屋のレイアウトを推定するためのニューラルネットワークのエンコーダ-デコーダサブネットワークおよび前記部屋画像を使用して、複数の部屋タイプに対応する複数の予測される2次元(2D)特徴点マップを決定することと、
前記エンコーダ-デコーダサブネットワーク、前記エンコーダ-デコーダサブネットワークに接続される前記ニューラルネットワークの分類子サブネットワーク、および前記部屋画像を使用して、予測される部屋タイプを前記複数の部屋タイプから決定することと、
前記複数の予測される2D特徴点マップおよび前記予測される部屋タイプを使用して、前記予測される部屋タイプと関連付けられた複数の順序付けられた特徴点を決定することと、
前記複数の順序付けられた特徴点を使用して、前記部屋画像内の前記部屋の予測されるレイアウトを決定することと
を含む、方法。
【請求項2】
前記複数の部屋タイプ内の各部屋タイプは、部屋タイプ特徴点の順序付けられたセットを含む、請求項1に記載の方法。
【請求項3】
前記複数の部屋タイプ内の各部屋タイプは、前記部屋タイプ内の領域に関する意味論セグメント化を含み、前記意味論セグメント化は、床、天井、または壁としての識別を含む、請求項2に記載の方法。
【請求項4】
第1の特徴点順序は、前記複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、前記複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、前記第1の特徴点順序および前記第2の特徴点順序は、異なる、請求項2または請求項3に記載の方法。
【請求項5】
前記部屋画像の次元は、前記予測される2D特徴点マップの次元より大きい、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記エンコーダ-デコーダサブネットワークは、
複数の畳み込み層および複数のプーリング層を含むエンコーダサブネットワーク、
複数の畳み込み層および複数のアップサンプリング層を含むデコーダサブネットワーク、
メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワーク、または、
複数の再帰層
を備える、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記複数の再帰層の再帰反復数は、2または少なくとも3である、請求項6に記載の方法。
【請求項8】
前記複数の再帰層はそれぞれ、加重行列を有し、前記加重行列は、前記複数の再帰層の全てに関して同一である、請求項7に記載の方法。
【請求項9】
前記予測される2次元(2D)特徴点マップは、ヒートマップを含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記ヒートマップから特徴点場所を前記ヒートマップの最大値として抽出することをさらに含む、請求項9に記載の方法。
【請求項11】
前記部屋画像を分析するオブジェクト認識装置からオブジェクト情報にアクセスすることと、前記オブジェクト情報と前記部屋の前記予測されるレイアウトを組み合わせることとをさらに含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記オブジェクト認識装置を使用して、前記部屋画像内の直方体を検出することをさらに含む、請求項11に記載の方法。
【請求項13】
部屋のレイアウトを推定するためのニューラルネットワークを訓練するための方法であって、前記方法は、
訓練用部屋画像を受信することであって、前記訓練用部屋画像は、
複数の部屋タイプからの基準部屋タイプ、および、
基準部屋レイアウトと関連付けられた基準特徴点
と関連付けられる、ことと、
部屋のレイアウトの推定のためのニューラルネットワークを生成することであって、前記ニューラルネットワークは、
前記複数の部屋タイプのそれぞれと関連付けられた予測される部屋のレイアウトと関連付けられた予測される2次元(2D)特徴点を出力するように構成されるエンコーダ-デコーダサブネットワークと、
予測される部屋タイプを前記複数の部屋タイプから出力するように構成される前記エンコーダ-デコーダサブネットワークに接続されるサイドサブネットワークと
を備える、ことと、
前記予測される2D特徴点に関する第1の損失および前記予測される部屋タイプに関する第2の損失に基づいて、損失関数を最適化することと、
前記最適化された損失関数に基づいて、前記ニューラルネットワークのパラメータを更新することと
を含む、方法。
【請求項14】
前記基準特徴点および前記予測される2D特徴点は、特徴点順序と関連付けられる、請求項13に記載の方法。
【請求項15】
第1の特徴点順序は、前記複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、前記複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、前記第1の特徴点順序および前記第2の特徴点順序は、異なる、請求項13~14のいずれか1項に記載の方法。
【請求項16】
前記訓練用部屋画像の次元は、前記予測される2D特徴点と関連付けられたマップの次元より大きい、請求項13~15のいずれか1項に記載の方法。
【請求項17】
前記エンコーダサブネットワークおよび前記デコーダサブネットワークは、複数の再帰層を備える、請求項13~16のいずれか1項に記載の方法。
【請求項18】
前記サイドサブネットワークは、部屋タイプ分類子を含む、請求項13~17のいずれか1項に記載の方法。
【請求項19】
前記予測される2D特徴点に関する前記第1の損失は、前記複数の基準特徴点場所と前記予測される2D特徴点との間のユークリッド損失を含む、請求項13~18のいずれか1項に記載の方法。
【請求項20】
前記予測される部屋タイプに関する前記第2の損失は、クロスエントロピ損失を含む、請求項13~19のいずれか1項に記載の方法。
【請求項21】
前記予測される2D特徴点は、予測されるヒートマップから抽出される、請求項13~20のいずれか1項に記載の方法。
【請求項22】
前記訓練用画像の前記基準特徴点と関連付けられた基準ヒートマップを計算することと、前記予測されるヒートマップと前記基準ヒートマップとの間の差異に基づいて、前記予測される2D特徴点に関する前記第1の損失を計算することとをさらに含む、請求項21に記載の方法。
【請求項23】
前記基準ヒートマップは、基準特徴点毎の場所を中心とする2次元分布を含む、請求項22に記載の方法。
【請求項24】
前記基準ヒートマップは、前記基準特徴点から離れた背景と、前記基準特徴点と関連付けられた前景とを含み、前記ハードウェアプロセッサは、前記前景と前記背景との間の比率に基づいて、前記基準ヒートマップ内の勾配に加重するようにプログラムされる、請求項22または請求項23に記載の方法。
【請求項25】
前記基準ヒートマップ内の前記勾配に加重することは、前記背景内のピクセルの値を1未満の減少係数によって減少させることを含む、請求項24に記載の方法。
【請求項26】
環境の部屋画像にアクセスすることと、
ニューラルネットワークを使用して、前記部屋画像内の部屋に関する部屋タイプと関連付けられた2次元(2D)特徴点の順序付けられたセットを決定することを含む、前記部屋画像を分析し、前記部屋画像内の前記部屋の予測されるレイアウトを決定することと、
少なくとも部分的に、前記2D特徴点および前記部屋タイプに基づいて、前記部屋のレイアウトを提供することと
を含む、方法。
【請求項27】
前記ニューラルネットワークは、畳み込みエンコーダ-デコーダネットワークを備える、請求項26に記載の方法。
【請求項28】
前記畳み込みエンコーダ-デコーダネットワークは、メモリ増強再帰エンコーダ-デコーダネットワークを備える、請求項27に記載の方法。
【請求項29】
前記ニューラルネットワークは、前記部屋タイプを決定するように構成される分類子を含む、請求項26~28のいずれか1項に記載の方法。
【請求項30】
2D特徴点の前記順序付けられたセットをヒートマップから抽出することをさらに含む、請求項26~29のいずれか1項に記載の方法。
【請求項31】
前記部屋画像を分析し、オブジェクト情報を決定することと、前記オブジェクト情報と前記部屋のレイアウトを組み合わせることとをさらに含む、請求項26~30のいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2017年3月17日に出願され“ROOM LAYOUT ESTIMATION METHODS AND TECHNIQUES”と題された米国特許出願第62/473,257号に対する優先権の利益を主張するものであり、該米国特許出願は、その全体が参照により本明細書中に援用される。
【0002】
本開示は、概して、自動化された画像分析を使用して、部屋のレイアウトを推定するためのシステムおよび方法に関し、より具体的には、部屋のレイアウトを決定するための深層機械学習システム(例えば、畳み込みニューラルネットワーク)に関する。
【背景技術】
【0003】
深層ニューラルネットワーク(DNN)は、計算機械学習方法である。DNNは、人工ニューラルネットワーク(NN)のクラスに属する。NNを用いることで、計算グラフが、構築され、これは、生物学的ニューラルネットワークの特徴を模倣するものである。生物学的ニューラルネットワークは、計算に特化し、そうでなければ、他の方法を通して捕捉することが困難であり得る、生物学系の能力の多くに関与する、特徴を含む。いくつかの実装では、そのようなネットワークは、接続が一方向性である、シーケンシャル層化構造に配列される。例えば、特定の層の人工ニューロンの出力は、後続層の人工ニューロンの入力に接続されることができる。DNNは、多数の層(例えば、10、100、またはそれを上回る層)を伴う、NNであることができる。
【0004】
異なるNNは、異なる視点において相互に異なる。例えば、異なるNNのトポロジまたはアーキテクチャ(例えば、層の数および層が相互接続される方法)および加重は、異なり得る。加重は、生物学系内のニューラル接続のシナプス強度にほぼ類似し得る。加重は、1つの層から別の層に伝搬される効果の強度に影響を及ぼす。人工ニューロンの出力は、その入力の加重された和の非線形関数であることができる。NNは、訓練データ上で訓練され、次いで、訓練されていないデータからの出力を決定するために使用されることができる。
【発明の概要】
【課題を解決するための手段】
【0005】
世界の3次元(3D)表現を画像から構築することは、コンピュータビジョンにおける重要な課題であって、拡張現実、ロボット、自律的ナビゲーション等への重要な応用を有する。本開示は、部屋の1つ以上の画像を分析することによって、部屋のレイアウトを推定するためのシステムおよび方法の実施例を提供する。レイアウトは、部屋内の床、1つ以上の壁、天井等の場所を含むことができる。
【0006】
一側面では、ニューラルネットワークを備える、機械学習システムが、部屋のレイアウト推定のために使用される。種々の実施形態では、機械学習システムは、これらの種々の実施形態がニューラルネットワークを使用して部屋のレイアウトを決定するため、本明細書では、RoomNetという名称で称される。機械学習システムは、非一過性記憶装置を備える、ハードウェアコンピュータプロセッサによって実施されることができ、ローカルでまたは分散型(例えば、クラウド)コンピューティング環境内で実施されることができる。
【0007】
本明細書に説明される部屋のレイアウトシステムおよび方法は、拡張および複合現実に適用可能である。例えば、拡張現実(AR)デバイスは、ARデバイスの環境の画像を捕捉するように構成される、外向きに面した結像システムを含むことができる。ARデバイスは、画像のRoomNet分析を実施し、ARデバイスの装着者が位置する、部屋のレイアウトを決定することができる。ARデバイスは、部屋のレイアウトを使用して、装着者の環境の3D表現(時として、世界マップとも称される)を構築することができる。
【0008】
一側面では、ニューラルネットワークは、部屋の一部の画像を分析し、部屋のレイアウトを決定することができる。ニューラルネットワークは、エンコーダサブネットワークと、デコーダサブネットワークと、サイドサブネットワークとを有する、畳み込みニューラルネットワークを備えることができる。ニューラルネットワークは、部屋タイプと関連付けられた2次元の順序付けられた特徴点を使用して、3次元の部屋のレイアウトを決定することができる。部屋のレイアウトは、拡張または複合現実、ロボット、自律的屋内ナビゲーション等の用途において使用されることができる。
【0009】
一側面では、RoomNetは、エンコーダサブネットワークと、エンコーダネットワークに接続される、デコーダサブネットワークと、エンコーダネットワークに接続される、サイドサブネットワークとを備える。部屋画像を受信後、複数の部屋タイプに対応する、複数の予測されるヒートマップが、RoomNetのエンコーダサブネットワークおよびデコーダサブネットワークを使用して、決定されることができる。複数の部屋タイプの予測される部屋タイプが、RoomNetのエンコーダサブネットワークおよびサイドサブネットワークおよび部屋画像を使用して、決定されることができる。複数の予測される特徴点場所における特徴点が、予測される部屋タイプに対応する予測されるヒートマップを使用して、決定されることができる。部屋画像内の予測される部屋のレイアウトが、予測される部屋タイプ、特徴点、および予測される部屋タイプと関連付けられた特徴点順序を使用して、決定されることができる。
【0010】
別の側面では、システムが、部屋のレイアウト推定のためのニューラルネットワークを訓練するために使用される。訓練用部屋画像は、エンコーダサブネットワークと、エンコーダネットワークに接続される、デコーダサブネットワークと、エンコーダネットワークに接続される、サイドサブネットワークとを備え得る、ニューラルネットワークを訓練するために使用されることができる。訓練用部屋画像はそれぞれ、基準部屋タイプおよび訓練用部屋画像内の基準特徴点場所における基準特徴点と関連付けられることができる。ニューラルネットワークを訓練するステップは、エンコーダサブネットワークおよびデコーダサブネットワークおよび訓練用部屋画像を使用して、部屋タイプに対応する複数の予測されるヒートマップを決定するステップと、エンコーダサブネットワークおよびサイドサブネットワークおよび訓練用部屋画像を使用して、予測される部屋タイプを決定するステップとを含むことができる。ニューラルネットワークは、基準特徴点場所と予測されるヒートマップとの間の第1の差異と、基準部屋タイプと予測される部屋タイプとの間の第2の差異とに基づいて更新される、加重を含むことができる。
【0011】
本明細書に説明される主題の1つ以上の実装の詳細が、付随の図面および以下の説明に記載される。他の特徴、側面、および利点は、説明、図面、および請求項から明白となるであろう。本概要または以下の発明を実施するための形態のいずれも、本発明の主題の範囲を定義または限定することを主張するものではない。
例えば、本発明は以下の項目を提供する。
(項目1)
システムであって、
非一過性メモリであって、
部屋のレイアウトの推定のための部屋画像と、
部屋のレイアウトを推定するためのニューラルネットワークであって、前記ニューラルネットワークは、
エンコーダ-デコーダサブネットワークと、
前記エンコーダ-デコーダサブネットワークに接続される分類子サブネットワークと
を備える、ニューラルネットワークと
を記憶するように構成される、非一過性メモリと、
前記非一過性メモリと通信するハードウェアプロセッサであって、前記ハードウェアプロセッサは、
前記部屋画像にアクセスすることと、
前記エンコーダ-デコーダサブネットワークおよび前記部屋画像を使用して、複数の部屋タイプに対応する複数の予測される2次元(2D)特徴点マップを決定することと、
前記エンコーダ-デコーダサブネットワーク、前記分類子サブネットワーク、および前記部屋画像を使用して、予測される部屋タイプを前記複数の部屋タイプから決定することと、
前記複数の予測される2D特徴点マップおよび前記予測される部屋タイプを使用して、前記予測される部屋タイプと関連付けられた複数の順序付けられた特徴点を決定することと、
前記複数の順序付けられた特徴点を使用して、前記部屋画像内の部屋の予測されるレイアウトを決定することと
を行うようにプログラムされている、ハードウェアプロセッサと
を備える、システム。
(項目2)
前記複数の部屋タイプ内の各部屋タイプは、部屋タイプ特徴点の順序付けられたセットを含む、項目1に記載のシステム。
(項目3)
前記複数の部屋タイプ内の各部屋タイプは、前記部屋タイプ内の領域に関する意味論セグメント化を含み、前記意味論セグメント化は、床、天井、または壁としての識別を含む、項目2に記載のシステム。
(項目4)
第1の特徴点順序は、前記複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、前記複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、前記第1の特徴点順序および前記第2の特徴点順序は、異なる、項目2に記載のシステム。
(項目5)
前記部屋画像は、単眼画像を含む、項目1に記載のシステム。
(項目6)
前記部屋画像は、赤色-緑色-青色(RGB)画像を含む、項目1に記載のシステム。
(項目7)
前記部屋画像の次元は、前記予測される2D特徴点マップの次元より大きい、項目1に記載のシステム。
(項目8)
前記エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のプーリング層を含むエンコーダサブネットワークを備える、項目1に記載のシステム。
(項目9)
前記エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のアップサンプリング層を含むデコーダサブネットワークを備える、項目1に記載のシステム。
(項目10)
前記エンコーダ-デコーダサブネットワークは、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークを備える、項目1に記載のシステム。
(項目11)
前記エンコーダ-デコーダサブネットワークは、複数の再帰層を備える、項目1に記載のシステム。
(項目12)
前記複数の再帰層の再帰反復数は、2である、項目11に記載のシステム。
(項目13)
前記複数の再帰層の再帰反復数は、少なくとも3である、項目11に記載のシステム。
(項目14)
前記複数の再帰層はそれぞれ、加重行列を有し、前記加重行列は、前記複数の再帰層の全てに関して同一である、項目11-13のいずれか1項に記載のシステム。
(項目15)
前記予測される2次元(2D)特徴点マップは、ヒートマップを含む、項目1に記載のシステム。
(項目16)
前記ハードウェアプロセッサは、前記ヒートマップからの特徴点場所を前記ヒートマップの最大値として抽出するようにプログラムされている、項目15に記載のシステム。
(項目17)
前記ハードウェアプロセッサは、
前記部屋画像を分析するオブジェクト認識装置からオブジェクト情報にアクセスすることと、
前記オブジェクト情報と前記部屋の予測されるレイアウトを組み合わせることと
を行うようにプログラムされている、項目1に記載のシステム。
(項目18)
前記オブジェクト認識装置は、前記部屋画像内の直方体を検出するように構成される、項目17に記載のシステム。
(項目19)
ウェアラブルディスプレイデバイスであって、
前記部屋のレイアウトの推定のための部屋画像を捕捉するように構成される、外向きに面した結像システムと、
項目1に記載のシステムと
を備える、ウェアラブルディスプレイデバイス。
(項目20)
システムであって、
ニューラルネットワークのためのパラメータを記憶するように構成される非一過性メモリと、
前記非一過性メモリと通信するハードウェアプロセッサであって、前記ハードウェアプロセッサは、
訓練用部屋画像を受信することであって、前記訓練用部屋画像は、
複数の部屋タイプからの基準部屋タイプと、
部屋の基準レイアウトと関連付けられた基準特徴点と
と関連付けられている、ことと、
部屋のレイアウト推定のためのニューラルネットワークを生成することであって、前記ニューラルネットワークは、
前記複数の部屋タイプのそれぞれと関連付けられた予測される部屋のレイアウトと関連付けられた予測される2次元(2D)特徴点を出力するように構成されるエンコーダ-デコーダサブネットワークと、
予測される部屋タイプを前記複数の部屋タイプから出力するように構成される前記エンコーダ-デコーダネットワークに接続されるサイドサブネットワークと
を備えている、ことと、
前記予測される2D特徴点に関する第1の損失および前記予測される部屋タイプに関する第2の損失に基づいて、損失関数を最適化することと、
前記最適化された損失関数に基づいて、前記ニューラルネットワークのパラメータを更新することと
を行うようにプログラムされている、ハードウェアプロセッサと
を備える、システム。
(項目21)
前記複数の部屋タイプの数は、5を上回る、項目20に記載のシステム。
(項目22)
前記基準特徴点および前記予測される2D特徴点は、特徴点順序と関連付けられる、項目20に記載のシステム。
(項目23)
第1の特徴点順序は、前記複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、前記複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、前記第1の特徴点順序および前記第2の特徴点順序は、異なる、項目20に記載のシステム。
(項目24)
前記訓練用部屋画像は、単眼画像を含む、項目20に記載のシステム。
(項目25)
前記訓練用部屋画像は、赤色-緑色-青色(RGB)画像を含む、項目20に記載のシステム。
(項目26)
前記訓練用部屋画像の次元は、前記予測される2D特徴点と関連付けられたマップの次元より大きい、項目20に記載のシステム。
(項目27)
前記エンコーダサブネットワークおよび前記デコーダサブネットワークは、複数の再帰層を備える、項目20に記載のシステム。
(項目28)
前記再帰層の再帰反復数は、2または3である、項目27に記載のシステム。
(項目29)
深層監視が、前記再帰層に適用される、項目27に記載のシステム。
(項目30)
前記再帰層の反復の第1の再帰反復と関連付けられた加重は、前記再帰層の第2の再帰反復と関連付けられた加重と同じである、項目27に記載のシステム。
(項目31)
前記複数の再帰層は、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークとして構成される、項目27に記載のシステム。
(項目32)
前記サイドサブネットワークは、部屋タイプ分類子を含む、項目20に記載のシステム。
(項目33)
前記予測される2D特徴点に関する前記第1の損失は、複数の基準特徴点場所と前記予測される2D特徴点との間のユークリッド損失を含む、項目20に記載のシステム。
(項目34)
前記予測される部屋タイプに関する前記第2の損失は、クロスエントロピ損失を含む、項目20に記載のシステム。
(項目35)
前記予測される2D特徴点は、予測されるヒートマップから抽出される、項目20に記載のシステム。
(項目36)
ハードウェアプロセッサは、
前記訓練画像の基準特徴点と関連付けられた基準ヒートマップを計算することと、
前記予測されるヒートマップと前記基準ヒートマップとの間の差異に基づいて、前記予測される2D特徴点に関する前記第1の損失を計算することと
を行うようにプログラムされている、項目35に記載のシステム。
(項目37)
前記基準ヒートマップは、基準特徴点毎の場所を中心とする2次元分布を含む、項目36に記載のシステム。
(項目38)
前記基準ヒートマップは、前記基準特徴点から離れた背景と、前記基準特徴点と関連付けられた前景とを含み、前記ハードウェアプロセッサは、前記前景と前記背景との間の比率に基づいて、前記基準ヒートマップ内の勾配に加重するようにプログラムされている、項目36に記載のシステム。
(項目39)
前記基準ヒートマップ内の勾配に加重するために、前記ハードウェアプロセッサは、1未満の減少係数によって、前記背景内のピクセルの値を減少させるようにプログラムされている、項目38に記載のシステム。
(項目40)
ウェアラブルディスプレイシステムであって、
前記ウェアラブルディスプレイシステムの装着者の環境の部屋画像を取得するように構成される外向きに面した結像システムと、
前記部屋画像を記憶するように構成される非一過性メモリと、
前記非一過性メモリと通信するハードウェアプロセッサであって、前記プロセッサは、
前記環境の部屋画像にアクセスすることと、
前記部屋画像を分析し、前記部屋画像内の予測される部屋のレイアウトを決定することと
を行うようにプログラムされており、前記部屋画像を分析するために、前記プロセッサは、
ニューラルネットワークを使用して、前記部屋画像内の部屋に関する部屋タイプと関連付けられた2次元(2D)特徴点の順序付けられたセットを決定することと、
少なくとも部分的に、前記2D特徴点および前記部屋タイプに基づいて、前記部屋のレイアウトを提供することと
を行うようにプログラムされている、ハードウェアプロセッサと
を備える、ウェアラブルディスプレイシステム。
(項目41)
前記ニューラルネットワークは、畳み込みエンコーダ-デコーダネットワークを備える、項目40に記載のウェアラブルディスプレイシステム。
(項目42)
前記畳み込みエンコーダ-デコーダネットワークは、メモリ増強再帰エンコーダ-デコーダネットワークを備える、項目41に記載のウェアラブルディスプレイシステム。
(項目43)
前記ニューラルネットワークは、前記部屋タイプを決定するように構成される分類子を含む、項目40に記載のウェアラブルディスプレイシステム。
(項目44)
前記ハードウェアプロセッサはさらに、前記2D特徴点の順序付けられたセットをヒートマップから抽出するようにプログラムされている、項目40に記載のウェアラブルディスプレイシステム。
(項目45)
前記ハードウェアプロセッサはさらに、
前記部屋画像を分析するオブジェクト認識装置からオブジェクト情報にアクセスすることと、
前記オブジェクト情報と前記部屋のレイアウトを組み合わせることと
を行うようにプログラムされている、項目40に記載のウェアラブルディスプレイシステム。
【図面の簡単な説明】
【0012】
【
図1A】
図1Aは、部屋のレイアウト推定のための例示的パイプラインである。
【0013】
【
図1B】
図1Bは、RoomNetと称される本明細書に説明される機械学習アーキテクチャの実施形態を使用した、例示的部屋のレイアウト推定である。
【0014】
【
図1C】
図1Cは、RoomNetを用いた、別の例示的部屋のレイアウト推定である。
【0015】
【
図2】
図2は、部屋のレイアウトタイプの例示的定義を示す。タイプは、0から10までインデックス化されることができる。各特徴点上の数字は、グラウンドトゥルース内に保存された点の具体的順序を定義する。所与の部屋タイプに関して、特徴点の順序付けは、そのつながりを規定することができる。
【0016】
【
図3】
図3は、RoomNetの別の例示的アーキテクチャを描写する。
【0017】
【
図4A】
図4Aは、3回の反復を用いた、再帰ニューラルネットワーク(RNN)の展開バージョンの例示的例証を示す。
【0018】
【
図4B】
図4Bは、RNNの挙動を模倣するが、静的入力のために設計される、メモリ増強再帰エンコーダ-デコーダ(MRED)アーキテクチャを用いた、例示的RoomNetを示す。
【0019】
【
図5】
図5A-5Dは、精緻化なし(上段)および精緻化あり(下段)別の単一画像(中段)からの例示的部屋のレイアウト特徴点推定を図示する、画像を示す。複数のチャネルからの特徴点ヒートマップが、可視化目的のために、単一2次元(2D)画像に示される。
【0020】
【
図6】
図6A-6Bは、経時的深層監視なし(
図6A)および経時的深層監視あり(
図6B)別の例示的メモリ増強再帰エンコーダ-デコーダアーキテクチャを描写する。
【0021】
【
図7-1】
図7A-7Gは、例示的RoomNet予測および対応するグラウンドトゥルースを大規模場面理解課題(LSUN)データセット上に示す、画像を含む。RoomNetが、その入力としてのRGB画像(各図中の第1の列)にアクセスし、例示的部屋のレイアウト特徴点ヒートマップ(各図中の第2の列)を生産した。最終特徴点は、ヒートマップからの最大応答を有する特徴点場所を抽出することによって取得された。各図中の第3および第4の列は、
図2を参照して説明されるように取得された特徴点を具体的順序でつなげることによって生成された、例示的ボックス状の部屋のレイアウト表現を示す。各図中の第5および第6の列は、例示的グラウンドトゥルースを示す。
【
図7-2】
図7A-7Gは、例示的RoomNet予測および対応するグラウンドトゥルースを大規模場面理解課題(LSUN)データセット上に示す、画像を含む。RoomNetが、その入力としてのRGB画像(各図中の第1の列)にアクセスし、例示的部屋のレイアウト特徴点ヒートマップ(各図中の第2の列)を生産した。最終特徴点は、ヒートマップからの最大応答を有する特徴点場所を抽出することによって取得された。各図中の第3および第4の列は、
図2を参照して説明されるように取得された特徴点を具体的順序でつなげることによって生成された、例示的ボックス状の部屋のレイアウト表現を示す。各図中の第5および第6の列は、例示的グラウンドトゥルースを示す。
【
図7-3】
図7A-7Gは、例示的RoomNet予測および対応するグラウンドトゥルースを大規模場面理解課題(LSUN)データセット上に示す、画像を含む。RoomNetが、その入力としてのRGB画像(各図中の第1の列)にアクセスし、例示的部屋のレイアウト特徴点ヒートマップ(各図中の第2の列)を生産した。最終特徴点は、ヒートマップからの最大応答を有する特徴点場所を抽出することによって取得された。各図中の第3および第4の列は、
図2を参照して説明されるように取得された特徴点を具体的順序でつなげることによって生成された、例示的ボックス状の部屋のレイアウト表現を示す。各図中の第5および第6の列は、例示的グラウンドトゥルースを示す。
【0022】
【
図8-1】
図8A-8Dは、RoomNetの実施形態からの部屋のレイアウト予測が(人間による注釈が付けられた)グラウンドトゥルースレイアウトにあまり良好に合致しない、実施例を示す。各図中の第1の列は、例示的入力画像を示す。各図中の第2の列は、例示的予測される特徴点ヒートマップを示す。各図中の第3および第4の列は、取得される例示的ボックス状の表現を示す。第5および第6の列は、例示的グラウンドトゥルースを示す。
【
図8-2】
図8A-8Dは、RoomNetの実施形態からの部屋のレイアウト予測が(人間による注釈が付けられた)グラウンドトゥルースレイアウトにあまり良好に合致しない、実施例を示す。各図中の第1の列は、例示的入力画像を示す。各図中の第2の列は、例示的予測される特徴点ヒートマップを示す。各図中の第3および第4の列は、取得される例示的ボックス状の表現を示す。第5および第6の列は、例示的グラウンドトゥルースを示す。
【0023】
【
図9】
図9A-9Fは、例示的エンコーダ-デコーダアーキテクチャ、すなわち、(
図9A)バニラエンコーダ-デコーダ、(
図9B)スタックされたエンコーダ-デコーダ、(
図9C)スキップコネクションを伴うスタックされたエンコーダ-デコーダ、(
図9D)フィードバックを伴うエンコーダ-デコーダ、(
図9E)メモリ増強再帰エンコーダ-デコーダ、および(
図9F)フィードバックを伴うメモリ増強再帰エンコーダ-デコーダを描写する。
【0024】
【
図10】
図10は、RoomNetを訓練する例示的プロセスのフロー図である。
【0025】
【
図11】
図11は、部屋のレイアウト推定のためのRoomNetを使用する例示的プロセスのフロー図である。
【0026】
【
図12】
図12は、RoomNetの実施形態を実装し得る、ウェアラブルディスプレイシステムの実施例を図式的に図示する。
【0027】
図面全体を通して、参照番号は、参照される要素間の対応を示すために再使用され得る。図面は、本明細書に説明される例示的実施形態を図示するために提供され、本開示の範囲を限定することを意図されない。
【発明を実施するための形態】
【0028】
(概要)
関数、アルゴリズム、システム、および同等物等のデータ関係およびパターンを表す、モデルは、入力を受け取り、何らかの方法において、入力に対応する出力を生産し得る。例えば、モデルは、畳み込みニューラルネットワーク(CNN)または深層ニューラルネットワーク(DNN)等の機械学習方法として実装されてもよい。深層学習は、タスク特有アルゴリズムとは対照的に、学習データ表現の概念に基づく、機械学習方法のより広義の系統の一部であって、拡張現実、複合現実、仮想現実、および機械知能に有用な視聴覚計算問題を解法する際、著しい有望性を示す。機械学習では、畳み込みニューラルネットワーク(CNNまたはConvNet)は、深層フィードフォワード人工ニューラルネットワークのクラスを含むことができ、CNNは、視覚的画像の分析の適用に成功を収めている。機械学習方法は、眼画像セグメント化および眼追跡を含む、様々な問題に対するロバストかつ正確なソリューションを有効にし得る、方法の系統を含む。
【0029】
本明細書に開示されるのは、RoomNetと呼ばれる、部屋のレイアウト推定のためのニューラルネットワークの実施例である。RoomNetは、部屋の少なくとも一部の画像を分析し、部屋のレイアウトを決定することができる。部屋のレイアウトは、部屋内の床、壁、または天井の場所の表現を含むことができる。画像は、例えば、単眼画像またはグレースケールまたはカラー(例えば、赤色-緑色-青色(RGB))画像を含むことができる。画像は、ビデオからのフレームまたは複数のフレームであってもよい。他の技法は、部屋のレイアウト推定を2つのサブタスク、すなわち、レイアウト仮定を生産するための床、壁、および天井の意味論セグメント化と、これらの仮定をランク付けするためのその後の反復最適化ステップとに分割する。
【0030】
これらのアプローチと対照的に、RoomNetは、部屋のレイアウト問題を部屋のレイアウト特徴点の順序付けられたセットの推定として公式化することができる。部屋のレイアウトおよび対応するセグメント化は、これらの順序付けられた特徴点の場所を前提として、完全に規定されることができる。RoomNetは、エンドツーエンド訓練可能エンコーダ-デコーダネットワークであることができる。RoomNet機械学習アーキテクチャは、より良好な性能を有し得る(例えば、算出の量、正確度等の観点から)。いくつかの実施形態では、RoomNetは、再帰算出およびメモリユニットを含み、類似または同じパラメータ容量下、特徴点場所を精緻化する、アーキテクチャを有することができる。
【0031】
立体視画像は、部屋のレイアウトに関する深度情報を提供することができる。単眼画像(深度情報を含まない)からの部屋のレイアウト推定は、困難である。屋内場面の2次元表現(2D)(例えば、ボックス状の表現)の輪郭を描くことを狙いとする、単眼画像からの部屋のレイアウト推定は、屋内ナビゲーション、場面再構築またはレンダリング、または拡張現実等の様々なコンピュータビジョンタスクのための用途を有する。
図1Aは、画像104を撮影し、ボトムアップ様式において、局所色、テクスチャ、および縁キュー等の画像特徴108を抽出後、消失点検出112が続く、従来の部屋のレイアウト技法を図示する。従来の方法は、構造化サポートベクトルマシン(SVM)または条件付きランダムフィールド(CRF)を用いて、特徴誤対応をクリーンアップし、部屋のレイアウト仮定116の大規模なセットを生成またはランク付けするために使用される、別個の後処理段階を含んでもよい。原理上、部屋のレイアウトの3D再構築は、これらの方法を使用して決定された2Dレイアウト120aおよび消失点の知識を用いて、取得されることができる(例えば、縮尺を除いて)。しかしながら、実際は、これらの従来の方法は、複雑であって、最終レイアウト予測の正確度は、多くの場合、それ自体が、局所雑音、場面クラッタ、およびオクルージョンを被りやすい、主として、抽出された低レベル画像特徴の品質に依存する。有利には、本開示のRoomNetの実施形態は、局所雑音、場面クラッタ、およびオクルージョンを被りにくくあり得る。さらに、RoomNetによって提供される部屋のレイアウト推定は、有利には、他の方法より良好な性能(例えば、200倍または600倍等の算出の量の観点から)を有し得る。
【0032】
いくつかの実施形態では、RoomNetは、手動操作低レベル画像特徴抽出に取って代わる有益なエッジマップを生産する、深層ニューラルネットワーク、意味論セグメント化、完全畳み込みネットワーク(FCN)モデル等の畳み込みニューラルネットワーク(CNN)に基づいて、他の部屋のレイアウト推定方法より良好な性能を有し得る。そのようなFCNによって生成された予測されるエッジマップは、次いで、レイアウト仮定生成およびランク付けのための消失線をサンプリングするために使用されることができる。例えば、FCNは、左壁、正面壁、右壁、天井、および地面等の意味論表面ラベルを学習するために使用されることができる。次いで、連結成分および孔充填技法が、FCNの未加工のピクセル毎予測を精緻化後、古典的消失点/ラインサンプリング方法が続き、部屋のレイアウトを生産するために使用されることができる。低レベル特徴の新しいセットを生成し、各フレームを処理するために30秒またはそれを上回って要求し得る、そのような方法と対照的に、RoomNetは、より算出上効率的である、エンドツーエンド訓練可能CNNであることができる。
【0033】
いくつかの実施形態では、RoomNetの予測は、最終レイアウトを生産するために高価であり得る、仮定試験段階によって後処理される必要はない。RoomNetは、トップダウンアプローチを使用して、部屋のレイアウト推定を実施し得、直接、部屋のレイアウト特徴点(例えば、角)と部屋タイプの両方を推測するように訓練されることができる。いったん部屋タイプが、推測または決定されると、順序付けられた特徴点の対応するセットが、位置特定または決定され、特徴点は、決定された部屋タイプに基づいて、具体的順序でつなげられ、2D空間の部屋のレイアウトを取得することができる。
【0034】
RoomNetアーキテクチャは、
図1Bおよび1Cに図示されるように、直接的かつ単純であり得る。下記にさらに説明されるであろうように、RoomNet124は、入力画像104(例えば、320ピクセル×320ピクセルのサイズ)を撮影し、畳み込みエンコーダ-デコーダアーキテクチャを通して、画像を処理し、部屋のレイアウト特徴点128k1-128k6のセットを特定の部屋のレイアウトに対応する特徴点ヒートマップ128から抽出し、次いで、(随意に)取得された特徴点を具体的順序でつなげ、部屋のレイアウト120bを提供することができる。部屋のレイアウト120bは、例えば、床132、天井134、および壁136等の部屋内の垂直または水平表面の場所または配向を含むことができる。
【0035】
随意に、部屋のレイアウトは、下記に説明されるように、回帰されることができる。部屋のレイアウト120bは、例えば、拡張現実または屋内自律的ナビゲーションまたは場面再構築またはレンダリングのために、世界マップ内で使用されることができる。随意に、部屋のレイアウトは、図面、建築用マップ等として出力されることができる。レイアウト表面の意味論セグメント化は、単に、本つながりの結果として取得可能であって、意味論的にセグメント化された部屋のレイアウト画像136として表されることができる。故に、RoomNetは、特徴点位置特定によって、部屋のレイアウト推定のタスクを実施する。いくつかの実施形態では、RoomNetは、CNNに基づく、エンコーダ-デコーダネットワークであることができる。RoomNetは、ジョイント特徴点回帰および部屋のレイアウトタイプ分類においてパラメータ上効率的かつ効果的であり得る。
(例示的特徴点ベースの部屋のレイアウト表現)
【0036】
RoomNetの実施形態は、部屋のレイアウト推定において効果的であり得る。RoomNetは、エンドツーエンドで訓練可能であって、効率的に推測され得る、標的出力表現に基づくことができる。RoomNetは、幾何学的コンテキストまたは意味論クラス(例えば、床、壁、または天井等)を画像内の各ピクセルに割り当て、次いで、ピクセル毎ラベルに基づいて、部屋のレイアウト特徴点および境界を取得することに基づいて、方法を補完または補足することができる。レイアウト特徴点および境界を未加工ピクセル出力から導出するステップは、非自明であって、RoomNetの実施形態ほど効率的ではあり得ない。対照的に、RoomNetは、特徴点ベースとピクセルベースの両方の部屋のレイアウト表現が、高正確度を伴って効率的に取得され得るように、直接、順序付けられた部屋のレイアウトの特徴点場所のセットを出力する、モデルに基づくことができる。RoomNetは、他の方法によって使用されるピクセルベースの表現における曖昧性を低減または排除することができる。RoomNetの実施形態は、したがって、異なる表面識別(例えば、正面壁、側壁、床、天井)を区別することが可能である。例えば、RoomNetは、正面壁クラスと右壁クラスを正しく区別し、それによって、同一表面内の規則的な非混合ラベルを出力し得る。故に、RoomNetは、より良好な全体的部屋のレイアウト推定正確度および性能を有し得る。
【0037】
いくつかの実装では、RoomNetは、
図2に図示される特徴点ベースの部屋のレイアウト表現を使用して訓練されてもよい。
図2は、例示的部屋タイプ0-10 204rt0-204rt10のリストを示し、その個別の特徴点定義は、1、2、3、4、5、6、7、および/または8として標識される。各特徴点上の数字は、グラウンドトゥルース内に保存された点の具体的順序を定義する。これらの11の部屋のレイアウトタイプは、画像内のオブジェクト、縁、角が、デカルトグリッド上に構築され、画像勾配統計における規則性につながる、典型的カメラ姿勢下の可能性として考えられる状況の大部分およびManhattanの世界仮定下における一般的部屋のレイアウト表現を網羅することができる。種々の実施形態では、部屋タイプは、複数の多角形領域によって表され得、各領域は、例えば、床、天井、右壁、中央壁、左壁等に対応する。部屋タイプは、角の特徴点のセット、例えば、多角形領域の交点に対応する角によって編成されることができる。例えば、部屋タイプ204rt5では、左壁は、特徴点1、2、5、および4によって境界され、右壁特徴点は、特徴点1、3、6、および4によって境界され、床は、特徴点5、4、6によって境界され、天井は、特徴点2、1、3によって境界される。部屋タイプは、意味論的にセグメント化され、床、壁、および天井を識別することができる。
【0038】
いったん訓練されると、RoomNetは、関連付けられた部屋タイプを伴う、正しい特徴点場所を予測し、これらの点は、次いで、具体的順序でつなげられ、ボックス状の部屋のレイアウト表現を生産することができる。例えば、部屋タイプ7 204rt7は、ボックス状の部屋のレイアウト表現が、特徴点1 208k1と特徴点2 208k2および特徴点3 208k3と特徴点4 208k4をつなげることによって、構築されることができるように、4つの順序付けられた特徴点場所208k1-208k4を含む。11の部屋のレイアウトは、8つの特徴点を伴う、1つの部屋のレイアウトタイプ204rt0と、6つの特徴点を伴う、3つの部屋のレイアウトタイプ204rt1、204rt2、および204rt5と、4つの特徴点を伴う、4つの部屋のレイアウトタイプ204rt3、204rt4、204rt6、および204rt7と、2つの特徴点を伴う、3つの部屋のレイアウトタイプ204rt8、204rt9、および204rt10とを含む。同一数の特徴点を伴う、部屋のレイアウトは、同一特徴点のつながり(部屋のレイアウトタイプ3および4、204rt3および204rt4等)または異なる特徴点のつながり(部屋のレイアウトタイプ1および2、204rt3および204rt4等)を有することができる。11の部屋のレイアウトタイプが、本実施例では使用されるが、異なる数の部屋のレイアウトタイプ(例えば、5、10、15、20、またはそれを上回る)または
図2に示されるものと異なる配列を有する部屋のレイアウトタイプも、他の実装では、使用されることができる。
(RoomNetの例示的アーキテクチャ)
【0039】
本開示の部屋のレイアウト推定のためのニューラルネットワークは、2次元(2D)特徴点を使用して、部屋のレイアウト構造の輪郭を描く、畳み込みニューラルネットワーク(CNN)を含むことができる。RoomNetへの入力は、単眼画像、例えば、単一赤色-緑色-青色(RGB)画像またはビデオからのRGBフレームであることができる。RoomNetの出力は、関連付けられた部屋タイプを伴う、具体的順序と関連付けられた2D特徴点のセットを含むことができる。
【0040】
特徴点推定。いくつかの実施形態では、RoomNetは、屋根(または天井)、左壁、右壁、後壁、床等の部屋の表面の特徴点推定および意味論セグメント化のためのベースネットワークアーキテクチャを含むことができる。
図3は、RoomNet300の例示的アーキテクチャを描写する。本例示的アーキテクチャでは、デコーダが、そのエンコーダから転送されたプーリングインデックスを使用して、その入力をアップサンプリングし、疎特徴マップを生産後、訓練可能フィルタバンクを伴ういくつかの畳み込み層が続き、特徴応答を稠密化する。最終デコーダ出力特徴点ヒートマップが、ユークリッド損失とともに、リグレッサにフィードされる。3つの全結合層を伴うサイドヘッドが、ボトルネック層にアタッチされ、部屋タイプクラスラベルを訓練および予測するために使用され、これは、次いで、特徴点ヒートマップの関連付けられたセットを選択するために使用される。再帰エンコーダ-デコーダ(中央の破線ブロック)を伴うRoomNetの完全モデルは、
図4Bおよび5を参照して説明されるように、特徴点精緻化をさらに実施する。
【0041】
図3を継続して参照すると、RoomNet300は、エンコーダサブネットワーク304aと、デコーダサブネットワーク304bとを含むことができる。エンコーダサブネットワーク304aは、入力画像308をより低い分解能の特徴マップ312a-312eにマッピングすることができる。デコーダサブネットワーク304bは、ピクセル毎分類のために、低分解能のエンコードされた特徴マップ312eをより高い分解能のマップ316a-316bおよびヒートマップ320r0-320r10(例えば、入力画像308と比較して、同一またはそれより低い分解能を伴う)にアップサンプリングすることができる。入力画像308、特徴マップ312a-312e、316a-316b、およびヒートマップ320r0-320r10の次元は、
図3に示されるRoomNet実施例300において標識される。エンコーダサブネットワーク304aは、複数の畳み込み層と、プーリング層324a-324eとを含むことができる。デコーダサブネットワーク304bは、複数の畳み込み層と、アップサンプリング層328a-328cとを含むことができる。いくつかの実施形態では、デコーダサブネットワーク304bは、対応するエンコーダサブネットワーク304bの最大プーリングステップまたは層内で算出されたプーリングインデックスを使用して、非線形アップサンプリングを実施することができる。例えば、特徴マップ312eを生成するために使用される、最大プーリング層の加重は、特徴マップ312eをアップサンプリングするために使用されることができる。別の実施例として、特徴マップ312cを生成するために使用される、最大プーリング層の加重は、特徴マップ316aをアップサンプリングするために使用されることができる。プーリングインデックスは、アップサンプリングすることを学習する必要性を最小限にするかまたは排除することができる。アップサンプリングされたマップは、疎であり得、訓練可能フィルタを用いて畳み込まれ、稠密特徴マップ316a、316bを生産することができる。本エンコーダ-デコーダアーキテクチャは、部屋のレイアウト推定のための他の方法と比較して、それに匹敵する推定時間および効率的メモリ使用を伴う、良好な性能を提供することができる。ヒートマップ320r0-320r10の数は、5、10、11、15、またはそれを上回る等、定義された部屋タイプの数であることができる。
図3は、各部屋タイプと関連付けられた特徴点の数を示す。例えば、部屋タイプ0320r0は、8つの特徴点と関連付けられる。それぞれ8つの特徴点は、例えば、8つのヒートマップ320r0のそれぞれにおける最高ピークとして識別されることができる。故に、RoomNet300によって出力されるヒートマップ320r0-320r10の数は、異なる部屋タイプの特徴点の総数であることができる。
図3に図示される実施例では、ヒートマップ320r0-320r10の数は、48である。
【0042】
RoomNet300のベースアーキテクチャは、屋内場面の画像308を撮影し、直接、2D部屋のレイアウト特徴点のセットを出力し、部屋のレイアウト構造を復元することができる。各特徴点グラウンドトゥルースは、出力層内のチャネルのうちの1つとして真の特徴点場所を中心とする、2Dガウスヒートマップによって表されることができる。いくつかの実施形態では、単一2D画像内の特徴点ヒートマップ320r0-320r10は、可視化のために、色分けされることができる。RoomNet300のエンコーダ-デコーダアーキテクチャは、ボトルネック層(例えば、畳み込みおよび最大プーリング層324e)を通して情報フローを処理し、ボトルネック層に、部屋のレイアウトの2D構造をエンコードする特徴点間の関係を暗示的にモデル化させることができる。
【0043】
いくつかの実施形態では、RoomNet300のデコーダサブネットワーク304bは、
図3に示されるように完全分解能320ピクセル×320ピクセルの代わりに、空間次元10×10~40×40を伴う特徴マップ312eをボトルネック層324eからアップサンプリングすることができる。入力画像308の次元と比較した40ピクセル×40ピクセルへの出力ヒートマップ320r0-320r10の次元のそのような低減は、部屋のレイアウトを事実上すでにモデル化するための提案される2D特徴点ベースの表現を使用して、実験的に決定されることができる。いくつかの実施形態では、ヒートマップ320r0-320r10の幅および高さは、320ピクセル×320ピクセル等、入力画像308のものと同一であることができる。異なる出力次元を伴う、RoomNet300の実施形態は、類似性能を有してもよい。本トリミングされたデコーダサブネットワーク304bの使用は、有利には、より高い分解能における畳み込みの高算出コストに起因して、訓練と試験の両方の間、メモリ使用または時間コストを低減させる(例えば、有意に低減させる)ことができる。
【0044】
複数の部屋タイプへの拡張。RoomNet300のフレームワークまたはアーキテクチャは、1つの特定の部屋タイプに限定されない。RoomNetの実施形態は、クラスあたり1つのネットワークを訓練することなく、複数の部屋タイプに関して一般化されることができる。RoomNet300のそのような実施形態は、最初から効率的かつ高速であり得る。
図3に図示されるRoomNet実施形態300は、1回の順方向通過において、入力画像に対する関連付けられた部屋タイプに関する部屋のレイアウト特徴点を予測することができる。出力層328c内のチャネルの数は、全ての定義された部屋タイプに関する特徴点の総数に合致することができる(例えば、
図2に図示される11の部屋タイプに関して合計48の特徴点)。RoomNet300はまた、
図3に示されるように、ボトルネック層324e(例えば、通常、画像分類のために使用される層)に接続された層332a-332c(例えば、全結合層)を伴う、サイドヘッドまたはサイドサブネットワーク304cを含み、部屋タイプ予測を予測することができる。サイドサブネットワークは、分類子ネットワークを備え、部屋画像内の部屋タイプを分類することができる。
【0045】
訓練実施例または部屋画像は、(I,y,t)として示されることができ、yは、入力画像Iに関する部屋タイプtを伴う、k特徴点のグラウンドトゥルース座標のリストである。訓練段階では、損失関数Lは、予測される特徴点に関する第1の損失と、予測される部屋タイプに関する第2の損失とを含み得る。第1の損失は、ユークリッド損失であり得、これは、レイアウト特徴点ヒートマップ回帰のためのコスト関数として使用され得る。訓練の間、第2の損失は、クロスエントロピ損失(例えば、対数)であり得、これは、部屋タイプ予測のために使用され得る。特徴点ヒートマップリグレッサ
【化1】
(例えば、デコーダサブネットワーク304bから出力される)および部屋タイプ分類子
【化2】
(例えば、全結合サイドヘッド層304cから出力される)を前提として、方程式[1]に示される損失関数Lは、最適化される(例えば、低減または最小限にされる)ことができる。
【化3】
式中、
【化4】
は、特徴点kがグラウンドトゥルース部屋タイプt内に現れるかどうかを示し、
【化5】
は、部屋タイプインデックスcがグラウンドトゥルース部屋タイプtと等しいかどうかを示し、関数Gは、yを中心とするガウス分布であって、加重項は、λである。例えば、加重項λ(例えば、5)は、クロス検証によって設定されることができる。損失関数における第1の項は、予測されるヒートマップ320r0-320r10と特徴点毎に別個に合成されたグラウンドトゥルースヒートマップを比較する。特徴点ヒートマップ毎のグラウンドトゥルースは、あるピクセルの数(例えば、5ピクセル)の標準偏差を伴う、真の特徴点場所上を中心とする2Dガウス分布であることができる。損失関数における第2の項は、サイドヘッド304c全結合層332a-332cに正しい部屋タイプクラスラベルに対する高信頼度値を生産するように促すことができる。
【0046】
RoomNet300の1回の順方向通過は、全ての定義された部屋タイプ(例えば、
図2では、11)に関する2Dの部屋のレイアウト特徴点320r0-320r10を生産することができる。2Dの部屋のレイアウト特徴点は、ヒートマップの形態であることができ、最終特徴点は、これらのヒートマップ内の最大値として抽出されることができる。いくつかの実施形態では、損失関数(例えば、方程式[1]に示される損失関数L)のみが、特徴点kが現在の入力画像I内のグラウンドトゥルース部屋タイプtに関して存在する場合、予測される部屋タイプインデックスを効果的に使用して、ユークリッド回帰誤差にペナルティを課し、特徴点ヒートマップの対応するセットを選択し、リグレッサを更新する。同一方略は、予測される部屋タイプ(例えば、サイドネットワーク304cによって)が、最終出力における予測される特徴点ヒートマップを選択するために使用されるように、RoomNet300が訓練された後(例えば、試験段階において)も、適用されることができる。
【0047】
特徴点精緻化のためのRoomNet拡張子。再帰ニューラルネットワーク(RNN)およびその変形例である超短期メモリ(LSTM)は、シーケンシャルデータに対処するとき、効果的モデルであり得る。RoomNet300の実施形態は、入力画像308が静的であっても、再帰構造を組み込むことができる。例えば、RoomNet300は、再帰畳み込み層と、畳み込みLSTM(convLSTM)層とを含むことができる。いくつかの実施形態では、RoomNet300の再帰特徴は、再帰ニューラルネットワークとしての条件付きランダムフィールド(CRF-RNN)を伴う完全畳み込みネットワーク(FCN)、反復誤差フィードバックネットワーク、再帰CNN、スタックされたエンコーダ-デコーダ、および再帰エンコーダ-デコーダネットワーク等のモデルに類似することができる。静的入力をモデル化するときに時系列概念を組み込むステップは、コンテキスト情報を統合し、ある場合には、予測誤差を低減させる、RoomNet300の能力を有意に改良することができる。
【0048】
ベースRoomNetアーキテクチャは、中心エンコーダ-デコーダコンポーネント336(例えば、
図3における中央破線ブロック参照)を再帰させることによって、拡張されることができる。例えば、RoomNet300は、メモリ増強再帰エンコーダ-デコーダ(MRED)構造404b(
図4B参照)を含み、予測される特徴点ヒートマップを繰り返し精緻化するために、人工的時間にわたって反復することによって、典型的再帰ニューラルネットワーク404a(
図4Aに示される実施例参照)の挙動を模倣することができる、すなわち、人工的時間ステップ(例えば、反復)は、再帰構造によって作成される。
【0049】
本MRED構造404b内の各層312c-312e、316a-316bは、同一層l内の時間ステップt-1における前の予測h
l(t-1)からの着信特徴マップと、前の層l-1内の時間ステップtにおける現在の入力h
l-1(t)とを用いて、畳み込み(*記号として示される)、方程式[2]に示されるように、時間ステップtにおける出力を生成する、異なる時間ステップ(例えば、反復)を通した同一加重行列を共有することができる。
【化6】
式中、
【化7】
および
【化8】
は、層lに関する入力およびフィードフォワード加重であって、b
lは、層lに関するバイアスであって、σは、活性化関数、例えば、正規化線形ユニット(ReLU)活性化関数である。
【0050】
図4Bは、再帰エンコーダ-デコーダ構造内の深度および時間を通した順方向伝搬および逆方向伝搬の間の情報フローの例示的全体的プロセスを実証する。メモリ増強再帰エンコーダ-デコーダ(MRED)アーキテクチャ404bは、隠れユニット408a、408bを含み、現在の時間ステップにおける推定に役立つ、前の活性化を記憶する。提案されるMRED404bアーキテクチャを使用する非限定的例示的利点は、(1)隠れ/メモリユニット(例えば、再帰畳み込みエンコーダ-デコーダ構造では試みられていなかった)を通した特徴点間のコンテキストおよび構造知識の反復的利用、または(2)固定数のパラメータを用いてはるかに深いネットワークをもたらす、再帰エンコーダ-デコーダ内の畳み込み層の加重共有を含む。
【0051】
精緻化後、特徴点のヒートマップは、
図5A-5Dの下段に示されるように、はるかに鮮明である。
図5A-5Dは、精緻化なし(上段、ヒートマップ508a-508d)および精緻化あり(底段、ヒートマップ512a-512d)別の単一画像(中央段、画像504a-504d)からの例示的部屋のレイアウト特徴点推定を図示する、画像を示す。複数のチャネルからの特徴点ヒートマップが、可視化目的のために、単一2次元(2D)画像に示される。特徴点精緻化ステップは、より集中し、より鮮明なヒートマップを生産し、該当する場合、誤検出を除去する。改良が、MREDアーキテクチャ404bを伴うRoomNet300の実施形態によって成された(
図5C-5D参照)。
【0052】
経時的深層監視。スタックされた、反復、または再帰畳み込み構造を適用すると、ネットワーク内の各層は、より多くの層または/および時間ステップを横断した勾配を受信し、訓練がはるかに困難である、モデルをもたらし得る。例えば、反復誤差フィードバックネットワークは、多段階訓練を要求し得、スタックされたエンコーダ-デコーダ構造は、バッチ正規化が使用されるときでも、各エンコーダ-デコーダの終了時に中間監視を使用し得る。RoomNet300を訓練するステップは、各時間ステップの終了時に監視を投入するステップを含むことができる。例えば、方程式[1]に示される損失関数等の同一損失関数L604が、全ての時間ステップに適用されることができる。
図6Bにおける各時間ステップの終了時に投入される、3つの損失関数L
1604a、L
2604b、およびL
3604cは、同じまたは異なることができる。
図6A-6Bは、経時的深層監視なし(
図6A)および経時的深層監視あり(
図6B)のメモリ増強再帰エンコーダ-デコーダアーキテクチャの実施例を描写する。深層監視は、RoomNet300の性能を経時的に改良することができる。
(例示的訓練)
【0053】
データセット。RoomNet300の実施形態が、2つの難解なベンチマークデータセット、すなわち、Hedauデータセットおよび大規模場面理解課題(LSUN)の部屋のレイアウトデータセット上で試験された。Hedauデータセットは、ウェブおよびLabelMeから収集された209枚の訓練、53枚の検証、および105枚の試験画像を含有する。LSUNデータセットは、SUNデータベースからサンプリングされた4,000枚の訓練、394枚の検証、および1,000枚の試験画像から成る。全ての入力画像は、320×320ピクセルに再スケーリングされ、LSUN訓練セットのみ上で最初からRoomNet300を訓練するために使用された。全ての実験結果は、LSUNの部屋のレイアウト用課題ツールキットを使用して、オリジナル画像スケールで算出された。
【0054】
実装詳細。RoomNet300への入力は、分解能320×320ピクセルのRGB画像であって、出力は、関連付けられた部屋タイプクラスラベルを伴う、分解能40×40の部屋のレイアウト特徴点ヒートマップであった。他の実装では、画像分解能またはヒートマップ分解能は、異なり得る。経時的逆方向伝搬(BPTT)アルゴリズムが、バッチサイズ20の確率的勾配降下法(SGD)、0.5ドロップアウトレート、0.9モーメンタム、および0.0005加重減衰を用いて、モデルを訓練するために適用された。初期学習レートは、0.00001であって、それぞれ、基準時点150および200において、5分の1に減少した。全ての変形例が、225の総基準時点を用いて同一スキームを使用した。エンコーダおよびデコーダ加重は、初期化された。バッチ正規化および正規化線形ユニット(ReLU)活性化関数もまた、各畳み込み層後に使用され、訓練プロセスを改良した。入力画像の水平反転が、データ拡張として、訓練の間に使用された。いくつかの実施形態では、RoomNet300は、オープンソース深層学習フレームワークCaffe内に実装されることができる。
【0055】
グラウンドトゥルース特徴点ヒートマップは、そのエリアの大部分に関してゼロ値(背景)を有し得、そのわずかな部分のみが、ガウス分布(実際の特徴点場所と関連付けられた前景)に対応する。ネットワークの出力は、したがって、前景と背景分布との間の不平衡に起因して、ゼロに収束する傾向にあり得る。いくつかの実施形態では、勾配は、特徴点ヒートマップ毎に、前景エリアと背景エリアとの間の比率に基づいて加重された。背景ピクセルの勾配は、それらを0.2の係数で乗算することによって減少され、これは、訓練を有意により安定させた。ある場合には、背景内のピクセルは、例えば、5ピクセルを上回る、閾値距離、例えば、グラウンドトゥルースヒートマップを生成するために使用されるガウス分布の標準偏差より特徴点から遠いピクセルを含む。
【0056】
最初からの訓練は、RoomNetの一実施形態に関して、4 NVIDIA Titan X GPU上で約40時間かかった。完全モデルの1回の順方向推定(RoomNet再帰3反復)は、単一GPU上で83msかかった。最終試験予測を生成するために、画像のオリジナル入力と反転バージョンの両方が、ネットワークを通して起動され、ヒートマップが、ともに平均された(特徴点誤差における0.12%平均改良およびピクセル誤差における0.15%平均改良を考慮して)。特徴点場所は、対応するヒートマップの最大活性化場所であるように選定された。
(例示的性能)
【0057】
いくつかの実施形態では、部屋のレイアウト推定評価メトリックは、ピクセル誤差および特徴点誤差を含み得る。ピクセル誤差は、予測される表面ラベルとグラウンドトゥルースラベルとの間のピクセル毎誤差であり得る。特徴点誤差は、画像対角線長によって正規化される、予測される特徴点と注釈が付けられた特徴点場所との間の平均ユークリッド距離であり得る。
【0058】
正確度。両データセット上でのRoomNet300の性能が、表1および2に列挙される。以前の最良方法は、2ステップフレームワーク(別個の仮定ランク付けアプローチを伴う、ピクセル毎CNNベースのセグメント化)であった。本開示のRoomNet300は、特徴点誤差およびピクセル誤差の両方に関して、有意に改良し、以前の結果より優れており、最先端の性能を達成することができる。サイドヘッド部屋タイプ分類子は、LSUNデータセット上で81.5%の正確度を取得した。
【表1-1】
【表1-2】
【表2】
【表3】
【表4-1】
【表4-2】
【表5】
【0059】
ランタイムおよび複雑性。320×320の入力画像サイズ上の効率評価が、表3に示される。完全モデル(RoomNet再帰3反復)は、部屋のレイアウト推定の別の方法と比較して、200倍の加速を達成し、再帰構造を伴わないベースRoomNet(RoomNet基本)は、600倍の加速を達成した。計時は、本明細書に説明されるように、2回の順方向通過に関して行われた。提案されるRoomNet300のうちのいずれか1つを使用することは、表4に示されるように、有意な推定時間低減および改良された正確度を提供することができる。
例示的RoomNet分析
【0060】
再帰対直接予測。RoomNetアーキテクチャ内の各コンポーネントの効果が、LSUNデータセットを用いて調査された。表4は、RoomNet基本アーキテクチャをメモリ増強再帰エンコーダ-デコーダネットワークに拡張する有効性を示す。より多くの反復が、特徴点誤差およびピクセル誤差の両方に関して、より低い誤差率につながったことが観察された。すなわち、特徴点場所を補正するために反復的に回帰された再帰構造を伴う、RoomNet300は、6.95%特徴点誤差および10.46ピクセル誤差を達成した再帰構造を伴わないRoomNet300と比較して、6.3%特徴点誤差および9.86ピクセル誤差を達成した。さらなる有意な性能改良は、3回の反復後、観察されなかった。理論によって限定されるわけではないが、畳み込み層の加重が反復を横断して共有されるため、改良は、ネットワーク内の同一パラメータ容量に由来し得る。
【0061】
経時的深層監視の効果。エンコーダ-デコーダアーキテクチャを伴う再帰構造を適用するとき、ネットワーク内の各層は、訓練の間、深度のみではなく、また、入力と最終目的関数との間の経時的ステップも横断して、勾配を受信する。補助損失関数を異なる時間ステップにおいて追加する効果が、決定された。表5は、2回または3回の再帰反復を伴うRoomNet300を使用した経時的深層監視の影響を実証する。特徴点誤差およびピクセル誤差の両方における中間低減が、両方の場合に関して、補助損失を追加することによって認められた。いくつかの実施形態では、深層監視を伴う学習問題は、異なる時間ステップを通してより容易となり得る。時間内に3回の反復を伴うRoomNet300は、経時的深層監視が適用されないとき、2回の反復を伴うRoomNet300より性能が悪化した。これは、経時的深層監視が適用されるとき、修正された。再帰構造内により多くの反復を伴う、いくつかの実施形態では、経時的深層監視が、アーキテクチャを正常に訓練するために適用されることができる。
【0062】
定質的結果。RoomNet300の定質的結果が、
図7A-7Gに示される。
図7A-7Gは、大規模場面理解課題(LSUN)データセット上における例示的RoomNet予測および対応するグラウンドトゥルースを示す、画像である。RoomNetは、RGB画像をその入力704a-704g(各図中の第1の列に描かれる)としてとり、例示的部屋のレイアウト特徴点ヒートマップ708a-708g(各図中の第2の列)を生産した。最終特徴点は、最大応答を伴う場所をヒートマップから抽出することによって取得された。各図中の第3および第4の列は、
図2におけるように、取得された特徴点を具体的順序でつなげることによって、例示的ボックス状の部屋のレイアウト表現712a-712fg 716a-716gを示す。第3の列内の異なる表面は、異なる平行線模様パターンで示され、これは、レイアウトのセグメント化から生じ、天井、床、壁等を識別することができる。RoomNet部屋のレイアウト出力712a-712gは、異なる平行線模様において、床、天井、および壁を示す。表現716a-716gでは、部屋のレイアウトは、個別の入力画像704a-704g上に重畳される。各図中の第5および第6の列は、実際の部屋のレイアウトに関する例示的グラウンドトゥルース720a-720g、724a-724gを示す。部屋のレイアウト712a-712gおよび716a-716g(RoomNetによって決定された)と実際のグラウンドトゥルースレイアウト720a-720gおよび724a-724gとの間の対応は、顕著である。これらの例示的結果は、RoomNetが、オブジェクト(例えば、テーブル、椅子、ベッド等)による特徴点オクルージョンに対してロバストであることを実証する。画像が、鮮明であって、部屋のレイアウト境界/角が、オクルードされていないとき、RoomNet300は、高正確度を伴って、ボックス状の部屋のレイアウト表現を復元することができる。RoomNetフレームワークはまた、例えば、
図7B、7C、7D、7Fに実証されるオブジェクト(例えば、テーブル、椅子、ベッド等)による特徴点オクルージョンに対してもロバストであった。
【0063】
図8A-8Dは、RoomNetの実施形態からの部屋のレイアウト予測がグラウンドトゥルースレイアウトにあまり良好に合致しない実施例を示す、例示的画像である。RoomNet予測とグラウンドトゥルースとの間の差異は、本明細書に説明されるように、さらに低減または排除されることができる。各図中の第1の列は、例示的入力画像804a-804dを示す。各図中の第2の列は、例示的予測される特徴点ヒートマップ808a-808dを示す。各図中の第3および第4の列は、取得された例示的ボックス状の表現812a-812d、816a-816dを示す。第3の列内の異なる表面は、異なる平行線模様パターンで示され、レイアウトのセグメント化から生じ、天井、床、壁等を識別することができる。第5および第6の列は、例示的グラウンドトゥルース820a-820d、824a-824dを示す。RoomNet300のさらなる改良が、部屋のレイアウト境界は、かろうじて可視であるとき(例えば、
図8Aおよび8C)、または場面の所与の画像に関する1つを上回る妥当と思われる部屋のレイアウトが存在するとき(例えば、
図8Bおよび8D)、可能性として考えられ得る。
例示的代替エンコーダ-デコーダ
【0064】
LSUNデータセットを用いた提案されるアーキテクチャ内の各コンポーネントの効果が、実験的に決定された。調査される部屋のレイアウト推定タスクのための
図9A-9Fに示される6つの代替エンコーダ-デコーダアーキテクチャの評価は、(a)
図9Aに示される、バニラエンコーダ/デコーダ900a(RoomNet基本)、(b)
図9Bに示される、スタックされたエンコーダ-デコーダ900b、(c)
図9Cに示される、スキップコネクションを伴うスタックされたエンコーダ-デコーダ900c、(d)
図9Dに示される、フィードバックを伴うエンコーダ-デコーダ900d、(e)
図9Eに示される、メモリ増強再帰エンコーダ-デコーダ(RoomNet完全)900e、および(f)
図9Fに示される、フィードバックを伴うメモリ増強再帰エンコーダ-デコーダ900fを含んだ。RoomNet300のいくつかの実施形態は、あるタスクに関して、RoomNet300の他の実施形態に優る利点を有し得る。例えば、RoomNetのいくつかの実施形態は、
図8A-8Dに示される差異を低減または排除することができる。表6は、LSUNデータセット上における異なる変形例の性能を示す。
【表6】
【0065】
(a)および(b)構成900a、900bの比較は、ネットワークが、制約を複数のボトルネック層に課すことによって、部屋のレイアウト特徴点の空間構造を暗示的に学習するように強いられるため、エンコーダ-デコーダネットワークをスタックすることが、さらに性能を改良し得ることを示す。
【0066】
しかしながら、(c)構成900cにおけるようなスキップコネクションの追加は、試験される条件下、本タスクのための性能を改良しなかった。これは、訓練セットのサイズ(数千)が評価された他のデータセット(数百万)ほど大きくなく、したがって、スキップ層が具体的データセットのために必要ではなかったためであり得る。
【0067】
(d)構成900dにおけるように、同一エンコーダ-デコーダネットワークのための新しい入力としての入力と前の予測の連結として実装される、フィードバックループを追加することは、性能を改良した。反復毎に、ネットワークは、オリジナル入力とともに、これまでの準最適予測にアクセスし、現在の時間ステップにおける推定に役立てた。
【0068】
(e)構成900eにおけるメモリユニットを伴うエンコーダ-デコーダ再帰をRNNとして挙動させることは、最低特徴点誤差およびピクセル誤差を取得する(完全RoomNetモデル)。再帰エンコーダ-デコーダにおける側結合は、ネットワークが、情報を繰り越し、将来的時間ステップにおける予測に役立てることを可能にした。(f)構成900fにおけるフィードバックループをメモリ増強再帰エンコーダ-デコーダに追加することは、結果を改良しなかった。構成(e)900eにおけるメモリ増強構造を使用することは、フィードバックを伴わずに、すでに前の隠れ状態情報を十分に記憶することができることが可能性として考えられた。エンコーダ-デコーダの加重行列は、(b)および(c)構成900b、900cにおいて共有されなかったが、(d)、(e)、および(f)構成900d、900e、900fにおいて共有され、よりパラメータ上効率的なアーキテクチャをもたらした。
【0069】
事前訓練による特徴転送。外部データに起因する性能向上を切り離すために、(意味論セグメント化タスクにおける)SUNの事前に訓練されたモデルからRoomNetを微調整した結果が、決定された。表7に示されるように、そのようなRoomNetは、LSUNデータセット上における少なくとも7.95%特徴点誤差および9.31%ピクセル誤差を伴う他の方法と比較して、6.09%特徴点誤差および9.04%ピクセル誤差を達成した。表7は、余剰データまたは事前に訓練されたモデルを用いた部屋のレイアウト推定結果を反映する。いくつかの実施形態では、RoomNetは、付加的Hedau+訓練セットを使用して訓練され、NYUDv2 RGBD(RGB plus Depth)の事前に訓練されたモデルから微調整されることができる。表7は、PASCALおよびSUNの事前に訓練されたRoomNetから微調整した結果を示す。SUNの事前に訓練されたRoomNetは、LSUNデータセット上で最低特徴点誤差およびピクセル誤差を達成した。
【表7】
【0070】
いくつかの実施形態では、RoomNet300は、ゲーティング機構を含み、着信信号が再帰ユニットの状態を改変することを可能にすることができる。いくつかの実施形態では、RoomNet300は、シーケンシャルデータを使用して、訓練され、および/またはシーケンシャルデータを使用して、建物の部屋のレイアウトマップを予測することができる。
RoomNetを訓練する例示的プロセス
【0071】
図10は、RoomNetを訓練する例示的プロセス1000のフロー図である。プロセス1000は、画像、RoomNetアーキテクチャおよびパラメータ(例えば、NN加重)、部屋タイプ、2D特徴点場所(例えば、ヒートマップ)、部屋のレイアウト等を記憶するように構成される、非一過性メモリを備える、ハードウェアプロセッサによって実施されることができる。
【0072】
プロセス1000は、ブロック1004から開始し、そこで、部屋および部屋タイプの多くのタイプに関する訓練用部屋画像が、受信される。訓練用部屋画像はそれぞれ、基準部屋タイプと、部屋のレイアウト(例えば、床、天井、壁)を識別する、基準特徴点と関連付けられることができる。ある場合には、訓練画像は、手動で注釈が付けられ、画像に示される部屋に関するグラウンドトゥルース(例えば、特徴点場所および部屋タイプ)を示す。訓練用部屋画像は、単眼画像、赤色-緑色-青色(RGB)画像等であることができる。訓練画像は、HedauデータセットまたはLSUNデータセットから取得可能である。
【0073】
プロセス1000は、データ拡張方略(例えば、水平に反転された画像を用いて訓練データを増大させる)を実施し、訓練されたRoomNetの性能を改良するステップを含むことができる。部屋タイプの数は、2、3、5、10、11、15、20、またはそれを上回る等、異なる実装では、異なり得る。部屋タイプは、特徴点順序と関連付けられる、複数の特徴点と関連付けられることができる。特徴点は、特徴点順序でつなげられ、部屋のレイアウトを提供することができる。特徴点の数は、2、3、5、6、8、10、20、50、またはそれを上回る等、異なる実装では、異なり得る。
【0074】
ブロック1008では、部屋のレイアウト推定のためのニューラルネットワーク(例えば、RoomNet)が、生成されることができる。本明細書に説明されるように、RoomNetの実施形態は、エンコーダサブネットワークと、エンコーダネットワークに接続される、デコーダサブネットワークと、エンコーダネットワークに接続される、サイドヘッドまたはサブネットワークとを備えることができる。エンコーダサブネットワークは、複数の畳み込み層と、複数のプーリング層とを備えることができる。デコーダサブネットワークは、複数の畳み込み層と、複数のアップサンプリング層とを備えることができる。デコーダサブネットワークのデコーダ層の加重は、エンコーダサブネットワークの対応するエンコーダ層の加重を含むことができる。代替として、または加えて、デコーダサブネットワークのデコーダ層の加重は、エンコーダサブネットワークの対応するエンコーダ層の加重と同じであることができる。いくつかの実施形態では、エンコーダサブネットワークおよびデコーダサブネットワークは、複数の再帰層を備え、再帰エンコーダ-デコーダ構造(例えば、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワーク)を形成する。再帰層の再帰反復数は、2、3、5、10、またはそれを上回ることができる。いくつかの実施形態では、再帰層の反復の第1の再帰反復と関連付けられた加重は、再帰層の第2の再帰反復と関連付けられた加重と同じである。
【0075】
エンコーダサブネットワークおよびデコーダサブネットワークは、異なる実装では、異なるアーキテクチャを有することができる。例えば、エンコーダサブネットワークおよびデコーダサブネットワークは、スタックされたエンコーダ-デコーダアーキテクチャを有することができる。別の実施例として、エンコーダサブネットワークおよびデコーダサブネットワークは、スキップコネクションを伴う、スタックされたエンコーダ-デコーダアーキテクチャを有することができる。さらに別の実施例として、エンコーダサブネットワークおよびデコーダサブネットワークは、フィードバックを伴う、スタックされたエンコーダ-デコーダアーキテクチャを有することができる。一実施例では、エンコーダサブネットワークおよびデコーダサブネットワークは、メモリ増強再帰エンコーダ-デコーダ(MRED)アーキテクチャを有する。別の実施例では、エンコーダサブネットワークおよびデコーダサブネットワークは、フィードバックを伴う、メモリ増強再帰エンコーダ-デコーダ(MRED)アーキテクチャを有する。再帰層を伴うRoomNetの特徴マップは、いくつかの実施形態では、方程式[2]を使用して決定されることができる。
【0076】
ブロック1012では、部屋タイプ毎に複数の予測される2D特徴点が、RoomNetのエンコーダサブネットワークおよびデコーダサブネットワークおよび訓練用部屋画像を使用して、決定されることができる。訓練用部屋画像の次元は、予測されるヒートマップの次元より小さい、同一、またはより大きくあることができる。2D特徴点場所は、ある場合には、ヒートマップから抽出されることができる(例えば、ヒートマップ内の最大値として)。
【0077】
ブロック1016では、予測される部屋タイプは、RoomNetのエンコーダサブネットワークおよびサイドサブネットワークおよび訓練用部屋画像を使用して、決定されることができる。例えば、サイドサブネットワークは、全結合層等の複数の層を備えることができる。いくつかの実施形態では、サイドサブネットワークは、3つの全結合層を備える。サイドサブネットワークの出力層の次元および複数の部屋タイプの数は、同じであることができる。
【0078】
ブロック1020では、プロセス1000は、訓練画像内の基準特徴点に対する予測される特徴点内の誤差を表す第1の損失と、訓練画像内の基準部屋タイプに対する予測される部屋タイプ内の誤差を表す第2の損失とに基づいて、損失関数を最適化する(例えば、低減または最小限にする)ことができる。損失関数Lの実施例は、方程式[1]を参照して説明される。第1の損失は、予測される特徴点と基準特徴点との間のユークリッド損失であることができる。いくつかの実装では、予測される特徴点は、ヒートマップによって表され、基準(例えば、グラウンドトゥルース)特徴点に関する基準ヒートマップは、ガウス分布を基準特徴点場所上を中心として設置することによって、生成されることができる。第1の損失は、特徴点が入力訓練画像内の基準部屋タイプに関して存在する場合のみ、予測される特徴点にペナルティを課すように設定されることができる。第2の損失は、サイドサブネットワークが正しい部屋タイプに対する高信頼度値を生産するように促す、部屋タイプ分類子(例えば、部屋タイプサイドサブネットワークから出力される)に基づく、クロスエントロピ(例えば、対数)損失であることができる。
【0079】
いくつかの実施形態では、第1の損失を決定するステップは、基準特徴点を使用して、基準ヒートマップを決定するステップと、予測される特徴点に関して基準ヒートマップと予測されるヒートマップとの間の差異を決定するステップとを含む。基準ヒートマップは、各基準特徴点場所を中心とする分布を含むことができる。分布は、2次元ガウス分布を含むことができる。ガウス分布は、例えば、2、3、5、10、またはそれを上回るピクセルの標準偏差を有することができる。ガウス分布は、5%、10%、20%、25%、またはそれを上回る等、基準ヒートマップの次元のパーセンテージの標準偏差を有することができる。いくつかの実施形態では、基準ヒートマップを決定するステップは、例えば、ピクセル値を0.1、0.2、0.3等の1未満の減少係数で乗算することによって、ピクセルの閾値数であるピクセルの値を基準特徴点場所から離れるように減少させるステップを含むことができる。
【0080】
ブロック1024では、RoomNetのためのニューラルネットワークパラメータは、最適化された損失関数に基づいて、更新されることができる。いくつかの実施形態では、RoomNetの加重は、誤差逆方向伝播法によって更新されることができる。
【0081】
プロセス1000は、訓練画像セット(例えば、HedauまたはLSUNデータセット)内の訓練画像毎に反復され、ニューラルネットワークを調整し、低減または最小限にされた誤差(例えば、上記に説明されるように、ピクセル誤差または特徴点誤差)を伴う、ロバストなニューラルネットワークモデルを生産することができる。RoomNetの実施形態は、プロセス1000を使用して訓練され、次いで、拡張現実または複合現実、屋内ナビゲーション、場面再構築またはレンダリング等において、実世界画像に適用されることができる。
部屋のレイアウト推定のためのRoomNetを使用する例示的プロセス
【0082】
図11は、部屋のレイアウトを部屋画像から推定するためのRoomNetを使用する例示的プロセス1100のフロー図である。プロセス1100は、画像、RoomNetアーキテクチャおよびパラメータ(例えば、NN加重)、部屋のレイアウトタイプ、ヒートマップ、部屋のレイアウト等を記憶するように構成される、非一過性メモリを備える、ハードウェアプロセッサによって実施されることができる。
図12を参照して下記に説明されるように、ウェアラブルディスプレイシステム1200またはロボットシステムが、プロセス1100の実施形態を実装するように構成されることができる。
【0083】
プロセス1100は、ブロック1104から開始し、そこで、システム(例えば、
図12を参照して説明されるウェアラブルディスプレイシステム1200)が、可能性として考えられる部屋場面を含む、入力画像を受信する。画像は、1つの部屋場面を含むことができる。画像は、カラー画像(例えば、RGBまたはRGB-D)を備えることができ、画像は、単眼であってもよい。画像は、ビデオのフレームであってもよく、
図12を参照して説明されるウェアラブルディスプレイシステム1200の外向きに面した結像システム1244を使用して取得されてもよい。
【0084】
ブロック1108では、ウェアラブルディスプレイシステム1200は、
図10に図示されるプロセス1000によって訓練されたRoomNet等の部屋のレイアウト推定のためのニューラルネットワーク(RoomNet)にアクセスすることができる。RoomNetは、エンコーダサブネットワークと、エンコーダネットワークに接続される、デコーダサブネットワークと、エンコーダネットワークに接続される、サイドサブネットワークとを含むことができる。いくつかの実施形態では、エンコーダサブネットワークおよびデコーダサブネットワークは、複数の再帰層を備える。例えば、エンコーダ-デコーダサブネットワークは、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークを備えることができる。再帰層を伴うRoomNetの特徴マップが、上記の方程式[2]を使用して、決定されることができる。RoomNetのアーキテクチャは、異なる実装では、異なり得る。例えば、エンコーダサブネットワークおよびデコーダサブネットワークは、スタックされたエンコーダ-デコーダアーキテクチャを備えることができる。別の実施例として、エンコーダサブネットワークおよびデコーダサブネットワークは、複数のスキップコネクションを備えることができる。一実施例では、サイドサブネットワークは、複数のフィードバック層を備える。
【0085】
ブロック1112では、プロセス1100は、RoomNetのエンコーダサブネットワークおよびデコーダサブネットワークおよび部屋画像を使用して、複数の部屋タイプのそれぞれに対応する複数の2D特徴点を決定することができる。2D特徴点は、ヒートマップと関連付けられることができ、特徴点場所は、ヒートマップ内で生じる最大値としてヒートマップから抽出されることができる。部屋タイプの数は、5(例えば、ある場合には、11)を上回ることができる。
【0086】
ブロック1116では、ウェアラブルディスプレイシステム1200は、RoomNetのサイドサブネットワークおよび部屋画像を使用して、予測される部屋タイプを複数の部屋タイプから決定することができる。
【0087】
ブロック1120では、プロセス1100は、部屋画像内の部屋のレイアウトを予測される部屋タイプおよび2D特徴点から決定することができる。部屋のレイアウトは、予測される部屋タイプと関連付けられた特徴点順序を有する、順序付けられた特徴点を含むことができる。特徴点の数は、2、3、4、6、8、10、またはそれを上回る等、異なる実装では、異なり得る。部屋のレイアウトは、天井、床、壁等としてのレイアウト表面の識別等、レイアウト表面の意味論セグメント化を含むことができる。意味論セグメント化は、順序付けられた2D特徴点から導出されることができる。故に、ニューラルネットワークは、関連付けられた部屋タイプを伴う具体的順序であり得る、2D特徴点を使用して、3D部屋のレイアウト構造を提供することができる。
【0088】
ブロック1124では、プロセス1100は、部屋のレイアウトを拡張または複合現実用途において、自律的屋内ナビゲーションのため、場面再構築またはレンダリングのため等に利用することができる。
【0089】
ウェアラブルディスプレイシステム1200(下記の
図12を参照して説明される)は、入力画像内の部屋の予測されるレイアウトに基づいて、システムのユーザと相互作用することができる。いくつかの実施形態では、ウェアラブルディスプレイシステム1200は、部屋画像内の予測される部屋のレイアウトに基づいて、屋内ナビゲーションを実施し、例えば、ユーザを部屋内の所望の場所に案内することができる(例えば、部屋のレイアウトおよび(随意に)場所までの経路をレンダリングすることによって)。他の実施形態では、ウェアラブルディスプレイシステム1200は、部屋画像内の部屋の予測されるレイアウトに基づいて、部屋画像内の場面を再構築することができる。
(例示的NN層)
【0090】
上記に説明されるように、RoomNetの実施形態は、ニューラルネットワークを備えることができる。深層ニューラルネットワーク(DNN)等のニューラルネットワーク(NN)の層は、線形または非線形変換をその入力に適用し、その出力を生成することができる。深層ニューラルネットワーク層は、正規化層、畳み込み層、ソフトサイン層、正規化線形層、連結層、プーリング層、再帰層、インセプション様層、または任意のそれらの組み合わせであることができる。正規化層は、その入力の明度を正規化し、例えば、ユークリッドまたはL2正規化を用いて、その出力を生成することができる。正規化層は、例えば、複数の画像の明度を相互に対して一度に正規化し、複数の正規化された画像をその出力として生成することができる。明度を正規化するための方法の非限定的実施例は、ローカルコントラスト正規化(LCN)またはローカル応答正規化(LRN)を含む。ローカルコントラスト正規化は、ピクセルベースで画像のローカル領域を正規化し、ゼロの平均値および1の分散(または平均値および分散の他の値)を有することによって、画像のコントラストを非線形に正規化することができる。ローカル応答正規化は、ローカル入力領域にわたって画像を正規化し、ゼロの平均値および1の分散(または平均値および分散の他の値)を有することができる。正規化層は、訓練プロセスを加速させ得る。
【0091】
畳み込み層は、その入力を畳み込み、その出力を生成する、カーネルのセットを適用することができる。ソフトサイン層は、ソフトサイン関数をその入力に適用することができる。ソフトサイン関数(softsign(x))は、例えば、(x/(1+|x|))であることができる。ソフトサイン層は、要素毎誤対応の影響を無視してもよい。正規化線形層は、正規化線形層ユニット(ReLU)またはパラメータ化された正規化線形層ユニット(PReLU)であることができる。ReLU層は、ReLU関数をその入力に適用し、その出力を生成することができる。ReLU関数ReLU(x)は、例えば、max(0,x)であることができる。PReLU層は、PReLU関数をその入力に適用し、その出力を生成することができる。PReLU関数PReLU(x)は、例えば、x≧0である場合、xであって、x<0である場合、axであることができ、aは、正の数であることができる。連結層は、その入力を連結し、その出力を生成することができる。例えば、連結層は、4つの5×5画像を連結し、1つの20×20画像を生成することができる。プーリング層は、プーリング関数を適用することができ、これは、その入力をダウンサンプリングし、その出力を生成する。例えば、プーリング層は、20×20画像を10×10画像にダウンサンプリングすることができる。プーリング関数の非限定的実施例は、最大プーリング、平均プーリング、または最小プーリングを含む。
【0092】
時間点tでは、再帰層は、隠蔽状態s(t)を計算することができ、再帰接続は、時間点tにおける隠蔽状態s(t)を再帰層に後続時間点t+1における入力として提供することができる。再帰層は、時間点tにおける隠蔽状態s(t)に基づいて、時間点t+1においてその出力を計算することができる。例えば、再帰層は、ソフトサイン関数を時間点tにおける隠蔽状態s(t)に適用し、時間点t+1におけるその出力を計算することができる。時間点t+1における再帰層の隠蔽状態は、その入力として、時間点tにおける再帰層の隠蔽状態s(t)を有する。再帰層は、例えば、ReLU関数をその入力に適用することによって、隠蔽状態s(t+1)を計算することができる。インセプション様層は、正規化層、畳み込み層、ソフトサイン層、ReLU層およびPReLU層等の正規化線形層、連結層、プーリング層、または任意のそれらの組み合わせのうちの1つ以上のものを含むことができる。
【0093】
NN内の層の数は、異なる実装では、異なり得る。例えば、DNN内の層の数は、50、100、200、またはそれを上回ることができる。深層ニューラルネットワーク層の入力タイプは、異なる実装では、異なり得る。例えば、層は、いくつかの層の出力をその入力として受信することができる。層の入力は、5つの層の出力を含むことができる。別の実施例として、層の入力は、NNの層の1%を含むことができる。層の出力は、いくつかの層の入力であることができる。例えば、層の出力は、5つの層の入力として使用されることができる。別の実施例として、層の出力は、NNの層の1%の入力として使用されることができる。
【0094】
層の入力サイズまたは出力サイズは、非常に大きくなることができる。層の入力サイズまたは出力サイズは、n×mであることができ、nは、入力または出力の幅を示し、mは、高さを示す。例えば、nまたはmは、11、21、31、またはそれを上回ることができる。層の入力または出力のチャネルサイズは、異なる実装では、異なり得る。例えば、層の入力または出力のチャネルサイズは、4、16、32、64、128、またはそれを上回ることができる。層のカーネルサイズは、異なる実装では、異なり得る。例えば、カーネルサイズは、n×mであることができ、nは、カーネルの幅を示し、mは、高さを示す。例えば、nまたはmは、5、7、9、またはそれを上回ることができる。層のストライドサイズは、異なる実装では、異なり得る。例えば、深層ニューラルネットワーク層のストライドサイズは、3、5、7、またはそれを上回ることができる。
【0095】
いくつかの実施形態では、NNは、NNの出力をともに計算する、複数のNNを指し得る。複数のNNの異なるNNは、異なるタスクのために訓練されることができる。プロセッサ(例えば、
図12を参照して説明されるローカルデータ処理モジュール1224のプロセッサ)は、複数のNNのNNの出力を計算し、NNの出力を決定することができる。例えば、複数のNNのNNの出力は、尤度スコアを含むことができる。プロセッサは、複数のNNの異なるNNの出力の尤度スコアに基づいて、複数のNNを含む、NNの出力を決定することができる。
例示的ウェアラブルディスプレイシステム
【0096】
いくつかの実施形態では、ユーザデバイスは、ウェアラブルディスプレイデバイスであることができる、またはその中に含まれることができ、これは、有利には、より没入型の仮想現実(VR)、拡張現実(AR)、または複合現実(MR)体験を提供し得、デジタル的に再現された画像またはその一部が、それらが現実であるように見える、またはそのように知覚され得る様式で装着者に提示される。
【0097】
理論によって限定されるわけではないが、ヒトの眼は、典型的には、有限数の深度平面を解釈し、深度知覚を提供し得ると考えられる。その結果、知覚された深度の高度に真実味のあるシミュレーションが、眼にこれらの限定数の深度平面のそれぞれに対応する画像の異なる提示を提供することによって達成され得る。例えば、導波管のスタックを含有するディスプレイは、ユーザまたは視認者の眼の正面に位置付けられて装着されるように構成されてもよい。導波管のスタックは、複数の導波管を使用して、画像投入デバイス(例えば、1つ以上の光ファイバを介して画像情報を送出する、離散ディスプレイまたは多重化されたディスプレイの出力端)からの光を特定の導波管と関連付けられた深度平面に対応する特定の角度(および発散量)で視認者の眼に指向することによって、3次元知覚を眼/脳に提供するために利用され得る。
【0098】
いくつかの実施形態では、視認者の眼毎に1つの導波管の2つのスタックが、異なる画像を各眼に提供するために利用されてもよい。一実施例として、拡張現実場面は、AR技術の装着者に、人々、木々、背景における建物、およびコンクリートプラットフォームを特徴とする実世界公園状設定が見えるようなものであってもよい。これらのアイテムに加え、AR技術の装着者はまた、実世界プラットフォーム上に立っているロボット像と、マルハナバチの擬人化のように見える飛んでいる漫画状アバタキャラクタとを「見ている」と知覚し得るが、ロボット像およびマルハナバチは、実世界には存在しない。導波管のスタックは、入力画像に対応するライトフィールドを生成するために使用されてもよく、いくつかの実装では、ウェアラブルディスプレイは、ウェアラブルライトフィールドディスプレイを備える。ライトフィールド画像を提供するためのウェアラブルディスプレイデバイスおよび導波管スタックの実施例は、米国特許公開第2015/0016777号(それが含有する全てに関して参照することによってその全体として本明細書に組み込まれる)に記載されている。
【0099】
図12は、VR、AR、またはMR体験をディスプレイシステム装着者または視認者1204に提示するために使用され得る、ウェアラブルディスプレイシステム1200の実施例を図示する。ウェアラブルディスプレイシステム1200は、本明細書に説明される用途または実施形態のいずれかを実施するようにプログラムされてもよい(例えば、RoomNetを使用して、部屋のレイアウトを推定する)。ディスプレイシステム1200は、ディスプレイ1208と、そのディスプレイ1208の機能をサポートするための種々の機械的および電子モジュールおよびシステムとを含む。ディスプレイ1208は、フレーム1212に結合されてもよく、これは、ディスプレイシステム装着者または視認者1204によって装着可能であって、ディスプレイ1208を装着者1204の眼の正面に位置するように構成される。ディスプレイ1208は、ライトフィールドディスプレイであってもよい。いくつかの実施形態では、スピーカ1216は、フレーム1212に結合され、ユーザの外耳道に隣接して位置付けられ、いくつかの実施形態では、示されない別のスピーカが、ユーザの他の外耳道に隣接して位置付けられ、ステレオ/調節可能音制御を提供する。ディスプレイシステム1200は、装着者1204の周囲の環境の画像(例えば、静止画像またはビデオ)を取得し得る、外向きに面した結像システム1244(例えば、1つ以上のカメラ)を含むことができる。外向きに面した結像システム1244によって取得される画像は、RoomNetの実施形態によって分析され、装着者1204の周囲の環境内の部屋のレイアウトの表現を決定することができる。
【0100】
ディスプレイ1208は、有線導線または無線コネクティビティ等によって、ローカルデータ処理モジュール1224に動作可能に結合され1220、これは、フレーム1212に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ1204に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る。
【0101】
ローカル処理およびデータモジュール1224は、ハードウェアプロセッサと、非一過性デジタルメモリ、例えば、不揮発性メモリ(例えば、フラッシュメモリ等)とを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、(a)画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等のセンサ(例えば、フレーム1212に動作可能に結合され得る、または別様に、装着者1204に取り付けられ得る)から捕捉されたデータ、および/または(b)可能性として、処理または読出後にディスプレイ1208への通過のために、遠隔処理モジュール1228および/または遠隔データリポジトリ1232を使用して入手および/または処理されたデータを含む。ローカル処理およびデータモジュール1224は、これらの遠隔モジュール1228、1232が、相互に動作可能に結合され、ローカル処理およびデータモジュール1224へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク1236、1240によって、遠隔処理モジュール1228および遠隔データリポジトリ1232に動作可能に結合されてもよい。画像捕捉デバイスは、眼画像セグメント化または眼追跡プロシージャにおいて使用される眼画像を捕捉するために使用されることができる。
【0102】
いくつかの実施形態では、遠隔処理モジュール1228は、データおよび/または画像捕捉デバイスによって捕捉されたビデオ情報等の画像情報を分析および処理するように構成される、1つ以上のプロセッサを備えてもよい(例えば、RoomNetを実施することによって)。ビデオデータは、ローカル処理およびデータモジュール1224内にローカルで記憶されてもよいおよび/または遠隔データリポジトリ1232内に記憶されてもよい。いくつかの実施形態では、遠隔データリポジトリ1232は、デジタルデータ記憶設備を備えてもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュール1224において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
【0103】
いくつかの実装では、ローカル処理およびデータモジュール1224および/または遠隔処理モジュール1228は、RoomNetの実施形態を実施し、部屋のレイアウトを決定するようにプログラムされる。例えば、ローカル処理およびデータモジュール1224および/または遠隔処理モジュール1228は、
図11を参照して説明されるプロセス1100の実施形態を実施するようにプログラムされることができる。ローカル処理およびデータモジュール1224および/または遠隔処理モジュール1228は、本明細書に開示される部屋のレイアウト推定方法1100を実施するようにプログラムされることができる。画像捕捉デバイスは、特定の用途(例えば、拡張現実(AR)または複合現実(MR)、人間-コンピュータ相互作用(HCI)、自律車両、ドローン、またはロボット全般)のためのビデオを捕捉することができる。ビデオ(またはビデオからの1つ以上のフレーム)は、処理モジュール1224、1228の一方または両方によって、算出RoomNetアーキテクチャの実施形態を使用して分析されることができる。ある場合には、RoomNetの分析の少なくとも一部を遠隔処理モジュール(例えば、「クラウド」)にオフロードすることは、計算の効率または速度を改良し得る。RoomNetニューラルネットワークのパラメータ(例えば、加重、バイアス項、プーリング層のためのサブサンプリング係数、異なる層内のカーネルの数およびサイズ、特徴マップの数、部屋のレイアウトタイプ、特徴点ヒートマップ等)は、データモジュール1224および/または1232内に記憶されることができる。
【0104】
RoomNet分析の結果(例えば、方法1100の出力)は、付加的動作または処理のために、処理モジュール1224、1228の一方または両方によって使用されることができる。例えば、ウェアラブルディスプレイシステム1200の処理モジュール1224、1228は、方法1100の出力に基づいて、拡張または複合現実、屋内ナビゲーション、または場面再構築またはレンダリング等の付加的用途を実施するようにプログラムされることができる。故に、ウェアラブルシステム200は、RoomNetを使用して、部屋のレイアウトをリアルタイムで提供することができる。
【0105】
例えば、ウェアラブルディスプレイシステム1200は、オブジェクト、壁、床、天井、ドア等が、複合現実環境内で相互に対して位置する場所を説明する、世界マップ(例えば、ローカルまたは遠隔データリポジトリ1224、1240内に記憶される)を利用することができる。世界マップの使用に関するさらなる詳細は、米国特許公開第2015/0016777号(それが含有する全てに関して、参照することによって本明細書に組み込まれる)に説明される。RoomNetの出力(例えば、方法1100の出力)は、世界マップを更新し、システム1200の装着者が位置する部屋に関する部屋のレイアウトを含めるために使用されることができる。
【0106】
RoomNetアーキテクチャは、ユーザの環境内のオブジェクトに関する画像を分析する、他のオブジェクト認識装置または深層学習システムと併用されることができる。例えば、2017年11月14日に出願され、「Deep Learning System for Cuboid Detection」と題された米国特許出願第15/812,928号(それが含有する全てに関して、参照することによってその全体として本明細書に組み込まれる)は、画像内の3Dの直方体形状のオブジェクトを検出するための機械学習技法を説明する。いくつかの実施形態では、RoomNetアーキテクチャは、部屋のレイアウトを識別するために使用されることができ、直方体検出アーキテクチャは、部屋のレイアウト内の直方体オブジェクトを識別または位置特定するために使用されることができる。本情報は、ウェアラブルディスプレイシステム1200の世界マップに追加され、改良されたARまたはMRユーザ体験を提供することができる。
【0107】
さらに別の実施例として、ロボットが、RoomNetの実施形態を利用し、部屋のレイアウトを決定し、次いで、部屋内のロボットの自動化されたナビゲーションのために、部屋のレイアウトを使用することができる。ロボットは、自律的屋内ロボット(例えば、ロボット吸引クリーナー、モップ、掃除機)、ウェアハウスロボット(例えば、自動保管、取出、および在庫管理動作のために使用される)、屋内飛行ドローン等を含むことができる。
付加的側面
【0108】
第1の側面では、部屋のレイアウトを推定するためのシステムが、開示される。本システムは、部屋のレイアウトの推定のための部屋画像と、部屋のレイアウトを推定するためのニューラルネットワークであって、エンコーダ-デコーダサブネットワークと、エンコーダ-デコーダサブネットワークに接続される、分類子サブネットワークとを備える、ニューラルネットワークとを記憶するように構成される、非一過性メモリと、非一過性メモリと通信するハードウェアプロセッサであって、部屋画像にアクセスし、エンコーダ-デコーダサブネットワークおよび部屋画像を使用して、複数の部屋タイプに対応する複数の予測される2次元(2D)特徴点マップを決定し、エンコーダ-デコーダサブネットワーク、分類子サブネットワーク、および部屋画像を使用して、予測される部屋タイプを複数の部屋タイプから決定し、複数の予測される2D特徴点マップおよび予測される部屋タイプを使用して、予測される部屋タイプと関連付けられた複数の順序付けられた特徴点を決定し、複数の順序付けられた特徴点を使用して、部屋画像内の部屋の予測されるレイアウトを決定するようにプログラムされる、ハードウェアプロセッサとを備える。
【0109】
第2の側面では、複数の部屋タイプ内の各部屋タイプは、部屋タイプ特徴点の順序付けられたセットを含む、側面1に記載のシステム。
【0110】
第3の側面では、複数の部屋タイプ内の各部屋タイプは、部屋タイプ内の領域に関する意味論セグメント化を含み、意味論セグメント化は、床、天井、または壁としての識別を含む、側面2に記載のシステム。
【0111】
第4の側面では、第1の特徴点順序は、複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、第1の特徴点順序および第2の特徴点順序は、異なる、側面2または側面3に記載のシステム。
【0112】
第5の側面では、部屋画像は、単眼画像を含む、側面1-4のいずれか1項に記載のシステム。
【0113】
第6の側面では、部屋画像は、赤色-緑色-青色(RGB)画像を含む、側面1-5のいずれか1項に記載のシステム。
【0114】
第7の側面では、部屋画像の次元は、予測される2D特徴点マップの次元より大きい、側面1-6のいずれか1項に記載のシステム。
【0115】
第8の側面では、エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のプーリング層を含む、エンコーダサブネットワークを備える、側面1-7のいずれか1項に記載のシステム。
【0116】
第9の側面では、エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のアップサンプリング層を含む、デコーダサブネットワークを備える、側面1-8のいずれか1項に記載のシステム。
【0117】
第10の側面では、エンコーダ-デコーダサブネットワークは、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークを備える、側面1-9のいずれか1項に記載のシステム。
【0118】
第11の側面では、エンコーダ-デコーダサブネットワークは、複数の再帰層を備える、側面1-10のいずれか1項に記載のシステム。
【0119】
第12の側面では、複数の再帰層の再帰反復数は、2である、側面11に記載のシステム。
【0120】
第13の側面では、複数の再帰層の再帰反復数は、少なくとも3である、側面11に記載のシステム。
【0121】
第14の側面では、複数の再帰層はそれぞれ、加重行列を有し、加重行列は、複数の再帰層の全てに関して同一である、側面11-13のいずれか1項に記載のシステム。
【0122】
第15の側面では、予測される2次元(2D)特徴点マップは、ヒートマップを含む、側面1-14のいずれか1項に記載のシステム。
【0123】
第16の側面では、ハードウェアプロセッサは、ヒートマップからの特徴点場所をヒートマップの最大値として抽出するようにプログラムされる、側面15に記載のシステム。
【0124】
第17の側面では、ハードウェアプロセッサは、部屋画像を分析するオブジェクト認識装置からオブジェクト情報にアクセスし、オブジェクト情報と部屋の予測されるレイアウトを組み合わせるようにプログラムされる、側面1-16のいずれか1項に記載のシステム。
【0125】
第18の側面では、オブジェクト認識装置は、部屋画像内の直方体を検出するように構成される、側面17に記載のシステム。
【0126】
第19の側面では、ウェアラブルディスプレイデバイスが、開示される。ウェアラブルディスプレイデバイスは、部屋のレイアウトの推定のための部屋画像を捕捉するように構成される、外向きに面した結像システムと、側面1-18のいずれか1項に記載のシステムとを備える。
【0127】
第20の側面では、部屋のレイアウトを推定するためのニューラルネットワークを訓練するのためのシステムが、開示される。本システムは、ニューラルネットワークのためのパラメータを記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、訓練用部屋画像を受信し、訓練用部屋画像は、複数の部屋タイプからの基準部屋タイプと、部屋の基準レイアウトと関連付けられた基準特徴点と関連付けられ、部屋のレイアウト推定のためのニューラルネットワークを生成し、ニューラルネットワークは、複数の部屋タイプのそれぞれと関連付けられた予測される部屋のレイアウトと関連付けられた予測される2次元(2D)特徴点を出力するように構成される、エンコーダ-デコーダサブネットワークと、予測される部屋タイプを複数の部屋タイプから出力するように構成される、エンコーダ-デコーダネットワークに接続される、サイドサブネットワークとを備え、予測される2D特徴点に関する第1の損失および予測される部屋タイプに関する第2の損失に基づいて、損失関数を最適化し、最適化された損失関数に基づいて、ニューラルネットワークのパラメータを更新するようにプログラムされる、ハードウェアプロセッサとを備える。
【0128】
第21の側面では、複数の部屋タイプの数は、5を上回る、側面20に記載のシステム。
【0129】
第22の側面では、基準特徴点および予測される2D特徴点は、特徴点順序と関連付けられる、側面20または側面21に記載のシステム。
【0130】
第23の側面では、第1の特徴点順序は、複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、第1の特徴点順序および第2の特徴点順序は、異なる、側面20-22のいずれか1項に記載のシステム。
【0131】
第24の側面では、訓練用部屋画像は、単眼画像を含む、側面20-23のいずれか1項に記載のシステム。
【0132】
第25の側面では、訓練用部屋画像は、赤色-緑色-青色(RGB)画像を含む、側面20-24のいずれか1項に記載のシステム。
【0133】
第26の側面では、訓練用部屋画像の次元は、予測される2D特徴点と関連付けられたマップの次元より大きい、側面20-25のいずれか1項に記載のシステム。
【0134】
第27の側面では、エンコーダサブネットワークおよびデコーダサブネットワークは、複数の再帰層を備える、側面20-26のいずれか1項に記載のシステム。
【0135】
第28の側面では、再帰層の再帰反復数は、2または3である、側面27に記載のシステム。
【0136】
第29の側面では、深層監視が、再帰層に適用される、側面27または側面28に記載のシステム。
【0137】
第30の側面では、再帰層の反復の第1の再帰反復と関連付けられた加重は、再帰層の反復の第2の再帰反復と関連付けられた加重と同じである、側面27-29のいずれか1項に記載のシステム。
【0138】
第31の側面では、複数の再帰層は、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークとして構成される、側面27-30のいずれか1項に記載のシステム。
【0139】
第32の側面では、サイドサブネットワークは、部屋タイプ分類子を含む、側面20-31のいずれか1項に記載のシステム。
【0140】
第33の側面では、予測される2D特徴点に関する第1の損失は、複数の基準特徴点場所と予測される2D特徴点との間のユークリッド損失を含む、側面20-32のいずれか1項に記載のシステム。
【0141】
第34の側面では、予測される部屋タイプに関する第2の損失は、クロスエントロピ損失を含む、側面20-33のいずれか1項に記載のシステム。
【0142】
第35の側面では、予測される2D特徴点は、予測されるヒートマップから抽出される、側面20-34のいずれか1項に記載のシステム。
【0143】
第36の側面では、ハードウェアプロセッサは、訓練画像の基準特徴点と関連付けられた基準ヒートマップを計算し、予測されるヒートマップと基準ヒートマップとの間の差異に基づいて、予測される2D特徴点に関する第1の損失を計算するようにプログラムされる、側面35に記載のシステム。
【0144】
第37の側面では、基準ヒートマップは、基準特徴点毎の場所を中心とする2次元分布を含む、側面36に記載のシステム。
【0145】
第38の側面では、基準ヒートマップは、基準特徴点から離れた背景と、基準特徴点と関連付けられた前景とを含み、ハードウェアプロセッサは、前景と背景との間の比率に基づいて、基準ヒートマップ内の勾配に加重するようにプログラムされる、側面36または側面37に記載のシステム。
【0146】
第39の側面では、基準ヒートマップ内の勾配に加重するために、ハードウェアプロセッサは、1未満の減少係数によって、背景内のピクセルの値を減少させるようにプログラムされる、側面38に記載のシステム。
【0147】
第40の側面では、ウェアラブルディスプレイシステムが、開示される。本システムは、ウェアラブルディスプレイシステムの装着者の環境の部屋画像を取得するように構成される、外向きに面した結像システムと、部屋画像を記憶するように構成される、非一過性メモリと、非一過性メモリと通信する、ハードウェアプロセッサであって、環境の部屋画像にアクセスし、部屋画像を分析し、部屋画像内の予測される部屋のレイアウトを決定し、部屋画像内を分析するために、プロセッサは、ニューラルネットワークを使用して、部屋画像内の部屋に関する部屋タイプと関連付けられた2次元(2D)特徴点の順序付けられたセットを決定するようにプログラムされ、少なくとも部分的に、2D特徴点および部屋タイプに基づいて、部屋のレイアウトを提供するようにプログラムされる、プロセッサとを備える。
【0148】
第41の側面では、ニューラルネットワークは、畳み込みエンコーダ-デコーダネットワークを備える、側面40に記載のウェアラブルディスプレイシステム。
【0149】
第42の側面では、畳み込みエンコーダ-デコーダネットワークは、メモリ増強再帰エンコーダ-デコーダネットワークを備える、側面41に記載のウェアラブルディスプレイシステム。
【0150】
第43の側面では、ニューラルネットワークは、部屋タイプを決定するように構成される、分類子を含む、側面40-42のいずれか1項に記載のウェアラブルディスプレイシステム。
【0151】
第44の側面では、ハードウェアプロセッサはさらに、2D特徴点の順序付けられたセットをヒートマップから抽出するようにプログラムされる、側面40-43のいずれか1項に記載のウェアラブルディスプレイシステム。
【0152】
第45の側面では、ハードウェアプロセッサはさらに、部屋画像を分析するオブジェクト認識装置からオブジェクト情報にアクセスし、オブジェクト情報と部屋のレイアウトを組み合わせるようにプログラムされる、側面40-44のいずれか1項に記載のウェアラブルディスプレイシステム。
【0153】
第46の側面では、部屋のレイアウトを推定するための方法が、開示される。本方法は、部屋のレイアウトの推定のための部屋画像にアクセスするステップと、部屋のレイアウトを推定するためのニューラルネットワークのエンコーダ-デコーダサブネットワークおよび部屋画像を使用して、複数の部屋タイプに対応する複数の予測される2次元(2D)特徴点マップを決定するステップと、エンコーダ-デコーダサブネットワーク、エンコーダ-デコーダサブネットワークに接続される、ニューラルネットワークの分類子サブネットワーク、および部屋画像を使用して、予測される部屋タイプを複数の部屋タイプから決定するステップと、複数の予測される2D特徴点マップおよび予測される部屋タイプを使用して、予測される部屋タイプと関連付けられた複数の順序付けられた特徴点を決定するステップと、複数の順序付けられた特徴点を使用して、部屋画像内の部屋の予測されるレイアウトを決定するステップとを含む。
【0154】
第47の側面では、複数の部屋タイプ内の各部屋タイプは、部屋タイプ特徴点の順序付けられたセットを含む、側面46に記載の方法。
【0155】
第48の側面では、複数の部屋タイプ内の各部屋タイプは、部屋タイプ内の領域に関する意味論セグメント化を含み、意味論セグメント化は、床、天井、または壁としての識別を含む、側面47に記載の方法。
【0156】
第49の側面では、第1の特徴点順序は、複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、第1の特徴点順序および第2の特徴点順序は、異なる、側面47または側面48に記載の方法。
【0157】
第50の側面では、部屋画像は、単眼画像を含む、側面46-49のいずれか1項に記載の方法。
【0158】
第51の側面では、部屋画像は、赤色-緑色-青色(RGB)画像を含む、側面46-50のいずれか1項に記載の方法。
【0159】
第52の側面では、部屋画像の次元は、予測される2D特徴点マップの次元より大きい、側面46-51のいずれか1項に記載の方法。
【0160】
第53の側面では、エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のプーリング層を含む、エンコーダサブネットワークを備える、側面46-52のいずれか1項に記載の方法。
【0161】
第54の側面では、エンコーダ-デコーダサブネットワークは、複数の畳み込み層および複数のアップサンプリング層を含む、デコーダサブネットワークを備える、側面46-53のいずれか1項に記載の方法。
【0162】
第55の側面では、エンコーダ-デコーダサブネットワークは、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークを備える、側面46-54のいずれか1項に記載の方法。
【0163】
第56の側面では、エンコーダ-デコーダサブネットワークは、複数の再帰層を備える、側面46-55のいずれか1項に記載の方法。
【0164】
第57の側面では、複数の再帰層の再帰反復数は、2である、側面56に記載の方法。
【0165】
第58の側面では、複数の再帰層の再帰反復数は、少なくとも3である、側面56に記載の方法。
【0166】
第59の側面では、複数の再帰層はそれぞれ、加重行列を有し、加重行列は、複数の再帰層の全てに関して同一である、側面56-58のいずれか1項に記載の方法。
【0167】
第60の側面では、予測される2次元(2D)特徴点マップは、ヒートマップを含む、側面46-59のいずれか1項に記載の方法。
【0168】
第61の側面では、ヒートマップから特徴点場所をヒートマップの最大値として抽出するステップをさらに含む、側面60に記載の方法。
【0169】
第62の側面では、部屋画像を分析し、オブジェクト情報と部屋の予測されるレイアウトを組み合わせる、オブジェクト認識装置から、オブジェクト情報にアクセスするステップをさらに含む、側面46-61のいずれか1項に記載の方法。
【0170】
第63の側面では、オブジェクト認識装置を使用して、部屋画像内の直方体を検出するステップをさらに含む、側面62に記載の方法。
【0171】
第64の側面では、部屋のレイアウトを推定するためのニューラルネットワークを訓練するための方法が、開示される。本方法は、訓練用部屋画像を受信するステップであって、訓練用部屋画像は、複数の部屋タイプからの基準部屋タイプと、部屋の基準レイアウトと関連付けられた基準特徴点と関連付けられる、ステップと、部屋のレイアウト推定のためのニューラルネットワークを生成するステップであって、ニューラルネットワークは、複数の部屋タイプのそれぞれと関連付けられた予測される部屋のレイアウトと関連付けられた予測される2次元(2D)特徴点を出力するように構成される、エンコーダ-デコーダサブネットワークと、予測される部屋タイプを複数の部屋タイプから出力するように構成される、エンコーダ-デコーダネットワークに接続される、サイドサブネットワークとを備える、ステップと、予測される2D特徴点に関する第1の損失および予測される部屋タイプに関する第2の損失に基づいて、損失関数を最適化するステップと、最適化された損失関数に基づいて、ニューラルネットワークのパラメータを更新するステップとを含む。
【0172】
第65の側面では、複数の部屋タイプの数は、5を上回る、側面64に記載の方法。
【0173】
第66の側面では、基準特徴点および予測される2D特徴点は、特徴点順序と関連付けられる、側面64または側面65に記載の方法。
【0174】
第67の側面では、第1の特徴点順序は、複数の部屋タイプのうちの第1の部屋タイプと関連付けられ、第2の特徴点順序は、複数の部屋タイプのうちの第2の部屋タイプと関連付けられ、第1の特徴点順序および第2の特徴点順序は、異なる、側面64-66のいずれか1項に記載の方法。
【0175】
第68の側面では、訓練用部屋画像は、単眼画像を含む、側面64-67のいずれか1項に記載の方法。
【0176】
第69の側面では、訓練用部屋画像は、赤色-緑色-青色(RGB)画像を含む、側面64-68のいずれか1項に記載の方法。
【0177】
第70の側面では、訓練用部屋画像の次元は、予測される2D特徴点と関連付けられたマップの次元より大きい、側面64-69のいずれか1項に記載の方法。
【0178】
第71の側面では、エンコーダサブネットワークおよびデコーダサブネットワークは、複数の再帰層を備える、側面64-70のいずれか1項に記載の方法。
【0179】
第72の側面では、再帰層の再帰反復数は、2または3である、側面71に記載の方法。
【0180】
第73の側面では、深層監視が、再帰層に適用される、側面71または側面72に記載の方法。
【0181】
第74の側面では、再帰層の反復の第1の再帰反復と関連付けられた加重は、再帰層の反復の第2の再帰反復と関連付けられた加重と同じである、側面71-73のいずれか1項に記載の方法。
【0182】
第75の側面では、複数の再帰層は、メモリ増強再帰エンコーダ-デコーダ(MRED)ネットワークとして構成される、側面71-74のいずれか1項に記載の方法。
【0183】
第76の側面では、サイドサブネットワークは、部屋タイプ分類子を含む、側面64-75のいずれか1項に記載の方法。
【0184】
第77の側面では、予測される2D特徴点に関する第1の損失は、複数の基準特徴点場所と予測される2D特徴点との間のユークリッド損失を含む、側面64-76のいずれか1項に記載の方法。
【0185】
第78の側面では、予測される部屋タイプに関する第2の損失は、クロスエントロピ損失を含む、側面64-77のいずれか1項に記載の方法。
【0186】
第79の側面では、予測される2D特徴点は、予測されるヒートマップから抽出される、側面64-78のいずれか1項に記載の方法。
【0187】
第80の側面では、訓練画像の基準特徴点と関連付けられた基準ヒートマップを計算し、予測されるヒートマップと基準ヒートマップとの間の差異に基づいて、予測される2D特徴点に関する第1の損失を計算するステップをさらに含む、側面79に記載の方法。
【0188】
第81の側面では、基準ヒートマップは、基準特徴点毎の場所を中心とする2次元分布を含む、側面80に記載の方法。
【0189】
第82の側面では、基準ヒートマップは、基準特徴点から離れた背景と、基準特徴点と関連付けられた前景とを含み、ハードウェアプロセッサは、前景と背景との間の比率に基づいて、基準ヒートマップ内の勾配に加重するようにプログラムされる、側面80または側面81に記載の方法。
【0190】
第83の側面では、基準ヒートマップ内の勾配に加重するステップは、背景内のピクセルの値を1未満の減少係数によって減少させるステップを含む、側面82に記載の方法。
【0191】
第84の側面では、方法が、開示される。本方法は、環境の部屋画像にアクセスするステップと、ニューラルネットワークを使用して、部屋画像内の部屋に関する部屋タイプと関連付けられた2次元(2D)特徴点の順序付けられたセットを決定するステップを含む、部屋画像を分析し、部屋画像内の予測される部屋のレイアウトを決定するステップと、少なくとも部分的に、2D特徴点および部屋タイプに基づいて、部屋のレイアウトを提供するステップとを含む。
【0192】
第85の側面では、ニューラルネットワークは、畳み込みエンコーダ-デコーダネットワークを備える、側面84に記載の方法。
【0193】
第86の側面では、畳み込みエンコーダ-デコーダネットワークは、メモリ増強再帰エンコーダ-デコーダネットワークを備える、側面85に記載の方法。
【0194】
第87の側面では、ニューラルネットワークは、部屋タイプを決定するように構成される、分類子を含む、側面84-86のいずれか1項に記載の方法。
【0195】
第88の側面では、2D特徴点の順序付けられたセットをヒートマップから抽出するステップをさらに含む、側面84-87のいずれか1項に記載の方法。
【0196】
第89の側面では、部屋画像を分析し、オブジェクト情報を決定するステップと、オブジェクト情報と部屋のレイアウトを組み合わせるステップとをさらに含む、側面84-88のいずれか1項に記載の方法。
(付加的考慮点)
【0197】
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
【0198】
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、ビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスク(例えば、RoomNet技法の性能)または用途を提供するようにビデオデータを処理する必要がある。
【0199】
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
【0200】
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合され得る、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
【0201】
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
【0202】
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。本明細書で開示される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
【0203】
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
【0204】
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、および/またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、または1つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「~を備える」、「~を含む」、「~を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
【0205】
本明細書で使用されるように、項目のリスト「~のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
【0206】
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序または連続的順序で実施されること、または全ての図示される動作が実施されることの必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。