IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイスクリプトの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-15
(54)【発明の名称】手書きにおける数学検出
(51)【国際特許分類】
   G06V 30/00 20220101AFI20230308BHJP
   G06V 30/32 20220101ALI20230308BHJP
【FI】
G06V30/00 P
G06V30/32
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022543161
(86)(22)【出願日】2021-01-27
(85)【翻訳文提出日】2022-09-06
(86)【国際出願番号】 EP2021051838
(87)【国際公開番号】W WO2021151929
(87)【国際公開日】2021-08-05
(31)【優先権主張番号】20305069.5
(32)【優先日】2020-01-28
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】515295429
【氏名又は名称】マイスクリプト
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】ロイ ウディット
(72)【発明者】
【氏名】ラリカン ピエール-ミシェル
(72)【発明者】
【氏名】メリナンド ロビン
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AB03
5B064CA10
5B064DA14
5B064DC23
(57)【要約】
本発明は、複数のストローク(SK)に対して手書き認識を実行することによって、シンボルを識別することと、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして第1のシンボルを分類することと、予め定義された空間的構文ルール(RL2)を適用することによって、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして第1のシンボル以外の第2のシンボルを分類することと、第3の分類として、シンボルの間のセマンティック接続を確立し、セマンティック接続を第2の分類の結果と比較することによって、第2の分類の結果を更新または確認することと、第3の分類の結果に基づいてテキストまたは数学のいずれかとして各々のシンボル認識することと、を含む、手書きにおける数学及びテキストを処理するコンピューティングデバイス(100)によって実施される方法に関連する。
【選択図】図1
【特許請求の範囲】
【請求項1】
手書き(IN)における数学及びテキストを処理するコンピューティングデバイス(100)によって実施される方法であって、
-デジタルインクの複数のストローク(SK)に対して手書き認識を実行することによって、シンボル(SB)を識別すること(S4)と、
-前記シンボルに対して予め定義されたシンボル認識ルール(RL1)を個々に適用することによって、第1の分類(S12)として、少なくとも第1の閾値(TH1)に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記識別されたシンボルから少なくとも1つの第1のシンボル(SB1)を分類することと、
-前記少なくとも1つの第1のシンボル(SB1)及び前記少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボル(SB2)に対して、前記少なくとも1つの第1のシンボルと前記少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルール(RL2)を適用することによって、第2の分類(S16)として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記少なくとも1つの第2のシンボル(SB2)を分類することと、
-前記識別されたシンボルからの少なくとも2つのシンボル(SB)の間のセマンティック接続を確立し、前記セマンティック接続を前記第2の分類の結果と比較することによって、第3の分類(S18)として、前記第2の分類の前記結果を更新または確認することと、
-前記第3の分類の結果に少なくとも基づいて、テキストシンボルまたは数学シンボルのいずれかとして、各々のシンボルを認識すること(S20)と、
を備える、前記方法。
【請求項2】
前記シンボルを識別することの前に、前記シンボルを形成するデジタルインクの前記複数のストロークを取得することを備え、
前記識別されたシンボルは、少なくとも1つのテキストシンボル及び少なくとも1つの数学シンボルを含む、
請求項1に記載の方法。
【請求項3】
前記シンボルを識別することの間、前記複数のストローク(SK)は、予め定義されたシンボル(PSB)のセットと比較され、前記複数のストロークによって形成された各々のシンボルは、予め定義されたシンボルのセット内のそれぞれの1つとして識別される、請求項1または2に記載の方法。
【請求項4】
前記シンボルを形成する各々のストロークに基づいて、識別されたシンボル(SB)ごとに、インク関連情報(IF1)を計算することを備え、前記インク関連情報は、
-前記シンボルを形成する前記1つ以上のストロークの固有の特質を特徴付けるシンボル情報(IF1a)と、
-前記複数のストロークの少なくとも1つのそれぞれの順序付けに従った、前記シンボルを形成する前記1つ以上のストロークと空間的に関連する、少なくとも1つの隣接ストロークを特徴付けるコンテキスト情報(IF1b)と、を含み、
前記インク関連情報は、数学シンボル候補またはテキストシンボル候補のいずれかとして各々のシンボルを分類するために、少なくとも前記第2の分類及び前記第3の分類において使用される、
請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第1の分類は、
-識別されたシンボルごとに、前記シンボル認識ルールによって前記シンボルに帰属した埋め込み情報(IF2)を決定することであって、前記埋め込み情報は、前記予め定義されたシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む、前記決定することと、
-少なくとも前記第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして少なくとも1つの第1のシンボルを識別するように、前記埋め込み情報において定義されるような各々の識別されたシンボルの前記それぞれの信頼スコアを前記第1の閾値と比較することと、
を含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記第2の分類の間、前記空間的構文ルール(RL2)は、数学シンボル候補またはテキストシンボル候補のいずれかとして、1つ以上の第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他のシンボル(SB2)を識別するために、前記少なくとも1つの第1のシンボル(SB1)に対して適用される、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記第2の分類の間、前記少なくとも1つの第1のシンボル以外の各々のシンボルは、テキストシンボル候補または数学シンボル候補のいずれかとして分類される、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記空間的構文ルール(RL2)は、
-少なくとも2つの数学シンボルの間の空間的関係を定義した数学空間的構文ルールと、
-少なくとも2つのテキストシンボルの間の空間的関係を定義したテキスト空間的構文ルールと、
を含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記第2の分類の前記結果がセマンティック接続に基づいて前記第3の分類の間に更新される場合、前記第3の分類において生み出される前記結果は、それぞれの更新された信頼スコアに沿った前記第2の分類に対するテキスト候補及びシンボル候補としての前記シンボルの修正された分類を含み、
前記方法は、前記結果を確認または更新するかのいずれかのために前記第3の分類の前記結果に対して前記第2の分類を繰り返すことを更に備えた、
請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記第2の分類及び前記第3の分類が同一の結果に収束するまで、前記第2の分類及び前記第3の分類(S16、S18)を含む反復的分類処理(S14)が繰り返される、請求項9に記載の方法。
【請求項11】
前記第2の分類及び前記第3の分類が同一の結果に収束する前に前記分類処理(S14)の反復の予め定義された回数Nに到達する場合、前記第3の分類(S18)において取得された前記第2の分類の最近の更新された結果は、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボル(SB)を認識するために使用され、Nは、少なくとも2の整数である、請求項9または10に記載の方法。
【請求項12】
前記テキストシンボルまたは数学シンボルのいずれかとして各々のシンボル(SB)を認識すること(S20)は、前記第3の分類(S18)の前記結果に少なくとも基づいて、各々のストロークに、関連する信頼スコアに沿って数学またはテキストのいずれかとしての分類を割り当てることを含む、請求項1~11のいずれか1項に記載の方法。
【請求項13】
前記認識することの結果に基づいて、前記複数のストロークを1つ以上のストロークのブロックにグループ化すること(S26)を備え、各々のブロックは、テキストブロックまたは数学ブロックのいずれかであり、テキストブロックに包含された各々のストロークは、テキストシンボルの一部であり、数学ブロックに包含された各々のストロークは、数学シンボルの一部である、請求項1~12のいずれか1項に記載の方法。
【請求項14】
数学言語モデルを各々の数学ブロックに適用することによって、及びテキスト言語モデルを各々のテキストブロックに適用することによって、前記ストロークにおける数学コンテンツ及びテキストコンテンツを認識することを備えた、請求項13に記載の方法。
【請求項15】
手書き(IN)における数学及びテキストを処理するコンピューティングデバイス(100)であって、
-デジタルインクの複数のストローク(SK)に対して手書き認識を実行することによって、シンボル(SB)を識別する第1の認識モジュール(MD2)と、
-前記シンボルに対して予め定義されたシンボル認識ルールを個々に適用することによって、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記識別されたシンボルから少なくとも1つの第1のシンボル(SB1)を分類するシンボル処理モジュール(MD4)と、
-前記少なくとも1つの第1のシンボル(SB1)及び前記少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボル(SB2)に対して、前記少なくとも1つの第1のシンボルと前記少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルール(RL2)を適用することによって、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記少なくとも1つの第2のシンボル(SB2)を分類する構文処理モジュール(MD6)と、
-前記識別されたシンボルからの少なくとも2つのシンボル(SB)の間のセマンティック接続を確立し、前記セマンティック接続を前記第2の分類の結果と比較することによって、第3の分類として、前記第2の分類の前記結果を更新または確認するセマンティック処理モジュール(MD8)と、
を備え、
前記コンピューティングデバイスは、少なくとも前記第3の分類の結果に基づいて、テキストシンボルまたは数学シンボルとして各シンボルを認識するように構成される、
前記コンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、手書き認識及び手書き処理の分野に関し、特に、手書きにおける数学コンテンツ及びテキストコンテンツを認識することが可能なコンピューティングデバイスに関する。
【背景技術】
【0002】
手書き入力及び認識、すなわち、テキストコンテンツ(例えば、アルファベット文字)または非テキストコンテンツ(例えば、形状、図)など、ユーザによる手描きまたは手書きの入力要素のために、様々なコンピューティングデバイスが何年にもわたって開発されてきた。この目的のために、既知のコンピューティングデバイスは通常、ディスプレイスクリーン上で表示することができるデジタルインクのストロークの形式においてユーザが手書きコンテンツを入力することを可能にするタッチ感応画面または同様のものを備えられる。
【0003】
ユーザ手書き入力は、手書きがユーザによって入力されるときにリアルタイム認識を可能にするオンライン手書き認識システムを使用して解釈されることがある。手書き認識は、例えば、クラウド方式ソリューションまたは同様のものを使用して実施されることがある。代わりに、オフラインシステムも既知である。認識されると、コンピューティングデバイスは、入力ストロークを例えばタイプセットバージョンに変換すること、または編集機能を実装することなど、いずれかの適切な処理タスクを実行することがある。
【0004】
手書きの表示、操作、及び編集などを含む良好な経験をユーザにもたらすために、ユーザからの手書き入力ができるだけ正確に認識されることが重要である。手書きの文字、数字、シンボル、アクセントなどの手書きのテキストを認識するために、テキスト分類器が既知であり、使用されている。しかしながら、手書き入力は、様々な性質のものである場合があり、それはときに、手書き認識のタスクを扱いづらくさせる。
【0005】
特に、手書きが数学コンテンツを含むとき、またはテキストコンテンツ及び数学コンテンツの混合を含むとき、手書き認識は課題となることがある。今日の時点で、数学及びテキストの両方を認識する効率的なソリューションは存在しない。特に、手書きにおける数学コンテンツ及びテキストコンテンツを正確且つ信頼できる方式において区別するソリューションが必要である。
【発明の概要】
【0006】
以下に本明細書で説明される本発明の実施例は、手書きにおける数学及びテキストを処理するコンピューティングデバイス、方法、及び対応するコンピュータプログラムを提供する。
【0007】
特定の態様に従って、本発明は、手書きにおける数学及びテキストを処理するコンピューティングデバイスによって実施される方法であって、
-デジタルインクの複数のストロークに対して手書き認識を実行することによって、シンボルを識別することと、
-シンボルに対して予め定義されたシンボル認識ルールを個々に適用することによって、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして識別されたシンボルから少なくとも1つの第1のシンボルを分類することと、
-先述の少なくとも1つの第1のシンボル及び先述の少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボルに対して、先述の少なくとも1つの第1のシンボルと先述の少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルールを適用することによって、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして先述の少なくとも1つの第2のシンボルを分類することと、
-識別されたシンボルからの少なくとも2つのシンボルの間のセマンティック接続を確立し、先述のセマンティック接続を先述の第2の分類の結果と比較することによって、第3の分類として、先述の第2の分類の結果を更新または確認することと、
先述の第3の分類の結果に少なくとも基づいて、テキストシンボルまたは数学シンボルのいずれかとして、各々のシンボルを認識することと、
を含む方法を提供する。
【0008】
本発明は効率的且つ信頼できる方式において手書きにおける数学及びテキストを認識することを可能にする。高い程度の信頼度により、手書き入力のどのストローク(または、シンボル)がテキストコンテンツであるか、及びどれが数学コンテンツであるかを決定することができる。特に、手書き入力の3つのレベル分析、つまり、シンボル分析、構文分析、及びセマンティック分析を実行することによって、効率的な数学/テキストの区別が達成される。
【0009】
特定の実施形態では、方法は、先述のシンボルを識別することの前に、シンボルを形成するデジタルインクの複数のストロークを取得することを含み、先述の識別されたシンボルは、少なくとも1つのテキストシンボル及び少なくとも1つの数学シンボルを含む。
【0010】
特定の実施形態では、先述のシンボルを識別することの間、複数のストロークは、予め定義されたシンボルのセットと比較され、複数のストロークによって形成された各々のシンボルは、予め定義されたシンボルのセット内のそれぞれの1つとして識別される。
【0011】
特定の実施形態では、方法は、先述のシンボルを形成する各々のストロークに基づいて、識別されたシンボルごとに、インク関連情報を計算することを含み、先述のインク関連情報は、
-先述のシンボルを形成する1つ以上のストロークの固有の特質を特徴付けるシンボル情報と、
-複数のストロークの少なくとも1つのそれぞれの順序付けに従った、先述のシンボルを形成する1つ以上のストロークと空間的に関連する、少なくとも1つの隣接ストロークを特徴付けるコンテキスト情報と、を含み、
先述のインク関連情報は、数学シンボル候補またはテキストシンボル候補のいずれかとして各々のシンボルを分類するために、少なくとも先述の第2の分類及び第3の分類において使用される。
【0012】
特定の実施形態では、ストロークは、ストロークが相互に対して手書きされた時間的順序を示す時間的情報によりオンライン手書きとして取得され、
コンテキスト情報は、シンボルごとに、複数のストロークの時間的順序に少なくとも従って、先述のシンボルを形成する1つ以上のストロークと空間的に関連する、少なくとも1つの隣接ストロークを特徴付ける。
【0013】
特定の実施形態では、先述の第1の分類は、
-識別されたシンボルごとに、シンボル認識ルールによって先述のシンボルに帰属した埋め込み情報を決定することであって、先述の埋め込み情報は、先述の予め定義されたシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む、決定することと、
-少なくとも先述の第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして少なくとも1つの第1のシンボルを識別するように、埋め込み情報において定義されるような各々の識別されたシンボルのそれぞれの信頼スコアを第1の閾値と比較することと、
を含む。
【0014】
特定の実施形態では、第1の分類の間、各々のシンボルは、予め定義されたシンボル認識ルールを個々に適用することによって、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして分類される。
【0015】
特定の実施形態では、第1の分類において識別された各々のシンボルは、予め定義されたシンボル認識ルールに基づいて、先述のシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む埋め込み情報に帰属する。
【0016】
特定の実施形態では、先述の第2の分類の間、先述の空間的構文ルールは、数学シンボル候補またはテキストシンボル候補のいずれかとして、1つ以上の第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他のシンボルを識別するために、先述の少なくとも1つの第1のシンボルに対して適用される。
【0017】
特定の実施形態では、先述の第2の分類の間、先述の少なくとも1つの第1のシンボル以外の各々のシンボルは、テキストシンボル候補または数学シンボル候補のいずれかとして分類される。
【0018】
特定の実施形態では、空間的構文ルールは、
-少なくとも2つの数学シンボルの間の空間的関係を定義した数学空間的構文ルールと、
-少なくとも2つのテキストシンボルの間の空間的関係を定義したテキスト空間的構文ルールと、
を含む。
【0019】
特定の実施形態では、数学空間的構文ルールは、以下:
-分子成分及び分母成分を分離する分数罫を含む分数と、
-1つ以上の基本シンボルの左上及び左下にそれぞれ位置付けられた1つ以上のシンボルと関連付けられた上付き文字及び下付き文字と、
-1つ以上の基本シンボルの上及び下にそれぞれ位置付けられた1つ以上のシンボルと関連付けられたオーバスクリプト及びアンダスクリプトと、
-表形式に配列されたシンボルの複数の行及び列と関連付けられた行列と、
を定義した少なくとも数学空間的構文ルールを含む。
【0020】
特定の実施形態では、先述の第2の分類は、
-それぞれの数学シンボル候補として、第1の分類において数学シンボル候補として識別された少なくとも1つの(または、0から複数の)第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他のシンボルを識別するために、先述の数学空間的構文ルールを適用することと、
-それぞれの数学シンボル候補として、第1の分類において数学シンボル候補として識別された少なくとも1つの第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他のシンボルを識別するために、先述のテキスト空間的構文ルールを適用することと、
のうちの少なくとも1つを含む。
【0021】
特定の実施形態では、第2の分類の結果がセマンティック接続に基づいて第3の分類の間に確認される場合、第3の分類において生み出される結果は、第2の分類の結果と同一である。
【0022】
特定の実施形態では、第2の分類の結果がセマンティック接続に基づいて第3の分類の間に更新される場合、第3の分類において生み出される結果は、それぞれの更新された信頼スコアに沿った第2の分類に対するテキスト候補及びシンボル候補としてのシンボルの修正された分類を含み、
方法は、先述の結果を確認または更新するかのいずれかのために第3の分類の結果に対して第2の分類を繰り返すことを更に含む。
【0023】
特定の実施形態では、第2の分類及び第3の分類が同一の結果に収束するまで、先述の第2の分類及び第3の分類を含む反復的分類処理が繰り返される。
【0024】
特定の実施形態では、第2の分類及び第3の分類が同一の結果に収束する前に分類処理の反復の予め定義された回数Nに到達する場合、第3の分類において取得された第2の分類の最近の更新された結果は、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボルを認識するために使用され、Nは、少なくとも2の整数である。
【0025】
特定の実施形態では、先述のテキストシンボルまたは数学シンボルのいずれかとして各々のシンボルを認識することは、先述の第3の分類の結果に少なくとも基づいて、各々のストロークに、関連する信頼スコアに沿って数学またはテキストのいずれかとしての分類を割り当てることを含む。
【0026】
特定の実施形態では、方法は、先述の認識することの結果に基づいて、複数のストロークを1つ以上のストロークのブロックにグループ化することを含み、各々のブロックは、テキストブロックまたは数学ブロックのいずれかであり、テキストブロックに包含された各々のストロークは、テキストシンボルの一部であり、数学ブロックに包含された各々のストロークは、数学シンボルの一部である。
【0027】
特定の実施形態では、グループは、先述の第3の分類の結果において定義されたような数学またはテキストとしての各々のシンボルの分類に基づいて、及び相互に対するストロークの空間的近接性に基づいて決定される。
【0028】
特定の実施形態では、方法は、各々のストロークが属するそれぞれのブロックを表すボックスに沿って複数のストロークを表示することを含む。
【0029】
特定の実施形態では、数学言語モデルを各々の数学ブロックに適用することによって、及びテキスト言語モデルを各々のテキストブロックに適用することによって、先述のストロークにおける数学コンテンツ及びテキストコンテンツを認識することを含む。
【0030】
別の態様に従って、本発明は、本明細書において定義されるような本発明の方法のステップを実行するための命令を含むコンピュータ可読プログラムコード(または、コンピュータプログラム)をそこに記録した非一時的コンピュータ可読媒体に関連する。
【0031】
本発明のコンピュータプログラムは、いずれかのプログラミング言語において表現されてもよく、例えば、部分的にコンパイルされた形式、またはいずれかの他の適切な形式にあるように、ソースコード、オブジェクトコード、またはソースコードとオブジェクトコードとの間のいずれかの中間コードの形式にあってもよい。
【0032】
本発明はまた、上記言及されたようなコンピュータプログラムを提供する。
【0033】
前に言及された非一時的コンピュータ可読媒体は、コンピュータプログラムを記憶することが可能ないずれかのエンティティまたはデバイスであってもよい。例えば、記録媒体は、ROMメモリ(マイクロ電子回路において実装されたCD-ROMもしくはROM)、または、例えば、フロッピーディスクもしくはハードディスクなどの磁気記憶手段などの記憶手段を含んでもよい。
【0034】
本発明の非一時的コンピュータ可読媒体は、電気ケーブルもしくは光学ケーブルを介して、または無線もしくはいずれかの他の適切な手段によって運ぶことができる、電気信号または光学信号など伝送可能媒体に対応してもよい。本開示に従ったコンピュータプログラムは、特に、インターネットまたは同様のもののネットワークからダウンロードされてもよい。
【0035】
代わりに、非一時的コンピュータ可読媒体は、コンピュータプログラムがロードされる集積回路に対応してもよく、回路は、本発明の方法を実行し、または実行において使用されるように適合される。
【0036】
特定の実施形態では、本発明は、そこに埋め込まれたコンピュータ可読プログラムコードを有する非一時的コンピュータ可読媒体に関連し、先述のコンピュータ可読プログラムコードは、本明細書において定義されるようなコンピューティングデバイス上で手書きにおける数学及びテキストを処理する方法を実施するように実行されるように適合され、コンピューティングデバイスは、先述の方法のステップを実行するためのプロセッサを含む。
【0037】
本発明はまた、本開示において定義されるような方法を実装するための適切なコンピューティングデバイスに関連する。より具体的に、本発明は、手書きにおける数学及びテキストを処理するコンピューティングデバイスであって、
-デジタルインクの複数のストロークに対して手書き認識を実行することによって、シンボルを識別する第1の認識モジュールと、
-シンボルに対して予め定義されたシンボル認識ルールを個々に適用することによって、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして識別されたシンボルから少なくとも1つの第1のシンボルを分類するシンボル処理モジュールと、
-先述の少なくとも1つの第1のシンボル及び先述の少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボルに対して、先述の少なくとも1つの第1のシンボルと先述の少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルールを適用することによって、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして先述の少なくとも1つの第2のシンボルを分類する構文処理モジュールと、
-識別されたシンボルからの少なくとも2つのシンボルの間のセマンティック接続を確立し、先述のセマンティック接続を先述の第2の分類の結果と比較することによって、第3の分類として、先述の第2の分類の結果を更新または確認するセマンティック処理モジュールと、を含み、
先述のコンピューティングデバイスは、先述の第3の分類の結果に少なくとも基づいて、テキストシンボルまたは数学シンボルのいずれかとして、各々のシンボルを認識するように構成される、
コンピューティングデバイスを提供する。
【0038】
本発明の方法と関連して定義された様々な実施形態は、同様の方式において、本開示のコンピューティングデバイス、コンピュータプログラム、及び非一時的コンピュータ可読媒体に適用される。
【0039】
本開示において定義されるような本発明の方法のステップごとに、コンピューティングデバイスは、先述のステップを実行するように構成された対応するモジュールを含んでもよい。
【0040】
特定の実施形態では、本開示は、ソフトウェア構成要素及び/またはハードウェア構成要素を使用して実装されてもよい。このコンテキストでは、用語「モジュール」は、本開示では、ソフトウェア構成要素と共に、ハードウェア構成要素または複数のソフトウェア構成要素及び/またはハードウェア構成要素を指すことができる。
【0041】
本開示の他の特性及び利点が添付図面を参照して行われる以下の説明から明らかになり、添付図面は、非限定的な特性を有する実施形態を示す。
【図面の簡単な説明】
【0042】
図1】本発明の特定の実施形態に従った、コンピューティングデバイスのブロック図である。
図2】本発明の特定の実施形態に従った、コンピューティングデバイスによって実装された機能的モジュールを表すブロック図である。
図3】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法のステップを例示するフローチャートである。
図4】本開示の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図5】本開示の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図6】本発明の特定の実施形態に従った、予め定義されたシンボルのセットを示す。
図7】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図8】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図9】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図10】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図11】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図12A】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図12B】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図12C】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図13】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図14】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図15】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法の異なるステップを表す。
図16】本発明の特定の実施形態に従った、回帰型ニューラルネットワークの構造及びオペレーションを概略的に表す。
図17】本発明の特定の実施形態に従った、回帰型ニューラルネットワークの構造及びオペレーションを概略的に表す。
図18】本発明の特定の実施形態に従った、手書きにおける数学及びテキストを処理する方法を概略的に表すブロック図である。
【発明を実施するための形態】
【0043】
図面における構成要素は、必ずしも同一縮尺でなく、代わりに、本発明の原理を例示することに強調が置かれる。
【0044】
例示を簡易化及び明確にするために、他に示されない限り、同一または類似の部分を指すために、図面の全体を通じて同一の参照符号が使用される。
【0045】
以下の詳細な説明では、関連する教示の完全な理解をもたらすために、多数の特定の詳細が例として示される。しかしながら、本教示がそのような詳細なしに実施されてもよいことが当業者にとって明らかであるはずである。他の例では、本教示の態様を不必要に曖昧にすることを回避するために、詳細ではなく相対的に高いレベルにおいて、公知の方法、手順、及び/または構成要素が説明される。
【0046】
例示的な実施形態の以下の説明は、添付図面を参照する。以下の詳細な説明は、本発明を限定しない。実際に、本発明の範囲は、添付の特許請求の範囲によって定義される。図面において例示されるような様々な実施形態では、コンピューティングデバイス、対応する方法、及び対応するコンピュータプログラムが議論される。
【0047】
用語「手描き(hand-drawing)」及び「手書き(handwriting)」は、入力画面上でまたは入力画面によりそれらの手(もしくは、指)または入力デバイス(ハンドヘルドスタイラスもしくはデジタルペン、マウス…)の使用を通じてユーザによってデジタルコンテンツ(手書き入力)を作成することを定義するために、本明細書で交換可能に使用される。用語「手」または同様のものは、入力技術の簡潔な説明を提供するために本明細書で使用されるが、足、口、及び目など、同様の入力のためのユーザの体の他の部分の使用が、この定義に含まれる。
【0048】
手書きは、ユーザによって入力されたデジタルインクのストロークによって形成される。ストローク(stroke)(または、入力ストローク)は、ストローク開始位置(「ペンダウン」イベントに対応する)、ストローク終了位置(「ペンアップ」イベントに対応する)、並びにストローク開始位置及びストローク終了位置を接続する経路によって特徴付けられる。
【0049】
本開示における用語「テキスト(text)」は、いずれかの記述された言語における全ての文字(例えば、アルファベット文字または同様のもの)、及びその文字列、より一般的には、記述されたテキストにおいて使用されるいずれかのシンボルを包含するとして理解される。よって、テキストは、ラテン文字、キリル文字、及び漢字など、いずれかのスクリプトからの基本文字及びアクセントを含む。
【0050】
用語「数学(math)」(または、mathematics)は、いずれかの言語におけるいずれかの数学シンボル、または数学シンボルの文字列、すなわち、数学コンテンツ、数学的表現、または数学的性質の何らかを表現するために使用されるいずれかのシンボルを包含するとして本開示において理解される。
【0051】
テキストコンテンツ及び数学コンテンツの特定の実施例が以下で更に詳細に提供される。
【0052】
更に、それらの図面において示される実施例は、左から右に記述された言語コンテキストにあり、したがって、異なる方向的フォーマットを有する記述された言語に対して位置へのいずれかの言及が適合されてもよい。
【0053】
本明細書で説明される様々な技術は概して、ポータブルコンピューティングデバイス及び非ポータブルコンピューティングデバイス上で、より具体的に、数学及びテキストを認識する目的のために、手書きを処理することに関連する。いわゆるオンライン認識技術を使用したデジタルインク手書き入力の認識に関して様々な実施形態が説明されると共に、認識を実行するためのリモートデバイスまたはサーバを伴うオフライン認識など、認識のための他の形式の入力が適用されてもよいことが理解されよう。
【0054】
本明細書で説明されるシステム及び方法は、タッチ感応画面(後に議論されるような)などの入力画面を介してコンピューティングデバイスへのユーザの自然な手書きスタイル入力の認識を利用することができる。
【0055】
以下で更に詳細に説明されるように、本発明の態様は、手書きにおける数学及びテキストを処理することに関する。方法は、手書きにおけるテキストシンボル及び数学シンボルの正確且つ信頼できる認識を可能にする、異なる性質の3つのシンボル分類、つまり、シンボル表現レベルにおける、構文レベルにおける、及びセマンティックレベルにおける分類に基づいている。
【0056】
より具体的に、方法は、デジタルインクの複数のストロークに対して手書き認識を実行することによって、シンボルを識別することと、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして少なくとも1つの第1のシンボルを分類するように、シンボルレベルにおいて第1の分類を実行することと、先述の少なくとも1つの第1のシンボルと先述の少なくとも1つの第2のシンボルとの間の空間的関係に基づいて、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして先述の少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボルを分類するように、構文レベルにおいて第2の分類を実行することと、少なくとも2つのシンボルの間で確立されたセマンティック接続に基づいて、前記第2の分類の結果を更新または確認するように、セマンティックレベルにおいて第3の分類を実行することと、先述の第3の分類の結果に少なくとも基づいて、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボルを認識することと、を伴ってもよい。
【0057】
図1は、本発明の特定の実施形態に従った、コンピューティングデバイスDV1のブロック図を示す。コンピューティングデバイス(または、デジタルデバイス)DV1は、コンピュータデスクトップ、ラップトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、携帯電話、スマートフォン、ウェアラブルコンピュータ、デジタルウォッチ、対話型ホワイトボード、グローバルポジショニングシステム(GPS)ユニット、エンタプライズデジタルアシスタント(EDA)、携帯情報端末(PDA)、またはゲームコンソールなどであってもよい。コンピューティングデバイスDV1は、少なくとも1つの処理要素の構成要素、何らかの形式のメモリ及び入力・出力(I/O)デバイスを含んでもよい。構成要素は、コネクタ、ライン、バス、リンクネットワーク、または当業者に対して既知のその他など、入力及び出力を通じて相互に通信する。
【0058】
より具体的に、コンピューティングデバイスDV1は、手書き(または、手描き)コンテンツINについての入力画面4を含み、手書きコンテンツINは、以下で更に説明されるように、テキストコンテンツ、数学コンテキスト、またはテキストコンテンツ及び数学コンテンツの混合であってもよい。入力画面4は、先述の入力画面上で(または、それを使用して)入力されたデジタルインクの複数のストロークSKを検出するために適切である。
【0059】
入力画面104は、タッチ感応画面または近接感応画面の形式においてユーザ入力を受信するための、抵抗性、表面弾性波、容量性、赤外線グリッド、赤外線アクリル投影、光学撮像、分散信号技術、音響パルス認識、または当業者に対して既知のいずれかの他の適切な技術などのいずれかの適切な技術を採用してもよい。入力画面4は、位置検出システムによって監視される非タッチ感応画面であってもよい。
【0060】
コンピューティングデバイス100も、手書きINなどのデータをコンピューティングデバイスDV1から出力するための少なくとも1つのディスプレイユニット(または、ディスプレイデバイス)2を含む。ディスプレイユニット2は、いずれかの適切な技術のスクリーンまたは同様のもの(LCD、プラズマ…)であってもよい。ディスプレイユニット2は、ユーザによって入力されたデジタルインクのストロークSKを表示するために適切である。
【0061】
入力画面4は、ディスプレイユニット2と同一位置にあってもよく、またはそれにリモートに接続されてもよい。特定の実施例では、ディスプレイユニット2及び入力画面4は、タッチスクリーンの一部である。
【0062】
図1に表されるように、コンピューティングデバイスDV1は、プロセッサ6及びメモリ8を更に含む。コンピューティングデバイスDV1はまた、メモリ8の一部としてまたはそれとは別に1つ以上の揮発性記憶素子(RAM)を含んでもよい。
【0063】
プロセッサ6は、ソフトウェア、特に、メモリ8に記憶されたソフトウェアを実行するためのハードウェアデバイスである。プロセッサ8は、いずれかのカスタムメイドプロセッサもしくは汎用プロセッサ、セントラルプロセシングユニット(CPU)、半導体方式マイクロプロセッサ(マイクロチップもしくはチップセットの形式にある)、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理回路、またはいずれかのそれらの組み合わせ、及び、より一般的には、当業者に対して既知であるように、ソフトウェア命令を実行するように設計されたいずれかの適切なプロセッサ構成要素であってもよい。
【0064】
メモリ8は、本開示の特定の実施形態に従った非一時的(または、不揮発性)コンピュータ可読媒体(または、記録媒体)である。メモリ8は、不揮発性記憶素子(例えば、ROM、EPROM、フラッシュPROM、EEPROM、ハードドライブ、磁気もしくは光学テープ、メモリレジスタ、CD-ROM、WORM、またはDVDなど)のいずれかの組み合わせを含んでもよい。
【0065】
メモリ8は、コンピューティングデバイスDV1によってリモートでアクセス可能である、サーバまたはクラウド方式システムにあるなど、コンピューティングデバイスDV1からリモートであってもよい。不揮発性メモリ8は、プロセッサ6に結合され、その結果、プロセッサ6は、メモリ8から情報を読み込み、メモリ8に情報を書き込むことが可能である。代替として、メモリ8は、コンピューティングデバイス8に統合される。
【0066】
メモリ8は、オペレーティングシステム(OS)10及び手書きアプリケーション(または、コンピュータプログラム)12を含む。オペレーティングシステム10は、アプリケーション12の実行を制御する。本出願は、本発明の特定の実施形態に従ったコンピュータプログラム(または、コンピュータ可読プログラムコード)を構成し(または、それを含む)、このコンピュータプログラムは、本発明の特定の実施形態に従った方法を実装するための命令を含む。
【0067】
本実施形態では、アプリケーション12は、適切な方式において取得された手書きINにおける数学及びテキストを処理するための命令を含む。本実施例では、処理されることになる手書きINは、以下で更に議論されるように、コンピューティングデバイス100の入力画面4を使用してユーザによって手書きされたデジタルインクのストロークSKであってもよい。変形例では、手での手書きINは、コンピューティングデバイスDV1によって取得されるが、入力画面4を通じて入力されない。
【0068】
図1に表されるように、不揮発性メモリ8は、予め定義されたシンボルのセット(または、データセット)ST1、予め定義されたシンボル認識ルールRL1のセット、予め定義された空間的構文ルールRL2のセット、及び予め定義されたセマンティックルールRL3のセットを含む、コンピューティングデバイス2によって取得された様々なデータを記憶するために適切である。メモリ8はまた、インク関連情報IF1及び/または埋め込み情報IF2を記憶してもよい。それらの特徴の性質及び使用は、以下で更に詳細に説明される。
【0069】
特定の実施形態に従った図2に示されるように、メモリ108に記憶されたアプリケーション12(図1)を稼働させるとき、プロセッサ6は、モジュール、つまり、第1の認識モジュールMD2、シンボル処理モジュールMD4、構文処理モジュールMD6、セマンティック処理モジュールMD8、及び任意選択で、事後処理モジュールMD12を実装する。
【0070】
第1の認識モジュールMD2は、デジタルインクの複数のストロークSKに対して手書き認識を実行することによって、シンボルSBを識別するように構成されてもよい。
【0071】
シンボル処理モジュールMD4は、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして識別されたシンボルSBから少なくとも1つの第1のシンボルSBaを分類するように構成されてもよい。この第1の分類は、第1の認識モジュールMD2によって識別されたシンボルSBに対して予め定義されたシンボル認識ルールRL1を個々に適用することによって実行されてもよい。
【0072】
構文処理モジュールMD6は、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして先述の少なくとも1つの第1のシンボルSBa以外の少なくとも1つの第2のシンボルSBbを分類するように構成されてもよい。この第2の分類は、先述の少なくとも1つの第1のシンボルSBa及び先述の少なくとも1つの第2のシンボルSBbに対し、先述の少なくとも1つの第1のシンボルSBaと先述の少なくとも1つの第2のシンボルSBbとの間の空間的関係を定義した予め定義された空間的構文ルールRL2を適用することによって実行されてもよい。
【0073】
セマンティック処理モジュールMD8は、第3の分類として、識別されたシンボルSBからの少なくとも2つのシンボルの間のセマンティック接続を確立し、先述のセマンティック接続を先述の第2の分類の結果と比較することによって、先述の第2の分類の結果を更新または確認するように構成されてもよい。
【0074】
コンピューティングデバイスDV1は、先述の第3の分類の結果に基づいて(または、少なくとも基づいて)、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボルSBを認識するように構成されてもよい。
【0075】
事後処理モジュールMD12は、処理モジュールMD4、MD6、及びMD8による認識が完了すると、ストロークSKに対して事後処理オペレーションを実行するように構成されてもよい。
【0076】
アプリケーション12は、特定の実施形態において後に説明されるように、本発明の方法のステップを実行するために、上記言及されたモジュールMD2~MD12を実装するようにプロセッサ6を構成する命令を含む。
【0077】
モジュールMD2~MD12は各々、1つ以上のニューラルネットワークであってもよく、または1つ以上のニューラルネットワークを含んでもよい。本実施例では、各々のモジュールMD4、MD6、及びMD8は、ニューラルネットワークによって実行される。
【0078】
コンピューティングデバイスDV1のモジュールMD2~MD12の構成及びオペレーションは、図面を参照して以下に説明される特定の実施形態においてより明らかになるであろう。図2に示されるようなモジュールMD2~MD12は、本発明の実施例の実施形態を表すにすぎず、他の実施態様が可能であることが理解されよう。
【0079】
本発明の方法のステップごとに、コンピューティングデバイスDV1は、先述のステップを実行するように構成された対応するモジュールを含んでもよい。
【0080】
図1及び2において例示されたコンピューティングデバイスDV1によって実装される方法はここで、本発明の特定の実施形態に従った、図3~15を参照して説明される。より具体的に、コンピューティングデバイスDV1は、メモリ8に記憶されたアプリケーション12を実行することによってこの方法を実装する。
【0081】
コンピューティングデバイスDV1が手書きINを取得し、取得された手書きINにおける数学を検出し、より具体的に、先述の手書きINにおける数学コンテキスト及びテキストコンテキストを認識するように手書き認識アプリケーション12を実装する、実施例のシナリオが考えられる。
【0082】
より具体的に、取得ステップS2(図3)では、コンピューティングデバイスDV1は、デジタルインクの形式において手書きINを取得する。取得された手書き入力INは、デジタルインクの複数のストロークSKによって形成される。それらのストロークSKは、手書きINのデジタル表現を構成する。取得されたストロークSKのセットは、それぞれの基線20に沿って延在する少なくとも1つの手書き線を形成する。
【0083】
よって、コンピューティングデバイスDV1は、図4に示されるように、ディスプレイ2上で取得されたストロークSTを表示する。
【0084】
既に示されたように、各々の入力ストロークSKは、少なくともストローク開始位置、ストローク終了位置、並びにストローク開始位置及びストローク終了位置を接続する経路によって特徴付けられる。したがって、例えば、文字「i」(単語「point」内の)の最上部に位置付けられたドットは、それ自体で単一のストロークを構成する。
【0085】
本実施例では、S2において取得された入力ストロークSKが、図4に示されるように、以下の手書きフレーズを形成する:
「let p b the point (1/2, 1/2) ∈ R, and let L(c)」
【0086】
理解することができるように、取得された手書きINは、基線20に沿って(または、実質的に沿って)延在する。取得された手書きINは、このケースでは、記述された言語(英語)内の表現またはフレーズであり、手書きされた線を形成し、以下で更に説明されるような様々なシンボルを含む。本実施例では、テキストコンテンツは、単一の基線であると共に、数学コンテンツは、単一または複数の基線であることが想定される。しかしながら、これは、実施例を構成するにすぎず、言語、スタイル、フォーマットなどに関して多数の他のタイプ、コンテンツ、及び形式の手書きが可能であることが考えられるべきである。特に、相互に対するストロークSKの様々な空間的配列が考慮されてもよい(例えば、様々な手書き方向、サイズ)。
【0087】
本ケースでは、デジタルインクの複数のストロークSTは、コンピューティングデバイスDV1の入力画面104を使用してディスプレイ2の入力エリア内でユーザによって入力されることが想定される。ユーザは、手もしくは指、または入力画面4に使用するのに適切なデジタルペンもしくはスタイラスなどのいくつかの入力機器により入力ストロークSKを入力することができる。ユーザはまた、入力画面4の近隣での動きを検知するように構成された手段が使用されている場合に、入力画面4の上でジェスチャを行うことによって、またはマウスもしくはジョイスティックなどのコンピューティングデバイスDV1の周辺デバイスにより入力ストロークSKを入力することができる。
【0088】
しかしながら、コンピューティングデバイスDV1は、いずれかの他の適切な方式において手書きINを取得することができることが理解されるべきである。
【0089】
本実施例では、コンピューティングデバイスDV1は、オンライン手書き認識を実行するように、それらが入力画面4でユーザによって入力されるときに、ストロークSKを取得する。コンピューティングデバイスDV1は、線レベルにおいて手書き(テキストコンテンツ及び数学コンテンツ)を検出及び処理するが、様々な実施態様が可能である。以下で更に説明されるように、よって、経時的にストロークSKが相互に対してどのように入力されるかを特徴付ける時間的情報が、後の処理のためにコンピューティングデバイスDV1によって取得される。
【0090】
しかしながら、オフライン手書き認識と同様の方式において、すなわち、それによって手書きの静的表現を形成する手書きの画像に対して本発明の概念を実行することによって、本発明が適用されてもよいことに留意されるべきである。よって、経時的にストロークが相互に対してどのように入力されるかに関する時間的情報は、直接利用可能でない。よって、そのような時間的情報を使用することなく、または代わりに、画像からストロークを回復し、いずれかの適切な人工的方法において時間的情報を生成することによって、例えば、手書き画像及びそれらの既知の時間的情報を使用してニューラルネットワークを訓練することによって、本発明の概念が適用されてもよい。
【0091】
識別するステップS4(図3及び5)では、コンピューティングデバイスDV1は、デジタルインクの取得されたストロークSKに対して手書き認識を実行することによって、シンボルSBを識別する。手書き認識S4は、第1の認識モジュールMD2によって実行され、第1の認識モジュールMD2は、認識分類器であってもよく、または認識分類器を含んでもよい。
【0092】
図5は、本実施例における、ストロークSKに基づいてコンピューティングデバイスDV1によって識別された(S4)シンボルSBのシーケンスを示す。
【0093】
各々のシンボルSBは、1つもしくは複数の入力ストロークによって、または少なくともストロークSKの一部によって形成される。加えて、各々のシンボルSBは、その中でそれが使用されるシンボル及びコンテキストの性質に応じて、テキストシンボルまたは数学シンボルのいずれかであってもよい。
【0094】
方法の目的は、識別されたシンボルSBの中で、数学シンボルをテキストシンボルと区別することである。本ケースでは、識別されたシンボルSBは、少なくとも1つのテキストシンボル及び少なくとも1つの数学シンボルを含むことが考えられる。しかしながら、数学コンテンツのみ、またはテキストコンテンツのみが取得された手書きINにおいて認識されるケースで、本発明が適用されてもよいことにも留意されるべきである。
【0095】
手書き認識S4を実行するために、前に言及されたような予め定義されたシンボルPSBのセット(または、データセット)STが使用される。より具体的に、S2において取得されたストロークSKは、予め定義されたシンボルPSBのセットSTと比較され、複数のストロークSKによって形成された各々のシンボルSBは、予め定義されたシンボルPSBのセットST内のそれぞれ1つとしてS4において識別される。言い換えると、コンピューティングデバイスDV1は、S2において取得された様々なストロークSK(ストロークの一部、全ストローク、またはストロークのグループのいずれかを取る)を、データセットSTにおいて定義されたようないずれかの予め定義されたシンボルPSBと一致させる。この目的のために、コンピューティングデバイスDV1は、予め記憶されたデータセットSTを調査し、データセットSTと取得されたストロークSKとの間で様々な比較を行う。
【0096】
したがって、S4において取得することができる各々のシンボルSBは、データセットSTからの学習可能表現を有するということになる。
【0097】
各々の予め定義されたシンボルPSBは、データセットST内で一度のみ発生する。予め定義されたシンボルPSBは各々、いわゆる、純粋なテキストシンボル(すなわち、テキストとして唯一もしくはほとんどテキストとして使用されるシンボル)、いわゆる、純粋な数学シンボル(すなわち、数学として唯一もしくはほとんど数学として使用されるシンボル)、またはコンテキストに応じて数学もしくはテキストとして使用することができる混合テキスト/数学シンボルであってもよい。以下で更に示されるように、各々の予め定義されたシンボルPSBは、シンボル認識ルールRL1によって埋め込み情報IF2が割り当てられてもよく、埋め込み情報IF2は、先述の予め定義されたシンボルPSBがテキストまたは数学のいずれかである信頼スコアを含む。
【0098】
これが各々のケースに応じて可変であってもよいことを念頭に、いずれかの適切な空でないデータセットSTが使用されてもよい。データセットSTは、数学及びテキスト特性を考慮するようにカスタム構築されてもよい。データセットSTは好ましくは、数学からのシンボル及び複数のスクリプトを含めることによって、数学及びテキストの区別を促進するように構築される。データセットSTは、いずれかの言語またはスクリプトからのシンボル、数字、アクセント、複数の文字のアクセント変形、数学演算子、数学シンボル、及び数学的表現において使用されることが多いギリシャ文字などを含んでもよい。
【0099】
このデータセットSTは、例えば、遅延したストローク、シンボル文字ストローク(例えば、アクセント、マルチストローク文字、及び/またはスプリアスストローク)を検出するためにそこに新たなシンボルを含めることによって、人によるインクの操作及び雑音に対してシステムをロバストにさせるように設計されてもよい。
【0100】
本実施例では、S4におけるシンボル認識のために使用されるデータセットSTが図6に示される。特に、データセットSTは、以下のシンボル(または、以下のシンボルタイプの少なくとも1つもしくはいくつか)を含んでもよい:
-数字(例えば、「0」~「9」)、
-アルファベット文字(例えば、「a」~「z」及び「A」~「Z」)、キリル文字、漢字などのいずれかの言語またはスクリプトからの文字、
-数学演算子(例えば、n変数数学演算子)及び数学シンボル(例えば、「+」、「=」、「-」、「*」、「(」、「)」、「[」、「]」、「{」、「}」)、
-例えば、ギリシャ文字及びヘブライ文字などの文字に基づいたシンボル、
-バー及び矢印などの文字修飾子、
-以下のものなどの上記シンボルの少なくとも2つのいずれかの組み合わせ
・sin、cos、tan、limなどの標準的数学関数を定義したアルファベット文字の組み合わせ、
・可変名、単位などのような所与のコンテキストにおけるいくつかの数学的特性を保持した組み合わせ、及び
・行列、分数、上付き文字/下付き文字、多線式などのような空間的配列に加わるシンボル。
【0101】
図6のデータセットSTにおいて理解することができるように、いくつかの予め定義されたシンボルPSBは、それらが数学コンテキストにおいて通常使用されるので、本データセットSTにおいて純粋な数学シンボル(例えば、「∈」、「=」、「+」)と見なされてもよい。
【0102】
識別するステップS4においてシンボルSBを識別するために、コンピューティングデバイスDV1は、例えば、逐次分類器を使用して、いずれかの適切な方式において取得されたストロークSKに対して手書き認識を実行してもよい。S4における各々の認識されたシンボルSBは、方法における後の使用のために、認識の信頼性または関連性のレベルを表すそれぞれの認識コストと結合されてもよい。異なるユーザが僅かな変動により同一のシンボルを自然に記述することがあることを理由に、S4における手書き認識において生み出される結果は、常に確かではない。シンボル分類器は好ましくは、各々のシンボルを入力することができると共に、正確なシンボルまたは意図したシンボルとしてなおも各々のシンボルが認識される、様々な方法に適合することが可能である。
【0103】
本ケースでは、アプリケーション12は、手書き認識を実行するようにS4においてシンボル分類器として動作する、第1の認識モジュールMD2を含む。代わりに、第1の認識モジュールMD2は、適切な通信リンクを通じてコンピューティングデバイスDV1によってリモートアクセス可能である、図1に表されたようなサーバSV1など、コンピューティングデバイスDV1からリモートの手書き認識システムと通信するためのモジュールであってもよい。
【0104】
第1の認識モジュールMD2によって実行される手書き認識処理の性質及び実施態様は、各々のケースに応じて変化してもよい。手書き認識は、コンピューティングデバイスDV1上で完全にローカルに、または、例えば、リモートサーバSV1(図1)を使用して少なくとも部分的にリモートで実行されてもよい。
【0105】
特徴抽出ステップS6では、コンピューティングデバイスDV1は、各々のシンボルSKを形成するデジタルインクを表すインク関連情報F1を取得するように、識別されたシンボルに対して特徴抽出を実行する。言い換えると、インク関連情報IF1は、本ケースでは、関連するシンボルSBがどのように手書きされるかを表す。この特徴抽出ステップS6は、識別するステップS4の一部として、または識別するステップS4の少なくとも部分的に前に実行されてもよい。インク関連情報IF1は、次の分類処理S10(図3)の間に後の使用のためにS6において取得される。
【0106】
本実施例では、特徴抽出ステップS6の間、コンピューティングデバイスDV1は、S4において識別されたシンボルSBごとに、先述のシンボルを形成する各々のストロークSKに基づいて、インク関連情報IF1を計算する。シンボルSBごとに、関連するインク関連情報IF1は、
-先述のシンボルSBを形成する1つ以上のストロークSKの固有の特質を特徴付けるシンボル情報IF1aと、
-複数のストロークSKの少なくとも1つのそれぞれの順序付けに従って、先述のシンボルSBを形成する1つ以上のストロークSKと空間的に関連する、少なくとも1つの他の(または、隣接)ストロークSKを特徴付けるコンテキスト情報IF1bと、
を含んでもよい。
【0107】
S6において取得されたインク関連情報IF1は、数学シンボル候補またはテキストシンボル候補のいずれかとして各々のシンボルSBを分類するために(以下で更に議論されるように)、少なくとも次の第2の分類S16及び第3の分類S18において、場合によっては、第1の分類S12においても使用されてもよい。
【0108】
より具体的に、シンボル情報IF1aは、手書きINにおける周囲のインクに関係なく、関連するシンボルSK自体、すなわち、1つ以上の構成するストロークSKのその固有の特質を特徴付ける。シンボル情報IF1aは、以下のカテゴリ:分類特徴、シンボル位置的特徴、及びシンボル記述特徴、のうちのいずれかの1つ(または、全て)を含んでもよい。
【0109】
上記言及された分類特徴は、手書き認識S2の間に認識分類器(第1の認識モジュールMD2)によってそれぞれのシンボルSBに割り当てられた認識コスト(複数可)を含む。インクまたはシンボルを処理するために追加の分類器が使用される場合(基線に対する非基線ストロークラベリングなど)、各々のシンボルSBと関連して、更なるコストが分類特徴に追加されることがある。
【0110】
上記言及されたシンボル位置的(または、空間的)特徴は、基線20に対する関連するシンボルSBの位置(例えば、基線からの高さ距離、基線の最初からの距離…)に関連する情報を含む。例えば、本実施例では(図5~6)、表現「R」内のシンボル「2」は、それが基線20からの閾値距離を上回ることを理由に、上付き文字として特徴付けられてもよく、認識されてもよい。基線20は、例えば、手書き線における全てのストロークSKを分析することによって、いずれかの適切な方式によって計算されてもよい。手書き線の特定の領域内、すなわち、関心のストロークまたはシンボルに近接した一部のストロークSKのみを分析することによって、局所的基線も計算されてもよい。この局所的基線は、線内の、特に、多数のストロークを有する線内の下付き文字及び上付き文字のような逸脱をより良好に検出する、局所的変動の捕捉を促進することができる。関心の特定の領域内の全てのストロークの重心の平均である線を計算することによって、基線20または局所的基線を計算するためのアルゴリズムを使用することが可能である。
【0111】
上記言及されたシンボル記述特徴は、所与のシンボルSKに包含されたストロークSKごとの記述的特徴を含む。そのような情報は、例えば、関連するシンボルSK及びその周囲のバイナリビットマップまたはポイントカウントビットマップを含んでもよい。シンボル記述特徴はまた、シンボルのデジタルインクからコンピューティングデバイスDV1によって計算された手細工の特徴、例えば、ストロークまたはストロークの一部の最小、最大、及び中間を含んでもよい。
【0112】
更に、前に示されたように、コンテキスト情報IF1bは、複数のストロークSKの少なくとも1つのそれぞれの順序付けに従って、先述のシンボルSBを形成する1つ以上のストロークSKと空間的に関連する、少なくとも1つの他の(または、隣接)ストロークSKを特徴付ける。コンテキスト情報IF1bは、1つ以上の他の隣接シンボルSKとの関心のシンボルSKの相対的特徴を特徴付けるシンボルコンテキスト特徴を含んでもよい。
【0113】
ストロークSKの様々な順序付けは、コンテキスト情報IF1bを生成するために使用されてもよい。例えば、コンピューティングデバイスDV1は、シンボルSKごとのコンテキスト情報IF1bを定義するように、以下の順序付け:シンボル分類デフォルト順序(すなわち、どのシンボルSBが第1の認識モジュールMD2によってS4において認識されるかに従ったシンボル出力順序)、取得された手書きINとの各々のシンボルSBの相対的位置を表す空間的順序(例えば、基線20に沿ったX位置)、並びに各々のシンボルSBが入力された(例えば、シンボルをインデックス付け及びソートするための各々のシンボルSKの直近のストロークSKを使用して)相対的時間または相対的順序を表す時間的順序、のいずれかの1つを選択してもよい。いずれかの選択された順序付けについて、上記言及されたシンボルコンテキスト特徴は、少なくとも1つの他の隣接する特徴に関して、シンボルSBごとに計算されてもよい(例えば、関心のシンボルの直前のストローク及び直後のストロークを考えて)。
【0114】
前に示されたように、本ケースでは、ストロークSKは、ストロークSKが相互に対して手書きされた時間的順序を示す時間的情報と共に、オンライン手書きとしてS2(図3)において前に取得されることが想定される。したがって、上記言及されたコンテキスト情報は、S4において認識されたシンボルSBごとに、複数のストロークSKの少なくとも時間的順序に従って、先述のシンボルSBを形成する1つ以上のストロークSKと空間的に関連する、少なくとも1つの隣接ストロークSKを特徴付けることができる。
【0115】
シンボルコンテキスト特徴は、例えば、以下:
-関心のシンボルと少なくとも1つの隣接するシンボルとの間の共有されたストロークを表す共有ストローク情報と、
-少なくとも1つの隣接するシンボルに対する関心のシンボルの相対的変位(例えば、基線20の方向Xに沿った、及び/またはXに垂直な方向Yに沿った)を表す変位情報と、
-少なくとも1つの隣接するシンボルに対する関心のシンボルの重なり(例えば、基線20の方向Xに沿った、及び/またはXに垂直な方向Yに沿った)を表す重なり情報と、
-関心のシンボル及び少なくとも1つの隣接するシンボルのそれぞれの質量中心の間の距離を表す距離情報と、
のうちのいずれかの1つ(または、全て)を含んでもよい。
【0116】
シンボルコンテキスト特徴は、草書体テキスト、シンボルの間の空間、下付き文字及び上付き文字のような空間的関係、数学シンボルの間の分数など、様々なタイプのシンボル及び手書きスタイルを捕捉することができる。
【0117】
上記から理解することができるように、対応するストロークSKに基づいて各々の識別されたシンボルSBからステップS6(図3)において抽出されたインク関連情報IF1は、各々のケースに応じた様々な性質のものであってもよい。よって、シンボル情報IF1a及びコンテキスト情報IF1bは、実施例として提供されるにすぎず、他の実施態様が可能である。
【0118】
分類処理S10(図3及び7)では、以下で更に説明されるように、コンピューティングデバイスDV1は次いで、S6において計算されたインク関連情報IF1に基づいて、及び各々の取得されたシンボルSBに帰属する埋め込み情報IF2に基づいて、テキストシンボル候補または数学シンボル候補のいずれかとしてS4において識別された各々のシンボルSBを分類する。分類処理S10は、それぞれ3つの異なるレベルにおいて分類を実行する、すなわち、シンボル表現レベルにおいて第1の分類S12、構文レベルにおいて第2の分類S14、及びセマンティックレベルにおいて第3の分類S18を実行するために、3つの異なるエクスパートモジュール、すなわち、処理モジュールMD4、M6、及びMD8を採用する。
【0119】
より具体的に、第1の分類S12では、コンピューティングデバイスDV1は、シンボルSBに対して予め定義されたシンボル認識ルールRL1を個々に適用することによって、少なくとも第1の閾値TH1に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして識別されたシンボルSBから、少なくとも1つの第1のシンボル、上記SB1を分類する。
【0120】
第1の分類S12は、各々の関心のシンボルSBのコンテキストの分析を必要としないシンボルレベル分析に基づいている。したがって、S6において計算されたシンボルコンテキスト情報は、第1の分類S12において使用されない。シンボルSBは、それらの固有の特質に基づいて、例えば、S6において取得されたシンボル情報IF1aに基づいて分類される。特定の実施例では、S6において取得されたインク関連情報IFは、第1の分類S12において使用されない。
【0121】
実質上、コンピューティングデバイスDV1は、ステップS12において、相対的に良好な程度の信頼度を有するテキストシンボル候補または数学シンボル候補のいずれかとして分類することができる各々のシンボルSBを探索する。
【0122】
前に示されたように、S4において識別された各々のシンボルSBは、データセットSTの予め定義されたシンボルPSB(図6)の1つとして認識される。よって、識別されたシンボルSBの各々は、数学としてほとんど使用される可能性が高い純粋な数学シンボルSB、テキストとしてほとんど使用される可能性が高い純粋なテキストシンボルSB、またはコンテキストに応じて数学もしくはテキストのいずれかとして使用することができる曖昧な混合数学/テキストシンボルであってもよい。第1の分類S12は、識別されたシンボルSBの中で、純粋なテキストシンボルまたは純粋な数学シンボルになる各々のシンボルを、すなわち、それがテキストであり、またはそれが数学である、第1の閾値TH1以上の尤度を有する各々のシンボルを識別することを可能にする。純粋な数学シンボルはなお、何らかの非常に特有の状況においてテキストとして使用されることになる、非常に低い、ゼロでない尤度を有することができ、純粋なテキストシンボルに対しては、逆もまたそうであることに留意されるべきである。したがって、第1の閾値TH1は、いずれかの適切な確率値、例えば、90%~100%、例えば、約95%において予め定義されてもよい。
【0123】
よって、第1の分類S12は、メモリ8に予め記憶された予め定義されたシンボル認識ルールRL1を適用することによって、第1の結果RS1として、相対的に良好な信頼スコアを有する第1のシンボルSB1と称される、1つ以上のシンボルの初期のテキスト/数学ラベリング(または、分類)を生み出す。この第1の結果RS1では、よって、それらの第1のシンボルSB1の各々は、相対的に高い、すなわち、少なくとも予め定義された第1の閾値TH1到達するそれぞれの信頼スコアを有する数学シンボル候補またはテキストシンボル候補のいずれかとして分類される。以下で更に説明されるように、それらの初期の分類及びそれぞれの信頼スコアは、分類処理S10において後に更新されてもよい。
【0124】
本実施例では、予め定義されたシンボル認識ルールRL1は、予め定義されたシンボルPSBのセットの各々の1つに、先述の予め定義されたシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む埋め込み情報IF2を帰属させる(または、割り振る)。言い換えると、埋め込み情報IF2は、データセットSTの予め定義されたシンボルPSBごとに、関連する信頼スコアに沿ったテキストまたは数学のいずれかとして分類を含む埋め込み情報IF2を定義する。それらの埋め込み情報IF2は、回帰型ニューラルネットワークを使用して予め学習されてもよい。データセットSTの各々の予め定義されたシンボルPSBの信頼スコアは、テキスト表現または数学的表現における発生のシンボルの自身の頻度に基づいて、及びシンボルの固有の特質に基づいて予め計算されてもよい。訓練処理の間、テキスト/数学分類及び関連する信頼スコアは、例えば、ニューラルネットワークの逆伝播された勾配に基づいて、手書きインクサンプルにより反復的に更新されてもよい。
【0125】
予め定義されたシンボル認識ルールRL1は、データセットSTの各々の予め定義されたシンボルPSBに、テキストまたは数学としての分類に有用な埋め込み情報IF2における追加の情報を帰属させてもよい。それらの追加の補完情報は、数学シンボル及びテキストシンボルに対するいずれかの適切な区別できる言語情報を含んでもよい。
【0126】
同一の埋め込み情報IF2、または少なくとも同一のテキスト/数学分類及び同一の関連する信頼スコアを共有する同一のシンボルグループの一部として、同様の予め定義されたシンボルPSBが定義されてもよい。例えば、同様の性質のものであるシンボル「(」、「[」、及び「{」は、同一の埋め込み情報IF2を共有してもよい。埋め込み情報IF2のサイズは、ニューラルネットワークの性能を最大化し、計算時間及びリソースを最小化するように、各々のケースに応じて調節されてもよい。
【0127】
よって、本実施例では、第1の分類S12(図3)の間、コンピューティングデバイスDV1は、S4において識別されたシンボルSBごとに、シンボル認識ルールRL1によって先述のシンボルに帰属した埋め込み情報IF2を決定してもよく、それらの埋め込み情報IF2は、先述の予め定義されたシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む。コンピューティングデバイスDV1は次いで、第1の閾値TH1を達成した(以上の)信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして少なくとも1つの第1のシンボルSB1を識別するように、埋め込み情報IF2において定義されるような各々の識別されたシンボルSBのそれぞれの信頼スコアを第1の閾値TH1と比較してもよい。
【0128】
特定の実施例では、インク関連情報IF1及び埋め込み情報IF2は、それぞれの第1の分類、第2の分類、及び第3の分類S12~S18を実行するために、情報セットまたは情報ベクトルとして処理モジュールMD4、MD6、及びMD8に共にフィードされる。
【0129】
第1の分類S12が、数学のみにおいて(もしくは、ほとんど数学において)発生し、またはテキストのみにおいて(もしくは、ほとんどテキストにおいて)発生するシンボルSBを識別することを可能にするので、良好な信頼度による部分的テキスト/数学ラベリングを達成することができる。ほとんどのケースでは、一部のシンボルSBは、混合数学/テキストシンボルであり、よって、この段階においてはそれぞれの信頼スコアによるテキスト/数学分類が割り振られない。
【0130】
図7に示される実施例では、第1の分類S12の間、シンボル「∈」及び「R」は、それらのシンボルに対して予め定義されたシンボル認識ルールRL1を個々に適用することによって、少なくとも第1の閾値TH1に到達するそれぞれの信頼スコアを有する数学シンボル候補として分類される。よって、それらのシンボル「∈」及び「R」は、本発明の意味により第1のシンボルSB1を構成する。それらのシンボル「∈」及び「R」は、ほとんどの場合、数学的意味において使用される公知の数学シンボルであり、よって、数学シンボル候補になる相対的に高い信頼スコアを有する
【0131】
図8は、第1の分類S12の間に第1のシンボルSB1として分類することができる純粋な数学シンボルの他の実施例を表す。
【0132】
純粋なテキストシンボルとして考えられるシンボルは、数学では通常使用されない、例えば、通貨シンボル(「$」、「
【数1】
」など)、中点、空間(単語の間の)、引用符""、セミコロン「;」のようなテキスト句読点などを含んでもよい。
【0133】
変形例では、第1の分類S12(図3)の間、S4において識別された各々のシンボルSBは、予め定義されたシンボル認識ルールRL1を個々に適用することによって、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして分類される。言い換えると、時間的信頼スコアを有する時間的テキスト/数学分類は、曖昧な混合テキスト/数学シンボルを含む各々のシンボルSBに帰属してもよく、次の分類処理S10の間に後に更新されてもよい。よって、曖昧な混合テキスト/数学シンボルは、純粋なテキスト及び純粋な数学シンボルと比較して、この段階においてより弱いテキスト/数学分類信頼スコアが割り振られる。したがって、第1の分類S12によって生み出された第1の結果RS1は、少なくとも第1の閾値TH1に到達するそれぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして識別された少なくとも1つの第1のシンボルSB1に加えて、他のシンボルSBごとにそれぞれの信頼スコアを有する時間的テキスト/数学分類を含んでもよい。
【0134】
この変形例では、よって、S4において識別された各々のシンボルSBは、予め定義されたシンボル認識ルールRL1に基づいて、先述のシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む埋め込み情報IF2に帰属する。
【0135】
次いで、関連する信頼スコアを有する識別されたシンボルSBの各々についてのテキストシンボルまたは数学シンボルのいずれかとしての適切な分類を決定するように、第1の分類の結果RS1に基づいて、分類処理S10の一部として反復処理S14(図3)が実行される。初期のテキスト/数学分類またはS12において取得されたラベリングはここで、構文分析及びセマンティック分析に基づいて、手書きIN内のテキスト/数学分類を拡張する(または、改善する)ために使用される。
【0136】
より具体的に、第2の分類S16及び第3の分類S18は、異なる方式にあるが、関心の各々のシンボルSBのコンテキストを考慮に入れた分析に基づいている。したがって、S6において計算されたシンボルコンテキスト情報IF1bは、第2の分類S16及び第3の分類S18において入力として使用される。
【0137】
この反復処理S14は、以下で更に説明されるように、その各々が1回のみ実行することができ、または適切な回数で繰り返すことができる、第2の分類S16及び第3の分類S18を含む。
【0138】
図3に示されるように、S12において識別された各々の第1のシンボルSB1の少なくとも初期のテキスト/数学分類、及びそれらのそれぞれの信頼スコアを含む結果RS1は、第2の分類S16を実行するように、構文処理モジュールMD6にフィードされる。
【0139】
第2の分類S16では、コンピューティングデバイスDV1は、先述の少なくとも1つの第1のシンボルSB1及び少なくとも1つの第2のシンボルSB2に対して、先述の少なくとも1つの第1のシンボルSB1及び先述の少なくとも1つの第2のシンボルSB2の間の空間的関係を定義する、あらかじめ定義された空間的構文ルールRL2を適用することによって、識別されたシンボルSBの中から、先述の少なくとも1つの第1のシンボルSB1の他に、少なくとも1つのSB2と記される第2のシンボルを、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補として分類する。
【0140】
実質上、コンピューティングデバイスDV1は、予め定義された空間的構文ルールRL2に基づいて、それらが共に共有している構文接続の結果として、S12において識別された第1のシンボルSB1のうちの1つ以上との予め定められた空間的関係を有するシンボルSB2を探索する(S16)。この構文分析に基づいて、先述の第1のシンボルSB1以外の1つ以上のいわゆる第2のシンボルは、テキストシンボル候補または数学シンボル候補のいずれかとして分類されてもよい。
【0141】
空間的構文ルールRL2は、構文接続に従って、数学シンボル及び/またはテキストシンボルと少なくとも1つの他のシンボルとの間の空間的関係を定義する。より具体的に、各々の空間的構文ルールRL2は、以下で更に実施例において説明されるように、予め定義された数学シンボルまたはテキストシンボルと少なくとも1つの他のシンボルとの間の空間的関係を定義することができる。
【0142】
第2の分類S16の間、よって、空間的構文ルールRL2は、数学シンボル候補またはテキストシンボル候補のいずれかとして、1つ以上の第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他の第2のシンボルSB2を識別するように、各々の第1のシンボルSB1に対して適用される。より具体的に、空間的構文ルールRL2は、第1の分類S12において第1のシンボルSB1に割り当てられた時間的信頼スコアを考慮に入れて、必要な場合にそれらを更新する、全てのシンボルSBに対して適用されてもよい。
【0143】
空間的構文ルールRL2は、目前のルールのタイプに応じて単一の第1のシンボルSB1または第1のシンボルSB1のグループに適用されてもよい。よって、空間的に関連するシンボルのグループを集合的に識別及び分類することができる。
【0144】
よって、この第2の分類S16は、それらがそれと構文接続を共有する他のシンボルSB2を識別及び分類するように相対的に良好な程度の信頼度により識別された第1のシンボルSB1に主に焦点を当てることによって、S12において取得された部分的(または、少なくとも部分的)テキスト/数学分類を拡張または統合することを可能にする。よって、効率的且つ信頼できる方式において、より曖昧なシンボル(純粋なテキストシンボル及び数学シンボル以外の)のテキスト/数学ラベリングを達成することができる。
【0145】
空間的構文ルールRL2は、
少なくとも2つの数学シンボルの間の空間的関係を定義した数学空間的構文ルールRL2aと、
少なくとも2つのテキストシンボルの間の空間的関係を定義したテキスト空間的構文ルールRL2bと、
のうちの少なくとも1つを含んでもよい。
【0146】
本ケースでは、空間的構文ルールRL2は、数学空間的構文ルール及びテキスト空間的構文ルールを含むことが想定されよう。
【0147】
数学シンボルのケースでは、様々な空間的関係が考えられてもよい。空間的構文ルールRL2は、例えば、基本シンボルと下付き文字との間(例えば、基本シンボルの右下にある)との間、基本シンボルと上付き文字との間(例えば、基本シンボルの右上にある)、分数罫の上及び下にある分子/分母部分を有する分数、集合を表すペア内で発生する括弧などを定義することができる。
【0148】
特定の実施例では、空間的構文ルールRL2aは、以下:
-分子成分及び分母成分を分離する分数罫を含む分数と、
-1つ以上の基本シンボルの左上及び左下にそれぞれ位置付けられた1つ以上のシンボルと関連付けられた上付き文字及び下付き文字と、
-1つ以上の基本シンボルの上及び下にそれぞれ位置付けられた1つ以上のシンボルと関連付けられたオーバスクリプト及びアンダスクリプトと、
-表形式に配列されたシンボルの複数の行及び列と関連付けられた行列(行列は、各々のケースに応じて、シンボルをグループ化する中括弧を有してもよく、または中括弧を有さなくてもよい)と、
のような空間的関係を定義する。
【0149】
更なる構文処理モジュール(構文エクスパート)MD6を強化し、シンボルの間の更なる空間的関係に適合するよう、例えば、Latex数学スクリプティングからそれらを繰り下げることによって、前下付き文字、前上付き文字のような更なる数学空間的構文ルールRL2a、平方根シンボルのような周囲ルールなどが考えられてもよい。
【0150】
テキストのケースでは、空間的構文ルールRL2は、例えば、句読点、中点、参照符号などに基づいてテキストシンボルの間の空間的関係を定義することができるが、他の実施例が可能である。
【0151】
第2の分類S16を実行するために、構文処理モジュール(構文エクスパート)MD6は、S12においてシンボル処理モジュールMD4によって数学として分類された各々の第1のシンボルSB1を識別し、それらのシンボルが数学空間的構文ルールRL2aを満たす場合、数学としても、少なくとも1つの他の隣接(または、空間的に関連する)シンボルSB2を数学としてラベリングする。同様に、構文処理モジュール(構文エクスパート)MD6は、S12においてシンボル処理モジュールMD4によってテキストとして分類された各々の第1のシンボルSB1を識別し、それらのシンボルがテキスト空間的構文ルールRL2bを満たす場合、テキストとしても、少なくとも1つの他の隣接(または、空間的に関連する)シンボルSB2をテキストとしてラベリングする。
【0152】
言い換えると、第2の分類S16は、
-それぞれの数学シンボル候補として、第1の分類S12において数学シンボル候補として識別された少なくとも1つの第1のシンボルSB1との予め定義された空間的関係を有する少なくとも1つの他の第2のシンボルSB2を識別するために、数学空間的構文ルールRL2aを適用することと、
-それぞれの数学シンボル候補として、第1の分類において数学シンボル候補として識別された少なくとも1つの第1のシンボルSB1との予め定義された空間的関係を有する少なくとも1つの他の第2のシンボルSB2を識別するために、テキスト空間的構文ルールRL2bを適用することと、
のうちの少なくとも1つを含む。
【0153】
第2の分類S16では、構文処理モジュール(構文エクスパート)MD6は実際に、全てのシンボルSBを検査し、予め定義された(数学またはテキスト)空間的構文ルールRL2の1つを満たす2つ以上のシンボルの各々のセットを識別し、それに従って、それらのシンボルをラベリングする。
【0154】
本実施例における図9に示されるように、第1の分類S12の間、第1の分類S12において数学シンボル候補として前に分類された第1のシンボル「∈」及び「R」に空間的構文ルールRL2が適用される。空間的構文ルールRL1において指定されるように、シンボル「∈」の前及び後に(それに属する)数学シンボルが通常は存在し、シンボル「R」に関連付けられた数学上付き文字が通常は存在する(実数のセット)。よって、コンピューティングデバイスDV1は、S16において、数学シンボル候補として、シンボル「∈」に先行する閉括弧「)」及びシンボル「R」の右上にある上付き文字「2」を分類する。特に、シンボル「2」は、数学シンボルに対する上付き文字として現れる。故に、それは、上付き文字ルールRL1のおかげで数学としてラベリングされる。この閉括弧「)」に対して予め定義された空間的構文ルールRL2を適用することによって、閉括弧「)」の前に空間的に関連する開括弧「(」も、S16において一致するシンボル候補として分類される。閉括弧「)」が独立して正常に「(」でないことがあるので、適用可能な構文ルールRL2は、閉括弧「)」に空間的に関連するとして開括弧「(」を定義する。
【0155】
同様に、別の空間的構文ルールRL2を適用することによって、コンピューティングデバイスDV1は、S16において、数学シンボル候補として、それらの括弧内の各々の分数の分子、分母、及び分数罫を分類する。それぞれの信頼スコアが計算され、S16において分類された各々の第2のシンボルSB2に割り当てられる。
【0156】
図10は、別の例示的な実施例として、構文処理モジュールMD6が、構文接続と空間的に関連するシンボル、つまり、数学基本シンボルの数学上付き文字を識別するケースを示す。それは、数学としてその上付き文字に沿って全てのシンボルを一貫してタグ付けすることができるが、個々に検査される場合、それらのシンボルは、必ずしも数学シンボルでない(純粋な数学シンボルではない)。
【0157】
よって、図3に表されるように、第2の分類S12は、予め定義された空間的構文ルールRL2を適用することによって、それらのそれぞれの信頼スコアを有する、第1のシンボルSB1及び第2のシンボルSB2の拡張したテキスト/数学ラベリング(分類)を含む第2の結果RS2を生み出す。この第2の結果RS2では、S12において取得された各々の第1のシンボルSB1のテキスト/数学分類及び関連する信頼スコアが維持される。よって、テキスト/数学ラベリング及び信頼スコアは、S16において識別された各々の第2のシンボルSB2に割り当てられてもよい。
【0158】
特定の実施例では、S12において分類された1つ以上の第1のシンボルSB1以外の各々のシンボルSBは、第2のシンボルSB2として扱われ、よって、テキストシンボル候補または数学シンボル候補のいずれかとして分類され、空間的構文ルールRL2に基づいてそれぞれの信頼スコアが割り当てられる。他の実施例では、1つ以上のシンボルは、この段階においては分類されないままであり、次の第3の分類S18の間または反復処理S14の別の反復の間(ある場合)に後に分類される。言い換えると、第2の分類S16は、なおも部分的ではあるが、手書きINの拡張したテキスト/数学ラベリングであってもよく、または手書きINの時間的に完全なテキスト/数学ラベリングであってもよい。
【0159】
第1の分類S12において時間的テキスト/数学ラベリング及び信頼スコアが既に割り当てられた第2のシンボルSB2ごとに(ある場合)、それは、第2の分類S16の間に更新または確認されてもよい。
【0160】
構文処理モジュールMD6は次いで、第3の分類S18を実行するように、セマンティック処理モジュールMD8に第2の結果RS2をフィードする。
【0161】
第3の分類S18(図3)の間、構文処理モジュールMD8は、S4において識別されたシンボルSBからの少なくとも2つのシンボルSBの間のセマンティック接続(または、セマンティック関係、もしくはセマンティック関連付け)を確立することによって、第2の分類S16の受信された結果RS2を更新または確認し、次いで、それらのセマンティック接続を第2の分類S16の結果RS2と比較する。
【0162】
実質上、構文処理モジュールMD8は、数学コンテンツ及び/またはテキストコンテンツを発見するように、シンボルの間の意味的に有意な接続(または、意味的に有意な関係)に基づいて全てのシンボルSBのより深い分析を実行するために、予め定義されたセマンティックルールRL3を適用する。言い換えると、第3の分類S18の間、コンピューティングデバイスDV1は、シンボルSBの間のセマンティック関係を確立するように、シンボルSBの意味に基づいて、セマンティックレベルにおいてシンボルを分析する。それらのセマンティック接続は、より人間レベルの、現実的且つインテリジェントな数学対テキストの区別を生み出すために使用されてもよい。識別されたセマンティック接続(または、セマンティック関係)は、各々のケースに応じて、線、段落、または全手書きコンテンツINでさえもわたって延在することができる。
【0163】
セマンティック接続(または、セマンティック関係)は、いずれかの特定のタイプの順序(空間的、時間的、またはいずれかの複合的順序付け)において連続または非近接であることができる、2つの(または、それよりも多くの)シンボルSBの間のセマンティックレベルにおける関係を定義することができる。セマンティック接続は、シンボル、単語、フレーズ、センテンス、またはより大きな文書単位のレベルにおいて確立されてもよい。例えば、2つの所与のシンボルSBは、それらが所与の言語に従って同一の起点または概念的ルートを有する場合、文書内の実際に意味に基づいて意味的に接続されるとして考えられてもよい。例えば、図12A(以下で更に議論される)では、第1の隔離した「n」(シンボルSB3)は、フレーズの終わりにある最後の数学的表現内の「n」と同一のシンボルであり、故に、それらのシンボル「n」は、同一のアイデンティティの概念によって意味的に接続され、または関連する。
【0164】
セマンティック接続は、手書き線または一節内で長い範囲の従属性を遂行することによって識別されてもよい。従属性は、インク関連情報IF1として、S6において前に計算された全ての関連のある特徴の類似性、隣接性、補完性などの特質に対してマーク付けされる。
【0165】
よって、この第3の分類S18は、場合によっては比較的長い範囲の関係(手書き線、段落内の長い範囲の従属性…)を介して、意味的に関連する数学シンボルまたはテキストシンボルを発見することを可能にする。よって、フレーズ構造の正確な分析を達成することができる。
【0166】
予め定義されたセマンティックルールRL3は、第2の分類S16においてシンボルSBに割り当てられた時間的信頼スコアを考慮に入れて、S4において識別された全てのシンボルSBまたはその下位部分に適用されてもよい。
【0167】
図11に示される実施例では、構文処理モジュールMD8は、単語「let」を識別し、それは、数学シンボル候補として少なくとも1つのシンボルSB3の後続のグループを分類することにつながる。本ケースでは、第1の単語「let」に続くシンボル「p」及び第2の単語「let」に続く用語「L(c)」は、適用可能セマンティックルールRL3に基づいて数学として分類される。
【0168】
図12Aは、それらのシンボル「n」が個々に外見が非常に類似して見えるときでさえ、セマンティック処理モジュールMD8が数学シンボルとしてシンボル「n」を認識すると共に、テキストとして単語「naturel」からのシンボル「n」をラベリングすることが可能である別の実施例を示す。
【0169】
図12Bに表される他の別の実施例では、セマンティック処理モジュールMD8は、「E」が数学ブロックにおいて定義された変数であると認識することが可能であり、故に、数学として手書きINにおける全てのそのインスタンスをラベリングすることが可能である。図12Cに示されるように、新たなシンボル「E」を追加するように更なるストロークSKを修正するときでさえ、セマンティック処理モジュールMD8はなおも、数学としてこの新たなシンボルを認識することができ、表現「est」及び「ensemble」内の修正された「E」により混乱することを回避することができ、それによって、真の数学シンボルのラベルを改善するためのみセマンティック関係が使用されていることを確認する。
【0170】
図13は、セマンティック処理モジュールMD8が、セマンティック関係に基づいて、シンボル「y」が手書き線内の数学シンボルであると捕捉する更なる別の実施例を示す。
【0171】
S18におけるセマンティック分析は、それがこの段階においてはまだ完了しないケースでは、テキスト/数学ラベリングを更に拡張することさえ可能にする。加えて、受信された第2の結果RS2において数学またはテキストとして既にラベリングされたシンボルに対して、ラベリングが更新されてもよく、よって、改善されてもよい。各々の分類されたシンボルに割り当てられた信頼スコアは、取得された分類における信頼度の程度を表すように更新される。第2の結果RS2においてテキストとして前にラベリングされたシンボルSBは、例えば、シンボルSBの間で検出されたセマンティック接続に基づいて、更新された信頼スコアにより数学として再分類されてもよい。
【0172】
シンボルのテキスト/数学分類及び関連する信頼スコアは、第3の結果RS3(図3)としてセマンティック処理モジュールMD8によって生み出される。
【0173】
いくつかのケースでは、セマンティック処理モジュールMD8は、予め定義されたセマンティックルールRL3に基づいて、第2の分類S16において取得された第2の結果RS2が正確であると決定してもよい。他のケースでは、第2の結果RS2は、少なくとも1つのシンボルSBのテキスト/数学ラベルを修正することによって、及び/または分類されたシンボルに関連付けられた少なくとも1つの信頼スコアを更新することによって更新されてもよい。
【0174】
第2の分類S16の結果RS2がセマンティック接続に基づいて第3の分類S18の間に確認される場合、第3の分類S18において生み出される結果RS3は、第2の分類S16の結果RS2と同一である。確認された結果RS3(最終結果RS3とも称される)に基づいて、よって、コンピューティングデバイス100は、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボルSBを認識する(S20)。
【0175】
よって、最終結果RS3は、以下で説明されるように任意選択の認識事後処理ステップS24(図3)を実行するように、事後処理モジュールMD12にフィードされてもよい(S20)。
【0176】
しかしながら、第2の分類S16の結果RS2がセマンティック接続に基づいて第3の分類S18の間に更新される場合、第3の分類S18において生み出された結果RS3は、それぞれの更新された信頼スコアに沿った第2の分類RS2に対するテキスト候補及びシンボル候補としてのシンボルの修正された分類を含む。
【0177】
特定の実施例では、少なくとも1つのシンボル候補は、テキストに/から、数学に/から変化し、それに従って、それぞれの信頼スコアがS18において適合される。
【0178】
本実施例では、反復処理S14は、第2の結果RS2が第3の分類S18の間に更新された場合、少なくとも1回(または、複数回)繰り返す。言い換えると、第2の結果RS2が第3の分類S18において更新されること(または、少なくともシンボルがテキストから数学に再分類されたこと、もしくはその逆)を検出すると(S20、図3)、方法は、結果RS3を確認または更新するかのいずれかのために、第3の分類S18の結果RS3に基づいて、第2の分類S16を再度遂行することを続ける(S20)。
【0179】
構文処理モジュールMD6が結果RS3を確認する場合、よって、数学とテキストシンボルSBとの間で区別する最終結果RS3が取得され、任意選択の事後処理ステップS24(以下で説明される)を実行するように、事後処理モジュールMD12に後にフィードされてもよい(S20)。しかしながら、セマンティック処理モジュールMD8による一部のシンボルSBの再ラベリングは、構文処理モジュールMD6に、他のシンボルを再ラベリングさせることができる。したがって、結果RS3が新たな構文分析に基づいて構文処理モジュールMD6によって更新される場合、この更新された結果RS2に基づいて第3の分類S18を再度実行するために、新たな第2の結果RS2がセマンティック処理モジュールMD8にフィードされる。
【0180】
第2の分類S16及び第3の分類S18が同一の結果に収束するまで、つまり、第2の分類S16の結果RS2が第3の分類S18において確認され、または第3の分類S18の結果RS3が第2の分類S12において確認されるかのいずれかまで、反復処理S14複数回繰り返されてもよい。
【0181】
各々の第2の分類S16及び第3の分類S18は、前に説明されたように実行される。構文の間のそれらの前後の反復及びセマンティック処理モジュールS6、S8は、正確且つ信頼できる分類結果RS3に向かって共に収束することを可能にする。
【0182】
処理モジュールMD6及びMD8が分類結果に同意すると、第3の分類S18の最終結果RS3が取得され、それによって、コンピューティングデバイス100が、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボルSBを認識することが可能になる。前に示されたように、この最終結果RS3は、任意選択の事後処理ステップS24を実行するように、事後処理モジュールMD12に後にフィードされてもよい。
【0183】
特定の実施例では、第2の分類S16及び第3の分類S18が同一の結果に収束する前に、分類処理S14の反復の予め定義された回数Nに到達する場合、第3の分類S18において取得された最近の更新された結果RS3は、最終結果RS3を構成し、事後処理ステップS24を続けるように、事後処理モジュールMD12に送信されてもよい(S20)(Nは少なくとも2の整数)。セマンティック分析が最も正確な結果を生み出すように構文分析よりも優先度が与えられるべきであることが観察されている。
【0184】
S20において取得された最終認識結果RS3に基づいて、コンピューティングデバイスDV1は次いで、事後処理ステップS24を実行してもよい。
【0185】
事後処理ステップS24の間の処理は、様々な性質のものであってもよい。本実施例では、事後処理ステップS24は、以下で更に説明されるステップS26、S28、及びS30を含む。
【0186】
より具体的に、図14に表されるグループ化ステップS26の間、コンピューティングデバイスDV1は、S20において取得された最終結果RS3に基づいて、全てのストロークSKを1つ以上のストロークSKのブロック30にグループ化し、各々のブロック30は、数学ブロック30aまたはテキストブロック30bのいずれかである。テキストブロック30bに包含された各々のストロークSKは、テキストシンボルSBの一部であり、数学ブロック30aに包含された各々のストロークSKは、数学シンボルSBの一部である。
【0187】
よって、コンピューティングデバイスDV1は、全てのシンボルSBに基づいて、テキストシンボルまたは数学シンボルのいずれかの一部として各々のストロークSKをラベリングするブロック30の文字列を決定する。
【0188】
ブロック30に包含された各々のストロークSKは、ブロック30の全体に割り当てられたカテゴリである、同一のカテゴリ(テキストまたは数学)に属する。具体的には、数学とテキストとの間で同一のタイプに割り当てられた連続するストロークSKの各々のシーケンスは、同一のブロック30にグループ化されてもよい(S26)。
【0189】
特定の実施例では、各々のテキストブロック30bは、単一の基線であると共に、各々の数学ブロックは、単一の基線または複数の基線のいずれかであってもよい。
【0190】
このグループ化ステップS26は、コヒーレントな単一のラベリングされたブロック、すなわち、数学ブロック及び/またはテキストブロックへのストロークを生成することを可能にする。ストロークごとに分類結果を集約するための異なる戦略が実装されてもよい。
【0191】
ブロック30は、第3の分類RS3の受信された結果RS3において定義されたような数学またはテキストとしての各々のシンボルSBの分類に基づいて、また、相互に対するストロークSKの空間的近接性に基づいて決定されてもよい。
【0192】
ブロック30の生成S26も、後続の認識に対してより理解でき、ロバストであり、且つ有用にさせるために、ストロークレベル制約、空間的制約などの他の予め定義された制約に基づいてもよい。特定の実施例では、それらの制約は、以下:
-重なりストロークSKが単一のブロック30にグループ化されること、
-ストロークSKが水平に間隔を空けられた数学またはテキストブロック30にグループ化されること、
-閾値がブロックごとの最小及び/または最大ストロークSKに対して設定されること、など、
のうちのいずれか1つの(または、全て)を含んでもよい。
【0193】
表示ステップS26(図3)の間、コンピューティングデバイスDV1は、各々のストロークSKが属するそれぞれのブロック30を表すボックス35に沿ってストロークSKを表示する(ディスプレイデバイス2またはいずれかの他の適切なディスプレイを使用して)。図15は、数学ブロック30aをハイライトしたそのようなボックス35が表示され、それによって、テキストまたは数学として手書きINにおけるどの部分が認識されたかをユーザが容易に識別することを可能にする実施例を示す。
【0194】
認識ステップS30(図3)では、コンピューティングデバイスDV1は、数学言語モデルを各々の数学ブロック30aに適用することによって、及びテキスト言語モデルを各々のテキストブロック30bに適用することによって、ストロークSKにおける数学コンテンツ及びテキストコンテンツを認識する。この手書き認識は、S26において達成されたストロークグループ化に基づいて実行される。
【0195】
コンピューティングデバイスDV1は、高い程度の信頼度により、どのストロークSK(または、シンボル)がテキストまたは数学であるかを決定したため、適切な言語モデル及び文法により異なるシンボルのセットを識別するように特に訓練することができるそれぞれの認識器によって、より正確な手書き認識を実行することができる(30)。よって、適切なフォーマット化及びより良好な手書き認識を達成することができる。
【0196】
しかしながら、事後処理S24の間にステップS26~S30のうちの少なくとも1つを実行することなく、実施態様の他の実施例が可能である。例えば、事後処理S24は、S28においてボックス35を表示することなく実行されてもよい。
【0197】
前に示されたように、モジュールMD2~MD12(図2)は各々、1つ以上のニューラルネットワークであってもよく、または1つ以上のニューラルネットワークを含んでもよい。図3に関連して上記説明された実施例では、各々のモジュールMD4、MD6、及びMD8は、少なくとも1つのニューラルネットワーク、例えば、長・短期記憶(LSTM)ニューラルネットワークによって実行される。ここで、本発明の方法を実行するために、LSTMニューラルネットワークをどのように使用することができるかのより詳細な説明は、特定の実施形態に従った、図16~18を参照して以下に提供される。
【0198】
LSTMニューラルネットワーク(LSTMネットワークまたは単に「LSTM」とも称される)は、1つずつ(予め定義された順序において)入力のシーケンスを分析し、入力ごとの出力を生成する回帰型ニューラルネットワークである。1997年にHochreiter及びSchmidhuberによって導入されたLSTMは、長期従属性を学習することが可能である。LSTMは、任意の間隔を通じて値を覚える回帰型ニューラルネットワーク(RNN)アーキテクチャである。LSTMネットワークは、各々が連鎖して後継に情報を渡すLSTMセルCL1の連鎖(後に説明されるような)を含む。
【0199】
LSTMは、未知の持続時間の時間差を仮定して、時系列を分類、処理、及び予測するために良好に適合する。LSTMの性質及びオペレーションは概して、当業者に対して公知である。参照を容易にするために、図16及び17に関して一部の詳細が以下に提供される。しかしながら、当業者は、LSTMがどのように作用し、よって、本開示に基づいて、図3を参照して前に説明されたようなステップS2~20、場合によっては、ステップS2~S30さえも実行するように、LSTMネットワークの構成に適合することが可能であることを理解するであろう。
【0200】
より具体的に、図16は、特定の実施形態に従った、双方向LSTMネットワーク、上記NT1の全体アーキテクチャを概略的に表す。双方向LSTMネットワークNT1は、前方層56、後方層58、及び活性化層60を含む。前方層56及び後方層58は、2つの反対の方向に従って、すなわち、順方向DR1及び逆方向DR2において、S4(図3)において認識された各々のシンボルSBを逐次分析するように構成される。前方層56及び後方層58は各々、S2(図3)において取得された手書き入力INのシンボルSBを分析するように構成された複数のLSTMセル(または、LSTMモジュール)CL1(図16~17)を含む。各々のLSTMセルCL1は、入力x、及び所与の方向(DR1またはDR2)において前のシンボルSBの分析の結果として生成されたLSTM隠れ状態h(t-1)を取得する。それらの入力x及びh(t-1)に基づいて、各々のLSTMセルCL1は、活性化層60に提供されるセル状態Cを生成する。活性化層60は、最終出力yを生み出すように2つの方向DR1及びDR2において所与のシンボルSBに対して取得されたセル状態Cを組み合わせる。
【0201】
更に、図17は、特定の実施形態に従ったLSTMセルCL1の全体アーキテクチャを概略的に表す。各々のLSTMセルCL1は、入力xに基づいて現在の時間ステップにおいて出力を計算するよう、前のシンボルに対して隠れ状態h(t-1)及びセル状態C(t-1)を順番に使用する。隠れ状態h(t-1)及びセル状態C(t-1)の両方は、過去からの、すなわち、前のシンボルの順番での処理からの関連する情報を記憶する。各々のLSTMセルCL1は、出力として、活性化層60に送信される現在のセル状態C(t)、及び次のシンボルSBを順番に処理するように次のLSTMセルCL1に提供される現在の隠れ状態h(t)を生成する。
【0202】
より具体的に、図17に示されるように、各々のラインは、1つのノードの出力から他のノードの入力に全体ベクトルを搬送する。LSTMセルCL1は、ベクトル加算(「+」)のような点ごとの演算、及び学習済みニューラルネットワーク層(例えば、関数tanh)を含む。ライン統合は、連結を表すと共に、同様のフォーキングは、そのコンテンツが複製され、複製が異なる位置に来ることを意味する。LSTMセルCL1の重要な態様は、LSTMセルの最上部を貫通する水平ラインによって表されるセル状態hである。このセル状態hは、一部の線形反復が繰り返し適用される、LSTMセルCL1の連鎖の全体を通じて一貫している。各々のLSTMセルCL1は、3ゲートの制御の下、前のLSTMセル(すなわち、前のセル状態h(t-1))から受信されたセル状態hから情報を取り除き、またはセル状態hに情報を追加する能力を有する。それらの3ゲートの各々は、シグモイドニューラルネット層(「σ」)及び点ごとの乗算演算を含む。各々のシグモイド層σは、0~1の数を出力し、各々の成分がどの程度通過されるべきかを定義する。ゼロの値は、「何も通過させない」ことを意味すると共に、1の値は、「全てを通過させる」ことを意味する。
【0203】
図17に示されるように、LSTMセルCL1は、入力ゲートRE、出力ゲートSE、書き込みゲートWR、及び忘却ゲート52を含む。入力として受信された隠れ状態h(t-1)及びセル状態C(t-1)は、現在の入力xに基づいて、現在の時間の間にh(t)及びC(t)のそれぞれに更新される。更新された隠れ状態h(t)及びセル状態C(t)は次いで、次のシンボルSBの次の時間ステップ計算を実行するように、次のLSTMセルCL1に入力され、それによって、シンボルシーケンスにおいて前のシンボルSBを考慮に入れる。
【0204】
隠れ状態hは、次のシンボルSBを順番に処理するためにLSTMセルCL1に関連する情報を送信するために使用されるワーキングメモリである。概して、隠れ状態hは、勾配消失問題及び勾配爆発問題の影響を受ける(参照のために、例えば、https://en.wikipedia.org/wiki/Vanishing_gradient_problemを参照)、よって、局所的構文情報及びセマンティック情報を記憶することのみが可能である。対照的に、セル状態Cは、長い範囲のまたは全体的な構文情報及びセマンティック情報を記憶し、それらの取り出しを可能にすることができる。セル状態Cは、LSTMセルCL1によって入力として使用される長期メモリである。セル状態Cは、忘却ゲート52によって修正される(忘却されることになる情報を取り除くように)。忘却ゲート52は、シグモイド関数σを実装し、シグモイド関数σは、シンボルSBの順番に前のセル状態C(t-1)からどの情報が忘却されるべきであるかを定義する。入力ゲートREは、シグモイド関数σを実装し、シグモイド関数σは、セル状態C(t-1)に追加されることになる新たな情報を生成するようにtanh層(書き込みゲートWR)と協調する。出力ゲートSEは、どの情報が次の隠れ状態h(t)に統合されるべきであるかを定義するシグモイド関数を実装する。
【0205】
LSTMセルCL1によって出力として生み出される現在のセル状態C(t)は、出力ゲートSEによって実装されたシグモイド層を適用することによってフィルタリングされ、次いで、tanh関数を通じて走り(-1~1の値を設定するように)、現在の隠れ状態h(t)(図17)を生成するように、シグモイド出力ゲートの出力によって乗算される。
【0206】
LSTMネットワークは、両方向に2つのLSTMアーキテクチャ(すなわち、LSTMセルの2つの連鎖)を組み合わせることによって、図16に示されるように双方向であってもよい。LSTMアーキテクチャの更なる詳細な説明は、以下の参考文献:LSTMネットワークの参考文献(チュートリアル):https://colah.github.io/posts/2015-08-Understanding-LSTMs/に存在する。
【0207】
コンピューティングデバイスDV1(図1~2)のエクスパートモジュールMD4、MD6、及びMD8は全て、特に図16~17を参照して上記説明されたようなLSTMアーキテクチャに基づいて実装されてもよい。
【0208】
図18は、特定の実施形態に従った、所与の時間ステップにおいて関心のシンボルSBを分析するようにLSTMネットワークによって実行されるステップを概略図として表す。実施例として、LSTMネットワークが現在のシンボルとしてシンボルSB「2」を分析すると共に、順方向DR1に一度に1つのシンボルのシンボルシーケンスを処理するケースが考えられる。方向DR1及びDR2の両方において、シーケンスのシンボルSBごとにLSTMによって同様の処理が実行されることが理解されるべきである。
【0209】
図18に示されるように、LSTMが、処理されることになる現在のシンボルSBとしてシンボル「2」を選択し、入力として関連する情報、すなわち、現在のシンボル「2」と関連付けられたインク関連情報IF1(シンボル情報IF1a及びコンテキスト情報IF1b)並びに現在のシンボル「2」と関連付けられた埋め込み情報IF2を取得する(S6)ことが最初に考えられる。
【0210】
前に説明されたように、現在のシンボル「2」を形成する各々のストロークSK(すなわち、本ケースでは、単一のストロークSK)に基づいて、シンボル情報IF1aの一部としてシンボル位置的(または、空間的)特徴が抽出されてもよい(S6;図3)。シンボル位置的特徴は、基線20に対する現在のシンボル「2」の位置(例えば、基線からの高さ距離、基線の最初からの距離…)に関連する情報を含んでもよい。本実施例(図5~6)では、表現「R」内の現在のシンボル「2」は、それが基線20からの閾値距離を上回ることを理由に、上付き文字として特徴付けられ、及び認識される。更に、本実施例では、抽出されたコンテキスト情報IF1bは、空間的に関連するストロークSK、すなわち、図18に示されるように、隣接シンボル「∈」、「R」、「,」及び「a」のストロークを特徴付ける。それぞれの埋め込み情報IF2を予め定義されたシンボルPSBのセットの各々の1つに割り当てる予め定義されたシンボル認識ルールRL1に基づいて、埋め込み情報IF2が取得されてもよい。
【0211】
シンボル処理モジュールMD4(表現エクスパート)としての役割を果たす、LSTMセル(または、LSTMモジュール)CL1(図17)の入力ゲートREに情報入力IF1及びIF2がフィードされる(S12)。シンボル処理モジュールMD4は、第1の分類ステップS12(図3)を参照して前に説明されたように、部分的数学/テキストラベル情報を含む値のベクトルを計算する。
【0212】
入力ゲートREも、方向DR1に従った前のシンボルSB、すなわち、本ケースでは、現在のシンボル「2」に先行するシンボル「R」に対してLSTMセルCL1によって計算されたLSTM隠れ状態h(t-1)を受信及び使用する(S40、図18)。よって、入力ゲートREは、構文処理モジュールMD6(構文エクスパート)としての役割をも果たす。
【0213】
よって、処理モジュールMD4及びMD6の両方は、ステップS12及びS40において呼び出される。
【0214】
LSTMセルCL1のLSTMセル状態C(図17~18)は、現在のシンボル「2」の前もしくは後の(または、双方向LSTMのケースでは両方の)シンボルSBからの全ての構文情報及びセマンティック情報をセル状態C(t-1)として、捕捉及び記憶する(S42)。それらの様々な入力も、忘却ゲート52に渡され(S44)、セル状態ライン(図17)を通じて現在のセル状態C(t)に更新される(更新ゲート)。
【0215】
S12において入力ゲートREによって出力された部分的ラベル情報は次いで、出力ゲートSE(図17)に渡され(S14)、出力ゲートSEは、構文処理モジュールMD6及びセマンティック処理モジュールMD8(すなわち、構文エクスパートモジュール及びセマンティックエクスパートモジュール、図2を参照されたい)としての役割を果たす。受信された部分的ラベル情報に基づいて、処理モジュールMD6及びMD8は、現在のシンボル「2」についての最終ラベル情報を生成するように、前に説明されたような第2の分類S16及び第3の分類S18を実行する。処理モジュールMD6及びMD8は、第2の分類ステップS16及び第3の分類ステップS18を実行するために、隠れ状態h(t-1)を使用する。
【0216】
出力ゲートSEの出力(すなわち、最終ラベル情報)は、現在のシンボル「2」に対して前の隠れ状態h(t-1)を更新された隠れ状態h(t)に更新する(S50)ために使用される。更新された隠れ状態h(t)は次いで、分類結果RS3(図3を参照)の一部として、現在のシンボル「2」についての最終ラベルを生成する(S52)ように、活性化層60(図16)に転送される。双方向LSTMが使用される本ケースでは、逆方向DR2及び順方向DR1のそれぞれにおいてシンボルシーケンスを処理することによって、最終ラベル情報の2つのセット(2つのそれぞれのLSTMセルCL1の出力ゲートSEからの)が生み出される。最終ラベル情報のそれらの2つのセットは、現在のシンボル「2」についての最終数学/テキストラベル(図16)を生成する(S52)ように評価され、共に組み合わされる。この評価は、両方のLSTMセルCL1からの最終ラベル情報を連結し、確率のアレイ、本ケースでは、長さ2のアレイ、数学に対して1つの位置及びテキストに対してもう一方の位置、を生み出すように活性化層60にそれらを通過させることによって実行されてもよい。活性化層60は、連結した最終ラベル情報(最終サイズ2Lの)をサイズ2L×2の重み行列と乗算し、次いで、結果として得られる確率の出力アレイが合計して1になることを保証するために、softmax関数(softargmaxまたは正規化指数関数としても既知の)を適用することを含んでもよい。
【0217】
上記説明されたように2つの方向DR1、DR2においてシンボルシーケンスを処理することによって、シーケンスのシンボルSBごとに同一の方式において最終ラベルが生み出される。
【0218】
本実施例では、LSTMアーキテクチャは、様々な処理モジュール(エクスパート)MD4、MD6、及びMD8への固定した回数の呼び出しにより構成される。LSTMネットワークは、2つの段階においてそれらの処理モジュールを呼び出し、つまり、第1の段階において、シンボル処理モジュールMD4(表現エクスパート)及び構文処理モジュールMD6(構文エクスパート)が同時に呼び出され、第2の段階において、構文処理モジュールMD6(構文エクスパート)及びセマンティック処理モジュールMD8(セマンティックエクスパート)が同時に呼び出される。全体的に、構文処理モジュールMD6(構文エクスパート)は、そのように2回呼び出される(S12及びS14)。第2の呼び出し(S14)は、セマンティック処理モジュールMD6の出力からの結果を検証及び伝播することである。前に言及されたように、LSTMの双方向の変形例は、順番に前のシンボル及び次のシンボルから現在の1つのシンボルへのコンテキストに気を配る。
【0219】
更に、当業者は、本発明を実装するように、いずれかの適切な方式においてLSTMネットワークを訓練することができる。LSTMネットワークは、逆伝播されたアルゴリズム(更なる詳細について上記言及された参考文献を参照)により様々なゲートの重み及びバイアスを更新することによって(すなわち、図17におけるシグモイド及びtanh関数ごとに)、手書きにおける数学の検出を学習することができる。特に、入力ゲートRE及び埋め込み情報IF2の重み及びバイアスは、シンボル処理モジュールMD4(表現エクスパート)を実装するために使用される。埋め込み情報IF2は、各々の予め定義されたシンボルPSBに関する前の知識を記憶し、入力ゲートREは、その入力の全てを共にどのように処理するかを学習する(埋め込み情報IF2、シンボル情報IF1a、連絡情報IF1b、隠れ状態)。出力ゲートSE、忘却ゲート52、及び書き込みゲートWRの重み及びバイアスは、所与のシーケンスに存在する様々な構文ルール及びセマンティック接続を回復するために、セル状態C(t-1)及び隠れ状態h(t-1)に記憶された情報を利用及び修正することが可能な、構文処理モジュールMD6及びセマンティック処理モジュールMD8(すなわち、構文エクスパートモジュール及びセマンティックエクスパートモジュール)を実装するために共に使用される。
【0220】
LSTMネットワークは、数学及びテキストの両方を包含したシンボルの複数のシーケンス、並びにテキストのみ、または数学のみを包含したシンボルのシーケンスを含むデータセットにより訓練されてもよい。訓練は、複数回の反復において実行されてもよいと共に、データセットに対する全体的なシンボル誤分類率を最小化し、ネットワークが、1)数学をテキストシンボルから区別し、2)数学及びテキスト特有構文ルールを識別及び適用し、3)所与の順番にシンボルの間のセマンティック接続を確立する、ように学習することを知らせる。
【0221】
いくつかの代替的な実施態様では、ブロックにおいて述べられる関数は、図において述べられる順序外で行われてもよいことに留意されるべきである。例えば、関与する機能性に応じて、連続して示される2つのブロックは、実際に、実質的に同時に実行されてもよく、またはブロックは時に、逆の順序において実行されてもよく、またはブロックは、代替的な順序において実行されてもよい。
【0222】
明確に説明されていないが、本実施形態は、いずれかの組み合わせまたはそれらの部分的な組み合わせにおいて採用されてもよい。
【0223】
本開示が特定の実施形態を説明してきたが、当業者の能力内で、発明力の発揮なしに、多数の修正及び実施形態の影響を受けやすいことが明白である。したがって、本発明の範囲は、以下の特許請求の範囲によって定義されるものとする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図13
図14
図15
図16
図17
図18
【手続補正書】
【提出日】2022-09-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
手書き(IN)における数学及びテキストを処理するコンピューティングデバイス(100)によって実施される方法であって、
-デジタルインクの複数のストローク(SK)に対して手書き認識を実行することによって、シンボル(SB)を識別すること(S4)と、
-前記シンボルに対して予め定義されたシンボル認識ルール(RL1)を個々に適用することによって、第1の分類(S12)として、少なくとも第1の閾値(TH1)に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記識別されたシンボルから少なくとも1つの第1のシンボル(SB1)を分類することと、
-前記少なくとも1つの第1のシンボル(SB1)及び前記少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボル(SB2)に対して、前記少なくとも1つの第1のシンボルと前記少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルール(RL2)を適用することによって、第2の分類(S16)として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記少なくとも1つの第2のシンボル(SB2)を分類することと、
-前記識別されたシンボルからの少なくとも2つのシンボル(SB)の間のセマンティック接続を確立し、前記セマンティック接続を前記第2の分類の結果と比較することによって、第3の分類(S18)として、前記第2の分類の前記結果を更新または確認することと、
-前記第3の分類の結果に少なくとも基づいて、テキストシンボルまたは数学シンボルのいずれかとして、各々のシンボルを認識すること(S20)と、
前記シンボルを形成する各々のストロークに基づいて、識別されたシンボル(SB)ごとに、インク関連情報(IF1)を計算することと、を備え、前記インク関連情報は、
-前記シンボルを形成する1つ以上のストロークの固有の特質を特徴付けるシンボル情報(IF1a)と、
-前記複数のストロークの少なくとも1つのそれぞれの順序付けに従った、前記シンボルを形成する前記1つ以上のストロークと空間的に関連する、少なくとも1つの隣接ストロークを特徴付けるコンテキスト情報(IF1b)と、を含み、
前記インク関連情報は、数学シンボル候補またはテキストシンボル候補のいずれかとして各々のシンボルを分類するために、少なくとも前記第2の分類及び前記第3の分類において使用される、
前記方法。
【請求項2】
前記シンボルを識別することの前に、前記シンボルを形成するデジタルインクの前記複数のストロークを取得することを備え、
前記識別されたシンボルは、少なくとも1つのテキストシンボル及び少なくとも1つの数学シンボルを含む、
請求項1に記載の方法。
【請求項3】
前記シンボルを識別することの間、前記複数のストローク(SK)は、予め定義されたシンボル(PSB)のセットと比較され、前記複数のストロークによって形成された各々のシンボルは、予め定義されたシンボルのセット内のそれぞれの1つとして識別される、請求項1または2に記載の方法。
【請求項4】
前記第1の分類は、
-識別されたシンボルごとに、前記シンボル認識ルールによって前記シンボルに帰属した埋め込み情報(IF2)を決定することであって、前記埋め込み情報は、前記予め定義されたシンボルがテキストまたは数学のいずれかであるそれぞれの信頼スコアを含む、前記決定することと、
-少なくとも前記第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして少なくとも1つの第1のシンボルを識別するように、前記埋め込み情報において定義されるような各々の識別されたシンボルの前記それぞれの信頼スコアを前記第1の閾値と比較することと、
を含む、請求項1~のいずれか1項に記載の方法。
【請求項5】
前記第2の分類の間、前記空間的構文ルール(RL2)は、数学シンボル候補またはテキストシンボル候補のいずれかとして、1つ以上の第1のシンボルとの予め定義された空間的関係を有する少なくとも1つの他のシンボル(SB2)を識別するために、前記少なくとも1つの第1のシンボル(SB1)に対して適用される、請求項1~のいずれか1項に記載の方法。
【請求項6】
前記第2の分類の間、前記少なくとも1つの第1のシンボル以外の各々のシンボルは、テキストシンボル候補または数学シンボル候補のいずれかとして分類される、請求項1~のいずれか1項に記載の方法。
【請求項7】
前記空間的構文ルール(RL2)は、
-少なくとも2つの数学シンボルの間の空間的関係を定義した数学空間的構文ルールと、
-少なくとも2つのテキストシンボルの間の空間的関係を定義したテキスト空間的構文ルールと、
を含む、請求項1~のいずれか1項に記載の方法。
【請求項8】
前記第2の分類の前記結果がセマンティック接続に基づいて前記第3の分類の間に更新される場合、前記第3の分類において生み出される前記結果は、それぞれの更新された信頼スコアに沿った前記第2の分類に対するテキスト候補及びシンボル候補としての前記シンボルの修正された分類を含み、
前記方法は、前記結果を確認または更新するかのいずれかのために前記第3の分類の前記結果に対して前記第2の分類を繰り返すことを更に備えた、
請求項1~のいずれか1項に記載の方法。
【請求項9】
前記第2の分類及び前記第3の分類が同一の結果に収束するまで、前記第2の分類及び前記第3の分類(S16、S18)を含む反復的分類処理(S14)が繰り返される、請求項に記載の方法。
【請求項10】
前記第2の分類及び前記第3の分類が同一の結果に収束する前に前記分類処理(S14)の反復の予め定義された回数Nに到達する場合、前記第3の分類(S18)において取得された前記第2の分類の最近の更新された結果は、テキストシンボルまたは数学シンボルのいずれかとして各々のシンボル(SB)を認識するために使用され、Nは、少なくとも2の整数である、請求項またはに記載の方法。
【請求項11】
前記テキストシンボルまたは数学シンボルのいずれかとして各々のシンボル(SB)を認識すること(S20)は、前記第3の分類(S18)の前記結果に少なくとも基づいて、各々のストロークに、関連する信頼スコアに沿って数学またはテキストのいずれかとしての分類を割り当てることを含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記認識することの結果に基づいて、前記複数のストロークを1つ以上のストロークのブロックにグループ化すること(S26)を備え、各々のブロックは、テキストブロックまたは数学ブロックのいずれかであり、テキストブロックに包含された各々のストロークは、テキストシンボルの一部であり、数学ブロックに包含された各々のストロークは、数学シンボルの一部である、請求項1~11のいずれか1項に記載の方法。
【請求項13】
数学言語モデルを各々の数学ブロックに適用することによって、及びテキスト言語モデルを各々のテキストブロックに適用することによって、前記ストロークにおける数学コンテンツ及びテキストコンテンツを認識することを備えた、請求項12に記載の方法。
【請求項14】
手書き(IN)における数学及びテキストを処理するコンピューティングデバイス(100)であって、
-デジタルインクの複数のストローク(SK)に対して手書き認識を実行することによって、シンボル(SB)を識別する第1の認識モジュール(MD2)と、
-前記シンボルに対して予め定義されたシンボル認識ルールを個々に適用することによって、第1の分類として、少なくとも第1の閾値に到達する信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記識別されたシンボルから少なくとも1つの第1のシンボル(SB1)を分類するシンボル処理モジュール(MD4)と、
-前記少なくとも1つの第1のシンボル(SB1)及び前記少なくとも1つの第1のシンボル以外の少なくとも1つの第2のシンボル(SB2)に対して、前記少なくとも1つの第1のシンボルと前記少なくとも1つの第2のシンボルとの間の空間的関係を定義した予め定義された空間的構文ルール(RL2)を適用することによって、第2の分類として、それぞれの信頼スコアを有するテキストシンボル候補または数学シンボル候補のいずれかとして前記少なくとも1つの第2のシンボル(SB2)を分類する構文処理モジュール(MD6)と、
-前記識別されたシンボルからの少なくとも2つのシンボル(SB)の間のセマンティック接続を確立し、前記セマンティック接続を前記第2の分類の結果と比較することによって、第3の分類として、前記第2の分類の前記結果を更新または確認するセマンティック処理モジュール(MD8)と、を備え、
前記コンピューティングデバイスは、少なくとも前記第3の分類の結果に基づいて、テキストシンボルまたは数学シンボルとして各シンボルを認識するように構成され、
前記コンピューティングデバイスは、前記シンボルを形成する各々のストロークに基づいて、識別されたシンボル(SB)ごとに、インク関連情報(IF1)を計算するように構成され、前記インク関連情報は、
-前記シンボルを形成する1つ以上のストロークの固有の特質を特徴付けるシンボル情報(IF1a)と、
-前記複数のストロークの少なくとも1つのそれぞれの順序付けに従った、前記シンボルを形成する前記1つ以上のストロークと空間的に関連する、少なくとも1つの隣接ストロークを特徴付けるコンテキスト情報(IF1b)と、を含み、
前記インク関連情報は、数学シンボル候補またはテキストシンボル候補のいずれかとして各々のシンボルを分類するために、少なくとも前記第2の分類及び前記第3の分類において使用される、
前記コンピューティングデバイス。
【国際調査報告】