JP2017529620A - 姿勢推定のシステムおよび方法 - Google Patents

姿勢推定のシステムおよび方法 Download PDF

Info

Publication number
JP2017529620A
JP2017529620A JP2017514464A JP2017514464A JP2017529620A JP 2017529620 A JP2017529620 A JP 2017529620A JP 2017514464 A JP2017514464 A JP 2017514464A JP 2017514464 A JP2017514464 A JP 2017514464A JP 2017529620 A JP2017529620 A JP 2017529620A
Authority
JP
Japan
Prior art keywords
frame
image
image frame
processor
key
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.)
Ceased
Application number
JP2017514464A
Other languages
English (en)
Other versions
JP2017529620A5 (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 JP2017529620A publication Critical patent/JP2017529620A/ja
Publication of JP2017529620A5 publication Critical patent/JP2017529620A5/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/207Image signal generators using stereoscopic image cameras using a single 2D image sensor
    • H04N13/221Image signal generators using stereoscopic image cameras using a single 2D image sensor using the relative movement between cameras and objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

方法は、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するステップを含む。同じく、方法は、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢をプロセッサにおいて推定するステップを含む。第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。方法は、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢をプロセッサにおいて推定するステップをさらに含む。キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。

Description

本開示は、一般に、姿勢推定のシステムおよび方法に関する。
技術が進歩した結果、コンピューティングデバイスがより小型に、そしてより高性能になった。たとえば、小型で軽量であり、ユーザによって容易に携帯される、モバイルフォンおよびスマートフォンなどのワイヤレス電話、タブレットおよびラップトップコンピュータを含む、様々なポータブルパーソナルコンピューティングデバイスが現存している。これらのデバイスは、ワイヤレスネットワークを介して音声およびデータパケットを通信することができる。さらに、そのようなデバイスの多くは、デジタルスチールカメラ、デジタルビデオカメラ、デジタルレコーダおよびオーディオファイルプレーヤなどの追加の機能を組み込む。また、そのようなデバイスは、インターネットへのアクセスに使用することができるウェブブラウザアプリケーションなどのソフトウェアアプリケーションを含む実行可能命令を処理することができる。このように、これらのデバイスは、かなりのコンピューティング能力を含み得る。
ワイヤレス電話および類似のデバイスは、画像を取り込むために使用されることがある。そのような画像は、対象物の3次元(3D)モデルを生成するために使用されることがある。一般に、3Dモデルを生成するためのデバイスは、リアルタイムまたは準リアルタイムで動作することはない。そうではなく、一連の画像フレームが(たとえば、カメラで)取り込まれ、その後、一連の画像フレームは(たとえば、コンピュータなどの処理システムにおいて)グループとして処理されて3Dモデルを生成する。一連の画像フレームが、完全な3Dモデルを生成するには不十分または不適切である場合、そのような不十分さまたは不適切さは、3Dモデルを生成するための処理した後まで気づかれないことがある。この場合、不完全なまたは不正確な3Dモデルが生成されることがある。より完全なまたは正確な3Dモデルを生成するために、ユーザは、対象物の新しい一連の画像を取り込んで、新しい一連の画像を処理しなければならないことがある。
取り込まれた一連の画像フレームに基づいて3D点群および/または3Dモデルのリアルタイムまたは準リアルタイム生成を可能にするシステムおよび方法が開示される。一連の画像フレームは、画像取り込みデバイス(たとえば、モバイルフォンのカメラ)によって取り込まれてよい。画像取り込みデバイスのユーザ(たとえば、事業者)は、画像取り込みデバイスを対象物の周りで移動させて対象物の一連の画像フレームを取り込んでよい。
3D点群および/または3Dモデルは、並列処理スレッドを使用して一連の画像フレームを処理することによって、電子デバイス(たとえば、カメラを含むモバイルフォン)において生成されてよい。たとえば、第1の処理スレッドおよび第2の処理スレッドは、画像フレームのリアルタイムまたは準リアルタイム処理を可能にするために並列で処理されてよい。たとえば、第1の処理スレッドがフレーム対フレームからカメラ姿勢推定を実行し、第2の処理スレッドがフレーム対キーフレームからカメラ姿勢推定を実行することができる。
特定の実施形態では、第1の処理スレッドおよび第2の処理スレッドが、異なる解像度を有する画像を処理し得る。たとえば、第1の処理スレッドは、低解像度(たとえば、クォータ-クォータビデオグラフィックスアレイ(Quarter-Quarter Video Graphics Array)(QQVGA)解像度)の画像フレームを処理して、1つまたは複数の画像フレームのカメラ姿勢を推定することがある。第2の処理スレッドは、特定の画像フレームのカメラ姿勢を精細化するために、より高い解像度(たとえば、クォータビデオグラフィックスアレイ(Quarter Video Graphics Array)(QVGA)解像度)の画像フレームおよび基準画像フレーム(すなわち、キーフレーム)を処理することがある。たとえば、カメラ姿勢は、QVGA画像フレームと特定のキーフレームとを比較して、QVGA画像フレームがQQVGA解像度にダウンサンプリングされるときに失われることがある追加の情報を決定することによって精細化され得る。特定のキーフレームは、複数のキーフレームのうちの1つであってよく、複数のキーフレームの各々は、対象物に対して対応するロケーションにおける基準画像フレームとしての働きをすることがある。一連の画像フレームが取り込まれている間に、1つまたは複数の追加のキーフレームが生成されて、カメラ姿勢推定値を精細化し、3D点群および/または3Dモデルを生成する。追加のキーフレームは、対象物に対して異なるロケーションにおける一連の画像フレームと比較するために、追加の基準画像フレームとしての働きをすることがある。
特定の実施形態では、方法は、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイス(たとえば、カメラ)から受信するステップを含む。同じく、方法は、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢をプロセッサにおいて推定するステップを含み、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。方法は、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢をプロセッサにおいて推定するステップをさらに含み、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。
別の特定の実施形態では、装置がメモリおよびプロセッサを含む。プロセッサは、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するように構成される。同じく、プロセッサは、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢を推定するように構成され、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。プロセッサは、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢を推定するようにさらに構成され、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。
別の特定の実施形態では、コンピュータ可読記憶デバイスは、プロセッサによって実行されたとき、プロセッサに、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信させる命令を含む。同じく、命令は、プロセッサに、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢を推定させ、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。命令は、さらに、プロセッサに、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢を推定させ、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。
さらに別の特定の実施形態では、装置は、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するための手段を含む。同じく、装置は、第1の画像フレームと第2の画像フレームとの第1の比較に基づいて、第1の画像フレームに対応するカメラ姿勢を推定するための手段を含み、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。装置は、第1の画像フレームとキーフレームとの第2の比較に基づいて、第1の画像フレームに対応する精細化されたカメラ姿勢を推定するための手段をさらに含み、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。
開示する実施形態のうちの少なくとも1つによって提供される1つの特定の利点は、一連の画像フレーム内の隣接する画像フレーム間の比較に基づくカメラ姿勢の推定、および特定の画像フレームとキーフレームとの間の比較に基づく精細化されたカメラ姿勢の推定が、別々の処理スレッドを使用して同時に(たとえば、並列に)実行されてもよい。カメラ姿勢推定およびカメラ姿勢精細化の並列処理によって、3D点群または3Dモデルを生成するために一連の画像フレームをリアルタイムまたは準リアルタイム処理が可能になる。少なくとも1つの開示する実施形態によって提供される別の特定の利点は、対象物の画像フレームの取り込みに対してリアルタイムまたは準リアルタイムで対象物の3D点群を生成する能力である。
本開示の他の態様、利点および特徴については、以下の節、すなわち図面の簡単な説明、発明を実施するための形態および特許請求の範囲を含む本出願全体を精査すれば明らかになるであろう。
一連の画像フレームに基づいて点群データを生成するためのシステムの特定の例示的な実施形態のブロック図である。 点群データを生成するためのシステムの別の特定の例示的な実施形態のブロック図である。 準リアルタイムで生成されている点群データのこま撮り描写の図を含む、画像取り込みデバイスによって取り込まれているシーンの斜視図である。 一連の画像フレームに基づいてカメラ姿勢または新しいキーフレームを生成するステップを示す図である。 新しいキーフレームを生成するための追加の画像フレームの使用を含む、図4の図に続く図である。 新しいキーフレームを生成するための追加の画像フレームの使用を含む、図4および図5の図に続く図である。 一連の画像フレームのうちの2つの画像フレームの間のピクセル強度エラーおよび/または深度エラーを決定するステップを示す図である。 新しいキーフレームを生成する方法の特定の例示的な実施形態のフロー図である。 一連の画像フレーム内の画像フレームのカメラ姿勢を推定する方法の特定の例示的な実施形態のフロー図である。 コスト関数に基づいて特定の画像フレームのカメラ姿勢を推定する方法の特定の例示的な実施形態のフロー図である。 カメラ姿勢を推定する方法および精細化されたカメラ姿勢を推定する方法の特定の例示的な実施形態の流れ図である。 一連の画像フレームに基づいてカメラ姿勢推定を実行するように構成されたプロセッサを含むコンピューティングデバイスのブロック図である。
図1を参照すると、システム100の特定の例示的な実施形態が示されている。システム100は、プロセッサ106およびメモリ112に通信可能に結合されたカメラ102を含む。例示的な実施形態では、カメラ102、プロセッサ106およびメモリ112は、モバイルフォン、タブレットコンピュータ、パーソナルコンピュータ、メディアプレーヤデバイスなどのコンピューティングデバイスまたは電子デバイス内に一体化されてよい。
特定の実施形態では、システム100は、画像取り込みデバイス(たとえば、カメラ102)が対象物の周りを移動されるときの画像取り込みプロセス中に、点群データ116(たとえば、3D点群または3Dモデル)を生成するように構成される。カメラ102(または別の画像取り込みデバイス)は、一連の画像フレーム104を取り込むように構成されてよい。カメラ102が一連の画像フレーム104を取り込む間に、カメラ102は、対象物の周りを(たとえば、対象物の周りを歩き得るユーザによって)移動されることがある。図示の実施形態では、一連の画像フレーム104は5つの画像フレームを含むが、一連の画像フレーム104は、5つより多い画像フレームを含んでよく、または5つより少ない画像フレームを含んでもよい。各画像フレームは複数のピクセルを含み、各ピクセルは、深度値、測光値(たとえば、赤-緑-青(RGB)の値、強度値、クロマ値、飽和値、など)、またはそれらの組合せなど、ピクセル値のセットに対応する。
カメラ102は、一連の画像フレーム104をプロセッサ106の比較器108に供給してよい。特定の実施形態では、プロセッサ106は、単一のコアプロセッサであってよい。別の実施形態では、プロセッサ106は複数の処理コアを含んでよく、比較器108は、複数の処理コアのうちの少なくとも1つのコアに対応してよい(たとえば、少なくとも1つのコアによって実行されてよい)。別の特定の実施形態では、プロセッサ106は、並列に動作する複数のプロセッサを含んでよく、複数のプロセッサの各プロセッサは、比較器108などの対応する比較器を含む。例示的な実施形態では、一連の画像フレーム104内の各画像フレームは、ソース解像度(たとえば、高精細度(HD)などの高解像度)において取り込まれてよい。
図示しないが、一連の画像フレーム104のうちの1つまたは複数の画像フレームは、プロセッサ106によってバッファリング(たとえば、記憶)されてよい。たとえば、プロセッサ106は、ソース解像度(たとえば、高精細度(HD)などの高解像度)において一連の画像フレーム104のうちの特定の画像フレームを受信してよく、ソース解像度における画像フレームを、プロセッサ106に結合されるかまたは含まれるランダムアクセスメモリ(RAM)などのメモリに記憶してもよい。追加または代替として、プロセッサ106は、一連の画像フレーム104のうちの1つまたは複数の画像フレームをダウンサンプリングまたはリサイズするように構成されてよい。たとえば、プロセッサ106は、特定の画像フレームのうちの1つまたは複数の(ソース解像度と比較して)低減された解像度の画像フレームを生成してよい。説明のために、ソース解像度が高解像度(たとえば、HD解像度)であるとき、プロセッサ106は、特定の画像フレームの中解像度(たとえば、クォータビデオグラフィックスアレイ(QVGA)解像度)画像フレームおよび/または低解像度(たとえば、クォータ-クォータビデオグラフィックスアレイ(QQVGA)解像度)画像フレームを生成してよい。いくつかの実装形態では、プロセッサ106は、様々な(たとえば、異なる)解像度における特定の画像フレームを受信してよい。プロセッサ106は、プロセッサ106に含まれるかまたは結合されるメモリ(たとえば、RAM)に、特定の画像フレームのうちの1つまたは複数の低減された解像度の画像フレームを記憶(たとえば、バッファリング)するように構成されてよい。プロセッサ106においてまたはプロセッサ106によってバッファリングされる様々な解像度における画像フレームは、比較器108および/またはキーフレーム生成器110など、プロセッサ106の1つまたは複数の構成要素にアクセス可能であることがある。特定の画像フレームの1つまたは複数の低減された解像度バージョンは、プロセッサ106が特定の画像フレームを受信することに応答して生成されてよく、または特定の画像フレームの1つまたは複数の低減された解像度バージョンがプロセッサ106の構成要素によって必要とされる(たとえば、要求される)ときに必要に応じて生成されてよい。
比較器108は、プロセッサ106の1つまたは複数のハードウェアデバイス(たとえば、論理回路)、プロセッサ106によって実行可能なソフトウェア命令(たとえば、プログラムコード)、またはそれらの組合せを使用して実装されてよい。特定の実施形態では、比較器108は、一連の画像フレーム104内の画像フレームを、互いに対しておよび/またはメモリ112内に記憶されている1つまたは複数のキーフレーム114に対して、ピクセルごとの比較を実行するように構成される。特定の実施形態では、以下でさらに説明するように、比較器108は、ピクセルごとの比較を実行して重複率(overlap ratio)109を決定する。ピクセルごとの比較には、第1の画像フレーム121のピクセル値(たとえば、深度値、測光値(たとえば、赤-緑-青(RGB)値)、またはそれらの組合せ)と第2の画像フレーム122またはキーフレーム114のピクセル値との間の比較を含むことがある。
重複率109は、一連の画像フレーム104のうちの2つ以上の画像フレームの類似度の数値表現であり得る。たとえば、数値表現は、「類似する」ピクセルの数をピクセルの総数で割ったものであり得る。2つ以上の画像フレームのピクセルは、ピクセルが完全に一致する(たとえば、特定のピクセル値に対して同じ数値を有する)とき、またはピクセルが実質的に一致する(たとえば、第1のピクセルの数値が、第2のピクセルの対応する数値の差のしきい値内にある)ときに、類似しているものと決定され得る。代替実施形態では、重複率109は、一連の画像フレーム104のうちの2つ以上の画像フレームの間の相違点の数値表現であり得る。たとえば、重複率109は、「相違している」ピクセル(たとえば、上述のように類似していないピクセル)の数をピクセルの総数で割ったものであり得る。特定の実施形態では、重複率109を決定するステップは、ピクセルごとの比較に基づいて画像フレームとキーフレームとの間の複数の差の値を決定するステップと、(重複率のしきい値131に対応し得る)差のしきい値を満足する複数の差の値の数を決定するステップとを含み、重複率109は、その数を画像フレームのピクセルの総数で割ったものに基づく。
キーフレーム生成器110は、一連の画像フレーム104のうちの最初に取り込まれたフレーム(たとえば、第1の画像フレーム121)に基づいて新しいキーフレーム111を生成してよい。たとえば、一連の画像フレーム104に関連付けられたキーフレーム114がメモリ112に記憶されていないとき、第1の画像フレーム121(または第1の画像フレーム121のバージョン)が、デフォルトによって新しいキーフレーム111として使用されてよい。特定の生成されたキーフレームは、キーフレーム114のうちの1つとして記憶されてよく、取り込まれた画像フレームと同じ解像度を有してよく、または取り込まれた画像フレームと異なる解像度を有してもよい(たとえば、第1の画像フレーム121に基づいて生成されたキーフレーム111が、第1の画像フレーム121と異なる解像度を有してもよい)。たとえば、特定のキーフレームは、ソース解像度(たとえば、第1の画像フレーム121のオリジナルの解像度)における第1の画像フレーム121より低いメモリフットプリントまたは処理フットプリントを使用しながら、第1の画像フレーム121からの少なくともいくらかの詳細さを保持する、中解像度(たとえば、クォータビデオグラフィックスアレイ(QVGA)解像度)の画像フレームであってよい。特定の実施形態では、プロセッサ106(たとえば、キーフレーム生成器110)は、第1の画像フレーム121をダウンサンプリングまたはリサイズして、新しいキーフレーム111を生成するように構成されてよい。
追加または代替として、キーフレーム生成器110は、1つまたは複数のキーフレーム114のうちの特定のキーフレームおよび一連の画像フレーム104のうちの取り込まれた画像(たとえば、第2の画像122)に基づいて新しいキーフレーム111を生成してよい。説明のために、1つまたは複数のキーフレーム114の各々は、(たとえば、以下で説明するように、カメラ姿勢推定値を精細化するために)一連の画像フレーム104の画像フレームのうちの1つまたは複数に対する基準画像フレームとしての働きをするように利用可能であり得る。たとえば、比較器108は、1つまたは複数のキーフレーム114のうちの(第1の画像フレーム121に基づく)特定のキーフレームと第2の画像フレーム122とを比較して、第2の画像フレーム122に関連付けられたカメラ姿勢を精細化するために使用されてよい。一連の画像フレーム104の追加の画像フレームが受信されると、比較器108は、受信された画像フレームの各々またはそれの低減された解像度バージョンと、メモリ112内の1つまたは複数のキーフレーム114のうちの前に記憶されたキーフレームとのピクセルごとの比較を実行してよい。特定の実施形態では、ピクセルごとの比較は、特定のキーフレームの対応するピクセルに類似する、第2の画像フレーム122のピクセルを決定する。比較器108は、類似するピクセルの数に基づいて重複率109を計算し得る。たとえば、比較器108は、第2の画像フレーム122と特定のキーフレームとの間で類似するピクセルの数を、第2の画像フレーム122内のピクセルの総数で割ったものに基づいて、重複率109を生成し得る。代替実施形態では、重複率109は、第1の画像フレーム121と第2の画像フレーム122との間で相違するピクセルの数を、ピクセルの総数で割ったものの数値表現であってもよい。同じく、第2の画像フレーム122は、重複率109を計算するために、第1の画像フレーム121に整列するように修正されてもよい(たとえば、図6を参照しながら説明するように曲げられるかまたは変形されてもよい)。
キーフレーム生成器110は、重複率109と重複率しきい値131とを比較するように構成されてよい。重複率しきい値131は、百分率、ピクセル数を単位として、または何らかの他の方式で表されてよい。たとえば、重複率しきい値131は、重複率109が百分率として表されるときに百分率であってよい。特定の実施形態では、重複率109は、ピクセルの総数のうちの類似するピクセルの百分率であり、重複率しきい値131は、その百分率以上において、画像フレームがキーフレームに実質的に類似する(たとえば、90%の類似度である)と見なされる百分率である。重複率しきい値131の値は、画像フレームが実質的に類似するかどうかの決定における感度を増加または減少させるように(たとえば、ユーザによって)調整されてよい。特定の実施形態では、重複率109が重複率しきい値131以上であるときに、重複率109は、重複率しきい値131を満足し得る。重複率109が重複率しきい値131以上であるとき、画像フレームおよびキーフレームは実質的に類似しており、キーフレーム生成器110は、メモリ112に記憶するために新しいキーフレーム111(たとえば、別のキーフレーム)を生成することはない。別の特定の実施形態では、重複率109が重複率しきい値131以下であるときに、重複率109は、重複率しきい値131を満足する。重複率109が重複率しきい値131以下であるとき、画像フレームおよびキーフレームは実質的に類似しておらず、キーフレーム生成器110は、メモリ112に記憶するために新しいキーフレーム111(たとえば、別のキーフレーム)を生成する。新しいキーフレーム111を生成するステップは、一連の画像フレーム104のうちのソースフレームのコピーを生成するステップを含んでよい。特定の実施形態では、コピーは、ソースフレーム(たとえば、HD解像度)に対して低減された解像度(たとえば、QVGA解像度)を有する。
特定の実施形態では、画像フレームおよびキーフレームが実質的に類似しないことが、重複率109と重複率しきい値131との比較によって示されるとき、第1の画像フレーム121を取り込む間のカメラ102の第1の位置および第2の画像フレーム122を取り込む間のカメラ102の第2の位置など、カメラ102の第1の位置と第2の位置との間に実質的な変化が発生したものと決定される。したがって、重複率109と重複率しきい値131との間の比較に基づいて、第1の画像フレーム121および第2の画像フレーム122は、異なる画像データを有する実質的に異なる画像フレームであるものと決定されてよい。第1の画像フレーム121および第2の画像フレーム122が、実質的に異なる画像フレームであるものと決定されるとき、キーフレーム生成器110は、第2の画像フレーム122に基づいて新しいキーフレーム111を生成してよい。代替として、画像フレームおよびキーフレームが実質的に類似していることが、重複率109と重複率しきい値131との比較によって示されるとき、キーフレーム114および第2の画像フレーム122は実質的に同じ画像データを含むので、第2の画像フレーム122に基づいて新しいキーフレーム111が生成されることはない。キーフレーム114および第2の画像フレーム122が実質的に類似しているとき、新しいキーフレーム111の生成は不要である。生成され、比較のために利用可能な新しいキーフレームの数を低減することによって、一連の画像フレーム104は、より効率的に処理され得る。
一般に、一連の画像フレーム104のすべての画像フレームが、重複率しきい値131に基づいてキーフレームに類似するものと決定されることになるとは限らない。第4の画像フレーム123など、特定の画像フレームが取り込まれて比較器108に供給されるとき、カメラ102は、1つまたは複数のキーフレーム114のうちの特定のキーフレーム(たとえば、第1の画像フレーム121に基づく特定のキーフレーム)に対応する画像フレームが取り込まれたときとは実質的に異なる位置にあることがある。その結果、特定のキーフレームと第4の画像フレーム123との間の比較に対応する重複率109が決定され、重複率しきい値131と比較されて、第4の画像フレーム123および特定のキーフレームが類似しているかどうかが示され得る。したがって、第4の画像フレーム123および特定のキーフレームが、比較に基づいて類似していないものと決定されたとき、第4の画像フレーム123に基づく新しいキーフレーム111が生成され、メモリ112に記憶される。第4の画像フレーム123に基づいて新しいキーフレーム111が生成されると、一連の画像フレーム104のうちの第4の画像フレーム123に続く受信された画像フレームが、そのような画像フレーム(またはそのような画像フレームの低減された解像度バージョン)と、第4の画像フレーム123に基づいて生成された新しいキーフレーム111との追加のピクセルごとの比較を実行するために、比較器108によって使用されてよい。したがって、一連の画像フレーム104内の最初に受信された画像フレームが、キーフレームとして指定され、メモリ112に記憶された後、比較器108によって実行される比較が、メモリ112内で「直近に生成された」キーフレーム(たとえば、キーフレーム114のタイムスタンプに基づいて最後に生成されたキーフレーム)に対して実行される。代替として、比較は、メモリ112内の前に生成されたキーフレームのセットに対して比較器108によって実行されてもよい。たとえば、メモリ112は、一連の画像フレーム104の処理中に前に生成されたキーフレームを記憶してもよい。いくつかの実施形態では、図2を参照しながらさらに説明するように、前のキーフレームのうちの1つが選択され、比較器108によって実行される比較において使用されてもよい。
特定の実施形態では、新しいキーフレーム111は、一連の画像フレーム104のうちの画像フレームに対して低減された解像度において生成される。低減された解像度の画像フレームは、ダウンサンプリング、リサイジングおよび/または他の動作を介して画像フレームから生成されてよい。たとえば、第2の画像フレーム122がHD画像フレームであり、新しいキーフレーム111が中解像度画像フレーム(たとえば、QVGA解像度、たとえば320×240ピクセル)であってよい。キーフレーム生成器110は、新しく生成されたキーフレーム、たとえば新しいキーフレーム111をメモリ112に送信してよい。特定の実施形態では、メモリ112は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ディスクベースメモリ、ソリッドステートメモリ、またはそれらの任意の組合せを含むことがある。図1に示す実施形態では、新しいキーフレーム111は、メモリ112内のキーフレーム114のうちの1つとして記憶されてよい。一連の画像フレーム104に関連付けられた1つまたは複数のキーフレーム114は、カメラ102の動作中にメモリ112に記憶されてよい。特定の実施形態では、複数のキーフレーム114の数は、一連の画像フレーム104内の画像フレームの総数より少ない。複数のキーフレーム114は、シーン周りの異なる相対位置からのカメラ姿勢を精細化するために複数の基準画像フレームを提供してよい。特定の実施形態では、メモリ112内のキーフレーム114の各々は、比較器108による比較において基準画像フレームとして選択され、使用されるように利用可能である。たとえば、いくつかの実装形態では、図2を参照しながら本明細書でさらに説明されるように、メモリ112は複数のキーフレーム114を含んでよく、記憶されている複数のキーフレーム114のうちの最も類似するキーフレームが選択されて、一連の画像フレーム104のうちの特定の画像フレームとの比較に使用されてよい。追加または代替として、メモリ112に記憶され、一連の画像フレーム104のセットに対応する1つまたは複数のキーフレーム114は、一連の画像フレーム104に基づいて生成された各キーフレームを含んでよく、または一連の画像フレーム104に関連付けられたキーフレーム114のすべてよりも少ないキーフレームを含んでよい。たとえば、1つまたは複数のキーフレーム114は、1つまたは複数のキーフレーム114が大きいメモリフットプリントをもたらさないように、直近に生成されたキーフレームの数など、キーフレームの特定の数を含んでよい。
新しいキーフレーム111が生成されるとき、および追加の画像フレームがカメラ102から受信されるとき、プロセッサ106は、点群データ116を生成してよい。特定の実施形態では、点群データ116は、座標(たとえば、x、yおよびz座標または他の座標)の集合または特定の形状を表すための式など、3D空間内の点(たとえば、座標)に関するデータを含む。点群データ116の生成が、図3を参照しながらさらに説明される。例示的な実施形態では、点群データ116は、一連の画像フレーム104内の1つまたは複数の画像フレーム、メモリ112に記憶されている1つまたは複数のキーフレーム、図2を参照しながら本明細書で説明するようにプロセッサ106によって計算されたカメラ姿勢情報、またはそれらの任意の組合せの中に含まれるデータに基づいて生成されてよい。たとえば、点群データ116は、一連の画像フレーム104の取り込みに対してリアルタイムまたは準リアルタイムで生成されてよく、例示的な実施形態では、本明細書でさらに説明するように、点群データ116は、カメラ102によって取り込まれた1つまたは複数の対象物の3次元(3D)モデルを生成する間に使用されてよい。特定の実施形態では、3Dモデルは、3Dモデルの一部である3D空間内の点を識別するために座標を使用するなど、点群データ116を補間することに基づいて生成される。
動作中、プロセッサ106は、カメラ102から一連の画像フレーム104のうちの第1の画像フレーム121を受信してよい。第1の画像フレーム121は一連の画像フレーム104のうちの第1の(たとえば、最初の)画像フレームであり、したがって一連の画像フレーム104に関連付けられたキーフレームはメモリ112に記憶されていないので、プロセッサ106は、第1の画像フレーム121に基づいて第1のキーフレーム(たとえば、1つまたは複数のキーフレーム114のうちの第1のキーフレーム)を生成してよい。第1のキーフレームを生成するステップは、第1の画像フレーム121をダウンサンプリングして、第1の画像フレーム121が取り込まれた解像度より低い解像度(たとえば、QVGA)バージョンの第1の画像フレーム121を生成するステップを含んでよい。
第1の画像フレーム121を受信した後、プロセッサ106は、カメラ102から第2の画像フレーム122を受信してよい。プロセッサ106は、第2の画像フレーム122と第1のキーフレームとの間の重複率109を決定してよい。重複率109は、第2の画像フレーム122のピクセル値(たとえば、色値、強度値、またはそれらの任意の組合せ)と、キーフレーム114の対応するピクセル値とのピクセルごとの比較に基づいてよい。いくつかの実装形態では、重複率109を決定するために使用される第2の画像フレーム122の特定の解像度は、第1のキーフレームと同じ解像度(たとえば、ともにQVGA)であってもよい。他の実装形態では、重複率109を決定するために使用される第2の画像フレーム122の特定の解像度は、第1のキーフレームの解像度と異なってもよく、第2の画像フレーム122および/または第1のキーフレームの1つまたは複数のピクセル値は、ピクセルごとの比較を実行して重複率109を生成するために補間されてもよい。
重複率109は、重複率しきい値131と比較されてよく、第2の画像フレーム122はキーフレーム114に実質的に類似していないとの決定に基づいて、第2の画像フレーム122は、メモリ112に記憶するための新しいキーフレーム111を生成するために使用されてよい。代替として、比較に基づいて第2の画像フレーム122がキーフレーム114に実質的に類似しているものと決定されると、第2の画像フレーム122は、新しいキーフレーム111を生成するために使用されることはない。第2の画像フレーム122に基づいて新しいキーフレーム111を生成するステップは、第2の画像フレーム122をダウンサンプリングしてより低い解像度(たとえば、QVGA)バージョンの第2の画像フレーム122を生成するステップか、または前にダウンサンプリングされたバージョンの第2の画像フレーム122を使用するステップを含んでよい。
図1のシステム100は、生成されたキーフレームの数が一連の画像フレーム104の画像フレームの数より小さくなるように、キーフレームを選択的に生成するために使用されてよい。加えて、画像フレームを処理してキーフレームを識別するステップは、一連の画像フレーム104の受信された画像の特定の解像度と比較して、低減された解像度において実行されてよい。キーフレーム114を生成するためにより低い解像度を使用することによって、点群データ116の生成および他の処理動作は、一連の画像フレーム104が取り込まれる速度に対してリアルタイムまたは準リアルタイムで実行され得る。したがって、図1のシステムは、一連の画像フレーム104の取り込み速度に対してリアルタイムまたは準リアルタイムで点群データおよび/または3Dモデルを生成するために使用されてよい。
図2を参照すると、キーフレームを選択的に生成するように動作可能なシステム200の別の特定の実施形態が示されている。システム200は、カメラ202、プロセッサ206およびメモリ212を含む。プロセッサ206は、画像フレームバッファ207と、1つまたは複数のカメラ姿勢推定器208と、1つまたは複数の比較器220と、キーフレーム生成器210とを含む。画像フレームバッファ207は、カメラ202から一連の画像フレーム204を受信するように構成されたキャッシュメモリおよび/またはディスクベースメモリに対応し得る。画像フレームバッファ207からの画像フレームは、複数のフレーム(たとえば、第1の画像フレーム221および第2の画像フレーム222)が1つまたは複数のカメラ姿勢推定器208に同時に供給され得るように、1つまたは複数のカメラ姿勢推定器208に供給されてよい。
1つまたは複数のカメラ姿勢推定器208は、一連の画像フレーム204内の1つまたは複数の画像フレーム、および/またはキーフレーム生成器210によって生成された1つまたは複数のキーフレームに対するカメラ姿勢情報を生成してよい。いくつかの実施形態では、キーフレーム生成器210は、図1のキーフレーム生成器110に対応し得る。カメラ姿勢推定値は、特定の画像フレームを取り込む間のカメラ202の相対位置(たとえば、「原点」座標位置など、最初の位置に対する位置の差に関連する座標)および方位(たとえば、「オリジン」角度など、最初の角度に対する差に関連する角度)の近似的値であってよい。特定の実施形態では、1つまたは複数のカメラ姿勢は、特定の画像フレームを特定のロケーションに関連付ける、全地球測位衛星(GPS)データなどのロケーションデータ(たとえば、ジオタギング)とは無関係に推定される。カメラ姿勢推定値は、特定の画像フレームのピクセル値とともに、点群データ216を生成するために使用されてよい。点群データ216は、図1の点群データ116に対応し得る。例示的な実施形態では、1つまたは複数のカメラ姿勢推定器208は、複数の画像フレーム(たとえば、第1の画像フレーム221および第2の画像フレーム222)の間の比較に基づいて、特定の画像フレームに対するカメラ姿勢を推定する。たとえば、1つまたは複数のカメラ姿勢推定器208は、一連の画像フレーム204内の低解像度(たとえば、QQVGA解像度、すなわち160×120)バージョンの画像フレームを比較してよい。低解像度バージョンの画像フレームの比較に基づいて、1つまたは複数のカメラ姿勢推定器208は、カメラ姿勢推定値250を生成してよい。本明細書で説明するように、カメラ姿勢推定値250は、2つの画像フレームの後者(たとえば、第2の画像フレーム222)に対応する。説明のために、一連の画像フレーム204のうちの第1の画像フレーム221は、「オリジン」として使用されてよく、一連の画像フレーム204の後続の画像フレームの各々は、第1の画像フレーム221(たとえば、「オリジン」)に対して決定された、対応するカメラ姿勢を有してよい。たとえば、第1の画像フレーム121に関連付けられたカメラ姿勢は、ゼロの相対角度を有する基準点(たとえば、点ゼロ)として表されてよい。この例では、後続のカメラ姿勢推定値は、実空間内の相対運動を示す座標(たとえば、距離のおおよその変化を示す(x、y、z)座標)およびカメラ102の傾きの相対変化を示す角度(たとえば、10°の角度変化)として表されてよい。
例示的な実施形態では、2つの画像フレームのうちの(たとえば、後で受信されたおよび/または生成された)後者に対応するカメラ姿勢推定値250を生成するステップは、2つの画像フレームの間の、カメラ202とカメラ202によって取り込まれている対象物(および/またはシーン)との相対運動に基づいて、後者の取り込まれたフレームを曲げること(すなわち、変形させること)によって曲げられたフレームを生成するステップを含む。図6を参照しながら本明細書で説明するように、後者の取り込まれたフレームは曲げられて、先に取り込まれた画像フレームに、より類似するようになる。
特定の実施形態では、画像フレーム対画像フレームの比較に基づいて1つまたは複数のカメラ姿勢推定器208によって生成されたカメラ姿勢推定値250は、「最初の」カメラ姿勢に対応し得る。カメラ姿勢推定値250は、低解像度(たとえば、QQVGA)動作に基づいて生成されたことによって、「最初」であり得る。「最初の」カメラ姿勢は、後続の動作の間に精細化されてよい。いくつかの実施形態では、「最初の」カメラ姿勢推定値は、特定の画像フレームに対して「初期」であり得、後続の画像フレームは、それら自体のそれぞれの「最初の」カメラ姿勢推定値を有してよい。1つまたは複数の比較器220は、本明細書でさらに説明するように、キーフレーム選択器242を使用してキーフレーム214から最も類似するキーフレームを選択してよい。いくつかの実施形態では、キーフレーム選択器242は、カメラ姿勢推定値250を使用して、識別されたキーフレーム252を選択し、識別されたキーフレーム252は、カメラ姿勢推定値250に関して最も類似するキーフレームである。識別されたキーフレーム252(またはそれの表示)は、カメラ姿勢推定器208に供給されてよい。
カメラ姿勢推定器208は識別されたキーフレーム252を受信し、カメラ姿勢推定値250など、最初のカメラ姿勢推定値を精細化してよい。たとえば、カメラ姿勢推定器208は、QVGAバージョンの画像フレームと、一連の画像フレーム204内の前の画像フレームに対応する、QVGA解像度バージョンの識別されたキーフレーム252と比較することによって、画像フレームに対応する精細化されたカメラ姿勢推定値256を推定するように構成されてよい。いくつかの実施形態では、1つまたは複数の比較器220は、図1の比較器108に対応し得る。
説明のために、一連の画像フレーム204内の画像フレームのうちの1つに対応する最初のカメラ姿勢推定値が決定された後、1つまたは複数のカメラ姿勢推定器208は、画像フレームに対応する精細化されたカメラ姿勢推定値256を、その画像フレームとキーフレーム生成器210によって前に生成されたキーフレーム214とを比較することによって生成し、直近に生成されたキーフレームまたは最も類似するキーフレーム(識別されたキーフレーム252など)として、メモリ212に記憶してよい。メモリ212は、図1のメモリ112に対応し得る。画像フレーム223に対する最初のカメラ姿勢推定値250を決定するステップは、画像フレーム223と、画像フレーム222または別の画像フレームなどの前の画像フレームとを比較するステップを含んでよい。1つまたは複数の比較器220は、メモリ212からキーフレーム214を選択するように構成されたキーフレーム選択器242を含む。いくつかの実施形態では、キーフレーム選択器242は、カメラ姿勢推定値250と、1つまたは複数のキーフレーム214のうちの特定のキーフレームの対応するカメラ姿勢推定値との間の類似性に基づいてキーフレーム214を選択してよい。いくつかの実施形態では、カメラ姿勢推定値250と、特定のキーフレームの対応するカメラ姿勢推定値との間の類似性は、相対ロケーション、方位、またはそれらの組合せ(たとえば、座標および角度)の間の比較に基づくことがある。
たとえば、カメラ姿勢推定値250に関して最も類似するキーフレームを識別するために、キーフレーム選択器242は、カメラ姿勢推定値の相対位置(たとえば、座標)および方位(たとえば、角度)と、キーフレーム214に関連付けられた1つまたは複数のカメラ姿勢とを比較してよい。説明のために、キーフレーム214の各キーフレームは、キーフレームを生成するために使用された一連の画像フレーム204のうちの特定の画像フレームに対応するカメラ姿勢に関連付けられてよい。たとえば、第1のキーフレームは、上記で説明した「オリジン」に関連付けられてよい。第2のキーフレームは、第1の画像フレーム221に後続する特定の画像フレームに基づいて生成されてよく、第2のキーフレームは、特定のキーフレームのカメラ姿勢に関連付けられてよい。
キーフレーム選択器242は、カメラ姿勢推定値250の相対位置および/または相対角度に基づいてキーフレーム214の類似のキーフレーム(または最も類似するキーフレーム)を識別してよい。たとえば、キーフレーム選択器242は、カメラ姿勢推定値250の相対位置と、特定のキーフレームに関連付けられた特定のカメラ姿勢の相対位置との間の第1の差を決定してよい。追加または代替として、キーフレーム選択器242は、カメラ姿勢推定値250の相対角度と、特定のカメラ姿勢の相対角度との間の第2の差を決定してよい。キーフレーム選択器242は、キーフレーム214の各々に対する第1の差および/または第2の差を決定し、最も小さい差の値(たとえば、相対位置における最小の差および/または相対角度における最小の差)をもたらすキーフレームを、最も類似するキーフレームとして選択してよい。
別の例として、キーフレーム選択器242が、相対位置しきい値および/または相対距離しきい値を満足する特定のキーフレームを識別するまで、キーフレーム選択器242は、カメラ姿勢推定値250と、(キーフレーム214のうちの)1つまたは複数のキーフレームのセットとを逐次比較してよい。たとえば、キーフレーム選択器242は、第1のキーフレーム(たとえば、直近に生成されたキーフレーム)に対して第1の差および/または第2の差を決定してよい。キーフレーム選択器242は、第1の差と相対位置しきい値とを比較してよく、および/または第2の差と相対角度しきい値とを比較してもよい。第1の差が相対位置しきい値を満足する(そのしきい値以下である)場合、および/または第2の差が相対角度しきい値を満足する(そのしきい値以下である)場合、キーフレームは、カメラ姿勢推定値250に類似している(たとえば、最も類似している)として識別されてよく、カメラ姿勢推定値250は、別のキーフレーム(たとえば、直近に生成されたキーフレームより前に生成されたキーフレーム)と比較されることはない。1つまたは複数のキーフレームのセットのうちのいずれもが、相対位置しきい値および/または相対角度しきい値を満足しない場合、最も類似しているキーフレームは選択されず、キーフレーム生成器210は、カメラ姿勢推定値250に対応する画像フレームに基づいて新しいキーフレームを生成するように指示されてよい。
画像フレーム223に対する精細化されたカメラ姿勢推定値256を生成するステップは、画像フレーム223と、画像フレーム223に対応するカメラ姿勢推定値250のカメラ姿勢に最も類似するカメラ姿勢を有するキーフレームなど、メモリ212に記憶されている特定のキーフレームとを比較するステップを伴うことがある。いくつかの実施形態では、1つまたは複数のキーフレーム214の各キーフレームは、対応する精細化されたカメラ姿勢推定値256に関連付けられる。
1つまたは複数の比較器220は、一連の画像フレーム204内のQVGA解像度バージョンの特定の画像フレームと、メモリ212内の最も類似するキーフレームとのピクセルごとの比較を実行してよい。特定の画像フレームとキーフレームとの比較に基づいて、1つまたは複数の比較器220は重複率209を生成し、その重複率209をキーフレーム生成器210に供給してよい。キーフレーム生成器210は、重複率209と重複率しきい値とを比較して、特定の画像フレームおよびキーフレームが類似している(たとえば、新しいキーフレームが生成されない)かどうか、または特定の画像フレームおよびキーフレームが相違している(たとえば、追加のキーフレームが生成される)かどうかを決定してよい。たとえば、特定の画像フレームおよびキーフレームが相違しているとき、キーフレーム生成器210は、新しいキーフレーム211を生成してよい。いくつかの実施形態では、重複率209および重複率しきい値は、それぞれ、図1の重複率109および重複率しきい値131に対応する。
重複率209は、本明細書で説明する曲げられた比較に基づいて、1つまたは複数の比較器220によって生成されてよい。代替として、カメラ姿勢推定値250は、本明細書で説明するように、画像フレームを、先に取り込まれた(または生成された)キーフレームにより類似するように曲げることに基づいて生成されてよい。別の代替実施形態では、重複率209は、精細化されたカメラ姿勢推定値256とキーフレーム214の対応するカメラ姿勢推定値との間の比較に基づいて生成されてよい。重複率209は、百分率、ピクセル数を単位として、または何らかの他の方式で表されてよい。1つまたは複数の比較器220はピクセル強度エラーを決定してよく、ピクセル強度エラーは、曲げられたフレームの1つまたは複数のピクセルと、画像フレームのペア内の先に取り込まれたフレーム(またはキーフレーム114のうちの1つ)の1つまたは複数のピクセルとの間のピクセル強度における差を示す。次いで、1つまたは複数のカメラ姿勢推定器208は、曲げられたフレームの1つまたは複数のピクセルと、先に取り込まれたフレーム(または先のキーフレーム)の1つまたは複数のピクセルとの間の深度の差を示す深度エラーを決定してよい。ピクセル強度および深度のエラーを決定する例について、図7を参照しながらさらに説明する。ピクセル強度エラーおよび深度エラーは、後者の取り込まれた画像フレームに対するカメラ姿勢を推定するために使用されてよい。
特定の実施形態では、最初のカメラ姿勢情報は、プロセッサ206の第1のスレッドによって生成され、精細化されたカメラ姿勢は、プロセッサ206の第2の処理スレッドによって推定されてよい。第1の処理スレッドおよび第2の処理スレッドは、プロセッサ206によって並列に(たとえば、同時に)実行されてよい。第1の処理スレッドは、プロセッサ206の第1の処理コアを含むかまたはそれに対応してよく、第2の処理スレッドは、プロセッサ206の第2の処理コアを含むかまたはそれに対応してよい。並列処理は、第2の処理スレッドが、上記で説明したカメラ姿勢の最初の推定を妨げることなく、カメラ姿勢を精細化する動作を実行することを可能にする。例示的な実施形態では、1つまたは複数のカメラ姿勢推定器208は、プロセッサ206の異なる処理スレッドによって実行されるように構成される。異なる処理スレッドは、複数のプロセッサコア内で並列に、および/または単一のプロセッサコア内で時間多重方式で実行されてよい。第1および第2の処理スレッドは、単一のプロセッサ(たとえば、プロセッサ206)内に含まれているように説明されているが、他の実装形態では、第1の処理スレッドが第1のプロセッサ内に含まれ、第2の処理スレッドが、第1のプロセッサとは別の第2のプロセッサ内に含まれてもよい。
1つまたは複数のカメラ姿勢推定器208は、画像フレーム間(たとえば、第1の画像フレーム221と第2の画像フレーム222との間)、または一画像フレーム(たとえば、第2の画像フレーム222)と一キーフレーム(たとえば、キーフレーム214のうちの1つ)との間の比較を実行してよい。たとえば、1つまたは複数のカメラ姿勢推定器208は、一連の画像フレーム204内の連続する画像フレームのペアを、ピクセルごとに、または何らかの他の方式で比較してよい。説明のために、1つまたは複数のカメラ姿勢推定器208は、第1の画像フレーム221と第2の画像フレーム222とを比較してよい。特定の実施形態では、1つまたは複数のカメラ姿勢推定器208によって実行される画像フレーム対画像フレームの比較は、ランドマークまたは他のそのような特徴(たとえば、エッジ、頂点、など)に無関係であってよく(たとえば、基づかず)、ピクセルごとに実行されることがある。たとえば、1つまたは複数のカメラ姿勢推定器208は、一連の画像フレーム204内の画像フレームにおけるランドマークを探索する代わりに、ピクセルごとの比較を実行してよい。1つまたは複数のカメラ姿勢推定器208によって実行された比較の結果は、カメラ姿勢推定値250として1つまたは複数の比較器220に供給されてよい。
動作中、カメラ姿勢推定器208はカメラ姿勢情報を生成し、キーフレーム生成器210は、適用可能な新しいキーフレーム211を生成してよい。プロセッサ206は、そのような情報を使用して、点群データ216を、一連の画像フレーム204の取り込みに対してリアルタイムまたは準リアルタイムで生成することができる。特定の実施形態では、1つまたは複数のカメラ姿勢推定器208によって生成されたカメラ姿勢の各々は、一連の画像フレーム204内の対応する画像フレームが取り込まれた特定の時間に対応する、カメラ202のポジショニングの近似値を示す。プロセッサ206は、一連の画像フレーム204内の1つまたは複数の追加の画像フレームをカメラ202から受信し、1つまたは複数の追加の画像フレームに基づいて、点群データ216、たとえば3次元点群を更新してよい。特定の実施形態では、3次元点群を更新するレートは、1つまたは複数の追加の画像フレームを受信するレートに実質的に等しい。第1の処理スレッドは、一連の画像フレーム204を取り込む間に動作するのに十分なレートにおいてQQVGA画像フレームを処理するように構成されてよい。したがって、点群データ216は、カメラ202の画像取り込み動作に対してリアルタイムまたは準リアルタイムで更新されてよい。点群データのそのようなリアルタイムまたは準リアルタイム生成の一例について、図3を参照しながらさらに説明する。
したがって、図2のシステムは、複数の解像度のフレームを処理し、キーフレームを選択的に生成し、点群データを更新して、点群/3Dモデル生成デバイスにおいてリアルタイムまたは準リアルタイム動作を実行してよい。例示的な実施形態では、カメラ202によって取り込まれた画像フレームの各々は、高解像度画像フレーム(たとえば、HD解像度)であり、メモリ212に記憶されたキーフレーム214は、中解像度フレーム(たとえば、QVGAフレーム)であり、1つまたは複数のカメラ姿勢推定器208によって実行される画像フレーム対画像フレームの比較は、低解像度(たとえば、QQVGA解像度)において実行される。例示的な実施形態では、一連の画像フレーム104内のQVGAおよびQQVGAバージョンの画像フレームは、ダウンサンプリング、リサイジング、または他の技法に基づいて生成されてよい。
図3を参照すると、図1のシステム100または図2のシステム200の動作の例示的な実施形態が示され、全体的に300で表される。図3では、図1のカメラ102または図2のカメラ202などの画像取り込みデバイス302が、図3に示すカップなどの対象物310の周りを経路304(たとえば、弧)に沿って移動される。画像取り込みデバイス302が経路に沿って移動する間に、画像取り込みデバイス302は、カメラ姿勢306A、306B、306C、306D、306Eおよび306Fによって図3に示される様々な位置に配置される。図3に示すカメラ姿勢306A〜306Fの数、分割、および方位は単に説明のために示されており、限定と見なされるべきではないことに留意されたい。たとえば、より多いカメラ姿勢またはより少ないカメラ姿勢が使用されてもよい。
経路304は、画像取り込みデバイス302が対象物310の周りをどのように移動されるかに基づく、任意の配置であってよい。画像取り込みデバイス302は、カメラ姿勢306Aに関連付けられた位置からカメラ姿勢306Fに関連付けられた位置まで経路304に沿って移動されるのにつれて、対象物310の3D点群が、図1および図2を参照しながら上記で説明したように、リアルタイムまたは準リアルタイムで生成されてよい。たとえば、経路304に沿った第1の位置において画像取り込みデバイス302の最初のカメラ姿勢を表すカメラ姿勢306Aにおいて、307Aに示すように、第1の部分的3D点群310Aが、画像取り込みデバイス302において生成され得る。画像取り込みデバイス302は、経路304に沿って移動を継続するのにつれて、追加のデータが取り込まれ、点を部分的3D点群に追加するために使用される。たとえば、コンピューティングデバイス302が経路304に沿ってカメラ姿勢306Dに関連付けられる位置まで移動すると、307Dに示すように、より完全な3D点群310Dが生成され得る。画像取り込みデバイス302がカメラ姿勢306Fに関連付けられた位置に到達した後、307Fにおいて示すように、完了した3D点群310Fが生成され得る。
したがって、図3は、画像取り込みデバイス302によって取り込まれた画像を使用する、画像取り込みデバイス302の動きに基づく3D点群データの準リアルタイムまたはリアルタイム生成を示す。3D点群データの完全性は、取り込まれた画像の数および画像取り込みデバイス302のポジショニングに左右されることがある。たとえば、3D点群データを生成する間、3D点群データは、(たとえば、画像取り込みデバイス302がカメラ姿勢306Fに関連付けられた位置に到達する前は)不完全であり、そのことで、追加の3D点群データが集められない場合、対象物310の不完全な3D表現の生成がもたらされることがある。説明のために、画像取り込みデバイス302が、対象物310のすべての可視アングルから対象物310の画像を取り込むのではない場合、対象物310の3D表現は不完全であることがある。この場合、対象物310の3D表現を完全なものにするかまたは3D表現のギャップを埋めるために、より多くの画像が、画像取り込みデバイス302によって取り込まれる必要がある。
図4を参照すると、図1のシステム100または図2のシステム200の動作に関連する図400が示されている。図4では、異なる動作レベルまたは処理スレッドが、水平方向に示されている。図4は、画像取り込み/取り出しレベル、第1の動作モード/処理スレッド、第2の動作モード/処理スレッド、およびメモリ動作レベルを含む。例示的な実施形態では、画像取り込み/取り出しレベルは、図1のカメラ102、カメラ202、画像取り込みデバイス302、またはそれらの組合せによって実行される動作に対応する。第1の動作モード/処理スレッドは、図1の比較器108によってまたは図2の比較器220によって実行される動作に対応し得る。第2の動作モード/処理スレッドは、図2の1つまたは複数の比較器220によって実行される動作に対応し得る。メモリは、図1のメモリ112または図2のメモリ212に対応し得る。
図4に示すように、異なる動作セグメントが、HD、QQVGAおよびQVGA解像度など、異なる解像度を有する画像データを処理するステップを伴うことがある。図4の実施形態では、画像取り込み/取り出しレベルは、高解像度(HD)データを受信、生成および/または処理し、第1の動作モード/処理スレッドは、低解像度(たとえば、QQVDA)データを受信、生成および/または処理し、第2の動作モード/処理スレッドは、中解像度(たとえば、QVDA)データを受信、生成および/または処理する。たとえば、画像取り込み/取り出しレベルは、ある時間期間にわたって一連の画像フレーム(たとえば、図4のソースフレーム:0、ソースフレーム:1、ソースフレーム:2およびソースフレーム:3)を受信してよい。第1の動作モード/処理スレッドは、ソースフレームの各々をダウンサンプリングして、カメラ姿勢推定値に使用するために対応するフレーム(たとえば図4のフレーム:0、フレーム:1、フレーム:2およびフレーム:3)を生成してよい。同様に、第2の動作モード/処理スレッドは、ソースフレームのうちの少なくともいくつかをダウンサンプリングして、キーフレーム生成のために対応するフレーム(たとえば図4のフレーム:1')を生成してよい。代替として、第2の動作モード/処理スレッドは、キーフレーム生成のためにフル解像度(たとえば、HD)におけるソースフレームを使用してよい。特定の実施形態では、ダウンサンプリングバージョンのソースフレームは、別の処理スレッドからまたは別のデバイス(たとえば、一連の画像フレームを供給するデバイス)から、第1の動作モード/処理スレッド、第2の動作モード/処理スレッド、または両方に供給されてよい。
ソースフレーム:0などの第1のフレーム(たとえば、一連の画像フレーム内の第1の画像フレーム)が取り込まれるかまたは受信されるとき、第1のフレームが、キーフレーム:0などのキーフレームを生成するために、自動的に使用されてよい。例示的な実施形態では、キーフレーム:0の生成は、ソースフレーム:0のQVGA解像度のコピーを作成するステップと、ソースフレーム:0のQVGA解像度のコピーをメモリに記憶するステップとを含む。第1の動作モード/処理スレッドに示すように、ソースフレームの各々は、先行するQQVGAフレームと比較され得るQQVGAフレームに対応する。たとえば、図4に示すように、フレーム:1に対するカメラ姿勢は、フレーム:1とフレーム:0との比較に基づいて決定されてよい。同様に、フレーム:2に対するカメラ姿勢は、フレーム:2とフレーム:1との比較に基づいて生成されてよく、フレーム:3に対するカメラ姿勢は、フレーム:3とフレーム:2との比較に基づいて生成されてよく、以下同様である。例示的な実施形態では、カメラ姿勢情報は、図2の1つまたは複数のカメラ姿勢推定器208を参照しながら説明したように生成され、メモリに記憶されてよい。
第2の動作モード/処理スレッドは、図2の1つまたは複数のカメラ姿勢推定器208を参照しながら説明したように、第1の動作モード/処理スレッドによって決定されたカメラ姿勢を精細化するステップと、図1のキーフレーム生成器110または図2のキーフレーム生成器210を参照しながら説明したように、新しいキーフレームが生成されるべきかどうかを決定するステップとを伴う。たとえば、図4に示すように、QVGA解像度におけるフレーム:1はキーフレーム:0と比較されて、図1の重複率109または図2の重複率209などの重複率が決定される。フレーム:1とキーフレーム:0との比較に基づいて、QQVGAバージョンのフレーム:1に関して決定されたカメラ姿勢が、図2を参照しながら説明したように、精細化されたカメラ姿勢推定値を生成するために精細化されてよい。次いで、精細化されたカメラ姿勢推定値は、第1の動作モード/処理スレッドによって生成された特定のフレームに関連付けられたカメラ姿勢推定値を更新するために使用される。たとえば、フレーム:1に対するカメラ姿勢推定値は、対応する精細化されたカメラ姿勢推定値を反映するように更新される。さらに、生成された重複率と、図1の重複率しきい値131などの重複率しきい値との比較によって、フレーム:1がキーフレーム:0と相違することが示されるとき、図1および図2を参照しながら説明したように、新しいキーフレームが生成されてメモリに記憶されてよい。図4に示す実施形態では、重複率と重複率しきい値との比較によって、フレーム:1がキーフレーム:0に類似していることが示されるので、新しいキーフレームは生成されない。
図5を参照すると、図4を参照しながら説明した動作の連続を示す図500が示されている。図5では、追加のHDソースフレームが、画像取り込みデバイスからすでに受信されている。たとえば、図5に示すように、ソースフレーム:4、ソースフレーム:5およびソースフレーム:6がすでに受信されている。第1の動作モード/処理スレッドでは、連続する画像フレームのペアが比較されて、最初のカメラ姿勢情報が生成される。選択されたQVGA処理が、第2の動作モード/処理スレッドによって実行される。たとえば、図5では、フレーム:2がフレーム:1と比較されてフレーム:2に対する最初のカメラ姿勢が生成される。しかしながら、フレーム:2は、QVGA解像度において比較されることはない。なぜならば、図4に示される、QVGA解像度のフレーム:1とQVGA解像度のキーフレーム:0との間の比較は、より高い解像度に起因して追加の処理時間がかかるからである。したがって、第2の処理スレッドは、第1の比較が完了するまで、新しいフレームを比較することはできない。したがって、図5の例では、第2の動作モード/処理スレッドは、フレーム:1を処理した後、フレーム:2ではなくフレーム:3を処理する。図4を参照しながら説明したように、キーフレーム:0は、フレーム:3と比較されて、重複率と、重複率が重複率しきい値を満足するか否かが決定され得る。比較によってキーフレーム:0およびフレーム:3が相違していることが示されるとき、新しいキーフレームが生成されてよい。たとえば、図5に示すように、フレーム:3は、キーフレーム:0とはかなり異なっており、それゆえ、キーフレーム:1で示される新しいキーフレームが、フレーム:3に基づいて生成される。フレーム:3に関連付けられたカメラ姿勢推定値が、第1の動作モード/処理スレッドにおける今後の比較に使用するために、フレーム:3に関連付けられた精細化されたカメラ姿勢推定値を反映するように更新されてよい。
図6を参照すると、図4および図5を参照しながら説明した動作の連続を示す図600が示されている。図6では、追加のHDソースフレームが、画像取り込みデバイスからすでに受信されている。たとえば、図6に示すように、ソースフレーム:n、ソースフレーム:n+1、ソースフレーム:n+2およびソースフレーム:n+3がすでに受信されており、ここでnは任意の非負整数であってよい。第1の動作モード/処理スレッドでは、連続する画像フレームのペアが比較されて、最初のカメラ姿勢情報が生成される。選択されたQVGA処理が、第2の動作モード/処理スレッドによって実行される。たとえば、図6では、フレーム:n+1がフレーム:nと比較されて、フレーム:n+1に対する最初のカメラ姿勢が生成される。図4および図5を参照しながら説明したように、キーフレーム:0〜キーフレーム:m、ここでmは非負整数、がフレーム:n+1と比較されて、フレーム:n+1に関連付けられた重複率が決定され得る。たとえば、キーフレーム:0は、フレーム:n+1と比較されて第1の重複率が決定され、キーフレーム:1は、フレーム:n+1と比較されて第2の重複率が決定され、キーフレーム:mは、フレーム:n+1と比較されて第3の重複率が決定され得る。第2の動作モード/処理スレッドは、第1の動作モード/処理スレッドにおいて推定されたカメラ姿勢に基づいて、キーフレーム:0からキーフレーム:mまでの間で最も類似するキーフレームを決定するように構成される。特定の実装形態では、最も類似するキーフレームは、第1の重複率から第3の重複率までの間から識別された最高の重複率の値に基づいて選択される。最高の重複率の値が重複率しきい値を満足しない場合、新しいキーフレームは生成されない。たとえば、図6に示すように、フレーム:n+1は、キーフレーム:0からキーフレーム:mまでとはかなり異なっており(それによって、重複率は重複率しきい値を満足せず)、それゆえ、キーフレーム:m+1で示される新しいキーフレームが、フレーム:n+1に基づいて生成される。フレーム:n+1に関連付けられたカメラ姿勢推定値が、第1の動作モード/処理スレッドにおける今後の比較に使用するために、フレーム:n+1に関連付けられた精細化されたカメラ姿勢推定値を反映するように更新されてよい。
図7を参照すると、カメラ姿勢を推定するステップの一部としてフレームエラーを決定するステップを含む動作を実行する方法の特定の実施形態が示され、全体的に700で表される。たとえば、動作は、図2の1つまたは複数の比較器220および/または図4〜図6の第1の処理スレッドによって実行されてよい。図7の実施形態では、基準画像702が、「現在の」画像704と比較される。「現在の」画像704は、カメラ姿勢情報が推定されている画像であってよい。したがって、「現在の」画像704は、直近に取り込まれた画像フレームに対応し得る。基準画像702は、前に取り込まれた画像フレームか、または前に取り込まれた画像フレームに基づいて生成/記憶されたキーフレームに対応し得る。説明のために、図5を参照すると、現在の画像704はフレーム:3に対応し、基準画像702はフレーム:2またはキーフレーム:0に対応し得る。別の例として、現在の画像704はフレーム:6に対応し、基準画像702はフレーム:5またはキーフレーム:1に対応し得る。
図7に示すように、現在の画像704は曲げられて、曲げられた現在の画像706が生成され得る。現在の画像704は、曲げプロセスが完了した後、曲げられた現在の画像706が、基準画像702を詳細に近似するように曲げられてよい。基準画像702は、曲げられた現在の画像706と比較されてよい。たとえば、減算演算が、基準画像702と曲げられた現在の画像706との間で実行されて、エラー画像708が生成され得る。エラー画像708は、基準画像702と曲げられた現在の画像706との間のピクセル強度および/または深度のエラーを示す。ピクセル強度および深度のエラーは、下式
で表され得るコスト関数Cにおいて使用されてよい。
上式において、Iは、特定の画像フレームに対応するピクセル強度画像を表す。変数Pは、特定の画像フレームに対応する深度画像から測定された3D点を表す。変数nは、深度画像からの法線(たとえば、法線値)を表す。関数π()は、カメラ投影モデルを表す。変数εは、ユークリッドse(3)空間(Euclidian se(3) space)内の6×1ベクトルを表す。関数T(ε)は、se(3)空間からSE(3)空間への変換を表す。関数
は、SE(3)変換を特定の点に適用する。
コスト関数Cの結果は、図2の1つまたは複数の比較器220によってコストしきい値と比較されてよい。その結果がコストしきい値を満足する場合、1つまたは複数のカメラ姿勢推定器208は、カメラ姿勢推定値を生成し、カメラ姿勢推定値を現在の画像704に関連付けてよい。その結果がコストしきい値を満足しない場合、現在の画像704は再び曲げられ、修正された曲げられた現在の画像706が生成されて、ピクセル強度および/または深度のエラーが低減される。
図8を参照すると、一連の画像フレームに基づいて新しいキーフレームを生成するための方法800が示されている。例示的な実施形態では、方法800は、図1のプロセッサ106または図2のプロセッサ206によって実行されてよい。
方法800は、802において、一連の画像フレームのうちの第1の画像フレームを受信するステップを含む。たとえば、一連の画像フレームは、図1のカメラ102、図2のカメラ202、または図3の画像取り込みデバイス302などの画像取り込みデバイスによって取り込まれてよい。方法800は、804において、第1の画像フレームとキーフレームとの間の重複率を決定するステップをさらに含む。重複率の決定は、第1の画像フレームの第1のピクセル値とキーフレームの第2のピクセル値とのピクセルごとの比較に基づく。たとえば、重複率の決定は、図1の比較器108または図2の1つまたは複数の比較器220によって実行されてよい。重複率は、第1の画像フレームとキーフレームとの間で類似しているピクセルの比、値、または百分率に関連付けられてよい。代替として、重複率は、第1の画像とキーフレーム画像との間で相違しているピクセルの比、値、または百分率に関連付けられてよい。
同じく、方法800は、806において、重複率と重複率しきい値とを比較するステップを含む。たとえば、比較は、図1のキーフレーム生成器110または図2のキーフレーム生成器210によって実行されてよい。方法800は、808において、重複率が重複率しきい値を満足しないことに基づいて、第1の画像フレームを使用して新しいキーフレームを生成するステップをさらに含む。たとえば、重複率しきい値が、第1の画像フレームとキーとの間で類似すべきピクセルのしきいの比、しきいの値またはしきいの百分率に対応するとき、重複率しきい値は、重複率が重複率しきい値以上であることが比較によって示されるときに満足され得る。別の例として、重複率しきい値が、第1の画像フレームとキーとの間で相違すべきピクセルのしきいの比、しきいの値またはしきいの百分率に対応するとき、重複率しきい値は、重複率が重複率しきい値以下であることが比較によって示されるときに満足され得る。新しいキーフレームは、図1のメモリ112に記憶されている新しいキーフレーム111または図2のメモリ212に記憶されている新しいキーフレーム211であってよい。したがって、図8の方法800は、キーフレームの選択的生成を可能にし得、生成されるキーフレームの数が、取り込まれた画像フレームの数より少なくなることが可能になる。より少ないキーフレームを生成することによって、点群データの生成および他の処理動作がより速く(たとえば、画像フレームが取り込まれている速度に対してリアルタイムまたは準リアルタイムで)実行され得る。
図9を参照すると、画像フレームのカメラ姿勢推定値を精細化するための方法900が示されている。例示的な実施形態では、方法900は、図1のプロセッサ106または図2のプロセッサ206によって実行される場合がある。
方法900は、902において、第1の画像フレームと第2の画像フレームとを受信するステップを含む。第1および第2の画像フレームは、図1のカメラ102、図2のカメラ202、または図3の画像取り込みデバイス302などの画像取り込みデバイスから受信されてよい。方法900は、904において、低解像度(たとえば、QQVGA解像度)における第1の画像フレームを使用して第2の画像フレームのカメラ姿勢推定値を計算するステップを含む。カメラ姿勢推定値の生成は、図2の1つまたは複数のカメラ姿勢推定器208によって実行されてよい。カメラ姿勢推定値は、図2の1つまたは複数の比較器220によって実行されてよい、第1の画像フレームと第2の画像フレームとの比較によってもたらされる情報を含むかまたはその情報に基づくことがある。方法900は、906において、第1の画像フレームとキーフレームとの間の重複率を計算するステップをさらに含む。重複率は、図1の比較器108または図2の1つまたは複数の比較器220において計算されてよい。
同じく、方法900は、908において、重複率が重複率しきい値より大きいかどうかを決定するステップを含む。決定は、図1のキーフレーム生成器110または図2のキーフレーム生成器210によって実行されてよい。重複率が重複率しきい値より大きい(たとえば、第1のフレームおよびキーフレームが比較的類似している)場合、方法900は、910において、中解像度(たとえば、QVGA解像度)におけるキーフレームを使用して第2の画像フレームのカメラ姿勢推定値を精細化するステップを含む。第2の画像フレームのカメラ姿勢推定値を精細化した後、方法900は、第1の画像フレームに基づいて新しいキーフレームを生成することなく、新しいセットの画像フレームを用いて繰り返される。特定の実施形態では、新しいセットの画像フレームは、第2の画像フレームと、第2の画像フレームに後続する第3の画像フレームとを含む。
重複率が重複率しきい値より小さい場合、方法900は、912において、中解像度(たとえば、QVGA解像度)における第1の画像フレームを使用して第2の画像フレームのカメラ姿勢推定値を精細化するステップを含む。いくつかの実装形態では、908において、重複率が重複率しきい値に等しいものと決定されると、方法は910に進んでよい。他の実装形態では、908において、重複率が重複率しきい値に等しいものと決定されると、方法は912に進んでよい。方法900は、914において、第1の画像フレームに基づいて新しいキーフレームを生成するステップと、カメラ姿勢推定値を、図1のメモリ112または図2のメモリ212などのメモリに記憶するステップとをさらに含む。新しいキーフレームを生成した後、方法900は、新しいセットの画像フレームを用いて繰り返されてよい。特定の実施形態では、新しいセットの画像フレームは、第2の画像フレームと、第2の画像フレームに後続する第3の画像フレームとを含む。追加の画像フレームが受信されないとき、方法900は終了してよい。
図10を参照すると、特定の画像フレームに対してカメラ姿勢推定値を設定するための方法1000が示されている。例示的な実施形態では、方法1000は、図1のプロセッサ106または図2のプロセッサ206によって実行される場合がある。
方法1000は、1002において、第1の画像フレームのピクセルのサブセットの各ピクセルの法線を計算するステップを含む。各ピクセルの法線は、各ピクセルに対応する接平面に直交する方向を示すベクトルである。ピクセルのサブセットは、高解像度(たとえば、HD)を有する第1の画像フレームの低解像度(たとえば、QQVGA解像度)コピーなど、第1の画像フレームのダウンサンプリングまたはリサイズされたコピーを含んでよい。同じく、方法1000は、1004において、第1の画像フレームを曲げるステップと、得られた曲げられた画像フレームの対応するピクセルと第2の画像フレーム(またはキーフレーム)とを比較するステップとを含む。たとえば、第1の画像フレームは図7の「現在の」画像704に対応し、第2の画像フレームは図7の基準画像702に対応し、曲げられた画像フレームは図7の曲げられた現在の画像706に対応し得る。方法1000は、1006において、曲げられた第1の画像フレームと第2の画像フレーム(またはキーフレーム)との間のピクセル強度エラーおよび深度エラーを計算するステップをさらに含む。ピクセル強度エラーまたは深度エラーは、図7のエラー画像708によって示されてよい。
方法1000は、1008において、ピクセル強度エラーおよび深度エラーに基づいてコスト関数を計算するステップをさらに含む。コスト関数は、図7に関して本明細書で説明した式によって表されてよい。方法1000は、1010において、コスト関数の結果がコストしきい値を満足するかどうかを決定するステップをさらに含む。その結果がコストしきい値を満足しない場合、方法1000は1004に戻り、第1の画像フレームが再び曲げられる。その結果がコストしきい値を満足する場合、1012において、カメラ姿勢推定値が設定される。
図11を参照すると、カメラ姿勢を推定し、精細化されたカメラ姿勢を推定するための方法1100が示されている。方法1100は、1102において、一連の画像フレームのうちの第1の画像フレームを取り出すステップを含む。一連の画像フレームは、カメラ102、カメラ202、または画像取り込みデバイス302などの画像取り込みデバイスを用いて取り込まれてよい。同じく、方法1100は、1104において、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢を推定するステップを含み、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。一実施形態では、カメラ姿勢を推定するステップは、図2の1つまたは複数のカメラ姿勢推定器208、図4〜図6の第1の動作モード/処理スレッド、またはそれらの任意の組合せによって実行されてよい。方法1100は、1106において、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢を推定するステップをさらに含む。キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応し得る。一実施形態では、精細化されたカメラ姿勢を推定するステップは、図2の1つまたは複数のカメラ姿勢推定器208、図4〜図6の第2の動作モード/処理スレッド、またはそれらの任意の組合せによって実行されてよい。
図8の方法800、図9の方法900、図10の方法1000、図11の方法1100、またはそれらの組合せは、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)などの処理ユニット、デジタル信号プロセッサ(DSP)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せによって実装され得る。一例として、図8の方法800、図9の方法900、図10の方法1000、および図11の方法1100のうちの1つまたは複数は、図12に関して説明するように、命令を実行するプロセッサによって実行されてよい。
図12を参照すると、ワイヤレス通信デバイスなど、電子デバイスの特定の例示的な実施形態のブロック図が示され、全体的に1200で表される。デバイス1200は、メモリ1232に結合された、デジタル信号プロセッサ(DSP)1210などのプロセッサを含む。プロセッサは、図1のプロセッサ106または図2のプロセッサ206を含むかまたは対応することができる。メモリは、図1のメモリ112および/または図2のメモリ212を含むかまたは対応することができる。カメラ1262は、カメラコントローラ1260を介してプロセッサ1210に結合されてよい。例示的な実施形態では、カメラ1262は、図1のカメラ102、図2のカメラ202、または図3の画像取り込みデバイス302に対応する。1つまたは複数の比較器1250は、プロセッサ1210内の1つまたは複数のハードウェアデバイス、プロセッサ1210によって実行可能なソフトウェア命令、またはそれらの組合せを使用して実装されてよい。例示的な実施形態では、1つまたは複数の比較器1250は、図1の比較器108に対応し、図2の1つまたは複数の比較器208に対応し、および/または図6〜図9の方法に従って動作することができる。1つまたは複数の比較器1250は、カメラ姿勢推定論理回路1252および/またはキーフレーム生成論理回路1254を使用してプロセッサ1210によって分析または処理されるべき比較結果(たとえば、複数の画像フレーム間の重複率)を提供してよい。
メモリ1232は、図1〜図11を参照しながら説明した1つまたは複数の動作のうちの全部または一部を実行するためにコンピュータ実行可能命令1256を記憶する、非一過性または非一時的コンピュータ可読媒体であってよい。たとえば、命令1256は、プロセッサ1210によって実行されたとき、プロセッサ1210に、一連の画像フレームのうちの第1の画像フレームを受信することと、第1の画像フレームとキーフレームとの間の、第1の画像フレームの第1のピクセル値とキーフレームの第2のピクセル値とのピクセルごとの比較に基づく、重複率を決定することと、重複率と重複率しきい値とを比較することと、重複率がしきい値を満足しないにことに基づいて第1の画像フレームを使用して新しいキーフレームを生成することとを行わせる命令を含んでよい。重複率がしきい値を満足する場合、新しいキーフレームは生成されない。新しいキーフレームが生成される場合、新しいキーフレームは、キーフレーム1258としてメモリ1232に記憶されてよい。カメラ姿勢推定論理回路1252によって生成されたカメラ姿勢推定値は、カメラ姿勢推定値1259として記憶されてよい。
本開示の実施形態によれば、図1のメモリ112、図2のメモリ212、または図12のメモリ1232などのコンピュータ可読記憶デバイスが開示される。コンピュータ可読記憶デバイスは、図1のプロセッサ106、図2のプロセッサ206、または図12のプロセッサ1210などのプロセッサによって実行されたとき、プロセッサに、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信させる命令を含む。一連の画像フレームは、図1の一連の画像フレーム104または図2の一連の画像フレーム204を含むかまたはそれに対応することができる。同じく、命令は、プロセッサに、第1の画像フレームと第2の画像フレームとを比較することによって第1の画像フレームに対応するカメラ姿勢を推定させ、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。カメラ姿勢は、図2のカメラ姿勢推定値250を含むかまたはそれに対応することができる。命令は、さらに、プロセッサに、第1の画像フレームとキーフレームとを比較することによって第1の画像フレームに対応する精細化されたカメラ姿勢を推定させ、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。精細化されたカメラ姿勢は、図2の精細化されたカメラ姿勢推定値256を含むかまたはそれに対応することができる。
図12は、デジタル信号プロセッサ1210に結合されたディスプレイコントローラ1226およびディスプレイ1228をも示す。コーダ/デコーダ(コーデック)1234も、デジタルシグナルプロセッサ1210に結合することができる。スピーカ1236およびマイクロフォン1238をコーデック1234に結合することができる。
図12は、ワイヤレスインターフェース1240がデジタル信号プロセッサ1210およびアンテナ1242に結合され得ることも示す。特定の実施形態では、プロセッサ1210、ディスプレイコントローラ1226、カメラコントローラ1260、メモリ1232、コーデック1234、およびワイヤレスインターフェース1240は、システムインパッケージまたはシステムオンチップデバイス1222に含まれる。特定の実施形態では、入力デバイス1230および電源1244がシステムオンチップデバイス1222に結合される。その上、ある特定の実施形態では、図12に示されるように、ディスプレイ1228、入力デバイス1230、スピーカ1236、マイクロフォン1238、アンテナ1242、カメラ1262、および電源1244は、システムオンチップデバイス1222の外部にある。しかしながら、ディスプレイ1228、入力デバイス1230、スピーカ1236、マイクロフォン1238、アンテナ1242、カメラ1262、および電源1244の各々は、インターフェースまたはコントローラのようなシステムオンチップデバイス1222の構成要素に結合され得る。
説明する実施形態に関連して、一連の画像フレームのうちの第1の画像フレームを受信するための手段を含んでよいシステムが開示される。画像を受信するための手段は、図1のカメラ102、図2のカメラ202、図3の画像取り込みデバイス302、図12のカメラ1262、一連の画像フレームのうちの第1の画像フレームを受信するように構成された1つまたは複数の他のデバイスもしくは回路、またはそれらの任意の組合せを含んでよい。同じく、システムは、新しいキーフレームを生成するための手段を含んでよい。新しいキーフレームを生成するステップは、第1の画像フレームとキーフレームとの間の、第1の画像フレームの第1のピクセル値とキーフレームの第2のピクセル値とのピクセルごとの比較に基づく、重複率を決定するステップと、重複率と重複率しきい値とを比較するステップと、重複率が重複率しきい値を満足しないことに基づいて第1の画像フレームを使用して新しいキーフレームを生成するステップとを含む。たとえば、新しいキーフレームを生成するための手段は、図1のプロセッサ106、図1のキーフレーム生成器110、図2のプロセッサ206、図2のキーフレーム生成器210、図12のプロセッサ1210(またはキーフレーム生成論理回路1254など、それらの構成要素)、第1の画像フレームとキーフレームとの間の重複率を決定するように構成された1つまたは複数の他のデバイスまたは回路、あるいはそれらの任意の組合せを含んでよい。
説明する実施形態に関連して、装置は、一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するための手段を含んでよい。受信するための手段は、図1の比較器108、図1のキーフレーム生成器110、図2の画像フレームバッファ207、図2の1つまたは複数のカメラ姿勢推定器208、図12のカメラコントローラ1260、一連の画像フレームのうちの1つの画像フレームを受信するように構成された1つまたは複数の他の構造、デバイスもしくは回路、またはそれらの任意の組合せを含んでよい。同じく、装置は、第1の画像フレームと第2の画像フレームとの第1の比較に基づいて、第1の画像フレームに対応するカメラ姿勢を推定するための手段を含んでよく、第2の画像フレームは、一連の画像フレーム内で第1の画像フレームに先行する。カメラ姿勢を推定するための手段は、図2の1つまたは複数のカメラ姿勢推定器208、図12のカメラ姿勢推定論理ユニット1252、カメラ姿勢を推定するように構成された1つまたは複数の他の構造、デバイスもしくは回路、またはそれらの任意の組合せを含んでよい。
装置は、第1の画像フレームとキーフレームとの第2の比較に基づいて、第1の画像フレームに対応する精細化されたカメラ姿勢を推定するための手段をさらに含んでよく、キーフレームは、一連の画像フレーム内で第2の画像フレームに先行する特定の画像フレームに対応する。精細化されたカメラ姿勢を推定するための手段は、図2の1つまたは複数のカメラ姿勢推定器208、図12のカメラ姿勢推定論理ユニット1252、カメラ姿勢を推定するように構成された1つまたは複数の他の構造、デバイスもしくは回路、またはそれらの任意の組合せを含んでよい。
当業者には、さらに、本明細書において開示されている実施形態に関連して説明されている様々な実例論理ブロック、構成、モジュール、回路およびアルゴリズムステップは、電子ハードウェア、プロセッサによって実行されるコンピュータソフトウェアまたはそれらの組合せとして実現することができることが認識されよう。様々な実例構成要素、ブロック、構成、モジュール、回路およびステップは、上では一般にそれらの機能に関して説明されている。そのような機能が、ハードウェアとして実現されるか、プロセッサ実行可能命令として実現されるかは、特定の用途およびシステム全体に課される設計制約によって決まる。当業者は、説明された機能を特定の適用例ごとに様々な方法で実現することができるが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
本明細書で開示する実施形態に関して説明した方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこの2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラム可能読取り専用メモリ(PROM)、消去可能プログラム可能読取り専用メモリ(EPROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野において既知の任意の他の形の非一時的記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体は、プロセッサと一体である場合がある。プロセッサおよび記憶媒体は特定用途向け集積回路(ASIC)内に存在する場合がある。ASICは、コンピューティングデバイスまたはユーザ端末内に存在し得る。代替形態では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別の構成要素として存在する場合がある。
開示された実施形態の上の記載は、当業者が開示された実施形態を作るまたは使用することを可能にするように提供される。これらの実施形態に対する様々な変更は、当業者には容易に明らかになり、本明細書において規定された原理は、本開示の範囲から逸脱することなく、他の実施形態に適用されてもよい。したがって、本開示は、本明細書において示される実施形態に限定されるものではなく、以下の特許請求の範囲によって定義される原理および新規の特徴と一致する可能な最も広い範囲を与えられるべきである。
100 システム
102 カメラ
104 一連の画像フレーム
106 プロセッサ
108 比較器
109 重複率
110 キーフレーム生成器
111 新しいキーフレーム
112 メモリ
114 キーフレーム
116 点群データ
121 第1の画像フレーム
122 第2の画像フレーム
123 第4の画像フレーム
131 重複率しきい値
200 システム
202 カメラ
204 一連の画像フレーム
206 プロセッサ
207 画像フレームバッファ
208 カメラ姿勢推定器
209 重複率
210 キーフレーム生成器
211 新しいキーフレーム
212 メモリ
214 キーフレーム
216 点群データ
220 比較器
221 第1の画像フレーム
222 第2の画像フレーム
223 画像フレーム
242 キーフレーム選択器
250 カメラ姿勢推定値
252 識別されたキーフレーム
256 精細化されたカメラ姿勢
300 システムの動作
302 画像取り込みデバイス
304 経路
306A カメラ姿勢
306B カメラ姿勢
306C カメラ姿勢
306D カメラ姿勢
306E カメラ姿勢
306F カメラ姿勢
307A 部分的3D点群の図
307D 部分的3D点群の図
307F 完了した3D点群の図
310 対象物
310A 部分的3D点群
310D 部分的3D点群
310F 完了した3D点群
400 システムに関連する図
500 400に続く図
600 500に続く図
700 フレームエラーを決定する方法の実施形態
702 基準画像
704 現在の画像
706 曲げられた現在の画像
708 エラー画像
1200 電子デバイスの実施形態
1210 デジタル信号プロセッサ(DSP)
1222 システムオンチップデバイス
1226 ディスプレイコントローラ
1228 ディスプレイ
1230 入力デバイス
1232 メモリ
1234 コーダ/デコーダ(コーデック)
1236 スピーカ
1238 マイクロフォン
1240 ワイヤレスインターフェース
1242 アンテナ
1244 電源
1250 比較器
1252 カメラ姿勢推定論理回路
1254 キーフレーム生成論理回路
1256 コンピュータ実行可能命令
1258 キーフレーム
1259 カメラ姿勢推定値
1260 カメラコントローラ
1262 カメラ

Claims (30)

  1. 一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するステップと、
    前記第1の画像フレームと第2の画像フレームとを比較することによって、前記第1の画像フレームに対応するカメラ姿勢をプロセッサにおいて推定するステップであって、前記第2の画像フレームが、前記一連の画像フレーム内で前記第1の画像フレームに先行する、推定するステップと、
    前記第1の画像フレームとキーフレームとを比較することによって、前記第1の画像フレームに対応する精細化されたカメラ姿勢を前記プロセッサにおいて推定するステップとを含み、前記キーフレームが、前記一連の画像フレーム内で前記第2の画像フレームに先行する特定の画像フレームに対応する、方法。
  2. 前記カメラ姿勢が、前記プロセッサの第1の処理スレッドの一部として推定され、前記精細化されたカメラ姿勢が、前記プロセッサの第2の処理スレッドの一部として推定される、請求項1に記載の方法。
  3. 前記プロセッサが、処理スレッドを並列に実行するように構成され、前記第1の処理スレッドおよび前記第2の処理スレッドが並列に実行される、請求項2に記載の方法。
  4. 前記第1の画像フレームに対応する前記カメラ姿勢を推定するステップが、
    前記第1の画像フレームの取り込みと前記第2の画像フレームの取り込みとの間の、前記画像取り込みデバイスの相対運動の推定値に基づいて前記第1の画像フレームを変換することによって、曲げられたフレームを生成するステップと、
    前記曲げられたフレームの1つまたは複数のピクセルと前記第2の画像フレームの1つまたは複数のピクセルとの間のピクセル強度の差を示すピクセル強度エラーを決定するステップと、
    深度エラーを決定するステップとを含み、前記深度エラーが、前記曲げられたフレームの前記1つまたは複数のピクセルと前記第2の画像フレームの前記1つまたは複数のピクセルとの間の深度の差を示し、前記深度エラーが、前記第2の画像フレームの前記1つまたは複数のピクセルの法線値に基づいて決定される、請求項1に記載の方法。
  5. 前記第1の画像フレームに対応する前記精細化されたカメラ姿勢を推定するステップが、
    前記第1の画像フレームの取り込みと前記キーフレームの取り込みとの間の、前記画像取り込みデバイスの相対運動の推定値に基づいて前記第1の画像フレームを変換することによって、曲げられたフレームを生成するステップと、
    前記曲げられたフレームの1つまたは複数のピクセルと前記キーフレームの1つまたは複数のピクセルとの間のピクセル強度の差を示すピクセル強度エラーを決定するステップと、
    深度エラーを決定するステップとを含み、前記深度エラーが、前記曲げられたフレームの前記1つまたは複数のピクセルと前記キーフレームの前記1つまたは複数のピクセルとの間の深度の差を示し、前記深度エラーが、前記キーフレームの前記1つまたは複数のピクセルの法線値に基づいて決定される、請求項1に記載の方法。
  6. 前記第1の画像フレームと前記キーフレームとの間の、前記第1の画像フレームの第1のピクセル値と前記キーフレームの第2のピクセル値とのピクセルごとの比較に基づく、重複率を前記プロセッサにおいて決定するステップと、
    前記重複率と重複率しきい値とを比較して比較結果を生成するステップと、
    前記第1の画像フレームおよび前記キーフレームが相違していることを示す前記比較結果に基づいて前記第1の画像フレームを使用して新しいキーフレームを生成するステップとをさらに含む、請求項1に記載の方法。
  7. 前記新しいキーフレームを生成するステップが、メモリ内の前記第1の画像フレームに対応するコピー画像フレームを生成するステップを含み、前記コピー画像フレームが、前記新しいキーフレームとして指定される、請求項6に記載の方法。
  8. 前記第1のピクセル値が、深度値、測光値、またはそれらの組合せを含む、請求項6に記載の方法。
  9. 前記精細化されたカメラ姿勢および前記一連の画像フレームを使用して3次元点群を生成するステップをさらに含む、請求項1に記載の方法。
  10. 前記一連の画像フレームのうちの1つまたは複数の追加の画像フレームを前記画像取り込みデバイスから受信するステップと、
    前記1つまたは複数の追加の画像フレームに基づいて前記3次元点群を更新するステップとをさらに含み、前記3次元点群を更新するレートが、前記1つまたは複数の追加の画像フレームを受信するレートに実質的に等しい、請求項9に記載の方法。
  11. 前記カメラ姿勢が、前記第1の画像フレームが取り込まれた特定の時間における、前記画像取り込みデバイスの位置の近似値を示す、請求項1に記載の方法。
  12. 前記第1の画像フレームが第1の解像度を有し、前記キーフレームがキーフレーム解像度を有し、前記第1の解像度が前記キーフレーム解像度と異なる、請求項1に記載の方法。
  13. プロセッサと、
    命令を記憶するメモリとを備え、前記命令が、前記プロセッサに、
    一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信することと、
    前記第1の画像フレームと第2の画像フレームとの第1の比較に基づいて前記第1の画像フレームに対応するカメラ姿勢を推定することであって、前記第2の画像フレームが前記一連の画像フレーム内で前記第1の画像フレームに先行する、推定することと、
    前記第1の画像フレームとキーフレームとの第2の比較に基づいて前記第1の画像フレームに対応する精細化されたカメラ姿勢を推定することとを行わせることを、前記プロセッサによって実行可能であり、前記キーフレームが、前記一連の画像フレーム内で前記第2の画像フレームに先行する特定の画像フレームに対応する、装置。
  14. 前記カメラ姿勢が、前記プロセッサの第1の処理スレッドの一部として推定され、前記精細化されたカメラ姿勢が、前記プロセッサの第2の処理スレッドの一部として推定される、請求項13に記載の装置。
  15. 前記命令が、前記プロセッサに、キーフレームのセットから前記キーフレームを選択させることをさらに実行可能であり、前記キーフレームが、前記推定されたカメラ姿勢に基づいて選択される、請求項14に記載の装置。
  16. 前記命令が、前記プロセッサに、前記第1の画像フレームを変換して曲げられたフレームを生成させることをさらに実行可能であり、前記第1の画像フレームが、前記画像取り込みデバイスと前記第2の画像フレームに対応する座標との間の相対運動の推定値に基づいて変換される、請求項13に記載の装置。
  17. 前記命令が、前記プロセッサに、前記曲げられたフレームの1つまたは複数のピクセルと前記第2の画像フレームの1つまたは複数のピクセルとの間のピクセル強度の差を示す、ピクセル強度エラーを決定させることをさらに実行可能である、請求項16に記載の装置。
  18. 前記命令が、前記プロセッサに、深度エラーを決定させることをさらに実行可能であり、前記深度エラーが、前記曲げられたフレームの1つまたは複数のピクセルと前記第2の画像フレームの1つまたは複数のピクセルとの間の深度の差を示し、前記深度エラーが、前記第2の画像フレームの前記1つまたは複数のピクセルの法線値に基づいて決定される、請求項16に記載の装置。
  19. 前記命令が、前記プロセッサに、前記第1の画像フレームとキーフレームとの間の重複率を決定させることをさらに実行可能である、請求項13に記載の装置。
  20. 前記重複率が、前記第1の画像フレームの第1のピクセル値と前記キーフレームの第2のピクセル値とのピクセルごとの比較に基づく、請求項19に記載の装置。
  21. 前記命令が、前記プロセッサに、前記重複率と重複率しきい値との比較に基づく結果を生成させることをさらに実行可能である、請求項19に記載の装置。
  22. 前記命令が、前記プロセッサに、前記第1の画像フレームが前記キーフレームに類似していないことを示す前記結果に基づいて、前記第1の画像フレームを使用して新しいキーフレーム生成させることをさらに実行可能である、請求項21に記載の装置。
  23. 命令を記憶するコンピュータ可読記憶デバイスであって、前記命令が、プロセッサによって実行されたとき、前記プロセッサに、
    一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信することと、
    前記第1の画像フレームと第2の画像フレームとの第1の比較に基づいて前記第1の画像フレームに対応するカメラ姿勢を推定することであって、前記第2の画像フレームが前記一連の画像フレーム内で前記第1の画像フレームに先行する、推定することと、
    前記第1の画像フレームとキーフレームとの第2の比較に基づいて前記第1の画像フレームに対応する精細化されたカメラ姿勢を推定することとを行わせ、前記キーフレームが、前記一連の画像フレーム内で前記第2の画像フレームに先行する特定の画像フレームに対応する、コンピュータ可読記憶デバイス。
  24. 前記カメラ姿勢が、前記プロセッサの第1の処理スレッドの一部として推定され、前記精細化されたカメラ姿勢が、前記プロセッサの第2の処理スレッドの一部として推定され、前記第1の処理スレッドおよび前記第2の処理スレッドが並列に実行される、請求項23に記載のコンピュータ可読記憶デバイス。
  25. 前記命令が、前記プロセッサによって実行されたとき、さらに前記プロセッサに、前記一連の画像フレームに基づいて3次元点群を生成させ、前記3次元点群を生成するレートが、前記一連の画像フレームを受信するレートに実質的に等しい、請求項23に記載のコンピュータ可読記憶デバイス。
  26. 一連の画像フレームのうちの第1の画像フレームを画像取り込みデバイスから受信するための手段と、
    前記第1の画像フレームと第2の画像フレームとの第1の比較に基づいて前記第1の画像フレームに対応するカメラ姿勢を推定するための手段であって、前記第2の画像フレームが前記一連の画像フレーム内で前記第1の画像フレームに先行する、推定するための手段と、
    前記第1の画像フレームとキーフレームとの第2の比較に基づいて前記第1の画像フレームに対応する精細化されたカメラ姿勢を推定するための手段とを含み、前記キーフレームが、前記一連の画像フレーム内で前記第2の画像フレームに先行する特定の画像フレームに対応する、装置。
  27. 前記第1の画像フレームと前記第2の画像フレームとの前記第1の比較を実行するための手段と、
    前記第1の画像フレームと前記キーフレームとの前記第2の比較を実行するための手段とをさらに含む、請求項26に記載の装置。
  28. キーフレームのセットから前記キーフレームを選択するための手段をさらに含む、請求項26に記載の装置。
  29. 前記第1の画像フレームに基づいて新しいキーフレームを生成するための手段をさらに含む、請求項26に記載の装置。
  30. 前記精細化されたカメラ姿勢および前記一連の画像フレームを使用して3次元点群を生成するための手段をさらに含む、請求項26に記載の装置。
JP2017514464A 2014-09-19 2015-06-30 姿勢推定のシステムおよび方法 Ceased JP2017529620A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/491,857 2014-09-19
US14/491,857 US9607388B2 (en) 2014-09-19 2014-09-19 System and method of pose estimation
PCT/US2015/038582 WO2016043827A1 (en) 2014-09-19 2015-06-30 System and method of pose estimation

Publications (2)

Publication Number Publication Date
JP2017529620A true JP2017529620A (ja) 2017-10-05
JP2017529620A5 JP2017529620A5 (ja) 2018-07-26

Family

ID=53765533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017514464A Ceased JP2017529620A (ja) 2014-09-19 2015-06-30 姿勢推定のシステムおよび方法

Country Status (6)

Country Link
US (1) US9607388B2 (ja)
EP (1) EP3175427B1 (ja)
JP (1) JP2017529620A (ja)
KR (1) KR20170056563A (ja)
CN (1) CN106688013B (ja)
WO (1) WO2016043827A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021511563A (ja) * 2018-01-19 2021-05-06 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 点群処理

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014082541A (ja) * 2012-10-12 2014-05-08 National Institute Of Information & Communication Technology 互いに類似した情報を含む複数画像のデータサイズを低減する方法、プログラムおよび装置
US9589362B2 (en) 2014-07-01 2017-03-07 Qualcomm Incorporated System and method of three-dimensional model generation
GB2536493B (en) * 2015-03-20 2020-11-18 Toshiba Europe Ltd Object pose recognition
US20160314569A1 (en) * 2015-04-23 2016-10-27 Ilya Lysenkov Method to select best keyframes in online and offline mode
US9911242B2 (en) 2015-05-14 2018-03-06 Qualcomm Incorporated Three-dimensional model generation
US10304203B2 (en) 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
US10373366B2 (en) 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation
WO2017011753A1 (en) * 2015-07-15 2017-01-19 Massachusetts Institute Of Technology System and method for providing reconstruction of human surfaces from orientation data
CN109074660B (zh) * 2015-12-31 2022-04-12 Ml 荷兰公司 单目相机实时三维捕获和即时反馈的方法和系统
JP6775969B2 (ja) * 2016-02-29 2020-10-28 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US10989542B2 (en) 2016-03-11 2021-04-27 Kaarta, Inc. Aligning measured signal data with slam localization data and uses thereof
US11573325B2 (en) 2016-03-11 2023-02-07 Kaarta, Inc. Systems and methods for improvements in scanning and mapping
EP3427008B1 (en) 2016-03-11 2022-09-07 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
US11567201B2 (en) 2016-03-11 2023-01-31 Kaarta, Inc. Laser scanner with real-time, online ego-motion estimation
CN107077140B (zh) 2016-03-28 2018-11-30 深圳市大疆创新科技有限公司 无人飞行器的悬停控制方法、控制系统和无人飞行器
US10192347B2 (en) * 2016-05-17 2019-01-29 Vangogh Imaging, Inc. 3D photogrammetry
WO2017203774A1 (ja) * 2016-05-26 2017-11-30 ソニー株式会社 情報処理装置、情報処理方法及び記憶媒体
CN109475386B (zh) * 2016-06-30 2021-10-26 皇家飞利浦有限公司 内部设备跟踪系统以及操作其的方法
US10380762B2 (en) 2016-10-07 2019-08-13 Vangogh Imaging, Inc. Real-time remote collaboration and virtual presence using simultaneous localization and mapping to construct a 3D model and update a scene based on sparse data
US10341568B2 (en) 2016-10-10 2019-07-02 Qualcomm Incorporated User interface to assist three dimensional scanning of objects
SG10202110833PA (en) * 2017-03-29 2021-11-29 Agency Science Tech & Res Real time robust localization via visual inertial odometry
US10467756B2 (en) 2017-05-14 2019-11-05 International Business Machines Corporation Systems and methods for determining a camera pose of an image
WO2019045724A1 (en) * 2017-08-31 2019-03-07 Sony Mobile Communications Inc. METHODS, DEVICES AND COMPUTER PROGRAM PRODUCTS FOR GENERATING 3D IMAGES
US11257250B2 (en) 2017-10-31 2022-02-22 Outward, Inc. Blended physical and virtual realities
US10628965B2 (en) 2017-11-17 2020-04-21 Qualcomm Incorporated Systems and methods for illuminant-invariant model estimation
WO2019099605A1 (en) 2017-11-17 2019-05-23 Kaarta, Inc. Methods and systems for geo-referencing mapping systems
WO2019100011A1 (en) 2017-11-17 2019-05-23 Divine Logic, Inc. Systems and methods for tracking items
US10839585B2 (en) 2018-01-05 2020-11-17 Vangogh Imaging, Inc. 4D hologram: real-time remote avatar creation and animation control
WO2019165194A1 (en) * 2018-02-23 2019-08-29 Kaarta, Inc. Methods and systems for processing and colorizing point clouds and meshes
US11210804B2 (en) * 2018-02-23 2021-12-28 Sony Group Corporation Methods, devices and computer program products for global bundle adjustment of 3D images
US11080540B2 (en) 2018-03-20 2021-08-03 Vangogh Imaging, Inc. 3D vision processing using an IP block
US10810783B2 (en) 2018-04-03 2020-10-20 Vangogh Imaging, Inc. Dynamic real-time texture alignment for 3D models
US11170224B2 (en) 2018-05-25 2021-11-09 Vangogh Imaging, Inc. Keyframe-based object scanning and tracking
WO2020009826A1 (en) 2018-07-05 2020-01-09 Kaarta, Inc. Methods and systems for auto-leveling of point clouds and 3d models
EP3591605A1 (en) * 2018-07-06 2020-01-08 Facebook Technologies, LLC Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit
US10916031B2 (en) 2018-07-06 2021-02-09 Facebook Technologies, Llc Systems and methods for offloading image-based tracking operations from a general processing unit to a hardware accelerator unit
FR3087036B1 (fr) * 2018-10-03 2021-06-25 Soletanche Freyssinet Procede de texturation d'un modele 3d
US10885657B2 (en) * 2018-10-31 2021-01-05 Disney Enterprises, Inc. Configuration for indicating image capture device position
CN111127524A (zh) * 2018-10-31 2020-05-08 华为技术有限公司 一种轨迹跟踪与三维重建方法、系统及装置
CN111161348B (zh) * 2018-11-08 2023-12-05 深圳市优必选科技有限公司 一种基于单目相机的物体位姿估计方法、装置及设备
US11308639B2 (en) * 2019-03-12 2022-04-19 Volvo Car Corporation Tool and method for annotating a human pose in 3D point cloud data
CN110059651B (zh) * 2019-04-24 2021-07-02 北京计算机技术及应用研究所 一种相机实时跟踪注册方法
US11232633B2 (en) 2019-05-06 2022-01-25 Vangogh Imaging, Inc. 3D object capture and object reconstruction using edge cloud computing resources
US11170552B2 (en) 2019-05-06 2021-11-09 Vangogh Imaging, Inc. Remote visualization of three-dimensional (3D) animation with synchronized voice in real-time
US11064096B2 (en) * 2019-12-13 2021-07-13 Sony Corporation Filtering and smoothing sources in camera tracking
US11335063B2 (en) 2020-01-03 2022-05-17 Vangogh Imaging, Inc. Multiple maps for 3D object scanning and reconstruction
CN111539988B (zh) * 2020-04-15 2024-04-09 京东方科技集团股份有限公司 一种视觉里程计实现方法、装置和电子设备
CN113709441B (zh) * 2020-05-22 2023-05-02 杭州海康威视数字技术股份有限公司 一种扫描设备、相机的位姿确定方法、装置及电子设备
US11321859B2 (en) * 2020-06-22 2022-05-03 Toyota Research Institute, Inc. Pixel-wise residual pose estimation for monocular depth estimation
CN111928861B (zh) * 2020-08-07 2022-08-09 杭州海康威视数字技术股份有限公司 地图构建方法及装置
CN112288816B (zh) * 2020-11-16 2024-05-17 Oppo广东移动通信有限公司 位姿优化方法、位姿优化装置、存储介质与电子设备
CN112837424B (zh) * 2021-02-04 2024-02-06 脸萌有限公司 图像处理方法、装置、设备和计算机可读存储介质
CN115278326A (zh) * 2021-04-29 2022-11-01 腾讯科技(深圳)有限公司 视频展示方法、装置、计算机可读介质及电子设备

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3907783B2 (ja) 1996-12-12 2007-04-18 富士フイルム株式会社 色変換方法
WO1999026198A2 (en) 1997-11-14 1999-05-27 National University Of Singapore System and method for merging objects into an image sequence without prior knowledge of the scene in the image sequence
US6297825B1 (en) 1998-04-06 2001-10-02 Synapix, Inc. Temporal smoothing of scene analysis data for image sequence generation
US6281904B1 (en) 1998-06-09 2001-08-28 Adobe Systems Incorporated Multi-source texture reconstruction and fusion
US6469710B1 (en) 1998-09-25 2002-10-22 Microsoft Corporation Inverse texture mapping using weighted pyramid blending
EP1022654A3 (en) * 1999-01-14 2001-02-14 Interuniversitair Microelektronica Centrum Vzw Concurrent timed digital system design method and environment
US6487304B1 (en) * 1999-06-16 2002-11-26 Microsoft Corporation Multi-view approach to motion and stereo
US6476803B1 (en) 2000-01-06 2002-11-05 Microsoft Corporation Object modeling system and process employing noise elimination and robust surface extraction techniques
US6750873B1 (en) 2000-06-27 2004-06-15 International Business Machines Corporation High quality texture reconstruction from multiple scans
GB2377870B (en) 2001-05-18 2005-06-29 Canon Kk Method and apparatus for generating confidence data
US7215813B2 (en) 2001-12-03 2007-05-08 Apple Computer, Inc. Method and apparatus for color correction
DE60233174D1 (de) * 2002-09-06 2009-09-10 Nokia Corp Verfahren und system zur schätzung der position einer mobilen einrichtung
US7418574B2 (en) 2002-10-31 2008-08-26 Lockheed Martin Corporation Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction
US7570791B2 (en) 2003-04-25 2009-08-04 Medtronic Navigation, Inc. Method and apparatus for performing 2D to 3D registration
US7272264B2 (en) 2003-09-11 2007-09-18 International Business Machines Corporation System and method for hole filling in 3D models
US20050140670A1 (en) 2003-11-20 2005-06-30 Hong Wu Photogrammetric reconstruction of free-form objects with curvilinear structures
US7205998B2 (en) 2004-06-23 2007-04-17 Microsoft Corporation System and process for optimal texture map reconstruction from multiple views
CN100389430C (zh) * 2006-06-13 2008-05-21 北京中星微电子有限公司 基于aam的头部姿态实时估算方法及系统
US8538166B2 (en) 2006-11-21 2013-09-17 Mantisvision Ltd. 3D geometric modeling and 3D video content creation
US8773425B2 (en) 2007-05-01 2014-07-08 M.E.P. CAD Inc. Methods and apparatuses for proposing resolutions to conflicts in a CAD drawing with reflections
JP5011224B2 (ja) 2008-07-09 2012-08-29 日本放送協会 任意視点映像生成装置及び任意視点映像生成プログラム
EP2545411B1 (en) 2009-12-11 2014-02-12 DigitalOptics Corporation Europe Limited Panorama imaging
US8471890B1 (en) * 2009-12-30 2013-06-25 Insors Integrated Communications Adaptive video communication channel
US8619122B2 (en) 2010-02-02 2013-12-31 Microsoft Corporation Depth camera compatibility
US8918209B2 (en) 2010-05-20 2014-12-23 Irobot Corporation Mobile human interface robot
US8811699B2 (en) 2010-09-22 2014-08-19 Siemens Aktiengesellschaft Detection of landmarks and key-frames in cardiac perfusion MRI using a joint spatial-temporal context model
US8149268B1 (en) 2010-11-05 2012-04-03 The United States Of America As Represented By The Secretary Of The Army System and method for determining three-dimensional information from two-dimensional images
US9235894B2 (en) * 2011-01-27 2016-01-12 Metaio Gmbh Method for determining correspondences between a first and a second image, and method for determining the pose of a camera
US8587583B2 (en) 2011-01-31 2013-11-19 Microsoft Corporation Three-dimensional environment reconstruction
JPWO2012121052A1 (ja) * 2011-03-08 2014-07-17 ソニー株式会社 画像処理装置、画像処理方法、及び、プログラム
US20120300020A1 (en) * 2011-05-27 2012-11-29 Qualcomm Incorporated Real-time self-localization from panoramic images
US8494554B2 (en) * 2011-06-03 2013-07-23 Apple Inc. Mobile device location estimation
US8879828B2 (en) 2011-06-29 2014-11-04 Matterport, Inc. Capturing and aligning multiple 3-dimensional scenes
US9336625B2 (en) 2011-10-25 2016-05-10 Microsoft Technology Licensing, Llc Object refinement using many data sets
CN102364953A (zh) 2011-11-08 2012-02-29 北京新岸线网络技术有限公司 立体图像颜色校正方法及装置
JP5269972B2 (ja) 2011-11-29 2013-08-21 株式会社東芝 電子機器及び三次元モデル生成支援方法
AU2011253973B2 (en) * 2011-12-12 2015-03-12 Canon Kabushiki Kaisha Keyframe selection for parallel tracking and mapping
US9141196B2 (en) 2012-04-16 2015-09-22 Qualcomm Incorporated Robust and efficient learning object tracker
US20130286161A1 (en) 2012-04-25 2013-10-31 Futurewei Technologies, Inc. Three-dimensional face recognition for mobile devices
US20130293686A1 (en) 2012-05-03 2013-11-07 Qualcomm Incorporated 3d reconstruction of human subject using a mobile device
US9514539B2 (en) 2012-05-09 2016-12-06 Laboratoires Bodycad Inc. Segmentation of magnetic resonance imaging data
WO2013174671A1 (en) 2012-05-22 2013-11-28 Telefonica, S.A. A method and a system for generating a realistic 3d reconstruction model for an object or being
US9621869B2 (en) 2012-05-24 2017-04-11 Sony Corporation System and method for rendering affected pixels
US9147122B2 (en) 2012-05-31 2015-09-29 Qualcomm Incorporated Pose estimation based on peripheral information
US9420265B2 (en) 2012-06-29 2016-08-16 Mitsubishi Electric Research Laboratories, Inc. Tracking poses of 3D camera using points and planes
US8831290B2 (en) * 2012-08-01 2014-09-09 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of vehicle-mounted cameras for in-road obstacle detection
US10674135B2 (en) * 2012-10-17 2020-06-02 DotProduct LLC Handheld portable optical scanner and method of using
GB2499694B8 (en) 2012-11-09 2017-06-07 Sony Computer Entertainment Europe Ltd System and method of image reconstruction
US9317972B2 (en) 2012-12-18 2016-04-19 Qualcomm Incorporated User interface for augmented reality enabled devices
US9336629B2 (en) 2013-01-30 2016-05-10 F3 & Associates, Inc. Coordinate geometry augmented reality process
US9654761B1 (en) 2013-03-15 2017-05-16 Google Inc. Computer vision algorithm for capturing and refocusing imagery
US9269003B2 (en) * 2013-04-30 2016-02-23 Qualcomm Incorporated Diminished and mediated reality effects from reconstruction
US9886797B2 (en) 2013-08-13 2018-02-06 Boston Scientific Scimed, Inc. Comparative analysis of anatomical items
AU2013237718A1 (en) 2013-10-04 2015-04-23 Canon Kabushiki Kaisha Method, apparatus and system for selecting a frame
TWI530909B (zh) 2013-12-31 2016-04-21 財團法人工業技術研究院 影像合成系統及方法
US9589362B2 (en) 2014-07-01 2017-03-07 Qualcomm Incorporated System and method of three-dimensional model generation
US10915161B2 (en) 2014-12-11 2021-02-09 Intel Corporation Facilitating dynamic non-visual markers for augmented reality on computing devices
US20160232715A1 (en) 2015-02-10 2016-08-11 Fangwei Lee Virtual reality and augmented reality control with mobile devices
US9911242B2 (en) 2015-05-14 2018-03-06 Qualcomm Incorporated Three-dimensional model generation
US10304203B2 (en) 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
US10373366B2 (en) 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021511563A (ja) * 2018-01-19 2021-05-06 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 点群処理
US11900639B2 (en) 2018-01-19 2024-02-13 Interdigital Vc Holdings, Inc. Processing a point cloud
JP7448760B2 (ja) 2018-01-19 2024-03-13 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 点群処理

Also Published As

Publication number Publication date
EP3175427A1 (en) 2017-06-07
KR20170056563A (ko) 2017-05-23
US20160086336A1 (en) 2016-03-24
US9607388B2 (en) 2017-03-28
CN106688013A (zh) 2017-05-17
EP3175427B1 (en) 2017-12-06
WO2016043827A1 (en) 2016-03-24
CN106688013B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN106688013B (zh) 姿态估算的系统和方法
US10284789B2 (en) Dynamic generation of image of a scene based on removal of undesired object present in the scene
US10839547B2 (en) Camera pose determination and tracking
CN110322542B (zh) 重建真实世界3d场景的视图
TWI543610B (zh) 電子裝置及其影像選擇方法
JP2021192250A (ja) 単眼カメラを用いたリアルタイム3d捕捉およびライブフィードバックのための方法およびシステム
US10580148B2 (en) Graphical coordinate system transform for video frames
KR20190127838A (ko) 카메라 자세 정보를 결정하기 위한 방법, 장치 및 디바이스, 그리고 저장 매체
WO2019042419A1 (zh) 图像跟踪点获取方法、设备及存储介质
WO2019212749A1 (en) Stabilizing video to reduce camera and face movement
WO2012033768A2 (en) Efficient information presentation for augmented reality
WO2013112237A1 (en) Mobile device configured to compute 3d models based on motion sensor data
US11044398B2 (en) Panoramic light field capture, processing, and display
US10122912B2 (en) Device and method for detecting regions in an image
WO2017014915A1 (en) Consistent tessellation via topology-aware surface tracking
KR20200000106A (ko) 객체의 3차원 모델을 복원하는 방법 및 장치
CN112487979A (zh) 目标检测方法和模型训练方法、装置、电子设备和介质
US10909764B2 (en) Providing augmented reality target images in a web browser
CN109919190B (zh) 直线段匹配方法、装置、存储介质及终端
US9984436B1 (en) Method and system for real-time equirectangular projection
JP2019106008A (ja) 推定装置、推定方法、及び推定プログラム
WO2017096859A1 (zh) 照片的处理方法及装置
CN112085842A (zh) 深度值确定方法及装置、电子设备和存储介质
JP2008203991A (ja) 画像処理装置
WO2023179342A1 (zh) 重定位方法及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190606

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190617

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20191028