JP2020187623A - 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム - Google Patents

姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム Download PDF

Info

Publication number
JP2020187623A
JP2020187623A JP2019092809A JP2019092809A JP2020187623A JP 2020187623 A JP2020187623 A JP 2020187623A JP 2019092809 A JP2019092809 A JP 2019092809A JP 2019092809 A JP2019092809 A JP 2019092809A JP 2020187623 A JP2020187623 A JP 2020187623A
Authority
JP
Japan
Prior art keywords
posture
information
unit
calculated
analysis
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
JP2019092809A
Other languages
English (en)
Inventor
昭 西山
Akira Nishiyama
昭 西山
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 Interactive Entertainment LLC
Original Assignee
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 Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2019092809A priority Critical patent/JP2020187623A/ja
Priority to US16/864,601 priority patent/US11232291B2/en
Publication of JP2020187623A publication Critical patent/JP2020187623A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/225Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

【課題】推定されるオブジェクトの姿勢の誤差を低減できる姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラムを提供する。【解決手段】姿勢推定システム(画像表示システム1)は、オブジェクト(ユーザーUS)に取り付けられるマーカー5と、オブジェクトを撮像するカメラ6と、カメラによる撮像画像に含まれるマーカーの位置に基づいてオブジェクトの姿勢を解析する解析部71と、オブジェクトに設けられ、オブジェクトの動きを検出する慣性計測部(慣性計測装置3)と、慣性計測部による検出結果を示す検出情報に基づいて、オブジェクトの姿勢を示す算出姿勢情報を算出する算出部881と、解析部によって解析されたオブジェクトの姿勢を示す解析姿勢情報と算出姿勢情報とに基づいてオブジェクトの姿勢を推定する推定部882と、解析姿勢情報に基づいて、算出姿勢情報に含まれる誤差を補正する補正部884とを備える。【選択図】図2

Description

本発明は、姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラムに関する。
従来、被検体の動作を抽出するモーションキャプチャーシステムが知られている(例えば、特許文献1参照)。
特許文献1に記載のモーションキャプチャーシステムは、被検体の特徴点に装着されるマーカーと、複数のカメラと、情報処理装置と、表示装置と、を備えて構成されている。
複数のカメラは、被検体の可動範囲を囲むように複数設けられ、マーカーを時系列的に撮影する。画像処理装置は、複数のカメラから時系列的に受信される撮影画像を処理し、マーカーの三次元空間内の座標、すなわち、三次元情報を算出する。表示装置は、特徴情報抽出部を有し、画像処理装置からの情報が入力される。特徴情報抽出部は、マーカーの三次元時系列位置情報から、マーカーの時系列上の各位置における特定の物理量を算出して、被検体の動作の特徴情報である被検体の歩幅、歩行速度及び着地時間を算出する。
特開2017−53739号公報
近年、上記のようなモーションキャプチャーシステムによって計測される被検体の位置及び姿勢と、被検体に取り付けられて加速度及び角速度を検出する慣性計測装置(IMU:Inertial Measurement Unit)による検出結果に基づいて算出される被検体の位置及び姿勢とに基づいて、被検体の位置及び姿勢を推定することが提案されている。
しかしながら、慣性計測装置に含まれる加速度センサー及びジャイロセンサーのうち、ジャイロセンサーによる検出結果には、ジャイロセンサーの特性上、時間とともに誤差が累積することから、実際の被検体の姿勢と推定された姿勢とがずれるおそれがある。
本発明は、上記課題の少なくとも一部を解決することを目的の1つとするものであり、推定されるオブジェクトの姿勢の誤差を低減できる姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラムを提供することを目的の1つとする。
本発明の第1の観点によれば、オブジェクトに取り付けられるマーカーと、前記オブジェクトを撮像するカメラと、前記カメラが撮像した撮像画像に含まれる前記マーカーの位置に基づいて前記オブジェクトの姿勢を解析する解析部と、前記オブジェクトに設けられ、前記オブジェクトの動きを検出する慣性計測部と、前記慣性計測部による検出結果を示す検出情報に基づいて、前記オブジェクトの姿勢を示す算出姿勢情報を算出する算出部と、前記解析部によって解析された前記オブジェクトの姿勢を示す解析姿勢情報と前記算出姿勢情報とに基づいて、前記オブジェクトの姿勢を推定する推定部と、前記解析姿勢情報に基づいて、前記算出姿勢情報に含まれる誤差を補正する補正部と、を備える姿勢推定システムが提供される。
本発明の別の観点によれば、オブジェクトの姿勢を示す第1姿勢情報を外部から受信する通信部と、前記オブジェクトに設けられた慣性計測装置による検出結果を示す検出情報が入力される入力部と、前記検出情報に基づいて、前記オブジェクトの姿勢を示す第2姿勢情報を算出する算出部と、前記第1姿勢情報及び前記第2姿勢情報に基づいて、前記オブジェクトの姿勢を推定する推定部と、前記第1姿勢情報に基づいて、前記第2姿勢情報に含まれる誤差を補正する補正部と、を備える姿勢推定装置が提供される。
本発明の更に別の観点によれば、オブジェクトの姿勢を示す情報に含まれる誤差を補正する誤差補正方法であって、前記オブジェクトの姿勢を示す情報であり、外部から受信された第1姿勢情報に基づいて、前記オブジェクトに設けられた慣性計測装置による検出結果に基づいて算出された前記オブジェクトの姿勢を示す第2姿勢情報に含まれる誤差を補正する誤差補正方法が提供される。
本発明の更に別の観点によれば、情報処理装置によって実行され、オブジェクトの姿勢を示す情報に含まれる誤差を補正する誤差補正プログラムであって、前記情報処理装置に、前記オブジェクトの姿勢を示す情報であり、外部から受信された第1姿勢情報に基づいて、前記オブジェクトに設けられた慣性計測装置による検出結果に基づいて算出された前記オブジェクトの姿勢を示す第2姿勢情報に含まれる誤差を補正する補正ステップを実行させる誤差補正プログラムが提供される。
上記の構成によれば、慣性計測装置による検出結果に含まれる誤差によって、当該検出結果に基づいて算出されるオブジェクトの姿勢と、オブジェクトの実際の姿勢とのずれを小さくできる。
本発明の一実施形態に係る画像表示システムの構成を示す模式図。 上記一実施形態における画像表示システムの構成を示すブロック図。 上記一実施形態における複数のカメラの配置の一例を示す平面図。 上記一実施形態における端末装置の構成を示すブロック図。 上記一実施形態におけるCPUの機能的構成を示すブロック図。 上記一実施形態における検出情報の入力タイミングと解析情報の受信タイミングとを説明する図。 上記一実施形態における誤差補正処理を示すフローチャート。 上記一実施形態における誤差修正処理を示すフローチャート。
以下、本発明の一実施形態について、図面に基づいて説明する。
[画像表示システムの概略構成]
図1は、本実施形態に係る画像表示システム1の構成を示す模式図であり、図2は、画像表示システム1の構成を示すブロック図である。なお、図1においては、三次元空間SP内に2人のユーザーUSが居るが、図2においては、三次元空間SP内に1人のユーザーUSが居るものとして、構成を図示している。
本実施形態に係る画像表示システム1は、姿勢推定システムを含むものであり、三次元空間に位置するオブジェクトであるユーザーの位置及び姿勢に応じた画像をユーザーに提示する。詳述すると、画像表示システム1は、三次元空間におけるユーザーの位置及び姿勢に応じて仮想空間内に視点を設定し、設定された視点に基づいて描画される仮想空間の画像をユーザーに表示するVR(Virtual Reality:仮想現実)システム、又は、AR(Augmented Reality:拡張現実)システムである。このような画像表示システム1は、図1に示すように、例えば複数のユーザーUS(US1,US2)が格闘する対戦型格闘ゲームに適用可能である。
画像表示システム1は、図1及び図2に示すように、表示装置2、慣性計測装置3、カメラシステム4及び端末装置8を備えて構成されている。
[表示装置の構成]
表示装置2は、オブジェクトであるユーザーUSに装着され、入力される画像を表示する表示部に相当する。すなわち、表示装置2は、端末装置8から入力される画像をユーザーUSが視認可能に表示する。本実施形態では、表示装置2は、ユーザーUSの頭部HDに装着される頭部装着型表示装置(HMD:Head Mounted Display)によって構成されている。詳述すると、表示装置2は、画像を表示する表示部がユーザーUSの眼前に設けられ、外界を観察できないように構成された非透過型の頭部装着型表示装置である。すなわち、本実施形態に係る画像表示システム1は、VRシステムである。しかしながら、表示装置2は、非透過型の頭部装着型表示装置に限らず、透過型の頭部装着型表示装置でもよい。この場合には、画像表示システム1を、ARシステムとして構成できる。この他、表示装置2は、ユーザーUSが携帯可能な表示装置、例えばスマートフォン等の表示装置でもよい。
[慣性計測装置の構成]
慣性計測装置3は、慣性計測部に相当する。慣性計測装置3は、ユーザーUSの頭部HDに設けられ、ユーザーUSの動きを検出する。本実施形態では、慣性計測装置3は、頭部HDに装着される表示装置2に設けられており、特にユーザーUSの頭部HDの動きを検出する。
慣性計測装置3は、3軸の加速度及び3軸の角速度を所定のサンプリングレートで検出する。すなわち、慣性計測装置3は、3軸の加速度センサーと、3軸のジャイロセンサーとを有する。本実施形態では、慣性計測装置3による加速度及び角速度のサンプリングレートは、1000fpsである。
慣性計測装置3は、端末装置8と有線にて接続されており、検出した加速度及び角速度を含む検出情報を端末装置8に出力する。この際、慣性計測装置3は、加速度及び角速度が検出された時点でのタイムスタンプを検出情報に含めて出力する。なお、タイムスタンプは、検出時刻でもよく、画像表示システム1の起動時からの経過時間を示す情報であってもよい。
[カメラシステムの構成]
カメラシステム4は、三次元空間に位置するユーザーUSを撮像した撮像画像を処理し、ユーザーUSの位置及び姿勢を解析するモーションキャプチャーシステムである。カメラシステム4は、図1及び図2に示すように、複数のマーカー5及び複数のカメラ6を備える他、図2に示すように、解析装置としてのサーバー7を備える。
[マーカーの構成]
複数のマーカー5は、ユーザーUSの身体における複数箇所に設けられ、複数のカメラ6によって撮像される。複数のマーカー5は、ユーザーUSが動作した際に、当該ユーザーUSの動きを検出可能な位置に設けられている。マーカー5が設けられるユーザーUSの身体の部位としては、頭部、左右の手の甲、左右の足の甲及び胴部を例示できる。
このようなマーカー5の形状は、例えば半球を含む球形状やシート状が挙げられる。
[カメラの構成]
図3は、複数のカメラ6の配置の一例を示す平面図である。
複数のカメラ6は、図3に示すように、ユーザーUSの移動可能範囲として設定された三次元空間SPを囲むように等間隔に設けられている。本実施形態では、複数のカメラ6は、それぞれの撮像方向が三次元空間SP内を向くように、三次元空間SPの周囲に8つ設けられている。なお、カメラ6の数は、適宜変更可能である。
複数のカメラ6は、撮像した画像をサーバー7に送信する。本実施形態では、各カメラ6の撮像レートは200fpsである。
[サーバーの構成]
サーバー7は、複数のカメラ6から送信された撮像画像に基づいて、三次元空間SPにおけるユーザーUS毎に、ユーザーUSの動きを解析する解析部71を有する。
具体的に、解析部71は、撮像画像を時系列で処理して得られるマーカー5の位置の変化に基づいて、三次元空間SPにおけるユーザーUSの位置及び姿勢を解析する。解析部71は、解析されたユーザーUSの位置を示す解析位置情報と、解析されたユーザーUSの姿勢を示す解析姿勢情報とを含む解析情報を取得する。そして、サーバー7は、解析対象のユーザーUSに設けられた端末装置8に、解析情報を無線にて送信する。この際、サーバー7は、解析部71が位置及び姿勢を解析した撮像画像が撮像されたタイミングを示すタイムスタンプを解析情報に含めて送信する。すなわち、解析姿勢情報は、タイムスタンプが含まれる。なお、解析姿勢情報は、第1姿勢情報に相当し、解析位置情報は、第1位置情報に相当する。
なお、タイムスタンプは、解析部71による位置及び姿勢の解析に用いられた撮像画像の撮像時刻であってもよく、例えば画像表示システム1の起動時からの経過時間を示す情報であってもよい。サーバー7のタイムスタンプと、慣性計測装置3のタイムスタンプとは、例えば画像表示システム1の起動時に揃えられる。
また、サーバー7から端末装置8への情報送信は、Bluetooth(登録商標)等の近距離無線通信規格に準拠した通信方式で行われてもよく、無線LAN(Local Area Network)等の無線通信規格に準拠した通信方式で行われてもよい。
このように、サーバー7と端末装置8との通信を無線で行う理由は、サーバー7と端末装置8とがケーブルによって接続されている場合に、端末装置8を装着したユーザーUSの動きがケーブルによって妨げられないようにするためである。
[端末装置の構成]
図4は、端末装置8の構成を示すブロック図である。
端末装置8は、それぞれのユーザーUSに応じて設けられ、表示装置2及び慣性計測装置3と有線にて接続されている他、サーバー7と無線にて通信する。端末装置8は、PC(Personal Computer)等によって構成でき、ゲーム等のアプリケーションを実行する。例えば、端末装置8は、慣性計測装置3及びサーバー7から取得される情報に基づいて、ユーザーUSの位置及び姿勢を推定し、推定した位置及び姿勢に応じた画像を表示装置2に出力する。すなわち、端末装置8は、情報処理装置の1種であり、姿勢推定装置に相当する。
このような端末装置8は、図4に示すように、端子部81、入力部82、出力部83、通信部84、記憶部85、メモリー86、GPU(Graphics Processing Unit)87及びCPU(Central Processing Unit)88を有し、これらはバスラインBLによって接続されている。
端子部81は、外部機器と接続されるケーブルが接続される複数の端子を有する。端子部81が有する端子としては、例えばUSB(Universal Serial Bus)端子等の汎用接続端子や、HDMI(登録商標)等の映像端子が挙げられる。本実施形態では、端子部81は、表示装置2と接続される端子811と、慣性計測装置3と接続される端子812と、を有する。
入力部82は、端子部81を介して外部機器から入力される情報を取得する取得部である。入力部82は、取得した情報を、バスラインBLを介してCPU88に出力する。例えば、入力部82は、端子812を介して接続される慣性計測装置3から検出情報を取得し、取得した検出情報をCPU88に出力する。
出力部83は、CPU88による制御の下、バスラインBLを介してCPU88から入力する情報を、端子部81に接続された外部機器のうち、出力先の外部機器に出力する。例えば、出力部83は、GPU87によって描画された画像を、端子811に接続された表示装置2に出力する。
通信部84は、CPU88による制御の下、外部機器と無線にて通信し、外部機器との間で情報を送受信する。例えば、通信部84は、サーバー7と通信して、サーバー7から解析情報を受信し、受信した解析情報をCPU88に出力する。すなわち、通信部84は、入力部82とともに取得部を構成する。
このような通信部84による通信は、上記した通信方式にて行われる。
記憶部85は、端末装置8の動作に必要なプログラム及びデータを記憶している。例えば、記憶部85は、OS(Operating System)やゲームアプリケーションを記憶している他、後述する誤差補正プログラムを記憶している。
メモリー86は、GPU87及びCPU88の作業領域を構成する。例えばメモリー86は、記憶部85に記憶されたプログラムの一部及びデータの一部を一時的に記憶する。
GPU87は、CPU88による制御の下、表示装置2に出力する画像を描画するものであり、描画部に相当する。具体的に、GPU87は、CPU88がゲームアプリケーションを実行することによって展開される仮想空間に、CPU88によって特定されたユーザーUSの位置及び姿勢に応じた視点を設定し、設定された視点と予め設定された光源とに基づいて、ユーザーUSの視点から見た仮想空間の画像をメモリー86に描画する。このように描画された画像は、メモリー86から読み出されて、出力部83によって表示装置2に出力される。
図5は、CPU88の機能的構成を示すブロック図である。
CPU88は、記憶部85に記憶されたプログラムを実行することによって、端末装置8を動作させる。例えば、CPU88は、記憶部85に記憶されたOSを実行することによって端末装置8を動作させ、記憶部85に記憶されたゲームアプリケーションを実行することによってゲームを進行させる。
この他、CPU88は、慣性計測装置3から入力された検出情報、及び、サーバー7から受信された解析情報に基づいて、三次元空間SPにおけるユーザーUSの位置及び姿勢を推定し、ユーザーUSの位置及び姿勢に応じた視点と光源とを仮想空間に設定する。また、CPU88は、慣性計測装置3からの検出情報に基づいて算出されるユーザーUSの位置及び姿勢を、サーバー7から受信される解析情報に基づいて補正する。
このようなCPU88は、図5に示すように、算出部881、推定部882、設定部883及び補正部884を有する。
算出部881は、慣性計測装置3から入力される検出情報を初期値に順次加算して、検出情報に基づくユーザーUSの位置及び姿勢を算出する。以下の説明では、算出部881によって算出されるユーザーUSの位置を示す情報を算出位置情報とし、ユーザーUSの姿勢を示す情報を算出姿勢情報とし、算出位置情報及び算出姿勢情報を含む情報を算出情報とする。なお、算出姿勢情報は、第2姿勢情報に相当し、算出位置情報は、第2位置情報に相当する。
具体的に、初期値は、三次元空間SPにおける所定位置にユーザーUSが位置し、ユーザーUSの姿勢が所定の姿勢であるときに慣性計測装置3によって検出された検出情報である。そして、算出部881は、慣性計測装置3から入力される検出情報を初期値に順次加算することによって、算出姿勢情報及び算出位置情報を算出する。
すなわち、算出部881は、直前の算出姿勢情報に、新たに取得された検出情報(特に角速度成分)を加算することによって、最新の算出位置情報を算出する。また、算出部881は、直前の算出位置情報に、新たに取得された検出情報(特に加速度成分)を加算することによって、最新の算出位置情報を算出する。
なお、慣性計測装置3による検出情報には誤差が含まれることから、算出部881によって算出された算出姿勢情報及び算出位置情報には、誤差が含まれる。特に、ユーザーUSの姿勢の算出に用いられる角速度は、慣性計測装置3に含まれるジャイロセンサーによって検出されるが、ジャイロセンサーの特性上、検出された角速度を加算していくと、誤差が累積されてしまい、算出姿勢情報により示される姿勢と実際のユーザーUSの姿勢とのずれが、時間とともに大きくなる。
このため、後述する補正部884が、算出姿勢情報及び算出位置情報を補正する。補正部884による誤差補正処理については、後に詳述する。
推定部882は、算出姿勢情報及び算出位置情報と、サーバー7から受信された解析情報に含まれる解析姿勢情報及び解析位置情報とに基づいて、三次元空間SPにおけるユーザーUSの現在位置及び現在姿勢を推定する。
具体的に、推定部882は、サーバー7から解析情報が受信されたときに、受信された解析姿勢情報と、算出された算出姿勢情報とを合成することによって、ユーザーUSの現在姿勢を推定する。同様に、推定部882は、サーバー7から解析情報が受信されたときに、受信された解析位置情報と、算出された算出位置情報とを合成することによって、ユーザーUSの現在位置を推定する。
なお、推定部882が現在位置及び現在姿勢の推定に用いる算出姿勢情報及び算出位置情報は、補正部884によって補正された算出姿勢情報及び算出位置情報である。
図6は、慣性計測装置3からの検出情報の入力タイミングと、サーバー7からの解析情報の受信タイミングとを説明する図である。なお、検出情報の入力タイミングは、図6における上段に示され、解析情報の受信タイミングは、図6における下段に示されている。
ここで、慣性計測装置3と端末装置8とは有線にて接続されていることから、慣性計測装置3からの検出情報は、図6における上段に縦線にて示すように、端末装置8に定期的に入力される。なお、検出情報の入力レートは、慣性計測装置3による加速度及び角速度のサンプリングレートである1000fpsである。
一方、サーバー7と端末装置8とは無線にて通信接続される。このため、通常であれば、図6の下段に黒丸で示すように、サーバー7からの解析情報は、端末装置8にて定期的に受信される。解析情報の受信レートは、カメラシステム4による解析情報のサンプリングレートである200fpsである。
しかしながら、無線環境等の要因によって、解析情報が、通常の受信タイミングから遅延して端末装置8に受信されることがある。例えば、図6の下段において、通常であれば、白丸により示される受信タイミングにて解析情報が受信されるところ、白丸のタイミングより後の黒丸のタイミングにて解析情報が受信される場合がある。
このような場合でも、推定部882は、新たに受信された解析情報と、算出部881によって算出されて、補正部884によって補正された算出情報とに基づいて、現在位置及び現在姿勢を推定する。
図5に示す設定部883は、推定部882によって推定されたユーザーUSの現在位置及び現在姿勢に基づいて、仮想空間内に視点を設定する。これにより、GPU87が、設定された視点と、予め設定された光源とに基づいて、仮想空間におけるユーザーUSの視点に応じた画像を描画する。なお、設定部883は、ユーザーUSの操作等に応じて、仮想空間における光源の位置を設定してもよい。
この他、設定部883は、慣性計測装置3から入力される検出情報の入力レートを設定する他、サーバー7から受信される解析情報の受信レートを設定する。なお、検出情報の入力レート及び解析情報の受信レートは、予め設定されていてもよく、慣性計測装置3及びサーバー7から取得されて設定されてもよい。
図7は、補正部884によって実行される誤差補正処理を示すフローチャートである。
補正部884は、算出部881によって検出情報に基づいて算出される算出姿勢情報及び算出位置情報を、解析情報に含まれる解析姿勢情報及び解析位置情報に基づいて補正する。具体的に、補正部884は、図7に示す誤差補正処理を実施することによって、算出姿勢情報及び算出位置情報を補正する。誤差補正処理は、記憶部85に記憶された誤差補正プログラムを補正部884が実行することによって実施される。
誤差補正処理では、まず、補正部884が、入力された検出情報を計数するカウンターをリセットする(ステップSA1)。
次に、補正部884は、解析情報の受信タイミングとなったか否かを判定する(ステップSA2)。具体的に、ステップSA2では、補正部884が、設定された受信レートと過去に受信された解析情報の受信タイミングとに基づいて、次の解析情報の受信タイミングを特定し、特定された受信タイミングになったか否かを判定する。
ステップSA2の判定処理にて、受信タイミングになっていないと判定した場合(ステップSA2:NO)、補正部884は、受信タイミングとなるまで、ステップSA2を繰り返し実行する。
ステップSA2の判定処理にて、受信タイミングになったと判定した場合(ステップSA2:YES)、補正部884は、解析情報が受信されたか否かを判定する(ステップSA3)。この処理は、解析情報が遅延して受信される可能性を考慮した処理である。
ステップSA3の判定処理にて、解析情報は受信されていないと判定した場合(ステップSA3:NO)、補正部884は、受信される予定の解析情報が受信される前に入力した検出情報の数βを計数し(ステップSA4)、処理をステップSA3に戻す。
ステップSA3の判定処理にて、解析情報が受信されたと判定した場合(ステップSA3:YES)、補正部884は、受信された解析情報に含まれるタイムスタンプと略同じタイムスタンプを含む検出情報に基づいて算出部881によって算出された算出情報を取得する(ステップSA5)。なお、受信された解析情報に含まれるタイムスタンプと同じタイムスタンプを含む検出情報がない場合には、解析情報に含まれるタイムスタンプに最も近いタイムスタンプを含む検出情報に基づく算出情報が取得される。
そして、補正部884は、それぞれ取得された解析情報と算出情報との誤差を算出する(ステップSA6)。詳述すると、補正部884は、解析姿勢情報と算出姿勢情報との差分d1を算出し、更に、解析位置情報と算出位置情報との差分d2を算出する。具体的に、補正部884は、算出姿勢情報から解析姿勢情報を減算して得られる値を差分d1として取得し、算出位置情報から解析位置情報を減算して得られる値を差分d2として取得する。
この後、補正部884は、姿勢についての差分d1の絶対値が、予め設定された閾値th1より小さいか否かを判定する(ステップSA7)。
ステップSA7の判定処理にて、差分d1の絶対値が閾値th1以上である場合(ステップSA7:NO)、補正部884は、処理をステップSA9に移行する。誤計測等の理由によってサーバー7から誤った解析姿勢情報が受信された場合、差分d1の絶対値は比較的大きな値となる。このため、差分d1の絶対値が閾値th1以上である場合には、誤った解析姿勢情報が受信されたと判断して、補正部884は、解析姿勢情報に基づく算出姿勢情報の補正を行わない。
一方、ステップSA7の判定処理にて、差分d1の絶対値が閾値th1より小さい場合(ステップSA7:YES)、補正部884は、誤差修正対象に「姿勢」を設定する(ステップSA8)する。そして、補正部884は、処理をステップSA9に移行する。
ステップSA9では、補正部884が、位置についての差分d2の絶対値が予め設定された閾値th2より小さいか否かを判定する(ステップSA9)。
ステップSA9の判定処理にて、差分d2の絶対値が閾値th2以上である場合(ステップSA9:NO)、補正部884は、処理をステップSA11に移行する。上記のように、差分d2の絶対値が閾値th2以上である場合には、誤った解析位置情報が受信されたと判断して、補正部884は、解析位置情報に基づく算出位置情報の補正を行わない。
ステップSA9の判定処理にて、差分d2の絶対値が閾値th2より小さい場合(ステップSA9:YES)、補正部884は、誤差修正対象に「位置」を設定する(ステップSA10)する。そして、補正部884は、処理をステップSA11に移行する。
なお、ユーザーUSの位置は、ユーザーUSの姿勢に対して比較的精度よく推定可能である。このことから、位置について誤差修正処理SBが頻繁に実行されないように、閾値th2は、閾値th1より小さな値に設定されている。
ステップSA11では、補正部884が、設定された誤差修正対象が有るか否かを判定する(ステップSA11)。すなわち、ステップSA11では、補正部884は、ステップSA8,SA10にて、誤差修正対象に「姿勢」又は「位置」が設定されたか否かを判定する。
ステップSA11の判定処理にて、誤差修正対象が無いと判定すると、補正部884は、処理をステップSA1に戻す。
ステップSA11の判定処理にて、誤差修正対象が有ると判定すると、補正部884は、設定された誤差修正対象に対して、誤差修正処理SBを実行する。
図8は、誤差修正処理SBを示すフローチャートである。
誤差修正処理SBでは、補正部884は、図8に示すように、まずループ回数を算出する(ステップSB1)。具体的に、補正部884は、検出情報の入力レートを解析情報の受信レートで除算した値から、上記ステップSA4にて計数された検出情報の数βを減算した値の整数値をループ回数として算出する。この処理は、解析情報の受信タイミングから次の解析情報の受信タイミングまでの期間に入力された検出情報の数だけ、ステップSB3を実行するための処理である。なお、解析情報が通常の受信タイミングにて受信された場合には、ステップSA4は実行されないので、検出情報の数βは0となる。
次に、補正部884は、ループカウンターnを1に設定する(ステップSB2)。
この後、補正部884は、算出姿勢情報及び算出位置情報のうち、誤差修正対象に設定された情報に含まれる誤差を補正する(ステップSB3)。
具体的に、補正部884は、誤差修正対象に姿勢が設定されている場合には、ステップSB3において、以下の式(1)によって示される補正値C1を、最新の算出姿勢情報から減算することによって、最新の算出姿勢情報を補正する。なお、式(1)において、d1は、上記差分d1であり、βは、ステップSA4にて計数された検出情報の数βである。R1は、検出情報の入力レートであり、r1は、解析情報の受信レートである。α1は、算出姿勢情報に差分d1を反映させる度合である反映度、すなわち、解析姿勢情報に対して算出姿勢情報を近付ける度合いを示す値であり、0より大きく1以下の値である。但し、R1/r1<βが成立する場合には、式(1)の右辺の分母である(R1/r1−β)を1として扱う。
[数1]
補正値C1=(d1×α1)/(R1/r1−β) …(1)
また、補正部884は、誤差修正対象に位置が設定されている場合には、ステップSB3において、ステップSB3において、以下の式(2)によって示される補正値C2を、最新の算出位置情報から減算する。なお、式(2)において、d2は、上記差分d2である。β、R1及びr1は、上記式(1)におけるβ、R1及びr1と同じであり、α2は、算出位置情報に差分d2を反映させる度合である反映度、すなわち、解析位置情報に対して算出位置情報を近付ける度合いを示す値であり、0より大きく1以下の値である。なお、α2は、α1と同じ値でも、異なる値でもよい。但し、式(2)においても、R1/r1<βが成立する場合には、式(2)の右辺の分母である(R1/r1−β)を1として扱う。
[数2]
補正値C2=(d2×α2)/(R1/r1−β) …(2)
例えば、ループ回数が5である場合、ステップSB3の実行回数は5となる。この場合、ステップSB3が実行される毎に、算出姿勢情報に含まれる誤差が(d1×α1)/5ずつ補正され、算出位置情報に含まれる誤差が(d2×α2)/5ずつ補正される。
ここで、上記のように、検出情報の入力毎に算出部881が最新の算出情報を算出し、算出された最新の算出情報及び解析情報に基づいて、推定部882が、ユーザーUSの位置及び姿勢を推定する。しかしながら、次の検出情報の入力タイミングまでの間に、ステップSB3が複数回実行される等して算出情報が大きく補正されると、算出情報が大きく変動し、ひいては、推定されるユーザーUSの位置及び姿勢も大きく変動してしまう。この場合、推定されたユーザーUSの位置及び姿勢に応じて描画される画像が、直前の画像と大きく変動してしまうことから、表示装置2によって表示された画像を視認したユーザーが違和感を抱く要因となる。
このため、ステップSB3は、検出情報の入力レートに応じた周期で実行されることが好ましい。すなわち、ステップSB3は、ある検出情報の入力タイミングと、次の検出情報の入力タイミングとの間に1回実行されることが好ましい。
このようにステップSB3が実行されることにより、次の検出情報の入力タイミングまでの間に、算出情報が大きく変動してしまうことが抑制され、ひいては、ユーザーが違和感を抱くことを抑制できる。
また、GPU87による画像の描画レート、表示装置2に対する画像の出力レート、及び、表示装置2による画像の更新レートが比較的高いレートであったとしても、上記のように、算出情報の誤差が徐々に補正されることによって、直前に描画、出力及び表示された画像と、次に描画、出力及び表示される画像との差異を小さくすることができる。従って、この点においても、ユーザーが違和感を抱くことを抑制できる。
次に、補正部884は、現在のループカウンターnが、ループ回数に達したか否かを判定する(ステップSB4)。
ステップSB4の判定処理にて、補正部884が、ループカウンターnはループ回数に達していないと判定すると(ステップSB4:NO)、補正部884は、ループカウンターnを1繰り上げる(ステップSB5)。この後、補正部884は、処理をステップSB3に戻す。
ステップSB4の判定処理にて、補正部884が、ループカウンターnがループ回数に達したと判定すると(ステップSB4:YES)、補正部884は、誤差修正処理SBを終了させる。このような誤差修正処理SBが実行されて算出情報が補正される補正期間は、図6に示すように、解析情報が受信されてから、次の解析情報が受信されると想定される受信タイミングまでの期間である。
誤差修正処理SBが終了すると、図7に示すように、補正部884は、処理をステップSA1に戻す。すなわち、補正部884による算出情報の補正は、繰り返し実行される。
なお、差分d1が閾値th1以下であり、差分d2が閾値th2以下であって、算出姿勢情報に対する誤差修正処理SBと、算出位置情報に対する誤差修正処理SBとのそれぞれを実行する場合には、算出姿勢情報に対する誤差修正処理SBと、算出位置情報に対する誤差修正処理SBとを、それぞれ別に実行してもよい。また、算出姿勢情報に対する誤差修正処理SBと、算出位置情報に対する誤差修正処理SBとのうち、一方の誤差修正処理SBを実行した後、他方の誤差修正処理SBを実行してもよい。
[実施形態の効果]
以上説明した本実施形態に係る画像表示システム1によれば、以下の効果を奏することができる。
姿勢推定システムを含む画像表示システム1は、慣性計測装置3、マーカー5、カメラ6、サーバー7、及び、端末装置8を備える。マーカー5は、オブジェクトであるユーザーUSに取り付けられている。カメラ6は、ユーザーUSを撮像する。サーバー7の解析部71は、カメラ6が撮像した撮像画像に含まれるマーカー5の位置に基づいてユーザーUSの姿勢を解析する。慣性計測部としての慣性計測装置3は、ユーザーUSに設けられて、ユーザーUSの動きを検出する。
端末装置8は、算出部881、推定部882及び補正部884を備える。算出部881は、慣性計測装置3による検出結果を示す検出情報に基づいて、ユーザーUSの姿勢を示す算出姿勢情報を算出する。推定部882は、解析部71によって解析されたユーザーUSの姿勢を示す解析姿勢情報と算出姿勢情報とに基づいて、ユーザーUSの実際の姿勢を推定する。補正部884は、解析姿勢情報に基づいて、算出姿勢情報に含まれる誤差を補正する。
このような構成によれば、慣性計測装置3から入力される検出情報に基づいて算出される算出姿勢情報に累積する誤差を補正できる。これにより、算出姿勢情報及び解析姿勢情報に基づいて、ユーザーUSの姿勢を精度よく推定できる。
解析姿勢情報は、解析姿勢情報が解析された撮像画像の撮像タイミングを示すタイムスタンプを含む。検出情報は、慣性計測装置3によってユーザーUSの動きが検出されたタイミングを示すタイムスタンプを含む。補正部884は、解析姿勢情報と、解析情報に含まれるタイムスタンプと略同じタイムスタンプが含まれる検出情報に基づいて算出された算出姿勢情報との差分に基づいて、現在の算出姿勢情報を補正する。
これによれば、現在の算出姿勢情報は、それぞれ略同じユーザーUSの姿勢に応じた解析姿勢情報及び算出姿勢情報の差分に基づいて補正されるので、誤差が累積するおそれのある算出姿勢情報を適切に補正できる。算出位置情報についても同様である。
補正部884は、姿勢についての差分d1の絶対値が閾値th1より大きい場合には、第2姿勢情報としての算出姿勢情報を補正せず、差分d1の絶対値が閾値th1以下である場合には、算出姿勢情報を補正する。
これによれば、サーバー7から受信された解析姿勢情報が異常な値を示す場合に、当該解析姿勢情報に基づいて算出姿勢情報が補正されることを抑制できる。
なお、補正部884は、位置についての差分d2の絶対値が閾値th2より大きい場合には、算出位置情報を補正しないので、上記と同様の効果を奏することができる。
補正部884は、上記式(1)によって示される補正値C1を、解析姿勢情報を含む解析情報の受信時から次の解析情報が受信されると想定されるタイミングまでの間に入力される検出情報の数に応じて、第2姿勢情報である算出姿勢情報から繰り返し減算することによって、算出姿勢情報を補正する。
これによれば、検出情報の入力状態及び解析情報の受信状態に依らずに、算出姿勢情報を精度よく補正できる。更に、算出姿勢情報に微小な変化を随時反映させることによって、推定部882によって推定されるユーザーUSの姿勢に急峻な変化が表れることが抑制される。推定部882によって推定されるユーザーUSの位置についても同様である。そして、これにより、推定されたユーザーUSの姿勢及び位置に基づく画像が表示される表示装置2が、ユーザーUSの姿勢及び位置の自然な変化に応じた画像を表示できるので、表示内容が急激に変化してユーザーUSが違和感を抱くことを抑制できる。
姿勢推定システムを含む画像表示システム1は、ユーザーUSに装着され、入力される画像を表示する表示部としての表示装置2を備える。端末装置8は、仮想空間において、推定部882によって推定されたユーザーUSの姿勢及び位置に応じて設定された視点からの画像を描画する描画部としてのGPU87と、GPU87によって描画された画像を表示装置2に出力する出力部83と、を備える。
このような構成によれば、ユーザーUSの姿勢及び位置を精度よく推定できるので、仮想空間においてユーザーUSの視方向に応じた画像をユーザーUSに提示可能なVRシステムを構築できる。
姿勢推定システムとしての画像表示システム1は、カメラ6が撮像した撮像画像を取得する解析装置としてのサーバー7と、オブジェクトであるユーザーUSに設けられ、慣性計測部としての慣性計測装置3から検出情報を取得する端末装置8と、を備える。そして、サーバー7は、解析部71を有し、端末装置8は、算出部881、推定部882及び補正部884を有する。
このような構成によれば、カメラ6に接続されるサーバー7と、慣性計測装置3に接続される端末装置8とで、機能を分けることができる。従って、1つの装置が、解析部71、算出部881、推定部882及び補正部884を有する場合に比べて、処理負担を軽減できる。そして、これにより、ユーザーUSに設けられる端末装置8に、小型な端末装置を採用できる。
端末装置8は、サーバー7と無線にて通信する。また、端末装置8は、慣性計測装置3と有線にて通信する。
このような構成によれば、比較的高いサンプリングレートでユーザーUSの動きを検出し、検出情報を出力する慣性計測装置3が、端末装置8と有線にて通信するので、端末装置8が慣性計測装置3から遅延なく検出情報を取得できる。また、サーバー7と端末装置8とが無線にて通信するので、三次元空間SPに位置するユーザーUSの動きがケーブルによって妨げられることを防止できる。
姿勢推定装置としての端末装置8は、入力部82、通信部84、算出部881、推定部882及び補正部884を備える。通信部84は、解析されたユーザーUSの姿勢を示す解析姿勢情報(第1姿勢情報)を外部のサーバー7から受信する。入力部82には、ユーザーUSに設けられた慣性計測装置3による検出結果を示す検出情報が入力される。算出部881は、検出情報に基づいて、ユーザーUSの姿勢を示す算出姿勢情報(第2姿勢情報)を算出する。推定部882は、解析姿勢情報及び算出姿勢情報に基づいて、ユーザーUSの姿勢を推定する。補正部884は、解析姿勢情報に基づいて、算出姿勢情報に含まれる誤差を補正する。
また、情報処理装置である端末装置8のCPU88は、外部のサーバー7から受信される解析姿勢情報(第1姿勢情報)に基づいて、ユーザーUSに設けられた慣性計測装置3による検出結果に基づいて算出されたユーザーUSの姿勢を示す算出姿勢情報(第2姿勢情報)に含まれる誤差を補正する誤差補正方法を含む誤差補正処理を実施する。
また、端末装置8のCPU88は、外部のサーバー7から受信される解析姿勢情報(第1姿勢情報)に基づいて、ユーザーUSに設けられた慣性計測装置3による検出結果に基づいて算出されたユーザーUSの姿勢を示す算出姿勢情報(第2姿勢情報)に含まれる誤差を補正する補正ステップである誤差修正処理SBを実行させる誤差補正プログラムを実行する。
これによれば、上記した姿勢推定システムとしての画像表示システム1と同様の効果を奏することができる。
[実施形態の変形]
本発明は、上記実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
上記実施形態では、姿勢推定システムを含む画像表示システム1は、オブジェクトであるユーザーUSの姿勢だけでなく、ユーザーUSの位置も検出、解析及び推定するとした。しかしながら、これに限らず、ユーザーUSの姿勢及び位置のいずれかを推定する構成としてもよい。なお、ユーザーUSの姿勢のみ推定する場合には、慣性計測装置3に代えてジャイロセンサーを採用してもよい。
上記実施形態では、端末装置8は、解析装置であるサーバー7と無線にて通信するとした。しかしながら、これに限らず、サーバー7と端末装置8とは、有線にて通信する構成としてもよい。同様に、慣性計測装置3と端末装置8とは、無線にて通信する構成としてもよい。
上記実施形態では、解析情報には、ユーザーUSの位置及び姿勢を解析したタイミングのタイムスタンプが含まれ、検出情報には、ユーザーUSの動きを検出したタイミングのタイムスタンプが含まれるとした。しかしながら、これに限らず、例えばサーバー7と端末装置8とが有線にて接続されている場合等、解析情報が遅延なく端末装置8に受信される場合には、解析情報及び検出情報にタイムスタンプは含まれなくてもよい。なお、サーバー7にて解析情報を算出するには、若干の時間が必要であり、サーバー7から解析情報が送信されるタイミングは、ユーザーUSの位置及び姿勢を撮像及び解析したタイミングと異なることが想定される。このため、同じタイミングにて解析及び検出された解析情報及び検出情報を比較するのであれば、解析情報及び検出情報にタイムスタンプが含まれることが好ましい。
上記実施形態では、姿勢についての差分d1が閾値th1より大きい場合には、算出姿勢情報は補正されず、位置についての差分d2が閾値th2より大きい場合には、算出位置情報は補正されないとした。しかしながら、これに限らず、差分d1,d2がどのような値であっても、補正部884が算出姿勢情報及び算出位置情報を補正する構成としてもよい。
上記実施形態では、算出姿勢情報は、上記式(1)によって示される補正値C1が順次減算されることによって補正されるとした。同様に、算出位置情報は、上記式(2)によって示される補正値C2が順次減算されることによって補正されるとした。しかしながら、これに限らず、解析姿勢情報に基づいて算出姿勢情報が補正され、また、解析位置情報に基づいて算出位置情報が補正されれば、算出姿勢情報及び算出位置情報の補正方法は、適宜変更してもよい。例えば、差分d1が閾値th1より小さい場合に、差分d1に反映度α1を乗算した値を算出姿勢情報から減算した値を、補正後の算出姿勢情報としてもよい。同様に、差分d2が閾値th2より小さい場合に、差分d2に反映度α2を乗算した値を算出位置情報から減算した値を、補正後の算出位置情報としてもよい。
また例えば、補正部884は、解析姿勢情報から算出姿勢情報を減算した値を差分d1とし、差分d1に基づく補正値C1を算出姿勢情報に加算することによって、算出姿勢情報を補正してもよい。算出位置情報の補正についても同様である。
上記実施形態では、画像表示システム1は、表示装置2を備え、端末装置8は、描画部としてのGPU87と、描画された画像を出力する出力部83とを備えるとした。しかしながら、これに限らず、表示装置2、GPU87及び出力部83は、無くてもよい。この場合でも、三次元空間SPにおけるユーザーUSの位置及び姿勢を精度よく推定可能なシステムを構成できる。
上記実施形態では、オブジェクトとしてユーザーUSを例示した。しかしながら、これに限らず、人間以外の生物であってもよく、ロボット等の可動体であってもよい。
上記実施形態では、誤差補正処理は、CPU88が記憶部85に記憶された補正プログラムを読み取って実行することにより実施されるとした。しかしながら、これに限らず、補正プログラムは、コンピューター読取可能に記録媒体に記録され、誤差補正処理の実行時に、CPU88が、記録媒体から補正プログラムを読み取って実行する構成としてもよい。記録媒体としては、光ディスク等のディスク型記録媒体が挙げられる他、ハードディスク装置や半導体メモリーを採用できる。この他、補正プログラムは、ネットワーク上の機器から取得されてもよい。このように取得された補正プログラムを情報処理装置が実行することにより、端末装置8と同様の効果を奏することが可能となる。
上記実施形態では、端末装置8のCPU88は、ゲームアプリケーションを実行することによってゲームを進行させるとした。すなわち、画像表示システム1は、VRゲームシステム又はARゲームシステムであるとした。しかしながら、画像表示システム1の用途はゲームに限らない。例えば、画像表示システム1は、体験型等のアトラクションの用途に用いられてもよく、美術館やモデルルーム等の空間内の画像や説明をユーザーに提供するシステムであってもよい。
上記実施形態では、サーバー7が解析部71を有し、慣性計測装置3に接続され、サーバー7と無線にて通信する端末装置8が、算出部881、推定部882及び補正部884を有するとした。しかしながら、解析部71は、必ずしもサーバー7が備えていなくてもよく、算出部881、推定部882及び補正部884のうち少なくとも1つは、端末装置8が備えていなくてもよい。
例えば、サーバー7が、解析部71、算出部881、推定部882及び補正部884を備えていてもよい。
この場合、サーバー7は、慣性計測装置3から検出情報を無線又は有線にて受信してもよい。サーバー7が無線にて検出情報を受信する場合には、慣性計測装置3から入力される検出情報を、端末装置8がサーバー7に無線にて送信してもよい。
上記の場合、サーバー7は、推定部882によって推定されたユーザーUSの位置及び姿勢を示す推定情報を端末装置8に送信し、端末装置8が、推定情報に基づく画像を描画して、表示装置2に出力してもよい。
一方、上記の場合、サーバー7が、設定部883や、描画部としてのGPU87を有し、推定部882によって推定されたユーザーUSの位置及び姿勢に基づく画像をGPU87によって描画し、描画された画像を表示装置2に無線又は有線にて送信する構成としてもよい。
また例えば、端末装置8が、解析部71、算出部881、推定部882及び補正部884を備えていてもよい。この場合、複数のカメラ6のそれぞれが、撮像画像を端末装置8に無線又は有線にて送信してもよい。また、複数のカメラ6と接続される中継装置が、各カメラ6から取得される撮像画像を端末装置8に無線又は有線にて送信してもよい。
また例えば、慣性計測装置3が、検出情報に基づいてユーザーUSの位置及び姿勢を算出する算出部881を備え、慣性計測装置3から端末装置8又はサーバー7に、算出位置情報及び算出姿勢情報を含む算出情報が送信されてもよい。
1…画像表示システム(姿勢推定システム)、2…表示装置(表示部)、3…慣性計測装置(慣性計測部)、4…カメラシステム、5…マーカー、6…カメラ、7…サーバー(解析装置)、71…解析部、8…端末装置(情報処理装置)、82…入力部、83…出力部、84…通信部、87…GPU(描画部)、88…CPU、881…算出部、882…推定部、884…補正部、US…ユーザー(オブジェクト)。

Claims (10)

  1. オブジェクトに取り付けられるマーカーと、
    前記オブジェクトを撮像するカメラと、
    前記カメラが撮像した撮像画像に含まれる前記マーカーの位置に基づいて前記オブジェクトの姿勢を解析する解析部と、
    前記オブジェクトに設けられ、前記オブジェクトの動きを検出する慣性計測部と、
    前記慣性計測部による検出結果を示す検出情報に基づいて、前記オブジェクトの姿勢を示す算出姿勢情報を算出する算出部と、
    前記解析部によって解析された前記オブジェクトの姿勢を示す解析姿勢情報と前記算出姿勢情報とに基づいて、前記オブジェクトの姿勢を推定する推定部と、
    前記解析姿勢情報に基づいて、前記算出姿勢情報に含まれる誤差を補正する補正部と、を備えることを特徴とする姿勢推定システム。
  2. 請求項1に記載の姿勢推定システムにおいて、
    前記解析姿勢情報は、前記解析姿勢情報が解析された前記撮像画像の撮像タイミングを示すタイムスタンプを含み、
    前記検出情報は、前記慣性計測部によって前記オブジェクトの動きが検出されたタイミングを示すタイムスタンプを含み、
    前記補正部は、前記解析姿勢情報と、前記解析姿勢情報に含まれるタイムスタンプと略同じタイムスタンプが含まれる前記検出情報に基づいて算出された前記算出姿勢情報との差分に基づいて、現在の前記算出姿勢情報を補正することを特徴とする姿勢推定システム。
  3. 請求項2に記載の姿勢推定システムにおいて、
    前記補正部は、
    前記差分の絶対値が所定の閾値より大きい場合には、前記算出姿勢情報を補正せず、
    前記差分の絶対値が前記閾値以下である場合には、前記算出姿勢情報を補正することを特徴とする姿勢推定システム。
  4. 請求項2又は請求項3に記載の姿勢推定システムにおいて、
    前記差分をd1とし、
    0より大きく1以下の値であり、前記算出姿勢情報に前記差分を反映させる度合である反映度をα1とし、
    想定される受信タイミングから実際に前記解析姿勢情報が受信されるまでの間に入力された前記検出情報の数をβとし、
    前記検出情報の入力レートをR1とし、
    前記解析姿勢情報の受信レートをr1とする場合、
    前記補正部は、以下の式(1)によって示される補正値C1を、前記解析姿勢情報の受信時から次の前記解析姿勢情報の受信タイミングまでの間に入力された前記検出情報の数に応じて、前記算出部によって算出される前記算出姿勢情報から繰り返し減算することによって、前記算出姿勢情報を補正することを特徴とする姿勢推定システム。
    [数1]
    補正値C1=(d1×α1)/(R1/r1−β) …(1)
    但し、R1/r1<βである場合には、(R1/r1−β)を1とする。
  5. 請求項1から請求項4のいずれか一項に記載の姿勢推定システムにおいて、
    前記オブジェクトに装着され、入力される画像を表示する表示部と、
    仮想空間において、前記推定部によって推定された前記オブジェクトの姿勢に応じて設定された視点からの画像を描画する描画部と、
    前記描画部によって描画された画像を前記表示部に出力する出力部と、を備えることを特徴とする姿勢推定システム。
  6. 請求項1から請求項5のいずれか一項に記載の姿勢推定システムにおいて、
    前記カメラが撮像した前記撮像画像を取得する解析装置と、
    前記オブジェクトに設けられ、前記慣性計測部から前記検出情報を取得する端末装置と、を備え、
    前記解析装置は、前記解析部を有し、
    前記端末装置は、前記算出部、前記推定部及び前記補正部を有することを特徴とする姿勢推定システム。
  7. 請求項6に記載の姿勢推定システムにおいて、
    前記端末装置は、前記解析装置と無線にて通信し、
    前記端末装置は、前記慣性計測部と有線にて通信することを特徴とする姿勢推定システム。
  8. オブジェクトの姿勢を示す第1姿勢情報を外部から受信する通信部と、
    前記オブジェクトに設けられた慣性計測装置による検出結果を示す検出情報が入力される入力部と、
    前記検出情報に基づいて、前記オブジェクトの姿勢を示す第2姿勢情報を算出する算出部と、
    前記第1姿勢情報及び前記第2姿勢情報に基づいて、前記オブジェクトの姿勢を推定する推定部と、
    前記第1姿勢情報に基づいて、前記第2姿勢情報に含まれる誤差を補正する補正部と、を備えることを特徴とする姿勢推定装置。
  9. オブジェクトの姿勢を示す情報に含まれる誤差を補正する誤差補正方法であって、
    前記オブジェクトの姿勢を示す情報であり、外部から受信された第1姿勢情報に基づいて、前記オブジェクトに設けられた慣性計測装置による検出結果に基づいて算出された前記オブジェクトの姿勢を示す第2姿勢情報に含まれる誤差を補正することを特徴とする誤差補正方法。
  10. 情報処理装置によって実行され、オブジェクトの姿勢を示す情報に含まれる誤差を補正する誤差補正プログラムであって、
    前記情報処理装置に、
    前記オブジェクトの姿勢を示す情報であり、外部から受信された第1姿勢情報に基づいて、前記オブジェクトに設けられた慣性計測装置による検出結果に基づいて算出された前記オブジェクトの姿勢を示す第2姿勢情報に含まれる誤差を補正する補正ステップを実行させることを特徴とする誤差補正プログラム。
JP2019092809A 2019-05-16 2019-05-16 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム Pending JP2020187623A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019092809A JP2020187623A (ja) 2019-05-16 2019-05-16 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム
US16/864,601 US11232291B2 (en) 2019-05-16 2020-05-01 Posture estimation system, posture estimation apparatus, error correction method, and error correction program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019092809A JP2020187623A (ja) 2019-05-16 2019-05-16 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム

Publications (1)

Publication Number Publication Date
JP2020187623A true JP2020187623A (ja) 2020-11-19

Family

ID=73221857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019092809A Pending JP2020187623A (ja) 2019-05-16 2019-05-16 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム

Country Status (2)

Country Link
US (1) US11232291B2 (ja)
JP (1) JP2020187623A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113739819B (zh) * 2021-08-05 2024-04-16 上海高仙自动化科技发展有限公司 校验方法、装置、电子设备、存储介质及芯片

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6596883B2 (ja) * 2015-03-31 2019-10-30 ソニー株式会社 ヘッドマウントディスプレイ及びヘッドマウントディスプレイの制御方法、並びにコンピューター・プログラム
WO2016183812A1 (zh) * 2015-05-20 2016-11-24 北京诺亦腾科技有限公司 一种混合运动捕捉系统及方法
JP6485964B2 (ja) 2015-09-10 2019-03-20 オプティトラック・ジャパン株式会社 モーションキャプチャー方法及びモーションキャプチャーシステム

Also Published As

Publication number Publication date
US11232291B2 (en) 2022-01-25
US20200364447A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
KR102141288B1 (ko) 홈 트레이닝 제공 방법 및 시스템
JP6439702B2 (ja) 画像処理装置及び画像処理方法、コンピューター・プログラム、並びに画像表示システム
KR101768958B1 (ko) 고품질 콘텐츠 제작을 위한 하이브리드 모션캡쳐 시스템
CN106125903B (zh) 多人交互系统及方法
US20110205243A1 (en) Image processing apparatus, image processing method, program, and image processing system
US10760904B2 (en) Wearable device, posture measurement method, and non-transitory recording medium
US20180153445A1 (en) Measurement device and measurement method
US11662589B2 (en) Geometry modeling of eyewear devices with flexible frames
CN108427479B (zh) 可穿戴设备、环境图像数据的处理系统、方法及可读介质
JP6288858B2 (ja) 光学式モーションキャプチャにおける光学式マーカーの位置の推定方法及び装置
CN107613867B (zh) 动作显示系统以及记录介质
US20210157396A1 (en) System and method related to data fusing
KR20210093866A (ko) 정보 처리 장치, 정보 처리 방법 및 프로그램
KR101636171B1 (ko) 스켈레톤 트래킹 방법 및 이를 이용한 스켈레톤 트래킹 시스템
JP2020187623A (ja) 姿勢推定システム、姿勢推定装置、誤差補正方法及び誤差補正プログラム
US10587862B2 (en) Head-mounted device
US11275434B2 (en) Information processing apparatus, information processing method, and storage medium
US11589778B2 (en) Body size estimation apparatus, body size estimation method, and program
US11119566B2 (en) System and method for a virtual reality motion controller
CN112888914B (zh) 跟踪器校准装置,跟踪器校准方法和程序
US20200258193A1 (en) Information processing apparatus, information processing method, and storage medium
JP6890524B2 (ja) 姿勢制御システム
JP2020201183A (ja) カメラ位置調整方法
EP4016252A1 (en) System and method related to motion tracking
US11845001B2 (en) Calibration system and method for handheld controller