(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024100572
(43)【公開日】2024-07-26
(54)【発明の名称】情報処理装置、方法、及びプログラム
(51)【国際特許分類】
G06V 30/18 20220101AFI20240719BHJP
G06F 3/04883 20220101ALI20240719BHJP
【FI】
G06V30/18 B
G06F3/04883
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023004674
(22)【出願日】2023-01-16
(71)【出願人】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100176072
【弁理士】
【氏名又は名称】小林 功
(74)【代理人】
【識別番号】100169225
【弁理士】
【氏名又は名称】山野 明
(72)【発明者】
【氏名】掛 晃幸
(72)【発明者】
【氏名】洪 毓珮
【テーマコード(参考)】
5B064
5E555
【Fターム(参考)】
5B064AB04
5B064CA12
5B064DC06
5E555AA05
5E555AA54
5E555BA02
5E555BA05
5E555BA06
5E555BA82
5E555BB02
5E555BB05
5E555BB06
5E555BC19
5E555CA14
5E555CB10
5E555CB44
5E555CC22
5E555DB41
5E555DC19
5E555DC24
5E555DC26
5E555DC27
5E555DC45
5E555DD03
5E555EA14
5E555EA19
5E555EA24
5E555FA00
(57)【要約】
【課題】入力デバイスを用いた筆記操作を通じて得られる各種情報を自動的かつ適時に検出可能な情報処理装置、方法、及びプログラムを提供する。
【解決手段】情報処理装置16は、入力デバイス(14)を用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータ(50)を取得するデータ取得部26と、取得されたストロークデータ(60)を用いて、筆記操作により筆記されたストローク群(54)に関する特徴量セットを生成する特徴量生成部28と、生成された特徴量セットに対して検出処理を施し、ストローク群(54)の中から筆圧値又は該筆圧値の時間変化が特異である特異ストローク(56)を検出する特異性検出部32と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得するデータ取得部と、
前記データ取得部により取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する特徴量生成部と、
前記特徴量生成部により生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する特異性検出部と、
を備える情報処理装置。
【請求項2】
前記特徴量セットに対して識別処理を施し、前記ストローク群が示す文字を識別する文字識別部をさらに備え、
前記特異性検出部は、前記文字識別部により文字として識別されたストローク群単位、又は文字の候補として識別されたストローク群単位で前記特異ストロークを検出する、
請求項1に記載の情報処理装置。
【請求項3】
前記特異性検出部は、前記特徴量セットを入力とし、前記ストローク毎の特異度を出力とする学習器を含んで構成される、
請求項2に記載の情報処理装置。
【請求項4】
前記特異性検出部は、前記学習器から出力された前記特異度同士の関係に基づいて前記特異ストロークを検出する、
請求項3に記載の情報処理装置。
【請求項5】
前記特異性検出部により検出された前記特異ストロークに対して特異性を示すラベルを付与するデータ処理を行うデータ処理部をさらに備える、
請求項1に記載の情報処理装置。
【請求項6】
前記特異性検出部により検出された前記特異ストロークの特異性を抑制するように、前記ストロークデータの一部を修正又は削除するデータ処理を行うデータ処理部をさらに備える、
請求項1に記載の情報処理装置。
【請求項7】
前記特異性の抑制は、前記特異ストロークの位置、線幅、直線性、又は平滑性を変更することである、
請求項6に記載の情報処理装置。
【請求項8】
前記特異性検出部により検出された前記特異ストロークの特異性を抑制するように、前記ストロークデータの一部を修正又は削除するデータ処理を行うデータ処理部をさらに備え、
前記文字識別部により文字が識別されるまでの間、前記文字識別部による識別処理、前記特異性検出部による検出処理、及び前記データ処理部によるデータ処理を繰り返して実行する、
請求項2に記載の情報処理装置。
【請求項9】
入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得する取得ステップと、
取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する生成ステップと、
生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する検出ステップと、
を1つ又は複数のコンピュータが実行する情報処理方法。
【請求項10】
入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得する取得ステップと、
取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する生成ステップと、
生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する検出ステップと、
を1つ又は複数のコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来から、ユーザが文字や絵などのコンテンツを手書きで入力するための情報処理装置が知られている。例えば、特許文献1には、ファイルに一旦格納された手書きデータを、ユーザが表示状態を確認しながら変更する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、特許文献1に開示される方法では、データの確認及び変更を行うための作業が必要になり、その分だけユーザの負担が増してしまう。
【0005】
本発明はこのような問題に鑑みてなされたものであり、その目的は、入力デバイスを用いた筆記操作を通じて得られる各種情報を自動的かつ適時に検出可能な情報処理装置、方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の第1態様における情報処理装置は、入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得するデータ取得部と、前記データ取得部により取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する特徴量生成部と、前記特徴量生成部により生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する特異性検出部と、を備える。
【0007】
本発明の第2態様における情報処理方法では、入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得する取得ステップと、取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する生成ステップと、生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する検出ステップと、を1つ又は複数のコンピュータが実行する。
【0008】
本発明の第3態様における情報処理プログラムは、入力デバイスを用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータを取得する取得ステップと、取得された前記ストロークデータを用いて、前記筆記操作により筆記されたストローク群に関する特徴量セットを生成する生成ステップと、生成された前記特徴量セットに対して検出処理を施し、前記ストローク群の中から筆圧値又は該筆圧値の時間変化が特異である特異ストロークを検出する検出ステップと、を1つ又は複数のコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、入力デバイスを用いた筆記操作を通じて得られる各種情報を自動的かつ適時に検出することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態における情報処理装置が組み込まれた入力システムの全体構成図である。
【
図2】
図1の情報処理装置の動作を示す第1フローチャートである。
【
図3】
図1のインクデータが有するデータ構造の一例を示す図である。
【
図4】
図3のストロークデータにより可視化されるコンテンツの一例を示す図である。
【
図5】境界ボックス毎の特徴量セットの生成方法の一例を示す図である。
【
図6】第1学習器が有するネットワーク構造の一例を示す図である。
【
図8】ストロークを筆記する際の筆圧変化の一例を示す図である。
【
図9】第2学習器が有するネットワーク構造の一例を示す図である。
【
図10】特異ストロークの検出方法の第1例を示す図である。
【
図11】特異ストロークの検出方法の第2例を示す図である。
【
図12】
図1の情報処理装置の動作を示す第2フローチャートである。
【
図13】
図4における特異ストロークの修正結果の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本発明の実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【0012】
[入力システム10の全体構成]
図1は、本発明の一実施形態における情報処理装置16が組み込まれた入力システム10の全体構成図である。この入力システム10は、ユーザによる筆記文字をデータ化して取り扱う「デジタルインクサービス」を提供可能に構成される。この入力システム10は、具体的には、1台又は複数台のユーザ装置12と、1本又は複数本の電子ペン14(「入力デバイス」に相当)と、情報処理装置16と、を含んで構成される。
【0013】
ユーザ装置12は、デジタルインクサービスを利用するユーザが所有するコンピュータであって、電子ペン14による指示位置を検出する機能を有する。ユーザ装置12は、例えば、タブレット、スマートフォン、パーソナルコンピュータなどから構成される。
【0014】
電子ペン14は、ペン型のポインティングデバイスであり、ユーザ装置12との間で一方向又は双方向に通信可能に構成される。この電子ペン14は、例えば、アクティブ静電結合方式(AES)又は電磁誘導方式(EMR)のスタイラスである。ユーザは、電子ペン14を把持し、ユーザ装置12が有するタッチ面にペン先を押し当てながら移動させることで、ユーザ装置12に絵や文字を書き込むことができる。
【0015】
情報処理装置16は、デジタルインクのデータ処理に関する統括的な制御を行うコンピュータであり、クラウド型あるいはオンプレミス型のいずれであってもよい。ここで、情報処理装置16を単体のコンピュータとして図示しているが、これに代わって、情報処理装置16は分散システムを構築するコンピュータ群であってもよい。具体的には、情報処理装置16は、通信部20と、制御部22と、記憶部24と、を含んで構成される。
【0016】
通信部20は、外部装置に対して電気信号を送受信するインターフェースである。これにより、情報処理装置16は、ユーザ装置12からのインクデータ42を取得するとともに、自身が生成したテキストデータ44をユーザ装置12に供給する。
【0017】
制御部22は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)を含むプロセッサによって構成される。制御部22は、記憶部24に格納されたプログラム及びデータを読み出して実行することで、データ取得部26、特徴量生成部28、文字識別部30、特異性検出部32、及びデータ処理部34として機能する。
【0018】
データ取得部26は、ユーザの筆記操作を通じて順次検出される指示位置での座標値及び筆圧値の集合を示すデータ(以下、ストロークデータ50という)を取得する。具体的には、データ取得部26は、後述するインクデータ42の中からストロークデータ50を抽出して取得する。
【0019】
特徴量生成部28は、データ取得部26により取得されたストロークデータ50を用いて、ユーザの筆記操作により筆記されたストローク群54に関する特徴量の集合体(以下、「ストローク特徴量」ともいう)を生成する。このストローク特徴量には、[1]ストロークを構成する各点の特徴量(以下、点特徴量)、[2]ストロークを構成する複数点の関係性を示す特徴量(以下、点間特徴量)、又は[3]点特徴量又は点間特徴量の時間変化などが含まれる。点特徴量の一例として、一次元座標値、二次元座標値、又は筆圧値が挙げられる。点間特徴量の一例として、変位量、勾配、曲率、又は重心が挙げられる。
【0020】
文字識別部30は、特徴量生成部28により生成された特徴量セットに対して識別処理を施し、ストローク群54(
図4)が示す1つ又は複数の文字を識別する。文字の種類には、例えば、漢字、平仮名、片仮名、算用数字、アルファベット、記号などが含まれる。
【0021】
文字識別部30は、機械学習がなされた学習器(例えば、
図6の第1学習器70)を含んで構成されてもよい。この学習器には特徴量セットが入力されるとともに、この学習器から文字毎の確率(つまり、確率セット)が出力される。学習器の一例として、ニューラルネットワーク、サポートベクターマシン、ランダムフォレスト、勾配ブースティング決定木などが挙げられる。
【0022】
特異性検出部32は、特徴量生成部28により生成された特徴量セットに対して検出処理を施し、ストローク群54の中から特異ストローク56(
図4)を検出する。特異性検出部32は、例えば、文字識別部30により文字として識別されたストローク群単位、又は文字の候補として識別されたストローク群単位で特異ストローク56を検出する。この「特異ストローク」は、筆圧値又は該筆圧値の時間変化が特異であるストロークを意味する。また、「特異」とは、具体的には、標準的なストロークの形態を基準として、位置、線幅、直線性、又は平滑性などが有意に異なることを意味する。
【0023】
特異性検出部32は、機械学習がなされた学習器(例えば、
図9の第2学習器80)を含んで構成されてもよい。この学習器には特徴量セットが入力されるとともに、この学習器からストローク毎の特異度(つまり、特異度セット)が出力される。学習器の一例として、ニューラルネットワーク、サポートベクターマシン、ランダムフォレスト、勾配ブースティング決定木などが挙げられる。
【0024】
特異性検出部32は、第2学習器80から出力された特異度セットを用いて、各々のストロークが特異であるか否かを判定してもよい。この判定は、例えば、[1]ストローク毎の特異度と閾値の間の大小関係、又は[2]複数の特異度同士の相対的関係に基づいて行われてもよい。
【0025】
データ処理部34は、特異性検出部32により検出された特異ストローク56に対して様々なデータ処理を行う。データ処理の一例として、[1]ストロークの特異性を示すラベルの付与、[2]ストロークデータ50(
図4)の部分的な削除、[3]ストロークデータ50の部分的な修正、又は[4]特異ストローク56を検出した旨の報知などが挙げられる。
【0026】
例えば、データ処理部34は、特異ストローク56(
図4)の特異性を抑制するように、ストロークデータ50の一部を削除又は修正するデータ処理を行ってもよい。ここで、「特異性の抑制」とは、特異ストローク56の形態を目標の形態(あるいは、理想の形態)に近づけることを意味し、例えば、[1]ストロークの移動・回転・拡大・縮小、[2]ストロークの線幅の変更、[3]ストロークの直線への置換、又は[4]ストロークの平滑化などを含む。
【0027】
記憶部24は、制御部22が各構成要素を制御するのに必要なプログラム及びデータを記憶している。記憶部24は、非一過性であり、かつ、コンピュータ読み取り可能な記憶媒体で構成されている。ここで、コンピュータ読み取り可能な記憶媒体は、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disc)-ROM、フラッシュメモリなどの可搬媒体、コンピュータシステムに内蔵されるハードディスク(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)などの記憶装置である。
【0028】
本図の例では、記憶部24には、インクデータベース(以下、「インクDB40」という)が構築されるとともに、インクデータ42、テキストデータ44、検出情報46、及びパラメータセット48が格納されている。
【0029】
インクデータ42は、手書きのコンテンツを表現するためのデータ(あるいは、デジタルインク)である。インクデータ42のデータ形式、いわゆる「インク記述言語」は、例えば、InkML(Ink Markup Language)、WILL(Wacom Ink Layer Language)、ISF(Ink Serialized Format)のいずれであってもよい。コンテンツの一例として、文字、イラスト、書画、絵画が挙げられる。
【0030】
テキストデータ44は、文字識別部30により識別された単体の文字又は文字列を示すテキスト形式のデータである。
【0031】
検出情報46は、特異性検出部32による検出結果を含む。検出結果の一例として、[1]特異ストローク56の識別情報(例えば、ストロークID:Identification)、[2]ストローク毎の特異度、[3]特異部分の特徴、[4]特異部分の位置、又は[5]特異性が生じた原因などが挙げられる。
【0032】
パラメータセット48は、学習器の演算規則を特定するための学習パラメータの集合体である。学習パラメータは、例えば、演算ユニットの活性化関数を記述する係数、シナプス結合の強さに相当する重み付け係数、各層を構成する演算ユニットの個数、中間層の層数などを含んでもよい。パラメータセット48は、機械学習の終了によって各値が確定された状態で記憶部24に格納され、必要に応じて適時に読み出される。
【0033】
[情報処理装置16の動作]
<第1動作>
この実施形態における入力システム10は、以上のように構成される。続いて、入力システム10の一部を構成する情報処理装置16の第1動作について、
図2のフローチャート及び
図3~
図11を参照しながら説明する。ここで、「第1動作」とは、特異ストローク56(
図4)にラベルを付与する動作を意味する。
【0034】
図2のステップSP10において、データ取得部26は、ストロークデータ50を含むインクデータ42を取得する。
【0035】
図3は、
図1のインクデータ42が有するデータ構造の一例を示す図である。本図では、XML(eXtensible Markup Language)形式で記述するInkMLの例を挙げて説明する。本図の例では、インクデータ42は、少なくとも1本のストロークの筆記状態を記述するストロークデータ50を含んで構成される。本図の例では、ストロークの筆記順に、上行から下行にわたって合計20本のストロークの筆記状態が記述される。また、1本のストロークは、<trace>タグ内に順次配列される複数のポイントデータにより記述される。図示の便宜上、ストロークの始点及び終点を示すポイントデータのみを表記し、複数の経由点を示すポイントデータの表記を省略している。
【0036】
各々のポイントデータは、電子ペン14の指示位置に対応する座標値(X座標値、Y座標値)及び筆圧値(例えば、10ビットのレベル値)の組み合わせからなり、カンマなどのデリミタで区切られる。このポイントデータには、上記した座標値及び筆圧値の他に、ストロークの筆記順や、電子ペン14の傾斜角・回転角・方位などが含まれてもよい。
【0037】
図4は、
図3のストロークデータ50により可視化されるコンテンツの一例を示す図である。ユーザ装置12の表示パネル上において、タッチ位置を特定するための二次元座標系(以下、センサ座標系:X-Y)が定義される。センサ座標系の全体領域52内には、20本のストロークからなるストローク群54が配置される。ストローク群54は、漢字及び平仮名から構成される文字列を示している。
【0038】
ストローク群54のうちの1本のストローク(以下、「特異ストローク56」という)は、例えば、ペン先の滑りが発生してユーザが書き損じた線に相当する。この特異ストローク56は、理想的には、X方向に沿って延びるように形成されるべきであるが、部位Aにおいて局所的に右上に向かって延びている。
【0039】
図2のステップSP12において、文字識別部30は、ステップSP10で取得されたストロークデータ50に対して識別処理を施し、1本又は複数本のストロークが示す文字を識別する。この識別処理は、例えば、機械学習がなされた第1学習器70(
図6)により行われる。この識別処理に先立ち、特徴量生成部28は、複数本のストロークを示すストロークデータ50から、ストローク毎の特徴量の集合体(つまり、特徴量セット)を生成する。
【0040】
図5は、境界ボックス毎の特徴量セットの生成方法の一例を示す図である。特徴量生成部28は、ユーザ装置12が有するタッチ面に対応する二次元座標系(以下、正規化座標系;X’-Y’)を定義する。この正規化座標系の原点O’は、センサ座標系の原点Oに最も近い位置にある、境界ボックス60の頂点に相当する。正規化座標系のX’軸はセンサ座標系のX軸に平行であるとともに、正規化座標系のY’軸はセンサ座標系のY軸に平行である。また、X’軸,Y’軸のスケールは、境界ボックス60をなす4つの頂点の座標が(0,0),(1,0),(0,1),(1,1)となるように正規化されている。
【0041】
特徴量生成部28は、ストロークデータ50(
図3)を参照し、センサ座標系におけるストロークの始点Psの座標値(X,Y)及び終点Peの座標値(X,Y)を取得する。そして、特徴量生成部28は、座標系の線形変換を施すことで、正規化座標系におけるストロークの始点Psの座標値(X’,Y’)及び終点Peの座標値(X’,Y’)をそれぞれ導出する。なお、ストロークの始点Ps又は終点Peが境界ボックス60の外側にある場合、特徴量生成部28は、境界線上にある経由点を仮想的な始点Ps又は終点Peとみなして軌跡特徴量を生成すればよい。
【0042】
図6は、第1学習器70が有するネットワーク構造の一例を示す図である。第1学習器70は、例えば、入力層72、中間層74及び出力層76からなる階層型ニューラルネットワークで構成される。第1学習器70の演算規則は、学習パラメータの集合体であるパラメータセット48(
図1)の各値によって定められる。
【0043】
入力層72は、ストローク特徴量を入力する層であり、本図の例では4n個の演算ユニットから構成される。ここで、自然数nは、ストロークの本数に相当する。この特徴量セットは、[1]始点PsのX’座標、[2]始点PsのY’座標、[3]終点PeのX’座標、[4]終点PeのY’座標、をストロークIDの順に配列した4n個の成分からなる入力ベクトルである。
【0044】
中間層74は、1層又は2層以上で構成され、特徴量セットの次元数を削減する次元削減機能を有する。つまり、中間層74を構成する演算ユニットの個数は、4n個よりも十分に少ないことが望ましい。
【0045】
出力層76は、文字のラベル群を出力する層であり、本図の例では平仮名の文字数(例えば、濁点・半濁点を除いた46個)の演算ユニットから構成される。演算ユニットの活性化関数がソフトマックス関数である場合、このラベル群は、文字毎の確率を示す46個の成分からなる出力ベクトルである。
【0046】
また、文字の種類が「漢字」である場合、漢字の識別に適した第1学習器70が選択されてもよい。あるいは、文字の種類が特定できない場合、複数種類の文字(例えば、平仮名及び片仮名)の識別に適した第1学習器70が選択されてもよい。
【0047】
図2のステップSP14において、データ処理部34は、ステップSP12で識別された1つ以上の文字から、ストローク群54(
図4)が示すテキストデータ44を生成する。
【0048】
図7は、文字列の識別結果の一例を示す図である。文字の識別処理を通じて、4つの文字をそれぞれ囲む境界ボックスB1,B2,B3,B4が画定される。そして、4つの文字を左側から右側に向かって順次連結することで、日本語で「字を書く」という意味のテキストデータ44が得られる。
【0049】
図2のステップSP16において、データ処理部34は、ステップSP14で生成されたテキストデータ44を保存する。テキストデータ44がインクデータ42のタグ領域内に格納されることで、ストローク群54に新たな属性が付与される。更新されたインクデータ42は、インクDB40に格納される。
【0050】
ステップSP18において、特徴量生成部18は、ストローク毎の特徴量(つまり、ストローク特徴量)を生成する。このストローク特徴量は、ステップSP14で生成された特徴量と同一であってもよいし、異なっていてもよい。ここでは、ストローク特徴量が筆圧値の時間変化に関する特徴量(つまり、筆圧特徴量)を含む場合について説明する。
【0051】
図8は、1本のストロークを筆記する際の筆圧変化の一例を示す図である。グラフの横軸は時間(t)を示すとともに、グラフの縦軸は筆圧量を示している。時間t=Tsは、電子ペン14をタッチ面に押し当てるペンダウン操作の実行時点に相当する。一方、時間t=Teは、電子ペン14をタッチ面から離すペンアップ操作の実行時点に相当する。
【0052】
本図の例では、左右方向に延びて、終端形状が「止め」であるストロークを筆記する場合を想定する。実線のグラフは通常の操作結果を示す一方、破線のグラフは途中でペン先を滑らせた場合の操作結果を示している。通常の操作結果では、筆圧量は、略一定を保ちながら、t=Teの直前で急激に低下する傾向がある。ところが、ペン先の滑りが生じた場合、筆圧量は、途中で急激に上昇してピークに達した後、t=Teにてペンアップ操作を行うまでの間にて緩やかに低下する傾向がある。後者の挙動は、具体的には、
図4の特異ストローク56を筆記した場合に相当する。
【0053】
図2のステップSP20において、特異性検出部32は、ステップSP18で生成された特徴量セットに対して検出処理を施し、ストローク群54の中から特異ストローク56を検出する。この検出処理は、例えば、機械学習がなされた第2学習器80により行われる。
【0054】
図9は、第2学習器80が有するネットワーク構造の一例を示す図である。第2学習器80は、例えば、入力層82、中間層84及び出力層86からなる階層型ニューラルネットワークで構成される。第2学習器80の演算規則は、
図6に示す第1学習器70と同様に、学習パラメータの集合体であるパラメータセット48(
図1)の各値によって定められる。
【0055】
入力層82は、ストローク特徴量を入力する層であり、複数個の演算ユニットから構成される。この特徴量セットは、各々のストロークの始点、経由点又は終点における[1]X’座標、[2]Y’座標、及び[3]筆圧値を、ストロークIDの順に配列した複数個の成分からなる入力ベクトルである。
【0056】
中間層84は、1層又は2層以上で構成され、特徴量セットの次元数を削減する次元削減機能を有する。つまり、中間層84を構成する演算ユニットの個数は、入力層82を構成する演算ユニットの個数よりも十分に少ないことが望ましい。
【0057】
出力層86は、各々のストロークの特異度を出力する層であり、本図の例ではストロークの本数に等しい個数の演算ユニットから構成される。演算ユニットの活性化関数がソフトマックス関数である場合、このラベル群は、ストローク毎の特異度を示すn個の成分からなる出力ベクトルである。
【0058】
第2学習器80は、各々の文字を構成するストローク群54に関する特徴量セットを入力層82から入力し、中間層84による演算を通じて、ストローク毎の特異度を出力層86に出力する。
【0059】
図10は、特異ストローク56の検出方法の第1例を示す図である。グラフの横軸はストローク番号を示すとともに、グラフの縦軸は特異度を示している。特異度は、例えば[0,1]の範囲で正規化された連続値であり、値が「1」に近づくほど特異性が高くなり、値が「0」に近づくほど特異性が低くなるように定義されている。
【0060】
本グラフの例では、ストローク番号「1~5」における特異度が0に近い値であり、ストローク番号「6」における特異度が1に近い値である。第1例では、特異性検出部32は、各々の特異度に対する閾値判定を通じて、特異ストローク56の有無を検出する。この場合、特異度が閾値Thよりも大きい「6番目」が特異ストローク56として検出される。このように、特異性の有無又は程度は、各々の特異度に対する絶対評価を通じて判定されてもよい。
【0061】
図11は、特異ストローク56の検出方法の第2例を示す図である。グラフの横軸はストローク番号を示すとともに、グラフの縦軸は特異度を示している。特異度の定義は、
図10の場合と同様である。
【0062】
本グラフの例では、ストローク番号「1~6」における特異度がいずれも閾値Thに近い値である。第2例では、特異性検出部32は、隣り合う特異度の差分(Δs)に対する閾値判定を通じて、特異ストローク56の有無を検出する。この場合、前後における特異度の差分が大きい「4番目」が特異ストローク56として検出される。このように、特異性の有無又は程度は、特異度同士の相対評価を通じて判定されてもよい。
【0063】
図2のステップSP22において、データ処理部34は、ステップSP20で検出された特異ストローク56に対して特異性を示すラベル(つまり、特異ラベル)を付与する。このようにして、情報処理装置16は、
図2のフローチャートに示す第1動作を終了する。
【0064】
その後、入力システム10は、付与された特異ラベルを用いて、様々なデータ処理を行うことができる。例えば、情報処理装置16は、機械学習に用いられる訓練データをインクデータ42から生成する際、学習精度を向上させる目的で、特異ラベルが付与されたストロークデータ50を除外又は修正する「クレンジング処理」を行ってもよい。あるいは、ユーザ装置12は、インクデータ42が示すストローク群54をレンダリングして表示する際、特異ラベルが付与された特異ストローク56を、他のストロークと比べて強調されるように表示してもよい。
【0065】
<第2動作>
続いて、入力システム10の一部を構成する情報処理装置16の第2動作について、
図12のフローチャート及び
図13を参照しながら説明する。ここで、「第2動作」とは、特異ストローク56(
図4)の形態を修正する動作を意味する。
【0066】
図12のステップSP30において、データ取得部26は、ストロークデータ50を含むインクデータ42を取得する。
【0067】
ステップSP32において、文字識別部30は、ステップSP30で取得されたストロークデータ50に対して識別処理を施し、1本又は複数本のストロークが示す文字を識別する。
【0068】
ステップSP34において、制御部22は、ストローク群54により表現されるすべての文字を識別できたか否かを確認する。識別できない文字がある場合(ステップSP34:NO)、制御部22は、ステップSP36に進む。
【0069】
ステップSP36において、特徴量生成部28は、ステップSP30で取得されたストロークデータ50からストローク特徴量を生成する。
【0070】
ステップSP38において、特異性検出部32は、ステップSP36で生成された特徴量セットに対して検出処理を施し、ストローク群54の中から特異ストローク56を検出する。
【0071】
ステップSP40において、データ処理部34は、ステップSP38で検出された特異ストローク56が望ましい形態に近づくように、ストロークデータ50を修正する。そして、制御部22は、ステップSP32に戻って、すべての文字を識別できるまでの間、ステップSP32~SP40を順次繰り返す。制御部22は、この反復実行を通じて、すべての文字が識別できるようになった場合(ステップSP34:YES)、次のステップSP42に進む。
【0072】
ステップSP42において、データ処理部34は、ステップSP34で識別された1つ以上の文字から、ストローク群54(
図4)が示すテキストデータ44を生成する。
【0073】
ステップSP44において、データ処理部34は、ステップSP42で生成されたテキストデータ44を、ユーザ装置12からの要求に応じて出力する。このようにして、情報処理装置16による第2動作が終了する。
【0074】
図13は、
図4における特異ストローク56の修正結果の一例を示す図である。文字の識別処理を通じて、4つの文字をそれぞれ囲む境界ボックスB1,B2,B3,B4が画定される。データ処理部34による修正処理を通じて、特異ストローク56から修正済みストローク58に置換される。修正済みストローク58は、
図4の部位Aにおける段差がなくなっており、X方向に沿って延びるように形成されている。
【0075】
[実施形態による効果]
以上のように、この実施形態における情報処理装置16は、入力デバイス(ここでは、電子ペン14)を用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータ50を取得するデータ取得部26と、取得されたストロークデータ50を用いて、筆記操作により筆記されたストローク群54に関する特徴量セットを生成する特徴量生成部28と、生成された特徴量セットに対して検出処理を施し、ストローク群54の中から筆圧値又は該筆圧値の時間変化が特異である特異ストローク56を検出する特異性検出部32と、を備える。
【0076】
また、この実施形態における情報処理方法及び情報処理プログラムによれば、1つ又は複数のコンピュータ(あるいは、プロセッサ)が、電子ペン14を用いた筆記操作を通じて順次検出される指示位置を示す座標値及び筆圧の大きさを示す筆圧値の集合を示すストロークデータ50を取得する取得ステップ(SP10,SP30)と、取得されたストロークデータ50を用いて、筆記操作により筆記されたストローク群54に関する特徴量セットを生成する生成ステップ(SP18,SP36)と、生成された特徴量セットに対して検出処理を施し、ストローク群54の中から筆圧値又は該筆圧値の時間変化が特異である特異ストローク56を検出する検出ステップ(SP20,SP38)と、を実行する。
【0077】
このように構成することにより、取得されたストロークデータ50を用いて、筆圧値又は該筆圧値の時間変化が特異である特異ストローク56を自動的かつ適時に検出することができる。
【0078】
また、情報処理装置16が、特徴量セットに対して識別処理を施し、ストローク群54が示す文字を識別する文字識別部30をさらに備える場合、特異性検出部32は、文字識別部30により文字として識別されたストローク群単位、又は文字の候補として識別されたストローク群単位で特異ストローク56を検出してもよい。これにより、文字を構成するストローク同士の関係に基づいて、特異ストローク56をより高い精度で検出することができる。
【0079】
また、特異性検出部32は、特徴量セットを入力とし、ストローク毎の特異度を出力とする学習器(ここでは、第2学習器80)を含んで構成されてもよい。また、特異性検出部32は、第2学習器80から出力された特異度同士の関係に基づいて特異ストローク56を検出してもよい。これにより、ストローク毎の特異度を用いて、特異ストローク56をより高い精度で検出することができる。
【0080】
また、情報処理装置16は、特異性検出部32により検出された特異ストローク56に対して特異性を示すラベルを付与するデータ処理を行うデータ処理部34をさらに備えてもよい。このラベルの有無を通じて、ストローク群54を構成する各々のストロークが特異ストローク56に該当するか否かを容易に区別することができる。
【0081】
また、情報処理装置16は、特異性検出部32により抽出された特異ストローク56の特異性を抑制するように、ストロークデータ50の一部を修正又は削除するデータ処理を行うデータ処理部34をさらに備えてもよい。この場合、特異性の抑制は、特異ストローク56の位置、線幅、直線性、又は平滑性を変更することであってもよい。
【0082】
また、情報処理装置16は、文字識別部30により文字が識別されるまでの間、文字識別部30による識別処理、特異性検出部32による検出処理、及びデータ処理部34によるデータ処理を繰り返して実行してもよい。これらの処理の反復実行を通じて、文字を識別することができる。
【0083】
[変形例]
なお、本発明は、上記した実施形態に限定されるものではなく、この発明の主旨を逸脱しない範囲で自由に変更できることは勿論である。あるいは、技術的に矛盾が生じない範囲で各々の構成を任意に組み合わせてもよい。あるいは、技術的に矛盾が生じない範囲でフローチャートを構成する各ステップの実行順を変更してもよい。
【符号の説明】
【0084】
10…入力システム、12…ユーザ装置、14…電子ペン(入力デバイス)、16…情報処理装置、26…データ取得部、28…特徴量生成部、30…文字識別部、32…データ取得部、32…データ取得部、50…ストロークデータ、54…ストローク群、56…特異ストローク