(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20240610BHJP
【FI】
G06T7/70
(21)【出願番号】P 2020053008
(22)【出願日】2020-03-24
【審査請求日】2023-03-20
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】武本 和樹
【審査官】村山 絢子
(56)【参考文献】
【文献】特開2019-020778(JP,A)
【文献】特開2018-014579(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06T 1/00
H04N 23/00
H04N 23/40-23/76
H04N 23/90-23/959
H04N 5/222-5/257
(57)【特許請求の範囲】
【請求項1】
撮像装置が現実空間を撮像した撮像画像から、該撮
像画像内の特徴点の位置と指標の識別情報とを含むマップ情報を生成する生成手段と、
前記生成されたマップ情報における前記指標の識別情報と、1以上の登録されたマップ情報における前記指標の識別情報とを照合し、照合結果に基づいて、1以上の登録されたマップ情報からマップ情報を抽出する照合手段と、
前記照合手段により抽出されたマップ情報における特徴点の位置と、前記生成されたマップ情報における特徴点の位置とに基づいて、前記撮像装置の位置姿勢を推定する推定手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記照合手段により抽出されたマップ情報のリストを提示する提示手段と、
前記リストの中からユーザによる指示に基づいて1つのマップ情報を選択する選択手段と、
をさらに有し、
前記推定手段は、前記選択手段により選択されたマップ情報における特徴点の位置と、前記生成されたマップ情報における特徴点の位置とに基づいて、前記撮像装置の位置姿勢を推定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記提示手段は、前記リストにおいて、前記1以上の登録されたマップ情報のそれぞれの登録時点を提示することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記マップ情報は前記現実空間内における前記指標の位置を表す情報を含み、
前記照合手段は、前記抽出されたマップ情報及び前記生成されたマップ情報における前記指標の識別情報
の位置
を照合することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
前記識別情報はハッシュ値で表され、
前記照合手段は、前記ハッシュ値を照合することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項6】
前記照合手段は、前記照合の結果を基に適合スコアを生成し、該適合スコアに基づいて、前記抽出されたマップ情報として1つのマップ情報を選択することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記マップ情報は、前記指標の識別情報と位置及び姿勢とを含み、
前記照合手段は、前記識別情報の一致する指標の位置及び姿勢に基づいて、前記適合スコアを生成することを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記照合手段は、前記生成手段にて前記生成されたマップ情報と、既知のマップ情報との差分を基に、前記適合スコアを生成することを特徴とする請求項6に記載の情報処理装置。
【請求項9】
前記照合手段は、前記生成手段にて前記生成さたれマップ情報による位置と、既知のマップ情報による位置との、差分距離を基に前記適合スコアを生成することを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記照合手段は、前記生成手段にて前記生成されたマップ情報による位置と、既知のマップ情報による位置との、相対位置を基に前記適合スコアを生成することを特徴とする請求項6に記載の情報処理装置。
【請求項11】
撮像装置が現実空間を撮像した撮像画像から、該撮
像画像内の特徴点の位置と指標の識別情報とを含むマップ情報を生成する生成工程と、
前記生成されたマップ情報における前記指標の識別情報と、1以上の登録されたマップ情報における前記指標の識別情報とを照合し、照合結果に基づいて、1以上の登録されたマップ情報からマップ情報を抽出する照合工程と、
前記照合工程により抽出されたマップ情報における特徴点の位置と、前記生成されたマップ情報における特徴点の位置とに基づいて、前記撮像装置の位置姿勢を推定する推定工程と、
を有することを特徴とする情報処理方法。
【請求項12】
コンピュータを、請求項1乃至10のいずれか1項に記載の情報処理装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像画像から撮像装置の位置姿勢を推定する情報処理技術に関する。
【背景技術】
【0002】
現実空間に仮想空間の情報をリアルタイムに重ね合せて利用者に提示する複合現実感を用いて、製品の設計やデザイン検証を試作機の製作前に検討するバーチャル設計が実施されている。この複合現実感を実現するには、撮像装置の位置姿勢(現実のカメラ位置姿勢)を求めて、現実空間と仮想空間の位置合わせを行う必要がある。つまりカメラで撮影した実写画像にCADデータのような3次元モデルを合成表示する場合には、カメラの位置姿勢に基づいた視点で3次元モデルを描画することにより、現実空間にあたかも3次元モデルが配置されたような複合現実感を実現する。従来は、事前に「マーカー」と呼ばれる識別情報を含む矩形指標等を空間に配置し、その空間を撮像した画像からマーカーの情報を抽出し、そのマーカーの情報を基にカメラの位置姿勢を推定する手法が多用されている。
【0003】
しかし、広範囲で位置合わせを実現するケースでは、複数のマーカーを空間内に事前に配置することと、複数のマーカーの相対位置姿勢を事前に校正して求めておく必要があるため、前述した手法は、事前に時間的余裕のある現場にしか適用できない。一方、事前の準備作業を軽減可能にする手法として、マーカーではなく、撮像画像上の特徴点(角点や鋭角の模様など)を連続フレーム間で追跡してカメラ位置姿勢を推定する手法が提案されている(非特許文献1)。非特許文献1では、現実空間の特徴点を連続フレーム間で追跡し、フレーム間の特徴点対応情報をStructure from Motionの手法を用いて3次元点に変換し、それら点群の3次元情報をバンドル調整で最適化する手法が開示されている。さらに、最適化した3次元点群の情報をマップ情報として保存しておき、同一の場所でマップ情報を読み込むことで、位置合わせ処理の際の最適化の計算が省略可能となる。ただし、例えば複数の場所や時間の異なる状況において、非特許文献1の位置合わせ処理を実行し、その都度マップ情報を作成すると、複数のマップ情報からどのマップ情報を読み出せばよいのかがわからなくなる。このため、ユーザは、マップ情報を確認してから読み込む手間をかける必要がある。一方、この手間を削減する手法の1つとして、非特許文献2には、現在のカメラ画像に類似した画像を複数のマップ情報から探索して特定する手法が開示されている。その他、特許文献1には、マーカーと画像中の特徴点の双方の情報を参照することでより安定性と精度の高い位置合わせを実現する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】Georg Klein and David Murray. Parallel Tracking and Mapping for Small AR Workspaces. In Proc. International Symposium on Mixed and Augmented Reality, 2007.
【文献】Robert Castle, Georg Klein, David W Murray. Video-rate Localization in Multiple Maps for Wearable Augmented Reality. In Proc. International Symposium on Wearable Computing (ISWC), 2008.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述した非特許文献2に開示された手法の場合、マップ情報のファイルサイズに比例して、マップを特定する時間も増加するため、マップを選択するための時間が増大するという問題が生ずる。ここで、複合現実感を体験する場合、ユーザは、ビデオシースルータイプ等のヘッドマウントディスプレイ(HMDと略す)を装着することになるため、HMD側での選択等を可能にする操作ボタンを設けることが考えられる。また、高精度でカメラ位置姿勢を推定するためには、複数のマップ情報の中から適正なマップ情報を選択する必要があり、この場合、例えば複数のマップ情報をリスト表示し、そのリストの中から適正なリスト項目を選択することになると考えられる。しかし、HMDを装着した状態で操作ボタンを操作し、リスト表示された中から適正なリスト項目を選択する場合、項目選択のための操作回数が増え、所望の項目が選択されるまでに長い時間がかかってしまうことがある。
【0007】
そこで本発明は、短時間に高い精度でカメラ位置姿勢の推定を可能にすることを目的とする。
【課題を解決するための手段】
【0008】
本発明の情報処理装置は、撮像装置が現実空間を撮像した撮像画像から、該撮像画像内の特徴点の位置と指標の識別情報とを含むマップ情報を生成する生成手段と、前記生成されたマップ情報における前記指標の識別情報と、1以上の登録されたマップ情報における前記指標の識別情報とを照合し、照合結果に基づいて、1以上の登録されたマップ情報からマップ情報を抽出する照合手段と、前記照合手段により抽出されたマップ情報における特徴点の位置と、前記生成されたマップ情報における特徴点の位置とに基づいて、前記撮像装置の位置姿勢を推定する推定手段と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、短時間に高い精度でカメラ位置姿勢の推定が可能となる。
【図面の簡単な説明】
【0010】
【
図1】実施形態の情報処理装置の機能構成例を示すブロック図である。
【
図3】インテリアデザインの検証ケースの現実シーンを表す図である。
【
図4】コピー機操作パネルの操作性検証ケースの現実シーンを表す図である。
【
図5】実施形態に係るマップ情報のデータ構成例を示す図である。
【
図6】マップ情報の候補リストの表示例を示す図である。
【
図7】第1の実施形態に係る情報処理のフローチャートである。
【
図8】マップ情報保存処理のフローチャートである。
【
図9】第1の実施形態に係るマップ照合処理のフローチャートである。
【
図10】合成画像の提示処理のフローチャートである。
【
図11】第2の実施形態に係るマップ照合処理のフローチャートである。
【発明を実施するための形態】
【0011】
以下、実施形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施形態は本発明を必ずしも限定するものではない。
図1は、本実施形態に係る情報処理の一例としてカメラ位置姿勢推定処理を行う場合の概略的なブロック構成を示した図である。また
図2は、本実施形態に係る情報処理をハードウェア構成によって実現する場合の構成例を示した図である。
【0012】
ここで、本実施形態では、本発明の情報処理装置の好適な一例として、複合現実感を提示するシステムを説明する。例えば、
図3に示すような室内インテリアのデザイン検証を行うシーンと、
図4に示すようなコピー機の操作パネルの操作性を検証するシーンにおいて、それぞれ複合現実感を使って検証することを想定する。
図3は、椅子620などのインテリアCGモデルを部屋610の実写映像上に合成表示し、ユーザの視点(例えば椅子に座ったユーザの視点)からのインテリアデザインの検証を行うシーンを模式的に示した図である。
図4は、コピー機720などのCGモデルを部屋710の実写映像に合成表示することで、コピー機720の操作パネル721の操作性を、試作機の製作前に検証するシーンを模式的に示した図である。
図3と
図4のような異なるシーンでは、配置されている現実の物体も変わるため、同一のマップ情報を流用することができない。そのため、そのシーンに適したマップ情報を選択して読み込む必要がある。
図3に例示したシーンの場合、カメラ位置姿勢推定の精度と安定性を向上させるため、識別情報を持つマーカー601~603が現実空間内に配置される。同様に、
図4に例示したシーンでも、カメラ位置姿勢推定の精度と安定性を向上させるため、識別情報を持つマーカー701~705が部屋610の現実空間内に配置される。このようなほとんどのシーンでは、現実の物体に対してマーカーを貼り付け等するため、各シーンには、異なるマーカーIDのマーカーを配置することになる。
【0013】
以下、これら
図3や
図4のシーン例を想定して、本実施形態に係る情報処理装置の構成及び動作を説明する。
図1に示すように、本実施形態の情報処理装置は、カメラ位置姿勢推定部110に対し、撮像部100、CGモデル描画部200、表示部270、マップ保存指示部280、およびマップ選択指示部290等が接続された構成となされている。なお、表示部270は、CGモデル描画部200を介してカメラ位置姿勢推定部110に接続されている。
【0014】
本実施形態の情報処理装置は、
図2に示すハードウェア構成によって情報処理(カメラ位置姿勢推定処理)を実行する。CPU901は、装置全体を制御する。RAM907は、CPU901が各部を制御しながら処理を行う時に作業領域として用いられる。ROM902は、制御プログラム、各種アプリケーションプログラム、データなどを記憶する。CPU901が、ROM902に記憶された制御プログラムをRAM907に展開して実行することにより、
図1のカメラ位置姿勢推定部110の機能が実現される。また、入力I/F903は、撮像部100により撮像された画像信号を、カメラ位置姿勢推定部110で処理可能な形式の入力信号として取得する。なお、
図1に示したカメラ位置姿勢推定部110の各機能部のうち、少なくとも一部が専用のハードウェアとして動作するようになされていてもよい。この場合、専用のハードウェアは、CPU901の制御に基づいて動作する。
【0015】
撮像部100は、前述の
図3、
図4に示したようにマーカーが配置された現実空間(部屋等)を撮像する撮像装置であり、本実施形態ではカラーカメラであるとする。ビデオシースルー型のヘッドマウンテッドディスプレイ(HMD)では、両目に実写映像を提示する必要があるため、撮像部100としては2個のステレオカメラが用いられる場合が多い。ただし、撮像部100は、ステレオカメラを利用することに限定されるものではなく、単眼カメラでも適用可能である。また、撮像部100は、HMDに搭載されている例に限定されるものではなく、市販等されたビデオカメラが用いられてもよい。
【0016】
画像入力部111は、撮像部100から、画像信号(以下、カメラ画像とする)を取得する。入力されたカメラ画像は、位置姿勢追跡部125と指標検出部112とに送られる。
【0017】
指標検出部112は、入力されたカメラ画像からマーカーを検出する処理を実行する。本実施形態におけるマーカー検出処理は、特許文献1に記載された方法を用いればよい。すなわち指標検出部112は、カメラ画像上の矩形領域の検出、マーカーに付与されている2次元バーコード等の認識によるID識別、マーカーの3次元位置姿勢の推定等を実行する。そして、指標検出部112は、マーカー検出結果のデータである、各マーカーのIDおよび3次元位置姿勢情報を、カメラ画像(現在の実写画像)と合わせて指標保持部115に送る。
【0018】
指標保持部115は、指標検出部112から送られてきた情報とカメラ画像のデータを保持(蓄積)する。指標保持部115は、カメラ画像が更新されるたびに、指標検出部112から送られてくるデータを蓄積する。本実施形態の場合、
図3や
図4に示したような各マーカーが配置された部屋等を撮像部100が撮像することで、その部屋等に配置されたマーカーの検出情報が蓄積されることになる。以下の説明では、マーカーの検出情報を、マーカー情報と呼んでいる。本実施形態におけるマーカー情報の例を、
図5(c)に示す。
図5(c)に示すように、マーカー情報は、マーカーIDと、マーカーの位置と姿勢回転軸と姿勢回転角度とからなる3次元位置姿勢情報とが、紐付けられたものであり、このマーカー情報が指標保持部115に保持される。
【0019】
指標校正部120は、指標保持部115に保持されているマーカー情報を用いて、複数の各マーカーの相対的な位置姿勢情報を校正する。この校正処理により、マーカーの位置姿勢が補正されて、本実施形態のカメラ位置姿勢推定部110が出力するカメラ位置姿勢の精度が向上する。本実施形態におけるマーカーの相対的な位置姿勢の校正には、バンドル調整の手法を用いればよい。すなわち当該手法では、マーカー情報のIDに基づいて、複数の画像に写る同一マーカーの4頂点の3次元位置を対応付け、各画像上での頂点の再投影誤差が最小になるような頂点の3次元位置を推定する。このようにして校正(補正)されたマーカー情報は指標保持部115に送信され、そのマーカー情報によって、指標保持部115に保持されているマーカー情報が更新される。
【0020】
位置姿勢追跡部125は、入力されたカメラ画像と、後述するマップ保持部135から読み出されたマップ情報とに基づいて、現在の撮像部100の現実空間内における3次元位置姿勢、つまり現実空間内でのカメラ位置姿勢を推定する。ここで本実施形態において、カメラ位置姿勢を推定する処理は、非特許文献1に記載された手法を用いればよい。すなわち当該手法では、現在のカメラ画像内の特徴点と1フレーム前のカメラ画像内の特徴点とを対応付けして追跡できるか判定し、追跡できると判定された特徴点に紐付いた3次元の特徴点位置を、現在のカメラ画像上に投影する。そして、その投影した点と、現在のカメラ画像において対応する特徴点との、画像上の距離が最小になるように、カメラ位置姿勢が推定される。
【0021】
なお、特徴点に紐付けられた3次元の特徴点位置は、後述するマップ保持部135から読み出されるマップ情報から取得する。なお、マップ保持部135にマップ情報が保存される前でマップ情報が存在しない場合やマップ情報が読み込まれていない場合には、3次元の特徴点位置は、例えば特開2018-14579号公報(参考文献1)に記載の方法によって算出されてもよい。すなわち当該参考文献1に記載の方法では、初期化処理時に、最初のカメラ画像で特徴点が抽出され、その後に連続するカメラ画像で追跡特徴点数が一定値以下になる直前の画像がキーフレームとして選択される。次に、最初の画像と選択したキーフレームとの相対位置姿勢変化を計算し、三角測量の原理で、追跡した特徴点の3次元位置が算出される。このようにして得られた特徴点の3次元位置を用いることで、カメラ位置姿勢を算出することができる。また、位置姿勢追跡部125は、マップ保持部135に対し、適正なマップ情報が存在するか否かを問い合わせる処理も行う。
【0022】
そして、位置姿勢追跡部125は、その推定したカメラ位置姿勢の情報を、位置姿勢出力部127に送る。
位置姿勢出力部127は、位置姿勢追跡部125にて推定されたカメラ位置姿勢を、CGモデル描画部200に出力する。
【0023】
マップ生成部130は、位置姿勢追跡部125でカメラ位置姿勢追跡を行った際に用いた情報をマップ保持部135に登録するか否かを判定する。本実施形態では、推定した現在のカメラ位置と、マップ保持部135が保持しているマップ情報が持つキーフレーム位置姿勢とを比較し、カメラ位置と姿勢とがそれぞれ所定の閾値を超えた場合に、マップ保持部135に情報を追加する。マップ生成部130では、
図5(a)に示す特徴点情報をマップ保持部135に出力する。
図5(a)の特徴点情報は、特徴点の位置を示しており、カメラ位置姿勢推定部110で追跡できた特徴点に関する3次元の位置を格納する。
【0024】
マップ保持部135は、マップ生成部130で選択された現在のカメラ画像における特徴点情報と現在のカメラ画像で検出された指標情報とを対応付ける。そしてマップ保持部135は、その対応付けた情報をマップ情報として保持する。
【0025】
本実施形態におけるマップ情報は、現実空間の位置を特定可能な情報であり、例えば
図5(a)~
図5(c)に示す各情報を含む。すなわちマップ情報は、
図5(a)の特徴点情報、
図5(b)のキーフレーム情報、および
図5(c)のマーカー情報とから構成される。
図5(b)のキーフレーム情報には、特徴点IDとマーカーIDが格納されており、特徴点情報とマーカー情報が紐付けられている。また、マップ保持部135は、マップ情報を位置姿勢追跡部125に出力して、カメラ位置姿勢の推定に必要な情報を提供している。さらに、マップ保持部135は、マップ保存の要求に応じてマップ保存部145にマップ情報を出力する。
【0026】
マップ校正部140は、マップ保持部135に保持されているマップ情報の特徴点情報の3次元位置を補正する。本実施形態では、例えば、非特許文献1に記載されているマップの3次元点のバンドル調整の方法を用いてマップ情報の特徴点情報の3次元位置を補正する。すなわち当該方法では、各キーフレームIDが持つ特徴点の3次元位置が所定の距離の閾値以内の有効範囲内であれば、同一の特徴点と判断して対応付ける。さらに、マップ校正部140では、指標校正部120と同様に、キーフレーム位置に格納されたカメラ位置姿勢と、指標IDが参照する特徴点の3次元位置をバンドル調整処理することで、より精度のよい特徴点の3次元位置を得ることができる。そしてマップ校正部140は、校正(補正)した特徴点の3次元位置を、マップ保持部135に保持されている特徴点情報に反映することで特徴点の3次元位置を更新する。
【0027】
マップ保存部145は、ユーザまたはシステムからマップ保存指示部280を経由してマップ保存要求が出されたタイミングで、マップ保持部135に保持されているマップ情報を外部記憶装置906に保存する。マップ保存要求の指示は、ユーザが対象のシーンを満遍なくカメラで撮影し終わって、現在のマップ保持部135に保持されているマップ情報を使った位置合わせ精度・安定性ともに問題ないことが確認できたタイミングで出すことが考えられる。ユーザからの指示に基づくタイミングは、例えばマップ情報のリストの中からユーザが項目を選択し、その項目に対する選択を確定させる決定指示がなされたタイミング等を挙げることができる。
【0028】
マップ照合部150は、適切なマップを選択して、マップ保持部135のマップ情報を更新することによって、本実施形態のカメラ位置姿勢推定部110において、精度の高いカメラ位置姿勢の出力を可能にするために設けられたモジュールである。マップ照合部150は、適切なマップが存在するかどうかの問い合わせがマップ保持部135から送られてきた場合、外部記憶装置906に記憶されている既知の複数のマップ情報の中に、現在のマップ情報よりも適切なマップ情報があるか照合する。マップ照合部150は、そのマップ照合の結果、現在のマップ情報よりも適切なマップ情報が外部記憶装置906に記憶されている場合、マップ読込部160を経由して外部記憶装置906から該当するマップ情報を読み出させる。そして、マップ照合部150は、そのマップ情報を基に、マップ保持部135の対応したマップ情報を更新する。マップ照合部150におけるマップ照合処理の詳細は後述する。
【0029】
また本実施形態において、マップ照合処置の結果、現在のマップ情報よりも適切なマップ情報が複数存在していた場合、それら複数のマップ情報をマップ候補の項目とした候補リストを、表示部270によって表示させる。そして、マップ選択指示部290は、ユーザにより、その候補リストの中からいずれかのマップ候補を選択する指示が入力されると、その選択されたマップ候補をマップ照合部150に通知する。
【0030】
図6(b)は、表示部270に表示される候補リストの例を示した図である。
一方、
図6(a)は、全てのマップ情報をマップ候補としてリスト表示した場合の候補リストの例を示した図である。
ここで、
図6(a)に示したような候補リスト表示がなされ、その候補リストの中からいずれかのマップ候補を選択するような場合について考察してみる。この場合、例えば操作用コントローラ等を別途設け、その操作用コントローラにより候補リストの選択を行うことも考えられるが、HMDによる複合現実感を体験しているユーザは、操作用コントローラを持ちたくないことも多いと考えられる。また、HMD側に操作ボタンを設け、その操作ボタンによって簡単な操作を実現可能にすることも考えられるが、HMD側の操作ボタンの数を増やすとコストの増加や誤操作が生じ易くなるため、操作ボタンの数を増やすことは好ましくない。このため、HMD側に例えば「選択ボタン」と「決定ボタン」の2個の操作ボタンを設け、それらを操作して、
図6(a)に示したような候補リストの中からいずれかのマップ候補を選択することになると考えられる。この場合、
図6(a)のような候補リストからいずれかのマップ候補を選択するためには、選択ボタンでいずれかのマップ候補を選択し、さらに決定ボタンでその選択を確定させるような操作が行われる。しかしこの場合、マップ候補の数が多いと、選択ボタンによる操作回数が増え、選択が終わるまでの時間が増加する。またマップ候補が適正なマップ情報であるか否かをユーザは判断することになるが、その場合、
図6(a)の候補リスト内の各マップ候補が適正であるか判断する情報として、それらのマップ情報が保存された際の保存日時と時刻を提示することが考えられる。しかしながら、マップ情報が保存された際にその現場にユーザが居なかった場合、ユーザは、その時刻のマップ情報が適正であるか否かの判断ができない。したがって、
図6(a)のようなリスト表示の場合、ユーザは、マップ候補を順次選択して、位置合わせの状態を一つひとつ確認していく必要があり、マップ候補の数が多いと、適正なマップ情報を選択するまでに長時間を要する可能性が非常に高い。
【0031】
これに対し、本実施形態の場合、マップ照合部150での照合によって候補を絞り込み、
図6(b)に示すような絞り込み済みの候補リストをユーザに提示する。このため、ユーザは短時間に適正なマップ情報を選択することができる。
図6(b)に示したような候補リストを生成する処理の詳細については後述する。
【0032】
なお、マップ照合部150におけるマップ照合処理は機械学習の学習結果に基づいて行われてもよい。この場合、マップ保持部135に格納されているマーカーID、マーカー位置、マーカー姿勢、特徴点の3次元位置を入力し、学習結果から得られたマップ情報の候補リストを使用すればよい。
【0033】
CGモデル描画部200は、CGモデル保持部210に保持している3次元モデル(例えばCADモデルデータなど)を読み込み、位置姿勢出力部127のカメラ位置姿勢に基づいてCGモデルを描画し、CGモデル画像を生成する。
【0034】
合成部250は、撮像部100の撮像画像と、CGモデル描画部200で生成されたCGモデル画像を合成して、表示部270に表示する。
【0035】
表示部270は、合成部250で合成された画像を提示するためのディスプレイである。また、マップ照合部150から提示されたマップ情報のリストをユーザに提示する機能も持つ。このディスプレイは、HMDに搭載されているディスプレイであってもよいし、据え置き型の大型のモニター等であってもよい。
【0036】
図7は、第1の実施形態に係る情報処理の流れを示すフローチャートである。
ステップS210において、画像入力部111は、撮像部100のカメラ画像が更新されたか否かを判別し、更新された場合は、ステップS212に処理を移す。更新されていない場合、画像入力部111は、ステップS210の処理を繰り返して画像の更新を確認する。
【0037】
ステップS212では、画像入力部111が、撮像部100のカメラ画像を取得し、そのカメラ画像をRAM907に保存する。
ステップS213では、マップ照合部150が、現在のマップ情報よりも適したマップ情報があるか否かを確認するマップ照合処理を行う。そして、マップ照合部150は、現在のマップ情報よりも適したマップ情報があると判定した場合には、そのマップ情報を読み込むようにマップ読込部160に要請する。この要請を受けたマップ読込部160は、そのマップ情報を外部記憶装置906から読み込む。ステップS213におけるマップ照合処理の詳細は後述する。
【0038】
ステップS215では、位置姿勢追跡部125が、入力された画像と、マップ照合部150での照合結果によるマップ情報とに基づいて、カメラ位置姿勢を推定する。
ステップS220では、位置姿勢出力部127が、ステップS215で推定されたカメラ位置姿勢の情報をCGモデル描画部200に出力する。
【0039】
ステップS225では、マップ生成部130が、位置姿勢追跡部125で得られた特徴点情報を、マップ保持部135に登録するべきか否かを判定する。本実施形態では、参考文献1に記載の方法で特徴点情報をキーフレーム情報に追加するか否かを判定する。すなわちマップ生成部130は、追跡ができている特徴点が一定数以上あり、カメラの移動距離が一定値以上または、カメラの姿勢変分が一定値以上になる条件に合致するときに、特徴点情報をマップ保持部135に登録する。一方、前述の条件が成立しなかった場合、マップ生成部130は、特徴点情報をマップ保持部135に登録せずに、処理をステップS230に移す。
【0040】
ステップS230では、マップ生成部130が、位置姿勢追跡部125で取得した特徴点情報をマップ保持部135に保持させる(登録する)。
ステップS240では、指標検出部112が、カメラ画像に写るマーカーを検出する。ここで検出されたマーカー情報は、指標保持部115に出力される。
【0041】
ステップS245では、指標校正部120が、マーカーの相対的な位置姿勢を校正し、指標保持部115のマーカー情報を更新する。
ステップS250では、指標保持部115が、現在のカメラ画像から検出されたマーカー情報をマップ保持部135に出力する。
【0042】
ステップS255では、マップ校正部140が、マップ情報に基づいて、特徴点情報を校正する。
ステップS260では、マップ保存部145が、マップ情報を外部記憶装置906に保存する。保存処理の詳細は後述する。
ステップS265では、マップ選択指示部290が、ユーザからの終了指示の有無を確認し、終了指示があった場合、カメラ位置姿勢推定部110は、
図7のフローチャートの処理を終了する。一方、終了指示がない場合は、カメラ位置姿勢推定部110は、処理をステップS210に戻す。
【0043】
図8は、
図7のステップS260におけるマップ情報を保存する処理の詳細を示したフローチャートである。
ステップS310では、マップ保存部145が、マップ保存指示部280の指示があるか否かを判定する。指示がある場合、マップ保存部145は、ステップS320に処理を移す。一方、指示がない場合、マップ保存部145は、
図8のフローチャートの処理を終了する。
ステップS320では、マップ保存部145が、マップ保持部135に格納されているマップ情報を読み出して、外部記憶装置906に保存する。
【0044】
図9は、
図7のステップS213におけるマップ照合処理の詳細を示すフローチャートである。
ステップS410では、位置姿勢追跡部125が、照合可能なマップ情報が存在するかどうかをマップ保持部135経由でマップ照合部150に問い合わせる。照合可能なマップ候補が外部記憶装置906に存在する場合、マップ照合部150は、ステップS415の処理に移行する。照合可能なマップが外部記憶装置906に存在しない場合、マップ照合部150は、
図9のフローチャートの処理を終了する。
【0045】
ステップS415に進むと、マップ照合部150は、現実空間を撮像することでマップ保持部135に保持されたマーカー情報と、外部記憶装置906に記憶されている既知の(つまり過去に取得された)マップ情報内のマーカー情報とを照らし合わせる。本実施形態の場合、マップ照合部150は、まず、マップ保持部135が保持しているマーカー情報内にあるすべてのマーカーIDを、候補リストとして生成する。次にマップ照合部150は、外部記憶装置906に記憶されている既知のマップ情報のマーカー情報を参照し、当該外部記憶装置906に記憶されているマップ情報の中で、マップ保持部135内のマーカーIDをすべて含むマップ情報を候補リストに追加する。すなわち、現在の現実空間内に配置されているマーカーのIDは、それ以前に生成されて外部記憶装置906に記憶されているマップ情報の中に存在する可能性が高い。このため、マップ照合部150は、外部記憶装置906に記憶されている複数のマップ情報の中から、マップ保持部135内のマーカーIDをすべて含むマップ情報を候補リストに追加することで、候補リストに入れる候補を絞り込む。
【0046】
ステップS420では、マップ照合部150が、マップ情報の候補リストを表示部270に送ることで、その候補リストを表示させる。マップ情報の候補リスト表示によって、前述の
図6(b)に示したようなマップ情報を取得した日時、時刻が、ユーザに提示される。なお、マップ情報の候補リストを提示する場合、日時、時刻を表示することに限定されるものではなく、ユーザがマップ情報に名称を付けられる仕組みである場合には、それらマップ情報の名称を候補リストとして提示してもよい。また、マップ情報にはGPS情報を付加してもよく、GPS情報を基に地図の場所等が提示されるようになされてもよい。さらに、マップ情報に保持しているキーフレーム情報の画像データの代表画像が提示されてもよい。
【0047】
ステップS425では、マップ照合部150が、マップ選択指示部290を介したユーザからの選択指示を受け取り、その選択指示に応じたマップ情報を1つ特定する。
ステップS430では、マップ読込部160が、マップ照合部150で特定されたマップ情報を外部記憶装置906からRAM907上にコピーし、マップ保持部135にマップの読み込みが完了したことを通知する。
【0048】
図10は、
図7のステップS220のカメラ位置姿勢出力処理でカメラ位置姿勢を出力したあとに実行される本実施形態の処理を示したフローチャートである。本実施形態では、カメラ位置姿勢推定部110から出力されたカメラ位置姿勢に基づいて、CGモデルを描画し、実写映像と合成して表示部270(例えばHMDのディスプレイ)に表示する方法を例示する。
【0049】
ステップS1120では、CGモデル描画部200が、CGモデル保持部210に格納されているCGモデルを読み込み、入力されたカメラ位置姿勢に基づいて描画する。
ステップS1130では、合成部250が、ステップS1120でレンダリングされたCGモデルの画像を実写映像と合成して合成画像を生成する。
ステップS1140では、表示部270が、ステップS1130で生成された合成画像を表示して、ユーザに提示する。
【0050】
以上説明したように、第1の実施形態においては、現実空間に配置されたマーカーのマーカーIDに基づいて、外部記憶装置906に格納されている複数のマップ情報を照合することで、適正なマップ情報の候補を絞り込む。これにより、本実施形態によれば、ユーザに提示するマップ候補の数を削減でき、適正なマップ情報を特定するまでの所要時間を短縮することができる。
【0051】
<第2の実施形態>
第1の実施形態では、ステップS415の処理において、候補リストを提示する方法を例示した。第2の実施形態では、マップ情報について所定の基準を基に適合スコアを算出して、算出された適合スコアの中で一番基準に合うマップ情報を自動的に選択する例について説明する。第2の本実施形態では、マップ情報の適合スコアを算出することで、複数のマップ情報の中から適切なマップ情報を1つ選択する方法を例示する。
【0052】
第2の実施形態の情報処理装置は、第1の実施形態において
図1に示したのと同じ機能構成で実現可能である。ただし、第2の実施形態の場合、マップ照合部150の処理が異なる。第2の実施形態におけるマップ照合部150は、第1の実施形態と同様に表示部270に候補リストを提示するが、マップ選択指示部290を介したユーザから指示を受けることなく、1つのマップを選択する点が異なる。
【0053】
第2の実施形態では、ステップS213のマップ照合部150による処理が第1の実施形態とは異なり、
図11のフローチャートは、本実施形態におけるステップS213の詳細な処理を示している。なお第1の実施形態と同じ処理を行う他のステップには前述と同じ参照番号を付しており、それらの説明は省略する。
図11のフローチャートでは、ステップS410の後、ステップS500の処理に進む。
【0054】
ステップS500では、マップ照合部150が、マップ保持部135に格納されているマーカー情報のマーカーID及び位置姿勢と、外部記憶装置906に記憶されているマップ情報のマーカーID及び位置姿勢とを照合する。
【0055】
ステップS510では、マップ照合部150が、マップ保持部135のマーカー情報と外部記憶装置906に記憶されているマップ情報とを比較し、同一のマーカーIDに紐付けられているマーカー情報の位置から差分距離を求める。マップ照合部150は、この差分距離をすべてのマーカーIDに対して算出して、それら複数の差分距離の平均を算出する。また、マップ照合部150は、外部記憶装置906に記憶されている複数のマップ情報についても同様にして、差分距離の平均を算出する。さらに、マップ照合部150は、その差分距離を1で割った値を特定のマップの適合スコアとして参照する。そして、マップ照合部150は、複数のマップ情報のうち、適合スコアが一番高いマップ情報を選択する。選択したマップ情報は、ステップS430で読み込まれる。この読み込まれたマップ情報は、ステップS215の処理のカメラ位置姿勢の追跡処理時に利用される。
【0056】
第2の実施形態においては、前述したように、マーカーのIDとマーカーの位置姿勢の両方の情報を使うことにより、候補となるマップ情報がさらに絞り込まれ、これによりマップ情報を選択するための時間を短縮することが可能となる。例えば、異なるシーンに同一のマーカーIDが使用されている場合は、照合時に誤判定を誘発してしまうが、マーカーの位置姿勢までを照合すれば、より正確な判定ができる。
【0057】
なお、適合スコアは、2つのマップ情報における1つのマーカーの3次元位置を距離として算出することに限定されるものではなく、複数のマーカーの相対位置の情報から適合スコアが算出されてもよい。すなわち、マップ保持部135が、マーカー情報に格納されている複数のマーカーから2つを選択して、マーカーの3次元位置の相対位置を算出し、相対位置ベクトルとして保持する。同様に、マップ保持部135は、マーカー情報のすべてのマーカーIDに対し、マーカー位置が一番近い点との相対位置ベクトルとを算出し、マーカー情報のマーカーIDに紐付けて格納する。マップ照合部150は、外部記憶装置906に格納されているマップ情報の相対位置ベクトルを参照し、マップ保持部135に保持されているマーカー情報のマーカーIDに格納されている相対位置ベクトルとの内積を適合スコアとして参照する。このように相対位置ベクトルを用いることで、一部のマーカーにズレが発生して、マーカー校正処理で誤差が他のマーカーに伝搬した場合でも、適正なマップ情報を選択することができる。
【0058】
<変形例1>
第2の実施形態では、ステップS500及びステップS510で、指標であるマーカーのIDに紐付いたマーカー位置姿勢を使って適合スコアを算出したが、マーカーIDとマーカー位置姿勢を使って適合スコアを算出することに限定されるものではない。例えば、マップ保持部135に格納されている特徴点情報の3次元位置を用いて、適合スコアが算出されてもよい。すなわち、指標はマーカーに限定するものではなく、特徴点の情報であってもよい。ただし、特徴点は識別情報が存在しないので、特徴点IDを照合に用いることができないため、特徴点情報の3次元位置は、特徴点IDとは独立で照合する必要がある。例えば、マップ保持部135は、保持しているマップ情報の複数の特徴点のうち1つの3次元位置に対し、外部記憶装置906に記憶されている特定のマップ情報のおける特徴点の3次元位置との距離を算出して格納する。さらに、マップ保持部135は、保持しているマップ情報のその他の特徴点に対しても、同様に特定のマップ情報のおける特徴点の3次元位置との距離を求め、特定のマップ情報における距離リストを作成する。マップ保持部135は、この距離リストに格納されている距離の平均を求め、1/平均距離を特定のマップ情報における適合スコアとして算出する。このように、マップ保持部135に格納されているマップ情報の特徴点に対し、各マップ情報における適合スコアが一番高いものを自動選択すればよい。
【0059】
なお、本発明は、本変形例1で示した特徴点情報の3次元位置のみを用いて適合スコアを算出することに限定されるものではなく、第2の実施形態のマーカーの位置姿勢と組み合わせて適合スコアが算出されてもよい。例えば、マーカー位置姿勢の適合スコアと特徴点の適合スコアを足したものが適合スコアとなされてもよい。また、すべての特徴点を照合するためには、時間を要する可能性が高いので、マップ照合処理では、マップ情報のマーカーの位置から一定の距離範囲内の特徴点のみを照合してもよい。
【0060】
<変形例2>
前述した第1の実施形態のステップS415では、複数のマーカーIDがすべて含まれているか否かをIDごとに確認していたが、IDごとに比較することに限定されなくてもよい。例えば、変形例2として、複数のマーカーIDをハッシュ関数でハッシュ値に変換しておき、そのハッシュ値がマップ情報に予め登録されていてもよい。変形例2の場合、外部記憶装置906に記憶されているマップ情報のハッシュ値とマップ保持部135に格納されているマップ情報のハッシュ値とを比較することで、マップ照合処理を短時間に完了させることができる。
【0061】
以上説明したように、各実施形態においては、現実空間に配置された指標情報をマップ情報に格納し、マップ情報の選択時に指標情報を参照することで、適切なマップ情報の選択をより簡便かつ高速に実現可能となっている。これにより、各実施形態によれば、短時間に現在のシーンに適したマップ情報を選択でき、位置合わせ処理自体の性能を向上させることができる。
【0062】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0063】
100:撮像部、110:カメラ位置姿勢推定部、112:指標検出部、115:指標保持部、120:指標構成部、125:位置姿勢追跡部、127:位置姿勢出力部、130:マップ生成部、135:マップ保持部、140:マップ構成部、145:マップ保持部、150:マップ照合部、160:マップ読込部、200:CGモデル描画部、210:CGモデル保持部、250:合成部、270:表示部、290:マップ選択指示部