(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231122BHJP
G01P 21/00 20060101ALI20231122BHJP
G01P 7/00 20060101ALI20231122BHJP
【FI】
G06N20/00
G01P21/00
G01P7/00
(21)【出願番号】P 2021573688
(86)(22)【出願日】2020-01-29
(86)【国際出願番号】 JP2020003173
(87)【国際公開番号】W WO2021152723
(87)【国際公開日】2021-08-05
【審査請求日】2022-06-02
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】大橋 良徳
【審査官】金沢 史明
(56)【参考文献】
【文献】米国特許出願公開第2019/0331832(US,A1)
【文献】特開2004-239881(JP,A)
【文献】特開2010-107244(JP,A)
【文献】特開2018-194441(JP,A)
【文献】特開2017-146279(JP,A)
【文献】特開2017-147825(JP,A)
【文献】米国特許出願公開第2005/0021270(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G01P 21/00
G01P 15/00
G01P 7/00
(57)【特許請求の範囲】
【請求項1】
所定の時刻TSから時刻TEまでの間に複数の入力データを逐次的に受け入れる手段と、
前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での推定データを推定する推定手段と、
を含
み、
前記入力データは、所定の対象物の加速度に関する測定データであり、
前記推定データは、所定の対象物の加速度の真値を推定したデータであり、
前記時刻Tより後の時刻に入力された入力データを、前記推定データに対して累算して、前記所定の対象物の速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
【請求項2】
慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
を有し、
当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供され、
所定の時刻TSから時刻TEまでの間の複数の時点で、前記デバイスの前記校正の処理が行われた移動加速度の情報を逐次的に受け入れる手段と、
前記受け入れた移動加速度の情報を入力データとして、時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習された第2の機械学習モデル情報を用い、前記受け入れた移動加速度の情報に基づく、前記時刻Tの時点での所定の対象物の加速度の真値を推定する推定手段と、
をさらに含み、
前記時刻Tより後の時刻に入力された移動加速度の情報を、前記推定した真値に対して累算して、前記デバイスの速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
【請求項3】
慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
前記推定される姿勢情報のうち、重力方向の回転角を、予め定めた角度に設定した姿勢情報を入力データとして用い、当該入力データと前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、前記推定した前記デバイスの姿勢情報のうち、重力方向の回転角を、予め定めた角度に設定して得た情報を、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
を有し、
当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供され、
所定の時刻TSから時刻TEまでの間の複数の時点で、前記デバイスの前記校正の処理が行われた移動加速度の情報を逐次的に受け入れる手段と、
前記受け入れた移動加速度の情報を入力データとして、時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習された第2の機械学習モデル情報を用い、前記受け入れた移動加速度の情報に基づく、前記時刻Tの時点での所定の対象物の加速度の真値を推定する推定手段と、
をさらに含み、
前記時刻Tより後の時刻に入力された移動加速度の情報を、前記推定した真値に対して累算して、前記デバイスの速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
【請求項4】
慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、
前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、
前記推定される姿勢情報のうち、重力方向の回転角を除いた情報を入力データとして用い、当該入力データと前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、前記推定した前記デバイスの姿勢情報のうち、重力方向の回転角を除いた情報を、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、
を有し、
当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供され、
所定の時刻TSから時刻TEまでの間の複数の時点で、前記デバイスの前記校正の処理が行われた移動加速度の情報を逐次的に受け入れる手段と、
前記受け入れた移動加速度の情報を入力データとして、時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習された第2の機械学習モデル情報を用い、前記受け入れた移動加速度の情報に基づく、前記時刻Tの時点での所定の対象物の加速度の真値を推定する推定手段と、
をさらに含み、
前記時刻Tより後の時刻に入力された移動加速度の情報を、前記推定した真値に対して累算して、前記デバイスの速度または位置の少なくとも一方に関する情報を生成する情報処理装置。
【請求項5】
請求項
2から4のいずれか一項に記載の情報処理装置であって、
前記推定手段が用いる第1の機械学習モデルは、前記入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差及び加速度スケールファクタ値との関係を機械学習した状態にあり、
前記推定手段は、前記推定した前記デバイスの姿勢情報に基づく入力データを、当該第1の機械学習モデルに入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差及び加速度スケールファクタ値を推定する推定手段であり、
当該推定されたバイアス誤差及び加速度スケールファクタ値が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供される情報処理装置。
【請求項6】
請求項
2から4のいずれか一項に記載の情報処理装置であって、
前記慣性計測ユニットが出力する情報とは異なる情報に基づいて前記デバイスの位置、速度、移動加速度のいずれかの情報を取得する、他のトラッキング手段をさらに含み、
所定の時刻TSから時刻TEまでの間の複数の時点で受け入れた、前記デバイスの前記校正の処理が行われた移動加速度の情報と、前記時刻T(TS<T<TE)の時点で当該他のトラッキング手段が取得した位置、速度、移動加速度のいずれかの情報とが、前記第2の機械学習モデルの機械学習に供される情報処理装置。
【請求項7】
請求項
2から4のいずれか一項に記載の情報処理装置であって、
前記第2の機械学習モデルは、ランダムに欠損させた入力データを利用して、当該入力データを入力したときの、前記時刻T(TS<T<TE)の時点での所定の対象物の加速度の真値を推定する状態に機械学習されている情報処理装置。
【請求項8】
請求項
2から4のいずれか一項に記載の情報処理装置であって、
前記デバイスが静止した状態にあるか否かを判定する手段をさらに含み、
前記デバイスが静止した状態にあると判定されたときに、前記慣性計測ユニットが出力する移動加速度の情報を出力するべきバイアス誤差として、前記推定される姿勢情報に基づく情報を入力データとして第1の機械学習モデルの機械学習を行う情報処理装置。
【請求項9】
コンピュータを用い、
受入手段が、所定の時刻TSから時刻TEまでの間に所定の対象物の加速度に関する測定データである複数の入力データを逐次的に受け入れ、
推定手段が、前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での、前記所定の対象物の加速度の真値を推定したデータである推定データを推定する情報処理方法であって、
生成手段が、前記時刻Tより後の時刻に入力された入力データを、前記推定データに対して累算して、前記所定の対象物の速度または位置の少なくとも一方に関する情報を生成する情報処理方法。
【請求項10】
コンピュータを、
所定の時刻TSから時刻TEまでの間に、所定の対象物の加速度に関する測定データである複数の入力データを逐次的に受け入れる手段と、
前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での前記所定の対象物の加速度の真値を推定したデータである推定データを推定する推定手段と、
前記時刻Tより後の時刻に入力された入力データを、前記推定データに対して累算して、前記所定の対象物の速度または位置の少なくとも一方に関する情報を生成する手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、IMU(inertial measurement unit:慣性計測ユニット)の出力する角速度や、加速度を表す信号を校正する方法として、次のような方法が知られている。
【0003】
従来の方法の一例では、加速度の信号を校正する方法として、IMUを含むデバイスが静止している状態であると判定したときにIMUが出力する信号(バイアス誤差)と、出力される信号から推定される計測値の最大値と、実際の計測値の最大値との差(スケールファクタ誤差)と、さらに非直交性誤差とを校正する方法が知られている。
【0004】
具体的にはバイアス誤差を表すベクトル(X,Y,Z軸方向の各成分からなる3次元のベクトル)dと、スケールファクタ誤差を表す対角行列(3×3の行列)Sと、非直交性誤差を表す上三角行列TNとを用い、IMUが出力する加速度の信号(上記3軸の各成分を含むベクトル値の信号)imuを、
imu′=TNS(imu+d)
と補正して、この補正後の加速度の値imu′を用いてデバイスの位置等の推定を行うこととしていた。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来例の校正の方法では、IMUが備えるセンサの歪みによる誤差や、力を受ける向きによる感度差による誤差が校正できない。さらに、上記従来例のように信号を補正しても、ホワイトノイズ誤差等、除去できない誤差もあるため、長時間に亘る時間積分等の処理に供することは実用的でない。
また、IMUから、実質的に同一の信号が予め定めた回数以上連続して得られたときにデバイスが静止していると判断する場合、デバイスが低速で移動している状況では静止していると判断されやすいという問題がある。また、デバイスの動き始めは静止と判断されやすく、この場合は、次にデバイスが静止するときのデバイスの位置の情報に誤りが生じる。
【0006】
このように、上記従来のIMUの出力を校正する方法では、IMUの出力に基づいてデバイスの位置を推定することが容易でないという問題点があった。
【0007】
本発明は上記実情に鑑みて為されたもので、IMUが出力する信号の誤差をより低減でき、また、IMUが出力する信号に基づいて、IMUを含むデバイスの位置の推定を実用的なものとする情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0008】
本発明の一態様に係る情報処理装置は、所定の時刻TSから時刻TEまでの間に複数の入力データを逐次的に受け入れる手段と、前記受け入れた入力データに基づいて、時刻T(TS<T<TE)の時点での所定の推定データを推定する状態に機械学習されたモデル情報を用い、前記受け入れた入力データに基づく、前記時刻Tの時点での推定データを推定する推定手段と、を含むこととしたものである。
【0009】
また本発明の一態様に係る情報処理装置は、慣性計測ユニットを備えたデバイスから、当該慣性計測ユニットの出力を受け入れる手段と、前記受け入れた慣性計測ユニットの出力に基づいて、前記デバイスの姿勢情報を推定する手段と、当該推定される姿勢情報に基づく情報を入力データとし、当該入力データと、前記慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差との関係を少なくとも機械学習した状態にある第1の機械学習モデルを用い、当該第1の機械学習モデルに、前記推定した前記デバイスの姿勢情報に基づく情報を入力して、前記デバイスが備える慣性計測ユニットが出力する移動加速度の情報に含まれるバイアス誤差を少なくとも推定する推定手段と、を有し、当該推定されたバイアス誤差が、前記慣性計測ユニットが出力する移動加速度の校正の処理に供されることとしたものである。
【発明の効果】
【0010】
本発明をデバイスが備えるIMUが出力する信号に適用することにより、当該信号の誤差をより低減でき、また、IMUが出力する信号に基づいて、IMUを含むデバイスの位置の推定を実用的なものとすることができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
【
図2】本発明の実施の形態に係る情報処理装置に接続されるデバイスの例を表す構成ブロック図である。
【
図3】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【
図4】本発明の実施の形態に係る情報処理装置が利用する第1のニューラルネットワークの構成例を表すブロック図である。
【
図5】本発明の実施の形態に係る情報処理装置が利用する第2のニューラルネットワークの構成例を表すブロック図である。
【発明を実施するための形態】
【0012】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、
図1に例示するように、例えばユーザが手に持って移動操作するデバイス2に対して有線、または無線にて通信可能に接続される。
【0013】
またこの情報処理装置1は、
図1に示すように、制御部11と、記憶部12と、操作入力部13と、出力制御部14と、撮像部15とを含んで構成される。本実施の形態の一例では、この情報処理装置1は家庭用ゲーム機であり、デバイス2はそのゲームコントローラであってもよい。
【0014】
本実施の形態の例では、このデバイス2は、ユーザが手に把持して利用するコントローラデバイスである。このデバイス2には、例えば円柱状の筐体を有し、当該筐体にLEDなどのマーカーMが配されているものでもよい。情報処理装置1は撮像部15で撮像した画像からユーザが手に把持したデバイス2のマーカーMを検出して、デバイス2の位置や向き等の姿勢情報を取得してもよい。
【0015】
またこのデバイス2は、
図2に例示するように、慣性計測ユニット(IMU)21と、コントローラ22と、通信部23とを含んで構成される。ここでIMU21は、互いに直交する3つの軸方向の加速度を計測する加速度センサ(3軸加速度センサ)と、ジャイロセンサとを含む。またこのIMU21は、方位を推定するため、磁気センサが含まれてもよい。
【0016】
コントローラ22は、マイクロプロセッサ等であり、内蔵するメモリ等に格納されたプログラムに従って動作する。このコントローラ22は、IMU21が出力する加速度センサの計測値(上記3軸方向のそれぞれへの移動加速度を表す値)である加速度情報aと、ジャイロセンサの表す角速度の値ωとを所定のタイミングごと(ここでの例では一定の時間間隔Δtごと)に繰り返し得て、通信部23に出力する。
【0017】
通信部23は、有線または無線にて情報処理装置1との間で通信可能に接続されており、コントローラ22が出力する加速度情報aと、角速度の値ωとを表す信号を、情報処理装置1に対して送出する。
【0018】
また、情報処理装置1の制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。例えばこの制御部11は、ゲームアプリケーションの処理として、利用者によるデバイス2の移動操作等に基づいてゲームアプリケーションの処理を実行する。
【0019】
具体的に本実施の形態の制御部11は、デバイス2から加速度情報aと、角速度の値ωとを表す信号の入力を受けて、次の処理を実行する。ここで受け入れる加速度情報aと、角速度の値ωとはいずれもデバイス2に固有な座標系(センサ座標系)での値である。この座標系は、例えば円柱状をなすデバイス2の長手方向(円柱の回転対称軸の方向)をζ軸とし、これに垂直な面内であって、デバイス2をユーザが把持したときに、ユーザ側となる方向を例えばη軸、上記面内で、ζ,η軸に直交する方向をξ軸として、このξηζ直交座標系とする。
【0020】
制御部11は、まず角速度の値ωから、デバイス2の姿勢を推定する。本実施の形態の例では、制御部11は、角速度の値ωに対してマッジウィックフィルタ(Madgwick Filter:Madgwick, An efficient orientation filter for inertial and inertial/magnetic sensor arrays, Technical Report, University of Bristol, UK., 2010.)を適用し、当該マッジウィックフィルタが出力する姿勢の推定結果に基づいて姿勢クオタニオンqを求める。この姿勢クオタニオンqが本発明の姿勢情報に相当する。ここで求められる姿勢クオタニオンqの各成分は、グローバル座標系(デバイス2の姿勢に関わらない座標系、例えば重力方向をY軸、これに垂直な床面であって、ユーザの前方方向をZ軸、Z,Y軸に直交する、上記床面内の軸方向をX軸としたXYZ直交座標系など)で表される回転軸方向を表すベクトルと、当該回転軸周りの回転角wとを含む。
【0021】
また制御部11は、姿勢クオタニオンqを入力として、加速度のバイアス誤差のベクトル値と、加速度のスケールファクタ誤差を表す行列の対角成分との推定値を出力するよう機械学習された状態にある第1のニューラルネットワークを利用し、デバイス2から受け入れた角速度得られた姿勢クオタニオンqをこの第1のニューラルネットワークに入力して、対応する加速度のバイアス誤差のベクトル値と、加速度のスケールファクタ誤差を表す行列の対角成分とを推定する。
【0022】
制御部11は、ここで推定したバイアス誤差のベクトル値とスケールファクタ誤差の行列(推定された対角成分を対応する要素に配した行列)とを用いて、デバイス2から受け入れた加速度情報aからこれらの誤差を除去した誤差除去後の加速度情報a′を求める。
【0023】
制御部11は、誤差除去後の加速度情報a′と、姿勢クオタニオンqとを用いて、加速度の値を、グローバル座標系の加速度情報agに変換する。さらに制御部11は、所定の時刻TSから時刻TEまでの間に逐次的に得られる上記加速度情報agを入力データとして、当該入力データに基づいて、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値を推定して出力するよう機械学習された状態にある第2のニューラルネットワーク(モデル情報)を利用して、上記入力された加速度情報agに基づいて上記時刻Tの時点での推定データである、加速度の真の値の推定値αを得る。
【0024】
制御部11は、この時刻Tの時点での加速度の推定値αと、この時刻T以降、時刻TEまでに得られた加速度情報agとを用いて、グローバル座標系での速度の値と、位置の値とを得る。この制御部11の詳しい処理の内容については、後に述べる。
【0025】
記憶部12は、ディスクデバイスやメモリデバイスをふくみ、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。
【0026】
操作入力部13は、コントローラであるデバイス2から入力される信号を制御部11に出力する。この信号には既に述べた加速度情報aと、角速度の値ωとを表す信号が含まれる。
【0027】
出力制御部14は、ディスプレイ等の表示デバイスに接続され、制御部11から入力される指示に従って画像を表示する。撮像部15は、カメラ等であり、所定の方向の画像を撮像して制御部11に出力する。本実施の形態では、この撮像部15は、ユーザが所在する方向の画像を撮像するよう設置される。
【0028】
次に、本実施の形態の制御部11の動作について説明する。本発明の実施の形態に係る制御部11は、記憶部12に格納されたプログラムを実行して、
図3に例示する機能的構成を実現する。
【0029】
制御部11は、機能的に、検出値受入部31と、角速度誤差除去部32と、姿勢推定部33と、加速度誤差除去部34と、座標変換部35と、ノイズ除去部36と、速度推定部37と、位置推定部38とを含んで構成される。
【0030】
検出値受入部31は、デバイス2から加速度情報aと、角速度の値ωとを表す信号の入力を受け入れる。検出値受入部31は、受け入れた角速度の値ωを、角速度誤差除去部32に出力する。また、この検出値受入部31は、受け入れた加速度情報aを、角速度誤差除去部32及び姿勢推定部33と、加速度誤差除去部34とに出力する。ここで角速度の値ωには、ξ軸周りの回転角度(ヨー角)と、η軸周りの回転角度(ピッチ角)及び、ζ軸周りの回転角度(ロール角)とのそれぞれの角度方向に対する角速度の値が含まれる。
【0031】
角速度誤差除去部32は、所定のタイミング(例えば最初に角速度の値が入力された時点)で、ユーザに対して一時的に静止するように指示する画面を表示するよう、出力制御部14に指示する。そしてこの角速度誤差除去部32は、ユーザが静止したと判断したとき(例えばデバイス2が所定のタイミングごとに出力する角速度の値の各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ったと判断したとき)に、その時点での角速度の値を複数回取得して、その平均を、ロール、ピッチ、ヨーの各成分ごとに角速度バイアスとして求める。角速度誤差除去部32は、ここで求めた角速度バイアスを記憶部12等に保持する。その後、角速度誤差除去部32は、ユーザに対してキャリブレーションが終了したことを示す画面を提示するよう出力制御部14に指示する。
【0032】
また角速度誤差除去部32は、角速度バイアスを得た後は、入力された角速度の値ωの各成分の値から、対応する角速度バイアスの成分の値を差し引いて、キャリブレーション後の角速度の値ω′を出力する。
【0033】
姿勢推定部33は、角速度誤差除去部32が出力する角速度の値ω′からドリフト誤差を除去するとともに、センサ座標系での重力方向のベクトルを推定し、グローバル座標系でのデバイス2の姿勢を表す姿勢クオタニオンqを生成して出力する。
【0034】
この姿勢推定部33の動作は、例えばマッジウィックフィルタを用いた広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
【0035】
加速度誤差除去部34は、
図4に例示するように、入力層41と、中間層42と、出力層43とを含む第1のニューラルネットワークを用いて、姿勢クオタニオンqから加速度バイアス値d及び加速度スケールファクタの値sを推定する。
【0036】
この第1のニューラルネットワークは、各層間を全結合ネットワークで結合したものであり、入力層41及び中間層42は活性化関数として例えばReLU等の公知のものを採用する。
【0037】
本実施の形態の例では、第1のニューラルネットワークの各層間の結合重みやバイアス情報等の学習パラメータは、デバイス2ごとに、デバイス2の工場出荷前に生成される。この学習パラメータは、例えばデバイス2内に不揮発性のメモリを配してこのメモリ内に格納されていてもよい。この場合はデバイス2が情報処理装置1に接続された際に、デバイス2から学習パラメータが情報処理装置1へ転送され、情報処理装置1は、この第1のニューラルネットワークの各層間の結合重みを、この学習パラメータによって設定して、第1のニューラルネットワークを利用する。あるいは、デバイス2ごとに固有な識別情報を割り当てておき、ネットワークを介してアクセス可能なサーバに、識別情報に関連付けて、当該識別情報で識別されるデバイス2について予め機械学習して得られている学習パラメータを保持しておいてもよい。この場合、デバイス2が情報処理装置1に接続された際に情報処理装置1がデバイス2の識別情報を参照し、当該識別情報に関連付けてサーバに保持されている学習パラメータを取得して、の第1のニューラルネットワークの各層間の結合重みを設定する。
【0038】
またこの学習パラメータは、次のようにして得られる。デバイス2を本実施の形態の情報処理装置1に接続し、デバイス2を複数の姿勢で静止させた状態とする。そして情報処理装置1の制御部1がデバイス2が静止した状態であると判断したときに、上記姿勢推定部33が出力する姿勢クオタニオンqを入力とし、加速度情報aが加速度バイアス値dとして出力されるように機械学習を行う。また、加速度スケールファクタ値(加速度スケールファクタ誤差を表す行列の対角成分)sについては、その各成分の値が、姿勢クオタニオンqの値によらずに一定となるよう機械学習する。
【0039】
この機械学習の処理は、姿勢クオタニオンqを入力層41に入力したときの第1のニューラルネットワークの出力層43の出力の各値と、当該各値に対応する加速度情報a及び予め定めた加速度スケールファクタ誤差を表す行列Sの各成分の値sとの差に基づくバックプロパゲーションの処理など、広く知られた方法を用いて行われる。
【0040】
またここでの例では、第1のニューラルネットワークに入力される入力データは姿勢クオタニオンqであるものとしたが、本実施の形態はこれに限られるものではなく、環境温度(デバイス2が備える、図示しない温度センサが計測した温度)や、デバイス2の動作時間(電源がオンとなってからの経過時間)、湿度(デバイス2が備える、図示しない湿度センサが計測した湿度)をさらに含んでもよい。
【0041】
さらにここではデバイス2が静止した状態にあるときの加速度情報aを教師データとしたが、本実施の形態はこれに限らず、デバイス2がユーザによって移動されている間の、デバイス2の振動の大きさや加速度の変化(加速度情報aの時間変化)を姿勢クオタニオンqとともに入力データに含めてもよい。
【0042】
なお、デバイス2が静止した状態であるか否かの判断は、例えば、
・デバイス2が所定のタイミングごとに出力する角速度の値の各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ること、
・デバイス2が所定のタイミングごとに出力する加速度の絶対値が、所定の回数だけ連続して予め定めたしきい値を下回ること、あるいは、
・デバイス2が出力した加速度の時間差分(デバイス2が異なるタイミングで出力する二回分の加速度の差)の絶対値が、所定の回数だけ連続して予め定めたしきい値を下回ること、
などを判断することで行うことができる。
【0043】
また、制御部11の加速度誤差除去部34は、第1のニューラルネットワークを用いて推定した加速度バイアス値dと、加速度スケールファクタ値sとを用いて、加速度情報aからこれらの誤差を除去する。なお、加速度バイアス値d及び加速度情報aは、いずれもセンサ座標系の各成分方向の加速度の値を含む3次元のベクトルであり、加速度スケールファクタ値sは、スケールファクタ誤差を表す対角行列(3×3の行列)Sの各対角成分を表す。
【0044】
本実施の形態の例では、加速度誤差除去部34は、誤差を除去した加速度情報a′を、
a′=S(a+d)
あるいは、
a′=Sa+d
として求める。
【0045】
座標変換部35は、加速度誤差除去部34が出力する、誤差を除去した加速度情報a′(センサ座標系での値)を、姿勢推定部33が出力する姿勢クオタニオンqを用いて、グローバル座標系での加速度情報agに変換する。
【0046】
ノイズ除去部36は、
図5に例示するように、LSTM(Long Short Term Memory)層51と、第1の全結合層52と、第2の全結合層53と、出力層54とを含む第2のニューラルネットワークを用い、所定の時間の間に入力される複数の、グローバル座標系での加速度の値を入力データとして、最後に当該加速度の値が入力された時点より過去の時点における、グローバル座標系での加速度の真の値を推定する。
【0047】
具体的に、この第2のニューラルネットワークの各層間の結合重みやバイアス等の学習パラメータは、少なくとも初期(この制御部11が実行するプログラムのインストールの時点)では、予め定めた値に設定される。この学習パラメータは、当該少なくとも初期の状態では、デバイス2の製造元の側で生成される。
【0048】
一例としてこの第2のニューラルネットワークの学習パラメータは、次のように得られる。本実施の形態の情報処理装置1は、ユーザがデバイス2を手に把持して移動させている場面を、このデバイス2を撮像部15で撮像し、当該撮像した画像から、時刻t0,t1,…tnにおけるn+1回分のグローバルのデバイス2の位置情報p(t0),p(t1)…を得る。ここでti+1-tiは、一定の時間Δtであるとする。また情報処理装置1は、ここで得られた位置情報の時間差分v(t1)=(p(t1)-p(t0))/Δt,v(t2)=(p(t2)-p(t1))/Δt…を求め、さらに各時点の時間差分に対してローパスフィルタを適用して、デバイス2の移動速度の情報を得、さらに移動速度の情報の当初速度v(t1)との時間差分(つまり当初の時点からの速度の差分)であるL(t2)=(v(t2)-v(t1))/Δt,L(t3)=(v(t3)-v(t1))/(2Δt)…を求め、さらに各時点の速度の差分に対してローパスフィルタを適用して、移動加速度の教師データとする。なお、移動加速度の教師データは、さらに、ローパスフィルタ適用後の差分を累算して位置情報との整合がとれるよう補正されてもよい。これらの処理は、画像データに基づく速度や加速度の取得の処理として広く知られた種々の方法を採用できる。
【0049】
一方、情報処理装置1は、このデバイス2から時刻t2,t2…tnの時点でそれぞれ入力される加速度情報a及び、角速度の値ωを用いて、座標変換部35が出力する、各時点でのグローバル座標系での加速度情報ag(t2),ag(t3),…ag(tn)を得ておく。
【0050】
また情報処理装置1は、姿勢推定部33が出力する、各時点での姿勢クオタニオンの情報q(t1),q(t2)…q(tn)から、上記各時点でのグローバル座標系での加速度情報ag(t2),ag(t3),…ag(tn)のそれぞれのY軸成分(グローバル座標系で鉛直下方方向)の値から、重力加速度に相当する値を差し引いて重力成分を除いた加速度情報ag′(t2),ag′(t3),…ag′(tn)を得る。
【0051】
さらに情報処理装置1は、各時点に対する姿勢クオタニオンの時間差分である角速度
ωq(t2)=q(t2)-q(t1)
ωq(t3)=q(t3)-q(t2)…
を求めておく。
【0052】
情報処理装置1は、第2のニューラルネットワークの学習パラメータをランダムに初期化し、加速度情報ag(t2)からag(t2+N・Δt)のN個(Nを2以上の自然数として、N・Δtの時間に亘って入力される加速度情報ag)及びN個の角速度ωq(t2),ωq(t3),…ωq(t2+N・Δt)を入力データとしてLSTM層51に入力したときの出力層54の出力値を得る。情報処理装置1は、時刻t2+M・Δt(ただし0<M<Nなる自然数)の教師データL(t2+M・Δt)=v(t2+M・Δt)-v(t1)と、この出力値との差に基づいて、重力加速度を除いた加速度情報ag′(t2)からag′(t2+N・Δt)及び角速度ωq(t2),ωq(t3),…ωq(t2+N・Δt)を入力したときの第2のニューラルネットワークの出力値が、教師データL(t2+M・Δt)に一致することとなるよう、第2のニューラルネットワークの学習パラメータを更新する。この更新の処理は、広く知られたバックプロパゲーション等の処理によって実行できる。
【0053】
情報処理装置1は、この機械学習の処理を多数の入力データと教師データとの対を用いて行う。そして、第2のニューラルネットワークを、ある時刻TSから時刻TE(ただしTE=TS+Δt×N)までの間に逐次的に得られる、重力加速度を除いたN個の加速度情報ag′、及び角速度ωを入力データとして、当該入力データに基づいて、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値を推定して出力するよう機械学習した状態とする。
【0054】
制御部11のノイズ除去部36は、以上に例示したように機械学習した状態にある第2のニューラルネットワークのLSTM(Long Short Term Memory)層51に、直近の時刻TSから時刻TEまでの間に逐次的に得られる、重力加速度を除いたN個の加速度情報ag′と、姿勢クオタニオンqの時間変化(グローバル座標系での角速度に相当する)である
ωq(tS+Δt)=q(tS+Δt)-q(ts)
ωq(tS+2Δt)=q(tS+2Δt)-q(ts+Δt)
…
ωq(tS+NΔt)=q(tS+NΔt)-q(ts+(N-1)×Δt)
とを入力データとして入力する。
【0055】
ノイズ除去部36は、当該入力データに基づいて第2のニューラルネットワークが出力する、時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)の時点での所定のグローバル座標系での加速度の真の値の推定値αを得る。
【0056】
速度推定部37は、前回、速度推定部37が求めた時刻TSの時点での速度の値を記憶しており(当初はグローバル座標系での各成分とも「0」にリセットしておく)、この速度の値に、時刻TSからTまでの間の移動加速度の推定値αを加算して、時刻Tでの速度の値V(T)を推定する。
【0057】
また、速度推定部37は、ここで推定した速度V(T)に対してさらに、時刻Tより後の時刻tであって、T<t≦TEまでの各時点での座標変換部35の出力から重力加速度を除いて得た加速度情報ag′(T+Δt),ag′(T+2Δt),…ag′(TE)を用い、
V(T)+ag′(T+ΔT)により、時刻T+Δtでの速度の推定値V(T+Δt)と、
V(T+Δt)+ag′(T+2Δt)、つまり時刻Tから時刻T+2ΔTまでの座標変換部35の出力(重力加速度を除く)ag′の累算(積分)をV(T)に加算して時刻(T+2Δt)での速度の推定値V(T+2Δt)と…
V(TE-Δt)+ag′(TE)、つまり時刻Tから時刻T+TEまでの座標変換部35の出力(重力加速度を除く)ag′の累算(積分)をV(T)に加算して、時刻TEでの速度の推定値V(TE)と、
をそれぞれ得る。
【0058】
速度推定部37はこれら各時点での推定値を出力する。また、時刻Tでの速度の推定値V(T)を、次回の演算のために記憶しておく。この時刻Tが次回の演算の時刻TSとなる。
【0059】
位置推定部38は、前回、位置推定部38が求めた時刻TSの時点での位置の値P(TS)を記憶している(当初はグローバル座標系での各成分とも「0」にリセットしておく)。そして位置推定部38は、当該記憶している位置の値に、時刻Tでの速度の推定値V(T)を加えて時刻Tでの位置P(T)を得る。また、時刻Tより後、時刻TEまでの速度の推定値(積分の結果)を累算(積分)して、V(T+Δt)+V(T+2Δt)+…+V(TE-Δt)+V(TE)を求め、これを位置P(T)に加算して、時刻TEでの位置P(TE)を推定する。
【0060】
位置推定部38は、時刻TEでの位置P(TE)を出力して、ゲームアプリケーション等の所定の処理に供する。また位置推定部38は、時刻Tでの位置の推定値P(T)を、次回の演算のために記憶しておく。既に述べたように、この時刻Tが次回の演算の時刻TSとなる。
【0061】
[動作]
本実施の形態は、以上の構成を備えており、次の例のように動作する。なお、以下の説明で情報処理装置1は、第1の機械学習モデルの例である第1のニューラルネットワークと、第2の機械学習モデルの例となる第2のニューラルネットワークとを保持しており、それぞれ予め機械学習した状態としておく。
【0062】
すなわち、第1のニューラルネットワークの層間の結合重みやバイアス等の学習パラメータは、デバイス2ごとに、デバイス2の工場出荷前に生成されるものである。本実施の形態の例では、この第1のニューラルネットワークの学習パラメータは、デバイス2を複数の姿勢でそれぞれ静止させた状態としたときの姿勢クオタニオンqとデバイス2が備える温度センサの出力とを入力データとし、この入力データの状態にあるときに、デバイス2が備える慣性計測ユニットが出力する加速度情報aを、加速度バイアス値dとして出力し、また入力データのうち、専ら温度センサの出力に依存する加速度スケールファクタ値sを出力するように機械学習を行って得たものである。
【0063】
また本実施の形態の例では、第2のニューラルネットワークの層間の結合重みやバイアス等の学習パラメータは、デバイス2の姿勢や移動加速度を変化させつつ取得した、実際のデバイス2の移動加速度の情報(デバイス2を含む画像を撮像し、当該画像に基づいて得ることとすればよい)と、デバイス2が備える慣性計測ユニットが出力する角速度及び移動加速度の情報とを用いて得られる。
【0064】
この例では、第2のニューラルネットワークの機械学習を行うコンピュータデバイス(情報処理装置1等)は、上記デバイス2の姿勢や移動加速度を変化させつつ取得した、複数の時点でデバイス2が備える慣性計測ユニットが出力する角速度(センサ座標系での角速度)及び移動加速度(センサ座標系での加速度情報)の情報を保持する。
【0065】
そしてこのコンピュータデバイスは、上記各時点での角速度の情報に基づいて、上記各時点での姿勢クオタニオンの時間差分(グローバル座標系での角速度)を得る。またこのコンピュータデバイスは、上記各時点での移動加速度の情報から加速度バイアスや加速度スケールファクタの誤差を除き、さらにグローバル座標系での値に変換して、重力成分を差引きして、上記各時点での移動加速度の情報(グローバル座標系での加速度)を得る。
【0066】
第2のニューラルネットワークの機械学習を行うコンピュータデバイスは、ある時間範囲TSからTEの間のN個の時刻の各時点でのグローバル座標系での角速度及び加速度(重力成分を除いたもの)を入力データとしたとき、当該時間範囲内にある時刻T(TS<T<TE)で得られた、実際のデバイス2の移動加速度の情報(この移動加速度には、重力加速度は含まれない)を出力するよう、第2のニューラルネットワークを機械学習する。
【0067】
情報処理装置1は、こうして機械学習された状態にある第1、第2のニューラルネットワークの情報を保持する。そして、情報処理装置1は、有線または無線にて接続されたデバイス2から、当該デバイス2が備える慣性計測ユニットの加速度情報aと、角速度の値ωとを表す信号の入力を、一定のタイミングごとに繰り返し受け入れる。また情報処理装置1は、デバイス2から慣性計測ユニットが出力する角速度等の情報とともに、当該デバイス2が備える温度センサが出力する温度の情報の入力を受け入れる。
【0068】
情報処理装置1は、デバイス2を保持したユーザが静止した(デバイス2が静止した)と判断したときに、その時点での角速度の値を複数回取得して、その平均を、ロール、ピッチ、ヨーの各成分ごとに角速度バイアスとして求めて保持しておく。
【0069】
情報処理装置1は、角速度の値ωが入力されるごとに、当該入力された角速度ωの各成分の値から、保持している角速度バイアスの対応する成分の値を差し引いて、キャリブレーション後の角速度の値ω′を得る。さらに情報処理装置1は、ここで得た角速度の値ω′に基づいてマッジウィックフィルタを用いるなどして、センサ座標系での重力方向のベクトルを推定し、角速度の値が入力されるごとの各時点でのグローバル座標系でのデバイス2の姿勢を表す姿勢クオタニオンqを生成する。
【0070】
また情報処理装置1は、第1のニューラルネットワークを用いて、上記得られた姿勢クオタニオンq及びデバイス2から受けた温度の情報から、上記各時点での加速度バイアス値d及び加速度スケールファクタの値を推定する。
【0071】
そして情報処理装置1は、デバイス2から各時点で受けた加速度情報aから誤差を除去した、各時点での加速度情報a′を、これら各時点での加速度バイアス値d及び加速度スケールファクタの推定値sを配した行列Sと用いて、
a′=S(a+d)
として求める。
【0072】
情報処理装置1は、先に求めた姿勢クオタニオンqを用いて、この誤差を除去した加速度情報a′(センサ座標系での値)をグローバル座標系での加速度情報agに変換する。
【0073】
そして情報処理装置1は、第2のニューラルネットワークを用い、時刻TSからTEまでの時間の間に入力される複数の、グローバル座標系での加速度の値、及び上記姿勢クオタニオンの時間差分(グローバル座標系での角速度の値)を入力データとして、最後に当該加速度の値が入力された時点TEより過去の時点T(つまりTS<T<TEなる時刻T)における、グローバル座標系での加速度の真の値を推定し、当該推定値αを得る。
【0074】
また情報処理装置1は、時刻TSの時点での前回求めた速度の値を記憶しており、この速度の値に、時刻TSからTまでの間の移動加速度の推定値αを加算して、時刻Tでの速度の値V(T)を推定する。
【0075】
さらに情報処理装置1は、時刻Tから時刻TEまでの各時点(加速度の情報が得られている各時点)での速度の値を、V(T)に各時点での加速度情報a′を加算して求め、さらにこの情報を累算して、時刻TEにおける位置情報を求める。そして情報処理装置1は、この位置情報を、ゲームアプリケーション等の所定の処理に供する。
【0076】
[重力成分]
なお、ここまでの説明では、第2のニューラルネットワークの入力データとする加速度の情報は、重力成分を除去した後の加速度の情報を用いていたが、本実施の形態はこれに限られず、重力成分を除去しない状態での(重力方向の軸、ここでの例ではY軸に固定の重力加速度1Gが加算された状態での)加速度の情報を入力データとして用いてもよい。
【0077】
[ランタイム学習]
また、本実施の形態では、第1,第2のニューラルネットワークは、情報処理装置1を利用している間、つまり情報処理装置1でアプリケーションを実行している間に、ランタイムに機械学習を行ってもよい。
【0078】
一例として、情報処理装置1は、デバイス2が所定のタイミングごとに出力する角速度の値ωの各成分のノルム(二乗和)が、所定の回数だけ連続して予め定めたしきい値を下回ったときに、デバイス2が静止していると判断する。そして情報処理装置1は、デバイス2が静止していると判断したときに、姿勢クオタニオンqとデバイス2が備える温度センサの出力とを入力データとして第1のニューラルネットワークに入力する。また情報処理装置1は、このときにデバイス2が出力している加速度情報aを保持しておく。
【0079】
情報処理装置1は、第1のニューラルネットワークの出力である加速度バイアス値dと、加速度スケールファクタ値sとを得る。情報処理装置1は、そして、上記保持している加速度情報aを、加速度バイアス値dの教師データとしてその差d-aを求める。また、温度センサの出力に依存する値として予め定められた加速度スケールファクタ値の教師データと、第1のニューラルネットワークの出力として得られた加速度スケールファクタ値sとの差を求める。
【0080】
そしてこれらの差が「0」となるようにバックプロパゲーションの処理により、第1のニューラルネットワークの学習パラメータ(層間の結合重みやバイアス等の情報)を更新する。
【0081】
また情報処理装置1は、デバイス2が撮像部15の撮像する画角内にある場合には、複数の時点で、デバイス2が備える慣性計測ユニットが出力する角速度及び移動加速度の情報を保持するとともに、その時点での実際のデバイス2の位置、速度、あるいは移動加速度の少なくともいずれかの情報を、撮像部15が撮像した画像データに基づいて取得する。
【0082】
具体的にこのデバイス2の移動加速度等の情報の取得は、慣性計測ユニットを用いる方法以外のトラッキング手段(他のトラッキング手段)を用いて行う。ここで、他のトラッキング手段として動作する情報処理装置1は、例えばデバイス2が備えるマーカーの位置を、撮像部15が撮像した画像から検出する。そして情報処理装置1は、当該検出した位置の時間差分(速度)を得て、さらにこの速度の時間差分を得ることで移動加速度の情報を取得する。また他のトラッキング手段として動作する情報処理装置1は、デバイス2の速度を、慣性計測ユニットを用いる以外の、何らかの方法で直接的に検出できる場合、当該速度の時間差分を得ることで移動加速度の情報を取得すればよい。同様に情報処理装置1は、デバイス2の移動加速度を、慣性計測ユニットを用いる以外の、何らかの方法で直接的に検出できる場合、当該検出した移動加速度の情報をそのまま用いてもよい。
【0083】
この例では、情報処理装置1は、上記各時点で保持した角速度の情報に基づいて、対応する各時点での姿勢クオタニオンq(制御部11の姿勢推定部33の出力)の時間差分(グローバル座標系での角速度)を得る。
【0084】
またこの情報処理装置1は、上記各時点での加速度情報aから加速度バイアスや加速度スケールファクタの誤差を除き、さらにグローバル座標系での値に変換し、重力成分を差引きする。具体的には制御部11の座標変換部35の出力から重力成分を差引きする。そしてこれにより、情報処理装置1は、上記各時点での移動加速度の情報(グローバル座標系での加速度)を得る。
【0085】
そして情報処理装置1は、上記各時点のうち、ある時間範囲TSからTEの間のN個の時刻の各時点でのグローバル座標系での角速度及び加速度(重力成分を除いたもの)を入力データとしたときの第2のニューラルネットワークの出力と、当該時間範囲内にある時刻T(T=TS+Δτであり、このΔτは予め定めておく、ただし、TS<T<TE)で得られた、実際のデバイス2の移動加速度の情報(この移動加速度には、重力加速度は含まれない)との差を求め、この差が「0」となるように第2のニューラルネットワークを機械学習する。
【0086】
このようにランタイムに機械学習を行うこととすれば、デバイス2の経年劣化や、使用場面で温度などの環境変化に対応して、出力を調整できる。
【0087】
[重力方向を軸とする回転を除く機械学習]
さらに本実施の形態の一例では、第1のニューラルネットワークの機械学習時、またはその利用時に入力する姿勢クオタニオンqは、重力軸(Y軸)周りの回転成分(すなわちグローバル座標系でのロール角)を取り除いたものとしてもよい。具体的に情報処理装置1は、第1のニューラルネットワークに入力するべき姿勢クオタニオンqのうち、そのロール角成分を予め定めた角度(例えば0度)に設定した、姿勢クオタニオンq′を求める。そして情報処理装置1は、実際に第1のニューラルネットワークに入力する姿勢クオタニオンとして、ここで求めた姿勢クオタニオンq′を用いることとする。
【0088】
このようにすると、ロール角成分だけ自由度が減るため、機械学習の対象となる訓練データのバリエーションを少なくでき、機械学習結果が比較的早く収束することが期待でき、また安定性を向上できる。また、グローバル座標系でのロール角成分は、実質的にバイアス誤差等に影響しないので、推定するバイアス誤差の精度への影響も軽微である。
【0089】
また、ここではロール角成分を予め定めた角度に設定することとしたが、これに代えて、姿勢クオタニオンqをXYZ座標の各軸周りの回転角度(ヨー角,ロール角,ピッチ角)の情報に変換してこれを姿勢情報とし、第1のニューラルネットワークの入力データとしてもよい。この場合、ロール角の情報は破棄し、ヨー角、ピッチ角の情報を第1のニューラルネットワークの入力データとして用いることとしてもよい。
【0090】
このように、ヨー角、ピッチ角の情報を第1のニューラルネットワークの入力データとして用いれば、ロール角成分だけ自由度が減るため、機械学習の対象となる訓練データのバリエーションを少なくでき、機械学習結果が比較的早く収束することが期待でき、また安定性を向上できる。また、グローバル座標系でのロール角成分は、実質的にバイアス誤差等に影響しないので、推定するバイアス誤差の精度への影響も軽微である。
【0091】
この例によると、迅速に機械学習結果が収束し、安定性を向上できるので、ランタイムの機械学習を行う際には好適である。
【0092】
[データの取りこぼし]
また、デバイス2が無線にて情報処理装置1との間で通信を行っている場合、情報処理装置1が、デバイス2が出力する加速度情報や、角速度の情報の受信に失敗する場合(データの取りこぼしが発生する場合)が想定される。
【0093】
このような事態に対応するため、第2のニューラルネットワークの機械学習時には、訓練データをランダムに欠損させて(例えば対応する成分の値を「0」に設定して)、データの取りこぼし状態を機械学習させることとしてもよい。
【0094】
この例では、実際の第2のニューラルネットワークの使用時(機械学習後の第2のニューラルネットワークを使用して、加速度の真値の推定を行っているとき)に、入力データとなる加速度の情報等に取りこぼしが生じたときには、当該取りこぼした情報に対応する値を「0」に設定して入力データとする。
【0095】
あるいは取りこぼしがあったことを表すフラグ(取りこぼしたときに「1」とする)を入力データに含めて第2のニューラルネットワークを機械学習し、実際の使用時に取りこぼしがないときには、取りこぼしフラグを「0」として入力データを入力し、取りこぼしがあったときには、取りこぼしフラグを「1」として入力データを入力するようにしてもよい。
【0096】
[角速度に対する適用]
また、ここまでの説明において第1のニューラルネットワークは、加速度の情報の校正にのみ利用しているが、角速度についても第1のニューラルネットワークを用いて校正するようにしてもよい。この例では、デバイス2が静止していると判断されるとき、角速度のすべての成分が「0」となるべきであるので、デバイス2ごとに、静止時の角速度の値を、加速度情報とともに第1のニューラルネットワークで機械学習して、補正することとすればよい。
【0097】
[変形例]
以上の例では、情報処理装置1とデバイス2は別体のものとしていたが、本実施の形態の一例では、これらは一体的に構成されてもよい。具体的に本実施の形態の情報処理装置1及びデバイス2は、スマートフォンなどの一体のデバイスとして実現されてもよい。
【符号の説明】
【0098】
1 情報処理装置、2 デバイス、11 制御部、12 記憶部、13 操作入力部、14 出力制御部、15 撮像部、21 IMU、22 コントローラ、23 通信部、31 検出値受入部、32 角速度誤差除去部、33 姿勢推定部、34 加速度誤差除去部、35 座標変換部、36 ノイズ除去部、37 速度推定部、38 位置推定部、41 入力層、42 中間層、43 出力層、52 第1の全結合層、53 第2の全結合層、54 出力層。