(57)【要約】【課題】ユーザのジェスチャを精度よく認識することができる認識装置、方法、及びプログラムを提供する。【解決手段】一実施形態に係る認識装置は、生成部と、検出部と、抽出部と、判定部と、を備える。生成部は、ポインタの動き情報からポインタの軌跡を生成する。検出部は、ポインタが操作面に接触したことを検出し、検出時刻及び検出時刻におけるポインタの検出位置を取得する。抽出部は、検出位置を始点として取得し、検出時刻及び検出位置の少なくとも一方に基づいて、始点に対応する終点を取得し、始点から終点までの軌跡を対象軌跡として抽出する。判定部は、対象軌跡に基づいて、ユーザがポインタのジェスチャにより入力したコマンドを判定する。【選択図】図１
2016095795.tif 000002
【特許請求の範囲】
【請求項１】
ポインタの動き情報から前記ポインタの軌跡を生成する生成部と、
前記ポインタが操作面に接触したことを検出し、検出時刻及び検出時刻における前記ポインタの検出位置を取得する検出部と、
前記検出位置を始点として取得し、前記検出時刻及び前記検出位置の少なくとも一方に基づいて、前記始点に対応する終点を取得し、前記始点から前記終点までの前記軌跡を対象軌跡として抽出する抽出部と、
前記対象軌跡に基づいて、ユーザが前記ポインタのジェスチャにより入力したコマンドを判定する判定部と、
を備える認識装置。
【請求項２】
前記判定部は、前記対象軌跡に基づいて、前記ユーザが入力したジェスチャコマンドを判定する
請求項１に記載の認識装置。
【請求項３】
前記抽出部は、前記検出時刻から所定時間後の前記ポインタの位置を前記終点として取得する
請求項２に記載の認識装置。
【請求項４】
前記抽出部は、前記検出位置から所定距離離間した前記ポインタの位置を前記終点として取得する
請求項２又は請求項３に記載の認識装置。
【請求項５】
前記抽出部は、前記始点として取得した前記検出位置の次の前記検出位置を前記終点として取得する
請求項２乃至請求項４のいずれか１項に記載の認識装置。
【請求項６】
前記判定部は、前記始点から前記終点までの距離が所定距離以上の場合、前記ジェスチャコマンドをフリックコマンドと判定する
請求項２乃至請求項５のいずれか１項に記載の認識装置。
【請求項７】
前記判定部は、前記始点の時刻から前記終点の時刻までの経過時間が所定時間以上の場合、前記ジェスチャコマンドをタップコマンドと判定する
請求項２乃至請求項６のいずれか１項に記載の認識装置。
【請求項８】
前記判定部は、前記対象軌跡に基づいて、前記ユーザが入力した文字及び図形の少なくとも一方を判定する
請求項１に記載の認識装置。
【請求項９】
前記抽出部は、前記始点として取得した前記検出位置の次の前記検出位置の直前の前記軌跡の屈曲点を前記終点として取得する
請求項８に記載の認識装置。
【請求項１０】
前記抽出部は、前記検出時刻から所定時間後の前記ポインタの位置を前記終点として取得する
請求項８又は請求項９に記載の認識装置。
【請求項１１】
前記抽出部は、前記検出時刻の直後に前記ポインタの停留が検出された際の前記ポインタの位置を前記終点として取得する
請求項８乃至請求項１０の少なくとも１項に記載の認識装置。
【請求項１２】
前記抽出部は、前記ユーザから入力された終了信号の取得時の前記ポインタの位置を前記終点として取得する
請求項８乃至請求項１１の少なくとも１項に記載の認識装置。
【請求項１３】
前記検出部は、前記動き情報に基づいて、前記ポインタが前記操作面に接触したことを検出する
請求項１乃至請求項１２のいずれか１項に記載の認識装置。
【請求項１４】
ポインタの動き情報から前記ポインタの軌跡を生成する生成部と、
前記ポインタが操作面から離間したことを検出し、検出時刻及び検出時刻における前記ポインタの検出位置を取得する検出部と、
前記検出位置を終点として取得し、前記軌跡の方向に基づいて、前記終点に対応する始点を取得し、前記始点から前記終点までの前記軌跡を対象軌跡として抽出する抽出部と、
前記対象軌跡に基づいて、ユーザが前記ポインタのジェスチャにより入力した文字及び図形の少なくとも一方を判定する判定部と、
を備える認識装置。
【請求項１５】
前記抽出部は、前記終点として取得した前記検出位置の前の前記検出位置の直後の前記軌跡の屈曲点を前記始点として取得する
請求項１４に記載の認識装置。
【請求項１６】
前記抽出部は、前記検出時刻から所定時間前の前記ポインタの位置を前記始点として取得する
請求項１４又は請求項１５に記載の認識装置。
【請求項１７】
前記抽出部は、前記検出時刻の直前に前記ポインタの停留が検出された際の前記ポインタの位置を前記始点として取得する
請求項１４乃至請求項１６の少なくとも１項に記載の認識装置。
【請求項１８】
前記抽出部は、前記ユーザから入力された開始信号の取得時の前記ポインタの位置を前記始点として取得する
請求項１４乃至請求項１７の少なくとも１項に記載の認識装置。
【請求項１９】
ポインタの動き情報から前記ポインタの軌跡を生成する工程と、
前記ポインタが操作面に接触したことを検出し、検出時刻及び検出時刻における前記ポインタの検出位置を取得する工程と、
前記検出位置を始点として取得し、前記検出時刻及び前記検出位置の少なくとも一方に基づいて、前記始点に対応する終点を取得し、前記始点から前記終点までの前記軌跡を対象軌跡として抽出する工程と、
前記対象軌跡に基づいて、ユーザが前記ポインタのジェスチャにより入力したコマンドを判定する工程と、
を備える認識方法。
【請求項２０】
ポインタの動き情報から前記ポインタの軌跡を生成する工程と、
前記ポインタが操作面に接触したことを検出し、検出時刻及び検出時刻における前記ポインタの検出位置を取得する工程と、
前記検出位置を始点として取得し、前記検出時刻及び前記検出位置の少なくとも一方に基づいて、前記始点に対応する終点を取得し、前記始点から前記終点までの前記軌跡を対象軌跡として抽出する工程と、
前記対象軌跡に基づいて、ユーザが前記ポインタのジェスチャにより入力したコマンドを判定する工程と、
をコンピュータに実行させる認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、認識装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、加速度センサなどのセンサデータを解析することで、ユーザのジェスチャを認識する技術が知られている。この認識技術を用いることで、ユーザは、任意の操作面上で指を動かすことにより、ジェスチャに応じたコマンドを入力することができる。任意の操作面上でのジェスチャを認識する方法として、センサを装着した指の押し下げ、軌跡、持ち上げの信号を用いる方法が提案されている。
【０００３】
しかしながら、上記従来のジェスチャ認識方法では、指の押し下げや持ち上げの検出を誤った場合、操作面上でのジェスチャが誤認識され、ジェスチャを正しく認識することが困難になるという問題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５４３９０号公報
【特許文献２】米国特許第７４２７９７９号明細書
【非特許文献】
【０００５】
【非特許文献１】Sebastian O.H. Madgwick, Andrew J.L. Harrison, Ravi Vaidyanathan：“Estimation of IMU and MARG orientation using a gradient descent algorithm”, 2011 IEEE International Conference on Rehabilitation Robotics, 2011.June
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ユーザのジェスチャを精度よく認識することができる認識装置、方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
一実施形態に係る認識装置は、生成部と、検出部と、抽出部と、判定部と、を備える。生成部は、ポインタの動き情報からポインタの軌跡を生成する。検出部は、ポインタが操作面に接触したことを検出し、検出時刻及び検出時刻におけるポインタの検出位置を取得する。抽出部は、検出位置を始点として取得し、検出時刻及び検出位置の少なくとも一方に基づいて、始点に対応する終点を取得し、始点から終点までの軌跡を対象軌跡として抽出する。判定部は、対象軌跡に基づいて、ユーザがポインタのジェスチャにより入力したコマンドを判定する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係る認識装置の機能構成を示すブロック図。
【図２】指の動きの一例を示す図。
【図３】図２の動きに対して生成される軌跡の一例を示す図。
【図４】座標軸の設定方法を説明する図。
【図５】ピッチを説明する図。
【図６】ヨーを説明する図。
【図７】ロールを説明する図。
【図８】加速度センサのセンサデータの一例を示す図。
【図９】第１実施形態に係る認識装置のハードウェア構成を示す図。
【図１０】第１実施形態に係る認識装置の処理を示すフローチャート。
【図１１】第１実施形態に係る認識装置の画面の一例を示す図。
【図１２】屈曲点の取得方法を説明する図。
【図１３】対象軌跡の抽出方法を説明する図。
【図１４】第２実施形態に係る認識装置の処理を示すフローチャート。
【図１５】第２実施形態に係る認識装置の処理を説明する図。
【図１６】第２実施形態に係る認識装置の画面の一例を示す図。
【図１７】第３実施形態に係る認識装置の機能構成を示すブロック図。
【図１８】対象軌跡の抽出方法を説明する図。
【図１９】第３実施形態に係る認識装置の処理を示すフローチャート。
【図２０】第３実施形態に係る認識装置の処理を説明する図。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
【００１０】
以下の各実施形態に係る認識装置は、ポインタの動き情報に基づいて、ユーザが操作面上でポインタにより行ったジェスチャを認識し、ジェスチャに応じたコマンドを出力する。
【００１１】
ポインタとは、ユーザがコマンドを入力するために操作面上で動かす任意の手段である。ポインタには、身体の特定部位、ペン、及びタッチペンが含まれる。特定部位は、例えば、指、腕、手首、頭、太もも、つま先、及び足首であるが、これに限られない。
【００１２】
ポインタは、認識装置の用途に応じて選択される。文字を手書き入力する用途の場合、ポインタとして指やペンを用いるのが好ましい。また、車の運転時に利用する場合には、ポインタとしてつま先を用いるのが好ましい。つま先でジェスチャコマンドを入力することにより、車の運転中であっても、車載の空調やカーナビゲーションシステムを安全に操作することが可能となる。認識装置の利用方法について、詳しくは後述する。
【００１３】
動き情報とは、動きを示す情報である。動き情報は、例えば、加速度、角速度、及び地磁気であるが、これに限られない。動き情報として、動き情報センサの時系列のセンサデータを用いることができる。動き情報センサは、例えば、加速度センサ、角速度センサ、地磁気センサであるが、これに限られない。動き情報センサとして、市販の９軸センサを用いることができる。
【００１４】
動き情報センサは、ポインタに装着可能に構成される。したがって、動き情報センサは、ポインタに応じて選択される。例えば、ポインタがユーザの指である場合、動き情報センサとして、指輪型のセンサが用いられる。また、ポインタが腕の場合、動き情報センサとして、腕輪型やグローブ型のセンサが用いられる。
【００１５】
認識装置は、動き情報センサから無線通信により、動き情報を取得するのが好ましいが、動き情報センサを備える構成も可能である。認識装置が動き情報センサを備える場合、認識装置は、ポインタに装着可能に構成される。例えば、ポインタがユーザの指である場合、認識装置は、指輪型のウェアラブル端末として構成される。また、ポインタが腕の場合、認識装置は、腕輪型やグローブ型のウェアラブル端末として構成される。
【００１６】
操作面とは、ユーザがジェスチャによってコマンドを入力するために、ポインタを接触させる任意の面である。操作面は、例えば、手のひら、手の甲、腕、太もも、テーブル、壁面、及び床面であるが、これに限られない。
【００１７】
ジェスチャとは、コマンドを入力するための操作面上におけるポインタの動きのことである。ジェスチャには、操作面上における特定の動作（例えば、タップ及びフリック）や、文字や図形（以下、「文字等」という）を手書き入力するための動作が含まれる。認識装置は、ジェスチャを操作面上でのポインタの軌跡として認識する。
【００１８】
コマンドとは、ジェスチャと対応したコンピュータへの命令や、ジェスチャにより入力される文字等のことである。認識装置は、ジェスチャを認識することにより、ユーザにより入力されたコマンドを判定する。
【００１９】
なお、以下の説明において、ポインタは、ユーザの指であるものとするが、上述の通り、これに限られない。
【００２０】
（第１実施形態）
第１実施形態に係る認識装置、方法、及びプログラムについて、図１〜図１１を参照して説明する。本実施形態に係る認識装置は、ユーザがジェスチャにより入力したジェスチャコマンドを判定する。ジェスチャコマンドとは、タップやフリックなどの特定のジェスチャに対応したコンピュータへの命令のことである。
【００２１】
まず、本実施形態に係る認識装置の機能構成について、図１〜図８を参照して説明する。図１は、本実施形態に係る認識装置の機能構成を示すブロック図である。図１に示すように、認識装置は、軌跡生成部１と、接触検出部２と、対象軌跡抽出部３と、コマンド判定部４と、を備える。
【００２２】
軌跡生成部１（以下、「生成部１」という）は、ユーザの指の動き情報から指の軌跡を生成する。生成部１は、例えば、指輪型の動き情報センサのセンサデータから、指の軌跡を生成する。具体的には、生成部１は、指の動き情報を動き情報を取得し、取得した動き情報に基づいて、各時刻ｔにおける指の位置ｐを算出する。
【００２３】
例えば、指が図２のように移動し、移動中の各時刻ｔ１〜ｔ６の動き情報を生成部１が取得した場合、生成部１は、図３に示すように、時刻ｔ１〜ｔ６における指の位置ｐ１〜ｐ６をそれぞれ算出する。生成部１は、算出した位置ｐの点列を、指の軌跡として出力する。すなわち、指の軌跡は、図３に示すような指の位置ｐの点列として生成される。
【００２４】
なお、生成部１は、算出した各位置ｐの間を補完して、軌跡を生成してもよい。これにより、算出された位置ｐ１〜ｐ６から、図３の点線で示すような軌跡を生成することができる。
【００２５】
指の位置ｐは、指の３次元的な傾きを所定の平面上の相対位置に対応付けることで算出される。生成部１は、位置ｐを算出するために、まず、標準状態における指の傾き基準にして座標軸を設定する。
【００２６】
図４は、設定された座標軸の一例を示す図である。図４の座標軸において、標準状態における指先の方向がｚ軸、指の腹側から甲側の方向がｙ軸、ｙ軸及びｚ軸と垂直な方向がｘ軸として設定されているが、座標軸の設定方法はこれに限られない。
【００２７】
生成部１は、座標軸を設定した後、この座標軸における指の傾きを算出し、指の傾きから求まる直線と、所定の平面と、の交点を位置ｐとして算出する。例えば、図４において、所定の平面がｘｙ平面である場合、指の傾きから求まる直線とｘｙ平面との交点が指の位置ｐとなる。図２及び図３の第１軸及び第２軸は、図４のｘ軸及びｙ軸とそれぞれ対応させることができる。
【００２８】
標準状態とは、所定のタイミングにおける指の状態のことである。所定のタイミングは、例えば、認識プログラムが認識処理を開始したタイミングや、音声入力やボタンの押下によって認識装置に所定の信号が入力されたタイミングである。
【００２９】
また、所定のタイミングは、ジェスチャの開始が検出されたタイミングであってもよい。ジェスチャの開始が検出されたタイミングは、例えば、後述する接触検出部２により、指が操作面に接触したことが検出されたタイミングであってもよい。
【００３０】
さらに、所定のタイミングは、指の所定の形状、姿勢、及び角度（以下、「形状等」という）が一定時間継続的に検出されたタイミングであってもよい。例えば、生成部１は、図４のような指の形状等が一定時間継続的に検出された場合、この状態を標準状態として、座標軸を設定することができる。
【００３１】
座標軸上における指の３次元的な傾きは、例えば、標準状態における指の傾きを基準とした、ピッチ（pitch）、ヨー（yaw）、及びロール（roll）により表現できる。
【００３２】
ピッチとは、図５に示すように、標準状態における指の左右方向を軸とした上下方向の回転角である。ヨーとは、図６に示すように、標準状態における指の上下方向を軸にした左右方向の回転角である。ロールとは、図７に示すように、標準状態における指の前後方向を軸とした回転角である。
【００３３】
図５〜図７において、ピッチ、ヨー、及びロールは、それぞれ下方向、右方向、右回りが正方向となっているが、逆でもよい。これらのピッチ、ヨー、及びロールは、加速度、角速度、及び地磁気などの動き情報に基づいて算出することができる。
【００３４】
接触検出部２（以下、「検出部２」という）は、指が操作面に接触したことを検出する。検出部２は、例えば、指やその周辺に装着された圧力センサや筋電センサ（以下、「圧力センサ等」という）のセンサデータに基づいて接触を検出する。具体的には、検出部２は、圧力センサ等の出力値を所定の閾値と比較したり、出力波形のパターンを接触時のパターンと比較したりすることにより、接触を検出する。認識装置は、圧力センサ等と無線通信してセンサデータを取得するのが好ましいが、圧力センサ等を備える構成も可能である。
【００３５】
また、検出部２は、動き情報に基づいて接触を検出してもよい。ここで、図８は、加速度センサのセンサデータの一例を示す図である。図８に示すように、指が操作面に接触すると、加速度の波形が急峻に変化し、パルス波形が形成される。このため、検出部２は、加速度のパルス波形を検出することにより、接触を検出することができる。より詳細には、検出部２は、以下で説明する第１条件と第２条件とから、接触を検出してもよい。
【００３６】
第１条件は、過去の所定時間の加速度の平均値を基準値として、加速度の変化量が所定の閾値「Ａ１」以上であるという条件である。
【００３７】
第２条件は、基準値からの加速度の変化量が最大となる時刻を「Ｔｍａｘ」、所定の時間間隔を「Ｔ１」，「Ｔ２」として、時刻「Ｔｍａｘ−Ｔ２」から時刻「Ｔｍａｘ−Ｔ１」までの間と、時刻「Ｔｍａｘ＋Ｔ１」から時刻「Ｔｍａｘ＋Ｔ２」までの間とにおける、加速度の変化量が所定の閾値「Ａ２」未満であるという条件である。
【００３８】
なお、時間間隔「Ｔ１」，「Ｔ２」は、「Ｔ２＞Ｔ１」の関係を有する。また、所定の閾値「Ａ１」，「Ａ２」は、「Ａ１＞Ａ２」の関係を有する。例えば、所定の閾値「Ａ２」は、「Ａ１」の半分程度、若しくは半分以下の値をとれば良く、基準値よりも大きい値とする。過去の所定時間は、例えば、１００〜３００ｍｓ（ミリセック）程度の時間である。あまり長い時間における加速度の平均値を基準値とした場合、操作面への指の接触が繰り返し行なわれた場合の検出が困難になる可能性があるため、ユーザの仕様により適宜変更すると良い。また、「Ａ１」は、例えば「０．５×重力加速度」と定義をしても良いし、操作面への接触を初期設定時に行ない、ピークの値をもとに決めても良い。
【００３９】
詳細には、時刻「Ｔｍａｘ−Ｔ２」から時刻「Ｔｍａｘ−Ｔ１」までの間と、時刻「Ｔｍａｘ＋Ｔ１」から時刻「Ｔｍａｘ＋Ｔ２」までの間とは、加速度の変化量が最大となる時刻「Ｔｍａｘ」の前後の時間間隔である。
【００４０】
上述したように、接触時の加速度の波形は、加速度の波形が検知される時間が短く、急峻な形状となる。このため、加速度の変化量が最大となる時刻の前後の波形が、基準値と同等の値となっていれば、検出部２は、操作面に指が接触したものと判定しても良い。第１条件及び第２条件を採用することで、指が操作面に接触しない動作により、接触が検出されることを抑制できる。
【００４１】
また、第１条件及び第２条件に、第３条件をさらに加えても良い。第３条件は、時刻「Ｔｍａｘ」の前後の時間間隔において、手首の位置が一定の範囲におさまるような静止状態であるという条件である。手首の位置が時系列で算出可能な場合には、検出部２は、第３条件をさらに加えて接触を判定することにより、より高精度に接触を検出することができる。
【００４２】
検出部２は、接触を検出すると、接触が検出された時刻ｔ及び時刻ｔにおける指の位置ｐを、検出時刻Ｔ及び検出位置Ｐとして、生成部１から取得する。
【００４３】
対象軌跡抽出部３（以下、「抽出部３」という）は、生成部１が生成した指の軌跡から、対象軌跡を抽出する。ユーザの指は、操作面に接触し、操作面上で移動し、操作面から離間し、操作面から離れた位置で移動する、という一連の動きを繰り返す。このため、生成部１が生成する軌跡には、操作面上で指が移動したことにより生成された軌跡部分と、指が操作面から離れた位置で移動することにより生成された軌跡部分とが含まれる。対象軌跡とは、このような軌跡のうち、操作面上で指が移動したことにより生成された軌跡部分のことである。認識装置は、ユーザのジェスチャを対象軌跡として認識し、対象軌跡に基づいて、コマンドを判定する。
【００４４】
本実施形態において、抽出部３は、まず、対象軌跡の始点として、検出部２から検出位置Ｐを取得する。次に、抽出部３は、始点に対応する終点を取得する。そして、抽出部３は、生成部１が生成した軌跡から、始点から終点までの軌跡を、対象軌跡として抽出する。なお、始点に対応する終点とは、始点から始まる対象軌跡の終点のことである。
【００４５】
抽出部３は、例えば、始点の時刻（検出時刻Ｔ）から所定時間Ｔ３後の指の位置ｐを、対象軌跡の終点として取得する。所定時間Ｔ３は任意に設定可能である。
【００４６】
また、抽出部３は、始点の位置（検出位置Ｐ）から所定距離Ｌ離間した指の位置ｐを、対象軌跡の終点として取得してもよい。
【００４７】
さらに、抽出部３は、始点として取得した検出位置Ｐの次の検出位置を、検出位置Ｐに対応する終点として取得してもよい。
【００４８】
コマンド判定部４（以下、「判定部４」という）は、抽出部３が抽出した対象軌跡に基づいて、ユーザが入力したコマンドを判定し、判定結果を出力する。本実施形態において、判定部４は、ジェスチャコマンドを判定し、判定したジェスチャコマンドを出力する。
【００４９】
判定部４は、例えば、対象軌跡の始点の時刻（検出時刻Ｔ）から終点の時刻ｔまでの時間（ｔ−Ｔ）が所定時間Ｔ３以上の場合（ｔ−Ｔ≧Ｔ３）、ジェスチャコマンドをタップコマンドと判定する。
【００５０】
また、判定部４は、対象軌跡の始点（検出位置Ｐ）から終点ｐまでの距離（｜ｐ−Ｐ｜）が所定距離Ｌ以上の場合（｜ｐ−Ｐ｜≧Ｌ）、ジェスチャコマンドをフリックコマンドと判定してもよい。この場合、判定部４は、対象軌跡の始点から終点へのベクトルの方向に基づいて、フリックの方向を判定するのが好ましい。フリックの方向は、例えば、所定の平面上における上方向、下方向、左方向、及び右方向のいずれかである。判定部４は、ベクトルの方向に最も近い方向を、フリックの方向として判定すればよい。
【００５１】
次に、本実施形態に係る認識装置のハードウェア構成について、図９を参照して説明する。本実施形態に係る認識装置は、図９に示すように、コンピュータ１００により構成される。コンピュータ１００は、ＣＰＵ（中央演算装置）１０１と、入力装置１０２と、表示装置１０３と、通信装置１０４と、記憶装置１０５と、とを備え、これらはバス１０６により相互に接続されている。
【００５２】
ＣＰＵ１０１は、コンピュータ１００の制御装置及び演算装置である。ＣＰＵ１０１は、バス１０６を介して接続された各装置（例えば、入力装置１０２、通信装置１０４、記憶装置１０５）から入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を、バス１０６を介して接続された各装置（例えば、表示装置１０３、通信装置１０４、記憶装置１０５）に出力する。
【００５３】
具体的には、ＣＰＵ１０１は、コンピュータ１００のＯＳ（オペレーティングシステム）や、認識プログラムなどを実行し、コンピュータ１００を構成する各装置を制御する。認識プログラムとは、コンピュータ１００に、認識装置の上述の各機能構成を実現させるプログラムである。ＣＰＵ１０１が認識プログラムを実行することにより、コンピュータ１００が認識装置として機能する。
【００５４】
入力装置１０２は、コンピュータ１００に情報を入力するための装置である。入力装置１０２は、例えば、キーボード、マウス、及びタッチパネルであるが、これに限られない。
【００５５】
表示装置１０３は、画像や映像を表示するための装置である。表示装置１０３は、例えば、ＬＣＤ（液晶ディスプレイ）、ＣＲＴ（ブラウン管）、タッチパネル、及びＰＤＰ（プラズマディスプレイ）であるが、これに限られない。表示装置１０３は、加速度センサなどのセンサデータ、生成部１が生成した軌跡、検出部２による接触の検出結果、取得部が取得した検出位置及び検出時刻、抽出部３が抽出した対象軌跡、及び判定部４による判定結果などの情報を表示してもよい。
【００５６】
通信装置１０４は、コンピュータ１００が外部装置と無線又は有線で通信するための装置である。通信装置１０４は、例えば、モデム、ハブ、及びルータであるが、これに限られない。動き情報センサや圧力センサ等などのセンサデータは、通信装置１０４を介して取得することができる。
【００５７】
記憶装置１０５は、コンピュータ１００のＯＳや、認識プログラム、認識プログラムの実行に必要なデータ、及び認識プログラムの実行により生成されたデータなどを記憶する記憶媒体である。記憶装置１０５には、主記憶装置と外部記憶装置とが含まれる。主記憶装置は、例えば、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭであるが、これに限られない。また、外部記憶装置は、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。記憶装置１０５は、加速度センサなどのセンサデータ、生成部１が生成した軌跡、検出部２による接触の検出結果、取得部が取得した検出位置及び検出時刻、抽出部３が抽出した対象軌跡、及び判定部４による判定結果などの情報を記憶することができる。
【００５８】
なお、コンピュータ１００は、ＣＰＵ１０１、入力装置１０２、表示装置１０３、通信装置１０４、及び記憶装置１０５を、１つ又は複数備えてもよいし、プリンタやスキャナなどの周辺機器を接続されていてもよい。
【００５９】
また、認識装置は、単一のコンピュータ１００により構成されてもよいし、相互に接続された複数のコンピュータ１００からなるシステムとして構成されてもよい。
【００６０】
さらに、認識プログラムは、コンピュータ１００の記憶装置１０５に予め記憶されていてもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶されていてもよいし、インターネット上にアップロードされていてもよい。いずれの場合も、認識プログラムをコンピュータ１００にインストールして実行することにより、認識装置を構成することができる。
【００６１】
またさらに、認識装置が動き情報センサや圧力センサ等を備える場合には、これらのセンサはバス１０６を介して接続されてもよい。
【００６２】
次に、本実施形態に係る認識装置の処理について、図１０を参照して具体的に説明する。図１０は、本実施形態に係る認識装置の処理を示すフローチャートである。以下では、ジェスチャコマンドが、フリックコマンド又はタップコマンドと判定される場合について説明する。
【００６３】
ステップＳ１において、検出部２は、検出位置Ｐ及び検出時刻Ｔをリセットする。
【００６４】
ステップＳ２において、生成部１は、ジェスチャの認識処理を継続するか否か判定する。認識処理を継続しないと判定された場合（ステップＳ２のＮＯ）、認識処理は終了する。認識処理は、例えば、最新のセンサデータが取得できない場合や、認識処理の終了信号が入力された場合に終了する。認識処理を継続する場合（ステップＳ２のＹＥＳ）、処理はステップＳ３に進む。
【００６５】
ステップＳ３において、生成部１は、最新の動き情報を取得し、指の軌跡を生成する。
【００６６】
生成部１が軌跡を生成した時点で、検出位置Ｐ及び検出時刻Ｔが設定されていない場合（ステップＳ４のＮＯ）、処理はステップＳ５に進む。
【００６７】
ステップＳ５において、検出部２は、指が操作面に接触したか否か判定する。接触の検出方法は上述の通りである。検出部２が接触を検出しなかった場合（ステップＳ５のＮＯ）、処理はステップＳ２に戻る。一方、検出部２が接触を検出した場合（ステップＳ５のＹＥＳ）、処理はステップＳ６に進む。
【００６８】
ステップＳ６において、検出部２は、生成部１から、接触を検出した時刻ｔを検出時刻Ｔとして取得し（Ｔ＝ｔ）、時刻ｔにおける位置ｐを検出位置Ｐとして取得する（Ｐ＝ｐ）。これにより、検出位置Ｐ及び検出時刻Ｔが設定される。その後、処理はステップＳ２に戻る。
【００６９】
生成部１が軌跡を生成した時点で、検出位置Ｐ及び検出時刻Ｔが設定済みの場合（ステップＳ４のＹＥＳ）、処理はステップＳ７に進む。
【００７０】
ステップＳ７において、抽出部３は、検出部２から対象軌跡の始点として、検出位置Ｐ及び検出時刻Ｔを取得する。そして、抽出部３は、検出時刻Ｔから現在時刻ｔまでの時間（ｔ−Ｔ）が所定時間Ｔ３以上であるか判定する。所定時間Ｔ３未満である場合、すなわち、ｔ−Ｔ＜Ｔ３の場合（ステップＳ７のＮＯ）、処理はステップＳ８に進む。
【００７１】
ステップＳ８において、抽出部３は、検出位置Ｐから現在位置ｐまでの距離｜ｐ−Ｐ｜が所定距離Ｌ以上であるか判定する。所定距離Ｌ未満である場合、すなわち、｜ｐ−Ｐ｜＜Ｌの場合（ステップＳ８のＮＯ）、処理はステップＳ２に戻る。
【００７２】
ステップＳ７において、所定時間Ｔ３以上の場合、すなわち、ｔ−Ｔ≧Ｔ３の場合（ステップＳ７のＹＥＳ）、処理はステップＳ９に進む。
【００７３】
ステップＳ９において、抽出部３は、検出時刻Ｔの所定時間Ｔ３後の位置ｐを、生成部１から対象軌跡の終点として取得し、検出位置Ｐから取得した位置ｐまでの軌跡を対象軌跡として抽出する。この際、抽出部３は、検出時刻Ｔの所定時間Ｔ３後の位置ｐの代わりに、現在時刻の位置ｐを取得してもよい。
【００７４】
ステップＳ１０において、判定部４は、抽出部３から対象軌跡を取得し、ジェスチャコマンドを判定する。ここで取得される対象軌跡は、始点の時刻から終点の時刻までの時間が所定時間Ｔ３以上、かつ、始点から終点までの距離が所定距離Ｌ未満である。したがって、判定部４は、タップコマンドと判定する。
【００７５】
このように判定することにより、指が操作面に接触後、一定時間の間の指の移動距離が小さいジェスチャをタップと認識し、タップコマンドを出力することができる。判定部４がタップコマンドを出力した後、処理はステップＳ１に戻る。
【００７６】
ステップＳ８において、所定時間Ｌ以上の場合、すなわち、｜ｐ−Ｐ｜≧Ｌの場合（ステップＳ８のＹＥＳ）、処理はステップＳ１１に進む。
【００７７】
ステップＳ１１において、抽出部３は、検出位置Ｐから所定距離Ｌ離間した位置ｐを、対象軌跡の終点として取得し、検出位置Ｐから取得した位置ｐまでの軌跡を対象軌跡として抽出する。この際、抽出部３は、検出位置Ｐから所定距離Ｌ離間した位置ｐの代わりに、現在位置ｐを取得してもよい。
【００７８】
ステップＳ１２において、判定部４は、抽出部３から対象軌跡を取得し、ジェスチャコマンドを判定する。ここで取得される対象軌跡は、始点の時刻から終点の時刻までの時間が所定時間Ｔ３未満、かつ、始点から終点までの距離が所定距離Ｌ以上である。したがって、判定部４は、フリックコマンドと判定する。
【００７９】
このように判定することにより、指が操作面に接触後、一定時間の間の指の移動距離が大きいジェスチャをフリックと認識し、フリックコマンドを出力することができる。判定部４がフリックコマンドを出力した後、処理はステップＳ１に戻る。
【００８０】
認識装置は、以上の処理を所定の時間間隔で繰り返すことにより、ユーザのジェスチャを認識し、ユーザが入力したジェスチャコマンドを判定する。
【００８１】
以上説明した通り、本実施形態に係る認識装置によれば、ユーザの指の軌跡を生成し、ユーザの指が操作面に接触したことを検出することにより、ジェスチャコマンドを判定する（ジェスチャを認識する）ことができる。すなわち、認識装置は、ユーザの指が操作面から離間したことを検出することなく、ジェスチャコマンドを判定することができる。このため、本実施形態に係る認識装置によれば、指の離間を誤検出することによるジェスチャコマンドの誤判定を防ぎ、ユーザのジェスチャコマンドを精度よく判定することができる。
【００８２】
本実施形態に係る認識装置は、ジェスチャによる画面操作が可能な装置（例えば、ＴＶ、コンピュータ、タブレット端末など）として用いることができる。図１１は、認識装置の表示装置１０３に表示される画面の一例を示す図である。図１１の画面には、オブジェクトＡ〜Ｆが表示されており、オブジェクトＥが選択されている。
【００８３】
本実施形態に係る認識装置によれば、ユーザは、指で操作面（例えば、手のひら）をタップすることにより、画面上で選択されたオブジェクトＥに対応するアプリケーションを起動したり、オブジェクトＥを拡大したりすることができる。
【００８４】
また、ユーザは、指で操作面をフリックすることにより、選択されたオブジェクトを変更することができる。例えば、図１１の場合、ユーザは、上方向にフリックすることにより、オブジェクトＢを選択することができる。また、フリックの距離や速度に応じて、画面をスクロール可能であってもよい。
【００８５】
表示装置１０３は、タッチパネルであってもよい。この場合、タッチパネルが故障した場合や、手袋や手がふさがっているという理由で、ユーザがタッチパネルを直接操作できない場合であっても、ユーザはコマンドを入力することができる。
【００８６】
なお、本実施形態に係る認識装置は、操作モード及び非操作モードの２つの動作状態を備えてもよい。操作モードとは、認識装置がジェスチャコマンドを出力可能な動作状態のことである。非操作モードとは、認識装置がジェスチャコマンドを出力不能な動作状態のことである。
【００８７】
認識装置が常にジェスチャコマンドを出力可能な場合、ユーザの指が壁や物にぶつかった際に接触が検出され、意図せぬジェスチャコマンドが出力される可能性がある。非操作モードを設けることにより、このようなジェスチャコマンドの誤入力を防ぐことができる。
【００８８】
操作モードと非操作モードとの間の動作状態の遷移は、釦の押下などにより、認識装置に特定の信号を送信することにより行われてもよいし、明示的なジェスチャ（例えば、所定距離以上のフリック）により、特定のジェスチャコマンドを入力することにより行われてもよい。
【００８９】
また、判定部４は、対象軌跡の始点の時刻から終点の時刻までの時間が所定時間Ｔ３未満、かつ、対象軌跡の始点から終点までの距離が所定距離Ｌ未満の場合、ジェスチャコマンドをダブルタップコマンドと判定してもよい。
【００９０】
このように判定することにより、指が操作面に接触してから、一定時間の間に指が繰り返し操作面に接触する、移動距離が小さいジェスチャをダブルタップと認識し、ダブルタップコマンドを出力することができる。
【００９１】
（第２実施形態）
第２実施形態に係る認識装置、方法、及びプログラムについて、図１２〜図１６を参照して説明する。本実施形態に係る認識装置は、ユーザがジェスチャにより入力した文字等を判定する。以下では、コマンドは、文字であるものとするが、上述の通り、図形であってもよい。
【００９２】
本実施形態に係る認識装置は、抽出部３及び判定部４による処理が、第１実施形態と異なる。他の機能構成及びハードウェア構成は、第１実施形態と同様である。以下では、図１２及び図１３を参照して、抽出部３及び判定部４について説明する。
【００９３】
抽出部３は、対象軌跡の始点として、検出部２から検出位置Ｐを取得する。抽出部３は、対象軌跡の始点を取得した後、始点に対応する終点を取得する。抽出部３は、生成部１が生成した軌跡から、始点から終点までの軌跡を、対象軌跡として抽出する。なお、始点に対応する終点とは、当該始点から始まる対象軌跡の終点のことである。本実施形態において、対象軌跡は、手書き入力により入力された文字のストロークとして扱われる。
【００９４】
抽出部３は、例えば、始点以降の軌跡の方向に基づいて、対象軌跡の終点を取得する。具体的には、抽出部３は、始点として取得した検出位置Ｐｉの次の検出位置Ｐｉ＋１の直前の軌跡の屈曲点Ｐｉ′を、始点に対応する終点として取得する。
【００９５】
軌跡の屈曲点とは、軌跡上において、軌跡の方向が所定角度α以上変化した位置のことである。所定角度αは、任意に設定可能であり、例えば、９０度である。
【００９６】
抽出部３は、屈曲点を取得するために、まず、軌跡上における前の位置ｐｉから次の位置ｐｉ＋１へのベクトルＲｉを算出する。次に、抽出部３は、前のベクトルＲｉと次のベクトルＲｉ＋１とのなす角θｉを算出する。そして、抽出部３は、角θｉと角度αとを比較し、θｉ≧αの場合、位置ｐｉ＋１を屈曲点として取得する。
【００９７】
例えば、生成部１により、図１２に示す軌跡が生成された場合、抽出部３は、位置ｐ１〜ｐ６からベクトルＲ１〜Ｒ５を算出し、角θ１〜θ４を算出する。θ４≧αの場合、抽出部３は、位置ｐ５を屈曲点として取得する。
【００９８】
本実施形態において、抽出部３は、上記のような屈曲点のうち、検出位置Ｐｉ＋１の直前の屈曲点Ｐｉ′を検出位置Ｐｉに対応する終点として取得する。理由は、以下の通りである。
【００９９】
一般に、ユーザが文字を手書き入力する場合、新たなストロークが、直前のストロークの延長線上から書き始められることは少ないと考えられる。このため、各ストロークの終点は、軌跡の屈曲点となる可能性が高い。
【０１００】
また、ユーザが新たなストロークを書く際には、直前のストロークの終点から、新たなストロークの始点まで、直線的に最短距離で指が移動するものと考えられる。このため、直前のストロークの終点から新たなストロークの始点までの間に、軌跡の屈曲点が形成される可能性は低いと考えられる。
【０１０１】
以上の観点から、各ストロークの終点は、次のストロークの始点の直前の屈曲点となることが予想される。このため、本実施形態では、抽出部３は、屈曲点Ｐｉ′を、検出位置Ｐｉに対応する終点として取得する。
【０１０２】
例えば、ユーザがアルファベットのＡを手書き入力した場合、上記の観点から、図１３に示すような軌跡が生成されることが予想される。図１３において、位置ｐ０，ｐ１，ｐ２は、ユーザの指が操作面に接触する検出位置である。位置ｐ０′，ｐ１′は、それぞれ位置ｐ１，ｐ２の直前の屈曲点である。
【０１０３】
図１３の軌跡から、検出位置Ｐｉから屈曲点Ｐｉ′までの軌跡を対象軌跡として抽出することにより、図１３において実線で示す対象軌跡Ｓ０，Ｓ１，Ｓ２を抽出することができる。図１３に示すように、対象軌跡Ｓ０，Ｓ１，Ｓ２は、ユーザが操作面上で実際に入力するストロークと対応する。図１３の破線部分は、ユーザの指が操作面から離れたところで移動した際に生成された軌跡（裏ストローク）と対応する。
【０１０４】
なお、ユーザが文字を手書き入力した場合、最後のストロークに対応する対象軌跡には、屈曲点が形成されないことがあり得る。例えば、図１３の対象軌跡Ｓ２は、終点として屈曲点を取得できない可能性がある。このような場合であっても、抽出部３は、以下の方法を用いることにより、対象軌跡の終点を取得することができる。
【０１０５】
抽出部３は、例えば、始点の時刻（検出時刻Ｔ）から所定時間Ｔ４後の指の位置ｐを、対象軌跡の終点として取得する。所定時間Ｔ４は、任意に設定可能である。
【０１０６】
また、抽出部３は、検出時刻Ｔの直後に停留が検出された際の指の位置ｐを終点として取得してもよい。停留とは、指の軌跡が所定範囲内に所定時間Ｔ５以上含まれることをいう。所定時間Ｔ５は、任意に設定可能である。
【０１０７】
さらに、抽出部３は、手書き入力の終了信号を取得し、終了信号の取得時、或いはその直前の指の位置ｐを終点として取得してもよい。終了信号は、ユーザが所定の釦を押下することにより入力されてもよいし、所定のジェスチャにより入力されてもよい。例えば、ユーザが所定の位置をタップしたり、所定方向や距離のフリックをしたりすることにより入力されるジェスチャコマンドを、終了信号として用いることができる。
【０１０８】
またさらに、抽出部３は、始点以降の軌跡上で、対象軌跡の文字らしさの尤度や、他の対象軌跡と組み合わせたときに文字らしさの尤度が最大となる位置ｐを、終点として取得してもよい。
【０１０９】
判定部４は、対象軌跡に基づいて、ユーザがジェスチャにより入力した文字を判定し、判定結果を出力する。判定部４は、例えば、一般的な手書き文字認識技術や手書き図形認識技術を用いて文字等を判定することができる。
【０１１０】
具体的には、判定部４は、まず、１つ又は複数の対象軌跡の組合せの文字らしさの尤度を算出する。次に、判定部４は、算出された尤度と、文字に設定された尤度の閾値と、を比較する。そして、判定部４は、算出された尤度が閾値を超えた場合、対象軌跡の組合せを、閾値に対応する文字と判定する。
【０１１１】
なお、判定部４は、特定の文字列を検出した場合、文字列に応じたコマンド（命令や文字等）を出力してもよい。ここでいう文字列には、特定の文字、図形、及びこれらの組合せが含まれる。また、判定部４は、手のひらを操作面として１文字ずつ手書き入力される（重ね書きされる）場合や、複数の文字が横に続けて入力される場合のように、入力方式に応じて異なるコマンドを出力してもよい。
【０１１２】
次に、本実施形態に係る認識装置の処理について、図１４及び図１５を参照して具体的に説明する。図１４は、本実施形態に係る認識装置の処理を示すフローチャートである。図１４において、ステップＳ１〜Ｓ６は、図１０と同様である。以下では、抽出部３は、屈曲点又は始点から所定時間Ｔ４後の指の位置ｐを終点として取得する場合について説明するが、上述の通り、終点の取得方法は、これに限られない。
【０１１３】
本実施形態では、生成部１が軌跡を生成した時点で、検出位置Ｐ及び検出時刻Ｔが設定済みの場合（ステップＳ４のＹＥＳ）、処理はステップＳ１３に進む。
【０１１４】
ステップＳ１３において、検出部２は、指が操作面に接触したか否か判定する。接触の検出方法は上述の通りである。検出部２が接触を検出しなかった場合（ステップＳ１３のＮＯ）、処理はステップＳ１４に進む。
【０１１５】
ステップＳ１４において、抽出部３は、検出部２から対象軌跡の始点として、検出位置Ｐ及び検出時刻Ｔを取得する。そして、抽出部３は、検出時刻Ｔから現在時刻ｔまでの時間（ｔ−Ｔ）が所定時間Ｔ４以上であるか判定する。所定時間Ｔ４未満である場合、すなわち、ｔ−Ｔ＜Ｔ４の場合（ステップＳ１４のＮＯ）、処理はステップＳ２に戻る。
【０１１６】
ステップＳ１３において、検出部２が接触を検出した場合（ステップＳ１３のＹＥＳ）、処理はステップＳ１５に進む。
【０１１７】
ステップＳ１５において、抽出部３は、ステップＳ１３において接触が検出された際の指の位置（次の検出位置）の直前の屈曲点Ｐ′を終点として取得する。屈曲点の取得方法は上述の通りである。
【０１１８】
ステップＳ１６において、抽出部３は、始点から終点までの軌跡、すなわち、検出位置Ｐから屈曲点Ｐ′までの軌跡を対象軌跡として抽出する。
【０１１９】
ステップＳ１７において、判定部４は、抽出部３から対象軌跡を取得し、文字を判定し、判定結果を出力する。より詳細には、判定部４は、抽出部３から取得した対象軌跡を記憶し、記憶した１つ又は複数の対象軌跡に基づいて、手書き入力された文字を判定する。
【０１２０】
その後、処理はステップＳ６に戻る。ステップＳ６において、検出部２は、生成部１から、ステップＳ１３で接触を検出した時刻ｔを検出時刻Ｔとして取得し（Ｔ＝ｔ）、時刻ｔにおける位置ｐを検出位置Ｐとして取得する（Ｐ＝ｐ）。これにより、検出位置Ｐ及び検出時刻Ｔが更新される。
【０１２１】
ステップＳ１７の後、検出位置Ｐ及び検出時刻Ｔを更新するのは、ステップＳ１３で接触が検出されたことから、ユーザによる入力が継続していることが予想されるためである。
【０１２２】
ステップＳ１４において、所定時間Ｔ４以上の場合、すなわち、ｔ−Ｔ≧Ｔ４の場合（ステップＳ１４のＹＥＳ）、処理はステップＳ１８に進む。
【０１２３】
ステップＳ１８において、抽出部３は、検出時刻Ｔの所定時間Ｔ４後の位置ｐを、生成部１から対象軌跡の終点として取得し、検出位置Ｐから取得した位置ｐまでの軌跡を対象軌跡として抽出する。この際、抽出部３は、検出時刻Ｔの所定時間Ｔ４後の位置ｐの代わりに、現在時刻の位置ｐを取得してもよい。
【０１２４】
ステップＳ１９において、抽出部３は、始点から終点までの軌跡、すなわち、検出位置Ｐから、検出時刻Ｔから所定時間Ｔ４後の位置ｐまでの軌跡を対象軌跡として抽出する。
【０１２５】
ステップＳ２０において、判定部４は、抽出部３から対象軌跡を取得し、文字を判定し、判定結果を出力する。より詳細には、判定部４は、抽出部３から取得した対象軌跡を記憶し、記憶した１つ又は複数の対象軌跡に基づいて、手書き入力された文字を判定する。
【０１２６】
その後、処理はステップＳ１に戻り、検出位置Ｐ及び検出時刻Ｔがリセットされる。ステップＳ２０の後、検出位置Ｐ及び検出時刻Ｔをリセットするのは、接触が検出された後、所定時間Ｔ４以上次の接触が検出されないことから、ユーザによる入力が終了したことが予想されるためである。
【０１２７】
認識装置は、以上の処理を所定の時間間隔で繰り返すことにより、ユーザのジェスチャを認識し、ユーザが入力した文字を判定する。
【０１２８】
ここで、ユーザがアルファベットのＡを入力する場合の認識装置の処理について、図１５を参照して具体的に説明する。以下では、ユーザが対象軌跡Ｓ２を入力した後、接触は検出されないものとする。
【０１２９】
まず、指が位置ｐ０で操作面に接触すると、接触が検出され（ステップＳ５のＹＥＳ）、位置ｐ０が検出位置Ｐに設定される（ステップＳ６）。その後、指が位置ｐ１で操作面に接触するまで、ステップＳ２〜Ｓ４，Ｓ１３，Ｓ１４の処理が繰り返される。これにより、図１５に示すように、位置ｐ０から位置ｐ１までの軌跡が生成される。
【０１３０】
指が位置ｐ１で操作面に接触すると、接触が検出され（ステップＳ１３のＹＥＳ）、位置ｐ１の直前の屈曲点ｐ０′が終点として取得され（ステップＳ１５）、対象軌跡Ｓ０が抽出される（ステップＳ１６）。
【０１３１】
判定部４は、対象軌跡Ｓ０に基づいて、文字を判定する（ステップＳ１７）。判定部４は、例えば、判定結果として、対象軌跡Ｓ０から予測される文字の候補や、判定不能という判定結果を出力する。
【０１３２】
その後、検出位置Ｐが位置ｐ１に更新される（ステップＳ６）。以降、指が位置ｐ２で操作面に接触するまで、ステップＳ２〜Ｓ４，Ｓ１３，Ｓ１４の処理が繰り返される。これにより、図１５に示すように、位置ｐ１から位置ｐ２までの軌跡が生成される。
【０１３３】
指が位置ｐ２で操作面に接触すると、接触が検出され（ステップＳ１３のＹＥＳ）、位置ｐ２の直前の屈曲点ｐ１′が終点として取得され（ステップＳ１５）、対象軌跡Ｓ１が抽出される（ステップＳ１６）。
【０１３４】
判定部４は、対象軌跡Ｓ０，Ｓ１に基づいて、文字を判定する（ステップＳ１７）。判定部４は、例えば、判定結果として、対象軌跡Ｓ０，Ｓ１から予測される文字の候補や、判定不能という判定結果を出力する。
【０１３５】
その後、検出位置Ｐが位置ｐ２に更新される（ステップＳ６）。以降、所定時間Ｔ４が経過するまで、ステップＳ２〜Ｓ４，Ｓ１３，Ｓ１４の処理が繰り返される。これにより、図１５に示すように、位置ｐ２以降の軌跡が生成される。
【０１３６】
位置ｐ２が検出位置Ｐに設定されてから所定時間Ｔ４が経過すると（ステップＳ１４のＹＥＳ）、検出時刻Ｔから所定時間Ｔ４後の位置ｐが終点として取得され（ステップＳ１８）、対象軌跡Ｓ２が抽出される（ステップＳ１９）。
【０１３７】
判定部４は、対象軌跡Ｓ０〜Ｓ２に基づいて文字を判定する（ステップＳ２０）。判定部４は、文字をＡと判定し、判定結果を出力する。
【０１３８】
その後、検出位置Ｐ及び検出時刻Ｔがリセットされる（ステップＳ１）。以降、新たな接触が検出されるまで、ステップＳ２〜Ｓ５の処理が繰り返される。
【０１３９】
なお、以上の説明において、判定部４は、対象軌跡が抽出されるたびに文字の判定を行ったが、判定部４が文字の判定を行うタイミングは任意に設定できる。判定部４は、例えば、対象軌跡が所定の数だけ抽出された場合に、文字を判定してもよい。
【０１４０】
以上説明した通り、本実施形態に係る認識装置によれば、ユーザの指の軌跡を生成し、ユーザの指が操作面に接触したことを検出することにより、ユーザが手書きで入力した文字を判定する（ジェスチャを認識する）ことができる。すなわち、認識装置は、ユーザの指が操作面から離間したことを検出することなく、文字を判定することができる。このため、本実施形態に係る認識装置によれば、指の離間を誤検出することによる文字のストロークの誤検出を防ぎ、文字を精度よく判定することができる。
【０１４１】
本実施形態に係る認識装置は、ジェスチャによる手書き文字入力が可能な装置（例えば、ＴＶやコンピュータ）として用いることができる。図１６は、認識装置の表示装置１０３に表示された画面の一例を示す図である。図１６の画面には、文字列ＡＢＣが入力されている。本実施形態に係る認識装置によれば、図１６に示すように、画面上のテキストボックスなどに、文字を手書き入力することができる。
【０１４２】
また、本実施形態において、表示装置１０３は、生成部１により生成された軌跡や、抽出部３により抽出された対象軌跡を表示してもよい。対象軌跡は、抽出される毎に表示されてもよいし、図１５のような抽出の過程を含めてリアルタイムで表示されてもよい。
【０１４３】
表示装置１０３に対象軌跡を表示する場合、ユーザのストローク（対象軌跡）及び裏ストロークは、図１５のように実線及び破線で、あるいは、異なる色でそれぞれ表示されるのが好ましい。
【０１４４】
（第３実施形態）
第３実施形態に係る認識装置、方法、及びプログラムについて、図１７〜図２０を参照して説明する。本実施形態に係る認識装置は、第２実施形態と同様に、ユーザがジェスチャにより入力した文字等を判定する。本実施形態に係る認識装置は、指の接触を検出するかわりに、指の離間を検出する点が第２実施形態と異なる。以下では、コマンドは、文字であるものとするが、上述の通り、図形であってもよい。
【０１４５】
まず、本実施形態に係る認識装置の機能構成について、図１７及び図１８を参照して説明する。図１７は、本実施形態に係る認識装置の機能構成を示すブロック図である。図１７に示すように、本実施形態に係る認識装置は、検出部２の代わりに離間検出部５を備える。また、抽出部３による抽出方法が第２実施形態と異なる。以下では、離間検出部５及び抽出部３について説明する。なお、他の機能構成及びハードウェア構成は、第１実施形態と同様である。
【０１４６】
離間検出部５（以下、「検出部５」という）は、操作面に接触していた指が操作面から離間したことを検出する。検出部５は、例えば、指やその周辺に装着された圧力センサ等のセンサデータに基づいて接触を検出する。具体的には、検出部５は、圧力センサ等の出力値を所定の閾値と比較したり、出力波形のパターンを離間時のパターンと比較したりすることにより、離間を検出する。この場合、認識装置は、圧力センサ等と通信してセンサデータを取得してもよいし、圧力センサ等を備えてもよい。
【０１４７】
また、検出部５は、動き情報に基づいて接触を検出してもよい。例えば、検出部５は、動き情報センサのセンサデータから、指が操作面から離れる方向に移動したことを検出することにより、離間を検出する。
【０１４８】
さらに、ユーザが楷書の文字を入力する場合、ストロークの終点で指が停留することが考えられるため、検出部５は、指の停留を検出することにより、離間を検出してもよい。
【０１４９】
検出部５は、離間を検出すると、離間が検出された時刻ｔ及び時刻ｔにおける指の位置ｐを、検出時刻Ｔ及び検出位置Ｐとして、生成部１から取得する。
【０１５０】
抽出部３は、対象軌跡の終点として、検出部５から検出位置Ｐを取得する。抽出部３は、対象軌跡の終点を取得した後、終点に対応する始点を取得する。抽出部３は、生成部１が生成した軌跡から、始点から終点までの軌跡を、対象軌跡として抽出する。なお、終点に対応する始点とは、終点で終わる対象軌跡の始点のことである。本実施形態において、対象軌跡は、手書き入力により入力された文字のストロークとして扱われる。
【０１５１】
抽出部３は、例えば、終点以前の軌跡の方向に基づいて、対象軌跡の始点を取得する。具体的には、抽出部３は、終点として取得した検出位置Ｐｉの前の検出位置Ｐｉ−１の直後の軌跡の屈曲点Ｐｉ′を、終点に対応する始点として取得する。理由は、以下の通りである。
【０１５２】
一般に、ユーザが文字を手書き入力する場合、新たなストロークが、直前のストロークの延長線上から書き始められることは少ないと考えられる。このため、各ストロークの始点は、軌跡の屈曲点となる可能性が高い。
【０１５３】
また、新たなストロークを書く際には、直前のストロークの終点から、新たなストロークの始点まで、直線的に指が移動するものと考えられる。このため、直前のストロークの終点から新たなストロークの始点までの間に、軌跡の屈曲点が形成される可能性は低い。
【０１５４】
以上の観点から、各ストロークの始点は、次のストロークの終点の直後の屈曲点であることが予想される。このため、本実施形態では、抽出部３は、抽出部３は、屈曲点Ｐｉ′を、検出位置Ｐｉに対応する始点として取得する。
【０１５５】
例えば、ユーザがアルファベットのＡを手書き入力した場合、上記の観点から、図１８に示すような軌跡が生成されることが予想される。図１８において、位置ｐ０，ｐ１，ｐ２は、ユーザの指が操作面から離間する検出位置である。位置ｐ１′，ｐ２′は、それぞれｐ０，ｐ１の直後の屈曲点である。
【０１５６】
なお、ユーザが文字を手書き入力した場合、最初のストロークに対応する対象軌跡には、屈曲点が形成されないことがあり得る。例えば、図１８の対象軌跡Ｓ０は、始点として屈曲点を取得できない可能性がある。このような場合であっても、抽出部３は、以下の方法を用いることにより、対象軌跡の始点を取得することができる。
【０１５７】
抽出部３は、例えば、終点の時刻（検出時刻Ｔ）から所定時間Ｔ６前の指の位置ｐを、対象軌跡の始点として取得する。所定時間Ｔ６は、任意に設定可能である。
【０１５８】
また、抽出部３は、検出時刻Ｔの直前に指の停留が検出された際の指の位置ｐを始点として取得してもよい。
【０１５９】
さらに、抽出部３は、手書き入力の開始信号を取得し、開始信号の取得時、或いはその直後の指の位置を始点として取得してもよい。開始信号は、ユーザが所定の釦を押下することで入力されてもよいし、所定のジェスチャにより入力されてもよい。例えば、ユーザが所定の位置をタップしたり、所定方向や距離のフリックをしたりすることにより入力されるジェスチャコマンドを、開始信号として用いることができる。
【０１６０】
またさらに、抽出部３は、終点以前の軌跡上で、対象軌跡の文字らしさの尤度や、他の対象軌跡と組み合わせたときに文字らしさの尤度が最大となる位置ｐを、始点終点として取得してもよい。
【０１６１】
次に、本実施形態に係る認識装置の処理について、図１９及び図２０を参照して具体的に説明する。図１９は、本実施形態に係る認識装置の処理を示すフローチャートである。図１９において、ステップＳ１〜Ｓ４は、図１０と同様である。以下では、抽出部３は、屈曲点又は検出時刻Ｔから所定時間Ｔ６前の指の位置ｐを始点として取得する場合について説明するが、上述の通り、始点の取得方法は、これに限られない。
【０１６２】
本実施形態では、生成部１が軌跡を生成した時点で、検出時刻Ｐ及び検出時刻Ｔが設定済みの場合（ステップＳ４のＹＥＳ）、処理はステップＳ２１に進む。
【０１６３】
ステップＳ２１において、検出部５は、指が操作面から離間したか否か判定する。離間の検出方法は上述の通りである。検出部５が離間を検出しなかった場合（ステップＳ２１のＮＯ）、処理はステップＳ２に戻る。
【０１６４】
ステップＳ２１において、検出部５が離間を検出した場合（ステップＳ２１のＹＥＳ）、処理はステップＳ２２に進む。
【０１６５】
ステップＳ２２において、検出部５は、生成部１から、離間を検出した時刻ｔを検出時刻Ｔとして取得し（Ｔ＝ｔ）、時刻ｔにおける位置ｐを検出位置Ｐとして取得する（Ｐ＝ｐ）。これにより、検出位置Ｐ及び検出時刻Ｔが設定される。
【０１６６】
ステップＳ２３において、抽出部３は、検出部５から、検出位置Ｐを対象軌跡の終点として取得する。そして、抽出部３は、生成部１から、検出時刻Ｔの所定時間Ｔ５前の指の位置ｐを、対象軌跡の始点として取得する。
【０１６７】
ステップＳ２４において、抽出部３は、生成部１が生成した軌跡から、始点から終点までの軌跡、すなわち、検出時刻Ｔの所定時間Ｔ５前の位置ｐから検出位置Ｐまでの軌跡を対象軌跡として抽出する。
【０１６８】
ステップＳ２５において、判定部４は、抽出部３から対象軌跡を取得し、文字を判定し、判定結果を出力する。より詳細には、判定部４は、抽出部３から取得した対象軌跡を記憶し、記憶した１つ又は複数の対象軌跡に基づいて、手書き入力された文字を判定する。その後、処理はステップＳ２に戻る。
【０１６９】
生成部１が軌跡を生成した時点で、検出位置Ｐ及び検出時刻Ｔが設定済みの場合（ステップＳ４のＹＥＳ）、処理はステップＳ２６に進む。
【０１７０】
ステップＳ２６において、検出部５は、指が操作面から離間したか否か判定する。離間の検出方法は上述の通りである。検出部５が離間を検出した場合（ステップＳ２６のＹＥＳ）、処理はステップＳ２７に進む。
【０１７１】
ステップＳ２７において、検出部５は、生成部１から、離間を検出した時刻ｔを検出時刻Ｔとして取得し（Ｔ＝ｔ）、時刻ｔにおける位置ｐを検出位置Ｐとして取得する（Ｐ＝ｐ）。これにより、検出位置Ｐ及び検出時刻Ｔが更新される。
【０１７２】
ステップＳ２８において、抽出部３は、検出部５から、検出位置Ｐを対象軌跡の終点として取得する。そして、抽出部３は、検出位置Ｐの前の検出位置の直後の屈曲点Ｐ′を、対象軌跡の始点として取得する。屈曲点Ｐ′の取得方法は上述の通りである。その後、処理はステップＳ２４に進む。
【０１７３】
ステップＳ２６において、検出部５が離間を検出しなかった場合（ステップＳ２１のＮＯ）、処理はステップＳ２９に進む。
【０１７４】
ステップＳ２９において、検出部５は、検出時刻Ｔから現在時刻ｔまでの時間（ｔ−Ｔ）が所定時間Ｔ６以上であるか判定する。所定時間Ｔ６は、ユーザによる入力が終了したか否か判定するための時間であり、任意に設定可能である。
【０１７５】
所定時間Ｔ６未満である場合、すなわち、ｔ−Ｔ＜Ｔ６の場合（ステップＳ２９のＮＯ）、処理はステップＳ２に戻る。これは、離間が検出されてからの経過時間が短いことから、ユーザによる入力が継続している可能性があるためである。
【０１７６】
所定時間Ｔ６以上である場合、すなわち、ｔ−Ｔ≧Ｔ６の場合（ステップＳ２９のＹＥＳ）、処理はステップＳ１に戻り、検出位置Ｐ及び検出時刻Ｔがリセットされる。これは、離間が検出されてからの経過時間が長いことから、ユーザによる入力が終了したことが予想されるためである。
【０１７７】
認識装置は、以上の処理を所定の時間間隔で繰り返すことにより、ユーザのジェスチャを認識し、ユーザが入力した文字を判定する。
【０１７８】
ここで、ユーザがアルファベットのＡを入力する場合の認識装置の処理について、図２０を参照して具体的に説明する。以下では、ユーザが対象軌跡Ｓ０を入力する前に、離間は検出されていないものとする。
【０１７９】
指が位置ｐ０で操作面から離間するまで、ステップＳ２〜Ｓ４，Ｓ２１の処理が繰り返される。これにより、位置ｐ０までの軌跡が生成される。
【０１８０】
指が位置ｐ０で操作面から離間すると、離間が検出され（ステップＳ２１のＹＥＳ）、位置ｐ０が検出位置Ｐに設定される（ステップＳ２２）。その後、検出時刻Ｔの所定時間Ｔ６前の位置ｐが始点として取得され（ステップＳ２３）、対象軌跡Ｓ０が抽出される（ステップＳ２４）。
【０１８１】
判定部４は、対象軌跡Ｓ０に基づいて、文字を判定する（ステップＳ２５）。判定部４は、例えば、判定結果として、対象軌跡Ｓ０から予測される文字の候補や、判定不能という判定結果を出力する。
【０１８２】
以降、指が位置ｐ１で操作面から離間するまで、ステップＳ２〜Ｓ４，Ｓ２６，Ｓ２９の処理が繰り返される。
【０１８３】
指が位置ｐ１で操作面から離間すると、離間が検出され（ステップＳ２６のＹＥＳ）、位置ｐ１が検出位置Ｐに設定される（ステップＳ２７）。その後、前回の検出位置である位置ｐ０の直後の屈曲点ｐ１′が始点として取得され（ステップＳ２８）、対象軌跡Ｓ１が抽出される（ステップＳ２４）。
【０１８４】
判定部４は、対象軌跡Ｓ０，Ｓ１に基づいて、文字を判定する（ステップＳ２５）。判定部４は、例えば、判定結果として、対象軌跡Ｓ０，Ｓ１から予測される文字の候補や、判定不能という判定結果を出力する。
【０１８５】
以降、指が位置ｐ２で操作面から離間するまで、ステップＳ２〜Ｓ４，Ｓ２６，Ｓ２９の処理が繰り返される。
【０１８６】
指が位置ｐ２で操作面から離間すると、離間が検出され（ステップＳ２６のＹＥＳ）、位置ｐ２が検出位置Ｐに設定される（ステップＳ２７）。その後、前回の検出位置である位置ｐ１の直後の屈曲点ｐ２′が始点として取得され（ステップＳ２８）、対象軌跡Ｓ２が抽出される（ステップＳ２４）。
【０１８７】
判定部４は、対象軌跡Ｓ０〜Ｓ２に基づいて、文字を判定する（ステップＳ２５）。判定部４は、文字をＡと判定し、判定結果を出力する。
【０１８８】
その後、検出時刻Ｔから所定時間Ｔ６が経過するまでステップＳ２〜Ｓ４，Ｓ２６、Ｓ２９の処理が繰り返される。検出時刻Ｔから所定時間Ｔ６が経過すると（ステップＳ２９のＹＥＳ）、処理はステップＳ１に戻り、検出位置Ｐ及び検出時刻Ｔがリセットされる。
【０１８９】
以上説明した通り、本実施形態に係る認識装置によれば、ユーザの指の軌跡を生成し、ユーザの指が操作面から離間したことを検出することにより、ユーザが手書きで入力した文字を判定する（ジェスチャを認識する）ことができる。すなわち、認識装置は、ユーザの指が操作面に接触したことを検出することなく、文字を判定することができる。このため、本実施形態に係る認識装置によれば、指の接触を誤検出することによる文字のストロークの誤検出を防ぎ、文字を精度よく判定することができる。
【０１９０】
本実施形態に係る認識装置は、第２実施形態と同様に、ジェスチャによる手書き文字入力が可能な装置（例えば、ＴＶやコンピュータ）として用いることができる。
【０１９１】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１９２】
１：軌跡生成部、２：接触検出部、３：対象軌跡抽出部、４：コマンド判定部、５：離間検出部、１００：コンピュータ、１０１：ＣＰＵ、１０２：入力装置、１０３：表示装置、１０４：通信装置、１０５：記憶装置
【図１】
2016095795.tif 000003
【図２】
2016095795.tif 000004
【図３】
2016095795.tif 000005
【図４】
2016095795.tif 000006
【図５】
2016095795.tif 000007
【図６】
2016095795.tif 000008
【図７】
2016095795.tif 000009
【図９】
2016095795.tif 000010
【図１０】
2016095795.tif 000011
【図１１】
2016095795.tif 000012
【図１２】
2016095795.tif 000013
【図１３】
2016095795.tif 000014
【図１４】
2016095795.tif 000015
【図１５】
2016095795.tif 000016
【図１６】
2016095795.tif 000017
【図１７】
2016095795.tif 000018
【図１８】
2016095795.tif 000019
【図１９】
2016095795.tif 000020
【図２０】
2016095795.tif 000021
【図８】
2016095795.tif 000022