(57)【特許請求の範囲】
【請求項１】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する
処理を含み、コンピュータにより実行される生成方法。
【請求項２】
更に、
前記計測された点の各々について、当該点に近い１つの第１尖点と当該点との距離の第１逆数と、前記計測された点の重心と当該１つの第１尖点との距離の第２逆数との積を重みとして、重み付けされた次の重心を算出し、前記重心を更新する処理を繰り返し、
前記第１尖点の各々と最後に算出された前記重心との距離の平均を算出する
処理を含み、
前記サンプルは、前記距離の平均を含む
請求項１記載の生成方法。
【請求項３】
更に、
前記第１形状において均等な間隔で複数の幅を算出し、
当該複数の幅の平均及び分散を算出する
処理を含み、
前記サンプルは、前記平均及び前記分散を含む
請求項１又は２記載の生成方法。
【請求項４】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する
処理を含み、コンピュータにより実行される判別方法。
【請求項５】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する
処理をコンピュータに実行させるプログラム。
【請求項６】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する
処理をコンピュータに実行させるプログラム。
【請求項７】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出する算出部と、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する生成部と
を有する情報処理装置。
【請求項８】
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出する算出部と、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する判別部と
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示面に対するタッチ操作を受け付ける技術に関する。
【背景技術】
【０００２】
ポインティングデバイスを用いずに、ユーザのタッチ動作を検出することによって操作を受け付ける技術がある。ユーザのタッチ動作を検出する方法として、表示面付近の平面をスキャンする場合もある。
【０００３】
ポインティングデバイスの場合は、１つの点の位置を特定することを前提としているが、ユーザのタッチ動作を検出する方式の場合には、そのような前提によって制限されない。つまり、ユーザが表示面をタッチする形態は、１本の指によるものと限らない。複数本の指によるタッチタイプを正しく判別できれば、操作指示の態様が広がることに繋がる。
【０００４】
但し、タッチタイプを正しく判別する分類器を生成することは、なかなか容易ではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３０７３５８号公報
【特許文献２】特開２０１２−８９３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、表示面に対するタッチタイプをより正しく判別することである。
【課題を解決するための手段】
【０００７】
一態様に係る生成方法は、（Ａ）表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、（Ｂ）第１形状に含まれる上記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、（Ｃ）第１尖点の数及び第２尖点の数を含むサンプルの集合に基づいて、表示面をタッチする手の形を識別するタイプを判別する分類器を生成する処理を含む。
【発明の効果】
【０００８】
一側面としては、表示面に対するタッチタイプをより正しく判別できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、スキャンの様子を示す図である。
【図２】図２は、１本の指によるタッチ操作例を示す図である。
【図３】図３は、複数本の指によるタッチ操作例を示す図である。
【図４】図４は、１本の指によるタッチに基づく形状データの例を示す図である。
【図５】図５は、複数本の指によるタッチに基づく形状データの例を示す図である。
【図６】図６は、サンプルの例を示す図である。
【図７】図７は、表示システムの構成例を示す図である。
【図８】図８は、制御装置のモジュール構成例を示す図である。
【図９】図９は、準備処理フローを示す図である。
【図１０】図１０は、特徴ベクトル算出処理フローを示す図である。
【図１１】図１１は、第１特徴算出処理フローを示す図である。
【図１２】図１２は、１本の指によるタッチに基づく尖点の例を示す図である。
【図１３】図１３は、複数本の指によるタッチに基づく尖点の例を示す図である。
【図１４】図１４は、１本の指によるタッチに基づく尖点の例を示す図である。
【図１５】図１５は、複数本の指によるタッチに基づく尖点の例を示す図である。
【図１６】図１６は、第２特徴算出処理フローを示す図である。
【図１７】図１７は、重み付け重心の例を示す図である。
【図１８】図１８は、第２特徴算出処理フローを示す図である。
【図１９】図１９は、１本の指によるタッチに基づく距離の例を示す図である。
【図２０】図２０は、複数本の指によるタッチに基づく距離の例を示す図である。
【図２１】図２１は、第３特徴算出処理フローを示す図である。
【図２２】図２２は、タッチしている一本の指の幅の例を示す図である。
【図２３】図２３は、タッチしている複数本の指の幅の例を示す図である。
【図２４】図２４は、第３特徴算出処理フローを示す図である。
【図２５】図２５は、タッチしている一本の指の幅の例を示す図である。
【図２６】図２６は、タッチしている複数本の指の幅の例を示す図である。
【図２７】図２７は、第５特徴算出処理フローを示す図である。
【図２８】図２８は、１本の指によるタッチに基づく最小外接矩形の例を示す図である。
【図２９】図２９は、複数本の指によるタッチに基づく最小外接矩形の例を示す図である。
【図３０】図３０は、学習処理フローを示す図である。
【図３１】図３１は、メイン処理フローを示す図である。
【図３２】図３２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、表示システムにおけるスキャンの様子を示す。この例では、表示面１０３は垂直である。但し、表示面１０３は、他の向き（例えば、上向きの水平面）であってもよい。表示装置がディスプレイ装置であれば、ディスプレイ装置の表面が表示面１０３に相当する。また、表示装置がプロジェクタ装置であれば、画像が投影されるスクリーン面が表示面１０３に相当する。
【００１１】
この例では、矩形の表示面１０３における上辺の中央に、平面スキャンセンサ１０１が設置されている。但し、左辺、右辺又は下辺に平面スキャンセンサ１０１を設置するようにしてもよい。
【００１２】
図示するように、平面スキャンセンサ１０１は、広い角度の検知範囲にわたって、スキャンビームを表示面１０３に沿って照射して、表示面１０３へのタッチ位置を検知する。例えば、２５ミリ秒の周期で所定角範囲の照射を行う。尚、表示面１０３とスキャンビームとの間隔は、例えば２ｃｍ程度である。従って、厳密にタッチされた場所を検知するのではなく、検知した形状に基づいて表示面１０３がタッチされたと判断する。
【００１３】
この例では、１本の指によるタッチと複数本の指によるタッチとをタッチタイプとして区別する。そして、そのタッチタイプに対する操作を受け付ける。
【００１４】
図２に、１本の指によるタッチ操作例を示す。図示するように、アイコンＡ、アイコンＢ及びアイコンＣが表示面１０３に表示されている。アイコンＣを１本の指でタッチして、そのまま左へ指を移動させると、アイコンＣのみが左へスライドする。
【００１５】
図３に、複数本の指によるタッチ操作例を示す。この図でも、アイコンＡ、アイコンＢ及びアイコンＣが表示面１０３に表示されている。アイコンＣを複数本の指（例えば、親指を除く４本の指）でタッチして、そのまま左へ指を移動させると、画面全体が左へスライドする。
【００１６】
これらのタッチタイプの判別は、平面スキャンセンサ１０１によって検知された形状を示すデータ（以下、形状データという。）によって行われる。
【００１７】
１本の指で表示面１０３をタッチした場合には、図４に示すような形状データが得られる。一方、複数本の指で表示面１０３をタッチした場合には、図５に示すような形状データが得られる。尚、平面スキャンセンサ１０１による計測データは、角度及び距離を示している。この例では、計測データをＸ座標：Ｙ座標に変換することによって、形状データが得られる。例えば、原点は、表示面１０３の上辺の中央である。そして、Ｘ軸の正方向は、右方向であり、Ｙ軸の正方向は、下方向である。
【００１８】
本実施の形態では、複数のサンプルを収集し、そのサンプルに基づく学習処理によってタッチタイプを判定する分類器を得る。図６に、サンプルの例を示す。本実施の形態に係るサンプルは、形状データと、クラスと、特徴ベクトルとを含んでいる。クラスは、タッチタイプに相当する。特徴ベクトルは、形状データから導かれる特徴量を要素としている。
【００１９】
この例で、特徴ベクトルは、第１尖点数、第２尖点数、第３尖点数、第４尖点数、尖点と基準点との間の距離、幅の平均、幅の分散、輪郭の長さ、最小外接矩形の面積及び最小外接矩形のアスペクト比を含んでいる。そのうち、第１尖点数、第２尖点数、第３尖点数及び第４尖点数の組み合わせを第１特徴という。尖点と基準点との間の距離を第２特徴という。幅の平均及び幅の分散の組み合わせを第３特徴という。輪郭の長さを第４特徴という。最小外接矩形の面積及び最小外接矩形のアスペクト比の組み合わせを第５特徴という。上述した各特徴量については、後に詳述する。尚、学習処理では、サンプルに含まれるデータのうち、特徴ベクトルとクラスとを用いる。学習処理については、図３０を用いて後述する。以上で、本実施の形態の概要についての説明を終える。
【００２０】
図７に、表示システムの構成例を示す。制御装置７０１は、平面スキャンセンサ１０１及び表示装置７０３を制御する。具体的には、制御装置７０１は、平面スキャンセンサ１０１に表示面１０３付近の物体位置を検出させる。また、制御装置７０１は、表示装置７０３に画面イメージを表示させる。表示装置７０３は、例えばディスプレイ装置又はプロジェクタ装置である。
【００２１】
図８に、制御装置７０１のモジュール構成例を示す。制御装置７０１は、収集部８０１、サンプル格納部８０３、算出部８０５、パラメータ記憶部８０６、学習部８０７、モデルデータ格納部８０９、取得部８１１、変換部８１３、特徴ベクトル格納部８１５、適用部８１７及びインターフェース部８１９を有する。
【００２２】
収集部８０１は、クラスに対応付けられている形状データを収集する。この例では、収集部８０１は、平面スキャンセンサ１０１から得られる計測データを形状データに変換する処理も行うものとする。サンプルは、計測された順番が特定されている。サンプル格納部８０３は、サンプル（形状データ、クラス及び特徴ベクトル）のデータを格納する。
【００２３】
算出部８０５は、形状データに基づいて特徴ベクトルを算出する。パラメータ記憶部８０６は、各種パラメータを記憶する。学習部８０７は、サンプルに含まれるクラス及び特徴ベクトルを学習データとして用いて学習処理を行い、特徴ベクトルからクラスを判別する分類器を生成する。モデルデータ格納部８０９は、分類器を特定するモデルデータを格納する。取得部８１１は、平面スキャンセンサ１０１から計測データを取得する。変換部８１３は、計測データを形状データに変換する。特徴ベクトル格納部８１５は、特徴ベクトルを格納する。適用部８１７は、特徴ベクトルを分類器に適用して、クラスを判別する。インターフェース部８１９は、判別したクラスを、タッチタイプとして上位モジュールに渡す。
【００２４】
上述した収集部８０１、算出部８０５、学習部８０７、取得部８１１、変換部８１３、適用部８１７及びインターフェース部８１９は、ハードウエア資源（例えば、図３２）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
【００２５】
上述したサンプル格納部８０３、パラメータ記憶部８０６、モデルデータ格納部８０９及び特徴ベクトル格納部８１５は、ハードウエア資源（例えば、図３２）を用いて実現される。
【００２６】
続いて、制御装置７０１における処理について説明する。図９に、準備処理フローを示す。準備処理において、分類器が生成される。
【００２７】
収集部８０１は、収集処理を実行する（Ｓ９０１）。収集処理において、収集部８０１は、クラスが付された形状データを収集する。具体的には、平面スキャンセンサ１０１から得た計測データにおける角度と距離とを、Ｘ座標：Ｙ座標に変換する。変換されたデータが、この例における形状データに相当する。例えば、１本の指によるタッチに基づく形状データと、複数本の指によるタッチに基づく形状データとを同数収集するようにしてもよい。
【００２８】
算出部８０５は、特徴ベクトル算出処理を実行する（Ｓ９０３）。特徴ベクトル算出処理において、算出部８０５は、各サンプルにおける特徴ベクトルを算出する。特徴ベクトル算出処理については、図１０乃至図２９を用いて後述する。
【００２９】
特徴ベクトルを算出すると、学習部８０７は、学習処理を実行する（Ｓ９０５）。学習処理において、学習部８０７は、各サンプルに基づいて、タッチタイプを判定するための分類器を得る。学習処理を終えると、準備処理を終える。
【００３０】
図１０に、特徴ベクトル算出処理フローを示す。算出部８０５は、サンプルを１つ特定する（Ｓ１００１）。
【００３１】
算出部８０５は、第１特徴算出処理を実行する（Ｓ１００３）。第１特徴算出処理において、算出部８０５は、第１尖点数、第２尖点数、第３尖点数及び第４尖点数を求める。尚、尖点は、例えば上方向に突出した点であり、更に両側の点となす角度が閾値よりも小さいものである。図１１に、第１特徴算出処理フローを示す。
【００３２】
本実施の形態では、元の形状データとは別に、計測点の数を減らした形状データも生成する。そして、それぞれの形状データに基づいて尖点の数を求める。つまり多段階の密度で表現される形状について、別個に尖点の数を求める。この例では、４段階の密度で形状を表現する。
【００３３】
まず、算出部８０５は、Ｓ１００１で特定したサンプルに含まれる第１密度の形状データを得る（Ｓ１１０１）。そして、算出部８０５は、第１密度の形状データにおける第１尖点を特定し（Ｓ１１０３）、特定した第１尖点をカウントする（Ｓ１１０５）。
【００３４】
第１密度の形状データは、サンプルに含まれる元の形状データである。つまり、第１密度は、元々の計測点の密度を指す。そして、第１尖点数は、第１密度の形状データに基づく尖点の数である。
【００３５】
次に、算出部８０５は、第１密度の形状データを第２密度の形状データに変換する（Ｓ１１０７）。そして、算出部８０５は、第２密度の形状データにおける第２尖点を特定し（Ｓ１１０９）、特定した第２尖点をカウントする（Ｓ１１１１）。
【００３６】
第２密度の形状データは、第１密度の形状データに含まれる計測点の数を、所定の割合で減じた形状データである。つまり、第２密度は、第１密度より低い密度を指す。そして、第２尖点数は、第２密度の形状データに基づく尖点の数である。
【００３７】
次に、算出部８０５は、第２密度の形状データを第３密度の形状データに変換する（Ｓ１１１３）。そして、算出部８０５は、第３密度の形状データにおける第３尖点を特定し（Ｓ１１１５）、特定した第３尖点をカウントする（Ｓ１１１７）。
【００３８】
第３密度の形状データは、第２密度の形状データに含まれる計測点の数を、所定の割合で減じた形状データである。つまり、第３密度は、第２密度より低い密度を指す。そして、第３尖点数は、第３密度の形状データに基づく尖点の数である。
【００３９】
次に、算出部８０５は、第３密度の形状データを第４密度の形状データに変換する（Ｓ１１１９）。そして、算出部８０５は、第４密度の形状データにおける第４尖点を特定し（Ｓ１１２１）、特定した第４尖点をカウントする（Ｓ１１２３）。
【００４０】
第４密度の形状データは、第３密度の形状データに含まれる計測点の数を、所定の割合で減じた形状データである。つまり、第４密度は、第３密度より低い密度を指す。そして、第４尖点数は、第４密度の形状データに基づく尖点の数である。
【００４１】
このように、順次計測点を間引きながら、各密度で表れる尖点の数を求める。そして、第１特徴算出処理を終えると、呼び出し元の特徴ベクトル算出処理に復帰する。尚、第１特徴に含める尖点数は、２種類以上である。従って、第１特徴は、第１尖点数と第２尖点数とであってもよい。その場合には、第３尖点数及び第４尖点数を求めないようにしてもよい。
【００４２】
図１２に、１本の指によるタッチに基づく尖点の例を示す。図中、尖点に相当する計測点を、輪郭のみの円の印で示している。尖点以外の計測点を、塗りつぶされた円の印で示している。第１密度の形状データでは、１つの第１尖点が特定される。この例における第１尖点は、およそタッチしている指の位置を示す。第２密度の形状データでも、１つの第２尖点が特定される。更に、第３密度の形状データでも、１つの第３尖点が特定される。但し、第４密度の形状データでは、第４尖点が表れない。この例では、第１尖点数乃至第３尖点数が変わらない。
【００４３】
図１３に、複数本の指によるタッチに基づく尖点の例を示す。第１密度の形状データでは、４つの第１尖点が特定される。これらの第１尖点も、およそタッチしている指の位置を示す。第２密度の形状データでは、３つの第２尖点が特定される。更に、第３密度の形状データでは、２つの第３尖点が特定される。但し、第４密度の形状データでは、第４尖点が表れない。この例では、第１密度から第４密度へかけて順次尖点の数が減少する。
【００４４】
図１４も、１本の指によるタッチに基づく尖点の例を示している。但し、図１４の場合は、ノイズの影響を受けている。第１密度の形状データでは、３つの第１尖点が特定される。但し、タッチしている指によるものは、右側の第１尖点だけである。中央及び左側の第１尖点は、ノイズの影響によって生じている。この例では、ノイズの影響によって生じた尖点を×印で表す。第２密度の形状データでは、２つの第２尖点が特定される。第３密度の形状データでは、１つの第３尖点が特定される。第４密度の形状データでは、１つの第４尖点が特定される。この例で、第３尖点の数及び第４尖点の数は、タッチしている指の数と一致する。
【００４５】
図１５も、複数本の指によるタッチに基づく尖点の例を示している。但し、図１５の場合も、ノイズの影響を受けている。第１密度の形状データでは、３つの第１尖点が特定される。いずれの第１尖点も、およそタッチしている指の位置を示す。但し、左端でタッチしている指に相当するはずの第１尖点は、ノイズの影響によって表れない。第２密度の形状データでは、２つの第２尖点が特定される。第３密度の形状データでは、第３尖点が表れない。第４密度の形状データでも、第４尖点は表れない。
【００４６】
タッチしている手の形状が近似すれば、その場合の尖点数のパターンも同一又は近似する場合が多い。例えば図１２乃至図１５に例示した尖点数のパターンを特徴として学習を行えば、近似する手の形状を判別することに寄与することになる。
【００４７】
図１０の説明に戻る。算出部８０５は、第２特徴算出処理を実行する（Ｓ１００５）。第２特徴算出処理において、算出部８０５は、尖点と基準点との間の距離を求める。
【００４８】
図１６に、第２特徴算出処理フローを示す。算出部８０５は、Ｓ１６０１以降、まず基準点を特定するための処理を行う。基準点は、重み付け重心として特定される。
【００４９】
図１７に、重み付け重心の例を示す。本実施の形態では、各計測点ｐi（ｉ＝１，．．．，Ｎ）に対する重みを用いて、重み付け重心Ｇを求める。当初の重みは均等であるので、まず通常の重心Ｇ（０）が求められる。その後、各計測点ｐiにおける重みが、当該計測点ｐiと最も近い尖点ｑ1との距離Ｌ1及び当該尖点ｑ1と重心Ｇ（０）との距離Ｌ2に基づいて更新される。そして、重み付け重心Ｇ（１）が求められる。そして、同様の更新をＴ回繰り返して、重み付け重心Ｇ（Ｔ）が求められる。この重み付け重心Ｇ（Ｔ）が、基準点となる。
【００５０】
図１６の説明に戻る。算出部８０５は、各計測点に対応する重みを初期化する（Ｓ１６０１）。各計測点に対応する重みは、パラメータ記憶部８０６に記憶される。この例では、各計測点に対応する重みを１とする。
【００５１】
算出部８０５は、パラメータｔに０を設定する（Ｓ１６０３）。パラメータｔは、パラメータ記憶部８０６に記憶される。パラメータｔは、ループ回数をカウントするために用いられる。
【００５２】
算出部８０５は、各計測点ｐiにおける重み付け重心Ｇ（ｔ）を求める（Ｓ１６０５）。重み付け重心の算出方法は、従来技術による。
【００５３】
算出部８０５は、形状データに含まれる計測点ｐiを１つ特定する（Ｓ１６０７）。算出部８０５は、第１尖点ｑのうち、計測点ｐiに近い第１尖点を特定する（Ｓ１６０９）。この例では、最も計測点に近い第１尖点ｑを特定する。
【００５４】
算出部８０５は、計測点ｐiと当該第１尖点ｑとの距離Ｌ1の逆数（第１逆数という。）を求める（Ｓ１６１１）。算出部８０５は、当該第１尖点ｑと重心Ｇ（ｔ）との距離Ｌ2の逆数（第２逆数という。）を求める（Ｓ１６１３）。算出部８０５は、第１逆数と第２逆数との積を、当該計測点における重みに設定する（Ｓ１６１５）。つまり、当該計測点における重みを更新する。
【００５５】
算出部８０５は、Ｓ１６０７において未特定の計測点ｐiがあるか否かを判定する（Ｓ１６１７）。未特定の計測点ｐiがあると判定した場合には、Ｓ１６０７に示した処理に戻って、上述した処理を繰り返す。
【００５６】
一方、未特定の計測点ｐiがないと判定した場合には、端子Ａを介して、図１８に示したＳ１８０１の処理に移る。
【００５７】
図１８の説明に移る。算出部８０５は、パラメータｔに１を加える（Ｓ１８０１）。そして、算出部８０５は、パラメータｔが所定値Ｔを超えたか否かを判定する（Ｓ１８０３）。所定値Ｔは、ループ回数に相当する。パラメータｔが所定値Ｔを超えていないと判定した場合には、端子Ｂを介して、図１６に示したＳ１６０５の処理に戻る。
【００５８】
一方、パラメータｔが所定値Ｔを超えたと判定した場合には、算出部８０５は、最後に求めた重み付け重心Ｇ（Ｔ）を基準点とする（Ｓ１８０５）。
【００５９】
Ｓ１８０７以降では、基準点と各第１尖点との距離の平均を算出する。図１９に、１本の指によるタッチに基づく距離の例を示す。第１尖点が１つの場合には、基準点から第１尖点までの距離ｄを用いる。また、図２０に、複数本の指によるタッチに基づく距離の例を示す。第１尖点が複数の場合には、基準点から各第１尖点までの距離ｄ1〜ｄ4を求め、それらの距離の平均を求める。
【００６０】
図１８の説明に戻る。算出部８０５は、第１尖点を１つ特定する（Ｓ１８０７）。算出部８０５は、基準点と当該第１尖点との距離を求める（Ｓ１８０９）。算出部８０５は、Ｓ１８０７において未特定の第１尖点があるか否かを判定する（Ｓ１８１１）。未特定の第１尖点があると判定した場合には、Ｓ１８０７に示した処理に戻って、上述した処理を繰り返す。
【００６１】
一方、未特定の第１尖点がないと判定した場合には、算出部８０５は、基準点と各第１尖点との距離の平均を求める（Ｓ１８１３）。第２特徴算出処理を終えると、呼び出し元の特徴ベクトル算出処理に復帰する。
【００６２】
図１０の説明に戻る。算出部８０５は、次に第３特徴算出処理を実行する（Ｓ１００７）。図２１に、第３特徴算出処理フローを示す。第３特徴算出処理において、算出部８０５は、タッチしている一本の指の幅又は同じく複数本の指全体の幅（以下、単に幅という。）の平均及び分散を求める。算出部８０５は、Ｓ２１０１以降、まず幅を特定するための処理を行う。
【００６３】
図２２に、タッチしている一本の指の幅の例を示す。第１尖点が１つである場合には、第１尖点と基準点とを結ぶ線分上に移動点を設け、各移動点を通る幅を求める。この例で、移動点同士の間隔は、等しい。
【００６４】
図２３に、タッチしている複数本の指の幅の例を示す。第１尖点が偶数である場合には、中央よりの２つの第１尖点の中間点と基準点とを結ぶ線分上に移動点を設け、各移動点を通る幅を求める。この例でも、移動点同士の間隔は、等しい。
【００６５】
図２１の説明に戻る。最初に、算出部８０５は、計測された順に従って、隣接する計測点同士を結ぶ線分を特定する（Ｓ２１０１）。
【００６６】
算出部８０５は、第１尖点数が奇数であるか否かを判定する（Ｓ２１０３）。第１尖点数が奇数であると判定した場合には、算出部８０５は、横方向における中央の第１尖点を特定する（Ｓ２１０５）。
【００６７】
一方、第１尖点数が奇数ではないと判定した場合、つまり第１尖点数が偶数である場合には、算出部８０５は、横方向における中央よりの２つの第１尖点の中間点を特定する（Ｓ２１０７）。
【００６８】
算出部８０５は、基準軸を特定する（Ｓ２１０９）。具体的には、第１尖点数が奇数である場合には、算出部８０５は、上述した中央の第１尖点と基準点とを結ぶ線を基準線とする。一方、第１尖点数が偶数である場合には、算出部８０５は、上述した中間点と基準点とを結ぶ線を基準線とする。
【００６９】
算出部８０５は、基準線上で、基準点から所定距離だけ上方に位置する移動点を特定する（Ｓ２１１１）。そして、算出部８０５は、移動点を含む垂線とＳ２１０１で特定した各線分との交点を特定する（Ｓ２１１３）。
【００７０】
算出部８０５は、交点があるか否か判定する（Ｓ２１１５）。交点があると判定した場合には、端子Ｃを介して、図２４に示したＳ２４０１の処理に移る。
【００７１】
図２４について説明する。算出部８０５は、交点が複数あるか否かを判定する（Ｓ２４０１）。交点が複数あると判定した場合には、算出部８０５は、左端の交点と右端の交点との距離を求める（Ｓ２４０３）。算出部８０５は、当該距離を当該移動点における幅として一時的に記憶する（Ｓ２４０５）。
【００７２】
一方、交点が複数ないと判定した場合、つまり交点が１つである場合には、算出部８０５は、交点と移動点との距離を求める（Ｓ２４０７）。そして、算出部８０５は、当該距離の２倍を当該移動点における幅として一時的に記憶する（Ｓ２４０９）。
【００７３】
当該移動点における幅を記憶すると、算出部８０５は、移動点を所定距離だけ上方に移動する（Ｓ２４１１）。そして、端子Ｄを介して、図２１に示したＳ２１１３の処理に戻る。
【００７４】
図２１の説明に戻る。Ｓ２１１５において、交点がないと判定した場合には、算出部８０５は、各移動点における幅に関する統計値を求める。この例では、算出部８０５は、各移動点における幅の平均を求める（Ｓ２１１７）。更に、算出部８０５は、各移動点における幅の分散を求める（Ｓ２１１９）。第３特徴算出処理を終えると、呼び出し元の特徴ベクトル算出処理に復帰する。
【００７５】
ノイズの影響を受ける場合における幅の例も示す。図２５に、タッチしている一本の指の幅の例を示す。図１４を用いて説明したように、３つの第１尖点が特定される。第１尖点が３つ以上の奇数である場合には、中央の尖点と基準点とを結ぶ線分上に移動点を設け、各移動点を通る幅を求める。この例でも、移動点同士の間隔は、等しい。
【００７６】
図２６に、タッチしている複数本の指の幅の例を示す。図１５を用いて説明したように、３つの第１尖点が特定される。図２５の場合と同様に、中央の尖点と基準点とを結ぶ線分上に移動点を設け、各移動点を通る幅を求める。
【００７７】
タッチしている手の形状が近似すれば、上記幅に関する統計値も近似する。例えば図２２、図２３、図２５及び図２６に例示した上記幅に関する統計値を特徴としてを学習を行えば、近似する手の形状を判別することに寄与することになる。
【００７８】
図１０の説明に戻る。算出部８０５は、第４特徴算出処理を実行する（Ｓ１００９）。第４特徴算出処理において、算出部８０５は、輪郭の長さを求める。具体的には、算出部８０５は、Ｓ２１０１において特定した線分の長さの合計を算出する。又は、算出部８０５は、各計測点に近い曲線を求めて、その曲線の長さを求めるようにしてもよい。
【００７９】
次に、算出部８０５は、第５特徴算出処理を実行する（Ｓ１０１１）。第５特徴算出処理において、算出部８０５は、最小外接矩形の面積及びアスペクト比を求める。
【００８０】
図２７に、第５特徴算出処理フローを示す。算出部８０５は、形状データに含まれる各計測点に対する外接矩形のうち、最小の外接矩形を特定する（Ｓ２７０１）。最小の外接矩形とは、面積が最も小さい外接矩形のことである。
【００８１】
そして、算出部８０５は、最小外接矩形の面積を求める（Ｓ２７０３）。更に、算出部８０５は、最小外接矩形のアスペクト比を求める（Ｓ２７０５）。第５特徴算出処理を終えると、呼び出し元の特徴ベクトル算出処理に復帰する。
【００８２】
図２８に、１本の指によるタッチに基づく最小外接矩形の例を示す。また、図２９に、複数本の指によるタッチに基づく最小外接矩形の例を示す。このように、１本の指によるタッチに基づく最小外接矩形の面積は、複数本の指によるタッチに基づく最小外接矩形の面積より小さいことが多い。また、１本の指によるタッチに基づく最小外接矩形のアスペクト比は、複数本の指によるタッチに基づく最小外接矩形のアスペクト比より大きいことが多い。
【００８３】
図１０の説明に戻る。第５特徴算出処理を終えると、算出部８０５は、未処理のサンプルがあるか否かを判定する（Ｓ１０１３）。未処理のサンプルがあると判定した場合には、Ｓ１００１に示した処理に戻って、上述した処理を繰り返す。
【００８４】
一方、未処理のサンプルがないと判定した場合には、特徴ベクトル算出処理を終え、呼び出し元の準備処理に復帰する。以上で、特徴ベクトル算出処理についての説明を終える。
【００８５】
次に、図９のＳ９０５に示した学習処理について説明する。図３０に、学習処理フローを示す。この例では、ＡｄａＢｏｏｓｔアルゴリズムによる学習を行う。但し、学習アルゴリズムは、任意である。ＡｄａＢｏｏｓｔは、従来技術であるので簡単な説明にとどめる。
【００８６】
学習によって、特徴ベクトルからクラスを導く分類器を生成する。この例では、クラスの値０は１本の指によるタッチを表し、同じく１は複数本の指によるタッチを表すものとする。ここでは、特徴ベクトルをｘで示し、クラスをｙで示す。サンプル（特徴ベクトルｘとクラスｙとのセット）は、学習データに相当する。以下では、学習データが、サンプルをｍ個含み、｛（ｘ1，ｙ1），．．．，（ｘm，ｙm）｝と表されるものとする。
【００８７】
学習部８０７は、サンプルに対する重みを初期化する（Ｓ３００１）。各サンプルに対する重みの初期値は、１／ｍである。
【００８８】
そして、学習部８０７は、カウンタｔに１を設定する（Ｓ３００３）。
【００８９】
学習部８０７は、弱学習処理を実行し、弱仮説を得る（Ｓ３００５）。つまり、学習部８０７は、弱学習器に弱仮説ｈtを求めさせる。弱学習器は、サンプルと重み（ｗt,1，．．．ｗt,m）を用いて弱仮説ｈtを学習する。例えば、パーセプトロンが弱学習器として利用される。
【００９０】
学習部８０７は、弱仮説ｈtに対する確信度αtを算出する（Ｓ３００７）。そして、学習部８０７は、確信度αtに基づいて、サンプルに対する重みを更新する（Ｓ３００９）。
【００９１】
次に、学習部８０７は、カウンタｔに１を加え（Ｓ３０１１）、カウンタｔが繰り返し回数Ｔを超えたか否かを判定する（Ｓ３０１３）。カウンタｔが繰り返し回数Ｔを超えていないと判定した場合には、学習部８０７は、Ｓ３００５の処理に戻って、上述した処理を繰り返す。
【００９２】
カウンタｔが繰り返し回数Ｔを超えたと判定した場合には、学習部８０７は、最終仮説を求める（Ｓ３０１５）。具体的には、確信度αtに基づいて各弱仮説ｈtを結合した最終仮説Ｆを算出する。このとき得られたモデルデータは、モデルデータ格納部８０９に格納される。モデルデータは、各弱仮説ｈtを特定するデータと、各弱仮説ｈtの結合を定義するデータとを含んでいる。以上で、学習処理についての説明を終える。
【００９３】
次に、メイン処理について説明する。タッチタイプ別のイベントに応じた処理を行うプログラム（以下、上位モジュールという。）が動作している状態で、以下に示すメイン処理が実行される。上位モジュールは、例えばオペレーティング・システム又はアプリケーション・プログラムである。
【００９４】
図３１に、メイン処理フローを示す。取得部８１１は、平面スキャンセンサ１０１から計測データを得る（Ｓ３１０１）。計測データは、角度と距離とによって物体の検出位置を示している。変換部８１３は、計測データを形状データに変換する（Ｓ３１０３）。形状データは、Ｘ座標：Ｙ座標によって物体の検出位置を示す。
【００９５】
算出部８０５は、特徴ベクトル算出処理を実行する（Ｓ３１０４）。特徴ベクトル算出処理において、算出部８０５は、形状データにおける特徴ベクトルを算出する。特徴ベクトルは、特徴ベクトル格納部８１５に格納される。
【００９６】
適用部８１７は、モデルデータに基づいて適用処理を実行する（Ｓ３１０５）。適用処理において、適用部８１７は、最終仮説Ｆに相当する分類器によって、Ｓ３１０４で算出された特徴ベクトルに基づいてクラスを判定する。クラスは、タッチタイプに相当する。
【００９７】
インターフェース部８１９は、判定結果、つまりタッチタイプを上位モジュールに渡す（Ｓ３１０７）。インターフェース部８１９は、終了が指示されたが否かを判定する（Ｓ３１０９）。終了が指示されていないと判定した場合には、Ｓ３１０１に示した処理に戻って、上述した処理を繰り返す。
【００９８】
一方、終了が指示されたと判定した場合には、メイン処理を終える。
【００９９】
本実施の形態によれば、表示面１０３付近の平面計測の結果に基づいて、タッチタイプをより正しく判別する分類器を生成することができる。また、第１特徴に着目すれば、細かな形状の特徴と大まかな形状の特徴とを分類器に反映させることができる面がある。
【０１００】
更に、第２特徴に着目すれば、細尖点の数及び位置に起因する特徴を分類器に反映させることができる面がある。
【０１０１】
更に、第３特徴に着目すれば、幅に関する統計的な特徴を分類器に反映させることができる面がある。
【０１０２】
更に、第４特徴に着目すれば、形状の複雑さに関する特徴を分類器に反映させることができる面がある。
【０１０３】
更に、第５特徴に着目すれば、例えば指の広がり方に関する特徴を分類器に反映させることができる面がある。
【０１０４】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１０５】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
【０１０６】
なお、上で述べた制御装置７０１は、コンピュータ装置であって、図３２に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１０７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１０８】
本実施の形態に係る生成方法は、（Ａ）表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、（Ｂ）第１形状に含まれる上記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、（Ｃ）第１尖点の数及び第２尖点の数を含むサンプルの集合に基づいて、表示面をタッチする手の形を識別するタイプを判別する分類器を生成する処理を含む。
【０１０９】
このようにすれば、表示面に対するタッチタイプをより正しく判別できる。また、細かな形状の特徴と大まかな形状の特徴とを、分類器に反映させることができる面がある。
【０１１０】
更に、（Ｄ）上記計測された点の各々について、当該点に近い１つの第１尖点と当該点との距離の第１逆数と、上記計測された点の重心と当該１つの第１尖点との距離の第２逆数との積を重みとして、重み付けされた次の重心を算出し、重心を更新する処理を繰り返し、（Ｅ）第１尖点の各々と最後に算出された重心との距離の平均を算出する処理を含むようにしてもよい。そして、この場合、上記サンプルは、上記距離の平均を含んでもよい。
【０１１１】
このようにすれば、尖点の数及び位置に起因する特徴を分類器に反映させることができる。
【０１１２】
更に、（Ｆ）第１形状において均等な間隔で複数の幅を算出し、（Ｇ）当該複数の幅の平均及び分散を算出する処理を含むようにしてもよい。そして、この場合、上記サンプルは、上記平均及び上記分散を含んでもよい。
【０１１３】
このようにすれば、幅に関する統計的な特徴を分類器に反映させることができる。
【０１１４】
更に、第１形状における輪郭線の長さを算出する処理を含むようにしてもよい。そして、この場合、上記サンプルは、上記長さを含んでもよい。
【０１１５】
このようにすれば、形状の複雑さに関する特徴を分類器に反映させることができる。
【０１１６】
更に、（Ｈ）第１形状における最小の外接矩形を特定し、（Ｉ）外接矩形の面積及びアスペクト比を算出する処理を含むようにしてもよい。そして、この場合、上記サンプルは、上記面積及び上記アスペクト比を含んでもよい。
【０１１７】
このようにすれば、例えば指の広がり方に関する特徴を分類器に反映させることができる。
【０１１８】
本実施の形態に係る生成方法は、（Ａ）表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、（Ｂ）第１形状に含まれる上記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、（Ｃ）第１尖点の数及び第２尖点の数に基づいて、表示面をタッチする手の形を識別するタイプを判別する処理を含む。
【０１１９】
上で述べた分類器を用いれば、表示面に対するタッチタイプをより正しく判別できるようになる。
【０１２０】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１２１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２２】
（付記１）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する
処理を含み、コンピュータにより実行される生成方法。
【０１２３】
（付記２）
更に、
前記計測された点の各々について、当該点に近い１つの第１尖点と当該点との距離の第１逆数と、前記計測された点の重心と当該１つの第１尖点との距離の第２逆数との積を重みとして、重み付けされた次の重心を算出し、前記重心を更新する処理を繰り返し、
前記第１尖点の各々と最後に算出された前記重心との距離の平均を算出する
処理を含み、
前記サンプルは、前記距離の平均を含む
付記１記載の生成方法。
【０１２４】
（付記３）
更に、
前記第１形状において均等な間隔で複数の幅を算出し、
当該複数の幅の平均及び分散を算出する
処理を含み、
前記サンプルは、前記平均及び前記分散を含む
付記１又は２記載の生成方法。
【０１２５】
（付記４）
更に、
前記第１形状における輪郭線の長さを算出する
処理を含み、
前記サンプルは、前記長さを含む
付記１乃至３のうち１つ記載の生成方法。
【０１２６】
（付記５）
更に、
前記第１形状における最小の外接矩形を特定し、
外接矩形の面積及びアスペクト比を算出する
処理を含み、
前記サンプルは、前記面積及び前記アスペクト比を含む
付記１乃至４のうち１つ記載の生成方法。
【０１２７】
（付記６）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する
処理を含み、コンピュータにより実行される判別方法。
【０１２８】
（付記７）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する
処理をコンピュータに実行させるプログラム。
【０１２９】
（付記８）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、
前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出し、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する
処理をコンピュータに実行させるプログラム。
【０１３０】
（付記９）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出する算出部と、
前記第１尖点の数及び前記第２尖点の数を含むサンプルの集合に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する分類器を生成する生成部と
を有する情報処理装置。
【０１３１】
（付記１０）
表示面付近の物体の位置が平面的に計測された点を連ねた第１形状における第１尖点の数を算出し、前記第１形状に含まれる前記計測された点のうち、一部の点が間引かれた第２形状における第２尖点の数を算出する算出部と、
前記第１尖点の数及び前記第２尖点の数に基づいて、前記表示面をタッチする手の形を識別するタイプを判別する判別部と
を有する情報処理装置。
【符号の説明】
【０１３２】
１０１  平面スキャンセンサ    １０３  表示面
７０１  制御装置    ７０３  表示装置
８０１  収集部    ８０３  サンプル格納部
８０５  算出部    ８０６  パラメータ記憶部
８０７  学習部    ８０９  モデルデータ格納部
８１１  取得部    ８１３  変換部
８１５  特徴ベクトル格納部    ８１７  適用部
８１９  インターフェース部
【図１】
0006488961.tif 000002
【図２】
0006488961.tif 000003
【図３】
0006488961.tif 000004
【図４】
0006488961.tif 000005
【図５】
0006488961.tif 000006
【図６】
0006488961.tif 000007
【図７】
0006488961.tif 000008
【図８】
0006488961.tif 000009
【図９】
0006488961.tif 000010
【図１０】
0006488961.tif 000011
【図１１】
0006488961.tif 000012
【図１２】
0006488961.tif 000013
【図１３】
0006488961.tif 000014
【図１４】
0006488961.tif 000015
【図１５】
0006488961.tif 000016
【図１６】
0006488961.tif 000017
【図１７】
0006488961.tif 000018
【図１８】
0006488961.tif 000019
【図１９】
0006488961.tif 000020
【図２０】
0006488961.tif 000021
【図２１】
0006488961.tif 000022
【図２２】
0006488961.tif 000023
【図２３】
0006488961.tif 000024
【図２４】
0006488961.tif 000025
【図２５】
0006488961.tif 000026
【図２６】
0006488961.tif 000027
【図２７】
0006488961.tif 000028
【図２８】
0006488961.tif 000029
【図２９】
0006488961.tif 000030
【図３０】
0006488961.tif 000031
【図３１】
0006488961.tif 000032
【図３２】
0006488961.tif 000033