JP5950973B2 - フレームを選択する方法、装置、及びシステム - Google Patents

フレームを選択する方法、装置、及びシステム Download PDF

Info

Publication number
JP5950973B2
JP5950973B2 JP2014181570A JP2014181570A JP5950973B2 JP 5950973 B2 JP5950973 B2 JP 5950973B2 JP 2014181570 A JP2014181570 A JP 2014181570A JP 2014181570 A JP2014181570 A JP 2014181570A JP 5950973 B2 JP5950973 B2 JP 5950973B2
Authority
JP
Japan
Prior art keywords
frame
region
camera
unobserved
key frame
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.)
Expired - Fee Related
Application number
JP2014181570A
Other languages
English (en)
Other versions
JP2015079490A (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 JP2015079490A publication Critical patent/JP2015079490A/ja
Application granted granted Critical
Publication of JP5950973B2 publication Critical patent/JP5950973B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7847Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content
    • G06F16/786Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content using motion, e.g. object motion or camera 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes

Description

本発明は、一般に拡張現実感(AR)システムに関するものであり、特に、高速且つ効率的なマップ拡張に関するものである。本発明はまた、複数のビデオイメージフレームからフレームを選択する方法、装置、及びシステムに関するものである。本発明はまた、複数のビデオイメージフレームからフレームを選択するコンピュータプログラムを記録したコンピュータ読み取り可能な媒体を含むコンピュータプログラムに関するものである。
拡張現実感(AR)とは、現実世界とコンピュータにより生成されたデータとの融合を取り扱うコンピュータリサーチの分野であって、現実映像にコンピュータグラフィックオブジェクトをリアルタイムで融合させる。殆どの拡張現実感撮像システムは、ユーザの環境に関する所定の情報を取り扱う。この所定の情報とは、通常は、何らかのマップの形態である。ユーザは、このマップに基づいて環境と接触することができる。提供されたマップが広範囲のものである場合、このマップから直接的且つ正確に位置合わせ(registration)が可能となる。
マップを用いて位置合わせを行うことは、カメラを用いた拡張現実感トラッキングにおいて用いられる共通の方法である。広範囲のマップを生成する従来方法の1つは、初期化中に、ユーザ環境中に密に配された基準マーカ群を使用することである。しかしながら、マップを生成することは、困難で時間がかかる。そのようなマップは、たいてい熟練した技術者により手動で生成される。
未知の環境においてカメラなどのハンドヘルドデバイスをリアルタイムでトラッキングする方法が知られている。トラッキング及びマッピングは、通常は分離されて、マルチコアプロセッサ(例えば、スマートフォンやデスクトップコンピュータ)において別個のスレッドとして並行に実行される。トラッキングスレッドは、不規則なハンドヘルドモーションを、自然画像特徴を用いてリアルタイムで確実にトラッキングするタスクを取り扱う。トラッキングスレッドよりも低いレートで動作するマッピングスレッドは、「キーフレーム」と呼ばれる前に観察した画像のサブセットから点特徴の3次元(3D)マップを生成する。マップはバンドル調整を用いてリファインされる。
ハンドヘルドデバイスをトラッキングする周知の方法における1つの欠点は、その方法ではマップの拡張が非常に遅い、ことである。そのトラッキング方法は、現フレームが新たなキーフレームとして追加された場合にのみ、マップを拡張しようとする。一般的に、キーフレームとなるためには、現フレームは、トラッキングの品質が高い(例えば、観察されるマップ点の数と潜在的には可視のマップ点の数との比が所定の閾値を超えている)、最近のキーフレームが追加されてからの経過時間が2/3秒若しくは20フレームなどの何らかの所定の閾値を超えている、フレームを撮像するカメラが、そのマップにおいてすでにキーフレームと関連づけられている最近接のカメラ位置から最小の距離にある、ということを含む条件を満足する必要がある。これらの条件は、キーフレーム間の距離を保証することによって冗長なキーフレームの追加を避けつつ、新たなマップ点を三角測量で測定するための好適な基準を提供しようとしている。しかしながら、そのような条件は、環境を探索する上記の方法の能力を限定している。更に、キーフレームの初期セットを撮像してしまうと、新たなマップ点を追加することは困難となる。現フレームは回転(すなわちパンニング)によってかなり異なるシーンのエリアとなるが、カメラ位置がマップ上で少なくとも1つのキーフレームに近接する可能性があるので、新たなマップ点を追加することは困難となる。新たに探索するエリアは未観測であることから、新たなマップ点を追加することの困難性は、早く且つ信頼性のある環境の探索の妨げとなる。
ハンドヘルドデバイスをトラッキングする既知の方法では、新たなキーフレームを追加した後、既存のキーフレームが選択されて、該新たなキーフレームと組み合わせてマップを拡張する。新たなマップ点は、マッチする点の対応から、三角測量により生成される。この既知の方法では、可能なステレオベースライン分離を限定する、ペアリングのための最近接のキーフレームを使用する。最近接のキーフレームは必ずしも、ビューイングエリアの最大オーバーラップを有するものではない。
キーフレーム間の最小距離を要求するのは、単にカメラを回転させても新たなキーフレームは生成されないであろうことを意味する。ある方法では、カメラが観察している方向に基づいて新たなキーフレームを追加している。現在のカメラの位置から最小距離よりも小さく離れている関連カメラ位置を有するそれぞれのキーフレームについて、現フレームの観察方向と、該キーフレームの観察方向と、を比較する。それぞれの観察方向の間の角度が所定の閾値よりも大きい場合には、現フレームを新たなキーフレームとして追加する。
有効な三角測量を保証し且つ新たなマップ点の数を最大化するために、ある既知の方法では先ず、カメラのビューイングベクトル同士の交点のうち最も近接する交点を決定する。そして、この交点とカメラ位置との間の距離が、キーフレームにおけるシーン深さと比較される。そして、予想される点の深さと実際の深さとの差分が、品質尺度として利用される。小さい差分は、カメラがシーンの同様のエリアを観察していることを意味しており、然るに最も小さい差分のキーフレームをペアリングに用いる。他の方法では、現フレームとの対応が一致する数が最も多いキーフレームを選択する。
本発明の目的は、既存の構成の1以上の不都合を実質的に解消する若しくは少なくとも改良することにある。
本開示のある様態によれば、カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する方法であって、
前記カメラにより撮像されたフレームを取得する取得工程と、
前記フレームに3次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する選択工程と
を有することを特徴とする方法が提供される。
本発明の他の様態も開示される。
本発明の1以上の実施形態は、以下の図面を参照して説明されるであろう。
図1は、説明される構成が実施されるビデオシステムの概略ブロック図。 図2Aは、図1のビデオシステムの汎用コンピュータを示す概略ブロック図。 図2Bは、図1のビデオシステムの汎用コンピュータを示す概略ブロック図。 図3は、3次元(3D)マップを生成する方法を示す概略フロー図。 図4は、移動カメラのポーズを決定する方法を示す概略フロー図。 図5は、キーフレームを選択する方法を示す概略フロー図。 図6は、3Dマップを保持してリファインする方法を示す概略フロー図。 図7は、現キーフレームを選択して新たなキーフレームと組み合わせる方法を示す概略フロー図。 図8Aは、図7の方法で用いるソフトバリューロジックのセットを示す図。 図8Bは、図7の方法で用いるソフトバリューロジックのセットを示す図。 図8Cは、図7の方法で用いるソフトバリューロジックのセットを示す図。 図8Dは、図7の方法で用いるソフトバリューロジックのセットを示す図。 図8Eは、図7の方法で用いるソフトバリューロジックのセットを示す図。 図9は、新たなキーフレームにおいて決定された再投影未観測領域と、図7の方法で用いられる現キーフレームと、の間のオーバーラップを示す図。 図10は、所定のプリミティブな未観測領域のセットを示す図。
いずれか1つ以上の添付の図面において、同一の図中符号を有するステップ及び/又は特徴を参照する。それに反する意図が示されない限り、これらのステップ及び/又は特徴は、本明細書のために同一の機能又は動作を有する。
図1は、ビデオシステム100を示す。ビデオシステム100は、例えばシーン110の画像140,141,142を撮像する移動カメラ120を有する。ビデオシステム100は、「拡張現実感」ビデオシステムと称される。後述するように、画像140,141,142のそれぞれは、フレームと称される。
移動カメラ120は、通信ネットワーク220に接続されている。通信ネットワーク220は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク(WAN)又は専用WANである。
図2Aに示す如く、ビデオシステム100は更に、コンピュータモジュール201、キーボード202、マウスポインタデバイス203、スキャナ226、マイク280などの入力装置と、プリンタ215、表示装置214及びスピーカ217を含む出力装置と、を備える。外部変復調器(モデム)送受信機デバイス216は、接続221を介して通信ネットワーク220と通信するためにコンピュータモジュール201により使用される。通信ネットワーク220は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク(WAN)又は専用WANである。接続221が電話線である場合、モデム216は従来の「ダイヤルアップ」モデムである。あるいは、接続221が大容量(例えば、ケーブル)接続である場合、モデム216はブロードバンドモデムである。無線モデムは、通信ネットワーク220に無線接続するために更に使用される。
一般にコンピュータモジュール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は、インタフェース208等のコンピュータモジュール201内に組み込まれる。コンピュータモジュール201は、接続223を介してシステム100がローカルエリアネットワーク(LAN)として知られているローカルエリア通信ネットワーク222に接続できるようにするローカルネットワークインタフェース211を更に有する。図2Aに示されるように、ローカル通信ネットワーク222は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えるデバイスを含むワイドネットワーク220に接続224を介して更に結合する。ローカルネットワークインタフェース211は、EthernetTM回路カード、BluetoothTM無線装置又はIEEE802.11無線装置を備えるが、多数の他の種類のインタフェースがインタフェース211に対して実現される。
I/Oインタフェース208及び213は、直列接続性及び並列接続性のいずれか一方又は双方を提供する。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置209が提供され、一般に記憶装置209はハードディスクドライブ(HDD)210を含む。フロッピディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。光ディスクドライブ212は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD、Blu−ray DiscTM)、USB−RAM、ポータブルな外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム100に対する適切なデータソースとして使用される。
コンピュータモジュール201の構成要素205〜213は、一般に、結果として当業者に既知であるシステム100の動作の従来のモードから得られる方法で相互接続バス204を介して通信する。例えばプロセッサ205は、接続218を使用してシステムバス204に結合される。同様に、メモリ206及び光ディスクドライブ212は、接続219によりシステムバス204に結合される。説明した構成を実施するコンピュータの例には、IBM−PC及び互換性のあるもの、Sun Sparcstations、Apple MacTM又は同様のコンピュータシステムが含まれる。
後述する方法は、システム100を使用して実現される。本明細書において説明される図1〜図10の処理は、システム100内で実行可能な1つ以上のソフトウェアアプリケーションプログラム233として実現される。特に、説明する方法の各ステップは、システム100内で実行されるソフトウェア233中の命令231(図2Bを参照)により実施される。ソフトウェア命令231は、各々が1つ以上の特定のタスクを実行する1つ以上のコードモジュールとして形成される。ソフトウェアは2つの別個の部分に更に分割され、第1の部分及び対応するコードモジュールは開示される方法を実行し、第2の部分及び対応するコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納される。一般にソフトウェア233は、HDD210又はメモリ206に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム100にロードされ、コンピュータシステム100により実行される。従って、例えばソフトウェア233は、光ディスクドライブ212により読み出される光学的に読み出し可能なディスク記憶媒体(例えば、CD−ROM)225上に格納される。そのようなソフトウェア又コンピュータプログラムを記録したコンピュータ可読媒体は、コンピュータプログラムである。コンピュータシステム100においてコンピュータプログラムを使用することにより、開示される方法の実施に有利な装置を実施することが好ましい。
いくつかの例において、アプリケーションプログラム233は、1つ以上のCD−ROM225上でユーザが符号化したものに供給されて対応するドライブ212を介して読み出されるか、あるいはユーザによりネットワーク220又は222から読み出される。また、ソフトウェアは、他のコンピュータ可読媒体からシステム100に更にロードされてもよい。コンピュータ可読記憶媒体は、実行及び/又は処理するために記録された命令及び/又はデータをコンピュータシステム100に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、CD−ROM、DVD、Blu−rayTM Disc、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、あるいは例えばPCMCIAカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール201の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール201に提供することに更に関係する一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
上述したアプリケーションプログラム233の第2の部分及び対応するコードモジュールは、ディスプレイ214上にレンダリングされるかあるいは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行される。一般にキーボード202及びマウス203を操作することにより、システム100及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作する。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ217を介して出力された音声プロンプト及びマイク280を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
図2Bは、プロセッサ205及び「メモリ」234を示す詳細な概略ブロック図である。メモリ234は、図2Aのコンピュータモジュール201がアクセスする全てのメモリモジュール(HDD209及び半導体メモリ206を含む)の論理的な集合を示す。
コンピュータモジュール201の電源が最初に投入される場合、power−on self−test(POST)プログラム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を介して実行する。これにより、オペレーティングシステム253は、RAMメモリ206にロードされると動作を開始する。オペレーティングシステム253は、プロセッサ205により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
オペレーティングシステム253は、メモリ234(209、206)を管理し、コンピュータモジュール201上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図2Aのシステム100で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用されなければならない。従って、集約メモリ234は、メモリの特定の部分が割り当てられる方法を示すことを意図するのではなく(特に記載されない限り)、システム100によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
図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に示された命令により示されたように単一の記憶場所に格納される。あるいは、命令は、記憶場所228及び229に示された命令部分により示されたように、各々が別個の記憶場所に格納される多数の部分にセグメント化される。
一般にプロセッサ205は、そこで実行される命令の集合を与えられる。プロセッサ205は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力装置202、203の1つ以上により生成されたデータ、ネットワーク220、202のうちの一方を介して外部ソースから受信したデータ、記憶装置206、209のうちの一方から検索されたデータ又は対応する読み取り装置212に挿入された記憶媒体225から検索されたデータを含む多数のソースのうちの1つ以上から提供され、その全てを図2Aに示す。いくつかの例において、命令の集合を実行した結果、データが出力される。実行することは、データ又は変数をメモリ234に格納することも含む。
開示される方法は、対応する記憶場所255、256、257においてメモリ234に格納される入力変数254を使用する。開示される方法は、対応する記憶場所262、263、264においてメモリ234に格納される出力変数261を生成する。中間変数258は、記憶場所259、260、266及び267に格納される。
図2Bのプロセッサ205を参照すると、レジスタ244、245、246、演算論理装置(ALU)240及び制御ユニット239は、プログラム233を構成する命令集合において命令毎に「取り込み、デコード及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、デコード及び実行サイクルの各々は、以下を含む。
記憶場所228、229、230からの命令231を取り込むかあるいは読み取る取り込み動作
制御ユニット239が取り込まれている命令を判定するデコード動作
制御ユニット239及び/又はALU240が命令を実行する実行動作
その後、次の命令に対する更なる取り込み、デコード及び実行サイクルが実行される。同様に、制御ユニット239が値を記憶場所232に格納するかあるいは書き込むことにより、格納サイクルが実行される。
図1〜図10の処理におけるステップ又はサブ処理の各々は、プログラム233の1つ以上の部分と関連付けられ、プログラム233の示された部分に対して命令集合において命令毎に取り込み、デコード及び実行サイクルを実行するように共に動作するプロセッサ205のレジスタ部244、245、247、ALU240及び制御ユニット239により実行される。
あるいは、開示される方法は、開示される方法の機能又は部分機能を実行する1つ以上の集積回路のような専用ハードウェアで実現される。そのような専用ハードウェアには、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックプロセッサ、デジタルシグナルプロセッサ又は1つ以上のマイクロプロセッサ及び関連メモリが含まれる。専用ハードウェアは、カメラ120に埋め込まれ且つコンピュータモジュール201内で実行されるソフトウェアのみで実行される構成に匹敵する機能を有すると考えられるデバイスを更に含む。
1つの構成において、開示される方法は、カメラ120のプロセッサにより実行されるソフトウェアとして実現されるか、もしくはカメラ120内部の専用ハードウェアを使用して実現される。更に別の構成において、開示される方法は、ソフトウェアモジュールとハードウェアモジュールとの混成構成を使用して実現される。
図1Aの例において、シーン110は、3次元(3D)球形オブジェクト111及び3D正方形オブジェクト112とを含み、ほぼ静止している。フレーム140,141,142は、それぞれ異なる視点からの3Dシーン110のビューを表している。
1つの構成において、移動カメラ120は、シーン110を表すフレーム(若しくは画像)140,141,142を撮像するディジタルスチール画像カメラである。他の構成において、移動カメラ120は、3次元(3D)空間内のシーン110を表すフレーム群(若しくは画像群)を所定のフレームレートで連続的に撮像するディジタルビデオカメラである。さらなる構成では、カメラ120は、ステレオカメラなどのマルチレンズカメラシステムである。さらなる構成では、2以上の別個のカメラを有するマルチビューカメラシステムが、シーン110を表すフレーム140,141,142を撮像するために使用されても良い。
移動カメラ120は、カメラ内部パラメータを決定するために、あらゆる適切なカメラキャリブレーションアルゴリズムを使用してキャリブレーションされても良い。焦点距離、主点、レンズ歪みパラメータなどのカメラ内部パラメータは、移動カメラ120に対して予め定められていても良い。移動カメラ120は、シーン110に対し、点線のカメラ120で示される初期位置にある。図1に示す如く、フレーム(若しくは画像)140は、カメラ120が初期位置にある場合に該カメラ120によって撮像されるシーン110のビューを表す。その後、移動カメラ120は、矢印131で示す如く第2の位置に移動し、そこで移動カメラ120は、シーン110の異なるビューを表すフレーム(若しくは画像)141を撮像する。その後、移動カメラ120は、矢印132で示す如く、第2の位置から更に、実線で示すカメラ120により示される第3の位置に移動する。ここで、第2の位置及び第3の位置は、初期位置とは異なる。
説明のために、図1において実線で示す移動カメラ120は、初期位置から新たな位置に移動した後の、点線で示す同じ移動カメラ120を表す。図1に示す如く、撮像されたフレーム(若しくは画像)142は、新たな位置でカメラ120により撮像された、シーン110のビューを表す。
フレーム(若しくは画像)140,141,142は、図2Aのプロセッサ205を用いて、通信ネットワーク220を介して移動カメラ120からコンピュータモジュール201に順次ダウンロードされる。あるいは、フレーム140,141,142は撮像されると、カメラ120によりコンピュータモジュール201に送信されても良い。
システム100は、ハードディスクドライブ210上に常駐しており且つその実行がプロセッサ205により制御されるソフトウェアアプリケーションプログラム233の1以上のコードモジュールによって実施されるコンピュータビジョンアルゴリズムを用いて、ビジョンベースカメラトラッキング及びローカリゼーションを実行するように構成されている。ある構成において、ソフトウェアアプリケーションプログラム233のコードモジュールのうちの1以上は、システム起動時に初期3Dマップ190を生成するためのマップ初期化ソフトウェアモジュール1010を形成するように構成されても良い。3Dマップ190は、メモリ206及び/又は209に格納されても良い。更に、ソフトウェアアプリケーションプログラム233のコードモジュールのうちの1以上は、効率的なカメラトラッキングを実行するためのトラッキングソフトウェアモジュール1020を形成するように構成されても良い。トラッキングソフトウェアモジュール1020は更に、入力画像からカメラ120のポーズ(すなわち位置及び姿勢)を決定するためのトラッカーソフトウェアモジュール1022を有しても良い。トラッキングソフトウェアモジュール1020は更に、3Dマップ190を構成して時間とともに徐々に増加的に拡張させるためのマッパソフトウェアモジュール1024を有しても良い。
図1に示す如く、3Dマップ190は、3Dマップ点の集合により表される3D点クラウド192と、キーフレーム195と呼ばれる前フレームのサブセットと、を有する。キーフレーム195は、マップ190を拡張するために、マッパソフトウェアモジュール1024によって使用される。図1の例では、トラッカーソフトウェアモジュール1022及びマッパソフトウェアモジュール1024は、コンピュータモジュール201内で異なるスレッドで並行して実行される。トラッカーソフトウェアモジュール1022は、マッパソフトウェアモジュール1024のフレームレートとは異なるフレームレートで動作する。他の構成において、トラッカーソフトウェアモジュール1022の動作及びマッパソフトウェアモジュール1024の動作は交互になっている。
図1〜2Bの構成において、コンピュータモジュール201は、デスクトップ汎用コンピュータである。あるいは、コンピュータモジュール201は、サーバコンピュータなどでも構わない。開示される方法は、スマートフォン、モバイルフォン、ポータブルメディアプレーヤ、ディジタルカメラなどの処理リソースが限られている低パワーのポータブルコンピューティングデバイス上で実行されても良い。
先ず、システム100が起動すると、3D点クラウド192及び初期キーフレーム195により表される初期3Dマップ190が、マップ初期化ソフトウェアモジュール1010によって作成される。その後、3Dマップ190はトラッキングソフトウェアモジュール1020により使用されて、移動カメラ120により撮像された入力フレーム(若しくは画像)からカメラ120の位置及び姿勢を決定する。3Dマップの作成方法300については図3を用いて以下で詳細に説明する。方法300は、ハードディスクドライブ210上で常駐し且つその実行がプロセッサ205により制御される、マップ初期化モジュール1010を形成するソフトウェアコードモジュールのうちの1以上によって実行される。
方法300は選択ステップ310で開始し、プロセッサ205による実行の元で、移動カメラ120により撮像されたフレームがマップ初期化モジュール1010により第1のキーフレームとして選択される。第1のキーフレームは、カメラ120により撮像された複数のフレームの中から選択されても良い。ある構成において、ユーザは移動カメラ120をシーン110中の初期位置に配置し、移動カメラ120により撮像されたフレームを、点特徴の3次元(3D)マップを生成する第1のキーフレームとして選択するようにしても構わない。第1のキーフレームは、図2Aのメモリ206若しくは記憶装置209内で構成される3Dマップ190に格納されても良い。
第1のキーフレームが選択された後、方法300は、選択ステップ310から決定ステップ320へと進む。ステップ320では、プロセッサ205は、第1のキーフレーム中の画像特徴の集合を決定する為に使用される。決定された画像特徴群は、例えば、第1のキーフレーム中の点群、線分群、コーナー群、若しくは曲線群を含む。ある構成においては、画像特徴群の位置は、ステップ320においてFAST(”Features from Accelerated Segment Test”)アルゴリズムを用いて検出される。
選択されたキーフレーム(若しくは画像)中の各画素位置について、FASTアルゴリズムが使用されて、16個の周囲画素から成る輪に対する画素の強度を評価することで該画素位置がコーナーであるのか否かを判断する。中心画素よりも一貫して大きい若しくは小さい強度値を有するn以上の連続画素のランが存在する場合には、この画素はコーナーであると考えられる。ある構成においては、nには、処理時間とトラッキングの精度との間のトレードオフとして10がセットされる。「Shi-Tomasi」スコアに基づくNon-maximal suppression and thresholdingを用いて、選択されたキーフレームの最も顕著な画像特徴群を検出しても構わない。
あるいは、Harris Corner Detection algorithm、Scale-Invariant Feature Transform (SIFT)、Speeded Up Robust Features (SURF) algorithm、Binary Robust Invariant Scalable Keypoints (BRISK)等の他の画像特徴検出アルゴリズムが、画像特徴を検出するためにステップ320において使用されても良い。ステップ320において第1のキーフレームにおいて検出された画像特徴の集合は、メモリ206に格納される。
図1の例において、カメラ120は、第1のキーフレームとして選択されたフレームをカメラ120が撮像した該カメラ120の初期位置から第2の位置へと横に移動する。第2の位置は、カメラ120の初期位置からわずかにオフセットされている。ある構成においては、カメラ120は、第1のキーフレームが撮像されたときの該カメラ120の初期位置から最小距離だけ移動しても良い。最小距離は、シーン110中のオブジェクト群と移動カメラ120との間の平均距離に依存していても良い。ある構成においては、最小距離は、シーン深さの10分の1に設定されても良い。
ステップ320に続いて、トラッキングステップ330では、カメラ120が新たな位置に移動した後で該カメラ120により撮像された全ての後続フレームについて、第1のキーフレームについて決定した画像特徴が探索される。ある構成において、画像特徴位置を中心とする8画素×8画素のサイズの2Dパッチが、第1のキーフレーム中のそれぞれの決定された画像特徴について作成される。そのような2Dパッチ探索は、後続する撮像フレーム中の一致する画像特徴を決定するために実行される。第1のキーフレーム中のそれぞれの検出された画像特徴について、新たなフレーム中の小さい半径(例えば20画素)を有する円形領域内のどの画像特徴も、潜在的な画像特徴対応であると考えられる。そして、2Dの8×8のパッチのマッチが実行されて、二乗差のゼロ平均和(ZSSD)スコアに基づいて画像特徴位置を中心とする2Dパッチと最も一致するパッチを決定する。そのようなパッチマッチング処理は、第2のキーフレームが選択されるまで繰り返し行われる。
他の構成において、画像特徴識別子が、第1のキーフレームにおいて検出されたそれぞれの画像特徴について作成されても良い。そして特徴マッチングは、新たなフレームにおいて、画像特徴識別子間の差が最も小さい画像特徴を検出することで実行されても良い。ある構成においては、画像特徴識別子は、SIFT及びSURF等のアルゴリズムを用いて、検出された画像特徴の位置の近傍における勾配分布に基づいて作成されても良い。あるいは、画像特徴識別子は、BRISK、Fast Retina Keypoint (FREAK)、Local Difference Binary (LDB) algorithm等のアルゴリズムを用いて、検出された画像特徴の位置の近傍におけるサンプル点の組間の強度及び勾配比較試験の結果を連結させることで作成されても良い。
方法300は、ステップ330から選択ステップ340に進み、新たな位置に配置されたカメラ120により撮像されたフレーム群から第2のキーフレームが選択される。ある構成においては、カメラ120が第1のキーフレームを撮像したときの該カメラ120の位置から最小距離だけ該カメラ120が移動した後、ユーザは第2のキーフレームとしてフレームを選択する。ある構成においては、第2のキーフレームは、パッチマッチング処理に基づいてユーザにより選択される。マップ初期化モジュール1010は、メモリ206若しくは記憶モジュール209内で構成されているマップ190に、第2のキーフレームを格納するように構成されても良い。
またステップ340では、プロセッサ205は、ステップ330における第1のキーフレームについて決定した画像特徴の探索に基づいて、第1のキーフレームと第2のキーフレームとの間の画像特徴対応の集合を決定するために使用される。
第1のキーフレームと第2のキーフレームとの間の画像特徴対応の集合が決定された後、方法300はステップ350に進み、第1のキーフレーム及び第2のキーフレームを撮像したときのカメラ120のそれぞれの相対的なポーズが、プロセッサ205による実行の元で決定される。
ある構成においては、ステップ350において5点アルゴリズムが使用され、第1のキーフレーム及び第2のキーフレームに対してカメラ120の相対ポーズを決定する。5点アルゴリズムは、第1のキーフレーム及び第2のキーフレームに渡って5つの画像特徴対応をランダムに選択して基本行列(essential matrix)の推定を行うために使用される。基本行列の推定を行うたびに、Sampson distance measure (SD)等の目的関数が使用されて、少なくとも1000以上の画像特徴対応を用いて推定(すなわち残差)の品質を評価する。5点アルゴリズムは、画像特徴対応のそれぞれ異なるランダムな集合について、多数回数繰り返して実行されても良い。最も低いのスコア(すなわち最小SD)を与える基本行列が、第1のキーフレーム及び第2のキーフレームに対するカメラ120の相対ポーズについての最適な推定として選択される。
あるいは、8点アルゴリズム、7点アルゴリズム、6点アルゴリズムなどの他のアルゴリズムが、ステップ350においてカメラ120の相対ポーズを決定するために使用されても良い。
ステップ350において第1のキーフレーム及び第2のキーフレームに対してカメラ120の相対ポーズ(すなわち、位置及び姿勢)が決定した後は、方法300は、マップ作成ステップ360に進む。ステップ340において決定した画像特徴対応の組毎に、第1のキーフレームと第2のキーフレームとの間の相対ポーズと、画像特徴対応群の画像位置と、から三角測量を用いて、関連マップ点の3D座標が、ステップ360において決定される。ある構成においては、ステップ360においてマップ点の3D座標を決定するためにSampson approximationを用いた非線形三角測量法が用いられても構わない。あるいは、マップ点の3D座標を決定するために、Direct Linear Transformation algorithmに基づく線形三角測量法が、ステップ360において用いられても構わない。上述したように、ステップ310及び340のそれぞれで決定した第1のキーフレーム及び第2のキーフレームは、メモリ206若しくは記憶モジュール209内で構成されている3Dマップ190内に格納される。
ステップ360で決定したマップ点は、第1のキーフレームの座標系(世界座標系と呼称する)における3D点クラウド192を形成する。3D点クラウド192、第1のキーフレーム、及び第2のキーフレームは共同で、初期3Dマップ190を形成する。
他の構成において、3D点クラウド192は、シーン110の部分復元であり、基準マーカ群を用いてオフラインで生成される。そのような基準マーカの構成において、基準マーカ群は、マップ190のスケール及びグローバル座標を定義する。
さらなる構成において、3D点クラウド192は、例えば、フレーム群のサブセットについてstructure-from-motion若しくは3D reconstruction techniquesを実行することで、オフラインで構成されても良い。
さらなる構成において、プロセッサ205による実行の元、マップ初期化モジュール1010は、自動マップ初期化方法を用いて、第1のキーフレーム及び第2のキーフレームを選択しても良い。例えば、第1のキーフレーム及び後続フレームについて決定した対応画像特徴の集合に、ホモグラフィー若しくはエピポーラ幾何モデルの何れがよりフィットしているのかを判断するために、Geometric Robust Information Criterion (GRIC) algorithmが第1のキーフレーム及び後続フレームに対して適用されても構わない。最低のスコアを有するモデルが最もフィットする。ホモグラフィーモデルは、第1のキーフレーム及び第2のキーフレームは同平面の画像であるとしており、且つ移動カメラ120の変位が小さい場合に、対応画像特徴の集合によりフィットしている。移動カメラ120のその初期位置からの変位が増えるにつれ、ホモグラフィー若しくはエピポーラ幾何モデルが同等となり、最終的には、エピポーラ幾何モデルがホモグラフィーベースのモデルをしのぐ。ある構成において、エピポーラ幾何モデルに基づいて決定されるGRICスコアが、ホモグラフィーモデルに基づいて決まるGRICスコアを下回る場合、第1のキーフレームの後のフレームであって、追跡できた画像特徴の数が追跡した画像特徴の数の90%を超えた最初のフレームを、第2のキーフレームとして選択する。
ここで、図1のトラッカーソフトウェアモジュール1022について、図4を参照して更に詳細に説明する。トラッカーソフトウェアモジュール1022は、カメラモーションモデルに基づく、移動カメラ120の現在のポーズの初期推定を提供する。そしてトラッカーソフトウェアモジュール1022は、3D点クラウド192中の観察マップ点に基づいて、現在のポーズの初期推定をリファインする。
ここで、トラッカーソフトウェアモジュール1022により実行される、移動カメラ120のポーズを決定する方法400について、図4を参照して詳細に説明する。方法400は、トラッカーソフトウェアモジュール1022を構成する、ハードディスクドライブ210内に常駐し且つプロセッサ205によりその実行が制御されるソフトウェアコードモジュールのうちの1以上により実行される。方法400について、一例として、移動カメラ120を参照して説明する。
方法400は検索ステップ410で開始し、移動カメラ120により撮像されたフレームが検索される。例えば、フレームは、メモリ206から検索されても良いし、記憶モジュール209から検索されても良い。また、ステップ410では、プロセッサ205による実行の元で、トラッカーモジュール1022により、検索されたフレームから画像特徴が抽出される。ある構成においては、検索されたフレームにおける画像特徴の位置がFASTアルゴリズムを用いて検出される。
方法400は、検索ステップ410から推定ステップ420へと続き、移動カメラ120の現在のカメラポーズが、カメラモーションモデルから推定される。ある構成においては、decaying-velocity modelがステップ410において使用され、移動カメラ120のポーズを推定する。モーションモデルは、α、βが一定の簡単なvelocity modelと同様であって、且つ改良された安定性のための減衰項を有していても良い。追跡により、カメラ120のポーズの何れかの新たな測定を得ることができなかった場合には、ステップ420で推定したカメラポーズは徐々に速度を落とし、最終的には止まる。
他の構成においては、ステップ420において線形velocity modelを使用して、移動カメラ120のポーズを推定する。更に他の構成においては、カメラ120は静止しているとする。
方法400は、ステップ420から投影ステップ430に進み、プロセッサ105による実行の元、トラッカーモジュール1022は、ステップ420で生成した推定カメラポーズに基づいて、ステップ410で検索したフレーム(すなわち「現フレーム」)にマップ点群192を投影する。一例として、ステップ360において決定したマップ点群192は、検索されたフレームに投影されても良い。ステップ360で決定したマップ点群192は先ず、世界座標系(すなわち、第1のキーフレームの座標系)から、ローカルカメラ座標フレームに、以下の式(1)に従って変換される。
ここで、(X,Y,Z)は、世界座標系におけるマップ点の座標を表し、(X,Y,Z)は、カメラ120の推定されたポーズの視点におけるマップ点の座標を表す。
そして、現フレームにおけるマップ点の画像座標は、以下の式(2)に従って決定される。
ここで、(x、y)は、マップ点の予測画像座標であり、Kは以下に示す3×3のマトリクスである。
ここで、f、fは、水平方向、垂直方向の焦点距離を表し、c、cは、主点を表し、γは、x軸とy軸との間のスキュー係数を表す。f、f、c、c、γは、何らかの適切なカメラキャリブレーションアルゴリズムにより計算される。
マップ点の予測位置が、現フレームのサイズの所定の閾値内であれば、マップ点は、現フレーム内で可視であると判断される。
ステップ430の後、方法400は検索ステップ440に進み、プロセッサ205による実行の元、トラッカーモジュール1022は、3次元空間内におけるマップ点群192が投影される画像特徴を決定するために使用される。上述したように、決定される画像特徴は、例えば、点、線分、コーナー、若しくは曲線を含む。画像特徴の決定において、トラッカーモジュール1022は、ステップ430で決定したマップ点群の予測位置の周囲で、現フレームにおける決定されたマップ点群のうち可視のマップ点群を検索する。
ステップ440においては、可視のマップ点毎に、画像中のマップ点の第1の観測位置を中心とするm×mのパッチが生成される。ある構成においては、mは8に設定される。そしてm×mのパッチは、上記の第1の観測位置とカメラ120の現在位置との間の視点変更を考慮するために、歪ませる。個々の画素値から平均画素強度が減じられ、ライティングの変更に幾分かの弾性を与える。そしてパッチ検索は、プロセッサ205による実行の元で現フレームについて実行され、現フレームにおいて最もマッチングするパッチを決定する。パッチ検索は、検索領域内の全ての画像特徴(例えばFASTコーナー)の位置における二乗差の総和(ZSSD)スコアを評価し、最も小さい差分スコアを有する(すなわち、現フレームの)位置を選択することにより、実行されても良い。マップ点は、ZSSDスコアが所定の閾値よりも小さい場合に求められるように考慮されても良い。
現フレームは、サブ画像領域に分割される。求めたマップ点群に対応する画像特徴のヒストグラムが、現フレーム中の複数のサブ画像領域について作成される。ヒストグラムは、現フレームのそれぞれのサブ画像領域において求めたマップ点群に対応する決定された画像特徴の数を判断するために作成される。1以上のサブ画像領域は、作成したヒストグラムに基づいて、未観測領域の部分として判断されても良い。
もし、サブ画像領域が含む、求めたマップ点群に対応する画像特徴の数が所定の閾値よりも小さい場合には、サブ画像領域は、未観測領域の一部として判断される。現フレーム中の求めたマップ点群の総数は、全てのサブ画像領域に渡るヒストグラムの合計となる。
ある構成において、現フレームは、M×Nのセル群のグリッドに分割される。グリッド内のセル群の各々は、サブ画像領域としても良い。未観測領域は、求めたマップ点群に対応する、事前定義済みの数よりも小さい数の画像特徴を含むセル群の矩形領域である。隣接する未観測領域は、より大きい未観測領域を形成するためにマージされても良い。
他の構成において、サブ画像領域は、イレギュラーな形状及びサイズ(例えば、スーパーピクセル群)を有していても良い。未観測領域は、事前規定済みの(若しくは「所定の」)閾値よりも少ない求めたマップ点群に対応する画像特徴の密度で隣接するスーパーピクセルを連結させることで形成されても構わない。
検索ステップ440に続いて、方法400はリファインステップ450に進み、プロセッサ105による実行の元で、トラッカーモジュール1022は、求めたマップ点群を用いて、ステップ420において推定したカメラ120の現在のポーズ(すなわち位置及び姿勢)をリファインする。推定されたポーズは、求めたマップ点群の実際の画像特徴位置と、カメラ120の現在の推定されたポーズに基づく求めたマップ点群の予測位置と、の間の差分を減少させる最小化アルゴリズムを用いて繰り返しリファインされても良い。ある構成においては、ステップ450において使用される最小化アルゴリズムは、Levenberg-Marquardt(LM)アルゴリズムなどの逐次最小二乗アルゴリズムである。あるいは、ステップ420で決定したカメラ120の推定ポーズをリファインするために、Gauss-Newton法や勾配降下法が使用されても良い。ステップ450において決定した現在のポーズのリファインされた推定は、カメラ120の現在のポーズの正確且つ信頼性の高い決定を提供する。
そして方法400は、ステップ450から決定ステップ460に進む。ステップ460においては、プロセッサ105による実行の元で、トラッカーモジュール1022は、未観測領域の最大連結領域に基づいて、現フレームをキーフレームとして選択する。ステップ460において実行される、フレームをキーフレームとして選択する方法500について、図5を参照して、以下に詳細に説明する。方法500によれば、トラッカーモジュール1022は、現フレームが、3Dマップ190に対して候補キーフレームとして追加されるべきか否かを判断する。現フレームは、未観測領域の最大連結領域に基づいて、メモリ206内に構成される候補キーフレームリストに挿入される。
方法500は、ハードディスクドライブ210上で常駐し且つその実行がプロセッサ205により制御される、トラッカーソフトウェアモジュール1022を形成するソフトウェアコードモジュールのうちの1以上によって実行される。方法500は、現フレームが、候補キーフレームとして選択されるべきであるか否かを判断する。現フレームは、未観測領域のサイズに基づいて、候補キーフレームとして選択される。方法500は、現フレームを候補キーフレームリストに追加し、且つ未観測領域の最大連結領域のサイズに基づいて、リスト内の全ての候補キーフレームのち現フレームに対して優先順位を付ける。現フレームは、マッパモジュール1024に使用されて、3Dマップ190を拡張しても構わない。
方法500は、決定ステップ510で開始し、プロセッサ205による実行の元、トラッカーソフトウェアモジュール1022が、トラッキングの品質が所定の閾値Tよりも大きいか否かを判断する。トラッキングの品質が閾値Tを超えている場合には、方法500はステップ520に進む。トラッキングの品質が閾値Tを超えていない場合には、方法500は終了し、現フレームは破棄される。
他の構成において、トラッキングの品質は、求めたマップ点群の数と、可視のマップ点群の数と、の比として定義される。求めたマップ点群の数は、方法400のステップ440において決定した全てのセルについてのヒストグラムの和である。ある構成においては、閾値Tは0.3に設定される。他の構成においては、トラッキングの品質は、現画像において求めたマップ点群の最小数として定義しても構わない。
決定ステップ520において、プロセッサ205による実行の元、トラッカーソフトウェアモジュール1022は、最後にキーフレームが3Dマップ190に追加されてからの時間が、所定の閾値Tを超えたか否かを判断する。最後にキーフレームが3Dマップ190に追加されてからの経過時間の量が閾値T2を超えた場合には、方法500はその後、ステップ530に進む。最後にキーフレームが3Dマップ190に追加されてからの経過時間の量が閾値T2を超えていない場合には、方法500はステップ500に進み、未観測領域の最大連結領域を決定する。
ある構成においては、閾値Tは、0.67秒に設定される。他の構成においては、閾値Tは、最後にキーフレームが3Dマップ190に追加された後に処理される画像の最小数であっても良い。
ステップ520に続いて、方法500は、決定ステップ530に進む。ステップ530では、トラッカーソフトウェアモジュール1022は、プロセッサ205による実行の元、カメラ120の現在位置と、最も近いキーフレームに対応するカメラの位置と、の間の最小距離が、所定の閾値Tを超えたか否かを判断する。最小距離は、シーン深さの関数であっても良い。ある構成においては、閾値Tは、シーン深さの10分の1に設定される。
カメラ120の現在位置と、最も近いキーフレームに対応するカメラ120の位置と、の間の最小距離が、所定の閾値Tを超えた場合には、方法500はステップ540に進み、現フレームをキーフレームとして追加する。カメラ120の現在位置と、最も近いキーフレームに対応するカメラ120の位置と、の間の最小距離が、所定の閾値Tを超えていない場合には、方法500は決定ステップ550に進む。
ステップ550では、プロセッサ205による実行の元、トラッカーソフトウェアモジュール1022は、現フレームにおける未観測領域の最大連結領域(R)を決定する。方法500は、ステップ440で作成したヒストグラムに基づいて未観測であるとして判断された現フレームのサブ画像領域を、隣接する未観測サブ画像領域と連結させる。最大数の連結サブ画像領域による未観測領域のエリアが決定される。
ある構成においては、未観測領域は、所定の形状及びサイズを有する。例えば、図10は、8×6のグリッド1000について、8個のプリミティブな画像領域1001,1002,1003,1004,1005,1006,1007,1008を示す。図10の例において、プリミティブな領域は、その領域内の全てのセルがステップ440において未観測であるものとして判定された場合に、未観測であると考えられる。所定領域のサイズは、未観測領域を決定するために用いられる。そのような所定領域内の画像特徴の数は、未観測領域を決定するために用いられても良い。
隣接するプリミティブな未観測領域は共に結合されて、大きな未観測領域を形成しても良い。ステップ500において決定した最大連結領域は、メモリ206に格納される。
現フレームにおける未観測領域の最大連結領域が決定されると、方法500は決定ステップ560に進む。ステップ560において、ステップ550で決定した未観測領域の最大連結領域が現フレームのほとんどの部分を占めている場合には、方法500は追加ステップ570に進む。一方、そうでない場合には、方法500は終了し、現フレームは破棄される。
ステップ570では、トラッカーソフトウェアモジュール1022は、プロセッサ205による実行の元、現フレームを候補キーフレームとして、メモリ206内で構成されている候補キーフレームリストに追加する。現フレームはまた、リスト中の全ての候補キーフレームのうちで優先順位が付けられる。方法500は、現フレームが、リスト中の他の全ての候補キーフレームと比べて、未観測領域の最も大きい最大未連結領域を有する場合には、現フレームに対して、より高い優先度を与える。
ある構成においては、未観測領域の最大連結領域は、候補キーフレームのリストに追加されるためには、ステップ560において、所定のサイズ閾値よりも大きい必要がある。方法500は、未観測領域のサイズが所定のサイズ閾値よりも大きいか否かを判断するように構成される。例えば、サイズ閾値は、現フレームのサイズの15%に設定されても良い。他の構成においては、サイズ閾値は、画像中の未観測領域の形状及び局所性(locality)に基づいている。例えば、図10に示す如く、1つのフレームを表していても良いグリッド1000のコーナーにおける未観測領域に対するサイズ閾値は、グリッド1000の辺に沿う未観測領域のサイズよりも小さい。また、グリッド1000のトップ若しくはボトムの画像境界に沿う未観測領域に対するサイズ閾値は、左若しくは右の境界に沿う領域に対するサイズ閾値とは異なる。
マッパソフトウェアモジュール1024は、3Dマップ190を保持してリファインする。3Dマップ190を保持してリファインする方法600について、図6を参照して詳細に説明する。方法600は、ハードディスクドライブ210上で常駐し且つその実行がプロセッサ205により制御される、マッパソフトウェアモジュール1024を形成するソフトウェアコードモジュールのうちの1以上によって実行される。
方法600は、決定ステップ610で開始し、プロセッサ205による実行の元、マッパソフトウェアモジュール1024は、3Dマップ190に追加されるために待機している候補キーフレームがあるか否かを判断する。候補キーフレームリストが空である場合には、方法600はステップ650に進み、候補キーフレームリストが空ではない場合には、方法600は選択ステップ620に進み、候補キーフレームを3Dマップ190に追加する。
選択ステップ620では、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、新たなキーフレームとしてステップ550で特定された未観測領域のサイズの最も大きい最大連結領域を有する候補キーフレームを選択し、リスト中の他の全ての候補キーフレームを破棄する。
ステップ620に続いて、方法600は選択ステップ630に進む。ステップ630において、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、現キーフレームを選択して、三角測量のために、ステップ620において選択した新たなキーフレームと組み合わせる。例えば、図9は、シーン110の2つのビューを表す、現キーフレーム901と、新たなキーフレーム902と、を示す。現キーフレーム901は、領域A及び領域C(すなわちA+C)の合計により表される。新たなキーフレーム902は、トラッカーソフトウェアモジュール1022によりステップ550で決定された未観測領域903により構成されている。図9の例のために、未観測領域903は矩形により表され、異なる形状及びサイズを有する。この未観測領域903の部分は、現キーフレーム901内で可視の可能性があり、新たなキーフレーム902と関連づけられている視点における移動カメラ120の位置及び姿勢とシーン100の推定された深さとに基づいて、新たなキーフレーム902内における未観測領域903をシーン110に逆投影(若しくは「投影」)することで推定される。未観測領域903の逆投影は、シーン内の仮想3D平面905を形成する。そして仮想3D平面905は、現キーフレーム901と関連づけられている移動カメラ120の以前に(例えば、ステップ350若しくはステップ450において)決定した位置及び姿勢に基づいて、現キーフレーム901に投影される。仮想3D平面の投影は、現キーフレーム901と関連づけられている視点における投影未観測領域907を定義する。投影未観測領域907は、領域Aと領域Bとの合計(すなわちA+B)により表される。しかしながら、現キーフレーム901は、領域Aにより表される該投影未観測領域907の部分909のみを撮像している。領域Bは、現キーフレーム901の一部ではない。
そして方法600は、現キーフレームの範囲内に収まる投影未観測領域の部分(すなわちA)と、投影未観測領域の全体領域(すなわちA+B)と、の比(すなわちA/A+B)を決定するように構成される。そして、ステップ550において特定された未観測領域の最大連結領域に対応する最大重複を有するキーフレームが選択される。従って、キーフレームは、サイズ及び比のうちの少なくとも1つに基づいて選択される。キーフレームを選択して新たなキーフレームと組み合わせる、ステップ630において実行される方法700について、図7を参照して、以下で更に詳細に説明する。
方法600はその後、ステップ630から作成ステップ640へと続き、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、三角測量を用いて、新たなマップ点群を作成する。ある構成においては、トラッカーソフトウェアモジュール1022は既に、ステップ410で決定した新たなキーフレーム中の画像特徴の集合を特定している。Shi-Tomasiスコアに基づくNon-maximal suppression and thresholdingを用いて、最も顕著な画像特徴を特定しても構わない。そして方法600は、図4のステップ440で決定した、観測に成功した現マップ点群の近くの顕著な画像特徴を破棄する。残っている顕著な画像特徴のそれぞれについて、選択されたキーフレーム中の一致する画像特徴が、エピポーラ検索を実行することで決定される。エピポーラ線から小さな距離だけ離れた、選択されたキーフレーム中の決定された画像特徴は、ZSSDを用いて、顕著な画像特徴と比較される。一致したものが見つかった場合には、新たな点について三角測量を行って、マップ190に挿入される。選択されたキーフレーム中の画像特徴の比較は、全てのマッチング対応が3D点クラウド192に追加されるまで繰り返し、そして方法600は、ステップ610に戻る。
ステップ610に戻り、候補キーフレームリストが空であれば、方法600は、決定ステップ650に進む。ステップ650において、バンドル調整が既に収束している場合には、方法600はその後、拡張ステップ670に進む。バンドル調整がまだ収束していない場合には、方法600はその後、調整ステップ660に進み、更なるバンドル調整を実行する。
ステップ660において、3Dマップ点群の座標及び全てのキーフレームのポーズは、バンドル調整によってリファインされる。ある構成において、グローバルバンドル調整は、キーフレーム群及び3Dマップ点群の全体集合を用いて、方法600において実行される。
他の構成において、ローカルバンドル調整は先ず、新たなキーフレーム及びその4近傍について実行される。そしてローカルバンドル調整は、キーフレーム群及び3Dマップ点群の全体集合を用いるグローバルバンドル調整に続く。方法600は、バンドル調整が収束するか、若しくは最大繰り返し回数に達した場合には、ステップ610に戻る。
ステップ650に戻って、バンドル調整が収束した場合には、方法600は、ステップ670に進む。ステップ670では、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、過去のキーフレームについて新たな測定を行うことで3Dマップ190を改良する。ある構成においては、最近追加されたそれぞれの3Dマップ点について、方法600は、他の全てのキーフレームについて繰り返し処理することでエピポーラ検索を行い、これにより、過去のキーフレーム内で一致する画像特徴を見つける。過去のキーフレームにおいて一致するものが見つかった場合には、方法600は、この新たな測定結果をマップに追加する。他の構成において、連続して異常値として分類された観測結果及びマップ点群は、バンドル調整によって削除されても良い。さらなる他の構成において、ステップ670では、全てのキーフレームについてエピポーラ検索が行われるときに、同時に、1つの3Dマップ点が処理されても良い。ステップ670に続いて、方法600は、ステップ610に戻って、新たな候補キーフレームをチェックし、候補キーフレームリストが空で且つバンドル調整が収束した場合には、ステップ670に復帰する。
他の構成において、マッパソフトウェアモジュール1024は、新たな候補キーフレームが候補キーフレームリストに追加されると、中断する。そのような実施形態において、マッパソフトウェアモジュール1024は、新たなマップ点群ができるだけ早くにマップ190に追加可能となるように、ステップ610に戻る。
3Dマップ190がより迅速に拡張可能となるように、ステップ630では、マッパソフトウェアモジュール1024は、図6のステップ620で選択された新たなキーフレーム内の未観測領域の最大連結領域に対応する最大の重複を有する現キーフレームを選択する。未観測領域内の重複エリアを最大化するためにキーフレームを選択して新たなキーフレームと組み合わせる、ステップ630で実行される方法700について、図7,8,9を参照して説明する。方法700は、ハードディスクドライブ210上で常駐し且つその実行がプロセッサ205により制御される、マッパソフトウェアモジュール1024を形成するソフトウェアコードモジュールのうちの1以上によって実行される。
方法700は、決定ステップ710で開始し、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、ステップ620で選択した新たなキーフレーム902内のステップ550で決定した未観測領域903に対応する画像領域を決定する。画像領域は、現キーフレーム901のビューポイントおいて決定される。現キーフレーム901は、新たなキーフレーム902に対する「前の」フレームとしても良い。ある構成において、画像領域は、新たなキーフレーム902の視点における移動カメラ120の決定された位置及び姿勢とシーン110の推定された深さとに基づいて、新たなキーフレーム902内で特定された未観測領域の四隅をシーン110に逆投影することで、ステップ710で推定される。未観測領域903の四隅の逆投影は、シーン110内の仮想3D平面905を定義する。そして仮想3D平面905は、現キーフレーム901の視点で投影される。未観測領域903は、前のフレームに関連づけられている視点で投影される。図9における領域A及びBは、現キーフレーム901の視点において、ステップ550で新たなキーフレーム902において決定した対応未観測領域903を表す。
次の決定ステップ720において、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、投影された未観測領域(すなわち図9のA+B)及び現キーフレーム内の領域(すなわちA)のサイズを決定する。投影された未観測領域(すなわち図9のA+B)及び現キーフレーム内の領域(すなわちA)のサイズは、「The Surveyor’s Area Formula」を用いて決定しても良い。
ステップ720に続いて、方法700は決定ステップ730に進み、現キーフレーム901についてスコアが決定される。ソフトバリュ−ロジックの集合を使用して、最高スコアのキーフレームを選択することで、未観測領域903内のマップ190に追加されるものと予測されるマップ点の数を最大化するように、キーフレームに対するスコアを決定しても良い。
図8A,8B,8C,8D,8E,9を参照すると、新たなキーフレームと組み合わされるキーフレームに対するスコアは、以下の式(3)に従って決定される。
(i) Scorebdは、現キーフレーム901の位置と新たなキーフレーム902の位置との間のベースライン距離の尺度である。図8Aからも分かるように、Scorebdの値は、求めた全てのマップ点の新たなキーフレーム902のカメラ位置までの距離から決定される推定シーン深さ(すなわちシーン110の深さ)の10分の1でピークとなる。Scorebdの値は、ベースライン距離が増えるほどゆっくりと0へと減少する。Scorebdはまた、推定されたシーン深さの10分の1よりも小さい距離については、ベースライン距離が三角測量には小さすぎるので、0である。
(ii) Scorevdは、現キーフレーム901の視線方向と新たなキーフレーム902の視線方向との差分の尺度である。図8Bにおいて示されるように、Scorevdの値は、視線方向の差分が10度から30度の間であれば1である。Scorevdは、角度が10度から0度及び30度から45度の間で減少するにつれて減少する。Scorevdは、45度以上の角度に対しては0になる。45度以上の角度について、視点差分は、パッチマッチング及びエピポーラ検索が無効となるケースにおいては、大きすぎると考えられる。
(iii) 図8Eを参照すると、Scoreは、未観測領域903における検出された画像特徴の密度の尺度である。Scoreは、現キーフレーム901が未観測エリア内にフラットカラー領域を有する場合に、現キーフレーム901を選択することを避けるために使用される。
(iv) 図8Cを参照すると、Scoreorkは、現キーフレーム(すなわちA)内の未観測領域のサイズの尺度である。ある構成において、Scoreorkの値は、シーン110の推定される深さに基づいて、図5のステップ550で決定した未観測領域903の最大連結領域を、シーン110に逆投影することで近似される。そして、未観測領域903の逆投影を表す仮想3D平面905は、現キーフレーム901の視点に投影される。
図9の例に示す如く、投影された未観測領域907は、「A」で示される、現キーフレーム901と部分的に重複するだけである。図9において「B」は、現キーフレーム901の外側の未観測領域の部分を表す。ある構成において、Scoreorkは、未観測領域Aの現キーフレーム901におけるパーセンテージに関するものである。未観測領域Aの現キーフレーム901におけるパーセンテージが0%から40%に増えると、スコアorkは0から1に増加する。また、未観測領域Aの現キーフレーム901におけるパーセンテージが50%に達すると、50%というパーセンテージは、現キーフレーム901について推定したポーズは不正確であるかもしれないことを示しているため、Scoreorkは0まで減少する。50%というパーセンテージについては、求めたマップ点群が現キーフレーム901の比較的小さな画像領域内に集中しているので、現キーフレーム901について推定したポーズは不正確かもしれない。
(v) Scoreorfは、現キーフレーム内に収まる投影未観測領域の部分(すなわちA)と、投影未観測領域の全体領域(すなわちA+B)と、の間の比率に関するものである。図8Dにおいて示されるように、Scoreorfは、投影未観測領域の全体が現キーフレーム901内に含まれている場合に最大となる。Scoreork及びScoreorfは共に、2つのキーフレームが同様のシーン深さを有するように且つシーン110における未観測領域の同様のエリアを見るように促すものである。パラメータα、β、γ、δ、ρは、ヒューリスティックに得ることができる。ある構成において、α、β、γ、δ、ρはそれぞれ、0.1,0.15,0.15,0.5,0.1に設定される。
方法700は、次の決定ステップ740に続き、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、マップ190中に、新たなキーフレームと組み合わせ可能なキーフレームが存在するか否かを判断する。処理すべきキーフレームが存在する場合には、方法700はステップ710に戻り、残っているキーフレームについてスコアを計算する。方法700が、存在する全てのキーフレームについてスコアを計算した場合には、処理は選択ステップ750に進み、画像をキーフレームとして選択し、存在する全てのキーフレームのうち新たなキーフレームと組み合わせる。
存在する全てのキーフレームについてスコアが決定すると、方法700はその後、ステップ750に進み、マッパソフトウェアモジュール1024は、プロセッサ205による実行の元、最も高いスコアのキーフレームを選択して、新たなキーフレームと組み合わせる。
産業上の利用可能性
マルチビューディジタル画像を処理する多くの方法、装置、コンピュータプログラム。それぞれは、上述した複数の画素を有する。
上述した構成は、コンピュータ及びデータ処理産業に適用可能であり、特に画像処理に適用可能である。
以上、本発明のいくつかの実施形態のみを説明したが、本発明の範囲及び精神から逸脱することなく、それらの実施形態に対して変形及び/又は変更を実施可能である。実施形態は単なる例であり、本発明を限定しない。本明細書の記述に関して、「備える」という用語は、「主に含むが、単独で必要ではない」又は「有する」又は「含む」ことを意味し、「〜のみから構成される」という意味ではない。「備える」の語形変化は、それに対応して意味の変化を示す。
[関連特許出願の参照]
本出願は、2013年10月4日に出願されたオーストラリア国特許出願第2013237718号についての優先権を、35U.S.C.セクション119に基づいて請求するものであり、その全ての記載内容の参照により本出願に援用する。

Claims (14)

  1. カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する方法であって、
    前記カメラにより撮像されたフレームを取得する取得工程と、
    前記フレームに3次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する選択工程と
    を有することを特徴とする方法。
  2. 更に、
    前記フレームに3次元空間におけるマップ点群を投影する投影工程を有することを特徴とする請求項1に記載の方法。
  3. 前記選択工程は、
    前記フレーム内部分領域ごとに、前記投影された3次元空間におけるマップ点群に対応する特徴を決定する工程と、
    前記フレーム内部分領域について前記決定した特徴のヒストグラムを作成する工程と、
    前記作成されたヒストグラムに基づいて、前記フレーム内部分領域のうちの1つを未観測領域として決定する工程と
    を有することを特徴とする請求項に記載の方法。
  4. 更に、前記未観測領域のサイズに基づいて前記フレームに優先順位を付ける工程を有する、ことを特徴とする請求項に記載の方法。
  5. 更に、
    前のフレームと関連づけられている視点で前記未観測領域を投影する工程と、
    前記前のフレーム内の前記投影された未観測領域のサイズを決定する工程と、
    前記投影された未観測領域に対する前記決定されたサイズの比を決定する工程とを有し、前記フレームは、前記決定されたサイズ及び前記決定された比のうちの少なくとも1つに基づいて選択されることを特徴とする請求項に記載の方法。
  6. 更に、前のフレームと関連づけられている視点で前記未観測領域を投影する工程を有し、前記未観測領域の投影は、前記視点における前記カメラの位置及び姿勢に基づいていることを特徴とする請求項に記載の方法。
  7. 更に、前記選択されたフレームの部分領域における特徴の数が、所定の閾値よりも少ないか否かを判断する工程を有することを特徴とする請求項1に記載の方法。
  8. 前記選択工程では、前記部分領域内の特徴の密度が所定の閾値よりも低い場合に、該部分領域を未観測領域として決定することを特徴とする請求項1に記載の方法。
  9. 更に、前記未観測領域のサイズが所定の閾値よりも大きいか否かを判断する工程を有することを特徴とする請求項に記載の方法。
  10. 前記未観測領域を決定するために所定の領域のサイズが用いられることを特徴とする請求項に記載の方法。
  11. 前記未観測領域を決定するために、所定の領域内の特徴の数が用いられることを特徴とする請求項に記載の方法。
  12. カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する装置であって、
    前記カメラにより撮像されたフレームを取得する取得手段と、
    前記フレームに3次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する手段と
    を有することを特徴とする装置。
  13. カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択するシステムであって、
    データ及びコンピュータプログラムを格納するメモリと、
    前記コンピュータプログラムを実行するために前記メモリと結合されているプロセッサとを有し、該コンピュータプログラムは、
    前記カメラにより撮像されたフレームを取得し、
    前記フレームに3次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する
    ための命令を有する
    ことを特徴とするシステム。
  14. コンピュータに、請求項1乃至11の何れか1項に記載の方法の各工程を実行させるためのコンピュータプログラム。
JP2014181570A 2013-10-04 2014-09-05 フレームを選択する方法、装置、及びシステム Expired - Fee Related JP5950973B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2013237718A AU2013237718A1 (en) 2013-10-04 2013-10-04 Method, apparatus and system for selecting a frame
AU2013237718 2013-10-04

Publications (2)

Publication Number Publication Date
JP2015079490A JP2015079490A (ja) 2015-04-23
JP5950973B2 true JP5950973B2 (ja) 2016-07-13

Family

ID=52776999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014181570A Expired - Fee Related JP5950973B2 (ja) 2013-10-04 2014-09-05 フレームを選択する方法、装置、及びシステム

Country Status (3)

Country Link
US (1) US9811733B2 (ja)
JP (1) JP5950973B2 (ja)
AU (1) AU2013237718A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9589362B2 (en) 2014-07-01 2017-03-07 Qualcomm Incorporated System and method of three-dimensional model generation
US9607388B2 (en) 2014-09-19 2017-03-28 Qualcomm Incorporated System and method of pose estimation
US10185775B2 (en) * 2014-12-19 2019-01-22 Qualcomm Technologies, Inc. Scalable 3D mapping system
US10521472B2 (en) * 2015-02-27 2019-12-31 Realnetworks, Inc. Composing media stories method and system
US11501406B2 (en) 2015-03-21 2022-11-15 Mine One Gmbh Disparity cache
WO2019113215A1 (en) * 2017-12-05 2019-06-13 Mine One Gmbh Disparity cache
US10853625B2 (en) 2015-03-21 2020-12-01 Mine One Gmbh Facial signature methods, systems and software
WO2016154123A2 (en) 2015-03-21 2016-09-29 Mine One Gmbh Virtual 3d methods, systems and software
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
CA3008886A1 (en) 2015-12-18 2017-06-22 Iris Automation, Inc. Real-time visual situational awareness system
CN107025661B (zh) * 2016-01-29 2020-08-04 成都理想境界科技有限公司 一种实现增强现实的方法、服务器、终端及系统
JP6775969B2 (ja) * 2016-02-29 2020-10-28 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
US10341568B2 (en) 2016-10-10 2019-07-02 Qualcomm Incorporated User interface to assist three dimensional scanning of objects
US9807359B1 (en) * 2016-11-11 2017-10-31 Christie Digital Systems Usa, Inc. System and method for advanced lens geometry fitting for imaging devices
SG11201908974XA (en) * 2017-03-29 2019-10-30 Agency Science Tech & Res Real time robust localization via visual inertial odometry
US10671881B2 (en) 2017-04-11 2020-06-02 Microsoft Technology Licensing, Llc Image processing system with discriminative control
JP6762913B2 (ja) * 2017-07-11 2020-09-30 キヤノン株式会社 情報処理装置、情報処理方法
CN109325978B (zh) 2017-07-31 2022-04-05 深圳市腾讯计算机系统有限公司 增强现实显示的方法、姿态信息的确定方法及装置
WO2019035155A1 (ja) * 2017-08-14 2019-02-21 楽天株式会社 画像処理システム、画像処理方法、及びプログラム
CN107300633B (zh) * 2017-08-23 2019-12-20 上海船舶研究设计院(中国船舶工业集团公司第六0四研究院) 电流源型变频器电网电压观测方法、装置及系统
CN108898661B (zh) * 2018-05-31 2023-04-18 深圳先进技术研究院 三维图像构建的方法、装置及具有存储功能的装置
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
CN109272523B (zh) * 2018-08-13 2021-03-16 西安交通大学 基于改进cvfh和crh特征的随机堆放活塞位姿估计方法
US10957112B2 (en) * 2018-08-13 2021-03-23 Magic Leap, Inc. Cross reality system
CN109636905B (zh) * 2018-12-07 2023-01-24 东北大学 基于深度卷积神经网络的环境语义建图方法
CN110674347B (zh) * 2019-09-02 2022-04-01 南京邮电大学 视觉屏蔽双层ap视频摘要生成方法
WO2021163300A1 (en) 2020-02-13 2021-08-19 Magic Leap, Inc. Cross reality system with map processing using multi-resolution frame descriptors
US10861175B1 (en) * 2020-05-29 2020-12-08 Illuscio, Inc. Systems and methods for automatic detection and quantification of point cloud variance
US11210862B1 (en) * 2020-06-25 2021-12-28 Microsoft Technology Licensing, Llc Data selection for spatial reconstruction
US11055428B1 (en) 2021-02-26 2021-07-06 CTRL IQ, Inc. Systems and methods for encrypted container image management, deployment, and execution

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674507B2 (en) * 2013-04-30 2017-06-06 Qualcomm Incorporated Monocular visual SLAM with general and panorama camera movements

Also Published As

Publication number Publication date
JP2015079490A (ja) 2015-04-23
US20150098645A1 (en) 2015-04-09
US9811733B2 (en) 2017-11-07
AU2013237718A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP5950973B2 (ja) フレームを選択する方法、装置、及びシステム
US10373380B2 (en) 3-dimensional scene analysis for augmented reality operations
JP5722502B2 (ja) モバイルデバイスのための平面マッピングおよびトラッキング
JP6043856B2 (ja) Rgbdカメラを用いた頭部ポーズ推定
TWI485650B (zh) 用於多相機校準之方法及配置
US9420265B2 (en) Tracking poses of 3D camera using points and planes
US10535160B2 (en) Markerless augmented reality (AR) system
US20150029222A1 (en) Dynamically configuring an image processing function
US9679384B2 (en) Method of detecting and describing features from an intensity image
US20180018805A1 (en) Three dimensional scene reconstruction based on contextual analysis
JP2019075082A (ja) 深度値推定を用いた映像処理方法及び装置
JP7017689B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
US20190026948A1 (en) Markerless augmented reality (ar) system
US20170070724A9 (en) Camera pose estimation apparatus and method for augmented reality imaging
JP2018523881A (ja) データを位置合わせする方法及びシステム
JP2016070674A (ja) 3次元座標算出装置、3次元座標算出方法および3次元座標算出プログラム
WO2018080848A1 (en) Curated photogrammetry
US10607350B2 (en) Method of detecting and describing features from an intensity image
JP6240706B2 (ja) グラフマッチングおよびサイクル検出による自動モデル初期化を用いた線トラッキング
CN109902675B (zh) 物体的位姿获取方法、场景重构的方法和装置
CN110490131B (zh) 一种拍摄设备的定位方法、装置、电子设备及存储介质
WO2020024845A1 (zh) 定位方法和装置
JP2006113832A (ja) ステレオ画像処理装置およびプログラム
Elloumi et al. Tracking orthogonal vanishing points in video sequences for a reliable camera orientation in manhattan world
McClean An Augmented Reality System for Urban Environments using a Planar Building Fa cade Model

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160607

R151 Written notification of patent or utility model registration

Ref document number: 5950973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees