JP2017129567A - 情報処理装置、情報処理方法、プログラム - Google Patents

情報処理装置、情報処理方法、プログラム Download PDF

Info

Publication number
JP2017129567A
JP2017129567A JP2016224576A JP2016224576A JP2017129567A JP 2017129567 A JP2017129567 A JP 2017129567A JP 2016224576 A JP2016224576 A JP 2016224576A JP 2016224576 A JP2016224576 A JP 2016224576A JP 2017129567 A JP2017129567 A JP 2017129567A
Authority
JP
Japan
Prior art keywords
orientation
feature
image
information processing
processing apparatus
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.)
Pending
Application number
JP2016224576A
Other languages
English (en)
Other versions
JP2017129567A5 (ja
Inventor
真一 荒谷
Shinichi Araya
真一 荒谷
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
Priority to PCT/JP2016/005165 priority Critical patent/WO2017125983A1/en
Priority to US16/070,235 priority patent/US10930008B2/en
Publication of JP2017129567A publication Critical patent/JP2017129567A/ja
Publication of JP2017129567A5 publication Critical patent/JP2017129567A5/ja
Pending legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0176Head mounted characterised by mechanical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • 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

Abstract

【課題】より多くの環境において安定的にカメラの位置姿勢を推定する情報処理装置を提供する。
【解決手段】撮像装置100によって撮像された画像を取得する画像取得手段1010と、画像から第一の特徴を検出する第一の検出手段1020と、第一の検出手段とは異なる方法により、画像から第一の特徴と異なる第二の特徴とを検出する第二の検出手段1040と、画像から検出された第一の特徴に基づいて、撮像装置の位置姿勢を第一の位置姿勢として導出する第一の位置姿勢導出手段1030と、画像から検出された第二の特徴に基づいて、撮像装置の位置姿勢を第二の位置姿勢として導出する第二の位置姿勢導出手段1050と、第一の位置姿勢と第二の位置姿勢とに基づいて、撮像装置の位置姿勢を決定する決定手段1060とを備える。
【選択図】図1

Description

本発明はカメラの位置または姿勢を推定する技術に関連する。
現実世界と仮想世界とをリアルタイムに融合させる技術として、複合現実感(MR:Mixed Reality)技術や拡張現実感(AR:Augmented Reality)技術が知られている。これらの技術は、現実空間とコンピュータによって作られる仮想空間を繋ぎ目なく融合する技術である。これらは、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援、患者の体表面に体内の様子を重畳表示する手術支援等、様々な分野への応用が期待される。
MR技術を実現する上で解決しなければならない大きな問題の一つとして、位置合わせの問題がある。仮想物体が現実空間に実在するように利用者が感じるためには、仮想物体と現実空間との間の幾何学的な整合性が取れている必要がある。即ち、仮想物体は現実空間中に存在するべき位置に存在しているように常に利用者から観察されなければならない。
また、観察者が、仮想物体を現実空間に実在するように感じるための装置の一つとして、ビデオシースルー型の情報処理装置がある。これは、ビデオカメラで現実世界を撮影し、その画像に、仮想物体を重畳した合成画像を、リアルタイムにディスプレイ等の表示手段に表示させ、観察者に提示する装置である。一般にこのような情報処理装置としては、背面にビデオカメラを有するタブレット端末と呼ばれる携帯型情報端末や、頭部搭載型のビデオシースルー型HMD(Head Mounted Display)などが用いられる。
ビデオシースルー型HMDを利用するMRでは、HMDに内蔵されているカメラから画像が入力される毎に、画像撮影時のカメラの現実空間における位置姿勢を計測する。そしてこのカメラの位置姿勢と、焦点距離などのカメラの固有パラメータとに基づいてCGを描画し、係るCGを現実空間の画像上に重畳するという処理が一般的に行われる。そのため、ビデオシースルー型HMDを利用するMRの場合、位置合わせの問題は、HMDに内蔵したカメラの現実空間における位置姿勢を計測する問題となる。
カメラの位置姿勢の計測は、例えば磁気センサや超音波センサ、光学式センサなど6自由度の物理センサによって、計測することが可能である。一方で、ビデオシースルー型HMDを利用する場合には、ビデオシースルー型HMDに内蔵されているカメラからの画像情報を位置合わせのために利用することが可能である。画像情報を利用する位置合わせ方法は、物理センサを利用する方法に比べて手軽且つ低コストであるため、広く利用されている。画像情報を利用する位置合わせ手法では、現実空間中における3次元位置が既知の指標をカメラで撮影し、指標の撮影画像上での位置と3次元位置との対応を基にカメラの位置姿勢を推定することが行われている。既知の指標としては、現実空間中に人為的に配置した指標などがある。例としては、四角形マーカー、円形マーカー、点マーカーなどが挙げられる。特許文献1では、点マーカーと四角形マーカーの配置情報を高精度に画像から推定している。しかし、現実環境中に指標を多数配置するには人的・時間的に高コストになり、景観も損なわれるという問題がある。
そこで、既知の指標を用いずに撮影画像上で輝度勾配のあるエッジや角点など自然特徴を検出し、それらを基にカメラの位置姿勢を推定することが行われている。
非特許文献1では、自然特徴として特徴点を画像から検出する。カメラを移動させ、初期画像で検出した特徴点から2次元的に特徴点を追跡し、初期画像と現画像の2つの画像間で特徴点周りの8×8の画素パッチを対応付ける。画像座標の対応点から、2つの画像を撮影したカメラの相対的な位置姿勢と対応付けた特徴点群の3次元情報である位置を推定する。ここで、非特許文献1では、特徴点群の3次元情報である位置と、その周辺の画像パッチを合わせてマップと呼んでいる。さらに、初めの2つの画像から算出されるマップを初期マップと呼ぶ。算出したマップ(ここでは3次元の位置情報を持つ特徴点群)を、現在のカメラの位置姿勢に基づいて画像面に投影し、検出した特徴点と、投影された特徴点の誤差を最小化するように、カメラの位置姿勢を更新する。カメラの位置姿勢が推定されており、特徴点を十分推定しているときに、キーフレームと呼ばれる画像を動画像から取得する。各キーフレームで検出された特徴点を、エピポーラ線上を探索して対応付けを行う。各キーフレームのカメラ位置姿勢と、特徴点群の3次元位置を、各キーフレーム上での投影誤差が最小化されるようにバンドル調整を行い非線形最適化計算によって、マップを高精度に算出する。
非特許文献2では、自然特徴として画像全体から輝度勾配のある点群を密に検出する。初期マップの生成は非特許文献1と同様の手法を利用している。初期マップの生成後、マップの点を現画像に投影した時、マップの点のキーフレーム上の輝度値と現フレーム上の輝度値が一致するように位置姿勢を更新する。また、前キーフレームと位置が閾値以上離れた場合に次のキーフレームを追加する。近傍のキーフレームのマップの点を、追加したキーフレームでエピポーラ探索し、対応付けを行い、2つのキーフレーム間の相対位置姿勢と対応情報に基づいてマップの点の現キーフレームにおける奥行情報を推定する。非特許文献2では、キーフレームの画像情報とキーフレーム上で輝度勾配のある点の奥行情報とキーフレームの位置姿勢を合わせて、マップと呼んでいる。ここで、キーフレームを逐次追加していくと誤差が蓄積してくため、マップの最適化を行うことで、マップ全体の整合がとれるようにしている。
非特許文献1や非特許文献2は、SLAM(Simultaneous Localization And Mapping)と呼ばれる技術である。カメラの自己位置姿勢を推定するLocalizationと、特徴点の位置を推定するMappingとを同時に行う手法である。
特許第4532982号
G.Klein,D.Murray,"Parallel tracking and mapping for small AR workspaces",In:Intl.Symp.on Mixed and Augmented Reality(ISMAR),2007. J.Engel,T.Schops,D.Cremers,"LSD−SLAM:Large−Scale Direct Monocular SLAM",European Conference on Computer Vision(ECCV),2014
非特許文献1のように画像中で検出した角点の周辺のパッチ情報を自然特徴として扱う方法は、繰り返し模様ではない角点を画像から多く検出できる環境においては、安定してカメラの位置姿勢を推定することができる。しかし、模様の少ない床や壁を撮影する場合など、角点を検出しにくい環境で、カメラの位置姿勢を安定して推定することができないという問題があった。
また、非特文献2のように、輝度勾配が検出可能な点を密に利用する手法では、非特許文献1のように角点を検出する手法と比べて、特徴を多く利用できる点で、非特許文献1の手法よりも多くの環境に適用可能である。しかし、模様の少ない床や壁を撮影する場合など、輝度勾配を検出しにくい環境では、やはりカメラの位置姿勢を安定して推定することができないという問題があった。
一方で、四角形マーカー、円形マーカーなど、識別性の高い指標を、少数でも検出できれば、模様の少ない床や壁を撮影する場合など、角点や輝度勾配やオプティカルフローなどの自然特徴を検出しにくいシーンでも、カメラの位置姿勢を推定することが可能である。しかし、少数の識別性の高い指標を用いた場合には、多数の特徴を画像から検出できる環境での非特許文献2のような自然特徴を利用する手法と比べて、推定したカメラの位置姿勢の精度が低下するという課題があった。これは、カメラ位置姿勢に使用する特徴の数が少ないために、デジタル画像に含まれる電気的なノイズや、デジタル画像に含まれるサンプリング誤差の影響を受けやすいためである。
上記課題に鑑みて、本発明は、より多くの環境において安定的にカメラの位置姿勢を推定することを目的とする。
上記の目的を達成するために、本願発明の情報処理装置は例えば、撮像装置によって撮像された画像を取得する画像取得手段と、前記画像から第一の特徴を検出する第一の検出手段と、前記第一の検出手段とは異なる方法により、前記画像から該第一の特徴と異なる第二の特徴とを検出する第二の検出手段と、前記画像から検出された前記第一の特徴に基づいて、前記撮像装置の位置姿勢を第一の位置姿勢として導出する第一の位置姿勢導出手段と、前記画像から検出された前記第二の特徴に基づいて、前記撮像装置の位置姿勢を第二の位置姿勢として導出する第二の位置姿勢導出手段と、前記第一の位置姿勢と前記第二の位置姿勢とに基づいて、前記撮像装置の位置姿勢を決定する決定手段とを備える。
本願発明の別の側面の情報処理装置は、例えば、撮像装置によって撮像された画像を取得する画像取得手段と、前記画像から第二の特徴を検出する第二の検出手段と、前記検出手段の結果が第一の条件を満たしている場合は、前記第二の特徴に基づいて導出された前記撮像装置の位置視姿勢を、該撮像装置の位置姿勢として決定し、前記検出手段の結果が前記第一の条件を満たしていない場合は、前記第2の特徴と異なる検出方法により検出された第一の特徴に基づき導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定する決定手段を備える。
本発明によれば、より多くの環境において安定的にカメラの位置姿勢を推定することが可能となる。
第1の実施形態に係る情報処理装置の構成を示す機能ブロック図である。 第1の実施形態に係る情報処理装置の処理の流れを示すフローチャートである。 第1の実施形態における第二の特徴である四角形の指標を説明する図である。 カメラ座標系及び画面座標系を説明する図である。 共線条件式を説明する図である。 第1の実施形態に係る位置姿勢出力判定部1060の処理手順を示すフローチャートである。 第1の実施形態におけるハードウェア構成例を示す図である。
(第1の実施形態)
以下、添付図面を参照して本発明の好適な実施形態について説明する。
本実施形態においては、ユーザがヘッドマウントディスプレイを装着し、CGを観察する場合において、カメラの位置および姿勢(以下、位置姿勢という)を精度よく推定し、推定された位置姿勢に基づいてCGを精度よく描画する。そして、CGとカメラで撮像された画像とが合成された合成画像をユーザの装着するヘッドマウントディスプレイに表示させる。本願明細書において、位置姿勢とは位置を表す3個のパラメータと、その姿勢(向き)を表す3個のパラメータとを合わせた6個のパラメータのセットをいう。
第1の実施形態に係る情報処理装置は、そのカメラの位置姿勢推定を行う手法において、カメラで撮影された画像から第一の特徴と第二の特徴をそれぞれ検出する。そして、第一の特徴に基づいてカメラの第1の位置姿勢を推定し、第二の特徴に基づいてカメラの第2の位置姿勢を推定する。そして、推定された第一の位置姿勢と第二の位置姿勢徒に基づいて、カメラの位置姿勢の出力の判定を行い、いずれか一方の位置姿勢を出力する。
図7は、本実施形態における情報処理装置1000のハードウェア構成図である。同図において、CPU710は、バス700を介して接続する各デバイスを統括的に制御する。CPU710は、読み出し専用メモリ(ROM)720に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム(OS)をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はROM720に記憶されており、ランダムアクセスメモリ(RAM)730に一時記憶され、CPU710によって適宜実行される。また、入力I/F740は、外部の装置(表示装置や操作装置など)から情報処理装置1000で処理可能な形式で入力信号として入力する。また、出力I/F750は、外部の装置(表示装置)へ表示装置が処理可能な形式で出力信号として出力する。
図1は、本実施形態に係る情報処理装置1000の構成図である。
情報処理装置1000は、画像取得部1010、第一の特徴検出部1020、第一の位置姿勢推定部1030、第二の特徴検出部1040、第二の位置姿勢推定部1050、位置姿勢出力判定部1060、位置姿勢出力部1070、CGデータ描画部1080、画像合成部1090、第一のマップ保持部200、第二のマップ保持部300、CGデータ保持部400によって構成される。
情報処理装置100は、カメラ100に接続されている。本実施形態ではカメラおよびディスプレイ500に有線または無線で接続されている。
カメラ100は、カメラ100はユーザの頭部に装着されるヘッドマウントディスプレイに内蔵または外部に装着されている。例えば、動画をフレーム画像として連続的に撮影するビデオカメラやデジタルカメラが用いられる。
ディスプレイ500は、ヘッドマウントディスプレイ(HMD)であり、CGデータ描画部1080で描画されたCGデータを表示する。ディスプレイ500は、液晶ディスプレイであっても有機ELディスプレイであってもよく、CGと合成された画像を表示できるものであればどのような形態であってもかまわない。
画像取得部1010は、カメラ100によって撮影された画像を連続的に取得する。画像取得部1010は、カメラの出力がNTSCなどのアナログ出力であればアナログビデオキャプチャボードによって実現される。またカメラの出力がIEEE1394などのデジタル出力であれば、例えばIEEE1394インタフェースボードによって実現される。また、予め記憶装置に記憶してある静止画像や動画像のデジタルデータを読み出してもよい。取得された画像は、第一の特徴検出部1020に入力される。
第一の特徴検出部1020は、画像取得部1010が連続的に取得する画像それぞれから第一の特徴を検出する。詳しい処理は以下で述べるが、本実施形態では第一の特徴として、輝度勾配を有する特徴点を検出する。
第一のマップ保持部200は、予め生成された第一のマップを保持する。
第一の位置姿勢推定部1030は、第一の特徴検出部1020が検出した特徴と第一のマップ保持部200から取得した第一のマップとを用いてカメラの第一の位置姿勢を推定(位置姿勢導出)する。推定方法は後述する。
第二のマップ保持部300は、予め生成された第二のマップを保持する。
第二の特徴検出部1040は画像取得部1010が連続的に取得する画像それぞれから第二の特徴を検出する。詳しい処理は以下で述べるが、本実施形態では第二の特徴として、識別情報を有する矩形の指標を検出する。
第二の位置姿勢推定部1050は、第二の特徴検出部1040が検出した特徴と第二のマップ保持部300から取得した第二のマップとを用いてカメラの第二の位置姿勢を推定(位置姿勢導出)する。推定方法は後述する。
位置姿勢出力判定部1060は、第一の位置姿勢推定部1030が推定した第一の位置姿勢と、第二の位置姿勢推定部1050が推定した第二の位置姿勢とで、どちらかまたは両方を出力するかを判定する。判定方法は後述する。
位置姿勢出力部1070は、位置姿勢出力判定部1060で判定されたカメラ位置姿勢を出力する。
CGデータ保持部400は、描画するCGデータを保持している。CGデータの形式はCG画像としてレンダリングできるものであれば何でもよく形式は問わない。
CGデータ描画部1080は、CGデータ保持部400から描画するべきCGデータを取得し、位置姿勢出力部1070によって出力されたカメラ位置姿勢を仮想カメラの位置姿勢としてセットし、CGデータを描画する。カメラ100で取得した画像の上にCGデータを合成して描画し合成画像をユーザに提示することで、複合現実感(Mixed Reality)を実現することができる。また、CGデータのみを描画する場合には、仮想現実感(Virtual Reality)を実現することができる。
画像合成部1090は、画像取得部1010で取得した画像とCGデータ描画部1080で描画されたCGデータとを合成した合成画像を生成する。そして、合成画像をディスプレイ500に出力(表示制御)する。
これらの各機能部は、CPU710が、ROM720に格納されたプログラムをRAM730に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、CPU710を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
本実施形態では、カメラの位置姿勢を定義するための座標系(ここでは、環境中の一点を原点として定義し、互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)を世界座標系と呼ぶ。位置が既知の環境中の複数の特徴を基準にして世界座標系を定義してもよい。または、カメラが最初に撮像した際の位置及び姿勢を基準として世界座標系を定義してもよいし、環境中に配置された夫々の指標を構成する各頂点の位置が既知であってもよい。位置が既知の特徴や指標に基づいてスケールを決定してもよい。または複数地点で撮像した際の既知の撮像位置に基づいて世界座標系のスケールを決定してもよい。
また、本発明においては、カメラの歪み補正係数や焦点距離や主点位置などのカメラ内部パラメータは、公知の手法により校正済みとする。
次に、第1の実施形態に係る情報処理装置1000の処理手順について説明する。図2は、第1の実施形態に係る情報処理装置1000の処理手順を示すフローチャートである。
ステップS2010において、画像取得部1010は、カメラ100で撮影した画像を取得する。
ステップS2020において、第一の特徴検出部1020が、ステップS2010で取得された画像に対して第一の特徴検出を行う。特徴点の検出とは、特徴点の画像内の画像座標を検出することをいう。
ここで画像から第一の特徴である特徴点を検出する処理について述べる。近傍の画素間で輝度勾配が閾値以上の点を特徴点とする。輝度勾配は、画像上で隣り合う画素の濃度の変化量であり、閾値以上に変化する点を特徴点とする。輝度勾配の検出は、例えばSobelオペレータ,Prewittオペレータなどの公知のエッジ検出オペレータにより行う。各画素について、エッジ検出オペレータを画像の水平方向、垂直方向について適用する。そして、その出力値をもとに、エッジ強度を算出する。エッジ検出オペレータの水平方向の出力値がf、垂直方向の出力値がfである場合、該画素におけるエッジ強度Iは式(1)のように算出される。
Figure 2017129567

以上の処理により、特徴点(画像内で輝度勾配を有する画素(点))の画像座標とその画素(点)のもつ輝度値を求める。特徴点としては室内を撮影した画像であれば、その室内に存在するテーブルや椅子、等の物体の線分となる画素や床のテクスチャを示す画素など様々なものが検出される。また、屋外で撮影した画像であれば、ビルの窓や看板やその看板に含まれる文字の線分となる画素等が特徴点として検出される。
ステップS2030において、第一の位置姿勢推定部1030が、第一の特徴に対応する第一のマップ200を取得する。本実施形態では、第一の特徴に対応する第一のマップ保持部200が保持する第一のマップとしては、複数の画像からそれぞれ抽出された特徴点(第一の特徴)の奥行き値とその特徴点の輝度値とその画像を撮影した時のカメラの位置姿勢と対応づけられて保持される。特徴点の奥行き値は、例えば、画像上の座標の対応付けを行うことで推定することができる。例えば、KLTと呼ばれる特徴追跡手法によって時系列に位置を変えて撮影された画像から特徴点を追跡し、複数の画像間の特徴点の対応付けを行う。求められた複数の画像間における特徴点の対応からE行列(基礎行列)と呼ばれる変換行列を推定し、E行列からカメラの位置姿勢を求め、複数画像間の相対位置姿勢に基づいてステレオ法により特徴点の位置または奥行きの3次元情報を推定する。第一のマップ保持部200が保持する第一のマップとしては、推定される特徴点の奥行き値は、世界座標系における3次元的な位置であっても、各カメラで撮影した位置からの奥行値であっても良い。また、本願明細書において、第一のマップを推定するために用いられた各画像をキーフレームと呼ぶ。
ステップS2040において、第一の位置姿勢推定部1030が、ステップS2020で検出された特徴点と、とステップS2030で取得された第一のマップに基づいて、カメラの位置姿勢(第一の位置姿勢)を推定する。第一のマップに基づいてカメラ位置姿勢を推定する手法は、非特許文献1や非特許文献2のように、検出した第一の特徴からカメラ位置姿勢を推定する手法であれば何れの公知の手法であってよい。
まず、ステップS2030で取得するマップに含まれる特徴点を、第一のカメラの位置姿勢の初期値に基づいてステップS2010で入力された画像に投影する。位置姿勢の初期値の値は、前のフレーム画像において求められた位置姿勢を用いればよい。投影される特徴点は、例えば、時系列的に直近の画像を撮像した時のカメラの位置姿勢に最も近い位置姿勢に対応づけられた特徴点を選択して投影すればよい。そして、投影された特徴点の画像内の位置の周囲の輝度値に基づいて、投影される特徴点の輝度値(第一のマップに保持される)と投影された特徴点の位置における輝度値とが一致するように初期値の位置姿勢を更新することによりカメラの位置姿勢を推定する。
ここで、第一の位置姿勢推定部1030が推定するカメラの位置姿勢は、複合現実感や仮想現実感における仮想カメラの視点としてCG描画に使われるため、ユーザの動きに合わせてリアルタイム処理が求められる。そのため、初期の3次元情報が生成された後、処理負荷の高い第一のマップ生成と、比較的処理負荷の軽い第一のカメラ位置姿勢推定は、並列に処理される。位置姿勢推定部1030は、第一の特徴と第一の3次元情報とに基づいてカメラ位置姿勢を推定したら、カメラ位置姿勢推定結果をカメラ位置姿勢出力判定部1060に出力する。
ステップS2050において、第二の特徴検出部1040は、ステップS2010で取得された画像に対して第二の特徴検出を行う。ここで本実施形態では、四角形指標を第二の特徴として検出する。本願明細書において、第一の特徴と第二の特徴の差異は、少なくとも第二の特徴は識別情報を有するという点が異なる。以下、第二の特徴の一例である四角形指標について説明する。
環境中または対象物体上に、図3(A)に示すような四角形形状の指標(以下、四角形指標と呼ぶ)を複数配置するものとする。ここで、配置する指標をP(k=1,,,K)で表す。但し、Kは配置する指標の数(図3(A)の例ではK=3)である。図3(B)に示すように、四角形指標は、内部に識別子を表すパターンを持ち、一意に同定可能であるとする。また、四角形指標Pは頂点pki(i=1,,,N)により構成される。但し、Nは、指標Pを構成する頂点の総数(本実施形態の場合は四角形指標であるのでN=4)を表す。第二の特徴検出部1040は、撮影画像に2値化処理を施した後にラベリング処理を行い、一定面積以上の領域の中から4つの直線によって形成されているものを指標候補として抽出する。さらに、候補領域の中に特定のパターンがあるか否かを判定することによって候補領域が指標領域であるかを判定し、内部のパターンを読み出すことによって指標の画像内の方向と識別子を取得することにより、取得された画像中から指標を検出する。以上のように四角形指標を第二の特徴として検出する(即ち、所定のフィルタを用いることで第二の特徴を検出する)。第二の特徴である四角形指標は予め現実の空間にユーザ自身または別のユーザによって配置される。
なお、環境中または対象物体上に配置される第二の特徴は、四角形指標に限るものではなく、撮影画像上において検出可能であって、かつ第一の特徴と異なる検出方法で得られる特徴であれば、何れの形態であってもよい。例えば、図3(C)に示すように、それぞれが異なる色を有する円形状の特徴であってもよい。この場合には、画像上から各々の特徴の色に対応する領域を検出し、その重心位置を特徴の検出座標とする。また、それぞれが異なるテクスチャ特徴を有する特徴点(自然特徴点)を第二の特徴としてもよい。この場合には、既知の情報として予め保持している各々の特徴のテンプレート画像によるテンプレートマッチングを画像上に施すことにより、画像から第二の特徴を検出する。また、SIFT特徴のように識別子を有し、識別可能な特徴を第二の特徴として用いてもよい。これに限らず、空間中に固定される特徴であってそれを撮影した画像から検出可能なものであればどのような特徴であってもかまわない。また、本実施形態においては、第二の特徴は、第一の特徴の数に対して少ないものとする。
ステップS2060において、第二の特徴に対応する第二のマップを取得する。本実施形態では、点指標や四角形指標を第二の特徴とするため、第二のマップは、点指標や四角形指標の3次元の配置情報である。点指標や四角形指標の配置情報は、特許文献1のような技術を利用して推定することができる。または、写真測量の分野で行われるような測量器などを用いて予め精度よく計測しておけばよいし、巻尺や分度器などを用いて手動で測定した値を用いてもよい。また、2つの画像で検出された正方形の頂点の画像座標から、三角測量によって3次元位置を求め、4頂点の位置に基づいて求めてもよい。第二の特徴の配置情報である第二のマップを推定する方法はこれに限るものではなく、公知のいずれの技術を用いて推定してもよい。
ステップS2070において、第二の特徴と第二のマップとから、カメラの位置姿勢を推定する。以下では、基準座標系を定義し、基準座標系におけるカメラの位置姿勢を推定する場合について説明する。
はじめに透視投影変換について説明する。図4はカメラ座標系及び画面座標系を説明する図である。画面座標系の原点oは視軸と画像面の交点にとり、画像の水平方向をx軸、垂直方向をy軸にとる。また、カメラ座標系の原点oと画像面との距離(焦点距離)をfとし、カメラ座標系のz軸は視軸の反対方向、x軸は画像の水平方向と平行に、y軸は画像の垂直方向と平行にとる。
透視投影変換により、カメラ座標系上の点x=[xは式(2)のように画面座標がu=[uである点に投影される。
Figure 2017129567

本実施形態ではレンズ歪みは存在しないか、もしくは補正されていると仮定し、カメラはピンホールカメラであると想定している。式(2)は、図5に示すように、空間中の点と、該点の画像上の投影点とカメラ位置(視点)は同一直線上に存在することを示しており、共線条件式とも呼ばれる。
基準座標系におけるカメラの位置をt=[t、カメラの姿勢(実際には、カメラ座標系に対する基準座標系の姿勢)をω=[ωωω]であるとする。ωは3自由度の姿勢表現方法であり、姿勢を回転軸ベクトル及び回転角で表現している。回転角をrとすると、rはωによって式(3)のように表される。
Figure 2017129567

また、回転軸ベクトルをr=[rとすると、rとωの関係は式(4)のように表される。
[ωωω]=[r]・・・式(4)
ω(回転角r、回転軸ベクトルr)と3×3回転変換行列Rとの関係は式(5)のように表される。
Figure 2017129567

基準座標系上の点x=[xのカメラ座標xはt、Rによって式(6)のように表される。
Figure 2017129567

式(2)、(6)から、透視投影変換によって、基準座標上の点x=[xは式(7)のように画像上の点u=[uに投影される。
Figure 2017129567

理想的には、t、ω、xをもとに式(7)から計算される投影位置(計算位置)と実際に観察される位置(観察位置)は一致する。そのため、計算位置と観察位置の画像の水平方向のずれをF、垂直方向のずれをG、観察位置をv=[voxoyとした場合、式(8)に示すようにF、Gは0となる。
Figure 2017129567

F、Gはカメラ位置t、カメラ姿勢ω、観察対象である基準座標上での点の位置xに関する関数である。観察対象が特徴点である場合には、式(9)に示すように、F、Gはカメラ位置t、カメラ姿勢ω、特徴点の基準座標系における位置xに関する関数となる。
F(t,t,t,ω,ω,ω,x,y,z)=0
G(t,t,t,ω,ω,ω,x,y,z)=0・・・(式9)
式(10)は式(9)を線形化したものである。Δt、Δt、Δtはカメラの位置、Δω、Δω、Δωはカメラの姿勢の近似値に対する補正量を表す。
Figure 2017129567

ここで、式(10)のF、Gは、式(8)のF、Gにカメラ位置及び姿勢、特徴点の位置を代入したときの投影位置の計算位置と観察位置vとの差である。式(10)は、ある画像上で観察される一個の特徴点についての観測方程式である。
一方、四角形指標である場合には、基準座標系における位置t=[tmxmymz及び基準座標系に対する姿勢ω=[ωmxωmyωmz](ωに対応した3×3回転変換行列をRとする)で表現される。四角形の頂点の第1指標座標系における位置をx=[x0]とする。四角形指標の頂点の基準座標系における位置xは式(11)のようにtとω(R)に関する関数となる。
Figure 2017129567

そのため、式(12)に示すように、F、Gも、カメラ位置t、カメラ姿勢ω、四角形指標の位置t及び四角形指標の姿勢ωの関数となる。
F(t,t,t,ω,ω,ω,tmx,tmy,tmz,ωmx,ωmy,ωmz)=0
G(t,t,t,ω,ω,ω,tmx,tmy,tmz,ωmx,ωmy,ωmz)=0
・・・式(12)
式(12)はカメラの位置及び姿勢、四角形指標の位置及び姿勢について非線形な方程式となっている。そこで、1次の項までのテイラー展開を用いてカメラの位置及び姿勢、四角形指標の位置及び姿勢の近似値の近傍で線形化し、繰返し計算によってカメラの位置及び姿勢、指標の位置及び姿勢を求める。
式(13)は式(12)を線形化したものである。Δt、Δt、Δtはカメラの位置、Δω、Δω、Δωはカメラの姿勢の近似値に対する補正量を表す。
Figure 2017129567

ここで、式(13)のF、Gは、式(8)のF、Gにカメラ位置及び姿勢、四角形指標の位置を代入したときの投影位置の計算位置と観察位置vとの誤差である。
カメラの位置及び姿勢の近似値は、基準座標系における位置が既知の点と、該点の画像上での投影位置の対応関係から求める。基準座標系における位置が既知の点を用いる場合には、シーンには位置が既知の点が存在していることになる。
式(13)は、ある画像上で観察される四角形指標の一個の頂点についての観測方程式である。実際には複数の画像上で、複数の四角形指標の頂点が観察されるため、式(13)は複数得られる。画像から検出される四角形指標の数がD個である場合には、観測方程式(13)が(4×D)組、つまり2×(4×D)本の観測方程式が立つ。式(13)の観測方程式の左辺の定数項F、Gを右辺に移項し、連立方程式を立てると、この連立方程式は式(14)のように行列形式で書くことができる。
JΔ=E・・・式(14)
未知数が、カメラの位置及び姿勢の6個のパラメータであるので、ヤコビ行列Jの行数は、観測方程式の数2×(4×D)個である。ヤコビ行列Jの列数は6個である。Δはすべての補正値をベクトルで表しており、補正値ベクトルと呼ぶ。補正値ベクトルの要素数は未知数の数6個である。Eはすべての誤差をならべてベクトルで表しており、誤差ベクトルと呼び、近似値による投影位置の計算位置と観察位置の差−F、−Gを要素として持つ。Eの要素数は、観測方程式の数2×(4×D)個である。
なお、基準座標系における位置が既知である点指標または位置及び姿勢が既知の四角形指標を同時に撮影することによって、基準座標系の原点、スケール、姿勢を明示的に指定することができる。これらの指標についての式(14)の方程式では、指標の位置及び指標についての偏微分係数の値はすべて0となる。基準座標系の原点、スケール、姿勢を明示的に指定するためには、第二の特徴が点指標であれば位置が既知の点指標を3個用いればよく、四角形指標であれば位置及び姿勢が既知の四角形指標を1個用いればよい。
連立方程式の解として得られる補正値Δによって、繰り返し近似値を補正することによってカメラの位置及び姿勢を求める。連立方程式の解法は、掃き出し法、あるいはガウス・ジョルダン法、あるいは共役勾配法など、その他公知の何れの連立一次方程式の解法を用いて解いてもよい。取得した画像が多い場合や、検出した指標が多い場合には、前処理で不完全コレスキー分解を行う前処理付き共役勾配法などで高速に計算することができる。
カメラの位置及び姿勢についての未知パラメータをまとめて状態ベクトルtと表す。推定した補正値Δを用いて、式(15)のように補正し、得られた値を新たな状態ベクトルtとする。
+Δ→t・・・式(15)
誤差ベクトルEが予め定めた閾値より小さいかどうか、あるいは、補正値Δが予め定めた閾値より小さいかどうかといった判断基準を用いて、計算が収束しているか否かの判定を行う。収束している場合には、その時点での状態ベクトルを用いて、複数の四角形指標の位置及び姿勢を決定する。収束していない場合には、収束するまで繰り返し補正値を求める。このとき、補正された補正後の状態ベクトルtが、次のtとして使用される。
以上により、第二の位置姿勢が求められ、第二の位置姿勢推定部1050は、位置姿勢出力判定部1060に第二の位置姿勢を出力する。
ステップS2080において、位置姿勢出力判定部1060は、第一の位置姿勢と第二の位置姿勢のどちらか一方または両方を出力するかを判定する。以下では、位置姿勢出力判定部1060が判定する処理を、図6に示すフローチャートを用いて説明する。
ステップS3000において、位置姿勢出力判定部1060は、第一の位置姿勢推定に失敗したどうかをチェックする。カメラの位置姿勢の推定に失敗する場合とは、カメラの位置姿勢を推定する方程式の解を得るために必要な特徴の数が得られず解が求まらない場合である。また、推定に失敗する場合としては、マップと画像から検出した特徴の誤対応により、非線形最適化計算における繰り返し計算において解が収束せずに発散する場合もある。またこれに限らず、前フレームとの差分が閾値Tdiffよりも大きくなった場合に、推定に失敗しているとしてもよい。第一の位置姿勢の推定に失敗した場合には、ステップS3010に処理を進める。第一の位置姿勢の推定に失敗していない場合には、ステップS3040に処理を進める。
ステップS3010において、位置姿勢出力判定部1060は、第二の位置姿勢推定に失敗したかどうかをチェックする。失敗か否かは、ステップS3000と同様の処理を行う。第二の位置姿勢推定に失敗した場合には、ステップS3020に処理を進める。第二の位置姿勢推定に失敗していない場合には、ステップS3030に処理を進める。
ステップS3020において、位置姿勢出力判定部1060は、前フレームの画像(時系列において前に取得された画像)で推定されたカメラ位置姿勢を出力するように判定を行う。
ステップS3030において、位置姿勢出力判定部1060は、第二のカメラ位置姿勢を出力するように判定する。
ステップS3040において、ステップS3010と同様に、位置姿勢出力判定部1060は、第二の位置姿勢推定に失敗したかどうかをチェックする。失敗か否かは、ステップS3000と同様の処理を行う。第二の位置姿勢推定に失敗した場合には、ステップS3050に処理を進める。第一の位置姿勢の推定に失敗していない場合には、ステップS3060に処理を進める。
ステップS3050において、位置姿勢出力判定部1060は、第一の位置姿勢を出力するように判定する。
ステップS3060において、第一のカメラ位置と第二のカメラ位置(または姿勢)を比較する。位置の閾値Tpos(または姿勢の閾値TOri)よりも差が大きい場合、ステップS3070に処理を進める。差が位置の閾値Tpos(または姿勢の閾値TOri)以下の場合には、ステップS3080に処理を進める。
ステップS3070において、第二の位置姿勢を出力するように判定する。これは、位置の閾値Tpos(または不図示の姿勢の閾値TOri)よりも差が大きい場合、識別性の高い第二の特徴に基づいて推定された第二の位置姿勢のほうが安定性が高いと判断するためである。
ステップS3080において、第一の位置姿勢を出力するように判定する。これは、位置の閾値Tpos(または不図示の姿勢の閾値TOri)よりも差が小さい場合に、第一の特徴は、第二の特徴に比べて数が多いため、多くの情報量を用いて推定した結果の精度が高いと判断するためである。
以上のように、第一の特徴は、第二の特徴と比べて、情報量が多いので精度が高いが、識別性が低いため安定性が低いという前提を用いて、位置姿勢出力判定部1060は判定する。
図2のフローチャートに処理を戻す。
ステップS2090において、第一の位置姿勢または第二の位置姿勢のどちらかを出力するように判定された場合には、判定結果に基づいて、判定されたほうのカメラの位置姿勢を、CG描画を行うCGデータ描画部1080に出力する。
ステップS2100において、CGデータ描画部1080は、CGデータ400を描画するために、位置姿勢出力部1070によって出力された位置姿勢を仮想カメラの位置姿勢としてセットする。CGデータ描画部1080は、予めCGデータを取得しておく。セットされた仮想カメラの位置姿勢を用いて、CGデータを描画する。
ステップS2110において、画像合成部1090は、ステップS2010で取得した画像とステップS2100で描画されたCGデータとを合成した合成画像を生成する。現実の画像とCGのデータとを合成する技術は公知であるので詳しい説明は省略する。そして、合成画像をディスプレイ500に出力する。
以上のように、異なる特徴である第一の特徴または第二の特徴に基づいて推定した、第一のカメラ位置姿勢または第二のカメラ位置姿勢を出力するかどうかを判定することができる。
本実施形態により、第一の特徴が角点や輝度勾配やオプティカルフローなどの場合、第一の特徴を検出しにくい環境でも、少数の識別性の高い第二の特徴を検出できる場合には、識別性の高い第二の特徴に基づいて推定した第二のカメラ位置姿勢を出力できる。また、角点や輝度勾配やオプティカルフローなどの第一の特徴を多数検出できる環境では、角点や輝度勾配やオプティカルフローなどの第一の特徴に基づいて推定した第一のカメラ位置姿勢を出力できる。さらに、第一の特徴に基づいてカメラ位置姿勢を推定する手法において、繰り返しパターンを検出する場合など似た形状の特徴を検出することで誤対応してしまい、第一と第二の差が大きい場合には、識別性の高い第二の特徴から推定した結果を出力できる。このように、第一の特徴と第二の特徴とで、異なる特徴に基づいてカメラ位置姿勢を複数推定しておくことで、環境に応じて安定かつ高精度に推定した結果を出力することができる。
以上、異なる特徴に基づいて推定したカメラ位置姿勢のうち、どちらか一方を出力するモードを有することで、より多くの環境において、安定かつ高精度にカメラの位置姿勢を推定することができる。
(変形例1)
第1の実施形態では、第一の位置姿勢または第二の位置姿勢の推定において、カメラの位置及び姿勢の近似値を、位置が既知の特徴に基づいて求めていた。しかし、近似値の推定は、これに限るものではない。位置姿勢出力判定部1060が出力判定したカメラの位置姿勢を、不図示の概略値設定部が、出力判定されなかったカメラの位置姿勢の概略値(繰り返し計算における初期値)として以降の位置姿勢導出処理のために設定してもよい。次フレーム(以降のフレーム)の第一のカメラ位置姿勢推定または第二の位置姿勢推定において、不図示の概略値設定部が設定した概略値に基づいてカメラの位置姿勢推定を行ってもよい。
これにより、安定かつ精度の高いカメラ位置姿勢を推定することができる。
(第2の実施形態)
第1の実施形態では、第一の特徴に基づいて推定する第一のカメラ位置姿勢、または第二の特徴に基づいて推定する第二の位置姿勢のどちらか一方を出力していた。しかし、第一の位置姿勢も第二の位置姿勢も両方推定ができている場合、位置姿勢出力判定部1060は、両方を出力すると判定してもよい。両方のカメラ位置姿勢を出力するように判定するかどうかは、不図示のUIでユーザが設定してもよいし、システムに予め設定情報を組み込んでおいてもよい。位置姿勢出力判定部1060が、第一と第二のカメラ位置姿勢を両方出力するように判定した場合には、カメラ位置姿勢出力部1070に第一のカメラ位置姿勢と第二のカメラ位置姿勢が出力される。
そして、位置姿勢出力部1070は、第一の位置姿勢と第二の位置姿勢の両方の位置姿勢を入力されると、第一の位置姿勢と第二の位置姿勢とに基づいて、合成した第三のカメラ位置姿勢を計算する。第三の位置姿勢は、第一の位置姿勢と第二の位置姿勢の平均の位置姿勢として求めればよい。また、過去に推定された安定度に基づいて所定の割合で重みづけを行ったうえでの平均の位置姿勢を求めても良い。位置姿勢出力部1070は、第三のカメラ位置姿勢が計算された場合には、第三の位置姿勢を出力してもよい。
以上、異なる特徴に基づいて推定した位置姿勢の平均の位置姿勢を出力するモードを有することで、より多くの環境において、安定かつ高精度にカメラの位置姿勢を推定することができる。
(第3の実施形態)
第1及び第2の実施形態では、第一または第二の位置姿勢推定が、失敗しているかどうか、または第一または第二のカメラ位置の差が閾値以上であるかどうかによって、どちらかの位置姿勢を出力するように判定していた。または、予め、両方の位置姿勢を出力するように設定していた場合、第一または第二の位置姿勢を両方出力し、合成した第三の位置姿勢を用いてCGを描画していた。しかし、第一の位置姿勢または、第二の位置姿勢、または第一と第二の位置姿勢の両方を出力する判定は、これに限るものではない。第一の位置姿勢または、第二の位置姿勢の安定度に基づいて出力する位置姿勢を判定してもよい。
位置姿勢出力判定部1060は、第一の位置姿勢を推定した際の第一の安定度の推定を行う。第一の特徴と対応付けされる3次元情報が閾値Tzero未満の場合には、第一の安定度は0とする。閾値Tzeroは、理論的に解が求められなくなる数とする。例えば、DLTを用いて直接解法でカメラ位置姿勢を推定する場合には、理論的に解が求められなくなる閾値としてTzeroは6となる。同様に、第二の位置姿勢を推定した際の第二の安定度の推定を行う。
位置姿勢出力判定部1060は、第一の安定度と第二の安定度の高いほうの安定度を有する位置姿勢を出力するように判定してもよい。
これにより、異なる特徴に基づいて推定したカメラ位置姿勢のうち、安定度を用いることで、より安定したカメラ位置姿勢を出力することができる。
以上、第一と第二の位置姿勢のどちらか一方を出力するモードを有することで、より多くの環境において、安定かつ高精度にカメラの位置姿勢を推定することができる。
(第4の実施形態)
第1〜第3の実施形態では、時系列で取得した画像における、ある時刻tにおけるカメラの位置姿勢を推定する説明を行っていたが、カメラの位置姿勢推定に基づいて求めるのであればこれに限るものではない。
不図示の動き推定部は、過去の時刻tにおいて推定した第一の位置姿勢と、時刻tにおける第一の位置姿勢からカメラの動きの速さを推定する。または、過去の時刻tにおいて推定した第二の位置姿勢と、時刻tにおける第二の位置姿勢からカメラの動きの速さを推定する。
位置姿勢出力判定部1060は、不図示のカメラ動き推定部が推定したカメラの動きの速さに基づいて、出力する位置姿勢を判定してもよい。カメラの位置姿勢の動きの速さ、すなわち単位時間あたりの変化量が、連続的な動きではないため誤推定と判定するための閾値を閾値Tとする。第一の位置姿勢または第二の位置姿勢に基づいて推定された、どちらか一方の動きの速さが、閾値Tよりも大きい場合、連続的な動きではないため誤推定している可能性がある。そのため、位置姿勢出力判定部1060は、閾値Tよりも小さい動きのほうのカメラ位置姿勢を出力するように判定する。閾値Tは、HMDに装着されたカメラのため、人の頭の動きから実験的に決定してもよい。例えば、閾値Tは、150cm/secの並行移動または、120度/secの角速度としてもよい。ユースケースに応じて、閾値Tを、ユーザが指定した値に、不図示のUIにより変更してもよい。
以上のように、誤推定などにより連続的なカメラ位置姿勢が推定されなかった場合に、連続的な変化として推定されたカメラ位置姿勢のほうを出力するように判定してもよい。
以上により、第一の特徴または第二の特徴が十分得られない環境や、誤対応しやすい環境などにおいて、カメラ位置姿勢の誤推定された場合にも、第一または第二のどちらかのカメラ位置姿勢が安定して推定されていれば、安定したカメラ位置姿勢出力が可能である。
(変形例2)
上記第1〜第4の各実施形態の構成はそれぞれ単独で実施される必要はなく、それぞれの実施形態の構成を組み合わせてもよい。
(変形例3)
上記第1〜第4の各実施形態ではヘッドマウントディスプレイに接続された情報処理装置1000を説明した。しかしながら、本発明はこの形態に限られない。すなわち、ヘッドマウントディスプレイ自体に情報処理装置1000の各機能を備えていてもよい。
(変形例4)
上記第1〜第4の各実施形態ではビデオシースルー型のヘッドマウントディスプレイで説明した。しかしながら、本願発明はこれには限られず、光学シースルー型のヘッドマウントディスプレイでもよい。
(変形例5)
上記第1〜第4の各実施形態ではユーザの頭部に装着するヘッドマウントディスプレイで説明した。しかしながら、本願発明はこれには限られず、ユーザが手に持ってCGを観察するハンドヘルドディスプレイでもよい。
(変形例6)
本願明細書は以下のような実施形態も含む。例えば、まず第二の特徴検出部1040が撮像画像から四角形指標を検出し、検出された四角形指標の数、分布、画像内に占める四角形指標の大きさに基づいて信頼度を計算する。信頼度は、四角形指標の数が多ければ多いほど高くなるように計算される。また、信頼度は、分布が広ければ広いほど高くなるように計算される。また、信頼度は画像内に占める四角形指標の大きさが大きければ大きいほど高くなるように計算される。計算された信頼度が閾値よりも大きければ、第二の位置姿勢推定部1050は、四角形指標に基づいて、撮像装置の位置および姿勢の計算を行う。
一方で、信頼度が閾値以下の場合には、第一の特徴検出部1020は、自然特徴を検出する。そして、第一の位置姿勢推定部1030は、検出された自然特徴に基づいて撮像装置の位置及び姿勢の計算を行う。
本変形例により、常に2つの位置姿勢計算を行う必要がなくなり、処理負荷を軽減することができる。
(変形例7)
本願明細書は以下のような実施形態も含む。例えば、まず第一の特徴検出部1020が撮像画像から自然特徴を検出し、検出された自然特徴の数、分布に基づいて信頼度を計算する。信頼度は、検出された自然特徴の数が多ければ多いほど高くなるように計算される。また、信頼度は、分布が広ければ広いほど高くなるように計算される。計算された信頼度が閾値よりも大きければ、第一の位置姿勢推定部1030は、自然特徴に基づいて、撮像装置の位置および姿勢の計算を行う。
一方で、信頼度が閾値以下の場合には、第二の特徴検出部1040は、自然特徴を検出する。そして、第二の位置姿勢推定部1050は、検出された自然特徴に基づいて撮像装置の位置及び姿勢の計算を行う。
本変形例により、常に2つの位置姿勢計算を行う必要がなくなり、処理負荷を軽減することができる。
(他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (23)

  1. 撮像装置によって撮像された画像を取得する画像取得手段と、
    前記画像から第一の特徴を検出する第一の検出手段と、
    前記第一の検出手段とは異なる方法により、前記画像から該第一の特徴と異なる第二の特徴とを検出する第二の検出手段と、
    前記画像から検出された前記第一の特徴に基づいて、前記撮像装置の位置姿勢を第一の位置姿勢として導出する第一の位置姿勢導出手段と、
    前記画像から検出された前記第二の特徴に基づいて、前記撮像装置の位置姿勢を第二の位置姿勢として導出する第二の位置姿勢導出手段と、
    前記第一の位置姿勢と前記第二の位置姿勢とに基づいて、前記撮像装置の位置姿勢を決定する決定手段とを備えることを特徴とする情報処理装置。
  2. 前記決定手段は、前記第一の位置姿勢と前記第二の位置姿勢のいずれか一方を、前記撮像装置の位置姿勢として決定することを特徴とする請求項1に記載に情報処理装置。
  3. 前記第一の位置姿勢の導出および前記第二の位置姿勢の導出がそれぞれ所定の条件を満たしているかを判定する判定手段を更に備えることを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記第一の位置姿勢の導出および前記第二の位置姿勢の導出の両方とも所定の条件を満たしていないと判定された場合には、前記第一の位置姿勢を前記撮像装置の位置姿勢として決定することを特徴とする請求項3に記載の情報処理装置。
  5. 前記第一の位置姿勢の導出が所定の条件を満たしていると判定され、前記第二の位置姿勢の導出が所定の条件を満たしていないと判定された場合に、前記第二の位置姿勢を前記撮像装置の位置姿勢として決定し、
    前記第二の位置姿勢の導出が所定の条件を満たしていると判定され、前記第一の位置姿勢の導出が所定の条件を満たしていないと判定された場合に、前記第一の位置姿勢を前記撮像装置の位置姿勢として決定することを特徴とする請求項3に記載の情報処理装置。
  6. 前記第一の位置姿勢の導出および前記第二の位置姿勢の導出の両方が所定の条件を満たしていると判定された場合に、前記画像よりも前に取得された画像に基づいて決定された位置姿勢を前記撮像装置の位置姿勢として決定することを特徴とする請求項3に記載の情報処理装置。
  7. 前記判定手段は、位置姿勢の導出が失敗していることを前記所定の条件として判定することを特徴とする請求項3乃至6の何れか1項に記載の情報処理装置。
  8. 前記第一の位置姿勢と前記第二の位置姿勢の差が閾値よりも大きい場合に前記第二の位置姿勢を前記撮像装置の位置姿勢として決定し、
    前記第一の位置姿勢と前記第二の位置姿勢の差が閾値以下の場合に前記第一の位置姿勢を前記撮像装置の位置姿勢として決定することを特徴とする請求項1または2に記載の情報処理装置。
  9. 前記決定手段が前記第一の位置姿勢を前記撮像装置の位置姿勢として決定した場合に、前記決定手段が決定した第一の位置姿勢を、前記第二の位置姿勢導出手段による処理の初期値として設定し、
    前記決定手段が前記第二の位置姿勢を前記撮像装置の位置姿勢として決定した場合に、前記決定手段が決定した第二の位置姿勢を、前記第一の位置姿勢導出手段による処理の初期値として設定する設定手段を備え、
    前記第一の導出手段または前記第二の導出手段は、前記設定された初期値に基づいて処理を行うことを特徴とする請求項1に記載の情報処理装置。
  10. 前記決定手段は、前記第一の位置姿勢と前記第二の位置姿勢とを所定の割合で重みづけして得られた位置姿勢を、前記第撮像装置の位置姿勢として決定することを特徴とする請求項1に記載の情報処理装置。
  11. 更に、前記第一の位置姿勢と前記第二の位置姿勢の導出の安定度を取得する手段を備え、
    前記決定手段は、前記第一の位置姿勢導と前記第二の位置姿と前記安定度とに基づいて前記位置姿勢を決定することを行うことを特徴とする請求項1に記載の情報処理装置。
  12. 更に、時刻tにおいて出力された位置姿勢と、時刻tよりも過去の時刻のフレームにおいて出力された位置姿勢から、前記撮像装置の動きの変化を推定する推定手段を備え、
    前記決定手段は、前記第一の位置姿勢と前記第二の位置姿勢と前記動きの変化に基づいて、前記撮像装置の位置姿勢を決定することを特徴とする請求項1に記載の情報処理装置。
  13. 撮像装置によって撮像された画像を取得する画像取得手段と、
    前記画像から第二の特徴を検出する第二の検出手段と、
    前記検出手段の結果が第一の条件を満たしている場合は、前記第二の特徴に基づいて導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定し、
    前記検出手段の結果が前記第一の条件を満たしていない場合は、前記第2の特徴と異なる検出方法により検出された第一の特徴に基づき導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定する決定手段を備えることを特徴とする情報処理装置。
  14. 前記決定手段は、
    前記第二の検出手段で検出された第二の特徴の数が閾値よりも大きい場合に、前記第二の特徴に基づいて導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定し、
    前記検出手段の結果で検出された第二の特徴の数が閾値以下の場合に、前記第2の特徴と異なる検出方法により検出された第一の特徴に基づき導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定することを特徴とする請求項13に記載の情報処理装置
  15. 前記第一の検出手段は、前記画像に所定のフィルタを施すことにより、前記画像において所定の値以上の輝度勾配を有する画素を前記第1の特徴として検出し、
    前記第二の検出手段は、前記画像から所定の形状を有する領域を検出した後に、前記領域の内部の識別情報を読み取ることにより、前記第2の特徴を検出することを特徴とする請求項1乃至14の何れか1項に記載の情報処理装置。
  16. 前記第一の特徴は、前記画像における輝度勾配を有する特徴点であることを特徴とする請求項1乃至15のいずれか1項に記載の情報処理装置。
  17. 前記第二の特徴は、矩形の形状を有し、該矩形の内部に識別情報を有するマーカであることを特徴とする請求項1乃至16のいずれか1項に記載の情報処理装置。
  18. 更に、前記出力された位置姿勢に基づいてCG画像を生成する生成手段を備えることを特徴とする請求項1乃至17のいずれか1項に記載の情報処理装置。
  19. 更に、前記画像と前記CG画像とを合成した合成画像を生成する手段と、
    前記合成画像を表示装置に表示させる表示制御手段とを備えることを特徴とする請求項18に記載の情報処理装置。
  20. 前記表示装置は、ユーザの頭部に装着するヘッドマウントディスプレイであることを特徴とする請求項19に記載の情報処理装置。
  21. 撮像装置によって撮像された画像を取得する画像取得工程と、
    前記画像から第一の特徴を検出する第一の検出工程と、
    前記第一の検出工程における検出方法とは異なる方法により、前記画像から該第一の特徴と異なる第二の特徴とを検出する第二の検出工程と、
    前記画像から検出された前記第一の特徴に基づいて、前記撮像装置の位置姿勢を第一の位置姿勢として導出する第一の位置姿勢導出工程と、
    前記画像から検出された前記第二の特徴に基づいて、前記撮像装置の位置姿勢を第二の位置姿勢として導出する第二の位置姿勢導出工程と、
    前記第一の位置姿勢と前記第二の位置姿勢とに基づいて、前記撮像装置の位置姿勢を決定する決定工程とを備えることを特徴とする情報処理方法。
  22. 撮像装置によって撮像された画像を取得する画像取得工程と、
    前記画像から第二の特徴を検出する第二の検出工程と、
    前記検出手段の結果が第一の条件を満たしている場合は、前記第二の特徴に基づいて導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定し、
    前記検出手段の結果が前記第一の条件を満たしていない場合は、前記第2の特徴と異なる検出方法により検出された第一の特徴に基づき導出された前記撮像装置の位置姿勢を、該撮像装置の位置姿勢として決定する決定工程を備えることを特徴とする情報処理方法。
  23. コンピュータを、請求項1乃至20のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2016224576A 2016-01-20 2016-11-17 情報処理装置、情報処理方法、プログラム Pending JP2017129567A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2016/005165 WO2017125983A1 (en) 2016-01-20 2016-12-16 Information processing apparatus, information processing method, and program for estimating position and orientation of a camera
US16/070,235 US10930008B2 (en) 2016-01-20 2016-12-16 Information processing apparatus, information processing method, and program for deriving a position orientation of an image pickup apparatus using features detected from an image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016009308 2016-01-20
JP2016009308 2016-01-20

Publications (2)

Publication Number Publication Date
JP2017129567A true JP2017129567A (ja) 2017-07-27
JP2017129567A5 JP2017129567A5 (ja) 2019-12-26

Family

ID=59394712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016224576A Pending JP2017129567A (ja) 2016-01-20 2016-11-17 情報処理装置、情報処理方法、プログラム

Country Status (2)

Country Link
US (1) US10930008B2 (ja)
JP (1) JP2017129567A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013560A (ja) * 2018-07-06 2020-01-23 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020173617A (ja) * 2019-04-10 2020-10-22 清水建設株式会社 位置推定システム、位置推定装置、位置推定方法、及びプログラム
US11508150B2 (en) 2019-06-24 2022-11-22 Canon Kabushiki Kaisha Image processing apparatus and method of controlling the same

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9688403B2 (en) 2014-05-20 2017-06-27 Infatics, Inc. Method for adaptive mission execution on an unmanned aerial vehicle
WO2018144929A1 (en) 2017-02-02 2018-08-09 Infatics, Inc. (DBA DroneDeploy) System and methods for improved aerial mapping with aerial vehicles
US10627232B2 (en) 2017-06-27 2020-04-21 Infatics, Inc. Method and system for aerial image processing
CN108682036B (zh) * 2018-04-27 2022-10-25 腾讯科技(深圳)有限公司 位姿确定方法、装置及存储介质
WO2020247938A1 (en) * 2019-06-07 2020-12-10 Pictometry International Corp. Using spatial filter to reduce bundle adjustment block size
US11776153B2 (en) * 2019-10-08 2023-10-03 Zebra Technologies Corporation Method, system and apparatus for mobile dimensioning
US11315346B2 (en) * 2020-01-16 2022-04-26 Square Enix Co., Ltd. Method for producing augmented reality image
WO2022132464A1 (en) * 2020-12-14 2022-06-23 Magic Leap, Inc. Bundle adjustment using epipolar constraints
CN113393524B (zh) * 2021-06-18 2023-09-26 常州大学 一种结合深度学习和轮廓点云重建的目标位姿估计方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293357A (ja) * 2007-05-25 2008-12-04 Canon Inc 情報処理方法および情報処理装置
JP2011095228A (ja) * 2009-11-02 2011-05-12 Sony Computer Entertainment Inc 操作入力装置
JP2011141828A (ja) * 2010-01-08 2011-07-21 Sony Corp 情報処理装置、情報処理システム及び情報処理方法
JP2013182523A (ja) * 2012-03-02 2013-09-12 Hitachi Plant Technologies Ltd 画像処理装置、画像処理システム、画像処理方法
JP2014092984A (ja) * 2012-11-05 2014-05-19 Nippon Telegr & Teleph Corp <Ntt> 推定装置、推定方法及びコンピュータプログラム
JP2015158461A (ja) * 2014-02-25 2015-09-03 富士通株式会社 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
JP2017011328A (ja) * 2015-06-16 2017-01-12 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100365654C (zh) 2003-07-24 2008-01-30 奥林巴斯株式会社 图像处理装置
JP4532982B2 (ja) 2004-05-14 2010-08-25 キヤノン株式会社 配置情報推定方法および情報処理装置
JP5063023B2 (ja) * 2006-03-31 2012-10-31 キヤノン株式会社 位置姿勢補正装置、位置姿勢補正方法
US20100045701A1 (en) 2008-08-22 2010-02-25 Cybernet Systems Corporation Automatic mapping of augmented reality fiducials
JP5821526B2 (ja) * 2011-10-27 2015-11-24 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
US9990726B2 (en) * 2012-09-27 2018-06-05 Apple Inc. Method of determining a position and orientation of a device associated with a capturing device for capturing at least one image
US10129527B2 (en) * 2015-07-16 2018-11-13 Google Llc Camera pose estimation for mobile devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293357A (ja) * 2007-05-25 2008-12-04 Canon Inc 情報処理方法および情報処理装置
JP2011095228A (ja) * 2009-11-02 2011-05-12 Sony Computer Entertainment Inc 操作入力装置
JP2011141828A (ja) * 2010-01-08 2011-07-21 Sony Corp 情報処理装置、情報処理システム及び情報処理方法
JP2013182523A (ja) * 2012-03-02 2013-09-12 Hitachi Plant Technologies Ltd 画像処理装置、画像処理システム、画像処理方法
JP2014092984A (ja) * 2012-11-05 2014-05-19 Nippon Telegr & Teleph Corp <Ntt> 推定装置、推定方法及びコンピュータプログラム
JP2015158461A (ja) * 2014-02-25 2015-09-03 富士通株式会社 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
JP2017011328A (ja) * 2015-06-16 2017-01-12 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013560A (ja) * 2018-07-06 2020-01-23 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020173617A (ja) * 2019-04-10 2020-10-22 清水建設株式会社 位置推定システム、位置推定装置、位置推定方法、及びプログラム
JP7286388B2 (ja) 2019-04-10 2023-06-05 清水建設株式会社 位置推定システム、位置推定装置、位置推定方法、及びプログラム
US11508150B2 (en) 2019-06-24 2022-11-22 Canon Kabushiki Kaisha Image processing apparatus and method of controlling the same

Also Published As

Publication number Publication date
US10930008B2 (en) 2021-02-23
US20190026919A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
JP2017129567A (ja) 情報処理装置、情報処理方法、プログラム
JP4976756B2 (ja) 情報処理方法および装置
JP4532982B2 (ja) 配置情報推定方法および情報処理装置
JP4136859B2 (ja) 位置姿勢計測方法
JP4886560B2 (ja) 情報処理装置、情報処理方法
US7657065B2 (en) Marker placement information estimating method and information processing device
JP4757142B2 (ja) 撮影環境校正方法及び情報処理装置
JP6789624B2 (ja) 情報処理装置、情報処理方法
TWI496108B (zh) AR image processing apparatus and method
JP6503906B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP6368142B2 (ja) 情報処理装置、情報処理方法
JP5196825B2 (ja) 画像処理装置、画像処理方法
JP2005326282A (ja) 位置姿勢計測方法および装置
WO2011105616A1 (en) Three-dimensional measurement apparatus, model generation apparatus, processing method thereof, and non-transitory computer-readable storage medium
JP6762913B2 (ja) 情報処理装置、情報処理方法
JP7406875B2 (ja) 情報処理装置およびプログラム
JP2008176509A (ja) 情報処理装置および方法
JP2013113805A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP4095320B2 (ja) センサ較正装置、センサ較正方法、プログラム、記憶媒体
JP2014026670A (ja) 情報処理装置、その処理方法及びプログラム
JP5726024B2 (ja) 情報処理方法および装置
JP6109213B2 (ja) 情報処理装置および方法、プログラム
JP2005270484A (ja) キャリブレーション方法
JP4810403B2 (ja) 情報処理装置、情報処理方法
WO2017125983A1 (en) Information processing apparatus, information processing method, and program for estimating position and orientation of a camera

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220405