(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理装置、制御方法及びプログラム
(51)【国際特許分類】
G06T 7/80 20170101AFI20241008BHJP
【FI】
G06T7/80
(21)【出願番号】P 2023532892
(86)(22)【出願日】2021-07-05
(86)【国際出願番号】 JP2021025338
(87)【国際公開番号】W WO2023281593
(87)【国際公開日】2023-01-12
【審査請求日】2023-12-22
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】坂井 亮介
(72)【発明者】
【氏名】馬場崎 康敬
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2020-42447(JP,A)
【文献】特開2012-137933(JP,A)
【文献】特開2019-134428(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得する特徴点情報取得手段と、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成する候補フィールド生成手段と、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する整合性判定手段と、
を有する情報処理装置。
【請求項2】
前記非整合候補フィールド以外の前記複数の候補フィールドである整合候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する推定フィールド決定手段をさらに有する、請求項1に記載の情報処理装置。
【請求項3】
前記推定フィールド決定手段は、前記整合候補フィールドを統合した前記推定フィールドを生成する、又は、1つの前記整合候補フィールドを前記推定フィールドとして選択する、請求項2に記載の情報処理装置。
【請求項4】
前記推定フィールド決定手段は、前記整合性判定手段による判定結果に基づき、前記推定フィールドを決定する要否判定を行う、請求項2または3に記載の情報処理装置。
【請求項5】
前記推定フィールド決定手段は、前記複数の候補フィールドに対する前記非整合候補フィールド又は前記整合候補フィールドの割合に基づき、前記要否判定を行う、請求項4に記載の情報処理装置。
【請求項6】
前記推定フィールド決定手段は、前記整合性判定手段による判定結果に基づき、前記推定フィールドに関する処理の終了判定を行う、請求項2~5のいずれか一項に記載の情報処理装置。
【請求項7】
前記フィールドの少なくとも一部を含む第1画像を変換した1又は複数の第2画像を生成する画像変換手段をさらに有し、
前記複数の画像は、前記第1画像と前記第2画像とを含み、
前記整合性判定手段は、前記第1画像及び前記第2画像の前記複数の特徴点情報に対応する前記複数の候補フィールドに基づき、前記非整合候補フィールドを判定する、請求項1~6のいずれか一項に記載の情報処理装置。
【請求項8】
前記第2画像は、前記第1画像を反転した画像又はクロップした画像の少なくとも一方を含む、請求項7に記載の情報処理装置。
【請求項9】
コンピュータが、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する、
制御方法。
【請求項10】
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する処理をコンピュータに実行させるプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実(AR:Augmented Reality)における空間把握に関する処理を行う情報処理装置、制御方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
拡張現実を提供する装置において、カメラで撮像した画像に基づき、ユーザが視認する風景に重ねて表示する画像(所謂AR画像)の表示位置を決定する技術が存在する。例えば、特許文献1には、スポーツ観戦におけるARを実現するため、フィールドの各特徴点の位置を推定し、その推定結果に基づきARのキャリブレーションを行う技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のように対象のフィールドの特徴点を抽出してキャリブレーションなどの処理を行う場合において、対象のフィールドが規則的な特徴点を有する場合には、特徴点の抽出にエラーが生じやすくなり、その結果キャリブレーション処理の精度が低下する。対象のフィールドの一部の特徴点しか表れていない画像を用いた場合にはそのようなエラーが生じやすくなる。
【0005】
本開示は、上述した課題を鑑み、対象となるフィールドの推定の誤りを好適に抑制することが可能な情報処理装置、制御方法及び記憶媒体を提供することを主な目的の1つとする。
【課題を解決するための手段】
【0006】
情報処理装置の一の態様は、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得する特徴点情報取得手段と、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成する候補フィールド生成手段と、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する整合性判定手段と、
を有する情報処理装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する、
制御方法である。
【0008】
プログラムの一の態様は、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0009】
本開示の1つの効果の例として、対象となるフィールドの推定の誤りを好適に抑制することができる。
【図面の簡単な説明】
【0010】
【
図1】第1実施形態に係る表示装置の概略構成図である。
【
図3】制御部の機能的な構成を示すブロック図である。
【
図4】(A)対象フィールドがテニスコートである場合の構造特徴点の第1のラベル定義例である。(B)対象フィールドがテニスコートである場合の構造特徴点の第2のラベル定義例である。
【
図5】(A)対象フィールドがプールである場合の構造特徴点の第1のラベル定義例である。(B)対象フィールドがプールである場合の構造特徴点の第2のラベル定義例である。
【
図6】(A)対象フィールドの一部を撮影した撮像画像を示す。(B)撮像画像を反転させることで生成された変換撮像画像を示す。
【
図7】フィールド推定部の処理の概要を表したフィールド推定部の機能ブロック図である。
【
図8】デバイス座標系とフィールド座標系との関係を示した図である。
【
図9】1つの画像の特徴点情報に基づく候補フィールドをデバイス座標系において表した図である。
【
図10】生成した6個の候補フィールドのクラスタリングの結果をデバイス座標系において示した図である。
【
図11】(A)特徴抽出処理が適切に行われた撮像画像上に、特徴点情報に基づく候補フィールドを重畳した図である。(B)特徴抽出処理にエラーが生じた撮像画像上に、特徴点情報に基づく候補フィールドを重畳した図である。
【
図12】整合候補フィールドから推定フィールドを決定する処理の概要を示す図である。
【
図13】第1実施形態において制御部が実行する仮想オブジェクトの表示処理に関する処理概要を示すフローチャートの一例である。
【
図14】キャリブレーション処理の詳細な処理手順を示すフローチャートの一例である。
【
図15】変形例におけるフィールド推定部のブロック構成図である。
【
図16】第2実施形態における表示システムの構成を示す。
【
図17】第2実施形態におけるサーバ装置のブロック図である。
【
図18】第2実施形態においてサーバ装置の制御部が実行する処理手順を示すフローチャートの一例である。
【
図19】第3実施形態における情報処理装置の概略構成を示す。
【
図20】第3実施形態におけるフローチャートの一例である。
【発明を実施するための形態】
【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】
その他、構造データは、フィールド座標系において原点とする構造特徴点を指定する情報及びフィールド座標系の3軸の各方向をそれぞれ指定する情報などが含まれてもよい。
【0031】
なお、
図1に示す表示装置1の構成は一例であり、この構成に対して種々の変更を行ってもよい。例えば、表示装置1は、制御部17の制御に基づき、音声を出力するスピーカをさらに備えてもよい。また、表示装置1は、ユーザの視線の位置に応じて仮想オブジェクトの表示有無や仮想オブジェクトの表示位置を変更するための視線検出用カメラを備えてもよい。さらに別の例では、記憶部14は、センサデータ記憶部20を有しなくともよい。この場合、制御部17は、カメラ15から即時に取得した撮像画像Imと、位置姿勢検出センサ16の検出信号に基づき算出した位置姿勢変化量Apとを用いて、キャリブレーション処理を行う。
【0032】
さらに別の例では、表示装置1は、位置姿勢検出センサ16等による表示装置1の位置を検出しなくともよい。一般に、スポーツ観戦や劇等の観賞中では、ユーザが移動することは稀であり、かつ、表示装置1の姿勢変化に比べて表示装置1の位置の変化に対する仮想オブジェクトの表示への影響は小さい。以上を勘案し、位置姿勢検出センサ16は、表示装置1の姿勢を検出するセンサから構成され、制御部17は、デバイス座標系の設定時からの表示装置1の姿勢の変化量のみを、位置姿勢変化量Apとして算出してもよい。
【0033】
(2)
機能ブロック
図3は、制御部17の機能的な構成を示すブロック図である。
図3に示すように、制御部17は、機能的には、画像変換部40と、仮想オブジェクト取得部41と、特徴抽出部42と、座標変換情報生成部43と、反映部44と、光源制御部45と、を有する。なお、
図3では、データの授受が行われるブロック同士を実線により結んでいるが、データの授受が行われるブロックの組合せは
図3に限定されない。後述する他の機能ブロックの図においても同様である。
【0034】
画像変換部40は、センサデータ記憶部20から特徴抽出部42が取得する撮像画像Imに対して所定の画像変換を行った画像(「変換撮像画像Ima」とも呼ぶ。)を生成する。この場合、画像変換部40は、任意のデータオーグメンテーションの手法により変換撮像画像Imaを生成してもよい。例えば、画像変換部40は、撮像画像Imを反転させた画像を変換撮像画像Imaとして生成してもよく、撮像画像Imに対してクロップした(切り取りを行った)画像を変換撮像画像Imaとして生成してもよい。この場合、画像変換部40は、クロップする大きさや箇所をランダム又は規則的に変更することで、複数のクロップ画像を変換撮像画像Imaとして生成してもよい。画像変換部40は、1つの撮像画像Imに対して1個以上の変換撮像画像Imaを生成する。
【0035】
仮想オブジェクト取得部41は、仮想オブジェクトとして風景に重畳表示させる元となる仮想オブジェクトとその表示位置とを指定する情報(「指定表示情報Id」とも呼ぶ。)を取得する。この仮想オブジェクトは、2次元の物体描画のための情報(2次元描画情報)であってもよく、3次元の物体描画のための情報(3次元描画情報)であってもよい。例えば、興行者が管理するサーバ装置と表示装置1が通信可能である場合には、仮想オブジェクト取得部41は、サーバ装置から所定のタイミングによりプッシュ型配信又はプル型配信される配信情報を、指定表示情報Idとして取得する。この場合、指定表示情報Idには、仮想オブジェクトの他、表示位置を指定する情報(例えばフィールド座標系での座標値を示す情報)が含まれている。他の例では、仮想オブジェクトと表示位置とその表示条件との組み合わせを示す情報が記憶部14に予め記憶されてもよい。この場合、仮想オブジェクト取得部41は、記憶された上述の表示条件が満たされたと判断したときに、満たされた表示条件に対応する仮想オブジェクトと表示位置の組み合わせを指定表示情報Idとして取得する。
【0036】
特徴抽出部42は、センサデータ記憶部20から取得する撮像画像Im(例えば最新の撮像画像Im)及びその変換画像である変換撮像画像Imaから、特徴点情報「IF」を画像ごとに生成する。この場合、特徴抽出部42は、パラメータ記憶部21から抽出したパラメータに基づき構成した特徴抽出器に上述の画像を入力することで特徴抽出器が出力する情報から入力した入力画像に対する特徴点情報IFを生成する。例えば、特徴抽出器は、構造特徴点の分類を示すラベルごとに、入力画像内の構造特徴点の位置(例えば座標値)を出力し、特徴抽出部42は、上述の入力画像内の構造特徴点の位置を構造特徴点の候補位置(「特徴点候補位置」とも呼ぶ。)とし、当該位置に対応するラベルをラベルの候補(「候補ラベル」とも呼ぶ。)とする複数の組み合わせを示す特徴点情報IFを生成する。なお、特徴抽出器が構造特徴点の座標値として画像サイズに依存しないように正規化された値を出力する場合には、特徴抽出部42は、当該座標値に入力画像の画像サイズを乗じることで、特徴点候補位置を算出する。
【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において説明した画像変換部40、仮想オブジェクト取得部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)
画像変換の例
図6(A)は、対象フィールドの一部を撮影した撮像画像Imを示す。
図6(B)は、
図6(A)の撮像画像Imを反転させることで生成された変換撮像画像Imaを示す。ここでは、対象フィールドは、格子状のフィールドであるものとし、格子の各頂点を構造特徴点として有するものとする。なお、
図6(A)及び
図6(B)では、12個の構造特徴点に対してラベル「0」~「11」が割り当てられており、説明便宜上、各構造特徴点に対するラベルの番号を図示している。また、
図6(A)では、撮像画像Imの撮影範囲外となる対象フィールドを表す仮想線を破線により示し、かつ、撮影範囲外の構造特徴点に対するラベルについても明示している。
【0047】
図6(A)では、対象フィールドの一部が撮影範囲外となっており、対象フィールドの右側の構造特徴点(ラベル9~11の構造特徴点)が撮像画像Im上において表れていない。一方、撮像画像Imを左右反転させた
図6(B)に示す変換撮像画像Imaは、左右反転により、撮像画像Imでは表れていなかった対象フィールドの右側の構造特徴点(ここではラベル9~11の構造特徴点)が表れた画像となっている。なお、左側の構造特徴点(ここではラベル1~3の構造特徴点)は、変換撮像画像Ima上に表れていない。
【0048】
以上のように、画像変換部40は、撮像画像Imの反転画像を変換撮像画像Imaとして生成することで、撮像画像Imとは別に対象フィールドを表した画像を好適に生成することができる。撮像画像Imのクロップ画像を変換撮像画像Imaとして生成する場合も同様である。このように、画像変換部40は、対象フィールドに対する複数の特徴抽出結果が得られるようにデータオーグメンテーションを行う。
【0049】
(4)
フィールド推定部の処理
(4-1)
概要
図7は、フィールド推定部46の処理の概要を表したフィールド推定部46の機能ブロック図である。
図7に示すように、フィールド推定部46は、機能的には、候補フィールド生成部51と、整合性判定部52と、推定フィールド決定部53とを有する。なお、
図7では明示していないが、フィールド推定部46の各構成要素は、センサデータ記憶部20に記憶された位置姿勢変化量Ap及びパラメータ記憶部21に記憶されたカメラのパラメータ(内部パラメータ、撮像画像Imのサイズを含む)を参照して各処理を行うものとする。
【0050】
候補フィールド生成部51は、画像ごとの特徴点情報IFに基づき、デバイス座標系において対象フィールドを表す候補(「候補フィールド」とも呼ぶ。)を生成する処理を実行する。候補フィールド生成部51は、候補フィールドとして、例えば、ラベルごとのデバイス座標系における構造特徴点の推定位置と、デバイス座標系における対象フィールドの推定面とを特定する。候補フィールド生成部51は、撮像画像Im及び変換撮像画像Imaの合計がk(kは2以上の整数)個存在する場合には、n個(nはk以下の整数)の候補フィールドを生成する。なお、対象フィールドが全く含まれていない変換撮像画像Imaについては、候補フィールドを生成できないため、撮像画像Im及び変換撮像画像Imaの合計数よりも候補フィールドの生成数が少なくなる場合がある。同様に、ある画像から候補フィールドを生成する場合に、最小2乗を行う評価関数の値が所定の閾値より大きい場合、候補フィールド生成部51は、生成される候補フィールドの信頼性が低いとみなし、当該画像に対する候補フィールドを生成しない。この場合においても、撮像画像Im及び変換撮像画像Imaの合計数よりも候補フィールドの生成数が少なくなる。候補フィールドの生成方法の具体例については後述する。
【0051】
整合性判定部52は、n個の候補フィールドに基づき、他の候補フィールドと整合性を有しない候補フィールド(「非整合候補フィールド」とも呼ぶ。)を判定する。そして、整合性判定部52は、非整合候補フィールド以外の候補フィールド(「整合候補フィールド」とも呼ぶ。)を推定フィールド決定部53に供給する。
【0052】
推定フィールド決定部53は、整合候補フィールドに基づき、推定フィールドを決定する。この場合、推定フィールド決定部53は、例えば、整合候補フィールドを統合することで、推定フィールドを生成する。言い換えると、推定フィールド決定部53は、デバイス座標系での対象フィールドの各ラベルの構造特徴点の推定位置(及び対象フィールドの推定面)を決定する。
【0053】
また、推定フィールド決定部53は、整合性判定部52による判定結果に基づき、推定フィールドを生成する要否判定を行ってもよい。この場合、推定フィールド決定部53は、推定フィールドを決定する条件(「推定フィールド決定条件」とも呼ぶ。)を設け、当該推定フィールド決定条件が満たされる場合に限り、推定フィールドを生成する。
【0054】
この場合、推定フィールド決定部53は、推定フィールド決定条件を、全候補フィールドに対する非整合候補フィールドの割合に基づく条件(言い換えると整合候補フィールドの割合に基づく条件)に設定する。例えば、推定フィールド決定部53は、全体の候補フィールドに対する非整合候補フィールドの割合が所定割合(例えば3割)未満である場合に、推定フィールド決定条件が満たされると判定し、整合候補フィールドに基づき推定フィールドを生成する。一方、推定フィールド決定部53は、全体の候補フィールドに対する非整合候補フィールドの割合が所定割合以上である場合、推定フィールド決定条件が満たされないと判定し、推定フィールドを生成しない。この場合、フィールド推定部46は、新たに生成された撮像画像Im及び当該撮像画像Imから生成される変換撮像画像Imaの特徴点情報IFに基づき、候補フィールドの再生成を行う。上述の所定割合は、例えば予め記憶部14に記憶された適合値に設定される。このような判定を行うことで、推定フィールド決定部53は、信頼性が低い候補フィールドに基づき推定フィールドを生成するのを好適に抑制することができる。なお、推定フィールド決定条件は、上述したものに限定されない。例えば、推定フィールド決定部53は、n個の候補フィールドに対するクラスタリングにより生成された最も数が多い第1クラスタの候補フィールド数と、全体に対する第1クラスタ及び第2クラスタの候補フィールドの合計数の割合とに基づき、推定フィールドを生成する要否判定を行ってもよい。この具体例については、
図10を参照して後述する。
【0055】
次に、フィールド推定部46の処理による技術的効果について補足説明する。
【0056】
図4(A)及び
図4(B)に示すテニスコートや
図5(A)及び
図5(B)に示すプールなどのように規則的な(詳しくは並進対称性を有する)構造特徴点を有する対象フィールドでは、構造特徴点が隣接する構造特徴点として抽出され、結果として全ての構造特徴点が規則的にずれて抽出されてしまう場合がある。このような特徴抽出結果のエラーは、画像に対象フィールドの一部のみが写されている場合にほぼ矛盾なく生じるエラー(無矛盾エラー)であり、一般的な特徴抽出結果のエラー検出手法や修正手法では対応できないものとなる。このように、対象フィールドの一部が隠れた画像を用いる場合には、特徴抽出精度が低下し、結果としてフィールド推定精度も低くなる。
【0057】
以上を勘案し、フィールド推定部46は、データオーグメンテーションにより生成された画像を含むk枚の画像に基づく候補フィールドに基づき、非整合候補フィールド及び整合候補フィールドを判定し、整合候補フィールドにより推定フィールドを決定する。これにより、フィールド推定部46は、規則的に並ぶ構造特徴点を有する対象フィールドの推定において撮像されない死角部分の存在に起因した推定精度低下の課題を好適に解決し、デバイス座標系での対象フィールドを的確に推定することができる。
【0058】
また、ニューラルネットワークに基づく特徴抽出器は、難易度が高い特徴点抽出を行う場合には、入力画像の細かい変更でも出力する特徴抽出結果が異なる場合がある。そして、特徴抽出部42において用いられる特徴抽出器は、主にニューラルネットワークに基づく推論器が想定されている。よって、特徴抽出部42において用いられる特徴抽出器は、元画像(即ち撮像画像Im)を入力した場合と元画像を反転又はクロップした画像(即ち変換撮像画像Ima)を入力した場合とで、出力する特徴抽出結果にばらつきが生じる。このばらつきは、正確な特徴抽出が難しい場合ほど生じやすい。よって、フィールド推定部46は、撮像画像Im及び変換撮像画像Imaから夫々生成した特徴点情報IFに基づき、複数の候補フィールドを好適に生成することができる。
【0059】
(4-2)候補フィールドの生成
次に、候補フィールド生成部51による候補フィールドの生成処理について具体的に説明する。
【0060】
図8は、デバイス座標系とフィールド座標系との関係を示した図である。
図8に示されるように、フィールド座標系は、構造データにおいて採用される座標系であり、対象フィールドを基準とする座標系となっている。ここでは、対象フィールドはテニスコートとなっており、フィールド座標系は、テニスコートの短手方向及び長手方向及びこれらの垂直方向に各軸が設けられている。以後では、デバイス座標系の3軸をx軸、y軸、z軸とし、フィールド座標系の3軸をx^軸、y^軸、z^軸とする。一方、デバイス座標系は、表示装置1が起動時等において設定した座標系であり、デバイス座標系におけるカメラ15の撮影位置(撮影方向を含む)は、位置姿勢変化量Apに基づき特定される。そして、候補フィールド生成部51は、フィールド座標系が採用される構造データと、特徴点情報IFとに基づき、デバイス座標系における対象フィールドを表す候補フィールドを生成する。
【0061】
なお、候補フィールド生成部51は、位置姿勢検出センサ16に含まれる加速度センサの出力信号に基づき、デバイス座標系における鉛直方向を認識し、認識した鉛直方向に基づき、デバイス座標系及びフィールド座標系の高さ方向の軸(y軸とy^軸)が平行になるようにデバイス座標系を調整してもよい。この場合、候補フィールド生成部51は、デバイス座標系及びフィールド座標系の1軸を揃えることができるため、後述するデバイス座標系での特徴点候補位置の特定及び候補フィールドの生成における計算コストの削減等を実現することが可能となる。
【0062】
図9は、1つの画像の特徴点情報IFに基づく候補フィールドをデバイス座標系において表した図である。ここでは、対象フィールドは、
図6(A)の撮像画像Imにおいて撮像対象となった格子状フィールドであり、12個の構造特徴点のうち、特徴点候補位置「P0」~「P8」に対応する計9個の構造特徴点が特徴抽出部42により抽出されている。そして、候補フィールド生成部51は、特徴点候補位置P0~P8に基づき、候補フィールド「C1」を生成している。
【0063】
この場合、候補フィールド生成部51は、位置姿勢変化量Apに基づき特定されるデバイス座標系での撮影位置(撮影向きを含む)とカメラ15のパラメータ(内部パラメータを含む)とに基づき、デバイス座標系に投影された特徴点候補位置P0~P8(
図9に示される破線)を特定する。そして、候補フィールド生成部51は、構造データを参照することで、対象フィールドの構造特徴点間の距離等を表す相対位置関係(対象フィールドのモデル)を特定し、特定した構造特徴点間の位置関係が保たれるように、デバイス座標系での特徴点候補位置P0~P8及び候補フィールドを決定する。この場合、例えば、候補フィールド生成部51は、最小二乗法などにより、対象フィールドのモデルの構造特徴点と破線により示されるデバイス座標系に投影された特徴点候補位置とのラベルごとの誤差(2乗誤差)の和が最小となるように、対象フィールドのモデルの構造特徴点の位置を決定する。上記の例は、鉛直方向と直交した水平面上に特徴点があることを仮定したカメラの外部パラメータ(撮影位置や姿勢)の推定手法の一例である。なお、この例に限らず、候補フィールド生成部51は、例えば、同一平面上に特徴点がある仮定も必要なく、また内部パラメータや画像上の特徴点の位置等の最適化も同時に行う任意のカメラキャリブレーション手法(例えば、PnP法)を実行してもよい。
【0064】
(4-3)非整合候補フィールドの判定
次に、複数の候補フィールドに基づき非整合候補フィールドを判定する方法について説明する。例えば、フィールド推定部46は、候補フィールドのクラスタリングを行い、候補フィールドが属する数が最も大きい主クラスタに属する候補フィールドから推定フィールドを決定する。
【0065】
図10は、生成した6個の候補フィールド「C1」~「C6」のクラスタリングの結果をデバイス座標系において示した図である。
【0066】
この場合、フィールド推定部46は、任意のクラスタリング手法を用いることで、候補フィールドを第1クラスタCL1と、第2クラスタCL2と、第3クラスタCL3とに分類している。この場合、フィールド推定部46は、例えば、各候補フィールドに対してデバイス座標系での3次元の重心座標(例えば構造特徴点の平均座標)及びヨー・ピッチ・ロールのオイラー角(鉛直方向の情報によりデバイス座標系とフィールド座標系で揃えている場合にはxz平面上での向きを表す角度)を表すベクトルに基づき、上述のクラスタリングを実行する。なお、このようなクラスタリング手法は、単リンク法、完全リンク法、群平均法、Ward法、セントロイド法、重み付き法、メジアン法などが存在するがこれに限られない。
【0067】
ここでは、第1クラスタCL1は候補フィールドが属する数が最も多いクラスタ(「主クラスタ」とも呼ぶ。)であり、最も多くの4つの候補フィールドC1、C3、C4、C6が属している。一方、第2クラスタCL2は候補フィールドC2からなり、第3クラスタCL3は、候補フィールドC5からなる。
【0068】
この場合、フィールド推定部46は、主クラスタである第1クラスタCL1に属する候補フィールドを、整合候補フィールドであると判定し、主クラスタ以外の第2クラスタCL2、第3クラスタCL3に属する候補フィールドを非整合候補フィールドであると判定する。
【0069】
なお、上述のクラスタリングに代えて、フィールド推定部46は、閾値処理に基づき、整合候補フィールド及び非整合候補フィールドを判定してもよい。例えば、フィールド推定部46は、上述のベクトルに基づく各候補フィールド間の距離を算出し、互いの距離が所定閾値未満となるクラスタを生成する。そして、フィールド推定部46は、生成したクラスタのうち最も候補フィールド数が多い主クラスタに属する候補フィールドを、整合候補フィールドと判定し、主クラスタに属しない候補フィールドを、非整合候補フィールドと判定する。
【0070】
ここで、推定フィールドを生成する要否判定(及び推定フィールドに関する処理の終了判定)の具体例について、引き続き
図10を参照して説明する。ここでは、n個の候補フィールドに対するクラスタリングにより生成された第1クラスタの候補フィールド数と、第1クラスタ及び第2クラスタの候補フィールドの合計数の全体に対する割合とに基づき、推定フィールドを生成する要否判定(及び推定フィールドに関する処理の終了判定)を行う例について説明する。
【0071】
第1ステップとして、フィールド推定部46は、最も数が多い第1クラスタCL1に属する候補フィールド数「Nc1」が所定の閾値「Ncth1」以上であるか否か判定する。
図10の例では、候補フィールド数Nc1は、「4」となる。そして、候補フィールド数Nc1が閾値Ncth1以上の場合、フィールド推定部46は、以下に説明する第2ステップに処理を進める。一方、候補フィールド数Nc1が閾値Ncth1未満の場合、フィールド推定部46は、推定フィールド決定条件が満たされないと判定し、新たに生成された撮像画像Im及び当該撮像画像Imから生成される変換撮像画像Imaの特徴点情報IFに基づき、候補フィールドの再生成を行う。
【0072】
第2ステップとして、フィールド推定部46は、最も数が多い第1クラスタCL1及び2番目に数が多い第2クラスタCL2の候補フィールドの合計数(即ちN2=Nc1+Nc2)に対する最も数が多い第1クラスタCL1の候補フィールド数Nc1の割合「R12」が所定の閾値「Rth12」以上であるか否かを判定する。
図10の例では、割合R12は、「0.8」(=4/(4+1))となる。そして、割合R12が閾値Rth12以上の場合、フィールド推定部46は、推定フィールド決定条件が満たされたと判定し、整合候補フィールドに基づき推定フィールドを生成する。そして、フィールド推定部46は、対象フィールドの推定に関する処理を終了すべきと判定する。一方、割合R12が閾値Rth12未満の場合、フィールド推定部46は、推定フィールド決定条件が満たされないと判定し、新たに生成された撮像画像Im及び当該撮像画像Imから生成される変換撮像画像Imaの特徴点情報IFに基づき、候補フィールドの再生成を行う。なお、このように第2ステップを設けることで、整合性判定時に複数の無矛盾な間違い候補がある場合において、枚数分布にピークを持たない間違いクラスタが多く発生することによる終了判定の不要な条件難化を好適に防ぐことができる。
【0073】
以上のように、フィールド推定部46は、候補フィールド生成部51が生成するn個の候補フィールドの整合性の判定結果(ここでは候補フィールドのクラスタリングの結果)に基づき、推定フィールドを生成する要否判定及び推定フィールドに関する処理の終了判定を好適に行うことができる。
【0074】
次に、非整合候補フィールドについて、
図11(A)及び
図11(B)を用いて補足説明する。
【0075】
図11(A)は、特徴抽出処理が適切に行われた撮像画像Im上に、特徴点情報IFに基づく候補フィールドを重畳した図である。
図11(B)は、特徴抽出処理にエラーが生じた撮像画像Im上に、特徴点情報IFに基づく候補フィールドを重畳した図である。
図11(A)及び
図11(B)では、説明便宜上、各構造特徴点のラベルの正解(X)と、特徴抽出処理及び候補フィールドの生成処理に基づく認識結果(Y)との組を「X→Y」により示している。さらに
図11(A)及び
図11(B)では、生成される候補フィールドを仮想的に表す補助線を破線により示している。
【0076】
図11(A)の例では、特徴抽出処理において、ラベル0~11の構造特徴点のうち撮像画像Imの撮影範囲内である0~8の構造特徴点が正しく抽出されたことにより、正しい対象フィールドを表す候補フィールドが生成されている。その結果、
図11(A)の例では、撮像画像Imの撮影対象外であったラベル9~11の構造特徴点についても正しく認識されている。
【0077】
一方、
図11(B)の例では、特徴抽出処理において、ラベル0~11の構造特徴点のうち撮像画像Imの撮影範囲内である0~8の構造特徴点が対象フィールドの長手方向に格子1個分ずれて抽出され、その結果、実際の対象フィールドから格子1個分ずれた候補フィールドが生成されている。
【0078】
このように、規則的な(詳しくは並進対称性を有する)構造特徴点を有する対象フィールドでは、構造特徴点が隣接する構造特徴点として抽出され、結果として全ての構造特徴点が規則的にずれて認識されてしまう場合がある。このような場合においても、フィールド推定部46は、撮像画像Im及びデータオーグメンテーションにより生成した変換撮像画像Imaに基づく複数の候補フィールドから推定フィールドを決定する処理を行う。また、好適には、フィールド推定部46は、全体の候補フィールドに対する整合候補フィールドの割合が所定割合未満である場合、推定フィールドを生成しない。これにより、フィールド推定部46は、精度が低い推定フィールドの生成を好適に抑制することができる。
【0079】
(4-4)推定フィールドの決定
次に、整合候補フィールドから推定フィールドを決定する具体例について説明する。
【0080】
図12は、整合候補フィールドから推定フィールドを決定する処理の概要を示す図である。
図12では、xz座標系において、整合候補フィールドの構造特徴点を丸印により示し、決定される推定フィールドを破線により仮想的に示している。ここでは、対象フィールドが有するラベル0~11の構造特徴点に対し、4個の整合候補フィールドの構造特徴点の点群「PC0」~「PC11」が形成されている。また、対象フィールドは、短手方向に「L1」、長手方向に「L2」の長さを有する矩形領域であるものとする。対象フィールドの長さL1、L2は、構造データに記録されている。
【0081】
この場合、推定フィールド決定部53は、第1の例では、推定フィールドを短手方向にL1かつ長手方向にL2の矩形領域とみなし、かつ、当該矩形領域の対角(例えばラベル0と11の構造特徴点)が整合候補フィールドの対角の構造特徴点の点群(例えば点群PC0とPC11)により定まるように、推定フィールドを決定する。この場合、推定フィールド決定部53は、例えば、最小二乗法を用い、上述の矩形領域の頂点ごとに点群との誤差(2乗誤差)を算出し、その誤差の和が最小となるように推定フィールドを決定する。
【0082】
また、推定フィールド決定部53は、対象フィールドが矩形領域でない場合においても、構造データに基づき特定される対象フィールドのモデル(例えば、構造特徴点間の距離などの位置関係)を用い、ラベルごとにモデルの構造特徴点と対応する点群との誤差を最小化するように、推定フィールドを決定する。なお、推定フィールド決定部53は、構造データにより特定される構造特徴点間の距離などの位置関係を制約条件とし、ラベルごとの推定フィールドの構造特徴点と点群との誤差の和を評価関数として、当該評価関数を最小化するように推定フィールドの構造特徴点を最適化により決定してもよい。このとき、推定フィールド決定部53は、任意の最適化ソルバーを用いて上述の最適化の解を求めてもよい。
【0083】
なお、推定フィールド決定部53は、整合候補フィールドを統合して推定フィールドを生成する代わりに、所定の規則又はランダムに決定した整合候補フィールドを、推定フィールドとして選択してもよい。この場合、例えば、推定フィールド決定部53は、整合候補フィールドの各々に対する重心のxyz座標値及び姿勢角を表すベクトルの平均ベクトルを算出し、当該平均ベクトルに最も近い上述のベクトルに対応する整合候補フィールドを、推定フィールドとして選択してもよい。
【0084】
(5)
処理フロー
図13は、第1実施形態において制御部17が実行する仮想オブジェクトの表示処理に関する処理概要を示すフローチャートの一例である。
【0085】
まず、制御部17は、表示装置1の起動を検知する(ステップS11)。この場合、制御部17は、表示装置1の起動時の表示装置1の姿勢及び位置を基準としたデバイス座標系を設定する(ステップS12)。その後、制御部17は、カメラ15が生成する撮像画像Imを取得すると共に、位置姿勢検出センサ16が出力する検出信号に基づく位置姿勢変化量Apを取得する(ステップS13)。制御部17は、ステップS13で取得した撮像画像Im及び位置姿勢変化量Apの組合せを、センサデータ記憶部20に記憶する。
【0086】
そして、制御部17は、仮想オブジェクトの表示要求があるか否か判定する(ステップS14)。例えば、仮想オブジェクト取得部41は、興行者が管理する図示しないサーバ装置から仮想オブジェクトの表示を指示する配信情報を受信した場合に、仮想オブジェクトの表示要求があると判定する。そして、仮想オブジェクトの表示要求がない場合(ステップS14;No)、引き続きステップS13において撮像画像Im及び位置姿勢変化量Apの取得を行う。
【0087】
一方、仮想オブジェクトの表示要求があった場合(ステップS14;Yes)、制御部17は、キャリブレーション処理を実行する(ステップS15)。このキャリブレーション処理の手順の詳細は
図14を参照して後述する。
【0088】
次に、制御部17の反映部44は、ステップS15のキャリブレーション処理で得られた座標変換情報Icに基づき、表示要求において指定された仮想オブジェクト及び表示位置に対応する仮想オブジェクトを表示するための表示信号Sdを生成する(ステップS16)。なお、この場合、実際には、制御部17は、種々の従来のAR表示製品と同様、ユーザの視線方向及び位置姿勢変化量Ap等を考慮してデバイス座標系においてユーザが視認する空間を認識し、当該空間内において仮想オブジェクトが指定された位置で表示されるように表示信号Sdを生成する。そして、制御部17の光源制御部45は、表示信号Sdに基づき、光源ユニット10の射出制御を行う(ステップS17)。
【0089】
なお、
図13に示すフローチャートの処理手順は一例であり、この処理手順に対し種々の変更を行うことができる。
【0090】
例えば、制御部17は、ステップS15のキャリブレーション処理を仮想オブジェクト表示要求がある度に実行しているが、これに限られない。これに代えて、制御部17は、前回のキャリブレーション処理から所定時間以上経過した場合に限り、キャリブレーション処理を行ってもよい。このように、制御部17は、キャリブレーション処理を、表示装置1の起動後少なくとも1度行えばよい。
【0091】
また、制御部17は、表示装置1の起動時の表示装置1の位置及び姿勢を基準としてデバイス座標系を決定しているが、これに限られない。これに代えて、例えば、制御部17は、表示装置1の起動後に最初に表示要求があったとき(即ち最初にキャリブレーション処理を実行したとき)の表示装置1の位置及び姿勢を基準として、デバイス座標系を決定してもよい。他の例では、制御部17は、表示要求がある度に、当該表示要求時(即ちキャリブレーション処理実行時)の表示装置1の位置及び姿勢を基準としてデバイス座標系を再設定してもよい。この場合、後述する座標変換情報Icの生成処理には位置姿勢変化量Apを使用する必要がない。
【0092】
図14は、
図13のステップS15のキャリブレーション処理の詳細な処理手順を示すフローチャートの一例である。
【0093】
まず、制御部17の画像変換部40は、センサデータ記憶部20等から取得する撮像画像Imに基づき、データオーグメンテーションを実行することで変換撮像画像Imaを生成する(ステップS21)。これにより、画像変換部40は、対象フィールドの推定に用いる撮像画像Imに対して少なくとも1個の変換撮像画像Imaを生成する。
【0094】
次に、特徴抽出部42は、ステップS21で用いた撮像画像Im及びステップS21で生成された変換撮像画像Imaの各々に対し、対象フィールドの各構造特徴点に対応する特徴点候補位置及び候補ラベルの組を示す特徴点情報IFを生成する(ステップS22)。この場合、特徴抽出部42は、パラメータ記憶部21から取得するパラメータに基づき特徴抽出器を構成し、当該特徴抽出器に各画像を入力する。そして、特徴抽出部42は、特徴抽出器が出力する情報に基づき、各画像に対する特徴点情報IFを生成する。
【0095】
次に、候補フィールド生成部51は、各画像の特徴点情報IFから夫々候補フィールドを生成する(ステップS23)。そして、整合性判定部52は、生成した複数の候補フィールドに対してクラスタリング等を行うことにより、非整合候補フィールドの判定を行う(ステップS24)。そして、整合性判定部52は、推定フィールド決定条件を満たすか否か判定する(ステップS25)。そして、整合性判定部52は、推定フィールド決定条件を満たすと判定した場合(ステップS25;Yes)、整合候補フィールドに基づき、推定フィールドを決定する(ステップS26)。この場合、整合性判定部52は、整合候補フィールドの統合処理又は選択処理に基づき、推定フィールドを決定する。
【0096】
そして、座標変換情報生成部43は、フィールド推定部46が決定した推定フィールドに基づき、デバイス座標系からフィールド座標系へ変換するための座標変換情報Icを生成する(ステップS27)。この場合、座標変換情報生成部43は、構造特徴点のラベル毎に、ステップS25で取得した第2フィールド推定情報が示す各構造特徴点のデバイス座標系での検出位置と、構造データに含まれる登録位置情報が示すフィールド座標系の構造特徴点の位置と、を夫々対応付けて照合を行い、ラベル毎に照合した位置同士が一致するような(即ちラベル毎の位置の誤差が最小となる)座標変換情報Icを算出する。
【0097】
このように、表示装置1は、キャリブレーション処理において撮像画像Imから予め登録されている(即ち既にラベルが登録された)構造特徴点のみを抽出した情報を、構造データに登録された構造特徴点の情報と照合させる。これにより、座標変換情報Icを算出するための照合処理に要する計算量を大幅に削減し、かつ、撮像画像Imに含まれるノイズ(即ち対象フィールド以外の特徴点)の抽出に起因した影響等を受けないロバストな座標変換情報Icの算出が可能となる。また、本実施形態では、上述の照合は、高精度に推定された推定フィールドに基づき実行されるため、正確な座標変換情報Icの算出が可能となる。
【0098】
(6)変形例
フィールド推定部46は、1枚の撮像画像Im及び当該撮像画像Imから生成される変換撮像画像Imaに基づき推定フィールドを決定する代わりに、m枚(「m」は2以上の整数)の撮像画像Im及び当該撮像画像Imから生成される変換撮像画像Imaに基づき推定フィールドを決定してもよい。
【0099】
図15は、変形例におけるフィールド推定部46のブロック構成図である。
図15では、記憶部14は、候補フィールド生成部51が生成した候補フィールド記憶部23をさらに有し、候補フィールド生成部51は、m枚分の撮像画像Im及びこれらに対応する変換撮像画像Imaの各々に対して生成したフィールド候補を、候補フィールド記憶部23に記憶する。そして、m枚分の撮像画像Im及びこれらに対応する変換撮像画像Imaの各々に対するフィールド候補の生成後、整合性判定部52は、候補フィールド記憶部23が記憶する候補フィールドに基づき、非整合候補フィールドを判定する処理及び推定フィールド決定条件の成否判定などを行う。
【0100】
なお、本変形例では、制御部17は、画像変換部40を有しなくともよい。この場合であっても、整合性判定部52は、m枚の撮像画像Imに基づき生成されたm個の候補フィールドに基づき、推定フィールドを好適に決定することができる。
【0101】
以上のように、本変形例では、フィールド推定部46は、複数枚の撮像画像Imを使用することで、推定フィールドの決定に用いる複数の候補フィールドを好適に生成することができる。
【0102】
<第2実施形態>
図16は、第2実施形態における表示システムの構成を示す。
図16に示すように、第2実施形態に係る表示システムは、表示装置1Aと、サーバ装置2とを有する。第2実施形態では、キャリブレーション処理等を、表示装置1Aの代わりにサーバ装置2が実行する点において、第1実施形態と異なる。以後では、第1実施形態と同様の構成要素については適宜同一符号を付し、その説明を省略する。
【0103】
表示装置1Aは、サーバ装置2がキャリブレーション処理等を行うために必要な情報であるアップロード信号「S1」をサーバ装置2に送信する。この場合、アップロード信号S1には、例えば、カメラ15が生成する撮像画像Im及び位置姿勢検出センサ16の出力に基づき検出される位置姿勢変化量Apが含まれている。そして、表示装置1Aは、サーバ装置2から送信される配信信号「S2」を受信した場合、配信信号S2に基づき、光源ユニット10の光の射出制御を行うことで、仮想オブジェクトを表示する。例えば、配信信号S2は、第1実施形態の表示信号Sdに相当する情報を含んでおり、表示装置1Aは、配信信号S2の受信後、第1実施形態の光源制御部45と同様の処理を行うことで、光源ユニット10に仮想オブジェクトを表示するための光を射出させる。
【0104】
サーバ装置2は、例えば、興行者が管理するサーバ装置であり、表示装置1Aから受信するアップロード信号S1に基づき、配信信号S2の生成及び表示装置1Aへの配信信号S2の配信を行う。
図17は、サーバ装置2のブロック図である。サーバ装置2は、入力部26と、制御部27と、通信部28と、記憶部29とを有する。
【0105】
記憶部29は、制御部27がサーバ装置2の制御に必要な種々の情報を記憶する不揮発性メモリである。記憶部29には、制御部27が実行するプログラムが記憶される。記憶部29は、センサデータ記憶部20と、パラメータ記憶部21と、構造データ記憶部22とを有する。センサデータ記憶部20には、制御部27の制御に基づき、アップロード信号S1に含まれる撮像画像Im及び位置姿勢変化量Apが記憶される。なお、記憶部29は、サーバ装置2に接続又は内蔵されたハードディスクなどの外部記憶装置であってもよく、フラッシュメモリなどの記憶媒体であってもよい。また、記憶部29は、サーバ装置2とデータ通信を行うサーバ装置(即ち、他の装置から参照可能に情報を記憶する装置)であってもよい。また、この場合、記憶部29は、複数のサーバ装置から構成され、センサデータ記憶部20と、パラメータ記憶部21と、構造データ記憶部22とを分散して記憶してもよい。
【0106】
制御部27は、例えばCPU、GPUなどのプロセッサ、作業メモリとして機能する揮発性メモリなどを有しており、サーバ装置2の全体的な制御を行う。制御部27は、入力部26へのユーザ入力等に基づき、仮想オブジェクトとして表示させる仮想オブジェクト及び表示位置の情報(即ち第1実施形態の指定表示情報Idに相当する情報)を生成する。さらに、制御部27は、センサデータ記憶部20、パラメータ記憶部21、構造データ記憶部22を参照することで、キャリブレーション処理を実行し、配信信号S2を生成する。このように、制御部27は、
図3に示す画像変換部40、仮想オブジェクト取得部41、特徴抽出部42、座標変換情報生成部43、反映部44に相当する機能を含む。
【0107】
図18は、第2実施形態においてサーバ装置2の制御部27が実行する処理手順を示すフローチャートの一例である。
【0108】
まず、制御部27は、通信部28を介し、撮像画像Im及び位置姿勢変化量Apなどを含むアップロード信号S1を表示装置1Aから受信する(ステップS31)。この場合、制御部27は、アップロード信号S1に基づきセンサデータ記憶部20に記憶させるデータを更新する。そして、制御部27は、仮想オブジェクトの表示タイミングか否か判定する(ステップS32)。そして、制御部27は、表示タイミングではない場合(ステップS32;No)、引き続きステップS31においてアップロード信号S1を表示装置1Aから受信する。
【0109】
一方、制御部27は、表示タイミングである場合(ステップS32;Yes)、ステップS31で受信した最新のアップロード信号S1等に基づき、キャリブレーション処理を実行する。この場合、制御部27は、
図14に示されるフローチャートを実行する。そして、制御部27は、キャリブレーション処理で得られた座標変換情報Icに基づき、仮想オブジェクトを表示装置1Aが表示するための配信信号S2を生成する(ステップS34)。そして、制御部27は、生成した配信信号S2を、通信部28により表示装置1Aに送信する(ステップS35)。その後、配信信号S2を受信した表示装置1Aは、配信信号S2に基づき光源ユニット10を制御することで、仮想オブジェクトを表示する。
【0110】
以上のように、第2実施形態によっても、表示システムは、表示装置1Aによる仮想オブジェクトの表示に必要な座標変換情報Icを的確に算出し、仮想オブジェクトを好適にユーザに視認させることができる。
【0111】
なお、第2実施形態において、キャリブレーション処理等をサーバ装置2が行う代わりに、表示装置1Aが行ってもよい。この場合、表示装置1Aは、サーバ装置2からキャリブレーション処理に必要な情報を適宜受信することで、
図14に示すフローチャートの処理を実行する。この態様であっても、表示システムは、表示装置1Aのユーザに好適に仮想オブジェクトを視認させることができる。
【0112】
<第3実施形態>
図19は、第3実施形態における情報処理装置1Xの概略構成を示す。
図19に示すように、情報処理装置1Xは、主に、特徴点情報取得手段42Xと、候補フィールド生成手段51Xと、整合性判定手段52Xとを有する。情報処理装置1Xは、例えば、第1実施形態における表示装置1又は表示装置1の制御部17若しくは第2実施形態におけるサーバ装置2の制御部27により実現される。なお、情報処理装置1Xは、複数の装置から構成されてもよい。
【0113】
特徴点情報取得手段42Xは、対象となるフィールドの少なくとも一部を含む画像に基づき決定された、フィールドの複数の特徴点の候補位置及び候補ラベルを示す特徴点情報を取得する。特徴点情報取得手段42Xは、特徴点情報取得手段42X以外の処理ブロック(情報処理装置1X以外の装置を含む)が生成した特徴点情報を受信してもよく、特徴点情報取得手段42Xが特徴点情報を生成してもよい。後者の場合、特徴点情報取得手段42Xは、例えば、第1実施形態又は第2実施形態における特徴抽出部42とすることができる。
【0114】
候補フィールド生成手段51Xは、特徴点情報に基づき、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系におけるフィールドの候補を表す候補フィールドを生成する。候補フィールド生成手段51Xは、例えば、第1実施形態又は第2実施形態における候補フィールド生成部51とすることができる。
【0115】
整合性判定手段52Xは、複数の画像の複数の特徴点情報に対応する複数の候補フィールドに基づき、整合性を有しない候補フィールドである非整合候補フィールドを判定する。整合性判定手段52Xは、例えば、第1実施形態又は第2実施形態における整合性判定部52とすることができる。
【0116】
図20は、第3実施形態におけるフローチャートの一例である。特徴点情報取得手段42Xは、対象となるフィールドの少なくとも一部を含む画像に基づき、フィールドの複数の特徴点の候補位置及び候補ラベルを示す特徴点情報を取得する(ステップS41)。候補フィールド生成手段51Xは、特徴点情報に基づき、画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系におけるフィールドの候補を表す候補フィールドを生成する(ステップS42)。整合性判定手段52Xは、複数の画像の複数の特徴点情報に対応する複数の候補フィールドに基づき、整合性を有しない候補フィールドである非整合候補フィールドを判定する(ステップS43)。
【0117】
第3実施形態によれば、情報処理装置1Xは、複数の候補フィールドに基づいて整合性を有しない非整合候補フィールドを的確に判定し、フィールドの推定精度の低下等を好適に抑制することができる。
【0118】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0119】
その他、上記の実施形態(変形例を含む、以下同じ)の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0120】
[付記1]
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得する特徴点情報取得手段と、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成する候補フィールド生成手段と、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する整合性判定手段と、
を有する情報処理装置。
[付記2]
前記非整合候補フィールド以外の前記複数の候補フィールドである整合候補フィールドに基づき、前記第1座標系において推定された前記フィールドを表す推定フィールドを決定する推定フィールド決定手段をさらに有する、付記1に記載の情報処理装置。
[付記3]
前記推定フィールド決定手段は、前記整合候補フィールドを統合した前記推定フィールドを生成する、又は、1つの前記整合候補フィールドを前記推定フィールドとして選択する、付記2に記載の情報処理装置。
[付記4]
前記推定フィールド決定手段は、前記整合性判定手段による判定結果に基づき、前記推定フィールドを決定する要否判定を行う、付記2または3に記載の情報処理装置。
[付記5]
前記推定フィールド決定手段は、前記複数の候補フィールドに対する前記非整合候補フィールド又は前記整合候補フィールドの割合に基づき、前記要否判定を行う、付記4に記載の情報処理装置。
[付記6]
前記推定フィールド決定手段は、前記整合性判定手段による判定結果に基づき、前記推定フィールドに関する処理の終了判定を行う、付記2~5のいずれか一項に記載の情報処理装置。
[付記7]
前記フィールドの少なくとも一部を含む第1画像を変換した1又は複数の第2画像を生成する画像変換手段をさらに有し、
前記複数の画像は、前記第1画像と前記第2画像とを含み、
前記整合性判定手段は、前記第1画像及び前記第2画像の前記複数の特徴点情報に対応する前記複数の候補フィールドに基づき、前記非整合候補フィールドを判定する、付記1~6のいずれか一項に記載の情報処理装置。
[付記8]
前記第2画像は、前記第1画像を反転した画像又はクロップした画像の少なくとも一方を含む、付記7に記載の情報処理装置。
[付記9]
前記非整合候補フィールド以外の前記複数の候補フィールドである整合候補フィールドと、前記フィールドの構造に関する構造データとに基づき、前記第1座標系と、前記構造データにおいて採用される座標系である第2座標系との間の座標変換に関する座標変換情報を生成する座標変換情報生成手段をさらに有する、付記1~8のいずれか一項に記載の情報処理装置。
[付記10]
前記情報処理装置は、風景に重ねて仮想オブジェクトを表示する前記表示装置であって、
前記仮想オブジェクトを表示するための表示光を射出する光源ユニットと、
前記表示光の少なくとも一部を反射することで、前記仮想オブジェクトを風景に重ねて観察者に視認させる光学素子と、
をさらに有する、付記1~9のいずれか一項に記載の情報処理装置。
[付記11]
コンピュータが、
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する、
制御方法。
[付記12]
対象となるフィールドの少なくとも一部を含む画像に基づき決定された、前記フィールドの複数の特徴点に関する特徴点情報を取得し、
前記特徴点情報に基づき、前記画像を撮影するカメラを有する表示装置が基準とする座標系である第1座標系における前記フィールドの候補を表す候補フィールドを生成し、
複数の前記画像の複数の前記特徴点情報に対応する複数の前記候補フィールドに基づき、整合性を有しない前記候補フィールドである非整合候補フィールドを判定する処理をコンピュータに実行させるプログラムを格納する記憶媒体。
【0121】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0122】
1、1A 表示装置
1X、1Y 情報処理装置
2 サーバ装置
10 光源ユニット
11 光学素子
12 通信部
13 入力部
14 記憶部
15 カメラ
16 位置姿勢検出センサ
20 センサデータ記憶部
21 パラメータ記憶部
22 構造データ記憶部
23 候補フィールド記憶部