(57)【特許請求の範囲】
【請求項１】
操作者を含む空間において、第１の座標系における前記操作者の頭部の位置および向きを用いて、前記操作者の顔面上の位置を原点とする第２の座標系を設定する座標系設定部と、
前記第１の座標系から前記第２の座標系への変換行列を求める変換行列算出部と、
前記第１の座標系における前記操作者の指先の位置を示す座標を、前記変換行列算出部で求められた変換行列で変換した結果に応じて、保持している変換行列を更新する変換行列更新部と、
前記変換行列更新部で保持されている変換行列と、前記第１の座標系における前記指先の位置に基づいて、前記第２の座標系の原点と前記指先の位置とを通る直線を求める指示直線算出部と、を備え、
前記座標系設定部は、前記第２の座標系の第１の座標軸を、前記顔面の前後の方向に設定し、
前記変換行列更新部は、前記求めた直線と前記第１の座標軸とがなす角度が閾値未満である場合に、前記保持している変換行列を更新することを特徴とする位置入力装置。
【請求項２】
前記第１の座標系における前記頭部の位置および姿勢を検出する頭部検出部を備えることを特徴とする請求項１に記載の位置入力装置。
【請求項３】
前記第１の座標系における前記指先の位置を検出する指先検出部を備えることを特徴とする請求項１または２に記載の位置入力装置。
【請求項４】
操作者を含む空間において、第１の座標系における前記操作者の頭部の位置および向きを用いて、前記操作者の顔面上の位置を原点とする第２の座標系を設定し、
前記第１の座標系から前記第２の座標系への変換行列を求め、
前記第１の座標系における前記操作者の指先の位置を示す座標を、前記求められた変換行列を用いて変換した結果に基づいて、前記求められた変換行列への更新の可否を判定し、
判定の結果に応じて、保持されている変換行列を更新し、
前記保持されている変換行列と、前記第１の座標系における前記指先の位置に基づいて、前記第２の座標系の原点と前記指先の位置とを通る直線を求めること、を含み、
前記第２の座標系の第１の座標軸を、前記顔面の前後の方向に設定し、
前記求めた直線と前記第１の座標軸とがなす角度が閾値未満である場合に、前記保持している変換行列を更新することを特徴とする位置入力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、位置入力装置および位置入力方法に関する。
【背景技術】
【０００２】
従来、操作者が指し示した位置を検出することで、操作者による入力操作を受け付ける非接触型の位置入力装置が知られている。位置入力装置は、入力操作の内容を正確に把握可能とするために、操作者が指し示す位置を正確に検知できることが望まれている。また、位置入力装置は、操作者による入力操作以外の動作を過敏に検出することで起こり得る操作性の悪化を抑制できることが望まれている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１５１４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、正確な位置入力を可能とし、かつ良好な操作性を得ることができる位置入力装置および位置入力方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、位置入力装置は、座標系設定部、変換行列算出部、変換行列更新部および指示直線算出部を備える。座標系設定部は、操作者を含む空間において、第１の座標系における操作者の頭部の位置および向きを用いて、第２の座標系を設定する。第２の座標系は、操作者の顔面上の位置を原点とする。変換行列算出部は、第１の座標系から第２の座標系への変換行列を求める。変換行列更新部は、第１の座標系における操作者の指先の位置を示す座標を、変換行列算出部で求められた変換行列で変換した結果に応じて、保持している変換行列を更新する。指示直線算出部は、変換行列更新部で保持されている変換行列と、第１の座標系における指先の位置に基づいて、直線を求める。直線は、第２の座標系の原点と指先の位置とを通る。座標系設定部は、第２の座標系の第１の座標軸を、顔面の前後の方向に設定する。変換行列更新部は、求めた直線と第１の座標軸とがなす角度が閾値未満である場合に、保持している変換行列を更新する。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態の位置入力装置を含むシステムのブロック図である。
【図２】図２は、図１に示すカメラにより取得される画像と、実空間における操作者との位置関係を示す図である。
【図３】図３は、図１に示す座標系設定部による第２の座標系の設定について説明する図である。
【図４】図４は、図１に示す変換行列更新部における変換行列の更新の可否の判定について説明する図である。
【図５】図５は、図４に示す空間範囲を操作者の正面から見た場合における平面図を示す図である。
【図６】図６は、図１に示す変換行列算出部における変換行列の算出と、変換行列更新部における変換行列の更新との関係を説明する図である。
【図７】図７は、実施形態の位置入力方法の手順を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下に図面を参照して、実施形態にかかる位置入力装置および位置入力方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
（実施形態）
図１は、実施形態の位置入力装置を含むシステムのブロック図である。かかるシステムは、位置入力装置１、カメラ２、および入力処理装置３を備える。
【０００９】
位置入力装置１は、非接触型のポインティングデバイスを構成する。位置入力装置１は、操作者が指先により空間中を指し示すジェスチャーから、操作者が指し示している位置を検出する。位置入力装置１は、カメラ２から入力される信号に応じてかかる位置検出を実施することで、操作者による入力操作を受け付ける。
【００１０】
カメラ２は、被写体である操作者を撮影する。カメラ２は、例えばデジタルカメラである。カメラ２は、被写体からの光を検出して、画像信号を生成する。カメラ２は、例えば、可視光の強度分布に応じた可視画像を形成する。カメラ２は、可視画像以外に、赤外光の強度分布に応じた温度画像、カメラ２からの距離分布に応じた距離画像などのいずれかを生成しても良い。カメラ２は、生成された画像信号を出力する。
【００１１】
例えば、不図示の表示デバイスは、操作者の正面の空間に仮想操作面を表示する。操作者は、仮想操作面に表示されているアイコン等を指し示す動作によって、入力操作を行う。入力処理装置３は、位置入力装置１による位置検出の結果から、操作者が指したアイコン等を認識する。入力処理装置３は、操作者による入力操作の内容を把握し、例えば入力操作に応じた指示を、操作対象とする外部機器へ送るための処理を実施する。
【００１２】
実施形態で説明する位置入力方法を実現するための位置入力プログラムは、例えばハードウェアであるパーソナルコンピュータにインストールされる。パーソナルコンピュータは、中央演算装置、記憶装置および入出力インタフェースを備える。位置入力プログラムがインストールされたハードウェアは、位置入力装置１として機能する。図１に示す位置入力装置１は、位置入力プログラムが備える機能を機能ブロックとして示している。各機能は、中央演算装置および記憶装置を使用して実現される。
【００１３】
位置入力装置１は、指先検出部１１、頭部検出部１２、座標系設定部１３、変換行列算出部１４、変換行列更新部１５および指示直線算出部１６の各機能部を備える。
【００１４】
指先検出部１１は、操作者の指先の位置を検出する。頭部検出部１２は、操作者の頭部の位置および向きを検出する。指先検出部１および頭部検出部１２は、それぞれカメラ２からの画像信号に基づいて、第１の座標系であるカメラ座標系を基準とする位置検出を行う。カメラ座標系は、カメラ２を主体として設定され、カメラ２が設置された空間においてはカメラ２の位置および向きに応じて定義される。
【００１５】
座標系設定部１３は、頭部検出部１２における検出結果を用いて、第２の座標系である顔面座標系を設定する。顔面座標系は、操作者の顔面上の位置を原点とする。顔面座標系は、操作者を主体として設定されている。変換行列算出部１４は、カメラ座標系から顔面座標系への変換行列を求める。変換行列は、例えば一次変換のためのアフィン行列である。
【００１６】
変換行列更新部１５は、変換行列を保持する。変換行列更新部１５は、保持している変換行列から、変換行列算出部１４で求められた変換行列への更新の可否を判定する。変換行列更新部１５は、変換行列算出部１４における変換行列の算出結果と、指先検出部１１による検出結果とを基に、更新の可否を判定する。変換行列更新部１５は、判定結果に応じて、保持している変換行列を更新する。
【００１７】
指示直線算出部１６は、操作者の顔面上の原点と指先の位置とを通る指示直線を求める。指示直線算出部１６は、変換行列更新部１５に保持されている変換行列と、指先検出部１１による検出結果とを基に、指示直線を求める。指示直線算出部１６は、求められた指示直線のパラメータを出力する。
【００１８】
入力処理装置３は、指示直線算出部１６からのパラメータを用いて、仮想操作面と指示直線との交点を求める。かかる交点は、仮想操作面における操作者の指し位置を表す。入力処理装置３は、かかる交点の座標を基に、処理を実施する。
【００１９】
図２は、カメラ２により取得される画像と、実空間における操作者との位置関係を示す図である。図２に示すＣＸ軸、ＣＹ軸およびＣＺ軸は、カメラ座標系の３つの座標軸とする。ＣＸ軸、ＣＹ軸およびＣＺ軸は、互いに垂直である。ＣＺ軸は、カメラ２の光軸に沿って設定されている。カメラ２の位置および向きを変化させない限り、カメラ２が設置されている空間においてカメラ座標系は固定されている。
【００２０】
カメラ２は、実空間における操作者２０の像をＣＸＣＹ平面に投影させた画像２３を取得する。カメラ２は、かかる画像２３に、ＣＺ方向における被写体距離の情報を含めた立体視画像を生成する。カメラ２による立体視画像の生成の詳細については、説明を省略する。操作者は、カメラ２の視野の範囲に、少なくとも頭部２１と、操作時における指先２２とが入る位置にて、入力操作を行う。
【００２１】
図３は、座標系設定部１３による第２の座標系の設定について説明する図である。頭部検出部１２は、人間の顔面を正面から目視した場合における標準的な顔のパーツの位置を表す情報を保持している。頭部検出部１２は、標準的な顔のパーツと、カメラ２で撮影された顔面のパーツとの位置関係を基に、カメラ座標系における頭部２１の向きを推定する。頭部２１の向きとは、顔面が向いている向きとする。また、頭部検出部１２は、撮影された顔面のパーツとカメラ２との間の距離を基に、カメラ座標系における頭部２１の位置を推定する。
【００２２】
座標系設定部１３は、頭部２１の位置および向きを基に、顔面座標系を設定する。図３に示すＸ軸、Ｙ軸およびＺ軸は、顔面座標系の３つの座標軸とする。Ｘ軸、Ｙ軸およびＺ軸は、互いに垂直である。顔面座標系は、操作者２０が存在する空間において、頭部２１の位置の変化に応じて移動するとともに、頭部２１の向きの変化に応じて回転する。
【００２３】
座標系設定部１３は、顔面のうち両眼の中間の位置に、顔面座標系の原点Ｏを設定する。座標系設定部１３は、原点Ｏ、右眼の中心および左眼の中心を結ぶ軸を、Ｘ軸とする。座標系設定部１３は、顔面のうち鼻が向いている方向を指しかつＸ軸に垂直な軸を、Ｚ軸（第１の座標軸）とする。Ｚ軸は、顔面の前後の方向に設定される。座標系設定部１３は、Ｘ軸およびＺ軸に垂直な軸を、Ｙ軸とする。
【００２４】
なお、顔面座標系は、頭部２１の位置および向きに応じて一意に求められるものであれば良く、本実施形態で説明する手法により設定されたものに限られない。Ｘ軸、Ｙ軸およびＺ軸は、本実施形態で説明する方向以外の方向に設定されたものであっても良い。顔面座標系は、少なくとも、３軸のうちの１つが顔面の前後の方向に設定されていれば良い。Ｘ軸、Ｙ軸およびＺ軸は、本実施形態の場合に対し互いに入れ換えられていても良い。
【００２５】
指先検出部１１は、例えば操作者２０による指差しのジェスチャーがカメラ２で撮影されていた場合に、カメラ座標系における指先２２の位置を示す座標を求める。
【００２６】
変換行列算出部１４は、カメラ座標系から顔面座標系への一次変換を表すアフィン行列Ａｔを求める。変換行列算出部１４は、求めたアフィン行列Ａｔを、変換行列更新部１５へ出力する。アフィン行列Ａｔは、ある時刻ｔにおいて座標系設定部１３で設定された顔面座標系を用いて得られる。
【００２７】
変換行列更新部１５は、指示直線算出部１６で使用されるアフィン変換Ａを保持している。アフィン行列Ａは、更新を認める旨の判定があると、変換行列算出部１４からのアフィン行列Ａｔに更新される。なお、変換行列更新部１５が保持するアフィン行列Ａの初期値は、任意の値とする。初期値は、無効な値であっても良い。
【００２８】
図４は、変換行列更新部１５における変換行列の更新の可否の判定について説明する図である。変換行列更新部１５には、カメラ座標系における指先２２の位置を示す座標ｐが指先検出部１１から入力される。変換行列更新部１５は、座標ｐを、アフィン行列Ａｔにより変換する。これにより、変換行列更新部１５は、顔面座標系における指先２２の位置の座標ｐ’＝（ｘ０，ｙ０，ｚ０）を算出する。
【００２９】
角度θは、原点Ｏと指先２２の位置とを通る直線Ｌと、Ｚ軸とがなす角度である。変換行列更新部１５は、例えば以下の式（１）を用いて、角度θを求める。
【数１】
0006430340.tif 000002
【００３０】
変換行列更新部１５は、求めた角度θと、あらかじめ設定された閾値Ｔｈとを比較する。変換行列更新部１５は、比較結果に応じて、保持している変換行列の更新の可否を判定する。
【００３１】
Ｚ軸中心に閾値Ｔｈをなす直線を回転させた場合に、かかる直線は円錐側面状の軌跡をなす。変換行列更新部１５は、角度θと閾値Ｔｈとの比較により、その円錐側面よりＺ軸側に、指先２２があるか否かを判断している。
【００３２】
図５は、図４に示す空間範囲を操作者の正面から見た平面図を示す図である。図５には、Ｚ軸上のある位置のＸＹ平面における空間範囲の外縁２４を示している。外縁２４は、Ｚ軸を中心とする円をなしている。変換行列更新部１５は、指先２２が外縁２４より内側にあるとき、操作者が顔面を向けている正面に指先２２があるか否かを判断する。
【００３３】
角度θが閾値Ｔｈ未満である（θ＜Ｔｈ）とき、指先２２は外縁２４より内側にある。このとき、指先２２の位置は、操作者が顔面を向けている正面にある。この場合に、変換行列更新部１５は、操作者が視線の先にある仮想操作面上の位置を指し示しているものと判定する。なお、不等式であるθ＜Ｔｈは、（ｘ０，ｙ０，ｚ０）の位置が円錐側面よりＺ軸側の範囲にあることを表している。変換行列更新部１５は、θ＜Ｔｈが成立する場合に、保持しているアフィン行列Ａをアフィン行列Ａｔへ更新する。
【００３４】
一方、角度θが閾値Ｔｈ以上である（θ≧Ｔｈ）とき、指先２２は外縁２４上あるいは外縁２４より外側にある。このとき、指先２２は、操作者にとっての正面からは外れた位置にある。この場合に、変換行列更新部１５は、操作者が仮想操作面を目視しながらの入力操作を中断しているものと判定する。変換行列更新部１５は、θ≧Ｔｈが成立する場合に、保持しているアフィン行列Ａを更新しない。入力されたアフィン行列Ａｔは、指示直線算出部１６での演算には使用されず、変換行列から除外される。
【００３５】
閾値Ｔｈは、人間の視野角特性を鑑みて、例えば１０度から３０度の間の角度に設定される。閾値Ｔｈは、設定変更のための操作に応じて書き換え可能であっても良い。
【００３６】
なお、判定の基準とされる空間範囲の設定手法は、本実施形態で説明する範囲に限られず、適宜変更しても良い。例えば、ＸＹ平面における空間範囲の外縁２４は、Ｚ軸を中心とする円である場合に限られず、Ｘ軸方向を長軸とする楕円などとしても良い。
【００３７】
図６は、変換行列算出部１４における変換行列の算出と、変換行列更新部における変換行列の更新との関係を説明する図である。図中上段は、算出されるアフィン行列Ａｔを時系列に沿って示したものである。Ａｔ０からＡｔ４は、それぞれ時刻ｔ＝ｔ０からｔ４において算出されたアフィン行列Ａｔである。図中下段は、変換行列更新部１５に保持されるアフィン行列Ａの遷移を示している。
【００３８】
図示する例では、ｔ３において算出されたアフィン行列Ａｔ３が入力されるまで、変換行列更新部１５はアフィン行列Ａ０を保持している。ｔ２までは、変換行列更新部１５は、アフィン行列Ａ０を更新せずそのまま保持する旨の判定をする。ｔ３においてアフィン行列Ａｔ３が入力されたときに、変換行列更新部１５は、保持しているアフィン行列Ａ０を更新する。変換行列更新部１５は、それまで保持していたアフィン行列Ａ０に代えて、アフィン行列Ａ１（＝Ａｔ３）を保持する。
【００３９】
このように、変換行列算出部１４は、頭部検出部１２が頭部２１の位置および向きを定期的に観測する度に、アフィン行列Ａｔを算出している。変換行列更新部１５は、更新と判定したときに、保持しているアフィン行列Ａを入力されたアフィン行列Ａｔへ更新する。
【００４０】
指示直線算出部１６は、アフィン行列Ａを読み出す。指示直線算出部１６には、カメラ座標系における指先２２の位置を示す座標ｐが指先検出部１１から入力される。指示直線算出部１６は、読み出されたアフィン行列Ａにより座標ｐを顔面座標系に投影した座標ｑ’を求める。
【００４１】
指示直線算出部１６は、アフィン行列Ａの逆行列Ａ−１と座標ｑ’とを用いて、指示直線（ｘ，ｙ，ｚ）＝Ａ−１ｑ’Ｔを求める。Ｔは、直線を表す媒介変数であって、Ｔ＞０を満たす。指示直線算出部１６は、空間内における指示直線の位置および傾きを表すパラメータであるＡ−１ｑ’を出力する。
【００４２】
変換行列の更新があった場合、指示直線算出部１６では、更新前に求められた指示直線とは異なる指示直線が求められる。指示直線算出部１６は、操作者の正面に指先２２があることが確認された場合には、操作者の動作による顔面座標系の変化に応じて指示直線を変化させる。この場合において、操作者が正面の仮想操作面を指しながら頭部２１を動かした場合、位置入力装置１は、操作者の動きに追従して指示直線を変化させる。これにより、位置入力装置１は、操作者が指し示す位置を正確に検知することができる。
【００４３】
一方、変換行列の更新がなかった場合、指示直線算出部１６では、それまでと同じ指示直線が求められる。操作者が仮想操作面を目視している正面から指先２２が外れているときは、操作者の動作により顔面座標系が変化しても、指示直線算出部１６は指示直線を変化させない。これにより、位置入力装置１は、操作者が入力操作以外の動作をしている間は、操作者の動作を過度に検出することを防ぐことができる。
【００４４】
仮に、操作者が正面の仮想操作面を指しながら頭部２１を動かした場合において、顔面座標系の変化に応じて変換行列を更新したとする。この場合、操作者にとっては指している位置を変化させていないにも関わらず、位置入力装置１において検出される位置は変化することとなる。本実施形態の位置入力装置１は、操作者による意図的でない動作を過敏に検出することで起こり得るこのような操作性の悪化を、効果的に抑制できる。
【００４５】
図７は、本実施形態の位置入力方法の手順を示すフローチャートである。カメラ２は、操作者２０を撮影し、画像信号を出力する（Ｓ１）。頭部検出部１２は、画像信号を基に、頭部２１の位置および向きを検出する（Ｓ２）。また、指先検出部１１は、画像信号を基に、指先２２の位置を検出する（Ｓ２）。
【００４６】
座標系設定部１３は、頭部２１の位置および向きの検出結果を基に、操作者２０に対して、頭部２１の位置および向きに応じた顔面座標系を設定する（Ｓ３）。変換行列算出部１４は、カメラ座標系から、設定された顔面座標系への変換のためのアフィン行列Ａｔを算出する（Ｓ４）。
【００４７】
変換行列更新部１５は、指先２２の位置の検出結果である座標ｐを、算出されたアフィン行列Ａｔを用いて変換する。これにより、変換行列更新部１５は、顔面座標系における指先２２の位置の座標ｐ’＝（ｘ０，ｙ０，ｚ０）を算出する（Ｓ５）。
【００４８】
変換行列更新部１５は、角度θが閾値Ｔｈ未満であるか否かを判定する（Ｓ６）。角度θが閾値Ｔｈ未満である場合（Ｓ６、Ｙｅｓ）、変換行列更新部１５は、それまで保持していたアフィン行列Ａを、Ｓ４で算出されたアフィン行列Ａｔへ更新する（Ｓ７）。一方、角度θが閾値Ｔｈ以上である場合（Ｓ６、Ｎｏ）、位置入力装置１は、Ｓ７をスキップし、Ｓ８へ進める。
【００４９】
指示直線算出部１６は、変換行列更新部１５が保持しているアフィン行列を読み出し、求めた指示直線の位置および傾きを表すパラメータＡ−１ｑ’を出力する（Ｓ８）。以上により、位置入力装置１は、入力された画像信号に応じた処理を終了する。
【００５０】
なお、位置入力装置１を含むシステムでは、指先検出部１１および頭部検出部１２の機能を、位置入力装置１以外の外部装置が実施しても良い。この場合、位置入力装置１は、指先検出部１１および頭部検出部１２に代えて、入力受付手段を備えても良い。入力受付手段は、外部装置における指先２２の位置の検出結果と、頭部２１の位置および向きの検出結果との入力を受け付ける。このため、位置入力装置１は、指先検出部１１および頭部検出部１２を含まない構成であっても良い。
【００５１】
本実施形態によれば、位置入力装置１は、指示直線算出部１６にて、顔面上の原点と指先の位置とを通る指示直線を求める。位置入力装置１は、操作者が目視する方向における位置関係に基づいて指示直線を求めることで、操作者が指し示す位置を正確に検知することができる。変換行列更新部１５は、指先の位置を示す座標を、変換行列算出部１４で求められた変換行列を用いて変換した結果を用いて、変換行列の更新の可否を判定する。位置入力装置１は、操作者の正面における所定の空間範囲に指先２２があるときに変換行列を更新することで、操作者による動作を過敏に検出することによる操作性の悪化を抑制できる。以上により、位置入力装置１および位置入力方法は、正確な位置入力を可能とし、かつ良好な操作性を得ることができるという効果を得ることができる。
【００５２】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５３】
１  位置入力装置、１１  指先検出部、１２  頭部検出部、１３  座標系設定部、１４  変換行列算出部、１５  変換行列更新部、１６  指示直線算出部、Ｏ  原点。
【図１】
0006430340.tif 000003
【図２】
0006430340.tif 000004
【図３】
0006430340.tif 000005
【図４】
0006430340.tif 000006
【図５】
0006430340.tif 000007
【図６】
0006430340.tif 000008
【図７】
0006430340.tif 000009