JP7280450B2 - ウォークスルービデオの画像検索 - Google Patents

ウォークスルービデオの画像検索 Download PDF

Info

Publication number
JP7280450B2
JP7280450B2 JP2022562045A JP2022562045A JP7280450B2 JP 7280450 B2 JP7280450 B2 JP 7280450B2 JP 2022562045 A JP2022562045 A JP 2022562045A JP 2022562045 A JP2022562045 A JP 2022562045A JP 7280450 B2 JP7280450 B2 JP 7280450B2
Authority
JP
Japan
Prior art keywords
walkthrough
frames
video
identified
videos
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022562045A
Other languages
English (en)
Other versions
JP2023518916A (ja
Inventor
ベン フライシュマン マイケル
ヘイン ガブリエル
フリエル アレン トーマス
デキャンプ フィリップ
Original Assignee
オープン スペース ラブズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オープン スペース ラブズ インコーポレイテッド filed Critical オープン スペース ラブズ インコーポレイテッド
Publication of JP2023518916A publication Critical patent/JP2023518916A/ja
Application granted granted Critical
Publication of JP7280450B2 publication Critical patent/JP7280450B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/732Query formulation
    • G06F16/7328Query by example, e.g. a complete video frame or video sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/738Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/7867Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title and artist information, manually generated time, location and usage information, user ratings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/40Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本開示は、画像およびビデオ処理に関し、特に、空間的に索引付けされたフレームから生成されたウォークスルービデオにおける画像検索に関する。
[関連出願への相互参照]
本出願は、2020年4月11日に出願された米国仮出願第63/008,662号の利益を主張するものであり、これは、その全体が参照により本明細書に組み込まれる。
ウォークスルービデオ内のオブジェクトを検索する機能は、関連分野における多くの高価値なアプリケーションを強化できる。ウォークスルービデオ内のオブジェクトの画像検索は、ウォークスルービデオが環境に関連付けられている場合に役立ち得る。例えば、建設現場のウォークスルービデオ内の「出口標識」を検索する機能は、その現場の建設の完了レベルを追跡する機能を簡略化し得る。つまり、すべての「出口標識」が設置されるまで、建設現場を完了したと見做すことはできない。さらに、ウォークスルービデオ内の乾式壁のパレットを探索する機能は、乾式壁のパレットが特定の時間に特定の場所にない場合に、乾式壁の設置を進行できないように、建設現場の作業員間の調整を管理する上で重要である。ウォークスルービデオ内のオブジェクトの画像検索は、他の環境や他の関連分野でも同様のアプリケーションを有することができる。
従来、ユーザはウォークスルービデオを手動で検索してオブジェクトのインスタンスを探索する、またはそうでなければ環境を物理的に検索しなければならない。ユーザがウォークスルー内のオブジェクトのインスタンスを手動で検索する、または環境を物理的に検索する必要があることは、非効率的で時間が掛かる。総合建設会社は、重要または価値のあるオブジェクトの量および場所を経時的に追跡し続けたいと考え得る。異なる時間に撮影されたウォークスルービデオを迅速に検索し、関心のあるオブジェクトのインスタンスを特定し、検索結果を効率的に表示するシステムが必要である。
[概要]
空間索引システムは、環境を表すフレームのシーケンスであるウォークスルービデオを受信し、空間索引プロセスを実行して、各フレームがキャプチャされた空間的位置を自動的に識別する。ビデオキャプチャシステムがカメラパスに沿って環境内を移動するにつれて、ビデオキャプチャシステムによってフレームがキャプチャされる。一実施形態では、空間索引システムは、カメラパスを推定し、環境のモデルを生成するために、フレームに対して同時ローカライゼーションおよびマッピング(SLAM)アルゴリズムを実行する。SLAMアルゴリズムで生成されたカメラパス推定値は、任意選択で、モーションデータ、位置データ、または環境のフロアプランと結合されて、カメラパスの結合した推定値を生成できる。次いで、空間索引システムは、フレームのそれぞれがキャプチャされた位置を決定し、環境のモデル内の対応する位置でフレームのそれぞれの没入型ビューを提供する視覚化インターフェースを提供できる。
自動化された空間索引プロセスを、ユーザが各フレームまたは画像にその位置を手動で注釈付けすることを必要とすることなく、実行できる。これは、ある期間にわたって空間内の変化をモニタするために、多数のフレームおよび/または画像が一度にキャプチャされる、または同じ空間のフレームが規則的な時間間隔(例えば、数日ごと)でキャプチャされるシチュエーションにおいて、特に有利である。
空間索引システムはさらに、ユーザがオブジェクトまたは表面に対する画像検索クエリを提供することを可能にする。空間索引システムは、1つまたは複数のウォークスルービデオを検索して、オブジェクトまたは表面のインスタンスを決定する。空間索引システムは、環境上の1つまたは複数のウォークスルービデオに対する画像検索クエリを受信する。画像検索クエリは、画像、例えば、ウォークスルービデオのフレームからユーザが選択したサブフレームを含む。空間索引システムは、画像に対応する特徴ベクトルのセットを決定する。空間索引システムは、1つまたは複数のウォークスルービデオを検索して、特徴ベクトルに対応する1つまたは複数のウォークスルービデオ内のフレームの部分を識別する。フレームの識別された部分は、画像検索クエリに関連付けられたオブジェクトまたは表面のインスタンスに対応する。
空間索引システムは、さらに、検索結果を表示するためのインターフェースを生成する。このインターフェースは、環境のフロアプランの表現を含む第1のインターフェース部分を含む。この第1のインターフェース部分は、ウォークスルービデオ内のフレームの識別された部分の位置に対応するフロアプラン内の位置にマーカを含む。すなわち、このマーカは、画像検索クエリからの表面のオブジェクトの識別されたインスタンスの位置を示す。このインターフェースは、ヒストグラムを含む第2のインターフェース部分を含む。ヒストグラムの独立軸は、1つまたは複数のウォークスルービデオのタイムスタンプを表すタイムラインに対応する。いくつかの実施形態において、ヒストグラムのバーは、タイムライン上の各ウォークスルービデオ内の識別された部分のインスタンスのカウントを示す。このインターフェースは対話型であり、ユーザは、マーカを切り替えることによってフレームの識別された部分を見ること、またはヒストグラム内の対応するバーを選択することによって異なるウォークスルービデオを第1のインターフェース部分にプッシュすることを可能にする。
空間索引システムの検索および表示インターフェース機能を、ユーザが手動または物理的にオブジェクトを検索する必要なく実行できる。検索および表示インターフェースは、ユーザがオブジェクトの数量と位置の両方を追跡し続けることを可能にする。これは、特定の瞬間におけるオブジェクトの量および位置を決定するための、ならびに経時的なオブジェクトの量および位置の変化を決定するための両方に有利である。
図1は、一実施形態による空間索引システムのシステム環境を示す。 図2Aは、一実施形態によるカメラパスモジュールのブロック図を示す。 図2Bは、一実施形態によるモデル生成モジュールのブロック図を示す。 図2Cは、一実施形態による検索モジュールのブロック図を示す。 図3Aは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Bは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Cは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Dは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Eは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Fは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図3Gは、一実施形態による、モデル視覚化モジュールによって提供される没入型モデルの一部と、検索視覚化モジュールによって提供される検索視覚化インターフェースとを示すスクリーンショットである。 図4は、一実施形態による、フロアプラン内の特徴を使用したフレームの自動空間索引のための例示的な方法を示すフローチャートである。 図5は、一実施形態による、力まかせ探索を使用してカメラパスをフロアプランに位置合わせするための例示的な方法を示すフローチャートである。 図6Aは、一実施形態による、フロアプランのグリッドマップを使用してカメラパスをフロアプランに位置合わせするための例示的な方法を示すフローチャートである。 図6Bは、一実施形態による、フロアプランの例を示す。 図6Cは、一実施形態による、グリッドマップの例を示す。 図7は、一実施形態による、ウォークスルービデオにおけるオブジェクト検索の方法の例を示すフローチャートである。 図8は、一実施形態による、ウォークスルービデオにおけるオブジェクト検索の例示的な方法を示すフローチャートである。 図9は、一実施形態による、本明細書の実施形態を実装するコンピュータシステムを示す図である。
[詳細な説明]
I.概要
空間索引システムは、建設現場の床などの環境を表すフレームのシーケンスであるウォークスルービデオを受信し、空間索引プロセスを実行して、フレームのそれぞれがキャプチャされた空間位置を自動的に識別する。空間索引システムはまた、環境の没入型モデルを生成し、ユーザが没入型モデル内の対応する位置でフレームおよび画像のそれぞれを見ることを可能にする視覚化インターフェースを提供する。これは、ユーザが、フレームが記録された位置を選択することによって、特定のフレームおよび/または画像に迅速にナビゲートすることを可能にする。
本明細書に記載される方法およびシステムを使用して、空間索引システムは、ユーザに手動の注釈付けを実行させることなく、および、建設現場のような屋内環境において、存在しない、ブロックされている、または大幅に減衰されている可能性のあるGPS信号または無線周波信号のみに依存することなく、キャプチャされた各フレームの位置を自動的に索引付けできる。これは、フレームのキャプチャに関連付けられたユーザ入力の量を削減し、プロセスをより迅速かつ効率的に完了することを可能にする。
すべてのキャプチャされたフレームの位置を索引付けした後、空間索引システムは、環境の没入型モデルを生成できる。没入型モデルは、キャプチャされた一連のフレームから抽出されたフレームのセットを含み、抽出されたフレームのそれぞれのフロアプラン上の位置を指定する。没入型モデルはまた、抽出された各フレームの1つまたは複数のルートベクトルを含むことができる。抽出されたフレームのルートベクトルは、抽出されたフレームと他の抽出されたフレームの1つとの間の空間距離(すなわち、方向および大きさ)を指定する。抽出されたフレームの1つを視覚化インターフェースに表示すると、空間索引システムは、ルートベクトルのそれぞれによって定義された位置に、抽出されたフレーム内のウェイポイントアイコンを表示できる。次いで、ユーザは、これらのウェイポイントアイコンの1つを選択して、その位置でキャプチャされた抽出されたフレームを表示できる。
没入型モデルと相互作用するとき、ユーザは、オブジェクトを検索するために画像検索クエリを空間索引システムに提供できる。空間索引システムは、没入型モデルに関連付けられたウォークスルービデオを検索して、ウォークスルービデオ内のオブジェクトのインスタンスを決定する。別の実施形態では、空間索引システムは、異なる時点で撮影された環境の複数のウォークスルービデオを検索して、オブジェクトのインスタンスを決定する。空間索引システムは、表示のための検索結果をユーザに提供する。結果の表示は、ユーザがオブジェクトの数量と位置の両方、および時間の経過とともに両方がどのように変化するかを追跡し続けることを可能にする。
いくつかの実施形態によれば、空間索引システムは、ウォークスルービデオにおける画像検索クエリに基づいてオブジェクトを検索する。空間索引システムは、重複する画像切り取りを実行することによって、ウォークスルービデオをサブフレームにセグメント化する。空間索引システムは、各サブフレームに対応する特徴ベクトルと、画像検索クエリにおけるオブジェクトの画像とを生成する。空間索引システムは、異なるサブフレームに対応する特徴ベクトルと画像検索クエリに対応する特徴ベクトルとの間の類似性を比較することによって、ウォークスルービデオ全体にわたるオブジェクトのインスタンスを決定し、それによって、オブジェクトに類似するフレームの部分を識別する。例えば、各サブフレームに対応する特徴ベクトルは、検索可能な索引に索引付けされ、検索可能な索引は、画像検索クエリに対応する特徴ベクトルの最近傍について照会される。いくつかの実施形態では、重複排除は、返された識別された部分がそれぞれオブジェクトの異なるインスタンスに対応するように、最近傍に対して実行される。
オブジェクト検索は、リファインステップを含み得る。識別された部分はユーザに提供され、ユーザは、識別された部分に対応する表示されたサブフレームに対して肯定的な票または否定的な票を投じることによってフィードバックを提供する。フィードバックは、画像検索クエリに関連付けられた特徴ベクトルをリファインするために使用される。オブジェクト検索は、リファインされた特徴ベクトルを使用して再度実行される。オブジェクト検索の2回目の実行では、追加のウォークスルービデオが検索用に提供され得る。
空間索引システムは、表示用のウォークスルービデオのフレームの結果として得られた識別された部分を、2部分インターフェースでユーザに提供する。インターフェースの第1の部分は、フロアプランの2次元ビューと、第1のウォークスルービデオの結果を含む。フロアプランは、フレームの識別された部分に関連付けられたフレームがキャプチャされた位置に対応する、オブジェクトの各識別されたインスタンスの位置を示すマーカ含む。ユーザは各マーカを切り替えて、識別された部分を見ることができる。インターフェースの第2の部分は、検索されたウォークスルービデオのフルセットの結果を示すヒストグラムを含む。ヒストグラムの独立軸はタイムラインを表し、ヒストグラムに沿ったバーはそれぞれのウォークスルービデオがキャプチャされた日付に対応する。ヒストグラムの各バーのハイライトされた部分は、それぞれのウォークスルービデオ内のフレームの識別された部分(例えば、オブジェクトを含むフレームの部分)の数を示す。ユーザは、ヒストグラムのバー間を切り替えて、第1のインターフェース部分内のそれぞれのウォークスルービデオのフロアプランおよび結果を生成できる。
2部分インターフェースは、オブジェクト検索の結果を表示する効率的な手段を提供する。第1の部分は、特定の日付にキャプチャされたウォークスルービデオの詳細な結果を提供し、ユーザはオブジェクトのすべてのインスタンスおよびそれぞれの場所を見ることができる。第2の部分は、オブジェクトのインスタンスの数が時間の経過とともにどのように変化するかの概要を提供する。ユーザは2部分インターフェースと相互作用して、異なる結果を詳細に表示し、貴重なデータを収集できる。
図面および記述された説明は、建設現場に関する例を提供するが、本明細書に記載された方法およびシステムは、完成した建物の内部エリア、他のタイプの構造(船など)の内部エリア、または屋外エリア(庭園または庭など)などの他のタイプの環境においても使用できる。本明細書に記載される建設現場の例に加えて、キャプチャされたフレームおよび結果として得られる没入型モデルはまた、他の様々なコンテキストにおいて使用できる。例えば、セキュリティガードは、本明細書中に記載される方法およびシステムを使用して、ルートに沿った各チェックポイントにおける施設の状態を記録できる。別の例として、施設マネージャは、倉庫内の在庫の写真文書をキャプチャできる。さらに別の例として、不動産業者は、写真をキャプチャして、家の仮想ツアーを作成できる。
II.システム環境
図1は、一実施形態による、シーケンス内のフレームがキャプチャされた空間的位置を識別するためのシステム環境100を示す。図1に示す実施形態では、システム環境100は、ビデオキャプチャシステム110と、ネットワーク120と、空間索引システム130と、クライアントデバイス150とを含む。単一のビデオキャプチャシステム110および単一のクライアントデバイス150が図1に示されているが、いくつかの実施形態では、空間索引システムは、複数のビデオキャプチャシステム110および複数のクライアントデバイス150と相互作用する。
ビデオキャプチャシステム110は、システム110がカメラパスに沿って移動されるときに、フレームデータ、モーションデータ、および位置データの1つまたは複数を収集する。図1に示される実施形態では、ビデオキャプチャシステムは、360度カメラ112と、モーションセンサ114と、位置センサ116とを含む。ビデオキャプチャシステム110は、カメラパスに沿って移動されるのに適したフォームファクタを有するデバイスとして実装される。一実施形態では、ビデオキャプチャシステム110は、車輪付きカート、またはユーザの身体に装着されるオブジェクト(例えば、バックパックまたはヘルメット)に取り付けられるまたは一体化されるデバイスのような、ユーザがカメラパスに沿って物理的に移動する携帯型デバイスである。別の実施形態では、ビデオキャプチャシステム110は、車両上に搭載される、または車両に一体化される。車両を、例えば、車輪付き車両(例えば、車輪付きロボット)または航空機(例えば、クワッドコプタードローン)とし得、予め設定されたルートに沿って自律的に移動するように構成すること、またはリアルタイムで人間のユーザによって制御することができる。
360度カメラ112は、ビデオキャプチャシステム110がカメラパスに沿って移動されるときに360度フレームのシーケンスをキャプチャすることによってフレームデータを収集する。本明細書に言及されるように、360度フレームは、360度の視野をカバーする視野を有するフレームである。360度カメラ112を、ビデオキャプチャシステム110内に複数の360度カメラを互いに対して異なる角度に向けられるように配置すること、および360度カメラをほぼ同時にそれぞれの角度から環境のフレームをキャプチャするように構成することによって、実装できる。次に、フレームを結合して、単一の360度フレームを形成できる。例えば、360度カメラ112は、反対方向に向けられた2つの180度パノラマカメラから実質的に同時にフレームをキャプチャすることによって実装できる。
ビデオキャプチャシステム110によってキャプチャされたフレームデータは、フレームタイムスタンプをさらに含み得る。フレームタイムスタンプは、各フレームがビデオキャプチャシステム110によってキャプチャされた時間に対応するデータである。本明細書で使用されるように、フレームは、互いの閾値時間間隔内(例えば、1秒以内、100ミリ秒以内など)にキャプチャされた場合、実質的に同時にキャプチャされている。
一実施形態では、360度カメラ112は360度ビデオをキャプチャし、360度ビデオ内のフレームはウォークスルービデオのフレームである。別の実施形態では、360度カメラ112は、固定時間間隔で分離された静止フレームのシーケンスをキャプチャする。フレームのシーケンスであるウォークスルービデオは、高いフレームレート(例えば、60フレーム/秒)または低いフレームレート(例えば、1フレーム/秒)など、任意のフレームレートでキャプチャできる。一般に、高いフレームレートで、フレームのシーケンスであるウォークスルービデオをキャプチャすることはより安定した結果をもたらし、一方、低いフレームレートで、フレームのシーケンスであるウォークスルービデオをキャプチャすることは、データの格納および伝送を減らすことを可能にする。モーションセンサ114および位置センサ116はモーションデータおよび位置データをそれぞれ収集し、一方で、360度カメラ112はフレームデータをキャプチャしている。モーションセンサ114は、例えば、加速度計およびジャイロを含むことができる。モーションセンサ114はまた、ビデオキャプチャシステム110を取り囲む磁場の方向を測定する磁力計を含むことができる。
位置センサ116は、ビデオキャプチャシステム110の緯度および経度座標を決定する全地球航法衛星システムのための受信機(例えば、GPS受信機)を含むことができる。いくつかの実施形態では、位置センサ116は、追加的または代替的に、環境内の既知の場所に配置された送信機から受信した信号に基づいてビデオキャプチャシステムの位置を決定する屋内測位システム(IPS)のための受信機を含む。例えば、RFフィンガープリントを送信する複数の無線周波数(RF)送信機が環境全体に配置され、位置センサ116はまた、RFフィンガープリントを検出し、RFフィンガープリントの相対強度に基づいて環境内のビデオキャプチャシステム110の位置を推定する受信機を含む。
図1に示すビデオキャプチャシステム110は、360度カメラ112、モーションセンサ114、および位置センサ116を含むが、他の実施形態では、コンポーネント112、114、116のいくつかはビデオキャプチャシステム110から省略され得る。例えば、モーションセンサ114および位置センサ116の1つまたは両方はビデオキャプチャシステムから省略され得る。さらに、ビデオキャプチャシステム110は、360度カメラ112を伴って、図1内に説明されているが、ビデオキャプチャシステム110は、代替的に、狭い視野を有するカメラを含み得る。
いくつかの実施形態において、ビデオキャプチャシステム110は、キャプチャされたデータを格納するためのストレージと、ネットワーク120を介してキャプチャされたデータを空間索引システム130に送信する通信インターフェースとをさらに含むコンピューティングデバイス(例えば、図9に示されるコンピュータシステム900)の一部として実装される。一実施形態において、ビデオキャプチャシステム110は、システム110がカメラパスに沿って移動されるときに、キャプチャされたデータをローカルに格納し、データは、データ収集が完了した後に空間索引システム130に送信される。別の実施形態では、ビデオキャプチャシステム110は、システム110がカメラパスに沿って移動しているときに、リアルタイムで、キャプチャされたデータを空間索引システム130に送信する。
ビデオキャプチャシステム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つまたは複数の技法を使用して暗号化され得る。
空間索引システム130は、ビデオキャプチャシステム110によって収集されたフレームおよび他のデータを受信し、空間索引プロセスを実行して、フレームおよび画像のそれぞれがキャプチャされた空間位置を自動的に識別し、環境のモデルを構築し、クライアントデバイス150がモデル内のそれぞれの位置でキャプチャされたフレームおよび画像を見ることを可能にする視覚化インターフェースを提供し、ユーザが環境内のオブジェクトのインスタンスを検索することを可能にし、クライアントデバイス150がオブジェクト検索の結果を見ることを可能にする検索視覚化インターフェースを提供する。図1に示す実施形態では、空間索引システム130は、カメラパスモジュール132と、カメラパスストレージ134と、フロアプランストレージ136と、モデル生成モジュール138と、モデルストレージ140と、モデル視覚化モジュール142と、検索モジュール144と、検索視覚化モジュール146とを含む。
カメラパスモジュール132は、システム110がカメラパスに沿って移動したときにビデオキャプチャシステム110によって収集されたウォークスルービデオ内のフレームおよび他のデータを受信し、受信したフレームおよびデータに基づいてカメラパスを決定する。一実施形態では、カメラパスは、フレームのシーケンスであるウォークスルービデオ内の各フレームに対する6Dカメラポーズとして定義される。各フレームに対する6Dカメラポーズは、フレームがキャプチャされたときの360度カメラ112の相対的な位置および方向の推定値(estimate)である。カメラパスモジュール132は、カメラパスをカメラパスストレージ134に格納できる。
一実施形態では、カメラパスモジュール132は、SLAM(同時ローカライゼーションおよびマッピング)アルゴリズムを使用して、同時に、(1)360度カメラ112の位置および向きを推論することによってカメラパスの推定値を決定する、および(2)直接的方法を使用してまたはフレームのシーケンスであるウォークスルービデオから抽出されたランドマーク特徴(有向FASTおよび回転BRIEF(ORB)、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)など)を使用して、環境をモデル化する。カメラパスモジュール132は、6次元(6D)カメラポーズのベクトルを経時的に出力し、シーケンス内の各フレームに対して1つの6Dベクトル(位置に対して3次元、方向に対して3次元)を有し、6Dベクトルはカメラパスストレージ134に記憶できる。カメラパスモジュール132の実施形態は、図2Aに関して以下に詳細に説明される。
空間索引システム130はまた、ビデオキャプチャシステム110によってキャプチャされた環境のフロアプランなどの1つまたは複数のフロアプランを格納するフロアプランストレージ136を含むことができる。本明細書で言及されるように、フロアプランは、トップダウンの視点からの環境(例えば、建物または構造の一部)の縮尺2次元(2D)ダイアグラム表現である。フロアプランは、ドア、窓、壁、および階段など、環境内の物理的な特徴の位置および寸法を指定する。建物または構造の異なる部分は、個別のフロアプランによって表され得る。例えば、前述の建築例では、空間索引システム130は、各フロア、ユニットまたはサブ構造に個別のフロアプランを格納し得る。
モデル生成モジュール136は、環境の没入型モデルを生成する。本明細書で言及されるように、没入型モデルは、環境の抽出されたセット、フレームのそれぞれの相対位置(フレームの6Dポーズによって示されるような)、および環境のフロアプラン上のフレームのそれぞれの絶対位置(任意選択で)を含む、環境の表現である。一実施形態では、モデル生成モジュール136は、カメラパスモジュール132またはカメラパスストレージ134からフレームシーケンスおよびその対応するカメラパス(例えば、フレームのシーケンスであるウォークスルービデオ内の各フレームの6Dポーズを指定する6Dポーズベクトル)を受信し、モデルに含めるために、シーケンス内のフレームのサブセットおよびそれらの対応する6Dポーズを抽出する。例えば、フレームのシーケンスであるウォークスルービデオが、毎秒30フレームでキャプチャされたビデオ内のフレームである場合、モデル生成モジュール136は、0.5秒間隔でフレームおよびそれらの対応する6Dポーズを抽出することによって、フレームをサブサンプリングする。モデル生成モジュール136の実施形態は、図2Bに関して以下に詳細に説明される。
モデル生成モジュール136は、モデルを生成した後、モデルストレージ140にモデルを格納できる。モデルストレージ140は、ウォークスルービデオストレージ141を含む。モデルに関連付けられた環境のフレームのセットは、ウォークスルービデオストレージ141内にウォークスルービデオとして記憶される。ウォークスルービデオストレージ141に記憶されるウォークスルービデオは、ビデオキャプチャシステム110から受信したフレームのセットに対応する、またはモデル生成のためにモデル生成モジュール138によって抽出されたそのフレームのサブセットに対応し得る。モデルストレージ140に記憶される各モデルおよび関連付けられたウォークスルービデオは、タイムスタンプに関連付けられる。タイムスタンプは、ビデオキャプチャシステム110がウォークスルービデオ内のフレームのセットをキャプチャする日付および/または時刻を示す。
モデル視覚化モジュール142は、クライアントデバイス150に視覚化インターフェースを提供する。視覚化インターフェースは、ユーザに2つの手段で没入型モデルを見ることを可能にする。第1に、視覚化インターフェースは、フロアプランストレージ136からの環境の対応するフロアプランに関連付けられたモデル生成モジュール138の出力に基づいて、2Dオーバーヘッドマップインターフェースを提供する。2Dオーバーヘッドマップは、2Dマップ上に示された各相対カメラ位置がインタラクティブであるインタラクティブインターフェースであり、マップ上の点をクリックすることは、空間内のその点でキャプチャされた抽出されたフレームにナビゲートする。第2に、視覚化インターフェースは、抽出された360度フレームの一人称ビューを提供し、ユーザが、フレームの周囲をパンおよびズームし、他のフレームの相対位置を表すフレーム内のウェイポイントアイコンを選択することによって他のフレームにナビゲートすることを可能にする。視覚化インターフェースは、ユーザが2Dオーバーヘッドマップまたは別のフレームの一人称ビューでフレームを選択した後に、そのフレームの一人称ビューを提供する。いくつかの実施形態では、モデル視覚化モジュール142は、ユーザが画像検索クエリを入力するためのオプションを視覚化インターフェースに表示するために提供する。いくつかの実施形態では、ユーザは、2Dオーバーヘッドマップのインタラクティブインターフェースでナビゲートしている間、またはウォークスルービデオの抽出された360度フレームの一人称ビューでナビゲートしている間に、画像検索クエリを提供できる。画像検索クエリは、検索モジュール144を促す。視覚化インターフェースの例示的なスクリーンショットを図3A乃至3Bに示す。
検索モジュール144は、画像検索クエリに応答する環境の1つまたは複数のウォークスルービデオを検索して、画像検索クエリに対応するフレームの部分を決定する。画像検索クエリは、1つまたは複数のウォークスルービデオ内で検索するために検索モジュール144に対してオブジェクトまたは表面の画像を指定する。1つまたは複数のウォークスルービデオは、ウォークスルービデオストレージ141内でアクセスされる、およびモデルストレージ140内の各モデルに関連付けられている。環境は、フロアプランストレージ136内のフロアプランに関連付けられている。検索モジュール144は、画像検索クエリに対応する1つまたは複数のウォークスルービデオ内のフレームの部分を識別するための1つまたは複数の技術を実行する。いくつかの実施形態では、1つまたは複数のウォークスルーの最初の検索の後、ユーザは、画像検索クエリをリファインするために、識別された部分について、フィードバックを検索モジュール144に提供する、または画像検索クエリは、他の技術を使用してリファインされる(例えば、画像検索クエリの最も予測的な特徴の自動評価に基づいて)。いくつかの実施形態では、検索モジュール144は、追加のウォークスルービデオを検索して、リファインされた画像検索クエリに対応する追加のウォークスルービデオ内のフレームの追加部分を識別する。検索モジュール144は、識別された部分を含む検索の結果、および該当する場合には追加の識別された部分を検索視覚化モジュール146に提供する。検索モジュール144の実施形態は、図2Cに関して以下に詳細に説明される。
検索視覚化モジュール146は、クライアントデバイス150への検索視覚化インターフェースを提供する。検索視覚化インターフェースは、ユーザが画像検索クエリの結果を見ることを可能にする。いくつかの実施形態では、検索視覚化インターフェースは、リファインメントインターフェースを含む。リファインメントインターフェースは、ユーザが画像検索クエリをリファインするために検索の結果に関するフィードバックを提供することを可能にする。例えば、リファインメントインターフェースは、ユーザが、識別された部分が画像検索クエリ内のオブジェクトのインスタンスであることを確認するための指示を入力する、または画像検索クエリ内のオブジェクトのインスタンスでないために識別された部分を拒絶するための指示を選択することを可能にする。リファインメントインターフェースを含む検索視覚化インターフェースの例が図3Cに示されている。
いくつかの実施形態では、検索視覚化インターフェースは2つの部分を含む。検索視覚化インターフェースの第1の部分は、1つまたは複数のウォークスルービデオの第1のウォークスルービデオに対する検索結果を示す。第1のインターフェース部分は、画像検索クエリに関連付けられた環境のフロアプランの表現を含む。いくつかの実施形態では、フロアプランの表現は、モデル生成モジュール138の出力に基づく2Dオーバーヘッドマップインターフェースである。いくつかの実施形態では、第1の部分は、フロアプランの表現内の第1のウォークスルービデオに関連付けられたカメラパスのハイライトまたは他の方法でマークされた指示を含む。第1の部分は、さらに、ウォークスルービデオのフレームの識別された部分に対応するフロアプランの表現内の位置のハイライトまたは他の方法でマークされた指示を含む。検索視覚化インターフェースの第2の部分は、1つまたは複数のウォークスルービデオの結果のヒストグラムを含む。ヒストグラムの独立軸は、1つまたは複数のウォークスルービデオのタイムスタンプに対応するタイムラインである。いくつかの実施形態では、ヒストグラムは、ある期間(例えば、日数、週、月、またはそれ以上)にわたってキャプチャされた1つまたは複数のウォークスルービデオ内のフレームの識別された部分のインスタンスを示すハイライトされたバーを含む。2つの部分からなる検索視覚化インターフェースのスクリーンショットの例を図3D乃至3Gに示す。
検索視覚化インターフェースはインタラクティブインターフェースである。例えば、第1の部分内の識別された部分を示す各ハイライトまたはマーカはインタラクティブであり、ハイライトまたはマーカをクリックすることは、空間内のその点でキャプチャされたフレームの識別された部分にナビゲートする。いくつかの実施形態では、検索視覚化インターフェースは、ユーザが識別された部分を見ることを可能にする360度フレームの一人称ビューを提供する。ユーザは、特定された部分が画像検索クエリ内のオブジェクトのインスタンスであるかどうかを確認できる。検索視覚化インターフェースはある時点におけるオブジェクトの量および位置を決定するため、ならびに、第2の部分のヒストグラムを通して時間の経過に伴うオブジェクトの量および/または位置の変化を監視するための効率的な手段を提供する。視覚化インターフェースのスクリーンショットの例を図3C乃至3Gに示す。
クライアントデバイス150は、ネットワーク120に接続できる、スマートフォン、タブレットコンピュータ、ラップトップコンピュータなどの任意のコンピューティングデバイスである。クライアントデバイス150は、スクリーンなどのディスプレイデバイス上にインターフェースをユーザに表示し、インターフェースと対話するためのユーザ入力を受信する。クライアントデバイスの例示的な実施形態を、図9のコンピュータシステム900を参照して以下に説明する。
IV.カメラパス生成の概要
図2Aは、一実施形態による、図1に示す空間索引システム130のカメラパスモジュール132のブロック図を示す。カメラパスモジュール132は、ビデオキャプチャシステム110によってキャプチャされた入力データ(例えば、360度のフレーム212のシーケンス、モーションデータ214、および位置データ223)を受信し、カメラパス226を生成する。図2Aに示される実施形態では、カメラパスモジュール132は、同時ローカライゼーションおよびマッピング(SLAM)モジュール216、モーション処理モジュール220、およびパス生成および位置合わせモジュール224を含む。
SLAMモジュール216は、360度フレーム212のシーケンスを受信し、SLAMアルゴリズムを実行して、カメラパスの第1の推定値218を生成する。SLAMアルゴリズムを実行する前に、SLAMモジュール216は、フレーム212に対して1つまたは複数の前処理ステップを実行できる。一実施形態において、前処理ステップは、360度フレーム212のシーケンスをベクトルのシーケンスに変換することによってフレーム212から特徴を抽出することを含み、ここで、各ベクトルは、それぞれのフレームの特徴表現である。特に、SLAMモジュールは、SIFT特徴、SURF特徴、またはORB特徴を抽出できる。
特徴を抽出した後、前処理ステップはまた、セグメンテーションプロセスを含む。セグメンテーションプロセスは、フレームのシーケンスであるウォークスルービデオを、フレームのそれぞれにおける特徴の質に基づいてセグメントに分割できる。一実施形態では、フレームにおける特徴の質は、フレームから抽出された特徴の数として定義される。この実施形態では、セグメンテーションステップは、フレームの特徴の質がそれぞれ閾値を上回るまたは下回ることに基づいて、高い特徴の質または低い特徴の質を有するものとして、各フレームを分類する(すなわち、閾値を上回る特徴の質を有するフレームは、高い質として分類され、閾値を下回る特徴の質を有するフレームは、低い質として分類される)。特徴の質の低下は、例えば、過剰なモーションブラーまたは低照明コンディションが原因で発生する可能性がある。
フレームを分類した後、セグメンテーションプロセスは、高い特徴の質を有する連続するフレームがセグメントに結合され、低い特徴の質を有するフレームがいずれのセグメントにも含まれないように、シーケンスを分割する。例えば、カメラパスが、照度の低い廊下に沿って一連の照度の高い部屋に出入りすると仮定する。この例では、各部屋でキャプチャされたフレームは高い特徴の質を有する可能性が高く、一方で、廊下でキャプチャされたフレームは低い特徴の質を有する可能性が高い。その結果、セグメンテーションプロセスは、同じ部屋でキャプチャされた連続するフレームの各シーケンスが単一のセグメント(各部屋に対して別個のセグメントをもたらす)に分割され、一方、廊下でキャプチャされたフレームが前記セグメントのいずれにも含まれないように、フレームのシーケンスであるウォークスルービデオを分割する。
前処理ステップの後、SLAMモジュール216は、カメラパスの第1の推定値218を生成するためにSLAMアルゴリズムを実行する。一実施形態では、第1の推定値218はまた、シーケンス内の各フレームに対して1つの6Dベクトルを有する、経時的な6Dカメラポーズのベクトルである。前処理ステップが、フレームのシーケンスであるウォークスルービデオをセグメント化することを含む実施形態では、SLAMアルゴリズムは、フレームの各セグメントに対してカメラパスセグメントを生成するために、セグメントのそれぞれに別々に実行される。
モーション処理モジュール220は、ビデオキャプチャシステム110がカメラパスに沿って移動したときに収集されたモーションデータ214を受信し、カメラパスの第2の推定値222を生成する。カメラパスの第1の推定値218と同様に、第2の推定値222はまた、経時的なカメラポーズの6Dベクトルとして表すことができる。一実施形態において、モーションデータ214は、加速度計およびジャイロスコープによってそれぞれ収集された加速度およびジャイロスコープデータを含み、モーション処理モジュール220は、モーションデータに対してデッドレコニングプロセスを実行することによって第2の推定値222を生成する。モーションデータ214が磁力計からのデータも含む実施形態において、磁力計データは、ジャイロデータに加えて、または代わりに使用されて、ビデオキャプチャシステム110の方向に対する変化を決定し得る。
多くの民生グレードのジャイロスコープによって生成されるデータは、バイアスが修正されない場合、カメラパスの第2の推定値222の精度に影響を与える可能性のある時間的に変化するバイアス(ドリフトとも呼ばれる)を含む。モーションデータ214が上述の3つのタイプのデータ(加速度計、ジャイロスコープ、および磁力計データ)すべてを含み、モーション処理モジュール220が加速度計および磁力計データを使用して、ジャイロスコープデータにおけるこのバイアスを検出し、修正できる。具体的には、モーション処理モジュール220は、加速度計データ(通常、重力の方向を指す)から重力ベクトルの方向を決定し、重力ベクトルを使用してビデオキャプチャシステム110の2次元の傾きを推定する。一方、磁力計データは、ジャイロスコープの方位バイアスを推定するために使用される。磁力計データは、特に内部構造が鋼梁を含む建物の内部で使用される場合、ノイズが多い可能性があるため、モーション処理モジュール220は、磁力計データのローリング平均を計算および使用して、方位バイアスを推定できる。様々な実施形態では、ローリング平均は、1分、5分、10分、または他の期間の時間ウィンドウにわたって計算され得る。
パス生成および位置合わせモジュール224は、カメラパスの第1の推定値218および第2の推定値222を結合して、カメラパス226の結合した推定値とする。ビデオキャプチャシステム110がカメラパスに沿って移動する間に位置データ223も収集する実施形態では、パス生成モジュール224はまた、カメラパス226を生成するときに位置データ223を使用できる。環境のフロアプランが利用可能である場合、パス生成および位置合わせモジュール224はまた、入力としてフロアプラン257を受信し、カメラパス226の結合した推定値をフロアプラン257に位置合わせできる。第1の推定値218と第2の推定値222とを結合し、カメラパスをフロアプランに位置合わせするための例示的な技術を、図4、図5および図6に関して以下に説明する。
V.モデル生成の概要
図2Bは、一実施形態による、図1に示される空間索引システム130のモデル生成モジュール138のブロック図を示す。モデル生成モジュール138は、カメラパスモジュール132によって生成されたカメラパス226を、ビデオキャプチャシステム110によってキャプチャされた360度フレーム212のシーケンス、環境のフロアプラン257、および360度カメラ254に関する情報と共に受信する。モデル生成モジュール138の出力は、環境の没入型モデル266である。図示された実施形態では、モデル生成モジュール138は、ルート生成モジュール252、ルートフィルタリングモジュール258、およびフレーム抽出モジュール262を含む。
ルート生成モジュール252は、カメラパス226および360度カメラ情報254を受信し、抽出された各フレームについて1つまたは複数の候補ルートベクトル256を生成する。360度カメラ情報254は、カメラモデル254Aおよびカメラ高さ254Bを含む。カメラモデル254Aは、360度フレーム内の各2D点(すなわち、フレーム内のピクセルを識別する座標の対によって定義される)を、360度カメラからその2D点への視線の方向を表す3D光線にマッピングするモデルである。一実施形態では、空間索引システム130は、システム130によってサポートされる各タイプのカメラに対して別々のカメラモデルを格納する。カメラ高さ254Bは、フレームのシーケンスであるウォークスルービデオがキャプチャされている間の、環境の床に対する360度カメラの高さである。一実施形態では、360度カメラの高さは、フレームキャプチャプロセス中に一定値を有すると仮定される。例えば、360度カメラがユーザの体に装着されるヘルメットに取り付けられる場合、次いで、高さは、ユーザの高さとユーザの頭頂部に対する360度カメラの高さの合計に等しい一定値を有する(両方の量は、ユーザ入力として受信できる)。
本明細書で言及されるように、抽出されたフレームのルートベクトルは、抽出されたフレームと他の抽出されたフレームの1つとの間の空間距離を表すベクトルである。例えば、抽出されたフレームに関連付けられたルートベクトルは、そのルートベクトルをその関連付けられたフレームの空間位置に追加することが他の抽出されたフレームの空間位置をもたらすように、その抽出されたフレームにそのテールを有し、他の抽出されたフレームにそのヘッドを有する。一実施形態では、ルートベクトルは、ベクトル減算を実行して、それぞれの6Dポーズベクトルによって示されるように、2つの抽出されたフレームの3次元位置間の差を計算することによって計算される。
モデル視覚化モジュール142を参照すると、モデル視覚化モジュール142が没入型モデル266を受信し、抽出されたフレームの一人称ビューを表示した後に、抽出されたフレームのルートベクトルが後で使用される。一人称ビューを表示する場合、モデル視覚化モジュール142は、他のフレームの位置を表すフレーム内の位置(例えば、ルートベクトルの先頭のフレーム)にウェイポイントアイコン(図3Bに青い円として示されている)をレンダリングする。一実施形態では、モデル視覚化モジュール142は、以下の方程式を使用して、ルートベクトルに対応するウェイポイントアイコンをレンダリングするフレーム内の位置を決定する。
Figure 0007280450000001
この式では、Mprojはレンダリングに使用される360度カメラプロジェクション関数のパラメータを含むプロジェクション行列であり、Mviewは現在のフレームに対するユーザの位置と方向を表すアイソメトリック行列であり、Mdeltaはルートベクトルであり、Gringはレンダリングされているウェイポイントアイコンのメッシュモデルを表すジオメトリ(3D座標のリスト)であり、Piconはフレームの一人称ビュー内のアイコンのジオメトリである。
再び、モデル生成モジュール138を参照すると、ルート生成モジュール252は、抽出されたフレームの各ペア間の候補ルートベクトル256を計算できる。しかし、フレームに関連付けられた各候補ルートベクトルに対して別々のウェイポイントアイコンを表示することは、多数のウェイポイントアイコン(例えば、数十個)がフレーム内に表示されることをもたらす可能性があり、これはユーザを圧倒し、個々のウェイポイントアイコン間を識別することを困難にする可能性がある。
あまりにも多くのウェイポイントアイコンを表示することを避けるために、ルートフィルタリングモジュール258は、候補ルートベクトル256を受信し、対応するウェイポイントアイコンと共に一人称ビューで表されるルートベクトル260を表示するためにルートベクトルのサブセットを選択する。ルートフィルタリングモジュール258は、様々な基準に基づいて、表示されたルートベクトル256を選択できる。例えば、候補ルートベクトル256は、距離に基づいてフィルタリングできる(例えば、閾値長未満の長さを有するルートベクトルのみが選択される)。
いくつかの実施形態では、ルートフィルタリングモジュール258はまた、環境のフロアプラン257を受信し、フロアプラン内の特徴に基づいて候補ルートベクトル256をフィルタリングする。一実施形態では、ルートフィルタリングモジュール258は、フロアプラン内の特徴を使用して、壁を通過する任意の候補ルートベクトル256を削除し、その結果、フレーム内で可視である位置のみを指す表示されたルートベクトル260のセットをもたらす。これは、例えば、候補ルートベクトル256を取り囲むフロアプランの領域からフロアプランのフレームパッチを抽出し、フレームパッチをフレーム分類器(例えば、フィードフォワード深層畳み込みニューラルネットワーク)に提出して、パッチ内に壁が存在するかどうかを決定することによって行うことができる。パッチ内に壁が存在する場合、次いで、候補ルートベクトル256は壁を通過し、表示されたルートベクトル260の1つとして選択されない。壁が存在しない場合、次いで、候補ルートベクトルは、壁を通過せず、モジュール258が考慮する任意の他の選択基準(距離など)に従って、表示されたルートベクトル260の1つとして選択され得る。
フレーム抽出モジュール262は、360度フレームのシーケンスを受信し、フレームの部分または全部を抽出して、抽出されたフレーム264を生成する。一実施形態では、360度フレームのシーケンスは、360度ウォークスルービデオのフレームとしてキャプチャされ、フレーム抽出モジュール262は、各フレームの別個の抽出されたフレームを生成する。図1に関して上述したように、フレーム抽出モジュール262はまた、360度フレーム212のシーケンスであるウォークスルービデオのサブセットを抽出できる。例えば、360度フレーム212のシーケンスであるウォークスルービデオが比較的高いフレームレート(例えば、1秒あたり30または60フレーム)でキャプチャされた場合、フレーム抽出モジュール262は、抽出されたフレーム264のより管理可能な数が没入型モデルの一部としてユーザに表示されるように、一定の間隔(例えば、1秒あたり2フレームのビデオ)でフレームのサブセットを抽出できる。
フロアプラン257、表示されたルートベクトル260、カメラパス226、および抽出されたフレーム264は、没入型モデル266に結合される。上述したように、没入型モデル266は、環境の抽出されたフレーム264のセット、フレームのそれぞれの相対位置(カメラパス226内の6Dポーズによって示される)を含む環境の表現である。図2Bに示す実施形態では、没入型モデルはまた、フロアプラン257、フロアプラン上のフレームのそれぞれの絶対位置、および抽出されたフレーム264の一部または全部について表示されたルートベクトル260を含む。
VI.検索モジュールの概要
図2Cは、一実施形態による、図1に示される検索モジュール144のブロック図を示す。検索モジュール144は、検索するオブジェクトまたは表面の少なくとも1つと、1つまたは複数のウォークスルービデオ280とを含む画像検索クエリ270を受信し、画像検索クエリ270内のオブジェクトまたは表面のインスタンスに対応するウォークスルービデオ280の識別された部分278を返す。図2Aに示す実施形態では、検索モジュール144は、フレームセグメンテーションモジュール282と、特徴ベクトルモジュール272と、類似性モジュール275とを含む。任意の実施形態では、検索モジュールはまた、リファインメントモジュール290を含む、および/または追加のウォークスルービデオ292を受信する。
画像検索クエリ270は、検索モジュール144が1つまたは複数のウォークスルービデオ280内で検索するための少なくとも1つのオブジェクトまたは表面を含む検索要求である。いくつかの実施形態では、画像検索クエリは画像を含む。画像は、携帯画像などの新規画像、またはストック写真などのオブジェクトまたは表面に関連付けられた格納された画像であり得る。または、画像は、第1のウォークスルービデオ内の360度フレームから選択されたサブフレームとすることができる。例えば、ユーザが第1のウォークスルービデオに関連付けられた没入型モデルを見ている間に、ユーザは、第1のウォークスルービデオ内の360度フレームのサブフレームを選択するためのユーザ入力を提供することによって、画像検索クエリ270を提供する。サブフレームを選択する例示的な実施形態が図3Bに示されている。いくつかの実施形態では、画像検索クエリ270は、検索モジュール144がストック画像に関連付けるオブジェクト名を含み得る。いくつかの実施形態では、画像検索クエリ270は、ユーザによって保存された検索などの以前の検索の名前を含む。
ウォークスルービデオ280は、画像検索クエリ270に関連付けられた少なくとも第1のウォークスルービデオを含む環境の1つまたは複数のウォークスルービデオである。本明細書で言及されるように、ウォークスルービデオ280は、別段の指定がない限り、単一のウォークスルービデオ(例えば、第1のウォークスルービデオ)または複数のウォークスルービデオのセットを互換的に指すことができる。ウォークスルービデオ280内の各ウォークスルービデオは、ビデオキャプチャシステムが環境内をカメラパスに沿って移動するときにビデオキャプチャシステムによってキャプチャされるフレームのセットである。いくつかの実施形態では、ビデオキャプチャシステムはビデオキャプチャシステム110である。各ウォークスルービデオ280は、環境を通る異なるカメラパスを有することができ、したがって、それぞれ異なる数のフレームを有し得る。ウォークスルービデオ280のそれぞれは、タイムスタンプに関連付けられており、タイムスタンプは、フレームのセットがビデオキャプチャシステムによってキャプチャされた日および/または時間を指定する。いくつかの実施形態では、各フレームはタイムスタンプに関連付けられており、ウォークスルービデオに関連付けられているタイムスタンプは、フレームの1つのタイムスタンプの1つである(例えば、最後のフレームのタイムスタンプ)。いくつかの実施形態では、ウォークスルービデオ280は、カメラパスモジュール132およびモデル生成モジュール138によって処理されており、それぞれが没入型モデルに関連付けられている。いくつかの実施形態では、ウォークスルービデオ280は、プロジェクトの進行を示すプロジェクト中に様々な間隔でキャプチャされたウォークスルービデオを表す。ウォークスルービデオ280に、検索モジュール144によってウォークスルービデオストレージ141からアクセスできる。
フレームセグメンテーションモジュール282は、ウォークスルービデオ280に関連付けられたフレームのセットをサブフレームに分割する。フレームセグメンテーションモジュール282は、ウォークスルービデオ280に関連付けられた各フレームの重複するクロップを取ることによってサブフレームを生成する。サブフレームは均一なサイズである。例えば、フレームセグメンテーションモジュール282は、最初のフレームの重複するクロップを取ることによって、最初のフレームをX個のサブフレームに分割し、ここで、Xは、サブフレームのサイズおよびサブフレーム間の重複の量に依存する。フレームセグメンテーションモジュール282は、ウォークスルービデオ280内のフレームの各セットの各フレームをX個のサブフレームに分割する。サブフレームのセットは、ウォークスルービデオに関連付けられた各フレームのX個のサブフレームの集合的な合計を含む。
特徴ベクトルモジュール272は、画像から特徴のベクトルを生成する。すなわち、特徴ベクトルモジュール272は、画像を、本明細書で特徴ベクトルと呼ぶ、画像の画像特徴を表す数値のベクトルのn次元セットに変換する。画像特徴は、エッジ、コーナー、ブロブ、リッジ、関心点、またはコンピュータビジョンもしくは他の画像処理によって識別可能な他の特徴とすることができる。いくつかの実施形態では、特徴ベクトルモジュール272は、SIFT特徴、SURF特徴、ニューラルネットワークもしくは他の機械学習モデル、またはそれらのいくつかの組み合わせを使用して、特徴ベクトルを生成する。特徴ベクトルモジュール272は、画像検索クエリ270に関連付けられた画像からクエリ特徴ベクトル274を生成する。特徴ベクトルモジュール272は、サブフレームからサブフレーム特徴ベクトル284のセットを生成する。入力サブフレームごとに、特徴ベクトルモジュール272は、入力サブフレームを表すn次元サブフレーム特徴ベクトルを生成する。
類似性モジュール275は、クエリ特徴ベクトル274とサブフレーム特徴ベクトル284との間の類似性を決定することによって、ウォークスルービデオ280の識別された部分278のセットを決定する。類似性モジュール275は、検索索引モジュール276および重複排除モジュール277を含む。
検索索引モジュール276は、特徴ベクトルの検索可能な索引に特徴ベクトルを挿入する。特に、検索索引モジュール276は、サブフレーム特徴ベクトル284を特徴ベクトルの検索可能な索引に索引付けする。検索可能な索引は、特徴ベクトルによって表される画像特徴によって編成され、検索可能である。いくつかの実施形態では、検索索引モジュール276は、1つまたは複数の特徴ベクトルを検索可能な索引に挿入するために、局所性依存ハッシング(LSH)などの近似最近傍アルゴリズムを使用する。特徴ベクトルの検索可能な索引を、最近傍検索(NNS)によって照会できる。
類似性モジュール275は、検索索引モジュール276によって生成された検索可能な索引を使用して、クエリ特徴ベクトル274に対する最近傍のセットを決定する。類似性モジュール275は検索可能な索引に照会して、検索可能な索引内の特徴ベクトルとクエリ特徴ベクトル274との間の類似性メトリックに基づいて、最近傍のセットを返す。いくつかの実施形態では、類似性メトリックは、検索可能な索引内の特徴ベクトルとクエリ特徴ベクトル274との間のコサイン類似性に基づく。類似性メトリックが、検索可能な索引内の特徴ベクトルの閾値差よりも小さい場合、特徴ベクトルは、最近傍のセットに追加される。すなわち、最近傍のセットは、クエリ特徴ベクトル274に最も類似するサブフレーム特徴ベクトル284のサブセットである。最近傍のセット内の各特徴ベクトルは、サブフレームに関連付けられる。最近傍のセットに関連付けられるサブフレームのセットは、提案された結果のセットである。いくつかの実施形態では、提案された結果のセットをさらに、重複排除モジュール277を使用して類似性モジュール275によってリファインして、識別された部分278のセットを決定する。
重複排除モジュール277は、1つの結果画像が、ウォークスルービデオに描かれた各実世界オブジェクト(または表面)に対して返されるように、提案された結果のセットを重複排除する。すなわち、ビデオキャプチャシステムが環境を通してカメラパスに沿って移動されるときに、同じオブジェクトがウォークスルービデオの複数のフレームでキャプチャされることが多いため、提案された結果のセットは、異なる視点からの同じオブジェクトの複数のサブフレームを含むことができる。重複排除モジュール277は、各オブジェクトが1つの結果サブフレームに関連付けられるように、1つまたは複数の技術を使用して、オブジェクトの重複結果を表す提案された結果のセット内の結果を除去する。
いくつかの実施形態では、重複排除モジュール277は、画像検索クエリに関連付けられた画像の位置からの各サブフレームの位置の距離に基づいて、提案された結果のセットを昇順のソート済みリストにソートする。ソート済みリスト内の各提案済み結果について、提案された結果がソート済みリスト内の最初の結果である場合、提案された結果は重複排除済み結果のリストにプッシュされる。提示された結果がソートされたリストの最初の結果でない場合、重複スコアを使用して、提示された結果が重複排除された結果のリストにあるすべての重複排除された結果と比較される。すなわち、各重複排除された結果に対して、重複スコアが重複排除された結果と提示された結果の間で計算され、ここで、重複スコアは、提示された結果が重複排除された結果と同じ実世界オブジェクトの画像である可能性を表す。重複スコアが閾値を超えている場合、次いで、提示された結果はソート済みリストから削除される。重複スコアが重複排除結果リストのすべての重複排除結果の閾値を下回っている場合、次いで、提示された結果は重複排除結果リストに追加される。いくつかの実施形態では、重複排除結果の結果リストは、識別された部分278として戻される。
重複スコアは、2つのサブフレーム、提示された結果に関連付けられたサブフレームと重複排除結果に関連付けられたサブフレーム、を比較し、2つのサブフレームが物理空間で同じターゲットオブジェクトを表している可能性を判断することによって、重複排除モジュール277によって、決定される。いくつかの実施形態では、スコアは、例えば、(1)2つのサブフレーム間の画像特徴の類似性、(2)3次元空間内のターゲットオブジェクトの推定位置、および/または(3)サブフレームの位置に基づいて計算される。2つのサブフレームが高い画像類似性(1)を有し、類似の推定ターゲットオブジェクト位置(2)および/または類似のサブフレーム位置(3)を有する場合、2つの画像の重複スコアはより高くなる。
画像類似性(1)は、カラーヒストグラム比較に基づくなどの画像類似性技法と、画像特徴ベクトル(例えば、2つのサブフレームに関連付けられたサブフレーム特徴ベクトル284)間のコサイン類似性との組合せを使用して計算される。
推定ターゲットオブジェクト位置(2)は、各サブフレームのそれぞれに関連付けられた360度フレームのカメラ位置から各2次元サブフレームの中心を通って延びる光線の交点に基づいて計算される。サブフレームが同じターゲットオブジェクトのものである場合、光線はターゲットオブジェクトまたはその近くで交差する必要がある。光線の交点を、各光線のカメラ位置からターゲットオブジェクトまでの距離を推定するために、点群データから抽出された幾何学的情報を使用してより正確に作成でき、点群データは、SLAMまたはモーションからの構造などのアルゴリズムを使用してウォークスルービデオから生成された。
サブフレームの位置(3)は、ウォークスルービデオに関連付けられている事前に決定されたカメラパスにアクセスすることによって決定される。ウォークスルービデオの各フレームは、カメラパス上の位置に関連付けられている。したがって、フレームの各サブフレームは、そのフレームの位置を有する。2つのサブフレーム間の位置の差が閾値を下回る場合、サブフレームは、異なる視点からの同じオブジェクトの画像である可能性がある。
検索モジュール144によって識別された識別された部分278は、画像検索クエリ270内のオブジェクト(または表面)に類似するオブジェクトのインスタンスである、ウォークスルービデオ280からのサブフレームのセットである。いくつかの実施形態では、識別された部分278は、検索索引の最近傍クエリに基づいて類似性モジュール275によって識別された提案された結果のセットである。いくつかの実施形態では、提案された結果は、重複排除モジュール277によって重複排除された結果にリファインされ、重複排除された結果は、識別された部分278である。いくつかの実施形態では、以下に説明するように、識別された部分278は、リファインメントモジュール290および追加のウォークスルービデオ292によってリファインおよび/または追加される。
いくつかの実施形態によれば、リファインメントモジュール290は、1つまたは複数の識別された部分278の関連性を示すフィードバックに基づいて、クエリ特徴ベクトル274をさらにリファインする。いくつかの実施形態では、リファインメントモジュール290は、検索視覚化モジュール146にアクセスして、視聴者がフィードバックを提供することを可能にするためのリファインメントインターフェースの表示を提供する。いくつかの実施形態では、1つまたは複数の識別された部分278の関連性を示すフィードバックは、リファインメントインターフェースを介して、識別された部分278の視聴者から受信した肯定的な票または否定的な票である。リファインメントモジュール290は、検索視覚化モジュール146からフィードバックを受信し、クエリ特徴ベクトル274をリファインする。いくつかの実施形態では、リファインメントモジュール290は、肯定的なフィードバックに対応する特徴に関連付けられた重みを増加させること、否定的なフィードバックに対応する特徴に関連付けられた重みを減少させることによって、クエリ特徴ベクトル274をリファインする。リファインメントモジュール290は、リファインされたクエリ特徴ベクトル274を類似性モジュール275に提供する。いくつかの実施形態では、類似性モジュール275は、再度、ウォークスルービデオ280のサブフレームを処理し、リファインされたクエリ特徴ベクトル274とサブフレーム特徴ベクトル284との間の類似性を決定することによって、ウォークスルービデオ280の追加の識別された部分278のセットを決定する。
いくつかの実施形態によれば、追加のウォークスルービデオ292は、検索モジュール144によって検索される環境の1つまたは複数の追加のウォークスルービデオである。追加のウォークスルービデオ292は、ウォークスルービデオ280に関連して前述したものと同じ特性を有する。いくつかの実施形態では、ユーザが、追加のウォークスルービデオ292を検索するための検索要求を手動で提供し得る。いくつかの実施形態では、空間索引システム130は、環境に関連付けられたウォークスルービデオストア141内に追加のウォークスルービデオ292があるときに、追加のウォークスルービデオ292を検索モジュール144に自動的に提供し得る。いくつかの実施形態では、追加のウォークスルービデオ292は、クエリ特徴ベクトル274をリファインするリファインメントモジュール290に応答して自動的に検索される。例えば、一実施形態では、ウォークスルービデオ280は、第1のウォークスルービデオのみを含み、環境に関連付けられた追加のウォークスルービデオ292は、クエリ特徴ベクトル274のリファイン後に検索される。
追加のウォークスルービデオ292は、追加のサブフレームを生成するフレームセグメンテーションモジュール282に提供される。追加のサブフレーム284は、追加のサブフレーム特徴ベクトル284を生成する特徴ベクトルモジュール272に提供される。追加のサブフレーム特徴ベクトル284は、類似性モジュール275に提供される。検索索引モジュール276は、追加のサブフレーム特徴ベクトルを検索索引に索引付けする。類似性モジュール275は、リファインされたクエリ特徴ベクトル274との類似性に基づいて、追加の最近傍のセットを検索索引にクエリし、追加の最近傍は、追加の提案された結果に関連付けられている。追加の提案された結果は、重複排除モジュール277によって重複排除され、その結果、追加の識別された部分279のセットが得られる。識別された部分278および適用可能な場合には、追加の識別された部分279は、表示のために検索視覚化インターフェース146に提供される。
いくつかの実施形態では、画像検索クエリ270およびウォークスルービデオ280は、没入型モデルに関連付けられていない。すなわち、カメラパス226および/または没入型モデル266は、検索モジュール144または検索視覚化モジュール146には必要ではない。例えば、検索視覚化モジュール146および重複排除モジュール277によって使用されるサブフレーム位置を、ウォークスルービデオ280に関連付けられたデータに基づいて決定できる(例えば、ビデオキャプチャシステム110は、フレームおよびサブフレーム位置を決定するために使用できるモーションデータおよび位置データを収集する)。同様に、検索視覚化インターフェースのケースでは、第1の部分のいくつかの実施形態は、カメラパスの表現を含まない。さらに、ウォークスルービデオ280は、360度ビデオの代わりに2Dビデオフレームを含み得る。
VII.視覚化インターフェース―例
図3A乃至図3Gは、一実施形態による、モデル視覚化モジュール142によって提供される没入型モデルおよび検索視覚化モジュール146によって提供される検索視覚化インターフェースの一部を示すスクリーンショットである。図1で上述したように、検索視覚化モジュール146は、ユーザが画像検索クエリの結果を見ることを可能にする検索視覚化インターフェースを生成する。
図3A乃至図3Gに示されるスクリーンショットは、上述した一般契約会社の例と同様に、一般契約会社の例で続ける。フレームが建設現場で完成すると、総合建設会社は各ユニット内のフレームのシーケンスであるウォークスルービデオをキャプチャして、作業の進捗状況の記録を制作する。キャプチャされたフレームは、カメラパスを構成する6Dカメラポーズ(各フレームに対して1つの6Dポーズ)のベクトルを生成するカメラパスモジュール132への入力として提供される。カメラパスおよびウォークスルービデオは、没入型モデルを生成するモデル生成モジュール138への入力として提供される。ユーザは、クライアントデバイス150を使用して没入型モデルを閲覧、およびモデル視覚化モジュール142によって提供される視覚化インターフェースを閲覧できる。視覚化インターフェースを介して、ユーザは、環境のフロアプランの表現を含む2Dオーバーヘッドビューマップ上のアイコンを選択することによって、シーケンス内の異なるフレームにナビゲートできる。ユーザが2Dオーバーヘッドマップ内のフレームのアイコンを選択した後、視覚化インターフェースは、ユーザがパンおよびズームできるフレームの一人称ビューを表示する。
図3Aは、モデル視覚化モジュール142によって生成された視覚化インターフェースの一人称ビューの表示例を示す。一人称ビューはまた、他のキャプチャされたフレームの位置を表すウェイポイントアイコンを含み、ユーザは、フレームのウェイポイントアイコンを選択することによって、これらの他のフレームの1つの一人称ビューにナビゲートできる。各ウェイポイントアイコンは、表示されているフレームから他のフレームを指すルートベクトルに基づいてレンダリングされる。図3Aに示す一人称ビューでは、ウェイポイントアイコンは青色の円である。
一般契約会社の例に戻ると、ウォークスルービデオが記録されてから2ヶ月後、総合建設会社はいくつかのリフトテーブルが紛失していることを発見した。従来、紛失したリフトテーブルの場所を決定することは、手作業による調査作業を必要とする。せいぜい、総合建設会社は最新の既知の場所を決定するために口コミを使用することができたが、経過した時間量を考慮すると、そのような作業は失敗する可能性が高い。または、総合建設会社は、紛失したアイテムを検索するためにすべての労働者に作業を中断させることができたが、これは費用がかかり、建設現場での実質的な作業の遅延を引き起こす。代わりに、総合建設会社はオブジェクト画像検索機能にアクセスして、2か月前のウォークスルービデオ内のリフトテーブルの位置を特定することが可能である。総合建設会社は、時間の経過とともに撮影されたすべてのウォークスルービデオに検索を伝播し、検索視覚化インターフェースで結果を表示できる。総合建設会社は、結果をクリックして、時間の経過とともにリフトテーブルの位置と数量のアカウンティングを取得し、リフトテーブルの最後に認識された位置を最終的に決定できる。図3Aの例では、ユーザが、没入型モデルの視覚化インターフェース内のオブジェクト検索機能にポインタをロールした。
例えば、図3Bでは、ユーザがオブジェクト検索機能を切り替え、ポインタを使用してオブジェクトを包含するサブフレーム310を選択している。表示によって促されると、ユーザは、点線で区切られたサブフレーム310を検索して、選択する。この例では、ユーザはビデオ内で検索するリフトテーブルを選択している。検索モジュール144は、オブジェクト検索を実行して、没入型モデルに関連付けられたウォークスルービデオ内のサブフレーム310(例えば、リフトテーブル)内のオブジェクトの他のインスタンスを検索する。オブジェクト検索機能によって促されるように選択されたリフトテーブルのサブフレーム310は、画像検索クエリ270の一例であり、閲覧中の没入型モデルに関連付けられたウォークスルービデオは、ウォークスルービデオ280の一例である。
図3Cは、検索モジュール144によって返された識別された部分322を表示するリファインメントインターフェース320の例を示す。図3Cに示されるリファインメントインターフェース320の例は、2つの部分を有する。リファインメントインターフェースの右側部分は、複数のマーカ324を有するフロアプランを表示する。フロアプランは、ウォークスルービデオの環境に関連付けられている。マーカ324は、環境内の各識別された部分322のそれぞれの位置を示す。すなわち、識別された部分322に対して、マーカ324は、識別された部分322に関連付けられたフレームのカメラパスに沿った位置をマークする。マーカ324は、物理的環境内の各オブジェクトの位置をユーザに示すのに有用である。クラスタとパターンは右側の表示によって明確にできる。
図3Cの例示的なリファインメントインターフェース320の左側部分は、画像検索クエリ内のリフトテーブルに類似するオブジェクトを有する、ウォークスルービデオ内のフレームの識別された部分322を表示する。各識別された部分の上に重ね合わされるのは、サムアップおよびサムダウンによって示されるフィードバックボタン326である。ユーザは、肯定的なフィードバックを提供するためにサムアップを選択し、識別された部分内のオブジェクトが画像検索クエリ内のオブジェクトのインスタンスであることを示すことができる。ユーザは、否定的なフィードバックを提供するためにサムダウンを選択し、識別された部分内のオブジェクトが画像検索クエリ内のオブジェクトのインスタンスではないことを示すことができる。フィードバックボタン326を介してフィードバックを提供することが完了すると、ユーザは、「全ての結果を表示」ボタンを選択して、追加の識別された部分を表示できる。リファインメントモジュール290は、フィードバックを受信して検索をリファインし、検索モジュール144は、追加のウォークスルービデオ290を検索して追加の識別された部分279を決定する。この例では、追加のウォークスルービデオ290は、総合建設会社が以前の日付で撮影した建設現場の異なるウォークスルービデオである。
図3Dは、2つの部分からなる検索視覚化インターフェース330の例を示す。第1の部分332は、上部に環境のフロアプラン333の表現を表示し、ウォークスルービデオのフレームの識別された部分に対応するフロアプラン333の表現内の位置にハイライトされたマーカ324を有する。この例では、第1の部分332はハイライトされたマーカ324を1つだけ含む。またハイライトされているのは、フロアプラン333を通って蛇行するウォークスルービデオに関連付けられたカメラパス334である。第2の部分335は、下部にヒストグラム336を表示し、ヒストグラムの独立軸は追加のウォークスルービデオのタイムスタンプに対応するタイムライン337を含む。この例では、ヒストグラム336のタイムライン337は、数ヶ月にわたる日付を有する。ヒストグラムは、追加のウォークスルービデオ内のフレームの識別された追加部分のインスタンスを示すハイライトされたバー338を含む。均一な高さのヒストグラムの明るい色のバー339は、ウォークスルービデオが特定の日に撮影されたことを示す。明るい色のバー339の上の暗い色またはハイライトされたバー338は、それぞれのウォークスルービデオに含まれるフレームの識別された部分の数を示す。すなわち、暗い色またはハイライトされたバー338は、タイムライン337上のそれぞれの日付における環境内のオブジェクト(例えば、リフトテーブル)の数を示す。
図3Dにおいて、第1の部分に表されるウォークスルービデオおよび識別された部分は、第2の部分335のタイムライン337に示されるように、4月10日の日付340である。視聴者は、検索視覚化インターフェース330と相互作用できる。例えば、ヒストグラムの各バーが選択されると、選択されたバーに関連付けられたタイムスタンプでキャプチャされたウォークスルービデオに対応する検索結果を第1のインターフェース部分332内に表示させる。ユーザが2月27日の日付342でバーを選択すると、図3Eに示されるインターフェースが表示される。図3Eは、図3Dと同じ2つの部分からなる検索視覚化インターフェース330内の異なるウォークスルービデオを示す。ウォークスルービデオは同じ環境に関連付けられており、したがって、フロアプラン333は図3Dと3Eで同じである。しかし、3Eは、図示されるように、ウォークスルービデオに関連付けられた異なるカメラパス344を有する。さらに、2月27日の日付342からのウォークスルービデオは、オブジェクトのインスタンスを示すハイライトされたマーカ324によって示されるように、より多くの識別された部分を有する。
総合建設会社の例に戻ると、総合建設会社はこの検索視覚化インターフェースを使用して、特定の日付におけるリフトテーブルの位置と数量、およびタイムラインに沿って切り替えることによってリフトテーブルが時間の経過とともにどのように移動および変化するかを表示できる。例えば、4月10日までに、残りのリフトテーブルは1つのみである。しかし、2月27日に戻ると、総合建設会社はさらに多くのリフトテーブルがあることを確認できる。総合建設会社は2月27日から4月10日の間に結果を表示して、紛失したリフトテーブルの最後の場所を追跡できる。検索視覚化インターフェース330を使用して「時間を遡って」、リフトテーブルが時間とともにどのように移動および変化するかを表示することにより、総合建設会社は建設現場の様々な設備を追跡し続けることができる。さらに、空間索引システム130は、ユーザに物理的検索またはビデオを介した手動検索を実行させることなくオブジェクト画像検索を実行できるため、設備およびオブジェクトを追跡し続けるプロセスはより効率的になる。
識別された各部分が実際にオブジェクトのインスタンスであることを確認するために、ユーザは、ハイライトされたマーカ324を選択して、識別された部分に関連付けられたフレームを閲覧できる。一例を図3Fに示す。ユーザは、360度フレームのプレビュー350を見ることができる。ユーザは、さらに、「360度画像への移動」に切り替え、空間索引システム130は、ユーザを没入型モデルの視覚化インターフェースに連れて行くことができる。ユーザは、特定された部分におけるオブジェクトのインスタンスと、没入型モデル内でキャプチャされた周囲との両方を閲覧できる。
いくつかの実施形態では、環境は複数のフロア360にまたがる。ウォークスルービデオを複数のフロア360に関連付けでき、フロアプラン362は複数のフロア360にまたがる。図3Gは、そのような実施形態の例を示し、第1のインターフェース部分332は、複数のフロア360のスクロール可能な表現を含み、視聴者はスクロールして、複数のフロア360にわたるフレームの識別された部分に対応するハイライトされたマーカ324を見ることができる。このスクロールするビューはタワービューとして知られている。ユーザは、特定のフロアを選択して、そのフロアの検索結果をより詳細に見ることができる。
別の例では、建設現場の総合建設会社がオブジェクト検索を使用して、建設現場でのタスクの進行状況を追跡できる。例えば、総合建設会社がオブジェクト検索を使用して、乾式壁のパレットを検索する。総合建設会社は、検索視覚化インターフェースを使用して、乾式壁パレットが建設現場に到着した日付(例えば、それぞれのウォークスルービデオに含まれる乾式壁のパレットのインスタンスを示すヒストグラム内のハイライトされたバーを有する最も早いウォークスルービデオ)を決定できる。同様に、総合建設会社は、検索視覚化インターフェースを使用して、乾式壁の最後が設置された日付(例えば、それぞれのウォークスルービデオに含まれる乾式壁のパレットのインスタンスを示すヒストグラム内のハイライトされたバーを有する最新のウォークスルービデオ)を決定できる。総合建設会社は、乾式壁の設置開始日及び終了日を遡及して決定することが可能であることにより、乾式壁を設置する下請業者から受領した請求書が正確であることを証明できる。下請業者が総合建設会社に対して過剰請求している場合、総合建設会社は、結果のオブジェクト画像検索を使用して請求に異議を唱えることができる。
さらに、総合建設会社は、乾式壁の表面に対応する表面を検索することによって、乾式壁の設置の進行状況を追跡できる。検索視覚化インターフェースは、最初の部分に、乾式壁の表面のインスタンスがある場所、すなわち、乾式壁が設置された場所を示す、ハイライトされたマーカを表示する。異なる日付で撮影されたウォークスルービデオを切り替えることによって、総合建設会社は、乾式壁の設置の進行状況を表示し、追跡し続けることができる。これは、進行状況の追跡と乾式壁の設置後の問題の診断の両方に役立ち得る。例えば、画像が記録されてから2ヶ月後に、壁の1つの内部に隠されている電気工事の検査を必要とするユニットの1つに問題が発見された。この電気工事を検査するには、従来、作業を露出させるために乾式壁および他の完成した仕上げを解体する必要があり、これは非常に費用のかかる作業である。しかし、総合建設会社は代わりに検索視覚化インターフェースにアクセスして、乾式壁が問題の壁に設置された日付を迅速に決定することができる。総合建設会社は次に、没入型モデルの視覚化インターフェースで先行するウォークスルービデオを参照して、乾式壁で覆われる前の電気工事を見ることができる。したがって、総合建設会社は、乾式壁の費用のかかる撤去の必要性を回避しながら、電気的問題を検査できる。
VIII.フロアプランの特徴に基づくフレームの空間索引
上述したように、視覚化インターフェースは、環境のフロアプラン内の各フレームの位置を表示する2Dオーバーヘッドビューマップを提供できる。オーバーヘッドビューに表示されることに加えて、環境のフロアプランはまた、各フレームの位置を決定する空間索引プロセスの一部として使用できる。
図4は、一実施形態による、フロアプラン内の特徴を使用するフレームの自動空間索引のための例示的な方法400を示すフローチャートである。他の実施形態では、方法400は、追加の、より少ない、または異なるステップを含み得、図4に示されるステップは、異なる順序で実行され得る。例えば、方法400は、フロアプランを取得する(430)ことなく実行され得、そのケースでは、カメラパスの結合した推定値が、フロアプラン内の特徴を使用することなく生成される(440)。
空間索引システム130は、ビデオキャプチャシステム110からフレームのシーケンスであるウォークスルービデオを受信する(410)。シーケンス内のフレームは、ビデオキャプチャシステム110がカメラパスに沿って環境(例えば、建設現場の床)を移動するときにキャプチャされる。一実施形態では、フレームのそれぞれは、ビデオキャプチャシステム上の360度カメラ(例えば、図1に関して上述した360度カメラ112)によってキャプチャされる360度フレームである。別の実施形態では、フレームのそれぞれは、90度などのより狭い視野を有する。
空間索引システム130は、フレームのシーケンスであるウォークスルービデオに基づいて、カメラパスの第1の推定値を生成する(420)。カメラパスの第1の推定値は、例えば、シーケンス内の各フレームに対する6Dカメラポーズを指定する6次元ベクトルとして表すことができる。一実施形態では、空間索引システム130のコンポーネント(例えば、図2Aを参照して上述したSLAMモジュール216)は、各フレームに対する6Dカメラポーズを同時に決定し、環境の3次元仮想モデルを生成するために、フレームのシーケンスであるウォークスルービデオに対してSLAMアルゴリズムを実行する。
空間索引システム130は、環境のフロアプランを取得する(430)。例えば、複数のフロアプラン(フレームのシーケンスである受信されたウォークスルービデオに表された環境のフロアプランを含む)がフロアプランストレージ136に記憶され得、空間索引システム130は、フロアプランストレージ136にアクセスして環境のフロアプランを取得する。環境のフロアプランはまた、フロアプランストレージ136に記憶されることなく、ビデオキャプチャシステム110またはクライアントデバイス150を介してユーザから受信され得る。
空間索引システム130は、カメラパスの第1の推定値とフロアプラン内の物理的特徴とに基づいて、カメラパスの結合した推定値を生成する(440)。カメラパスの結合した推定値を生成する(440)2つの例示的な方法500、600を、それぞれ図5および図6に関して以下に説明する。
カメラパスの結合した推定値を生成した後(440)、空間索引システム130は、環境の没入型モデルを生成する(450)。例えば、モデル生成モジュール138は、図2Bに関して上述したように、フロアプラン、複数のルートベクトル、カメラパスの結合した推定値、およびフレームのシーケンスであるウォークスルービデオから抽出されたフレームを結合することによって、没入型モデルを生成する。
いくつかの実施形態では、空間索引システム130はまた、ビデオキャプチャシステムがカメラパスに沿って移動している間にキャプチャされた追加データ(フレームのシーケンスであるウォークスルービデオとは別の)を受信し得る。例えば、空間索引システムはまた、図1を参照して上述したように、モーションデータまたは位置データを受信する。空間索引システム130が追加データを受信する実施形態では、空間索引システム130は、カメラパスの結合した推定値を生成する(440)ときに、フロアプランに加えて追加データを使用し得る。
空間索引システム130が、フレームのシーケンスであるウォークスルービデオと共にモーションデータを受信する実施形態では、空間索引システム130は、図2Aに関して上述したように、モーションデータに対してデッドレコニングプロセスを実行して、カメラパスの第2の推定値を生成できる。この実施形態では、カメラパスの結合した推定値を生成するステップ440は、第2の推定値の一部を使用して、カメラパスの第1の推定値のギャップを埋めることを含む。例えば、カメラパスの第1の推定値は、キャプチャされたフレームのいくつかにおける貧弱な特徴質(図2Aに関して上述したように、SLAMアルゴリズムが信頼可能な6Dポーズを生成し得ないギャップを引き起こす)のために、カメラパスセグメントに分割され得る。このケースでは、第2のパス推定値からの6Dポーズを使用して、第1のパス推定値のセグメント間のギャップを埋めることによって、第1のパス推定値のセグメントを結合できる。
上述したように、いくつかの実施形態において、方法400は、フロアプランを取得する(430)ことなく実行され得、カメラパスの結合した推定値は、フロアプラン内の特徴を使用することなく生成される(440)。これらの実施形態の1つにおいて、カメラパスの第1の推定値は、任意の追加のデータ処理または分析なしに、カメラパスの結合した推定値として使用される。
これらの実施形態の別の1つにおいて、カメラパスの結合した推定値は、カメラパスの1つまたは複数の追加の推定値を生成し、各パス推定値における各6Dポーズに対する信頼度スコアを計算し、カメラパスに沿った各空間位置に対して、最も高い信頼度スコアを有する6Dポーズを選択することによって生成される(ステップ440)。例えば、カメラパスの追加的な推定値は、上述したようなモーションデータを使用する第2の推定値と、GPS受信機からのデータを使用する第3の推定値と、IPS受信機からのデータを使用する第4の推定値との1つまたは複数を含み得る。上述したように、カメラパスの各推定値は、シーケンス内の各フレームの相対的な位置および方向を示す6Dポーズのベクトルである。
6Dポーズの信頼度スコアは、各パス推定値に対して別々に計算される。例えば、上述のパス推定値の信頼度スコアは、以下の方法で計算し得る。第1の推定値(SLAMアルゴリズムを用いて生成された)における6Dポーズの信頼度スコアは、6Dポーズに対応するフレームの特徴量(例えば、フレーム内の検出された特徴の数)を表し、第2の推定値(モーションデータを用いて生成された)における6Dポーズについての信頼度スコアは、6Dポーズの時間を中心とする、それに先行する、またはそれに続く時間間隔における加速度計、ジャイロスコープ、および/または磁力計データにおける雑音のレベルを表し、第3の推定値(GPSデータを用いて生成された)における6Dポーズの信頼度スコアは、6Dポーズを生成するために使用されたGPSデータのGPS信号強度を表し、第4の推定値(IPSデータを用いて生成された)における6Dポーズについての信頼度スコアは、6Dポーズを生成するために使用されたIPSデータについてのIPS信号強度(例えば、RF信号強度)を表す。
信頼度スコアを生成した後、空間索引システム130は、カメラパスの各推定値を反復的にスキャンし、シーケンス内の各フレームに対して、最も高い信頼度スコアを有する6Dポーズを選択し、選択された6Dポーズは、カメラパスの結合した推定値におけるフレームの6Dポーズとして出力される。各パス推定値に対する信頼度スコアは別々に計算されるので、各パス推定値に対する信頼度スコアは、反復的なスキャンプロセスが行われる前に、共通のスケール(例えば、0と1との間のスカラ値であって、0は最低の可能な信頼度を表し、1は最高の可能な信頼度を表す)に正規化できる。
IX.カメラパスの生成-力まかせ探索によるフロアプランの位置合わせ
図5は、一実施形態による、力まかせ探索を使用してフロアプランと結合されたカメラパスを生成するための方法500を示すフローチャートである。他の実施形態では、方法500は、追加の、より少ない、または異なるステップを含み得、図5に示されるステップは、異なる順序で実行され得る。
図5で説明される力まかせ探索は、複数の候補カメラパスを生成し(例えば、カメラパス推定値に対して異なるスケーリング、回転、および変換動作を適用することによって)、フロアプラン上の特徴に対して最も高い一貫性スコアを有する候補カメラパスを選択することによって、カメラパスの推定値をフロアプランと位置合わせする。上述したように、いくつかの実施形態では、カメラパスの第1の推定値は、複数のカメラパスセグメントに分割できる(例えば、キャプチャされたフレームのいくつかにおける貧弱な特徴の質のために)。これらの実施形態では、力まかせ探索は、各カメラパスセグメントをフロアプランと位置合わせするために、カメラパスセグメントのそれぞれに対して別々に実行できる。カメラパスセグメントのそれぞれをフロアプランと位置合わせした後、次いで、空間索引システムは、位置合わせされたカメラパスセグメント間のカメラパス内のギャップを埋めるために、モーションデータなどの他のデータを使用できる。次に、位置合わせされたカメラパスと埋められたギャップとの組み合わせが、結合されたカメラパスとして出力される。
説明を容易にするために、力まかせ探索は、カメラパスセグメントに関して以下に説明される。しかし、力まかせ探索を第1のパス推定値全体に対しても実行できる。例えば、いくつかの実施形態では、カメラパスの第1の推定値はセグメントに分割されない(例えば、360度のフレームのシーケンスにおける各フレームは、十分に高品質の特徴を含むため)。これらの実施形態では、図5に記載される力まかせ探索は、第1のパス推定値をフロアプランと位置合わせするために、第1のパス推定値の全体に対して実行される。これらの実施形態では、力まかせ探索の結果は、結合されたパス推定値として出力される。
ここで、図5を参照すると、空間索引システム130は、スケーリング、回転、および変換動作などの様々な変換をカメラパスセグメントに適用することによって、複数の候補カメラパスを生成する(510)。
空間索引システム130は、各候補カメラパスをフロアプラン内の特徴と比較し、候補カメラパスのそれぞれについて一貫性スコアを生成する。候補カメラパスについての一貫性スコアは、候補カメラパスとフロアプランとの間の一貫性の程度を表す。
一実施形態では、一貫性スコアは、4つのコンポーネントの加重和である。第1のコンポーネントは、候補カメラパスとフロアプラン内の特徴との間の類似性のレベルを表す。例えば、第1のコンポーネントは、候補カメラパスがフロアプラン内の特徴と交差する各インスタンスについて交差スコアを生成することによって計算でき、次いで交差スコアを結合する(例えば、それらを一緒に加算することによって)。交差スコアは、交差される特徴のタイプを通過する現実世界のカメラパスの可能性を表す(例えば、高い交差スコアは、ドアを交差するために生成され、低い交差スコアは、壁を交差するために生成される)。
第2および第3のコンポーネントは、ビデオキャプチャシステム110から受信された位置データに基づく。第2のコンポーネントは、候補カメラパスとビデオキャプチャシステム上のGPS受信機からのデータとの間の一貫性の程度を表す。例えば、第2のコンポーネントは、候補カメラパスによって暗示された位置と、同じ時点における位置データによって指定された位置との間の距離を結合することによって計算される。第3のコンポーネントは、候補カメラパスとビデオキャプチャシステム110上のIPS受信機からのデータとの間の類似性の程度を表す。第3のコンポーネントは、第2のコンポーネントと同じ方法で計算できる。空間索引システム130がビデオキャプチャシステム110から位置データを受信しない(または1つのタイプの位置データのみを受信する)実施形態では、これらのコンポーネントの1つまたは両方が一貫性スコアから除外できる。
第4のコンポーネントは、フレームのシーケンスであるキャプチャされたウォークスルービデオ内の特徴を、フロアプラン上の同じ位置で以前にキャプチャされたフレームからの特徴と比較することによって生成される。一貫性スコアが第4のコンポーネントを含む実施形態では、空間索引システム130は、以前にキャプチャされたフレームを、それらのフロアプラン位置と関連付けて(例えば、モデルストレージ140内のモデルの1つの一部として)格納する。
候補カメラパスの一貫性スコアを生成した後、空間索引システムは、一貫性スコアに基づいて1つの候補カメラパスを選択する(530)。例えば、空間索引システムは、最も高い一貫性スコアを有する候補カメラパスを選択する(530)。
X.カメラパスの生成-グリッドマップを使用したフロアプランの位置合わせ
図6Aは、一実施形態による、フロアプランのグリッドマップを使用して結合されたカメラパスを生成するための例示的な方法600を示すフローチャートである。他の実施形態では、方法600は、追加の、より少ない、または異なるステップを含み得、図6Aに示されるステップは、異なる順序で実行され得る。
空間索引システム130は、フロアプランに基づいてグリッドマップを生成する(610)。グリッドマップは、各ノードがフロアプラン上の空間位置を表すグラフであり、2つのノード間の各エッジは、2つのノード間の空間の通過可能性を表す遷移スコアを指定する。エッジの遷移スコアは、2つのノード間の特徴の存在に基づいて決定される。例えば、2つのノード間に壁が存在する場合、次いで、これらの2つのノード間のエッジの遷移スコアは低くなり、カメラパスが2つのノード間を交差する可能性が低いことを示す。対照的に、2つのノード間にドアが存在する場合、次いで、2つのノード間のエッジの遷移スコアは高くなる。
一実施形態では、壁を通過するエッジの重みは経時的に調整される。例えば、第1の時間(例えば、壁のフレームがまだ配置されていない建設の初期段階)に、これらのエッジの重みには、部屋の中の空きスペースを通過するエッジの重みと同じ値が割り当てられる。第2の時間(例えば、フレームが建設されているが、乾式壁がまだ配置されていない建設の中間段階)に、これらのエッジの重みには、壁を物理的に通過することは可能であるが、一般的ではないことを示す低減値が割り当てられる。第3の時間(例えば、フレームと乾式壁の両方が配置されている建設の最終段階)に、これらのエッジの重みに低い値が割り当てられ、壁を通過することが物理的に不可能であることを示す。第1の時間、第2の時間、および第3の時間に対応する時間は、クライアントデバイス150からユーザ入力として受信され得、空間索引システム130に提供された建設スケジュールに基づいて、またはシーケンス内のフレームの一部または全部に対して特徴認識を実行して壁上の建設進捗状況を決定することによって決定される。
一実施形態では、2つのノード間のフロアプラン特徴(壁またはドアなど)の存在は、コンピュータビジョン特徴分類器を使用して検出される。この実施形態では、特徴分類器は、フロアプランのフレームからフレーム特徴(例えば、SIFT SURG、またはORB特徴)を抽出し、フレーム特徴を使用して、フロアプラン内の様々な位置に現れる異なる特徴(例えば、壁およびドア)を分類する。特徴分類器は、例えば、複数の手動で注釈されたフロアプランを含むトレーニングデータを使用してトレーニングできる。他の実施形態では、2つのノード間の特徴の存在は、手動で(例えば、ユーザ入力によって)、またはフロアプラン内のメタデータを使用することによって検出できる。
図6Bは、フロアプランの例を示し、図6Cは、フロアプランに対して生成されるグリッドマップの例を示す。図6Cに示すグリッドマップの例では、ノードとエッジが2次元の正方形グリッドを形成するように、ノードは水平および垂直方向の両方に等間隔に配置されている。より低い遷移スコアを有するエッジは図6Cに点線で示され、より高い遷移スコアを有するエッジはより太い線で示されている。図6Cに示されているように、壁を横切るエッジは遷移スコアが低く、一方で、2つのドアを通過するエッジは遷移スコアが高い。
グリッドマップを生成(610)した後、空間索引システム130は、反復マップマッチングアルゴリズムを実行して、カメラパスの第1の推定値をグリッドマップにマッチングする。マップマッチングアルゴリズムには、例えば、Hidden Markov Model(HMM)、条件付きランダムフィールド(CRF)、または一部の他のタイプのマップマッチングアルゴリズムとすることができる。
図6Aに示す実施形態では、空間索引システム130は、マルコフプロセスを実行することによってマップマッチングを実行して、カメラパスの第1の推定値にマッチングするグリッドマップを通るパスに沿ったノードを反復的に識別する。
マルコフプロセスの反復は、カメラパスに沿った1つのノードを識別すること(620)から始まる。プロセスが開始されると、識別された最初のノードがカメラパスの開始点となる。開始点は、ユーザ入力として提供される、またはビデオキャプチャシステム110から受信した位置データ(例えば、GPSまたはIPSデータ)に基づいて決定され得る。
ノードが識別されると、空間索引システム130は、グリッドマップ内の複数の他のノードに対してスコアを生成する(630)。一実施形態では、空間索引システム130は、識別されたノードを除いて、グラフ内のすべての他のノードにスコアを付ける。他の実施形態では、空間索引システム130は、グラフ内の他のノードのサブセットにスコアを付ける。例えば、空間索引システム130は、識別されたノードからエッジの閾値数未満だけ分離されている各ノードをスコア付けする(すなわち、空間索引システム130は、識別されたノードに近いノードにスコアを付ける。)これは、例えば、グリッドマップに多数のノードとエッジが含まれており、他のノードのそれぞれにスコアを付けるには計算量が多すぎる場合に役立ち得る。
スコアは、識別されたノードと他のノードの間のエッジの遷移スコアに基づいて生成される(630)。スコアは、さらに、識別されたノードの近くのカメラパスの第1の推定値の方向に基づいている。例えば、カメラパスの第1の推定値が識別されたノードの近くの左に移動する場合、次いで、識別されたノードをその左の隣接するノードに接続するエッジに対して高いスコアが生成され、一方で、識別されたノードをその上、下、および右の隣接するノードに接続するエッジに対して低いスコアが生成される。スコアはまた、識別されたノードの近くのカメラパスの第1の推定値によって移動された距離に基づく。例えば、カメラパス上の次の6Dポーズベクトルが4フィート離れていて、グリッドマップ内の隣接するノードが2フィート離れている場合、2つのエッジによって識別されたノードから離れているノードには、より高いスコアが割り当てられる。
空間索引システム130は、他の各ノードのスコアを使用して、カメラパスに沿った次のノードとして1つの他のノードを選択する(640)。選択されたノードは新しい識別されたノードとして指定され、他のノードのスコアを生成するステップ630、およびカメラパス内の次のノードを選択するステップ640は、カメラパス全体に沿ったノードが識別されるまで繰り返される。次いで、空間索引システム130は、Viterbiアルゴリズムを実行して、識別されたノードに基づいてグリッドマップを介して最も可能性の高いパスを識別できる。次いで、識別されたパスは、カメラパスの結合した推定値を生成するステップ440の出力として提供できる。
XI.視覚化インターフェースオブジェクト画像検索の例
図7は、一実施形態による、ウォークスルービデオにおけるオブジェクト画像検索のための例示的な方法700を示すフローチャートである。他の実施形態では、方法700は、追加の、より少ない、または異なるステップを含み得、図7に示されたステップは、異なる順序で実行され得る。
空間索引システム130は、環境のウォークスルービデオに対する画像検索クエリを受信する(710)。いくつかの実施形態では、画像検索クエリは、空間索引システム130、特に検索モジュール144がウォークスルービデオ内で検索するためのオブジェクトまたは表面を含む。画像検索クエリは、画像検索クエリで指定されたオブジェクトまたは表面の画像を含む、または関連付けられる。いくつかの実施形態では、受信された画像検索クエリは、ウォークスルービデオのフレームの部分の選択を含む。いくつかの実施形態では、画像検索クエリは画像検索クエリ270であり、ウォークスルービデオはウォークスルービデオ280である。
空間索引システム130は、画像検索クエリ内の画像に対応する特徴ベクトルのセットを決定する(720)。特徴ベクトルのセットは、画像の画像特徴を表す数値のベクトルのn次元セットである。したがって、特徴ベクトルのセットは、画像内のオブジェクトまたは表面の表現である。受信された画像検索クエリがウォークスルービデオのフレームの部分の選択を含む実施形態では、識別された特徴ベクトルは、ウォークスルービデオのフレームの選択された部分の画像特徴を表す。いくつかの実施形態では、特徴ベクトルのセットは、特徴ベクトルモジュール272によって生成される。
空間索引システム130は、ウォークスルービデオを検索して、識別された特徴ベクトルのセットに対応するウォークスルービデオのフレームの部分を識別する(730)。識別された部分は、画像検索照会内のものと類似するインスタンスオブジェクトまたは表面を含むウォークスルービデオのサブフレームである。いくつかの実施形態では、識別された部分は、サブフレームに関連付けられた特徴ベクトルの類似性を、画像検索クエリに関連付けられた特徴ベクトルのセットと比較することによって決定される。いくつかの実施形態では、ウォークスルービデオのフレームの識別された部分に対応する特徴ベクトルと、画像検索クエリに対応する識別された特徴ベクトルとの間の差は、閾値差未満である。いくつかの実施形態では、識別された部分は、類似性モジュール275によって決定され、識別された部分278である。
いくつかの実施形態では、検索730は、識別された部分のサブセット上で重複排除動作を実行することを含み、ここで、識別された部分のサブセット内の各識別された部分は、同じオブジェクトに対応する。いくつかの実施形態では、同じオブジェクトに対応する識別された部分のサブセットは、識別された部分のサブセット内の各識別された部分に関連付けられたフロアプラン内の位置の近接性に基づいて識別される。さらに、いくつかの実施形態では、同じオブジェクトに対応する識別された部分のサブセットは、識別された部分のサブセット間の画像特徴の類似性に基づいて識別される。重複排除動作は、重複排除モジュール277によって実行され得る。
いくつかの実施形態では、方法700は、ウォークスルービデオ内のフレームの識別された部分に基づいて特徴ベクトルのセットをリファインするステップをさらに含む。いくつかの実施形態では、リファイン(740)は、ウォークスルーのフレームの識別された部分の1つまたは複数の関連性を示すフィードバックに基づく。例えば、フレームの識別された部分の1つまたは複数の関連性を示すフィードバックは、ウォークスルービデオのフレームの識別された部分の視聴者から受信した肯定的な票または否定的な票とすることができる。いくつかの実施形態では、識別された特徴ベクトルのセットをリファインすることは、肯定的なフィードバックに対応する特徴に関連付けられた重みを増加させることと、否定的なフィードバックに対応する特徴に関連付けられた重みを減少させることとを含む。いくつかの実施形態では、識別された部分に関連付けられた特徴ベクトルは、検索クエリに関連付けられた特徴ベクトルのセットをリファインするための情報を提供する。例えば、特定の特徴は、識別された部分に関連付けられた特徴ベクトルの間で頻繁に発生し、特定の特徴がオブジェクトの高度な予測であることを示す。特徴ベクトルのセットは、特定の特徴に関連付けられた重みを増加させるためにリファインされ得る。さらに、識別された部分に関連付けられた特徴ベクトルの間で頻繁に発生しない特定の特徴は、特定の特徴がオブジェクトの予測でないことを示し、特徴ベクトルのセットは、特定の特徴に関連付けられた重みを減少させるためにリファインされ得る。
空間索引システム130は、画像検索クエリを使用して環境のウォークスルービデオのセットを検索する要求を受信し、各ウォークスルービデオはタイムスタンプに関連付けられる(740)。いくつかの実施形態では、要求740はユーザによって提供される。他の実施形態では、要求は空間索引システム130によって自動化される。いくつかの実施形態では、ウォークスルービデオのセットは、ウォークスルービデオがキャプチャされた時間よりも早い時間期間にわたってキャプチャされた。空間索引システム130は、ウォークスルービデオストア141内のウォークスルービデオのセットにアクセスする。いくつかの実施形態では、ウォークスルービデオのセットは、追加のウォークスルービデオ292である。
空間索引システム130は、ウォークスルービデオのセットを検索して、特徴ベクトルに対応するウォークスルービデオのセット内のフレームの追加部分を識別する(750)。追加の識別された部分は、画像検索照会内のものと類似するインスタンスオブジェクトまたは表面を含むウォークスルービデオのセットのサブフレームである。空間索引システム130は、オプションの重複排除ステップを含む、識別された部分の検索730と同じ手段によって、追加の識別された部分に対して検索できる(750)。検索750は、上述したように、画像検索クエリに関連付けられたリファインされた特徴ベクトルのセットを使用して実行され得る。いくつかの実施形態では、追加の識別された部分は、追加の識別された部分279である。
空間索引システム130は、識別された部分に対応するハイライトされた位置を有する環境のフロアプランと、ウォークスルービデオのセット内のフレームの追加の識別された部分を示すタイムラインを有するヒストグラムとの表現を含む表示用インターフェースを生成する(760)。すなわち、フロアプランの表現は、インターフェースの第1の部分にあり、ヒストグラムは、インターフェースの第2の部分にある。インターフェースは、検索視覚化インターフェース146によって生成され得る(760)。
生成されたインターフェース(760)の第1の部分は、検索の結果を表示する(730)。第1の部分は、ウォークスルービデオのフレームの識別された部分に対応するフロアプランの表現内のハイライトされた位置を有する、環境のフロアプランの表現を含む。すなわち、ハイライトされた位置は、画像検索クエリで指定されたものに類似するオブジェクトまたは表面のインスタンスに対応する。いくつかの実施形態では、フロアプランの表現内のハイライトされた各位置は、選択されると、第1のインターフェース部分を修正して、ハイライトされた位置に対応するウォークスルービデオからのフレームの識別された部分の表示を提供する。
生成されたインターフェース(760)の第2の部分は、検索(750)の結果を表示する。第2の部分は、ウォークスルービデオのセットのタイムスタンプに対応するタイムラインを有するヒストグラムを含み、ヒストグラムは、ウォークスルービデオのセット内のフレームの識別された追加部分のインスタンスを示すハイライトされたバーを含む。いくつかの実施形態では、ヒストグラムの各バーは、特定の日にキャプチャされたウォークスルービデオのセットのウォークスルービデオを表す。そのような一実施形態では、ヒストグラムのハイライトされたバーの高さは、タイムライン上の特定の日にキャプチャされたウォークスルービデオ内に含まれる、オブジェクトまたは表面のインスタンスに対応する、追加の識別された部分のインスタンスの数を示す。いくつかの実施形態では、ヒストグラムの各バーが選択されると、選択されたバーに関連付けられたタイムスタンプでキャプチャされたウォークスルービデオに対応するフロアプランが第1のインターフェース部分内に表示される。
図8は、一実施形態による、ウォークスルービデオにおけるオブジェクト検索のための例示的な方法800を示すフローチャートである。他の実施形態では、方法800は、追加の、より少ない、または異なるステップを含み得、図8に示されたステップは、異なる順序で実行され得る。
空間索引システム130は、環境のウォークスルービデオのセットに対する画像検索クエリを受信し、各ウォークスルービデオはタイムスタンプに関連付けられている(810)。いくつかの実施形態では、画像検索クエリは、空間索引システム130、特に検索モジュール144がウォークスルービデオのセット内で検索するためのオブジェクトまたは表面を含む。画像検索クエリは、画像検索クエリで指定されたオブジェクトまたは表面の画像を含む、または関連付けられる。いくつかの実施形態では、受信された画像検索クエリは、第1のウォークスルービデオのフレームの部分の選択を含む。いくつかの実施形態では、画像検索クエリは画像検索クエリ270であり、ウォークスルービデオのセットはウォークスルービデオ280である。
空間索引システム130は、画像検索クエリ内の画像に対応する特徴ベクトルのセットを決定する(820)。特徴ベクトルのセットは、画像を表す数値特徴のベクトルのn次元セットである。したがって、特徴ベクトルのセットは、画像内のオブジェクトまたは表面の表現も提供する。受信された画像検索クエリが第1のウォークスルービデオのフレームの部分の選択を含む実施形態では、識別された特徴ベクトルは、ウォークスルービデオのフレームの選択された部分の画像特徴を表す。いくつかの実施形態では、特徴ベクトルのセットは、特徴ベクトルモジュール272によって生成される。
空間索引システム130は、ウォークスルービデオのセットを検索して、識別された特徴ベクトルのセットに対応するウォークスルービデオのフレームの部分を識別する(830)。識別された部分は、画像検索照会内のものと類似するインスタンスオブジェクトまたは表面を含むウォークスルービデオのセット内のウォークスルービデオのサブフレームである。いくつかの実施形態では、識別された部分は、サブフレームに関連付けられた特徴ベクトルの類似性を、画像検索クエリに関連付けられた特徴ベクトルのセットと比較することによって決定される。いくつかの実施形態では、ウォークスルービデオのフレームの識別された部分に対応する特徴ベクトルと、画像検索クエリに対応する識別された特徴ベクトルとの間の差は、閾値差よりも小さい。いくつかの実施形態では、識別された部分は、類似性モジュール275によって決定されており、識別された部分278である。
いくつかの実施形態では、検索(830)は、識別された部分のサブセット上で重複排除動作を実行することを含み、ここで、識別された部分のサブセット内の各識別された部分は、同じオブジェクトに対応する。いくつかの実施形態では、同じオブジェクトに対応する識別された部分のサブセットは、識別された部分のサブセット内の各識別された部分に関連付けられたフロアプラン内の位置の近接性に基づいて識別される。さらに、いくつかの実施形態では、同じオブジェクトに対応する識別された部分のサブセットは、識別された部分のサブセット間の画像特徴の類似性に基づいて識別される。重複排除動作は、重複排除モジュール277によって実行され得る。
いくつかの実施形態では、方法800は、ウォークスルービデオのセットのフレームの1つまたは複数の識別された部分の関連性を示すフィードバックに基づいて、特徴ベクトルのセットをリファインするステップをさらに含む。例えば、フレームの1つまたは複数の識別された部分の関連性を示すフィードバックは、ウォークスルービデオのフレームの識別された部分の視聴者から受信した肯定的な票または否定的な票とすることができる。いくつかの実施形態では、識別された特徴ベクトルのセットをリファインすることは、肯定的なフィードバックに対応する特徴に関連付けられた重みを増加させることと、否定的なフィードバックに対応する特徴に関連付けられた重みを減少させることとを含む。サーチ830は、リファインステップの後に再実行され得る。
空間索引システム130は、第1のウォークスルービデオの識別された部分に対応するハイライトされた位置を有する環境のフロアプランと、ウォークスルービデオのセット内のフレームの識別された部分を示すタイムラインを有するヒストグラムとの表現を含む表示のためのインターフェースを生成する(840)。すなわち、フロアプランの表現はインターフェースの第1の部分にあり、ヒストグラムはインターフェースの第2の部分にある。インターフェースは、検索視覚化インターフェース146によって生成され得る(840)。
生成されたインターフェースの第1の部分(840)は、第1のウォークスルービデオの検索(830)の結果を表示する。第1の部分は、第1のウォークスルービデオのフレームの識別された部分に対応するフロアプランの表現内のハイライトされた位置を有する環境のフロアプランの表現を含む。すなわち、ハイライトされた位置は、画像検索クエリで指定されたものに類似するオブジェクトまたは表面のインスタンスに対応する。いくつかの実施形態では、フロアプランの表現内のハイライトされた各位置は、選択されると、第1のインターフェース部分を修正させて、ハイライトされた位置に対応する第1のウォークスルービデオからのフレームの識別された部分の表示を提供する。
生成されたインターフェースの第2の部分(840)は、ウォークスルービデオのセットに対する検索(830)の結果を表示する。第2の部分は、ウォークスルービデオのセットのタイムスタンプに対応するタイムラインを有するヒストグラムを含み、ヒストグラムは、ウォークスルービデオのセット内のフレームの識別された部分のインスタンスを示すハイライトされたバーを含む。いくつかの実施形態では、ヒストグラムの各バーは、特定の日にキャプチャされたウォークスルービデオのセットのウォークスルービデオを表す。そのような一実施形態では、ヒストグラムのハイライトされたバーの高さは、タイムライン上の特定の日にキャプチャされたウォークスルービデオ内に含まれる、オブジェクトまたは表面のインスタンスに対応する、識別された部分のインスタンスの数を示す。いくつかの実施形態では、ヒストグラムの各バーは、選択されると、選択されたバーに関連付けられたタイムスタンプでキャプチャされたウォークスルービデオに対応するフロアプランを第1のインターフェース部分内に表示させる。
XII.ハードウェアコンポーネント
図9は、本明細書に記載する実施形態が実装され得るコンピュータシステム900を示すブロック図である。例えば、図1のコンテキストでは、ビデオキャプチャシステム110、空間索引システム130、およびクライアントデバイス150は、図9に記載するように、コンピュータシステム900を使用して実施され得る。ビデオキャプチャシステム110、空間索引システム130、またはクライアントデバイス150はまた、図9に記載するように、複数のコンピュータシステム900の組み合わせを使用して実施され得る。コンピュータシステム900は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、またはスマートフォンであり得る。
一実施形態では、システム900は、処理リソース901、メインメモリ903、リードオンリーメモリ(ROM)905、ストレージデバイス907、および通信インターフェース909を含む。システム900は、情報を処理するための少なくとも1つのプロセッサ901、および、プロセッサ901によって実行される情報および命令を格納するための、ランダムアクセスメモリ(RAM)または他の動的ストレージなどのメインメモリ903を含む。メインメモリ903はまた、プロセッサ901によって実行される命令の実行中に、一時変数またはその他の中間情報を格納するために使用され得る。システム900はまた、プロセッサ901のための静的情報および命令を格納するためのROM905またはその他の静的ストレージを含み得る。磁気ディスクまたは光ディスクなどのストレージデバイス907は、情報および命令を格納するために提供される。
通信インターフェース909は、システム900が、ネットワークリンク(無線または有線)を使用して1つまたは複数のネットワーク(例えば、ネットワーク120)と通信することを可能にできる。ネットワークリンクを使用して、システム900は、1つまたは複数のコンピューティングデバイス、および1つまたは複数のサーバと通信できる。システム900はまた、例えば、グラフィックスおよび情報をユーザに表示するために、陰極線管(CRT)、LCDモニタ、またはテレビセットなどのディスプレイデバイス911を含むことができる。英数字キーおよび他のキーを含むキーボードなどの入力メカニズム913は、プロセッサ901に情報およびコマンド選択を通信するためにシステム900に結合できる。入力メカニズム913の他の非限定的な例示的な例には、方向情報およびコマンド選択をプロセッサ901に通信し、ディスプレイデバイス911上のカーソル移動を制御するためのマウス、トラックボール、タッチセンシティブスクリーン、またはカーソル方向キーが含まれる。入力メカニズム913のさらなる例には、無線周波数識別(RFID)リーダ、バーコードリーダ、3次元スキャナ、および3次元カメラが含まれる。
一実施形態によれば、本明細書に記載される技術は、メインメモリ903に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ901に応答して、システム900によって実行される。そのような命令は、ストレージ907などの別の機械可読媒体からメインメモリ903に読み取られ得る。メインメモリ903に含まれる命令のシーケンスの実行は、プロセッサ901に、本明細書に記載されるプロセスステップを実行させる。代替的な実施形態では、本明細書に記載される例を実施するために、ハードワイヤード回路をソフトウェア命令の代わりに、または組み合わせて使用し得る。したがって、記載される例は、ハードウェア回路とソフトウェアの任意の特定の組み合わせに限定されない。
XIII.追加の考慮事項
本明細書中で使用される場合、1つまたは複数の要素が後に続く「含む(includes)」という用語は、1つまたは複数の追加の要素の存在を排除しない。「または(or)」という用語は、排他的な「または」ではなく、非排他的な「または」として解釈されるべきである(例えば、「AまたはB」は、「A」、「B」、または「AおよびB」を指し得る)。冠詞「a」または「an」は、単一のインスタンスが明確に指定されていない限り、以下の要素の1つまたは複数のインスタンスを指す。
図面および書面による説明は、本開示の例示的な実施形態を記載しており、本開示の本質的な特徴を列挙するものとして解釈されるべきではない。本発明の範囲は、この説明を含む特許において発行されるいかなる請求項からも解釈されるべきである。

Claims (20)

  1. 環境のウォークスルービデオの画像検索クエリを受信することと、
    前記画像検索クエリに対応する特徴ベクトルのセットを決定することと、
    前記ウォークスルービデオを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのフレームの部分を識別することと、
    前記ウォークスルービデオの前記フレームの識別された部分に基づいて、前記特徴ベクトルのセットをリファインすることと、
    前記画像検索クエリを使用して前記環境のウォークスルービデオのセットを検索する要求を受信することであって、各ウォークスルービデオはタイムスタンプに関連付けられている、ことと、
    前記ウォークスルービデオのセットを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのセット内のフレームの追加の部分を識別することと、
    前記ウォークスルービデオの前記フレームの識別された部分に対応するフロアプランの表現内のマークされた位置を有する前記環境の前記フロアプランの前記表現を含む第1のインターフェース部分と、
    ヒストグラムを含む第2のインターフェース部分であって、前記ヒストグラムの独立軸が、前記ウォークスルービデオのセットの前記タイムスタンプに対応するタイムラインを含み、前記ヒストグラムが、前記ウォークスルービデオのセット内の前記フレームの識別された追加の部分のインスタンスを示すバーを含む、前記第2のインターフェース部分と、
    を含む、表示用のインターフェースを生成することと、
    を含む、方法。
  2. 前記受信された画像検索クエリは、前記ウォークスルービデオのフレームの部分の選択を含み、前記識別された特徴ベクトルは、前記ウォークスルービデオの前記フレームの前記選択された部分の画像特徴を表す、請求項1に記載の方法。
  3. 前記受信された画像検索クエリは、オブジェクトまたは表面の画像を含む、請求項1に記載の方法。
  4. 前記ウォークスルービデオの前記フレームの識別された部分が、前記特徴ベクトルのセットとの類似性の閾値測定値内である特徴ベクトルに対応する、請求項1に記載の方法。
  5. 前記ウォークスルービデオのフレームの識別された部分に対応する特徴ベクトルと、前記画像検索クエリに対応する識別された特徴ベクトルとの差が、閾値差未満である、請求項4に記載の方法。
  6. 前記ウォークスルービデオの前記フレームの識別された部分に基づいて前記特徴ベクトルのセットをリファインすることは、前記ウォークスルービデオの前記フレームの識別された部分の1つまたは複数の関連性を示すフィードバックにさらに基づいている、請求項1に記載の方法。
  7. 前記フレームの識別された部分の1つまたは複数の関連性を示す前記フィードバックが、前記ウォークスルービデオの前記フレームの識別された部分の視聴者から受信した肯定的な票または否定的な票を含む、請求項6に記載の方法。
  8. 前記識別された特徴ベクトルのセットをリファインすることは、肯定的なフィードバックに対応する特徴に関連付けられた重みを増加させることと、否定的なフィードバックに対応する特徴に関連付けられた重みを減少させることとを含む、請求項6に記載の方法。
  9. 前記ウォークスルービデオのセットが、前記ウォークスルービデオがキャプチャされた時間よりも早い時間期間にわたってキャプチャされた、請求項1に記載の方法。
  10. 前記画像検索クエリがオブジェクトに対応し、前記フロアプランの表現内の前記マークされた位置が、前記ウォークスルービデオ内の前記オブジェクトの表現に基づいて、前記フロアプラン内の前記オブジェクトの位置をマークすることを含む、請求項1に記載の方法。
  11. 前記フロアプランの前記表現内の各マークされた位置は、選択されると、前記マークされた位置に対応する前記ウォークスルービデオからのフレームの識別された部分を表示するために提供するように、前記第1のインターフェース部分を修正する、請求項1に記載の方法。
  12. 前記ヒストグラムの各バーは、特定の日にキャプチャされた前記ウォークスルービデオのセットのウォークスルービデオに対応する、請求項1に記載の方法。
  13. 前記ヒストグラムの各バーの高さは、前記ヒストグラムの前記バーに対応する前記特定の日にキャプチャされた前記ウォークスルービデオ内に含まれるフレームの識別された部分の数に基づいている、請求項12に記載の方法。
  14. 前記ヒストグラムの各バーは、選択されると、前記選択されたバーに関連付けられた前記タイムスタンプでキャプチャされたウォークスルービデオに対応するフロアプランを前記第1のインターフェース部分内に表示させる、請求項1に記載の方法。
  15. 前記ウォークスルービデオを検索することは、前記ウォークスルービデオ内のフレームの識別された部分のサブセットに対して重複排除動作を実行することをさらに含み、前記識別された部分のサブセットの各識別された部分は、同じオブジェクトに対応する、請求項1に記載の方法。
  16. 前記同じオブジェクトに対応する前記ウォークスルービデオのフレームの識別された部分の前記サブセットが、前記ウォークスルービデオのフレームの識別された部分の前記サブセットの各識別された部分に関連付けられた前記フロアプラン内の位置の近接性に基づいて識別される、請求項15に記載の方法。
  17. 前記同じオブジェクトに対応する前記ウォークスルービデオのフレームの識別された部分の前記サブセットは、前記ウォークスルービデオのフレームの識別された部分の前記サブセットの間の画像特徴に基づいて識別される、請求項15に記載の方法。
  18. 前記環境は複数のフロアを含み、前記フロアプランは前記複数のフロアにわたり、前記第1のインターフェース部分は、視聴者が複数のフロアにわたって前記フレームの識別された部分に対応するマークされた位置をスクロールして表示することができるように、前記複数のフロアのスクロール可能な表現を含む、請求項1に記載の方法。
  19. ハードウェアプロセッサと、
    実行可能な命令を格納した非一時的コンピュータ可読記憶媒体と、
    を含むシステムであって、
    前記命令はハードウェアプロセッサによって実行されると、前記ハードウェアプロセッサに、
    環境のウォークスルービデオの画像検索クエリを受信することと、
    前記画像検索クエリに対応する特徴ベクトルのセットを決定することと、
    前記ウォークスルービデオを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのフレームの部分を識別することと、
    前記ウォークスルービデオの前記フレームの識別された部分に基づいて、前記特徴ベクトルのセットをリファインすることと、
    前記画像検索クエリを使用して前記環境のウォークスルービデオのセットを検索する要求を受信することであって、各ウォークスルービデオはタイムスタンプに関連付けられている、ことと、
    記ウォークスルービデオのセットを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのセット内のフレームの追加の部分を識別することと、
    前記ウォークスルービデオの前記フレームの識別された部分に対応するフロアプランの表現内のマークされた位置を有する前記環境の前記フロアプランの前記表現を含む第1のインターフェース部分と、
    ヒストグラムを含む第2のインターフェース部分であって、前記ヒストグラムの独立軸が、前記ウォークスルービデオのセットの前記タイムスタンプに対応するタイムラインを含み、前記ヒストグラムが、前記ウォークスルービデオのセット内の前記フレームの識別された追加の部分のインスタンスを示すバーを含む、前記第2のインターフェース部分と、
    を含む、表示用のインターフェースを生成することと、
    を含むステップを実行させる、
    システム
  20. 実行可能な命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令はハードウェアプロセッサによって実行されると、前記ハードウェアプロセッサに
    環境のウォークスルービデオの画像検索クエリを受信することと、
    前記画像検索クエリに対応する特徴ベクトルのセットを決定することと、
    前記ウォークスルービデオを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのフレームの部分を識別することと、
    前記画像検索クエリを使用して前記環境のウォークスルービデオのセットを検索する要求を受信することであって、各ウォークスルービデオはタイムスタンプに関連付けられている、ことと、
    前記ウォークスルービデオの前記フレームの識別された部分に基づいて、前記特徴ベクトルのセットをリファインすることと、
    前記ウォークスルービデオのセットを検索して、前記特徴ベクトルのセットに対応する前記ウォークスルービデオのセット内のフレームの追加の部分を識別することと、
    前記ウォークスルービデオの前記フレームの識別された部分に対応するフロアプランの表現内のマークされた位置を有する前記環境の前記フロアプランの前記表現を含む第1のインターフェース部分と、
    ヒストグラムを含む第2のインターフェース部分であって、前記ヒストグラムの独立軸が、前記ウォークスルービデオのセットの前記タイムスタンプに対応するタイムラインを含み、前記ヒストグラムが、前記ウォークスルービデオのセット内の前記フレームの識別された追加の部分のインスタンスを示すバーを含む、前記第2のインターフェース部分と、
    を含む、表示用のインターフェースを生成することと、
    を含むステップを実行させる、非一時的コンピュータ可読記憶媒体。
JP2022562045A 2020-04-11 2021-04-09 ウォークスルービデオの画像検索 Active JP7280450B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063008662P 2020-04-11 2020-04-11
US63/008,662 2020-04-11
US17/016,146 2020-09-09
US17/016,146 US11386151B2 (en) 2020-04-11 2020-09-09 Image search in walkthrough videos
PCT/US2021/026668 WO2021207664A1 (en) 2020-04-11 2021-04-09 Image search in walkthrough videos

Publications (2)

Publication Number Publication Date
JP2023518916A JP2023518916A (ja) 2023-05-08
JP7280450B2 true JP7280450B2 (ja) 2023-05-23

Family

ID=78006299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022562045A Active JP7280450B2 (ja) 2020-04-11 2021-04-09 ウォークスルービデオの画像検索

Country Status (5)

Country Link
US (3) US11386151B2 (ja)
EP (1) EP4133408A4 (ja)
JP (1) JP7280450B2 (ja)
CN (1) CN116075818A (ja)
WO (1) WO2021207664A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6697150B1 (ja) * 2019-10-30 2020-05-20 株式会社Qoncept 軌道算出装置、軌道算出方法、軌道算出プログラム
WO2022070340A1 (ja) * 2020-09-30 2022-04-07 日本電気株式会社 映像検索システム、映像検索方法、及びコンピュータプログラム
US20230051775A1 (en) * 2021-08-10 2023-02-16 Siemens Industry Software Inc. Construction of environment views from selectively determined environment images
US20230290090A1 (en) * 2022-03-10 2023-09-14 Streem, Llc Searchable object location information
CN115455275B (zh) * 2022-11-08 2023-02-03 广东卓维网络有限公司 融合巡检设备的视频处理系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001268657A (ja) 2000-03-21 2001-09-28 Nippon Telegr & Teleph Corp <Ntt> 遠隔監視方法、装置、および遠隔監視プログラムを記録した記録媒体
JP2012141894A (ja) 2011-01-05 2012-07-26 Sharp Corp 画像検索装置、画像検索方法およびプログラム
US20120294477A1 (en) 2011-05-18 2012-11-22 Microsoft Corporation Searching for Images by Video
US20170064374A1 (en) 2015-08-26 2017-03-02 Lg Electronics Inc. Mobile terminal and method for controlling the same
JP2017215685A (ja) 2016-05-30 2017-12-07 日本電信電話株式会社 仮想環境生成装置、仮想環境生成方法、プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3566530B2 (ja) * 1998-01-08 2004-09-15 日本電信電話株式会社 空間散策映像表示方法及び空間内オブジェクト検索方法及び空間内オブジェクト抽出方法及びそれらの装置及びそれらの方法を記録した記録媒体
US7624337B2 (en) 2000-07-24 2009-11-24 Vmark, Inc. System and method for indexing, searching, identifying, and editing portions of electronic multimedia files
US6996782B2 (en) 2001-05-23 2006-02-07 Eastman Kodak Company Using digital objects organized according to a histogram timeline
US20040183826A1 (en) * 2003-02-20 2004-09-23 Taylor Jaime R. Method for providing images of real property in conjunction with their directional orientation
US7356164B2 (en) 2003-05-30 2008-04-08 Lucent Technologies Inc. Method and apparatus for finding feature correspondences between images captured in real-world environments
US7542610B2 (en) * 2005-05-09 2009-06-02 Like.Com System and method for use of images with recognition analysis
US7823068B2 (en) 2006-02-28 2010-10-26 Mark Anthony Ogle Cowtan Internet-based, dual-paned virtual tour presentation system with orientational capabilities and versatile tabbed menu-driven area for multi-media content delivery
US20070257986A1 (en) * 2006-05-05 2007-11-08 Ivanov Yuri A Method for processing queries for surveillance tasks
US8239359B2 (en) * 2008-09-23 2012-08-07 Disney Enterprises, Inc. System and method for visual search in a video media player
US8515953B2 (en) * 2011-11-29 2013-08-20 Microsoft Corporation Temporal visualization of query results
CN103294813A (zh) * 2013-06-07 2013-09-11 北京捷成世纪科技股份有限公司 一种敏感图片搜索方法和装置
US9898665B2 (en) * 2015-10-29 2018-02-20 International Business Machines Corporation Computerized video file analysis tool and method
US10445867B2 (en) * 2016-07-13 2019-10-15 The Boeing Company System and method for generating enhanced stereographic videos of aircraft build processes
WO2019006189A1 (en) * 2017-06-29 2019-01-03 Open Space Labs, Inc. AUTOMATED SPACE INDEXING OF IMAGES BASED ON MASS PLAN CHARACTERISTICS
US10832437B2 (en) * 2018-09-05 2020-11-10 Rakuten, Inc. Method and apparatus for assigning image location and direction to a floorplan diagram based on artificial intelligence

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001268657A (ja) 2000-03-21 2001-09-28 Nippon Telegr & Teleph Corp <Ntt> 遠隔監視方法、装置、および遠隔監視プログラムを記録した記録媒体
JP2012141894A (ja) 2011-01-05 2012-07-26 Sharp Corp 画像検索装置、画像検索方法およびプログラム
US20120294477A1 (en) 2011-05-18 2012-11-22 Microsoft Corporation Searching for Images by Video
US20170064374A1 (en) 2015-08-26 2017-03-02 Lg Electronics Inc. Mobile terminal and method for controlling the same
JP2017215685A (ja) 2016-05-30 2017-12-07 日本電信電話株式会社 仮想環境生成装置、仮想環境生成方法、プログラム

Also Published As

Publication number Publication date
EP4133408A1 (en) 2023-02-15
US20210319228A1 (en) 2021-10-14
CN116075818A (zh) 2023-05-05
US11386151B2 (en) 2022-07-12
WO2021207664A1 (en) 2021-10-14
US11734338B2 (en) 2023-08-22
US20220292135A1 (en) 2022-09-15
JP2023518916A (ja) 2023-05-08
US20230342389A1 (en) 2023-10-26
EP4133408A4 (en) 2024-05-01

Similar Documents

Publication Publication Date Title
US10762698B2 (en) Automated spatial indexing of images based on floorplan features
JP7280450B2 (ja) ウォークスルービデオの画像検索
US11638001B2 (en) Automated spatial indexing of images to video
JP7280452B2 (ja) 縮尺図と3次元モデルを用いた機械学習ベースのオブジェクト識別
US11922591B2 (en) Rendering depth-based three-dimensional model with integrated image frames

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221207

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230511

R150 Certificate of patent or registration of utility model

Ref document number: 7280450

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150