(57)【要約】【課題】人の動きに伴うプロジェクタ装置の移動量を精度よく推定する。【解決手段】プロジェクタ１は、プロジェクタ１の移動に伴って発生する加速度を検知する加速度センサ１０から取得した加速度に基づいて、回転運動の回転軸の位置を推定し、プロジェクタ１の移動に伴う回転量を検知するジャイロセンサ１１から取得した回転量および推定した回転軸の位置に基づいて、プロジェクタ１の移動量を推定する。【選択図】図３
2017151327.tif 000002
【特許請求の範囲】
【請求項１】
操作者が携帯するプロジェクタ装置であって、
前記プロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した前記加速度に基づいて、回転運動の回転軸の位置を推定する第１の推定部と、
前記プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した前記回転量および推定した前記回転軸の位置に基づいて、前記プロジェクタ装置の移動量を推定する第２の推定部と、
を含むプロジェクタ装置。
【請求項２】
前記第１の推定部は、前記プロジェクタ装置を移動させる前記操作者の関節部分を、前記回転軸の位置として推定する
請求項１記載のプロジェクタ装置。
【請求項３】
前記第１の推定部は、前記加速度の大きさを用い、前記加速度の大きさの所定期間内の変化回数に基づいて、前記回転軸の位置を推定する
請求項２記載のプロジェクタ装置。
【請求項４】
前記第１の推定部は、前記加速度の大きさが所定値以下から前記所定値より大きくなるように変化した前記所定期間内の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肘であると推定し、前記変化回数が前記第２の閾値より大きい場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の手首であると推定する
請求項３記載のプロジェクタ装置。
【請求項５】
前記第１の推定部は、前記加速度の大きさが第１の加速度閾値以下から前記第１の加速度閾値より大きくなるように変化する前記所定期間内の第１の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記第１の変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下である場合、前記第１の加速度閾値より大きい第２の加速度閾値以下から前記第２の加速度閾値より大きくなるように変化する前記所定期間内の第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩又は肘であると推定し、前記第１の変化回数が前記第２の閾値より大きい場合、前記第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩、肘及び手首の何れかであると推定する
請求項３記載のプロジェクタ装置。
【請求項６】
前記第２の推定部は、前記加速度の大きさの取得期間が前記所定期間未満の場合、前記所定期間に達するまでに取得した前記加速度の履歴を用いることなく前記プロジェクタ装置の移動量を推定し、
前記第１の推定部は、前記加速度の大きさの取得期間が前記所定期間以上になった場合に、前記所定期間に取得した前記加速度の大きさの各々を用いて、前記回転軸の位置を推定する
請求項３〜請求項５の何れか１項に記載のプロジェクタ装置。
【請求項７】
推定された前記プロジェクタ装置の移動量に基づき、投影面に対する前記プロジェクタ装置の移動前後におけるコンテンツの表示位置の変動を抑制するようにコンテンツを投影面に投影する投影部を含む
請求項１〜請求項６の何れか１項に記載のプロジェクタ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、プロジェクタ装置に関する。
【背景技術】
【０００２】
近年、手軽に持ち運べ、かつ、スマートフォン又はタブレット端末より大きな画像サイズで壁等に情報を表示することができる携帯型の映像投影端末であるモバイルプロジェクタの利用が広がりつつある。
【０００３】
モバイルプロジェクタを使用すれば、モバイルプロジェクタのユーザは、モバイルプロジェクタの映像の投影部をユーザの周囲にある壁等に向けることで、壁に表示された映像をクライアント等に見せながらプレゼンテーション等を行うことができる。
【０００４】
例えばユーザがモバイルプロジェクタを手に持って使用している場合、モバイルプロジェクタを持ったユーザの手の位置が変化すれば、映像に含まれる文字や画像等といったコンテンツの表示位置がずれ、更に映像の表示領域の大きさが変化することがある。
【０００５】
したがって、映像の投影面に対するモバイルプロジェクタの位置及び投影角度を推定することで、モバイルプロジェクタの移動に応じて発生するコンテンツの表示位置のずれ又は歪みを補正する提案が行われている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２９３４号公報
【特許文献２】特開２００８−１７６０４２号公報
【特許文献３】特開２００５−１２２６９６号公報
【特許文献４】特開２００５−２６６４７１号公報
【非特許文献】
【０００７】
【非特許文献１】Ramesh Raskar,Paul Beardsley, Jeroen van Baar, Yao Wang, Paul Dietz, Johnny Lee, Darren Leigh, Thomas Willwacher,"RFIG Lamps:Interacting with a Self-Describing World via Photosensing Wireless Tags and Projectors", ACM Transactions on Graphics (TOG) SIGGRAPH 23(3), 406-415, 2004
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の補正方法では、加速度センサから得た加速度から算出したモバイルプロジェクタの移動速度に基づいて移動量を推定し、更に推定した移動量からコンテンツの表示位置のずれ等を補正する方法が用いられることがある。この場合、同じ加速度であっても、モバイルプロジェクタの初期速度をどのように設定するかによってモバイルプロジェクタの移動速度が変動するため、モバイルプロジェクタの実際の移動量と推定した移動量との誤差が大きくなる傾向がある。したがって、コンテンツの表示位置のずれを精度よく補正することが困難になる。
【０００９】
また、従来の他の補正方法として、モバイルプロジェクタに設置したカメラで壁等に投影された映像を撮影し、撮影した映像の変化からモバイルプロジェクタの姿勢変化を検知することで、コンテンツの表示位置のずれ等を補正する方法が用いられることがある。この場合、画像処理によってモバイルプロジェクタの移動量を推定するため、加速度を用いて移動量を算出する方法に比べて計算量が多くなり、例えば手振れのような周期の短い移動によるコンテンツの表示位置のずれを補正することが困難になる。
【００１０】
一つの側面として、開示の技術は、人の動きに伴うプロジェクタ装置の移動量を精度よく推定することを目的とする。
【課題を解決するための手段】
【００１１】
一つの態様として、プロジェクタ装置は、プロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した加速度に基づいて、回転運動の回転軸の位置を推定する第１の推定部を含む。また、プロジェクタ装置は、プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した回転量および推定した回転軸の位置に基づいて、プロジェクタ装置の移動量を推定する第２の推定部を含む。
【発明の効果】
【００１２】
一つの側面として、開示の技術は、人の動きに伴うプロジェクタ装置の移動量を精度よく推定することができる、という効果を有する。
【図面の簡単な説明】
【００１３】
【図１】プロジェクタ座標系を示す図である。
【図２】スクリーン座標系を示す図である。
【図３】第１実施形態、第２実施形態、及び第４実施形態に係るプロジェクタの構成例を示す図である。
【図４】初期姿勢を説明する図である。
【図５】プロジェクタの位置の推定過程を説明する模式図である。
【図６】プロジェクタをコンピュータで実現する場合の構成例を示す図である。
【図７】映像投影処理の流れの一例を示すフローチャートである。
【図８】回転量推定処理の流れの一例を示すフローチャートである。
【図９】回転量のデータ構造の一例を示す図である。
【図１０】回転軸推定処理の流れの一例を示すフローチャートである。
【図１１】加速度サンプル履歴のデータ構造の一例を示す図である。
【図１２】加速度ピーク履歴のデータ構造の一例を示す図である。
【図１３】移動量推定処理の流れの一例を示すフローチャートである。
【図１４】第２実施形態に係る回転軸推定処理の流れの一例を示すフローチャートである。
【図１５】第２実施形態に係る回転軸推定処理の流れの一例を示すフローチャートである。
【図１６】第３実施形態に係るプロジェクタの構成例を示す図である。
【図１７】第３実施形態に係る映像投影処理の流れの一例を示すフローチャートである。
【図１８】初期化処理１の流れの一例を示すフローチャートである。
【図１９】既存移動量推定処理の流れの一例を示すフローチャートである。
【図２０】移動量再推定処理の流れの一例を示すフローチャートである。
【図２１】第４実施形態に係る回転軸推定処理の流れの一例を示すフローチャートである。
【図２２】肘を回転させてプロジェクタを移動させる場合の状況を示す模式図である。
【図２３】手首を回転させてプロジェクタを移動させる場合の状況を示す模式図である。
【図２４】プロジェクタによる映像の投影例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下では、同じ働きを担う構成要素または処理には全図面を通して同じ符号を付与し、重複する説明を適宜省略する。
【００１５】
（第１実施形態）
まず、モバイルプロジェクタ１について説明する。図２４は、モバイルプロジェクタ１（以降、「プロジェクタ１」という）を用いて、例えば姿勢１〜姿勢３で表される様々な位置からスクリーン５に映像３を表示している様子を示す図である。
【００１６】
図２４に示すように、プロジェクタ１は携帯型の映像投影装置であり、例えば操作者が手に持ったプロジェクタ１を移動させてスクリーン５に映像３を表示する。この場合、例えば姿勢１〜姿勢３のようにそれぞれ変化する姿勢に合わせて、スクリーン５に投影される映像３の投影範囲は変化するが、プロジェクタ１は、映像３に含まれるコンテンツの表示位置が変化しないように映像３を補正し、補正した映像３を投影する。
【００１７】
なお、図２４において斜線を引いた部分は、プロジェクタ１の投影範囲外であるため、実際にはスクリーン５に表示されない領域を示している。
【００１８】
次に、図１を用いてプロジェクタ座標系を定義する。プロジェクタ座標系は、空間におけるプロジェクタ１の位置及び回転方向、並びに、ユーザの位置等を示す３次元の座標系である。
【００１９】
図１に示すプロジェクタ１は、その上面１Ｄ及び底面１Ｅが地面に対して水平に置かれると共に、映像３を投影するための投影口２を備える投影面１Ｃが、映像３の投影先であるスクリーンに対して平行に置かれている状態を示している。
【００２０】
プロジェクタ座標系は、例えば空間内の一点Ｐ0を原点として映像３の投影方向をｚ軸、重力方向をｘ軸、ｘ軸及びｚ軸を含むように形成されるｘｚ面に対して垂直な方向をｙ軸とする座標系である。なお、プロジェクタ座標系の定義は一例であり、プロジェクタ１の位置及びユーザの位置を一意に示すことができれば、図１と異なる他のプロジェクタ座標系を用いてもよい。
【００２１】
このプロジェクタ座標系において、プロジェクタ１の回転量は、例えばｚ軸を回転軸として回転する「ロール」、ｙ軸を回転軸として回転する「ピッチ」及びｘ軸を回転軸として回転する「ヨー」の角度によって表される。なお、ロール、ピッチ及びヨーをそれぞれα、β及びγで表す。
【００２２】
次に、図２を用いてスクリーン座標系を定義する。スクリーン座標系は、図１に示すように配置されたプロジェクタ１で投影されたスクリーン５上の映像３に含まれる各コンテンツの表示位置を示す２次元の座標系である。
【００２３】
映像３の形状を矩形とすれば、スクリーン座標系は、例えば映像３の左上を原点Ｑ0として、重力方向、すなわち図２における上下方向をｖ軸、ｖ軸と直交する方向である左右方向をｕ軸とする座標系で表される。なお、スクリーン座標系の定義は一例であり、映像３に含まれる各コンテンツの表示位置を一意に示すことができれば、図２と異なる他のスクリーン座標系を用いてもよい。
【００２４】
プロジェクタ１を手に持ったユーザは、スクリーン５にプロジェクタ１の投影口２を向けてスクリーン５に映像３を投影すると、投影口２からは、映像３に含まれるコンテンツを指し示すポインタ１９も投影される。したがって、ユーザはプロジェクタ１を動かすことによって、スクリーン５に投影されるポインタ１９の位置を自由に移動させ、特定のコンテンツを指し示しながら説明をすることができる。更に、ユーザはポインタ１９の移動の軌跡を表示することで、文字及び記号等を映像３に表示することができる。
【００２５】
また、プロジェクタ１は、プロジェクタ１の移動量を推定し、スクリーン５に対するコンテンツの表示位置がプロジェクタ１の移動前の表示位置と変わらないようにコンテンツの表示位置を移動量に応じて補正した上で、映像３をスクリーンに投影する。
【００２６】
図３は、実施の形態に係るプロジェクタ１の構成例を示す図である。図３に示すように、プロジェクタ１は加速度センサ１０、ジャイロセンサ１１、地磁気センサ１２、回転量推定部１３、中心推定部１４、移動量推定部１５、算出部１６、表示画面１７、補正部１８、ポインタ１９、重畳部２０及び投影部２１を含む。
【００２７】
加速度センサ１０は、例えばプロジェクタ１に内蔵され、ユーザによるプロジェクタ１の移動によって発生する加速度の大きさと方向を計測する。一例として、加速度センサ１０には、プロジェクタ座標系におけるｘｙｚ軸それぞれの軸方向の加速度を計測する３軸加速度センサが用いられる。なお、加速度センサ１０によって、ｚｙ軸を含む水平面に対するプロジェクタ１の傾きがわかるため、加速度センサ１０の値からロールα及びピッチβを得ることができる。
【００２８】
ジャイロセンサ１１は、例えばプロジェクタ１に内蔵され、ユーザによるプロジェクタ１の回転運動によって発生するプロジェクタ１の回転角速度（以降、単に「角速度」という）を、ロールα、ピッチβ及びヨーγそれぞれについて測定する。
【００２９】
地磁気センサ１２は、例えばプロジェクタ１に内蔵され、ユーザによるプロジェクタ１の回転運動によって発生する磁界の大きさを計測することで、ｚｙ軸を含む水平面におけるプロジェクタ１の角度、すなわちヨーγを計測する。
【００３０】
なお、プロジェクタ１は、加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２を必ずしも内蔵する必要はなく、外付けにしてもよい。また、プロジェクタ１に内蔵する加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２の数に制約はない。仮に加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２がそれぞれ複数ある場合には、例えばセンサ毎のセンサ値の平均を各センサにおけるセンサ値とすればよい。また、加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２をまとめて「モーションセンサ」という場合がある。
【００３１】
回転量推定部１３は、加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２と接続され、各々のセンサ値からプロジェクタ１の回転量Ｒを推定する。ここで、プロジェクタ１の回転量Ｒとは、初期姿勢に対応する予め定めた基準位置からのロールα、ピッチβ及びヨーγによって表されるプロジェクタ１の回転の程度をいう。
【００３２】
また、初期姿勢とは、プロジェクタ１で映像３をスクリーン５に投影する前にユーザが実行する予め定めた姿勢を言う。一例として本実施の形態では、図４に示すように、ユーザがプロジェクタ１を持ったまま、肩の高さで腕全体をスクリーン５に対して垂直に伸ばし、プロジェクタ１からスクリーン５までの距離が予め定めた投影距離Ｇlとなるような姿勢を初期姿勢とする。
【００３３】
プロジェクタ１には、初期姿勢における肩、肘、手首及びプロジェクタ１の各位置及び角度と、ユーザの肩から肘までの長さＳl、肘から手首までの長さＥl及び手首からプロジェクタの投影面１Ｃまでの長さＰlと、投影距離Ｇlがそれぞれ予め登録されている。したがって、ユーザが初期姿勢をとることで、ユーザの姿勢がプロジェクタ１に登録されている初期姿勢に関する値と一致し、この状態を基準にして、ユーザの体の移動に伴うプロジェクタ１の回転量Ｒ等を推定することができる。なお、初期姿勢に対応する肩、肘、手首及びプロジェクタ１の位置を、「肩、肘、手首及びプロジェクタ１の初期位置」という場合がある。
【００３４】
回転量推定部１３は、推定したプロジェクタ１の回転量Ｒを移動量推定部１５に出力する。
【００３５】
中心推定部１４は、加速度センサ１０と接続され、加速度の大きさの変化からプロジェクタ１の移動量の大きさを推定し、推定した移動量の大きさからプロジェクタ１の移動を回転運動とみなした場合の回転中心の位置、すなわち回転軸の位置を推定する。
【００３６】
具体的には、ユーザはプロジェクタ１を手に持って操作すると仮定した場合、中心推定部１４は、プロジェクタ１の回転軸の位置を肩、肘及び手首の何れかであると推定する。そして、中心推定部１４は、推定した回転軸の位置を移動量推定部１５に出力する。
【００３７】
移動量推定部１５は、プロジェクタ１の回転量Ｒ及び回転軸の位置をそれぞれ回転量推定部１３及び中心推定部１４から受け付けると、受け付けた回転軸の位置で、回転量Ｒで示される回転運動が行われたものとみなしてプロジェクタ１の位置を推定する。
【００３８】
図５は、移動量推定部１５におけるプロジェクタ１の位置の推定過程を説明する模式図である。
【００３９】
プロジェクタ座標系における現在の肩の位置をＳｓ、肘の位置をＥｓ、手首の位置をＷｓ’及びプロジェクタ１の位置をＰs’とする。また、ロールα、ピッチβ及びヨーγによって表される現在の肩の角度をＳd、肘の角度をＥd、手首の角度をＷdとする。この状況において、肘で回転量Ｒの回転運動が行われたとする。
【００４０】
この場合、肘の位置Ｅs、肘の回転量Ｒ及び肘から手首までの長さＥlに基づいて、肘の回転に伴う新たな手首の位置Ｗsを算出することができる。
【００４１】
すなわち、今度は肘の回転運動に連動して、手首で位置Ｗs’から位置Ｗsに移動する回転運動が行われたとみなすことができる。したがって、新たな手首の位置Ｗs及び手首からプロジェクタの投影面１Ｃまでの長さＰlに基づいて、手首の移動に伴う新たなプロジェクタ１の位置Ｐsを算出することができる。
【００４２】
なお、肩から肘までの長さＳlを「上腕の長さＳl」、肘から手首までの長さＥlを「前腕の長さＥl」、手首からプロジェクタの投影面１Ｃまでの長さＰlを「プロジェクタ１の長さＰl」という場合がある。
【００４３】
このように、移動量推定部１５は、中心推定部１４で推定された回転軸の位置における回転運動に連動して移動すると考えられる各関節部分の移動量を順次推定することで、プロジェクタ１の位置Ｐsを推定する。すなわち、プロジェクタ１の位置Ｐsを推定することは、プロジェクタ１の移動量を推定することに他ならない。
【００４４】
算出部１６は、回転量推定部１３からのプロジェクタ１の回転量Ｒ及び移動量推定部１５からのプロジェクタ１の位置Ｐsを入力として、プロジェクタ１の移動に伴いスクリーン５上に投影される映像３の変形量をホモグラフィ行列Ｈとして算出する。なお、ホモグラフィ行列は、スクリーン座標系における射影変換に用いられる行列である。なお、ホモグラフィ行列の算出方法については後ほど説明する。そして、算出部１６は、プロジェクタ１の移動に伴う映像３の変形量を表すホモグラフィ行列Ｈを補正部１８に出力する。
【００４５】
補正部１８は、スクリーン５に投影する映像３に含まれる表示画面１７の各画素のスクリーン座標を、ホモグラフィ行列Ｈを用いて射影変換し、コンテンツの表示位置がプロジェクタ１の移動前の表示位置と変わらない表示画面１７を生成する。なお、補正部１８による表示画面１７の各画素の補正方法については後ほど説明する。補正部１８は、プロジェクタ１の移動に応じてコンテンツの表示位置を補正した表示画面１７を重畳部２０に出力する。
【００４６】
重畳部２０は、補正部１８から受け付けた補正済みの表示画面１７の中央に、予めプロジェクタ１のメモリ等に記憶されているポインタ１９の画像を重畳することで、補正済みの表示画面１７にポインタ１９を付加する。そして、重畳部２０はポインタ１９が付加された補正済みの表示画面１７を投影部２１に出力する。
【００４７】
投影部２１は、ポインタ１９が付加された補正済みの表示画面１７を重畳部２０から受け付けると、投影デバイスを制御して当該表示画面１７を含む映像３を投影する。なお、プロジェクタ１における映像３の投影方式に制限はなく、例えば透過型液晶方式又は反射型液晶方式等が用いられる。投影部２１は、推定されたプロジェクタ１の移動量に基づき、スクリーン５に対するプロジェクタ１の移動前後におけるコンテンツの表示位置の変動を抑制するようにコンテンツをスクリーン５に投影する。
【００４８】
図３に示したプロジェクタ１は、図６に示すようにコンピュータ１００で実現可能である。
【００４９】
コンピュータ１００は、ＣＰＵ１０２、メモリ１０４及び不揮発性の記憶部１０６を含む。ＣＰＵ１０２、メモリ１０４及び記憶部１０６は、バス１０８を介して互いに接続される。また、コンピュータ１００は、加速度センサ１０、ジャイロセンサ１１、地磁気センサ１２、投影デバイス１１２及び入力装置１１４と、コンピュータ１００と、を接続するＩ／Ｏ（Input/Output）１１０を備え、Ｉ／Ｏ１１０はバス１０８に接続される。
【００５０】
ここで、投影デバイス１１２は、光源を用いて映像３を投写レンズ経由で実際にスクリーン５に投影する部材である。
【００５１】
入力装置１１４は、例えばプロジェクタ１にユーザの指示を通知するボタン及びスイッチ等の入力デバイスを含む。更に、入力装置１１４は、例えばＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disk)又はメモリカード等の記録媒体１１６に記録されるプログラム等を読み取る読み取り装置を含む場合がある。
【００５２】
また、記憶部１０６は、フラッシュメモリまたはＨＤＤ（Hard Disk Drive）等によって実現できる。
【００５３】
なお、Ｉ／Ｏ１１０に接続されるデバイスは、加速度センサ１０、ジャイロセンサ１１、地磁気センサ１２、投影デバイス１１２及び入力装置１１４に限られない。例えば、図示しない通信装置をＩ／Ｏ１１０に接続して、インターネット経由でスクリーン５に投影する映像３のデータを取得したり、プログラム等を取得したりしてもよい。
【００５４】
記憶部１０６には、コンピュータ１００を図３に示すプロジェクタ１として機能させるための映像投影プログラム１２０が記憶される。そして、映像投影プログラム１２０は、回転量推定プロセス１２２、中心推定プロセス１２４、移動量推定プロセス１２６、算出プロセス１２８、補正プロセス１３０、重畳プロセス１３２及び投影プロセス１３４を含む。
【００５５】
ＣＰＵ１０２は、映像投影プログラム１２０を記憶部１０６から読み出してメモリ１０４に展開し、映像投影プログラム１２０に含まれる各プロセスを実行することで、コンピュータ１００を図３に示すプロジェクタ１として動作させる。
【００５６】
すなわち、ＣＰＵ１０２が回転量推定プロセス１２２を実行することで、コンピュータ１００が図３に示す回転量推定部１３として動作する。また、ＣＰＵ１０２が中心推定プロセス１２４を実行することで、コンピュータ１００が図３に示す中心推定部１４として動作する。また、ＣＰＵ１０２が移動量推定プロセス１２６を実行することで、コンピュータ１００が図３に示す移動量推定部１５として動作する。また、ＣＰＵ１０２が算出プロセス１２８を実行することで、コンピュータ１００が図３に示す算出部１６として動作する。また、ＣＰＵ１０２が補正プロセス１３０を実行することで、コンピュータ１００が図３に示す補正部１８として動作する。また、ＣＰＵ１０２が重畳プロセス１３２を実行することで、コンピュータ１００が図３に示す重畳部２０として動作する。また、ＣＰＵ１０２が投影プロセス１３４を実行することで、コンピュータ１００が図３に示す投影部２１として動作する。
【００５７】
なお、コンピュータ１００は、例えば半導体集積回路、より詳しくはＡＳＩＣ(Application Specific Integrated Circuit)等で実現することも可能である。
【００５８】
また、本実施形態に係るコンピュータ１００のＣＰＵ１０２には日時を管理するカレンダ機能が含まれる。映像投影プログラム１２０は、予め定めたＡＰＩ（Application Programming Interface）を用いることで、日時情報（以降、「タイムスタンプ」という）をＣＰＵ１０２から取得することができる。
【００５９】
なお、上述したプロジェクタ１におけるタイムスタンプの取得方法は一例であり、例えば、プロジェクタ１は、Ｉ／Ｏ１１０に接続された図示しない通信装置を介して、インターネット上のタイムサーバからタイムスタンプを取得してもよい。また、プロジェクタ１は、ＧＰＳ(Global Positioning System)からタイムスタンプを取得してもよい。
【００６０】
次に、第１実施形態に係るプロジェクタ１の作用について説明する。プロジェクタ１は、例えばユーザが入力装置１１４の一例であるボタンを押下することで通知される、プロジェクタ１に映像３の投影を開始する指示（以降、「投影開始指示」という）を受け付けた場合に、図７に示す映像投影処理を実行する。
【００６１】
なお、ユーザは予め初期姿勢をとった上で、映像投影処理を開始するものとする。また、プロジェクタ１は既に所定期間Ｔp以上に亘って加速度の大きさを加速度センサ１０から取得しているものとする。
【００６２】
まず、ステップＳ１０において、算出部１６は、映像投影処理の終了を指示する終了指示を受け付けたか否かを判定する。終了指示は、例えばユーザが終了指示に対応するボタンを押下することで算出部１６に通知される。
【００６３】
ステップＳ１０の判定処理が肯定判定、すなわち、終了指示を受け付けた場合には、図７に示す映像投影処理を終了する。一方、否定判定の場合、すなわち、終了指示を受け付けていない場合にはステップＳ２０に移行する。
【００６４】
ステップＳ２０において、回転量推定部１３は、回転量Ｒのリセット、すなわち回転量Ｒに初期化を設定する回転量リセット指示を受け付けたか否かを判定する。回転量リセット指示は、例えばユーザが回転量リセット指示に対応するボタンを押下することで回転量推定部１３に通知される。なお、回転量リセット指示は、ユーザが初期姿勢をとったことをプロジェクタ１に通知するための指示である。
【００６５】
ステップＳ２０の判定処理が肯定判定の場合、すなわち、回転量推定部１３が回転量リセット指示を受け付けた場合には、ステップＳ１００に移行する。そして、ステップＳ１００において、回転量推定部１３は、プロジェクタ１の回転量Ｒを“０”に初期化すると共に、肩の角度Ｓd、肘の角度Ｅd及び手首の角度Ｗdの各々に、初期姿勢に対応する角度を設定する。その後、ステップＳ１０に処理を戻し、算出部１６で終了指示を受信するまで映像投影処理を繰り返す。
【００６６】
一方、ステップＳ２０の判定処理が否定判定の場合、すなわち、終了指示も回転量リセット指示も受け付けていない場合には、ステップＳ３０に移行する。
【００６７】
ステップＳ３０において、回転量推定部１３は、プロジェクタ１の回転量Ｒを推定する回転量推定処理を実行する。
【００６８】
図８は、図７におけるステップＳ３０の回転量推定処理の流れの一例を示すフローチャートである。
【００６９】
まず、ステップＳ３０２において、回転量推定部１３は、ロールα、ピッチβ及びヨーγ方向の角速度をジャイロセンサ１１から取得する。そして、回転量推定部１３は、ジャイロセンサ１１から取得した各角速度と、当該各角速度を取得した場合のタイムスタンプとを対応付けて、例えばメモリ１０４の予め定めた領域に時系列に沿って記憶する。なお、既に説明したように、タイムスタンプはＣＰＵ１０２から取得できる。
【００７０】
次に、回転量推定部１３は、前回のステップＳ３０２で角速度を取得したタイムスタンプをメモリ１０４から読み出し、当該タイムスタンプから今回のステップＳ３０２で角速度を取得した場合のタイムスタンプまでの経過時間を算出する。そして、回転量推定部１３は、今回取得した各角速度に、算出した経過時間を乗じて、前回の角速度取得時を基準としたプロジェクタ１の区間回転量Ｒ１を算出する。
【００７１】
ステップＳ３０４において、回転量推定部１３は、例えばメモリ１０４の予め定めた領域に記憶されているプロジェクタ１のこれまでの回転量Ｒを取得する。そして、回転量推定部１３は、取得したプロジェクタ１の回転量Ｒに、ステップＳ３０２で算出した区間回転量Ｒ１を加算して、プロジェクタ１の回転量Ｒを更新する。
【００７２】
なお、プロジェクタ１が回転量リセット指示を受け付けた直後は、図７のステップＳ１００で説明したように、プロジェクタ１の回転量Ｒが“０”に設定されている。したがって、プロジェクタ１の回転量Ｒは、ユーザが初期姿勢をとった場合のプロジェクタ１の向きを基準とした回転量を表す。
【００７３】
ステップＳ３０６において、回転量推定部１３は、加速度センサ１０及び地磁気センサ１２からそれぞれ加速度ベクトル及び地磁気値を取得する。既に説明したように、加速度ベクトルからはプロジェクタ１の回転に伴うロールα及びピッチβが得られ、地磁気値からはヨーγが得られる。すなわち、ジャイロセンサ１１から取得した回転量Ｒの他に、加速度センサ１０及び地磁気センサ１２からもプロジェクタ１の回転量Ｒを取得できる。
【００７４】
したがって、回転量推定部１３は、ジャイロセンサ１１から算出したプロジェクタ１の回転量Ｒを示すロールα及びピッチβを、加速度センサ１０から取得したロールα及びピッチβでそれぞれ補正する。また、回転量推定部１３は、ジャイロセンサ１１から算出したプロジェクタ１の回転量Ｒを示すヨーγを、地磁気センサ１２から取得したヨーγで補正する。
【００７５】
具体的には、回転量推定部１３は、取得した２つの回転量Ｒに対して、例えば公知の技術であるカルマンフィルタを適用することで、ジャイロセンサ１１から算出したプロジェクタ１の回転量Ｒを補正すればよい。
【００７６】
回転量推定部１３は、補正したプロジェクタ１の回転量Ｒを、図９に示すようにロールα、ピッチβ及びヨーγ毎にメモリ１０４の予め定めた領域に記憶する。
【００７７】
以上の回転量推定処理によって、回転量推定部１３は、プロジェクタ１の移動に伴うプロジェクタ１の回転量Ｒを推定する。
【００７８】
引き続き、図７の映像投影処理の説明を行う。
【００７９】
図７のステップＳ４０において、中心推定部１４は、加速度センサ１０から加速度の大きさを取得し、加速度の大きさにおける変化の頻度に基づいて、プロジェクタ１の移動量の大きさの度合いを判定する。そして、中心推定部１４は、判定した移動量の大きさの度合いに応じて、プロジェクタ１の移動を回転運動とみなした場合の回転運動における回転軸の位置を推定する。
【００８０】
図１０は、図７におけるステップＳ４０の回転軸推定処理の流れの一例を示すフローチャートである。
【００８１】
まず、ステップＳ４０２において、中心推定部１４は、加速度センサ１０から加速度を取得する。なお、加速度は大きさと方向を持ったベクトル値として表されるが、以降では、単に「加速度」という場合は加速度の大きさを表し、加速度の大きさと方向を考慮する場合には、「加速度ベクトル」と表すことにする。
【００８２】
ステップＳ４０４において、中心推定部１４は、ステップＳ４０２で取得した加速度を、例えばメモリ１０４の予め定めた領域に記憶される加速度サンプル履歴３０に追加する。
【００８３】
図１１は、加速度サンプル履歴３０のデータ構造の一例を示す図である。加速度サンプル履歴３０は、例えばＮ個（Ｎは自然数）の加速度を記憶するリングバッファであり、最も古い加速度から順次上書き更新することで、加速度が時系列に沿って記憶される。インデックス３２は、加速度サンプル履歴３０において最も新しく追加された加速度を記憶しているバッファの位置を示す。なお、各加速度に、加速度を加速度センサ１０から取得した際のタイムスタンプを対応付けて加速度サンプル履歴３０に記憶するようにしてもよい。
【００８４】
中心推定部１４は、ステップＳ４０２で取得した加速度を加速度サンプル履歴３０に追加する場合、インデックス３２で示されるバッファの次のバッファ、すなわち、加速度サンプル履歴３０の先頭バッファに、取得した加速度を追加する。そして、中心推定部１４は、インデックス３２が加速度を追加した先頭バッファを指し示すように、インデックス３２の位置を更新する。
【００８５】
ステップＳ４０６において、中心推定部１４は、加速度サンプル履歴３０を参照して、最新の平均加速度Ａnowを算出する。具体的には、中心推定部１４は、インデックス３２で指し示されるバッファに記憶される加速度、すなわち、最新の加速度から加速度サンプル履歴３０に新しく記憶された順にＮs個の加速度を選択し、当該Ｎs個の加速度の平均値を算出する。今、バッファＮｏが“Ｎ”で表されるバッファに記憶された加速度ａN（Ｎは自然数）を最新の加速度とすれば、平均加速度Ａnowは（１）式で算出される。
【００８６】
【数１】
2017151327.tif 000003
【００８７】
このように、直近のＮs個の加速度の平均値を最新の平均加速度Ａnowとすることで、ステップＳ４０２で取得した加速度をそのまま最新の加速度とする場合に比べて、加速度に含まれるノイズ成分を低減することができる。
【００８８】
ステップＳ４０８において、中心推定部１４は、ステップＳ４０６で前回算出した平均加速度Ａprev（以降、「直前の平均加速度Ａprev」という）を、例えばメモリ１０４の予め定めた領域から取得する。なお、図７の映像投影処理を開始する際に、直前の平均加速度Ａprevは予め定めた初期値、例えば“０”に初期化される。したがって、最初のステップＳ４０８の実行時には、直前の平均加速度Ａprevは“０”となる。
【００８９】
ステップＳ４１０において、中心推定部１４は、直前の平均加速度Ａprevが予め定めた加速度閾値Ａ以下で、かつ、平均加速度Ａnowが加速度閾値Ａより大きいか否かを判定する。なお、加速度閾値Ａの設定値に制限はないが、単なる手振れ等ではなく、ユーザが意識的にプロジェクタ１を動かした場合に加速度センサ１０で検知される程度の加速度の値に設定することが好ましい。
【００９０】
ステップＳ４１０の判定処理が肯定判定の場合、すなわち、ユーザがプロジェクタ１を移動させていないとみなせる状態から移動させ始めたと判定できる場合は、ステップＳ４１２に移行する。
【００９１】
ステップＳ４１２において、中心推定部１４は、現在のタイムスタンプをＣＰＵ１０２から取得して、例えばメモリ１０４の予め定めた領域に記憶される加速度ピーク履歴３４に追加する。
【００９２】
図１２は、加速度ピーク履歴３４のデータ構造の一例を示す図である。加速度ピーク履歴３４は、例えばＭ個（Ｍは自然数）のタイムスタンプを記憶するリングバッファであり、最も古いタイムスタンプから順次上書き更新することで、タイムスタンプが時系列に沿って記憶される。インデックス３６は、加速度ピーク履歴３４において最も新しく追加されたタイムスタンプを記憶しているバッファの位置を示す。
【００９３】
中心推定部１４は、ＣＰＵ１０２から取得したタイムスタンプを加速度ピーク履歴３４に追加する場合、インデックス３６で示されるバッファの次のバッファ、すなわち、加速度ピーク履歴３４の先頭バッファに、取得したタイムスタンプを追加する。そして、中心推定部１４は、インデックス３６がタイムスタンプを追加した先頭バッファを指し示すように、インデックス３６の位置を更新する。
【００９４】
すなわち、加速度ピーク履歴３４には、ユーザがプロジェクタ１を移動させた際のタイムスタンプが時系列に沿って記憶される。
【００９５】
一方、ステップＳ４１０の判定処理が否定判定の場合、すなわち、ユーザがプロジェクタ１を移動させていないと判定できる場合は、ステップＳ４１２の処理を実行せずにステップＳ４１４に移行する。
【００９６】
ステップＳ４１４において、中心推定部１４は、直前の平均加速度ＡprevをステップＳ４０６で算出した平均加速度Ａnowに置き換えた上で、更新した平均加速度Ａprevをメモリ１０４の予め定めた領域に記憶する。これにより、ステップＳ４０２で加速度センサ１０から加速度を取得する毎に、直前の平均加速度Ａprevが更新される。
【００９７】
ステップＳ４１６において、中心推定部１４は、現在のタイムスタンプをＣＰＵ１０２から取得して、現在のタイムスタンプから所定期間Ｔpだけ遡った期間に含まれるプロジェクタ１の移動回数を取得する。具体的には、中心推定部１４は、加速度ピーク履歴３４に含まれるタイムスタンプのうち、現在のタイムスタンプから所定期間Ｔpだけ遡った期間に含まれるタイムスタンプの数を、所定期間Ｔpにおけるプロジェクタ１の移動回数Ｐn（ｎは自然数）として取得する。
【００９８】
ステップＳ４１８において、中心推定部１４は、ステップＳ４１６で取得したプロジェクタ１の移動回数Ｐnが予め定めた回数閾値Ｐ1より大きいか否かを判定する。当該判定が否定判定、すなわち、プロジェクタ１の移動回数Ｐnが回数閾値Ｐ1以下の場合には、ステップＳ４２６に移行する。
【００９９】
所定期間Ｔpにおけるプロジェクタ１の移動回数Ｐnが回数閾値Ｐ1以下であるということは、移動方向の切り替えが低頻度であることを示している。すなわち、プロジェクタ１の移動量は、プロジェクタ１の移動回数Ｐnが回数閾値Ｐ1より大きくなる場合の移動量に比べて大きいと考えることができる。
【０１００】
ユーザがプロジェクタ１を手に持って移動させる場合の回転運動に関与する関節には、手首、肘及び肩が考えられる。これらの関節部分のうち、プロジェクタ１をより大きく移動させるためには、肩を動かす必要がある。
【０１０１】
したがって、ステップＳ４２６において、中心推定部１４は、プロジェクタ１の移動に対応する回転軸の位置は肩であると推定する。
【０１０２】
一方、ステップＳ４１８の判定処理が肯定判定の場合には、ステップＳ４２０に移行する。
【０１０３】
ステップＳ４２０において、中心推定部１４は、ステップＳ４１６で取得したプロジェクタ１の移動回数Ｐnが、回数閾値Ｐ1より大きい値である予め定めた回数閾値Ｐ2より大きいか否かを判定する。当該判定が否定判定、すなわち、プロジェクタ１の移動回数Ｐnが回数閾値Ｐ2以下の場合には、ステップＳ４２４に移行する。
【０１０４】
所定期間Ｔpにおけるプロジェクタ１の移動回数Ｐnが回数閾値Ｐ1より大きく回数閾値Ｐ2以下であるということは、移動方向の切り替えが中頻度であることを示している。すなわち、プロジェクタ１の移動量は、プロジェクタ１の移動回数Ｐnが回数閾値Ｐ1以下となる場合の移動量と比べると小さいが、回数閾値Ｐ2より大きくなる場合の移動量に比べれば大きいと考えることができる。
【０１０５】
手首、肘及び肩のうち、肘を動かしてプロジェクタ１を移動させる場合の移動範囲は、肩を動かしてプロジェクタ１を移動させる場合の移動範囲より狭くなり、かつ、手首を動かしてプロジェクタ１を移動させる場合の移動範囲より広くなる。
【０１０６】
したがって、ステップＳ４２４において、中心推定部１４は、プロジェクタ１の移動に対応する回転軸の位置は肘であると推定する。
【０１０７】
一方、ステップＳ４２０の判定処理が肯定判定の場合には、ステップＳ４２２に移行する。
【０１０８】
所定期間Ｔpにおけるプロジェクタ１の移動回数Ｐnが回数閾値Ｐ2より大きいということは、移動方向の切り替えが高頻度に行われているということを示している。すなわち、プロジェクタ１の移動量は、プロジェクタ１の移動回数Ｐnが回数閾値Ｐ2以下である場合の移動量に比べて小さいと考えることができる。
【０１０９】
したがって、ステップＳ４２２において、中心推定部１４は、プロジェクタ１の移動に対応する回転軸の位置は手首であると推定する。
【０１１０】
なお、中心推定部１４は、推定した回転軸の位置情報を、例えばメモリ１０４の予め定めた領域に記憶する。
【０１１１】
以上の回転軸推定処理によって、中心推定部１４は、プロジェクタ１の移動に対応する回転軸の位置を推定する。
【０１１２】
引き続き、図７の映像投影処理の説明を行う。
【０１１３】
図７のステップＳ５０において、移動量推定部１５は、ステップＳ３０で推定したプロジェクタ１の回転量Ｒと、ステップＳ４０で推定したプロジェクタ１の移動に伴う回転軸の位置とを用いて、プロジェクタ１の位置を推定する。
【０１１４】
図１３は、図７におけるステップＳ５０の移動量推定処理の流れの一例を示すフローチャートである。
【０１１５】
まず、ステップＳ５０２において、移動量推定部１５は、図７のステップＳ４０で中心推定部１４が推定したプロジェクタ１の移動に対応する回転軸の位置を、メモリ１０４から取得する。
【０１１６】
ステップＳ５０４において、移動量推定部１５は、図７のステップＳ３０で回転量推定部１３が推定したプロジェクタ１の回転量Ｒを、メモリ１０４から取得する。
【０１１７】
ステップＳ５０６において、移動量推定部１５は、ステップＳ５０２で取得した回転軸の位置が手首か否かを判定し、肯定判定の場合にはステップＳ５１４に移行する。
【０１１８】
この場合、プロジェクタ１の回転量Ｒは手首の回転運動によって生じたとみなすことができるため、ステップＳ５１４において、移動量推定部１５は、回転量Ｒを表すロールα、ピッチβ及びヨーγで手首の角度Ｗdを更新する。そして、後ほど説明するステップＳ５２０に移行する。
【０１１９】
一方、ステップＳ５０６の判定処理が否定判定の場合には、ステップＳ５０８に移行する。
【０１２０】
ステップＳ５０８において、移動量推定部１５は、ステップＳ５０２で取得した回転軸の位置が肘か否かを判定し、肯定判定の場合にはステップＳ５１２に移行する。
【０１２１】
この場合、プロジェクタ１の回転量Ｒは肘の回転運動によって生じたとみなすことができるため、ステップＳ５１２において移動量推定部１５は、回転量Ｒを表すロールα、ピッチβ及びヨーγで肘の角度Ｅdを更新する。そして、後ほど説明するステップＳ５１８に移行する。
【０１２２】
一方、ステップＳ５０８の判定処理が否定判定の場合には、ステップＳ５１０に移行する。
【０１２３】
この場合、プロジェクタ１の回転軸の位置が手首でも肘でもないことから、プロジェクタ１の回転量Ｒは、肩の回転運動によって生じたとみなすことができる。したがって、ステップＳ５１０において、移動量推定部１５は、回転量Ｒを表すロールα、ピッチβ及びヨーγで肩の角度Ｓdを更新する。
【０１２４】
ステップＳ５１６において、移動量推定部１５は、ステップＳ５１０で更新した肩の角度Ｓd、肩の位置Ｓs及び肘の初期位置Ｅs0に基づいて、肩を回転量Ｒだけ回転した場合の肘の位置Ｅsを推定する。
【０１２５】
具体的には、移動量推定部１５は、ステップＳ５１０で更新した肩の角度Ｓdを用いて、肩の角度Ｓdに対応する回転行列Ｒ0を算出する。回転行列Ｒ0は、（２）式で算出される。
【０１２６】
【数２】
2017151327.tif 000004
【０１２７】
ここで、αは肩の角度Ｓdのロール値、βは肩の角度Ｓdのピッチ値、γは肩の角度Ｓdのヨー値を表す。
【０１２８】
そして、移動量推定部１５は、肩の位置Ｓsと初期姿勢における肘の初期位置Ｅs0を用いて、プロジェクタ１を移動した場合の肩の角度Ｓdに対応した肘の位置Ｅsを（３）式に基づいて算出する。
【０１２９】
【数３】
2017151327.tif 000005
【０１３０】
ここで、肩の位置Ｓsは肩の初期位置Ｓs0を用いる。なお、肘の初期位置Ｅs0は、予めプロジェクタ１に登録しておいてもよいが、例えば肩の位置Ｓsと上腕の長さＳlから算出することも可能である。
【０１３１】
ステップＳ５１８において、移動量推定部１５は、肘の角度Ｅd、肘の位置Ｅs及び手首の初期位置Ｗs0に基づいて、手首の位置Ｗsを推定する。
【０１３２】
具体的には、移動量推定部１５は、（２）式に基づいて肘の角度Ｅdに対応する回転行列Ｒ0を算出する。なお、この場合の（２）式におけるαは肘の角度Ｅdのロール値、βは肘の角度Ｅdのピッチ値、γは肘の角度Ｅdのヨー値を表す。
【０１３３】
そして、移動量推定部１５は、肘の位置Ｅsと初期姿勢における手首の初期位置Ｗs0を用いて、肘の角度Ｅdに対応した手首の位置Ｗsを（４）式に基づいて算出する。
【０１３４】
【数４】
2017151327.tif 000006
【０１３５】
なお、手首の初期位置Ｗs0は、予めプロジェクタ１に登録しておいてもよいが、例えば肘の初期位置Ｅs0と前腕の長さＥlから算出することも可能である。
【０１３６】
ステップＳ５２０において、移動量推定部１５は、手首の角度Ｗd、手首の位置Ｗs及びプロジェクタ１の初期位置Ｐs0に基づいて、プロジェクタ１の位置Ｐsを推定する。
【０１３７】
具体的には、移動量推定部１５は、（２）式に基づいて手首の角度Ｗdに対応する回転行列Ｒ0を算出する。なお、この場合の（２）式におけるαは手首の角度Ｗdのロール値、βは手首の角度Ｗdのピッチ値、γは手首の角度Ｗdのヨー値を表す。
【０１３８】
そして、移動量推定部１５は、手首の位置Ｗsと初期姿勢におけるプロジェクタ１の初期位置Ｐs0を用いて、手首の角度Ｗdに対応したプロジェクタ１の位置Ｐsを（５）式に基づいて算出する。
【０１３９】
【数５】
2017151327.tif 000007
【０１４０】
なお、プロジェクタ１の初期位置Ｐs0は、予めプロジェクタ１に登録しておいてもよいが、例えば手首の初期位置Ｗs0とプロジェクタ１の長さＰlから算出することも可能である。移動量推定部１５は、算出したプロジェクタ１の位置Ｐsを、例えばメモリ１０４の予め定めた領域に記憶する。
【０１４１】
すなわち、回転軸の位置が肩である場合、移動量推定部１５は、肩の角度Ｓdに応じた肘の位置ＥsをステップＳ５１６で推定し、推定した肘の位置Ｅsに応じた手首の位置ＷsをステップＳ５１８で推定する。更に、移動量推定部１５は、推定した手首の位置Ｗsに応じたプロジェクタ１の位置ＰsをステップＳ５２０で推定する。
【０１４２】
また、回転軸の位置が肘である場合、移動量推定部１５は、肘の角度Ｅdに応じた手首の位置ＷsをステップＳ５１８で推定し、推定した手首の位置Ｗsに応じたプロジェクタ１の位置ＰsをステップＳ５２０で推定する。
【０１４３】
更に、回転軸の位置が手首である場合、移動量推定部１５は、手首の角度Ｗdに応じたプロジェクタ１の位置ＰsをステップＳ５２０で推定する。
【０１４４】
以上の移動量推定処理によって、移動量推定部１５は、中心推定部１４で推定された回転軸の位置に応じて、プロジェクタ１の位置Ｐsを推定する。
【０１４５】
引き続き、図７の映像投影処理の説明を行う。
【０１４６】
図７のステップＳ６０において、算出部１６は、ステップＳ３０で推定したプロジェクタ１の回転量Ｒと、ステップＳ５０で推定したプロジェクタ１の位置Ｐsと、プロジェクタ１の初期位置Ｐs0を用いて、ホモグラフィ行列Ｈを算出する。
【０１４７】
具体的には、算出部１６は、（２）式に基づいてプロジェクタ１の回転量Ｒに対応する回転行列Ｒ0を算出する。説明の便宜上、以降ではプロジェクタ１の回転量Ｒに対応する回転行列Ｒ0を「回転行列Ｒp」で表すことにする。なお、この場合の（２）式におけるαは回転量Ｒのロール値、βは回転量Ｒのピッチ値、γは回転量Ｒのヨー値を表す。
【０１４８】
次に、算出部１６は、スクリーン座標系に対するプロジェクタ座標系の回転行列Ｒpsを（６）式に基づいて算出する。
【０１４９】
【数６】
2017151327.tif 000008
【０１５０】
ここで、Ｒps0はスクリーン５に対するプロジェクタ１の初期姿勢を規定する行列である。
【０１５１】
そして、算出部１６は、スクリーン座標系に対するプロジェクタ１の２次元座標変換行列、すなわち、ホモグラフィ行列Ｈを算出する。
【０１５２】
回転行列Ｒps、プロジェクタ座標系におけるプロジェクタ１の位置Ｐs、並びに投影デバイス１１２の内部パラメータ行列Ａp及びＡsが（７）式〜（１０）式で表される場合、ホモグラフィ行列Ｈは（１１）式で算出される。
【０１５３】
【数７】
2017151327.tif 000009
【０１５４】
ただし、fpxはプロジェクタ１のｘ軸方向における１ピクセル単位の長さとプロジェクタ座標系での１単位の長さの比を考慮したプロジェクタ１の焦点距離である。fpyはプロジェクタ１のｙ軸方向における１ピクセル単位の長さとプロジェクタ座標系での１単位の長さの比を考慮したプロジェクタ１の焦点距離である。up0及びvp0は、投影した映像３のスクリーン座標系における中心座標を表す。fsx及びfsyは、それぞれスクリーンに表示される映像３のプロジェクタ座標系におけるｘ軸方向及びｙ軸方向の１メートルあたりのピクセル数（解像度）を表す。また、us0及びvs0は、スクリーン座標系の原点Ｑ0の座標を表す。
【０１５５】
ステップＳ７０において、補正部１８は、ステップＳ６０で算出したホモグラフィ行列Ｈを用いて、プロジェクタ１の移動前後におけるスクリーン５に対する表示画面１７内のコンテンツの位置が変わらないように、表示画面１７の各画素の位置を射影変換する。
【０１５６】
具体的には、表示画面１７の各画素の位置を、直交するj軸及びk軸で表される２次元の座標系（画像座標系）で規定する。そして、表示画面１７の射影変換前における各画素の画像座標をsrc(j,k)とすれば、射影変換後における各画素の画像座標dst(j,k)は（１２）式で算出される。
【０１５７】
【数８】
2017151327.tif 000010
【０１５８】
ここで、Ｈb1b2（ｂ１、ｂ２＝１〜３）は、ホモグラフィ行列Ｈの第ｂ１行第ｂ２列の値である。
【０１５９】
ステップＳ８０において、重畳部２０は、例えばメモリ１０４の予め定めた領域に記憶されるポインタ１９の画像を取得し、ステップＳ７０で補正した表示画面１７の中央に、取得したポインタ１９の画像を重畳する。
【０１６０】
ステップＳ９０において、投影部２１は、ポインタ１９が重畳された補正後の表示画面１７を、投影デバイス１１２からスクリーン５に投影する。
【０１６１】
以上の映像投影処理によって、ユーザがプロジェクタ１を移動した場合でも、プロジェクタ１の移動量が打ち消され、スクリーン５に対するプロジェクタ１の移動前後におけるコンテンツの表示位置の変動が抑制される。また、プロジェクタ１の移動に合わせて、スクリーン５に対するポインタ１９の位置が移動するため、映像３の任意の箇所をポインタ１９で指し示すことができる。
【０１６２】
また、第１実施形態に係るプロジェクタ１は、所定期間Ｔpにおけるプロジェクタ１の加速度の変化の頻度に基づいて、プロジェクタ１の移動に関与している関節部分を回転軸の位置として推定し、関節部分の回転量からプロジェクタ１の移動量を算出する。したがって、例えばプロジェクタ１に何らかの初期速度を設定し、プロジェクタ１の加速度ベクトルを積分することでプロジェクタ１の移動量を算出する場合に比べて、プロジェクタ１の移動量を精度よく推定することができる。
【０１６３】
また、第１実施形態に係るプロジェクタ１は、プロジェクタ１の移動が関節部分の回転運動によって生じるとみなしてプロジェクタ１の移動量を推定する。したがって、ユーザの体の動きを考慮してプロジェクタ１の移動量を推定できるため、単にジャイロセンサ１１で得られるプロジェクタ１の回転量からプロジェクタ１の移動量を推定する場合と比較して、プロジェクタ１の移動量を精度よく推定することができる。
【０１６４】
また、第１実施形態に係るプロジェクタ１は、加速度閾値Ａ以下から加速度閾値Ａより大きくなるような加速度の変化を伴う場合にプロジェクタ１が移動したと判定する。したがって、プロジェクタ１は、加速度が加速度閾値Ａ以下で変動するようなノイズ及び手振れ等をプロジェクタ１の移動として誤判定してしまうことを低減することができる。
【０１６５】
なお、プロジェクタ１が移動したか否かの判定方法は、プロジェクタ１の加速度と加速度閾値Ａとを比較する方法に限られない。例えば、直前に取得したプロジェクタ１の加速度との差が予め定めた閾値以上である場合に、プロジェクタ１が移動したと判定するようにしてもよい。また、加速度の極大値又は極小値の数、すなわち加速度のピーク数をプロジェクタ１が移動した数として扱ってもよい。
【０１６６】
（第２実施形態）
第１実施形態の図１０に示した回転軸推定処理では、プロジェクタ１の加速度と加速度閾値Ａとを比較することによって、所定期間Ｔpにおけるプロジェクタ１の移動回数Ｐnを取得した。
【０１６７】
第２実施形態では、プロジェクタ１の加速度と加速度閾値Ａ1及び加速度閾値Ａ2の２つの閾値とを比較することによって、第１実施形態に比べてプロジェクタ１の移動形態を詳細に判定することができるプロジェクタ１Ａについて説明する。
【０１６８】
第２実施形態に係るプロジェクタ１Ａの構成例は、図３に示した第１実施形態に係るプロジェクタ１の構成例と同じである。したがって、プロジェクタ１Ａは、図６に示すコンピュータ１００で実現可能である。
【０１６９】
次に、第２実施形態に係るプロジェクタ１Ａの作用について説明する。プロジェクタ１Ａは、例えば投影開始指示を受け付けた場合に、図７に示した映像投影処理を実行する。ただし、第２実施形態に係るプロジェクタ１Ａの場合、図７のステップＳ４０における回転軸推定処理が、図１４及び図１５に示す第２実施形態に係る回転軸推定処理の流れの一例を示すフローチャートに置き換えられる。
【０１７０】
なお、図１４及び図１５に示す回転軸推定処理のステップＳ６０２〜Ｓ６１２の各ステップは、それぞれ図１０に示した第１実施形態に係る回転軸推定処理のステップＳ４０２〜Ｓ４１２の各ステップと同じ処理を行うため、説明を省略する。ただし、ステップＳ６１０において、加速度閾値Ａは加速度閾値Ａ1に置き換えられる。なお、加速度閾値Ａと加速度閾値Ａ1は同じ値であってもよい。また、ステップＳ６１２において、加速度ピーク履歴３４は第１加速度ピーク履歴３４Ａに置き換えられるが、第１加速度ピーク履歴３４Ａのデータ構造は、図１２に示した加速度ピーク履歴３４のデータ構造と同じである。
【０１７１】
また、第１実施形態と同様に、プロジェクタ１Ａは既に所定期間Ｔp以上に亘って加速度を加速度センサ１０から取得しているものとする。
【０１７２】
ステップＳ６１４において、中心推定部１４は、直前の平均加速度Ａprevが予め定めた加速度閾値Ａ2以下で、かつ、平均加速度Ａnowが加速度閾値Ａ2より大きいか否かを判定する。ここで、加速度閾値Ａ2は加速度閾値Ａ1より大きい値であるとする。
【０１７３】
ステップＳ６１４の判定処理が肯定判定の場合、すなわち、ユーザが加速度閾値Ａ1より大きい加速度閾値Ａ2を超えるような加速度でプロジェクタ１Ａを移動させる場合は、ステップＳ６１６に移行する。
【０１７４】
ステップＳ６１６において、中心推定部１４は、現在のタイムスタンプをＣＰＵ１０２から取得して、例えばメモリ１０４の予め定めた領域に記憶される第２加速度ピーク履歴３４Ｂに追加する。第２加速度ピーク履歴３４Ｂのデータ構造も図１２に示した加速度ピーク履歴３４のデータ構造と同じである。
【０１７５】
なお、プロジェクタ１Ａを、より大きく移動させようとするほど、プロジェクタ１Ａの加速度は大きくなる傾向がある。したがって、第２加速度ピーク履歴３４Ｂには、第１加速度ピーク履歴３４Ａに記録されたタイムスタンプに対応するプロジェクタ１Ａの移動に伴う加速度に比べて、加速度の大きい移動が行われた際のタイムスタンプが記録される。
【０１７６】
一方、ステップＳ６１４の判定処理が否定判定の場合、ステップＳ６１６の処理を実行せずにステップＳ６１８に移行する。
【０１７７】
ステップＳ６１８において、中心推定部１４は、直前の平均加速度ＡprevをステップＳ６０６で算出した平均加速度Ａnowに置き換えた上で、更新した直前の平均加速度Ａprevをメモリ１０４の予め定めた領域に記憶する。これにより、ステップＳ６０２で加速度センサ１０から加速度を取得する毎に、直前の平均加速度Ａprevが更新される。
【０１７８】
ステップＳ６２０において、中心推定部１４は、現在のタイムスタンプをＣＰＵ１０２から取得する。そして、中心推定部１４は、第１加速度ピーク履歴３４Ａに含まれるタイムスタンプのうち、現在のタイムスタンプから所定期間Ｔpだけ遡った期間に含まれるタイムスタンプの数を、所定期間Ｔpにおけるプロジェクタ１Ａの移動回数Ｐn1として取得する。
【０１７９】
ステップＳ６２２において、中心推定部１４は、第２加速度ピーク履歴３４Ｂに対してステップＳ６２０と同様の処理を行う。すなわち、中心推定部１４は、第２加速度ピーク履歴３４Ｂに含まれるタイムスタンプのうち、現在のタイムスタンプから所定期間Ｔpだけ遡った期間に含まれるタイムスタンプの数を、所定期間Ｔpにおけるプロジェクタ１Ａの移動回数Ｐn2として取得する。
【０１８０】
なお、第２加速度ピーク履歴３４Ｂは第１加速度ピーク履歴３４Ａより移動の加速度が大きい移動が行われた際のタイムスタンプを記録している。したがって、説明の便宜上、プロジェクタ１Ａの移動回数Ｐn1を特に「低加速度移動回数Ｐn1」といい、プロジェクタ１Ａの移動回数Ｐn2を「高加速度移動回数Ｐn2」ということにする。
【０１８１】
引き続き、図１５のステップＳ６２４において、中心推定部１４は、ステップＳ６２０で取得したプロジェクタ１Ａの低加速度移動回数Ｐn1が回数閾値Ｐ1より大きいか否かを判定する。プロジェクタ１Ａの低加速度移動回数Ｐn1が回数閾値Ｐ1以下である場合、プロジェクタ１Ａをより大きく移動させているために、所定期間Ｔpにおけるプロジェクタ１Ａの移動方向の切り替えが低頻度になっているとみなすことができる。
【０１８２】
したがって、ステップＳ６２４の判定処理が否定判定の場合、ステップＳ６３８に移行する。そして、ステップＳ６３８において、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は、肩、肘及び手首のうち、プロジェクタ１Ａの移動範囲が最も大きくなる肩であると推定する。
【０１８３】
一方、ステップＳ６２４の判定処理が肯定判定の場合には、ステップＳ６２６に移行する。
【０１８４】
ステップＳ６２６において、中心推定部１４は、ステップＳ６２０で取得したプロジェクタ１Ａの低加速度移動回数Ｐn1が回数閾値Ｐ2より大きいか否かを判定し、否定判定の場合はステップＳ６２８に移行する。
【０１８５】
なお、ステップＳ６２６の判定処理が否定判定の場合には、プロジェクタ１Ａの低加速度移動回数Ｐn1は回数閾値Ｐ1より大きく、かつ回数閾値Ｐ2以下ということになる。この場合、プロジェクタ１Ａの低加速度移動回数Ｐn1が回数閾値Ｐ2以下であることから、プロジェクタ１Ａの移動は手首を回転軸とした回転運動によるものではないと推定される。なぜなら、第２実施形態に係る回数閾値Ｐ2は、手首を回転軸としてプロジェクタ１Ａの移動が行われた場合に、所定期間Ｔpでの低加速度移動回数Ｐn1が超えると考えられる値に設定されるためである。
【０１８６】
ステップＳ６２８において、中心推定部１４は、今度はステップＳ６２２で取得したプロジェクタ１Ａの高加速度移動回数Ｐn2が回数閾値Ｐ1以下か否かを判定する。
【０１８７】
既に説明したように、プロジェクタ１Ａを大きく移動させようとするほど、所定期間Ｔpにおけるプロジェクタ１Ａの移動方向の切り替えが低頻度になる一方で、プロジェクタ１Ａの加速度が大きくなる傾向がある。
【０１８８】
したがって、プロジェクタ１Ａの高加速度移動回数Ｐn2が回数閾値Ｐ1より大きい場合は、プロジェクタ１の高加速度移動回数Ｐn2が回数閾値Ｐ1以下の場合より、プロジェクタ１Ａに対して移動量が大きい移動が行われていると考えることができる。
【０１８９】
したがって、ステップＳ６２８の判定処理が否定判定の場合にはステップＳ６３８に移行して、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は肩であると推定する。
【０１９０】
一方、ステップＳ６２８の判定処理が肯定判定の場合には、ステップＳ６３６に移行する。そして、ステップＳ６３６において、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は肘であると推定する。
【０１９１】
また、ステップＳ６２６の判定処理が肯定判定、すなわち、低加速度移動回数Ｐn1が回数閾値Ｐ2より大きい場合には、ステップＳ６３０に移行する。
【０１９２】
ステップＳ６３０において、中心推定部１４は、プロジェクタ１の高加速度移動回数Ｐn2が回数閾値Ｐ2以下であるか否かを判定する。
【０１９３】
プロジェクタ１Ａの高加速度移動回数Ｐn2が回数閾値Ｐ2より大きい場合、手首を回転軸としたプロジェクタ１Ａの移動では回数閾値Ｐ2より大きくなるほどの高加速度移動回数Ｐn2は得られないと考えられる。したがって、この場合には、プロジェクタ１Ａをより大きく移動させようとしていると考えられる。
【０１９４】
したがって、ステップＳ６３０の判定処理が否定判定の場合、ステップＳ６３８に移行して、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は肩であると推定する。なお、この場合、ユーザは肩を回転軸として所定期間Ｔpに回数閾値Ｐ2を超える程度の速度（高速）でプロジェクタ１Ａを移動させているとみなすことができる。
【０１９５】
一方、ステップＳ６３０の判定処理が肯定判定の場合、ステップＳ６３２に移行する。
【０１９６】
ステップＳ６３２において、中心推定部１４は、高加速度移動回数Ｐn2が回数閾値Ｐ1以下か否かを判定する。肯定判定の場合には、低加速度移動回数Ｐn1が回数閾値Ｐ2より大きくなるほど、プロジェクタ１Ａの移動方向の切り替えが行われているにもかかわらず、高加速度移動回数Ｐn2が回数閾値Ｐ1以下と少ないことを表している。
【０１９７】
したがって、ステップＳ６３４に移行し、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は手首であると推定する。
【０１９８】
一方、ステップＳ６３２の判定処理が否定判定の場合は、手首を回転軸としてプロジェクタ１Ａを移動したにしては、高加速度移動回数Ｐn2が多い状況が発生しているとみなすことができる。したがって、ステップＳ６３６に移行し、中心推定部１４は、プロジェクタ１Ａの移動に対応する回転軸の位置は、手首を回転軸とした場合の移動範囲より広く、肩を回転軸とした場合の移動範囲より狭い関節部分、すなわち肘であると推定する。
【０１９９】
以上で、図１４及び図１５に示す第２実施形態に係る回転軸推定処理を終了する。
【０２００】
このように第２実施形態に係るプロジェクタ１Ａによれば、プロジェクタ１Ａの移動に伴う加速度を加速度閾値Ａ1及び加速度閾値Ａ2の２つの閾値と比較することによって、加速度の大きさを考慮した上でプロジェクタ１Ａの回転軸の位置を推定する。
【０２０１】
したがって、プロジェクタ１Ａの加速度を単一の加速度閾値と比較した場合に比べて、プロジェクタ１Ａの移動形態を詳細に把握することができるため、移動形態に応じた回転軸の推定が可能となり、プロジェクタ１Ａの移動量を精度よく推定することができる。
【０２０２】
（第３実施形態）
第１実施形態のプロジェクタ１及び第２実施形態のプロジェクタ１Ａでは、所定期間Ｔpにおけるプロジェクタ１、１Ａの加速度の変化状況に基づいてプロジェクタ１、１Ａの回転軸の位置を推定し、更にプロジェクタ１、１Ａの移動量を推定する。
【０２０３】
したがって、プロジェクタ１、１Ａは、加速度を加速度センサ１０から取得し始めてから所定期間Ｔpに達するまでの間、図７に示した映像投影処理とは異なる方法で、プロジェクタ１、１Ａの移動量を推定する。
【０２０４】
第３実施形態では、加速度を加速度センサ１０から取得し始めてから所定期間Ｔpに達するまでのプロジェクタ１、１Ａの移動量の推定処理、及び所定期間Ｔpに達した直後のプロジェクタ１、１Ａの移動量の再推定処理を追加した映像投影処理について説明する。なお、以降では、プロジェクタ１、１Ａを「プロジェクタ１等」と表す。
【０２０５】
図１６は、第３実施形態に係るプロジェクタ１等の構成例を示す図である。図１６に示すプロジェクタ１等の構成例が図３に示す構成例と異なる点は、加速度センサ１０と移動量推定部１５が接続され、加速度センサ１０で計測された加速度ベクトルが移動量推定部１５に出力される点であり、その他の構成については図３と同様である。したがって、プロジェクタ１等は、図６に示すコンピュータ１００で実現可能である。
【０２０６】
次に、第３実施形態に係るプロジェクタ１等の作用について説明する。プロジェクタ１等は、例えば投影開始指示を受け付けた場合に、図１７に示した映像投影処理を実行する。
【０２０７】
図１７に示す映像投影処理が、図７に示した第１実施形態及び第２実施形態に係る映像投影処理と異なる点は、ステップＳ２２〜Ｓ２６、Ｓ１４０、Ｓ１６０及びＳ２００が追加され、ステップＳ１００がステップＳ１５０に置き換えられた点である。
【０２０８】
以下に、第１実施形態及び第２実施形態に係る映像投影処理と異なる点を中心にして、第３実施形態に係る映像投影処理の説明を行う。
【０２０９】
ステップＳ２０の判定処理が肯定判定の場合、すなわち、回転量リセット指示を受け付けた場合、ステップＳ１４０に移行する。
【０２１０】
ステップＳ１４０において、回転量推定部１３は、ステップＳ１４０の実行時におけるタイムスタンプ（以降、「処理開始時刻」という）をＣＰＵ１０２から取得して、例えばメモリ１０４の予め定めた領域に記憶する。また、経過時間Ｔgを“０”に設定する。
【０２１１】
ステップＳ１５０において、回転量推定部１３は初期化処理１を実行する。
【０２１２】
図１８は、図１７のステップＳ１５０における初期化処理１の流れの一例を示すフローチャートである。
【０２１３】
まず、ステップＳ１５２において、回転量推定部１３は、後ほど説明する図１７のステップＳ２００の移動量再推定処理を実行したか否かを示す再推定済みフラグの値を、例えば“０”に設定する。なお、再推定済みフラグの値が“０”の場合、ステップＳ２００の移動量再推定処理が未実行であることを示し、その他の値、例えば“１”の場合、ステップＳ２００の移動量再推定処理が実行済みであることを示す。
【０２１４】
ステップＳ１５４において、回転量推定部１３は、プロジェクタ１等の速度Ｖprevを“０”に設定する。
【０２１５】
ステップＳ１５６において、回転量推定部１３は、プロジェクタ１等の移動量Ｘprevを“０”に設定する。
【０２１６】
ステップＳ１５８において、回転量推定部１３は、肩の角度Ｓd、肘の角度Ｅd及び手首の角度Ｗdの各々に、ユーザの初期姿勢に対応する角度を設定すると共に、肩の位置Ｓsに、ユーザの初期姿勢に対応する肩の初期位置Ｓs0を設定する。
【０２１７】
なお、ここでは、ユーザの上腕の長さＳl、前腕の長さＥl及びプロジェクタ１等の長さＰlが予めプロジェクタ１等に登録されているものとする。長さＳl、Ｅl、及びＰlがプロジェクタ１等に予め登録されていない場合は、更に肘の位置Ｅsに肘の初期位置Ｅs0、手首の位置Ｗsに手首の初期位置Ｗs0、プロジェクタ１等の位置Ｐs及びＰprevにプロジェクタ１等の初期位置Ｐs0をそれぞれ設定する。
【０２１８】
以上により、プロジェクタ１等の移動量の推定に係る初期化が実行される。
【０２１９】
一方、ステップＳ２０の判定処理が否定判定の場合にはステップＳ２２に移行する。
【０２２０】
ステップＳ２２において、移動量推定部１５は、現在のタイムスタンプをＣＰＵ１０２から取得し、ステップＳ１４０でメモリ１０４に記憶された処理開始時刻からの経過時間を算出して経過時間Ｔgに記憶する。
【０２２１】
ステップＳ２４において、移動量推定部１５は、ステップＳ２２で更新した経過時間Ｔgが所定期間Ｔp以上であるか否かを判定する。否定判定の場合、すなわち、回転量リセット指示を受け付けてから、まだ所定期間Ｔpが経過していない場合、ステップＳ１６０に移行する。
【０２２２】
ステップＳ１６０において、移動量推定部１５は、公知の方法に基づいてプロジェクタ１等の移動量を算出する。
【０２２３】
図１９は、図１７のステップＳ１６０における既存移動量推定処理の流れの一例を示すフローチャートである。既存移動量推定処理では、プロジェクタ１等の移動量の算出方法として従来から知られている加速度ベクトルを積分する方法を用いて、プロジェクタ１等の位置を算出する。
【０２２４】
まず、ステップＳ１６２において、移動量推定部１５は、加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２から、それぞれ加速度ベクトル、角速度及び地磁気値を取得する。取得した加速度ベクトルの大きさは、ステップＳ２２の処理でＣＰＵ１０２から取得したタイムスタンプと対応付けて加速度サンプル履歴３０に記憶する。同様に、角速度及び地磁気値も、それぞれステップＳ２２の処理でＣＰＵ１０２から取得したタイムスタンプと対応付けて、例えばメモリ１０４の予め定めた領域に記憶する。
【０２２５】
ステップＳ１６４において、移動量推定部１５は、（１３）式に基づいてプロジェクタ１等の速度Ｖnowを算出する。
【０２２６】
【数９】
2017151327.tif 000011
【０２２７】
ここで、ａrはステップＳ１６２で取得した加速度ベクトルであり、ΔＴはステップＳ１６２で加速度ベクトルを取得した前回の時刻からの経過時間である。なお、経過時間ΔＴは、加速度ベクトルａrに対応付けられるタイムスタンプを参照することで算出できる。初めて加速度ベクトルａrを取得した場合は、図１７のステップＳ１４０でメモリ１０４に記憶した処理開始時刻との差分から、経過時間ΔＴを算出する。
【０２２８】
ステップＳ１６６において、移動量推定部１５は、速度Ｖprevの値をステップＳ１６４で算出した速度Ｖnowで更新する。この処理によって、速度Ｖprevには、最新のプロジェクタ１等の速度が設定される。
【０２２９】
ステップＳ１６８において、移動量推定部１５は、（１４）式に基づいてプロジェクタ１等の移動量Ｘnowを算出する。
【０２３０】
【数１０】
2017151327.tif 000012
【０２３１】
ステップＳ１７０において、移動量推定部１５は、移動量Ｘprevの値をステップＳ１６８で算出した移動量Ｘnowで更新する。この処理によって、移動量Ｘprevには、最新のプロジェクタ１等の移動量が設定される。
【０２３２】
ステップＳ１７２において、移動量推定部１５は、プロジェクタ１等の位置ＰprevにステップＳ１６８で算出したプロジェクタ１等の移動量Ｘnowを加算して、現在のプロジェクタ１等の位置Ｐnowを算出する。
【０２３３】
ステップＳ１７４において、移動量推定部１５は、プロジェクタ１等の位置Ｐprevの値をステップＳ１７２で算出した現在のプロジェクタ１等の位置Ｐnowで更新する。この処理によって、プロジェクタ１等の位置Ｐprevには、最新のプロジェクタ１等の位置が設定される。
【０２３４】
以上により、回転量リセット指示を受け付けてから所定期間Ｔpが経過するまで、ステップＳ１６０の既存移動量推定処理を実行することで、プロジェクタ１等の位置Ｐnowが推定できる。したがって、プロジェクタ１等の位置Ｐnow及び回転量推定部１３でのプロジェクタ１等の回転量Ｒを入力とし、図７に示したステップＳ６０〜Ｓ９０の各処理を行うことで、プロジェクタ１等の移動を打ち消すように補正した映像３がスクリーン５に投影される。
【０２３５】
なお、ステップＳ１６２におけるモーションセンサ（加速度センサ１０、ジャイロセンサ１１及び地磁気センサ１２）からの各センサ値の取得間隔は、予め定めた間隔Δｔdに設定されているものとする。間隔Δｔdは所定期間Ｔpより短い値に設定される。具体的には、Ｔp／Ｎs（既に説明したように、Ｎsは平均加速度Ａnowを算出する場合に使用される加速度の個数）以下の値に設定される。
【０２３６】
一方、ステップＳ２４の判定処理が肯定判定の場合、すなわち、回転量リセット指示を受け付けてから所定期間Ｔpが経過した場合、ステップＳ２６に移行する。
【０２３７】
ステップＳ２６において、移動量推定部１５は、再推定済みフラグが“１”であるか否かを判定する。否定判定の場合、すなわち、再推定済みフラグが“０”である場合、ステップＳ２００に移行して移動量再推定処理を実行する。移動量再推定処理は、所定期間Ｔpが経過した場合に、加速度サンプル履歴３０に蓄積された加速度に基づいて、プロジェクタ１等の移動量を再度推定し直す処理である。
【０２３８】
図２０は、図１７のステップＳ２００における移動量再推定処理の流れの一例を示すフローチャートである。
【０２３９】
ステップＳ２０２において、回転量推定部１３は、回転量リセット指示を受け付けてからの経過時刻ｔprevを“０”に初期化する。
【０２４０】
ステップＳ４０において、中心推定部１４は、図１０若しくは図１４及び図１５に示した回転軸推定処理を実行して、所定期間Ｔpに亘って加速度サンプル履歴３０、３０Ａ及び３０Ｂに蓄積された加速度に基づいて、プロジェクタ１等の回転軸の位置を推定する。
【０２４１】
ステップＳ２０４において、回転量推定部１３は、図１９のステップＳ１６２で最初にモーションセンサの各センサ値を取得した時刻からｔprev＋Δｔd経過した時点の各センサ値をメモリ１０４から取得する。
【０２４２】
ステップＳ３０において、回転量推定部１３は、図８に示した回転量推定処理を実行して、プロジェクタ１等の回転量Ｒを推定する。なお、この場合、回転量推定部１３は、モーションセンサから各センサ値を取得する代わりにステップＳ２０４で取得した、ｔprev＋Δｔdにおけるモーションセンサの各センサ値を用いる。
【０２４３】
ステップＳ５０において、移動量推定部１５は、図１３に示した移動量推定処理を実行する。ステップＳ５０によって、ステップＳ４０で推定したプロジェクタ１等の回転軸の位置とステップＳ３０で推定したｔprev＋Δｔdにおけるプロジェクタ１等の回転量とから、ｔprev＋Δｔdにおけるプロジェクタ１等の位置が推定できる。
【０２４４】
ステップＳ２０６において、回転量推定部１３は、経過時刻ｔprevの値をｔprev＋Δｔdで更新する。
【０２４５】
ステップＳ２０８において、回転量推定部１３は、ステップＳ２０６で更新した経過時刻ｔprevが所定期間Ｔp未満であるか否かを判定する。肯定判定の場合、すなわち、所定期間Ｔpを経過した時点におけるプロジェクタ１等の位置が推定できていない場合、ステップＳ２０４に処理を戻す。そして、ステップＳ２０４〜Ｓ２０８の処理を繰り返すことによって、所定期間Ｔpに亘って間隔Δｔd毎にプロジェクタ１等の位置を順次推定する。
【０２４６】
一方、ステップＳ２０８の判定処理が否定判定の場合、すなわち、回転量リセット指示を受け付けてから所定期間Ｔp以上経過した時点のプロジェクタ１等の位置が推定された場合には、ステップＳ２１０に移行する。
【０２４７】
ステップＳ２１０において、回転量推定部１３は、再推定済みフラグの値を“１”に設定し、移動量再推定処理が実行済みであることを示す。
【０２４８】
以上により、図１７に示したステップＳ２００の移動量再推定処理を終了する。
【０２４９】
このように、第３実施形態に係るプロジェクタ１等によれば、所定期間Ｔpが経過するまでは、従来から知られている加速度ベクトルを積分する方法でプロジェクタ１等の移動量を推定する。そして、所定期間Ｔpを経過した時点で、プロジェクタ１等は、所定期間Ｔpに蓄積されたプロジェクタ１等の加速度の値を用いて回転軸の位置を推定することで、プロジェクタ１等の移動量を推定する方法に切り替える。
【０２５０】
したがって、プロジェクタ１等は、加速度を取得し始めて所定期間Ｔpを経過するまでの期間であっても、スクリーン５に対するプロジェクタ１等の移動前後におけるコンテンツの表示位置の変動を抑制することができる。更に、プロジェクタ１等は、所定期間Ｔpを経過した後、プロジェクタ１等の回転軸の位置に基づいてプロジェクタ１等の移動量を推定する。したがって、プロジェクタ１等は、所定期間Ｔpを経過した後も従来の移動量の推定方法、例えば加速度ベクトルを積分する方法でプロジェクタ１等の移動量を推定する場合に比べて、プロジェクタ１等の移動量を精度よく推定することができる。
【０２５１】
なお、第３実施形態では、加速度を取得し始めて所定期間Ｔpを経過するまでの間に実行するプロジェクタ１等の移動量の推定方法として、加速度ベクトルを積分する方法を用いたが、これに限らず他の公知の推定方法を用いてもよいことは言うまでもない。
【０２５２】
（第４実施形態）
第１実施形態〜第３実施形態に係るプロジェクタ１等では、所定期間Ｔpにおけるプロジェクタ１等の加速度の変化の頻度に基づいて、プロジェクタ１等の移動に関与している関節部分を回転軸の位置として推定した。
【０２５３】
第４実施形態では、プロジェクタ１Ｂの移動に伴う加速度の方向に基づいて、回転軸の位置を推定する例について説明する。
【０２５４】
第４実施形態に係るプロジェクタ１Ｂの構成例は、図３に示した第１実施形態に係るプロジェクタ１の構成例と同じである。したがって、プロジェクタ１Ｂは、図６に示すコンピュータ１００で実現可能である。
【０２５５】
ただし、プロジェクタ１Ｂは、複数の加速度センサ１０を備える。例えばプロジェクタ１Ｂは２つの加速度センサ１０を備え、各々の加速度センサ１０が予め定めた距離以上離れるように、プロジェクタ１Ｂの投影面１Ｃの近傍部分と、投影面１Ｃと対向する面である反対面の近傍部分とに、各々の加速度センサ１０を配置する。
【０２５６】
次に、第４実施形態に係るプロジェクタ１Ｂの作用について説明する。プロジェクタ１Ｂは、例えば投影開始指示を受け付けた場合に、図７に示した映像投影処理を実行する。ただし、第４実施形態に係るプロジェクタ１Ｂの場合、図７のステップＳ４０における回転軸推定処理が、図２１に示す第４実施形態に係る回転軸推定処理の流れの一例を示すフローチャートに置き換えられる。
【０２５７】
まず、ステップＳ７０２において、中心推定部１４は、各加速度センサ１０から加速度ベクトルを取得する。説明の便宜上、ここでは一方の加速度センサ１０から取得した加速度ベクトルをＡa、他方の加速度センサ１０から取得した加速度ベクトルをＡbとする。
【０２５８】
ステップＳ７０４において、中心推定部１４は、ステップＳ７０２で取得した加速度ベクトルＡa及びＡbの成す角度θを算出する。
【０２５９】
具体的には、中心推定部１４は、加速度ベクトルＡaの大きさ|Ａa|及び加速度ベクトルＡb大きさ|Ａb|を算出し、（１５）式に基づいて角度θを算出する。
【０２６０】
【数１１】
2017151327.tif 000013
【０２６１】
ステップＳ７０６において、中心推定部１４は、ステップＳ７０４で算出した角度θが０°以上、かつ、９０°未満であるか否かを判定する。
【０２６２】
図２２は、ユーザが肘を回転させてプロジェクタ１Ｂを移動させる場合の状況を示す図である。この場合、各々の加速度センサ１０における加速度ベクトルＡa、Ａbは、同じ方向を示す傾向にある。ただし、例えば加速度センサ１０の取り付け状況等によっては、加速度ベクトルＡa、Ａbの方向が一致しない状況も発生し得る。したがって、ここでは加速度ベクトルＡa、Ａbの成す角度θが０°以上、かつ、９０°未満であれば、加速度ベクトルＡa、Ａbは同じ方向を示しているものとみなす。
【０２６３】
したがって、ステップＳ７０６の判定処理が肯定判定の場合には、ステップＳ７０８に移行し、ステップＳ７０８において、中心推定部１４は、肘をプロジェクタ１Ｂの移動に伴う回転軸の位置であると推定する。
【０２６４】
一方、図２３は、ユーザが手首を回転させてプロジェクタ１Ｂを移動させる場合の状況を示す図である。この場合、各々の加速度センサ１０における加速度ベクトルＡa、Ａbは、異なる方向を示す傾向にある。ただし、例えば加速度センサ１０の取り付け状況等によっては、加速度ベクトルＡa、Ａbの方向が逆方向にならない状況も発生し得る。したがって、ここでは、加速度ベクトルＡa、Ａbの成す角度θが９０°以上、かつ、１８０°未満であれば、加速度ベクトルＡa、Ａbは異なる方向を示しているとみなす。
【０２６５】
したがって、ステップＳ７０６の判定処理が否定判定の場合には、ステップＳ７１０に移行し、ステップＳ７１０において、中心推定部１４は、手首をプロジェクタ１Ｂの移動に伴う回転軸の位置であると推定する。
【０２６６】
以上により、プロジェクタ１Ｂの移動に伴う回転軸の位置が推定できる。以下、既に説明した図７のステップＳ５０以降の処理を実行することでプロジェクタ１Ｂの移動量が推定され、プロジェクタ１Ｂの移動量を打ち消すよう補正した映像３が、投影部２１から投影される。
【０２６７】
このように第４実施形態に係るプロジェクタ１Ｂによれば、異なる加速度センサ１０で取得した加速度ベクトルの成す角度θの大きさに応じて、プロジェクタ１Ｂの移動に伴う回転軸の位置を推定し、移動量に応じたプロジェクタ１Ｂの位置を推定する。
【０２６８】
したがって、プロジェクタ１Ｂは、加速度ベクトルを取得し始めてから、まだ所定期間Ｔpを経過しない場合であっても、プロジェクタ１Ｂの移動に伴う回転軸の位置に基づいて、プロジェクタ１Ｂの移動量を推定することができる。すなわち、従来の移動量推定方法、例えばプロジェクタ１Ｂに何らかの初期速度を設定し、プロジェクタ１Ｂの加速度ベクトルを積分することでプロジェクタ１Ｂの移動量を算出する場合に比べて、プロジェクタ１Ｂの移動量を精度よく推定することができる。
【０２６９】
また、プロジェクタ１Ｂは、２つの加速度センサ１０が予め定めた距離以上離れるように、プロジェクタ１Ｂの投影面１Ｃの近傍部分と、投影面１Ｃと対向する反対面の近傍部分とに、それぞれ加速度センサ１０を備える。したがって、２つの加速度センサ１０を予め定めた距離未満に接近して配置する場合に比べて、手首を中心としてプロジェクタ１Ｂを移動させた場合の各加速度センサ１０の加速度ベクトルの方向が、異なる向きになりやすくなる。すなわち、手首を動かした場合、２つの加速度センサ１０を予め定めた距離未満に配置する場合に比べて、各加速度ベクトルの成す角度θが９０°より大きくなる傾向が現れやすくなるため、プロジェクタ１Ｂの移動に伴う回転軸の位置を精度よく推定できる。
【０２７０】
なお、第４実施形態では、２つの加速度ベクトルの向きが同じ場合、プロジェクタ１Ｂの移動に伴う回転軸の位置は肘であると推定する例を示したが、この場合、更に加速度ベクトルＡa、Ａbの大きさを考慮して回転軸の位置を推定するようにしてもよい。
【０２７１】
例えば、ユーザが肩を回転させてプロジェクタ１Ｂを移動させる場合、肘を回転させる場合と同様に、加速度ベクトルＡa、Ａbの方向は同じ方向を示す傾向にある。しかし、ユーザが肩を回転させてプロジェクタ１Ｂを移動させる方が、肘を回転させてプロジェクタ１Ｂを移動させる場合に比べて、加速度ベクトルＡa、Ａbの大きさが大きくなる傾向が見られる。
【０２７２】
したがって、加速度ベクトルＡa、Ａbの方向が同じであっても、加速度ベクトルＡa、Ａbの少なくとも一方の大きさが予め定めた加速度以上あれば肩を回転軸の位置と推定し、予め定めた加速度未満であれば肘を回転軸の位置と推定するようにしてもよい。
【０２７３】
以上、各実施形態を用いて開示の技術を説明したが、開示の技術は各実施形態に記載の範囲には限定されない。開示の技術の要旨を逸脱しない範囲で各実施形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も開示の技術の技術的範囲に含まれる。例えば、開示の技術の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【０２７４】
また、各実施形態では、映像投影プログラム１２０が記憶部１０６に予め記憶（インストール）されている形態を説明したが、これに限定されるものではない。開示の技術に係る映像投影プログラムは、コンピュータ読取可能な記録媒体１１６に記録された形態で提供することも可能である。例えば、開示の技術に係る映像投影プログラムは、ＣＤ−ＲＯＭ(Read Only Memory)、ＤＶＤ−ＲＯＭまたはＵＳＢ(Universal Serial Bus)メモリ等の可搬型記録媒体に記録された形態で提供することも可能である。また、開示の技術に係る映像投影プログラムは、フラッシュメモリ等の半導体メモリ等に記録された形態で提供することも可能である。
【０２７５】
なお、開示の技術では、プロジェクタを例にした移動量の推定について説明したが、プロジェクタとは異なる他の携帯機器、例えば移動量に応じて画面のキャラクタ等を移動させるゲームのコントローラ等に対しても、開示の技術が適用可能である。
【０２７６】
また、中心推定部１４で推定する回転軸の位置は腕の関節部分に限られない。例えばプロジェクタを頭部に固定する場合、首及び腰等の回転運動によってプロジェクタが移動するため、腕とは異なる他の関節部分を回転軸の位置として推定すればよい。
【０２７７】
以上の第１実施形態〜第４実施形態を含む各実施形態に関し、更に以下の付記を開示する。
【０２７８】
（付記１）
操作者が携帯するプロジェクタ装置であって、
前記プロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した前記加速度に基づいて、回転運動の回転軸の位置を推定する第１の推定部と、
前記プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した前記回転量および推定した前記回転軸の位置に基づいて、前記プロジェクタ装置の移動量を推定する第２の推定部と、
を含む携帯機器。
【０２７９】
（付記２）
前記第１の推定部は、前記プロジェクタ装置を移動させる前記操作者の関節部分を、前記回転軸の位置として推定する
付記１記載のプロジェクタ装置。
【０２８０】
（付記３）
前記第１の推定部は、前記加速度の大きさを用い、前記加速度の大きさの所定期間内の変化回数に基づいて、前記回転軸の位置を推定する
付記２記載のプロジェクタ装置。
【０２８１】
（付記４）
前記第１の推定部は、前記加速度の大きさが所定値以下から前記所定値より大きくなるように変化した前記所定期間内の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肘であると推定し、前記変化回数が前記第２の閾値より大きい場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の手首であると推定する
付記３記載のプロジェクタ装置。
【０２８２】
（付記５）
前記第１の推定部は、前記加速度の大きさが第１の加速度閾値以下から前記第１の加速度閾値より大きくなるように変化する前記所定期間内の第１の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記第１の変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下である場合、前記第１の加速度閾値より大きい第２の加速度閾値以下から前記第２の加速度閾値より大きくなるように変化する前記所定期間内の第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩又は肘であると推定し、前記第１の変化回数が前記第２の閾値より大きい場合、前記第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩、肘及び手首の何れかであると推定する
付記３記載のプロジェクタ装置。
【０２８３】
（付記６）
前記第１の推定部は、前記第１の変化回数が前記第１の閾値より大きく、かつ、第２の閾値以下である場合において、前記第２の変化回数が前記第１の閾値以下となる場合は、前記回転軸の位置は肘であると推定し、前記第２の変化回数が前記第１の閾値より大きい場合は、前記回転軸の位置は肩であると推定する一方、前記第１の変化回数が前記第２の閾値より大きい場合において、前記第２の変化回数が前記第２の閾値より大きい場合は、前記回転軸の位置は肩であると推定し、前記第２の変化回数が前記第１の閾値より大きく、かつ、前記第２の閾値以下の場合は、前記回転軸の位置は肘であると推定し、前記第２の変化回数が前記第１の閾値以下の場合は、前記回転軸の位置は手首であると推定する
付記５記載のプロジェクタ装置。
【０２８４】
（付記７）
前記第２の推定部は、前記加速度の大きさの取得期間が前記所定期間未満の場合、前記所定期間に達するまでに取得した前記加速度の履歴を用いることなく前記プロジェクタ装置の移動量を推定し、
前記第１の推定部は、前記加速度の大きさの取得期間が前記所定期間以上になった場合に、前記所定期間に取得した前記加速度の大きさの各々を用いて、前記回転軸の位置を推定する
付記３〜付記６の何れか１項に記載のプロジェクタ装置。
【０２８５】
（付記８）
推定された前記プロジェクタ装置の移動量に基づき、投影面に対する前記プロジェクタ装置の移動前後におけるコンテンツの表示位置の変動を抑制するようにコンテンツを投影面に投影する投影部を含む
付記１〜付記７の何れか１項に記載のプロジェクタ装置。
【０２８６】
（付記９）
加速度を検知する第１のセンサを複数備え、
前記第１の推定部は、前記第１のセンサの各々から取得した加速度の方向に応じて、前記回転軸の位置を推定する
付記２記載のプロジェクタ装置。
【０２８７】
（付記１０）
前記第１の推定部は、前記第１のセンサの各々から取得した加速度の方向が同じ方向を示す場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肘又は肩であると推定する
付記９記載のプロジェクタ装置。
【０２８８】
（付記１１）
前記第１の推定部は、前記第１のセンサの各々から取得した加速度の方向が異なる方向を示す場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の手首であると推定する
付記９記載のプロジェクタ装置。
【０２８９】
（付記１２）
前記第１のセンサの各々を予め定めた距離以上離れた位置に配置する
付記９〜付記１１の何れか１項に記載のプロジェクタ装置。
【０２９０】
（付記１３）
コンピュータに、
操作者が携帯するプロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した前記加速度に基づいて、回転運動の回転軸の位置を推定し、
前記プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した前記回転量および推定した前記回転軸の位置に基づいて、前記プロジェクタ装置の移動量を推定する
処理を実行させるプロジェクタ装置の移動量推定方法。
【０２９１】
（付記１４）
前記プロジェクタ装置を移動させる前記操作者の関節部分を、前記回転軸の位置として推定する
付記１３記載のプロジェクタ装置の移動量推定方法。
【０２９２】
（付記１５）
前記加速度の大きさを用い、前記加速度の大きさの所定期間内の変化回数に基づいて、前記回転軸の位置を推定する
付記１４記載のプロジェクタ装置の移動量推定方法。
【０２９３】
（付記１６）
前記加速度の大きさが所定値以下から前記所定値より大きくなるように変化した前記所定期間内の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肘であると推定し、前記変化回数が前記第２の閾値より大きい場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の手首であると推定する
付記１５記載のプロジェクタ装置の移動量推定方法。
【０２９４】
（付記１７）
前記加速度の大きさが第１の加速度閾値以下から前記第１の加速度閾値より大きくなるように変化する前記所定期間内の第１の変化回数が第１の閾値以下の場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩であると推定し、前記第１の変化回数が前記第１の閾値より大きく、かつ、前記第１の閾値より大きい第２の閾値以下である場合、前記第１の加速度閾値より大きい第２の加速度閾値以下から前記第２の加速度閾値より大きくなるように変化する前記所定期間内の第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩又は肘であると推定し、前記第１の変化回数が前記第２の閾値より大きい場合、前記第２の変化回数に応じて、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肩、肘及び手首の何れかであると推定する
付記１５記載のプロジェクタ装置の移動量推定方法。
【０２９５】
（付記１８）
前記第１の変化回数が前記第１の閾値より大きく、かつ、第２の閾値以下である場合において、前記第２の変化回数が前記第１の閾値以下となる場合は、前記回転軸の位置は肘であると推定し、前記第２の変化回数が前記第１の閾値より大きい場合は、前記回転軸の位置は肩であると推定する一方、前記第１の変化回数が前記第２の閾値より大きい場合において、前記第２の変化回数が前記第２の閾値より大きい場合は、前記回転軸の位置は肩であると推定し、前記第２の変化回数が前記第１の閾値より大きく、かつ、前記第２の閾値以下の場合は、前記回転軸の位置は肘であると推定し、前記第２の変化回数が前記第１の閾値以下の場合は、前記回転軸の位置は手首であると推定する
付記１７記載のプロジェクタ装置の移動量推定方法。
【０２９６】
（付記１９）
前記加速度の大きさの取得期間が前記所定期間未満の場合、前記所定期間に達するまでに取得した前記加速度の履歴を用いることなく前記プロジェクタ装置の移動量を推定し、
前記加速度の大きさの取得期間が前記所定期間以上になった場合に、前記所定期間に取得した前記加速度の大きさの各々を用いて、前記回転軸の位置を推定する
付記１５〜付記１８の何れか１項に記載のプロジェクタ装置の移動量推定方法。
【０２９７】
（付記２０）
推定された前記プロジェクタ装置の移動量に基づき、投影面に対する前記プロジェクタ装置の移動前後におけるコンテンツの表示位置の変動を抑制するようにコンテンツを投影面に投影する
付記１３〜付記１９の何れか１項に記載のプロジェクタ装置の移動量推定方法。
【０２９８】
（付記２１）
加速度を検知する第１のセンサを複数備え、
前記第１のセンサの各々から取得した加速度の方向に応じて、前記回転軸の位置を推定する
付記１４記載のプロジェクタ装置の移動量推定方法。
【０２９９】
（付記２２）
前記第１のセンサの各々から取得した加速度の方向が同じ方向を示す場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の肘又は肩であると推定する
付記２１記載のプロジェクタ装置の移動量推定方法。
【０３００】
（付記２３）
前記第１のセンサの各々から取得した加速度の方向が異なる方向を示す場合、前記回転軸の位置は前記プロジェクタ装置を移動させる前記操作者の手首であると推定する
付記２１記載のプロジェクタ装置の移動量推定方法。
【０３０１】
（付記２４）
前記第１のセンサの各々を予め定めた距離以上離れた位置に配置する
付記２１〜付記２３の何れか１項に記載のプロジェクタ装置の移動量推定方法。
【０３０２】
（付記２５）
コンピュータに、
操作者が携帯するプロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した前記加速度に基づいて、回転運動の回転軸の位置を推定し、
前記プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した前記回転量および推定した前記回転軸の位置に基づいて、前記プロジェクタ装置の移動量を推定する
処理を実行させるプロジェクタ装置の移動量推定プログラム。
【０３０３】
（付記２６）
コンピュータに、
操作者が携帯するプロジェクタ装置の移動に伴って発生する加速度を検知する第１のセンサから取得した前記加速度に基づいて、回転運動の回転軸の位置を推定し、
前記プロジェクタ装置の移動に伴う回転量を検知する第２のセンサから取得した前記回転量および推定した前記回転軸の位置に基づいて、前記プロジェクタ装置の移動量を推定する
処理を実行させるプロジェクタ装置の移動量推定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０３０４】
１（１Ａ、１Ｂ）・・・プロジェクタ、２・・・投影口、３・・・映像、５・・・スクリーン、１０・・・加速度センサ、１１・・・ジャイロセンサ、１２・・・地磁気センサ、１３・・・回転量推定部、１４・・・中心推定部、１５・・・移動量推定部、１６・・・算出部、１７・・・表示画面、１８・・・補正部、１９・・・ポインタ、２０・・・重畳部、２１・・・投影部、３０・・・加速度サンプル履歴、３４（３４Ａ、３４Ｂ）・・・加速度ピーク履歴、１００・・・コンピュータ、１０２・・・ＣＰＵ、１０４・・・メモリ、１０６・・・記憶部、１０８・・・バス、１１２・・・投影デバイス、１１４・・・入力装置、１１６・・・記録媒体、１２０・・・映像投影プログラム、１２２・・・回転量推定プロセス、１２４・・・中心推定プロセス、１２６・・・移動量推定プロセス、１２８・・・算出プロセス、１３０・・・補正プロセス、１３２・・・重畳プロセス、１３４・・・投影プロセス、α・・・ロール、β・・・ピッチ、γ・・・ヨー、Ａ（Ａ1、Ａ2）・・・加速度閾値、Ａa、Ａb・・・加速度ベクトル、Ａnow・・・平均加速度、Ａprev・・・直前の平均加速度、Ｈ・・・ホモグラフィ行列、Ｐ1（Ｐ2）・・・回数閾値、Ｐn1・・・低加速度移動回数、Ｐn2・・・高加速度移動回数、Ｒ・・・回転量
【図１】
2017151327.tif 000014
【図２】
2017151327.tif 000015
【図３】
2017151327.tif 000016
【図４】
2017151327.tif 000017
【図５】
2017151327.tif 000018
【図６】
2017151327.tif 000019
【図７】
2017151327.tif 000020
【図８】
2017151327.tif 000021
【図９】
2017151327.tif 000022
【図１０】
2017151327.tif 000023
【図１１】
2017151327.tif 000024
【図１２】
2017151327.tif 000025
【図１３】
2017151327.tif 000026
【図１４】
2017151327.tif 000027
【図１５】
2017151327.tif 000028
【図１６】
2017151327.tif 000029
【図１７】
2017151327.tif 000030
【図１８】
2017151327.tif 000031
【図１９】
2017151327.tif 000032
【図２０】
2017151327.tif 000033
【図２１】
2017151327.tif 000034
【図２２】
2017151327.tif 000035
【図２３】
2017151327.tif 000036
【図２４】
2017151327.tif 000037