(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】テキスト行抽出
(51)【国際特許分類】
G06V 30/14 20220101AFI20240514BHJP
G06V 10/82 20220101ALI20240514BHJP
G06T 7/00 20170101ALI20240514BHJP
【FI】
G06V30/14 340K
G06V10/82
G06T7/00 350C
(21)【出願番号】P 2022504626
(86)(22)【出願日】2020-07-29
(86)【国際出願番号】 EP2020071420
(87)【国際公開番号】W WO2021018973
(87)【国際公開日】2021-02-04
【審査請求日】2023-07-25
(32)【優先日】2019-07-31
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】515295429
【氏名又は名称】マイスクリプト
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】エベール ダヴィド
【審査官】佐藤 実
(56)【参考文献】
【文献】Quang Nhat Vo et al.,Dense prediction for text line segmentation in handwritten document images,2016 IEEE International Conference on Image Processing (ICIP),IEEE,2016年,pp.3264-3268,https://ieeexplore.ieee.org/document/7532963
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00 -30/424
G06V 10/82
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
テキスト手書き(IN)を処理するためのコンピューティングデバイス(100)によって実装される方法であって、
実質的に手書き方向(x)に沿って入力されたデジタルインクのストローク(ST)を表示領域内に表示すること(S4)と、
前記ストロークからテキスト行(LN)を抽出するためにテキスト行抽出(S10)を実行することであって、前記テキスト行抽出は、
前記手書き方向を横断して伸びるストリップ(SP)へと前記表示領域をスライスすること(S12)であって、隣接するストリップが、各ストロークが少なくとも2つの隣接するストリップに含まれるように互いに部分的に重なり合う、前記スライスすることと、
各ストリップ(SP)について、少なくとも部分的に前記ストリップに含まれる前記ストローク(ST)を順序付けて(S14)、時間的順序で並べられたストロークの第1の時間的に順序付けられたリスト(L1a)、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークの少なくとも1つの第1の空間的に順序付けられたリスト(L2a~L4a)を生成し、順序付けられたリストの第1のセット(SLa)を形成することと、
前記第1の時間的に順序付けられたリスト及び前記少なくとも1つの第1の空間的に順序付けられたリストからそれぞれサイズ閾値未満のストロークをフィルタ除去することにより、各ストリップ(SP)について、ストロークの第2の時間的に順序付けられたリスト(L1b)及びストロークの少なくとも1つの第2の空間的に順序付けられたリスト(L2b~L4b)を含む、順序付けられたリストの第2のセット(SLb)を形成すること(S16)と、
少なくとも1つの人工ニューラルネットワークにより、ニューラルネット分析(S18)を実行して、決定クラス(CL)として、前記第1及び第2のセットの順序付けられた各リスト内の連続ストロークの各ペア(PR)について、前記決定クラスの確率スコア(P)に関連して、前記ペアのストロークが同一のテキスト行(LN)に属するかどうかを判定することと、
前記第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、前記ニューラルネット分析の間に最高の確率スコア(P)で確定された前記決定クラス(CL)を選択すること(S20)と、
連続ストロークの各ペアについて選択された最高の確率スコアを有する前記決定クラスに基づいてストロークを行仮定(LH)へと統合することによってテキスト行を定義すること(S22)とを含む、
前記実行することと、
を含む、前記方法。
【請求項2】
前記デジタルインクのストロークは、手書きガイドの制約を何も受けないフリー手書き形式で入力される、請求項1に記載の方法。
【請求項3】
前記スライスすることは、前記ストリップ(SP)が互いに平行であり、前記ストリップが同じ方向(Y)、いわゆるストリップ方向に沿って伸びるように構成される、請求項1または2に記載の方法。
【請求項4】
前記スライスすることは、
前記ストロークのスケールに基づいて前記ストリップの幅を確定することであって、前記スケールが、前記ストロークの平均サイズまたは高さに対応する、前記確定することと、
前記ストロークが少なくとも部分的に含まれる各ストリップに各ストロークを割り当てることと、
を含む、請求項3に記載の方法。
【請求項5】
前記スライスすることは、隣接するストリップの各ペア(PR)が互いに部分的に重なり合って、それぞれの領域の50%~85%を共有するように構成される、請求項3または4に記載の方法。
【請求項6】
前記順序付けることにおいて各ストリップ(SP)について生成された前記少なくとも1つの第1の空間的に順序付けられたリストは、
前記ストリップの各ストロークのそれぞれの重心の、前記ストリップの方向に沿った位置に従って順序付けられたストロークの空間的に順序付けられたリスト(L2a)、
前記ストリップの各ストロークの前記ストリップ方向に沿った第1の向きにおける最も外側の座標に従って順序付けられたストロークの空間的に順序付けられたリスト(L3a)、及び
前記ストリップの各ストロークの前記ストリップ方向に沿った、前記第1の向きとは反対の第2の向きにおける最も外側の座標に従って順序付けられたストロークの空間的に順序付けられたリスト(L4a)、のうちの少なくとも1つを含む、請求項3から5のいずれか一項に記載の方法。
【請求項7】
順序付けられたリストの第2のセットを前記形成することは、各ストリップ(SP)について、
前記ストロークのストリップ方向における高さまたは最大距離のうちの少なくとも一方に基づいて前記ストリップの各ストロークの第1のサイズを評価し、前記ストロークの長さに基づいて前記ストリップの各ストロークの第2のサイズを評価することと、
前記第1の時間的に順序付けられたリスト及び前記少なくとも1つの第1の空間的に順序付けられたリストから、前記第1または第2のサイズのいずれかがサイズ閾値未満であるときの各ストロークを削除し、前記第2の時間的に順序付けられたリスト及び前記少なくとも1つの第2の空間的に順序付けられたリストをそれぞれ生成することと、
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ニューラルネット分析は、
少なくとも1つの人工分類器またはニューラルネットにより、順序付けられたリストの前記第1及び第2のセット(SLa、SLb)の順序付けられたリストに含まれる連続ストロークの各ペア(PR)における前記ストロークが同一のテキスト行(LN)に属する確率を表す確率スコア(P)を計算することと、
連続ストロークの各ペアについての決定クラス(CL)として、前記確率スコアが少なくとも確率閾値に達した場合に前記ペアのストローク(ST)が同一のテキスト行に属すると確定することと、
を含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ニューラルネット分析の間、前記少なくとも1つの人工ニューラルネットは、前記第1及び第2のセット(SLa、SLb)の順序付けられた各リスト内の連続ストロークの各ペア(PR)を順次分析して、前記順序付けられたリスト内の前記ストロークに関連する空間的及び時間的情報に基づき、それぞれの決定クラス及び確率スコアを確定する、請求項8に記載の方法。
【請求項10】
前記選択することは、
前記第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、それぞれの確率スコアPに関連して、前記選択された決定クラスを確率行列(PM)へと集約することを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記テキスト行を定義することは、
前記確率行列(PM)を、前記確率行列に含まれる連続ストロークの各ペアについての前記決定クラス及び関連確率スコアを含むエントリのベクトルリスト(LT)へと変換することであって、前記ベクトルリストは、各ペアの前記確率スコアの値の降順に従って並べられる、前記変換することと、
前記ベクトルリスト内の連続ストロークの各ペア(PR)について、最高の関連確率スコアから最低の関連確率スコアまで、連続ストロークの前記ペアに割り当てられた行仮定を順次確定することであって、各行仮定は、同一のテキスト行の少なくとも1つのストロークを含む、前記確定することと、
を含み、
得られた各行仮定は、前記ベクトルリストの全てのストロークがそれぞれの行仮定に一旦割り当てられたら、それぞれのテキスト行を定義する、請求
項10に記載の方法。
【請求項12】
前記テキスト行を定義することの間、前記ベクトルリスト(LT)に含まれる連続ストロークのペア(PR)の2つのストロークは、前記ペアについて前記最高の確率スコアで先に選択された前記決定クラスが、前記2つの連続ストロークが同一のテキスト行に属することを示している場合、かつ前記最高の確率スコアが少なくとも最終閾値に達している場合、同一のテキスト行に対応する同一の行仮定(LH)へと統合される、請求項11に記載の方法。
【請求項13】
前記テキスト行を定義することは、
前記ベクトルリスト(LT)に含まれる連続ストロークのペア(PR)、すなわち、第1及び第2の行仮定にそれぞれ属する第1及び第2のストロークを選択すること(S23)であって、前記第1及び第2の行仮定のうちの少なくとも一方が少なくとも2つのストロークを含む、前記選択することを含み、
前記ペアの前記第1及び第2のストロークが、少なくとも前記最終閾値に達した最高の確率スコアで同一のテキスト行に属することを検出する(S24)と、前記コンピューティングデバイスは、
前記第1の行仮定に既に割り当てられた連続ストロークの各ペアの前記確率スコアに基づいて前記第1の行仮定の第1の行スコアを計算すること(S30)であって、前記第1の行スコアは、前記第1の行仮定の各ストロークが第1のテキスト行の一部である尤度を表す、前記第1の行スコアを計算することと、
前記第2の行仮定に既に割り当てられた連続ストロークの各ペアの前記確率スコアに基づいて前記第2の行仮定の第2の行スコアを計算すること(S32)であって、前記第2の行スコアは、前記第2の行仮定の各ストロークが第2のテキスト行の一部である尤度を表す、前記第2の行スコアを計算することと、
前記第1及び第2の行仮定の各ストロークを統合した第3の行仮定に割り当てられた連続ストロークの各ペアの前記確率スコアに基づいて第3の行スコアを計算すること(S34)であって、前記第3の行スコアは、前記第1及び第2の行仮定の各ストロークが第3のテキスト行を共に形成する尤度を表す、前記第3の行スコアを計算することと、
前記第1の行スコアと前記第2の行スコアの和と前記第3の行スコアとの比較に基づいて前記第1及び第2の行仮定が前記第3の行仮定へとマージされるかどうかを判定すること(S36)と、
を含む決定プロセス(S27)を実行する、請求項12に記載の方法。
【請求項14】
コンピュータプログラムであって、前記プログラムがコンピュータによって実行されるときに請求項1から13のいずれか一項に記載の方法のステップを実行するための命令を含む、前記コンピュータプログラム。
【請求項15】
手書きテキストを処理するためのコンピューティングデバイス(100)であって、
実質的に手書き方向に沿って入力されたデジタルインクのストローク(ST)を表示領域内に表示する表示ユニット(102)と、
前記ストロークからテキスト行(LN)を抽出するためにテキスト行抽出を実行する行抽出ユニット(MD2)であって、
前記手書き方向を横断して伸びるストリップへと前記表示領域をスライスするスライスモジュール(MD4)であって、隣接するストリップは、各ストロークが少なくとも2つの隣接するストリップに含まれるように互いに部分的に重なり合う、前記スライスモジュールと、
各ストリップについて、少なくとも部分的に前記ストリップに含まれる前記ストロークを順序付けて、時間的順序で並べられたストロークの第1の時間的に順序付けられたリスト、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークの少なくとも1つの第1の空間的に順序付けられたリストを生成し、順序付けられたリストの第1のセットを形成する順序付けモジュール(MD6)と、
前記第1の時間的に順序付けられたリスト及び前記少なくとも1つの第1の空間的に順序付けられたリストからそれぞれサイズ閾値未満のストロークをフィルタ除去することにより、各ストリップについて、ストロークの第2の時間的に順序付けられたリスト及びストロークの少なくとも1つの第2の空間的に順序付けられたリストを含む、順序付けられたリストの第2のセットを形成する形成モジュール(MD8)と、
少なくとも1つの人工ニューラルネットワークにより、ニューラルネット分析を実行して、決定クラスとして(CL)、前記第1及び第2のセットの順序付けられた各リスト内の連続ストロークの各ペアについて、前記決定クラスの確率スコア(P)に関連して、前記ペアのストロークが同一のテキスト行に属するかどうかを判定するニューラルネットモジュール(MD10)と、
前記第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、前記ニューラルネット分析の間に最高の確率スコアで確定された前記決定クラスを選択する選択モジュール(MD12)と、
連続ストロークの各ペアについて選択された最高の確率スコアを有する前記決定クラスに基づいてストロークを行仮定へと統合することによってテキスト行を定義する行定義モジュール(MD14)と、
を含む前記行抽出ユニットと、
を含む、前記コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、テキスト手書きのユーザ入力を認識することができるコンピューティングデバイスインターフェースの分野に関する。特に、本開示は、デジタルインクのストロークからテキスト行を認識するためのコンピューティングデバイス及び対応する方法に関する。
【背景技術】
【0002】
コンピューティングデバイスは、日常生活にますます広く普及化し続けている。コンピューティングデバイスは、コンピュータデスクトップ、ラップトップ、タブレットPC、ハイブリッドコンピュータ(ツーインワン)、電子書籍リーダ、携帯電話、スマートフォン、ウェアラブルコンピュータ(スマートウォッチ、スマートグラス/ヘッドセットを含む)、全地球測位システム(GPS)ユニット、エンタープライズデジタルアシスタント(EDA)、パーソナルデジタルアシスタント(PDA)、ゲーム機などの各種の形態をとり得る。さらに、コンピューティングデバイスは、自動車、トラック、農機具、製造装置、建物環境制御(例えば、照明、HVAC)、ならびに家庭用機器及び商用機器などの、車両及び装置に組み込まれている。
【0003】
テキストコンテンツ(例えば、英数字)または非テキストコンテンツ(例えば、形状、図面)などの、ユーザによって手描きまたは手書きされた入力要素を入力及び認識するための各種の形態のコンピューティングデバイスが知られている。この目的のために、既知のコンピューティングデバイスは、一般に、表示スクリーン上に表示され得るデジタルインクのストロークの形でユーザが手書きコンテンツを入力することを可能にするタッチ感応面などを備えている。
【0004】
ユーザは通常、入力面(または任意の適切なユーザインターフェース)を使用して、フリー手書き形式(またはフリー手書きモード)で、つまり、テキスト手書き入力の位置、サイズ及び方向の手書きの制約を何も伴わずにコンピューティングデバイス上に入力ストロークを手書きし得る。フリー手書きモードでは、手書きの目的でユーザに行のパターンが強いられることはない。フリー手書き形式は、手書き入力中にユーザに完全な自由を与えてくれる。このことは、例えば、迅速かつ多種多様なメモをとるか、またはテキストと非テキストの混合入力をするのに望ましい場合がある。
【0005】
図1Aは、適切なユーザインターフェースを使用してフリー手書きモードでユーザによって手描きまたは手書きされたインク入力要素を表示する表示デバイス1を含むコンピューティングデバイス1の実施例を示す。この場合、コンピューティングデバイス1は、テキストコンテンツ4及び6ならびに非テキストコンテンツ8、10及び12を検出及び表示する。これらの要素のそれぞれは、デジタルインクの1つ以上のストロークによって形成される。入力要素は、例えば、テキストの手書き、図、音楽の注釈などを含み得る。この実施例では、形状8は、要素6と要素8の両方を共に選択及び操作できるようにテキストコンテンツ6を含むコンテナ(ボックス)を構成する長方形などである。
【0006】
さらに、手書き認識はまた、各種の既知の技術を実装することによってコンピューティングデバイスによって実行され得る。ユーザの手書き入力は、通常、リアルタイムの手書き認識システムまたは方法を使用して解釈される。オンラインシステム(クラウドベースのソリューションなどを使用して行われる認識)またはオフラインシステムのいずれかが使用され得る。一旦認識されると、コンピューティングデバイスは、
図1Bのこの実施例に示されているように、入力ストロークをタイプセットバージョンへと転換し得る。
【0007】
テキスト行抽出は、テキスト手書き認識における重要なステップの1つである。この動作は、フリー手書き形式でユーザによって入力されたテキストコンテンツから様々なテキスト行を認識することを目的としている。換言すれば、テキスト行抽出により、コンピューティングデバイスは、各種の入力ストロークがどのテキスト行に属するかを確定することができる。テキスト行抽出は、ある場合には比較的簡単となり得るが、他の場合、特にユーザが経時的順序で手書きしないときには特に複雑にもなり得、エラーの原因にもなり得る。多くの場合、ユーザは論理的な時間的順序でテキストを手書きしているため、コンピューティングデバイスは、各入力ストロークの時間的順序に依存して各テキスト行の開始及び終了を識別し得る。しかしながら、遅延した、すなわち時間的順序ではないストロークをユーザが手書きするときには難易度が大幅に増加する。
【0008】
ユーザは、例えば、時間を節約するために発音区別符号なしで特定の向きに沿って文字のグループを手書きした後、欠けている発音区別符号を文字の全てのグループに補足しようと決める場合がある。一部の言語は、特に、このような経時的ではない手書き入力になる傾向がある。例えば、
図2A及び2Bは、アラビア語及びベトナム語での手書き入力の実施例を示す。見て分かるように、各種の形及びスタイルの、多数の発音区別符号が文字に付加されている。このような言語では、経時的ではない手書き入力の課題が重要となる。既知のコンピューティングデバイスにとって、所与の発音区別符号が文字の上部に付加されているか(発音区別符号が下のテキスト行に属していることを意味する)、それとも別の文字の下部に付加されているか(発音区別符号が上のテキスト行に属していることを意味する)を確定することは特に難しい場合がある。同様に、全文などを手書きした後に句読点をパケットで追加することにより、不確実性がより高まる場合がある。発音区別符号は、例えば、コンマなどと容易に混同されて、テキスト行抽出のタスクをより一層複雑にする場合がある。
【0009】
より一般的には、先に入力されたテキストの手書きを訂正または完了するための何らかの遅延したストロークは、時間的順序の中断につながり、それによってテキスト行抽出のプロセスにおいてエラーのリスクが高まる場合がある。
【0010】
テキスト手書きは、ユーザによる入力が不十分な場合があることを考慮すると(例えば、手書き速度が速すぎるか、または認識しにくい手書きスタイルのため)、既知の手書き認識システムは、信頼性の低いテキスト行抽出の影響を受けやすい。特に、発音区別符号、句読点などの不適切な位置付け(すなわち、ストロークを間違ったテキスト行に関連付けることによる)は、テキスト手書き認識に悪影響を及ぼし、したがって全体的なユーザ体験を損なう場合がある。
【0011】
したがって、入力ストローク(発音区別符号、句読点など)が不適切なテキスト行に関連付けられることを回避するために、特にフリー手書きモードで入力されるテキスト手書きについて、コンピューティングデバイスにおける効率的かつ信頼性の高いテキスト行抽出を可能にする解決策が必要とされている。
【発明の概要】
【0012】
本明細書において以下で説明される本発明の実施例は、テキスト行抽出を実行するためのコンピューティングデバイス、方法及び対応するコンピュータプログラムを提供する。
【0013】
特定の態様によれば、本発明は、テキスト手書きを処理するためのコンピューティングデバイスによって実装される方法であって、
実質的に手書き方向に沿って入力されたデジタルインクのストロークを表示領域内に表示することと、
ストロークからテキスト行を抽出するためにテキスト行抽出を実行することであって、テキスト行抽出は、
手書き方向を横断して伸びるストリップへと表示領域をスライスすることであって、隣接するストリップが、各ストロークが少なくとも2つの隣接するストリップに含まれるように互いに部分的に重なり合う、スライスすることと、
各ストリップについて、少なくとも部分的にストリップに含まれるストロークを順序付けて、時間的順序で並べられたストロークの第1の時間的に順序付けられたリスト、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークの少なくとも1つの第1の空間的に順序付けられたリストを生成し、それによって順序付けられたリストの第1のセットを形成することと、
第1の時間的に順序付けられたリスト及び少なくとも1つの第1の空間的に順序付けられたリストからそれぞれサイズ閾値未満のストロークを除去することにより、各ストリップについて、ストロークの第2の時間的に順序付けられたリスト及びストロークの少なくとも1つの第2の空間的に順序付けられたのリストを含む、順序付けられたリストの第2のセットを形成することと、
ニューラルネット分析を実行して、決定クラスとして、第1及び第2のセットの順序付けられた各リスト内の連続ストロークの各ペアについて、決定クラスの確率スコアに関連して、ペアのストロークが同一のテキスト行に属するかどうかを判定することと、
第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、ニューラルネット分析の間に最高の確率スコアで確定された決定クラスを選択することと、
連続ストロークの各ペアについて選択された最高の確率スコアを有する決定クラスに基づいてストロークを行仮定へと統合することによってテキスト行を定義することとを含む、実行することとを含む、方法を提供する。
【0014】
先に示されたように、行抽出は、テキスト認識における重要なステップであり、特に、発音区別符号、句読点などのいくつかのタイプのストロークに関しては、必ずしも満足のいく結果をもたらさない場合がある。より一般的には、テキストの手書きが経時的ではない順序で入力されたとき、テキスト行抽出の間にエラーが発生する場合がある。本発明は、コンピューティングデバイスによってテキスト手書きに対して手書き認識が実行されるときに効率的かつ信頼性の高いテキスト行抽出を可能にする。
【0015】
特定の実施形態では、デジタルインクのストロークは、手書きガイドの制約を何も受けないフリー手書き形式で入力される。
【0016】
特定の実施形態では、スライスすることは、同じストリップ方向に沿ってストリップが伸びるように構成される。
【0017】
特定の実施形態では、スライスすることは、
ストロークのスケールに基づいてストリップの幅を確定することと、
ストロークが少なくとも部分的に含まれている各ストリップに各ストロークを割り当てることと、を含む。
【0018】
特定の実施形態では、スライスすることは、隣接するストリップの各ペアが互いに部分的に重なり合って、それぞれの領域の50%~85%を共有するように構成される。
【0019】
特定の実施形態では、順序付けることにおいて各ストリップについて生成された少なくとも1つの空間的に順序付けられたリストは、
ストリップの各ストロークのそれぞれの重心の、ストリップの方向に沿った位置に従って順序付けられたストロークの空間的に順序付けられたリスト、
ストリップの各ストロークのストリップ方向に沿った第1の向きにおける最も外側の座標に従って順序付けられたストロークの空間的に順序付けられたリスト、及び
ストリップの各ストロークのストリップ方向に沿った、第1の向きとは反対の第2の向きにおける最も外側の座標に従って順序付けられたストロークの空間的に順序付けられたリスト、のうちの少なくとも1つを含む。
【0020】
特定の実施形態では、順序付けられたリストの第2のセットを形成することは、各ストリップについて、
ストロークのストリップ方向における高さまたは最大距離のうちの少なくとも一方に基づいてストリップの各ストロークの第1のサイズを評価し、ストロークの長さに基づいてストリップの各ストロークの第2のサイズを評価することであって、ストロークの長さは、ストローク点によって定義される経路の長さに対応し得る、評価することと、
第1の時間的に順序付けられたリスト及び少なくとも1つの第1の空間的に順序付けられたリストから、第1または第2のサイズのいずれかがサイズ閾値未満であるときの各ストロークを削除し、それにより、第2の時間的に順序付けられたリスト及び少なくとも1つの第2の空間的に順序付けられたリストをそれぞれ生成することと、を含む。
【0021】
特定の実施形態では、ニューラルネット分析は、
少なくとも1つの人工分類器(例えば、ニューラルネット)により、順序付けられたリストの第1及び第2のセットの順序付けられたリストに含まれる連続ストロークの各ペアにおけるストロークが同一のテキスト行に属する確率を表す確率スコアを計算することと、
連続ストロークの各ペアについての決定クラスとして、確率スコアが少なくとも確率閾値に達した場合にペアのストロークが同一のテキスト行に属すると確定することとを含む。
【0022】
特定の実施形態では、少なくとも1つの人工分類器またはニューラルネットは、第1及び第2のセットの順序付けられた各リスト内の連続ストロークの各ペアを順次分析して、順序付けられたリスト内のストロークに関連する空間的及び時間的情報に基づき、それぞれの決定クラス及び確率スコアを確定する。
【0023】
特定の実施形態では、選択することは、
第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、それぞれの確率スコアに関連して、選択された決定クラスを確率行列へと集約することを含む。
【0024】
特定の実施形態では、テキスト行を定義することは、
確率行列を、確率行列に含まれる連続ストロークの各ペアについての決定クラス及び関連確率スコアを含むエントリのベクトルリストへと変換することであって、ベクトルリストは各ペアの確率スコアの値の降順に従って並べられる、変換することと、
ベクトルリスト内の連続ストロークの各ペアについて、最高の関連確率スコアから最低の関連確率スコアまで、連続ストロークのペアに割り当てられた行仮定を順次確定することであって、各行仮定は、同一のテキスト行の少なくとも1つのストロークを含む、確定することと、を含み、
得られた各行仮定は、ベクトルリストの全てのストロークがそれぞれの行仮定に一旦割り当てられたら、それぞれのテキスト行を定義する。
【0025】
特定の実施形態では、テキスト行を定義することの間、ベクトルリストに含まれる連続ストロークのペアの2つのストロークは、ペアについて最高の確率スコアで先に選択された決定クラスが、2つの連続ストロークが同一のテキスト行に属することを示している場合、かつ最高の確率スコアが少なくとも最終閾値に達している場合、同一のテキスト行に対応する同一の行仮定へと統合される。
【0026】
特定の実施形態では、テキスト行を定義することは、
ベクトルリストに含まれる連続ストロークのペア、すなわち、第1及び第2の行仮定にそれぞれ属する第1及び第2のストロークを選択することであって、第1及び第2の行仮定のうちの少なくとも一方が少なくとも2つのストロークを含む、選択することを含み、
ペアの第1及び第2のストロークが、少なくとも最終閾値に達した最高の確率スコアで同一のテキスト行に属することを検出すると、コンピューティングデバイスは、
第1の行仮定に既に割り当てられた連続ストロークの各ペアの確率スコアに基づいて第1の行仮定の第1の行スコアを計算することであって、第1の行スコアは、第1の行仮定の各ストロークが第1のテキスト行の一部である尤度を表す、第1の行スコアを計算することと、
第2の行仮定に既に割り当てられた連続ストロークの各ペアの確率スコアに基づいて第2の行仮定の第2の行スコアを計算することであって、第2の行スコアは、第2の行仮定の各ストロークが第2のテキスト行の一部である尤度を表す、第2の行スコアを計算することと、
第1及び第2の行仮定の各ストロークを統合した第3の行仮定に割り当てられた連続ストロークの各ペアの確率スコアに基づいて第3の行スコアを計算することであって、第3の行スコアは、第1及び第2の行仮定の各ストロークが第3のテキスト行を共に形成する尤度を表す、第3の行スコアを計算することと、
第1の行スコアと第2の行スコアの和と第3の行スコアとの比較に基づいて第1及び第2の行仮定が第3の行仮定へとマージされるかどうかを判定することとを含む決定プロセスを実行する。
【0027】
特定の実施形態では、方法は、
表示領域内の全てのストロークを順序付けて、時間的順序で並べられたストロークの第3の時間的に順序付けられたリストを生成することと、
第1第3の時間的に順序付けられたリストからサイズ閾値未満のストロークをフィルタ除去することによってストロークの第4の時間的に順序付けられたリストを形成することと、をさらに含み、
ニューラルネット分析は、決定クラスとして、第3及び第4の時間的に順序付けられたリスト内の連続ストロークの各ペアについて、決定クラスの確率スコアに関連して、ペアのストロークが同一のテキスト行に属するかどうかを判定することを含み、
選択することの間、ニューラルネット分析の間に最高の確率スコアで確定された決定クラスは、第1及び第2のセットの順序付けられたリスト、第3の時間的に順序付けられたリスト、ならびに第4の時間的に順序付けられたリストのうちの少なくとも1つに含まれる連続ストロークの各ペアについて選択される。
【0028】
別の態様によれば、本発明は、本文書で定義されたように本発明の方法のステップを実行するための命令を含むコンピュータ可読プログラムコード(またはコンピュータプログラム)を記録した非一時的コンピュータ可読媒体に関する。
【0029】
本発明のコンピュータプログラムは、任意のプログラミング言語で表現することができ、ソースコード、オブジェクトコード、もしくは、例えば、部分的にコンパイルされた形式のようなソースコードとオブジェクトコードの間の任意の中間コードの形式、または任意の他の適切な形式とすることができる。
【0030】
本発明はまた、上記のようなコンピュータプログラムを提供する。
【0031】
先に言及した非一時的コンピュータ可読媒体は、コンピュータプログラムを記憶することが可能な任意のエンティティまたはデバイスとすることができる。例えば、記録媒体は、ROMメモリ(CD-ROMまたはマイクロ電子回路に実装されたROM)などの記憶手段、または例えばフロッピーディスクもしくはハードディスクなどの磁気記憶手段を含むことができる。
【0032】
本発明の非一時的コンピュータ可読媒体は、電気もしくは光ケーブルを介して、または無線もしくは任意の他の適切な手段によって伝達することができる、電気または光信号などの伝達可能な媒体に対応することができる。本開示に従ったコンピュータプログラムは、特にインターネットまたは同様のネットワークからダウンロードすることができる。
【0033】
あるいは、非一時的コンピュータ可読媒体は、コンピュータプログラムがロードされる集積回路に対応することができ、回路は、本発明の方法を実行するように、または本発明の方法の実行に使用されるように適合されている。
【0034】
特定の実施形態では、本発明は、コンピュータ可読プログラムコードが具体化された非一時的コンピュータ可読媒体に関する。コンピュータ可読プログラムコードは、本文書で定義されたようにコンピューティングデバイス上に入力要素を手描きするための方法を実装すべく実行されるように適合されている。コンピューティングデバイスは、方法のステップを実行するためのプロセッサを含む。
【0035】
本発明はまた、本開示で定義されたように方法を実装するのに適したコンピューティングデバイスに関する。より具体的には、本発明は、手書きテキストを処理するためのコンピューティングデバイスであって、
実質的に手書きの方向に沿って入力されたデジタルインクのストロークを表示領域内に表示する表示ユニットと、
ストロークからテキスト行を抽出するためにテキスト行抽出を実行する行抽出ユニットであって、
手書き方向を横断して伸びるストリップへと表示領域をスライスするスライスモジュールであって、隣接するストリップは、各ストロークが少なくとも2つの隣接するストリップに含まれるように互いに部分的に重なり合う、スライスモジュールと、
各ストリップについて、少なくとも部分的にストリップに含まれるストロークを順序付けて、時間的順序で並べられたストロークの第1の時間的に順序付けられたリスト、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークの少なくとも1つの第1の空間的に順序付けられたリストを生成し、それによって順序付けられたリストの第1のセットを形成する順序付けモジュールと、
第1の時間的に順序付けられたリスト及び少なくとも1つの第1の空間的に順序付けられたリストからそれぞれサイズ閾値未満のストロークをフィルタ除去することにより、各ストリップについて、ストロークの第2の時間的に順序付けられたリスト及びストロークの少なくとも1つの第2の空間的に順序付けられたリストを含む、順序付けられたリストの第2のセットを形成する形成モジュールと、
ニューラルネット分析を実行して、決定クラスとして、第1及び第2のセットの順序付けられた各リスト内の連続ストロークの各ペアについて、決定クラスの確率スコアに関連して、ペアのストロークが同一のテキスト行に属するかどうかを判定するニューラルネットモジュールと、
第1及び第2のセットの少なくとも1つの順序付けられたリストに含まれる連続ストロークの各ペアについて、ニューラルネット分析の間に最高の確率スコアで確定された決定クラスを選択する選択モジュールと、
連続ストロークの各ペアについて選択された最高の確率スコアを有する決定クラスに基づいてストロークを行仮定へと統合することによってテキスト行を定義する行定義モジュールと
を含む行抽出ユニットと、
を含む、コンピューティングデバイスを提供する。
【0036】
本発明の方法に関連して上で定義された各種の実施形態は、本開示のコンピューティングデバイス、コンピュータプログラム、及び非一時的コンピュータ可読媒体に類似の方式で適用される。
【0037】
本開示で定義されたような本発明の方法の各ステップについて、コンピューティングデバイスは、ステップを実行するように構成された対応するモジュールを含み得る。
【0038】
特定の実施形態では、本開示は、ソフトウェア及び/またはハードウェア構成要素を使用して実装され得る。この文脈において、「ユニット」及び「モジュール」という用語は、この開示において、ソフトウェア構成要素及びハードウェア構成要素または複数のソフトウェア及び/もしくはハードウェア構成要素を指すことができる。
【0039】
本開示の他の特徴及び利点は、限定的な特徴を有さない実施形態を示す添付図面を参照してなされた以下の説明から明らかになるであろう。
【図面の簡単な説明】
【0040】
【
図1】A、Bは、テキスト手書き認識のプロセスを表す。
【
図2】A、Bは、様々な言語におけるテキスト手書きの実施例を示す。
【
図3】本発明の特定の実施形態に従ったコンピューティングデバイスを概略的に示す。
【
図4】コンピューティングデバイスに対するテキスト手書き入力を表す。
【
図5】本発明の特定の実施形態に従った、
図3のコンピューティングデバイスによって実装されたモジュールを概略的に表すブロック図である。
【
図6】本発明の特定の実施形態に従った方法のステップを概略的に表すフロー図である。
【
図7】本発明の特定の実施形態に従った、テキスト手書きをスライスするステップを概略的に表す。
【
図8】本発明の特定の実施形態に従った、テキスト手書きをスライスするステップを概略的に表す。
【
図9】本発明の特定の実施形態に従った、テキスト行抽出の間に生成されたベクトルの順序付けられたリストの第1のセットを表す。
【
図10】本発明の特定の実施形態に従った、いくつかの幾何学的記述子を備えたストロークを概略的に表す。
【
図11】本発明の特定の実施形態に従った、テキスト行抽出の間に生成されたベクトルの順序付けられたリストの第2のセットを表す。
【
図12】本発明の特定の実施形態に従った、テキスト行抽出の間に実行されるステップを概略的に表すブロック図である。
【
図13】本発明の特定の実施形態に従った、テキスト行抽出の間に識別されたテキスト行を表す。
【
図14】本発明の特定の実施形態に従った、テキスト行抽出の間に実行されるステップを概略的に表すブロック図である。
【
図15A】本発明の第1の実施例に従った方法のステップを概略的に表すフロー図である。
【
図15B】本発明の第2の実施例に従った方法のステップを概略的に表すフロー図である。
【
図16】本発明の特定の実施形態に従った、テキスト行抽出の間に生成される行仮定を概略的に表す。
【
図17】A~Dは、本発明が、特定の実施形態に従ってどのように垂直方向の無秩序な順序付けを制限し得るかを概略的に示す。
【
図18】A、Bは、本発明が、特定の実施形態に従ってどのようにストロークコンテキストの変動を生じさせ得るかを概略的に示す。
【
図19】本発明の特定の実施形態に従った方法のステップを概略的に表すフロー図である。
【発明を実施するための形態】
【0041】
図面中の構成要素は、必ずしも縮尺通りになっているとは限らず、むしろ本開示の原理を例示することに重点を置いている。
【0042】
例示を簡単かつ明確にするために、特に明記されていない限り、同じまたは類似の部分を参照するために、図面全体で同じ参照記号が使用される。
【0043】
以下の発明を実施するための形態では、関連した教示の完全な理解を提供するために多くの具体的な詳細が実施例として記載されている。しかしながら、本教示がそのような詳細なしで実践され得ることは当業者にとって明らかであるべきである。他の例では、周知の方法、手順及び/または構成要素は、本教示の必要以上に曖昧な態様を避けるために、詳細なしで、比較的高レベルで説明される。
【0044】
例示的な実施形態の以下の説明は、添付図面を参照する。以下の発明を実施するための形態は、本発明を限定するものではない。むしろ、本発明の範囲は、添付の特許請求の範囲によって定義される。図に示されるような各種の実施形態では、コンピューティングデバイス、対応する方法、及び対応するコンピュータプログラムが論じられる。
【0045】
本説明における「テキスト」という用語の使用は、任意の書き言葉及び書かれたテキストで使用される任意の記号における全ての文字(例えば、英数字など)及び文字列を包含すると理解される。
【0046】
本説明における「非テキスト」という用語は、フリー形式の手書きまたは手描きのコンテンツ(例えば、形状、図など)及び画像データ、ならびに文字及び文字列、または非テキストでコンテンツ使用される記号を包含すると理解される。非テキストコンテンツは、コンテナ、図、一般的な形状(例えば、矢印、ブロックなど)などを含む、線形または非線形構成のグラフィックまたは幾何学的造形を定義する。図表では、例えば、テキストコンテンツは、コンテナと呼ばれる形状(長方形、楕円、卵形...)に含まれ得る。
【0047】
さらに、これらの図に示された実施例は、左から右への書き言葉のコンテキストにあり、したがって、位置に対する任意の参照は、様々な向きの形式を有する書き言葉に適合される可能性がある。
【0048】
本明細書で説明される各種の技術は、一般に、より具体的にはテキスト行抽出の目的で、ポータブル及び非ポータブルコンピューティングデバイス上での手書きテキストコンテンツの処理に関連する。本明細書で論じられるシステム及び方法は、(後述するように)タッチ感応スクリーンなどの入力面を介してコンピューティングデバイスに入力されるユーザの自然な手書きスタイルの認識を利用し得る。いわゆるオンライン認識技術を使用したデジタルインク手書き入力の認識に関して各種の実施形態が説明されているが、認識を実行するためにリモートデバイスまたはサーバを含むオフライン認識など、認識のための他の形式の入力が適用され得ることが理解される。
【0049】
「手描き」及び「手書き」という用語は、本明細書では同義的に使用されて、ユーザの手(もしくは指)または入力デバイス(ハンドヘルドスタイラスもしくはデジタルペン、マウス...)のユーザによる使用を通じてデジタルコンテンツ(手書き入力)を入力面上に、または入力面を用いて作成することを定義する。「手」などの用語は、入力技術の簡潔な説明を提供するために本明細書で使用されるが、足、口及び目などの、同様の入力のためのユーザの体の他の一部の使用がこの定義に含まれる。
【0050】
以下でより詳細に説明されるように、本発明の態様は、デジタルインクのストロークを検出し、テキスト行抽出を実行して、検出されたストロークからテキスト行を抽出することを含意する。これらのストロークは、表示領域内に表示され得る。テキスト行抽出は、デジタルストロークをストリップ(またはスライスもしくはバンド)へとスライスすることと、各ストリップについてストロークを、順序付けられたリストの第1のセットを集合的に形成する順序付けられたリストへと順序付けることと、各ストリップについて、第1のセットの順序付けられたリストから所与のサイズ閾値未満であるストロークをフィルタ除去することによって順序付けられたリストの第2のセットを形成することと、第1及び第2のセットに基づいてニューラルネット分析を実行して、各ストロークについて、そのストロークが属するそれぞれのテキスト行を確定することとを含む。
【0051】
図3は、本発明の特定の実施形態に従ったコンピューティングデバイス100のブロック図を示す。コンピューティングデバイス(またはデジタルデバイス)100は、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、携帯電話、スマートフォン、ウェアラブルコンピュータ、デジタル時計、インタラクティブホワイトボード、全地球測位システム(GPS)ユニット、エンタープライズデジタルアシスタント(EDA)、パーソナルデジタルアシスタント(PDA)、ゲームコンソールなどであり得る。コンピューティングデバイス100は、少なくとも1つの処理要素、ある形式のメモリ、ならびに入力及び出力(I/O)デバイスの構成要素を含む。構成要素は、コネクタ、ライン、バス、リンクネットワーク、または当業者に知られた他のものなどの入力及び出力を通じて互いに通信する。
【0052】
より具体的には、コンピューティングデバイス100は、以下でさらに説明されるように、手書き(もしくは手描き)テキストコンテンツ、または場合によっては混合コンテンツ(テキスト及び非テキスト)のための入力面104を含む。より具体的には、入力面104は、入力面上に(またはこの入力面を使用して)記入されたデジタルインクの複数の入力ストロークを検出するのに適している。また、以下でさらに論じられるように、これらの入力ストロークは、フリー手書き形式で(またはフリー手書きモードで)、つまり、入力領域内の位置、サイズ及び方向の手書きの制約を何も伴わずに入力され得る。
【0053】
入力面104は、抵抗性、表面弾性波、容量性、赤外線グリッド、赤外線アクリル投影、光学イメージング、分散信号技術、音響パルス認識、またはタッチ感応面もしくは近接感応面の形態でユーザ入力を受信するための当業者に知られているような任意の他の適切な技術などの技術を採用し得る。入力面104は、位置検出システムによって監視される非タッチ感応面であり得る。
【0054】
コンピューティングデバイス100はまた、テキストコンテンツなどのコンピューティングデバイスからデータを出力するための少なくとも1つの表示ユニット(または表示デバイス)102を含む。表示ユニット102は、任意の適切な技術(LCD、プラズマ...)のスクリーンなどであり得る。表示ユニット102は、ユーザによって入力されたデジタルインクのストロークを表示するのに適している。
【0055】
入力面104は、表示ユニット102と同じ場所に配置され得るか、またはこの表示ユニットにリモートで接続され得る。特定の実施例では、表示ユニット102及び入力面104は、タッチスクリーンの一部である。
【0056】
図3に示されるように、コンピューティングデバイス100は、プロセッサ106及びメモリ108をさらに含む。コンピューティングデバイス100はまた、メモリ108の一部として、またはこのメモリとは別に、1つ以上の揮発性記憶要素(RAM)を含み得る。
【0057】
プロセッサ106は、ソフトウェア、特にメモリ108に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサ106は、任意の特注プロセッサもしくは汎用プロセッサ、中央処理ユニット(CPU)、(マイクロチップもしくはチップセットの形態をとった)半導体ベースのマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジックデバイス、またはこれらの任意の組み合わせ、及びより一般的には、当業者に知られているようなソフトウェア命令を実行するために設計された任意の適切なプロセッサ構成要素とすることができる。
【0058】
メモリ108は、本開示の特定の実施形態に従って非一時的(または不揮発性)コンピュータ可読媒体(または記録媒体)である。メモリ108は、不揮発性記憶要素(例えば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気または光学テープ、メモリレジスタ、CD-ROM、WORM、DVDなど)の任意の組み合わせを含み得る。
【0059】
メモリ108は、コンピューティングデバイス100によってリモートでアクセス可能なサーバまたはクラウドベースのシステムにあるなど、コンピューティングデバイス100から離れていてもよい。不揮発性メモリ108は、プロセッサ106に結合されている。その結果、プロセッサ106は、メモリ108から情報を読み取り、当該メモリに情報を書き込むことが可能である。別の方法としては、メモリ108は、コンピューティングデバイス100と一体化している。
【0060】
メモリ108は、オペレーティングシステム(OS)110及び手書きアプリケーション(またはコンピュータプログラム)112を含む。オペレーティングシステム110は、アプリケーション112の実行を制御する。アプリケーション112は、本発明の特定の実施形態に従ったコンピュータプログラム(またはコンピュータ可読プログラムコード)を構成する(または含む)。このコンピュータプログラムは、本発明の特定の実施形態に従った方法を実施するための命令を含む。
【0061】
本実施形態では、アプリケーション112は、以下でさらに論じられるように、コンピューティングデバイス100の入力面104を使用してユーザによって手書きされたデジタルインクのストロークを検出及び管理するための命令を含む。
【0062】
アプリケーション112は、コンピューティングデバイス100へのテキスト手書き入力を認識するための手書き認識(HWR)モジュール(またはHWRシステム)114を含み得る。HWR114は、ソースプログラム、実行可能プログラム(オブジェクトコード)、スクリプト、アプリケーション、または実行されるべき一連の命令を有する任意の他の構成要素であり得る。
図3に示された本実施例では、アプリケーション112及びHWRモジュール114は、単一のアプリケーションに組み合わされている(HWRモジュール114はアプリケーション112の一部である)。あるいは、HWRモジュール114は、
図3に示されたような、適切な通信リンクを通じてコンピューティングデバイス100によってリモートでアクセス可能であるサーバ(またはクラウドベースのシステム)SV1などの、コンピューティングデバイス100から離れた手書き認識システムと通信するためのモジュール、方法またはシステムであり得る。アプリケーション112及びHWRモジュール114はまた、コンピューティングデバイス100のメモリ108に(または異なるメモリに)記憶された別個の構成要素であり得る。それにより、アプリケーション112とHWRモジュール114は連携動作して、処理され、メモリ108に記憶された情報にアクセスする。
【0063】
ユーザは、手もしくは指で、または入力面104との使用に適したデジタルペンもしくはスタイラスなどの何らかの入力機器を用いて入力ストロークを記入し得る。ユーザはまた、入力面104の付近の動きを検知するように構成された手段が使用されている場合には入力面104の上でジェスチャを行うことによって、またはマウスもしくはジョイスティックなどのコンピューティングデバイス100の周辺デバイスを用いて入力ストロークを記入し得る。
【0064】
各インク入力要素(字、記号、単語など)は、1つまたは複数の入力ストロークによって、または少なくともストロークの一部によって形成される。ストローク(または入力ストローク)は、少なくともストローク開始場所(「ペンダウン」イベントに対応)、ストローク終了場所(「ペンアップ」イベントに対応)、及びストローク開始場所とストローク終了場所を接続する経路によって特徴付けられる。様々なユーザがわずかな違いで同じオブジェクト(例えば、字、形状、記号...)を自然に書くか手描きし得るため、HWRモジュール114は、各オブジェクトが、依然として正しいまたは意図されたオブジェクトとして認識されている間に記入され得る多様な手法に対応する。
【0065】
手書きアプリケーション112は、手書きまたは手描きのテキストコンテンツをデジタルインク形式で生成することを可能にし、HWRモジュール114を使用してこのコンテンツを忠実に認識させる。特定の場合、アプリケーション112は、テキスト及び非テキストコンテンツ(例えば、図表、チャートなど)を含む混合コンテンツに基づいてテキストコンテンツを検出及び認識するように構成され得る。
【0066】
HWRモジュール114によって実行される認識プロセスの性質及び実装は、それぞれの場合に応じて変化し得る。テキスト認識は、コンピューティングデバイス100上で完全にローカルに、または例えばリモートサーバSV1(
図3)を使用して少なくとも部分的にリモートで、のいずれかで実行され得る。手書き認識を実装する実施例は、例えば、米国特許出願第2017/0109578A1号において見ることができる。特に、当業者に知られているように、テキスト認識は、言語モデル(複数可)(例えば、文法、意味論)、テキストベースの語彙(複数可)(正規表現など)を含む言語情報など、及び所与の要素の並びが指定された言語で現れる、または特定のユーザによって使用される頻度がどの程度かについての統計情報モデリングのうちの任意の1つに基づいて実行され得る。
【0067】
本実施形態では、コンピューティングデバイス100は、フリー手書き形式(またはフリー手書きモード)で、つまり、テキスト手書き入力の位置、サイズ及び方向の手書きの制約を何も伴わずに入力面104を使用して入力されるテキスト手書きを検出及び表示するように構成される。フリー手書きモードにより、ユーザは、決まった形のない、またはガイドの付かないやり方で、つまり、テキスト手書き入力の位置、サイズ及び方向の手書きの制約を何も伴わずに(従うべき行パターンなしに、サイズや方向の制限なしに、行間、マージンなどの制約なしに、など)、フリーな環境内に(例えば、空白ゾーン内に)入力要素を手書きすることができる。このフリー手書き形式は、手書き入力の間、ユーザに完全な自由を与えてくれる。このことは、例えば、迅速かつ多種多様なメモをとるか、またはテキストと非テキストの混合入力をするのに望ましい場合がある。
【0068】
図4に示されるように、コンピューティングデバイス100の表示ユニット102は、デジタルインクの複数のストローク(または入力ストローク)STによって形成されたテキスト手書きINを表示領域(または入力領域)200内に表示するように構成される。以下で説明される実施例では、検出されたストロークSTは、同じ手書き方向X(例えば、この場合は水平方向)に沿って(または実質的にその方向に沿って)入力されると想定される。ただし、場合によっては、手書き方向のばらつき、例えば、同一行内の意図した方向からのずれが可能であり得る。もちろん、テキスト手書きINは、それぞれの場合に応じて、異なる形式及びスタイルをとり得る。以下の実施例では、「Vertical ordering can bring chaos(垂直方向の順序付けは無秩序をもたらし得る)」という句に対応する手書き文字が検出され、表示領域200内にテキスト手書き入力として表示されると想定されるが、とりわけ、言語、スタイルなどの点で、テキスト手書きの多くの他のタイプ及びコンテンツが可能である。
【0069】
以下の実施例では、さらに、テキスト手書きINが上述したようにフリー手書きモード(または形式)で入力されると想定される。
【0070】
特定の実施形態に従った
図5に示されるように、メモリ108(
図3)に記憶されたアプリケーション112を実行するとき、プロセッサ106は、複数の処理モジュール、つまり、スライスモジュールMD4、順序付けモジュールMD6、フィルタリングモジュールMD8、ニューラルネット分析モジュールMD10、選択モジュールMD12及び行定義モジュールMD14を含む行抽出ユニット(行抽出器とも呼ばれる)MD2を実装する。
【0071】
アプリケーション112は、特定の実施形態において後で説明されるように、本発明の方法のステップを実行するためにこれらのモジュールを実装するようにプロセッサ106を構成する命令を含む。行抽出ユニットMD2は、コンピューティングデバイス100によって検出された各入力ストロークSTがそれぞれのテキスト行LNに関連付けられるようにテキスト行LNを定義するのに適している。
【0072】
より具体的には、スライスモジュールMD4は、表示領域(すなわち、
図4に示されるような表示領域200)を、手書き方向Xを横断して伸びるストリップ(スライスまたはバンドとも呼ばれる)SPへとスライスするように構成される。このスライスは、隣接するストリップSPが、各ストロークSTが少なくとも2つの隣接するストリップSPに含まれるように互いに部分的に重なり合うように実行され得る。
【0073】
順序付けモジュールMD6は、各ストリップSPについて、少なくとも部分的に上記ストリップSPに含まれるストロークSTを順序付けて、時間的順序で並べられたストロークの第1の時間的に順序付けられたリスト、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークの少なくとも1つの第1の空間的に順序付けられたリストを生成し、それによって順序付けられたリストの第1のセットSLaを形成するように構成される。以下でさらに論じられるように、ストロークの1つ以上の第1の空間的に順序付けられたリストを生成するために各種の空間的基準が使用され得る。
【0074】
形成モジュールMD8は、第1のセットSLaの第1の時間的に順序付けられたリスト及び少なくとも1つの第1の空間的に順序付けられたリストからそれぞれサイズ閾値未満のストロークSTをフィルタ除去することにより、各ストリップSPについて、ストロークの第2の時間的に順序付けられたリスト及びストロークの少なくとも1つの第2の空間的に順序付けられたリストを含む、順序付けられたリストの第2のセットSLbを形成するように構成される。
【0075】
ニューラルネット分析モジュールMD10は、ニューラルネット分析を実行して、決定クラスとして、第1のセットSLa及び第2のセットSLbの順序付けられた各リスト内の連続ストロークSTの各ペアについて、決定クラスの確率スコアに関連して、ペアのストロークSTが同一のテキスト行に属するかどうかを判定するように構成される。
【0076】
選択モジュールMD12は、第1のセットSLa及び第2のセットSLbの少なくとも1つの順序付けられたリストに含まれる連続ストロークSTの各ペアについて、ニューラルネット分析の間に最高の確率スコアで確定された決定クラスを選択するように構成される。
【0077】
行定義モジュールMD14は、連続ストロークの各ペアについて選択された最高の確率スコアを有する決定クラスに基づいてストロークSTを行仮定へと統合することによってテキスト行LNを定義するように構成される。
【0078】
選択モジュールMD12及び行定義モジュールMD14は、アプリケーション12を実行するときにプロセッサ106によって実装される復号器(または復号化モジュール)の一部を形成し得る。復号器は、入力情報を異なる出力情報へと変換することを目的としたアルゴリズムである。本文脈において、復号器(MD12、MD14)は、以下でさらに説明されるように、ストロークのペアが確率Pで同一のテキスト行に属するという局所的情報を使用して、行仮定を段階的に構築し得る。復号化プロセスは、行仮定を構築するための局所的ルールとしてのこれらの確率P、及び行仮定構築ルールの有効性を制御するための決定プロセス(確率Pのセットを局所的に組み合わせる)を定義し得る。全ての局所的確率を組み合わせた後、最後の行仮定は最後のテキスト行である。
【0079】
コンピューティングデバイス100のモジュールMD4~MD14の構成及び動作は、図を参照して以下で説明される特定の実施形態においてより明白になるであろう。
図5に示されたようなモジュールMD4~MD14は、本発明の例示的な実施形態を表しているに過ぎず、他の実施態様が可能であることが理解されるべきである。
【0080】
本発明の方法の各ステップについて、コンピューティングデバイス100は、ステップを実行するように構成された対応するモジュールを含み得る。
【0081】
次に、
図3~
図5に示されたコンピューティングデバイス100によって実装される方法について、本発明の特定の実施形態に従って、
図6~
図17を参照して説明する。より具体的には、コンピューティングデバイス100は、メモリ108に記憶されたアプリケーション112を実行することによってこの方法を実装する。
【0082】
コンピューティングデバイス100上で
図4に示されたようにユーザが手書きテキストINを入力する実施例のシナリオが考慮される。次いで、以下で説明されるように、行抽出を含む処理がコンピューティングデバイス100によって実行される。
【0083】
より具体的には、検出ステップS2において、コンピューティングデバイス100は、コンピューティングデバイス100の入力面104を使用してユーザによって入力されたテキスト手書きINを検出する。
図4に示されたように、手書き入力INは、入力面104を使用して手書き方向Xに沿って(または実質的にその方向に沿って)入力されたデジタルインクの複数の入力ストロークSTを含む。既に示されたように、各入力ストロークSTは、少なくともストローク開始場所、ストローク終了場所、及びストローク開始場所とストローク終了場所を接続する経路によって特徴付けられる。したがって、例えば(「垂直(vertical)」という単語内の)文字「i」の上部に位置する点は、それ自体で単一のストロークSTを構成する。
【0084】
本実施例では、手書きのデジタルインクINは、先に説明されたようなフリー手書き形式に従って、ディスプレイ102の入力領域200内に入力される。準拠すべき行、サイズ、方向などの手書きの制約を何も伴わずに、ユーザは、テキストコンテンツINをフリーかつ簡単な方式で手書きすることが許容される。各手書き文字または各手書き単語のサイズ、方向及び位置は、ユーザの好みに応じて任意に変化し得る。
【0085】
図4に示されたように、コンピューティングデバイス100は、フリー手書き形式(またはモード)に従って、表示ユニット102上に手書き入力INの複数の入力ストロークSTを表示する(S4、
図6)。
【0086】
次いで、コンピューティングデバイス100は、テキスト行抽出を実行して(S10、
図6)、テキスト手書きINにおいて検出されたストロークSTからテキスト行を抽出する。
図6に示されるように、テキスト行抽出S10は、本実施例において以下でさらに説明されるようにステップS12~S24を含む。
【0087】
簡単にするために、本実施例では、コンピューティングデバイス100によって検出された手書き入力IN全体がテキストであると想定される。ただし、他の場合では、手書き入力INは、テキストコンテンツ及び非テキストコンテンツを含み得る。したがって、テキストを非テキストコンテンツと区別するために、当業者に知られた任意の適切な技術に従って分類器によるテキスト認識の間に曖昧性除去プロセスが実行され得る。
【0088】
より具体的には、スライスステップS12(
図7)において、コンピューティングデバイス100は、表示領域200を、手書き方向Xを横断して伸びるストリップSPへとスライスする。スライスS12は、隣接するストリップSPが互いに部分的に重なるように行われ、その結果、各ストロークSTは、少なくとも2つの隣接するストリップSPに含まれるようになる。見て分かるように、ストリップSPの多くの構成が当業者によって採り入れられてもよい。スライスS12のいくつかの実施態様が、単なる実施例として以下に提供される。
【0089】
図7に示された実施例では、スライスS12は、ストリップSPが同じストリップ方向Yに沿って伸びるように実行される。その結果、ストリップSPは互いに平行である。
図7に示されたように、方向Yは手書き方向Xに対して垂直であり得る(例えば、Xは水平で、Yは垂直である)。ただし、他の構成が可能である。
【0090】
したがって、コンピューティングデバイス100は、テキスト手書きINの各ストロークSTを、当ストロークが少なくとも部分的に含まれる少なくとも2つのそれぞれの隣接するストリップSPに割り当て得る。
【0091】
以下でさらに論じられるように、スライスS12は、この次のニューラルネット分析を容易にし、同じストロークSTについて異なるコンテキストで決定を行うことによって効率的なテキスト行抽出を実現することができる。
【0092】
図8は、スライスステップS12の間にストリップSP1~SP4が定義される特定の実施形態を示す。簡単にするために、最初の文字「V」に対応する最初のストロークSTのみが示されている。各ストリップSPは、手書き方向Xに対して垂直なY方向に伸びる。各ストリップSPは、X方向にそれぞれの幅WD1~WD4(総称してWDと呼ばれる)を伴って形成される。本実施例では、各ストリップSPの幅WDは同一であるが、他の実施態様が可能である。特に、幅WDが全てのストリップSPについて同じではない実施形態が可能である。
【0093】
図8から分かるように、ストリップSPは、最初の文字「V」を形成する入力ストロークSTがストリップSP1、SP2及びSP3に少なくとも部分的に含まれるように、互いに部分的に重なり合う。換言すれば、「V」に対応するこの入力ストロークは、隣接するストリップSP1、SP2及びSP3に属する。
【0094】
以下でさらに論じられるように、スライスS12は、テキスト手書きINの入力ストロークSTのスケールまたはサイズに基づいて構成され得る。本明細書で使用される場合、「スケール」という用語は、文字の、または入力ストロークの、もしくは入力ストロークの一部の平均サイズまたは高さの概算を指す。当業者はまた、テキスト行抽出プロセスにおいて所望の結果を実現するように、隣接するストリップSPの各ペアの間の重なりの比率を合わせてもよい。ストリップの重なりを増加させることにより、テキスト行抽出プロセスの結果が改善され得るが、リソース及び時間の点でコストがより高くなる。
【0095】
次いで、コンピューティングデバイス100は、各ストリップSPについて、少なくとも部分的にストリップSPに含まれるストロークSTを順序付けるか、またはソートして(S14、
図6及び
図12)、時間的順序で並べられたストロークSTの第1の時間的に順序付けられたリスト、及び少なくとも1つのそれぞれの空間的基準に従って順序付けられたストロークSTの少なくとも1つの第1の空間的に順序付けられたリストを生成し、それによって順序付けられたリストの第1のセットSLaを形成する。以下で論じられるように、使用される空間的基準の数及びタイプ、ならびにしたがって順序付けられたリストの第1のセットSLaのコンテンツは、それぞれの場合によって異なり得る。
【0096】
図9に示されるように、本実施例では、順序付けステップS14において、コンピューティングデバイス100は、各ストリップSPについて、少なくとも部分的にストリップSPに含まれるストロークSTを順序付けて、時間的順序(TOと呼ばれる)で並べられたストロークSTの第1の時間的に順序付けられたリストL1a、ならびにそれぞれの空間的基準CRに従ってそれぞれ順序付けられたストロークSTの3つの第1の空間的に順序付けられたリストL2a、L3a及びL4aを生成し、それによって順序付けられたリストの第1のセットSLaを形成すると想定される。その結果、以下でさらに説明されるように、スライスステップS12において先に定義された各ストリップSPについて、4つの順序付けられたリスト(L1a、L2a、L3a及びL4a)の第1のセットSLaが生成される。
【0097】
第1の時間的に順序付けられたリストL1aは、それぞれのストリップSPの各ストロークSTを含み、これらのストロークは、それらの相対的な時間的順序TOに従って順序付けられている。換言すれば、このリストL1aでは、ストロークSTは、各ストロークST1が時間と共に入力されたときの時間の関数である時間順で並べられている。
【0098】
各ストリップSPについて第1の空間的に順序付けられたリストを生成するために順序付けステップS14(
図6)において使用され得る空間的基準CRについて、
図10を参照して示す。この図は、一実施例として、S2で検出されたテキスト手書きINの最初の文字「V」に対応するストロークSTを示している。
【0099】
第1の空間的に順序付けられたリストL2aは、それぞれのストリップSPのストロークSTのリストであり、当ストロークは、ストリップ方向Yに沿ったそれぞれの重心BYの位置(空間的基準CR1)に従って順序付けられている。例えば、
図10に示されるように、第1の文字「V」に対応するストロークSTの重心BYが確定される。重心BYのストリップ方向Yに沿った位置は、Y軸に沿った座標BYyによって定義される。各ストリップSPについて、各関連ストロークSTの重心BYの座標BYyが考慮されて、当ストリップのストロークSTを順序付ける。同じ動作が各ストリップSPについて実行されて、それぞれの第1の空間的に順序付けられたリストL2aを生成する。順序付けられたリストL2aは、例えば、ストリップ方向Yにおけるそれぞれの位置の昇順(または降順)(空間的基準CR1)でストロークST2をリスト化し得る。
【0100】
図10にも示されているように、各ストロークSTのいくつかの特定の点のストリップ方向Yに沿った位置に基づく他の空間的基準CR2及びCR3が、第1の空間的に順序付けられたリストL3a及びL4aを生成するために使用され得る。
【0101】
空間的に順序付けられたリストL3aは、それぞれのストリップSPのストロークSTのリストであり、これらのストロークは、ストリップ方向Yに沿った第1の方向D1におけるそれらの最も外側の座標PT1y(空間的基準CR2)に従って順序付けられている。換言すれば、リストL3aにおいて、ストリップ方向Yに沿った第1の方向D1における各ストロークSTの最も外側の点PT1が確定され、Y軸上のこの最も外側の点PT1の座標PT1yが確定され、空間的に順序付けられたリストL3aを生成するために使用される。
【0102】
空間的に順序付けられたリストL4aは、それぞれのストリップSPのストロークSTのリストであり、これらのストロークは、ストリップ方向Yに沿った、第1の方向D1とは反対の第2の方向D2におけるそれらの最も外側の座標PT2y(空間的基準CR3)に従って順序付けられている。換言すれば、リストL4aにおいて、ストリップ方向Yに沿った第2の方向D2における各ストロークSTの最も外側の点PT2が確定され、Y軸上のこの最も外側の点PT2の座標PT2yが確定され、空間的に順序付けられたリストL4aを生成するために使用される。
【0103】
上で示されているように、コンピューティングデバイス100は、本実施例では、順序付けステップS14において、上述したような3つの第1の空間的に順序付けられたリストL2a、L3a及びL4aを、第1の時間順に順序付けられたリストL1aと共に生成する。しかしながら、順序付けステップS14において、コンピューティングデバイス100は、上述したような第1の空間的に順序付けられたリストL2a、L3a及びL4aのうちのいずれか1つ、またはこれらの組み合わせ(例えば、L2aのみ、またはL3a及びL4のみ)を、第1の時間順に順序付けられたリストL1aと共に生成してもよい。ストロークのそれぞれの順序付けられたリストを生成するために時間的順序TO及び少なくとも1つの空間的基準CRが使用されるとき、高性能のテキスト行抽出プロセスが実現されることが確認されている。
【0104】
以下でさらに論じられるように、各ストリップについて異なるストロークの順序を生成することにより、異なる補完的基準(時間的及び空間的)を使用して、テキスト行の定義の問題を異なる視点を通じて効率的に分析及び分類して、各種のストロークのペアについてテキスト行抽出プロセスにおいて最良の決定を見出すことができる。時間的基準TOを少なくとも1つの空間的基準CRと組み合わせると、テキスト行抽出の性能を大幅に向上させることができる。
【0105】
順序付けステップS14が一旦完了すると、コンピューティングデバイス100は、順序付けステップS14で生成された第1の時間的に順序付けられたリストL1a及び第1の空間的に順序付けられた各リストからそれぞれサイズ閾値未満のストロークSTをフィルタ除去することにより、各ストリップSPについて、ストロークの第2の時間的に順序付けられたリスト及びストロークの少なくとも1つの第2の空間的に順序付けられたリストを含む順序付けられたリストの第2のセットSLbを形成する(S16、
図6及び
図12)。
【0106】
既に上述したように、本実施例では、第1の時間的に順序付けられたリストL1aならびに第1の空間的に順序付けられたリストL2a、L3a及びL4aが順序付けステップS14で生成されると想定される。その結果、
図11に示されるように、コンピューティングデバイス100は、S14の第1の時間的に順序付けられたリストL1aならびに第1の空間的に順序付けられたリストL2a、L3a及びL4aからそれぞれサイズ閾値未満のストロークSTをフィルタ除去することにより、各ストリップSPについて、ストロークの第2の時間的に順序付けられたリストL1bならびに3つの空間的に順序付けられたリストL2b、L3b及びL4bを含む順序付けられたリストの第2のセットSLbを形成する(S16)。
【0107】
図10に示された特定の実施形態では、形成(またはフィルタリング)ステップS16(
図6)の間、コンピューティングデバイス100は、S12で定義された各ストリップSPについて、
当ストロークのストリップ方向Yにおける高さ(または最大距離)Hに基づいてストリップSPの各ストロークSTの第1のサイズを評価し、ストロークSTの長さLGに基づいてストリップSPの各ストロークSTの第2のサイズを評価することと、
S14で生成された第1の時間的に順序付けられたリストL1a及び少なくとも1つの第1の空間的に順序付けられたリスト(すなわち、本実施例では空間的に順序付けられたリストL2a~L4a)から、各ストロークSTの第1または第2のいずれかのサイズがサイズ閾値未満であるときのストロークSTを削除し、それにより、第2の時間的に順序付けられたリストL1b及び少なくとも1つの第2の空間的に順序付けられたリスト(すなわち、本実施例では空間的に順序付けられたリストL2b~L4b)を生成することと、を実行する。
【0108】
換言すれば、各ストロークSTは、そのそれぞれの第1のサイズ及び第2のサイズのうちの少なくとも一方がサイズ閾値に達していない場合、第2の時間的に順序付けられたリストL1b及び第2の空間的に順序付けられたリストL2b~L4bから排除される。
【0109】
図11に示されるように、形成ステップS16において、したがって、複数のストロークST(または少なくとも1つのストロークが上記のサイズ閾値に達してないと想定して少なくとも1つ)が第1のセットSLaの順序付けられたリストから削除されて、第2のセットSLbの順序付けられたリストが得られる。第1のセットSLaの順序付けられたリストL1a~L4aからフィルタ除去されるストロークSTは、それぞれのサイズに基づいて選択される。つまり、既定のサイズ閾値未満の各ストロークが削除される。換言すれば、サイズの所定の条件(スケールに対する最大サイズ閾値によって定義される)を満たさない全てのストロークは、第1のセットSLaの順序付けられたリストから破棄されて、第2のセットSLbが得られる。
【0110】
特定の実施例では、コンピューティングデバイス100は、第1のサイズ及び第2のサイズのうちの一方のみを評価して、形成ステップS16において第1のセットSLaからどのストロークSTをフィルタ除去すべきかを決定する。
【0111】
フィルタ除去のこのステップS16は、テキスト行識別のプロセスにおいて問題またはエラーを引き起こし得る、発音区別符号、句読点、アポストロフィなどの、比較的小さい全てのストロークを第1のセットSLaの順序付けられたリストから削除するように設計されている。発音区別符号(発音区別記号またはアクセントとも)は、(セディーユ、チルダ、曲折アクセントまたはマクロンとして)字または文字を類似した形式の別の字または文字と区別したり、字または文字に特定の音声値を与えたり、強調を示したりするために、字または文字に追加または付加されたグリフ(記号、マークなど)である。そのような比較的小さいストロークSTを持たない順序付けられたリストの第2のセットSLbを生成することにより、テキスト行抽出プロセスの性能を改善することができる。既に示したように、発音区別符号、句読点などに対応する比較的小さいストロークがどのテキスト行に属するかを確定するのは難しい可能性がある。この第2のセットSLbを第1のセットSLaと組み合わせて使用することにより、テキスト行抽出の間にこれらの小さいストロークに関する信頼性の高い決定を行うことができる。
【0112】
図9及び
図11に示されるように、第1及び第2のセットSLa、SLbのそれぞれまたは順序付けられたリストL1a~L4a及びL1b~L4bは、連続ストロークのペアPR(以下、ペアPRとも呼ばれる)を形成する一連のストロークSTを含む。所与のペアPRは、第1及び第2のセットSLa、SLbの順序付けられたリストのうちの1つにおいて、より具体的にはSTa及びSTbと呼ばれる、2つの連続ストロークのデュプレット(STa、STb)として定義することができる(
図6)。同じペアPRが、セットSLa、SLb内の2つ以上の順序付けられたリストに存在してもよい。
【0113】
順序付けステップS14及び形成ステップS16が一旦完了すると、コンピューティングデバイス100は、各ストリップSPについて、ニューラルネット分析S18(ストローク間分析とも呼ばれる)を実行して、決定クラスCLとして、ストリップSPの第1のセットSLa及び第2のセットSLbの順序付けられた各リスト内の連続ストロークSTの各ペアPRについて、ペアPRの2つのストロークSTが確率スコアPに関連して、同一のテキスト行LNに属するかどうかを判定する(
図6及び
図12)。したがって、ニューラルネット分析S18の結果として、コンピューティングデバイス100は、第1及び第2のセットSLa、SLbの順序付けられた各リストについて、連続ストロークSTのそれぞれのペアPRに割り当てたデュプレット(CL、P)のそれぞれのいわゆる確率リスト(または確率シーケンス)PL、すなわち、
時間的に順序付けられたリストL1a内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL1a、
空間的に順序付けられたリストL2a内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL2a、
空間的に順序付けられたリストL3a内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL3a、
空間的に順序付けられたリストL4a内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL4a、
時間的に順序付けられたリストL1b内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL1b、
空間的に順序付けられたリストL2b内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL2b、
空間的に順序付けられたリストL3b内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL3b、
空間的に順序付けられたリストL4b内の連続ストロークの各ペアPRについて確定されたデュプレット(CL、P)の確率リストPL4bを形成し得る。
【0114】
換言すれば、ニューラルネット分析S18では、確率リスト(PL1a~PL4a)の第1のセットPLaは、ストロークの第1のセットSLaから導出され、第2のセットPLb(PL1b~PL4b)は、ストロークの第2のセットSLbから導出される。このニューラルネット分析S18は、スライスステップS12において先に識別された各ストリップについて実行される(S18)。結果として、確率リストの第1のセットPLa及び確率リストの第2のセットPLbは、各ストリップSPについて類似の方式で形成される。
【0115】
したがって、本実施例では、決定クラスCLは、第1及び第2のセットSLa、SLb内の順序付けられたリストのうちの1つにおける連続ストロークのペアPRの2つのストロークSTが同一のテキスト行LNに属するかどうかに関する結果を表す。ペアPRの決定クラスCLは、例えば、ペアPRの2つのストロークが同一のテキスト行LN内にあるとみなされることを意味する第1の値(例えば、「同一行」)か、またはペアPRの2つのストロークが異なるテキスト行LNにあるとみなされることを意味する第2の値(例えば、「分離行」)のいずれかに割り当てられ得る。
【0116】
確率スコアP(ストローク間確率とも呼ばれる)は、関連する結果CLが正しい(すなわち、CLがペアPRについての正しい結果を表す)確率または信頼水準を表す。したがって、確率スコアPに関連した決定クラスCLは、S14及びS16においてそれぞれ得られた順序付けられたリストL1a~L4a(セットSLa)及びL1b~L4b(セットSLb)のそれぞれにおける連続ストロークSTの各ペアPRについてニューラルネット分析S18で作成される。結果として、連続ストロークSTの各ペアPRに対応するデュプレット(CL、P)のリストまたはシーケンスが、第1及び第2のセットSLa、SLbの順序付けられた各リストについて生成される(S18)(
図12)。既に示したように、デュプレット(CL、P)のリストを生成するこのプロセスS18は、各ストリップSPについて繰り返される。
【0117】
本実施例では、ニューラルネット分析S18は、ニューラルネットとも呼ばれる1つ以上の人工ニューラルネット(ANN)によって実行される。ニューラルネット(またはニューラルネットワーク)は当業者によく知られており、したがって、本開示では詳細に説明されない。
【0118】
順序付けられたリストの第1及び第2のセットSLa、SLbのそれぞれにおいて、時間的に順序付けられたリストL1a(それぞれL1b)は、第1の特殊化されたニューラルネットによって分析されてもよく、空間的に順序付けられた各リストL2a~L4a(それぞれL2b~L4b)は、別個の第2の特殊化されたニューラルネットワークによって分析されてもよい。第1のニューラルネットは、時間的に順序付けられたリスト専用であってもよく、他方、第2のニューラルネットは、空間的に順序付けられたリスト専用であってもよい。特殊化された各ニューラルネットは、2つのサブニューラルネットを含んでもよい。これらのサブニューラルネットはそれぞれ、それぞれの順序付けられたリストを2つの端から始めて並列に処理する。
【0119】
特定の実施形態では、ニューラルネット分析S18(
図6及び
図12)は、
少なくとも1つの人工ニューラルネットにより、第1及び第2のセットSLa、SLbの順序付けられたリストに含まれる連続ストロークSTの各ペアPRにおいて、ストロークSTが同一のテキスト行LNに属する確率を表す確率スコアPを計算することと、
連続ストロークの各ペアの決定クラスCLとして、確率スコアPが少なくとも確率閾値に達した場合にペアPRのストロークSTが同一のテキスト行LNに属すると確定することとを含む。
【0120】
ニューラルネット分析S18は、時間的及び空間的基準を含む各種の基準に従って各ペアPRを特徴付けるために実行される特徴抽出に基づき得る。例えば、コンピューティングデバイス100は、時間的基準及び空間的基準のうちの少なくとも一方、またはこれらの組み合わせを使用し得る。より具体的には、S18で実行される特徴抽出は、セットSLa、SLbの順序付けられたリスト内の連続ストロークの各ペアPRの2つのストロークが入力された時間的順序に基づいてもよく、及び/またはセットSLa、SLbの順序付けられたリスト内の連続ストロークの各ペアPRにおける2つのストロークST間のストローク間スペース(またはストローク間距離)に基づいてもよい。ニューラルネット分析S18を実現するために、特徴抽出の各種の実施態様が企図され得る。
【0121】
ニューラルネット分析S18の間、メトリック値(例えば、重心距離、全体形状、ストロークのサイズ及び面積、長さ、主な方向)を計算し、使用して、各ペアPRについての決定クラスCL及び関連確率スコアPを計算してもよい。使用される前に、これらのメトリック値は、各種の局所的(例えば、ストロークサイズ)及び/または全体的(例えば、ストリップ幅)基準に基づいて正規化されてもよい。
【0122】
特定の実施形態では、ニューラルネット分析S18において、1つ以上の人工ニューラルネットは、第1及び第2のセットSLa、SLbの順序付けられた各リスト内の連続ストロークSTの各ペアPRを順次分析して、ペアPRの順序付けられたリストに含まれるストロークSTに関連する空間的及び時間的情報に基づいてそれぞれの決定クラスCL及び確率スコアPを確定する。
【0123】
次いで、選択ステップS20(
図6及び
図12)において、コンピューティングデバイス100は、全てのストリップSPについて生成された(S14、S16)第1及び第2のセットSLa、SLbの少なくとも1つの順序付けられたリストに含まれる連続ストロークSTの各個々のペアPRについて、ニューラルネット分析S18の間にペアPRについて最高の確率スコアPで確定された決定クラスCLを選択する。したがって、本実施例では、この選択S20は、全てのストリップSPについてニューラルネット分析S18で生成された確率リストPLに基づいて行われる。例えば、連続ストローク(STa、STb)の特定のペアPRがS18で得られた確率リストPL内で全体的に1回のみ発生する場合、このペアPRについてS18で得られた関連する決定クラスCLが選択される(S20)。しかしながら、連続ストローク(STa、STb)の特定のペアPRが、全てのストリップSPについてS18で得られた確率リストPL内で複数出現する場合、最高の確率スコアPを有する決定クラスCLが確率リストPLからペアPRについて選択される(S20)。
【0124】
したがって、コンピューティングデバイス100は、順序付けステップS14の間、SLaまたはSLbのいずれかから、異なる順序付け基準(時間的順序TO及び空間的基準CR)を使用して連続ストロークSTの同じペアPRについて得られた決定クラスCLを比較し得、最高の確率スコアPを有する最良の決定クラスCL、つまりペアPRについての正しい結果を表す可能性が最も高い決定クラスCLのみを保持し得る。特に、コンピューティングデバイス100は、少なくとも2つの異なるストリップSPに存在する同じペアPRについて得られた確率スコアPを比較して、最高の確率スコアで得られた決定クラスCLを確定し得る。異なる(時間的及び空間的)基準に基づいて得られた各種の確率リストの中から最良の決定クラスCLのみを選択することにより、効率的なテキスト行抽出を実現することができる。
【0125】
最高の確率スコアPの決定クラスCLの選択S20を実行するために各種の実施態様が可能である。
図12に示された本実施例では、選択ステップS20において、コンピューティングデバイス100は、全てのストリップSPについてS14及びS16で生成された第1及び第2のセットSLa、SLbの少なくとも1つの順序付けられたリストに含まれる(または存在する)連続ストロークSTの各ペアPRについて、それぞれの確率スコアPに関連して、選択された決定クラスCLを確率行列PMへと集約する。したがって、この全体的な確率行列PMは、全てのストリップSPに共通である。これは、確率行列PMのエントリが、全てのストリップSPについて作成された順序付けられたリストL1a~L4a及びL1b~L4b内に少なくとも1回出現する連続ストロークSTの各ペアPRを表すデュプレット(CL、P)を定義することを意味する。
【0126】
特定の実施例では、確率行列PMは、より一般的には、所与のストリップSP内の可能なストロークの各ペア(第1及び第2のセットSLa、SLbの順序付けられたリストのうちの少なくとも1つにおける隣接するストロークではないストロークのペアを含む)についての(インデックスによって識別された)エントリを含み得る。この場合、確率行列PMの各エントリは、それらのエントリが、全てのストリップSPについて生成された順序付けられたリストL1a~L4a及びL1b~L4bのうちの少なくとも1つにおける連続ストロークのペアPRとして出現しないストロークのペアに対応する場合、(CL=0、P=0)に留まり得る。
【0127】
選択ステップS20の後、コンピューティングデバイス100は、ストロークSTを、順序付けられたリストL1a~L4a及びL1b~L4bのうちの少なくとも1つにおいて存在する連続ストロークSTの各ペアPRについて選択ステップS20で選択された最高の確率スコアPを有する決定クラスCLに基づいて行仮定LHへと統合することによってテキスト行LNを定義する(S22、
図6及び12)。
【0128】
図13に示されるように、コンピューティングデバイス100は、S22において、S2で検出された各ストロークSTが属するそれぞれのテキスト行LNを確定する。本実施例では、2つのテキスト行LN、すなわち、「Vertical ordering(垂直方向の順序付けは)」及び「can bring chaos(無秩序をもたらし得る)」という句にそれぞれ対応するテキスト行LN1及びLN2が認識される。これらのテキスト行LN1、LN2は、テキスト行定義ステップS22の間に得られた2つの別個の行仮定LHに対応する。
【0129】
行仮定LHを定義する(S22)ために、各種の実装を企図することができる。この下で説明される特定の実施形態では、テキスト行定義ステップS22は、以下で説明されるように、変換ステップS22a及び行仮定分析S22bを含む。
【0130】
より具体的には、テキスト行定義ステップS22の間、コンピューティングデバイス100は、S20で生成された確率行列PMを、確率行列PMに含まれる連続ストロークSTのそれぞれの各ペアPRについて決定クラスCL及び関連確率スコアP(すなわち、デュプレット(CL、P))を定義する(または含む)エントリのベクトルリストLTへと変換し得る(S22a、
図12)。既に示されたように、確率行列PMに含まれる各デュプレット(CL、P)は、全てのストリップSPのニューラルネット分析S18の間に連続ストロークの特定のペアPRについて得られた最高の確率スコアPの決定クラスCLに対応する。
【0131】
ベクトルリストLTは、各ペアPRの確率スコアPの値の降順に従って並べられ得る。特定の実施例では、全てのストリップの第1及び第2のセットSLa、SLbにおいて少なくとも1回出現する連続ストロークSTのペアPRに対応する確率行列PMのエントリのみがベクトルリストLTへと保持される。この場合、各ストリップSPについて生成された順序付けられたリストL1a~L4a及びL1b~L4bのいずれにおいても隣接していないストロークのペアに対応する確率行列PMの任意の他のエントリ(例えば、値(CL=0、P=0)を有するエントリ)は、ベクトルリストLTには含まれない。
【0132】
さらにテキスト行定義ステップS22の間、コンピューティングデバイス100は、行仮定分析S22b(
図12)を実行して、ベクトルリストLT内の連続ストロークSTの各ペアPRについて、最高の関連確率スコアPから最低の関連確率スコアPまで、ペアPRの各ストロークに割り当てられたそれぞれの行仮定LHを順次確定し得る。各行仮定LHは、同一のテキスト行LNの少なくとも1つのストロークSTのグループを構成する。最終的に得られる各行仮定LHは、ベクトルリストLTの全てのストロークSTがそれぞれの行仮定LHに一旦割り当てられたら(S22)、テキスト行抽出S10(
図6)の結果としてそれぞれのテキスト行LNを定義する。換言すれば、全てのストリップSPについて生成された第1及び第2のセットSLa、SLb内の連続ストロークSTの全てのペアPRに存在するストロークSTが、それぞれの行仮定LHに一旦割り当てられたら、結果として生じる行仮定は、S2で検出されたテキスト手書きINを集合的に形成するテキスト行LNを構成する。
【0133】
特定の実施例では、テキスト行定義ステップS22の間、コンピューティングデバイス100は、ベクトルリストLTに含まれる連続ストロークSTのペアPRの2つのストロークSTを、ペアPRについて最高の確率スコアPで先にS20で選択された決定クラスCLが、2つの連続ストロークSTが同一のテキスト行LNに属することを示している場合、かつ関連確率スコアPが少なくとも最終閾値TH1に達した(最終閾値TH1以上である)場合、同一のテキスト行LNに対応する同一の行仮定LHへと統合する。このように、ベクトルリストLT内の各ペアPRの2つのストロークSTのそれぞれについて、2つのストロークSTを同一の行仮定LHに割り当てるかべきか否かを順次確定することにより、さらに、この決定及びこのステップS22bの間の任意の先に生成された行仮定LHのコンテンツに基づいて割り振られる行仮定LHを確定することにより、行仮定LHを段階的に構築することができる(S22b)。
【0134】
次に、特定の実施形態に従って行仮定分析S22b(
図12)がどのように実行され得るかを示すために、
図14~
図15を参照して以下で実施例について説明する。しかしながら、他の実施態様が企図されてもよい。
【0135】
本実施例では、コンピューティングデバイス100は、ベクトルリストLT内の連続ストロークSTの各ペアPRについて、最高の関連確率スコアPから最低の関連確率スコアPまで、ペアPRの各ストロークに割り当てられたそれぞれの行仮定LHを順次確定する(S22b、
図12)。行仮定分析S22bの開始時に、各ストロークSTは別個の行仮定LHを構成するとみなされるが、他の実施態様が可能である。この初期段階にて、この実施例では、少なくとも3つのストロークST1、ST2及びST3が、3つのそれぞれの初期行仮定LH1、LH2及びLH3を構成すると想定される。これらのストロークST1、ST2及びST3は、ベクトルリストLTに存在する連続ストロークSTのペアPRにおいてそれぞれ少なくとも1回出現する。
【0136】
最初に、コンピューティングデバイス100は、ベクトルリストLTの分析を開始し、ベクトルリストLT内で最高の関連確率スコアPを有する連続ストローク(ST1、ST2)の、PR1と記される第1のペアPRを選択する(S23、
図14)と想定される。次いで、コンピューティングデバイス100は、以下のステップS24~S28を実行して、この現在のペアPR1について、ペアPRのストロークST1及びST2のそれぞれに割り当てられるべきそれぞれの行仮定LHを確定する。ストロークST1及びST2は、ペア(ST1、ST2)に関連確率スコアPに応じて、それらの別個の初期行仮定LH1、LH2内に留まり得るか、または全体の行仮定へとマージされ得る。
【0137】
本実施例では、コンピューティングデバイス100は、現在のペアPR1について以下の条件A)が満たされているかどうかを判定する(S24、
図14)。
【0138】
A)現在のペアPRについて最高の確率スコアPで先にS20で選択された決定クラスCLは、少なくとも最終閾値TH1に達した確率スコアPでペアPRの2つの連続ストロークSTが同一のテキスト行LNに属することを示す(条件A))。
【0139】
したがって、この場合、条件A)は、現在のペアPR1についてのベクトルリストLTに存在するデュプレット(CL、P)が、現在のペアPRの2つの連続ストロークST1、ST2が最終閾値TH1以上の確率スコアPで同一のテキスト行LNに属することを示している場合に満たされる。条件A)が満たされた場合、方法はステップS26(
図14)に進む。それ以外の場合、方法はステップS25に進む。
【0140】
ステップS25において、現在のペアPR1のストロークST1、ST2は、同一のテキスト行LNに属しておらず、したがって、それらの別個の行仮定LH1、LH2内にそれぞれ留まっていると確定される。換言すれば、条件A)が満たされない場合、既存の行仮定LHは変更されずに留まり、方法は、ステップS23に進んで、ベクトルリストLT内で処理されるべき次の現在のペアPRを選択する。
【0141】
この場合、例えば、現在のペアPR1についてのデュプレット(CL、P)は、95%の確率スコアPで2つの連続ストロークST1及びST2が同一のテキスト行LNに属していることを示すと想定される。例えば、最終閾値TH1が60%に設定されていると想定すると、確率スコアPが最終閾値TH1を上回っていると確定され(S24)、したがって、方法はステップS26に進む。
【0142】
ステップS26(
図14)において、コンピューティングデバイス100は、現在のペアPR1について次の条件B)が満たされているかどうかを判定する。
【0143】
B)現在のペアPRの少なくとも1つのストロークSTが、少なくとも2つのストロークSTを含む行仮定LH内に既にある(条件B))。
【0144】
したがって、この場合、ストロークST1またはストロークST2のいずれか(または両方)が少なくとも2つのストロークSTを含む行仮定LH内に既にある場合、条件B)はステップS26において満たされる。条件B)が満たされない場合、方法はマージステップS28に進む。そうでない場合、方法はステップS27の決定プロセスに進んで、マージステップS28を実行すべきかどうかを判定する(
図14)。
【0145】
本実施例では、この段階にて、ストロークST1及びST2は、別個の行仮定LH1及びLH2にそれぞれ含まれるとみなされる。これらの行仮定は共に、単一のストロークSTの行仮定である。したがって、決定プロセスS27は必要ではなく、方法は、マージステップS28に直接進む。
【0146】
マージステップS28において、コンピューティングデバイス100は、ストロークST1とストロークST2の両方が、LH5と記された同一の行仮定に属すると確定する。この行仮定は、行仮定LH1及び行仮定LH2をマージすることによって得られる(LH5=ST1、ST2)。次いで、方法は、ステップS23に進んで、ベクトルリストLT内で処理されるべき次の現在のペアPRを選択する。
【0147】
したがって、コンピューティングデバイス100は、確率スコアPの降順でベクトルリストLTの連続ストロークSTの各ペアPRを継続的に分析し続ける(ステップS23~S28)。行仮定LHは、ペアPRに関連付けられた決定クラスCL及び確率スコアPに基づき、さらに行仮定分析S22bの間に先に作られた行仮定LHにも基づき、継続的な各ペアPRの2つの連続ストロークSTをそれぞれの行仮定に割り当てることによって徐々に構築される。
【0148】
本実施例では、コンピューティングデバイス100が、ベクトルリストLT内で先に分析されたペアPR1(ST1、ST2)から確率スコアPの降順でさらに移行して、ベクトルリストLT内の連続ストローク(ST2、ST3)の新しい、いわゆる現在のペアPR2を次に選択する(S23)と想定される。この段階では、行仮定LH5はストロークST1及びST2を含み、他方、行仮定LH3は単一のストロークST3を含む(
図16)。
【0149】
この実施例では、コンピューティングデバイス100は、ステップS24で、ペアPR2について条件A)が満たされていることを検出し、したがって、ステップS26(
図14)に進むと想定される。ステップS26において、コンピューティングデバイス100は、条件B)が満たされない(ストロークST2は、複数のストローク、すなわち2つのストロークST1及びST2を含む行仮定LH5の既に一部であるため)ことを検出する。その結果、方法は、次にステップS27の決定プロセスに進む。
【0150】
この決定プロセスS27は、連続ストロークの現在のペアPRについて条件A)及びB)が満たされることが検出されたときに、2つの既存の行仮定(すなわち、この場合はLH5及びLH3)を統合すべきかどうかを判定するように構成される。決定プロセスS27を実行する各種の手法が可能である。いくつかの実施例は、例示の目的のみのために以下に提供される。
【0151】
この実施例ではより具体的にはS27aと呼ばれる、決定プロセスを実装する第1の実施例について、ここで
図15A及び
図16を参照して説明する。この第1の実施例では、この決定プロセスS27aは、行スコアLSの計算に基づいている。より具体的には、本実施例では、コンピューティングデバイス100は、以下で説明されるように、決定プロセスS27aの間にステップS30、S32、S34及びS36を実行する。
【0152】
行スコアLSの計算の様々な実施態様が可能である。以下でさらに示されるように、行スコアは、例えば、所与の行仮定LHに存在するストロークSTの各ペアPRの確率スコア(PL)の対数、及び2つの構成ストロークSTのうちの一方のみがLHに属するための各ペアPRの逆確率スコア(1-PL=PB)の対数を使用して計算され得る。
【0153】
ステップS30において、コンピューティングデバイス100は、第1の行仮定LH5に既に割り当てられた連続ストロークSTの各ペアPR(すなわち、PR1)の確率スコアPに基づいて第1の行仮定LH5の第1の行スコアLS5を計算する。この第1の行スコアLS5は、この第1の行仮定LH5の各ストロークST(すなわち、ST1及びST2)が同一のテキスト行LNの一部であり、このテキスト行LNが行仮定LH5によって完成すると定義される尤度を表す。
【0154】
この文脈において、確率スコアPに従って同一のテキスト行LNに属するべきである全てのストロークSTが実際に行仮定LH内にある場合、テキスト行LNは、行仮定LHによって完成すると定義される。換言すれば、行スコアLSは、同一の行仮定LHに属する連続ストロークの各ペアPRについての確率スコアPが決定クラスCL=「同一行」に関連付けられること、及びこの行仮定LHに属する1つのストロークSTのみを含む全ての他のペアPRがクラスCL=「分離行」に関連付けられることを保証する。本実施例では、コンピューティングデバイス100によって計算された行スコアLSは、上記のような尤度を表す値である。
【0155】
ステップS32(
図15A)において、コンピューティングデバイス100は、第2の行仮定LH3に既に割り当てられた連続ストロークSTの各ペアPRの確率スコアPに基づいて第2の行仮定LH3の第2の行スコアLS3を計算する。この第2の行スコアLS3は、この第2の行仮定LH3の各ストロークST(すなわち、ST3)が第2のテキスト行LNの一部である尤度を表す。この段階では、行仮定LH3は単一のストローク、すなわちST3のみを含む。同一のLH内にストロークSTaとSTbの両方を有するストロークのペアは存在しないが、それぞれの行仮定LHの外側の他のストロークと共にストロークST3を含むストロークのペアが存在する。ここで、関連するペアは(ST3、ST1)と(ST3、ST2)になる。行仮定LH3の行スコアLS3を計算するとき、この同一の行仮定に寄与するペアは存在しない(すなわち、logP
Lの計算はない)が、「分離行」(または異なる行)仮定、すなわちlogPb、より具体的には、LH2に属するSTxを用いてlogPb(ST3、STx)を計算するのに使用できるペアは依然として存在する。
【0156】
ステップS34において、コンピューティングデバイス100は、第1及び第2の行仮定LH5、LH3の各ストロークSTを統合した第3の行仮定LH6に割り当てられた連続ストロークSTの各ペアPR(すなわちPR1、PR2)の確率スコアPに基づいて第3の行スコアLS6を計算する。この第3の行スコアLS6は、これらの第1及び第2の行仮定LH5、LH3の各ストロークが第3のテキスト行LNの一部である尤度を表す。
【0157】
ステップS36において、コンピューティングデバイス100は、第1の行スコアLS5と第2の行スコアLS3の和S1(S1=LS5+LS3)と第3の行スコアLS6との比較に基づき、第1及び第2の行仮定LH5、LH3がこの第3の行仮定LH6にマージされるべきかどうかを判定する。
【0158】
行スコアLS5、LS3及びLS6は、それぞれの各行仮定LH5、LH3及びLH6の構成ストロークSTがテキスト行LHを集合的に形成するのに共に適合する度合いを表す。上記の行スコアLS5、LS3及びLS6は異なる方式で算出されてもよく、実施態様の詳細は当業者の裁量に委ねられている。コンピューティングデバイス100は、決定プロセスS27aの間に第3の行スコアLS6が第1の行スコアLS5と第2の行スコアLS3の合計S1を超えると判定された場合(すなわち、LS6>S1、または換言すれば、比LS6/S1>1の場合)、第1及び第2の行仮定LH5、LH3を第3のテキスト行に対応する第3の行仮定LH6へとマージする。より正確に言うと、第1及び第2の行仮定LH5、LH3は、LS6>S1-CPの場合、第3の行仮定LH6へとマージされ得る。式中、CPは、第1及び第2の行仮定LH5、LH3によって共有されるスコア計算の共通部分である。この共通部分CPは、第1の行仮定LH5内に1つのストロークSTを有し、第2の行仮定LH3内に別のストロークを有するペアPRから生じた行スコアの下位部分に対応する。これらのストロークペアの寄与は、LS5及びLS3で計算されるが、LS6では1回だけ計算される。
【0159】
LS5、LS3及びLS6の計算に使用される確率スコアPは、選択ステップS20で得られた確率行列PMから導出することができる。
【0160】
行仮定LH5、LH3がマージされるべきであるとS36で判定された場合、コンピューティングデバイス100は、これらの行仮定をマージする(
図14)。次いで、方法は、ステップS23に再度進んでベクトルリストLT内の次の現在のペアPRを選択し、プロセスS23~S28は、ベクトルリストLTの全てのペアPRが処理されて行仮定LHを構築するまで繰り返される。
【0161】
次に、別の実施例において、この実施例ではより具体的にはS27bと呼ばれる決定プロセスS27(
図14)について、
図15Bを参照して説明する。既に言及したように、決定プロセスS27bでは、行仮定LH3及び行仮定LH5をマージすべきかどうかを判定することができる。ステップS30bにおいて、LH3とLH5の間のマージスコアLSaが計算される。ステップS32bにおいて、LH3とLH5の間の非マージスコアLSbが計算される。2つの行仮定(すなわち、この実施例ではLH5及びLH3)をマージするかどうかの判定は、第1のストロークSTaが第1の行仮定LH(ここではLH3)に属し、第2のストロークSTbが第2の行仮定LH(ここではLH5)に属するペアPRにのみ依存する。本実施例では、ペアPR(ST1、ST3)及び(ST2、ST3)の確率Pのみが、LH3及びLH5をマージすべきかどうかを判定することに関連している。したがって、次の2つの行スコア、すなわち、2つのペアPRに関連付けられた2つの確率スコアPがマージに適する度合いを定義するマージスコアLSa、及び2つのペアPRに関連付けられた2つの確率スコアがマージの拒否に適する度合いを定義する第2のスコアLSb(したがって、マージされる行仮定LH6よりもLH3及びLH5に関して適切な行仮定を有する)が計算される。第1の行スコアLSaは、全ての関連するペアPR(ここでは(ST1、ST3)及び(ST2、ST3))についてクラスCL=「同一行」の場合の確率P(いわゆるP
L)の対数の組み合わせとして定義される。第2の行スコアLSbは、全ての関連するペアPR(ここでは(ST1、ST3)及び(ST2、ST3))についてクラスCL=「分離行」の場合の確率P(いわゆるPB)の対数の組み合わせとして定義される。次いで、ステップS36bにおいて、2つのスコアLSaとLSbが比較されて、行仮定LH5及びLH3がマージされるべきか否かを判定する。この実施例では、マージスコアLSaが非マージスコアLSbよりも大きい場合、これは、行仮定LH3及びLH5がより適切な行仮定LH6へとマージされるべきであることを意味する。判定が「yes」の場合、ストロークST1、ST2及びST3(及びこれら3つのみ)を含むペアPRについての確率スコアPの大部分(理想的には全て)が決定クラスCL=「同一行」に関連付けられるべきである。しかしながら、行仮定LH3及びLH5がマージされるべきではないとの判定である場合、第1の行仮定LH3からの1つのストローク及び第2の行仮定LH5からの他の1つのストロークを含むペアPRの確率スコアPの大部分(理想的には全て)が決定クラスCL=「分離行」に関連付けられるべきである。
【0162】
ペア(ST1、ST3)と(ST2、ST3)の両方が確率行列PM内に存在する場合、マージスコアLSaの計算は、2つの確率(PL(ST1、ST2)及びPL(ST2、ST3)の組み合わせを必要とし、非マージスコアの計算は、(PB(ST1、ST3)及びPB(ST2、ST3))と共に各ペアについてPL=1-PB及びPB=1-PLを有する2つの確率の組み合わせを必要とすることに留意されるべきである。これは、先に言及されたような行スコアの計算を説明する別の手法と見ることができる。
【0163】
本発明では、2つのタイプの確率スコアP、すなわち、
連続ストロークSTのペアPRが同一のテキスト行LNに属する確率を表す、PLと表記された「同一行」確率スコア(例えば、決定クラスCL=「同一行」に関連付けられた確率スコア)、及び/または
連続ストロークSTのペアPRが同一のテキスト行LNに属さない確率を表す、PBと表記された「分離行」確率スコア(例えば、決定クラスCL=「分離行」に関連付けられた確率スコア)が使用され得ることに留意されるべきである。
【0164】
一実施例では、行スコアは、所与の行仮定LHに存在するストロークSTの各ペアPRの確率スコア(PL)の対数、及び2つの構成ストロークSTのうちの一方のみがLHに属する場合の各ペアPRの逆確率スコア(1-PL=PB)の対数を使用して計算される。
【0165】
本実施例では、確率行列PMに含まれるエントリは、同一行確率スコアPLまたは分離行確率スコアPBのいずれかを定義し得るが、これは、行スコアを計算するために使用される同一行確率スコアPLである。したがって、確率行列PMから導出され得る任意の分離行確率スコアPBは、対応する同一行確率スコアPL(PL=1-PB)に転換される。同一行確率スコアPL、もしくは分離行確率スコアPB、または確率行列PM内の2つの組み合わせのいずれかを使用して、各種の実施態様が可能である。
【0166】
図6に示されるように、行仮定LHの生成S22が一旦完了すると、コンピューティングデバイス100は、実装された構成に応じて任意の適切な後処理を実行し得る(S24)。この後処理ステップS24は、例えば、ストロークコンテキストが非常に特殊であるためにテキスト行抽出S10で起こり得るいくつかの明らかな誤りを修正するために、例えば、あるニューラルネットが別のニューラルネットによって補償または訂正することができない誤りを犯したときに使用され得る。
【0167】
本発明は、コンピューティングデバイスによってテキスト手書きに対して手書き認識が実行されるときに効率的かつ信頼性の高いテキスト行抽出を可能にする。先に示されたように、行抽出は、テキスト認識における重要なステップであり、特に、発音区別符号、句読点などのいくつかのタイプのストロークに関しては、必ずしも満足のいく結果をもたらさない場合がある。より一般的には、テキスト手書きが経時的ではない順序で入力されたとき、テキスト行抽出の間にエラーが発生する場合がある。
【0168】
本発明は、特定の実施形態において先に説明されたように、効率的なテキスト行抽出を実現するために互いに機能的に相互作用するいくつかの態様に依存する。特に、テキスト手書きINをスライスすることにより、コンピューティングデバイス100は、デジタルインクの各ストロークSTに関して異なるコンテキストで決定を下すことができる。スライスステップにより、ニューラルネット分析中の処理が容易となる。複数のストリップへのテキスト入力のスライスが実行されなかった場合、
図17Aに示されるように、テキスト手書きINの全てのテキストストロークSTが単一の区域に含まれる。したがって、時間的及び空間的な順序変更は、テキスト全体に対して一意の区域として全体的に行われる。例えば、
図17Bに示されるように、時間的順序は、自然なユーザの手書きの順序に従う。
図17Cに示されるように、Y方向に沿った空間的順序付けにより、特に手書き方向Xにおける連続ストロークSTの位置に関して、より無秩序な経路が生じる。ストロークの空間的シーケンスは、X位置に関してランダムに現れる。
【0169】
本発明において実行されるようなテキストスライスにより、
図17Dに示されるように、空間的順序付けがより秩序的になる。文書をスライスすると、上記のランダムパターンが現れる手書き方向Xの範囲が減少する。
【0170】
図17B及び17Cから分かるように、テキストをスライスせずに時間的または空間的な順序付けが実行されたときには、LBと表記された改行がほとんど発生しない(通常、1ペアのストロークの間で1つの改行LBのみ)。したがって、ニューラルネット分析中、ニューラルネットは、2つのテキスト行LNの間のこの分離(または隔離)を検出する機会を1回のみ有する。テキスト手書きINをKスライス(K>1)すると、
図17Dに示されるように、ニューラルネットが2つのテキスト行LNの間の分離を検出する可能性は最大でKとなる。この場合、5つのストリップへとスライスすることで5つの異なる改行LBが生じ、これらの改行はそれぞれ、ニューラルネット分析の間に検出され得る。
【0171】
テキストスライスの別の利点は、いくつかのストロークSTについてストロークコンテキストの変動を生じさせることである。スライスしない場合、例えば、大きいストロークSTは、上のテキスト行内の1つのストローク及び下のテキスト行内の1つのストロークにのみ結合され得る。文書をスライスすることにより、この大きいストロークSTを複数のスライスに含めることができる一方、他のより小さいストロークは全て同じスライス内に現れなくなる。
【0172】
図18Aは、例えば、大きいストロークST10(分数バー)が手書き方向Xに水平に伸びる場合を示している。
図18Bに示されるように、テキスト手書きINを複数のスライスSPへと分割することにより、この長いストロークST10は、異なるスライスSPに含まれ、したがって異なるストロークコンテキストにおいて扱われるため、行テキスト抽出の間により効率的に処理することができる。各桁1~9が1つのストロークSTで作られていると想定すると、スライスしない場合、垂直方向の順序付けによりストロークの順序[1、2、3、4、5、ST10、6、7、8、9]が得られることが分かる(
図18A)。分数バーST10は、連続ストロークの2つのペアPR、すなわち(5、ST10)及び(ST10、6)においてのみ、テキスト行抽出プロセスで検出され、扱われる。しかしながら、
図18Bに示されるように、3つのストリップにスライスすると、3つの空間的なストローク順序、すなわち[1、2、ST10、6、7]、[3、4、ST10、8、9]及び[5、ST10バー、9]を生成することができる。したがって、分数バーST10は、テキスト行抽出プロセスの間に6つの異なるストロークのペアSTにおいて検出し、扱うことができる。
【0173】
最後に、制限されたストリップでストローク順序を生成すると、2つのテキスト行LNの間の改行のゆらぎを制限することができる。改行のゆらぎが生じないストローク順序は、各テキスト行LNのストロークが順序付けられたリストにグループ化されるストローク順序である(テキスト行LN1からの全てのストローク、次いでテキスト行LN2からの全てのストロークなど)。ゆらぎは、例えば、前のテキスト行LNからのストロークが、別のテキスト行LNの中央の順序付けられたリストに現れるときに発生する。例えば、ゆらぎは、行LN1からのいくつかのストロークST、次いで行LN2からの1つまたは複数のストロークST、再びテキスト行LN1からのいくつかのストロークSTなどを連続して含む順序付けられたリストで発生する。このようなゆらぎが生じた順序は、ニューラルネットによって分析するのがより困難である。先述したようにテキスト手書きをスライスすることにより、順序付けられたリスト内のゆらぎを制限することができる。
【0174】
先述したようにストリップSPを、これらを互いに重ね合わせるように構成することにより、テキスト行抽出のプロセスをさらに一層改善することができる。しかしながら、ストリップSPが重なり合わない実施態様も可能である。例えば、隣接するストリップSPの各ペアPRの間で75%の重なり合いを設定することにより、テキスト行抽出(
図7~8)の間に各ストロークSTがコンピューティングデバイス100によっていくつかの異なるストロークコンテキストで見出されることが保証される。
【0175】
図19に示されるように、ストリップSPの幅WDは、手書き入力INに含まれるストロークSTのスケールに基づいて定義され得る。
図19に示される特定の実施形態では、コンピューティングデバイス100は、スライスステップS12(
図6~8)の間に、テキスト手書きINを形成するストロークSTのスケール(またはサイズ)に基づいてストリップSPの幅WDを確定する(S52)。ストロークSTのスケールは、当業者に知られた任意の適切な技術に従って先に確定される(S50)。次いで、コンピューティングデバイス100は、既に説明されたように、ストロークSTを含む表示領域をスライスし(S54)、各ストロークSTを少なくとも2つのそれぞれのストリップSPに割り当てる。
【0176】
特定の実施形態では、スライスS12(
図6~8)は、隣接するストリップSPの各ペアPRが互いに部分的に重なり合って、それぞれの領域の50%~85%の間を共有するように構成される。
【0177】
重なり合うスライス環境においてスライスごとに複数のストローク順序を生成することにより、連続ストロークSTのペアがコンピューティングデバイス100によって複数回見出され、それによってニューラルネット分析の間に連続ストロークSTの同じペアのPRについて同数の確率スコアを作成する可能性が高くなる。より高い確率スコアPを与えるニューラルネットの決定のみを選択することにより、効率的なテキスト行抽出を実現することができる。
【0178】
さらに、先述したように、コンピューティングデバイス100は、順序付けステップS14(
図6、
図9及び
図12)の間にストロークの順序付けられたリストの第1のセットSLaを生成し得る。各種の基準(時間的順序及び空間的基準)に従って各ストリップSPについて複数の順序付けられたリストを生成することにより、順序付けられた各リスト内の連続ストロークの特定のペアPR内で1つの所与の改行を識別することができるため、改行LBをより一層簡単に識別することができる。異なるストローク順序を生成することは、異なる視点を通じてテキスト行抽出の問題を分析することにより、連続ストロークの各ペアPRについて、最良の決定が得られる最良のストロークコンテキストをコンピューティングデバイスが見出すのを支援することと見ることができる。
【0179】
より具体的には、垂直方向の各スライスについてストロークの時間的順序を生成することにより、全体的な順序よりも処理が容易な時間的順序を生成することができる。これにより、遅延したストロークギャップが制限される。加えて、ユーザの訂正などからのストロークは、それらのストロークコンテキストにより時間的に近づいて処理され得る。空間的分析は、スライスされた環境においても容易である。その理由としては、空間的順序に基づいてストロークを順序変更すると、行間スペースになり得るストローク間の局所的なギャップを発見しやすくなるためである。(手書き方向に沿った)X軸上のストローク分布は、場合によっては無秩序であり得る。本発明において実行されるテキストスライスは、このストローク分布の無秩序を制限することを可能にし、ニューラルネットによる処理を容易にする。
【0180】
スライスが多くなり、順序付けられたリストがスライスごとに多くなるほど、コンピューティングデバイス100が、テキスト行抽出のプロセスの間に連続ストロークSTの同じペアPRを複数回検出する可能性が高くなる。しかしながら、改行LBを識別する機会の回数と、テキスト行抽出を実装するために必要とされるリソース及び時間との間でトレードオフが実現されるべきである。例えば、4つの異なる基準に従ってストリップごとに4つの異なる順序付けられたリストを生成すると良い結果になることが確認されている。また、先述したように、ストロークの時間的に順序付けられたリスト及びストロークの少なくとも1つの空間的に順序付けられたリストを生成することにより、非常に効率的なテキスト行抽出が可能になることが確認されているものの、他の実施態様が可能である。
【0181】
なおさらに、先述したように、コンピューティングデバイスはまた、第1のセットSLaの順序付けられたリストから比較的小さいストロークSTをフィルタ除去することによって順序付けられたリストの第2のセットSLbを生成し得る(ステップS16、
図6、
図11及び
図12)。既に論じられたように、発音区別符号などの比較的小さいストロークは、テキスト行抽出の間にエラーを引き起こす可能性がある。テキスト行抽出の間に順序付けられたリストからこれらの比較的小さいストロークを削除すると、これらの比較的小さいストロークSTがある場合とない場合とで連続ストロークの各ペアPRについて得られた決定クラス及び関連確率スコアを比較することができる。最良の信頼水準を有する(最高の確率スコアを有する)決定クラスを保持し、テキスト行仮定を構築するために使用することができ、それによって効率的かつ信頼性の高いテキスト行抽出が可能になる。
【0182】
本発明では、先述したように、1つ以上のニューラルネットを使用して、手書きの時間的及び空間的態様に対処することができる。システムは、ストロークのコンテキストに応じて、時間的または空間的態様に従うことを自動的に決定してもよい。
【0183】
また説明したように、2つの特殊化されたニューラルネットワークを使用して時間的順序及び空間的順序にそれぞれ対処することができるが、これは可能な実施態様のうちの一実施例に過ぎない。リカレントニューラルネットワーク(RNN)は、場合によっては、ニューラルネット分析を実行するのに特によく適している場合がある。
【0184】
いくつかの代替的な実施態様では、ブロックで表記された機能は、図に表記された順序とは違う順序で起こり得ることに留意されるべきである。例えば、連続して示された2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは、場合によっては逆の順序で実行されてもよく、またはブロックは、関係のある機能に応じて代替的な順序で実行されてもよい。例えば、
図14、
図15A及び
図15Bを参照して企図された行スコアは、異なる順序で計算されてもよい。
【0185】
特定の実施形態では、各ストリップSPについて生成された順序付けられたリストL1a~L4a及びL1b~L4b(S14、S16、
図6)に加えて、コンピューティングデバイス100は、全てのストリップSPによって形成された領域全体について2つの追加の時間的に順序付けられたリストL5a及びL5bを生成するようにも構成される。より具体的には、コンピューティングデバイス100は、テキスト手書きIN(
図4)の全てのストロークSTを共に順序付けて、時間的順序(TO)で並べられたストロークSTのいわゆる第3の時間的に順序付けられたリストL5aを生成し、また第3の時間的に順序付けられたリストL5aからサイズ閾値未満のストロークSTをフィルタ除去することによっていわゆる第4の時間的に順序付けられたリストL5bを形成する。これらの時間的に順序付けられたリストL5a及びL5bは、先述したようなそれぞれの時間的に順序付けられたリストL1a及びL1bと類似の方式で生成されるが、リストL5a及びL5bは、ストリップSPのうちのただ1つに対応するのではなく、共に全てのストリップSPに対応するという違いがある。ニューラルネット分析S18(
図6及び
図12)は、これらの時間的に順序付けられたリストL5a及びL5bにも適用される。すなわち、ニューラルネット分析S18の間、コンピューティングデバイス100はまた、決定クラスCLとして、第3及び第4の時間的に順序付けられたリストL5a及びL5b内の連続ストロークSTの各ペアPRについて、当決定クラスの確率スコアPに関連して、当ペアのストロークが同一のテキスト行LNに属するかどうかを判定する。これらの時間的に順序付けられた順序付きリストL5a及びL5bはまた、各ペアPRについて、ステップS20(
図6及び
図12)の間に最高の確率スコアPを有する決定クラスCLを選択するとき、(各ストリップSPについて生成された全ての順序付けられたリストL1a~L4a及びL1b及びL4bと共に)考慮される。換言すれば、選択ステップS20の間、コンピューティングデバイス100は、ニューラルネット分析S18の間に最高の確率スコアPで確定された決定クラスCLを、順序付けられたリストL1a~L4a、順序付けられたリストL1b~L4b、第3の時間的に順序付けられたリストL5a及び第4の時間的に順序付けられたリストL5bのうちの少なくとも1つに含まれる(または存在する)連続ストロークの各ペアについて選択し得る。この特定の実施形態は、いくつかの特定の場合において、テキスト行LNの定義をさらに改善することを可能にする。
【0186】
本発明は特定の実施形態で説明されており、添付の特許請求の範囲によれば、当業者の能力の範囲内で多数の修正及び実施形態が可能であることは明らかである。特に、当業者は、添付の特許請求の範囲内に含まれる本文書で説明された各種の実施形態のいずれか及び全ての組み合わせ及び変形を企図し得る。