(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-11
(54)【発明の名称】縮尺図と3次元モデルを用いた機械学習ベースのオブジェクト識別
(51)【国際特許分類】
G06T 7/00 20170101AFI20230501BHJP
G06T 7/70 20170101ALI20230501BHJP
【FI】
G06T7/00 C
G06T7/00 350C
G06T7/70 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022573324
(86)(22)【出願日】2021-04-19
(85)【翻訳文提出日】2022-11-28
(86)【国際出願番号】 US2021028026
(87)【国際公開番号】W WO2021242439
(87)【国際公開日】2021-12-02
(32)【優先日】2020-05-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-04-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】522395750
【氏名又は名称】オープン スペース ラブズ インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】マイケル ベン フライシュマン
(72)【発明者】
【氏名】ガブリエル ヘイン
(72)【発明者】
【氏名】トーマス フリエル アレン
(72)【発明者】
【氏名】アブラハム ボトロス
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096CA02
5L096CA18
5L096DA01
5L096DA04
5L096FA02
5L096FA66
5L096FA67
5L096FA69
5L096GA06
5L096GA30
5L096GA51
5L096HA09
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
システムは、ウォークスルービデオおよび環境の注釈付きフロアプランに基づいて、環境内のオブジェクトを自動的に識別する。注釈付きフロアプランは、環境内に存在すると予測されるオブジェクトの位置およびタイプを示す。システムは、ウォークスルービデオを受信し、環境の3Dモデルを生成する。システムは、機械学習モデルをウォークスルービデオに適用して、オブジェクトがキャプチャされるフレーム内の領域を識別する。オブジェクトを含むウォークスルービデオのフレーム内の領域を識別した後、システムは、識別されたオブジェクトを含むように3Dモデルの対応する領域を修正する。識別されたオブジェクトのそれぞれについて、システムは、修正された3Dモデルと注釈付きフロアプランとの比較に基づいて、識別されたオブジェクトが環境内のある位置に存在する可能性を決定する。
【特許請求の範囲】
【請求項1】
建物の一部のフロアプランにアクセスすることであって、前記フロアプランは、前記建物の前記一部内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記アクセスされたフロアプランに基づいて、前記建物の前記一部における前記オブジェクトタイプの1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、前記カメラシステムが前記建物の前記一部を通って移動されるときにキャプチャされる複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレーム内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数のオブジェクトのそれぞれが、オブジェクトタイプおよび前記オブジェクトが配置されている前記建物の前記一部内の位置に関連付けられている、ことと、
前記複数の画像フレームから前記建物の前記一部の3次元(3D)モデルを生成することと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトを含むように前記3Dモデルの領域を修正することであって、前記領域は、前記識別されたオブジェクトが配置された前記建物の前記一部内の前記位置に対応する、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記修正された3Dモデルおよび前記アクセスされたフロアプランに基づいて、前記建物の前記一部内の前記位置に存在する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトと、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクトとの間の差を決定することと、
ユーザに表示されるインターフェースを修正して、各オブジェクトタイプに対して、前記決定された差を提示することと、
を含む、方法。
【請求項2】
前記3Dモデルが、lidarシステムによってキャプチャされた3D情報に基づいて生成される、請求項1に記載の方法。
【請求項3】
前記フロアプランは、少なくとも1つの前記オブジェクトタイプに関連付けられた前記1つまたは複数の予測されるオブジェクトの寸法で注釈付けされている、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に存在する確率を決定することは、前記識別されたオブジェクトが前記位置に存在する1つまたは複数の事前に決定された確率にさらに基づいている、請求項1に記載の方法。
【請求項5】
前記複数の画像フレーム内の前記1つまたは複数のオブジェクトを識別することは、
各画像フレームについて、
前記画像フレームに機械学習モデルを適用することであって、前記機械学習モデルは、前記画像フレーム内でキャプチャされた前記オブジェクトに関連付けられた前記位置および前記オブジェクトタイプを決定し、前記決定された位置およびオブジェクトタイプに基づいて前記画像フレーム内のピクセルを分類するように構成される、こと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記機械学習モデルは、トレーニング環境のトレーニング画像フレームを含むトレーニングデータセットに基づいてトレーニングされ、前記トレーニング画像フレームは、前記トレーニング画像フレーム内でキャプチャされた1つまたは複数のオブジェクトおよび前記1つまたは複数のオブジェクトに関連付けられたオブジェクトタイプの位置に注釈付けされている、請求項5に記載の方法。
【請求項7】
前記機械学習モデルは、オブジェクトの検出およびセマンティックセグメンテーションに基づいて、前記オブジェクトに関連付けられた前記位置およびオブジェクトタイプを決定する、請求項5に記載の方法。
【請求項8】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記3Dモデルの領域を修正することは、
前記画像フレーム内の前記分類されたピクセルを前記3Dモデル内の対応する点に投影すること、
をさらに含む、請求項5に記載の方法。
【請求項9】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に存在する確率を決定することは、
機械学習モデルを前記修正された3Dモデルおよび前記アクセスされたフロアプランに適用することであって、前記機械学習モデルは、
前記識別されたオブジェクトと同じオブジェクトタイプおよび同じ位置に関連付けられた予測されるオブジェクトを識別し、
前記予測されるオブジェクトを含む前記アクセスされたフロアプランの領域と、前記識別されたオブジェクトを含む前記3Dモデルの前記領域との間の重複を決定する
ように構成されている、ことと、
前記重複に基づいて、前記識別されたオブジェクトが存在する前記確率を決定する、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記機械学習モデルは、トレーニング環境の注釈付き3Dモデルおよび前記トレーニング環境の注釈付きフロアプランを含むトレーニングデータセットに基づいてトレーニングされる、請求項9に記載の方法。
【請求項11】
前記機械学習モデルは、トレーニング環境の注釈なし3Dモデル、前記トレーニング環境の注釈付きフロアプラン、および前記トレーニング環境の1つまたは複数の画像フレームを含むトレーニングデータセットに基づいてトレーニングされる、請求項9に記載の方法。
【請求項12】
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトの総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの総量と、を比較することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトの前記総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの前記総量との前記比較を提示することと、
をさらに含む請求項1に記載の方法。
【請求項13】
前記1つまたは複数の予測されるオブジェクトの前記総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの前記総量との比較の変化が、時間の関数として提示される、請求項12に記載の方法。
【請求項14】
環境の注釈付き縮尺図にアクセスすることであって、前記注釈付き縮尺図は、前記環境内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記注釈付き縮尺図に基づいて1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレームに基づいて前記環境の3次元(3D)モデルを生成することと、
前記3Dモデル内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数の識別されたオブジェクトのそれぞれは前記環境内の位置に対応する前記3Dモデルの領域に関連付けられている、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記環境内の前記位置に存在する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトと、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクトとの間の差を決定することと、
インターフェースを修正して、オブジェクトタイプごとに、前記差を提示することと、
を含む方法。
【請求項15】
前記環境が建設の最中の建物であり、前記予測されるオブジェクトが、前記建設の完了後に前記建物内で予測されるオブジェクトである、請求項14に記載の方法。
【請求項16】
前記環境がホテルの部屋であり、前記1つまたは複数の予測されるオブジェクトが、ゲストが前記ホテルの部屋からチェックアウトした後に前記ホテルの部屋で予測されるオブジェクトである、請求項14に記載の方法。
【請求項17】
前記環境はストアであり、前記1つまたは複数の予測されるオブジェクトは、前記ストアの在庫の製品である、請求項14に記載の方法。
【請求項18】
前記注釈付き縮尺図は、少なくとも1つのオブジェクトタイプに関連付けられた前記1つまたは複数の予測されるオブジェクトの寸法を含む、請求項14に記載の方法。
【請求項19】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に存在する確率を決定することは、
機械学習モデルを前記3Dモデルおよび前記注釈付き縮尺図に適用することであって、前記機械学習モデルは、
前記識別されたオブジェクトと同じオブジェクトタイプおよび同じ位置に関連付けられた予測されるオブジェクトを識別し、
前記予測されるオブジェクトの寸法と、前記識別されたオブジェクトを含む前記3Dモデルの前記領域の寸法との間の重複を決定することと、
前記重複に基づいて、前記識別されたオブジェクトが存在する前記確率を決定するように構成されている、ことと
をさらに含む、請求項14に記載の方法。
【請求項20】
実行可能な命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令はハードウェアプロセッサによって実行されると、前記ハードウェアプロセッサに、
環境の注釈付き縮尺図にアクセスすることであって、前記注釈付き縮尺図は、前記環境内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記注釈付き縮尺図に基づいて1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレームに基づいて前記環境の3次元(3D)モデルを生成することと、
前記3Dモデル内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数の識別されたオブジェクトのそれぞれは前記環境内の位置に対応する前記3Dモデルの領域に関連付けられている、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記環境内の前記位置に存在する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトと、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクトとの間の差を決定することと、
インターフェースを修正して、オブジェクトタイプごとに、前記差を提示することと、
を含むステップを実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、環境内のオブジェクトを識別することに関し、特に、機械学習を使用して、環境の注釈付きダイアグラムおよび3次元モデルに基づいて環境内のオブジェクトを識別することに関する。
【背景技術】
【0002】
[関連出願への相互参照]
本出願は、2020年5月29日に出願された米国仮出願第63/032,452号の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。
【0003】
従来、環境内のオブジェクトのタイプおよび位置を決定するために、ユーザは、環境のウォークスルービデオをキャプチャし、ウォークスルービデオ内のオブジェクトを手動で識別してタグ付けをしている。例えば、建設現場では、建築プロジェクトのさまざまな部分でさまざまなタスクが同時に実行されるため、建築プロジェクトが予定どおりに完了するかどうかを決定するために、建築プロジェクトの各側面の進捗状況を追跡し続けることは困難である。総合建設会社(a general contractor)は、建設現場のコンディションを記録した建設現場のウォークスルービデオをキャプチャすることによって、建設現場の進捗状況を監視したいと考え得る。次いで、総合建設会社は、ウォークスルービデオを視覚的に確認し、画像内に存在するオブジェクトを特定することによって、設置されているオブジェクト(例えば、照明器具、キャビネット、窓、乾式壁、ペンキ、セメント)を特定し得る。総合建設会社は、新しいウォークスルービデオを定期的にキャプチャし、時間の経過とともに建築プロジェクトの進捗状況を追跡するために設置されている追加のオブジェクトを決定し得る。しかし、オブジェクトをカウントおよび測定するためにビデオを手動で確認するのは、面倒で時間が掛かる。
【0004】
[概要]
空間索引システムは、環境内にあると予測されるオブジェクトの位置で注釈付けされた環境の縮尺図を受信する。オブジェクトはオブジェクトタイプに関連付けられ、空間索引システムは、縮尺図から環境内にあると予測されるオブジェクトのそれぞれに関連付けられたオブジェクトの位置およびタイプを決定する。空間索引システムはまた、オブジェクトタイプのそれぞれに対して環境内にあると予測されるオブジェクトの合計数量を決定する。空間索引システムはまた、ビデオキャプチャシステムがカメラパスに沿って環境内を移動するときに、ビデオキャプチャシステムによってキャプチャされたウォークスルービデオを受信する。ウォークスルービデオは、所与の時間における環境のコンディションを描写する画像フレームのシーケンスを含む。
【0005】
空間索引システムは、オブジェクト定量化操作を実行して、ウォークスルービデオの画像フレーム内でキャプチャされたオブジェクトのオブジェクトタイプおよび位置を識別し、ウォークスルービデオがキャプチャされたときに環境内の各オブジェクトタイプに対するオブジェクトの量を自動的に推定する。この量を推定するために、空間索引システムは、画像フレーム内で識別されたオブジェクトを含む環境の3次元(3D)モデルを生成する。空間索引システムは、機械学習モデルを使用して、3Dモデル内で識別されたオブジェクトのそれぞれの位置およびオブジェクトタイプを決定する。空間索引システムは、識別されたオブジェクトのそれぞれに対する確率を決定し、この確率は、そのオブジェクトタイプを有するオブジェクトが環境内に存在する可能性を示す。確率が所定の閾値よりも大きい場合、空間索引システムは、識別されたオブジェクトが環境内に存在すると決定する。この確率に基づいて、空間索引システムは、3Dモデル内の各オブジェクトタイプの推定量を決定する。各オブジェクトタイプに対して、オブジェクトタイプの推定量を、オブジェクトタイプの予想合計量と比較して、ユーザに提示できる。
【図面の簡単な説明】
【0006】
【
図1】
図1は、一実施形態による空間索引システムのシステム環境を示す。
【
図2A】
図2Aは、一実施形態によるカメラパスモジュールのブロック図を示す。
【
図2B】
図2Bは、一実施形態によるモデル生成モジュールのブロック図を示す。
【
図2C】
図2Cは、一実施形態による、注釈付き3Dモデルとフロアプランとの比較を示すブロック図を示す。
【
図3A】
図3Aは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの一部を示す。
【
図3B】
図3Bは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの一部を示す。
【
図3C】
図3Cは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの一部を示す。
【
図3D】
図3Dは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの一部を示す。
【
図3E】
図3Eは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの一部を示す。
【
図4A】
図4Aは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況視覚化インターフェースを示す。
【
図4B】
図4Bは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況視覚化インターフェースを示す。
【
図4C】
図4Cは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況視覚化インターフェースを示す。
【
図4D】
図4Dは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況視覚化インターフェースを示す。
【
図4E】
図4Eは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況視覚化インターフェースを示す。
【
図5】
図5は、一実施形態による、フロアプラン内の特徴を使用してフレームの自動空間索引付けのための例示的な方法を示すフローチャートである。
【
図6】
図6は、一実施形態による、力まかせ探索を使用してカメラパスをフロアプランに位置合わせするための例示的な方法を示すフローチャートである。
【
図7A】
図7Aは、一実施形態による、フロアプランのグリッドマップを使用してカメラパスをフロアプランに位置合わせするための例示的な方法を示すフローチャートである。
【
図7B】
図7Bは、一実施形態による、フロアプランの例を示す。
【
図7C】
図7Cは、一実施形態による、グリッドマップの例を示す。
【
図8】
図8は、一実施形態による、ウォークスルービデオを使用した進捗状況の追跡のための例示的な方法を示すフローチャートである。
【
図9】
図9は、一実施形態による、ウォークスルービデオ内のオブジェクトサーチのための例示的な方法を示すフローチャートである。
【0007】
[詳細な説明]
I.概要
空間索引システムは、入力として物理環境の注釈付き縮尺図を受信し、物理世界におけるオブジェクトの予測される量を決定する。ユーザは、ユーザが環境内を移動するにつれて、物理世界における環境の画像またはビデオをキャプチャし、物理世界のコンディションを記録し得る。画像データは、単眼カメラまたはステレオカメラを使用してキャプチャされ得、個々の写真として、またはビデオからの画像のシーケンスとしてキャプチャされ得、従来のまたは360度カメラを使用してキャプチャされ得る。物理的な世界の環境の縮尺図(例えば、フロアプラン)は、その環境内にあると予測されるオブジェクトの位置とサイズを使用して、人が手動で注釈を、または機械学習モデルが自動的に注釈を、付け得る。注釈付き縮尺図は、環境内にあると予測されるオブジェクトの位置およびオブジェクトタイプを提供し、画像データは、所与の時間に環境内における実際のオブジェクトの位置およびオブジェクトタイプを提供する。注釈付き縮尺図からの予測されるオブジェクトと画像データからのオブジェクトとの比較に基づいて、ユーザは、画像データから識別されたオブジェクトが予測されるオブジェクトから逸脱していると決定し得る。空間索引システムは、異なるオブジェクトタイプについて、予測されるオブジェクトの量と画像データから識別されたオブジェクトの量との間の差を決定し得る。この差は、オブジェクトの予測された量に対して、検出された量の経時的な変化を追跡するために使用され得る。
【0008】
II.システム環境
図1は、一実施形態による空間索引システムのためのシステム環境100を示す。
図1に示す実施形態では、システム環境100は、ビデオキャプチャシステム110と、ネットワーク120と、空間索引システム130と、クライアントデバイス160とを含む。単一のビデオキャプチャシステム110および単一のクライアントデバイス160が
図1に示されているが、いくつかの実施形態では、空間索引システムは、複数のビデオキャプチャシステム110および複数のクライアントデバイス160と相互作用する。
【0009】
ビデオキャプチャシステム110は、ビデオキャプチャシステム110がカメラパスに沿って移動されるときに、フレームデータ、モーションデータ、lidarデータ、および位置データのうちの1つまたは複数を収集する。
図1に示される実施形態では、ビデオキャプチャシステム110は、360度カメラ112と、モーションセンサ114と、位置センサ116とを含む。ビデオキャプチャシステム110は、カメラパスに沿って移動されるのに適したフォームファクタを有するデバイスとして実装される。一実施形態では、ビデオキャプチャシステム110は、車輪付きカート、またはユーザの身体に装着されるオブジェクト(例えば、バックパックまたはヘルメット)に取り付けられるまたは一体化されるデバイスのような、ユーザがカメラパスに沿って物理的に移動する携帯型デバイスである。別の実施形態では、ビデオキャプチャシステム110は、車両上に搭載される、または車両に一体化される。車両を、例えば、車輪付き車両(例えば、車輪付きロボット)または航空機(例えば、クワッドコプタードローン)とし得、予め設定されたルートに沿って自律的に移動するように構成すること、またはリアルタイムで人間のユーザによって制御することができる。
【0010】
360度カメラ112は、ビデオキャプチャシステム110がカメラパスに沿って移動されるときに360度フレームのシーケンスをキャプチャすることによってフレームデータを収集する。本明細書に言及されるように、360度フレームは、360度の視野をカバーする視野を有するフレームである。360度カメラ112を、ビデオキャプチャシステム110内に複数の非360度カメラを互いに対して異なる角度に向けられるように配置すること、および360度カメラをほぼ同時にそれぞれの角度から環境のフレームをキャプチャするように構成することによって、実装できる。次に、画像フレームを結合して、単一の360度のフレームを形成できる。例えば、360度カメラ112は、反対方向に向けられた2つの180度パノラマカメラから実質的に同時にフレームをキャプチャすることによって実装できる。
【0011】
ビデオキャプチャシステム110によってキャプチャされた画像フレームデータは、フレームタイムスタンプをさらに含み得る。フレームタイムスタンプは、各フレームがビデオキャプチャシステム110によってキャプチャされた時間に対応するデータである。本明細書で使用されるように、フレームは、互いの閾値時間間隔内(例えば、1秒以内、100ミリ秒以内など)にキャプチャされた場合、実質的に同時にキャプチャされている。
【0012】
一実施形態では、360度カメラ112は360度ビデオをキャプチャし、360度ビデオ内の画像フレームはウォークスルービデオの画像フレームである。別の実施形態では、360度カメラ112は、固定時間間隔で分離された静止フレームのシーケンスをキャプチャする。フレームのシーケンスであるウォークスルービデオは、高いフレームレート(例えば、60フレーム/秒)または低いフレームレート(例えば、1フレーム/秒)など、任意のフレームレートでキャプチャできる。一般に、高いフレームレートで、フレームのシーケンスであるウォークスルービデオをキャプチャすることはより安定した結果をもたらし、一方、低いフレームレートで、フレームのシーケンスであるウォークスルービデオをキャプチャすることは、データの格納および伝送を減らすことを可能にする。モーションセンサ114および位置センサ116はモーションデータおよび位置データをそれぞれ収集し、一方で、360度カメラ112は画像フレームデータをキャプチャしている。モーションセンサ114は、例えば、加速度計およびジャイロを含むことができる。モーションセンサ114はまた、ビデオキャプチャシステム110を取り囲む磁場の方向を測定する磁力計を含むことができる。
【0013】
位置センサ116は、ビデオキャプチャシステム110の緯度および経度座標を決定する全地球航法衛星システムのための受信機(例えば、GPS受信機)を含むことができる。いくつかの実施形態では、位置センサ116は、追加的または代替的に、環境内の既知の場所に配置された送信機から受信した信号に基づいてビデオキャプチャシステムの位置を決定する屋内測位システム(IPS)のための受信機を含む。例えば、RFフィンガープリントを送信する複数の無線周波数(RF)送信機が環境全体に配置され、位置センサ116はまた、RFフィンガープリントを検出し、RFフィンガープリントの相対強度に基づいて環境内のビデオキャプチャシステム110の位置を推定する受信機を含む。
【0014】
図1に示すビデオキャプチャシステム110は、360度カメラ112、モーションセンサ114、および位置センサ116を含むが、他の実施形態では、コンポーネント112、114、116のいくつかはビデオキャプチャシステム110から省略され得る。例えば、モーションセンサ114および位置センサ116の1つまたは両方はビデオキャプチャシステムから省略され得る。さらに、ビデオキャプチャシステム110は、360度カメラ112を伴って、
図1内に説明されているが、ビデオキャプチャシステム110は、代替的に、狭い視野を有するカメラを含み得る。図示されていないが、いくつかの実施形態では、ビデオキャプチャシステム110は、レーザビームを放射し、周囲環境内の点までの測定された距離に基づいて周囲環境を表す3Dデータを生成するlidarシステムをさらに含み得る。3Dデータに基づいて、周辺環境の3Dモデル(例えば、点群)が生成され得る。lidarシステムによってキャプチャされた3Dデータは、360度カメラ112によってキャプチャされた画像フレームと同期され得る。
【0015】
いくつかの実施形態において、ビデオキャプチャシステム110は、キャプチャされたデータを格納するためのストレージと、ネットワーク120を介してキャプチャされたデータを空間索引システム130に送信する通信インターフェースとをさらに含むコンピューティングデバイス(例えば、
図9に示されるコンピュータシステム900)の一部として実装される。一実施形態において、ビデオキャプチャシステム110は、システム110がカメラパスに沿って移動されるときに、キャプチャされたデータをローカルに格納し、データは、データ収集が完了した後に空間索引システム130に送信される。別の実施形態では、ビデオキャプチャシステム110は、システム110がカメラパスに沿って移動しているときに、リアルタイムで、キャプチャされたデータを空間索引システム130に送信する。
【0016】
ビデオキャプチャシステム110は、ネットワーク120を介して他のシステムと通信する。ネットワーク120は、有線および/または無線通信システムの両方を使用する、ローカルエリアおよび/またはワイドエリアネットワークの任意の組み合わせを含み得る。一実施形態では、ネットワーク120は、標準の通信技術および/またはプロトコルを使用する。例えば、ネットワーク120は、イーサネット(登録商標)802.11、worldwide interoperability for microwave access(WiMAX)、3G、4G、code division multiple access(CDMA)、digital subscriber line(DSL)などの技術を使用する通信リンクを含む。ネットワーク120を介して通信するために使用されるネットワークプロトコルの例には、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキストトランスポートプロトコル(HTTP)、シンプルメール転送プロトコル(SMTP)、およびファイル転送プロトコル(FTP)が含まれる。ネットワーク120はまた、APPLE Push Notification Service(APN)やGOOGLE Cloud Messaging(GCM)などのさまざまなプッシュ通知サービスを介してプッシュ通知を配信するためにも使用され得る。ネットワーク120を介して交換されるデータは、ハイパーテキストマークアップランゲージ(HTML)、拡張可能なマークアップランゲージ(XML)、またはジャバスクリプトオブジェクトノーテーション(JSON)などの任意の適切なフォーマットを使用して表現され得る。いくつかの実施形態では、ネットワーク120の通信リンクのすべてまたはいくつかは、任意の適切な1つまたは複数の技法を使用して暗号化され得る。
【0017】
空間索引システム130は、画像フレームおよびビデオキャプチャシステム110によって収集された他のデータを受信し、空間索引プロセスを実行して、画像フレームおよび画像のそれぞれがキャプチャされた空間的位置を自動的に識別して、画像フレームを環境の注釈付きフロアプランに位置合わせし、環境の3Dモデルを構築し、クライアントデバイス160が3Dモデル内のそれぞれの位置でキャプチャされた画像フレームを見ることを可能にする視覚化インターフェースを提供する。空間索引システム130は、画像フレームおよびビデオキャプチャシステム110によって収集された他のデータに基づいて、環境内にあるオブジェクトを自動的に定量化するために使用し得る。環境が建設現場である場合、空間索引システム130は、画像フレーム内のオブジェクトの決定された量に基づいて建設の進捗状況を追跡し、決定された量を、環境の注釈付きフロアプランに示されるように、各オブジェクトタイプについて環境内にあると予測されるオブジェクトの量と比較し得る。
図1に示す実施形態では、空間索引システム130は、カメラパスモジュール132、カメラパスストレージ134、フロアプランストレージ136、モデル生成モジュール138、モデルストレージ140、モデル視覚化モジュール142、予測量決定モジュール144、注釈付き3Dモデル生成モジュール146、量推定モジュール148、進捗状況決定モジュール150、進捗状況視覚化モジュール152、トレーニングモジュール154、およびトレーニングデータストレージ156を含む。
【0018】
カメラパスモジュール132は、システム110がカメラパスに沿って移動したときにビデオキャプチャシステム110によって収集されたウォークスルービデオ内の画像フレームおよび他のデータを受信し、受信したフレームおよびデータに基づいてカメラパスを決定する。一実施形態では、カメラパスは、フレームのシーケンスであるウォークスルービデオ内の各フレームに対する6Dカメラポーズとして定義される。各フレームに対する6Dカメラポーズは、画像フレームがキャプチャされたときの360度カメラ112の相対的な位置および向きの推定値(estimate)である。カメラパスモジュール132は、カメラパスをカメラパスストレージ134に格納できる。
【0019】
一実施形態では、カメラパスモジュール132は、SLAM(同時ローカライゼーションおよびマッピング)アルゴリズムを使用して、同時に、(1)360度カメラ112の位置および向きを推論することによってカメラパスの推定値を決定する、および(2)直接的方法を使用してまたはフレームのシーケンスであるウォークスルービデオから抽出されたランドマーク特徴(有向FASTおよび回転BRIEF(ORB)、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)など)を使用して、環境をモデル化する。カメラパスモジュール132は、6次元(6D)カメラポーズのベクトルを経時的に出力し、シーケンス内の各フレームに対して1つの6Dベクトル(位置に対して3次元、方向に対して3次元)を有し、6Dベクトルはカメラパスストレージ134に記憶できる。カメラパスモジュール132の実施形態は、
図2Aに関して以下に詳細に説明される。
【0020】
空間索引システム130はまた、ビデオキャプチャシステム110によってキャプチャされた環境のものなどの1つまたは複数のフロアプランを格納するフロアプランストレージ136を含むことができる。本明細書で言及されるように、フロアプランは、トップダウンの視点からの環境(例えば、建物または構造の一部)の縮尺2次元(2D)ダイアグラム表現である。代替の実施形態では、フロアプランは、2Dダイアグラムの代わりに、予測される完成した建設の3Dモデルであり得る。フロアプランは、建設が完了した後に環境内にあると予測される物理オブジェクトの位置、寸法、およびオブジェクトタイプも指定するための注釈が付けられる。いくつかの実施形態では、フロアプランはクライアントデバイス160に関連付けられたユーザによって手動で注釈が付けられ、空間索引システム130に提供される。他の実施形態では、フロアプランは、環境内にあると予測される物理オブジェクトの位置、寸法、およびオブジェクトタイプを識別するために、注釈付きフロアプランのトレーニングデータセットを使用してトレーニングされる機械学習モデルを使用して、空間索引システム130によって注釈が付けられる。物理オブジェクトのそれぞれは、ドア、窓、壁、階段、照明器具、キャビネットなどのオブジェクトタイプに関連付けられている。オブジェクトタイプは、乾式壁、ペイント、セメント、レンガ、木材などの建設材料に関連付けられ得る。建物または構造のさまざまな部分は、別々のフロアプランで表され得る。例えば、前述の建設例では、空間索引システム130は、床、ユニット、またはサブ構造ごとに別々のフロアプランが格納され得る。いくつかの実施形態では、建物または構造物の所与の部分は、各々が機械的、電気的、または配管などの異なる取引に対応する複数のフロアプランを用いて表され得る。
【0021】
モデル生成モジュール136は、環境の3Dモデルを生成する。本明細書で言及されるように、3Dモデルは、環境のウォークスルービデオからの画像フレーム、(画像フレームのそれぞれの相対位置画像フレームの6Dポーズによって示されるような)、および環境のフロアプラン上の画像フレームのそれぞれの絶対位置(任意選択で)を使用して生成された、環境を表す没入型モデルである。モデル生成モジュール136は、画像フレームを注釈付きフロアプランに位置合わせする。3Dモデルは、注釈付きフロアプランに位置合わせされた画像フレームを使用して生成されるため、3Dモデルはまた注釈付きフロアプランに位置合わせされる。一実施形態では、モデル生成モジュール136は、カメラパスモジュール132またはカメラパスストレージ134からフレームシーケンスおよびその対応するカメラパス(例えば、フレームのシーケンスであるウォークスルービデオ内の各フレームの6Dポーズを指定する6Dポーズベクトル)を受信し、3Dモデルに含めるために、シーケンス内の画像フレームのサブセットおよびそれらの対応する6Dポーズを抽出する。例えば、フレームのシーケンスであるウォークスルービデオが、毎秒30フレームでキャプチャされたビデオ内のフレームである場合、モデル生成モジュール136は、0.5秒間隔でフレームおよびそれらの対応する6Dポーズを抽出することによって、画像フレームをサブサンプリングする。モデル生成モジュール136の実施形態は、
図2Bに関して以下に詳細に説明される。モデル生成モジュール138は、モーションからの構造(SfM)、同時ローカライゼーションおよびマッピング(SLAM)、単眼深度マップ生成、またはウォークスルービデオ内の画像フレームに基づいて環境の3D表現を生成するための他の方法などの方法を使用し得る。いくつかの実施形態では、モデル生成モジュール138は、ビデオキャプチャシステム110からlidarデータを受信し、3D点群を生成し得る。3Dモデルを生成した後、モデル生成モジュール138は、3Dモデルをモデルストレージ140に格納する。モデルストレージ140はまた、3Dモデルを生成するために使用されるウォークスルービデオをモデルストレージ140に格納し得る。
【0022】
モデル視覚化モジュール142はクライアントデバイス160への視覚化インターフェースを提供する。視覚化インターフェースは、ユーザが2つの方法で3Dモデルを確認することを可能にする。第1に、視覚化インターフェースは、フロアプランストレージ136からの環境の対応するフロアプランを表す2Dオーバーヘッドマップインターフェースを提供する。2Dオーバーヘッドマップは、マップ上の点をクリックすることが空間内の選択された点に対応する3Dモデルの部分にナビゲートするように、2Dマップ上に示された各相対カメラ位置がインタラクティブであるインタラクティブインタフェースである。第2に、視覚化インターフェースは、抽出された360度のフレームの一人称ビューを提供し、これにより、ユーザは、画像フレームの周囲をパンおよびズームし、他のフレームの相対位置を表す画像フレーム内のウェイポイントアイコンを選択することによって他のフレームにナビゲートすることを可能にする。視覚化インターフェースは、ユーザが2Dオーバーヘッドマップ内のまたは異なるフレームの一人称視点内の画像フレームを選択した後に、フレームの一人称視点を提供する。
【0023】
予測量決定モジュール144は、環境の注釈付きフロアプランにアクセスし、環境内にあることが予測されるオブジェクトを識別する。予測量決定モジュール144は、オブジェクトが注釈付きフロアプラン内に現れるインスタンスを決定し、各オブジェクトは、環境内の位置およびオブジェクトタイプに関連付けられる。注釈付きフロアプラン内のオブジェクトを識別した後、予測量決定モジュール144は、建設が完了したときに、各オブジェクトタイプについて環境内にあることが予測されるオブジェクトの合計量を決定する。予測量決定モジュール144は、注釈付きフロアプランのトレーニングデータに基づいてトレーニングモジュール154によってトレーニングされた機械学習モデルを使用して、注釈付きフロアプラン内でオブジェクトが現れる場所および識別されたオブジェクトのオブジェクトタイプを識別し得る。ユーザが監視することを望む各オブジェクトタイプに対して、予測量決定モジュール144は、注釈付きフロアプランに示されるように、そのオブジェクトタイプに対するオブジェクトの合計数量を決定する。例えば、建物の所与のフロアに対して、ユーザは、窓、ドア、窓、照明器具、および壁の設置の進捗状況を監視することを望み得、予測量決定モジュール144は、建設の最後に床にあるべき窓、ドア、窓、および壁の合計数を決定する。カウントできる各オブジェクトタイプに対して、予測量決定モジュール144は、オブジェクトタイプに関連付けられたオブジェクトが注釈付きフロアプラン内に現れるインスタンスの総数を決定し得る。例えば、予測量決定モジュール144は、注釈付きフロアプラン上でテキスト認識または画像認識分析を実行して、オブジェクトタイプを表すテキストまたは画像が注釈付きフロアプラン内に現れるインスタンスの数を決定する。
【0024】
いくつかの実施形態では、オブジェクトタイプは、環境の注釈付きフロアプランに基づいて、建設中に使用されると予測される建設材料の総量に関連付けられ得る。ペンキ、セメント、および乾式壁など、カウントできない各オブジェクトタイプに対して、予測量決定モジュール144は、そのオブジェクトタイプに関連付けられたフロアプランの部分の寸法を合計し、使用されると予測される建設材料の総量を決定し得る。注釈付きフロアプランは、特定のタイプの建設材料を使用するフロアプランの異なる部分の周囲の境界を含み得、予測量決定モジュール144は、境界の寸法の合計を決定して、建設を完了するために使用されることが予測される建設材料タイプの総量を決定し得る。より簡単な実施形態では、注釈付きフロアプランは、材料の寸法をリニアフィートで示し得、予測量決定モジュール144は、建物に関する既知の特徴に基づいて、リニアフィートでの予測量を決定する、または平方フィートでの2次元予測量を外挿し得る。例えば、注釈付きフロアプランが長さ80フィートの乾式壁が予測されることを示す場合、予測量決定モジュール144は、長さと壁の既知の高さとを乗算して、2次元の予測量を決定し得る。
【0025】
注釈付き3Dモデル生成モジュール146は、ウォークスルービデオの画像フレーム内にキャプチャされたオブジェクトを識別し、識別されたオブジェクトを含むように、モデル生成モジュール138によって生成された3Dモデルを修正する。ウォークスルービデオの各画像フレームは、オブジェクトを検出し、オブジェクトタイプおよび環境内のオブジェクトの位置を識別するように構成された、ニューラルネットワーク分類器、最近傍分類器、または他のタイプのモデルなどの機械学習モデルに提供される。注釈付き3Dモデル生成モジュール146は、オブジェクト検出、セマンティックセグメンテーションなどを実行して、画像内のオブジェクトを表すピクセルのオブジェクトタイプおよび領域を識別し得る。画像フレームはフロアプランと位置合わせされるので、注釈付き3Dモデル生成モジュール146は、オブジェクトが検出された環境内の位置を決定できる。機械学習モデルは、トレーニングモジュール154によってトレーニングされ、トレーニングデータストレージ156に記憶された履歴環境の注釈付き画像フレームを含むトレーニングデータに基づいてトレーニングされ得る。各画像フレームに対して、機械学習モデルは、オブジェクトが検出された領域を識別する分類された画像フレームを出力し得、各領域はオブジェクトタイプに関連付けられる。
【0026】
3Dモデルを生成し、画像フレーム内のオブジェクトを識別した後、注釈付き3Dモデル生成モジュール146は、識別されたオブジェクトを含むように3Dモデルの領域を修正する。環境の3Dモデルは、分類された画像フレームを3Dモデル上に投影することによって、分類された画像フレームと結合され得る。注釈付き3Dモデル生成モジュール146の詳細については、
図2Cを参照して説明する。
【0027】
量推定モジュール148は、注釈付き3Dモデル内の各オブジェクトタイプの数量を、環境の注釈付きフロアプランと比較することによって推定する。注釈付き3Dモデルは、オブジェクトタイプで注釈付けされた注釈付きフロアプランの領域(例えば、「キャビネット」が設置される場所として注釈が付けられたフロアプランの領域)と重複するオブジェクトタイプで分類された3Dモデルの領域(例えば、「キャビネット」として分類された3Dモデルの領域)を決定するために、注釈付きフロアプランと比較される。
【0028】
一実施形態では、オブジェクトタイプに関連付けられたオブジェクトが3Dモデル内に存在するかどうかを決定するために、オブジェクトタイプでラベル付けされた注釈付きフロアプランの領域と、オブジェクトタイプで分類された注釈付き3Dモデルの対応する領域との間の重複量が計算される。重複量が所定の閾値を超えた場合、次いで、そのオブジェクトタイプは3Dモデル上のその領域に存在すると考えられる。別の実施形態では、教師付き分類器(例えば、ニューラルネットワーク分類器)は、トレーニングデータストレージ156内のラベル付きデータを使用してトレーニングモジュール154によってトレーニングされ、特定のオブジェクトが注釈付き3Dモデル上の領域内に存在するかどうかを決定する。ラベル付きトレーニングデータセット内の各インスタンスは環境に対応し、環境のウォークスルービデオで識別されたオブジェクトを含むように修正された注釈付き3Dモデルと、注釈付きフロアプラン上の位置にオブジェクトが存在することを示すラベル付きの注釈付きフロアプランとから構成され得る。教師付き分類器がトレーニングされた後、量推定モジュール148は、教師付き分類器を入力注釈付きフロアプランおよび注釈付き3Dモデルに適用して、注釈付き3Dモデルの領域に存在するオブジェクトタイプの確率を出力として受信する。量推定モジュール148は、出力確率を所定の閾値と比較し得る。所定の領域のオブジェクトタイプに関連付けられた確率が所定の閾値より大きい場合、量推定モジュール148は、そのオブジェクトタイプを有するオブジェクトがその領域に存在すると決定する。確率が所定の閾値より小さい場合、量モジュール148は、そのオブジェクトタイプを有するオブジェクトがその領域に存在しないと決定する。
【0029】
注釈付き3Dモデルと注釈付きフロアプランとの間の比較を使用することの利点は、3Dモデルにおけるノイズを低減でき、建設におけるオブジェクト検出および進捗状況追跡の精度を改善することである。量推定モジュール148は、オブジェクトタイプの推定量において注釈付きフロアプランと一致しない、注釈付き3Dモデルの分類された領域を含まない。例えば、注釈付き3Dモデルは、ノイズのために床に乾式壁があると誤って示し得、これは、建設中に使用される乾式壁の量を過大評価する原因となること可能性がある。しかし、注釈付きフロアプランでは床に乾式壁があるべきではないと示されているため、床の乾式壁は推定量に含まれない。注釈付き3Dモデルと注釈付きフロアプランの間の比較を使用する別の利点は、設置エラーを検出可能であることである。更新された3Dモデルと注釈付きフロアプランの間に所定の閾値を超える不整合がある場合、人間のオペレータが手動で確認するために、不整合にフラグが付けられ得る。例えば、3Dモデルが、注釈付きフロアプランに従って壁が存在すべきでない場所に壁が建設されたことを示している場合、エラーにフラグが付けられ得る。
【0030】
別の実施形態では、教師付き分類器は、トレーニングデータストレージ156内のトレーニングセットを使用してトレーニングモジュール154によってトレーニングされ、各インスタンスは環境に関連付けられ、環境のウォークスルービデオから生成された注釈なし3Dモデルと、注釈付きフロアプラン上の位置におけるオブジェクトの存在を示すラベルを有する注釈付きフロアプランと、オブジェクトでラベル付けされた注釈付きフロアプラン上の位置が可視であるウォークスルービデオからの画像フレームのセットとを含む。この実施形態では、モデル生成モジュール138からの3Dモデルは、注釈付き3Dモデル生成モジュール146によって処理されることなく、ウォークスルービデオおよび注釈付きフロアプランと共に、量推定モジュール148への入力として提供される。教師付き分類器は、注釈付き3Dモデルの領域に存在するオブジェクトタイプの確率を出力する。
【0031】
ウォークスルービデオからの2次元画像フレーム間の比較を使用する代わりに、注釈付き3Dモデルと注釈付きフロアプランとの間の比較を使用することの別の利点は、注釈付き3Dモデルが画像フレーム内で検出されたオブジェクトの位置を検証できることである。例えば、注釈付きフロアプランは、建設の終了時に、参照点から第1の距離にある第1の壁と、参照点から第2の距離にある第1の壁に平行な第2の壁が必要であることを示す。第1の距離は、建設の終了時に第2の距離よりも短く、第2の壁は、第1の壁によって遮られているため、参照点から可視ではない。建設中に基準点からキャプチャされた画像フレームが乾式壁を含む場合、空間索引システム130は、画像フレームが深さ情報を含まないので、乾式壁が第1の壁の一部であるか第2の壁の一部であるかを決定することが可能ではない場合がある。しかし、注釈付き3Dモデルでは、空間索引システム130は2つの壁を区別できる。
【0032】
履歴情報は、特に、量推定モジュール148が異なる時間に同じ位置にあるオブジェクトを定量化するために使用される場合に、フロアプランで予測されるように注釈付き3Dモデル上の位置にオブジェクトが存在することを決定するときに、量推定モジュール148にバイアスをかけるためにも使用できる。一実施形態では、マルコフモデルを使用して、経時的に注釈付き3Dモデルの位置にDモデルの位置に存在するオブジェクトの確率をモデル化する。例えば、特定の日に3Dモデル上のある位置に「乾式壁」が存在することは、システムが後の日に同じ位置にある「乾式壁」を識別するようにバイアスし得るが、後の日にその位置に「フレーム」が存在する可能性を低くする。このような確率は、トレーニングデータから学習される、または現実世界の制約に基づいて人によって推定され(例えば、「フレーム」の設置は、通常、「乾式壁」の設置に先行する)、システムに提供できる。
【0033】
進捗状況決定モジュール150は、注釈付きフロアプランに示されたオブジェクトタイプの設置の進捗状況を計算する。建設中に使用されることが予測される各オブジェクトタイプについて、進捗状況決定モジュール150は、量推定モジュール148によって決定された注釈付き3Dモデル内のオブジェクトタイプのオブジェクトの数を、予測量決定モジュール144によって決定された予測されるオブジェクトタイプのオブジェクトの総数で除算することによって、設置の進捗状況を計算する。建築材料に関連付けられたオブジェクトタイプの場合、建築材料(例えば、乾式壁)が設置されていると決定された注釈付き3Dモデル内の領域と、注釈付きフロアプラン内の対応する領域は、タイルまたはセルに分割される。各タイルまたはセルに対して、そのセルまたはタイルの注釈付きフロアプラン上の領域と、そのセルまたはタイルの注釈付き3Dモデル内の対応する領域との間の重複に基づいてスコアが計算される。スコアが所定の閾値を通過すると、そのタイルまたはセルによって定義される材料の量は、フロアプラン上のその位置に存在すると考えられる。建設材料に関連付けられたオブジェクトタイプの設置の進捗状況を計算するには、注釈付き3Dモデル上に存在することが判明したその材料タイプのセルまたはタイルの数を、注釈付きフロアプランに示されている特定の材料タイプのセルまたはタイルの総数で割る。
【0034】
進捗状況視覚化モジュール152は、クライアントデバイス160に視覚化インターフェースを提供して、建設の進捗状況を提示する。進捗状況視覚化モジュール152は、ユーザが、時間の経過に伴う異なるオブジェクトタイプおよび環境の異なる部分に対して行われた進捗状況を確認することを可能にする。視覚化インターフェースの例を、
図4Aおよび4Eに関して以下に説明する。
【0035】
クライアントデバイス160は、ネットワーク120に接続できる、スマートフォン、タブレットコンピュータ、ラップトップコンピュータなどの任意のコンピューティングデバイスである。クライアントデバイス160は、スクリーンなどのディスプレイデバイス上にインターフェースをユーザに表示し、インターフェースと対話するためのユーザ入力を受信する。クライアントデバイスの例示的な実施形態を、
図9のコンピュータシステム900を参照して以下に説明する。
【0036】
IV.カメラパス生成の概要
図2Aは、一実施形態による、
図1に示す空間索引システム130のカメラパスモジュール132のブロック図を示す。カメラパスモジュール132は、ビデオキャプチャシステム110によってキャプチャされた入力データ(例えば、360度のフレーム212のシーケンス、モーションデータ214、および位置データ223)を受信し、カメラパス226を生成する。
図2Aに示される実施形態では、カメラパスモジュール132は、同時ローカライゼーションおよびマッピング(SLAM)モジュール216、モーション処理モジュール220、および、パス生成および位置合わせモジュール224を含む。
【0037】
SLAMモジュール216は、360度フレーム212のシーケンスを受信し、SLAMアルゴリズムを実行して、カメラパスの第1の推定値218を生成する。SLAMアルゴリズムを実行する前に、SLAMモジュール216は、画像フレーム212に対して1つまたは複数の前処理ステップを実行できる。一実施形態において、前処理ステップは、360度フレーム212のシーケンスをベクトルのシーケンスに変換することによって画像フレーム212から特徴を抽出することを含み、ここで、各ベクトルは、それぞれのフレームの特徴表現である。特に、SLAMモジュールは、SIFT特徴、SURF特徴、またはORB特徴を抽出できる。
【0038】
特徴を抽出した後、前処理ステップはまた、セグメンテーションプロセスを含む。セグメンテーションプロセスは、フレームのシーケンスであるウォークスルービデオを、画像フレームのそれぞれにおける特徴の質に基づいてセグメントに分割できる。一実施形態では、フレームにおける特徴の質は、画像フレームから抽出された特徴の数として定義される。この実施形態では、セグメンテーションステップは、画像フレームの特徴の質がそれぞれ閾値を上回るまたは下回ることに基づいて、高い特徴の質または低い特徴の質を有するものとして、各フレームを分類する(すなわち、閾値を上回る特徴の質を有するフレームは、高い質として分類され、閾値を下回る特徴の質を有するフレームは、低い質として分類される)。特徴の質の低下は、例えば、過剰なモーションブラーまたは低照明コンディションが原因で発生する可能性がある。
【0039】
画像フレームを分類した後、セグメンテーションプロセスは、高い特徴の質を有する連続するフレームがセグメントに結合され、低い特徴の質を有するフレームがいずれのセグメントにも含まれないように、シーケンスを分割する。例えば、カメラパスが、照度の低い廊下に沿って一連の照度の高い部屋に出入りすると仮定する。この例では、各部屋でキャプチャされた画像フレームは高い特徴の質を有する可能性が高く、一方で、廊下でキャプチャされた画像フレームは低い特徴の質を有する可能性が高い。その結果、セグメンテーションプロセスは、同じ部屋でキャプチャされた連続するフレームの各シーケンスが単一のセグメント(各部屋に対して別個のセグメントをもたらす)に分割され、一方、廊下でキャプチャされた画像フレームが前記セグメントのいずれにも含まれないように、フレームのシーケンスであるウォークスルービデオを分割する。
【0040】
前処理ステップの後、SLAMモジュール216は、カメラパスの第1の推定値218を生成するためにSLAMアルゴリズムを実行する。一実施形態では、第1の推定値218はまた、シーケンス内の各フレームに対して1つの6Dベクトルを有する、経時的な6Dカメラポーズのベクトルである。前処理ステップが、フレームのシーケンスであるウォークスルービデオをセグメント化することを含む実施形態では、SLAMアルゴリズムは、フレームの各セグメントに対してカメラパスセグメントを生成するために、セグメントのそれぞれに別々に実行される。
【0041】
モーション処理モジュール220は、ビデオキャプチャシステム110がカメラパスに沿って移動したときに収集されたモーションデータ214を受信し、カメラパスの第2の推定値222を生成する。カメラパスの第1の推定値218と同様に、第2の推定値222はまた、経時的なカメラポーズの6Dベクトルとして表すことができる。一実施形態において、モーションデータ214は、加速度計およびジャイロスコープによってそれぞれ収集された加速度およびジャイロスコープデータを含み、モーション処理モジュール220は、モーションデータに対してデッドレコニングプロセスを実行することによって第2の推定値222を生成する。モーションデータ214が磁力計からのデータも含む実施形態において、磁力計データは、ジャイロデータに加えて、または代わりに使用されて、ビデオキャプチャシステム110の方向に対する変化を決定し得る。
【0042】
多くの民生グレードのジャイロスコープによって生成されるデータは、バイアスが修正されない場合、カメラパスの第2の推定値222の精度に影響を与える可能性のある時間的に変化するバイアス(ドリフトとも呼ばれる)を含む。モーションデータ214が上述の3つのタイプのデータ(加速度計、ジャイロスコープ、および磁力計データ)すべてを含み、モーション処理モジュール220が加速度計および磁力計データを使用して、ジャイロスコープデータにおけるこのバイアスを検出し、修正できる。具体的には、モーション処理モジュール220は、加速度計データ(通常、重力の方向を指す)から重力ベクトルの方向を決定し、重力ベクトルを使用してビデオキャプチャシステム110の2次元の傾きを推定する。一方、磁力計データは、ジャイロスコープの方位バイアスを推定するために使用される。磁力計データは、特に内部構造が鋼梁を含む建物の内部で使用される場合、ノイズが多い可能性があるため、モーション処理モジュール220は、磁力計データのローリング平均を計算および使用して、方位バイアスを推定できる。様々な実施形態では、ローリング平均は、1分、5分、10分、または他の期間の時間ウィンドウにわたって計算され得る。
【0043】
パス生成および位置合わせモジュール224は、カメラパスの第1の推定値218および第2の推定値222を結合して、カメラパス226の結合した推定値とする。ビデオキャプチャシステム110がカメラパスに沿って移動する間に位置データ223も収集する実施形態では、パス生成モジュール224はまた、カメラパス226を生成するときに位置データ223を使用できる。環境のフロアプランが利用可能である場合、パス生成および位置合わせモジュール224はまた、入力としてフロアプラン257を受信し、カメラパス226の結合した推定値をフロアプラン257に位置合わせできる。第1の推定値218と第2の推定値222とを結合し、カメラパスをフロアプランに位置合わせするための例示的な技術を、
図5、
図6および
図7に関して以下に説明する。
【0044】
V.モデル生成の概要
図2Bは、一実施形態による、
図1に示される空間索引システム130のモデル生成モジュール138のブロック図を示す。モデル生成モジュール138は、カメラパスモジュール132によって生成されたカメラパス226を、ビデオキャプチャシステム110によってキャプチャされた360度フレーム212のシーケンス、環境のフロアプラン257、および360度カメラ254に関する情報と共に受信する。モデル生成モジュール138の出力は、環境の3Dモデル266である。図示された実施形態では、モデル生成モジュール138は、ルート生成モジュール252、ルートフィルタリングモジュール258、およびフレーム抽出モジュール262を含む。
【0045】
ルート生成モジュール252は、カメラパス226および360度カメラ情報254を受信し、抽出された各フレームについて1つまたは複数の候補ルートベクトル256を生成する。360度カメラ情報254は、カメラモデル254Aおよびカメラ高さ254Bを含む。カメラモデル254Aは、360度フレーム内の各2D点(すなわち、画像フレーム内のピクセルを識別する座標の対によって定義される)を、360度カメラからその2D点への視線の方向を表す3D光線にマッピングするモデルである。一実施形態では、空間索引システム130は、システム130によってサポートされる各タイプのカメラに対して別々のカメラモデルを格納する。カメラ高さ254Bは、フレームのシーケンスであるウォークスルービデオがキャプチャされている間の、環境の床に対する360度カメラの高さである。一実施形態では、360度カメラ高さは、画像フレームキャプチャプロセス中に一定値を有すると仮定される。例えば、360度カメラがユーザの体に装着されるヘルメットに取り付けられる場合、次いで、高さは、ユーザの高さとユーザの頭頂部に対する360度カメラの高さの合計に等しい一定値を有する(両方の量は、ユーザ入力として受信できる)。
【0046】
本明細書で言及されるように、抽出されたフレームのルートベクトルは、抽出されたフレームと他の抽出されたフレームの1つとの間の空間距離を表すベクトルである。例えば、抽出されたフレームに関連付けられたルートベクトルは、そのルートベクトルをその関連付けられたフレームの空間位置に追加することが他の抽出されたフレームの空間位置をもたらすように、その抽出されたフレームにそのテールを有し、他の抽出されたフレームにそのヘッドを有する。一実施形態では、ルートベクトルは、ベクトル減算を実行して、それぞれの6Dポーズベクトルによって示されるように、2つの抽出されたフレームの3次元位置間の差を計算することによって計算される。
【0047】
モデル視覚化モジュール142を参照すると、モデル視覚化モジュール142が3Dモデル266を受信し、抽出されたフレームの一人称ビューを表示した後に、抽出されたフレームのルートベクトルが後で使用される。一人称ビューを表示する場合、モデル視覚化モジュール142は、他のフレームの位置を表す画像フレーム内の位置(例えば、ルートベクトルの先頭の画像フレーム)にウェイポイントアイコン(
図3Bに円として示されている)をレンダリングする。一実施形態では、モデル視覚化モジュール142は、以下の方程式を使用して、ルートベクトルに対応するウェイポイントアイコンをレンダリングする画像フレーム内の位置を決定する。
【0048】
【0049】
この式では、Mprojはレンダリングに使用される360度カメラプロジェクション関数のパラメータを含むプロジェクション行列であり、Mviewは現在のフレームに対するユーザの位置と方向を表すアイソメトリック行列であり、Mdeltaはルートベクトルであり、Gringはレンダリングされているウェイポイントアイコンのメッシュモデルを表すジオメトリ(3D座標のリスト)であり、Piconは画像フレームの一人称ビュー内のアイコンのジオメトリである。
【0050】
再び、モデル生成モジュール138を参照すると、ルート生成モジュール252は、抽出されたフレームの各ペア間の候補ルートベクトル256を計算できる。しかし、フレームに関連付けられた各候補ルートベクトルに対して別々のウェイポイントアイコンを表示することは、多数のウェイポイントアイコン(例えば、数十個)がフレーム内に表示されることをもたらす可能性があり、これはユーザを圧倒し、個々のウェイポイントアイコン間を識別することを困難にする可能性がある。
【0051】
あまりにも多くのウェイポイントアイコンを表示することを避けるために、ルートフィルタリングモジュール258は、候補ルートベクトル256を受信し、対応するウェイポイントアイコンと共に一人称ビューで表されるルートベクトル260を表示するためにルートベクトルのサブセットを選択する。ルートフィルタリングモジュール256は、様々な基準に基づいて、表示されたルートベクトル256を選択できる。例えば、候補ルートベクトル256は、距離に基づいてフィルタリングできる(例えば、閾値長未満の長さを有するルートベクトルのみが選択される)。
【0052】
いくつかの実施形態では、ルートフィルタリングモジュール256はまた、環境のフロアプラン257を受信し、フロアプラン内の特徴に基づいて候補ルートベクトル256をフィルタリングする。一実施形態では、ルートフィルタリングモジュール256は、フロアプラン内の特徴を使用して、壁を通過する任意の候補ルートベクトル256を削除し、その結果、画像フレーム内で可視である位置のみを指す1組の表示されたルートベクトル260をもたらす。これは、例えば、候補ルートベクトル256を取り囲むフロアプランの領域からフロアプランのフレームパッチを抽出し、画像フレームパッチをフレーム分類器(例えば、フィードフォワード深層畳み込みニューラルネットワーク)に提出して、パッチ内に壁が存在するかどうかを決定することによって行うことができる。パッチ内に壁が存在する場合、次いで、候補ルートベクトル256は壁を通過し、表示されたルートベクトル260の1つとして選択されない。壁が存在しない場合、次いで、候補ルートベクトルは、壁を通過せず、モジュール258が考慮する任意の他の選択基準(距離など)に従って、表示されたルートベクトル260の1つとして選択され得る。
【0053】
画像フレーム抽出モジュール262は、360度フレームのシーケンスを受信し、画像フレームの一部または全部を抽出して、抽出フレーム264を生成する。一実施形態では、360度フレームのシーケンスは、360度ウォークスルービデオのフレームとしてキャプチャされ、画像フレーム抽出モジュール262は、各フレームの別個の抽出されたフレームを生成する。
図1に関して上述したように、画像フレーム抽出モジュール262はまた、360度フレーム212のシーケンスであるウォークスルービデオのサブセットを抽出できる。例えば、360度フレーム212のシーケンスであるウォークスルービデオが比較的高いフレームレート(例えば、1秒あたり30または60フレーム)でキャプチャされた場合、画像フレーム抽出モジュール262は、抽出されたフレーム264のより管理可能な数が3Dモデルの一部としてユーザに表示されるように、一定の間隔(例えば、1秒あたり2フレームのビデオ)で画像フレームのサブセットを抽出できる。
【0054】
フロアプラン257、表示されたルートベクトル260、カメラパス226、および抽出されたフレーム264は、3Dモデル266に結合される。上述したように、3Dモデル266は、環境の抽出されたフレーム264のセット、画像フレームのそれぞれの相対位置(カメラパス226内の6Dポーズによって示される)を含む環境の表現である。
図2Bに示す実施形態では、3Dモデルはまた、フロアプラン257、フロアプラン上の画像フレームのそれぞれの絶対位置、および抽出されたフレーム264の一部または全部について表示されたルートベクトル260を含む。
【0055】
VI.注釈付き3Dモデルとフロアプランの比較
図2Cは、一実施形態による、注釈付き3Dモデル280とフロアプラン257との比較を示すブロック図を示す。注釈付き3Dモデル生成モジュール146は、モデル生成モジュール138によって生成された3Dモデル266と、ビデオキャプチャシステム110によってキャプチャされたウォークスルービデオの360度フレーム212とを入力として受信する。注釈付き3Dモデル生成モジュール146は、オブジェクト識別子モジュール274と、3Dモデル注釈モジュール278とを含み、注釈付き3Dモデル280を出力する。オブジェクト識別子モジュール274は、360度のフレーム212内でキャプチャされたオブジェクトを識別する。オブジェクト識別子モジュール274は、オブジェクトタイプおよび入力画像フレーム内にあるオブジェクトの位置を識別するように構成された、ニューラルネットワーク分類器、最近傍分類器、または他のタイプのモデルなどの機械学習モデルであり得る。オブジェクト識別子モジュール274はまた、画像内のオブジェクトのタイプおよび位置を識別するために、オブジェクト検出、セマンティックセグメンテーションなどを実行し得る。オブジェクト識別子モジュール274はオブジェクトが検出された領域を識別する分類済み画像フレーム276を出力し、各領域はオブジェクトタイプに関連付けられている。
【0056】
3Dモデル266および分類されたフレーム276は、分類されたフレーム276内にオブジェクトを含めるように3Dモデル266を修正する3Dモデル注釈モジュール278に提供される。3Dモデル注釈モジュール278は、分類済みフレーム276を3Dモデル266上に投影し得る。3Dモデル266は、較正されたカメラモデルを使用して、各分類済みフレーム内の各分類済みピクセルを3Dモデル255内の対応する点に投影することによって、分類済みフレーム276と結合され得る。3Dモデル内の点の分類は、各分類済みフレーム276フレーム内の全ての関連するピクセルからの分類を結合することによって決定され得る(例えば、分類確率の線形結合を使用して)。
【0057】
注釈付き3Dモデル280および注釈付きフロアプラン257は、量推定モジュール148への入力として提供される。量推定モジュール148は、フロアプラン257との比較に基づいて、注釈付き3Dモデル280内の各オブジェクトタイプの推定量を決定する。量推定モジュール148は、オブジェクトタイプに関連付けられたオブジェクトが存在する可能性を決定する。次に、予測量決定モジュール144は、建設の完了時に環境内に存在すべき各オブジェクトタイプのオブジェクトの予測量を決定する。推定量および予測量は、設置されたオブジェクトタイプの推定量と、構築の終了時に設置されると予測されるオブジェクトタイプの予測量とを比較することによって、各オブジェクトタイプの構築の進捗状況を決定する進捗状況決定モジュール150に提供される。
【0058】
VII.モデル視覚化インターフェース例
図3A乃至
図3Eは、一実施形態による、モデル視覚化モジュールによって提供されるモデル視覚化インターフェースの部分を示す。
図1で上述したように、モデル視覚化インターフェースは、ユーザが、環境の3Dモデル内の対応する位置で、キャプチャされた画像のそれぞれを見ることを可能にする。
【0059】
図3A乃至
図3Eは、上記からの総合契約会社の例で続ける。建設現場でフレームが完成すると、総合建設会社は各ユニット内側の一連の画像をキャプチャして、乾式壁の設置によってすぐに隠される作業の記録を作成する。キャプチャされた画像は、カメラパスモジュール132への入力として提供され、これは、6Dカメラポーズのベクトル(各画像に対して1つの6Dポーズ)を生成する。6Dカメラポーズは、各画像に関連付けられた相対的なカメラ位置の2D表現を提供するモデル視覚化モジュール142への入力として提供される。ユーザは、クライアントデバイス160を使用してモデル視覚化モジュール142によって提供される視覚化インターフェースを表示することによってこの表現を閲覧でき、ユーザは、2Dオーバーヘッドビューマップ上のアイコンを選択することによって、シーケンス内の異なる画像にナビゲートできる。ユーザが2Dオーバーヘッドマップ内の画像のアイコンを選択した後、視覚化インターフェースは、ユーザがパンおよびズームできる画像の一人称ビューを表示する。一人称視点はまた、他のキャプチャされた画像の位置を表すウェイポイントアイコンを含み、ユーザは、画像に対するウェイポイントアイコンを選択することによって、これらの他の画像のうちの1つの一人称視点にナビゲートできる。
図2Bに関して上述したように、各ウェイポイントアイコンは、表示されている画像から他の画像を指し示すルートベクトルに基づいてレンダリングされる。2Dオーバーヘッドビューマップの例を
図3Aに示し、一人称ビューの例を
図3Bに示す。
図3Bに示す一人称ビューでは、ウェイポイントアイコンは青色の円である。
【0060】
総合契約会社の例に戻ると、画像が記録されてから2か月後に、壁の1つに隠された電気工事の検査を必要とするユニットの1つで問題が発見された。従来、この電気工事を検査するには、作業を露出させるために乾式壁および他の完成した仕上げを解体する必要があり、これは非常に費用の掛かる作業である。しかし、総合建設会社は代わりに視覚化インターフェースにアクセスし、2Dオーバーヘッドマップビューを使用して、問題が発見された建物内の場所を識別することが可能である。そして、総合建設会社はその場所をクリックして、その場所で撮影された画像を見ることができる。この例では、
図3Cに示される画像は、問題が発見された場所で撮影されている。
【0061】
一実施形態では、視覚化インターフェースはまた、スクリーンの一方の側に第1の画像、およびスクリーンの他方の側に第2の画像を、表示する分割スクリーンビューを含む。これは、例えば、異なる時間に同じ場所でキャプチャされた2つの画像の並列ビューを作成するために使用できる。これらの2つのビューはまた、1つのビューにおけるズーム/方向を調整することが、他のビューにおけるズーム/方向を調整するように同期できる。
【0062】
図3Dおよび3Eにおいて、総合建設会社は、分割スクリーンビューを使用して、右側に乾式壁が設置された翌日からの画像を表示し、左側に以前の日付(例えば、乾式壁が設置された前日)から撮影された画像を表示する並列ビューを作成する。視覚化インターフェースを使用して、「時間的に遡って」、乾式壁で覆われる前の電気工事を見ることにより、総合建設会社は、乾式壁の費用の掛かる除去の必要性を回避しながら電気的問題を検査できる。さらに、空間索引システム130は、ユーザに手動注釈を実行させることなく、すべてのキャプチャされた画像の位置を自動的に索引付けできるため、画像をキャプチャおよび索引付けするプロセスは時間がかからず、毎日または週に数回など、定期的に実行できる。
【0063】
VIII.進捗状況の視覚化インターフェース例
図4A乃至
図4Eは、一実施形態による、進捗状況視覚化モジュールによって提供される進捗状況の視覚化インターフェースを示す。
図4A乃至
図4Eは、上記からの総合契約会社の例を続ける。建設現場でプロジェクトの作業が行われているとき、ユーザは、建設現場のウォークスルービデオをキャプチャし、それを空間索引システム130に提供して、追跡されているオブジェクトタイプに対してどの程度の進捗状況であるかを決定する。ユーザは、ウォークスルービデオを定期的(例えば、毎日、毎週)にキャプチャし、時間の経過に伴う建設の進捗状況の分析を要求し得る。空間索引システム130は、決定された建設の進捗状況を視覚化インターフェース400でユーザに提示する。
【0064】
図4Aにおいて、視覚化インターフェース400は、断熱材(insulation)および乾式壁の設置を追跡することによって壁の建設の進捗状況を提示する。視覚化インターフェースは、オブジェクトタイプのそれぞれについて棒グラフで完了した設置の量を提示するように構成された第1のインターフェース410、および折れ線グラフで表される経時的に監視された設置の累積量を提示するように構成された第2のインターフェース420を含む。視覚化インターフェース400はまた、断熱材および乾式壁のそれぞれについて予測される合計設置量と比較した推定設置量を示すサマリインターフェース430を含む。サマリインターフェース430はまた、各オブジェクトタイプの平均設置レートに基づいて設置を完了するための推定目標日を含む。
【0065】
図4Bにおいて、視覚化インターフェース400は、レイアウト、上部トラック、フレーム、断熱材、乾式壁、およびテーピングを含むオブジェクトタイプの建設現場および建設進捗状況のマップ440を含む。建設現場のマップ440は、環境の注釈付き3Dモデルのトップダウンビューであり得る。設置されたオブジェクトタイプの位置は、マップ440に示され、設置されたオブジェクトタイプの推定数量は、視覚化インターフェースの右側の要約450に示される。
図4Bに示す例では、壁の設置の進捗状況が示されているが、ユーザは視覚化インターフェースと対話し、電気、フローリング、塗装、電気器具、キャビネットなどの他のタイプのタスクの進捗状況を見るよう要求し得る。
【0066】
図4C乃至4Eは、異なる表示モードを有する壁の設置の進捗状況の表である。
図4Cは、「数量」モードで表示され、
図4Dは、「ステータス」モードで表示され、
図4Eは、「%完了」モードで表示される。視覚化インターフェース400は、「最後のキャプチャ」または新しいウォークスルービデオが提供された最後の日付の列と、作業が「開始されていない」、「進行中」、または「完了」であることを示す「追跡状態」の列とを含む。視覚化インターフェース400はまた、壁の構築に入る各オブジェクトタイプ(例えば、レイアウト、フレーム、絶縁、乾式壁、テーピング)の進捗状況を追跡するための列を含む。視覚化インターフェース400は、プロジェクトのレベル1乃至10のそれぞれの結果と、プロジェクト全体の集計結果とを含む。
【0067】
図示しないが、視覚化インターフェース400はまた、まだ設置されていない予測されるオブジェクトを含むレポートを表示し得る。レポートは、欠落している予測されるオブジェクトの場所およびオブジェクトタイプを示し得る。いくつかの実施形態では、欠落している予測されるオブジェクトに対応するマップ440上の場所を視覚的に区別して、依然として作業を必要とする建設現場の部分を強調し得る。レポートは、ユーザ入力に基づいて(例えば、ユーザは、欠落している予測されるオブジェクトを設置後にレポートからチェックオフし得る)、または空間索引システム130が新しいウォークスルービデオに対して分析を実行するときに、更新され得る。
【0068】
IX.空間索引のその他の応用
本明細書に記載される方法およびシステムはまた建設以外の環境で使用できる。物理的世界におけるオブジェクトの自動的なカウントおよび測定は、様々な実世界の使用ケースに適用できる中核的な機能である。例えば、この方法は盗難検出に適用して、ゲストがチェックアウトした後にホテルの部屋で予測されるオブジェクトの存在および量を監視できる。ゲストがホテルの部屋をチェックアウトした後、ホテルの保守作業員は、ホテルの部屋のウォークスルービデオをキャプチャし、空間索引システムを使用して、ウォークスルービデオでキャプチャされたオブジェクトが予測される量と一致するかどうかを決定し得る。別の例では、本方法を倉庫または店舗の在庫を追跡するために使用して、倉庫または店舗などの施設を維持および管理する。作業者またはロボットは、ウォークスルービデオを定期的にキャプチャし、空間索引システムを使用して倉庫または店舗内にあるオブジェクトタイプの数量を決定し得る。決定された数量が予想数量と異なる場合、空間索引システムは、在庫管理のためにその差にフラグを立て得る。
【0069】
X.フロアプラン特徴に基づくフレームの空間インデックス
上述したように、視覚化インターフェースは、環境のフロアプラン内の各フレームの位置を表示する2Dオーバーヘッドビューマップを提供できる。オーバーヘッドビューに表示されることに加えて、環境のフロアプランはまた、各フレームの位置を決定する空間インデックスプロセスの一部として使用できる。
【0070】
図5は、一実施形態による、フロアプラン内の特徴を使用するフレームの自動空間インデックス付けのための例示的な方法500を示すフローチャートである。他の実施形態では、方法500は、追加の、より少ない、または異なるステップを含み得、
図5に示されるステップは、異なる順序で実行され得る。例えば、方法400は、フロアプランを取得する(530)ことなく実行され得、そのケースでは、カメラパスの結合した推定値が、フロアプラン内の特徴を使用することなく生成される(540)。
【0071】
空間索引システム130は、ビデオキャプチャシステム110からフレームのシーケンスであるウォークスルービデオを受信する(510)。シーケンス内の画像フレームは、ビデオキャプチャシステム110がカメラパスに沿って環境(例えば、建設現場の床)を移動するときにキャプチャされる。一実施形態では、画像フレームのそれぞれは、ビデオキャプチャシステム上の360度カメラ(例えば、
図1に関して上述した360度カメラ112)によってキャプチャされる360度フレームである。別の実施形態では、画像フレームのそれぞれは、90度などのより狭い視野を有する。
【0072】
空間索引システム130は、フレームのシーケンスであるウォークスルービデオに基づいて、カメラパスの第1の推定値を生成する(520)。カメラパスの第1の推定値は、例えば、シーケンス内の各フレームに対する6Dカメラポーズを指定する6次元ベクトルとして表すことができる。一実施形態では、空間索引システム130のコンポーネント(例えば、
図2Aを参照して上述したSLAMモジュール216)は、各フレームに対する6Dカメラポーズを同時に決定し、環境の3次元仮想モデルを生成するために、フレームのシーケンスであるウォークスルービデオに対してSLAMアルゴリズムを実行する。
【0073】
空間索引システム130は、環境のフロアプランを取得する(530)。例えば、複数のフロアプラン(フレームのシーケンスである受信されたウォークスルービデオに描写された環境のフロアプランを含む)がフロアプランストレージ136に記憶され得、空間索引システム130は、フロアプランストレージ136にアクセスして環境のフロアプランを取得する。環境のフロアプランはまた、フロアプランストレージ136に記憶されることなく、ビデオキャプチャシステム110またはクライアントデバイス160を介してユーザから受信され得る。
【0074】
空間索引システム130は、カメラパスの第1の推定値とフロアプラン内の物理的オブジェクトとに基づいて、カメラパスの結合した推定値を生成する(540)。カメラパスの結合した推定値を生成する(540)2つの例示的な方法600、700を、それぞれ
図6および
図7に関して以下に説明する。
【0075】
カメラパスの結合した推定値を生成した後(540)、空間索引システム130は、環境の3Dモデルを生成する(550)。例えば、モデル生成モジュール138は、
図2Bに関して上述したように、フロアプラン、複数のルートベクトル、カメラパスの結合した推定値、およびフレームのシーケンスであるウォークスルービデオから抽出されたフレームを結合することによって、3Dモデルを生成する。
【0076】
いくつかの実施形態では、空間索引システム130はまた、ビデオキャプチャシステムがカメラパスに沿って移動している間にキャプチャされた追加データ(フレームのシーケンスであるウォークスルービデオとは別の)を受信し得る。例えば、空間索引システムはまた、
図1を参照して上述したように、モーションデータまたは位置データを受信する。空間索引システム130が追加データを受信する実施形態では、空間索引システム130は、カメラパスの結合した推定値を生成する(540)ときに、フロアプランに加えて追加データを使用し得る。
【0077】
空間索引システム130が、フレームのシーケンスであるウォークスルービデオと共にモーションデータを受信する実施形態では、空間索引システム130は、
図2Aに関して上述したように、モーションデータに対してデッドレコニングプロセスを実行して、カメラパスの第2の推定値を生成できる。この実施形態では、カメラパスの結合した推定値を生成するステップ540は、第2の推定値の一部を使用して、カメラパスの第1の推定値のギャップを埋めることを含む。例えば、カメラパスの第1の推定値は、キャプチャされたフレームのいくつかにおける貧弱な特徴質のために、カメラパスセグメントに分割され得る(これは、
図2Aに関して上述したように、SLAMアルゴリズムが信頼可能な6Dポーズを生成できないギャップを引き起こす)。このケースでは、第2のパス推定値からの6Dポーズを使用して、第1のパス推定値のセグメント間のギャップを埋めることによって、第1のパス推定値のセグメントを結合できる。
【0078】
上述したように、いくつかの実施形態において、方法500は、フロアプランを取得する(530)ことなく実行され得、カメラパスの結合した推定値は、フロアプラン内の特徴を使用することなく生成される(540)。これらの実施形態のうちの1つにおいて、カメラパスの第1の推定値は、任意の追加のデータ処理または分析なしに、カメラパスの結合した推定値として使用される。
【0079】
これらの実施形態のうちの別の1つにおいて、カメラパスの結合した推定値は、カメラパスの1つまたは複数の追加の推定値を生成し、各パス推定値における各6Dポーズに対する信頼度スコアを計算し、カメラパスに沿った各空間位置に対して、最も高い信頼度スコアを有する6Dポーズを選択することによって生成される(ステップ540)。例えば、カメラパスの追加的な推定値は、上述したようなモーションデータを使用する第2の推定値と、GPS受信機からのデータを使用する第3の推定値と、IPS受信機からのデータを使用する第4の推定値とのうちの1つまたは複数を含み得る。上述したように、カメラパスの各推定値は、シーケンス内の各フレームの相対的な位置および方向を示す6Dポーズのベクトルである。
【0080】
6Dポーズの信頼度スコアは、各パス推定値に対して別々に計算される。例えば、上述のパス推定値の信頼度スコアは、以下の方法で計算し得る。第1の推定値(SLAMアルゴリズムを用いて生成された)における6Dポーズの信頼度スコアは、6Dポーズに対応する画像フレームの特徴量(例えば、画像フレーム内の検出された特徴の数)を表し、第2の推定値(モーションデータを用いて生成された)における6Dポーズについての信頼度スコアは、6Dポーズの時間を中心とする、それに先行する、またはそれに続く時間間隔における加速度計、ジャイロスコープ、および/または磁力計データにおける雑音のレベルを表し、第3の推定値(GPSデータを用いて生成された)における6Dポーズの信頼度スコアは、6Dポーズを生成するために使用されたGPSデータのGPS信号強度を表し、第4の推定値(IPSデータを用いて生成された)における6Dポーズについての信頼度スコアは、6Dポーズを生成するために使用されたIPSデータについてのIPS信号強度(例えば、RF信号強度)を表す。
【0081】
信頼度スコアを生成した後、空間索引システム130は、カメラパスの各推定値を反復的にスキャンし、シーケンス内の各フレームに対して、最も高い信頼度スコアを有する6Dポーズを選択し、選択された6Dポーズは、カメラパスの結合した推定値における画像フレームの6Dポーズとして出力される。各パス推定値に対する信頼度スコアは別々に計算されるので、各パス推定値に対する信頼度スコアは、反復的なスキャンプロセスが行われる前に、共通のスケール(例えば、0と1との間のスカラ値であって、0は最低の可能な信頼を表し、1は最高の可能な信頼を表す)に正規化できる。
【0082】
XI.カメラパスの生成-力まかせ探索によるフロアプランの位置合わせ
図6は、一実施形態による、力まかせ探索を使用してフロアプランと結合されたカメラパスを生成するための方法600を示すフローチャートである。他の実施形態では、方法600は、追加の、より少ない、または異なるステップを含み得、
図6に示されるステップは、異なる順序で実行され得る。
【0083】
図6で説明される力まかせ探索は、複数の候補カメラパスを生成し(例えば、カメラパス推定値に対して異なるスケーリング、回転、および変換動作を適用することによって)、フロアプラン上の特徴に対して最も高い一貫性スコアを有する候補カメラパスを選択することによって、カメラパスの推定値をフロアプランと位置合わせする。上述したように、いくつかの実施形態では、カメラパスの第1の推定値は、複数のカメラパスセグメントに分割できる(例えば、キャプチャされたフレームのいくつかにおける貧弱な特徴の質のために)。これらの実施形態では、力まかせ探索は、各カメラパスセグメントをフロアプランと位置合わせするために、カメラパスセグメントのそれぞれに対して別々に実行できる。カメラパスセグメントのそれぞれをフロアプランと位置合わせした後、次いで、空間索引システムは、位置合わせされたカメラパスセグメント間のカメラパス内のギャップを埋めるために、モーションデータなどの他のデータを使用できる。次に、位置合わせされたカメラパスと埋められたギャップとの組み合わせが、結合されたカメラパスとして出力される。
【0084】
説明を容易にするために、力まかせ探索は、カメラパスセグメントに関して以下に説明される。しかし、力まかせ探索を第1のパス推定値全体に対しても実行できる。例えば、いくつかの実施形態では、カメラパスの第1の推定値はセグメントに分割されない(例えば、360度のフレームのシーケンスにおける各フレームは、十分に高品質の特徴を含むため)。これらの実施形態では、
図6に記載される力まかせ探索は、第1のパス推定値をフロアプランと位置合わせするために、第1のパス推定値の全体に対して実行される。これらの実施形態では、力まかせ探索の結果は、結合されたパス推定値として出力される。
【0085】
空間索引システム130は、スケーリング、回転、および変換動作などの様々な変換をカメラパスセグメントに適用することによって、複数の候補カメラパスを生成する(610)。
【0086】
空間索引システム130は、各候補カメラパスをフロアプラン内の特徴と比較し、候補カメラパスのそれぞれについて一貫性スコアを生成する(620)。候補カメラパスについての一貫性スコアは、候補カメラパスとフロアプランとの間の一貫性の程度を表す。
【0087】
一実施形態では、一貫性スコアは、4つのコンポーネントの加重和である。第1のコンポーネントは、候補カメラパスとフロアプラン内の特徴との間の類似性のレベルを表す。例えば、第1のコンポーネントは、候補カメラパスがフロアプラン内の特徴と交差する各インスタンスについて交差スコアを生成することによって計算でき、次いで交差スコアを結合する(例えば、それらを一緒に加算することによって)。交差スコアは、交差される特徴のタイプを通過する現実世界のカメラパスの可能性を表す(例えば、高い交差スコアは、ドアを交差するために生成され、低い交差スコアは、壁を交差するために生成される)。
【0088】
第2および第3のコンポーネントは、ビデオキャプチャシステム110から受信された位置データに基づく。第2のコンポーネントは、候補カメラパスとビデオキャプチャシステム上のGPS受信機からのデータとの間の一貫性の程度を表す。例えば、第2のコンポーネントは、候補カメラパスによって暗示された位置と、同じ時点における位置データによって指定された位置との間の距離を結合することによって計算される。第3のコンポーネントは、候補カメラパスとビデオキャプチャシステム110上のIPS受信機からのデータとの間の類似性の程度を表す。第3のコンポーネントは、第2のコンポーネントと同じ方法で計算できる。空間索引システム130がビデオキャプチャシステム110から位置データを受信しない(または1つのタイプの位置データのみを受信する)実施形態では、これらのコンポーネントのうちの1つまたは両方が一貫性スコアから除外できる。
【0089】
第4のコンポーネントは、フレームのシーケンスであるキャプチャされたウォークスルービデオ内の特徴を、フロアプラン上の同じ位置で以前にキャプチャされたフレームからの特徴と比較することによって生成される。一貫性スコアが第4のコンポーネントを含む実施形態では、空間索引システム130は、以前にキャプチャされたフレームを、それらのフロアプラン位置と関連付けて(例えば、モデルストレージ140内のモデルの1つの一部として)格納する。
【0090】
候補カメラパスの一貫性スコアを生成した後、空間索引システムは、一貫性スコアに基づいて1つの候補カメラパスを選択する(630)。例えば、空間索引システムは、最も高い一貫性スコアを有する候補カメラパスを選択する(630)。
【0091】
X.カメラパスの生成-グリッドマップを使用したフロアプランの位置合わせ
図7Aは、一実施形態による、フロアプランのグリッドマップを使用して結合されたカメラパスを生成するための例示的な方法700を示すフローチャートである。他の実施形態では、方法700は、追加の、より少ない、または異なるステップを含み得、
図7Aに示されるステップは、異なる順序で実行され得る。
【0092】
空間索引システム130は、フロアプランに基づいてグリッドマップを生成する(710)。グリッドマップは、各ノードがフロアプラン上の空間位置を表すグラフであり、2つのノード間の各エッジは、2つのノード間の空間の通過可能性を表す遷移スコアを指定する。エッジの遷移スコアは、2つのノード間の特徴の存在に基づいて決定される。例えば、2つのノード間に壁が存在する場合、次いで、これらの2つのノード間のエッジの遷移スコアは低くなり、カメラパスが2つのノード間を交差する可能性が低いことを示す。対照的に、2つのノード間にドアが存在する場合、次いで、2つのノード間のエッジの遷移スコアは高くなる。
【0093】
一実施形態では、壁を通過するエッジの重みは経時的に調整される。例えば、第1の時間(例えば、壁のフレームがまだ配置されていない建設の初期段階)に、これらのエッジの重みには、部屋の中の空きスペースを通過するエッジの重みと同じ値が割り当てられる。第2の時間(例えば、フレームが建設されているが、乾式壁がまだ配置されていない建設の中間段階)に、これらのエッジの重みには、壁を物理的に通過することは可能であるが、一般的ではないことを示す低減値が割り当てられる。第3の時間(例えば、フレームと乾式壁の両方が配置されている建設の最終段階)に、これらのエッジの重みに低い値が割り当てられ、壁を通過することが物理的に不可能であることを示す。第1の時間、第2の時間、および第3の時間に対応する時間は、クライアントデバイス160からユーザ入力として受信され得、空間索引システム130に提供された建設スケジュールに基づいて、またはシーケンス内の画像フレームの一部または全部に対して特徴認識を実行して壁上の建設進捗状況を決定することによって、決定される。
【0094】
一実施形態では、2つのノード間のフロアプラン特徴(壁またはドアなど)の存在は、コンピュータビジョン特徴分類器を使用して検出される。この実施形態では、特徴分類器は、フロアプランのフレームからフレーム特徴(例えば、SIFT SURG、またはORB特徴)を抽出し、画像フレーム特徴を使用して、フロアプラン内の様々な位置に現れる異なる特徴(例えば、壁およびドア)を分類する。特徴分類器は、例えば、複数の手動で注釈付けされたフロアプランを含むトレーニングデータを使用してトレーニングできる。他の実施形態では、2つのノード間の特徴の存在は、手動で(例えば、ユーザ入力によって)、またはフロアプラン内のメタデータを使用することによって検出できる。
【0095】
図7Bは、フロアプランの例を示し、
図7Cは、フロアプランに対して生成されるグリッドマップの例を示す。
図7Cに示すグリッドマップの例では、ノードとエッジが2次元の正方形グリッドを形成するように、ノードは水平および垂直方向の両方に等間隔に配置されている。より低い遷移スコアを有するエッジは
図7Cに点線で示され、より高い遷移スコアを有するエッジはより太い線で示されている。
図7Cに示されているように、壁を横切るエッジは遷移スコアが低く、一方で、2つのドアを通過するエッジは遷移スコアが高い。
【0096】
グリッドマップを生成(710)した後、空間索引システム130は、反復マップマッチングアルゴリズムを実行して、カメラパスの第1の推定値をグリッドマップにマッチングする。マップマッチングアルゴリズムには、例えば、Hidden Markov Model(HMM)、条件付きランダムフィールド(CRF)、または一部の他のタイプのマップマッチングアルゴリズムとすることができる。
【0097】
図7Aに示す実施形態では、空間索引システム130は、マルコフプロセスを実行することによってマップマッチングを実行して、カメラパスの第1の推定値にマッチングするグリッドマップを通るパスに沿ったノードを反復的に識別する。
【0098】
マルコフプロセスの反復は、カメラパスに沿った1つのノードを識別すること(720)から始まる。プロセスが開始されると、識別された最初のノードがカメラパスの開始点となる。開始点は、ユーザ入力として提供される、またはビデオキャプチャシステム110から受信した位置データ(例えば、GPSまたはIPSデータ)に基づいて決定され得る。
【0099】
ノードが識別されると、空間索引システム130は、グリッドマップ内の複数の他のノードに対してスコアを生成する(730)。一実施形態では、空間索引システム130は、識別されたノードを除いて、グラフ内のすべての他のノードにスコアを付ける。他の実施形態では、空間索引システム130は、グラフ内の他のノードのサブセットにスコアを付ける。例えば、空間索引システム130は、識別されたノードからエッジの閾値数未満だけ分離されている各ノードをスコア付けする(すなわち、空間索引システム130は、識別されたノードに近いノードにスコアを付ける。)これは、例えば、グリッドマップに多数のノードとエッジが含まれており、他のノードのそれぞれにスコアを付けるには計算量が多すぎる場合に役立ち得る。
【0100】
スコアは、識別されたノードと他のノードの間のエッジの遷移スコアに基づいて生成される(730)。スコアは、さらに、識別されたノードの近くのカメラパスの第1の推定値の方向に基づいている。例えば、カメラパスの第1の推定値が識別されたノードの近くの左に移動する場合、次いで、識別されたノードをその左の隣接するノードに接続するエッジに対して高いスコアが生成され、一方で、識別されたノードをその上、下、および右の隣接するノードに接続するエッジに対して低いスコアが生成される。スコアはまた、識別されたノードの近くのカメラパスの第1の推定値によって移動された距離に基づく。例えば、カメラパス上の次の6Dポーズベクトルが4フィート離れていて、グリッドマップ内の隣接するノードが2フィート離れている場合、2つのエッジによって識別されたノードから離れているノードには、より高いスコアが割り当てられる。
【0101】
空間索引システム130は、他の各ノードのスコアを使用して、カメラパスに沿った次のノードとして1つの他のノードを選択する(740)。選択されたノードは新しい識別されたノードとして指定され、他のノードのスコアを生成するステップ730、およびカメラパス内の次のノードを選択するステップ740は、カメラパス全体に沿ったノードが識別されるまで繰り返される。次いで、空間索引システム130は、Viterbiアルゴリズムを実行して、識別されたノードに基づいてグリッドマップを介して最も可能性の高いパスを識別できる。次いで、識別されたパスは、カメラパスの結合した推定値を生成するステップ540の出力として提供できる。
【0102】
XII.進捗状況の追跡
図8は、一実施形態による、ウォークスルービデオを使用した進捗状況の追跡方法の例を示すフローチャートである。空間索引システムは、建物の一部分のフロアプランにアクセスし(810)、フロアプランは、建物の一部分内の1つまたは複数の予測されるオブジェクトの位置を識別する。追跡される複数のオブジェクトタイプの各オブジェクトタイプに対して、空間索引システムは、アクセスされたフロアプランに基づいて、建物内のそのオブジェクトタイプの1つまたは複数の予測されるオブジェクトを決定する(820)。空間索引システムは、カメラシステムから複数の画像フレームを含むビデオを受信し、カメラシステムが建物の一部を通って移動するにつれてビデオがキャプチャされる(830)。空間索引システムは、複数の画像フレーム内の1つまたは複数のオブジェクトを識別し(840)、1つまたは複数のオブジェクトのそれぞれは、オブジェクトタイプおよびオブジェクトが配置されている建物の一部の位置に関連付けられている。空間索引システムは、複数の画像フレームから建物の一部の3Dモデルを生成する(850)。1つまたは複数の識別されたオブジェクトのそれぞれに対して、空間索引システムは、識別されたオブジェクトを含むように、識別されたオブジェクトが配置される建物の一部内の位置に対応する3Dモデルの領域を修正する(860)。各オブジェクトタイプに対して、空間索引システムは、修正された3Dモデルおよびアクセスされたフロアプランに基づいて、識別されたオブジェクトが建物の部分内の位置に存在する確率を決定する(870)。各オブジェクトタイプに対して、空間索引システムは、1つまたは複数の予測されるオブジェクトと、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクトとの間の差を決定する(880)。各オブジェクトタイプに対して、空間索引システムは、決定された差を提示するためにインターフェースを修正する(890)。
【0103】
XIII.ハードウェアコンポーネント
図9は、本明細書に記載する実施形態が実装され得るコンピュータシステム900を示すブロック図である。例えば、
図1のコンテキストでは、ビデオキャプチャシステム110、空間索引システム130、およびクライアントデバイス160は、
図9に記載するように、コンピュータシステム900を使用して実施され得る。ビデオキャプチャシステム110、空間索引システム130、またはクライアントデバイス160はまた、
図9に記載するように、複数のコンピュータシステム900の組み合わせを使用して実施され得る。コンピュータシステム900は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、またはスマートフォンであり得る。
【0104】
一実施形態では、システム900は、処理リソース901、メインメモリ903、リードオンリーメモリ(ROM)905、ストレージデバイス907、および通信インターフェース909を含む。システム900は、情報を処理するための少なくとも1つのプロセッサ901、および、プロセッサ901によって実行される情報および命令を格納するための、ランダムアクセスメモリ(RAM)または他の動的ストレージなどのメインメモリ903を含む。メインメモリ903はまた、プロセッサ901によって実行される命令の実行中に、一時変数またはその他の中間情報を格納するために使用され得る。システム900はまた、プロセッサ901のための静的情報および命令を格納するためのROM905またはその他の静的ストレージを含み得る。磁気ディスクまたは光ディスクなどのストレージデバイス907は、情報および命令を格納するために提供される。
【0105】
通信インターフェース909は、システム900が、ネットワークリンク(無線または有線)を使用して1つまたは複数のネットワーク(例えば、ネットワーク120)と通信することを可能にできる。ネットワークリンクを使用して、システム900は、1つまたは複数のコンピューティングデバイス、および1つまたは複数のサーバと通信できる。システム900はまた、例えば、グラフィックスおよび情報をユーザに表示するために、陰極線管(CRT)、LCDモニタ、またはテレビセットなどのディスプレイデバイス911を含むことができる。英数字キーおよび他のキーを含むキーボードなどの入力機構913は、プロセッサ901に情報およびコマンド選択を通信するためにシステム900に結合できる。入力機構913の他の非限定的な例示的な例には、方向情報およびコマンド選択をプロセッサ901に通信し、ディスプレイデバイス911上のカーソル移動を制御するためのマウス、トラックボール、タッチセンシティブスクリーン、またはカーソル方向キーが含まれる。入力機構913のさらなる例には、無線周波数識別(RFID)リーダ、バーコードリーダ、3次元スキャナ、および3次元カメラが含まれる。
【0106】
一実施形態によれば、本明細書に記載される技術は、メインメモリ903に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ901に応答して、システム900によって実行される。そのような命令は、ストレージ907などの別の機械可読媒体からメインメモリ903に読み取られ得る。メインメモリ903に含まれる命令のシーケンスの実行は、プロセッサ901に、本明細書に記載されるプロセスステップを実行させる。代替的な実施形態では、本明細書に記載される例を実施するために、ハードワイヤード回路をソフトウェア命令の代わりに、または組み合わせて使用し得る。したがって、記載される例は、ハードウェア回路とソフトウェアの任意の特定の組み合わせに限定されない。
【0107】
XIV.追加の考慮事項
本明細書中で使用される場合、1つまたは複数の要素が後に続く「含む」という用語は、1つまたは複数の追加の要素の存在を排除しない。「または」という用語は、排他的な「または」ではなく、非排他的な「または」として解釈されるべきである(例えば、「AまたはB」は、「A」、「B」、または「AおよびB」を指し得る)。冠詞「a」または「an」は、単一のインスタンスが明確に指定されていない限り、以下の要素の1つまたは複数のインスタンスを指す。
【0108】
図面および書面による説明は、本開示の例示的な実施形態を記載しており、本開示の本質的な特徴を列挙するものとして解釈されるべきではない。本発明の範囲は、この説明を含む特許において発行されるいかなる請求項からも解釈されるべきである。
【手続補正書】
【提出日】2022-11-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
建物の一部のフロアプランにアクセスすることであって、前記フロアプランは、前記建物の前記一部内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記アクセスされたフロアプランに基づいて、前記建物の前記一部における前記オブジェクトタイプの1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、前記カメラシステムが前記建物の前記一部を通って移動されるときにキャプチャされる複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレーム内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数のオブジェクトのそれぞれが、オブジェクトタイプおよび前記オブジェクトが配置されている前記建物の前記一部内の位置に関連付けられている、ことと、
前記複数の画像フレームから前記建物の前記一部の3次元(3D)モデルを生成することと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトを含むように前記3Dモデルの領域を修正することであって、前記領域は、前記識別されたオブジェクトが配置された前記建物の前記一部内の前記位置に対応する、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記修正された3Dモデルおよび前記アクセスされたフロアプランに基づいて、前記建物の前記一部内の前記位置に
位置する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクト
の数と、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクト
の数との間の
カウント差を決定することと、
ユーザに表示されるインターフェースを修正して、各オブジェクトタイプに対して、前記決定された
カウント差を提示することと、
を含む、方法。
【請求項2】
前記3Dモデルが、lidarシステムによってキャプチャされた3D情報に基づいて生成される、請求項1に記載の方法。
【請求項3】
前記フロアプランは、少なくとも1つの前記オブジェクトタイプに関連付けられた前記1つまたは複数の予測されるオブジェクトの寸法で注釈付けされている、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に
位置する確率を決定することは、前記識別されたオブジェクトが前記位置に
位置する1つまたは複数の事前に決定された確率にさらに基づいている、請求項1に記載の方法。
【請求項5】
前記複数の画像フレーム内の前記1つまたは複数のオブジェクトを識別することは、
各画像フレームについて、
前記画像フレームに機械学習モデルを適用することであって、前記機械学習モデルは、前記画像フレーム内でキャプチャされた前記オブジェクトに関連付けられた前記位置および前記オブジェクトタイプを決定し、前記決定された位置およびオブジェクトタイプに基づいて前記画像フレーム内のピクセルを分類するように構成される、こと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記機械学習モデルは、トレーニング環境のトレーニング画像フレームを含むトレーニングデータセットに基づいてトレーニングされ、前記トレーニング画像フレームは、前記トレーニング画像フレーム内でキャプチャされた1つまたは複数のオブジェクトおよび前記1つまたは複数のオブジェクトに関連付けられたオブジェクトタイプの位置に注釈付けされている、請求項5に記載の方法。
【請求項7】
前記機械学習モデルは、オブジェクトの検出およびセマンティックセグメンテーションに基づいて、前記オブジェクトに関連付けられた前記位置およびオブジェクトタイプを決定する、請求項5に記載の方法。
【請求項8】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記3Dモデルの領域を修正することは、
前記画像フレーム内の前記分類されたピクセルを前記3Dモデル内の対応する点に投影すること、
をさらに含む、請求項5に記載の方法。
【請求項9】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に
位置する確率を決定することは、
機械学習モデルを前記修正された3Dモデルおよび前記アクセスされたフロアプランに適用することであって、前記機械学習モデルは、
前記識別されたオブジェクトと同じオブジェクトタイプおよび同じ位置に関連付けられた予測されるオブジェクトを識別し、
前記予測されるオブジェクトを含む前記アクセスされたフロアプランの領域と、前記識別されたオブジェクトを含む前記3Dモデルの前記領域との間の重複を決定する
ように構成されている、ことと、
前記重複に基づいて、前記識別されたオブジェクトが
前記位置に位置する前記確率を決定する、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記機械学習モデルは、トレーニング環境の注釈付き3Dモデルおよび前記トレーニング環境の注釈付きフロアプランを含むトレーニングデータセットに基づいてトレーニングされる、請求項9に記載の方法。
【請求項11】
前記機械学習モデルは、トレーニング環境の注釈なし3Dモデル、前記トレーニング環境の注釈付きフロアプラン、および前記トレーニング環境の1つまたは複数の画像フレームを含むトレーニングデータセットに基づいてトレーニングされる、請求項9に記載の方法。
【請求項12】
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトの総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの総量と、を比較することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクトの前記総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの前記総量との前記比較を提示することと、
をさらに含む請求項1に記載の方法。
【請求項13】
前記1つまたは複数の予測されるオブジェクトの前記総量と、前記所定の閾値よりも大きい確率に関連付けられた前記1つまたは複数の識別されたオブジェクトの前記総量との比較の変化が、時間の関数として提示される、請求項12に記載の方法。
【請求項14】
環境の注釈付き縮尺図にアクセスすることであって、前記注釈付き縮尺図は、前記環境内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記注釈付き縮尺図に基づいて1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレームに基づいて前記環境の3次元(3D)モデルを生成することと、
前記3Dモデル内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数の識別されたオブジェクトのそれぞれは前記環境内の位置に対応する前記3Dモデルの領域に関連付けられている、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記環境内の前記位置に
位置する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクト
の数と、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクト
の数との間の
カウント差を決定することと、
インターフェースを修正して、オブジェクトタイプごとに、前記
カウント差を提示することと、
を含む方法。
【請求項15】
前記環境が建設の最中の建物であり、前記予測されるオブジェクトが、前記建設の完了後に前記建物内で予測されるオブジェクトである、請求項14に記載の方法。
【請求項16】
前記環境がホテルの部屋であり、前記1つまたは複数の予測されるオブジェクトが、ゲストが前記ホテルの部屋からチェックアウトした後に前記ホテルの部屋で予測されるオブジェクトである、請求項14に記載の方法。
【請求項17】
前記環境はストアであり、前記1つまたは複数の予測されるオブジェクトは、前記ストアの在庫の製品である、請求項14に記載の方法。
【請求項18】
前記注釈付き縮尺図は、少なくとも1つのオブジェクトタイプに関連付けられた前記1つまたは複数の予測されるオブジェクトの寸法を含む、請求項14に記載の方法。
【請求項19】
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記位置に
位置する確率を決定することは、
機械学習モデルを前記3Dモデルおよび前記注釈付き縮尺図に適用することであって、前記機械学習モデルは、
前記識別されたオブジェクトと同じオブジェクトタイプおよび同じ位置に関連付けられた予測されるオブジェクトを識別し、
前記予測されるオブジェクトの寸法と、前記識別されたオブジェクトを含む前記3Dモデルの前記領域の寸法との間の重複を決定することと、
前記重複に基づいて、前記識別されたオブジェクトが
前記位置に位置する前記確率を決定するように構成されている、ことと
をさらに含む、請求項14に記載の方法。
【請求項20】
実行可能な命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令はハードウェアプロセッサによって実行されると、前記ハードウェアプロセッサに、
環境の注釈付き縮尺図にアクセスすることであって、前記注釈付き縮尺図は、前記環境内の1つまたは複数の予測されるオブジェクトの位置を識別し、前記1つまたは複数の予測されるオブジェクトは、1つまたは複数のオブジェクトタイプに関連付けられている、ことと、
各オブジェクトタイプについて、前記注釈付き縮尺図に基づいて1つまたは複数の予測されるオブジェクトを決定することと、
カメラシステムから、複数の画像フレームを含むビデオを受信することと、
前記複数の画像フレームに基づいて前記環境の3次元(3D)モデルを生成することと、
前記3Dモデル内の1つまたは複数のオブジェクトを識別することであって、前記1つまたは複数の識別されたオブジェクトのそれぞれは前記環境内の位置に対応する前記3Dモデルの領域に関連付けられている、ことと、
前記1つまたは複数の識別されたオブジェクトのそれぞれについて、前記識別されたオブジェクトが前記環境内の前記位置に
位置する確率を決定することと、
各オブジェクトタイプについて、前記1つまたは複数の予測されるオブジェクト
の数と、所定の閾値より大きい確率に関連付けられた1つまたは複数の識別されたオブジェクト
の数との間の
カウント差を決定することと、
インターフェースを修正して、オブジェクトタイプごとに、前記
カウント差を提示することと、
を含むステップを実行させる、非一時的コンピュータ可読記憶媒体。
【国際調査報告】