JP2017072560A - 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム - Google Patents

情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP2017072560A
JP2017072560A JP2015201426A JP2015201426A JP2017072560A JP 2017072560 A JP2017072560 A JP 2017072560A JP 2015201426 A JP2015201426 A JP 2015201426A JP 2015201426 A JP2015201426 A JP 2015201426A JP 2017072560 A JP2017072560 A JP 2017072560A
Authority
JP
Japan
Prior art keywords
estimation
unit
image
result
estimation result
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.)
Granted
Application number
JP2015201426A
Other languages
English (en)
Other versions
JP6556015B2 (ja
Inventor
宙 加藤
Chu Kato
宙 加藤
稲田 徹悟
Tetsugo Inada
徹悟 稲田
辰起 柏谷
Tatsuoki Kashiwatani
辰起 柏谷
嵩明 加藤
Takaaki Kato
嵩明 加藤
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 Corp
Sony Interactive Entertainment LLC
Original Assignee
Sony Corp
Sony Interactive Entertainment LLC
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 Corp, Sony Interactive Entertainment LLC filed Critical Sony Corp
Priority to JP2015201426A priority Critical patent/JP6556015B2/ja
Priority to CN201680058662.1A priority patent/CN108139204B/zh
Priority to EP16853542.5A priority patent/EP3343167A4/en
Priority to US15/761,975 priority patent/US10507381B2/en
Priority to PCT/JP2016/079329 priority patent/WO2017061388A1/ja
Publication of JP2017072560A publication Critical patent/JP2017072560A/ja
Application granted granted Critical
Publication of JP6556015B2 publication Critical patent/JP6556015B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/26Measuring arrangements characterised by the use of optical techniques for measuring angles or tapers; for testing the alignment of axes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Heart & Thoracic Surgery (AREA)

Abstract

【課題】所定の対象の位置と姿勢の少なくとも一方を推定する情報処理について、その迅速性と正確性の両立を支援する。
【解決手段】第1推定部44は、撮像装置から取得された所定の対象の周囲の画像に基づいて、上記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する。第2推定部46は、上記画像に基づいて、上記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する。補正部50は、第1推定部44の推定結果と第2推定部46の推定結果とを比較し、比較に用いた第2推定部46の推定結果より後の第2推定部46の推定結果を比較結果に基づいて補正する。App実行部38は、補正部50により補正された第2推定部46の推定結果に基づいて所定のデータ処理を実行する。
【選択図】図4

Description

この発明は、データ処理技術に関し、特に情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラムに関する。
ゲーム機に接続されたヘッドマウントディスプレイ(以下「HMD」と呼ぶ。)を頭部に装着したユーザが、HMDに表示された画面を見ながら、コントローラなどを操作してゲームプレイすることが行われている。通常の据え置き型のディスプレイでは、ディスプレイの画面の外側にもユーザの視野範囲が広がっているため、ディスプレイの画面に集中できないことがあり、またゲームへの没入感に欠けることがある。その点、HMDを装着すると、ヘッドマウントディスプレイに表示される映像以外をユーザは見ないため、映像世界への没入感が高まり、ゲームのエンタテインメント性を一層高める効果がある。
また、HMDにヘッドトラッキング機能をもたせ、ユーザの頭部の動きと連動して画面に表示される仮想空間等の画像が更新されるようにすると、さらに映像への没入感が向上し、ゲーム等のアプリケーションの操作性も向上する。
特開2015−95045号公報
空間内における所定の対象(例えばHMD)の位置や姿勢を推定するための技術としてSLAM(Simultaneous Localization And Mapping)が知られている。SLAMは、カメラの撮影画像から検出した特徴点を含む局所パッチごとに、特徴点の動きを追跡し、それに基づき所定の状態変数を各時間ステップで更新する手法を含む。状態変数をカメラの位置や姿勢、移動速度、角速度、被写空間に存在する物の少なくとも1つの特徴点の位置、などとすることにより、被写空間とカメラのセンサ面との位置関係(例えば距離および角度)が撮影画像ごとに取得できる。
SLAMには複数の手法が提案されており、手法毎に自己位置推定に要する時間や正確性等の特性が異なる。しかし、これまでに提案されたSLAMでは、自己位置推定の迅速性と正確性の両立は困難であった。
本発明はこうした課題に鑑みてなされたものであり、その目的は、所定の対象の位置と姿勢の少なくとも一方を推定する情報処理について、その迅速性と正確性の両立を支援する技術を提供することにある。
上記課題を解決するために、本発明のある態様の情報処理装置は、撮像装置から取得された所定の対象の周囲の画像に基づいて、対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する第1推定部と、画像に基づいて、対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する第2推定部と、第1推定部の推定結果と第2推定部の推定結果とを比較し、比較に用いた第2推定部の推定結果より後の第2推定部の推定結果を比較結果に基づいて補正する補正部と、補正部により補正された第2推定部の推定結果に基づいて、所定のデータ処理を実行するデータ処理部と、を備える。
本発明の別の態様は、位置および/または姿勢の推定方法である。この方法は、撮像装置から取得された所定の対象の周囲の画像に基づいて、対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する第1推定処理を実行するステップと、画像に基づいて、対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する第2推定処理を実行するステップと、第1推定処理による推定結果と第2推定処理による推定結果とを比較し、比較に用いた第2推定処理による推定結果より後の第2推定処理による推定結果を比較結果に基づいて補正するステップと、をコンピュータが実行する。
なお、以上の構成要素の任意の組合せ、本発明の表現を、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、所定の対象の位置と姿勢の少なくとも一方を推定する情報処理について、その迅速性と正確性の両立を支援することができる。
実施の形態の情報処理システムの構成を示す図である。 HMDの外観を示す図である。 HMDの機能構成を示すブロック図である。 ゲーム機の機能構成を示すブロック図である。 HMDの動作を示すフローチャートである。 ゲーム機の動作を示すフローチャートである。 図6のS30の状態同定処理を詳細に示すフローチャートである。 図6のS32のApp処理を詳細に示すフローチャートである。 VR画像生成までの処理を時系列に示す図である。 第3変形例のシステムを模式的に示す図である。 第4変形例のシステムを模式的に示す図である。 第5変形例のシステムを模式的に示す図である。 第6変形例のシステムを模式的に示す図である。 第7変形例のシステムを模式的に示す図である。 第8変形例のシステムを模式的に示す図である。 VR画像生成までの処理を時系列に示す図である。
まず概要を説明する。HMDでは、VR(Virtual Reality)やAR(Augmented Reality)に対するユーザの没入感を高めるため、ユーザの頭の動きに沿った画像を提示することが望ましい。そのため、HMDの位置および姿勢(向きとも言える)、またはHMDを装着するユーザの位置および姿勢の情報をリアルタイムに取得する必要がある。
HMDの位置および姿勢を追跡する1つの方法として、HMD外部の所定位置に固定されたカメラからHMDを撮像し、HMDに搭載されたLED群の見え方を追跡する方法がある。ただし、この方式では、固定されたカメラの画角から外れるようなHMDの動きには対応できないという制限がある。
実施の形態のシステムでは、HMDの移動制限をなくすことを目的として、HMDに搭載したカメラの映像をSLAMにより解析することで、HMDの位置や姿勢を追跡する。具体的には、カメラが撮像したHMD周囲の実空間の画像を主な入力とし、加速度センサ、角速度センサ、地磁気センサ等の出力情報を補助的な入力として、周囲環境情報を逐次的に構築していき自己位置推定処理を実行する。なお、実施の形態の自己位置推定処理は、所定の対象(具体的にはHMD)の位置と姿勢の両方を推定することとするが、いずれか一方を推定する構成としてもよい。
ところでSLAMには複数の手法が提案されており、手法によりSLAMの特性は異なる。例えば、ある公知の手法のSLAM(以下「第1SLAM」と呼ぶ。)では、各回の自己位置推定処理が互いに独立して、ワールド座標系における自己(実施の形態ではHMD)の絶対位置を推定する。第1SLAMは、カメラ画像の入力から自己位置推定の結果を出力するまでの所要時間が比較的長い(例えば45ミリ秒以上)が、誤差の蓄積がないという特性を持つ。言い換えれば、蓄積誤差(累積誤差)を含まない推定結果を生成するという特性を持つ。誤差の蓄積がないため、推定結果と真値との乖離幅は時間の経過と無関係であり、長期間における自己位置推定の正確度は相対的に高い。長期間とは例えば5秒以上であり、また例えば100回の自己位置推定処理の実行に要する時間以上である。
別の公知の手法のSLAM(以下「第2SLAM」と呼ぶ。)では、各回の自己位置推定結果の差分に基づいて、ワールド座標系における自己の相対位置を推定する。第2SLAMは、カメラ画像の入力から自己位置推定の結果を出力するまでの所要時間が比較的短い(例えば15ミリ秒以内)が、誤差が蓄積していくという特性を持つ。言い換えれば、蓄積誤差を含む推定結果を生成するという特性を持つ。徐々に蓄積される誤差が推定結果に反映されるため、推定結果と真値との乖離幅は時間の経過とともに大きくなりやすく、長期間における自己位置推定の正確度は相対的に低い。例えば、自己位置推定処理を繰り返して推定結果を複数回出力する場合、後の時点の推定結果ほど実際の位置および姿勢との乖離が大きくなりやすい。
このように、自己位置推定の迅速性と正確性を両立したSLAMの手法は現在存在しない。そこで実施の形態のシステムでは、蓄積誤差のない第1SLAMの推定結果を利用して、蓄積誤差を含む第2SLAMの推定結果を補正する。このように、特性が異なる第1SLAMと第2SLAMを併用しつつ双方の弱点を補完する情報処理を実行することで、自己位置推定の迅速性と正確性の両立を実現する。実施の形態では自己位置推定の対象をユーザが装着したHMDとして説明するが、実施の形態の自己位置推定の技術は様々な対象に適用可能である。その一部については後段の変形例で説明する。
図1は、実施の形態の情報処理システム210の構成を示す。情報処理システム210において、ゲーム機200はVR画像を生成する情報処理装置(画像生成装置)として機能し、HMD100はそのVR画像を表示する情報処理装置(画像表示装置)として機能する。HMD100は、無線通信またはUSB等の有線インタフェースにてゲーム機200に接続される。ゲーム機200は、さらにインターネット等の通信網を介してサーバに接続されてもよい。その場合、サーバは、複数のユーザが通信網を介して参加できるゲームなどのオンラインアプリケーションをゲーム機200に提供してもよい。画像生成装置は、ゲーム機200に代えて、PCや携帯端末により実現されてもよい。
図2は、HMD100の外観を示す。HMD100は、本体部110、前頭部接触部120、側頭部接触部130、カメラ140を含む。本体部110には図3に関連して後述する各種モジュールが内蔵される。カメラ140は、HMD100の前部に設けられ、ユーザがHMD100を装着している間、外界の様子を撮像する撮像装置である。HMD100は、眼鏡型やヘルメット型等、様々な形状が想定される。
図3は、HMD100の機能構成を示すブロック図である。HMD100は、制御部10、通信部12、アンテナ14、加速度センサ16、角速度センサ18、地磁気センサ20、カメラ140、ディスプレイ22、時計部24を備える。本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのCPUやメモリをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
通信部12は、アンテナ14を介して外部装置との通信処理を実行する。制御部10は、通信部12を介してゲーム機200と各種データを送受する。なお、無線通信でなく有線通信であってもよい。
加速度センサ16、角速度センサ18(ジャイロセンサ)、地磁気センサ20は、HMDの加速度、角速度、および方位を示すデータ(これらを総称する場合、「センサデータ」とも呼ぶ。)を制御部10へ出力する。センサデータは、毎秒1000サンプル出力されることとする。
カメラ140は、HMD100の周囲の実空間(言い換えれば外界)の様子を撮像し、外界の様子を示す画像データ(以下「カメラ画像」とも呼ぶ。)を制御部10へ出力する。カメラ140は、二眼で一組のステレオカメラであってもよく、直接的に奥行き情報を取得可能な三次元カメラであってもよい。カメラ画像は、毎秒60フレーム出力されることとする(60fps)。ディスプレイ22は、ユーザの目に正対するように設けられており、ゲーム機200で生成されたVR画像を表示する。時計部24は、現在の時刻を示す時刻データを制御部10へ出力する。
制御部10は、HMD100における各種データ処理を実行する。制御部10は、HMD100が備えるCPUやGPUがコンピュータプログラムをメインメモリへ読み出して実行することにより実現されてもよい。例えば、制御部10は、加速度センサ16、角速度センサ18、地磁気センサ20から入力されたセンサデータに時刻データを対応付けてゲーム機200へ送信する。また制御部10は、カメラ140から入力されたカメラ画像に時刻データを対応付けてゲーム機200へ送信する。また制御部10は、ゲーム機200から送信されたVR画像をディスプレイ22に表示させる。
図4は、ゲーム機200の機能構成を示すブロック図である。ゲーム機200は、制御部30、時計部31、通信部32、アンテナ34を備える。制御部30は、ゲーム機200における各種データ処理を実行する。制御部30は、ゲーム機200が備えるCPUやGPUがコンピュータプログラムをメインメモリへ読み出して実行することで実現されてもよい。図4において制御部30内に描いた状態データ保持部54は、ゲーム機200のメインメモリやストレージがデータを記憶することで実現されてもよい。
時計部31は、現在の時刻を示す時刻データを制御部30へ出力する。通信部32は、アンテナ34を介して外部装置との通信処理を実行する。制御部30は、通信部32を介してHMD100と各種データを送受する。なお、無線通信でなく有線通信であってもよい。制御部30は、状態同定部36とApp実行部38を含む。
状態同定部36は、HMD100の位置や姿勢を含むHMD100の状態を特定するためのデータ処理を実行する。App実行部38は、状態同定部36により特定されたHMD100の状態を利用するゲームアプリケーションを実行する。具体的には、App実行部38は、HMD100の位置や姿勢に応じたVR画像を生成する。状態同定部36とApp実行部38は、同じパッケージもしくは異なるパッケージのコンピュータプログラムとして実装され、ゲーム機200にインストールされてもよい。
状態同定部36は、カメラ画像取得部40、センサデータ取得部42、第1推定部44、第2推定部46、特定部48、状態データ保持部54、状態データ提供部56を含む。カメラ画像取得部40は、HMD100から送信されたカメラ画像を取得する。カメラ画像のフレームレートは60fpsとする。センサデータ取得部42は、HMD100から送信されたセンサデータを取得する。具体的には毎秒1000サンプルを取得する。
第1推定部44は、カメラ画像およびセンサデータに基づき、第1SLAMの手法によってHMD100の位置および姿勢を推定する。第1推定部44は、自己位置および姿勢を推定するための情報として、逐次的に組み上げた周囲環境情報を保持する。結果的に、最新のカメラ画像に加えて、より以前のカメラ画像も参照する。具体的には、第1推定部44は、最新のカメラ画像に加えて過去の複数のカメラ画像に基づき、蓄積誤差を含まない推定結果を生成する。
その反面、第1推定部44は、1回の推定処理に比較的長時間(実施の形態では45ミリ秒とする)を要する。第1推定部44は、カメラ画像取得部40で取得されたカメラ画像の中から20fpsのレートでカメラ画像を取得し、HMD100の位置および姿勢を示す情報を毎秒20サンプル出力する。すなわち毎秒20回の推定処理を実行する。
第1推定部44が取得して自己位置推定に使用するカメラ画像は、カメラ画像取得部40で取得される複数のカメラ画像を時間方向にダウンサンプリングしたものと言える。第1推定部44は、自己位置推定の正確度を高めるために、所定項目のセンサデータを基準として自己位置推定に使用するカメラ画像を選択してもよい。例えば、ある時刻に対応付けられた(すなわちある時刻を示す時刻データが対応付けられた)センサデータが、角速度が所定値より小さいことを示す場合に、その時刻に対応付けられたカメラ画像を自己位置推定に使用してもよい。また、所定の単位時間(例えば50ミリ秒)内にカメラ画像取得部40で取得された所定数(例えば3枚)のカメラ画像のうち、角速度が最も小さい時刻に対応するカメラ画像を自己位置推定に使用してもよい。
第2推定部46は、カメラ画像およびセンサデータに基づき、第2SLAMの手法によってHMD100の位置および姿勢を推定する。第2推定部46は、16ミリ秒(すなわち1フレーム分)のセンサデータに基づいて姿勢の変位を推定し、その推定値に基づいて第2SLAM処理を実行してもよい。第2推定部46も、自己位置および姿勢を推定するための情報として、逐次的に組み上げた周囲環境情報を保持する。結果的に、最新のカメラ画像に加えて、より以前のカメラ画像も参照する。具体的には、第2推定部46は、最新のカメラ画像に加え、過去の1つのカメラ画像に基づき、比較的低時間(実施の形態では15ミリ秒とする)で1回の推定結果を生成する。
そのため、第2推定部46は、カメラ画像取得部40で取得されたカメラ画像をダウンサンプリングせずに(すなわち60fpsのレートで)取得し、HMD100の位置および姿勢を示す情報を毎秒60サンプル出力する。ただし、第2SLAMの手法では複数回の推定処理に亘って誤差が蓄積していき、第2推定部46は、蓄積誤差を含む推定結果を生成する。第1推定部44および第2推定部46は、HMD100の位置および姿勢を示す情報を、入力されたカメラ画像に対応付けられた時刻データに対応付けて出力する。すなわち、いつの時点の位置および姿勢であるかを識別可能な態様で出力する。
既述したように、第2SLAMでは相対的な位置および姿勢(すなわち過去との差分)を推定する。第2推定部46は、過去の推定結果を一時的に保持し、過去の推定結果に最新の推定結果(差分)を合成して、第1推定部44と同様に絶対位置・姿勢を示す情報を出力することとする。なお、第1推定部44と第2推定部46が出力する位置の情報は、3次元のワールド座標系における3次元の座標値であってもよい。また、第1推定部44および第2推定部46が出力する姿勢の情報は、クォータニオン表現のデータであってもよく、オイラー角表現のデータであってもよい。
特定部48は、第1推定部44による推定結果、第2推定部46による推定結果、およびセンサデータにしたがって、HMD100の位置および姿勢を含む状態データを生成し、状態データ保持部54へ格納する。この状態データは、ある時刻におけるHMD100の位置、姿勢、速度、加速度、角速度、角加速度を示すデータを含む。
特定部48は、補正部50と外挿部52を含む。補正部50は、同じカメラ画像をソースとした第1推定部44による推定結果と第2推定部46による推定結果とを比較し、その比較に用いた第2推定部46による推定結果より後に第2推定部46により生成された推定結果を比較結果に基づいて補正する。以下では、第1推定部44による推定結果と第2推定部46による推定結果の差を求めることとするが、必ずしも差を求めなくてもよい。例えば、第1推定部44による推定結果と第2推定部46による推定結果のそれぞれについて、生成時刻や、出力時刻、対応付けられた時刻データ等を比較してもよい。
実施の形態の補正部50は、同じ時刻データに対応付けられた第1推定部44による推定結果と第2推定部46による推定結果との差を求め、上記差を求めた第2推定部46による推定結果より後に第2推定部46により生成された推定結果を上記差に基づいて補正する。ここで補正対象となる推定結果は、より新しく撮像されたカメラ画像をソースとして第2推定部46が生成した推定結果とも言える。補正部50は、第2推定部46による推定結果を補正した後の値を、予め対応付けられた時刻データが示す時点におけるHMD100の位置および姿勢の確定値として決定し、その確定値を時刻データとともに状態データ保持部54へ格納する。
第1推定部44による推定結果と第2推定部46による推定結果の差は、HMD100の位置を示す座標値のずれと、HMD100の姿勢を示すクォータニオン値のずれの少なくとも一方を含む。補正部50は、第1推定部44による推定結果と第2推定部46による推定結果との差を解消するように、その差を求めた第2推定部46による推定結果より後の第2推定部46による推定結果を補正する。例えば、補正部50は、第1時点で撮像されたカメラ画像に基づく第1推定部44による推定結果と第2推定部46による推定結果との差を検出した場合、第1時点より後の第2時点で撮像されたカメラ画像に基づく第2推定部46による推定結果を、先に検出した差を解消するように変更する。
補正部50は、第1推定部44による推定結果と第2推定部46による推定結果との差を検出した場合に、第2推定部46による1回分の推定結果に対してその差を全て解消するように補正処理を実行してもよい。言い換えれば、上記検出した差を1回の補正処理で全て解消してもよい。ただしその場合、第1推定部44による推定結果と第2推定部46による推定結果との差が大きいと1回の補正量も大きくなって、HMD100におけるVR画像の表示に飛びやがたつきが生じうる。そこで、実施の形態の補正部50は、上記検出した差を漸次的に解消するように補正処理を実行し、VR画像の表示おける飛びやがたつきの発生を抑制する。
具体的には、第2推定部46は、第1推定部44による1回の推定処理の間に、複数のカメラ画像にもとづく複数回(例えば3回)の推定処理を実行する。補正部50は、第1推定部44による推定結果と第2推定部46による推定結果との差を求めてから次の第1推定部44による推定結果が入力されるまでの間に、その差を漸次的に解消するように、その差を求めた第2推定部46による推定結果より後の、第2推定部46による複数回分の推定結果のそれぞれを補正する。この具体例は図9に関連して後述する。
外挿部52は、補正部50により生成された特定の時刻におけるHMD100の位置と姿勢の確定値(毎秒60サンプル)に基づいて、上記特定の時刻以外のHMD100の位置と姿勢の値を外挿する。特定の時刻以外とは未来時刻も含む。具体的には、外挿部52は、毎秒60サンプルのHMD100の位置と姿勢の確定値と、各時刻のセンサデータ(毎秒1000サンプル)とに基づいて、上記特定の時刻以外のHMD100の位置と姿勢の値を予測する。例えば、センサデータが示すHMD100の位置または姿勢の変位方向にしたがって、上記特定の時刻以外のHMD100の位置と姿勢の値を予測し、その予測値を各時刻に対応付けて状態データ保持部54に格納してもよい。
特定部48は、センサデータ取得部42で取得されたセンサデータについてはそのまま時刻データに対応付けて状態データ保持部54へ格納する。速度については加速度を積分して求めてもよく、角加速度については角速度を微分して求めてもよい。以上により、状態データ保持部54には、過去〜現在〜未来に亘る各時刻のHMD100の位置、姿勢、速度、加速度、角速度、角加速度を示す状態データが格納される。外挿部52における外挿処理の速度に依存するが、例えば、HMD100の位置、姿勢を示す状態データは毎秒120サンプルを保持し、速度、加速度、角速度、角加速度を示す状態データは毎秒1000サンプルを保持してもよい。
状態データ提供部56は、ゲームアプリケーションによるVR画像生成処理で必要な状態データの条件(典型的には時刻)を指定した状態データ提供要求をApp実行部38から受け付ける。状態データ提供部56は、状態データ提供要求で指定された条件に一致し、もしくは、その条件に最も近い状態データを識別し、識別した状態データをApp実行部38へ送信する。
App実行部38は、状態データ取得部60、画像生成部62、画像提供部64を含む。状態データ取得部60は、ゲームアプリケーションによるVR画像生成処理でHMD100の状態データが必要になった場合に、必要な状態データの条件を識別する。この条件は例えば、100ミリ秒後を示す未来時刻であってもよい。状態データ取得部60は、その条件を指定した状態データ提供要求を状態同定部36へ送信し、その条件に整合する状態データを状態同定部36から取得する。
画像生成部62は、状態データ取得部60により取得された状態データにしたがって、ゲームアプリケーションの画面データを生成する。この画面データは、典型的にはHMD100の位置や姿勢を反映したVR画像である。例えば、HMD100を装着したユーザの視野に提示すべき仮想空間の映像である。画像提供部64は、画像生成部62により生成されたVR画像をHMD100へ送信し、そのVR画像をHMD100のディスプレイ22に表示させる。
以上の構成による情報処理システム210の動作を説明する。
図5は、HMD100の動作を示すフローチャートである。カメラ140が所定のレートでHMD100の周囲に広がる3次元の実空間を撮像するたびに(S10のY)、制御部10は、HMD100の周囲空間の画像をゲーム機200へ送信する(S12)。カメラ140の撮像処理が未実行であれば(S10のN)、S12をスキップする。HMD100に搭載された各種センサから加速度等のセンサデータが入力されるたびに(S14のY)、制御部10は、入力されたセンサデータをゲーム機200へ送信する(S16)。センサデータが未入力であれば(S14のN)、S16をスキップする。
制御部10は、ゲーム機200から送信されたVR画像を、通信部12を介して受信すると(S18のY)、そのVR画像をディスプレイ22に表示させる(S20)。VR画像を未受信であれば(S18のN)、S20をスキップする。VR画像表示の終了を指示する所定操作が入力される、または、終了を示すコマンドをゲーム機200から受信する等、所定の終了条件が充足されると(S22のY)、本図のフローを終了する。終了条件が未充足であれば(S22のN)、S10に戻る。
図6は、ゲーム機200の動作を示すフローチャートである。ゲーム機200は、状態同定部36による自己位置推定を含むデータ処理と、App実行部38によるゲームアプリケーションのデータ処理とを並行して実行する(S30)(S32)。ユーザから終了操作が入力される等、所定の終了条件が充足されると(S34のY)(S36のY)、本図のフローを終了する。終了条件が未充足であれば(S34のN)(S36のN)、S30およびS32を繰り返し実行する。
図7は、図6のS30の状態同定処理を詳細に示すフローチャートである。カメラ画像取得部40は、HMD100から提供されたカメラ画像を取得する(S40)。センサデータ取得部42は、HMD100から提供されたセンサデータを取得する(S42)。第1推定部44と第2推定部46のそれぞれは、第1SLAMによる自己位置推定処理と、第2SLAMによる自己位置推定処理を並行して実行する(S44)(S46)。補正部50は、第1推定部44による推定結果と、第2推定部46による推定結果の間の誤差を推定し(S48)、その誤差を解消するように第2推定部46による推定結果を補正する(S50)。
外挿部52は、S42で取得されたセンサデータに基づいてHMD100の動作を予測し、HMD100の位置および姿勢のデータを外挿する(S52)。特定部48は、S50、S52で決定された各時刻におけるHMD100の位置・姿勢を示す状態データと、S42で取得された各時刻におけるHMD100の速度、加速度、角速度、角加速度を示す状態データを状態データ保持部54に格納する(S54)。状態データ提供部56は、App実行部38から状態データの提供要求を受け付けると(S56のY)、その要求で指定された時刻に該当する状態データをApp実行部38へ提供する(S58)。状態データの提供要求を受け付けなければ(S56のN)、S58をスキップする。
図8は、図6のS32のApp処理を詳細に示すフローチャートである。予め定められたリフレッシュレート等に基づきVR画像の更新タイミングに達したことを検出すると(S60のY)、状態データ取得部60は、描画すべきVR画像の条件(描画対象の時刻等)に整合する状態データを状態同定部36から取得する(S62)。画像生成部62は、S62で取得された状態データに基づいて、描画対象時刻におけるHMD100の位置・姿勢に整合するVR画像を生成する(S64)。画像提供部64は、S64で生成されたVR画像をHMD100へ送信し、ユーザへ提示させる(S66)。VR画像の更新タイミングに至らなければ(S60のN)、S62以降の処理をスキップする。
図9は、VR画像生成までの処理を時系列に示す。同図では、各処理の実行時間をタイムライン上に示しており、符号は各処理で生成されるデータを指している。第1推定部44による1回の推定処理が実行される間に、第2推定部46による3回の推定処理が実行される。なお、第1SLAM(第1推定部44)と第2SLAM(第2推定部46)はともに、自己位置を推定するための情報として、逐次的に組み上げた周囲環境情報を保持する。したがって実質的には、矢印で関連づけたカメラ画像に加えて、より過去のカメラ画像も参照していることになる。
補正部50は、同じソースであるカメラ画像70に基づく第2SLAM推定結果80と、第1SLAM推定結果90との誤差を推定する。ここでは誤差「A」が推定されたこととする。図9では、誤差に基づく補正値の推移を破線で示している。補正部50は、誤差推定対象とした第2SLAM推定結果80以降の、カメラ画像71に基づく第2SLAM推定結果81、カメラ画像72に基づく第2SLAM推定結果82、カメラ画像73に基づく第2SLAM推定結果83のそれぞれを、誤差「A」を徐々に解消するように補正する。
例えば、第1SLAMの所要時間と第2SLAMの所要時間の差に基づいて誤差を按分し、按分後の値を複数回の補正処理に亘り適用してもよい。図9の例では、第1SLAM推定結果92の入力前に3回の補正処理を実行するため、(A/3)を調整値として、各回の補正処理で第2SLAM推定結果を(A/3)ずつ均等に補正してもよい。
補正部50は、カメラ画像72に基づく第2SLAM推定結果82と、第1SLAM推定結果92との誤差をさらに推定する。ここでは誤差「B」が推定されたこととする。補正部50は、誤差推定対象とした第2SLAM推定結果82以降の、カメラ画像74に基づく第2SLAM推定結果84、カメラ画像75に基づく第2SLAM推定結果85のそれぞれを、誤差「B」を徐々に解消するように補正する。
実施の形態の情報処理システム210によると、低速だが蓄積誤差を含まない推定結果を生成する第1SLAMと、高速だが蓄積誤差を含む推定結果を生成する第2SLAMを併用し、互いの弱点を補完することで、自己位置推定の迅速性と正確性の両立を実現できる。また、HMD100(言い換えればHMD100を装着したユーザ)の位置・姿勢を正確に反映したVR画像を高速に提供できるヘッドマウントディスプレイシステムを実現できる。これにより、HMD100が提示するVR画像の、ユーザの頭部の動きに対する追従性を向上させ、ユーザに酔いを感じさせてしまうことを抑制できる。
また実施の形態の情報処理システム210では、第1SLAMと第2SLAMのそれぞれに対して入力するカメラ画像は共通であるため、1つのカメラで実現することができ、HMD100のコストを低減できる。また、第1SLAMによる推定結果と第2SLAMによる推定結果の差を、漸次的に解消するよう第2SLAMによる複数回分の推定結果を補正する。これにより、1回の補正の前後でHMD100の位置・姿勢が大きく変化することを抑制し、VR画像の滑らかな変化を実現できる。また、ユーザに違和感を抱かせてしまうことを抑制できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を示す。各変形例の説明において、同一または対応する部材には同じ符号を付している。実施の形態と重複する記載、および、変形例間で重複する記載は適宜省略する。
第1変形例を説明する。実施の形態で示したHMD100(図3)とゲーム機200(図4)の機能分担は一例である。例えば、図4に示したゲーム機200の機能ブロックのうち少なくとも一部をHMD100側に備える構成としてもよい。また、HMD100に十分なハードウェアリソースを搭載可能な場合、図4の状態同定部36とApp実行部38の機能をHMD100の制御部が実行してもよい。
第2変形例を説明する。第1推定部44は、相対的に高画質のカメラ画像に基づいてHMD100の位置と姿勢の少なくとも一方を推定し、第2推定部46は、相対的に低画質のカメラ画像に基づいてHMD100の位置と姿勢の少なくとも一方を推定してもよい。例えば、HMD100に、HD画質(高解像度)の撮像画像を出力する第1カメラと、VGA画質(低解像度)の撮像画像を出力する第2カメラを設け、第1カメラの出力画像を第1推定部44が解析し、第2カメラの出力画像を第2推定部46が解析する構成としてもよい。
また実施の形態と同様に、1つのカメラを設け、そのカメラはHD画質(高解像度)の撮像画像を60fpsのレートで出力してもよい。この場合、ゲーム機200のカメラ画像取得部40は、第1推定部44に対して、カメラ140の撮像画像を時間方向にダウンサンプリングしたカメラ画像(20fps、HD画質)を入力してもよい。またカメラ画像取得部40は、第2推定部46に対して、カメラ140の撮像画像を空間方向にダウンサンプリングしたカメラ画像(60fps、VGA画質)を入力してもよい。
第2変形例によると、第1推定部44には高画質のカメラ画像を入力することで正確な自己位置推定を実現させることができる。また第2推定部46には低画質のカメラ画像を入力することで、画像解析の負荷を低減させ、高速な自己位置推定を実現させることができる。また、1つのカメラであっても、第1推定部44と第2推定部46のそれぞれに対して好適な画質のカメラ画像を入力することができる。
第3変形例を説明する。図10は、第3変形例のシステムを模式的に示す。第3変形例のHMD100は複数のカメラを備える。複数のカメラのそれぞれは、HMD100から見て異なる方向の実空間を撮像する。図10のカメラ140a、カメラ140b、カメラ140c、カメラ140dのそれぞれは、HMD100の前方空間(例えばユーザの視線方向)、後方空間、左方空間、右方空間を撮像する。ゲーム機200は、複数の第1推定部(第1推定部44a、第1推定部44b、第1推定部44c、第1推定部44d)を備え、また複数の第2推定部(第2推定部46a、第2推定部46b、第2推定部46c、第2推定部46d)を備える。これらは複数のプロセスやスレッドとして実現されてよく、これらの機能は複数のCPUやGPUにより分散して実行されてもよい。
複数の第1推定部と複数の第2推定部のそれぞれは、予め対応付けられたカメラによる撮像画像に基づいて、互いに独立して自己位置推定処理を実行する。ゲーム機200は集計部150をさらに備える。集計部150は、複数の第1推定部のそれぞれによる推定結果を集計して(言い換えれば合成して)、1つの推定結果を生成する。また、複数の第2推定部のそれぞれによる推定結果を集計して、1つの推定結果を生成する。なお、同じ時刻データが対応付けられた推定結果を集計する。以降の補正処理は実施の形態と同様である。第3変形例によると、複数のカメラによる撮像画像に基づいて、自己位置推定の正確度を高めることができる。
複数の第1推定部による推定結果を集計する例を説明する。複数の第2推定部による推定結果を集計する場合も同様である。(1)集計部150は、複数の第1推定部のそれぞれによる推定結果の平均値を、第1推定部による確定的な推定結果として決定してもよい。(2)奥行き方向の位置推定の信頼性は相対的に低い。そこで集計部150は、複数の第1推定部による推定結果において、奥行き方向の位置は採用せず、各推定結果における縦横の位置(2次元座標値)を組み合わせて3次元の位置(3次元座標値)を生成してもよい。
(3)特徴量が大きいカメラ画像の方が位置推定の信頼性が高い。例えば、様々なオブジェクトが写っているカメラ画像ほど位置推定の信頼性が高い。そこで集計部150は、入力されたカメラ画像から検出された特徴量の大小や特徴点の個数を各第1推定部から受け付け、特徴量が大きい(特徴点が多い)カメラ画像に基づく推定結果ほど他の推定結果より優先的に採用してもよい。例えば、特徴量が最も大きいカメラ画像に基づく推定結果を、第1推定部による確定的な推定結果として決定してもよい。また、特徴量の大小に基づいて重み付けを設定し、各推定結果の加重平均値を算出してもよい。
第4変形例を説明する。図11は、第4変形例のシステムを模式的に示す。第3変形例と同様に、第4変形例のHMD100も、互いに異なる方向の実空間を撮像する複数のカメラ(カメラ140a、カメラ140b、カメラ140c、カメラ140d)を備える。ゲーム機200は、1つの第1推定部44と複数の第2推定部(第2推定部46a、第2推定部46b、第2推定部46c、第2推定部46d)を備える。第1推定部44には、複数のカメラのそれぞれが撮像したカメラ画像が20fpsのレートで入力される。その一方、複数の第2推定部のそれぞれには、対応するカメラが撮像したカメラ画像が60fpsのレートで入力される。
第1推定部44による自己位置推定は、時間がかかることは許容される一方、蓄積誤差を含まない推定結果が求められ、言い換えれば、長期間における相対的に正確度の高い推定結果が求められる。そのため、第1推定部44に入力される画像は、情報量が多い画像が望ましく、また現実との乖離が小さい画像が望ましい。例えば、第1推定部44に入力される画像は、複数のカメラのそれぞれによる撮像画像を合成したパノラマ画像であってもよい。また、複数のカメラのそれぞれによる撮像画像を合成した、HMD100の周囲360度の全方位の様子を示す画像(例えば全天球画像)であってもよい。さらにまた、キャリブレーションにより正確性を高めた画像であってもよい。HMD100またはゲーム機200は、複数のカメラのそれぞれによる撮像画像を合成し、および/または、キャリブレーションを行うカメラ画像調整部(不図示)を備えてもよい。
その一方、第2推定部46による自己位置推定は、蓄積誤差を含む推定結果が許容され、言い換えれば、長期間における相対的に正確度の低い推定結果が許容される一方、迅速性が求められる。したがって、第2推定部46に入力される画像には、情報量や正確性よりも高レートが要求される。そこで第4変形例では、複数のカメラのそれぞれによる撮像画像を、合成やキャリブレーション等の調整を行わずにそのまま第2推定部46へ入力する。集計部150は、第3変形例と同様に、複数の第2推定部による推定結果を集計する。第4変形例によると、複数のカメラを備えることによる自己位置推定の正確度向上に加えて、第1推定部44に対して情報量や正確性が高い画像を入力することにより、第1推定部44による自己位置推定の正確度を一層高めることができる。
第5変形例を説明する。図12は、第5変形例のシステムを模式的に示す。第5変形例のHMD100は、ローリングシャッター方式の(例えばCMOSイメージセンサを用いた)複数のカメラ(カメラ140a、カメラ140b)を備える。またHMD100は、グローバルシャッター方式の(例えばCCDイメージセンサを用いた)複数のカメラ(カメラ140c、カメラ140d)も備える。カメラ140aとカメラ140cはHMD100の前方空間を撮像し、カメラ140bとカメラ140dはHMD100の後方空間を撮像してもよい。
カメラ140aおよびカメラ140bの撮像画像では、高速で移動するオブジェクト等に対して歪みが生じうる。そのため、HMD100またはゲーム機200は、カメラ140aおよびカメラ140bの撮像画像を補正するためのカメラ画像補正部(不図示)をさらに備える。第1推定部44aおよび第1推定部44bは、カメラ画像補正部により補整されたカメラ画像に基づいて自己位置推定を実行する。カメラ140cおよびカメラ140dの撮像画像には歪みは生じないため、第2推定部46aおよび第2推定部46bは、カメラ140cおよびカメラ140dの撮像画像をそのまま使用して自己位置推定を実行する。
高速な自己位置推定が求められる第2推定部に対しては、高レートでカメラ画像を入力する必要があるため、グローバルシャッター方式のカメラを使用することが望ましい。その一方、第1推定部による自己位置推定は比較的長時間を要する。そのため、第1推定部に対するカメラ画像の入力レートは低くてよく、カメラの撮像画像に対する補正時間を確保できる。したがって、第1推定部への入力画像を撮像するカメラとして、ローリングシャッター方式のカメラを使用することでHMD100の製造コストを低減できる。
また第2変形例で既述したように、正確性が求められる第1推定部には相対的に高画質(例えばHD画質)の画像を入力し、迅速性が求められる第2推定部には相対的に低画質(例えばVGA画質)の画像を入力してもよい。この場合に第5変形例の構成は好適である。グローバルシャッター方式のカメラは高解像度への対応が容易でない一方、ローリングシャッター方式のカメラは高解像度への対応が容易だからである。第5変形例によると、第1推定部44と第2推定部46の特性の違いと、ローリングシャッター方式とグローバルシャッター方式の特性の違いに基づいて、速度・正確度・コストに優れた自己位置推定を実現できる。
第6変形例を説明する。図13は、第6変形例のシステムを模式的に示す。第6変形例のHMD100は全天球カメラ142を備える。全天球カメラ142に代えて、広角カメラを備えてもよい。全天球カメラ142は、魚眼レンズ等を用いて広範囲を撮像し、パノラマ画像を生成する。第6変形例では、HMD100の周囲360度の全方位の様子を示す画像である全天球画像を生成する。HMD100またはゲーム機200は、注目領域決定部151と画像切出し部152をさらに備える。
注目領域決定部151は、全天球画像から第2推定部46への入力画像を切り出すための注目領域情報を生成する。注目領域情報は、例えば、ユーザの注目方向、言い換えればユーザの視線方向を示す情報であってもよい。ユーザの視線方向を検知するセンサがHMD100にさらに設けられてもよい。また、全天球画像の所定領域(例えば中心部分)がHMD100の前方空間を示すように予め定められている場合、注目領域情報はその所定領域(例えば全天球画像の中心部分)を示す情報であってもよい。また注目領域決定部151は、全天球画像の各領域について自己位置推定のための特徴量(例えばオブジェクト数)を計数し、その特徴量が相対的に多い領域を注目領域として決定してもよい。自己位置推定の正確度が向上するからである。
画像切出し部152は、注目領域決定部151により決定された注目領域情報にしたがって、第1推定部44へ入力される全天球画像の一部であり、全天球画像の中から注目領域を切り出した画像である注目領域画像を生成する。第1推定部44は、全天球カメラ142から出力された全天球画像に基づいて自己位置推定を実行する。実施の形態と同様に、60fpsのレートで入力された全天球画像から、センサデータ等に基づいて解析対象の全天球画像を20fpsのレートで選択してもよい。第2推定部46は、画像切出し部152により生成された注目領域画像に基づいて自己位置推定を実行する。
第6変形例の構成によると、情報量が多い全天球画像を第1推定部44へ入力することにより、第1推定部44による自己位置推定の正確度を高めることができる。全天球画像の解析には時間を要するが、第1推定部44では迅速性よりも正確性が求められるため、全天球画像の入力が好適である。その一方、情報量が少ない注目領域画像を第2推定部46へ入力することにより、第2推定部46による迅速な自己位置推定を維持できる。ただし、注目領域画像が自己位置推定のソースになるため、第2推定部46による自己位置推定の正確度低下も抑制できる。
第7変形例を説明する。図14は、第7変形例のシステムを模式的に示す。第7変形例のHMD100は、互いに異なる方向の実空間を撮像する複数のカメラ(カメラ140a、カメラ140b、カメラ140c、カメラ140d)を備える。HMD100またはゲーム機200は、注目領域決定部151、画像合成部154、画像選択部156をさらに備える。
画像合成部154は、複数のカメラのそれぞれによる撮像画像を合成してパノラマ画像(例えば全天球画像)を生成する。注目領域決定部151は、第6変形例と同様に注目領域を決定する。画像選択部156は、複数のカメラのそれぞれによる撮像画像の中から、注目領域決定部151により決定された注目領域に該当する撮像画像を注目領域画像として選択する。例えば、注目領域がHMD100の前方であれば、HMD100の前方空間を撮像する特定のカメラの撮像画像を注目領域画像として選択する。
第1推定部44は、画像合成部154により生成されたパノラマ画像に基づいて自己位置推定を実行し、第2推定部46は、画像選択部156により選択された注目領域画像に基づいて自己位置推定を実行する。第7変形例の構成においても、第6変形例と同様の効果を奏する。
第8変形例を説明する。第2推定部46は、第1推定部44による1回の推定処理の間に、複数のカメラ画像に基づく複数回の推定処理を実行する。第1推定部44は、複数のカメラ画像に基づく複数回の推定処理を並行して実行する。補正部50は、第1推定部44による並行した推定処理のそれぞれで推定結果が出力された場合に第2推定部46の推定結果との差を更新する。
図15は、第8変形例のシステムを模式的に示す。第8変形例のゲーム機200は、複数の第1推定部(第1推定部44a、第1推定部44b、第1推定部44c)と、1つの第2推定部46と、振分け部158を備える。複数の第1推定部は複数のプロセスやスレッドとして実現されてよく、複数の第1SLAM処理が複数のCPUやGPUにより分散して並行実行されてもよい。
第1推定部の個数は、第1SLAM処理の所要時間(カメラ画像の入力から推定結果生成までに要する時間)と、第2SLAM処理の所要時間の差に基づいて決定されてよい。例えば、第1SLAM処理の所要時間が第2SLAM処理の所要時間の6倍である場合、言い換えれば、第1SLAM推定結果が1回生成されるまでに第2SLAM推定結果が6回生成される場合、第1SLAM処理を6並列で実行してもよい。第8変形例では、実施の形態と同様に、第1SLAM処理の所要時間が第2SLAM処理の所要時間の3倍であることとし、図15のように第1SLAM処理を3並列で実行する。
振分け部158は、ラウンドロビン(3並列であればmod3)等の所定のアルゴリズムにしたがって、カメラ画像を複数の第1推定部に均等に振分ける。第1推定部44a〜第1推定部44cを合計すると、第1SLAM推定結果は、第2SLAM推定結果と同様に、毎秒60サンプル出力される。補正部50は、同じ時刻データに対応付けられた第1SLAM推定結果と第2SLAM推定結果との差を検出し、その差に基づいて、差を検出した第2SLAM推定結果より後の第2SLAM推定結果を補正する。
第1推定部の並列処理により第1SLAM推定結果が高頻度で出力される結果、補正部50は、第1推定部の並列数に応じた頻度で、第1SLAM推定結果と第2SLAM推定結果との比較結果を更新し、言い換えれば、補正対象となる差を更新する。すなわち、補正部50は、実施の形態よりも高頻度で、第1SLAM推定結果と第2SLAM推定結果との差を検出して補正処理を実行する。
図16は、VR画像生成までの処理を時系列に示す。同図では、各処理の実行時間をタイムライン上に示しており、符号は各処理で生成されるデータを指している。既述したように、第1推定部44による1回の推定処理が実行される間に、第2推定部46による3回の推定処理が実行されるため、第1推定部44を3並列で動作させる。補正部50は、同じソースであるカメラ画像76に基づく第2SLAM推定結果86と、第1SLAM推定結果96との誤差を推定する。ここでは誤差「C」が推定されたとする。補正部50は、誤差推定対象とした第2SLAM推定結果86以降の、カメラ画像78に基づく第2SLAM推定結果88を誤差「C」を解消するように補正する。
また補正部50は、カメラ画像77に基づく第2SLAM推定結果87と、第1SLAM推定結果97との誤差を推定する。ここでは誤差「D」が推定されたとする。補正部50は、誤差推定対象とした第2SLAM推定結果87以降の、カメラ画像79に基づく第2SLAM推定結果89を誤差「D」を解消するように補正する。
第1推定部44の並列処理を行わない場合、例えば図9の場合、あるカメラ画像に基づく第2SLAM推定結果を補正するソースは、2フレーム前、3フレーム前、または4フレーム前のカメラ画像に基づく第1SLAM推定結果と第2SLAM推定結果との差になる。これに対して図16では、あるカメラ画像に基づく第2SLAM推定結果を補正するソースは、常に2フレーム前のカメラ画像に基づく第1SLAM推定結果と第2SLAM推定結果との差になる。
また不図示だが、第1SLAM推定結果が1回生成されるまでに第2SLAM推定結果が6回生成される場合、第1推定部44の並列処理を行わないとすると、あるカメラ画像に基づく第2SLAM推定結果を補正するソースは、5フレーム前〜10フレーム前のカメラ画像に基づく第1SLAM推定結果と第2SLAM推定結果との差になる。これに対して、第1推定部44を6並列で動作させると、あるカメラ画像に基づく第2SLAM推定結果を補正するソースは、常に5フレーム前のカメラ画像に基づく第1SLAM推定結果と第2SLAM推定結果との差になる。
このように、第8変形例の構成によると、第1SLAM推定結果と第2SLAM推定結果との差を検出する頻度が高まり、補正の頻度も高まる。例えば、HMD100の急な動き等に伴い第1SLAM推定結果と第2SLAM推定結果との差が大きくなっても、その差を迅速に解消可能になる。すなわち、最新のHMD100の位置・姿勢をより迅速にVR画像へ反映させることができる。
第9変形例を説明する。実施の形態の補正部50は、第1SLAM推定結果と第2SLAM推定結果との差を漸次的に解消するように、複数回の第2SLAM推定結果のそれぞれを補正することとした。また実施の形態では、個々の補正処理での調整値を均等にする例を示した。変形例として、補正候補の第2SLAM推定結果のうちHMD100の動作が検出された時刻に対応付けられた第2SLAM推定結果を補正対象とし、位置および/または姿勢の値を調整してもよい。補正部50は、HMD100の動作有無を、加速度や角速度等、1つ以上のセンサデータにより判定してもよい。
HMD100が動かない(すなわちHMD100を装着したユーザの頭部が動かない)場合であっても、第1SLAM推定結果と第2SLAM推定結果との差は生じうる。補正部50による補正後の位置・姿勢に基づくVR画像の内容は、それまで表示中のVR画像の内容と異なる。その結果、ユーザが動いていないにも関わらず仮想空間の見え方が変わり、ユーザに違和感を抱かせることがある。第9変形例の構成によると、HMD100の動きがなければ、補正処理に伴うVR画像の変化を抑制できるため、ユーザの違和感を抑制できる。なお、ある時点で検出した第1SLAM推定結果と第2SLAM推定結果との誤差を、次に誤差を検出するまでに解消していない場合、補正部50は、未解消(解消途中)の誤差は破棄し、新たに検出した誤差を適用して補正処理を実行してもよい。
第10変形例を説明する。実施の形態の状態同定部36は、低速だが蓄積誤差を含まない結果を生成する第1推定部44(第1SLAM)と、高速だが蓄積誤差を含む結果を生成する第2推定部46(第2SLAM)を備えた。変形例として、状態同定部36は、別の特性を持つSLAMを備えてもよい。具体例として第10変形例の状態同定部36は、蓄積誤差を含まないが短期的な正確度が相対的に低い結果を生成する第1推定部44(第1SLAM)と、蓄積誤差を含むが短期的な正確度が相対的に高い推定結果を生成する第2推定部46(第2SLAM)を備える。
本変形例の第2推定部46は、短期間における推定結果として、第1推定部44による推定結果よりも正確度が高い推定結果を生成する。例えば、第2推定部46が生成する前回の推定結果からの差分情報(相対位置情報)は、第1推定部44が生成する絶対位置情報よりも正確度が高い。ここで短期間とは例えば5秒未満であり、また例えば100回の自己位置推定処理の実行に要する時間未満である。なお、本変形例では、第1SLAMと第2SLAMとの1回の推定処理の速度差は問題にせず、以下では両者の処理速度は同じとする。
実施の形態と同様に、第2推定部46の推定結果は蓄積誤差を含むため、時間の経過とともに真値との乖離幅は大きくなりやすいが、蓄積誤差を除去すれば正確度が高い推定結果が残る。そこで実施の形態と同様に、第2推定部46の推定結果から蓄積誤差を除去するために第1推定部44の推定結果を利用する。ただし、第1推定部44の推定結果は短期的な正確度が相対的に低く、言い換えれば、短期的な誤差が相対的に大きい。そのため本変形例の第1推定部44(補正部50等、別ブロックでもよい)は、複数回の推定結果を時間方向に平滑化する。
具体的には、第1推定部44は、複数回のカメラ画像入力に基づく複数回の推定処理結果の平均値を平滑化後の推定結果として出力してもよい。移動平均等、公知の平均化処理を実行してもよい。また、公知のフィルタリング処理(カルマンフィルタ等)を実行して短期的な誤差を含む推定結果を平滑化してもよい。平滑化は、推定結果に含まれる高周波成分を除去することとも言える。複数回の推定結果を平滑化する場合、結果として、第1推定部44からの推定結果の出力は遅延する。例えば、第1推定部44による1回の推定処理の時間が第2推定部46と同様に15ミリ秒であっても、3回の推定結果に基づき平滑化処理を実行する場合、実施の形態と同様に、第1推定部44は、平滑化後の推定結果を得るために45ミリ秒を要することになる。
補正部50は、実施の形態と同様に、第1推定部44による推定結果と第2推定部46による推定結果とを比較し、その比較結果に基づいて以降の第2推定部46による推定結果を補正する。例えば、第1推定部44による推定結果と第2推定部46による推定結果との差を検出し、その差を解消するように以降の第2推定部46による推定結果を補正する。これにより、第2推定部46の推定結果から蓄積誤差を除去し、正確度が高い位置・姿勢の推定結果を得ることができる。
第11変形例を説明する。実施の形態では言及していないが、補正部50は、第1SLAM推定結果と第2SLAM推定結果との誤差を検出した場合に、その誤差を示す情報を第2推定部46へフィードバックしてもよい。第2推定部46は、それまで構築していた周囲環境情報を、補正部50からフィードバックされた誤差に基づいて修正してもよい。すなわち、第1SLAM推定結果と第2SLAM推定結果との誤差が検出されると、第2推定部46は、検出された誤差に基づいて、それまで自身が蓄積した誤差をリセットしてもよい。これにより、蓄積誤差を含む第2推定部46の周囲環境情報を、第1推定部44が構築している周囲環境情報と同期させることができる。
第12変形例を説明する。実施の形態の情報処理システム210では、HMD100に表示させる適切なVR画像を生成するために、HMD100の位置および姿勢を推定した。本明細書(実施の形態および上記変形例)に記載の自己位置推定技術は、VR画像の生成に限られず、HMD100の位置および姿勢に応じたAR画像の生成にも有効である。この場合、HMD100は、前方(言い換えればユーザの視線方向)からの可視光を透過する光学透過型のHMDであってもよい。また、カメラ140で撮像された外界の映像を、AR画像生成のレイテンシにあわせてディスプレイ22に遅延表示させ、その外界の映像にAR画像を重畳して表示させてもよい。
第13変形例を説明する。本明細書に記載の自己位置推定技術は、HMDに限られず、所定の対象の位置および/または姿勢に応じて適切な情報処理を実行すべき様々な装置やシステムに適用可能である。例えば、図4のApp実行部38を、状態同定部36による自己位置推定の結果に基づいてゲーム以外の様々な情報処理を実行するブロックに置き換えることができる。
本明細書に記載の自己位置推定技術の適用先の一例として、車載機やドローンが挙げられる。ドローンは、遠隔操縦または自律式の移動機械全般を含み、例えば無人車両、無人航空機、無人船舶を含む。もちろん遠隔操縦または自律式のクワッドコプター、マルチコプターを含む。本明細書に記載の自己位置推定技術を車載機やドローンへ適用することで、自動車(またはドローン)の外面に取り付けたカメラの画像に基づいて、自動車(またはドローン)の位置や姿勢を高速かつ正確に把握できる。そして、リアルタイムの位置・姿勢情報に基づく高品質な自動運転処理やナビゲーション処理を実行させることができる。
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
40 カメラ画像取得部、 42 センサデータ取得部、 44 第1推定部、 46 第2推定部、 50 補正部、 56 状態データ提供部、 60 状態データ取得部、 62 画像生成部、 64 画像提供部、 100 HMD、 140 カメラ、 200 ゲーム機、 210 情報処理システム。

Claims (13)

  1. 撮像装置から取得された所定の対象の周囲の画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する第1推定部と、
    前記画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する第2推定部と、
    前記第1推定部の推定結果と前記第2推定部の推定結果とを比較し、比較に用いた前記第2推定部の推定結果より後の前記第2推定部の推定結果を比較結果に基づいて補正する補正部と、
    前記補正部により補正された前記第2推定部の推定結果に基づいて、所定のデータ処理を実行するデータ処理部と、
    を備えることを特徴とする情報処理装置。
  2. 前記第2推定部は、前記対象の位置と姿勢の少なくとも一方を前記第1推定部よりも高速に推定することを特徴とする請求項1に記載の情報処理装置。
  3. 短期間における前記第2推定部の推定結果の正確度は、短期間における前記第1推定部の推定結果の正確度よりも高いことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記補正部は、前記第1推定部の推定結果と前記第2推定部の推定結果との差を解消するように、前記差を求めた前記第2推定部の推定結果より後の前記第2推定部の推定結果を補正することを特徴とする請求項1から3のいずれかに記載の情報処理装置。
  5. 前記第2推定部は、前記第1推定部の1回の推定処理の間に、前記撮像装置により撮像された複数の画像に基づく複数回の推定処理を実行し、
    前記補正部は、前記第1推定部の推定結果と前記第2推定部の推定結果との差を求めてから前記第1推定部の次の推定結果を得るまでの間に、前記差を漸次的に解消するように、前記差を求めた前記第2推定部の推定結果より後の前記第2推定部の複数回の推定結果のそれぞれを補正することを特徴とする請求項4に記載の情報処理装置。
  6. 前記第1推定部および前記第2推定部は、同一の撮像装置により撮像された画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  7. 前記第1推定部は、相対的に高画質の画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定し、前記第2推定部は、相対的に低画質の画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定し、
    前記高画質の画像と前記低画質の画像は、同一または異なる撮像装置により撮像された画像であることを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  8. 異なる方向を撮像する複数の撮像装置により撮像された複数の個別画像を取得する画像取得部をさらに備え、
    前記第1推定部は、前記複数の個別画像を合成した合成画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定し、前記第2推定部は、前記複数の個別画像の少なくとも1つに基づいて前記対象の位置と姿勢の少なくとも一方を推定することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  9. 前記第1推定部は、ローリングシャッター方式の撮像装置により撮像された画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定し、前記第2推定部は、グローバルシャッター方式の撮像装置により撮像された画像に基づいて前記対象の位置と姿勢の少なくとも一方を推定することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  10. 前記第2推定部は、前記第1推定部により使用される画像の一部に基づいて前記対象の位置と姿勢の少なくとも一方を推定することを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  11. 前記第2推定部は、前記第1推定部の1回の推定処理の間に、前記撮像装置により撮像された複数の画像に基づく複数回の推定処理を実行し、
    前記第1推定部は、前記撮像装置により撮像された複数の画像に基づく複数回の推定処理を並行して実行し、
    前記補正部は、前記第1推定部による並行した推定処理のそれぞれで推定結果が出力された場合に前記第2推定部の推定結果との比較結果を更新することを特徴とする請求項1から3のいずれかに記載の情報処理装置。
  12. 撮像装置から取得された所定の対象の周囲の画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する第1推定処理を実行するステップと、
    前記画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する第2推定処理を実行するステップと、
    前記第1推定処理による推定結果と前記第2推定処理による推定結果とを比較し、比較に用いた前記第2推定処理による推定結果より後の前記第2推定処理による推定結果を比較結果に基づいて補正するステップと、
    をコンピュータが実行することを特徴とする位置および/または姿勢の推定方法。
  13. 撮像装置から取得された所定の対象の周囲の画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含まない推定結果を生成する第1推定機能と、
    前記画像に基づいて、前記対象の位置と姿勢の少なくとも一方を推定し、蓄積誤差を含む推定結果を生成する第2推定機能と、
    前記第1推定機能による推定結果と前記第2推定機能による推定結果とを比較し、比較に用いた前記第2推定機能による推定結果より後の前記第2推定機能による推定結果を比較結果に基づいて補正する補正機能と、
    前記補正機能により補正された前記第2推定機能による推定結果に基づいて、所定のデータ処理を実行する機能と、
    をコンピュータに実現させるためのコンピュータプログラム。
JP2015201426A 2015-10-09 2015-10-09 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム Active JP6556015B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015201426A JP6556015B2 (ja) 2015-10-09 2015-10-09 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム
CN201680058662.1A CN108139204B (zh) 2015-10-09 2016-10-03 信息处理装置、位置和/或姿态的估计方法及记录介质
EP16853542.5A EP3343167A4 (en) 2015-10-09 2016-10-03 INFORMATION PROCESSING DEVICE, POSITION AND / OR ORIENTATION CALCULATION METHOD AND COMPUTER PROGRAM
US15/761,975 US10507381B2 (en) 2015-10-09 2016-10-03 Information processing device, position and/or attitude estimiating method, and computer program
PCT/JP2016/079329 WO2017061388A1 (ja) 2015-10-09 2016-10-03 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015201426A JP6556015B2 (ja) 2015-10-09 2015-10-09 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2017072560A true JP2017072560A (ja) 2017-04-13
JP6556015B2 JP6556015B2 (ja) 2019-08-07

Family

ID=58487679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015201426A Active JP6556015B2 (ja) 2015-10-09 2015-10-09 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US10507381B2 (ja)
EP (1) EP3343167A4 (ja)
JP (1) JP6556015B2 (ja)
CN (1) CN108139204B (ja)
WO (1) WO2017061388A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017055397A (ja) * 2015-09-08 2017-03-16 キヤノン株式会社 画像処理装置、画像合成装置、画像処理システム、画像処理方法、及びプログラム
WO2019087658A1 (ja) 2017-11-01 2019-05-09 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2019164136A (ja) * 2018-03-19 2019-09-26 株式会社リコー 情報処理装置、撮像装置、移動体、画像処理システムおよび情報処理方法
JP2019197489A (ja) * 2018-05-11 2019-11-14 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP2020022597A (ja) * 2018-08-07 2020-02-13 株式会社スクウェア・エニックス プログラム、投影システム及びコンピュータ装置
JP2020113159A (ja) * 2019-01-16 2020-07-27 Kddi株式会社 情報端末装置及びプログラム
JP2021530812A (ja) * 2018-07-23 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. マッピングのためのシステムおよび方法
JP2022532238A (ja) * 2019-05-17 2022-07-13 マジック リープ, インコーポレイテッド ニューラルネットワークおよび角検出器を使用した角検出のための方法および装置
WO2023068117A1 (ja) * 2021-10-20 2023-04-27 ソニーグループ株式会社 身体装着型端末及び情報処理システム
US11671574B2 (en) 2018-03-19 2023-06-06 Ricoh Company, Ltd. Information processing apparatus, image capture apparatus, image processing system, and method of processing a plurality of captured images of a traveling surface where a moveable apparatus travels

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110178157B (zh) * 2016-10-07 2023-07-14 富士胶片株式会社 自身位置估计装置、自身位置估计方法、程序及图像处理装置
JP2018107695A (ja) * 2016-12-27 2018-07-05 フォーブ インコーポレーテッド 推定システム、推定方法及び推定プログラム
JP6229089B1 (ja) * 2017-04-26 2017-11-08 株式会社コロプラ 仮想空間を介して通信するためにコンピュータで実行される方法、当該方法をコンピュータに実行させるプログラム、および、情報処理装置
JP7226332B2 (ja) * 2017-12-20 2023-02-21 ソニーグループ株式会社 情報処理装置、情報処理方法及びプログラム
US10997943B2 (en) * 2018-03-02 2021-05-04 Facebook Technologies, Llc Portable compute case for storing and wirelessly communicating with an eyewear device
US11887495B2 (en) * 2018-04-27 2024-01-30 Red Six Aerospace Inc. Augmented reality for vehicle operations
US11508255B2 (en) 2018-04-27 2022-11-22 Red Six Aerospace Inc. Methods, systems, apparatuses and devices for facilitating provisioning of a virtual experience
US11869388B2 (en) 2018-04-27 2024-01-09 Red Six Aerospace Inc. Augmented reality for vehicle operations
US11436932B2 (en) 2018-04-27 2022-09-06 Red Six Aerospace Inc. Methods and systems to allow real pilots in real aircraft using augmented and virtual reality to meet in a virtual piece of airspace
US10521964B1 (en) * 2018-06-14 2019-12-31 Dell Products, L.P. Switching among disparate simultaneous localization and mapping (SLAM) methods in virtual, augmented, and mixed reality (xR) applications
US10740918B2 (en) * 2018-09-12 2020-08-11 Dell Products, L.P. Adaptive simultaneous localization and mapping (SLAM) using world-facing cameras in virtual, augmented, and mixed reality (xR) applications
US11055056B1 (en) * 2018-09-25 2021-07-06 Facebook Technologies, Llc Split system for artificial reality
US11047691B2 (en) * 2018-10-31 2021-06-29 Dell Products, L.P. Simultaneous localization and mapping (SLAM) compensation for gesture recognition in virtual, augmented, and mixed reality (xR) applications
US10924669B2 (en) * 2018-11-12 2021-02-16 Eagle Eye Networks, Inc. Persistent video camera and method of operation
US10795773B2 (en) * 2018-11-12 2020-10-06 Eagle Eye Networks, Inc Persistent video camera and method of operation
EP3922010A4 (en) * 2019-02-07 2022-10-26 Magic Leap, Inc. PASSIVE DEPTH EXTRACTION LIGHTWEIGHT EXTENDED REALITY DEVICE
WO2022049615A1 (ja) * 2020-09-01 2022-03-10 株式会社ネイン 情報処理システム、情報処理方法およびコンピュータプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050189A (ja) * 2003-07-30 2005-02-24 Canon Inc 画像処理装置およびその方法並びにプログラムコード、記憶媒体
JP2005252482A (ja) * 2004-03-02 2005-09-15 Softopia Japan Foundation 画像生成装置及び3次元距離情報取得装置
JP2006250917A (ja) * 2005-02-14 2006-09-21 Kazuo Iwane 高精度cv演算装置と、この高精度cv演算装置を備えたcv方式三次元地図生成装置及びcv方式航法装置
US20090322679A1 (en) * 2008-06-30 2009-12-31 Kenta Sato Orientation calculation apparatus, storage medium having orientation calculation program stored therein, game apparatus, and storage medium having game program stored therein
JP2010133711A (ja) * 2008-12-02 2010-06-17 Sumitomo Heavy Ind Ltd 目標物の位置の時間変化計測方法及び計測装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437113A (en) * 1981-12-21 1984-03-13 The United States Of America As Represented By The Secretary Of The Air Force Anti-flutter apparatus for head mounted visual display
JPH06325499A (ja) * 1993-05-11 1994-11-25 Sony Corp 記録装置、再生装置および記録再生装置
JP4672175B2 (ja) * 2000-05-26 2011-04-20 本田技研工業株式会社 位置検出装置、位置検出方法、及び位置検出プログラム
US6618209B2 (en) * 2000-08-08 2003-09-09 Olympus Optical Co., Ltd. Optical apparatus
JP4976756B2 (ja) * 2006-06-23 2012-07-18 キヤノン株式会社 情報処理方法および装置
CN101110802B (zh) * 2006-07-18 2011-10-19 展讯通信(上海)有限公司 无中心通信系统终端频率累积误差修正方法
CN101586962B (zh) * 2008-05-21 2012-02-08 环旭电子股份有限公司 惯性导航系统地图回馈校正方法
US20110067157A1 (en) 2009-09-19 2011-03-24 Quan Xiao Method and apparatus for Variable G force experience and creating immersive VR sensations
CN103268616B (zh) * 2013-04-18 2015-11-25 北京工业大学 多特征多传感器的移动机器人运动人体跟踪方法
JP6353214B2 (ja) * 2013-11-11 2018-07-04 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置および画像生成方法
CN103712813A (zh) * 2013-12-17 2014-04-09 柳州黔桥工程材料有限公司 智能张拉设备标定系统
CN104766291B (zh) * 2014-01-02 2018-04-10 株式会社理光 多台摄像机标定方法和系统
US9524580B2 (en) 2014-01-06 2016-12-20 Oculus Vr, Llc Calibration of virtual reality systems
GB2528699B (en) * 2014-07-29 2017-05-03 Sony Computer Entertainment Europe Ltd Image processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050189A (ja) * 2003-07-30 2005-02-24 Canon Inc 画像処理装置およびその方法並びにプログラムコード、記憶媒体
JP2005252482A (ja) * 2004-03-02 2005-09-15 Softopia Japan Foundation 画像生成装置及び3次元距離情報取得装置
JP2006250917A (ja) * 2005-02-14 2006-09-21 Kazuo Iwane 高精度cv演算装置と、この高精度cv演算装置を備えたcv方式三次元地図生成装置及びcv方式航法装置
US20090322679A1 (en) * 2008-06-30 2009-12-31 Kenta Sato Orientation calculation apparatus, storage medium having orientation calculation program stored therein, game apparatus, and storage medium having game program stored therein
JP2010133711A (ja) * 2008-12-02 2010-06-17 Sumitomo Heavy Ind Ltd 目標物の位置の時間変化計測方法及び計測装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017055397A (ja) * 2015-09-08 2017-03-16 キヤノン株式会社 画像処理装置、画像合成装置、画像処理システム、画像処理方法、及びプログラム
WO2019087658A1 (ja) 2017-11-01 2019-05-09 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US11508084B2 (en) 2017-11-01 2022-11-22 Sony Corporation Information processing apparatus and information processing method for accurately estimating a self location
US11671574B2 (en) 2018-03-19 2023-06-06 Ricoh Company, Ltd. Information processing apparatus, image capture apparatus, image processing system, and method of processing a plurality of captured images of a traveling surface where a moveable apparatus travels
JP2019164136A (ja) * 2018-03-19 2019-09-26 株式会社リコー 情報処理装置、撮像装置、移動体、画像処理システムおよび情報処理方法
JP2019164138A (ja) * 2018-03-19 2019-09-26 株式会社リコー 情報処理装置、移動体、画像処理システムおよび情報処理方法
JP2019197489A (ja) * 2018-05-11 2019-11-14 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP7118729B2 (ja) 2018-05-11 2022-08-16 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP7483106B2 (ja) 2018-07-23 2024-05-14 マジック リープ, インコーポレイテッド マッピングのためのシステムおよび方法
JP2021530812A (ja) * 2018-07-23 2021-11-11 マジック リープ, インコーポレイテッドMagic Leap, Inc. マッピングのためのシステムおよび方法
JP7319350B2 (ja) 2018-07-23 2023-08-01 マジック リープ, インコーポレイテッド マッピングのためのシステムおよび方法
JP2020022597A (ja) * 2018-08-07 2020-02-13 株式会社スクウェア・エニックス プログラム、投影システム及びコンピュータ装置
JP7074694B2 (ja) 2019-01-16 2022-05-24 Kddi株式会社 情報端末装置及びプログラム
JP2020113159A (ja) * 2019-01-16 2020-07-27 Kddi株式会社 情報端末装置及びプログラム
JP2022532238A (ja) * 2019-05-17 2022-07-13 マジック リープ, インコーポレイテッド ニューラルネットワークおよび角検出器を使用した角検出のための方法および装置
JP7422785B2 (ja) 2019-05-17 2024-01-26 マジック リープ, インコーポレイテッド ニューラルネットワークおよび角検出器を使用した角検出のための方法および装置
WO2023068117A1 (ja) * 2021-10-20 2023-04-27 ソニーグループ株式会社 身体装着型端末及び情報処理システム

Also Published As

Publication number Publication date
JP6556015B2 (ja) 2019-08-07
EP3343167A4 (en) 2019-03-13
US20180272231A1 (en) 2018-09-27
US10507381B2 (en) 2019-12-17
EP3343167A1 (en) 2018-07-04
WO2017061388A1 (ja) 2017-04-13
CN108139204A (zh) 2018-06-08
CN108139204B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
JP6556015B2 (ja) 情報処理装置、位置および/または姿勢の推定方法、およびコンピュータプログラム
JP7026214B2 (ja) ヘッドマウントディスプレイ追跡システム
US10629107B2 (en) Information processing apparatus and image generation method
US20200160591A1 (en) Prediction and throttling adjustments based on application rendering performance
CN111627116B (zh) 图像渲染控制方法、装置及服务器
JP6620079B2 (ja) 画像処理システム、画像処理方法およびコンピュータプログラム
US20200265633A1 (en) Image processing apparatus, image processing method, and storage medium
JP6555279B2 (ja) ヘッドマウントディスプレイ用の動画像処理装置、ヘッドマウントディスプレイ用の動画像処理方法およびヘッドマウントディスプレイシステム
CN109691084A (zh) 信息处理装置和方法以及程序
CN113383370B (zh) 信息处理装置和方法以及程序
US11003408B2 (en) Image generating apparatus and image generating method
CN106375682B (zh) 影像处理方法、装置与可移动设备、无人机遥控器及系统
JP4144888B2 (ja) 画像処理方法、画像処理装置
JP2019020333A (ja) 情報処理装置および位置情報取得方法
CN110969706B (zh) 增强现实设备及其图像处理方法、系统以及存储介质
JP6859447B2 (ja) 情報処理システムおよび対象物情報取得方法
JP6949475B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2017055397A (ja) 画像処理装置、画像合成装置、画像処理システム、画像処理方法、及びプログラム
TW202101374A (zh) 影像的深度圖之處理
US11694409B1 (en) Augmented reality using a split architecture
CN112819970B (zh) 一种控制方法、装置及电子设备
US20200312032A1 (en) Image generating apparatus and image generation method
US10313654B1 (en) Image processing method, electronic device, and non-transitory computer readable storage medium
CN110415329B (zh) 三维建模装置及应用于其的校准方法
US10529084B2 (en) Image processing method, electronic device, and non-transitory computer readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190611

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190709

R150 Certificate of patent or registration of utility model

Ref document number: 6556015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150