(57)【要約】      （修正有）【課題】同一電子機器に含まれる姿勢特定のためのセンサとカメラとに関する時刻誤差及び姿勢誤差を、効率よく補正する方法を提供する。【解決手段】補正方法は、カメラと、カメラのためのクロックと、自らの姿勢パラメータを計測するセンサと、センサのためのクロックとを有する電子機器において、繰り返し撮影された画像に基づいてカメラ姿勢を推定し、計測の繰り返しによりセンサ姿勢を特定し、姿勢安定状態を示す計測時刻帯のセンサ姿勢と、一致する撮影時刻帯のカメラ姿勢とに基づいて回転パラメータを算出し、回転パラメータに基づいてカメラ姿勢又はセンサ姿勢を補正し、姿勢変化状態を示す計測時刻帯のセンサ姿勢と、一致する撮影時刻帯のカメラ姿勢とに基づいて差分時刻を算出し、差分時刻に基づいて撮影時刻又は計測時刻を補正する処理を含む。【選択図】図９
2017073753.tif 000002
【特許請求の範囲】
【請求項１】
カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、
前記カメラによる撮影を繰り返し行う処理と、
撮影された画像に基づいて、前記カメラの姿勢を推定する処理と、
前記センサによる前記パラメータの計測を繰り返し行う処理と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する処理と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１処理と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第４処理と、
を含み、前記電子機器のプロセッサにより実行される補正方法。
【請求項２】
前記第１処理において、重力方向を基準として前記回転パラメータを算出する
請求項１記載の補正方法。
【請求項３】
更に、
前記第１処理乃至前記第４処理を繰り返す処理
を含む請求項１又は２記載の補正方法。
【請求項４】
更に、
所定の基準に従って前記回転パラメータ及び前記差分時間が収束したか否かを判定する処理
を含み、
前記回転パラメータ及び前記差分時間が収束したと判定した場合に、前記第１処理乃至前記第４処理を終える
請求項３記載の補正方法。
【請求項５】
カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、
前記カメラによる撮影を繰り返し行う処理と、
撮影された画像に基づいて、前記カメラの姿勢を推定する処理と、
前記センサによる前記パラメータの計測を繰り返し行う処理と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する処理と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１処理と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第４処理と、
を前記電子機器のプロセッサに実行させるプログラム。
【請求項６】
カメラと、
当該カメラの撮影時刻を特定するための第１クロックと、
自らの姿勢を特定するためのパラメータを計測するセンサと、
当該センサの計測時刻を特定するための第２クロックと、
前記カメラによる撮影を繰り返し行う撮影部と、
撮影された画像に基づいて、前記カメラの姿勢を推定する推定部と、
前記センサによる前記パラメータの計測を繰り返し行う計測部と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する特定部と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１算出部と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第１補正部と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第２算出部と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第２補正部と
を有する電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器における校正技術に関する。
【背景技術】
【０００２】
近年の携帯電話端末の中には、慣性センサを有するものがある。慣性センサは、例えば携帯電話端末の姿勢を特定するために用いられる。携帯電話端末が更にカメラを備える場合には、カメラと慣性センサとを組み合わせる使い方が想定される。
【０００３】
カメラと慣性センサとを併用する場合には、カメラの撮影時刻と慣性センサの計測時刻とが一致していることが望ましい。また、カメラの座標系と慣性センサの座標系とが一致していると使いやすい。
【０００４】
しかし、カメラの撮影時刻を特定するためのクロックと慣性センサの計測時刻を特定するためのクロックとが別個に設けられている場合には、時間誤差が生じることがある。また、カメラと慣性センサとの設置状態によっては、座標系が一致しないことがある。
【０００５】
一般的に、ハードウエアに起因する一つの誤差のみに着目し、ソフトウエアによって捕捉して、補正しようとしても、簡単に調整できない場合がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−９７６３７号公報
【特許文献２】特表２０１４−５２６７３６号公報
【特許文献３】特開２０１１−２２０８１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、一側面では、同一電子機器に含まれる姿勢特定のためのセンサとカメラとに関する時刻誤差及び姿勢誤差を、効率よく減らすことである。
【課題を解決するための手段】
【０００８】
一態様の補正方法は、カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、（Ａ）カメラによる撮影を繰り返し行う処理と、（Ｂ）撮影された画像に基づいて、カメラの姿勢を推定する処理と、（Ｃ）センサによる上記パラメータの計測を繰り返し行う処理と、（Ｄ）計測された上記パラメータに基づいて、センサの姿勢を特定する処理と、（Ｅ）センサの姿勢が安定している第１計測時刻帯におけるセンサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯におけるカメラの姿勢とに基づいて、カメラの姿勢とセンサの姿勢との差を表す回転パラメータを算出する第１処理と、（Ｆ）回転パラメータに基づいて、カメラの姿勢を示すデータとセンサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、（Ｇ）センサの姿勢が変化している第２計測時刻帯におけるセンサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯におけるカメラの姿勢とに基づいて、第１クロックによって計られる第１時刻と第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、（Ｈ）差分時間に基づいて、撮影時刻と計測時刻とのうち少なくとも一方を補正する第４処理とを含む。
【発明の効果】
【０００９】
一側面としては、同一電子機器に含まれる姿勢特定のためのセンサとカメラとに関する時刻誤差及び姿勢誤差を、効率よく減らせる。
【図面の簡単な説明】
【００１０】
【図１】図１は、携帯装置のハードウエア構成例を示す図である。
【図２】図２は、座標系の概要を説明するための図である。
【図３】図３は、マーカーの撮影による姿勢の特定を説明するための図である。
【図４】図４は、差分時間の算出を説明するための図である。
【図５】図５は、慣性センサの座標系と鉛直線との関係を示す図である。
【図６】図６は、調整時における携帯装置の扱い方の例を説明するための図である。
【図７】図７は、撮影時刻と計測時刻とのずれを示す図である。
【図８】図８は、携帯装置のモジュール構成例を示す図である。
【図９】図９は、メイン処理フローを示す図である。
【図１０】図１０は、カメラ処理（Ａ）フローを示す図である。
【図１１】図１１は、第１姿勢テーブルの構成例を示す図である。
【図１２】図１２は、慣性センサ処理（Ａ）フローを示す図である。
【図１３】図１３は、計測データの構成例を示す図である。
【図１４】図１４は、第２姿勢テーブルの構成例を示す図である。
【図１５】図１５は、第１特定処理フローを示す図である。
【図１６】図１６は、第１算出処理フローを示す図である。
【図１７】図１７は、第２特定処理フローを示す図である。
【図１８】図１８は、第２算出処理フローを示す図である。
【図１９】図１９は、判定処理フローを示す図である。
【図２０】図２０は、カメラ処理（Ｂ）フローを示す図である。
【図２１】図２１は、慣性センサ処理（Ｂ）フローを示す図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１に、携帯装置１０１のハードウエア構成例を示す。携帯装置１０１は、ＣＰＵ（Central Processing Unit）１０３、記憶回路１０５、カメラ１０７、カメラ制御回路１０９、第１リアルタイムクロック１１１、慣性センサ１１３、センサ制御回路１１５、第２リアルタイムクロック１１７、無線通信制御回路１１９、無線通信用アンテナ１２１スピーカ制御回路１２３、スピーカ１２５、マイク制御回路１２７、マイク１２９、ＬＣＤ（Liquid Crystal Display）制御回路１３１、ＬＣＤ１３３、タッチセンサ１３５及びキー群１３７を有する。ＣＰＵ１０３、記憶回路１０５、カメラ制御回路１０９、センサ制御回路１１５、無線通信制御回路１１９、スピーカ制御回路１２３、マイク制御回路１２７、ＬＣＤ制御回路１３１、タッチセンサ１３５及びキー群１３７は、バスに接続している。
【００１２】
ＣＰＵ１０３は、演算処理を行う。ＣＰＵ１０３は、例えばＲＯＭ（Read Only Memory）とＲＡＭ（Random Access Memory）とフラッシュメモリとを有している。ＲＯＭは、基盤となるプログラムや予め設定されているデータを格納している。ＲＡＭは、プログラムを展開する領域を含んでいる。ＲＡＭは、一時的なデータを格納する領域も含んでいる。フラッシュメモリは、例えばアプリケーション・プログラムや保持すべきデータを格納する。
【００１３】
カメラ制御回路１０９は、カメラ１０７を制御する。また、カメラ制御回路１０９は、第１リアルタイムクロック１１１から取得した時刻に基づいて、撮影時刻を特定する。
【００１４】
センサ制御回路１１５は、慣性センサ１１３を制御する。また、センサ制御回路１１５は、第２リアルタイムクロック１１７から取得した時刻に基づいて、計測時刻を特定する。慣性センサ１１３は、自らの姿勢に係る角速度（又は角度）及び自らの移動に係る加速度を計測する。この例で、慣性センサ１１３は、３軸のジャイロセンサと３方向の加速度センサとを含んでいる。尚、ジャイロセンサにおける３軸と、加速度センサにおける３方向とは一致している。
【００１５】
無線通信用アンテナ１２１は、例えば、セルラー方式、無線ＬＡＮ（Local Area Network）、近距離通信方式などの無線データを受信する。無線通信制御回路１１９は、無線通信の制御を行う。無線通信の制御により、電話の音声通信やメールのデータ通信が行われる。
【００１６】
スピーカ制御回路１２３は、音データに関するデジタル／アナログ変換を行う。スピーカ１２５は、アナログデータを音として出力する。マイク制御回路１２７は、音データに関するアナログ／デジタル変換を行う。マイク１２９は、音をアナログデータに変換する。
【００１７】
ＬＣＤ制御回路１３１は、ＬＣＤ１３３を駆動させる。ＬＣＤ１３３は、画面を表示する。タッチセンサ１３５は、例えば、ＬＣＤ１３３の表示面上に配置されたパネル状のセンサであり、タッチ操作による指示を受け付ける。具体的には、ＬＣＤ１３３とタッチセンサ１３５とを一体としたタッチパネルとして用いられる。キー群１３７は、筐体の一部に設けられている。
【００１８】
第１リアルタイムクロック１１１から取得される時刻と第２リアルタイムクロック１１７から取得される時刻とは、一致していない場合がある。そのため、本実施の形態では、撮影時刻と計測時刻とを近づけるように補正する。
【００１９】
尚、図１に示した携帯装置１０１は、携帯電話器（フィーチャーフォンとスマートフォンとを含む）であり、携帯型の電子機器の例である。但し、本実施の形態を、他の電子機器に適用してもよい。例えば腕時計型やヘッドマウント型などのウエラブル端末、タブレット端末、ゲーム機、歩数計、録音機、音楽再生機、デジタルカメラ装置、画像再生機、テレビ放送受信機、ラジオ放送受信機、コントローラ、電子時計、電子辞書、電子翻訳機、無線機、ＧＰＳ発信機、計測器、健康支援機器又は医療機器などの電子機器において、携帯装置１０１と同様のモジュールを設け、以下に述べる処理を実行するようにしてもよい。
【００２０】
次に、図２を用いて、携帯装置１０１における座標系の概要を説明する。この例で、携帯装置１０１の座標系において、横方向にＸ軸を設け、縦方向にＹ軸を設け、裏面の垂直方向にＺ軸を設けている。但し、カメラ１０７の座標系（Ｘc，Ｙc，Ｚc）は、携帯装置１０１の座標系（Ｘ，Ｙ，Ｚ）からずれている場合がある。また、慣性センサ１１３の座標系（Ｘs，Ｙs，Ｚs）も、携帯装置１０１の座標系（Ｘ，Ｙ，Ｚ）からずれている場合がある。つまり、カメラ１０７の座標系（Ｘc，Ｙc，Ｚc）と、慣性センサ１１３の座標系（Ｘs，Ｙs，Ｚs）とは、一致しているとは限らない。そのため、本実施の形態では、カメラ１０７の座標系と慣性センサ１１３の座標系とを近づけるように補正する。以下では、カメラ１０７の座標系をカメラ座標系という。慣性センサ１１３の座標系をセンサ座標系という。
【００２１】
また、本実施の形態では、マーカーの撮影によってカメラ１０７の姿勢を推定する。図３を用いて、マーカーの撮影による姿勢の推定について説明する。マーカー３０１は、所定の図形である。また、この例で、マーカー３０１は水平に配置されている。
【００２２】
携帯装置１０１は、カメラ１０７によって撮影された画像に含まれるマーカー３０１に相当する部分の形状に基づいて、マーカー３０１を基準として携帯装置１０１の相対位置及び姿勢を推定する。更に、携帯装置１０１は、カメラ座標系における重力方向を特定する。カメラ１０７の座標系の原点から、マーカー３０１が配置されている面に対する垂線が、鉛直線に相当する。従って、この鉛直線を求めれば、重力方向が特定されることになる。
【００２３】
また、本実施の形態では、携帯装置１０１を回転させる間に検出された姿勢データに基づいて、撮影時刻と計測時刻との差分時間を算出する。図４を用いて、差分時間の算出について説明する。ユーザは、カメラ１０７の光軸をマーカー３０１の方に向ける。そして、ユーザは、カメラ１０７の光軸を中心として、携帯装置１０１の表示面が上下にぶれないように、携帯装置１０１を回転させる。この例で、ユーザは、携帯装置１０１を左右にひねるように扱う。一方の向きに９０度回転させ、その後逆方向に１８０度回転させ、更に元の方向に９０度回転させて、最初の状態に戻るようにする。但し、回転の角度は、任意である。例えば、一方の方向に３６０度回転させるようにしてもよい。
【００２４】
この回転の間に撮影した画像に含まれるマーカー３０１に相当する部分の形状に基づいて、カメラ１０７の姿勢が推定される。以下、撮影した画像に含まれるマーカー３０１に相当する部分の形状に基づいて特定されたカメラ１０７の姿勢を第１姿勢という。図４に示した上のグラフは、撮影時刻と第１姿勢との関係を模式的に示している。
【００２５】
更に、この回転の間に慣性センサ１１３において計測したデータに基づいて、慣性センサ１１３の姿勢を特定する。以下、慣性センサ１１３において計測したデータに基づいて特定された慣性センサ１１３の姿勢を第２姿勢という。図４に示した下のグラフは、計測時刻と第２姿勢との関係を模式的に示している。
【００２６】
携帯装置１０１は、第１姿勢と第２姿勢とが近似することを前提として、撮影時刻と計測時刻とのずれ、つまり差分時間ΔＴを算出する。以降、算出した差分時間ΔＴに基づいて、撮影時刻又は計測時刻を補正する。本実施の形態では、撮影時刻を補正する。尚、計測時刻を補正する例は、後述する実施の形態で説明する。但し、第１姿勢と第２姿勢とに関する誤差は、差分時間ΔＴの精度に影響を与える面がある。
【００２７】
第１姿勢と第２姿勢とに関する誤差は、カメラ座標系とセンサ座標系とのずれに相当する。本実施の形態では、上述したカメラ座標系における重力方向と、センサ座標系における重力方向とを基準として、ずれを求める。そのため、センサ座標系においても重力方向を特定する。
【００２８】
図５に、センサ座標系と鉛直線との関係を示す。本実施の形態では、慣性センサ１１３によって計測された加速度から重力成分を分離することによって、センサ座標系における重力方向が特定される。そして、カメラ座標系とセンサ座標系との比較は、携帯装置１０１が静止している状態において行われる。
【００２９】
次に、調整時における携帯装置１０１の扱い方について説明する。ユーザは、例えば図６に示すように携帯装置１０１を扱うものとする。
【００３０】
図６は、枠６０１ａ乃至枠６０１ｆの順に、携帯装置１０１の扱い方を示している。まず、枠６０１ａに示すように、ユーザは、右上方からマーカー３０１を撮影する位置で携帯装置１０１を静止させる。その後、枠６０１ｂに示すように、ユーザは、枠６０１ａの場合と同じ位置で携帯装置１０１を回転させる。
【００３１】
次に、ユーザは、上方からマーカー３０１を撮影する位置に携帯装置１０１を移動させる。枠６０１ｃに示すように、ユーザは、その位置で携帯装置１０１を静止させる。その後、枠６０１ｄに示すように、ユーザは、枠６０１ｃの場合と同じ位置で携帯装置１０１を回転させる。
【００３２】
次に、ユーザは、左上方からマーカー３０１を撮影する位置に携帯装置１０１を移動させる。枠６０１ｅに示すように、ユーザは、その位置で携帯装置１０１を静止させる。その後、枠６０１ｆに示すように、ユーザは、枠６０１ｅの場合と同じ位置で携帯装置１０１を回転させる。
【００３３】
以下では、静止状態が続いている期間を、静止期間という。また、回転動作が行われている期間を回転期間という。
【００３４】
枠６０１ａに示した静止期間に求められた第１姿勢と第２姿勢とに基づいて、１回目の回転行列が求められる。また、枠６０１ｂに示した回転期間に求められた第１姿勢と第２姿勢に基づいて、１回目の差分時間が求められる。
【００３５】
また、枠６０１ｃに示した静止期間に求められた第１姿勢と第２姿勢とに基づいて、２回目の回転行列が求められる。また、枠６０１ｄに示した回転期間に求められた第１姿勢と第２姿勢に基づいて、２回目の差分時間が求められる。
【００３６】
更に、枠６０１ｅに示した静止期間に求められた第１姿勢と第２姿勢とに基づいて、３回目の回転行列が求められる。また、枠６０１ｆに示した回転期間に求められた第１姿勢と第２姿勢に基づいて、３回目の差分時間が求められる。
【００３７】
このように、複数のポーズによって調整を行えば、校正精度が安定し易いという面がある。また、その都度時間誤差に対する補正と姿勢誤差に対する補正を反映するので、時間誤差と姿勢誤差とが収束しやすくなるという面もある。尚、図６では、携帯装置１０１を静止させた後に同じ位置で携帯装置１０１を回転させる例を示したが、その手順を逆にしてもよい。つまり、携帯装置１０１を回転させた後に同じ位置で携帯装置１０１を静止させるようにしてもよい。また、静止している携帯装置１０１の位置と回転している携帯装置１０１の位置とは、一致していなくてもよい。
【００３８】
次に、時間誤差と姿勢誤差との関係について述べる。図７における上のグラフは、第１姿勢の遷移を模式的に表している。横軸は、撮影時刻を示している。同じく下のグラフは、第２姿勢の遷移を模式的に表している。横軸は、計測時刻を示している。
【００３９】
図７では、回転期間における姿勢の遷移を、便宜的に大きな正弦波で示している。回転期間における姿勢角が、このように変化するとは限らない。また、同様に携帯装置１０１を移動させている期間（以下、移動期間という。）における姿勢の遷移を、便宜的に小さな正弦波で示している。移動期間における姿勢角が、このように変化するとは限らない。また、同様に静止期間における姿勢を、便宜的に０としている。静止期間における姿勢角が、このようになるとは限らない。
【００４０】
また、第１姿勢の遷移を示す波形と第２姿勢の遷移を示す波形とが、一致するとは限らない。但し、第１姿勢度の遷移を示す波形と第２姿勢の遷移を示す波形は、ある程度近似するものと想定される。
【００４１】
この例では、撮影時刻が計測時刻より先行している。つまり、第１リアルタイムクロック１１１が計る時刻が、第２リアルタイムクロック１１７が計る時刻よりも進んでいる。そのため、上のグラフの波形は、全体として下のグラフの波形に比べて右側にシフトしている。
【００４２】
この例で、回転期間及び静止期間は、第２姿勢に基づいて判断される。そのため、回転期間及び静止期間は、計測時間帯として特定される。
【００４３】
一方、実質的に回転期間に相当する撮影時間帯は、回転期間を特定する計測時間帯よりも進んでいる。同様に、実質的に静止期間に相当する撮影時間帯は、静止期間を特定する計測時間帯よりも進んでいる。
【００４４】
第１姿勢の遷移を示す波形と第２姿勢の遷移を示す波形とのずれ、つまり撮影時刻と計測時刻との差分時間が、第１リアルタイムクロック１１１によって計られる時刻と第２リアルタイムクロック１１７によって計られる時刻との誤差に相当する。本実施の形態では、回転期間における差分時間を求めて、撮影時刻と計測時刻とのずれを補正する。
【００４５】
仮に時刻誤差を無視して姿勢誤差に関する校正を行おうとしても、時刻誤差の影響が残るので、調整の過程で姿勢誤差が収束しにくい面がある。また、姿勢誤差を無視して時刻誤差に関する校正を行おうとしても、姿勢誤差の影響が残るので、調整の過程で時刻誤差が収束しにくい面がある。本実施の形態では、姿勢誤差に関する調整と時刻誤差に関する調整とを交互に繰り返すので、相互作用によって両方の校正精度が向上する。以上で、本実施の形態の概要についての説明を終える。
【００４６】
続いて、携帯装置１０１の動作について説明する。図８に、携帯装置１０１のモジュール構成例を示す。携帯装置１０１は、制御部８０１、撮影部８０３、姿勢推定部８０５、計測部８０７、姿勢特定部８０９、第１期間特定部８１１、第１算出部８１３、第２期間特定部８１５、第２算出部８１７、判定部８１９、出力部８２１、第１補正部８２３、第２補正部８２５、画像記憶部８３１、第１姿勢記憶部８３３、計測データ記憶部８３５、第２姿勢記憶部８３７、第１分布記憶部８３９、第２分布記憶部８４１、回転行列記憶部８４３、差分時間記憶部８４５及び一時変数記憶部８４７を有する。
【００４７】
制御部８０１は、カメラ処理の起動及び停止を制御する。更に、慣性センサ処理の起動及び停止を制御する。そして、制御部８０１は、繰り返し処理も制御する。撮影部８０３は、周期的にカメラ１０７による撮影を行う。姿勢推定部８０５は、第１姿勢を推定する。計測部８０７は、周期的に慣性センサ１１３による計測を行う。姿勢特定部８０９は、第２姿勢を特定する。第１期間特定部８１１は、計測時刻帯によって静止期間を特定する。第１算出部８１３は、カメラ座標系をセンサ座標系に近づける変換を行うための回転行列を算出する。後述する実施の形態では、第１算出部８１３は、センサ座標系をカメラ座標系に近づける変換を行うための回転行列を算出する。第２期間特定部８１５は、計測時刻帯によって回転期間を特定する。第２算出部８１７は、撮影時刻と計測時刻との差分時間を算出する。判定部８１９は、回転行列及び差分時間が収束したか否かを判定する。出力部８２１は、調整の完了を示す合図を出力する。第１補正部８２３は、回転行列に基づいて第１姿勢を補正する。後述する実施の形態では、第１補正部８２３は、回転行列に基づいて第２姿勢を補正する。第２補正部８２５は、差分時間に基づいて撮影時間を補正する。後述する実施の形態では、第２補正部８２５は、差分時間に基づいて計測時間を補正する。
【００４８】
画像記憶部８３１は、カメラ１０７で撮影した画像を記憶する。第１姿勢記憶部８３３は、撮影時刻に対応付けて第１姿勢を記憶する。計測データ記憶部８３５は、慣性センサ１１３による計測結果を記憶する。第２姿勢記憶部８３７は、計測時刻に対応付けて第２姿勢を記憶する。第１分布記憶部８３９は、カメラ座標系での重力方向ベクトルの分布を記憶する。第２分布記憶部８４１は、センサ座標系での重力方向ベクトルの分布を記憶する。回転行列記憶部８４３は、回転行列を記憶する。差分時間記憶部８４５は、差分時間を記憶する。一時変数記憶部８４７は、各処理において一時的に用いられる変数の値を記憶するために用いられる。
【００４９】
上述した制御部８０１、撮影部８０３、姿勢推定部８０５、計測部８０７、姿勢特定部８０９、第１期間特定部８１１、第１算出部８１３、第２期間特定部８１５、第２算出部８１７、判定部８１９、出力部８２１、第１補正部８２３及び第２補正部８２５は、ハードウエア資源（例えば、図１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００５０】
上述した画像記憶部８３１、第１姿勢記憶部８３３、計測データ記憶部８３５、第２姿勢記憶部８３７、第１分布記憶部８３９、第２分布記憶部８４１、回転行列記憶部８４３、差分時間記憶部８４５及び一時変数記憶部８４７は、ハードウエア資源（例えば、図１）を用いて実現される。
【００５１】
図９に、メイン処理フローを示す。制御部８０１は、カメラ処理を起動する（Ｓ９０１）。本実施の形態では、カメラ処理（Ａ）が起動される。この例で、カメラ処理は、メイン処理と並行して動作する。
【００５２】
図１０に、カメラ処理（Ａ）フローを示す。撮影部８０３は、撮影のタイミングを待つ（Ｓ１００１）。この例では、周期的に撮影が行われる。
【００５３】
所定のタイミングに至ると、撮影部８０３は、カメラ１０７を用いて撮影を行う（Ｓ１００３）。撮影部８０３は、撮影した画像を画像記憶部８３１に記憶する（Ｓ１００５）。
【００５４】
姿勢推定部８０５は、画像記憶部８３１に記憶した画像からマーカー３０１に相当する部分を抽出する（Ｓ１００７）。姿勢推定部８０５は、マーカー３０１に相当する部分の輪郭線に基づいて、角の位置を検出する（Ｓ１００９）。姿勢推定部８０５は、角の位置に基づいて、第１姿勢を算出する（Ｓ１０１１）。具体的には、第１姿勢は、ピッチ角度、ロール角度及びヨー角度によって特定される。
【００５５】
第１補正部８２３は、回転行列に基づいて第１姿勢を補正する（Ｓ１０１３）。具体的には、第１補正部８２３は、回転行列によって第１姿勢を変換する。変換後の姿勢が、補正された第１姿勢である。尚、回転行列は、後述する第１算出処理によって求められ、都度更新される。初期の回転行列による変換では、第１姿勢は変わらない。
【００５６】
第２補正部８２５は、差分時間に基づいて撮影時間を補正する（Ｓ１０１５）。具体的には、第２補正部８２５は、Ｓ１００１におけるタイミングに相当する撮影時刻から差分時間を引く。差分時間を引かれた時刻が、補正された撮影時刻である。尚、差分時間は、後述する第２算出処理によって求められ、都度更新される。初期の差分時間は、０である。
【００５７】
第１補正部８２３は、補正された撮影時刻に対応付けて、第１姿勢記憶部８３３に補正された第１姿勢を記憶する（Ｓ１０１７）。
【００５８】
図１１に、第１姿勢テーブルの構成例を示す。第１姿勢テーブルは、撮影時刻に対応するレコードを有している。当該レコードは、撮影時刻を設定するためのフィールドと、ピッチ角度を設定するためのフィールドと、ロール角度を設定するためのフィールドと、ヨー角度を設定するためのフィールドとを有している。
【００５９】
この例で、ピッチ角度、ロール角度及びヨー角度は、当該撮影時刻における第１姿勢を特定する。この例で、ピッチ角は、Ｘ軸回りの角度であり、ロール角は、Ｙ軸回りの角度であり、ヨー角は、Ｚ軸回りの角度である。尚、基準となるＸ軸、Ｙ軸及びＺ軸は、カメラ処理を開始する前に設定されているものとする。
【００６０】
図１０の説明に戻る。撮影部８０３は、カメラ処理を停止するか否かを判定する（Ｓ１０１９）。具体的には、図９に示したメイン処理のＳ９１９においてカメラ処理を停止させたか否かを判定する。カメラ処理を停止しないと判定した場合には、Ｓ１００１に示した処理に戻って上述した処理を繰り返す。一方、カメラ処理を停止すると判定した場合には、カメラ処理（Ａ）を終了する。
【００６１】
図９の説明に戻る。カメラ処理を起動すると、図９のＳ９０３に示した処理に移る。制御部８０１は、慣性センサ処理を起動する（Ｓ９０３）。本実施の形態では、慣性センサ処理（Ａ）が起動される。この例で、慣性センサ処理は、メイン処理と並行して動作する。
【００６２】
図１２に、慣性センサ処理（Ａ）フローを示す。計測部８０７は、タイミングを待つ（Ｓ１２０１）。カメラ処理の場合と同様に、周期的に計測が行われる。この例では、カメラ処理における撮影時刻と同じ時刻に、計測が行われる。但し、撮影時刻と一致しない時刻において、計測を行うようにしてもよい。
【００６３】
計測部８０７は、カメラ１０７を用いて角速度を計測する（Ｓ１２０３）。更に、計測部８０７は、カメラ１０７を用いて加速度を計測する（Ｓ１２０５）。そして、計測部８０７は、計測時刻に対応付けて、計測データ記憶部８３５に角速度及び加速度を記憶する（Ｓ１２０７）。
【００６４】
図１３に、計測データの構成例を示す。この例における計測データは、テーブル形式である。計測データは、計測時刻に対応するレコードを有している。当該レコードは、計測時刻を設定するためのフィールドと、ピッチ角速度を設定するためのフィールドと、ロール角速度を設定するためのフィールドと、ヨー角速度を設定するためのフィールドと、Ｘ軸方向の加速度を設定するためのフィールドと、Ｙ軸方向の加速度を設定するためのフィールドと、Ｚ軸方向の加速度を設定するためのフィールドとを有している。
【００６５】
この例では、３種類の角速度が計測される。同じく、３種類の加速度が計測される。計測データの場合にも、ピッチ角は、Ｘ軸回りの角度であり、ロール角は、Ｙ軸回りの角度であり、ヨー角は、Ｚ軸回りの角度である。尚、基準となるＸ軸、Ｙ軸及びＺ軸は、慣性センサ処理を開始する前に設定されているものとする。
【００６６】
図１２の説明に戻る。姿勢特定部８０９は、角速度を積分して、第２姿勢を求める（Ｓ１２０９）。この例で、第２姿勢は、ピッチ角度、ロール角度及びヨー角度によって特定される。この例では、第２姿勢の基準となる座標系における各軸の向きは、第１姿勢の基準となる座標系における各軸の向きと一致するものと想定する。第２姿勢の基準となる座標系の原点は、第１姿勢の基準となる座標系の原点と一致しなくてもよい。但し、第２姿勢の基準となる座標系の原点と、第１姿勢の基準となる座標系の原点とが一致するようにしてもよい。
【００６７】
そして、姿勢特定部８０９は、計測時刻に対応付けて、第２姿勢記憶部８３７に第２姿勢を記憶する（Ｓ１２１１）。
【００６８】
図１４に、第２姿勢テーブルの構成例を示す。第２姿勢テーブルは、計測時刻に対応するレコードを有している。当該レコードは、計測時刻を設定するためのフィールドと、ピッチ角度を設定するためのフィールドと、ロール角度を設定するためのフィールドと、ヨー角度を設定するためのフィールドとを有している。
【００６９】
図１２の説明に戻る。計測部８０７は、慣性センサ処理を停止するか否かを判定する（Ｓ１２１３）。具体的には、図９に示したメイン処理のＳ９２１において慣性センサ処理を停止させたか否かを判定する。慣性センサ処理を停止しないと判定した場合には、Ｓ１２０１に示した処理に戻って上述した処理を繰り返す。一方、慣性センサ処理を停止すると判定した場合には、慣性センサ処理（Ａ）を終了する。
【００７０】
図９の説明に戻る。第１期間特定部８１１は、第１特定処理を実行する（Ｓ９０５）。第１特定処理において、第１期間特定部８１１は、計測時刻帯によって静止期間を特定する。
【００７１】
図１５に、第１特定処理フローを示す。第１期間特定部８１１は、第２姿勢に基づいて、静止状態が開始した計測時刻を特定する（Ｓ１５０１）。例えば、第１期間特定部８１１は、ピッチ角度の変化、ロール角度の変化及びヨー角度の変化が閾値を下回る場合に、静止状態であると判定する。一方、第１期間特定部８１１は、ピッチ角度の変化、ロール角度の変化又はヨー角度の変化が閾値を超える場合に、静止状態ではないと判定する。
【００７２】
第１期間特定部８１１は、角速度に基づいて、静止状態が開始した計測時刻を特定してもよい。例えば、第１期間特定部８１１は、ピッチ角速度、ロール角速度及びヨー角速度が閾値を下回る場合に、静止状態であると判定する。一方、第１期間特定部８１１は、ピッチ角速度、ロール角の角速度又はヨー角の角速度が閾値を超える場合に、静止状態ではないと判定する。
【００７３】
第１期間特定部８１１は、加速度に基づいて、静止状態が開始した計測時刻を特定してもよい。例えば、第１期間特定部８１１は、加速度に含まれる重力成分と重力以外の成分とを分離し、重力以外の成分に関する単純移動平均を算出する。そして、第１期間特定部８１１は、当該単純移動平均が閾値を下回った場合に静止状態であると判定する。他方、第１期間特定部８１１は、当該単純移動平均が閾値を下回らない場合には、静止状態ではないと判定する。
【００７４】
第１期間特定部８１１は、第２姿勢及び加速度に基づいて、静止状態が開始した計測時刻を特定してもよい。つまり、第１期間特定部８１１は、第２姿勢に関する静止の条件と加速度に関する静止の条件の両方を満たす場合に、静止状態であると判定するようにしてもよい。
【００７５】
第１期間特定部８１１は、角速度及び加速度に基づいて、静止状態が開始した計測時刻を特定してもよい。つまり、第１期間特定部８１１は、角速度に関する静止の条件と加速度に関する静止の条件の両方を満たす場合に、静止状態であると判定するようにしてもよい。
【００７６】
Ｓ１５０１の場合と同様に静止状態であるか否かを判定して、第１期間特定部８１１は、第２姿勢に基づいて、静止状態が終了した計測時刻を特定する（Ｓ１５０３）。同じく、第１期間特定部８１１は、角速度に基づいて、静止状態が終了した計測時刻を特定してもよい。同じく、第１期間特定部８１１は、加速度に基づいて、静止状態が終了した計測時刻を特定してもよい。同じく、第１期間特定部８１１は、第２姿勢及び加速度に基づいて、静止状態が終了した計測時刻を特定してもよい。同じく、第１期間特定部８１１は、角速度及び加速度に基づいて、静止状態が終了した計測時刻を特定してもよい。第１特定処理を終えると、図９に示したメイン処理に復帰する。
【００７７】
図９の説明に戻る。第１算出部８１３は、第１算出処理を実行する（Ｓ９０７）。第１算出処理において、第１算出部８１３は、カメラ座標系をセンサ座標系に近づける変換を行うための回転行列を算出する。
【００７８】
図１６に、第１算出処理フローを示す。第１算出部８１３は、静止期間を特定する計測時刻帯と一致する撮影時刻帯に含まれるサンプルについて、カメラ座標系での重力方向ベクトルの分布Ｐ｛ｐi，ｉ＝１〜ｎ｝を求める（Ｓ１６０１）。カメラ座標系での重力方向ベクトルの分布Ｐは、第１分布記憶部８３９に記憶される。計測時刻帯と一致する撮影時刻帯とは、両時刻帯を示す時刻の値が同じであること意味しており、両時刻帯が実質的に同時であることを意味するものではない。
【００７９】
第１算出部８１３は、静止期間を特定する計測時刻帯に含まれるサンプルについて、センサ座標系での重力方向ベクトルの分布Ｑ｛ｑi，ｉ＝１〜ｎ｝を求める（Ｓ１６０３）。センサ座標系での重力方向ベクトルの分布Ｑは、第２分布記憶部８４１に記憶される。
【００８０】
第１算出部８１３は、プロクラステス解析によって、回転行列を算出する（Ｓ１６０５）。プロクラステス解析では、重力方向ベクトルを基準として、カメラ座標系をセンサ座標系に近づける変換を行うための回転行列を求める。プロクラステス解析は、従来技術である。以下、本実施の形態におけるプロクラステス解析について簡単に説明する。
【００８１】
まず、第１算出部８１３は、カメラ座標系での重力方向ベクトルの平均ｐaを求める。更に、第１算出部８１３は、センサ座標系での重力方向ベクトルの平均ｑaを求める。
【００８２】
次に、第１算出部８１３は、カメラ座標系での各重力方向ベクトルｐiと平均ｐaとの差に基づくベクトルＡ＝［ｐ1−ｐa，．．．，ｐ1−ｐa］を求める。更に、第１算出部８１３は、センサ座標系での各重力方向ベクトルｑiと平均ｑaとの差に基づくベクトルＢ＝［ｑ1−ｑa，．．．，ｑ1−ｑa］を求める。
【００８３】
次に、第１算出部８１３は、ベクトルＣ＝ＢＡTについて、式「ＵＳＶT＝Ｃ」で表される特異値分解を行う。そして、式「Ｒ＝Ｕ  ｄｉａｇ（１，１，ｄｅｔ（ＵＶT））ＶT」に従って回転行列Ｒを求める。回転行列Ｒは、回転行列記憶部８４３に記憶される。第１算出処理を終えると、図９に示したメイン処理に復帰する。
【００８４】
図９の説明に戻る。第２期間特定部８１５は、第２特定処理を実行する（Ｓ９０９）。第２特定処理において、第２期間特定部８１５は、計測時刻帯によって回転期間を特定する。
【００８５】
図１７に、第２特定処理フローを示す。第２期間特定部８１５は、第２姿勢に基づいて、回転動作が開始した計測時刻を特定する（Ｓ１７０１）。例えば、第２期間特定部８１５は、所定間隔におけるピッチ角の変化量及びロール角の変化量が第１閾値を下回り、且つ同じくヨー角度の変化量が第２閾値を超える場合に、回転状態であると判定する。一方、第２期間特定部８１５は、所定間隔におけるピッチ角の変化量又はロール角の変化量が第１閾値を超える場合には、回転状態ではないと判定する。更に、第２期間特定部８１５は、同じくヨー角の変化量が第２閾値を下回る場合には、回転状態ではないと判定する。
【００８６】
第２期間特定部８１５は、角速度に基づいて、開始状態が開始した計測時刻を特定してもよい。例えば、第２期間特定部８１５は、所定間隔におけるピッチ角の角速度及びロール角の角速度が第３閾値を下回り、且つ同じくヨー角の角速度が第４閾値を超える場合に、回転状態であると判定する。一方、第２期間特定部８１５は、所定間隔におけるピッチ角の角速度又はロール角の角速度が第３閾値を超える場合には、回転状態ではないと判定する。更に、第２期間特定部８１５は、同じくヨー角の角速度が第４閾値を下回る場合には、回転状態ではないと判定する。
【００８７】
Ｓ１７０１の場合と同様に回転状態であるか否かを判定して、第２期間特定部８１５は、第２姿勢に基づいて、回転動作が終了した計測時刻を特定する（Ｓ１７０３）。同じく、第２期間特定部８１５は、角速度に基づいて、回転状態が終了した計測時刻を特定してもよい。第２特定処理を終えると、図９に示したメイン処理に復帰する。
【００８８】
図９の説明に戻る。第２算出部８１７は、第２算出処理を実行する（Ｓ９１１）。第２算出処理において、第２算出部８１７は、撮影時刻と計測時刻との差分時間を算出する。
【００８９】
図１８に、第２算出処理フローを示す。この例では、ピークを特徴点として、夫々特徴点が出現する撮影時刻と計測時刻との差分を求める。第２算出部８１７は、回転期間を特定する計測時刻帯と一致する撮影時刻帯における第１姿勢のピーク（第１ピークという。）を特定する（Ｓ１８０１）。第２算出部８１７は、回転期間における第２姿勢のピーク（第２ピークという。）を特定する（Ｓ１８０３）。第２算出部８１７は、第１ピークの撮影時刻から第２ピークの計測時刻を引いて、差分時間を求める（Ｓ１８０５）。差分時間は、差分時間記憶部８４５に記憶される。
【００９０】
ピークが複数ある場合には、対応するピーク毎に差分時間を求め、それらの差分時間の平均を求めるようにしてもよい。また、ピーク以外の特徴点を基準として差分時間を求めるようにしてもよい。
【００９１】
更に、撮影時刻帯における第１姿勢の遷移を示す波形と計測時刻帯における第２姿勢の遷移を示す波形との類似度が高くなるシフト量を特定することによって、差分時間を求めるようにしてもよい。波形の類似度を求めるための相互相関解析の手順は従来技術であるので、これ以上説明しない。第２算出処理を終えると、図９に示したメイン処理に復帰する。
【００９２】
図９の説明に戻る。判定部８１９は、判定処理を実行する（Ｓ９１３）。判定処理において、判定部８１９は、安定状態に至ったか否かを判定する。ここで言う安定状態とは、回転行列及び差分時間が収束した状態のことである。
【００９３】
図１９に、判定処理フローを示す。判定部８１９は、回転行列をオイラー角に変換する（Ｓ１９０１）。判定部８１９は、オイラー角の変化量を求める（Ｓ１９０３）。具体的には、判定部８１９は、今回のＳ１９０１の処理で求めたオイラー角と前回のＳ１９０１の処理で求めたオイラー角との差を算出する。
【００９４】
判定部８１９は、差分時間の変化量を求める（Ｓ１９０５）。具体的には、判定部８１９は、今回の第２算出処理で求めた差分時間と前回の第２算出処理で求めた差分時間との差を算出する。
【００９５】
判定部８１９は、オイラー角の変化量が閾値を下回ったか否かを判定する（Ｓ１９０７）。オイラー角の変化量が閾値を下回っていないと判定した場合には、判定部８１９は、安定状態に至っていないと判定する（Ｓ１９０９）。
【００９６】
一方、オイラー角の変化量が閾値を下回ったと判定した場合には、判定部８１９は、更に差分時間の変化量が閾値を下回ったか否かを判定する（Ｓ１９１１）。差分時間の変化量が閾値を下回っていないと判定した場合には、判定部８１９は、安定状態に至っていないと判定する（Ｓ１９０９）。
【００９７】
一方、差分時間の変化量が閾値を下回ったと判定した場合には、判定部８１９は、安定状態に至ったと判定する（Ｓ１９１３）。判定処理を終えると、図９に示したメイン処理に復帰する。
【００９８】
図９の説明に戻る。制御部８０１は、判定処理の結果に応じて処理を分岐させる（Ｓ９１５）。安定状態に至っていないと判定した場合には、Ｓ９０５に示した処理に戻って上述した処理を繰り返す。
【００９９】
一方、安定状態に至ったと判定した場合には、出力部８２１は、調整の完了を示す合図を出力する（Ｓ９１７）。出力部８２１は、例えば調整の完了を知らせるための所定の音を出力する。出力部８２１は、完了メッセージを表示するようにしてもよい。
【０１００】
最後に、制御部８０１は、カメラ処理を停止させ（Ｓ９１９）、更に慣性センサ処理も停止させる（Ｓ９２１）。尚、以降の処理で用いられる回転行列及び差分時間は、保持される。尚、カメラ１０７の使用に備えて、制御部８０１は、カメラ処理を停止しないようにしてもよい。また、慣性センサ１１３の使用に備えて、制御部８０１は、慣性センサ処理を停止しないようにしてもよい。
【０１０１】
この例における回転行列は、カメラ１０７の姿勢と慣性センサ１１３の姿勢との誤差を表す一つの態様である。他の態様によって、カメラ１０７の姿勢と慣性センサ１１３の姿勢との誤差を表すようにしてもよい。例えば、オイラー角によって、カメラ１０７の姿勢と慣性センサ１１３の姿勢との誤差を表すようにしてもよい。
【０１０２】
本実施の形態によれば、携帯装置１０１に内蔵されたカメラ１０７と慣性センサ１１３とに関する時刻誤差及び姿勢誤差を、効率よく減らすことができる。
【０１０３】
また、重力方向を基準とするので、カメラの姿勢とセンサの姿勢との関係を、より正しく捉えやすい。
【０１０４】
また、Ｓ９０５乃至Ｓ９１１に示した処理を繰り返すので、時刻誤差と姿勢誤差とを、より小さくできる。
【０１０５】
また、時刻誤差と姿勢誤差とが収束したと判定した場合に上記処理の繰り返しを終えるので、効果の少ない処理を省くことができる。
【０１０６】
この例では、第１姿勢を第２姿勢に合わせ、撮影時刻を計測時刻に合わせるように校正するので、慣性センサ１１３を基準とする使い方に適した面がある。
【０１０７】
［実施の形態２］
上述した実施の形態では、第１姿勢を第２姿勢に合わせ、撮影時刻を計測時刻に合わせる例について説明したが、本実施の形態では、第２姿勢を第１姿勢に合わせ、計測時刻を撮影時刻に合わせる例について説明する。
【０１０８】
本実施の形態では、カメラ処理（Ａ）に代えて、カメラ処理（Ｂ）を実行する。図２０に、カメラ処理（Ｂ）フローを示す。Ｓ１００１乃至Ｓ１０１１に示した処理は、カメラ処理（Ａ）の場合と同様である。
【０１０９】
カメラ処理（Ａ）におけるＳ１０１３に示した処理とＳ１０１５に示した処理とは、省かれる。Ｓ１０１７において、補正された第１姿勢に代えて、Ｓ１０１１で算出された第１姿勢を記憶する。
【０１１０】
また、本実施の形態では、慣性センサ処理（Ａ）に代えて、慣性センサ処理（Ｂ）を実行する。図２１に、慣性センサ処理（Ｂ）フローを示す。Ｓ１２０１乃至Ｓ１２０９に示した処理は、慣性センサ処理（Ａ）の場合と同様である。
【０１１１】
第１補正部８２３は、回転行列に基づいて第２姿勢を補正する（Ｓ２１０１）。具体的には、第１補正部８２３は、回転行列によって第２姿勢を変換する。変換後の姿勢が、補正された第２姿勢である。尚、本実施の形態における回転行列は、実施の形態１における回転行列の逆行列である。
【０１１２】
つまり、本実施の形態における第１算出処理において、第１算出部８１３は、センサ座標系をカメラ座標系に近づける変換を行うための回転行列を算出する。具体的には、図１６のＳ１６０５に示した処理において、カメラ座標系での重力方向ベクトルの分布Ｐとセンサ座標系での重力方向ベクトルの分布Ｑとの関係を入れ替えて、回転行列を求める。
【０１１３】
第２補正部８２５は、差分時間に基づいて計測時間を補正する（Ｓ２１０３）。具体的には、第２補正部８２５は、Ｓ１２０１におけるタイミングに相当する撮影時刻に差分時間を加える。差分時間が加えられた時刻が、補正された計測時刻である。
【０１１４】
Ｓ１２１１において、第１補正部８２３は、補正された計測時刻に対応付けて、第１姿勢記憶部８３３に補正された第２姿勢を記憶する。
【０１１５】
本実施の形態によれば、第２姿勢を第１姿勢に合わせ、計測時刻を撮影時刻に合わせるように校正するので、カメラ１０７を基準とする使い方に適した面がある。
【０１１６】
上述した例では、マーカーを用いて第１姿勢を推定した。このように、カメラ１０７によってマーカー３０１を撮影して、姿勢を推定する技術は、論文「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」（加藤博一他、ＴＶＲＳＪ  Ｖｏｌ．４  Ｎｏ．４，１９９９）に開示されている。
【０１１７】
また「カメラ位置姿勢の高速な推定のためのランドマーク選択法と、単眼視によるロボットのナビゲーション」（小川陽子他、日本ロボット学会誌  ２９（９），Ｐ８１１−８２０，２０１１／１１／１５）及び「PTAM: G. Klein et al., Parallel Tracking and Mapping for Small AR Workspace, ISMAR 2007」には、所定の図形を用いずに、任意の撮影対象における特徴点に基づいて姿勢を推定する技術が開示されている。本実施の形態では、これらの技術を用いて、第１姿勢を推定するようにしてもよい。
【０１１８】
また、上述した例では、第１リアルタイムクロック１１１によって計られる時刻と第２リアルタイムクロック１１７によって計られる時刻との誤差を求めた。但し、時刻の差に加えて、第１リアルタイムクロック１１１における時刻カウントの速度と第２リアルタイムクロック１１７における時刻カウントの速度との差を求めるようにしてもよい。
【０１１９】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１２０】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１２１】
以上述べた実施の形態をまとめると、以下のようになる。
【０１２２】
一態様の補正方法は、補正方法は、カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、（Ａ）カメラによる撮影を繰り返し行う処理と、（Ｂ）撮影された画像に基づいて、カメラの姿勢を推定する処理と、（Ｃ）センサによる上記パラメータの計測を繰り返し行う処理と、（Ｄ）計測された上記パラメータに基づいて、センサの姿勢を特定する処理と、（Ｅ）センサの姿勢が安定している第１計測時刻帯におけるセンサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯におけるカメラの姿勢とに基づいて、カメラの姿勢とセンサの姿勢との差を表す回転パラメータを算出する第１処理と、（Ｆ）回転パラメータに基づいて、カメラの姿勢を示すデータとセンサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、（Ｇ）センサの姿勢が変化している第２計測時刻帯におけるセンサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯におけるカメラの姿勢とに基づいて、第１クロックによって計られる第１時刻と第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、（Ｈ）差分時間に基づいて、撮影時刻と計測時刻とのうち少なくとも一方を補正する第４処理とを含む。
【０１２３】
このようにすれば、同一電子機器に含まれる姿勢特定のためのセンサとカメラとに関する時刻誤差及び姿勢誤差を、効率よく減らすことができる。具体的には、時刻誤差を減らさなければ、姿勢誤差を正しく特定できず、姿勢誤差を減らさなければ、時刻誤差を正しく特定できないという課題を解決しやすくする。つまり、一方のみに着目して誤差を減らすよりも、両誤差に対する補正を施すことによって相互に補正の精度を高めることができ、調整が早く済むという面がある。
【０１２４】
更に、上記第１処理において、重力方向を基準として回転パラメータを算出するようにしてもよい。
【０１２５】
このようにすれば、カメラの姿勢とセンサの姿勢との関係を、より正しく捉えやすい。
【０１２６】
更に、上記第１処理乃至上記第４処理を繰り返す処理を含むようにしてもよい。
【０１２７】
このようにすれば、時刻誤差と姿勢誤差とを、より小さくできる。
【０１２８】
更に、所定の基準に従って回転パラメータ及び差分時間が収束したか否かを判定する処理を含み、回転パラメータ及び差分時間が収束したと判定した場合に、上記第１処理乃至上記第４処理を終えるようにしてもよい。
【０１２９】
このようにすれば、効果の少ない処理を省くことができる。
【０１３０】
なお、上記処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１３１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１３２】
（付記１）
カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、
前記カメラによる撮影を繰り返し行う処理と、
撮影された画像に基づいて、前記カメラの姿勢を推定する処理と、
前記センサによる前記パラメータの計測を繰り返し行う処理と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する処理と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１処理と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第４処理と、
を含み、前記電子機器のプロセッサにより実行される補正方法。
【０１３３】
（付記２）
前記第１処理において、重力方向を基準として前記回転パラメータを算出する
付記１記載の補正方法。
【０１３４】
（付記３）
更に、
前記第１処理乃至前記第４処理を繰り返す処理
を含む付記１又は２記載の補正方法。
【０１３５】
（付記４）
更に、
所定の基準に従って前記回転パラメータ及び前記差分時間が収束したか否かを判定する処理
を含み、
前記回転パラメータ及び前記差分時間が収束したと判定した場合に、前記第１処理乃至前記第４処理を終える
付記３記載の補正方法。
【０１３６】
（付記５）
カメラと、当該カメラの撮影時刻を特定するための第１クロックと、自らの姿勢を特定するためのパラメータを計測するセンサと、当該センサの計測時刻を特定するための第２クロックとを有する電子機器において、
前記カメラによる撮影を繰り返し行う処理と、
撮影された画像に基づいて、前記カメラの姿勢を推定する処理と、
前記センサによる前記パラメータの計測を繰り返し行う処理と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する処理と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１処理と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第２処理と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第３処理と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第４処理と、
を前記電子機器のプロセッサに実行させるプログラム。
【０１３７】
（付記６）
カメラと、
当該カメラの撮影時刻を特定するための第１クロックと、
自らの姿勢を特定するためのパラメータを計測するセンサと、
当該センサの計測時刻を特定するための第２クロックと、
前記カメラによる撮影を繰り返し行う撮影部と、
撮影された画像に基づいて、前記カメラの姿勢を推定する推定部と、
前記センサによる前記パラメータの計測を繰り返し行う計測部と、
計測された前記パラメータに基づいて、前記センサの姿勢を特定する特定部と、
前記センサの姿勢が安定している第１計測時刻帯における前記センサの姿勢と、当該第１計測時刻帯と一致する第１撮影時刻帯における前記カメラの姿勢とに基づいて、前記カメラの姿勢と前記センサの姿勢との差を表す回転パラメータを算出する第１算出部と、
前記回転パラメータに基づいて、前記カメラの姿勢を示すデータと前記センサの姿勢を示すデータとのうち少なくとも一方を補正する第１補正部と、
前記センサの姿勢が変化している第２計測時刻帯における前記センサの姿勢と、当該第２計測時刻帯と一致する第２撮影時刻帯における前記カメラの姿勢とに基づいて、前記第１クロックによって計られる第１時刻と前記第２クロックによって計られる第２時刻との差分時間を算出する第２算出部と、
前記差分時間に基づいて、前記撮影時刻と前記計測時刻とのうち少なくとも一方を補正する第２補正部と
を有する電子機器。
【符号の説明】
【０１３８】
１０１  携帯装置    １０３  ＣＰＵ
１０５  記憶回路    １０７  カメラ
１０９  カメラ制御回路    １１１  第１リアルタイムクロック
１１３  慣性センサ    １１５  センサ制御回路
１１７  第２リアルタイムクロック    １１９  無線通信制御回路
１２１  無線通信用アンテナ    １２３  スピーカ制御回路
１２５  スピーカ    １２７  マイク制御回路
１２９  マイク    １３１  ＬＣＤ制御回路
１３３  ＬＣＤ    １３５  タッチセンサ
１３７  キー群    ３０１  マーカー
６０１  枠    ８０１  制御部
８０３  撮影部    ８０５  姿勢推定部
８０７  計測部    ８０９  姿勢特定部
８１１  第１期間特定部    ８１３  第１算出部
８１５  第２期間特定部    ８１７  第２算出部
８１９  判定部    ８２１  出力部
８２３  第１補正部    ８２５  第２補正部
８３１  画像記憶部    ８３３  第１姿勢記憶部
８３５  計測データ記憶部    ８３７  第２姿勢記憶部
８３９  第１分布記憶部    ８４１  第２分布記憶部
８４３  回転行列記憶部    ８４５  差分時間記憶部
８４７  一時変数記憶部
【図１】
2017073753.tif 000003
【図２】
2017073753.tif 000004
【図３】
2017073753.tif 000005
【図４】
2017073753.tif 000006
【図５】
2017073753.tif 000007
【図６】
2017073753.tif 000008
【図７】
2017073753.tif 000009
【図８】
2017073753.tif 000010
【図９】
2017073753.tif 000011
【図１０】
2017073753.tif 000012
【図１１】
2017073753.tif 000013
【図１２】
2017073753.tif 000014
【図１３】
2017073753.tif 000015
【図１４】
2017073753.tif 000016
【図１５】
2017073753.tif 000017
【図１６】
2017073753.tif 000018
【図１７】
2017073753.tif 000019
【図１８】
2017073753.tif 000020
【図１９】
2017073753.tif 000021
【図２０】
2017073753.tif 000022
【図２１】
2017073753.tif 000023