(57)【要約】【課題】仮想的なキーボードによる情報の入力が可能な情報処理装置、情報処理方法及びプログラムを提供する。【解決手段】実施形態によれば、情報処理装置は、撮像部と、前記撮像部からの撮像画像に基づいて、仮想キーボードを検出するキーボード検出部と、前記撮像画像に基づいて、前記仮想キーボードへの入力を検出する入力検出部と、前記入力検出部で検出された入力に対応する情報を表示する表示部とを備える。【選択図】図１
2014109876.tif 000002
【特許請求の範囲】
【請求項１】
撮像部と、
前記撮像部からの撮像画像に基づいて、仮想キーボードを検出するキーボード検出部と、
前記撮像画像に基づいて、前記仮想キーボードへの入力を検出する入力検出部と、
前記入力検出部で検出された入力に対応する情報を表示する表示部と、
を具備する情報処理装置。
【請求項２】
前記仮想キーボードが、媒体に印刷されるキーボードの画像である
請求項１記載の情報処理装置。
【請求項３】
前記媒体に、前記仮想キーボードを識別する識別標識が印刷され、
前記情報処理装置が、前記識別標識を記憶する記憶部をさらに具備し、
前記キーボード検出部は、前記撮像画像と前記識別標識とを比較することで、前記仮想キーボードを検出する
請求項２記載の情報処理装置。
【請求項４】
前記識別標識が前記仮想キーボードの種別を表し、
前記キーボード検出部は、前記撮像画像と前記識別標識とを比較することで、前記仮想キーボードの種別を検出する
請求項３記載の情報処理装置。
【請求項５】
前記仮想キーボードの基準画像を記憶する記憶部をさらに具備し、
前記キーボード検出部は、前記撮像画像と前記基準画像とを比較することで、前記仮想キーボードを検出する
請求項２記載の情報処理装置。
【請求項６】
前記記憶部が、互いに異なる複数の基準画像を記憶し、
前記キーボード検出部は、前記複数の基準画像と前記撮像画像とを比較することで、前記仮想キーボードの種別を検出する
請求項５記載の情報処理装置。
【請求項７】
前記キーボード検出部が、前記仮想キーボードを検出しないときに、前記表示部上の輝度を増大させる輝度調節部をさらに具備する
請求項２乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記撮像部周囲の明るさを検出する明るさ検出部をさらに具備し、
前記キーボード検出部が、前記仮想キーボードを検出しないときに、前記明るさ検出部での検出結果に基づいて、前記輝度調節部が前記表示部上の輝度を増大させる、
請求項７記載の情報処理装置。
【請求項９】
前記キーボード検出部が、前記仮想キーボードを検出しないときに、前記表示部が、前記仮想キーボードの印刷を促す情報を表示する、
請求項７または８に記載の情報処理装置。
【請求項１０】
前記媒体に、前記仮想キーボードの入力可能範囲の境界に沿って配置される３つ以上の境界標識が印刷され、
前記情報処理装置が、
前記境界標識を記憶する記憶部と、
前記撮像画像および前記３つ以上の境界標識に基づいて、前記仮想キーボードの入力不備状態を検出する不備状態検出部と、をさらに具備し、
前記不備状態検出部が、前記仮想キーボードの入力不備状態を検出したときに、前記表示部が、前記仮想キーボードの位置の修正を促す情報を表示する、
請求項２乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記位置検出部での位置検出結果に基づき、前記仮想キーボードの複数のキーそれぞれの位置を表すテーブルを生成するテーブル生成部と、
前記生成されたテーブルを記憶する記憶部と、をさらに具備する
請求項１０記載の情報処理装置。
【請求項１２】
前記境界標識いずれかの移動を検出する標識移動検出部と、
前記標識移動検出部での検出結果に基づき、前記記憶されるテーブルを更新するテーブル更新部と、
をさらに具備する請求項１０または１１に記載の情報処理装置。
【請求項１３】
前記入力検出部が、
前記撮像画像に基づいて、操作者の指先の位置を検出する位置検出部と、
前記位置検出部で検出された位置に基づいて前記指先の移動を検出する指先移動検出部と、
前記指先移動検出部が前記指先の移動を検出したときの、前記指先の位置および前記複数のキーそれぞれの位置に基づいて、入力されるキーを検出する
請求項１０乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記入力検出部が、
前記指先移動検出部が、前記仮想キーボードに向かう第１の方向への指先の移動を検出することで、前記仮想キーボードへの入力の開始を検出する開始検出部をさらに有する
請求項１３記載の情報処理装置。
【請求項１５】
前記入力検出部が、
前記指先移動検出部が、前記仮想キーボードから離れる第２の方向への指先の移動を検出することで、前記仮想キーボードへの入力の終了を検出する終了検出部をさらに有する
請求項１３または１４に記載の情報処理装置。
【請求項１６】
前記撮像部が、複数の撮像素子を有し、
前記位置検出部が、前記複数の撮像素子からの複数の撮像画像に基づいて、前記指先の位置を検出する
請求項１３乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
前記情報処理装置が、音を検出する音検出部をさらに具備し、
前記指先移動検出部が前記指先の移動を検出し、かつ前記音検出部が音を検出したときの、前記指先の位置に基づいて、前記キー検出部が、前記入力されるキーを検出する
請求項１３乃至１６のいずれか１項に記載の情報処理装置。
【請求項１８】
前記撮像画像に基づいて、仮想タッチパッドを検出するタッチパッド検出部と、
前記撮像画像に基づいて、前記仮想タッチパッドへの入力を検出する第２の入力検出部と、
をさらに具備する請求項１乃至１７のいずれか１項に記載の情報処理装置。
【請求項１９】
撮像するステップと、
前記撮像された画像に基づいて、仮想キーボードを検出するステップと、
前記撮像された画像に基づいて、前記仮想キーボードへの入力を検出するステップと、
前記検出された入力に対応する情報を表示するステップと、
を具備する情報処理方法。
【請求項２０】
撮像するステップと、
前記撮像された画像に基づいて、仮想キーボードを検出するステップと、
前記撮像された画像に基づいて、前記仮想キーボードへの入力を検出するステップと、
前記検出された入力に対応する情報を表示するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
表示画面上に設けられたタッチパネル式の情報入力機能を備える可搬型の情報処理装置、例えば、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などが広く使用されている。このような情報処理装置では、外部機器を接続し、接続された外部機器から操作をしたり、所望の情報を入力したりする要請がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００４−５１３４１６号広報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような情報処理装置を用いる際、当該情報処理装置と外部機器（例えば，キーボード）とを常に持ち運ぶのは、煩雑であり、ユーザの利便性を損なう虞がある。
【０００５】
本発明は、仮想的なキーボードによる情報の入力が可能な情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、情報処理装置は、撮像部と、前記撮像部からの撮像画像に基づいて、仮想キーボードを検出するキーボード検出部と、前記撮像画像に基づいて、前記仮想キーボードへの入力を検出する入力検出部と、前記入力検出部で検出された入力に対応する情報を表示する表示部とを備える。
【図面の簡単な説明】
【０００７】
【図１】実施形態に係る情報処理装置の外観構造について説明するための図である。
【図２】実施形態に係る情報処理装置の使用方法の一例について説明するための図である。
【図３】実施形態に係る情報処理装置の要部概略構成について説明するための図である。
【図４】実施形態に係る情報処理装置において実行される仮想キーボード検出プログラムの動作について説明するためのフローチャートである。
【図５】実施形態に係る情報処理装置において実行される第１の検出手法の動作について説明するためのフローチャートである。
【図６】実施形態に係る情報処理装置に格納されるデータベースの一例を示した図である。
【図７】実施形態に係る情報処理装置に格納されるデータベースの一例を示した図である。
【図８】実施形態に係る情報処理装置によって媒体に印刷される識別標識について説明するための図である。
【図９】実施形態に係る情報処理装置において実行される第２の検出手法の動作について説明するためのフローチャートである。
【図１０】実施形態に係る情報処理装置で実行される仮想キーボードの検出にて用いる基準画像について説明するための図である。
【図１１】実施形態に係る情報処理装置によって提示される仮想キーボードの印刷を促す画面の一例を示した図である。
【図１２】実施形態に係る情報処理装置によって媒体に印刷される境界標識について説明するための図である。
【図１３】実施形態に係る情報処理装置で実行される入力不備状態を検出する動作について説明するためのフローチャートである。
【図１４】実施形態に係る情報処理装置に格納されるデータベースの一例を示した図である。
【図１５】実施形態に係る情報処理装置に格納されるデータベースの一例を示した図である。
【図１６】実施形態に係る情報処理装置に表示されるインジケータの表示パターンの一例について説明するための図である。
【図１７】実施形態に係る情報処理装置において実行される入力検出プログラムの動作について説明するためのフローチャートである。
【図１８】実施形態に係る情報処理装置に格納されるデータベースの一例を示した図である。
【図１９】実施形態に係る情報処理装置において実行される位置ズレ検出について説明するためのフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、実施形態を詳細に説明する。
（実施形態）
図１は、本実施形態に係る情報処理装置１０の外観構造を示した斜視図である。情報処理装置１０は、いわゆるスレート型、タブレット型（ソフトキーボードの機能を有した表示装置）などのパーソナルコンピュータ、テレビ、スマートフォン、携帯電話機などである。
【０００９】
図１に示すように、情報処理装置１０は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）１と、電源スイッチ３と、カメラ４と、マイク５と、照度センサ６とを備えている。
【００１０】
ＬＣＤ１は，液晶表示装置であり，入力検出部で検出された入力に対応する情報を表示する表示部として機能する。
【００１１】
ＬＣＤ１の上面には透明のタッチパネル２が設けられ、ＬＣＤ１とタッチパネル２とによってタッチスクリーンディスプレイが実現される。タッチパネル２は、例えば、抵抗膜方式または静電容量方式などを用いて，接触位置を検出する。このタッチスクリーンディスプレイは、指やペンなどによって接触された表示画面上の位置を検出する。ユーザは、このタッチパネル２を操作する（指等で触れる）ことで、当該情報処理装置１０に対して，所望の処理（情報の入力）を実行させる。
【００１２】
電源スイッチ３は、情報処理装置１０の筐体表面に露出して設けられ、当該情報処理装置１０の電源をオン状態またはオフ状態とするための操作入力を受け付ける。
【００１３】
カメラ４は、撮像部であり、視野角内にある被写体を撮像する。
【００１４】
マイク５は、当該情報処理装置１０の外部の音を集音するものであり，音を検出する音検出部として機能する。
【００１５】
照度センサ６は、情報処理装置１０周囲の明るさを検出するセンサである。照度センサ６は、カメラ４の近傍に設けられ、カメラ４（撮像部）周囲の明るさを検出する明るさ検出部として機能する。
【００１６】
なお、図１で示した情報処理装置１０に対する電源スイッチ３、カメラ４、マイク５、照度センサ６の設置位置は、これに限定されるものではない。ユーザの利便性、当該情報処理装置１０の使用形態などを考慮して，電源スイッチ３等を適宜変更してもよい。
【００１７】
図１に示すように、情報処理装置１０の手前には、仮想キーボード５０が配置されている。仮想キーボード５０は、通常のキーボードのように固有のハードウェアなどではない。仮想キーボード５０は、例えば、紙などの媒体ＭＭに印刷された複数のキー（キーボード）の画像であり、あくまでも仮想的なものである。
【００１８】
この仮想キーボード５０は、情報処理装置１０の操作、情報入力などをするために用いられるキーボードである。ユーザは，仮想キーボード５０を用いて情報を入力できる。このとき，仮想キーボード５０は，情報処理装置１０に対して，コネクタなどで物理的に接続されたり、また電磁波などにより近接場接続されたりする必要はない。
【００１９】
後で詳細に説明をするが、具体的には、情報処理装置１０は、カメラ４にて仮想キーボード５０を撮像し、撮像した画像の変化を検出することで仮想キーボード５０の各キーが入力操作されたことを把握する。
【００２０】
例えば、図２に示すように、情報処理装置１０は、後で説明する通信機能により、無線通信回線によって紙媒体を印刷する印刷装置１００と無線通信することができる。これにより、必要に応じて、情報処理装置１０は、無線通信回線を介して印刷装置１００から仮想キーボード５０を印刷した紙媒体を出力するだけで、当該情報処理装置１０と別個に外部機器を携帯する必要がないため、ユーザの利便性を高めることができる。
【００２１】
仮想キーボード５０を印刷する媒体ＭＭは、紙だけではなく板状のプラスチック部材などでもよい。キーボードのキー（入力インターフェース）を画像として表示（例えば，印刷）できれば、媒体ＭＭは、どのような材質、形状でもよい。
【００２２】
＜情報処理装置１０の構成＞
続いて、図３を用いて情報処理装置１０の要部概略構成について説明をする。図３に示すように、情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ブリッジデバイス１２と、主メモリ２０ａと、カメラコントローラ１４と、マイクコントローラ１５と、センサインターフェース１６と、通信コントローラ１７と、通信部１８と、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）１９と、ＢＩＯＳ−ＲＯＭ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０と、ＥＣ（エンベデッドコントローラ）２１と、電源回路２３と、バッテリ２４と、ＡＣアダプタ２５とを備える。
【００２３】
ＣＰＵ１１は、情報処理装置１０の各コンポーネントの動作を制御するプロセッサである。ＣＰＵ１１は、ＳＳＤ１９から主メモリ２０ａに読み込まれるオペレーティングシステム（ＯＳ）、各種ユーティリティプログラム、各種アプリケーションプログラムを実行する。また、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ２０に格納されたＢＩＯＳも実行する。ＢＩＯＳは、ハードウェアを制御するための基本プログラムである。
【００２４】
本実施形態において、ＣＰＵ１１は、ＳＳＤ１９から主メモリ２０ａに読み込まれた仮想キーボード５０を検出するプログラム（仮想キーボード検出プログラム）を実行することでキーボード検出部として機能する。また、ＣＰＵ１１は、主メモリ２０ａに読み込まれた仮想キーボード５０の入力を検出するプログラム（入力検出プログラム）を実行することで入力検出部として機能する。
【００２５】
ブリッジデバイス１２は、グラフィクスコントローラ１３、カメラコントローラ１４、マイクコントローラ１５、センサインターフェース１６、通信コントローラ１７との通信を実行する。
【００２６】
さらに、ブリッジデバイス１２は、主メモリ２０ａを制御するメモリーコントローラも内蔵している。また、ブリッジデバイスは、図示しないＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス上の各デバイス、ＬＰＣ（Ｌｏｗ  ＰＩＮ  Ｃｏｕｎｔ）バス上の各デバイスとの通信も実行する。
【００２７】
主メモリ２０ａは、ＣＰＵ１１が実行するＯＳ、各種プログラムを読み込む一時格納領域である。主メモリ２０ａは、ＳＳＤ１９に記憶されているＯＳ、各種プログラムを読み込む。
【００２８】
グラフィクスコントローラ１３は、ブリッジデバイス１２を介してＣＰＵ１１から入力される描画要求に基づいてビデオメモリ（ＶＲＡＭ）に表示データを描画するための表示処理（グラフィクス演算処理）を実行する。ビデオメモリには、ＬＣＤ１に表示される画面イメージに対応する表示データを格納する。
【００２９】
カメラコントローラ１４は、ブリッジデバイス１２を介してＣＰＵ１１から入力される撮像要求に基づいて、カメラ４の画角内の撮像を実行するようカメラ４を制御する。カメラ４によって撮像された撮像画像は、主メモリ２０ａへと一時的に記憶されるが、必要に応じて、ＳＳＤ１９へと格納される。
【００３０】
マイクコントローラ１５は、ブリッジデバイス１２を介してＣＰＵ１１から入力される集音要求に基づいて、マイク５の指向性に応じた情報処理装置１０の周囲音の集音を実行するようマイク５を制御する。
【００３１】
センサインターフェース１６は、照度センサ６をブリッジデバイス１２へ接続するためのインターフェースである。上述したように、照度センサ６は、設置された周囲の明るさを検出し、電気信号として出力するセンサである。照度センサ６で検出された明るさを示す電気信号（以下、明暗情報とも呼ぶ。）は、センサインターフェース１６、ブリッジデバイス１２を介してＣＰＵ１１へと伝達される。
【００３２】
ＣＰＵ１１は、照度センサ６で検出された明暗情報に基づき、ＬＣＤ１の輝度、つまり図示しないバックライトの輝度を制御する。例えば、ＣＰＵ１１は、照度センサ６で検出された明暗情報に基づき、周囲が暗い場合には輝度を高くするよう制御し、周囲が明るい場合には輝度を低くするよう制御する。
【００３３】
仮想キーボード検出プログラムを実行している場合、ＣＰＵ１１は、照度センサ６から検出される明暗情報と、カメラ４で撮像される撮像画像とに基づき、ＬＣＤ１の輝度制御を実行する。
【００３４】
通信コントローラ１７は、ブリッジデバイス１２を介しＣＰＵ１１から入力される通信要求に基づいて、通信部１８を制御する。通信部１８は、通信機能を有する外部機器との無線通信を実行する。
【００３５】
ＳＳＤ１９は、上述した仮想キーボード検出プログラム、入力検出プログラムを含む各種プログラムを格納する。また，ＳＳＤ１９は、各プログラムにて用いられる各種情報をデータベースとして格納する。
【００３６】
ＥＣ２１は、ユーザによる電源スイッチ３の操作に応じて情報処理装置１０の電源をオン状態、オフ状態とする。つまり、ＥＣ２１は、電源回路２３の制御を行う。また、ＥＣ２１は、ＬＣＤ１に設けられているタッチパネル２を制御するタッチパネルコントローラ２２を備えている。ＥＣ２１は、情報処理装置１０の電源がオン状態、オフ状態であるかどうかに関わらず常に動作している。
【００３７】
電源回路２３は、外部電源がＡＣアダプタ２５を介して供給されている場合、ＡＣアダプタ２５から供給される外部電源を用いて情報処理装置１０の各コンポーネントに供給すべきシステム電源を生成する。また、電源回路２３は、外部電源がＡＣアダプタ２５を介して供給されていない場合には、バッテリ２４を用いて情報処理装置１０の各コンポーネントに電力を供給する。
【００３８】
＜仮想キーボード５０の検出＞
続いて、図４に示すフローチャートを用いて、ＣＰＵ１１で実行される仮想キーボード検出プログラムの動作について説明をする。なお、ＣＰＵ１１は、仮想キーボード検出プログラムを実行するまでは、情報処理装置１０のタッチパネル２の操作によって動作するタッチパネルモードを実行しているものとする。
【００３９】
ステップＳ１において、ＣＰＵ１１は、タッチパネルモードにおけるユーザからのタッチパネル２への入力に基づき、当該タッチパネルモードを継続して実行するのか、仮想キーボード５０を使用する仮想キーボードモードへと移行するのかを判断する。
【００４０】
例えば、ＣＰＵ１１は、ユーザからのメニュー選択などに応じて、ＬＣＤ１にタッチパネルモードまたは仮想キーボード検出モードかを選択させる図示しないダイアローグ画面を表示させる。このダイアローグ画面を参照し、ユーザは、タッチパネルモードまたは仮想キーボードモードのいずれかを選択する。
ＣＰＵ１１は、仮想キーボードモードへと移行する場合、ステップＳ２へと工程を進める。
【００４１】
ＣＰＵ１１は、仮想キーボードモードへと移行した場合、図１に示すように，ＬＣＤ１上にインジケータＩ（点線で表示）をＧＵＩ表示させる。この結果，情報処理装置１０が仮想キーボードモードであることが示される（図１６（ａ）参照）。
【００４２】
後述のように、このインジケータＩは、カメラ４で撮像された撮像画像内における仮想キーボード５０の位置を提示するための情報提示機能を有している。
【００４３】
ＣＰＵ１１は、仮想キーボードモードへと移行した場合、まず、ＳＳＤ１９から主メモリ２０ａに読み込んだ仮想キーボード５０を検出する仮想キーボード検出プログラムを実行する。続いて、ＣＰＵ１１は、仮想キーボード５０が検出された場合、仮想キーボード５０への入力を検出する入力検出プログラムを実行する。
入力検出プログラムについては、後で詳細に説明をする。
【００４４】
ステップＳ２において、ＣＰＵ１１は、カメラコントローラ１４を制御し、カメラ４による撮像を開始させる。撮像された撮像画像は、所定の時間間隔で主メモリ２０ａに一時的に格納される。
【００４５】
ステップＳ３において、ＣＰＵ１１は、撮像された撮像画像に基づき、仮想キーボード５０を検出したかどうかを判断する。基本的には、ＣＰＵ１１は、撮像された撮像画像上に仮想キーボード５０が存在するかどうかで、仮想キーボード５０を検出したかどうかを判断することになる。
【００４６】
具体的に、ＣＰＵ１１による仮想キーボード５０の検出手法には、以下の２つ手法が考えられる。
（第１の検出手法：識別標識による検出）
第１の検出手法は、仮想キーボード５０が印刷された媒体ＭＭ上に印刷されている識別標識を、撮像された撮像画像から検出することで、撮像画像上に仮想キーボード５０が存在するかどうかを判断する手法である。なお，識別標識は，仮想キーボードを識別するための標識（図形，文字等）である。
【００４７】
（第２の検出手法：基準画像との比較による検出）
第２の検出手法は、あらかじめ保持している仮想キーボード５０の基準画像と、撮像された撮像画像とを比較することで、撮像画像上に仮想キーボード５０が存在するかどうかを判断する手法である。
【００４８】
このように、第１の検出手法は、仮想キーボード５０の存在を、識別標識という別個の情報を用いて間接的に検出する手法である。一方、第２の検出手法は、仮想キーボード５０の存在を、仮想キーボード５０の基準画像を用いて直接的に検出する手法である。
以下、第１の検出手法と第２の検出手法のそれぞれについて詳細に説明をする。
【００４９】
（第１の検出手法：識別標識による検出）
まず、図５に示すフローチャートを用いて、第１の検出手法の動作について説明をする。
【００５０】
ステップＳ３１において、ＣＰＵ１１は、撮像された撮像画像を主メモリ２０ａに記憶させる。
【００５１】
ステップＳ３２において、ＣＰＵ１１は、ＳＳＤ１９に格納されているデータベースから、例えば、図６に示すような識別標識データベースを読み出す。
【００５２】
図６に示すように識別標識データベースは、識別標識に対して、少なくとも仮想キーボード５０の種別を特定する種別情報を対応付けたデータベースである。種別情報とは、仮想キーボード５０の種別、具体的には、キー配列、キーボード全体の形状など、どのようなキーボードであるのかを特定するための情報である。
【００５３】
また、ＳＳＤ１９のデータベースは、種別情報と、例えば、図７に示すように、仮想キーボードの画像を特定する仮想キーボード画像情報と対応付けた、仮想キーボード画像データベースを格納している。これにより識別標識が分かれば、仮想キーボード５０の画像情報、つまり仮想キーボード５０を一意に特定することができる。
【００５４】
なお、後で詳細に説明をするが、この仮想キーボード画像データベースに、種別情報と対応付けられて格納されている仮想キーボード画像情報は、仮想キーボード５０を特定するための基準画像に用いられる。
【００５５】
このような識別標識は、仮想キーボード５０を媒体ＭＭに印刷する際に、媒体ＭＭのいずれかの少なくとも１箇所に印刷されていればよい。図８に、一例として、仮想キーボード５０が印刷された媒体ＭＭに、識別標識Ｍ１を印刷した様子を示す。
【００５６】
例えば、識別標識は、二次元コードなどが考えられる。但し、仮想キーボード５０を一意に特定することができる情報であれば，識別標識は、どのようなものでもよい。また、媒体ＭＭ上の複数個所に識別標識を印刷すれば，仮想キーボード５０の検出確率を高めることができる。
【００５７】
ステップＳ３３において、ＣＰＵ１１は、識別標識データベースに格納されている識別標識（画像）を読み出し、座標変換パラメータを用いて，座標変換処理を実行する。
【００５８】
仮想キーボード５０は、カメラ４に対して毎回一定の位置に載置されるわけではなく、ある程度ユーザの任意の位置に配置される。つまり、カメラ４と仮想キーボード５０が印刷された媒体ＭＭとの位置関係によっては、識別標識データベースに格納されている識別標識から、撮像された撮像画像上の識別標識を特定することができない場合がある。これにより、仮想キーボード５０を検出できない状態が増加してしまう可能性がある。
【００５９】
そこで、ＣＰＵ１１は、当該ステップＳ３３における座標変換を実行することで、識別標識の形状をカメラ４で撮像される撮像画像上の識別標識の形状に近づける。これにより、ＣＰＵ１１は、媒体ＭＭに印刷された仮想キーボード５０をカメラ４で撮像された撮像画像から検出することができる。
【００６０】
座標変換は，仮想キーボード５０とカメラ４の位置関係に応じて，媒体ＭＭ上の識別標識が，撮像画像上において変形する（歪む）ことに対応するためのものである。即ち，仮想キーボード５０とカメラ４の位置関係をパラメータ（座標変換パラメータ）として，媒体ＭＭ上の座標が撮像画像上の座標に変換される。座標変換後の識別標識（画像）と撮像画像を比較することで，識別標識の検出が容易となる。
【００６１】
なお、座標変換パラメータは、ＣＰＵ１１の演算処理能力などを考慮し、カメラ４で撮像される画角内において仮想キーボード５０を載置することが想定される位置からあらかじめ規定しておく。つまり、仮想キーボード５０を実用的に使用する位置に載置したと想定した場合のカメラ４と仮想キーボード５０との位置関係の範囲に，座標変換パラメータを規定しておく。この結果、ＣＰＵ１１の演算処理負荷を低減できる。
【００６２】
ステップＳ３４において、ＣＰＵ１１は、主メモリ２０ａに記憶されている撮像された撮像画像と、ステップＳ３３で座標変換した識別標識とを比較することで、撮像された撮像画像に該当する識別標識があるかどうかを判断する（識別標識の検出）。ＣＰＵ１１は、撮像された撮像画像から該当する識別標識を検出した場合には、ステップＳ４へと工程を進める。ＣＰＵ１１は、識別標識を検出できなかった場合には、ステップＳ３５へと工程を進める。
【００６３】
ステップＳ３５において、ＣＰＵ１１は、データベース上の識別標識に対する座標変換処理が全て終了したかどうかを判断する。ＣＰＵ１１は、座標変換処理が全て終了していない場合、ステップＳ３２へと工程を戻す。ＣＰＵ１１は、座標変換処理が全て終了した場合、ステップＳ７へと工程を進める。
【００６４】
（第２の検出手法：基準画像との比較による検出）
続いて、図９に示すフローチャートを用いて、第２の検出手法の動作について説明をする。
【００６５】
ステップＳ４１において、ＣＰＵ１１は、撮像された撮像画像を主メモリ２０ａに記憶させる。
【００６６】
ステップＳ４２において、ＣＰＵ１１は、ＳＳＤ１９に格納されているデータベースから、例えば、上述したような図７に示すような仮想キーボード画像データベースを読み出す。
【００６７】
上述したように、仮想キーボード画像データベースに、種別情報と対応付けられて格納されている仮想キーボード画像情報は、仮想キーボード５０を特定するための基準画像に用いることができる。
【００６８】
ステップＳ４３において、ＣＰＵ１１は、仮想キーボード画像データベースに格納されている仮想キーボード画像情報を読み出し、座標変換パラメータを用いて座標変換処理を実行する。
【００６９】
上述したように、仮想キーボード５０は、カメラ４に対して毎回一定の位置に載置されるわけではなく、ある程度ユーザの任意の位置に配置されることになる。つまり、カメラ４と仮想キーボード５０が印刷された媒体ＭＭとの位置関係によっては、仮想キーボード画像情報（基準画像）と撮像画像上の仮想キーボード５０が大きく異なり，仮想キーボード５０を検出できない可能性がある。
【００７０】
そこで、ＣＰＵ１１は、当該ステップＳ４３における座標変換により基準画像の形状を、カメラ４で撮像される撮像画像上の仮想キーボード５０の形状に近づける。これにより、ＣＰＵ１１は、媒体ＭＭに印刷された仮想キーボード５０をカメラ４で撮像された撮像画像から検出することができる。
【００７１】
例えば、図１で示したように仮想キーボード５０が情報処理装置１０に対して配置されていたとする。また、図７で示した仮想キーボード画像データベースに格納されている基準画像の仮想キーボード画像情報ＩＫＧ１が、図１０（ａ）に点線で示すような画像情報であったとする。このときの座標軸をＸ１，Ｙ１とする。
【００７２】
そして、ある座標変換パラメータにて、座標変換を実行した結果、この仮想キーボード画像情報ＩＫＧ１は、図１０（ｂ）に示すような座標軸Ｘ２，Ｙ２を変換座標とする基準画像になったとする。ＣＰＵ１１は、あらかじめ記憶している基準画像である仮想キーボード画像情報を座標変換することで、新たな基準画像である仮想キーボード画像情報を生成することになる。
【００７３】
なお、座標変換パラメータは、ＣＰＵ１１の演算処理能力などを考慮し、カメラ４で撮像される画角内において仮想キーボード５０を載置することが想定される位置からあらかじめ規定しておく。つまり、仮想キーボード５０を実用的に使用する位置に載置したと想定した場合のカメラ４と仮想キーボード５０との位置関係の範囲に，座標変換パラメータを規定しておく。この結果、ＣＰＵ１１の演算処理負荷を低減できる。
【００７４】
ステップＳ４４において、ＣＰＵ１１は、主メモリ２０ａに記憶されている撮像された撮像画像と、ステップＳ４３で座標変換した基準画像とを比較することで、撮像された撮像画像に仮想キーボード５０が存在するかどうかを判断する。
【００７５】
なお、撮像された撮像画像には、基準画像の全てが存在していなくてもよい。ＣＰＵ１１は、画像の一部が同一であれば、つまり撮像画像の一部と、基準画像の一部とが一致していれば、撮像画像中に仮想キーボード５０が存在すると判断する。
【００７６】
仮想キーボード５０がカメラ４で撮像され，撮像画像が生成される。ＣＰＵ１１によって、図１０（ｂ）に示すように座標変換された仮想キーボード情報（変換画像）が生成されたとする。ＣＰＵ１１は、撮像画像と変換画像を比較して，少なくとも一部が一致していれば，仮想キーボード５０が存在すると判断する。
【００７７】
ＣＰＵ１１は、撮像された撮像画像から基準画像を検出した場合には、ステップＳ４へと工程を進める。ＣＰＵ１１は、基準画像を検出できなかった場合には、ステップＳ４５へと工程を進める。
【００７８】
ステップＳ４５において、ＣＰＵ１１は、データベース上の仮想キーボード画像情報に対する座標変換処理が全て終了したかどうかを判断する。ＣＰＵ１１は、座標変換処理が全て終了していない場合、ステップＳ４２へと工程を戻す。ＣＰＵ１１は、座標変換処理が全て終了した場合、ステップＳ７へと工程を進める。
【００７９】
第１の検出手法、第２の検出手法のいずれを用いるかは、情報処理装置１０に搭載させる仮想キーボード検出プログラムによって決まる。いずれかの手法を固定的に用いるようにしてもよいし、ユーザによって選択可能なように用いるようにしてもよい。
【００８０】
ＣＰＵ１１は、上述したいずれかの検出手法によって仮想キーボード５０を検出した場合、工程をステップＳ４へと進める。ＣＰＵ１１は、仮想キーボード５０を検出できなかった場合、工程をステップＳ７へと進める。
【００８１】
（仮想キーボード５０が検出されなかった場合の処理）
再び、図４に示すフローチャートの説明へと戻る。ステップＳ７において、ＣＰＵ１１は、仮想キーボード５０が検出されなかった場合、カメラ４の被写体である仮想キーボード５０に照射されている光の照度が適切であるかどうかを判断する。
【００８２】
仮想キーボード５０に照射される光は、外界の自然光や室内の照明灯による光が考えられる。しかしながら、これらの光を調節することは容易ではない。このため、カメラ４の周囲の照度を照度センサ６で検出し、検出された照度に基づき，ＬＣＤ１のバックライトの輝度を調整することが考えられる。
【００８３】
ＣＰＵ１１は、照度センサ６から伝達される情報に基づき、仮想キーボード５０に照射されている光の照度が適切でないと判断した場合、輝度調節可能な範囲内（ステップＳ８）で、ＬＣＤ１のバックライトの輝度調節を実行（ステップＳ９）する。即ち，ＣＰＵ１１は，仮想キーボード５０を検出しないときに、ＬＣＤ１（表示部）上の輝度を増大させる輝度調節部として機能する。ＣＰＵ１１は、輝度調節を実行した場合、工程をステップＳ３へと戻す。
【００８４】
また、ＣＰＵ１１は、ステップＳ７において、光の照度が適切であると判断した場合、ステップＳ８において、輝度調節可能でないと判断した場合、ともにステップＳ１０へと工程を進める。
【００８５】
ＣＰＵ１１は、ＬＣＤ１のバックライトによる輝度調節が不可能な場合、仮想キーボード５０の印刷を促すダイアログボックスをＬＣＤ１に表示させるよう制御する。例えば、ＣＰＵ１１は、図１１に示すように、“キーボードが見つかりません。キーボードを印刷しますか？”というようなダイアログボックスＤ１を表示させる。即ち，ダイアログボックスＤ１は，仮想キーボードの印刷を促す情報を表す。
【００８６】
ダイアログボックスＤ１には、仮想キーボート５０を印刷するか否かをユーザが判断して入力するための“はい”、“いいえ”といったラジオボタンＲ１、Ｒ２も表示させる（ステップＳ１０）。
【００８７】
これに応じて、ユーザが、仮想キーボード５０を印刷すると判断した場合（ステップＳ１１）、ＣＰＵ１１は、ＳＳＤ１９のデータベースから図７に示した仮想キーボード画像データベースを読み出す。ＣＰＵ１１は、このデータベースから仮想キーボード５０の画像や種別といった情報をＬＣＤ１に一覧表示させることで、ユーザが所望する仮想キーボード５０の選択を促すようにしてもよい。
【００８８】
そして、ステップＳ１２において、ＣＰＵ１１は、ユーザによって選択された仮想キーボード５０を特定し、媒体ＭＭに対して印刷を実行するように指示をする。ＣＰＵ１１に印刷実行の指示がなされると、通信コントローラ１７、通信部１８が制御され、通信可能な外部の印刷装置との接続がなされ、指示された仮想キーボード５０が媒体ＭＭに印刷される。
【００８９】
このように、仮想キーボード５０が検出されなかった場合には、ユーザの所望する仮想キーボード５０を容易に印刷できる。
【００９０】
（入力不備状態の検出）
ステップＳ４において、ＣＰＵ１１は、撮像された撮像画像に存在する仮想キーボード５０をユーザによって操作された場合に、操作された旨を認識できる操作可能状態かどうかを判断する。
【００９１】
基本的に、ＣＰＵ１１は、撮像された撮像画像に仮想キーボード５０の全てのキーが存在していれば、各キーに対して操作がなされたかどうかを画像認識することができる。つまり、仮想キーボード５０の操作可能状態とは、各キーの位置が当該情報処理装置１０のＣＰＵ１１によって把握されている状態であり、この状態にない場合には入力不備状態にあると判断される。
【００９２】
ＣＰＵ１１は、仮想キーボード５０が入力不備状態ではなく操作可能状態である場合には、ステップＳ５へと工程を進め、入力不備状態であり操作可能状態でない場合には、ステップＳ１３へと工程を進める。
【００９３】
仮想キーボード５０を印刷する媒体ＭＭ上に、境界標識を印刷することで，入力不備状態であるかどうかを判断可能とできる。
【００９４】
境界標識とは、媒体ＭＭに印刷された仮想キーボード５０において、仮想キーボード５０の入力操作をするために必要となるキーが印刷された領域の際（キワ）、つまり入力可能な領域と、入力不備な領域との境界を識別するための標識である。
【００９５】
この境界標識は、データベースにあらかじめ記憶させておくためどのようなものでもよいが、その印刷位置が重要となる。ＣＰＵ１１は、撮像された撮像画像からこの境界標識を検出することで仮想キーボード５０が入力不備であるかどうかを判断する。したがって、この境界標識は、仮想キーボード５０を印刷した媒体ＭＭにおいて、キーが印刷された領域、つまりキー入力が可能な領域（キー入力可能領域）を特定できる領域を囲むように配置される。
【００９６】
例えば、図１２に示すように媒体ＭＭに仮想キーボード５０が印刷されているとすると、仮想キーボード５０のキー入力可能領域を囲む位置として媒体ＭＭの４隅、Ａ１、Ｂ１、Ｃ１、Ｄ１が考えられる。この４隅それぞれに対して境界標識Ｂ１ａ、Ｂ１ｂ、Ｂ１ｃ、Ｂ１ｄを付与すると、仮想キーボード５０のキー入力可能領域を囲むことができる。
【００９７】
入力不備状態を検出するには、キー入力可能領域の一部のみだけが検出されている状態であればよい。図１２においては、４隅に付与された境界標識のうち、３隅のみしか検出できない場合、入力不備状態であると判断することができる。
【００９８】
ここで、図１３に示すフローチャートを用いて、入力不備状態であり操作可能状態でない場合を検出する手法について説明をする。
【００９９】
ステップＳ５１において、ＣＰＵ１１は、ＳＳＤ１９に格納されているデータベースから、例えば、図１４に示すような境界標識データベースを読み出す。
【０１００】
図１４に示すように境界標識データベースは、境界標識に対して、少なくともキー入力不備条件を対応付けたデータベースである。境界標識は、上述したようにキー入力可能領域を囲むように印刷される標識である。つまり境界標識は、それ自身、キー入力可能範囲との位置関係を表す情報を保持しているものとする。キー入力不備条件とは、境界標識が検出された場合に入力不備状態となる最大個数を示したものである。
【０１０１】
例えば、図１２において，仮想キーボード５０の４隅に境界標識が印刷されている場合を考える。境界標識が４個全て検出されれば、全てのキー入力可能領域が撮像されているため入力可能状態であるといえる。これに対して境界標識が最大３個だけ検出されたとすると、一部のキー入力可能領域のみ撮像されているため入力不備状態であるといえる。
【０１０２】
ステップＳ５２において、ＣＰＵ１１は、境界標識データベースに格納されている境界標識を読み出し、座標変換パラメータを用いて座標変換処理を実行する。
【０１０３】
ＣＰＵ１１は、既に前段において、例えば第１の検出方法のステップＳ３３、第２の検出方法のステップＳ４３において、座標変換処理を実行しているため座標変換パラメータの値を流用し、境界標識に対する座標変換処理を実行することになる。したがって、座標変換処理についての詳細については省略をする。
【０１０４】
ステップＳ５３において、ＣＰＵ１１は、主メモリ２０ａに記憶されている撮像画像と、ステップＳ５２で座標変換した境界標識とを比較することで撮像された撮像画像に該当する境界標識があるかどうかを判断する。ＣＰＵ１１は、撮像された撮像画像から該当する境界標識を検出した場合には、ステップＳ５４へと工程を進め、境界標識を検出できなかった場合には、ステップＳ５２へと工程を戻す。
【０１０５】
ステップＳ５４において、ＣＰＵ１１は、境界標識を検出したことに応じて、境界標識データベースを参照する。
【０１０６】
ＣＰＵ１１は、検出した境界標識に対応付けて格納されているキー入力不備条件から、検出した境界標識の数がキー入力不備条件の数を超えているかどうかを判断する。
【０１０７】
ＣＰＵ１１は、検出した境界標識の数がキー入力不備条件の数を超えている場合、キー入力可能領域が特定され操作可能状態であると判断し、ステップＳ５へと工程を進める。
【０１０８】
また、ＣＰＵ１１は、検出した境界標識の数がキー入力不備条件の数を超えていない場合、キー入力可能領域が特定されていない入力不備状態であると判断し、ステップＳ１３へと工程を進める。即ち，ＣＰＵ１１は，仮想キーボードの入力不備状態を検出する不備状態検出部として機能する。
【０１０９】
以上では，仮想キーボード５０の４隅に境界標識が印刷されているとした。これに対して，境界標識の個数を３つとしても良い。３つ以上の点（境界標識）を特定することで，仮想キーボード５０の位置を特定できるからである。
【０１１０】
このように、図１３のフローチャートを用いて説明したように、仮想キーボード５０が操作可能状態であるか、つまり入力不備状態にないかどうかは、境界標識を用いて判断できる。但し，以下のように境界標識を用いなくとも，入力不備状態にないかどうかを判断できる。
【０１１１】
例えば、上述した第２の検出手法のようにカメラ４で撮像された撮像画像と基準画像とを比較する。そして，撮像画像内に仮想キーボード５０のキー入力可能領域の画像が存在するかどうかを検出すれば、操作可能状態であるのか、入力不備状態にあるのかどうかを判断できる。
【０１１２】
このように、第２の検出手法を用いる場合、境界標識を用いて入力不備状態を検出できる。また，撮像画像と基準画像とを比較することで，入力不備状態を検出してもよい。
【０１１３】
また、第１の検出手法にて用いた識別標識と、この境界標識とを共通化することもできる。つまり、仮想キーボード５０のキー入力可能領域を示す機能を有する境界標識に，仮想キーボード５０を特定する識別標識としての機能を持たせてもよい。媒体ＭＭに印刷する情報量を減少させることができるため，美観の点でも優れている。
【０１１４】
再び、図４に示すフローチャートの説明へと戻る。仮想キーボード５０が操作可能状態である（入力不備状態でない）場合、ステップＳ５において、ＣＰＵ１１は、キー対応テーブル（仮想キーボード５０の複数のキーそれぞれの位置を撮像画像内で特定するテーブル）を生成する。
【０１１５】
生成されるキー対応テーブルは、仮想キーボード５０に対してキー入力があった場合に、その入力状態を検出するために用いるものである。入力状態を検出できれば，キー対応テーブルは、どのようなものであってもよい。ここでは、キー対応テーブルは，撮像画像にＸＹ座標軸を設定し、複数のキーがそれぞれＸＹ座標のどの座標領域にあるかを対応づけたテーブルとする（図１５参照）。これにより、ＣＰＵ１１は、撮像画像上の仮想キーボード５０の画像に変化があった場合，対応する座標領域からどのキーに入力があったのかを判断できる。
【０１１６】
このキーボード検出プログラムにおいて生成されるキー対応テーブルの値は、後で詳細に説明する仮想キーボード５０の位置ズレにおける初期値となる初期状態である。
【０１１７】
ステップＳ６において、ＣＰＵ１１は、仮想キーボード５０が検出され、操作可能状態となったことに応じて、ユーザによる仮想キーボード５０の操作を許可する。これにより、ユーザは、仮想キーボード５０を介して，情報処理装置１０に情報を入力できる。
【０１１８】
（仮想キーボード５０の位置修正）
ステップＳ１３において、ＣＰＵ１１は、仮想キーボード５０が入力不備状態であることに応じて、カメラ４で撮像された撮像画像内において仮想キーボード５０がどの位置に存在するのかをユーザに提示する。
【０１１９】
この提示にはインジケータＩを用いることができる。既述のように、インジケータＩは、カメラ４で撮像された撮像画像内における仮想キーボード５０の位置を提示するための情報提示機能を有する。
【０１２０】
図１６に、インジケータＩの表示パターンの一例を示す。例えば、図４のフローチャートにおいて、仮想キーボードへと移行したタイミングでは、インジケータＩは図１６（ａ）のように表示される。
【０１２１】
図４のフローチャートにおいて、仮想キーボードの位置が、入力不備状態ではなく操作可能状態である場合には、図１６（ｂ）に示すように、インジケータＩ内を全てハイライト表示する。この場合，カメラ４で撮像された撮像画像内に仮想キーボード５０が存在する。インジケータＩにより、ユーザは、仮想キーボード５０が、情報処理装置１０に対してどのように認識されているのかを視覚的に一瞥して把握できる。
【０１２２】
これに対し、図１６（ｃ）では、仮想キーボード５０がカメラ４で撮像された撮像画像、ＸＹ領域内において左上方に位置していることを示している。この場合，仮想キーボード５０は，検出されているが、入力不備状態である。
【０１２３】
したがって、ユーザは、インジケータＩを参照しながら、例えば、図１６（ｃ）に示すＦ方向へと仮想キーボード５０の位置を修正することになる。即ち，図１６（ｃ）のインジケータＩは，仮想キーボードの位置の修正を促す情報を表す。
【０１２４】
ステップＳ１４において、ＣＰＵ１１は、仮想キーボード５０の位置が修正された場合、仮想キーボード５０の入力不備状態が解消され、操作可能状態となるためステップＳ５へと工程を進める。また、ＣＰＵ１１は、仮想キーボード５０の位置が修正されなかった場合、工程をステップＳ１５へと進める。
【０１２５】
ステップＳ１５において、ＣＰＵ１１は、仮想キーボードモードへと移行してからカウントしている時間に基づき、仮想キーボード５０を検出するまでの時間がタイムアウトかどうかを判断する。ＣＰＵ１１は、タイムアウトでない場合には工程をステップＳ４へと戻し、タイムアウトである場合には、仮想キーボードモードを終了する。
【０１２６】
このようにして、ＣＰＵ１１は、ＳＳＤ１９に格納されている仮想キーボード検出プログラムを読み込み実行することで、仮想キーボード５０を検出する。仮想キーボード５０を検出できない場合、ＣＰＵ１１は、所望の仮想キーボード５０を印刷することができる。ユーザは、情報処理装置１０のみを携帯しているだけでよく、キーボードを持ち歩くことなく、キーボードと実質的に同様の入力が可能となる。
【０１２７】
＜仮想キーボード５０による入力の検出＞
次に、図１７に示すフローチャートを用いて、ＣＰＵ１１で実行される入力検出プログラムの動作について説明をする。なお、ＣＰＵ１１は、上述した仮想キーボード検出プログラムを実行し、仮想キーボード５０による操作を許可してから、当該入力検出プログラムを実行することになる。
【０１２８】
ステップＳ６１において、ＣＰＵ１１は、カメラコントローラ１４を制御し、カメラ４による撮像を開始させる。撮像された撮像画像は、所定の時間間隔で主メモリ２０ａに一時的に格納されていく。
【０１２９】
ステップＳ６２において、ＣＰＵ１１は、ＳＳＤ１９に格納されているデータベースから、例えば、図１８（a）、（ｂ）に示すようなハンド形状画像データベース（左）、ハンド形状画像データベース（右）を読み出す。
【０１３０】
図１８（ａ）、（ｂ）は、それぞれ一般的な人の手の左右の形状の画像情報をそれぞれ別個に格納したデータベースである。具体的には、仮想キーボード５０上に手を載置し、カメラ４から撮像した際に想定される手の形状であるハンド形状画像情報を格納したデータベースである。このデータベースは、ユーザが仮想キーボード５０に対してキー入力する際に想定される手の形状、例えば、５指なのか、１指のみなのかまで考慮して格納されている。
【０１３１】
なお、キー入力に対しては、手の形状はもちろんだが、特に指先が関係してくるため指先の形状の画像情報を中心としたデータベースを構成することで，情報量を減らし、メモリ資源、演算処理への負荷を低減できる。
【０１３２】
以下においては、説明のため図１８（ａ）、（ｂ）をまとめて、単にハンド形状画像データベースとも呼ぶ。
【０１３３】
このように、ハンド形状画像データベースに格納されているハンド形状画像情報は、仮想キーボード５０が備えるキーに対して入力する指先を特定するための基準画像に用いられる。
【０１３４】
ステップＳ６３において、ＣＰＵ１１は、ハンド形状画像データベースに格納されているハンド形状画像情報に対して、仮想キーボード検出プログラムにおいて求められた座標変換パラメータを用い座標変換する。これにより、仮想キーボード５０と同じ座標空間上において指先の検出が可能となる。
【０１３５】
ステップＳ６４において、ＣＰＵ１１は、主メモリ２０ａに格納される撮像画像から、仮想キーボード５０上に指先が存在するかどうかを検出する。この指先の検出処理は、ハンド形状画像データベースに格納されている全てのハンド形状画像情報を対象として実行される。即ち、仮想キーボード５０上に載置されている全ての指先を検出できる。
【０１３６】
ＣＰＵ１１は、指先を検出した場合にはステップＳ６４へと工程を進め、指先を検出できなかった場合には工程をステップＳ６３へと戻す。
【０１３７】
ステップＳ６５において、ＣＰＵ１１は、検出された指先、全てに対して撮像画像上での座標、つまり撮像画像上における位置を特定する。即ち，ＣＰＵ１１は，操作者の指先の位置を検出する位置検出部として機能する。
【０１３８】
ＳＳＤ１９は、上述した仮想キーボード検出プログラムを実行したことで、図１５で示したようなキー対応テーブルを保持している。したがって、ＣＰＵ１１は、キー対応テーブルを参照することで、当該ステップＳ６５で検出した指先の位置と、仮想キーボード５０の各キーの位置とを１対１で対応付けて把握することができる。
【０１３９】
これにより、撮像画像の指先の位置が、どの方向へと移動したかを検出すれば、ユーザによる仮想キーボード５０への入力を間接的に検出することが可能となる。
【０１４０】
ステップＳ６６において、ＣＰＵ１１は、撮像画像の指先の位置が、仮想キーボード５０に向かう方向へと移動したかどうかを判断する。即ち，ＣＰＵ１１は，操作者の指先の移動を検出する指先移動検出部として機能する。撮像画像の指先の位置が移動した場合、ユーザは、仮想キーボード５０のキーに対する入力操作を開始した可能性が高くなる。
【０１４１】
ステップＳ６７において、ＣＰＵ１１は、撮像画像の指先の位置の移動タイミングにて、マイク５を介して所定の周波数の音が検出されるかどうかを判断する。
【０１４２】
所定の周波数の音とは、媒体ＭＭを指先で叩いた際に検出される音の周波数などである。また、媒体ＭＭを、例えば、机、膝の上など載置する箇所において叩いた際に検出される音の周波数なども対象とすると検出確率を高くすることができる。このような音情報は、あらかじめ集音されサンプリングされてＳＳＤ１９に格納されている。
【０１４３】
ＣＰＵ１１は、所定の周波数の音が検出された場合には、ステップＳ６８へと工程を進め、検出されない場合にはステップＳ６６へと工程を戻す。
【０１４４】
ステップＳ６８において、ＣＰＵ１１は、指先の移動方向と、入力音の検出とに応じて、ユーザの指による仮想キーボード５０に対する入力が開始されたと判断する。即ち，ＣＰＵ１１は、仮想キーボード５０への入力の開始を検出する開始検出部として機能する。
【０１４５】
但し，仮想キーボード５０への入力の開始の検出にあたって，入力音の検出の検出を省略しても良い（ステップＳ６７が省略される）。この場合，仮想キーボード５０に向かう方向への指先の移動が検出されることで，ＣＰＵ１１は，仮想キーボード５０への入力が開始されたと判断する。
【０１４６】
ステップＳ６９において、ＣＰＵ１１は、撮像画像の指先の位置が、仮想キーボード５０から離れる方向、つまり仮想キーボード５０へ向かう方向とは逆方向へと移動しかたかどうかを判断する。このように、撮像画像の指先の位置が移動した場合、ユーザは、仮想キーボード５０のキーに対する入力操作を終了したことを意味する。
【０１４７】
ステップＳ７０において、ＣＰＵ１１は、指先の移動方向に応じて、ユーザの指による仮想キーボード５０に対する入力が終了したと判断する。即ち，ＣＰＵ１１は、仮想キーボード５０への入力の終了を検出する終了検出部として機能する。
【０１４８】
このようにして、情報処理装置１０のＣＰＵ１１は、ＳＳＤ１９に格納されている入力検出プログラムを読み込み実行することで、仮想キーボード５０に対するユーザによる入力を検出することができる。ユーザは、情報処理装置１０のみを携帯しているだけでよく、キーボードを持ち歩くことなく、キーボードと実質的に同様の入力が可能となる。
【０１４９】
（位置ズレの検出）
ところで、ＣＰＵ１１は、このような入力検出プログラムを実行している際、仮想キーボード検出プログラムにおいて検出された位置からの、仮想キーボード５０の位置ズレを検出する。
【０１５０】
仮想キーボード５０が表される紙などの媒体ＭＭは，情報処理装置１０に対して固定的に配置されているとは限らない。例えば、風などで位置ズレしてしまったり、入力作業中に位置ズレしてしまったりする場合などが想定される。
【０１５１】
そこで、このような位置ズレに対処するため、ＣＰＵ１１は、入力検出プログラムを実行している際には、位置ズレを検出する位置ズレ検出プログラムを実行している。
【０１５２】
そこで、図１９に示すフローチャートを用いて、ＣＰＵ１１によって実行される位置ズレ検出プログラムの動作について説明をする。
【０１５３】
まず、ステップＳ８１において、ＣＰＵ１１は、撮像された撮像画像から仮想キーボード５０の位置ズレを検出する。
【０１５４】
例えば、媒体ＭＭに境界標識が印刷されていない場合には、ＣＰＵ１１は，撮像されている撮像画像における仮想キーボード５０全体の位置ズレを検出する。また、媒体ＭＭに境界標識が印刷されている場合には、ＣＰＵ１１は，境界標識が移動したかどうかで位置ズレを検出する。即ち，ＣＰＵ１１は，境界標識いずれかの移動を検出する標識移動検出部として機能する。
【０１５５】
ステップＳ４では，４つの境界標識を用いて，操作可能状態か否かを判断している。仮想キーボード５０の初期位置の設定には，３つ以上の点（境界標識）を特定する必要がある。これに対して，位置ズレの検出には，２つの境界標識のみの移動の有無を判断すれば足りる。仮想キーボード５０の初期位置からの移動は，通常，媒体ＭＭが置かれた平面上で行われるため，移動後の位置の判定には，より少ない点（境界標識）の特定で足りると考えられる。
【０１５６】
ステップＳ８２において、ＣＰＵ１１は、位置ズレを検出したことに応じてＳＳＤ１９に格納されているキー対応テーブルの値を更新する。
【０１５７】
ステップＳ８３において、ＣＰＵ１１は、入力検出プログラムが終了したかどうかを判断し、終了した場合には当該位置ズレ検出プログラムも終了し、終了していない場合にはステップＳ８１へと工程を戻す。
【０１５８】
このようにして、ＣＰＵ１１は、媒体ＭＭに印刷された仮想キーボード５０の位置ズレを検出したことに応じて、キー対応テーブルを随時更新する。この結果、ユーザによる仮想キーボード５０へのキー入力操作を常に良好に検出できる。
【０１５９】
（変形例）
上述したように、本実施形態として示す情報処理装置１０では、被写体を撮像する撮像素子としてカメラ４を１台のみ設ける例を示した。これに対し、例えば、図１に点線で示す位置Ｃ１、Ｃ２のように複数個所にそれぞれ撮像素子を設けるようにしてもよい。
【０１６０】
このように情報処理装置１０に撮像素子を複数設けるようにする場合、ＣＰＵ１１は、撮像される撮像画像を画像処理により立体的に把握することが可能となる。したがって、撮像素子としてカメラ４を１台のみ設けた場合よりも空間把握能力が向上する。これにより、特に入力検出プログラムにおけるユーザによる仮想キーボード５０への入力の検出を向上させることができる。
【０１６１】
（仮想タッチパッド）
以上、ユーザが入力する入力装置として仮想キーボード５０を用いて説明した。しかし，本実施形態はこれに限定されるものではなく、例えば、キーボードといった特定の操作子などを保持しないタッチパッド、つまり仮想タッチパッドなどとしてもよい。つまり、仮想タッチパッドには、キーボードなどが全く印刷されていない。
【０１６２】
仮想キーボード５０に代えて、仮想タッチパッドを用いた場合においても、当該仮想タッチパッドの検出、仮想タッチパッドへの入力検出といった処理は、実質的に同様であるため説明を省略する。
【０１６３】
このようにして、情報処理装置１０のＣＰＵ１１は、ＳＳＤ１９に格納されている入力検出プログラムを読み込み実行することで、仮想タッチパッドに対するユーザによる入力操作を検出できる。これにより、ユーザは、情報処理装置１０のみを携帯しているだけでよく、他の外部入力機器を常に持ち歩くことなく、外部入力機器と同等の利便性を享受することができる。
【０１６４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６５】
１  ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、
２     タッチパネル
３     電源スイッチ
４     カメラ
５     マイク
６     照度センサ
１０   情報処理装置
１１  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
１２   ブリッジデバイス
１３   グラフィクスコントローラ
１４   カメラコントローラ
１５   マイクコントローラ
１６   センサインターフェース
１７   通信コントローラ
１８   通信部
１９  ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）
２０ａ 主メモリ
２２   タッチパネルコントローラ
２３   電源回路
２４   バッテリ
２５   アダプタ
５０   仮想キーボード
１００ 印刷装置
【図１】
2014109876.tif 000003
【図２】
2014109876.tif 000004
【図３】
2014109876.tif 000005
【図４】
2014109876.tif 000006
【図５】
2014109876.tif 000007
【図６】
2014109876.tif 000008
【図７】
2014109876.tif 000009
【図８】
2014109876.tif 000010
【図９】
2014109876.tif 000011
【図１０】
2014109876.tif 000012
【図１１】
2014109876.tif 000013
【図１２】
2014109876.tif 000014
【図１３】
2014109876.tif 000015
【図１４】
2014109876.tif 000016
【図１５】
2014109876.tif 000017
【図１６】
2014109876.tif 000018
【図１７】
2014109876.tif 000019
【図１８】
2014109876.tif 000020
【図１９】
2014109876.tif 000021