(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-20
(45)【発行日】2023-12-28
(54)【発明の名称】情報処理装置およびプログラム
(51)【国際特許分類】
G06T 7/80 20170101AFI20231221BHJP
G01B 11/00 20060101ALI20231221BHJP
G01B 11/26 20060101ALI20231221BHJP
【FI】
G06T7/80
G01B11/00 H
G01B11/26 H
(21)【出願番号】P 2018184795
(22)【出願日】2018-09-28
【審査請求日】2021-09-28
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】荒谷 真一
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2017-207818(JP,A)
【文献】特開2016-122975(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
G06T 1/00 - 1/40
G06T 3/00 - 5/50
G06T 9/00 - 9/40
G01B 11/00 - 11/30
(57)【特許請求の範囲】
【請求項1】
表示装置に搭載されている撮像装置から撮像画像を取得する取得手段と、
前記撮像装置の位置または姿勢の少なくとも一方を、前記撮像画像の特徴から、
フレームレートに合致する時間をかけて
推定する
フレームレート優先モードと、前記撮像装置の位置または前記姿勢の少なくとも一方を、前記撮像画像の特徴から、前記
フレームレート優先モードよりも
長い時間をかけて
前記フレームレート優先モードよりも高精度に推定する
推定精度優先モードと、のいずれかを選択する選択手段と、
前記選択手段で選択されたモードにおいて前記撮像装置の位置または姿勢の少なくとも一方を推定する推定手段と、
前記推定手段で推定された前記撮像装置の位置または姿勢の少なくとも一方
を仮想カメラの位置または姿勢の少なくとも一方として使うことによって描画したCG画像を前記表示装置に表示させる制御手段と、を有し、
前記選択手段は、前記表示装置を装着しているユーザ
の加速度または角速度を取得するセンサーの計測値が閾値よりも大きい場合、前記
フレームレート優先モードを選択し、前記
計測値が前記閾値よりも小さい場合、前記
推定精度優先モードを選択することを特徴とする情報処理装置。
【請求項2】
前記
推定精度優先モードにおける前記推定手段は、前記
フレームレート優先モードにおける前記推定手段よりも、前記撮像画像のより多くの特徴点を用いて、前記撮像装置の位置または姿勢の少なくとも一方を推定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
表示装置に搭載されている撮像装置から撮像画像を取得する取得手段と、
前記撮像装置の位置または姿勢の少なくとも一方を、前記撮像画像の特徴から、
フレームレートに合致する時間をかけて
推定する
フレームレート優先モードと、前記撮像装置の位置または前記姿勢の少なくとも一方を、前記撮像画像の特徴から、前記
フレームレート優先モードよりも
長い時間をかけて
前記フレームレート優先モードよりも高精度に推定する
推定精度優先モードと、のいずれかを選択する選択手段と、
前記選択手段で選択されたモードにおいて前記撮像装置の位置または姿勢の少なくとも一方を推定する推定手段と、
前記推定手段で推定された前記撮像装置の位置または姿勢の少なくとも一方
を仮想カメラの位置または姿勢の少なくとも一方として使うことによって描画したCG画像を前記表示装置に表示させる制御手段と、を有し、
前記選択手段は、過去の複数の前記撮像画像から推定した前記撮像装置の位置または姿勢の少なくとも一方の変化量が
閾値よりも大きい場合、前記
フレームレート優先モードを選択し、前記変化量が
前記閾値よりも小さい場合、前記
推定精度優先モードを選択することを特徴とする情報処理装置。
【請求項4】
コンピュータを、請求項1乃至
3のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項5】
表示装置に搭載されている撮像装置から撮像画像を取得する取得工程と、
前記撮像装置の位置または姿勢の少なくとも一方を、前記撮像画像の特徴から、
フレームレートに合致する時間をかけて
推定する
フレームレート優先モードと、前記撮像装置の位置または前記姿勢の少なくとも一方を、前記撮像画像の特徴から、前記
フレームレート優先モードよりも
長い時間をかけて
前記フレームレート優先モードよりも高精度に推定する
推定精度優先モードと、のいずれかを選択する選択工程と、
前記選択工程で選択されたモードにおいて前記撮像装置の位置または姿勢の少なくとも一方を推定する推定工程と、
前記推定工程で推定された前記撮像装置の位置または姿勢の少なくとも一方
を仮想カメラの位置または姿勢の少なくとも一方として使うことによって描画したCG画像を前記表示装置に表示させる制御工程と、を有し、
前記選択工程では、前記表示装置を装着しているユーザ
の加速度または角速度を取得するセンサーの計測値が閾値よりも大きい場合、前記
フレームレート優先モードを選択し、前記
計測値が前記閾値よりも小さい場合、前記
推定精度優先モードを選択することを特徴とする情報処理方法。
【請求項6】
表示装置に搭載されている撮像装置から撮像画像を取得する取得工程と、
前記撮像装置の位置または姿勢の少なくとも一方を、前記撮像画像の特徴から、
フレームレートに合致する時間をかけて
推定する
フレームレート優先モードと、前記撮像装置の位置または前記姿勢の少なくとも一方を、前記撮像画像の特徴から、前記
フレームレート優先モードよりも
長い時間をかけて
前記フレームレート優先モードよりも高精度に推定する
推定精度優先モードと、のいずれかを選択する選択工程と、
前記選択工程で選択されたモードにおいて前記撮像装置の位置または姿勢の少なくとも一方を推定する推定工程と、
前記推定工程で推定された前記撮像装置の位置または姿勢の少なくとも一方
を仮想カメラの位置または姿勢の少なくとも一方として使うことによって描画したCG画像を前記表示装置に表示させる制御工程と、を有し、
前記選択工程では、過去の複数の前記撮像画像から推定した前記撮像装置の位置または姿勢の少なくとも一方の変化量が
閾値よりも大きい場合、前記
フレームレート優先モードを選択し、前記変化量が
前記閾値よりも小さい場合、前記
推定精度優先モードを選択することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【0002】
現実世界と仮想世界とをリアルタイムに融合させる技術として、複合現実感(MR:Mixed Reality)技術や拡張現実感(AR:Augmented Reality)技術が知られている。これらの技術は、現実空間とコンピュータによって作られる仮想空間を繋ぎ目なく融合する技術である。これらは、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援、患者の体表面に体内の様子を重畳表示する手術支援等、様々な分野への応用が期待される。
【0003】
MR技術を実現する上で解決しなければならない大きな問題の一つとして、位置合わせの問題がある。仮想物体が現実空間に実在するように利用者が感じるためには、仮想物体と現実空間との間の幾何学的な整合性が取れている必要がある。即ち、仮想物体は現実空間中に存在するべき位置に存在しているように常に利用者から観察されなければならない。
【0004】
また、観察者が、仮想物体を現実空間に実在するように感じるための装置の一つとして、ビデオシースルー型の情報処理装置がある。これは、ビデオカメラで現実世界を撮影し、その画像に、仮想物体を重畳した合成画像を、リアルタイムにディスプレイ等の表示手段に表示させ、観察者に提示する装置である。一般にこのような情報処理装置としては、背面にビデオカメラを有するタブレット端末と呼ばれる携帯型情報端末や、頭部搭載型のビデオシースルー型HMD(Head Mounted Display)などが用いられる。
【0005】
ビデオシースルー型HMDを利用するMRでは、HMDに内蔵されているカメラから画像が入力される毎に、画像撮影時のカメラの現実空間における位置姿勢を計測する。そしてこのカメラの位置姿勢と、焦点距離などのカメラの固有パラメーターとに基づいてCGを描画し、係るCGを現実空間の画像上に重畳するという処理が一般的に行われる。そのため、ビデオシースルー型HMDを利用するMRの場合、位置合わせの問題は、HMDに内蔵したカメラの現実空間における位置姿勢を計測する問題となる。
【0006】
カメラの位置姿勢の計測は、例えば磁気センサーや超音波センサー、光学式センサーなど6自由度の物理センサーによって、計測することが可能である。一方で、ビデオシースルー型HMDを利用する場合には、ビデオシースルー型HMDに内蔵されているカメラからの画像情報を位置合わせのために利用することが可能である。画像情報を利用する位置合わせ方法は、物理センサーを利用する方法に比べて手軽且つ低コストであるため、広く利用されている。画像情報を利用する位置合わせ手法では、現実空間中における3次元位置が既知の指標をカメラで撮影し、指標の撮影画像上での位置と3次元位置との対応を基にカメラの位置姿勢を推定することが行われている。既知の指標としては、現実空間中に人為的に配置した指標などがある。例としては、四角形マーカー、円形マーカー、点マーカーなどが挙げられる。特許文献1では、点マーカーと四角形マーカーの配置情報を高精度に画像から推定している。
【0007】
また、カメラの位置姿勢の計測として、既知の指標を用いずに撮影画像上で輝度勾配のあるエッジや角点など自然特徴を検出し、それらを基にカメラの位置姿勢を推定することが行われている。第一の手法では、自然特徴として特徴点を画像から検出する。カメラを移動させ、初期画像で検出した特徴点から2次元的に特徴点を追跡し、初期画像と現画像の2つの画像間で特徴点周りの8×8の画素パッチを対応付ける。画像座標の対応点から、2つの画像を撮影したカメラの相対的な位置姿勢と対応付けた特徴点群の3次元情報である位置を推定する。ここで、特徴点群の3次元情報である位置と、その周辺の画像パッチを合わせてマップと呼んでいる。さらに、初めの2つの画像から算出されるマップを初期マップと呼ぶ。算出したマップ(ここでは3次元の位置情報を持つ特徴点群)を、現在のカメラの位置姿勢に基づいて画像面に投影し、検出した特徴点と、投影された特徴点の誤差を最小化するように、カメラの位置姿勢を更新する。カメラの位置姿勢が推定されており、特徴点を十分推定しているときに、キーフレームと呼ばれる画像を動画像から取得する。各キーフレームで検出された特徴点を、エピポーラ線上を探索して対応付けを行う。各キーフレームのカメラ位置姿勢と、特徴点群の3次元位置を、各キーフレーム上での投影誤差が最小化されるようにバンドル調整を行い非線形最適化計算によって、マップを高精度に算出する。
【0008】
第二の手法では、自然特徴として画像全体から輝度勾配のある点群を密に検出する。初期マップの生成は上記の手法と第一の手法を利用している。初期マップの生成後、マップの点を現画像に投影した時、マップの点のキーフレーム上の輝度値と現フレーム上の輝度値が一致するように位置姿勢を更新する。また、前キーフレームと位置が閾値以上離れた場合に次のキーフレームを追加する。近傍のキーフレームのマップの点を、追加したキーフレームでエピポーラ探索し、対応付けを行い、2つのキーフレーム間の相対位置姿勢と対応情報に基づいてマップの点の現キーフレームにおける奥行情報を推定する。第二の手法では、キーフレームの画像情報とキーフレーム上で輝度勾配のある点の奥行情報とキーフレームの位置姿勢を合わせて、マップと呼んでいる。ここで、キーフレームを逐次追加していくと誤差が蓄積してくため、マップの最適化を行うことで、マップ全体の整合がとれるようにしている。
【0009】
第一の手法や第二の手法は、SLAM(Simultaneous Localization And Mapping)と呼ばれる技術である。カメラの自己位置姿勢を推定するLocalizationと、特徴点の位置を推定するMappingとを同時に行う手法である。
【0010】
なお、本件におけるリアルタイム処理とは、カメラのフレームレートで取得された画像に対して処理を行い、HMDなどのディスプレイの更新レートに間に合うように描画することを指す。一般的には60fps~120fpsで動作する処理をリアルタイム処理と呼ぶ。
【0011】
第三の手法では、EKF(拡張カルマンフィルター)と呼ばれるフィルターを利用し、予測に基づいて位置姿勢を推定している。EKFのように予測結果を素早く出力することでリアルタイム処理を行うようにしている。
【先行技術文献】
【特許文献】
【0012】
【発明の概要】
【発明が解決しようとする課題】
【0013】
現実環境中を歩き回るためには、特許文献1に記載されるような自然特徴を利用する場合、動いた先で自然特徴を検出する必要があるため、どの位置や角度からでも検出できるように多数の自然特徴点が存在する環境である必要がある。多数の自然特徴を検出すると画像処理に時間がかかるのでフレームレートが低下してしまう。
【0014】
第一の手法のように画像中で検出した角点の周辺のパッチ情報を自然特徴として扱う方法を利用する場合でも、環境によっては、非常に多くの自然特徴を検出すると、処理に時間がかかる。そのため、フレームレートが低下してしまう。
【0015】
第二の手法のように、輝度勾配が検出可能な点を密に利用する手法では、第一の手法のように自然特徴として角点を検出する手法と比べて、特徴を多く利用できる点で、第一の手法よりも多くの環境に適用可能である。しかし、細かい模様が多数存在するような環境によっては、処理に時間がかかり、フレームレートが低下してしまう。
【0016】
安定してカメラの位置や姿勢を推定するためには、広範囲から指標や自然特徴を検出するのが好ましいので、推定に使用されるカメラの画角を広画角にする場合がある。しかし、多数配置された指標や、細かい模様や物体がある環境の場合に、広画角のカメラで撮影すると、多数の指標や自然特徴を検出するため、処理に時間がかかり、フレームレートが低下してしまう。
【0017】
また、高精度に推定するために高解像度画像から自然特徴を検出する場合、低解像度画像と比べ処理負荷が増加するため、処理時間がかかり、リアルタイム処理ができなくなることがある。
【0018】
リアルタイム処理を行うためにEKFを利用する場合、予測結果を活用するため一般的に精度が低下する。また、リアルタイム処理を行うために低解像度画像を利用することや、扱う特徴点数を減らした場合、高解像度画像や多くの特徴点数を扱う場合と比べてカメラの位置姿勢の推定精度は低下する。
【0019】
上記課題を鑑みて、本発明は、画像を観察者に対して表示させる装置において、フレームレートの低下と、カメラ(撮像装置)の位置または姿勢の少なくともいずれか一方の推定精度の低下とに起因する不具合を低減させることを目的とする。
【課題を解決するための手段】
【0020】
上記の目的を達成するために、本発明の情報処理装置は、表示装置に搭載されている撮像装置から撮像画像を取得する取得手段と、前記撮像装置の位置または姿勢の少なくとも一方を、前記撮像画像の特徴から、フレームレートに合致する時間をかけて推定するフレームレート優先モードと、前記撮像装置の位置または前記姿勢の少なくとも一方を、前記撮像画像の特徴から、前記フレームレート優先モードよりも長い時間をかけて前記フレームレート優先モードよりも高精度に推定する推定精度優先モードと、のいずれかを選択する選択手段と、前記選択手段で選択されたモードにおいて前記撮像装置の位置または姿勢の少なくとも一方を推定する推定手段と、前記推定手段で推定された前記撮像装置の位置または姿勢の少なくとも一方を仮想カメラの位置または姿勢の少なくとも一方として使うことによって描画したCG画像を前記表示装置に表示させる制御手段と、を有し、前記選択手段は、前記表示装置を装着しているユーザの加速度または角速度を取得するセンサーの計測値が閾値よりも大きい場合、前記フレームレート優先モードを選択し、前記計測値が前記閾値よりも小さい場合、前記推定精度優先モードを選択することを特徴とする。
【発明の効果】
【0021】
本発明によれば、画像を観察者に対して表示させる装置において、フレームレートの低下と、カメラ(撮像装置)の位置または姿勢の少なくともいずれか一方の推定精度の低下とに起因する不具合を低減させることが出来る。
【図面の簡単な説明】
【0022】
【
図1】第1の実施形態に係る情報処理装置の構成を示す機能ブロック図である。
【
図2】第1の実施形態に係る情報処理装置1000の処理手順を示すフローチャートである。
【
図3】第1の実施形態におけるハードウェア構成例を示す図である。
【発明を実施するための形態】
【0023】
(第1の実施形態)
以下、添付図面を参照して本発明の好適な実施形態について説明する。
【0024】
本実施形態においては、ユーザーがヘッドマウントディスプレイ(以下、HMD)を装着し、CGを観察する場合を想定している。撮像装置の位置または姿勢(以下、位置姿勢という)を、撮像装置またはディスプレイの更新レートに間に合うように推定し、推定された位置姿勢に基づいてCGを描画する。そして、CGと撮像装置で撮像された画像とが合成された合成画像をユーザーの装着するHMDに表示させる。本願明細書において、位置姿勢とは位置を表す3個のパラメーターと、その姿勢(向き)を表す3個のパラメーターとを合わせた6個のパラメーターのセットをいう。
【0025】
第1の実施形態に係る情報処理装置は、その撮像装置の位置姿勢推定を行う手法において、撮像装置で撮影された画像から特徴点をそれぞれ検出する。そして、特徴点に基づいて撮像装置の位置姿勢を推定する。ユーザーに快適な複合現実感を提供するため、ユーザーが速く動く場合には、フレームレート優先モードに切り替えユーザーの動きに追従することを優先する。一方、ユーザーは少ない動きの中で現実物体と仮想物体の重なり具合をじっくり観察する場合、推定精度の優先モードに切り替える。
【0026】
図5は、本実施形態における情報装置1000のハードウェア構成図である。同図において、CPU4001は、バス4010を介して接続する各デバイスを統括的に制御する。CPU4001は、読み出し専用メモリ(ROM)4003に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム(OS)をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はROM4003に記憶されており、ランダムアクセスメモリ(RAM)4002に一時記憶され、CPU4001によって適宜実行される。また、入力I/Fとしてキーボード4004やマウス4005は、外部の装置(表示装置や操作装置など)から情報処理装置1000で処理可能な形式で入力信号として入力する。また、出力I/F4009は、外部の装置(表示装置)へ表示装置が処理可能な形式で出力信号として出力する。
【0027】
図1は、本実施形態に係る情報処理装置1000の構成図である。
【0028】
情報処理装置1000は、画像取得部1010、特徴検出部1020、モード切り替え情報入力部1030、モード切り替え部1040、位置姿勢推定部1050、CGデータ描画部1060によって構成される。
【0029】
情報処理装置1000は、撮像装置100とディスプレイ200に接続されている。本実施形態では撮像装置およびディスプレイ200に有線または無線で接続されている。
【0030】
撮像装置100は、ユーザーの頭部に装着されるHMDに内蔵または外部に装着されている。例えば、動画をフレーム画像として連続的に撮影するビデオカメラやデジタルカメラが用いられる。
【0031】
ディスプレイ200は、HMD(ヘッドマウントディスプレイ)であり、CGデータ描画部1060で描画されたCGデータを表示する。ディスプレイ200は、液晶ディスプレイであっても有機ELディスプレイであってもよく、CGと合成された画像を表示できるものであればどのような形態であってもかまわない。
【0032】
画像取得部1010は、撮像装置100によって撮影された画像を連続的に取得する。画像取得部1010は、撮像装置の出力がUSBやIEEE1394などのデジタル出力であれば、例えば、USBインターフェースボードや、IEEE1394インターフェースボードによって実現される。撮像装置の出力がNTSCなどのアナログ出力であればアナログビデオキャプチャボードによって実現される。また、予め記憶装置に記憶してある静止画像や動画像のデジタルデータを読み出してもよい。取得された画像は、特徴検出部1020に入力される。
【0033】
特徴検出部1020は、画像取得部1010が連続的に取得する画像それぞれから特徴を検出する。詳しい処理は後述するが、本実施形態では特徴として、輝度勾配を有する特徴点を検出する。ここで、特徴検出部1020は、所定の特徴数を上限として検出するか、または、所定の特徴数Lを上限として、利用する特徴を位置姿勢推定部1050に出力する。
【0034】
モード切り替え情報入力部1030は、ジャイロ500の計測値である加速度または角速度をモード切り替え情報として入力され、モード切り替え情報をモード切り替え部1040へ出力する。
【0035】
モード切り替え部1040は、モード切り替え情報入力部1030から入力されたモード切り替え情報に基づき、撮像部の位置姿勢を推定するモードとして、フレームレート優先モードか推定精度の優先モードかを切り替える。モード切り替え部1040は、切り替えたモードを位置推定部1050へ出力する。モードの切り替え方法の詳細は後述する。
【0036】
位置姿勢推定部1050は、特徴検出部1020から入力された特徴とマップ400に基づいて撮像装置の位置姿勢を推定(位置姿勢導出)する。推定方法は後述する。推定した撮像装置の位置姿勢をCG描画部1060に出力する。また、生成したマップをマップ400に出力してマップを更新する。
【0037】
CGデータ保持部300は、描画するCGデータを保持している。CGデータの形式はCG画像としてレンダリングできるものであれば何でもよく形式は問わない。
【0038】
CGデータ描画部1060は、CGデータ保持部300から描画するべきCGデータを取得し、位置姿勢推定部1050によって出力された撮像装置の位置姿勢を仮想カメラの位置姿勢としてセットし、CGデータを描画する。撮像装置100で取得した画像の上にCGデータを合成して描画し合成画像をユーザーに提示することで、複合現実感(Mixed Reality)を実現することができる。また、CGデータのみを描画する場合には、仮想現実感(Virtual Reality)を実現することができる。
【0039】
そして、合成画像をディスプレイ200に出力(表示制御)する。
【0040】
これらの各機能部は、CPU4001が、ROM4003に格納されたプログラムをRAM4002に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、CPU4001を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【0041】
本実施形態では、撮像装置の位置姿勢を定義するための座標系(ここでは、環境中の一点を原点として定義し、互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系)を世界座標系と呼ぶ。位置が既知の環境中の複数の特徴を基準にして世界座標系を定義してもよい。または、撮像装置が最初に撮像した際の位置及び姿勢を基準として世界座標系を定義してもよいし、環境中に配置された夫々の指標を構成する各頂点の位置が既知であってもよい。位置が既知の特徴や指標に基づいてスケールを決定してもよい。または複数地点で撮像した際の既知の撮像位置に基づいて世界座標系のスケールを決定してもよい。
【0042】
また、本発明においては、撮像装置の歪み補正係数や焦点距離や主点位置などのカメラ内部パラメーターは、公知の手法により校正済みとする。
【0043】
次に、第1の実施形態に係る情報処理装置1000の処理手順について説明する。
図2は、第1の実施形態に係る情報処理装置1000の処理手順を示すフローチャートである。
【0044】
ステップS2010において、画像取得部1010は、撮像装置100で撮影した画像を取得する。
【0045】
ステップS2020において、モード切り替え情報入力部1030は、ジャイロ500の計測値である加速度Atまたは角速度ωtを取得する。
【0046】
また、1フレーム前の画像を取得した時刻のフレーム番号をt-1とし、フレームtにおける速度をVtとすると、式(1)のようにあらわせる。
【0047】
【0048】
モード切り替え情報入力部1030は、速度Vtまたは角速度ωtをモード切り替え情報として出力する。ステップS2030において、モード切り替え情報である速度Vtが閾値VThよりも大きいまたは角速度ωtがωThよりも大きい場合、ユーザーは速く動いているため、モードはフレームレート優先モードであると判定する。一方のその逆の場合には、ユーザーはゆっくり動いているため、推定精度の優先モードであると判定する。
【0049】
ステップS2040において、ステップS2030で判定したモードに切り替え、判定したモードを位置姿勢推定部1050にセットする。
【0050】
ステップS2050において、特徴検出部1020が、ステップS2010で取得された画像に対して特徴検出を行う。特徴検出とは、特徴点の画像内の画像座標を検出することをいう。ここで画像から特徴点を検出する処理について述べる。近傍の画素間で輝度勾配が閾値以上の点を特徴点とする。輝度勾配は、画像上で隣り合う画素の濃度の変化量であり、閾値以上に変化する点を特徴点とする。輝度勾配の検出は、例えばSobelオペレータ,Prewittオペレータなどの公知のエッジ検出オペレータにより行う。各画素について、エッジ検出オペレータを画像の水平方向、垂直方向について適用する。そして、その出力値をもとに、エッジ強度を算出する。エッジ検出オペレータの水平方向の出力値がfx、垂直方向の出力値がfyである場合、該画素におけるエッジ強度Iは式(2)のように算出される。
【0051】
【0052】
ステップS2060において、位置姿勢推定部1050が、特徴に対応するマップ400を取得する。本実施形態では、特徴に対応するマップ400は、複数の画像からそれぞれ検出された特徴点の奥行き値が、その画像を撮影した時の撮像装置の位置姿勢と対応づけられて保持される。特徴点の奥行き値は、例えば、画像上の座標の対応付けを行うことで推定することができる。例えば、KLTと呼ばれる特徴追跡手法によって時系列に位置を変えて撮影された画像から特徴点を追跡し、複数の画像間の特徴点の対応付けを行う。求められた複数の画像間における特徴点の対応からE行列(基礎行列)と呼ばれる変換行列を推定し、E行列から撮像装置の位置姿勢を求め、複数画像間の相対位置姿勢に基づいてステレオ法により特徴点の位置または奥行きの3次元情報を推定する。マップ400として推定される特徴点の奥行き値は、世界座標系における3次元的な位置であっても、各撮像装置で撮影した位置からの奥行値であっても良い。また、本願明細書において、マップを推定するために用いられた各画像をキーフレームと呼ぶ。
【0053】
また、それぞれが異なるテクスチャ特徴を有する特徴点(自然特徴点)を特徴としてもよい。この場合には、既知の情報として予め保持している各々の特徴のテンプレート画像によるテンプレートマッチングを画像上に施すことにより、画像から特徴を検出する。また、SIFT特徴のように識別子を有し、識別可能な特徴を用いてもよい。これに限らず、空間中に固定される特徴であってそれを撮影した画像から検出可能なものであればどのような特徴であってもかまわない。
【0054】
ステップS2070において、位置姿勢推定部1050が、ステップS2050で検出された特徴点と、ステップS2060で取得されたマップと、ステップS2040で切り替えたモードに基づいて、撮像装置の位置姿勢を推定する。
【0055】
フレームレート優先モードの場合、撮像のフレームレートに合致するようにEKF(拡張カルマンフィルター)などの予測を用いて撮像装置の位置姿勢を推定する。1フレーム前に処理した時刻のフレームt-1から現在の画像が取得された時刻のフレームtまでの差であるΔt、及びt-1におけるEKFの事後内部状態を用いて、EKFの時刻tにおける事前内部状態を求める。予測により撮像のフレームレートに合致するように撮像装置の位置姿勢を推定するのであれば何れの公知の方法であってもよい。
【0056】
推定精度の優先モードの場合、フレームレート優先モードよりも長い時間をかけて高精度に撮像装置の位置姿勢を推定する。フレームレート優先モードよりも長い時間をかけて高精度に撮像装置の位置姿勢を推定する手法であれば、何れの公知の手法であってもよい。マップに基づいて撮像装置位置姿勢を推定する手法は、検出した特徴から撮像装置位置姿勢を推定する手法であれば何れの公知の手法であってよい。
【0057】
マップに基づいて撮像装置位置姿勢を推定する手法について説明する。ステップS2060で取得するマップに含まれる特徴点をステップS2010で入力された画像に投影する。投影される特徴点は、例えば、時系列的に直近の画像を撮像した時の撮像装置の位置姿勢に最も近い位置姿勢に対応づけられた特徴点を選択して投影すればよい。そして、投影された特徴点の画像内の位置の周囲の輝度値に基づいて、投影された特徴点の位置における輝度値が一致するように撮像装置の位置姿勢を推定する。
【0058】
ここで、位置姿勢推定部1050が推定する撮像装置の位置姿勢は、複合現実感や仮想現実感における仮想カメラの視点としてCG描画に使われるため、ユーザーの動きに合わせてリアルタイム処理が求められる。そのため、初期のマップが生成された後、処理負荷の高いマップ生成と、比較的処理負荷の軽い撮像装置位置姿勢推定は、並列に処理される。位置姿勢推定部1050は、特徴とマップとに基づいて撮像装置位置姿勢を推定したら、撮像装置位置姿勢推定結果をCGデータ描画部1060に出力する。
【0059】
ステップS2080では、CGデータ保持部300から描画するべきCGデータを取得し、位置姿勢推定部1050によって出力された撮像装置位置姿勢を仮想カメラの位置姿勢としてセットし、CGデータを描画する。撮像装置100で取得した画像の上にCGデータを合成して描画し合成画像をユーザーに提示することで、複合現実感(Mixed Reality)を実現することができる。また、CGデータのみを描画する場合には、仮想現実感(Virtual Reality)を実現することができる。
【0060】
ステップS2090で、処理を終了する場合には本フローを終了し、継続する場合には、ステップS2010に処理を戻す。
【0061】
以上のように、ジャイロの計測値である加速度または角速度に応じて、撮像装置位置姿勢推定するモードをフレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。これにより、ユーザーの速い動きの場合にはフレームレートを低下させずに位置姿勢を推定することでユーザーの動きに素早く追従し、じっくり観察するようなユーザーのゆっくりした動きの場合には、高精度な位置姿勢を出力することができる。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーの動きに応じてフレームレートを優先するか高精度を優先するかを切り替えることで、快適な複合現実感を提供することができる。
【0062】
(変形例)
第1の実施形態では、フレームレート優先モードの場合、撮像のフレームレートに合致するようにEKF(拡張カルマンフィルター)のような予測を用いて撮像装置の位置姿勢を推定した。ここで、モード切り替え部1040は、フレームレート優先モードの場合、所望のフレームレートをフレームレートの上限値として設定してもよい。本変形例では、撮像装置の更新レートに基づいて設定する。
【0063】
位置姿勢推定部1050は、設定したフレームレートの上限値を超えないように処理できる場合には、扱う特徴点数を増加させることで情報量を向上させ、高精度化する。設定したフレームレートの上限値を実現しつつ、余った処理時間を高精度化処理に割り当てる。ここで、フレームレートの上限値は、撮像の更新レートに基づいて設定することに限るものではない。ユーザーがフレームレートの上限値を設定してもよいし、ディスプレイの更新レートをフレームレートの上限値として設定してもよい。
【0064】
以上のように、フレームレートの上限値を設定することで、必要以上のフレームレートで処理する必要がなくなり、設定したフレームレートに合致する中で最も時間をかけて精度よく撮像装置の位置または姿勢を推定することができる。すなわち、撮像装置の位置姿勢を推定する際に、フレームレートを優先しつつ、可能な範囲で高精度な処理を行うことで、快適な複合現実感を提供することができる。
【0065】
(第2の実施形態)
第1の実施形態では、ジャイロの計測値である加速度または角速度に応じてフレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、ジャイロの計測値である加速度または角速度に基づくものに限らない。
【0066】
本実施形態では、過去フレームにおける位置または姿勢の変化量をモード切り替え情報として処理する。
【0067】
モード切り替え情報入力部1030は、過去フレームにおける位置または姿勢の変化量をモード切り替え情報として、モード切り替え部1040に入力する。ここで、1フレーム前に処理した時刻のフレームt-1と、2フレーム前に処理した時刻のフレームt-2の間の位置の変化量Pdiffまたは姿勢の変化量Rdiffとする。PdiffがPThよりも大きい場合またはRdiffがRThよりも大きい場合、ユーザーは速く動いているためフレームレートを向上させることで快適な複合現実感体験を提供する。そのためモードはフレームレート優先モードであると判定する。一方、その逆の場合には、ユーザーはじっくり観察しているため、推定精度の優先モードであると判定する。
【0068】
ここで、過去フレームにおける位置または姿勢の変化量であれば、フレームはt-1とt-2の間のみに固定されるものではないことはいうまでもない。また、変化量Pdiffまたは姿勢の変化量Rdiffと、フレーム間の時間に基づいて、速度Vまたは角速度ωを求めてもよい。速度Vまたは角速度ωを用いる場合、第1の実施形態と同様となる。
【0069】
以上のように、過去フレームにおけるカメラの位置または姿勢の変化量に応じて、フレームレート優先モードまたは推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーの動きに応じてフレームレートを優先するか高精度を優先するかを切り替えることで、快適な複合現実感を提供することができる。
【0070】
(第3の実施形態)
第2の実施形態では、過去フレームにおけるカメラの位置または姿勢の変化量に応じて、フレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、これに限るものではない。
【0071】
本実施形態では、ジェスチャーを認識することによってフレームレート優先モードと推定精度の優先モードを判定する。
【0072】
モード切り替え情報入力部1030は、識別可能なジェスチャーの認識結果をモード切り替え部1040に入力する。
【0073】
モード切り替え部1040は、HMDを被った人の手をHMDに搭載した撮像装置で撮影した画像から識別し、撮像装置が撮影する画像において、左から右へ手をスワイプさせる場合、フレームレート優先モードに切り替える。また、モード切り替え部1040は、撮像装置が撮影する画像において、右から左へ手をスワイプさせる場合、推定精度の優先モードに切り替える。ここで、2つのモードを切り替えるために識別可能なジェスチャーであれば、いずれのジェスチャーであってもよい。例えば、指を1本立てるジェスチャーや指を2本立てるジェスチャーによって切り替えてもよい。
【0074】
以上のように、モード切り替え情報としてジェスチャーを利用し、ジェスチャーに応じて、フレームレート優先モードまたは推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーの意図に応じてフレームレートを優先するか高精度を優先するかを切り替えることで、ユーザーの目的に合致した複合現実感を提供することができる。
【0075】
(第4の実施形態)
第3の実施形態では、モード切り替え情報としてジェスチャーを利用し、ジェスチャーに応じて、フレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、これに限るものではない。
【0076】
本実施形態では、音声を認識することによってフレームレート優先モードと推定精度の優先モードを判定する。
【0077】
モード切り替え情報入力部1030は、識別可能な音声認識情報をモード切り替え部1040に入力する。
【0078】
モード切り替え部1040は、利用者が「フレームレート優先モード」と発声した場合、公知の音声認識技術により、フレームレート優先モードと判定する。また、モード切り替え部1040は、利用者が「推定精度の優先モード」と発声した場合、公知の音声認識技術により、推定精度の優先モードと判定する。2つのモードを切り替えるために識別可能な音声認識情報であれば、いずれの音声であってもよい。
【0079】
以上のように、モード切り替え情報として音声認識情報を利用し、音声認識情報に応じて、フレームレート優先モードまたは推定精度の優先モードを判定する。判定したモードに応じた処理によって撮像装置の位置姿勢を推定することで、ユーザーの目的に合致した複合現実感を提供することができる。
【0080】
(第5の実施形態)
第4の実施形態では、モード切り替え情報として音声認識情報を利用し、音声認識情報に応じて、フレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、これに限るものではない。
【0081】
本実施形態では、CPUの負荷状況によってフレームレート優先モードと推定精度の優先モードを判定する。
【0082】
モード切り替え情報入力部1030は、CPUの負荷状況をモード切り替え部1040に入力する。
【0083】
モード切り替え部1040は、Qtが閾値QThよりも大きい場合、フレームレート優先モードに切り替える。一方で、Qtが閾値QThよりも小さい場合、CPUに余裕があるため、処理に時間をかけ、高精度に撮像装置の位置姿勢を推定する推定精度の優先モードに切り替える。
【0084】
ここで、現在の画像が取得された時刻のフレームtにおけるフレームCPUの負荷状況はCPU使用率Qtで表す。Qtが閾値QThよりも大きい場合、CPUの負荷率が高いため、処理に時間がかかり、撮像の更新間隔に1フレームあたりの処理時間が間に合わなくなる可能性が高くなる。
【0085】
以上のように、モード切り替え情報としてCPU負荷状況を利用し、CPU負荷状況に応じて、フレームレート優先モードまたは推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。こうすることで、快適な複合現実感を提供することができる。
【0086】
(第6の実施形態)
第1の実施形態では、フレームレート優先モードの場合、撮像のフレームレートに合致するようにEKF(拡張カルマンフィルター)のような予測を用いて撮像装置の位置姿勢を推定した。しかし、推定精度の優先モードよりもフレームレートを向上させるのであればこれに限らない。
【0087】
本実施形態では、推定精度の優先モードよりも処理する情報量を減らすことでフレームレートを向上させる。
【0088】
以下で、情報量を減らす手法について説明する。
【0089】
画像取得部1010が画像を取得する際に、画像の解像度を低下させる。
【0090】
特徴検出部1020に入力される画像の解像度が、推定精度の優先モードよりも低いため、処理する情報量が減ることで高解像度よりも高速に処理することができる。
【0091】
ここで、推定精度の優先モードよりも処理する情報量を減らすのであれば解像度低下させる手法に限らない。例えば、特徴検出部1020が検出する特徴点数を減らしてもよいし、キーフレームを扱う公知の技術の場合、マップ400に保持されるキーフレームのうち処理するキーフレーム数を減らすことで情報量を削減してもよい。
【0092】
また、特徴検出部1020が前処置として行う画像処理パラメーターを削減することで情報量を削減してもよい。エッジ強調の画像処理パラメーターであるフィルタサイズを小さくすることで情報量を削減する。エッジ強調のフィルタは、5×5や3x3のフィルタが一般的である。また、特徴検出部1020が前処置として行う画像処理におけるノイズリダクションの画像処理パラメーターであるフィルタサイズを小さくすることで情報量を削減してもよい。ノイズリダクションの処理としては平滑化フィルタやガウシアンフィルタが用いられることが一般的である。
【0093】
以上のように、フレームレート優先モードでは、撮像装置の位置または姿勢を推定するための情報量を推定精度の優先モードよりも削減することで、所望のフレームレートに近づけることができ、快適な複合現実感を提供することができる。
【0094】
(第7の実施形態)
第1の実施形態では、ジャイロの計測値である加速度または角速度に応じてフレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、ジャイロの計測値である加速度または角速度に基づくものに限らない。
【0095】
本実施形態では、オプティカルフローをモード切り替え情報として処理する。
【0096】
モード切り替え情報入力部1030は、過去フレームからの特徴の画像上の変化量であるオプティカルフローをモード切り替え情報として、モード切り替え部1040に入力する。ここで、1フレーム前に処理した時刻のフレームt-1と、2フレーム前に処理した時刻のフレームt-2の間の画像上での位置の変化量Xiとする。iはオプティカルフローを求める特徴の識別子である。所定の数以上の特徴においてXiがXThよりも大きい場合、ユーザーまたは撮影している物体は速く動いていると判定されるためフレームレートを向上させることで快適な複合現実感体験を提供する。そのためモードはフレームレート優先モードであると判定する。一方、その逆の場合には、ユーザーはじっくり観察しているため、推定精度の優先モードであると判定する。
【0097】
ここで、画像上における特徴の位置の変化量であれば、フレームはt-1とt-2の間のみに固定されるものではないことはいうまでもない。
【0098】
また、撮像装置が撮影した時刻におけるt内での画像上における特徴の位置の変化量として、モーションブラーをモード切り替え情報として扱ってもよい。モーションブラーは、撮像装置が露光している最中に動いた場合に発生する。モーションブラーを検知する手法は、いずれの公知の手法であってよい。所定の数以上の特徴において、モーションブラーの量MiがMThよりも大きい場合、ユーザーまたは撮影している物体は速く動いていると判定されるためフレームレートを向上させることで快適な複合現実感体験を提供する。そのためモードはフレームレート優先モードであると判定する。一方、その逆の場合には、ユーザーはじっくり観察しているため、推定精度の優先モードであると判定する。
【0099】
以上のように、オプティカルフローに応じて、フレームレート優先モードまたは推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーまたは物体の動きに応じてフレームレートを優先するか高精度を優先するかを切り替えることで、快適な複合現実感を提供することができる。
【0100】
(第8の実施形態)
第1の実施形態では、ジャイロの計測値である加速度または角速度に応じてフレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。しかし、フレームレート優先モードと推定精度の優先モードを切り替えるモード切り替え情報は、ジャイロの計測値である加速度または角速度に基づくものに限らない。
【0101】
本実施形態では、ユーザーインターフェースでユーザーが入力した入力情報をモード切り替え情報として処理する。
【0102】
モード切り替え情報入力部1030は、ユーザーインターフェースでユーザーが入力した入力情報をモード切り替え情報として、モード切り替え部1040に入力する。ここで、ユーザーインターフェースとしては、ボタンでもよいし、チェックボックスでもよいし、その他の公知のユーザーインターフェースであればいずれのユーザーインターフェースであってもよい。
【0103】
モード切り替え部1040は、ユーザーインターフェースによりフレームレート優先モードが選択された場合、モードとしてフレームレート優先モードであると判定する。一方、ユーザーインターフェースで推定精度の優先モードが選択された場合には、推定精度の優先モードであると判定する。
【0104】
以上のように、ユーザーインターフェースでユーザーが選択した入力情報に応じて、フレームレート優先モードまたは推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定する。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーの意図に応じてフレームレートを優先するか高精度を優先するかを切り替えることで、快適な複合現実感を提供することができる。
【0105】
(第9の実施形態)
第1の実施形態では、ジャイロの計測値である加速度または角速度に応じてフレームレート優先モードと推定精度の優先モードを判定し、モードに応じた処理によって撮像装置の位置姿勢を推定した。ここで、ユーザーが動き出した際にフレームレートが低いとHMDを装着したユーザーの動きに映像が追い付いてこられずHMDを装着したまま動く際に転倒や衝突などの危険性が向上する。
【0106】
そこで、本実施形態では、ユーザーの動き出し時にジャイロの計測値である加速度または角速度に応じてフレームレート優先モードとして判定し、急激にフレームレートを向上させるように処理する。
【0107】
モード切り替え情報入力部1030は、撮像装置100が撮像した時刻のフレーム番号tと概略同時刻に取得したジャイロ500の計測値である加速度Atまたは角速度ωtを取得する。撮像装置100が露光する露光時間と画像を情報処理装置に転送する際にかかる転送時間を加えた時間におけるフレーム番号をtdelayとする。ジャイロ500は撮像装置の更新レートよりも速い更新レートで動作させ、tdelayにおけるジャイロ500の計測値である加速度Atdelayまたは角速度ωtdelayを取得する。
【0108】
また、画像を取得した時刻のフレーム番号tdelayにおける速度をVtdelayとすると、式(3)のようにあらわせる。
【0109】
【0110】
モード切り替え情報入力部1030は、速度Vtdelayまたは角速度ωtdelayをモード切り替え情報として出力する。
【0111】
ステップS2030において、モード切り替え情報である速度Vtdelayが閾値VTh’よりも大きいまたは角速度ωtdelayがωTh’よりも大きい場合、ユーザーは急激に動いているため、モードはフレームレート優先モードであると判定する。
【0112】
ここで、ユーザーの動き出し時にジャイロの計測値である加速度または角速度に応じてフレームレート優先モードとして判定したが、ユーザーの動き出し時の加速または角速度が取得できるセンサーであればジャイロに限るものではない。センサーとして光学式のセンサーであってもよいし、磁気式のセンサーであってもよい。
【0113】
以上のように、撮像装置が撮像した同フレーム内でのユーザーの動きの変化量を、更新レートの速いジャイロを利用して取得し、これをモード切り替え情報とする。これによりユーザーが急激に動いた場合にも、次のフレームまで待たずにフレームレート優先モードに設定することができる。すなわち、撮像装置の位置姿勢を推定する際に、ユーザーの急激な動きに応じてフレームレートを優先するように切り替えることで、安全かつ快適な複合現実感を提供することができる。
【0114】
(他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。