JP5491611B2 - 並列追跡及びマッピングのためのキーフレーム選択 - Google Patents

並列追跡及びマッピングのためのキーフレーム選択 Download PDF

Info

Publication number
JP5491611B2
JP5491611B2 JP2012269788A JP2012269788A JP5491611B2 JP 5491611 B2 JP5491611 B2 JP 5491611B2 JP 2012269788 A JP2012269788 A JP 2012269788A JP 2012269788 A JP2012269788 A JP 2012269788A JP 5491611 B2 JP5491611 B2 JP 5491611B2
Authority
JP
Japan
Prior art keywords
image
camera
marker
calibration marker
marker pattern
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
JP2012269788A
Other languages
English (en)
Other versions
JP2013127783A (ja
Inventor
ミン レオン カ
リディングトン サイモン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Publication of JP2013127783A publication Critical patent/JP2013127783A/ja
Application granted granted Critical
Publication of JP5491611B2 publication Critical patent/JP5491611B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • 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/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic 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/30204Marker
    • G06T2207/30208Marker matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Studio Devices (AREA)

Description

本発明は、一般に拡張現実(AR)システムに関し、特に、正確で信頼性の高いマップの生成及びカメラ位置の判定に使用するために画像シーケンスからキーフレームを選択することに関する。更に、本発明は、拡張現実システムの座標系を構成するのに使用するために複数の画像から第1の画像を選択する方法及び装置に関する。本発明は、拡張現実システムの座標系を構成するのに使用するために複数の画像から第1の画像を選択するためのコンピュータプログラムが記録されているコンピュータ可読媒体を含むコンピュータプログラムにも関する。
拡張現実(AR)は、現実世界とコンピュータで生成されたデータとの組み合わせを扱う研究分野であり、コンピュータグラフィックスオブジェクトがリアルタイムで現実の場面に混入される。拡張現実画像撮像システムの大半は、ユーザの環境に関する所定の情報によって(すなわち、何らかのマップの形態で)動作する。ユーザは所定の情報に基づいて環境と対話できる。提供されるマップがわかりやすいものである場合、マップから直接登録を実行可能であるが、これは、カメラを利用する拡張現実追跡で使用される一般的な方法である。わかりやすいマップを作成するのは残念ながら難しく、長い時間を要する。そのようなマップは、多くの場合、熟練した技術者により手作業で作成され、一般に最小化方法により最適化されない限り、マップは十分に正確であるとはいえない。この最小化方法に必要とされる演算の負担も大きい。
並列追跡及びマッピング(PTAM)は、従来のマップを必要とせずにシーンにおけるリアルタイム追跡を実行するために特にカメラなどのハンドヘルドデバイスで使用されるアルゴリズムである。ユーザは、まず追跡すべき作業空間の上方にカメラを配置し、キーを押下することにより、マップ初期化のための初期キーフレームを選択する。通常、初期キーフレームから約1,000の自然特徴が抽出され、後続フレームに渡って追跡される。次に、ユーザは、わずかに離れた位置へカメラをスムーズに平行移動し、2度目にキーを押下することにより第2のキーフレームを撮像する。その後、相対カメラ姿勢を推定し且つ選択されたキーフレーム及び追跡される特徴対応を使用して三角測量により初期マップを作成するために、周知の5点姿勢アルゴリズムが使用される。
5点姿勢アルゴリズムの欠点の1つは、マップ初期設定中にユーザとの対話が要求されることである。ユーザによっては、三角測量に必要とされる立体基線条件を理解できず、単なる回転を使用してカメラなどを初期設定しようとする場合もある。更に、5点姿勢アルゴリズムでは、長い時間中断なく特徴を追跡する必要がある。特徴は偶発的なカメラの回転や急激なカメラの移動により一致せず、その結果、マップ初期設定に利用可能な追跡特徴はほとんど得られなくなる。シーンにおけるリアルタイム追跡を実行する別の方法は、ユーザが当初は平面的なシーンを見ていると仮定する。初期キーフレームを選択した後にユーザがカメラを移動させるにつれて、フレームごとに一致した特徴から現在のフレームと初期キーフレームとの間のホモグラフィ仮説が生成される。その後、各ホモグラフィ仮説は、2つ以上の可能な3次元(3D)カメラ姿勢に分解される。条件数に基づいて第2のキーフレームが選択される。分解に至る8自由度(DOF)の変化に関する各点の投影の偏導関数のヤコビ行列をJとするとき、条件数は、情報行列JJの最小固有値と最大固有値との比である。条件数は、分解の際のパラメータに関する誤差の尺度を示すだけであり、3Dマップ点の精度に直接関連しているわけではないので、このような方法も最適ではない。
シーンにおけるリアルタイム追跡を実行する別の方法は、GRIC(Geometric Robust Information Criterion)モデルに基づくモデルベースの方法である。このようなモデルベースの方法では、初期キーフレームと現在のフレームとの間の特徴対応に基づいてGRICスコアが計算される。フレームごとに、2つのモデル(すなわちエピポーラ及びホモグラフィ)の各々に対してスコアが計算される。ホモグラフィモデルは、小さな基線によって立体画像の対応を最もよく記述する。エピポーラモデルはシーン幾何を考慮に入れるが、より大きな基線を必要とする。エピポーラモデルのGRICスコアがホモグラフィモデルのGRICスコアより低い場合、第2のキーフレームが選択される。しかし、このモデルベースの方法では、ホモグラフィモデル及びエピポーラモデルの双方に対して特徴を中断なく長い時間連続して追跡すること及び追跡特徴ごとに再投影誤差を計算することが必要とされるので、演算の負担は大きい。
シーンにおけるリアルタイム追跡を実行する他の方法は、2つのキーフレームの間の時間的距離又は追跡特徴の追跡長さのいずれかが一定の閾値より大きい場合に十分に正確な初期3Dマップを作成できることを黙示的に仮定する。カメラから特徴までの距離はキーフレーム間の所要距離に影響を及ぼすので、この仮定は不正確である場合が多い。
本発明の目的は、既存の構成の1つ以上の欠点をほぼ克服すること又は少なくとも改善することである。
本開示の1つの態様によれば、複数の画像からキー画像を選択する方法であって、
第1の画像を撮像するために使用されたカメラの第1の姿勢に基づいて第1の画像中のマーカに対応する第1の画像特徴を取得する第1の取得ステップと、
第2の画像を撮像するために使用されたカメラの第2の姿勢に基づいて、第2の画像中の第1の画像特徴に対応する第2の画像特徴を取得する第2の取得ステップと、
第1の画像中の第1の画像特徴の位置及び第2の画像中の第2の画像特徴の位置並びにカメラの第1の姿勢及び第2の姿勢に基づいて、3次元(3D)空間におけるマーカの再構成位置を決定する第1の決定ステップと、
マーカの決定された再構成位置及び3D空間におけるマーカの所定の位置に基づいて再構成誤差を決定する第2の決定ステップと、
決定された再構成誤差が所定の基準を満たす場合拡張現実システムの座標系を構成するためのキー画像として第1の画像及び第2の画像のうち少なくとも一方の画像を選択する選択ステップと、
を備えることを特徴とする方法が提供される。
本発明の他の態様も開示される。
添付の図面を参照して、本発明の1つ以上の実施形態を説明する。
図1Aは、拡張現実システムにより使用される2D校正マーカパターンを示す図である。 図1Bは、拡張現実システムにより使用される3D校正マーカパターンを示す図である。 図2Aは、説明される構成が実施されるビデオシステムを示す概略ブロック図である。 図2Bは、説明される構成が実施されるビデオシステムを示す概略ブロック図である。 図3は、説明される構成が実施される図2A及び図2Bのビデオシステムの別の構成を示す概略ブロック図である。 図4Aは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。 図4Bは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。 図4Cは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。 図5は、図4の方法において実行される一致した画像特徴を判定する方法を示す概略フローチャートである。 図6は、本発明に係る校正マーカパターンの隅点の再構成誤差を示す図である。 図7は、図4の方法に従って生成された3次元(3D)マップの一例を示す図である。 図8は、マップ初期設定中の図2Aのビデオディスプレイを示す図である。
添付の図面の1つ以上の図において、同一の図中符号により示されるステップ及び/又は特徴が参照される場合、説明の便宜上、特に指示のない限り、それらのステップ及び/又は特徴は同一の機能又は動作を有する。
図2Aは、ビデオシステム200を示す。ビデオシステム200は、例えばシーン293の画像を撮像する移動カメラ220を備える。シーン293は静止している。移動カメラ220は通信網290に接続される。通信網290は、インターネットなどのワイドエリアネットワーク(WAN)、携帯電話通信網又はプライベートWANである。
図2Aに示されるように、ビデオシステム200は、コンピュータモジュール201と、キーボード202、マウスポインタデバイス203、スキャナ226及びマイク280などの入力デバイスと、プリンタ215、ディスプレイ装置214及びスピーカ217を含む出力デバイスとを更に含む。
外部変復調器(モデム)トランシーバデバイス216は、接続回線221を介して通信網290との間で通信を実行するためにコンピュータモジュール201により使用される。接続回線221が電話回線である場合、モデム216は従来の「ダイヤルアップ」モデムである。あるいは、接続回線221が大容量(例えば、ケーブル)接続回線である場合、モデム216はブロードバンドモデムである。通信網290への無線接続を実現するために、無線モデムも使用可能である。
通常、コンピュータモジュール201は、少なくとも1つのプロセッサユニット205及びメモリユニット206を含む。例えばメモリユニット206は、半導体ランダムアクセスメモリ(RAM)及び半導体読み取り専用メモリ(ROM)を有する。コンピュータモジュール201は、ビデオディスプレイ214、スピーカ217及びマイク280に結合するオーディオビデオインタフェース207と、キーボード202、マウス203、スキャナ226及びカメラ227に結合し且つ任意にジョイスティック又は他のヒューマンインタフェースデバイス(図示せず)に結合する入出力(I/O)インタフェース213と、外部モデム216及びプリンタ215に結合するインタフェース208とを含む複数のI/Oインタフェースを更に含む。いくつかの実現形態において、モデム216は、コンピュータモジュール201内に、例えばインタフェース208内に組み込まれる。コンピュータモジュール201は、接続回線223を介してコンピュータモジュール201をローカルエリアネットワーク(LAN)として知られるローカルエリア通信網222に結合させることができるローカルネットワークインタフェース211を更に有する。
図2Aに示されるように、ローカル通信網222は、いわゆる「ファイアウォール」デバイス又はそれに類似する機能を有するデバイスを通常含む接続回線224を介してワイド網290にも結合する。ローカルネットワークインタフェース211は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線構成又はIEEE802.11無線構成を備えるが、インタフェース211として他の多くの種類のインタフェースが実施されてもよい。
I/Oインタフェース208及び213は、直列接続及び並列接続のいずれか一方又は双方を可能にするが、直列接続は、通常、ユニバーサルシリアルバス(USB)規格に従って実現され且つ対応するUSBコネクタ(図示せず)を有する。記憶装置209が配置され、この記憶装置209はハードディスクドライブ(HDD)210を通常含む。フロッピーディスクドライブ及び磁気テープドライブ(図示せず)のような他の記憶装置が使用されてもよい。不揮発性ソースとして動作するように、オプションのディスクドライブ212が通常配置される。ビデオシステム200に対するデータの適切なソースとして、光ディスク(例えばCD−ROM、DVD、Blu−ray Disc(登録商標))、USB−RAM、ポータブル外部ハードドライブ及びフロッピーディスクなどのポータブルメモリデバイスが使用される。
コンピュータモジュール201の構成要素205〜213は、通常、当業者には周知であるビデオシステム200の従来の動作モードが実現されるように相互接続バス204を介して通信する。例えば、プロセッサ205は、接続線218を使用してシステムバス204に結合される。同様に、メモリ206及び光ディスクドライブ212は、接続線219によりシステムバス204に結合される。本明細書において説明される構成を実施できるコンピュータは、例えばIBM−PC及びその互換機、Sun Sparcstation、Apple Mac(登録商標)又はそれに類似するコンピュータシステムを含む。
以下に説明される方法は、ビデオシステム200を使用して実現される。その場合、以下に説明される図1〜図6の処理は、ビデオシステム200内で実行可能な1つ以上のソフトウェアアプリケーションプログラム233として実現される。詳細には、説明される方法のステップは、ビデオシステム200内で実行されるソフトウェアアプリケーションプログラム233の命令231により実行される(図2Bを参照)。ソフトウェア命令231は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成される。ソフトウェアは2つの個別の部分に分割されてもよく、第1の部分及び対応するコードモジュールは、以下に説明される方法を実行する。第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
ソフトウェアは、例えば以下に説明される記憶デバイスを含むコンピュータ可読媒体に記憶される。通常、ソフトウェアアプリケーションプログラム233はHDD210又はメモリ206に記憶される。ソフトウェアは、コンピュータ可読媒体からビデオシステム200にロードされた後、ビデオシステム200により実行される。従って、ソフトウェア233は、例えば光ディスクドライブ212により読み取られる光可読ディスク記憶媒体(例えばCD−ROM)225に記憶される。そのようなソフトウェアが記憶されたコンピュータ可読媒体又はコンピュータ可読媒体に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム200においてこのコンピュータプログラム製品を使用することにより、以下に説明される方法を実現するのに有利な装置が実現されるのが好ましい。
場合によっては、ソフトウェアアプリケーションプログラム233は、1枚以上のCD−ROM225に符号化された形態でユーザに提供され、対応するドライブ212を介して読み取られても良いし、あるいは通信網290又は222からユーザにより読み取られても良い。更にソフトウェアは、他のコンピュータ可読媒体からビデオシステム200にロードされてもよい。コンピュータ可読媒体は、実行及び/又は処理のために記録されている命令及び/又はデータをコンピュータシステム200に提供するあらゆる非一時的な有形記憶媒体を表す。コンピュータモジュール201の内部に組み込まれるか又は外部にあるかにかかわらず、そのような記憶媒体には、フロッピーディスク、磁気テープ、CD−ROM、DVD、Blu−ray Disc、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、PCMCIAカードなどのコンピュータ可読カードなどが含まれる。コンピュータモジュール201へのソフトウェア、アプリケーションプログラム、命令及び/又はデータの提供にも関与する一時的なコンピュータ可読送信媒体又は非有形コンピュータ可読送信媒体の例は、無線送信チャネル又は赤外線送信チャネル、並びに別のコンピュータ又は別のネットワーク化デバイスへのネットワーク接続、Eメール送信を含むインターネット又はイントラネット及びウェブサイトに記録された情報などを含む。
上述のソフトウェアアプリケーションプログラム233の第2の部分及び対応するコードモジュールは、ディスプレイ214にレンダリングされるか又は他の方法により表現される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するために実行される。GUIと関連するアプリケーションへ制御コマンド及び/又は入力を供給するために、ビデオシステム200及びアプリケーションのユーザは、通常、キーボード202及びマウス203を操作することにより機能適応方式でインタフェースを操作する。スピーカ217を介して出力される音声プロンプト及びマイク280を介して入力されるユーザ音声コマンドを利用するオーディオインタフェースのような他の形態の機能適応型ユーザインタフェースが実現されてもよい。
図2Bは、プロセッサ205及び「メモリ」234を詳細に示す概略ブロック図である。メモリ234は、図2Aのコンピュータモジュール201がアクセス可能なすべてのメモリモジュール(HDD209及び半導体メモリ206を含む)の論理的集合体を表す。
コンピュータモジュール201が最初に起動された時点で、POST(power−on self−test)プログラム250が実行される。POSTプログラム250は、通常、図2Aの半導体メモリ206のROM249に記憶される。ソフトウェアを記憶するROM249のようなハードウェアデバイスはファームウェアと呼ばれる場合もある。POSTプログラム250は、適正に機能していることを確認するためにコンピュータモジュール201内部のハードウェアを検査し、通常、プロセッサ205及びメモリ234(209、206)と、通常は同様にROM249に記憶されている基本入出力システムソフトウェア(BIOS)モジュール251とが正しく動作しているか否かを検査する。POSTプログラム250が正常に実行された後、BIOS251は図2Aのハードディスクドライブ210を起動する。ハードディスクドライブ210が起動されると、ハードディスクドライブ210に常駐するブートストラップローダプログラム252がプロセッサ205を介して実行される。その結果、RAMメモリ206にオペレーティングシステム253がロードされるので、オペレーティングシステム253は動作を開始する。オペレーティングシステム253は、プロセッサ管理、メモリ管理、デバイス管理、記憶装置管理、ソフトウェアアプリケーションインタフェース及び一般ユーザインタフェースを含む種々の高レベル機能を実現するためにプロセッサ205により実行可能なシステムレベルアプリケーションである。
オペレーティングシステム253は、コンピュータモジュール201で実行中の各処理又は各アプリケーションが別の処理に割り当てられたメモリと衝突することなくその処理又はアプリケーションを実行するのに十分なメモリを使用できるようにメモリ234(209、206)を管理する。更に、図2Aのシステム200で利用可能な種々の種類のメモリは、各処理を有効に実行できるように適正に使用される。従って、メモリ集合体234は、(特に指示のない限り)メモリの特定のセグメントがどのように割り当てられるかを示すことを意図しているのではなく、コンピュータシステム200がアクセス可能であるメモリの全体図を示し且つそのメモリがどのように使用されるかを示すことを意図する。
図2Bに示されるように、プロセッサ205は、制御ユニット239、算術論理ユニット(ALU)240及びキャッシュメモリと呼ばれる場合もあるローカルメモリ又は内部メモリ248を含む複数の機能モジュールを含む。通常、キャッシュメモリ248は、レジスタ部分に複数の格納レジスタ244〜246を含む。1つ以上の内部バス241がこれらの機能モジュールを機能の上で相互に接続する。通常、プロセッサ205は、接続回線218を使用して、システムバス204を介して外部デバイスと通信する1つ以上のインタフェース242を更に有する。メモリ234は、接続線219を使用してバス204に結合される。
アプリケーションプログラム233は、条件分岐命令及び条件ループ命令を含む一連の命令231を含む。アプリケーションプログラム233は、プログラム233の実行に使用されるデータ232を更に含む。命令231及びデータ232は、記憶場所228、229、230及び235、236、237にそれぞれ記憶される。命令231及び記憶場所228〜230の相対的な大きさに応じて、記憶場所230に記憶されている命令により示されるように、特定の命令が1つの記憶場所に記憶される場合もある。あるいは、記憶場所228及び229に記憶されている命令セグメントにより示されるように、1つの命令が複数の部分に分割され、各部分が個別の記憶場所に記憶されてもよい。
一般に、プロセッサ205に命令セットが提供され、プロセッサ205はそれらの命令を実行する。プロセッサ205は次に続く入力を待ち、別の命令セットを実行することによりその入力に反応する。各入力は、入力デバイス202、203のうち1つ以上のデバイスにより生成されるデータ、通信網290、202のうちの1つを介して外部ソースから受信されるデータ、記憶装置206、209のうち1つから検索されるデータ又は適切な読み取り装置212に挿入された記憶媒体225から検索されるデータを含む複数のソースのうち1つ以上のソースから提供される。すべてのソースは図2Aに示される。場合によっては、命令セットを実行することによりデータが出力される。命令セットの実行はデータ又は変数をメモリ234に記憶することを更に含む。
説明される構成は入力変数254を使用する。入力変数254は、メモリ234の対応する記憶場所255、256、257に記憶される。説明される構成は出力変数261を生成し、出力変数261はメモリ234の対応する記憶場所262、263、264に記憶される。中間変数258が記憶場所259、260、266及び267に記憶される場合もある。
図2Bのプロセッサ205に関して説明すると、レジスタ244、245、246、算術論理ユニット(ALU)240及び制御ユニット239は、プログラム233を構成する命令セットの命令ごとに「フェッチ、復号、実行」サイクルを実行するために必要とされるマイクロ動作のシーケンスを実行するように互いに関連して動作する。各フェッチ、復号、実行サイクルは以下を含む。
(a)記憶場所228、229、230から命令231をフェッチする又は読み取るフェッチ動作
(b)どの命令がフェッチされたかを制御ユニット239が判定する復号動作
(c)制御ユニット239及び/又はALU240がその命令を実行する実行動作
その後、次の命令に対して更なるフェッチ、復号、実行サイクルが実行される。同様に、制御ユニット239が記憶場所232に値を記憶する又は書き込む記憶サイクルが実行される。
図4〜図6の処理における各ステップ又は各部分処理は、プログラム233の1つ以上のセグメントと関連し且つプログラム233のそれらのセグメントに対して命令セットの命令ごとにフェッチ、復号、実行サイクルを実行するために互いに関連して動作するプロセッサ205のレジスタ部分244、245、247、ALU240及び制御ユニット239により実行される。
あるいは、説明される方法は、説明される方法の機能又は部分機能を実行する1つ以上の集積回路のような専用ハードウェアで実現される。そのような専用ハードウェアには、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックプロセッサ、デジタルシグナルプロセッサ又は1つ以上のマイクロプロセッサ及び関連メモリが含まれる。専用ハードウェアは、カメラ220、220A〜220Eに埋め込まれ且つコンピュータモジュール201内で実行されるソフトウェアのみで実行される構成に匹敵する機能を有すると考えられるデバイスを更に含む。
1つの構成において、説明される方法は、カメラ220、220A〜220Eのうち1つ以上のカメラのプロセッサにより実行されるソフトウェアとして実現されるか、もしくはカメラ内部の専用ハードウェアを使用して実現される。更に別の構成において、説明される方法は、ソフトウェアモジュールとハードウェアモジュールとの混成構成を使用して実現される。
図2Aの例において、3次元(3D)空間のシーン293は、3D球形オブジェクト299、3D立方体オブジェクト297及び校正マーカパターン298を含む。
校正マーカパターン298は、拡張現実システムに使用可能な図1Aに示されるような2D校正マーカパターンである。あるいは、校正マーカパターン298は、図1Bに示されるような3D校正マーカパターンである。図1Bに示されるような3D校正マーカパターンも拡張現実システムに使用可能である。
校正マーカパターン298は、撮像されるオブジェクトの縮尺及びシーン293におけるグローバル座標系の原点を定義する。校正マーカパターン298は、マップ初期設定を目的として当初は移動カメラ220により見えると想定されるが、後の追跡動作及びマッピング動作には必要ではない。校正マーカパターン298は、図1Aに示される2D校正マーカパターン及び図1Bに示される3D校正マーカパターンに限定されない。校正マーカパターン298は、空間内の既知の場所に既知の寸法で固定され且つ撮像画像中で検出可能であるならば、どのような種類又は形状であってもよい。
1つの構成において、移動カメラ220は、シーン293の画像を撮像するデジタルスチル画像カメラである。別の構成において、移動カメラ220は、3D空間内で所定のフレームレートで連続してシーン293の画像を撮像するデジタルビデオカメラである。更に別の構成では、カメラ220は、立体カメラなどのマルチレンズカメラシステムである。更に別の構成において、シーンの画像を撮像するために、2つ以上の個別のカメラを備えたマルチビューカメラシステムが使用される。
カメラ内部(intrinsic)パラメータを判定するために、移動カメラ220は、何らかの適切なカメラ校正アルゴリズムを使用して校正される。焦点距離、主点及びレンズ歪みパラメータなどのカメラ内部パラメータは、移動カメラ220に対してあらかじめ判定される。移動カメラ220は、シーン293に関して、破線のカメラ220により示されるような初期位置にある。図2Aに示されるように、撮像画像291は、初期位置にあるカメラ220により撮像されたシーン293のビューを表す。その後、矢印296により示されるように、移動カメラ220は、実線のカメラ220により示される新たな場所へ移動される。この新たな場所は初期位置とは異なる。理解しやすいように、初期位置から新たな場所へ移動された後も、実線で示される移動カメラ220は、破線で示される移動カメラ220と同一のカメラを表す。図2Bに示されるように、撮像画像292は、新たな場所でカメラ220により撮像されたシーン293のビューを表す。
画像291及び292は、プロセッサ205を使用して、移動カメラ220から通信網290を介してコンピュータモジュール201へ順次ダウンロードされる。あるいは、撮像中に、画像291及び292は、カメラ220によりコンピュータモジュール201へ送出される。
コンピュータモジュール201は、移動カメラ220により撮像された入力画像291及び292を通信網290を介して受信する。画像291及び292は、メモリ206及び/又はハードディスクドライブ210に記憶される。図4A、図4B及び図4Cを参照して以下に詳細に説明される方法400に従って、画像291及び292から1つ以上のキーフレーム(又はキー画像)が選択される。
方法400に従って、図7に示されるように、画像291及び292を使用して生成されるべき3次元(3D)マップ295の予想画質が判定される。3Dマップ295の予想画質が所定の精度を超える場合、2つの画像291及び292はキーフレーム(又はキー画像)として設定され、3Dマップ295を生成するために、それらのキーフレーム(キー画像)から抽出された一致点を使用して三角測量が実行される。3Dマップ295の予想画質が不十分である場合、異なる初期キーフレーム(キー画像)を使用して方法400が再び実行される。
図3は、ビデオシステム200の別の構成を示す。この場合、ビデオシステム200は、通信網290に接続された複数の固定カメラ220A、220B、220C、220D及び220Eを備える。各固定カメラ220A、220B、220C、220D又は220Eは独立して動作する。各カメラ220A〜220Eにより撮像された画像291及び292に類似するシーン293の画像は、コンピュータモジュール201にダウンロードされ且つ方法400に従って処理される。
図4A、図4B及び図4Cを参照して、複数の画像からキーフレーム(キー画像)を選択する方法400を詳細に説明する。方法400は、移動可能なカメラ220により撮像された図2Aの画像291及び292を例にして説明される。方法400は、ハードディスクドライブ210に常駐し且つプロセッサ205により実行が制御されるソフトウェアアプリケーションプログラム233の1つ以上のコードモジュールとして実現される。
図4Aに示されるように、方法400は画像ダウンロードステップ401から開始される。このステップにおいて、プロセッサ205は、移動カメラ220から通信網290を介して現在のフレームをダウンロードするために使用される。図2Aの例に従えば、方法400の1回目の反復時における現在のフレームは画像291である。画像291は、方法400に従って処理される準備が整った状態の生画像である。前述のように、ダウンロードされた画像291は、メモリ206及び/又はハードディスクドライブ210に記憶される。
別の構成において、画像291及び292は、JPEG、JPEG2000、モーションJPEG2000、MPEG1、MPEG2、MPEG4及びH.264のような従来の符号化方式を使用して移動カメラ220により圧縮される。そのような構成では、方法400は、生画素データを生成するために画像291及び292を復号化するステップを含む。
決定ステップ402において、プロセッサ205は、現在のフレーム(例えば画像291)の中に校正マーカパターン298が存在するか否かを検出するために使用される。現在のフレーム(例えば画像291)の中に校正マーカパターン298が検出された場合、方法400はステップ403へ進む。検出されない場合、初期キーフレームを設定する方法400は、次の入力フレームを処理するためにダウンロードステップ401に戻る。
1つの構成において、ある特定のグレイ値閾値に満たない連結された暗画素群を判定するために、現在のフレームは検出ステップ402で2値化される。この場合、各暗画素群の輪郭が抽出され、4本の直線により囲まれた画素群が潜在マーカとしてマークされる。潜在マーカの4つの隅は、透視歪みを除去する目的でホモグラフィを判定するために使用される。校正マーカの内部パターンが標準正面図に移行された後、N×Nの2値格子が判定される。格子の2値は、相関により校正マーカパターン298の特徴ベクトルと比較される特徴ベクトルを形成する。この比較の出力は信頼度係数である。信頼度係数が所定の閾値より大きい場合、ステップ402において現在のフレームの中で校正マーカパターン298が検出されたと考えられる。
別の構成では、固定グレイ値閾値を使用して現在のフレームを2値化するのではなく、検出ステップ402において、エッジ検出器を使用してエッジ画素が検出される。この場合、エッジ画素はセグメントに連携され、セグメントは四辺形として分類される。各四辺形の4つの隅は、透視歪みを除去する目的でホモグラフィを判定するために使用される。その後、内部パターンがサンプリングされ、相関により既知の校正マーカパターン298の特徴ベクトルと比較される。この比較の出力が所定の閾値より大きい場合、校正マーカパターン298が発見されたと考えられる。
図4Aを参照して説明すると、カメラ姿勢判定ステップ403において、プロセッサ205は、ステップ401で現在のフレームの中で検出された校正マーカパターン298の既知の位置及び姿勢と、検出された校正マーカパターン298の見え方とに基づいて現在のフレーム(例えば画像291)に対するカメラの姿勢を判定するために使用される。
1つの構成において、校正マーカパターン298の4本の輪郭直線及び4つの隅は、姿勢判定ステップ403でステップ402と同様にして判定される。次に、以下の式(1)で与えられる透視変換を使用して、検出されたマーカは正規化される。変換行列におけるすべての変数は、検出された校正マーカパターン298の4つの頂点の画像座標及びマーカ座標を、それぞれ(xc、yc)及び(Xm,Ym)に代入することにより判定される。
式中、hは任意のスケール係数である。
次に、校正マーカパターン298の2本の平行線により形成される平面の法線ベクトルが判定される。画像座標中の2本の平行線の式は、次の式(2)により与えられる。
式中、a1、b1及びc1並びにa2、b2及びc2は、各平行線の定数パラメータである。
移動カメラ220が事前に校正されていたと仮定すると、透視投影行列Pは、以下の式(3)に従って4×4の行列として表される。
従って、式(1)を式(4)に従って次のように表すことができる。
式中、(Xc,Yc,Zc)は校正マーカパターン298の隅のカメラ座標である。
校正マーカパターン298の2つの辺を含む平面の式は、以下の式(5)に従って、カメラ座標において式(3)のxc及びycを式(2)のx及びyに代入することにより表される。
式(5)から、校正マーカパターン298の2辺を含む平面の法線ベクトルが判定され、n1及びn2によりそれぞれ表される。校正マーカパターン298の平行な2辺の方向ベクトルv1は、外積n1×n2により与えられる。次に、方向ベクトルv2を判定するために、第2の組の平行線が使用される。v1及びv2が厳密に垂直になるように、雑音に起因する誤差及び画像処理誤差を補償するために2つの方向ベクトルv1及びv2は純化される。
v1及びv2の双方に対して垂直な単位方向ベクトルv3も判定される。単位方向ベクトルv1、v2及びv3は、マーカ座標から以下の式(6)に示されるカメラ座標への変換行列Tの回転成分を一体に形成する。
変換行列の回転成分、マーカ座標におけるマーカの4つの隅及び検出されたマーカの現在のフレームにおける対応する頂点が与えられると、8つの式(平行移動成分W3×1を含む)が生成され、それら8つの式から、この平行移動成分の値が得られる。変換行列Tはカメラの姿勢の大まかな推定を表す。画像雑音、動きによるぶれ及びカメラ校正の精度不足が存在する場合、一般に、校正マーカパターン298の1つの画像に基づいて判定された変換行列Tは、拡張現実システムに適用するのに十分な精度を有していないという点に注意することが重要である。
ステップ403に続いて、次の検査ステップ404では、プロセッサ205は、初期キーフレーム(又はキー画像)が設定されたか否かを検査するために使用される。初期キーフレームが既に設定されている場合、方法400は、図4Bに示される投影ステップ406へ進む。本例において、ステップ404で初期キーフレームが設定されていると判定されるということは、現在のフレームが図2Aの画像292であることを意味する。これに対し、初期キーフレームが設定されていない(すなわち、今回初めて校正マーカパターン298が検出された)場合、本例に従えば、現在のフレームは画像291であり、方法400は設定ステップ405へ進む。ステップ405において、プロセッサ205は、現在のフレーム(例えば画像291)を初期キーフレームとして設定し、方法400は読み取りステップ401に戻り、メモリ206及び/又はハードディスクドライブ210から次の入力フレーム(例えば画像292)を読み取る。
投影ステップ406において、プロセッサ205は、校正マーカパターン298の予想画像座標を推定するために、ステップ403で判定されたカメラ姿勢に基づいて既知の校正マーカパターン298から取り出された1組の隅を初期キーフレーム(例えば画像291)及び現在のフレーム(例えば画像292)に投影するために使用される。既知の校正マーカパターン298から取り出された1組の隅は事前に判定されており、ステップ406においてメモリ206又は記憶装置210からアクセスされる。別の構成において、1組の隅は、ディスク記憶媒体225及び/又はコンピュータネットワーク(920又は922)からアクセスされる。既知の校正マーカパターン298から取り出された1組の隅は、校正マーカパターン298の領域全体にまばらに且つ一様に分散されていることが望ましい。1つの構成において、校正マーカパターン298から少なくとも20個の隅の特徴が選択される。
以下に詳細に説明されるように、図4Bに示される続くステップ407〜409において、プロセッサ205は、第1の画像(例えば画像291の形の初期キーフレーム)と関連する校正マーカパターン298の特徴に対応する第1の画像中の第1の画像特徴を判定するために方法400で使用される。第1の画像特徴は、第1の画像を撮像するために使用されたカメラ220の第1の姿勢に基づいて判定される。次に、プロセッサ205は、複数の画像のうち第2の画像(例えば画像292)を撮像するために使用されたカメラの第2の姿勢に基づいて第2の画像中の第1の画像特徴と視覚的に一致する第2の画像特徴を判定するために使用される。
検出ステップ407において、プロセッサ205は、隅検出器を使用して初期キーフレーム(例えば画像291)及び現在のフレーム(例えば画像292)から突出(salient)画像特徴を検出するために使用される。1つの構成において、非最大抑制型のFAST−10隅検出器が使用される。あるいは、初期キーフレーム(例えば画像291)中の突出画像特徴を検出するために、ハリス隅検出器、モラベック隅検出器、SUSAN隅検出器、SIFT又はSURF隅検出器が使用されてもよい。
それに代わる構成において、ステップ407では、投影ステップ406で判定された初期キーフレーム(例えば画像291)中及び現在のフレーム(例えば画像292)中の校正マーカパターン298の隅の予想画像座標の付近の画像領域のみが検査される。この画像領域の大きさは、校正マーカパターン298の大きさ、位置及び姿勢と、ステップ403で判定されたカメラ姿勢とに基づいて判定される。
次に、方法400は、検出ステップ407からマッチングステップ408へ進み、初期キーフレーム(例えば画像291)と、メモリ206及び/又はハードディスクドライブ210に記憶されている現在のフレーム(例えば画像292)とにおいて校正マーカパターン298の隅に対応する互いに一致する画像特徴を判定する。
図5を参照して、マッチングステップ408で実行される一致した画像特徴を判定する方法500を説明する。方法500は、ハードディスクドライブ210に常駐し且つプロセッサ205により実行を制御されるソフトウェアアプリケーションプログラム233の1つ以上のコードモジュールとして実現される。
方法500の第1の選択ステップ510において、プロセッサ205は、校正マーカパターン298のすべての隅が処理されたか否かを判定するために使用される。処理すべき隅が残っていない場合、初期キーフレーム(例えば画像291)と現在のフレーム(例えば画像292)との間で一致したすべての隅の画像特徴が判定され、方法500は終了し、方法400は推定ステップ409に進む。処理すべき隅がまだ残っている場合、方法500は判定ステップ520に進む。
判定ステップ520において、プロセッサ205は、校正マーカパターン298の隅に対応する初期キーフレーム(例えば画像291)中の1組の突出画像特徴候補を判定するために使用される。1組の突出画像特徴候補は、ステップ406で判定された選択された隅の予想画像座標から突出画像特徴までのユークリッド距離に基づいて判定される。
1つの構成において、選択された隅の予想画像座標を中心とする半径が10画素の円形検索領域が定義される。この円形検索領域の中で発見されたすべての突出画像特徴は、投射された隅の場所になりうる候補であると考えられる。別の構成において、矩形の検索領域が使用され、矩形の検索領域の寸法は、ステップ403で判定された推定カメラ姿勢の位置及び姿勢によって決まる。
ステップ520に続いて、次の検査ステップ530において、プロセッサ205は、処理すべき画像特徴候補が残っているか否かを検査するために使用される。すべての画像特徴候補が処理されていた場合、方法500は検査ステップ510に戻り、校正マーカパターン298の次の隅を処理する。処理すべき画像特徴候補が残っている場合、方法500はステップ540へ進む。
マッチングステップ540において、ステップ520で初期キーフレームから判定された選択された各画像特徴候補は、メモリ206及び/又はハードディスクドライブ210に記憶されている現在のフレームの1組の画像特徴とマッチングされる。マッチングされる現在のフレーム中の1組の画像特徴は、ステップ406で判定された選択された隅の予想画像座標から画像特徴までのユークリッド距離に基づいて判定される。ステップ540に続いて、方法500はステップ530に戻り、現在処理中の所定の隅に対して最もよくマッチングする特徴が発見されるまでステップ540が繰り返される。
1つの構成において、ステップ540では、初期キーフレーム及び現在のフレームの双方における突出画像特徴の場所を中心とする8×8パッチが抽出される。次に、8×8パッチは、零平均平方誤差和(ZSSD)の尺度を使用してマッチングされる。最高のZSSDスコアを有する対の画像特徴が校正マーカパターン298の現在の隅に関する最良の一致として選択される。あるいは、選択された隅の予想画像座標に最も近く且つ所定の閾値を超えるZSSDスコアを有する対の画像特徴が校正マーカパターン298の現在の隅に関する最良の一致として選択される。
別の構成において、発見ステップ540で、選択された画像特徴候補と、現在のフレームの1組の画像特徴と、のマッチングを行うために、16×16パッチ又は32×32パッチなどの異なるパッチサイズ及び平方誤差和(SSD)又は絶対値誤差和(SAD)などの異なる類似度尺度が使用される。
図4Bに戻ると、方法400は、判定ステップ408に続く推定ステップ409へ進む。推定ステップ409において、プロセッサ205は、第1の画像特徴の位置、第2の画像特徴の位置、第1のカメラ姿勢及び第2のカメラ姿勢に基づいて校正マーカパターン298の特徴の再構成位置を判定するために使用される。
推定ステップ409において、プロセッサ205は、ステップ408で判定された校正マーカパターン298の隅に対応する一致する特徴の画像座標及び初期キーフレーム(例えば画像291)と現在のフレーム(例えば画像292)との相対姿勢に基づいて、三角測量により校正マーカパターン298の隅の3D位置を推定するために使用される。相対カメラ姿勢は、方法400のステップ403で判定された初期キーフレームのカメラ姿勢及び現在のフレームのカメラ姿勢に基づいて判定される。
1つの構成において、ステップ409では線形三角測量が実行される。例えば、空間内の点Xの2つの観測x及びx'並びに初期キーフレーム(例えば画像291)及び現在のフレーム(例えば画像292)の投影行列P及びP'がそれぞれ与えられた場合、点Xの奥行きは式(7)及び(8)に従って判定される。
(式7)でクロス積を計算すると、
(式9)は、3つの一次方程式を使用して次のように書き改めることができる。
式中、piTは投影行列Pの行である。式(10)に従って次のようにAX=0の形の式を合成できる。
4つの同次未知数を含む式(10)の4つの式は、式(11)に従って特異値分解(SVD)を実行することにより解くことができる。
式中、U及びVは4×4行列であり、VはVの共役転置であり、Σは4×4対角行列である。式(11)の解Xは、行列Vの最終列に対応する。
1つの構成において、校正マーカパターン298の隅の3D位置を判定するために、サンプソンの距離尺度などの適切なコスト関数を最小化する反復アルゴリズム又は非反復アルゴリズムが使用される。
次に、方法400は、推定ステップ409から判定ステップ410へ進む。判定ステップ410において、プロセッサ205は、校正マーカパターン298の特徴の再構成位置に基づいて3D空間における3D再構成誤差を判定するために使用される。再構成誤差は校正マーカパターン298の隅ごとに判定される。隅ごとの再構成誤差は、プロセッサ205によりメモリ206及び/又はハードディスクドライブ210に記憶される。1つの構成において、再構成誤差は、拡張現実システムの構成後の座標系で測定される。例えば、図6を参照して説明すると、再構成誤差601は、パターンXmarkerの隅の実際の位置とステップ409で判定された再構成Xreconst602の位置との間のユークリッド距離である。パターンXmarkerのそのような隅の再構成位置Xreconst602は、一致した特徴及び相対カメラ姿勢に基づく。図6に示されるように、校正の不正確さ、雑音及び動きによるぶれのために、カメラ姿勢(例えば603)は不正確になる場合がある。図6は、観測された隅の特徴604(すなわちx及びx)並びに投影された隅605(すなわちx^及びx^)を示す。投影された隅(例えば605)は、判定されたカメラ姿勢に基づいて判定される。パターンXmarkerの隅の実際の位置は所定の位置であり、マップ初期設定中に入力として提供される。1つの実施形態において、パターンXmarkerの実際の位置は、マップ初期設定ステップの間にユーザにより提供される。別の実現形態において、パターンXmarkerの実際の位置は、コンピュータモジュール201により受信されたジオタグ付きビーコンを介して取得される。コンピュータモジュール201は、受信されたビーコンに基づいて実際の場所を判定する。
続くステップ411〜413において、プロセッサ205は、判定された再構成誤差がシーン再構成に関する所定の基準を満たす場合に拡張現実システムの座標系を構成するための第1の画像(すなわち現在のフレームの形)を選択するために使用される。決定ステップ411において、プロセッサ205は、校正マーカパターン298の隅の3D再構成の品質が十分であるか否かを判定するために使用される。再構成の品質が十分である場合、方法400は設定ステップ412へ進み、現在のフレーム(例えば画像292)をキーフレームとして設定する。そうでない場合、方法500は決定ステップ415へ進む。
1つの構成において、
1)再構成誤差が隅の再構成は成功であると示し(すなわち、隅の再構成誤差が第1の閾値Tより小さい場合)且つ
2)再構成に成功した隅の数が第2の閾値Tより大きい
場合、校正マーカパターン298の隅の3D再構成の品質は十分であると考えられる。
別の構成において、閾値Tは固定ではない。閾値Tは、説明される方法を実現する拡張現実システムで要求される精度に応じて、システムのユーザの設定に従って動的に調整される。
更に別の構成において、3D再構成の品質基準は、校正マーカパターン298の隅の再構成誤差の平均及び分散に基づく。
次に、方法400はステップ412へ進む。ステップ411で校正マーカパターン298の再構成された隅の品質は十分であると判定されているので、ステップ412では、プロセッサ205は、メモリ206及び/又はハードディスクドライブ210に記憶されている現在のフレーム(例えば画像292)を第2のキーフレームとして設定するために使用される。初期キーフレーム(例えば画像291)及び現在のフレーム(例えば画像292)は、初期3Dマップ(例えば図7に示されるようなマップ295)を構成するためにマップ初期設定ステップ413において使用される立体画像対を形成する。
ステップ412に続いて、方法400の構成ステップ413において、プロセッサ205は、初期キーフレーム(例えば画像291)及び第2のキーフレーム(すなわち現在のフレーム)(例えば画像292)に基づいて、メモリ206及び/又はハードディスクドライブ210内でシーン293のマップを構成するためのマップ初期設定を実行するために使用される。FAST−10隅検出器のような隅検出器を使用して、初期キーフレーム(例えば画像291)から、図2A及び図3の3D球形オブジェクト299及び3D立方体オブジェクト297からの自然画像特徴を含む1組の自然画像特徴が抽出される。あるいは、初期キーフレーム(例えば画像291)の隅を検出するために、ハリス隅検出器、モラベック隅検出器、SUSAN隅検出器、SIFT、又はSURF隅検出器が使用されてもよい。マップ初期設定ステップ413において、プロセッサ205は、推定ステップ409で判定された相対カメラ姿勢に基づいて現在のフレーム(例えば画像292)における特徴対応を判定するためのエピポーラ検索を実行するためにも使用される。画像291及び292のような一対の立体画像の間の相対カメラ姿勢が与えられている場合、一方の画像中の1点は、第2の画像中のいわゆるエピポーラ線に対応する。このエピポーラ線に沿った一致点の場所を判定するためにパッチ検索が実行される。次に、プロセッサ205は、ステップ413において、判定された特徴対応の画像座標及び相対カメラ姿勢に基づいてそれらの自然画像特徴に対応する隅の3D座標を判定する目的で三角測量を実行するために使用される。ステップ413の出力は初期3Dマップであり、図2Aの例によれば、これは、図7に示されるような3D点群マップ295である。方法400に従って校正された3Dマップ295は、メモリ206及び/又はハードディスクドライブ210に記憶される。3D点群295が処理400により生成された後、校正マーカパターンはシーンから除去可能である。
1つの構成において、方法400は、非常に密度の高い3Dマップ295を生成するために、マップ初期設定に際して初期キーフレーム中の検出されたすべての隅の特徴を使用する。
別の構成において、マップ初期設定には、初期キーフレーム中の検出された隅の特徴のうちサブセットのみが選択される。選択される画像特徴の数は事前定義済み閾値に限定され、選択される特徴は、初期キーフレーム中にまばらに且つ一様に分散する。
決定ステップ411において隅の再構成の品質が不足している場合、図4Cに示されるように、方法400は、ステップ411から決定ステップ415へ進む。ステップ415において、プロセッサ205は、初期キーフレームが撮像されてから経過した時間の長さが所定の閾値Tを超えたか否かを判定するために使用される。初期キーフレーム撮像後に経過した時間が閾値Tに満たない場合、方法400は、方法400のステップ401に戻り、次の入力フレームを処理する。そうでない場合、方法400は決定ステップ416へ進む。
方法400のステップ416において、プロセッサ205は、閾値Tがメモリ206及び/又はハードディスクドライブ210に記憶されている所定の閾値MAXより小さいか否かを判定するために使用される。Tの現在の値がMAXより小さい場合、方法400は設定ステップ417へ進み且つ低速カメラ運動を処理するために閾値Tは2倍に増分される。これに対し、閾値TがMAX以上である場合、マップ初期設定は失敗したと判定され、方法400は設定ステップ419へ進む。設定ステップ419において、閾値Tはデフォルト設定値DEFAULTに再初期設定される。
ステップ417及び419に続いて、次の設定ステップ418は、現在のフレーム(例えば画像292)を初期キーフレームとして設定し、方法400はステップ401に戻って、次の入力フレームを処理する。
更に別の構成において、図2Aのビデオシステム200は、マップ初期設定を成功させるために必要とされる移動カメラ220の距離及び方向を示す視覚標識及び/又は可聴標識を提供する。この視覚標識及び/又は可聴標識は、例えばビデオディスプレイ214及び/又はスピーカ217を介して提供される。方法400により初期キーフレームが選択されていると仮定すると、立体基線条件を満たすために、移動カメラ220は、初期キーフレームの位置からある特定の距離だけ側方へ移動されなければならない。立体基線は、この場合、初期キーフレームの位置における移動カメラ220と校正マーカパターン298との間の距離であるシーン奥行きに関連する。立体基線とシーン奥行きとの関係は実験に基づいて判定される場合が多く、1つの構成において、立体基線距離はシーン奥行きの10分の1とほぼ等しくなるように設定される。あるいは、マップ初期設定を成功させるためのカメラの動きを推定するために、ステップ411で判定された再構成の品質が使用される。再構成誤差(すなわち奥行き分解能)は、所定の奥行きを有するシーンに対して基線距離にほぼ反比例する。従って、プロセッサ205は、基線距離をステップ411で判定された推定再構成誤差と乗算し、次にこの乗算の結果を再構成誤差の所望のレベルで除算することにより、移動カメラの現在の位置から必要とされるカメラの動きを推定することができる。カメラの移動方向は、校正マーカパターン298の面と平行になるように制限される。
次に、例によって方法400を更に詳細に説明する。1つの例において、方法400は屋内ナビゲーションシステムに使用される。この場合、1つのシーンの中で新たに観測されたオブジェクトのマッピングと、追跡されるオブジェクトからのカメラ姿勢(すなわち位置及び姿勢)の限定とはリアルタイムに同時に実行される。そのような屋内ナビゲーションアプリケーションの場合、ユーザは、展示住宅(「デモハウス」)の室内などの屋内シーンをカメラ付き携帯電話又は光学シースルーヘッドマウントディスプレイ(HMD)などの撮像表示デバイスを介して見ている。まず、ユーザは、図1A又は図1Bに示される校正マーカパターン298のような校正マーカパターンに直接目を向けることにより、屋内ナビゲーションシステムを初期設定する。この場合、校正マーカパターンは、目に見えるオブジェクトの縮尺及びシーン中のグローバル座標系を定義する。校正マーカパターンは、例えば展示住宅の玄関ドアの面、入口付近の床面又は下駄箱の上面に現れる。屋内ナビゲーションシステムは、方法400に従って、撮像画像中の校正マーカパターンの存在を自動的に検出し、検出された校正マーカパターンと共に第1の画像を初期キーフレームとして提供する。再構成誤差が所定の基準を満たさない場合、ビデオシステム200は、マップ初期設定のための所望のユーザの動きを示す視覚的命令及び可聴命令を提示する。例えば、図8は、ビデオディスプレイ214の右下隅にユーザが動くべき所望の方向及びその推定距離(すなわち1m)を示す点滅矢印801及びテキスト802を示す。同時に、プロセッサ105は、「左へ1m動いてください」のような命令をスピーカ217から発生させる。ユーザが校正マーカパターンを見ながら入口を通って展示住宅に入るにつれて、マップ初期設定のために、続く画像のうち1つが方法400に従って選択される。
展示住宅の例の説明を続けると、方法400に従って(すなわち、ステップ412で)第2のキーフレームが判定された後、初期キーフレーム及び第2のキーフレームから自然特徴(例えば隅点)が抽出される。次に、校正マーカパターンから導出された学習済みエピポーラ幾何に基づいて特徴のマッチングが実行される。既知のエピポーラ幾何に基づいて、空間内の点の3D場所が判定される。また、三角測量により対の特徴対応も判定される。次に、展示住宅内部のシーンの初期3Dマップが生成される(ステップ413)。その後の追跡及び場所限定に、校正マーカパターンは不要である。
その後、展示住宅に関して生成された3Dマップの中の既存のオブジェクトを追跡し続けるために、何らかの適切な並列追跡及びマッピングアルゴリズムが実行される。そのような並列追跡及びマッピングアルゴリズムは、検出された特徴の場所及び対応するマップ中の点に基づいて現在のカメラ姿勢(位置及び姿勢)を判定するために使用される。ユーザが展示住宅内に更に進入し、周囲環境の未調査領域に入るにつれて、生成された3Dマップに新たに検出された自然特徴が追加される。このような屋内ナビゲーションシステムは、補助テキスト情報又は合成オブジェクトを画像の上に重ねる(overlay)。補助テキスト情報は、グローバル座標系に関してユーザの現在の位置を示すと共に、初期ユーザ位置から歩いた距離を示す。合成オブジェクトは、壁の塗装、家具、家電製品、更にはユーザが展示住宅の窓又はバルコニーから外を見た場合の仮想オーシャンビューを含む。
以上説明した方法は、製品設計に使用可能である。一例として、キューブの一面に校正マーカパターン(例えば校正マーカパターン298)を有するテクスチャ化キューブが考えられる。この場合、まず設計者は、カメラ付き携帯電話又はヘッドマウントディスプレイ(HMD)を介して校正マーカパターンを見ることにより拡張現実(AR)システムを初期設定し、テクスチャ化キューブを新たな場所へ移動する。前述のように初期マップを生成するために、一対のキーフレームが判定される。カメラ付き携帯電話又はヘッドマウントディスプレイを通して見た場合に、例えばコピー機を表現するコンピュータグラフィックスが画像に重ね合わされてもよい。そこで、種々の視角及び観察位置からデザインを検討するために、設計者はキューブを移動させるか又は回転させる。次に、ボタン選択に応答したコピー機の動作をシミュレートするコンピュータアニメーションを見るために、合成プリンタのボタンが選択される。
以上、本発明のいくつかの実施形態のみを説明したが、本発明の範囲及び精神から逸脱することなく、それらの実施形態に対して変形及び/又は変更を実施可能である。実施形態は一例であり、限定的なものではない。
本明細書の記述に関して、「備える」という用語は、「主に含むが、専ら必要ではない」又は「有する」又は「含む」ことを意味し、「〜のみから構成される」という意味ではない。「備える」の語形変化は、それに対応して意味の変化を示す。
[関連特許出願の参照]
本出願は、2011年12月12日に出願されたオーストラリア国特許出願第2011253973号についての優先権を、35U.S.C.セクション119に基づいて請求するものであり、その全ての記載内容の参照により本出願に援用する。

Claims (9)

  1. 複数の画像からキー画像を選択する方法であって、
    第1の画像を撮像するために使用されたカメラの第1の姿勢に基づいて、前記第1の画像中のマーカに対応する第1の画像特徴を取得する第1の取得ステップと、
    第2の画像を撮像するために使用されたカメラの第2の姿勢に基づいて、第2の画像中の前記第1の画像特徴に対応する第2の画像特徴を取得する第2の取得ステップと、
    前記第1の画像中の前記第1の画像特徴の位置及び前記第2の画像中の前記第2の画像特徴の位置並びに前記カメラの前記第1の姿勢及び前記第2の姿勢に基づいて、3次元(3D)空間における前記マーカの再構成位置を決定する第1の決定ステップと、
    前記マーカの前記決定された再構成位置及び前記3D空間における前記マーカの所定の位置に基づいて再構成誤差を決定する第2の決定ステップと、
    前記決定された再構成誤差が所定の基準を満たす場合、拡張現実システムの座標系を構成するためのキー画像として前記第1の画像及び前記第2の画像のうち少なくとも一方の画像を選択する選択ステップと、
    を備えることを特徴とする方法。
  2. 前記所定の基準は、前記拡張現実システムのユーザにより設定される前記拡張現実システムの精度に応じて動的に調整されることを特徴とする請求項1に記載の方法。
  3. 前記所定の基準は、前記マーカの前記画像特徴の前記再構成誤差の平均及び分散に応じて動的に調整されることを特徴とする請求項1に記載の方法。
  4. 前記再構成誤差は、前記拡張現実システムの構成後の座標系において測定されることを特徴とする請求項1に記載の方法。
  5. 1つのシーンの前記座標系を構成するために前記第1の画像を選択した後に前記シーンから前記マーカを除去するステップを更に備えることを特徴とする請求項1乃至4の何れか1項に記載の方法。
  6. 前記第1の画像及び前記第2の画像は、複数のカメラを備えたマルチビューカメラシステムにより撮像されることを特徴とする請求項1乃至5の何れか1項に記載の方法。
  7. 前記再構成誤差が前記所定の基準を満たさない場合、ユーザを移動させるための命令を生成するステップを更に備えることを特徴とする請求項1乃至6の何れか1項に記載の方法。
  8. 複数の画像からキー画像を選択する装置であって、
    第1の画像を撮像するために使用されたカメラの第1の姿勢に基づいて、前記第1の画像中のマーカに対応する第1の画像特徴を取得する第1の取得手段と、
    第2の画像を撮像するために使用されたカメラの第2の姿勢に基づいて、第2の画像中の前記第1の画像特徴に対応する第2の画像特徴を取得する第2の取得手段と、
    前記第1の画像中の前記第1の画像特徴の位置及び前記第2の画像中の前記第2の画像特徴の位置並びに前記カメラの前記第1の姿勢及び前記第2の姿勢に基づいて、3次元(3D)空間における前記マーカの再構成位置を決定する第1の決定手段と、
    前記マーカの前記決定された再構成位置及び前記3D空間における前記マーカの所定の位置に基づいて再構成誤差を決定する第2の決定手段と、
    前記決定された再構成誤差が所定の基準を満たす場合、拡張現実システムの座標系を構成するためのキー画像として前記第1の画像及び前記第2の画像のうち少なくとも一方の画像を選択する選択手段と、
    を備えることを特徴とする装置。
  9. コンピュータに、請求項1乃至7の何れか1項に記載の方法の各ステップを実行させるためのコンピュータプログラム。
JP2012269788A 2011-12-12 2012-12-10 並列追跡及びマッピングのためのキーフレーム選択 Active JP5491611B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2011253973 2011-12-12
AU2011253973A AU2011253973B2 (en) 2011-12-12 2011-12-12 Keyframe selection for parallel tracking and mapping

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014041047A Division JP6031464B2 (ja) 2011-12-12 2014-03-03 並列追跡及びマッピングのためのキーフレーム選択

Publications (2)

Publication Number Publication Date
JP2013127783A JP2013127783A (ja) 2013-06-27
JP5491611B2 true JP5491611B2 (ja) 2014-05-14

Family

ID=48572011

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012269788A Active JP5491611B2 (ja) 2011-12-12 2012-12-10 並列追跡及びマッピングのためのキーフレーム選択
JP2014041047A Active JP6031464B2 (ja) 2011-12-12 2014-03-03 並列追跡及びマッピングのためのキーフレーム選択

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014041047A Active JP6031464B2 (ja) 2011-12-12 2014-03-03 並列追跡及びマッピングのためのキーフレーム選択

Country Status (3)

Country Link
US (1) US9076059B2 (ja)
JP (2) JP5491611B2 (ja)
AU (1) AU2011253973B2 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2836959A2 (en) * 2012-04-13 2015-02-18 Lightcraft Technology, LLC Hybrid precision tracking
US9147251B2 (en) * 2012-08-03 2015-09-29 Flyby Media, Inc. Systems and methods for efficient 3D tracking of weakly textured planar surfaces for augmented reality applications
US20150009222A1 (en) 2012-11-28 2015-01-08 Nvidia Corporation Method and system for cloud based virtualized graphics processing for remote displays
US11082490B2 (en) 2012-11-28 2021-08-03 Nvidia Corporation Method and apparatus for execution of applications in a cloud system
US20140270477A1 (en) * 2013-03-14 2014-09-18 Jonathan Coon Systems and methods for displaying a three-dimensional model from a photogrammetric scan
US9384551B2 (en) * 2013-04-08 2016-07-05 Amazon Technologies, Inc. Automatic rectification of stereo imaging cameras
JP6138566B2 (ja) * 2013-04-24 2017-05-31 川崎重工業株式会社 部品取付作業支援システムおよび部品取付方法
EP3008694B1 (en) 2013-06-11 2021-01-27 Qualcomm Incorporated Interactive and automatic 3-d object scanning method for the purpose of database creation
CN104423950B (zh) * 2013-09-02 2021-05-18 联想(北京)有限公司 一种信息处理的方法及电子设备
US10096114B1 (en) 2013-11-27 2018-10-09 Google Llc Determining multiple camera positions from multiple videos
KR20150116260A (ko) * 2014-04-07 2015-10-15 삼성전자주식회사 마커 추적 방법 및 그 전자 장치
JP2016058043A (ja) * 2014-09-12 2016-04-21 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
US9943374B2 (en) * 2014-09-16 2018-04-17 X-Nav Technologies, LLC Image guidance system for detecting and tracking an image pose
US9607388B2 (en) * 2014-09-19 2017-03-28 Qualcomm Incorporated System and method of pose estimation
US10547825B2 (en) * 2014-09-22 2020-01-28 Samsung Electronics Company, Ltd. Transmission of three-dimensional video
WO2016048960A1 (en) * 2014-09-22 2016-03-31 Huntington Ingalls Incorporated Three dimensional targeting structure for augmented reality applications
US11205305B2 (en) 2014-09-22 2021-12-21 Samsung Electronics Company, Ltd. Presentation of three-dimensional video
JP6435750B2 (ja) * 2014-09-26 2018-12-12 富士通株式会社 3次元座標算出装置、3次元座標算出方法および3次元座標算出プログラム
EP3213251A1 (en) * 2014-10-27 2017-09-06 FTS Computertechnik GmbH Computer vision monitoring for a computer vision system
JP6507730B2 (ja) 2015-03-10 2019-05-08 富士通株式会社 座標変換パラメータ決定装置、座標変換パラメータ決定方法及び座標変換パラメータ決定用コンピュータプログラム
WO2016155767A1 (en) * 2015-03-30 2016-10-06 Siemens Aktiengesellschaft Method and system for determining an orientation of a mobile device
US9911242B2 (en) 2015-05-14 2018-03-06 Qualcomm Incorporated Three-dimensional model generation
US10373366B2 (en) 2015-05-14 2019-08-06 Qualcomm Incorporated Three-dimensional model generation
US10304203B2 (en) 2015-05-14 2019-05-28 Qualcomm Incorporated Three-dimensional model generation
US10878278B1 (en) * 2015-05-16 2020-12-29 Sturfee, Inc. Geo-localization based on remotely sensed visual features
JP6701694B2 (ja) * 2015-12-02 2020-05-27 セイコーエプソン株式会社 頭部装着型表示装置およびコンピュータープログラム
EP3159829A1 (en) * 2015-10-21 2017-04-26 Thomson Licensing Methods of detecting and managing a fiducial marker displayed on a display device
JP6575325B2 (ja) * 2015-11-27 2019-09-18 富士通株式会社 カメラ位置姿勢推定装置、カメラ位置姿勢推定方法およびカメラ位置姿勢推定プログラム
US20180046874A1 (en) * 2016-08-10 2018-02-15 Usens, Inc. System and method for marker based tracking
CN107798704B (zh) * 2016-08-30 2021-04-30 成都理想境界科技有限公司 一种用于增强现实的实时图像叠加方法及装置
US10109062B1 (en) * 2016-09-30 2018-10-23 Lucasfilm Entertainment Company Ltd. Non-coherent point tracking and solving for ambiguous images and geometry
US10341568B2 (en) 2016-10-10 2019-07-02 Qualcomm Incorporated User interface to assist three dimensional scanning of objects
KR101892740B1 (ko) * 2016-10-11 2018-08-28 한국전자통신연구원 통합 이미지 마커 생성 방법 및 그 방법을 수행하는 시스템
CN106682595A (zh) * 2016-12-14 2017-05-17 南方科技大学 一种图像内容标注方法和装置
US10489651B2 (en) 2017-04-14 2019-11-26 Microsoft Technology Licensing, Llc Identifying a position of a marker in an environment
GB2562488A (en) 2017-05-16 2018-11-21 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US10777018B2 (en) * 2017-05-17 2020-09-15 Bespoke, Inc. Systems and methods for determining the scale of human anatomy from images
US11049218B2 (en) 2017-08-11 2021-06-29 Samsung Electronics Company, Ltd. Seamless image stitching
US10638109B2 (en) * 2017-09-15 2020-04-28 Elphel, Inc. Method for the FPGA-based long range multi-view stereo with differential image rectification
US10902680B2 (en) * 2018-04-03 2021-01-26 Saeed Eslami Augmented reality application system and method
CN110544280B (zh) * 2018-05-22 2021-10-08 腾讯科技(深圳)有限公司 Ar系统及方法
CN110555358B (zh) * 2018-06-01 2023-09-12 苹果公司 用于检测和识别ar/vr场景中的特征部的方法和设备
JP2021184115A (ja) 2018-08-28 2021-12-02 ソニーグループ株式会社 情報処理装置、情報処理方法、及び、プログラム
US11543655B1 (en) * 2018-09-07 2023-01-03 Apple Inc. Rendering for multi-focus display systems
CN111179162B (zh) * 2018-11-12 2023-10-24 北京魔门塔科技有限公司 一种特殊环境下的定位初始化方法及车载终端
CN110866977B (zh) * 2019-10-31 2023-06-16 Oppo广东移动通信有限公司 增强现实处理方法及装置、系统、存储介质和电子设备
EP3985491A1 (en) * 2020-10-19 2022-04-20 ameria AG Control method for touchless gesture control
CN112802104B (zh) * 2021-02-04 2022-09-16 华南理工大学 一种基于rgb-d相机的回环检测方法
WO2023277903A1 (en) * 2021-06-30 2023-01-05 Innopeak Technology, Inc. Dual camera based monocular slam architecture
CN113569756B (zh) * 2021-07-29 2023-06-09 西安交通大学 异常行为检测与定位方法、系统、终端设备及可读存储介质
US11367204B1 (en) * 2021-12-16 2022-06-21 Ecotron LLC Multi-sensor spatial data auto-synchronization system and method
CN114565882B (zh) * 2022-04-29 2022-07-19 深圳航天信息有限公司 基于多视频摄像头智能联动的异常行为分析方法及装置
CN117274318B (zh) * 2023-11-20 2024-03-15 广州市大湾区虚拟现实研究院 一种高鲁棒性的反向光学大范围跟踪方法和系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970591B1 (en) 1999-11-25 2005-11-29 Canon Kabushiki Kaisha Image processing apparatus
US6728582B1 (en) * 2000-12-15 2004-04-27 Cognex Corporation System and method for determining the position of an object in three dimensions using a machine vision system with two cameras
US7209779B2 (en) * 2001-07-17 2007-04-24 Accuimage Diagnostics Corp. Methods and software for retrospectively gating a set of images
JP4976756B2 (ja) * 2006-06-23 2012-07-18 キヤノン株式会社 情報処理方法および装置
JP4757142B2 (ja) * 2006-08-10 2011-08-24 キヤノン株式会社 撮影環境校正方法及び情報処理装置
JP4956375B2 (ja) * 2007-10-30 2012-06-20 キヤノン株式会社 画像処理装置、画像処理方法
KR101188588B1 (ko) 2008-03-27 2012-10-08 주식회사 만도 모노큘러 모션 스테레오 기반의 주차 공간 검출 장치 및방법
EP2157545A1 (en) * 2008-08-19 2010-02-24 Sony Computer Entertainment Europe Limited Entertainment device, system and method
US8204340B2 (en) * 2008-09-29 2012-06-19 Two Pic Mc Llc Methods and apparatus for dot marker matching
JP2011008687A (ja) * 2009-06-29 2011-01-13 Sharp Corp 画像処理装置
JP5424405B2 (ja) * 2010-01-14 2014-02-26 学校法人立命館 複合現実感技術による画像生成方法及び画像生成システム

Also Published As

Publication number Publication date
US20130148851A1 (en) 2013-06-13
AU2011253973B2 (en) 2015-03-12
JP6031464B2 (ja) 2016-11-24
AU2011253973A1 (en) 2013-06-27
US9076059B2 (en) 2015-07-07
JP2013127783A (ja) 2013-06-27
JP2014132488A (ja) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6031464B2 (ja) 並列追跡及びマッピングのためのキーフレーム選択
KR102647351B1 (ko) 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치
JP5822322B2 (ja) ローカライズされ、セグメンテーションされた画像のネットワークキャプチャ及び3dディスプレイ
US10832079B2 (en) Determining an architectural layout
US9390515B2 (en) Keyframe selection for robust video-based structure from motion
US10033985B2 (en) Camera pose estimation apparatus and method for augmented reality imaging
Cruz et al. Zillow indoor dataset: Annotated floor plans with 360deg panoramas and 3d room layouts
JP2019075082A (ja) 深度値推定を用いた映像処理方法及び装置
US20140003705A1 (en) Method for Registering Points and Planes of 3D Data in Multiple Coordinate Systems
JP2016522485A (ja) 再構成からの隠消現実感効果および媒介現実感効果
AU2013237718A1 (en) Method, apparatus and system for selecting a frame
US11620730B2 (en) Method for merging multiple images and post-processing of panorama
US20160372156A1 (en) Image fetching for timeline scrubbing of digital media
JP6240706B2 (ja) グラフマッチングおよびサイクル検出による自動モデル初期化を用いた線トラッキング
AU2018282254A1 (en) System and method for determining a three-dimensional position of a person
US11758100B2 (en) Portable projection mapping device and projection mapping system
Koppel et al. Image-based rendering and modeling in video-endoscopy
Park et al. Virtual object placement in video for augmented reality
WO2021190655A1 (en) Method for merging multiple images and post-processing of panorama
Setyati et al. Face tracking implementation with pose estimation algorithm in augmented reality technology
Mitchell et al. A robust structure and motion replacement for bundle adjustment

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131224

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: 20140131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140227

R151 Written notification of patent or utility model registration

Ref document number: 5491611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151