特許第6621167号(P6621167)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 山本 洋紀の特許一覧

特許6621167動き推定装置、電子機器、制御プログラム及び動き推定方法
<>
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000012
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000013
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000014
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000015
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000016
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000017
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000018
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000019
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000020
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000021
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000022
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000023
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000024
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000025
  • 特許6621167-動き推定装置、電子機器、制御プログラム及び動き推定方法 図000026
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6621167
(24)【登録日】2019年11月29日
(45)【発行日】2019年12月18日
(54)【発明の名称】動き推定装置、電子機器、制御プログラム及び動き推定方法
(51)【国際特許分類】
   G01P 13/00 20060101AFI20191209BHJP
   G06F 3/01 20060101ALI20191209BHJP
   G06F 3/0484 20130101ALI20191209BHJP
【FI】
   G01P13/00 A
   G06F3/01 510
   G06F3/0484 150
【請求項の数】10
【全頁数】41
(21)【出願番号】特願2019-556289(P2019-556289)
(86)(22)【出願日】2019年10月10日
(86)【国際出願番号】JP2019040097
【審査請求日】2019年10月15日
(31)【優先権主張番号】特願2018-193363(P2018-193363)
(32)【優先日】2018年10月12日
(33)【優先権主張国】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】518363510
【氏名又は名称】山本 洋紀
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】山本 洋紀
(72)【発明者】
【氏名】飯尾 太郎
【審査官】 森 雅之
(56)【参考文献】
【文献】 特許第6316607(JP,B2)
【文献】 特開2016−109608(JP,A)
【文献】 特開2018−136400(JP,A)
【文献】 米国特許第8892391(US,B2)
【文献】 特表2014−515101(JP,A)
【文献】 特許第5688326(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G01P 13/
G06F 3/
(57)【特許請求の範囲】
【請求項1】
振動時の装置の動きを推定する動き推定装置であって、
前記装置の動きを表す予測モデルと、前記装置の第1物理量としての加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する推定部を備える、動き推定装置。
【請求項2】
請求項1に記載の動き推定装置であって、
前記予測モデルでは、あるタイミングでの前記第1物理量の予測確率分布が、当該あるタイミングよりも前のタイミングでの前記第1物理量の推定確率分布を用いた外挿式で表される、動き推定装置。
【請求項3】
請求項1及び請求項2のいずれか一つに記載の動き推定装置であって、
前記観測モデルでは、前記装置の変位及び総変位についての平均あるいは前記装置の回転角及び総回転角についての平均が零として表されている、動き推定装置。
【請求項4】
請求項1から請求項3のいずれか一つに記載の動き推定装置であって、
前記検出値に対して第1フィルタ処理を行う第1フィルタをさらに備え、
前記観測モデルでは、前記第1フィルタ処理が行われた前記検出値が用いられる、動き推定装置。
【請求項5】
請求項1から請求項4のいずれか一つに記載の動き推定装置であって、
前記推定部での推定結果に対して第2フィルタ処理を行う第2フィルタをさらに備える、動き推定装置。
【請求項6】
請求項1から請求項5のいずれか一つに記載の動き推定装置であって、
前記推定部は、前記装置の動きの推定結果として、前記装置の加速度、速度、変位及び総変位のいずれか一つの第1推定値、あるいは前記装置の回転角速度、回転角及び総回転角のいずれか一つの第2推定値を生成する、動き推定装置。
【請求項7】
請求項6に記載の動き推定装置と、
表示部と、
前記動き推定装置の前記推定部で生成される前記変位の前記第1推定値あるいは前記回転角の前記第2推定値に基づいて、前記表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する表示制御部と
を備える、電子機器。
【請求項8】
請求項2に記載の動き推定装置と、
表示部と、
前記表示部の表示を制御する表示制御部と
を備え、
前記動き推定装置の前記推定部は、前記装置の動きの推定結果として、前記装置の第2物理量としての変位あるいは回転角の推定値を生成し、
前記表示制御部は、前記第2物理量の推定値に基づいて、前記表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御し、
前記予測モデルでは、あるタイミングでの前記第2物理量の予測確率分布が、当該あるタイミングよりも前のタイミングでの前記第1物理量の推定確率分布を用いた予測式で表され、
前記推定部は、
前記あるタイミングでの前記第1物理量の推定確率分布を、前記外挿式において前記前のタイミングでの前記第1物理量の推定確率分布として使用して、前記あるタイミングよりも先のタイミングでの前記第1物理量の予測確率分布を求め、求めた前記先のタイミングでの前記第1物理量の予測確率分布を用いた前記ベイズ推定に基づいて、前記先のタイミングでの前記第1物理量の推定確率分布を生成するという処理を繰り返し実行することによって得られた前記第1物理量の推定確率分布を、前記予測式において前記前のタイミングでの前記第1物理量の推定確率分布として使用して、前記画像が前記表示部で表示される表示タイミングでの前記第2物理量の予測確率分布を求め、
前記表示タイミングでの前記第2物理量の予測確率分布を用いた前記ベイズ推定に基づいて、前記表示タイミングでの前記第2物理量の推定値を生成する、電子機器。
【請求項9】
コンピュータを制御するための制御プログラムであって、
前記コンピュータに、
装置の動きを表す予測モデルと、前記装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する処理を実行させる制御プログラム。
【請求項10】
振動時の装置の動きを推定する動き推定方法であって、
前記装置の動きを表す予測モデルと、前記装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、前記装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の前記装置の動きを推定する、動き推定方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、日本国特許出願2018−193363号(2018年10月12日出願)の優先権を主張するものであり、当該出願の開示全体を、ここに参照のために取り込む。
【技術分野】
【0002】
本開示は、装置の動きの推定に関する。
【背景技術】
【0003】
特許文献1には、電子機器に関する技術が記載されている。また特許文献2及び非特許文献1には、ベイズ推定に関する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015−141700号公報
【特許文献2】特開2005−165688号公報
【非特許文献】
【0005】
【非特許文献1】樋口和之編著、「データ同化入門−次世代のシミュレーション技術−」、朝倉書店、2011年9月
【発明の概要】
【発明が解決しようとする課題】
【0006】
電気機器等の装置の動きを推定する場合には、適切に装置の動きを推定できることが望まれる。
【0007】
そこで、本発明は上述の点に鑑みて成されたものであり、装置の動きを適切に推定できることを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
動き推定装置、電子機器、制御プログラム及び動き推定方法が開示される。一の実施の形態では、動き推定装置は、振動時の装置の動きを推定する動き推定装置である。動き推定装置は推定部を備える。推定部は、装置の動きを表す予測モデルと、装置の第1物理量としての加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。
【0009】
また、一の実施の形態では、電子機器は、上記の動き推定装置と、表示部と、表示制御部とを備える。表示制御部は、動き推定装置の推定部で生成される変位あるいは回転角の推定値に基づいて、表示部に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。
【0010】
また、一の実施の形態では、制御プログラムは、コンピュータを制御するための制御プログラムである。制御プログラムは、コンピュータに、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する処理を実行させる。
【0011】
また、一の実施の形態では、動き推定方法は、振動時の装置の動きを推定する動き推定方法である。動き推定方法は、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。
【発明の効果】
【0012】
装置の動きを適切に推定することができる。
【図面の簡単な説明】
【0013】
図1】電子機器の外観の一例を示す斜視図である。
図2】電子機器の外観の一例を示す背面図である。
図3】電子機器の構成の一例を示すブロック図である。
図4】制御部の構成の一例を示すブロック図である。
図5】電子機器の動作の一例を示すフローチャートである。
図6】電子機器の動作の一例を示すフローチャートである。
図7】電子機器の動作の一例を示すフローチャートである。
図8】制御部の構成の一例を示すブロック図である。
図9】電子機器の動作の一例を説明するための図である。
図10】電子機器の動作の一例を示すフローチャートである。
図11】電子機器の動作の一例を説明するための図である。
図12】電子機器の動作の一例を説明するための図である。
図13】電子機器の構成の一例を示すブロック図である。
図14】電子機器が搭載される車両の一例を示す図である。
図15】電子機器の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
<電子機器の外観>
図1及び2は電子機器1の外観の一例を示す斜視図及び背面図である。図1及び2に示されるように、装置の一種である電子機器1は、平面視で略長方形の板状の機器ケース11を備えている。機器ケース11は電子機器1の外装を構成している。
【0015】
機器ケース11の前面11aには、文字、記号、図形等の各種情報が表示される表示面121が位置している。本例では、表示面121は、機器ケース11に含まれる透明部分によって構成されている。表示面121の背面側には後述するタッチパネル130が位置する。これにより、ユーザは、電子機器1の前面の表示面121を指等で操作することによって、電子機器1に対して各種情報を入力することができる。なお、ユーザは、指以外の操作子、例えば、スタイラスペンなどのタッチパネル用ペンで表示面121を操作することによっても、電子機器1に対して各種情報を入力することができる。
【0016】
機器ケース11の前面11aの上端部にはレシーバ穴12が位置している。前面11aの下端部にはスピーカ穴13が位置している。機器ケース11の下側の側面11cにはマイク穴14が位置している。
【0017】
機器ケース11の前面11aの上端部からは、後述する第1カメラ190が有するレンズ191が視認可能となっている。図2に示されるように、機器ケース11の背面11bの上端部からは、後述する第2カメラ200が有するレンズ201が視認可能となっている。
【0018】
電子機器1は、複数の操作ボタンを含む操作ボタン群140を備える。複数の操作ボタンのそれぞれはハードウェアボタンである。具体的には、複数の操作ボタンのそれぞれは押しボタンである。なお、操作ボタン群140に含まれる少なくとも一つの操作ボタンは、表示面121に表示されるソフトウェアボタンであってもよい。
【0019】
操作ボタン群140には、機器ケース11の前面11aの下端部に位置する操作ボタン141,142,143が含まれる。また、操作ボタン群140には、機器ケース11の表面に位置する電源ボタン及びボリュームボタンが含まれてもよい。
【0020】
操作ボタン141は、例えばバックボタンである。バックボタンは、表示面121の表示を一つ前の表示に切り替えるための操作ボタンである。ユーザが操作ボタン141を操作することよって、表示面121の表示が一つ前の表示に切り替わる。操作ボタン142は、例えばホームボタンである。ホームボタンは、表示面121にホーム画面を表示させるための操作ボタンである。ユーザが操作ボタン142を操作することよって、表示面121にホーム画面が表示される。操作ボタン143は、例えば履歴ボタンである。履歴ボタンは、電子機器1で実行されたアプリケーションの履歴を表示面121に表示させるための操作ボタンである。ユーザが操作ボタン143を操作することよって、表示面121には、電子機器1で実行されたアプリケーションの履歴が表示される。
【0021】
以下では、図1,2に示されるXYZ直交座標系を用いて電子機器1を説明することがある。X軸方向、Y軸方向及びZ軸方向は、電子機器1の短手方向、長手方向及び厚み方向にそれぞれ設定されている。
【0022】
<電子機器の電気的構成>
図3は電子機器1の電気的構成の一例を主に示すブロック図である。図3に示されるように、電子機器1は、制御部100、無線通信部110、表示部120、タッチパネル130、操作ボタン群140及び加速度センサ150を備える。さらに電子機器1は、レシーバ160、スピーカ170、マイク180、第1カメラ190、第2カメラ200及び電池210を備える。電子機器1が備えるこれらの構成要素は、機器ケース11内に収められている。電子機器1は、一種のコンピュータであると言える。
【0023】
制御部100は、電子機器1の他の構成要素を制御することによって、電子機器1の動作を統括的に管理することが可能である。制御部100は制御装置あるいは制御回路とも言える。制御部100は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
【0024】
種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、または複数の通信可能に接続された集積回路(IC)及び/またはディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
【0025】
1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続又は処理を実行するように構成された1以上の回路又はユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続き又は処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
【0026】
種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、またはこれらのデバイス若しくは構成の任意の組み合わせ、または他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
【0027】
本例では、制御部100は、CPU(Central Processing Unit)101、DSP(Digital Signal Processor)102及び記憶部103を備える。記憶部103は、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、CPU101及びDSP102が読み取り可能な非一時的な記録媒体を含む。記憶部103が有するROMは、例えば、不揮発性メモリであるフラッシュROM(フラッシュメモリ)である。記憶部103には、電子機器1を制御するための複数の制御プログラム103a等が記憶されている。制御部100の各種機能は、CPU101及びDSP102が記憶部103内の各種制御プログラム103aを実行することによって実現される。
【0028】
なお制御部100は、複数のCPU101を備えてもよい。この場合、制御部100は、比較的複雑な処理を行う、処理能力が高いメインCPUと、比較的簡単な処理を行う、処理能力が低いサブCPUとを備えてもよい。また制御部100は、DSP102を備えなくてもよいし、複数のDSP102を備えてもよい。また、制御部100の全ての機能あるいは制御部100の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【0029】
記憶部103は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部103は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えていてもよい。
【0030】
記憶部103内の複数の制御プログラム103aには、様々なアプリケーション(アプリケーションプログラム)が含まれている。記憶部103には、例えば、音声通話及びビデオ通話を行うための通話アプリケーション、ウェブサイトを表示するためのブラウザ、電子メールの作成、閲覧及び送受信を行うためのメールアプリケーションが記憶されている。また記憶部103には、第1カメラ190及び第2カメラ200を利用して被写体を撮影するためのカメラアプリケーション、記憶部103に記録されている静止画及び動画を表示するための記録画像表示アプリケーション、記憶部103に記憶されている音楽データの再生制御を行うための音楽再生制御アプリケーションなどが記憶されている。記憶部103内の少なくとも一つのアプリケーションは、記憶部103内にあらかじめ記憶されているものであってよい。また、記憶部103内の少なくとも一つのアプリケーションは、電子機器1が他の装置からダウンロードして記憶部103内に記憶したものであってよい。
【0031】
無線通信部110は、アンテナ111を有している。無線通信部110は、アンテナ111を用いて、例えば複数種類の通信方式で無線通信することが可能である。無線通信部110の無線通信は、制御部100によって制御される。無線通信部110は、通信回路あるいは無線通信回路とも言える。
【0032】
無線通信部110は、携帯電話システムの基地局と無線通信することが可能である。無線通信部110は、当該基地局及びインターネット等のネットワークを通じて、電子機器1とは別の携帯電話機及びウェブサーバ等と通信することが可能である。電子機器1は、他の携帯電話機等と、データ通信、音声通話及びビデオ通話等を行うことが可能である。
【0033】
また無線通信部110、WiFi等の無線LAN(Local Area Network)を用いて無線通信を行うことが可能である。また無線通信部110は、近距離無線通信を行うことが可能である。例えば、無線通信部110は、Bluetooth(登録商標)に準拠して無線通信することが可能である。無線通信部110は、ZigBee(登録商標)及びNFC(Near Field Communication)の少なくとも一方に準拠して無線通信することが可能であってもよい。
【0034】
無線通信部110は、アンテナ111で受信した信号に対して増幅処理等の各種処理を行い、処理後の受信信号を制御部100に出力する。制御部100は、入力される受信信号に対して各種処理を行って、当該受信信号に含まれる情報を取得する。また、制御部100は、情報を含む送信信号を無線通信部110に出力する。無線通信部110は、入力される送信信号に対して増幅処理等の各種処理を行って、処理後の送信信号をアンテナ111から無線送信する。
【0035】
表示部120は、電子機器1の前面に位置する表示面121と、表示パネル122とを備えている。表示パネル122は、例えば液晶表示パネルであって、液晶、ガラス基板、偏光板及びバックライト等を備える。表示パネル122は、各種情報を表示することが可能である。表示パネル122は、機器ケース11内において、表示面121と対向している。これにより、表示パネル122に表示される情報が表示面121に表示される。表示部120は画面表示部とも言える。
【0036】
タッチパネル130は、表示面121に対する指等の操作子による操作を検出することが可能である。タッチパネル130は、例えば、投影型静電容量方式のタッチパネルである。タッチパネル130は、例えば、表示面121の裏側に位置する。ユーザが指等の操作子によって表示面121に対して操作を行ったとき、その操作に応じた電気信号をタッチパネル130は制御部100に入力することが可能である。制御部100は、タッチパネル130からの電気信号(出力信号)に基づいて、表示面121に対して行われた操作の内容を特定することが可能である。そして制御部100は、特定した操作内容に応じた処理を行うことが可能である。タッチパネル130はタッチセンサとも言える。なお、表示パネル122及びタッチパネル130の代わりに、タッチパネルが組み込まれたインセル型の表示パネルが採用されてもよい。
【0037】
操作ボタン群140の各操作ボタンは、ユーザによって操作されると、操作されたことを示す操作信号を制御部100に出力することが可能である。これにより、制御部100は、各操作ボタンについて、当該操作ボタンが操作されたか否かを判断することができる。操作信号が入力された制御部100が他の構成要素を制御することによって、電子機器1では、操作された操作ボタンに割り当てられている機能が実行される。
【0038】
マイク180は、電子機器1の外部から入力される音を電気的な音信号に変換して制御部100に出力することが可能である。電子機器1の外部からの音は、マイク穴14から電子機器1の内部に取り込まれてマイク180に入力される。
【0039】
スピーカ170は、例えばダイナミックスピーカである。スピーカ170は、制御部100からの電気的な音信号を音に変換して出力することが可能である。スピーカ170から出力される音は、スピーカ穴13から外部に出力される。ユーザは、スピーカ穴13から出力される音を、電子機器1から離れた場所でも聞こえることが可能である。
【0040】
レシーバ160は受話音を出力することが可能である。レシーバ160は例えばダイナミックスピーカである。レシーバ160は、制御部100からの電気的な音信号を音に変換して出力することが可能である。レシーバ160から出力される音はレシーバ穴12から外部に出力される。レシーバ穴12から出力される音の音量は、スピーカ穴13から出力される音の音量よりも小さくなっている。ユーザは、レシーバ穴12から出力される音を、当該レシーバ穴12に耳を近づけることによって聞くことができる。なお、レシーバ160の代わりに、機器ケース11の前面部分を振動させる、圧電振動素子等の振動素子を設けてもよい。この場合には、音は、当該前面部分の振動によりユーザに伝達される。
【0041】
第1カメラ190は、レンズ191及びイメージセンサなどを備えている。第2カメラ200は、レンズ201及びイメージセンサなどを備えている。第1カメラ190及び第2カメラ200のそれぞれは、制御部100による制御に基づいて被写体を撮影し、撮影した被写体を示す静止画あるいは動画を生成して制御部100に出力することが可能である。
【0042】
第1カメラ190のレンズ191は、機器ケース11の前面11aから視認可能となっている。したがって、第1カメラ190は、電子機器1の前面側(表示面121側)に存在する被写体を撮影することが可能である。第1カメラ190はインカメラと呼ばれる。一方で、第2カメラ200のレンズ201は、機器ケース11の背面11bから視認可能となっている。したがって、第2カメラ200は、電子機器1の背面側に存在する被写体を撮影することが可能である。第2カメラ200はアウトカメラと呼ばれる。
【0043】
加速度センサ150は、電子機器1の加速度を検出することが可能である。加速度センサ150は例えば3軸加速度センサである。加速度センサ150は、X軸方向、Y軸方向及びZ軸方向(図1,2参照)の電子機器1の加速度を検出することが可能である。加速度センサ150は、所定間隔ごとに、加速度を検出してその検出結果を出力する。本例では、当該所定間隔は5msであるが、他の値でもよい。以後、当該所定間隔を検出間隔と呼ぶことがある。また、検出間隔の長さをTで表すことがある。
【0044】
電池210は電子機器1の電源を出力することが可能である。電池210は例えば充電式の電池である。電池210から出力される電源は、電子機器1が備える制御部100及び無線通信部110などの各種構成に対して供給される。
【0045】
なお電子機器1は、加速度センサ150を備えなくてもよい。この場合、電子機器1は、それとは別体の加速度センサと、無線あるいは有線で接続されてよい。
【0046】
また電子機器1は、加速度センサ150以外のセンサを備えてもよい。例えば、電子機器1は、気圧センサ、地磁気センサ、温度センサ、近接センサ、照度センサ、位置センサ及びジャイロセンサの少なくとも一つを備えてもよい。また電子機器1は、それとは別体の、加速度センサ150以外のセンサと、無線あるいは有線で接続されてもよい。
【0047】
<電子機器の動きの推定>
本例では、制御部100は、図4に示されるように、機能ブロックとして動き推定装置400を備える。動き推定装置400は、加速度センサ150の検出値151に基づいて、振動時の電子機器1の動きを推定することが可能である。ここで、振動は、周期的な振動と非周期的な振動の両方を含む概念である。振動は、揺れあるいは揺動とも言える。以後、単に動きと言えば、電子機器1の動きを意味する。また、検出値151、つまり加速度センサ150で検出される加速度を加速度検出値と呼ぶことがある。
【0048】
図4に示されるように、動き推定装置400は、推定部300と、第1フィルタ310と、第2フィルタ320とを備える。推定部300、第1フィルタ310及び第2フィルタ320の少なくとも一つは、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。
【0049】
本例では、動き推定装置400は、動きの推定結果についての後述の利用方法を考慮して、例えば、電子機器1についての、周波数帯が2Hz以上5Hz以下の振幅が数mmの小さいランダム振動を対象振動とする。そして、制御部100は、対象振動を行っている電子機器1の動きを推定することができる。このような条件を満たす対象振動としては、例えば、電子機器1を手に持つユーザがバスあるいは電車等の車両内に存在する場合に、当該車両の振動によって生じる電子機器1の振動が挙げられる。また、対象振動としては、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合の電子機器1の振動が挙げられる。なお、対象振動は本例に限られない。
【0050】
加速度センサ150の検出値151は、対象振動以外の影響も受ける。例えば、検出値151は重力の影響を受ける。また、電子機器1を手に持つユーザが車両内に存在する場合には、検出値151は、車両にかかる遠心力の影響を受けたり、車両が発進したり停止したりする際の当該車両の加速度の影響を受けたりする。また、検出値151は、ユーザが随意的に手をゆっくり動かす場合にも影響を受けたりする。これらの外乱に抗して、対象となる補正すべき動きを単離して推定する必要がある。
【0051】
第1フィルタ310は、加速度センサ150の検出値151から、対象振動以外の影響を除去するために、検出値151に対してフィルタ処理を行う。第1フィルタ310は、例えばハイパスフィルタであって、その通過帯域が例えば2Hz以上に設定される。なお、第1フィルタ310はバンドパスフィルタであってもよい。このバンドパスフィルタの通過帯域は例えば2Hz以上5Hz以下に設定される。第1フィルタ310の通過帯域は本例に限られない。
【0052】
推定部300は、第1フィルタ310でフィルタ処理された検出値151と、観測モデル350と、予測モデル360とを用いたベイズ推定に基づいて、対象振動時の電子機器1の動きを推定する。推定部300は、例えば、逐次ベイズフィルタと呼ばれる方法で、対象振動時の電子機器1の動きを推定する。逐次ベイズフィルタについては上記の非特許文献1に記載されている。本例では、後述するように、推定部300は、電子機器1の動きの推定結果として、例えば、電子機器1の加速度の推定値と、電子機器1の速度の推定値と、電子機器1の変位の推定値と、電子機器1の総変位の推定値とを生成する。
【0053】
ここで、電子機器1の変位とは、電子機器1の位置についての基準位置からの変化の量を意味する。電子機器1の変位は、基準位置に対する相対的な位置を示しているとも言える。また電子機器1の総変位とは、電子機器1の各時刻の変位を足し合わせたものである。基準位置としては、例えば、動き推定装置400が動作を開始したときの電子機器1の位置が採用される。動き推定装置400は、電子機器1の動作開始に応じて動作を開始してもよいし、動作中の電子機器1に対するユーザの操作に応じて動作を開始してもよい。また、動き推定装置400は、動作中の電子機器1において他の条件が成立した場合に、動作を開始してもよい。
【0054】
以後、ベイズ推定によって得られる電子機器1の加速度、速度、変位及び総変位の推定値を、それぞれ、加速度推定値、速度推定値、変位推定値及び総変位推定値と呼ぶことがある。また、単に加速度と言えば、電子機器1の加速度を意味し、単に速度と言えば、電子機器1の速度を意味する。また、単に変位と言えば、電子機器1の変位を意味し、単に総変位と言えば、電子機器1の総変位を意味する。加速度、速度、変位及び総変位のそれぞれは、電子機器1の物理量であると言える。
【0055】
第2フィルタ320は、推定部300での推定結果に対してフィルタ処理を行う。本例では、第2フィルタ320は、推定部300から出力される加速度推定値、速度推定値、変位推定値及び総変位推定値のそれぞれに対して個別にフィルタ処理を行う。第2フィルタ320は、ハイパスフィルタであってもよいし、バンドパスフィルタであってもよい。第2フィルタ320のフィルタ特性は、第1フィルタ310のフィルタ特性と同じであってもよいし、異なっていてもよい。例えば、第2フィルタ320の通過帯域は、第1フィルタ310の通過帯域と同じであってもよいし、異なっていてもよい。推定部300での推定結果に対してフィルタ処理を行うことによって、推定結果の利用態様に適した推定結果を得ることができる。
【0056】
<推定部の動作の詳細>
ベイズの定理によると、時刻tの事後確率p(x|z1:t)は以下の式(1)で表すことができる。事後確率p(x|z1:t)は確率分布であって、事後分布p(x|z1:t)とも呼ばれる。
【0057】
【数1】
【0058】
ここで、xは、状態を表すベクトルであって、状態ベクトルと呼ばれる。状態ベクトルxは時刻tの状態ベクトルxを意味する。zは、観測を表すベクトルであって、観測ベクトルと呼ばれる。観測ベクトルzは時刻tの観測ベクトルを意味する。観測ベクトルz1:tは、時刻1〜tまでの観測ベクトルを意味する。式(1)に示されるように、時刻tの事後確率p(x|z1:t)は、確率分布p(z|x)と、確率分布p(x|xt−1)と、時刻t−1の事後確率p(xt−1|z1:t−1)とで表すことができる。確率分布p(z|x)は観測モデルと呼ばれ、確率分布p(x|xt−1)は予測モデルあるいはシステムモデルと呼ばれる。
【0059】
状態ベクトルx及び観測ベクトルzのそれぞれには、少なくとも一つの変数が含まれる。本例では、状態ベクトルxには、変数として、加速度、速度、変位及び総変位が含まれる。観測ベクトルzには、変数として、加速度、速度、変位及び総変位が含まれる。状態ベクトルx及び観測ベクトルzに含まれる変数は確率変数であるとも言える。
【0060】
推定部300は、式(1)を用いて事後確率p(x|z1:t)を求めることによってベイズ推定を行う。つまり、推定部300は、前回の推定結果としての事後確率p(xt−1|z1:t−1)に対して、予測モデルと観測モデルを適用することによって、事後確率p(x|z1:t)を逐次的に推定する。推定部300は、p(z|x)として観測モデル350を使用し、確率分布p(x|xt−1)として予測モデル360を使用する。推定部300は、求めた事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルする。そして、推定部300は、推定状態ベクトルの加速度、速度、変位及び総変位の成分を、それぞれ、加速度推定値、速度推定値、変位推定値及び総変位推定値とする。
【0061】
<観測モデルの一例>
本例では、観測モデル350は対象振動を表す観測モデルである。本例では、観測モデル350は、対象振動に関する統計的な事前知識を表す確率分布である。具体的には、観測モデル350は、対象振動時の電子機器1の加速度、速度、変位及び総変位を表す最大4次元の確率分布である。以後、観測モデル350の各次元についての周辺確率分布を、それぞれ、第1確率分布、第2確率分布、第3確率分布及び第4確率分布と呼ぶことがある。
【0062】
ここで、上述のように、対象振動の振幅は小さい。したがって、対象振動時の電子機器1の位置はあまり変化しない。本例では、対象振動時の電子機器1の変位を、例えば、当該変位を確率変数とする、平均が零で分散の小さい固定の第1確率分布で表すことによって、観測モデル350において、電子機器1の位置があまり変化しないという知識を表現する。観測モデル350では、対象振動時の電子機器1の変位の平均が零であると表現されていると言える。また、本例では、対象振動時の電子機器1の加速度を、例えば、当該加速度を確率変数とする、平均が加速度検出値で分散の小さい第2確率分布で表す。第2確率分布の平均としては、例えば、第1フィルタ310でフィルタ処理された加速度検出値が採用される。第2確率分布は加速度検出値に応じて変化する。また、本例では、対象振動時の電子機器1の速度を、例えば、当該速度を確率変数とする、平均が零で分散の小さい固定の第3確率分布で表すことによって、観測モデル350において、電子機器1の速度があまり大きくならないという知識を表現する。
【0063】
また、観測モデル350は、対象振動を表す観測モデルであることから、観測モデル350において、電子機器1が振動するという知識を表現する必要がある。本例では、対象振動時の電子機器1の総変位を、例えば、当該総変位を確率変数とする、平均が零の固定の第4確率分布で表すことによって、観測モデル350において、電子機器1が振動するという知識を表現する。観測モデル350では、対象振動時の電子機器1の総変位の平均が零であると表現されていると言える。
【0064】
観測モデル350については、例えば機械学習によって対象振動に対して決定される。この場合、観測モデル350は、例えば最尤推定法が使用されて決定されてもよい。また、観測モデル350は、対象振動の振動環境における実測値の統計分布に基づいて決定されてもよい。また、観測モデル350は、機械学習と実測値の統計分布の両方に基づいて決定されてもよい。第1〜第4確率分布としては、例えば正規分布が採用されてもよい。この場合、ベイズ推定でのフィルタとして、高速なカルマンフィルタが採用できる。
【0065】
<予測モデルの一例>
予測モデル360では、時刻tでの加速度の予測値がa(t)で表され、加速度についての時刻tでの予測誤差がw_a(t)で表される。本例では、電子機器1の加速度は滑らかに変化するものとし、以下の式(2)が成立すると考える。
【0066】
【数2】
【0067】
式(2)より、予測モデル360では、ノイズ成分であるとも言える予測誤差を考慮しなければ、加速度は線形変化すると言える。本例では、予測値a(t)は確率分布で表される。以後、予測値a(t)を予測確率分布a(t)と呼ぶことがある。予測誤差は、例えば、時刻に応じて変化しない固定の確率分布が採用される。予測誤差は例えば機械学習によって決定される。この場合、予測誤差は例えば最尤推定法が使用されて決定されてもよい。予測誤差を表す確率分布として、例えば正規分布が採用されてもよい。この場合、ベイズ推定でのフィルタとして、高速なカルマンフィルタが採用できる。
【0068】
式(2)から以下の式(3)が得られる。
【0069】
【数3】
【0070】
推定部300は、式(3)を用いて、時刻tでの加速度の予測値a(t)を求める。このとき、推定部300は、式(3)のa(t−1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての加速度の周辺確率分布を代入する。また推定部300は、式(3)のa(t−2)に対して、推定された時刻t―2の事後確率p(xt−2|z1:t−2)についての加速度の周辺確率分布を代入する。
【0071】
ここで、時刻t−1の事後確率p(xt−1|z1:t−1)についての加速度の周辺確率分布は、時刻t―1の加速度の推定確率分布であると言える。また、時刻t−2の事後確率p(xt−2|z1:t−2)についての加速度の周辺確率分布は、時刻t―2の加速度の推定確率分布であると言える。したがって、予測モデル360では、時刻tでの加速度の予測確率分布a(t)は、時刻t−1での加速度の推定確率分布と、時刻t−2での加速度の推定確率分布と、時刻tでの予測誤差w_a(t)とで表されると言える。式(3)より、時刻tでの加速度の予測確率分布a(t)は、時刻t−1での加速度の推定確率分布と、時刻t−2での加速度の推定確率分布とを用いた外挿により求められると言える。予測モデル360では、あるタイミングでの加速度の予測確率分布が、それよりも前のタイミングでの加速度の推定確率分布を用いた外挿式で表されると言える。なお、推定部300は、動作開始直後において、加速度の過去の推定確率分布が存在しない場合には、a(t−1)及びa(t−2)に初期確率分布(例えば、平均が零で分散が所定値である正規分布)を代入する。
【0072】
また、予測モデル360では、時刻tでの速度の予測値がv(t)で表され、時刻tでの変位の予測値がr(t)で表され、時刻tでの総変位の予測値がs(t)で表される。
【0073】
ここで、電子機器1の速度については、電子機器1の加速度を積分することによって得られる。また、電子機器1の変位については、電子機器1の速度を積分することによって得られる。そして、電子機器1の総変位については、電子機器1の変位を積分することによって得られる。
【0074】
予測モデル360では、速度の予測値v(t)、変位の予測値r(t)及び総変位の予測値s(t)が、加速度センサ150の検出間隔の長さTを用いた以下の式(4),(5),(6)でそれぞれ表される。予測モデル360では、速度についての時刻tでの予測誤差がw_v(t)で表され、変位についての時刻tでの予測誤差がw_r(t)で表され、総変位についての時刻tでの予測誤差がw_s(t)で表される。本例では、予測値v(t)、予測値r(t)及び予測値s(t)のそれぞれは確率分布で表される。以後、予測値v(t)、予測値r(t)及び予測値s(t)を、それぞれ、予測確率分布v(t)、予測確率分布r(t)及び予測確率分布s(t)と呼ぶことがある。
【0075】
【数4】
【0076】
【数5】
【0077】
【数6】
【0078】
推定部300は、式(4)を用いて、時刻tでの速度の予測値v(t)を求める。このとき、推定部300は、式(4)のa(t−1)及びv(t―1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての加速度及び速度の周辺確率分布をそれぞれ代入する。したがって、式(4)は、時刻t−1での加速度の推定確率分布と時刻t−1での速度の推定確率分布とを用いた、時刻tでの速度の確率分布を予測する予測式であると言える。
【0079】
また、推定部300は、式(5)を用いて、時刻tでの変位の予測値r(t)を求める。このとき、推定部300は、式(5)のa(t−1)、v(t−1)及びr(t−1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての加速度、速度及び変位の周辺確率分布をそれぞれ代入する。したがって、式(5)は、時刻t−1での加速度の推定確率分布と、時刻t−1での速度の推定確率分布と、時刻t−1での変位の推定確率分布と用いた、時刻tでの変位の確率分布を予測する予測式であると言える。
【0080】
また、推定部300は、式(6)を用いて、時刻tでの総変位の予測値s(t)を求める。このとき、推定部300は、式(6)のa(t−1)、v(t−1)、r(t−1)及びs(t―1)に対して、予測された時刻t−1の事後確率p(xt−1|z1:t−1)についての加速度、速度、変位及び総変位の周辺確率分布をそれぞれ代入する。したがって、式(6)は、時刻t−1での加速度の推定確率分布と、時刻t−1での速度の推定確率分布と、時刻t−1での変位の推定確率分布と、時刻t−1での総変位の推定確率分布と用いた、時刻tでの総変位の確率分布を予測する予測式であると言える。
【0081】
推定部300は、加速度センサ150から出力される加速度検出値(言い換えれば、検出値151)と、予測モデル360での式(3)〜(6)と、観測モデル350とを用いたベイズ推定に基づいて、現在の電子機器1の動きを推定する動き推定処理を行う。
【0082】
図5は推定部300での動き推定処理の一例を示すフローチャートである。図5に示される動き推定処理は、加速度センサ150において新たに加速度が検出されるたびに実行される。本例では、推定部300は、動き推定処理において、例えば、X軸方向の加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、Y軸方向の加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。
【0083】
推定部300は、加速度センサ150から最新の加速度検出値を取得すると、図5に示されるように、ステップs1において、予測モデル360を用いて、現在の加速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の加速度の予測値と、Y軸方向の加速度の予測値とを別々に求める。
【0084】
ステップs1において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(3)のa(t−1)に代入する。また、推定部300は、前回の動き推定処理のステップs1においてa(t−1)に代入したX軸方向の加速度の周辺確率分布を、式(3)のa(t−2)に代入する。言い換えれば、推定部300は、前々回の動き推定処理で得られた事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を、式(3)の予測値a(t−2)に代入する。これにより得られた予測値a(t)、つまり予測確率分布a(t)を、推定部300は、X軸方向の現在の加速度の予測値(言い換えれば、予測確率分布)とする。推定部300は、同様にして、式(3)を用いて、Y軸方向の現在の加速度の予測値を求める。
【0085】
次にステップs2において、推定部300は、予測モデル360を用いて、現在の速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の速度の予測値と、Y軸方向の速度の予測値とを別々に求める。
【0086】
ステップs2において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(4)のa(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を式(4)のv(t−1)に代入する。これにより得られた予測値v(t)、つまり予測確率分布v(t)を、推定部300は、X軸方向の現在の速度の予測値とする。推定部300は、同様にして、式(4)を用いて、Y軸方向の現在の速度の予測値を求める。
【0087】
次にステップs3において、推定部300は、予測モデル360を用いて、現在の変位の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の変位の予測値と、Y軸方向の変位の予測値とを別々に求める。
【0088】
ステップs3において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(5)のa(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を、式(5)のv(t−1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布を、式(5)のr(t−1)に代入する。これにより得られた予測値r(t)、つまり予測確率分布r(t)を、推定部300は、X軸方向の現在の変位の予測値とする。推定部300は、同様にして、式(5)を用いて、Y軸方向の現在の変位の予測値を求める。
【0089】
次にステップs4において、推定部300は、予測モデル360を用いて、現在の総変位の予測値を求める。本例では、推定部300は、予測モデル360を用いて、X軸方向の総変位の予測値と、Y軸方向の総変位の予測値とを別々に求める。
【0090】
ステップs4において、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布を式(6)のa(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布を、式(6)のv(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布を、式(6)のr(t−1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の総変位の周辺確率分布を、式(6)のs(t−1)に代入する。これにより得られた予測値s(t)、言い換えれば予測確率分布s(t)を、推定部300は、X軸方向の現在の総変位の予測値とする。推定部300は、同様にして、式(6)を用いて、Y軸方向の現在の総変位の予測値を求める。
【0091】
次にステップs5において、推定部300は、ステップs1〜s4で求めた予測値と観測モデル350とを用いたベイズ推定に基づいて、加速度の推定値、速度の推定値、変位の推定値及び総変位の推定値を生成する。
【0092】
本例では、推定部300は、ステップs1〜s4で求めたX軸方向の予測値と観測モデル350とを用いたベイズ推定に基づいて、X軸方向の加速度、速度、変位及び総変位の推定値を生成する。また、推定部300は、ステップs1〜s4で求めたY軸方向の予測値と観測モデル350とを用いたベイズ推定に基づいて、Y軸方向の加速度、速度、変位及び総変位の推定値を生成する。
【0093】
ステップs5では、推定部300は、ステップs1〜s4で得られたX軸方向の加速度、速度、変位及び総変位の予測値(言い換えれば、予測確率分布)を上述の式(1)のp(x|xt−1)に代入する。また推定部300は、観測モデル350を式(1)のp(z|x)に代入する。このとき、推定部300は、X軸方向の最新の加速度検出値(詳細には、第1フィルタ310でフィルタ処理されたX軸方向の最新の加速度検出値)を第2確率分布の平均として用いる。そして、推定部300は、前回の動き推定処理のステップs5で得られた事後確率p(x|z1:t)を式(1)の事後確率p(xt−1|z1:t−1)に代入して、事後確率p(x|z1:t)を求める。これにより、時刻tの事後確率p(x|z1:t)が推定される。推定された事後確率p(x|z1:t)についての各次元の周辺確率分布は、次回の動き推定処理での予測値の算出に使用される。推定部300は、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを特定し、それを推定状態ベクトルとする。推定部300は、推定状態ベクトルの加速度、速度、変位及び総変位の成分を、それぞれ、X軸方向の現在の加速度推定値、速度推定値、変位推定値及び総変位推定値とする。電子機器1が対象振動を行っている場合には、ステップs5では、対象振動時の電子機器1のX軸方向の加速度、速度、変位及び総変位の推定値が得られると言える。同様にして、推定部300は、式(1)を用いて、Y軸方向の加速度、速度、変位及び総変位の推定値を生成する。このとき、推定部300は、Y軸方向の最新の加速度検出値(詳細には、第1フィルタ310でフィルタ処理されたY軸方向の最新の加速度検出値)を第2確率分布の平均として用いる。
【0094】
第2フィルタ320は、推定部300で生成される、X軸方向の加速度、速度、変位及び総変位の推定値のそれぞれと、推定部300で生成される、Y軸方向の加速度、速度、変位及び総変位の推定値のそれぞれとに対して個別にフィルタ処理を行う。
【0095】
なお、動き推定処理では、a(t−1)に、フィルタ処理された加速度の周辺確率分布が入力されてもよい。また、a(t−2)に、フィルタ処理された加速度の周辺確率分布が入力されてもよい。また、v(t―1)には、フィルタ処理された速度の周辺確率分布が入力されてもよい。また、r(t−1)には、フィルタ処理された変位の周辺確率分布が入力されてもよい。また、s(t−1)には、フィルタ処理された総変位の周辺確率分布が入力されてもよい。
【0096】
動き推定処理では、同様にして、Z軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されてもよい。また、動き推定処理では、X軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されなくてもよい。また、動き推定処理では、Y軸方向の加速度、速度、変位及び総変位の推定値の少なくとも一つが生成されなくてもよい。また、回転振動についても同様の枠組みでベイズ推定を行ってもよい。
【0097】
また、動き推定処理でのステップs1〜s4の実行順序は上記の例に限られない。例えば、ステップs1は、ステップs2〜s4のいずれか一つのステップの後に実行されてもよいし、ステップs4は、ステップs1〜s3のいずれか一つのステップの前に実行されてもよい。
【0098】
また、推定部300は、現在よりも先のタイミングでの電子機器1の動きを推定することができる。図6はこの場合の推定部300の動作の一例を示すフローチャートである。以後、上述のステップs1〜s5の一連の処理を単位推定処理と呼ぶ。図6の例では、推定部300は、単位推定処理を必要回数M(Mは1以上整数)だけ実行することによって、現在よりも(T×(M−1))時間先のタイミングでの電子機器1の動きを推定することができる。M=1の場合には、つまり単位推定処理が1回だけ実行される場合には、図6に示される動き推定処理は、図5に示される動き推定処理と実質的に同じとなる。
【0099】
推定部300は、加速度センサ150から新たな加速度検出値を取得すると、図6に示されるように、ステップs11において単位推定処理を実行する。その後、ステップs12において、推定部300は、単位推定処理を必要回数Mだけ実行したか否かを判定する。
【0100】
ステップs12においてYESと判定されると、推定部300は動き推定処理を終了する。一方で、ステップs12においてNOと判定されると、推定部300はステップs11を再度実行して、単位推定処理を再度実行する。以後、推定部300は同様に動作する。
【0101】
動き推定処理での2回目の単位推定処理のステップs1では、1回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(3)のa(t−1)に代入される。そして、1回目の単位推定処理においてa(t−1)に代入されたX軸方向の加速度の周辺確率分布が、式(3)のa(t−2)に代入される。これにより得られた予測値a(t)(言い換えれば、予測確率分布a(t))を、推定部300は、現在よりもT時間先のタイミングでのX軸方向の加速度の予測値とする。2回目の単位推定処理のステップs1では、同様にして、現在よりもT時間先のタイミングでのY軸方向の加速度の予測値が求められる。
【0102】
また、動き推定処理でのNa回目(3≦Na≦M)の単位推定処理のステップs1では、(Na−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(3)のa(t−1)に代入される。そして、(Na−2)回目の単位推定処理で推定されて事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が、式(3)のa(t−2)に代入される。これにより得られた予測値a(t)を、推定部300は、現在よりも(T×(Na−1))時間先のタイミングでのX軸方向の加速度の予測値とする。Na回目の単位推定処理のステップs1では、同様にして、現在よりも(T×(Na−1))時間先のタイミングでのY軸方向の加速度の予測値が求められる。
【0103】
動き推定処理のNb回目(2≦Nb≦M)の単位推定処理のステップs2では、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(4)のa(t−1)に代入される。そして、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(4)のv(t−1)に代入される。これにより得られた予測値v(t)を、推定部300は、現在よりも(T×(Nb―1))時間先のタイミングでのX軸方向の速度の予測値とする。Nb回目の単位推定処理のステップs2では、同様にして、現在よりも(T×(Nb―1))時間先のタイミングでのY軸方向の速度の予測値が求められる。
【0104】
動き推定処理において、推定部300が、単位推定処理を複数回実行することは、推定部300が、あるタイミングでの推定確率分布を、式(3)の外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた当該先のタイミングでの予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの推定確率分布を生成する処理を繰り返し実行することであると言える。
【0105】
動き推定処理のNb回目の単位推定処理のステップs3では、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(5)のa(t−1)に代入される。また、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(5)のv(t−1)に代入される。そして、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布が式(5)のr(t−1)に代入される。これにより得られた予測値r(t)を、推定部300は、現在よりも(T×(Nb−1))時間先のタイミングでのX軸方向の変位の予測値とする。Nb回目の単位推定処理のステップs3では、同様にして、現在よりも(T×(Nb−1))時間先のタイミングでのY軸方向の変位の予測値が求められる。
【0106】
動き推定処理のNb回目の単位推定処理のステップs4では、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の加速度の周辺確率分布が式(6)のa(t−1)に代入される。また、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の速度の周辺確率分布が式(6)のv(t−1)に代入される。また、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の変位の周辺確率分布が式(6)のr(t−1)に代入される。そして、(Nb−1)回目の単位推定処理で推定された事後確率p(x|z1:t)についてのX軸方向の総変位の周辺確率分布が式(6)のs(t−1)に代入される。これにより得られた予測値s(t)を、推定部300は、現在よりも(T×(Nb−1))時間先のタイミングでの総変位の予測値とする。Nb回目の単位推定処理のステップs4では、同様にして、現在よりも(T×(Nb−1))時間先のタイミングでのY軸方向の総変位の予測値が求められる。
【0107】
動き推定処理のNb回目の単位推定処理のステップs5では、現在よりも(T×(Nb−1))時間先のタイミングでのX軸方向の加速度、速度、変位及び総変位の推定値と、現在よりも(T×(Nb−1))時間先のタイミングでのY軸方向の加速度、速度、変位及び総変位の推定値とが生成される。
【0108】
以上のようにして単位推定処理が必要回数Mだけ実行されることによって、現在よりも(T×(M−1))時間先のタイミングでの電子機器1の動きが推定される。言い換えれば、単位推定処理が必要回数Mだけ実行されることによって、最新の加速度検出値が得られたタイミングよりも(T×(M−1))時間先のタイミングでの電子機器1の動きが推定される。電子機器1が対象振動を行っている場合には、対象振動時の電子機器1についての現在よりも(T×(M−1))時間先のタイミングでの動きが推定される。本例では、対象振動時の電子機器1についての現在よりも(T×(M−1))時間先のタイミングでの加速度、速度、変位及び総変位の推定値が得られる。図6の動き推定処理によれば、推定部300は、現在よりもTの整数倍だけ先のタイミングでの電子機器1の動きを推定する。
【0109】
なお、推定部300は、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望のタイミングでの電子機器1の動きを推定することも可能である。図7はこの場合の動き推定処理の一例を示すフローチャートである。以下の説明では、現在よりも先の所望のタイミングを推定タイミングと呼ぶ。
【0110】
図7に示されるように、ステップs21において、推定部300は、推定タイミングに基づいて必要回数Mを決定する。ステップs21では、推定部300は、推定タイミングが、現在よりも(T×(M−1))時間先のタイミングを超えずに、現在よりも(T×(M−1))時間先のタイミングに最も近くなるようなMの値を決定する。
【0111】
ここで、推定タイミングが現在よりもT0時間先のタイミングであるとする。ステップs21では、推定部300は、T×(M−2)<T0≦T×(M−1)を満たすようなMの値を決定する。例えば、T0=18msであるとする。つまり、推定タイミングが、現在よりも18ms先のタイミングであるとする。M=4のとき、T×(M−1)=5ms×3=15msとなる。M=5のとき、T×(M−1)=5ms×4=20msとなる。したがって、T0=18msの場合、T×(M−2)<T0≦T×(M−1)を満たすMの値は5となる。
【0112】
ステップs21の後、推定部300は、上述のステップs11及びs12を実行する。ステップs12においてNOと判定されると、ステップs11が再度実行され、以後、推定部300は同様に動作する。一方で、ステップs12においてYESと判定されると、ステップs22が実行される。ステップs22において、推定部300は、(M−1)回目の単位推定処理のステップs5での動きの推定結果と、M回目の単位推定処理のステップs5での動きの推定結果とに基づいて、推定タイミングでの電子機器1の動きを推定する。
【0113】
ステップs22では、推定部300は、(M−1)回目の単位推定処理で得られる、現在よりも(T×(M−2))時間先のタイミングでのX軸方向の加速度の推定値と、M回目の単位推定処理で得られる、現在よりも(T×(M−1))時間先のタイミングでのX軸方向の加速度の推定値とに基づいて、推定タイミングでのX軸方向の加速度の推定値を生成する。例えば、推定部300は、現在よりも(T×(M−2))時間先のタイミングでのX軸方向の加速度の推定値と、現在よりも(T×(M−1))時間先のタイミングでのX軸方向の加速度の推定値とを用いた線形補間によって、推定タイミングでのX軸方向の加速度の推定値を生成する。
【0114】
ここで、推定タイミングでのX軸方向の加速度の推定値をA0とする。また、現在よりも(T×(M−2))時間先のタイミングでのX軸方向の加速度の推定値をA1とし、現在よりも(T×(M−1))時間先のタイミングでのX軸方向の加速度の推定値をA2とする。また、(T×(M−2))をT1とし、(T×(M−1))をT2とする。推定部300は、例えば、以下の式(7)を用いて、推定タイミングでのX軸方向の加速度の推定値A0を求める。
【0115】
【数7】
【0116】
ステップs22において、推定部300は、同様にして、推定タイミングでのX軸方向の速度、変位及び総変位の推定値を求める。またステップs22において、推定部300は、同様にして、推定タイミングでのY軸方向の加速度、速度、変位及び総変位の推定値を求める。
【0117】
なお、T0=T×(M−1)の場合には、つまり、推定タイミングが、現在よりも(T×(M−1))時間先のタイミングである場合には、ステップs22において、推定部300は、M回目の単位推定処理での動きの推定結果を、推定タイミングでの動きの推定結果として使用する。T0=T×(M−1)、かつM≧2の場合には、図7に示される動き推定処理は、図6に示される動き推定処理と実質的に同じとなる。また、T0=T×(M−1)、かつM=1の場合には、図7に示される動き推定処理は、図5に示される動き推定処理と実質的に同じとなる。
【0118】
また、推定部300は、ステップs22を実行しなくてもよい。つまり、推定部300は、線形補間を実行しなくてもよい。この場合、推定部300は、T0が(T×(M−1))と一致しない場合には、現在から(T×(M−1))時間先のタイミングでの動きの推定結果を、推定タイミングでの動きの推定結果としてもよい。
【0119】
以上のように、本例では、加速度センサ150の加速度検出値と、電子機器1の動きを表す予測モデル360と、当該加速度検出値が用いられる、電子機器1の振動を表す観測モデル350とを用いたベイズ推定に基づいて、振動時の電子機器1の動きが推定される。これにより、振動時の電子機器1の動きを適切に推定することができる。
【0120】
また、本例に係る予測モデル360では、上述の式(3)に示されるように、あるタイミングでの加速度の予測確率分布が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布を用いた外挿式で表される。そして、あるタイミングでの推定確率分布を、外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた先のタイミングでの予測確率分布を用いたベイズ推定に基づいて当該先のタイミングでの推定確率分布を生成するという処理を繰り返し実行することによって、所望のタイミングでの加速度の推定確率分布を求めることができる。よって、外挿式を使用して、所望のタイミングでの加速度の推定値を簡単に得ることができる。
【0121】
また本例では、観測モデル350において、対象振動時の電子機器1の変位の平均が零であると表現されている。言い換えれば、観測モデル350では、変位の周辺確率分布の平均が零とされている。したがって、対象振動時の電子機器1の変位の推定値が零から大きく離れる可能性を低減することができる。よって、対象振動の振幅が小さいという状況に応じた変位の推定値を適切に得ることができる。
【0122】
また本例では、観測モデル350において、対象振動時の電子機器1の総変位の平均が零であると表現されている。言い換えれば、観測モデル350では、総変位の周辺確率分布の平均が零とされている。これにより、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる。以下にこの点について詳細に説明する。以下の説明では、例えば、電子機器1がX軸方向に沿って振動しているにもかかわらず、加速度センサ150での加速度の検出誤差等によって、予測モデル360からは、すなわち、検出値の積分計算だけからは、電子機器1のX軸方向の変位の符号が常にプラスであると予測されるような第1の状況を考える。また、電子機器1がX軸方向に沿って振動しているにもかかわらず、加速度センサ150での加速度の検出誤差等によって、予測モデル360からは、すなわち、検出値の積分計算だけからは、電子機器1のX軸方向の変位の符号が常にマイナスであると予測されるような第2の状況を考える。
【0123】
第1の状況において、対象振動時の電子機器1の総変位の平均が零であると観測モデル350で表現されていない場合には、変位の第1確率分布の働きにより、ベイズ推定によって求められる電子機器1のX軸方向の変位の推定値が零付近になる可能性は高くなるものの、マイナスの値になる可能性は低い。したがって、第1の状況において観測モデル350の総変位の周辺確率分布の平均が零に設定されていない場合には、X軸方向の変位の推定値の符号がプラスからマイナスにならずに、当該推定値が電子機器1のX軸方向に沿った振動に応じた値とならない可能性がある。同様に、第2の状況において総変位の周辺確率分布の平均が零に設定されていない場合には、X軸方向の変位の推定値の符号がマイナスからプラスにならずに、当該推定値が電子機器1のX軸方向に沿った振動に応じた値とならない可能性がある。
【0124】
ここで、X軸方向の総変位は、X軸方向の変位の符号がプラスである間、増加し続ける。一方で、X軸方向の総変位を減少させるためには、X軸方向の変位の符号がマイナスとなる必要がある。
【0125】
本例のように、観測モデル350において、対象振動時の電子機器1の総変位の平均が零であると表現されている場合には、第1の状況において、総変位の推定値が零に近づくように変位の推定値の符号がマイナスとなる可能性が高くなる。また、第2の状況では、総変位の推定値が零に近づくように変位の推定値の符号がプラスになる可能性が高くなる。よって、本例のように、観測モデル350の総変位の第4確率分布の平均が零に設定されている場合には、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる。
【0126】
なお、上記の例では、観測モデル350において、電子機器1の速度があまり大きくならないという知識が表現されているが、速度に関するこのような表現は無くてもよい。また、推定部300は、加速度、速度、変位及び総変位の推定値のうちの少なくとも一つを生成しなくてもよい。つまり、推定部300は、動きの推定結果として、加速度、速度、変位及び総変位の少なくとも一つの推定値を生成してもよい。
【0127】
<動きの推定結果の利用方法の一例>
動き推定装置400での動きの推定結果は様々な場面で利用することが可能である。以下に、一例として、電子機器1が、画像の表示制御において、動き推定装置400での動きの推定結果を利用する場合について説明する。
【0128】
<動きの推定結果を利用した画像表示制御の一例>
上述のように、対象振動としては、電子機器1を手に持つユーザがバスあるいは電車等の車両内に存在する場合に、当該車両の振動によって生じる電子機器1の振動が挙げられる。また、対象振動としては、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合の電子機器1の振動が挙げられる。電子機器1を手に持つユーザが車両内に存在する場合、当該車両の振動によって電子機器1が振動すると、電子機器1の地球に対する位置が動く可能性がある。その結果、ユーザは電子機器1に表示される画像を視認しにくい可能性がある。また、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震えることによって電子機器1が振動する場合、電子機器1の地球に対する位置が動く可能性がある。その結果、ユーザは電子機器1に表示される画像を視認しにくい可能性がある。
【0129】
そこで、本例では、電子機器1は、動き推定装置400での動きの推定結果に基づいて、表示部120に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。具体的には、電子機器1は、動き推定装置400で生成される変位の推定値に基づいて、表示部120に表示される画像の表示位置を制御することによって、当該画像の地球に対する位置を制御する。これにより、対象振動時の電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。よって、電子機器1を手に持つユーザが車両内に存在する場合であっても、電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。また、電子機器1を持つユーザの手が加齢あるいは病気などの事情により震える場合であっても、電子機器1に表示される画像の地球に対する位置が変化しにくくなり、当該画像の視認性を向上させることが可能となる。以下にこの利用例について詳細に説明する。
【0130】
図8は本例に係る制御部100の構成の一例を示す図である。図8に示されるように、制御部100は、機能ブロックとして、表示部120の表示を制御する表示制御部500を備える。表示制御部500は、動き推定装置400の第2フィルタ320から出力される変位の推定値に基づいて、所定のフレームレートで表示部120に表示される画像の表示位置を制御することによって、当該画像についての地球に対する位置を制御する、といった画像位置制御を行う。画像の表示位置は、表示面121内での画像の位置であるとも言える。所定のフレームレートで表示部120に表示される画像は、動画であってもよいし、静止画であってもよい。所定のフレームレートは、例えば60fpsである。なお、所定のフレームレートは、60fps以外であってもよい。例えば、所定のフレームレートは120fpsであってもよい。
【0131】
以後、電子機器1のX軸方向の変位をX変位と呼び、電子機器1のY軸方向の変位をY変位と呼ぶことがある。また、X軸方向のプラス方向及びマイナス方向を+X方向及び−X方向とそれぞれ呼ぶことがある。また、Y軸方向のプラス方向及びマイナス方向を+Y方向及び−Y方向とそれぞれ呼ぶことがある。電子機器1が+X方向に移動している場合には、X変位はプラスの値となり、電子機器1が−X方向に移動している場合には、X変位はマイナスの値となる。また、電子機器1が+Y方向に移動している場合には、Y変位はプラスの値となり、電子機器1が−Y方向に移動している場合には、Y変位はマイナスの値となる。
【0132】
画像位置制御において、表示制御部500は、動き推定装置400の第2フィルタ320から出力されるX変位の推定値に基づいて、表示部120に表示される画像のX軸方向の表示位置を制御する。また、画像位置制御において、表示制御部500は、動き推定装置400の第2フィルタ320から出力されるY変位の推定値に基づいて、表示部120に表示される画像のY軸方向の表示位置を制御する。
【0133】
図9は画像位置制御を説明するための図である。図9の上側には、X変位及びY変位が零である電子機器1、つまり基準位置の電子機器1が示されている。図9の下側には、X変位が+L、Y変位が零の電子機器1、つまり、基準位置から、Y軸方向には移動せず、+X軸方向にLだけ移動している電子機器1が示されている。図9では、レシーバ穴12、レンズ191、操作ボタン141〜143及びスピーカ穴13の記載は省略されている。
【0134】
図9の例では、電子機器1の表示面121には、例えば、「ABC」という文字列601を含む画像(静止画)600が表示されている。図9の例では、画像600の大きさは、表示面121の大きさと一致している。また図9の例では、X変位及びY変位が零の電子機器1では、画像600の中心位置が表示面121の中心位置と一致するように画像600が表示面121に表示されている。図9では、X変位及びY変位が零の電子機器1に表示される画像600の中心位置が符号701で示されている。また図9では、X変位が+L、Y変位が零の電子機器1に表示される画像600の中心位置が符号702で示されている。
【0135】
以後、基準位置の電子機器1、つまりX変位及びY変位が零の電子機器1が表示する画像の表示位置を基準表示位置と呼ぶことがある。また、X変位が零の電子機器1が表示する画像のX軸方向の表示位置をX基準表示位置と呼ぶことがある。また、Y変位が零の電子機器1が表示する画像のY軸方向の表示位置をY基準表示位置と呼ぶことがある。基準位置の電子機器1が表示する画像のX軸方向及びY軸方向の表示位置は、それぞれ、X基準表示位置及びY基準表示位置となる。
【0136】
X基準表示位置としては、例えば、表示面121のX軸方向の中心を示す、Y軸方向に沿った中心線と、画像のX軸方向の中心を示す、Y軸方向に沿った中心線とが重なるような画像のX軸方向の表示位置が採用される。図9の下側の電子機器1において、画像600のX軸方向の中心を示す、Y軸方向に沿った中心線は、画像600の中心位置702を通る、Y軸方向に沿った線となる。電子機器1が、そのX軸方向の表示位置がX基準表示位置に一致するように画像を表示する場合には、当該画像のX軸方向の中心を示す中心線と、表示面121のX軸方向の中心を示す中心線とが重なる。
【0137】
Y基準表示位置としては、例えば、表示面121のY軸方向の中心を示す、X軸方向に沿った中心線と、画像のY軸方向の中心を示す、X軸方向に沿った中心線とが重なるような画像のY軸方向の表示位置が採用される。図9の下側の電子機器1において、画像600のY軸方向の中心を示す、X軸方向に沿った中心線は、画像600の中心位置702を通る、X軸方向に沿った線となる。電子機器1が、そのY軸方向の表示位置がY基準表示位置に一致するように画像を表示する場合には、当該画像のY軸方向の中心を示す中心線と、表示面121のY軸方向の中心を示す中心線とが重なる。
【0138】
X変位が+Lである電子機器1が、X変位が零である電子機器1が表示する画像600と比較して、その表示位置が−X方向にLだけずれるように画像600を表示する場合を考える。この場合、図9に示されるように、X変位が零の上側の電子機器1と、X変位が+Lの下側の電子機器1との間では、表示面121に表示される画像600の地球に対するX軸方向の位置は同じとなる。言い換えれば、X変位が+Lである電子機器1が、X変位が零である電子機器1が表示する画像600と比較して、そのX軸方向の中心が−X方向にLだけずれるように画像600を表示する場合には、X変位が零の電子機器1と、X変位が+Lの電子機器1との間では、表示面121に表示される画像600のX軸方向の中心は同じとなる。したがって、電子機器1が画像を表示する場合に、当該画像の表示位置が、X基準表示位置よりも、電子機器1のX変位の絶対値だけ、当該X変位の符号が示す方向とは反対の方向にずれるように、当該画像を表示する場合には、表示面121に表示される画像の地球に対するX軸方向の位置が変化しにくくなる。X変位の符号がプラスである場合、当該符号が示す方向とは反対の方向は−X方向となる。
【0139】
同様に、電子機器1が画像を表示する場合に、当該画像の表示位置が、Y基準表示位置よりも、電子機器1のY変位の絶対値だけ、当該Y変位の符号が示す方向とは反対の方向にずれるように、当該画像を表示する場合には、表示面121に表示される画像の地球に対するY軸方向の位置が変化しにくくなる。
【0140】
そこで、本例では、表示制御部500は、画像位置制御の実行により、表示部120に表示される画像のX軸方向の表示位置が、X基準表示位置よりも、電子機器1のX変位の推定値の絶対値だけ、当該推定値の符号が示す方向と反対の方向にずれるようにする。また、表示制御部500は、画像表示制御の実行により、表示部120に表示される画像のY軸方向の表示位置が、Y基準表示位置よりも、電子機器1のY変位の推定値の絶対値だけ、当該推定値の符号が示す方向とは反対の方向にずれるようにする。これにより、対象振動時の電子機器1が表示する画像の地球に対する位置が変化しにくくなる。その結果、対象振動時の電子機器1が表示する画像の視認性が向上する。
【0141】
なお、表示面121の大きさと画像600の大きさが同じであって、画像位置制御によって画像600全体の表示位置が移動する場合には、図9の下側に示されるように、表示面121には画像600の一部だけが表示されて、表示面121に画像600が表示されない領域121aが発生する。この場合には、領域121aに画像600とは異なる所定の画像が表示されてもよい。例えば、領域121aには、各画素の色が所定の色(例えば黒色)である画像が表示されてもよい。また、領域121aには、画像600を外挿処理したものが表示されてもよい。また、画像600の大きさは表示面121の大きさよりも小さくてもよいし、大きくてもよい。
【0142】
次に画像位置制御について詳細に説明する。画像位置制御において、表示制御部500は、各フレーム期間について、当該フレーム期間において得られる変位の推定値に基づいて、当該フレーム期間よりも例えば一つ後のフレーム期間で表示される画像の表示位置を決定する。フレーム期間とは、一枚のフレーム画像が表示される期間であって、フレームレートが60fpsであるとすると、フレーム期間の長さは60分の1秒(約16,7ms)となる。
【0143】
以後、電子機器1の説明において注目するフレーム期間を対象フレーム期間と呼ぶことがある。また、対象フレーム期間よりも一つ後のフレーム期間を次フレーム期間と呼ぶことがある。また、次フレーム期間で表示される画像(つまり、フレーム画像)を対象画像と呼ぶことがある。また、対象画像の表示位置の決定で使用される変位の推定値を、対象変位推定値と呼ぶことがある。また、対象変位推定値を生成する際に最新の加速度検出値として使用される加速度検出値を対象加速度検出値と呼ぶことがある。
【0144】
図10は、対象フレーム期間での電子機器1の動作の一例を示すフローチャートである。電子機器1は、各フレーム期間について図10に示される処理を実行する。本例では、推定部300は、上述の図7に示される動き推定処理を実行する。
【0145】
図10に示されるように、ステップs31において、推定部300は、対象加速度検出値を取得する。対象加速度検出値としては、例えば、対象フレーム期間の垂直同期信号が発生した直後に加速度センサ150から出力される加速度検出値が採用される。
【0146】
次にステップs32において、推定部300は、動き推定処理の推定タイミングを決定する。そしてステップs33において、推定部300は、対象加速度検出値を最新の加速度検出値として使用して、ステップs32で決定した推定タイミングでの電子機器1の動きを推定する動き推定処理を実行する。
【0147】
図11は推定タイミングの決定方法の一例を説明するための図である。図11では、対象フレーム期間の垂直同期信号の発生が開始するタイミングである発生開始タイミングtm1と、次フレーム期間の垂直同期信号の発生が開始するタイミングである発生開始タイミングtm2とが示されている。また図11では、加速度センサ150が対象加速度検出値を出力するタイミングである出力タイミングtm3と、表示面121において対象画像が実際に表示されるタイミングである表示タイミングtm4とが示されている。出力タイミングtm3は、推定部300が加速度センサ150から対象加速度検出値を取得するタイミングであるとも言える。
【0148】
ステップs32において、推定部300は、対象加速度検出値の出力タイミングtm3から、次フレーム期間の垂直同期信号の発生開始タイミングtm2までの時間T11を求める。推定部300にとって発生開始タイミングtm2は既知である。次に、推定部300は、発生開始タイミングtm2から表示タイミングtm4までの時間T12に対して、求めた時間T11を足し合わせて、出力タイミングtm3から表示タイミングtm4までの時間T13を求める。そして、推定部300は、求めた時間T13を、推定タイミングのT0とする。これにより、推定タイミングが、表示部120において対象画像が実際に表示されるタイミングとなる。
【0149】
例えば、時間T11が13msであって、時間T12が15msであるとすると、推定タイミングのT0は28msとなる。この場合、現在から28ms後において対象画像が表示される。詳細には、対象加速度検出値が得られてから28ms後において対象画像が表示される。
【0150】
時間T12は記憶部103に予め記憶されている。時間T12には、垂直同期信号の発生が開始してから表示パネル122に表示制御部500から駆動信号が与えられるまでの時間と、表示パネル122の反応時間とが含まれる。表示パネル122の反応時間とは、表示パネル122に駆動信号が与えてから表示パネル122が画像を実際に表示するまでの時間である。時間T12は、実機実験あるいはシミュレーションによって予め求められる。
【0151】
ステップs32において推定タイミングが決定されると、ステップs33において、推定部300は、対象加速度検出値を最新の加速度検出値として使用して、上述の図7に示される動き推定処理を行う。ステップs33の動き推定処理の結果、推定タイミングでの加速度、速度、変位及び総変位の推定値が得られる。つまり、対象画像が表示されるタイミングでの加速度、速度、変位及び総変位の推定値が得られる。ステップs33では、対象画像が表示部120で表示されるタイミングでの加速度、速度、変位及び総変位の予測値を用いたベイズ推定に基づいて、対象画像が表示部120で表示されるタイミングでの加速度、速度、変位及び総変位の推定値が生成されると言える。
【0152】
次にステップs34において、表示制御部500は画像位置制御を実行する。具体的には、表示制御部500は、ステップs33で得られた変位の推定値を対象変位推定値として、対象画像の表示位置を決定する。ステップs34において、表示制御部500は、第2フィルタ320から出力される、推定タイミングでのX軸方向の変位の推定値をX軸方向の対象変位推定値とし、第2フィルタ320から出力される、推定タイミングでのY軸方向の変位の推定値をY軸方向の対象変位推定値とする。そして、表示制御部500は、X軸方向及びY軸方向の対象変位推定値に基づいて、対象画像の表示位置を決定する。
【0153】
ステップs34において、表示制御部500は、対象画像のX軸方向の表示位置を、X基準表示位置よりも、X軸方向の対象変位推定値の絶対値だけ、X軸方向の対象変位推定値の符号が示す方向と反対の方向にずれた位置に決定する。また、表示制御部500は、対象画像のY軸方向の表示位置を、Y基準表示位置よりも、Y軸方向の対象変位推定値の絶対値だけ、Y軸方向の対象変位推定値の符号が示す方向と反対の方向にずれた位置に決定する。これにより、次フレーム期間で表示されている対象画像の地球に対する位置が、基準位置の電子機器1が表示している画像の地球に対する位置からずれにくくなる。
【0154】
ステップs34の後、表示制御部500は、決定した表示位置に対象画像を表示部120に表示させるための駆動信号を生成して表示部120に与える。これにより、表示部120では、ステップs34で決定された表示位置に対象画像が表示される。
【0155】
以上のステップs31〜s34の処理を、制御部100が、各フレーム期間を対象フレーム期間として実行することによって、所定のフレームレートで表示面121に表示される画像についての地球に対する位置は動きにくくなる。本例では、画像位置制御の実行中での画像の地球に対する位置が、基準位置の電子機器1が表示する画像の地球に対する位置から変化しにくくなる。その結果、画像の視認性が向上する。また、電子機器1に表示される画像に含まれる、文字、記号及び図形等の対象物(図9では文字列601)についての地球に対する位置も動きにくくなることから、当該対象物の視認性が向上する。
【0156】
また、画像の視認性が悪い場合には、ユーザは気分が悪くなる可能性があるが、本例の電子機器1によれば、このようなことが発生する可能性が低減する。
【0157】
なお、上述のように、推定部300は5msごとに動き推定処理を行うことから、対象フレーム期間においては、ステップs33の動き推定処理だけではなく、画像位置制御とは関係しない動き推定処理も実行される。推定部300は、対象フレーム期間において、ステップs33の動き推定処理以外の動き推定処理を実行しなくてもよい。
【0158】
また推定部300は、電子機器1において所定の条件が成立したとき、画像表示制御の実行を開始してもよい。例えば、推定部300は、ユーザが表示面121に対して画像表示制御の実行を指示する操作を行ったと制御部100が判定すると、画像表示制御の実行を開始して、各フレーム期間について図10に示される一連の処理を実行してもよい。
【0159】
上述のように、予測モデル360では、式(3)に示されるように、あるタイミングでの加速度の予測確率分布a(t)が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布a(t−1)及びa(t−2)を用いた外挿式で表される。また、予測モデル360では、式(5)に示されるように、あるタイミングでの変位の予測確率分布r(t)が、当該あるタイミングよりも前のタイミングでの加速度の推定確率分布a(t−1)を用いた予測式で表される。上記のステップs33の動き推定処理では、あるタイミングでの加速度の推定確率分布が、式(3)の外挿式において前のタイミングでの加速度の推定確率分布として使用されて、当該あるタイミングよりも先のタイミングでの加速度の予測確率分布が求められ、求められた先のタイミングでの加速度の予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの加速度の推定確率分布が生成されるという特定処理が実行される。そして、ステップs33の動き推定処理では、特定処理が繰り返し実行されることによって得られた加速度の推定確率分布が、式(5)の予測式での前のタイミングでの加速度の推定確率分布として使用されて、対象画像が表示されるタイミングでの変位の予測確率分布が求められる。そして、ステップs33の動き推定処理では、対象画像が表示されるタイミングでの変位の予測確率分布を用いたベイズ推定に基づいて、対象画像が表示されるタイミングでの変位の推定値を生成される。このような、対象画像が実際に表示されるタイミングでの変位の推定値に基づいて、画像の表示位置が制御されることによって、表示部120に表示される画像についての地球に対する位置はより確実に変化しにくくなる。
【0160】
加速度センサ150では、内部のフィルタ機能等によって、加速度を検出してから、その検出結果を出力するまでに、ある程度の時間を要することがある。以後、加速度センサ150が、加速度を検出してから、その検出結果を出力するまでの時間をセンサ遅延時間と呼ぶことがある。
【0161】
ここで、ステップs33において得られる、現在よりもT0時間先のタイミングでの変位の推定値(つまり、推定タイミングでの変位の推定値)は、厳密に言うと、加速度センサ150が最新の加速度を検出したタイミングからT0時間先のタイミングである。センサ遅延時間が零である場合には、上述のように、出力タイミングtm3から表示タイミングtm4までの時間T13をT0とすると、推定タイミングは、対象画像が表示されるタイミングと一致する。しかしながら、センサ遅延時間が零でない場合に時間T13をT0とすると、推定タイミングは、対象画像が表示されるタイミングよりも少し前のタイミングとなる。よって、推定タイミングでの変位の推定値は、対象画像が表示されるタイミングよりも少し前での変位の推定値となる。
【0162】
そこで、推定部300は、センサ遅延時間を考慮して推定タイミングを決定してもよい。具体的には、推定部300は、図12に示されるように、加速度センサ150が加速度を検出したタイミングtm5からその検出結果(つまり、対象加速度検出値)の出力タイミングtm3までの時間T14を時間T13に足し合わせて得られる時間T15を、推定タイミングのT0にしてもよい。これにより、推定部300は、対象画像の表示タイミングでの変位をより正しく推定することができる。時間T14は、実機実験あるいはシミュレーションによって予め求められる。
【0163】
なお、推定部300は、ステップs32で決定したT0が(T×(M−1))と一致しない場合には、現在から(T×(M−1))時間先のタイミングでの変位の推定値を、推定タイミングでの変位の推定値とし、当該推定値を、対象画像の表示タイミングでの変位の推定値として使用してもよい。
【0164】
上記の例では、電子機器1は、スマートフォン等の携帯電話機であったが、他の種類の電子機器であってよい。電子機器1は、例えば、タブレット端末、ノート型のパーソナルコンピュータ、ウェアラブル機器などであってよい。電子機器1として採用されるウェアラブル機器は、リストバンド型あるいは腕時計型などの腕に装着するタイプであってもよいし、ヘッドバンド型あるいはメガネ型などの頭に装着するタイプであってもよいし、服型などの体に装着するタイプであってもよい。
【0165】
上記の動きの推定技術は、スマートフォン、スマートウォッチ及びパーソナルコンピュータなどのモバイル端末、プロジェクター、ヘッドマウントディスプレイ、工作機械及び電子ミラーでの画面補正で使用することができる、また、上記の動きの推定技術は、タッチパネルの検出位置の補正でも使用することができる。また、上記の動きの推定技術は、ゲームコントローラの動きの検出でも使用することができる。ゲームコントローラは、例えば、釣竿の形状をしたものであってもよい。また、上記の動きの推定技術は、スポーツグッズ、ランニングシューズ及びラケットの動きの検出でも使用することができる。また、上記の動きの推定技術は、機器の異常検知でも使用することができるし、釣りの浮の動きの検出でも使用することができるし、ロボットの姿勢制御等でも使用することができる。
【0166】
上記の説明から理解できるように、推定部300が推定する、振動時の装置の動きは、並進振動時の装置の動きである。したがって、推定部300が生成する、加速度、速度、変位及び総変位の推定値は、並進加速度、並進速度、並進変位及び総並進変位の推定値であると言える。動き推定装置400は、動き推定処理において、回転振動時の装置の動きを推定してもよい。以下に、この場合の動き推定処理について説明する。以下の説明では、一例として、電子機器1が、車両に搭載されるヘッドアップディスプレイとして使用される場合を例に挙げて、本例に係る電子機器1について説明する。
【0167】
<回転振動時の装置の動き推定の一例について>
本例では、ヘッドアップディスプレイとして機能する電子機器1は、例えば、当該電子機器1が搭載される車両の前方の実風景に対して画像を重ねて表示することによって、拡張現実(AR:Augmented Reality)を実現することができる。電子機器1は、実風景に対して、例えば、運転者を支援するための画像を重ねて表示することができる。以後、電子機器1が搭載される車両を対象車両と呼ぶことがある。
【0168】
図13に示されるように、本例に係る電子機器1はジャイロセンサ250を備える。ジャイロセンサ250は、電子機器1の回転角速度を検出することが可能である。本例では、電子機器1は対象車両に固定されることから、ジャイロセンサ250は、対象車両の回転角速度を検出することが可能であると言える。以後、回転角速度を単に角速度と呼ぶことがある。
【0169】
ジャイロセンサ250は、例えば3軸ジャイロセンサである。ジャイロセンサ250は、電子機器1についてのX1軸周りの回転の角速度、Y1軸周りの回転の角速度及びZ1軸周りの回転の角速度を検出することが可能である。ジャイロセンサ250は、所定間隔ごとに、角速度を検出してその検出結果を出力する。本例では、当該所定間隔は5msであるが、他の値でもよい。以後、加速度センサ150と同様に、当該所定間隔も検出間隔と呼ぶことがある。また、ジャイロセンサ250の検出間隔の長さもTで表すことがある。
【0170】
図14は、X1軸、Y1軸及びZ1軸の一例を示す図である。図14に示されるように、X1軸は、電子機器1が搭載される対象車両800の前後方向に沿うように設定される。また、Y1軸は、対象車両800の左右方向に沿うように設定される。そして、Z1軸は、対象車両800の高さ方向に沿うように設定される。ジャイロセンサ250は、対象車両800についてのX1軸周りの回転の角速度、Y1軸周りの回転の角速度及びZ1軸周りの回転の角速度を検出することが可能である。以後、説明の便宜上、X1軸周りの回転、Y1軸周りの回転及びZ1軸周りの回転を、それぞれ、ローリング、ピッチング及びヨーイングと呼ぶことがある。
【0171】
本例では、電子機器1の動き推定装置400は、ジャイロセンサ250の検出値251に基づいて、回転振動時の電子機器1の動きを推定することが可能である。言い換えれば、動き推定装置400は、検出値251に基づいて、回転振動時の対象車両800の動きを推定することが可能である。検出値251、つまり、ジャイロセンサ250で検出される角速度を角速度検出値と呼ぶことがある。
【0172】
本例では、対象車両800の回転振動によって生じる電子機器1の回転振動を想定して、動き推定装置400は、例えば、電子機器1についての、周波数帯が0.5Hz以上2Hz以下の回転角が数度の小さい回転ランダム振動を対象回転振動とする。そして、動き推定装置400は、対象回転振動を行っている電子機器1の動きを推定する。なお、対象回転振動は本例に限られない。
【0173】
ジャイロセンサ250の検出値251は、対象回転振動以外の影響も受ける。例えば、検出値251は、坂道等による、対象車両800が走行する地形の緩やかな変化によって生じる対象車両800の緩やかな姿勢変化の影響を受けることがある。また、検出値251は、対象車両800の加減速による対象車両800の緩やかな姿勢変化の影響を受けることがある。また、検出値251にはドリフト誤差も含まれる。これらの外乱に抗して、対象となる補正すべき動きを単離して推定する必要がある。
【0174】
本例の第1フィルタ310は、ジャイロセンサ250の検出値251から、対象回転振動以外の影響を除去するために、検出値251に対してフィルタ処理を行う。推定部300は、第1フィルタ310でフィルタ処理された検出値251と、観測モデル350と、予測モデル360とを用いたベイズ推定に基づいて、対象回転振動時の電子機器1の動きを推定する。本例の推定部300は、電子機器1の動きの推定結果として、例えば、電子機器1の角速度の推定値と、電子機器1の回転角の推定値と、電子機器1の総回転角の推定値とを生成する。
【0175】
ここで、電子機器1の回転角とは、電子機器1の姿勢についての基準姿勢からの回転角を意味する。回転角はプラスの値とナイマスの値をとり得る。また電子機器1の総回転角とは、電子機器1の各時刻の回転角を足し合わせたものである。総回転角はプラスの値とナイマスの値をとり得る。基準姿勢としては、例えば、動き推定装置400が動作を開始したときの電子機器1の姿勢が採用される。動き推定装置400は、電子機器1の動作開始に応じて動作を開始してもよいし、動作中の電子機器1に対するユーザの操作に応じて動作を開始してもよい。また、動き推定装置400は、動作中の電子機器1において他の条件が成立した場合に、動作を開始してもよい。
【0176】
以後、ベイズ推定によって得られる電子機器1の角速度、回転角及び総回転角の推定値を、それぞれ、角速度推定値、回転角推定値及び総回転角推定値と呼ぶことがある。また、単に角速度と言えば、電子機器1の角速度を意味し、単に回転角と言えば、電子機器1の回転角を意味し、単に総回転角と言えば、電子機器1の総回転角を意味する。角速度、回転角及び総回転角のそれぞれは、電子機器1の物理量であると言える。
【0177】
本例の第2フィルタ320は、推定部300での推定結果に対してフィルタ処理を行う。本例では、第2フィルタ320は、推定部300から出力される角速度推定値、回転角推定値及び総回転角推定値のそれぞれに対して個別にフィルタ処理を行う。
【0178】
<推定部の動作の詳細>
本例では、上述の式(1)に関する状態ベクトルxには、変数として、角速度、回転角及び総回転角が含まれる。また、観測ベクトルzには、変数として、角速度、回転角及び総回転角が含まれる。
【0179】
上記と同様に、本例の推定部300は、式(1)を用いて事後確率p(x|z1:t)を求めることによってベイズ推定を行う。このとき、推定部300は、確率分布p(z|x)として観測モデル350を使用し、確率分布p(x|xt−1)として予測モデル360を使用する。推定部300は、求めた事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルする。そして、推定部300は、推定状態ベクトルの角速度、回転角及び総回転角の成分を、それぞれ、角速度推定値、回転角推定値及び総回転角推定値とする。
【0180】
本例の観測モデル350は、対象回転振動を表す観測モデルである。本例では、観測モデル350は、対象回転振動に関する統計的な事前知識を表す確率分布である。具体的には、観測モデル350は、対象回転振動時の電子機器1の角速度、回転角及び総回転角を表す最大3次元の確率分布である。以後、本例の観測モデル350での各次元についての周辺確率分布を、それぞれ、第5確率分布、第6確率分布及び第7確率分布と呼ぶことがある。
【0181】
ここで、上述のように、対象回転振動の回転角は小さい。したがって、対象回転振動時の電子機器1の姿勢はあまり変化しない。本例では、対象回転振動時の電子機器1の回転角を、例えば、当該回転角を確率変数とする、平均が零で分散の小さい固定の第5確率分布で表すことによって、観測モデル350において、電子機器1の姿勢があまり変化しないという知識を表現する。また、本例では、対象振動時の電子機器1の角速度を、例えば、当該角速度を確率変数とする、平均が角速度検出値で分散の小さい第6確率分布で表す。第6確率分布の平均としては、例えば、第1フィルタ310でフィルタ処理された角速度検出値が採用される。第6確率分布は角速度検出値に応じて変化する。また、本例では、対象回転振動時の電子機器1の総回転角を、例えば、当該総回転角を確率変数とする、平均が零の固定の第7確率分布で表すことによって、観測モデル350において、電子機器1が回転振動するという知識を表現する。
【0182】
本例の観測モデル350については、例えば機械学習によって対象回転振動に対して決定される。この場合、観測モデル350は、例えば最尤推定法が使用されて決定されてもよい。また、観測モデル350は、対象回転振動の振動環境における実測値の統計分布に基づいて決定されてもよい。また、観測モデル350は、機械学習と実測値の統計分布の両方に基づいて決定されてもよい。第5〜第7確率分布としては、例えば正規分布が採用されてもよい。
【0183】
本例の予測モデル360では、時刻tでの角速度の予測値がb(t)で表され、角速度についての時刻tでの予測誤差がw_b(t)で表される。本例では、電子機器1の角速度は滑らかに変化するものとし、上述の式(3)と同様の以下の式(8)が成立すると考える。本例では、予測値b(t)は確率分布で表される。以後、予測値b(t)を予測確率分布b(t)と呼ぶことがある。
【0184】
【数8】
【0185】
予測誤差は、例えば、時刻に応じて変化しない固定の確率分布が採用される。予測誤差は例えば機械学習によって決定される。この場合、予測誤差は例えば最尤推定法が使用されて決定されてもよい。予測誤差を表す確率分布として、例えば正規分布が採用されてもよい。
【0186】
また、本例の予測モデル360では、時刻tでの回転角の予測値がc(t)で表され、時刻tでの総回転角の予測値がd(t)で表される。本例の予測モデル360では、回転角の予測値c(t)及び総回転角の予測値d(t)が、上述の式(4)及び(5)と同様の式で表される。具体的には、回転角の予測値c(t)及び総回転角の予測値d(t)は、ジャイロセンサ250の検出間隔の長さTを用いた以下の式(9)及び(10)でそれぞれ表される。本例の予測モデル360では、回転角についての時刻tでの予測誤差がw_c(t)で表され、総回転角についての時刻tでの予測誤差がw_d(t)で表される。本例では、予測値c(t)及び予測値d(t)のそれぞれは確率分布で表される。以後、予測値c(t)及び予測値d(t)を、それぞれ、予測確率分布c(t)及び予測確率分布d(t)と呼ぶことがある。
【0187】
【数9】
【0188】
【数10】
【0189】
本例の推定部300は、式(8)を用いて、時刻tでの角速度の予測値a(t)を求める。このとき、推定部300は、式(8)のb(t−1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての角速度の周辺確率分布を代入する。そして、推定部300は、式(8)のb(t−2)に対して、推定された時刻t―2の事後確率p(xt−2|z1:t−2)についての角速度の周辺確率分布を代入する。また、推定部300は、式(9)を用いて、時刻tでの回転角の予測値c(t)を求める。このとき、推定部300は、式(9)のb(t−1)及びc(t―1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての角速度及び回転角の周辺確率分布をそれぞれ代入する。また、推定部300は、式(10)を用いて、時刻tでの総回転角の予測値d(t)を求める。このとき、推定部300は、式(10)のb(t−1)、c(t―1)及びd(t―1)に対して、推定された時刻t−1の事後確率p(xt−1|z1:t−1)についての角速度、回転角及び総回転角の周辺確率分布をそれぞれ代入する。推定された事後確率p(xt−1|z1:t−1)についての角速度、回転角及び総回転角の周辺確率分布は、それぞれ、角速度、回転角及び総回転角の推定確率分布であると言える。
【0190】
本例の推定部300は、ジャイロセンサ250から出力される角速度検出値と、予測モデル360での式(8)〜(10)と、観測モデル350とを用いたベイズ推定に基づいて、現在の電子機器1の動きを推定する動き推定処理を行う。
【0191】
図15は本例の動き推定処理の一例を示すフローチャートである。図15に示される動き推定処理は、ジャイロセンサ250において新たに角速度が検出されるたびに実行される。本例の推定部300は、動き推定処理において、例えば、ローリングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、ピッチングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。また、推定部300は、動き推定処理において、例えば、ヨーイングの加速度推定値、速度推定値、変位推定値及び総変位推定値を求める。
【0192】
推定部300は、ジャイロセンサ250から最新の角速度検出値を取得すると、図15に示されるように、ステップs51において、予測モデル360を用いて、現在の角速度の予測値を求める。本例では、推定部300は、予測モデル360を用いて、ローリングの角速度の予測値と、ピッチングの角速度の予測値と、ヨーイングの角速度の予測値とを別々に求める。
【0193】
ステップs51において、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの角速度の周辺確率分布を式(8)のb(t−1)に代入する。また、推定部300は、前回の動き推定処理のステップs51においてb(t−1)に代入したローリングの角速度の周辺確率分布を、式(8)のb(t−2)に代入する。これにより得られた予測値b(t)を、推定部300は、ローリングの現在の角速度の予測値とする。推定部300は、同様にして、式(8)を用いて、ピッチングの現在の角速度の予測値と、ヨーイングの現在の角速度の予測値とを求める。
【0194】
次にステップs52において、推定部300は、予測モデル360を用いて、ローリングの現在の回転角の予測値と、ピッチングの現在の回転角の予測値と、ヨーイングの現在の回転角の予測値とを別々に求める。ステップs52において、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの角速度の周辺確率分布を式(9)のb(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの回転角の周辺確率分布を式(9)のc(t−1)に代入する。これにより得られた予測値c(t)を、推定部300は、ローリングの現在の回転角の予測値とする。推定部300は、同様にして、式(9)を用いて、ピッチングの現在の回転角の予測値と、ヨーイングの回転角の現在の予測値とを求める。
【0195】
次にステップs53において、推定部300は、予測モデル360を用いて、ローリングの現在の総回転角の予測値と、ピッチングの現在の総回転角の予測値と、ヨーイングの現在の総回転角の予測値とを別々に求める。ステップs53において、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの角速度の周辺確率分布を式(9)のb(t−1)に代入する。また、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの回転角の周辺確率分布を、式(10)のc(t−1)に代入する。そして、推定部300は、前回の動き推定処理で推定された事後確率p(xt−1|z1:t−1)についてのローリングの総回転角の周辺確率分布を、式(10)の予測値d(t−1)に代入する。これにより得られた予測値d(t)を、推定部300は、ローリングの現在の総回転角の予測値とする。推定部300は、同様にして、式(10)を用いて、ピッチングの現在の総回転角の予測値と、ヨーイングの現在の総回転角の予測値とを求める。
【0196】
次にステップs54において、推定部300は、ステップs51〜s53で求めた予測値と観測モデル350とを用いたベイズ推定に基づいて、角速度の推定値、回転角の推定値及び総回転角の推定値を生成する。ステップs54では、推定部300は、ステップs51〜s53で得られたローリングの角速度、回転角及び総回転角の予測値(言い換えれば、予測確率分布)を上述の式(1)のp(x|xt−1)に代入する。また推定部300は、観測モデル350を式(1)のp(z|x)に代入する。このとき、推定部300は、ローリングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたローリングの最新の角速度検出値)を第6確率分布の平均として用いる。そして、推定部300は、前回の動き推定処理のステップs54で得られた事後確率p(x|z1:t)を式(1)の事後確率p(xt−1|z1:t−1)に代入して、事後確率p(x|z1:t)を求める。これにより、時刻tの事後確率p(x|z1:t)が推定される。推定部300は、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを特定し、それを推定状態ベクトルとする。推定部300は、推定状態ベクトルの角速度、回転角及び総回転角の成分を、それぞれ、ローリングの現在の角速度推定値、回転角推定値及び総回転角推定値とする。電子機器1が対象回転振動を行っている場合には、ステップs54では、対象回転振動時の電子機器1のローリングの角速度、回転角及び総回転角の推定値が得られると言える。言い換えれば、ステップs54では、対象回転振動時の対象車両800のローリングの角速度、回転角及び総回転角の推定値が得られる。
【0197】
同様にして、推定部300は、式(1)を用いて、ピッチングの角速度、回転角及び総回転角の推定値を生成する。この場合、推定部300は、ピッチングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたピッチングの最新の角速度検出値)を第6確率分布の平均として用いる。同様にして、推定部300は、式(1)を用いて、ヨーイングの角速度、回転角及び総回転角の推定値を生成する。この場合、推定部300は、ヨーイングの最新の角速度検出値(詳細には、第1フィルタ310でフィルタ処理されたヨーイングの最新の角速度検出値)を第6確率分布の平均として用いる。
【0198】
第2フィルタ320は、推定部300で生成される、ローリングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。また、第2フィルタ320は、推定部300で生成される、ピッチングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。そして、第2フィルタ320は、推定部300で生成される、ヨーイングの角速度、回転角及び総回転角の推定値のそれぞれに対して個別にフィルタ処理を行う。
【0199】
なお、動き推定処理では、b(t−1)に、フィルタ処理された角速度の周辺確率分布が入力されてもよい。また、b(t−2)に、フィルタ処理された角速度の周辺確率分布が入力されてもよい。また、c(t―1)には、フィルタ処理された回転角の周辺確率分布が入力されてもよい。また、d(t−1)には、フィルタ処理された総回転角の周辺確率分布が入力されてもよい。
【0200】
また、本例の動き推定処理でのステップs51〜s53の実行順序は上記の例に限られない。例えば、ステップs51は、ステップs52及びs53のいずれか一つのステップの後に実行されてもよいし、ステップs53は、ステップs51及びs52のいずれか一つのステップの前に実行されてもよい。
【0201】
また、本例の推定部300は、上述の図6と同様にして、現在よりも先のタイミングでの電子機器1の動きを推定してもよい。この場合、ステップs51〜s54の一連の処理が単位推定処理とされる。そして、上述と同様にして単位推定処理が必要回数Mだけ実行されることによって、現在よりも(T×(M−1))時間先のタイミングでの電子機器1の動きが推定される。つまり、対象回転振動時の電子機器1についての現在よりも(T×(M−1))時間先のタイミングでの角速度、回転角及び総回転角の推定値が得られる。
【0202】
また、推定部300は、上述の図7と同様にして、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望の推定タイミングでの電子機器1の動きを推定してもよい。
【0203】
以上のように、本例では、ジャイロセンサ250の角速度検出値と、電子機器1の動きを表す予測モデル360と、角速度検出値が用いられる、電子機器1の回転振動を表す観測モデル350とを用いたベイズ推定に基づいて、回転振動時の電子機器1の動きが推定される。これにより、回転振動時の電子機器1の動きを適切に推定することができる。
【0204】
また、本例に係る予測モデル360では、上述の式(8)に示されるように、あるタイミングでの角速度の予測確率分布が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布を用いた外挿式で表される。そして、あるタイミングでの推定確率分布を、外挿式において前のタイミングでの推定確率分布として使用して、当該あるタイミングよりも先のタイミングでの予測確率分布を求め、求めた先のタイミングでの予測確率分布を用いたベイズ推定に基づいて当該先のタイミングでの推定確率分布を生成するという処理を繰り返し実行することによって、所望のタイミングでの角速度の推定確率分布を求めることができる。よって、外挿式を使用して、所望のタイミングでの角速度の推定値を簡単に得ることができる。
【0205】
また本例では、観測モデル350において、対象回転振動時の電子機器1の回転角の平均が零であると表現されている。したがって、対象回転振動時の電子機器1の回転角の推定値が零から大きく離れる可能性を低減することができる。よって、対象回転振動の回転角が小さいという状況に応じた回転角の推定値を適切に得ることができる。
【0206】
また本例では、観測モデル350において、対象回転振動時の電子機器1の総回転角の平均が零であると表現されている。これにより、電子機器1の回転振動に応じた変化を行う回転角の推定値を適切に得ることができる。この理由については、対象振動時の電子機器1の総変位の平均が零であると表現されていることにより、電子機器1の振動に応じた変化を行う変位の推定値を適切に得ることができる理由と同様である。
【0207】
なお、推定部300は、角速度、回転角及び総回転角の推定値のうちの少なくとも一つを生成しなくてもよい。つまり、推定部300は、動きの推定結果として、角速度、回転角及び総回転角の少なくとも一つの推定値を生成してもよい。また、推定部300は、ローリングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。また、推定部300は、ピッチングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。また、推定部300は、ヨーイングの角速度推定値、回転角推定値及び総回転角推定値の少なくとも一つを生成しなくてもよい。
【0208】
次に、本例の電子機器1での動きの推定結果の利用方法の一例について説明する。ヘッドアップディスプレイとして機能する本例の電子機器1は、例えば、動きの推定結果に基づいて、実風景に重ねて表示する画像の表示位置を補正することができる。本例の電子機器1が備える表示部120は、対象車両800の前方の実風景に対して画像を重ねて表示することができる。表示部120は、例えば、プロジェクターと同様の構成を備えている。そして、本例の電子機器1が備える表示制御部500は、表示部120が実風景に重ねて表示する画像の表示位置を制御することが可能である。以下に、本例の表示制御部500の動作の一例について説明する。以後、表示部120が実風景に重ねて表示する画像を重畳画像と呼ぶことがある。
【0209】
例えば、電子機器1が搭載された対象車両800が石畳等の凸凹道を走行する場合、Y1軸周りの回転振動が対象車両800に生じることがある。Y1軸周りの回転振動が対象車両800に生じると、電子機器1にもY1軸周りの回転振動が生じる。Y1軸周りの回転振動が電子機器1に生じると、表示部120が表示する重畳画像の地球に対する位置が対象車両800の上下方向にずれる可能性がある。例えば、対象車両800を前側から見て、対象車両800が下側に回転すると、重畳画像の地球に対する位置が下側にずれる。一方で、対象車両800を前側から見て、対象車両800が上側に回転すると、重畳画像の地球に対する位置が上側にずれる。これにより、ユーザは、重畳画像を視認しにくい可能性がある。
【0210】
そこで、本例の表示制御部500は、第2フィルタ320から出力される、電子機器1のピッチングの回転角の推定値に基づいて、表示部120での重畳画像の表示位置を制御することによって、当該重畳画像の地球に対する位置を制御する。これにより、実風景に重ねられる重畳画像の地球に対する位置が変化しにくくなり、当該重畳画像の視認性を向上させることが可能となる。
【0211】
本例の表示制御部500は、電子機器1のピッチングの回転角の推定値に基づいて、重畳画像の地球に対する位置のずれ量と、重畳画像の地球に対する位置のずれ方向とを推定する。そして、表示制御部500は、重畳画像の表示位置を、推定したずれ方向とは反対の方向に、推定したずれ量だけ変化させる。これにより、実風景に重畳される重畳画像の地球に対する位置が変化しにくくなる。その結果、重畳画像の視認性が向上する。以下に、上述の図10を用いて、本例の表示制御部500の動作について詳細に説明する。以後、電子機器1のピッチングの回転角をピッチング回転角と呼ぶことがある。
【0212】
重畳画像は、例えば、所定のフレームレートで表示される。表示制御部500は、各フレーム期間について、当該フレーム期間において得られるピッチング回転角の推定値に基づいて、当該フレーム期間よりも例えば一つ後のフレーム期間で表示される重畳画像の表示位置を決定する。
【0213】
以後、上述と同様に、本例の電子機器1の説明において注目するフレーム期間を対象フレーム期間と呼ぶことがある。また、対象フレーム期間よりも一つ後のフレーム期間を次フレーム期間と呼ぶことがある。また、次フレーム期間で表示される重畳画像を対象重畳画像と呼ぶことがある。また、対象重畳画像の表示位置の決定で使用されるピッチング回転角の推定値を、対象回転角推定値と呼ぶことがある。また、対象回転角推定値を生成する際にピッチングの最新の角速度検出値として使用されるピッチングの角速度検出値を対象角速度検出値と呼ぶことがある。以下に説明する例では、推定部300は、上述の図7と同様にして、現在よりもTの整数倍だけ先のタイミングではなく、現在よりも先の所望の推定タイミングでの電子機器1の動きを推定する。
【0214】
本例では、図10のステップs31において、推定部300は、対象角速度検出値を取得する。対象角速度検出値としては、例えば、対象フレーム期間の垂直同期信号が発生した直後にジャイロセンサ250から出力されるピッチングの角速度検出値が採用される。
【0215】
次にステップs32において、推定部300は、動き推定処理の推定タイミングを決定する。そしてステップs33において、推定部300は、対象角速度検出値をピッチングの最新の角速度検出値として使用して、ステップs32で決定した推定タイミングでの電子機器1の動きを推定する動き推定処理を実行する。
【0216】
推定タイミングについては、上述の図11と同様にして決定される。本例では、出力タイミングtm3は、ジャイロセンサ250が対象角速度検出値を出力するタイミングである。ステップs32において、推定部300は、対象角速度検出値の出力タイミングtm3から、次フレーム期間の垂直同期信号の発生開始タイミングtm2までの時間T11を求める。次に、推定部300は、発生開始タイミングtm2から表示タイミングtm4までの時間T12に対して、求めた時間T11を足し合わせて、出力タイミングtm3から表示タイミングtm4までの時間T13を求める。そして、推定部300は、求めた時間T13を、推定タイミングのT0とする。これにより、推定タイミングが、表示部120において対象重畳画像が実際に表示されるタイミングとなる。
【0217】
ステップs32において推定タイミングが決定されると、ステップs33において、推定部300は、対象角速度検出値を最新の角速度検出値として使用して、上述の図7と同様の動き推定処理を行う。ステップs33の動き推定処理の結果、推定タイミングでの角速度、回転角及び総回転角の推定値が得られる。つまり、対象重畳画像が表示されるタイミングでの角速度、回転角及び総回転角の推定値が得られる。
【0218】
次にステップs34において、表示制御部500は、ステップs33で得られた回転角の推定値を対象回転角推定値として、対象重畳画像の表示位置を決定する。ステップs34において、表示制御部500は、第2フィルタ320から出力される、推定タイミングでのピッチングの回転角の推定値を対象回転角推定値とする。そして、表示制御部500は、対象回転角推定値に基づいて、対象重畳画像の表示位置を決定する。
【0219】
ステップs34において、表示制御部500は、対象回転角推定値に基づいて、重畳画像の地球に対する位置のずれ量と、重畳画像の地球に対する位置のずれ方向とを推定する。そして、表示制御部500は、次フレーム期間で表示される重畳画像の表示位置を、推定したずれ方向とは反対の方向に、推定したずれ量だけ変化させる。これにより、次フレーム期間で表示されている対象重畳画像の地球に対する位置が地球に対する位置からずれにくくなる。
【0220】
以上のステップs31〜s34の処理を、制御部100が、各フレーム期間を対象フレーム期間として実行することによって、所定のフレームレートで表示部120に表示される重畳画像についての地球に対する位置は動きにくくなる。その結果、実風景に重ねられる重畳画像の視認性が向上する。
【0221】
また、重畳画像の視認性が悪い場合には、ユーザは気分が悪くなる可能性があるが、本例の電子機器1によれば、このようなことが発生する可能性が低減する。
【0222】
上述のように、予測モデル360では、式(8)に示されるように、あるタイミングでの角速度の予測確率分布b(t)が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布b(t−1)及びb(t−2)を用いた外挿式で表される。また、予測モデル360では、式(9)に示されるように、あるタイミングでの回転角の予測確率分布c(t)が、当該あるタイミングよりも前のタイミングでの角速度の推定確率分布b(t−1)を用いた予測式で表される。上記のステップs33の動き推定処理では、あるタイミングでの角速度の推定確率分布が、式(8)の外挿式において前のタイミングでの角速度の推定確率分布として使用されて、当該あるタイミングよりも先のタイミングでの角速度の予測確率分布が求められ、求められた先のタイミングでの角速度の予測確率分布を用いたベイズ推定に基づいて、当該先のタイミングでの角速度の推定確率分布が生成されるという特定処理が実行される。そして、ステップs33の動き推定処理では、特定処理が繰り返し実行されることによって得られた角速度の推定確率分布が、式(9)の予測式での前のタイミングでの角速度の推定確率分布として使用されて、対象重畳画像が表示されるタイミングでの回転角の予測確率分布が求められる。そして、ステップs33の動き推定処理では、対象重畳画像が表示されるタイミングでの回転角の予測確率分布を用いたベイズ推定に基づいて、対象重畳画像が表示されるタイミングでの回転角の推定値を生成される。このような、対象重畳画像が実際に表示されるタイミングでの回転角の推定値に基づいて、対象重畳画像の表示位置が制御されることによって、重畳画像についての地球に対する位置はより確実に変化しにくくなる。
【0223】
ジャイロセンサ250では、内部のフィルタ機能等によって、角速度を検出してから、その検出結果を出力するまでに、ある程度の時間を要することがある。以後、ジャイロセンサ250が、角速度を検出してから、その検出結果を出力するまでの時間をジャイロセンサ遅延時間と呼ぶことがある。
【0224】
ここで、ステップs33において得られる、現在よりもT0時間先のタイミングでの角速度の推定値(つまり、推定タイミングでの角速度の推定値)は、厳密に言うと、ジャイロセンサ250が最新の角速度を検出したタイミングからT0時間先のタイミングである。ジャイロセンサ遅延時間が零である場合には、上述のように、出力タイミングtm3から表示タイミングtm4までの時間T13をT0とすると、推定タイミングは、対象重畳画像が表示されるタイミングと一致する。しかしながら、ジャイロセンサ遅延時間が零でない場合に時間T13をT0とすると、推定タイミングは、対象重畳画像が表示されるタイミングよりも少し前のタイミングとなる。よって、推定タイミングでの回転角の推定値は、対象重畳画像が表示されるタイミングよりも少し前での回転角の推定値となる。
【0225】
そこで、推定部300は、上述の図12と同様にして、ジャイロセンサ遅延時間を考慮して推定タイミングを決定してもよい。本例では、タイミングtm5は、ジャイロセンサ250が角速度を検出したタイミングとなる。推定部300は、タイミングtm5からその検出結果(つまり、対象角速度検出値)の出力タイミングtm3までの時間T14を時間T13に足し合わせて得られる時間T15を、推定タイミングのT0にしてもよい。これにより、推定部300は、対象重畳画像の表示タイミングでの回転角をより正しく推定することができる。
【0226】
なお、推定部300は、ステップs32で決定したT0が(T×(M−1))と一致しない場合には、現在から(T×(M−1))時間先のタイミングでの回転角の推定値を、推定タイミングでの回転角の推定値とし、当該推定値を、対象重畳画像の表示タイミングでの回転角の推定値として使用してもよい。
【0227】
上記の例では、電子機器1は、ヘッドアップディスプレイとして使用されていたが、他の装置として使用されてもよい。例えば、電子機器1は、仮想現実(VR:Virtual Reality)用あるいは拡張現実用のヘッドマウントディスプレイとして使用されてもよい。この場合、電子機器1は、上述のように、回転振動時の動きを推定し、その推定結果に基づいて、表示する画像の表示位置を制御してもよい。ヘッドマウントディスプレイは、ゴーグル型であってもよいし、メガネ型であってもよいし、他の形状であってもよい。
【0228】
また、動き推定装置400は、並進振動と回転振動を行っている装置の動きを推定してもよい。この場合、推定部300は、動き推定処理において、加速度推定値、速度推定値、変位推定値及び総変位推定値の少なくとも一つと、角速度推定値、回転角推定値及び総変回転角推定値の少なくとも一つとを生成してもよい。例えば、動き推定処理において、加速度推定値、速度推定値、変位推定値及び総変位推定値と、角速度推定値、回転角推定値及び総変回転角推定値とが生成される場合を考える。この場合、式(1)に関する状態ベクトルxには、変数として、加速度、速度、変位、総変位、角速度、回転角及び総回転角が含まれる。また、観測ベクトルzには、変数として、加速度、速度、変位、総変位、角速度、回転角及び総回転角が含まれる。観測モデル350は、電子機器1の加速度、速度、変位、総変位、角速度、回転角及び総回転角を表す最大7次元の確率分布となる。推定部300は、事後確率p(x|z1:t)を推定すると、推定した事後確率p(x|z1:t)が最大となる状態ベクトルを推定状態ベクトルとして特定する。そして、推定部300は、推定状態ベクトルの加速度、速度、変位、総変位、角速度、回転角及び総回転角の成分を、それぞれ、加速度推定値、速度推定値、変位推定値、総変位推定値、角速度推定値、回転角推定値及び総回転角推定値とする。
【0229】
また、動き推定装置400は、第1フィルタ310及び第2フィルタ320の少なくとも一方を備えなくてもよい。また、観測モデル350は上記の例に限られない。また、予測モデル360は上記の例に限られない。例えば、式(4)〜(6),(9),(10)の少なくとも一つには予測誤差が含まれなくてもよい。また、動き推定装置400での動きの推定結果の利用方法は上記の例に限られない。また、動き推定装置400は、電子機器1に含まれなくてもよい。また、動き推定装置400は、電子機器1以外の装置の動きを推定してもよい。
【0230】
以上のように、電子機器1及び動き推定装置400は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【0231】
1 電子機器
100 制御部
103a 制御プログラム
120 表示部
300 推定部
310 第1フィルタ
320 第2フィルタ
350 観測モデル
360 予測モデル
400 動き推定装置
【要約】
振動時の装置の動きを推定する動き推定装置は推定部を備える。推定部は、装置の動きを表す予測モデルと、装置の加速度あるいは回転角速度を検出するセンサの検出値と、当該検出値が用いられる、装置の振動に関する統計的な事前知識を表す観測モデルとを用いたベイズ推定に基づいて、振動時の装置の動きを推定する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15