(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理装置、制御方法及びプログラム
(51)【国際特許分類】
G06T 7/73 20170101AFI20241008BHJP
G06T 19/00 20110101ALI20241008BHJP
【FI】
G06T7/73
G06T19/00 600
(21)【出願番号】P 2023532886
(86)(22)【出願日】2021-07-05
(86)【国際出願番号】 JP2021025327
(87)【国際公開番号】W WO2023281587
(87)【国際公開日】2023-01-12
【審査請求日】2023-12-22
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】坂井 亮介
(72)【発明者】
【氏名】馬場崎 康敬
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2020-042447(JP,A)
【文献】特開2012-137933(JP,A)
【文献】特開2019-134428(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/73
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得する特徴点情報取得手段と、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成する候補フィールド生成手段と、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する推定フィールド決定手段と、
を有する情報処理装置。
【請求項2】
前記推定フィールド決定手段は、複数の前記候補フィールドのクラスタリングを行い、最も前記候補フィールドが属する数が多い主クラスタに属する前記候補フィールドに基づき、前記推定フィールドを決定する、請求項1に記載の情報処理装置。
【請求項3】
前記推定フィールド決定手段は、前記主クラスタに属する前記候補フィールドの統合又は選択に基づき、前記推定フィールドを決定する、請求項2に記載の情報処理装置。
【請求項4】
前記表示装置に設けられるセンサの出力信号に基づき、前記構造データにおいて採用される座標系である第2座標系と前記第1座標系との1つの軸を平行にする軸調整手段をさらに有する、請求項1~3のいずれか一項に記載の情報処理装置。
【請求項5】
前記推定フィールドに基づき、前記候補ラベルの間違いを検出する間違いラベル検出手段をさらに有する、請求項1~4のいずれか一項に記載の情報処理装置。
【請求項6】
前記候補フィールド生成手段は、前記少なくとも2つの前記組と、前記構造データに基づく前記特徴点間の長さと、前記カメラの撮影位置及びパラメータと、に基づき、前記候補フィールドを生成する、請求項1~5のいずれか一項に記載の情報処理装置。
【請求項7】
前記推定フィールドと、前記構造データとに基づき、前記第1座標系と、前記構造データにおいて採用される座標系である第2座標系との間の座標変換に関する座標変換情報を生成する座標変換情報生成手段をさらに有する、請求項1~6のいずれか一項に記載の情報処理装置。
【請求項8】
前記情報処理装置は、風景に重ねて仮想オブジェクトを表示する前記表示装置であって、
前記仮想オブジェクトを表示するための表示光を射出する光源ユニットと、
前記表示光の少なくとも一部を反射することで、前記仮想オブジェクトを風景に重ねて観察者に視認させる光学素子と、
をさらに有する、請求項1~7のいずれか一項に記載の情報処理装置。
【請求項9】
コンピュータが、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得し、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する、
制御方法。
【請求項10】
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得し、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する処理をコンピュータに実行させるプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実(AR:Augmented Reality)における空間把握に関する処理を行う情報処理装置、制御方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
拡張現実を提供する装置において、カメラで撮像した画像に基づき、ユーザが視認する風景に重ねて表示する画像(所謂AR画像)の表示位置を決定する技術が存在する。例えば、特許文献1には、スポーツ観戦におけるARを実現するため、フィールドの各特徴点の位置を推定し、その推定結果に基づきARのキャリブレーションを行う技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のように対象のフィールドの特徴点を抽出してキャリブレーションなどの処理を行う場合には、特徴点の抽出精度がその後のキャリブレーションなどの処理の精度に影響を与えることになる。そして、キャリブレーションにおいては、ARを実現する表示装置を基準とした座標系において対象のフィールドの位置を的確に推定することが求められる。
【0005】
本開示は、上述した課題を鑑み、表示装置を基準とした座標系において対象のフィールドを的確に推定することが可能な情報処理装置、制御方法及び記憶媒体を提供することを主な目的の1つとする。
【課題を解決するための手段】
【0006】
情報処理装置の一の態様は、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得する特徴点情報取得手段と、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成する候補フィールド生成手段と、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する推定フィールド決定手段と、
を有する情報処理装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得し、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する、
制御方法である。
【0008】
プログラムの一の態様は、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得し、
少なくとも2つの前記組と、前記フィールドの構造に関する構造データとに基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
生成された複数の前記候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0009】
本開示の1つの効果の例として、表示装置を基準とした座標系において対象のフィールドを的確に推定することが可能となる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態に係る表示装置の概略構成図である。
【
図3】制御部の機能的な構成を示すブロック図である。
【
図4】(A)対象フィールドがテニスコートである場合の構造特徴点の第1のラベル定義例である。(B)対象フィールドがテニスコートである場合の構造特徴点の第2のラベル定義例である。
【
図5】(A)対象フィールドがプールである場合の構造特徴点の第1のラベル定義例である。(B)対象フィールドがプールである場合の構造特徴点の第2のラベル定義例である。
【
図6】フィールド推定部の機能ブロックの一例である。
【
図7】間違いラベル検出部の機能ブロックの一例である。
【
図8】デバイス座標系及びフィールド座標系の高さ方向の軸が平行になるように調整後のデバイス座標系とフィールド座標系の位置関係を示す。
【
図9】カメラの撮影位置、撮像画像、及び対象フィールドをデバイス座標系及びフィールド座標系において表した図である。
【
図10】生成した6個の候補フィールドのクラスタリングの結果をデバイス座標系において示した図である。
【
図11】プールに設けられたロープのうち構造特徴点として指定されるフロートを明示した図である。
【
図12】エラー特徴点候補位置を除外した特徴点候補位置に基づく最適化処理により求めた対象フィールドの推定位置をデバイス座標系において表した図である。
【
図13】対象フィールドの等方的な最適化の解と非等方的な最適化の解とを夫々デバイス座標系のxz平面上において表した図である。
【
図14】(A)対象フィールドがテニスコートである場合の特徴点候補位置を候補ラベルの番号と共に第1フィールド推定情報に基づくフィールド推定面上において明示した図である。(B)候補ラベル修正後の特徴点候補位置及び候補ラベルの番号の組を第1フィールド推定情報に基づくフィールド推定面上において明示した図である。
【
図15】第1実施形態において制御部が実行する仮想オブジェクトの表示処理に関する処理概要を示すフローチャートの一例である。
【
図16】キャリブレーション処理の詳細な処理手順を示すフローチャートの一例である。
【
図17】ステップS22において実行される特徴点エラー検出処理の詳細を示すフローチャートの一例である。
【
図18】第1フィールド推定処理の詳細を示すフローチャートの一例である。
【
図19】ラベル修正処理の詳細を示すフローチャートの一例である。
【
図20】第2実施形態における表示システムの構成を示す。
【
図21】第2実施形態におけるサーバ装置のブロック図である。
【
図22】第2実施形態においてサーバ装置の制御部が実行する処理手順を示すフローチャートの一例である。
【
図23】第3実施形態における情報処理装置の概略構成を示す。
【
図24】第3実施形態におけるフローチャートの一例である。
【
図25】第4実施形態における情報処理装置の概略構成を示す。
【
図26】第4実施形態におけるフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、情報処理装置、制御方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)
概略構成
図1は、第1実施形態に係る表示装置1の概略構成図である。表示装置1は、ユーザが装着可能な装置であり、例えば眼鏡型に構成されたシースルー型であって、ユーザの頭部に装着可能に構成されている。そして、表示装置1は、スポーツ観戦や劇(コンサートを含む)の観賞などにおいて、実在する風景に視覚情報を重ねて表示することで、拡張現実(AR:Augmented Reality)を実現する。上記の視覚情報は、2次元又は3次元により表された仮想のオブジェクトであり、以後では、「仮想オブジェクト」とも呼ぶ。なお、表示装置1は、ユーザの片眼にのみ仮想オブジェクトを表示してもよく、両眼に対して仮想オブジェクトを表示してもよい。
【0013】
本実施形態では、スポーツや劇などが行われる場又は構造物(以後では「対象フィールド」とも呼ぶ。)が存在するものとし、表示装置1は、ユーザがスポーツ観戦や劇の観賞を行う際に補助となる付加的な情報となる仮想オブジェクトを、対象フィールド又はその周辺に重畳表示する。対象フィールドは、例えば、スポーツ観戦において対象となるフィールド(例えばテニスコート、競泳用プール、スタジアム等)、又は、観劇において対象となるフィールド(例えば劇場、コンサートホール、多目的ホール、各種ステージ等)などが該当する。後述するように、対象フィールドは、構造上の(即ち形状において特徴がある)特徴点(「構造特徴点」とも呼ぶ。)を複数有している。対象フィールドは、表示装置1のキャリブレーションにおける基準物として機能する。
【0014】
仮想オブジェクトは、例えば、テニスなどの場合には、テニスコート上方に表示する点数ボード、競泳の場合には、競泳中のプールにリアルタイム重畳表示する世界記録ライン、観劇などでステージ上に重畳表示するバーチャル出演者などを含む。
【0015】
表示装置1は、光源ユニット10と、光学素子11と、通信部12と、入力部13と、記憶部14と、カメラ15と、位置姿勢検出センサ16と、制御部17とを有する。
【0016】
光源ユニット10は、レーザ光源やLCD(Liquid Crystal Display)光源などの光源を有しており、制御部17から供給される駆動信号に基づき、光を射出する。光学素子11は、所定の透過率を有し、外光の少なくとも一部を透過してユーザの眼球に入射させると共に、光源ユニット10からの光の少なくとも一部を、ユーザの眼球に向けて反射する。これにより、表示装置1によって形成された仮想オブジェクトに対応する虚像が、風景と重なってユーザに視認されることとなる。なお、光学素子11は、透過率と反射率とが概ね等しいハーフミラーであってもよく、透過率と反射率とが等しくないようなミラー(所謂ビームスプリッタ)であってもよい。
【0017】
通信部12は、制御部17の制御に基づき、外部装置とのデータの授受を行う。例えば、ユーザがスポーツ観戦や劇の観賞などに表示装置1を使用する場合には、通信部12は、制御部17の制御に基づき、興行者が管理するサーバ装置から表示装置1が表示すべき仮想オブジェクトに関する情報を受信する。
【0018】
入力部13は、ユーザの操作に基づく入力信号を生成して制御部17に送信する。入力部13は、例えば、ユーザが表示装置1に対して指示を行うためのボタン、十字キー、音声入力装置等である。
【0019】
カメラ15は、制御部17の制御に基づき、表示装置1の前方を撮像した画像を生成し、生成した画像(「撮像画像Im」とも呼ぶ。)を制御部17に供給する。
【0020】
位置姿勢検出センサ16は、表示装置1の位置及び姿勢(向き)を検出するセンサ(センサ群)であり、例えば、GPS(Global Positioning Satellite)受信機などの測位センサと、ジャイロセンサ、加速度センサ、IMU(Inertial Measurement Unit)などの表示装置1の相対的な姿勢の変化を検出する姿勢検出センサとを含む。位置姿勢検出センサ16は、生成した表示装置1の位置及び姿勢に関する検出信号を制御部17へ供給する。後述するように、制御部17は、位置姿勢検出センサ16から供給される検出信号に基づき、表示装置1の起動時等からの位置及び姿勢の変化量を検出する。なお、制御部17は、測位センサから表示装置1の位置を検出する代わりに、例えば、会場に設けられたビーコン端末や無線LAN機器から受信する信号に基づき、表示装置1の位置を特定してもよい。他の例では、制御部17は、ARマーカを用いた公知の位置推定技術に基づき、表示装置1の位置を特定してもよい。これらの場合、位置姿勢検出センサ16は、測位センサを含まなくともよい。
【0021】
制御部17は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのプロセッサ、プロセッサの作業メモリとして機能する揮発性メモリなどを有しており、表示装置1の全体的な制御を行う。
【0022】
例えば、制御部17は、仮想オブジェクトの表示タイミングなどにおいて、撮像画像Imから認識される対象フィールドの構造特徴点に基づき、実世界空間と表示装置1が認識する空間とを対応付けるためのキャリブレーション処理を行う。このキャリブレーション処理では、制御部17は、表示装置1が基準とする3次元空間の座標系(「デバイス座標系」とも呼ぶ。)を、対象フィールドを基準とした3次元空間の座標系(「フィールド座標系」とも呼ぶ。)に変換するための座標変換情報を生成する。デバイス座標系は「第1座標系」の一例であり、フィールド座標系は「第2座標系」の一例である。キャリブレーション処理の詳細については後述する。そして、制御部17は、上述の座標変換情報等に基づき、光源ユニット10を駆動するための駆動信号を生成し、駆動信号を光源ユニット10に供給することで光源ユニット10に仮想オブジェクトを表示するための光(「表示光」とも呼ぶ。)を光学素子11に射出させる。これにより、制御部17は、仮想オブジェクトをユーザに視認させる。
【0023】
記憶部14は、制御部17が表示装置1の制御に必要な種々の情報を記憶する不揮発性メモリである。記憶部14は、フラッシュメモリなどの着脱自在な記憶媒体を含んでもよい。また、記憶部14には、制御部17が実行するプログラムが記憶される。
【0024】
また、記憶部14は、センサデータ記憶部20と、パラメータ記憶部21と、構造データ記憶部22とを有する。
【0025】
センサデータ記憶部20は、カメラ15が生成する撮像画像Imと、当該撮像画像Imの生成時におけるデバイス座標系の設定時(例えば表示装置1の起動時)からの表示装置1の位置及び姿勢の変化量(「位置姿勢変化量Ap」とも呼ぶ。)とを関連付けて記憶する。この場合、例えば、制御部17は、デバイス座標系の設定時の位置及び姿勢を基準とする現在の位置及び姿勢の変化量を、位置姿勢検出センサ16の検出信号に基づき常時算出する。そして、制御部17は、カメラ15が生成した撮像画像Imをセンサデータ記憶部20に記憶する場合に、当該撮像画像Imの生成時に算出した位置姿勢変化量Apを当該撮像画像Imに関連付けてセンサデータ記憶部20に記憶する。制御部17は、例えば、最新の所定時間分又は所定数分の撮像画像Im及び位置姿勢変化量Apの組合せをセンサデータ記憶部20に記憶させる。センサデータ記憶部20に記憶される情報は、キャリブレーション処理において使用される。
【0026】
パラメータ記憶部21は、キャリブレーション処理において、対象フィールドの構造特徴点の位置情報及び当該構造特徴点の分類情報を撮像画像Imから抽出する際に用いる推論器(「特徴抽出器」とも呼ぶ。)のパラメータを記憶する。上述の特徴抽出器は、例えば、撮像画像Imが入力された場合に、抽出対象となる構造特徴点の分類(即ちラベル)毎に構造特徴点の画像内の位置情報を出力するように学習された学習モデルである。上述の位置情報は、構造特徴点の座標値ごとの信頼度を示す画像上のマップ情報であってもよく、ピクセル単位又はサブピクセル単位での画像内の構造特徴点の位置を示す座標値であってもよい。上述の特徴抽出器が構造特徴点の分類毎のマップ情報を出力する場合には、例えば、構造特徴点の分類毎に信頼度がある閾値を超えた上位m個(mは1以上の整数)の座標値が構造特徴点の位置として採用される。上記整数mは、後述する
図4(A)及び
図5(A)の例では「1」となり、後述する
図4(B)及び
図5(B)の例では「2」となる。なお、特徴抽出器の学習に用いる学習モデルは、ニューラルネットワークに基づく学習モデルであってもよく、サポートベクターマシーンなどの他の種類の学習モデルであってもよく、これらの組み合わせであってもよい。例えば、上述の学習モデルが畳み込みニューラルネットワークなどのニューラルネットワークである場合、パラメータ記憶部21は、層構造、各層のニューロン構造、各層におけるフィルタ数及びフィルタサイズ、並びに各フィルタの各要素の重みなどの各種パラメータを記憶する。
【0027】
また、パラメータ記憶部21は、カメラ15の焦点距離、内部パラメータ、主点、撮像画像Imのサイズ情報などの、仮想オブジェクトの表示に必要なカメラ15に関するパラメータを記憶する。
【0028】
構造データ記憶部22は、対象フィールドの構造に関するデータである構造データを記憶する。
図2は、構造データのデータ構造の一例を示す。構造データは、サイズ情報と、登録特徴点情報と、非等方性情報と、を有する。
【0029】
サイズ情報は、対象フィールドのサイズに関する情報である。登録特徴点情報は、対象フィールドの構造特徴点に関する情報であり、予め計測した構造特徴点毎の個別の情報を含んでいる。ここでは、対象フィールドがN個(Nは2以上の整数)の構造特徴点を有することから、登録特徴点情報は、これらのN個の構造特徴点に夫々対応する情報(第1登録特徴点情報~第N登録特徴点情報)を含んでいる。登録特徴点情報は、対象となる構造特徴点の分類を示すラベルと、対象となる構造特徴点のフィールド座標系での位置を示す登録位置情報とを少なくとも含んでいる。登録位置情報は、フィールド座標系により表された座標情報であり、例えばいずれかの構造特徴点の位置が原点となるように設定されている。登録特徴点情報は、キャリブレーション処理において用いられる。なお、任意の2点の構造特徴点間の長さは、これらの登録位置情報が示す座標値に基づき算出可能である。
【0030】
非等方性情報は、対象フィールドの構造特徴点の経時での変位の非等方性に関する情報である。非等方性情報は、例えば、対象フィールドの構造特徴点が経時により変位する場合に、変位しやすい方向又は/及び変位しにくい方向(及びその度合い)を示す情報となる。これらの方向は、例えば、フィールド座標系におけるベクトルにより表されてもよく、「構造特徴点Aから構造特徴点Bへの方向」などのように、構造特徴点同士の位置関係に基づき特定されてもよい。
【0031】
その他、構造データは、フィールド座標系において原点とする構造特徴点を指定する情報及びフィールド座標系の3軸の各方向をそれぞれ指定する情報などが含まれてもよい。
【0032】
なお、
図1に示す表示装置1の構成は一例であり、この構成に対して種々の変更を行ってもよい。例えば、表示装置1は、制御部17の制御に基づき、音声を出力するスピーカをさらに備えてもよい。また、表示装置1は、ユーザの視線の位置に応じて仮想オブジェクトの表示有無や仮想オブジェクトの表示位置を変更するための視線検出用カメラを備えてもよい。さらに別の例では、記憶部14は、センサデータ記憶部20を有しなくともよい。この場合、制御部17は、カメラ15から即時に取得した撮像画像Imと、位置姿勢検出センサ16の検出信号に基づき算出した位置姿勢変化量Apとを用いて、キャリブレーション処理を行う。
【0033】
さらに別の例では、表示装置1は、位置姿勢検出センサ16等による表示装置1の位置を検出しなくともよい。一般に、スポーツ観戦や劇等の観賞中では、ユーザが移動することは稀であり、かつ、表示装置1の姿勢変化に比べて表示装置1の位置の変化に対する仮想オブジェクトの表示への影響は小さい。以上を勘案し、位置姿勢検出センサ16は、表示装置1の姿勢を検出するセンサから構成され、制御部17は、デバイス座標系の設定時からの表示装置1の姿勢の変化量のみを、位置姿勢変化量Apとして算出してもよい。
【0034】
(2)
機能ブロック
図3は、制御部17の機能的な構成を示すブロック図である。
図3に示すように、制御部17は、機能的には、仮想オブジェクト取得部41と、特徴抽出部42と、座標変換情報生成部43と、反映部44と、光源制御部45と、を有する。なお、
図3では、データの授受が行われるブロック同士を実線により結んでいるが、データの授受が行われるブロックの組合せは
図3に限定されない。後述する他の機能ブロックの図においても同様である。
【0035】
仮想オブジェクト取得部41は、仮想オブジェクトとして風景に重畳表示させる元となる仮想オブジェクトとその表示位置とを指定する情報(「指定表示情報Id」とも呼ぶ。)を取得する。この仮想オブジェクトは、2次元の物体描画のための情報(2次元描画情報)であってもよく、3次元の物体描画のための情報(3次元描画情報)であってもよい。例えば、興行者が管理するサーバ装置と表示装置1が通信可能である場合には、仮想オブジェクト取得部41は、サーバ装置から所定のタイミングによりプッシュ型配信又はプル型配信される配信情報を、指定表示情報Idとして取得する。この場合、指定表示情報Idには、仮想オブジェクトの他、表示位置を指定する情報(例えばフィールド座標系での座標値を示す情報)が含まれている。他の例では、仮想オブジェクトと表示位置とその表示条件との組み合わせを示す情報が記憶部14に予め記憶されてもよい。この場合、仮想オブジェクト取得部41は、記憶された上述の表示条件が満たされたと判断したときに、満たされた表示条件に対応する仮想オブジェクトと表示位置の組み合わせを指定表示情報Idとして取得する。
【0036】
特徴抽出部42は、センサデータ記憶部20から取得する撮像画像Imに基づき、特徴点情報「IF」を生成する。この場合、特徴抽出部42は、パラメータ記憶部21から抽出したパラメータに基づき構成した特徴抽出器に撮像画像Im(例えば最新の撮像画像Im)を入力することで特徴抽出器が出力する情報から特徴点情報IFを生成する。例えば、この場合、特徴抽出器は、構造特徴点の分類を示すラベルごとに、入力された撮像画像Im内の構造特徴点の位置(例えば座標値)を出力し、特徴抽出部42は、上述の撮像画像Im内の構造特徴点の位置を構造特徴点の候補位置(「特徴点候補位置」とも呼ぶ。)とし、当該位置に対応するラベルをラベルの候補(「候補ラベル」とも呼ぶ。)とする複数の組み合わせを示す特徴点情報IFを生成する。なお、特徴抽出器が構造特徴点の座標値として画像サイズに依存しないように正規化された値を出力する場合には、特徴抽出部42は、当該座標値に撮像画像Imの画像サイズを乗じることで、特徴点候補位置を算出する。
【0037】
座標変換情報生成部43は、構造データ記憶部22から抽出した構造データと、特徴点情報IFと、特徴抽出を行った撮像画像Imの生成時の位置姿勢変化量Apと、カメラ15のパラメータ等とに基づき、デバイス座標系とフィールド座標系との座標変換情報「Ic」を生成する。座標変換情報Icは、例えば、3次元空間同士の座標変換を行うために一般的に用いられる回転行列及び並進ベクトルの組み合わせである。なお、座標変換情報Icは、フィールド座標系をデバイス座標系へ変換する際に用いられる情報であることに限定されず、デバイス座標系をフィールド座標系へ変換する際に用いられる情報であってもよい。ここで、フィールド座標系からデバイス座標系へ変換するための回転行列及び並進ベクトルは、デバイス座標系からフィールド座標系へ変換するための回転行列(上述の回転行列の逆行列)及び並進ベクトル(符号反転した上述の並進ベクトル)に変換可能である。
【0038】
また、座標変換情報生成部43は、フィールド推定部46を有する。フィールド推定部46は、デバイス座標系における対象フィールドの位置を推定する。フィールド推定部46による推定方法については後述する。座標変換情報生成部43は、フィールド推定部46が推定したデバイス座標系における対象フィールドの位置と、構造データ記憶部22が示すフィールド座標系における対象フィールドの位置とに基づき、座標変換情報Icを生成する。
【0039】
反映部44は、座標変換情報生成部43から供給される座標変換情報Icを、仮想オブジェクト取得部41から供給される指定表示情報Idに反映させることで、光学素子11上に投影させる仮想オブジェクトを示す表示信号「Sd」を生成する。この場合、反映部44は、座標変換情報Icによりデバイス座標系をフィールド座標系と一致させた上で、指定表示情報Idに基づく表示信号Sdを生成する。光源制御部45は、反映部44から供給される表示信号Sdに基づき、光源ユニット10の光源(例えばRGBに対応する各光源)を駆動するための駆動タイミング及び光量などを指示する駆動信号を生成し、生成した駆動信号を光源ユニット10へ供給する。
【0040】
なお、キャリブレーション完了後(即ち座標変換情報Icを算出後)の各処理(即ち反映部44及び光源制御部45の処理)の説明は一例であり、既存のAR製品などにおいて適用される任意の方法により、仮想オブジェクトを所望の風景位置に重畳させる仮想オブジェクトを表示させてもよい。例えば、このような技術を開示する文献の例として、特開2015-116336号公報、特開2016-525741号公報などが存在する。これらの文献に示されるように、表示装置1は、ユーザの視線検出などを行い、仮想オブジェクトが適切に視認されるように制御を行う。
【0041】
図3において説明した仮想オブジェクト取得部41、特徴抽出部42、座標変換情報生成部43、反映部44及び光源制御部45の各構成要素は、例えば、制御部17がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子プロセッサ(量子コンピュータ制御チップ)により構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は、例えば、クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0042】
(3)
構造特徴点のラベル定義例
図4(A)は、対象フィールドがテニスコートである場合の構造特徴点の第1のラベル定義例であり、
図4(B)は、対象フィールドがテニスコートである場合の構造特徴点の第2のラベル定義例である。
図4(A)及び
図4(B)では、構造特徴点の位置に丸印及び対応するラベルの番号が明示されている。
【0043】
図4(A)に示す第1のラベル定義例では、14個存在する構造特徴点の隅から順に、0から13までの通し番号を、各構造特徴点のラベルとして付している。一方、
図4(B)に示す第2のラベル定義例では、対称となる構造特徴点に対して同一ラベルを付している。その結果、0から5までの各ラベルは、対称位置にある2つの構造特徴点に対して付されている。
【0044】
図5(A)は、対象フィールドがプールである場合の構造特徴点の第1のラベル定義例であり、
図5(B)は、対象フィールドがプールである場合の構造特徴点の第2のラベル定義例である。
図5(A)及び
図5(B)では、構造特徴点の位置に丸印及び対応するラベルの番号が明示されている。なお、対象フィールドがプールの場合、コースを区画するロープに所定距離間隔により設けられた所定色のフロートが構造特徴点として選ばれている。
【0045】
図5(A)に示す第1のラベル定義例では、25個存在する構造特徴点の隅から順に、0から24までの通し番号を、各構造特徴点のラベルとして付している。一方、
図5(B)に示す第2のラベル定義例では、対称となる構造特徴点に対して同一ラベルを付している。その結果、0から11までの各ラベルは、対称位置にある2つの構造特徴点に対して付されている。
【0046】
(4)
フィールド推定部の処理
(4-1)
概要
図6は、フィールド推定部46の処理の概要を表したフィールド推定部46の機能ブロック図である。
図6に示すように、フィールド推定部46は、機能的には、特徴点エラー検出部51と、第1フィールド推定部52と、ラベル修正部53と、第2フィールド推定部54とを有する。なお、
図6では明示していないが、フィールド推定部46の各構成要素は、センサデータ記憶部20に記憶された位置姿勢変化量Ap及びパラメータ記憶部21に記憶されたカメラのパラメータ(内部パラメータ、撮像画像Imのサイズを含む)を参照して各処理を行うものとする。
【0047】
特徴点エラー検出部51は、特徴抽出部42から供給される特徴点情報IFと、構造データ記憶部22に記憶された構造データとに基づき、誤った構造特徴点の抽出結果を表す特徴点候補位置(「エラー特徴点候補位置」とも呼ぶ。)を検出する。この場合、特徴点エラー検出部51は、位置姿勢検出センサ16に含まれる加速度センサ160の出力信号に基づき、フィールド座標系とデバイス座標系との鉛直方向の軸を平行にする処理を行ってもよい。そして、特徴点エラー検出部51は、エラー特徴点候補位置の検出結果を、第1フィールド推定部52及びラベル修正部53に供給する。
【0048】
第1フィールド推定部52は、特徴点情報IFと、特徴点エラー検出部51によるエラー特徴点候補位置の検出結果と、構造データ記憶部22に記憶された構造データとに基づき、デバイス座標系における対象フィールドの位置を推定する。具体的には、第1フィールド推定部52は、後述するように、対象フィールドの構造特徴点が非等方的に(ある方向に偏って)変位する場合に、非等方的な変位を考慮した最適化を行うことで、デバイス座標系における対象フィールドの推定位置を決定する。この場合、第1フィールド推定部52は、加速度センサ160の出力信号に基づき、フィールド座標系とデバイス座標系との鉛直方向の軸を平行にする処理を行ってもよい。
【0049】
なお、第1フィールド推定部52が算出するデバイス座標系での対象フィールドの推定位置は、ラベル修正部53が処理に用いるための暫定的な推定位置であり、最終的な対象フィールドの推定位置は、第2フィールド推定部54によって決定される。第1フィールド推定部52は、対象フィールドの推定位置を示す情報(「第1フィールド推定情報」とも呼ぶ。)を、ラベル修正部53に供給する。
【0050】
ラベル修正部53は、第1フィールド推定部52から供給される第1フィールド推定情報と、特徴点情報IFと、構造データ記憶部22に記憶される構造データとに基づき、特徴点情報IFの候補ラベルの修正を行う。この場合、ラベル修正部53は、エラー特徴点候補位置のうち、候補ラベルを変更することで正しい構造特徴点の位置を示すエラー特徴点候補位置(「ラベルエラー特徴点候補位置」とも呼ぶ。)の候補ラベルを変更する処理を行う。そして、ラベル修正部53は、ラベルエラー特徴点候補位置の候補ラベルを変更した特徴点情報IFを、第2フィールド推定部54に供給する。
【0051】
第2フィールド推定部54は、ラベル修正部53による修正が反映された特徴点情報IFと、構造データ記憶部22に記憶される構造データとに基づき、対象フィールドの位置を推定する。ここで、第2フィールド推定部54による対象フィールドの推定位置は、特徴点エラー検出部51、第1フィールド推定部52、ラベル修正部53の各処理結果を反映したものとなっており、フィールド推定部46が最終的に出力する対象フィールドの推定位置となる。以後では、第2フィールド推定部54による対象フィールドの推定位置を示す情報を「第2フィールド推定情報」とも呼ぶ。そして、第2フィールド推定部54が出力する第2フィールド推定情報に基づき、座標変換情報Icが生成される。
【0052】
(4-2)
特徴点エラー検出部
図7は、特徴点エラー検出部51の機能ブロックの一例である。特徴点エラー検出部51は、機能的には、軸調整部510と、候補フィールド生成部511と、推定フィールド決定部512と、間違いラベル検出部513とを有する。
【0053】
軸調整部510は、加速度センサ160の出力信号に基づき、デバイス座標系における鉛直方向を認識する。そして、軸調整部510は、認識した鉛直方向に基づき、デバイス座標系及びフィールド座標系の高さ方向の軸が平行になるように調整する。
【0054】
候補フィールド生成部511は、特徴点情報IFが示す特徴点候補位置のうち2点を用い、デバイス座標系において対象フィールドを表す候補(「候補フィールド」とも呼ぶ。)を生成する処理を複数回実行する。この場合、候補フィールド生成部511は、n(nは3以上の整数)回ランダムに選んだn組(ペア)の特徴点候補位置からn個の候補フィールドを生成してもよく、全通りの特徴点候補位置の組から候補フィールドを生成してもよい。なお、候補フィールド生成部511は、候補フィールドとして、例えば、ラベルごとのデバイス座標系における構造特徴点の推定位置と、デバイス座標系における対象フィールドの推定面とを特定する。
【0055】
ここで、全通りの特徴点候補位置の組から候補フィールドを生成する場合について補足説明する。ラベル名と構造特徴点の位置とが一意に決まるラベル定義の場合(即ち
図4(A)及び
図5(A)に示す第1のラベル定義例の場合)、特徴点候補位置の数をN個とすると、候補フィールド生成部511は、特徴点候補位置の
NC
2個の組から
NC
2個の候補フィールドを生成する。一方、ラベル名と構造特徴点の位置とが一意に決まらないラベル定義の場合、1組から複数のフィールド推定が必要になる。例えば、
図4(B)及び
図5(B)に示すラベル定義例(即ち、点対称ラベルを同一にしたラベル定義)の場合、候補フィールド生成部511は、全体で
NC
2×2個の候補フィールドを作成する。なお、一般に1ラベルに対して「M」(Mは3以上の整数)通りの特徴点位置が考えられるラベル定義例では、N個の構造特徴点が与えられた場合の候補フィールドの最小推定数は、ラベル定義の対称性等によって異なる。具体的には、処理の効率を考えない場合、候補フィールドの最小推定数は、
NC
2×M×Mとなる。
【0056】
さらに、
図4(B)及び
図5(B)に示すラベル定義例(即ち、点対称ラベルを同一にしたラベル定義であってM=2)の場合に、上述したように
MC
2×2個の候補フィールドが生成されることについて補足説明する。例えば
図4(B)のラベル0,1を組(ペア)(以後では(0,1)と表記する。)とする場合、
図4(A)の第1のラベル定義例に変換すると、以下の2×2=4通りの組(ペア)が存在する。
(0,1)、(0,12)、(13,1)、(13、12)
【0057】
一方、第2のラベル定義例ではラベルが点対称であることから、(0,1)を(0,1)または(13、12)に変換した場合のフィールド推定結果(候補フィールド)は、180°回転した関係となり実質的に同一となる。また、(0,1)を(0,12)または(13,1)に変換した場合も同様である。以上を勘案し、点対称のラベルとなる第2のラベル定義例では、変換前の片方のラベルを固定して変換した2通り(例えば0を固定した場合、(0,1)と(0,12)の2通り)の候補フィールドを推定すれば必要十分となる。
【0058】
推定フィールド決定部512は、複数の候補フィールドから、最終的に推定結果として出力するデバイス座標系での対象フィールド(「推定フィールド」とも呼ぶ。)を決定する。この場合、推定フィールド決定部512は、候補フィールドのクラスタリングを行い、候補フィールドが属する数が最も大きい主クラスタに属する候補フィールドから推定フィールドを決定する。言い換えると、推定フィールド決定部512は、デバイス座標系での対象フィールドの各ラベルの構造特徴点の推定位置(及び対象フィールドの推定面)を決定する。
【0059】
間違いラベル検出部513は、推定フィールド決定部512が決定した推定フィールドに基づき、エラー特徴点候補位置を決定する。この場合、例えば、間違いラベル検出部513は、位置姿勢変化量Apに基づき特定されるデバイス座標系での撮影位置及びカメラ15のパラメータ(内部パラメータを含む)に基づき、各特徴点候補位置を推定フィールドに投影した点を、デバイス座標系での各特徴点候補位置として認識する。そして、間違いラベル検出部513は、推定フィールドの構造特徴点の位置と、デバイス座標系での特徴点候補位置とをラベルごとに比較し、所定距離以上となる特徴点候補位置を、エラー特徴点候補位置として決定する。上述の所定距離は、例えば予め設定された適合値が記憶部14等に記憶されている。また、フィールド推定部46は、エラー特徴点候補位置に該当しない構造特徴点の数が所定の閾値(例えば5個)以下となった場合は推定を終了し、対象フィールドの推定が失敗したと判定する。この場合、フィールド推定部46は、新たに取得される撮像画像Imに基づくフィールド推定処理を実行する。
【0060】
次に、軸調整部510の処理について
図8を参照して具体的に説明する。
【0061】
図8は、デバイス座標系及びフィールド座標系の高さ方向の軸が平行になるように調整後のデバイス座標系とフィールド座標系の位置関係を示す。ここでは、対象フィールドはテニスコートとなっており、フィールド座標系は、テニスコートの短手方向及び長手方向及びこれらの垂直方向に各軸が設けられている。以後では、デバイス座標系の3軸をx軸、y軸、z軸とし、フィールド座標系の3軸をx^軸、y^軸、z^軸とする。
【0062】
この場合、軸調整部510は、加速度センサ160の出力信号に基づき、デバイス座標系のy軸とフィールド座標系のy軸とを平行にするようにデバイス座標系又はフィールド座標系の少なくとも一方を移動させる。例えば、フィールド座標系のy^軸が既に鉛直方向と平行である場合には、軸調整部510は、デバイス座標系のy軸が鉛直方向に平行となるようにデバイス座標系を回転させる。他の例では、軸調整部510は、フィールド座標系のy^軸が鉛直方向と平行でない場合、軸調整部510は、デバイス座標系のy軸及びフィールド座標系のy^軸が鉛直方向に平行となるようにデバイス座標系及びフィールド座標系の両方を夫々適切な角度分だけ回転させる。
【0063】
なお、軸調整部510は特徴点エラー検出部51における必須の構成ではない。例えば、特徴点エラー検出部51が軸調整部510を有する代わりに、候補フィールド生成部511は、3個(又は4個以上)の特徴点候補位置から候補フィールドを生成してもよい。
【0064】
次に、候補フィールド生成部511による候補フィールドの生成処理について
図9を参照して具体的に説明する。
【0065】
図9は、カメラ15の撮影位置、撮像画像Im、及び対象フィールドをデバイス座標系及びフィールド座標系において表した図である。ここで、デバイス座標系のy軸とフィールド座標系のy^軸とが平行になるように調整されており、これらの軸はオフセット「Y」分だけずれている。そして、この場合、候補フィールド生成部511は、任意の特徴点候補位置の2点から、オフセットY及びx軸とx^軸とがなす角度(又はz軸とz^軸とがなす角度)を求めることで、候補フィールドを決定することが可能である。
【0066】
ここで、任意の特徴点候補位置の2点から候補フィールドを決定する処理について補足説明する。
【0067】
図9は、
図4(A)に示される第1のラベル定義例に基づくラベル番号6及びラベル番号7の2つの特徴点候補位置から候補フィールドを生成する処理の概要を示している。ラベル番号6とラベル番号7の2つの特徴点候補位置間の距離(矢印90参照)は、構造データを参照することで特定することが可能である。そして、候補フィールド生成部511は、デバイス座標系におけるカメラ15の撮影位置(撮影方向を含む)と、カメラ15のパラメータと、ラベル番号6とラベル番号7の撮像画像Im内の特徴点候補位置と、矢印90が示す距離とに基づき、候補フィールドを決定する。なお、デバイス座標系におけるカメラ15の撮影位置(撮影方向を含む)は位置姿勢変化量Apに基づき特定される。
【0068】
また、候補フィールド生成部511は、特徴点候補位置の組から候補フィールドを決定する処理を複数回実行する必要があるが、これらの処理は行列処理により並列計算が可能である。よって、候補フィールド生成部511は、生成した特徴点候補位置の複数の組の各々に対する候補フィールドを並列処理により算出することが可能である。
【0069】
次に、推定フィールド決定部512によるクラスタリング処理について補足説明する。
【0070】
推定フィールド決定部512は、任意のクラスタリング手法を用いることで、候補フィールドのクラスタリングを行う。このようなクラスタリング手法は、単リンク法、完全リンク法、群平均法、Ward法、セントロイド法、重み付き法、メジアン法などが存在するがこれに限られない。この場合、推定フィールド決定部512は、例えば、各候補フィールドのデバイス座標系での3次元の重心座標及びxz平面上での向きを表す角度(テニスコートの場合には長手方向又は短手方向の向き)の4次元座標値(ベクトル)に基づき、上述のクラスタリングを実行する。上述の「候補フィールドのデバイス座標系での3次元の重心座標」として、例えば、候補フィールドを構成する全ラベルの構造特徴点のデバイス座標系での推定位置の重心座標が算出される。なお、鉛直方向に基づく軸調整を行わない場合には、上述の4次元座標値は、各候補フィールドのデバイス座標系での3次元の重心座標及びオイラー角(ヨー、ピッチ、ロール)の6次元座標値となる。
【0071】
図10は、生成した6個の候補フィールド「C1」~「C6」のクラスタリングの結果をデバイス座標系において示した図である。この場合、推定フィールド決定部512は、任意のクラスタリング手法を用いることで、候補フィールドを第1クラスタCL1と、第2クラスタCL2と、第3クラスタCL3とに分類している。ここで、第1クラスタCL1は主クラスタであり、最も多くの4つの候補フィールドC1、C3、C4、C6が属している。一方、第2クラスタCL2は候補フィールドC2からなり、第3クラスタCL3は、候補フィールドC5からなる。
【0072】
この場合、推定フィールド決定部512は、主クラスタである第1クラスタCL1に属する候補フィールドが対象フィールドの正しい推定結果であると判定し、候補フィールドC1、C3、C4、C6に基づき、推定フィールドを決定する。例えば、推定フィールド決定部512は、主クラスタに属する候補フィールドの各々の上述の4次元座標値の重心(平均ベクトル)を算出し、当該重心に最も近い4次元座標値に対応する候補フィールドを推定フィールドとして選択する。他の例では、推定フィールド決定部512は、主クラスタに属する候補フィールドの平均(上述の重心からの距離に応じた重み付け平均を含む)その他の統計処理又は構造データから特定される構造特徴点の位置関係(即ち対象フィールドのモデル)を利用した最小2乗法などの解析処理に基づき、主クラスタに属する候補フィールドを統合した推定フィールドを決定してもよい。この場合、推定フィールド決定部512は、例えば、構造データにより示される対象フィールドの各構造特徴点間の位置関係(距離)を表すモデル又は制約条件を設定し、ラベルごとに推定フィールドの構造特徴点と主クラスタに属する候補フィールドの特徴点候補位置の点群との誤差の和を最小化するように最適化(最小二乗法等による解析も含む)を行うことで、推定フィールドを決定してもよい。さらに別の例では、推定フィールド決定部512は、主クラスタに属する候補フィールドからランダムに選択した候補フィールドを推定フィールドとして決定してもよい。このように、推定フィールド決定部512は、主クラスタに属する候補フィールドの統合又は選択に基づき、推定フィールドを決定する。
【0073】
次に、特徴点エラー検出部51の処理に基づく技術的効果について補足説明する。
【0074】
比較例として、候補フィールド生成部511による候補フィールドの生成及び推定フィールド決定部512による推定フィールドの決定に関する処理に代えて、RANSACに基づき尤もらしい構造特徴点及びラベルの推定を行う場合について考察する。この場合、比較例では、フィールド推定が可能となる適当な特徴点候補位置の組(ペア)を全ての構造特徴点からランダムに選んでいき、真の値らしい構造特徴点の位置及びラベルの組を特定する。この比較例では、なるべく多くの特徴点候補位置が構造特徴点の推定位置と一致するような対象フィールドを最適化により推定する。この場合、一度の試行の計算量が多く、求める正解精度によっては処理時間がかかるという問題がある。
【0075】
以上を勘案し、本実施形態に係る特徴点エラー検出部51は、複数の特徴点候補位置の組に基づく候補フィールドの算出を行った後、クラスタリングによって推定フィールドを決定する。これにより、特徴点エラー検出部51は、候補フィールドの並列処理を可能とし、RANSACを用いる比較例と比較して処理時間を短くすることができる。また、特徴点エラー検出部51は、誤って抽出された特徴点候補位置を除外して正確な対象フィールドの推定結果を得ることができる。
【0076】
(4-3)
第1フィールド推定部
次に、第1フィールド推定部52の処理について説明する。第1フィールド推定部52は、対象フィールドの構造特徴点が非等方的に(ある方向に偏って)変位する場合に、非等方的な変位を考慮した最適化を行うことで、対象フィールドの推定位置を決定する。ここで、構造特徴点が非等方的に(ある方向に偏って)変位する対象フィールドは、例えば、
図5(A)及び
図5(B)に示す(競技用)プールである。このような性質を有する対象フィールドは、剛体に準じた性質を有する準剛体とみなすことができる。
【0077】
図11は、プールに設けられたロープのうち構造特徴点として指定されるフロートを明示した図である。ここでは、構造特徴点となるフロートをハッチングしている。
図11に示すように、ロープに設けられたフロートは、ロープが並ぶ方向(即ちプールの短手方向)には動きにくく、ロープが延びる方向(即ちプールの長手方向)に動きやすい。このように、プールが対象フィールドである場合には、構造特徴点の経時での変位は等方的ではない。以上を勘案し、第1フィールド推定部52は、非等方的に構造特徴点が経時変位する対象フィールドの推定において、非等方的な変位を考慮した最適化を行う。
【0078】
図12は、エラー特徴点候補位置を除外した特徴点候補位置に基づく最適化処理により求めた対象フィールドの推定位置をデバイス座標系において表した図である。ここでは、対象フィールドは、対象フィールドを格子状に分けた場合の各格子の頂点(計12個の頂点)を構造特徴点として有している。そして、第1フィールド推定部52は、3個のエラー特徴点候補位置を除く9個の特徴点候補位置「P2」~「P7」、「P10」~「P12」に基づき、対象フィールドの推定を行っている。この場合、第1フィールド推定部52は、位置姿勢変化量Apに基づき特定されるデバイス座標系での撮影位置(撮影向きを含む)とカメラ15のパラメータ(内部パラメータを含む)とに基づき、デバイス座標系に投影された特徴点候補位置P2~P7、P10~P12(
図12に示される破線)を特定する。そして、候補フィールド生成部51は、構造データを参照することで、対象フィールドの構造特徴点間の距離等を表す相対位置関係(対象フィールドのモデル)を特定し、特定した構造特徴点間の位置関係が保たれるように、デバイス座標系での特徴点候補位置P2~P7、P10~P12及び推定フィールド全体を決定する。
【0079】
このように、第1フィールド推定部52は、使用する特徴点候補位置の候補ラベルに間違いがない、かつ、カメラ15の内部パラメータ等に起因した歪みを調整しているという前提において、特徴点情報IFにより示される少なくとも一部の特徴点候補位置及び候補ラベルの組と、構造データとに基づき、デバイス座標系での対象フィールドの推定を行う。
【0080】
次に、構造データに含まれる非等方性情報に基づく最適化処理について具体的に説明する。
【0081】
図13は、対象フィールドの等方的な最適化の解と非等方的な最適化の解とを夫々デバイス座標系のxz平面上において表した図である。ここでは、等方的な最適化の解を破線により示し、非等方的な最適化の解を実線により示している。なお、ここでは、第1フィールド推定部52は、軸調整部510と同一処理に基づき(即ち加速度センサ160の出力信号に基づき)、デバイス座標系のy軸を鉛直方向(即ち対象フィールドの法線方向)と平行になるように調整済みであるものとする。
【0082】
ここで、第1フィールド推定部52は、非等方性情報を参照し、対象フィールドの構造特徴点が非等方的に変位しないと判定した場合、等方的な最適化を行う。この場合、第1フィールド推定部52は、ラベルごとに、対象フィールドの構造特徴点の推定位置とデバイス座標系での特徴点候補位置との距離(即ち誤差)を算出し、そのラベルごとの距離の和を評価関数とし、当該評価関数を最小化する上述の推定位置の解を算出する。なお、この場合、第1フィールド推定部52は、構造データ記憶部22に記憶された構造データに基づく各構造特徴点の相対位置関係を満たすことを制約条件として上述の解の算出を行う。なお、例えば上述の制約条件を対象フィールドのモデルとみなして最小二乗法により上述の算出を行ってもよい。
【0083】
一方、第1フィールド推定部52は、非等方性情報を参照し、対象フィールドの構造特徴点が非等方的に変位すると判定した場合、非等方的な最適化を行う。この場合、まず、第1フィールド推定部52は、ラベルごとに、推定する対象フィールドの構造特徴点の推定位置とデバイス座標系での特徴点候補位置とのx軸方向及びz軸方向での距離(即ち誤差)を算出し、そのx軸方向の距離の和とz軸方向の距離の和を算出する。そして、第1フィールド推定部52は、算出したx軸方向の距離の和とz軸方向の距離の和とに対して夫々異なる重み係数(x軸に対応する係数を「ax」、y軸に対応する係数を「ay」とする。)を乗じた和を評価関数として設定する。これらの係数については、例えば非等方性情報に含まれていてもよく、変位が大きい方向の重み係数と変位が小さい方向の重み係数とが対象フィールドによらずに固定値に定められてもよい。そして、第1フィールド推定部52は、構造データに基づく各構造特徴点の相対位置関係を制約条件として、上述の評価関数を最小化する上述の推定位置の解を算出する。なお、例えば上述の制約条件を対象フィールドのモデルとみなして重み付き最小二乗法により上述の算出を行ってもよい。
【0084】
なお、上述した最適化の手法は一例であり、任意の評価関数に基づき座標軸ごとに等方的な又は非等方的な最適化を行ってもよい。
【0085】
そして、
図13の例では、第1フィールド推定部52は、構造データの非等方性情報を参照し、x軸方向(即ち対象フィールドの短手方向)に構造特徴点が動きやすく、かつ、z軸方向(即ち対象フィールドの長手方向)に構造特徴点が動きにくいことを認識する。よって、第1フィールド推定部52は、非等方的な最適化において、x軸での誤差に対応する重み係数axを、y軸の誤差に対応する重み係数ayよりも高く設定し、x軸方向の位置合わせを重視するように対象フィールドの推定位置を決定する。その結果、非等方的な最適化の解に相当する対象フィールドの推定位置(実線参照)では、等方的な最適化の解に相当する対象フィールドの推定位置(破線参照)と比べて、x軸方向においてずれが少ない。
【0086】
このように、第1フィールド推定部52は、対象フィールドの構造特徴点の方向ごとの変位のしやすさを考慮し、的確に対象フィールドの推定を行うことができる。なお、第1フィールド推定部52は、構造データの非等方性情報を参照し、対象フィールドの構造特徴点に変位が生じない又は変位が等方的であると判定した場合には、上述した等方的な最適化を行うことで、対象フィールドの推定を行う。
【0087】
そして、第1フィールド推定部52は、対象フィールドの推定結果を、第1フィールド推定情報としてラベル修正部53に供給する。ここで、第1フィールド推定情報は、例えば、対象フィールドの構造特徴点のデバイス座標系での推定位置及びラベルの組と、これらの構造特徴点の推定位置から特定されるデバイス座標系での対象フィールドの推定面(「フィールド推定面」とも呼ぶ。)とを夫々示す情報である。
【0088】
なお、デバイス座標系のy軸を鉛直方向(即ち対象フィールドの法線方向)と平行になるように調整する処理は必須の処理ではなく、第1フィールド推定部52は、この処理を行わずに上述の最適化により対象フィールドの推定を行ってもよい。この場合、第1フィールド推定部52は、対象フィールドの構造特徴点の推定位置とデバイス座標系での特徴点候補位置との3次元空間における距離に基づき上述の最適化を行う。
【0089】
(4-4)ラベル修正部
ラベル修正部53は、第1フィールド推定部52から供給される第1フィールド推定情報と、特徴点情報IFとに基づき、特徴点情報IFの候補ラベルの修正を行う。なお、以後では、カメラ15の内部パラメータ等に起因した歪みを調整済みであるものとする。
【0090】
図14(A)は、対象フィールドがテニスコートである場合の特徴点候補位置を候補ラベルの番号と共に第1フィールド推定情報に基づくフィールド推定面上において明示した図である。ここでは、前提として、
図12等を用いて説明した第1フィールド推定部52の処理等を適用することにより、カメラ15の撮影位置及びパラメータ等に基づき、各特徴点候補位置はデバイス座標系での位置に変換されているものとする。なお、
図14(A)では、一例として、
図4(A)に示されるテニスコートの第1のラベル定義例に基づくラベルが各構造特徴点に割り当てられている。
図14(A)では、エラー特徴点候補位置を破線の丸印により示し、その他の特徴点候補位置を実線の丸印により示している。ここでは、エラー特徴点候補位置は、候補ラベル7及び候補ラベル8に対応する特徴点候補位置となっている。
【0091】
図14(B)は、第1フィールド推定部52による候補ラベル修正後の特徴点候補位置及び候補ラベルの番号の組を第1フィールド推定情報に基づくフィールド推定面上において明示した図である。この場合、第1フィールド推定部52は、第1フィールド推定情報に基づき特定される構造特徴点及びラベルの組と、特徴点情報IFが示す特徴点候補位置及び候補ラベルの組とを比較する。この場合、第1フィールド推定部52は、特徴点情報IFが示す各特徴点候補位置について、第1フィールド推定情報が示すフィールド推定面上での投影位置(例えば、
図12における特徴点候補位置P2~P7、P10~P12)を、デバイス座標系での各特徴点候補位置として算出する。この場合、第1フィールド推定部52は、カメラ15の内部パラメータ等に起因した歪みを考慮してデバイス座標系での各特徴点候補位置の算出を行う。
【0092】
そして、第1フィールド推定部52は、ラベル0~6及び9~13について、第1フィールド推定情報に基づく構造特徴点の位置と同一ラベルに対応するデバイス座標系での特徴点候補位置との距離が所定閾値以内となることから、これらの特徴点候補位置は第1フィールド推定情報と整合する(即ち第1フィールド推定情報が示す構造特徴点の位置と一致する)と判定する。上述の所定距離は、例えば同一位置とみなせる距離であり、適合値が予め記憶部14等に記憶されている。
【0093】
一方、第1フィールド推定部52は、ラベル7及びラベル8について、第1フィールド推定情報に基づく構造特徴点の位置と同一ラベルに対応するデバイス座標系での特徴点候補位置との距離が所定閾値より長くなると判定する。よって、この場合、第1フィールド推定部52は、これらの特徴点候補位置は第1フィールド推定情報と整合しないと判定する。
【0094】
なお、第1フィールド推定部52は、各特徴点候補位置が第1フィールド推定情報と整合するか否かを、特徴点エラー検出部51によるエラー特徴点候補位置の検出結果に基づき判定してもよい。この場合、第1フィールド推定部52は、特徴点エラー検出部51が検出したエラー特徴点候補位置については第1フィールド推定情報と整合しないと判定し、特徴点エラー検出部51が検出したエラー特徴点候補位置以外の特徴点候補位置については第1フィールド推定情報と整合すると判定する。
【0095】
次に、第1フィールド推定部52は、第1フィールド推定情報と整合しない特徴点候補位置(ここでは候補ラベル7、8の特徴点候補位置)のうち、候補ラベルを修正することで第1フィールド推定情報と整合する特徴点候補位置の有無をさらに判定する。そして、第1フィールド推定部52は、候補ラベル7のデバイス座標系での特徴点候補位置と第1フィールド推定情報に基づく任意の構造特徴点の位置との距離が上述の所定閾値より長くなることから、候補ラベル7の特徴点候補位置については候補ラベルの修正では誤りを修正できないと判定する。
【0096】
一方、第1フィールド推定部52は、候補ラベル8のデバイス座標系での特徴点候補位置と第1フィールド推定情報に基づくラベル7の構造特徴点の位置との距離が上述の所定閾値未満となることから、候補ラベル8の特徴点候補位置については候補ラベルを7に修正することにより誤りを修正できる(即ち第1フィールド推定情報と整合する)と判定する。よって、この場合、第1フィールド推定部52は、候補ラベル8の特徴点候補位置がラベルエラー特徴点候補位置であると判定し、
図14(B)に示すように、候補ラベル8の特徴点候補位置の候補ラベルを7に変更する。これにより、第1フィールド推定部52は、特徴点情報IFの誤りを好適に修正することができる。
【0097】
このように、第1フィールド推定部52は、第1フィールド推定情報に整合しない特徴点候補位置のうち、候補ラベルの修正のみで誤りを修正可能なラベルエラー特徴点候補位置の候補ラベルを修正する。これにより、第1フィールド推定部52は、特徴点候補位置を好適に修正することができる。
【0098】
その後、ラベル修正部53は、例えば、第1フィールド推定部52により修正された特徴点情報IFに基づき、第1フィールド推定部52と同一処理を行うことで、第2フィールド推定情報を生成する。ここで、第2フィールド推定情報の生成時では、ラベル修正部53は、候補ラベルの誤りが適切に修正された特徴点情報IFに基づき対象フィールドの推定を行うため、第1フィールド推定部52が生成する第1フィールド推定情報よりも高精度な第2フィールド推定情報を好適に生成することができる。
【0099】
また、フィールド推定部46は、誤り量又は/及びラベル修正部53による修正後に使用する構造特徴点の数等によってフィールド推定の成功又は失敗の判定を行ってもよい。例えば、フィールド推定部46は、以下の(ケースA)、(ケースB)、(ケースC)のいずれかに該当する場合に、フィールド推定を中止し、フィールド推定が失敗したと判定する。
【0100】
(ケースA)ラベル修正部53により修正した構造特徴点を含めた第2フィールド推定部54によるフィールド推定に使用する構造特徴点の総数「n」が所定の閾値以下の場合、
(ケースB)特徴抽出部42によって得られた特徴点数「Np」(即ち特徴点情報IFが示す特徴点数)に対する使用総数nの割合(n/Np)が所定の閾値以下の場合、
(ケースC)修正した構造特徴点のラベルとフィールド推定に使用するその他の構造特徴点のラベルとが構造データ上で同一直線上にある場合(例えば
図4(A)のラベル10、11、12、13)、言い換えると、構造的に同一直線上となるように配置された構造特徴点のみを使用してフィールド推定を行う場合。
【0101】
そして、フィールド推定部46は、(ケースA)、(ケースB)、(ケースC)のいずれかに該当し、フィールド推定を中止した場合、新たに取得される撮像画像Imに基づくフィールド推定処理を実行する。なお、(ケースC)の場合にフィールド推定を中止することで、構造的に同一直線上の構造特徴点のみを使用してフィールド推定を行う場合はその他の場合に対して著しく精度が落ちるため、精度が低いフィールド推定の実行を防ぐことができる。また、フィールド推定部46は、第2フィールド推移部54による推定処理後に(ケースA)、(ケースB)の該当有無を判定し、実行したフィールド推定が失敗したか否か判定してもよい。即ち、この場合、ラベル修正部53の構造特徴点の位置との距離比較と同様に、フィールド推定部46は、特徴抽出部42によって得られた構造特徴点の位置とフィールド推定後の構造特徴点の位置との整合性を求め、整合した構造特徴点について(ケースA)、(ケースB)の該当有無を判定してもよい。
【0102】
ここで、第1フィールド推定部52の処理に基づく効果について補足説明する。一般的に、テニスコートなどの構造特徴点同士が似ている場合には、候補ラベルのみに誤りがある特徴抽出結果が生成される場合がある。このような場合において、表示装置1は、特徴抽出結果を好適に修正でき、修正後の特徴抽出結果に基づくキャリブレーション処理等を高精度に実行することが可能となる。
【0103】
(5)
処理フロー
図15は、第1実施形態において制御部17が実行する仮想オブジェクトの表示処理に関する処理概要を示すフローチャートの一例である。
【0104】
まず、制御部17は、表示装置1の起動を検知する(ステップS11)。この場合、制御部17は、表示装置1の起動時の表示装置1の姿勢及び位置を基準としたデバイス座標系を設定する(ステップS12)。その後、制御部17は、カメラ15が生成する撮像画像Imを取得すると共に、位置姿勢検出センサ16が出力する検出信号に基づく位置姿勢変化量Apを取得する(ステップS13)。制御部17は、ステップS13で取得した撮像画像Im及び位置姿勢変化量Apの組合せを、センサデータ記憶部20に記憶する。
【0105】
そして、制御部17は、仮想オブジェクトの表示要求があるか否か判定する(ステップS14)。例えば、仮想オブジェクト取得部41は、興行者が管理する図示しないサーバ装置から仮想オブジェクトの表示を指示する配信情報を受信した場合に、仮想オブジェクトの表示要求があると判定する。そして、仮想オブジェクトの表示要求がない場合(ステップS14;No)、引き続きステップS13において撮像画像Im及び位置姿勢変化量Apの取得を行う。
【0106】
一方、仮想オブジェクトの表示要求があった場合(ステップS14;Yes)、制御部17は、キャリブレーション処理を実行する(ステップS15)。このキャリブレーション処理の手順の詳細は
図16を参照して後述する。
【0107】
次に、制御部17の反映部44は、ステップS15のキャリブレーション処理で得られた座標変換情報Icに基づき、表示要求において指定された仮想オブジェクト及び表示位置に対応する仮想オブジェクトを表示するための表示信号Sdを生成する(ステップS16)。なお、この場合、実際には、制御部17は、種々の従来のAR表示製品と同様、ユーザの視線方向及び位置姿勢変化量Ap等を考慮してデバイス座標系においてユーザが視認する空間を認識し、当該空間内において仮想オブジェクトが指定された位置で表示されるように表示信号Sdを生成する。そして、制御部17の光源制御部45は、表示信号Sdに基づき、光源ユニット10の射出制御を行う(ステップS17)。
【0108】
なお、
図15に示すフローチャートの処理手順は一例であり、この処理手順に対し種々の変更を行うことができる。
【0109】
例えば、制御部17は、ステップS15のキャリブレーション処理を仮想オブジェクト表示要求がある度に実行しているが、これに限られない。これに代えて、制御部17は、前回のキャリブレーション処理から所定時間以上経過した場合に限り、キャリブレーション処理を行ってもよい。このように、制御部17は、キャリブレーション処理を、表示装置1の起動後少なくとも1度行えばよい。
【0110】
また、制御部17は、表示装置1の起動時の表示装置1の位置及び姿勢を基準としてデバイス座標系を決定しているが、これに限られない。これに代えて、例えば、制御部17は、表示装置1の起動後に最初に表示要求があったとき(即ち最初にキャリブレーション処理を実行したとき)の表示装置1の位置及び姿勢を基準として、デバイス座標系を決定してもよい。他の例では、制御部17は、表示要求がある度に、当該表示要求時(即ちキャリブレーション処理実行時)の表示装置1の位置及び姿勢を基準としてデバイス座標系を再設定してもよい。この場合、後述する座標変換情報Icの生成処理には位置姿勢変化量Apを使用する必要がない。
【0111】
図16は、
図15のステップS15のキャリブレーション処理の詳細な処理手順を示すフローチャートの一例である。
【0112】
まず、制御部17の特徴抽出部42は、センサデータ記憶部20等から取得する撮像画像Imに基づき、対象フィールドの各構造特徴点に対応する特徴点候補位置及び候補ラベルの組を示す特徴点情報IFを生成する(ステップS21)。この場合、特徴抽出部42は、パラメータ記憶部21から取得するパラメータに基づき特徴抽出器を構成し、当該特徴抽出器に撮像画像Imを入力する。そして、特徴抽出部42は、特徴抽出器が出力する情報に基づき、特徴点情報IFを生成する。
【0113】
次に、座標変換情報生成部43のフィールド推定部46は、特徴点エラー検出処理を実行する(ステップS22)。特徴点エラー検出処理の詳細については、
図17を参照して説明する。
【0114】
さらに、フィールド推定部46は、第1フィールド推定処理を実行する(ステップS23)。第1フィールド推定処理の詳細については、
図18を参照して説明する。
【0115】
そして、フィールド推定部46は、ラベル修正処理を実行する(ステップS24)。ラベル修正処理の詳細については、
図19を参照して説明する。そして、フィールド推定部46は、第2フィールド推定処理を実行する(ステップS25)。これにより、フィールド推定部46は、誤りが修正された特徴点情報IFに基づきデバイス座標系での対象フィールドを高精度に推定した結果を表す第2フィールド推定情報を生成する。
【0116】
そして、座標変換情報生成部43は、フィールド推定部46が生成した第2フィールド推定情報に基づき、デバイス座標系からフィールド座標系へ変換するための座標変換情報Icを生成する(ステップS26)。この場合、座標変換情報生成部43は、構造特徴点のラベル毎に、ステップS25で取得した第2フィールド推定情報が示す各構造特徴点のデバイス座標系での検出位置と、構造データに含まれる登録位置情報が示すフィールド座標系の構造特徴点の位置と、を夫々対応付けて照合を行い、ラベル毎に照合した位置同士が一致するような(即ちラベル毎の位置の誤差が最小となる)座標変換情報Icを算出する。
【0117】
このように、表示装置1は、キャリブレーション処理において撮像画像Imから予め登録されている(即ち既にラベルが登録された)構造特徴点のみを抽出した情報を、構造データに登録された構造特徴点の情報と照合させる。これにより、座標変換情報Icを算出するための照合処理に要する計算量を大幅に削減し、かつ、撮像画像Imに含まれるノイズ(即ち対象フィールド以外の特徴点)の抽出に起因した影響等を受けないロバストな座標変換情報Icの算出が可能となる。また、本実施形態では、上述の照合は、特徴抽出処理の誤りが好適に修正された構造特徴点の推定情報に基づき実行されるため、正確な座標変換情報Icの算出が可能となる。
【0118】
図17は、ステップS22において実行される特徴点エラー検出処理の詳細を示すフローチャートの一例である。
【0119】
まず、特徴点エラー検出部51は、加速度センサ160の出力信号等に基づき鉛直方向を特定し、特定した鉛直方向に基づきデバイス座標系とフィールド座標系との1軸(y軸とy^軸)が平行になるようにデバイス座標系等を調整する(ステップS31)。
【0120】
次に、特徴点エラー検出部51は、構造データと、選択した2点の特徴点候補位置とに基づきデバイス座標系における候補フィールドを生成する処理を、複数回実行する(ステップS32)。これにより、上述の処理実行した回数分の候補フィールドを生成する。なお、特徴点エラー検出部51は、候補フィールドを生成する処理を並列的に実行してもよい。
【0121】
次に、特徴点エラー検出部51は、ステップS32において生成した複数の候補フィールドのクラスタリングを行う(ステップS33)。この場合、特徴点エラー検出部51は、任意のクラスタリング手法により、複数の候補フィールドに対する1又は複数のクラスタを生成する。
【0122】
そして、特徴点エラー検出部51は、候補フィールドが属する数が最も大きい主クラスタの候補フィールドに基づき、推定フィールドを決定する(ステップS34)。そして、特徴点エラー検出部51は、推定フィールドに各特徴点候補位置を投影し、投影した特徴点候補位置と推定フィールドの構造特徴点とをラベルごとに比較することで、エラー特徴点候補位置を検出する(ステップS35)。
【0123】
図18は、ステップS23において実行される第1フィールド推定処理の詳細を示すフローチャートの一例である。
【0124】
まず、第1フィールド推定部52は、加速度センサ160の出力信号等に基づき鉛直方向を特定し、特定した鉛直方向に基づきデバイス座標系とフィールド座標系との1軸(y軸とy^軸)が平行になるようにデバイス座標系等を調整する(ステップS41)。なお、第1フィールド推定部52は、ステップS31の処理に基づき既にデバイス座標系とフィールド座標系との1軸が平行になっている場合には、ステップS41の処理を実行しなくともよい。
【0125】
次に、第1フィールド推定部52は、構造データ記憶部22が記憶する構造データに含まれる非等方性情報を取得する(ステップS42)。そして、第1フィールド推定部52は、非等方性情報と、エラー特徴点候補位置以外の複数の特徴点候補位置とに基づき、対象フィールドを推定するための最適化を行う(ステップS43)。この場合、第1フィールド推定部52は、非等方性情報に基づき、対象フィールドの構造特徴点が非等方に変位すると判定した場合には、非等方の(即ち方向によって重みが異なる)最適化を行う。一方、第1フィールド推定部52は、非等方性情報に基づき、対象フィールドの構造特徴点が等方に変位すると判定した場合には、等方の(即ち方向によって重みが変わらない)最適化を行う。そして、第1フィールド推定部52は、上述の最適化により得られた対象フィールドの推定結果を表す第1フィールド推定情報を生成する(ステップS44)。
【0126】
図19は、ステップS24において実行されるラベル修正処理の詳細を示すフローチャートの一例である。
【0127】
まず、ラベル修正部53は、第1フィールド推定部52がステップS44で生成した第1フィールド推定情報に基づき、デバイス座標系での特徴点候補位置を特定する(ステップS51)。そして、ラベル修正部53は、第1フィールド推定情報と整合しない特徴点候補位置が存在するか否か判定する(ステップS52)。この場合、例えば、ラベル修正部53は、ステップS35で検出したエラー特徴点候補位置が存在する場合、第1フィールド推定情報と整合しない特徴点候補位置が存在すると判定する。他の例では、ラベル修正部53は、第1フィールド推定情報から特定される各構造特徴点の位置及びラベルと、ステップS51で特定したデバイス座標系での特徴点候補位置及びラベルとを比較することで、上述の誤った特徴点候補位置の存否を判定する。そして、ラベル修正部53は、第1フィールド推定情報と整合しない特徴点候補位置が存在しない場合(ステップS52;No)、特徴点情報IFを修正する必要がないことから、フローチャートの処理を終了する。
【0128】
一方、ラベル修正部53は、第1フィールド推定情報と整合しない特徴点候補位置が存在する場合(ステップS52;Yes)、対応する候補ラベルの変更により当該特徴点候補位置が第1フィールド推定情報と整合するか否か(即ちラベルエラー特徴点候補位置が存在するか否か)判定する(ステップS53)。そして、ラベル修正部53は、対応する候補ラベルの変更により当該特徴点候補位置が第1フィールド推定情報と整合すると判定した場合(ステップS53;Yes)、当該特徴点候補位置の候補ラベルを修正する(ステップS54)。その後、ラベル修正部53は、ステップS54での候補ラベルの修正を反映した特徴点情報IFを生成する。一方、対応する候補ラベルの変更によっても対象の特徴点候補位置が第1フィールド推定情報と整合しない(即ちラベルエラー特徴点候補位置が存在しない)と判定した場合(ステップS53;No)、ラベル修正部53はフローチャートの処理を終了する。なお、この場合、ラベル修正部53は、ステップS52で検出した特徴点候補位置は誤って位置が推定されているとみなし、当該特徴点候補位置を特徴点情報IFから削除したりエラー特徴点候補位置である旨のフラグを付すなどの処理を行う。
【0129】
<第2実施形態>
図20は、第2実施形態における表示システムの構成を示す。
図20に示すように、第2実施形態に係る表示システムは、表示装置1Aと、サーバ装置2とを有する。第2実施形態では、キャリブレーション処理等を、表示装置1Aの代わりにサーバ装置2が実行する点において、第1実施形態と異なる。以後では、第1実施形態と同様の構成要素については適宜同一符号を付し、その説明を省略する。
【0130】
表示装置1Aは、サーバ装置2がキャリブレーション処理等を行うために必要な情報であるアップロード信号「S1」をサーバ装置2に送信する。この場合、アップロード信号S1には、例えば、カメラ15が生成する撮像画像Im及び位置姿勢検出センサ16の出力に基づき検出される位置姿勢変化量Apが含まれている。そして、表示装置1Aは、サーバ装置2から送信される配信信号「S2」を受信した場合、配信信号S2に基づき、光源ユニット10の光の射出制御を行うことで、仮想オブジェクトを表示する。例えば、配信信号S2は、第1実施形態の表示信号Sdに相当する情報を含んでおり、表示装置1Aは、配信信号S2の受信後、第1実施形態の光源制御部45と同様の処理を行うことで、光源ユニット10に仮想オブジェクトを表示するための光を射出させる。
【0131】
サーバ装置2は、例えば、興行者が管理するサーバ装置であり、表示装置1Aから受信するアップロード信号S1に基づき、配信信号S2の生成及び表示装置1Aへの配信信号S2の配信を行う。
図21は、サーバ装置2のブロック図である。サーバ装置2は、入力部26と、制御部27と、通信部28と、記憶部29とを有する。
【0132】
記憶部29は、制御部27がサーバ装置2の制御に必要な種々の情報を記憶する不揮発性メモリである。記憶部29には、制御部27が実行するプログラムが記憶される。記憶部29は、センサデータ記憶部20と、パラメータ記憶部21と、構造データ記憶部22とを有する。センサデータ記憶部20には、制御部27の制御に基づき、アップロード信号S1に含まれる撮像画像Im及び位置姿勢変化量Apが記憶される。なお、記憶部29は、サーバ装置2に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶部29は、サーバ装置2とデータ通信を行うサーバ装置(即ち、他の装置から参照可能に情報を記憶する装置)であってもよい。また、この場合、記憶部29は、複数のサーバ装置から構成され、センサデータ記憶部20と、パラメータ記憶部21と、構造データ記憶部22とを分散して記憶してもよい。
【0133】
制御部27は、例えばCPU、GPUなどのプロセッサ、作業メモリとして機能する揮発性メモリなどを有しており、サーバ装置2の全体的な制御を行う。制御部27は、入力部26へのユーザ入力等に基づき、仮想オブジェクトとして表示させる仮想オブジェクト及び表示位置の情報(即ち第1実施形態の指定表示情報Idに相当する情報)を生成する。さらに、制御部27は、センサデータ記憶部20、パラメータ記憶部21、構造データ記憶部22を参照することで、キャリブレーション処理を実行し、配信信号S2を生成する。このように、制御部27は、
図3に示す仮想オブジェクト取得部41、特徴抽出部42、座標変換情報生成部43、反映部44に相当する機能を含む。
【0134】
図22は、第2実施形態においてサーバ装置2の制御部27が実行する処理手順を示すフローチャートの一例である。
【0135】
まず、制御部27は、通信部28を介し、撮像画像Im及び位置姿勢変化量Apなどを含むアップロード信号S1を表示装置1Aから受信する(ステップS61)。この場合、制御部27は、アップロード信号S1に基づきセンサデータ記憶部20に記憶させるデータを更新する。そして、制御部27は、仮想オブジェクトの表示タイミングか否か判定する(ステップS62)。そして、制御部27は、表示タイミングではない場合(ステップS62;No)、引き続きステップS61においてアップロード信号S1を表示装置1Aから受信する。
【0136】
一方、制御部27は、表示タイミングである場合(ステップS62;Yes)、ステップS61で受信した最新のアップロード信号S1等に基づき、キャリブレーション処理を実行する。この場合、制御部27は、
図16に示されるフローチャートを実行する。そして、制御部27は、キャリブレーション処理で得られた座標変換情報Icに基づき、仮想オブジェクトを表示装置1Aが表示するための配信信号S2を生成する(ステップS64)。そして、制御部27は、生成した配信信号S2を、通信部28により表示装置1Aに送信する(ステップS65)。その後、配信信号S2を受信した表示装置1Aは、配信信号S2に基づき光源ユニット10を制御することで、仮想オブジェクトを表示する。
【0137】
以上のように、第2実施形態によっても、表示システムは、表示装置1Aによる仮想オブジェクトの表示に必要な座標変換情報Icを的確に算出し、仮想オブジェクトを好適にユーザに視認させることができる。
【0138】
なお、第2実施形態において、キャリブレーション処理等をサーバ装置2が行う代わりに、表示装置1Aが行ってもよい。この場合、表示装置1Aは、サーバ装置2からキャリブレーション処理に必要な情報を適宜受信することで、
図16に示すフローチャートの処理を実行する。この態様であっても、表示システムは、表示装置1Aのユーザに好適に仮想オブジェクトを視認させることができる。
【0139】
<第3実施形態>
図23は、第3実施形態における情報処理装置1Xの概略構成を示す。
図23に示すように、情報処理装置1Xは、主に、特徴点情報取得手段42Xと、フィールド推定情報取得手段53Xaと、ラベル修正手段53Xbとを有する。情報処理装置1Xは、例えば、第1実施形態における表示装置1又は表示装置1の制御部17若しくは第2実施形態におけるサーバ装置2の制御部27により実現される。なお、情報処理装置1Xは、複数の装置から構成されてもよい。
【0140】
特徴点情報取得手段42Xは、対象となるフィールドの少なくとも一部を含む画像に基づき決定された、フィールドの複数の特徴点の候補位置及び候補ラベルを示す特徴点情報を取得する。特徴点情報取得手段42Xは、特徴点情報取得手段42X以外の処理ブロック(情報処理装置1X以外の装置を含む)が生成した特徴点情報を受信してもよく、特徴点情報取得手段42Xが特徴点情報を生成してもよい。後者の場合、特徴点情報取得手段42Xは、例えば、第1実施形態又は第2実施形態における特徴抽出部42とすることができる。
【0141】
フィールド推定情報取得手段53Xaは、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における複数の特徴点の位置及びラベルの推定結果を示すフィールド推定情報を取得する。フィールド推定情報は、例えば、第1実施形態又は第2実施形態における「第1フィールド推定情報」とすることができる。
【0142】
ラベル修正手段53Xbは、特徴点情報と、フィールド推定情報とに基づき、候補ラベルを修正する。フィールド推定情報取得手段53Xa及びラベル修正手段53Xbは、例えば、第1実施形態又は第2実施形態におけるラベル修正部53とすることができる。
【0143】
図24は、第3実施形態におけるフローチャートの一例である。特徴点情報取得手段42Xは、対象となるフィールドの少なくとも一部を含む画像に基づき決定された、フィールドの複数の特徴点の候補位置及び候補ラベルを示す特徴点情報を取得する(ステップS71)。フィールド推定情報取得手段53Xaは、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における複数の特徴点の位置及びラベルの推定結果を示すフィールド推定情報を取得する(ステップS72)。ラベル修正手段53Xbは、特徴点情報と、フィールド推定情報とに基づき、候補ラベルを修正する(ステップS73)。
【0144】
第3実施形態によれば、情報処理装置1Xは、特徴点情報を好適に修正することができ、特徴点情報を利用する種々の処理の精度を向上させることができる。
【0145】
<第4実施形態>
図25は、第4実施形態における情報処理装置1Yの概略構成を示す。
図25に示すように、情報処理装置1Yは、主に、特徴点情報取得手段42Yと、候補フィールド生成手段511Yと、推定フィールド決定手段512Yとを有する。情報処理装置1Yは、例えば、第1実施形態における表示装置1又は表示装置1の制御部17若しくは第2実施形態におけるサーバ装置2の制御部27により実現される。なお、情報処理装置1Yは、複数の装置から構成されてもよい。
【0146】
特徴点情報取得手段42Yは、対象となるフィールドの少なくとも一部を含む画像に基づき決定された、フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得する。特徴点情報取得手段42Yは、特徴点情報取得手段42Y以外の処理ブロック(情報処理装置1Y以外の装置を含む)が生成した特徴点情報を受信してもよく、特徴点情報取得手段42Yが特徴点情報を生成してもよい。後者の場合、特徴点情報取得手段42Yは、例えば、第1実施形態又は第2実施形態における特徴抽出部42とすることができる。
【0147】
候補フィールド生成手段511Yは、少なくとも2つの組と、フィールドの構造に関する構造データとに基づき、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系におけるフィールドの候補を表す候補フィールドを生成する。候補フィールド生成手段511Yは、例えば、第1実施形態又は第2実施形態における候補フィールド生成部511とすることができる。
【0148】
推定フィールド決定手段512Yは、生成された複数の候補フィールドに基づき、第1座標系において推定されたフィールドを表す推定フィールドを決定する。推定フィールド決定手段512Yは、例えば、第1実施形態又は第2実施形態における推定フィールド決定部512とすることができる。
【0149】
図26は、第4実施形態におけるフローチャートの一例である。特徴点情報取得手段42Yは、対象となるフィールドの少なくとも一部を含む画像に基づき決定された、フィールドの特徴点の候補位置及び候補ラベルの組を示す特徴点情報を取得する(ステップS81)。候補フィールド生成手段511Yは、少なくとも2つの組と、フィールドの構造に関する構造データとに基づき、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系におけるフィールドの候補を表す候補フィールドを生成する(ステップS82)。推定フィールド決定手段512Yは、生成された複数の候補フィールドに基づき、第1座標系において推定されたフィールドを表す推定フィールドを決定する(ステップS83)。
【0150】
第4実施形態によれば、情報処理装置1Yは、特徴点情報が示す候補位置及び候補ラベルの組に誤りが存在する場合であっても、第1座標系におけるフィールドを高精度に推定することができる。
【0151】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0152】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0153】
1、1A 表示装置
2 サーバ装置
3 学習装置
4 情報処理装置
10 光源ユニット
11 光学素子
12 通信部
13 入力部
14 記憶部
15 カメラ
16 位置姿勢検出センサ
20 センサデータ記憶部
21 パラメータ記憶部
22 構造データ記憶部