(57)【特許請求の範囲】
【請求項１】
映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得する距離情報取得部と、
基準距離と、前記距離情報と、に基づいて指示体による操作を検出する操作検出部と、
検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新する更新部と、
を備え、
前記更新部は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて前記基準距離を変更する情報処理装置。
【請求項２】
前記操作検出部は、前記距離情報と、前記基準距離と、の間の差に基づいて前記操作を検出する請求項１記載の情報処理装置。
【請求項３】
映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得する距離情報取得部と、
基準距離と、前記距離情報と、に基づいて指示体による操作を検出する操作検出部と、
検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新する更新部と、
を備え、
前記更新部は、前記操作が行われていると検出されているときには、前記基準距離を更新しない情報処理装置。
【請求項４】
前記更新部は、前記距離情報の前記時間的変化が基準値よりも小さいときに、前記基準距離を更新する請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
前記更新部は、前記距離情報の前記時間的変化が前記基準値よりも小さい期間が、予め定められた期間よりも長いときに、前記基準距離を更新する請求項４記載の情報処理装置。
【請求項６】
前記距離情報取得部は、異なる時刻における複数の前記距離情報を保持するバッファを備え、
前記更新部は、前記バッファに保持された前記距離情報に基づいて前記基準距離を更新する請求項１〜５のいずれか１つに記載の情報処理装置。
【請求項７】
更新された前記基準距離に基づいて前記映像を変換する映像変換部をさらに備えた請求項１〜６のいずれか１つに記載の情報処理装置。
【請求項８】
前記基準距離は、第１基準距離と、第２基準距離と、を含み、
前記操作検出部は、前記第１基準距離に基づいて、前記操作を検出し、
前記映像変換部は、前記第２基準距離に基づいて、前記映像を変換し、
前記更新部は、第１期間に前記第１基準距離を更新し、前記第１期間とは異なる第２期間に前記第２基準距離を更新する請求項７記載の情報処理装置。
【請求項９】
前記投影面のうちの少なくとも一部までの距離を測定する距離計測部をさらに備え、
前記距離情報は、前記距離計測部と前記投影面との間の距離に基づく請求項１〜８のいずれか１つに記載の情報処理装置。
【請求項１０】
請求項１〜９のいずれか１つに記載の情報処理装置と、
前記物体に前記映像を投影する映像投影部と、
を備えた映像投影装置。
【請求項１１】
映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得し、
基準距離と、前記距離情報と、に基づいて指示体による操作を検出し、
検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新する情報処理方法であって、
前記基準距離は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて変更される情報処理方法。
【請求項１２】
コンピュータに、
映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得させ、
基準距離と、前記距離情報とに基づいて、指示体による操作を検出させ、
検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新させるプログラムであって、
前記基準距離は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて変更されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、映像投影装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
壁や机上面などの物体面に対する指やペンなどの指示体による操作（ジェスチャ）を、検出する情報処理装置が開発されている。また、このような情報処理装置を用いた映像投影装置が開発されている。このような映像投影装置は、映像が投影される物体面と映像投影装置との相対的位置及び向き、投影面の形状に応じて、映像の歪を除去するように、映像を変換する。さらに、映像投影装置は、指示体を用いた投影像への操作を検出し、検出された操作を投影像に反映させる。映像の変換の安定性や操作の検出の安定性を向上させることが望まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−３４１６８号公報
【非特許文献】
【０００４】
【非特許文献１】Ａ．Ｄ．Ｗｉｌｓｏｎ．  ”Ｕｓｉｎｇ  ａ  ｄｅｐｔｈ  ｃａｍｅｒａ  ａｓ  ａ  ｔｏｕｃｈ  ｓｅｎｓｏｒ”．  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｔａｂｌｅｔｏｐｓ  ａｎｄ  Ｓｕｒｆａｃｅｓ，  ６９−７２，  ２０１０
【非特許文献２】Ｒ．Ｒａｓｋａｒ，  ”Ｔｈｅ  Ｏｆｆｉｃｅ  ｏｆ  ｔｈｅ  Ｆｕｔｕｒｅ：Ａ  Ｕｎｉｆｉｅｄ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｉｍａｇｅ−Ｂａｓｅｄ  Ｍｏｄｅｌｉｎｇ  ａｎｄ  Ｓｐａｔｉａｌｌｙ  Ｉｍｍｅｒｓｉｖｅ  Ｄｉｓｐｌａｙｓ．”，  Ｐｒｏｃ．  ＳＩＧＧＲＡＰＨ  ｐｐ．１７９−１８８，  １９９８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、指示体による操作を検出する情報処理装置において、検出の安定性を向上させた情報処理装置、映像投影装置、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の実施形態によれば、距離情報取得部と、操作検出部と、更新部と、を含む情報処理装置が提供される。前記距離情報取得部は、映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得する。前記操作検出部は、基準距離と、前記距離情報と、に基づいて指示体による操作を検出する。前記更新部は、検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新する。前記更新部は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて前記基準距離を変更する。
本発明の別の実施形態によれば、映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得し、基準距離と、前記距離情報と、に基づいて指示体による操作を検出し、検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新する情報処理方法が提供される。前記基準距離は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて変更される。
本発明の別の実施形態によれば、コンピュータに、映像が投影される投影面の少なくとも一部を含む物体までの距離に関する距離情報を取得させ、基準距離と前記距離情報とに基づいて、指示体による操作を検出させ、検出された前記操作の時間的変化と、取得された前記距離情報の時間的変化と、に基づいて前記基準距離を更新させるプログラムが提供される。前記基準距離は、前記操作が行われていないと検出された時刻における前記距離情報に基づいて変更される。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る情報処理装置を示すブロック図である。
【図２】第１の実施形態に係る情報処理装置の使用状態の一例を示す模式的斜視図である。
【図３】第１の実施形態に係る情報処理装置の使用状態の一例を示す模式的斜視図である。
【図４】第１の実施形態に係る情報処理装置の更新部を示すブロック図である。
【図５】条件判定部の動作を示す模式図である。
【図６】第２の実施形態に係る情報処理装置を示すブロック図である。
【図７】第２の実施形態に係る情報処理装置の使用状態の一例を示す模式的斜視図である。
【図８】第２の実施形態に係る情報処理装置の使用状態の一例を示す模式的斜視図である。
【図９】第３の実施形態に係る情報処理装置の使用状態の一例を示す模式的斜視図である。
【発明を実施するための形態】
【０００８】
以下に、各実施の形態について図面を参照しつつ説明する。  
なお、図面は模式的または概念的なものであり、各部分の厚みと幅との関係、部分間の大きさの比率などは、必ずしも現実のものと同一とは限らない。また、同じ部分を表す場合であっても、図面により互いの寸法や比率が異なって表される場合もある。  
なお、本願明細書と各図において、既出の図に関して前述したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
【０００９】
（第１の実施形態）  
本実施形態は、任意の物体表面への操作を検出する情報処理装置に関する。図１に表したブロック図は、本実施形態にかかる情報処理装置１００ａの構成の一例であり、必ずしも実際のプログラムモジュールの構成とは一致しない場合がある。
【００１０】
図１に表した情報処理装置１００ａは、距離情報取得部１０１と、更新部１０２と、操作検出部１０３と、を含む。本実施形態では、情報処理装置１００ａは、距離センサ２００（距離計測部）及び制御装置３００を含む周辺装置に接続されている。
【００１１】
距離センサ２００及び制御装置３００として、情報処理装置１００ａとは異なる外部の装置を用いることができる。情報処理装置１００ａが、距離センサ２００及び制御装置３００を含んでもよい。距離センサ２００及び制御装置３００は、後述する映像投影部５００に内蔵されていてもよい。制御装置３００は、例えば、コンピュータなどである。図１に示したハードウェア構成は、一例である。実施形態に係る情報処理装置の一部、又は全部として、ＬＳＩ（Large Scale Integration）等の集積回路、または、ＩＣ（Integrated Circuit）チップセットを用いることができる。各機能ブロックを個別にプロセッサ化してもよい。各機能ブロックの一部又は全部を集積してプロセッサ化してもよい。ＬＳＩに限らず、専用回路又は汎用プロセッサで集積回路化してもよい。
【００１２】
距離センサ２００は、映像が投影させる投影面を含む物体までの距離を測定する。距離情報取得部１０１は、距離センサ２００によって測定された距離情報を取得し、例えば保持する。  
操作検出部１０３は、距離情報取得部１０１から距離情報を受け取り、受け取った距離情報と、後述の基準距離と、を用いて、投影面への操作を検出する。  
更新部１０２は、例えば距離情報取得部１０１から距離情報を受け取る。さらに、操作検出部１０３によって検出された操作状態に関する情報を受け取る。更新部１０２は、受け取った距離情報及び操作状態に関する情報に基づいて、適宜、基準距離を更新する。操作検出部１０３は、このようにして更新される基準距離に基づいて、操作を検出する。  
制御装置３００は、操作状態に関する情報や、基準距離を受け取る。例えば、制御装置３００は、受け取った情報に基づいて、映像を変化させる等の処理を行う。
【００１３】
図２及び図３は、第１の実施形態に係る情報処理装置の使用状態の一例を例示する模式斜視図である。  
この例では、情報処理装置１００ａと、距離センサ２００と、制御装置３００とが、一つの筐体１０００に含まれているとして説明するが、本実施形態はこれに限るものではない。情報処理装置１００ａ及び制御装置３００は、それぞれ離れた場所に配置されていてもよい。
【００１４】
本実施形態では、距離センサ２００は、対象物との距離情報を二次元的に取得することが可能な、距離画像センサであるものとして説明する。通常のカメラが撮像対象の色情報を二次元的な配列＝画像として取得するように、距離画像センサは、撮像対象まで距離を二次元的な配列（距離画像）として取得することができる。距離画像の取得方法としては、赤外線パターン照射方式（対象に赤外線のパターンを照射し、赤外線カメラでパターンを検出し、三角測量により距離を測定する方式）、または、Time-of-Flight方式（対象に投光し、光の往復にかかった時間を計測することで距離を測定する方式）などがある。その他の距離取得方法を用いるセンサでも良い。距離画像センサが取得する距離情報をｄ（ｘ，ｙ，ｔ）とあらわす。ここで、ｘ及びｙは取得した距離画像の画像座標、ｔは取得した時刻をあらわす。
【００１５】
例えば、このようなセンサを用いて、壁や机上面など任意の物体面に対する、ペンや指示棒または指などの指示体による操作を検出することができる。例えば、距離センサを用いて、机上面への接触判定（タッチ検出）を行うことができる。
【００１６】
図２に表した物体２０は、面Ａ１を有する。物体２１は、面Ａ２を有する。面Ａ１及び面Ａ２はそれぞれ、操作検出の対象となりうる物体表面である。例えば、面Ａ１は壁面、面Ａ２は机上面である。本実施形態では、操作検出対象となる物体表面が平面であるとして説明する。なお、本実施形態は、これに限られない。実施形態において、物体表面は凹凸を含む非平面でも良い。
【００１７】
図２に表した測定範囲Ｂ１は距離センサ２００が距離を測定する範囲を表す。指示体Ｃ１は、例えば、指または指示棒などの物体である。指示体Ｃ１によって面Ａ１または面Ａ２などの物体に向けて操作が行われる。本実施形態では、測定範囲Ｂ１における指示体Ｃ１による操作を検出する。
【００１８】
ここで、距離センサ２００と距離測定範囲との間に、操作の検出対象となる物体表面以外の遮蔽物が含まれていない場合の距離情報を基準距離Ｄ０（ｘ，ｙ）と呼ぶ。物体表面への操作は、後述の操作検出部１０３において、基準距離Ｄ０（ｘ，ｙ）に基づいて検出される。測定範囲Ｂ１には、距離センサ２００の画角内全てを用いても良いし、一部を用いても良い。
【００１９】
図３に、筐体１０００の位置または向き（位置姿勢）が変化した状態を示す。筐体１０００の位置または向きの変化に伴い、測定範囲Ｂ１は、測定範囲Ｂ２に変化する。  
このように筐体１０００の位置姿勢が変化した場合に、それに伴って、基準距離Ｄ０（ｘ，ｙ）を自動的に更新し、操作検出の対象となる物体表面を面Ａ２へ変更することが望ましい。
【００２０】
例えば、操作検出の対象となる物体表面と筐体１０００との間の距離が変化した場合に、基準距離Ｄ０（ｘ，ｙ）を更新する。すなわち、筐体１０００の位置姿勢が変化した場合だけでなく、物体表面の位置姿勢または形状が変化した場合にも基準距離Ｄ０（ｘ，ｙ）を更新する。
【００２１】
筐体１０００の位置姿勢の変化のみであれば、筐体１０００に加速度センサなど設けて検出することができる。しかし、筐体１０００に設けられた加速度センサの信号のみを用いて、物体表面の位置姿勢または形状の変化を検出できない。
【００２２】
距離情報の時間差分など、距離情報の時間的な変化を用いて、筐体１０００の位置姿勢、物体表面の位置姿勢、及び、形状変化を検出することができる。しかし、指示体Ｃ１による操作によっても距離情報は変化する。例えば、距離測定範囲において、操作の検出対象となる物体表面と距離センサ２００との間に指示体Ｃ１が配置されたときに距離情報は変化する。距離情報のみを用いて、位置姿勢の変化と指示体Ｃ１による変化とを区別することは容易ではない。
【００２３】
そこで、本実施形態では、後述の更新部１０２において、距離情報の時間的な変化と、指示体による操作状態（操作の時間的な変化）と、に基づいて、基準距離Ｄ０（ｘ，ｙ）を更新するか否かを決定し、適宜更新を行う。
【００２４】
距離情報取得部１０１は、物体までの距離に関する距離情報を、取得する。例えば、距離情報取得部１０１は、距離センサ２００が取得する少なくとも一つ以上の時刻の距離情報を保持する。距離情報取得部１０１は、互いに異なる時刻における複数の距離情報を保持するバッファを含んでもよい。
【００２５】
更新部１０２は、距離情報取得部１０１が保持する少なくとも一つ以上の時刻の距離情報と、操作検出部１０３が出力する操作情報と、に基づいて基準距離Ｄ０（ｘ，ｙ）を更新するか否かを決定し、適宜更新を行う。
【００２６】
図４は、第１の実施形態に係る情報処理装置の更新部を例示するブロック図である。  
距離変化量算出部１０２１は、距離情報の時間的な変化を算出する。次式に従い距離変化量を定義する。
【数１】
0005850970.tif 000002
ここで、
【数２】
0005850970.tif 000003
である。ＲＯＩは取得された距離画像内における、距離変化量の算出に使用する画素の集合を表す。ＮＲＯＩは、ＲＯＩに含まれる画素数を表す。
【００２７】
条件判定部１０２２は、距離変化量算出部１０２１によって計算された距離変化量と、操作検出部１０３によって検出された操作情報と、に基づいて基準距離を更新するか否かを判定する。本実施形態では、距離情報の時間変化量が小さく、かつ、操作が行われていない状態が一定期間連続した場合に、基準距離Ｄ０（ｘ，ｙ）を更新する。
【００２８】
図５は、条件判定部の動作を例示する模式図である。  
条件判定部１０２２が判定を行うプロセスを状態遷移図で示す。図５に表したように、例えば、３つの状態「動的状態Ｓ１」、「待機状態Ｓ２」、及び「静止状態Ｓ３」があり、それぞれ破線で囲った条件のもとで状態間を遷移する。実線で囲った処理が、状態遷移時に行われる。
【００２９】
以下、状態遷移の流れについて、図５を用いて説明する。Ｅｍｉｎは、距離変化量の大小を決定する閾値である。Ｆｏｐは、操作情報から決定される２値変数である。Ｆｏｐ＝１ならば、操作中である。Ｆｏｐ＝０ならば、操作が行われていない。Ｆｕｐｄａｔｅは、条件判定部１０２２の出力であり、Ｆｕｐｄａｔｅ＝１ならば更新を行い、Ｆｕｐｄａｔｅ＝０ならば更新しない。すなわち、更新部１０２は、Ｆｕｐｄａｔｅ＝１のときには基準距離Ｄ０（ｘ，ｙ）を更新する第１動作を実施し、Ｆｕｐｄａｔｅ＝０のときには基準距離Ｄ０（ｘ，ｙ）を更新しない第２動作を実施する。
【００３０】
以下、初期状態が「動的状態Ｓ１」であるとして説明する。距離変化量が閾値以上(Ｅｔ≧Ｅｍｉｎ)である場合、または、操作中（Ｆｏｐ＝１）の場合には、状態は「動的状態Ｓ１」に留まり続ける。  
ここでｎは状態遷移のためのカウンタであり、「動的状態Ｓ１」に留まっている間では、ｎ＝０である。
【００３１】
距離変化量が閾値以下(Ｅｔ＜Ｅｍｉｎ)となり、かつ、操作が行われていない（Ｆｏｐ＝０）場合に、「動的状態Ｓ１」から「待機状態Ｓ２」に遷移する。距離変化量が閾値未満である場合は、「待機状態Ｓ２」に留まり続け、カウンタｎは増加していく。「待機状態Ｓ２」の間に距離変化量が閾値以上となった場合は、「動的状態Ｓ１」に遷移し、カウンタｎは０にリセットされる。
【００３２】
カウンタｎが増加しｎ＞Ｎとなった場合、「待機状態Ｓ２」から「静止状態Ｓ３」に遷移する。この時、条件判定部１０２２は、Ｆｕｐｄａｔｅ＝１とし、更新を行うと判定する。距離変化量が閾値未満である場合は、「静止状態Ｓ３」に留まり続け、距離変化量が閾値以上の場合は「動的状態Ｓ１」に遷移する。いずれの場合もＦｕｐｄａｔｅ＝０とする。更新部１０２は、操作が行われている「動的状態Ｓ１」においては、基準距離Ｄ０（ｘ，ｙ）を更新しない。
【００３３】
以上より、距離情報の時間変化量が小さくかつ操作が行われていない状態が一定期間連続した場合に基準距離Ｄ０（ｘ，ｙ）を更新することができる。
【００３４】
すなわち、第１動作において、操作が行われていないと検出された期間が、あらかじめ定められた期間よりも長く続いたときに、基準距離Ｄ０（ｘ，ｙ）は、更新される。  
第１動作において、距離情報の時間的変化が基準値（Ｅｍｉｎ）よりも小さいときに、基準距離Ｄ０（ｘ，ｙ）は更新される。例えば、距離情報の時間的変化が基準値（Ｅｍｉｎ）よりも小さい期間が予め定められた期間よりも長く続いたときに、基準距離Ｄ０（ｘ，ｙ）は更新される。
【００３５】
基準距離更新部１０２３では、距離情報取得部１０１に保持されている少なくとも一つ以上の時刻の距離情報から基準距離Ｄ０（ｘ，ｙ）を再計算する。ここで更新する時刻をｔｕｐｄａｔｅとあらわす。最も単純な基準距離Ｄ０（ｘ，ｙ）の計算方法は、基準距離Ｄ０（ｘ，ｙ）＝ｄ（ｘ，ｙ，ｔｕｐｄａｔｅ）とする方法である。  
第１動作は、操作が行われていないと検出された時刻における距離情報に基づいて基準距離Ｄ０（ｘ，ｙ）を変更する。例えば、第１動作において、距離情報の時間的変化が基準値（Ｅｍｉｎ）よりも小さい第１時刻であって、操作が行われていないと検出された第１時刻における距離情報に基づいて、基準距離Ｄ０（ｘ，ｙ）が変更される。
【００３６】
距離情報取得部１０１（またはバッファ）に保持されている、互いに異なる時刻における複数の距離情報から基準距離Ｄ０（ｘ，ｙ）を求めても良い。例えば、複数の時刻の距離情報の平均値、最頻値、中央値、最小値、または最大値などを用いることで、距離情報に含まれるノイズなどの影響を抑制し、基準距離Ｄ０（ｘ，ｙ）を求めることが出来る。
【００３７】
基準距離記憶部１０２４は基準距離Ｄ０（ｘ，ｙ）を保持する。条件判定部１０２２により基準距離Ｄ０（ｘ，ｙ）を更新する判定がなされた場合は、基準距離更新部１０２３によって、基準距離記憶部１０２４の保持している基準距離Ｄ０（ｘ，ｙ）が更新される。
【００３８】
操作検出部１０３は、基準距離Ｄ０（ｘ，ｙ）と距離情報とを用いて操作を検出する。例えば、基準距離Ｄ０（ｘ，ｙ）と距離情報ｄ（ｘ，ｙ，ｔ）との差に基づいて、差が特定の範囲内の場合には、操作が行われていると検出する。本実施形態では、指やペンなどの指示体Ｃ１による物体表面へのタッチ操作を検出する。なお、本実施形態はこれに限らない。実施形態において、距離情報を元に検出可能な操作であれば、いかなる種類の操作を検出しても良い。
【００３９】
物体表面への距離（基準距離Ｄ０（ｘ，ｙ））が分かっているため、物体表面にタッチしている指示体Ｃ１の場所は次式で判別できる。
【数３】
0005850970.tif 000004
ここで、Ｄｍａｒｇｉｎ（ｘ，ｙ）は、検出用のパラメータである。パラメータを適切に設定することにより、Ｎｅａｒ（ｘ，ｙ）＝１ならば、座標（ｘ，ｙ）の位置において、指示体によるタッチ操作が行われていると見なすことができる。
【００４０】
指やペンなどある程度の太さを持つ指示体Ｃ１によるタッチが発生した場合、タッチなどの操作が行われた領域は、Ｎｅａｒ（ｘ，ｙ）＝１となる画素が連結した領域として検出される。  
物体表面の複数の点（領域）がタッチされた場合、タッチされた点の数には、連結領域の数を用いることができる。また、連結領域のそれぞれの重心の座標を、タッチされた領域の座標として用いることができる。ここで、Ｎｅａｒ（ｘ，ｙ）＝１である連結成分の数が小さい領域、すなわち連結領域の面積が小さい領域を棄却してもよい。これにより、距離情報に含まれるノイズなどの影響を抑制し、操作を求めることができる。
【００４１】
検出した連結領域の数（タッチ点数）、及び連結領域の座標（タッチ座標）は、制御装置３００に操作情報として出力される。本実施形態においては、連結領域の数が１以上の場合に「操作中」、０の時に「操作が行われていない」とする。このような操作情報が更新部１０２に出力される。
【００４２】
制御装置３００は、操作検出部１０３が検出した操作情報に基づいて操作を決定する。例えば、タッチ座標とタッチ点数を元にタッチイベントやフリック操作を発行する、などの処理を行う。
【００４３】
前述のように、距離情報ｄ（ｘ，ｙ，ｔ）を用いて、物体表面の位置及び向きの変化を検出することができる。しかしながら、指示体Ｃ１を物体表面に近づけた場合にも、距離情報は変化する。このため、距離情報ｄ（ｘ，ｙ，ｔ）のみを用いた場合、物体表面の位置及び向きの変化による距離の変化と、ジェスチャによる距離の変化と、を区別することが難しい。そのため、指示体Ｃ１を物体表面に近づけたことによる距離の変化を、物体表面の位置及び向きの変化として検出してしまい、操作の検出の安定性が低下する場合がある。
【００４４】
これに対して、本実施形態においては、物体表面までの距離の時間的な変化と、指示体による操作の状態と、を参照し、物体表面までの基準距離Ｄ０（ｘ，ｙ）を好適なタイミングで更新する。例えば、指示体Ｃ１による操作中に基準距離が更新されないため、操作の安定性・快適性を高めることができる。
【００４５】
(第２の実施形態)  
本実施形態は、任意の物体表面に表示された映像への操作を検出する情報処理装置に関する。  
例えば、プロジェクタとセンサとを組み合わせることによって、壁や机などの任意の物体表面に映像を投影することができる。任意の物体面に対して投影を行う場合、物体の正面方向から投影できない場合や、物体面が非平面である場合がある。このような場合、投影された映像に歪みが発生することがある。本実施形態において、映像は、情報処理装置の処理に基づいて変形され、物体表面へ歪みなく表示される。  
本実施形態においては、投影面の形状に応じた映像の変形とジェスチャ操作とが組み合わされる。例えば、投影対象の物体表面とプロジェクタとの間の相対位置及び向きの変化に応じて、歪みを除去するように投影像を変化させると共に、指やペンなどの指示体を用いたジェスチャによる投影像への操作を検出し、投影像に反映させる。
【００４６】
図６は、第２の実施形態に係る情報処理装置を例示するブロック図である。  
図６には、情報処理装置１００ｂ及びその周辺装置が示されている。本実施形態の情報処理装置１００ｂは、距離情報取得部１０１、更新部１０２及び操作検出部１０３に加えて、映像変換部１０４をさらに含む。
【００４７】
本実施形態では、周辺装置として、距離センサ２００、制御装置３００、映像入力部４００、及び映像投影部５００が用いられる。情報処理装置１００ｂは、これらの周辺装置のそれぞれと接続されているとして説明する。実施形態において、これらの周辺装置は、必要に応じて設けられる。
【００４８】
以下、本実施形態について説明する。簡便のために、第１の実施形態と同様の動作をする部分に関しては説明を省き、動作の異なる部分について説明する。
【００４９】
図７及び図８は、第２の実施形態に係る情報処理装置の使用状態の一例を例示する模式的斜視図である。  
本実施形態では情報処理装置１００ｂと、距離センサ２００と、制御装置３００とが一つの筐体１００１に含まれているとして説明する。但し、実施形態は、これに限らない。実施形態において、情報処理装置１００ｂ、制御装置３００及び映像入力部４００のそれぞれは、互いに離れた場所に配置されていてもよい。
【００５０】
情報処理装置１００ｂとして、ＬＳＩやＩＣなどを用いることができる。情報処理装置１００ｂは、映像入力部４００及び映像投影部５００などを含むプロジェクタに内蔵されてもよい。実施形態は、情報処理装置１００ｂと映像投影部５００とを含む映像投影装置（プロジェクタ）であってもよい。  
情報処理装置１００ｂは、プロジェクタとは別に設けられても良い。情報処理装置１００ｂとして、専用又は汎用のプロセッサを用いても良い。情報処理装置１００ｂとして、制御装置３００（例えばコンピュータ）に含まれるプロセッサなどを用いてもよい。情報処理装置１００ｂの各機能ブロックの一部が、プロジェクタに集積回路として組み込まれてもよい。情報処理装置１００ｂの各機能ブロックの一部として、個別のプロセッサを用いてもよい。  
以下、映像投影部５００をプロジェクタとして説明する。
【００５１】
図７に示す様に、映像投影部５００は任意の物体表面に対して、映像変換部１０４によって変換された映像を投影する。物体２０または２１は、映像が投影される投影面（例えば面Ａ１またはＡ２）を含む。投影範囲Ｄ１は、投影面に投影された映像の範囲を表す。距離センサ２００は、投影面の少なくとも一部までの距離を測定する。距離情報ｄ（ｘ，ｙ，ｔ）は、距離センサ２００と、投影面の少なくとも一部と、の間の距離に基づく。
【００５２】
図８は、筐体１００１の位置姿勢が変化した状態を示す。筐体１００１の位置姿勢の変化に伴い、投影範囲Ｄ１は、投影範囲Ｄ２のように変化する。これにより、例えば、投影像が歪んでしまう場合がある。
【００５３】
映像変換部１０４は、投影対象である物体表面の形状を、更新部１０２が算出する基準距離Ｄ０（ｘ，ｙ）を用いて求める。そして、物体表面の形状から、投影時に発生する歪みを予め推測し、歪みを除去するように、映像を変換する。距離センサ２００が取得する距離情報ではなく、基準距離Ｄ０（ｘ，ｙ）を用いることで、操作による距離変化を無視し、物体表面の位置・形状変化のみに対応した歪みの除去が可能となる。
【００５４】
投影像の歪みを除去するような変形は、Ｔｗｏ−Ｐａｓｓ  Ｒｅｎｄｅｒｉｎｇを用いて、実施できる。Ｔｗｏ−Ｐａｓｓ  Ｒｅｎｄｅｒｉｎｇでは、投影像を観察する視点の位置を予め定め、その視点において歪みのない映像を観察できるように投影像を変形する。まず、予め定めた視点位置に仮想的にプロジェクタを設置し、実際のプロジェクタの位置で投影像を観測したときの映像を生成する。プロジェクタの画角や解像度などの内部情報と、投影面の形状が既知であれば生成が可能である。生成された画像は、逆歪みをかけた画像と見なすことができるため、生成された画像を実際のプロジェクタから投影すれば、予め定めた視点位置では歪みが除去された映像が観測される。
【００５５】
投影面が平面である場合、単純な台形歪みのみが発生するため、Ｔｗｏ−Ｐａｓｓ  Ｒｅｎｄｅｒｉｎｇを用いずとも、既存の台形補正により歪みを除去できる。投影面の形状が分かっているため、台形補正に必要なパラメータは簡単に求めることができる。例えば投影面の法線を計算することにより、プロジェクタと投影面との相対的な角度が分かるため、この角度に応じて台形補正を行う。
【００５６】
操作検出部１０３は、第１の実施形態と同様に、基準距離Ｄ０（ｘ，ｙ）と距離情報ｄ（ｘ，ｙ，ｔ）とに基づいて操作を検出する。本実施形態では投影された映像への操作を検出する。例えば、投影された映像に対するタッチ操作を検出することで、投影像をタッチディスプレイのように操作することができる。すなわち、映像変換部１０４は、検出された操作に基づいて映像を変換する。
【００５７】
例えば、操作検出部１０３が参照する基準距離と、映像変換部１０４が参照する基準距離とは、異なっていてもよい。操作検出部１０３が参照する基準距離が更新される時期（タイミング）と、映像変換部１０４が参照する基準距離が更新されるタイミングとを、異なるタイミングとすることができる。すなわち、基準距離Ｄ０（ｘ，ｙ）は、第１の基準距離と、第２の基準距離とを含む。操作検出部１０３は、第１の基準距離に基づいて操作を検出し、映像変換部１０４は、第２の基準距離に基づいて映像を変換する。更新部１０２は、第１期間において第１の基準距離を更新し、第１期間とは異なる第２期間において、第２の基準距離を更新する。
【００５８】
更新部１０２が基準距離Ｄ０（ｘ，ｙ）を更新するタイミングは、ユーザが調整可能であってもよい。例えば、距離変化量の閾値Ｅｍｉｎ、またはカウンタｎの閾値Ｎなどを調整可能とする。  
例えば、加速度センサを映像投影部５００に設けてもよい。加速度センサによって検出された映像投影部５００の位置または向きに関する情報と、距離情報とに基づいて、基準距離Ｄ０（ｘ，ｙ）を更新するタイミングを調整（変更）してもよい。  
操作検出部１０３は、操作の種類を検出し、更新部１０２は、検出された操作の種類によって基準距離Ｄ０（ｘ，ｙ）を変更するタイミングを変更してもよい。操作の種類には、例えば、タップ（物体表面をタッチする操作）、フリック（物体表面を撫でる操作）などがある。  
これらの調整によって、より好適なタイミングでＤ０（ｘ，ｙ）を更新することができる。
【００５９】
本実施形態によれば、任意の物体表面へ映像を歪みなく表示するために映像を変換し、表示された映像への操作を検出することができる。  
前述のように、距離情報ｄ（ｘ，ｙ）のみを用いて検出を行う場合、物体表面の位置及び向きの変化による距離の変化と、ジェスチャによる距離の変化と、を区別することが難しい。指示体Ｃ１を物体表面に近づけたことによる距離の変化を、物体表面の位置及び向きの変化、又は、プロジェクタの位置及び向きの変化、として検出してしまい、投影像に不要な変形が発生し、投影像が乱れる恐れがある。この場合、指示体による操作中に投影像の投影位置が変化してしまい、操作が困難になる恐れがある。例えば、タッチ操作を行うような場合、意図した位置をタッチすることが困難となる場合がある。
【００６０】
これに対して、実施形態においては、基準距離Ｄ０（ｘ，ｙ）と距離情報ｄ（ｘ，ｙ，ｔ）とに基づいて操作を検出する。基準距離Ｄ０（ｘ，ｙ）は、距離情報ｄ（ｘ，ｙ）と操作の状態とに基づいて更新される。これにより、指示体による操作時に、投影像が不要に変化することを抑制できる。
【００６１】
（第３の実施形態）  
本実施形態は、物体表面へ向けた指示体による操作を検出するプログラムに関する。第１または第２の実施形態と同様の処理を行う情報処理装置１００ｃが、コンピュータ上のプログラムによって実現される場合について説明する。簡便のため、第２の実施形態と同様の動作をするものとして説明する。
【００６２】
図９は、第３の実施形態に係る情報処理装置の使用状態の一例を例示する模式的斜視図である。  
この例では、コンピュータＥ１は、距離センサ２００及び映像投影部５００と接続されている。本実施形態では、映像投影部５００にはプロジェクタを用いる。コンピュータＥ１は、プロセッサ３１と、記憶装置３２と、を有する。記憶装置３２には、ハードディスク等が用いられるが、ＣＤ、ＤＶＤまたはフラッシュメモリなどの記憶媒体を用いてもよい。例えば記憶装置３２に、情報処理装置１００ｃを実行するためのプログラムが記憶されている。例えば、プログラムは、記憶媒体またはネットワークを介して取得され、コンピュータＥ１に適宜インストールされる。プロセッサ３１によってプログラムが実行され、情報処理装置１００ｃにおける処理が実行される。例えば、記憶装置３２は、距離情報を保持するためのバッファとしても用いられる。
【００６３】
本実施形態においては、距離情報は、距離センサ２００からコンピュータＥ１に入力され、情報処理装置１００ｃに渡される。入力される映像は、コンピュータＥ１が保持している画像ファイルや動画ファイルなどである。コンピュータＥ１のデスクトップ画面を入力としてもよい。操作検出部１０３が検出した操作情報は、コンピュータＥ１上のオペレーティングシステム（ＯＳ）に出力され、クリックやタップ、フリック、拡大縮小などのイベントが発行される。変換後の映像は、映像投影部５００に送られ、投影される。
【００６４】
本実施形態では、距離センサ、プロジェクタ及びコンピュータを組み合わせることによって、情報処理装置を実現できるため、専用のハードウェアを必要とせず、導入コストを小さくできるメリットがある。
【００６５】
実施形態によれば、指示体による操作を検出する情報処理装置において、検出の安定性を向上させた情報処理装置が提供できる。
【００６６】
以上、具体例を参照しつつ、本発明の実施の形態について説明した。しかし、本発明の実施形態は、これらの具体例に限定されるものではない。例えば、距離情報取得部、操作検出部、更新部、基準距離、距離情報、指示体、映像変換部、距離計測部及び映像投影部などの各要素の具体的な構成に関しては、当業者が公知の範囲から適宜選択することにより本発明を同様に実施し、同様の効果を得ることができる限り、本発明の範囲に包含される。  
また、各具体例のいずれか２つ以上の要素を技術的に可能な範囲で組み合わせたものも、本発明の要旨を包含する限り本発明の範囲に含まれる。
【００６７】
その他、本発明の実施の形態として上述した情報処理装置、映像投影装置及びプログラムを基にして、当業者が適宜設計変更して実施し得る全ての情報処理装置、映像投影装置及びプログラムも、本発明の要旨を包含する限り、本発明の範囲に属する。
【００６８】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７０】
２０、２１…物体、  ３１…プロセッサ、  ３２…記憶装置、  １００ａ〜１００ｃ…情報処理装置、  １０００、１００１…筐体、  １０１…距離情報取得部、  １０２…更新部、  １０２１…距離変化量算出部、  １０２２…条件判定部、  １０２３…基準距離更新部、  １０２４…基準距離記憶部、  １０３…操作検出部、  １０４…映像変換部、  ２００…距離センサ、  ３００…制御装置、  ４００…映像入力部、  ５００…映像投影部、  Ａ１、Ａ２…面、  Ｂ１、Ｂ２…測定範囲、  Ｃ１…指示体、  Ｄ１、Ｄ２…投影範囲、  Ｅ１…コンピュータ、  Ｓ１…動的状態、  Ｓ２…待機状態、  Ｓ３…静止状態
【図１】
0005850970.tif 000005
【図２】
0005850970.tif 000006
【図３】
0005850970.tif 000007
【図４】
0005850970.tif 000008
【図５】
0005850970.tif 000009
【図６】
0005850970.tif 000010
【図７】
0005850970.tif 000011
【図８】
0005850970.tif 000012
【図９】
0005850970.tif 000013