以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してあり、それらの名称および機能も同じである。従って、重複説明を繰り返さない。
<概略>
図1は、本実施形態の情報処理装置の概略を示した図である。図1の例では、ユーザは右利きであり、右手204でスタイラスペン202を把持し、情報処理装置の表示手段に対して、スタイラスペン202で、画像を手書き入力している。
ここで、情報処理装置の表示手段は、ユーザから手書き入力を受け付けた位置に、手書き入力された画像を表示させるものであり、例えばタッチパネルディスプレイである。また、画像は、文字、記号、図形などを含む。図1(A)は、ユーザが縦書きでタッチパネルに手書き入力をしている図を示している。図1(B)は、ユーザが縦書きによる手書き入力を続けて2行目の文字入力をしている図を示している。
図1(A)の例は、ユーザが手書き入力した画像として文字「ま」、文字「う」を示している。また、スタイラスペン202の他に、ユーザが表示領域(入力領域)312aに対して画像を手書き入力できれば、他の手段を用いてもよく、例えば、ユーザは、ユーザの指で手書き入力してもよい。
本実施形態では、ユーザが縦書きの1行目の1つ目に手書き入力した画像を第1画像401として示している。同様に、ユーザが1行目の2つ目に手書き入力した画像を第2画像402として示しており、ユーザが1行目の3つ目に手書き入力した画像を第3画像403として示している。図1(A)の例では、第1画像401は文字「ま」であり、第2画像402は文字「う」であり、第3画像403は文字「え」である。
なお、図1(A)および図1(B)の例では、第1画像401や第2画像402を明確化するために、右手204およびスタイラスペン202を透明化して示している。また、第1画像401と、第2画像402と、第3画像403とのそれぞれは、例えば、1つの独立した文字や記号である。また、本実施形態において、図1に示す原点、x軸、y軸、右端、左端、右方向、および左方向は、スタイラスペン202を扱う(手書き入力を行なう)ユーザから見た原点(図1に示すように、x軸およびy軸からなる2次元座標の原点を、ユーザから見た表示領域312aの左下の角の点とする)、x軸、y軸、右端、左端、右方向、および左方向である。
また、ユーザが手書き入力を続けている間、情報処理装置は、ユーザの入力内容を一時的に保持する縦書き用バッファ領域304に、ユーザが手書き入力した画像をバッファ保持画像510として記憶する。
また、ユーザがスタイラスペン202により、第1画像401を手書き入力した位置を第1位置401aとする。同様に、ユーザがスタイラスペン202により、第2画像402を手書き入力した位置を第2位置402aとし、第3画像403を手書き入力した位置を第3位置403aとする。また、第1位置401aから第2位置402aに向かう方向を「第1方向α」とする。つまり、ユーザが第1画像401および第2画像402を手書き入力する方向が第1方向αである。ユーザが第1方向αに向かって手書き入力をし続けている間、情報処理装置は、ユーザが手書き入力した画像を、縦書き用バッファ領域304においてバッファ保持画像510として蓄積する。
図1(A)に示すように、ユーザが縦書きによって手書き入力する画像(第1画像401等)が日本語であり、かつ、ユーザが右利きの場合には、ユーザは、一般的に、ユーザから見てY軸の負方向α(下方向)に第1画像401および第2画像402を手書き入力する。また、ユーザは、縦書きによる文字入力時に改行する場合、ユーザから見てX軸の負方向β(左方向)に手を移動させて文字入力を続ける。
したがって、ユーザは、縦書きによる文字入力時に改行すると、現在手書き入力している文字以前に手書き入力された文字が、ユーザの右手204により覆われることにより、ユーザは画像を目視できない。図1(B)の例では、ユーザが1行目に画像文字「ま」、文字「う」、文字「え」を手書きにより入力し、2行目を書き始める状態を示す。
ユーザが手書き入力した文字を目視できない場合には、手書き入力処理の効率が低下する場合がある。そこで、本実施形態の情報処理装置は、縦書きによる手書き入力を受け付けており、ユーザが改行した場合に、縦書き用バッファ領域304に格納されるバッファ保持画像510の記憶内容を出力し、表示領域312aの左端にアシスト画像表示領域210を表示させる。
ここで、第1アシスト画像601は、第1画像401に基づくものである。図1の例では、第1アシスト画像601は、第1画像401の文字「ま」と形状、大きさともに同一の画像である。また、第2アシスト画像602は、第2画像402に基づくものであり、第2画像402の文字「う」と形状、大きさともに同一の画像である。また、第3アシスト画像603は、第3画像403に基づくものであり、第3画像403の文字「え」と形状、大きさともに同一の画像である。また、第1アシスト画像601、第2アシスト画像602、および第3アシスト画像603はアシスト画像表示領域210に囲まれて表示される。また、ユーザが2行目を書き始めることにより、ユーザが入力した画像と形状、大きさともに同一の画像が画像表示領域611に表示される(図1(B)では、ユーザが2行目の文字の手書き入力を書き始める状態であるため、画像表示領域611は仮想的な大きさを示している)。
これにより、ユーザは、手書き入力された画像(第1画像401等)と、表示された画像(第1アシスト画像601等)との区別がつきやすくなる。
<ハードウェア構成>
図2を参照して、本実施形態の情報処理装置100のハードウェア構成を説明する。図2は、情報処理装置100のハードウェア構成例を示したブロック図である。図2の例では、情報処理装置100は、CPU(Central Processing Unit)302と、RAM(Random Access Memory)304と、ROM(Read Only Memory)306と、EEPROM(Electronically Erasable and Programmable Read Only Memory)308と、通信部310と、表示装置312と、操作部314と、外部メディアI/F(Interface)部316と、を含む。
CPU302は、ROM306に格納されているプログラムや各種データに基づいて、処理を行なう。RAM304は、ROM306から読み出された各種プログラムや各種データを一時保持する。ROM306は、情報処理装置100の起動時に実行されるプログラムや各種データを格納する。
通信部310は、他の通信機器と通信する。操作部314は、ユーザからの操作を受け付ける。表示装置312は、例えばタッチパネル機能を備えるディスプレイである。従って、表示装置312は、概念的に、操作部314の一部を含む。
外部メディアI/F部316は、情報処理装置100と、外部メディア318(例えばSD(Secure Digital)メモリーカードなど)とのインタフェースの役割を果たす。
<実施形態1の機能構成例>
次に、図3を参照して、実施形態1の機能構成例について説明する。図3は、実施形態1の機能構成例を示した図である。また、以下では、画像を文字という場合もある。
図3の例では、情報処理装置100Aは、表示装置312と、座標検出部108と、表示制御部110と、座標記憶部112と、方向検出部114と、取得部116と、認識部118と、辞書記憶部111と、手書き検出部106と、を含む。表示装置312は、入力受付部102と表示部104とを含む。
入力受付部102および表示部104は例えば、それぞれ薄板形状である。表示装置312は、入力受付部102と表示部104とが積層されることにより構成される。また、表示装置312は、表示領域312a(図1参照)を含む。表示領域312aには、ユーザが手書き入力した第1画像等、様々な情報が表示される。図1の例では、入力受付部102の入力領域が表示領域312aである。
入力受付部102は、スタイラスペン202などによって、ユーザによる第1画像401(図1参照)等の手書き入力操作などを受け付ける。入力受付部102は、例えば静電容量方式のタッチパネルである。ユーザは、スタイラスペン202を入力受付部102に接触させることにより、手書き入力操作を行なう。また、入力受付部102は、透明である。ユーザは、入力受付部102の下層に配置される表示部104に表示される画像や情報を目視できる。
座標検出部108は、ユーザから入力受付部102への手書き入力操作を受けると、表示領域312a内において、スタイラスペン202が接触された位置(点)の座標を所定時間(例えば、0.1秒)毎に検出する。座標検出部108は、検出した座標を表示制御部110および認識部118へ出力する。
認識部118は、辞書記憶部111に記憶されている文字辞書、および、座標検出部108から出力された複数の座標に基づいて、手書き入力された文字を認識する。認識部118は、文字の認識手法として、種々の認識手法を用いればよい。例えば、認識部118は、複数の座標と文字辞書とを用いて、パターンマッチング処理を行うことにより、手書き入力された文字を認識する。また、辞書記憶部111として、例えば、ROM306を用いればよい。
座標記憶部112は、認識部118が認識した文字ごとに、座標の集合を記憶する。図4は、座標記憶部112に記憶された座標の集合を模式的に示した図である。また、座標記憶部112は、縦書き用バッファ領域304を含んでおり、認識部118が認識した文字を、縦書き用バッファ領域304において保持する。図4を参照して、座標記憶部112の記憶形態を説明する。
図4の例では、座標記憶部112は、第1画像である文字「ま」について、文字「ま」を構成する複数点それぞれの座標(608,581)(609,582)・・・を記憶している。また、座標記憶部112は、第1画像である文字「う」について、文字「う」を構成する複数点それぞれの座標(608,566)(609,565)・・・を記憶している。なお、図1で説明したように、原点、x軸、およびy軸は、スタイラスペン202を扱うユーザから見た原点、x軸、およびy軸である。
再び図3を用いて情報処理装置100Aの構成の説明を続ける。表示制御部110は、座標検出部108により検出された座標に基づいて、スタイラスペン202の手書き入力の軌跡を表示部104に表示する。ユーザは、表示部104に表示された手書き入力の軌跡(第1画像401等)を目視することにより、ユーザが手書き入力した画像を認識することができる。表示制御部110は、入力受付部102が手書き入力を受け付けた位置に応じて、手書き入力された画像を表示部104に表示する。
<方向検出>
次に、方向検出部114による方向検出処理について説明する。方向検出部114は、座標記憶部112に記憶されている座標の集合に基づいて、第1方向α(図1参照)を検出する。ここで、第1方向αとは、ユーザにより画像が手書き入力される方向である。例えば、図1の例では、第1方向αは、Y軸の負方向(スタイラスペン202を扱うユーザから見て下方向)である。以下では、右方向、左方向、上方向、下方向は、全てスタイラスペン202を扱うユーザから見た方向であるとする。
また、右方向は、X軸の正方向であり、左方向は、X軸の負方向である。また、上方向は、Y軸の正方向であり、下方向はY軸の負方向である。
次に、方向検出部114による方向検出手法の具体例について説明する。方向検出部114は、基準となる文字(図4の例では、文字「ま」)の、X座標の最大値Xmax1およびY座標の最大値Ymax1を取得する。また、方向検出部114は、基準となる文字の次に、認識部118により認識された文字(図4の例では、文字「う」)の、X座標の最大値Xmax2およびY座標の最大値Ymax2を取得する。
方向検出部114は、Ymax1とYmax2とを比較する。ここで、方向検出部114が、Ymax1≧Ymax2であると判断すると、方向検出部114は、第1方向が下方向であると判断する。一方、方向検出部114が、Ymax1<Ymax2であると判断すると、方向検出部114は、第1方向が上方向であると判断する。
方向検出部114は、Xmax1とXmax2とを比較する。ここで、方向検出部114が、Xmax1≦Xmax2であると判断すると、方向検出部114は、第1方向が右方向であると判断する。一方、方向検出部114が、Xmax1>Xmax2であると判断すると、方向検出部114は、第1方向が左方向であると判断する。
方向検出部114は、基準となる文字の、X座標の平均値Xavg1およびY座標の平均値Yavg1を取得する。また、方向検出部114は、基準となる文字の次に手書き入力された文字の、X座標の平均値Xavg2およびY座標の平均値Yavg2を取得する。
方向検出部114は、Yavg1とYavg2とを比較する。ここで、方向検出部114が、Yavg1≧Yavg2であると判断すると、方向検出部114は、第1方向が下方向であると判断する。一方、方向検出部114が、Yavg1<Yavg2であると判断すると、方向検出部114は、第1方向が上方向であると判断する。
方向検出部114は、Xavg1とXavg2とを比較する。ここで、方向検出部114が、Xavg1≦Xavg2であると判断すると、方向検出部114は、第1方向が右方向であると判断する。一方、方向検出部114が、Xavg1>Xavg2であると判断すると、方向検出部114は、第1方向が左方向であると判断する。
この方向検出部114の方向検出手法により、第1方向α(図1参照)を検出できる。方向検出部114は、第1方向を検出して、第1方向を表す方向情報を生成する。方向検出部114は、生成した方向情報を、表示制御部110へ出力する。
<手書き情報>
次に、手書き情報について説明する。手書き情報は、右手または左手のうち、ユーザがスタイラスペン202を保持している手を表す情報である。以下に、手書き情報の生成手法について説明する。また、本明細書において、手書き情報が右手を表す情報である場合には、「ユーザは右利きである」と言及し、手書き情報が左手を表す情報である場合には、「ユーザは左利きである」と言及する場合がある。
本実施形態では、手書き検出部106は、表示領域312a上のユーザの手の位置を検出する。ここで、「表示領域312a上」は、ユーザの手が表示領域312aに接触している場合もあり、また、ユーザの手が表示領域312aから離れている場合もある。
また、ユーザの手の位置の検出方法として、例えば、赤外線や超音波をプローブに利用する場合であれば、手書き検出部106を表示装置312の周囲に配置し、赤外線や超音波の反射波の変動を電気信号として検出する。
図5を参照して手書き検出部106の検出手法の一例を説明する。図5は、手書き検出部106の検出手法例を示した図である。図5の例では、手書き検出部106は、表示領域312aの周囲に配置された赤外線センサを含む。また、赤外線センサのセンサ領域を右半分と左半分とに分ける。左半分の領域を領域106aとし、右半分の領域を領域106bとする。
赤外線センサで赤外線の反射波を検出することにより、ユーザの手が、赤外線センサ上にあることが分かる。手書き検出部106は、赤外線センサからの反射波の検出信号が領域106aからのものか、領域106bからのものかを判定する。手書き検出部106が、検出信号が、領域106aからのものである、と判断すると、手書き検出部106は、ユーザがスタイラスペン202を持つ手が左手である旨を表す手書き情報を生成する。一方、手書き検出部106が、検出信号が、領域106bからのものである、と判断すると、手書き検出部106は、ユーザがスタイラスペン202を持つ手が右手である旨を表す手書き情報を生成する。
また、別の検出方式として、手書き検出部106は撮像装置を含み、撮像装置で撮像した画像に対して画像処理を施す。手書き検出部106は画像処理結果に基づいて、ユーザの手の位置を検出する。
また、別の検出方式として、手書き検出部106を、光センサ液晶としてもよい。光センサ液晶を簡単に説明すると、表示装置312は、各画素内に駆動回路の他に光センサを内蔵する。手書き検出部106は、ユーザの手の影を検出することにより、表示領域312a上のユーザの手の位置を検出する。
また、別の検出方式として、スタイラスペン202が傾いている方向を検出する傾き検出部(例えば、傾き検出センサや加速度センサ)をスタイラスペン202に含ませるようにしてもよい。手書き検出部106は、スタイラスペン202の入力動作中に、傾き検出部が検出した傾き方向をスタイラスペン202から受信する。手書き検出部106は、受信した傾き方向に基づいて、手書き情報を生成する。例えば、手書き検出部106は、スタイラスペン202がユーザから見て左に傾いていることを検出すると、ユーザは左手でスタイラスペン202を保持していることを表す手書き情報を生成する。また、手書き検出部106は、スタイラスペン202がユーザから見て右に傾いていることを検出すると、ユーザは右手でスタイラスペン202を保持していることを表す手書き情報を生成する。
手書き検出部106による、手書き情報の生成手法についてはこれらに限られず、他の生成手法を用いてもよい。
再び図3を用いて情報処理装置100Aの構成の説明を続ける。取得部116は、手書き検出部106が生成した手書き情報を取得する。取得部116は、手書き情報を取得すると、表示制御部110に出力する。
<表示態様>
次に、図6を参照して、表示制御部110が、アシスト画像表示領域210の表示態様を制御する処理について説明する。図6は、表示制御部110がアシスト画像表示領域210の表示内容を制御する処理の概要図である。上述のように、第1アシスト画像601や第2アシスト画像602や第3アシスト画像603それぞれは、第1画像401、第2画像402および第3画像403に基づく。また、以下では、図1に示すように、第1アシスト画像601、第2アシスト画像602、第3アシスト画像603等をアシスト画像表示領域210において表示することを「アシスト表示」という。また、ユーザが手書き入力した画像を入力画像とする。また、アシスト表示された画像をアシスト表示画像とする。つまり、アシスト表示画像は、図6(D)のアシスト画像表示領域210に表示される第1アシスト画像601および第2アシスト画像602などである。
図6(A)は、ユーザが、スタイラスペン202で、表示装置312に最初の文字入力をするため、文字「ま」を手書き入力し始めた状態であるとする。この場合には、ユーザが第1画像401である文字「ま」を手書き入力した始めたときに、取得部116は、手書き情報を取得する。この場合には、取得部116は、ユーザは右手でスタイラスペン202を保持していることを表す手書き情報を取得する。
座標検出部108は、ユーザが手書き入力したことにより、スタイラスペン202が接触した座標を検出する。認識部118は、文字認識を行なうことにより、文字「ま」が手書き入力されたことを認識する。そして、認識部118は、第1画像401が認識されたことを示す、第1認識信号を表示制御部110へ出力する。
次に、ユーザが縦書きの1行目の手書き入力を続けて、第2画像402(1行目の2個目の画像)である文字「う」を手書き入力したとする。この場合には、ユーザは文字「う」を手書き入力している途中に、方向検出部114は、ユーザの第1方向αを検出する。図6の例では、文字「う」の手書き入力始めの点のY座標は、文字「ま」を構成する複数の点のうち、最大のY座標よりも小さい。従って、方向検出部114は、第1方向αが下方向であることを表す方向情報を生成し、表示制御部110へ送信する。
表示制御部110は、方向情報に基づいて、ユーザの入力画像を縦書き用バッファ領域304に保持するか、縦書き用バッファ領域304の保持内容をアシスト画像表示領域210へ出力するかを決定する。表示制御部110は、方向情報および手書き情報に応じた表示領域312aの端部を決定する。例えば、表示制御部110は、手書き情報においてユーザがスタイラスペン202を保持している手が右手(右利き)と示され、方向情報が下方向である場合、アシスト画像表示領域210をユーザにとって容易に見える位置に表示するため、表示領域312aにおいて、手書き情報に示されるユーザの手の位置(右または左)と反対側の領域を表示領域312aの端部と決定し、この端部にアシスト画像表示領域210を表示する。
図6(B)を用いて、表示制御部110のユーザの手書き入力の方向の決定手法を詳細に説明する。図6(B)に示すように、第1位置401a(第1画像401の表示位置)の重心を第1重心401bとする。また、第2位置402a(第2画像402の表示位置)の重心を第2重心402bとする。
ここで、第1重心401bから第2重心402bへの方向が下方向であり、手書き情報が右手を表す手書き情報である場合には、表示制御部110は、手書き入力が縦書きと判定し、改行がされるまで(方向βが検出されるまで)、ユーザの入力画像を縦書き用バッファ領域304へ保持させる。
次に、図6(C)に示すように、ユーザが第3画像403である文字「え」を手書き入力し、縦書きの1行目の文字入力を終えたとする。表示制御部110は、ユーザが縦書きの手書き入力で、方向βを検出すると(改行を検出)、直近に手書き入力された1行分の画像(第1画像401、第2画像402、第3画像403)を、バッファ保持画像510から読み出してアシスト画像表示領域210へ表示する。また、表示制御部110は、ユーザの手書き入力操作から所定時間が経過すると、縦書き用バッファ領域304の保持内容をアシスト画像表示領域210へ表示する。図6(D)では、ユーザが2行目の手書き入力を終え、所定時間が経過している。表示制御部110は、アシスト画像表示領域210に、縦書き2行目の手書き入力の内容を縦書き用バッファ領域304から読み出してアシスト画像表示領域210へ表示する。
図6(D)に示すように、ユーザが1行目に手書き入力した文字(第1画像401の文字「ま」など)が、2行目の手書き入力時にユーザの手により覆われてしまい、ユーザは1行目の文字「ま」などを目視できなくなる。そこで、本実施形態のように、表示制御部110がアシスト画像表示領域210に文字「ま」など1行目の文字列をアシスト表示することにより、ユーザは直近に手書き入力した1行分の文字列を認識できる。
次に、図6(E)に示すように、ユーザが2行目の1文字目の画像である第4画像411の文字「え」および2行目の2文字目の画像である第5画像412の文字「ん」を手書き入力し、3行目の1文字目の文字「ん」の手書き入力を終えたとする。表示制御部110は、3行分のユーザの手書き入力した画像をアシスト画像表示領域210へアシスト表示する。
ここで、表示制御部110による、図6(D)の状態から図6(E)の状態に遷移する際の、アシスト画像表示領域210の表示方法は、例えば2つの表示態様がある。
1つ目の表示態様として、表示制御部110は、ユーザの手書き入力により改行がなされ、文字入力の方向βが検出される都度、アシスト画像表示領域210の表示領域を、方向βから逆方向の方向γに拡大する。すなわち、アシスト画像表示領域210において、ユーザの手書き入力による1行目の画像が、徐々に方向βと逆側に移動していく。これにより、ユーザが手書き入力した行の数に応じて、複数行のアシスト表示をするためのアシスト画像表示領域210を徐々に大きくすることができる。
2つ目の表示態様として、表示制御部110は、表示領域312a上で、アシスト画像表示領域210において1行目の文字の表示位置を固定し、ユーザの手書き入力により改行がなされ、文字入力の方向βが検出される都度、アシスト画像表示領域210の表示領域を、方向βと同方向に拡大する。これにより、ユーザが手書き入力した行の数に応じて、複数行のアシスト表示をするためのアシスト画像表示領域210を徐々に大きくすることができる。
これにより、ユーザが入力画像を手書き入力する毎に、入力画像に基づくアシスト表示画像が表示される。従って、ユーザは、入力画像がユーザの手により覆われて入力画像を認識できなくても、アシスト表示画像を目視することにより、ユーザ自身が手書き入力した入力画像を認識できる。
<カーソル表示>
表示制御部110は、改行を検出せず、ユーザによる手書き入力を所定時間検出しない場合に、バッファ保持画像510の保持内容をアシスト画像表示領域210へ表示する。この場合、ユーザが改行せず文字入力を続ける可能性がある。そこで、ユーザが改行せず文字入力を続ける場合に、ユーザが手書き入力した画像がアシスト表示される位置を、カーソル208bにより表示する。ユーザは、カーソル208bを視認することにより、次に手書き入力する文字が表示される位置を確認することができる。
カーソル208bについてさらに説明する。取得部116は、ユーザが右手でスタイラスペン202を保持していることを表す手書き情報を取得している。方向検出部114は、下方向または左方向を表す方向を検出していることにより、ユーザは下方向および左方向へ縦書きにより手書き入力する可能性が高い。従って、点208cを左上隅とするカーソル208bを、アシスト画像表示領域210で最後に表示した画像の下に続けて表示する。また、表示制御部110は、カーソル208bの表示態様を、他の領域の表示態様と異ならせるようにすればよい。例えば、表示制御部110は、カーソル208bを点滅させて表示する。これにより、ユーザは、第2画像領域512が表示される位置を容易に認識できる。
次に、カーソル208bの大きさ(面積)について説明する。表示制御部110は、既に手書き入力された各文字それぞれが占有している領域(以下、「占有領域」という。)の面積を導出する。図6(G)は、文字「う」についての占有領域の一例を示した図である。表示制御部110は、座標記憶部112から、文字「う」を構成する複数の点について、X座標が最大値となる点206g、X座標が最小値となる点206i、Y座標が最大値となる点206f、Y座標が最小値となる点206h、のX座標およびY座標それぞれを取得する。
点206gを通る直線,点206iを通る直線において、それぞれが並行となる直線それぞれを直線206gL,206iLとする。また、点206fを通る直線,点206hを通る直線において、それぞれが並行となる直線それぞれを直線206fL,206hLとする。表示制御部110は、これら4本の直線206gL,206iL,206fL,206hLで囲まれた矩形状の面積を、占有領域の面積として導出する。
表示制御部110は、既に手書き入力された各文字それぞれの占有領域の面積を導出し、これらの平均値を求める。表示制御部110は、求められた平均値をカーソル208bの面積とする。
<アシスト表示のY軸方向の位置>
次に、図7に示すように、ユーザが表示領域312aの下部に、入力画像401等を手書き入力したとする。図7は、アシスト表示位置のY軸方向の位置の制御を示す図である。この場合には、ユーザのアシスト表示の視認性を鑑みて、表示制御部110は、上部にアシスト画像表示領域210を表示する。
アシスト画像表示領域210の表示位置を制御するため、例えば、表示制御部110は、座標検出部108が検出した入力画像401等の点の集合各々の座標を検出する。表示制御部110は、各々座標のうちY座標の平均値を算出する。そして、表示制御部110は、平均値と、予め定められた閾値とを比較する。表示制御部110が、平均値は閾値以上であると判断した場合には、入力画像401等は下方に手書き入力されたということなので、表示制御部110は、アシスト画像表示領域210を上方に表示する(図7の状態)。また、表示制御部110が、平均値は閾値未満であると判断した場合には、入力画像401等は上方に手書き入力されたということなので、表示制御部110は、アシスト画像表示領域210を下方に表示する(図1の状態)。
このように、表示制御部110は、入力画像401等のY軸方向の位置(Y座標)に応じた表示領域312aの端部または端部近傍にアシスト画像表示領域210を表示させる。従って、ユーザは表示領域312aの上部に入力画像401を手書き入力したとしても、下部にアシスト表示されることから、ユーザは容易にアシスト表示を認識できる。
<処理の流れ>
次に、図8を参照して、実施形態1の情報処理装置の処理の流れについて説明する。図8は、実施形態1の処理フローの一例を示した図である。図8の処理フローでは、入力画像401等が日本語である場合について示したものである。
ステップS2において、表示制御部110は、取得部116が取得した手書き情報が、ユーザが右手または左手のいずれによってスタイラスペン202を保持していることを示す情報かを判断する。表示制御部110は、手書き情報を参照し、手書き情報が、ユーザが左手でスタイラスペン202を保持していることを示している場合(ステップS2のNO)、アシスト表示することなく、処理を終了する。一方、表示制御部110は、手書き情報が、ユーザが右手でスタイラスペン202を保持していることを示す情報であると判断すると(ステップS2のYES)、処理はステップS4に移行する。
ステップS4において、表示制御部110は、設定モードを右手モードに設定する。ステップS6において、表示制御部110は、アシスト表示準備として、ペン位置座標(X、Y)を初期化してレジスタに格納する(X=0、Y=0)。ペン位置座標(X、Y)は、認識部118が文字等を認識する文字単位でペンの位置を管理するためのレジスタである。
ステップS8において、認識部118は、最初に手書き入力された入力画像(第1画像401)を文字認識した後に、スタイラスペン202の接触座標を座標記憶部112に格納する。
ステップS10において、認識部118は、文字認識することにより、ユーザにより手書き入力された文字が1文字であるか否かを判断する。認識部118は、ユーザにより手書き入力された文字が1文字でないと判断すると(ステップS10のNO)、処理は、ステップS8に戻る。認識部118は、ユーザにより手書き入力された文字が1文字であると判断すると(ステップS10のYES)、処理は、ステップS12に移行する。
ステップS12において、表示制御部110は、ペン位置座標(X、Y)が初期座標であれば(ステップS12においてYES)、ステップS14の処理を実行し、アシスト表示モード設定を行う(ステップS14)。ステップS12において、表示制御部110は、ペン位置座標(X、Y)が初期座標(X=0、Y=0)でなければ、ステップS16の処理を実行する。
ステップS16において、表示制御部110は、方向検出部114が検出した第1方向αを取得する。表示制御部110は、第1方向αが、下向きであるか否かを判断し、下向きである場合には(ステップS16のYES)、処理はステップS18に移行する。また、判断結果が下向きでない場合は、表示制御部110は、ステップS101の処理に移行する。
ステップS18において、表示制御部110は、認識部118の認識結果を縦書き用バッファ領域304(アシスト表示バッファ)に格納する。
ステップS20において、表示制御部110は、ペン位置座標(X、Y)のレジスタ値をY座標についてデクリメントし(Y=Y−1)、ステップS8の処理を実行する。
図9は、実施形態1の処理フローの一例を示した図である。図9の「S101」は、図8の「S101」と対応している。ステップS16において、表示制御部110は、第1方向αが下向きでない場合、ステップS22の処理を実行する。
ステップS22において、表示制御部110は、第1方向αが右向きであるか否かを判断し、右向きである場合には(ステップS22のYES)、処理はステップS24に移行する。また、判断結果が右向きでない場合は、表示制御部110は、ステップS28の処理を実行する。
ステップS24において、表示制御部110は、ペン位置座標(X、Y)を参照し、レジスタ値がX=0であるか否かを判断する。すなわち、表示制御部110は、ペン位置座標(X、Y)のXの値が初期値でない状態でユーザがスタイラスペン202を右方向に移動させた場合は(ステップS24においてNO)、文字の訂正入力であると判断する(ステップS26)。また、表示制御部110は、ペン位置座標(X、Y)のXの値が初期値の状態(X=0)で、ユーザがスタイラスペン202を右方向に移動させた場合は(ステップS24においてYES)、文字の訂正入力ではないと判断し、アシスト表示モードを終了してアシスト画像表示領域210の表示を終了する(ステップS52)。
ステップS26において、表示制御部110は、文字の訂正入力を受け付け、ペン位置座標(X、Y)のXの値をインクリメントし、ステップS103(図8のステップS8)の処理へ移行する。
ステップS28において、表示制御部110は、第1方向αが上向きであるか否かを判断し、上向きである場合には(ステップS28のYES)、処理はステップS30に移行する。また、判断結果が上向きでない場合は、表示制御部110は、ステップS102(図8の「S102」に対応)の処理を実行する。
ステップS30において、表示制御部110は、ペン位置座標(X、Y)を参照し、レジスタ値がY=0であるか否かを判断する。すなわち、表示制御部110は、ペン位置座標(X、Y)のYの値が初期値でない状態でユーザがスタイラスペン202を上方向に移動させた場合は(ステップS30においてNO)、文字の訂正入力であると判断する(ステップS32)。また、表示制御部110は、ペン位置座標(X、Y)のYの値が初期値の状態(Y=0)で、ユーザがスタイラスペン202を上方向に移動させた場合は(ステップS30においてYES)、文字の訂正入力ではないと判断し、アシスト表示モードを終了してアシスト画像表示領域210の表示を終了する(ステップS52)。
ステップS32において、表示制御部110は、文字の訂正入力を受け付け、ペン位置座標(X、Y)のYの値をインクリメントし、ステップS100(図8のステップS8)の処理へ移行する。
図8のステップS34において、表示制御部110は、第1方向αが左向きであるか否かを判断し、左向きである場合には(ステップS34のYES)、処理はステップS36に移行する。また、判断結果が左向きでない場合は、表示制御部110は、ステップS44の処理を実行する。
ステップS36において、表示制御部110は、ユーザが縦書きの手書き入力時に改行をしたものとし、アシスト画像表示領域210の表示位置を制御する。
ステップS38において、表示制御部110は、縦書き用バッファ領域304の保持内容をアシスト画像表示領域210で表示するため、アシスト画像表示領域210の表示領域を拡張して表示する。
ステップS40において、表示制御部110は、改行前の行の文字を表示するため、縦書き用バッファ領域304で保持された入力画像を読み出してアシスト画像表示領域210へ表示する。これによりアシスト表示がなされる。
ステップS42において、表示制御部110は、ペン位置座標(X、Y)のXの値を更新し、Xをデクリメントするとともに、Yの値を初期化(Y=0)し、再びステップS8の処理を実行する。
ステップS44において、表示制御部110は、スタイラスペン202の接触が検出されているか否かを入力受付部102の操作受付結果に基づいて判断する。スタイラスペン202の接触が検出されない場合(ステップS44においてYES)、表示制御部110は、ステップS46の処理を実行し、スタイラスペン202の接触が検出される場合、ステップS12の処理を実行する。
ステップS46において、表示制御部110は、スタイラスペン202の接触が検出されないと判定された後、所定時間(例えば、2秒間)待機し、所定時間経過後、縦書き用バッファ領域304の保持内容をアシスト画像表示領域210に表示する。
ステップS48において、表示制御部110は、スタイラスペン202の接触が検出されているか否かを入力受付部102の操作受付結果に基づいて判断し、接触が検出されない場合(ステップS48においてYES)、ステップS50の処理に進み、アシスト表示モードを終了してアシスト画像表示領域210の表示を終了する(ステップS50)。表示制御部110は、スタイラスペン202の接触を検出した場合(ステップS48においてNO)、ステップS12の処理を実行する。
<まとめ>
本実施形態の情報処理装置は、表示領域312aの端において、入力画像401等と対応してアシスト画像表示領域210に第1アシスト画像601等をアシスト表示する。ユーザは、直近に手書き入力した入力画像401等が手に覆われて視認できなくても、アシスト画像表示領域210を参照して第1アシスト画像601等を視認することにより、入力画像401等を認識できる。
<実施形態2>
次に、実施形態2について説明する。図10は、実施形態2の情報処理装置100Bの機能構成例を示した図である。図10は、操作受付部120が追加されている点で、図3と異なる。実施形態1では、手書き検出部106が、ユーザの手等を検出することにより、ユーザがスタイラスペン202を保持している手が右手であるか左手であるかを検出する。実施形態2では、操作受付部120は、ユーザから、ユーザが右利きか右利きかの入力を受け付ける。
図11を参照して、操作受付部120について説明する。図11は、実施形態2の操作画面3120の一例を示した図である。表示装置312は、操作画面3120を表示する。操作画面3120は、左利きキー3120aおよび右利きキー3120bを含む。これらのキーは、ユーザによりタッチ可能とする。
ユーザは、自身が該当する手書きに対応するキーをタッチする。操作受付部120は、タッチされたキーに対応する手書き情報を生成する。取得部116は、操作受付部120が生成した手書き情報を取得する。
また、図11の例では、表示装置312に表示された操作画面について説明したが、ハードキー(図示せず)により、ユーザは手書きを選択可能としてもよい。
また、判別部122は、操作受付部120および手書き検出部106のうち少なくとも一方を含む。つまり、判別部122は、手書き情報を検出するものである。
本実施形態2の情報処理装置であれば、手書き検出部106の検出処理がなくても、ユーザから手書きを選択させることにより、取得部116は、手書き情報を取得できる。
<実施形態3>
次に、図12を用いて、実施形態3の情報処理装置100Cについて説明する。図12は、実施形態3の情報処理装置100Cの機能構成例である。図12は、取得部116、手書き検出部106、表示制御部110がそれぞれ、取得部130、対象物検出部150、表示制御部140に代替されている点で、図3と異なる。
実施形態1では、表示制御部110は、方向検出部114が検出した第1方向等、および、取得部116が取得した手書き情報に基づいて、アシスト表示をする。実施形態3の表示制御部140は、手書き情報を用いずに、表示領域312a上に存在する対象検出物を検出し、検出結果と、第1方向等とに基づいて、アシスト表示する。
対象物検出部150の構成は、手書き検出部106と同様の構成である(例えば、図5参照)。従って、対象物検出部150は、検出対象物500を検出できる。検出対象物500は、例えば、スタイラスペン202およびユーザの手などである。
対象物検出部150は検出結果を取得部130へ送信する。ここで、好ましくは、検出結果は、検出対象物500が表示領域312aに接触している座標、および、表示領域312aにできる検出対象物500の影の座標を含む。図13は、ユーザの手204の影204a等を示した図である。
対象物検出部150は、図13に示すスタイラスペン202およびユーザの手の影204aの座標(座標の集合)を検出する。そして、対象物検出部150は、座標を取得部130に送信する。取得部130は、送信された座標の集合C1を取得する。取得部130は、取得した座標の集合を表示制御部140へ送信する。
また、表示制御部140は、手書き入力された画像を構成する座標の集合C2を座標記憶部112から取得する。そして、表示制御部140は、取得部130から取得した座標の集合C1と、座標記憶部112から取得した座標C2の集合とに基づいて、手書き入力された画像と検出対象物500とが、対向または略対向しているか否かを判断する。
具体的には、表示制御部140は、座標の集合C1と座標の集合C2とを比較して、同一である座標の数が、予め定められた閾値以上あれば、手書き入力された画像と検出対象物500とが、対向または略対向していると判断する。一方、同一である座標の数が、閾値未満であれば、表示制御部140は、手書き入力された画像と検出対象物500とが、対向していないと判断する。
手書き入力された画像と検出対象物500とが対向または略対向している場合には、ユーザは、手書き入力された画像を目視できない。従って、この場合は、表示制御部140は、手書き入力された画像に対応する画像をアシスト画像表示領域210に表示する。
また、アシスト表示の開始箇所の決定手法については、実施形態1と同様なので、説明を繰り返さない。
この実施形態3の情報処理装置100Cによると、表示制御部140が、入力画像4001と検出対象物500とが対向または略対向していると判断した場合に、表示制御部140は、アシスト画像表示領域210によってアシスト表示する。この手法では、手書き情報を生成せずとも、実施形態1と同様の効果を奏する。
<実施形態4>
図14は、実施形態4の情報処理装置100Dの機能構成例を示した図である。図14は、図3と比較して、取得部116、表示制御部110がそれぞれ、取得部230、表示制御部240に代替されており、さらに言語検出部250が追加されている点で、図3と異なる。
実施形態4では、手書き入力された画像が文字を示す場合に、表示制御部240は、文字の言語の種類と第1方向α等に基づいて、入力画像をアシスト表示する。図15は、表示制御部240がアシスト表示する条件の一例を示した図である。
図15に示すように、ユーザが右利きであり、かつ、言語が日本語または中国語である場合には、図1に示すように、ユーザが手書き入力した文字がユーザの手で覆われる。従って表示制御部240はアシスト表示する。
言語検出部250は、認識部118が認識した言語の種類を検出する。言語検出部250の言語の種類の検出手法は、例えば、パターンマッチング方式を用いればよい。言語検出部250により検出された言語の種類は、表示制御部240に出力される。
表示制御部240は、取得部230から出力された手書き情報、および、言語検出部250から出力された言語の種類に基づいて、入力画像をアシスト表示する。
この実施形態4の情報処理装置100Dによると、第1方向を検出することなく、実施形態1と同様の効果を奏する。
<実施形態5>
図16を参照して、実施形態5の情報処理装置について説明する。図16は、実施形態5の情報処理装置の表示画面の一例である。ユーザが、文字等を大きく手書き入力した場合に、手書き入力された画像と、アシスト表示によって表示される画像とが重畳してしまい、ユーザがアシスト表示によって表示される画像を見づらくなる。そこで、図16に示すように、実施形態5の情報処理装置は、手書き入力された画像を表示する表示領域の大きさに応じて、アシスト表示によって画像を表示する表示領域を縮小して表示する。
また、以下の説明では、機能構成例は図3とするが、他の図面に示す機能構成例でもよい。以下では、手書き入力された画像が表示される領域を第1画像領域510とし、アシスト表示によって画像が表示される領域を第2画像領域512とする。
図17を参照して、表示制御部110の処理の内容を説明する。図17は、実施形態5の表示制御部110の処理フローの一例を示した図である。
ステップS152において、表示制御部110は、手書き入力された画像が表示される領域(第1画像領域510)と、アシスト表示によって画像が表示される領域(第2画像領域512)とが重畳するか否かを判断する。または、表示制御部110は、第1画像領域510と、第2画像領域512とが重畳したか否かを判断する。第1画像領域510と、第2画像領域512との重畳については、第1画像領域510を構成する複数の点の座標と、第2画像領域512を構成する複数の点の座標とに基づいて行われる。
ステップS152において、表示制御部110は、第1画像領域510と第2画像領域512とが重畳すると判断すると(ステップS152のYES)、処理はステップS154に移行する。一方、表示制御部110は、第1画像領域510と第2画像領域512とが重畳しないと判断すると(ステップS152のNO)、処理はステップS158に移行する。
ステップS154において、表示制御部110は、第1画像領域510の面積(例えば、ドット数)を算出する。
ステップS156において、表示制御部110は、第1画像領域510の面積に応じて、第2画像領域512に表示される文字のフォントサイズを縮小することで、第2画像領域512の面積を縮小する。なお、例えば、第1画像領域510の面積に応じた係数rが、情報処理装置の製造時に予め決定される。係数rの定め方として、係数rが乗算されたフォントサイズで第2画像領域512によってアシスト表示した場合に、第1画像領域510と重畳しないように、係数rを定める。表示制御部110は、第2画像領域512に表示される文字のフォントサイズに、係数rを乗算する。表示制御部110は、係数rが乗算されたフォントサイズで文字を表示するよう、第2画像領域512の面積を縮小してアシスト表示する。
一方、ステップS158において、表示制御部110は、第2画像領域512に表示される文字のフォントサイズを変えずに、第2画像領域512をアシスト表示する。
なお、ステップS152で、表示制御部110は、第1画像領域510と第2画像領域512とが既に重畳したか否かを判断するようにしてもよい。そして、表示制御部110は、第1画像領域510と第2画像領域512とが重畳したと判断すると、即座に、ステップS154とS156の処理を行なう。
この実施形態5の情報処理装置は、第1画像領域510と第2画像領域512とを重畳させずに、第2画像領域512をアシスト表示できる。
<実施形態6>
図18を参照して、実施形態6の情報処理装置について説明する。図18は、実施形態6の情報処理装置の表示画面の一例である。ユーザが、文字を大きく手書き入力した場合に、第1画像領域510と第2画像領域512とが重畳してしまい、ユーザが第2画像領域512に表示される文字を見づらくなる。
そこで、実施形態6の表示制御部110は、第1画像領域510と第2画像領域512とが重畳する場合には、直近に手書き入力された文字に基づく画像を第2画像領域512において優先的に表示する。図18の例では、表示制御部110は、直近に手書き入力された文字「交通手段は、電車です。」を、第2画像領域512において優先的に表示している。つまり、表示制御部110は、以前に手書き入力された「今日の天気は晴れです。私は、今から買い物に出かけます。」を消去して第2画像領域512に文字を表示している。
図19を参照して、表示制御部110の処理の内容を説明する。図19は、実施形態6の表示制御部110の処理フローの一例を示した図である。
ステップS152において、表示制御部110は、第1画像領域510と第2画像領域512とをそれぞれ同じ大きさで表示した場合に、第1画像領域510と第2画像領域512とが重畳するか否かを判断する。または、表示制御部110は、第1画像領域510と第2画像領域512とが重畳したか否かを判断する。
ステップS152において、表示制御部110は、第1画像領域510と第2画像領域512とが重畳すると判断すると(ステップS152のYES)、ステップS160の処理を実行する。一方、表示制御部110は、第1画像領域510と第2画像領域512とが重畳しないと判断すると(ステップS152のNO)、ステップS158の処理を実行する。ステップS158において、表示制御部110は、第1画像領域510と第2画像領域512との大きさを調整せず処理を続ける。
ステップS160において、表示制御部110は、第1画像領域510に表示される入力画像のうち、第2画像領域512に表示可能なデータ量で直近に手書き入力された入力画像を抽出して、抽出した入力画像を第2画像領域512に表示する。また、表示制御部110は、第2画像領域512が表示される大きさを固定するようにしてもよい。
なお、ステップS152で、表示制御部110は、第1画像領域510と第2画像領域512とが重畳したか否かを判断するようにしてもよい。この場合には、第1画像領域510と第2画像領域512とが重畳したと判断した後に、表示制御部110は、第1画像領域510に表示される入力画像のうち、第2画像領域512に表示可能なデータ量で直近に手書き入力された入力画像を抽出して、抽出した入力画像を第2画像領域512に表示する。
この実施形態6の情報処理装置は、第1画像領域510と第2画像領域512とを重畳させずに、第2画像領域512をアシスト表示できる。
また、実施形態5および実施形態6の手法によらず、他の手法により、表示制御部は、第1画像領域510および第2画像領域512が重畳しないように、第1画像領域510および第2画像領域512を表示するようにしてもよい。
<その他>
上記実施形態の説明では、縦書き時に左方向に改行して書き進める言語(日本語)を例にして、ユーザが右手で文字を手書き入力する場合を説明した。この他にも、例えば、ユーザが左手で記号などを下方向や右方向に手書き入力する場合、ユーザが右方向に書き進めると、手書き入力された画像がユーザの手によって覆われる。そのため、情報処理装置100は、ユーザが左手で文字、図形等を手書き入力する場合においても、手書き入力がなされた際に方向検出部114が下方向を検出していれば、入力画像を縦書き用バッファ領域304に保持し、方向検出部114が右方向を検出した場合に、縦書き用バッファ領域304で保持されている画像を読み出してアシスト画像表示領域210に表示することとしてもよい。この場合、アシスト画像表示領域210は、表示領域312aの右端付近にアシスト画像表示領域210を表示させることとしてもよい。これにより、ユーザは、手書き入力した入力画像を容易に確認することができる。
本発明の情報処理装置は、CPUとその上で実行されるプログラムにより実現される。本発明を実現するプログラムは、コンピュータが読み取り可能な記録媒体、例えば半導体メモリ、ハードディスク、CD−ROM、DVD等に格納することができ、これらの記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
また、今回開示された実施形態はすべての点で例示であって、制限的なものではない。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。