(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-24
(54)【発明の名称】フリーハンドライティングモードでの手書きテキスト入力の処理
(51)【国際特許分類】
G06V 30/18 20220101AFI20220817BHJP
【FI】
G06V30/18 B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021574329
(86)(22)【出願日】2020-06-19
(85)【翻訳文提出日】2022-02-09
(86)【国際出願番号】 EP2020067144
(87)【国際公開番号】W WO2020254600
(87)【国際公開日】2020-12-24
(32)【優先日】2019-06-20
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】515295429
【氏名又は名称】マイスクリプト
(74)【代理人】
【識別番号】110002952
【氏名又は名称】特許業務法人鷲田国際特許事務所
(72)【発明者】
【氏名】シャタイナー アラン
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AB03
5B064DA23
5B064DC06
5B064DD06
(57)【要約】
本発明は、フリーハンドライティングフォーマット(FT1)で、コンピュータデバイス上で入力されたデジタルインク(IN)のストロークを検出することと、前述のストロークからテキストブロック(BL1)を検出することと、前述のテキストブロックの各テキストラインでテキスト認識を実施することであって、テキストブロック(BL1)からテキストラインを抽出すること、ならびに、テキストブロックの各ストロークを、テキストブロック(BL1)の文字、ワード、及びテキストラインと関連付けるモデルデータを生成すること、を含む、実施することと、ドキュメントパターン(200)に従うように、各テキストラインを、フリーハンドライティングフォーマット(FT1)から構造化されたフォーマット(FT2)に正規化することと、を含む方法に関する。正規化には、各テキストラインに関し、前述のテキストラインを構造化されたフォーマットに変換するように変換関数を計算することと、変換関数をテキストラインに適用することと、変換関数に基づき、前述のテキストラインのモデルデータをアップデートすることと、が含まれる場合がある。
【選択図】
図3
【特許請求の範囲】
【請求項1】
手書きテキストを処理するために、コンピュータデバイス(100)によって実施される方法であって、
入力表面(104)でデジタルインク(IN)の複数の入力ストローク(ST)を検出すること(S2)であって、前記入力ストロークが、いずれの手書きの制約も伴わずに、フリーハンドライティングフォーマット(FT1)で入力される、前記検出すること(S2)と、
前記複数の入力ストローク(ST)をディスプレイデバイス(102)に、前記フリーハンドライティングフォーマットで表示すること(S4)と、
テキストまたはテキストではないものとして各入力ストロークを分類すること(S6)であって、前記分類することが、前記フリーハンドライティングフォーマット(FT1)で手書きされた前記入力ストロークから、手書きテキストの少なくとも1つのテキストブロック(BL1)をテキストとして検出することを含む、前記分類すること(S6)と、
前記少なくとも1つのテキストブロック(BL1)でテキスト認識を実施すること(S8)であって、前記テキスト認識が、
前記少なくとも1つのテキストブロックから手書きテキストのテキストラインを抽出すること(S10)、ならびに、
前記少なくとも1つのテキストブロックの各ストローク(ST)を、前記少なくとも1つのテキストブロックの文字(CH)、ワード(WD)、及びテキストライン(LN)と関連付けるモデルデータ(DT)を生成すること(S12)、
を含む、前記実施すること(S8)と、
ドキュメントパターン(200)のラインパターンに従うように、手書きテキストの各テキストライン(LN)を、前記フリーハンドライティングフォーマットから構造化されたハンドライティングフォーマット(FT2)に正規化すること(S16)であって、前記正規化が、各テキストラインに関し、
前記テキストライン(LN)を前記構造化されたハンドライティングフォーマット(FT2)に変換するように、前記テキストラインに関し、それぞれの変換関数(TF)を計算すること(S18)、
前記テキストラインの各ストロークを前記構造化されたハンドライティングフォーマット(FT2)に変換するように、それぞれの前記変換関数(TF)を適用すること(S20)、及び、
それぞれの前記変換関数に基づき、前記テキストラインの前記モデルデータ(DT)をアップデートすること(S22)、
を含む、前記正規化すること(S16)と、
を含む、前記方法。
【請求項2】
前記テキスト認識の間に生成された前記モデルデータ(DT)を記憶することを含み、
前記モデルデータを前記アップデートすることが、前記少なくとも1つのテキストブロックのアップデートされた前記モデルデータを、前記テキスト認識の間に生成された前記モデルデータと置き換えて記憶すること(S24)をさらに含む、請求項1に記載の方法。
【請求項3】
前記正規化することの後に、前記構造化されたハンドライティングフォーマット(FT2)で前記少なくとも1つのテキストブロックの前記テキストラインを表示すること(S26)を含む、請求項1または請求項2に記載の方法。
【請求項4】
前記少なくとも1つのテキストブロック(BL1)の前記モデルデータ(DT)が、
複数の文字を規定する文字情報(220)であって、各文字が、デジタルインクの少なくとも1つのストローク、及び、前記少なくとも1つのテキストブロックのテキストラインと関連付けられている、前記文字情報(220)と、
複数のワードを規定するワード情報(222)であって、各ワードが、前記文字情報によって規定された少なくとも1つの文字と関連付けられている、前記ワード情報(222)と、
前記少なくとも1つのテキストブロックの各テキストラインを規定するライン情報(224)であって、各テキストラインが、前記ワード情報によって規定された少なくとも1つのワードと関連付けられている、前記ライン情報(224)と、
を含む、請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記ライン情報が、前記少なくとも1つのテキストブロックの各テキストラインに関し、
前記テキストラインの原点を示す原点座標と、
前記テキストラインの傾斜を示す傾斜情報と、
前記テキストラインの高さを示す高さ情報と、
を含む、請求項4に記載の方法。
【請求項6】
前記正規化の間に前記モデルデータ(DT)を前記アップデートすることが、それぞれの前記変換関数に基づき、前記テキストラインの前記ライン情報(224)をアップデートすることを含む、請求項4または請求項5に記載の方法。
【請求項7】
前記正規化することが、各テキストラインに関し、
前記テキストラインの前記原点座標、前記傾斜情報、及び前記高さ情報を含む入力パラメータを判定することを含み、
それぞれの前記変換関数が、前記入力パラメータ及び前記ドキュメントパターンに基づいて計算される、
請求項1から請求項6のいずれか一項に記載の方法。
【請求項8】
前記ドキュメントパターンが、手書きテキストが従う手書きの制約である、
表示エリアの余白と、
ライン間の距離と、
のうちの少なくとも1つを規定する、請求項1から請求項7のいずれか一項に記載の方法。
【請求項9】
各変換関数が、前記正規化の間にそれぞれのテキストラインに適用される変換成分である、
平行移動成分(CP1)と、
拡縮成分(CP2)と、
回転成分(CP3)と、
のうちの少なくとも1つを規定する、請求項1から請求項8のいずれか一項に記載の方法。
【請求項10】
前記ドキュメントパターンが、ガイドラインを規定する前記ラインパターン(202)を含み、前記ガイドラインに従って、手書きテキストが前記構造化されたハンドライティングフォーマット(FT2)で配置されることになる、請求項9に記載の方法。
【請求項11】
前記変換関数の前記拡縮成分(CP2)が、前記正規化の間に、前記ラインパターンの2つの連続したガイドライン間の距離の、それぞれの前記テキストラインの前記高さに対する割合に基づいて判定される、請求項10に記載の方法。
【請求項12】
前記変換関数の前記平行移動成分が、前記正規化の間に、前記テキストラインの前記原点が、前記正規化の間に前記テキストラインにアサインされた前記ラインパターンの対応するガイドラインに整列されるように移動されるように、テキストラインの平行移動を実施するように判定される、請求項10または請求項11に記載の方法。
【請求項13】
前記回転成分(CP3)が、前記正規化の間に、それぞれのテキストラインを回転させ、それにより、前記ドキュメントパターン(200)に従ってそれぞれの前記テキストラインの傾斜をゼロに低減するように判定される、請求項10から請求項9のいずれか一項に記載の方法。
【請求項14】
前記正規化の間に、各テキストラインの前記モデルデータ(DT)が、それぞれの前記変換関数に従ってアップデートされ、それぞれの前記変換関数を前記適用することから生じ得るいずれのテキスト認識をもブロックする、請求項1から請求項13のいずれか一項に記載の方法。
【請求項15】
手書きテキストのためのコンピュータデバイスであって、
デジタルインク(IN)の複数のストローク(ST)を検出するための入力表面(104)であって、前記ストロークが、いずれの手書きの制約も伴わずに、フリーハンドライティングフォーマット(FT1)で入力される、前記入力表面(104)と、
前記複数の入力ストロークを前記フリーハンドライティングフォーマットで表示するためのディスプレイデバイス(102)と、
テキストまたはテキストではないものとして各ストロークを分類するための分類器(MD2)であって、前記分類器が、前記フリーハンドライティングフォーマット(FT1)で手書きされた前記入力ストロークから、手書きテキストの少なくとも1つのテキストブロックをテキストとして検出するように構成されている、前記分類器(MD2)と、
前記少なくとも1つのテキストブロックから手書きテキストのテキストラインを抽出するためのライン抽出器(MD4)と、
前記少なくとも1つのテキストブロックの各テキストラインのテキスト認識を実施し、前記少なくとも1つのテキストブロックの各ストロークを、前記少なくとも1つのテキストブロックの文字、ワード、及びテキストラインと関連付けるモデルデータを生成するための認識エンジン(MD6)と、
ドキュメントパターンのラインパターンに従うように、手書きテキストの各テキストラインを、前記フリーハンドライティングフォーマットから構造化されたハンドライティングフォーマット(FT2)に正規化するためのテキストエディタ(MD8)であって、前記テキストエディタが、各テキストラインに関し、
前記テキストラインを前記構造化されたハンドライティングフォーマットに変換するように、前記テキストラインに関し、それぞれの変換関数を計算すること、
前記テキストラインの各ストロークを前記構造化されたハンドライティングフォーマットに変換するように、それぞれの前記変換関数を適用すること、及び、
それぞれの前記変換関数に基づき、前記テキストラインの前記モデルデータをアップデートすること、
を実施するように構成されている、前記テキストエディタ(MD8)と、
を備えている、前記コンピュータデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ユーザのテキストの手書き入力を認識することが可能であるコンピュータデバイスインターフェースの分野に関する。具体的には、本開示は、手書きテキストを認識及び編集するためのコンピュータデバイス及び対応する方法に関する。
【背景技術】
【0002】
コンピュータデバイスが継続して、日々の生活の中にますます偏在するようになってきている。コンピュータデバイスは、コンピュータデスクトップ、ラップトップ、タブレットPC、ハイブリッドコンピュータ(2-in-1)、eブックリーダー、携帯電話、スマートフォン、ウェアラブルコンピュータ(スマートウォッチ、スマートグラス/ヘッドセットを含む)、グローバルポジショニングシステム(GPS)ユニット、事業デジタルアシスタント(EDA)、パーソナルデジタルアシスタント(PDA)、ゲームコンソールなど、様々な形態を取る場合がある。さらに、コンピュータデバイスは、車、トラック、農用施設、製造施設、建物の環境制御(たとえば、ライティング、HVAC)、ならびに、家庭及び商業用の器具など、車両及び設備に組み込まれている。
【0003】
コンピュータデバイスの各タイプには、特定のコンピュータリソースが備えられており、所与の用途が定められている。コンピュータデバイスは概して、中央処理ユニット(CPU)などの少なくとも1つの処理要素と、いくつかの形態のメモリと、入力及び出力デバイスと、を備えている。様々なコンピュータデバイス及びそれに次ぐ用途により、様々な入力デバイス及びインターフェースが、ユーザがそのコンピュータデバイスと相互作用することを可能にするようにすることが必要になる。
【0004】
そのような入力デバイスの1つが、タッチスクリーンまたはタッチパッドなどの接触式表面である。この表面では、ユーザ入力が、ユーザの身体の部位(たとえば、指)または器具(たとえば、ペンもしくはスタイラス)と接触式表面との間の接触を通して受領される。別の入力デバイスは入力表面であり、この入力表面は、入力表面の上方でユーザによって行われるジェスチャを検知する。さらなる入力デバイスが、位置検出システムである。この位置検出システムは、接触または非接触の相互作用の、非接触の物理的または仮想的な表面との相対位置を検出する。
【0005】
手書き認識は、テキストコンテンツ(たとえば、英数字)またはテキストではないコンテンツ(たとえば、形状、図)など、ユーザによって手で線描されたか手書きされた様々なタイプの入力要素を入力及び処理するために、コンピュータデバイス内で実施され得る。コンピュータデバイス上で入力がされると、入力要素は、通常、デジタルインクとして表示され、活字に組まれたバージョンに変換するように、手書き認識がされる。ユーザの手書き入力は、通常、リアルタイムの手書き認識システムまたは方法を使用して解釈される。このため、オンラインシステム(クラウドベースのソリューションなどを使用して実施される認識)またはオフラインシステムが使用される場合がある。
【0006】
ユーザ入力は、図であるか、または、任意の他のテキストのコンテンツ、テキストではないコンテンツ、もしくはテキストとテキストではないものとの混合のコンテンツである場合がある。手書き入力は、ユーザによる入力をガイドまたは制限するガイドライン(またはベースライン)に従って、構造を持つドキュメント上で実施される場合がある。代替的には、ユーザは、フリーハンドライティングモードで手書きする場合がある。すなわち、追従するべきラインまたは従うべき入力サイズのあらゆる制約を伴わない(たとえば、ブランクページ上)。
【0007】
図1Aは、適切なユーザインターフェースを使用して、フリーハンドライティングモードでユーザによって手で線描されるか手書きされるインク入力要素を表示するディスプレイデバイス1を備えている、コンピュータデバイス1の実施例を示している。このケースでは、コンピュータデバイス1は、テキストコンテンツ4及び6、ならびに、テキストではないコンテンツ8、10、及び12を検出及び表示する。これら要素の各々は、デジタルインクの1つまたは複数のストロークによって形成されている。入力要素は、たとえば、手書きテキスト、図、音楽の注釈などを含む場合がある。この実施例では、形状8は、矩形などであり、テキストコンテンツ6を包含するコンテナ(ボックス)を構成し、それにより、要素6と要素8との両方をともに選択及び操作できるようになっている。
【0008】
手書き認識は、テキスト入力要素上、及び、場合によってはテキストではない入力要素上でも、実施される場合がある。さらに、各入力要素は、この実施例では
図1Bに図示するように、活字に組み上がった入力要素として変換及び表示される場合がある。
【0009】
手書き認識のアプリケーションでは、テキスト認識に関する性能は、特に手書きテキストがフリーハンドライティングモード(すなわち、フリーハンドライティングフォーマット)で入力されるケースでは、常に十分なものではない。テキスト認識プロセスの信頼性及び安定性の課題は、しばしば、そのようなコンピュータデバイスの性能を害し、それにより、全体のユーザの体験を制限する。制限は、新たなインクストロークが認識の以前の状態(すなわち、以前に入力されたインクストロークに基づく以前の認識の結果)に影響を及ぼした場合、及び、新たなインクストロークが、そのような認識の以前の状態に影響を及ぼさない場合(すなわち、新たなインクストロークが、以前に入力されたコンテンツに影響を及ぼさない新たなコンテンツに関する)を、コンピュータデバイスが判定する困難性から特に生じる場合がある。
【0010】
さらに、コンピュータデバイス上に表示されたユーザ入力に対し、いくらかのレベルの編集を実施することが通常は可能である。しかし、慣習的に、そのようなアプリケーションは、編集機能を扱うその能力が制限されており、通常は、行動を採用するように、または、ユーザの元々の意図を反映しない妥協を許容するように、ユーザを制限する。
【0011】
表示機能及び編集機能は、手書きテキストがフリーハンドライティングモードを使用して入力される場合に、コンピュータデバイス上でより具体的に制限される。本来、ライン、サイズ、向き、余白などの制約は、フリーハンドライティングモードではユーザに課されず、それにより、様々な複雑な形態の手書きが入力される場合がある。それにより、コンピュータデバイスによる編集機能を実施して、手書きテキストを操作すること(たとえば、移動する、拡縮する、修正する、テキストの流れの中にラインの切れ目を挿入する)の解釈がより困難になる。しかし、ユーザは、特にフリーハンドライティングモードが使用される場合に、より構造的かつ向上した方式で手書き入力を編集及び操作することを望む場合がある。フリーハンドライティングフォーマットで手書きテキスト入力を扱うことにおけるこれら制限は、ユーザの経験を妨げ、向上を必要とする。
【0012】
フリーハンドライティングモード(またはフォーマット)におけるテキストの手書き入力の、効率的かつ信頼性のある処理を可能にし、特に、テキストの認識を向上させ、コンピュータデバイス上でのそのような手書きテキストの効率的な編集を可能にする解決策が必要とされている。
【発明の概要】
【0013】
以下に記載される本発明の実施例は、ユーザが入力した手書きテキストを編集するためのコンピュータデバイス、方法、及び対応するコンピュータプログラムを提供する。
【0014】
特定の態様によれば、本発明は、手書きテキストを処理するために、コンピュータデバイスによって実施される方法であって、
入力表面でデジタルインクの複数の入力ストロークを検出することであって、前述の入力ストロークが、いずれの手書きの制約も伴わずに、フリーハンドライティングフォーマットで入力される、検出することと、
前述の複数の入力ストロークをディスプレイデバイス上に、前述のフリーハンドライティングフォーマットで表示することと、
テキストまたはテキストではないものとして各入力ストロークを分類することであって、前述の分類することが、フリーハンドライティングフォーマットで手書きされた前述の入力ストロークから、手書きテキストの少なくとも1つのテキストブロックをテキストとして検出することを含む、分類することと、
前述の少なくとも1つのテキストブロックでテキスト認識を実施することであって、前述のテキスト認識が、
前述の少なくとも1つのテキストブロックから手書きテキストのテキストラインを抽出すること、ならびに、
前述の少なくとも1つのテキストブロックの各ストロークを、前述の少なくとも1つのテキストブロックの文字、ワード、及びテキストラインと関連付けるモデルデータを生成すること、
を含む、実施することと、
ドキュメントパターンのラインパターンに従うように、手書きテキストの各テキストラインを、フリーハンドライティングフォーマットから構造化されたハンドライティングフォーマットに正規化することであって、前述の正規化が、各テキストラインに関し、
前述のテキストラインを構造化されたハンドライティングフォーマットに変換するように、前述のテキストラインに関し、それぞれの変換関数を計算すること、
前述のテキストラインの各ストロークを構造化されたハンドライティングフォーマットに変換するように、それぞれの変換関数を適用すること、及び、
それぞれの変換関数に基づき、前述のテキストラインのモデルデータをアップデートすること、
を含む、正規化することと、
を含む方法を提供する。
【0015】
特定の実施形態では、本方法は、前述のテキスト認識の間に生成されたモデルデータを記憶することを含み、
前述のモデルデータをアップデートすることが、前述の少なくとも1つのテキストブロックのアップデートされたモデルデータを、前述のテキスト認識の間に生成されたモデルデータと置き換えて記憶することをさらに含む。
【0016】
特定の実施形態では、本方法は、前述の正規化することの後に、構造化されたハンドライティングフォーマットで前述の少なくとも1つのテキストブロックのテキストラインを表示することを含む。
【0017】
特定の実施形態では、少なくとも1つのテキストブロックのモデルデータは、
複数の文字を規定する文字情報であって、各文字が、デジタルインクの少なくとも1つのストローク、及び、少なくとも1つのテキストブロックのテキストラインと関連付けられている、文字情報と、
複数のワードを規定するワード情報であって、各ワードが、文字情報によって規定された少なくとも1つの文字と関連付けられている、ワード情報と、
少なくとも1つのテキストブロックの各テキストラインを規定するライン情報であって、各テキストラインが、ワード情報によって規定された少なくとも1つのワードと関連付けられている、ライン情報と、
を含む。
【0018】
特定の実施形態では、ライン情報は、前述の少なくとも1つのテキストブロックの各テキストラインに関し、
テキストラインの原点を示す原点座標と、
テキストラインの傾斜を示す傾斜情報と、
テキストラインの高さを示す高さ情報と、
を含む。
【0019】
特定の実施形態では、前述の正規化の間に前述のモデルデータをアップデートすることは、それぞれの変換関数に基づき、前述のテキストラインのライン情報をアップデートすることを含む。
【0020】
特定の実施形態では、前述の正規化は、各テキストラインに関し、
前述のテキストラインの原点座標、傾斜情報、及び高さ情報を含む入力パラメータを判定することを含み、
それぞれの変換関数が、入力パラメータ及びドキュメントパターンに基づいて計算される。
【0021】
特定の実施形態では、ドキュメントパターンは、
表示エリアの余白と、
ライン間の距離と、
の、手書きテキストが従う手書きの制約の少なくとも1つを規定する。
【0022】
特定の実施形態では、各変換関数は、
平行移動成分と、
拡縮成分と、
回転成分と、
の、前述の正規化の間にそれぞれのテキストラインに適用される変換成分の少なくとも1つを規定する。
【0023】
特定の実施形態では、ドキュメントパターンは、ガイドラインを規定する前述のラインパターンを含み、このガイドラインに従って、手書きテキストが構造化されたハンドライティングフォーマットで配置されることになる。
【0024】
特定の実施形態では、変換関数の拡縮成分は、前述の正規化の間に、前述のラインパターンの2つの連続したガイドライン間の距離の、それぞれのテキストラインの高さに対する割合に基づいて判定される。
【0025】
特定の実施形態では、変換関数の平行移動成分は、前述の正規化の間に、前述のテキストラインの原点が、前述の正規化の間に前述のテキストラインにアサインされたラインパターンの対応するガイドラインに整列されるように移動されるように、テキストラインの平行移動を実施するように判定される。
【0026】
特定の実施形態では、前述の回転成分は、前述の正規化の間に、それぞれのテキストラインを回転させ、それにより、ドキュメントパターンに従ってそれぞれのテキストラインの傾斜をゼロに低減するように判定される。
【0027】
特定の実施形態では、前述の正規化の間に、各テキストラインのモデルデータは、それぞれの変換関数に従ってアップデートされ、一方、それぞれの変換関数の前述の適用から生じ得るいずれのテキスト認識をもブロックする。
【0028】
別の態様によれば、本発明は、本文献に規定される本発明の方法の各ステップを実行するための命令を含む、コンピュータ可読プログラムコード(またはコンピュータプログラム)を上に記録した非一時的なコンピュータ可読媒体に関する。
【0029】
本発明のコンピュータプログラムは、任意のプログラミング言語で表現することができ、ソースコード、オブジェクトコード、または、たとえば、部分的にコンパイルされた形態、または、任意の他の適切な形態になるように、ソースコードとオブジェクトコードとの間の任意の中間のコードの形態とすることができる。
【0030】
本発明は、上述のコンピュータプログラムをも提供する。
【0031】
前述の非一時的なコンピュータ可読媒体は、コンピュータプログラムを記憶することができる任意のエンティティまたはデバイスとすることができる。たとえば、記録媒体は、ROMメモリ(CD-ROMもしくはマイクロ電子回路で実施されるROM)などの記憶手段、または、たとえばフロッピーディスクもしくはハードディスクなどの磁気記憶手段を含むことができる。
【0032】
本発明の非一時的なコンピュータ可読媒体は、電気信号または光学信号などの伝達可能な媒体に対応することができる。この媒体は、電気ケーブルもしくは光ケーブルを介して、または無線もしくは任意の他の適切な手段によって搬送することができる。本開示に係るコンピュータプログラムは、特に、インターネットまたはネットワークなどからダウンロードすることができる。
【0033】
代替的には、非一時的なコンピュータ可読媒体は、集積回路に対応することができる。この集積回路には、コンピュータプログラムが導入されており、回路が、本発明の方法の実行において実行するか使用されるために適合されている。
【0034】
特定の実施形態では、本発明は、内部に埋め込まれたコンピュータ可読プログラムコードを有する非一時的なコンピュータ可読媒体に関し、前述のコンピュータ可読プログラムコードは、本文献で規定されるコンピュータデバイス上の手書きの入力要素に関する方法を実施するように実行されるために適合されており、コンピュータデバイスは、前述の方法の各ステップを実行するためのプロセッサを備えている。
【0035】
本発明は、本開示に規定される方法を実施するために適切なコンピュータデバイスにも関する。より具体的には、本発明は、手書きテキストのためのコンピュータデバイスであって、
デジタルインクの複数のストロークを検出するための入力表面であって、前述のストロークが、いずれの手書きの制約も伴わずに、フリーハンドライティングフォーマットで入力される、入力表面と、
前述の複数の入力ストロークを前述のフリーハンドライティングフォーマットで表示するためのディスプレイデバイスと、
テキストまたはテキストではないものとして各ストロークを分類するための分類器であって、前述の分類器が、フリーハンドライティングフォーマットで手書きされた前述の入力ストロークから、手書きテキストの少なくとも1つのテキストブロックをテキストとして検出するように構成されている、分類器と、
前述の少なくとも1つのテキストブロックから手書きテキストのテキストラインを抽出するためのライン抽出器と、
前述の少なくとも1つのテキストブロックの各テキストラインのテキスト認識を実施し、それにより、前述の少なくとも1つのテキストブロックの各ストロークを、前述の少なくとも1つのテキストブロックの文字、ワード、及びテキストラインと関連付けるモデルデータを生成するための認識エンジンと、
ドキュメントパターンのラインパターンに従うように、手書きテキストの各テキストラインを、フリーハンドライティングフォーマットから構造化されたハンドライティングフォーマットに正規化するためのテキストエディタであって、前述のテキストエディタが、各テキストラインに関し、
前述のテキストラインを構造化されたハンドライティングフォーマットに変換するように、前述のテキストラインに関し、それぞれの変換関数を計算すること、
前述のテキストラインの各ストロークを構造化されたハンドライティングフォーマットに変換するように、それぞれの変換関数を適用すること、及び、
それぞれの変換関数に基づき、前述のテキストラインのモデルデータをアップデートすること、
を実施するように構成されている、テキストエディタと、
を備えている、コンピュータデバイスを提供する。
【0036】
本発明の方法と関連して上の規定された様々な実施形態は、本開示のコンピュータデバイス、コンピュータプログラム、及び非一時的なコンピュータ可読媒体と類似の方式で適用される。
【0037】
本開示に規定される本発明の方法の各ステップに関し、コンピュータデバイスは、前述のステップを実施するように構成された対応するモジュールを備えている場合がある。
【0038】
特定の実施形態では、本開示は、ソフトウェア及び/またはハードウェア構成要素を使用して実施される場合がある。この文脈では、「モジュール」との用語は、本開示では、ソフトウェア構成要素及びハードウェア構成要素、または複数のソフトウェア及び/またはハードウェア構成要素に言及することができる。
【0039】
本開示の他の特徴及び利点は、限定的特徴を有していない実施形態を示す添付図面を参照してされる以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0040】
【
図1】AおよびBは慣習的な構成に係るデジタルデバイスを示す。
【
図2】本発明の特定の実施形態に係るコンピュータデバイスを概略的に示すブロック図である。
【
図3】本発明の特定の実施形態に係る正規化プロセスを概略的に示す図である。
【
図4】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって実施されるモジュールを概略的に示すブロック図である。
【
図5】本発明の特定の実施形態に係る方法のステップを概略的に示すフロー図である。
【
図6】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって処理される間の手書きテキストを概略的に示す図である。
【
図7】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって処理される間の手書きテキストを概略的に示す図である。
【
図8】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって処理される間の手書きテキストを概略的に示す図である。
【
図9】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって生成されたモデルデータを概略的に示す図である。
【
図10】本発明の特定の実施形態に係る、
図2のコンピュータデバイスによって正規化された手書きテキストを概略的に示す図である。
【
図11】本発明の特定の実施形態に係る、正規化プロセスの間に手書きテキストに適用される編集操作を示す図である。
【
図12】本発明の特定の実施形態に係る、正規化の後に編集される手書きテキストを概略的に示す図である。
【発明を実施するための形態】
【0041】
図中の構成要素は、必ずしも拡縮されておらず、代わりに、本発明の原理の説明が強調されている。
【0042】
説明の簡略化及び明確化のために、同じ参照符号は、別様に示されない限り、同じであるか類似のパーツを参照するために、図面を通して使用されることになる。
【0043】
以下の詳細な説明では、複数の特定の詳細が、関連する教示を完全に理解させるために、例として説明される。しかし、当業者には、本教示が、そのような詳細を伴わずに実施され得ることが明らかとなるであろう。他の例では、よく知られている方法、手順、及び/または構成要素が、本教示の態様を不必要に妨げることを避けるために、詳細を伴わずに、比較的高レベルで記載される。
【0044】
例示的実施形態の以下の詳細な説明は、添付図面を参照する。以下の詳細な説明は、本発明を限定するものではない。その代わりに、本発明の範囲は、添付の特許請求の範囲によって規定されている。図面に示すような様々な実施形態では、コンピュータデバイス、対応する方法、及び対応するコンピュータプログラムが論じられる。
【0045】
本記載における「テキスト」との用語の使用は、記載のテキストにおいて使用される任意の記載の言語及び任意のシンボルにおいて、すべての文字(たとえば、英数字など)及びそのストリングを包含するものと理解される。
【0046】
本記載における「テキストではない」との用語は、自由な形態の手書きされたコンテンツ、または手で線描されたコンテンツ(たとえば、形状、描写など)及び画像データ、ならびに文字、及びそのストリング、またはテキストではない文脈において使用されるシンボルを包含するものと理解される。テキストではないコンテンツは、コンテナ、描画、一般的な形状(たとえば、矢印、ブロックなど)などを含む、線形または非線形の構成での、グラフィックまたは幾何学的な構造を規定する。図では、たとえば、テキストコンテンツは、コンテナと呼ばれるある形状(矩形、楕円形、卵形の形状など)に包含されている場合がある。
【0047】
さらに、これら図に示される実施例は、左から右に書かれる言語の文脈であり、したがって、位置に対するあらゆる参照は、異なる方向のフォーマットを有する記載された言語に関して適応させることができる。
【0048】
本明細書に記載の様々な技術は、概して、ポータブル、及びポータブルではないコンピュータデバイス上の、手で描かれるか手で書かれるコンテンツの取得、処理、及び管理に関する。本明細書に記載のシステム及び方法は、(後に論じるような)接触式スクリーンなどの入力表面を介しての、コンピュータデバイスへのユーザの自然な筆記スタイル及び線描スタイルの入力の認識を利用する場合がある。様々な実施形態が、いわゆるオンライン認識技術を使用してデジタルインクの手書き入力の認識に関して記載されるが、認識を実施するためにリモートデバイスまたはサーバを伴うオフラインの認識など、認識のための入力の他の形態に適用することが可能であることを理解されたい。
【0049】
「手での線描」及び「手書き」との用語は、入力表面上で、または入力表面を用いて、ユーザの手(もしくは指)、または入力デバイス(ハンドヘルドスタイラスもしくはデジタルペン、マウスなど)の使用を通して、ユーザによるデジタルコンテンツ(手書き入力)の形成を規定するために、本明細書において相互交換可能に使用される。「手」などの用語は、入力技術の簡潔な記載を提供するために本明細書で使用されるが、足、口、及び目など、類似の入力のためにユーザの身体の他の部分を使用することが、この定義に含まれる。
【0050】
以下により詳細に記載するように、本発明の態様は、フリーハンドライティングフォーマットで、コンピュータデバイス上で入力されるデジタルインクの手書きテキストを検出することと、手書きテキスト入力(または入力された手書きテキスト)を示すモデルデータを生成することを伴う、テキスト認識を実施することと、ドキュメントパターンに従う(たとえば、ドキュメントパターンのラインパターンに従う)ように、手書きテキスト入力の各テキストラインの、フリーハンドライティングフォーマットから構造化されたハンドライティングフォーマットへの正規化を実施することと、に依存する。この正規化は、手書きテキスト入力を構造化されたハンドライティングフォーマットに変えるために、手書きテキスト入力に編集する変換(たとえば、平行移動、回転、及び/または拡縮)を実施することを含んでいる。モデルデータは、正規化の目的のために、手書きテキスト入力に適用される編集する変換に応じてアップデートされもする。換言すると、正規化を実施する際に手書きテキスト入力のそれぞれのテキストラインの各々に適用される変換関数は、テキストラインのモデルデータをアップデートするベースとしても使用される。特定の実施形態において以下に説明するように、モデルデータは、手書きテキスト入力の各ストロークの、手書きテキスト入力のそれぞれの文字、それぞれのワード、及びそれぞれのテキストラインとの間の相関関係を規定する。
【0051】
正規化プロセスの一部としてモデルデータをアップデートすることにより、デジタルインクの手書きテキスト入力を、(フリーハンドライティングフォーマットでの)制約のない環境から、(構造化されたハンドライティングフォーマットでの)フォーマットされた環境に効率的に変換することができ、それにより、よりよい表示、より信頼性のあるテキスト認識、及び、手書きテキスト入力の編集などのより広範囲の操作が可能になる。以下にさらに説明するように、正規化プロセスが入力インクの変更に繋がるが、あらゆる以前のテキスト認識状態は保存される。このことは、手書きテキスト入力及びモデルデータが同じ変換を使用してアップデートされることから、達成することができる。
【0052】
本発明では、正規化を経る各テキストラインは、手書きテキストのテキストラインである。以下にさらに記載するように、いくつかの変換がこの手書きテキストラインに、正規化プロセスの一部として適用されるが、これらテキストラインは、正規化されると(すなわち、正規化されたテキストライン)、依然として手書きテキストラインであり、すなわち、テキストラインとして、しかし正規化された方式で(たとえば、入力ストロークによって形成された手書きを構成しない活字に組み上がったコンテンツとは反対に)配置される手書きのものである。以下にさらに記載するように、手書きテキストの各テキストラインのストロークは、対応する手書きテキストラインを正規化された手書きテキストラインに変える変換を規定する変換関数の影響を受ける。
【0053】
図2は、本発明の特定の実施形態に係るコンピュータデバイス100のブロック図を示している。コンピュータデバイス(またはデジタルデバイス)100は、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、eブックリーダー、携帯電話、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、電子黒板、グローバルポジショニングシステム(GPS)ユニット、事業デジタルアシスタント(EDA)、パーソナルデジタルアシスタント(PDA)、ゲームコンソールなどである場合がある。コンピュータデバイス100は、少なくとも1つの処理要素、いくつかの形態のメモリ、ならびに入力及び出力(I/O)デバイスの構成要素を含んでいる。各構成要素は、コネクタ、ライン、バス、リンクネットワーク、または当業者に既知の他のものなどの入力及び出力を通して互いに通信する。
【0054】
より明確には、コンピュータデバイス100は、以下にさらに記載するように、テキスト及びテキストではない要素を含む、手での線描(または手書き)入力要素に関する入力表面104を備えている。より具体的には、入力表面104は、前述の入力表面上に入力されたデジタルインクの複数の入力ストロークを検出することに適している。以下でもさらに論じるように、これら入力ストロークは、フリーハンドライティングフォーマット(または、フリーハンドライティングモード)での入力である、すなわち、入力エリアにおける位置、サイズ、及び向きのあらゆる手書きの制約を伴わない場合がある。
【0055】
入力表面104は、接触感知表面または近接感知表面の形態のユーザ入力を受領するように、抵抗変化型、表面音波、静電容量、赤外グリッド、赤外線のアクリルの投影、光学イメージング、分散信号技術、音響パルス認識、または当業者に既知であるような任意の他の適切な技術などの技術を採用する場合がある。入力表面104は、位置検出システムによって監視されている非接触式感知表面である場合がある。
【0056】
コンピュータデバイス100は、画像、テキスト、及びビデオなど、コンピュータデバイスからデータを出力するための少なくとも1つのディスプレイデバイス(またはディスプレイ)102をも備えている。ディスプレイデバイス102は、任意の適切な技術(LCD、プラズマなど)のスクリーンなどである場合がある。以下にさらに記載するように、ディスプレイデバイス102は、デジタルインクで入力要素を表示するために適しており、各入力要素は、デジタルインクの少なくとも1つのストロークで形成されている。具体的には、ディスプレイデバイス102は、たとえば上述のフリーハンドライティングフォーマットで、入力表面104で入力された複数のストロークを表示する場合がある。
【0057】
入力表面104は、ディスプレイデバイス102と同じ場所に配置されるか、リモートでディスプレイデバイス102に接続される場合がある。特定の実施例では、ディスプレイデバイス102及び入力表面104は、タッチスクリーンの一部である。
【0058】
図2に示すように、コンピュータデバイス100は、プロセッサ106及びメモリ108をさらに備えている。コンピュータデバイス100は、メモリ108の一部として、またはメモリ108とは別に、1つまたは複数の揮発性記憶要素(RAM)をも備えている場合がある。
【0059】
プロセッサ106は、ソフトウェア、特にメモリ108に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサ108は、任意の特注であるか商業利用可能な多目的プロセッサ、中央処理ユニット(CPU)、半導体ベースのマイクロプロセッサ(マイクロチップまたはチップセットの形態)、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、またはこれらの任意の組合せとすることができ、より概略的には、当業者に既知であるような、ソフトウェア命令を実行するために設計された任意の適切なプロセッサ構成要素とすることができる。
【0060】
メモリ108は、本開示の特定の実施形態に係る、非一時的な(または不揮発性の)コンピュータ可読媒体(または読取り媒体)を構成する(または備えている)。メモリ108は、不揮発性の記憶要素(たとえば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気テープまたは光学テープ、メモリレジスタ、CD-ROM、WORM、DVDなど)の任意の組合せを含む場合がある。
【0061】
メモリ108は、コンピュータデバイス100によってリモートでアクセス可能である、サーバまたはクラウドベースのシステムにあるなど、コンピュータデバイス100から離れている場合がある。不揮発性メモリ108は、プロセッサ106に結合されており、それにより、プロセッサ106が、メモリ108から情報を読み取ること、及びメモリ108に情報を書き込むことが可能であるようになっている。代替形態として、メモリ108は、コンピュータデバイス100に組み込まれている。
【0062】
メモリ108は、オペレーティングシステム(OS)110と、手書きアプリケーション(またはコンピュータプログラム)112と、を含んでいる。オペレーティングシステム110は、アプリケーション112の実行を制御する。アプリケーション112は、本発明の特定の実施形態に従ってコンピュータプログラム(またはコンピュータ可読プログラムコード)を構成する(または備えている)。このコンピュータプログラムは、本発明の特定の実施形態に従って方法を実施する命令を含んでいる。
【0063】
アプリケーション112は、コンピュータデバイス100の入力表面104を使用して、ユーザによって手書きされたインクの入力要素を検出及び管理するための命令を含む場合がある。後に論じるように、テキストまたはテキストではない場合がある、これら手書きされたインク入力要素(手書き入力とも称される)は、デジタルインクの1つまたは複数のストロークによって形成される。
【0064】
アプリケーション112は、手書きされたテキストまたはテキストではないものを含む、コンピュータデバイス100への手書き入力を認識するための、手書き認識(HWR)モジュール(またはシステム)114を備えている場合がある。HWR114は、実施される命令のセットを有するソースプログラム、実行可能なプログラム(オブジェクトコード)、スクリプト、アプリケーション、または任意の他の構成要素である場合がある。
図2に示す本実施例では、アプリケーション112及びHWRモジュール114は、単一のアプリケーションに組み合わせられる(HWRモジュール114は、アプリケーション112の一部である)。代替的には、HWRモジュール114は、
図2に示されているように、コンピュータデバイス100により、適切な通信リンクを通してリモートでアクセス可能である、サーバ(またはクラウドベースのシステム)SV1などの、コンピュータデバイス100から離れている手書き認識システムと通信するためのモジュール、方法、またはシステムである場合がある。アプリケーション112及びHWRモジュール114も、コンピュータデバイス100のメモリ108(または異なるメモリ)に記憶された別々の構成要素である場合があり、それにより、アプリケーション112及びHWRモジュール114が、ともに作動して、処理され、メモリ108に記憶された情報にアクセスする。
【0065】
図に後に示すように、入力表面104上で、または入力表面104を介して入力された入力ストロークは、デジタルインクとしてプロセッサ106によって処理される。デジタルインクは、このケースではディスプレイデバイス102上で、デジタル画像フォーマットで手書き入力をレンダリングすることによって形成される。
【0066】
ユーザは、手もしくは指、または、入力表面104で使用するために適切なデジタルペンもしくはスタイラスなどのいくつかの入力器具で、入力ストロークを入力する場合がある。ユーザは、入力表面104の近位のモーションを検知するように構成された手段が使用される場合に、入力表面104の上方でジェスチャをすることにより、または、マウスもしくはジョイスティックなどのコンピュータデバイス100の周辺機器で、入力ストロークを入力する場合もある。
【0067】
各インク入力要素(文字、シンボル、ワード、形状など)は、1つまたは複数のそのような入力ストロークによって、または少なくともストロークの一部によって形成される。ストローク(または入力ストローク)は、ストロークの開始位置(「ペンを下げる」事象に対応する)、ストロークの末端位置(「ペンを上げる」事象に対応する)、及びストロークの開始位置とストロークの末端位置とを接続する経路によって少なくとも特徴付けられている。異なるユーザが、いくつかのオブジェクト(たとえば、文字、形状、シンボルなど)を、わずかな変化を伴って自然に書くか手で線描する場合があることから、HWRモジュール114は、依然として適正であるか意図されているオブジェクトとして認識される間、各オブジェクトが入力され得る様々な方法を許容する。
【0068】
手書きアプリケーション112により、手書きまたは手での線描のコンテンツ(たとえば、テキスト、図、チャート、形状、図、または任意の種類のテキスト及び/またはテキストではない手書き入力)を、デジタルインクの形態で生成することを可能にし、これらコンテンツを、HWRモジュール114を使用して正確に認識させる。
【0069】
本実施例では、メモリ108は、コンピュータデバイス102上のユーザからの、入力表面104での手書きテキスト入力を示すモデルドキュメントを規定するモデルデータDTを記憶するためにも適している。そのようなモデルデータDTの性質及び用途は、以下により詳細に論じられることになる。
【0070】
図3に示すように、本実施形態では、コンピュータデバイス100は、フリーハンドライティングフォーマット(またはフリーハンドライティングモード)FT1で、すなわち、ユーザのためのいずれの手書きの制約をも伴わずに、入力表面104で入力された手書き入力INを検出するように構成されている。フリーハンドライティングモードは、ユーザに、構造化されていないかガイドされていない方式で、フリーの環境(たとえば、ブランクゾーンZ1内)で入力要素INを手書きすることを可能にする。すなわち、手書きテキスト入力の位置、サイズ、及び向きのいずれの手書きの制約も伴わない(ラインパターンに従わず、サイズまたは向きの制限がなく、ライン間への挿入、余白などの制約がない、などである)。このフリーハンドライティングモードFT1は、手書き入力の間に、ユーザに完全な自由度を与える。このことは、ときには、たとえば迅速かつ種々雑多にノートを取るか、テキストとテキストではないものとの混合の入力をするために、望ましい。
【0071】
入力表面104によって検出され、ディスプレイデバイス102によって表示される手書き入力INは、デジタルインクの複数の入力ストロークによって形成される。
【0072】
図3に示すように、コンピュータデバイス100は、手書き入力INを形成する入力ストロークをテキストとして分類し、こうして、手書き入力INをテキストブロックBL1として認識する場合がある。
【0073】
コンピュータデバイス100は、認識されたテキストブロックBL1上で正規化プロセスを実施するように構成されており、それにより、テキストブロックBL1をフリーハンドライティングフォーマットFT1から、構造化されたフォーマット(または構造化されたモード)とも称される構造化されたハンドライティングフォーマット(または構造化されたハンドライティングモード)FT2に変換して、ドキュメントパターン200(たとえば、ドキュメントパターン200のラインパターン)に従う。ドキュメントパターンは、手書きテキスト入力INがどのようにディスプレイデバイス102上で配置及び表示されることになるかに関する、幾何学的制約を規定するものとして、本開示では理解される。ドキュメントパターン200は、構造化された方式で、すなわち、構造化されたハンドライティングフォーマットFT2で、手書き入力IN(このケースでは、テキストブロックBL1)を受領するために、構造化された(またはフォーマットされた)環境を構成する。
【0074】
ドキュメントパターン200が、手書きがどのように構造的に配置されるかを規定することに留意されたい。
【0075】
ドキュメントパターンは、
表示エリアの余白と、
ラインパターンと、
ライン間の距離と、
のテキストが従う手書きの制約の少なくとも1つを規定する場合がある。
【0076】
具体的には、ドキュメントパターン200は、ラインパターン、及び、場合によっては、表示エリアの余白及びライン間の距離の少なくとも1つをも規定する場合がある。
【0077】
図3に示す本実施例では、ドキュメントパターン200は、複数のガイドライン(ガイディングラインまたはベースラインとも称される)202を規定するラインパターンを含んでいる。このガイドラインに従って、手書きテキスト(すなわち、テキストブロックBL1のコンテンツ)が構造化されたハンドライティングフォーマットFT2に応じて配置されることになる。ドキュメントパターン202は、連続したガイドラインの各対の間の所定のライン間距離d1を規定する場合があり、それにより、構造化されたハンドライティングフォーマットFT2における手書きテキストのサイズの制約を課す。ドキュメントパターン202は、所定のライン長さd2をも規定する場合がある。このライン長さd2は、構造化されたフォーマットFT2におけるテキストブロックBL1の各テキストラインの最大長さを課す。この構造化されたフォーマットFT2は、ドキュメントパターン200に基づいており、実施態様の単なる実施例を構成するに過ぎないことを理解されたい。他のドキュメントパターンが、当業者によって予期され得る。
【0078】
特定の実施形態に従って
図4に示すように、メモリ108に記憶されたアプリケーション112を実行する場合(
図2)、プロセッサ106は、複数のプロセッシングモジュール、すなわち、分類器MD2、ライン抽出器MD4、認識エンジンMD6、及び編集モジュールMD8を実施する。アプリケーション112は、特定の実施形態において後に記載するように、本発明の方法のステップを実施するために、これらモジュールを実施するようにプロセッサを構成する命令を含んでいる。
【0079】
分類器MD2は、入力表面104によって検出された各入力ストローク(または、入力ストロークの任意のセットもしくは組合せ)を、テキストまたはテキストではないものとして分類するように構成されている。具体的には、以下にさらに記載するように、分類器MD2は、入力表面104で、フリーハンドライティングフォーマットFT1で入力された入力ストロークの少なくとも1つのテキストブロックBL1をテキストとして検出するように構成されている場合がある。
【0080】
このため、分類器(または分類モジュール)MD2は、ユーザによって入力された入力デジタルインクのテキストではないコンテンツからテキストを識別するために、あいまいさ排除プロセスを実施する場合がある。あいまいさ排除プロセスは、当業者に既知である任意の方式によって実施される場合がある。例示的な実施態様は、米国特許出願公開第2017/0109578(A1)号に記載されている。
【0081】
あいまいさ排除プロセスの実施例として、分類器MD2は、どのストロークがテキストではない要素またはテキストである要素に属している場合があるかの仮説を立てるために、空間的及び一時的な考慮事項を使用してストロークをグループ化する場合がある。空間的な考慮事項には、ストローク間の距離、ストロークの幾何学形状、ストロークの重なり、ストロークの相対位置などが含まれる場合がある。一時的な考慮事項には、ストロークの入力の時間順序が含まれる場合がある。確率のスコアは、(閾値を超える)十分に高いスコアの仮説のみが保持されるように計算される場合がある。ストロークの各グループに関する特徴は、こうして、形状及びテキスト言語モデルを考慮して抽出される。特徴には、分離距離、ストローク内の方向の変化、重なり、ストロークパターンの方向、湾曲の程度などが含まれる場合がある。ストロークは、このため、収集された情報すべてに基づいて仮説をテストすることにより、テキストとテキストではないものとに、分類器MD2によって分類される場合がある。収集された情報には、これら仮説内のストロークのグループの抽出された特徴、ならびに、これらグループ内のストロークの空間的及び一時的な情報が含まれる。しかし、すでに述べたように、テキストではないもの/テキストの区別の他の技術が予期される場合がある。
【0082】
他の実施例では、テキストのみがコンピュータデバイス100によって手書き入力として受領され、それにより、手書きテキストが、入力表面104で直接検出されるようになっている際には、テキスト/テキストではないものとして分類することは必要ではない。
【0083】
ライン抽出器(またはライン抽出モジュール)MD4は、分類器MD2によって検出された入力ストロークのテキストブロックBL1からテキストラインLNを抽出するように構成されている。換言すると、ライン抽出器MD4は、テキストブロックBL1を集合的に形成する別個のテキストラインLNを識別することが可能である(このため、テキストブロックBL1は、複数のテキストラインLNに分割される)。以下にさらに記載するように、そのようなラインの抽出は、テキスト認識プロセスの一部として実施される場合がある。特定の実施例では、ライン抽出器MD4及び認識エンジンMD6は、ともに単一のモジュールを形成する。
【0084】
認識エンジン(または認識モジュール)MD6は、分類器MD2によって抽出されると、テキストブロックBL1の各テキストラインLNにテキスト認識を実施するように構成されている。テキスト認識は、たとえば、要素の候補(または仮説)のリストを確率のスコアとともに生成すること、及び、最適な認識の結果を見出すために、要素の候補に言語モデル(用語集、文法、意味論など)を適用することを伴う、当業者には既知である任意の適切な技術を使用して実施される場合がある。所与の要素のシーケンスがどれだけの頻度で特定の言語内に現れるか、または、特定のユーザによって使用されるかに関してモデル化する統計的情報も、認識エンジンMD6によって提供される解釈の可能性を評価するために、考慮される場合がある。しかし、本開示を不必要に不明瞭にすることを避けるために、さらなる詳細は提供されない。手書き認識を実施することの一実施例は、たとえば、米国特許出願公開第2017/0109578(A1)号に見ることができる。
【0085】
本実施形態では、テキスト認識を実施する間、認識エンジンMD6は、テキストブロックBL1の各入力ストロークを、テキストブロックBL1の特有の文字、特有のワード、及び特有のテキストラインと関連付けるモデルデータDTを生成するように構成されている。以下にさらに記載するように、モデルデータDTは、手書きテキスト入力の各ストロークの、手書きテキスト入力の対応する文字、対応するワード、及び対応するテキストラインとの間の相関関係(またはリンクまたは参照)を規定する。
【0086】
編集モジュール(またはテキストエディタ)MD8は、(
図3に示すように)ドキュメントパターン200に従うように、各テキストラインLNを、上述のフリーハンドライティングフォーマットFT1から構造化されたフォーマットFT2に正規化するように構成されている。以下にさらに記載するように、この正規化の間、編集モジュールMD8は、各テキストラインLNに関し、
ドキュメントパターン200(たとえば、ドキュメントパターン200のラインパターン)に従うように、前述のテキストラインLNを構造化されたフォーマットFT2に変換するように、前述のテキストラインLNに関し、それぞれの変換関数を計算することと、
前述のテキストラインLNの各入力ストロークを構造化されたフォーマットFT2に変換するように、それぞれの変換関数を適用することと、
それぞれの変換関数に基づき、モデルデータDT(及びより具体的には、前述のテキストラインLNに関するモデルデータDT)をアップデートすることと、
を実施するように構成されている場合がある。
【0087】
換言すると、テキストブロックBL1を正規化する場合、編集モジュールBL1は、ライン毎の基準で、テキストブロックBL1を、フリーハンドライティングフォーマットFT1から構造的な手書きフォーマットFT2に変換する。編集モジュールBL1によって正規化されると、正規化プロセスの一部として、手書きを形成するストロークにいくつかの変換が適用されたとしても、正規化されたコンテンツは依然として、(入力ストロークによって形成された)手書きの性質である。
【0088】
正規化が実施されると、ディスプレイデバイス102は、構造化されたフォーマットFT2でテキストブロックBL1を表示するように構成されている場合がある。編集モジュールMD8は、構造化されたフォーマットFT2のテキストブロックBL1にさらなる編集を実施するように構成されている場合もある。
【0089】
コンピュータデバイス100のモジュールMD2からMD8の構成及び動作は、図面を参照して以下に記載される特定の実施形態でより明らかである。
図4に示すようなモジュールMD2からMD6が、本発明の例示的な実施形態を示すのみであり、他の実施態様が可能であることを理解されたい。
【0090】
本発明の方法の各ステップに関し、コンピュータデバイスは、前述のステップを実施するように構成された対応するモジュールを備えている場合がある。これらステップの少なくとも2つが、単一のモジュールの一部として実施される場合がある。
【0091】
図2から
図4に図示されるコンピュータデバイス100によって実施される方法を、本発明の特定の実施形態に従って、ここで
図5から
図12を参照して記載する。より明確には、コンピュータデバイス100は、メモリ108に記憶されたアプリケーション112を実行することにより、この方法を実施する。
【0092】
ユーザが
図6に示すような手書き入力INをコンピュータデバイス100上で入力する例示的なシナリオが考慮される。次いで、以下に記載するような手書き入力IN上の正規化プロセスを含む処理が、コンピュータデバイス100によって実施される。
【0093】
より明確には、検出ステップS2において、コンピュータデバイス100が、コンピュータデバイス100の入力表面104でユーザによって入力された手書き入力INを検出する。
図6に示すように、手書き入力INは、ユーザによって入力表面104で形成されたデジタルインクの複数の入力ストロークSTを含んでいる。たとえば、文字の第1のストリング「This」は、入力ストロークST1、ST2、ST3、及びST4によって形成されている。すでに述べたように、各入力ストロークSTは、ストロークの開始位置、ストロークの末端位置、及びストロークの開始位置とストロークの末端位置とを接続する経路によって少なくとも特徴付けられている。したがって、たとえば(ワード「This」内の)文字「i」の頂部に配置される点は、それ自体によって単一のストロークST4を構成する。
【0094】
本実施例では、手書きのデジタルインクINは、前述したようにフリーハンドライティングフォーマットFT1で入力される(
図3)。すなわち、ディスプレイ102の所定の入力エリアにあらゆる手書きの制約を伴わない。従うべきライン、サイズ、向きなどの制約がなければ、ユーザは、コンテンツINを自由かつ容易な方式で手書きすることが許容される。見ることができるように、各手書き文字または各手書きワードのサイズ、向き、及び位置は、ユーザの好みに応じて任意に変化する場合がある。手書き入力INが、実質的に平行なラインに沿って
図6に示されているが、手書き入力INは、変化するラインの向きに沿って配置される場合がある。
【0095】
図7に示すように、コンピュータデバイス100は、フリーハンドライティングフォーマット(またはモード)FT1に従って、ディスプレイデバイス102上に手書き入力INの複数の入力ストロークSTを表示する(S4)。
【0096】
分類ステップS6では、コンピュータデバイス100は、フリーハンドライティングフォーマットFT1で検出された各入力ストロークSTを、テキストまたはテキストではないもののいずれかに分類する。この目的のために、コンピュータデバイス100の分類器MD6は、前に記載したあいまいさ排除プロセスを、任意の適切な方式で実施する場合がある。
【0097】
簡略化のために、本実施例では、コンピュータデバイス100によって検出された手書き入力IN全体がテキスト(すなわち、手書きテキスト)であると推定する。したがって、分類ステップS6の間、コンピュータデバイス100は、フリーハンドライティングフォーマットFT1で入力された入力ストロークSTによって形成された手書きテキストのテキストブロックBL1を、テキストとして検出する。簡略化のために、手書きテキストの単一のテキストブロックBL1が、本実施例ではコンピュータデバイス100によって検出されるが、本発明のコンセプトは、手書き入力INにおいて、コンピュータデバイス100によって検出された手書きテキストの複数のテキストブロックに、同じ方式で適用されることに留意されたい。
【0098】
図8に示すように、このため、コンピュータデバイス100は、テキストブロックBL1にテキスト認識を実施する(S8)。テキスト認識S8の間、コンピュータデバイス100は、任意の適切な言語に従って、文字CH(またはシンボル)、及びワードWD(
図8)などの、予め規定された認識可能なテキスト要素を認識するように、入力ストロークSTの様々な特徴を分析する。すでに述べたように、テキスト認識は、たとえば、要素の候補(または仮説)のリストを確率のスコアとともに生成すること、及び、もっとも適している候補を選択するために、要素の候補に言語モデル(用語集、文法、意味論など)を適用することを含む、当業者には既知である任意の適切な技術を使用して実施される場合がある。このため、認識エンジンMD6は、予め規定された文字を識別するために、任意の適切な言語学的情報を使用して、各テキストラインLNのコンテンツをパース及び分析する場合がある。
【0099】
テキスト認識S8は、以下に記載される2つのステップ、すなわち、ライン抽出ステップS10と、生成ステップS12と、を含んでいる。
【0100】
より明確には、テキスト認識S8の間、コンピュータデバイス100は、手書きテキストのテキストラインLNをテキストブロックBL1から抽出するために、ライン抽出S10を実施する。本実施例では、コンピュータデバイス100は、テキストブロックBL1を5つの別個のテキストラインLN1からLN5に分割する。ライン抽出は、テキスト/テキストではないものの分類S6の間に検出されたテキストブロックBL1のストロークST(またはストロークSTのセット)の幾何学的分析に基づき、ライン抽出器MD4によって実施される場合がある。テキスト分析に基づき、ライン抽出器MD4は、各入力ストロークSTがどのテキストラインに属するかを判定することが可能である。当業者は、フリーハンドライティングモードで入力されたテキストブロック内のテキストラインの識別を可能にする任意の適切な技術を実施する場合がある。
【0101】
テキスト認識S8の間でもなお、コンピュータデバイス100は、テキストブロックBL1の各ストロークSTを、テキストブロックBL1の特有の文字CH、特有のワードWD、及び特有のテキストラインLNと関連付けるモデルデータDTを生成もする(S12)。
【0102】
モデルデータDTは、テキストブロックBL1のドキュメントモデル(相互作用するテキストモデルとも称される)を規定する。各テキストラインLNは、このドキュメントモデルに応じて構築される。後に示すように、このことは、インクの相互作用性が後に、テキストブロックBL1を編集する際に達成され得ることのこれら相関関係を確立することによるものである。たとえば、テキストブロックBL1内のワードWDを消去することは、コンピュータデバイス100が同様に、モデルデータDTに従って、このワードWDに関して参照される構成文字CHのすべてを消去することに繋がる。
【0103】
本実施例では、モデルデータDTは、文字情報、ワード情報、及びライン情報の3つのカテゴリーを含んでいる。任意の適切な方式(たとえば、関係のツリーまたは参照のツリーとして)で系統立てられる場合があるモデルデータは、各ストロークST(またはストロークの各部)を特有の文字CHにリンクさせ、各文字CHを特有のワードWDにリンクさせ、また、各ワードWDを特有のテキストラインLNにリンクさせる相互参照を規定し、それにより、テキスト認識S8で検出されたストロークST(またはストロークの部分)と、文字CHと、ワードWDと、テキストラインLNとの間の相関関係を確立する。結果として、デジタルインクは、構造化され、モデルデータDTと関連付けられて、相互作用性インクを形成する。
【0104】
より具体的には、
図9に示すように、特定の実施形態によれば、テキストブロックBL1のモデルデータDTは、
複数の文字CHを規定する文字情報220であって、各文字CHが、デジタルインクの少なくとも1つのストロークST(または、ストロークSTの少なくとも一部)、及び、少なくとも1つのテキストブロックBL1のテキストラインLNと関連付けられている、文字情報220と、
複数のワードWDを規定するワード情報222であって、各ワードWDが、文字情報220によって規定された少なくとも1つの文字CHと関連付けられている、ワード情報222と、
テキストブロックBL1の各テキストラインLNを規定するライン情報224であって、各テキストラインLNが、ワード情報222によって規定された少なくとも1つのワードWD(またはワードの一部)と関連付けられている、ライン情報224と、
を含む場合がある。
【0105】
文字CHが、単一の入力ストロークST、複数の入力ストロークST、または、1つもしくは複数の入力ストロークSTの一部によって形成される場合があることに留意されたい。文字情報220は、ストロークSTの各部の、特有の文字CHとのリンクを示すものである。たとえば、
図6に示すように、テキスト認識S10の間にコンピュータデバイス100によって認識された文字CH2、CH3、及びCH4は、それぞれ、ストロークST3の部分ST31、ST32、及びST33によって部分的または全体的に形成される。
【0106】
特定の実施例では、ライン情報224は、テキストブロックBL1の各テキストラインLNに関し、
テキストラインLNの原点を示す原点座標(x,y)と、
テキストラインLNの傾斜を示す傾斜情報(a)と、
テキストラインLNの高さを示す高さ情報(h)と、
を含んでいる。
【0107】
ライン情報224はこうして、コンピュータデバイス100が、各テキストラインLNの位置、向き、及びサイズを規定することを可能にする。
【0108】
テキストラインLNに属する任意の所定の基準ポイントが、前述のテキストラインLNの、上述の「原点」としてライン情報224に規定され得ることに留意されたい。
【0109】
テキストラインLNの原点座標は、浮動小数点の値:ライン(x,y)の対によって規定される場合がある。傾斜情報は、浮動小数点の値:ライン(a)である場合がある。高さ情報は、たとえば、ドキュメントモデルに応じてこのテキストラインにアサインされた文字の平均高さを示す、浮動小数点の値:ライン(h)である場合がある。本実施例では、高さ(h)は、所与のテキストラインLNの各々に関する傾斜(a)に対して垂直に表示される。
【0110】
各テキストラインLNに関する平均高さ(h)の計算は、各テキストラインの結果としての平均値にノイズが発生することを避けるために、アルファベットの上に来る部分及び下に来る部分を考慮するように、コンピュータデバイス100によって実施される場合がある。
【0111】
実施例として、コンピュータデバイス100は、第1のテキストラインLN1内の入力ストロークST1からST4が、特に構造化された方式で、集合的にワードWD1を形成することを認識する(S10)。結果として、
図6及び
図9に示すように、コンピュータデバイス100がモデルデータDTを生成する(S12)。このモデルデータDTは、テキストラインLN1に関連する、
ストロークST1及びストロークST2と関連する文字CH1と、
ストロークST3の部分ST31と関連する文字CH2と、
ストロークST3の(部分ST31及び部分ST33を補完する)部分ST32、ならびにストロークST4と関連する文字CH3と、
ストロークST3の(ST31及びST32を補完する)部分ST33と関連する文字CH4と、
の文字を規定する文字情報220を含んでいる。
【0112】
テキストブロックBL1内の他の文字CHは、文字情報220内で類似の方式で規定される。
【0113】
この実施例では依然として、ワード情報222は、文字CH1、CH2、CH3、及びCH4に関連するワードWD1を規定する。テキストブロックBL1内の他のワードWDは、ワード情報222において類似の方式で規定される。
【0114】
この実施例では依然として、ライン情報224は、
原点座標(x1,y1)、傾斜情報(a1)、及び高さ情報(h1)を示すテキストラインLN1と、
原点座標(x2,y2)、傾斜情報(a2)、及び高さ情報(h2)を示すテキストラインLN2と、
などのラインを規定する。
【0115】
テキストブロックBL1の他のテキストラインLN3、LN4、及びLN5は、ライン情報224において類似の方式で規定される。
【0116】
しかし、モデルデータDTは、
図9に示す方式とは別の方式で系統立てられる場合があることを理解されたい。
【0117】
記憶ステップS14では、コンピュータデバイス100は、S12で生成されたモデルデータDTをメモリ108内に記憶する。
【0118】
図10に示すように、正規化ステップS16では、コンピュータデバイス100は、テキストブロックBL1の各手書きテキストラインLNを、前述したように、フリーハンドライティングフォーマットFT1から構造化されたハンドライティングフォーマットFT2に正規化する。この正規化は、特定の実施例で以下に記載するように、ライン毎の基準で実施される。この正規化は、コンピュータデバイス100が、手書きテキストのテキストブロックBL1を、制約のない環境(フリーハンドライティングモードFT1)から、フォーマットされているか構造化された環境(構造化されたハンドライティングフォーマットFT2)に変換することを可能にし、それにより、前述の手書きテキストを、ドキュメントパターン200に従って、より統計立てられ(すなわち、正規化され)、かつ効率的な方式で配置し、後に表示することができるようになっている。
【0119】
図10の実施例では、正規化S16の結果が、コンピュータデバイス100によってディスプレイデバイス102上に表示されている。見ることができるように、手書きテキストのテキストラインLN1からLN5は、ドキュメントパターン200によって規定された構造化されたフォーマットFT2に従って、位置、サイズ、及び向きの一様にされた構成に正規化される。たとえば、テキストラインLN2及びLN4は、ドキュメントパターン200(より具体的には、ラインパターン)によって課されるライン間距離d1に従うようにダウンサイズされる。手書きテキストのすべてのテキストラインLNは、ガイドライン202に従って整列及び配置される。すでに示したように、正規化の様々な他の形態が、本発明の中で予期される。
【0120】
この正規化S16は、テキストブロックBL1の各テキストラインLNを、これらが構造化されたハンドライティングフォーマットFT2に従って再配置されるように変換すること(S20)によって達成される。以下にさらに記載するように、これら変換は、それぞれの変換関数TFを手書きテキストの各テキストラインLN(すなわち、各テキストラインLNのストロークST)に適用することによって実施される。
【0121】
すでに示したように、正規化を経る各テキストラインLNは、手書きテキストのテキストラインである。いくつかの変換がこの手書きテキストラインに、正規化プロセスS16の一部として適用されるが、これらテキストラインLNは、正規化されると(すなわち、正規化されたテキストライン)、依然として手書きテキストラインである。すなわち、テキストラインとして、しかし正規化された方式で(たとえば、入力ストロークによって形成された手書きを構成しない活字に組み上がったコンテンツとは反対に)配置される手書きである。以下にさらに記載するように、手書きテキストの各テキストラインLNのストロークSTは、対応する手書きテキストラインを正規化された手書きテキストラインに変える変換を規定する変換関数TFの影響を受ける。
【0122】
さらに、手書きテキストラインLNを示すモデルデータDTは、正規化S16の間にテキストラインLNに適用される同じ変換(変換関数によって規定される)に基づき、コンピュータデバイス100によってアップデートされる(S22)。
【0123】
より明確には、正規化ステップS16(
図5)の間、コンピュータデバイス100は、テキストブロックBL1の各テキストラインLNに関するステップS18、S20、及びS22を含む同じ反復を実施する。明確化のために、この反復S18からS22は、第1のテキストラインLN1のみに関して以下に詳細に記載される。ステップS18からS22は、テキストブロックBL1の各テキストラインLNに関し、類似の方式で適用される場合がある。
【0124】
判定ステップS18の間、コンピュータデバイス100は、ドキュメントパターン200に従うように、それぞれの変換関数TFを計算(または判定)して、手書きテキストのテキストラインLN1を構造化されたハンドライティングフォーマットFT2に変換する。特定の実施例では、コンピュータデバイス100は、S18において、テキストラインLN1のライン情報224、すなわち、手書きテキストのテキストラインLN1の原点座標(x1,y1)、傾斜情報(a1)、及び高さ情報(h1)を含む入力パラメータを取得する。コンピュータデバイス100は、次いで、手書きテキストの取得された入力パラメータに基づき、かつ、ドキュメントパターン200に基づき(たとえば、構造化されたフォーマットFT2で適用可能なドキュメントパターン200のラインパターンを考慮する)、テキストラインLN1に関する変換関数TFを判定する(S18)。具体的には、コンピュータデバイス100は、テキストラインLN1の手書きテキストが、ドキュメントパターン200の第1のベースライン202に移動し、この第1のベースラインに応じて向けられ、また、ドキュメントパターン200のライン間に応じて拡縮されるように、変換関数TFを判定する場合がある。たとえば、テキストラインLN1の原点は、第1のベースライン202の所定の位置に移動される。
【0125】
図11に示すように、それぞれのテキストラインLNに関してコンピュータデバイス100によって計算された各変換関数TFは、正規化ステップS16の間、手書きテキストの前述のテキストラインLN(そしてひいては、このテキストラインLNを形成するストロークST)に適用されるように、
平行移動成分CP1と、
拡縮成分CP2と、
回転成分CP3と、
の少なくとも1つの変換成分を規定する場合がある。
【0126】
本ケースでは、各変換関数TFがこれら3つの構成要素CP1、CP2、及びCP3を含むことが考慮されるが、他の実施態様が可能である。
【0127】
平行移動成分CP1は、それぞれのテキストラインLNの平行移動を規定する場合がある。拡縮成分CP2は、それぞれのテキストラインの拡縮操作を規定する場合がある。最後に、回転成分CP3は、それぞれのテキストラインLNの回転を規定する場合がある。
【0128】
特定の実施例では、正規化ステップS16の間、変換関数TFの平行移動成分CP1は、このテキストラインの原点が、正規化ステップS16の間に、前述のテキストラインにアサインされた対応するベースライン202と整列するように移動されるように、テキストライン(たとえば、LN1)の平行移動を実施するように判定される。
【0129】
特定の実施例では、正規化ステップS16の間、変換関数TFの拡縮成分CP2は、それぞれのテキストライン(たとえば、LN1)に関し、ドキュメントパターン200のラインパターンの2つの連続したベースライン202間の距離d1の、テキストラインの高さ(たとえば、h1)に対する割合に基づいて判定される。
【0130】
特定の実施例では、正規化ステップS16の間、回転成分CP3は、それぞれのテキストライン(たとえば、LN3)を回転させて、それぞれのテキストラインの傾斜(たとえば、a1)(たとえば、ドキュメントパターン200のベースライン202を基準として取る)を、ドキュメントパターン200に従ってゼロに低減するように判定される。
【0131】
実施例として、変換関数TFは、正規化の間にテキストラインLNに適用される回転を規定する場合がある。傾斜したラインLNに適用される回転は、傾斜(a)とは反対側の角度の回転である場合がある。テキストラインLNの所与の傾斜(a)に関し、変換TFの回転成分CP3は、このため、(-a)の回転である場合がある。変換関数TFが回転を含む場合、この変換関数TFは、影響を受けるストローク(複数可)またはストロークの部分の各ポイントの、テキストラインLNの原点周りの回転を生じる場合がある。以下にさらに説明するように、ライン情報224は、したがって、(ラインの傾斜(a)をゼロ:a=0に設定することにより)アップデートされる場合もある。
【0132】
テキストラインLNの回転が、構造化されたフォーマットFT2に変換することが常に必要であるわけではないことに留意されたい。すなわち、テキストラインLNがすでに適切な向きにある場合(たとえば、テキストラインLNが、ドキュメントパターン200のそれぞれのベースライン202の方向に実質的に沿って、フリーハンドライティングフォーマットFT1で手書きされた場合)である。そのようなケースでは、回転成分CP3は、CP3=0になるように設定することができる。
【0133】
同様に、いくつかのケースでは、構成要素CP1及び/またはCP2は、それぞれ、平行移動及び/または拡縮がそれぞれのテキストラインLNを構造化されたフォーマットFT2に変換するために必要ではない場合、ゼロに設定される場合がある。
【0134】
特定の実施例では、コンピュータデバイス100は、S18において、構成要素CP1、CP2、及びCP3の少なくとも1つがゼロとは異なるように、テキストラインLN1に関する変換関数TFを判定する。
図11に示す実施例では、変換関数TFは、「This example shows」を手書きとして読み取るテキストラインLN1が、平行移動成分CP1に従ってディスプレイデバイス102上で移動され(平行移動)、拡縮成分CP2に従って拡縮され(ダウンサイズされ)、また、回転成分CP3に従ってある角度だけ回転されるように、計算される。
【0135】
変換ステップS20では、コンピュータデバイス100は、テキストラインLN1の各ストロークSTを構造化されたハンドライティングフォーマットFT1に変換するように、それぞれの変換関数TFを適用する。本実施例では、コンピュータデバイス100は、こうして、
図11に関してすでに上述したように、平行移動成分CP1に従ってテキストラインLN1を移動(平行移動)し、拡縮成分CP2に従ってテキストラインLN1を拡縮し、回転成分CP3に従ってテキストラインLN1を回転させる。「This example shows」とのフレーズは、
図11に示すように正規化されると、依然として(ストロークによって形成された)手書きを構成するが、正規化された方式で構造的に統計立てられている。
【0136】
アップデートステップS22では、コンピュータデバイス100は、テキストラインLN1に関してS18において判定されたそれぞれの変換関数TFに基づき、テキストブロックBL1のモデルデータDTをアップデートもする。より具体的には、コンピュータデバイス100は、S18で計算されたそれぞれの変換関数TFに従って、テキストラインLN1に関するモデルデータDTの一部をアップデートする。
【0137】
本実施例では、アップデートステップS22の間、コンピュータデバイス100は、S18において判定されたそれぞれの変換関数TFに基づき、テキストラインLN1に関連するモデルデータDTのライン情報224をアップデートする。結果として、原点座標(x1,y1)、傾斜情報(a1)、及び高さ情報(h1)は、それぞれ、構成要素CP1、CP3、及びCP2に従ってアップデートされる。
【0138】
上で示したように、ステップS18、S20、及びS22は、ライン抽出ステップS10で検出された各テキストラインLNに関し、類似の方式で実施される。結果として、テキストブロックBL1は、このテキストブロックBL1が構造化されたフォーマットFT2に変換され(S20)、関連するモデルデータをそれに応じてアップデートさせる(S22)ように、正規化を経る(S16)。この正規化は、各テキストラインLNが専用の変換関数TFに基づいて正規化され、各テキストラインLNに関するモデルデータがこの専用の変換関数TFに基づいてアップデートされる意味で、ライン毎の基準で実施される。
【0139】
アップデートステップS22は、変換ステップS20の前か後に実施される場合がある。より一般的には、ステップS18からS22のシーケンスが異なるテキストラインLNに関して実施される順番は、当業者によって適合させられる場合がある。
【0140】
図5に示すように、コンピュータデバイスは、アップデートされたモデルデータDTをメモリ8(
図2)に記憶する場合がある(S24)。この記憶ステップは、アップデートS22がテキストブロックBL1の各テキストラインLNに関して実施される間、継続的に実施される場合がある。本実施例では、テキストブロックBL1のアップデートされたモデルデータDTは、S14で記憶されたオリジナルのモデルデータDTの代わりにS24で記憶される。
【0141】
さらに、コンピュータデバイス100は、
図10に示すように、正規化されたテキストブロックBL1を表示する(S26)場合がある。正規化されると、テキストブロックBL1は、前述のように、ドキュメントパターン200に従う(マッチする)ように、構造化されたフォーマットFT2に従って配置される。
【0142】
各テキストラインLNのベースライン202は、対応するライン情報224において規定された原点及び傾斜を使用して、コンピュータデバイス100によって描写される場合がある。さらに、各テキストラインLNの高さの値は、ディスプレイデバイス102上のハイライトされた矩形(または類似のもの)を使用して示される場合がある。各テキストラインLNの原点は、テキストラインが正規化の間に拡縮される場合にアンカーポイントとして使用される場合がある。
【0143】
フリーハンドライティングフォーマットから構造化された状況またはフォーマット(FT2など)への、テキストブロックBL1のテキストの正規化S16は、インクの相互作用性によって提供される全体の経験を向上させる。正規化は、より一様かつ構造化された方式で手書きテキスト入力を配置及び表示することを可能にするのみならず、正規化は、以下に説明するように、テキスト認識システムの信頼性及び編集効率を向上させることを可能にもする。
【0144】
本発明は、相互作用性インクを形成するように、デジタルインクをモデルデータで構造的にすることを可能にする。前に示したように、モデルデータDTは、各ストロークSTを特有の文字CHにリンクさせ、各文字CHを特有のワードWDにリンクさせ、また、各ワードWDを特有のテキストラインLNにリンクさせる相互参照を規定し、それにより、インクの相互作用性を可能にする。たとえば、テキストブロック内のワードを消去することは、ドキュメントモデルに従ってこのワードによって参照されたすべての文字を消去することをも含んでいる。別の実施例として、所与のラインLNのすべてのコンテンツを消去することは、このラインをモデルデータから消去するのみならず、コンピュータデバイス100に、このラインの構成要素であるワードWD及び文字CHのすべてを消去させもする。前述のようなライン毎の正規化プロセスを可能にするのは、モデルデータDTによって規定されたこれら相関関係である。
【0145】
本発明のおかげで、入力された手書きテキストを示す関連するモデルデータを最新のものに維持し、それにより、正規化プロセスの間に実施される変換に応じてさらなるテキスト認識を実施する必要がないようになしつつ、手書きテキスト入力を正規化することができる。換言すると、正規化プロセスの一部として、コンピュータデバイス100は、モデルデータにおいて規定されたような手書きテキスト入力INのストロークSTと、文字CHと、ワードWDと、テキストラインLNとの間の相関関係をアップデートし、それにより、正規化されたテキストブロックBL1にテキスト認識をふたたび実施することが不要であるようになっている。正規化されたテキストブロックBL1は、別様に、S8で実施された最初のテキスト認識の結果と矛盾する場合がある。
【0146】
一般的に言えば、既知のコンピュータデバイスにおけるテキスト認識エンジンは、通常、手書きテキスト上で起こるあらゆるインクの変更または編集(たとえば、ストロークの消去または編集)を監視するように構成されている。したがって、そのような既知のコンピュータデバイス上でテキストの正規化が行われた場合、このことは、テキスト認識エンジンに、正規化の間、構造化されたフォーマットに一度変換された手書きテキスト入力内の可能性のある新たなコンテンツを認識することを試みるように、ふたたび実行させる。換言すると、既知のシステム内のデジタルインクの正規化は、以前の認識の結果を廃棄し、新たな認識の結果を得るためにインク全体を再処理することに繋がる。そのような応答するテキスト認識機構は、インクの変更が、たとえば、フリーハンドライティングモードにおいてユーザの編集のいくつかの形態から生じる場合に有用である場合があるが、コンピュータデバイス100が、フリーハンドライティングフォーマットFT1から構造化されたフォーマットFT2へのテキストブロックBL1の正規化S16に応じて新たなテキスト認識を実施するには、実際には非生産的である。正規化S16に応じた任意のさらなるテキスト認識は、フリーハンドライティングモードFT1で手書きテキスト入力INに実施された最初のテキスト認識S8を汚す、または矛盾するリスクがある。さらに、そのようなさらなるテキスト認識プロセスを実施することは、時間及びリソースを必要とする。正規化の間にデジタルインクに適用される変換関数TFに応じてモデルデータDTをアップデートすることは、時間及びリソースを節約しつつ、デジタルインク、及び関連するデータを、一定かつ一貫した状態のままにすることを可能にする。
【0147】
テキストブロックBL1に実施される正規化S16に応じた新たなテキスト認識を引き起こす代わりに、本発明のコンピュータデバイス100は、正規化の間にテキストラインLNに適用される変換関数TFに応じてテキストブロックBL1のモデルデータDTをアップデートするように構成されている。
【0148】
本発明の正規化プロセスのポイントは、所与の最初の認識の結果(すなわち、最初のテキスト認識S8の結果)に関するデジタルインクを操作することである。このため、コンピュータデバイス100は、テキストブロックBL1のデジタルインクを構造化されたフォーマットFT2に変換し、それに応じてドキュメントモデルをアップデートする場合があり、それにより、フリーハンドライティングモードで取得された最初のテキスト認識S8の結果が疑われないようになっている。
【0149】
特定の実施形態では、正規化ステップS16の間に、各テキストラインLNのモデルデータDTが、S18で取得されたそれぞれの変換関数TFに従ってアップデートされ、一方、それぞれの変換関数TFの適用から生じるあらゆるテキスト認識をブロックする。結果として、コンピュータデバイス100は、ステップS16においてテキストブロックBL1に実施された正規化に応じて、あらゆる新たなテキスト認識を抑制する。このため、認識されたテキストは、デジタルインクが正規化の間に変換される場合であっても、安定したままであり、それにより、認識システム全体の信頼性及び効率を向上させる。
【0150】
しかし、(
図10に示すように)テキストブロックBL1が構造化されたフォーマットFT2に正規化されると、新たなテキスト認識が、編集のあらゆる次の形態、または正規化されたテキストブロックBL1で後に実施されるインクの変更を反映するように引き起こされる場合があることを理解されたい。たとえば、ユーザが、(たとえば、ストローク、または、ワードWDもしくは文字CHのストロークの部分を消去すること、またはこれを修正することにより)構造化されたモードFT2で第1のテキストラインLN1を編集することを決める場合、コンピュータデバイス100は、最初のテキスト認識S8の結果とは異なる場合があるテキストを認識するように、新たなテキスト認識を実施する場合がある。
【0151】
したがって、コンピュータデバイス100は、好ましくは、正規化ステップS16の後に実施される編集操作に応じて、新たなテキスト認識を引き起こす。そのようなケースでは、テキスト認識機能は、コンピュータデバイス100においては恒久的にブロックされないが、代わりに、構造化されたフォーマットFT2においてテキストブロックBL1が後に編集されるケースにおいて、新たなコンテンツを認識することを可能にするために、正規化S16が完了すると、アクティブなままに維持される。手書きテキストは、このため、任意の形態の編集など(たとえば、テキストのリフローなど)、さらなる操作及び相互作用に関する正規化の後に、コンピュータデバイス100によってより確実かつ容易に処理される場合がある。
【0152】
さらに、本発明は、ユーザが、フリーハンドライティングモードで手書きテキストを入力することを可能にする。本来、ライン、サイズ、向きの制約(ガイドライン、余白などを含む)は、フリーハンドライティングモードではユーザに課されず、それにより、手書きの様々な複雑な形態が入力される場合があるようになっている。前に記載したように、手書きテキスト入力を構造化されたハンドライティングフォーマットに正規化することにより、手書きテキスト上でコンピュータデバイス100によって編集機能を実施すること(修正、拡縮など)が促進され得る。正規化は、たとえば、コンピュータデバイスによって受領される、ユーザが開始するコマンドから生じるか、コンピュータデバイスによって検出される任意の所定の事象から生じる場合がある。フリーハンドライティングモードが最初に使用されている場合であっても、ユーザは、より構造化され、向上された方式で手書き入力を編集及び操作する場合があり、それにより、ユーザの経験を向上させる。
【0153】
たとえば
図12に示すように、正規化S16が完了すると、コンピュータデバイス100は、編集ステップS28の間に編集操作を実施する場合がある。本実施例では、正規化されたテキストブロックBL1に対し、水平方向にテキストリフローが実施される(垂直なテキストリフローも可能である)。結果として、構造化されたフォーマットFT2におけるテキストブロックBL1の異なるデジタルインクのストロークの相対位置が再配置される。そのような編集操作は、任意の適切なユーザのコマンド(たとえば、入力表面104上でのユーザのジェスチャ)に応じて、ユーザによって引き起こされるか、所定の事象が検出された際にコンピュータデバイス100自体によって引き起こされる場合がある。
【0154】
いくつかの代替的実施態様では、ブロックに書き込まれた機能は、図に書かれた順番とは異なって生じる場合があることに留意されたい。たとえば、関連する機能に応じて、連続して示される2つのブロックは、実際は、実質的に同時に実行される場合があり、または、各ブロックは、ときには逆の順番で実行される場合があり、または、各ブロックは、代替的な順番で実行される場合がある。
【0155】
本発明が、特定の実施形態において記載されてきたが、当業者の能力の中で、添付の特許請求の範囲の範囲に応じて、多くの変更形態及び実施形態を受け入れることができることが明らかである。具体的には、当業者は、添付の特許請求の範囲の範囲内にある、この文献に記載の様々な実施形態の任意及びすべての組合せ及び変形形態を予期する場合がある。
【国際調査報告】