JP2014006594A - 文字入力プログラム、情報処理装置および文字入力方法 - Google Patents

文字入力プログラム、情報処理装置および文字入力方法 Download PDF

Info

Publication number
JP2014006594A
JP2014006594A JP2012140161A JP2012140161A JP2014006594A JP 2014006594 A JP2014006594 A JP 2014006594A JP 2012140161 A JP2012140161 A JP 2012140161A JP 2012140161 A JP2012140161 A JP 2012140161A JP 2014006594 A JP2014006594 A JP 2014006594A
Authority
JP
Japan
Prior art keywords
image
character
finger
character group
detected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012140161A
Other languages
English (en)
Other versions
JP5962249B2 (ja
Inventor
Taichi Murase
太一 村瀬
Nobuyuki Hara
伸之 原
Atsunori Mogi
厚憲 茂木
Takahiro Matsuda
高弘 松田
Katsuto Fujimoto
克仁 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012140161A priority Critical patent/JP5962249B2/ja
Priority to US13/903,280 priority patent/US20130342441A1/en
Priority to EP13170394.4A priority patent/EP2677397A3/en
Publication of JP2014006594A publication Critical patent/JP2014006594A/ja
Application granted granted Critical
Publication of JP5962249B2 publication Critical patent/JP5962249B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Abstract

【課題】カメラを利用するソフトウェアキーボードを、1台のカメラで実現することを課題とする。
【解決手段】コンピュータに、撮像装置から第一の画像を取得し、前記第一の画像から対象物を検出し、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、前記撮像装置から前記第一の画像とは取得時間が異なる第二の画像を取得し、前記第二の画像から対象物を検出し、前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行させることを特徴とする文字入力プログラム。
【選択図】図9

Description

本明細書に開示する技術は、文字入力を制御する技術に関する。
近年、スマートフォンやスレートPC(Personal Computer)/iPad(登録商標)をはじめとしたタブレット型デバイスなど、物理的なキーボードを有さないキーボードレスデバイスの市場が急拡大している。キーボードレスデバイスにおける文字入力は、文字入力インターフェースとして、ソフトウェアキーボードが利用されることが多い。ソフトウェアキーボードには、タッチパネルを利用するタイプや、カメラやレーザー等を利用するタイプ等がある。
タッチパネルを利用するソフトウェアキーボードは、タッチパネル式のディスプレイにキーボードイメージを表示する。そして、当該ソフトウェアキーボードは、タッチパネルに対するユーザの接触位置を検出することで、文字入力を実現する。
また、カメラを利用するタイプのソフトウェアキーボードとして、操作者の指元を上方から撮影するカメラと、奥側から撮影するカメラとを用いる仮想キーボードが知られている。(例えば、特許文献1参照)
このような仮想キーボードは、2台のカメラを用いて、平面等に配置された操作者の指先の画像を撮影する。そして、仮想キーボードは、XYZの各軸で表される3次元座標軸のZ方向における操作者の指先の位置と基準位置とを比較し、さらにXY平面における仮想キーに関する位置情報を参照する事で、操作者が操作意図した仮想キーを検出する。
特開2003−288156号公報
ここで、タッチパネルタイプのソフトウェアキーボードは、ディスプレイに、ユーザが操作可能なサイズで、キーボードイメージを表示させる必要がある。したがって、ディスプレイの表示面積に対して、キーボードイメージの表示面積をある程度確保する必要があり、残るディスプレイの表示面積に割り当てられるアプリケーションの表示面積は必然的に小さくなる。
一方、カメラを利用するタイプのソフトウェアキーボードは、デバイスと独立した場所に仮想的なキーボードを設定することができる。例えば、ユーザは、机や床などに、キーボードがあると仮定して、文字入力操作を行う。
つまり、カメラを利用するタイプのソフトウェアキーボードは、タッチパネル式のソフトウェアキーボードとは異なり、ディスプレイに、ユーザが操作可能なサイズでキーボードイメージを表示する必要はない。または、ユーザがキーボードのレイアウト等を把握しているような場合であれば、ディスプレイにキーボードイメージを表示する必要もない。したがって、カメラを利用するタイプのソフトウェアキーボードは、アプリケーションの表示を妨げることなく、文字入力を可能とする。
ここで、従来技術に開示された仮想キーボードは、特定の条件を満たす2台のカメラを必要とする。特定の撮影条件を満たす2台のカメラを利用することで、手を上から撮影するカメラで、2次元(例えばXY面)であらわされるキーボード面を認識し、手を正面から撮影するカメラで、3次元方向(例えばZ軸)のキーの押下を検出する必要がある為である。
しかし、ソフトウェアキーボードの機能を提供するデバイスに複数台のカメラを搭載することは、コスト面、薄型化、小型化の面で問題がある。さらに、薄型化・小型化が求められるタブレット型PCで、従来技術に記載した仮想キーボードの技術を実現する場合には、所定の条件を満たす様に2台のカメラをタブレットPCに搭載することは、好ましくない。
そこで、本実施例に開示の技術は、カメラを利用するソフトウェアキーボードを、1台のカメラで実現することを目的とする。
上記課題を解決する為に、本実施例に開示の文字入力プログラムは、コンピュータに、撮像装置から第一の画像を取得し、前記第一の画像から対象物を検出し、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、前記撮像装置から前記第一の画像とは取得時間が異なる第二の画像を取得し、前記第二の画像から対象物を検出し、前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行させる。
本発明の一観点によれば、カメラを利用するソフトウェアキーボードを、1台のカメラで実現することが可能になる。
図1は、情報処理装置の利用形態の一例を示す図である。 図2は、情報処理装置の機能ブロック図である。 図3は、設定情報のデータ例を示す図である。 図4は、QWERTY配列と文字群との関係を説明する為の図である。 図5は、指位置と割り当てられる文字群の関係とを説明する為のイメージ図である。 図6は、対応テーブルのデータ構成例を示す図である。 図7AおよびBは、ディスプレイに表示される画面イメージを説明する為の図である。 図8A乃至Cは、文字群からひとつの文字を決定する処理を説明する為のイメージ図である。 図9は、実施例1に係る情報処理装置により実行される文字入力処理のフローチャートである。 図10は、日本語ひらがな入力における、文字の決定する処理を説明するための図である。 図11は、実施例2に係る情報処理装置により実行される文字入力処理のフローチャートである。 図12AおよびBは、指がスライドされた場合と、押下操作を行う指が変更された場合とにおける、手の重心の変化を説明するための図である。 図13AおよびBは、手領域の重心の位置変化と、指位置の変化の関係を検証した実験結果である。 図14は、実施例3に係る情報処理装置により実行される文字入力処理のフローチャートである。 図15は、実施例3におけるユーザの操作と、入力文字の確定との関係を説明する為の図である。 図16は、他の画面表示を示すイメージ図である。 図17は情報処理装置のハードウェア構成の一例を示す図である。
以下詳細な本発明の実施例に関して説明する。なお、以下の各実施例は、処理の内容を矛盾させない範囲で適宜組み合わせることが可能である。以下、図面に基づいて各実施例について説明する。
まず、実施例における情報処理装置の利用形態について説明する。図1は、情報処理装置10の利用形態の一例を示す図である。
ここで、図1の例では、情報処理装置の一例であるタブレット型デバイスに予め搭載されたカメラ11を用いる実施例を示している。これに限らず、外付けのカメラから、情報処理装置が、画像を取得することでも、ソフトウェアキーボードは実現可能である。
図1に示す例では、例えば、情報処理装置10はカメラ11を有する。なお、カメラ11は、図1に示された位置に限らず、他の位置に設置されていても良い。
情報処理装置10は、コンピュータであり、例えば、スマートフォンや、スレートPC、タブレット型デバイスなどである。情報処理装置10は、物理的キーボードを有する必要はない。
図1の例では、情報処理装置10は、カメラ11を下部にし、平面21に対して立てたられた状態となる。このとき、ユーザは、カメラ11が撮影できる範囲内に手20を置き、キーボードを操作する動作を行う。例えば、ユーザは、平面21上のキーボードがあると仮定して、手20を用いてキーボードを操作する動作を行う。
カメラ11は、所定のフレーム間隔で、ユーザの手20の動きを撮影する。情報処理装置10は、カメラ11の撮影画像における手の指先の位置に応じて、文字の入力を行う。
カメラ11は、ユーザと正対する位置から撮影を行い、実空間における2つの軸方向を認識可能な画像を撮影する。例えば、カメラ11は、撮像画像のX軸が、実空間におけるX軸22に相当し、撮像画像のY軸が、実空間におけるY軸23に相当する画像を撮像する。なお、撮像画像のX軸およびY軸が、実空間における他の軸に相当しても良い。さらに、カメラ11とユーザが正対する関係になくとも、カメラ11は、ユーザに対して横90度方向に配置されても良い。
ここでは、ユーザは、手20をY軸23方向に動かす事で、物理キーボードにおける押下操作を行う。また、ユーザは、手20を、X軸22方向に動作する事で、物理キーボードにおける入力文字の選択操作を行う。ユーザによるX軸22方向およびY軸23方向に対する動作と、文字入力との関係については、後述する。
(実施例1)
図2は、情報処理装置10の機能ブロック図である。情報処理装置10は、取得部31、設定部32、記憶部33、特定部34、表示制御部35、決定部36を有する。ここで、情報処理装置10は、文字入力処理とともに、初期設定処理を実行する。初期設定処理は、文字入力処理に先駆けて行われる処理であって、続く文字入力処理に必要な設定を行う処理である。
取得部31は、文字入力処理および初期設定処理において、所定のフレーム間隔で撮影された画像を、カメラ11から取得する。そして、初期設定処理の場合は、取得部31は、画像を設定部32に出力する。また、文字入力処理の場合は、取得部31は、画像を特定部34へ出力する。なお、取得部31は、画像の生データを出力する以外に、サムネイル画像を生成し、サムネイル画像を出力するとしても良い。
設定部32は、初期設定処理の場合、取得部31により入力される画像から対象物の領域を抽出する。本実施例においては、対象物は、ユーザの手または指である。他にも、指示棒やペン等であってもよい。
例えば、設定部32は、画像から、左右各々の手領域を抽出する。そして、設定部32は、抽出した手領域に基づいて、押下操作を検出する為の設定情報を生成する。設定情報は、ユーザのホームポジションに関する情報である。
事前に、まず、情報処理装置10は、ユーザに対して、ホームポジションを再現させ、カメラ11は押下操作前の手の状態を撮影する。そして、設定部32は、画像から手領域を抽出する。
ここで、設定部32は、取得した画像のRGB値を、色相、彩度、明度を表現するHSV値に変換する。そして、特定部34は、HSV値に基づいて、肌色を示す領域を画像から抽出する。なお、肌色を示す領域は、HSV値が所定の範囲となる画素の集合である。以上の処理によって、設定部32は、手領域を抽出することができる。
さらに、設定部32は、手領域から手のひら領域を除去し、指領域を抽出してもよい。具体的には、設定部32は、手領域の内、明度が閾値以上となる領域を指領域として抽出する。つまり、カメラ11に対して、手のひらよりも手前に存在する指領域の明度と、手のひら領域の明度との差を利用することで、手領域から手のひら領域を取り除くことができる。手のひら領域を取り除く事で、指領域が抽出される。
そして、設定部32は、画像におけるホームポジションにおける手領域の高さまたは各指領域の高さに基づいて、設定情報を生成する。手領域の高さとしては、領域を構成する画素のY座標のうち、もっとも小さい値を採用することができる。一方、各指領域についての高さとしては、各領域を構成する画素のY座標のうち、もっとも小さい値を採用することができる。また、各指領域の高さとしては、例えば各指領域の重心のY座標を採用してもよい。
なお、画像における基準画素を、X座標およびY座標ともに0とし、基準画素からの距離がX座標Y座標で表される。基準画素は、例えば、画像の左下の画素とすることができる。
設定部32は、ホームポジションにおける手領域の高さまたは各指領域の高さに、所定の値を加算して、設定情報を生成する。設定部32は、設定情報を記憶部33に記憶する。後述の文字入力処理において、設定情報は、ユーザによる押下操作が行われたか否かを判定する為に用いられる。
また、設定部32は、左右の手各々について、第一の設定情報および第二の設定情報を生成してもよい。第一の設定情報は、左手の指領域に係る情報である。第二の設定情報は、右手の指領域に係る情報である。例えば、左手の指領域の高さのうち最小の高さに、所定の値を加算した値を、第一の設定情報とする。また、右手の指領域の高さのうち最小の高さに、所定の値を加算した値を第二の設定情報とする。
初期設定処理および文字入力処理においては、画像から10本の全ての指領域が必ずしも撮像されるとは限らない為、各手の指に適用可能なように、第一の設定情報および第二の設定情報を生成することも有効である。以下では、各指領域の高さの内、最小の高さ(Y座標)を、設定情報として利用するとして説明を行う。
図3は、設定情報のデータ例を示す図である。設定情報331および332は、記憶部33に格納される。図3の例では、1600×1200程度の画素数の画像を対象とする場合を例として示す。図3の例では、第一の設定情報は、「300」である。第一の設定情報は、ホームポジション時の左手の各指の座標に基づいて、算出される。
例えば、ホームポジション時に、左手の各指のうち、もっとも下方に存在する指の位置は「Y=100」であったとする。このとき、設定部32は、例えば、所定の値「200」を加算して、第一の設定値を「300」とする。つまり、取得した画像における指領域が第一の設定情報「Y=300」よりも一定以上下方にある場合には、押下操作がなされていると判定する。また、図3の例では、第二の設定情報は、「320」である。
図2における記憶部33は、図3に示す設定情報や、対応情報を記憶する。なお、対応情報の一例は、図6に示す対応テーブル333である。対応情報については、後述する。
特定部34は、文字入力処理の場合、取得部31により入力される画像から手領域を抽出する。そして、特定部34は、手領域に基づいて、ユーザによる押下操作を検出し、押下操作がなされた位置に基づいて、文字群を特定する。文字群は、入力対象の文字のうち、複数の文字を含むグループである。詳細については、後述する。
特定部34は、画像から、左右各々の手領域を抽出する。さらに、特定部34は、撮像画像の手領域から手のひらを削除する処理を行うことで、指領域を取得する。手領域および指領域の抽出処理は、設定部32の処理と同様である。以下では、特定部34は、指領域を用いて処理を行うとして説明する。
特定部32は、各指領域を構成する画素のうち、もっとも小さいY座標の値を有する画素を特定する。そして、特定された画素のX座標およびY座標を取得する。なお、各指領域の重心となる画素のX座標およびY座標を算出しても良い。
そして、特定部32は、各指領域について、取得したY座標が、設定情報よりも小さいか否かを判定する。特定部32は、取得したY座標が、設定情報よりも小さい場合に、ユーザによる押下操作がなされたと判定する。なお、特定部32は、Y座標と設定情報との差分を算出し、差分が閾値以下である場合に、ユーザによる押下操作がなされたと判定してもよい。
そして、特定部32は、押下操作がなされたと判定した場合に、先に取得した指位置(X座標およびY座標)を記憶する。さらに、特定部32は、指位置のX座標に基づいて、ユーザにより指定された文字群を特定する。
文字群は、複数の文字を含むグループである。例えば、日本語のひらがな入力においては、各行に含まれる文字を一つの文字群とする。つまり、日本語のひらがな入力を行う情報処理装置10は、文字「あいうえお」を含む文字群、文字「かきくけこ」を含む文字群等、合計10個の文字群を取り扱う。
また、図4は、QWERTY配列と文字群との関係を説明する為の図である。QWERTY配列型のキーボードを想定した文字入力においては、図4のように、QWERTY配列における方向24に配列する文字を、ひとつの文字群とする。QWERTY配列型のキーボードを想定した文字入力を行う情報処理装置10は、例えば、「QAZ」を含む文字群、「WSX」を含む文字群等、合計10個の文字群を取り扱う。
本実施例においては、画像のX軸方向は、方向24と直行する方向に相当する、つまり、A,S,D,F等の配列方向が、画像のX軸方向に相当する。また、画像のY軸方向は、押下方向であるので、紙面手前から裏側への方向に相当する。したがって、画像から方向24の位置を判別する代わりに、後述する処理によって、方向24に配列する文字群のうち、ひとつの文字を特定する。
図5は、指位置と割り当てられる文字群の関係とを説明する為のイメージ図である。なお、図5は、画像202のうち、左手領域200および右手領域201に相当する部分を詳細に示している。図5の例では、画像内のX座標系で、左手領域200はX1からX2まで、右手領域201はX3からX4までとする。なお、図5では、左手領域および右手領域を矩形で示しているが、手の形状そのものの領域であってもよい。
例えば、特定部34は、各手領域を、X軸方向に、文字群の群数に応じて、分割する。図5では、左手領域200を、小領域40乃至44に分割する。また、右手領域201を、小領域45乃至49に分割する。これは、文字群の群数が10である場合に、左右各々の手領域を5つに分割することで、各々の小領域に一つの文字群が割当て可能となる為である。
具体的には、特定部34は、左手領域200を形成するX1からX2までを、5等分する。なお、各領域の大きさが異なってもよい。例えば、特定部34は、Xa以上Xb未満の領域を、小領域40となる。 手領域を小領域に分割する場合に、特定部34は、手のひら領域を手領域から削除する前の情報を利用してもよいし、指領域全体を新たに手領域として利用しても良い。なお、図5において、斜線で示した領域が手のひら領域である。
続いて、特定部32は、予め設定されたルールに基づいて、各小領域40に領域IDを付与する。ルールは、例えば、「左右いずれの手領域に含まれるかを識別し、左右手領域のうち、より左側に位置する小領域から順に小さい番号を付す」などである。
図5の例では、小領域40は、左手領域200に含まれる小領域であって、もっとも左側に位置する為、「L−1」という領域IDが付与される。さらに、特定部32は、小領域41に「L−2」、小領域42に「L−3」、小領域43に「L−4」、小領域44に「L−5」、小領域45に「R−1」、小領域46に「R−2」、小領域47に「R−3」、小領域48に「R−4」、小領域49に「R−5」という領域IDを付与する。
そして、特定部32は、押下操作を検出した場合の指位置のX座標が、いずれの小領域に含まれるかを特定し、特定された小領域の領域IDを取得する。そして、特定部32は、対応テーブルを参照し、取得した領域IDに対応する文字群を特定する。
図6は、対応テーブル333のデータ構成例を示す図である。なお、対応テーブル333は、記憶部33に記憶される。対応テーブルは、対応情報の一例である。対応情報は、各小領域といずれかの文字群とを対応付ける為の情報である。
対応テーブル333は、領域IDと文字群IDと複数の文字情報とを対応付けて記憶する。領域IDは、小領域を識別する情報である。文字群IDは、文字群を識別する情報である。複数の文字情報は、文字IDに対応する文字群に含まれる文字の情報である。
例えば、図6はQWERTY配列型のキーボードを想定した文字入力における対応テーブル333である。図6は、領域ID「L−1」とされる領域に対して、文字群ID「G−1」が割り当てられていることを示す。さらに文字群ID「G−1」は文字情報1「Q」、文字情報2「A」、文字情報3「Z」を含むことを示す。
なお、複数種類の入力方式を切り替え可能とする場合は、記憶部33は、複数種類の対応テーブル333を記憶する。例えば、QWERTY配列と、日本語ひらがな入力等、種々の方式について、各々対応テーブル333が予め作成される。
例えば、特定部34が、押下操作を行った指の指位置のX座標が、領域41に含まれると判断した場合に、領域41に付与された小領域ID「L−2」を取得する。そして、特定部34は、対応テーブル333から、小領域ID「L−2」に対応する文字群ID「G−2」を取得する。なお、文字群ID「G−2」には、文字情報「W」「S」「X」が含まれる事となる。
図2の説明に戻り、表示制御部35は、ディスプレイの表示を制御する。例えば、表示制御部35は、キーボードイメージを生成するとともに、ディスプレイにキーボードイメージを表示させてもよい。ただし、キーボードイメージは、ユーザが視認可能な大きさであればよく、タッチパネル式のソフトウェアキーボードのように、ユーザが選択可能な程度の大きさである必要は必ずしもない。ユーザがQWERTY配列等を完全に把握していない場合等に、ユーザは、キーボードイメージを参照することができる。
また、押下操作が検出された場合に、表示制御部35は、特定部34により特定された文字群に含まれる複数の文字を、ディスプレイに表示させる。
図7は、ディスプレイに表示される画面イメージを説明する為の図である。図7は、QWERTY配列のキーボードを利用した文字入力における画面イメージ例である。
図7Aおよび図7Bにおいては、紙面の手前から奥に向かう方向が、実空間における押下方向に対応する。なお、カメラ11が取得した画像においては、紙面の手前から奥に向かう方向が、Y軸方向である。そして、紙面の左から右に向かう方向(A,S,D,F,G,…配列方向)が、カメラ11が取得した画像におけるX軸方向に対応する。
図7Aは、押下操作前にディスプレイに表示されるキーボードイメージである。ユーザは、実空間において、図1におけるX軸の特定の位置を、Y軸沿って指を動作させることで押下する。例えば、押下操作時の撮像画像に基づいて、指位置のX座標に対応する「UJM」を含む文字群が特定されたとする。
図7Bは、押下操作後にディスプレイに表示されるキーボードイメージである。例えば、特定部34により文字群が特定された場合に、表示制御部35は、図7Aに代えて図7Bを表示する。図7Bの例では、特定された文字群に含まれる各文字情報が、X軸方向に展開されて表示される。例えば、「U」「J」「M」がX軸方向に配列されたキーボードイメージが表示される。
例えば表示制御部35は、対応テーブル333を参照し、文字情報1から文字情報3を、左から右へ表示するキーボードイメージを生成する。つまり、表示制御部25は、対応テーブル333における文字情報1「U」をもっとも左に、文字情報2「J」を文字情報1「U」よりも右側に、文字情報3「M」を文字情報2「J」よりも右側に表示する。なお、左に表示される文字を左文字、中央に表示される文字を中央文字、右に表示される文字を右文字と称する。複数の文字情報各々がいずれの位置に表示されるかは、予め設定される。
次に、図2における決定部36は、特定された文字群の内の一つの文字を入力文字として決定する。例えば、決定部36は、押下操作後に撮影された画像における指領域の位置に基づいて、文字群の中から一つの文字を決定する。また、決定部36は、押下操作を検出した時点の画像における指領域の位置と、押下操作後の画像における指領域の位置との変化量、および変化の方向に基づいて、一の文字を決定する。
図8は、文字群からひとつの文字を決定する処理を説明する為のイメージ図である。なお、QWERTY配列側のキーボードの場合を例に説明する。また、キーボードイメージは説明のために描画されたものである。
図8A乃至図8Cにおいては、時刻T=t1の時点で、押下操作が検出されるとともに、文字群「UJM」が特定されたとする。そして、T=t1よりも後の時刻であるT=t2に撮影された画像に基づいて、文字群「UJM」の内の一つの文字が決定される。
図8Aは、T=t1における指位置に対して、T=t2では、X軸の正方向への移動が検出された例である。ユーザは、押下操作後に、指を右へスライドさせる動作を行ったこととなる。
決定部36は、T=t2の指位置のX座標に基づいて、文字群「UJM」より「M」を決定する。また、決定部36は、T=t1における指位置X座標と、T=t2における指位置X座標との差が、X軸の正方向に一定以上であれば、右方向へ指がスライドされたと認識してもよい。
ここで、T=t2よりも後の時刻であるT=t3において、指がY軸方向に所定距離以上移動したことを検知した場合に、決定部36は、先に決定した文字「M」を、入力文字として確定する。なお、指が設定情報以上の高さになった場合に、先に決定した文字「M」を入力文字として確定してもよい。
図8Bは、T=t1における指位置に対して、T=t2では、X軸の負方向への移動が検出された例である。例えば、決定部36は、T=t2の指位置のX座標に基づいて、文字群「UJM」より「U」を決定する。また、例えば、決定部36は、T=t1における指位置のX座標と、T=t2における指位置のX座標との差が、X軸の負方向に一定以上であれば、左方向へ指がスライドされたと認識してもよい。
ここで、T=t2よりも後の時刻であるT=t3において、指がY軸方向に所定距離以上移動したことを検知した場合に、決定部36は、先に決定した文字「U」を、入力文字として確定する。
図8Cは、T=t1における指位置に対して、T=t2では、X軸方向への移動がない、または小さい場合の例である。例えば、決定部36は、T=t2の指位置のX座標に基づいて、文字群「UJM」より「J」を決定する。また、例えば、決定部36は、T=t1における指位置のX座標と、T=t2における指位置のX座標との差が、閾値未満である為、スライドがないと認識してもよい。
ここで、T=t2よりも後の時刻であるT=t3において、指がY軸方向に所定距離以上移動したことを検知した場合に、決定部36は、先に決定した文字「J」を、入力文字として確定する。
なお、表示制御部36は、画像における指領域の位置の変化に応じて、決定された文字をユーザが識別可能に表示してもよい。例えば、表示制御部36は、図8のように、決定された文字のキーイメージを、他の文字のキーイメージとは異なる態様で表示する。
図9は、実施例1に係る情報処理装置により実行される文字入力処理のフローチャートである。取得部31は、カメラ11より画像を取得する(OP.1)。なお、図9では、取得部31が画像を取得する度に一連の処理を行うこととして説明を行うが、複数枚の画像を取得する度に、一連の処理を一度行うとしても良い。
特定部34は、画像から手領域を抽出する(OP.2)。そして、特定部34は、手領域から、さらに指領域を抽出する(OP.3)。そして、特定部34は、各指領域の指位置(X座標およびY座標)を算出する。
特定部34は、設定情報および各指領域の指位置に基づいて、ユーザによる押下操作を検出する(OP.4)。特定部34は、各指領域の指位置のY座標が、設定情報以下になった場合に、押下操作がなされたと判定する。
押下操作が検出された場合には(OP.4Yes)、特定部34は、押下操作を行った指の指位置を、記憶部33に記憶する(OP.5)。特定部34は、記憶部33を参照し、過去の指位置が記憶されているか否かを判定する(OP.6)。処理対象の画像が押下操作をはじめに検出した画像である場合は、過去の指位置は記憶されていない。一方、処理対象の画像が、はじめに押下操作を検出した画像ではない場合には、過去の指位置が記憶されている。
過去の指位置が記憶されていない場合には(OP.6No)、特定部34は、指位置のX座標に基づいて、文字群を特定する(OP.7)。
つまり、特定部34は、手領域を複数の小領域に分割するとともに、各小領域に領域IDを付与する。そして、指位置が含まれる小領域の領域IDから、対応テーブルを参照し、当該小領域に割り当てられる文字群IDを特定する。
本実施例においては、文字群を特定する処理において、手領域を複数の小領域に分割し、各小領域に領域IDを付与するとする。特定部34は、入力操作が進むにつれて、画像における手領域の範囲がずれても、文字群を特定することができる。一方、例えば、初期設定処理時に、設定部32は、各小領域の範囲を決定してもよい。そして、設定部32は、対応テーブルの各小領域の領域IDに、範囲の情報を対応付けて記憶してもよい。特定部34による文字群の特定処理の負荷が軽減される。
また、過去の指位置が記憶されている場合(OP.6Yes)には、決定部36は、X軸方向への指の移動距離が閾値以上であるかを判定する(OP.8)。つまり、処理対象の画像における指位置のX座標と、過去の指位置のX座標との差が、閾値以上であるか否かを判定する。また、OP.8において、差は、正または負の値として得られる為、決定部36は、当該差の絶対値と閾値とを比較する。
過去の指位置が複数記憶されている場合は、決定部36は、直前の処理対象の画像における指位置との差を算出してもよいし、もっとも古い指位置との差を算出してもよい。もっとも古い指位置とは、文字群を特定する際に用いられた指位置である。
移動距離が閾値未満である場合(OP.8No)は、決定部36は、対応テーブル333を参照し、特定された文字群のうち、中央文字として設定されている文字に決定する(OP.12)。図9の例では、設定テーブルにおける文字情報2が、文字群のうちの中央文字であるとする。例えば、QWERTY配列においては、文字群「QAZ」においては、中段「A」が中央文字とされる。また、日本語ひらがな入力においては、文字群「あいうえお」のうち、「あ」が中央文字とされる。
一方、移動距離が閾値以上である場合(OP.8Yes)は、決定部36は、移動が正方向の移動であるかを判定する(OP.9)。具体的には、決定部36は、処理対象の画像における指位置のX座標と、過去の指位置のX座標との差が、正の値であるかを判定する。正方向への移動である場合(OP.9Yes)は、決定部36は、特定された文字群のうち、右文字として設定されている文字に決定する(OP.11)。図9の例では、設定テーブルにおける文字3が、文字群のうちの右文字であるとする。
正方向への移動でない場合(OP.9No)は、決定部36は、特定された文字群のうち、左文字として設定されている文字に決定する(OP.10)。図9の例では、設定テーブルにおける文字1が、文字群のうちの左文字であるとする。OP.10乃至OP.12で文字が決定された場合には、情報処理装置は、OP.1に戻る。
一方、OP.4において、押下操作を検出しない場合(OP.4No)、特定部36は、過去の指位置が記憶されているか否かを判定する(OP.13)。過去の指位置が記憶されていない場合は(OP.13No)、情報処理装置は、OP.1に戻る。つまり、押下操作を検出せず、かつ過去の指位置が記憶されていない場合は、ユーザは文字入力操作を行っていないということとなる。
過去の指位置が記憶されている場合には(OP.13Yes)、決定部36は、処理対象の画像よりも過去の画像に対して、OP.10乃至OP.12のいずれかで決定した文字を、入力文字として確定する(OP.14)。つまり、押下操作を検出せず、かつ過去の指位置が記憶されている場合は、処理対象の画像よりも過去に取得した画像において、ユーザによる押下操作が検出されていることとなる。よって、処理対象の画像において、押下操作が解除され、ユーザが文字の確定操作を行ったこととなる。
次に、決定部36は、記憶された指位置を消去する(OP.15)。OP.15により、ユーザにより押下操作から確定操作までに情報処理装置が記憶した指位置は消去される。そして、情報処理装置は、文字入力処理を終了する。
なお、図9に示す処理以外に、表示制御部35は、表示制御を行ってもよい。例えば、OP,7において文字群が特定された場合に、表示制御部は、図7Bのような表示を行う。また、OP.10乃至OP.12において文字が決定された場合に、表示制御部35は、先に特定された文字群のうち、決定された文字を他の文字と識別可能な態様で表示する。
また、文字群が4つ以上である場合には、左右各々について、移動した距離に基づいて、4つの文字の内、ひとつの文字に決定すれば良い。
図10は、日本語ひらがな入力における、文字の決定する処理を説明するための図である。図10の例では、文字群には5つのひらがなが含まれる。例えば、文字群「あいうえお」であって、左から「え」「い」「あ」「う」「お」という表示がなされている。つまり、中央文字となる文字「あ」であって、第一の左文字が「え」、第二の左文字が「い」、第一の右文字が「う」、第二の右文字が「お」である。
OP.8において、正方向の移動であると判定された場合に、さらに、決定部36は、移動距離が他の閾値よりも大きいか否かを判定する。移動距離が他の閾値未満であれば、決定部36は、ユーザが指定した文字を、文字群の内の第一の右文字である「う」に決定する。一方、移動距離が他の閾値以上である場合は、決定部36は、ユーザが指定した文字を、文字群の内の第二の右文字である「お」に決定する。
また、OP.8において、正方向の移動でないと判定された場合も同様に、決定部36は、移動距離が他の閾値よりも大きいか判定する事で、第一の左文字と第二の左文字の内、ユーザが指定した文字を決定する。
以上の処理によって、1台のカメラで、ソフトウェアキーボードが実現可能となる。画像における2軸を、ユーザによる押下操作の方向と、文字群の配列方向とに割当てることで、ユーザにより押下された文字群を特定する。さらに、先の文字群の配列方向に、文字群に含まれる各々の文字を展開することで、ユーザは、文字群のうちの一つの文字を指定することができる。
(実施例2)
実施例2は、指位置の変化は、スライドによる変化であるのか、指が変更されたことによる変化であるのかを識別することで、より正確に文字入力処理を行うものである。
ある画像において、押下操作を検出し、文字群のうち位置の文字を決定したとする。本来、その後の画像において、ユーザによる押下操作の解除がなされた場合に、決定した文字が確定される。つまり、その後の画像に対して、本来、OP.4において、押下操作が検出されなくなることで、ひとつの文字が確定される。
しかし、画像から抽出した手領域や指領域の情報と、設定情報との比較で押下操作を検出する場合には、押下操作の解除から次の押下操作までの時間が短い場合や、ある指による押下操作が解除される前に、他の指による押下操作がなされる場合に、押下操作の解除を検出できない場合がある。これらの場合には、ユーザが入力した文字を正確に特定することができない。実施例2における情報処理装置10は、ひとつのカメラでソフトウェアキーボードの文字入力を可能とすると共に、より正確な文字入力を行う。
図11は、実施例2に係る情報処理装置により実行される文字入力処理のフローチャートである。実施例1における処理フローと同様の処理については、同様の番号を付し、説明を省略する。なお、実施例2における情報処理装置は、実施例1と同様の機能ブロック図であらわされる。
OP.4において、押下操作を検出した場合には(OP.4Yes)、特定部34は、指位置とともに、OP.2で抽出した手領域の重心を算出し、記憶部33に記憶する(OP.21)。なお、手領域の重心は、以下の数1乃至数4により算出される。
F(x、y)は、手領域を表す関数である。m0,0は、手領域全体の面積を表す。m1,0およびm0,1は一次モーメントである。手領域の重心位置g(x、y)は、一次モーメントを手領域全体の面積で除算することで得られる。
さらに、OP.8において、指位置に関して、X軸方向の移動距離が閾値以上であると判定された場合(OP.8Yes)は、決定部36は、処理OP.22を実行する。
決定部36は、処理対象の画像における手領域の重心位置が、過去の画像における手領域の重心位置から変化したかを判定する(OP.22)。例えば、決定部36は、処理対象の画像における手領域の重心のX座標と、過去の画像における手領域の重心のX座標との差が閾値以上であれば、重心位置が変化したと判定する。
以下の数5に基づいて、処理対象の画像における手領域の重心のX座標と、過去の画像における手領域の重心のX座標との差は算出される。数5において、例えば、直前の処理対象の画像における重心と、今回の処理対象の画像における重心を比較する場合は、nは1である。なお、tは、カメラが取得した画像のフレーム番号を示す。
手領域の重心位置が変化した場合は(OP.22Yes)、決定部36はOP.9以降の処理を実行する。これは、手領域の重心位置が変化することは、ユーザがスライド操作を行ったとみなせる為である。
図12は、指がスライドされた場合と、押下操作を行う指が変更された場合とにおける、手の重心の変化を説明するための図である。図12Aは、スライド操作がなされた場合を示す図である。なお、図12Aは、T=t1における手領域のイメージと、スライド操作後のT=t2における手領域のイメージである。T=t1の手領域においては、重心は位置100である。T=t2の手領域においては、重心は位置101である。ユーザによるスライド操作の前後では、手領域の重心の位置が、変化することが分かる。
一方、図12Bは、押下操作を行う指が変更された場合を示す図である。なお、T=t1における手領域のイメージと、指が変更された後のT=t2における手領域のイメージである。T=t1の手領域においては、重心は位置102である。T=t2の手領域においては、重心は位置103である。このように、指が変更された場合には、スライド時と比較して、手領域の重心の位置は、ほぼ変化しないことが分かる。
図13は、手領域の重心の位置変化と、指位置の変化の関係を検証した実験結果である。図13Aおよび13Bにおいて、縦軸は、手領域の重心の変位であって、横軸は、実験における操作回数である。
図13Aは、人差し指で押下操作を行った後に中指の押下操作に切り替えられた場合において、手領域の重心のX座標の変位と、指位置のX座標の変位とを比較した図である。三角で示す値は、指位置のX座標の変位を示す。四角で示す値は、手領域の重心のX座標の変位を示す。このように、人差し指で押下指示を行った後に中指の押下指示に切り替えられた場合は、手領域の重心の変位は、指位置の変位と比較して小さいことが分かる。
一方、図13Bは、スライド操作がなされた場合において、手領域の重心のX座標の変位と、指位置のX座標の変位との比較した図である。三角で示す値は、指位置のX座標の変位を示す。四角で示す値は、手領域の重心のX座標の変位を示す。このように、スライド操作がなされた場合は、手領域の重心の変位も、指位置の変位と同様に、変化が大きいことが分かる。
図13Aにおいて四角で示す値と、図13Bにおいて四角で示す値とを比較すると、手領域の重心の変位を利用することで、押下操作を行う指が変更された場合と、スライド操作がなされた場合とを判別することができる。
したがって、OP.22で手領域の重心のX座標が変化したことを判定した場合に、スライド操作がなされたと判断し、決定部36は、実施例1と同様にスライド方向に応じた文字を、文字群の中から決定する(OP.10乃至OP.12)。また、過去の手領域とは、処理対象の画像よりもひとつ前に処理対象となった画像における手領域である。
一方、OP.8において指位置が閾値以上移動しているにも関わらず、OP.22で手領域の重心のX座標が変化しなかった(OP.22No)ということは、押下操作を行う指が変更されたと判断できる。
したがって、OP.22で手領域の重心のX座標が変化したことを判定しなかった場合(OP.22No)に、決定部36は、過去の処理対象画像において決定した文字を、入力文字として確定する(OP.23)。次に、決定部36は、過去の処理対象の画像について、各々記憶されている指位置と手領域の重心とを消去する(OP.24)。なお、今回の処理対象の画像について、OP.21において記憶した指位置および手領域の重心は、削除されない。
次に、特定部34は、現在、処理対象となっている画像における指位置に基づいて、新たな文字群を特定する(OP.25)。なお、文字群の特定方法については、OP.7と同様である。そして、処置OP.1へ戻る。
一方、OP.4において、押下処理が検出されない場合であって、過去の指位置が記憶されていない場合は(OP.13Yes)、決定部36は、実施例1と同様に、入力文字を確定する(OP.14)。そして、決定部36は、全ての指位置および手領域の重心を消去する(OP.26)。
以上の処理によって、1台のカメラで、物理的なキーボードを用いずに、文字入力が可能となる。さらに、指位置の変化は、スライドによる変化であるのか、押下操作を行う指が変更されたことによる変化であるのかを判別することで、より正確に文字入力処理を行うことができる。
(実施例3)
実施例1および2においては、ユーザが指を押下したままスライドすることで、情報処理装置は、文字群から1の文字を決定する。実施例3においては、ユーザが指を押下した状態を解除しながらスライド操作を行う場合でも、情報処理装置は、文字群から一つの文字を決定することができる。具体的には、押下を解除する際の指の動き方向に応じて、文字群から一つの文字を決定する。例えば、ユーザは左上、真上、右上に対して指を引き上げる操作を行う。
図14は、実施例3に係る文字入力処理のフローチャートである。実施例1および実施例2における処理フローと同様の処理については、同様の番号を付し、説明を省略する。なお、実施例3における情報処理装置は、実施例1および2と同様の機能ブロック図であらわされる。
特定部34は、記憶部33を参照し、過去の指位置が記憶されているか否かを判定する(OP.6)。過去の指位置が記憶されていない場合には(OP.6No)、実施例1と同様、特定部34は、指位置のX座標に基づいて、文字群を特定する(OP.7)。
一方、過去の指位置が記憶されている場合(OP.6Yes)には、決定部36は、処理OP.1へ処理を戻す。実施例3に係る情報処理装置10は、ユーザにより押下操作が継続されている間は、特定された文字群からいずれの文字も未だ選択されていないと判定する為である。
また、押下操作を検出しない場合(OP.4No)、特定部36は、過去の指位置が記憶されているか否かを判定する(OP.13)。過去の指位置が記憶されていない場合は(OP.13No)、情報処理装置は、処理1に戻る。つまり、押下操作を検出せず、かつ過去の指位置が記憶されていない場合は、ユーザはいずれの文字入力操作も行っていないということとなる。
一方、過去の指位置が記憶されている場合には(OP.13Yes)、決定部36は、X軸方向への指の移動距離が閾値以上であるかを判定する(OP.30)。つまり、処理対象の画像における指位置のX座標と、過去の指位置のX座標との差が、閾値以上であるか否かを判定する。なお、差は、正または負の値として得られる為、決定部36は、当該差の絶対値と閾値とを比較する。
移動距離が閾値未満である場合(OP.30No)は、決定部36は、対応テーブル333を参照し、特定された文字群のうち、中央文字として設定されている文字を入力文字として確定する(OP.34)。
一方、移動距離が閾値以上である場合(OP.30Yes)は、決定部36は、移動が正方向の移動であるかを判定する(OP.31)。具体的には、決定部36は、処理対象の画像における指位置のX座標と、過去の指位置のX座標との差が、正の値であるかを判定する。
正方向への移動である場合(OP.31Yes)は、決定部36は、特定された文字群のうち、右文字として設定されている文字を、入力文字として確定する(OP.33)。正方向への移動でない場合(OP.31No)は、決定部36は、特定された文字群のうち、左文字として設定されている文字を、入力文字として確定する(OP.32)。次に、決定部36は、記憶された指位置を消去する(OP.35)。そして、情報処理装置は、文字入力処理を終了する。
図15は、実施例3におけるユーザの操作と、入力文字の確定との関係を説明する為の図である。図15A乃至図15Bは、T=t1における指位置が、T=t2の指位置まで移動したことを示す。また、紙面のY軸は、実空間におけるY軸23に対応し、ユーザはY軸方向に押下操作を行う。さらに紙面のX軸方向は、実空間におけるX軸22に対応し、ユーザはX軸方向に文字群を指定する操作、さらには、文字群からひとつの文字を選択する操作を行う。
図15Aは、ユーザが押下操作を行った位置に対してX軸負の方向に指を引き上げた様子を示している。つまり、Y軸の正の方向かつX軸の負の方向に指位置が変化することで、決定部36は、押下操作の解除を検出するとともに、特定された文字群のうち左文字を入力文字として確定することができる。
図15Bは、ユーザが押下操作を行った位置から、X軸方向への移動を行う事無く、指を引き上げた様子を示している。つまり、Y軸の正の方向に指位置が変化することで、決定部36は、押下操作の解除を検出するとともに、特定された文字群のうち中央文字を入力文字として確定することができる。
図15Cは、ユーザが押下操作を行った位置から、X軸正の方向に指を引き上げた様子を示している。つまり、Y軸の正の方向かつX軸の正の方向に指位置が変化することで、決定部36は、押下操作の解除を検出するとともに、特定された文字群のうち右文字を入力文字として確定することができる。
以上の処理によって、1台のカメラで、物理的なキーボードを用いずに、文字入力が可能となる。さらに、ユーザは押下の解除とともに、入力文字を確定することができる為、より少ない操作で、文字入力が可能となる。
(変形例)
上記実施例は、次の様に変形することも可能である。
例えば、各小領域に一つの文字群を割り当てる実施例に変えて、各指に一つの文字群を予め割り当ててもよい。つまり、設定部32は、初期設定時に、各指を検出し、各指の特徴量を記憶する。特徴量は、指の形状を表す関数や、肌や爪の色等の情報である。そして、設定部32は、左右各々の指に、一つずつ文字群を割り当てた対応テーブルを生成する。
次に、文字入力処理においては、特定部34は、押下操作を検出した場合に、押下操作を行った指の特徴量から、押下操作を行った指を特定する。そして、特定部34は、対応テーブルを参照し、押下操作を行った指に予め割り当てられた文字群を特定する。なお、文字群からひとつの文字を決定する処理は、実施例1乃至3と同様である。
また、他の変型例として、表示制御部36が、特定部34により特定された文字群を、表示する際に、他の表示を行ってもよい。例えば、実施例3のように、ユーザが指を引き上げる動作で、文字を決定する場合には、例えば、図16に示すような3次元的な表示を行ってもよい。
図16は、他の画面表示を示すイメージ図である。図16では、中央文字「F」に対して、右文字「V」と左文字「R」が、紙面の裏から表方向に高さを持っているかのように表示されている。ユーザによる指を引き上げる動作とより連動した表示が可能となる。
図17は情報処理装置10のハードウェア構成の一例を示す図である。コンピュータ1000は、上述した文字入力処理を実行し、情報処理装置10として機能する。コンピュータ1000はCPU(Central Processing Unit)1001、ROM(Read Only Memory)1002,RAM(Random Access Memory)1003,HDD(Hard Disk Drive)1005、表示装置1007、媒体読取装置1009を有しており、各部はバス1008を介して相互に接続されている。そしてCPU1001による管理下で相互にデータの送受を行うことができる。
各実施例のフローチャートに示した文字入力処理が記述された文字入力プログラムは、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。
光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto − OPtical disk)などがある。このプログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。
そして文字入力プログラムを実行するコンピュータ1000は、例えば媒体読取装置1009が、文字入力プログラムを記録した記録媒体から、該プログラムを読み出す。なお、読みだすプログラムによって、コンピュータ1000は、情報処理装置10として機能する。CPU1001は、読み出されたプログラムをHDD1005若しくはROM1002、RAM1003に格納する。
CPU1001は、情報処理装置全体の動作制御を司る中央処理装置である。HDD1005には、上記の各実施例に示した情報処理装置10と同様の機能をコンピュータに発揮させるプログラムとして、各処理をコンピュータに実行させるプログラムが記憶されている。
そして、CPU1001が、管理プログラムをHDD1005から読み出して実行することで、図2に示す取得部31、設定部32、特定部34、表示制御部35、決定部36として機能するようになる。また、管理プログラムはCPU1001とアクセス可能なROM1002またはRAM1003に格納されていても良い。
さらにHDD1005にはCPU1001の管理下で図2に示す記憶部として機能する。つまり、図3や図6に示す情報を記憶する。プログラム同様、記憶部のデータテーブルに相当する情報はCPU1001とアクセス可能なROM1002またはRAM1003に格納されても良い。つまり、記憶部のデータは、HDD1005や、ROM1002またはRAM1003などの記憶装置に格納される。また、ROM1002またはRAM1003は、処理の過程で一時的に生成された情報も記憶する。表示装置1007は、各画面を表示するする。
また、情報処理装置10として機能するコンピュータ1000は、通信装置1004、入力装置1006、撮像装置1010をさらに有してもよい。通信装置1004はネットワークを介して他の装置からの信号を受信し、その信号の内容をCPU1001に渡す。さらに通信装置1004はCPU1001からの指示に応じてネットワークを介して他の装置に信号を送信する。
入力装置1006は、ユーザからの情報の入力を受け付ける。入力装置1006は、物理キーボードであってもよいが、コンピュータ1000においては、本実施例に開示された文字入力処理によって文字入力が実現される。また、入力装置1006としては、タッチパネルも採用される場合がある。
例えば、ユーザの指示に基づいて、タッチパネルによる文字入力を無効化し、本実施例に開示の文字入力処理を情報処理装置10が実行してもよい。コンピュータ1000は、ユーザは、タッチパネルによる文字入力と、本実施例に開示の文字入力処理を選択可能としてもよい。
撮像装置1010は、所定のフレーム間隔で撮影を行い、撮影した画像をCPU1001に対して出力する。撮像装置1010は、例えばCCD(Charge Coupled Device)センサ又はCMOS(Complementary Metal Oxide Semiconductor)センサを有し、例えば、ユーザの手を撮影する。
以下に付記する。
(付記1)コンピュータに、撮像装置から第一の画像を取得し、前記第一の画像から対象物を検出し、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、前記撮像装置から前記第一の画像とは取得時間が異なる第二の画像を取得し、前記第二の画像から対象物を検出し、前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行させることを特徴とする文字入力プログラム。
(付記2)前記コンピュータに、前記決定する処理において、前記第一の位置と前記第二の位置との変化量、および該第一の位置から該第二の位置への変化の方向に基づいて、前記一の文字を決定する処理を実行させることを特徴とする付記1記載の文字入力プログラム。
(付記3)前記対象物はユーザの指であって、前記コンピュータに、前記指の前記第一の位置と前記第二の位置との前記変化量が閾値以上である場合に、該第一の画像における手領域の重心と、該第二の画像における手領域の重心との変化に基づき、該第一の画像と該第二の画像間で、ユーザによるスライド操作を検出し、前記スライド操作が検出された場合に、前記決定する処理を実行させることを特徴とする付記2に記載の文字入力プログラム。
(付記4)前記スライド操作が検出されない場合に、前記第一の画像における前記第一の位置に基づいて、前記文字群から一の文字を決定することを特徴とする付記3記載の文字入力プログラム。
(付記5)前記コンピュータに、前記文字群を特定する処理において、前記第一の位置のうちの第一の軸方向の位置が、所定の条件を満たす場合に、前記第一の位置のうち、第二の軸方向の位置に基づいて、前記文字群を特定する処理を実行させることを特徴とする付記1乃至付記4のいずれか一つに記載の文字入力プログラム。
(付記6)前記コンピュータに、前記第一の軸方向と前記第二の軸方向の各々に対する前記対象物の移動を撮像可能な位置に取り付けられた前記撮像装置から、前記第一の画像および前記第二の画像を取得する処理を実行させることを特徴とする付記5に記載の文字入力プログラム。
(付記7)前記コンピュータに、さらに、前記一の文字を決定した後に、第三の画像を取得し、前記第三の画像における前記対象物の前記第一軸方向の位置が、他の所定の条件を満たす場合に、前記一の文字を入力文字として確定する処理を実行させることを特徴とする付記5または付記6に記載の文字入力プログラム。
(付記8)前記コンピュータに、さらに、前記文字群を特定した場合に、該文字群に含まれる複数の文字を、前記第一の軸の方向とは異なる方向に配置した画面を表示する処理を実行させることを特徴とする付記5乃至付記7のいずれか一つに記載の文字入力プログラム。
(付記9)撮像装置から第一の画像および、該第一の画像より後に撮影された第二の画像を取得する取得部と、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を記憶する記憶部と、前記第一の画像から対象物を検出するとともに、前記記憶部の前記対応情報を参照し、該第一の画像から検出された対象物の第一の位置に対応する文字群を特定する特定部と、前記第二の画像から対象物を検出するとともに、該第二の画像から検出された対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する決定部とを有することを特徴とする情報処理装置。
(付記10)コンピュータが、撮像装置から第一の画像を取得し、前記第一の画像から対象物を検出し、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、前記撮像装置から第二の画像を取得し、前記第二の画像から対象物を検出し、前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行することを特徴とする文字入力方法。
(付記11)メモリと、プロセッサーとを有し、前記メモリは対応情報を記憶し、撮像装置から第一の画像を取得し、前記第一の画像から対象物を検出し、前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、前記撮像装置から第二の画像を取得し、前記第二の画像から対象物を検出し、前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する情報処理装置。
10 情報処理装置
11 カメラ
31 取得部
32 設定部
33 記憶部
34 特定部
35 表示制御部
36 決定部
1000 コンピュータ
1001 CPU
1002 ROM
1003 RAM
1004 通信装置
1005 HDD
1006 入力装置
1007 表示装置
1008 バス
1009 媒体読取装置
1010 撮像装置

Claims (10)

  1. コンピュータに、
    撮像装置から第一の画像を取得し、
    前記第一の画像から対象物を検出し、
    前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、
    前記撮像装置から前記第一の画像とは取得時間が異なる第二の画像を取得し、
    前記第二の画像から対象物を検出し、
    前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行させることを特徴とする文字入力プログラム。
  2. 前記コンピュータに、前記決定する処理において、
    前記第一の位置と前記第二の位置との変化量、および該第一の位置から該第二の位置への変化の方向に基づいて、前記一の文字を決定する処理を実行させることを特徴とする請求項1記載の文字入力プログラム。
  3. 前記対象物はユーザの指であって、前記コンピュータに、
    前記指の前記第一の位置と前記第二の位置との前記変化量が閾値以上である場合に、該第一の画像における手領域の重心と、該第二の画像における手領域の重心との変化に基づき、該第一の画像と該第二の画像間で、ユーザによるスライド操作を検出し、
    前記スライド操作が検出された場合に、前記決定する処理を実行させることを特徴とする請求項2に記載の文字入力プログラム。
  4. 前記スライド操作が検出されない場合に、前記第一の画像における前記第一の位置に基づいて、前記文字群から一の文字を決定することを特徴とする請求項3記載の文字入力プログラム。
  5. 前記コンピュータに、前記文字群を特定する処理において、
    前記第一の位置のうちの第一の軸方向の位置が、所定の条件を満たす場合に、前記第一の位置のうち、第二の軸方向の位置に基づいて、前記文字群を特定する処理を実行させることを特徴とする請求項1乃至請求項4のいずれか一つに記載の文字入力プログラム。
  6. 前記コンピュータに、
    前記第一の軸方向と前記第二の軸方向の各々に対する前記対象物の移動を撮像可能な位置に取り付けられた前記撮像装置から、前記第一の画像および前記第二の画像を取得する処理を実行させることを特徴とする請求項5に記載の文字入力プログラム。
  7. 前記コンピュータに、さらに、
    前記一の文字を決定した後に、第三の画像を取得し、
    前記第三の画像における前記対象物の前記第一軸方向の位置が、他の所定の条件を満たす場合に、前記一の文字を入力文字として確定する処理を実行させることを特徴とする請求項5または請求項6に記載の文字入力プログラム。
  8. 前記コンピュータに、さらに、
    前記文字群を特定した場合に、該文字群に含まれる複数の文字を、前記第一の軸方向とは異なる方向に配置した画面を表示する処理を実行させることを特徴とする請求項5乃至請求項7のいずれか一つに記載の文字入力プログラム。
  9. 撮像装置から第一の画像および、該第一の画像よりの後に撮影された第二の画像を取得する取得部と、
    前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を記憶する記憶部と、
    前記第一の画像から対象物を検出するとともに、前記記憶部の前記対応情報を参照し、該第一の画像から検出された対象物の第一の位置に対応する文字群を特定する特定部と、
    前記第二の画像から対象物を検出するとともに、該第二の画像から検出された対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する決定部とを有することを特徴とする情報処理装置。
  10. コンピュータが、
    撮像装置から第一の画像を取得し、
    前記第一の画像から対象物を検出し、
    前記第一の画像に対して複数設定される領域毎に、複数の文字を含む文字群が各々対応付けられた対応情報を参照し、前記第一の画像から検出された前記対象物の第一の位置に対応する文字群を特定し、
    前記撮像装置から前記第一の画像とは取得時間が異なる第二の画像を取得し、
    前記第二の画像から対象物を検出し、
    前記第二の画像から検出された前記対象物の第二の位置に基づき、特定された前記文字群の中から一の文字を決定する処理を実行することを特徴とする文字入力方法。
JP2012140161A 2012-06-21 2012-06-21 文字入力プログラム、情報処理装置および文字入力方法 Expired - Fee Related JP5962249B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012140161A JP5962249B2 (ja) 2012-06-21 2012-06-21 文字入力プログラム、情報処理装置および文字入力方法
US13/903,280 US20130342441A1 (en) 2012-06-21 2013-05-28 Character input method and information processing apparatus
EP13170394.4A EP2677397A3 (en) 2012-06-21 2013-06-04 Character input method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012140161A JP5962249B2 (ja) 2012-06-21 2012-06-21 文字入力プログラム、情報処理装置および文字入力方法

Publications (2)

Publication Number Publication Date
JP2014006594A true JP2014006594A (ja) 2014-01-16
JP5962249B2 JP5962249B2 (ja) 2016-08-03

Family

ID=48607070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012140161A Expired - Fee Related JP5962249B2 (ja) 2012-06-21 2012-06-21 文字入力プログラム、情報処理装置および文字入力方法

Country Status (3)

Country Link
US (1) US20130342441A1 (ja)
EP (1) EP2677397A3 (ja)
JP (1) JP5962249B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049661A (ja) * 2015-08-31 2017-03-09 キヤノン株式会社 情報処理装置とその制御方法、プログラム、記憶媒体

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319665B2 (en) 2013-06-19 2016-04-19 TrackThings LLC Method and apparatus for a self-focusing camera and eyeglass system
US20140375539A1 (en) * 2013-06-19 2014-12-25 Thaddeus Gabara Method and Apparatus for a Virtual Keyboard Plane
US9736461B2 (en) 2013-06-19 2017-08-15 TrackThings LLC Method and apparatus for an attachable unit for a portable wireless system
US9857971B2 (en) * 2013-12-02 2018-01-02 Industrial Technology Research Institute System and method for receiving user input and program storage medium thereof
US11720222B2 (en) * 2017-11-17 2023-08-08 International Business Machines Corporation 3D interaction input for text in augmented reality
CN113014846B (zh) * 2019-12-19 2022-07-22 华为技术有限公司 一种视频采集控制方法、电子设备、计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614422B1 (en) * 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US20050009584A1 (en) * 2003-06-27 2005-01-13 Samsung Electronics Co., Ltd. Wearable phone and method of using the same
JP2008152622A (ja) * 2006-12-19 2008-07-03 Mitsubishi Electric Corp ポインティング装置
WO2012056864A1 (ja) * 2010-10-28 2012-05-03 Wada Yoshihiro 入力装置、当該入力装置を備えた情報機器、コンピュータを入力装置として機能させるためのプログラム、および入力装置を用いて文字を入力するための方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0554492B1 (en) * 1992-02-07 1995-08-09 International Business Machines Corporation Method and device for optical input of commands or data
JP2003288156A (ja) 2002-03-28 2003-10-10 Minolta Co Ltd 入力装置
SG125895A1 (en) * 2002-04-04 2006-10-30 Xrgomics Pte Ltd Reduced keyboard system that emulates qwerty-type mapping and typing
JP4040643B2 (ja) * 2005-07-13 2008-01-30 株式会社ソニー・コンピュータエンタテインメント 文字入力装置、文字入力装置の制御方法及びプログラム
US8589824B2 (en) * 2006-07-13 2013-11-19 Northrop Grumman Systems Corporation Gesture recognition interface system
US8514251B2 (en) * 2008-06-23 2013-08-20 Qualcomm Incorporated Enhanced character input using recognized gestures
US20100235786A1 (en) * 2009-03-13 2010-09-16 Primesense Ltd. Enhanced 3d interfacing for remote devices
EP2513755A2 (en) * 2009-12-20 2012-10-24 Keyless Systems Ltd Features of a data entry system
US8947355B1 (en) * 2010-03-25 2015-02-03 Amazon Technologies, Inc. Motion-based character selection
JP5799817B2 (ja) * 2012-01-12 2015-10-28 富士通株式会社 指位置検出装置、指位置検出方法及び指位置検出用コンピュータプログラム
US8970479B1 (en) * 2012-07-31 2015-03-03 Rawles Llc Hand gesture detection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614422B1 (en) * 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US20050009584A1 (en) * 2003-06-27 2005-01-13 Samsung Electronics Co., Ltd. Wearable phone and method of using the same
JP2008152622A (ja) * 2006-12-19 2008-07-03 Mitsubishi Electric Corp ポインティング装置
WO2012056864A1 (ja) * 2010-10-28 2012-05-03 Wada Yoshihiro 入力装置、当該入力装置を備えた情報機器、コンピュータを入力装置として機能させるためのプログラム、および入力装置を用いて文字を入力するための方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017049661A (ja) * 2015-08-31 2017-03-09 キヤノン株式会社 情報処理装置とその制御方法、プログラム、記憶媒体

Also Published As

Publication number Publication date
EP2677397A2 (en) 2013-12-25
JP5962249B2 (ja) 2016-08-03
EP2677397A3 (en) 2014-10-08
US20130342441A1 (en) 2013-12-26

Similar Documents

Publication Publication Date Title
JP5962249B2 (ja) 文字入力プログラム、情報処理装置および文字入力方法
KR100938337B1 (ko) 그리기 도구를 가지는 자율 핸드헬드 장치
CN102662577B (zh) 一种基于三维显示的光标操作方法及移动终端
WO2012176315A1 (ja) 情報処理装置、入力制御方法及び入力制御プログラム
JP6270325B2 (ja) 情報処理装置およびその制御方法
US8948493B2 (en) Method and electronic device for object recognition, and method for acquiring depth information of an object
JP6028589B2 (ja) 入力プログラム、入力装置および入力方法
JP2013250882A5 (ja)
JP6524589B2 (ja) クリック動作検出装置,方法およびプログラム
JP7378354B2 (ja) ライブ動画ストリームからの指の押下の検出
JP2004078977A (ja) インターフェイス装置
US20160334975A1 (en) Information processing device, non-transitory computer-readable recording medium storing an information processing program, and information processing method
JP2007034525A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2016053940A (ja) タッチ撮影方法及びそのタッチ端末
WO2016006090A1 (ja) 電子機器、方法及びプログラム
CN105022579A (zh) 基于图像处理的虚拟键盘的实现方法和装置
KR20120028248A (ko) 이동장치의 제스처 제어장치 및 방법
CN105678696B (zh) 一种信息处理方法及电子设备
CN110136233B (zh) 一种生成美甲效果图的方法、终端以及存储介质
JP2015184906A (ja) 肌色検出条件決定装置、肌色検出条件決定方法及び肌色検出条件決定用コンピュータプログラム
Siam et al. Human computer interaction using marker based hand gesture recognition
US11442613B2 (en) Electronic apparatus, control method of electronic apparatus, and non-transitory computer readable medium
US10921704B2 (en) Method for controlling projection content and electronic device
JP2013134549A (ja) データ入力装置およびデータ入力方法
JP2017037614A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160331

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160613

R150 Certificate of patent or registration of utility model

Ref document number: 5962249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees