(57)【要約】【課題】指や指示棒などの指示体を検出可能な情報処理装置において、精度よく指示体を検出することができる、あるいは安定的に指示体を検出することができる情報処理装置を提供する。【解決手段】実施形態によれば、検出部と、ベクトル算出部と、決定部と、を備えた情報処理装置が提供される。前記検出部は、基準面から互いに異なる距離に設定された複数の検出範囲にまたがって存在する物体を検出し、前記検出範囲において検出された前記物体の代表点の位置を求める。前記算出部は、複数の前記代表点の位置に基づいて３次元のベクトルを求める。前記決定部は、前記ベクトルに基づいて前記物体による入力操作の内容を決定する。【選択図】図１
2015064724.tif 000002
【特許請求の範囲】
【請求項１】
基準面から互いに異なる距離に設定された複数の検出範囲にまたがって存在する物体を検出し前記検出範囲において検出された前記物体の代表点の位置を求める検出部と、
複数の前記代表点の位置に基づいて３次元のベクトルを求めるベクトル算出部と、
前記ベクトルに基づいて前記物体による入力操作の内容を決定する決定部と、
を備えた情報処理装置。
【請求項２】
前記決定部は、前記ベクトルの角度に基づいて前記入力操作の内容を決定する請求項１記載の情報処理装置。
【請求項３】
前記決定部は、前記ベクトルの角度に基づいて前記物体を操作する操作者の位置を決定する請求項１または２に記載の情報処理装置。
【請求項４】
前記物体が複数存在し、
前記決定部は、前記複数の前記物体のそれぞれに対応する前記ベクトルの角度に基づいて前記複数の前記物体のうちの少なくとも２つを互いに一組と決定する請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
前記物体までの距離を測定する距離計測部をさらに備え、
前記検出部は、前記距離計測部が測定した前記距離に基づいて前記物体を検出し前記代表点の位置を求める請求項１〜４のいずれか１つに記載の情報処理装置。
【請求項６】
前記物体の入力座標を求める座標算出部をさらに備え、
前記決定部は、前記入力座標および前記ベクトルの少なくともいずれかに基づいて前記入力操作の内容を決定する請求項１〜５のいずれか１つに記載の情報処理装置。
【請求項７】
前記座標算出部は、前記ベクトルを用いて前記入力座標を求める請求項６記載の情報処理装置。
【請求項８】
前記決定部は、前記入力座標の位置および前記入力座標の時間的な変化の少なくともいずれかに基づいて前記入力操作の内容を決定する請求項６または７に記載の情報処理装置。
【請求項９】
映像を投影して表示する投影部をさらに備えた請求項１〜８のいずれか１つに記載の情報処理装置。
【請求項１０】
前記決定部が決定した前記入力操作の内容を、前記投影部の座標系に合わせて変換する変換部をさらに備えた請求項９記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
近年、壁面や机上面、ホワイトボード等に対し、タッチ操作を可能にする装置および技術が開発されている。また、装置がプロジェクタ等と連携し、任意の物体面を仮想タッチディスプレイ化することも可能となっている。従来では、タッチ検出用の大型のセンサを物体面に取り付ける必要があり、適用可能な物体面は限定されていた。近年では、赤外線を発する電子ペン等、専用のデバイスを用いることで、任意の物体面への操作を検出する方式が提案されている。しかし、専用デバイスを用いる装置では、専用デバイス以外の操作、例えば、指や指示棒などの指示体による操作が検出されない。これに対して、離れた位置に配置したカメラ等のセンサで物体面をセンシングし、指や指示棒などの指示体を検出する装置が提案されている。しかし、このような装置では、専用デバイスを用いる方式に比べ、精度よく指示体を検出することが困難であるという問題がある。また、タッチ座標と指示体との間のずれが生じ、安定的に検出することが困難であるという問題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−３５２１号公報
【非特許文献】
【０００４】
【非特許文献１】Extended Multitouch: Recovering Touch Posture and Differentiating Users using a Depth Camera
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、指や指示棒などの指示体を検出可能な情報処理装置において、精度よく指示体を検出することができる、あるいは安定的に指示体を検出することができる情報処理装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、検出部と、ベクトル算出部と、決定部と、を備えた情報処理装置が提供される。前記検出部は、基準面から互いに異なる距離に設定された複数の検出範囲にまたがって存在する物体を検出し、前記検出範囲において検出された前記物体の代表点の位置を求める。前記算出部は、複数の前記代表点の位置に基づいて３次元のベクトルを求める。前記決定部は、前記ベクトルに基づいて前記物体による入力操作の内容を決定する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態にかかる情報処理装置を表すブロック図である。
【図２】本実施形態の情報処理方法を表すフローチャート図である。
【図３】図３（ａ）および図３（ｂ）は、検出範囲および検出された部分を説明する模式的平面図である。
【図４】図４（ａ）および図４（ｂ）は、弁別処理および棄却処理を説明する模試図である。
【図５】複数の検出範囲が設定される場合の例を説明する模式的平面図である。
【図６】ベクトルの算出方法を説明する模式的平面図である。
【図７】物体の角度に応じて出力内容を変更する例を示す模式的平面図である。
【図８】角度が近しい指同士をペアとする例を示す模式的平面図である。
【図９】ベクトルｖｉから疑似的にユーザーの位置を決定する例を示す模式的平面図である。
【図１０】本発明の他の実施の形態にかかる情報処理装置を表すブロック図である。
【図１１】本実施形態の情報処理方法を表すフローチャート図である。
【図１２】２本の指でタッチを続ける場合の例を示す模式的平面図である。
【図１３】本発明のさらに他の実施の形態にかかる情報処理装置を表すブロック図である。
【図１４】本発明のさらに他の実施の形態にかかる情報処理装置を表すブロック図である。
【図１５】本実施形態の情報処理方法を表すフローチャート図である。
【図１６】対応点算出のパターン画像の一例を示す模式的平面図である。
【図１７】本実施形態のコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施の形態について図面を参照しつつ説明する。なお、各図面中、同様の構成要素には同一の符号を付して詳細な説明は適宜省略する。  
図１は、本発明の実施の形態にかかる情報処理装置を表すブロック図である。
【０００９】
本実施形態は、基準面への操作を検出する情報処理装置に関する。本実施形態では、壁面や机上面等を基準面として、基準面に対するタッチ操作を検出する装置および方法について説明する。但し、基準面は非平面であっても良いし、基準面は空中であっても良い。なお、図１に表したブロック図は、本実施形態にかかる情報処理装置１０の要部構成の一例であり、必ずしも実際のプログラムモジュールの構成とは一致しない場合がある。
【００１０】
図１に表した情報処理装置１０は、検出部２００と、ベクトル算出部３００と、決定部４００と、を備える。検出部２００は、複数の検出部を有する。例えば、検出部２００は、第１検出部２０１〜第Ｎ検出部２０Ｎを有する。
【００１１】
情報処理装置１０は、距離計測部１００と、コンピュータ８００と、を備えていてもよい。  
すなわち、距離計測部１００は、情報処理装置１０とは異なる外部の装置であってもよいし、情報処理装置１０が備える装置であってもよい。コンピュータ８００は、情報処理装置１０とは異なる外部のコンピュータであってもよいし、情報処理装置１０が備えるコンピュータであってもよい。あるいは、コンピュータ８００は、後述する表示部６００に内蔵されていてもよい。図１に示したハードウエア構成は、一例であり、各実施形態に係る情報処理装置は一部、又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路又はＩＣ（Integrated Circuit）チップセットとして実現してもよい。各機能ブロックは個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。
【００１２】
距離計測部１００は、基準面や物体（例えば指や指示棒などの指示体）までの距離を測定する。本実施形態では、距離計測部１００として赤外パターン投影方式のセンサを用いる。赤外パターン投影方式は、不可視のパターンを物体に投射し、赤外カメラでパターンを撮影し、その歪みから距離情報を取得する手法である。距離測定結果として、カメラの座標系における座標（ｘ，ｙ）の画素に対する距離値ｄ（ｘ，ｙ）が時々刻々と取得される。この距離情報を画素値として可視化したものは、例えば距離画像などと呼ばれる。距離測定手段としては、他のいかなる手段を用いてもよい。例えば、距離計測部１００は、照射した光が反射して戻ってくるまでの時間差から距離を計測するTime-of-Flight形式のセンサであっても良い。あるいは、距離計測部１００は、投影するパターンが可視光である方式を用いるセンサであっても良い。また、距離計測部１００は、ステレオカメラを用いて距離を測定するセンサであっても良い。
【００１３】
第１検出部２０１〜第Ｎ検出部２０Ｎは、距離計測部１００から得られる距離情報を用いて、基準面から一定の距離の検出範囲内に入った物体の部分を検出し、その部分の代表点の位置を求める。検出部２００は、第１検出部２０１〜第Ｎ検出部２０Ｎを現実に有していなくともよく、１つの検出部２００が互いに異なる距離に設定された複数の検出範囲を検出できればよい。このとき、複数の検出範囲は、互いに重複していてもよい。あるいは、複数の検出範囲のうちの第１の検出範囲は、複数の検出範囲のうちの第２の検出範囲を含んでいてもよい。検出部２００が物体の部分を検出しその部分の代表点の位置を求める方法の詳細については、後述する。
【００１４】
ベクトル算出部３００は、第１検出部２０１〜第Ｎ検出部２０Ｎが検出した部分の代表点の位置に基づいて、基準面へ向かう物体に対応する３次元ベクトルｖｉを求める。ベクトルｖｉは、得られた複数の代表点の位置に基づいて算出される。ベクトル算出部３００が３次元ベクトルｖｉを求める方法の詳細については、後述する。
【００１５】
決定部４００は、基準面への物体による入力操作の内容を決定する。本実施形態にかかる情報処理装置１０では、叩くように操作するタップ、一定方向に弾くように操作するフリック、２本の指でつまむように操作するピンチ、一定時間静止するホールドなど、一般的なタッチパネル等で使用可能なジェスチャを利用することができる。  
また、決定部４００は、３次元ベクトルｖｉの角度を利用することで、座標以外に物体の角度をコンピュータへ出力することができる。決定部４００は、物体の角度に応じて出力内容を変更しても良い。決定部４００が出力するジェスチャの具体例については、後述する。
【００１６】
コンピュータ８００は、決定部４００から出力された操作信号に基づいて、所定の動作を実行する。本実施形態の情報処理方法および情報処理プログラムは、コンピュータ８００により実行される。コンピュータの具体例については、後述する。
【００１７】
図２は、本実施形態の情報処理方法を表すフローチャート図である。  
図３（ａ）および図３（ｂ）は、検出範囲および検出された部分を説明する模式的平面図である。  
図４（ａ）および図４（ｂ）は、弁別処理および棄却処理を説明する模試図である。  
図５は、複数の検出範囲が設定される場合の例を説明する模式的平面図である。  
図６は、ベクトルの算出方法を説明する模式的平面図である。  
図７は、物体の角度に応じて出力内容を変更する例を例示する模式的平面図である。    図８は、角度が近しい指同士をペアとする例を例示する模式的平面図である。  
図９は、ベクトルｖｉから疑似的にユーザーの位置を決定する例を例示する模式的平面図である。
【００１８】
図３（ａ）は、検出範囲を説明する模式的平面図である。図３（ｂ）は、検出された部分Ｉｎｐａｒｔ（ｘ，ｙ）を表す模式的平面図である。  
図４（ａ）は、弁別処理および棄却処理を実行する前の状態を表す模式的平面図である。図４（ｂ）は、弁別処理および棄却処理を実行した後の状態を表す模式的平面図である。
【００１９】
本実施形態では、壁や机上面等を基準面として、基準面に対するタッチ操作を検出する方法について説明する。但し、基準面は非平面であっても良いし、基準面は空中であっても良い。
【００２０】
まず、距離計測部１００は、物体５０が無い状態において、壁面や机上面などの基準面までの距離Ｚｓｕｒｆａｃｅ（ｘ，ｙ）を測定する（ステップＳ１１：図５参照）。このとき、物体５０が無い状態の距離を１フレームのみ取得し用いても良い。あるいは、数フレームから数百フレーム程度取得し続け、その時間内の平均や最小値を用いてもよい。この場合には、計測される距離の時間方向の変動を吸収することができるためより好ましい。また、ある時間内に計測された距離のヒストグラムを参照して決定しても良い。また、物体５０の検出と並行して基準面の距離を更新し続けても良い。
【００２１】
続いて、第１検出部２０１〜第Ｎ検出部２０Ｎの検出範囲を設定する（ステップＳ１２）。例えば、図５に表したように、検出のためのパラメータ、Ｚｍａｒｇｉｎ（ｘ，ｙ）とＺａｒｅａ（ｘ，ｙ）とを定義する。Ｚｍａｒｇｉｎ（ｘ，ｙ）は、基準面付近のノイズを検出しないようにするために設けるマージンである。また、Ｚａｒｅａ（ｘ，ｙ）は、全体検出範囲の幅を決定するパラメータである。Ｚｍａｒｇｉｎ（ｘ，ｙ）とＺａｒｅａ（ｘ，ｙ）とは、物体５０や距離計測部１００の精度に応じて最適な値を決定しておく。あるいは、検出処理中に動的に変更しても良い。
【００２２】
このとき、全体検出範囲のパラメータ、Ｚｎｅａｒ（ｘ，ｙ）、Ｚｆａｒ（ｘ，ｙ） を以下のように設定する。
【数１】
2015064724.tif 000003
【数２】
2015064724.tif 000004
【００２３】
続いて、全体検出範囲を複数の検出範囲に分割する。例えば、図５に表したように、全体検出範囲を第１検出範囲と第２検出範囲とに分割する。つまり、本実施形態では、全体検出範囲を２つに分割するように検出範囲を決定する。
【数３】
2015064724.tif 000005
【数４】
2015064724.tif 000006
【数５】
2015064724.tif 000007
ここで、αは検出範囲の分割割合を調整するパラメータであり、０≦α≦１である。
【００２４】
続いて、検出を開始する（ステップＳ１３）。  
続いて、各検出部は、一定の距離の検出範囲内に物体が進入したか否かを判断する（ステップＳ１４）。一定の距離の検出範囲内に物体が進入したと各検出部が判断した場合（ステップＳ１４：ＹＥＳ）、その部分を検出する。例えば、物体５０が第１検出範囲および第２検出範囲に進入した場合、第１検出部２０１および第２検出部２０２は、その部分を検出する。この場合、物体５０は、第１検出部２０１と第２検出部２０２とにまたがって存在する。あるいは、物体５０が第１検出範囲および第２検出範囲のいずれか一方に進入した場合、物体５０が進入した検出範囲に対応する第１検出部２０１および第２検出部２０２のいずれか一方がその部分を検出してもよい。なお、物体５０が複数の検出範囲のすべてに進入した場合に、各検出部がその部分を検出すると、例えばノイズなどに対する誤検知をより抑えることができる。
【００２５】
例えば、図３（ａ）および図３（ｂ）に表したように、検出範囲において検出された部分Ｉｎｐａｒｔ（ｘ，ｙ）については、例えば次式に示すように、ある距離の範囲内に入っている画素のみを「１」として管理すると良い。 
【数６】
2015064724.tif 000008
ここで、Ｚｎｎｅａｒ（ｘ，ｙ）、Ｚｎｆａｒ（ｘ，ｙ）は、それぞれの検出範囲を指定するパラメータである。またｎは、各検出部の番号をあらわす。すなわち０≦ｎ≦１である。
【００２６】
次に、検出した部分を、連結している部分ごとに分離する。これは、マルチタッチ操作や複数人での操作を行う際に必要となる。部分の弁別には、ラベリング処理などを用いれば良い。このとき、各部分の面積が一定以上、あるいは一定以下の場合の部分を棄却する。これにより、計測された距離に乗るノイズなどに起因する誤検出を防ぐことができる。また、部分の形状を元に棄却を行っても良い。赤外パターン投影による距離計測では、物体のエッジ部分の距離計測結果に誤差が発生しやすい。そのため、例えば、部分の外接長方形の縦横比が一定以上の部分を棄却することで、エッジに沿った誤検出を防ぐことができる。
【００２７】
例えば、図４（ａ）および図４（ｂ）に表したように、検出した部分Ｉｎｐａｒｔ（ｘ，ｙ）に対し連結部分の弁別処理および棄却処理を行った場合には、部分検出の時点で前処置を行うことで、物体の検出精度を向上することができる。
【００２８】
次に、検出された各部分のそれぞれの代表点を求める（ステップＳ１５：図５参照）。例えば、代表点には、検出された部分の重心を利用する。得られた代表点の３次元座標をｘｎｉ（ベクトル）＝（ｘｎｉ，ｙｎｉ，ｚｎｉ）Ｔとあらわす。ここで、ｘｎ，ｙｎｉ は、それぞれ検出された部分の重心座標である。また、ｚｎｉについては、ｚｎｉ＝ｄ（ｘｎｉ，ｙｎｉ）の式が成立する。代表点の算出方法においては、重心に限らず、検出した部分の平均値などを用いても良い。ここで、添え字「ｉ」は、部分が複数個ある場合の番号である。２本の指で操作する場合などのように複数の物体５０が存在する場合には、複数の部分が検出される。
【００２９】
続いて、ベクトル算出部３００は、複数の代表点の位置に基づいて基準面に対する物体５０のベクトルを求める（ステップＳ１６）。例えば、図６に表したように、第１検出部２０１により検出された部分の代表点ｘ１ｉ（ベクトル）と、第２検出部２０２により検出された部分の代表点ｘ２ｉ（ベクトル）と、の差分からベクトルｖｉを求める。図６に示すように、相似な三角形の比を利用すると、物体５０の基準面への３次元ベクトルｖｉは、次式であらわすことができる。  
【数７】
2015064724.tif 000009
【数８】
2015064724.tif 000010
【数９】
2015064724.tif 000011
【００３０】
本実施形態では、２点の代表点の位置に基づいてベクトルｖｉを求める方法の一例を示した。但し、ベクトルｖｉの算出方法は、これだけに限定されるわけではない。例えば、多数の検出部が設けられる場合、多数の代表点の位置を取得できる。そのため、様々な組の代表点の位置でベクトルｖｉを求め、投票を行うことでベクトルｖｉを求めても良い。この場合、距離情報の外れ値に対して頑健にベクトルを求めることができる。
【００３１】
続いて、決定部４００は、ベクトルｖｉに基づいて物体５０による入力操作の内容を決定し出力する（ステップＳ１７）。  
決定部４００は、物体５０の角度に応じて出力内容を変更しても良い。例えば、図７に示すように、指（物体５０）を傾けることによって入力操作を出力することができる。  
また、ジェスチャ入力を行う際に角度の情報を用いても良い。既存のタッチ操作の場合、二本指でのピンチ動作や回転動作など複数の指を組み合わせて行うジェスチャが多い。複数のタッチが検出された場合、距離が近い指同士を組み合わせることが多い。これに対して、本実施例によれば、指の角度も参照して決定することができる。例えば、図８に示すように、角度が近しい指（物体５０）同士をペアとすれば良い。一方で，角度の差が一定以上となる指（物体６０）は、物体５０とは別個の操作を行っていると判断される。  
さらに、物体５０に対応する基準面への３次元ベクトルｖｉに対して、例えば反対の方向にユーザー（物体５０の操作者）が存在すると仮定する。すると、図９に示すようにベクトルｖｉから疑似的に、ユーザーの位置を決定することができる。これにより、ユーザーの方向に応じて入力操作を変えることが可能になる。例えば、一定方向からの入力のみ許可することで、ユーザーの方向による入力操作の制限などを実現することができる。
【００３２】
続いて、次の入力操作を行うか否かを判断する（ステップＳ１８）。ステップＳ１４において、一定の距離の検出範囲内に物体が進入していないと各検出部が判断した場合には（ステップＳ１４：ＮＯ）、次の入力操作を行うか否かを判断する（ステップＳ１８）。次の入力操作を行う場合には（ステップＳ１８：ＹＥＳ）、各検出部は、一定の距離の検出範囲内に物体が進入したか否かを判断する（ステップＳ１４）。一方で、次の入力操作を行わない場合には（ステップＳ１８：ＮＯ）、終了する。
【００３３】
本実施形態によれば、基準面に対する指や指示棒などの物体５０に対応する３次元ベクトルｖｉを求めることで、快適かつ安定して基準面への入力操作を検出することができる。
【００３４】
次に、本発明の他の実施の形態について、図面を参照しつつ説明する。  
図１０は、本発明の他の実施の形態にかかる情報処理装置を表すブロック図である。
【００３５】
図１０に表した情報処理装置１０ａは、図１に関して前述した情報処理装置１０と比較して、座標算出部５００をさらに備える。  
座標算出部５００は、基準面における物体５０の入力座標を求める。座標算出部５００が入力座標（タッチ座標）を求める方法の詳細については、後述する。
【００３６】
図１０に表した情報処理装置１０ａでは、例えば、決定部４００は、座標算出部５００が求めた座標を用いることで、タッチ座標をコンピュータへ出力することができる。また、決定部４００は、タッチ座標の時間的な変化や複数の座標の位置関係を用いることで、マルチタッチ操作や、ジェスチャなどをコンピュータへ出力することができる。  
その他の構成は、図１に関して前述した情報処理装置１０の構成と同様である。
【００３７】
図１１は、本実施形態の情報処理方法を表すフローチャート図である。  
図１２は、２本の指でタッチを続ける場合の例を例示する模式的平面図である。
【００３８】
ステップＳ１１〜ステップＳ１６の情報処理方法は、図２に関して前述したステップＳ１１〜ステップＳ１６の情報処理方法と同様である。  
続いて、座標算出部５００は、タッチ座標を求める（ステップＳ１９）。本実施形態では、物体５０が基準面に接触（タッチ）した際のタッチ座標を求める方法について説明する。ベクトル算出部３００は、物体５０に対応する基準面への３次元ベクトルｖｉを求めている。そのため、タッチ座標は、Ｘｉ（ベクトル）＝ｘ２ｉ（ベクトル）＋ｖｉ（ベクトル）と表すことができる。また、ベクトルを定数倍して加算することで座標を調整しても良い。ここで、添え字「ｉ」を参照することで、複数の物体５０をそれぞれ区別することができる。これは、マルチタッチに対応できることを意味する。
【００３９】
また、座標算出部５００は、入力座標の変動を抑制するために、時間方向の安定化処理（トラッキング）を行ってもよい。これには、ＩＩＲ（Infinite impulse response：無限インパルス応答）フィルタやカルマンフィルタなどを利用することができる。ＩＩＲフィルタを用いる場合、時刻ｔのタッチ座標については、次式で計算することができる。  
【数１０】
2015064724.tif 000012
ここで、βは時定数である。β＝１．０の場合には、安定化処理は行われない。
【００４０】
このようなトラッキング処理を行う場合、異なる時刻におけるタッチ座標間の対応付けをおこなう必要がある。これは、最近傍の点同士を対応付けるなどの方法をとれば良い。また、対応付けのコストを設定し、コストが最小になるペアを探索しても良い。また、本実施形態では、３次元ベクトルｖｉを求めているため、３次元ベクトルｖｉの角度情報を用いてもよい。例えば、図１２に示すように、２本の指でタッチを続ける場合に、ベクトルの角度が近しい点同士を対応付ければ良い。
【００４１】
ここで、比較例のタッチ座標算出方法として、いずれかの検出部分の代表点（重心）をそのままタッチ座標として入力する方法が提案されている。この場合、物体の先端（例えば指先）とタッチ座標との間に「ずれ」が発生し、ユーザーは意図した位置に入力をすることが困難になる。この「ずれ」を小さくするためには、ノイズを検出しないように設けるマージンＺｍａｇｉｎ（ｘ，ｙ）及び検出部分の検出範囲を小さくする必要がある。その場合、ノイズによる距離変化と、物体による距離変化と、の区別が困難になるため、タッチを精度良く検出できない。あるいは、誤検出が発生する。
【００４２】
これに対して、本実施形態では、ベクトル算出部３００は、物体５０に対応する基準面への３次元ベクトルｖｉを求めている。そのため、簡便な処理で指先（物体５０の先端）の座標をタッチ座標とすることができる。また、前述した比較例のタッチ座標算出方法と比較して、マージンＺｍａｒｇｉｎ（ｘ，ｙ）や検出部分の検出範囲を広くとることができ、検出の安定性を高めることができる。
【００４３】
続いて、決定部４００は、タッチ座標およびベクトルｖｉに基づいて物体５０の入力操作の内容を決定し、コンピュータ８００へ出力する（ステップＳ２０）。  
続いて、ステップＳ１８の情報処理方法は、図２に関して前述したステップＳ１８の情報処理方法と同様である。
【００４４】
本実施形態によれば、例えばタッチ操作を検出する際には、距離測定手段（例えば距離計測部１００）の精度が低い場合にも、指先のタッチ座標を安定して検出することができる。さらに、物体５０に対応する３次元ベクトルｖｉから、３次元的な角度やユーザーの方向を入力することができるため、従来の入力方式に比べ多彩な入力手段を提供することができる。
【００４５】
図１３は、本発明のさらに他の実施の形態にかかる情報処理装置を表すブロック図である。  
図１３に表した情報処理装置１０ｂは、図１０に関して前述した情報処理装置１０ａと比較して、表示部６００をさらに備える。
【００４６】
表示部６００は、ディスプレイやプロジェクタなど、映像を表示する手段である。ユーザーは、基準面に対して入力を行い、表示部６００が表示する映像を操作することができる。本実施形態では、表示部６００が壁や机上面などの基準面に対し映像を投影するプロジェクタ（投影部）である場合を例に挙げて説明する。但し、表示部６００は、プロジェクタに限るものではない。表示部６００は、液晶ディスプレイなどであっても良い。また、表示部６００と、操作を入力する基準面と、が互いに異なる場所であっても良い。  
その他の構成は、図１０に関して前述した情報処理装置１０ａの構成と同様である。
【００４７】
本実施形態によれば、壁や机上面などを、操作可能な仮想ディスプレイとすることが可能となる。例えば、決定部４００がタッチ操作を出力する場合、壁や机上面などを仮想タッチディスプレイとすることができる。
【００４８】
図１４は、本発明のさらに他の実施の形態にかかる情報処理装置を表すブロック図である。  
図１３に関して前述したように、情報処理装置が表示部６００を備える場合、壁や机上面などを、操作可能な仮想ディスプレイとすることが可能となる。ただし、表示部６００の座標系と距離計測部１００の座標系とが互いに異なる場合は、座標系間の対応付けが必要となる。具体的には、座標算出部５００が求めた座標Ｘｉ（ベクトル）を、表示部６００における座標系に対応させるための変換が必要になる。
【００４９】
そこで、図１４に表した情報処理装置１０ｃは、図１３に関して前述した情報処理装置１０ｂと比較して、変換部７００をさらに備える。変換部７００は、決定部４００が決定した入力操作を、表示部６００の座標系に合わせて変換する。言い換えれば、変換部７００は、表示部６００の座標系と、距離計測部１００の座標系と、の座標系間を対応付けるような変換を行う。これにより、例えば、投影している画像をタッチした際に、投影画像の対応した位置をタッチ操作する、あるいはカーソルを表示するといったことが可能になる。
【００５０】
図１５は、本実施形態の情報処理方法を表すフローチャート図である。  
図１６は、対応点算出のパターン画像の一例を例示する模式的平面図である。  
ステップＳ１１〜ステップＳ１９の情報処理方法は、図２および図１１に関して前述したステップＳ１１〜ステップＳ１９の情報処理方法と同様である。
【００５１】
続いて、決定部４００は、タッチ座標およびベクトルｖｉに基づいて物体５０の入力操作の内容を決定し、変換部７００へ出力する（ステップＳ２１）。続いて、変換部７００は、表示部６００の座標系に合わせて入力操作を変換する（ステップＳ２２）。
【００５２】
本実施形態では、基準面が平面である場合に、表示部６００の座標系と距離計測部１００の座標系との対応付けを行う方法について説明する。  
基準面が平面の場合、表示部６００の座標系と距離計測部１００の座標系の変換については、線形な行列変換の２次元射影変換で表わすことができる。２次元射影変換に必要な３×３の行列をＨとあらわす。行列Ｈは、ホモグラフィーとも呼ばれる。表示部６００の座標系と距離計測部１００の座標系との間で４組以上の対応点を取得できれば、行列Ｈを解析的に求めることができる。
【００５３】
これら対応点については、手動で設定してもよい。また、図１６に示すような、対応点の自動取得が容易なパターンを利用すると便利である。図１６のようなパターンを利用する場合には、既存のコーナー検出手段を用いることで容易に対応点を取得することができる。具体的には、表示部６００でパターン画像を表示し、距離計測部１００の座標系に合わせてキャリブレーションを行った可視カメラでパターンを撮影することで、対応点を自動取得することができる。また、距離計測部１００が赤外光を検知できる場合、図１６に表したパターンを赤外光で再現すれば、可視カメラは不要となる。これにより、行列Ｈを求め、座標の変換を行うことができる。
【００５４】
次に、基準面が非平面の場合に、表示部６００の座標系と距離計測部１００の座標系との対応付けを行う方法について説明する。  
表示部６００が例えばプロジェクタの場合、凹凸がある面であっても映像を表示することが可能である。そのため、基準面は非平面になり、前述した２次元射影変換では対応できない。このような場合には、３次元射影変換を用いて対応付けを行う。具体的には、距離計測部１００の座標系におけるタッチ座標を、実空間の座標（世界座標系）に一旦復元し、その後プロジェクタの座標系に再投影することで、距離計測部１００と表示部６００との間の座標の対応付けを行う。
【００５５】
カメラやプロジェクタにおいて、世界座標系を画像座標に変換するモデルとして、次式の射影モデルが一般的に知られている。  
【数１１】
2015064724.tif 000013
【００５６】
世界座標（Ｘ，Ｙ，Ｚ） は、Ｘ＝Ｘ１／Ｘ４、Ｙ＝Ｘ２／Ｘ４、Ｚ＝Ｘ３／Ｘ４の形で導出される。画像座標（ｘ，ｙ）は 、ｘ＝ｘ１／ｘ３、ｙ＝ｘ２／ｘ３の形で導出される。座標を同次座標で表現する場合、各要素を定数倍しても世界座標および画像座標の値は変わらないという性質がある。その定数倍の不定性を係数λで表す。
【００５７】
また、Ａは、内部パラメータ行列であり、焦点距離や解像度などの内部情報から決定される。Ｒ、Ｔは、外部パラメータ行列と呼ばれる行列であり、カメラやプロジェクタの姿勢により決定される。これらは、キャリブレーションにより予め求めておくことができる。
【００５８】
前述した射影モデルに基づく表示部６００と距離計測部１００との間の座標の対応付けについて説明する。  
まず、表示部（この例ではプロジェクタ）６００の射影モデルを次式のように定義する。
【数１２】
2015064724.tif 000014
【数１３】
2015064724.tif 000015
ここで、距離計測部１００の座標を世界座標系の原点とすると、Ｒｃ＝Ｉ、Ｔｃ＝０と置くことができる。また、距離計測部１００により、画像座標（ｘｃ，ｙｃ）の距離ｄ（ｘｃ，ｙｃ）を取得できるため、定数倍の不定性を除去することができる。
【００５９】
以上より、式（１３）から次式を得ることができ、非平面であっても座標の対応付けを行うことができる。  
【数１４】
2015064724.tif 000016
【００６０】
式（１４）は、距離計測部１００の画像座標（右辺）から世界座標（左辺）への変換を意味している。  
最後に、変換した世界座標をプロジェクタの射影モデルに代入することで、距離計測部１００の画像座標からプロジェクタの画像座標への変換が可能となる。  
【数１５】
2015064724.tif 000017
【００６１】
以上、投影面が平面の場合と、投影面が非平面の場合と、のそれぞれの対応付け方法について説明したが、本発明はこれに限るものではなく、例えば対応付けを事前に手動で行っておいても良い。  
本実施形態によれば、電子ペンのような専用デバイスや、壁や机上面に取り付けるセンサを用いることなく、壁や机上面などを、操作可能な仮想ディスプレイとすることができる。
【００６２】
図１７は、本実施形態のコンピュータの一例を例示するブロック図である。  
コンピュータ８００は、決定部４００から出力された操作信号に基づいて、例えば、所定の色の線や、所定の種類の線や、所定の図形などを表示部６００に表示させる。
【００６３】
コンピュータ８００は、中央演算部（ＣＰＵ）８０１、入力部（ｉｎｐｕｔ  ｕｎｉｔ）８０２、出力部（ｏｕｔｐｕｔ  ｕｎｉｔ）８０３、記憶部（ｍｅｍｏｒｙ  ｕｎｉｔ）８０４と、を含む。入力部８０２は、記録媒体Ｍに記録された情報を読み取る機能を含む。
【００６４】
オペレーティング・システム（ＯＳ：Operating System）及び本実施形態の情報処理プログラムは、記憶部８０４に格納されている。中央演算部８０１は、決定部４００から出力された操作信号と、オペレーティング・システムと、に基づいて、表示部６００に表示させる内容を決定し実行する。
【００６５】
本実施形態の情報処理プログラムは、コンピュータ読取可能な記録媒体Ｍに記録されていてもよい。記録媒体Ｍは、ネットワークに接続されたサーバ等の記憶装置であってもよい。また、本実施形態の情報処理プログラムは、ネットワークを介して配信されてもよい。
【００６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６７】
１０、１０ａ、１０ｂ、１０ｃ 情報処理装置、  ５０、６０ 物体、  １００ 距離計測部、  ２００ 検出部、  ２０１ 第１検出部、  ２０２ 第２検出部、  ２０Ｎ 第Ｎ検出部、  ３００ ベクトル算出部、  ４００ 決定部、  ５００ 座標算出部、  ６００ 表示部、  ７００ 変換部、  ８００ コンピュータ、  ８０１ 中央演算部、  ８０２ 入力部、  ８０３ 出力部、  ８０４ 記憶部
【図１】
2015064724.tif 000018
【図２】
2015064724.tif 000019
【図３】
2015064724.tif 000020
【図４】
2015064724.tif 000021
【図５】
2015064724.tif 000022
【図６】
2015064724.tif 000023
【図７】
2015064724.tif 000024
【図８】
2015064724.tif 000025
【図９】
2015064724.tif 000026
【図１０】
2015064724.tif 000027
【図１１】
2015064724.tif 000028
【図１２】
2015064724.tif 000029
【図１３】
2015064724.tif 000030
【図１４】
2015064724.tif 000031
【図１５】
2015064724.tif 000032
【図１６】
2015064724.tif 000033
【図１７】
2015064724.tif 000034
【手続補正書】
【提出日】平成26年10月20日(2014.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
基準面から互いに異なる距離に設定された複数の検出範囲にまたがって存在する物体を検出し前記検出範囲において検出された前記物体の代表点の位置を求める検出部と、
複数の前記代表点の位置に基づいて３次元のベクトルを求めるベクトル算出部と、
前記物体が前記基準面に接触した入力座標を前記ベクトルに基づいて求める座標算出部と、
前記入力座標および前記ベクトルの少なくともいずれかに基づいて前記物体による入力操作の内容を決定する決定部と、
を備えた情報処理装置。
【請求項２】
前記決定部は、前記ベクトルの角度に基づいて前記入力操作の内容を決定する請求項１記載の情報処理装置。
【請求項３】
前記決定部は、前記ベクトルの角度に基づいて前記物体を操作する操作者の位置を決定する請求項１または２に記載の情報処理装置。
【請求項４】
前記物体が複数存在し、
前記決定部は、前記複数の前記物体のそれぞれに対応する前記ベクトルの角度に基づいて前記複数の前記物体のうちの少なくとも２つを互いに一組と決定する請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
前記物体までの距離を測定する距離計測部をさらに備え、
前記検出部は、前記距離計測部が測定した前記距離に基づいて前記物体を検出し前記代表点の位置を求める請求項１〜４のいずれか１つに記載の情報処理装置。
【請求項６】
前記決定部は、前記入力座標の位置および前記入力座標の時間的な変化の少なくともいずれかに基づいて前記入力操作の内容を決定する請求項１〜５のいずれか１つに記載の情報処理装置。
【請求項７】
映像を投影して表示する投影部をさらに備えた請求項１〜６のいずれか１つに記載の情報処理装置。
【請求項８】
前記決定部が決定した前記入力操作の内容を、前記投影部の座標系に合わせて変換する変換部をさらに備えた請求項７記載の情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
実施形態によれば、検出部と、ベクトル算出部と、座標算出部と、決定部と、を備えた情報処理装置が提供される。前記検出部は、基準面から互いに異なる距離に設定された複数の検出範囲にまたがって存在する物体を検出し、前記検出範囲において検出された前記物体の代表点の位置を求める。前記算出部は、複数の前記代表点の位置に基づいて３次元のベクトルを求める。前記座標算出部は、前記物体が前記基準面に接触した入力座標を前記ベクトルに基づいて求める。前記決定部は、前記入力座標および前記ベクトルの少なくともいずれかに基づいて前記物体による入力操作の内容を決定する。