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

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

Info

Publication number
JP2021092881A
JP2021092881A JP2019221921A JP2019221921A JP2021092881A JP 2021092881 A JP2021092881 A JP 2021092881A JP 2019221921 A JP2019221921 A JP 2019221921A JP 2019221921 A JP2019221921 A JP 2019221921A JP 2021092881 A JP2021092881 A JP 2021092881A
Authority
JP
Japan
Prior art keywords
keyframe
control unit
information processing
key frame
self
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019221921A
Other languages
English (en)
Inventor
一 若林
Hajime Wakabayashi
一 若林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Priority to JP2019221921A priority Critical patent/JP2021092881A/ja
Priority to PCT/JP2020/044630 priority patent/WO2021117543A1/ja
Priority to US17/756,616 priority patent/US20220412741A1/en
Publication of JP2021092881A publication Critical patent/JP2021092881A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3415Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】キーフレームを用いた自己位置推定において自己位置推定の精度を向上させる技術を提供すること。【解決手段】情報処理装置は、制御部を具備する。制御部は、自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する。【選択図】図5

Description

本技術は、自己位置推定に関する処理を実行する情報処理装置などの技術に関する。
近年、AR(Augmented Reality)技術や、VR(Virtual Reality)技術などにおいて、自己位置推定技術が広く用いられている。この自己位置推定技術として、自己位置推定と環境地図の作成とを同時に行うSLAM(Simultaneous Localization And Mapping)が知られている。
自己位置推定においては、最初にその装置が現実世界のどこにいるのかを推定する初期位置推定が行われる場合がある。この初期位置推定技術は、Relocalizationなどと呼ばれる。
下記特許文献1には、キーフレーム画像を用いて初期位置及び初期姿勢を推定する技術が開示されている。特許文献1に記載の技術では、まず、画像取得部からの画像と最も類似するキーフレーム画像が探索され、画像取得部からの画像と、類似のキーフレーム画像とのマッチングが行われる。そして、類似のキーフレーム画像の特徴点及びマップ点に基づいて、画像取得部からの画像の特徴点及びマップ点が対応付けられ、所定のアルゴリズムに基づいて、装置の初期位置及び初期姿勢が推定される。
特開2018−173882号公報
例えば、離れた場所に似たような風景が存在している場合がある。そのような場所で作成されたキーフレームに基づいて自己位置推定が行われると、自己位置推定が大きく誤ってしまう場合がある。
以上のような事情に鑑み、本技術の目的は、キーフレームを用いた自己位置推定において自己位置推定の精度を向上させる技術を提供することにある。
本技術に係る情報処理装置は、制御部を具備する。前記制御部は、自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する。
上記情報処理装置において、前記制御部は、ユニーク度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、前記第1のキーフレームとの類似度が相対的に低いキーフレームを優先的に前記第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、対応する位置における安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、前記第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、前記第1のキーフレームとの距離が相対的に近いキーフレームを優先的に第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、対応する位置での画像が相対的に時間変化し難いキーフレームを優先的に前記第2のキーフレームとして選択してもよい。
上記情報処理装置において、前記制御部は、ユーザが知覚可能なフォーマットで前記コンテンツ出力を実行してもよい。
上記情報処理装置において、前記コンテンツ出力におけるコンテンツは、画像、音声又は振動のうち少なくとも1つを含んでいてもよい。
上記情報処理装置において、前記制御部は、前記第1のフレームに基づいて、初期位置を設定してもよい。
上記情報処理装置において、前記制御部は、前記第2のキーフレームと、前記第2のフレームに対応する位置で取得された前記環境情報とに基づいて、前記初期位置が正しかったかどうかを判断してもよい。
上記情報処理装置において、前記制御部は、前記第2のキーフレームと、前記第2のキーフレームに対応する位置で取得された前記環境情報とのマッチングに基づいて、前記初期位置が正しかったかどうかを判断してもよい。
上記情報処理装置において、前記制御部は、前記第2のキーフレームとのマッチングに基づいて自己位置を推定する第1の自己位置推定と、前記初期位置を基準として自己位置を推定する第2の自己位置推定とを実行してもよい。
上記情報処理装置において、前記制御部は、前記第1の自己位置推定による第1の自己位置と、前記第2の自己位置推定による第2の自己位置との差に基づいて、前記初期位置が正しかったかどうかを判断してもよい。
上記情報処理装置において、前記制御部は、所定の条件下で、前記第2のキーフレームを再選択し、再選択された前記第2のキーフレームの位置への誘導を行うためのコンテンツ出力を実行するやり直し処理を実行してもよい。
上記情報処理装置において、前記条件は、ユーザからやり直し指示が入力されることであってもよい。
上記情報処理装置において、前記条件は、誘導開始から所定時間が経過することであってもよい。
上記情報処理装置において、前記条件は、前記第2のキーフレームの位置に障害物が存在することであってもよい。
本技術に係る情報処理方法は、自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する。
本技術に係るプログラムは、自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する処理をコンピュータに実行させる。
本技術の第1実施形態に係るヘッドマウントディスプレイを示す斜視図である。 ヘッドマウントディスプレイの内部構成を示すブロック図である。 似たような風景に基づくキーフレームが複数存在する場合に、ヘッドマウントディスプレイが、初期位置推定を誤ってしまうときの様子を示す図である。 本技術の基本的な考え方を示す図である。 制御部の処理を示すフローチャートである。 制御部における各処理が実行されるときのユーザの位置などを示す図である。 第1のキーフレーム選択処理及び仮の初期位置設定処理を示すフローチャートである。 見回し指示におけるコンテンツ出力の一例を示す図である。 第2のキーフレームの選択処理を示すフローチャートである。 3次元の点群における各点のクラス設定処理を示すフローチャートである。 クラス分類がされた画像の一例を示す図である。 キーフレームの床面のクラス設定処理を示すフローチャートである。 キーフレームの床面にクラスが設定されるときの様子を示す模式図である。 階段上にキーフレームが存在する場合の一例を示す図である。 第1のキーフレームとの間の経路の安全度に関する処理を示すフローチャートである。 誘導処理を示すフローチャートである。 誘導におけるコンテンツ出力の一例を示す図である。 第2のキーフレームとのマッチング処理及びやり直し処理を示すフローチャートである。 ユーザによるやり直し指示の一例を示す図である。 第2のキーフレームに対応する位置に、障害物が存在しているときの一例を示す図である。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
≪第1実施形態≫
<全体構成及び各部の構成>
図1は、本技術の第1実施形態に係るヘッドマウントディスプレイ10を示す斜視図である。図2は、ヘッドマウントディスプレイ10の内部構成を示すブロック図である。
これらの図に示すように、ヘッドマウントディスプレイ10(AR端末:情報処理装置の一例)は、ヘッドマウントディスプレイ本体11と、制御部1と、記憶部2と、表示部3と、撮像部4と、慣性センサ5と、操作部6と、スピーカ7と、通信部8とを備えている。
ヘッドマウントディスプレイ本体11は、ユーザの頭部に装着されて使用される。ヘッドマウントディスプレイ本体11は、フロント部12と、フロント部12の右側に設けられた右テンプル部13と、フロント部12の左側に設けられた左テンプル部14と、フロント部12の下側に取り付けられたグラス部15とを有する。
表示部3は、シースルータイプの表示部3であり、グラス部15の表面に設けられている。表示部3は、制御部1の制御に応じて、AR表示を行う。AR表示とは、ユーザから見て、仮想オブジェクトが、あたかも実空間に存在する現実物体であるかのように知覚させるように表示を行うことを意味する。なお、表示部3は、非シースルータイプの表示部3であってもよい。この場合、撮像部4により撮像された画像が表示部3上に表示される。
撮像部4は、例えば、カメラであり、CCD(Charge Coupled Device)センサ、CMOS(Complemented Metal Oxide Semiconductor)センサ等の撮像素子と、結像レンズなど等の光学系とを含む。撮像部4は、フロント部12の外面において外向きに設けられており、ユーザの視線方向の先に存在する物体を撮像し、撮像により得られた画像情報を制御部1へと出力する。撮像部4は、フロント部12において横方向に所定の間隔を開けて2つ設けられている。なお、撮像部4が設けられる場所、数については、適宜変更可能である。
慣性センサ5は、3軸方向の加速度を検出する3軸の加速度センサと、3軸回りの角速度を検出する角速度センサとを含む。慣性センサ5は、検出により得られた3軸方向の加速度、3軸回りの角速度を慣性情報として、制御部1に出力する。
本実施形態では、慣性センサ5の検出軸が3軸とされているが、この検出軸は、1軸、あるいは、2軸であってもよい。また、本実施形態では、慣性センサ5として、2種類のセンサが用いられているが、慣性センサ5として1種類、あるいは、3種類以上のセンサが用いられてもよい。なお、慣性センサ5の他の例としては、速度センサ、角度センサ等が挙げられる。
操作部6は、例えば、押圧式、接触式等の各種のタイプの操作部であり、ユーザによる操作を検出して制御部1へと出力する。図1に示す例では、操作部6は、左テンプル部14の前方側に設けられているが、操作部6が設けられる位置はユーザが操作しやすい位置であればどのような位置であってもよい。
スピーカ7は、制御部1から出力された音信号を受信して音信号を音声へと変換して出力する。通信部8は、外部機器との間で、直接的又は間接的に通信を行う。ヘッドマウントディスプレイ10と通信を行う外部機器としては、例えば、デスクトップPC(Personal computer)、ラップトップPC、タブレットPC等の各種PCや、携帯電話機(スマートフォンを含む)、ネットワーク上のサーバ装置等が挙げられる。
制御部1は、CPU(Central Processing Unit)等により構成されている。制御部1は、記憶部2に記憶された各種のプログラムに基づき種々の演算を実行し、ヘッドマウントディスプレイ10の各部を統括的に制御する。なお、制御部1の処理については、動作説明の欄において後に詳述する。
記憶部2は、制御部1の処理に必要な各種のプログラムや、各種のデータが記憶される不揮発性のメモリと、制御部1の作業領域として用いられる揮発性のメモリとを含む。なお、上記各種のプログラムは、光ディスク、半導体メモリなどの可搬性の記録媒体から読み取られてもよいし、ネットワーク上のサーバ装置からダウンロードされてもよい。
本実施形態では、特に、記憶部2には、環境地図が保存されている。環境地図では、複数のキーフレームと、そのキーフレームに関連するメタデータとが互いに関連付けられてデータベース化されている。
キーフレームは、自己位置推定に用いられる情報であり、現在位置で取得される外部環境の画像等の情報(環境情報)との比較対象となる情報である。キーフレームは、画像、キーフレームの座標情報、深度情報、特徴点の位置情報等を含む。キーフレームにおける座標は、同じ原点を持つ3D座標系とされている。環境地図及びメタデータについては、後に詳述する
なお、実施形態の説明では、環境地図がヘッドマウントディスプレイ10の記憶部2内にある場合について説明するが、環境地図は、例えば、ネットワーク上のサーバ装置が有していてもよい。
<基本的な考え方>
次に、本技術の基本的な考え方について説明する。図3は、似たような風景に基づくキーフレームが複数存在する場合に、ヘッドマウントディスプレイ10が、初期位置推定を誤ってしまうときの様子を示す図である。
Relocalizationに基づく初期位置推定では、まず、撮像部4によって現在撮像された画像の特徴点と、各キーフレームの特徴点とが比較される。これにより、複数のキーフレームの中から、撮像部4によって撮像された画像に最も類似する画像を含むキーフレームが選択される。次に、キーフレームの画像に含まれる領域と、撮像部4によって現在撮像された画像に含まれる領域との共通領域内にある特徴点のマッチングが行われる。そして、キーフレームの座標情報、特徴点の位置情報からヘッドマウントディスプレイ10の初期位置及び初期姿勢(以下、初期位置及び初期姿勢を、単に、初期位置と省略)が推定される。
ここで、仮に、図3に示すように、(A)の地点及び(B)の地点にそれぞれキーフレームが存在しているとする。また、ヘッドマウントディスプレイ10を装着したユーザが、(b)の地点ではなく、(a)の地点に存在するとする。
この例では、ヘッドマウントディスプレイ10(ユーザ)が(a)の地点に存在しているので、本来であれば、(A)のキーフレームに基づいて、ヘッドマウントディスプレイ10の初期位置が推定されるべきである。一方、(A)の地点のキーフレーム及び(B)の地点のキーフレームは、それぞれ、別の地点でのキーフレームであるが、ドアを含む部屋の角を同じような角度から撮像した画像に基づくキーフレームであり、キーフレームの場所から撮像した画像が互いに類似している。
このため、Relocalizationに基づく初期位置推定において、複数のキーフレームの中から、撮像部4によって撮像された画像に最も類似する画像を含むキーフレームが選択されるとき、(A)でなく、(B)の地点のキーフレームが選択されてしまう場合がある。この場合、実際には、ヘッドマウントディスプレイ10が(a)の地点に存在しているにもかかわらず、ヘッドマウントディスプレイ10が(b)の地点に存在していると判断され、この(b)の地点に初期位置が設定されてしまう。
人が生活する環境においては、似たような風景が離れた場所に存在する場合がある。このため、対応する場所から撮像した画像が類似する複数のキーフレームが存在してしまう場合があり、ヘッドマウントディスプレイ10が、初期位置推定を大きく誤ってしまう場合がある。また、このような不正確な初期位置推定の場合、意図しない位置にAR表示が行われてしまう場合がある。
図4は、本技術の基本的な考え方を示す図である。図4に示す例では、(A)、(B)、(C)及び(D)の地点にそれぞれキーフレームが存在している。また、ヘッドマウントディスプレイ10を装着したユーザが、最初に(b)の地点ではなく、(a)の地点に存在する。
ヘッドマウントディスプレイ10(ユーザ)が(a)の地点に存在しているので、本来であれば、(A)のキーフレームに基づいて、ヘッドマウントディスプレイ10の初期位置が推定されるべきである。一方、(A)の地点のキーフレーム及び(B)の地点のキーフレームは、対応する場所から撮像した画像がそれぞれ互いに類似している。従って、ヘッドマウントディスプレイ10の制御部1は、初期位置の推定において(A)の地点のキーフレーム及び(B)の地点のキーフレームのうちどちらのキーフレームを用いるのかを正確に判断することができない。
例えば、複数のキーフレームの中から、撮像部4によって撮像された画像に最も類似する画像を含むキーフレームが選択されるとき、(A)の地点のキーフレーム及び(B)の地点のキーフレームのどちらも選択される可能性がある。
仮に、正しい方の(A)の地点のキーフレームが選択され、この(A)地点のキーフレームに基づいて、初期位置が推定されたとする。ここで、制御部1は、(C)の地点にもキーフレームが存在していることを予め認識している(環境地図)。制御部1は、(C)の地点へユーザを誘導して、(c)の地点での撮像部4による画像と(C)の地点でのキーフレームとのマッチングを試みる。この場合には、正しい方の(A)のキーフレームが選択されているので、(c)の地点での撮像部4による画像と(C)の地点でのキーフレームとにより、自己位置を推定することができる。
逆に、誤っている方の(B)の地点のキーフレームが選択され、この(B)地点のキーフレームに基づいて、初期位置が推定されたとする。このとき、制御部1は、実際には、ヘッドマウントディスプレイ10(ユーザ)が(a)の地点に存在するにもかかわらず、(b)の地点に存在していると勘違いしている。
制御部1は、(D)の地点にもキーフレームが存在していることを予め認識している(環境地図)。制御部1は、(D)の地点へユーザを誘導して、(d)の地点での撮像部4による画像と(D)の地点でのキーフレームとのマッチングを試みる。しかしながら、実際には、ヘッドマウントディスプレイ10(ユーザ)は、(a)の地点から(c)の地点に移動している。このため、撮像部4からは、(d)の地点の画像ではなく、(c)の地点の画像が取得される。
従って、この場合、制御部1は、(d)の地点での画像と(D)の地点でのキーフレームとのマッチングではなく、(c)の地点の画像と(D)の地点でのキーフレームのマッチングを行うことになる。この場合、自己位置を推定することができない。なお、図では、誘導先である(D)の地点のキーフレームに対応する位置に、(C)のキーフレームが存在している例が示されているが、初期位置を誤った場合には、誘導先である(D)に対応する位置に、実際にはキーフレーム自体が存在しない場合もある。
本技術では、推定された初期位置が正しければ、誘導先のキーフレームの位置において自己位置を推定することができ、推定された初期位置が誤っていると、誘導先のキーフレームの位置において自己位置を推定することができないという関係が利用される。そして、この関係が利用されて、自己位置推定(初期位置推定)の精度が向上される。
なお、(C)の地点のキーフレームや(D)の地点のキーフレーム、つまり、誘導先のキーフレーム(第2のキーフレーム)は、以降で説明するように、各種の基準に従って選択される。例えば、誘導前の(A)及び(B)の地点のキーフレームにおける画像が類似していて、かつ、誘導先の(C)及び(D)の地点のキーフレームにおける画像が類似していると、誘導先でも誤判定が生じ、2重の誤判定が生じてしまう可能性がある。
例えば、以上の例で、誤って(b)の地点に初期位置が設定された後、誘導後に(c)の地点の画像と(D)の地点のキーフレームのマッチングが行われるとする。この場合、撮像部4による画像と、キーフレームの画像とは、違う地点での画像であるので、本来であれば自己位置を推定することができないはずである。一方、(C)の地点及び(D)の地点のキーフレームにおける画像が類似していると、(c)の地点の画像と、(D)の地点のキーフレームの画像とで違う地点での画像のマッチングを行っているにもかかわらず、自己位置を推定することができてしまう可能性がある。この場合、(b)の地点の初期位置が正しかったと誤判定されてしまう可能性がある。
従って、典型的には、誘導先のキーフレーム(第2のキーフレーム)は、他のキーフレームに対して相対的にユニーク度の高いキーフレームが選択される。
<動作説明>
次に、制御部1の処理について具体的に説明する。図5は、制御部1の処理を示すフローチャートである。図6は、制御部1における各処理が実行されるときのユーザの位置などを示す図である。
図5及び図6に示すように、まず、制御部1は、第1のキーフレーム選択処理及び仮の初期位置設定処理を実行し(ステップ100)、その後、第2のキーフレームの選択処理を実行する(ステップ200)。次に、制御部1は、誘導処理を実行し(ステップ300)、その後、第2のキーフレームとのマッチング処理及びやり直し処理を実行する。
なお、第1のキーフレームは、最初に初期位置を設定するために用いられるキーフレームであり、第2のキーフレームは、初期位置が正しかったかどうかを判断するために選択される誘導先のキーフレームである。
ここで、実施形態の説明では、キーフレームが画像情報である場合について説明する。一方、キーフレームは、Lidar(Light detection and ranging)などにより取得された3次元情報であってもよい。Lidarは、レーザ光が、発光部によって発光されてから対象物で反射されて受光部で受光されるまでの時間を計測することで、対象物までの距離、対象物の方向等を検出することが可能とされている。このLidarは、パルス状のレーザ光が反射した方向と距離を3次元点群における点として記録することが可能とされており、ユーザの周りの環境を3次元点群の情報として取得することが可能とされている。
この場合、誘導先の第2のキーフレームの位置で取得される環境情報も、これに対応して、例えば、Lidarなどにより取得される3次元情報であってもよい。環境情報は、誘導先の第2のキーフレームに対応する位置で取得される、第2のキーフレームと比較される情報であり、自己位置推定のために用いられる情報である。
[第1のキーフレーム選択処理及び仮の初期位置設定処理]
次に、第1のキーフレーム選択処理及び仮の初期位置設定処理について具体的に説明する。図7は、第1のキーフレーム選択処理及び仮の初期位置設定処理を示すフローチャートである。
第1のキーフレーム選択処理及び仮の初期位置設定処理は、ヘッドマウントディスプレイ10が起動されるときや、ヘッドマウントディスプレイ10において任意のアプリケーションが開始されるときに実行される。ヘッドマウントディスプレイ10において実行されるアプリケーションとしては、例えば、ゲーム等の娯楽のためのアプリケーションや、道案内などのアプリケーションが挙げられるが、アプリケーションの種類は特に限定されない。
図7に示すように、まず、制御部1は、ユーザに対して回りを見回すように指示を出す(ステップ101)。この見回し指示は、撮像部4により取得された画像と、環境地図内の各キーフレームとのマッチングを取りやすくするために実行される。
図8は、見回し指示におけるコンテンツ出力の一例を示す図である。図8の上側には、「周辺を見回してください」との文字が表示部3に表示された場合の一例が示されている。図8の中央には、鳥の仮想オブジェクトが飛びながら表示部3の端側に移動するAR表示がされた場合の一例が示されている。この例では、ユーザは、飛び回る仮想オブジェクトを眼で追うことで自然に回りを見回すことができる。
また、図8の下側には、表示部3の端側に鳥の仮想オブジェクトがAR表示され、また、スピーカ7から鳥のさえずる音(あるいは、周辺を見回してくださいと鳥がしゃべる音)が出力される場合の一例が示されている。この例では、ユーザは、仮想オブジェクトの方向を見ることで自然に回りを見回すことができる。
仮想オブジェクトは、これから実行されるアプリケーションに関連するオブジェクトであってもよい。例えば、実行されるアプリケーションがゲームなどである場合、仮想オブジェクトは、ゲームに登場するキャラクターなどであってもよい。
見回し指示におけるコンテンツ出力は、振動であってもよい。この場合、例えば、右テンプル部13及び左テンプル部14にそれぞれ振動部が設けられる。そして、ユーザに右を向かせたい場合には、右テンプル部13の振動部が振動され、左を向かせたい場合には、左テンプル部14の振動部が振動される。
見回し指示におけるコンテンツ出力は、ユーザが知覚可能なフォーマットで実行されればどのようなフォーマットで実行されても構わない。典型的には、見回し指示におけるコンテンツ出力のコンテンツは、画像、音声及び振動のうち少なくとも1つであればよい。
見回し指示を実行すると、次に、制御部1は、Relocalizationに基づき、環境地図内における複数のキーフレームの中から、第1のキーフレームの候補を探索する(ステップ102)。この探索では、まず、制御部1は、撮像部4によって現在において取得された画像の特徴点と、環境地図内の各キーフレームの特徴点とを比較する。そして、制御部1は、撮像部4による画像の特徴点と一致する特徴点の数が閾値(N個)以上のキーフレームを、第1のキーフレームの候補として選択する。
図6の左上の例では、(E)、(F)、(G)の地点のキーフレームが第1のキーフレームの候補として選択された場合の一例が示されている。
次に、制御部1は、第1のキーフレームの候補が存在するかどうかを判定する(ステップ103)。第1のキーフレームの候補が未だ見つかっていない場合(ステップ103のNO)、制御部1は、ステップ102に戻り、第1のキーフレームの候補を探索する。
第1のキーフレームの候補が存在する場合(ステップ103のYES)、制御部1は、第1のキーフレームの候補に基づいて、それぞれ対応する初期位置の候補を得る(ステップ104)。
ステップ104では、まず、制御部1は、第1のキーフレームの候補の画像に含まれる領域と、撮像部4によって現在撮像された画像に含まれる領域との共通領域内にある特徴点のマッチングを実行する。そして、制御部1は、第1のキーフレームの候補における座標情報、特徴点の位置情報からヘッドマウントディスプレイ10の初期位置及び初期姿勢の候補(以下、単に、初期位置の候補)を得る。
図6の左上の例では、(E)、(F)、(G)の地点の第1のキーフレームの候補について、それぞれ、(e)、(f)、(g)の地点の初期位置の候補が得られた場合の一例が示されている。
初期位置の候補を得ると、制御部1は、次のステップ105へ進む。ステップ105では、制御部1は、第1のキーフレームの候補、初期位置の候補の中から、最も正しい可能性が高い(撮像部4からの画像との一致度が高い)候補を、第1のキーフレーム、初期位置として選択する。
図6の左上の例では、(E)、(F)、(G)の地点の第1のキーフレームの候補、(e)、(f)、(g)の初期位置の候補の中から、(E)及び(e)の候補が、第1のキーフレーム、初期位置として選択された場合の一例が示されている。
なお、ここでの例では、第1のキーフレームの候補及び初期位置の候補の中から、第1のキーフレーム及び初期位置が選択される場合について説明した。一方、これらの候補を探索せずに、撮像部4によって撮像された画像に最も類似する画像を含むキーフレームが直接的に第1のキーフレームとして選択され、この第1のキーフレームに基づいて初期位置が得られてもよい。
第1のキーフレーム及び初期位置が選択されると、次に、制御部1は、選択された初期位置を仮の初期位置として設定し(ステップ106)、見回し指示を終了する(ステップ107)。
<第2のキーフレーム選択処理>
次に、環境地図内における複数のキーフレームの中から、第1のキーフレームと異なる第2のキーフレームを選択するときの処理について説明する。なお、図6の右上の例では、環境地図内における複数のキーフレームの中から、(H)の地点のキーフレームが第2のキーフレームとして選択された様子が示されている。
第1実施形態において、誘導先の第2のキーフレームは、以下の判断基準を満たすキーフレームが優先的に選択される。
1.ユニーク度が相対的に高い(環境地図内の他のキーフレームとの類似度が低い)
仮に、環境地図内における他のキーフレームの画像との類似度が高い画像を含む(平凡な)キーフレームが第2のキーフレームとして選択されてしまうと、図4において上述したように、2重の誤判定が生じてしまう可能性がある。従って、典型的には、ユニーク度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。
2.第1のキーフレームとの類似度が相対的に低い
例えば、第1のキーフレームの位置(仮の初期位置)の周りに、第1のキーフレームに似た風景が密集している場合を想定する。この場合、第1のキーフレームの画像に類似する画像を含むキーフレームが、第2のキーフレームとして選択されると、その第2のキーフレームのユニーク度が高かったとしても、上述の2重の誤判定が生じてしまう可能性がある。従って、典型的には、第1のキーフレームの画像との類似度が相対的に低い画像を含むキーフレームが優先的に第2のキーフレームとして選択される。
3.対応する位置における安全度が相対的に高い
例えば、第2のキーフレームに対応する位置にユーザを誘導したときに、その地点が車道上、踏切内、階段上などである場合には、ユーザの安全性が確保できない。従って、典型的には、対応する位置における安全度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。
4.第1のキーフレームとの間の経路の安全度が相対的に高い
例えば、第1のキーフレームに対応する位置から、第2のキーフレームに対応する位置にユーザを誘導しているときに、歩道がない箇所を通る、横断歩道や踏切を何回も渡るなどすると、ユーザの安全性が確保できない。従って、典型的には、第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。
5.第1のキーフレームとの距離が相対的に近い
例えば、第1のキーフレームとの間の距離が遠いと、時間がかかってしまい、また、ユーザが疲れてしまう。従って、典型的には、第1のキーフレームとの距離が相対的に近いキーフレームが優先的に第2のキーフレームとして選択される。
第2のキーフレームの選択処理の説明では、1.〜5.の全ての判断基準を満たすキーフレームが第2のキーフレームとして選択される。なお、第2のキーフレームの選択における他の判断基準については、後に詳述する。
図9は、第2のキーフレームの選択処理を示すフローチャートである。
「1.ユニーク度」
図9に示すように、まず、制御部1は、環境地図内における複数のキーフレーム(第1のキーフレームを除く)の中から、ユニーク度が相対的に高い(他のキーフレームとの類似度が相対的に低い)キーフレームを、第2のキーフレームの候補として選択する(ステップ201)。この場合、制御部1は、ユニーク度が所定の閾値以上であるキーフレームを、第2のキーフレームの候補として選択する。
制御部1は、例えば、キーフレームの取得時などにおいて、予め、各キーフレームについて、それぞれユニーク度を算出しておく。ユニーク度の算出においては、まず、制御部1は、例えば、Bag of Visual words等の用法により、各キーフレーム画像についてそれぞれ特徴量を抽出する。そして、制御部1は、キーフレームの特徴量と、他のキーフレームの特徴量との差分をそれぞれ算出し、その特徴量の差分の平均値を算出する。例えば、この差分の平均値がユニーク度として用いられる。ユニーク度は、キーフレームに関連付けられ、そのキーフレームのメタデータとして環境地図内に記憶される。
「2.類似度」
ユニーク度の高いキーフレームを、第2のキーフレームの候補として選択すると、次に、制御部1は、その候補の中から、第1のキーフレームの画像との類似度が相対的に低い画像を含むキーフレームを選択し、第2のキーフレームの候補をさらに絞り込む(ステップ202)。この場合、制御部1は、類似度が所定の閾値以下であるキーフレームを、第2のキーフレームの候補として選択する。
制御部1は、例えば、キーフレームの取得時などにおいて、予め、各キーフレームについて、それぞれ他のキーフレームの画像との類似度を算出しておく。類似度の算出においては、まず、制御部1は、例えば、Bag of Visual words等の用法により、各キーフレーム画像についてそれぞれ特徴量を抽出する。そして、制御部1は、キーフレームの特徴量と、他のキーフレームとの特徴量との差分をそれぞれ算出する。例えば、この差分が類似度として用いられる。
この類似度は、キーフレームに関連付けられ、そのキーフレームのメタデータとして環境地図内に記憶される。制御部1は、第1のキーフレームに対応する類似度の情報を読み込めば、第1のキーフレームと、他のキーフレームとの類似度を認識することができる。
「3.対応する位置の安全度」
類似度の低いキーフレームを、第2のキーフレームの候補として選択すると、次に、制御部1は、その候補の中から、対応する位置における安全度が相対的に高いキーフレームを選択し、第2のキーフレームの候補をさらに絞り込む(ステップ203)。この場合、制御部1は、安全度が所定の閾値以上であるキーフレームを、第2のキーフレームの候補として選択する。
第2のキーフレームに対応する位置の安全度をどのように判断するかについて、一例を挙げて具体的に説明する。
(3次元点群における各点のクラス設定処理)
第1実施形態では、第2のキーフレームの位置の安全度(及び第1のキーフレームとの間の経路の安全度)を判断するための準備段階として、3次元の点群における各点のクラス設定処理が実行される。まず、このクラス設定処理について説明する。なお、このクラス設定処理は、キーフレーム取得時などにおいて予め実行される。
図10は、3次元の点群における各点のクラス設定処理を示すフローチャートである。図10に示すように、まず、制御部1は、環境地図内におけるキーフレーム画像に基づいて、3次元点群を生成する(ステップ501)。3次元点群は、例えば、キーフレーム画像の撮像時において実行されたSLAMで得られるヘッドマウントディスプレイ10の姿勢情報、撮像部4の画角情報、深度情報や、SfM(Structure from Motion)等から生成される。
次に、制御部1は、3次元点群の中から点を1つ選択する(ステップ502)。次に、制御部1は、選択された点を生成する元となったキーフレーム画像及びその画素を特定する(ステップ503)。次に、制御部1は、点が生成される元となったキーフレーム画像から、1つのキーフレーム画像を選択する(ステップ504)。なお、点が生成される元となったキーフレーム画像の数は、1枚の場合もあり、複数枚の場合もある。
次に、制御部1は、選択されたキーフレーム画像について、セマンティックセグメンテーション処理が既に行われているかどうかを判定する(ステップ505)。
セマンティックセグメンテーション処理が未だ実行されていない場合(ステップ505のNO)、制御部1は、選択されたキーフレーム画像に対してセマンティックセグメンテーション処理を実行する(ステップ506)。セマンティックセグメンテーション処理は、画素単位でクラス分類を行って、画素毎に物体認識を行う技術である。
図11は、クラス分類がされた画像の一例を示す図である。図10では、画像が、画素毎に、空、ビル、人、車、車道、歩道、横断歩道等にクラス分類された場合の一例が示されている。クラス分類は、機械学習により制御部1が自動的に実行可能であるが、人が手動で実行することも可能である。
セマンティックセグメンテーション処理を実行すると、制御部1は、処理の結果(画素毎のクラス分類)をキーフレームに関連付けて記憶部2に記憶し、次のステップ507へ進む。また、制御部1は、セマンティックセグメンテーション処理が既に実行済みである場合(ステップ505のYES)、選択されたキーフレーム画像に対応する、セマンティックセグメンテーション処理の結果(画素毎のクラス分類)を記憶部2から読み出して、次のステップ507へ進む。
ステップ507では、制御部1は、3次元点群の点を生成する元となった画素のクラスを特定する。そして、制御部1は、特定されたクラスを投票し、これが、キーフレーム画像による、点に対するクラスの投票となる。次に、制御部1は、投票を行っていないキーフレーム画像が残っているかどうかを判定する(ステップ508)。
投票を行っていないキーフレーム画像が残っている場合(ステップ508のYES)、制御部1は、ステップ504に戻って、点を生成する元となったキーフレーム画像及びその画素を特定し、ステップ505以降の処理を再び実行する。
点を生成する元となった全てのキーフレーム画像の投票が完了した場合(ステップ508のNO)、制御部1は、投票結果に基づいて、点に対応するクラスを決定する(ステップ509)。
一例として、例えば、3次元点群における点が3つのキーフレーム画像に基づいて生成されたとする。また、3つのキーフレーム画像におけるその点のクラスの投票結果が、車道、横断歩道、横断歩道であったとする。この場合、最も投票数が多い横断歩道がその点のクラスとして決定される。なお、クラス分類が不明の場合は、その点のクラスは不明とされる。
クラスが決定されると、次に、制御部1は、点とクラスを関連付けて記憶部2に記憶する(ステップ510)。次に、制御部1は、クラスが決定されていない点が残っているかどうかを判定する(ステップ511)。
クラスが決定されていない点が残っている場合(ステップ511のYES)、制御部1は、ステップ502へ戻って、3次元点群の中から未処理の点を1つ選択し、再び、ステップ503以降の処理を実行する。一方、3次元点群における全ての点について、クラスが決定された場合(ステップ511のNO)、制御部1は、処理を終了する。このようにして、3次元点群における各点のクラス設定処理が実行される。
(キーフレームの床面のクラス設定処理)
次に、クラス分類された3次元点群を利用して、キーフレームに対応する位置での床面のクラス設定処理が実行される。つまり、キーフレームに対応する位置での床面のクラス(歩道、横断歩道、芝、車道、踏切、建物内の床、廊下等)を予め認識していれば、キーフレームの位置での安全度が分かるので、キーフレームの床面でのクラス分類が予め実行される。
図12は、キーフレームの床面のクラス設定処理を示すフローチャートである。図13は、キーフレームの床面にクラスが設定されるときの様子を示す模式図である。
図12に示すように、まず、制御部1は、環境地図内における複数のキーフレームの中から、キーフレームを1つ選択する(ステップ601)。次に、制御部1は、そのキーフレームの座標位置(図13の大きい黒丸参照)を特定する(ステップ602)。キーフレームの座標位置は、メタデータとしてキーフレームに関連付けられている。
次に、制御部1は、キーフレームの座標位置を通る、垂直方向の軸(図13、一点鎖線参照)を特定する(ステップ603)。また、このとき、制御部1は、下向き(重力の向き)がどちらの方向であるかを特定する。なお、垂直方向の軸及び下向きの方向を特定するために、制御部1は、例えば、キーフレームの取得時などにおいて、予め、慣性センサ5からの情報をメタデータとして環境地図内に記憶しておく。
次に、制御部1は、3次元点群の中から、そのキーフレームの床面に対応する点を選択する(ステップ604)。この点の選択においては、まず、制御部1は、点の検索範囲(図13、点線の四角参照)を設定する。この検索範囲は、垂直方向の軸(図13、一点鎖線)の周囲において、キーフレームの座標位置(図13、大きい黒丸)よりも下向きに設定される。
次に、制御部1は、3次元点群(図13、ドット参照)の中から、検索範囲内に含まれる点をX個選択する。このとき、制御部1は、検索範囲内の点のうち、低い位置にある点を優先的にX個選択する。
次に、制御部1は、選択された各点のクラスに基づいて、そのキーフレームの床面のクラスを特定する(ステップ605)。このとき、制御部1は、選択された各点のクラスをそれぞれ記憶部2から読み出し、最も数が多いクラスを、そのキーフレームの床面のクラスとする。次に、制御部1は、キーフレームと、床面のクラスとを関連付けてメタデータとして環境地図内に記憶する(ステップ606)。
次に、制御部1は、検索範囲内において選択された各点に基づいて、床面の位置を特定する(ステップ607)。この床面の位置は、例えば、検索範囲内において選択された点の重心位置(図13、×印参照)である。この床面の位置は、第1のキーフレームと第2のキーフレームとの間の経路を探索するときに使用される。次に、制御部1は、キーフレームと、床面の位置とを関連付けてメタデータとして環境地図内に記憶する(ステップ607)。
次に、制御部1は、床面のクラスが未分類のキーフレームが残っているかどうかを判定する(ステップ609)。床面のクラスが未分類のキーフレームが残っている場合(ステップ609のYES)、制御部1は、ステップ601へ戻り、キーフレームを1つ選択して、再び、ステップ602以降の処理を実行する。一方、全てのキーフレームについて、床面のクラスの分類が完了した場合(ステップ609のNO)、制御部1は処理を終了する。
(キーフレームに対応する位置での安全度)
キーフレームに対応する位置での安全度は、キーフレームに対してそれぞれ関連付けられた床面のクラスに基づいて判定される。例えば、床面のクラスが歩道、芝、建物内の床、廊下等であるキーフレームは、安全度が相対的に高いと判断され、このようなキーフレームが第2のキーフレームとして優先的に選択される。一方、例えば、床面のクラスが、車道、踏切、横断歩道等であるキーフレームは、安全度が相対的に低いと判断され、このようなキーフレームは、第2のキーフレームとして選択されない。なお、例えば、床面のクラスが歩道であっても、車道、踏切、横断歩道に近いキーフレームについては、安全度が相対的に低いと判断されてもよい。
(階段)
また、キーフレームが階段上にある場合には、このようなキーフレームは、安全度が相対的に低いと判断され、第2のキーフレームとして選択されなくてもよい。
図14は、階段上にキーフレームが存在する場合の一例を示す図である。図14では、ヘッドマウントディスプレイ10を装着したユーザが(x)の地点→(y)の地点→(z)の地点と移動し、階段上である(Y)の地点にキーフレームが設定されたときの様子が示されている。
キーフレームが階段上にあるかどうかは、例えば、以下の様にして判定される。まず、制御部1は、キーフレーム画像を撮像する前において(例えば、(x)の地点)、自己位置推定における高さの情報を記憶部2に記憶しておく。また、制御部1は、キーフレーム画像の撮像時において(例えば、(y)の地点)、自己位置推定における高さを記憶する。さらに、制御部1は、キーフレーム画像を撮像した後において(例えば、(z)の地点)、自己位置推定における高さの情報を記憶部2に記憶しておく。
そして、制御部1は、キーフレーム撮像前の高さ<キーフレーム撮像時の高さ<キーフレーム撮像後の高さであるかどうかを判定する(ユーザが階段を上った場合)。また、制御部1は、キーフレーム撮像前の高さ>キーフレーム撮像時の高さ>キーフレーム撮像後の高さであるかどうかを判定する(ユーザが階段を下った場合)。
高さがいずれかの条件を満たす場合、制御部1は、キーフレーム撮像前の高さと、キーフレーム撮像後の高さとの差の絶対値を算出し、この絶対値が所定の閾値以上である場合、キーフレームが(坂でなく)階段上にあると判定する。この場合、床面のクラスが階段であるとして、対応するキーフレームのメタデータとして環境地図内に記憶される。なお、キーフレーム画像の撮像時及び撮像前後の画像に基づいて、キーフレームが階段上であるかどうかが判定されてもよい。
「4.第1のキーフレームとの間の経路の安全度」
図9の説明に戻る。 対応する位置の安全度が相対的に高いキーフレームを候補として選択すると、次に、制御部1は、その候補の中から、第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームを選択し、第2のキーフレームの候補をさらに絞り込む(ステップ204)。この場合、制御部1は、第1のキーフレームとの間の経路の安全度が所定の閾値以上であるキーフレームを、第2のキーフレームの候補として選択する。
第1のキーフレームとの間の経路の安全度をどのように判断するかについて、一例を挙げて具体的に説明する。図15は、第1のキーフレームとの間の経路の安全度に関する処理を示すフローチャートである。
制御部1は、まず、第1のキーフレームにおける床面位置を経路の開始地点に設定する(ステップ701)。なお、キーフレームにおける床面位置は、上述のステップ608において既に環境地図内に記憶されている。
次に、制御部1は、第2のキーフレームの候補の中から、候補を1つ選択する(ステップ702)。次に、制御部1は、第1のキーフレームと、第2のキーフレームの候補との間の経路情報が存在するかどうかを判定する(ステップ703)。経路情報は、経路自体の情報、経路の長さの情報及び経路の安全度の情報を含む。
第1のキーフレームと、選択された第2のキーフレームの候補との間の経路情報が既に存在している場合(ステップ703のYES)、制御部1は、ステップ711へ進む。一方、経路情報が存在しない場合(ステップ703のNO)、制御部1は、経路情報を生成するため、ステップ704〜ステップ709の処理を実行する。
ステップ704では、制御部1は、第2のキーフレームの候補の床面位置(ステップ608参照)を経路の終着地点に設定する。次に、制御部1は、経路の検索条件を設定する(ステップ705)。検索条件は、例えば、クラス分類された3次元点群について、歩道や建物内の床、廊下等のクラスが割り当てられた点を移動可能とする。また、歩道や、建物内の床、廊下等のクラスが割り当てられた点の間隔が所定の閾値以下である場合に移動可能とされる。
次に、制御部1は、上述の検索条件の下、クラス分類された3次元点群に対して、A*探索アルゴリズム等の探索アルゴリズムを適用して、開始地点と終着地点との間の経路を探索する(ステップ706)。
次に、制御部1は、探索アルゴリズムにより経路が探索できたかどうかを判定する(ステップ707)。経路が探索でき、経路が存在している場合(ステップ707のYES)、制御部1は、その経路の安全度が相対的に高いと判断する(ステップ708)。一方、経路が探索できず、経路が存在していない場合(ステップ707のNO)、制御部1は、その経路の安全度が相対的に低いと判断する(ステップ709)。
なお、ここでの例では、第1のキーフレームに対応する位置から第2のキーフレームの候補の間の経路について、歩道、建物内の床、廊下等が途切れていない場合には、経路の安全度が相対的に高いと判断される。一方、横断歩道、踏切などにより歩道が途中で途切れているような場合には、経路の安全度が相対的に低いと判断される。
なお、横断歩道、踏切などにより歩道が途中で途切れている場合でも、横断歩道、踏切の数が閾値以下ある場合には、経路の安全度が相対的に高いと判断されてもよい。これは、上述の検索条件(ステップ705)を変更することで適宜調整可能である。
経路の安全度を判断すると、次に、制御部1は、経路自体の情報、経路の長さの情報、経路の安全度の情報を含む経路情報を、2つのキーフレーム(開始地点及び終着地点)に関連付けてメタデータとして環境地図内に記憶する(ステップ710)。なお、経路の長さについては、キーフレームの組をキー、経路の長さを値とした連想配列により記憶されてもよい。
制御部1は、ステップ710で経路情報を記録した場合、並びに、ステップ703で既に経路情報が存在している場合、次のステップ711へ進む。ステップ711では、制御部1は、第1のキーフレームと選択された第2のキーフレームの候補との間の経路の安全度が相対的に高いかどうかを、経路の安全度の情報に基づいて判定する。
経路の安全度が相対的に高い場合(ステップ711のYES)、制御部1は、その第2のキーフレームの候補を、そのまま候補として残す(ステップ712)。一方、経路の安全度が相対的に低い場合(ステップ711のNO)、制御部1は、その第2のキーフレームを、候補から除外する(ステップ713)。
次に、制御部1は、経路の安全度の高低が未判定の第2のキーフレームの候補が残っているかどうかを判定する(ステップ714)。経路の安全度が未判定の第2のキーフレームの候補が残っている場合(ステップ714のYES)、制御部1は、ステップ702に戻り、第2のキーフレームの候補を選択し、再び、ステップ703以降の処理を実行する。一方、全ての第2のキーフレームの候補について、経路の安全度の高低が判断された場合(ステップ714のNO)、制御部1は、処理を終了する。
図9の説明に戻る。経路の安全度が相対的に高いキーフレームを第2のキーフレームの候補として選択すると、次に、制御部1は、第2のキーフレームの候補が存在しているかどうかを判定する(ステップ205)。つまり、制御部1は、上述の1.〜4.の全ての判断基準を満たす第2のキーフレームの候補が存在するかどうかを判定する。
第2のキーフレームの候補が存在していない場合(ステップ205のNO)、制御部1は、ステップ100へ戻り、再び、第1のキーフレーム選択処理及び仮の初期位置設定処理を実行する。一方、第2のキーフレームの候補が存在している場合(ステップ205のYES)、制御部1は、第2のキーフレームの候補の中から、現在位置(第1のキーフレームに対応する位置)から最も近いキーフレームを1つ選択する(ステップ206)。このとき選択された1つのキーフレームが第2のキーフレームとなる。
「5.第1のキーフレームとの距離」
第1のキーフレームと、第2のキーフレームの候補との間の距離としては、例えば、上述の経路の長さの情報が用いられる。この場合、制御部1は、第2のキーフレームの候補の中から、第1のキーフレームと間の経路の長さが最も短い候補を1つ選択し、この候補を第2のキーフレームとする。なお、経路の長さが、キーフレームの組をキー、経路の長さを値とした連想配列により記憶されている場合、値をソートすることで経路が最も短いキーフレームを選択することができる。
第1のキーフレームと、第2のキーフレームの候補との間の距離は、経路の長さ(道のり)ではなく、単純な直線距離が用いられてもよい。この場合、制御部1は、第1のキーフレームの座標と、第2のキーフレームの座標との差分により直線距離を求める。そして、制御部1は、第1のキーフレームに対して直線距離が最も短い第2のキーフレームの候補を、第2のキーフレームとして選択する。
「第2のキーフレーム選択時のその他の基準」
次に、第2のキーフレーム選択時におけるその他の基準について説明する。
6.キーフレーム画像が時間変化し難い(動物、乗り物、植物等が少ない)
例えば、キーフレーム画像内において動物(人を含む)、乗り物、植物等が写っているとする。動物(人を含む)や乗り物は、通常、その場に留まっておらず、移動する。また、植物は風に揺られる場合があり、また、時間が経てば成長する。
この場合、誘導先において撮像部4からの画像と、第2のキーフレームの画像とのマッチングにより自己位置を推定するときに、実際には自己位置を推定することができるはずであるのに、自己位置を推定することができなくなってしまう場合がある。逆に、実際には自己位置を推定することができるはずなのに、自己位置を推定することができない場合もある。従って、典型的には、対応する位置での画像が相対的に時間変化し難いキーフレームが優先的に第2のキーフレームとして選択される。
例えば、制御部1は、環境地図内における全てのキーフレームの画像に対してセマンティックセグメンテーション処理や、一般物体認識処理などを実行する。そして、制御部1は、画像全体の総ピクセル数に対する、動物、乗り物、植物のピクセル数の割合を算出し、この割合をメタデータとして環境地図内に記憶する。そして、制御部1は、上記割合が、所定の閾値以下であるキーフレームを、優先的に第2のキーフレームとして選択する。
7.キーフレーム画像の撮像時からの時間が短い
キーフレーム画像の撮像時からあまり時間が経ってしまうと、6.の場合と同様に正確にマッチングによる自己位置推定が行えない可能性がある。従って、典型的には、撮像時からの時間が相対的に短いキーフレームが、優先的に第2のキーフレームとして選択される。
例えば、制御部1は、キーフレーム画像の撮像時に時刻情報をメタデータとして環境地図内に記憶しておく。そして、制御部1は、キーフレーム画像の撮像時の時刻と、現在時刻との差分を算出し、差分が小さいキーフレームを優先的に第2のキーフレームとして選択する。
8.現在の日照に対して日照の変化が少ない
現在の日照に対して日照の変化が大きいと(現在が朝日、キーフレームが夕日等)、6.7.の場合と同様に、正確にマッチングによる自己位置推定が行えない可能性がある。従って、典型的には、現在の日照に対して日照の変化が少ないキーフレームが、優先的に第2のキーフレームとして選択される。
この場合、制御部1は、キーフレーム画像の撮像時において、緯度及び経度情報、並びに、撮像時刻をメタデータとして環境地図内に記憶する。なお、この場合には、緯度及び経度情報を得るために、ヘッドマウントディスプレイ10にGPS(Global Positioning System)が設けられる。また、制御部1は、物体認識処理により(あるいは、人が手動で)、キーフレーム画像が屋外で撮像されたか屋内で撮像されたかを判断し、屋外又は屋内の情報をメタデータとして環境地図内に記憶しておく。
制御部1は、第2のキーフレームを選択するとき、屋外のメタデータが関連づけられたキーフレームが候補に含まれている場合、制御部1は、以下の処理を実行する。まず、制御部1は、現在の緯度及び経度(GPS)を推定し、また、現在時刻を取得する。制御部1は、現在の緯度及び経度、並びに、現在時刻に基づいて、現在の太陽の位置を推定する。また、制御部1は、屋外のメタデータが関連付けられた第2のキーフレームの候補について、それぞれ、キーフレーム撮像時における太陽の位置を推定する(この処理は予め実行され、太陽の位置はメタデータとして記憶されていてもよい)。
次に、制御部1は、現在の太陽の位置と、キーフレーム撮像時における太陽の位置とについて、アジマス(極座標系φ)/アルティテュード(極座標系θ)の差分のノルムを算出する。そして、制御部1は、ノルムの値が所定の閾値以下のキーフレームについては、現在の日照に対して日照の変化が少ないキーフレームであるとする。そして、制御部1は、このようなキーフレームを優先的に第2のキーフレームとして選択する。
なお、現在時刻が夜間(日の入りから日の出まで)であり、キーフレーム撮像時刻が夜間の場合、制御部1は、現在の日照に対して日照の変化が少ないキーフレームであるとして、このようなキーフレームを優先的に第2のキーフレームとして選択してもよい。
9.マッチング(自己位置推定)の失敗回数が少ない
過去にそのキーフレームが第2のキーフレームとして選択されたときに、マッチングによる自己位置推定が失敗してしまっている場合、そのようなキーフレームが、再び、第2のキーフレームとして選択されてしまうと、同じように、再びマッチングによる自己位置推定が失敗してしまう可能性が高い。従って、典型的には、マッチングによる自己位置推定の失敗回数が相対的に少ないキーフレームが優先的に第2のキーフレームとして選択される。
制御部1は、マッチングによる自己位置推定に失敗した場合、失敗した回数を示す情報を第2のキーフレームに関連付けてメタデータとして記憶する(後述のステップ411参照)。制御部1は、第2のキーフレームを選択するとき、失敗回数を参照して、失敗回数が所定の閾値以下のキーフレームを優先的に第2のキーフレームとして選択する。
10.キーフレームが到達不可能な場所にない
例えば、キーフレームが、空中や水上など到達不可能な場所に存在すると、ユーザが移動できない。従って、典型的には、到達不可能な場所に存在するキーフレームが優先的に第2のキーフレームとして選択される。
一例として、キーフレームが空中に存在するかどうかは以下の様にして判断される。図12、13を参照して、例えば、制御部1は、ステップ604において床面の位置(×印参照)を特定した後、キーフレームの座標(大きい黒丸参照)と、床面の位置との差分を算出する。制御部1は、この差分が所定の閾値以上である場合、キーフレームが空中に存在すると判断する。制御部1は、このようなキーフレームについては、第2のキーフレームの候補から除外する。
11.キーフレームが、立ち入りが制限されている場所にない
キーフレームが、例えば、私道、私有地、トイレ、学校、駅の改札内等、立ち入り制限のある場所に存在すると、ユーザがその場所に到達できない。従って、典型的には、立ち入りが制限されていない場所に存在するキーフレームが優先的に第2のキーフレームとして選択される。
例えば、制御部1は、キーフレームの生成時において、物体認識処理などにより、立ち入りが制限されている場所であるかどうかを判断する。例えば、生活空間が大きく写っている場合には、私有地の可能性があり、便器が写っている場合にはトイレである可能性があるので、立ち入りが制限されていると判断する。そして、制御部1は、キーフレームが立ち入りの制限されている場所にあると判断した場合には、立ち入り制限フラグをメタデータとして環境地図内に記憶する。制御部1は、立ち入り制限フラグが設定されたキーフレームについては、第2のキーフレームの候補から除外する。
12.ユーザが自然な体勢でマッチング(自己位置推定)できる位置にある
キーフレームが自然な体勢でマッチングできる位置にない場合(ユーザの目線の高さから遠すぎる、地面に近すぎる、横向きである等)、ユーザに無理な体勢を強いることになる。従って、典型的には、ユーザが自然な体勢でマッチングによる自己位置推定ができる位置にあるキーフレームが優先的に第2のキーフレームとして選択される。
ユーザの目線の高さに近いかどうかは、以下の処理により判断可能である。例えば、制御部1は、仮の初期位置(ステップ106参照)の高さと、環境地図内のキーフレームの高さとの差分を計算する。制御部1は、差分が閾値以下のキーフレームを、ユーザの目線の高さに近いキーフレームであるとして優先的に第2のキーフレームとして選択する。
地面から近すぎるかどうかは、以下の処理により判断可能である。図12、13を参照して、例えば、制御部1は、ステップ604において床面の位置(×印参照)を特定した後、キーフレームの座標(大きい黒丸参照)と、床面の位置との差分を算出する。この差分が所定の閾値以下である場合、キーフレームが地面から近すぎると判断する。制御部1は、このようなキーフレームについては、第2のキーフレームの候補から除外する。
13.対応する位置への移動時に上下動が少ない
そのキーフレームに対応する位置への移動時において、階段やエレベータを使う必要や、座ったり立ったりする必要があるとユーザが疲れてしまう。従って、典型的には、対応する位置への移動時に上下動が少ないキーフレームが優先的に第2のキーフレームとして選択される。
この場合、例えば、制御部1は、仮の初期位置(ステップ106参照)の高さと、環境地図内のキーフレームの高さとの差分を計算する。制御部1は、差分が閾値以下のキーフレームを、上下動が少ないキーフレームであるとして優先的に第2のキーフレームとして選択する。
14.床面が平坦である
床面が凸凹していると移動時にユーザが疲れてしまう。従って、典型的には、第1のキーフレームとの間の経路における床面の平坦度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。
この場合、制御部1は、3次元点群の情報に基づいて、第1のキーフレームと、第2のキーフレームの候補との間の経路における床面の平坦度を求める。例えば、制御部1は、経路における床面の高さの変化量の積分値をそれぞれ算出する。そして、制御部1は、積分値が所定の閾値以下のキーフレームを、床面の平坦度が相対的に高いキーフレームであるとして優先的に第2のキーフレームとして選択する。
なお、第2のキーフレームの選択における判断基準は、典型的には、1.〜14.のうち少なくとも1以上の判断基準が用いられればよく、1.〜14.の判断基準は、適宜互いに組み合わせることができる。
[誘導処理]
次に、第1のキーフレームに対応する位置から第2のキーフレームに対応する位置へとユーザを誘導する誘導処理について具体的に説明する。図16は、誘導処理を示すフローチャートである。
図16に示すように、第2のキーフレームが選択された後、制御部1は、第2のキーフレームに対応する位置へユーザを誘導するためのコンテンツ出力を開始する(ステップ301)。この誘導は、上述の経路情報に基づいて実行される。図6の左下の例では、第2のキーフレームとして選択された(H)の地点のキーフレームの位置にユーザを誘導しているときの様子が示されている。
図17は、誘導におけるコンテンツ出力の一例を示す図である。図17の一番上には、第2のキーフレームに対応する位置へユーザを誘導する鳥の仮想オブジェクトがAR表示された場合の一例が示されている。また、この例では、第2のキーフレームに対応する位置までの経路を示す矢印がAR表示されている。この例では、ユーザは、飛び回る鳥の仮想オブジェクトを追いかけたり、経路の矢印に沿って移動したりすることで自然に第2のキーフレームに対応する位置へ移動することができる。
また、この例では、ユーザが第2のキーフレームに対応する位置へ移動した後、鳥の仮想オブジェクトが第2のキーフレームの向きに応じた方向へ飛ぶようなAR表示が行われる。ユーザは、その方向へ飛ぶ鳥の仮想オブジェクトを眼で追うことで、自然に第2のキーフレームに対応する方向を向くことができる。
また、図17の上から2番目には、第2のキーフレームに対応する位置に鳥の仮想オブジェクトがAR表示され、また、スピーカ7から鳥のさえずる音(あるいは、ここに移動してくださいと鳥がしゃべる音)が出力される場合の一例が示されている。また、この例では、第2のキーフレームに対応する位置までの経路を示す矢印がAR表示されている。ユーザは、経路の矢印に沿って鳥の仮想オブジェクトの位置へ移動することで自然に第2のキーフレームに対応する位置に移動することができる。
また、この例では、ユーザが第2のキーフレームに対応する位置へ移動した後、鳥の仮想オブジェクトが第2のキーフレームの向きに応じた方向へ飛び立つようなAR表示が行われる。また、飛び立った鳥が「こっちを向いてください」としゃべる音がスピーカ7から出力される。ユーザは、その方向へ飛び立つ鳥の仮想オブジェクトを眼で追ったり、鳥の声を聴いたりすることで、自然に第2のキーフレームに対応する方向を向くことができる。
図17の上から3番目には、第2のキーフレームに対応する位置に「ここに移動してください」という文字の仮想オブジェクトと、サークル、ピン、及びピンから伸びる向きを示す矢印の仮想オブジェクトとがAR表示された場合の一例が示されている。また、この例では、第2のキーフレームに対応する位置までの経路を示す矢印がAR表示されている。この例では、ユーザは、経路の矢印に沿ってサークル内のピンが立っている位置まで移動し、ピンに設けられた矢印の方向を向くことで自然に第2のキーフレームに対応する位置へ移動し、第2のキーフレームに対応する方向を向くことができる。
図17の一番下には、第2のキーフレームに対応する位置がユーザから見えない位置にあるので、「後ろを向いてください」との文字の仮想オブジェクトがAR表示された場合の一例が示されている。なお、第2のキーフレームに対応する位置がユーザから見えない位置にある場合でも、このように、ユーザの見える位置に仮想オブジェクトが配置され、次の行動が指示される。
仮想オブジェクトは、これから実行されるアプリケーションに関連するオブジェクトであってもよい。例えば、実行されるアプリケーションがゲームなどである場合、仮想オブジェクトは、ゲームに登場するキャラクターなどであってもよい。
誘導を行うためのコンテンツ出力は、振動であってもよい。この場合、例えば、右テンプル部13及び左テンプル部14にそれぞれ振動部が設けられる。そして、ユーザに右に移動させたり右を向かせたい場合には、右テンプル部13の振動部が振動され、左に移動させたり左を向かせたい場合には、左テンプル部14の振動部が振動される。
誘導を行うためのコンテンツ出力は、ユーザが知覚可能なフォーマットで実行されればどのようなフォーマットで実行されても構わない。典型的には、誘導を行うためのコンテンツ出力におけるコンテンツは、画像、音声及び振動のうち少なくとも1つであればよい。
図16に戻り、誘導におけるコンテンツ出力を開始すると、次に、制御部1は、現在において撮像部4により撮像された画像(環境情報)と、第2のキーフレームの画像とのマッチングによる自己位置推定(第1の自己位置推定)を開始する(ステップ302)。
つまり、制御部1は、誘導におけるコンテンツ出力の開始後は、撮像部4によって現在撮像された画像の特徴点と第の2キーフレームの特徴点とを比較し、撮像部4による画像と第2のキーフレームとの間でマッチングが取れて自己位置を推定することができたかどうかを常時判断する。
マッチングによる自己位置推定を開始すると、次に、制御部1は、SLAMに基づく自己位置推定(第2の自己位置推定)を開始する(ステップ303)。この自己位置推定では、制御部1は、ステップ106で設定された仮の初期位置を基準として自己位置を推定する。SLAMに基づく自己位置推定では、制御部1は、現在取得された画像の特徴点と、過去の画像(例えば、数フレーム前の画像)の特徴点との変化量、並びに、慣性センサ5から取得された慣性情報に基づいて、現在の自己位置及び姿勢を推定する。
[第2のキーフレームとのマッチング処理及びやり直し処理]
次に、第2のキーフレームとのマッチング処理及びやり直し処理ついて具体的に説明する。図18は、第2のキーフレームとのマッチング処理及びやり直し処理を示すフローチャートである。
図18に示すように、まず、制御部1は、ユーザからやり直し指示が入力されたかどうかを判定する(ステップ401)。ここで、仮の初期位置が正しければ、第2のキーフレームに対応する位置までの経路や、第2のキーフレームに対応する位置には何もなく、ユーザは誘導に従ってスムーズに第2のキーフレームに対応する位置に到達できるはずである。一方、仮の初期位置が誤っていた場合、ユーザが誘導に従って移動しても道が存在していなかったり、誘導先が予想しないような位置に設定されていたりする場合がある。
例えば、このような場合に、ユーザからやり直し指示が入力される。図19は、ユーザによるやり直し指示の一例を示す図である。図19に示す例では、仮の初期位置が誤っていたため、誘導先が壁の中に設定されてしまっているときの様子が示されている。
表示部3の中央には、「やりなおしますか」の文字と「YES」及び「NO」の文字を含むやり直し選択のための画像が表示されている。制御部1は、例えば、ユーザによる操作部6への操作に応じて、この画像を表示させる。また、制御部1は、ユーザによる操作部6への操作に応じて「YES」が選択されたとき、ユーザからやり直しの指示が入力されたと判定する。
ユーザからやり直しの指示が入力された場合(ステップ401のYES)、制御部1は、失敗回数を+1とする(ステップ411)。そして、制御部1は、この失敗回数を、現在第2のキーフレームとして選択されているキーフレームに対応するメタデータとして環境地図内に記憶する。この失敗回数は、例えば、第2のキーフレームの選択時における判断基準として用いられる(上述の9.参照)。
失敗回数を記憶すると、制御部1は、ステップ100へ戻り、処理を最初からやり直す(やり直し処理)。やり直し処理では、現在位置で第1のキーフレームが再選択されて、そのキーフレームに基づいて、再び仮の初期位置が設定される。また、第2のキーフレームが再選択され、再選択された第2のキーフレームの位置への誘導におけるコンテンツ出力が行われて、その位置での画像が取得される。
ユーザからやり直しの指示が入力されていない場合(ステップ401のNO)、次に、制御部1は、タイマがタイムアウトしたかどうかを判定する(ステップ402)。このタイマは、誘導おけるコンテンツ出力が開始されたタイミングでカウントを開始し、誘導開始から所定時間後(例えば5分程度)にタイムアウトする。
タイマがタイムアウトした場合(ステップ402のYES)、制御部1は、やり直し指示があった場合と同様に、失敗回数を+1とし、この失敗回数をメタデータとして環境地図内に記憶する(ステップ411)。そして、制御部1は、ステップ100へ戻って、処理を最初からやり直す(やり直し処理)。
つまり、制御部1は、誘導開始から所定時間経過しても、撮像部4からの画像と第2のキーフレームとの間のマッチングが取れておらず、自己位置推定が行えていない場合、仮の初期位置が誤っていた可能性が高いと判断して、処理を最初からやり直す。
タイマが未だタイムアウトしていない場合(ステップ402のNO)、制御部1は、第2のキーフレームに対応する位置に障害物が存在するかどうかを判定する(ステップ403)。
図20は、第2のキーフレームに対応する位置に、障害物が存在しているときの一例を示す図である。図20では、第2のキーフレームの位置(誘導先)に車が障害物として存在している。
ここで、仮の初期位置が正かったとしても、第2のキーフレームに対応する位置に車などの障害物が存在する場合がある。例えば、キーフレーム撮像時には、対応する位置には車などの障害物はなかったが、現在においては、障害物が存在する場合がある。この場合、ユーザは、障害物が邪魔で第2のキーフレームに対応する位置に移動することができない。
制御部1は、例えば、一般物体認識、デプスセンサ等により、第2のキーフレームに対応する位置に障害物が存在するかどうかを判定する。障害物が存在する場合(ステップ403のYES)、制御部1は、やり直し指示、タイムアウトの場合と同様に、失敗回数を+1とし、この失敗回数をメタデータとして環境地図内に記憶する(ステップ411)。そして、制御部1は、ステップ100へ戻って、処理を最初からやり直す(やり直し処理)。
一方、第2のキーフレームに対応する位置に障害物が存在していない場合(ステップ403のNO)、制御部1は、撮像部4によって現在撮像された画像の特徴点と、第2のキーフレームの特徴点とを比較し、マッチングがとれたかどうかを判定する(ステップ404)。なお、制御部1は、ステップ404において、第2のキーフレームと、第2のフレームに対応する位置で取得された画像情報(環境情報)とに基づいて、仮の初期位置が正しかったかどうかを判断している。
マッチングが未だ取れていない場合(ステップ404のNO)、制御部1は、ステップ401へ戻り、ユーザからやり直し指示があったかどうかを判定する。
一方、マッチングが取れた場合(ステップ404のYES)、制御部1は、撮像部4によって現在撮像された画像に含まれる領域と、第2のキーフレームの画像に含まれる領域との共通領域内にある特徴点のマッチングを行なって、現在の自己位置(第1の自己位置)を推定する(ステップ406)。
次に、制御部1は、SLAMに基づく自己位置(第2の自己位置)(ステップ303参照)を記憶部2から取得する(ステップ407)。そして、制御部1は、第2のキーフレームとのマッチングに基づく自己位置(第1の自己位置)と、SLAMに基づく自己位置(第2の自己位置)との差分を算出する(ステップ408)。
図6の右下を参照して、この例では、(H)の地点に第2のキーフレームが存在し、この第2のキーフレームとのマッチングに基づく自己位置推定によって(h)の点に自己位置が推定されている様子が示されている。また、この例では、SLAMに基づく自己位置推定によって(h')の地点に自己位置が推定されているときの様子が示されている。ステップ408では、例えば、(h)の地点の自己位置と、(h')の位置の自己位置との差分が計算される。
次に、制御部1は、その差分が所定の閾値以下であるかどうかを判定する(ステップ409)。なお、ステップ409では、制御部1は、第2のキーフレームとのマッチングに基づく自己位置と、SLAMに基づく自己位置との差分に基づいて、仮の初期位置が正しかったかどうかを判断している。
差分が閾値を超える場合(ステップ409のNO)、制御部1は、ステップ401へ戻る。一方、差分が閾値以下である場合(ステップ410のYES)、制御部1は、自己位置が正しく同定された(仮の初期位置が正しかった)と判断して、誘導におけるコンテンツ出力を終了する(ステップ410)。なお、精度を高めるため、この後、ステップ100へ戻ってもう一度同じ処理(やり直し処理)を実行してもよい。
誘導を終了すると、制御部1は、アプリケーションを開始する。このとき、第2のキーフレームとのマッチングに基づく自己位置推定は終了されるが、SLAMに基づく自己位置推定については引き続き実行される。
ここで、仮に、第2のキーフレームの選択時において、ステップ201〜204の全ての判断基準(ユニーク度高、非類似、安全位置、安全経路)を満たすことができなかったが、一部(例えば、ユニーク度高)を満たすキーフレームが存在したとする。つまり、第2のキーフレームとしては最終的に選択されなかったキーフレームが存在していたとする。ここでの説明では、このようなキーフレームを、便宜的に、準第2のキーフレームと呼ぶ。
制御部1は、誘導におけるコンテンツ出力の開始後、撮像部4によって現在撮像された画像と、第2のキーフレームとのマッチングによる自己位置推定を行って(ステップ302、ステップ404参照)、仮の初期位置が正しかったかどうかを判断している。一方、制御部1は、撮像部4によって現在撮像された画像と、第2のキーフレームとのマッチングだけでなく、撮像部4によって現在撮像された画像と、準第2のキーフレームとのマッチングを行ってもよい。
この場合、例えば、第2のキーフレームへの誘導における経路の途中に準第2のキーフレームが存在していれば、この準第2のキーフレームとのマッチングに基づく自己位置推定が成功する場合がある。このような場合、制御部1は、その後、ステップ406〜ステップ409を実行して、差分が閾値以下となれば、自己位置が正しく同定された(仮の初期位置が正しかった)と判断してもよい。
<作用等>
本実施形態では、自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームが選択される。そして、第2のキーフレームに対応する位置への誘導におけるコンテンツ出力が行われて、第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報が取得される。
これにより、例えば、似たような風景に基づく画像を含むキーフレームが複数存在していて、初期位置(自己位置)が誤った位置に設定されてしまったとしても、初期位置(自己位置)が正しかったかどうかを正確に判断することができる。これにより、自己位置の推定の精度を向上させることができる。
また、本実施形態では、ユニーク度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。また、第1のキーフレームとの類似度が相対的に低いキーフレームが優先的に第2のキーフレームとして選択される。これにより、上述の2重の誤判定を防止することができ、自己位置の推定の精度を向上させることができる。
また、本実施形態では、対応する位置における安全度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。また、第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームが優先的に第2のキーフレームとして選択される。これにより、ユーザの安全性を確保することができる。
また、本実施形態では、第1のキーフレームとの距離が相対的に近いキーフレームが優先的に第2のキーフレームとして選択される。これにより、ユーザが疲れてしまうことを防止することができ、また、アプリケーションを素早く開始するこができる。また、本実施形態では、対応する位置での画像が相対的に時間変化し難いキーフレームが優先的に第2のキーフレームとして選択される。これにより、第2のキーフレームに対応する位置で適切にマッチングを行うことができる。
また、本実施形態では、誘導におけるコンテンツ出力は、ユーザが知覚可能なフォーマットで実行される。また、コンテンツ出力におけるコンテンツが、画像、音声又は振動のうち少なくとも1つとされている。これにより、適切にユーザを誘導することができる。
また、本実施形態では、第2のキーフレームと、第2のフレームに対応する位置で取得された環境情報とに基づいて、初期位置が正しかったかどうかが判断される。また、第2のキーフレームと、第2のキーフレームに対応する位置で取得された環境情報とのマッチングに基づいて、初期位置が正しかったかどうかが判断される。これにより、初期位置が正しかったかどうかを適切に判断することができる。
また、本実施形態では、第2のキーフレームとのマッチングに基づく自己位置と、初期位置を基準としたSLAMに基づく自己位置との差に基づいて、初期位置が正しかったかどうかが判断される。これにより、初期位置が正しかったかどうかを適切に判断することができる。
また、本実施形態では、所定の条件下で、第2のキーフレームが再選択され、再選択された第2のキーフレームの位置へ誘導するためのコンテンツ出力を実行するやり直し処理が実行される。これにより、初期位置が誤っていた場合に、初期位置を適切に修正することができる。
≪各種変形例≫
以上の説明では、上述の各処理がヘッドマウントディスプレイ10により実行される場合について説明した。一方、上述の各処理は、例えば、携帯電話機(スマートフォンを含む)、PC(タブレットPC、ラップトップPC、デスクトップPC等)、ネットワーク上のサーバ装置等の外部機器により実行されてもよい。この場合、処理に必要な環境地図等の情報は、外部機器に保存され、また、ヘッドマウントディスプレイ10は、必要に応じて、撮像部4による画像等の情報を外部機器に送信する。また、上述の各処理は、一部がヘッドマウントディスプレイ10により実行され、他の一部が外部機器により実行されてもよい。
以上の説明では、情報処理装置の一例として、ヘッドマウントディスプレイ10を例に挙げて説明したが、情報処理装置は、これに限られない。例えば、情報処理装置は、リストバンド型、指輪型、ペンダント型などのヘッドマウントディスプレイ10以外のウェアラブル装置であってもよい。あるいは、情報処理装置は、携帯電話機(スマートフォンを含む)であってもよいし、PCやネットワーク上のサーバ装置であってもよい。典型的には、情報処理装置は、自己位置推定の処理を行う装置であれば、どのような装置であってもよい。
本技術は、以下の構成をとることもできる。
(1)自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する制御部
を具備する情報処理装置。
(2) 上記(1)に記載の情報処理装置であって、
前記制御部は、ユニーク度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
情報処理装置。
(3) 上記(1)又は(2)に記載の情報処理装置であって、
前記制御部は、前記第1のキーフレームとの類似度が相対的に低いキーフレームを優先的に前記第2のキーフレームとして選択する
情報処理装置。
(4) 上記(1)〜(3)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、対応する位置における安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
情報処理装置。
(5) 上記(1)〜(4)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、前記第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
情報処理装置。
(6) 上記(1)〜(5)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、前記第1のキーフレームとの距離が相対的に近いキーフレームを優先的に第2のキーフレームとして選択する
情報処理装置。
(7) 上記(1)〜(6)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、対応する位置での画像が相対的に時間変化し難いキーフレームを優先的に前記第2のキーフレームとして選択する
情報処理装置。
(8) 上記(1)〜(7)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、ユーザが知覚可能なフォーマットで前記コンテンツ出力を実行する
情報処理装置。
(9) 上記(8)に記載の情報処理装置であって、
前記コンテンツ出力におけるコンテンツは、画像、音声又は振動のうち少なくとも1つを含む
情報処理装置。
(10) 上記(1)〜(9)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、前記第1のフレームに基づいて、初期位置を設定する
情報処理装置。
(11) 上記(10)に記載の情報処理装置であって、
前記制御部は、前記第2のキーフレームと、前記第2のフレームに対応する位置で取得された前記環境情報とに基づいて、前記初期位置が正しかったかどうかを判断する
情報処理装置。
(12) 上記(11)に記載の情報処理装置であって、
前記制御部は、前記第2のキーフレームと、前記第2のキーフレームに対応する位置で取得された前記環境情報とのマッチングに基づいて、前記初期位置が正しかったかどうかを判断する
情報処理装置。
(13) 上記(12)に記載の情報処理装置であって、
前記制御部は、前記第2のキーフレームとのマッチングに基づいて自己位置を推定する第1の自己位置推定と、前記初期位置を基準として自己位置を推定する第2の自己位置推定とを実行する
情報処理装置。
(14) 上記(13)に記載の情報処理装置であって、
前記制御部は、前記第1の自己位置推定による第1の自己位置と、前記第2の自己位置推定による第2の自己位置との差に基づいて、前記初期位置が正しかったかどうかを判断する
情報処理装置。
(15) 上記(1)〜(14)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、所定の条件下で、前記第2のキーフレームを再選択し、再選択された前記第2のキーフレームの位置への誘導を行うためのコンテンツ出力を実行するやり直し処理を実行する
情報処理装置。
(16) 上記(15)に記載の情報処理装置であって、
前記条件は、ユーザからやり直し指示が入力されることである
情報処理装置。
(17) 上記(15)又は(16)に記載の情報処理装置であって、
前記条件は、誘導開始から所定時間が経過することである
情報処理装置。
(18) 上記(15)〜(17)のうちいずれか1つに記載の情報処理装置であって、
前記条件は、前記第2のキーフレームの位置に障害物が存在することである
情報処理装置。
(19) 自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、
前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する
情報処理方法。
(20) 自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、
前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する
処理をコンピュータに実行させるプログラム。
1…制御部
2…記憶部
3…表示部
4…撮像部
10…ヘッドマウントディスプレイ

Claims (20)

  1. 自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する制御部
    を具備する情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記制御部は、ユニーク度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  3. 請求項1に記載の情報処理装置であって、
    前記制御部は、前記第1のキーフレームとの類似度が相対的に低いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  4. 請求項1に記載の情報処理装置であって、
    前記制御部は、対応する位置における安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  5. 請求項1に記載の情報処理装置であって、
    前記制御部は、前記第1のキーフレームとの間の経路の安全度が相対的に高いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  6. 請求項1に記載の情報処理装置であって、
    前記制御部は、前記第1のキーフレームとの距離が相対的に近いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  7. 請求項1に記載の情報処理装置であって、
    前記制御部は、対応する位置での画像が相対的に時間変化し難いキーフレームを優先的に前記第2のキーフレームとして選択する
    情報処理装置。
  8. 請求項1に記載の情報処理装置であって、
    前記制御部は、ユーザが知覚可能なフォーマットで前記コンテンツ出力を実行する
    情報処理装置。
  9. 請求項8に記載の情報処理装置であって、
    前記コンテンツ出力におけるコンテンツは、画像、音声又は振動のうち少なくとも1つを含む
    情報処理装置。
  10. 請求項1に記載の情報処理装置であって、
    前記制御部は、前記第1のフレームに基づいて、初期位置を設定する
    情報処理装置。
  11. 請求項10に記載の情報処理装置であって、
    前記制御部は、前記第2のキーフレームと、前記第2のフレームに対応する位置で取得された前記環境情報とに基づいて、前記初期位置が正しかったかどうかを判断する
    情報処理装置。
  12. 請求項11に記載の情報処理装置であって、
    前記制御部は、前記第2のキーフレームと、前記第2のキーフレームに対応する位置で取得された前記環境情報とのマッチングに基づいて、前記初期位置が正しかったかどうかを判断する
    情報処理装置。
  13. 請求項12に記載の情報処理装置であって、
    前記制御部は、前記第2のキーフレームとのマッチングに基づいて自己位置を推定する第1の自己位置推定と、前記初期位置を基準として自己位置を推定する第2の自己位置推定とを実行する
    情報処理装置。
  14. 請求項13に記載の情報処理装置であって、
    前記制御部は、前記第1の自己位置推定による第1の自己位置と、前記第2の自己位置推定による第2の自己位置との差に基づいて、前記初期位置が正しかったかどうかを判断する
    情報処理装置。
  15. 請求項1に記載の情報処理装置であって、
    前記制御部は、所定の条件下で、前記第2のキーフレームを再選択し、再選択された前記第2のキーフレームの位置への誘導を行うためのコンテンツ出力を実行するやり直し処理を実行する
    情報処理装置。
  16. 請求項15に記載の情報処理装置であって、
    前記条件は、ユーザからやり直し指示が入力されることである
    情報処理装置。
  17. 請求項15に記載の情報処理装置であって、
    前記条件は、誘導開始から所定時間が経過することである
    情報処理装置。
  18. 請求項15に記載の情報処理装置であって、
    前記条件は、前記第2のキーフレームの位置に障害物が存在することである
    情報処理装置。
  19. 自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、
    前記第2のキーフレームに対応する位置への誘導を行うためのコンテンツ出力を実行し、
    前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する
    情報処理方法。
  20. 自己位置推定に用いられる複数のキーフレームの中から、現在の自己位置に対応すると想定される第1のキーフレームとは異なる第2のキーフレームを選択し、
    前記第2のキーフレームに対応する位置への誘導を行ためのコンテンツ出力を実行し、
    前記第2のキーフレームに対応する位置で自己位置推定に用いられる環境情報を取得する
    処理をコンピュータに実行させるプログラム。
JP2019221921A 2019-12-09 2019-12-09 情報処理装置、情報処理方法、プログラム Pending JP2021092881A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019221921A JP2021092881A (ja) 2019-12-09 2019-12-09 情報処理装置、情報処理方法、プログラム
PCT/JP2020/044630 WO2021117543A1 (ja) 2019-12-09 2020-12-01 情報処理装置、情報処理方法、プログラム
US17/756,616 US20220412741A1 (en) 2019-12-09 2020-12-01 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019221921A JP2021092881A (ja) 2019-12-09 2019-12-09 情報処理装置、情報処理方法、プログラム

Publications (1)

Publication Number Publication Date
JP2021092881A true JP2021092881A (ja) 2021-06-17

Family

ID=76313249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019221921A Pending JP2021092881A (ja) 2019-12-09 2019-12-09 情報処理装置、情報処理方法、プログラム

Country Status (3)

Country Link
US (1) US20220412741A1 (ja)
JP (1) JP2021092881A (ja)
WO (1) WO2021117543A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114730479A (zh) * 2019-11-12 2022-07-08 索尼集团公司 信息处理装置、信息处理方法和程序
JP2022060816A (ja) * 2020-10-05 2022-04-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225245A (ja) * 2012-04-23 2013-10-31 Sony Corp 画像処理装置、画像処理方法及びプログラム
US20140323148A1 (en) * 2013-04-30 2014-10-30 Qualcomm Incorporated Wide area localization from slam maps
US9947230B2 (en) * 2015-08-03 2018-04-17 Amber Garage, Inc. Planning a flight path by identifying key frames

Also Published As

Publication number Publication date
US20220412741A1 (en) 2022-12-29
WO2021117543A1 (ja) 2021-06-17

Similar Documents

Publication Publication Date Title
US10818188B2 (en) Method for dispatching a vehicle to a user's location
US11328158B2 (en) Visual-inertial positional awareness for autonomous and non-autonomous tracking
US10366508B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
US10885710B2 (en) Reality-guided roaming in virtual reality
US10410328B1 (en) Visual-inertial positional awareness for autonomous and non-autonomous device
AU2022256192B2 (en) Multi-sync ensemble model for device localization
CN106092104B (zh) 一种室内机器人的重定位方法及装置
JP6897668B2 (ja) 情報処理方法および情報処理装置
US11698268B2 (en) Street-level guidance via route path
US10636185B2 (en) Information processing apparatus and information processing method for guiding a user to a vicinity of a viewpoint
WO2021117543A1 (ja) 情報処理装置、情報処理方法、プログラム
JP7485824B2 (ja) ランドマークを使用してユーザの現在の場所または方位を検証するための方法、コンピュータ機器、およびコンピュータ可読メモリ
CN106871906A (zh) 一种盲人导航方法、装置及终端设备
CN101923602A (zh) 区分并标记虚拟场景中不同地型的方法和装置
WO2023125363A1 (zh) 电子围栏自动生成方法、实时检测方法及装置
US9240055B1 (en) Symmetry-based interpolation in images
Schwarze et al. Wall Estimation from Stereo Vision in Urban Street Canyons.
BREJCHA Visual Localization in Natural Environments
Bartie Advances in visibility modelling in urban environments to support location based services
CN117572343A (zh) 视障用户短距离导航方法、装置、电子设备及存储介质
Preston et al. Heuristics & usability of virtual attack points for pedestrian navigation: User study using paper-prototyping
Leung Outdoor Visual Navigation Aid for the Blind in Dynamic Environments