(A)第1の実施形態
以下、本発明による認識処理装置、認識処理プログラム、認識処理方法、及び認識処理システムの第1の実施形態を、図面を参照しながら詳述する。この実施形態では、情報処理端末を本発明の認識処理装置として構成した例について説明する。
(A-1)第1の実施形態の構成
図1は、第1の実施形態に係る認識処理システム1の全体構成について示したブロック図である。なお、図1において括弧内の符号は、後述する第2の実施形態でのみ用いられる符号である。
認識処理システム1は、情報処理端末10、ペンタブレット20及び電子ペン30を有している。ペンタブレット20は、電子ペン30を用いて入力受付が可能な装置である。
ペンタブレット20は、ディスプレイパネル21の表面に電子ペン30のペン先31を検知するデバイス(いわゆる、「ポインティングデバイス」)として機能するデバイス)である。また、ディスプレイパネル21には、情報処理端末10から供給される映像信号に基づく映像を出力することも可能である。認識処理システム1では、ディスプレイパネル21にペン先31の軌跡等を表示することで、ユーザからの文字入力の操作を受け付けることが可能となっている。
情報処理端末10は、制御部11、映像IF12及びUSBポート13を有している。
情報処理端末10は、種々のコンピュータ(例えば、PC等)に、プログラム(実施形態に係る認識処理プログラムを含む)をインストールすることにより構成できる。
制御部11は、コンテンツ処理部111、ディスプレイドライバ112、ペンタブレットドライバ113、及び文字認識処理部114を有している。
コンテンツ処理部111は、ディスプレイドライバ112及びペンタブレットドライバ113を介して、ペンタブレット20にアクセスし、ペンタブレット20及び電子ペン30を用いた各種のコンテンツ(例えば、ペンタブレット20及び電子ペン30を用いた文字入力を伴う各種操作画面を含むコンテンツ)の処理を行うアプリケーションプログラムである。
コンテンツ処理部111は、ディスプレイドライバ112を介して文字入力を伴う操作画面(GUI)を表示し、ペンタブレットドライバ113を介して液晶タブレットで電子ペン30を用いて入力された内容(例えば、電子ペン30がタッチされた部分の座標の情報等)を取得する。コンテンツ処理部111は、ペンタブレットドライバ113を介して、文字入力の際のストロークのデータ(時系列ごとの電子ペン30の座標を含むデータ;以下、「入力ストロークデータ」と呼ぶ)を取得する。この実施形態において、コンテンツ処理部111は、文字認識処理部114に対して、入力ストロークデータを供給する。
文字認識処理部114は、入力ストロークデータに基づく文字認識処理を行うものであり、ストロークデータ処理部1141、オンラインAI処理部1142、オフラインAI処理部1143、及び文字認識結果出力部1144を有している。文字認識処理部114は、この実施形態に係る認識処理プログラムに対応する機能を担っている。
ストロークデータ処理部1141は、入力ストロークデータから、オンラインAI処理部1142の処理に適用可能なベクトルデータ(入力ベクトルデータ)と、オフラインAI処理部1143の処理に適用可能な画像データ(以下、「入力画像データ」と呼ぶ)を生成する処理を行うものである。
この実施形態では、コンテンツ処理部111から文字認識処理部114に入力ストロークデータ及び入力画像データが供給されるものとして説明するが、文字認識処理部114に入力ストロークデータ及び入力画像データを供給する供給源はこれに限定されないものである。例えば、外部で作成された入力ストロークデータ及び入力画像データを文字認識処理部114に供給して処理するようにしてもよい。
オンラインAI処理部1142は、入力ベクトルデータが供給されると、当該入力ベクトルデータに基づく文字認識処理又は学習処理を行う。文字認識処理部114が学習モードで動作する場合、オンラインAI処理部1142は、入力ベクトルデータと正解ラベル(教師ラベル)のセットを用いて機械学習処理を行って学習モデルを更新する。オンラインAI処理部1142は、入力ベクトルデータが供給されると、当該入力ベクトルデータに基づく文字認識処理又は学習処理を行う。文字認識処理部114が学習モードで動作する場合、オンラインAI処理部1142は、入力ベクトルデータと正解ラベルのセットを用いて機械学習処理を行う。文字認識処理部114が認識処理モードで動作する場合、オンラインAI処理部1142は、入力ベクトルデータに基づいて学習済の学習モデルを用いた文字認識処理を行い、文字認識結果(以下、「オンライン文字認識結果」とも呼ぶ)を出力する。なお、この実施形態では、オンラインAI処理部1142は、オンライン文字認識結果に信頼度のデータを付加するものとする。
オフラインAI処理部1143は、入力画像データが供給されると、当該入力画像データに基づく文字認識処理又は学習処理を行う。文字認識処理部114が学習モードで動作する場合、オフラインAI処理部1143は、入力画像データと正解ラベルのセットを用いて機械学習処理を行って学習モデルを更新する。オフラインAI処理部1143は、入力画像データが供給されると、当該入力画像データに基づく文字認識処理又は学習処理を行う。文字認識処理部114が学習モードで動作する場合、オフラインAI処理部1143は、入力画像データと正解ラベルのセットを用いて機械学習処理を行う。文字認識処理部114が認識処理モードで動作する場合、オフラインAI処理部1143は、入力画像データに基づいて学習済の学習モデルを用いた文字認識処理を行い、文字認識結果(以下、「オフライン文字認識結果」とも呼ぶ)を出力する。なお、この実施形態では、オフラインAI処理部1143は、オフライン文字認識結果に信頼度のデータを付加するものとする。
この実施形態において、オンラインAI処理部1142及びオフラインAI処理部1143については、種々の機械学習用のエンジン(AIのプラットフォーム)を用いて構成することができる。したがって、この実施形態では、オンラインAI処理部1142及びオフラインAI処理部1143における機械学習の方法(学習モデルの作成方法)や、作成した学習モデルを用いた認識処理(判定処理)の詳細について説明を省略する。
文字認識結果出力部1144は、文字認識処理部114が認識処理モードで動作する場合、オンライン文字認識結果と、オフライン文字認識結果とに基づいて最終的な文字認識結果(以下、「出力文字認識結果」とも呼ぶ)を出力する。文字認識結果出力部1144は、オンライン文字認識結果と、オフライン文字認識結果を評価し、その評価結果に基づいていずれかの文字認識結果を出力するようにしてもよい。例えば、文字認識結果出力部1144は、オンライン文字認識結果と、オフライン文字認識結果で、付加された評価値の高い方を採用して出力文字認識結果として出力するようにしてもよい。
この実施形態において、コンテンツ処理部111は、文字認識処理部114を学習モードで動作させる際に、文字認識処理部114に対して、入力ストロークデータ共に、当該入力ストロークデータに対応する正解ラベル(当該入力ストロークデータに対応する正解文字の識別子)を供給するものとする。また、この実施形態において、コンテンツ処理部111は、文字認識処理部114を認識処理モードで動作させる場合、文字認識処理部114に入力ストロークデータを供給して出力文字認識結果を取得するものとする。
次に、ストロークデータ処理部1141が取得する入力ストロークデータの構成例について説明する。
入力ストロークデータには、ペンタブレット20(ディスプレイパネル21)で認識された時系列ごとの電子ペン30のペン先31の位置に関する情報が含まれている。
以下では、ディスプレイパネル21で電子ペン30のペン先31と接触する面(以下、「ディスプレイ接触面」と呼ぶ)と並行する方向を「横方向」と呼び、ディスプレイ接触面と直交する方向を「高さ方向」と呼ぶものとする。また、以下では、ペン先31とディスプレイ接触面との高さ方向に関する状態(ステータス)を「ペン先状態」と呼ぶものとする。第1の実施形態においては、「ペン先状態」という用語は、ペン先31がディスプレイ接触面に接触した状態(以下、「コンタクト状態」と呼ぶ)又はペン先31がディスプレイ接触面に接触していない状態(以下、「非コンタクト状態」と呼ぶ)のいずれかを示すステータスであるものとして説明する。
この実施形態の例では、入力ストロークデータには、ペンタブレット20(ディスプレイパネル21)が認識したペン先31の横方向の位置(以下、「サンプル」又は「サンプル位置」と呼ぶ)の情報と、ペンタブレット20(ディスプレイパネル21)が認識したペン先状態(ペン先31の高さ方向の位置)の情報が含まれるものとして説明する。
そして、以下では、図1に示すように、ペンタブレット20(ディスプレイパネル21)の「画面/タッチパネル/ポインティングデバイス」としての水平方向(左右方向)をX軸とし、ペンタブレット20(ディスプレイパネル21)の「画面/タッチパネル/ポインティングデバイス」としての垂直方向(上下方向)をY軸として、入力ストロークデータにおけるサンプル位置の座標系を表すものとする。この実施形態の例では、サンプル位置の座標系は、ペンタブレット20(ディスプレイパネル21)の左上の点を原点(x=0,y=0)とし、下方向を「Y座標が増加する方向(+Y方向)」とし、右方向を「X座標が増加する方向(+X方向)」とする。したがって、以下では、上方向が「Y座標が減少する方向(-Y方向)」となり、左方向が「X座標が減少する方向(-X方向)」となる。なお、以下では、時系列ごとのサンプル位置(サンプル)の軌跡に沿った位置(後述する正規化された領域上の位置を含む)を総称して「特徴点」とも呼ぶものとする。
次に、オンラインAI処理部1142による文字認識処理の概要について説明する。
まず、オンラインAI処理部1142で処理される入力ベクトルデータの構成例について説明する。
この実施形態において、入力ベクトルデータは、1文字あたり、時系列ごとのN個の特徴点のそれぞれに対応するM次元のベクトルにより構成されるデータ(すなわち、M列×N行の行列式により表されるデータ)であるものとする。
この実施形態において、入力ベクトルデータは、各特徴点について、現在の特徴点の座標と、次の時系列の特徴点への移動量(ベクトル)と、ペン先状態を示す情報が含まれているものとする。
この実施形態の例では、入力ベクトルデータは、図2に示す7次元のパラメータ(M=7)により表現されるベクトルデータであるものとする。
この実施形態の例では、入力ベクトルデータにおいて、各時系列の特徴点に対応するベクトルには、当該特徴点のX座標(以下、「VX」と表す)、当該特徴点のY座標(以下、「VY」と表す)、当該特徴点から次の時系列の特徴点への右向きの移動量(以下、「VR」と表す)、当該特徴点から次の時系列の特徴点への上方向の移動量(以下、「VU」と表す)、当該特徴点から次の時系列の特徴点への左方向の移動量(以下、「VL」と表す)、当該特徴点から次の時系列の特徴点への下方向きの移動量(以下、「VD」と表す)、当該特徴点と次の時系列との間の区間におけるペン先状態を示す値(以下、「VT」と表す)が含まれるものとして説明する。なお、VTは、電子ペン30のペン先31がディスプレイ接触面に接触している状態(以下、「コンタクト状態」と呼ぶ)を表す「1」と、接触していない状態(以下、「非コンタクト状態」と呼ぶ)を表す「0」のいずれかの値が設定されるものとする。従って時系列t(tは、1~Nのいずれかの整数)の特徴量をV(t)とすると、V(t)は以下の(1)式のように示すことができる。そして、1文字分の入力ベクトルデータをZとすると、Zは以下の(2)式のような行列式で示すことができる。
(t)={VX(t),VY(t),VR(t),VU(t),VL(t),VD(t),VT(t)} …(1)
上記の通り、特徴量V(t)のうち、VR(t)、VU(t)、VL(t)、及びVD(t)は、次の時系列t+1の特徴点への移動量を表している。この実施形態では、入力ベクトルデータを表す座標系において、左上を原点(X=0、Y=0)とし、右方向にXの値が増加し、下方向にYの値が増加するものとしている。そうすると、Y軸上でYが増加する方向(+Y方向)が「下方向」となりYが減少する方向(-Y方向)が「上方向」となる。また、X軸上でXが増加する方向(+X方向)が「右方向」となりXが減少する方向(-X方向)が「左方向」となる。この場合、VR(t)は、+X方向への移動量を表すため、VX(t+1)>VX(t)の場合VR(t)=VX(t+1)-VX(t)となり、VX(t+1)≦VX(t)の場合にVR(t)=0となる。また、VL(t)は、-X方向への移動量を表すため、VX(t+1)<VX(t)の場合VL(t)=VX(t)-VX(t+1)となり、VX(t+1)≧VX(t)の場合にVL(t)=0となる。さらに、VU(t)は、-Y方向への移動量を表すため、VY(t+1)<VY(t)の場合VU(t)=VY(t)-VY(t+1)となり、VY(t+1)≧VY(t)の場合にVU(t)=0となる。さらにまた、VD(t)は、+Y方向への移動量を表すため、VY(t+1)>VY(t)の場合VD(t)=VY(t+1)-VY(t)となり、VY(t+1)≦VY(t)の場合にVD(t)=0となる。
なお、この実施形態では、入力ベクトルデータにおいて、移動量(動き量)を上下左右の4次元(VR(t),VU(t),VL(t),VD(t))で表しているが、負の値をとっても支障がない場合は水平方向と垂直方向の2次元で表すようにしてもよい。入力ベクトルデータにおいて、移動量を上下左右の4次元(VR(t),VU(t),VL(t),VD(t))で表すことで、同じ軸上の変化でも別個の項目の特徴量として表現可能とし、機械学習の精度に影響を与えること(すなわち、AIによる判定処理の調整)ができる。例えば、この実施形態において、入力ベクトルデータの移動量を2次元(x(t)、Y(t))又は4次元(VR(t),VU(t),VL(t),VD(t))のいずれかで表現可能とし、オペレータの操作等により認識精度の良い方を用いた処理を行うようにしてもよい。
次に、入力ベクトルデータを構成する時刻tの特徴量V(t)の具体例について図3、図4を用いて説明する。
図3は、t=1、t=2の時点の特徴点をそれぞれP1、P2とした場合における特徴量V(1)について表した図である。また、図3では、P1の座標を(X,Y)=(1,2)、P2の座標を(X,Y)=(2,1)としている。
そうすると、特徴量V(1)は、以下の(3)式のように示すことができる。
V(1)={VX(1),VY(1),VR(1),VU(1),VL(1),VD(1),VT(1)}
={1,2,1,1,0,0,1}…(3)
図4は、t=1、t=2、t=3、t=4の時点の特徴点をそれぞれP1、P2、P3、P4とした場合における特徴量V(1)、V(2)、V(3)について表した図である。また、図4では、P1の座標を(X,Y)=(1,3)、P2の座標を(X,Y)=(3,1)、P3の座標を(X,Y)=(1,1)、P4の座標を(X,Y)=(3,3)としている。なお、図4では、P2とP3の区間が非コンタクト状態の区間であるものとしている。
そうすると、特徴量V(1)、V(2)、V(3)は、それぞれ以下の(4)式~(6)式のように示すことができる。
V(1)={VX(1),VY(1),VR(1),VU(1),VL(1),VD(1),VT(1)}
={1,3,2,1,0,0,1}…(4)
V(2)={VX(2),VY(2),VR(2),VU(2),VL(2),VD(2),VT(2)}
={3,1,0,0,2,0,0}…(5)
V(3)={VX(3),VY(3),VR(3),VU(3),VL(3),VD(3),VT(3)}
={1,1,2,0,0,2,1}…(6)
(A-2)第1の実施形態の動作
次に、以上のような構成を有するこの実施形態の認識処理システム1の動作(実施形態に係る認識処理方法の各手順)を説明する。
まず、認識処理システム1において、ユーザからペンタブレット20(ディスプレイパネル21)と電子ペン30を用いて文字入力を受け付ける処理の例について説明する。
上記の通り、この実施形態の認識処理システム1では、学習モード及び認識処理モードのいずれの動作モードで動作する場合でも、コンテンツ処理部111は、ペンタブレット20(ディスプレイパネル21)にユーザから文字入力(電子ペン30を用いた文字入力)を受け付けるための操作画面(以下、「文字入力画面」と呼ぶ)を表示するものとする。
文字入力画面としては種々の構成の操作画面を適用することができるが、例えば、図5に示すような操作画面を適用するようにしてもよい。
図5に示す文字入力画面には、文字入力を受け付けることができる矩形の領域(以下、「文字入力フィールド」と呼ぶ)が配置されている。図5では、1つの文字入力フィールドF101が配置されている。図5では、文字入力フィールドに対して、ユーザに文字入力を要求する文字(学習処理や判定処理において正解ラベルとして機能する文字)を付記している。例えば、文字入力フィールドF101には、それぞれ「十」という文字(漢字)が付記されている。これにより、認識処理システム1では、ユーザから、各文字入力フィールドの枠内に、付記された文字の入力(電子ペン30を用いた入力)を受け付けることができる。図5では、文字入力フィールドF101の枠内に、「十」という文字が電子ペン30で手書きされた状態について示している。なお、図5では、説明を簡易にするため、1画面に1つの文字入力フィールドを配置する例について示しているが、このような文字入力フィールドのレイアウトについては限定されないものであり、複数の文字入力フィールドを配置してもよいことは当然である。
この実施形態の文字入力画面では、説明を簡易とするため、1文字入力に対して1つの領域(文字入力フィールド)を設定する例を用いて説明するが、認識処理システム1において1つの領域に対して複数の文字入力を受け付けて文字単位の切り出しを行うようにしてもよい。
この実施形態において、コンテンツ処理部111は、例えば、図5に示すような文字入力画面をユーザに提示し、ユーザから電子ペン30を用いた書き込み入力を受け付け、その入力にもとづいて入力文字に対応する入力ストロークデータを取得することができるものとする。
この実施形態では、コンテンツ処理部111は、ペン先状態が非コンタクト状態からコンタクト状態となったときの座標と、ペン先状態がコンタクト状態となっている間の所定期間(例えば、0.1秒程度)ごとの座標と、ペン先状態がコンタクト状態から非コンタクト状態となったときの座標をサンプル位置として取得するものとして説明する。
図6は、図5のように文字入力フィールドF101の枠内に、「十」という文字が電子ペン30で手書きされた場合に、ストロークデータ処理部1141で取得される入力ストロークデータの構成例について示した図である。
図6(a)は、「十」という文字が電子ペン30で手書きされた場合のサンプル点を描画した図となっている。図6(a)に示す座標系では、Xの範囲が0~1000、Yの範囲が0~10000となっている。すなわち、図6に示す入力ストロークデータの画像は1000画素×1000画素の画像となっている。
図6(b)は、図6(b)に示す入力ストロークデータの時系列番号ごとの値を示した図である。時系列番号は、時系列の順序を示す値であり、値が小さいほど前の時系列(時刻)を表している。図6(b)に示すように、入力ストロークデータでは、時系列番号ごとにX座標とY座標の値と、ペン先状態の値の情報が記録されている。
このとき、ストロークデータ処理部1141は、入力ストロークデータの各サンプル(特徴点)のデータを1画ごと(1スロークごと)に分けて管理する。例えば、入力ストロークデータにおいて、ペン先状態が「0」のデータを境界とすることで、1画(1ストローク)ごとのサンプル位置のリストを得ることができる。例えば、図6(a)において、先頭から14個目にペン先状態が「0」のサンプル位置が表れるため、時系列が1~13のサンプル位置が1画目であり、時系列が14~23のサンプル位置が2画目となる。
次に、ストロークデータ処理部1141が、入力ストロークデータからオンライン文字認識処理用の入力ベクトルデータを生成する処理について図7のフローチャートを用いて説明する。
まず、コンテンツ処理部111からストロークデータ処理部1141に1文字分の入力ストロークデータが供給され保持されたものとする(S101)。
次に、ストロークデータ処理部1141は、入力ストロークデータについて所定の解像度の領域(以下、「正規化領域」と呼ぶ)に丁度おさまるように正規化したデータ(以下、「第1の正規化ストロークデータ」と呼ぶ)を取得する(S102)。
図8は、ストロークデータ処理部1141が、オンライン文字認識処理用の入力ベクトルデータを正規化して第1の正規化ストロークデータを取得する処理について示した図である。
図8(a)は、図6に示す入力ストロークデータのうち、サンプル位置(特徴点)が描画された領域のみを切り出した画像となっている。
図6に示す入力ストロークデータにおいて、Xの最大値が635で、Xの最小値が427である。また、図6に示す入力ストロークデータにおいて、Yの最大値が658で、Yの最小値が388である。したがって、図8(a)の画像(切り出された画像)は、208画素×270画素(X方向の画素数が208で、Y方向の画素数が270)の画像となる。
図8(b)は、図8(a)の画像を100画素×100画素の正規化領域(縦横比が1:1の領域)に変換した画像を示している。
そして、図8(c)は、図8(b)の正規化領域の画像の各特徴点(各画素)に対応するデータ(第1の正規化ストロークデータ)を示す図となっている。
図8(b)、図8(c)に示すように、ストロークデータ処理部1141は、入力ストロークデータを、100画素×100画素の正規化領域に正規化する際に、上下左右の端に2画素の余白を設けるものとする。すなわち、ストロークデータ処理部1141は、実質的に入力ストロークデータを、96画素×96画素の領域に正規化する処理を行うことになる。図8の例では、ストロークデータ処理部1141は、入力ストロークデータの画像(208画素×270画素の画像)を96画素×96画素の画像(縦横比が1:1の画像)に変換する解像度変換処理を行った後における各特徴点の座標を取得することで、図8(c)に示す第1の正規化ストロークデータを得ることができる。このとき、ストロークデータ処理部1141が行う解像度変換処理の具体的な手法については、種々の画像処理手法を適用することができるので、具体的な処理の過程については説明を省略する。
次に、ストロークデータ処理部1141は、第1の正規化ストロークデータから、各特徴点で、隣接する特徴点との間が所定以上となるように特徴点を間引く処理を行う(S103)。
例えば、時系列tの特徴点とその次の時系列t+1の特徴点に基づいて以下の(7)式を計算し、成立する場合には、その2つの特徴点の間の距離は所定以下であると判断するようにしてもよい。
(7)式において、時系列tの特徴点のx座標をx(t)、y座標をy(t)とし、時系列tの次の時系列t+1の特徴点のx座標をx(t+1)、y(t+1)としている。また、(7)式において、SIZEは画像全体の水平方向及び又は垂直方向の解像度(ここでは100)が適用されるものとする。ここでは、特徴点を間引くか否か判定するための閾値((7)式の右辺)としてSIZE/100=100/10=10を適用するものとして説明するが、この閾値は任意に設計した値を設定(例えば、実験等により好適な値を探索して設定)するようにしてもよい。
ここでは、ストロークデータ処理部1141は、各時系列の特徴点について以下の(7)式を当てはめて計算し、成立する場合に次の時系列の特徴点を間引くものとする。ストロークデータ処理部1141は、時系列t+1の特徴点を間引いた場合、その次の時系列の特徴点を時系列t+1として再度以下の(7)式を当てはめて計算して成立する場合間引く処理を繰り返すようにしてもよい。
また、ストロークデータ処理部1141は、画ごとに間引きの処理を行う。つまり、ストロークデータ処理部1141は、画ごとに、全ての時系列の特徴点について以下の(7)式が成立しない状態となるまで(全ての特徴点の間の距離が所定以上となるめで)、間引きの処理を繰返し行うようにしてもよい。例えば、ストロークデータ処理部1141は、図8(c)に示す第1の正規化ストロークデータのうち、1画目のデータ(時系列番号1~13のデータ)を抜き出して上記の間引きの処理を行った後、2画目のデータ(時系列番号14~22のデータ)を抜き出して上記の間引きの処理を行うようにしてもよい。
{x(t+1)-x(t)}2+{y(t+1)-y(t)}2>SIZE/10 …(7)
図9は、図8(b)、図8(c)に示す第1の正規化ストロークデータから、上記の処理により特徴点を間引いた状態について示した図である。
電子ペン30を用いた文字入力の場合、非コンタクト状態からコンタクト状態となったときに、電子ペン30のペン先31がディスプレイパネル21上ですべる等して密集した特徴点が発生するが、この密集した特徴点は文字の形態を構成するものでないため、文字認識用のデータとしてはノイズとなる。そのため、ストロークデータ処理部1141では、入力ストロークデータについて上記のような間引き処理を行うことにより、ノイズを除去して学習精度及び認識精度を向上させている。
図9(a)は、間引き処理後の第1の正規化ストロークデータを示した画像である。図9(b)は、間引き処理後の第1の正規化ストロークデータを示している。
図9に示す第1の正規化ストロークデータでは、間引き処理前の22個から16個まで特徴点が間引かれている。なお、図9に示すように、ストロークデータ処理部1141は、第1の正規化ストロークデータから特徴点を間引く際に、時系列番号に抜けがないように降りなおすものとする。
そして、図9に示す正規化ストロークデータでは、時系列番号1~9の特徴点が1画目の特徴点であり、時系列番号10~16の特徴点が2画目の特徴点となっている。ストロークデータ処理部1141は、間引きの前後において、各画の特徴点のリストを管理しているものとする。
次に、ストロークデータ処理部1141は、間引きした第1の正規化ストロークデータに基づき、非コンタクト状態の区間(各画の間の区間)も含めて、各特徴点間の距離が所定以下となるように特徴点を補間する処理(以下、「特徴点補間処理」とも呼ぶ)を行ったデータ(以下、「第2の正規化ストロークデータ」と呼ぶ)を生成する(S104)。
例えば、時系列tの特徴点とその次の時系列t+1の特徴点に基づいて以下の(8)式を計算し、成立する場合には、その2つの特徴点の間の位置(例えば、中間位置)に新たな特徴点(2つの特徴点の間の時系列の特徴点)を補間(追加)するようにしてもよい。
{x(t+1)-x(t)}2+{y(t+1)-y(t)}2>SIZE/10 …(8)
ここでは、サンプル位置を間引くか否か判定するための閾値((8)式の右辺)としてSIZE/100=100/10=10を適用するものとして説明するが、この閾値は任意に設計した値を設定(例えば、実験等により好適な値を探索して設定)するようにしてもよい。
ここでは、ストロークデータ処理部1141は、各時系列のサンプル位置について(8)式を当てはめて計算し、成立する場合に次の時系列との間に新たな特徴点を補間するものとする。
この場合新たに追加する特徴点のx座標を「{x(t+1)+x(t)}/2」(つまりx(t+1)とx(t)の平均値)とし、y座標を「{y(t+1)+y(t)}/2」(つまりy(t+1)とy(t)の平均値)とするようにしてもよい。
ストロークデータ処理部1141は、画ごとに全ての時系列のサンプル位置について(8)式が成立しない状態となるまで、特徴点補間処理を再帰的に繰返し行う。例えば、ストロークデータ処理部1141は、時系列tの特徴点と時系列t+1の特徴点との間に新たな特徴点を補間した場合、追加した特徴点の時系列をt+1として再度(8)式を当てはめて計算して、成立する場合新たな特徴点を補間する処理を繰り返すようにしてもよい。
例えば、ストロークデータ処理部1141は、図8(c)に示す第1の正規化ストロークデータのうち、1画目のデータ(時系列番号1~13のデータ)を抜き出して上記の特徴点補間処理を行い、さらに2画目のデータ(時系列番号14~22のデータ)を抜き出して上記の特徴点補間処理を行う。
そして、ストロークデータ処理部1141は、画と画の間についても上記の特徴点補間処理を行って、所定間隔ごとの特徴点で埋める処理を行う。例えば、ストロークデータ処理部1141は、1画目の最後の時系列の特徴点と2画目の最初の時系列の特徴点との間に、上記の特徴点補間処理を行うことにより、1画目の末尾と2画目の先頭との間を所定間隔の特徴点で埋める。つまり、ストロークデータ処理部1141は、1画目の末尾と2画目の先頭との間を一つの画として特徴点の追加処理を行うことになる。
さらに、ストロークデータ処理部1141は、それぞれの特徴点に対してペン先状態の項目の情報を付与する。具体的には、ストロークデータ処理部1141は、コンタクト状態の特徴点(各画に属する特徴点)のペン先情報にコンタクト状態を表す「1」を付与し、非コンタクト状態(画の間の区間の特徴点)のペン先情報に非コンタクト状態を表す「0」を付与する。
図10は、図9に示す間引きされた第1の正規化ストロークデータに対して、上記の特徴点補間処理を行い、第2の正規化ストロークデータを取得する処理について示した図である。
図10では、1画目として時系列番号1~40の特徴点が設定され、2画目として時系列番号63~102の特徴点が設定されている。そして、図10では、1画目と2画目の間の時系列番号41~62の特徴点が非コンタクト状態の区間として設定されている。
次に、ストロークデータ処理部1141は、第2の正規化ストロークデータから、N+1個の特徴点を抽出したデータ(以下、「第3の正規化ストロークデータ」と呼ぶ)を生成する(S105)。
ここでは、第2の正規化ストロークデータの特徴点の数を「C」と表すものとする。
ストロークデータ処理部1141は、C>N+1の場合、第2の正規化ストロークデータからN+1個の特徴点を抽出(選択)して第3の正規化ストロークデータを生成する。また、ストロークデータ処理部1141は、N+1>Cの場合、第2の正規化ストロークデータの一部又は全部の特徴点について複数回選択することで、N+1個の特徴点のデータを抽出し、第3の正規化ストロークデータを生成する。第3の正規化ストロークデータでは、可能な限り各特徴点の間の距離の偏りが少ないことが望ましい。ストロークデータ処理部1141において、第2の正規化ストロークデータからN+1個の特徴点を抽出する方式については限定されないものであるが、例えば以下のような処理を行うことで、第3の正規化ストロークデータにおける各特徴点間の距離の偏りを低減することができる。
ここでは、ストロークデータ処理部1141は、第3の正規化ストロークデータのi番目の特徴点(iは1~Nのいずれかの整数)として、第2の正規化ストロークデータのD(i)番目の時系列の特徴点を選択するものとする。D(i)としては、例えば以下の(9)式を適用することができる。つまり、D(i)は、C/(N+1)にiをかけたものから小数点以下を切り捨てた整数となる。
D(i)=[{C/(N+1)}*(i―1)]+1 …(9)
図11は、図10に示す第2の正規化ストロークデータからN+1個の特徴点を抽出した結果得られる第3の正規化ストロークデータの例について示した図である。
図12は、図11に示す第3の正規化ストロークデータを画像の形式で表した図である。
例えば、図10に示す第2の正規化ストロークデータは102個の特徴点から構成されているので、ここから(9)式を用いて101個を抽出することになる。例えば、D(1)=1、D(2)=2、・・・、D(99)=99、D(100)=100、D(101)=102となるので、第2の正規化ストロークデータのうち101番目の特徴点のみ選択(抽出)されないこと(スキップされること)になる。
次に、N+1<Cの場合の例について説明する。仮にC=30とすると、D(1)=1、D(2)=1、D(2)=1、D(3)=1、D(4)=2、・・・、D(99)=29、D(100)=29、D(101)=30のようになる。
以上のように(9)式を用いることで、効率的に第3の正規化ストロークデータのi番目の特徴点を、第2の正規化ストロークデータからピックアップすることができる。
次に、ストロークデータ処理部1141は、第2の正規化ストロークデータについて、入力ベクトルデータに変換して取得する(S105)。
ストロークデータ処理部1141は、第2の正規化ストロークデータを構成する各時系列のX座標、Y座標、及びペン先状態を、それぞれ各時系列のVX、VY、VTに設定する。そして、ストロークデータ処理部1141は、上記の通り、VX(t)、VX(t+1)、VY(t)、及びVY(t+1)に基づいて、VR(t)、VU(t)、VL(t)、VD(t)を得ることができる。これにより、ストロークデータ処理部1141は、V(1)~V(100)を得ることができる。
図13は、図11に示す第2の正規化ストロークデータに基づいて取得された入力ベクトルデータの例について示している。
次に、ストロークデータ処理部1141が、入力ストロークデータからオフライン文字認識処理用の入力画像データを生成する処理について図14のフローチャートを用いて説明する。
まず、ストロークデータ処理部1141が、1文字分の入力ストロークデータを保持したものとする(S201)。
次に、ストロークデータ処理部1141は、入力ストロークデータについて所定の解像度の正規化領域に丁度おさまるように正規化したデータ(以下、「第4の正規化ストロークデータ」と呼ぶ)を取得する(S202)。
図15は、ストロークデータ処理部1141が、オンライン文字認識処理用の入力ベクトルデータを生成する過程の正規化処理について示した図である。
図15(a)は、図6に示す入力ストロークデータのうち、特徴点(サンプル位置)が描画される領域のみを切り出した画像となっている。
図15(b)は、図15(a)の画像を64画素×64画素の正規化領域(縦横比が1:1の領域)に変換した画像を示している。
そして、図15(c)は、図15(b)の正規化領域の画像の各特徴点(各画素)に対応する正規化ストロークデータ(第4の正規化ストロークデータ)を示す図となっている。
図15(b)、図15(c)に示すように、ストロークデータ処理部1141は、入力ストロークデータを、64画素×64画素の正規化領域に正規化する際に、上下左右の端に2画素の余白を設けるものとする。すなわち、ストロークデータ処理部1141は、実質的に入力ストロークデータを、60画素×60画素の領域に正規化する処理を行うことになる。図15の例では、ストロークデータ処理部1141は、入力ストロークデータの画像(208画素×270画素の画像)を60画素×60画素の画像(縦横比が1:1の画像)に変換する解像度変換処理を行った後における各特徴点の座標を取得することで、図15(c)に示す第4の正規化ストロークデータを得ることができる。このとき、ストロークデータ処理部1141が行う解像度変換処理の具体的な手法については、種々の画像処理手法を適用することができるので、具体的な処理の過程については説明を省略する。
次に、ストロークデータ処理部1141は、第4の正規化ストロークデータから、各特徴点で、隣接する特徴点との間が所定以上となるように特徴点を間引く処理を行う(S203)。
ストロークデータ処理部1141が、第4の正規化ストロークデータから特徴点を間引く処理については、上述の第1の正規化ストロークデータから特徴点を間引く処理とほぼ同様の処理を適用するようにしてもよい。例えば、ストロークデータ処理部1141は、画ごとに、全ての時系列の特徴点について(7)式が成立しない状態となるまで(全ての特徴点の間の距離が所定以上となるめで)、間引きの処理を繰返し行うようにしてもよい。このとき、ストロークデータ処理部1141は、(7)式を適用する際のSIZEを第4の正規化ストロークデータの解像度と同じく64に設定することが望ましい。
次に、ストロークデータ処理部1141は、特徴点の間引きを行った後の第4の正規化ストロークデータに基づいて、入力画像データを取得する(S204)。
例えば、ストロークデータ処理部1141は、64画素×64画素の画像領域に、間引き処理を行った後の第4の正規化ストロークデータから各画の特徴点のデータを取得し、上記の画像領域で各画について特徴点間を結ぶ線を描画することで入力画像データを取得するようにしてもよい。
図16は、図15に示す第4の正規化ストロークデータに基づいて得られる入力画像データの画像について示した図である。
次に、文字認識処理部114が学習モードで動作する場合の処理について、図17を用いて説明する。
ここでは、文字認識処理部114が学習モードで動作しているときに、コンテンツ処理部111から文字認識処理部114に、学習用の入力ストロークデータ(1文字分の入力ストロークデータ)と、当該入力ストロークデータの文字に対応する正解ラベルのセットが供給されたものとする。
まず、ストロークデータ処理部1141は、供給された入力ストロークデータに基づいて入力ベクトルデータと入力画像データを生成し、それぞれオンラインAI処理部1142とオフラインAI処理部1143に供給する(S301)。
学習モードで動作している文字認識処理部114のオンラインAI処理部1142では、供給された入力ベクトルデータと正解ラベルに基づいて学習処理が行われる(S302)。
また、学習モードで動作している文字認識処理部114のオフラインAI処理部1143では、供給された入力画像データと正解ラベルに基づいて学習処理が行われる(S303)。
以上のように、文字認識処理部114では、コンテンツ処理部111から学習用のデータが供給される度に、当該学習用データセットを用いた学習処理が行われる。
次に、文字認識処理部114が認識処理モードで動作する場合の処理について、図18を用いて説明する。
ここでは、文字認識処理部114が文字認識モードで動作しているときに、コンテンツ処理部111から文字認識処理部114に、学習用の入力ストロークデータ(1文字分の入力ストロークデータ)が供給されたものとする。
まず、ストロークデータ処理部1141は、供給された入力ストロークデータに基づいて入力ベクトルデータと入力画像データを生成し、それぞれオンラインAI処理部1142とオフラインAI処理部1143に供給する(S401)。
文字認識モードで動作している文字認識処理部114のオンラインAI処理部1142は、供給された入力ベクトルデータに基づいて、保持した学習モデルを用いた文字判定処理を行い、その判定結果(オンライン判定結果)について信頼度と共に文字認識結果出力部1144に供給する(S402)。
文字認識モードで動作している文字認識処理部114のオフラインAI処理部1143は、供給された入力画像データに基づいて、保持した学習モデルを用いた文字判定処理を行い、その判定結果(オフライン判定結果)について信頼度と共に文字認識結果出力部1144に供給する(S403)。
次に、文字認識結果出力部1144は、オンライン判定結果とオフライン判定結果の信頼度を比較して、信頼度の大きい方の判定結果を選択し(S404)、出力する(S405)。
以上のように、文字認識処理部114では、コンテンツ処理部111から供給される入力ストロークデータが供給される度に、判定結果を出力する。
(A-3)第1の実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
(A-3-1)まず、発明者が、認識処理システム1の文字認識処理部114を実際に構築して、学習処理及び文字認識処理を行った場合における文字認識精度(判定結果の正解率)について実験(以下、「本実験」と呼ぶ)を行ったので、本実験の内容及び結果について以下に記す。
本実験では、「カタカナ」、「ひらがな」、及び「JIS第1水準の漢字」の文字(計3107種類の文字)をサンプルの書体(以下、「サンプル書体」と呼ぶ)として学習処理及び認識処理を行った。本実験では、サンプル書体1文字あたり160サンプルの入力ストロークデータ(人間が電子ペン30を用いてペンタブレット20に入力した際の入力ストロークデータ)と正解ラベルを用意して、学習モードで動作する文字認識処理部114に供給した。これにより、各サンプル書体の各サンプルについて上記の図17のフローチャートの処理が行われ、オンラインAI処理部1142及びオフラインAI処理部1143でそれぞれ学習モデルが取得される。
そして、本実験では、上記の文字認識処理部114で上記の学習処理が完了した後の認識精度を確認するために、サンプル書体1文字あたり160サンプルの入力ストロークデータと正解ラベルを用意して、認識処理モードで動作する文字認識処理部114に供給した。これにより、各サンプル書体の各サンプルについて上記の図18のフローチャートの認識処理が行われた。このとき、発明者は、オンライ判定結果とオフライン判定結果のそれぞれ単独の正解率と、文字認識結果出力部1144から出力される判定結果(オンライン判定結果とオフライン判定結果を総合的に判断した結果)の正解率を確認した。本実験の結果、オンライン判定結果単独の正解率は約94%であり、オフライン判定結果単独の正解率は約90%であった。そして、文字認識結果出力部1144から出力される判定結果は約98%であった。つまり、オンライン判定結果とオフライン判定結果の両方を考慮して最終的な判定結果を出力する方が認識精度は高いことがわかった。
(A-3-2)第1の実施形態の情報処理端末10(文字認識処理部114)では、オンライン文字認識の学習処理及び文字認識処理で用いられる入力ベクトルデータについて、全てN個の特徴点となるように正規化して処理している。これにより、第1の実施形態の情報処理端末10(文字認識処理部114)では、画数等に拘わらず、全ての文字について固定長の入力ベクトルデータを生成して処理できる。一般的に、ニューラルネットワークを用いた機械学習処理では、固定長のデータ入力を行うことが望ましいためである。可変長の入力層に対応したAIエンジンを使用することや、最も長いデータ長に合わせた固定長の入力層を備えるニューラルネットワークで構成(固定長の入力層を実質的に可変長で使用)することも考えられるが、固定長の入出力で完結させる場合と比較して処理効率や認識精度が不安定となるおそれがある。
(A-3-3)第1の実施形態の情報処理端末10(文字認識処理部114)では、入力ベクトルデータを構成する特徴量として、座標(VX、VY)だけでなく、動きベクトル(VR、VU、VL、VD)と電子ペン30のペン先の状態(コンタクト状態又は非コンタクト状態)に関するパラメータについても導入している。これにより、第1の実施形態の情報処理端末10(文字認識処理部114)では、電子ペン30のペン先が非コンタクト状態の間のストロークの情報も含めて特徴量として取得している。また、第1の実施形態の情報処理端末10(文字認識処理部114)では、特許文献1の記載技術のように予め文字ごとに標準パターンを用意しておくことや、文字認識の際に全ての標準パターンとの特徴点の対応付けの処理等が不要である。以上のように、第1の実施形態の情報処理端末10(文字認識処理部114)では、文字入力の際のストロークについて取得する情報量を増やしつつ効率的な文字認識処理を行うことができる。
(B-1)第2の実施形態
以下、本発明による認識処理装置、認識処理プログラム、認識処理方法、及び認識処理システムの第2の実施形態を、図面を参照しながら詳述する。この実施形態では、情報処理端末を本発明の認識処理装置として構成した例について説明する。
第2の実施形態に係る文字も、図1を用いて示すことができる。なお、図1において括弧内の符号は、第2の実施形態でのみ用いられる符号である。
以下、第2の実施形態の文字について第1の実施形態との差異を説明する。
第2の実施形態の認識処理システム1Aでは、情報処理端末10が情報処理端末10Aに置き換わっている点で、第1の実施形態と異なっている。また、第2の実施形態の情報処理端末10Aでは、制御部11が制御部11Aに置き換わっている。さらに、第2の実施形態の制御部11Aでは、コンテンツ処理部111と文字認識処理部114が、それぞれコンテンツ処理部111Aと文字認識処理部114Aに置き換わっている点で第1の実施形態と異なっている。さらにまた、第2の実施形態の文字認識処理部114Aでは、ストロークデータ処理部1141がストロークデータ処理部1141Aに置き換わっている点で第1の実施形態と異なっている。
ところで、第1の実施形態では、電子ペン30のペン先状態は、電子ペン30のペン先31がペンタブレット20のディスプレイパネル21に接触しているコンタクト状態と、電子ペン30のペン先31がペンタブレット20のディスプレイパネル21に接触していない非コンタクト状態のいずれかであると説明したが、ペンタブレット20と電子ペン30に適用するデバイスの組合せによっては、非コンタクト状態でも電子ペン30のペン先31の横方向の位置を追跡可能なものが存在する。例えば、ワコム(商標登録)社製のペンタブレットとスタイラスペンの組合せを適用する場合、スタイラスペンが非コンタクト状態であっても、ペン先の高さが所定以下であればペンタブレットにおいてペン先の位置(横方向の位置)を追跡することができる。
そこで、この実施形態においては、ペンタブレット20において、電子ペン30のペン先31が非コンタクト状態であっても、ペン先31の高さが所定以下であればペン先31の横方向の位置(座標)を検出可能な構成であるものとして説明する。そして第2の実施形態では、電子ペン30のペン先状態が非コンタクト状態であり、かつ、ペンタブレット20でペン先31の横方向の位置を追跡可能である場合、その状態(ペン先状態)を「ホバー状態」と呼ぶものとする。また、第2の実施形態では、電子ペン30のペン先状態が非コンタクト状態であり、かつ、ペンタブレット20でペン先31の横方向の位置が追跡できない場合、その状態(ペン先状態)を「ロス状態」と呼ぶものとする。
図19、図20は、ユーザが電子ペン30を用いてペンタブレット20に、画数として2画である漢字(例えば、「八」等)を描いた場合における時系列ごとのペン先31の高さ及びペン先状態を示したタイミングチャートである。
図19では横軸を時刻tとし、縦軸を電子ペン30のペン先31の高さ(時系列ごとの高さ)を示している。図19では、時刻t0~t21の各時刻のペン先31の位置を楔形(下側に先端を向けた楔型)のシンボルの先端の位置で表している。ここでは、時刻t0~t21は、それぞれペンタブレット20において電子ペン30(ペン先31)に対する座標等の検知(サンプリング)を行うタイミングを示しているものとして説明する。
また、図19では、ペン先31がコンタクト状態となっている時刻のシンボルを黒色としており、ペン先31がホバー状態となっている時刻のシンボルにハッチ(斜線)を付しており、ペン先31がロス状態となっている時刻のシンボルの輪郭を破線としている。
図19において、時刻t0~t4は、1画目を描くことを示しており、電子ペン30のペン先31がコンタクト状態となっている。コンタクト状態の間は、ペンタブレット20においてセンサにより、電子ペン30(ペン先31)の座標及び筆圧が取得される。
図19において、時刻t5~t7は、1画目を描き終わって電子ペン30のペン先31がホバー状態となっている。上述の通り、ワコム社製のペンタブレット等ではスタイラスペンがペンタブレットのパネルから一定距離浮いた状態でも座標を取得すること、及びスタイラスペンの存在を検出することができる。ホバー状態の場合、ワコム社製のペンタブレットでは、筆圧値として「0」(つまりホバーである値が示される)が取得されることになる。
図19において、時刻t8~t11では、ユーザが電子ペン30のペン先31をさらに、ペンタブレット20から離し、電子ペン30(ペン先31)がロス状態となっている。ロス状態の間は、ペンタブレット20において、電子ペン30(ペン先31)の座標を検知することはできない。
図19において、時刻t12~t13では、ユーザが2画目を描くために、再び電子ペン30(ペン先31)をペンタブレット20に近づけたためホバー状態となっている。そして、続く時刻t14~t19では、ユーザが2画目を書き始めるため、電子ペン30(ペン先31)がペンタブレット20に接触し、コンタクト状態となっている。
図20の例では、タイミングt8~t12がロス状態ではなくホバー状態になっていること以外は図19の例と同様である。
図21は、図19のタイミングチャートに示す各サンプル(特徴点)におけるペン先状態の集計結果について示している。図21に示すように、図19の例では、20サンプル分の時間が経過する間に、ロス状態の期間(時刻t8~t11)を除いて16個のサンプル(電子ペン30の座標)が得られている。また、図21に示すように、図19の例では、得られた16個のサンプルのうち、コンタクト状態のサンプルが11個で、ホバー状態のサンプルが5個となっている。
図22は、図19のタイミングチャートに示す各サンプル(特徴点)を示した図である。図22では、ユーザが漢字の「八」を描いた場合の図となっている。
図22では、コンタクト状態の特徴点を円形(○)のシンボルで示し、ホバー状態の特徴点を三角形(△)のシンボルで示し、ロス状態の位置を四角形(□)のシンボルで示している。なお、ロス状態の場合、ペンタブレット20で特徴点の座標を取得することはできないが、図22では、仮に座標(ペン先31の横方向の位置)が取得できたとした場合の位置を四角形のシンボルで図示している。また、以下では、t0~t20の各特徴点のx座標をx0~x20、y座標をy0~y20と表す。
以上のように、第2の実施形態のペンタブレット20では、電子ペン30について、コンタクト状態、ホバー状態、ロス状態のいずれかを検知することが可能となっているものとする。
第1の実施形態の情報処理端末10(制御部11)では、コンタクト状態のサンプル(座標)のみで構成された入力ストロークデータを正規化してオンラインAI処理部1142用の入力ベクトルデータを生成していた。これに対して、第2の実施形態の情報処理端末10A(制御部11A)では、オンラインAI処理部1142向けの入力ストロークデータにおいて、コンタクト状態、ホバー状態、及びロス状態の3つのステータスを反映可能である点で、第2の実施形態と異なっている。なお、第2の実施形態において、オフラインAI処理部1143向けの入力ストロークデータの構成及び正規化の処理については第1の実施形態と同様の処理を適用できるため、ここでは説明を省略する。
次に、第2の実施形態におけるオンラインAI処理部1142向けの入力ストロークデータの構成及び正規化の方法の例について説明する。第2の実施形態では、オンラインAI処理部1142向けの入力ストロークデータの構成及び正規化方法として、例えば、以下の5つ方法が挙げられる。
[第1の正規化方法]
第1の正規化方法では、コンタクト状態のみの特徴点(座標)のみを用いて入力ストロークデータを構成して正規化し、N+1個の特徴点に正規化する。すなわち、第1の正規化方法では、上記の図19、図21の例でいうと、t0~t4及びt14~t19の計9サンプルの特徴点を用いて入力ストロークデータを表現することになる。この場合、N=100で正規化する場合を想定すると、入力ストロークデータの特徴点を約11倍にアップサンプリングすることになる。第1の正規化方法では、第1の実施形態と同様に、入力ストロークデータについて画(ペン先状態がコンタクト状態の区間)ごとに処理(特徴点の間引き処理及び補間処理)して正規化することにより入力ベクトルデータを得ることができる。
[第2の正規化方法]
第2の正規化方法では、コンタクト状態のサンプル(特徴点)にホバー状態のサンプルの一部(例えば、1サンプル分のみ)を抽出して加えた入力ストロークデータを構成して正規化する。第2の正規化方法では、例えば、ホバー状態のサンプルのうち、ロス状態の期間の前又は後のいずれかのタイミングのサンプル(例えば、図19の例における時刻t7又はt12のサンプル)を抽出して入力ストロークデータに加えるようにしてもよいし、ロス状態の期間の前後両方のサンプル(例えば、図19の例における時刻t7とt12のサンプル)を抽出して入力ストロークデータに加えるようにしてもよい。
図23は、図19のタイミングチャートに示す各サンプル(特徴点)について、第2の正規化方法を適用した場合における入力ストロークデータの例について示した図である。図23では、コンタクト状態のサンプルに、ロス状態の期間の前後両方のサンプル(時刻t7とt12のサンプル)を追加することで入力ストロークデータを構成した例について示している。図23では、ペン先状態の項目でホバー状態を「0」で表している。
ストロークデータ処理部1141Aでは、第2の正規化方法が適用される場合、画の間(コンタクト状態区間の間)の区間(ホバー状態及びロス状態により構成される1つの区間)についても、画(コンタクト状態の区間)と同様に正規化する処理を行って入力ベクトルデータを取得するようにしてもよい。例えば、図23のような入力ストロークデータであった場合、ストロークデータ処理部1141Aは、1画目の最後の特徴点と、2画目の最初の特徴点との間の区間について1つの画と同様の正規化処理を行うようにしてもよい。
ストロークデータ処理部1141Aでは、第2の正規化方法が適用される場合、非コンタクト状態の期間(ホバー状態及びロス状態の期間)又は、当該非コンタクト状態の期間の直前もしくは直後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」とするものとする。
[第3の正規化方法]
第3の正規化方法では、コンタクト状態のサンプルに全てのホバー状態のサンプルを加えた入力ストロークデータを構成して正規化する。例えば、図19、図21の例では、コンタクト状態又はホバー状態の16個のサンプルを入力ストロークデータに含めるようにしてもよい。
ストロークデータ処理部1141Aでは、第3の正規化方法が適用される場合、画の間(コンタクト状態区間の間)の区間(ホバー状態及びロス状態により構成される1つの区間)についても、画(コンタクト状態の区間)と同様に正規化する処理を行って入力ベクトルデータを取得するようにしてもよい。
図24は、図19のタイミングチャートに示す各特徴点について、第3の正規化方法を適用した場合における入力ストロークデータの例について示した図である。図24では、ホバー状態におけるペン先状態を「0」としている。
ストロークデータ処理部1141Aでは、第2の正規化方法が適用される場合、画の間(コンタクト状態区間の間)の区間(ホバー状態及びロス状態により構成される1つの区間)についても、画(コンタクト状態の区間)と同様に正規化する処理を行って入力ベクトルデータを取得するようにしてもよい。例えば、図23のような入力ストロークデータであった場合、ストロークデータ処理部1141Aは、1画目の最後の特徴点と、2画目の最初の特徴点との間の区間について1つの画と同様の正規化処理を行うようにしてもよい。
第3の正規化方法では、ホバー状態の期間及びホバー状態の期間の前後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」とするものとする。ストロークデータ処理部1141Aでは、第3の正規化方法が適用される場合、非コンタクト状態の期間(ホバー状態及びロス状態の期間)又は、当該非コンタクト状態の期間の直前もしくは直後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」とするものとする。
[第4の正規化方法]
第4の正規化方法では、全てのサンプル(コンタクト状態、ホバー状態、及びロス状態)で入力ストロークデータを構成して正規化する。例えば、図19、図21の例では、20個全てのサンプルを入力ストロークデータに含めるようにしてもよい。
図25は、図19のタイミングチャートに示す各特徴点について、第4の正規化方法を適用した場合における入力ストロークデータの例について示した図である。
図25では、ホバー状態におけるペン先状態を「0」とし、ロス状態におけるペン先状態を「2」としている。図25では、ロス状態の時刻t8~t11のx座標をc_x8~c_x11、y座標をc_y8~c_y11と図示している。図25では、ロス状態の時刻t8~t11の各座標(X座標とY座標)は、前後のホバー期間の特徴点の座標の間を補間(線形補間)した位置の座標を設定するようにしてもよい。図25の例では、ロス状態の期間の直前のt7の座標(x7、y7)と直後の座標(x12,y12)の間を結ぶ線上に等間隔でt8~t11の各座標を設定するようにしてもよい。
ストロークデータ処理部1141Aでは、第4の正規化方法が適用される場合、ホバー状態の区間及びロス状態の区間についても、画(コンタクト状態の区間)と同様に正規化する処理(特徴点の間引き及び補間の処理)を行って入力ベクトルデータを取得する。例えば、図25のような入力ストロークデータであった場合、ストロークデータ処理部1141Aは、時刻t5~t7のホバー状態の区間、時刻t8~t11のロス状態の区間、時刻t12~t14のホバー区間についても、画の区間(コンタクト状態の区間)と同様の正規化処理(特徴点の間引き及び補間の処理)を行って接続するようにしてもよい。
また、第4の正規化方法では、ホバー状態の期間やロス状態の期間において特徴点を補間する際には、以下のようなルールで入力ベクトルデータ上のペン先状態の値を設定するようにしてもよい。第4の正規化方法では、ロス状態の期間及びロス状態の期間の直前又は直後前後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「2」(ロス状態)とするようにしてもよい。さらにまた、第4の正規化方法では、ロス状態の期間の直前のホバー状態の期間において、当該ホバー状態の期間及び当該ホバー状態の期間の直前に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」(ホバー状態)とするようにしてもよい。また、第4の正規化方法では、ロス状態の期間の直後のホバー状態の期間において、当該ホバー状態の期間及び当該ホバー状態の期間の直後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」(ホバー状態)とするようにしてもよい。
以上のように、第4の正規化方法を適用する場合、図19のタイミングチャートの例では、ロス状態のサンプルも含む全てのサンプル(20サンプル)を用いて入力ストロークデータを生成するので、正規化の際、5倍程度の特徴点の補間(希釈化)ですむため、より正確な情報(より多くの情報量)を入力ベクトルデータに盛り込むことができる。つまり、第4の正規化方法を適用する場合、図19のタイミングチャートの例では、ホバー状態とロス状態を区別した情報を入力ベクトルデータに盛り込むことができる。これにより、第4の正規化方法では、入力ベクトルデータの情報量を増やすことができるので、学習環境や認識環境によっては、認識精度を向上させることができる。
[第5の正規化方法]
第5の正規化方法では、第4の正規化方法と同様に全てのサンプル(コンタクト状態、ホバー状態、及びロス状態)で入力ストロークデータを構成して正規化する。ただし、第5の正規化方法では、ロス状態とホバー状態を画一的に扱う点で、第4の正規化方法と異なる。ここでは、第5の正規化方法において、ロス状態とホバー状態を全てホバー状態として扱うものとして説明する。
図26は、図19のタイミングチャートに示す各特徴点について、第5の正規化方法を適用した場合における入力ストロークデータの例について示した図である。
図26では、ロス状態の期間のペン先状態もホバー状態と同じく「0」に設定されている点で、図25(第4の正規化方法)と異なっている。
第5の正規化方法では、ホバー状態及びロス期間により構成される期間(図19では、時刻t5~t13の期間)及び当該期間の直前もしくは直後に特徴点を補間する場合、入力ベクトルデータにおいてそれらの特徴点のペン先状態を「0」とするものとする。
これにより、第5の正規化方法では、例えばペンタブレット20のセンサ(電子ペン30を検知するセンサ)の能力の違いに寄りホバー状態で座標を取得できる高さ(検出範囲)に変動があり、図19の状態と図20の状態が混在する場合であっても、入力ベクトルデータの内容はほぼ同じになるため、安定的な学習処理や認識処理を行うことができる。
(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(C-1)上記の各実施形態において、情報処理端末10とペンタブレット20(ディスプレイパネル21)とは分離されたデバイス構成となっているが、一体の構成となるようにしてもよい。例えば、情報処理端末10として、タッチパネルディスプレイを備えるコンピュータ(例えば、タブレット端末やスマートホン)を用いて構成するようにしてもよい。
(C-2)上記の各実施形態において、文字認識処理部114は、オンラインAI処理部1142とオフラインAI処理部1143の両方を備えているが、オンラインAI処理部1142のみを備える構成としてもよい。